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-stzbou.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 _ 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_Wide_Maps;
37
with Ada.Strings.Wide_Wide_Superbounded;
38
 
39
package Ada.Strings.Wide_Wide_Bounded is
40
   pragma Preelaborate;
41
 
42
   generic
43
      Max : Positive;
44
      --  Maximum length of a Bounded_Wide_Wide_String
45
 
46
   package Generic_Bounded_Length is
47
 
48
      Max_Length : constant Positive := Max;
49
 
50
      type Bounded_Wide_Wide_String is private;
51
      pragma Preelaborable_Initialization (Bounded_Wide_Wide_String);
52
 
53
      Null_Bounded_Wide_Wide_String : constant Bounded_Wide_Wide_String;
54
 
55
      subtype Length_Range is Natural range 0 .. Max_Length;
56
 
57
      function Length (Source : Bounded_Wide_Wide_String) return Length_Range;
58
 
59
      --------------------------------------------------------
60
      -- Conversion, Concatenation, and Selection Functions --
61
      --------------------------------------------------------
62
 
63
      function To_Bounded_Wide_Wide_String
64
        (Source : Wide_Wide_String;
65
         Drop   : Truncation := Error) return Bounded_Wide_Wide_String;
66
 
67
      function To_Wide_Wide_String
68
        (Source : Bounded_Wide_Wide_String) return Wide_Wide_String;
69
 
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);
75
 
76
      function Append
77
        (Left  : Bounded_Wide_Wide_String;
78
         Right : Bounded_Wide_Wide_String;
79
         Drop  : Truncation  := Error) return Bounded_Wide_Wide_String;
80
 
81
      function Append
