CVS difference for ai12s/ai12-0213-1.txt

Differences between 1.4 and version 1.5
Log of other versions for file ai12s/ai12-0213-1.txt

--- ai12s/ai12-0213-1.txt	2019/01/11 08:27:40	1.4
+++ ai12s/ai12-0213-1.txt	2019/01/15 05:03:35	1.5
@@ -1,7 +1,11 @@
-!standard 3.8(3)                                      19-01-11  AI12-0213-1/03
+!standard 3.8(3)                                      19-01-14  AI12-0213-1/04
+!standard 3.8(6/3)
 !standard 3.8(28)
 !standard 13.5.1(2)
+!standard 13.5.1(6)
 !class Amendment 16-12-28
+!status Amendment 1-2012 19-01-14
+!status ARG Approved 12-0-0  19-01-14
 !status work item 16-12-28
 !status received 16-10-06
 !priority Very_Low
@@ -9,7 +13,8 @@
 !subject Unify record syntax
 !summary
 
-Allow an optional matching identifier on the end of record definitions.
+Allow an optional matching identifier on the end of record definitions and 
+record representation clauses.
 
 !problem
 
@@ -26,9 +31,9 @@
 !proposal
 
 We propose introducing an "end record identifier" syntax for record
-definitions (and thusly representation clauses) so that their syntax more
+definitions and representation clauses so that their syntax more
 closely matches program units such as subprogram_declarations and
-package_declarations. See the code segments below for an overview of the
+package_declarations. See the code fragments below for an overview of the
 proposed change:
 
    type Rec_B is record
@@ -53,26 +58,6 @@
       B at 0 range 1 .. 1;
    end record;
 
-Syntax
-
-Here is what the BNF would look like for the proposed changes:
-
-   record_definition ::=
-      record
-         component_list
-      end record_terminator
-      | null record
-
-   record_terminator ::= record [record_identifier]
-
-   record_representation_clause ::=
-      for first_subtype_local_name use
-         record [mod_clause]
-            {component_clause}
-         end record_representation_terminator;
-
-   record_representation_terminator ::= record [first_subtype_local_name]
-
 !wording
 
 Replace 3.8(3) with:
@@ -80,10 +65,10 @@
 record_definition ::=
    record
       component_list
-   end [/record_/identifier]
+   end record [/record_/identifier]
    | null record
 
-Add after 3.8(3):
+Add after 3.8(6/3):
 
 If a /record_/identifier appears at the end of the record_definition, it shall 
 repeat the defining_identifier of the enclosing full_type_declaration.
@@ -99,15 +84,15 @@
 Replace 13.5.1(2) with:
 
 record_representation_clause ::=
-   for first_subtype_local_name use
+   for /first_subtype_/local_name use
       record [mod_clause]
          {component_clause}
-      end [local_name];
+      end record [local_name];
 
-Add after 13.5.1(2):
+Add after 13.5.1(6):
 
 If a local_name appears at the end of the record_representation_clause, it 
-shall repeat the first_subtype_local_name.
+shall repeat the /first_subtype_/local_name.
 
 !discussion
 
@@ -118,16 +103,81 @@
 a construct, reducing consistency further. This proposal is at least similar
 to "end loop <id>".
 
+!corrigendum 3.8(3)
+
+@drepl
+@xcode<@fa<record_definition>@fa< ::= >
+   @ft<@b<record>>
+   @fa<   component_list>
+   @ft<@b<end record>>
+   @fa<| >@ft<@b<null record>>>
+@dby
+@xcode<@fa<record_definition>@fa< ::= >
+   @ft<@b<record>>
+   @fa<   component_list>
+   @ft<@b<end record>>@fa< [>@ft<@i<record_>>@fa<identifier]>
+   @fa<| >@ft<@b<null record>>>
+
+!corrigendum 3.8(6/3)
+
+@dinsa
+@xcode<@fa<component_declaration>@fa< ::= >
+   @fa<defining_identifier_list : component_definition [:= default_expression]>
+   @fa<   [aspect_specification];>>
+@dinst
+If a @i<record_>@fa<identifier> appears at the end of the 
+@fa<record_definition>, it shall repeat the @fa<defining_identifier> of the 
+enclosing @fa<full_type_declaration>.
+
+!corrigendum 3.8(28)
+
+@drepl
+@xcode<@b<type> Complex @b<is>
+   @b<record>
+      Re : Real := 0.0;
+      Im : Real := 0.0;
+   @b<end record>;>
+@dby
+@xcode<@b<type> Complex @b<is>
+   @b<record>
+      Re : Real := 0.0;
+      Im : Real := 0.0;
+   @b<end record> Complex;>
+
+!corrigendum 13.5.1(2)
+
+@drepl
+@xcode<@fa<record_representation_clause>@fa< ::= >
+   @ft<@b<for> @i<first_subtype_>>@fa<local_name>@ft<@b< use>>
+      @ft<@b<record>>@fa< [mod_clause]>
+         @fa<{component_clause}>
+      @ft<@b<end record>>@fa<;>>
+@dby
+@xcode<@fa<record_representation_clause>@fa< ::= >
+   @ft<@b<for> @i<first_subtype_>>@fa<local_name>@ft<@b< use>>
+      @ft<@b<record>>@fa< [mod_clause]>
+         @fa<{component_clause}>
+      @ft<@b<end record>>@fa< [local_name];>>
+
+!corrigendum 13.5.1(6)
+
+@dinsa
+@xcode<@fa<last_bit>@fa< ::= >@ft<@i<static_>>@fa<simple_expression>>
+@dinst
+If a @fa<local_name> appears at the end of the 
+@fa<record_representation_clause>, it shall repeat 
+the @i<first_subtype_>@fa<local_name>.
+
+@dby
+
 !ASIS
 
-[Not sure. Does ASIS expose the matching name at the end of a
-construct?? - Editor.]
+ASIS needs to reflect the syntax change.
 
 !ACATS test
 
 An ACATS B-Test and C-Test are needed to check that the new capabilities are
 supported.
-
 
 !appendix
 

Questions? Ask the ACAA Technical Agent