【发布时间】:2012-09-08 00:36:54
【问题描述】:
我想定义一种具有不同元素的语言,这些元素应包含在不同类型的文件中(即类似于具有 .cpp 和 .h 文件的 C++)。 语法混合是正确的方法吗?如果是这样,我应该如何进行?
【问题讨论】:
-
也许这个article会有用
我想定义一种具有不同元素的语言,这些元素应包含在不同类型的文件中(即类似于具有 .cpp 和 .h 文件的 C++)。 语法混合是正确的方法吗?如果是这样,我应该如何进行?
【问题讨论】:
不同文件类型中的不同元素听起来像是 Grammar Mixins 的用例。基本语法应该定义两种语言共有的语言概念,子语言将从基本语法继承。
最好创建一个手动编写的 Ecore 元模型并将概念映射到它(即不要使用“生成”)。
从 2.10 开始,Xtext 支持解析器规则片段。这意味着您可以使用“片段”关键字定义规则的某些可重用部分。见https://github.com/eclipse/xtext-core/blob/761ffeac7e62525be5a5473988d7f1d577298b67/org.eclipse.xtext.tests/src/org/eclipse/xtext/parser/fragments/FragmentTestLanguage.xtext。
【讨论】: