if isinstance(self.identifier, Function):
env[str(self.identifier)] = (self.identifier.param, self.expr)
return 'defined function %s' % self.identifier
else:
for e in self.expr:
if e[0].isalpha():
if e in env:
if len(env[e]) == 2: # means it's a function call
if len(env[e][0]) != \
len(self.expr[(self.expr.index(e))]):
raise ParameterError()
t_env = dict(zip(env[e][0], self.expr[self.expr.index(e) + 1]))
##working here##
pf_list = convert_postfix(env[e][1])
val = eval_postfix(pf_list)
else:
self.expr[self.expr.index(e)] = env[e]
else:
raise IdentifierEvalError(e)
pf_list = convert_postfix(self.expr)
val = eval_postfix(pf_list)
env[str(self.identifier)] = val
return '%s = %s' % (self.identifier, val)for k in t_env: if t_env[k] in env: #Check that the variable exists t_env[k] = env[t_env[k]][0] else: raise AlexIsDumbError()