首先我们要明白Xtext和Xtend与Java非常接近,它们就是eclipse提供的用于弥补Java语言的一些缺点,使得人们便于阅读等等
/*
*这是设置类似于Java中的类的格式,以及类内部的格式
*/
Entity:
'entity' name = ID ('extends' superType=[Entity])? '{'attributes += Attribute*
'}'
;
/*
*设置entity内部的成员变量
*/
Attribute:
type=AttributeType name=ID ';'
;
/*
*成员变量的类型
*/
AttributeType:
elementType = ElementType (array ?= '[' (length=INT)? ']')?;
/*
*类型可以分为基础类型和实体类型(我们可以将其理解为Java中的引用类型)
*/
ElementType:
BasicType | EntityType
;
BasicType:
typeName =('string'|'int'|'boolean')
;
EntityType:
entity=[Entity]
;
Attribute:type=AttributeType name=ID ';'
;
AttributeType:
elementType = ElementType (array ?= '[' (length=INT)? ']')?
;
ElementType:
BasicType|EntityType;
BasicType:
typeName =('string'|'int'|'boolean')
;
EntityType:
entity=[Entity]
;