def fa_menu(fa): print_fa_menu() option = input("Choose a option: ") if option == '1': filename = input("Give the filename: ") fa = FiniteAutomaton.read_from_file(filename) fa_menu(fa) elif option == '2': fa = FiniteAutomaton.read_from_console() fa_menu(fa) elif option == '3': print(fa.Q) fa_menu(fa) elif option == '4': print(fa.E) fa_menu(fa) elif option == '5': for transition in fa.delta: print('(' + transition[0][0] + ", " + transition[0][1] + ") -> " + transition[1]) fa_menu(fa) elif option == '6': print(fa.q0) fa_menu(fa) elif option == '7': print(fa.F) fa_menu(fa) elif option == '8': g = Grammar.from_finite_automaton(fa) print("Set of non-terminal symbols") print(g.N) print("Set of terminal symbols") print(g.E) print("Set of productions") for rule in g.P: print(rule[0] + " -> " + rule[1]) print("Starting symbol") print(g.S) fa_menu(fa) elif option == '0': main_menu() else: print("No such option") fa_menu(fa)