1241675Suqs/* $Id: chars.in,v 1.42 2011/10/02 10:02:26 kristaps Exp $ */ 2241675Suqs/* 3241675Suqs * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 4241675Suqs * 5241675Suqs * Permission to use, copy, modify, and distribute this software for any 6241675Suqs * purpose with or without fee is hereby granted, provided that the above 7241675Suqs * copyright notice and this permission notice appear in all copies. 8241675Suqs * 9241675Suqs * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10241675Suqs * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11241675Suqs * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12241675Suqs * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13241675Suqs * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14241675Suqs * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15241675Suqs * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16241675Suqs */ 17241675Suqs 18241675Suqs/* 19241675Suqs * The ASCII translation tables. 20241675Suqs * 21241675Suqs * The left-hand side corresponds to the input sequence (\x, \(xx, \*(xx 22241675Suqs * and so on) whose length is listed second element. The right-hand 23241675Suqs * side is what's produced by the front-end, with the fourth element 24241675Suqs * being its length. 25241675Suqs * 26241675Suqs * XXX - C-escape strings! 27241675Suqs * XXX - update LINES_MAX if adding more! 28241675Suqs */ 29241675Suqs 30241675Suqs/* Non-breaking, non-collapsing space uses unit separator. */ 31241675Suqsstatic const char ascii_nbrsp[2] = { ASCII_NBRSP, '\0' }; 32241675Suqs 33241675SuqsCHAR_TBL_START 34241675Suqs 35241675Suqs/* Spacing. */ 36241675SuqsCHAR("c", "", 0) 37241675SuqsCHAR("0", " ", 8194) 38241675SuqsCHAR(" ", ascii_nbrsp, 160) 39241675SuqsCHAR("~", ascii_nbrsp, 160) 40241675SuqsCHAR("%", "", 0) 41241675SuqsCHAR("&", "", 0) 42241675SuqsCHAR("^", "", 0) 43241675SuqsCHAR("|", "", 0) 44241675SuqsCHAR("}", "", 0) 45241675Suqs 46241675Suqs/* Accents. */ 47241675SuqsCHAR("a\"", "\"", 779) 48241675SuqsCHAR("a-", "-", 175) 49241675SuqsCHAR("a.", ".", 729) 50241675SuqsCHAR("a^", "^", 770) 51241675SuqsCHAR("\'", "\'", 769) 52241675SuqsCHAR("aa", "\'", 769) 53241675SuqsCHAR("ga", "`", 768) 54241675SuqsCHAR("`", "`", 768) 55241675SuqsCHAR("ab", "`", 774) 56241675SuqsCHAR("ac", ",", 807) 57241675SuqsCHAR("ad", "\"", 776) 58241675SuqsCHAR("ah", "v", 711) 59241675SuqsCHAR("ao", "o", 730) 60241675SuqsCHAR("a~", "~", 771) 61241675SuqsCHAR("ho", ",", 808) 62241675SuqsCHAR("ha", "^", 94) 63241675SuqsCHAR("ti", "~", 126) 64241675Suqs 65241675Suqs/* Quotes. */ 66241675SuqsCHAR("Bq", ",,", 8222) 67241675SuqsCHAR("bq", ",", 8218) 68241675SuqsCHAR("lq", "``", 8220) 69241675SuqsCHAR("rq", "\'\'", 8221) 70241675SuqsCHAR("oq", "`", 8216) 71241675SuqsCHAR("cq", "\'", 8217) 72241675SuqsCHAR("aq", "\'", 39) 73241675SuqsCHAR("dq", "\"", 34) 74241675SuqsCHAR("Fo", "<<", 171) 75241675SuqsCHAR("Fc", ">>", 187) 76241675SuqsCHAR("fo", "<", 8249) 77241675SuqsCHAR("fc", ">", 8250) 78241675Suqs 79241675Suqs/* Brackets. */ 80241675SuqsCHAR("lB", "[", 91) 81241675SuqsCHAR("rB", "]", 93) 82241675SuqsCHAR("lC", "{", 123) 83241675SuqsCHAR("rC", "}", 125) 84241675SuqsCHAR("la", "<", 60) 85241675SuqsCHAR("ra", ">", 62) 86241675SuqsCHAR("bv", "|", 9130) 87241675SuqsCHAR("braceex", "|", 9130) 88241675SuqsCHAR("bracketlefttp", "|", 9121) 89241675SuqsCHAR("bracketleftbp", "|", 9123) 90241675SuqsCHAR("bracketleftex", "|", 9122) 91241675SuqsCHAR("bracketrighttp", "|", 9124) 92241675SuqsCHAR("bracketrightbp", "|", 9126) 93241675SuqsCHAR("bracketrightex", "|", 9125) 94241675SuqsCHAR("lt", ",-", 9127) 95241675SuqsCHAR("bracelefttp", ",-", 9127) 96241675SuqsCHAR("lk", "{", 9128) 97241675SuqsCHAR("braceleftmid", "{", 9128) 98241675SuqsCHAR("lb", ",-", 9129) 99241675SuqsCHAR("braceleftbp", "`-", 9129) 100241675SuqsCHAR("braceleftex", "|", 9130) 101241675SuqsCHAR("rt", "-.", 9131) 102241675SuqsCHAR("bracerighttp", "-.", 9131) 103241675SuqsCHAR("rk", "}", 9132) 104241675SuqsCHAR("bracerightmid", "}", 9132) 105241675SuqsCHAR("rb", "-\'", 9133) 106241675SuqsCHAR("bracerightbp", "-\'", 9133) 107241675SuqsCHAR("bracerightex", "|", 9130) 108241675SuqsCHAR("parenlefttp", "/", 9115) 109241675SuqsCHAR("parenleftbp", "\\", 9117) 110241675SuqsCHAR("parenleftex", "|", 9116) 111241675SuqsCHAR("parenrighttp", "\\", 9118) 112241675SuqsCHAR("parenrightbp", "/", 9120) 113241675SuqsCHAR("parenrightex", "|", 9119) 114241675Suqs 115241675Suqs/* Greek characters. */ 116241675SuqsCHAR("*A", "A", 913) 117241675SuqsCHAR("*B", "B", 914) 118241675SuqsCHAR("*G", "|", 915) 119241675SuqsCHAR("*D", "/\\", 916) 120241675SuqsCHAR("*E", "E", 917) 121241675SuqsCHAR("*Z", "Z", 918) 122241675SuqsCHAR("*Y", "H", 919) 123241675SuqsCHAR("*H", "O", 920) 124241675SuqsCHAR("*I", "I", 921) 125241675SuqsCHAR("*K", "K", 922) 126241675SuqsCHAR("*L", "/\\", 923) 127241675SuqsCHAR("*M", "M", 924) 128241675SuqsCHAR("*N", "N", 925) 129241675SuqsCHAR("*C", "H", 926) 130241675SuqsCHAR("*O", "O", 927) 131241675SuqsCHAR("*P", "TT", 928) 132241675SuqsCHAR("*R", "P", 929) 133241675SuqsCHAR("*S", ">", 931) 134241675SuqsCHAR("*T", "T", 932) 135241675SuqsCHAR("*U", "Y", 933) 136241675SuqsCHAR("*F", "O_", 934) 137241675SuqsCHAR("*X", "X", 935) 138241675SuqsCHAR("*Q", "Y", 936) 139241675SuqsCHAR("*W", "O", 937) 140241675SuqsCHAR("*a", "a", 945) 141241675SuqsCHAR("*b", "B", 946) 142241675SuqsCHAR("*g", "y", 947) 143241675SuqsCHAR("*d", "d", 948) 144241675SuqsCHAR("*e", "e", 949) 145241675SuqsCHAR("*z", "C", 950) 146241675SuqsCHAR("*y", "n", 951) 147241675SuqsCHAR("*h", "0", 952) 148241675SuqsCHAR("*i", "i", 953) 149241675SuqsCHAR("*k", "k", 954) 150241675SuqsCHAR("*l", "\\", 955) 151241675SuqsCHAR("*m", "u", 956) 152241675SuqsCHAR("*n", "v", 957) 153241675SuqsCHAR("*c", "E", 958) 154241675SuqsCHAR("*o", "o", 959) 155241675SuqsCHAR("*p", "n", 960) 156241675SuqsCHAR("*r", "p", 961) 157241675SuqsCHAR("*s", "o", 963) 158241675SuqsCHAR("*t", "t", 964) 159241675SuqsCHAR("*u", "u", 965) 160241675SuqsCHAR("*f", "o", 981) 161241675SuqsCHAR("*x", "x", 967) 162241675SuqsCHAR("*q", "u", 968) 163241675SuqsCHAR("*w", "w", 969) 164241675SuqsCHAR("+h", "0", 977) 165241675SuqsCHAR("+f", "o", 966) 166241675SuqsCHAR("+p", "w", 982) 167241675SuqsCHAR("+e", "e", 1013) 168241675SuqsCHAR("ts", "s", 962) 169241675Suqs 170241675Suqs/* Accented letters. */ 171241675SuqsCHAR(",C", "C", 199) 172241675SuqsCHAR(",c", "c", 231) 173241675SuqsCHAR("/L", "L", 321) 174241675SuqsCHAR("/O", "O", 216) 175241675SuqsCHAR("/l", "l", 322) 176241675SuqsCHAR("/o", "o", 248) 177241675SuqsCHAR("oA", "A", 197) 178241675SuqsCHAR("oa", "a", 229) 179241675SuqsCHAR(":A", "A", 196) 180241675SuqsCHAR(":E", "E", 203) 181241675SuqsCHAR(":I", "I", 207) 182241675SuqsCHAR(":O", "O", 214) 183241675SuqsCHAR(":U", "U", 220) 184241675SuqsCHAR(":a", "a", 228) 185241675SuqsCHAR(":e", "e", 235) 186241675SuqsCHAR(":i", "i", 239) 187241675SuqsCHAR(":o", "o", 246) 188241675SuqsCHAR(":u", "u", 252) 189241675SuqsCHAR(":y", "y", 255) 190241675SuqsCHAR("\'A", "A", 193) 191241675SuqsCHAR("\'E", "E", 201) 192241675SuqsCHAR("\'I", "I", 205) 193241675SuqsCHAR("\'O", "O", 211) 194241675SuqsCHAR("\'U", "U", 218) 195241675SuqsCHAR("\'a", "a", 225) 196241675SuqsCHAR("\'e", "e", 233) 197241675SuqsCHAR("\'i", "i", 237) 198241675SuqsCHAR("\'o", "o", 243) 199241675SuqsCHAR("\'u", "u", 250) 200241675SuqsCHAR("^A", "A", 194) 201241675SuqsCHAR("^E", "E", 202) 202241675SuqsCHAR("^I", "I", 206) 203241675SuqsCHAR("^O", "O", 212) 204241675SuqsCHAR("^U", "U", 219) 205241675SuqsCHAR("^a", "a", 226) 206241675SuqsCHAR("^e", "e", 234) 207241675SuqsCHAR("^i", "i", 238) 208241675SuqsCHAR("^o", "o", 244) 209241675SuqsCHAR("^u", "u", 251) 210241675SuqsCHAR("`A", "A", 192) 211241675SuqsCHAR("`E", "E", 200) 212241675SuqsCHAR("`I", "I", 204) 213241675SuqsCHAR("`O", "O", 210) 214241675SuqsCHAR("`U", "U", 217) 215241675SuqsCHAR("`a", "a", 224) 216241675SuqsCHAR("`e", "e", 232) 217241675SuqsCHAR("`i", "i", 236) 218241675SuqsCHAR("`o", "o", 242) 219241675SuqsCHAR("`u", "u", 249) 220241675SuqsCHAR("~A", "A", 195) 221241675SuqsCHAR("~N", "N", 209) 222241675SuqsCHAR("~O", "O", 213) 223241675SuqsCHAR("~a", "a", 227) 224241675SuqsCHAR("~n", "n", 241) 225241675SuqsCHAR("~o", "o", 245) 226241675Suqs 227241675Suqs/* Arrows and lines. */ 228241675SuqsCHAR("<-", "<-", 8592) 229241675SuqsCHAR("->", "->", 8594) 230241675SuqsCHAR("<>", "<>", 8596) 231241675SuqsCHAR("da", "v", 8595) 232241675SuqsCHAR("ua", "^", 8593) 233241675SuqsCHAR("va", "^v", 8597) 234241675SuqsCHAR("lA", "<=", 8656) 235241675SuqsCHAR("rA", "=>", 8658) 236241675SuqsCHAR("hA", "<=>", 8660) 237241675SuqsCHAR("dA", "v", 8659) 238241675SuqsCHAR("uA", "^", 8657) 239241675SuqsCHAR("vA", "^=v", 8661) 240241675Suqs 241241675Suqs/* Logic. */ 242241675SuqsCHAR("AN", "^", 8743) 243241675SuqsCHAR("OR", "v", 8744) 244241675SuqsCHAR("no", "~", 172) 245241675SuqsCHAR("tno", "~", 172) 246241675SuqsCHAR("te", "3", 8707) 247241675SuqsCHAR("fa", "V", 8704) 248241675SuqsCHAR("st", "-)", 8715) 249241675SuqsCHAR("tf", ".:.", 8756) 250241675SuqsCHAR("3d", ".:.", 8756) 251241675SuqsCHAR("or", "|", 124) 252241675Suqs 253241675Suqs/* Mathematicals. */ 254241675SuqsCHAR("pl", "+", 43) 255241675SuqsCHAR("mi", "-", 8722) 256241675SuqsCHAR("-", "-", 45) 257241675SuqsCHAR("-+", "-+", 8723) 258241675SuqsCHAR("+-", "+-", 177) 259241675SuqsCHAR("t+-", "+-", 177) 260241675SuqsCHAR("pc", ".", 183) 261241675SuqsCHAR("md", ".", 8901) 262241675SuqsCHAR("mu", "x", 215) 263241675SuqsCHAR("tmu", "x", 215) 264241675SuqsCHAR("c*", "x", 8855) 265241675SuqsCHAR("c+", "+", 8853) 266241675SuqsCHAR("di", "-:-", 247) 267241675SuqsCHAR("tdi", "-:-", 247) 268241675SuqsCHAR("f/", "/", 8260) 269241675SuqsCHAR("**", "*", 8727) 270241675SuqsCHAR("<=", "<=", 8804) 271241675SuqsCHAR(">=", ">=", 8805) 272241675SuqsCHAR("<<", "<<", 8810) 273241675SuqsCHAR(">>", ">>", 8811) 274241675SuqsCHAR("eq", "=", 61) 275241675SuqsCHAR("!=", "!=", 8800) 276241675SuqsCHAR("==", "==", 8801) 277241675SuqsCHAR("ne", "!==", 8802) 278241675SuqsCHAR("=~", "=~", 8773) 279241675SuqsCHAR("-~", "-~", 8771) 280241675SuqsCHAR("ap", "~", 8764) 281241675SuqsCHAR("~~", "~~", 8776) 282241675SuqsCHAR("~=", "~=", 8780) 283241675SuqsCHAR("pt", "oc", 8733) 284241675SuqsCHAR("es", "{}", 8709) 285241675SuqsCHAR("mo", "E", 8712) 286241675SuqsCHAR("nm", "!E", 8713) 287241675SuqsCHAR("sb", "(=", 8834) 288241675SuqsCHAR("nb", "(!=", 8836) 289241675SuqsCHAR("sp", "=)", 8835) 290241675SuqsCHAR("nc", "!=)", 8837) 291241675SuqsCHAR("ib", "(=", 8838) 292241675SuqsCHAR("ip", "=)", 8839) 293241675SuqsCHAR("ca", "(^)", 8745) 294241675SuqsCHAR("cu", "U", 8746) 295241675SuqsCHAR("/_", "/_", 8736) 296241675SuqsCHAR("pp", "_|_", 8869) 297241675SuqsCHAR("is", "I", 8747) 298241675SuqsCHAR("integral", "I", 8747) 299241675SuqsCHAR("sum", "E", 8721) 300241675SuqsCHAR("product", "TT", 8719) 301241675SuqsCHAR("coproduct", "U", 8720) 302241675SuqsCHAR("gr", "V", 8711) 303241675SuqsCHAR("sr", "\\/", 8730) 304241675SuqsCHAR("sqrt", "\\/", 8730) 305241675SuqsCHAR("lc", "|~", 8968) 306241675SuqsCHAR("rc", "~|", 8969) 307241675SuqsCHAR("lf", "|_", 8970) 308241675SuqsCHAR("rf", "_|", 8971) 309241675SuqsCHAR("if", "oo", 8734) 310241675SuqsCHAR("Ah", "N", 8501) 311241675SuqsCHAR("Im", "I", 8465) 312241675SuqsCHAR("Re", "R", 8476) 313241675SuqsCHAR("pd", "a", 8706) 314241675SuqsCHAR("-h", "/h", 8463) 315241675SuqsCHAR("12", "1/2", 189) 316241675SuqsCHAR("14", "1/4", 188) 317241675SuqsCHAR("34", "3/4", 190) 318241675Suqs 319241675Suqs/* Ligatures. */ 320241675SuqsCHAR("ff", "ff", 64256) 321241675SuqsCHAR("fi", "fi", 64257) 322241675SuqsCHAR("fl", "fl", 64258) 323241675SuqsCHAR("Fi", "ffi", 64259) 324241675SuqsCHAR("Fl", "ffl", 64260) 325241675SuqsCHAR("AE", "AE", 198) 326241675SuqsCHAR("ae", "ae", 230) 327241675SuqsCHAR("OE", "OE", 338) 328241675SuqsCHAR("oe", "oe", 339) 329241675SuqsCHAR("ss", "ss", 223) 330241675SuqsCHAR("IJ", "IJ", 306) 331241675SuqsCHAR("ij", "ij", 307) 332241675Suqs 333241675Suqs/* Special letters. */ 334241675SuqsCHAR("-D", "D", 208) 335241675SuqsCHAR("Sd", "o", 240) 336241675SuqsCHAR("TP", "b", 222) 337241675SuqsCHAR("Tp", "b", 254) 338241675SuqsCHAR(".i", "i", 305) 339241675SuqsCHAR(".j", "j", 567) 340241675Suqs 341241675Suqs/* Currency. */ 342241675SuqsCHAR("Do", "$", 36) 343241675SuqsCHAR("ct", "c", 162) 344241675SuqsCHAR("Eu", "EUR", 8364) 345241675SuqsCHAR("eu", "EUR", 8364) 346241675SuqsCHAR("Ye", "Y", 165) 347241675SuqsCHAR("Po", "L", 163) 348241675SuqsCHAR("Cs", "x", 164) 349241675SuqsCHAR("Fn", "f", 402) 350241675Suqs 351241675Suqs/* Lines. */ 352241675SuqsCHAR("ba", "|", 124) 353241675SuqsCHAR("br", "|", 9474) 354241675SuqsCHAR("ul", "_", 95) 355241675SuqsCHAR("rl", "-", 8254) 356241675SuqsCHAR("bb", "|", 166) 357241675SuqsCHAR("sl", "/", 47) 358241675SuqsCHAR("rs", "\\", 92) 359241675Suqs 360241675Suqs/* Text markers. */ 361241675SuqsCHAR("ci", "o", 9675) 362241675SuqsCHAR("bu", "o", 8226) 363241675SuqsCHAR("dd", "=", 8225) 364241675SuqsCHAR("dg", "-", 8224) 365241675SuqsCHAR("lz", "<>", 9674) 366241675SuqsCHAR("sq", "[]", 9633) 367241675SuqsCHAR("ps", "9|", 182) 368241675SuqsCHAR("sc", "S", 167) 369241675SuqsCHAR("lh", "<=", 9756) 370241675SuqsCHAR("rh", "=>", 9758) 371241675SuqsCHAR("at", "@", 64) 372241675SuqsCHAR("sh", "#", 35) 373241675SuqsCHAR("CR", "_|", 8629) 374241675SuqsCHAR("OK", "\\/", 10003) 375241675Suqs 376241675Suqs/* Legal symbols. */ 377241675SuqsCHAR("co", "(C)", 169) 378241675SuqsCHAR("rg", "(R)", 174) 379241675SuqsCHAR("tm", "tm", 8482) 380241675Suqs 381241675Suqs/* Punctuation. */ 382241675SuqsCHAR(".", ".", 46) 383241675SuqsCHAR("r!", "i", 161) 384241675SuqsCHAR("r?", "c", 191) 385241675SuqsCHAR("em", "--", 8212) 386241675SuqsCHAR("en", "-", 8211) 387241675SuqsCHAR("hy", "-", 8208) 388241675SuqsCHAR("e", "\\", 92) 389241675Suqs 390241675Suqs/* Units. */ 391241675SuqsCHAR("de", "o", 176) 392241675SuqsCHAR("%0", "%o", 8240) 393241675SuqsCHAR("fm", "\'", 8242) 394241675SuqsCHAR("sd", "\"", 8243) 395241675SuqsCHAR("mc", "mu", 181) 396241675Suqs 397241675SuqsCHAR_TBL_END 398