2010-07-22 Andi Kleen <ak@linux.intel.com>
[official-gcc.git] / gcc / ada / a-stzbou.ads
blobcc7049160fbfcd2fc7a7486da2cd5ce0979f95e4
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-2009, 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 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. --
21 -- --
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. --
25 -- --
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/>. --
30 -- --
31 -- GNAT was originally developed by the GNAT team at New York University. --
32 -- Extensive contributions were provided by Ada Core Technologies Inc. --
33 -- --
34 ------------------------------------------------------------------------------
36 with Ada.Strings.Wide_Wide_Maps;
37 with Ada.Strings.Wide_Wide_Superbounded;
39 package Ada.Strings.Wide_Wide_Bounded is
40 pragma Preelaborate;
42 generic
43 Max : Positive;
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);
76 function Append
77 (Left : Bounded_Wide_Wide_String;
78 Right : Bounded_Wide_Wide_String;
79 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
81 function Append
82 (Left : Bounded_Wide_Wide_String;
83 Right : Wide_Wide_String;
84 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
86 function Append
87 (Left : Wide_Wide_String;
88 Right : Bounded_Wide_Wide_String;
89 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
91 function Append
92 (Left : Bounded_Wide_Wide_String;
93 Right : Wide_Wide_Character;
94 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
96 function Append
97 (Left : Wide_Wide_Character;
98 Right : Bounded_Wide_Wide_String;
99 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
101 procedure Append
102 (Source : in out Bounded_Wide_Wide_String;
103 New_Item : Bounded_Wide_Wide_String;
104 Drop : Truncation := Error);
106 procedure Append
107 (Source : in out Bounded_Wide_Wide_String;
108 New_Item : Wide_Wide_String;
109 Drop : Truncation := Error);
111 procedure Append
112 (Source : in out Bounded_Wide_Wide_String;
113 New_Item : Wide_Wide_Character;
114 Drop : Truncation := Error);
116 function "&"
117 (Left : Bounded_Wide_Wide_String;
118 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
120 function "&"
121 (Left : Bounded_Wide_Wide_String;
122 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
124 function "&"
125 (Left : Wide_Wide_String;
126 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
128 function "&"
129 (Left : Bounded_Wide_Wide_String;
130 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
132 function "&"
133 (Left : Wide_Wide_Character;
134 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
136 function Element
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;
142 Index : Positive;
143 By : Wide_Wide_Character);
145 function Slice
146 (Source : Bounded_Wide_Wide_String;
147 Low : Positive;
148 High : Natural) return Wide_Wide_String;
150 function Bounded_Slice
151 (Source : Bounded_Wide_Wide_String;
152 Low : Positive;
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;
159 Low : Positive;
160 High : Natural);
161 pragma Ada_05 (Bounded_Slice);
163 function "="
164 (Left : Bounded_Wide_Wide_String;
165 Right : Bounded_Wide_Wide_String) return Boolean;
167 function "="
168 (Left : Bounded_Wide_Wide_String;
169 Right : Wide_Wide_String) return Boolean;
171 function "="
172 (Left : Wide_Wide_String;
173 Right : Bounded_Wide_Wide_String) return Boolean;
175 function "<"
176 (Left : Bounded_Wide_Wide_String;
177 Right : Bounded_Wide_Wide_String) return Boolean;
179 function "<"
180 (Left : Bounded_Wide_Wide_String;
181 Right : Wide_Wide_String) return Boolean;
183 function "<"
184 (Left : Wide_Wide_String;
185 Right : Bounded_Wide_Wide_String) return Boolean;
187 function "<="
188 (Left : Bounded_Wide_Wide_String;
189 Right : Bounded_Wide_Wide_String) return Boolean;
191 function "<="
192 (Left : Bounded_Wide_Wide_String;
193 Right : Wide_Wide_String) return Boolean;
195 function "<="
196 (Left : Wide_Wide_String;
197 Right : Bounded_Wide_Wide_String) return Boolean;
199 function ">"
200 (Left : Bounded_Wide_Wide_String;
201 Right : Bounded_Wide_Wide_String) return Boolean;
203 function ">"
204 (Left : Bounded_Wide_Wide_String;
205 Right : Wide_Wide_String) return Boolean;
207 function ">"
208 (Left : Wide_Wide_String;
209 Right : Bounded_Wide_Wide_String) return Boolean;
211 function ">="
212 (Left : Bounded_Wide_Wide_String;
213 Right : Bounded_Wide_Wide_String) return Boolean;
215 function ">="
216 (Left : Bounded_Wide_Wide_String;
217 Right : Wide_Wide_String) return Boolean;
219 function ">="
220 (Left : Wide_Wide_String;
221 Right : Bounded_Wide_Wide_String) return Boolean;
223 ----------------------
224 -- Search Functions --
225 ----------------------
227 function Index
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)
233 return Natural;
235 function Index
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)
240 return Natural;
242 function Index
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;
248 function Index
249 (Source : Bounded_Wide_Wide_String;
250 Pattern : Wide_Wide_String;
251 From : Positive;
252 Going : Direction := Forward;
253 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
254 Wide_Wide_Maps.Identity)
255 return Natural;
256 pragma Ada_05 (Index);
258 function Index
259 (Source : Bounded_Wide_Wide_String;
260 Pattern : Wide_Wide_String;
261 From : Positive;
262 Going : Direction := Forward;
263 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
264 return Natural;
265 pragma Ada_05 (Index);
267 function Index
268 (Source : Bounded_Wide_Wide_String;
269 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
270 From : Positive;
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;
281 From : Positive;
282 Going : Direction := Forward) return Natural;
283 pragma Ada_05 (Index_Non_Blank);
285 function Count
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)
290 return Natural;
292 function Count
293 (Source : Bounded_Wide_Wide_String;
294 Pattern : Wide_Wide_String;
295 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
296 return Natural;
298 function Count
299 (Source : Bounded_Wide_Wide_String;
300 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
302 procedure Find_Token
303 (Source : Bounded_Wide_Wide_String;
304 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
305 Test : Membership;
306 First : out Positive;
307 Last : out Natural);
309 ------------------------------------
310 -- String Translation Subprograms --
311 ------------------------------------
313 function Translate
314 (Source : Bounded_Wide_Wide_String;
315 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
316 return Bounded_Wide_Wide_String;
318 procedure Translate
319 (Source : in out Bounded_Wide_Wide_String;
320 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
322 function Translate
323 (Source : Bounded_Wide_Wide_String;
324 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
325 return Bounded_Wide_Wide_String;
327 procedure Translate
328 (Source : in out Bounded_Wide_Wide_String;
329 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
331 ---------------------------------------
332 -- String Transformation Subprograms --
333 ---------------------------------------
335 function Replace_Slice
336 (Source : Bounded_Wide_Wide_String;
337 Low : Positive;
338 High : Natural;
339 By : Wide_Wide_String;
340 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
342 procedure Replace_Slice
343 (Source : in out Bounded_Wide_Wide_String;
344 Low : Positive;
345 High : Natural;
346 By : Wide_Wide_String;
347 Drop : Truncation := Error);
349 function Insert
350 (Source : Bounded_Wide_Wide_String;
351 Before : Positive;
352 New_Item : Wide_Wide_String;
353 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
355 procedure Insert
356 (Source : in out Bounded_Wide_Wide_String;
357 Before : Positive;
358 New_Item : Wide_Wide_String;
359 Drop : Truncation := Error);
361 function Overwrite
362 (Source : Bounded_Wide_Wide_String;
363 Position : Positive;
364 New_Item : Wide_Wide_String;
365 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
367 procedure Overwrite
368 (Source : in out Bounded_Wide_Wide_String;
369 Position : Positive;
370 New_Item : Wide_Wide_String;
371 Drop : Truncation := Error);
373 function Delete
374 (Source : Bounded_Wide_Wide_String;
375 From : Positive;
376 Through : Natural) return Bounded_Wide_Wide_String;
378 procedure Delete
379 (Source : in out Bounded_Wide_Wide_String;
380 From : Positive;
381 Through : Natural);
383 ---------------------------------
384 -- String Selector Subprograms --
385 ---------------------------------
387 function Trim
388 (Source : Bounded_Wide_Wide_String;
389 Side : Trim_End) return Bounded_Wide_Wide_String;
391 procedure Trim
392 (Source : in out Bounded_Wide_Wide_String;
393 Side : Trim_End);
395 function Trim
396 (Source : Bounded_Wide_Wide_String;
397 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
398 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
399 return Bounded_Wide_Wide_String;
401 procedure Trim
402 (Source : in out Bounded_Wide_Wide_String;
403 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
404 Right : Wide_Wide_Maps.Wide_Wide_Character_Set);
406 function Head
407 (Source : Bounded_Wide_Wide_String;
408 Count : Natural;
409 Pad : Wide_Wide_Character := Wide_Wide_Space;
410 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
412 procedure Head
413 (Source : in out Bounded_Wide_Wide_String;
414 Count : Natural;
415 Pad : Wide_Wide_Character := Wide_Wide_Space;
416 Drop : Truncation := Error);
418 function Tail
419 (Source : Bounded_Wide_Wide_String;
420 Count : Natural;
421 Pad : Wide_Wide_Character := Wide_Wide_Space;
422 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
424 procedure Tail
425 (Source : in out Bounded_Wide_Wide_String;
426 Count : Natural;
427 Pad : Wide_Wide_Character := Wide_Wide_Space;
428 Drop : Truncation := Error);
430 ------------------------------------
431 -- String Constructor Subprograms --
432 ------------------------------------
434 function "*"
435 (Left : Natural;
436 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
438 function "*"
439 (Left : Natural;
440 Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
442 function "*"
443 (Left : Natural;
444 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
446 function Replicate
447 (Count : Natural;
448 Item : Wide_Wide_Character;
449 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
451 function Replicate
452 (Count : Natural;
453 Item : Wide_Wide_String;
454 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
456 function Replicate
457 (Count : Natural;
458 Item : Bounded_Wide_Wide_String;
459 Drop : Truncation := Error) return Bounded_Wide_Wide_String;
461 private
462 -- Most of the implementation is in the separate non generic package
463 -- Ada.Strings.Wide_Wide_Superbounded. Type Bounded_Wide_Wide_String is
464 -- derived from type Wide_Wide_Superbounded.Super_String with the
465 -- maximum length constraint. In almost all cases, the routines in
466 -- Wide_Wide_Superbounded can be called with no requirement to pass the
467 -- maximum length explicitly, since there is at least one
468 -- Bounded_Wide_Wide_String argument from which the maximum length can
469 -- be obtained. For all such routines, the implementation in this
470 -- private part is simply renaming of the corresponding routine in the
471 -- super bouded package.
473 -- The five exceptions are the * and Replicate routines operating on
474 -- character values. For these cases, we have a routine in the body
475 -- that calls the superbounded routine passing the maximum length
476 -- explicitly as an extra parameter.
478 type Bounded_Wide_Wide_String is
479 new Wide_Wide_Superbounded.Super_String (Max_Length);
480 -- Deriving Bounded_Wide_Wide_String from
481 -- Wide_Wide_Superbounded.Super_String is the real trick, it ensures
482 -- that the type Bounded_Wide_Wide_String declared in the generic
483 -- instantiation is compatible with the Super_String type declared in
484 -- the Wide_Wide_Superbounded package.
486 Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String :=
487 (Max_Length => Max_Length,
488 Current_Length => 0,
489 Data =>
490 (1 .. Max_Length =>
491 Wide_Wide_Superbounded.Wide_Wide_NUL));
493 pragma Inline (To_Bounded_Wide_Wide_String);
495 procedure Set_Bounded_Wide_Wide_String
496 (Target : out Bounded_Wide_Wide_String;
497 Source : Wide_Wide_String;
498 Drop : Truncation := Error)
499 renames Set_Super_String;
501 function Length
502 (Source : Bounded_Wide_Wide_String) return Length_Range
503 renames Super_Length;
505 function To_Wide_Wide_String
506 (Source : Bounded_Wide_Wide_String) return Wide_Wide_String
507 renames Super_To_String;
509 function Append
510 (Left : Bounded_Wide_Wide_String;
511 Right : Bounded_Wide_Wide_String;
512 Drop : Truncation := Error) return Bounded_Wide_Wide_String
513 renames Super_Append;
515 function Append
516 (Left : Bounded_Wide_Wide_String;
517 Right : Wide_Wide_String;
518 Drop : Truncation := Error) return Bounded_Wide_Wide_String
519 renames Super_Append;
521 function Append
522 (Left : Wide_Wide_String;
523 Right : Bounded_Wide_Wide_String;
524 Drop : Truncation := Error) return Bounded_Wide_Wide_String
525 renames Super_Append;
527 function Append
528 (Left : Bounded_Wide_Wide_String;
529 Right : Wide_Wide_Character;
530 Drop : Truncation := Error) return Bounded_Wide_Wide_String
531 renames Super_Append;
533 function Append
534 (Left : Wide_Wide_Character;
535 Right : Bounded_Wide_Wide_String;
536 Drop : Truncation := Error) return Bounded_Wide_Wide_String
537 renames Super_Append;
539 procedure Append
540 (Source : in out Bounded_Wide_Wide_String;
541 New_Item : Bounded_Wide_Wide_String;
542 Drop : Truncation := Error)
543 renames Super_Append;
545 procedure Append
546 (Source : in out Bounded_Wide_Wide_String;
547 New_Item : Wide_Wide_String;
548 Drop : Truncation := Error)
549 renames Super_Append;
551 procedure Append
552 (Source : in out Bounded_Wide_Wide_String;
553 New_Item : Wide_Wide_Character;
554 Drop : Truncation := Error)
555 renames Super_Append;
557 function "&"
558 (Left : Bounded_Wide_Wide_String;
559 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
560 renames Concat;
562 function "&"
563 (Left : Bounded_Wide_Wide_String;
564 Right : Wide_Wide_String) return Bounded_Wide_Wide_String
565 renames Concat;
567 function "&"
568 (Left : Wide_Wide_String;
569 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
570 renames Concat;
572 function "&"
573 (Left : Bounded_Wide_Wide_String;
574 Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
575 renames Concat;
577 function "&"
578 (Left : Wide_Wide_Character;
579 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
580 renames Concat;
582 function Element
583 (Source : Bounded_Wide_Wide_String;
584 Index : Positive) return Wide_Wide_Character
585 renames Super_Element;
587 procedure Replace_Element
588 (Source : in out Bounded_Wide_Wide_String;
589 Index : Positive;
590 By : Wide_Wide_Character)
591 renames Super_Replace_Element;
593 function Slice
594 (Source : Bounded_Wide_Wide_String;
595 Low : Positive;
596 High : Natural) return Wide_Wide_String
597 renames Super_Slice;
599 function Bounded_Slice
600 (Source : Bounded_Wide_Wide_String;
601 Low : Positive;
602 High : Natural) return Bounded_Wide_Wide_String
603 renames Super_Slice;
605 procedure Bounded_Slice
606 (Source : Bounded_Wide_Wide_String;
607 Target : out Bounded_Wide_Wide_String;
608 Low : Positive;
609 High : Natural)
610 renames Super_Slice;
612 function "="
613 (Left : Bounded_Wide_Wide_String;
614 Right : Bounded_Wide_Wide_String) return Boolean
615 renames Equal;
617 function "="
618 (Left : Bounded_Wide_Wide_String;
619 Right : Wide_Wide_String) return Boolean
620 renames Equal;
622 function "="
623 (Left : Wide_Wide_String;
624 Right : Bounded_Wide_Wide_String) return Boolean
625 renames Equal;
627 function "<"
628 (Left : Bounded_Wide_Wide_String;
629 Right : Bounded_Wide_Wide_String) return Boolean
630 renames Less;
632 function "<"
633 (Left : Bounded_Wide_Wide_String;
634 Right : Wide_Wide_String) return Boolean
635 renames Less;
637 function "<"
638 (Left : Wide_Wide_String;
639 Right : Bounded_Wide_Wide_String) return Boolean
640 renames Less;
642 function "<="
643 (Left : Bounded_Wide_Wide_String;
644 Right : Bounded_Wide_Wide_String) return Boolean
645 renames Less_Or_Equal;
647 function "<="
648 (Left : Bounded_Wide_Wide_String;
649 Right : Wide_Wide_String) return Boolean
650 renames Less_Or_Equal;
652 function "<="
653 (Left : Wide_Wide_String;
654 Right : Bounded_Wide_Wide_String) return Boolean
655 renames Less_Or_Equal;
657 function ">"
658 (Left : Bounded_Wide_Wide_String;
659 Right : Bounded_Wide_Wide_String) return Boolean
660 renames Greater;
662 function ">"
663 (Left : Bounded_Wide_Wide_String;
664 Right : Wide_Wide_String) return Boolean
665 renames Greater;
667 function ">"
668 (Left : Wide_Wide_String;
669 Right : Bounded_Wide_Wide_String) return Boolean
670 renames Greater;
672 function ">="
673 (Left : Bounded_Wide_Wide_String;
674 Right : Bounded_Wide_Wide_String) return Boolean
675 renames Greater_Or_Equal;
677 function ">="
678 (Left : Bounded_Wide_Wide_String;
679 Right : Wide_Wide_String) return Boolean
680 renames Greater_Or_Equal;
682 function ">="
683 (Left : Wide_Wide_String;
684 Right : Bounded_Wide_Wide_String) return Boolean
685 renames Greater_Or_Equal;
687 function Index
688 (Source : Bounded_Wide_Wide_String;
689 Pattern : Wide_Wide_String;
690 Going : Direction := Forward;
691 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
692 Wide_Wide_Maps.Identity)
693 return Natural
694 renames Super_Index;
696 function Index
697 (Source : Bounded_Wide_Wide_String;
698 Pattern : Wide_Wide_String;
699 Going : Direction := Forward;
700 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
701 return Natural
702 renames Super_Index;
704 function Index
705 (Source : Bounded_Wide_Wide_String;
706 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
707 Test : Membership := Inside;
708 Going : Direction := Forward) return Natural
709 renames Super_Index;
711 function Index
712 (Source : Bounded_Wide_Wide_String;
713 Pattern : Wide_Wide_String;
714 From : Positive;
715 Going : Direction := Forward;
716 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
717 Wide_Wide_Maps.Identity)
718 return Natural
719 renames Super_Index;
721 function Index
722 (Source : Bounded_Wide_Wide_String;
723 Pattern : Wide_Wide_String;
724 From : Positive;
725 Going : Direction := Forward;
726 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
727 return Natural
728 renames Super_Index;
730 function Index
731 (Source : Bounded_Wide_Wide_String;
732 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
733 From : Positive;
734 Test : Membership := Inside;
735 Going : Direction := Forward) return Natural
736 renames Super_Index;
738 function Index_Non_Blank
739 (Source : Bounded_Wide_Wide_String;
740 Going : Direction := Forward) return Natural
741 renames Super_Index_Non_Blank;
743 function Index_Non_Blank
744 (Source : Bounded_Wide_Wide_String;
745 From : Positive;
746 Going : Direction := Forward) return Natural
747 renames Super_Index_Non_Blank;
749 function Count
750 (Source : Bounded_Wide_Wide_String;
751 Pattern : Wide_Wide_String;
752 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
753 Wide_Wide_Maps.Identity)
754 return Natural
755 renames Super_Count;
757 function Count
758 (Source : Bounded_Wide_Wide_String;
759 Pattern : Wide_Wide_String;
760 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
761 return Natural
762 renames Super_Count;
764 function Count
765 (Source : Bounded_Wide_Wide_String;
766 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
767 renames Super_Count;
769 procedure Find_Token
770 (Source : Bounded_Wide_Wide_String;
771 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
772 Test : Membership;
773 First : out Positive;
774 Last : out Natural)
775 renames Super_Find_Token;
777 function Translate
778 (Source : Bounded_Wide_Wide_String;
779 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
780 return Bounded_Wide_Wide_String
781 renames Super_Translate;
783 procedure Translate
784 (Source : in out Bounded_Wide_Wide_String;
785 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
786 renames Super_Translate;
788 function Translate
789 (Source : Bounded_Wide_Wide_String;
790 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
791 return Bounded_Wide_Wide_String
792 renames Super_Translate;
794 procedure Translate
795 (Source : in out Bounded_Wide_Wide_String;
796 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
797 renames Super_Translate;
799 function Replace_Slice
800 (Source : Bounded_Wide_Wide_String;
801 Low : Positive;
802 High : Natural;
803 By : Wide_Wide_String;
804 Drop : Truncation := Error) return Bounded_Wide_Wide_String
805 renames Super_Replace_Slice;
807 procedure Replace_Slice
808 (Source : in out Bounded_Wide_Wide_String;
809 Low : Positive;
810 High : Natural;
811 By : Wide_Wide_String;
812 Drop : Truncation := Error)
813 renames Super_Replace_Slice;
815 function Insert
816 (Source : Bounded_Wide_Wide_String;
817 Before : Positive;
818 New_Item : Wide_Wide_String;
819 Drop : Truncation := Error) return Bounded_Wide_Wide_String
820 renames Super_Insert;
822 procedure Insert
823 (Source : in out Bounded_Wide_Wide_String;
824 Before : Positive;
825 New_Item : Wide_Wide_String;
826 Drop : Truncation := Error)
827 renames Super_Insert;
829 function Overwrite
830 (Source : Bounded_Wide_Wide_String;
831 Position : Positive;
832 New_Item : Wide_Wide_String;
833 Drop : Truncation := Error) return Bounded_Wide_Wide_String
834 renames Super_Overwrite;
836 procedure Overwrite
837 (Source : in out Bounded_Wide_Wide_String;
838 Position : Positive;
839 New_Item : Wide_Wide_String;
840 Drop : Truncation := Error)
841 renames Super_Overwrite;
843 function Delete
844 (Source : Bounded_Wide_Wide_String;
845 From : Positive;
846 Through : Natural) return Bounded_Wide_Wide_String
847 renames Super_Delete;
849 procedure Delete
850 (Source : in out Bounded_Wide_Wide_String;
851 From : Positive;
852 Through : Natural)
853 renames Super_Delete;
855 function Trim
856 (Source : Bounded_Wide_Wide_String;
857 Side : Trim_End) return Bounded_Wide_Wide_String
858 renames Super_Trim;
860 procedure Trim
861 (Source : in out Bounded_Wide_Wide_String;
862 Side : Trim_End)
863 renames Super_Trim;
865 function Trim
866 (Source : Bounded_Wide_Wide_String;
867 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
868 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
869 return Bounded_Wide_Wide_String
870 renames Super_Trim;
872 procedure Trim
873 (Source : in out Bounded_Wide_Wide_String;
874 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
875 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
876 renames Super_Trim;
878 function Head
879 (Source : Bounded_Wide_Wide_String;
880 Count : Natural;
881 Pad : Wide_Wide_Character := Wide_Wide_Space;
882 Drop : Truncation := Error) return Bounded_Wide_Wide_String
883 renames Super_Head;
885 procedure Head
886 (Source : in out Bounded_Wide_Wide_String;
887 Count : Natural;
888 Pad : Wide_Wide_Character := Wide_Wide_Space;
889 Drop : Truncation := Error)
890 renames Super_Head;
892 function Tail
893 (Source : Bounded_Wide_Wide_String;
894 Count : Natural;
895 Pad : Wide_Wide_Character := Wide_Wide_Space;
896 Drop : Truncation := Error) return Bounded_Wide_Wide_String
897 renames Super_Tail;
899 procedure Tail
900 (Source : in out Bounded_Wide_Wide_String;
901 Count : Natural;
902 Pad : Wide_Wide_Character := Wide_Wide_Space;
903 Drop : Truncation := Error)
904 renames Super_Tail;
906 function "*"
907 (Left : Natural;
908 Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
909 renames Times;
911 function Replicate
912 (Count : Natural;
913 Item : Bounded_Wide_Wide_String;
914 Drop : Truncation := Error) return Bounded_Wide_Wide_String
915 renames Super_Replicate;
917 end Generic_Bounded_Length;
919 end Ada.Strings.Wide_Wide_Bounded;