public State GoToNextState(TokenEnums.TokenType tokenType, Token token = null) { var matches = Transitions.Where(item => item.Item1 == tokenType); if (matches.Count() > 1) { // non-deterministic return(null); } return(matches.FirstOrDefault().Item2); }
public List <State> GetPossibleNextStates(TokenEnums.TokenType tokenType) { var matches = Transitions.Where(item => item.Item1 == tokenType); var retVal = new List <State>(); foreach (var item in matches) { retVal.Add(item.Item2); } return(retVal); }
public State ReEvaluateNextStateBasedOnNextToken(TokenEnums.TokenType tokenType) { var match = Transitions.Where(item => item.Item1 == tokenType).FirstOrDefault(); return(match.Item2); }