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

Differences between 1.1 and version 1.2
Log of other versions for file ai12s/ai12-0306-1.txt

--- ai12s/ai12-0306-1.txt	2019/02/05 05:57:48	1.1
+++ ai12s/ai12-0306-1.txt	2019/02/13 01:42:49	1.2
@@ -1,4 +1,4 @@
-!standard 4.3.3(2)                                  19-02-04  AI12-0306-1/01
+!standard 4.3.3(2)                                  19-02-12  AI12-0306-1/02
 !standard 4.3.3(3/5)
 !standard 4.3.3(9/5)
 !standard 4.3.3(26/5)
@@ -9,6 +9,8 @@
 !standard 4.3.3(42)
 !reference AI12-0212-1
 !class Amendment 19-02-04
+!status Amendment 1-2012 19-02-12
+!status ARG Approved 9-1-0  19-02-12
 !status work item 19-02-04
 !status received 19-01-23
 !priority Low
@@ -75,11 +77,9 @@
   are determined as for a positional_array_aggregate with zero expressions 
   for each dimension;}
 
-Replace AARM 4.3.3(26.a/5) with:
-
     AARM Reason: We need a separate rule to describe what happens for a 
-    multidimensional null_array_aggregate; we wouldn't
-    have needed this rule only for the single dimension case.
+    multidimensional null_array_aggregate; we could've combined the
+    single dimension case with the positional_array_aggregate rule.
 
 Replace 4.3.3(33/3) with:
   In an array_aggregate {delimited by parentheses}, positional notation 
@@ -106,12 +106,118 @@
 
 Replace 4.3.3(42) with:
 
-    (1.1, 1.2, 1.3), (2.1, 2.2, 2.3))
+    ((1.1, 1.2, 1.3), (2.1, 2.2, 2.3))
     (1 => [1.1, 1.2, 1.3], 2 => [2.1, 2.2, 2.3])
     [1 => (1 => 1.1, 2 => 1.2, 3 => 1.3), 2 => (1 => 2.1, 2 => 2.2, 3 => 2.3)]
 
-
 !discussion
