OSDN Git Service

2005-03-08 Geert Bosch <bosch@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-stzfix.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT RUNTIME 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 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. --
13 --                                                                          --
14 ------------------------------------------------------------------------------
15
16
17 with Ada.Strings.Wide_Wide_Maps;
18
19 package Ada.Strings.Wide_Wide_Fixed is
20 pragma Preelaborate (Wide_Wide_Fixed);
21
22    ------------------------------------------------------------------------
23    -- Copy Procedure for Wide_Wide_Strings of Possibly Different Lengths --
24    ------------------------------------------------------------------------
25
26    procedure Move
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);
32
33    ------------------------
34    -- Search Subprograms --
35    ------------------------
36
37    function Index
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;
43
44    function Index
45      (Source  : Wide_Wide_String;
46       Pattern : Wide_Wide_String;
47       Going   : Direction := Forward;
48       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
49       return Natural;
50
51    function Index
52      (Source : Wide_Wide_String;
53       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set;
54       Test   : Membership := Inside;
55       Going  : Direction  := Forward) return Natural;
56
57    function Index
58      (Source  : Wide_Wide_String;
59       Pattern : Wide_Wide_String;
60       From    : Positive;
61       Going   : Direction := Forward;
62       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
63                   Wide_Wide_Maps.Identity)
64       return Natural;
65    pragma Ada_05 (Index);
66
67    function Index
68      (Source  : Wide_Wide_String;
69       Pattern : Wide_Wide_String;
70       From    : Positive;
71       Going   : Direction := Forward;
72       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
73       return Natural;
74    pragma Ada_05 (Index);
75
76    function Index
77      (Source  : Wide_Wide_String;
78       Set     : Wide_Wide_Maps.Wide_Wide_Character_Set;
79       From    : Positive;
80       Test    : Membership := Inside;
81       Going   : Direction := Forward) return Natural;
82    pragma Ada_05 (Index);
83
84    function Index_Non_Blank
85      (Source : Wide_Wide_String;
86       Going  : Direction := Forward) return Natural;
87
88    function Index_Non_Blank
89      (Source : Wide_Wide_String;
90       From   : Positive;
91       Going  : Direction := Forward) return Natural;
92    pragma Ada_05 (Index_Non_Blank);
93
94    function Count
95      (Source  : Wide_Wide_String;
96       Pattern : Wide_Wide_String;
97       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping :=
98                   Wide_Wide_Maps.Identity)
99       return Natural;
100
101    function Count
102      (Source  : Wide_Wide_String;
103       Pattern : Wide_Wide_String;
104       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
105       return Natural;
106
107    function Count
108      (Source : Wide_Wide_String;
109       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
110
111    procedure Find_Token
112      (Source : Wide_Wide_String;
113       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set;
114       Test   : Membership;
115       First  : out Positive;
116       Last   : out Natural);
117
118    ----------------------------------------------
119    -- Wide_Wide_String Translation Subprograms --
120    ----------------------------------------------
121
122    function Translate
123      (Source  : Wide_Wide_String;
124       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
125       return Wide_Wide_String;
126
127    procedure Translate
128      (Source  : in out Wide_Wide_String;
129       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
130
131    function Translate
132      (Source  : Wide_Wide_String;
133       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
134       return Wide_Wide_String;
135
136    procedure Translate
137      (Source  : in out Wide_Wide_String;
138       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
139
140    -------------------------------------------------
141    -- Wide_Wide_String Transformation Subprograms --
142    -------------------------------------------------
143
144    function Replace_Slice
145      (Source : Wide_Wide_String;
146       Low    : Positive;
147       High   : Natural;
148       By     : Wide_Wide_String) return Wide_Wide_String;
149
150    procedure Replace_Slice
151      (Source  : in out Wide_Wide_String;
152       Low     : Positive;
153       High    : Natural;
154       By      : Wide_Wide_String;
155       Drop    : Truncation := Error;
156       Justify : Alignment  := Left;
157       Pad     : Wide_Wide_Character  := Ada.Strings.Wide_Wide_Space);
158
159    function Insert
160      (Source   : Wide_Wide_String;
161       Before   : Positive;
162       New_Item : Wide_Wide_String) return Wide_Wide_String;
163
164    procedure Insert
165      (Source   : in out Wide_Wide_String;
166       Before   : Positive;
167       New_Item : Wide_Wide_String;
168       Drop     : Truncation := Error);
169
170    function Overwrite
171      (Source   : Wide_Wide_String;
172       Position : Positive;
173       New_Item : Wide_Wide_String) return Wide_Wide_String;
174
175    procedure Overwrite
176      (Source   : in out Wide_Wide_String;
177       Position : Positive;
178       New_Item : Wide_Wide_String;
179       Drop     : Truncation := Right);
180
181    function Delete
182      (Source  : Wide_Wide_String;
183       From    : Positive;
184       Through : Natural) return Wide_Wide_String;
185
186    procedure Delete
187      (Source  : in out Wide_Wide_String;
188       From    : Positive;
189       Through : Natural;
190       Justify : Alignment := Left;
191       Pad     : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
192
193    -------------------------------------------
194    -- Wide_Wide_String Selector Subprograms --
195    -------------------------------------------
196
197    function Trim
198      (Source : Wide_Wide_String;
199       Side   : Trim_End) return Wide_Wide_String;
200
201    procedure Trim
202      (Source  : in out Wide_Wide_String;
203       Side    : Trim_End;
204       Justify : Alignment      := Left;
205       Pad     : Wide_Wide_Character := Wide_Wide_Space);
206
207    function Trim
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;
212
213    procedure Trim
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);
219
220    function Head
221      (Source : Wide_Wide_String;
222       Count  : Natural;
223       Pad    : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
224       return Wide_Wide_String;
225
226    procedure Head
227      (Source  : in out Wide_Wide_String;
228       Count   : Natural;
229       Justify : Alignment := Left;
230       Pad     : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
231
232    function Tail
233      (Source : Wide_Wide_String;
234       Count  : Natural;
235       Pad    : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space)
236       return Wide_Wide_String;
237
238    procedure Tail
239      (Source : in out Wide_Wide_String;
240       Count  : Natural;
241       Justify : Alignment := Left;
242       Pad    : Wide_Wide_Character := Ada.Strings.Wide_Wide_Space);
243
244    --------------------------------------------
245    -- Wide_Wide_String Constructor Functions --
246    --------------------------------------------
247
248    function "*"
249      (Left  : Natural;
250       Right : Wide_Wide_Character) return Wide_Wide_String;
251
252    function "*"
253      (Left  : Natural;
254       Right : Wide_Wide_String) return Wide_Wide_String;
255
256 end Ada.Strings.Wide_Wide_Fixed;