Exemplo n.º 1
0
        public void Run()
        {
            var regs = new List<string[]>
            {
                new[] {"((A*B|AC)D)", "AAAABD"},
                new[] {"((A*B|AC)D)", "AAAAC"},
                new[] {"((a|(bc)*d)*)", "abcbcd"},
                new[] { "((a|(bc)*d)*)", "abcbcbcdaaaabcbcdaaaddd" }
            };
            foreach (var reg in regs)
            {
                var regexp = reg[0];
                var txt = reg[1];
                if (txt.Contains("|"))
                {
                    throw new ArgumentException("| character in text is not supported");
                }
                var nfa = new NFA(regexp);
                Console.WriteLine($"{regexp} : {txt}");
                Console.WriteLine(nfa.Recognizes(txt));
                Console.WriteLine("---------------------------------------------");
            }

            Console.ReadLine();
        }
Exemplo n.º 2
0
 public void Match()
 {
     foreach (var line in _lines)
     {
         if (_nfa.Recognizes(line))
         {
             Console.WriteLine(line);
         }
     }
 }