在 Antlr 侦听器中获取令牌类型
本文关键字:令牌 类型 获取 Antlr 侦听器 | 更新日期: 2023-09-27 18:36:52
我正在使用Antlr4和C#目标。我的语法中有一个简单的词法分析器规则,如下所示
SearchIdentifier : QTE (WILDCARD | Identifier) QTE
| (Digit)+
;
我在解析器规则之一中使用此规则,如下所示
conditionExpr: Identifier LT SearchIdentifier
在我的侦听器中,我想知道解析了哪个词法分析器子规则。例如,目前我唯一得到的是
context.SearchIdentifier().GetText();
这将给我搜索标识符文本,有没有办法知道哪个子规则(QT 标识符 QT 或数字)匹配?
谢谢
不,ANTLR 4 词法分析器是状态机,除了令牌停止的位置之外,它不会跟踪任何信息(因此它可以执行正确的操作并分配正确的令牌类型)。
这与ANTLR 3词法分析器非常不同,但也非常快。