^と!を使用しています ルートノードを設定する演算子と、ASTに含まれない演算子。ただし、ANTLRWorksによって生成されるツリーには違いはありません。そのため、文法が正しくないのか、ANTLRWorksが正しいツリーを作成していないのかわかりません。
これが私の文法の抜粋です
expr
: '('! logExpr ')'!;
これらの括弧はASTに含めるべきではありません。
addExpr
: multExpr ( (PLUS|MINUS)^ multExpr )*;
プラスまたはマイナスは、ASTのルートノードである必要があります。
しかし、これらのことはどちらも私が期待するようには起こっていません。取り外しても元に戻しても違いはありません。ANTLRWorks 1.4.3 ANTLR 3.4