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.