Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / ada / a-szmzco.ads
blob06695f6082ae9e4610e978b3a22d98848ac1e800
1 ------------------------------------------------------------------------------
2 -- --
3 -- GNAT RUN-TIME COMPONENTS --
4 -- --
5 -- ADA.STRINGS.WIDE_WIDE_MAPS.WIDE_WIDE_CONSTANTS --
6 -- --
7 -- S p e c --
8 -- --
9 -- Copyright (C) 1992-2005 Free Software Foundation, Inc. --
10 -- --
11 -- This specification is derived from the Ada Reference Manual for use with --
12 -- GNAT. The copyright notice above, and the license provisions that follow --
13 -- apply solely to the contents of the part following the private keyword. --
14 -- --
15 -- GNAT is free software; you can redistribute it and/or modify it under --
16 -- terms of the GNU General Public License as published by the Free Soft- --
17 -- ware Foundation; either version 2, or (at your option) any later ver- --
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
20 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
21 -- for more details. You should have received a copy of the GNU General --
22 -- Public License distributed with GNAT; see file COPYING. If not, write --
23 -- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, --
24 -- Boston, MA 02110-1301, USA. --
25 -- --
26 -- As a special exception, if other files instantiate generics from this --
27 -- unit, or you link this unit with other files to produce an executable, --
28 -- this unit does not by itself cause the resulting executable to be --
29 -- covered by the GNU General Public License. This exception does not --
30 -- however invalidate any other reasons why the executable file might be --
31 -- covered by the GNU Public License. --
32 -- --
33 -- GNAT was originally developed by the GNAT team at New York University. --
34 -- Extensive contributions were provided by Ada Core Technologies Inc. --
35 -- --
36 ------------------------------------------------------------------------------
38 with Ada.Characters.Wide_Wide_Latin_1;
40 package Ada.Strings.Wide_Wide_Maps.Wide_Wide_Constants is
41 pragma Preelaborate;
43 Control_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
44 Graphic_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
45 Letter_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
46 Lower_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
47 Upper_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
48 Basic_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
49 Decimal_Digit_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
50 Hexadecimal_Digit_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
51 Alphanumeric_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
52 Special_Graphic_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
53 ISO_646_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
54 Character_Set : constant Wide_Wide_Maps.Wide_Wide_Character_Set;
56 Lower_Case_Map : constant Wide_Wide_Maps.Wide_Wide_Character_Mapping;
57 -- Maps to lower case for letters, else identity
59 Upper_Case_Map : constant Wide_Wide_Maps.Wide_Wide_Character_Mapping;
60 -- Maps to upper case for letters, else identity
62 Basic_Map : constant Wide_Wide_Maps.Wide_Wide_Character_Mapping;
63 -- Maps to basic letter for letters, else identity
65 private
66 package W renames Ada.Characters.Wide_Wide_Latin_1;
68 subtype WC is Wide_Wide_Character;
70 Control_Ranges : aliased constant Wide_Wide_Character_Ranges :=
71 ((W.NUL, W.US),
72 (W.DEL, W.APC));
74 Control_Set : constant Wide_Wide_Character_Set :=
75 (AF.Controlled with
76 Control_Ranges'Unrestricted_Access);
78 Graphic_Ranges : aliased constant Wide_Wide_Character_Ranges :=
79 ((W.Space, W.Tilde),
80 (WC'Val (256), WC'Last));
82 Graphic_Set : constant Wide_Wide_Character_Set :=
83 (AF.Controlled with
84 Graphic_Ranges'Unrestricted_Access);
86 Letter_Ranges : aliased constant Wide_Wide_Character_Ranges :=
87 (('A', 'Z'),
88 (W.LC_A, W.LC_Z),
89 (W.UC_A_Grave, W.UC_O_Diaeresis),
90 (W.UC_O_Oblique_Stroke, W.LC_O_Diaeresis),
91 (W.LC_O_Oblique_Stroke, W.LC_Y_Diaeresis));
93 Letter_Set : constant Wide_Wide_Character_Set :=
94 (AF.Controlled with
95 Letter_Ranges'Unrestricted_Access);
97 Lower_Ranges : aliased constant Wide_Wide_Character_Ranges :=
98 (1 => (W.LC_A, W.LC_Z),
99 2 => (W.LC_German_Sharp_S, W.LC_O_Diaeresis),
100 3 => (W.LC_O_Oblique_Stroke, W.LC_Y_Diaeresis));
102 Lower_Set : constant Wide_Wide_Character_Set :=
103 (AF.Controlled with
104 Lower_Ranges'Unrestricted_Access);
106 Upper_Ranges : aliased constant Wide_Wide_Character_Ranges :=
107 (1 => ('A', 'Z'),
108 2 => (W.UC_A_Grave, W.UC_O_Diaeresis),
109 3 => (W.UC_O_Oblique_Stroke, W.UC_Icelandic_Thorn));
111 Upper_Set : constant Wide_Wide_Character_Set :=
112 (AF.Controlled with
113 Upper_Ranges'Unrestricted_Access);
115 Basic_Ranges : aliased constant Wide_Wide_Character_Ranges :=
116 (1 => ('A', 'Z'),
117 2 => (W.LC_A, W.LC_Z),
118 3 => (W.UC_AE_Diphthong, W.UC_AE_Diphthong),
119 4 => (W.LC_AE_Diphthong, W.LC_AE_Diphthong),
120 5 => (W.LC_German_Sharp_S, W.LC_German_Sharp_S),
121 6 => (W.UC_Icelandic_Thorn, W.UC_Icelandic_Thorn),
122 7 => (W.LC_Icelandic_Thorn, W.LC_Icelandic_Thorn),
123 8 => (W.UC_Icelandic_Eth, W.UC_Icelandic_Eth),
124 9 => (W.LC_Icelandic_Eth, W.LC_Icelandic_Eth));
126 Basic_Set : constant Wide_Wide_Character_Set :=
127 (AF.Controlled with
128 Basic_Ranges'Unrestricted_Access);
130 Decimal_Digit_Ranges : aliased constant Wide_Wide_Character_Ranges :=
131 (1 => ('0', '9'));
133 Decimal_Digit_Set : constant Wide_Wide_Character_Set :=
134 (AF.Controlled with
135 Decimal_Digit_Ranges'Unrestricted_Access);
137 Hexadecimal_Digit_Ranges : aliased constant Wide_Wide_Character_Ranges :=
138 (1 => ('0', '9'),
139 2 => ('A', 'F'),
140 3 => (W.LC_A, W.LC_F));
142 Hexadecimal_Digit_Set : constant Wide_Wide_Character_Set :=
143 (AF.Controlled with
144 Hexadecimal_Digit_Ranges'Unrestricted_Access);
146 Alphanumeric_Ranges : aliased constant Wide_Wide_Character_Ranges :=
147 (1 => ('0', '9'),
148 2 => ('A', 'Z'),
149 3 => (W.LC_A, W.LC_Z),
150 4 => (W.UC_A_Grave, W.UC_O_Diaeresis),
151 5 => (W.UC_O_Oblique_Stroke, W.LC_O_Diaeresis),
152 6 => (W.LC_O_Oblique_Stroke, W.LC_Y_Diaeresis));
154 Alphanumeric_Set : constant Wide_Wide_Character_Set :=
155 (AF.Controlled with
156 Alphanumeric_Ranges'Unrestricted_Access);
158 Special_Graphic_Ranges : aliased constant Wide_Wide_Character_Ranges :=
159 (1 => (Wide_Wide_Space, W.Solidus),
160 2 => (W.Colon, W.Commercial_At),
161 3 => (W.Left_Square_Bracket, W.Grave),
162 4 => (W.Left_Curly_Bracket, W.Tilde),
163 5 => (W.No_Break_Space, W.Inverted_Question),
164 6 => (W.Multiplication_Sign, W.Multiplication_Sign),
165 7 => (W.Division_Sign, W.Division_Sign));
167 Special_Graphic_Set : constant Wide_Wide_Character_Set :=
168 (AF.Controlled with
169 Special_Graphic_Ranges'Unrestricted_Access);
171 ISO_646_Ranges : aliased constant Wide_Wide_Character_Ranges :=
172 (1 => (W.NUL, W.DEL));
174 ISO_646_Set : constant Wide_Wide_Character_Set :=
175 (AF.Controlled with
176 ISO_646_Ranges'Unrestricted_Access);
178 Character_Ranges : aliased constant Wide_Wide_Character_Ranges :=
179 (1 => (W.NUL, WC'Val (255)));
181 Character_Set : constant Wide_Wide_Character_Set :=
182 (AF.Controlled with
183 Character_Ranges'Unrestricted_Access);
185 Lower_Case_Mapping : aliased constant Wide_Wide_Character_Mapping_Values :=
186 (Length => 56,
188 Domain =>
189 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" &
190 W.UC_A_Grave &
191 W.UC_A_Acute &
192 W.UC_A_Circumflex &
193 W.UC_A_Tilde &
194 W.UC_A_Diaeresis &
195 W.UC_A_Ring &
196 W.UC_AE_Diphthong &
197 W.UC_C_Cedilla &
198 W.UC_E_Grave &
199 W.UC_E_Acute &
200 W.UC_E_Circumflex &
201 W.UC_E_Diaeresis &
202 W.UC_I_Grave &
203 W.UC_I_Acute &
204 W.UC_I_Circumflex &
205 W.UC_I_Diaeresis &
206 W.UC_Icelandic_Eth &
207 W.UC_N_Tilde &
208 W.UC_O_Grave &
209 W.UC_O_Acute &
210 W.UC_O_Circumflex &
211 W.UC_O_Tilde &
212 W.UC_O_Diaeresis &
213 W.UC_O_Oblique_Stroke &
214 W.UC_U_Grave &
215 W.UC_U_Acute &
216 W.UC_U_Circumflex &
217 W.UC_U_Diaeresis &
218 W.UC_Y_Acute &
219 W.UC_Icelandic_Thorn,
221 Rangev =>
222 "abcdefghijklmnopqrstuvwxyz" &
223 W.LC_A_Grave &
224 W.LC_A_Acute &
225 W.LC_A_Circumflex &
226 W.LC_A_Tilde &
227 W.LC_A_Diaeresis &
228 W.LC_A_Ring &
229 W.LC_AE_Diphthong &
230 W.LC_C_Cedilla &
231 W.LC_E_Grave &
232 W.LC_E_Acute &
233 W.LC_E_Circumflex &
234 W.LC_E_Diaeresis &
235 W.LC_I_Grave &
236 W.LC_I_Acute &
237 W.LC_I_Circumflex &
238 W.LC_I_Diaeresis &
239 W.LC_Icelandic_Eth &
240 W.LC_N_Tilde &
241 W.LC_O_Grave &
242 W.LC_O_Acute &
243 W.LC_O_Circumflex &
244 W.LC_O_Tilde &
245 W.LC_O_Diaeresis &
246 W.LC_O_Oblique_Stroke &
247 W.LC_U_Grave &
248 W.LC_U_Acute &
249 W.LC_U_Circumflex &
250 W.LC_U_Diaeresis &
251 W.LC_Y_Acute &
252 W.LC_Icelandic_Thorn);
254 Lower_Case_Map : constant Wide_Wide_Character_Mapping :=
255 (AF.Controlled with
256 Map => Lower_Case_Mapping'Unrestricted_Access);
258 Upper_Case_Mapping : aliased constant Wide_Wide_Character_Mapping_Values :=
259 (Length => 56,
261 Domain =>
262 "abcdefghijklmnopqrstuvwxyz" &
263 W.LC_A_Grave &
264 W.LC_A_Acute &
265 W.LC_A_Circumflex &
266 W.LC_A_Tilde &
267 W.LC_A_Diaeresis &
268 W.LC_A_Ring &
269 W.LC_AE_Diphthong &
270 W.LC_C_Cedilla &
271 W.LC_E_Grave &
272 W.LC_E_Acute &
273 W.LC_E_Circumflex &
274 W.LC_E_Diaeresis &
275 W.LC_I_Grave &
276 W.LC_I_Acute &
277 W.LC_I_Circumflex &
278 W.LC_I_Diaeresis &
279 W.LC_Icelandic_Eth &
280 W.LC_N_Tilde &
281 W.LC_O_Grave &
282 W.LC_O_Acute &
283 W.LC_O_Circumflex &
284 W.LC_O_Tilde &
285 W.LC_O_Diaeresis &
286 W.LC_O_Oblique_Stroke &
287 W.LC_U_Grave &
288 W.LC_U_Acute &
289 W.LC_U_Circumflex &
290 W.LC_U_Diaeresis &
291 W.LC_Y_Acute &
292 W.LC_Icelandic_Thorn,
294 Rangev =>
295 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" &
296 W.UC_A_Grave &
297 W.UC_A_Acute &
298 W.UC_A_Circumflex &
299 W.UC_A_Tilde &
300 W.UC_A_Diaeresis &
301 W.UC_A_Ring &
302 W.UC_AE_Diphthong &
303 W.UC_C_Cedilla &
304 W.UC_E_Grave &
305 W.UC_E_Acute &
306 W.UC_E_Circumflex &
307 W.UC_E_Diaeresis &
308 W.UC_I_Grave &
309 W.UC_I_Acute &
310 W.UC_I_Circumflex &
311 W.UC_I_Diaeresis &
312 W.UC_Icelandic_Eth &
313 W.UC_N_Tilde &
314 W.UC_O_Grave &
315 W.UC_O_Acute &
316 W.UC_O_Circumflex &
317 W.UC_O_Tilde &
318 W.UC_O_Diaeresis &
319 W.UC_O_Oblique_Stroke &
320 W.UC_U_Grave &
321 W.UC_U_Acute &
322 W.UC_U_Circumflex &
323 W.UC_U_Diaeresis &
324 W.UC_Y_Acute &
325 W.UC_Icelandic_Thorn);
327 Upper_Case_Map : constant Wide_Wide_Character_Mapping :=
328 (AF.Controlled with
329 Upper_Case_Mapping'Unrestricted_Access);
331 Basic_Mapping : aliased constant Wide_Wide_Character_Mapping_Values :=
332 (Length => 55,
334 Domain =>
335 W.UC_A_Grave &
336 W.UC_A_Acute &
337 W.UC_A_Circumflex &
338 W.UC_A_Tilde &
339 W.UC_A_Diaeresis &
340 W.UC_A_Ring &
341 W.UC_C_Cedilla &
342 W.UC_E_Grave &
343 W.UC_E_Acute &
344 W.UC_E_Circumflex &
345 W.UC_E_Diaeresis &
346 W.UC_I_Grave &
347 W.UC_I_Acute &
348 W.UC_I_Circumflex &
349 W.UC_I_Diaeresis &
350 W.UC_N_Tilde &
351 W.UC_O_Grave &
352 W.UC_O_Acute &
353 W.UC_O_Circumflex &
354 W.UC_O_Tilde &
355 W.UC_O_Diaeresis &
356 W.UC_O_Oblique_Stroke &
357 W.UC_U_Grave &
358 W.UC_U_Acute &
359 W.UC_U_Circumflex &
360 W.UC_U_Diaeresis &
361 W.UC_Y_Acute &
362 W.LC_A_Grave &
363 W.LC_A_Acute &
364 W.LC_A_Circumflex &
365 W.LC_A_Tilde &
366 W.LC_A_Diaeresis &
367 W.LC_A_Ring &
368 W.LC_C_Cedilla &
369 W.LC_E_Grave &
370 W.LC_E_Acute &
371 W.LC_E_Circumflex &
372 W.LC_E_Diaeresis &
373 W.LC_I_Grave &
374 W.LC_I_Acute &
375 W.LC_I_Circumflex &
376 W.LC_I_Diaeresis &
377 W.LC_N_Tilde &
378 W.LC_O_Grave &
379 W.LC_O_Acute &
380 W.LC_O_Circumflex &
381 W.LC_O_Tilde &
382 W.LC_O_Diaeresis &
383 W.LC_O_Oblique_Stroke &
384 W.LC_U_Grave &
385 W.LC_U_Acute &
386 W.LC_U_Circumflex &
387 W.LC_U_Diaeresis &
388 W.LC_Y_Acute &
389 W.LC_Y_Diaeresis,
391 Rangev =>
392 'A' & -- UC_A_Grave
393 'A' & -- UC_A_Acute
394 'A' & -- UC_A_Circumflex
395 'A' & -- UC_A_Tilde
396 'A' & -- UC_A_Diaeresis
397 'A' & -- UC_A_Ring
398 'C' & -- UC_C_Cedilla
399 'E' & -- UC_E_Grave
400 'E' & -- UC_E_Acute
401 'E' & -- UC_E_Circumflex
402 'E' & -- UC_E_Diaeresis
403 'I' & -- UC_I_Grave
404 'I' & -- UC_I_Acute
405 'I' & -- UC_I_Circumflex
406 'I' & -- UC_I_Diaeresis
407 'N' & -- UC_N_Tilde
408 'O' & -- UC_O_Grave
409 'O' & -- UC_O_Acute
410 'O' & -- UC_O_Circumflex
411 'O' & -- UC_O_Tilde
412 'O' & -- UC_O_Diaeresis
413 'O' & -- UC_O_Oblique_Stroke
414 'U' & -- UC_U_Grave
415 'U' & -- UC_U_Acute
416 'U' & -- UC_U_Circumflex
417 'U' & -- UC_U_Diaeresis
418 'Y' & -- UC_Y_Acute
419 'a' & -- LC_A_Grave
420 'a' & -- LC_A_Acute
421 'a' & -- LC_A_Circumflex
422 'a' & -- LC_A_Tilde
423 'a' & -- LC_A_Diaeresis
424 'a' & -- LC_A_Ring
425 'c' & -- LC_C_Cedilla
426 'e' & -- LC_E_Grave
427 'e' & -- LC_E_Acute
428 'e' & -- LC_E_Circumflex
429 'e' & -- LC_E_Diaeresis
430 'i' & -- LC_I_Grave
431 'i' & -- LC_I_Acute
432 'i' & -- LC_I_Circumflex
433 'i' & -- LC_I_Diaeresis
434 'n' & -- LC_N_Tilde
435 'o' & -- LC_O_Grave
436 'o' & -- LC_O_Acute
437 'o' & -- LC_O_Circumflex
438 'o' & -- LC_O_Tilde
439 'o' & -- LC_O_Diaeresis
440 'o' & -- LC_O_Oblique_Stroke
441 'u' & -- LC_U_Grave
442 'u' & -- LC_U_Acute
443 'u' & -- LC_U_Circumflex
444 'u' & -- LC_U_Diaeresis
445 'y' & -- LC_Y_Acute
446 'y'); -- LC_Y_Diaeresis
448 Basic_Map : constant Wide_Wide_Character_Mapping :=
449 (AF.Controlled with
450 Basic_Mapping'Unrestricted_Access);
452 end Ada.Strings.Wide_Wide_Maps.Wide_Wide_Constants;