Ejemplo n.º 1
0
def main():

    print_menu()
    cmd = input(">")
    if cmd == "1":
        parser = Parser("gr1.txt")
        seq = read_seq("seq.txt")
        parser.create_the_nightmare_table()
        parsing = parser.parse(seq, ["eps", "S"])
        if len(parsing) == 0:
            print("amu ii bai")
        elif type(parsing[0]) == type("mno"):
            print("amu ii bai si incepe la tokenul:")
            print(parsing.reverse())
        else:
            tree = ParseTree(parser.ll1, parsing, parser.productions)
            print(str(tree))

    if cmd == "2":
        parser = Parser("grammar-ioana.txt")
        out = read_pif("PIFU_BUN2.txt")
        # print(out)
        parser.create_the_nightmare_table()
        parsing = parser.parse(out, ["eps", "START"])
        print(parsing)
        if len(parsing) == 0:
            print("amu ii bai")
        elif type(parsing[0]) == type("mno"):
            print("amu ii bai si incepe la tokenul:")
            parsing.reverse()
            print(parsing)
        else:
            tree = ParseTree(parser.ll1, parsing, parser.productions)
            print(str(tree))
Ejemplo n.º 2
0
                    stack.append(prunc)
                    self.nodes.append(prunc)
                self.crt += len(list_of_rhs) + 1
                index += 1

    def __str__(self):
        string = ""

        for node in self.nodes:
            substring = ""
            substring += str(node.index) + " " + str(node.val) + " " + str(
                node.parent) + " " + str(node.soeur) + "\n"
            string += substring
        return string


if __name__ == "__main__":

    parser = Parser("grammar-ioana.txt")
    parser.create_the_nightmare_table()
    parsing = parser.parse(['eps', 'intConst', '+', 'intConst'],
                           ['eps', 'START'])
    print(parsing)
    parsing = parser.parse(
        ['eps', '}', ';', 'intConst', '<-', 'id', '{', 'main_body'],
        ['eps', 'START'])
    print(parsing)
    tree = ParseTree(parser.ll1, parsing, parser.productions)

    print(str(tree))