Eclipse XText:如何强制XText查找具有特定名称的引用

drkbr07n  于 2022-10-15  发布在  Eclipse
关注(0)|答案(1)|浏览(190)

我这样定义了一个语法

grammar org.xtext.example.mydsl1.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "http://www.xtext.org/example/mydsl1/MyDsl"

Model:
    persons+=(Person | David)
    greetings=(GreetDavid | Greet);

Person returns Person:
    'Holla. My name is' name=ID         //First "create" a person
;
David returns Person:
  'Holla. My name is' name='David'          //David is a special person. He has name David
;
GreetDavid returns Greeting:
    'Hello' person=[David]           //Only greet David with Hello
; 
Greet returns Greeting:
    'Hi' person=[Person]           //Greet other persons with Hi
;

当然,XText抱怨David不是已知类型:“无法解析类型为空”
我怎么才能简单地告诉XText David是一个将被命名为“David”的人呢?
我不想更改Ecore并专门为David创建一个类。
提前谢谢你

mw3dktmi

mw3dktmi1#

您可以使用数据类型规则。例如:

DAVID:'David';
David returns Person:
    'Holla. My name is' name=DAVID
;
GreetDavid returns Greeting:
    'Hello' person=[Person|DAVID]           //Only greet David with Hello
;

相关问题