我如何通过Parser ctx获得行号?

时间:2016-11-15 02:13:48

标签: java antlr antlr4

public void enterStatus(Parser.Context ctx) 
{
}

Parser.Context ctx没有像getLinuNumber()这样的方法。我怎么能得到解析器行号?

1 个答案:

答案 0 :(得分:1)

您可以使用 ctx.getStart()。getLine()

  

public Token getStart()在此上下文中获取初始标记。注意   从开始到结束的范围是包容性的,因此适用于那些规则   不消耗任何东西(例如,零长度或错误产生)   此令牌可能超过停止

来自文档:http://www.antlr.org/api/Java/org/antlr/v4/runtime/ParserRuleContext.html#getStart()

  

int getLine()此标记的第一个字符所在的行号   匹配,line = 1..n

来自:http://www.antlr.org/api/Java/org/antlr/v4/runtime/Token.html#getLine()