基本的ANTLR概念

时间:2011-09-16 17:53:07

标签: antlr

我是ANTLR的新手,想澄清一些基本概念。

  1. 解析器是否从词法分析器接收令牌流?如果是,隐藏的通道概念如何适合此令牌流?它是否意味着流中的每个令牌,它有一个属性显示它属于哪个频道?

  2. 我想访问隐藏的通道令牌(空格或注释),例如,在解析器中我自己的令牌之前。我想我必须明确地写一些代码。是通过 org.antlr.runtime.TokenStream.get()吗?应该给它什么参数值?

1 个答案:

答案 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