Daily bump.
[official-gcc.git] / gcc / ada / a-stzbou.ads
blob0490147e7844ecef3b3cfe4b769e4ddb1bcc5aca
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
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 --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 1992-2006, Free Software Foundation, Inc. --
10 -- --
11 -- This specification is derived from the Ada Reference Manual for use with --
12 -- GNAT. The copyright notice above, and the license provisions that follow --
13 -- apply solely to the contents of the part following the private keyword. --
14 -- --
15 -- GNAT is free software; you can redistribute it and/or modify it under --
16 -- terms of the GNU General Public License as published by the Free Soft- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
24 -- Boston, MA 02110-1301, USA. --
25 -- --
26 -- As a special exception, if other files instantiate generics from this --
27 -- unit, or you link this unit with other files to produce an executable, --
28 -- this unit does not by itself cause the resulting executable to be --
29 -- covered by the GNU General Public License. This exception does not --
30 -- however invalidate any other reasons why the executable file might be --
31 -- covered by the GNU Public License. --
32 -- --
33 -- GNAT was originally developed by the GNAT team at New York University. --
34 -- Extensive contributions were provided by Ada Core Technologies Inc. --
35 -- --
36 ------------------------------------------------------------------------------
38 with Ada.Strings.Wide_Wide_Maps;
39 with Ada.Strings.Wide_Wide_Superbounded;
41 package Ada.Strings.Wide_Wide_Bounded is
42 pragma Preelaborate;
44 generic
45 Max : Positive;
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);
78 function Append
79 (Left : Bounded_Wide_Wide_String;
80 Right : Bounded_Wide_Wide_String;
81 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
83 function Append
84 (Left : Bounded_Wide_Wide_String;
85 Right : Wide_Wide_String;
86 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
88 function Append
89 (Left : Wide_Wide_String;
90 Right : Bounded_Wide_Wide_String;
91 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
93 function Append
94 (Left : Bounded_Wide_Wide_String;
95 Right : Wide_Wide_Character;
96 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
98 function Append
99 (Left : Wide_Wide_Character;
100 Right : Bounded_Wide_Wide_String;
101 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
103 procedure Append
104 (Source : in out Bounded_Wide_Wide_String;
105 New_Item : Bounded_Wide_Wide_String;
106 Drop : Truncation := Error);
108 procedure Append
109 (Source : in out Bounded_Wide_Wide_String;
110 New_Item : Wide_Wide_String;
111 Drop : Truncation := Error);
113 procedure Append
114 (Source : in out Bounded_Wide_Wide_String;
115 New_Item : Wide_Wide_Character;
116 Drop : Truncation := Error);
118 function "&"
119 (Left : Bounded_Wide_Wide_String;
120 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
122 function "&"
123 (Left : Bounded_Wide_Wide_String;
124 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
126 function "&"
127 (Left : Wide_Wide_String;
128 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
130 function "&"
131 (Left : Bounded_Wide_Wide_String;
132 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
134 function "&"
135 (Left : Wide_Wide_Character;
136 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
138 function Element
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;
144 Index : Positive;
145 By : Wide_Wide_Character);
147 function Slice
148 (Source : Bounded_Wide_Wide_String;
149 Low : Positive;
150 High : Natural) return Wide_Wide_String;
152 function Bounded_Slice
153 (Source : Bounded_Wide_Wide_String;
154 Low : Positive;
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;
161 Low : Positive;
162 High : Natural);
163 pragma Ada_05 (Bounded_Slice);
165 function "="
166 (Left : Bounded_Wide_Wide_String;
167 Right : Bounded_Wide_Wide_String) return Boolean;
169 function "="
170 (Left : Bounded_Wide_Wide_String;
171 Right : Wide_Wide_String) return Boolean;
173 function "="
174 (Left : Wide_Wide_String;
175 Right : Bounded_Wide_Wide_String) return Boolean;
177 function "<"
178 (Left : Bounded_Wide_Wide_String;
179 Right : Bounded_Wide_Wide_String) return Boolean;
181 function "<"
182 (Left : Bounded_Wide_Wide_String;
183 Right : Wide_Wide_String) return Boolean;
185 function "<"
186 (Left : Wide_Wide_String;
187 Right : Bounded_Wide_Wide_String) return Boolean;
189 function "<="
190 (Left : Bounded_Wide_Wide_String;
191 Right : Bounded_Wide_Wide_String) return Boolean;
193 function "<="
194 (Left : Bounded_Wide_Wide_String;
195 Right : Wide_Wide_String) return Boolean;
197 function "<="
198 (Left : Wide_Wide_String;
199 Right : Bounded_Wide_Wide_String) return Boolean;
201 function ">"
202 (Left : Bounded_Wide_Wide_String;
203 Right : Bounded_Wide_Wide_String) return Boolean;
205 function ">"
206 (Left : Bounded_Wide_Wide_String;
207 Right : Wide_Wide_String) return Boolean;
209 function ">"
210 (Left : Wide_Wide_String;
211 Right : Bounded_Wide_Wide_String) return Boolean;
213 function ">="
214 (Left : Bounded_Wide_Wide_String;
215 Right : Bounded_Wide_Wide_String) return Boolean;
217 function ">="
218 (Left : Bounded_Wide_Wide_String;
219 Right : Wide_Wide_String) return Boolean;
221 function ">="
222 (Left : Wide_Wide_String;
223 Right : Bounded_Wide_Wide_String) return Boolean;
225 ----------------------
226 -- Search Functions --
227 ----------------------
229 function Index
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)
235 return Natural;
237 function Index
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)
242 return Natural;
244 function Index
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;
250 function Index
251 (Source : Bounded_Wide_Wide_String;
252 Pattern : Wide_Wide_String;
253 From : Positive;
254 Going : Direction := Forward;
255 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
256 Wide_Wide_Maps.Identity)
257 return Natural;
258 pragma Ada_05 (Index);
260 function Index
261 (Source : Bounded_Wide_Wide_String;
262 Pattern : Wide_Wide_String;
263 From : Positive;
264 Going : Direction := Forward;
265 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
266 return Natural;
267 pragma Ada_05 (Index);
269 function Index
270 (Source : Bounded_Wide_Wide_String;
271 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
272 From : Positive;
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;
283 From : Positive;
284 Going : Direction := Forward) return Natural;
285 pragma Ada_05 (Index_Non_Blank);
287 function Count
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)
292 return Natural;
294 function Count
295 (Source : Bounded_Wide_Wide_String;
296 Pattern : Wide_Wide_String;
297 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
298 return Natural;
300 function Count
301 (Source : Bounded_Wide_Wide_String;
302 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
304 procedure Find_Token
305 (Source : Bounded_Wide_Wide_String;
306 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
307 Test : Membership;
308 First : out Positive;
309 Last : out Natural);
311 ------------------------------------
312 -- String Translation Subprograms --
313 ------------------------------------
315 function Translate
316 (Source : Bounded_Wide_Wide_String;
317 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
318 return Bounded_Wide_Wide_String;
320 procedure Translate
321 (Source : in out Bounded_Wide_Wide_String;
322 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
324 function Translate
325 (Source : Bounded_Wide_Wide_String;
326 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
327 return Bounded_Wide_Wide_String;
329 procedure Translate
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;
339 Low : Positive;
340 High : Natural;
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;
346 Low : Positive;
347 High : Natural;
348 By : Wide_Wide_String;
349 Drop : Truncation := Error);
351 function Insert
352 (Source : Bounded_Wide_Wide_String;
353 Before : Positive;
354 New_Item : Wide_Wide_String;
355 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
357 procedure Insert
358 (Source : in out Bounded_Wide_Wide_String;
359 Before : Positive;
360 New_Item : Wide_Wide_String;
361 Drop : Truncation := Error);
363 function Overwrite
364 (Source : Bounded_Wide_Wide_String;
365 Position : Positive;
366 New_Item : Wide_Wide_String;
367 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
369 procedure Overwrite
370 (Source : in out Bounded_Wide_Wide_String;
371 Position : Positive;
372 New_Item : Wide_Wide_String;
373 Drop : Truncation := Error);
375 function Delete
376 (Source : Bounded_Wide_Wide_String;
377 From : Positive;
378 Through : Natural) return Bounded_Wide_Wide_String;
380 procedure Delete
381 (Source : in out Bounded_Wide_Wide_String;
382 From : Positive;
383 Through : Natural);
385 ---------------------------------
386 -- String Selector Subprograms --
387 ---------------------------------
389 function Trim
390 (Source : Bounded_Wide_Wide_String;
391 Side : Trim_End) return Bounded_Wide_Wide_String;
393 procedure Trim
394 (Source : in out Bounded_Wide_Wide_String;
395 Side : Trim_End);
397 function Trim
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;
403 procedure Trim
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);
408 function Head
409 (Source : Bounded_Wide_Wide_String;
410 Count : Natural;
411 Pad : Wide_Wide_Character := Wide_Wide_Space;
412 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
414 procedure Head
415 (Source : in out Bounded_Wide_Wide_String;
416 Count : Natural;
417 Pad : Wide_Wide_Character := Wide_Wide_Space;
418 Drop : Truncation := Error);
420 function Tail
421 (Source : Bounded_Wide_Wide_String;
422 Count : Natural;
423 Pad : Wide_Wide_Character := Wide_Wide_Space;
424 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
426 procedure Tail
427 (Source : in out Bounded_Wide_Wide_String;
428 Count : Natural;
429 Pad : Wide_Wide_Character := Wide_Wide_Space;
430 Drop : Truncation := Error);
432 ------------------------------------
433 -- String Constructor Subprograms --
434 ------------------------------------
436 function "*"
437 (Left : Natural;
438 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
440 function "*"
441 (Left : Natural;
442 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
444 function "*"
445 (Left : Natural;
446 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
448 function Replicate
449 (Count : Natural;
450 Item : Wide_Wide_Character;
451 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
453 function Replicate
454 (Count : Natural;
455 Item : Wide_Wide_String;
456 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
458 function Replicate
459 (Count : Natural;
460 Item : Bounded_Wide_Wide_String;
461 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
463 private
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,
490 Current_Length => 0,
491 Data =>
492 (1 .. 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;
503 function Length
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;
511 function Append
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;
517 function 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;
523 function 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;
529 function 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;
535 function 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;
541 procedure Append
542 (Source : in out Bounded_Wide_Wide_String;
543 New_Item : Bounded_Wide_Wide_String;
544 Drop : Truncation := Error)
545 renames Super_Append;
547 procedure Append
548 (Source : in out Bounded_Wide_Wide_String;
549 New_Item : Wide_Wide_String;
550 Drop : Truncation := Error)
551 renames Super_Append;
553 procedure Append
554 (Source : in out Bounded_Wide_Wide_String;
555 New_Item : Wide_Wide_Character;
556 Drop : Truncation := Error)
557 renames Super_Append;
559 function "&"
560 (Left : Bounded_Wide_Wide_String;
561 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
562 renames Concat;
564 function "&"
565 (Left : Bounded_Wide_Wide_String;
566 Right : Wide_Wide_String) return Bounded_Wide_Wide_String
567 renames Concat;
569 function "&"
570 (Left : Wide_Wide_String;
571 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
572 renames Concat;
574 function "&"
575 (Left : Bounded_Wide_Wide_String;
576 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
577 renames Concat;
579 function "&"
580 (Left : Wide_Wide_Character;
581 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
582 renames Concat;
584 function Element
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;
591 Index : Positive;
592 By : Wide_Wide_Character)
593 renames Super_Replace_Element;
595 function Slice
596 (Source : Bounded_Wide_Wide_String;
597 Low : Positive;
598 High : Natural) return Wide_Wide_String
599 renames Super_Slice;
601 function Bounded_Slice
602 (Source : Bounded_Wide_Wide_String;
603 Low : Positive;
604 High : Natural) return Bounded_Wide_Wide_String
605 renames Super_Slice;
607 procedure Bounded_Slice
608 (Source : Bounded_Wide_Wide_String;
609 Target : out Bounded_Wide_Wide_String;
610 Low : Positive;
611 High : Natural)
612 renames Super_Slice;
614 function "="
615 (Left : Bounded_Wide_Wide_String;
616 Right : Bounded_Wide_Wide_String) return Boolean
617 renames Equal;
619 function "="
620 (Left : Bounded_Wide_Wide_String;
621 Right : Wide_Wide_String) return Boolean
622 renames Equal;
624 function "="
625 (Left : Wide_Wide_String;
626 Right : Bounded_Wide_Wide_String) return Boolean
627 renames Equal;
629 function "<"
630 (Left : Bounded_Wide_Wide_String;
631 Right : Bounded_Wide_Wide_String) return Boolean
632 renames Less;
634 function "<"
635 (Left : Bounded_Wide_Wide_String;
636 Right : Wide_Wide_String) return Boolean
637 renames Less;
639 function "<"
640 (Left : Wide_Wide_String;
641 Right : Bounded_Wide_Wide_String) return Boolean
642 renames Less;
644 function "<="
645 (Left : Bounded_Wide_Wide_String;
646 Right : Bounded_Wide_Wide_String) return Boolean
647 renames Less_Or_Equal;
649 function "<="
650 (Left : Bounded_Wide_Wide_String;
651 Right : Wide_Wide_String) return Boolean
652 renames Less_Or_Equal;
654 function "<="
655 (Left : Wide_Wide_String;
656 Right : Bounded_Wide_Wide_String) return Boolean
657 renames Less_Or_Equal;
659 function ">"
660 (Left : Bounded_Wide_Wide_String;
661 Right : Bounded_Wide_Wide_String) return Boolean
662 renames Greater;
664 function ">"
665 (Left : Bounded_Wide_Wide_String;
666 Right : Wide_Wide_String) return Boolean
667 renames Greater;
669 function ">"
670 (Left : Wide_Wide_String;
671 Right : Bounded_Wide_Wide_String) return Boolean
672 renames Greater;
674 function ">="
675 (Left : Bounded_Wide_Wide_String;
676 Right : Bounded_Wide_Wide_String) return Boolean
677 renames Greater_Or_Equal;
679 function ">="
680 (Left : Bounded_Wide_Wide_String;
681 Right : Wide_Wide_String) return Boolean
682 renames Greater_Or_Equal;
684 function ">="
685 (Left : Wide_Wide_String;
686 Right : Bounded_Wide_Wide_String) return Boolean
687 renames Greater_Or_Equal;
689 function Index
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)
695 return Natural
696 renames Super_Index;
698 function Index
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)
703 return Natural
704 renames Super_Index;
706 function Index
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
711 renames Super_Index;
713 function Index
714 (Source : Bounded_Wide_Wide_String;
715 Pattern : Wide_Wide_String;
716 From : Positive;
717 Going : Direction := Forward;
718 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
719 Wide_Wide_Maps.Identity)
720 return Natural
721 renames Super_Index;
723 function Index
724 (Source : Bounded_Wide_Wide_String;
725 Pattern : Wide_Wide_String;
726 From : Positive;
727 Going : Direction := Forward;
728 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
729 return Natural
730 renames Super_Index;
732 function Index
733 (Source : Bounded_Wide_Wide_String;
734 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
735 From : Positive;
736 Test : Membership := Inside;
737 Going : Direction := Forward) return Natural
738 renames Super_Index;
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;
747 From : Positive;
748 Going : Direction := Forward) return Natural
749 renames Super_Index_Non_Blank;
751 function Count
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)
756 return Natural
757 renames Super_Count;
759 function Count
760 (Source : Bounded_Wide_Wide_String;
761 Pattern : Wide_Wide_String;
762 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
763 return Natural
764 renames Super_Count;
766 function Count
767 (Source : Bounded_Wide_Wide_String;
768 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
769 renames Super_Count;
771 procedure Find_Token
772 (Source : Bounded_Wide_Wide_String;
773 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
774 Test : Membership;
775 First : out Positive;
776 Last : out Natural)
777 renames Super_Find_Token;
779 function Translate
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;
785 procedure Translate
786 (Source : in out Bounded_Wide_Wide_String;
787 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
788 renames Super_Translate;
790 function 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;
796 procedure 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;
803 Low : Positive;
804 High : Natural;
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;
811 Low : Positive;
812 High : Natural;
813 By : Wide_Wide_String;
814 Drop : Truncation := Error)
815 renames Super_Replace_Slice;
817 function Insert
818 (Source : Bounded_Wide_Wide_String;
819 Before : Positive;
820 New_Item : Wide_Wide_String;
821 Drop : Truncation := Error) return Bounded_Wide_Wide_String
822 renames Super_Insert;
824 procedure Insert
825 (Source : in out Bounded_Wide_Wide_String;
826 Before : Positive;
827 New_Item : Wide_Wide_String;
828 Drop : Truncation := Error)
829 renames Super_Insert;
831 function Overwrite
832 (Source : Bounded_Wide_Wide_String;
833 Position : Positive;
834 New_Item : Wide_Wide_String;
835 Drop : Truncation := Error) return Bounded_Wide_Wide_String
836 renames Super_Overwrite;
838 procedure Overwrite
839 (Source : in out Bounded_Wide_Wide_String;
840 Position : Positive;
841 New_Item : Wide_Wide_String;
842 Drop : Truncation := Error)
843 renames Super_Overwrite;
845 function Delete
846 (Source : Bounded_Wide_Wide_String;
847 From : Positive;
848 Through : Natural) return Bounded_Wide_Wide_String
849 renames Super_Delete;
851 procedure Delete
852 (Source : in out Bounded_Wide_Wide_String;
853 From : Positive;
854 Through : Natural)
855 renames Super_Delete;
857 function Trim
858 (Source : Bounded_Wide_Wide_String;
859 Side : Trim_End) return Bounded_Wide_Wide_String
860 renames Super_Trim;
862 procedure Trim
863 (Source : in out Bounded_Wide_Wide_String;
864 Side : Trim_End)
865 renames Super_Trim;
867 function Trim
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
872 renames Super_Trim;
874 procedure Trim
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)
878 renames Super_Trim;
880 function Head
881 (Source : Bounded_Wide_Wide_String;
882 Count : Natural;
883 Pad : Wide_Wide_Character := Wide_Wide_Space;
884 Drop : Truncation := Error) return Bounded_Wide_Wide_String
885 renames Super_Head;
887 procedure Head
888 (Source : in out Bounded_Wide_Wide_String;
889 Count : Natural;
890 Pad : Wide_Wide_Character := Wide_Wide_Space;
891 Drop : Truncation := Error)
892 renames Super_Head;
894 function Tail
895 (Source : Bounded_Wide_Wide_String;
896 Count : Natural;
897 Pad : Wide_Wide_Character := Wide_Wide_Space;
898 Drop : Truncation := Error) return Bounded_Wide_Wide_String
899 renames Super_Tail;
901 procedure Tail
902 (Source : in out Bounded_Wide_Wide_String;
903 Count : Natural;
904 Pad : Wide_Wide_Character := Wide_Wide_Space;
905 Drop : Truncation := Error)
906 renames Super_Tail;
908 function "*"
909 (Left : Natural;
910 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
911 renames Times;
913 function Replicate
914 (Count : Natural;
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;