ANTLRMavenプラグインを使用したMavenプロジェクトでNetbeans7.1.1を使用して、Lexer +ParserJavaクラスを生成しています。これは機能します。
私が解決するのに苦労していること:
レクサークラスとパーサークラスが開発時に見つかるように、同じプロジェクト内にテストリグを構築するにはどうすればよいですか?
指定するMavenの方法はありますか:最初に「生成されたソース」のものをビルドし(つまり、Antlrで生成された)、次に私の「手動」ソースをビルドしますか?
最初のプロジェクトに依存するセカンダリMavenプロジェクトを構築する必要がありますか?
すでに存在するパーサー/レクサークラスには実際には存在しないANTLRテストリグクラスを構築するための「汎用」(動的?)メカニズムはありますか?('ClassForName' JDBCスタイルのメカニズム?)
問題を明確にするため。これが私のテストリグクラスのスニペットです。これはコンパイルできません(レクサー/パーサーがまだビルドされていないためです...):
...
myLexer lexer = new myLexer(input);
CommonTokenStream tokens = new CommonTokenStream(lexer);
myParser parser = new myParser(tokens);
parser.file();
...
OK-以下のアドバイスと生成されたJavaの再確認の後-実際、私の文法ファイル(javaパッケージ構造に配置されていますが)に、生成されたJavaプロジェクトを指定する@headerディレクティブが含まれていないことに気づいていませんでした住むクラス。
これが、私のテスト(または実際に私のメインプログラム)がLexer/Parserクラスを表示できなかった理由です。(私は単に、私が思っていたものとは異なるパッケージ構造にあるJavaクラスにアクセスしようとしていました)。
この他のStackOverFlowケースは、私にとって最後のクリンチャーでした。