Each alternative in a conformity clause is composed by a specification part, which determines whether the alternative is chosen, followed by a unit that yields the value to which the clause elaborates in case the alternative is chosen. Each specification part contains a formal declarer followed by an optional defining identifier.
Consider for example the following conformity clause:
case datum in (int i): i + 10, (real r): entier r + 10, (void): 0 esac
The first alternative has a specification part (int i):
.
It specifies that the alternative is chosen in case the enquiry clause
datum
is an int, and ascribes that value to the identifier
r
(which becomes a defining identifier) in the following unit.
The second alternative has a similar specification part
(real r)
. The specification part of the third and last
alternative, (void)
, doesn’t have an identifier.
Simplified [RR 3.4.1.j,k]:
j) MODE specification defining new MODE TAG: declarative defining new MODE TAG brief pack, colon token. k) MOID specification defining new EMPTY: formal MOID declarer brief pack, colon token.