OSDN Git Service

2003-12-11 Ed Falis <falis@gnat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / a-stwifi.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT RUNTIME 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 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_Maps;
18
19 package Ada.Strings.Wide_Fixed is
20 pragma Preelaborate (Wide_Fixed);
21
22    -------------------------------------------------------------------
23    -- Copy Procedure for Wide_Strings of Possibly Different Lengths --
24    -------------------------------------------------------------------
25
26    procedure Move
27      (Source  : in  Wide_String;
28       Target  : out Wide_String;
29       Drop    : in  Truncation := Error;
30       Justify : in  Alignment  := Left;
31       Pad     : in  Wide_Character  := Ada.Strings.Wide_Space);
32
33    ------------------------
34    -- Search Subprograms --
35    ------------------------
36
37    function Index
38      (Source  : in Wide_String;
39       Pattern : in Wide_String;
40       Going   : in Direction := Forward;
41       Mapping : in Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
42       return    Natural;
43
44    function Index
45      (Source  : in Wide_String;
46       Pattern : in Wide_String;
47       Going   : in Direction := Forward;
48       Mapping : in Wide_Maps.Wide_Character_Mapping_Function)
49       return    Natural;
50
51    function Index
52      (Source : in Wide_String;
53       Set    : in Wide_Maps.Wide_Character_Set;
54       Test   : in Membership := Inside;
55       Going  : in Direction  := Forward)
56       return   Natural;
57
58    function Index_Non_Blank
59      (Source : in Wide_String;
60       Going  : in Direction := Forward)
61       return   Natural;
62
63    function Count
64      (Source  : in Wide_String;
65       Pattern : in Wide_String;
66       Mapping : in Wide_Maps.Wide_Character_Mapping := Wide_Maps.Identity)
67       return    Natural;
68
69    function Count
70      (Source   : in Wide_String;
71       Pattern  : in Wide_String;
72       Mapping  : in Wide_Maps.Wide_Character_Mapping_Function)
73       return     Natural;
74
75    function Count
76      (Source : in Wide_String;
77       Set    : in Wide_Maps.Wide_Character_Set)
78       return   Natural;
79
80    procedure Find_Token
81      (Source : in Wide_String;
82       Set    : in Wide_Maps.Wide_Character_Set;
83       Test   : in Membership;
84       First  : out Positive;
85       Last   : out Natural);
86
87    -----------------------------------------
88    -- Wide_String Translation Subprograms --
89    -----------------------------------------
90
91    function Translate
92      (Source  : in Wide_String;
93       Mapping : in Wide_Maps.Wide_Character_Mapping)
94       return    Wide_String;
95
96    procedure Translate
97      (Source  : in out Wide_String;
98       Mapping : in Wide_Maps.Wide_Character_Mapping);
99
100    function Translate
101      (Source  : in Wide_String;
102       Mapping : in Wide_Maps.Wide_Character_Mapping_Function)
103       return    Wide_String;
104
105    procedure Translate
106      (Source  : in out Wide_String;
107       Mapping : in Wide_Maps.Wide_Character_Mapping_Function);
108
109    --------------------------------------------
110    -- Wide_String Transformation Subprograms --
111    --------------------------------------------
112
113    function Replace_Slice
114      (Source : in Wide_String;
115       Low    : in Positive;
116       High   : in Natural;
117       By     : in Wide_String)
118       return   Wide_String;
119
120    procedure Replace_Slice
121      (Source  : in out Wide_String;
122       Low     : in Positive;
123       High    : in Natural;
124       By      : in Wide_String;
125       Drop    : in Truncation := Error;
126       Justify : in Alignment  := Left;
127       Pad     : in Wide_Character  := Ada.Strings.Wide_Space);
128
129    function Insert
130      (Source   : in Wide_String;
131       Before   : in Positive;
132       New_Item : in Wide_String)
133       return     Wide_String;
134
135    procedure Insert
136      (Source   : in out Wide_String;
137       Before   : in Positive;
138       New_Item : in Wide_String;
139       Drop     : in Truncation := Error);
140
141    function Overwrite
142      (Source   : in Wide_String;
143       Position : in Positive;
144       New_Item : in Wide_String)
145       return     Wide_String;
146
147    procedure Overwrite
148      (Source   : in out Wide_String;
149       Position : in Positive;
150       New_Item : in Wide_String;
151       Drop     : in Truncation := Right);
152
153    function Delete
154      (Source  : in Wide_String;
155       From    : in Positive;
156       Through : in Natural)
157       return    Wide_String;
158
159    procedure Delete
160      (Source  : in out Wide_String;
161       From    : in Positive;
162       Through : in Natural;
163       Justify : in Alignment := Left;
164       Pad     : in Wide_Character := Ada.Strings.Wide_Space);
165
166    --------------------------------------
167    -- Wide_String Selector Subprograms --
168    --------------------------------------
169
170    function Trim
171      (Source : in Wide_String;
172       Side   : in Trim_End)
173       return   Wide_String;
174
175    procedure Trim
176      (Source  : in out Wide_String;
177       Side    : in Trim_End;
178       Justify : in Alignment      := Left;
179       Pad     : in Wide_Character := Wide_Space);
180
181    function Trim
182      (Source : in Wide_String;
183       Left   : in Wide_Maps.Wide_Character_Set;
184       Right  : in Wide_Maps.Wide_Character_Set)
185       return   Wide_String;
186
187    procedure Trim
188      (Source  : in out Wide_String;
189       Left    : in Wide_Maps.Wide_Character_Set;
190       Right   : in Wide_Maps.Wide_Character_Set;
191       Justify : in Alignment := Ada.Strings.Left;
192       Pad     : in Wide_Character := Ada.Strings.Wide_Space);
193
194    function Head
195      (Source : in Wide_String;
196       Count  : in Natural;
197       Pad    : in Wide_Character := Ada.Strings.Wide_Space)
198       return   Wide_String;
199
200    procedure Head
201      (Source  : in out Wide_String;
202       Count   : in Natural;
203       Justify : in Alignment := Left;
204       Pad     : in Wide_Character := Ada.Strings.Wide_Space);
205
206    function Tail
207      (Source : in Wide_String;
208       Count  : in Natural;
209       Pad    : in Wide_Character := Ada.Strings.Wide_Space)
210       return   Wide_String;
211
212    procedure Tail
213      (Source : in out Wide_String;
214       Count  : in Natural;
215       Justify : in Alignment := Left;
216       Pad    : in Wide_Character := Ada.Strings.Wide_Space);
217
218    ---------------------------------------
219    -- Wide_String Constructor Functions --
220    ---------------------------------------
221
222    function "*"
223      (Left  : in Natural;
224       Right : in Wide_Character)
225       return  Wide_String;
226
227    function "*"
228      (Left  : in Natural;
229       Right : in Wide_String)
230       return Wide_String;
231
232 end Ada.Strings.Wide_Fixed;