annotate gcc/ada/libgnat/a-stwisu.ads @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT RUN-TIME COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- A D A . S T R I N G S . W I D E _ S U P E R B O U N D E D --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- S p e c --
kono
parents:
diff changeset
8 -- --
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
9 -- Copyright (C) 2003-2018, Free Software Foundation, Inc. --
111
kono
parents:
diff changeset
10 -- --
kono
parents:
diff changeset
11 -- GNAT is free software; you can redistribute it and/or modify it under --
kono
parents:
diff changeset
12 -- terms of the GNU General Public License as published by the Free Soft- --
kono
parents:
diff changeset
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
kono
parents:
diff changeset
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
kono
parents:
diff changeset
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
kono
parents:
diff changeset
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
kono
parents:
diff changeset
17 -- --
kono
parents:
diff changeset
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
kono
parents:
diff changeset
19 -- additional permissions described in the GCC Runtime Library Exception, --
kono
parents:
diff changeset
20 -- version 3.1, as published by the Free Software Foundation. --
kono
parents:
diff changeset
21 -- --
kono
parents:
diff changeset
22 -- You should have received a copy of the GNU General Public License and --
kono
parents:
diff changeset
23 -- a copy of the GCC Runtime Library Exception along with this program; --
kono
parents:
diff changeset
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
kono
parents:
diff changeset
25 -- <http://www.gnu.org/licenses/>. --
kono
parents:
diff changeset
26 -- --
kono
parents:
diff changeset
27 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
29 -- --
kono
parents:
diff changeset
30 ------------------------------------------------------------------------------
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 -- This non generic package contains most of the implementation of the
kono
parents:
diff changeset
33 -- generic package Ada.Strings.Wide_Bounded.Generic_Bounded_Length.
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 -- It defines type Super_String as a discriminated record with the maximum
kono
parents:
diff changeset
36 -- length as the discriminant. Individual instantiations of the package
kono
parents:
diff changeset
37 -- Strings.Wide_Bounded.Generic_Bounded_Length use this type with
kono
parents:
diff changeset
38 -- an appropriate discriminant value set.
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 with Ada.Strings.Wide_Maps;
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 package Ada.Strings.Wide_Superbounded is
kono
parents:
diff changeset
43 pragma Preelaborate;
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 Wide_NUL : constant Wide_Character := Wide_Character'Val (0);
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 -- Ada.Strings.Wide_Bounded.Generic_Bounded_Length.Wide_Bounded_String is
kono
parents:
diff changeset
48 -- derived from Super_String, with the constraint of the maximum length.
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 type Super_String (Max_Length : Positive) is record
kono
parents:
diff changeset
51 Current_Length : Natural := 0;
kono
parents:
diff changeset
52 Data : Wide_String (1 .. Max_Length);
kono
parents:
diff changeset
53 -- A previous version had a default initial value for Data, which is
kono
parents:
diff changeset
54 -- no longer necessary, because we now special-case this type in the
kono
parents:
diff changeset
55 -- compiler, so "=" composes properly for descendants of this type.
kono
parents:
diff changeset
56 -- Leaving it out is more efficient.
kono
parents:
diff changeset
57 end record;
kono
parents:
diff changeset
58
kono
parents:
diff changeset
59 -- The subprograms defined for Super_String are similar to those defined
kono
parents:
diff changeset
60 -- for Bounded_Wide_String, except that they have different names, so that
kono
parents:
diff changeset
61 -- they can be renamed in Ada.Strings.Wide_Bounded.Generic_Bounded_Length.
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 function Super_Length (Source : Super_String) return Natural;
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 --------------------------------------------------------
kono
parents:
diff changeset
66 -- Conversion, Concatenation, and Selection Functions --
kono
parents:
diff changeset
67 --------------------------------------------------------
kono
parents:
diff changeset
68
kono
parents:
diff changeset
69 function To_Super_String
kono
parents:
diff changeset
70 (Source : Wide_String;
kono
parents:
diff changeset
71 Max_Length : Natural;
kono
parents:
diff changeset
72 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
73 -- Note the additional parameter Max_Length, which specifies the maximum
kono
parents:
diff changeset
74 -- length setting of the resulting Super_String value.
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 -- The following procedures have declarations (and semantics) that are
kono
parents:
diff changeset
77 -- exactly analogous to those declared in Ada.Strings.Wide_Bounded.
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 function Super_To_String (Source : Super_String) return Wide_String;
kono
parents:
diff changeset
80
kono
parents:
diff changeset
81 procedure Set_Super_String
kono
parents:
diff changeset
82 (Target : out Super_String;
kono
parents:
diff changeset
83 Source : Wide_String;
kono
parents:
diff changeset
84 Drop : Truncation := Error);
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 function Super_Append
kono
parents:
diff changeset
87 (Left : Super_String;
kono
parents:
diff changeset
88 Right : Super_String;
kono
parents:
diff changeset
89 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 function Super_Append
kono
parents:
diff changeset
92 (Left : Super_String;
kono
parents:
diff changeset
93 Right : Wide_String;
kono
parents:
diff changeset
94 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
95
kono
parents:
diff changeset
96 function Super_Append
kono
parents:
diff changeset
97 (Left : Wide_String;
kono
parents:
diff changeset
98 Right : Super_String;
kono
parents:
diff changeset
99 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
100
kono
parents:
diff changeset
101 function Super_Append
kono
parents:
diff changeset
102 (Left : Super_String;
kono
parents:
diff changeset
103 Right : Wide_Character;
kono
parents:
diff changeset
104 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 function Super_Append
kono
parents:
diff changeset
107 (Left : Wide_Character;
kono
parents:
diff changeset
108 Right : Super_String;
kono
parents:
diff changeset
109 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
110
kono
parents:
diff changeset
111 procedure Super_Append
kono
parents:
diff changeset
112 (Source : in out Super_String;
kono
parents:
diff changeset
113 New_Item : Super_String;
kono
parents:
diff changeset
114 Drop : Truncation := Error);
kono
parents:
diff changeset
115
kono
parents:
diff changeset
116 procedure Super_Append
kono
parents:
diff changeset
117 (Source : in out Super_String;
kono
parents:
diff changeset
118 New_Item : Wide_String;
kono
parents:
diff changeset
119 Drop : Truncation := Error);
kono
parents:
diff changeset
120
kono
parents:
diff changeset
121 procedure Super_Append
kono
parents:
diff changeset
122 (Source : in out Super_String;
kono
parents:
diff changeset
123 New_Item : Wide_Character;
kono
parents:
diff changeset
124 Drop : Truncation := Error);
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 function Concat
kono
parents:
diff changeset
127 (Left : Super_String;
kono
parents:
diff changeset
128 Right : Super_String) return Super_String;
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 function Concat
kono
parents:
diff changeset
131 (Left : Super_String;
kono
parents:
diff changeset
132 Right : Wide_String) return Super_String;
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 function Concat
kono
parents:
diff changeset
135 (Left : Wide_String;
kono
parents:
diff changeset
136 Right : Super_String) return Super_String;
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 function Concat
kono
parents:
diff changeset
139 (Left : Super_String;
kono
parents:
diff changeset
140 Right : Wide_Character) return Super_String;
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 function Concat
kono
parents:
diff changeset
143 (Left : Wide_Character;
kono
parents:
diff changeset
144 Right : Super_String) return Super_String;
kono
parents:
diff changeset
145
kono
parents:
diff changeset
146 function Super_Element
kono
parents:
diff changeset
147 (Source : Super_String;
kono
parents:
diff changeset
148 Index : Positive) return Wide_Character;
kono
parents:
diff changeset
149
kono
parents:
diff changeset
150 procedure Super_Replace_Element
kono
parents:
diff changeset
151 (Source : in out Super_String;
kono
parents:
diff changeset
152 Index : Positive;
kono
parents:
diff changeset
153 By : Wide_Character);
kono
parents:
diff changeset
154
kono
parents:
diff changeset
155 function Super_Slice
kono
parents:
diff changeset
156 (Source : Super_String;
kono
parents:
diff changeset
157 Low : Positive;
kono
parents:
diff changeset
158 High : Natural) return Wide_String;
kono
parents:
diff changeset
159
kono
parents:
diff changeset
160 function Super_Slice
kono
parents:
diff changeset
161 (Source : Super_String;
kono
parents:
diff changeset
162 Low : Positive;
kono
parents:
diff changeset
163 High : Natural) return Super_String;
kono
parents:
diff changeset
164
kono
parents:
diff changeset
165 procedure Super_Slice
kono
parents:
diff changeset
166 (Source : Super_String;
kono
parents:
diff changeset
167 Target : out Super_String;
kono
parents:
diff changeset
168 Low : Positive;
kono
parents:
diff changeset
169 High : Natural);
kono
parents:
diff changeset
170
kono
parents:
diff changeset
171 function "="
kono
parents:
diff changeset
172 (Left : Super_String;
kono
parents:
diff changeset
173 Right : Super_String) return Boolean;
kono
parents:
diff changeset
174
kono
parents:
diff changeset
175 function Equal
kono
parents:
diff changeset
176 (Left : Super_String;
kono
parents:
diff changeset
177 Right : Super_String) return Boolean renames "=";
kono
parents:
diff changeset
178
kono
parents:
diff changeset
179 function Equal
kono
parents:
diff changeset
180 (Left : Super_String;
kono
parents:
diff changeset
181 Right : Wide_String) return Boolean;
kono
parents:
diff changeset
182
kono
parents:
diff changeset
183 function Equal
kono
parents:
diff changeset
184 (Left : Wide_String;
kono
parents:
diff changeset
185 Right : Super_String) return Boolean;
kono
parents:
diff changeset
186
kono
parents:
diff changeset
187 function Less
kono
parents:
diff changeset
188 (Left : Super_String;
kono
parents:
diff changeset
189 Right : Super_String) return Boolean;
kono
parents:
diff changeset
190
kono
parents:
diff changeset
191 function Less
kono
parents:
diff changeset
192 (Left : Super_String;
kono
parents:
diff changeset
193 Right : Wide_String) return Boolean;
kono
parents:
diff changeset
194
kono
parents:
diff changeset
195 function Less
kono
parents:
diff changeset
196 (Left : Wide_String;
kono
parents:
diff changeset
197 Right : Super_String) return Boolean;
kono
parents:
diff changeset
198
kono
parents:
diff changeset
199 function Less_Or_Equal
kono
parents:
diff changeset
200 (Left : Super_String;
kono
parents:
diff changeset
201 Right : Super_String) return Boolean;
kono
parents:
diff changeset
202
kono
parents:
diff changeset
203 function Less_Or_Equal
kono
parents:
diff changeset
204 (Left : Super_String;
kono
parents:
diff changeset
205 Right : Wide_String) return Boolean;
kono
parents:
diff changeset
206
kono
parents:
diff changeset
207 function Less_Or_Equal
kono
parents:
diff changeset
208 (Left : Wide_String;
kono
parents:
diff changeset
209 Right : Super_String) return Boolean;
kono
parents:
diff changeset
210
kono
parents:
diff changeset
211 function Greater
kono
parents:
diff changeset
212 (Left : Super_String;
kono
parents:
diff changeset
213 Right : Super_String) return Boolean;
kono
parents:
diff changeset
214
kono
parents:
diff changeset
215 function Greater
kono
parents:
diff changeset
216 (Left : Super_String;
kono
parents:
diff changeset
217 Right : Wide_String) return Boolean;
kono
parents:
diff changeset
218
kono
parents:
diff changeset
219 function Greater
kono
parents:
diff changeset
220 (Left : Wide_String;
kono
parents:
diff changeset
221 Right : Super_String) return Boolean;
kono
parents:
diff changeset
222
kono
parents:
diff changeset
223 function Greater_Or_Equal
kono
parents:
diff changeset
224 (Left : Super_String;
kono
parents:
diff changeset
225 Right : Super_String) return Boolean;
kono
parents:
diff changeset
226
kono
parents:
diff changeset
227 function Greater_Or_Equal
kono
parents:
diff changeset
228 (Left : Super_String;
kono
parents:
diff changeset
229 Right : Wide_String) return Boolean;
kono
parents:
diff changeset
230
kono
parents:
diff changeset
231 function Greater_Or_Equal
kono
parents:
diff changeset
232 (Left : Wide_String;
kono
parents:
diff changeset
233 Right : Super_String) return Boolean;
kono
parents:
diff changeset
234
kono
parents:
diff changeset
235 ----------------------
kono
parents:
diff changeset
236 -- Search Functions --
kono
parents:
diff changeset
237 ----------------------
kono
parents:
diff changeset
238
kono
parents:
diff changeset
239 function Super_Index
kono
parents:
diff changeset
240 (Source : Super_String;
kono
parents:
diff changeset
241 Pattern : Wide_String;
kono
parents:
diff changeset
242 Going : Direction := Forward;
kono
parents:
diff changeset
243 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
kono
parents:
diff changeset
244 return Natural;
kono
parents:
diff changeset
245
kono
parents:
diff changeset
246 function Super_Index
kono
parents:
diff changeset
247 (Source : Super_String;
kono
parents:
diff changeset
248 Pattern : Wide_String;
kono
parents:
diff changeset
249 Going : Direction := Forward;
kono
parents:
diff changeset
250 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
kono
parents:
diff changeset
251
kono
parents:
diff changeset
252 function Super_Index
kono
parents:
diff changeset
253 (Source : Super_String;
kono
parents:
diff changeset
254 Set : Wide_Maps.Wide_Character_Set;
kono
parents:
diff changeset
255 Test : Membership := Inside;
kono
parents:
diff changeset
256 Going : Direction := Forward) return Natural;
kono
parents:
diff changeset
257
kono
parents:
diff changeset
258 function Super_Index
kono
parents:
diff changeset
259 (Source : Super_String;
kono
parents:
diff changeset
260 Pattern : Wide_String;
kono
parents:
diff changeset
261 From : Positive;
kono
parents:
diff changeset
262 Going : Direction := Forward;
kono
parents:
diff changeset
263 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
kono
parents:
diff changeset
264 return Natural;
kono
parents:
diff changeset
265
kono
parents:
diff changeset
266 function Super_Index
kono
parents:
diff changeset
267 (Source : Super_String;
kono
parents:
diff changeset
268 Pattern : Wide_String;
kono
parents:
diff changeset
269 From : Positive;
kono
parents:
diff changeset
270 Going : Direction := Forward;
kono
parents:
diff changeset
271 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
kono
parents:
diff changeset
272
kono
parents:
diff changeset
273 function Super_Index
kono
parents:
diff changeset
274 (Source : Super_String;
kono
parents:
diff changeset
275 Set : Wide_Maps.Wide_Character_Set;
kono
parents:
diff changeset
276 From : Positive;
kono
parents:
diff changeset
277 Test : Membership := Inside;
kono
parents:
diff changeset
278 Going : Direction := Forward) return Natural;
kono
parents:
diff changeset
279
kono
parents:
diff changeset
280 function Super_Index_Non_Blank
kono
parents:
diff changeset
281 (Source : Super_String;
kono
parents:
diff changeset
282 Going : Direction := Forward) return Natural;
kono
parents:
diff changeset
283
kono
parents:
diff changeset
284 function Super_Index_Non_Blank
kono
parents:
diff changeset
285 (Source : Super_String;
kono
parents:
diff changeset
286 From : Positive;
kono
parents:
diff changeset
287 Going : Direction := Forward) return Natural;
kono
parents:
diff changeset
288
kono
parents:
diff changeset
289 function Super_Count
kono
parents:
diff changeset
290 (Source : Super_String;
kono
parents:
diff changeset
291 Pattern : Wide_String;
kono
parents:
diff changeset
292 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
kono
parents:
diff changeset
293 return Natural;
kono
parents:
diff changeset
294
kono
parents:
diff changeset
295 function Super_Count
kono
parents:
diff changeset
296 (Source : Super_String;
kono
parents:
diff changeset
297 Pattern : Wide_String;
kono
parents:
diff changeset
298 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
kono
parents:
diff changeset
299
kono
parents:
diff changeset
300 function Super_Count
kono
parents:
diff changeset
301 (Source : Super_String;
kono
parents:
diff changeset
302 Set : Wide_Maps.Wide_Character_Set) return Natural;
kono
parents:
diff changeset
303
kono
parents:
diff changeset
304 procedure Super_Find_Token
kono
parents:
diff changeset
305 (Source : Super_String;
kono
parents:
diff changeset
306 Set : Wide_Maps.Wide_Character_Set;
kono
parents:
diff changeset
307 From : Positive;
kono
parents:
diff changeset
308 Test : Membership;
kono
parents:
diff changeset
309 First : out Positive;
kono
parents:
diff changeset
310 Last : out Natural);
kono
parents:
diff changeset
311
kono
parents:
diff changeset
312 procedure Super_Find_Token
kono
parents:
diff changeset
313 (Source : Super_String;
kono
parents:
diff changeset
314 Set : Wide_Maps.Wide_Character_Set;
kono
parents:
diff changeset
315 Test : Membership;
kono
parents:
diff changeset
316 First : out Positive;
kono
parents:
diff changeset
317 Last : out Natural);
kono
parents:
diff changeset
318
kono
parents:
diff changeset
319 ------------------------------------
kono
parents:
diff changeset
320 -- String Translation Subprograms --
kono
parents:
diff changeset
321 ------------------------------------
kono
parents:
diff changeset
322
kono
parents:
diff changeset
323 function Super_Translate
kono
parents:
diff changeset
324 (Source : Super_String;
kono
parents:
diff changeset
325 Mapping : Wide_Maps.Wide_Character_Mapping) return Super_String;
kono
parents:
diff changeset
326
kono
parents:
diff changeset
327 procedure Super_Translate
kono
parents:
diff changeset
328 (Source : in out Super_String;
kono
parents:
diff changeset
329 Mapping : Wide_Maps.Wide_Character_Mapping);
kono
parents:
diff changeset
330
kono
parents:
diff changeset
331 function Super_Translate
kono
parents:
diff changeset
332 (Source : Super_String;
kono
parents:
diff changeset
333 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Super_String;
kono
parents:
diff changeset
334
kono
parents:
diff changeset
335 procedure Super_Translate
kono
parents:
diff changeset
336 (Source : in out Super_String;
kono
parents:
diff changeset
337 Mapping : Wide_Maps.Wide_Character_Mapping_Function);
kono
parents:
diff changeset
338
kono
parents:
diff changeset
339 ---------------------------------------
kono
parents:
diff changeset
340 -- String Transformation Subprograms --
kono
parents:
diff changeset
341 ---------------------------------------
kono
parents:
diff changeset
342
kono
parents:
diff changeset
343 function Super_Replace_Slice
kono
parents:
diff changeset
344 (Source : Super_String;
kono
parents:
diff changeset
345 Low : Positive;
kono
parents:
diff changeset
346 High : Natural;
kono
parents:
diff changeset
347 By : Wide_String;
kono
parents:
diff changeset
348 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
349
kono
parents:
diff changeset
350 procedure Super_Replace_Slice
kono
parents:
diff changeset
351 (Source : in out Super_String;
kono
parents:
diff changeset
352 Low : Positive;
kono
parents:
diff changeset
353 High : Natural;
kono
parents:
diff changeset
354 By : Wide_String;
kono
parents:
diff changeset
355 Drop : Truncation := Error);
kono
parents:
diff changeset
356
kono
parents:
diff changeset
357 function Super_Insert
kono
parents:
diff changeset
358 (Source : Super_String;
kono
parents:
diff changeset
359 Before : Positive;
kono
parents:
diff changeset
360 New_Item : Wide_String;
kono
parents:
diff changeset
361 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
362
kono
parents:
diff changeset
363 procedure Super_Insert
kono
parents:
diff changeset
364 (Source : in out Super_String;
kono
parents:
diff changeset
365 Before : Positive;
kono
parents:
diff changeset
366 New_Item : Wide_String;
kono
parents:
diff changeset
367 Drop : Truncation := Error);
kono
parents:
diff changeset
368
kono
parents:
diff changeset
369 function Super_Overwrite
kono
parents:
diff changeset
370 (Source : Super_String;
kono
parents:
diff changeset
371 Position : Positive;
kono
parents:
diff changeset
372 New_Item : Wide_String;
kono
parents:
diff changeset
373 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
374
kono
parents:
diff changeset
375 procedure Super_Overwrite
kono
parents:
diff changeset
376 (Source : in out Super_String;
kono
parents:
diff changeset
377 Position : Positive;
kono
parents:
diff changeset
378 New_Item : Wide_String;
kono
parents:
diff changeset
379 Drop : Truncation := Error);
kono
parents:
diff changeset
380
kono
parents:
diff changeset
381 function Super_Delete
kono
parents:
diff changeset
382 (Source : Super_String;
kono
parents:
diff changeset
383 From : Positive;
kono
parents:
diff changeset
384 Through : Natural) return Super_String;
kono
parents:
diff changeset
385
kono
parents:
diff changeset
386 procedure Super_Delete
kono
parents:
diff changeset
387 (Source : in out Super_String;
kono
parents:
diff changeset
388 From : Positive;
kono
parents:
diff changeset
389 Through : Natural);
kono
parents:
diff changeset
390
kono
parents:
diff changeset
391 ---------------------------------
kono
parents:
diff changeset
392 -- String Selector Subprograms --
kono
parents:
diff changeset
393 ---------------------------------
kono
parents:
diff changeset
394
kono
parents:
diff changeset
395 function Super_Trim
kono
parents:
diff changeset
396 (Source : Super_String;
kono
parents:
diff changeset
397 Side : Trim_End) return Super_String;
kono
parents:
diff changeset
398
kono
parents:
diff changeset
399 procedure Super_Trim
kono
parents:
diff changeset
400 (Source : in out Super_String;
kono
parents:
diff changeset
401 Side : Trim_End);
kono
parents:
diff changeset
402
kono
parents:
diff changeset
403 function Super_Trim
kono
parents:
diff changeset
404 (Source : Super_String;
kono
parents:
diff changeset
405 Left : Wide_Maps.Wide_Character_Set;
kono
parents:
diff changeset
406 Right : Wide_Maps.Wide_Character_Set) return Super_String;
kono
parents:
diff changeset
407
kono
parents:
diff changeset
408 procedure Super_Trim
kono
parents:
diff changeset
409 (Source : in out Super_String;
kono
parents:
diff changeset
410 Left : Wide_Maps.Wide_Character_Set;
kono
parents:
diff changeset
411 Right : Wide_Maps.Wide_Character_Set);
kono
parents:
diff changeset
412
kono
parents:
diff changeset
413 function Super_Head
kono
parents:
diff changeset
414 (Source : Super_String;
kono
parents:
diff changeset
415 Count : Natural;
kono
parents:
diff changeset
416 Pad : Wide_Character := Wide_Space;
kono
parents:
diff changeset
417 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
418
kono
parents:
diff changeset
419 procedure Super_Head
kono
parents:
diff changeset
420 (Source : in out Super_String;
kono
parents:
diff changeset
421 Count : Natural;
kono
parents:
diff changeset
422 Pad : Wide_Character := Wide_Space;
kono
parents:
diff changeset
423 Drop : Truncation := Error);
kono
parents:
diff changeset
424
kono
parents:
diff changeset
425 function Super_Tail
kono
parents:
diff changeset
426 (Source : Super_String;
kono
parents:
diff changeset
427 Count : Natural;
kono
parents:
diff changeset
428 Pad : Wide_Character := Wide_Space;
kono
parents:
diff changeset
429 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
430
kono
parents:
diff changeset
431 procedure Super_Tail
kono
parents:
diff changeset
432 (Source : in out Super_String;
kono
parents:
diff changeset
433 Count : Natural;
kono
parents:
diff changeset
434 Pad : Wide_Character := Wide_Space;
kono
parents:
diff changeset
435 Drop : Truncation := Error);
kono
parents:
diff changeset
436
kono
parents:
diff changeset
437 ------------------------------------
kono
parents:
diff changeset
438 -- String Constructor Subprograms --
kono
parents:
diff changeset
439 ------------------------------------
kono
parents:
diff changeset
440
kono
parents:
diff changeset
441 -- Note: in some of the following routines, there is an extra parameter
kono
parents:
diff changeset
442 -- Max_Length which specifies the value of the maximum length for the
kono
parents:
diff changeset
443 -- resulting Super_String value.
kono
parents:
diff changeset
444
kono
parents:
diff changeset
445 function Times
kono
parents:
diff changeset
446 (Left : Natural;
kono
parents:
diff changeset
447 Right : Wide_Character;
kono
parents:
diff changeset
448 Max_Length : Positive) return Super_String;
kono
parents:
diff changeset
449 -- Note the additional parameter Max_Length
kono
parents:
diff changeset
450
kono
parents:
diff changeset
451 function Times
kono
parents:
diff changeset
452 (Left : Natural;
kono
parents:
diff changeset
453 Right : Wide_String;
kono
parents:
diff changeset
454 Max_Length : Positive) return Super_String;
kono
parents:
diff changeset
455 -- Note the additional parameter Max_Length
kono
parents:
diff changeset
456
kono
parents:
diff changeset
457 function Times
kono
parents:
diff changeset
458 (Left : Natural;
kono
parents:
diff changeset
459 Right : Super_String) return Super_String;
kono
parents:
diff changeset
460
kono
parents:
diff changeset
461 function Super_Replicate
kono
parents:
diff changeset
462 (Count : Natural;
kono
parents:
diff changeset
463 Item : Wide_Character;
kono
parents:
diff changeset
464 Drop : Truncation := Error;
kono
parents:
diff changeset
465 Max_Length : Positive) return Super_String;
kono
parents:
diff changeset
466 -- Note the additional parameter Max_Length
kono
parents:
diff changeset
467
kono
parents:
diff changeset
468 function Super_Replicate
kono
parents:
diff changeset
469 (Count : Natural;
kono
parents:
diff changeset
470 Item : Wide_String;
kono
parents:
diff changeset
471 Drop : Truncation := Error;
kono
parents:
diff changeset
472 Max_Length : Positive) return Super_String;
kono
parents:
diff changeset
473 -- Note the additional parameter Max_Length
kono
parents:
diff changeset
474
kono
parents:
diff changeset
475 function Super_Replicate
kono
parents:
diff changeset
476 (Count : Natural;
kono
parents:
diff changeset
477 Item : Super_String;
kono
parents:
diff changeset
478 Drop : Truncation := Error) return Super_String;
kono
parents:
diff changeset
479
kono
parents:
diff changeset
480 private
kono
parents:
diff changeset
481 -- Pragma Inline declarations
kono
parents:
diff changeset
482
kono
parents:
diff changeset
483 pragma Inline ("=");
kono
parents:
diff changeset
484 pragma Inline (Less);
kono
parents:
diff changeset
485 pragma Inline (Less_Or_Equal);
kono
parents:
diff changeset
486 pragma Inline (Greater);
kono
parents:
diff changeset
487 pragma Inline (Greater_Or_Equal);
kono
parents:
diff changeset
488 pragma Inline (Concat);
kono
parents:
diff changeset
489 pragma Inline (Super_Count);
kono
parents:
diff changeset
490 pragma Inline (Super_Element);
kono
parents:
diff changeset
491 pragma Inline (Super_Find_Token);
kono
parents:
diff changeset
492 pragma Inline (Super_Index);
kono
parents:
diff changeset
493 pragma Inline (Super_Index_Non_Blank);
kono
parents:
diff changeset
494 pragma Inline (Super_Length);
kono
parents:
diff changeset
495 pragma Inline (Super_Replace_Element);
kono
parents:
diff changeset
496 pragma Inline (Super_Slice);
kono
parents:
diff changeset
497 pragma Inline (Super_To_String);
kono
parents:
diff changeset
498
kono
parents:
diff changeset
499 end Ada.Strings.Wide_Superbounded;