public void AddStates(IDictionary <Mode, State> modeMap, CodePointEquivalenceClasses equivalenceClasses, NFA <LexerAction> nfa, int priority, Channel defaultChannel) { var states = Expression.AddTo(nfa, equivalenceClasses); foreach (var mode in Modes) { nfa.AddEpsilonTransition(modeMap[mode], states.Start); } nfa.SetFinal(states.End); // Set Action nfa.SetData(states.End, new LexerAction(priority, GetValueAction(), GetModeActions(), GetEmitAction(defaultChannel), GetCodeAction())); }