【问题标题】:Antlr3 - HIDDEN token in the parserAntlr3 - 解析器中的隐藏令牌
【发布时间】:2010-02-01 15:05:49
【问题描述】:

您能否在解析器的单个规则中使用在词法分析器中定义的隐藏通道中的标记,就像它是普通标记一样? 生成的代码是Java...

谢谢

【问题讨论】:

    标签: parsing antlr token lexer channel


    【解决方案1】:

    当你构造一个 CommonTokenStream 时,你告诉它使用什么通道。解析器将看不到其他通道上的令牌。

    【讨论】:

    【解决方案2】:

    是的,您可以在解析器中使用隐藏标记。

    我们一直这样做。唯一的问题是您需要知道何时寻找它。

    Antlr 使用了一些术语。

    Hidden 令牌只是在单独的流上传播。用户始终可以通过在当前匹配的令牌上调用 getHiddenAftergetHiddenBefore 来检查隐藏的令牌。

    注意:在匹配的标记之前或之后可能隐藏了多个标记,因此您应该遍历它们。

    当您告诉词法分析器丢弃 Discarded 标记时,它实际上已被删除。你再也见不到它了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多