Having restricted the extending part to a list of basic items wouldEXTENSION ::= extension OF-SPEC+ BASIC-ITEM+ OF-SPEC ::= SPEC | conservative SPEC
A minor point is that we noticed an inconsistency between extension, that can
protect its parameters, and union, that cannot. Hence, here we are also
proposing to generalize the construct for union accordingly, because this
would decrease the loss of generality in simplifying the extension.
Analogously, the construct for freeness, should have two arguments
Having interpreted SPEC as self-contained specifications, the
construct for local stuff has to be modified accordingly.
Indeed, the construct for local specification should be moved to the
second part on structured specifications, where it belongs, and a
construct for local basic-items should be added, as suggested also by
Andrzej (Michel supporting, we believe).
UNION ::= union OF-SPEC+
where, notice, the SPEC part is, now, a closed specification,
whose signature includes those of each OF-SPEC .
Since the FREE construct is often used with as SPEC part an
extension of the OF-SPEC , we suggest to have, either at the concrete
or at the abstract syntax level, also a derived construct
FREE ::= free OF-SPEC+ SPEC
where free-extension OF-SPEC+ BASIC-ITEM+ expands to
FREE-EXTENSION ::= free-extension OF-SPEC+ BASIC-ITEM+
free OF-SPEC+ (extension OF-SPEC+ BASIC-ITEM+).
CoFI
Note: L-3 --DRAFT, Version 0.2-- 21 May 1997.
Comments to cerioli@disi.unige.it