Antlr,从令牌获取最后一行

时间:2011-10-26 13:07:27

标签: line antlr token

我有一个令牌定义,可以包含多行(类似于多行注释)。

我可以使用.line属性来获取令牌开始的行,但我需要 知道令牌的结束位置。

是否可以获得令牌的最后一行?

1 个答案:

答案 0 :(得分:1)

您可以通过将(Java)代码块{$line=getLine();}放在规则的 end 来更改令牌的行号。

因此,对于多行注释,看起来像这样:

COMMENT
  :  '/*' .* '*/' {$line=getLine();}
  ;

导致令牌getLine()的方法COMMENT返回发生子字符串"*/"的行号。