public ParsingStates Move(CharacterTypes characterType, out AdditionalOperations[] additionalOperations) { Transition transition = new Transition(CurrentState, characterType); ParsingStates nextState = ParsingRules.StatesTable[transition]; ParsingStateChange parsingStateChange = new ParsingStateChange(CurrentState, nextState); additionalOperations = null; if (ParsingRules.AdditionalParsingOperations.ContainsKey(parsingStateChange)) { additionalOperations = ParsingRules.AdditionalParsingOperations[parsingStateChange]; } CurrentState = nextState; return(CurrentState); }
public override bool Equals(object obj) { ParsingStateChange other = obj as ParsingStateChange; return(other != null && this.StartState == other.StartState && this.EndState == other.EndState); }