0
のコンパイル時に呼び出されません。このスクリプトのコンパイルカスタマイザーは、私は構文でグルーヴィーなDSLを書きたいグルーヴィーDSLスクリプト
:私のコンパイル・カスタマイザーがまったく呼び出されない理由を私は理解していない
MultipleCompilationErrorsException: startup failed:
Script1.groovy: 1: expecting EOF, found '1' @ line 1, column 8.
:
2 when 1 == 1
私は例外メッセージが表示されますか? コンパイルの前に呼び出される必要があるので、有効なグルーヴィーコードにすることができます。
スクリプトに有効なGroovyコードが含まれている場合、コンパイルカスタマイザが呼び出されます。
マイコード:
class MyDslTest {
public static void main(String[] args) {
String script = '''2 when 1 == 1
'''
def compilerConfig = new CompilerConfiguration()
compilerConfig.addCompilationCustomizers(new MyCompilationCustomizer())
GroovyShell groovyShell = new GroovyShell(compilerConfig)
groovyShell.evaluate(script)
}
}
class MyCompilationCustomizer extends CompilationCustomizer {
MyCompilationCustomizer() {
super(CompilePhase.CONVERSION)
}
@Override
void call(SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException {
println 'in compilation customizer'
}
}