summaryrefslogtreecommitdiff
path: root/gcc/ada/a-btgbso.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-25 15:26:02 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-25 15:26:02 +0000
commit7edd507100cac168bcb4900951e44a515fca9c91 (patch)
treedbc2802781e13245b9de316aac743d8ec5a7862b /gcc/ada/a-btgbso.ads
parentd7c2851fa475530f0e445e154ccacb9e5413388a (diff)
downloadgcc-7edd507100cac168bcb4900951e44a515fca9c91.tar.gz
2010-10-25 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_file_time_name_attr): Use GetFileAttributesEx to get the timestamp. A bit faster than opening/closing the file. (__gnat_stat_to_attr): Remove kludge for Windows. (__gnat_file_exists_attr): Likewise. The timestamp is now retreived using GetFileAttributesEx as faster. 2010-10-25 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Derive_Interface_Subprogram): New subprogram. (Derive_Subprograms): For abstract private types transfer to the full view entities of uncovered interface primitives. Required because if the interface primitives are left in the private part of the package they will be decorated as hidden when the analysis of the enclosing package completes (and hence the interface primitive is not visible for dispatching calls). 2010-10-25 Matthew Heaney <heaney@adacore.com> * Makefile.rtl, impunit.adb: Added bounded set and bounded map containers. * a-crbltr.ads: Added declaration of generic package for bounded tree types. * a-rbtgbo.ads, a-rbtgbo.adb, a-rbtgbk.ads, a-rbtgbk.adb, a-btgbso.ads, a-btgbso.adb, a-cborse.ads, a-cborse.adb, a-cborma.ads, a-cborma.adb: New. 2010-10-25 Thomas Quinot <quinot@adacore.com> * sem_util.adb: Minor reformatting. * usage.adb: Fix usage line for -gnatwh. 2010-10-25 Thomas Quinot <quinot@adacore.com> * sem_ch12.adb (Analyze_Package_Instantiation): For an instantiation in an RCI spec, omit package body if instantiation comes from source, even as a nested package. * exp_dist.adb (Add_Calling_Stubs_To_Declarations, *_Support.Add_Receiving_Stubs_To_Declarations): Handle the case of nested packages, package instantiations and subprogram instantiations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165920 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/a-btgbso.ads')
-rw-r--r--gcc/ada/a-btgbso.ads103
1 files changed, 103 insertions, 0 deletions
diff --git a/gcc/ada/a-btgbso.ads b/gcc/ada/a-btgbso.ads
new file mode 100644
index 00000000000..06b58297eb0
--- /dev/null
+++ b/gcc/ada/a-btgbso.ads
@@ -0,0 +1,103 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- ADA.CONTAINERS.RED_BLACK_TREES.GENERIC_BOUNDED_SET_OPERATIONS --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2004-2010, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- This unit was originally developed by Matthew J Heaney. --
+------------------------------------------------------------------------------
+
+-- Tree_Type is used to implement ordered containers. This package declares
+-- set-based tree operations.
+
+with Ada.Containers.Red_Black_Trees.Generic_Bounded_Operations;
+
+generic
+ with package Tree_Operations is new Generic_Bounded_Operations (<>);
+
+ type Set_Type is new Tree_Operations.Tree_Types.Tree_Type with private;
+
+ use Tree_Operations.Tree_Types;
+
+ with procedure Assign (Target : in out Set_Type; Source : Set_Type);
+
+ with procedure Insert_With_Hint
+ (Dst_Set : in out Set_Type;
+ Dst_Hint : Count_Type;
+ Src_Node : Node_Type;
+ Dst_Node : out Count_Type);
+
+ with function Is_Less (Left, Right : Node_Type) return Boolean;
+
+package Ada.Containers.Red_Black_Trees.Generic_Bounded_Set_Operations is
+ pragma Pure;
+
+ procedure Set_Union (Target : in out Set_Type; Source : Set_Type);
+ -- Attempts to insert each element of Source in Target. If Target is
+ -- busy then Program_Error is raised. We say "attempts" here because
+ -- if these are unique-element sets, then the insertion should fail
+ -- (not insert a new item) when the insertion item from Source is
+ -- equivalent to an item already in Target. If these are multisets
+ -- then of course the attempt should always succeed.
+
+ function Set_Union (Left, Right : Set_Type) return Set_Type;
+ -- Makes a copy of Left, and attempts to insert each element of
+ -- Right into the copy, then returns the copy.
+
+ procedure Set_Intersection (Target : in out Set_Type; Source : Set_Type);
+ -- Removes elements from Target that are not equivalent to items in
+ -- Source. If Target is busy then Program_Error is raised.
+
+ function Set_Intersection (Left, Right : Set_Type) return Set_Type;
+ -- Returns a set comprising all the items in Left equivalent to items in
+ -- Right.
+
+ procedure Set_Difference (Target : in out Set_Type; Source : Set_Type);
+ -- Removes elements from Target that are equivalent to items in Source. If
+ -- Target is busy then Program_Error is raised.
+
+ function Set_Difference (Left, Right : Set_Type) return Set_Type;
+ -- Returns a set comprising all the items in Left not equivalent to items
+ -- in Right.
+
+ procedure Set_Symmetric_Difference
+ (Target : in out Set_Type;
+ Source : Set_Type);
+ -- Removes from Target elements that are equivalent to items in Source,
+ -- and inserts into Target items from Source not equivalent elements in
+ -- Target. If Target is busy then Program_Error is raised.
+
+ function Set_Symmetric_Difference (Left, Right : Set_Type) return Set_Type;
+ -- Returns a set comprising the union of the elements in Left not
+ -- equivalent to items in Right, and the elements in Right not equivalent
+ -- to items in Left.
+
+ function Set_Subset (Subset : Set_Type; Of_Set : Set_Type) return Boolean;
+ -- Returns False if Subset contains at least one element not equivalent to
+ -- any item in Of_Set; returns True otherwise.
+
+ function Set_Overlap (Left, Right : Set_Type) return Boolean;
+ -- Returns True if at least one element of Left is equivalent to an item in
+ -- Right; returns False otherwise.
+
+end Ada.Containers.Red_Black_Trees.Generic_Bounded_Set_Operations;