2006-06-30 Andrew Pinski <pinskia@gmail.com>
[official-gcc.git] / gcc / ada / a-stzbou.ads
blob7650ef58aa9860567d87d9525a58e67cf53c303f
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 _ B O U N D E D --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 1992-2005, Free Software Foundation, Inc. --
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- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
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 --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
24 -- Boston, MA 02110-1301, USA. --
25 -- --
26 -- As a special exception, if other files instantiate generics from this --
27 -- unit, or you link this unit with other files to produce an executable, --
28 -- this unit does not by itself cause the resulting executable to be --
29 -- covered by the GNU General Public License. This exception does not --
30 -- however invalidate any other reasons why the executable file might be --
31 -- covered by the GNU Public License. --
32 -- --
33 -- GNAT was originally developed by the GNAT team at New York University. --
34 -- Extensive contributions were provided by Ada Core Technologies Inc. --
35 -- --
36 ------------------------------------------------------------------------------
38 with Ada.Strings.Wide_Wide_Maps;
39 with Ada.Strings.Wide_Wide_Superbounded;
41 package Ada.Strings.Wide_Wide_Bounded is
42 pragma Preelaborate;
44 generic
45 Max : Positive;
46 -- Maximum length of a Bounded_Wide_Wide_String
48 package Generic_Bounded_Length is
50 Max_Length : constant Positive := Max;
52 type Bounded_Wide_Wide_String is private;
54 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
56 subtype Length_Range is Natural range 0 .. Max_Length;
58 function Length (Source : Bounded_Wide_Wide_String) return Length_Range;
60 --------------------------------------------------------
61 -- Conversion, Concatenation, and Selection Functions --
62 --------------------------------------------------------
64 function To_Bounded_Wide_Wide_String
65 (Source : Wide_Wide_String;
66 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
68 function To_Wide_Wide_String
69 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String;
71 procedure Set_Bounded_Wide_Wide_String
72 (Target : out Bounded_Wide_Wide_String;
73 Source : Wide_Wide_String;
74 Drop : Truncation := Error);
75 pragma Ada_05 (Set_Bounded_Wide_Wide_String);
77 function Append
78 (Left : Bounded_Wide_Wide_String;
79 Right : Bounded_Wide_Wide_String;
80 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
82 function Append
83 (Left : Bounded_Wide_Wide_String;
84 Right : Wide_Wide_String;
85 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
87 function Append
88 (Left : Wide_Wide_String;
89 Right : Bounded_Wide_Wide_String;
90 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
92 function Append
93 (Left : Bounded_Wide_Wide_String;
94 Right : Wide_Wide_Character;
95 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
97 function Append
98 (Left : Wide_Wide_Character;
99 Right : Bounded_Wide_Wide_String;
100 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
102 procedure Append
103 (Source : in out Bounded_Wide_Wide_String;
104 New_Item : Bounded_Wide_Wide_String;
105 Drop : Truncation := Error);
107 procedure Append
108 (Source : in out Bounded_Wide_Wide_String;
109 New_Item : Wide_Wide_String;
110 Drop : Truncation := Error);
112 procedure Append
113 (Source : in out Bounded_Wide_Wide_String;
114 New_Item : Wide_Wide_Character;
115 Drop : Truncation := Error);
117 function "&"
118 (Left : Bounded_Wide_Wide_String;
119 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
121 function "&"
122 (Left : Bounded_Wide_Wide_String;
123 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
125 function "&"
126 (Left : Wide_Wide_String;
127 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
129 function "&"
130 (Left : Bounded_Wide_Wide_String;
131 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
133 function "&"
134 (Left : Wide_Wide_Character;
135 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
137 function Element
138 (Source : Bounded_Wide_Wide_String;
139 Index : Positive) return Wide_Wide_Character;
141 procedure Replace_Element
142 (Source : in out Bounded_Wide_Wide_String;
143 Index : Positive;
144 By : Wide_Wide_Character);
146 function Slice
147 (Source : Bounded_Wide_Wide_String;
148 Low : Positive;
149 High : Natural) return Wide_Wide_String;
151 function Bounded_Slice
152 (Source : Bounded_Wide_Wide_String;
153 Low : Positive;
154 High : Natural) return Bounded_Wide_Wide_String;
155 pragma Ada_05 (Bounded_Slice);
157 procedure Bounded_Slice
158 (Source : Bounded_Wide_Wide_String;
159 Target : out Bounded_Wide_Wide_String;
160 Low : Positive;
161 High : Natural);
162 pragma Ada_05 (Bounded_Slice);
164 function "="
165 (Left : Bounded_Wide_Wide_String;
166 Right : Bounded_Wide_Wide_String) return Boolean;
168 function "="
169 (Left : Bounded_Wide_Wide_String;
170 Right : Wide_Wide_String) return Boolean;
172 function "="
173 (Left : Wide_Wide_String;
174 Right : Bounded_Wide_Wide_String) return Boolean;
176 function "<"
177 (Left : Bounded_Wide_Wide_String;
178 Right : Bounded_Wide_Wide_String) return Boolean;
180 function "<"
181 (Left : Bounded_Wide_Wide_String;
182 Right : Wide_Wide_String) return Boolean;
184 function "<"
185 (Left : Wide_Wide_String;
186 Right : Bounded_Wide_Wide_String) return Boolean;
188 function "<="
189 (Left : Bounded_Wide_Wide_String;
190 Right : Bounded_Wide_Wide_String) return Boolean;
192 function "<="
193 (Left : Bounded_Wide_Wide_String;
194 Right : Wide_Wide_String) return Boolean;
196 function "<="
197 (Left : Wide_Wide_String;
198 Right : Bounded_Wide_Wide_String) return Boolean;
200 function ">"
201 (Left : Bounded_Wide_Wide_String;
202 Right : Bounded_Wide_Wide_String) return Boolean;
204 function ">"
205 (Left : Bounded_Wide_Wide_String;
206 Right : Wide_Wide_String) return Boolean;
208 function ">"
209 (Left : Wide_Wide_String;
210 Right : Bounded_Wide_Wide_String) return Boolean;
212 function ">="
213 (Left : Bounded_Wide_Wide_String;
214 Right : Bounded_Wide_Wide_String) return Boolean;
216 function ">="
217 (Left : Bounded_Wide_Wide_String;
218 Right : Wide_Wide_String) return Boolean;
220 function ">="
221 (Left : Wide_Wide_String;
222 Right : Bounded_Wide_Wide_String) return Boolean;
224 ----------------------
225 -- Search Functions --
226 ----------------------
228 function Index
229 (Source : Bounded_Wide_Wide_String;
230 Pattern : Wide_Wide_String;
231 Going : Direction := Forward;
232 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
233 Wide_Wide_Maps.Identity)
234 return Natural;
236 function Index
237 (Source : Bounded_Wide_Wide_String;
238 Pattern : Wide_Wide_String;
239 Going : Direction := Forward;
240 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
241 return Natural;
243 function Index
244 (Source : Bounded_Wide_Wide_String;
245 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
246 Test : Membership := Inside;
247 Going : Direction := Forward) return Natural;
249 function Index
250 (Source : Bounded_Wide_Wide_String;
251 Pattern : Wide_Wide_String;
252 From : Positive;
253 Going : Direction := Forward;
254 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
255 Wide_Wide_Maps.Identity)
256 return Natural;
257 pragma Ada_05 (Index);
259 function Index
260 (Source : Bounded_Wide_Wide_String;
261 Pattern : Wide_Wide_String;
262 From : Positive;
263 Going : Direction := Forward;
264 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
265 return Natural;
266 pragma Ada_05 (Index);
268 function Index
269 (Source : Bounded_Wide_Wide_String;
270 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
271 From : Positive;
272 Test : Membership := Inside;
273 Going : Direction := Forward) return Natural;
274 pragma Ada_05 (Index);
276 function Index_Non_Blank
277 (Source : Bounded_Wide_Wide_String;
278 Going : Direction := Forward) return Natural;
280 function Index_Non_Blank
281 (Source : Bounded_Wide_Wide_String;
282 From : Positive;
283 Going : Direction := Forward) return Natural;
284 pragma Ada_05 (Index_Non_Blank);
286 function Count
287 (Source : Bounded_Wide_Wide_String;
288 Pattern : Wide_Wide_String;
289 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
290 Wide_Wide_Maps.Identity)
291 return Natural;
293 function Count
294 (Source : Bounded_Wide_Wide_String;
295 Pattern : Wide_Wide_String;
296 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
297 return Natural;
299 function Count
300 (Source : Bounded_Wide_Wide_String;
301 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
303 procedure Find_Token
304 (Source : Bounded_Wide_Wide_String;
305 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
306 Test : Membership;
307 First : out Positive;
308 Last : out Natural);
310 ------------------------------------
311 -- String Translation Subprograms --
312 ------------------------------------
314 function Translate
315 (Source : Bounded_Wide_Wide_String;
316 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
317 return Bounded_Wide_Wide_String;
319 procedure Translate
320 (Source : in out Bounded_Wide_Wide_String;
321 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
323 function Translate
324 (Source : Bounded_Wide_Wide_String;
325 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
326 return Bounded_Wide_Wide_String;
328 procedure Translate
329 (Source : in out Bounded_Wide_Wide_String;
330 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
332 ---------------------------------------
333 -- String Transformation Subprograms --
334 ---------------------------------------
336 function Replace_Slice
337 (Source : Bounded_Wide_Wide_String;
338 Low : Positive;
339 High : Natural;
340 By : Wide_Wide_String;
341 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
343 procedure Replace_Slice
344 (Source : in out Bounded_Wide_Wide_String;
345 Low : Positive;
346 High : Natural;
347 By : Wide_Wide_String;
348 Drop : Truncation := Error);
350 function Insert
351 (Source : Bounded_Wide_Wide_String;
352 Before : Positive;
353 New_Item : Wide_Wide_String;
354 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
356 procedure Insert
357 (Source : in out Bounded_Wide_Wide_String;
358 Before : Positive;
359 New_Item : Wide_Wide_String;
360 Drop : Truncation := Error);
362 function Overwrite
363 (Source : Bounded_Wide_Wide_String;
364 Position : Positive;
365 New_Item : Wide_Wide_String;
366 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
368 procedure Overwrite
369 (Source : in out Bounded_Wide_Wide_String;
370 Position : Positive;
371 New_Item : Wide_Wide_String;
372 Drop : Truncation := Error);
374 function Delete
375 (Source : Bounded_Wide_Wide_String;
376 From : Positive;
377 Through : Natural) return Bounded_Wide_Wide_String;
379 procedure Delete
380 (Source : in out Bounded_Wide_Wide_String;
381 From : Positive;
382 Through : Natural);
384 ---------------------------------
385 -- String Selector Subprograms --
386 ---------------------------------
388 function Trim
389 (Source : Bounded_Wide_Wide_String;
390 Side : Trim_End) return Bounded_Wide_Wide_String;
392 procedure Trim
393 (Source : in out Bounded_Wide_Wide_String;
394 Side : Trim_End);
396 function Trim
397 (Source : Bounded_Wide_Wide_String;
398 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
399 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
400 return Bounded_Wide_Wide_String;
402 procedure Trim
403 (Source : in out Bounded_Wide_Wide_String;
404 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
405 Right : Wide_Wide_Maps.Wide_Wide_Character_Set);
407 function Head
408 (Source : Bounded_Wide_Wide_String;
409 Count : Natural;
410 Pad : Wide_Wide_Character := Wide_Wide_Space;
411 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
413 procedure Head
414 (Source : in out Bounded_Wide_Wide_String;
415 Count : Natural;
416 Pad : Wide_Wide_Character := Wide_Wide_Space;
417 Drop : Truncation := Error);
419 function Tail
420 (Source : Bounded_Wide_Wide_String;
421 Count : Natural;
422 Pad : Wide_Wide_Character := Wide_Wide_Space;
423 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
425 procedure Tail
426 (Source : in out Bounded_Wide_Wide_String;
427 Count : Natural;
428 Pad : Wide_Wide_Character := Wide_Wide_Space;
429 Drop : Truncation := Error);
431 ------------------------------------
432 -- String Constructor Subprograms --
433 ------------------------------------
435 function "*"
436 (Left : Natural;
437 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
439 function "*"
440 (Left : Natural;
441 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
443 function "*"
444 (Left : Natural;
445 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
447 function Replicate
448 (Count : Natural;
449 Item : Wide_Wide_Character;
450 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
452 function Replicate
453 (Count : Natural;
454 Item : Wide_Wide_String;
455 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
457 function Replicate
458 (Count : Natural;
459 Item : Bounded_Wide_Wide_String;
460 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
462 private
463 -- Most of the implementation is in the separate non generic package
464 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
465 -- derived from type Wide_Wide_Superbounded.Super_String with the
466 -- maximum length constraint. In almost all cases, the routines in
467 -- Wide_Wide_Superbounded can be called with no requirement to pass the
468 -- maximum length explicitly, since there is at least one
469 -- Bounded_Wide_Wide_String argument from which the maximum length can
470 -- be obtained. For all such routines, the implementation in this
471 -- private part is simply renaming of the corresponding routine in the
472 -- super bouded package.
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.
479 type Bounded_Wide_Wide_String is
480 new Wide_Wide_Superbounded.Super_String (Max_Length);
481 -- Deriving Bounded_Wide_Wide_String from
482 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
483 -- that the type Bounded_Wide_Wide_String declared in the generic
484 -- instantiation is compatible with the Super_String type declared in
485 -- the Wide_Wide_Superbounded package.
487 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String :=
488 (Max_Length => Max_Length,
489 Current_Length => 0,
490 Data =>
491 (1 .. Max_Length =>
492 Wide_Wide_Superbounded.Wide_Wide_NUL));
494 pragma Inline (To_Bounded_Wide_Wide_String);
496 procedure Set_Bounded_Wide_Wide_String
497 (Target : out Bounded_Wide_Wide_String;
498 Source : Wide_Wide_String;
499 Drop : Truncation := Error)
500 renames Set_Super_String;
502 function Length
503 (Source : Bounded_Wide_Wide_String) return Length_Range
504 renames Super_Length;
506 function To_Wide_Wide_String
507 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String
508 renames Super_To_String;
510 function Append
511 (Left : Bounded_Wide_Wide_String;
512 Right : Bounded_Wide_Wide_String;
513 Drop : Truncation := Error) return Bounded_Wide_Wide_String
514 renames Super_Append;
516 function Append
517 (Left : Bounded_Wide_Wide_String;
518 Right : Wide_Wide_String;
519 Drop : Truncation := Error) return Bounded_Wide_Wide_String
520 renames Super_Append;
522 function Append
523 (Left : Wide_Wide_String;
524 Right : Bounded_Wide_Wide_String;
525 Drop : Truncation := Error) return Bounded_Wide_Wide_String
526 renames Super_Append;
528 function Append
529 (Left : Bounded_Wide_Wide_String;
530 Right : Wide_Wide_Character;
531 Drop : Truncation := Error) return Bounded_Wide_Wide_String
532 renames Super_Append;
534 function Append
535 (Left : Wide_Wide_Character;
536 Right : Bounded_Wide_Wide_String;
537 Drop : Truncation := Error) return Bounded_Wide_Wide_String
538 renames Super_Append;
540 procedure Append
541 (Source : in out Bounded_Wide_Wide_String;
542 New_Item : Bounded_Wide_Wide_String;
543 Drop : Truncation := Error)
544 renames Super_Append;
546 procedure Append
547 (Source : in out Bounded_Wide_Wide_String;
548 New_Item : Wide_Wide_String;
549 Drop : Truncation := Error)
550 renames Super_Append;
552 procedure Append
553 (Source : in out Bounded_Wide_Wide_String;
554 New_Item : Wide_Wide_Character;
555 Drop : Truncation := Error)
556 renames Super_Append;
558 function "&"
559 (Left : Bounded_Wide_Wide_String;
560 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
561 renames Concat;
563 function "&"
564 (Left : Bounded_Wide_Wide_String;
565 Right : Wide_Wide_String) return Bounded_Wide_Wide_String
566 renames Concat;
568 function "&"
569 (Left : Wide_Wide_String;
570 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
571 renames Concat;
573 function "&"
574 (Left : Bounded_Wide_Wide_String;
575 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
576 renames Concat;
578 function "&"
579 (Left : Wide_Wide_Character;
580 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
581 renames Concat;
583 function Element
584 (Source : Bounded_Wide_Wide_String;
585 Index : Positive) return Wide_Wide_Character
586 renames Super_Element;
588 procedure Replace_Element
589 (Source : in out Bounded_Wide_Wide_String;
590 Index : Positive;
591 By : Wide_Wide_Character)
592 renames Super_Replace_Element;
594 function Slice
595 (Source : Bounded_Wide_Wide_String;
596 Low : Positive;
597 High : Natural) return Wide_Wide_String
598 renames Super_Slice;
600 function Bounded_Slice
601 (Source : Bounded_Wide_Wide_String;
602 Low : Positive;
603 High : Natural) return Bounded_Wide_Wide_String
604 renames Super_Slice;
606 procedure Bounded_Slice
607 (Source : Bounded_Wide_Wide_String;
608 Target : out Bounded_Wide_Wide_String;
609 Low : Positive;
610 High : Natural)
611 renames Super_Slice;
613 function "="
614 (Left : Bounded_Wide_Wide_String;
615 Right : Bounded_Wide_Wide_String) return Boolean
616 renames Equal;
618 function "="
619 (Left : Bounded_Wide_Wide_String;
620 Right : Wide_Wide_String) return Boolean
621 renames Equal;
623 function "="
624 (Left : Wide_Wide_String;
625 Right : Bounded_Wide_Wide_String) return Boolean
626 renames Equal;
628 function "<"
629 (Left : Bounded_Wide_Wide_String;
630 Right : Bounded_Wide_Wide_String) return Boolean
631 renames Less;
633 function "<"
634 (Left : Bounded_Wide_Wide_String;
635 Right : Wide_Wide_String) return Boolean
636 renames Less;
638 function "<"
639 (Left : Wide_Wide_String;
640 Right : Bounded_Wide_Wide_String) return Boolean
641 renames Less;
643 function "<="
644 (Left : Bounded_Wide_Wide_String;
645 Right : Bounded_Wide_Wide_String) return Boolean
646 renames Less_Or_Equal;
648 function "<="
649 (Left : Bounded_Wide_Wide_String;
650 Right : Wide_Wide_String) return Boolean
651 renames Less_Or_Equal;
653 function "<="
654 (Left : Wide_Wide_String;
655 Right : Bounded_Wide_Wide_String) return Boolean
656 renames Less_Or_Equal;
658 function ">"
659 (Left : Bounded_Wide_Wide_String;
660 Right : Bounded_Wide_Wide_String) return Boolean
661 renames Greater;
663 function ">"
664 (Left : Bounded_Wide_Wide_String;
665 Right : Wide_Wide_String) return Boolean
666 renames Greater;
668 function ">"
669 (Left : Wide_Wide_String;
670 Right : Bounded_Wide_Wide_String) return Boolean
671 renames Greater;
673 function ">="
674 (Left : Bounded_Wide_Wide_String;
675 Right : Bounded_Wide_Wide_String) return Boolean
676 renames Greater_Or_Equal;
678 function ">="
679 (Left : Bounded_Wide_Wide_String;
680 Right : Wide_Wide_String) return Boolean
681 renames Greater_Or_Equal;
683 function ">="
684 (Left : Wide_Wide_String;
685 Right : Bounded_Wide_Wide_String) return Boolean
686 renames Greater_Or_Equal;
688 function Index
689 (Source : Bounded_Wide_Wide_String;
690 Pattern : Wide_Wide_String;
691 Going : Direction := Forward;
692 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
693 Wide_Wide_Maps.Identity)
694 return Natural
695 renames Super_Index;
697 function Index
698 (Source : Bounded_Wide_Wide_String;
699 Pattern : Wide_Wide_String;
700 Going : Direction := Forward;
701 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
702 return Natural
703 renames Super_Index;
705 function Index
706 (Source : Bounded_Wide_Wide_String;
707 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
708 Test : Membership := Inside;
709 Going : Direction := Forward) return Natural
710 renames Super_Index;
712 function Index
713 (Source : Bounded_Wide_Wide_String;
714 Pattern : Wide_Wide_String;
715 From : Positive;
716 Going : Direction := Forward;
717 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
718 Wide_Wide_Maps.Identity)
719 return Natural
720 renames Super_Index;
722 function Index
723 (Source : Bounded_Wide_Wide_String;
724 Pattern : Wide_Wide_String;
725 From : Positive;
726 Going : Direction := Forward;
727 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
728 return Natural
729 renames Super_Index;
731 function Index
732 (Source : Bounded_Wide_Wide_String;
733 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
734 From : Positive;
735 Test : Membership := Inside;
736 Going : Direction := Forward) return Natural
737 renames Super_Index;
739 function Index_Non_Blank
740 (Source : Bounded_Wide_Wide_String;
741 Going : Direction := Forward) return Natural
742 renames Super_Index_Non_Blank;
744 function Index_Non_Blank
745 (Source : Bounded_Wide_Wide_String;
746 From : Positive;
747 Going : Direction := Forward) return Natural
748 renames Super_Index_Non_Blank;
750 function Count
751 (Source : Bounded_Wide_Wide_String;
752 Pattern : Wide_Wide_String;
753 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
754 Wide_Wide_Maps.Identity)
755 return Natural
756 renames Super_Count;
758 function Count
759 (Source : Bounded_Wide_Wide_String;
760 Pattern : Wide_Wide_String;
761 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
762 return Natural
763 renames Super_Count;
765 function Count
766 (Source : Bounded_Wide_Wide_String;
767 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
768 renames Super_Count;
770 procedure Find_Token
771 (Source : Bounded_Wide_Wide_String;
772 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
773 Test : Membership;
774 First : out Positive;
775 Last : out Natural)
776 renames Super_Find_Token;
778 function Translate
779 (Source : Bounded_Wide_Wide_String;
780 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
781 return Bounded_Wide_Wide_String
782 renames Super_Translate;
784 procedure Translate
785 (Source : in out Bounded_Wide_Wide_String;
786 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
787 renames Super_Translate;
789 function Translate
790 (Source : Bounded_Wide_Wide_String;
791 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
792 return Bounded_Wide_Wide_String
793 renames Super_Translate;
795 procedure Translate
796 (Source : in out Bounded_Wide_Wide_String;
797 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
798 renames Super_Translate;
800 function Replace_Slice
801 (Source : Bounded_Wide_Wide_String;
802 Low : Positive;
803 High : Natural;
804 By : Wide_Wide_String;
805 Drop : Truncation := Error) return Bounded_Wide_Wide_String
806 renames Super_Replace_Slice;
808 procedure Replace_Slice
809 (Source : in out Bounded_Wide_Wide_String;
810 Low : Positive;
811 High : Natural;
812 By : Wide_Wide_String;
813 Drop : Truncation := Error)
814 renames Super_Replace_Slice;
816 function Insert
817 (Source : Bounded_Wide_Wide_String;
818 Before : Positive;
819 New_Item : Wide_Wide_String;
820 Drop : Truncation := Error) return Bounded_Wide_Wide_String
821 renames Super_Insert;
823 procedure Insert
824 (Source : in out Bounded_Wide_Wide_String;
825 Before : Positive;
826 New_Item : Wide_Wide_String;
827 Drop : Truncation := Error)
828 renames Super_Insert;
830 function Overwrite
831 (Source : Bounded_Wide_Wide_String;
832 Position : Positive;
833 New_Item : Wide_Wide_String;
834 Drop : Truncation := Error) return Bounded_Wide_Wide_String
835 renames Super_Overwrite;
837 procedure Overwrite
838 (Source : in out Bounded_Wide_Wide_String;
839 Position : Positive;
840 New_Item : Wide_Wide_String;
841 Drop : Truncation := Error)
842 renames Super_Overwrite;
844 function Delete
845 (Source : Bounded_Wide_Wide_String;
846 From : Positive;
847 Through : Natural) return Bounded_Wide_Wide_String
848 renames Super_Delete;
850 procedure Delete
851 (Source : in out Bounded_Wide_Wide_String;
852 From : Positive;
853 Through : Natural)
854 renames Super_Delete;
856 function Trim
857 (Source : Bounded_Wide_Wide_String;
858 Side : Trim_End) return Bounded_Wide_Wide_String
859 renames Super_Trim;
861 procedure Trim
862 (Source : in out Bounded_Wide_Wide_String;
863 Side : Trim_End)
864 renames Super_Trim;
866 function Trim
867 (Source : Bounded_Wide_Wide_String;
868 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
869 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
870 return Bounded_Wide_Wide_String
871 renames Super_Trim;
873 procedure Trim
874 (Source : in out Bounded_Wide_Wide_String;
875 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
876 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
877 renames Super_Trim;
879 function Head
880 (Source : Bounded_Wide_Wide_String;
881 Count : Natural;
882 Pad : Wide_Wide_Character := Wide_Wide_Space;
883 Drop : Truncation := Error) return Bounded_Wide_Wide_String
884 renames Super_Head;
886 procedure Head
887 (Source : in out Bounded_Wide_Wide_String;
888 Count : Natural;
889 Pad : Wide_Wide_Character := Wide_Wide_Space;
890 Drop : Truncation := Error)
891 renames Super_Head;
893 function Tail
894 (Source : Bounded_Wide_Wide_String;
895 Count : Natural;
896 Pad : Wide_Wide_Character := Wide_Wide_Space;
897 Drop : Truncation := Error) return Bounded_Wide_Wide_String
898 renames Super_Tail;
900 procedure Tail
901 (Source : in out Bounded_Wide_Wide_String;
902 Count : Natural;
903 Pad : Wide_Wide_Character := Wide_Wide_Space;
904 Drop : Truncation := Error)
905 renames Super_Tail;
907 function "*"
908 (Left : Natural;
909 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
910 renames Times;
912 function Replicate
913 (Count : Natural;
914 Item : Bounded_Wide_Wide_String;
915 Drop : Truncation := Error) return Bounded_Wide_Wide_String
916 renames Super_Replicate;
918 end Generic_Bounded_Length;
920 end Ada.Strings.Wide_Wide_Bounded;