Xtext Language

来源:互联网 发布:大爆太子太空舱知乎 编辑:程序博客网 时间:2024/06/05 03:21
当新建一个Xtext工程后,会自动打开Entities.xtext文件,这里面是一些语言的语法定义。

新建一个工程后一般都包括了如下三个工程:
• org.example.entities 这是主工程,里面包含着一些语言定义和所有的运行组件                                         is the main project that contains the grammardefinition and all the runtime components             that are independent from the UI
• org.example.entities.tests 包含的是测试单元
• org.example.entities.ui contains 包含的是界面

在.xtext文件中进行语法定义:
//声明了这门语言的名字,它与所有的.xtext文件相关联
grammar org.example.entities.Entities with org.eclipse.xtext.common.Terminals
//定义了一些生成EMF的规则
generate entities "http://www.example.org/entities/Entities"



Model:
greetings+=Greeting*;
Greeting:
'Hello' name = ID '!';
这些才是真正的语法规则

Model: entities += Entity*;
表明我们声明:Entities DSL程序是一个Entity的集合,其中*表示任意个(包括0个),"+="隐含着这是一个集合,因此一个程序可以是空的或者包含0个Entity
If we wanted our programs to contain at least one Entity, we should have used the operator + instead of *.


Entity的格式是:
Entity:
'entity' name = ID ('extends' superType=[Entity])? '{'
attributes += Attribute*
'}'
;
有三个关键字entity extends  {}
因此说一个有效的Entity必须符合以下格式:
entity  nameEntity


详情可以可以参考Xtext官网:
http://www.eclipse.org/Xtext/documentation/102_domainmodelwalkthrough.html
0 0
原创粉丝点击