Static Semantics
- (1)
- An operation operates on a type T if it yields a value of type T, if it
has an operand whose expected type (see 8.6) is T, or if it has an access
parameter (see 6.1) designating T. A predefined operator, or other
language-defined operation such as assignment or a membership test, that
operates on a type, is called a predefined operation of the type. The
primitive operations of a type are the predefined operations of the type,
plus any user-defined primitive subprograms.
- (2)
- The primitive subprograms of a specific type are defined as follows:
- (3)
- The predefined operators of the type (see 4.5);
- (4)
- For a derived type, the inherited (see 3.4) user-defined
subprograms;
- (5)
- For an enumeration type, the enumeration literals (which are
considered parameterless functions -- see 3.5.1);
- (6)
- For a specific type declared immediately within a package_specification, any subprograms (in addition to the enumeration
literals) that are explicitly declared immediately within the
same package_specification and that operate on the type;
- (7)
- Any subprograms not covered above that are explicitly declared
immediately within the same declarative region as the type and
that override (see 8.3) other implicitly declared primitive
subprograms of the type.
- (8)
- A primitive subprogram whose designator is an operator_symbol is called a
primitive operator.
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe
-- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12