Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/csets.adb @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ------------------------------------------------------------------------------ | |
2 -- -- | |
3 -- GNAT COMPILER COMPONENTS -- | |
4 -- -- | |
5 -- C S E T S -- | |
6 -- -- | |
7 -- B o d y -- | |
8 -- -- | |
9 -- Copyright (C) 1992-2013, Free Software Foundation, Inc. -- | |
10 -- -- | |
11 -- GNAT is free software; you can redistribute it and/or modify it under -- | |
12 -- terms of the GNU General Public License as published by the Free Soft- -- | |
13 -- ware Foundation; either version 3, or (at your option) any later ver- -- | |
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- | |
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- | |
16 -- or FITNESS FOR A PARTICULAR PURPOSE. -- | |
17 -- -- | |
18 -- As a special exception under Section 7 of GPL version 3, you are granted -- | |
19 -- additional permissions described in the GCC Runtime Library Exception, -- | |
20 -- version 3.1, as published by the Free Software Foundation. -- | |
21 -- -- | |
22 -- You should have received a copy of the GNU General Public License and -- | |
23 -- a copy of the GCC Runtime Library Exception along with this program; -- | |
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- | |
25 -- <http://www.gnu.org/licenses/>. -- | |
26 -- -- | |
27 -- GNAT was originally developed by the GNAT team at New York University. -- | |
28 -- Extensive contributions were provided by Ada Core Technologies Inc. -- | |
29 -- -- | |
30 ------------------------------------------------------------------------------ | |
31 | |
32 with Opt; use Opt; | |
33 | |
34 with System.WCh_Con; use System.WCh_Con; | |
35 | |
36 package body Csets is | |
37 | |
38 X_80 : constant Character := Character'Val (16#80#); | |
39 X_81 : constant Character := Character'Val (16#81#); | |
40 X_82 : constant Character := Character'Val (16#82#); | |
41 X_83 : constant Character := Character'Val (16#83#); | |
42 X_84 : constant Character := Character'Val (16#84#); | |
43 X_85 : constant Character := Character'Val (16#85#); | |
44 X_86 : constant Character := Character'Val (16#86#); | |
45 X_87 : constant Character := Character'Val (16#87#); | |
46 X_88 : constant Character := Character'Val (16#88#); | |
47 X_89 : constant Character := Character'Val (16#89#); | |
48 X_8A : constant Character := Character'Val (16#8A#); | |
49 X_8B : constant Character := Character'Val (16#8B#); | |
50 X_8C : constant Character := Character'Val (16#8C#); | |
51 X_8D : constant Character := Character'Val (16#8D#); | |
52 X_8E : constant Character := Character'Val (16#8E#); | |
53 X_8F : constant Character := Character'Val (16#8F#); | |
54 X_90 : constant Character := Character'Val (16#90#); | |
55 X_91 : constant Character := Character'Val (16#91#); | |
56 X_92 : constant Character := Character'Val (16#92#); | |
57 X_93 : constant Character := Character'Val (16#93#); | |
58 X_94 : constant Character := Character'Val (16#94#); | |
59 X_95 : constant Character := Character'Val (16#95#); | |
60 X_96 : constant Character := Character'Val (16#96#); | |
61 X_97 : constant Character := Character'Val (16#97#); | |
62 X_98 : constant Character := Character'Val (16#98#); | |
63 X_99 : constant Character := Character'Val (16#99#); | |
64 X_9A : constant Character := Character'Val (16#9A#); | |
65 X_9B : constant Character := Character'Val (16#9B#); | |
66 X_9C : constant Character := Character'Val (16#9C#); | |
67 X_9D : constant Character := Character'Val (16#9D#); | |
68 X_9E : constant Character := Character'Val (16#9E#); | |
69 X_9F : constant Character := Character'Val (16#9F#); | |
70 X_A0 : constant Character := Character'Val (16#A0#); | |
71 X_A1 : constant Character := Character'Val (16#A1#); | |
72 X_A2 : constant Character := Character'Val (16#A2#); | |
73 X_A3 : constant Character := Character'Val (16#A3#); | |
74 X_A4 : constant Character := Character'Val (16#A4#); | |
75 X_A5 : constant Character := Character'Val (16#A5#); | |
76 X_A6 : constant Character := Character'Val (16#A6#); | |
77 X_A7 : constant Character := Character'Val (16#A7#); | |
78 X_A8 : constant Character := Character'Val (16#A8#); | |
79 X_A9 : constant Character := Character'Val (16#A9#); | |
80 X_AA : constant Character := Character'Val (16#AA#); | |
81 X_AB : constant Character := Character'Val (16#AB#); | |
82 X_AC : constant Character := Character'Val (16#AC#); | |
83 X_AD : constant Character := Character'Val (16#AD#); | |
84 X_AE : constant Character := Character'Val (16#AE#); | |
85 X_AF : constant Character := Character'Val (16#AF#); | |
86 X_B0 : constant Character := Character'Val (16#B0#); | |
87 X_B1 : constant Character := Character'Val (16#B1#); | |
88 X_B2 : constant Character := Character'Val (16#B2#); | |
89 X_B3 : constant Character := Character'Val (16#B3#); | |
90 X_B4 : constant Character := Character'Val (16#B4#); | |
91 X_B5 : constant Character := Character'Val (16#B5#); | |
92 X_B6 : constant Character := Character'Val (16#B6#); | |
93 X_B7 : constant Character := Character'Val (16#B7#); | |
94 X_B8 : constant Character := Character'Val (16#B8#); | |
95 X_B9 : constant Character := Character'Val (16#B9#); | |
96 X_BA : constant Character := Character'Val (16#BA#); | |
97 X_BB : constant Character := Character'Val (16#BB#); | |
98 X_BC : constant Character := Character'Val (16#BC#); | |
99 X_BD : constant Character := Character'Val (16#BD#); | |
100 X_BE : constant Character := Character'Val (16#BE#); | |
101 X_BF : constant Character := Character'Val (16#BF#); | |
102 X_C0 : constant Character := Character'Val (16#C0#); | |
103 X_C1 : constant Character := Character'Val (16#C1#); | |
104 X_C2 : constant Character := Character'Val (16#C2#); | |
105 X_C3 : constant Character := Character'Val (16#C3#); | |
106 X_C4 : constant Character := Character'Val (16#C4#); | |
107 X_C5 : constant Character := Character'Val (16#C5#); | |
108 X_C6 : constant Character := Character'Val (16#C6#); | |
109 X_C7 : constant Character := Character'Val (16#C7#); | |
110 X_C8 : constant Character := Character'Val (16#C8#); | |
111 X_C9 : constant Character := Character'Val (16#C9#); | |
112 X_CA : constant Character := Character'Val (16#CA#); | |
113 X_CB : constant Character := Character'Val (16#CB#); | |
114 X_CC : constant Character := Character'Val (16#CC#); | |
115 X_CD : constant Character := Character'Val (16#CD#); | |
116 X_CE : constant Character := Character'Val (16#CE#); | |
117 X_CF : constant Character := Character'Val (16#CF#); | |
118 X_D0 : constant Character := Character'Val (16#D0#); | |
119 X_D1 : constant Character := Character'Val (16#D1#); | |
120 X_D2 : constant Character := Character'Val (16#D2#); | |
121 X_D3 : constant Character := Character'Val (16#D3#); | |
122 X_D4 : constant Character := Character'Val (16#D4#); | |
123 X_D5 : constant Character := Character'Val (16#D5#); | |
124 X_D6 : constant Character := Character'Val (16#D6#); | |
125 X_D7 : constant Character := Character'Val (16#D7#); | |
126 X_D8 : constant Character := Character'Val (16#D8#); | |
127 X_D9 : constant Character := Character'Val (16#D9#); | |
128 X_DA : constant Character := Character'Val (16#DA#); | |
129 X_DB : constant Character := Character'Val (16#DB#); | |
130 X_DC : constant Character := Character'Val (16#DC#); | |
131 X_DD : constant Character := Character'Val (16#DD#); | |
132 X_DE : constant Character := Character'Val (16#DE#); | |
133 X_DF : constant Character := Character'Val (16#DF#); | |
134 X_E0 : constant Character := Character'Val (16#E0#); | |
135 X_E1 : constant Character := Character'Val (16#E1#); | |
136 X_E2 : constant Character := Character'Val (16#E2#); | |
137 X_E3 : constant Character := Character'Val (16#E3#); | |
138 X_E4 : constant Character := Character'Val (16#E4#); | |
139 X_E5 : constant Character := Character'Val (16#E5#); | |
140 X_E6 : constant Character := Character'Val (16#E6#); | |
141 X_E7 : constant Character := Character'Val (16#E7#); | |
142 X_E8 : constant Character := Character'Val (16#E8#); | |
143 X_E9 : constant Character := Character'Val (16#E9#); | |
144 X_EA : constant Character := Character'Val (16#EA#); | |
145 X_EB : constant Character := Character'Val (16#EB#); | |
146 X_EC : constant Character := Character'Val (16#EC#); | |
147 X_ED : constant Character := Character'Val (16#ED#); | |
148 X_EE : constant Character := Character'Val (16#EE#); | |
149 X_EF : constant Character := Character'Val (16#EF#); | |
150 X_F0 : constant Character := Character'Val (16#F0#); | |
151 X_F1 : constant Character := Character'Val (16#F1#); | |
152 X_F2 : constant Character := Character'Val (16#F2#); | |
153 X_F3 : constant Character := Character'Val (16#F3#); | |
154 X_F4 : constant Character := Character'Val (16#F4#); | |
155 X_F5 : constant Character := Character'Val (16#F5#); | |
156 X_F6 : constant Character := Character'Val (16#F6#); | |
157 X_F7 : constant Character := Character'Val (16#F7#); | |
158 X_F8 : constant Character := Character'Val (16#F8#); | |
159 X_F9 : constant Character := Character'Val (16#F9#); | |
160 X_FA : constant Character := Character'Val (16#FA#); | |
161 X_FB : constant Character := Character'Val (16#FB#); | |
162 X_FC : constant Character := Character'Val (16#FC#); | |
163 X_FD : constant Character := Character'Val (16#FD#); | |
164 X_FE : constant Character := Character'Val (16#FE#); | |
165 X_FF : constant Character := Character'Val (16#FF#); | |
166 | |
167 ------------------------------------------ | |
168 -- Definitions for Latin-1 (ISO 8859-1) -- | |
169 ------------------------------------------ | |
170 | |
171 Fold_Latin_1 : constant Translate_Table := Translate_Table'( | |
172 | |
173 'a' => 'A', X_E0 => X_C0, X_F0 => X_D0, | |
174 'b' => 'B', X_E1 => X_C1, X_F1 => X_D1, | |
175 'c' => 'C', X_E2 => X_C2, X_F2 => X_D2, | |
176 'd' => 'D', X_E3 => X_C3, X_F3 => X_D3, | |
177 'e' => 'E', X_E4 => X_C4, X_F4 => X_D4, | |
178 'f' => 'F', X_E5 => X_C5, X_F5 => X_D5, | |
179 'g' => 'G', X_E6 => X_C6, X_F6 => X_D6, | |
180 'h' => 'H', X_E7 => X_C7, | |
181 'i' => 'I', X_E8 => X_C8, X_F8 => X_D8, | |
182 'j' => 'J', X_E9 => X_C9, X_F9 => X_D9, | |
183 'k' => 'K', X_EA => X_CA, X_FA => X_DA, | |
184 'l' => 'L', X_EB => X_CB, X_FB => X_DB, | |
185 'm' => 'M', X_EC => X_CC, X_FC => X_DC, | |
186 'n' => 'N', X_ED => X_CD, X_FD => X_DD, | |
187 'o' => 'O', X_EE => X_CE, X_FE => X_DE, | |
188 'p' => 'P', X_EF => X_CF, | |
189 'q' => 'Q', | |
190 'r' => 'R', | |
191 's' => 'S', | |
192 't' => 'T', | |
193 'u' => 'U', | |
194 'v' => 'V', | |
195 'w' => 'W', | |
196 'x' => 'X', | |
197 'y' => 'Y', | |
198 'z' => 'Z', | |
199 | |
200 'A' => 'A', X_C0 => X_C0, X_D0 => X_D0, | |
201 'B' => 'B', X_C1 => X_C1, X_D1 => X_D1, | |
202 'C' => 'C', X_C2 => X_C2, X_D2 => X_D2, | |
203 'D' => 'D', X_C3 => X_C3, X_D3 => X_D3, | |
204 'E' => 'E', X_C4 => X_C4, X_D4 => X_D4, | |
205 'F' => 'F', X_C5 => X_C5, X_D5 => X_D5, | |
206 'G' => 'G', X_C6 => X_C6, X_D6 => X_D6, | |
207 'H' => 'H', X_C7 => X_C7, | |
208 'I' => 'I', X_C8 => X_C8, X_D8 => X_D8, | |
209 'J' => 'J', X_C9 => X_C9, X_D9 => X_D9, | |
210 'K' => 'K', X_CA => X_CA, X_DA => X_DA, | |
211 'L' => 'L', X_CB => X_CB, X_DB => X_DB, | |
212 'M' => 'M', X_CC => X_CC, X_DC => X_DC, | |
213 'N' => 'N', X_CD => X_CD, X_DD => X_DD, | |
214 'O' => 'O', X_CE => X_CE, X_DE => X_DE, | |
215 'P' => 'P', X_CF => X_CF, X_DF => X_DF, X_FF => X_FF, | |
216 'Q' => 'Q', | |
217 'R' => 'R', | |
218 'S' => 'S', | |
219 'T' => 'T', | |
220 'U' => 'U', | |
221 'V' => 'V', | |
222 'W' => 'W', | |
223 'X' => 'X', | |
224 'Y' => 'Y', | |
225 'Z' => 'Z', | |
226 | |
227 '0' => '0', | |
228 '1' => '1', | |
229 '2' => '2', | |
230 '3' => '3', | |
231 '4' => '4', | |
232 '5' => '5', | |
233 '6' => '6', | |
234 '7' => '7', | |
235 '8' => '8', | |
236 '9' => '9', | |
237 | |
238 '_' => '_', | |
239 | |
240 others => ' '); | |
241 | |
242 ------------------------------------------ | |
243 -- Definitions for Latin-2 (ISO 8859-2) -- | |
244 ------------------------------------------ | |
245 | |
246 Fold_Latin_2 : constant Translate_Table := Translate_Table'( | |
247 | |
248 'a' => 'A', X_E0 => X_C0, X_F0 => X_D0, | |
249 'b' => 'B', X_E1 => X_C1, X_F1 => X_D1, X_B1 => X_A1, | |
250 'c' => 'C', X_E2 => X_C2, X_F2 => X_D2, | |
251 'd' => 'D', X_E3 => X_C3, X_F3 => X_D3, X_B3 => X_A3, | |
252 'e' => 'E', X_E4 => X_C4, X_F4 => X_D4, | |
253 'f' => 'F', X_E5 => X_C5, X_F5 => X_D5, X_B5 => X_A5, | |
254 'g' => 'G', X_E6 => X_C6, X_F6 => X_D6, X_B6 => X_A6, | |
255 'h' => 'H', X_E7 => X_C7, | |
256 'i' => 'I', X_E8 => X_C8, X_F8 => X_D8, | |
257 'j' => 'J', X_E9 => X_C9, X_F9 => X_D9, X_B9 => X_A9, | |
258 'k' => 'K', X_EA => X_CA, X_FA => X_DA, X_BA => X_AA, | |
259 'l' => 'L', X_EB => X_CB, X_FB => X_DB, X_BB => X_AB, | |
260 'm' => 'M', X_EC => X_CC, X_FC => X_DC, X_BC => X_AC, | |
261 'n' => 'N', X_ED => X_CD, X_FD => X_DD, | |
262 'o' => 'O', X_EE => X_CE, X_FE => X_DE, X_BE => X_AE, | |
263 'p' => 'P', X_EF => X_CF, X_FF => X_DF, X_BF => X_AF, | |
264 'q' => 'Q', | |
265 'r' => 'R', | |
266 's' => 'S', | |
267 't' => 'T', | |
268 'u' => 'U', | |
269 'v' => 'V', | |
270 'w' => 'W', | |
271 'x' => 'X', | |
272 'y' => 'Y', | |
273 'z' => 'Z', | |
274 | |
275 'A' => 'A', X_C0 => X_C0, X_D0 => X_D0, | |
276 'B' => 'B', X_C1 => X_C1, X_D1 => X_D1, X_A1 => X_A1, | |
277 'C' => 'C', X_C2 => X_C2, X_D2 => X_D2, | |
278 'D' => 'D', X_C3 => X_C3, X_D3 => X_D3, X_A3 => X_A3, | |
279 'E' => 'E', X_C4 => X_C4, X_D4 => X_D4, | |
280 'F' => 'F', X_C5 => X_C5, X_D5 => X_D5, X_A5 => X_A5, | |
281 'G' => 'G', X_C6 => X_C6, X_D6 => X_D6, X_A6 => X_A6, | |
282 'H' => 'H', X_C7 => X_C7, | |
283 'I' => 'I', X_C8 => X_C8, X_D8 => X_D8, | |
284 'J' => 'J', X_C9 => X_C9, X_D9 => X_D9, X_A9 => X_A9, | |
285 'K' => 'K', X_CA => X_CA, X_DA => X_DA, X_AA => X_AA, | |
286 'L' => 'L', X_CB => X_CB, X_DB => X_DB, X_AB => X_AB, | |
287 'M' => 'M', X_CC => X_CC, X_DC => X_DC, X_AC => X_AC, | |
288 'N' => 'N', X_CD => X_CD, X_DD => X_DD, | |
289 'O' => 'O', X_CE => X_CE, X_DE => X_DE, X_AE => X_AE, | |
290 'P' => 'P', X_CF => X_CF, X_DF => X_DF, X_AF => X_AF, | |
291 'Q' => 'Q', | |
292 'R' => 'R', | |
293 'S' => 'S', | |
294 'T' => 'T', | |
295 'U' => 'U', | |
296 'V' => 'V', | |
297 'W' => 'W', | |
298 'X' => 'X', | |
299 'Y' => 'Y', | |
300 'Z' => 'Z', | |
301 | |
302 '0' => '0', | |
303 '1' => '1', | |
304 '2' => '2', | |
305 '3' => '3', | |
306 '4' => '4', | |
307 '5' => '5', | |
308 '6' => '6', | |
309 '7' => '7', | |
310 '8' => '8', | |
311 '9' => '9', | |
312 | |
313 '_' => '_', | |
314 | |
315 others => ' '); | |
316 | |
317 ------------------------------------------ | |
318 -- Definitions for Latin-3 (ISO 8859-3) -- | |
319 ------------------------------------------ | |
320 | |
321 Fold_Latin_3 : constant Translate_Table := Translate_Table'( | |
322 | |
323 'a' => 'A', X_E0 => X_C0, | |
324 'b' => 'B', X_E1 => X_C1, X_F1 => X_D1, X_B1 => X_A1, | |
325 'c' => 'C', X_E2 => X_C2, X_F2 => X_D2, | |
326 'd' => 'D', X_F3 => X_D3, | |
327 'e' => 'E', X_E4 => X_C4, X_F4 => X_D4, | |
328 'f' => 'F', X_E5 => X_C5, X_F5 => X_D5, X_B5 => X_A5, | |
329 'g' => 'G', X_E6 => X_C6, X_F6 => X_D6, X_B6 => X_A6, | |
330 'h' => 'H', X_E7 => X_C7, | |
331 'i' => 'I', X_E8 => X_C8, X_F8 => X_D8, | |
332 'j' => 'J', X_E9 => X_C9, X_F9 => X_D9, X_B9 => X_A9, | |
333 'k' => 'K', X_EA => X_CA, X_FA => X_DA, X_BA => X_AA, | |
334 'l' => 'L', X_EB => X_CB, X_FB => X_DB, X_BB => X_AB, | |
335 'm' => 'M', X_EC => X_CC, X_FC => X_DC, X_BC => X_AC, | |
336 'n' => 'N', X_ED => X_CD, X_FD => X_DD, | |
337 'o' => 'O', X_EE => X_CE, X_FE => X_DE, | |
338 'p' => 'P', X_EF => X_CF, X_BF => X_AF, | |
339 'q' => 'Q', | |
340 'r' => 'R', | |
341 's' => 'S', | |
342 't' => 'T', | |
343 'u' => 'U', | |
344 'v' => 'V', | |
345 'w' => 'W', | |
346 'x' => 'X', | |
347 'y' => 'Y', | |
348 'z' => 'Z', | |
349 | |
350 'A' => 'A', X_C0 => X_C0, | |
351 'B' => 'B', X_C1 => X_C1, X_D1 => X_D1, X_A1 => X_A1, | |
352 'C' => 'C', X_C2 => X_C2, X_D2 => X_D2, | |
353 'D' => 'D', X_D3 => X_D3, | |
354 'E' => 'E', X_C4 => X_C4, X_D4 => X_D4, | |
355 'F' => 'F', X_C5 => X_C5, X_D5 => X_D5, X_A5 => X_A5, | |
356 'G' => 'G', X_C6 => X_C6, X_D6 => X_D6, X_A6 => X_A6, | |
357 'H' => 'H', X_C7 => X_C7, | |
358 'I' => 'I', X_C8 => X_C8, X_D8 => X_D8, | |
359 'J' => 'J', X_C9 => X_C9, X_D9 => X_D9, X_A9 => X_A9, | |
360 'K' => 'K', X_CA => X_CA, X_DA => X_DA, X_AA => X_AA, | |
361 'L' => 'L', X_CB => X_CB, X_DB => X_DB, X_AB => X_AB, | |
362 'M' => 'M', X_CC => X_CC, X_DC => X_DC, X_AC => X_AC, | |
363 'N' => 'N', X_CD => X_CD, X_DD => X_DD, | |
364 'O' => 'O', X_CE => X_CE, X_DE => X_DE, | |
365 'P' => 'P', X_CF => X_CF, X_AF => X_AF, | |
366 'Q' => 'Q', | |
367 'R' => 'R', | |
368 'S' => 'S', | |
369 'T' => 'T', | |
370 'U' => 'U', | |
371 'V' => 'V', | |
372 'W' => 'W', | |
373 'X' => 'X', | |
374 'Y' => 'Y', | |
375 'Z' => 'Z', | |
376 | |
377 '0' => '0', | |
378 '1' => '1', | |
379 '2' => '2', | |
380 '3' => '3', | |
381 '4' => '4', | |
382 '5' => '5', | |
383 '6' => '6', | |
384 '7' => '7', | |
385 '8' => '8', | |
386 '9' => '9', | |
387 | |
388 '_' => '_', | |
389 | |
390 others => ' '); | |
391 | |
392 ------------------------------------------ | |
393 -- Definitions for Latin-4 (ISO 8859-4) -- | |
394 ------------------------------------------ | |
395 | |
396 Fold_Latin_4 : constant Translate_Table := Translate_Table'( | |
397 | |
398 'a' => 'A', X_E0 => X_C0, X_F0 => X_D0, | |
399 'b' => 'B', X_E1 => X_C1, X_F1 => X_D1, X_B1 => X_A1, | |
400 'c' => 'C', X_E2 => X_C2, X_F2 => X_D2, | |
401 'd' => 'D', X_E3 => X_C3, X_F3 => X_D3, X_B3 => X_A3, | |
402 'e' => 'E', X_E4 => X_C4, X_F4 => X_D4, | |
403 'f' => 'F', X_E5 => X_C5, X_F5 => X_D5, X_B5 => X_A5, | |
404 'g' => 'G', X_E6 => X_C6, X_F6 => X_D6, X_B6 => X_A6, | |
405 'h' => 'H', X_E7 => X_C7, | |
406 'i' => 'I', X_E8 => X_C8, X_F8 => X_D8, | |
407 'j' => 'J', X_E9 => X_C9, X_F9 => X_D9, X_B9 => X_A9, | |
408 'k' => 'K', X_EA => X_CA, X_FA => X_DA, X_BA => X_AA, | |
409 'l' => 'L', X_EB => X_CB, X_FB => X_DB, X_BB => X_AB, | |
410 'm' => 'M', X_EC => X_CC, X_FC => X_DC, X_BC => X_AC, | |
411 'n' => 'N', X_ED => X_CD, X_FD => X_DD, | |
412 'o' => 'O', X_EE => X_CE, X_FE => X_DE, X_BE => X_AE, | |
413 'p' => 'P', X_EF => X_CF, | |
414 'q' => 'Q', | |
415 'r' => 'R', | |
416 's' => 'S', | |
417 't' => 'T', | |
418 'u' => 'U', | |
419 'v' => 'V', | |
420 'w' => 'W', | |
421 'x' => 'X', | |
422 'y' => 'Y', | |
423 'z' => 'Z', | |
424 | |
425 'A' => 'A', X_C0 => X_C0, X_D0 => X_D0, | |
426 'B' => 'B', X_C1 => X_C1, X_D1 => X_D1, X_A1 => X_A1, | |
427 'C' => 'C', X_C2 => X_C2, X_D2 => X_D2, | |
428 'D' => 'D', X_C3 => X_C3, X_D3 => X_D3, X_A3 => X_A3, | |
429 'E' => 'E', X_C4 => X_C4, X_D4 => X_D4, | |
430 'F' => 'F', X_C5 => X_C5, X_D5 => X_D5, X_A5 => X_A5, | |
431 'G' => 'G', X_C6 => X_C6, X_D6 => X_D6, X_A6 => X_A6, | |
432 'H' => 'H', X_C7 => X_C7, | |
433 'I' => 'I', X_C8 => X_C8, X_D8 => X_D8, | |
434 'J' => 'J', X_C9 => X_C9, X_D9 => X_D9, X_A9 => X_A9, | |
435 'K' => 'K', X_CA => X_CA, X_DA => X_DA, X_AA => X_AA, | |
436 'L' => 'L', X_CB => X_CB, X_DB => X_DB, X_AB => X_AB, | |
437 'M' => 'M', X_CC => X_CC, X_DC => X_DC, X_AC => X_AC, | |
438 'N' => 'N', X_CD => X_CD, X_DD => X_DD, | |
439 'O' => 'O', X_CE => X_CE, X_DE => X_DE, X_AE => X_AE, | |
440 'P' => 'P', X_CF => X_CF, | |
441 'Q' => 'Q', | |
442 'R' => 'R', | |
443 'S' => 'S', | |
444 'T' => 'T', | |
445 'U' => 'U', | |
446 'V' => 'V', | |
447 'W' => 'W', | |
448 'X' => 'X', | |
449 'Y' => 'Y', | |
450 'Z' => 'Z', | |
451 | |
452 '0' => '0', | |
453 '1' => '1', | |
454 '2' => '2', | |
455 '3' => '3', | |
456 '4' => '4', | |
457 '5' => '5', | |
458 '6' => '6', | |
459 '7' => '7', | |
460 '8' => '8', | |
461 '9' => '9', | |
462 | |
463 '_' => '_', | |
464 | |
465 others => ' '); | |
466 | |
467 ------------------------------------------- | |
468 -- Definitions for Cyrillic (ISO-8859-5) -- | |
469 ------------------------------------------- | |
470 | |
471 Fold_Cyrillic : constant Translate_Table := Translate_Table'( | |
472 | |
473 'a' => 'A', X_D0 => X_B0, X_E0 => X_C0, | |
474 'b' => 'B', X_D1 => X_B1, X_E1 => X_C1, X_F1 => X_A1, | |
475 'c' => 'C', X_D2 => X_B2, X_E2 => X_C2, X_F2 => X_A2, | |
476 'd' => 'D', X_D3 => X_B3, X_E3 => X_C3, X_F3 => X_A3, | |
477 'e' => 'E', X_D4 => X_B4, X_E4 => X_C4, X_F4 => X_A4, | |
478 'f' => 'F', X_D5 => X_B5, X_E5 => X_C5, X_F5 => X_A5, | |
479 'g' => 'G', X_D6 => X_B6, X_E6 => X_C6, X_F6 => X_A6, | |
480 'h' => 'H', X_D7 => X_B7, X_E7 => X_C7, X_F7 => X_A7, | |
481 'i' => 'I', X_D8 => X_B8, X_E8 => X_C8, X_F8 => X_A8, | |
482 'j' => 'J', X_D9 => X_B9, X_E9 => X_C9, X_F9 => X_A9, | |
483 'k' => 'K', X_DA => X_BA, X_EA => X_CA, X_FA => X_AA, | |
484 'l' => 'L', X_DB => X_BB, X_EB => X_CB, X_FB => X_AB, | |
485 'm' => 'M', X_DC => X_BC, X_EC => X_CC, X_FC => X_AC, | |
486 'n' => 'N', X_DD => X_BD, X_ED => X_CD, | |
487 'o' => 'O', X_DE => X_BE, X_EE => X_CE, X_FE => X_AE, | |
488 'p' => 'P', X_DF => X_BF, X_EF => X_CF, X_FF => X_AF, | |
489 'q' => 'Q', | |
490 'r' => 'R', | |
491 's' => 'S', | |
492 't' => 'T', | |
493 'u' => 'U', | |
494 'v' => 'V', | |
495 'w' => 'W', | |
496 'x' => 'X', | |
497 'y' => 'Y', | |
498 'z' => 'Z', | |
499 | |
500 'A' => 'A', X_B0 => X_B0, X_C0 => X_C0, | |
501 'B' => 'B', X_B1 => X_B1, X_C1 => X_C1, X_A1 => X_A1, | |
502 'C' => 'C', X_B2 => X_B2, X_C2 => X_C2, X_A2 => X_A2, | |
503 'D' => 'D', X_B3 => X_B3, X_C3 => X_C3, X_A3 => X_A3, | |
504 'E' => 'E', X_B4 => X_B4, X_C4 => X_C4, X_A4 => X_A4, | |
505 'F' => 'F', X_B5 => X_B5, X_C5 => X_C5, X_A5 => X_A5, | |
506 'G' => 'G', X_B6 => X_B6, X_C6 => X_C6, X_A6 => X_A6, | |
507 'H' => 'H', X_B7 => X_B7, X_C7 => X_C7, X_A7 => X_A7, | |
508 'I' => 'I', X_B8 => X_B8, X_C8 => X_C8, X_A8 => X_A8, | |
509 'J' => 'J', X_B9 => X_B9, X_C9 => X_C9, X_A9 => X_A9, | |
510 'K' => 'K', X_BA => X_BA, X_CA => X_CA, X_AA => X_AA, | |
511 'L' => 'L', X_BB => X_BB, X_CB => X_CB, X_AB => X_AB, | |
512 'M' => 'M', X_BC => X_BC, X_CC => X_CC, X_AC => X_AC, | |
513 'N' => 'N', X_BD => X_BD, X_CD => X_CD, | |
514 'O' => 'O', X_BE => X_BE, X_CE => X_CE, X_AE => X_AE, | |
515 'P' => 'P', X_BF => X_BF, X_CF => X_CF, X_AF => X_AF, | |
516 'Q' => 'Q', | |
517 'R' => 'R', | |
518 'S' => 'S', | |
519 'T' => 'T', | |
520 'U' => 'U', | |
521 'V' => 'V', | |
522 'W' => 'W', | |
523 'X' => 'X', | |
524 'Y' => 'Y', | |
525 'Z' => 'Z', | |
526 | |
527 '0' => '0', | |
528 '1' => '1', | |
529 '2' => '2', | |
530 '3' => '3', | |
531 '4' => '4', | |
532 '5' => '5', | |
533 '6' => '6', | |
534 '7' => '7', | |
535 '8' => '8', | |
536 '9' => '9', | |
537 | |
538 '_' => '_', | |
539 | |
540 others => ' '); | |
541 | |
542 ------------------------------------------- | |
543 -- Definitions for Latin-9 (ISO 8859-15) -- | |
544 ------------------------------------------- | |
545 | |
546 Fold_Latin_9 : constant Translate_Table := Translate_Table'( | |
547 | |
548 'a' => 'A', X_E0 => X_C0, X_F0 => X_D0, | |
549 'b' => 'B', X_E1 => X_C1, X_F1 => X_D1, | |
550 'c' => 'C', X_E2 => X_C2, X_F2 => X_D2, | |
551 'd' => 'D', X_E3 => X_C3, X_F3 => X_D3, | |
552 'e' => 'E', X_E4 => X_C4, X_F4 => X_D4, | |
553 'f' => 'F', X_E5 => X_C5, X_F5 => X_D5, | |
554 'g' => 'G', X_E6 => X_C6, X_F6 => X_D6, | |
555 'h' => 'H', X_E7 => X_C7, | |
556 'i' => 'I', X_E8 => X_C8, X_F8 => X_D8, | |
557 'j' => 'J', X_E9 => X_C9, X_F9 => X_D9, | |
558 'k' => 'K', X_EA => X_CA, X_FA => X_DA, | |
559 'l' => 'L', X_EB => X_CB, X_FB => X_DB, | |
560 'm' => 'M', X_EC => X_CC, X_FC => X_DC, | |
561 'n' => 'N', X_ED => X_CD, X_FD => X_DD, | |
562 'o' => 'O', X_EE => X_CE, X_FE => X_DE, | |
563 'p' => 'P', X_EF => X_CF, | |
564 'q' => 'Q', X_A8 => X_A6, | |
565 'r' => 'R', X_B8 => X_B4, | |
566 's' => 'S', X_BD => X_BC, | |
567 't' => 'T', X_BE => X_FF, | |
568 'u' => 'U', | |
569 'v' => 'V', | |
570 'w' => 'W', | |
571 'x' => 'X', | |
572 'y' => 'Y', | |
573 'z' => 'Z', | |
574 | |
575 'A' => 'A', X_C0 => X_C0, X_D0 => X_D0, | |
576 'B' => 'B', X_C1 => X_C1, X_D1 => X_D1, | |
577 'C' => 'C', X_C2 => X_C2, X_D2 => X_D2, | |
578 'D' => 'D', X_C3 => X_C3, X_D3 => X_D3, | |
579 'E' => 'E', X_C4 => X_C4, X_D4 => X_D4, | |
580 'F' => 'F', X_C5 => X_C5, X_D5 => X_D5, | |
581 'G' => 'G', X_C6 => X_C6, X_D6 => X_D6, | |
582 'H' => 'H', X_C7 => X_C7, | |
583 'I' => 'I', X_C8 => X_C8, X_D8 => X_D8, | |
584 'J' => 'J', X_C9 => X_C9, X_D9 => X_D9, | |
585 'K' => 'K', X_CA => X_CA, X_DA => X_DA, | |
586 'L' => 'L', X_CB => X_CB, X_DB => X_DB, | |
587 'M' => 'M', X_CC => X_CC, X_DC => X_DC, | |
588 'N' => 'N', X_CD => X_CD, X_DD => X_DD, | |
589 'O' => 'O', X_CE => X_CE, X_DE => X_DE, | |
590 'P' => 'P', X_CF => X_CF, X_DF => X_DF, X_FF => X_FF, | |
591 'Q' => 'Q', X_A6 => X_A6, | |
592 'R' => 'R', X_B4 => X_B4, | |
593 'S' => 'S', X_BC => X_BC, | |
594 'T' => 'T', | |
595 'U' => 'U', | |
596 'V' => 'V', | |
597 'W' => 'W', | |
598 'X' => 'X', | |
599 'Y' => 'Y', | |
600 'Z' => 'Z', | |
601 | |
602 '0' => '0', | |
603 '1' => '1', | |
604 '2' => '2', | |
605 '3' => '3', | |
606 '4' => '4', | |
607 '5' => '5', | |
608 '6' => '6', | |
609 '7' => '7', | |
610 '8' => '8', | |
611 '9' => '9', | |
612 | |
613 '_' => '_', | |
614 | |
615 others => ' '); | |
616 | |
617 -------------------------------------------- | |
618 -- Definitions for IBM PC (Code Page 437) -- | |
619 -------------------------------------------- | |
620 | |
621 -- Note: Code page 437 is the typical default in Windows for PC's in the | |
622 -- US, it corresponds to the original PC character set. See also the | |
623 -- definitions for code page 850. | |
624 | |
625 Fold_IBM_PC_437 : constant Translate_Table := Translate_Table'( | |
626 | |
627 'a' => 'A', | |
628 'b' => 'B', | |
629 'c' => 'C', | |
630 'd' => 'D', | |
631 'e' => 'E', | |
632 'f' => 'F', | |
633 'g' => 'G', | |
634 'h' => 'H', | |
635 'i' => 'I', | |
636 'j' => 'J', | |
637 'k' => 'K', | |
638 'l' => 'L', | |
639 'm' => 'M', | |
640 'n' => 'N', | |
641 'o' => 'O', | |
642 'p' => 'P', | |
643 'q' => 'Q', | |
644 'r' => 'R', | |
645 's' => 'S', | |
646 't' => 'T', | |
647 'u' => 'U', | |
648 'v' => 'V', | |
649 'w' => 'W', | |
650 'x' => 'X', | |
651 'y' => 'Y', | |
652 'z' => 'Z', | |
653 | |
654 'A' => 'A', | |
655 'B' => 'B', | |
656 'C' => 'C', | |
657 'D' => 'D', | |
658 'E' => 'E', | |
659 'F' => 'F', | |
660 'G' => 'G', | |
661 'H' => 'H', | |
662 'I' => 'I', | |
663 'J' => 'J', | |
664 'K' => 'K', | |
665 'L' => 'L', | |
666 'M' => 'M', | |
667 'N' => 'N', | |
668 'O' => 'O', | |
669 'P' => 'P', | |
670 'Q' => 'Q', | |
671 'R' => 'R', | |
672 'S' => 'S', | |
673 'T' => 'T', | |
674 'U' => 'U', | |
675 'V' => 'V', | |
676 'W' => 'W', | |
677 'X' => 'X', | |
678 'Y' => 'Y', | |
679 'Z' => 'Z', | |
680 | |
681 X_80 => X_80, -- C cedilla | |
682 X_81 => X_9A, -- u umlaut | |
683 X_82 => X_90, -- e acute | |
684 X_83 => X_83, -- a circumflex | |
685 X_84 => X_8E, -- a umlaut | |
686 X_85 => X_85, -- a grave | |
687 X_86 => X_8F, -- a ring | |
688 X_87 => X_80, -- c cedilla | |
689 X_88 => X_88, -- e circumflex | |
690 X_89 => X_89, -- e umlaut | |
691 X_8A => X_8A, -- e grave | |
692 X_8B => X_8B, -- i umlaut | |
693 X_8C => X_8C, -- i circumflex | |
694 X_8D => X_8D, -- i grave | |
695 X_8E => X_8E, -- A umlaut | |
696 X_8F => X_8F, -- A ring | |
697 | |
698 X_90 => X_90, -- E acute | |
699 X_91 => X_92, -- ae | |
700 X_92 => X_92, -- AE | |
701 X_93 => X_93, -- o circumflex | |
702 X_94 => X_99, -- o umlaut | |
703 X_95 => X_95, -- o grave | |
704 X_96 => X_96, -- u circumflex | |
705 X_97 => X_97, -- u grave | |
706 X_98 => X_98, -- y umlaut | |
707 X_99 => X_99, -- O umlaut | |
708 X_9A => X_9A, -- U umlaut | |
709 | |
710 X_A0 => X_A0, -- a acute | |
711 X_A1 => X_A1, -- i acute | |
712 X_A2 => X_A2, -- o acute | |
713 X_A3 => X_A3, -- u acute | |
714 X_A4 => X_A5, -- n tilde | |
715 X_A5 => X_A5, -- N tilde | |
716 X_A6 => X_A6, -- a underline | |
717 X_A7 => X_A7, -- o underline | |
718 | |
719 X_E0 => X_E0, -- lower case alpha | |
720 X_E1 => X_E1, -- lower case beta | |
721 X_E2 => X_E2, -- upper case gamma | |
722 X_E3 => X_E3, -- lower case pi | |
723 X_E4 => X_E4, -- upper case sigma (lower/upper sigma not equivalent) | |
724 X_E5 => X_E5, -- lower case sigma (lower/upper sigma not equivalent) | |
725 X_E6 => X_E6, -- lower case mu | |
726 X_E7 => X_E7, -- lower case tau | |
727 X_E8 => X_E8, -- upper case phi (lower/upper phi not equivalent) | |
728 X_E9 => X_E9, -- lower case theta | |
729 X_EA => X_EA, -- upper case omega | |
730 X_EB => X_EB, -- lower case delta | |
731 X_ED => X_ED, -- lower case phi (lower/upper phi not equivalent) | |
732 X_EE => X_EE, -- lower case epsilon | |
733 | |
734 X_FC => X_FC, -- lower case eta | |
735 | |
736 '0' => '0', | |
737 '1' => '1', | |
738 '2' => '2', | |
739 '3' => '3', | |
740 '4' => '4', | |
741 '5' => '5', | |
742 '6' => '6', | |
743 '7' => '7', | |
744 '8' => '8', | |
745 '9' => '9', | |
746 | |
747 '_' => '_', | |
748 | |
749 others => ' '); | |
750 | |
751 -------------------------------------------- | |
752 -- Definitions for IBM PC (Code Page 850) -- | |
753 -------------------------------------------- | |
754 | |
755 -- Note: Code page 850 is the typical default in Windows for PC's in | |
756 -- Europe, it is an extension of the original PC character set to include | |
757 -- the additional characters defined in ISO Latin-1. See also the | |
758 -- definitions for code page 437. | |
759 | |
760 Fold_IBM_PC_850 : constant Translate_Table := Translate_Table'( | |
761 | |
762 'a' => 'A', | |
763 'b' => 'B', | |
764 'c' => 'C', | |
765 'd' => 'D', | |
766 'e' => 'E', | |
767 'f' => 'F', | |
768 'g' => 'G', | |
769 'h' => 'H', | |
770 'i' => 'I', | |
771 'j' => 'J', | |
772 'k' => 'K', | |
773 'l' => 'L', | |
774 'm' => 'M', | |
775 'n' => 'N', | |
776 'o' => 'O', | |
777 'p' => 'P', | |
778 'q' => 'Q', | |
779 'r' => 'R', | |
780 's' => 'S', | |
781 't' => 'T', | |
782 'u' => 'U', | |
783 'v' => 'V', | |
784 'w' => 'W', | |
785 'x' => 'X', | |
786 'y' => 'Y', | |
787 'z' => 'Z', | |
788 | |
789 'A' => 'A', | |
790 'B' => 'B', | |
791 'C' => 'C', | |
792 'D' => 'D', | |
793 'E' => 'E', | |
794 'F' => 'F', | |
795 'G' => 'G', | |
796 'H' => 'H', | |
797 'I' => 'I', | |
798 'J' => 'J', | |
799 'K' => 'K', | |
800 'L' => 'L', | |
801 'M' => 'M', | |
802 'N' => 'N', | |
803 'O' => 'O', | |
804 'P' => 'P', | |
805 'Q' => 'Q', | |
806 'R' => 'R', | |
807 'S' => 'S', | |
808 'T' => 'T', | |
809 'U' => 'U', | |
810 'V' => 'V', | |
811 'W' => 'W', | |
812 'X' => 'X', | |
813 'Y' => 'Y', | |
814 'Z' => 'Z', | |
815 | |
816 X_80 => X_80, -- C cedilla | |
817 X_81 => X_9A, -- u umlaut | |
818 X_82 => X_90, -- e acute | |
819 X_83 => X_B6, -- a circumflex | |
820 X_84 => X_8E, -- a umlaut | |
821 X_85 => X_B7, -- a grave | |
822 X_86 => X_8F, -- a ring | |
823 X_87 => X_80, -- c cedilla | |
824 X_88 => X_D2, -- e circumflex | |
825 X_89 => X_D3, -- e umlaut | |
826 X_8A => X_D4, -- e grave | |
827 X_8B => X_D8, -- i umlaut | |
828 X_8C => X_D7, -- i circumflex | |
829 X_8D => X_DE, -- i grave | |
830 X_8E => X_8E, -- A umlaut | |
831 X_8F => X_8F, -- A ring | |
832 | |
833 X_90 => X_90, -- E acute | |
834 X_91 => X_92, -- ae | |
835 X_92 => X_92, -- AE | |
836 X_93 => X_E2, -- o circumflex | |
837 X_94 => X_99, -- o umlaut | |
838 X_95 => X_E3, -- o grave | |
839 X_96 => X_EA, -- u circumflex | |
840 X_97 => X_EB, -- u grave | |
841 X_98 => X_98, -- y umlaut | |
842 X_99 => X_99, -- O umlaut | |
843 X_9A => X_9A, -- U umlaut | |
844 | |
845 X_A0 => X_B5, -- a acute | |
846 X_A1 => X_D6, -- i acute | |
847 X_A2 => X_E0, -- o acute | |
848 X_A3 => X_E9, -- u acute | |
849 X_A4 => X_A5, -- n tilde | |
850 X_A5 => X_A5, -- N tilde | |
851 X_A6 => X_A6, -- a underline | |
852 X_A7 => X_A7, -- o underline | |
853 | |
854 X_B5 => X_B5, -- A acute | |
855 X_B6 => X_B6, -- A circumflex | |
856 X_B7 => X_B7, -- A grave | |
857 | |
858 X_C6 => X_C7, -- a tilde | |
859 X_C7 => X_C7, -- A tilde | |
860 | |
861 X_D0 => X_D1, -- eth | |
862 X_D1 => X_D1, -- Eth | |
863 X_D2 => X_D2, -- E circumflex | |
864 X_D3 => X_D3, -- E umlaut | |
865 X_D4 => X_D4, -- E grave | |
866 X_D5 => X_D5, -- dotless i, no uppercase | |
867 X_D6 => X_D6, -- I acute | |
868 X_D7 => X_D7, -- I circumflex | |
869 X_D8 => X_D8, -- I umlaut | |
870 X_DE => X_DE, -- I grave | |
871 | |
872 X_E0 => X_E0, -- O acute | |
873 X_E1 => X_E1, -- german dbl s, no uppercase | |
874 X_E2 => X_E2, -- O circumflex | |
875 X_E3 => X_E3, -- O grave | |
876 X_E4 => X_E4, -- o tilde | |
877 X_E5 => X_E5, -- O tilde | |
878 X_E7 => X_E8, -- thorn | |
879 X_E8 => X_E8, -- Thorn | |
880 X_E9 => X_E9, -- U acute | |
881 X_EA => X_EA, -- U circumflex | |
882 X_EB => X_EB, -- U grave | |
883 X_EC => X_ED, -- y acute | |
884 X_ED => X_ED, -- Y acute | |
885 | |
886 '0' => '0', | |
887 '1' => '1', | |
888 '2' => '2', | |
889 '3' => '3', | |
890 '4' => '4', | |
891 '5' => '5', | |
892 '6' => '6', | |
893 '7' => '7', | |
894 '8' => '8', | |
895 '9' => '9', | |
896 | |
897 '_' => '_', | |
898 | |
899 others => ' '); | |
900 | |
901 ----------------------------------------- | |
902 -- Definitions for Full Upper Half Set -- | |
903 ----------------------------------------- | |
904 | |
905 -- The full upper half set allows all upper half characters as letters, | |
906 -- and does not recognize any upper/lower case equivalences in this half. | |
907 | |
908 Fold_Full_Upper_Half : constant Translate_Table := Translate_Table'( | |
909 | |
910 'a' => 'A', | |
911 'b' => 'B', | |
912 'c' => 'C', | |
913 'd' => 'D', | |
914 'e' => 'E', | |
915 'f' => 'F', | |
916 'g' => 'G', | |
917 'h' => 'H', | |
918 'i' => 'I', | |
919 'j' => 'J', | |
920 'k' => 'K', | |
921 'l' => 'L', | |
922 'm' => 'M', | |
923 'n' => 'N', | |
924 'o' => 'O', | |
925 'p' => 'P', | |
926 'q' => 'Q', | |
927 'r' => 'R', | |
928 's' => 'S', | |
929 't' => 'T', | |
930 'u' => 'U', | |
931 'v' => 'V', | |
932 'w' => 'W', | |
933 'x' => 'X', | |
934 'y' => 'Y', | |
935 'z' => 'Z', | |
936 | |
937 'A' => 'A', | |
938 'B' => 'B', | |
939 'C' => 'C', | |
940 'D' => 'D', | |
941 'E' => 'E', | |
942 'F' => 'F', | |
943 'G' => 'G', | |
944 'H' => 'H', | |
945 'I' => 'I', | |
946 'J' => 'J', | |
947 'K' => 'K', | |
948 'L' => 'L', | |
949 'M' => 'M', | |
950 'N' => 'N', | |
951 'O' => 'O', | |
952 'P' => 'P', | |
953 'Q' => 'Q', | |
954 'R' => 'R', | |
955 'S' => 'S', | |
956 'T' => 'T', | |
957 'U' => 'U', | |
958 'V' => 'V', | |
959 'W' => 'W', | |
960 'X' => 'X', | |
961 'Y' => 'Y', | |
962 'Z' => 'Z', | |
963 | |
964 X_80 => X_80, X_90 => X_90, X_A0 => X_A0, X_B0 => X_B0, | |
965 X_81 => X_81, X_91 => X_91, X_A1 => X_A1, X_B1 => X_B1, | |
966 X_82 => X_82, X_92 => X_92, X_A2 => X_A2, X_B2 => X_B2, | |
967 X_83 => X_83, X_93 => X_93, X_A3 => X_A3, X_B3 => X_B3, | |
968 X_84 => X_84, X_94 => X_94, X_A4 => X_A4, X_B4 => X_B4, | |
969 X_85 => X_85, X_95 => X_95, X_A5 => X_A5, X_B5 => X_B5, | |
970 X_86 => X_86, X_96 => X_96, X_A6 => X_A6, X_B6 => X_B6, | |
971 X_87 => X_87, X_97 => X_97, X_A7 => X_A7, X_B7 => X_B7, | |
972 X_88 => X_88, X_98 => X_98, X_A8 => X_A8, X_B8 => X_B8, | |
973 X_89 => X_89, X_99 => X_99, X_A9 => X_A9, X_B9 => X_B9, | |
974 X_8A => X_8A, X_9A => X_9A, X_AA => X_AA, X_BA => X_BA, | |
975 X_8B => X_8B, X_9B => X_9B, X_AB => X_AB, X_BB => X_BB, | |
976 X_8C => X_8C, X_9C => X_9C, X_AC => X_AC, X_BC => X_BC, | |
977 X_8D => X_8D, X_9D => X_9D, X_AD => X_AD, X_BD => X_BD, | |
978 X_8E => X_8E, X_9E => X_9E, X_AE => X_AE, X_BE => X_BE, | |
979 X_8F => X_8F, X_9F => X_9F, X_AF => X_AF, X_BF => X_BF, | |
980 | |
981 X_C0 => X_C0, X_D0 => X_D0, X_E0 => X_E0, X_F0 => X_F0, | |
982 X_C1 => X_C1, X_D1 => X_D1, X_E1 => X_E1, X_F1 => X_F1, | |
983 X_C2 => X_C2, X_D2 => X_D2, X_E2 => X_E2, X_F2 => X_F2, | |
984 X_C3 => X_C3, X_D3 => X_D3, X_E3 => X_E3, X_F3 => X_F3, | |
985 X_C4 => X_C4, X_D4 => X_D4, X_E4 => X_E4, X_F4 => X_F4, | |
986 X_C5 => X_C5, X_D5 => X_D5, X_E5 => X_E5, X_F5 => X_F5, | |
987 X_C6 => X_C6, X_D6 => X_D6, X_E6 => X_E6, X_F6 => X_F6, | |
988 X_C7 => X_C7, X_D7 => X_D7, X_E7 => X_E7, X_F7 => X_F7, | |
989 X_C8 => X_C8, X_D8 => X_D8, X_E8 => X_E8, X_F8 => X_F8, | |
990 X_C9 => X_C9, X_D9 => X_D9, X_E9 => X_E9, X_F9 => X_F9, | |
991 X_CA => X_CA, X_DA => X_DA, X_EA => X_EA, X_FA => X_FA, | |
992 X_CB => X_CB, X_DB => X_DB, X_EB => X_EB, X_FB => X_FB, | |
993 X_CC => X_CC, X_DC => X_DC, X_EC => X_EC, X_FC => X_FC, | |
994 X_CD => X_CD, X_DD => X_DD, X_ED => X_ED, X_FD => X_FD, | |
995 X_CE => X_CE, X_DE => X_DE, X_EE => X_EE, X_FE => X_FE, | |
996 X_CF => X_CF, X_DF => X_DF, X_EF => X_EF, X_FF => X_FF, | |
997 | |
998 '0' => '0', | |
999 '1' => '1', | |
1000 '2' => '2', | |
1001 '3' => '3', | |
1002 '4' => '4', | |
1003 '5' => '5', | |
1004 '6' => '6', | |
1005 '7' => '7', | |
1006 '8' => '8', | |
1007 '9' => '9', | |
1008 | |
1009 '_' => '_', | |
1010 | |
1011 others => ' '); | |
1012 | |
1013 --------------------------------------- | |
1014 -- Definitions for No Upper Half Set -- | |
1015 --------------------------------------- | |
1016 | |
1017 -- The no upper half set allows no upper half characters as letters, and | |
1018 -- thus there are no upper/lower case equivalences in this half. This set | |
1019 -- corresponds to the Ada 83 rules. | |
1020 | |
1021 Fold_No_Upper_Half : constant Translate_Table := Translate_Table'( | |
1022 | |
1023 'a' => 'A', | |
1024 'b' => 'B', | |
1025 'c' => 'C', | |
1026 'd' => 'D', | |
1027 'e' => 'E', | |
1028 'f' => 'F', | |
1029 'g' => 'G', | |
1030 'h' => 'H', | |
1031 'i' => 'I', | |
1032 'j' => 'J', | |
1033 'k' => 'K', | |
1034 'l' => 'L', | |
1035 'm' => 'M', | |
1036 'n' => 'N', | |
1037 'o' => 'O', | |
1038 'p' => 'P', | |
1039 'q' => 'Q', | |
1040 'r' => 'R', | |
1041 's' => 'S', | |
1042 't' => 'T', | |
1043 'u' => 'U', | |
1044 'v' => 'V', | |
1045 'w' => 'W', | |
1046 'x' => 'X', | |
1047 'y' => 'Y', | |
1048 'z' => 'Z', | |
1049 | |
1050 'A' => 'A', | |
1051 'B' => 'B', | |
1052 'C' => 'C', | |
1053 'D' => 'D', | |
1054 'E' => 'E', | |
1055 'F' => 'F', | |
1056 'G' => 'G', | |
1057 'H' => 'H', | |
1058 'I' => 'I', | |
1059 'J' => 'J', | |
1060 'K' => 'K', | |
1061 'L' => 'L', | |
1062 'M' => 'M', | |
1063 'N' => 'N', | |
1064 'O' => 'O', | |
1065 'P' => 'P', | |
1066 'Q' => 'Q', | |
1067 'R' => 'R', | |
1068 'S' => 'S', | |
1069 'T' => 'T', | |
1070 'U' => 'U', | |
1071 'V' => 'V', | |
1072 'W' => 'W', | |
1073 'X' => 'X', | |
1074 'Y' => 'Y', | |
1075 'Z' => 'Z', | |
1076 | |
1077 '0' => '0', | |
1078 '1' => '1', | |
1079 '2' => '2', | |
1080 '3' => '3', | |
1081 '4' => '4', | |
1082 '5' => '5', | |
1083 '6' => '6', | |
1084 '7' => '7', | |
1085 '8' => '8', | |
1086 '9' => '9', | |
1087 | |
1088 '_' => '_', | |
1089 | |
1090 others => ' '); | |
1091 | |
1092 ---------------- | |
1093 -- Initialize -- | |
1094 ---------------- | |
1095 | |
1096 procedure Initialize is | |
1097 begin | |
1098 -- Set Fold_Upper table from source code indication | |
1099 | |
1100 if Identifier_Character_Set = '1' | |
1101 or else Identifier_Character_Set = 'w' | |
1102 then | |
1103 Fold_Upper := Fold_Latin_1; | |
1104 | |
1105 elsif Identifier_Character_Set = '2' then | |
1106 Fold_Upper := Fold_Latin_2; | |
1107 | |
1108 elsif Identifier_Character_Set = '3' then | |
1109 Fold_Upper := Fold_Latin_3; | |
1110 | |
1111 elsif Identifier_Character_Set = '4' then | |
1112 Fold_Upper := Fold_Latin_4; | |
1113 | |
1114 elsif Identifier_Character_Set = '5' then | |
1115 Fold_Upper := Fold_Cyrillic; | |
1116 | |
1117 elsif Identifier_Character_Set = 'p' then | |
1118 Fold_Upper := Fold_IBM_PC_437; | |
1119 | |
1120 elsif Identifier_Character_Set = '8' then | |
1121 Fold_Upper := Fold_IBM_PC_850; | |
1122 | |
1123 elsif Identifier_Character_Set = '9' then | |
1124 Fold_Upper := Fold_Latin_9; | |
1125 | |
1126 elsif Identifier_Character_Set = 'f' then | |
1127 Fold_Upper := Fold_Full_Upper_Half; | |
1128 | |
1129 else -- Identifier_Character_Set = 'n' | |
1130 Fold_Upper := Fold_No_Upper_Half; | |
1131 end if; | |
1132 | |
1133 -- Use Fold_Upper table to compute Fold_Lower table | |
1134 | |
1135 Fold_Lower := Fold_Upper; | |
1136 | |
1137 for J in Character loop | |
1138 if J /= Fold_Upper (J) then | |
1139 Fold_Lower (Fold_Upper (J)) := J; | |
1140 Fold_Lower (J) := J; | |
1141 end if; | |
1142 end loop; | |
1143 | |
1144 Fold_Lower (' ') := ' '; | |
1145 | |
1146 -- Build Identifier_Char table from used entries of Fold_Upper | |
1147 | |
1148 for J in Character loop | |
1149 Identifier_Char (J) := (Fold_Upper (J) /= ' '); | |
1150 end loop; | |
1151 | |
1152 -- Always add [ as an identifier character to deal with the brackets | |
1153 -- notation for wide characters used in identifiers. Note that if | |
1154 -- we are not allowing wide characters in identifiers, then any use | |
1155 -- of this notation will be flagged as an error in Scan_Identifier. | |
1156 | |
1157 Identifier_Char ('[') := True; | |
1158 | |
1159 -- Add entry for ESC if wide characters in use with a wide character | |
1160 -- encoding method active that uses the ESC code for encoding. | |
1161 | |
1162 if Identifier_Character_Set = 'w' | |
1163 and then Wide_Character_Encoding_Method in WC_ESC_Encoding_Method | |
1164 then | |
1165 Identifier_Char (ASCII.ESC) := True; | |
1166 end if; | |
1167 end Initialize; | |
1168 | |
1169 -------------------------- | |
1170 -- Is_Lower_Case_Letter -- | |
1171 -------------------------- | |
1172 | |
1173 function Is_Lower_Case_Letter (C : Character) return Boolean is | |
1174 begin | |
1175 return C /= Fold_Upper (C); | |
1176 end Is_Lower_Case_Letter; | |
1177 | |
1178 -------------------------- | |
1179 -- Is_Upper_Case_Letter -- | |
1180 -------------------------- | |
1181 | |
1182 function Is_Upper_Case_Letter (C : Character) return Boolean is | |
1183 begin | |
1184 return C /= Fold_Lower (C); | |
1185 end Is_Upper_Case_Letter; | |
1186 | |
1187 end Csets; |