A DFA implemented as a set of transition tables.
Any state that has a semantic predicate edge is special; those states are
generated with if-then-else structures in a specialStateTransition() which is
generated by cyclicDFA template.
There are at most 32767 states (16-bit signed short). Could get away with byte
sometimes but would have to generate different types and the simulation code
too. For a point of reference, the Java lexer's Tokens rule DFA has 326 states