]>
Commit | Line | Data |
---|---|---|
d23b8f57 RK |
1 | ------------------------------------------------------------------------------ |
2 | -- -- | |
3 | -- GNAT RUN-TIME COMPONENTS -- | |
4 | -- -- | |
5 | -- A D A . S T R I N G S . W I D E _ B O U N D E D -- | |
6 | -- -- | |
7 | -- S p e c -- | |
d23b8f57 | 8 | -- -- |
4b490c1e | 9 | -- Copyright (C) 1992-2020, Free Software Foundation, Inc. -- |
d23b8f57 RK |
10 | -- -- |
11 | -- This specification is derived from the Ada Reference Manual for use with -- | |
12 | -- GNAT. The copyright notice above, and the license provisions that follow -- | |
13 | -- apply solely to the contents of the part following the private keyword. -- | |
14 | -- -- | |
15 | -- GNAT is free software; you can redistribute it and/or modify it under -- | |
16 | -- terms of the GNU General Public License as published by the Free Soft- -- | |
748086b7 | 17 | -- ware Foundation; either version 3, or (at your option) any later ver- -- |
d23b8f57 RK |
18 | -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- |
19 | -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- | |
748086b7 JJ |
20 | -- or FITNESS FOR A PARTICULAR PURPOSE. -- |
21 | -- -- | |
22 | -- As a special exception under Section 7 of GPL version 3, you are granted -- | |
23 | -- additional permissions described in the GCC Runtime Library Exception, -- | |
24 | -- version 3.1, as published by the Free Software Foundation. -- | |
25 | -- -- | |
26 | -- You should have received a copy of the GNU General Public License and -- | |
27 | -- a copy of the GCC Runtime Library Exception along with this program; -- | |
28 | -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- | |
29 | -- <http://www.gnu.org/licenses/>. -- | |
d23b8f57 RK |
30 | -- -- |
31 | -- GNAT was originally developed by the GNAT team at New York University. -- | |
71ff80dc | 32 | -- Extensive contributions were provided by Ada Core Technologies Inc. -- |
d23b8f57 RK |
33 | -- -- |
34 | ------------------------------------------------------------------------------ | |
35 | ||
36 | with Ada.Strings.Wide_Maps; | |
fbf5a39b | 37 | with Ada.Strings.Wide_Superbounded; |
d23b8f57 RK |
38 | |
39 | package Ada.Strings.Wide_Bounded is | |
009186e0 | 40 | pragma Preelaborate; |
d23b8f57 RK |
41 | |
42 | generic | |
43 | Max : Positive; | |
44 | -- Maximum length of a Bounded_Wide_String | |
45 | ||
46 | package Generic_Bounded_Length is | |
47 | ||
48 | Max_Length : constant Positive := Max; | |
49 | ||
50 | type Bounded_Wide_String is private; | |
9b832db5 | 51 | pragma Preelaborable_Initialization (Bounded_Wide_String); |
d23b8f57 RK |
52 | |
53 | Null_Bounded_Wide_String : constant Bounded_Wide_String; | |
54 | ||
55 | subtype Length_Range is Natural range 0 .. Max_Length; | |
56 | ||
82c80734 | 57 | function Length (Source : Bounded_Wide_String) return Length_Range; |
d23b8f57 RK |
58 | |
59 | -------------------------------------------------------- | |
60 | -- Conversion, Concatenation, and Selection Functions -- | |
61 | -------------------------------------------------------- | |
62 | ||
63 | function To_Bounded_Wide_String | |
82c80734 RD |
64 | (Source : Wide_String; |
65 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
66 | |
67 | function To_Wide_String | |
82c80734 RD |
68 | (Source : Bounded_Wide_String) return Wide_String; |
69 | ||
70 | procedure Set_Bounded_Wide_String | |
71 | (Target : out Bounded_Wide_String; | |
72 | Source : Wide_String; | |
73 | Drop : Truncation := Error); | |
74 | pragma Ada_05 (Set_Bounded_Wide_String); | |
d23b8f57 RK |
75 | |
76 | function Append | |
82c80734 RD |
77 | (Left : Bounded_Wide_String; |
78 | Right : Bounded_Wide_String; | |
79 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
80 | |
81 | function Append | |
82c80734 RD |
82 | (Left : Bounded_Wide_String; |
83 | Right : Wide_String; | |
84 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
85 | |
86 | function Append | |
82c80734 RD |
87 | (Left : Wide_String; |
88 | Right : Bounded_Wide_String; | |
89 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
90 | |
91 | function Append | |
82c80734 RD |
92 | (Left : Bounded_Wide_String; |
93 | Right : Wide_Character; | |
94 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
95 | |
96 | function Append | |
82c80734 RD |
97 | (Left : Wide_Character; |
98 | Right : Bounded_Wide_String; | |
99 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
100 | |
101 | procedure Append | |
102 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
103 | New_Item : Bounded_Wide_String; |
104 | Drop : Truncation := Error); | |
d23b8f57 RK |
105 | |
106 | procedure Append | |
107 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
108 | New_Item : Wide_String; |
109 | Drop : Truncation := Error); | |
d23b8f57 RK |
110 | |
111 | procedure Append | |
112 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
113 | New_Item : Wide_Character; |
114 | Drop : Truncation := Error); | |
d23b8f57 RK |
115 | |
116 | function "&" | |
82c80734 RD |
117 | (Left : Bounded_Wide_String; |
118 | Right : Bounded_Wide_String) return Bounded_Wide_String; | |
d23b8f57 RK |
119 | |
120 | function "&" | |
82c80734 RD |
121 | (Left : Bounded_Wide_String; |
122 | Right : Wide_String) return Bounded_Wide_String; | |
d23b8f57 RK |
123 | |
124 | function "&" | |
82c80734 RD |
125 | (Left : Wide_String; |
126 | Right : Bounded_Wide_String) return Bounded_Wide_String; | |
d23b8f57 RK |
127 | |
128 | function "&" | |
82c80734 RD |
129 | (Left : Bounded_Wide_String; |
130 | Right : Wide_Character) return Bounded_Wide_String; | |
d23b8f57 RK |
131 | |
132 | function "&" | |
82c80734 RD |
133 | (Left : Wide_Character; |
134 | Right : Bounded_Wide_String) return Bounded_Wide_String; | |
d23b8f57 RK |
135 | |
136 | function Element | |
82c80734 RD |
137 | (Source : Bounded_Wide_String; |
138 | Index : Positive) return Wide_Character; | |
d23b8f57 RK |
139 | |
140 | procedure Replace_Element | |
141 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
142 | Index : Positive; |
143 | By : Wide_Character); | |
d23b8f57 RK |
144 | |
145 | function Slice | |
82c80734 RD |
146 | (Source : Bounded_Wide_String; |
147 | Low : Positive; | |
148 | High : Natural) return Wide_String; | |
149 | ||
150 | function Bounded_Slice | |
151 | (Source : Bounded_Wide_String; | |
152 | Low : Positive; | |
153 | High : Natural) return Bounded_Wide_String; | |
154 | pragma Ada_05 (Bounded_Slice); | |
155 | ||
156 | procedure Bounded_Slice | |
157 | (Source : Bounded_Wide_String; | |
158 | Target : out Bounded_Wide_String; | |
159 | Low : Positive; | |
160 | High : Natural); | |
161 | pragma Ada_05 (Bounded_Slice); | |
d23b8f57 RK |
162 | |
163 | function "=" | |
82c80734 RD |
164 | (Left : Bounded_Wide_String; |
165 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
166 | |
167 | function "=" | |
82c80734 RD |
168 | (Left : Bounded_Wide_String; |
169 | Right : Wide_String) return Boolean; | |
d23b8f57 RK |
170 | |
171 | function "=" | |
82c80734 RD |
172 | (Left : Wide_String; |
173 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
174 | |
175 | function "<" | |
82c80734 RD |
176 | (Left : Bounded_Wide_String; |
177 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
178 | |
179 | function "<" | |
82c80734 RD |
180 | (Left : Bounded_Wide_String; |
181 | Right : Wide_String) return Boolean; | |
d23b8f57 RK |
182 | |
183 | function "<" | |
82c80734 RD |
184 | (Left : Wide_String; |
185 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
186 | |
187 | function "<=" | |
82c80734 RD |
188 | (Left : Bounded_Wide_String; |
189 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
190 | |
191 | function "<=" | |
82c80734 RD |
192 | (Left : Bounded_Wide_String; |
193 | Right : Wide_String) return Boolean; | |
d23b8f57 RK |
194 | |
195 | function "<=" | |
82c80734 RD |
196 | (Left : Wide_String; |
197 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
198 | |
199 | function ">" | |
82c80734 RD |
200 | (Left : Bounded_Wide_String; |
201 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
202 | |
203 | function ">" | |
82c80734 RD |
204 | (Left : Bounded_Wide_String; |
205 | Right : Wide_String) return Boolean; | |
d23b8f57 RK |
206 | |
207 | function ">" | |
82c80734 RD |
208 | (Left : Wide_String; |
209 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
210 | |
211 | function ">=" | |
82c80734 RD |
212 | (Left : Bounded_Wide_String; |
213 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
214 | |
215 | function ">=" | |
82c80734 RD |
216 | (Left : Bounded_Wide_String; |
217 | Right : Wide_String) return Boolean; | |
d23b8f57 RK |
218 | |
219 | function ">=" | |
82c80734 RD |
220 | (Left : Wide_String; |
221 | Right : Bounded_Wide_String) return Boolean; | |
d23b8f57 RK |
222 | |
223 | ---------------------- | |
224 | -- Search Functions -- | |
225 | ---------------------- | |
226 | ||
227 | function Index | |
82c80734 RD |
228 | (Source : Bounded_Wide_String; |
229 | Pattern : Wide_String; | |
230 | Going : Direction := Forward; | |
231 | Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity) | |
232 | return Natural; | |
233 | ||
234 | function Index | |
235 | (Source : Bounded_Wide_String; | |
236 | Pattern : Wide_String; | |
237 | Going : Direction := Forward; | |
238 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural; | |
239 | ||
240 | function Index | |
241 | (Source : Bounded_Wide_String; | |
242 | Set : Wide_Maps.Wide_Character_Set; | |
243 | Test : Membership := Inside; | |
244 | Going : Direction := Forward) return Natural; | |
245 | ||
246 | function Index | |
247 | (Source : Bounded_Wide_String; | |
248 | Pattern : Wide_String; | |
249 | From : Positive; | |
250 | Going : Direction := Forward; | |
251 | Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity) | |
252 | return Natural; | |
253 | pragma Ada_05 (Index); | |
d23b8f57 RK |
254 | |
255 | function Index | |
82c80734 RD |
256 | (Source : Bounded_Wide_String; |
257 | Pattern : Wide_String; | |
258 | From : Positive; | |
259 | Going : Direction := Forward; | |
260 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural; | |
261 | pragma Ada_05 (Index); | |
d23b8f57 RK |
262 | |
263 | function Index | |
82c80734 RD |
264 | (Source : Bounded_Wide_String; |
265 | Set : Wide_Maps.Wide_Character_Set; | |
266 | From : Positive; | |
267 | Test : Membership := Inside; | |
268 | Going : Direction := Forward) return Natural; | |
269 | pragma Ada_05 (Index); | |
270 | ||
271 | function Index_Non_Blank | |
272 | (Source : Bounded_Wide_String; | |
273 | Going : Direction := Forward) return Natural; | |
d23b8f57 RK |
274 | |
275 | function Index_Non_Blank | |
82c80734 RD |
276 | (Source : Bounded_Wide_String; |
277 | From : Positive; | |
278 | Going : Direction := Forward) return Natural; | |
279 | pragma Ada_05 (Index_Non_Blank); | |
d23b8f57 RK |
280 | |
281 | function Count | |
82c80734 RD |
282 | (Source : Bounded_Wide_String; |
283 | Pattern : Wide_String; | |
284 | Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity) | |
285 | return Natural; | |
d23b8f57 RK |
286 | |
287 | function Count | |
82c80734 RD |
288 | (Source : Bounded_Wide_String; |
289 | Pattern : Wide_String; | |
290 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural; | |
d23b8f57 RK |
291 | |
292 | function Count | |
82c80734 RD |
293 | (Source : Bounded_Wide_String; |
294 | Set : Wide_Maps.Wide_Character_Set) return Natural; | |
d23b8f57 | 295 | |
af31bffb AC |
296 | procedure Find_Token |
297 | (Source : Bounded_Wide_String; | |
298 | Set : Wide_Maps.Wide_Character_Set; | |
299 | From : Positive; | |
300 | Test : Membership; | |
301 | First : out Positive; | |
302 | Last : out Natural); | |
303 | pragma Ada_2012 (Find_Token); | |
304 | ||
d23b8f57 | 305 | procedure Find_Token |
82c80734 RD |
306 | (Source : Bounded_Wide_String; |
307 | Set : Wide_Maps.Wide_Character_Set; | |
308 | Test : Membership; | |
d23b8f57 RK |
309 | First : out Positive; |
310 | Last : out Natural); | |
311 | ||
312 | ------------------------------------ | |
82c80734 | 313 | -- String Translation Subprograms -- |
d23b8f57 RK |
314 | ------------------------------------ |
315 | ||
316 | function Translate | |
82c80734 RD |
317 | (Source : Bounded_Wide_String; |
318 | Mapping : Wide_Maps.Wide_Character_Mapping) | |
319 | return Bounded_Wide_String; | |
d23b8f57 RK |
320 | |
321 | procedure Translate | |
82c80734 RD |
322 | (Source : in out Bounded_Wide_String; |
323 | Mapping : Wide_Maps.Wide_Character_Mapping); | |
d23b8f57 RK |
324 | |
325 | function Translate | |
82c80734 RD |
326 | (Source : Bounded_Wide_String; |
327 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) | |
328 | return Bounded_Wide_String; | |
d23b8f57 RK |
329 | |
330 | procedure Translate | |
331 | (Source : in out Bounded_Wide_String; | |
82c80734 | 332 | Mapping : Wide_Maps.Wide_Character_Mapping_Function); |
d23b8f57 RK |
333 | |
334 | --------------------------------------- | |
82c80734 | 335 | -- String Transformation Subprograms -- |
d23b8f57 RK |
336 | --------------------------------------- |
337 | ||
338 | function Replace_Slice | |
82c80734 RD |
339 | (Source : Bounded_Wide_String; |
340 | Low : Positive; | |
341 | High : Natural; | |
342 | By : Wide_String; | |
343 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
344 | |
345 | procedure Replace_Slice | |
346 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
347 | Low : Positive; |
348 | High : Natural; | |
349 | By : Wide_String; | |
350 | Drop : Truncation := Error); | |
d23b8f57 RK |
351 | |
352 | function Insert | |
82c80734 RD |
353 | (Source : Bounded_Wide_String; |
354 | Before : Positive; | |
355 | New_Item : Wide_String; | |
356 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
357 | |
358 | procedure Insert | |
359 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
360 | Before : Positive; |
361 | New_Item : Wide_String; | |
362 | Drop : Truncation := Error); | |
d23b8f57 RK |
363 | |
364 | function Overwrite | |
82c80734 RD |
365 | (Source : Bounded_Wide_String; |
366 | Position : Positive; | |
367 | New_Item : Wide_String; | |
368 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
369 | |
370 | procedure Overwrite | |
371 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
372 | Position : Positive; |
373 | New_Item : Wide_String; | |
374 | Drop : Truncation := Error); | |
d23b8f57 RK |
375 | |
376 | function Delete | |
82c80734 RD |
377 | (Source : Bounded_Wide_String; |
378 | From : Positive; | |
379 | Through : Natural) return Bounded_Wide_String; | |
d23b8f57 RK |
380 | |
381 | procedure Delete | |
382 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
383 | From : Positive; |
384 | Through : Natural); | |
d23b8f57 RK |
385 | |
386 | --------------------------------- | |
82c80734 | 387 | -- String Selector Subprograms -- |
d23b8f57 RK |
388 | --------------------------------- |
389 | ||
390 | function Trim | |
82c80734 RD |
391 | (Source : Bounded_Wide_String; |
392 | Side : Trim_End) return Bounded_Wide_String; | |
d23b8f57 RK |
393 | |
394 | procedure Trim | |
395 | (Source : in out Bounded_Wide_String; | |
82c80734 | 396 | Side : Trim_End); |
d23b8f57 RK |
397 | |
398 | function Trim | |
82c80734 RD |
399 | (Source : Bounded_Wide_String; |
400 | Left : Wide_Maps.Wide_Character_Set; | |
401 | Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String; | |
d23b8f57 RK |
402 | |
403 | procedure Trim | |
404 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
405 | Left : Wide_Maps.Wide_Character_Set; |
406 | Right : Wide_Maps.Wide_Character_Set); | |
d23b8f57 RK |
407 | |
408 | function Head | |
82c80734 RD |
409 | (Source : Bounded_Wide_String; |
410 | Count : Natural; | |
411 | Pad : Wide_Character := Wide_Space; | |
412 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
413 | |
414 | procedure Head | |
415 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
416 | Count : Natural; |
417 | Pad : Wide_Character := Wide_Space; | |
418 | Drop : Truncation := Error); | |
d23b8f57 RK |
419 | |
420 | function Tail | |
82c80734 RD |
421 | (Source : Bounded_Wide_String; |
422 | Count : Natural; | |
423 | Pad : Wide_Character := Wide_Space; | |
424 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
425 | |
426 | procedure Tail | |
427 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
428 | Count : Natural; |
429 | Pad : Wide_Character := Wide_Space; | |
430 | Drop : Truncation := Error); | |
d23b8f57 RK |
431 | |
432 | ------------------------------------ | |
82c80734 | 433 | -- String Constructor Subprograms -- |
d23b8f57 RK |
434 | ------------------------------------ |
435 | ||
436 | function "*" | |
82c80734 RD |
437 | (Left : Natural; |
438 | Right : Wide_Character) return Bounded_Wide_String; | |
d23b8f57 RK |
439 | |
440 | function "*" | |
82c80734 RD |
441 | (Left : Natural; |
442 | Right : Wide_String) return Bounded_Wide_String; | |
d23b8f57 RK |
443 | |
444 | function "*" | |
82c80734 RD |
445 | (Left : Natural; |
446 | Right : Bounded_Wide_String) return Bounded_Wide_String; | |
d23b8f57 RK |
447 | |
448 | function Replicate | |
82c80734 RD |
449 | (Count : Natural; |
450 | Item : Wide_Character; | |
451 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
452 | |
453 | function Replicate | |
82c80734 RD |
454 | (Count : Natural; |
455 | Item : Wide_String; | |
456 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
457 | |
458 | function Replicate | |
82c80734 RD |
459 | (Count : Natural; |
460 | Item : Bounded_Wide_String; | |
461 | Drop : Truncation := Error) return Bounded_Wide_String; | |
d23b8f57 RK |
462 | |
463 | private | |
82c80734 RD |
464 | -- Most of the implementation is in the separate non generic package |
465 | -- Ada.Strings.Wide_Superbounded. Type Bounded_Wide_String is derived | |
466 | -- from type Wide_Superbounded.Super_String with the maximum length | |
467 | -- constraint. In almost all cases, the routines in Wide_Superbounded | |
468 | -- can be called with no requirement to pass the maximum length | |
469 | -- explicitly, since there is at least one Bounded_Wide_String argument | |
470 | -- from which the maximum length can be obtained. For all such | |
471 | -- routines, the implementation in this private part is simply a | |
472 | -- renaming of the corresponding routine in the super bouded package. | |
473 | ||
474 | -- The five exceptions are the * and Replicate routines operating on | |
475 | -- character values. For these cases, we have a routine in the body | |
476 | -- that calls the superbounded routine passing the maximum length | |
477 | -- explicitly as an extra parameter. | |
fbf5a39b AC |
478 | |
479 | type Bounded_Wide_String is | |
480 | new Wide_Superbounded.Super_String (Max_Length); | |
82c80734 RD |
481 | -- Deriving Bounded_Wide_String from Wide_Superbounded.Super_String is |
482 | -- the real trick, it ensures that the type Bounded_Wide_String | |
483 | -- declared in the generic instantiation is compatible with the | |
484 | -- Super_String type declared in the Wide_Superbounded package. | |
d23b8f57 RK |
485 | |
486 | Null_Bounded_Wide_String : constant Bounded_Wide_String := | |
82c80734 RD |
487 | (Max_Length => Max_Length, |
488 | Current_Length => 0, | |
489 | Data => | |
490 | (1 .. Max_Length => | |
491 | Wide_Superbounded.Wide_NUL)); | |
fbf5a39b | 492 | |
d23b8f57 | 493 | pragma Inline (To_Bounded_Wide_String); |
fbf5a39b | 494 | |
82c80734 RD |
495 | procedure Set_Bounded_Wide_String |
496 | (Target : out Bounded_Wide_String; | |
497 | Source : Wide_String; | |
498 | Drop : Truncation := Error) | |
499 | renames Set_Super_String; | |
500 | ||
501 | function Length | |
502 | (Source : Bounded_Wide_String) return Length_Range | |
503 | renames Super_Length; | |
fbf5a39b AC |
504 | |
505 | function To_Wide_String | |
82c80734 RD |
506 | (Source : Bounded_Wide_String) return Wide_String |
507 | renames Super_To_String; | |
fbf5a39b AC |
508 | |
509 | function Append | |
82c80734 RD |
510 | (Left : Bounded_Wide_String; |
511 | Right : Bounded_Wide_String; | |
512 | Drop : Truncation := Error) return Bounded_Wide_String | |
513 | renames Super_Append; | |
fbf5a39b AC |
514 | |
515 | function Append | |
82c80734 RD |
516 | (Left : Bounded_Wide_String; |
517 | Right : Wide_String; | |
518 | Drop : Truncation := Error) return Bounded_Wide_String | |
519 | renames Super_Append; | |
fbf5a39b AC |
520 | |
521 | function Append | |
82c80734 RD |
522 | (Left : Wide_String; |
523 | Right : Bounded_Wide_String; | |
524 | Drop : Truncation := Error) return Bounded_Wide_String | |
525 | renames Super_Append; | |
fbf5a39b AC |
526 | |
527 | function Append | |
82c80734 RD |
528 | (Left : Bounded_Wide_String; |
529 | Right : Wide_Character; | |
530 | Drop : Truncation := Error) return Bounded_Wide_String | |
531 | renames Super_Append; | |
fbf5a39b AC |
532 | |
533 | function Append | |
82c80734 RD |
534 | (Left : Wide_Character; |
535 | Right : Bounded_Wide_String; | |
536 | Drop : Truncation := Error) return Bounded_Wide_String | |
537 | renames Super_Append; | |
fbf5a39b AC |
538 | |
539 | procedure Append | |
540 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
541 | New_Item : Bounded_Wide_String; |
542 | Drop : Truncation := Error) | |
543 | renames Super_Append; | |
fbf5a39b AC |
544 | |
545 | procedure Append | |
546 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
547 | New_Item : Wide_String; |
548 | Drop : Truncation := Error) | |
549 | renames Super_Append; | |
fbf5a39b AC |
550 | |
551 | procedure Append | |
552 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
553 | New_Item : Wide_Character; |
554 | Drop : Truncation := Error) | |
555 | renames Super_Append; | |
fbf5a39b AC |
556 | |
557 | function "&" | |
82c80734 RD |
558 | (Left : Bounded_Wide_String; |
559 | Right : Bounded_Wide_String) return Bounded_Wide_String | |
560 | renames Concat; | |
fbf5a39b AC |
561 | |
562 | function "&" | |
82c80734 RD |
563 | (Left : Bounded_Wide_String; |
564 | Right : Wide_String) return Bounded_Wide_String | |
565 | renames Concat; | |
fbf5a39b AC |
566 | |
567 | function "&" | |
82c80734 RD |
568 | (Left : Wide_String; |
569 | Right : Bounded_Wide_String) return Bounded_Wide_String | |
570 | renames Concat; | |
fbf5a39b AC |
571 | |
572 | function "&" | |
82c80734 RD |
573 | (Left : Bounded_Wide_String; |
574 | Right : Wide_Character) return Bounded_Wide_String | |
575 | renames Concat; | |
fbf5a39b AC |
576 | |
577 | function "&" | |
82c80734 RD |
578 | (Left : Wide_Character; |
579 | Right : Bounded_Wide_String) return Bounded_Wide_String | |
580 | renames Concat; | |
fbf5a39b AC |
581 | |
582 | function Element | |
82c80734 RD |
583 | (Source : Bounded_Wide_String; |
584 | Index : Positive) return Wide_Character | |
585 | renames Super_Element; | |
fbf5a39b AC |
586 | |
587 | procedure Replace_Element | |
588 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
589 | Index : Positive; |
590 | By : Wide_Character) | |
591 | renames Super_Replace_Element; | |
fbf5a39b AC |
592 | |
593 | function Slice | |
82c80734 RD |
594 | (Source : Bounded_Wide_String; |
595 | Low : Positive; | |
596 | High : Natural) return Wide_String | |
597 | renames Super_Slice; | |
598 | ||
599 | function Bounded_Slice | |
600 | (Source : Bounded_Wide_String; | |
601 | Low : Positive; | |
602 | High : Natural) return Bounded_Wide_String | |
603 | renames Super_Slice; | |
604 | ||
605 | procedure Bounded_Slice | |
606 | (Source : Bounded_Wide_String; | |
607 | Target : out Bounded_Wide_String; | |
608 | Low : Positive; | |
609 | High : Natural) | |
610 | renames Super_Slice; | |
fbf5a39b | 611 | |
7e22a38c | 612 | overriding function "=" |
82c80734 RD |
613 | (Left : Bounded_Wide_String; |
614 | Right : Bounded_Wide_String) return Boolean | |
615 | renames Equal; | |
fbf5a39b AC |
616 | |
617 | function "=" | |
82c80734 RD |
618 | (Left : Bounded_Wide_String; |
619 | Right : Wide_String) return Boolean | |
620 | renames Equal; | |
fbf5a39b AC |
621 | |
622 | function "=" | |
82c80734 RD |
623 | (Left : Wide_String; |
624 | Right : Bounded_Wide_String) return Boolean | |
625 | renames Equal; | |
fbf5a39b | 626 | |
82c80734 RD |
627 | function "<" |
628 | (Left : Bounded_Wide_String; | |
629 | Right : Bounded_Wide_String) return Boolean | |
630 | renames Less; | |
fbf5a39b AC |
631 | |
632 | function "<" | |
82c80734 RD |
633 | (Left : Bounded_Wide_String; |
634 | Right : Wide_String) return Boolean | |
635 | renames Less; | |
fbf5a39b AC |
636 | |
637 | function "<" | |
82c80734 RD |
638 | (Left : Wide_String; |
639 | Right : Bounded_Wide_String) return Boolean | |
640 | renames Less; | |
fbf5a39b | 641 | |
82c80734 RD |
642 | function "<=" |
643 | (Left : Bounded_Wide_String; | |
644 | Right : Bounded_Wide_String) return Boolean | |
645 | renames Less_Or_Equal; | |
fbf5a39b AC |
646 | |
647 | function "<=" | |
82c80734 RD |
648 | (Left : Bounded_Wide_String; |
649 | Right : Wide_String) return Boolean | |
650 | renames Less_Or_Equal; | |
fbf5a39b AC |
651 | |
652 | function "<=" | |
82c80734 RD |
653 | (Left : Wide_String; |
654 | Right : Bounded_Wide_String) return Boolean | |
655 | renames Less_Or_Equal; | |
fbf5a39b | 656 | |
82c80734 RD |
657 | function ">" |
658 | (Left : Bounded_Wide_String; | |
659 | Right : Bounded_Wide_String) return Boolean | |
660 | renames Greater; | |
fbf5a39b AC |
661 | |
662 | function ">" | |
82c80734 RD |
663 | (Left : Bounded_Wide_String; |
664 | Right : Wide_String) return Boolean | |
665 | renames Greater; | |
fbf5a39b AC |
666 | |
667 | function ">" | |
82c80734 RD |
668 | (Left : Wide_String; |
669 | Right : Bounded_Wide_String) return Boolean | |
670 | renames Greater; | |
fbf5a39b | 671 | |
82c80734 RD |
672 | function ">=" |
673 | (Left : Bounded_Wide_String; | |
674 | Right : Bounded_Wide_String) return Boolean | |
675 | renames Greater_Or_Equal; | |
fbf5a39b AC |
676 | |
677 | function ">=" | |
82c80734 RD |
678 | (Left : Bounded_Wide_String; |
679 | Right : Wide_String) return Boolean | |
680 | renames Greater_Or_Equal; | |
fbf5a39b AC |
681 | |
682 | function ">=" | |
82c80734 RD |
683 | (Left : Wide_String; |
684 | Right : Bounded_Wide_String) return Boolean | |
685 | renames Greater_Or_Equal; | |
686 | ||
687 | function Index | |
688 | (Source : Bounded_Wide_String; | |
689 | Pattern : Wide_String; | |
690 | Going : Direction := Forward; | |
691 | Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity) | |
692 | return Natural | |
693 | renames Super_Index; | |
694 | ||
695 | function Index | |
696 | (Source : Bounded_Wide_String; | |
697 | Pattern : Wide_String; | |
698 | Going : Direction := Forward; | |
699 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural | |
700 | renames Super_Index; | |
701 | ||
702 | function Index | |
703 | (Source : Bounded_Wide_String; | |
704 | Set : Wide_Maps.Wide_Character_Set; | |
705 | Test : Membership := Inside; | |
706 | Going : Direction := Forward) return Natural | |
707 | renames Super_Index; | |
fbf5a39b AC |
708 | |
709 | function Index | |
82c80734 RD |
710 | (Source : Bounded_Wide_String; |
711 | Pattern : Wide_String; | |
712 | From : Positive; | |
713 | Going : Direction := Forward; | |
714 | Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity) | |
715 | return Natural | |
716 | renames Super_Index; | |
fbf5a39b AC |
717 | |
718 | function Index | |
82c80734 RD |
719 | (Source : Bounded_Wide_String; |
720 | Pattern : Wide_String; | |
721 | From : Positive; | |
722 | Going : Direction := Forward; | |
723 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural | |
724 | renames Super_Index; | |
fbf5a39b AC |
725 | |
726 | function Index | |
82c80734 RD |
727 | (Source : Bounded_Wide_String; |
728 | Set : Wide_Maps.Wide_Character_Set; | |
729 | From : Positive; | |
730 | Test : Membership := Inside; | |
731 | Going : Direction := Forward) return Natural | |
732 | renames Super_Index; | |
733 | ||
734 | function Index_Non_Blank | |
735 | (Source : Bounded_Wide_String; | |
736 | Going : Direction := Forward) return Natural | |
737 | renames Super_Index_Non_Blank; | |
fbf5a39b AC |
738 | |
739 | function Index_Non_Blank | |
82c80734 RD |
740 | (Source : Bounded_Wide_String; |
741 | From : Positive; | |
742 | Going : Direction := Forward) return Natural | |
743 | renames Super_Index_Non_Blank; | |
fbf5a39b AC |
744 | |
745 | function Count | |
82c80734 RD |
746 | (Source : Bounded_Wide_String; |
747 | Pattern : Wide_String; | |
748 | Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity) | |
749 | return Natural | |
750 | renames Super_Count; | |
fbf5a39b AC |
751 | |
752 | function Count | |
82c80734 RD |
753 | (Source : Bounded_Wide_String; |
754 | Pattern : Wide_String; | |
755 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural | |
756 | renames Super_Count; | |
fbf5a39b AC |
757 | |
758 | function Count | |
82c80734 RD |
759 | (Source : Bounded_Wide_String; |
760 | Set : Wide_Maps.Wide_Character_Set) return Natural | |
761 | renames Super_Count; | |
fbf5a39b | 762 | |
af31bffb AC |
763 | procedure Find_Token |
764 | (Source : Bounded_Wide_String; | |
765 | Set : Wide_Maps.Wide_Character_Set; | |
766 | From : Positive; | |
767 | Test : Membership; | |
768 | First : out Positive; | |
769 | Last : out Natural) | |
770 | renames Super_Find_Token; | |
771 | ||
fbf5a39b | 772 | procedure Find_Token |
82c80734 RD |
773 | (Source : Bounded_Wide_String; |
774 | Set : Wide_Maps.Wide_Character_Set; | |
775 | Test : Membership; | |
fbf5a39b AC |
776 | First : out Positive; |
777 | Last : out Natural) | |
82c80734 | 778 | renames Super_Find_Token; |
fbf5a39b AC |
779 | |
780 | function Translate | |
82c80734 RD |
781 | (Source : Bounded_Wide_String; |
782 | Mapping : Wide_Maps.Wide_Character_Mapping) | |
783 | return Bounded_Wide_String | |
784 | renames Super_Translate; | |
fbf5a39b AC |
785 | |
786 | procedure Translate | |
787 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
788 | Mapping : Wide_Maps.Wide_Character_Mapping) |
789 | renames Super_Translate; | |
fbf5a39b AC |
790 | |
791 | function Translate | |
82c80734 RD |
792 | (Source : Bounded_Wide_String; |
793 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) | |
794 | return Bounded_Wide_String | |
795 | renames Super_Translate; | |
fbf5a39b AC |
796 | |
797 | procedure Translate | |
798 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
799 | Mapping : Wide_Maps.Wide_Character_Mapping_Function) |
800 | renames Super_Translate; | |
fbf5a39b AC |
801 | |
802 | function Replace_Slice | |
82c80734 RD |
803 | (Source : Bounded_Wide_String; |
804 | Low : Positive; | |
805 | High : Natural; | |
806 | By : Wide_String; | |
807 | Drop : Truncation := Error) return Bounded_Wide_String | |
808 | renames Super_Replace_Slice; | |
fbf5a39b AC |
809 | |
810 | procedure Replace_Slice | |
811 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
812 | Low : Positive; |
813 | High : Natural; | |
814 | By : Wide_String; | |
815 | Drop : Truncation := Error) | |
816 | renames Super_Replace_Slice; | |
fbf5a39b AC |
817 | |
818 | function Insert | |
82c80734 RD |
819 | (Source : Bounded_Wide_String; |
820 | Before : Positive; | |
821 | New_Item : Wide_String; | |
822 | Drop : Truncation := Error) return Bounded_Wide_String | |
823 | renames Super_Insert; | |
fbf5a39b AC |
824 | |
825 | procedure Insert | |
826 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
827 | Before : Positive; |
828 | New_Item : Wide_String; | |
829 | Drop : Truncation := Error) | |
830 | renames Super_Insert; | |
fbf5a39b AC |
831 | |
832 | function Overwrite | |
82c80734 RD |
833 | (Source : Bounded_Wide_String; |
834 | Position : Positive; | |
835 | New_Item : Wide_String; | |
836 | Drop : Truncation := Error) return Bounded_Wide_String | |
837 | renames Super_Overwrite; | |
fbf5a39b AC |
838 | |
839 | procedure Overwrite | |
840 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
841 | Position : Positive; |
842 | New_Item : Wide_String; | |
843 | Drop : Truncation := Error) | |
844 | renames Super_Overwrite; | |
fbf5a39b AC |
845 | |
846 | function Delete | |
82c80734 RD |
847 | (Source : Bounded_Wide_String; |
848 | From : Positive; | |
849 | Through : Natural) return Bounded_Wide_String | |
850 | renames Super_Delete; | |
fbf5a39b AC |
851 | |
852 | procedure Delete | |
853 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
854 | From : Positive; |
855 | Through : Natural) | |
856 | renames Super_Delete; | |
fbf5a39b AC |
857 | |
858 | function Trim | |
82c80734 RD |
859 | (Source : Bounded_Wide_String; |
860 | Side : Trim_End) return Bounded_Wide_String | |
861 | renames Super_Trim; | |
fbf5a39b AC |
862 | |
863 | procedure Trim | |
864 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
865 | Side : Trim_End) |
866 | renames Super_Trim; | |
fbf5a39b AC |
867 | |
868 | function Trim | |
82c80734 RD |
869 | (Source : Bounded_Wide_String; |
870 | Left : Wide_Maps.Wide_Character_Set; | |
871 | Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String | |
872 | renames Super_Trim; | |
fbf5a39b AC |
873 | |
874 | procedure Trim | |
875 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
876 | Left : Wide_Maps.Wide_Character_Set; |
877 | Right : Wide_Maps.Wide_Character_Set) | |
878 | renames Super_Trim; | |
fbf5a39b AC |
879 | |
880 | function Head | |
82c80734 RD |
881 | (Source : Bounded_Wide_String; |
882 | Count : Natural; | |
883 | Pad : Wide_Character := Wide_Space; | |
884 | Drop : Truncation := Error) return Bounded_Wide_String | |
885 | renames Super_Head; | |
fbf5a39b AC |
886 | |
887 | procedure Head | |
888 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
889 | Count : Natural; |
890 | Pad : Wide_Character := Wide_Space; | |
891 | Drop : Truncation := Error) | |
892 | renames Super_Head; | |
fbf5a39b AC |
893 | |
894 | function Tail | |
82c80734 RD |
895 | (Source : Bounded_Wide_String; |
896 | Count : Natural; | |
897 | Pad : Wide_Character := Wide_Space; | |
898 | Drop : Truncation := Error) return Bounded_Wide_String | |
899 | renames Super_Tail; | |
fbf5a39b AC |
900 | |
901 | procedure Tail | |
902 | (Source : in out Bounded_Wide_String; | |
82c80734 RD |
903 | Count : Natural; |
904 | Pad : Wide_Character := Wide_Space; | |
905 | Drop : Truncation := Error) | |
906 | renames Super_Tail; | |
fbf5a39b AC |
907 | |
908 | function "*" | |
82c80734 RD |
909 | (Left : Natural; |
910 | Right : Bounded_Wide_String) return Bounded_Wide_String | |
911 | renames Times; | |
fbf5a39b AC |
912 | |
913 | function Replicate | |
82c80734 RD |
914 | (Count : Natural; |
915 | Item : Bounded_Wide_String; | |
916 | Drop : Truncation := Error) return Bounded_Wide_String | |
fbf5a39b | 917 | renames Super_Replicate; |
d23b8f57 RK |
918 | |
919 | end Generic_Bounded_Length; | |
920 | ||
921 | end Ada.Strings.Wide_Bounded; |