private int UGoto(int state, char token, out bool newState) { int nextState = 0; newState = false; if (!m_gotoFnUpdate.TryGetValue(state, token, out nextState)) { nextState = m_numStates++; newState = true; m_outputFnUpdate.Add(new List <int>(0)); m_descendantsUpdate.Add(new List <int>(0)); m_childTokensUpdate.Add(new List <char>(0)); m_childTokensUpdate[state].Add(token); m_gotoFnUpdate.Add(state, token, nextState); } return(nextState); }