1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>AARM95 - Context Clauses - With Clauses</TITLE>
<META NAME="Author" CONTENT="JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor">
<META NAME="GENERATOR" CONTENT="Arm_Form.Exe, Ada Reference Manual generator">
<STYLE type="text/css">
DIV.paranum {position: absolute; font-family: Arial, Helvetica, sans-serif; left: 0.5 em; top: auto}
TT {font-family: "Courier New", monospace}
DT {display: compact}
DIV.Normal {font-family: "Times New Roman", Times, serif; margin-bottom: 0.6em}
DIV.Wide {font-family: "Times New Roman", Times, serif; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Annotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.WideAnnotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Index {font-family: "Times New Roman", Times, serif}
DIV.SyntaxSummary {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Notes {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.NotesHeader {font-family: "Times New Roman", Times, serif; margin-left: 2.0em}
DIV.SyntaxIndented {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Indented {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-bottom: 0.6em}
DIV.CodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.SmallIndented {font-family: "Times New Roman", Times, serif; margin-left: 10.0em; margin-bottom: 0.6em}
DIV.SmallCodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.Examples {font-family: "Courier New", monospace; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.SmallExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 7.5em; margin-bottom: 0.6em}
DIV.IndentedExamples {font-family: "Courier New", monospace; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.SmallIndentedExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 15.0em; margin-bottom: 0.6em}
UL.Bulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.IndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SyntaxIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.Hanging {font-family: "Times New Roman", Times, serif; margin-top: 0em; margin-bottom: 0.6em}
DD.Hanging {margin-left: 6.0em}
DL.IndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.IndentedHanging {margin-left: 2.0em}
DL.HangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.HangingInBulleted {margin-left: 4.0em}
DL.SmallHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallHanging {margin-left: 7.5em}
DL.SmallIndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallIndentedHanging {margin-left: 2.0em}
DL.SmallHangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallHangingInBulleted {margin-left: 5.0em}
DL.Enumerated {font-family: "Times New Roman", Times, serif; margin-right: 0.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.Enumerated {margin-left: 2.0em}
DL.SmallEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallEnumerated {margin-left: 2.5em}
DL.NestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.SmallNestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
</STYLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFF0" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<P><A HREF="AA-TOC.html">Contents</A> <A HREF="AA-0-29.html">Index</A> <A HREF="AA-10-1-1.html">Previous</A> <A HREF="AA-10-1-3.html">Next</A></P>
<HR>
<H1> 10.1.2 Context Clauses - With Clauses</H1>
<DIV Class="Paranum"><FONT SIZE=-2>1</FONT></DIV>
<DIV Class="Normal"> [A <FONT FACE="Arial, Helvetica">context_clause</FONT>
is used to specify the <FONT FACE="Arial, Helvetica">library_item</FONT>s
whose names are needed within a compilation unit.] </DIV>
<H4 ALIGN=CENTER>Language Design Principles</H4>
<DIV Class="Paranum"><FONT SIZE=-2>1.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><A NAME="I3893"></A>The reader
should be able to understand a <FONT FACE="Arial, Helvetica">context_clause</FONT>
without looking ahead. Similarly, when compiling a <FONT FACE="Arial, Helvetica">context_clause</FONT>,
the compiler should not have to look ahead at subsequent <FONT FACE="Arial, Helvetica">context_item</FONT>s,
nor at the compilation unit to which the <FONT FACE="Arial, Helvetica">context_clause</FONT>
is attached. (We have not completely achieved this.) </FONT></DIV>
<H4 ALIGN=CENTER>Syntax</H4>
<DIV Class="Paranum"><FONT SIZE=-2>2</FONT></DIV>
<DIV Class="SyntaxIndented"><FONT FACE="Arial, Helvetica">context_clause<A NAME="I3894"></A>
::= </FONT>{<A NAME="I3895"></A><FONT FACE="Arial, Helvetica">context_item</FONT>}</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>3</FONT></DIV>
<DIV Class="SyntaxIndented"><FONT FACE="Arial, Helvetica">context_item<A NAME="I3896"></A>
::= </FONT><A NAME="I3897"></A><FONT FACE="Arial, Helvetica">with_clause</FONT> | <A NAME="I3898"></A><FONT FACE="Arial, Helvetica">use_clause</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>4</FONT></DIV>
<DIV Class="SyntaxIndented"><FONT FACE="Arial, Helvetica">with_clause<A NAME="I3899"></A>
::= </FONT><B>with</B> <I>library_unit_</I><A NAME="I3900"></A><FONT FACE="Arial, Helvetica">name</FONT> {, <I>library_unit_</I><A NAME="I3901"></A><FONT FACE="Arial, Helvetica">name</FONT>};</DIV>
<H4 ALIGN=CENTER>Name Resolution Rules</H4>
<DIV Class="Paranum"><FONT SIZE=-2>5</FONT></DIV>
<DIV Class="Normal"> <A NAME="I3902"></A>The <I>scope</I> of a <FONT FACE="Arial, Helvetica">with_clause</FONT>
that appears on a <FONT FACE="Arial, Helvetica">library_unit_declaration</FONT>
or <FONT FACE="Arial, Helvetica">library_unit_renaming_declaration</FONT>
consists of the entire declarative region of the declaration[, which
includes all children and subunits]. The scope of a <FONT FACE="Arial, Helvetica">with_clause</FONT>
that appears on a body consists of the body[, which includes all subunits].
</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>5.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B>Suppose a <FONT FACE="Arial, Helvetica">with_clause</FONT>
of a public library unit mentions one of its private siblings. (This
is only allowed on the body of the public library unit.) We considered
making the scope of that <FONT FACE="Arial, Helvetica">with_clause</FONT>
not include the visible part of the public library unit. (This would
only matter for a <FONT FACE="Arial, Helvetica">subprogram_body</FONT>,
since those are the only kinds of body that have a visible part, and
only if the <FONT FACE="Arial, Helvetica">subprogram_body</FONT> completes
a <FONT FACE="Arial, Helvetica">subprogram_declaration</FONT>, since
otherwise the <FONT FACE="Arial, Helvetica">with_clause</FONT> would
be illegal.) We did not put in such a rule for two reasons: (1) It would
complicate the wording of the rules, because we would have to split each
<FONT FACE="Arial, Helvetica">with_clause</FONT> into pieces, in order
to correctly handle ``<B>with</B> P, Q;'' where P is public and Q is
private. (2) The conformance rules prevent any problems. It doesn't matter
if a type name in the spec of the body denotes the completion of a <FONT FACE="Arial, Helvetica">private_type_declaration</FONT>.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>5.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>A <FONT FACE="Arial, Helvetica">with_clause</FONT>
also affects visibility within subsequent <FONT FACE="Arial, Helvetica">use_clause</FONT>s
and <FONT FACE="Arial, Helvetica">pragma</FONT>s of the same <FONT FACE="Arial, Helvetica">context_clause</FONT>,
even though those are not in the scope of the <FONT FACE="Arial, Helvetica">with_clause</FONT>.
</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>6</FONT></DIV>
<DIV Class="Normal"> <A NAME="I3903"></A><A NAME="I3904"></A>A <FONT FACE="Arial, Helvetica">library_item</FONT>
is <I>mentioned</I> in a <FONT FACE="Arial, Helvetica">with_clause</FONT>
if it is denoted by a <I>library_unit_</I><FONT FACE="Arial, Helvetica">name</FONT>
or a <FONT FACE="Arial, Helvetica">prefix</FONT> in the <FONT FACE="Arial, Helvetica">with_clause</FONT>.
</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>6.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B><FONT FACE="Arial, Helvetica">With_clause</FONT>s
control the visibility of declarations or renamings of library units.
Mentioning a root library unit in a <FONT FACE="Arial, Helvetica">with_clause</FONT>
makes its declaration directly visible. Mentioning a non-root library
unit makes its declaration visible. See Section 8 for details.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>6.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>Note that this rule implies that
``<B>with</B> A.B.C;'' is equivalent to ``<B>with</B> A, A.B, A.B.C;''
The reason for making a <FONT FACE="Arial, Helvetica">with_clause</FONT>
apply to all the ancestor units is to avoid ``visibility holes'' -- situations
in which an inner program unit is visible while an outer one is not.
Visibility holes would cause semantic complexity and implementation difficulty.
</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>7</FONT></DIV>
<DIV Class="Normal"> [Outside its own declarative region, the declaration
or renaming of a library unit can be visible only within the scope of
a <FONT FACE="Arial, Helvetica">with_clause</FONT> that mentions it.
The visibility of the declaration or renaming of a library unit otherwise
follows from its placement in the environment.] </DIV>
<H4 ALIGN=CENTER>Legality Rules</H4>
<DIV Class="Paranum"><FONT SIZE=-2>8</FONT></DIV>
<DIV Class="Normal"> If a <FONT FACE="Arial, Helvetica">with_clause</FONT>
of a given <FONT FACE="Arial, Helvetica">compilation_unit</FONT> mentions
a private child of some library unit, then the given <FONT FACE="Arial, Helvetica">compilation_unit</FONT>
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. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Reason: </B>The purpose of
this rule is to prevent a private child from being visible (or even semantically
depended-on) from outside the subsystem rooted at its parent. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Discussion: </B>This rule violates
the one-pass <FONT FACE="Arial, Helvetica">context_clause</FONT>s Language
Design Principle. We rationalize this by saying that at least that Language
Design Principle works for legal compilation units.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.c</FONT></DIV>
<DIV Class="Annotations" Style="margin-bottom: 0.4em"><FONT SIZE=-1>Example:
</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.d</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>package</B> A <B>is</B><BR>
<B>end</B> A;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.e</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>package</B> A.B <B>is</B><BR>
<B>end</B> A.B;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.f</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>private</B> <B>package</B> A.B.C <B>is</B><BR>
<B>end</B> A.B.C;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.g</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>package</B> A.B.C.D <B>is</B><BR>
<B>end</B> A.B.C.D;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.h</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>with</B> A.B.C; -- (1)<BR>
<B>private</B> <B>package</B> A.B.X <B>is</B><BR>
<B>end</B> A.B.X;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.i</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>package</B> A.B.Y <B>is</B><BR>
<B>end</B> A.B.Y;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.j</FONT></DIV>
<DIV Class="SmallExamples"><TT><B>with</B> A.B.C; -- (2)<BR>
<B>package</B> <B>body</B> A.B.Y <B>is</B><BR>
<B>end</B> A.B.Y;</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.k</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>(1) is OK because it's a private
child of A.B -- it would be illegal if we made A.B.X a public child of
A.B. (2) is OK because it's the body of a child of A.B. It would be illegal
to say ``<B>with</B> A.B.C;'' on any <FONT FACE="Arial, Helvetica">library_item</FONT>
whose name does not start with ``A.B''. Note that mentioning A.B.C.D
in a <FONT FACE="Arial, Helvetica">with_clause</FONT> automatically mentions
A.B.C as well, so ``<B>with</B> A.B.C.D;'' is illegal in the same places
as ``<B>with</B> A.B.C;''. </FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>8.l</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>To be honest: </B>For the purposes
of this rule, if a <FONT FACE="Arial, Helvetica">subprogram_body</FONT>
has no preceding <FONT FACE="Arial, Helvetica">subprogram_declaration</FONT>,
the <FONT FACE="Arial, Helvetica">subprogram_body</FONT> should be considered
a declaration and not a body. Thus, it is illegal for such a <FONT FACE="Arial, Helvetica">subprogram_body</FONT>
to mention one of its siblings in a <FONT FACE="Arial, Helvetica">with_clause</FONT>
if the sibling is a private library unit.</FONT></DIV>
<DIV Class="NotesHeader"><FONT SIZE=-1>NOTES</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>9</FONT></DIV>
<DIV Class="Notes"><FONT SIZE=-1>3 A <FONT FACE="Arial, Helvetica">library_item</FONT>
mentioned in a <FONT FACE="Arial, Helvetica">with_clause</FONT> 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 <FONT FACE="Arial, Helvetica">use_clause</FONT>s 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 <FONT FACE="Arial, Helvetica">with_clause</FONT>,
then the corresponding declaration nested within each visible instance
is visible within the compilation unit.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>9.a</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><B>Ramification: </B>The rules
given for <FONT FACE="Arial, Helvetica">with_clause</FONT>s are such
that the same effect is obtained whether the name of a library unit is
mentioned once or more than once by the applicable <FONT FACE="Arial, Helvetica">with_clause</FONT>s,
or even within a given <FONT FACE="Arial, Helvetica">with_clause</FONT>.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>9.b</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>If a <FONT FACE="Arial, Helvetica">with_clause</FONT>
mentions a <FONT FACE="Arial, Helvetica">library_unit_renaming_declaration</FONT>,
it only ``mentions'' the <FONT FACE="Arial, Helvetica">prefix</FONT>es
appearing explicitly in the <FONT FACE="Arial, Helvetica">with_clause</FONT>
(and the renamed view itself); the <FONT FACE="Arial, Helvetica">with_clause</FONT>
is not defined to mention the ancestors of the renamed entity. Thus,
if X renames Y.Z, then ``with X;'' does not make the declarations of
Y or Z visible. Note that this does not cause the dreaded visibility
holes mentioned above. </FONT></DIV>
<H4 ALIGN=CENTER>Extensions to Ada 83</H4>
<DIV Class="Paranum"><FONT SIZE=-2>9.c</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1><A NAME="I3905"></A>The syntax
rule for <FONT FACE="Arial, Helvetica">with_clause</FONT> is modified
to allow expanded name notation.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>9.d</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>A <FONT FACE="Arial, Helvetica">use_clause</FONT>
in a <FONT FACE="Arial, Helvetica">context_clause</FONT> may be for a
package (or type) nested in a library package. </FONT></DIV>
<H4 ALIGN=CENTER>Wording Changes from Ada 83</H4>
<DIV Class="Paranum"><FONT SIZE=-2>9.e</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>The syntax rule for <FONT FACE="Arial, Helvetica">context_clause</FONT>
is modified to more closely reflect the semantics. The Ada 83 syntax
rule implies that the <FONT FACE="Arial, Helvetica">use_clause</FONT>s
that appear immediately after a particular <FONT FACE="Arial, Helvetica">with_clause</FONT>
are somehow attached to that <FONT FACE="Arial, Helvetica">with_clause</FONT>,
which is not true. The new syntax allows a <FONT FACE="Arial, Helvetica">use_clause</FONT>
to appear first, but that is prevented by a textual rule that already
exists in Ada 83.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>9.f</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>The concept of ``scope of a <FONT FACE="Arial, Helvetica">with_clause</FONT>''
(which is a region of text) replaces RM83's notion of ``apply to'' (a
<FONT FACE="Arial, Helvetica">with_clause</FONT> applies to a <FONT FACE="Arial, Helvetica">library_item</FONT>)
The visibility rules are interested in a region of text, not in a set
of compilation units.</FONT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>9.g</FONT></DIV>
<DIV Class="Annotations"><FONT SIZE=-1>No need to define ``apply to''
for <FONT FACE="Arial, Helvetica">use_clause</FONT>s. Their semantics
are fully covered by the ``scope (of a <FONT FACE="Arial, Helvetica">use_clause</FONT>)''
definition in <A HREF="AA-8-4.html">8.4</A>. </FONT></DIV>
<HR>
<P><A HREF="AA-TOC.html">Contents</A> <A HREF="AA-0-29.html">Index</A> <A HREF="AA-10-1-1.html">Previous</A> <A HREF="AA-10-1-3.html">Next</A> <A HREF="AA-TTL.html">Legal</A></P>
</BODY>
</HTML>
|