我正在尝试获取 ANTLR3 树语法中的行号(ANTLR3 生成的代码属于 TreeParser 类)。
谷歌只找到了 ANTLR2 的解决方案,遗憾的是在 ANTLR3 中不起作用。
为了澄清我正在尝试访问 .g 文件本身中的行号。
我想我必须覆盖一个方法或扩展一个我只是不知道是哪一个的类。
tnx 提前
编辑:我应该指出我正在使用 java api
看来我正在寻找很远的路。要在 .g 文件中访问 Tree Grammar 中规则的行号,只需请求 token.getLine(); (内部是 CommonTree)
所以例如
赋值:ID '=' 表达式 {int line = $ID.getLine()}; // $ID 是 CommonTree 类型
antlr3.Token类和子类antlr3.ClassicToken和antlr3.CommonToken
似乎提供了一个不推荐使用的函数和一个成员。
def getLine ( self )
line
我不知道您如何使用antlr3.TreeParser,但我想您可以访问令牌。