+
+This presentation is more like the presentation of container aggregates, and
+it simplifies some of the wording.
+
+!corrigendum 4.3.3(2)
+
+@drepl
+@xindent<@fa<array_aggregate>@fa<@ ::=@ >@hr
+@ @ @ @ @fa<positional_array_aggregate>@ |@ @fa<named_array_aggregate>>
+@dby
+@xindent<@fa<array_aggregate>@fa<@ ::=@ >@hr
+@ @ @ @ @fa<positional_array_aggregate>@ |@ @fa<null_array_aggregate>@ |@ @fa<named_array_aggregate>>
+
+!corrigendum 4.3.3(3/2)
+
+@drepl
+@xindent<@fa<positional_array_aggregate>@fa<@ ::=@ >@hr
+@ @ @ @ (@fa<expression>,@ @fa<expression>@ {,@ @fa<expression>})@hr
+@ @ |@ (@fa<expression>@ {,@ @fa<expression>},@ @b<others>@ =@>@ @fa<expression>)@hr
+@ @ |@ (@fa<expression>@ {,@ @fa<expression>},@ @b<others>@ =@>@ <@>>
+@dby
+@xindent<@fa<positional_array_aggregate>@fa<@ ::=@ >@hr
+@ @ @ @ (@fa<expression>,@ @fa<expression>@ {,@ @fa<expression>})@hr
+@ @ |@ (@fa<expression>@ {,@ @fa<expression>},@ @b<others>@ =@>@ @fa<expression>)@hr
+@ @ |@ (@fa<expression>@ {,@ @fa<expression>},@ @b<others>@ =@>@ <@>)@hr
+@ @ |@ '['@ @fa<expression>@ {,@ @fa<expression>}[,@ @b<others>@ =@>@ @fa<expression>]@ ']'@hr
+@ @ |@ '['@ @fa<expression>@ {,@ @fa<expression>},@ @b<others>@ =@>@ <@>@ ']'>
+
+@xindent<@fa<null_array_aggregate>@fa<@ ::=@ >'['@ ']'>
+
+!corrigendum 4.3.3(9)
+
+@drepl
+An @fa<array_aggregate> of an n-dimensional array type shall be written as
+an n-dimensional @fa<array_aggregate>.
+@dby
+An @fa<array_aggregate> of an n-dimensional array type shall be written as
+an n-dimensional @fa<array_aggregate>, or as a @fa<null_array_aggregate>.
+
+!corrigendum 4.3.3(26)
+
+@dinsa
+@xbullet<For a @fa<positional_array_aggregate> (or equivalent 
+@fa<string_literal>) without an @b<others> choice, the lower bound is that 
+of the corresponding index range in the applicable index constraint, if 
+defined, or that of the corresponding index subtype, if not; in either case, 
+the upper bound is determined from the lower bound and the number of 
+@fa<expression>s (or the length of the @fa<string_literal>);>
+@dinss
+
+@xbullet<For a @fa<null_array_aggregate>, bounds for each dimension are 
+determined as for a @fa<positional_array_aggregate> without an @b<others> 
+choice with zero expressions for each dimension;>
+
+@xbullet<For a @fa<named_array_aggregate> containing only
+@fa<iterated_component_association>s with an @fa<iterator_specification>, the
+lower bound is determined as for a @fa<positional_array_aggregate> without
+an @b<others> choice, and the upper bound is determined from the lower
+bound and the total number of values produced by the iteration(s);>
+
+!comment The Implementation Permission of AI12-0212-1 and note of AI12-0061-1 
+!comment changed the following paragraph numbers (we use the Ada 2012 ones here):
+!corrigendum 4.3.3(32/3)
+
+@drepl
+@s9<10  In an @fa<array_aggregate>, positional notation may only be used with two
+or more @fa<expression>s; a single @fa<expression> in parentheses is interpreted as a
+parenthesized expression. A @fa<named_array_aggregate>, such as (1 =@> X),
+may be used to specify an array with a single component.>
+@dby
+@s9<10  In an @fa<array_aggregate> delimited by parentheses, positional notation may 
+only be used with two or more @fa<expression>s; a single @fa<expression> in 
+parentheses is interpreted as a parenthesized expression. An @fa<array_aggregate>
+delimited by brackets may be used to specify an array with a single component.>
+
+!corrigendum 4.3.3(36)
+
+@drepl
+@xcode<(1 .. 5 =@> (1 .. 8 =@> 0.0))      --@ft<@i<  two-dimensional>>
+(1 .. N =@> @b<new> Cell)             --@ft<@i<  N new cells, in particular for N = 0>>>
+@dby
+@xcode<(1 .. 5 =@> (1 .. 8 =@> 0.0))      --@ft<@i<  two-dimensional>>
+[1 .. N =@> @b<new> Cell]             --@ft<@i<  N new cells, in particular for N = 0>>>
+
+!corrigendum 4.3.3(37)
+
+@drepl
+@xcode<Table'(2 | 4 | 10 =@> 1, @b<others> =@> 0)
+Schedule'(Mon .. Fri =@> True,  @b<others> =@> False)  --@ft<@i<  see 3.6>>
+Schedule'(Wed | Sun  =@> False, others =@> True)
+Vector'(1 =@> 2.5)                                --@ft<@i<  single-component vector>>>
+@dby
+@xcode<Table'(2 | 4 | 10 =@> 1, @b<others> =@> 0)
+Schedule'(Mon .. Fri =@> True,  @b<others> =@> False)  --@ft<@i<  see 3.6>>
+Schedule'[Wed | Sun  =@> False, others =@> True]
+Vector'(1 =@> 2.5)                                --@ft<@i<  single-component vector>>>
+
+!corrigendum 4.3.3(40)
+
+@drepl
+@xcode<((1.1, 1.2, 1.3), (2.1, 2.2, 2.3))
+(1 =@> (1.1, 1.2, 1.3), 2 =@> (2.1, 2.2, 2.3))
+(1 =@> (1 =@> 1.1, 2 =@> 1.2, 3 =@> 1.3), 2 =@> (1 =@> 2.1, 2 =@> 2.2, 3 =@> 2.3))>
+@dby
+@xcode<((1.1, 1.2, 1.3), (2.1, 2.2, 2.3))
+(1 =@> [1.1, 1.2, 1.3], 2 =@> [2.1, 2.2, 2.3])
+[1 =@> (1 =@> 1.1, 2 =@> 1.2, 3 =@> 1.3), 2 =@> (1 =@> 2.1, 2 =@> 2.2, 3 =@> 2.3)]>
 
 !ASIS
 

Questions? Ask the ACAA Technical Agent