Пример #1
0
        public void RegexToDfaShouldConvertCharacterRegexToDfa()
        {
            var pattern = "a";
            var dfa     = CreateDfaFromRegexPattern(pattern);

            Assert.IsNotNull(dfa);

            var lexerRule = new DfaLexerRule(dfa, "a");
            var lexeme    = new DfaLexemeFactory().Create(lexerRule, 0);

            Assert.IsTrue(lexeme.Scan('a'));
        }
Пример #2
0
        public void RegexToDfaShouldConvertCharacterRegexToDfa()
        {
            var pattern = "a";
            var regex   = new RegexParser().Parse(pattern);
            var nfa     = new ThompsonConstructionAlgorithm().Transform(regex);
            var dfa     = new SubsetConstructionAlgorithm().Transform(nfa);

            Assert.IsNotNull(dfa);

            var lexerRule = new DfaLexerRule(dfa, "a");
            var lexeme    = new DfaLexemeFactory().Create(lexerRule, 0);

            Assert.IsTrue(lexeme.Scan('a'));
        }