gcc:
[official-gcc.git] / gcc / ada / a-stwibo.ads
blob7717272420cf0b4eac20232015e01e8ea046acae
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-2006, Free Software Foundation, Inc. --
10 -- --
11 -- This specification is derived from the Ada Reference Manual for use with --
12 -- GNAT. The copyright notice above, and the license provisions that follow --
13 -- apply solely to the contents of the part following the private keyword. --
14 -- --
15 -- GNAT is free software; you can redistribute it and/or modify it under --
16 -- terms of the GNU General Public License as published by the Free Soft- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
24 -- Boston, MA 02110-1301, USA. --
25 -- --
26 -- As a special exception, if other files instantiate generics from this --
27 -- unit, or you link this unit with other files to produce an executable, --
28 -- this unit does not by itself cause the resulting executable to be --
29 -- covered by the GNU General Public License. This exception does not --
30 -- however invalidate any other reasons why the executable file might be --
31 -- covered by the GNU Public License. --
32 -- --
33 -- GNAT was originally developed by the GNAT team at New York University. --
34 -- Extensive contributions were provided by Ada Core Technologies Inc. --
35 -- --
36 ------------------------------------------------------------------------------
38 with Ada.Strings.Wide_Maps;
39 with Ada.Strings.Wide_Superbounded;
41 package Ada.Strings.Wide_Bounded is
42 pragma Preelaborate;
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;
53 pragma Preelaborable_Initialization (Bounded_Wide_String);
55 Null_Bounded_Wide_String : constant Bounded_Wide_String;
57 subtype Length_Range is Natural range 0 .. Max_Length;
59 function Length (Source : Bounded_Wide_String) return Length_Range;
61 --------------------------------------------------------
62 -- Conversion, Concatenation, and Selection Functions --
63 --------------------------------------------------------
65 function To_Bounded_Wide_String
66 (Source : Wide_String;
67 Drop : Truncation := Error) return Bounded_Wide_String;
69 function To_Wide_String
70 (Source : Bounded_Wide_String) return Wide_String;
72 procedure Set_Bounded_Wide_String
73 (Target : out Bounded_Wide_String;
74 Source : Wide_String;
75 Drop : Truncation := Error);
76 pragma Ada_05 (Set_Bounded_Wide_String);
78 function Append
79 (Left : Bounded_Wide_String;
80 Right : Bounded_Wide_String;
81 Drop : Truncation := Error) return Bounded_Wide_String;
83 function Append
84 (Left : Bounded_Wide_String;
85 Right : Wide_String;
86 Drop : Truncation := Error) return Bounded_Wide_String;
88 function Append
89 (Left : Wide_String;
90 Right : Bounded_Wide_String;
91 Drop : Truncation := Error) return Bounded_Wide_String;
93 function Append
94 (Left : Bounded_Wide_String;
95 Right : Wide_Character;
96 Drop : Truncation := Error) return Bounded_Wide_String;
98 function Append
99 (Left : Wide_Character;
100 Right : Bounded_Wide_String;
101 Drop : Truncation := Error) return Bounded_Wide_String;
103 procedure Append
104 (Source : in out Bounded_Wide_String;
105 New_Item : Bounded_Wide_String;
106 Drop : Truncation := Error);
108 procedure Append
109 (Source : in out Bounded_Wide_String;
110 New_Item : Wide_String;
111 Drop : Truncation := Error);
113 procedure Append
114 (Source : in out Bounded_Wide_String;
115 New_Item : Wide_Character;
116 Drop : Truncation := Error);
118 function "&"
119 (Left : Bounded_Wide_String;
120 Right : Bounded_Wide_String) return Bounded_Wide_String;
122 function "&"
123 (Left : Bounded_Wide_String;
124 Right : Wide_String) return Bounded_Wide_String;
126 function "&"
127 (Left : Wide_String;
128 Right : Bounded_Wide_String) return Bounded_Wide_String;
130 function "&"
131 (Left : Bounded_Wide_String;
132 Right : Wide_Character) return Bounded_Wide_String;
134 function "&"
135 (Left : Wide_Character;
136 Right : Bounded_Wide_String) return Bounded_Wide_String;
138 function Element
139 (Source : Bounded_Wide_String;
140 Index : Positive) return Wide_Character;
142 procedure Replace_Element
143 (Source : in out Bounded_Wide_String;
144 Index : Positive;
145 By : Wide_Character);
147 function Slice
148 (Source : Bounded_Wide_String;
149 Low : Positive;
150 High : Natural) return Wide_String;
152 function Bounded_Slice
153 (Source : Bounded_Wide_String;
154 Low : Positive;
155 High : Natural) return Bounded_Wide_String;
156 pragma Ada_05 (Bounded_Slice);
158 procedure Bounded_Slice
159 (Source : Bounded_Wide_String;
160 Target : out Bounded_Wide_String;
161 Low : Positive;
162 High : Natural);
163 pragma Ada_05 (Bounded_Slice);
165 function "="
166 (Left : Bounded_Wide_String;
167 Right : Bounded_Wide_String) return Boolean;
169 function "="
170 (Left : Bounded_Wide_String;
171 Right : Wide_String) return Boolean;
173 function "="
174 (Left : Wide_String;
175 Right : Bounded_Wide_String) return Boolean;
177 function "<"
178 (Left : Bounded_Wide_String;
179 Right : Bounded_Wide_String) return Boolean;
181 function "<"
182 (Left : Bounded_Wide_String;
183 Right : Wide_String) return Boolean;
185 function "<"
186 (Left : Wide_String;
187 Right : Bounded_Wide_String) return Boolean;
189 function "<="
190 (Left : Bounded_Wide_String;
191 Right : Bounded_Wide_String) return Boolean;
193 function "<="
194 (Left : Bounded_Wide_String;
195 Right : Wide_String) return Boolean;
197 function "<="
198 (Left : Wide_String;
199 Right : Bounded_Wide_String) return Boolean;
201 function ">"
202 (Left : Bounded_Wide_String;
203 Right : Bounded_Wide_String) return Boolean;
205 function ">"
206 (Left : Bounded_Wide_String;
207 Right : Wide_String) return Boolean;
209 function ">"
210 (Left : Wide_String;
211 Right : Bounded_Wide_String) return Boolean;
213 function ">="
214 (Left : Bounded_Wide_String;
215 Right : Bounded_Wide_String) return Boolean;
217 function ">="
218 (Left : Bounded_Wide_String;
219 Right : Wide_String) return Boolean;
221 function ">="
222 (Left : Wide_String;
223 Right : Bounded_Wide_String) return Boolean;
225 ----------------------
226 -- Search Functions --
227 ----------------------
229 function Index
230 (Source : Bounded_Wide_String;
231 Pattern : Wide_String;
232 Going : Direction := Forward;
233 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
234 return Natural;
236 function Index
237 (Source : Bounded_Wide_String;
238 Pattern : Wide_String;
239 Going : Direction := Forward;
240 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
242 function Index
243 (Source : Bounded_Wide_String;
244 Set : Wide_Maps.Wide_Character_Set;
245 Test : Membership := Inside;
246 Going : Direction := Forward) return Natural;
248 function Index
249 (Source : Bounded_Wide_String;
250 Pattern : Wide_String;
251 From : Positive;
252 Going : Direction := Forward;
253 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
254 return Natural;
255 pragma Ada_05 (Index);
257 function Index
258 (Source : Bounded_Wide_String;
259 Pattern : Wide_String;
260 From : Positive;
261 Going : Direction := Forward;
262 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
263 pragma Ada_05 (Index);
265 function Index
266 (Source : Bounded_Wide_String;
267 Set : Wide_Maps.Wide_Character_Set;
268 From : Positive;
269 Test : Membership := Inside;
270 Going : Direction := Forward) return Natural;
271 pragma Ada_05 (Index);
273 function Index_Non_Blank
274 (Source : Bounded_Wide_String;
275 Going : Direction := Forward) return Natural;
277 function Index_Non_Blank
278 (Source : Bounded_Wide_String;
279 From : Positive;
280 Going : Direction := Forward) return Natural;
281 pragma Ada_05 (Index_Non_Blank);
283 function Count
284 (Source : Bounded_Wide_String;
285 Pattern : Wide_String;
286 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
287 return Natural;
289 function Count
290 (Source : Bounded_Wide_String;
291 Pattern : Wide_String;
292 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
294 function Count
295 (Source : Bounded_Wide_String;
296 Set : Wide_Maps.Wide_Character_Set) return Natural;
298 procedure Find_Token
299 (Source : Bounded_Wide_String;
300 Set : Wide_Maps.Wide_Character_Set;
301 Test : Membership;
302 First : out Positive;
303 Last : out Natural);
305 ------------------------------------
306 -- String Translation Subprograms --
307 ------------------------------------
309 function Translate
310 (Source : Bounded_Wide_String;
311 Mapping : Wide_Maps.Wide_Character_Mapping)
312 return Bounded_Wide_String;
314 procedure Translate
315 (Source : in out Bounded_Wide_String;
316 Mapping : Wide_Maps.Wide_Character_Mapping);
318 function Translate
319 (Source : Bounded_Wide_String;
320 Mapping : Wide_Maps.Wide_Character_Mapping_Function)
321 return Bounded_Wide_String;
323 procedure Translate
324 (Source : in out Bounded_Wide_String;
325 Mapping : Wide_Maps.Wide_Character_Mapping_Function);
327 ---------------------------------------
328 -- String Transformation Subprograms --
329 ---------------------------------------
331 function Replace_Slice
332 (Source : Bounded_Wide_String;
333 Low : Positive;
334 High : Natural;
335 By : Wide_String;
336 Drop : Truncation := Error) return Bounded_Wide_String;
338 procedure Replace_Slice
339 (Source : in out Bounded_Wide_String;
340 Low : Positive;
341 High : Natural;
342 By : Wide_String;
343 Drop : Truncation := Error);
345 function Insert
346 (Source : Bounded_Wide_String;
347 Before : Positive;
348 New_Item : Wide_String;
349 Drop : Truncation := Error) return Bounded_Wide_String;
351 procedure Insert
352 (Source : in out Bounded_Wide_String;
353 Before : Positive;
354 New_Item : Wide_String;
355 Drop : Truncation := Error);
357 function Overwrite
358 (Source : Bounded_Wide_String;
359 Position : Positive;
360 New_Item : Wide_String;
361 Drop : Truncation := Error) return Bounded_Wide_String;
363 procedure Overwrite
364 (Source : in out Bounded_Wide_String;
365 Position : Positive;
366 New_Item : Wide_String;
367 Drop : Truncation := Error);
369 function Delete
370 (Source : Bounded_Wide_String;
371 From : Positive;
372 Through : Natural) return Bounded_Wide_String;
374 procedure Delete
375 (Source : in out Bounded_Wide_String;
376 From : Positive;
377 Through : Natural);
379 ---------------------------------
380 -- String Selector Subprograms --
381 ---------------------------------
383 function Trim
384 (Source : Bounded_Wide_String;
385 Side : Trim_End) return Bounded_Wide_String;
387 procedure Trim
388 (Source : in out Bounded_Wide_String;
389 Side : Trim_End);
391 function Trim
392 (Source : Bounded_Wide_String;
393 Left : Wide_Maps.Wide_Character_Set;
394 Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String;
396 procedure Trim
397 (Source : in out Bounded_Wide_String;
398 Left : Wide_Maps.Wide_Character_Set;
399 Right : Wide_Maps.Wide_Character_Set);
401 function Head
402 (Source : Bounded_Wide_String;
403 Count : Natural;
404 Pad : Wide_Character := Wide_Space;
405 Drop : Truncation := Error) return Bounded_Wide_String;
407 procedure Head
408 (Source : in out Bounded_Wide_String;
409 Count : Natural;
410 Pad : Wide_Character := Wide_Space;
411 Drop : Truncation := Error);
413 function Tail
414 (Source : Bounded_Wide_String;
415 Count : Natural;
416 Pad : Wide_Character := Wide_Space;
417 Drop : Truncation := Error) return Bounded_Wide_String;
419 procedure Tail
420 (Source : in out Bounded_Wide_String;
421 Count : Natural;
422 Pad : Wide_Character := Wide_Space;
423 Drop : Truncation := Error);
425 ------------------------------------
426 -- String Constructor Subprograms --
427 ------------------------------------
429 function "*"
430 (Left : Natural;
431 Right : Wide_Character) return Bounded_Wide_String;
433 function "*"
434 (Left : Natural;
435 Right : Wide_String) return Bounded_Wide_String;
437 function "*"
438 (Left : Natural;
439 Right : Bounded_Wide_String) return Bounded_Wide_String;
441 function Replicate
442 (Count : Natural;
443 Item : Wide_Character;
444 Drop : Truncation := Error) return Bounded_Wide_String;
446 function Replicate
447 (Count : Natural;
448 Item : Wide_String;
449 Drop : Truncation := Error) return Bounded_Wide_String;
451 function Replicate
452 (Count : Natural;
453 Item : Bounded_Wide_String;
454 Drop : Truncation := Error) return Bounded_Wide_String;
456 private
457 -- Most of the implementation is in the separate non generic package
458 -- Ada.Strings.Wide_Superbounded. Type Bounded_Wide_String is derived
459 -- from type Wide_Superbounded.Super_String with the maximum length
460 -- constraint. In almost all cases, the routines in Wide_Superbounded
461 -- can be called with no requirement to pass the maximum length
462 -- explicitly, since there is at least one Bounded_Wide_String argument
463 -- from which the maximum length can be obtained. For all such
464 -- routines, the implementation in this private part is simply a
465 -- renaming of the corresponding routine in the super bouded package.
467 -- The five exceptions are the * and Replicate routines operating on
468 -- character values. For these cases, we have a routine in the body
469 -- that calls the superbounded routine passing the maximum length
470 -- explicitly as an extra parameter.
472 type Bounded_Wide_String is
473 new Wide_Superbounded.Super_String (Max_Length);
474 -- Deriving Bounded_Wide_String from Wide_Superbounded.Super_String is
475 -- the real trick, it ensures that the type Bounded_Wide_String
476 -- declared in the generic instantiation is compatible with the
477 -- Super_String type declared in the Wide_Superbounded package.
479 Null_Bounded_Wide_String : constant Bounded_Wide_String :=
480 (Max_Length => Max_Length,
481 Current_Length => 0,
482 Data =>
483 (1 .. Max_Length =>
484 Wide_Superbounded.Wide_NUL));
486 pragma Inline (To_Bounded_Wide_String);
488 procedure Set_Bounded_Wide_String
489 (Target : out Bounded_Wide_String;
490 Source : Wide_String;
491 Drop : Truncation := Error)
492 renames Set_Super_String;
494 function Length
495 (Source : Bounded_Wide_String) return Length_Range
496 renames Super_Length;
498 function To_Wide_String
499 (Source : Bounded_Wide_String) return Wide_String
500 renames Super_To_String;
502 function Append
503 (Left : Bounded_Wide_String;
504 Right : Bounded_Wide_String;
505 Drop : Truncation := Error) return Bounded_Wide_String
506 renames Super_Append;
508 function Append
509 (Left : Bounded_Wide_String;
510 Right : Wide_String;
511 Drop : Truncation := Error) return Bounded_Wide_String
512 renames Super_Append;
514 function Append
515 (Left : Wide_String;
516 Right : Bounded_Wide_String;
517 Drop : Truncation := Error) return Bounded_Wide_String
518 renames Super_Append;
520 function Append
521 (Left : Bounded_Wide_String;
522 Right : Wide_Character;
523 Drop : Truncation := Error) return Bounded_Wide_String
524 renames Super_Append;
526 function Append
527 (Left : Wide_Character;
528 Right : Bounded_Wide_String;
529 Drop : Truncation := Error) return Bounded_Wide_String
530 renames Super_Append;
532 procedure Append
533 (Source : in out Bounded_Wide_String;
534 New_Item : Bounded_Wide_String;
535 Drop : Truncation := Error)
536 renames Super_Append;
538 procedure Append
539 (Source : in out Bounded_Wide_String;
540 New_Item : Wide_String;
541 Drop : Truncation := Error)
542 renames Super_Append;
544 procedure Append
545 (Source : in out Bounded_Wide_String;
546 New_Item : Wide_Character;
547 Drop : Truncation := Error)
548 renames Super_Append;
550 function "&"
551 (Left : Bounded_Wide_String;
552 Right : Bounded_Wide_String) return Bounded_Wide_String
553 renames Concat;
555 function "&"
556 (Left : Bounded_Wide_String;
557 Right : Wide_String) return Bounded_Wide_String
558 renames Concat;
560 function "&"
561 (Left : Wide_String;
562 Right : Bounded_Wide_String) return Bounded_Wide_String
563 renames Concat;
565 function "&"
566 (Left : Bounded_Wide_String;
567 Right : Wide_Character) return Bounded_Wide_String
568 renames Concat;
570 function "&"
571 (Left : Wide_Character;
572 Right : Bounded_Wide_String) return Bounded_Wide_String
573 renames Concat;
575 function Element
576 (Source : Bounded_Wide_String;
577 Index : Positive) return Wide_Character
578 renames Super_Element;
580 procedure Replace_Element
581 (Source : in out Bounded_Wide_String;
582 Index : Positive;
583 By : Wide_Character)
584 renames Super_Replace_Element;
586 function Slice
587 (Source : Bounded_Wide_String;
588 Low : Positive;
589 High : Natural) return Wide_String
590 renames Super_Slice;
592 function Bounded_Slice
593 (Source : Bounded_Wide_String;
594 Low : Positive;
595 High : Natural) return Bounded_Wide_String
596 renames Super_Slice;
598 procedure Bounded_Slice
599 (Source : Bounded_Wide_String;
600 Target : out Bounded_Wide_String;
601 Low : Positive;
602 High : Natural)
603 renames Super_Slice;
605 function "="
606 (Left : Bounded_Wide_String;
607 Right : Bounded_Wide_String) return Boolean
608 renames Equal;
610 function "="
611 (Left : Bounded_Wide_String;
612 Right : Wide_String) return Boolean
613 renames Equal;
615 function "="
616 (Left : Wide_String;
617 Right : Bounded_Wide_String) return Boolean
618 renames Equal;
620 function "<"
621 (Left : Bounded_Wide_String;
622 Right : Bounded_Wide_String) return Boolean
623 renames Less;
625 function "<"
626 (Left : Bounded_Wide_String;
627 Right : Wide_String) return Boolean
628 renames Less;
630 function "<"
631 (Left : Wide_String;
632 Right : Bounded_Wide_String) return Boolean
633 renames Less;
635 function "<="
636 (Left : Bounded_Wide_String;
637 Right : Bounded_Wide_String) return Boolean
638 renames Less_Or_Equal;
640 function "<="
641 (Left : Bounded_Wide_String;
642 Right : Wide_String) return Boolean
643 renames Less_Or_Equal;
645 function "<="
646 (Left : Wide_String;
647 Right : Bounded_Wide_String) return Boolean
648 renames Less_Or_Equal;
650 function ">"
651 (Left : Bounded_Wide_String;
652 Right : Bounded_Wide_String) return Boolean
653 renames Greater;
655 function ">"
656 (Left : Bounded_Wide_String;
657 Right : Wide_String) return Boolean
658 renames Greater;
660 function ">"
661 (Left : Wide_String;
662 Right : Bounded_Wide_String) return Boolean
663 renames Greater;
665 function ">="
666 (Left : Bounded_Wide_String;
667 Right : Bounded_Wide_String) return Boolean
668 renames Greater_Or_Equal;
670 function ">="
671 (Left : Bounded_Wide_String;
672 Right : Wide_String) return Boolean
673 renames Greater_Or_Equal;
675 function ">="
676 (Left : Wide_String;
677 Right : Bounded_Wide_String) return Boolean
678 renames Greater_Or_Equal;
680 function Index
681 (Source : Bounded_Wide_String;
682 Pattern : Wide_String;
683 Going : Direction := Forward;
684 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
685 return Natural
686 renames Super_Index;
688 function Index
689 (Source : Bounded_Wide_String;
690 Pattern : Wide_String;
691 Going : Direction := Forward;
692 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
693 renames Super_Index;
695 function Index
696 (Source : Bounded_Wide_String;
697 Set : Wide_Maps.Wide_Character_Set;
698 Test : Membership := Inside;
699 Going : Direction := Forward) return Natural
700 renames Super_Index;
702 function Index
703 (Source : Bounded_Wide_String;
704 Pattern : Wide_String;
705 From : Positive;
706 Going : Direction := Forward;
707 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
708 return Natural
709 renames Super_Index;
711 function Index
712 (Source : Bounded_Wide_String;
713 Pattern : Wide_String;
714 From : Positive;
715 Going : Direction := Forward;
716 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
717 renames Super_Index;
719 function Index
720 (Source : Bounded_Wide_String;
721 Set : Wide_Maps.Wide_Character_Set;
722 From : Positive;
723 Test : Membership := Inside;
724 Going : Direction := Forward) return Natural
725 renames Super_Index;
727 function Index_Non_Blank
728 (Source : Bounded_Wide_String;
729 Going : Direction := Forward) return Natural
730 renames Super_Index_Non_Blank;
732 function Index_Non_Blank
733 (Source : Bounded_Wide_String;
734 From : Positive;
735 Going : Direction := Forward) return Natural
736 renames Super_Index_Non_Blank;
738 function Count
739 (Source : Bounded_Wide_String;
740 Pattern : Wide_String;
741 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
742 return Natural
743 renames Super_Count;
745 function Count
746 (Source : Bounded_Wide_String;
747 Pattern : Wide_String;
748 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
749 renames Super_Count;
751 function Count
752 (Source : Bounded_Wide_String;
753 Set : Wide_Maps.Wide_Character_Set) return Natural
754 renames Super_Count;
756 procedure Find_Token
757 (Source : Bounded_Wide_String;
758 Set : Wide_Maps.Wide_Character_Set;
759 Test : Membership;
760 First : out Positive;
761 Last : out Natural)
762 renames Super_Find_Token;
764 function Translate
765 (Source : Bounded_Wide_String;
766 Mapping : Wide_Maps.Wide_Character_Mapping)
767 return Bounded_Wide_String
768 renames Super_Translate;
770 procedure Translate
771 (Source : in out Bounded_Wide_String;
772 Mapping : Wide_Maps.Wide_Character_Mapping)
773 renames Super_Translate;
775 function Translate
776 (Source : Bounded_Wide_String;
777 Mapping : Wide_Maps.Wide_Character_Mapping_Function)
778 return Bounded_Wide_String
779 renames Super_Translate;
781 procedure Translate
782 (Source : in out Bounded_Wide_String;
783 Mapping : Wide_Maps.Wide_Character_Mapping_Function)
784 renames Super_Translate;
786 function Replace_Slice
787 (Source : Bounded_Wide_String;
788 Low : Positive;
789 High : Natural;
790 By : Wide_String;
791 Drop : Truncation := Error) return Bounded_Wide_String
792 renames Super_Replace_Slice;
794 procedure Replace_Slice
795 (Source : in out Bounded_Wide_String;
796 Low : Positive;
797 High : Natural;
798 By : Wide_String;
799 Drop : Truncation := Error)
800 renames Super_Replace_Slice;
802 function Insert
803 (Source : Bounded_Wide_String;
804 Before : Positive;
805 New_Item : Wide_String;
806 Drop : Truncation := Error) return Bounded_Wide_String
807 renames Super_Insert;
809 procedure Insert
810 (Source : in out Bounded_Wide_String;
811 Before : Positive;
812 New_Item : Wide_String;
813 Drop : Truncation := Error)
814 renames Super_Insert;
816 function Overwrite
817 (Source : Bounded_Wide_String;
818 Position : Positive;
819 New_Item : Wide_String;
820 Drop : Truncation := Error) return Bounded_Wide_String
821 renames Super_Overwrite;
823 procedure Overwrite
824 (Source : in out Bounded_Wide_String;
825 Position : Positive;
826 New_Item : Wide_String;
827 Drop : Truncation := Error)
828 renames Super_Overwrite;
830 function Delete
831 (Source : Bounded_Wide_String;
832 From : Positive;
833 Through : Natural) return Bounded_Wide_String
834 renames Super_Delete;
836 procedure Delete
837 (Source : in out Bounded_Wide_String;
838 From : Positive;
839 Through : Natural)
840 renames Super_Delete;
842 function Trim
843 (Source : Bounded_Wide_String;
844 Side : Trim_End) return Bounded_Wide_String
845 renames Super_Trim;
847 procedure Trim
848 (Source : in out Bounded_Wide_String;
849 Side : Trim_End)
850 renames Super_Trim;
852 function Trim
853 (Source : Bounded_Wide_String;
854 Left : Wide_Maps.Wide_Character_Set;
855 Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String
856 renames Super_Trim;
858 procedure Trim
859 (Source : in out Bounded_Wide_String;
860 Left : Wide_Maps.Wide_Character_Set;
861 Right : Wide_Maps.Wide_Character_Set)
862 renames Super_Trim;
864 function Head
865 (Source : Bounded_Wide_String;
866 Count : Natural;
867 Pad : Wide_Character := Wide_Space;
868 Drop : Truncation := Error) return Bounded_Wide_String
869 renames Super_Head;
871 procedure Head
872 (Source : in out Bounded_Wide_String;
873 Count : Natural;
874 Pad : Wide_Character := Wide_Space;
875 Drop : Truncation := Error)
876 renames Super_Head;
878 function Tail
879 (Source : Bounded_Wide_String;
880 Count : Natural;
881 Pad : Wide_Character := Wide_Space;
882 Drop : Truncation := Error) return Bounded_Wide_String
883 renames Super_Tail;
885 procedure Tail
886 (Source : in out Bounded_Wide_String;
887 Count : Natural;
888 Pad : Wide_Character := Wide_Space;
889 Drop : Truncation := Error)
890 renames Super_Tail;
892 function "*"
893 (Left : Natural;
894 Right : Bounded_Wide_String) return Bounded_Wide_String
895 renames Times;
897 function Replicate
898 (Count : Natural;
899 Item : Bounded_Wide_String;
900 Drop : Truncation := Error) return Bounded_Wide_String
901 renames Super_Replicate;
903 end Generic_Bounded_Length;
905 end Ada.Strings.Wide_Bounded;