2005-12-29 Paul Brook <paul@codesourcery.com>
[official-gcc.git] / gcc / ada / a-crbtgk.ads
blobe1a3824a95380d37343ae5912f53cb816cf9c667
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT LIBRARY COMPONENTS --
4 -- --
5 -- A D A . C O N T A I N E R S . R E D _ B L A C K _ T R E E S . --
6 -- G E N E R I C _ K E Y S --
7 -- --
8 -- S p e c --
9 -- --
10 -- This specification is adapted from the Ada Reference Manual for use with --
11 -- GNAT. In accordance with the copyright of that document, you can freely --
12 -- copy and modify this specification, provided that if you redistribute a --
13 -- modified version, any changes that you have made are clearly indicated. --
14 -- --
15 ------------------------------------------------------------------------------
17 with Ada.Containers.Red_Black_Trees.Generic_Operations;
19 generic
20 with package Tree_Operations is new Generic_Operations (<>);
22 use Tree_Operations.Tree_Types;
24 type Key_Type (<>) is limited private;
26 with function Is_Less_Key_Node
27 (L : Key_Type;
28 R : Node_Access) return Boolean;
30 with function Is_Greater_Key_Node
31 (L : Key_Type;
32 R : Node_Access) return Boolean;
34 package Ada.Containers.Red_Black_Trees.Generic_Keys is
35 pragma Pure;
37 generic
38 with function New_Node return Node_Access;
39 procedure Generic_Insert_Post
40 (Tree : in out Tree_Type;
41 X, Y : Node_Access;
42 Key : Key_Type;
43 Z : out Node_Access);
45 generic
46 with procedure Insert_Post
47 (Tree : in out Tree_Type;
48 X, Y : Node_Access;
49 Key : Key_Type;
50 Z : out Node_Access);
52 procedure Generic_Conditional_Insert
53 (Tree : in out Tree_Type;
54 Key : Key_Type;
55 Node : out Node_Access;
56 Success : out Boolean);
58 generic
59 with procedure Insert_Post
60 (Tree : in out Tree_Type;
61 X, Y : Node_Access;
62 Key : Key_Type;
63 Z : out Node_Access);
65 procedure Generic_Unconditional_Insert
66 (Tree : in out Tree_Type;
67 Key : Key_Type;
68 Node : out Node_Access);
70 generic
71 with procedure Insert_Post
72 (Tree : in out Tree_Type;
73 X, Y : Node_Access;
74 Key : Key_Type;
75 Z : out Node_Access);
77 with procedure Unconditional_Insert_Sans_Hint
78 (Tree : in out Tree_Type;
79 Key : Key_Type;
80 Node : out Node_Access);
82 procedure Generic_Unconditional_Insert_With_Hint
83 (Tree : in out Tree_Type;
84 Hint : Node_Access;
85 Key : Key_Type;
86 Node : out Node_Access);
88 generic
89 with procedure Insert_Post
90 (Tree : in out Tree_Type;
91 X, Y : Node_Access;
92 Key : Key_Type;
93 Z : out Node_Access);
95 with procedure Conditional_Insert_Sans_Hint
96 (Tree : in out Tree_Type;
97 Key : Key_Type;
98 Node : out Node_Access;
99 Success : out Boolean);
101 procedure Generic_Conditional_Insert_With_Hint
102 (Tree : in out Tree_Type;
103 Position : Node_Access;
104 Key : Key_Type;
105 Node : out Node_Access;
106 Success : out Boolean);
108 function Find
109 (Tree : Tree_Type;
110 Key : Key_Type) return Node_Access;
112 function Ceiling
113 (Tree : Tree_Type;
114 Key : Key_Type) return Node_Access;
116 function Floor
117 (Tree : Tree_Type;
118 Key : Key_Type) return Node_Access;
120 function Upper_Bound
121 (Tree : Tree_Type;
122 Key : Key_Type) return Node_Access;
124 generic
125 with procedure Process (Node : Node_Access);
126 procedure Generic_Iteration
127 (Tree : Tree_Type;
128 Key : Key_Type);
130 generic
131 with procedure Process (Node : Node_Access);
132 procedure Generic_Reverse_Iteration
133 (Tree : Tree_Type;
134 Key : Key_Type);
136 end Ada.Containers.Red_Black_Trees.Generic_Keys;