3

私は DSL スクリプトに適用すべきグローバル AST 変換を作成しました。現在、特定のグルーヴィーなスクリプトをこれらの DSL スクリプトとして識別するための最良の方法を選択している最中です。

次のオプションを検討しました。

  1. カスタム ファイル拡張子。ここでの最大の欠点は IDE のサポートです。多くは、Groovy でない拡張子を持つファイルのコンパイル/編集をほとんどサポートしていません (エディターを構成できますが、微調整が必​​要です)。
  2. 特別なファイル名サフィックス (プレフィックス) ですが、この場合、通常の groovy ファイル (私の現在の選択) の偶発的な変換を避けるために、サフィックスは本当に一意である (したがって比較的長い) 必要があります。
  3. スクリプト クラスに適用されるローカル AST 変換には、スクリプトごとにボイラープレート コードを記述する必要があるという欠点があります。
  4. DSL を識別する一意の最初のステートメントをスクリプトに含める。

あなたの意見では、何を選択するのが最良の選択肢であり、その理由は何ですか? 私が考えたことのない他のオプションはありますか?

4

1 に答える 1

0

GroovyShell を使用して DSL スクリプトをコンパイルする場合、CompilerConfiguration.addCompilationCustomizer( ASTTransformationCustomizer( YourGlobalASTTransformation)) を使用して変換を適用できます。

于 2012-07-11T06:55:43.263 に答える