将antlr AST转换为java

时间:2013-11-22 12:04:48

标签: java antlr transformation abstract-syntax-tree

我使用来自ANTLR wiki的语法Java.g为Java源文件生成词法分析器和解析器。然后使用以下代码生成AST。

InputStream inputStream = new FileInputStream(fileName);
ANTLRInputStream input = new ANTLRInputStream(inputStream);     
JavaLexer lexer = new JavaLexer(input);
CommonTokenStream tokens = new CommonTokenStream();
tokens.setTokenSource(lexer);
JavaParser javaParser = new JavaParser(tokens);
RuleReturnScope result = javaParser.compilationUnit();
CommonTree commonTree = (CommonTree) result.getTree();
commonTree = (CommonTree) commonTree.getChild(1);
commonTree.toStringTree();
//printTree(commonTree, 0);
DOTTreeGenerator gen = new DOTTreeGenerator();      
StringTemplate st = gen.toDOT(commonTree);
System.out.println(st);

我们可以通过在这里复制粘贴DOT源来可视化这个AST:http://graphviz-dev.appspot.com。 问题是如何将AST转换为java?我想修改AST,然后将修改后的AST转换为java。

0 个答案:

没有答案