XText交叉引用包含交叉引用的规则

时间:2014-05-22 19:04:12

标签: eclipse xtext cross-reference

以下是带有交叉引用的xtext语法的简单表示。

有两个实体 - 容器和对象 - 以及每个实体的操作。我希望能够通过它自己的名称引用一个对象,或者用容器名称来限定。我想在任何一种情况下都可以使用交叉引用。

我的语法是:

Model:
    operations+=Operation*;

ContainerEntity:
    name=ID;

ObjectEntity:
    (first=[ContainerEntity] '.')? name=ID
;

Operation:
    CreateContainer | CreateObject | ContainerOp | ObjectOp
;

CreateContainer:
    'Container' container=ContainerEntity ';'
;

CreateObject:
    'Object' object=ObjectEntity ';'
;

ContainerOp:
    'ContainerOp' name=[ContainerEntity] ';'
;

ObjectOp:
    'ObjectOp' name=[ObjectEntity] ';'
;

编辑声明是:

Container c;

Object o;

ContainerOp c;

ObjectOp o;

ObjectOp c.o; // ERROR: Couldn't resolve reference to ObjectEntity 'c'.

请注意,它不会将“c”识别为ContainerEntity。我能做些什么来按照我描述的方式进行这项工作?

0 个答案:

没有答案