1 ------------------------------------------------------------------------------
3 -- GNAT RUNTIME COMPONENTS --
5 -- A D A . S T R I N G S . W I D E _ W I D E _ F I X E D --
9 -- This specification is adapted 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. --
14 ------------------------------------------------------------------------------
17 with Ada.Strings.Wide_Wide_Maps;
19 package Ada.Strings.Wide_Wide_Fixed is
20 pragma Preelaborate (Wide_Wide_Fixed);
22 ------------------------------------------------------------------------
23 -- Copy Procedure for Wide_Wide_Strings of Possibly Different Lengths --
24 ------------------------------------------------------------------------
27 (Source : Wide_Wide_String;
28 Target : out Wide_Wide_String;
29 Drop : Truncation := Error;
30 Justify : Alignment := Left;
31 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
33 ------------------------
34 -- Search Subprograms --
35 ------------------------
38 (Source : Wide_Wide_String;
39 Pattern : Wide_Wide_String;
40 Going : Direction := Forward;
41 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
42 Wide_Wide_Maps.Identity) return Natural;
45 (Source : Wide_Wide_String;
46 Pattern : Wide_Wide_String;
47 Going : Direction := Forward;
48 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
52 (Source : Wide_Wide_String;
53 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
54 Test : Membership := Inside;
55 Going : Direction := Forward) return Natural;
58 (Source : Wide_Wide_String;
59 Pattern : Wide_Wide_String;
61 Going : Direction := Forward;
62 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
63 Wide_Wide_Maps.Identity)
65 pragma Ada_05 (Index);
68 (Source : Wide_Wide_String;
69 Pattern : Wide_Wide_String;
71 Going : Direction := Forward;
72 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
74 pragma Ada_05 (Index);
77 (Source : Wide_Wide_String;
78 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
80 Test : Membership := Inside;
81 Going : Direction := Forward) return Natural;
82 pragma Ada_05 (Index);
84 function Index_Non_Blank
85 (Source : Wide_Wide_String;
86 Going : Direction := Forward) return Natural;
88 function Index_Non_Blank
89 (Source : Wide_Wide_String;
91 Going : Direction := Forward) return Natural;
92 pragma Ada_05 (Index_Non_Blank);
95 (Source : Wide_Wide_String;
96 Pattern : Wide_Wide_String;
97 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
98 Wide_Wide_Maps.Identity)
102 (Source : Wide_Wide_String;
103 Pattern : Wide_Wide_String;
104 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
108 (Source : Wide_Wide_String;
109 Set : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
112 (Source : Wide_Wide_String;
113 Set : Wide_Wide_Maps.Wide_Wide_Character_Set;
115 First : out Positive;
118 ----------------------------------------------
119 -- Wide_Wide_String Translation Subprograms --
120 ----------------------------------------------
123 (Source : Wide_Wide_String;
124 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
125 return Wide_Wide_String;
128 (Source : in out Wide_Wide_String;
129 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
132 (Source : Wide_Wide_String;
133 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
134 return Wide_Wide_String;
137 (Source : in out Wide_Wide_String;
138 Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
140 -------------------------------------------------
141 -- Wide_Wide_String Transformation Subprograms --
142 -------------------------------------------------
144 function Replace_Slice
145 (Source : Wide_Wide_String;
148 By : Wide_Wide_String) return Wide_Wide_String;
150 procedure Replace_Slice
151 (Source : in out Wide_Wide_String;
154 By : Wide_Wide_String;
155 Drop : Truncation := Error;
156 Justify : Alignment := Left;
157 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
160 (Source : Wide_Wide_String;
162 New_Item : Wide_Wide_String) return Wide_Wide_String;
165 (Source : in out Wide_Wide_String;
167 New_Item : Wide_Wide_String;
168 Drop : Truncation := Error);
171 (Source : Wide_Wide_String;
173 New_Item : Wide_Wide_String) return Wide_Wide_String;
176 (Source : in out Wide_Wide_String;
178 New_Item : Wide_Wide_String;
179 Drop : Truncation := Right);
182 (Source : Wide_Wide_String;
184 Through : Natural) return Wide_Wide_String;
187 (Source : in out Wide_Wide_String;
190 Justify : Alignment := Left;
191 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
193 -------------------------------------------
194 -- Wide_Wide_String Selector Subprograms --
195 -------------------------------------------
198 (Source : Wide_Wide_String;
199 Side : Trim_End) return Wide_Wide_String;
202 (Source : in out Wide_Wide_String;
204 Justify : Alignment := Left;
205 Pad : Wide_Wide_Character := Wide_Wide_Space);
208 (Source : Wide_Wide_String;
209 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
210 Right : Wide_Wide_Maps.Wide_Wide_Character_Set)
211 return Wide_Wide_String;
214 (Source : in out Wide_Wide_String;
215 Left : Wide_Wide_Maps.Wide_Wide_Character_Set;
216 Right : Wide_Wide_Maps.Wide_Wide_Character_Set;
217 Justify : Alignment := Ada.Strings.Left;
218 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
221 (Source : Wide_Wide_String;
223 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
224 return Wide_Wide_String;
227 (Source : in out Wide_Wide_String;
229 Justify : Alignment := Left;
230 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
233 (Source : Wide_Wide_String;
235 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
236 return Wide_Wide_String;
239 (Source : in out Wide_Wide_String;
241 Justify : Alignment := Left;
242 Pad : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
244 --------------------------------------------
245 -- Wide_Wide_String Constructor Functions --
246 --------------------------------------------
250 Right : Wide_Wide_Character) return Wide_Wide_String;
254 Right : Wide_Wide_String) return Wide_Wide_String;
256 end Ada.Strings.Wide_Wide_Fixed;