OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [ada/] [a-stwibo.ads] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 281 jeremybenn
------------------------------------------------------------------------------
2
--                                                                          --
3
--                         GNAT RUN-TIME COMPONENTS                         --
4
--                                                                          --
5
--             A D A . S T R I N G S . 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
------------------------------------------------------------------------------
35
 
36
with Ada.Strings.Wide_Maps;
37
with Ada.Strings.Wide_Superbounded;
38
 
39
package Ada.Strings.Wide_Bounded is
40
   pragma Preelaborate;
41
 
42
   generic
43
      Max : Positive;
44
      --  Maximum length of a Bounded_Wide_String
45
 
46
   package Generic_Bounded_Length is
47
 
48
      Max_Length : constant Positive := Max;
49
 
50
      type Bounded_Wide_String is private;
51
      pragma Preelaborable_Initialization (Bounded_Wide_String);
52
 
53
      Null_Bounded_Wide_String : constant Bounded_Wide_String;
54
 
55
      subtype Length_Range is Natural range 0 .. Max_Length;
56
 
57
      function Length (Source : Bounded_Wide_String) return Length_Range;
58
 
59
      --------------------------------------------------------
60
      -- Conversion, Concatenation, and Selection Functions --
61
      --------------------------------------------------------
62
 
63
      function To_Bounded_Wide_String
64
        (Source : Wide_String;
65
         Drop   : Truncation := Error) return Bounded_Wide_String;
66
 
67
      function To_Wide_String
68
        (Source : Bounded_Wide_String) return Wide_String;
69
 
70
      procedure Set_Bounded_Wide_String
71
        (Target : out Bounded_Wide_String;
72
         Source : Wide_String;
73
         Drop   : Truncation := Error);
74
      pragma Ada_05 (Set_Bounded_Wide_String);
75
 
76
      function Append
77
        (Left  : Bounded_Wide_String;
78
         Right : Bounded_Wide_String;
79
         Drop  : Truncation  := Error) return Bounded_Wide_String;
80
 
81
      function Append
82
        (Left  : Bounded_Wide_String;
83
         Right : Wide_String;
84
         Drop  : Truncation := Error) return Bounded_Wide_String;
85
 
86
      function Append
87
        (Left  : Wide_String;
88
         Right : Bounded_Wide_String;
89
         Drop  : Truncation := Error) return Bounded_Wide_String;
90
 
91
      function Append
92
        (Left  : Bounded_Wide_String;
93
         Right : Wide_Character;
94
         Drop  : Truncation := Error) return Bounded_Wide_String;
95
 
96
      function Append
97
        (Left  : Wide_Character;
98
         Right : Bounded_Wide_String;
99
         Drop  : Truncation := Error) return Bounded_Wide_String;
100
 
101
      procedure Append
102
        (Source   : in out Bounded_Wide_String;
103
         New_Item : Bounded_Wide_String;
104
         Drop     : Truncation  := Error);
105
 
106
      procedure Append
107
        (Source   : in out Bounded_Wide_String;
108
         New_Item : Wide_String;
109
         Drop     : Truncation  := Error);
110
 
111
      procedure Append
112
        (Source   : in out Bounded_Wide_String;
113
         New_Item : Wide_Character;
114
         Drop     : Truncation  := Error);
115
 
116
      function "&"
117
        (Left  : Bounded_Wide_String;
118
         Right : Bounded_Wide_String) return Bounded_Wide_String;
119
 
120
      function "&"
121
        (Left  : Bounded_Wide_String;
122
         Right : Wide_String) return Bounded_Wide_String;
123
 
124
      function "&"
125
        (Left  : Wide_String;
126
         Right : Bounded_Wide_String) return Bounded_Wide_String;
127
 
128
      function "&"
129
        (Left  : Bounded_Wide_String;
130
         Right : Wide_Character) return Bounded_Wide_String;
131
 
132
      function "&"
133
        (Left  : Wide_Character;
134
         Right : Bounded_Wide_String) return Bounded_Wide_String;
135
 
136
      function Element
137
        (Source : Bounded_Wide_String;
138
         Index  : Positive) return Wide_Character;
139
 
140
      procedure Replace_Element
141
        (Source : in out Bounded_Wide_String;
142
         Index  : Positive;
143
         By     : Wide_Character);
144
 
145
      function Slice
