我在Eclipse中使用Antlr创建了一个语法。我还认为我使用符号创建了AST - >和语法中的^等,但我不确定我还有什么需要做的。
我想要浏览AST并将其打印出来。但是我似乎甚至无法访问生成的解析器和词法分析器java文件。
GrammarLexer lex = new ParserLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lex);
GrammarParser parser = new GrammarParser(tokens);
上面的代码会在词法分析器和解析器上引发错误。在访问这些文件和创建AST方面,我是否有任何遗漏。
我不想评估AST,我只是有一些输入,我已经创建了一个解析树来使用语法,然后想要构建AST,我可以走过去并根据需要进行更改。
我的语法设置如下:
options {
language = Java;
output = AST;
ASTLabelType=CommonTree;
}
@header {
package antlr;
}
@lexer::header {
package antlr;
}
我正在eclipse中工作,我设置了解析器和词法分析器的选项,在项目相关文件夹中生成,名为antlr_generated。
My Main.java与语法文件位于同一个包中。所以项目结构是:
项目:
src - > antlr - > Main.java,Grammar.g
antlr_generated - > GrammarLexer.java,GrammarParser.java