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);
        }
Beispiel #2
0
        public override bool Equals(object obj)
        {
            ParsingStateChange other = obj as ParsingStateChange;

            return(other != null && this.StartState == other.StartState && this.EndState == other.EndState);
        }