- (1)
- A context_clause is used to specify the library_items whose names are
needed within a compilation unit.
(2)
context_clause ::= {context_item}
(3)
context_item ::= with_clause | use_clause
(4)
with_clause ::= with library_unit_name {, library_unit_name};
Name Resolution Rules
- (5)
- The scope of a with_clause that appears on a library_unit_declaration or
library_unit_renaming_declaration consists of the entire declarative region
of the declaration, which includes all children and subunits. The scope of a
with_clause that appears on a body consists of the body, which includes all
subunits.
- (6)
- A library_item is mentioned in a with_clause if it is denoted by a
library_unit_name or a prefix in the with_clause.
- (7)
- Outside its own declarative region, the declaration or renaming of a
library unit can be visible only within the scope of a with_clause that
mentions it. The visibility of the declaration or renaming of a library unit
otherwise follows from its placement in the environment.
Legality Rules
- (8)
- If a with_clause of a given compilation_unit mentions a private child of
some library unit, then the given compilation_unit shall be either the
declaration of a private descendant of that library unit or the body or
subunit of a (public or private) descendant of that library unit.
-
- (9)
(3) A library_item mentioned in a with_clause of a compilation unit is
visible within the compilation unit and hence acts just like an ordinary
declaration. Thus, within a compilation unit that mentions its
declaration, the name of a library package can be given in use_clauses
and can be used to form expanded names, a library subprogram can be
called, and instances of a generic library unit can be declared. If a
child of a parent generic package is mentioned in a with_clause, then
the corresponding declaration nested within each visible instance is
visible within the compilation unit.
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12