@@ -49,13 +49,7 @@ def _update_name(env, key, value):
49
49
raise NameError ('{0!r} is undefined' .format (key ))
50
50
51
51
52
- class NamedObjectMixin (object ):
53
- @property
54
- def typename (self ):
55
- return com .pprint_thing (self .__class__ .__name__ )
56
-
57
-
58
- class Term (StringMixin , NamedObjectMixin ):
52
+ class Term (StringMixin ):
59
53
def __init__ (self , name , env ):
60
54
self .name = name
61
55
self .value = _resolve_name (env , name )
@@ -79,7 +73,11 @@ def __init__(self, value, env):
79
73
super (Constant , self ).__init__ (value , env )
80
74
81
75
82
- class Op (NamedObjectMixin , StringMixin ):
76
+ def _print_operand (opr ):
77
+ return opr .name if is_term (opr ) else unicode (opr )
78
+
79
+
80
+ class Op (StringMixin ):
83
81
"""Hold an operator of unknown arity
84
82
"""
85
83
def __init__ (self , op , operands ):
@@ -90,12 +88,11 @@ def __iter__(self):
90
88
return iter (self .operands )
91
89
92
90
def __unicode__ (self ):
93
- op = 'op={1!r}' .format (self .op )
94
- operands = ', ' .join ('opr_{i}={opr}' .format (i = i , opr = opr )
95
- for i , opr in enumerate (self .operands ))
96
- return com .pprint_thing ('{0}({op}, '
97
- '{operands})' .format (self .name , op = op ,
98
- operands = operands ))
91
+ """Print a generic n-ary operator and its operands"""
92
+ # recurse over the operands
93
+ parened = ('({0})' .format (_print_operand (opr ))
94
+ for opr in self .operands )
95
+ return com .pprint_thing (' {0} ' .format (self .op ).join (parened ))
99
96
100
97
101
98
_cmp_ops_syms = '>' , '<' , '>=' , '<=' , '==' , '!='
@@ -161,10 +158,6 @@ def __init__(self, op, lhs, rhs):
161
158
raise BinaryOperatorError ('Invalid binary operator {0}, valid'
162
159
' operators are {1}' .format (op , keys ))
163
160
164
- def __unicode__ (self ):
165
- return com .pprint_thing ('({0}) {1} ({2})' .format (self .lhs , self .op ,
166
- self .rhs ))
167
-
168
161
def __call__ (self , env ):
169
162
# handle truediv
170
163
if self .op == '/' and env .locals ['truediv' ]:
0 commit comments