Lines Matching refs:expr
68 def eval(self,expr):
69 etype = expr[0]
70 if etype == 'NUM': return expr[1]
71 elif etype == 'GROUP': return self.eval(expr[1])
73 if expr[1] == '-': return -self.eval(expr[2])
75 if expr[1] == '+': return self.eval(expr[2])+self.eval(expr[3])
76 elif expr[1] == '-': return self.eval(expr[2])-self.eval(expr[3])
77 elif expr[1] == '*': return self.eval(expr[2])*self.eval(expr[3])
78 elif expr[1] == '/': return float(self.eval(expr[2]))/self.eval(expr[3])
79 elif expr[1] == '^': return abs(self.eval(expr[2]))**self.eval(expr[3])
81 var,dim1,dim2 = expr[1]
113 def releval(self,expr):
114 etype = expr[1]
115 lhs = self.eval(expr[2])
116 rhs = self.eval(expr[3])
318 expr = instr[3]
319 def eval_func(pvalue,name=pname,self=self,expr=expr):
321 return self.eval(expr)
340 def expr_str(self,expr):
341 etype = expr[0]
342 if etype == 'NUM': return str(expr[1])
343 elif etype == 'GROUP': return "(%s)" % self.expr_str(expr[1])
345 if expr[1] == '-': return "-"+str(expr[2])
347 return "%s %s %s" % (self.expr_str(expr[2]),expr[1],self.expr_str(expr[3]))
349 return self.var_str(expr[1])
351 def relexpr_str(self,expr):
352 return "%s %s %s" % (self.expr_str(expr[2]),expr[1],self.expr_str(expr[3]))