Что значит ^ и!обозначать грамматику ANTLR - PullRequest
5 голосов
/ 12 августа 2010

Мне было трудно понять, что делает ^ и! расшифровывается в терминологии ANTLR по грамматике.

1 Ответ

8 голосов
/ 12 августа 2010

Взгляните на АНТЛР Шпаргалку :

! не включать в AST
^ сделать корневой узел AST

И ^ также можно использовать в правилах перезаписи: ... -> ^( ... ). Например, следующие два правила синтаксического анализа эквивалентны:

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

и

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

Оба создают следующее AST:

  +
 / \
A   A

Другими словами: + сделан как корень, два A - его дочерние элементы, а ; исключен из дерева.

...