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-2006, 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 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. --
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. --
33 -- GNAT was originally developed by the GNAT team at New York University. --
34 -- Extensive contributions were provided by Ada Core Technologies Inc. --
36 ------------------------------------------------------------------------------
38 with Ada.Strings.Wide_Wide_Maps;
39 with Ada.Strings.Wide_Wide_Superbounded;
41 package Ada.Strings.Wide_Wide_Bounded is
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;
53 pragma Preelaborable_Initialization (Bounded_Wide_Wide_String);
55 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
57 subtype Length_Range is Natural range 0 .. Max_Length;
59 function Length (Source : Bounded_Wide_Wide_String) return Length_Range;
61 --------------------------------------------------------
62 -- Conversion, Concatenation, and Selection Functions --
63 --------------------------------------------------------
65 function To_Bounded_Wide_Wide_String
66 (Source : Wide_Wide_String;
67 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
69 function To_Wide_Wide_String
70 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String;
72 procedure Set_Bounded_Wide_Wide_String
73 (Target : out Bounded_Wide_Wide_String;
74 Source : Wide_Wide_String;
75 Drop : Truncation := Error);
76 pragma Ada_05 (Set_Bounded_Wide_Wide_String);
79 (Left : Bounded_Wide_Wide_String;
80 Right : Bounded_Wide_Wide_String;
81 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
84 (Left : Bounded_Wide_Wide_String;
85 Right : Wide_Wide_String;
86 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
89 (Left : Wide_Wide_String;
90 Right : Bounded_Wide_Wide_String;
91 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
94 (Left : Bounded_Wide_Wide_String;
95 Right : Wide_Wide_Character;
96 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
99 (Left : Wide_Wide_Character;
100 Right : Bounded_Wide_Wide_String;
101 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
104 (Source : in out Bounded_Wide_Wide_String;
105 New_Item : Bounded_Wide_Wide_String;
106 Drop : Truncation := Error);
109 (Source : in out Bounded_Wide_Wide_String;
110 New_Item : Wide_Wide_String;
111 Drop : Truncation := Error);
114 (Source : in out Bounded_Wide_Wide_String;
115 New_Item : Wide_Wide_Character;
116 Drop : Truncation := Error);
119 (Left : Bounded_Wide_Wide_String;
120 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
123 (Left : Bounded_Wide_Wide_String;
124 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
127 (Left : Wide_Wide_String;
128 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
131 (Left : Bounded_Wide_Wide_String;
132 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
135 (Left : Wide_Wide_Character;
136 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
139 (Source : Bounded_Wide_Wide_String;
140 Index : Positive) return Wide_Wide_Character;
142 procedure Replace_Element
143 (Source : in out Bounded_Wide_Wide_String;
145 By : Wide_Wide_Character);
148 (Source : Bounded_Wide_Wide_String;
150 High : Natural) return Wide_Wide_String;
152 function Bounded_Slice
153 (Source : Bounded_Wide_Wide_String;
155 High : Natural) return Bounded_Wide_Wide_String;
156 pragma Ada_05 (Bounded_Slice);
158 procedure Bounded_Slice
159 (Source : Bounded_Wide_Wide_String;
160 Target : out Bounded_Wide_Wide_String;
163 pragma Ada_05 (Bounded_Slice);
166 (Left : Bounded_Wide_Wide_String;
167 Right : Bounded_Wide_Wide_String) return Boolean;
170 (Left : Bounded_Wide_Wide_String;
171 Right : Wide_Wide_String) return Boolean;
174 (Left : Wide_Wide_String;
175 Right : Bounded_Wide_Wide_String) return Boolean;
178 (Left : Bounded_Wide_Wide_String;
179 Right : Bounded_Wide_Wide_String) return Boolean;
182 (Left : Bounded_Wide_Wide_String;
183 Right : Wide_Wide_String) return Boolean;
186 (Left : Wide_Wide_String;
187 Right : Bounded_Wide_Wide_String) return Boolean;
190 (Left : Bounded_Wide_Wide_String;
191 Right : Bounded_Wide_Wide_String) return Boolean;
194 (Left : Bounded_Wide_Wide_String;
195 Right : Wide_Wide_String) return Boolean;
198 (Left : Wide_Wide_String;
199 Right : Bounded_Wide_Wide_String) return Boolean;
202 (Left : Bounded_Wide_Wide_String;
203 Right : Bounded_Wide_Wide_String) return Boolean;
206 (Left : Bounded_Wide_Wide_String;
207 Right : Wide_Wide_String) return Boolean;
210 (Left : Wide_Wide_String;
211 Right : Bounded_Wide_Wide_String) return Boolean;
214 (Left : Bounded_Wide_Wide_String;
215 Right : Bounded_Wide_Wide_String) return Boolean;
218 (Left : Bounded_Wide_Wide_String;
219 Right : Wide_Wide_String) return Boolean;
222 (Left : Wide_Wide_String;
223 Right : Bounded_Wide_Wide_String) return Boolean;
225 ----------------------
226 -- Search Functions --
227 ----------------------
230 (Source : Bounded_Wide_Wide_String;
231 Pattern : Wide_Wide_String;
232 Going : Direction := Forward;
233 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
234 Wide_Wide_Maps.Identity)
238 (Source : Bounded_Wide_Wide_String;
239 Pattern : Wide_Wide_String;
240 Going : Direction := Forward;
241 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
245 (Source : Bounded_Wide_Wide_String;
246 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
247 Test : Membership := Inside;
248 Going : Direction := Forward) return Natural;
251 (Source : Bounded_Wide_Wide_String;
252 Pattern : Wide_Wide_String;
254 Going : Direction := Forward;
255 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
256 Wide_Wide_Maps.Identity)
258 pragma Ada_05 (Index);
261 (Source : Bounded_Wide_Wide_String;
262 Pattern : Wide_Wide_String;
264 Going : Direction := Forward;
265 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
267 pragma Ada_05 (Index);
270 (Source : Bounded_Wide_Wide_String;
271 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
273 Test : Membership := Inside;
274 Going : Direction := Forward) return Natural;
275 pragma Ada_05 (Index);
277 function Index_Non_Blank
278 (Source : Bounded_Wide_Wide_String;
279 Going : Direction := Forward) return Natural;
281 function Index_Non_Blank
282 (Source : Bounded_Wide_Wide_String;
284 Going : Direction := Forward) return Natural;
285 pragma Ada_05 (Index_Non_Blank);
288 (Source : Bounded_Wide_Wide_String;
289 Pattern : Wide_Wide_String;
290 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
291 Wide_Wide_Maps.Identity)
295 (Source : Bounded_Wide_Wide_String;
296 Pattern : Wide_Wide_String;
297 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
301 (Source : Bounded_Wide_Wide_String;
302 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
305 (Source : Bounded_Wide_Wide_String;
306 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
308 First : out Positive;
311 ------------------------------------
312 -- String Translation Subprograms --
313 ------------------------------------
316 (Source : Bounded_Wide_Wide_String;
317 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
318 return Bounded_Wide_Wide_String;
321 (Source : in out Bounded_Wide_Wide_String;
322 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
325 (Source : Bounded_Wide_Wide_String;
326 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
327 return Bounded_Wide_Wide_String;
330 (Source : in out Bounded_Wide_Wide_String;
331 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
333 ---------------------------------------
334 -- String Transformation Subprograms --
335 ---------------------------------------
337 function Replace_Slice
338 (Source : Bounded_Wide_Wide_String;
341 By : Wide_Wide_String;
342 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
344 procedure Replace_Slice
345 (Source : in out Bounded_Wide_Wide_String;
348 By : Wide_Wide_String;
349 Drop : Truncation := Error);
352 (Source : Bounded_Wide_Wide_String;
354 New_Item : Wide_Wide_String;
355 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
358 (Source : in out Bounded_Wide_Wide_String;
360 New_Item : Wide_Wide_String;
361 Drop : Truncation := Error);
364 (Source : Bounded_Wide_Wide_String;
366 New_Item : Wide_Wide_String;
367 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
370 (Source : in out Bounded_Wide_Wide_String;
372 New_Item : Wide_Wide_String;
373 Drop : Truncation := Error);
376 (Source : Bounded_Wide_Wide_String;
378 Through : Natural) return Bounded_Wide_Wide_String;
381 (Source : in out Bounded_Wide_Wide_String;
385 ---------------------------------
386 -- String Selector Subprograms --
387 ---------------------------------
390 (Source : Bounded_Wide_Wide_String;
391 Side : Trim_End) return Bounded_Wide_Wide_String;
394 (Source : in out Bounded_Wide_Wide_String;
398 (Source : Bounded_Wide_Wide_String;
399 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
400 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
401 return Bounded_Wide_Wide_String;
404 (Source : in out Bounded_Wide_Wide_String;
405 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
406 Right : Wide_Wide_Maps.Wide_Wide_Character_Set);
409 (Source : Bounded_Wide_Wide_String;
411 Pad : Wide_Wide_Character := Wide_Wide_Space;
412 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
415 (Source : in out Bounded_Wide_Wide_String;
417 Pad : Wide_Wide_Character := Wide_Wide_Space;
418 Drop : Truncation := Error);
421 (Source : Bounded_Wide_Wide_String;
423 Pad : Wide_Wide_Character := Wide_Wide_Space;
424 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
427 (Source : in out Bounded_Wide_Wide_String;
429 Pad : Wide_Wide_Character := Wide_Wide_Space;
430 Drop : Truncation := Error);
432 ------------------------------------
433 -- String Constructor Subprograms --
434 ------------------------------------
438 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
442 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
446 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
450 Item : Wide_Wide_Character;
451 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
455 Item : Wide_Wide_String;
456 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
460 Item : Bounded_Wide_Wide_String;
461 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
464 -- Most of the implementation is in the separate non generic package
465 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
466 -- derived from type Wide_Wide_Superbounded.Super_String with the
467 -- maximum length constraint. In almost all cases, the routines in
468 -- Wide_Wide_Superbounded can be called with no requirement to pass the
469 -- maximum length explicitly, since there is at least one
470 -- Bounded_Wide_Wide_String argument from which the maximum length can
471 -- be obtained. For all such routines, the implementation in this
472 -- private part is simply renaming of the corresponding routine in the
473 -- super bouded package.
475 -- The five exceptions are the * and Replicate routines operating on
476 -- character values. For these cases, we have a routine in the body
477 -- that calls the superbounded routine passing the maximum length
478 -- explicitly as an extra parameter.
480 type Bounded_Wide_Wide_String is
481 new Wide_Wide_Superbounded.Super_String (Max_Length);
482 -- Deriving Bounded_Wide_Wide_String from
483 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
484 -- that the type Bounded_Wide_Wide_String declared in the generic
485 -- instantiation is compatible with the Super_String type declared in
486 -- the Wide_Wide_Superbounded package.
488 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String :=
489 (Max_Length => Max_Length,
493 Wide_Wide_Superbounded.Wide_Wide_NUL));
495 pragma Inline (To_Bounded_Wide_Wide_String);
497 procedure Set_Bounded_Wide_Wide_String
498 (Target : out Bounded_Wide_Wide_String;
499 Source : Wide_Wide_String;
500 Drop : Truncation := Error)
501 renames Set_Super_String;
504 (Source : Bounded_Wide_Wide_String) return Length_Range
505 renames Super_Length;
507 function To_Wide_Wide_String
508 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String
509 renames Super_To_String;
512 (Left : Bounded_Wide_Wide_String;
513 Right : Bounded_Wide_Wide_String;
514 Drop : Truncation := Error) return Bounded_Wide_Wide_String
515 renames Super_Append;
518 (Left : Bounded_Wide_Wide_String;
519 Right : Wide_Wide_String;
520 Drop : Truncation := Error) return Bounded_Wide_Wide_String
521 renames Super_Append;
524 (Left : Wide_Wide_String;
525 Right : Bounded_Wide_Wide_String;
526 Drop : Truncation := Error) return Bounded_Wide_Wide_String
527 renames Super_Append;
530 (Left : Bounded_Wide_Wide_String;
531 Right : Wide_Wide_Character;
532 Drop : Truncation := Error) return Bounded_Wide_Wide_String
533 renames Super_Append;
536 (Left : Wide_Wide_Character;
537 Right : Bounded_Wide_Wide_String;
538 Drop : Truncation := Error) return Bounded_Wide_Wide_String
539 renames Super_Append;
542 (Source : in out Bounded_Wide_Wide_String;
543 New_Item : Bounded_Wide_Wide_String;
544 Drop : Truncation := Error)
545 renames Super_Append;
548 (Source : in out Bounded_Wide_Wide_String;
549 New_Item : Wide_Wide_String;
550 Drop : Truncation := Error)
551 renames Super_Append;
554 (Source : in out Bounded_Wide_Wide_String;
555 New_Item : Wide_Wide_Character;
556 Drop : Truncation := Error)
557 renames Super_Append;
560 (Left : Bounded_Wide_Wide_String;
561 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
565 (Left : Bounded_Wide_Wide_String;
566 Right : Wide_Wide_String) return Bounded_Wide_Wide_String
570 (Left : Wide_Wide_String;
571 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
575 (Left : Bounded_Wide_Wide_String;
576 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
580 (Left : Wide_Wide_Character;
581 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
585 (Source : Bounded_Wide_Wide_String;
586 Index : Positive) return Wide_Wide_Character
587 renames Super_Element;
589 procedure Replace_Element
590 (Source : in out Bounded_Wide_Wide_String;
592 By : Wide_Wide_Character)
593 renames Super_Replace_Element;
596 (Source : Bounded_Wide_Wide_String;
598 High : Natural) return Wide_Wide_String
601 function Bounded_Slice
602 (Source : Bounded_Wide_Wide_String;
604 High : Natural) return Bounded_Wide_Wide_String
607 procedure Bounded_Slice
608 (Source : Bounded_Wide_Wide_String;
609 Target : out Bounded_Wide_Wide_String;
615 (Left : Bounded_Wide_Wide_String;
616 Right : Bounded_Wide_Wide_String) return Boolean
620 (Left : Bounded_Wide_Wide_String;
621 Right : Wide_Wide_String) return Boolean
625 (Left : Wide_Wide_String;
626 Right : Bounded_Wide_Wide_String) return Boolean
630 (Left : Bounded_Wide_Wide_String;
631 Right : Bounded_Wide_Wide_String) return Boolean
635 (Left : Bounded_Wide_Wide_String;
636 Right : Wide_Wide_String) return Boolean
640 (Left : Wide_Wide_String;
641 Right : Bounded_Wide_Wide_String) return Boolean
645 (Left : Bounded_Wide_Wide_String;
646 Right : Bounded_Wide_Wide_String) return Boolean
647 renames Less_Or_Equal;
650 (Left : Bounded_Wide_Wide_String;
651 Right : Wide_Wide_String) return Boolean
652 renames Less_Or_Equal;
655 (Left : Wide_Wide_String;
656 Right : Bounded_Wide_Wide_String) return Boolean
657 renames Less_Or_Equal;
660 (Left : Bounded_Wide_Wide_String;
661 Right : Bounded_Wide_Wide_String) return Boolean
665 (Left : Bounded_Wide_Wide_String;
666 Right : Wide_Wide_String) return Boolean
670 (Left : Wide_Wide_String;
671 Right : Bounded_Wide_Wide_String) return Boolean
675 (Left : Bounded_Wide_Wide_String;
676 Right : Bounded_Wide_Wide_String) return Boolean
677 renames Greater_Or_Equal;
680 (Left : Bounded_Wide_Wide_String;
681 Right : Wide_Wide_String) return Boolean
682 renames Greater_Or_Equal;
685 (Left : Wide_Wide_String;
686 Right : Bounded_Wide_Wide_String) return Boolean
687 renames Greater_Or_Equal;
690 (Source : Bounded_Wide_Wide_String;
691 Pattern : Wide_Wide_String;
692 Going : Direction := Forward;
693 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
694 Wide_Wide_Maps.Identity)
699 (Source : Bounded_Wide_Wide_String;
700 Pattern : Wide_Wide_String;
701 Going : Direction := Forward;
702 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
707 (Source : Bounded_Wide_Wide_String;
708 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
709 Test : Membership := Inside;
710 Going : Direction := Forward) return Natural
714 (Source : Bounded_Wide_Wide_String;
715 Pattern : Wide_Wide_String;
717 Going : Direction := Forward;
718 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
719 Wide_Wide_Maps.Identity)
724 (Source : Bounded_Wide_Wide_String;
725 Pattern : Wide_Wide_String;
727 Going : Direction := Forward;
728 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
733 (Source : Bounded_Wide_Wide_String;
734 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
736 Test : Membership := Inside;
737 Going : Direction := Forward) return Natural
740 function Index_Non_Blank
741 (Source : Bounded_Wide_Wide_String;
742 Going : Direction := Forward) return Natural
743 renames Super_Index_Non_Blank;
745 function Index_Non_Blank
746 (Source : Bounded_Wide_Wide_String;
748 Going : Direction := Forward) return Natural
749 renames Super_Index_Non_Blank;
752 (Source : Bounded_Wide_Wide_String;
753 Pattern : Wide_Wide_String;
754 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
755 Wide_Wide_Maps.Identity)
760 (Source : Bounded_Wide_Wide_String;
761 Pattern : Wide_Wide_String;
762 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
767 (Source : Bounded_Wide_Wide_String;
768 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
772 (Source : Bounded_Wide_Wide_String;
773 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
775 First : out Positive;
777 renames Super_Find_Token;
780 (Source : Bounded_Wide_Wide_String;
781 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
782 return Bounded_Wide_Wide_String
783 renames Super_Translate;
786 (Source : in out Bounded_Wide_Wide_String;
787 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
788 renames Super_Translate;
791 (Source : Bounded_Wide_Wide_String;
792 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
793 return Bounded_Wide_Wide_String
794 renames Super_Translate;
797 (Source : in out Bounded_Wide_Wide_String;
798 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
799 renames Super_Translate;
801 function Replace_Slice
802 (Source : Bounded_Wide_Wide_String;
805 By : Wide_Wide_String;
806 Drop : Truncation := Error) return Bounded_Wide_Wide_String
807 renames Super_Replace_Slice;
809 procedure Replace_Slice
810 (Source : in out Bounded_Wide_Wide_String;
813 By : Wide_Wide_String;
814 Drop : Truncation := Error)
815 renames Super_Replace_Slice;
818 (Source : Bounded_Wide_Wide_String;
820 New_Item : Wide_Wide_String;
821 Drop : Truncation := Error) return Bounded_Wide_Wide_String
822 renames Super_Insert;
825 (Source : in out Bounded_Wide_Wide_String;
827 New_Item : Wide_Wide_String;
828 Drop : Truncation := Error)
829 renames Super_Insert;
832 (Source : Bounded_Wide_Wide_String;
834 New_Item : Wide_Wide_String;
835 Drop : Truncation := Error) return Bounded_Wide_Wide_String
836 renames Super_Overwrite;
839 (Source : in out Bounded_Wide_Wide_String;
841 New_Item : Wide_Wide_String;
842 Drop : Truncation := Error)
843 renames Super_Overwrite;
846 (Source : Bounded_Wide_Wide_String;
848 Through : Natural) return Bounded_Wide_Wide_String
849 renames Super_Delete;
852 (Source : in out Bounded_Wide_Wide_String;
855 renames Super_Delete;
858 (Source : Bounded_Wide_Wide_String;
859 Side : Trim_End) return Bounded_Wide_Wide_String
863 (Source : in out Bounded_Wide_Wide_String;
868 (Source : Bounded_Wide_Wide_String;
869 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
870 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
871 return Bounded_Wide_Wide_String
875 (Source : in out Bounded_Wide_Wide_String;
876 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
877 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
881 (Source : Bounded_Wide_Wide_String;
883 Pad : Wide_Wide_Character := Wide_Wide_Space;
884 Drop : Truncation := Error) return Bounded_Wide_Wide_String
888 (Source : in out Bounded_Wide_Wide_String;
890 Pad : Wide_Wide_Character := Wide_Wide_Space;
891 Drop : Truncation := Error)
895 (Source : Bounded_Wide_Wide_String;
897 Pad : Wide_Wide_Character := Wide_Wide_Space;
898 Drop : Truncation := Error) return Bounded_Wide_Wide_String
902 (Source : in out Bounded_Wide_Wide_String;
904 Pad : Wide_Wide_Character := Wide_Wide_Space;
905 Drop : Truncation := Error)
910 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
915 Item : Bounded_Wide_Wide_String;
916 Drop : Truncation := Error) return Bounded_Wide_Wide_String
917 renames Super_Replicate;
919 end Generic_Bounded_Length;
921 end Ada.Strings.Wide_Wide_Bounded;