public LexicalMachineState GetNext(AtomType command) { LexicalMachineState nextState = this.CurrentState; LexicalStateTransition transition = new LexicalStateTransition(CurrentState, command); if (!transitions.TryGetValue(transition, out nextState)) { throw new Exception("Lexical: Invalid transition: " + CurrentState + " -> " + command); } Console.WriteLine("Lexical :" + this.CurrentState + " -> " + nextState + " : " + command.ToString()); return(nextState); }