diff --git a/main.py b/main.py index 5b869fc..a5ae534 100755 --- a/main.py +++ b/main.py @@ -64,11 +64,11 @@ def run_command(env, ast): if ast.__class__ == parse.Statement: return run_statement(env, ast) + elif ast.__class__ == parse.Conditional: + return run_if(env, ast) type = ast[0] if type == "set": return run_set(env, ast) - elif type == "if": - return run_if(env, ast) else: print("Unknown command type %s" % (ast)) return None diff --git a/parse.py b/parse.py index 382cfc0..1014be8 100644 --- a/parse.py +++ b/parse.py @@ -88,6 +88,15 @@ def __repr__(self): return "Statement(subject %s, verb '%s', arguments %s)" % (self.subject, self.verb, self.arguments) +class Conditional: + def __init__(self, test, success, failure): + self.test = test + self.success = success + self.failure = failure + + def __repr__(self): + return "Conditional(test %s, success %s, failure %s)" % (self.test, self.success, self.failure) + class Parser: def __init__(self, tokens): self.tokens = tokens @@ -203,8 +212,9 @@ if not failure: log.log(log.PARSER, log.NORMAL, "While parsing failure statement") return None - log.log(log.PARSER, log.DEBUG, "Parsed conditional") - return ('if', test, success, failure) + conditional = Conditional(test, success, failure) + log.log(log.PARSER, log.DEBUG, "Parsed %s" % (conditional)) + return conditional def parse_directive(self): token = self.peek()