在访客中获取线/位置数据的推荐方法是什么?无法从上下文获取令牌(至少在类定义中没有允许该功能的函数),那么从上下文获取此标记的推荐方法是什么?
使用antlr4和c ++ 17
-更新-
感谢Mike向我指出正确的方向并及时做出回应。所以这是我的解决方案:
ctx-> ID()-> getSymbol()-> getLine()或-> getCharPositionInLine()
其中ID是TerminalNodes之一的名称(可以在您的上下文中使用的lexer规则名称之一)
答案 0 :(得分:1)
终端节点和解析器上下文都具有承载位置信息的令牌成员。对于解析器上下文,这是其适用范围的起点和终点。请参阅C ++目标的token implementation。