langmap.c 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
  1. /*
  2. * CDE - Common Desktop Environment
  3. *
  4. * Copyright (c) 1993-2012, The Open Group. All rights reserved.
  5. *
  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)
  10. * any later version.
  11. *
  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
  16. * details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public
  19. * License along with these libraries and programs; if not, write
  20. * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
  21. * Floor, Boston, MA 02110-1301 USA
  22. */
  23. /*
  24. * COMPONENT_NAME: austext
  25. *
  26. * FUNCTIONS: none
  27. *
  28. * ORIGINS: 27
  29. *
  30. *
  31. * (C) COPYRIGHT International Business Machines Corp. 1996
  32. * All Rights Reserved
  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.
  36. */
  37. /******************** LANGMAP.C ********************
  38. * $XConsortium: langmap.c /main/3 1996/05/07 13:38:58 drk $
  39. * January 1996.
  40. * Contains European single byte character maps for
  41. * teskey parser and Paice/Porter stemmers.
  42. * Formerly coded in lang.c.
  43. *
  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.
  53. *
  54. * Lowest order byte = 'uppercase' of indexing char.
  55. * Next higher order byte = mask for teskey parse bits.
  56. *
  57. * $Log$
  58. * Revision 1.3 1996/03/13 22:58:28 miker
  59. * Added prolog.
  60. *
  61. * Revision 1.2 1996/03/05 16:35:04 miker
  62. * Changed usage of WHITESPACE to replace isspace() function calls.
  63. *
  64. * Revision 1.1 1996/02/01 19:15:52 miker
  65. * Initial revision
  66. */
  67. #include "SearchP.h"
  68. /************************************************/
  69. /* */
  70. /* latin_charmap */
  71. /* */
  72. /************************************************/
  73. /* Teskey character map for iso-latin-1 character set. */
  74. int latin_charmap [] = {
  75. NON_CONCORD | 0 /* NULL, Teskey EOT char */
  76. ,NON_CONCORD | 1 /* CTRL-A */
  77. ,NON_CONCORD | 2 /* CTRL-B */
  78. ,NON_CONCORD | 3 /* CTRL-C */
  79. ,NON_CONCORD | 4 /* CTRL-D */
  80. ,NON_CONCORD | 5 /* CTRL-E */
  81. ,NON_CONCORD | 6 /* CTRL-F */
  82. ,NON_CONCORD | 7 /* BEL \a */
  83. ,NON_CONCORD | 8 /* BS \b */
  84. ,NON_CONCORD | WHITESPACE | 9 /* TAB \t */
  85. ,NON_CONCORD | WHITESPACE | 10 /* LF \n */
  86. ,NON_CONCORD | WHITESPACE | 11 /* VT \v */
  87. ,NON_CONCORD | WHITESPACE | 12 /* FF \f */
  88. ,NON_CONCORD | WHITESPACE | 13 /* CR \r */
  89. ,NON_CONCORD | 14 /* CTRL-N */
  90. ,NON_CONCORD | 15 /* CTRL-O */
  91. ,NON_CONCORD | 16 /* CTRL-P */
  92. ,NON_CONCORD | 17 /* CTRL-Q */
  93. ,NON_CONCORD | 18 /* CTRL-R */
  94. ,NON_CONCORD | 19 /* CTRL-S */
  95. ,NON_CONCORD | 20 /* CTRL-T */
  96. ,NON_CONCORD | 21 /* CTRL-U */
  97. ,NON_CONCORD | 22 /* CTRL-V */
  98. ,NON_CONCORD | 23 /* CTRL-W */
  99. ,NON_CONCORD | 24 /* CTRL-X */
  100. ,NON_CONCORD | 25 /* CTRL-Y */
  101. ,NON_CONCORD | 26 /* CTRL-Z (EOF) */
  102. ,NON_CONCORD | 27 /* ESC */
  103. ,NON_CONCORD | 28
  104. ,NON_CONCORD | 29
  105. ,NON_CONCORD | 30
  106. ,NON_CONCORD | 31
  107. ,NON_CONCORD | WHITESPACE | 32 /* SPACE (blank) */
  108. ,NON_CONCORD | 33 /* ! */
  109. ,NON_CONCORD | 34 /* " */
  110. ,NON_CONCORD | 35 /* # */
  111. ,NON_CONCORD | 36 /* $ */
  112. ,NON_CONCORD | 37 /* % */
  113. ,NON_CONCORD | 38 /* & */
  114. ,NON_CONCORD | 39 /* ' (apostrophe) */
  115. ,NON_CONCORD | 40 /* ( */
  116. ,NON_CONCORD | 41 /* ) */
  117. ,NON_CONCORD | 42 /* * */
  118. ,NON_CONCORD | 43 /* + */
  119. ,NON_CONCORD | 44 /* , (comma) */
  120. ,OPT_CONCORD | 45 /* - (dash) */
  121. ,OPT_CONCORD | 46 /* . (period) */
  122. ,OPT_CONCORD | 47 /* / (slash) */
  123. ,CONCORDABLE | NUMERAL | 48 /* 0 */
  124. ,CONCORDABLE | NUMERAL | 49 /* 1 */
  125. ,CONCORDABLE | NUMERAL | 50 /* 2 */
  126. ,CONCORDABLE | NUMERAL | 51 /* 3 */
  127. ,CONCORDABLE | NUMERAL | 52 /* 4 */
  128. ,CONCORDABLE | NUMERAL | 53 /* 5 */
  129. ,CONCORDABLE | NUMERAL | 54 /* 6 */
  130. ,CONCORDABLE | NUMERAL | 55 /* 7 */
  131. ,CONCORDABLE | NUMERAL | 56 /* 8 */
  132. ,CONCORDABLE | NUMERAL | 57 /* 9 */
  133. ,NON_CONCORD | 58 /* : */
  134. ,NON_CONCORD | 59 /* ; */
  135. ,NON_CONCORD | 60 /* < */
  136. ,NON_CONCORD | 61 /* = */
  137. ,NON_CONCORD | 62 /* > */
  138. ,NON_CONCORD | 63 /* ? */
  139. ,NON_CONCORD | 64 /* @ */
  140. ,CONCORDABLE | VOWEL | 65 /* A */
  141. ,CONCORDABLE | CONSONANT | 66 /* B */
  142. ,CONCORDABLE | CONSONANT | 67 /* C */
  143. ,CONCORDABLE | CONSONANT | 68 /* D */
  144. ,CONCORDABLE | VOWEL | 69 /* E */
  145. ,CONCORDABLE | CONSONANT | 70 /* F */
  146. ,CONCORDABLE | CONSONANT | 71 /* G */
  147. ,CONCORDABLE | CONSONANT | 72 /* H */
  148. ,CONCORDABLE | VOWEL | 73 /* I */
  149. ,CONCORDABLE | CONSONANT | 74 /* J */
  150. ,CONCORDABLE | CONSONANT | 75 /* K */
  151. ,CONCORDABLE | CONSONANT | 76 /* L */
  152. ,CONCORDABLE | CONSONANT | 77 /* M */
  153. ,CONCORDABLE | CONSONANT | 78 /* N */
  154. ,CONCORDABLE | VOWEL | 79 /* O */
  155. ,CONCORDABLE | CONSONANT | 80 /* P */
  156. ,CONCORDABLE | CONSONANT | 81 /* Q */
  157. ,CONCORDABLE | CONSONANT | 82 /* R */
  158. ,CONCORDABLE | CONSONANT | 83 /* S */
  159. ,CONCORDABLE | CONSONANT | 84 /* T */
  160. ,CONCORDABLE | VOWEL | 85 /* U */
  161. ,CONCORDABLE | CONSONANT | 86 /* V */
  162. ,CONCORDABLE | CONSONANT | 87 /* W */
  163. ,CONCORDABLE | CONSONANT | 88 /* X */
  164. ,CONCORDABLE | CONSONANT | 89 /* Y */
  165. ,CONCORDABLE | CONSONANT | 90 /* Z */
  166. ,NON_CONCORD | 91 /* [ */
  167. ,NON_CONCORD | 92 /* \ (backslash) */
  168. ,NON_CONCORD | 93 /* ] */
  169. ,NON_CONCORD | 94 /* ^ */
  170. ,OPT_CONCORD | 95 /* _ (underscore) */
  171. ,NON_CONCORD | 96 /* ` (grave accent) */
  172. ,CONCORDABLE | VOWEL | 'A' /* 97 = lowercase a */
  173. ,CONCORDABLE | CONSONANT | 'B' /* 98 = lowercase b */
  174. ,CONCORDABLE | CONSONANT | 'C' /* 99 = lowercase c */
  175. ,CONCORDABLE | CONSONANT | 'D' /* 100 = lowercase d */
  176. ,CONCORDABLE | VOWEL | 'E' /* 101 = lowercase e */
  177. ,CONCORDABLE | CONSONANT | 'F' /* 102 = lowercase f */
  178. ,CONCORDABLE | CONSONANT | 'G' /* 103 = lowercase g */
  179. ,CONCORDABLE | CONSONANT | 'H' /* 104 = lowercase h */
  180. ,CONCORDABLE | VOWEL | 'I' /* 105 = lowercase i */
  181. ,CONCORDABLE | CONSONANT | 'J' /* 106 = lowercase j */
  182. ,CONCORDABLE | CONSONANT | 'K' /* 107 = lowercase k */
  183. ,CONCORDABLE | CONSONANT | 'L' /* 108 = lowercase l */
  184. ,CONCORDABLE | CONSONANT | 'M' /* 109 = lowercase m */
  185. ,CONCORDABLE | CONSONANT | 'N' /* 110 = lowercase n */
  186. ,CONCORDABLE | VOWEL | 'O' /* 111 = lowercase o */
  187. ,CONCORDABLE | CONSONANT | 'P' /* 112 = lowercase p */
  188. ,CONCORDABLE | CONSONANT | 'Q' /* 113 = lowercase q */
  189. ,CONCORDABLE | CONSONANT | 'R' /* 114 = lowercase r */
  190. ,CONCORDABLE | CONSONANT | 'S' /* 115 = lowercase s */
  191. ,CONCORDABLE | CONSONANT | 'T' /* 116 = lowercase t */
  192. ,CONCORDABLE | VOWEL | 'U' /* 117 = lowercase u */
  193. ,CONCORDABLE | CONSONANT | 'V' /* 118 = lowercase v */
  194. ,CONCORDABLE | CONSONANT | 'W' /* 119 = lowercase w */
  195. ,CONCORDABLE | CONSONANT | 'X' /* 120 = lowercase x */
  196. ,CONCORDABLE | CONSONANT | 'Y' /* 121 = lowercase y */
  197. ,CONCORDABLE | CONSONANT | 'Z' /* 122 = lowercase z */
  198. ,NON_CONCORD | 123 /* { */
  199. ,NON_CONCORD | 124 /* | (virgule, vertical line) */
  200. ,NON_CONCORD | 125 /* } */
  201. ,NON_CONCORD | 126 /* ~ */
  202. ,NON_CONCORD | 127 /* DEL */
  203. ,NON_CONCORD | 128
  204. ,NON_CONCORD | 129
  205. ,NON_CONCORD | 130
  206. ,NON_CONCORD | 131
  207. ,NON_CONCORD | 132
  208. ,NON_CONCORD | 133
  209. ,NON_CONCORD | 134
  210. ,NON_CONCORD | 135
  211. ,NON_CONCORD | 136
  212. ,NON_CONCORD | 137
  213. ,NON_CONCORD | 138
  214. ,NON_CONCORD | 139
  215. ,NON_CONCORD | 140
  216. ,NON_CONCORD | 141
  217. ,NON_CONCORD | 142
  218. ,NON_CONCORD | 143
  219. ,NON_CONCORD | 144
  220. ,NON_CONCORD | 145
  221. ,NON_CONCORD | 146
  222. ,NON_CONCORD | 147
  223. ,NON_CONCORD | 148
  224. ,NON_CONCORD | 149
  225. ,NON_CONCORD | 150
  226. ,NON_CONCORD | 151
  227. ,NON_CONCORD | 152
  228. ,NON_CONCORD | 153
  229. ,NON_CONCORD | 154
  230. ,NON_CONCORD | 155
  231. ,NON_CONCORD | 156
  232. ,NON_CONCORD | 157
  233. ,NON_CONCORD | 158
  234. ,NON_CONCORD | 159
  235. ,CONCORDABLE | 160 /* RSP, 'Reqd SPace' (nonbreak?) */
  236. ,NON_CONCORD | 161 /* inverted exclamation point */
  237. ,NON_CONCORD | 162 /* cent sign, C slash */
  238. ,NON_CONCORD | 163 /* pounds sterling */
  239. ,NON_CONCORD | 164 /* generic international currency */
  240. ,NON_CONCORD | 165 /* yen */
  241. ,NON_CONCORD | 166 /* broken vertical line */
  242. ,NON_CONCORD | 167 /* section/paragraph symbol */
  243. ,NON_CONCORD | 168 /* diaeresis-umlaut */
  244. ,NON_CONCORD | 169 /* copyright symbol, c circle */
  245. ,NON_CONCORD | 170 /* 'a' small superscript, feminine */
  246. ,NON_CONCORD | 171 /* left angle quotes */
  247. ,NON_CONCORD | 172 /* logical not, eol */
  248. ,CONCORDABLE | 173 /* SHY, 'Syllable HYphen' (nonbreak?) */
  249. ,NON_CONCORD | 174 /* registered trademark, r circle */
  250. ,NON_CONCORD | 175 /* overline */
  251. ,NON_CONCORD | 176 /* degree symbol, xB0 */
  252. ,NON_CONCORD | 177 /* plus-minus symbol */
  253. ,NON_CONCORD | 178 /* squared, '2' superscript */
  254. ,NON_CONCORD | 179 /* cubed, '3' superscript */
  255. ,NON_CONCORD | 180 /* acute accent */
  256. ,NON_CONCORD | 181 /* micro symbol (greek mu) */
  257. ,NON_CONCORD | 182 /* paragraph symbol */
  258. ,NON_CONCORD | 183 /* middle dot */
  259. ,NON_CONCORD | 184 /* cedilla */
  260. ,NON_CONCORD | 185 /* '1' superscript */
  261. ,NON_CONCORD | 186 /* 'o' small superscript, masculine */
  262. ,NON_CONCORD | 187 /* right angle quotes */
  263. ,NON_CONCORD | 188 /* one fourth */
  264. ,NON_CONCORD | 189 /* one half */
  265. ,NON_CONCORD | 190 /* three fourths */
  266. ,NON_CONCORD | 191 /* inverted question mark */
  267. ,CONCORDABLE | VOWEL | 192 /* uppercase 'A' grave accent, xC0 */
  268. ,CONCORDABLE | VOWEL | 193 /* uppercase 'A' acute accent */
  269. ,CONCORDABLE | VOWEL | 194 /* uppercase 'A' circumflex */
  270. ,CONCORDABLE | VOWEL | 195 /* uppercase 'A' tilde */
  271. ,CONCORDABLE | VOWEL | 196 /* uppercase 'A' diaeresis-umlaut */
  272. ,CONCORDABLE | VOWEL | 197 /* uppercase 'A' overcircle */
  273. ,CONCORDABLE | VOWEL | 198 /* uppercase 'AE' diphthong */
  274. ,CONCORDABLE | CONSONANT | 199 /* uppercase 'C' cedilla */
  275. ,CONCORDABLE | VOWEL | 200 /* uppercase 'E' grave accent */
  276. ,CONCORDABLE | VOWEL | 201 /* uppercase 'E' acute accent */
  277. ,CONCORDABLE | VOWEL | 202 /* uppercase 'E' circumflex */
  278. ,CONCORDABLE | VOWEL | 203 /* uppercase 'E' diaeresis-umlaut */
  279. ,CONCORDABLE | VOWEL | 204 /* uppercase 'I' grave accent */
  280. ,CONCORDABLE | VOWEL | 205 /* uppercase 'I' acute accent */
  281. ,CONCORDABLE | VOWEL | 206 /* uppercase 'I' circumflex */
  282. ,CONCORDABLE | VOWEL | 207 /* uppercase 'I' diaeresis-umlaut */
  283. ,CONCORDABLE | CONSONANT | 208 /* uppercase 'D' stroke (eth), xD0 */
  284. ,CONCORDABLE | CONSONANT | 209 /* uppercase 'N' tilde */
  285. ,CONCORDABLE | VOWEL | 210 /* uppercase 'O' grave accent */
  286. ,CONCORDABLE | VOWEL | 211 /* uppercase 'O' acute accent */
  287. ,CONCORDABLE | VOWEL | 212 /* uppercase 'O' circumflex */
  288. ,CONCORDABLE | VOWEL | 213 /* uppercase 'O' tilde */
  289. ,CONCORDABLE | VOWEL | 214 /* uppercase 'O' diaeresis-umlaut */
  290. ,NON_CONCORD | 215 /* multiply sign 'x' */
  291. ,CONCORDABLE | VOWEL | 216 /* uppercase 'O' slash */
  292. ,CONCORDABLE | VOWEL | 217 /* uppercase 'U' grave accent */
  293. ,CONCORDABLE | VOWEL | 218 /* uppercase 'U' acute accent */
  294. ,CONCORDABLE | VOWEL | 219 /* uppercase 'U' circumflex */
  295. ,CONCORDABLE | VOWEL | 220 /* uppercase 'U' diaeresis-umlaut */
  296. ,CONCORDABLE | VOWEL | 221 /* uppercase 'Y' acute accent */
  297. ,CONCORDABLE | CONSONANT | 222 /* uppercase Thorn (Iceland) */
  298. ,CONCORDABLE | CONSONANT | 223 /* lowercase s sharp (German ss) */
  299. ,CONCORDABLE | VOWEL | 192 /* 224, lcase 'a' grave accent, xE0 */
  300. ,CONCORDABLE | VOWEL | 193 /* lowercase 'a' acute accent */
  301. ,CONCORDABLE | VOWEL | 194 /* lowercase 'a' circumflex */
  302. ,CONCORDABLE | VOWEL | 195 /* lowercase 'a' tilde */
  303. ,CONCORDABLE | VOWEL | 196 /* lowercase 'a' diaeresis-umlaut */
  304. ,CONCORDABLE | VOWEL | 197 /* lowercase 'a' overcircle */
  305. ,CONCORDABLE | VOWEL | 198 /* lowercase 'ae' diphthong */
  306. ,CONCORDABLE | CONSONANT | 199 /* lowercase 'c' cedilla */
  307. ,CONCORDABLE | VOWEL | 200 /* 232, lowercase 'e' grave accent */
  308. ,CONCORDABLE | VOWEL | 201 /* lowercase 'e' acute accent */
  309. ,CONCORDABLE | VOWEL | 202 /* lowercase 'e' circumflex */
  310. ,CONCORDABLE | VOWEL | 203 /* lowercase 'e' diaeresis-umlaut */
  311. ,CONCORDABLE | VOWEL | 204 /* lowercase 'i' grave accent */
  312. ,CONCORDABLE | VOWEL | 205 /* lowercase 'i' acute accent */
  313. ,CONCORDABLE | VOWEL | 206 /* lowercase 'i' circumflex */
  314. ,CONCORDABLE | VOWEL | 207 /* lowercase 'i' diaeresis-umlaut */
  315. ,CONCORDABLE | CONSONANT | 208 /* 240, lcase 'd' stroke (eth), xF0 */
  316. ,CONCORDABLE | CONSONANT | 209 /* lowercase 'n' tilde */
  317. ,CONCORDABLE | VOWEL | 210 /* lowercase 'o' grave accent */
  318. ,CONCORDABLE | VOWEL | 211 /* lowercase 'o' acute accent */
  319. ,CONCORDABLE | VOWEL | 212 /* lowercase 'o' circumflex */
  320. ,CONCORDABLE | VOWEL | 213 /* lowercase 'o' tilde */
  321. ,CONCORDABLE | VOWEL | 214 /* lowercase 'o' diaeresis-umlaut */
  322. ,NON_CONCORD | 247 /* divide sign */
  323. ,CONCORDABLE | VOWEL | 216 /* 248, lowercase 'o' slash */
  324. ,CONCORDABLE | VOWEL | 217 /* lowercase 'u' grave accent */
  325. ,CONCORDABLE | VOWEL | 218 /* lowercase 'u' acute accent */
  326. ,CONCORDABLE | VOWEL | 219 /* lowercase 'u' circumflex */
  327. ,CONCORDABLE | VOWEL | 220 /* lowercase 'u' diaeresis-umlaut */
  328. ,CONCORDABLE | VOWEL | 221 /* lowercase 'y' acute accent */
  329. ,CONCORDABLE | CONSONANT | 222 /* lowercase thorn (Icelandic) */
  330. ,CONCORDABLE | CONSONANT | 255 /* lowercase 'y' diaeresis-umlaut */
  331. ,NON_CONCORD /* 256, an extra one... */
  332. }; /* latin_charmap[] */
  333. /************************************************/
  334. /* */
  335. /* ascii_charmap */
  336. /* */
  337. /************************************************/
  338. /* Teskey character map for 7-bit ascii
  339. * character set in 8-bit octets.
  340. * Also accessed in packed EUC parsing in jpn.c.
  341. */
  342. int ascii_charmap [] = {
  343. NON_CONCORD | 0 /* NULL, Teskey EOT char */
  344. ,NON_CONCORD | 1 /* CTRL-A */
  345. ,NON_CONCORD | 2 /* CTRL-B */
  346. ,NON_CONCORD | 3 /* CTRL-C */
  347. ,NON_CONCORD | 4 /* CTRL-D */
  348. ,NON_CONCORD | 5 /* CTRL-E */
  349. ,NON_CONCORD | 6 /* CTRL-F */
  350. ,NON_CONCORD | 7 /* BEL \a */
  351. ,NON_CONCORD | 8 /* BS \b */
  352. ,NON_CONCORD | WHITESPACE | 9 /* TAB \t */
  353. ,NON_CONCORD | WHITESPACE | 10 /* LF \n */
  354. ,NON_CONCORD | WHITESPACE | 11 /* VT \v */
  355. ,NON_CONCORD | WHITESPACE | 12 /* FF \f */
  356. ,NON_CONCORD | WHITESPACE | 13 /* CR \r */
  357. ,NON_CONCORD | 14 /* CTRL-N */
  358. ,NON_CONCORD | 15 /* CTRL-O */
  359. ,NON_CONCORD | 16 /* CTRL-P */
  360. ,NON_CONCORD | 17 /* CTRL-Q */
  361. ,NON_CONCORD | 18 /* CTRL-R */
  362. ,NON_CONCORD | 19 /* CTRL-S */
  363. ,NON_CONCORD | 20 /* CTRL-T */
  364. ,NON_CONCORD | 21 /* CTRL-U */
  365. ,NON_CONCORD | 22 /* CTRL-V */
  366. ,NON_CONCORD | 23 /* CTRL-W */
  367. ,NON_CONCORD | 24 /* CTRL-X */
  368. ,NON_CONCORD | 25 /* CTRL-Y */
  369. ,NON_CONCORD | 26 /* CTRL-Z (EOF) */
  370. ,NON_CONCORD | 27 /* ESC */
  371. ,NON_CONCORD | 28
  372. ,NON_CONCORD | 29
  373. ,NON_CONCORD | 30
  374. ,NON_CONCORD | 31
  375. ,NON_CONCORD | WHITESPACE | 32 /* SPACE (blank) */
  376. ,NON_CONCORD | 33 /* ! */
  377. ,NON_CONCORD | 34 /* " */
  378. ,NON_CONCORD | 35 /* # */
  379. ,NON_CONCORD | 36 /* $ */
  380. ,NON_CONCORD | 37 /* % */
  381. ,NON_CONCORD | 38 /* & */
  382. ,NON_CONCORD | 39 /* ' (apostrophe) */
  383. ,NON_CONCORD | 40 /* ( */
  384. ,NON_CONCORD | 41 /* ) */
  385. ,NON_CONCORD | 42 /* * */
  386. ,NON_CONCORD | 43 /* + */
  387. ,NON_CONCORD | 44 /* , (comma) */
  388. ,OPT_CONCORD | 45 /* - (dash) */
  389. ,OPT_CONCORD | 46 /* . (period) */
  390. ,OPT_CONCORD | 47 /* / (slash) */
  391. ,CONCORDABLE | NUMERAL | 48 /* 0 */
  392. ,CONCORDABLE | NUMERAL | 49 /* 1 */
  393. ,CONCORDABLE | NUMERAL | 50 /* 2 */
  394. ,CONCORDABLE | NUMERAL | 51 /* 3 */
  395. ,CONCORDABLE | NUMERAL | 52 /* 4 */
  396. ,CONCORDABLE | NUMERAL | 53 /* 5 */
  397. ,CONCORDABLE | NUMERAL | 54 /* 6 */
  398. ,CONCORDABLE | NUMERAL | 55 /* 7 */
  399. ,CONCORDABLE | NUMERAL | 56 /* 8 */
  400. ,CONCORDABLE | NUMERAL | 57 /* 9 */
  401. ,NON_CONCORD | 58 /* : */
  402. ,NON_CONCORD | 59 /* ; */
  403. ,NON_CONCORD | 60 /* < */
  404. ,NON_CONCORD | 61 /* = */
  405. ,NON_CONCORD | 62 /* > */
  406. ,NON_CONCORD | 63 /* ? */
  407. ,NON_CONCORD | 64 /* @ */
  408. ,CONCORDABLE | VOWEL | 65 /* A */
  409. ,CONCORDABLE | CONSONANT | 66 /* B */
  410. ,CONCORDABLE | CONSONANT | 67 /* C */
  411. ,CONCORDABLE | CONSONANT | 68 /* D */
  412. ,CONCORDABLE | VOWEL | 69 /* E */
  413. ,CONCORDABLE | CONSONANT | 70 /* F */
  414. ,CONCORDABLE | CONSONANT | 71 /* G */
  415. ,CONCORDABLE | CONSONANT | 72 /* H */
  416. ,CONCORDABLE | VOWEL | 73 /* I */
  417. ,CONCORDABLE | CONSONANT | 74 /* J */
  418. ,CONCORDABLE | CONSONANT | 75 /* K */
  419. ,CONCORDABLE | CONSONANT | 76 /* L */
  420. ,CONCORDABLE | CONSONANT | 77 /* M */
  421. ,CONCORDABLE | CONSONANT | 78 /* N */
  422. ,CONCORDABLE | VOWEL | 79 /* O */
  423. ,CONCORDABLE | CONSONANT | 80 /* P */
  424. ,CONCORDABLE | CONSONANT | 81 /* Q */
  425. ,CONCORDABLE | CONSONANT | 82 /* R */
  426. ,CONCORDABLE | CONSONANT | 83 /* S */
  427. ,CONCORDABLE | CONSONANT | 84 /* T */
  428. ,CONCORDABLE | VOWEL | 85 /* U */
  429. ,CONCORDABLE | CONSONANT | 86 /* V */
  430. ,CONCORDABLE | CONSONANT | 87 /* W */
  431. ,CONCORDABLE | CONSONANT | 88 /* X */
  432. ,CONCORDABLE | CONSONANT | 89 /* Y */
  433. ,CONCORDABLE | CONSONANT | 90 /* Z */
  434. ,NON_CONCORD | 91 /* [ */
  435. ,NON_CONCORD | 92 /* \ (backslash) */
  436. ,NON_CONCORD | 93 /* ] */
  437. ,NON_CONCORD | 94 /* ^ */
  438. ,OPT_CONCORD | 95 /* _ (underscore) */
  439. ,NON_CONCORD | 96 /* ` (grave accent) */
  440. ,CONCORDABLE | VOWEL | 'A' /* 97 = lowercase a */
  441. ,CONCORDABLE | CONSONANT | 'B' /* 98 = lowercase b */
  442. ,CONCORDABLE | CONSONANT | 'C' /* 99 = lowercase c */
  443. ,CONCORDABLE | CONSONANT | 'D' /* 100 = lowercase d */
  444. ,CONCORDABLE | VOWEL | 'E' /* 101 = lowercase e */
  445. ,CONCORDABLE | CONSONANT | 'F' /* 102 = lowercase f */
  446. ,CONCORDABLE | CONSONANT | 'G' /* 103 = lowercase g */
  447. ,CONCORDABLE | CONSONANT | 'H' /* 104 = lowercase h */
  448. ,CONCORDABLE | VOWEL | 'I' /* 105 = lowercase i */
  449. ,CONCORDABLE | CONSONANT | 'J' /* 106 = lowercase j */
  450. ,CONCORDABLE | CONSONANT | 'K' /* 107 = lowercase k */
  451. ,CONCORDABLE | CONSONANT | 'L' /* 108 = lowercase l */
  452. ,CONCORDABLE | CONSONANT | 'M' /* 109 = lowercase m */
  453. ,CONCORDABLE | CONSONANT | 'N' /* 110 = lowercase n */
  454. ,CONCORDABLE | VOWEL | 'O' /* 111 = lowercase o */
  455. ,CONCORDABLE | CONSONANT | 'P' /* 112 = lowercase p */
  456. ,CONCORDABLE | CONSONANT | 'Q' /* 113 = lowercase q */
  457. ,CONCORDABLE | CONSONANT | 'R' /* 114 = lowercase r */
  458. ,CONCORDABLE | CONSONANT | 'S' /* 115 = lowercase s */
  459. ,CONCORDABLE | CONSONANT | 'T' /* 116 = lowercase t */
  460. ,CONCORDABLE | VOWEL | 'U' /* 117 = lowercase u */
  461. ,CONCORDABLE | CONSONANT | 'V' /* 118 = lowercase v */
  462. ,CONCORDABLE | CONSONANT | 'W' /* 119 = lowercase w */
  463. ,CONCORDABLE | CONSONANT | 'X' /* 120 = lowercase x */
  464. ,CONCORDABLE | CONSONANT | 'Y' /* 121 = lowercase y */
  465. ,CONCORDABLE | CONSONANT | 'Z' /* 122 = lowercase z */
  466. ,NON_CONCORD | 123 /* { */
  467. ,NON_CONCORD | 124 /* | (virgule, vertical line) */
  468. ,NON_CONCORD | 125 /* } */
  469. ,NON_CONCORD | 126 /* ~ */
  470. ,NON_CONCORD | 127 /* DEL */
  471. ,NON_CONCORD | 128
  472. ,NON_CONCORD | 129
  473. ,NON_CONCORD | 130
  474. ,NON_CONCORD | 131
  475. ,NON_CONCORD | 132
  476. ,NON_CONCORD | 133
  477. ,NON_CONCORD | 134
  478. ,NON_CONCORD | 135
  479. ,NON_CONCORD | 136
  480. ,NON_CONCORD | 137
  481. ,NON_CONCORD | 138
  482. ,NON_CONCORD | 139
  483. ,NON_CONCORD | 140
  484. ,NON_CONCORD | 141
  485. ,NON_CONCORD | 142
  486. ,NON_CONCORD | 143
  487. ,NON_CONCORD | 144
  488. ,NON_CONCORD | 145
  489. ,NON_CONCORD | 146
  490. ,NON_CONCORD | 147
  491. ,NON_CONCORD | 148
  492. ,NON_CONCORD | 149
  493. ,NON_CONCORD | 150
  494. ,NON_CONCORD | 151
  495. ,NON_CONCORD | 152
  496. ,NON_CONCORD | 153
  497. ,NON_CONCORD | 154
  498. ,NON_CONCORD | 155
  499. ,NON_CONCORD | 156
  500. ,NON_CONCORD | 157
  501. ,NON_CONCORD | 158
  502. ,NON_CONCORD | 159
  503. ,NON_CONCORD | 160
  504. ,NON_CONCORD | 161
  505. ,NON_CONCORD | 162
  506. ,NON_CONCORD | 163
  507. ,NON_CONCORD | 164
  508. ,NON_CONCORD | 165
  509. ,NON_CONCORD | 166
  510. ,NON_CONCORD | 167
  511. ,NON_CONCORD | 168
  512. ,NON_CONCORD | 169
  513. ,NON_CONCORD | 170
  514. ,NON_CONCORD | 171
  515. ,NON_CONCORD | 172
  516. ,NON_CONCORD | 173
  517. ,NON_CONCORD | 174
  518. ,NON_CONCORD | 175
  519. ,NON_CONCORD | 176
  520. ,NON_CONCORD | 177
  521. ,NON_CONCORD | 178
  522. ,NON_CONCORD | 179
  523. ,NON_CONCORD | 180
  524. ,NON_CONCORD | 181
  525. ,NON_CONCORD | 182
  526. ,NON_CONCORD | 183
  527. ,NON_CONCORD | 184
  528. ,NON_CONCORD | 185
  529. ,NON_CONCORD | 186
  530. ,NON_CONCORD | 187
  531. ,NON_CONCORD | 188
  532. ,NON_CONCORD | 189
  533. ,NON_CONCORD | 190
  534. ,NON_CONCORD | 191
  535. ,NON_CONCORD | 192
  536. ,NON_CONCORD | 193
  537. ,NON_CONCORD | 194
  538. ,NON_CONCORD | 195
  539. ,NON_CONCORD | 196
  540. ,NON_CONCORD | 197
  541. ,NON_CONCORD | 198
  542. ,NON_CONCORD | 199
  543. ,NON_CONCORD | 200
  544. ,NON_CONCORD | 201
  545. ,NON_CONCORD | 202
  546. ,NON_CONCORD | 203
  547. ,NON_CONCORD | 204
  548. ,NON_CONCORD | 205
  549. ,NON_CONCORD | 206
  550. ,NON_CONCORD | 207
  551. ,NON_CONCORD | 208
  552. ,NON_CONCORD | 209
  553. ,NON_CONCORD | 210
  554. ,NON_CONCORD | 211
  555. ,NON_CONCORD | 212
  556. ,NON_CONCORD | 213
  557. ,NON_CONCORD | 214
  558. ,NON_CONCORD | 215
  559. ,NON_CONCORD | 216
  560. ,NON_CONCORD | 217
  561. ,NON_CONCORD | 218
  562. ,NON_CONCORD | 219
  563. ,NON_CONCORD | 220
  564. ,NON_CONCORD | 221
  565. ,NON_CONCORD | 222
  566. ,NON_CONCORD | 223
  567. ,NON_CONCORD | 224
  568. ,NON_CONCORD | 225
  569. ,NON_CONCORD | 226
  570. ,NON_CONCORD | 227
  571. ,NON_CONCORD | 228
  572. ,NON_CONCORD | 229
  573. ,NON_CONCORD | 230
  574. ,NON_CONCORD | 231
  575. ,NON_CONCORD | 232
  576. ,NON_CONCORD | 233
  577. ,NON_CONCORD | 234
  578. ,NON_CONCORD | 235
  579. ,NON_CONCORD | 236
  580. ,NON_CONCORD | 237
  581. ,NON_CONCORD | 238
  582. ,NON_CONCORD | 239
  583. ,NON_CONCORD | 240
  584. ,NON_CONCORD | 241
  585. ,NON_CONCORD | 242
  586. ,NON_CONCORD | 243
  587. ,NON_CONCORD | 244
  588. ,NON_CONCORD | 245
  589. ,NON_CONCORD | 246
  590. ,NON_CONCORD | 247
  591. ,NON_CONCORD | 248
  592. ,NON_CONCORD | 249
  593. ,NON_CONCORD | 250
  594. ,NON_CONCORD | 251
  595. ,NON_CONCORD | 252
  596. ,NON_CONCORD | 253
  597. ,NON_CONCORD | 254
  598. ,NON_CONCORD | 255
  599. ,NON_CONCORD /* 256 = an extra one... */
  600. }; /* ascii_charmap[] */
  601. /******************** LANGMAP.C ********************/