如何将Xtext连接到现有编译器?

时间:2015-02-16 19:06:01

标签: xtext

Xtext doGenerate方法使用org.eclipse.emf.ecore.resource.Resource作为要编译的文件的表示。这本质上是一个抽象语法树。在我们的应用程序中,我们已经有了一个编译器,它将java.io.Reader转换为它自己的AST结构,然后进行其余的编译。

所以问题是将Xtext编辑器连接到现有编译器的最佳方法是什么?

我们目前的想法是,如果我们可以将ecore Resource转换为Reader,那么我们可以从那里生成。但这可以做到吗?它应该完成吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

是的,这听起来像是一种合理的方法。您可能希望将资源转换为XtextResource,请求其IParseResult并使用根节点获取基础文本。通过StringReader将现有基础设施传递到现有基础设施应该没问题。

请注意,Xtext生成器在Eclipse文件系统上方使用自定义抽象。如果您的编译器想要写入工作区/ Eclipse项目,您可能希望适应此API。否则,您将面临Eclipse资源模型的问题。