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
;