Example #1
0
        public void NegateLetter_Fail()
        {
            bool                  transitionConsumesCharacter;
            ENFA_Controller       controller = new ENFA_Controller(ParserType.Regex);
            ENFA_Regex_Transition transition = (controller.Factory as ENFA_Regex_Factory).CreateRegexTransition(RegexTransitionType.NegateLetter, new ENFA_State(controller, null, RegexTransitionType.NegateLetter.ToString(), StateType.Accepting));

            Assert.False(transition.TransitionAllowed(null, 'c', out transitionConsumesCharacter));
        }
Example #2
0
        public void ExitContext_Success()
        {
            bool                  transitionConsumesCharacter;
            ENFA_Controller       controller = new ENFA_Controller(ParserType.Regex);
            ENFA_Regex_Transition transition = (controller.Factory as ENFA_Regex_Factory).CreateRegexTransition(RegexTransitionType.ExitContext, new ENFA_ContextSwitch(controller, StateType.Accepting));

            Assert.True(transition.TransitionAllowed('"', '"', out transitionConsumesCharacter));
            Assert.True(transitionConsumesCharacter);
        }
Example #3
0
        public void EndOfLine_Success()
        {
            bool                  transitionConsumesCharacter;
            ENFA_Controller       controller = new ENFA_Controller(ParserType.Regex);
            ENFA_Regex_Transition transition = (controller.Factory as ENFA_Regex_Factory).CreateRegexTransition(RegexTransitionType.EndOfLine, new ENFA_State(controller, null, RegexTransitionType.EndOfLine.ToString(), StateType.Accepting));

            Assert.True(transition.TransitionAllowed('a', '\n', out transitionConsumesCharacter));
            Assert.False(transitionConsumesCharacter);
        }
Example #4
0
        public void WordBoundary_Success3()
        {
            bool                  transitionConsumesCharacter;
            ENFA_Controller       controller = new ENFA_Controller(ParserType.Regex);
            ENFA_Regex_Transition transition = (controller.Factory as ENFA_Regex_Factory).CreateRegexTransition(RegexTransitionType.WordBoundary, new ENFA_State(controller, null, RegexTransitionType.WordBoundary.ToString(), StateType.Accepting));

            Assert.True(transition.TransitionAllowed('b', ' ', out transitionConsumesCharacter));
            Assert.False(transitionConsumesCharacter);
        }
Example #5
0
        public void NegateLiteral_Success()
        {
            bool                  transitionConsumesCharacter;
            ENFA_Controller       controller = new ENFA_Controller(ParserType.Regex);
            ENFA_Regex_Transition transition = (controller.Factory as ENFA_Regex_Factory).CreateRegexTransition(RegexTransitionType.NegateLiteral, new ENFA_State(controller, null, RegexTransitionType.NegateLiteral.ToString(), StateType.Accepting));

            transition.AddLiteral('a');
            transition.AddLiteral('b');
            Assert.True(transition.TransitionAllowed(null, 'c', out transitionConsumesCharacter));
            Assert.True(transitionConsumesCharacter);
        }