CVS difference for arm/source/05.mss

Differences between 1.16 and version 1.17
Log of other versions for file arm/source/05.mss

--- arm/source/05.mss	2000/08/03 05:37:37	1.16
+++ arm/source/05.mss	2000/08/08 04:35:31	1.17
@@ -1,10 +1,10 @@
 @Part(05, Root="ada.mss")
 
-@Comment{$Date: 2000/08/03 05:37:37 $}
+@Comment{$Date: 2000/08/08 04:35:31 $}
 @LabeledSection{Statements}
 
 @Comment{$Source: e:\\cvsroot/ARM/Source/05.mss,v $}
-@Comment{$Revision: 1.16 $}
+@Comment{$Revision: 1.17 $}
 
 @begin{Intro}
 @Redundant[A @nt{statement} defines an action to be performed upon
@@ -37,7 +37,7 @@
 @begin{Intro}
 @Redundant[A @nt<statement> is either simple or compound.
 A @nt<simple_statement> encloses
-no other @nt<statement>.  A @nt<compound_statement> can enclose
+no other @nt<statement>. A @nt<compound_statement> can enclose
 @nt<simple_statement>s and other @nt<compound_statement>s.]
 @end{Intro}
 
@@ -115,19 +115,19 @@
   starts before the first explicit occurrence of the corresponding
   name, since this occurrence is either in a statement label, a
   @nt{loop_statement}, a @nt{block_statement}, or a
-  @nt{goto_statement}.  An implicit
+  @nt{goto_statement}. An implicit
   declaration in a @nt{block_statement} may hide a declaration given in an
   outer program unit or @nt{block_statement} (according to the usual rules
   of hiding explained in @RefSecNum{Visibility}).
 
   The syntax rule for @nt{label} uses @nt{statement_identifier} which
   is a @nt<direct_name> (not a @nt{defining_identifier}),
-  because labels are implicitly declared.  The same applies to loop and
+  because labels are implicitly declared. The same applies to loop and
   block names.
   In other words, the @nt{label} itself is not the defining occurrence;
   the implicit declaration is.
 
-  We cannot consider the @nt{label} to be a defining occurrence.
+  @Leading@;We cannot consider the @nt{label} to be a defining occurrence.
   An example that can tell the difference is this:
   @begin{example}
 @key[declare]
@@ -194,7 +194,7 @@
 within @nt<block_statement>s is relevant to the form of its
 expanded name.
 @begin{Discussion}
-Each comment in the following example gives the
+@Leading@keepnext@;Each comment in the following example gives the
 expanded name associated with an entity declared in the task body:
 @begin{Example}
 @key(task body) Compute @key(is)
@@ -225,7 +225,7 @@
 @end{Notes}
 
 @begin{Examples}
-@i{Examples of labeled statements:}
+@Leading@keepnext@i{Examples of labeled statements:}
 @begin{Example}
 <<Here>> <<Ici>> <<Aqui>> <<Hier>> @key[null];
 
@@ -239,7 +239,7 @@
 
 @begin{DiffWord83}
 We define the syntactic category @nt<statement_identifier> to simplify
-the description.  It is used for labels, loop names, and block names.
+the description. It is used for labels, loop names, and block names.
 We define the entity associated with the implicit declarations
 of statement names.
 
@@ -304,7 +304,7 @@
 The expected type for the @nt<expression> is
 the type of the target.
 @begin{ImplNote}
-An @nt<assignment_statement> as a whole is a "complete context,"
+@Leading@keepnext@;An @nt<assignment_statement> as a whole is a "complete context,"
 so if the @i{variable_}@nt<name> of an @nt<assignment_statement> is
 overloaded, the @nt<expression> can be used to help disambiguate it.
 For example:
@@ -333,7 +333,7 @@
 @begin{Reason}
   This is consistent with the general rule that a single
   dispatching operation shall not have both dynamically tagged and
-  statically tagged operands.  Note that for an object
+  statically tagged operands. Note that for an object
   initialization (as opposed to the @nt{assignment_statement}),
   a statically tagged initialization expression is permitted,
   since there is no chance for confusion (or Tag_Check failure).
@@ -357,7 +357,7 @@
   evaluation of the @i(variable_)@nt<name>, as pointed out by the ACID.
 @end{Ramification}
 
-When the type of the target is class-wide:
+@Leading@keepnext@;When the type of the target is class-wide:
 @begin(itemize)
   @PDefn2{Term=[controlling tag value], Sec=(for the @nt{expression}
     in an @nt{assignment_statement})}
@@ -378,7 +378,7 @@
 @end(itemize)
 
 The value of the @nt<expression> is converted to the subtype of the
-target.  @Redundant[The conversion might raise an exception
+target. @Redundant[The conversion might raise an exception
 (see @RefSecNum{Type Conversions}).]
 @PDefn2{Term=[implicit subtype conversion],Sec=(assignment_statement)}
 @begin{Ramification}
@@ -454,7 +454,7 @@
 @end{Notes}
 
 @begin{Examples}
-@i{Examples of assignment statements:}
+@Leading@keepnext@i{Examples of assignment statements:}
 @begin{Example}
 Value := Max_Value - 1;
 Shade := Blue;
@@ -466,7 +466,9 @@
 Next_Car.@key[all] := (72074, @key[null]);    --@RI{  see @RefSecNum{Incomplete Type Declarations}}
 @end{Example}
 
-@i{Examples involving scalar subtype conversions:}
+@begin{Wide}
+@Leading@keepnext@i{Examples involving scalar subtype conversions:}
+@end{Wide}
 @begin{Example}
 I, J : Integer @key[range] 1 .. 10 := 5;
 K    : Integer @key[range] 1 .. 20 := 15;
@@ -477,7 +479,9 @@
 J := K;  --@RI{  will raise Constraint_Error if K > 10}
 @end{Example}
 
-@i{Examples involving array subtype conversions:}
+@begin{Wide}
+@leading@keepnext@i{Examples involving array subtype conversions:}
+@end{Wide}
 @begin{Example}
 A : String(1 .. 31);
 B : String(3 .. 33);
@@ -510,9 +514,9 @@
 @begin{DiffWord83}
 The special case of array assignment is subsumed by the concept
 of a subtype conversion, which is applied for all kinds of types,
-not just arrays.  For arrays it provides @lquotes@;sliding.@rquotes@;  For numeric
+not just arrays. For arrays it provides @lquotes@;sliding@rquotes@;. For numeric
 types it provides conversion of a value of a universal type to
-the specific type of the target.  For other types,
+the specific type of the target. For other types,
 it generally has no run-time effect, other than a constraint
 check.
 
@@ -569,7 +573,7 @@
 @end{RunTime}
 
 @begin{Examples}
-@i{Examples of if statements:}
+@Leading@keepnext@i{Examples of if statements:}
 @begin{Example}
 @key[if] Month = December @key[and] Day = 31 @key[then]
    Month := January;
@@ -696,7 +700,7 @@
 @end{Itemize}
 
 In the uninitialized variable case, the value might be anything; hence, any
-alternative can be chosen, or Constraint_Error can be raised.  (We intend to
+alternative can be chosen, or Constraint_Error can be raised. (We intend to
 prevent, however, jumping to random memory locations and the like.)
 In the out-of-range case, the behavior is more sensible: if there is an
 @key{others}, then the implementation may choose to raise Constraint_Error
@@ -748,7 +752,7 @@
 @end{Notes}
 
 @begin{Examples}
-@i{Examples of case statements:}
+@Leading@keepnext@i{Examples of case statements:}
 @begin{Example}
 @tabclear()@tabset(P22)
 @key[case] Sensor @key[is]
@@ -781,10 +785,10 @@
 @begin{Extend83}
 In Ada 83, the @nt{expression} in a @nt{case_statement} is not allowed to
 be of a generic formal type.
-This restriction is removed in Ada 9X; an @key{others} @nt{discrete_choice}
+This restriction is removed in Ada 95; an @key{others} @nt{discrete_choice}
 is required instead.
 
-In Ada 9X, a function call is the name of an object;
+In Ada 95, a function call is the name of an object;
 this was not true in Ada 83 (see @RefSec{Names}).
 This change makes the following @nt{case_statement} legal:
 @begin{Example}
@@ -890,13 +894,13 @@
 @PDefn2{Term=[elaboration], Sec=(loop_parameter_specification)}
 For the execution of a @nt{loop_statement} with a @key{for}
 @nt{iteration_scheme},
-the @nt{loop_parameter_specification} is first elaborated.  This
+the @nt{loop_parameter_specification} is first elaborated. This
 elaboration creates the loop parameter and elaborates the
 @nt{discrete_subtype_definition}.
 If the @nt{discrete_subtype_definition} defines a subtype
 with a null range,
 the execution of the
-@nt{loop_statement} is complete.  Otherwise, the
+@nt{loop_statement} is complete. Otherwise, the
 @nt{sequence_of_statements} is executed once for each value of the
 discrete subtype defined by the
 @nt{discrete_subtype_definition} (or until the loop is left as a
@@ -904,7 +908,7 @@
 @Defn2{Term=[assignment operation], Sec=(during execution of a @key{for} loop)}
 Prior to each such iteration,
 the corresponding value of the discrete subtype is assigned to the
-loop parameter.  These values are assigned in increasing order unless
+loop parameter. These values are assigned in increasing order unless
 the reserved word @key{reverse} is present, in which case the values
 are assigned in decreasing order.
 @begin{Ramification}
@@ -936,12 +940,12 @@
 @end{ImplNote}
 
 The @nt<discrete_subtype_definition> of a for loop is elaborated
-just once.  Use of the
+just once. Use of the
 reserved word @key[reverse] does not alter the discrete subtype defined,
 so that the following @nt{iteration_scheme}s are not equivalent; the
 first has a null range.
 @begin{Example}
-@key[for] J @key[in] @key[reverse] 1 ..  0
+@key[for] J @key[in] @key[reverse] 1 .. 0
 @key[for] J @key[in] 0 .. 1
 @end{Example}
 @begin{Ramification}
@@ -951,7 +955,7 @@
 @end{Notes}
 
 @begin{Examples}
-@i{Example of a loop statement without an iteration scheme:}
+@Leading@keepnext@i{Example of a loop statement without an iteration scheme:}
 @begin{Example}
 @key[loop]
    Get(Current_Character);
@@ -959,7 +963,9 @@
 @key[end] @key[loop];
 @end{Example}
 
-@i{Example of a loop statement with a @key[while] iteration scheme:}
+@begin{Wide}
+@leading@keepnext@i{Example of a loop statement with a @key[while] iteration scheme:}
+@end{Wide}
 @begin{Example}
 @key[while] Bid(N).Price < Cut_Off.Price @key[loop]
    Record_Bid(Bid(N).Price);
@@ -967,7 +973,9 @@
 @key[end] @key[loop];
 @end{Example}
 
-@i{Example of a loop statement with a @key[for] iteration scheme:}
+@begin{Wide}
+@leading@keepnext@i{Example of a loop statement with a @key[for] iteration scheme:}
+@end{Wide}
 @begin{Example}
 @key[for] J @key[in] Buffer'Range @key[loop]     --@RI{  works even with a null range}
    @key[if] Buffer(J) /= Space @key[then]
@@ -976,7 +984,9 @@
 @key[end] @key[loop];
 @end{Example}
 
-@i{Example of a loop statement with a name:}
+@begin{Wide}
+@leading@keepnext@i{Example of a loop statement with a name:}
+@end{Wide}
 @begin{Example}
 Summation:
    @key[while] Next /= Head @key[loop]       --@RI{ see @RefSecNum{Incomplete Type Declarations}}
@@ -1033,7 +1043,7 @@
 @end{RunTime}
 
 @begin{Examples}
-@i{Example of a block statement with a local variable:}
+@Leading@keepnext@i{Example of a block statement with a local variable:}
 @begin{Example}
 Swap:
    @key[declare]
@@ -1174,7 +1184,7 @@
 
 @begin{Notes}
 The above rules allow transfer of control to a @nt{statement} of an
-enclosing @nt{sequence_of_statements} but not the reverse.  Similarly,
+enclosing @nt{sequence_of_statements} but not the reverse. Similarly,
 they prohibit transfers of control such as between alternatives of a
 @nt{case_statement}, @nt{if_statement}, or @nt{select_statement};
 between @nt{exception_handler}s; or from an @nt{exception_handler} of
@@ -1183,7 +1193,7 @@
 @end{Notes}
 
 @begin{Examples}
-@i{Example of a loop containing a goto statement:}
+@Leading@keepnext@i{Example of a loop containing a goto statement:}
 @begin{Example}
 <<Sort>>
 @key[for] I @key[in] 1 .. N-1 @key[loop]

Questions? Ask the ACAA Technical Agent