File : a-stzfix.ads


   1 ------------------------------------------------------------------------------
   2 --                                                                          --
   3 --                         GNAT RUN-TIME COMPONENTS                         --
   4 --                                                                          --
   5 --          A D A . S T R I N G S . W I D E _ W I D E _ F I X E D           --
   6 --                                                                          --
   7 --                                 S p e c                                  --
   8 --                                                                          --
   9 -- This specification is derived from the Ada Reference Manual for use with --
  10 -- GNAT.  In accordance with the copyright of that document, you can freely --
  11 -- copy and modify this specification,  provided that if you redistribute a --
  12 -- modified version,  any changes that you have made are clearly indicated. --
  13 --                                                                          --
  14 ------------------------------------------------------------------------------
  15 
  16 with Ada.Strings.Wide_Wide_Maps;
  17 
  18 package Ada.Strings.Wide_Wide_Fixed is
  19    pragma Preelaborate;
  20 
  21    ------------------------------------------------------------------------
  22    -- Copy Procedure for Wide_Wide_Strings of Possibly Different Lengths --
  23    ------------------------------------------------------------------------
  24 
  25    procedure Move
  26      (Source  : Wide_Wide_String;
  27       Target  : out Wide_Wide_String;
  28       Drop    : Truncation := Error;
  29       Justify : Alignment  := Left;
  30       Pad     : Wide_Wide_Character  := Ada.Strings.Wide_Wide_Space);
  31 
  32    ------------------------
  33    -- Search Subprograms --
  34    ------------------------
  35 
  36    function Index
  37      (Source  : Wide_Wide_String;
  38       Pattern : Wide_Wide_String;
  39       Going   : Direction := Forward;
  40       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
  41                   Wide_Wide_Maps.Identity) return Natural;
  42 
  43    function Index
  44      (Source  : Wide_Wide_String;
  45       Pattern : Wide_Wide_String;
  46       Going   : Direction := Forward;
  47       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
  48       return Natural;
  49 
  50    function Index
  51      (Source : Wide_Wide_String;
  52       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set;
  53       Test   : Membership := Inside;
  54       Going  : Direction  := Forward) return Natural;
  55 
  56    function Index
  57      (Source  : Wide_Wide_String;
  58       Pattern : Wide_Wide_String;
  59       From    : Positive;
  60       Going   : Direction := Forward;
  61       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
  62                   Wide_Wide_Maps.Identity)
  63       return Natural;
  64    pragma Ada_05 (Index);
  65 
  66    function Index
  67      (Source  : Wide_Wide_String;
  68       Pattern : Wide_Wide_String;
  69       From    : Positive;
  70       Going   : Direction := Forward;
  71       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
  72       return Natural;
  73    pragma Ada_05 (Index);
  74 
  75    function Index
  76      (Source  : Wide_Wide_String;
  77       Set     : Wide_Wide_Maps.Wide_Wide_Character_Set;
  78       From    : Positive;
  79       Test    : Membership := Inside;
  80       Going   : Direction := Forward) return Natural;
  81    pragma Ada_05 (Index);
  82 
  83    function Index_Non_Blank
  84      (Source : Wide_Wide_String;
  85       Going  : Direction := Forward) return Natural;
  86 
  87    function Index_Non_Blank
  88      (Source : Wide_Wide_String;
  89       From   : Positive;
  90       Going  : Direction := Forward) return Natural;
  91    pragma Ada_05 (Index_Non_Blank);
  92 
  93    function Count
  94      (Source  : Wide_Wide_String;
  95       Pattern : Wide_Wide_String;
  96       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
  97                   Wide_Wide_Maps.Identity)
  98       return Natural;
  99 
 100    function Count
 101      (Source  : Wide_Wide_String;
 102       Pattern : Wide_Wide_String;
 103       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
 104       return Natural;
 105 
 106    function Count
 107      (Source : Wide_Wide_String;
 108       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
 109 
 110    procedure Find_Token
 111      (Source : Wide_Wide_String;
 112       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set;
 113       From   : Positive;
 114       Test   : Membership;
 115       First  : out Positive;
 116       Last   : out Natural);
 117    pragma Ada_2012 (Find_Token);
 118 
 119    procedure Find_Token
 120      (Source : Wide_Wide_String;
 121       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set;
 122       Test   : Membership;
 123       First  : out Positive;
 124       Last   : out Natural);
 125 
 126    ----------------------------------------------
 127    -- Wide_Wide_String Translation Subprograms --
 128    ----------------------------------------------
 129 
 130    function Translate
 131      (Source  : Wide_Wide_String;
 132       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
 133       return Wide_Wide_String;
 134 
 135    procedure Translate
 136      (Source  : in out Wide_Wide_String;
 137       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
 138 
 139    function Translate
 140      (Source  : Wide_Wide_String;
 141       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
 142       return Wide_Wide_String;
 143 
 144    procedure Translate
 145      (Source  : in out Wide_Wide_String;
 146       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
 147 
 148    -------------------------------------------------
 149    -- Wide_Wide_String Transformation Subprograms --
 150    -------------------------------------------------
 151 
 152    function Replace_Slice
 153      (Source : Wide_Wide_String;
 154       Low    : Positive;
 155       High   : Natural;
 156       By     : Wide_Wide_String) return Wide_Wide_String;
 157 
 158    procedure Replace_Slice
 159      (Source  : in out Wide_Wide_String;
 160       Low     : Positive;
 161       High    : Natural;
 162       By      : Wide_Wide_String;
 163       Drop    : Truncation := Error;
 164       Justify : Alignment  := Left;
 165       Pad     : Wide_Wide_Character  := Ada.Strings.Wide_Wide_Space);
 166 
 167    function Insert
 168      (Source   : Wide_Wide_String;
 169       Before   : Positive;
 170       New_Item : Wide_Wide_String) return Wide_Wide_String;
 171 
 172    procedure Insert
 173      (Source   : in out Wide_Wide_String;
 174       Before   : Positive;
 175       New_Item : Wide_Wide_String;
 176       Drop     : Truncation := Error);
 177 
 178    function Overwrite
 179      (Source   : Wide_Wide_String;
 180       Position : Positive;
 181       New_Item : Wide_Wide_String) return Wide_Wide_String;
 182 
 183    procedure Overwrite
 184      (Source   : in out Wide_Wide_String;
 185       Position : Positive;
 186       New_Item : Wide_Wide_String;
 187       Drop     : Truncation := Right);
 188 
 189    function Delete
 190      (Source  : Wide_Wide_String;
 191       From    : Positive;
 192       Through : Natural) return Wide_Wide_String;
 193 
 194    procedure Delete
 195      (Source  : in out Wide_Wide_String;
 196       From    : Positive;
 197       Through : Natural;
 198       Justify : Alignment := Left;
 199       Pad     : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
 200 
 201    -------------------------------------------
 202    -- Wide_Wide_String Selector Subprograms --
 203    -------------------------------------------
 204 
 205    function Trim
 206      (Source : Wide_Wide_String;
 207       Side   : Trim_End) return Wide_Wide_String;
 208 
 209    procedure Trim
 210      (Source  : in out Wide_Wide_String;
 211       Side    : Trim_End;
 212       Justify : Alignment      := Left;
 213       Pad     : Wide_Wide_Character := Wide_Wide_Space);
 214 
 215    function Trim
 216      (Source : Wide_Wide_String;
 217       Left   : Wide_Wide_Maps.Wide_Wide_Character_Set;
 218       Right  : Wide_Wide_Maps.Wide_Wide_Character_Set)
 219       return Wide_Wide_String;
 220 
 221    procedure Trim
 222      (Source  : in out Wide_Wide_String;
 223       Left    : Wide_Wide_Maps.Wide_Wide_Character_Set;
 224       Right   : Wide_Wide_Maps.Wide_Wide_Character_Set;
 225       Justify : Alignment := Ada.Strings.Left;
 226       Pad     : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
 227 
 228    function Head
 229      (Source : Wide_Wide_String;
 230       Count  : Natural;
 231       Pad    : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
 232       return Wide_Wide_String;
 233 
 234    procedure Head
 235      (Source  : in out Wide_Wide_String;
 236       Count   : Natural;
 237       Justify : Alignment := Left;
 238       Pad     : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
 239 
 240    function Tail
 241      (Source : Wide_Wide_String;
 242       Count  : Natural;
 243       Pad    : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
 244       return Wide_Wide_String;
 245 
 246    procedure Tail
 247      (Source  : in out Wide_Wide_String;
 248       Count   : Natural;
 249       Justify : Alignment := Left;
 250       Pad     : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
 251 
 252    --------------------------------------------
 253    -- Wide_Wide_String Constructor Functions --
 254    --------------------------------------------
 255 
 256    function "*"
 257      (Left  : Natural;
 258       Right : Wide_Wide_Character) return Wide_Wide_String;
 259 
 260    function "*"
 261      (Left  : Natural;
 262       Right : Wide_Wide_String) return Wide_Wide_String;
 263 
 264 end Ada.Strings.Wide_Wide_Fixed;