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