OSDN Git Service

2005-03-29 Robert Dewar <dewar@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-strfix.ads
index c80b511..bf1a496 100644 (file)
@@ -6,33 +6,10 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---                                                                          --
---          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 --
--- 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- --
--- 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 --
--- 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, --
--- 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.                                      --
---                                                                          --
--- GNAT was originally developed  by the GNAT team at  New York University. --
--- Extensive contributions were provided by Ada Core Technologies 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 --
+-- copy and modify this specification,  provided that if you redistribute a --
+-- modified version,  any changes that you have made are clearly indicated. --
 --                                                                          --
 ------------------------------------------------------------------------------
 
@@ -47,63 +24,86 @@ pragma Preelaborate (Fixed);
    --------------------------------------------------------------
 
    procedure Move
-     (Source  : in  String;
+     (Source  : String;
       Target  : out String;
-      Drop    : in  Truncation := Error;
-      Justify : in  Alignment  := Left;
-      Pad     : in  Character  := Space);
+      Drop    : Truncation := Error;
+      Justify : Alignment  := Left;
+      Pad     : Character  := Space);
 
    ------------------------
    -- Search Subprograms --
    ------------------------
 
    function Index
-     (Source   : in String;
-      Pattern  : in String;
-      Going    : in Direction := Forward;
-      Mapping  : in Maps.Character_Mapping := Maps.Identity)
-      return     Natural;
+     (Source  : String;
+      Pattern : String;
+      Going   : Direction := Forward;
+      Mapping : Maps.Character_Mapping := Maps.Identity) return Natural;
+
+   function Index
+     (Source  : String;
+      Pattern : String;
+      Going   : Direction := Forward;
+      Mapping : Maps.Character_Mapping_Function) return Natural;
 
    function Index
-     (Source   : in String;
-      Pattern  : in String;
-      Going    : in Direction := Forward;
-      Mapping  : in Maps.Character_Mapping_Function)
-      return     Natural;
+     (Source : String;
+      Set    : Maps.Character_Set;
+      Test   : Membership := Inside;
+      Going  : Direction  := Forward) return Natural;
 
    function Index
-     (Source : in String;
-      Set    : in Maps.Character_Set;
-      Test   : in Membership := Inside;
-      Going  : in Direction  := Forward)
-      return   Natural;
+     (Source  : String;
+      Pattern : String;
+      From    : Positive;
+      Going   : Direction := Forward;
+      Mapping : Maps.Character_Mapping := Maps.Identity) return Natural;
+   pragma Ada_05 (Index);
+
+   function Index
+     (Source  : String;
+      Pattern : String;
+      From    : Positive;
+      Going   : Direction := Forward;
+      Mapping : Maps.Character_Mapping_Function) return Natural;
+   pragma Ada_05 (Index);
+
+   function Index
+     (Source  : String;
+      Set     : Maps.Character_Set;
+      From    : Positive;
+      Test    : Membership := Inside;
+      Going   : Direction := Forward) return Natural;
+   pragma Ada_05 (Index);
+
+   function Index_Non_Blank
+     (Source : String;
+      Going  : Direction := Forward) return Natural;
 
    function Index_Non_Blank
-     (Source : in String;
-      Going  : in Direction := Forward)
-      return   Natural;
+     (Source : String;
+      From   : Positive;
+      Going  : Direction := Forward) return Natural;
+   pragma Ada_05 (Index_Non_Blank);
 
    function Count
-     (Source   : in String;
-      Pattern  : in String;
-      Mapping  : in Maps.Character_Mapping := Maps.Identity)
-      return     Natural;
+     (Source  : String;
+      Pattern : String;
+      Mapping : Maps.Character_Mapping := Maps.Identity) return Natural;
 
    function Count
-     (Source   : in String;
-      Pattern  : in String;
-      Mapping  : in Maps.Character_Mapping_Function)
-      return     Natural;
+     (Source  : String;
+      Pattern : String;
+      Mapping : Maps.Character_Mapping_Function) return Natural;
 
    function Count
-     (Source   : in String;
-      Set      : in Maps.Character_Set)
-      return     Natural;
+     (Source : String;
+      Set    : Maps.Character_Set) return Natural;
 
    procedure Find_Token
-     (Source : in String;
-      Set    : in Maps.Character_Set;
-      Test   : in Membership;
+     (Source : String;
+      Set    : Maps.Character_Set;
+      Test   : Membership;
       First  : out Positive;
       Last   : out Natural);
 
@@ -112,144 +112,132 @@ pragma Preelaborate (Fixed);
    ------------------------------------
 
    function Translate
-     (Source  : in String;
-      Mapping : in Maps.Character_Mapping)
-      return    String;
+     (Source  : String;
+      Mapping : Maps.Character_Mapping) return String;
 
    procedure Translate
      (Source  : in out String;
-      Mapping : in Maps.Character_Mapping);
+      Mapping : Maps.Character_Mapping);
 
    function Translate
