Contents Index Search Previous Next
8.1 Declarative Region
Static Semantics
1
For
each of the following constructs, there is a portion of the program text
called its
declarative region, within which nested declarations
can occur:
2
- any declaration, other than that of
an enumeration type, that is not a completion of a previous declaration;
3
4
5
6
7
The declarative region
includes the text of the construct together with additional text determined
(recursively), as follows:
8
- If a declaration is included, so is
its completion, if any.
9
- If the declaration of a library unit
(including Standard -- see 10.1.1) is included,
so are the declarations of any child units (and their completions, by
the previous rule). The child declarations occur after the declaration.
10
- If a body_stub
is included, so is the corresponding subunit.
11
- If a type_declaration
is included, then so is a corresponding record_representation_clause,
if any.
12
The declarative region of a declaration is also
called the declarative region of any view or entity declared by
the declaration.
13
A
declaration occurs
immediately within a declarative region if
this region is the innermost declarative region that encloses the declaration
(the
immediately enclosing declarative region), not counting the
declarative region (if any) associated with the declaration itself.
14
A declaration is
local
to a declarative region if the declaration occurs immediately within
the declarative region. An entity is
local to a declarative region
if the entity is declared by a declaration that is local to the declarative
region.
15
A declaration is
global
to a declarative region if the declaration occurs immediately within
another declarative region that encloses the declarative region. An entity
is
global to a declarative region if the entity is declared by
a declaration that is global to the declarative region.
16
1 The children of a parent
library unit are inside the parent's declarative region, even though
they do not occur inside the parent's declaration or body. This implies
that one can use (for example) "P.Q" to refer to a child of
P whose defining name is Q, and that after "use P;"
Q can refer (directly) to that child.
17
2 As explained above and
in 10.1.1, ``Compilation
Units - Library Units'', all library units are descendants of Standard,
and so are contained in the declarative region of Standard. They are
not inside the declaration or body of Standard, but they are
inside its declarative region.
18
3 For a declarative region
that comes in multiple parts, the text of the declarative region does
not contain any text that might appear between the parts. Thus, when
a portion of a declarative region is said to extend from one place to
another in the declarative region, the portion does not contain any text
that might appear between the parts of the declarative region.
Contents Index Search Previous Next Legal