summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorPaul McGuire <ptmcg@austin.rr.com>2019-05-27 21:16:19 -0500
committerPaul McGuire <ptmcg@austin.rr.com>2019-05-27 21:16:19 -0500
commit997c5f0f9cfda8cd3c491081b4a2d083ccf59648 (patch)
treef48256ce5342801358691711bb7c3cd52c214e3c /examples
parentfa1482d7c39de6d5ff534eebff7e76de7acfef10 (diff)
downloadpyparsing-git-997c5f0f9cfda8cd3c491081b4a2d083ccf59648.tar.gz
Update generated code for both unnamed and named state transition state machines
Diffstat (limited to 'examples')
-rw-r--r--examples/statemachine/statemachine.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/examples/statemachine/statemachine.py b/examples/statemachine/statemachine.py
index 4f1f31c..44f64d2 100644
--- a/examples/statemachine/statemachine.py
+++ b/examples/statemachine/statemachine.py
@@ -212,14 +212,22 @@ def expand_named_state_definition(source, loc, tokens):
" self._state = None",
" def initialize_state(self, init_state):",
+ " if issubclass(init_state, {baseStateClass}):".format(baseStateClass=baseStateClass),
+ " init_state = init_state()",
" self._state = init_state",
" @property",
" def state(self):",
" return self._state",
+ " # get behavior/properties from current state",
+ " def __getattr__(self, attrname):",
+ " attr = getattr(self._state, attrname)",
+ " return attr",
+
" def __str__(self):",
- " return '{0}: {1}'.format(self.__class__.__name__, self._state)"
+ " return '{0}: {1}'.format(self.__class__.__name__, self._state)",
+
])
# define transition methods to be delegated to the _state instance variable