summaryrefslogtreecommitdiff
path: root/gcc/ada/a-crbtgo.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/a-crbtgo.ads')
-rw-r--r--gcc/ada/a-crbtgo.ads70
1 files changed, 70 insertions, 0 deletions
diff --git a/gcc/ada/a-crbtgo.ads b/gcc/ada/a-crbtgo.ads
new file mode 100644
index 00000000000..3e13ae58e85
--- /dev/null
+++ b/gcc/ada/a-crbtgo.ads
@@ -0,0 +1,70 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- ADA.CONTAINERS.RED_BLACK_TREES.GENERIC_OPERATIONS --
+-- --
+-- S p e c --
+-- --
+-- This specification is adapted from the Ada Reference Manual for use with --
+-- GNAT. In accordance with the copyright of that document, you can freely --
+-- copy and modify this specification, provided that if you redistribute a --
+-- modified version, any changes that you have made are clearly indicated. --
+-- --
+------------------------------------------------------------------------------
+
+generic
+ with package Tree_Types is new Generic_Tree_Types (<>);
+ use Tree_Types;
+
+ Null_Node : Node_Access;
+
+ with function Parent (Node : Node_Access) return Node_Access is <>;
+ with procedure Set_Parent (Node : Node_Access; Parent : Node_Access) is <>;
+ with function Left (Node : Node_Access) return Node_Access is <>;
+ with procedure Set_Left (Node : Node_Access; Left : Node_Access) is <>;
+ with function Right (Node : Node_Access) return Node_Access is <>;
+ with procedure Set_Right (Node : Node_Access; Right : Node_Access) is <>;
+ with function Color (Node : Node_Access) return Color_Type is <>;
+ with procedure Set_Color (Node : Node_Access; Color : Color_Type) is <>;
+
+package Ada.Containers.Red_Black_Trees.Generic_Operations is
+pragma Pure;
+
+ function Min (Node : Node_Access) return Node_Access;
+
+ function Max (Node : Node_Access) return Node_Access;
+
+ procedure Check_Invariant (Tree : Tree_Type);
+
+ function Next (Node : Node_Access) return Node_Access;
+
+ function Previous (Node : Node_Access) return Node_Access;
+
+ procedure Move (Target, Source : in out Tree_Type);
+
+ generic
+ with function Is_Equal (L, R : Node_Access) return Boolean;
+ function Generic_Equal (Left, Right : Tree_Type) return Boolean;
+
+ procedure Delete_Node_Sans_Free
+ (Tree : in out Tree_Type;
+ Node : Node_Access);
+
+ generic
+ with procedure Process (Node : Node_Access) is <>;
+ procedure Generic_Iteration (Tree : Tree_Type);
+
+ generic
+ with procedure Process (Node : Node_Access) is <>;
+ procedure Generic_Reverse_Iteration (Tree : Tree_Type);
+
+ generic
+ with function New_Node return Node_Access is <>;
+ procedure Generic_Read (Tree : in out Tree_Type; N : Count_Type);
+
+ procedure Rebalance_For_Insert
+ (Tree : in out Tree_Type;
+ Node : Node_Access);
+
+end Ada.Containers.Red_Black_Trees.Generic_Operations;