2

私は最近、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は、ノードのみがキャプチャされるツリーを生成する必要があります。それはあなたのやり方ではありませんか?ルート化('^')または無視('!')のどちらでも機能させることができません。私は非常に混乱しました。

4

1 に答える 1

8

オプション{output=AST;}

于 2010-11-22T17:49:15.070 に答える