private static Nfa <string, char> BuildEpsilonEliminationSampleNfa() { var nfa = new Nfa <string, char>(); nfa.InitialStates.Add("q0"); nfa.AcceptingStates.Add("q2"); nfa.AddTransition("q0", '1', "q1"); nfa.AddTransition("q1", '1', "q0"); nfa.AddEpsilonTransition("q0", "q2"); nfa.AddTransition("q2", '0', "q3"); nfa.AddTransition("q3", '0', "q2"); nfa.AddTransition("q2", '1', "q4"); nfa.AddTransition("q4", '0', "q2"); return(nfa); }
private static Nfa <string, char> BuildHas101Or11Nfa() { var nfa = new Nfa <string, char>(); nfa.InitialStates.Add("A"); nfa.AcceptingStates.Add("D"); nfa.AddTransition("A", '0', "A"); nfa.AddTransition("A", '1', "A"); nfa.AddTransition("A", '1', "B"); nfa.AddTransition("B", '0', "C"); nfa.AddEpsilonTransition("B", "C"); nfa.AddTransition("C", '1', "D"); nfa.AddTransition("D", '0', "D"); nfa.AddTransition("D", '1', "D"); return(nfa); }