Xtext doGenerate
方法使用org.eclipse.emf.ecore.resource.Resource
作为要编译的文件的表示。这本质上是一个抽象语法树。在我们的应用程序中,我们已经有了一个编译器,它将java.io.Reader
转换为它自己的AST结构,然后进行其余的编译。
所以问题是将Xtext编辑器连接到现有编译器的最佳方法是什么?
我们目前的想法是,如果我们可以将ecore
Resource
转换为Reader
,那么我们可以从那里生成。但这可以做到吗?它应该完成吗?或者有更好的方法吗?
答案 0 :(得分:2)
是的,这听起来像是一种合理的方法。您可能希望将资源转换为XtextResource
,请求其IParseResult
并使用根节点获取基础文本。通过StringReader
将现有基础设施传递到现有基础设施应该没问题。
请注意,Xtext生成器在Eclipse文件系统上方使用自定义抽象。如果您的编译器想要写入工作区/ Eclipse项目,您可能希望适应此API。否则,您将面临Eclipse资源模型的问题。