def to_expression(e): s_stream = antlr3.StringStream(e) lexer = Lexer(s_stream) t_stream = antlr3.CommonTokenStream(lexer) parser = Parser(t_stream) try: ast = parser.expression() return parse_e(ast.tree) except antlr3.RecognitionException: traceback.print_stack()
def to_statements(mtd, s): s_stream = antlr3.StringStream('{' + s + '}') lexer = Lexer(s_stream) t_stream = antlr3.CommonTokenStream(lexer) parser = Parser(t_stream) try: ast = parser.block() return parse(mtd, ast.tree.getChildren()) except antlr3.RecognitionException: traceback.print_stack()
def toAST(files): ast = antlr3.tree.CommonTree(None) for fname in files: logging.debug("reading: " + os.path.normpath(fname)) f_stream = antlr3.FileStream(fname) lexer = Lexer(f_stream) t_stream = antlr3.CommonTokenStream(lexer) parser = Parser(t_stream) try: _ast = parser.compilationUnit() except antlr3.RecognitionException: traceback.print_stack() sys.exit(1) ast.addChild(_ast.tree) return ast