CVS difference for arm/source/03b.mss
--- arm/source/03b.mss 2000/05/23 04:52:38 1.8
+++ arm/source/03b.mss 2000/05/27 04:43:59 1.9
@@ -1,9 +1,9 @@
@Part(03, Root="ada.mss")
-@Comment{$Date: 2000/05/23 04:52:38 $}
+@Comment{$Date: 2000/05/27 04:43:59 $}
@Comment{$Source: e:\\cvsroot/ARM/Source/03b.mss,v $}
-@Comment{$Revision: 1.8 $}
+@Comment{$Revision: 1.9 $}
@LabeledClause{Array Types}
@@ -21,8 +21,8 @@
@begin{Syntax}
@Syn{lhs=<array_type_definition>,rhs="
@Syn2{unconstrained_array_definition} | @Syn2{constrained_array_definition}"}
-@Hinge{}
+
@Syn{lhs=<unconstrained_array_definition>,rhs="
@key{array}(@Syn2{index_subtype_definition} {, @Syn2{index_subtype_definition}}) @key{of} @Syn2{component_definition}"}
@@ -98,8 +98,8 @@
@begin{Example}
@key[protected] @key[type] Counter_Type(Initial_Value : Integer := 1) @key[is]
@key[procedure] Get_Next(Next_Value : @key[out] Integer);
- --@i{ Returns the next value on each call, bumping Count}
- --@i{ before returning.}
+ --@RI{ Returns the next value on each call, bumping Count}
+ --@RI{ before returning.}
@key[private]
Count : Integer := Initial_Value;
@key[end] Counter_Type;
@@ -117,11 +117,11 @@
@key[task] @key[body] T @key[is] ...
Task_Array : @key[array](1..100) @key[of] @key[aliased] T;
- --@i{ Array of task elements, each with its own unique ID.}
- --@i{ We specify "aliased" so we can use Task_Array(I)'Access.}
- --@i{ This is safe because Task_Array is of a limited type,}
- --@i{ so there is no way an assignment to it could change}
- --@i{ the discriminants of one of its components.}
+ --@RI{ Array of task elements, each with its own unique ID.}
+ --@RI{ We specify "aliased" so we can use Task_Array(I)'Access.}
+ --@RI{ This is safe because Task_Array is of a limited type,}
+ --@RI{ so there is no way an assignment to it could change}
+ --@RI{ the discriminants of one of its components.}
@end{Example}
@end{Reason}
@begin{Ramification}
@@ -174,12 +174,10 @@
Each @nt{index_subtype_definition} defines the
corresponding index subtype to be the subtype denoted
by the @nt{subtype_mark}.
-@redundant[
-@PDefn2{Term=box, Sec=(compound delimiter)}
+@redundant[@PDefn2{Term=box, Sec=(compound delimiter)}
The compound delimiter <> (called a @i(box)) of an
@nt<index_subtype_definition> stands for an undefined range
-(different objects of the type need not have the same bounds).
-]
+(different objects of the type need not have the same bounds).]
@Defn2{Term=constrained, Sec=(subtype)}
@Defn2{Term=unconstrained, Sec=(subtype)}
@@ -279,7 +277,7 @@
@key(type) Vector @key(is) @key(array)(Integer @key(range) <>) @key(of) Real;
@key(type) Matrix @key(is) @key(array)(Integer @key(range) <>, Integer @key(range) <>) @key(of) Real;
@key(type) Bit_Vector @key(is) @key(array)(Integer @key(range) <>) @key(of) Boolean;
-@key(type) Roman @key(is) @key(array)(Positive @key(range) <>) @key(of) Roman_Digit; @i[-- see @RefSecNum(Character Types)]
+@key(type) Roman @key(is) @key(array)(Positive @key(range) <>) @key(of) Roman_Digit; @RI[-- see @RefSecNum(Character Types)]
@end(Example)
@i(Examples of type declarations with constrained array definitions: )
@@ -293,10 +291,10 @@
@begin(Example)
Grid : @key(array)(1 .. 80, 1 .. 100) @key(of) Boolean;
Mix : @key(array)(Color @key(range) Red .. Green) @key(of) Boolean;
-Page : @key(array)(Positive @key(range) <>) @key(of) Line := @i[-- an array of arrays]
- (1 | 50 => Line'(1 | Line'Last => '+', others => '-'), @i[-- see @RefSecNum(Array Aggregates)]
+Page : @key(array)(Positive @key(range) <>) @key(of) Line := @RI[-- an array of arrays]
+ (1 | 50 => Line'(1 | Line'Last => '+', others => '-'), @RI[-- see @RefSecNum(Array Aggregates)]
2 .. 49 => Line'(1 | Line'Last => '|', others => ' '));
- @i[-- Page is constrained by its initial value to (1..50)]
+ @RI[-- Page is constrained by its initial value to (1..50)]
@end(Example)
@end{Examples}
@@ -427,16 +425,16 @@
@begin{Examples}
@i(Examples of array declarations including an index constraint: )
@begin(Example)
-Board : Matrix(1 .. 8, 1 .. 8); @i[-- see @RefSecNum(Array Types)]
+Board : Matrix(1 .. 8, 1 .. 8); @RI[-- see @RefSecNum(Array Types)]
Rectangle : Matrix(1 .. 20, 1 .. 30);
-Inverse : Matrix(1 .. N, 1 .. N); @i[-- N need not be static ]
+Inverse : Matrix(1 .. N, 1 .. N); @RI[-- N need not be static ]
Filter : Bit_Vector(0 .. 31);
@end(Example)
@i(Example of array declaration with a constrained array subtype: )
@begin(Example)
-My_Schedule : Schedule; @i[-- all arrays of type Schedule have the same bounds]
+My_Schedule : Schedule; @RI[-- all arrays of type Schedule have the same bounds]
@end(Example)
@i(Example of record type with a component that is an array: )
@@ -446,7 +444,7 @@
Image : String(1 .. Length);
@key(end) @key(record);
-Null_Line : Var_Line(0); @i[-- Null_Line.Image is a null array]
+Null_Line : Var_Line(0); @RI[-- Null_Line.Image is a null array]
@end(Example)
@end{Examples}
@@ -584,8 +582,7 @@
A one-dimensional array type whose component type is a character type
is called a @i(string) type.
-@redundant[
-There are two predefined string types, String and Wide_String,
+@redundant[There are two predefined string types, String and Wide_String,
each indexed by values of the predefined subtype Positive;
these are declared in the visible part of package Standard:
@begin(example)
@@ -593,8 +590,7 @@
@key(type) String @key(is) @key(array)(Positive @key(range) <>) @key(of) Character;
@key(type) Wide_String @key(is) @key(array)(Positive @key(range) <>) @key(of) Wide_Character;
-@end(example)
-]
+@end(example)]
@end{StaticSem}
@begin{Notes}
@@ -615,11 +611,11 @@
@begin(Example)
Stars : String(1 .. 120) := (1 .. 120 => '*' );
Question : @key(constant) String := "How many characters?";
- @i[-- Question'First = 1, Question'Last = 20]
- @i[-- Question'Length = 20 (the number of characters)]
+ @RI[-- Question'First = 1, Question'Last = 20]
+ @RI[-- Question'Length = 20 (the number of characters)]
-Ask_Twice : String := Question & Question; @i[-- constrained to (1..40)]
-Ninety_Six : @key(constant) Roman := "XCVI"; @i[-- see @RefSecNum(Character Types) and @RefSecNum(Array Types)]
+Ask_Twice : String := Question & Question; @RI[-- constrained to (1..40)]
+Ninety_Six : @key(constant) Roman := "XCVI"; @RI[-- see @RefSecNum(Character Types) and @RefSecNum(Array Types)]
@end(Example)
@end{Examples}
@@ -654,8 +650,7 @@
@LabeledClause{Discriminants}
@begin{Intro}
-@redundant[
-@Defn{discriminant}
+@redundant[@Defn{discriminant}
@IndexSee{Term=[type parameter],See=(discriminant)}
@IndexSeeAlso{Term=[parameter],See=(discriminant)}
A composite type (other than an array type) can have discriminants,
@@ -668,8 +663,7 @@
partial view of a type
specifies that the discriminants of the type are unknown
for the given view;
-all subtypes of such a partial view are indefinite subtypes.
-]
+all subtypes of such a partial view are indefinite subtypes.]
@ToGlossary{Term=<Discriminant>,
Text=<A discriminant is a parameter of a composite type.
It can control, for example, the bounds of a component
@@ -688,8 +682,8 @@
@begin{Syntax}
@Syn{lhs=<discriminant_part>,rhs="@Syn2{unknown_discriminant_part} | @Syn2{known_discriminant_part}"}
-@Hinge{}
+
@Syn{lhs=<unknown_discriminant_part>,rhs="(<>)"}
@Syn{lhs=<known_discriminant_part>,rhs="
@@ -963,10 +957,11 @@
themselves]. The values
of discriminants determine which other component values are present
in the value of the discriminated type.
-@Honest{Which values are present might depend on discriminants of
+@begin{Honest}
+Which values are present might depend on discriminants of
some ancestor type that are constrained in an intervening
@nt<derived_type_definition>. That's why we say "values of discriminants"
- instead of "values of @i(the) discriminants" @em a subtle point.}
+ instead of "values of @i(the) discriminants" @em a subtle point.@end{honest}
@Defn{known discriminants}
@Defn2{Term=[discriminants], Sec=(known)}
@@ -1126,7 +1121,7 @@
@begin{Examples}
@i(Examples of discriminated types:)
@begin(Example)
-@key(type) Buffer(Size : Buffer_Size := 100) @key(is) @i[-- see @RefSecNum(Integer Types)]
+@key(type) Buffer(Size : Buffer_Size := 100) @key(is) @RI[-- see @RefSecNum(Integer Types)]
@key(record)
Pos : Buffer_Size := 0;
Value : String(1 .. Size);
@@ -1134,7 +1129,7 @@
@key(type) Matrix_Rec(Rows, Columns : Integer) @key(is)
@key(record)
- Mat : Matrix(1 .. Rows, 1 .. Columns); @i[-- see @RefSecNum(Array Types)]
+ Mat : Matrix(1 .. Rows, 1 .. Columns); @RI[-- see @RefSecNum(Array Types)]
@key(end) @key(record);
@key(type) Square(Side : Integer) @key(is) @key(new) Matrix_Rec(Rows => Side, Columns => Side);
@@ -1148,7 +1143,7 @@
@key(type) Item(Number : Positive) @key(is)
@key(record)
Content : Integer;
- @i[-- no component depends on the discriminant]
+ @RI[-- no component depends on the discriminant]
@key(end) @key(record);
@end(Example)
@end{Examples}
@@ -1187,7 +1182,7 @@
@begin{Syntax}
@Syn{lhs=<discriminant_constraint>,rhs="
(@Syn2{discriminant_association} {, @Syn2{discriminant_association}})"}
-@Hinge{}
+
@Syn{lhs=<discriminant_association>,rhs="
[@SynI{discriminant_}@Syn2{selector_name} {| @SynI{discriminant_}@Syn2{selector_name}} =>] @Syn2{expression}"}
@@ -1314,12 +1309,12 @@
@begin{Examples}
@i{Examples (using types declared above in clause @RefSecNum(Discriminants)):}
@begin(Example)
-Large : Buffer(200); @i[-- constrained, always 200 characters]
- @i[-- (explicit discriminant value)]
-Message : Buffer; @i[-- unconstrained, initially 100 characters]
- @i[-- (default discriminant value)]
-Basis : Square(5); @i[-- constrained, always 5 by 5]
-Illegal : Square; @i[-- illegal, a Square has to be constrained]
+Large : Buffer(200); @RI[-- constrained, always 200 characters]
+ @RI[-- (explicit discriminant value)]
+Message : Buffer; @RI[-- unconstrained, initially 100 characters]
+ @RI[-- (default discriminant value)]
+Basis : Square(5); @RI[-- constrained, always 5 by 5]
+Illegal : Square; @RI[-- illegal, a Square has to be constrained]
@end(Example)
@end{Examples}
@@ -1443,8 +1438,8 @@
@Syn2{component_list}
@key{end} @key{record}
| @key{null record}"}
-@Hinge{}
+
@Syn{lhs=<component_list>,rhs="
@Syn2{component_item} {@Syn2{component_item}}
| {@Syn2{component_item}} @Syn2{variant_part}
@@ -1693,7 +1688,7 @@
Tomorrow, Yesterday : Date;
A, B, C : Complex;
-@i[-- both components of A, B, and C are implicitly initialized to zero ]
+@RI[-- both components of A, B, and C are implicitly initialized to zero ]
@end(Example)
@end{Examples}
@@ -1765,13 +1760,13 @@
@Syn2{variant}
{@Syn2{variant}}
@key{end} @key{case};"}
-@Hinge{}
+
@Syn{lhs=<variant>,rhs="
@key{when} @Syn2{discrete_choice_list} =>
@Syn2{component_list}"}
-@Hinge{}
+
@Syn{lhs=<discrete_choice_list>,rhs="@Syn2{discrete_choice} {| @Syn2{discrete_choice}}"}
@Syn{lhs=<discrete_choice>,rhs="@Syn2{expression} | @Syn2{discrete_range} | @key{others}"}
@@ -1953,8 +1948,7 @@
@LabeledClause{Tagged Types and Type Extensions}
@begin{Intro}
-@redundant[
-@PDefn{dispatching operation}
+@redundant[@PDefn{dispatching operation}
@Defn{polymorphism}
@IndexSee{Term=[dynamic binding],See=(dispatching operation)}
@IndexSeeAlso{Term=[generic unit],See=(dispatching operation)}
@@ -1965,8 +1959,7 @@
@i(dispatching operations).
@IndexSee{Term=[object-oriented programming (OOP)],See=[tagged types and type extensions]}
@IndexSee{Term=[OOP (object-oriented programming)],See=[tagged types and type extensions]}
-@IndexSeeAlso{Term=[inheritance],See=[tagged types and type extension]}
-]
+@IndexSeeAlso{Term=[inheritance],See=[tagged types and type extension]}]
@end{Intro}
@begin{MetaRules}
@@ -2146,7 +2139,7 @@
Tag_Error : @key[exception];
@key[private]
- ... -- @i{not specified by the language}
+ ... -- @RI{not specified by the language}
@key[end] Ada.Tags;
@end{Example}
@begin{Reason}
@@ -2381,7 +2374,7 @@
@key(end record);
@key(type) Expression @key(is tagged null record);
- @i[-- Components will be added by each extension]
+ @RI[-- Components will be added by each extension]
@end(Example)
@end{Examples}
@@ -2471,7 +2464,7 @@
@begin{Example}
@key[package] P @key[is]
@key[type] T @key[is] @key[tagged] @key[null] @key[record];
- @key[function] F @key[return] T; --@i{ Inherited versions will be abstract.}
+ @key[function] F @key[return] T; --@RI{ Inherited versions will be abstract.}
@key[end] P;
@key[generic]
@@ -2482,11 +2475,11 @@
@key[end] Gp;
@key[package] @key[body] Gp @key[is]
- @key[type] NT2 @key[is] @key[new] NT @key[with] @key[null] @key[record]; --@i{ Illegal!}
+ @key[type] NT2 @key[is] @key[new] NT @key[with] @key[null] @key[record]; --@RI{ Illegal!}
@key[procedure] Q(X : @key[in] NT2) @key[is] @key[begin] @key[null]; @key[end] Q;
- --@i{ Is this legal or not? Can't decide because}
- --@i{ we don't know whether TT had any functions that go abstract}
- --@i{ on extension.}
+ --@RI{ Is this legal or not? Can't decide because}
+ --@RI{ we don't know whether TT had any functions that go abstract}
+ --@RI{ on extension.}
@key[end] Gp;
@key[package] I @key[is] @key[new] Gp(TT => P.T);
@@ -2592,28 +2585,28 @@
@key(record)
Paint : Color := White;
@key(end record);
- @i[-- Components X and Y are inherited]
+ @RI[-- Components X and Y are inherited]
Origin : @key(constant) Painted_Point := (X | Y => 0.0, Paint => Black);
@key(type) Literal @key(is new) Expression @key(with)
- @key(record) @i[-- a leaf in an Expression tree]
+ @key(record) @RI[-- a leaf in an Expression tree]
Value : Real;
@key(end record);
@key(type) Expr_Ptr @key(is access all) Expression'Class;
- @i[-- see @RefSecNum(Access Types)]
+ @RI[-- see @RefSecNum(Access Types)]
@key(type) Binary_Operation @key(is new) Expression @key(with)
- @key(record) @i[-- an internal node in an Expression tree]
+ @key(record) @RI[-- an internal node in an Expression tree]
Left, Right : Expr_Ptr;
@key(end record);
@key(type) Addition @key(is new) Binary_Operation @key(with null record);
@key(type) Subtraction @key(is new) Binary_Operation @key(with null record);
- @i[-- No additional components needed for these extensions]
+ @RI[-- No additional components needed for these extensions]
-Tree : Expr_Ptr := @i[-- A tree representation of ``5.0 + (13.0-7.0)'']
+Tree : Expr_Ptr := @RI[-- A tree representation of ``5.0 + (13.0-7.0)'']
@key(new) Addition'(
Left => @key(new) Literal'(Value => 5.0),
Right => @key(new) Subtraction'(
@@ -2990,10 +2983,10 @@
X : T2;
Y : T1'Class := X;
@key[begin]
- P2.Op_A(Param => X); --@i{ Nondispatching call.}
- P1.Op_A(Arg => Y); --@i{ Dispatching call.}
- P2.Op_B(Arg => X); --@i{ Nondispatching call.}
- P1.Op_B(Arg => Y); --@i{ Dispatching call.}
+ P2.Op_A(Param => X); --@RI{ Nondispatching call.}
+ P1.Op_A(Arg => Y); --@RI{ Dispatching call.}
+ P2.Op_B(Arg => X); --@RI{ Nondispatching call.}
+ P1.Op_B(Arg => Y); --@RI{ Dispatching call.}
@key[end] Main;
@end{Example}
@@ -3058,8 +3051,7 @@
@LabeledSubClause{Abstract Types and Subprograms}
@begin{Intro}
-@redundant[
-@Defn{abstract type}
+@redundant[@Defn{abstract type}
@IndexSeeAlso{Term=[abstract data type (ADT)],See=(abstract type)}
@IndexSeeAlso{Term=[ADT (abstract data type)],See=(abstract type)}
@IndexSee{Term=[concrete type],See=(nonabstract type)}
@@ -3072,8 +3064,7 @@
but is intended to be overridden at some point when inherited.
Because objects of an abstract type cannot be created,
a dispatching call to an abstract subprogram always
-dispatches to some overriding body.
-]
+dispatches to some overriding body.]
@end{Intro}
@begin{MetaRules}
@@ -3123,9 +3114,9 @@
@begin{Example}
@key[package] P @key[is]
@key[type] T @key[is] @key[abstract] @key[tagged] @key[private];
- @key[function] Foo (X : T) @key[return] Boolean @key[is] @key[abstract]; --@i{ Illegal!}
+ @key[function] Foo (X : T) @key[return] Boolean @key[is] @key[abstract]; --@RI{ Illegal!}
@key[private]
- @key[type] T @key[is] @key[tagged] @key[null] @key[record]; --@i{ Illegal!}
+ @key[type] T @key[is] @key[tagged] @key[null] @key[record]; --@RI{ Illegal!}
X : T;
Y : Boolean := Foo (T'Class (X));
@key[end] P;
@@ -3152,7 +3143,7 @@
. . .
@key[package] Q @key[is]
@key[type] My_Field_Size @key[is] @key[new] Field_Size;
- --@i{ implicit declaration of Print(X : T; F : My_Field_Size := 0) is abstract;}
+ --@RI{ implicit declaration of Print(X : T; F : My_Field_Size := 0) is abstract;}
@key[end] Q;
@end{Example}
@@ -3202,19 +3193,19 @@
@key[with] Pack1; @key[use] Pack1;
@key[package] Pack2 @key[is]
@key[type] T1 @key[is] @key[new] Ancestor @key[with] @key[record] ...;
- --@i{ A concrete type.}
- @key[procedure] Do_Something(X : @key[in] T1); --@i{ Have to override.}
+ --@RI{ A concrete type.}
+ @key[procedure] Do_Something(X : @key[in] T1); --@RI{ Have to override.}
@key[end] Pack2;
@key[with] Pack1; @key[use] Pack1;
@key[with] Pack2; @key[use] Pack2;
@key[package] Pack3 @key[is]
@key[type] T2 @key[is] @key[new] Ancestor @key[with] @key[private];
- --@i{ A concrete type.}
+ --@RI{ A concrete type.}
@key[private]
- @key[type] T2 @key[is] @key[new] T1 @key[with] --@i{ Parent different from ancestor.}
+ @key[type] T2 @key[is] @key[new] T1 @key[with] --@RI{ Parent different from ancestor.}
@key[record] ... @key[end] @key[record];
- --@i{ Here, we inherit Pack2.Do_Something.}
+ --@RI{ Here, we inherit Pack2.Do_Something.}
@key[end] Pack3;
@end{Example}
@@ -3429,7 +3420,7 @@
@Syn{lhs=<access_type_definition>,rhs="
@Syn2{access_to_object_definition}
| @Syn2{access_to_subprogram_definition}"}
-@Hinge{}
+
@Syn{lhs=<access_to_object_definition>,rhs="
@key{access} [@Syn2{general_access_modifier}] @Syn2{subtype_indication}"}
@@ -3543,8 +3534,8 @@
@key(type) T2 @key(is new) T1 @key(with) ...;
@key(procedure) P(X : @key(access) T2) @key(is)
@key(begin)
- P(T1(X.@key(all))'Access); @i[-- hand off to T1's P]
- . . . @i[-- now do extra T2-specific processing]
+ P(T1(X.@key(all))'Access); @RI[-- hand off to T1's P]
+ . . . @RI[-- now do extra T2-specific processing]
@key(end) P;
@end{Example}
@@ -3846,14 +3837,14 @@
@begin{Examples}
@i{Examples of access-to-object types:}
@begin{Example}
-@key[type] Peripheral_Ref @key[is access] Peripheral; @i[-- see @RefSecNum{Variant Parts and Discrete Choices}]
+@key[type] Peripheral_Ref @key[is access] Peripheral; @RI[-- see @RefSecNum{Variant Parts and Discrete Choices}]
@key[type] Binop_Ptr @key[is access all] Binary_Operation'Class;
- @i[-- general access-to-class-wide, see @RefSecNum{Type Extensions}]
+ @RI[-- general access-to-class-wide, see @RefSecNum{Type Extensions}]
@end{Example}
@i{Example of an access subtype:}
@begin{Example}
-@key[subtype] Drum_Ref @key[is] Peripheral_Ref(Drum); @i[-- see @RefSecNum{Variant Parts and Discrete Choices}]
+@key[subtype] Drum_Ref @key[is] Peripheral_Ref(Drum); @RI[-- see @RefSecNum{Variant Parts and Discrete Choices}]
@end{Example}
@i{Example of an access-to-subprogram type:}
@@ -3866,8 +3857,8 @@
...
Give_Message := Other_Procedure'Access;
...
-Give_Message("File not found."); --@i{ call with parameter (.@key[all] is optional)}
-Give_Message.@key[all]; --@i{ call with no parameters}
+Give_Message("File not found."); --@RI{ call with parameter (.@key[all] is optional)}
+Give_Message.@key[all]; --@RI{ call with no parameters}
@end{Example}
@end{Examples}
@@ -4053,7 +4044,7 @@
@begin{Examples}
@i(Example of a recursive type:)
@begin(Example)
-@key(type) Cell; @i[-- incomplete type declaration]
+@key(type) Cell; @RI[-- incomplete type declaration]
@key(type) Link @key(is) @key(access) Cell;
@key(type) Cell @key(is)
@@ -4069,8 +4060,8 @@
@i(Examples of mutually dependent access types:)
@begin(Example)
-@key(type) Person(<>); @i[-- incomplete type declaration]
-@key(type) Car; @i[-- incomplete type declaration]
+@key(type) Person(<>); @RI[-- incomplete type declaration]
+@key(type) Car; @RI[-- incomplete type declaration]
@key(type) Person_Name @key(is) @key(access) Person;
@key(type) Car_Name @key(is) @key(access) @key(all) Car;
@@ -4080,8 +4071,8 @@
Number : Integer;
Owner : Person_Name;
@key(end) @key(record);
-@Hinge()
+
@key(type) Person(Sex : Gender) @key(is)
@key(record)
Name : String(1 .. 20);
@@ -4094,7 +4085,7 @@
@key(end) @key(case);
@key(end) @key(record);
-My_Car, Your_Car, Next_Car : Car_Name := @key[new] Car; @i[-- see @RefSecNum{Allocators}]
+My_Car, Your_Car, Next_Car : Car_Name := @key[new] Car; @RI[-- see @RefSecNum{Allocators}]
George : Person_Name := @key[new] Person(M);
...
George.Vehicle := Your_Car;
@@ -4136,14 +4127,14 @@
X : Pri;
@key[end] Pack;
-@key[package] @key[body] Pack @key[is] --@i{ Could be separately compiled!}
+@key[package] @key[body] Pack @key[is] --@RI{ Could be separately compiled!}
@key[type] Sep @key[is] ...;
X := @key[new] Sep;
@key[end] Pack;
@key[pragma] Elaborate(Pack);
@key[private] @key[package] Pack.Child @key[is]
- I : Integer := X.@key{all}'Size; --@i{ Legal, by AI-00039.}
+ I : Integer := X.@key{all}'Size; --@RI{ Legal, by AI-00039.}
@key[end] Pack.Child;
@end{example}
@@ -4601,14 +4592,14 @@
@key[procedure] P(X: T) @key[is]
Y: @key[aliased] T;
@key[type] A1 @key[is] @key[access] @key[all] T;
- Ptr0: A0 := Global; --@i{ OK.}
- Ptr1: A1 := X'Access; --@i{ OK.}
+ Ptr0: A0 := Global; --@RI{ OK.}
+ Ptr1: A1 := X'Access; --@RI{ OK.}
@key[begin]
- Ptr1 := Y'Access; --@i{ OK;}
- Ptr0 := A0(Ptr1); --@i{ Illegal type conversion!}
- Ptr0 := X'Access; --@i{ Illegal reference to Access attribute!}
- Ptr0 := Y'Access; --@i{ Illegal reference to Access attribute!}
- Global := Ptr0; --@i{ OK.}
+ Ptr1 := Y'Access; --@RI{ OK;}
+ Ptr0 := A0(Ptr1); --@RI{ Illegal type conversion!}
+ Ptr0 := X'Access; --@RI{ Illegal reference to Access attribute!}
+ Ptr0 := Y'Access; --@RI{ Illegal reference to Access attribute!}
+ Global := Ptr0; --@RI{ OK.}
@key[end] P;
@key[end] Lib_Unit;
@end{Example}
@@ -4629,8 +4620,8 @@
@key[procedure] P(X: @key[access] Integer) @key[is]
@key[type] Nested_Type @key[is] @key[access] @key[all] Integer;
@key[begin]
- ... Nested_Type(X) ... --@i{ (1)}
- ... Level_1_Type(X) ... --@i{ (2)}
+ ... Nested_Type(X) ... --@RI{ (1)}
+ ... Level_1_Type(X) ... --@RI{ (2)}
@key[end] P;
@key[procedure] Q(X: @key[access] Integer) @key[is]
@@ -4645,12 +4636,12 @@
@key[procedure] R @key[is]
Level_2: @key[aliased] Integer;
@key[begin]
- Q(Level_2'Access); --@i{ (3)}
+ Q(Level_2'Access); --@RI{ (3)}
@key[end] R;
Level_1: @key[aliased] Integer;
@key[begin]
- Q(Level_1'Access); --@i{ (4)}
+ Q(Level_1'Access); --@RI{ (4)}
R;
@key[end] Main;
@end{Example}
@@ -4673,9 +4664,9 @@
@key[function] G(X: @key[access] Rec) @key[return] Boolean;
@key[type] Rec(D: @key[access] Integer) @key[is]
@key[record]
- C1: Int_Ptr := Int_Ptr(D); --@i{ Illegal!}
- C2: Rec_Ptr := Rec'Access; --@i{ Illegal!}
- C3: Boolean := F(Rec'Access); --@i{ Illegal!}
+ C1: Int_Ptr := Int_Ptr(D); --@RI{ Illegal!}
+ C2: Rec_Ptr := Rec'Access; --@RI{ Illegal!}
+ C3: Boolean := F(Rec'Access); --@RI{ Illegal!}
C4: Boolean := G(Rec'Access);
@key[end] @key[record];
@key[end] P;
@@ -4730,7 +4721,7 @@
nominal subtype is unconstrained,
unless this subtype is indefinite,
or the variable is aliased.
-
+
@begin(Discussion)
This restriction is intended to be similar to the restriction
on renaming discriminant-dependent subcomponents.
@@ -4977,7 +4968,7 @@
@begin{Examples}
@i{Example of use of the Access attribute:}
@begin{Example}
-Martha : Person_Name := @key[new] Person(F); @i[-- see @RefSecNum{Incomplete Type Declarations}]
+Martha : Person_Name := @key[new] Person(F); @RI[-- see @RefSecNum{Incomplete Type Declarations}]
Cars : @key[array] (1..2) @key[of] @key[aliased] Car;
...
Martha.Vehicle := Cars(1)'Access;
@@ -5003,8 +4994,8 @@
@begin{Syntax}
@Syn{lhs=<declarative_part>,rhs="{@Syn2{declarative_item}}"}
-@Hinge{}
+
@Syn{lhs=<declarative_item>,rhs="
@Syn2{basic_declarative_item} | @Syn2{body}"}
@@ -5288,4 +5279,4 @@
a full type for an incomplete or private type, a full constant
declaration for a deferred constant declaration, or a @nt{pragma} Import
for any kind of entity.
-@end{DiffWord83}
+@end{DiffWord83}
\ No newline at end of file
Questions? Ask the ACAA Technical Agent