... aaaaand a load of other stuff all squashed into one commit.
added compilerkit_make_deterministic. It is documented, and does pretty much what it sounds like.
Implemented some flyweights.
Refactored DFA and NFA code to share components.
Few random bugfixes here and there.
Issues:
compilerkit_make_deterministic probably leaks like a sieve, mostly because I kept loosing track of things leaking out of the FSM gobject implementations :/. Other issues include the lambda transition... using '\0' to represent it played havok with just about everything else imaginable, so settled for a temporary and obviously problematic '?' character. Also, it would be very nice if DFA states were actually represented as actual sets of NFA states, my implementation uses sorted comma-separated strings which are slightly fragile.
... aaaaand a load of other stuff all squashed into one commit.
Issues: compilerkit_make_deterministic probably leaks like a sieve, mostly because I kept loosing track of things leaking out of the FSM gobject implementations :/. Other issues include the lambda transition... using '\0' to represent it played havok with just about everything else imaginable, so settled for a temporary and obviously problematic '?' character. Also, it would be very nice if DFA states were actually represented as actual sets of NFA states, my implementation uses sorted comma-separated strings which are slightly fragile.
Lots of flywieght code still needed.