Contents   Index   Search   Previous   Next
 10.1.2 Context Clauses - With Clauses
1
   A context_clause
is used to specify the library_items
whose names are needed within a compilation unit. 
Syntax
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.
Contents   Index   Search   Previous   Next   Legal