diff --git a/astnodes.py b/astnodes.py index 4a04a2a10d91bc1ff19d7e8ff835b215757a1967..8856fd421087a9cc35f30be3d89d34c3dd60ee41 100644 --- a/astnodes.py +++ b/astnodes.py @@ -393,6 +393,10 @@ class TemporaryMemoryFree(Node): # TODO everything which is not Atomic expression: Pow) + +_expr_dict = {'Add': ' + ', 'Mul': ' * ', 'Pow': '**'} + + class Expr(Node): def __init__(self, args, parent=None): super(Expr, self).__init__(parent) @@ -425,6 +429,9 @@ class Expr(Node): def undefinedSymbols(self): return set() # Todo fix for symbol analysis + def __repr__(self): + return _expr_dict[self.__class__.__name__].join(repr(arg) for arg in self.args) # TODO test this + class Mul(Expr): pass @@ -439,6 +446,7 @@ class Pow(Expr): class Indexed(Expr): - pass + def __repr__(self): + return '%s[%s]' % (self.args[0], self.args[1])