lawrancej/CompilerKit — pull request #95 by jdeastwood (2012-12-13 12:37:28+00:00)
Title: compilerkit_make_deterministic with supporting changes

... 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.

Lots of flywieght code still needed.