「@header」またはその他の @ ルールを ANTLR で機能させるのに問題があります。次のような非常に基本的な文法を使用します。
grammar test;
options {
language = CSharp2;
}
@header {
using System.Collections.Generic;
}
tokens {
TEST;
}
something : TEST*;
TEST : '0' .. '9';
これは、オンラインの ANTLR ドキュメントやその他のさまざまな例に準拠しているようですが、ANTLRWorks v1.4 または ANTLR jar v3.2 を使用して出力を生成しようとすると、次のエラーが発生します。
次の理由により文法を生成できません:
エラー (100): [パス]\test.g:11:1 構文エラー: antlr: [パス]\test.g:11:1 予期しないトークン: トークン {
私が振ることができないようです。文法に @header が含まれていなくても、レクサーとパーサーを正常に生成できます。Windows で最新バージョンの Java を使用しています。
Java バージョン "1.6.0_22" Java(TM) SE ランタイム環境 (ビルド 1.6.0_22-b04) Java HotSpot(TM) クライアント VM (ビルド 17.1-b03、混合モード、共有)
これは非常に単純なことだと思いますが、私はそれに気づいていないので、明白な答えを出してください。