1------------------------------------------------------------------------------ 2-- -- 3-- GNAT RUN-TIME COMPONENTS -- 4-- -- 5-- A D A . S T R I N G S . 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 16with Ada.Strings.Maps; 17 18package Ada.Strings.Fixed is 19 pragma Preelaborate; 20 21 -------------------------------------------------------------- 22 -- Copy Procedure for Strings of Possibly Different Lengths -- 23 -------------------------------------------------------------- 24 25 procedure Move 26 (Source : String; 27 Target : out String; 28 Drop : Truncation := Error; 29 Justify : Alignment := Left; 30 Pad : Character := Space); 31 32 ------------------------ 33 -- Search Subprograms -- 34 ------------------------ 35 36 function Index 37 (Source : String; 38 Pattern : String; 39 Going : Direction := Forward; 40 Mapping : Maps.Character_Mapping := Maps.Identity) return Natural; 41 42 function Index 43 (Source : String; 44 Pattern : String; 45 Going : Direction := Forward; 46 Mapping : Maps.Character_Mapping_Function) return Natural; 47 48 function Index 49 (Source : String; 50 Set : Maps.Character_Set; 51 Test : Membership := Inside; 52 Going : Direction := Forward) return Natural; 53 54 function Index 55 (Source : String; 56 Pattern : String; 57 From : Positive; 58 Going : Direction := Forward; 59 Mapping : Maps.Character_Mapping := Maps.Identity) return Natural; 60 pragma Ada_05 (Index); 61 62 function Index 63 (Source : String; 64 Pattern : String; 65 From : Positive; 66 Going : Direction := Forward; 67 Mapping : Maps.Character_Mapping_Function) return Natural; 68 pragma Ada_05 (Index); 69 70 function Index 71 (Source : String; 72 Set : Maps.Character_Set; 73 From : Positive; 74 Test : Membership := Inside; 75 Going : Direction := Forward) return Natural; 76 pragma Ada_05 (Index); 77 78 function Index_Non_Blank 79 (Source : String; 80 Going : Direction := Forward) return Natural; 81 82 function Index_Non_Blank 83 (Source : String; 84 From : Positive; 85 Going : Direction := Forward) return Natural; 86 pragma Ada_05 (Index_Non_Blank); 87 88 function Count 89 (Source : String; 90 Pattern : String; 91 Mapping : Maps.Character_Mapping := Maps.Identity) return Natural; 92 93 function Count 94 (Source : String; 95 Pattern : String; 96 Mapping : Maps.Character_Mapping_Function) return Natural; 97 98 function Count 99 (Source : String; 100 Set : Maps.Character_Set) return Natural; 101 102 procedure Find_Token 103 (Source : String; 104 Set : Maps.Character_Set; 105 From : Positive; 106 Test : Membership; 107 First : out Positive; 108 Last : out Natural); 109 pragma Ada_2012 (Find_Token); 110 111 procedure Find_Token 112 (Source : String; 113 Set : Maps.Character_Set; 114 Test : Membership; 115 First : out Positive; 116 Last : out Natural); 117 118 ------------------------------------ 119 -- String Translation Subprograms -- 120 ------------------------------------ 121 122 function Translate 123 (Source : String; 124 Mapping : Maps.Character_Mapping) return String; 125 126 procedure Translate 127 (Source : in out String; 128 Mapping : Maps.Character_Mapping); 129 130 function Translate 131 (Source : String; 132 Mapping : Maps.Character_Mapping_Function) return String; 133 134 procedure Translate 135 (Source : in out String; 136 Mapping : Maps.Character_Mapping_Function); 137 138 --------------------------------------- 139 -- String Transformation Subprograms -- 140 --------------------------------------- 141 142 function Replace_Slice 143 (Source : String; 144 Low : Positive; 145 High : Natural; 146 By : String) return String; 147 148 procedure Replace_Slice 149 (Source : in out String; 150 Low : Positive; 151 High : Natural; 152 By : String; 153 Drop : Truncation := Error; 154 Justify : Alignment := Left; 155 Pad : Character := Space); 156 157 function Insert 158 (Source : String; 159 Before : Positive; 160 New_Item : String) return String; 161 162 procedure Insert 163 (Source : in out String; 164 Before : Positive; 165 New_Item : String; 166 Drop : Truncation := Error); 167 168 function Overwrite 169 (Source : String; 170 Position : Positive; 171 New_Item : String) return String; 172 173 procedure Overwrite 174 (Source : in out String; 175 Position : Positive; 176 New_Item : String; 177 Drop : Truncation := Right); 178 179 function Delete 180 (Source : String; 181 From : Positive; 182 Through : Natural) return String; 183 184 procedure Delete 185 (Source : in out String; 186 From : Positive; 187 Through : Natural; 188 Justify : Alignment := Left; 189 Pad : Character := Space); 190 191 --------------------------------- 192 -- String Selector Subprograms -- 193 --------------------------------- 194 195 function Trim 196 (Source : String; 197 Side : Trim_End) return String; 198 199 procedure Trim 200 (Source : in out String; 201 Side : Trim_End; 202 Justify : Alignment := Left; 203 Pad : Character := Space); 204 205 function Trim 206 (Source : String; 207 Left : Maps.Character_Set; 208 Right : Maps.Character_Set) return String; 209 210 procedure Trim 211 (Source : in out String; 212 Left : Maps.Character_Set; 213 Right : Maps.Character_Set; 214 Justify : Alignment := Strings.Left; 215 Pad : Character := Space); 216 217 function Head 218 (Source : String; 219 Count : Natural; 220 Pad : Character := Space) return String; 221 222 procedure Head 223 (Source : in out String; 224 Count : Natural; 225 Justify : Alignment := Left; 226 Pad : Character := Space); 227 228 function Tail 229 (Source : String; 230 Count : Natural; 231 Pad : Character := Space) return String; 232 233 procedure Tail 234 (Source : in out String; 235 Count : Natural; 236 Justify : Alignment := Left; 237 Pad : Character := Space); 238 239 ---------------------------------- 240 -- String Constructor Functions -- 241 ---------------------------------- 242 243 function "*" 244 (Left : Natural; 245 Right : Character) return String; 246 247 function "*" 248 (Left : Natural; 249 Right : String) return String; 250 251end Ada.Strings.Fixed; 252