Ejemplo n.º 1
0
            line = f.readline().strip()
    for p in productions:
        print(p)
    return productions


def read_pif():
    text = ""
    sequence = []
    with open("pif.txt", "r")as f:
        line = f.readline().strip()
        while line != "":
            sequence.append(line)
            line = f.readline().strip()
    return sequence


non_terminals, terminals, initial_state = read_part_grammar()
# print(non_terminals)
# print(terminals)
# print(initial_state)
productions = read_productions()
g = Parser(non_terminals, terminals, productions, initial_state)
g.canonical_collection()
g.build_actions()
sequence = read_pif()
g.parse(sequence, g.parse_table)
g.build_parse_tree()
print('Parse tree:')
g.tree_root.bfs()