5

我很难弄清楚 ^ 和 ! 代表 ANTLR 语法术语。

4

1 回答 1

8

看看ANTLR 备忘单

! 不包含在 AST
^ 中使 AST 根节点

并且^还可以用于重写规则:... -> ^( ... ). 例如,以下两个解析器规则是等价的:

expression
  :  A '+'^ A ';'!
  ;

和:

expression
  :  A '+' A ';' -> ^('+' A A)
  ;

两者都创建以下 AST:

  +
 / \
A   A

换句话说: the+作为根,两个A是它的孩子,并且;从树中省略了。

于 2010-08-12T09:49:38.623 回答