OSDN Git Service

PR ada/53766
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-stzfix.ads
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 ------------------------------------------------------------------------------
15
16 with Ada.Strings.Wide_Wide_Maps;
17
18 package Ada.Strings.Wide_Wide_Fixed is
19    pragma Preelaborate;
20
21    ------------------------------------------------------------------------
22    -- Copy Procedure for Wide_Wide_Strings of Possibly Different Lengths --
23    ------------------------------------------------------------------------
24
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);
31
32    ------------------------
33    -- Search Subprograms --
34    ------------------------
35
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;
42
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;
49
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;
55
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);
65
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);
74
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);
82
83    function Index_Non_Blank
84      (Source : Wide_Wide_String;
85       Going  : Direction := Forward) return Natural;
86
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);
92
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;
99
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;
105
106    function Count
107      (Source : Wide_Wide_String;
108       Set    : Wide_Wide_Maps.Wide_Wide_Character_Set) return Natural;
109
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);
118
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);
125
126    ----------------------------------------------
127    -- Wide_Wide_String Translation Subprograms --
128    ----------------------------------------------
129
130    function Translate
131      (Source  : Wide_Wide_String;
132       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping)
133       return Wide_Wide_String;
134
135    procedure Translate
136      (Source  : in out Wide_Wide_String;
137       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping);
138
139    function Translate
140      (Source  : Wide_Wide_String;
141       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function)
142       return Wide_Wide_String;
143
144    procedure Translate
145      (Source  : in out Wide_Wide_String;
146       Mapping : Wide_Wide_Maps.Wide_Wide_Character_Mapping_Function);
147
148    -------------------------------------------------
149    -- Wide_Wide_String Transformation Subprograms --
150    -------------------------------------------------
151
152    function Replace_Slice
153      (Source : Wide_Wide_String;
154       Low    : Positive;
155       High   : Natural;
156       By     : Wide_Wide_String) return Wide_Wide_String;
157
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);
166
167    function Insert
168      (Source   : Wide_Wide_String;
169       Before   : Positive;
170       New_Item : Wide_Wide_String) return Wide_Wide_String;
171
172    procedure Insert
173      (Source   : in out Wide_Wide_String;
174       Before   : Positive;
175       New_Item : Wide_Wide_String;
176       Drop     : Truncation := Error);
177
178    function Overwrite
179      (Source   : Wide_Wide_String;
180       Position : Positive;
181       New_Item : Wide_Wide_String) return Wide_Wide_String;
182
183    procedure Overwrite
184      (Source   : in out Wide_Wide_String;
185       Position : Positive;
186       New_Item : Wide_Wide_String;
187       Drop     : Truncation := Right);
188
189    function Delete
190      (Source  : Wide_Wide_String;
191       From    : Positive;
192       Through : Natural) return Wide_Wide_String;
193
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);
200
201    -------------------------------------------
202    -- Wide_Wide_String Selector Subprograms --
203    -------------------------------------------
204
205    function Trim
206      (Source : Wide_Wide_String;
207       Side   : Trim_End) return Wide_Wide_String;
208
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);
214
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;
220
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);
227
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;
233
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);
239
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;
245
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);
251
252    --------------------------------------------
253    -- Wide_Wide_String Constructor Functions --
254    --------------------------------------------
255
256    function "*"
257      (Left  : Natural;
258       Right : Wide_Wide_Character) return Wide_Wide_String;
259
260    function "*"
261      (Left  : Natural;
262       Right : Wide_Wide_String) return Wide_Wide_String;
263
264 end Ada.Strings.Wide_Wide_Fixed;