Exemple #1
0
 public State(State[] states, string regexPattern, bool isAcceptedState, Automaton automaton)
 {
     this.automaton = automaton;
     this.states = states == null ? null : new List<State>(states);
     this.pattern = regexPattern;
     this.isAcceptedState = isAcceptedState;
 }
        public OnlyAcceptsSingle1()
        {
            //must always have an accepted state
            //1 means that this state can be transitioned to if its a 1
            var acceptedState = new State(null, "1", true, this);

            //must always have a start state
            //null means that this state cannot be transitioned to
            var startState = new State(new State[]{
                            acceptedState
                        }, null, false, this);

            //is there a better way to set the starting state, probably not, what else would you do
            this.startState = this.currentState = startState;
        }
        void Init(char input)
        {
            //must always have an accepted state
            //0 means that this state can be transitioned to if its a 0
            var acceptedState = new State(null,input.ToString(), true, this);
            //must always have a start state
            //this state can transition to itself, is there a better way to code this
            State startState = null;
            startState = new State(new State[]{
                            acceptedState
                        }, null, false, this);

            //is there a better way to set the starting state, probably not, what else would you do
            this.startState = this.currentState = startState;
        }
        public AcceptsAnyNumberof1sFollowedBySingleZero()
        {
            //must always have an accepted state
            //0 means that this state can be transitioned to if its a 0
            var acceptedState = new State(null, "0", true, this);

            //must always have a start state
            //this state can transition to itself, is there a better way to code this
            State startState = null;
            startState = new State(new State[]{
                            acceptedState
                        }, "1", false, this);
            startState.AddState(startState);

            //is there a better way to set the starting state, probably not, what else would you do
            this.startState = this.currentState = startState;
        }
Exemple #5
0
 public void AddState(State state)
 {
     this.states.Add(state);
 }