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-2010, 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
;
307 First
: out Positive;
309 pragma Ada_2012
(Find_Token
);
312 (Source
: Bounded_Wide_Wide_String
;
313 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
315 First
: out Positive;
318 ------------------------------------
319 -- String Translation Subprograms --
320 ------------------------------------
323 (Source
: Bounded_Wide_Wide_String
;
324 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
325 return Bounded_Wide_Wide_String
;
328 (Source
: in out Bounded_Wide_Wide_String
;
329 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
);
332 (Source
: Bounded_Wide_Wide_String
;
333 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
334 return Bounded_Wide_Wide_String
;
337 (Source
: in out Bounded_Wide_Wide_String
;
338 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
);
340 ---------------------------------------
341 -- String Transformation Subprograms --
342 ---------------------------------------
344 function Replace_Slice
345 (Source
: Bounded_Wide_Wide_String
;
348 By
: Wide_Wide_String
;
349 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
351 procedure Replace_Slice
352 (Source
: in out Bounded_Wide_Wide_String
;
355 By
: Wide_Wide_String
;
356 Drop
: Truncation
:= Error
);
359 (Source
: Bounded_Wide_Wide_String
;
361 New_Item
: Wide_Wide_String
;
362 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
365 (Source
: in out Bounded_Wide_Wide_String
;
367 New_Item
: Wide_Wide_String
;
368 Drop
: Truncation
:= Error
);
371 (Source
: Bounded_Wide_Wide_String
;
373 New_Item
: Wide_Wide_String
;
374 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
377 (Source
: in out Bounded_Wide_Wide_String
;
379 New_Item
: Wide_Wide_String
;
380 Drop
: Truncation
:= Error
);
383 (Source
: Bounded_Wide_Wide_String
;
385 Through
: Natural) return Bounded_Wide_Wide_String
;
388 (Source
: in out Bounded_Wide_Wide_String
;
392 ---------------------------------
393 -- String Selector Subprograms --
394 ---------------------------------
397 (Source
: Bounded_Wide_Wide_String
;
398 Side
: Trim_End
) return Bounded_Wide_Wide_String
;
401 (Source
: in out Bounded_Wide_Wide_String
;
405 (Source
: Bounded_Wide_Wide_String
;
406 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
407 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
408 return Bounded_Wide_Wide_String
;
411 (Source
: in out Bounded_Wide_Wide_String
;
412 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
413 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
);
416 (Source
: Bounded_Wide_Wide_String
;
418 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
419 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
422 (Source
: in out Bounded_Wide_Wide_String
;
424 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
425 Drop
: Truncation
:= Error
);
428 (Source
: Bounded_Wide_Wide_String
;
430 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
431 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
434 (Source
: in out Bounded_Wide_Wide_String
;
436 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
437 Drop
: Truncation
:= Error
);
439 ------------------------------------
440 -- String Constructor Subprograms --
441 ------------------------------------
445 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
;
449 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
;
453 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
457 Item
: Wide_Wide_Character
;
458 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
462 Item
: Wide_Wide_String
;
463 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
467 Item
: Bounded_Wide_Wide_String
;
468 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
471 -- Most of the implementation is in the separate non generic package
472 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
473 -- derived from type Wide_Wide_Superbounded.Super_String with the
474 -- maximum length constraint. In almost all cases, the routines in
475 -- Wide_Wide_Superbounded can be called with no requirement to pass the
476 -- maximum length explicitly, since there is at least one
477 -- Bounded_Wide_Wide_String argument from which the maximum length can
478 -- be obtained. For all such routines, the implementation in this
479 -- private part is simply renaming of the corresponding routine in the
480 -- super bouded package.
482 -- The five exceptions are the * and Replicate routines operating on
483 -- character values. For these cases, we have a routine in the body
484 -- that calls the superbounded routine passing the maximum length
485 -- explicitly as an extra parameter.
487 type Bounded_Wide_Wide_String
is
488 new Wide_Wide_Superbounded
.Super_String
(Max_Length
);
489 -- Deriving Bounded_Wide_Wide_String from
490 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
491 -- that the type Bounded_Wide_Wide_String declared in the generic
492 -- instantiation is compatible with the Super_String type declared in
493 -- the Wide_Wide_Superbounded package.
495 Null_Bounded_Wide_Wide_String
: constant Bounded_Wide_Wide_String
:=
496 (Max_Length
=> Max_Length
,
500 Wide_Wide_Superbounded
.Wide_Wide_NUL
));
502 pragma Inline
(To_Bounded_Wide_Wide_String
);
504 procedure Set_Bounded_Wide_Wide_String
505 (Target
: out Bounded_Wide_Wide_String
;
506 Source
: Wide_Wide_String
;
507 Drop
: Truncation
:= Error
)
508 renames Set_Super_String
;
511 (Source
: Bounded_Wide_Wide_String
) return Length_Range
512 renames Super_Length
;
514 function To_Wide_Wide_String
515 (Source
: Bounded_Wide_Wide_String
) return Wide_Wide_String
516 renames Super_To_String
;
519 (Left
: Bounded_Wide_Wide_String
;
520 Right
: Bounded_Wide_Wide_String
;
521 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
522 renames Super_Append
;
525 (Left
: Bounded_Wide_Wide_String
;
526 Right
: Wide_Wide_String
;
527 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
528 renames Super_Append
;
531 (Left
: Wide_Wide_String
;
532 Right
: Bounded_Wide_Wide_String
;
533 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
534 renames Super_Append
;
537 (Left
: Bounded_Wide_Wide_String
;
538 Right
: Wide_Wide_Character
;
539 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
540 renames Super_Append
;
543 (Left
: Wide_Wide_Character
;
544 Right
: Bounded_Wide_Wide_String
;
545 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
546 renames Super_Append
;
549 (Source
: in out Bounded_Wide_Wide_String
;
550 New_Item
: Bounded_Wide_Wide_String
;
551 Drop
: Truncation
:= Error
)
552 renames Super_Append
;
555 (Source
: in out Bounded_Wide_Wide_String
;
556 New_Item
: Wide_Wide_String
;
557 Drop
: Truncation
:= Error
)
558 renames Super_Append
;
561 (Source
: in out Bounded_Wide_Wide_String
;
562 New_Item
: Wide_Wide_Character
;
563 Drop
: Truncation
:= Error
)
564 renames Super_Append
;
567 (Left
: Bounded_Wide_Wide_String
;
568 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
572 (Left
: Bounded_Wide_Wide_String
;
573 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
577 (Left
: Wide_Wide_String
;
578 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
582 (Left
: Bounded_Wide_Wide_String
;
583 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
587 (Left
: Wide_Wide_Character
;
588 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
592 (Source
: Bounded_Wide_Wide_String
;
593 Index
: Positive) return Wide_Wide_Character
594 renames Super_Element
;
596 procedure Replace_Element
597 (Source
: in out Bounded_Wide_Wide_String
;
599 By
: Wide_Wide_Character
)
600 renames Super_Replace_Element
;
603 (Source
: Bounded_Wide_Wide_String
;
605 High
: Natural) return Wide_Wide_String
608 function Bounded_Slice
609 (Source
: Bounded_Wide_Wide_String
;
611 High
: Natural) return Bounded_Wide_Wide_String
614 procedure Bounded_Slice
615 (Source
: Bounded_Wide_Wide_String
;
616 Target
: out Bounded_Wide_Wide_String
;
622 (Left
: Bounded_Wide_Wide_String
;
623 Right
: Bounded_Wide_Wide_String
) return Boolean
627 (Left
: Bounded_Wide_Wide_String
;
628 Right
: Wide_Wide_String
) return Boolean
632 (Left
: Wide_Wide_String
;
633 Right
: Bounded_Wide_Wide_String
) return Boolean
637 (Left
: Bounded_Wide_Wide_String
;
638 Right
: Bounded_Wide_Wide_String
) return Boolean
642 (Left
: Bounded_Wide_Wide_String
;
643 Right
: Wide_Wide_String
) return Boolean
647 (Left
: Wide_Wide_String
;
648 Right
: Bounded_Wide_Wide_String
) return Boolean
652 (Left
: Bounded_Wide_Wide_String
;
653 Right
: Bounded_Wide_Wide_String
) return Boolean
654 renames Less_Or_Equal
;
657 (Left
: Bounded_Wide_Wide_String
;
658 Right
: Wide_Wide_String
) return Boolean
659 renames Less_Or_Equal
;
662 (Left
: Wide_Wide_String
;
663 Right
: Bounded_Wide_Wide_String
) return Boolean
664 renames Less_Or_Equal
;
667 (Left
: Bounded_Wide_Wide_String
;
668 Right
: Bounded_Wide_Wide_String
) return Boolean
672 (Left
: Bounded_Wide_Wide_String
;
673 Right
: Wide_Wide_String
) return Boolean
677 (Left
: Wide_Wide_String
;
678 Right
: Bounded_Wide_Wide_String
) return Boolean
682 (Left
: Bounded_Wide_Wide_String
;
683 Right
: Bounded_Wide_Wide_String
) return Boolean
684 renames Greater_Or_Equal
;
687 (Left
: Bounded_Wide_Wide_String
;
688 Right
: Wide_Wide_String
) return Boolean
689 renames Greater_Or_Equal
;
692 (Left
: Wide_Wide_String
;
693 Right
: Bounded_Wide_Wide_String
) return Boolean
694 renames Greater_Or_Equal
;
697 (Source
: Bounded_Wide_Wide_String
;
698 Pattern
: Wide_Wide_String
;
699 Going
: Direction
:= Forward
;
700 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
701 Wide_Wide_Maps
.Identity
)
706 (Source
: Bounded_Wide_Wide_String
;
707 Pattern
: Wide_Wide_String
;
708 Going
: Direction
:= Forward
;
709 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
714 (Source
: Bounded_Wide_Wide_String
;
715 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
716 Test
: Membership
:= Inside
;
717 Going
: Direction
:= Forward
) return Natural
721 (Source
: Bounded_Wide_Wide_String
;
722 Pattern
: Wide_Wide_String
;
724 Going
: Direction
:= Forward
;
725 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
726 Wide_Wide_Maps
.Identity
)
731 (Source
: Bounded_Wide_Wide_String
;
732 Pattern
: Wide_Wide_String
;
734 Going
: Direction
:= Forward
;
735 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
740 (Source
: Bounded_Wide_Wide_String
;
741 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
743 Test
: Membership
:= Inside
;
744 Going
: Direction
:= Forward
) return Natural
747 function Index_Non_Blank
748 (Source
: Bounded_Wide_Wide_String
;
749 Going
: Direction
:= Forward
) return Natural
750 renames Super_Index_Non_Blank
;
752 function Index_Non_Blank
753 (Source
: Bounded_Wide_Wide_String
;
755 Going
: Direction
:= Forward
) return Natural
756 renames Super_Index_Non_Blank
;
759 (Source
: Bounded_Wide_Wide_String
;
760 Pattern
: Wide_Wide_String
;
761 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
762 Wide_Wide_Maps
.Identity
)
767 (Source
: Bounded_Wide_Wide_String
;
768 Pattern
: Wide_Wide_String
;
769 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
774 (Source
: Bounded_Wide_Wide_String
;
775 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
) return Natural
779 (Source
: Bounded_Wide_Wide_String
;
780 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
783 First
: out Positive;
785 renames Super_Find_Token
;
788 (Source
: Bounded_Wide_Wide_String
;
789 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
791 First
: out Positive;
793 renames Super_Find_Token
;
796 (Source
: Bounded_Wide_Wide_String
;
797 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
798 return Bounded_Wide_Wide_String
799 renames Super_Translate
;
802 (Source
: in out Bounded_Wide_Wide_String
;
803 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
804 renames Super_Translate
;
807 (Source
: Bounded_Wide_Wide_String
;
808 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
809 return Bounded_Wide_Wide_String
810 renames Super_Translate
;
813 (Source
: in out Bounded_Wide_Wide_String
;
814 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
815 renames Super_Translate
;
817 function Replace_Slice
818 (Source
: Bounded_Wide_Wide_String
;
821 By
: Wide_Wide_String
;
822 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
823 renames Super_Replace_Slice
;
825 procedure Replace_Slice
826 (Source
: in out Bounded_Wide_Wide_String
;
829 By
: Wide_Wide_String
;
830 Drop
: Truncation
:= Error
)
831 renames Super_Replace_Slice
;
834 (Source
: Bounded_Wide_Wide_String
;
836 New_Item
: Wide_Wide_String
;
837 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
838 renames Super_Insert
;
841 (Source
: in out Bounded_Wide_Wide_String
;
843 New_Item
: Wide_Wide_String
;
844 Drop
: Truncation
:= Error
)
845 renames Super_Insert
;
848 (Source
: Bounded_Wide_Wide_String
;
850 New_Item
: Wide_Wide_String
;
851 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
852 renames Super_Overwrite
;
855 (Source
: in out Bounded_Wide_Wide_String
;
857 New_Item
: Wide_Wide_String
;
858 Drop
: Truncation
:= Error
)
859 renames Super_Overwrite
;
862 (Source
: Bounded_Wide_Wide_String
;
864 Through
: Natural) return Bounded_Wide_Wide_String
865 renames Super_Delete
;
868 (Source
: in out Bounded_Wide_Wide_String
;
871 renames Super_Delete
;
874 (Source
: Bounded_Wide_Wide_String
;
875 Side
: Trim_End
) return Bounded_Wide_Wide_String
879 (Source
: in out Bounded_Wide_Wide_String
;
884 (Source
: Bounded_Wide_Wide_String
;
885 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
886 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
887 return Bounded_Wide_Wide_String
891 (Source
: in out Bounded_Wide_Wide_String
;
892 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
893 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
897 (Source
: Bounded_Wide_Wide_String
;
899 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
900 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
904 (Source
: in out Bounded_Wide_Wide_String
;
906 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
907 Drop
: Truncation
:= Error
)
911 (Source
: Bounded_Wide_Wide_String
;
913 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
914 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
918 (Source
: in out Bounded_Wide_Wide_String
;
920 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
921 Drop
: Truncation
:= Error
)
926 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
931 Item
: Bounded_Wide_Wide_String
;
932 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
933 renames Super_Replicate
;
935 end Generic_Bounded_Length
;
937 end Ada
.Strings
.Wide_Wide_Bounded
;