timbray/quamina

Formalize automaton processing

timbray opened this issue · 1 comments

There is quite a bit of complexity in supporting both NFAs and DFAs. This is not strictly necessary since there are well-known algorithms for converting NFAs to DFAs. This might make AddPattern more expensive, but this should be investigated and benchmarked.

Similarly, anything_but.go is complex and hard to understand. Also perhaps not necessary because there are well-known arguments for taking the complement of a DFA and for doing intersections (I think?) differences. Similarly, the AddPattern cost should be investigated.

Addressed in a few commits ending in f811b97 - still work to do on AddPattern cost, will create an issue for that.