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); }
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); }