82
        (Left  : Bounded_Wide_Wide_String;
83
         Right : Wide_Wide_String;
84
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
85
 
86
      function Append
87
        (Left  : Wide_Wide_String;
88
         Right : Bounded_Wide_Wide_String;
89
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
90
 
91
      function Append
92
        (Left  : Bounded_Wide_Wide_String;
93
         Right : Wide_Wide_Character;
94
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
95
 
96
      function Append
97
        (Left  : Wide_Wide_Character;
98
         Right : Bounded_Wide_Wide_String;
99
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
100
 
101
      procedure Append
102
        (Source   : in out Bounded_Wide_Wide_String;
103
         New_Item : Bounded_Wide_Wide_String;
104
         Drop     : Truncation  := Error);
105
 
106
      procedure Append
107
        (Source   : in out Bounded_Wide_Wide_String;
108
         New_Item : Wide_Wide_String;
109
         Drop     : Truncation  := Error);
110
 
111
      procedure Append
112
        (Source   : in out Bounded_Wide_Wide_String;
113
         New_Item : Wide_Wide_Character;
114
         Drop     : Truncation  := Error);
115
 
116
      function "&"
117
        (Left  : Bounded_Wide_Wide_String;
118
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
119
 
120
      function "&"
121
        (Left  : Bounded_Wide_Wide_String;
122
         Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
123
 
124
      function "&"
125
        (Left  : Wide_Wide_String;
126
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
127
 
128
      function "&"
129
        (Left  : Bounded_Wide_Wide_String;
130
         Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
131
 
132
      function "&"
133
        (Left  : Wide_Wide_Character;
134
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
135
 
136
      function Element
137
        (Source : Bounded_Wide_Wide_String;
138
         Index  : Positive) return Wide_Wide_Character;
139
 
140
      procedure Replace_Element
141
        (Source : in out Bounded_Wide_Wide_String;
142
         Index  : Positive;
143
         By     : Wide_Wide_Character);
144
 
145
      function Slice
146
        (Source : Bounded_Wide_Wide_String;
147
         Low    : Positive;
148
         High   : Natural) return Wide_Wide_String;
149
 
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);
155
 
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);
162
 
163
      function "="
164
        (Left  : Bounded_Wide_Wide_String;
165
         Right : Bounded_Wide_Wide_String) return Boolean;
166
 
167
      function "="
168
        (Left  : Bounded_Wide_Wide_String;
169
         Right : Wide_Wide_String) return Boolean;
170
 
171
      function "="
172
        (Left  : Wide_Wide_String;
173
         Right : Bounded_Wide_Wide_String) return Boolean;
174
 
175
      function "<"
176
        (Left  : Bounded_Wide_Wide_String;
177
         Right : Bounded_Wide_Wide_String) return Boolean;
178
 
179
      function "<"
180
        (Left  : Bounded_Wide_Wide_String;
181
         Right : Wide_Wide_String) return Boolean;
182
 
183
      function "<"
184
        (Left  : Wide_Wide_String;
185
         Right : Bounded_Wide_Wide_String) return Boolean;
186
 
187
      function "<="
188
        (Left  : Bounded_Wide_Wide_String;
189
         Right : Bounded_Wide_Wide_String) return Boolean;
190
 
191
      function "<="
192
        (Left  : Bounded_Wide_Wide_String;
193
         Right : Wide_Wide_String) return Boolean;
194
 
195
      function "<="
196
        (Left  : Wide_Wide_String;
197
         Right : Bounded_Wide_Wide_String) return Boolean;
198
 
199
      function ">"
200
        (Left  : Bounded_Wide_Wide_String;
201
         Right : Bounded_Wide_Wide_String) return Boolean;
202
 
203
      function ">"
204
        (Left  : Bounded_Wide_Wide_String;
205
         Right : Wide_Wide_String) return Boolean;
206
 
207
      function ">"
208
        (Left  : Wide_Wide_String;
209
         Right : Bounded_Wide_Wide_String) return Boolean;
210
 
211
      function ">="
212
        (Left  : Bounded_Wide_Wide_String;
213
         Right : Bounded_Wide_Wide_String) return Boolean;
214
 
215
      function ">="
216
        (Left  : Bounded_Wide_Wide_String;
217
         Right : Wide_Wide_String) return Boolean;
218
 
219
      function ">="
220
        (Left  : Wide_Wide_String;
221
         Right : Bounded_Wide_Wide_String) return Boolean;
222
 
223
      ----------------------
224
      -- Search Functions --
225
      ----------------------
226
 
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;
234
 
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;
241
 
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;
247
 
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);
257
 
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);
266
 
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);
274
 
275
      function Index_Non_Blank
276
        (Source : Bounded_Wide_Wide_String;
277
         Going  : Direction := Forward) return Natural;
278
 
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);
284
 
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;
291
 
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;
297
 
298
      function Count
299
        (Source : Bounded_Wide_Wide_String;
300
         Set    : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
301
 
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);
308
 
309
      ------------------------------------
310
      -- String Translation Subprograms --
311
      ------------------------------------
312
 
313
      function Translate
314
        (Source  : Bounded_Wide_Wide_String;
315
         Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
316
         return Bounded_Wide_Wide_String;
317
 
318
      procedure Translate
319
        (Source  : in out Bounded_Wide_Wide_String;
320
         Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
321
 
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;
326
 
327
      procedure Translate
328
        (Source  : in out Bounded_Wide_Wide_String;
329
         Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
330
 
331
      ---------------------------------------
332
      -- String Transformation Subprograms --
333
      ---------------------------------------
334
 
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;
341
 
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);
348
 
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;
354
 
355
      procedure Insert
356
        (Source   : in out Bounded_Wide_Wide_String;
357
         Before   : Positive;
358
         New_Item : Wide_Wide_String;
359
         Drop     : Truncation := Error);
360
 
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;
366
 
367
      procedure Overwrite
368
        (Source    : in out Bounded_Wide_Wide_String;
369
         Position  : Positive;
370
         New_Item  : Wide_Wide_String;
371
         Drop      : Truncation := Error);
372
 
373
      function Delete
374
        (Source  : Bounded_Wide_Wide_String;
375
         From    : Positive;
376
         Through : Natural) return Bounded_Wide_Wide_String;
377
 
378
      procedure Delete
379
        (Source  : in out Bounded_Wide_Wide_String;
380
         From    : Positive;
381
         Through : Natural);
382
 
383
      ---------------------------------
384
      -- String Selector Subprograms --
385
      ---------------------------------
386
 
387
      function Trim
388
        (Source : Bounded_Wide_Wide_String;
389
         Side   : Trim_End) return Bounded_Wide_Wide_String;
390
 
391
      procedure Trim
392
        (Source : in out Bounded_Wide_Wide_String;
393
         Side   : Trim_End);
394
 
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;
400
 
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);
405
 
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;
411
 
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);
417
 
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;
423
 
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);
429
 
430
      ------------------------------------
431
      -- String Constructor Subprograms --
432
      ------------------------------------
433
 
434
      function "*"
435
        (Left  : Natural;
436
         Right : Wide_Wide_Character) return Bounded_Wide_Wide_String;
437
 
438
      function "*"
439
        (Left  : Natural;
440
         Right : Wide_Wide_String) return Bounded_Wide_Wide_String;
441
 
442
      function "*"
443
        (Left  : Natural;
444
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String;
445
 
446
      function Replicate
447
        (Count : Natural;
448
         Item  : Wide_Wide_Character;
449
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
450
 
451
      function Replicate
452
        (Count : Natural;
453
         Item  : Wide_Wide_String;
454
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
455
 
456
      function Replicate
457
        (Count : Natural;
458
         Item  : Bounded_Wide_Wide_String;
459
         Drop  : Truncation := Error) return Bounded_Wide_Wide_String;
460
 
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.
472
 
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.
477
 
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.
485
 
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));
492
 
493
      pragma Inline (To_Bounded_Wide_Wide_String);
494
 
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;
500
 
501
      function Length
502
        (Source : Bounded_Wide_Wide_String) return Length_Range
503
         renames Super_Length;
504
 
505
      function To_Wide_Wide_String
506
        (Source : Bounded_Wide_Wide_String) return Wide_Wide_String
507
         renames Super_To_String;
508
 
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;
514
 
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;
520
 
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;
526
 
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;
532
 
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;
538
 
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;
544
 
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;
550
 
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;
556
 
557
      function "&"
558
        (Left  : Bounded_Wide_Wide_String;
559
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
560
         renames Concat;
561
 
562
      function "&"
563
        (Left  : Bounded_Wide_Wide_String;
564
         Right : Wide_Wide_String) return Bounded_Wide_Wide_String
565
         renames Concat;
566
 
567
      function "&"
568
        (Left  : Wide_Wide_String;
569
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
570
         renames Concat;
571
 
572
      function "&"
573
        (Left  : Bounded_Wide_Wide_String;
574
         Right : Wide_Wide_Character) return Bounded_Wide_Wide_String
575
         renames Concat;
576
 
577
      function "&"
578
        (Left  : Wide_Wide_Character;
579
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
580
         renames Concat;
581
 
582
      function Element
583
        (Source : Bounded_Wide_Wide_String;
584
         Index  : Positive) return Wide_Wide_Character
585
         renames Super_Element;
586
 
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;
592
 
593
      function Slice
594
        (Source : Bounded_Wide_Wide_String;
595
         Low    : Positive;
596
         High   : Natural) return Wide_Wide_String
597
         renames Super_Slice;
598
 
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;
604
 
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;
611
 
612
      function "="
613
        (Left  : Bounded_Wide_Wide_String;
614
         Right : Bounded_Wide_Wide_String) return Boolean
615
         renames Equal;
616
 
617
      function "="
618
        (Left  : Bounded_Wide_Wide_String;
619
         Right : Wide_Wide_String) return Boolean
620
         renames Equal;
621
 
622
      function "="
623
        (Left  : Wide_Wide_String;
624
         Right : Bounded_Wide_Wide_String) return Boolean
625
         renames Equal;
626
 
627
      function "<"
628
        (Left  : Bounded_Wide_Wide_String;
629
         Right : Bounded_Wide_Wide_String) return Boolean
630
         renames Less;
631
 
632
      function "<"
633
        (Left  : Bounded_Wide_Wide_String;
634
         Right : Wide_Wide_String) return Boolean
635
         renames Less;
636
 
637
      function "<"
638
        (Left  : Wide_Wide_String;
639
         Right : Bounded_Wide_Wide_String) return Boolean
640
         renames Less;
641
 
642
      function "<="
643
        (Left  : Bounded_Wide_Wide_String;
644
         Right : Bounded_Wide_Wide_String) return Boolean
645
         renames Less_Or_Equal;
646
 
647
      function "<="
648
        (Left  : Bounded_Wide_Wide_String;
649
         Right : Wide_Wide_String) return Boolean
650
         renames Less_Or_Equal;
651
 
652
      function "<="
653
        (Left  : Wide_Wide_String;
654
         Right : Bounded_Wide_Wide_String) return Boolean
655
         renames Less_Or_Equal;
656
 
657
      function ">"
658
        (Left  : Bounded_Wide_Wide_String;
659
         Right : Bounded_Wide_Wide_String) return Boolean
660
         renames Greater;
661
 
662
      function ">"
663
        (Left  : Bounded_Wide_Wide_String;
664
         Right : Wide_Wide_String) return Boolean
665
         renames Greater;
666
 
667
      function ">"
668
        (Left  : Wide_Wide_String;
669
         Right : Bounded_Wide_Wide_String) return Boolean
670
         renames Greater;
671
 
672
      function ">="
673
        (Left  : Bounded_Wide_Wide_String;
674
         Right : Bounded_Wide_Wide_String) return Boolean
675
         renames Greater_Or_Equal;
676
 
677
      function ">="
678
        (Left  : Bounded_Wide_Wide_String;
679
         Right : Wide_Wide_String) return Boolean
680
         renames Greater_Or_Equal;
681
 
682
      function ">="
683
        (Left  : Wide_Wide_String;
684
         Right : Bounded_Wide_Wide_String) return Boolean
685
         renames Greater_Or_Equal;
686
 
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;
695
 
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;
703
 
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;
710
 
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;
720
 
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;
729
 
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;
737
 
738
      function Index_Non_Blank
739
        (Source : Bounded_Wide_Wide_String;
740
         Going  : Direction := Forward) return Natural
741
         renames Super_Index_Non_Blank;
742
 
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;
748
 
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;
756
 
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;
763
 
764
      function Count
765
        (Source : Bounded_Wide_Wide_String;
766
         Set    : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural
767
         renames Super_Count;
768
 
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;
776
 
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;
782
 
783
      procedure Translate
784
        (Source   : in out Bounded_Wide_Wide_String;
785
         Mapping  : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
786
         renames Super_Translate;
787
 
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;
793
 
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;
798
 
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;
806
 
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;
814
 
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;
821
 
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;
828
 
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;
835
 
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;
842
 
843
      function Delete
844
        (Source  : Bounded_Wide_Wide_String;
845
         From    : Positive;
846
         Through : Natural) return Bounded_Wide_Wide_String
847
         renames Super_Delete;
848
 
849
      procedure Delete
850
        (Source  : in out Bounded_Wide_Wide_String;
851
         From    : Positive;
852
         Through : Natural)
853
         renames Super_Delete;
854
 
855
      function Trim
856
        (Source : Bounded_Wide_Wide_String;
857
         Side   : Trim_End) return Bounded_Wide_Wide_String
858
         renames Super_Trim;
859
 
860
      procedure Trim
861
        (Source : in out Bounded_Wide_Wide_String;
862
         Side   : Trim_End)
863
         renames Super_Trim;
864
 
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;
871
 
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;
877
 
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;
884
 
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;
891
 
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;
898
 
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;
905
 
906
      function "*"
907
        (Left  : Natural;
908
         Right : Bounded_Wide_Wide_String) return Bounded_Wide_Wide_String
909
         renames Times;
910
 
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;
916
 
917
   end Generic_Bounded_Length;
918
 
919
end Ada.Strings.Wide_Wide_Bounded;

powered by: WebSVN 2.1.0

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