blob: f98a777b942e06330df9d6bea854a107799dee0f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
from psi.lexer import Token
__all__ = ['Interpreter']
class Interpreter:
def __init__(self, ast):
self.ast = ast
def interpret(self):
return self.interpret_expr(self.ast)
def interpret_expr(self, node):
if isinstance(node, Token):
return node.value
elif isinstance(node, list):
for expr in node:
result = self.interpret_expr(expr)
if result is not None:
return result
def interpret_condition(self, node):
variable = self.interpret_expr(node[0])
value = self.interpret_expr(node[2])
return variable == value
|