diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-03-17 00:22:39 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-03-17 00:22:39 +0200 |
commit | 52661714878e49d5246739808faddf88aeffe7ee (patch) | |
tree | 1b45c96b52d3fbf9fe908609300fd1888df3cda4 /interpreter.py | |
parent | 9a19effb0fc7ed474ecb88a90d743eeccf097339 (diff) | |
download | meson-52661714878e49d5246739808faddf88aeffe7ee.zip meson-52661714878e49d5246739808faddf88aeffe7ee.tar.gz meson-52661714878e49d5246739808faddf88aeffe7ee.tar.bz2 |
Logical ops work.
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/interpreter.py b/interpreter.py index 14e4670..a15ac01 100644 --- a/interpreter.py +++ b/interpreter.py @@ -718,9 +718,9 @@ class Interpreter(): elif isinstance(cur, mparser2.MethodNode): return self.method_call(cur) elif isinstance(cur, mparser2.StringNode): - return cur + return cur.value elif isinstance(cur, mparser2.BooleanNode): - return cur + return cur.value elif isinstance(cur, mparser2.IfClauseNode): return self.evaluate_if(cur) elif isinstance(cur, mparser2.IdNode): @@ -1296,6 +1296,7 @@ class Interpreter(): assert(isinstance(node, mparser2.IfClauseNode)) for i in node.ifs: result = self.evaluate_statement(i.condition) + print(result) if not(isinstance(result, bool)): raise InvalidCode('If clause does not evaluate to true or false.') if result: @@ -1361,9 +1362,9 @@ class Interpreter(): return r def evaluate_notstatement(self, cur): - v = self.evaluate_statement(cur.val) + v = self.evaluate_statement(cur.value) if isinstance(v, mparser2.BooleanNode): - v = v.get_value() + v = v.value if not isinstance(v, bool): raise InterpreterException('Argument to "not" is not a boolean.') return not v |