2015-05-12 Robert Dewar <dewar@adacore.com>
[official-gcc.git] / gcc / ada / a-stzfix.ads
blobbee76582527b7cb61d3959c84fb6dafc54c38b9f
1 ------------------------------------------------------------------------------
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 _ 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 ------------------------------------------------------------------------------
16 with Ada.Strings.Wide_Wide_Maps;
18 package Ada.Strings.Wide_Wide_Fixed is
19 pragma Preelaborate;
21 ------------------------------------------------------------------------
22 -- Copy Procedure for Wide_Wide_Strings of Possibly Different Lengths --
23 ------------------------------------------------------------------------
25 procedure Move
26 (Source : Wide_Wide_String;
27 Target : out Wide_Wide_String;
28 Drop : Truncation := Error;
29 Justify : Alignment := Left;
30 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
32 ------------------------
33 -- Search Subprograms --
34 ------------------------
36 function Index
37 (Source : Wide_Wide_String;
38 Pattern : Wide_Wide_String;
39 Going : Direction := Forward;
40 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
41 Wide_Wide_Maps.Identity) return Natural;
43 function Index
44 (Source : Wide_Wide_String;
45 Pattern : Wide_Wide_String;
46 Going : Direction := Forward;
47 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
48 return Natural;
50 function Index
51 (Source : Wide_Wide_String;
52 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
53 Test : Membership := Inside;
54 Going : Direction := Forward) return Natural;
56 function Index
57 (Source : Wide_Wide_String;
58 Pattern : Wide_Wide_String;
59 From : Positive;
60 Going : Direction := Forward;
61 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
62 Wide_Wide_Maps.Identity)
63 return Natural;
64 pragma Ada_05 (Index);
66 function Index
67 (Source : Wide_Wide_String;
68 Pattern : Wide_Wide_String;
69 From : Positive;
70 Going : Direction := Forward;
71 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
72 return Natural;
73 pragma Ada_05 (Index);
75 function Index
76 (Source : Wide_Wide_String;
77 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
78 From : Positive;
79 Test : Membership := Inside;
80 Going : Direction := Forward) return Natural;
81 pragma Ada_05 (Index);
83 function Index_Non_Blank
84 (Source : Wide_Wide_String;
85 Going : Direction := Forward) return Natural;
87 function Index_Non_Blank
88 (Source : Wide_Wide_String;
89 From : Positive;
90 Going : Direction := Forward) return Natural;
91 pragma Ada_05 (Index_Non_Blank);
93 function Count
94 (Source : Wide_Wide_String;
95 Pattern : Wide_Wide_String;
96 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
97 Wide_Wide_Maps.Identity)
98 return Natural;
100 function Count
101 (Source : Wide_Wide_String;
102 Pattern : Wide_Wide_String;
103 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
104 return Natural;
106 function Count
107 (Source : Wide_Wide_String;
108 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
110 procedure Find_Token
111 (Source : Wide_Wide_String;
112 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
113 From : Positive;
114 Test : Membership;
115 First : out Positive;
116 Last : out Natural);
117 pragma Ada_2012 (Find_Token);
119 procedure Find_Token
120 (Source : Wide_Wide_String;
121 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
122 Test : Membership;
123 First : out Positive;
124 Last : out Natural);
126 ----------------------------------------------
127 -- Wide_Wide_String Translation Subprograms --
128 ----------------------------------------------
130 function Translate
131 (Source : Wide_Wide_String;
132 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
133 return Wide_Wide_String;
135 procedure Translate
136 (Source : in out Wide_Wide_String;
137 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
139 function Translate
140 (Source : Wide_Wide_String;
141 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
142 return Wide_Wide_String;
144 procedure Translate
145 (Source : in out Wide_Wide_String;
146 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
148 -------------------------------------------------
149 -- Wide_Wide_String Transformation Subprograms --
150 -------------------------------------------------
152 function Replace_Slice
153 (Source : Wide_Wide_String;
154 Low : Positive;
155 High : Natural;
156 By : Wide_Wide_String) return Wide_Wide_String;
158 procedure Replace_Slice
159 (Source : in out Wide_Wide_String;
160 Low : Positive;
161 High : Natural;
162 By : Wide_Wide_String;
163 Drop : Truncation := Error;
164 Justify : Alignment := Left;
165 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
167 function Insert
168 (Source : Wide_Wide_String;
169 Before : Positive;
170 New_Item : Wide_Wide_String) return Wide_Wide_String;
172 procedure Insert
173 (Source : in out Wide_Wide_String;
174 Before : Positive;
175 New_Item : Wide_Wide_String;
176 Drop : Truncation := Error);
178 function Overwrite
179 (Source : Wide_Wide_String;
180 Position : Positive;
181 New_Item : Wide_Wide_String) return Wide_Wide_String;
183 procedure Overwrite
184 (Source : in out Wide_Wide_String;
185 Position : Positive;
186 New_Item : Wide_Wide_String;
187 Drop : Truncation := Right);
189 function Delete
190 (Source : Wide_Wide_String;
191 From : Positive;
192 Through : Natural) return Wide_Wide_String;
194 procedure Delete
195 (Source : in out Wide_Wide_String;
196 From : Positive;
197 Through : Natural;
198 Justify : Alignment := Left;
199 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
201 -------------------------------------------
202 -- Wide_Wide_String Selector Subprograms --
203 -------------------------------------------
205 function Trim
206 (Source : Wide_Wide_String;
207 Side : Trim_End) return Wide_Wide_String;
209 procedure Trim
210 (Source : in out Wide_Wide_String;
211 Side : Trim_End;
212 Justify : Alignment := Left;
213 Pad : Wide_Wide_Character := Wide_Wide_Space);
215 function Trim
216 (Source : Wide_Wide_String;
217 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
218 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
219 return Wide_Wide_String;
221 procedure Trim
222 (Source : in out Wide_Wide_String;
223 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
224 Right : Wide_Wide_Maps.Wide_Wide_Character_Set;
225 Justify : Alignment := Ada.Strings.Left;
226 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
228 function Head
229 (Source : Wide_Wide_String;
230 Count : Natural;
231 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
232 return Wide_Wide_String;
234 procedure Head
235 (Source : in out Wide_Wide_String;
236 Count : Natural;
237 Justify : Alignment := Left;
238 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
240 function Tail
241 (Source : Wide_Wide_String;
242 Count : Natural;
243 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
244 return Wide_Wide_String;
246 procedure Tail
247 (Source : in out Wide_Wide_String;
248 Count : Natural;
249 Justify : Alignment := Left;
250 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
252 --------------------------------------------
253 -- Wide_Wide_String Constructor Functions --
254 --------------------------------------------
256 function "*"
257 (Left : Natural;
258 Right : Wide_Wide_Character) return Wide_Wide_String;
260 function "*"
261 (Left : Natural;
262 Right : Wide_Wide_String) return Wide_Wide_String;
264 end Ada.Strings.Wide_Wide_Fixed;