Merge from mainline (gomp-merge-2005-02-26).
[official-gcc.git] / gcc / ada / a-stwibo.ads
blob5c3bfd215b7158682c7794aeceede0cebded8049
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
5 -- A D A . S T R I N G S . W I D E _ B O U N D E D --
6 -- --
7 -- S p e c --
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, 59 Temple Place - Suite 330, Boston, --
24 -- MA 02111-1307, 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_Maps;
39 with Ada.Strings.Wide_Superbounded;
41 package Ada.Strings.Wide_Bounded is
42 pragma Preelaborate (Wide_Bounded);
44 generic
45 Max : Positive;
46 -- Maximum length of a Bounded_Wide_String
48 package Generic_Bounded_Length is
50 Max_Length : constant Positive := Max;
52 type Bounded_Wide_String is private;
54 Null_Bounded_Wide_String : constant Bounded_Wide_String;
56 subtype Length_Range is Natural range 0 .. Max_Length;
58 function Length (Source : Bounded_Wide_String) return Length_Range;
60 --------------------------------------------------------
61 -- Conversion, Concatenation, and Selection Functions --
62 --------------------------------------------------------
64 function To_Bounded_Wide_String
65 (Source : Wide_String;
66 Drop : Truncation := Error) return Bounded_Wide_String;
68 function To_Wide_String
69 (Source : Bounded_Wide_String) return Wide_String;
71 procedure Set_Bounded_Wide_String
72 (Target : out Bounded_Wide_String;
73 Source : Wide_String;
74 Drop : Truncation := Error);
75 pragma Ada_05 (Set_Bounded_Wide_String);
77 function Append
78 (Left : Bounded_Wide_String;
79 Right : Bounded_Wide_String;
80 Drop : Truncation := Error) return Bounded_Wide_String;
82 function Append
83 (Left : Bounded_Wide_String;
84 Right : Wide_String;
85 Drop : Truncation := Error) return Bounded_Wide_String;
87 function Append
88 (Left : Wide_String;
89 Right : Bounded_Wide_String;
90 Drop : Truncation := Error) return Bounded_Wide_String;
92 function Append
93 (Left : Bounded_Wide_String;
94 Right : Wide_Character;
95 Drop : Truncation := Error) return Bounded_Wide_String;
97 function Append
98 (Left : Wide_Character;
99 Right : Bounded_Wide_String;
100 Drop : Truncation := Error) return Bounded_Wide_String;
102 procedure Append
103 (Source : in out Bounded_Wide_String;
104 New_Item : Bounded_Wide_String;
105 Drop : Truncation := Error);
107 procedure Append
108 (Source : in out Bounded_Wide_String;
109 New_Item : Wide_String;
110 Drop : Truncation := Error);
112 procedure Append
113 (Source : in out Bounded_Wide_String;
114 New_Item : Wide_Character;
115 Drop : Truncation := Error);
117 function "&"
118 (Left : Bounded_Wide_String;
119 Right : Bounded_Wide_String) return Bounded_Wide_String;
121 function "&"
122 (Left : Bounded_Wide_String;
123 Right : Wide_String) return Bounded_Wide_String;
125 function "&"
126 (Left : Wide_String;
127 Right : Bounded_Wide_String) return Bounded_Wide_String;
129 function "&"
130 (Left : Bounded_Wide_String;
131 Right : Wide_Character) return Bounded_Wide_String;
133 function "&"
134 (Left : Wide_Character;
135 Right : Bounded_Wide_String) return Bounded_Wide_String;
137 function Element
138 (Source : Bounded_Wide_String;
139 Index : Positive) return Wide_Character;
141 procedure Replace_Element
142 (Source : in out Bounded_Wide_String;
143 Index : Positive;
144 By : Wide_Character);
146 function Slice
147 (Source : Bounded_Wide_String;
148 Low : Positive;
149 High : Natural) return Wide_String;
151 function Bounded_Slice
152 (Source : Bounded_Wide_String;
153 Low : Positive;
154 High : Natural) return Bounded_Wide_String;
155 pragma Ada_05 (Bounded_Slice);
157 procedure Bounded_Slice
158 (Source : Bounded_Wide_String;
159 Target : out Bounded_Wide_String;
160 Low : Positive;
161 High : Natural);
162 pragma Ada_05 (Bounded_Slice);
164 function "="
165 (Left : Bounded_Wide_String;
166 Right : Bounded_Wide_String) return Boolean;
168 function "="
169 (Left : Bounded_Wide_String;
170 Right : Wide_String) return Boolean;
172 function "="
173 (Left : Wide_String;
174 Right : Bounded_Wide_String) return Boolean;
176 function "<"
177 (Left : Bounded_Wide_String;
178 Right : Bounded_Wide_String) return Boolean;
180 function "<"
181 (Left : Bounded_Wide_String;
182 Right : Wide_String) return Boolean;
184 function "<"
185 (Left : Wide_String;
186 Right : Bounded_Wide_String) return Boolean;
188 function "<="
189 (Left : Bounded_Wide_String;
190 Right : Bounded_Wide_String) return Boolean;
192 function "<="
193 (Left : Bounded_Wide_String;
194 Right : Wide_String) return Boolean;
196 function "<="
197 (Left : Wide_String;
198 Right : Bounded_Wide_String) return Boolean;
200 function ">"
201 (Left : Bounded_Wide_String;
202 Right : Bounded_Wide_String) return Boolean;
204 function ">"
205 (Left : Bounded_Wide_String;
206 Right : Wide_String) return Boolean;
208 function ">"
209 (Left : Wide_String;
210 Right : Bounded_Wide_String) return Boolean;
212 function ">="
213 (Left : Bounded_Wide_String;
214 Right : Bounded_Wide_String) return Boolean;
216 function ">="
217 (Left : Bounded_Wide_String;
218 Right : Wide_String) return Boolean;
220 function ">="
221 (Left : Wide_String;
222 Right : Bounded_Wide_String) return Boolean;
224 ----------------------
225 -- Search Functions --
226 ----------------------
228 function Index
229 (Source : Bounded_Wide_String;
230 Pattern : Wide_String;
231 Going : Direction := Forward;
232 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
233 return Natural;
235 function Index
236 (Source : Bounded_Wide_String;
237 Pattern : Wide_String;
238 Going : Direction := Forward;
239 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
241 function Index
242 (Source : Bounded_Wide_String;
243 Set : Wide_Maps.Wide_Character_Set;
244 Test : Membership := Inside;
245 Going : Direction := Forward) return Natural;
247 function Index
248 (Source : Bounded_Wide_String;
249 Pattern : Wide_String;
250 From : Positive;
251 Going : Direction := Forward;
252 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
253 return Natural;
254 pragma Ada_05 (Index);
256 function Index
257 (Source : Bounded_Wide_String;
258 Pattern : Wide_String;
259 From : Positive;
260 Going : Direction := Forward;
261 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
262 pragma Ada_05 (Index);
264 function Index
265 (Source : Bounded_Wide_String;
266 Set : Wide_Maps.Wide_Character_Set;
267 From : Positive;
268 Test : Membership := Inside;
269 Going : Direction := Forward) return Natural;
270 pragma Ada_05 (Index);
272 function Index_Non_Blank
273 (Source : Bounded_Wide_String;
274 Going : Direction := Forward) return Natural;
276 function Index_Non_Blank
277 (Source : Bounded_Wide_String;
278 From : Positive;
279 Going : Direction := Forward) return Natural;
280 pragma Ada_05 (Index_Non_Blank);
282 function Count
283 (Source : Bounded_Wide_String;
284 Pattern : Wide_String;
285 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
286 return Natural;
288 function Count
289 (Source : Bounded_Wide_String;
290 Pattern : Wide_String;
291 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
293 function Count
294 (Source : Bounded_Wide_String;
295 Set : Wide_Maps.Wide_Character_Set) return Natural;
297 procedure Find_Token
298 (Source : Bounded_Wide_String;
299 Set : Wide_Maps.Wide_Character_Set;
300 Test : Membership;
301 First : out Positive;
302 Last : out Natural);
304 ------------------------------------
305 -- String Translation Subprograms --
306 ------------------------------------
308 function Translate
309 (Source : Bounded_Wide_String;
310 Mapping : Wide_Maps.Wide_Character_Mapping)
311 return Bounded_Wide_String;
313 procedure Translate
314 (Source : in out Bounded_Wide_String;
315 Mapping : Wide_Maps.Wide_Character_Mapping);
317 function Translate
318 (Source : Bounded_Wide_String;
319 Mapping : Wide_Maps.Wide_Character_Mapping_Function)
320 return Bounded_Wide_String;
322 procedure Translate
323 (Source : in out Bounded_Wide_String;
324 Mapping : Wide_Maps.Wide_Character_Mapping_Function);
326 ---------------------------------------
327 -- String Transformation Subprograms --
328 ---------------------------------------
330 function Replace_Slice
331 (Source : Bounded_Wide_String;
332 Low : Positive;
333 High : Natural;
334 By : Wide_String;
335 Drop : Truncation := Error) return Bounded_Wide_String;
337 procedure Replace_Slice
338 (Source : in out Bounded_Wide_String;
339 Low : Positive;
340 High : Natural;
341 By : Wide_String;
342 Drop : Truncation := Error);
344 function Insert
345 (Source : Bounded_Wide_String;
346 Before : Positive;
347 New_Item : Wide_String;
348 Drop : Truncation := Error) return Bounded_Wide_String;
350 procedure Insert
351 (Source : in out Bounded_Wide_String;
352 Before : Positive;
353 New_Item : Wide_String;
354 Drop : Truncation := Error);
356 function Overwrite
357 (Source : Bounded_Wide_String;
358 Position : Positive;
359 New_Item : Wide_String;
360 Drop : Truncation := Error) return Bounded_Wide_String;
362 procedure Overwrite
363 (Source : in out Bounded_Wide_String;
364 Position : Positive;
365 New_Item : Wide_String;
366 Drop : Truncation := Error);
368 function Delete
369 (Source : Bounded_Wide_String;
370 From : Positive;
371 Through : Natural) return Bounded_Wide_String;
373 procedure Delete
374 (Source : in out Bounded_Wide_String;
375 From : Positive;
376 Through : Natural);
378 ---------------------------------
379 -- String Selector Subprograms --
380 ---------------------------------
382 function Trim
383 (Source : Bounded_Wide_String;
384 Side : Trim_End) return Bounded_Wide_String;
386 procedure Trim
387 (Source : in out Bounded_Wide_String;
388 Side : Trim_End);
390 function Trim
391 (Source : Bounded_Wide_String;
392 Left : Wide_Maps.Wide_Character_Set;
393 Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String;
395 procedure Trim
396 (Source : in out Bounded_Wide_String;
397 Left : Wide_Maps.Wide_Character_Set;
398 Right : Wide_Maps.Wide_Character_Set);
400 function Head
401 (Source : Bounded_Wide_String;
402 Count : Natural;
403 Pad : Wide_Character := Wide_Space;
404 Drop : Truncation := Error) return Bounded_Wide_String;
406 procedure Head
407 (Source : in out Bounded_Wide_String;
408 Count : Natural;
409 Pad : Wide_Character := Wide_Space;
410 Drop : Truncation := Error);
412 function Tail
413 (Source : Bounded_Wide_String;
414 Count : Natural;
415 Pad : Wide_Character := Wide_Space;
416 Drop : Truncation := Error) return Bounded_Wide_String;
418 procedure Tail
419 (Source : in out Bounded_Wide_String;
420 Count : Natural;
421 Pad : Wide_Character := Wide_Space;
422 Drop : Truncation := Error);
424 ------------------------------------
425 -- String Constructor Subprograms --
426 ------------------------------------
428 function "*"
429 (Left : Natural;
430 Right : Wide_Character) return Bounded_Wide_String;
432 function "*"
433 (Left : Natural;
434 Right : Wide_String) return Bounded_Wide_String;
436 function "*"
437 (Left : Natural;
438 Right : Bounded_Wide_String) return Bounded_Wide_String;
440 function Replicate
441 (Count : Natural;
442 Item : Wide_Character;
443 Drop : Truncation := Error) return Bounded_Wide_String;
445 function Replicate
446 (Count : Natural;
447 Item : Wide_String;
448 Drop : Truncation := Error) return Bounded_Wide_String;
450 function Replicate
451 (Count : Natural;
452 Item : Bounded_Wide_String;
453 Drop : Truncation := Error) return Bounded_Wide_String;
455 private
456 -- Most of the implementation is in the separate non generic package
457 -- Ada.Strings.Wide_Superbounded. Type Bounded_Wide_String is derived
458 -- from type Wide_Superbounded.Super_String with the maximum length
459 -- constraint. In almost all cases, the routines in Wide_Superbounded
460 -- can be called with no requirement to pass the maximum length
461 -- explicitly, since there is at least one Bounded_Wide_String argument
462 -- from which the maximum length can be obtained. For all such
463 -- routines, the implementation in this private part is simply a
464 -- renaming of the corresponding routine in the super bouded package.
466 -- The five exceptions are the * and Replicate routines operating on
467 -- character values. For these cases, we have a routine in the body
468 -- that calls the superbounded routine passing the maximum length
469 -- explicitly as an extra parameter.
471 type Bounded_Wide_String is
472 new Wide_Superbounded.Super_String (Max_Length);
473 -- Deriving Bounded_Wide_String from Wide_Superbounded.Super_String is
474 -- the real trick, it ensures that the type Bounded_Wide_String
475 -- declared in the generic instantiation is compatible with the
476 -- Super_String type declared in the Wide_Superbounded package.
478 Null_Bounded_Wide_String : constant Bounded_Wide_String :=
479 (Max_Length => Max_Length,
480 Current_Length => 0,
481 Data =>
482 (1 .. Max_Length =>
483 Wide_Superbounded.Wide_NUL));
485 pragma Inline (To_Bounded_Wide_String);
487 procedure Set_Bounded_Wide_String
488 (Target : out Bounded_Wide_String;
489 Source : Wide_String;
490 Drop : Truncation := Error)
491 renames Set_Super_String;
493 function Length
494 (Source : Bounded_Wide_String) return Length_Range
495 renames Super_Length;
497 function To_Wide_String
498 (Source : Bounded_Wide_String) return Wide_String
499 renames Super_To_String;
501 function Append
502 (Left : Bounded_Wide_String;
503 Right : Bounded_Wide_String;
504 Drop : Truncation := Error) return Bounded_Wide_String
505 renames Super_Append;
507 function Append
508 (Left : Bounded_Wide_String;
509 Right : Wide_String;
510 Drop : Truncation := Error) return Bounded_Wide_String
511 renames Super_Append;
513 function Append
514 (Left : Wide_String;
515 Right : Bounded_Wide_String;
516 Drop : Truncation := Error) return Bounded_Wide_String
517 renames Super_Append;
519 function Append
520 (Left : Bounded_Wide_String;
521 Right : Wide_Character;
522 Drop : Truncation := Error) return Bounded_Wide_String
523 renames Super_Append;
525 function Append
526 (Left : Wide_Character;
527 Right : Bounded_Wide_String;
528 Drop : Truncation := Error) return Bounded_Wide_String
529 renames Super_Append;
531 procedure Append
532 (Source : in out Bounded_Wide_String;
533 New_Item : Bounded_Wide_String;
534 Drop : Truncation := Error)
535 renames Super_Append;
537 procedure Append
538 (Source : in out Bounded_Wide_String;
539 New_Item : Wide_String;
540 Drop : Truncation := Error)
541 renames Super_Append;
543 procedure Append
544 (Source : in out Bounded_Wide_String;
545 New_Item : Wide_Character;
546 Drop : Truncation := Error)
547 renames Super_Append;
549 function "&"
550 (Left : Bounded_Wide_String;
551 Right : Bounded_Wide_String) return Bounded_Wide_String
552 renames Concat;
554 function "&"
555 (Left : Bounded_Wide_String;
556 Right : Wide_String) return Bounded_Wide_String
557 renames Concat;
559 function "&"
560 (Left : Wide_String;
561 Right : Bounded_Wide_String) return Bounded_Wide_String
562 renames Concat;
564 function "&"
565 (Left : Bounded_Wide_String;
566 Right : Wide_Character) return Bounded_Wide_String
567 renames Concat;
569 function "&"
570 (Left : Wide_Character;
571 Right : Bounded_Wide_String) return Bounded_Wide_String
572 renames Concat;
574 function Element
575 (Source : Bounded_Wide_String;
576 Index : Positive) return Wide_Character
577 renames Super_Element;
579 procedure Replace_Element
580 (Source : in out Bounded_Wide_String;
581 Index : Positive;
582 By : Wide_Character)
583 renames Super_Replace_Element;
585 function Slice
586 (Source : Bounded_Wide_String;
587 Low : Positive;
588 High : Natural) return Wide_String
589 renames Super_Slice;
591 function Bounded_Slice
592 (Source : Bounded_Wide_String;
593 Low : Positive;
594 High : Natural) return Bounded_Wide_String
595 renames Super_Slice;
597 procedure Bounded_Slice
598 (Source : Bounded_Wide_String;
599 Target : out Bounded_Wide_String;
600 Low : Positive;
601 High : Natural)
602 renames Super_Slice;
604 function "="
605 (Left : Bounded_Wide_String;
606 Right : Bounded_Wide_String) return Boolean
607 renames Equal;
609 function "="
610 (Left : Bounded_Wide_String;
611 Right : Wide_String) return Boolean
612 renames Equal;
614 function "="
615 (Left : Wide_String;
616 Right : Bounded_Wide_String) return Boolean
617 renames Equal;
619 function "<"
620 (Left : Bounded_Wide_String;
621 Right : Bounded_Wide_String) return Boolean
622 renames Less;
624 function "<"
625 (Left : Bounded_Wide_String;
626 Right : Wide_String) return Boolean
627 renames Less;
629 function "<"
630 (Left : Wide_String;
631 Right : Bounded_Wide_String) return Boolean
632 renames Less;
634 function "<="
635 (Left : Bounded_Wide_String;
636 Right : Bounded_Wide_String) return Boolean
637 renames Less_Or_Equal;
639 function "<="
640 (Left : Bounded_Wide_String;
641 Right : Wide_String) return Boolean
642 renames Less_Or_Equal;
644 function "<="
645 (Left : Wide_String;
646 Right : Bounded_Wide_String) return Boolean
647 renames Less_Or_Equal;
649 function ">"
650 (Left : Bounded_Wide_String;
651 Right : Bounded_Wide_String) return Boolean
652 renames Greater;
654 function ">"
655 (Left : Bounded_Wide_String;
656 Right : Wide_String) return Boolean
657 renames Greater;
659 function ">"
660 (Left : Wide_String;
661 Right : Bounded_Wide_String) return Boolean
662 renames Greater;
664 function ">="
665 (Left : Bounded_Wide_String;
666 Right : Bounded_Wide_String) return Boolean
667 renames Greater_Or_Equal;
669 function ">="
670 (Left : Bounded_Wide_String;
671 Right : Wide_String) return Boolean
672 renames Greater_Or_Equal;
674 function ">="
675 (Left : Wide_String;
676 Right : Bounded_Wide_String) return Boolean
677 renames Greater_Or_Equal;
679 function Index
680 (Source : Bounded_Wide_String;
681 Pattern : Wide_String;
682 Going : Direction := Forward;
683 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
684 return Natural
685 renames Super_Index;
687 function Index
688 (Source : Bounded_Wide_String;
689 Pattern : Wide_String;
690 Going : Direction := Forward;
691 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
692 renames Super_Index;
694 function Index
695 (Source : Bounded_Wide_String;
696 Set : Wide_Maps.Wide_Character_Set;
697 Test : Membership := Inside;
698 Going : Direction := Forward) return Natural
699 renames Super_Index;
701 function Index
702 (Source : Bounded_Wide_String;
703 Pattern : Wide_String;
704 From : Positive;
705 Going : Direction := Forward;
706 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
707 return Natural
708 renames Super_Index;
710 function Index
711 (Source : Bounded_Wide_String;
712 Pattern : Wide_String;
713 From : Positive;
714 Going : Direction := Forward;
715 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
716 renames Super_Index;
718 function Index
719 (Source : Bounded_Wide_String;
720 Set : Wide_Maps.Wide_Character_Set;
721 From : Positive;
722 Test : Membership := Inside;
723 Going : Direction := Forward) return Natural
724 renames Super_Index;
726 function Index_Non_Blank
727 (Source : Bounded_Wide_String;
728 Going : Direction := Forward) return Natural
729 renames Super_Index_Non_Blank;
731 function Index_Non_Blank
732 (Source : Bounded_Wide_String;
733 From : Positive;
734 Going : Direction := Forward) return Natural
735 renames Super_Index_Non_Blank;
737 function Count
738 (Source : Bounded_Wide_String;
739 Pattern : Wide_String;
740 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
741 return Natural
742 renames Super_Count;
744 function Count
745 (Source : Bounded_Wide_String;
746 Pattern : Wide_String;
747 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
748 renames Super_Count;
750 function Count
751 (Source : Bounded_Wide_String;
752 Set : Wide_Maps.Wide_Character_Set) return Natural
753 renames Super_Count;
755 procedure Find_Token
756 (Source : Bounded_Wide_String;
757 Set : Wide_Maps.Wide_Character_Set;
758 Test : Membership;
759 First : out Positive;
760 Last : out Natural)
761 renames Super_Find_Token;
763 function Translate
764 (Source : Bounded_Wide_String;
765 Mapping : Wide_Maps.Wide_Character_Mapping)
766 return Bounded_Wide_String
767 renames Super_Translate;
769 procedure Translate
770 (Source : in out Bounded_Wide_String;
771 Mapping : Wide_Maps.Wide_Character_Mapping)
772 renames Super_Translate;
774 function Translate
775 (Source : Bounded_Wide_String;
776 Mapping : Wide_Maps.Wide_Character_Mapping_Function)
777 return Bounded_Wide_String
778 renames Super_Translate;
780 procedure Translate
781 (Source : in out Bounded_Wide_String;
782 Mapping : Wide_Maps.Wide_Character_Mapping_Function)
783 renames Super_Translate;
785 function Replace_Slice
786 (Source : Bounded_Wide_String;
787 Low : Positive;
788 High : Natural;
789 By : Wide_String;
790 Drop : Truncation := Error) return Bounded_Wide_String
791 renames Super_Replace_Slice;
793 procedure Replace_Slice
794 (Source : in out Bounded_Wide_String;
795 Low : Positive;
796 High : Natural;
797 By : Wide_String;
798 Drop : Truncation := Error)
799 renames Super_Replace_Slice;
801 function Insert
802 (Source : Bounded_Wide_String;
803 Before : Positive;
804 New_Item : Wide_String;
805 Drop : Truncation := Error) return Bounded_Wide_String
806 renames Super_Insert;
808 procedure Insert
809 (Source : in out Bounded_Wide_String;
810 Before : Positive;
811 New_Item : Wide_String;
812 Drop : Truncation := Error)
813 renames Super_Insert;
815 function Overwrite
816 (Source : Bounded_Wide_String;
817 Position : Positive;
818 New_Item : Wide_String;
819 Drop : Truncation := Error) return Bounded_Wide_String
820 renames Super_Overwrite;
822 procedure Overwrite
823 (Source : in out Bounded_Wide_String;
824 Position : Positive;
825 New_Item : Wide_String;
826 Drop : Truncation := Error)
827 renames Super_Overwrite;
829 function Delete
830 (Source : Bounded_Wide_String;
831 From : Positive;
832 Through : Natural) return Bounded_Wide_String
833 renames Super_Delete;
835 procedure Delete
836 (Source : in out Bounded_Wide_String;
837 From : Positive;
838 Through : Natural)
839 renames Super_Delete;
841 function Trim
842 (Source : Bounded_Wide_String;
843 Side : Trim_End) return Bounded_Wide_String
844 renames Super_Trim;
846 procedure Trim
847 (Source : in out Bounded_Wide_String;
848 Side : Trim_End)
849 renames Super_Trim;
851 function Trim
852 (Source : Bounded_Wide_String;
853 Left : Wide_Maps.Wide_Character_Set;
854 Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String
855 renames Super_Trim;
857 procedure Trim
858 (Source : in out Bounded_Wide_String;
859 Left : Wide_Maps.Wide_Character_Set;
860 Right : Wide_Maps.Wide_Character_Set)
861 renames Super_Trim;
863 function Head
864 (Source : Bounded_Wide_String;
865 Count : Natural;
866 Pad : Wide_Character := Wide_Space;
867 Drop : Truncation := Error) return Bounded_Wide_String
868 renames Super_Head;
870 procedure Head
871 (Source : in out Bounded_Wide_String;
872 Count : Natural;
873 Pad : Wide_Character := Wide_Space;
874 Drop : Truncation := Error)
875 renames Super_Head;
877 function Tail
878 (Source : Bounded_Wide_String;
879 Count : Natural;
880 Pad : Wide_Character := Wide_Space;
881 Drop : Truncation := Error) return Bounded_Wide_String
882 renames Super_Tail;
884 procedure Tail
885 (Source : in out Bounded_Wide_String;
886 Count : Natural;
887 Pad : Wide_Character := Wide_Space;
888 Drop : Truncation := Error)
889 renames Super_Tail;
891 function "*"
892 (Left : Natural;
893 Right : Bounded_Wide_String) return Bounded_Wide_String
894 renames Times;
896 function Replicate
897 (Count : Natural;
898 Item : Bounded_Wide_String;
899 Drop : Truncation := Error) return Bounded_Wide_String
900 renames Super_Replicate;
902 end Generic_Bounded_Length;
904 end Ada.Strings.Wide_Bounded;