如何在 visitTerminal 中获取上一个 TOKEN_RULE?

How to get previous TOKEN_RULE in visitTerminal?

对于这个语法:

ACTION_ESCAPE
   : EscAny -> type (ACTION_CONTENT)

在 visitTerminal(TerminalNode node) 中,对 ANTLRv4Lexer.VOCABULARY.getSymbolicName(node.getSymbol().getType()) 的调用为我提供了令牌名称 ACTION_CONTENT,但如何获得 ACTION_ESCAPE/EscAny

您无法获取与输入 EscAny 匹配的规则类型,因为您已明确将标记值更改为 ACTION_CONTENT。识别令牌的唯一方法是令牌类型。

如果你想要原来的类型,那么一开始就不要替换它。