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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [ada/] [a-stzbou.ads] - Blame information for rev 16

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

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