// specify your DSL grammar rules here ... // IMPORTANT: You should change the property 'overwrite.pluginresources=true' in the properties file to 'overwrite.pluginresources=false' AFTER first generation Model: (uses+=Using)* (package=Package); Using: "using" name=ID ";" ; Package: "package" name=ID "{" (types+=Type)* "}"; Type: BasicType | Association; BasicType: DataType | Entity ; DataType: "datatype" name=ID ";"; Entity: (basic?="basic")? "entity" name=ID ("extends" supertype=[Entity])? "{" (features+=Feature | Choice)* "}"; Feature: (identifier?="identifier")? type=[BasicType|ID] (multiplicity?="[1..n]" | "[0..n]" | "[0..1]")? name=ID ";"; Choice: "choice" "{" (features+=Feature) "}"; Association: "association" (isNavigable?="navigable")? (containment?="aggregate" | "composite")? (multiplicity?="[1..1]" | "[1..n]" | "[n..m]" | "[0..1]" | "[0..n]")? fromEntity=ID "," toEntity=ID ("extends" supertype=[Entity]) ";";