Beispiel #1
0
        private void Check1()
        {
            // [0]|[1-9][0-9]*
            var zero    = (Nfa)'0';
            var nonZero = (Nfa)('1', '9');
            var digit   = (Nfa)('0', '9');

            var nfa = zero | (nonZero + digit.Star);

            var dfa = nfa.ToDfa().Minimize();

            var plumber = new DfaPlumber(dfa);

            plumber.Dump(Console.Out);
        }
Beispiel #2
0
        private void Check2()
        {
            // .*[A-Z]|.*[0-9]
            var dot = Nfa.Any;

            var nfa = (dot.Star + ('A', 'Z')) | (dot.Star + ('0', '9'));

            nfa.Dump();

            var dfa = nfa.ToDfa().Minimize();

            var plumber = new DfaPlumber(dfa);

            Console.WriteLine("---------------");
            plumber.Dump(Console.Out);
        }