0

我刚刚开始学习 XTEXT,我可以看到自动编码的美好未来。:) 目前我正在研究七种语言的培训部分,我被困在 MongoDb 示例上。我正在按照该示例的描述进行操作,但遇到了 DSL 中未解析类型的问题(当我尝试在“艺术家”中定义“专辑”或“曲目”时,IDE 显示“无法解析为类型”)

提前致谢

grammar org.xtext.example.mydsl.MongoBeans with org.eclipse.xtext.xbase.Xbase

generate mongoBeans "http://www.xtext.org/example/mydsl/MongoBeans"

MongoFile:
    importSection=XImportSection?
    elements+=AbstractElement*;

AbstractElement:
    PackageDeclaration | MongoBean;

PackageDeclaration:
    'package' name=QualifiedName '{'
        elements+=AbstractElement*
    '}';

MongoBean:
    name=ValidID '{'
        features+=AbstractFeature*
    '}';

AbstractFeature:
    MongoOperation | MongoProperty;

MongoProperty:
    (type=JvmTypeReference | inlineType=MongoBean) (many?='*')? name=ValidID;

MongoOperation:
    =>(returnType=JvmTypeReference name=ValidID '(')
            (parameters+=FullJvmFormalParameter
                (',' parameters+=FullJvmFormalParameter)*
            )?
    ')'
    body=XBlockExpression;



package org.musicdb {
    // a mongo bean
    Artist {
        String name    // single valued property
        Album* album

        Album* albums  // array property
        // an operation
        Iterable<Track> getOeuvre() {
            albums.map[track].flatten
        }
    }

    // another mongo bean
    Album {
        String title
        int year
        // inline definition of a mongo bean
        Track {
            String title
            int seconds
        }* tracks
    }
}
4

0 回答 0