]> granicus.if.org Git - re2c/commit
Updated GOR1 (fixed the core algorithm to avoid useless re-scans of the same state).
authorUlya Trofimovich <skvadrik@gmail.com>
Sat, 28 Jul 2018 22:30:04 +0000 (23:30 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Sat, 28 Jul 2018 22:30:04 +0000 (23:30 +0100)
commit05d5c5959f815852f35b17d7ad7df048c30530e8
tree55a0f1ee62d5c9233d1c5ea73e19d0eef97e2bfd
parentbf658a52d2c3f6cc5af1b7415a5355b67f2d90e8
Updated GOR1 (fixed the core algorithm to avoid useless re-scans of the same state).

Also, depth-first traversal was done in a slightly incorrect way:
we checked outgoing nodes for admissibility and pushed the corresponding
child states on stack all at once. This is not the same as checking
the first child and recursing into it, then checking the next child,
..., and so on (because we might discover the second child while exploring
the first, and admissiblitiy check for the second child *after* that
might yield false, while *before* exploring the first child it yielded
true).
re2c/src/dfa/closure.cc
re2c/src/nfa/dump.cc
re2c/src/nfa/nfa.h
re2c/src/nfa/re_to_nfa.cc