目标是
从使用Groovy进行预处理程序指令的脚本语言开始(整个预处理程序语言)
使用Antlr 4解析该脚本(使用print打印常规脚本,使用#作为groovy并输出为Groovy脚本)
在嵌入式Java应用程序中编译Groovy脚本(Groovy应该能够访问该应用程序中的类等)
当脚本想要使用已编译的Groovy(如使用dll的项目)时,在脚本的另一次编译期间稍后加载该脚本。加载时,Groovy脚本将运行并生成特定于用户项目的代码(记住print语句?)。
为什么我要编译它?当最终用户在项目中使用这些外部资源(本质上是dll)时,不需要反复解析这些资源。我希望他们处于准备好的状态。
我的第一个想法是将Antlr生成的AST序列化为二进制,然后将其加载回来,但我意识到编译的Groovy脚本会更加智能。
问题是,如何在动态加载脚本时保存Groovy编译,然后在以后加载?
对于答案的任何帮助都将非常感激=)。