【问题标题】:Xtext - Couldn't resolve reference to ObjectXtext - 无法解析对对象的引用
【发布时间】:2017-10-21 10:31:30
【问题描述】:

我是 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' 的引用”

其他一切正常,例如内容辅助(Strg+Space)

也许你可以帮助我:)

【问题讨论】:

    标签: eclipse xtext resolve


    【解决方案1】:

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

    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 属性计算名称。

    【讨论】:

    • 感谢您的快速回复:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2014-02-08
    相关资源
    最近更新 更多