aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interpreter.py1
-rw-r--r--mparser.py8
2 files changed, 5 insertions, 4 deletions
diff --git a/interpreter.py b/interpreter.py
index 03ee59d..517335f 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -1379,6 +1379,7 @@ class Interpreter():
for i in node.ifs:
result = self.evaluate_statement(i.condition)
if not(isinstance(result, bool)):
+ print(result)
raise InvalidCode('If clause does not evaluate to true or false.')
if result:
self.evaluate_codeblock(i.block)
diff --git a/mparser.py b/mparser.py
index 7796dd8..b80a46d 100644
--- a/mparser.py
+++ b/mparser.py
@@ -343,15 +343,15 @@ class Parser:
def e6(self):
left = self.e7()
- if self.accept('dot'):
- return self.method_call(left)
- elif self.accept('lparen'):
+ if self.accept('lparen'):
args = self.args()
self.expect('rparen')
if not isinstance(left, IdNode):
raise ParseException('Function call must be applied to plain id',
left.lineno, left.colno)
- return FunctionNode(left.lineno, left.colno, left.value, args)
+ left = FunctionNode(left.lineno, left.colno, left.value, args)
+ while self.accept('dot'):
+ left = self.method_call(left)
return left
def e7(self):