私は最近、Antlrを学び、Antlr3.2を含むと思われるAntlrWorks1.4をダウンロードし始めました。現在、3.2は「->」のような書き換えルールの文法をサポートすることになっていますが、レクサールールまたはパーサールールのいずれかに基づいて動作するように構築できる最も単純なケースでさえも取得できませんでした。
grammar TestRewrite;
ab : a b -> a;
a : A;
b : B;
A : 'a';
B : 'b';
これをコンパイルしようとすると、次のエラーが発生します。
[11:26:29] error(100): TestRewrite.g:3:13: syntax error: antlr: TestRewrite.g:3:13: unexpected token: a
どうしてこれなの。構造は十分に単純なようです。abは、ノードのみがキャプチャされるツリーを生成する必要があります。それはあなたのやり方ではありませんか?ルート化('^')または無視('!')のどちらでも機能させることができません。私は非常に混乱しました。