146
        (Source : Bounded_Wide_String;
147
         Low    : Positive;
148
         High   : Natural) return Wide_String;
149
 
150
      function Bounded_Slice
151
        (Source : Bounded_Wide_String;
152
         Low    : Positive;
153
         High   : Natural) return Bounded_Wide_String;
154
      pragma Ada_05 (Bounded_Slice);
155
 
156
      procedure Bounded_Slice
157
        (Source : Bounded_Wide_String;
158
         Target : out Bounded_Wide_String;
159
         Low    : Positive;
160
         High   : Natural);
161
      pragma Ada_05 (Bounded_Slice);
162
 
163
      function "="
164
        (Left  : Bounded_Wide_String;
165
         Right : Bounded_Wide_String) return Boolean;
166
 
167
      function "="
168
        (Left  : Bounded_Wide_String;
169
         Right : Wide_String) return Boolean;
170
 
171
      function "="
172
        (Left  : Wide_String;
173
         Right : Bounded_Wide_String) return Boolean;
174
 
175
      function "<"
176
        (Left  : Bounded_Wide_String;
177
         Right : Bounded_Wide_String) return Boolean;
178
 
179
      function "<"
180
        (Left  : Bounded_Wide_String;
181
         Right : Wide_String) return Boolean;
182
 
183
      function "<"
184
        (Left  : Wide_String;
185
         Right : Bounded_Wide_String) return Boolean;
186
 
187
      function "<="
188
        (Left  : Bounded_Wide_String;
189
         Right : Bounded_Wide_String) return Boolean;
190
 
191
      function "<="
192
        (Left  : Bounded_Wide_String;
193
         Right : Wide_String) return Boolean;
194
 
195
      function "<="
196
        (Left  : Wide_String;
197
         Right : Bounded_Wide_String) return Boolean;
198
 
199
      function ">"
200
        (Left  : Bounded_Wide_String;
201
         Right : Bounded_Wide_String) return Boolean;
202
 
203
      function ">"
204
        (Left  : Bounded_Wide_String;
205
         Right : Wide_String) return Boolean;
206
 
207
      function ">"
208
        (Left  : Wide_String;
209
         Right : Bounded_Wide_String) return Boolean;
210
 
211
      function ">="
212
        (Left  : Bounded_Wide_String;
213
         Right : Bounded_Wide_String) return Boolean;
214
 
215
      function ">="
216
        (Left  : Bounded_Wide_String;
217
         Right : Wide_String) return Boolean;
218
 
219
      function ">="
220
        (Left  : Wide_String;
221
         Right : Bounded_Wide_String) return Boolean;
222
 
223
      ----------------------
224
      -- Search Functions --
225
      ----------------------
226
 
227
      function Index
