我正在尝试获取ANTLR3树语法中的行号(由ANTLR3生成的代码属于TreeParser类)。
谷歌只为ANTLR2找到了解决方案,遗憾的是,这些解决方案在ANTLR3中不起作用。
为了清楚起见,我尝试访问.g文件本身中的行号。
我想我必须重写一个方法或扩展一个类,我只是不知道是哪一个。
提前使用tnx
编辑:我应该指出我使用的是java api
发布于 2011-01-08 08:25:53
看起来我在寻找一条很远的路。要在.g文件中访问树语法中规则的行号,只需请求token.getLine();(它在内部是一个CommonTree )
举个例子
赋值: ID '=‘表达式{int line = $ID.getLine()};// $ID类型为CommonTree
发布于 2011-01-08 07:11:15
antlr3.Token类及其子类antlr3.ClassicToken和antlr3.CommonToken
似乎提供了a deprecated function def getLine ( self )和一个成员line。
我不知道您是如何使用antlr3.TreeParser的,但我想您有权访问这些令牌。
https://stackoverflow.com/questions/4630618
复制相似问题