From 4aea8f4247626c42d3ca429f97aa1e23c3aa3f74 Mon Sep 17 00:00:00 2001 From: Joe Wreschnig Date: Wed, 21 Apr 2010 01:24:21 -0700 Subject: [PATCH] Action.Child: Handle calling the definition. If; Add __repr__. --- bulletml/impl.py | 3 ++- bulletml/parser.py | 14 ++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/bulletml/impl.py b/bulletml/impl.py index f0e8964..d6753e3 100644 --- a/bulletml/impl.py +++ b/bulletml/impl.py @@ -48,7 +48,8 @@ class Action(object): return "%s(pc=%r, actions=%r)" % ( type(self).__name__, self.pc, self.actions) - def Child(self, actions, params, rank, repeat=1): + def Child(self, action, params, rank, repeat=1): + actions, params = action(params, rank) return type(self)(self, actions, params, rank, repeat) def vanish(self): diff --git a/bulletml/parser.py b/bulletml/parser.py index c8bc990..aee4f90 100644 --- a/bulletml/parser.py +++ b/bulletml/parser.py @@ -367,8 +367,7 @@ class Repeat(object): def __call__(self, owner, action, params, rank, created): repeat = self.times(params, rank) - actions, params = self.action(params, rank) - child = action.Child(actions, params, rank, repeat) + child = action.Child(self.action, params, rank, repeat) owner.replace(action, child) child.step(owner, created) return True @@ -422,11 +421,18 @@ class If(object): branch = self.else_ if branch: - actions, params = branch(params, rank) - child = action.Child(actions, params, rank) + child = action.Child(branch, params, rank) owner.replace(action, child) child.step(owner, created) return True + + def __repr__(self): + if self.else_: + return "%s(%r, then=%r, else_=%r)" % ( + type(self).__name__, self.cond, self.then, self.else_) + else: + return "%s(%r, then=%r)" % ( + type(self).__name__, self.cond, self.then) class Accel(object): """Accelerate over some time.""" -- 2.20.1