OSDN Git Service

* gcc.dg/attr-weakref-1.c: Add exit (0) to avoid spurious
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-crbtgk.ads
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 ------------------------------------------------------------------------------
16
17 with Ada.Containers.Red_Black_Trees.Generic_Operations;
18
19 generic
20    with package Tree_Operations is new Generic_Operations (<>);
21
22    use Tree_Operations.Tree_Types;
23
24    type Key_Type (<>) is limited private;
25
26    with function Is_Less_Key_Node
27      (L : Key_Type;
28       R : Node_Access) return Boolean;
29
30    with function Is_Greater_Key_Node
31      (L : Key_Type;
32       R : Node_Access) return Boolean;
33
34 package Ada.Containers.Red_Black_Trees.Generic_Keys is
35    pragma Pure;
36
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);
44
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);
51
52    procedure Generic_Conditional_Insert
53      (Tree    : in out Tree_Type;
54       Key     : Key_Type;
55       Node    : out Node_Access;
56       Success : out Boolean);
57
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);
64
65    procedure Generic_Unconditional_Insert
66      (Tree : in out Tree_Type;
67       Key  : Key_Type;
68       Node : out Node_Access);
69
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);
76
77       with procedure Unconditional_Insert_Sans_Hint
78         (Tree    : in out Tree_Type;
79          Key     : Key_Type;
80          Node    : out Node_Access);
81
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);
87
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);
94
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);
100
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);
107
108    function Find
109      (Tree : Tree_Type;
110       Key  : Key_Type) return Node_Access;
111
112    function Ceiling
113      (Tree : Tree_Type;
114       Key  : Key_Type) return Node_Access;
115
116    function Floor
117      (Tree : Tree_Type;
118       Key  : Key_Type) return Node_Access;
119
120    function Upper_Bound
121      (Tree : Tree_Type;
122       Key  : Key_Type) return Node_Access;
123
124    generic
125       with procedure Process (Node : Node_Access);
126    procedure Generic_Iteration
127      (Tree : Tree_Type;
128       Key  : Key_Type);
129
130    generic
131       with procedure Process (Node : Node_Access);
132    procedure Generic_Reverse_Iteration
133      (Tree : Tree_Type;
134       Key  : Key_Type);
135
136 end Ada.Containers.Red_Black_Trees.Generic_Keys;