🐐 NON operator
This commit is contained in:
@@ -462,6 +462,24 @@ class UnaryMinus(Node):
|
||||
return vtable, ValInt(-val.value())
|
||||
|
||||
|
||||
class UnaryNot(Node):
|
||||
def __init__(self, expr):
|
||||
self.expr = expr
|
||||
|
||||
def __eq__(self, other):
|
||||
return type(self) == type(other) and self.expr == other.expr
|
||||
|
||||
def __repr__(self):
|
||||
return f"UnaryNot({self.expr!r})"
|
||||
|
||||
def print(self):
|
||||
return f"(NON {self.expr.print()})"
|
||||
|
||||
def _eval(self, vtable):
|
||||
vtable, val = self.expr.eval(vtable)
|
||||
return vtable, ValBool(not bool(val))
|
||||
|
||||
|
||||
class ArrayIndex(Node):
|
||||
def __init__(self, array, index) -> None:
|
||||
self.array = array
|
||||
|
||||
Reference in New Issue
Block a user