自定义继承 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...