File : a-stwifi.ads
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
5 -- A D A . S T R I N G S . W I D E _ F I X E D --
6 -- --
7 -- S p e c --
8 -- --
9 -- This specification is derived from the Ada Reference Manual for use with --
10 -- GNAT. In accordance with the copyright of that document, you can freely --
11 -- copy and modify this specification, provided that if you redistribute a --
12 -- modified version, any changes that you have made are clearly indicated. --
13 -- --
14 ------------------------------------------------------------------------------
15
16 with Ada.Strings.Wide_Maps;
17
18 package Ada.Strings.Wide_Fixed is
19 pragma Preelaborate;
20
21 -------------------------------------------------------------------
22 -- Copy Procedure for Wide_Strings of Possibly Different Lengths --
23 -------------------------------------------------------------------
24
25 procedure Move
26 (Source : Wide_String;
27 Target : out Wide_String;
28 Drop : Truncation := Error;
29 Justify : Alignment := Left;
30 Pad : Wide_Character := Ada.Strings.Wide_Space);
31
32 ------------------------
33 -- Search Subprograms --
34 ------------------------
35
36 function Index
37 (Source : Wide_String;
38 Pattern : Wide_String;
39 Going : Direction := Forward;
40 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
41 return Natural;
42
43 function Index
44 (Source : Wide_String;
45 Pattern : Wide_String;
46 Going : Direction := Forward;
47 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
48
49 function Index
50 (Source : Wide_String;
51 Set : Wide_Maps.Wide_Character_Set;
52 Test : Membership := Inside;
53 Going : Direction := Forward) return Natural;
54
55 function Index
56 (Source : Wide_String;
57 Pattern : Wide_String;
58 From : Positive;
59 Going : Direction := Forward;
60 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
61 return Natural;
62 pragma Ada_05 (Index);
63
64 function Index
65 (Source : Wide_String;
66 Pattern : Wide_String;
67 From : Positive;
68 Going : Direction := Forward;
69 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
70 pragma Ada_05 (Index);
71
72 function Index
73 (Source : Wide_String;
74 Set : Wide_Maps.Wide_Character_Set;
75 From : Positive;
76 Test : Membership := Inside;
77 Going : Direction := Forward) return Natural;
78 pragma Ada_05 (Index);
79
80 function Index_Non_Blank
81 (Source : Wide_String;
82 Going : Direction := Forward) return Natural;
83
84 function Index_Non_Blank
85 (Source : Wide_String;
86 From : Positive;
87 Going : Direction := Forward) return Natural;
88 pragma Ada_05 (Index_Non_Blank);
89
90 function Count
91 (Source : Wide_String;
92 Pattern : Wide_String;
93 Mapping : Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
94 return Natural;
95
96 function Count
97 (Source : Wide_String;
98 Pattern : Wide_String;
99 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Natural;
100
101 function Count
102 (Source : Wide_String;
103 Set : Wide_Maps.Wide_Character_Set) return Natural;
104
105 procedure Find_Token
106 (Source : Wide_String;
107 Set : Wide_Maps.Wide_Character_Set;
108 From : Positive;
109 Test : Membership;
110 First : out Positive;
111 Last : out Natural);
112 pragma Ada_2012 (Find_Token);
113
114 procedure Find_Token
115 (Source : Wide_String;
116 Set : Wide_Maps.Wide_Character_Set;
117 Test : Membership;
118 First : out Positive;
119 Last : out Natural);
120
121 -----------------------------------------
122 -- Wide_String Translation Subprograms --
123 -----------------------------------------
124
125 function Translate
126 (Source : Wide_String;
127 Mapping : Wide_Maps.Wide_Character_Mapping) return Wide_String;
128
129 procedure Translate
130 (Source : in out Wide_String;
131 Mapping : Wide_Maps.Wide_Character_Mapping);
132
133 function Translate
134 (Source : Wide_String;
135 Mapping : Wide_Maps.Wide_Character_Mapping_Function) return Wide_String;
136
137 procedure Translate
138 (Source : in out Wide_String;
139 Mapping : Wide_Maps.Wide_Character_Mapping_Function);
140
141 --------------------------------------------
142 -- Wide_String Transformation Subprograms --
143 --------------------------------------------
144
145 function Replace_Slice
146 (Source : Wide_String;
147 Low : Positive;
148 High : Natural;
149 By : Wide_String) return Wide_String;
150
151 procedure Replace_Slice
152 (Source : in out Wide_String;
153 Low : Positive;
154 High : Natural;
155 By : Wide_String;
156 Drop : Truncation := Error;
157 Justify : Alignment := Left;
158 Pad : Wide_Character := Ada.Strings.Wide_Space);
159
160 function Insert
161 (Source : Wide_String;
162 Before : Positive;
163 New_Item : Wide_String) return Wide_String;
164
165 procedure Insert
166 (Source : in out Wide_String;
167 Before : Positive;
168 New_Item : Wide_String;
169 Drop : Truncation := Error);
170
171 function Overwrite
172 (Source : Wide_String;
173 Position : Positive;
174 New_Item : Wide_String) return Wide_String;
175
176 procedure Overwrite
177 (Source : in out Wide_String;
178 Position : Positive;
179 New_Item : Wide_String;
180 Drop : Truncation := Right);
181
182 function Delete
183 (Source : Wide_String;
184 From : Positive;
185 Through : Natural) return Wide_String;
186
187 procedure Delete
188 (Source : in out Wide_String;
189 From : Positive;
190 Through : Natural;
191 Justify : Alignment := Left;
192 Pad : Wide_Character := Ada.Strings.Wide_Space);
193
194 --------------------------------------
195 -- Wide_String Selector Subprograms --
196 --------------------------------------
197
198 function Trim
199 (Source : Wide_String;
200 Side : Trim_End) return Wide_String;
201
202 procedure Trim
203 (Source : in out Wide_String;
204 Side : Trim_End;
205 Justify : Alignment := Left;
206 Pad : Wide_Character := Wide_Space);
207
208 function Trim
209 (Source : Wide_String;
210 Left : Wide_Maps.Wide_Character_Set;
211 Right : Wide_Maps.Wide_Character_Set) return Wide_String;
212
213 procedure Trim
214 (Source : in out Wide_String;
215 Left : Wide_Maps.Wide_Character_Set;
216 Right : Wide_Maps.Wide_Character_Set;
217 Justify : Alignment := Ada.Strings.Left;
218 Pad : Wide_Character := Ada.Strings.Wide_Space);
219
220 function Head
221 (Source : Wide_String;
222 Count : Natural;
223 Pad : Wide_Character := Ada.Strings.Wide_Space) return Wide_String;
224
225 procedure Head
226 (Source : in out Wide_String;
227 Count : Natural;
228 Justify : Alignment := Left;
229 Pad : Wide_Character := Ada.Strings.Wide_Space);
230
231 function Tail
232 (Source : Wide_String;
233 Count : Natural;
234 Pad : Wide_Character := Ada.Strings.Wide_Space) return Wide_String;
235
236 procedure Tail
237 (Source : in out Wide_String;
238 Count : Natural;
239 Justify : Alignment := Left;
240 Pad : Wide_Character := Ada.Strings.Wide_Space);
241
242 ---------------------------------------
243 -- Wide_String Constructor Functions --
244 ---------------------------------------
245
246 function "*"
247 (Left : Natural;
248 Right : Wide_Character) return Wide_String;
249
250 function "*"
251 (Left : Natural;
252 Right : Wide_String) return Wide_String;
253
254 end Ada.Strings.Wide_Fixed;