1 ------------------------------------------------------------------------------
3 -- GNAT RUN-TIME COMPONENTS --
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 --
9 -- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
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. --
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 3, 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. --
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. --
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/>. --
31 -- GNAT was originally developed by the GNAT team at New York University. --
32 -- Extensive contributions were provided by Ada Core Technologies Inc. --
34 ------------------------------------------------------------------------------
36 with Ada.Strings.Wide_Wide_Maps;
37 with Ada.Strings.Wide_Wide_Superbounded;
39 package Ada.Strings.Wide_Wide_Bounded is
44 -- Maximum length of a Bounded_Wide_Wide_String
46 package Generic_Bounded_Length is
48 Max_Length : constant Positive := Max;
50 type Bounded_Wide_Wide_String is private;
51 pragma Preelaborable_Initialization (Bounded_Wide_Wide_String);
53 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
55 subtype Length_Range is Natural range 0 .. Max_Length;
57 function Length (Source : Bounded_Wide_Wide_String) return Length_Range;
59 --------------------------------------------------------
60 -- Conversion, Concatenation, and Selection Functions --
61 --------------------------------------------------------
63 function To_Bounded_Wide_Wide_String
64 (Source : Wide_Wide_String;
65 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
67 function To_Wide_Wide_String
68 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String;
70 procedure Set_Bounded_Wide_Wide_String
71 (Target : out Bounded_Wide_Wide_String;
72 Source : Wide_Wide_String;
73 Drop : Truncation := Error);
74 pragma Ada_05 (Set_Bounded_Wide_Wide_String);
77 (Left : Bounded_Wide_Wide_String;
78 Right : Bounded_Wide_Wide_String;
79 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
82 (Left : Bounded_Wide_Wide_String;
83 Right : Wide_Wide_String;
84 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
87 (Left : Wide_Wide_String;
88 Right : Bounded_Wide_Wide_String;
89 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
92 (Left : Bounded_Wide_Wide_String;
93 Right : Wide_Wide_Character;
94 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
97 (Left : Wide_Wide_Character;
98 Right : Bounded_Wide_Wide_String;
99 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
102 (Source : in out Bounded_Wide_Wide_String;
103 New_Item : Bounded_Wide_Wide_String;
104 Drop : Truncation := Error);
107 (Source : in out Bounded_Wide_Wide_String;
108 New_Item : Wide_Wide_String;
109 Drop : Truncation := Error);
112 (Source : in out Bounded_Wide_Wide_String;
113 New_Item : Wide_Wide_Character;
114 Drop : Truncation := Error);
117 (Left : Bounded_Wide_Wide_String;
118 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
121 (Left : Bounded_Wide_Wide_String;
122 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
125 (Left : Wide_Wide_String;
126 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
129 (Left : Bounded_Wide_Wide_String;
130 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
133 (Left : Wide_Wide_Character;
134 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
137 (Source : Bounded_Wide_Wide_String;
138 Index : Positive) return Wide_Wide_Character;
140 procedure Replace_Element
141 (Source : in out Bounded_Wide_Wide_String;
143 By : Wide_Wide_Character);
146 (Source : Bounded_Wide_Wide_String;
148 High : Natural) return Wide_Wide_String;
150 function Bounded_Slice
151 (Source : Bounded_Wide_Wide_String;
153 High : Natural) return Bounded_Wide_Wide_String;
154 pragma Ada_05 (Bounded_Slice);
156 procedure Bounded_Slice
157 (Source : Bounded_Wide_Wide_String;
158 Target : out Bounded_Wide_Wide_String;
161 pragma Ada_05 (Bounded_Slice);
164 (Left : Bounded_Wide_Wide_String;
165 Right : Bounded_Wide_Wide_String) return Boolean;
168 (Left : Bounded_Wide_Wide_String;
169 Right : Wide_Wide_String) return Boolean;
172 (Left : Wide_Wide_String;
173 Right : Bounded_Wide_Wide_String) return Boolean;
176 (Left : Bounded_Wide_Wide_String;
177 Right : Bounded_Wide_Wide_String) return Boolean;
180 (Left : Bounded_Wide_Wide_String;
181 Right : Wide_Wide_String) return Boolean;
184 (Left : Wide_Wide_String;
185 Right : Bounded_Wide_Wide_String) return Boolean;
188 (Left : Bounded_Wide_Wide_String;
189 Right : Bounded_Wide_Wide_String) return Boolean;
192 (Left : Bounded_Wide_Wide_String;
193 Right : Wide_Wide_String) return Boolean;
196 (Left : Wide_Wide_String;
197 Right : Bounded_Wide_Wide_String) return Boolean;
200 (Left : Bounded_Wide_Wide_String;
201 Right : Bounded_Wide_Wide_String) return Boolean;
204 (Left : Bounded_Wide_Wide_String;
205 Right : Wide_Wide_String) return Boolean;
208 (Left : Wide_Wide_String;
209 Right : Bounded_Wide_Wide_String) return Boolean;
212 (Left : Bounded_Wide_Wide_String;
213 Right : Bounded_Wide_Wide_String) return Boolean;
216 (Left : Bounded_Wide_Wide_String;
217 Right : Wide_Wide_String) return Boolean;
220 (Left : Wide_Wide_String;
221 Right : Bounded_Wide_Wide_String) return Boolean;
223 ----------------------
224 -- Search Functions --
225 ----------------------
228 (Source : Bounded_Wide_Wide_String;
229 Pattern : Wide_Wide_String;
230 Going : Direction := Forward;
231 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
232 Wide_Wide_Maps.Identity)
236 (Source : Bounded_Wide_Wide_String;
237 Pattern : Wide_Wide_String;
238 Going : Direction := Forward;
239 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
243 (Source : Bounded_Wide_Wide_String;
244 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
245 Test : Membership := Inside;
246 Going : Direction := Forward) return Natural;
249 (Source : Bounded_Wide_Wide_String;
250 Pattern : Wide_Wide_String;
252 Going : Direction := Forward;
253 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
254 Wide_Wide_Maps.Identity)
256 pragma Ada_05 (Index);
259 (Source : Bounded_Wide_Wide_String;
260 Pattern : Wide_Wide_String;
262 Going : Direction := Forward;
263 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
265 pragma Ada_05 (Index);
268 (Source : Bounded_Wide_Wide_String;
269 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
271 Test : Membership := Inside;
272 Going : Direction := Forward) return Natural;
273 pragma Ada_05 (Index);
275 function Index_Non_Blank
276 (Source : Bounded_Wide_Wide_String;
277 Going : Direction := Forward) return Natural;
279 function Index_Non_Blank
280 (Source : Bounded_Wide_Wide_String;
282 Going : Direction := Forward) return Natural;
283 pragma Ada_05 (Index_Non_Blank);
286 (Source : Bounded_Wide_Wide_String;
287 Pattern : Wide_Wide_String;
288 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
289 Wide_Wide_Maps.Identity)
293 (Source : Bounded_Wide_Wide_String;
294 Pattern : Wide_Wide_String;
295 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
299 (Source : Bounded_Wide_Wide_String;
300 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
303 (Source : Bounded_Wide_Wide_String;
304 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
306 First : out Positive;
309 ------------------------------------
310 -- String Translation Subprograms --
311 ------------------------------------
314 (Source : Bounded_Wide_Wide_String;
315 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
316 return Bounded_Wide_Wide_String;
319 (Source : in out Bounded_Wide_Wide_String;
320 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
323 (Source : Bounded_Wide_Wide_String;
324 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
325 return Bounded_Wide_Wide_String;
328 (Source : in out Bounded_Wide_Wide_String;
329 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
331 ---------------------------------------
332 -- String Transformation Subprograms --
333 ---------------------------------------
335 function Replace_Slice
336 (Source : Bounded_Wide_Wide_String;
339 By : Wide_Wide_String;
340 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
342 procedure Replace_Slice
343 (Source : in out Bounded_Wide_Wide_String;
346 By : Wide_Wide_String;
347 Drop : Truncation := Error);
350 (Source : Bounded_Wide_Wide_String;
352 New_Item : Wide_Wide_String;
353 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
356 (Source : in out Bounded_Wide_Wide_String;
358 New_Item : Wide_Wide_String;
359 Drop : Truncation := Error);
362 (Source : Bounded_Wide_Wide_String;
364 New_Item : Wide_Wide_String;
365 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
368 (Source : in out Bounded_Wide_Wide_String;
370 New_Item : Wide_Wide_String;
371 Drop : Truncation := Error);
374 (Source : Bounded_Wide_Wide_String;
376 Through : Natural) return Bounded_Wide_Wide_String;
379 (Source : in out Bounded_Wide_Wide_String;
383 ---------------------------------
384 -- String Selector Subprograms --
385 ---------------------------------
388 (Source : Bounded_Wide_Wide_String;
389 Side : Trim_End) return Bounded_Wide_Wide_String;
392 (Source : in out Bounded_Wide_Wide_String;
396 (Source : Bounded_Wide_Wide_String;
397 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
398 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
399 return Bounded_Wide_Wide_String;
402 (Source : in out Bounded_Wide_Wide_String;
403 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
404 Right : Wide_Wide_Maps.Wide_Wide_Character_Set);
407 (Source : Bounded_Wide_Wide_String;
409 Pad : Wide_Wide_Character := Wide_Wide_Space;
410 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
413 (Source : in out Bounded_Wide_Wide_String;
415 Pad : Wide_Wide_Character := Wide_Wide_Space;
416 Drop : Truncation := Error);
419 (Source : Bounded_Wide_Wide_String;
421 Pad : Wide_Wide_Character := Wide_Wide_Space;
422 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
425 (Source : in out Bounded_Wide_Wide_String;
427 Pad : Wide_Wide_Character := Wide_Wide_Space;
428 Drop : Truncation := Error);
430 ------------------------------------
431 -- String Constructor Subprograms --
432 ------------------------------------
436 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
440 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
444 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
448 Item : Wide_Wide_Character;
449 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
453 Item : Wide_Wide_String;
454 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
458 Item : Bounded_Wide_Wide_String;
459 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
462 -- Most of the implementation is in the separate non generic package
463 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
464 -- derived from type Wide_Wide_Superbounded.Super_String with the
465 -- maximum length constraint. In almost all cases, the routines in
466 -- Wide_Wide_Superbounded can be called with no requirement to pass the
467 -- maximum length explicitly, since there is at least one
468 -- Bounded_Wide_Wide_String argument from which the maximum length can
469 -- be obtained. For all such routines, the implementation in this
470 -- private part is simply renaming of the corresponding routine in the
471 -- super bouded package.
473 -- The five exceptions are the * and Replicate routines operating on
474 -- character values. For these cases, we have a routine in the body
475 -- that calls the superbounded routine passing the maximum length
476 -- explicitly as an extra parameter.
478 type Bounded_Wide_Wide_String is
479 new Wide_Wide_Superbounded.Super_String (Max_Length);
480 -- Deriving Bounded_Wide_Wide_String from
481 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
482 -- that the type Bounded_Wide_Wide_String declared in the generic
483 -- instantiation is compatible with the Super_String type declared in
484 -- the Wide_Wide_Superbounded package.
486 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String :=
487 (Max_Length => Max_Length,
491 Wide_Wide_Superbounded.Wide_Wide_NUL));
493 pragma Inline (To_Bounded_Wide_Wide_String);
495 procedure Set_Bounded_Wide_Wide_String
496 (Target : out Bounded_Wide_Wide_String;
497 Source : Wide_Wide_String;
498 Drop : Truncation := Error)
499 renames Set_Super_String;
502 (Source : Bounded_Wide_Wide_String) return Length_Range
503 renames Super_Length;
505 function To_Wide_Wide_String
506 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String
507 renames Super_To_String;
510 (Left : Bounded_Wide_Wide_String;
511 Right : Bounded_Wide_Wide_String;
512 Drop : Truncation := Error) return Bounded_Wide_Wide_String
513 renames Super_Append;
516 (Left : Bounded_Wide_Wide_String;
517 Right : Wide_Wide_String;
518 Drop : Truncation := Error) return Bounded_Wide_Wide_String
519 renames Super_Append;
522 (Left : Wide_Wide_String;
523 Right : Bounded_Wide_Wide_String;
524 Drop : Truncation := Error) return Bounded_Wide_Wide_String
525 renames Super_Append;
528 (Left : Bounded_Wide_Wide_String;
529 Right : Wide_Wide_Character;
530 Drop : Truncation := Error) return Bounded_Wide_Wide_String
531 renames Super_Append;
534 (Left : Wide_Wide_Character;
535 Right : Bounded_Wide_Wide_String;
536 Drop : Truncation := Error) return Bounded_Wide_Wide_String
537 renames Super_Append;
540 (Source : in out Bounded_Wide_Wide_String;
541 New_Item : Bounded_Wide_Wide_String;
542 Drop : Truncation := Error)
543 renames Super_Append;
546 (Source : in out Bounded_Wide_Wide_String;
547 New_Item : Wide_Wide_String;
548 Drop : Truncation := Error)
549 renames Super_Append;
552 (Source : in out Bounded_Wide_Wide_String;
553 New_Item : Wide_Wide_Character;
554 Drop : Truncation := Error)
555 renames Super_Append;
558 (Left : Bounded_Wide_Wide_String;
559 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
563 (Left : Bounded_Wide_Wide_String;
564 Right : Wide_Wide_String) return Bounded_Wide_Wide_String
568 (Left : Wide_Wide_String;
569 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
573 (Left : Bounded_Wide_Wide_String;
574 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
578 (Left : Wide_Wide_Character;
579 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
583 (Source : Bounded_Wide_Wide_String;
584 Index : Positive) return Wide_Wide_Character
585 renames Super_Element;
587 procedure Replace_Element
588 (Source : in out Bounded_Wide_Wide_String;
590 By : Wide_Wide_Character)
591 renames Super_Replace_Element;
594 (Source : Bounded_Wide_Wide_String;
596 High : Natural) return Wide_Wide_String
599 function Bounded_Slice
600 (Source : Bounded_Wide_Wide_String;
602 High : Natural) return Bounded_Wide_Wide_String
605 procedure Bounded_Slice
606 (Source : Bounded_Wide_Wide_String;
607 Target : out Bounded_Wide_Wide_String;
613 (Left : Bounded_Wide_Wide_String;
614 Right : Bounded_Wide_Wide_String) return Boolean
618 (Left : Bounded_Wide_Wide_String;
619 Right : Wide_Wide_String) return Boolean
623 (Left : Wide_Wide_String;
624 Right : Bounded_Wide_Wide_String) return Boolean
628 (Left : Bounded_Wide_Wide_String;
629 Right : Bounded_Wide_Wide_String) return Boolean
633 (Left : Bounded_Wide_Wide_String;
634 Right : Wide_Wide_String) return Boolean
638 (Left : Wide_Wide_String;
639 Right : Bounded_Wide_Wide_String) return Boolean
643 (Left : Bounded_Wide_Wide_String;
644 Right : Bounded_Wide_Wide_String) return Boolean
645 renames Less_Or_Equal;
648 (Left : Bounded_Wide_Wide_String;
649 Right : Wide_Wide_String) return Boolean
650 renames Less_Or_Equal;
653 (Left : Wide_Wide_String;
654 Right : Bounded_Wide_Wide_String) return Boolean
655 renames Less_Or_Equal;
658 (Left : Bounded_Wide_Wide_String;
659 Right : Bounded_Wide_Wide_String) return Boolean
663 (Left : Bounded_Wide_Wide_String;
664 Right : Wide_Wide_String) return Boolean
668 (Left : Wide_Wide_String;
669 Right : Bounded_Wide_Wide_String) return Boolean
673 (Left : Bounded_Wide_Wide_String;
674 Right : Bounded_Wide_Wide_String) return Boolean
675 renames Greater_Or_Equal;
678 (Left : Bounded_Wide_Wide_String;
679 Right : Wide_Wide_String) return Boolean
680 renames Greater_Or_Equal;
683 (Left : Wide_Wide_String;
684 Right : Bounded_Wide_Wide_String) return Boolean
685 renames Greater_Or_Equal;
688 (Source : Bounded_Wide_Wide_String;
689 Pattern : Wide_Wide_String;
690 Going : Direction := Forward;
691 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
692 Wide_Wide_Maps.Identity)
697 (Source : Bounded_Wide_Wide_String;
698 Pattern : Wide_Wide_String;
699 Going : Direction := Forward;
700 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
705 (Source : Bounded_Wide_Wide_String;
706 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
707 Test : Membership := Inside;
708 Going : Direction := Forward) return Natural
712 (Source : Bounded_Wide_Wide_String;
713 Pattern : Wide_Wide_String;
715 Going : Direction := Forward;
716 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
717 Wide_Wide_Maps.Identity)
722 (Source : Bounded_Wide_Wide_String;
723 Pattern : Wide_Wide_String;
725 Going : Direction := Forward;
726 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
731 (Source : Bounded_Wide_Wide_String;
732 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
734 Test : Membership := Inside;
735 Going : Direction := Forward) return Natural
738 function Index_Non_Blank
739 (Source : Bounded_Wide_Wide_String;
740 Going : Direction := Forward) return Natural
741 renames Super_Index_Non_Blank;
743 function Index_Non_Blank
744 (Source : Bounded_Wide_Wide_String;
746 Going : Direction := Forward) return Natural
747 renames Super_Index_Non_Blank;
750 (Source : Bounded_Wide_Wide_String;
751 Pattern : Wide_Wide_String;
752 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
753 Wide_Wide_Maps.Identity)
758 (Source : Bounded_Wide_Wide_String;
759 Pattern : Wide_Wide_String;
760 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
765 (Source : Bounded_Wide_Wide_String;
766 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
770 (Source : Bounded_Wide_Wide_String;
771 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
773 First : out Positive;
775 renames Super_Find_Token;
778 (Source : Bounded_Wide_Wide_String;
779 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
780 return Bounded_Wide_Wide_String
781 renames Super_Translate;
784 (Source : in out Bounded_Wide_Wide_String;
785 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
786 renames Super_Translate;
789 (Source : Bounded_Wide_Wide_String;
790 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
791 return Bounded_Wide_Wide_String
792 renames Super_Translate;
795 (Source : in out Bounded_Wide_Wide_String;
796 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
797 renames Super_Translate;
799 function Replace_Slice
800 (Source : Bounded_Wide_Wide_String;
803 By : Wide_Wide_String;
804 Drop : Truncation := Error) return Bounded_Wide_Wide_String
805 renames Super_Replace_Slice;
807 procedure Replace_Slice
808 (Source : in out Bounded_Wide_Wide_String;
811 By : Wide_Wide_String;
812 Drop : Truncation := Error)
813 renames Super_Replace_Slice;
816 (Source : Bounded_Wide_Wide_String;
818 New_Item : Wide_Wide_String;
819 Drop : Truncation := Error) return Bounded_Wide_Wide_String
820 renames Super_Insert;
823 (Source : in out Bounded_Wide_Wide_String;
825 New_Item : Wide_Wide_String;
826 Drop : Truncation := Error)
827 renames Super_Insert;
830 (Source : Bounded_Wide_Wide_String;
832 New_Item : Wide_Wide_String;
833 Drop : Truncation := Error) return Bounded_Wide_Wide_String
834 renames Super_Overwrite;
837 (Source : in out Bounded_Wide_Wide_String;
839 New_Item : Wide_Wide_String;
840 Drop : Truncation := Error)
841 renames Super_Overwrite;
844 (Source : Bounded_Wide_Wide_String;
846 Through : Natural) return Bounded_Wide_Wide_String
847 renames Super_Delete;
850 (Source : in out Bounded_Wide_Wide_String;
853 renames Super_Delete;
856 (Source : Bounded_Wide_Wide_String;
857 Side : Trim_End) return Bounded_Wide_Wide_String
861 (Source : in out Bounded_Wide_Wide_String;
866 (Source : Bounded_Wide_Wide_String;
867 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
868 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
869 return Bounded_Wide_Wide_String
873 (Source : in out Bounded_Wide_Wide_String;
874 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
875 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
879 (Source : Bounded_Wide_Wide_String;
881 Pad : Wide_Wide_Character := Wide_Wide_Space;
882 Drop : Truncation := Error) return Bounded_Wide_Wide_String
886 (Source : in out Bounded_Wide_Wide_String;
888 Pad : Wide_Wide_Character := Wide_Wide_Space;
889 Drop : Truncation := Error)
893 (Source : Bounded_Wide_Wide_String;
895 Pad : Wide_Wide_Character := Wide_Wide_Space;
896 Drop : Truncation := Error) return Bounded_Wide_Wide_String
900 (Source : in out Bounded_Wide_Wide_String;
902 Pad : Wide_Wide_Character := Wide_Wide_Space;
903 Drop : Truncation := Error)
908 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
913 Item : Bounded_Wide_Wide_String;
914 Drop : Truncation := Error) return Bounded_Wide_Wide_String
915 renames Super_Replicate;
917 end Generic_Bounded_Length;
919 end Ada.Strings.Wide_Wide_Bounded;