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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [a-stwibo.ads] - Blame information for rev 747

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 706 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-2010, 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
         From   : Positive;
300
         Test   : Membership;
301
         First  : out Positive;
302
         Last   : out Natural);
303
      pragma Ada_2012 (Find_Token);
304
 
305
      procedure Find_Token
306
        (Source : Bounded_Wide_String;
307
         Set    : Wide_Maps.Wide_Character_Set;
308
         Test   : Membership;
309
         First  : out Positive;
310
         Last   : out Natural);
311
 
312
      ------------------------------------
313
      -- String Translation Subprograms --
314
      ------------------------------------
315
 
316
      function Translate
317
        (Source  : Bounded_Wide_String;
318
         Mapping : Wide_Maps.Wide_Character_Mapping)
319
         return Bounded_Wide_String;
320
 
321
      procedure Translate
322
        (Source  : in out Bounded_Wide_String;
323
         Mapping : Wide_Maps.Wide_Character_Mapping);
324
 
325
      function Translate
326
        (Source  : Bounded_Wide_String;
327
         Mapping : Wide_Maps.Wide_Character_Mapping_Function)
328
         return Bounded_Wide_String;
329
 
330
      procedure Translate
331
        (Source  : in out Bounded_Wide_String;
332
         Mapping : Wide_Maps.Wide_Character_Mapping_Function);
333
 
334
      ---------------------------------------
335
      -- String Transformation Subprograms --
336
      ---------------------------------------
337
 
338
      function Replace_Slice
339
        (Source : Bounded_Wide_String;
340
         Low    : Positive;
341
         High   : Natural;
342
         By     : Wide_String;
343
         Drop   : Truncation := Error) return Bounded_Wide_String;
344
 
345
      procedure Replace_Slice
346
        (Source   : in out Bounded_Wide_String;
347
         Low      : Positive;
348
         High     : Natural;
349
         By       : Wide_String;
350
         Drop     : Truncation := Error);
351
 
352
      function Insert
353
        (Source   : Bounded_Wide_String;
354
         Before   : Positive;
355
         New_Item : Wide_String;
356
         Drop     : Truncation := Error) return Bounded_Wide_String;
357
 
358
      procedure Insert
359
        (Source   : in out Bounded_Wide_String;
360
         Before   : Positive;
361
         New_Item : Wide_String;
362
         Drop     : Truncation := Error);
363
 
364
      function Overwrite
365
        (Source   : Bounded_Wide_String;
366
         Position : Positive;
367
         New_Item : Wide_String;
368
         Drop     : Truncation := Error) return Bounded_Wide_String;
369
 
370
      procedure Overwrite
371
        (Source    : in out Bounded_Wide_String;
372
         Position  : Positive;
373
         New_Item  : Wide_String;
374
         Drop      : Truncation := Error);
375
 
376
      function Delete
377
        (Source  : Bounded_Wide_String;
378
         From    : Positive;
379
         Through : Natural) return Bounded_Wide_String;
380
 
381
      procedure Delete
382
        (Source  : in out Bounded_Wide_String;
383
         From    : Positive;
384
         Through : Natural);
385
 
386
      ---------------------------------
387
      -- String Selector Subprograms --
388
      ---------------------------------
389
 
390
      function Trim
391
        (Source : Bounded_Wide_String;
392
         Side   : Trim_End) return Bounded_Wide_String;
393
 
394
      procedure Trim
395
        (Source : in out Bounded_Wide_String;
396
         Side   : Trim_End);
397
 
398
      function Trim
