def __call__(self, stack, envs, objs): if objs is None: return stack.call(self.objs[0], envs) if not objs.evaled: return stack.jump(CallStatus(objs, self.objs.cdr, nil), envs) return stack.jump(CallStatus(objs, nil, reversed_list(self.objs.cdr)), envs)
def func_call(self, func, envs): o = func[0] if not isinstance(o, OSymbol): return FuncStatus(func) objs = envs[o.name] if not objs.evaled: return CallStatus(objs, func.cdr, nil) return CallStatus(objs, nil, reversed_list(func.cdr))
def genfast(self): for i in reversed_list(self.e): self.fast.update(i)