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-2005 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;
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);
78 (Left : Bounded_Wide_Wide_String;
79 Right : Bounded_Wide_Wide_String;
80 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
83 (Left : Bounded_Wide_Wide_String;
84 Right : Wide_Wide_String;
85 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
88 (Left : Wide_Wide_String;
89 Right : Bounded_Wide_Wide_String;
90 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
93 (Left : Bounded_Wide_Wide_String;
94 Right : Wide_Wide_Character;
95 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
98 (Left : Wide_Wide_Character;
99 Right : Bounded_Wide_Wide_String;
100 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
103 (Source : in out Bounded_Wide_Wide_String;
104 New_Item : Bounded_Wide_Wide_String;
105 Drop : Truncation := Error);
108 (Source : in out Bounded_Wide_Wide_String;
109 New_Item : Wide_Wide_String;
110 Drop : Truncation := Error);
113 (Source : in out Bounded_Wide_Wide_String;
114 New_Item : Wide_Wide_Character;
115 Drop : Truncation := Error);
118 (Left : Bounded_Wide_Wide_String;
119 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
122 (Left : Bounded_Wide_Wide_String;
123 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
126 (Left : Wide_Wide_String;
127 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
130 (Left : Bounded_Wide_Wide_String;
131 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
134 (Left : Wide_Wide_Character;
135 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
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;
144 By : Wide_Wide_Character);
147 (Source : Bounded_Wide_Wide_String;
149 High : Natural) return Wide_Wide_String;
151 function Bounded_Slice
152 (Source : Bounded_Wide_Wide_String;
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;
162 pragma Ada_05 (Bounded_Slice);
165 (Left : Bounded_Wide_Wide_String;
166 Right : Bounded_Wide_Wide_String) return Boolean;
169 (Left : Bounded_Wide_Wide_String;
170 Right : Wide_Wide_String) return Boolean;
173 (Left : Wide_Wide_String;
174 Right : Bounded_Wide_Wide_String) return Boolean;
177 (Left : Bounded_Wide_Wide_String;
178 Right : Bounded_Wide_Wide_String) return Boolean;
181 (Left : Bounded_Wide_Wide_String;
182 Right : Wide_Wide_String) return Boolean;
185 (Left : Wide_Wide_String;
186 Right : Bounded_Wide_Wide_String) return Boolean;
189 (Left : Bounded_Wide_Wide_String;
190 Right : Bounded_Wide_Wide_String) return Boolean;
193 (Left : Bounded_Wide_Wide_String;
194 Right : Wide_Wide_String) return Boolean;
197 (Left : Wide_Wide_String;
198 Right : Bounded_Wide_Wide_String) return Boolean;
201 (Left : Bounded_Wide_Wide_String;
202 Right : Bounded_Wide_Wide_String) return Boolean;
205 (Left : Bounded_Wide_Wide_String;
206 Right : Wide_Wide_String) return Boolean;
209 (Left : Wide_Wide_String;
210 Right : Bounded_Wide_Wide_String) return Boolean;
213 (Left : Bounded_Wide_Wide_String;
214 Right : Bounded_Wide_Wide_String) return Boolean;
217 (Left : Bounded_Wide_Wide_String;
218 Right : Wide_Wide_String) return Boolean;
221 (Left : Wide_Wide_String;
222 Right : Bounded_Wide_Wide_String) return Boolean;
224 ----------------------
225 -- Search Functions --
226 ----------------------
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)
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)
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;
250 (Source : Bounded_Wide_Wide_String;
251 Pattern : Wide_Wide_String;
253 Going : Direction := Forward;
254 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
255 Wide_Wide_Maps.Identity)
257 pragma Ada_05 (Index);
260 (Source : Bounded_Wide_Wide_String;
261 Pattern : Wide_Wide_String;
263 Going : Direction := Forward;
264 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
266 pragma Ada_05 (Index);
269 (Source : Bounded_Wide_Wide_String;
270 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
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;
283 Going : Direction := Forward) return Natural;
284 pragma Ada_05 (Index_Non_Blank);
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)
294 (Source : Bounded_Wide_Wide_String;
295 Pattern : Wide_Wide_String;
296 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
300 (Source : Bounded_Wide_Wide_String;
301 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
304 (Source : Bounded_Wide_Wide_String;
305 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
307 First : out Positive;
310 ------------------------------------
311 -- String Translation Subprograms --
312 ------------------------------------
315 (Source : Bounded_Wide_Wide_String;
316 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
317 return Bounded_Wide_Wide_String;
320 (Source : in out Bounded_Wide_Wide_String;
321 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
324 (Source : Bounded_Wide_Wide_String;
325 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
326 return Bounded_Wide_Wide_String;
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;
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;
347 By : Wide_Wide_String;
348 Drop : Truncation := Error);
351 (Source : Bounded_Wide_Wide_String;
353 New_Item : Wide_Wide_String;
354 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
357 (Source : in out Bounded_Wide_Wide_String;
359 New_Item : Wide_Wide_String;
360 Drop : Truncation := Error);
363 (Source : Bounded_Wide_Wide_String;
365 New_Item : Wide_Wide_String;
366 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
369 (Source : in out Bounded_Wide_Wide_String;
371 New_Item : Wide_Wide_String;
372 Drop : Truncation := Error);
375 (Source : Bounded_Wide_Wide_String;
377 Through : Natural) return Bounded_Wide_Wide_String;
380 (Source : in out Bounded_Wide_Wide_String;
384 ---------------------------------
385 -- String Selector Subprograms --
386 ---------------------------------
389 (Source : Bounded_Wide_Wide_String;
390 Side : Trim_End) return Bounded_Wide_Wide_String;
393 (Source : in out Bounded_Wide_Wide_String;
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;
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);
408 (Source : Bounded_Wide_Wide_String;
410 Pad : Wide_Wide_Character := Wide_Wide_Space;
411 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
414 (Source : in out Bounded_Wide_Wide_String;
416 Pad : Wide_Wide_Character := Wide_Wide_Space;
417 Drop : Truncation := Error);
420 (Source : Bounded_Wide_Wide_String;
422 Pad : Wide_Wide_Character := Wide_Wide_Space;
423 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
426 (Source : in out Bounded_Wide_Wide_String;
428 Pad : Wide_Wide_Character := Wide_Wide_Space;
429 Drop : Truncation := Error);
431 ------------------------------------
432 -- String Constructor Subprograms --
433 ------------------------------------
437 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
441 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
445 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
449 Item : Wide_Wide_Character;
450 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
454 Item : Wide_Wide_String;
455 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
459 Item : Bounded_Wide_Wide_String;
460 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
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,
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;
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;
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;
517 (Left : Bounded_Wide_Wide_String;
518 Right : Wide_Wide_String;
519 Drop : Truncation := Error) return Bounded_Wide_Wide_String
520 renames Super_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;
529 (Left : Bounded_Wide_Wide_String;
530 Right : Wide_Wide_Character;
531 Drop : Truncation := Error) return Bounded_Wide_Wide_String
532 renames Super_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;
541 (Source : in out Bounded_Wide_Wide_String;
542 New_Item : Bounded_Wide_Wide_String;
543 Drop : Truncation := Error)
544 renames Super_Append;
547 (Source : in out Bounded_Wide_Wide_String;
548 New_Item : Wide_Wide_String;
549 Drop : Truncation := Error)
550 renames Super_Append;
553 (Source : in out Bounded_Wide_Wide_String;
554 New_Item : Wide_Wide_Character;
555 Drop : Truncation := Error)
556 renames Super_Append;
559 (Left : Bounded_Wide_Wide_String;
560 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
564 (Left : Bounded_Wide_Wide_String;
565 Right : Wide_Wide_String) return Bounded_Wide_Wide_String
569 (Left : Wide_Wide_String;
570 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
574 (Left : Bounded_Wide_Wide_String;
575 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
579 (Left : Wide_Wide_Character;
580 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
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;
591 By : Wide_Wide_Character)
592 renames Super_Replace_Element;
595 (Source : Bounded_Wide_Wide_String;
597 High : Natural) return Wide_Wide_String
600 function Bounded_Slice
601 (Source : Bounded_Wide_Wide_String;
603 High : Natural) return Bounded_Wide_Wide_String
606 procedure Bounded_Slice
607 (Source : Bounded_Wide_Wide_String;
608 Target : out Bounded_Wide_Wide_String;
614 (Left : Bounded_Wide_Wide_String;
615 Right : Bounded_Wide_Wide_String) return Boolean
619 (Left : Bounded_Wide_Wide_String;
620 Right : Wide_Wide_String) return Boolean
624 (Left : Wide_Wide_String;
625 Right : Bounded_Wide_Wide_String) return Boolean
629 (Left : Bounded_Wide_Wide_String;
630 Right : Bounded_Wide_Wide_String) return Boolean
634 (Left : Bounded_Wide_Wide_String;
635 Right : Wide_Wide_String) return Boolean
639 (Left : Wide_Wide_String;
640 Right : Bounded_Wide_Wide_String) return Boolean
644 (Left : Bounded_Wide_Wide_String;
645 Right : Bounded_Wide_Wide_String) return Boolean
646 renames Less_Or_Equal;
649 (Left : Bounded_Wide_Wide_String;
650 Right : Wide_Wide_String) return Boolean
651 renames Less_Or_Equal;
654 (Left : Wide_Wide_String;
655 Right : Bounded_Wide_Wide_String) return Boolean
656 renames Less_Or_Equal;
659 (Left : Bounded_Wide_Wide_String;
660 Right : Bounded_Wide_Wide_String) return Boolean
664 (Left : Bounded_Wide_Wide_String;
665 Right : Wide_Wide_String) return Boolean
669 (Left : Wide_Wide_String;
670 Right : Bounded_Wide_Wide_String) return Boolean
674 (Left : Bounded_Wide_Wide_String;
675 Right : Bounded_Wide_Wide_String) return Boolean
676 renames Greater_Or_Equal;
679 (Left : Bounded_Wide_Wide_String;
680 Right : Wide_Wide_String) return Boolean
681 renames Greater_Or_Equal;
684 (Left : Wide_Wide_String;
685 Right : Bounded_Wide_Wide_String) return Boolean
686 renames Greater_Or_Equal;
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)
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)
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
713 (Source : Bounded_Wide_Wide_String;
714 Pattern : Wide_Wide_String;
716 Going : Direction := Forward;
717 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
718 Wide_Wide_Maps.Identity)
723 (Source : Bounded_Wide_Wide_String;
724 Pattern : Wide_Wide_String;
726 Going : Direction := Forward;
727 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
732 (Source : Bounded_Wide_Wide_String;
733 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
735 Test : Membership := Inside;
736 Going : Direction := Forward) return Natural
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;
747 Going : Direction := Forward) return Natural
748 renames Super_Index_Non_Blank;
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)
759 (Source : Bounded_Wide_Wide_String;
760 Pattern : Wide_Wide_String;
761 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
766 (Source : Bounded_Wide_Wide_String;
767 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
771 (Source : Bounded_Wide_Wide_String;
772 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
774 First : out Positive;
776 renames Super_Find_Token;
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;
785 (Source : in out Bounded_Wide_Wide_String;
786 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
787 renames Super_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;
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;
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;
812 By : Wide_Wide_String;
813 Drop : Truncation := Error)
814 renames Super_Replace_Slice;
817 (Source : Bounded_Wide_Wide_String;
819 New_Item : Wide_Wide_String;
820 Drop : Truncation := Error) return Bounded_Wide_Wide_String
821 renames Super_Insert;
824 (Source : in out Bounded_Wide_Wide_String;
826 New_Item : Wide_Wide_String;
827 Drop : Truncation := Error)
828 renames Super_Insert;
831 (Source : Bounded_Wide_Wide_String;
833 New_Item : Wide_Wide_String;
834 Drop : Truncation := Error) return Bounded_Wide_Wide_String
835 renames Super_Overwrite;
838 (Source : in out Bounded_Wide_Wide_String;
840 New_Item : Wide_Wide_String;
841 Drop : Truncation := Error)
842 renames Super_Overwrite;
845 (Source : Bounded_Wide_Wide_String;
847 Through : Natural) return Bounded_Wide_Wide_String
848 renames Super_Delete;
851 (Source : in out Bounded_Wide_Wide_String;
854 renames Super_Delete;
857 (Source : Bounded_Wide_Wide_String;
858 Side : Trim_End) return Bounded_Wide_Wide_String
862 (Source : in out Bounded_Wide_Wide_String;
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
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)
880 (Source : Bounded_Wide_Wide_String;
882 Pad : Wide_Wide_Character := Wide_Wide_Space;
883 Drop : Truncation := Error) return Bounded_Wide_Wide_String
887 (Source : in out Bounded_Wide_Wide_String;
889 Pad : Wide_Wide_Character := Wide_Wide_Space;
890 Drop : Truncation := Error)
894 (Source : Bounded_Wide_Wide_String;
896 Pad : Wide_Wide_Character := Wide_Wide_Space;
897 Drop : Truncation := Error) return Bounded_Wide_Wide_String
901 (Source : in out Bounded_Wide_Wide_String;
903 Pad : Wide_Wide_Character := Wide_Wide_Space;
904 Drop : Truncation := Error)
909 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
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;