![]() |
|
|||
The Precursor proposalThis is the Precursor proposal as was submitted by Bertrand Meyer (based on collective work, see credits at end) to the NICE language committee New reserved word(To be added to list in "Eiffel: The Language", page 553.) Precursor
Syntax changePage 342, definition of Unqualified_call (previously Entity [Actuals]) becomes Unqualified_call == Feature_of_call [Actuals] with the new construct definitions
Feature_of_call == Entity | Precursor
Precursor == [Parent_qualification] Precursor
Parent_qualification == { Class_name }
Validity changesNote (not subject to vote): everything could be done within VUEX, page 368. I have found it more clear to introduce two new constraints. In VUEX, page 368, replace condition 1 by
with the new validity rule VUNQ
The "immediate precursor" of r in this case is the routine being redefined from a parent of C, determined in case of ambiguity (under condition 2 of the rule) by the Class_name of the given Parent_qualification. Also, in VUAR, page 369, rewrite the parenthetical sentence on line 2 of the rule by
Semantics changeInsert a new section on page 345 between 21.8 and 21.9:
or
may only appear in the redefinition of a routine r. The original version of r in the parent is known as the "immediate precursor". In this case the feature of the call, fname, is the immediate precursor. Also, the next section (21.9) should begin
Note
(This note is not part of the proposal and the vote does not apply to it.) Since "Object-Oriented Software Construction, second edition" (Prentice Hall, 1997) uses double braces, as in {{PARENT}}, rather than single braces as in {PARENT}, it may be desirable for compilers to accept both forms.
Credits
(This section is not part of the proposal and the vote does not apply to it.) The language construct described in this proposal is the result of collective work. The contributions of the following people are acknowledged (with apologies for any omissions, which will be corrected if reported): Eric Bezault, Roger Browne, James McKim, Xavier Le Vourch, Bertrand Meyer, Frieder Monninger, Steve Tynor, Dino Valente, Kim Walden.
|