Ada Programming/Libraries/Ada.Strings.Wide_Wide_Maps

From Wikibooks, open books for an open world
Jump to navigation Jump to search

Ada. Time-tested, safe and secure.

This language feature is only available from Ada 2005 on.

Ada.Strings.Wide_Wide_Maps is a unit of the Predefined Language Environment since Ada 2005.

Specification[edit]

--                     Standard Ada library specification
--   Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com>
--   Copyright (c) 2004-2016 AXE Consultants
--   Copyright (c) 2004, 2005, 2006 Ada-Europe
--   Copyright (c) 2000 The MITRE Corporation, Inc.
--   Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc.
--   SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual
-- -------------------------------------------------------------------------

package Ada.Strings.Wide_Wide_Maps is
   pragma Preelaborate(Wide_Wide_Maps);

   --   Representation for a set of Wide_Wide_Character values:
   type Wide_Wide_Character_Set is private;
   pragma Preelaborable_Initialization(Wide_Wide_Character_Set);

   Null_Set : constant Wide_Wide_Character_Set;

   type Wide_Wide_Character_Range is
      record
         Low  : Wide_Wide_Character;
         High : Wide_Wide_Character;
      end record;
   --   Represents Wide_Wide_Character range Low..High

   type Wide_Wide_Character_Ranges is array (Positive range <>)
     of Wide_Wide_Character_Range;

   function To_Set (Ranges : in Wide_Wide_Character_Ranges)
                   return Wide_Wide_Character_Set;

   function To_Set (Span : in Wide_Wide_Character_Range)
                   return Wide_Wide_Character_Set;

   function To_Ranges (Set : in Wide_Wide_Character_Set)
                      return Wide_Wide_Character_Ranges;

   function "=" (Left, Right : in Wide_Wide_Character_Set) return Boolean;

   function "not" (Right : in Wide_Wide_Character_Set)
                  return Wide_Wide_Character_Set;
   function "and" (Left, Right : in Wide_Wide_Character_Set)
                  return Wide_Wide_Character_Set;
   function "or" (Left, Right : in Wide_Wide_Character_Set)
                 return Wide_Wide_Character_Set;
   function "xor" (Left, Right : in Wide_Wide_Character_Set)
                  return Wide_Wide_Character_Set;
   function "-" (Left, Right : in Wide_Wide_Character_Set)
                return Wide_Wide_Character_Set;

   function Is_In (Element : in Wide_Wide_Character;
                   Set     : in Wide_Wide_Character_Set)
                  return Boolean;

   function Is_Subset (Elements : in Wide_Wide_Character_Set;
                       Set      : in Wide_Wide_Character_Set)
                      return Boolean;

   function "<=" (Left  : in Wide_Wide_Character_Set;
                  Right : in Wide_Wide_Character_Set)
                 return Boolean renames Is_Subset;

   --  Alternative representation for a set of Wide_Wide_Character values:
   subtype Wide_Wide_Character_Sequence is Wide_Wide_String;

   function To_Set (Sequence : in Wide_Wide_Character_Sequence)
                   return Wide_Wide_Character_Set;

   function To_Set (Singleton : in Wide_Wide_Character)
                   return Wide_Wide_Character_Set;

   function To_Sequence (Set : in Wide_Wide_Character_Set)
                        return Wide_Wide_Character_Sequence;

   --  Representation for a Wide_Wide_Character to Wide_Wide_Character
   --  mapping:
   type Wide_Wide_Character_Mapping is private;
   pragma Preelaborable_Initialization(Wide_Wide_Character_Mapping);

   function Value (Map     : in Wide_Wide_Character_Mapping;
                   Element : in Wide_Wide_Character)
                  return Wide_Wide_Character;

   Identity : constant Wide_Wide_Character_Mapping;

   function To_Mapping (From, To : in Wide_Wide_Character_Sequence)
                       return Wide_Wide_Character_Mapping;

   function To_Domain (Map : in Wide_Wide_Character_Mapping)
                      return Wide_Wide_Character_Sequence;

   function To_Range (Map : in Wide_Wide_Character_Mapping)
                     return Wide_Wide_Character_Sequence;

   type Wide_Wide_Character_Mapping_Function is
     access function (From : in Wide_Wide_Character)
                     return Wide_Wide_Character;

private
   pragma Import (Ada, Wide_Wide_Character_Set);
   pragma Import (Ada, Null_Set);
   pragma Import (Ada, Wide_Wide_Character_Mapping);
   pragma Import (Ada, Identity);
end Ada.Strings.Wide_Wide_Maps;

See also[edit]

Wikibook[edit]

External examples[edit]

Ada Reference Manual[edit]

Ada 2005[edit]

Ada 2012[edit]

Open-Source Implementations[edit]

FSF GNAT

drake