399
        (Source : Bounded_Wide_String;
400
          Left  : Wide_Maps.Wide_Character_Set;
401
          Right : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String;
402
 
403
      procedure Trim
404
        (Source : in out Bounded_Wide_String;
405
         Left   : Wide_Maps.Wide_Character_Set;
406
         Right  : Wide_Maps.Wide_Character_Set);
407
 
408
      function Head
409
        (Source : Bounded_Wide_String;
410
         Count  : Natural;
411
         Pad    : Wide_Character := Wide_Space;
412
         Drop   : Truncation := Error) return Bounded_Wide_String;
413
 
414
      procedure Head
415
        (Source : in out Bounded_Wide_String;
416
         Count  : Natural;
417
         Pad    : Wide_Character  := Wide_Space;
418
         Drop   : Truncation := Error);
419
 
420
      function Tail
421
        (Source : Bounded_Wide_String;
422
         Count  : Natural;
423
         Pad    : Wide_Character := Wide_Space;
424
         Drop   : Truncation     := Error) return Bounded_Wide_String;
425
 
426
      procedure Tail
427
        (Source : in out Bounded_Wide_String;
428
         Count  : Natural;
429
         Pad    : Wide_Character := Wide_Space;
430
         Drop   : Truncation     := Error);
431
 
432
      ------------------------------------
433
      -- String Constructor Subprograms --
434
      ------------------------------------
435
 
436
      function "*"
437
        (Left  : Natural;
438
         Right : Wide_Character) return Bounded_Wide_String;
439
 
440
      function "*"
441
        (Left  : Natural;
442
         Right : Wide_String) return Bounded_Wide_String;
443
 
444
      function "*"
445
        (Left  : Natural;
446
         Right : Bounded_Wide_String) return Bounded_Wide_String;
447
 
448
      function Replicate
449
        (Count : Natural;
450
         Item  : Wide_Character;
451
         Drop  : Truncation := Error) return Bounded_Wide_String;
452
 
453
      function Replicate
454
        (Count : Natural;
455
         Item  : Wide_String;
456
         Drop  : Truncation := Error) return Bounded_Wide_String;
457
 
458
      function Replicate
459
        (Count : Natural;
460
         Item  : Bounded_Wide_String;
461
         Drop  : Truncation := Error) return Bounded_Wide_String;
462
 
463
   private
464
      --  Most of the implementation is in the separate non generic package
465
      --  Ada.Strings.Wide_Superbounded. Type Bounded_Wide_String is derived
466
      --  from type Wide_Superbounded.Super_String with the maximum length
467
      --  constraint. In almost all cases, the routines in Wide_Superbounded
468
      --  can be called with no requirement to pass the maximum length
469
      --  explicitly, since there is at least one Bounded_Wide_String argument
470
      --  from which the maximum length can be obtained. For all such
471
      --  routines, the implementation in this private part is simply a
472
      --  renaming of the corresponding routine in the super bouded package.
473
 
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.
478
 
479
      type Bounded_Wide_String is
480
        new Wide_Superbounded.Super_String (Max_Length);
481
      --  Deriving Bounded_Wide_String from Wide_Superbounded.Super_String is
482
      --  the real trick, it ensures that the type Bounded_Wide_String
483
      --  declared in the generic instantiation is compatible with the
484
      --  Super_String type declared in the Wide_Superbounded package.
485
 
486
      Null_Bounded_Wide_String : constant Bounded_Wide_String :=
487
                                   (Max_Length         => Max_Length,
488
                                    Current_Length     => 0,
489
                                    Data               =>
490
                                      (1 .. Max_Length =>
491
                                         Wide_Superbounded.Wide_NUL));
492
 
493
      pragma Inline (To_Bounded_Wide_String);
494
 
495
      procedure Set_Bounded_Wide_String
496
        (Target : out Bounded_Wide_String;
497
         Source : Wide_String;
498
         Drop   : Truncation := Error)
499
         renames Set_Super_String;
500
 
501
      function Length
502
        (Source : Bounded_Wide_String) return Length_Range
503
         renames Super_Length;
504
 
505
      function To_Wide_String
506
        (Source : Bounded_Wide_String) return Wide_String
507
         renames Super_To_String;
508
 
509
      function Append
510
        (Left  : Bounded_Wide_String;
511
         Right : Bounded_Wide_String;
512
         Drop  : Truncation  := Error) return Bounded_Wide_String
513
         renames Super_Append;
514
 
515
      function Append
516
        (Left  : Bounded_Wide_String;
517
         Right : Wide_String;
518
         Drop  : Truncation := Error) return Bounded_Wide_String
519
         renames Super_Append;
520
 
521
      function Append
522
        (Left  : Wide_String;
523
         Right : Bounded_Wide_String;
524
         Drop  : Truncation := Error) return Bounded_Wide_String
525
         renames Super_Append;
526
 
527
      function Append
528
        (Left  : Bounded_Wide_String;
529
         Right : Wide_Character;
530
         Drop  : Truncation := Error) return Bounded_Wide_String
531
         renames Super_Append;
532
 
533
      function Append
534
        (Left  : Wide_Character;
535
         Right : Bounded_Wide_String;
536
         Drop  : Truncation := Error) return Bounded_Wide_String
537
         renames Super_Append;
538
 
539
      procedure Append
540
        (Source   : in out Bounded_Wide_String;
541
         New_Item : Bounded_Wide_String;
542
         Drop     : Truncation  := Error)
543
         renames Super_Append;
544
 
545
      procedure Append
546
        (Source   : in out Bounded_Wide_String;
547
         New_Item : Wide_String;
548
         Drop     : Truncation  := Error)
549
         renames Super_Append;
550
 
551
      procedure Append
552
        (Source   : in out Bounded_Wide_String;
553
         New_Item : Wide_Character;
554
         Drop     : Truncation  := Error)
555
         renames Super_Append;
556
 
557
      function "&"
558
        (Left  : Bounded_Wide_String;
559
         Right : Bounded_Wide_String) return Bounded_Wide_String
560
         renames Concat;
561
 
562
      function "&"
563
        (Left  : Bounded_Wide_String;
564
         Right : Wide_String) return Bounded_Wide_String
565
         renames Concat;
566
 
567
      function "&"
568
        (Left  : Wide_String;
569
         Right : Bounded_Wide_String) return Bounded_Wide_String
570
         renames Concat;
571
 
572
      function "&"
573
        (Left  : Bounded_Wide_String;
574
         Right : Wide_Character) return Bounded_Wide_String
575
         renames Concat;
576
 
577
      function "&"
578
        (Left  : Wide_Character;
579
         Right : Bounded_Wide_String) return Bounded_Wide_String
580
         renames Concat;
581
 
582
      function Element
583
        (Source : Bounded_Wide_String;
584
         Index  : Positive) return Wide_Character
585
         renames Super_Element;
586
 
587
      procedure Replace_Element
588
        (Source : in out Bounded_Wide_String;
589
         Index  : Positive;
590
         By     : Wide_Character)
591
         renames Super_Replace_Element;
592
 
593
      function Slice
594
        (Source : Bounded_Wide_String;
595
         Low    : Positive;
596
         High   : Natural) return Wide_String
597
         renames Super_Slice;
598
 
599
      function Bounded_Slice
600
        (Source : Bounded_Wide_String;
601
         Low    : Positive;
602
         High   : Natural) return Bounded_Wide_String
603
         renames Super_Slice;
604
 
605
      procedure Bounded_Slice
606
        (Source : Bounded_Wide_String;
607
         Target : out Bounded_Wide_String;
608
         Low    : Positive;
609
         High   : Natural)
610
         renames Super_Slice;
611
 
612
      function "="
613
        (Left  : Bounded_Wide_String;
614
         Right : Bounded_Wide_String) return Boolean
615
         renames Equal;
616
 
617
      function "="
618
        (Left  : Bounded_Wide_String;
619
         Right : Wide_String) return Boolean
620
         renames Equal;
621
 
622
      function "="
623
        (Left  : Wide_String;
624
         Right : Bounded_Wide_String) return Boolean
625
         renames Equal;
626
 
627
      function "<"
628
        (Left  : Bounded_Wide_String;
629
         Right : Bounded_Wide_String) return Boolean
630
         renames Less;
631
 
632
      function "<"
633
        (Left  : Bounded_Wide_String;
634
         Right : Wide_String) return Boolean
635
         renames Less;
636
 
637
      function "<"
638
        (Left  : Wide_String;
639
         Right : Bounded_Wide_String) return Boolean
640
         renames Less;
641
 
642
      function "<="
643
        (Left  : Bounded_Wide_String;
644
         Right : Bounded_Wide_String) return Boolean
645
         renames Less_Or_Equal;
646
 
647
      function "<="
648
        (Left  : Bounded_Wide_String;
649
         Right : Wide_String) return Boolean
650
         renames Less_Or_Equal;
651
 
652
      function "<="
653
        (Left  : Wide_String;
654
         Right : Bounded_Wide_String) return Boolean
655
         renames Less_Or_Equal;
656
 
657
      function ">"
658
        (Left  : Bounded_Wide_String;
659
         Right : Bounded_Wide_String) return Boolean
660
         renames Greater;
661
 
662
      function ">"
663
        (Left  : Bounded_Wide_String;
664
         Right : Wide_String) return Boolean
665
         renames Greater;
666
 
667
      function ">"
668
        (Left  : Wide_String;
669
         Right : Bounded_Wide_String) return Boolean
670
         renames Greater;
671
 
672
      function ">="
673
        (Left  : Bounded_Wide_String;
674
         Right : Bounded_Wide_String) return Boolean
675
         renames Greater_Or_Equal;
676
 
677
      function ">="
678
        (Left  : Bounded_Wide_String;
679
         Right : Wide_String) return Boolean
680
         renames Greater_Or_Equal;
681
 
682
      function ">="
683
        (Left  : Wide_String;
684
         Right : Bounded_Wide_String) return Boolean
685
         renames Greater_Or_Equal;
686
 
687
      function Index
688
        (Source  : Bounded_Wide_String;
689
         Pattern : Wide_String;
690
         Going   : Direction := Forward;
691
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
692
         return Natural
693
         renames Super_Index;
694
 
695
      function Index
696
        (Source  : Bounded_Wide_String;
697
         Pattern : Wide_String;
698
         Going   : Direction := Forward;
699
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
700
         renames Super_Index;
701
 
702
      function Index
703
        (Source : Bounded_Wide_String;
704
         Set    : Wide_Maps.Wide_Character_Set;
705
         Test   : Membership := Inside;
706
         Going  : Direction  := Forward) 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 := Wide_Maps.Identity)
715
         return Natural
716
         renames Super_Index;
717
 
718
      function Index
719
        (Source  : Bounded_Wide_String;
720
         Pattern : Wide_String;
721
         From    : Positive;
722
         Going   : Direction := Forward;
723
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
724
      renames Super_Index;
725
 
726
      function Index
727
        (Source  : Bounded_Wide_String;
728
         Set     : Wide_Maps.Wide_Character_Set;
729
         From    : Positive;
730
         Test    : Membership := Inside;
731
         Going   : Direction := Forward) return Natural
732
      renames Super_Index;
733
 
734
      function Index_Non_Blank
735
        (Source : Bounded_Wide_String;
736
         Going  : Direction := Forward) return Natural
737
         renames Super_Index_Non_Blank;
738
 
739
      function Index_Non_Blank
740
        (Source : Bounded_Wide_String;
741
         From   : Positive;
742
         Going  : Direction := Forward) return Natural
743
         renames Super_Index_Non_Blank;
744
 
745
      function Count
746
        (Source  : Bounded_Wide_String;
747
         Pattern : Wide_String;
748
         Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
749
         return Natural
750
         renames Super_Count;
751
 
752
      function Count
753
        (Source  : Bounded_Wide_String;
754
         Pattern : Wide_String;
755
         Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural
756
         renames Super_Count;
757
 
758
      function Count
759
        (Source : Bounded_Wide_String;
760
         Set    : Wide_Maps.Wide_Character_Set) return Natural
761
         renames Super_Count;
762
 
763
      procedure Find_Token
764
        (Source : Bounded_Wide_String;
765
         Set    : Wide_Maps.Wide_Character_Set;
766
         From   : Positive;
767
         Test   : Membership;
768
         First  : out Positive;
769
         Last   : out Natural)
770
         renames Super_Find_Token;
771
 
772
      procedure Find_Token
773
        (Source : Bounded_Wide_String;
774
         Set    : Wide_Maps.Wide_Character_Set;
775
         Test   : Membership;
776
         First  : out Positive;
777
         Last   : out Natural)
778
         renames Super_Find_Token;
779
 
780
      function Translate
781
        (Source  : Bounded_Wide_String;
782
         Mapping : Wide_Maps.Wide_Character_Mapping)
783
         return Bounded_Wide_String
784
         renames Super_Translate;
785
 
786
      procedure Translate
787
        (Source   : in out Bounded_Wide_String;
788
         Mapping  : Wide_Maps.Wide_Character_Mapping)
789
         renames Super_Translate;
790
 
791
      function Translate
792
        (Source  : Bounded_Wide_String;
793
         Mapping : Wide_Maps.Wide_Character_Mapping_Function)
794
         return Bounded_Wide_String
795
         renames Super_Translate;
796
 
797
      procedure Translate
798
        (Source  : in out Bounded_Wide_String;
799
         Mapping : Wide_Maps.Wide_Character_Mapping_Function)
800
         renames Super_Translate;
801
 
802
      function Replace_Slice
803
        (Source : Bounded_Wide_String;
804
         Low    : Positive;
805
         High   : Natural;
806
         By     : Wide_String;
807
         Drop   : Truncation := Error) return Bounded_Wide_String
808
         renames Super_Replace_Slice;
809
 
810
      procedure Replace_Slice
811
        (Source   : in out Bounded_Wide_String;
812
         Low      : Positive;
813
         High     : Natural;
814
         By       : Wide_String;
815
         Drop     : Truncation := Error)
816
         renames Super_Replace_Slice;
817
 
818
      function Insert
819
        (Source   : Bounded_Wide_String;
820
         Before   : Positive;
821
         New_Item : Wide_String;
822
         Drop     : Truncation := Error) return Bounded_Wide_String
823
         renames Super_Insert;
824
 
825
      procedure Insert
826
        (Source   : in out Bounded_Wide_String;
827
         Before   : Positive;
828
         New_Item : Wide_String;
829
         Drop     : Truncation := Error)
830
         renames Super_Insert;
831
 
832
      function Overwrite
833
        (Source   : Bounded_Wide_String;
834
         Position : Positive;
835
         New_Item : Wide_String;
836
         Drop     : Truncation := Error) return Bounded_Wide_String
837
         renames Super_Overwrite;
838
 
839
      procedure Overwrite
840
        (Source    : in out Bounded_Wide_String;
841
         Position  : Positive;
842
         New_Item  : Wide_String;
843
         Drop      : Truncation := Error)
844
         renames Super_Overwrite;
845
 
846
      function Delete
847
        (Source  : Bounded_Wide_String;
848
         From    : Positive;
849
         Through : Natural) return Bounded_Wide_String
850
         renames Super_Delete;
851
 
852
      procedure Delete
853
        (Source  : in out Bounded_Wide_String;
854
         From    : Positive;
855
         Through : Natural)
856
         renames Super_Delete;
857
 
858
      function Trim
859
        (Source : Bounded_Wide_String;
860
         Side   : Trim_End) return Bounded_Wide_String
861
         renames Super_Trim;
862
 
863
      procedure Trim
864
        (Source : in out Bounded_Wide_String;
865
         Side   : Trim_End)
866
         renames Super_Trim;
867
 
868
      function Trim
869
        (Source : Bounded_Wide_String;
870
         Left   : Wide_Maps.Wide_Character_Set;
871
         Right  : Wide_Maps.Wide_Character_Set) return Bounded_Wide_String
872
         renames Super_Trim;
873
 
874
      procedure Trim
875
        (Source : in out Bounded_Wide_String;
876
         Left   : Wide_Maps.Wide_Character_Set;
877
         Right  : Wide_Maps.Wide_Character_Set)
878
         renames Super_Trim;
879
 
880
      function Head
881
        (Source : Bounded_Wide_String;
882
         Count  : Natural;
883
         Pad    : Wide_Character := Wide_Space;
884
         Drop   : Truncation     := Error) return Bounded_Wide_String
885
         renames Super_Head;
886
 
887
      procedure Head
888
        (Source : in out Bounded_Wide_String;
889
         Count  : Natural;
890
         Pad    : Wide_Character := Wide_Space;
891
         Drop   : Truncation     := Error)
892
         renames Super_Head;
893
 
894
      function Tail
895
        (Source : Bounded_Wide_String;
896
         Count  : Natural;
897
         Pad    : Wide_Character := Wide_Space;
898
         Drop   : Truncation     := Error) return Bounded_Wide_String
899
         renames Super_Tail;
900
 
901
      procedure Tail
902
        (Source : in out Bounded_Wide_String;
903
         Count  : Natural;
904
         Pad    : Wide_Character := Wide_Space;
905
         Drop   : Truncation := Error)
906
         renames Super_Tail;
907
 
908
      function "*"
909
        (Left  : Natural;
910
         Right : Bounded_Wide_String) return Bounded_Wide_String
911
         renames Times;
912
 
913
      function Replicate
914
        (Count : Natural;
915
         Item  : Bounded_Wide_String;
916
         Drop  : Truncation := Error) return Bounded_Wide_String
917
         renames Super_Replicate;
918
 
919
   end Generic_Bounded_Length;
920
 
921
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.