Exemple #1
0
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)