1

目标是

  1. 从将 Groovy 用于预处理器指令的脚本语言开始(整个预处理器语言)

  2. 使用 Antlr 4 解析该脚本(将常规脚本与打印和剥离 # 用于 groovy 并作为 Groovy 脚本输出)

  3. 在嵌入式 Java 应用程序中编译 Groovy 脚本(Groovy 应该能够访问该应用程序中的类等)

  4. 当该脚本想要使用已编译的 Groovy 时(如使用 dll 的项目),稍后在另一个脚本编译期间加载该脚本。加载时,Groovy 脚本将运行并生成特定于用户项目的代码(还记得打印语句吗?)。

为什么我要编译它?当最终用户在项目中使用这些外部资源(本质上是 dll)时,不需要一遍又一遍地解析它们。我希望他们处于准备就绪状态。

我的第一个想法是将 Antlr 生成的 AST 序列化为二进制,然后将其加载回来,但我意识到编译后的 Groovy 脚本会更智能。

问题是,如何保存 Groovy 在动态加载脚本时所做的编译,然后在以后加载它?

任何对答案的帮助将不胜感激=)。

4

0 回答 0