我是ANTLR的新手,想澄清一些基本概念。
解析器是否从词法分析器接收令牌流?如果是,隐藏的通道概念如何适合此令牌流?它是否意味着流中的每个令牌,它有一个属性显示它属于哪个频道?
我想访问隐藏的通道令牌(空格或注释),例如,在解析器中我自己的令牌之前。我想我必须明确地写一些代码。是通过 org.antlr.runtime.TokenStream.get()吗?应该给它什么参数值?
答案 0 :(得分:3)
JavaMan写道:
解析器是否从词法分析器接收令牌流?
TokenStream
缠绕在词法分析器周围。默认情况下,Parser
根据需要“轮询”此流的标记(即输入不是一次性标记化,而是缓存)。
JavaMan写道:
如果是,隐藏通道概念如何适合此令牌流?它是否意味着流中的每个令牌,它有一个属性显示它属于哪个频道?
默认TokenStream
只会生成DEFAULT
频道上的令牌。您可以在解析期间更改频道(或从多个频道中读取)[1]。
JavaMan写道:
我想访问隐藏的通道令牌(空格或注释),比如说,在解析器中我自己的令牌之前。我想我必须明确编码。
正确,见[1]。
[1] How do I get an Antlr Parser rule to read from both default AND hidden channel