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:
[CHANGED:] The fitting argument fits the argument unit given by the unit term
UT'i to the corresponding formal argument for the generic
unit via a signature morphism determined by the symbol mapping
UT'i fit SMi
When the symbol mapping SMi is empty, just the unit term
UT'i is written.
The fitting argument fits the argument unit given by the unit term UT'i to the corresponding formal argument for the generic unit via a signature morphism determined by the symbol mapping SMi. 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 shared symbols originate from the same unit declaration).
[CHANGED:] Each fitting argument unit FAUi is required to be a model of the corresponding argument specification, otherwise the unit application is undefined.