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 16with Ada.Strings.Wide_Wide_Maps; 17 18package 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 264end Ada.Strings.Wide_Wide_Fixed; 265