def call(self, args, context): self.ensure_args_gt(args, 2) self.ensure_arg_type(args, 0, ast.slist) new_context = eval.context(parent=context, meval_context=context.meval_context) for pair in args[0].lst: self.ensure_type(pair, ast.slist) name = pair.lst[0] self.ensure_type(name, ast.name) code = ast.statement_list(pair.lst[1:]) new_context.set(name.name, code.eval(context)) return ast.statement_list(args[1:]).eval(new_context)
def call(self, args): new_context = eval.context(parent=self.context, meval_context=self.context.meval_context) set_params(self.params, args, new_context) return self.code.eval(new_context)