Jump to content

Ada Programming/Libraries/Ada.Strings.Wide_Wide_Fixed

From Wikibooks, open books for an open world

Ada. Time-tested, safe and secure.
Ada. Time-tested, safe and secure.

This language feature is only available from Ada 2005 on.

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

Specification

[edit | edit source]
--                     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
-- -------------------------------------------------------------------------

with Ada.Strings.Wide_Wide_Maps;

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

   --   "Copy" procedure for strings of possibly different lengths

   procedure Move (Source  : in  Wide_Wide_String;
                   Target  : out Wide_Wide_String;
                   Drop    : in  Truncation := Error;
                   Justify : in  Alignment  := Left;
                   Pad     : in  Wide_Wide_Character  := Wide_Wide_Space);

   --   Search subprograms

   function Index (Source  : in Wide_Wide_String;
                   Pattern : in Wide_Wide_String;
                   From    : in Positive;
                   Going   : in Direction := Forward;
                   Mapping : in Wide_Wide_Maps.Wide_Wide_Character_Mapping
                     := Wide_Wide_Maps.Identity)
                  return Natural;

   function Index
     (Source  : in Wide_Wide_String;
      Pattern : in Wide_Wide_String;
      From    : in Positive;
      Going   : in Direction := Forward;
      Mapping : in Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
     return Natural;

   function Index (Source   : in Wide_Wide_String;
                   Pattern  : in Wide_Wide_String;
                   Going    : in Direction := Forward;
                   Mapping  : in Wide_Wide_Maps.Wide_Wide_Character_Mapping
                     := Wide_Wide_Maps.Identity)
                  return Natural;

   function Index
     (Source   : in Wide_Wide_String;
      Pattern  : in Wide_Wide_String;
      Going    : in Direction := Forward;
      Mapping  : in Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
     return Natural;

   function Index (Source  : in Wide_Wide_String;
                   Set     : in Wide_Wide_Maps.Wide_Wide_Character_Set;
                   From    : in Positive;
                   Test    : in Membership := Inside;
                   Going   : in Direction := Forward)
                  return Natural;

   function Index (Source : in Wide_Wide_String;
                   Set    : in Wide_Wide_Maps.Wide_Wide_Character_Set;
                   Test   : in Membership := Inside;
                   Going  : in Direction  := Forward)
                  return Natural;

   function Index_Non_Blank (Source : in Wide_Wide_String;
                             From   : in Positive;
                             Going  : in Direction := Forward)
                            return Natural;

   function Index_Non_Blank (Source : in Wide_Wide_String;
                             Going  : in Direction := Forward)
                            return Natural;

   function Count (Source   : in Wide_Wide_String;
                   Pattern  : in Wide_Wide_String;
                   Mapping  : in Wide_Wide_Maps.Wide_Wide_Character_Mapping
                     := Wide_Wide_Maps.Identity)
                  return Natural;

   function Count
     (Source   : in Wide_Wide_String;
      Pattern  : in Wide_Wide_String;
      Mapping  : in Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
     return Natural;

   function Count (Source   : in Wide_Wide_String;
                   Set      : in Wide_Wide_Maps.Wide_Wide_Character_Set)
                  return Natural;

   procedure Find_Token (Source : in Wide_Wide_String;
                         Set    : in Wide_Wide_Maps.Wide_Wide_Character_Set;
                         Test   : in Membership;
                         First  : out Positive;
                         Last   : out Natural);

   --   Wide_Wide_String translation subprograms

   function Translate
     (Source  : in Wide_Wide_String;
      Mapping : in Wide_Wide_Maps.Wide_Wide_Character_Mapping)
     return Wide_Wide_String;

   procedure Translate
     (Source  : in out Wide_Wide_String;
      Mapping : in Wide_Wide_Maps.Wide_Wide_Character_Mapping);

   function Translate
     (Source  : in Wide_Wide_String;
      Mapping : in Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
     return Wide_Wide_String;

   procedure Translate
     (Source  : in out Wide_Wide_String;
      Mapping : in Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);

   --   Wide_Wide_String transformation subprograms

   function Replace_Slice (Source   : in Wide_Wide_String;
                           Low      : in Positive;
                           High     : in Natural;
                           By       : in Wide_Wide_String)
                          return Wide_Wide_String;

   procedure Replace_Slice (Source   : in out Wide_Wide_String;
                            Low      : in Positive;
                            High     : in Natural;
                            By       : in Wide_Wide_String;
                            Drop     : in Truncation := Error;
                            Justify  : in Alignment  := Left;
                            Pad      : in Wide_Wide_Character
                              := Wide_Wide_Space);

   function Insert (Source   : in Wide_Wide_String;
                    Before   : in Positive;
                    New_Item : in Wide_Wide_String)
                   return Wide_Wide_String;

   procedure Insert (Source   : in out Wide_Wide_String;
                     Before   : in Positive;
                     New_Item : in Wide_Wide_String;
                     Drop     : in Truncation := Error);

   function Overwrite (Source   : in Wide_Wide_String;
                       Position : in Positive;
                       New_Item : in Wide_Wide_String)
                      return Wide_Wide_String;

   procedure Overwrite (Source   : in out Wide_Wide_String;
                        Position : in Positive;
                        New_Item : in Wide_Wide_String;
                        Drop     : in Truncation := Right);

   function Delete (Source  : in Wide_Wide_String;
                    From    : in Positive;
                    Through : in Natural)
                   return Wide_Wide_String;

   procedure Delete (Source  : in out Wide_Wide_String;
                     From    : in Positive;
                     Through : in Natural;
                     Justify : in Alignment := Left;
                     Pad     : in Wide_Wide_Character := Wide_Wide_Space);

   --   Wide_Wide_String selector subprograms
   function Trim (Source : in Wide_Wide_String;
                  Side   : in Trim_End)
                 return Wide_Wide_String;

   procedure Trim (Source  : in out Wide_Wide_String;
                   Side    : in Trim_End;
                   Justify : in Alignment := Left;
                   Pad     : in Wide_Wide_Character := Wide_Wide_Space);

   function Trim (Source : in Wide_Wide_String;
                  Left   : in Wide_Wide_Maps.Wide_Wide_Character_Set;
                  Right  : in Wide_Wide_Maps.Wide_Wide_Character_Set)
                 return Wide_Wide_String;

   procedure Trim (Source  : in out Wide_Wide_String;
                   Left    : in Wide_Wide_Maps.Wide_Wide_Character_Set;
                   Right   : in Wide_Wide_Maps.Wide_Wide_Character_Set;
                   Justify : in Alignment := Strings.Left;
                   Pad     : in Wide_Wide_Character := Wide_Wide_Space);

   function Head (Source : in Wide_Wide_String;
                  Count  : in Natural;
                  Pad    : in Wide_Wide_Character := Wide_Wide_Space)
                 return Wide_Wide_String;

   procedure Head (Source  : in out Wide_Wide_String;
                   Count   : in Natural;
                   Justify : in Alignment := Left;
                   Pad     : in Wide_Wide_Character := Wide_Wide_Space);

   function Tail (Source : in Wide_Wide_String;
                  Count  : in Natural;
                  Pad    : in Wide_Wide_Character := Wide_Wide_Space)
                 return Wide_Wide_String;

   procedure Tail (Source  : in out Wide_Wide_String;
                   Count   : in Natural;
                   Justify : in Alignment := Left;
                   Pad     : in Wide_Wide_Character := Wide_Wide_Space);

   --   Wide_Wide_String constructor functions

   function "*" (Left  : in Natural;
                 Right : in Wide_Wide_Character) return Wide_Wide_String;

   function "*" (Left  : in Natural;
                 Right : in Wide_Wide_String) return Wide_Wide_String;

end Ada.Strings.Wide_Wide_Fixed;



See also

[edit | edit source]

Wikibook

[edit | edit source]

External examples

[edit source]

Ada Reference Manual

[edit | edit source]

Ada 2005

[edit | edit source]

Ada 2012

[edit | edit source]

Open-Source Implementations

[edit | edit source]

FSF GNAT

drake