-     (Source  : in String;
-      Mapping : in Maps.Character_Mapping_Function)
-      return    String;
+     (Source  : String;
+      Mapping : Maps.Character_Mapping_Function) return String;
 
    procedure Translate
      (Source  : in out String;
-      Mapping : in Maps.Character_Mapping_Function);
+      Mapping : Maps.Character_Mapping_Function);
 
    ---------------------------------------
    -- String Transformation Subprograms --
    ---------------------------------------
 
    function Replace_Slice
-     (Source : in String;
-      Low    : in Positive;
-      High   : in Natural;
-      By     : in String)
-      return   String;
+     (Source : String;
+      Low    : Positive;
+      High   : Natural;
+      By     : String) return String;
 
    procedure Replace_Slice
      (Source  : in out String;
-      Low     : in Positive;
-      High    : in Natural;
-      By      : in String;
-      Drop    : in Truncation := Error;
-      Justify : in Alignment  := Left;
-      Pad     : in Character  := Space);
+      Low     : Positive;
+      High    : Natural;
+      By      : String;
+      Drop    : Truncation := Error;
+      Justify : Alignment  := Left;
+      Pad     : Character  := Space);
 
    function Insert
-     (Source   : in String;
-      Before   : in Positive;
-      New_Item : in String)
-      return     String;
+     (Source   : String;
+      Before   : Positive;
+      New_Item : String) return String;
 
    procedure Insert
      (Source   : in out String;
-      Before   : in Positive;
-      New_Item : in String;
-      Drop     : in Truncation := Error);
+      Before   : Positive;
+      New_Item : String;
+      Drop     : Truncation := Error);
 
    function Overwrite
-     (Source   : in String;
-      Position : in Positive;
-      New_Item : in String)
-      return     String;
+     (Source   : String;
+      Position : Positive;
+      New_Item : String) return String;
 
    procedure Overwrite
      (Source   : in out String;
-      Position : in Positive;
-      New_Item : in String;
-      Drop     : in Truncation := Right);
+      Position : Positive;
+      New_Item : String;
+      Drop     : Truncation := Right);
 
    function Delete
-     (Source  : in String;
-      From    : in Positive;
-      Through : in Natural)
-      return    String;
+     (Source  : String;
+      From    : Positive;
+      Through : Natural) return String;
 
    procedure Delete
      (Source  : in out String;
-      From    : in Positive;
-      Through : in Natural;
-      Justify : in Alignment := Left;
-      Pad     : in Character := Space);
+      From    : Positive;
+      Through : Natural;
+      Justify : Alignment := Left;
+      Pad     : Character := Space);
 
    ---------------------------------
    -- String Selector Subprograms --
    ---------------------------------
 
    function Trim
-     (Source : in String;
-      Side   : in Trim_End)
-      return   String;
+     (Source : String;
+      Side   : Trim_End) return String;
 
    procedure Trim
      (Source  : in out String;
-      Side    : in Trim_End;
-      Justify : in Alignment := Left;
-      Pad     : in Character := Space);
+      Side    : Trim_End;
+      Justify : Alignment := Left;
+      Pad     : Character := Space);
 
    function Trim
-     (Source : in String;
-      Left   : in Maps.Character_Set;
-      Right  : in Maps.Character_Set)
-      return   String;
+     (Source : String;
+      Left   : Maps.Character_Set;
+      Right  : Maps.Character_Set) return String;
 
    procedure Trim
      (Source  : in out String;
-      Left    : in Maps.Character_Set;
-      Right   : in Maps.Character_Set;
-      Justify : in Alignment := Strings.Left;
-      Pad     : in Character := Space);
+      Left    : Maps.Character_Set;
+      Right   : Maps.Character_Set;
+      Justify : Alignment := Strings.Left;
+      Pad     : Character := Space);
 
    function Head
-     (Source : in String;
-      Count  : in Natural;
-      Pad    : in Character := Space)
-      return   String;
+     (Source : String;
+      Count  : Natural;
+      Pad    : Character := Space) return String;
 
    procedure Head
      (Source  : in out String;
-      Count   : in Natural;
-      Justify : in Alignment := Left;
-      Pad     : in Character := Space);
+      Count   : Natural;
+      Justify : Alignment := Left;
+      Pad     : Character := Space);
 
    function Tail
-     (Source : in String;
-      Count  : in Natural;
-      Pad    : in Character := Space)
-      return   String;
+     (Source : String;
+      Count  : Natural;
+      Pad    : Character := Space) return String;
 
    procedure Tail
      (Source  : in out String;
-      Count   : in Natural;
-      Justify : in Alignment := Left;
-      Pad     : in Character := Space);
+      Count   : Natural;
+      Justify : Alignment := Left;
+      Pad     : Character := Space);
 
    ----------------------------------
    -- String Constructor Functions --
    ----------------------------------
 
    function "*"
-     (Left  : in Natural;
-      Right : in Character)
-      return  String;
+     (Left  : Natural;
+      Right : Character) return String;
 
    function "*"
-     (Left  : in Natural;
-      Right : in String)
-      return  String;
+     (Left  : Natural;
+      Right : String) return String;
 
 end Ada.Strings.Fixed;