private State AddState(DFA.TokenizerState ts) { if (!states.TryGetValue(ts, out State state)) { state = new State(); states.Add(ts, state); // Populate this state state.transitions = new State[16]; for (int i = 0; i < 16; ++i) { state.transitions[i] = AddState(ts.Next(i)); } state.acceptToken = ts.AcceptToken; } return(state); }