aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-03-17 00:22:39 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2014-03-17 00:22:39 +0200
commit52661714878e49d5246739808faddf88aeffe7ee (patch)
tree1b45c96b52d3fbf9fe908609300fd1888df3cda4 /interpreter.py
parent9a19effb0fc7ed474ecb88a90d743eeccf097339 (diff)
downloadmeson-52661714878e49d5246739808faddf88aeffe7ee.zip
meson-52661714878e49d5246739808faddf88aeffe7ee.tar.gz
meson-52661714878e49d5246739808faddf88aeffe7ee.tar.bz2
Logical ops work.
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py9
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