Example #1
0
def main(argv):
    inp = FileStream(argv[1])
    lexer = TinyLexer(inp)

    token_stream = CommonTokenStream(lexer)
    parser = TinyParser(token_stream)

    listener = Listener()

    tree = parser.program()
    walker = ParseTreeWalker().walk(listener, tree)

    tables = listener.get_symbol_table()

    for t in tables:
        print("Symbol table %s" % t.name)
        for k, v in t.symbols.items():
            if v[1]:
                print("name %s type %s value %s" % (k, v[0], v[1]))
            else:
                print("name %s type %s" % (k, v[0]))
        print("")