UNIT-APPL ::= unit-appl UNIT-NAME FIT-ARG-UNIT*
A unit application UNIT-APPL is written:
UN[FAU1]...[FAUn]It refers to a generic unit named UN that has already been declared or defined in the enclosing architectural specification, providing a fitting argument FAUi for each declared parameter (in the same order).
FIT-ARG-UNIT ::= fit-arg-unit UNIT-TERM SYMB-MAP-ITEMS*
A fitting argument FAUi is written:
UT"i fit SYi1 |-> SY'i1, ..., SYip |-> SY'ipA symbol SYiq listed alone abbreviates the identity symbol map SYiq |-> SYiq. Keywords indicating the syntactic categories of the following symbols may be inserted in the list, as for the translation and reduction constructs. When the symbol map list is empty, just the unit term UT is written.
The fitting argument fits the argument unit given by the unit term to the corresponding formal argument for the generic unit via a signature morphism determined by the symbol map list SY1 |-> SY'1, ..., SYp |-> SY'p. The signature morphism is obtained in the same way as for generic specifications. Unmapped symbols are included unchanged. Of course, the signature of the actual argument might coincide with the corresponding signature in the generic unit type, in which case no extra fitting is needed, and the argument unit is passed to the generic unit directly. The compatibility of the arguments must be ensured (by checking that common symbols originate from the same unit declaration).