问题描述
我在 Xtext 中有以下语法,其中国家扩展了国家。由此我想支持继承。以下是我的语法,之后我将展示一些我想要实现的示例。
grammar org.xtext.example.forest.Forest with org.eclipse.xtext.common.Terminals
generate forest "http://www.xtext.org/example/forest/Forest"
Country:
"country" name=ID ("extends" supercountry=[Country|Qualifiedname])?
"{"
forests=Forest
"}"
;
Forest:
"{"
name=ID
("tree" trees+=Tree ("," trees+=Tree)*)*
("house" houses+=House ("," houses+=House)*)*
("remove" remove=[Tree|Qualifiedname])?
("remove" remove=[House|Qualifiedname])?
;
Tree:
name=ID
;
House:
name=ID
;
Qualifiedname:
ID ('.' ID)*
;
示例如下:
file1.dsl
country C1 {
forest {
tree T1,T2;
house H1,H2;
}
}
file2.dsl
country C2 extends C1 {
forest {
remove T1;
remove H2;
}
}
我想自定义范围提供程序,这样当我说国家 C2 扩展 C1 时,我只会从 C1 获得建议(因为如果我要使用默认范围提供程序并且我将拥有国家 C3 的第三个文件,我也会从那里得到我不想要的建议)。
我也尝试过使用导入的方法,但这对我来说也不起作用。我一直在尝试寻找有关如何自定义此范围提供程序以实现我想要的功能的示例,但一直未能实现。
非常感谢您的帮助。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)