Я написал глобальное преобразование AST, которое должно применяться к сценариям DSL, и сейчас нахожусь в процессе выбора наилучшего способа идентифицировать определенные сценарии groovy как эти сценарии DSL.
Я рассматривал следующие варианты:
- Пользовательское расширение файла; Самым большим недостатком здесь является поддержка IDE: многие из них едва поддерживают компиляцию/редактирование файлов с нестандартными расширениями (вы можете настроить редактор, но он требует некоторой настройки).
- Специальный суффикс имени файла (префикс), но в этом случае суффикс должен быть действительно уникальным (и, следовательно, относительно длинным), чтобы избежать случайного преобразования обычных файлов groovy (мой текущий выбор).
- Локальное преобразование AST, применяемое к классу сценария, имеет недостаток, заключающийся в том, что для каждого сценария необходимо написать некоторый шаблонный код.
- Наличие уникального первого оператора в сценариях, который идентифицирует DSL.
Какой вариант, на ваш взгляд, лучше выбрать и почему? Есть ли в моем распоряжении другие варианты, о которых я не подумал?