交叉引用同一语法规则中的多个名称

时间:2015-06-24 09:03:18

标签: eclipse-plugin grammar xtext

在我的DSL中,我有两个不同的规则可用于定义实体:

第一种方式是通过预设单词后跟实体名称:

Actor Bob

Actor Alice

第二种方法是在两个实体之间建立关系:

Bob -> Alice

与写作

相同
Actor Bob -> Actor Alice

现在我有一个关于这些实体的交叉引用的问题。创建对Actors的交叉引用很简单,因为我只引用了规则

Actor: 
'Actor' name = ID

但是当我在同一规则中有两个ID时会发生什么?我将如何进行交叉引用

Arrow:
'Actor'? name+=ID '->' 'Actor'? name+=ID

由于同一规则中有多个名称?

谢谢!

1 个答案:

答案 0 :(得分:0)

要更改元素的索引方式,您必须调整org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy.createEObjectDescriptions(EObject, IAcceptor<IEObjectDescription>)并将所有名称下的元素添加到索引中。

如果你想为本地定义这样做,你必须适应 org.eclipse.xtext.scoping.impl.ImportedNamespaceAwareLocalScopeProvider.internalGetAllDescriptions(Resource)