0

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

谢谢

4

2 回答 2

1

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

于 2010-02-01T15:09:08.843 回答
1

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

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

Antlr 有一些它使用的术语。

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

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

Discarded当您告诉词法分析器丢弃它时,实际上删除了一个标记。它永远不会再被你看到。

于 2010-02-02T16:37:23.047 回答