Rewrite the NFA regexp interpreter into epsilon/matcher phases.
authorChris Hanson <org/chris-hanson/cph>
Sat, 30 Nov 2019 08:08:01 +0000 (00:08 -0800)
committerChris Hanson <org/chris-hanson/cph>
Sat, 30 Nov 2019 08:08:01 +0000 (00:08 -0800)
commitac4fbf99076be17c3c3e76c2336a8b7702604919
tree510acc95410076e3983209edf01e669f63f6113b
parent2994a7b4e9e5b58eae6cbf9e00cddba08e6e329e
Rewrite the NFA regexp interpreter into epsilon/matcher phases.

This greatly simplifies the interpreter's operation, and isolates the state
elision in the epsilon phase where it belongs.

Also added hash-consing of states, so that we can use eq? to compare them.
src/runtime/regexp-nfa.scm
src/runtime/runtime.pkg
src/runtime/srfi-115.scm