OSDN Git Service

2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-crbtgo.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT LIBRARY COMPONENTS                          --
4 --                                                                          --
5 --            ADA.CONTAINERS.RED_BLACK_TREES.GENERIC_OPERATIONS             --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 -- This specification is adapted from the Ada Reference Manual for use with --
10 -- GNAT.  In accordance with the copyright of that document, you can freely --
11 -- copy and modify this specification,  provided that if you redistribute a --
12 -- modified version,  any changes that you have made are clearly indicated. --
13 --                                                                          --
14 ------------------------------------------------------------------------------
15
16 generic
17    with package Tree_Types is new Generic_Tree_Types (<>);
18    use Tree_Types;
19
20    Null_Node : Node_Access;
21
22    with function  Parent (Node : Node_Access) return Node_Access is <>;
23    with procedure Set_Parent (Node : Node_Access; Parent : Node_Access) is <>;
24    with function  Left (Node : Node_Access) return Node_Access is <>;
25    with procedure Set_Left (Node : Node_Access; Left : Node_Access) is <>;
26    with function  Right (Node : Node_Access) return Node_Access is <>;
27    with procedure Set_Right (Node : Node_Access; Right : Node_Access) is <>;
28    with function  Color (Node : Node_Access) return Color_Type is <>;
29    with procedure Set_Color (Node : Node_Access; Color : Color_Type) is <>;
30
31 package Ada.Containers.Red_Black_Trees.Generic_Operations is
32 pragma Pure;
33
34    function Min (Node : Node_Access) return Node_Access;
35
36    function Max (Node : Node_Access) return Node_Access;
37
38    procedure Check_Invariant (Tree : Tree_Type);
39
40    function Next (Node : Node_Access) return Node_Access;
41
42    function Previous (Node : Node_Access) return Node_Access;
43
44    procedure Move (Target, Source : in out Tree_Type);
45
46    generic
47       with function Is_Equal (L, R : Node_Access) return Boolean;
48    function Generic_Equal (Left, Right : Tree_Type) return Boolean;
49
50    procedure Delete_Node_Sans_Free
51      (Tree : in out Tree_Type;
52       Node : Node_Access);
53
54    generic
55       with procedure Process (Node : Node_Access) is <>;
56    procedure Generic_Iteration (Tree : Tree_Type);
57
58    generic
59       with procedure Process (Node : Node_Access) is <>;
60    procedure Generic_Reverse_Iteration (Tree : Tree_Type);
61
62    generic
63       with function New_Node return Node_Access is <>;
64    procedure Generic_Read (Tree : in out Tree_Type; N : Count_Type);
65
66    procedure Rebalance_For_Insert
67      (Tree : in out Tree_Type;
68       Node : Node_Access);
69
70 end Ada.Containers.Red_Black_Trees.Generic_Operations;