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-2006, Free Software Foundation, Inc. --
11 -- This specification is derived from the Ada Reference Manual for use with --
12 -- GNAT. The copyright notice above, and the license provisions that follow --
13 -- apply solely to the contents of the part following the private keyword. --
15 -- GNAT is free software; you can redistribute it and/or modify it under --
16 -- terms of the GNU General Public License as published by the Free Soft- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
24 -- Boston, MA 02110-1301, USA. --
26 -- As a special exception, if other files instantiate generics from this --
27 -- unit, or you link this unit with other files to produce an executable, --
28 -- this unit does not by itself cause the resulting executable to be --
29 -- covered by the GNU General Public License. This exception does not --
30 -- however invalidate any other reasons why the executable file might be --
31 -- covered by the GNU Public License. --
33 -- GNAT was originally developed by the GNAT team at New York University. --
34 -- Extensive contributions were provided by Ada Core Technologies Inc. --
36 ------------------------------------------------------------------------------
38 with Ada
.Strings
.Wide_Wide_Maps
;
39 with Ada
.Strings
.Wide_Wide_Superbounded
;
41 package Ada
.Strings
.Wide_Wide_Bounded
is
46 -- Maximum length of a Bounded_Wide_Wide_String
48 package Generic_Bounded_Length
is
50 Max_Length
: constant Positive := Max
;
52 type Bounded_Wide_Wide_String
is private;
53 pragma Preelaborable_Initialization
(Bounded_Wide_Wide_String
);
55 Null_Bounded_Wide_Wide_String
: constant Bounded_Wide_Wide_String
;
57 subtype Length_Range
is Natural range 0 .. Max_Length
;
59 function Length
(Source
: Bounded_Wide_Wide_String
) return Length_Range
;
61 --------------------------------------------------------
62 -- Conversion, Concatenation, and Selection Functions --
63 --------------------------------------------------------
65 function To_Bounded_Wide_Wide_String
66 (Source
: Wide_Wide_String
;
67 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
69 function To_Wide_Wide_String
70 (Source
: Bounded_Wide_Wide_String
) return Wide_Wide_String
;
72 procedure Set_Bounded_Wide_Wide_String
73 (Target
: out Bounded_Wide_Wide_String
;
74 Source
: Wide_Wide_String
;
75 Drop
: Truncation
:= Error
);
76 pragma Ada_05
(Set_Bounded_Wide_Wide_String
);
79 (Left
: Bounded_Wide_Wide_String
;
80 Right
: Bounded_Wide_Wide_String
;
81 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
84 (Left
: Bounded_Wide_Wide_String
;
85 Right
: Wide_Wide_String
;
86 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
89 (Left
: Wide_Wide_String
;
90 Right
: Bounded_Wide_Wide_String
;
91 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
94 (Left
: Bounded_Wide_Wide_String
;
95 Right
: Wide_Wide_Character
;
96 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
99 (Left
: Wide_Wide_Character
;
100 Right
: Bounded_Wide_Wide_String
;
101 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
104 (Source
: in out Bounded_Wide_Wide_String
;
105 New_Item
: Bounded_Wide_Wide_String
;
106 Drop
: Truncation
:= Error
);
109 (Source
: in out Bounded_Wide_Wide_String
;
110 New_Item
: Wide_Wide_String
;
111 Drop
: Truncation
:= Error
);
114 (Source
: in out Bounded_Wide_Wide_String
;
115 New_Item
: Wide_Wide_Character
;
116 Drop
: Truncation
:= Error
);
119 (Left
: Bounded_Wide_Wide_String
;
120 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
123 (Left
: Bounded_Wide_Wide_String
;
124 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
;
127 (Left
: Wide_Wide_String
;
128 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
131 (Left
: Bounded_Wide_Wide_String
;
132 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
;
135 (Left
: Wide_Wide_Character
;
136 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
139 (Source
: Bounded_Wide_Wide_String
;
140 Index
: Positive) return Wide_Wide_Character
;
142 procedure Replace_Element
143 (Source
: in out Bounded_Wide_Wide_String
;
145 By
: Wide_Wide_Character
);
148 (Source
: Bounded_Wide_Wide_String
;
150 High
: Natural) return Wide_Wide_String
;
152 function Bounded_Slice
153 (Source
: Bounded_Wide_Wide_String
;
155 High
: Natural) return Bounded_Wide_Wide_String
;
156 pragma Ada_05
(Bounded_Slice
);
158 procedure Bounded_Slice
159 (Source
: Bounded_Wide_Wide_String
;
160 Target
: out Bounded_Wide_Wide_String
;
163 pragma Ada_05
(Bounded_Slice
);
166 (Left
: Bounded_Wide_Wide_String
;
167 Right
: Bounded_Wide_Wide_String
) return Boolean;
170 (Left
: Bounded_Wide_Wide_String
;
171 Right
: Wide_Wide_String
) return Boolean;
174 (Left
: Wide_Wide_String
;
175 Right
: Bounded_Wide_Wide_String
) return Boolean;
178 (Left
: Bounded_Wide_Wide_String
;
179 Right
: Bounded_Wide_Wide_String
) return Boolean;
182 (Left
: Bounded_Wide_Wide_String
;
183 Right
: Wide_Wide_String
) return Boolean;
186 (Left
: Wide_Wide_String
;
187 Right
: Bounded_Wide_Wide_String
) return Boolean;
190 (Left
: Bounded_Wide_Wide_String
;
191 Right
: Bounded_Wide_Wide_String
) return Boolean;
194 (Left
: Bounded_Wide_Wide_String
;
195 Right
: Wide_Wide_String
) return Boolean;
198 (Left
: Wide_Wide_String
;
199 Right
: Bounded_Wide_Wide_String
) return Boolean;
202 (Left
: Bounded_Wide_Wide_String
;
203 Right
: Bounded_Wide_Wide_String
) return Boolean;
206 (Left
: Bounded_Wide_Wide_String
;
207 Right
: Wide_Wide_String
) return Boolean;
210 (Left
: Wide_Wide_String
;
211 Right
: Bounded_Wide_Wide_String
) return Boolean;
214 (Left
: Bounded_Wide_Wide_String
;
215 Right
: Bounded_Wide_Wide_String
) return Boolean;
218 (Left
: Bounded_Wide_Wide_String
;
219 Right
: Wide_Wide_String
) return Boolean;
222 (Left
: Wide_Wide_String
;
223 Right
: Bounded_Wide_Wide_String
) return Boolean;
225 ----------------------
226 -- Search Functions --
227 ----------------------
230 (Source
: Bounded_Wide_Wide_String
;
231 Pattern
: Wide_Wide_String
;
232 Going
: Direction
:= Forward
;
233 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
234 Wide_Wide_Maps
.Identity
)
238 (Source
: Bounded_Wide_Wide_String
;
239 Pattern
: Wide_Wide_String
;
240 Going
: Direction
:= Forward
;
241 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
245 (Source
: Bounded_Wide_Wide_String
;
246 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
247 Test
: Membership
:= Inside
;
248 Going
: Direction
:= Forward
) return Natural;
251 (Source
: Bounded_Wide_Wide_String
;
252 Pattern
: Wide_Wide_String
;
254 Going
: Direction
:= Forward
;
255 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
256 Wide_Wide_Maps
.Identity
)
258 pragma Ada_05
(Index
);
261 (Source
: Bounded_Wide_Wide_String
;
262 Pattern
: Wide_Wide_String
;
264 Going
: Direction
:= Forward
;
265 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
267 pragma Ada_05
(Index
);
270 (Source
: Bounded_Wide_Wide_String
;
271 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
273 Test
: Membership
:= Inside
;
274 Going
: Direction
:= Forward
) return Natural;
275 pragma Ada_05
(Index
);
277 function Index_Non_Blank
278 (Source
: Bounded_Wide_Wide_String
;
279 Going
: Direction
:= Forward
) return Natural;
281 function Index_Non_Blank
282 (Source
: Bounded_Wide_Wide_String
;
284 Going
: Direction
:= Forward
) return Natural;
285 pragma Ada_05
(Index_Non_Blank
);
288 (Source
: Bounded_Wide_Wide_String
;
289 Pattern
: Wide_Wide_String
;
290 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
291 Wide_Wide_Maps
.Identity
)
295 (Source
: Bounded_Wide_Wide_String
;
296 Pattern
: Wide_Wide_String
;
297 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
301 (Source
: Bounded_Wide_Wide_String
;
302 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
) return Natural;
305 (Source
: Bounded_Wide_Wide_String
;
306 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
308 First
: out Positive;
311 ------------------------------------
312 -- String Translation Subprograms --
313 ------------------------------------
316 (Source
: Bounded_Wide_Wide_String
;
317 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
318 return Bounded_Wide_Wide_String
;
321 (Source
: in out Bounded_Wide_Wide_String
;
322 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
);
325 (Source
: Bounded_Wide_Wide_String
;
326 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
327 return Bounded_Wide_Wide_String
;
330 (Source
: in out Bounded_Wide_Wide_String
;
331 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
);
333 ---------------------------------------
334 -- String Transformation Subprograms --
335 ---------------------------------------
337 function Replace_Slice
338 (Source
: Bounded_Wide_Wide_String
;
341 By
: Wide_Wide_String
;
342 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
344 procedure Replace_Slice
345 (Source
: in out Bounded_Wide_Wide_String
;
348 By
: Wide_Wide_String
;
349 Drop
: Truncation
:= Error
);
352 (Source
: Bounded_Wide_Wide_String
;
354 New_Item
: Wide_Wide_String
;
355 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
358 (Source
: in out Bounded_Wide_Wide_String
;
360 New_Item
: Wide_Wide_String
;
361 Drop
: Truncation
:= Error
);
364 (Source
: Bounded_Wide_Wide_String
;
366 New_Item
: Wide_Wide_String
;
367 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
370 (Source
: in out Bounded_Wide_Wide_String
;
372 New_Item
: Wide_Wide_String
;
373 Drop
: Truncation
:= Error
);
376 (Source
: Bounded_Wide_Wide_String
;
378 Through
: Natural) return Bounded_Wide_Wide_String
;
381 (Source
: in out Bounded_Wide_Wide_String
;
385 ---------------------------------
386 -- String Selector Subprograms --
387 ---------------------------------
390 (Source
: Bounded_Wide_Wide_String
;
391 Side
: Trim_End
) return Bounded_Wide_Wide_String
;
394 (Source
: in out Bounded_Wide_Wide_String
;
398 (Source
: Bounded_Wide_Wide_String
;
399 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
400 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
401 return Bounded_Wide_Wide_String
;
404 (Source
: in out Bounded_Wide_Wide_String
;
405 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
406 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
);
409 (Source
: Bounded_Wide_Wide_String
;
411 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
412 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
415 (Source
: in out Bounded_Wide_Wide_String
;
417 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
418 Drop
: Truncation
:= Error
);
421 (Source
: Bounded_Wide_Wide_String
;
423 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
424 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
427 (Source
: in out Bounded_Wide_Wide_String
;
429 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
430 Drop
: Truncation
:= Error
);
432 ------------------------------------
433 -- String Constructor Subprograms --
434 ------------------------------------
438 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
;
442 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
;
446 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
450 Item
: Wide_Wide_Character
;
451 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
455 Item
: Wide_Wide_String
;
456 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
460 Item
: Bounded_Wide_Wide_String
;
461 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
464 -- Most of the implementation is in the separate non generic package
465 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
466 -- derived from type Wide_Wide_Superbounded.Super_String with the
467 -- maximum length constraint. In almost all cases, the routines in
468 -- Wide_Wide_Superbounded can be called with no requirement to pass the
469 -- maximum length explicitly, since there is at least one
470 -- Bounded_Wide_Wide_String argument from which the maximum length can
471 -- be obtained. For all such routines, the implementation in this
472 -- private part is simply renaming of the corresponding routine in the
473 -- super bouded package.
475 -- The five exceptions are the * and Replicate routines operating on
476 -- character values. For these cases, we have a routine in the body
477 -- that calls the superbounded routine passing the maximum length
478 -- explicitly as an extra parameter.
480 type Bounded_Wide_Wide_String
is
481 new Wide_Wide_Superbounded
.Super_String
(Max_Length
);
482 -- Deriving Bounded_Wide_Wide_String from
483 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
484 -- that the type Bounded_Wide_Wide_String declared in the generic
485 -- instantiation is compatible with the Super_String type declared in
486 -- the Wide_Wide_Superbounded package.
488 Null_Bounded_Wide_Wide_String
: constant Bounded_Wide_Wide_String
:=
489 (Max_Length
=> Max_Length
,
493 Wide_Wide_Superbounded
.Wide_Wide_NUL
));
495 pragma Inline
(To_Bounded_Wide_Wide_String
);
497 procedure Set_Bounded_Wide_Wide_String
498 (Target
: out Bounded_Wide_Wide_String
;
499 Source
: Wide_Wide_String
;
500 Drop
: Truncation
:= Error
)
501 renames Set_Super_String
;
504 (Source
: Bounded_Wide_Wide_String
) return Length_Range
505 renames Super_Length
;
507 function To_Wide_Wide_String
508 (Source
: Bounded_Wide_Wide_String
) return Wide_Wide_String
509 renames Super_To_String
;
512 (Left
: Bounded_Wide_Wide_String
;
513 Right
: Bounded_Wide_Wide_String
;
514 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
515 renames Super_Append
;
518 (Left
: Bounded_Wide_Wide_String
;
519 Right
: Wide_Wide_String
;
520 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
521 renames Super_Append
;
524 (Left
: Wide_Wide_String
;
525 Right
: Bounded_Wide_Wide_String
;
526 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
527 renames Super_Append
;
530 (Left
: Bounded_Wide_Wide_String
;
531 Right
: Wide_Wide_Character
;
532 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
533 renames Super_Append
;
536 (Left
: Wide_Wide_Character
;
537 Right
: Bounded_Wide_Wide_String
;
538 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
539 renames Super_Append
;
542 (Source
: in out Bounded_Wide_Wide_String
;
543 New_Item
: Bounded_Wide_Wide_String
;
544 Drop
: Truncation
:= Error
)
545 renames Super_Append
;
548 (Source
: in out Bounded_Wide_Wide_String
;
549 New_Item
: Wide_Wide_String
;
550 Drop
: Truncation
:= Error
)
551 renames Super_Append
;
554 (Source
: in out Bounded_Wide_Wide_String
;
555 New_Item
: Wide_Wide_Character
;
556 Drop
: Truncation
:= Error
)
557 renames Super_Append
;
560 (Left
: Bounded_Wide_Wide_String
;
561 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
565 (Left
: Bounded_Wide_Wide_String
;
566 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
570 (Left
: Wide_Wide_String
;
571 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
575 (Left
: Bounded_Wide_Wide_String
;
576 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
580 (Left
: Wide_Wide_Character
;
581 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
585 (Source
: Bounded_Wide_Wide_String
;
586 Index
: Positive) return Wide_Wide_Character
587 renames Super_Element
;
589 procedure Replace_Element
590 (Source
: in out Bounded_Wide_Wide_String
;
592 By
: Wide_Wide_Character
)
593 renames Super_Replace_Element
;
596 (Source
: Bounded_Wide_Wide_String
;
598 High
: Natural) return Wide_Wide_String
601 function Bounded_Slice
602 (Source
: Bounded_Wide_Wide_String
;
604 High
: Natural) return Bounded_Wide_Wide_String
607 procedure Bounded_Slice
608 (Source
: Bounded_Wide_Wide_String
;
609 Target
: out Bounded_Wide_Wide_String
;
615 (Left
: Bounded_Wide_Wide_String
;
616 Right
: Bounded_Wide_Wide_String
) return Boolean
620 (Left
: Bounded_Wide_Wide_String
;
621 Right
: Wide_Wide_String
) return Boolean
625 (Left
: Wide_Wide_String
;
626 Right
: Bounded_Wide_Wide_String
) return Boolean
630 (Left
: Bounded_Wide_Wide_String
;
631 Right
: Bounded_Wide_Wide_String
) return Boolean
635 (Left
: Bounded_Wide_Wide_String
;
636 Right
: Wide_Wide_String
) return Boolean
640 (Left
: Wide_Wide_String
;
641 Right
: Bounded_Wide_Wide_String
) return Boolean
645 (Left
: Bounded_Wide_Wide_String
;
646 Right
: Bounded_Wide_Wide_String
) return Boolean
647 renames Less_Or_Equal
;
650 (Left
: Bounded_Wide_Wide_String
;
651 Right
: Wide_Wide_String
) return Boolean
652 renames Less_Or_Equal
;
655 (Left
: Wide_Wide_String
;
656 Right
: Bounded_Wide_Wide_String
) return Boolean
657 renames Less_Or_Equal
;
660 (Left
: Bounded_Wide_Wide_String
;
661 Right
: Bounded_Wide_Wide_String
) return Boolean
665 (Left
: Bounded_Wide_Wide_String
;
666 Right
: Wide_Wide_String
) return Boolean
670 (Left
: Wide_Wide_String
;
671 Right
: Bounded_Wide_Wide_String
) return Boolean
675 (Left
: Bounded_Wide_Wide_String
;
676 Right
: Bounded_Wide_Wide_String
) return Boolean
677 renames Greater_Or_Equal
;
680 (Left
: Bounded_Wide_Wide_String
;
681 Right
: Wide_Wide_String
) return Boolean
682 renames Greater_Or_Equal
;
685 (Left
: Wide_Wide_String
;
686 Right
: Bounded_Wide_Wide_String
) return Boolean
687 renames Greater_Or_Equal
;
690 (Source
: Bounded_Wide_Wide_String
;
691 Pattern
: Wide_Wide_String
;
692 Going
: Direction
:= Forward
;
693 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
694 Wide_Wide_Maps
.Identity
)
699 (Source
: Bounded_Wide_Wide_String
;
700 Pattern
: Wide_Wide_String
;
701 Going
: Direction
:= Forward
;
702 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
707 (Source
: Bounded_Wide_Wide_String
;
708 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
709 Test
: Membership
:= Inside
;
710 Going
: Direction
:= Forward
) return Natural
714 (Source
: Bounded_Wide_Wide_String
;
715 Pattern
: Wide_Wide_String
;
717 Going
: Direction
:= Forward
;
718 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
719 Wide_Wide_Maps
.Identity
)
724 (Source
: Bounded_Wide_Wide_String
;
725 Pattern
: Wide_Wide_String
;
727 Going
: Direction
:= Forward
;
728 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
733 (Source
: Bounded_Wide_Wide_String
;
734 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
736 Test
: Membership
:= Inside
;
737 Going
: Direction
:= Forward
) return Natural
740 function Index_Non_Blank
741 (Source
: Bounded_Wide_Wide_String
;
742 Going
: Direction
:= Forward
) return Natural
743 renames Super_Index_Non_Blank
;
745 function Index_Non_Blank
746 (Source
: Bounded_Wide_Wide_String
;
748 Going
: Direction
:= Forward
) return Natural
749 renames Super_Index_Non_Blank
;
752 (Source
: Bounded_Wide_Wide_String
;
753 Pattern
: Wide_Wide_String
;
754 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
755 Wide_Wide_Maps
.Identity
)
760 (Source
: Bounded_Wide_Wide_String
;
761 Pattern
: Wide_Wide_String
;
762 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
767 (Source
: Bounded_Wide_Wide_String
;
768 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
) return Natural
772 (Source
: Bounded_Wide_Wide_String
;
773 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
775 First
: out Positive;
777 renames Super_Find_Token
;
780 (Source
: Bounded_Wide_Wide_String
;
781 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
782 return Bounded_Wide_Wide_String
783 renames Super_Translate
;
786 (Source
: in out Bounded_Wide_Wide_String
;
787 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
788 renames Super_Translate
;
791 (Source
: Bounded_Wide_Wide_String
;
792 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
793 return Bounded_Wide_Wide_String
794 renames Super_Translate
;
797 (Source
: in out Bounded_Wide_Wide_String
;
798 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
799 renames Super_Translate
;
801 function Replace_Slice
802 (Source
: Bounded_Wide_Wide_String
;
805 By
: Wide_Wide_String
;
806 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
807 renames Super_Replace_Slice
;
809 procedure Replace_Slice
810 (Source
: in out Bounded_Wide_Wide_String
;
813 By
: Wide_Wide_String
;
814 Drop
: Truncation
:= Error
)
815 renames Super_Replace_Slice
;
818 (Source
: Bounded_Wide_Wide_String
;
820 New_Item
: Wide_Wide_String
;
821 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
822 renames Super_Insert
;
825 (Source
: in out Bounded_Wide_Wide_String
;
827 New_Item
: Wide_Wide_String
;
828 Drop
: Truncation
:= Error
)
829 renames Super_Insert
;
832 (Source
: Bounded_Wide_Wide_String
;
834 New_Item
: Wide_Wide_String
;
835 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
836 renames Super_Overwrite
;
839 (Source
: in out Bounded_Wide_Wide_String
;
841 New_Item
: Wide_Wide_String
;
842 Drop
: Truncation
:= Error
)
843 renames Super_Overwrite
;
846 (Source
: Bounded_Wide_Wide_String
;
848 Through
: Natural) return Bounded_Wide_Wide_String
849 renames Super_Delete
;
852 (Source
: in out Bounded_Wide_Wide_String
;
855 renames Super_Delete
;
858 (Source
: Bounded_Wide_Wide_String
;
859 Side
: Trim_End
) return Bounded_Wide_Wide_String
863 (Source
: in out Bounded_Wide_Wide_String
;
868 (Source
: Bounded_Wide_Wide_String
;
869 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
870 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
871 return Bounded_Wide_Wide_String
875 (Source
: in out Bounded_Wide_Wide_String
;
876 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
877 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
881 (Source
: Bounded_Wide_Wide_String
;
883 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
884 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
888 (Source
: in out Bounded_Wide_Wide_String
;
890 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
891 Drop
: Truncation
:= Error
)
895 (Source
: Bounded_Wide_Wide_String
;
897 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
898 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
902 (Source
: in out Bounded_Wide_Wide_String
;
904 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
905 Drop
: Truncation
:= Error
)
910 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
915 Item
: Bounded_Wide_Wide_String
;
916 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
917 renames Super_Replicate
;
919 end Generic_Bounded_Length
;
921 end Ada
.Strings
.Wide_Wide_Bounded
;