diff options
author | Paul McGuire <ptmcg@austin.rr.com> | 2019-05-27 21:16:19 -0500 |
---|---|---|
committer | Paul McGuire <ptmcg@austin.rr.com> | 2019-05-27 21:16:19 -0500 |
commit | 997c5f0f9cfda8cd3c491081b4a2d083ccf59648 (patch) | |
tree | f48256ce5342801358691711bb7c3cd52c214e3c /examples | |
parent | fa1482d7c39de6d5ff534eebff7e76de7acfef10 (diff) | |
download | pyparsing-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.py | 10 |
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 |