什么^和!代表ANTLR语法

时间:2010-08-12 09:45:13

标签: antlr grammar antlr3 antlrworks

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

1 个答案:

答案 0 :(得分:8)

查看ANTLR Cheat Sheet

  

!不包括在AST中   ^生成AST根节点

^也可用于重写规则:... -> ^( ... )。例如,以下两个解析器规则是等效的:

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

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

两者都创建以下AST:

  +
 / \
A   A

换句话说:+以root身份生成,两个A是其子级,;从树中省略。