如何从antlr 4中的语义谓词访问隐藏的令牌

时间:2015-12-30 02:38:02

标签: antlr4 channel

在ANTLR 4中,是否有一种方法可以在解析器的语义谓词中访问隐藏通道(或其他一些通道)上的令牌? 我想将\ r \ n发送到隐藏频道,因为大多数情况下我不需要EOL角色。但在某些情况下,在语义谓词中,我需要查看给定令牌后是否存在EOL。

2 个答案:

答案 0 :(得分:1)

TBH。我没有使用ANLTR 4的经验,但是在ANTLR 3中,您可以使用令牌源获取所有令牌,无论通道如何。类似的东西在版本4中也是可能的。我使用此功能恢复AST子树的原始输入(即从令牌流开始索引到结束索引)。

答案 1 :(得分:0)

是的,可以这样做。请查看this questionthis question的示例。其中第一个似乎直接解决了您“有时”处理EOL的问题。