def tframes(self, agent, event, bindings, zexpr): b = self.make_bindings(agent, bindings, zexpr) #XXX needs a better name. update (kwc): using agent.nextid() now if b: name = "Closure.%s" % agent.nextid() return [TaskExprTFrame(name, event, b, self.closed_zexpr[1])] else: return []
def tenter(self, agent, tframe, zexpr): raise Unimplemented("Haven't fixed ApplyTask yet") oldbindings = tframe.getBaseBindings() closure_value = termEvalErr(agent, oldbindings, zexpr[0]) closed_zexpr = closure_value.closed_zexpr bindings = closure_value.make_bindings(agent, oldbindings, zexpr[1:]) event = PseudoGoalEvent(tframe, self) tframe._subgoal_event = event name = "%s.%s" % (tframe.name(), self.label()) event.addTFrame(TaskExprTFrame(name, event, bindings, closed_zexpr)) step_fn(agent, tframe, EXECUTING, zexpr) return tframe.tfpost_subgoal(agent, event)