访客中的ANTLR4 c ++目标getLine()/ getCharPositioninLine()

时间:2018-07-19 22:15:06

标签: antlr4 c++17

在访客中获取线/位置数据的推荐方法是什么?无法从上下文获取令牌(至少在类定义中没有允许该功能的函数),那么从上下文获取此标记的推荐方法是什么?

使用antlr4和c ++ 17

-更新-

感谢Mike向我指出正确的方向并及时做出回应。所以这是我的解决方案:

ctx-> ID()-> getSymbol()-> getLine()或-> getCharPositionInLine()

其中ID是TerminalNodes之一的名称(可以在您的上下文中使用的lexer规则名称之一)

1 个答案:

答案 0 :(得分:1)

终端节点和解析器上下文都具有承载位置信息的令牌成员。对于解析器上下文,这是其适用范围的起点和终点。请参阅C ++目标的token implementation