]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/libgnat/a-stwibo.ads
[Ada] Bump copyright year
[thirdparty/gcc.git] / gcc / ada / libgnat / a-stwibo.ads
CommitLineData
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
36with Ada.Strings.Wide_Maps;
fbf5a39b 37with Ada.Strings.Wide_Superbounded;
d23b8f57
RK
38
39package 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
921end Ada.Strings.Wide_Bounded;