Closed timbray closed 1 month ago
I see that I accidentally lost a couple of unit tests, although the coverage didn't go down. Will clean this up subsequently. There's a huge amount of quite difficult work here that I want to get checked in so I have a stable base to continue work on #188 and then some new features.
Attention: Patch coverage is 97.80220%
with 4 lines
in your changes are missing coverage. Please review.
Project coverage is 96.32%. Comparing base (
a716bc1
) to head (8351137
). Report is 68 commits behind head on main.
Files | Patch % | Lines |
---|---|---|
nfa.go | 94.82% | 1 Missing and 2 partials :warning: |
shell_style.go | 95.45% | 1 Missing :warning: |
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Having thought about it, I can see why this is a difficult PR to review. It's all down in the finite-automaton weeds and not that many people care about this stuff or have exposure to it. Having said that, a bunch of ugly code was removed and the tests all still pass and I see no performance regression. So I will probably break the rules and go ahead and merge if nobody is up to doing a real review in the next day or so.
+1
addresses #197
This gets rid of the DFA/NFA distinction, everything is now an NFA. The stretch goal is to fix #188, but the messy sprawl of DFA-and-NFA was getting in the way of understanding.
This includes a bunch of commented-out code for pretty-printing state machines, which I found totally essential in migrating to all-NFA. I'm going to create an issue to bring this code out of comments and make it possible to switch it off/on to facilitate the creating and merging different kinds of patterns.