目標は
プリプロセッサ ディレクティブに Groovy を使用するスクリプト言語から始める (プリプロセッサ言語全体)
そのスクリプトを Antlr 4 で解析します (通常のスクリプトを print で囲み、# を削除して groovy にし、Groovy スクリプトとして出力します)。
組み込み Java アプリケーションで Groovy スクリプトをコンパイルします (Groovy はそのアプリケーションのクラスなどにアクセスできるはずです)。
そのスクリプトがコンパイル済みの Groovy を使用したい場合 (dll を使用するプロジェクトなど)、スクリプトの別のコンパイル中に後でそのスクリプトをロードします。ロードすると、Groovy スクリプトが実行され、ユーザーのプロジェクトに固有のコード (print ステートメントを覚えていますか?) が生成されます。
なぜコンパイルしたいのですか?これらの外部リソース (基本的には dll) は、エンド ユーザーがプロジェクトで使用する際に何度も解析する必要はありません。準備万端の状態にしてほしい。
最初のアイデアは、Antlr によって生成された AST をバイナリにシリアル化し、それを再度読み込むことでしたが、コンパイルされた Groovy スクリプトの方がはるかにスマートであることに気付きました。
問題は、Groovy がスクリプトを動的にロードするときに作成するコンパイルを保存し、後でそれをロードするにはどうすればよいかということです。
答えに向けての助けは大歓迎です=)。