File : a-strfix.ads


     ------------------------------------------------------------------------------
     --                                                                          --
     --                         GNAT RUN-TIME COMPONENTS                         --
     --                                                                          --
   5 --                    A D A . S T R I N G S . F I X E D                     --
     --                                                                          --
     --                                 S p e c                                  --
     --                                                                          --
     --                            $Revision: 1.10 $                             --
  10 --                                                                          --
     --          Copyright (C) 1992-1997 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 --
  15 -- apply solely to the  contents of the part following the private keyword. --
     --                                                                          --
     -- 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 2,  or (at your option) any later ver- --
  20 -- 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.  See the GNU General Public License --
     -- for  more details.  You should have  received  a copy of the GNU General --
     -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
  25 -- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
     -- MA 02111-1307, USA.                                                      --
     --                                                                          --
     -- As a special exception,  if other files  instantiate  generics from this --
     -- unit, or you link  this unit with other files  to produce an executable, --
  30 -- this  unit  does not  by itself cause  the resulting  executable  to  be --
     -- covered  by the  GNU  General  Public  License.  This exception does not --
     -- however invalidate  any other reasons why  the executable file  might be --
     -- covered by the  GNU Public License.                                      --
     --                                                                          --
  35 -- GNAT was originally developed  by the GNAT team at  New York University. --
     -- It is now maintained by Ada Core Technologies Inc (http://www.gnat.com). --
     --                                                                          --
     ------------------------------------------------------------------------------
     
  40 
     with Ada.Strings.Maps;
     
     package Ada.Strings.Fixed is
     pragma Preelaborate (Fixed);
  45 
        --------------------------------------------------------------
        -- Copy Procedure for Strings of Possibly Different Lengths --
        --------------------------------------------------------------
     
  50    procedure Move
          (Source  : in  String;
           Target  : out String;
           Drop    : in  Truncation := Error;
           Justify : in  Alignment  := Left;
  55       Pad     : in  Character  := Space);
     
        ------------------------
        -- Search Subprograms --
        ------------------------
  60 
        function Index
          (Source   : in String;
           Pattern  : in String;
           Going    : in Direction := Forward;
  65       Mapping  : in Maps.Character_Mapping := Maps.Identity)
           return     Natural;
     
        function Index
          (Source   : in String;
  70       Pattern  : in String;
           Going    : in Direction := Forward;
           Mapping  : in Maps.Character_Mapping_Function)
           return     Natural;
     
  75    function Index
          (Source : in String;
           Set    : in Maps.Character_Set;
           Test   : in Membership := Inside;
           Going  : in Direction  := Forward)
  80       return   Natural;
     
        function Index_Non_Blank
          (Source : in String;
           Going  : in Direction := Forward)
  85       return   Natural;
     
        function Count
          (Source   : in String;
           Pattern  : in String;
  90       Mapping  : in Maps.Character_Mapping := Maps.Identity)
           return     Natural;
     
        function Count
          (Source   : in String;
  95       Pattern  : in String;
           Mapping  : in Maps.Character_Mapping_Function)
           return     Natural;
     
        function Count
 100      (Source   : in String;
           Set      : in Maps.Character_Set)
           return     Natural;
     
        procedure Find_Token
 105      (Source : in String;
           Set    : in Maps.Character_Set;
           Test   : in Membership;
           First  : out Positive;
           Last   : out Natural);
 110 
        ------------------------------------
        -- String Translation Subprograms --
        ------------------------------------
     
 115    function Translate
          (Source  : in String;
           Mapping : in Maps.Character_Mapping)
           return    String;
     
 120    procedure Translate
          (Source  : in out String;
           Mapping : in Maps.Character_Mapping);
     
        function Translate
 125      (Source  : in String;
           Mapping : in Maps.Character_Mapping_Function)
           return    String;
     
        procedure Translate
 130      (Source  : in out String;
           Mapping : in Maps.Character_Mapping_Function);
     
        ---------------------------------------
        -- String Transformation Subprograms --
 135    ---------------------------------------
     
        function Replace_Slice
          (Source : in String;
           Low    : in Positive;
 140       High   : in Natural;
           By     : in String)
           return   String;
     
        procedure Replace_Slice
 145      (Source  : in out String;
           Low     : in Positive;
           High    : in Natural;
           By      : in String;
           Drop    : in Truncation := Error;
 150       Justify : in Alignment  := Left;
           Pad     : in Character  := Space);
     
        function Insert
          (Source   : in String;
 155       Before   : in Positive;
           New_Item : in String)
           return     String;
     
        procedure Insert
 160      (Source   : in out String;
           Before   : in Positive;
           New_Item : in String;
           Drop     : in Truncation := Error);
     
 165    function Overwrite
          (Source   : in String;
           Position : in Positive;
           New_Item : in String)
           return     String;
 170 
        procedure Overwrite
          (Source   : in out String;
           Position : in Positive;
           New_Item : in String;
 175       Drop     : in Truncation := Right);
     
        function Delete
          (Source  : in String;
           From    : in Positive;
 180       Through : in Natural)
           return    String;
     
        procedure Delete
          (Source  : in out String;
 185       From    : in Positive;
           Through : in Natural;
           Justify : in Alignment := Left;
           Pad     : in Character := Space);
     
 190    ---------------------------------
        -- String Selector Subprograms --
        ---------------------------------
     
        function Trim
 195      (Source : in String;
           Side   : in Trim_End)
           return   String;
     
        procedure Trim
 200      (Source  : in out String;
           Side    : in Trim_End;
           Justify : in Alignment := Left;
           Pad     : in Character := Space);
     
 205    function Trim
          (Source : in String;
           Left   : in Maps.Character_Set;
           Right  : in Maps.Character_Set)
           return   String;
 210 
        procedure Trim
          (Source  : in out String;
           Left    : in Maps.Character_Set;
           Right   : in Maps.Character_Set;
 215       Justify : in Alignment := Strings.Left;
           Pad     : in Character := Space);
     
        function Head
          (Source : in String;
 220       Count  : in Natural;
           Pad    : in Character := Space)
           return   String;
     
        procedure Head
 225      (Source  : in out String;
           Count   : in Natural;
           Justify : in Alignment := Left;
           Pad     : in Character := Space);
     
 230    function Tail
          (Source : in String;
           Count  : in Natural;
           Pad    : in Character := Space)
           return   String;
 235 
        procedure Tail
          (Source  : in out String;
           Count   : in Natural;
           Justify : in Alignment := Left;
 240       Pad     : in Character := Space);
     
        ----------------------------------
        -- String Constructor Functions --
        ----------------------------------
 245 
        function "*"
          (Left  : in Natural;
           Right : in Character)
           return  String;
 250 
        function "*"
          (Left  : in Natural;
           Right : in String)
           return  String;
 255 
     end Ada.Strings.Fixed;