diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-07-27 17:58:17 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-07-27 17:58:17 +0300 |
commit | 6a17d6994dc1b9a249ad5be31e06a7ba9e80454d (patch) | |
tree | d4d4c159b9b606fe8f6fe849d48d6a5ccafa1f05 /interpreter.py | |
parent | e8fba977f4d23b268a649769d16cea9fc3b7cc01 (diff) | |
download | meson-6a17d6994dc1b9a249ad5be31e06a7ba9e80454d.zip meson-6a17d6994dc1b9a249ad5be31e06a7ba9e80454d.tar.gz meson-6a17d6994dc1b9a249ad5be31e06a7ba9e80454d.tar.bz2 |
Cleaner, simpler elif.
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 |