访客中的 ANTLR4 c++ 目标 getLine()/getCharPositioninLine()
ANTLR4 c++ target getLine()/getCharPositioninLine() in visitor
在访问者中获取 line/position 数据的推荐方法是什么?没有办法从上下文获取标记(至少 class 定义中没有允许这样做的函数)那么从上下文中推荐的方法是什么?
使用 antlr4 和 c++17
-- 更新--
感谢 Mike 为我指明了正确的方向并做出了及时的回应。所以这是我的解决方案:
ctx->ID()->getSymbol()->getLine() 或 ->getCharPositionInLine()
其中 ID 是终端节点之一的名称(可以在您的上下文中的词法分析器规则名称之一)
终端节点和解析器上下文都有携带位置信息的令牌成员。对于解析器上下文,这是它适用范围的开始和结束节点。请参阅 C++ 目标的 token implementation。
在访问者中获取 line/position 数据的推荐方法是什么?没有办法从上下文获取标记(至少 class 定义中没有允许这样做的函数)那么从上下文中推荐的方法是什么?
使用 antlr4 和 c++17
-- 更新--
感谢 Mike 为我指明了正确的方向并做出了及时的回应。所以这是我的解决方案:
ctx->ID()->getSymbol()->getLine() 或 ->getCharPositionInLine()
其中 ID 是终端节点之一的名称(可以在您的上下文中的词法分析器规则名称之一)
终端节点和解析器上下文都有携带位置信息的令牌成员。对于解析器上下文,这是它适用范围的开始和结束节点。请参阅 C++ 目标的 token implementation。