返回当前令牌的最后一个字符的行号

时间:2013-07-05 11:21:46

标签: antlr4

ANTLR 4中是否有办法能够返回当前令牌的最后一个字符的行号?

我提到了Antlr, get last line from token,但这是针对规则的。我想要更通用的东西但是找不到适合我的ANTLR API。

1 个答案:

答案 0 :(得分:3)

没有直接获取此信息的方法。但是,如果您的词法分析器中没有任何-> skip命令,则可以从以下标记派生它。

假设令牌b跟随令牌a。如果b.getCharPositionInLine()==0,则a的最后一个字符位于b.getLine()-1上。否则,a的最后一个字符就在b.getLine()上。