228
        (Source  : Bounded_Wide_String;
229
         Pattern : Wide_String;
230
         Going   : Direction := Forward;
231
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
232
         return Natural;
233
 
234
      function Index
235
        (Source  : Bounded_Wide_String;
236
         Pattern : Wide_String;
237
         Going   : Direction := Forward;
238
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
239
 
240
      function Index
241
        (Source : Bounded_Wide_String;
242
         Set    : Wide_Maps.Wide_Character_Set;
243
         Test   : Membership := Inside;
244
         Going  : Direction  := Forward) return Natural;
245
 
246
      function Index
247
        (Source  : Bounded_Wide_String;
248
         Pattern : Wide_String;
249
         From    : Positive;
250
         Going   : Direction := Forward;
251
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
252
         return Natural;
253
      pragma Ada_05 (Index);
254
 
255
      function Index
256
        (Source  : Bounded_Wide_String;
257
         Pattern : Wide_String;
258
         From    : Positive;
259
         Going   : Direction := Forward;
260
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
261
      pragma Ada_05 (Index);
262
 
263
      function Index
264
        (Source  : Bounded_Wide_String;
265
         Set     : Wide_Maps.Wide_Character_Set;
266
         From    : Positive;
267
         Test    : Membership := Inside;
268
         Going   : Direction := Forward) return Natural;
269
      pragma Ada_05 (Index);
270
 
271
      function Index_Non_Blank
272
        (Source : Bounded_Wide_String;
273
         Going  : Direction := Forward) return Natural;
274
 
275
      function Index_Non_Blank
276
        (Source : Bounded_Wide_String;
277
         From   : Positive;
278
         Going  : Direction := Forward) return Natural;
279
      pragma Ada_05 (Index_Non_Blank);
280
 
281
      function Count
282
        (Source  : Bounded_Wide_String;
283
         Pattern : Wide_String;
284
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
285
         return Natural;
286
 
287
      function Count
288
        (Source  : Bounded_Wide_String;
289
         Pattern : Wide_String;
290
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
291
 
292
      function Count
293
        (Source : Bounded_Wide_String;
294
         Set    : Wide_Maps.Wide_Character_Set) return Natural;
295
 
296
      procedure Find_Token
297
        (Source : Bounded_Wide_String;
298
         Set    : Wide_Maps.Wide_Character_Set;
299
         Test   : Membership;
300
         First  : out Positive;
301
         Last   : out Natural);
302
 
303
      ------------------------------------
304
      -- String Translation Subprograms --
305
      ------------------------------------
306
 
307
      function Translate
308
        (Source  : Bounded_Wide_String;
309
         Mapping : Wide_Maps.Wide_Character_Mapping)
310
         return Bounded_Wide_String;
311
 
312
      procedure Translate
313
        (Source  : in out Bounded_Wide_String;
314
         Mapping : Wide_Maps.Wide_Character_Mapping);
315
 
316
      function Translate
317
        (Source  : Bounded_Wide_String;
318
         Mapping : Wide_Maps.Wide_Character_Mapping_Function)
319
         return Bounded_Wide_String;
320
 
321
      procedure Translate
322
        (Source  : in out Bounded_Wide_String;
323
         Mapping : Wide_Maps.Wide_Character_Mapping_Function);
324
 
325
      ---------------------------------------
326
      -- String Transformation Subprograms --
327
      ---------------------------------------
328
 
329
      function Replace_Slice
330
        (Source : Bounded_Wide_String;
331
         Low    : Positive;
332
         High   : Natural;
333
         By     : Wide_String;
334
         Drop   : Truncation := Error) return Bounded_Wide_String;
335
 
336
      procedure Replace_Slice
337
        (Source   : in out Bounded_Wide_String;
338
         Low      : Positive;
339
         High     : Natural;
340
         By       : Wide_String;
341
         Drop     : Truncation := Error);
342
 
343
      function Insert
344
        (Source   : Bounded_Wide_String;
345
         Before   : Positive;
346
         New_Item : Wide_String;
347
         Drop     : Truncation := Error) return Bounded_Wide_String;
348
 
349
      procedure Insert
350
        (Source   : in out Bounded_Wide_String;
351
         Before   : Positive;
352
         New_Item : Wide_String;
353
         Drop     : Truncation := Error);
354
 
355
      function Overwrite
356
        (Source   : Bounded_Wide_String;
357
         Position : Positive;
358
         New_Item : Wide_String;
359
         Drop     : Truncation := Error) return Bounded_Wide_String;
360
 
361
      procedure Overwrite
362
        (Source    : in out Bounded_Wide_String;
363
         Position  : Positive;
364
         New_Item  : Wide_String;
365
         Drop      : Truncation := Error);
366
 
367
      function Delete
368
        (Source  : Bounded_Wide_String;
369
         From    : Positive;
370
         Through : Natural) return Bounded_Wide_String;
371
 
372
      procedure Delete
373
        (Source  : in out Bounded_Wide_String;
374
         From    : Positive;
375
         Through : Natural);
376
 
377
      ---------------------------------
378
      -- String Selector Subprograms --
379
      ---------------------------------
380
 
381
      function Trim
382
        (Source : Bounded_Wide_String;
383
         Side   : Trim_End) return Bounded_Wide_String;
384
 
385
      procedure Trim
386
        (Source : in out Bounded_Wide_String;
387
         Side   : Trim_End);
388
 
389
      function Trim
390
        (Source : Bounded_Wide_String;
391
          Left  : Wide_Maps.Wide_Character_Set;
392
          Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String;
393
 
394
      procedure Trim
395
        (Source : in out Bounded_Wide_String;
396
         Left   : Wide_Maps.Wide_Character_Set;
397
         Right  : Wide_Maps.Wide_Character_Set);
398
 
399
      function Head
400
        (Source : Bounded_Wide_String;
401
         Count  : Natural;
402
         Pad    : Wide_Character := Wide_Space;
403
         Drop   : Truncation := Error) return Bounded_Wide_String;
404
 
405
      procedure Head
406
        (Source : in out Bounded_Wide_String;
407
         Count  : Natural;
408
         Pad    : Wide_Character  := Wide_Space;
409
         Drop   : Truncation := Error);
410
 
411
      function Tail
412
        (Source : Bounded_Wide_String;
413
         Count  : Natural;
414
         Pad    : Wide_Character := Wide_Space;
415
         Drop   : Truncation     := Error) return Bounded_Wide_String;
416
 
417
      procedure Tail
418
        (Source : in out Bounded_Wide_String;
419
         Count  : Natural;
420
         Pad    : Wide_Character := Wide_Space;
421
         Drop   : Truncation     := Error);
422
 
423
      ------------------------------------
424
      -- String Constructor Subprograms --
425
      ------------------------------------
426
 
427
      function "*"
428
        (Left  : Natural;
429
         Right : Wide_Character) return Bounded_Wide_String;
430
 
431
      function "*"
432
        (Left  : Natural;
433
         Right : Wide_String) return Bounded_Wide_String;
434
 
435
      function "*"
436
        (Left  : Natural;
437
         Right : Bounded_Wide_String) return Bounded_Wide_String;
438
 
439
      function Replicate
440
        (Count : Natural;
441
         Item  : Wide_Character;
442
         Drop  : Truncation := Error) return Bounded_Wide_String;
443
 
444
      function Replicate
445
        (Count : Natural;
446
         Item  : Wide_String;
447
         Drop  : Truncation := Error) return Bounded_Wide_String;
448
 
449
      function Replicate
450
        (Count : Natural;
451
         Item  : Bounded_Wide_String;
452
         Drop  : Truncation := Error) return Bounded_Wide_String;
453
 
454
   private
455
      --  Most of the implementation is in the separate non generic package
456
      --  Ada.Strings.Wide_Superbounded. Type Bounded_Wide_String is derived
457
      --  from type Wide_Superbounded.Super_String with the maximum length
458
      --  constraint. In almost all cases, the routines in Wide_Superbounded
459
      --  can be called with no requirement to pass the maximum length
460
      --  explicitly, since there is at least one Bounded_Wide_String argument
461
      --  from which the maximum length can be obtained. For all such
462
      --  routines, the implementation in this private part is simply a
463
      --  renaming of the corresponding routine in the super bouded package.
464
 
465
      --  The five exceptions are the * and Replicate routines operating on
466
      --  character values. For these cases, we have a routine in the body
467
      --  that calls the superbounded routine passing the maximum length
468
      --  explicitly as an extra parameter.
469
 
470
      type Bounded_Wide_String is
471
        new Wide_Superbounded.Super_String (Max_Length);
472
      --  Deriving Bounded_Wide_String from Wide_Superbounded.Super_String is
473
      --  the real trick, it ensures that the type Bounded_Wide_String
474
      --  declared in the generic instantiation is compatible with the
475
      --  Super_String type declared in the Wide_Superbounded package.
476
 
477
      Null_Bounded_Wide_String : constant Bounded_Wide_String :=
478
                                   (Max_Length         => Max_Length,
479
                                    Current_Length     => 0,
480
                                    Data               =>
481
                                      (1 .. Max_Length =>
482
                                         Wide_Superbounded.Wide_NUL));
483
 
484
      pragma Inline (To_Bounded_Wide_String);
485
 
486
      procedure Set_Bounded_Wide_String
487
        (Target : out Bounded_Wide_String;
488
         Source : Wide_String;
489
         Drop   : Truncation := Error)
490
         renames Set_Super_String;
491
 
492
      function Length
493
        (Source : Bounded_Wide_String) return Length_Range
494
         renames Super_Length;
495
 
496
      function To_Wide_String
497
        (Source : Bounded_Wide_String) return Wide_String
498
         renames Super_To_String;
499
 
500
      function Append
501
        (Left  : Bounded_Wide_String;
502
         Right : Bounded_Wide_String;
503
         Drop  : Truncation  := Error) return Bounded_Wide_String
504
         renames Super_Append;
505
 
506
      function Append
507
        (Left  : Bounded_Wide_String;
508
         Right : Wide_String;
509
         Drop  : Truncation := Error) return Bounded_Wide_String
510
         renames Super_Append;
511
 
512
      function Append
513
        (Left  : Wide_String;
514
         Right : Bounded_Wide_String;
515
         Drop  : Truncation := Error) return Bounded_Wide_String
516
         renames Super_Append;
517
 
518
      function Append
519
        (Left  : Bounded_Wide_String;
520
         Right : Wide_Character;
521
         Drop  : Truncation := Error) return Bounded_Wide_String
522
         renames Super_Append;
523
 
524
      function Append
525
        (Left  : Wide_Character;
526
         Right : Bounded_Wide_String;
527
         Drop  : Truncation := Error) return Bounded_Wide_String
528
         renames Super_Append;
529
 
530
      procedure Append
531
        (Source   : in out Bounded_Wide_String;
532
         New_Item : Bounded_Wide_String;
533
         Drop     : Truncation  := Error)
534
         renames Super_Append;
535
 
536
      procedure Append
537
        (Source   : in out Bounded_Wide_String;
538
         New_Item : Wide_String;
539
         Drop     : Truncation  := Error)
540
         renames Super_Append;
541
 
542
      procedure Append
543
        (Source   : in out Bounded_Wide_String;
544
         New_Item : Wide_Character;
545
         Drop     : Truncation  := Error)
546
         renames Super_Append;
547
 
548
      function "&"
549
        (Left  : Bounded_Wide_String;
550
         Right : Bounded_Wide_String) return Bounded_Wide_String
551
         renames Concat;
552
 
553
      function "&"
554
        (Left  : Bounded_Wide_String;
555
         Right : Wide_String) return Bounded_Wide_String
556
         renames Concat;
557
 
558
      function "&"
559
        (Left  : Wide_String;
560
         Right : Bounded_Wide_String) return Bounded_Wide_String
561
         renames Concat;
562
 
563
      function "&"
564
        (Left  : Bounded_Wide_String;
565
         Right : Wide_Character) return Bounded_Wide_String
566
         renames Concat;
567
 
568
      function "&"
569
        (Left  : Wide_Character;
570
         Right : Bounded_Wide_String) return Bounded_Wide_String
571
         renames Concat;
572
 
573
      function Element
574
        (Source : Bounded_Wide_String;
575
         Index  : Positive) return Wide_Character
576
         renames Super_Element;
577
 
578
      procedure Replace_Element
579
        (Source : in out Bounded_Wide_String;
580
         Index  : Positive;
581
         By     : Wide_Character)
582
         renames Super_Replace_Element;
583
 
584
      function Slice
585
        (Source : Bounded_Wide_String;
586
         Low    : Positive;
587
         High   : Natural) return Wide_String
588
         renames Super_Slice;
589
 
590
      function Bounded_Slice
591
        (Source : Bounded_Wide_String;
592
         Low    : Positive;
593
         High   : Natural) return Bounded_Wide_String
594
         renames Super_Slice;
595
 
596
      procedure Bounded_Slice
597
        (Source : Bounded_Wide_String;
598
         Target : out Bounded_Wide_String;
599
         Low    : Positive;
600
         High   : Natural)
601
         renames Super_Slice;
602
 
603
      function "="
604
        (Left  : Bounded_Wide_String;
605
         Right : Bounded_Wide_String) return Boolean
606
         renames Equal;
607
 
608
      function "="
609
        (Left  : Bounded_Wide_String;
610
         Right : Wide_String) return Boolean
611
         renames Equal;
612
 
613
      function "="
614
        (Left  : Wide_String;
615
         Right : Bounded_Wide_String) return Boolean
616
         renames Equal;
617
 
618
      function "<"
619
        (Left  : Bounded_Wide_String;
620
         Right : Bounded_Wide_String) return Boolean
621
         renames Less;
622
 
623
      function "<"
624
        (Left  : Bounded_Wide_String;
625
         Right : Wide_String) return Boolean
626
         renames Less;
627
 
628
      function "<"
629
        (Left  : Wide_String;
630
         Right : Bounded_Wide_String) return Boolean
631
         renames Less;
632
 
633
      function "<="
634
        (Left  : Bounded_Wide_String;
635
         Right : Bounded_Wide_String) return Boolean
636
         renames Less_Or_Equal;
637
 
638
      function "<="
639
        (Left  : Bounded_Wide_String;
640
         Right : Wide_String) return Boolean
641
         renames Less_Or_Equal;
642
 
643
      function "<="
644
        (Left  : Wide_String;
645
         Right : Bounded_Wide_String) return Boolean
646
         renames Less_Or_Equal;
647
 
648
      function ">"
649
        (Left  : Bounded_Wide_String;
650
         Right : Bounded_Wide_String) return Boolean
651
         renames Greater;
652
 
653
      function ">"
654
        (Left  : Bounded_Wide_String;
655
         Right : Wide_String) return Boolean
656
         renames Greater;
657
 
658
      function ">"
659
        (Left  : Wide_String;
660
         Right : Bounded_Wide_String) return Boolean
661
         renames Greater;
662
 
663
      function ">="
664
        (Left  : Bounded_Wide_String;
665
         Right : Bounded_Wide_String) return Boolean
666
         renames Greater_Or_Equal;
667
 
668
      function ">="
669
        (Left  : Bounded_Wide_String;
670
         Right : Wide_String) return Boolean
671
         renames Greater_Or_Equal;
672
 
673
      function ">="
674
        (Left  : Wide_String;
675
         Right : Bounded_Wide_String) return Boolean
676
         renames Greater_Or_Equal;
677
 
678
      function Index
679
        (Source  : Bounded_Wide_String;
680
         Pattern : Wide_String;
681
         Going   : Direction := Forward;
682
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
683
         return Natural
684
         renames Super_Index;
685
 
686
      function Index
687
        (Source  : Bounded_Wide_String;
688
         Pattern : Wide_String;
689
         Going   : Direction := Forward;
690
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
691
         renames Super_Index;
692
 
693
      function Index
694
        (Source : Bounded_Wide_String;
695
         Set    : Wide_Maps.Wide_Character_Set;
696
         Test   : Membership := Inside;
697
         Going  : Direction  := Forward) return Natural
698
         renames Super_Index;
699
 
700
      function Index
701
        (Source  : Bounded_Wide_String;
702
         Pattern : Wide_String;
703
         From    : Positive;
704
         Going   : Direction := Forward;
705
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
706
         return Natural
707
         renames Super_Index;
708
 
709
      function Index
710
        (Source  : Bounded_Wide_String;
711
         Pattern : Wide_String;
712
         From    : Positive;
713
         Going   : Direction := Forward;
714
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
715
      renames Super_Index;
716
 
717
      function Index
718
        (Source  : Bounded_Wide_String;
719
         Set     : Wide_Maps.Wide_Character_Set;
720
         From    : Positive;
721
         Test    : Membership := Inside;
722
         Going   : Direction := Forward) return Natural
723
      renames Super_Index;
724
 
725
      function Index_Non_Blank
726
        (Source : Bounded_Wide_String;
727
         Going  : Direction := Forward) return Natural
728
         renames Super_Index_Non_Blank;
729
 
730
      function Index_Non_Blank
731
        (Source : Bounded_Wide_String;
732
         From   : Positive;
733
         Going  : Direction := Forward) return Natural
734
         renames Super_Index_Non_Blank;
735
 
736
      function Count
737
        (Source  : Bounded_Wide_String;
738
         Pattern : Wide_String;
739
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
740
         return Natural
741
         renames Super_Count;
742
 
743
      function Count
744
        (Source  : Bounded_Wide_String;
745
         Pattern : Wide_String;
746
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
747
         renames Super_Count;
748
 
749
      function Count
750
        (Source : Bounded_Wide_String;
751
         Set    : Wide_Maps.Wide_Character_Set) return Natural
752
         renames Super_Count;
753
 
754
      procedure Find_Token
755
        (Source : Bounded_Wide_String;
756
         Set    : Wide_Maps.Wide_Character_Set;
757
         Test   : Membership;
758
         First  : out Positive;
759
         Last   : out Natural)
760
         renames Super_Find_Token;
761
 
762
      function Translate
763
        (Source  : Bounded_Wide_String;
764
         Mapping : Wide_Maps.Wide_Character_Mapping)
765
         return Bounded_Wide_String
766
         renames Super_Translate;
767
 
768
      procedure Translate
769
        (Source   : in out Bounded_Wide_String;
770
         Mapping  : Wide_Maps.Wide_Character_Mapping)
771
         renames Super_Translate;
772
 
773
      function Translate
774
        (Source  : Bounded_Wide_String;
775
         Mapping : Wide_Maps.Wide_Character_Mapping_Function)
776
         return Bounded_Wide_String
777
         renames Super_Translate;
778
 
779
      procedure Translate
780
        (Source  : in out Bounded_Wide_String;
781
         Mapping : Wide_Maps.Wide_Character_Mapping_Function)
782
         renames Super_Translate;
783
 
784
      function Replace_Slice
785
        (Source : Bounded_Wide_String;
786
         Low    : Positive;
787
         High   : Natural;
788
         By     : Wide_String;
789
         Drop   : Truncation := Error) return Bounded_Wide_String
790
         renames Super_Replace_Slice;
791
 
792
      procedure Replace_Slice
793
        (Source   : in out Bounded_Wide_String;
794
         Low      : Positive;
795
         High     : Natural;
796
         By       : Wide_String;
797
         Drop     : Truncation := Error)
798
         renames Super_Replace_Slice;
799
 
800
      function Insert
801
        (Source   : Bounded_Wide_String;
802
         Before   : Positive;
803
         New_Item : Wide_String;
804
         Drop     : Truncation := Error) return Bounded_Wide_String
805
         renames Super_Insert;
806
 
807
      procedure Insert
808
        (Source   : in out Bounded_Wide_String;
809
         Before   : Positive;
810
         New_Item : Wide_String;
811
         Drop     : Truncation := Error)
812
         renames Super_Insert;
813
 
814
      function Overwrite
815
        (Source   : Bounded_Wide_String;
816
         Position : Positive;
817
         New_Item : Wide_String;
818
         Drop     : Truncation := Error) return Bounded_Wide_String
819
         renames Super_Overwrite;
820
 
821
      procedure Overwrite
822
        (Source    : in out Bounded_Wide_String;
823
         Position  : Positive;
824
         New_Item  : Wide_String;
825
         Drop      : Truncation := Error)
826
         renames Super_Overwrite;
827
 
828
      function Delete
829
        (Source  : Bounded_Wide_String;
830
         From    : Positive;
831
         Through : Natural) return Bounded_Wide_String
832
         renames Super_Delete;
833
 
834
      procedure Delete
835
        (Source  : in out Bounded_Wide_String;
836
         From    : Positive;
837
         Through : Natural)
838
         renames Super_Delete;
839
 
840
      function Trim
841
        (Source : Bounded_Wide_String;
842
         Side   : Trim_End) return Bounded_Wide_String
843
         renames Super_Trim;
844
 
845
      procedure Trim
846
        (Source : in out Bounded_Wide_String;
847
         Side   : Trim_End)
848
         renames Super_Trim;
849
 
850
      function Trim
851
        (Source : Bounded_Wide_String;
852
         Left   : Wide_Maps.Wide_Character_Set;
853
         Right  : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String
854
         renames Super_Trim;
855
 
856
      procedure Trim
857
        (Source : in out Bounded_Wide_String;
858
         Left   : Wide_Maps.Wide_Character_Set;
859
         Right  : Wide_Maps.Wide_Character_Set)
860
         renames Super_Trim;
861
 
862
      function Head
863
        (Source : Bounded_Wide_String;
864
         Count  : Natural;
865
         Pad    : Wide_Character := Wide_Space;
866
         Drop   : Truncation     := Error) return Bounded_Wide_String
867
         renames Super_Head;
868
 
869
      procedure Head
870
        (Source : in out Bounded_Wide_String;
871
         Count  : Natural;
872
         Pad    : Wide_Character := Wide_Space;
873
         Drop   : Truncation     := Error)
874
         renames Super_Head;
875
 
876
      function Tail
877
        (Source : Bounded_Wide_String;
878
         Count  : Natural;
879
         Pad    : Wide_Character := Wide_Space;
880
         Drop   : Truncation     := Error) return Bounded_Wide_String
881
         renames Super_Tail;
882
 
883
      procedure Tail
884
        (Source : in out Bounded_Wide_String;
885
         Count  : Natural;
886
         Pad    : Wide_Character := Wide_Space;
887
         Drop   : Truncation := Error)
888
         renames Super_Tail;
889
 
890
      function "*"
891
        (Left  : Natural;
892
         Right : Bounded_Wide_String) return Bounded_Wide_String
893
         renames Times;
894
 
895
      function Replicate
896
        (Count : Natural;
897
         Item  : Bounded_Wide_String;
898
         Drop  : Truncation := Error) return Bounded_Wide_String
899
         renames Super_Replicate;
900
 
901
   end Generic_Bounded_Length;
902
 
903
end Ada.Strings.Wide_Bounded;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.