The domain model of the language (Fig. 3) can be
expressed using a UML class diagram with generalization and
aggregation relationships.
Consecutively the abstract syntax of the language can be
expressed with a CFG with the following productions
(including semantic action symbols – their identifiers start with
#):