Implemented interpreter, almost fully documented
This commit is contained in:
@@ -142,7 +142,7 @@ class BinArithmeticExp(ArithmeticExp):
|
||||
left_value = self.left.eval(env)
|
||||
right_value = self.right.eval(env)
|
||||
try:
|
||||
return operators[self.op](left_value, right_value)
|
||||
return self.operators[self.op](left_value, right_value)
|
||||
except KeyError:
|
||||
raise RuntimeError('unknown operator: ' + self.op)
|
||||
|
||||
@@ -150,10 +150,10 @@ class RelationExp(BooleanExp):
|
||||
"""The AST node for relational boolean expressions."""
|
||||
|
||||
operators = {
|
||||
'<': operator.gt,
|
||||
'<=': operator.ge,
|
||||
'>': operator.lt,
|
||||
'>=': operator.le,
|
||||
'<': operator.lt,
|
||||
'<=': operator.le,
|
||||
'>': operator.gt,
|
||||
'>=': operator.ge,
|
||||
'=': operator.eq,
|
||||
'!=': operator.ne,
|
||||
}
|
||||
@@ -191,7 +191,7 @@ class RelationExp(BooleanExp):
|
||||
left_value = self.left.eval(env)
|
||||
right_value = self.right.eval(env)
|
||||
try:
|
||||
return operators[self.op](left_value, right_value)
|
||||
return self.operators[self.op](left_value, right_value)
|
||||
except KeyError:
|
||||
raise RuntimeError('unknown operator: ' + self.op)
|
||||
|
||||
|
Reference in New Issue
Block a user