Resync with latest version of AI-302
From-SVN: r101079
This commit is contained in:
parent
bc979ad1ee
commit
8d3ed5b85b
@ -2,11 +2,12 @@
|
||||
-- --
|
||||
-- GNAT LIBRARY COMPONENTS --
|
||||
-- --
|
||||
-- ADA.CONTAINERS.INDEFINITE_HASHED_SETS --
|
||||
-- A D A . C O N T A I N E R S . --
|
||||
-- I N D E F I N I T E _ H A S H E D _ S E T S --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 2004 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 2004-2005 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -35,16 +36,15 @@
|
||||
|
||||
with Ada.Containers.Hash_Tables;
|
||||
with Ada.Streams;
|
||||
with Ada.Finalization;
|
||||
|
||||
generic
|
||||
type Element_Type (<>) is private;
|
||||
|
||||
with function Hash (Element : Element_Type) return Hash_Type;
|
||||
|
||||
-- TODO: get a ruling from ARG in Atlanta re the name and
|
||||
-- order of these declarations ???
|
||||
|
||||
with function Equivalent_Keys (Left, Right : Element_Type) return Boolean;
|
||||
with function Equivalent_Elements (Left, Right : Element_Type)
|
||||
return Boolean;
|
||||
|
||||
with function "=" (Left, Right : Element_Type) return Boolean is <>;
|
||||
|
||||
@ -62,6 +62,8 @@ package Ada.Containers.Indefinite_Hashed_Sets is
|
||||
|
||||
function "=" (Left, Right : Set) return Boolean;
|
||||
|
||||
function Equivalent_Sets (Left, Right : Set) return Boolean;
|
||||
|
||||
function Length (Container : Set) return Count_Type;
|
||||
|
||||
function Is_Empty (Container : Set) return Boolean;
|
||||
@ -74,10 +76,10 @@ package Ada.Containers.Indefinite_Hashed_Sets is
|
||||
(Position : Cursor;
|
||||
Process : not null access procedure (Element : Element_Type));
|
||||
|
||||
-- TODO: resolve in atlanta ???
|
||||
-- procedure Replace_Element (Container : in out Set;
|
||||
-- Position : Cursor;
|
||||
-- By : Element_Type);
|
||||
procedure Replace_Element
|
||||
(Container : Set;
|
||||
Position : Cursor;
|
||||
By : Element_Type);
|
||||
|
||||
procedure Move
|
||||
(Target : in out Set;
|
||||
@ -97,9 +99,35 @@ package Ada.Containers.Indefinite_Hashed_Sets is
|
||||
|
||||
procedure Delete (Container : in out Set; Item : Element_Type);
|
||||
|
||||
procedure Delete (Container : in out Set; Position : in out Cursor);
|
||||
|
||||
procedure Exclude (Container : in out Set; Item : Element_Type);
|
||||
|
||||
procedure Delete (Container : in out Set; Position : in out Cursor);
|
||||
function Contains (Container : Set; Item : Element_Type) return Boolean;
|
||||
|
||||
function Find (Container : Set; Item : Element_Type) return Cursor;
|
||||
|
||||
function First (Container : Set) return Cursor;
|
||||
|
||||
function Next (Position : Cursor) return Cursor;
|
||||
|
||||
procedure Next (Position : in out Cursor);
|
||||
|
||||
function Has_Element (Position : Cursor) return Boolean;
|
||||
|
||||
function Equivalent_Elements (Left, Right : Cursor) return Boolean;
|
||||
|
||||
function Equivalent_Elements
|
||||
(Left : Cursor;
|
||||
Right : Element_Type) return Boolean;
|
||||
|
||||
function Equivalent_Elements
|
||||
(Left : Element_Type;
|
||||
Right : Cursor) return Boolean;
|
||||
|
||||
procedure Iterate
|
||||
(Container : Set;
|
||||
Process : not null access procedure (Position : Cursor));
|
||||
|
||||
procedure Union (Target : in out Set; Source : Set);
|
||||
|
||||
@ -126,13 +154,9 @@ package Ada.Containers.Indefinite_Hashed_Sets is
|
||||
function "xor" (Left, Right : Set) return Set
|
||||
renames Symmetric_Difference;
|
||||
|
||||
function Is_Subset (Subset : Set; Of_Set : Set) return Boolean;
|
||||
|
||||
function Overlap (Left, Right : Set) return Boolean;
|
||||
|
||||
function Contains (Container : Set; Item : Element_Type) return Boolean;
|
||||
|
||||
function Find (Container : Set; Item : Element_Type) return Cursor;
|
||||
function Is_Subset (Subset : Set; Of_Set : Set) return Boolean;
|
||||
|
||||
function Capacity (Container : Set) return Count_Type;
|
||||
|
||||
@ -140,28 +164,6 @@ package Ada.Containers.Indefinite_Hashed_Sets is
|
||||
(Container : in out Set;
|
||||
Capacity : Count_Type);
|
||||
|
||||
function First (Container : Set) return Cursor;
|
||||
|
||||
function Next (Position : Cursor) return Cursor;
|
||||
|
||||
procedure Next (Position : in out Cursor);
|
||||
|
||||
function Has_Element (Position : Cursor) return Boolean;
|
||||
|
||||
function Equivalent_Keys (Left, Right : Cursor) return Boolean;
|
||||
|
||||
function Equivalent_Keys
|
||||
(Left : Cursor;
|
||||
Right : Element_Type) return Boolean;
|
||||
|
||||
function Equivalent_Keys
|
||||
(Left : Element_Type;
|
||||
Right : Cursor) return Boolean;
|
||||
|
||||
procedure Iterate
|
||||
(Container : Set;
|
||||
Process : not null access procedure (Position : Cursor));
|
||||
|
||||
generic
|
||||
type Key_Type (<>) is limited private;
|
||||
|
||||
@ -183,16 +185,16 @@ package Ada.Containers.Indefinite_Hashed_Sets is
|
||||
|
||||
function Element (Container : Set; Key : Key_Type) return Element_Type;
|
||||
|
||||
-- TODO: resolve in atlanta???
|
||||
-- procedure Replace (Container : in out Set;
|
||||
-- Key : Key_Type;
|
||||
-- New_Item : Element_Type);
|
||||
procedure Replace
|
||||
(Container : in out Set;
|
||||
Key : Key_Type;
|
||||
New_Item : Element_Type);
|
||||
|
||||
procedure Delete (Container : in out Set; Key : Key_Type);
|
||||
|
||||
procedure Exclude (Container : in out Set; Key : Key_Type);
|
||||
|
||||
procedure Checked_Update_Element
|
||||
procedure Update_Element_Preserving_Key
|
||||
(Container : in out Set;
|
||||
Position : Cursor;
|
||||
Process : not null access
|
||||
@ -211,18 +213,30 @@ private
|
||||
type Node_Type;
|
||||
type Node_Access is access Node_Type;
|
||||
|
||||
package HT_Types is
|
||||
new Hash_Tables.Generic_Hash_Table_Types (Node_Access);
|
||||
type Element_Access is access Element_Type;
|
||||
|
||||
use HT_Types;
|
||||
type Node_Type is
|
||||
limited record
|
||||
Element : Element_Access;
|
||||
Next : Node_Access;
|
||||
end record;
|
||||
|
||||
type Set is new Hash_Table_Type with null record;
|
||||
package HT_Types is new Hash_Tables.Generic_Hash_Table_Types
|
||||
(Node_Type,
|
||||
Node_Access);
|
||||
|
||||
type Set is new Ada.Finalization.Controlled with record
|
||||
HT : HT_Types.Hash_Table_Type;
|
||||
end record;
|
||||
|
||||
procedure Adjust (Container : in out Set);
|
||||
|
||||
procedure Finalize (Container : in out Set);
|
||||
|
||||
type Set_Access is access constant Set;
|
||||
use HT_Types;
|
||||
use Ada.Finalization;
|
||||
|
||||
type Set_Access is access all Set;
|
||||
for Set_Access'Storage_Size use 0;
|
||||
|
||||
type Cursor is
|
||||
@ -249,7 +263,6 @@ private
|
||||
|
||||
for Set'Read use Read;
|
||||
|
||||
Empty_Set : constant Set := (Hash_Table_Type with null record);
|
||||
Empty_Set : constant Set := (Controlled with HT => (null, 0, 0, 0));
|
||||
|
||||
end Ada.Containers.Indefinite_Hashed_Sets;
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
with Ada.Strings.Maps;
|
||||
|
||||
package Ada.Strings.Fixed is
|
||||
|
@ -2,11 +2,11 @@
|
||||
-- --
|
||||
-- GNAT LIBRARY COMPONENTS --
|
||||
-- --
|
||||
-- ADA.STRINGS.UNBOUNDED.HASH --
|
||||
-- A D A . S T R I N G S . U N B O U N D E D . H A S H --
|
||||
-- --
|
||||
-- S p e c --
|
||||
-- --
|
||||
-- Copyright (C) 2004 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 2004-2005 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is adapted from the Ada Reference Manual for use with --
|
||||
-- GNAT. In accordance with the copyright of that document, you can freely --
|
||||
|
@ -1,6 +1,6 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUNTIME COMPONENTS --
|
||||
-- GNAT RUN-TIME COMPONENTS --
|
||||
-- --
|
||||
-- A D A . S T R I N G S . W I D E _ W I D E _ U N B O U N D E D . A U X --
|
||||
-- --
|
||||
|
@ -1,6 +1,6 @@
|
||||
------------------------------------------------------------------------------
|
||||
-- --
|
||||
-- GNAT RUNTIME COMPONENTS --
|
||||
-- GNAT RUN-TIME COMPONENTS --
|
||||
-- --
|
||||
-- A D A . S T R I N G S . W I D E _ W I D E _ U N B O U N D E D . A U X --
|
||||
-- --
|
||||
|
Loading…
x
Reference in New Issue
Block a user