Взгляните на АНТЛР Шпаргалку :
!
не включать в AST
^
сделать корневой узел AST
И ^
также можно использовать в правилах перезаписи: ... -> ^( ... )
. Например, следующие два правила синтаксического анализа эквивалентны:
expression
: A '+'^ A ';'!
;
и
expression
: A '+' A ';' -> ^('+' A A)
;
Оба создают следующее AST:
+
/ \
A A
Другими словами: +
сделан как корень, два A
- его дочерние элементы, а ;
исключен из дерева.