3
我写了一个应用于DSL脚本的全局AST转换,现在正在选择识别特定groovy脚本作为这些DSL脚本的最佳方式。Groovy DSL脚本
我认为以下选项:
- 自定义的文件扩展名;这里最大的缺点是支持IDE:许多勉强支持编译/编辑具有非常规扩展的文件(您可以配置编辑器,但它需要一些调整)。
- 一个特殊的文件名后缀(前缀),但在这种情况下,后缀应该是非常独特的(因此相对较长),以避免意外转换常规groovy文件(我当前的选择)。
- 本地AST转换应用于脚本类,这有一个缺点,那就是需要为每个脚本编写一些样板代码。
- 在标识DSL的脚本中有一些独特的第一条语句。
你认为什么是最佳选择,为什么?我还没有想过其他的选择吗?
出于性能原因,我想在编译时应用转换。它也允许我运行脚本为'execute(ClassName)'而不是'execute(“path/to/the/script/ClassName.groovy”)' – Nutel 2012-07-11 11:05:01