如何为特定关键字添加侦听器?

时间:2017-12-12 11:10:49

标签: parsing antlr4

我有一个解析器语法和词法分析器语法,ANTLR4 4.7可以从中生成解析器和词法分析器,没问题。监听器逻辑中的入口点非常好,但我想听一听该语言中的特定关键字。 不知道从哪里开始添加。

我正在使用Eclipse的ANTLR4插件从语法中生成解析器和词法分析器。

1 个答案:

答案 0 :(得分:0)

在生成的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) { }

e.g。

public class Tester extends xyzBaseListener
{
  // ... other useful stuff
  @Override public void visitTerminal(TerminalNode node) {
    System.out.println("Saw token '" + node.getText() + "'");
  }
}

参考书中有关于如何子类化基本监听器并连接监听器的示例。