Parsing Antlr3解析器中的上一个标记

Parsing Antlr3解析器中的上一个标记,parsing,token,antlr3,Parsing,Token,Antlr3,如何在Antlr 3解析器中获取上一个标记?。实际上,通过使用“input.LT(-1)”,我可以很容易地获得它。但是我不想使用lookahead。那么有没有其他方法可以在解析器中获得前一个标记呢 另一种方法是覆盖lexer中的emit(Token t)和nextToken(),并跟踪最后发出的Token。有关如何工作的示例,请查看本问答中的PyEsque语法: 但是我只想使用input.LT(-1)避免LT(-1)的原因是什么?只要您希望前一个令牌先于当前匹配的令牌,这就是标准方式,并且完全受

如何在Antlr 3解析器中获取上一个标记?。实际上,通过使用“input.LT(-1)”,我可以很容易地获得它。但是我不想使用lookahead。那么有没有其他方法可以在解析器中获得前一个标记呢

另一种方法是覆盖lexer中的
emit(Token t)
nextToken()
,并跟踪最后发出的Token。有关如何工作的示例,请查看本问答中的
PyEsque
语法:


但是我只想使用
input.LT(-1)

避免
LT(-1)
的原因是什么?只要您希望前一个令牌先于当前匹配的令牌,这就是标准方式,并且完全受ANTLR支持。我所知道的唯一不能使用它的情况是,如果您想在某个给定的任意标记(不是实际匹配的标记)之前知道前一个标记。