def action_exp(toks): tok = toks[0] if isinstance(tok, env.exp): return tok if len(tok) == 2: op = tok[0] r = tok[1] if isinstance(r, list): r = action_exp(r) return env.oper(op, r) elif len(tok) == 3: op = tok[1] l = tok[0] r = tok[2] if isinstance(l, list): l = action_exp(l) if isinstance(r, list): r = action_exp(r) return env.oper(op, l, r) else: return tok
def action_exp(toks): tok = toks[0] if isinstance(tok,env.exp): return tok if len(tok)==2: op=tok[0] r=tok[1] if isinstance(r,list): r=action_exp(r) return env.oper(op,r) elif len(tok)==3: op=tok[1] l=tok[0] r=tok[2] if isinstance(l,list): l=action_exp(l) if isinstance(r,list): r=action_exp(r) return env.oper(op,l,r) else: return tok