在我的DSL中,我有两个不同的规则可用于定义实体:
第一种方式是通过预设单词后跟实体名称:
Actor Bob
Actor Alice
第二种方法是在两个实体之间建立关系:
Bob -> Alice
与写作
相同Actor Bob -> Actor Alice
现在我有一个关于这些实体的交叉引用的问题。创建对Actors的交叉引用很简单,因为我只引用了规则
Actor:
'Actor' name = ID
但是当我在同一规则中有两个ID时会发生什么?我将如何进行交叉引用
Arrow:
'Actor'? name+=ID '->' 'Actor'? name+=ID
由于同一规则中有多个名称?
谢谢!
答案 0 :(得分:0)
要更改元素的索引方式,您必须调整org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy.createEObjectDescriptions(EObject, IAcceptor<IEObjectDescription>)
并将所有名称下的元素添加到索引中。
如果你想为本地定义这样做,你必须适应
org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.internalGetAllDescriptions(Resource)