diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2018-04-19 17:02:12 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2018-04-19 17:02:12 +0200 | 
| commit | 44614e6a88a71fb09d7e5cd5e3bf866aefc1f29c (patch) | |
| tree | c502506ab3b3b1ef68218194cb3dfd3a4143ee63 /lib | |
| parent | ec72a7550bc06f18aca5d70f5d27fb2a89033f20 (diff) | |
Implement PTA DFS as generator
Diffstat (limited to 'lib')
| -rwxr-xr-x | lib/automata.py | 17 | 
1 files changed, 8 insertions, 9 deletions
| diff --git a/lib/automata.py b/lib/automata.py index be91cd4..0e6cc28 100755 --- a/lib/automata.py +++ b/lib/automata.py @@ -15,15 +15,14 @@ class State:      def dfs(self, depth):          if depth == 0: -            return [[trans.name] for trans in self.outgoing_transitions] - -        ret = [] -        for trans in self.outgoing_transitions: -            for suffix in trans.destination.dfs(depth - 1): -                new_suffix = [trans.name] -                new_suffix.extend(suffix) -                ret.append(new_suffix) -        return ret +            for trans in self.outgoing_transitions: +                yield [trans.name] +        else: +            for trans in self.outgoing_transitions: +                for suffix in trans.destination.dfs(depth - 1): +                    new_suffix = [trans.name] +                    new_suffix.extend(suffix) +                    yield new_suffix  class PTA:      def __init__(self, state_names, parameters): | 
