我有一个 Xtext 项目和几个示例 DSL 文件。我可以使用“Sample Ecore Model Editor”打开这些文件并验证它是否符合 Xtext 生成的元模型。但是,由于 DSL 文件未被识别为 Ecore,我无法创建“EMF 项目”或“EMF 生成器模型”。
我的问题是,如何从example.dsl
文件中导出 ecore?
PS我相信这是可能的,因为这个事实
我有一个 Xtext 项目和几个示例 DSL 文件。我可以使用“Sample Ecore Model Editor”打开这些文件并验证它是否符合 Xtext 生成的元模型。但是,由于 DSL 文件未被识别为 Ecore,我无法创建“EMF 项目”或“EMF 生成器模型”。
我的问题是,如何从example.dsl
文件中导出 ecore?
PS我相信这是可能的,因为这个事实
您有两种方法可以为您的 DSL 获取 ecore 元模型
在标准的向导生成的 Xtext-Project 中,ecore 元模型源自您的语法。工作流生成器将生成的元模型保存到
[Project]/src-gen/[your-package]/[grammar-name].ecore
例如:
org.xtext.example.mydsl/src-gen/org/xtext/example/mydsl/MyDsl.ecore
您也可以自己编写 ecore 元模型并将 if 与您的语法一起使用。这不是一个简单的过程,但它提供了更大的灵活性。有关更多信息,请参阅:http ://blog.efftinge.de/2009/11/xtext-using-existing-ecore-models.html