^と!を使用しています。オペレータはルートノードを設定し、ASTには含まれないようにします。しかし、ANTLRWorksによって生成されるツリーに違いはありません。文法が間違っているのか、ANTLRWorksが正しいツリーを作成していないのかはわかりません。ここでANTLR AST演算子を無視する
は、これらの括弧は、ASTに含めるべきではありません、私の文法のスニペット
expr
: '('! logExpr ')'!;
です。
addExpr
: multExpr ((PLUS|MINUS)^ multExpr)*;
PLUSまたはMINUSは、ASTのルートノードである必要があります。
しかし、これらのことのいずれも、私が期待する方法では起こっていません。私はそれらを取り除いたり、戻したりしても差はありません。 ANTLRWorks 1.4.3 ANTLR 3.4
。私はまたあなたにastを出力するようantlrに言ったとします? – stryba
@strybaツリーの図を示すインタプリタタブ。それともASTではなく、これは構文木ですか? –