当我想在Xtext工作中的语法规则之间进行交叉引用时,我需要为此使用关键字name
。例如:
Constant:
name=NAME_TERMINAL "=" number=Number;
ConstUsage:
constant=[Constant | NAME_TERMINAL];
是否可以将此单词更改为另一个单词(例如id
)?我需要例如如果我有规则,该规则将参数name
用于其他内容。
答案 0 :(得分:0)
您可以使用IQualifiedNameProvider
的自定义实现,例如通过将DefaultDeclarativeQualifiedNameProvider
子类化。
public class MyDslQNP extends DefaultDeclarativeQualifiedNameProvider{
QualifiedName qualifiedName(Element e) {
Package p = (Package) e.eContainer();
return QualifiedName.create(p.getName(), e.getId());
}
}
有关完整示例,请参见https://dietrich-it.de/xtext/2011/07/16/iqualifiednameproviders-in-xtext-2-0.html