5

^と!が何をするのか理解するのに苦労していました。ANTLR文法用語の略です。

4

1 に答える 1

8

ANTLRチートシートをご覧ください:

! AST に含めないでください
^ AST ルート ノードを作成します

また^、書き換えルールでも使用できます: ... -> ^( ... ). たとえば、次の 2 つのパーサー ルールは同等です。

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

と:

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

どちらも次の AST を作成します。

  +
 / \
A   A

つまり、+はルートとして作成され、2 つAの はその子となり、;はツリーから除外されます。

于 2010-08-12T09:49:38.623 に答える