@ //note: the function \samp{getMarkupKey()} returns the current expanding markup that is handled, if getMarkupKey() == "classes" { //note: all classes will be presented sequentially into tables of 3 columns, whose title is //note: the name of the class, and rows are populated with attributes, foreach i in project.listOfClasses { @ @ //note: the \textit{name}, \textit{Type} and \textit{Description} of all attributes of the //note: class are presented into the table, foreach j in i.listOfAttributes { @ @ } @
@i.name@
AttributeType Description
@j.name@@ //note: the type is expressed in the syntax of our tiny modeling language, @@j.class.name@@ if j.isArray { @[]@ } @@ //note: the description of an attribute must be filled by the user into a protected area, so //note: as to preserve it from an expansion to another, setProtectedArea(i.name + "::" + j.name); @
@ } }