Xtext - 无法解析对Object的引用

时间:2017-05-21 20:27:32

标签: eclipse xtext resolve

我是Xtext的新手并且遇到了一个简单的Xtext程序问题:

我的语法看起来像这样:

grammar org.xtext.example.domainmodel.Domainmodel with org.eclipse.xtext.common.Terminals

generate domainmodel "http://www.xtext.org/example/domainmodel/Domainmodel"

Library:
    (books+=Book)*;

Book:
    'Book' 
    isbn=ID 
    title=STRING 
    (subtitle=STRING)? 
    pages=INT 
    ('sequelof' sequelof=[Book])? 
    ('hardcover'|'softcover');

我的脚本看起来像这样

Book J123 "LotR1" "The Fellowship" 608 hardcover
Book J124 "LotR2" "Two Towers" 510 sequelof J123 hardcover

但" J123"在第二行是红色下划线,它表示"无法解决对Book' J123'"

的引用

Everthing else工作正常,例如Content Assist(Strg + Space)

也许你可以帮助我:)

1 个答案:

答案 0 :(得分:2)

默认情况下,引用适用于name属性。即您需要将语法更改为以下内容:

grammar org.xtext.example.domainmodel.Domainmodel with 
org.eclipse.xtext.common.Terminals

generate domainmodel "http://www.xtext.org/example/domainmodel/Domainmodel"

Library:
  (books+=Book)*;

Book:
  'Book' 
  name=ID 
  title=STRING 
  (subtitle=STRING)? 
  pages=INT 
  ('sequelof' sequelof=[Book])? 
  ('hardcover'|'softcover');

如果您不想这样做,可以实施IQualifiedName提供程序,以便使用isbn属性计算名称。

相关问题