我想重用一个exisitng Xtext语法,我发现你可以通过mixins来实现。所以,为了开始,我创建了一个简单的Xtext项目,看它是否有效。让我们把它称为语法B和语法来重用A.我在B的Manifest文件中添加了一个依赖关系。
语法B
grammar org.xtext.example.mydsl.MyDslB with
org.xtext.example.mydsl.MyDslA
generate myDslB "http://www.xtext.org/example/mydsl/MyDslB"
Model:
greetings+=Greeting*
(invariants+=Invariant)*;
Greeting:
'Hello' name=ID '!';
语法A
grammar edu.kit.ipd.sdq.xocl4inv.XOcl4Inv with org.eclipse.xtext.xbase.Xbase
import "http://www.eclipse.org/xtext/xbase/Xbase" as xbase
import "http://www.eclipse.org/emf/2002/Ecore" as ecore
import "http://www.eclipse.org/xtext/common/JavaVMTypes" as types
generate myDslA "http://www.xtext.org/example/mydsl/MyDslA"
*Rules follow here*
"不变"是我想重用的语法A规则。所以现在的问题是,Xtext无法找到对语法A的引用,尽管它被导入工作区并添加了依赖项。我认为也许URI是错的,但我通过建议(Ctrl + Space)输入它,当点击它(Ctrl +点击URI)时,我会看到原始语法文件,所以我不认为有什么问题它。
我可能遗漏了一个步骤吗?感谢您的帮助!