コード例 #1
0
        public override StateParseObject Run(string payload)
        {
            string letter = this.GetLetter(payload);

            payload = GetNewPayload(payload);

            StateParseObject data = new StateParseObject();

            if (letter == "1")
            {
                data.NextState = this;
            }

            else if (letter == "0")
            {
                if (payload.Contains("0"))
                {
                    data.NextState = this;
                }
                else
                {
                    data.NextState = StateManager.Err;
                }
            }
            Callback(letter, data.NextState);
            data.Payload = payload;
            return(data);
        }
コード例 #2
0
ファイル: Z0State.cs プロジェクト: dyakovg/StateMachine
        public override StateParseObject Run(string payload)
        {
            string letter = this.GetLetter(payload);

            payload = GetNewPayload(payload);

            StateParseObject data = new StateParseObject();

            if (letter == "1")
            {
                // z0
                data.NextState = StateManager.Z0;
            }

            else if (letter == "0")
            {
                if (payload.StartsWith("0") || payload.Length == 0)
                {
                    data.NextState = StateManager.Z1;
                }
                else
                {
                    data.NextState = StateManager.Z0;
                }
            }

            else
            {
                data.NextState = StateManager.Err;
            }

            Callback(letter, data.NextState);
            data.Payload = payload;

            return(data);
        }