2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
24 * COMPONENT_NAME: austext
31 * (C) COPYRIGHT International Business Machines Corp. 1996
33 * Licensed Materials - Property of IBM
34 * US Government Users Restricted Rights - Use, duplication or
35 * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
37 /******************** LANGMAP.C ********************
38 * $XConsortium: langmap.c /main/3 1996/05/07 13:38:58 drk $
40 * Contains European single byte character maps for
41 * teskey parser and Paice/Porter stemmers.
42 * Formerly coded in lang.c.
44 * Contains two code pages: ascii and iso-latin-1.
45 * From F. N. Teskey (Principles of Text Processing, Elis Horwood Ltd,
46 * 1982), a word is "a finite sequence of concordable and optionally
47 * concordable characters delimited by either a nonconcordable character or an
48 * optionally concordable character adjacent to a nonconcordable or optionally
49 * concordable one." Optionally concordable characters are symbols like
50 * "./-" which may or may not occur within words (TCP/IP, file.dos, co-op).
51 * Concordable characters are alphas and numbers.
52 * Nonconcordables are whitespace, punctuation, control chars, etc.
54 * Lowest order byte = 'uppercase' of indexing char.
55 * Next higher order byte = mask for teskey parse bits.
58 * Revision 1.3 1996/03/13 22:58:28 miker
61 * Revision 1.2 1996/03/05 16:35:04 miker
62 * Changed usage of WHITESPACE to replace isspace() function calls.
64 * Revision 1.1 1996/02/01 19:15:52 miker
69 /************************************************/
73 /************************************************/
74 /* Teskey character map for iso-latin-1 character set. */
75 int latin_charmap [] = {
76 NON_CONCORD | 0 /* NULL, Teskey EOT char */
77 ,NON_CONCORD | 1 /* CTRL-A */
78 ,NON_CONCORD | 2 /* CTRL-B */
79 ,NON_CONCORD | 3 /* CTRL-C */
80 ,NON_CONCORD | 4 /* CTRL-D */
81 ,NON_CONCORD | 5 /* CTRL-E */
82 ,NON_CONCORD | 6 /* CTRL-F */
83 ,NON_CONCORD | 7 /* BEL \a */
84 ,NON_CONCORD | 8 /* BS \b */
85 ,NON_CONCORD | WHITESPACE | 9 /* TAB \t */
86 ,NON_CONCORD | WHITESPACE | 10 /* LF \n */
87 ,NON_CONCORD | WHITESPACE | 11 /* VT \v */
88 ,NON_CONCORD | WHITESPACE | 12 /* FF \f */
89 ,NON_CONCORD | WHITESPACE | 13 /* CR \r */
90 ,NON_CONCORD | 14 /* CTRL-N */
91 ,NON_CONCORD | 15 /* CTRL-O */
92 ,NON_CONCORD | 16 /* CTRL-P */
93 ,NON_CONCORD | 17 /* CTRL-Q */
94 ,NON_CONCORD | 18 /* CTRL-R */
95 ,NON_CONCORD | 19 /* CTRL-S */
96 ,NON_CONCORD | 20 /* CTRL-T */
97 ,NON_CONCORD | 21 /* CTRL-U */
98 ,NON_CONCORD | 22 /* CTRL-V */
99 ,NON_CONCORD | 23 /* CTRL-W */
100 ,NON_CONCORD | 24 /* CTRL-X */
101 ,NON_CONCORD | 25 /* CTRL-Y */
102 ,NON_CONCORD | 26 /* CTRL-Z (EOF) */
103 ,NON_CONCORD | 27 /* ESC */
108 ,NON_CONCORD | WHITESPACE | 32 /* SPACE (blank) */
109 ,NON_CONCORD | 33 /* ! */
110 ,NON_CONCORD | 34 /* " */
111 ,NON_CONCORD | 35 /* # */
112 ,NON_CONCORD | 36 /* $ */
113 ,NON_CONCORD | 37 /* % */
114 ,NON_CONCORD | 38 /* & */
115 ,NON_CONCORD | 39 /* ' (apostrophe) */
116 ,NON_CONCORD | 40 /* ( */
117 ,NON_CONCORD | 41 /* ) */
118 ,NON_CONCORD | 42 /* * */
119 ,NON_CONCORD | 43 /* + */
120 ,NON_CONCORD | 44 /* , (comma) */
122 ,OPT_CONCORD | 45 /* - (dash) */
123 ,OPT_CONCORD | 46 /* . (period) */
124 ,OPT_CONCORD | 47 /* / (slash) */
126 ,CONCORDABLE | NUMERAL | 48 /* 0 */
127 ,CONCORDABLE | NUMERAL | 49 /* 1 */
128 ,CONCORDABLE | NUMERAL | 50 /* 2 */
129 ,CONCORDABLE | NUMERAL | 51 /* 3 */
130 ,CONCORDABLE | NUMERAL | 52 /* 4 */
131 ,CONCORDABLE | NUMERAL | 53 /* 5 */
132 ,CONCORDABLE | NUMERAL | 54 /* 6 */
133 ,CONCORDABLE | NUMERAL | 55 /* 7 */
134 ,CONCORDABLE | NUMERAL | 56 /* 8 */
135 ,CONCORDABLE | NUMERAL | 57 /* 9 */
137 ,NON_CONCORD | 58 /* : */
138 ,NON_CONCORD | 59 /* ; */
139 ,NON_CONCORD | 60 /* < */
140 ,NON_CONCORD | 61 /* = */
141 ,NON_CONCORD | 62 /* > */
142 ,NON_CONCORD | 63 /* ? */
143 ,NON_CONCORD | 64 /* @ */
145 ,CONCORDABLE | VOWEL | 65 /* A */
146 ,CONCORDABLE | CONSONANT | 66 /* B */
147 ,CONCORDABLE | CONSONANT | 67 /* C */
148 ,CONCORDABLE | CONSONANT | 68 /* D */
149 ,CONCORDABLE | VOWEL | 69 /* E */
150 ,CONCORDABLE | CONSONANT | 70 /* F */
151 ,CONCORDABLE | CONSONANT | 71 /* G */
152 ,CONCORDABLE | CONSONANT | 72 /* H */
153 ,CONCORDABLE | VOWEL | 73 /* I */
154 ,CONCORDABLE | CONSONANT | 74 /* J */
155 ,CONCORDABLE | CONSONANT | 75 /* K */
156 ,CONCORDABLE | CONSONANT | 76 /* L */
157 ,CONCORDABLE | CONSONANT | 77 /* M */
158 ,CONCORDABLE | CONSONANT | 78 /* N */
159 ,CONCORDABLE | VOWEL | 79 /* O */
160 ,CONCORDABLE | CONSONANT | 80 /* P */
161 ,CONCORDABLE | CONSONANT | 81 /* Q */
162 ,CONCORDABLE | CONSONANT | 82 /* R */
163 ,CONCORDABLE | CONSONANT | 83 /* S */
164 ,CONCORDABLE | CONSONANT | 84 /* T */
165 ,CONCORDABLE | VOWEL | 85 /* U */
166 ,CONCORDABLE | CONSONANT | 86 /* V */
167 ,CONCORDABLE | CONSONANT | 87 /* W */
168 ,CONCORDABLE | CONSONANT | 88 /* X */
169 ,CONCORDABLE | CONSONANT | 89 /* Y */
170 ,CONCORDABLE | CONSONANT | 90 /* Z */
172 ,NON_CONCORD | 91 /* [ */
173 ,NON_CONCORD | 92 /* \ (backslash) */
174 ,NON_CONCORD | 93 /* ] */
175 ,NON_CONCORD | 94 /* ^ */
177 ,OPT_CONCORD | 95 /* _ (underscore) */
179 ,NON_CONCORD | 96 /* ` (grave accent) */
181 ,CONCORDABLE | VOWEL | 'A' /* 97 = lowercase a */
182 ,CONCORDABLE | CONSONANT | 'B' /* 98 = lowercase b */
183 ,CONCORDABLE | CONSONANT | 'C' /* 99 = lowercase c */
184 ,CONCORDABLE | CONSONANT | 'D' /* 100 = lowercase d */
185 ,CONCORDABLE | VOWEL | 'E' /* 101 = lowercase e */
186 ,CONCORDABLE | CONSONANT | 'F' /* 102 = lowercase f */
187 ,CONCORDABLE | CONSONANT | 'G' /* 103 = lowercase g */
188 ,CONCORDABLE | CONSONANT | 'H' /* 104 = lowercase h */
189 ,CONCORDABLE | VOWEL | 'I' /* 105 = lowercase i */
190 ,CONCORDABLE | CONSONANT | 'J' /* 106 = lowercase j */
191 ,CONCORDABLE | CONSONANT | 'K' /* 107 = lowercase k */
192 ,CONCORDABLE | CONSONANT | 'L' /* 108 = lowercase l */
193 ,CONCORDABLE | CONSONANT | 'M' /* 109 = lowercase m */
194 ,CONCORDABLE | CONSONANT | 'N' /* 110 = lowercase n */
195 ,CONCORDABLE | VOWEL | 'O' /* 111 = lowercase o */
196 ,CONCORDABLE | CONSONANT | 'P' /* 112 = lowercase p */
197 ,CONCORDABLE | CONSONANT | 'Q' /* 113 = lowercase q */
198 ,CONCORDABLE | CONSONANT | 'R' /* 114 = lowercase r */
199 ,CONCORDABLE | CONSONANT | 'S' /* 115 = lowercase s */
200 ,CONCORDABLE | CONSONANT | 'T' /* 116 = lowercase t */
201 ,CONCORDABLE | VOWEL | 'U' /* 117 = lowercase u */
202 ,CONCORDABLE | CONSONANT | 'V' /* 118 = lowercase v */
203 ,CONCORDABLE | CONSONANT | 'W' /* 119 = lowercase w */
204 ,CONCORDABLE | CONSONANT | 'X' /* 120 = lowercase x */
205 ,CONCORDABLE | CONSONANT | 'Y' /* 121 = lowercase y */
206 ,CONCORDABLE | CONSONANT | 'Z' /* 122 = lowercase z */
208 ,NON_CONCORD | 123 /* { */
209 ,NON_CONCORD | 124 /* | (virgule, vertical line) */
210 ,NON_CONCORD | 125 /* } */
211 ,NON_CONCORD | 126 /* ~ */
212 ,NON_CONCORD | 127 /* DEL */
250 ,CONCORDABLE | 160 /* RSP, 'Reqd SPace' (nonbreak?) */
251 ,NON_CONCORD | 161 /* inverted exclamation point */
252 ,NON_CONCORD | 162 /* cent sign, C slash */
253 ,NON_CONCORD | 163 /* pounds sterling */
254 ,NON_CONCORD | 164 /* generic international currency */
255 ,NON_CONCORD | 165 /* yen */
256 ,NON_CONCORD | 166 /* broken vertical line */
257 ,NON_CONCORD | 167 /* section/paragraph symbol */
259 ,NON_CONCORD | 168 /* diaeresis-umlaut */
260 ,NON_CONCORD | 169 /* copyright symbol, c circle */
261 ,NON_CONCORD | 170 /* 'a' small superscript, feminine */
262 ,NON_CONCORD | 171 /* left angle quotes */
263 ,NON_CONCORD | 172 /* logical not, eol */
264 ,CONCORDABLE | 173 /* SHY, 'Syllable HYphen' (nonbreak?) */
265 ,NON_CONCORD | 174 /* registered trademark, r circle */
266 ,NON_CONCORD | 175 /* overline */
268 ,NON_CONCORD | 176 /* degree symbol, xB0 */
269 ,NON_CONCORD | 177 /* plus-minus symbol */
270 ,NON_CONCORD | 178 /* squared, '2' superscript */
271 ,NON_CONCORD | 179 /* cubed, '3' superscript */
272 ,NON_CONCORD | 180 /* acute accent */
273 ,NON_CONCORD | 181 /* micro symbol (greek mu) */
274 ,NON_CONCORD | 182 /* paragraph symbol */
275 ,NON_CONCORD | 183 /* middle dot */
277 ,NON_CONCORD | 184 /* cedilla */
278 ,NON_CONCORD | 185 /* '1' superscript */
279 ,NON_CONCORD | 186 /* 'o' small superscript, masculine */
280 ,NON_CONCORD | 187 /* right angle quotes */
281 ,NON_CONCORD | 188 /* one fourth */
282 ,NON_CONCORD | 189 /* one half */
283 ,NON_CONCORD | 190 /* three fourths */
284 ,NON_CONCORD | 191 /* inverted question mark */
286 ,CONCORDABLE | VOWEL | 192 /* uppercase 'A' grave accent, xC0 */
287 ,CONCORDABLE | VOWEL | 193 /* uppercase 'A' acute accent */
288 ,CONCORDABLE | VOWEL | 194 /* uppercase 'A' circumflex */
289 ,CONCORDABLE | VOWEL | 195 /* uppercase 'A' tilde */
290 ,CONCORDABLE | VOWEL | 196 /* uppercase 'A' diaeresis-umlaut */
291 ,CONCORDABLE | VOWEL | 197 /* uppercase 'A' overcircle */
292 ,CONCORDABLE | VOWEL | 198 /* uppercase 'AE' diphthong */
293 ,CONCORDABLE | CONSONANT | 199 /* uppercase 'C' cedilla */
295 ,CONCORDABLE | VOWEL | 200 /* uppercase 'E' grave accent */
296 ,CONCORDABLE | VOWEL | 201 /* uppercase 'E' acute accent */
297 ,CONCORDABLE | VOWEL | 202 /* uppercase 'E' circumflex */
298 ,CONCORDABLE | VOWEL | 203 /* uppercase 'E' diaeresis-umlaut */
299 ,CONCORDABLE | VOWEL | 204 /* uppercase 'I' grave accent */
300 ,CONCORDABLE | VOWEL | 205 /* uppercase 'I' acute accent */
301 ,CONCORDABLE | VOWEL | 206 /* uppercase 'I' circumflex */
302 ,CONCORDABLE | VOWEL | 207 /* uppercase 'I' diaeresis-umlaut */
304 ,CONCORDABLE | CONSONANT | 208 /* uppercase 'D' stroke (eth), xD0 */
305 ,CONCORDABLE | CONSONANT | 209 /* uppercase 'N' tilde */
306 ,CONCORDABLE | VOWEL | 210 /* uppercase 'O' grave accent */
307 ,CONCORDABLE | VOWEL | 211 /* uppercase 'O' acute accent */
308 ,CONCORDABLE | VOWEL | 212 /* uppercase 'O' circumflex */
309 ,CONCORDABLE | VOWEL | 213 /* uppercase 'O' tilde */
310 ,CONCORDABLE | VOWEL | 214 /* uppercase 'O' diaeresis-umlaut */
311 ,NON_CONCORD | 215 /* multiply sign 'x' */
313 ,CONCORDABLE | VOWEL | 216 /* uppercase 'O' slash */
314 ,CONCORDABLE | VOWEL | 217 /* uppercase 'U' grave accent */
315 ,CONCORDABLE | VOWEL | 218 /* uppercase 'U' acute accent */
316 ,CONCORDABLE | VOWEL | 219 /* uppercase 'U' circumflex */
317 ,CONCORDABLE | VOWEL | 220 /* uppercase 'U' diaeresis-umlaut */
318 ,CONCORDABLE | VOWEL | 221 /* uppercase 'Y' acute accent */
319 ,CONCORDABLE | CONSONANT | 222 /* uppercase Thorn (Iceland) */
320 ,CONCORDABLE | CONSONANT | 223 /* lowercase s sharp (German ss) */
322 ,CONCORDABLE | VOWEL | 192 /* 224, lcase 'a' grave accent, xE0 */
323 ,CONCORDABLE | VOWEL | 193 /* lowercase 'a' acute accent */
324 ,CONCORDABLE | VOWEL | 194 /* lowercase 'a' circumflex */
325 ,CONCORDABLE | VOWEL | 195 /* lowercase 'a' tilde */
326 ,CONCORDABLE | VOWEL | 196 /* lowercase 'a' diaeresis-umlaut */
327 ,CONCORDABLE | VOWEL | 197 /* lowercase 'a' overcircle */
328 ,CONCORDABLE | VOWEL | 198 /* lowercase 'ae' diphthong */
329 ,CONCORDABLE | CONSONANT | 199 /* lowercase 'c' cedilla */
331 ,CONCORDABLE | VOWEL | 200 /* 232, lowercase 'e' grave accent */
332 ,CONCORDABLE | VOWEL | 201 /* lowercase 'e' acute accent */
333 ,CONCORDABLE | VOWEL | 202 /* lowercase 'e' circumflex */
334 ,CONCORDABLE | VOWEL | 203 /* lowercase 'e' diaeresis-umlaut */
335 ,CONCORDABLE | VOWEL | 204 /* lowercase 'i' grave accent */
336 ,CONCORDABLE | VOWEL | 205 /* lowercase 'i' acute accent */
337 ,CONCORDABLE | VOWEL | 206 /* lowercase 'i' circumflex */
338 ,CONCORDABLE | VOWEL | 207 /* lowercase 'i' diaeresis-umlaut */
340 ,CONCORDABLE | CONSONANT | 208 /* 240, lcase 'd' stroke (eth), xF0 */
341 ,CONCORDABLE | CONSONANT | 209 /* lowercase 'n' tilde */
342 ,CONCORDABLE | VOWEL | 210 /* lowercase 'o' grave accent */
343 ,CONCORDABLE | VOWEL | 211 /* lowercase 'o' acute accent */
344 ,CONCORDABLE | VOWEL | 212 /* lowercase 'o' circumflex */
345 ,CONCORDABLE | VOWEL | 213 /* lowercase 'o' tilde */
346 ,CONCORDABLE | VOWEL | 214 /* lowercase 'o' diaeresis-umlaut */
347 ,NON_CONCORD | 247 /* divide sign */
349 ,CONCORDABLE | VOWEL | 216 /* 248, lowercase 'o' slash */
350 ,CONCORDABLE | VOWEL | 217 /* lowercase 'u' grave accent */
351 ,CONCORDABLE | VOWEL | 218 /* lowercase 'u' acute accent */
352 ,CONCORDABLE | VOWEL | 219 /* lowercase 'u' circumflex */
353 ,CONCORDABLE | VOWEL | 220 /* lowercase 'u' diaeresis-umlaut */
354 ,CONCORDABLE | VOWEL | 221 /* lowercase 'y' acute accent */
355 ,CONCORDABLE | CONSONANT | 222 /* lowercase thorn (Icelandic) */
356 ,CONCORDABLE | CONSONANT | 255 /* lowercase 'y' diaeresis-umlaut */
358 ,NON_CONCORD /* 256, an extra one... */
359 }; /* latin_charmap[] */
362 /************************************************/
366 /************************************************/
367 /* Teskey character map for 7-bit ascii
368 * character set in 8-bit octets.
369 * Also accessed in packed EUC parsing in jpn.c.
371 int ascii_charmap [] = {
372 NON_CONCORD | 0 /* NULL, Teskey EOT char */
373 ,NON_CONCORD | 1 /* CTRL-A */
374 ,NON_CONCORD | 2 /* CTRL-B */
375 ,NON_CONCORD | 3 /* CTRL-C */
376 ,NON_CONCORD | 4 /* CTRL-D */
377 ,NON_CONCORD | 5 /* CTRL-E */
378 ,NON_CONCORD | 6 /* CTRL-F */
379 ,NON_CONCORD | 7 /* BEL \a */
380 ,NON_CONCORD | 8 /* BS \b */
381 ,NON_CONCORD | WHITESPACE | 9 /* TAB \t */
382 ,NON_CONCORD | WHITESPACE | 10 /* LF \n */
383 ,NON_CONCORD | WHITESPACE | 11 /* VT \v */
384 ,NON_CONCORD | WHITESPACE | 12 /* FF \f */
385 ,NON_CONCORD | WHITESPACE | 13 /* CR \r */
386 ,NON_CONCORD | 14 /* CTRL-N */
387 ,NON_CONCORD | 15 /* CTRL-O */
388 ,NON_CONCORD | 16 /* CTRL-P */
389 ,NON_CONCORD | 17 /* CTRL-Q */
390 ,NON_CONCORD | 18 /* CTRL-R */
391 ,NON_CONCORD | 19 /* CTRL-S */
392 ,NON_CONCORD | 20 /* CTRL-T */
393 ,NON_CONCORD | 21 /* CTRL-U */
394 ,NON_CONCORD | 22 /* CTRL-V */
395 ,NON_CONCORD | 23 /* CTRL-W */
396 ,NON_CONCORD | 24 /* CTRL-X */
397 ,NON_CONCORD | 25 /* CTRL-Y */
398 ,NON_CONCORD | 26 /* CTRL-Z (EOF) */
399 ,NON_CONCORD | 27 /* ESC */
404 ,NON_CONCORD | WHITESPACE | 32 /* SPACE (blank) */
405 ,NON_CONCORD | 33 /* ! */
406 ,NON_CONCORD | 34 /* " */
407 ,NON_CONCORD | 35 /* # */
408 ,NON_CONCORD | 36 /* $ */
409 ,NON_CONCORD | 37 /* % */
410 ,NON_CONCORD | 38 /* & */
411 ,NON_CONCORD | 39 /* ' (apostrophe) */
412 ,NON_CONCORD | 40 /* ( */
413 ,NON_CONCORD | 41 /* ) */
414 ,NON_CONCORD | 42 /* * */
415 ,NON_CONCORD | 43 /* + */
416 ,NON_CONCORD | 44 /* , (comma) */
418 ,OPT_CONCORD | 45 /* - (dash) */
419 ,OPT_CONCORD | 46 /* . (period) */
420 ,OPT_CONCORD | 47 /* / (slash) */
422 ,CONCORDABLE | NUMERAL | 48 /* 0 */
423 ,CONCORDABLE | NUMERAL | 49 /* 1 */
424 ,CONCORDABLE | NUMERAL | 50 /* 2 */
425 ,CONCORDABLE | NUMERAL | 51 /* 3 */
426 ,CONCORDABLE | NUMERAL | 52 /* 4 */
427 ,CONCORDABLE | NUMERAL | 53 /* 5 */
428 ,CONCORDABLE | NUMERAL | 54 /* 6 */
429 ,CONCORDABLE | NUMERAL | 55 /* 7 */
430 ,CONCORDABLE | NUMERAL | 56 /* 8 */
431 ,CONCORDABLE | NUMERAL | 57 /* 9 */
433 ,NON_CONCORD | 58 /* : */
434 ,NON_CONCORD | 59 /* ; */
435 ,NON_CONCORD | 60 /* < */
436 ,NON_CONCORD | 61 /* = */
437 ,NON_CONCORD | 62 /* > */
438 ,NON_CONCORD | 63 /* ? */
439 ,NON_CONCORD | 64 /* @ */
441 ,CONCORDABLE | VOWEL | 65 /* A */
442 ,CONCORDABLE | CONSONANT | 66 /* B */
443 ,CONCORDABLE | CONSONANT | 67 /* C */
444 ,CONCORDABLE | CONSONANT | 68 /* D */
445 ,CONCORDABLE | VOWEL | 69 /* E */
446 ,CONCORDABLE | CONSONANT | 70 /* F */
447 ,CONCORDABLE | CONSONANT | 71 /* G */
448 ,CONCORDABLE | CONSONANT | 72 /* H */
449 ,CONCORDABLE | VOWEL | 73 /* I */
450 ,CONCORDABLE | CONSONANT | 74 /* J */
451 ,CONCORDABLE | CONSONANT | 75 /* K */
452 ,CONCORDABLE | CONSONANT | 76 /* L */
453 ,CONCORDABLE | CONSONANT | 77 /* M */
454 ,CONCORDABLE | CONSONANT | 78 /* N */
455 ,CONCORDABLE | VOWEL | 79 /* O */
456 ,CONCORDABLE | CONSONANT | 80 /* P */
457 ,CONCORDABLE | CONSONANT | 81 /* Q */
458 ,CONCORDABLE | CONSONANT | 82 /* R */
459 ,CONCORDABLE | CONSONANT | 83 /* S */
460 ,CONCORDABLE | CONSONANT | 84 /* T */
461 ,CONCORDABLE | VOWEL | 85 /* U */
462 ,CONCORDABLE | CONSONANT | 86 /* V */
463 ,CONCORDABLE | CONSONANT | 87 /* W */
464 ,CONCORDABLE | CONSONANT | 88 /* X */
465 ,CONCORDABLE | CONSONANT | 89 /* Y */
466 ,CONCORDABLE | CONSONANT | 90 /* Z */
468 ,NON_CONCORD | 91 /* [ */
469 ,NON_CONCORD | 92 /* \ (backslash) */
470 ,NON_CONCORD | 93 /* ] */
471 ,NON_CONCORD | 94 /* ^ */
473 ,OPT_CONCORD | 95 /* _ (underscore) */
475 ,NON_CONCORD | 96 /* ` (grave accent) */
477 ,CONCORDABLE | VOWEL | 'A' /* 97 = lowercase a */
478 ,CONCORDABLE | CONSONANT | 'B' /* 98 = lowercase b */
479 ,CONCORDABLE | CONSONANT | 'C' /* 99 = lowercase c */
480 ,CONCORDABLE | CONSONANT | 'D' /* 100 = lowercase d */
481 ,CONCORDABLE | VOWEL | 'E' /* 101 = lowercase e */
482 ,CONCORDABLE | CONSONANT | 'F' /* 102 = lowercase f */
483 ,CONCORDABLE | CONSONANT | 'G' /* 103 = lowercase g */
484 ,CONCORDABLE | CONSONANT | 'H' /* 104 = lowercase h */
485 ,CONCORDABLE | VOWEL | 'I' /* 105 = lowercase i */
486 ,CONCORDABLE | CONSONANT | 'J' /* 106 = lowercase j */
487 ,CONCORDABLE | CONSONANT | 'K' /* 107 = lowercase k */
488 ,CONCORDABLE | CONSONANT | 'L' /* 108 = lowercase l */
489 ,CONCORDABLE | CONSONANT | 'M' /* 109 = lowercase m */
490 ,CONCORDABLE | CONSONANT | 'N' /* 110 = lowercase n */
491 ,CONCORDABLE | VOWEL | 'O' /* 111 = lowercase o */
492 ,CONCORDABLE | CONSONANT | 'P' /* 112 = lowercase p */
493 ,CONCORDABLE | CONSONANT | 'Q' /* 113 = lowercase q */
494 ,CONCORDABLE | CONSONANT | 'R' /* 114 = lowercase r */
495 ,CONCORDABLE | CONSONANT | 'S' /* 115 = lowercase s */
496 ,CONCORDABLE | CONSONANT | 'T' /* 116 = lowercase t */
497 ,CONCORDABLE | VOWEL | 'U' /* 117 = lowercase u */
498 ,CONCORDABLE | CONSONANT | 'V' /* 118 = lowercase v */
499 ,CONCORDABLE | CONSONANT | 'W' /* 119 = lowercase w */
500 ,CONCORDABLE | CONSONANT | 'X' /* 120 = lowercase x */
501 ,CONCORDABLE | CONSONANT | 'Y' /* 121 = lowercase y */
502 ,CONCORDABLE | CONSONANT | 'Z' /* 122 = lowercase z */
504 ,NON_CONCORD | 123 /* { */
505 ,NON_CONCORD | 124 /* | (virgule, vertical line) */
506 ,NON_CONCORD | 125 /* } */
507 ,NON_CONCORD | 126 /* ~ */
508 ,NON_CONCORD | 127 /* DEL */
654 ,NON_CONCORD /* 256 = an extra one... */
655 }; /* ascii_charmap[] */
657 /******************** LANGMAP.C ********************/