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-2005 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, 59 Temple Place - Suite 330, Boston, --
24 -- MA 02111-1307, 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
42 pragma Preelaborate
(Wide_Wide_Bounded
);
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;
54 Null_Bounded_Wide_Wide_String
: constant Bounded_Wide_Wide_String
;
56 subtype Length_Range
is Natural range 0 .. Max_Length
;
58 function Length
(Source
: Bounded_Wide_Wide_String
) return Length_Range
;
60 --------------------------------------------------------
61 -- Conversion, Concatenation, and Selection Functions --
62 --------------------------------------------------------
64 function To_Bounded_Wide_Wide_String
65 (Source
: Wide_Wide_String
;
66 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
68 function To_Wide_Wide_String
69 (Source
: Bounded_Wide_Wide_String
) return Wide_Wide_String
;
71 procedure Set_Bounded_Wide_Wide_String
72 (Target
: out Bounded_Wide_Wide_String
;
73 Source
: Wide_Wide_String
;
74 Drop
: Truncation
:= Error
);
75 pragma Ada_05
(Set_Bounded_Wide_Wide_String
);
78 (Left
: Bounded_Wide_Wide_String
;
79 Right
: Bounded_Wide_Wide_String
;
80 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
83 (Left
: Bounded_Wide_Wide_String
;
84 Right
: Wide_Wide_String
;
85 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
88 (Left
: Wide_Wide_String
;
89 Right
: Bounded_Wide_Wide_String
;
90 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
93 (Left
: Bounded_Wide_Wide_String
;
94 Right
: Wide_Wide_Character
;
95 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
98 (Left
: Wide_Wide_Character
;
99 Right
: Bounded_Wide_Wide_String
;
100 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
103 (Source
: in out Bounded_Wide_Wide_String
;
104 New_Item
: Bounded_Wide_Wide_String
;
105 Drop
: Truncation
:= Error
);
108 (Source
: in out Bounded_Wide_Wide_String
;
109 New_Item
: Wide_Wide_String
;
110 Drop
: Truncation
:= Error
);
113 (Source
: in out Bounded_Wide_Wide_String
;
114 New_Item
: Wide_Wide_Character
;
115 Drop
: Truncation
:= Error
);
118 (Left
: Bounded_Wide_Wide_String
;
119 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
122 (Left
: Bounded_Wide_Wide_String
;
123 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
;
126 (Left
: Wide_Wide_String
;
127 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
130 (Left
: Bounded_Wide_Wide_String
;
131 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
;
134 (Left
: Wide_Wide_Character
;
135 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
138 (Source
: Bounded_Wide_Wide_String
;
139 Index
: Positive) return Wide_Wide_Character
;
141 procedure Replace_Element
142 (Source
: in out Bounded_Wide_Wide_String
;
144 By
: Wide_Wide_Character
);
147 (Source
: Bounded_Wide_Wide_String
;
149 High
: Natural) return Wide_Wide_String
;
151 function Bounded_Slice
152 (Source
: Bounded_Wide_Wide_String
;
154 High
: Natural) return Bounded_Wide_Wide_String
;
155 pragma Ada_05
(Bounded_Slice
);
157 procedure Bounded_Slice
158 (Source
: Bounded_Wide_Wide_String
;
159 Target
: out Bounded_Wide_Wide_String
;
162 pragma Ada_05
(Bounded_Slice
);
165 (Left
: Bounded_Wide_Wide_String
;
166 Right
: Bounded_Wide_Wide_String
) return Boolean;
169 (Left
: Bounded_Wide_Wide_String
;
170 Right
: Wide_Wide_String
) return Boolean;
173 (Left
: Wide_Wide_String
;
174 Right
: Bounded_Wide_Wide_String
) return Boolean;
177 (Left
: Bounded_Wide_Wide_String
;
178 Right
: Bounded_Wide_Wide_String
) return Boolean;
181 (Left
: Bounded_Wide_Wide_String
;
182 Right
: Wide_Wide_String
) return Boolean;
185 (Left
: Wide_Wide_String
;
186 Right
: Bounded_Wide_Wide_String
) return Boolean;
189 (Left
: Bounded_Wide_Wide_String
;
190 Right
: Bounded_Wide_Wide_String
) return Boolean;
193 (Left
: Bounded_Wide_Wide_String
;
194 Right
: Wide_Wide_String
) return Boolean;
197 (Left
: Wide_Wide_String
;
198 Right
: Bounded_Wide_Wide_String
) return Boolean;
201 (Left
: Bounded_Wide_Wide_String
;
202 Right
: Bounded_Wide_Wide_String
) return Boolean;
205 (Left
: Bounded_Wide_Wide_String
;
206 Right
: Wide_Wide_String
) return Boolean;
209 (Left
: Wide_Wide_String
;
210 Right
: Bounded_Wide_Wide_String
) return Boolean;
213 (Left
: Bounded_Wide_Wide_String
;
214 Right
: Bounded_Wide_Wide_String
) return Boolean;
217 (Left
: Bounded_Wide_Wide_String
;
218 Right
: Wide_Wide_String
) return Boolean;
221 (Left
: Wide_Wide_String
;
222 Right
: Bounded_Wide_Wide_String
) return Boolean;
224 ----------------------
225 -- Search Functions --
226 ----------------------
229 (Source
: Bounded_Wide_Wide_String
;
230 Pattern
: Wide_Wide_String
;
231 Going
: Direction
:= Forward
;
232 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
233 Wide_Wide_Maps
.Identity
)
237 (Source
: Bounded_Wide_Wide_String
;
238 Pattern
: Wide_Wide_String
;
239 Going
: Direction
:= Forward
;
240 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
244 (Source
: Bounded_Wide_Wide_String
;
245 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
246 Test
: Membership
:= Inside
;
247 Going
: Direction
:= Forward
) return Natural;
250 (Source
: Bounded_Wide_Wide_String
;
251 Pattern
: Wide_Wide_String
;
253 Going
: Direction
:= Forward
;
254 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
255 Wide_Wide_Maps
.Identity
)
257 pragma Ada_05
(Index
);
260 (Source
: Bounded_Wide_Wide_String
;
261 Pattern
: Wide_Wide_String
;
263 Going
: Direction
:= Forward
;
264 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
266 pragma Ada_05
(Index
);
269 (Source
: Bounded_Wide_Wide_String
;
270 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
272 Test
: Membership
:= Inside
;
273 Going
: Direction
:= Forward
) return Natural;
274 pragma Ada_05
(Index
);
276 function Index_Non_Blank
277 (Source
: Bounded_Wide_Wide_String
;
278 Going
: Direction
:= Forward
) return Natural;
280 function Index_Non_Blank
281 (Source
: Bounded_Wide_Wide_String
;
283 Going
: Direction
:= Forward
) return Natural;
284 pragma Ada_05
(Index_Non_Blank
);
287 (Source
: Bounded_Wide_Wide_String
;
288 Pattern
: Wide_Wide_String
;
289 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
290 Wide_Wide_Maps
.Identity
)
294 (Source
: Bounded_Wide_Wide_String
;
295 Pattern
: Wide_Wide_String
;
296 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
300 (Source
: Bounded_Wide_Wide_String
;
301 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
) return Natural;
304 (Source
: Bounded_Wide_Wide_String
;
305 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
307 First
: out Positive;
310 ------------------------------------
311 -- String Translation Subprograms --
312 ------------------------------------
315 (Source
: Bounded_Wide_Wide_String
;
316 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
317 return Bounded_Wide_Wide_String
;
320 (Source
: in out Bounded_Wide_Wide_String
;
321 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
);
324 (Source
: Bounded_Wide_Wide_String
;
325 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
326 return Bounded_Wide_Wide_String
;
329 (Source
: in out Bounded_Wide_Wide_String
;
330 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
);
332 ---------------------------------------
333 -- String Transformation Subprograms --
334 ---------------------------------------
336 function Replace_Slice
337 (Source
: Bounded_Wide_Wide_String
;
340 By
: Wide_Wide_String
;
341 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
343 procedure Replace_Slice
344 (Source
: in out Bounded_Wide_Wide_String
;
347 By
: Wide_Wide_String
;
348 Drop
: Truncation
:= Error
);
351 (Source
: Bounded_Wide_Wide_String
;
353 New_Item
: Wide_Wide_String
;
354 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
357 (Source
: in out Bounded_Wide_Wide_String
;
359 New_Item
: Wide_Wide_String
;
360 Drop
: Truncation
:= Error
);
363 (Source
: Bounded_Wide_Wide_String
;
365 New_Item
: Wide_Wide_String
;
366 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
369 (Source
: in out Bounded_Wide_Wide_String
;
371 New_Item
: Wide_Wide_String
;
372 Drop
: Truncation
:= Error
);
375 (Source
: Bounded_Wide_Wide_String
;
377 Through
: Natural) return Bounded_Wide_Wide_String
;
380 (Source
: in out Bounded_Wide_Wide_String
;
384 ---------------------------------
385 -- String Selector Subprograms --
386 ---------------------------------
389 (Source
: Bounded_Wide_Wide_String
;
390 Side
: Trim_End
) return Bounded_Wide_Wide_String
;
393 (Source
: in out Bounded_Wide_Wide_String
;
397 (Source
: Bounded_Wide_Wide_String
;
398 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
399 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
400 return Bounded_Wide_Wide_String
;
403 (Source
: in out Bounded_Wide_Wide_String
;
404 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
405 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
);
408 (Source
: Bounded_Wide_Wide_String
;
410 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
411 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
414 (Source
: in out Bounded_Wide_Wide_String
;
416 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
417 Drop
: Truncation
:= Error
);
420 (Source
: Bounded_Wide_Wide_String
;
422 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
423 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
426 (Source
: in out Bounded_Wide_Wide_String
;
428 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
429 Drop
: Truncation
:= Error
);
431 ------------------------------------
432 -- String Constructor Subprograms --
433 ------------------------------------
437 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
;
441 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
;
445 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
;
449 Item
: Wide_Wide_Character
;
450 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
454 Item
: Wide_Wide_String
;
455 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
459 Item
: Bounded_Wide_Wide_String
;
460 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
;
463 -- Most of the implementation is in the separate non generic package
464 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
465 -- derived from type Wide_Wide_Superbounded.Super_String with the
466 -- maximum length constraint. In almost all cases, the routines in
467 -- Wide_Wide_Superbounded can be called with no requirement to pass the
468 -- maximum length explicitly, since there is at least one
469 -- Bounded_Wide_Wide_String argument from which the maximum length can
470 -- be obtained. For all such routines, the implementation in this
471 -- private part is simply renaming of the corresponding routine in the
472 -- super bouded package.
474 -- The five exceptions are the * and Replicate routines operating on
475 -- character values. For these cases, we have a routine in the body
476 -- that calls the superbounded routine passing the maximum length
477 -- explicitly as an extra parameter.
479 type Bounded_Wide_Wide_String
is
480 new Wide_Wide_Superbounded
.Super_String
(Max_Length
);
481 -- Deriving Bounded_Wide_Wide_String from
482 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
483 -- that the type Bounded_Wide_Wide_String declared in the generic
484 -- instantiation is compatible with the Super_String type declared in
485 -- the Wide_Wide_Superbounded package.
487 Null_Bounded_Wide_Wide_String
: constant Bounded_Wide_Wide_String
:=
488 (Max_Length
=> Max_Length
,
492 Wide_Wide_Superbounded
.Wide_Wide_NUL
));
494 pragma Inline
(To_Bounded_Wide_Wide_String
);
496 procedure Set_Bounded_Wide_Wide_String
497 (Target
: out Bounded_Wide_Wide_String
;
498 Source
: Wide_Wide_String
;
499 Drop
: Truncation
:= Error
)
500 renames Set_Super_String
;
503 (Source
: Bounded_Wide_Wide_String
) return Length_Range
504 renames Super_Length
;
506 function To_Wide_Wide_String
507 (Source
: Bounded_Wide_Wide_String
) return Wide_Wide_String
508 renames Super_To_String
;
511 (Left
: Bounded_Wide_Wide_String
;
512 Right
: Bounded_Wide_Wide_String
;
513 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
514 renames Super_Append
;
517 (Left
: Bounded_Wide_Wide_String
;
518 Right
: Wide_Wide_String
;
519 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
520 renames Super_Append
;
523 (Left
: Wide_Wide_String
;
524 Right
: Bounded_Wide_Wide_String
;
525 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
526 renames Super_Append
;
529 (Left
: Bounded_Wide_Wide_String
;
530 Right
: Wide_Wide_Character
;
531 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
532 renames Super_Append
;
535 (Left
: Wide_Wide_Character
;
536 Right
: Bounded_Wide_Wide_String
;
537 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
538 renames Super_Append
;
541 (Source
: in out Bounded_Wide_Wide_String
;
542 New_Item
: Bounded_Wide_Wide_String
;
543 Drop
: Truncation
:= Error
)
544 renames Super_Append
;
547 (Source
: in out Bounded_Wide_Wide_String
;
548 New_Item
: Wide_Wide_String
;
549 Drop
: Truncation
:= Error
)
550 renames Super_Append
;
553 (Source
: in out Bounded_Wide_Wide_String
;
554 New_Item
: Wide_Wide_Character
;
555 Drop
: Truncation
:= Error
)
556 renames Super_Append
;
559 (Left
: Bounded_Wide_Wide_String
;
560 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
564 (Left
: Bounded_Wide_Wide_String
;
565 Right
: Wide_Wide_String
) return Bounded_Wide_Wide_String
569 (Left
: Wide_Wide_String
;
570 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
574 (Left
: Bounded_Wide_Wide_String
;
575 Right
: Wide_Wide_Character
) return Bounded_Wide_Wide_String
579 (Left
: Wide_Wide_Character
;
580 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
584 (Source
: Bounded_Wide_Wide_String
;
585 Index
: Positive) return Wide_Wide_Character
586 renames Super_Element
;
588 procedure Replace_Element
589 (Source
: in out Bounded_Wide_Wide_String
;
591 By
: Wide_Wide_Character
)
592 renames Super_Replace_Element
;
595 (Source
: Bounded_Wide_Wide_String
;
597 High
: Natural) return Wide_Wide_String
600 function Bounded_Slice
601 (Source
: Bounded_Wide_Wide_String
;
603 High
: Natural) return Bounded_Wide_Wide_String
606 procedure Bounded_Slice
607 (Source
: Bounded_Wide_Wide_String
;
608 Target
: out Bounded_Wide_Wide_String
;
614 (Left
: Bounded_Wide_Wide_String
;
615 Right
: Bounded_Wide_Wide_String
) return Boolean
619 (Left
: Bounded_Wide_Wide_String
;
620 Right
: Wide_Wide_String
) return Boolean
624 (Left
: Wide_Wide_String
;
625 Right
: Bounded_Wide_Wide_String
) return Boolean
629 (Left
: Bounded_Wide_Wide_String
;
630 Right
: Bounded_Wide_Wide_String
) return Boolean
634 (Left
: Bounded_Wide_Wide_String
;
635 Right
: Wide_Wide_String
) return Boolean
639 (Left
: Wide_Wide_String
;
640 Right
: Bounded_Wide_Wide_String
) return Boolean
644 (Left
: Bounded_Wide_Wide_String
;
645 Right
: Bounded_Wide_Wide_String
) return Boolean
646 renames Less_Or_Equal
;
649 (Left
: Bounded_Wide_Wide_String
;
650 Right
: Wide_Wide_String
) return Boolean
651 renames Less_Or_Equal
;
654 (Left
: Wide_Wide_String
;
655 Right
: Bounded_Wide_Wide_String
) return Boolean
656 renames Less_Or_Equal
;
659 (Left
: Bounded_Wide_Wide_String
;
660 Right
: Bounded_Wide_Wide_String
) return Boolean
664 (Left
: Bounded_Wide_Wide_String
;
665 Right
: Wide_Wide_String
) return Boolean
669 (Left
: Wide_Wide_String
;
670 Right
: Bounded_Wide_Wide_String
) return Boolean
674 (Left
: Bounded_Wide_Wide_String
;
675 Right
: Bounded_Wide_Wide_String
) return Boolean
676 renames Greater_Or_Equal
;
679 (Left
: Bounded_Wide_Wide_String
;
680 Right
: Wide_Wide_String
) return Boolean
681 renames Greater_Or_Equal
;
684 (Left
: Wide_Wide_String
;
685 Right
: Bounded_Wide_Wide_String
) return Boolean
686 renames Greater_Or_Equal
;
689 (Source
: Bounded_Wide_Wide_String
;
690 Pattern
: Wide_Wide_String
;
691 Going
: Direction
:= Forward
;
692 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
693 Wide_Wide_Maps
.Identity
)
698 (Source
: Bounded_Wide_Wide_String
;
699 Pattern
: Wide_Wide_String
;
700 Going
: Direction
:= Forward
;
701 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
706 (Source
: Bounded_Wide_Wide_String
;
707 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
708 Test
: Membership
:= Inside
;
709 Going
: Direction
:= Forward
) return Natural
713 (Source
: Bounded_Wide_Wide_String
;
714 Pattern
: Wide_Wide_String
;
716 Going
: Direction
:= Forward
;
717 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
718 Wide_Wide_Maps
.Identity
)
723 (Source
: Bounded_Wide_Wide_String
;
724 Pattern
: Wide_Wide_String
;
726 Going
: Direction
:= Forward
;
727 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
732 (Source
: Bounded_Wide_Wide_String
;
733 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
735 Test
: Membership
:= Inside
;
736 Going
: Direction
:= Forward
) return Natural
739 function Index_Non_Blank
740 (Source
: Bounded_Wide_Wide_String
;
741 Going
: Direction
:= Forward
) return Natural
742 renames Super_Index_Non_Blank
;
744 function Index_Non_Blank
745 (Source
: Bounded_Wide_Wide_String
;
747 Going
: Direction
:= Forward
) return Natural
748 renames Super_Index_Non_Blank
;
751 (Source
: Bounded_Wide_Wide_String
;
752 Pattern
: Wide_Wide_String
;
753 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
:=
754 Wide_Wide_Maps
.Identity
)
759 (Source
: Bounded_Wide_Wide_String
;
760 Pattern
: Wide_Wide_String
;
761 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
766 (Source
: Bounded_Wide_Wide_String
;
767 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
) return Natural
771 (Source
: Bounded_Wide_Wide_String
;
772 Set
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
774 First
: out Positive;
776 renames Super_Find_Token
;
779 (Source
: Bounded_Wide_Wide_String
;
780 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
781 return Bounded_Wide_Wide_String
782 renames Super_Translate
;
785 (Source
: in out Bounded_Wide_Wide_String
;
786 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping
)
787 renames Super_Translate
;
790 (Source
: Bounded_Wide_Wide_String
;
791 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
792 return Bounded_Wide_Wide_String
793 renames Super_Translate
;
796 (Source
: in out Bounded_Wide_Wide_String
;
797 Mapping
: Wide_Wide_Maps
.Wide_Wide_Character_Mapping_Function
)
798 renames Super_Translate
;
800 function Replace_Slice
801 (Source
: Bounded_Wide_Wide_String
;
804 By
: Wide_Wide_String
;
805 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
806 renames Super_Replace_Slice
;
808 procedure Replace_Slice
809 (Source
: in out Bounded_Wide_Wide_String
;
812 By
: Wide_Wide_String
;
813 Drop
: Truncation
:= Error
)
814 renames Super_Replace_Slice
;
817 (Source
: Bounded_Wide_Wide_String
;
819 New_Item
: Wide_Wide_String
;
820 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
821 renames Super_Insert
;
824 (Source
: in out Bounded_Wide_Wide_String
;
826 New_Item
: Wide_Wide_String
;
827 Drop
: Truncation
:= Error
)
828 renames Super_Insert
;
831 (Source
: Bounded_Wide_Wide_String
;
833 New_Item
: Wide_Wide_String
;
834 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
835 renames Super_Overwrite
;
838 (Source
: in out Bounded_Wide_Wide_String
;
840 New_Item
: Wide_Wide_String
;
841 Drop
: Truncation
:= Error
)
842 renames Super_Overwrite
;
845 (Source
: Bounded_Wide_Wide_String
;
847 Through
: Natural) return Bounded_Wide_Wide_String
848 renames Super_Delete
;
851 (Source
: in out Bounded_Wide_Wide_String
;
854 renames Super_Delete
;
857 (Source
: Bounded_Wide_Wide_String
;
858 Side
: Trim_End
) return Bounded_Wide_Wide_String
862 (Source
: in out Bounded_Wide_Wide_String
;
867 (Source
: Bounded_Wide_Wide_String
;
868 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
869 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
870 return Bounded_Wide_Wide_String
874 (Source
: in out Bounded_Wide_Wide_String
;
875 Left
: Wide_Wide_Maps
.Wide_Wide_Character_Set
;
876 Right
: Wide_Wide_Maps
.Wide_Wide_Character_Set
)
880 (Source
: Bounded_Wide_Wide_String
;
882 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
883 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
887 (Source
: in out Bounded_Wide_Wide_String
;
889 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
890 Drop
: Truncation
:= Error
)
894 (Source
: Bounded_Wide_Wide_String
;
896 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
897 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
901 (Source
: in out Bounded_Wide_Wide_String
;
903 Pad
: Wide_Wide_Character
:= Wide_Wide_Space
;
904 Drop
: Truncation
:= Error
)
909 Right
: Bounded_Wide_Wide_String
) return Bounded_Wide_Wide_String
914 Item
: Bounded_Wide_Wide_String
;
915 Drop
: Truncation
:= Error
) return Bounded_Wide_Wide_String
916 renames Super_Replicate
;
918 end Generic_Bounded_Length
;
920 end Ada
.Strings
.Wide_Wide_Bounded
;