ANTLR 3にはかなり基本的な文法があり、次のことを実行しようとしています。-「用語」の前に「+」が表示されている場合は、冗長であるため削除します(完了)。-「term」の前に「-」が表示されている場合はそのままにしますが、最初の子ノードに「0」を追加して、「-2」から「0-2」に効果的に移動できるようにします。
expression:
unaryterm ((ADD^ | MINUS^) term)*
;
unaryterm:
(ADD! | MINUS^)? term
;
ツリーの書き換えに挑戦しましたが、可能な「-」のマッチングに関しては行き詰まっているようです。
注:ADDは「+」を表し、MINUSは「-」を表します。