如何解决自定义继承 Xtext 的范围
我在 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 举报,一经查实,本站将立刻删除。