我有一个解析器语法和lexer语法,antlr4 4.7从中生成一个解析器和lexer,没问题。听众逻辑中的输入点很棒,但我想听语言中的特定关键字。不知道从哪里开始添加。
我使用的是Eclipse的Antlr4插件来从语法生成解析器和lexer。
在生成的xyzBaseListener
的底部有4种非特异性方法,您可以覆盖您的需求:
@Override public void enterEveryRule(ParserRuleContext ctx) { }
@Override public void exitEveryRule(ParserRuleContext ctx) { }
@Override public void visitTerminal(TerminalNode node) { }
@Override public void visitErrorNode(ErrorNode node) { }
,例如
public class Tester extends xyzBaseListener
{
// ... other useful stuff
@Override public void visitTerminal(TerminalNode node) {
System.out.println("Saw token '" + node.getText() + "'");
}
}
参考书中有示例有关如何为基本听众分类并汇总听众的示例。