Java.gには、次のルールがあります(わかりやすくするために空白は削除されています)。
statement
: block
| ('assert') expression (':' expression)? ';'
| 'assert' expression (':' expression)? ';'
| 'if' parExpression statement ('else' statement)?
(...)
;
私は2つの質問があります:
- 2つの「アサート」サブルールが本当に必要ですか?
- そうでない場合、ANTLRはまったく同じ入力を定義しているように見えるので、なぜあいまいさを訴えないのですか?
前もって感謝します。