| -- @name ${dsl.name} | |
| -- @version 1.0 | |
| -- @authors ${author} | |
| -- @date ${date} | |
| -- @description ${description} | |
| package ${dsl.name} { | |
| -- Every class should extend LocatedElement, directly or indirectly. | |
| -- This is a technical constraint to support text-to-model traceability. | |
| abstract class LocatedElement { | |
| attribute location[0-1] : String; | |
| attribute commentsBefore[*] ordered : String; | |
| attribute commentsAfter[*] ordered : String; | |
| } | |
| -- BEGIN Language-specific classes (replace sample contents) | |
| class Root extends LocatedElement { | |
| reference elements[*] ordered container : Element; | |
| } | |
| class Element extends LocatedElement { | |
| attribute name : String; | |
| } | |
| -- END Language-specific classes | |
| } | |
| package PrimitiveTypes { | |
| datatype Boolean; | |
| datatype Double; | |
| datatype Integer; | |
| datatype String; | |
| } |