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

Differences between 1.22 and version 1.23
Log of other versions for file ai12s/ai12-0112-1.txt

--- ai12s/ai12-0112-1.txt	2019/07/20 00:59:44	1.22
+++ ai12s/ai12-0112-1.txt	2019/08/17 01:14:43	1.23
@@ -2428,6 +2428,173 @@
       (Container : Tree) @b<return> Boolean
       @b<with> Nonblocking, Global =@> @b<null>;>
 
+!corrigendum A.18.10(44/3)
+
+@drepl
+@xcode<   @b<function> Iterate (Container : @b<in> Tree)
+      @b<return> Tree_Iterator_Interfaces.Forward_Iterator'Class;>
+@dby
+@xcode<   @b<function> Iterate (Container : @b<in> Tree)
+      @b<return> Tree_Iterator_Interfaces.Parallel_Iterator'Class
+      @b<with> Post =@> Tampering_With_Cursors_Prohibited (Container);>
+
+!corrigendum A.18.10(45/3)
+
+@drepl
+@xcode<   @b<function> Iterate_Subtree (Position : @b<in> Cursor)
+      @b<return> Tree_Iterator_Interfaces.Forward_Iterator'Class;>
+@dby
+@xcode<   @b<function> Iterate_Subtree (Position : @b<in> Cursor)
+      @b<return> Tree_Iterator_Interfaces.Parallel_Iterator'Class
+      @b<with> Pre    =@> (@b<if> Position = No_Element @b<then raise> Constraint_Error),
+           Post   =@> Tampering_With_Cursors_Prohibited (Container),
+           Global =@> @b<in access> Tree;>
+
+@xcode<   @b<function> Iterate_Subtree (Container : @b<in> Tree; Position : @b<in> Cursor)
+      @b<return> Tree_Iterator_Interfaces.Parallel_Iterator'Class
+      @b<with> Pre  =@> (@b<if> Position = No_Element @b<then raise> Constraint_Error
+                    @b<elsif not> Meaningful_For (Container, Position)
+                      @b<then raise> Program_Error),
+           Post =@> Tampering_With_Cursors_Prohibited (Container);>
+
+!corrigendum A.18.10(70/3)
+
+@drepl
+@xcode<   @b<function> Iterate_Children (Container : @b<in> Tree; Parent : @b<in> Cursor)
+      @b<return> Tree_Iterator_Interfaces.Reversible_Iterator'Class;>
+@dby
+@xcode<   @b<function> Iterate_Children (Container : @b<in> Tree; Parent : @b<in> Cursor)
+      @b<return> Tree_Iterator_Interfaces.Parallel_Reversible_Iterator'Class
+      @b<with> Pre  =@> (@b<if> Parent = No_Element @b<then raise> Constraint_Error
+                    @b<elsif not> Meaningful_For (Container, Parent)
+                      @b<then raise> Program_Error),
+           Post =@> Tampering_With_Cursors_Prohibited (Container);>
+
+!corrigendum A.18.10(116/3)
+
+@drepl
+@xindent<If Position equals No_Element, then Constraint_Error is propagated;
+if Position does not designate an element in Container (including if it
+designates the root node), then Program_Error is propagated. Otherwise,
+Replace_Element assigns the value New_Item to the element designated by
+Position.>
+@dby
+@xindent<Replace_Element assigns the value New_Item to the element designated by
+Position. For the purposes of determining whether the parameters overlap in a
+call to Replace_Element, the Container parameter is not considered to overlap
+with any object (including itself).>
+
+
+!corrigendum A.18.10(156/3)
+
+@drepl
+@xcode<@b<function> Iterate (Container : @b<in> Tree)
+   @b<return> Tree_Iterator_Interfaces.Forward_Iterator'Class;>
+@dby
+@xcode<@b<function> Iterate (Container : @b<in> Tree)
+   @b<return> Tree_Iterator_Interfaces.Parallel_Iterator'Class
+   @b<with> Post =@> Tampering_With_Cursors_Prohibited (Container);>
+
+!corrigendum A.18.10(158/3)
+
+@drepl
+@xcode<@b<function> Iterate_Subtree (Position : @b<in> Cursor)
+   @b<return> Tree_Iterator_Interfaces.Forward_Iterator'Class;>
+@dby
+@xcode<@b<function> Iterate_Subtree (Position : @b<in> Cursor)
+   @b<return> Tree_Iterator_Interfaces.Parallel_Iterator'Class
+   @b<with> Pre    =@> (@b<if> Position = No_Element @b<then raise> Constraint_Error),
+        Post   =@> Tampering_With_Cursors_Prohibited (Container),
+        Global =@> @b<in access> Tree;>
+
+!corrigendum A.18.10(159/3)
+
+@drepl
+@xindent<If Position equals No_Element, then Constraint_Error is propagated. Otherwise,
+Iterate_Subtree returns an iterator object (see 5.5.1) that will generate a value for
+a loop parameter (see 5.5.2) designating each element in the subtree rooted by the node
+designated by Position, starting from the node designated by Position and
+proceeding in a depth-first order. If Position equals No_Element, then Constraint_Error is
+propagated. Tampering with the cursors of the container that contains the node designated
+by Position is prohibited while the iterator object
+exists (in particular, in the @fa<sequence_of_statements> of the @fa<loop_statement>
+whose @fa<iterator_specification> denotes this object). The iterator
+object needs finalization.>
+@dby
+@xindent<Iterate_Subtree returns an iterator object (see 5.5.1) that 
+will generate a value for a loop parameter (see 5.5.2) designating each element 
+in the subtree rooted by the node designated by Position, starting from the 
+node designated by Position and
+proceeding in a depth-first order when used as a forward iterator, and processing
+all nodes in the subtree concurrently when used as a parallel iterator. 
+Tampering with the cursors of the container that contains the 
+node designated by Position is prohibited while the iterator object
+exists (in particular, in the @fa<sequence_of_statements> of the 
+@fa<loop_statement> whose @fa<iterator_specification> denotes this object). 
+The iterator object needs finalization.>
+
+@xcode<@b<function> Iterate_Subtree (Container : @b<in> Tree; Position : @b<in> Cursor)
+   @b<return> Tree_Iterator_Interfaces.Parallel_Iterator'Class
+   @b<with> Pre  =@> (@b<if> Position = No_Element @b<then raise> Constraint_Error
+                 @b<elsif not> Meaningful_For (Container, Position)
+                   @b<then raise> Program_Error),
+        Post =@> Tampering_With_Cursors_Prohibited (Container);>
+
+@xindent<Iterate_Subtree returns an iterator object (see 5.5.1) that 
+will generate a value for a loop parameter (see 5.5.2) designating each element 
+in the subtree rooted by the node designated by Position in Container, starting 
+from the node designated by Position and
+proceeding in a depth-first order when used as a forward iterator, and processing
+all nodes in the subtree concurrently when used as a parallel iterator. 
+Tampering with the cursors of the container that contains the 
+node designated by Position is prohibited while the iterator object
+exists (in particular, in the @fa<sequence_of_statements> of the 
+@fa<loop_statement> whose @fa<iterator_specification> denotes this object). 
+The iterator object needs finalization.>
+
+!corrigendum A.18.10(218/3)
+
+@drepl
+@xcode<@b<function> Iterate_Children (Container : @b<in> Tree; Parent : @b<in> Cursor)
+   @b<return> Tree_Iterator_Interfaces.Reversible_Iterator'Class;>
+@dby
+@xcode<@b<function> Iterate_Children (Container : @b<in> Tree; Parent : @b<in> Cursor)
+   @b<return> Tree_Iterator_Interfaces.Parallel_Reversible_Iterator'Class
+   @b<with> Pre  =@> (@b<if> Parent = No_Element @b<then raise> Constraint_Error
+                 @b<elsif not> Meaningful_For (Container, Parent)
+                   @b<then raise> Program_Error),
+        Post =@> Tampering_With_Cursors_Prohibited (Container);>
+
+!corrigendum A.18.10(219/3)
+
+@drepl
+@xindent<Iterate_Children returns a reversible iterator object (see 5.5.1) that will generate a
+value for a loop parameter (see 5.5.2) designating each child node of Parent. If Parent equals
+No_Element, then Constraint_Error is propagated. If Parent does not designate a
+node in Container, then Program_Error is propagated. Otherwise, when used as a forward iterator,
+the nodes are designated starting with the first child node and
+moving the cursor as per the function Next_Sibling; when used as a reverse
+iterator, the nodes are designated starting with the last child node and
+moving the cursor as per the function Previous_Sibling. Tampering with the cursors of
+Container is prohibited while the iterator object exists (in particular,
+in the @fa<sequence_of_statements> of the @fa<loop_statement> whose
+@fa<iterator_specification> denotes this object).
+The iterator object needs finalization.>
+@dby
+@xindent<Iterate_Children returns an iterator object (see 5.5.1) that will 
+generate a value for a loop parameter (see 5.5.2) designating each child node 
+of Parent. When used as a forward iterator,
+the nodes are designated starting with the first child node and
+moving the cursor as per the function Next_Sibling; when used as a reverse
+iterator, the nodes are designated starting with the last child node and
+moving the cursor as per the function Previous_Sibling; when used
+as a parallel iterator, processing all child nodes concurrently. Tampering 
+with the cursors of
+Container is prohibited while the iterator object exists (in particular,
+in the @fa<sequence_of_statements> of the @fa<loop_statement> whose
+@fa<iterator_specification> denotes this object).
+The iterator object needs finalization.>
+
 
 !corrigendum A.18.18(8/3)
 

Questions? Ask the ACAA Technical Agent