I’d like to say I finished this, but there are a couple TODOs at the very end that I just don’t think I’ll get around to. I wrote the majority of a regex engine tailor-made to focus on cache locality. I also wrote it to allow parameterizing accepting states by an identifying number, which allows for a lexer generator to stitch multiple NFAs together and define type-construction for the different accepting states.
I’d like to work on other things, so I’m probably not going to finish this. I’d still appreciate a code review. The NFA and unoptimized DFA parts are finished. The switch statement in the NFA constructor is large, but I felt was still the right design choice.