diff options
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/interpreter.py b/interpreter.py index 154ed40..5b2dbba 100644 --- a/interpreter.py +++ b/interpreter.py @@ -1209,32 +1209,13 @@ class Interpreter(): self.evaluate_codeblock(node.trueblock) else: block = node.falseblock - if isinstance(block, nodes.ElifStatement): - self.evaluate_elif(block) + if isinstance(block, nodes.IfStatement): + self.evaluate_if(block) else: self.evaluate_codeblock(block) else: raise InvalidCode('If clause does not evaluate to true or false.') - def evaluate_elif(self, node): - result = self.evaluate_statement(node.clause) - cond = None - if isinstance(result, nodes.BoolExpression) or \ - isinstance(result, nodes.BoolStatement): - cond = result.get_value() - if isinstance(result, bool): - cond = result - if cond is not None: - if cond: - self.evaluate_codeblock(node.trueblock) - else: - block = node.elseblock - if isinstance(block, nodes.ElifStatement): - self.evaluate_elif(block) - self.evaluate_codeblock(block) - else: - raise InvalidCode('Elif clause does not evaluate to true or false.') - def is_elementary_type(self, v): if isinstance(v, int) or isinstance(v, str) or isinstance(v, bool): return True |