Groovy DSL脚本

时间:2012-07-10 23:38:44

标签: groovy dsl

我编写了一个应该应用于DSL脚本的全局AST转换,现在我正在选择识别特定groovy脚本作为这些DSL脚本的最佳方法。

我考虑了以下选项:

  1. 自定义文件扩展名;这里最大的缺点是IDE支持:许多人几乎不支持编译/编辑具有非常规扩展的文件(您可以配置编辑器,但需要进行一些调整)。
  2. 一个特殊的文件名后缀(前缀),但在这种情况下,后缀应该是唯一的(因此相对较长)以避免意外转换常规groovy文件(我当前的选择)。
  3. 应用于脚本类的本地AST转换,这样做的缺点是需要为每个脚本编写一些样板代码。
  4. 在脚本中有一些唯一的第一个语句来识别DSL。
  5. 您认为最佳选择是什么?为什么?我还有其他任何我没想过的选择吗?

1 个答案:

答案 0 :(得分:0)

如果使用GroovyShell编译DSL脚本,可以使用CompilerConfiguration.addCompilationCustomizer( ASTTransformationCustomizer( YourGlobalASTTransformation))对它们应用转换。