【问题标题】:Previous token in Antlr3 ParserAntlr3 Parser 中的前一个令牌
【发布时间】:2017-05-23 05:17:43
【问题描述】:

如何在 Antlr 3 解析器中获取之前的令牌?实际上我可以通过使用“input.LT(-1)”轻松获得它。但我不想使用前瞻。那么有没有其他方法可以在解析器中获取前一个令牌?

【问题讨论】:

  • 回避LT(-1)的原因是什么?只要您想要在当前匹配的之前的前一个令牌,这是标准方式,并且被 ANTLR 完全支持。我知道你不能在哪里使用它的唯一情况是,如果你想在某个给定的任意令牌(不是实际匹配的那个)之前知道前一个令牌。

标签: parsing token antlr3


【解决方案1】:

另一种方法是在您的词法分析器中覆盖 emit(Token t)nextToken() 并跟踪最后发出的令牌。有关其工作原理的示例,请查看此问答中的 PyEsque 语法:ANTLR What is simpliest way to realize python like indent-depending grammar?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    • 2016-08-12
    • 1970-01-01
    相关资源
    最近更新 更多