提问者:小点点

GroovyDSL脚本


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

我考虑了以下选择:

  1. 自定义文件扩展名;这里最大的缺点是IDE支持:许多几乎不支持编译/编辑具有非groovy扩展名的文件(您可以配置编辑器,但需要一些调整)。
  2. 一个特殊的文件名后缀(前缀),但在这种情况下,后缀应该是真正唯一的(因此相对较长),以避免意外转换常规groovy文件(我目前的选择)。
  3. 应用于脚本类的局部AST转换,缺点是需要为每个脚本编写一些样板代码。
  4. 在脚本中有一些唯一的第一条语句来标识DSL。

在你看来,什么是最好的选择,为什么?我还有没有其他我没有考虑过的选择?


共1个答案

匿名用户

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