我试图理解Xtext并了解它是否符合我的需求。我正在寻找一个工具,它允许我创建一个 DSL,可以在执行期间在我的应用程序中进行编译和评估。
Xtext 似乎是一个非常好的工具,因为它为此提供了很多东西(语法编辑器、IDE 集成、解析器生成器等)。据我了解,Xtext 可以为我生成解析器和 IDE 扩展,但如果我需要编译器,我必须自己编写它,或者创建 Java 映射,从而生成我可以编译的生成的 Java 源文件。
我不知道是否可以将 Xtext 的解析器和生成器嵌入到我的应用程序中,并在运行时编译用 DSL 编写的脚本,而无需预编译它们。目标是将脚本与我的应用程序一起发送,使发布后的更改成为可能。
最佳答案
是的,这是完全可能的,而且实际上非常简单。所有核心组件(即非 IDE 功能)均独立于 Eclipse。文档中有示例 Java 代码,展示了如何执行此操作。 这基本上是一个问题或
// creating the injector
Injector injector = new MyLanguageStandaloneSetup().createInjectorAndDoEMFRegistration()
// obtain a resource set
XtextResourceSet resourceSet = injector.get(XtextResourceSet.class);
// load file
Resource resource = resourceSet.getResource(URI.create("path/to/file.mylanguage"), true);
// obtain root AST element
MyModel model = (MyModel) resource.getContents().get(0);
关于java - Xtext运行时编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13442808/