Javadoc
From this first NFA state of a decision, create a DFA.
Walk each alt in decision and compute closure from the start of that
rule, making sure that the closure does not include other alts within
that same decision. The idea is to associate a specific alt number
with the starting closure so we can trace the alt number for all states
derived from this. At a stop state in the DFA, we can return this alt
number, indicating which alt is predicted.
If this DFA is derived from an loop back NFA state, then the first
transition is actually the exit branch of the loop. Rather than make
this alternative one, let's make this alt n+1 where n is the number of
alts in this block. This is nice to keep the alts of the block 1..n;
helps with error messages.
I handle nongreedy in findNewDFAStatesAndAddDFATransitions
when nongreedy and EOT transition. Make state with EOT emanating
from it the accept state.