1/* $Id: chars.in,v 1.42 2011/10/02 10:02:26 kristaps Exp $ */ 2/* 3 * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18/* 19 * The ASCII translation tables. 20 * 21 * The left-hand side corresponds to the input sequence (\x, \(xx, \*(xx 22 * and so on) whose length is listed second element. The right-hand 23 * side is what's produced by the front-end, with the fourth element 24 * being its length. 25 * 26 * XXX - C-escape strings! 27 * XXX - update LINES_MAX if adding more! 28 */ 29 30/* Non-breaking, non-collapsing space uses unit separator. */ 31static const char ascii_nbrsp[2] = { ASCII_NBRSP, '\0' }; 32 33CHAR_TBL_START 34 35/* Spacing. */ 36CHAR("c", "", 0) 37CHAR("0", " ", 8194) 38CHAR(" ", ascii_nbrsp, 160) 39CHAR("~", ascii_nbrsp, 160) 40CHAR("%", "", 0) 41CHAR("&", "", 0) 42CHAR("^", "", 0) 43CHAR("|", "", 0) 44CHAR("}", "", 0) 45 46/* Accents. */ 47CHAR("a\"", "\"", 779) 48CHAR("a-", "-", 175) 49CHAR("a.", ".", 729) 50CHAR("a^", "^", 770) 51CHAR("\'", "\'", 769) 52CHAR("aa", "\'", 769) 53CHAR("ga", "`", 768) 54CHAR("`", "`", 768) 55CHAR("ab", "`", 774) 56CHAR("ac", ",", 807) 57CHAR("ad", "\"", 776) 58CHAR("ah", "v", 711) 59CHAR("ao", "o", 730) 60CHAR("a~", "~", 771) 61CHAR("ho", ",", 808) 62CHAR("ha", "^", 94) 63CHAR("ti", "~", 126) 64 65/* Quotes. */ 66CHAR("Bq", ",,", 8222) 67CHAR("bq", ",", 8218) 68CHAR("lq", "``", 8220) 69CHAR("rq", "\'\'", 8221) 70CHAR("oq", "`", 8216) 71CHAR("cq", "\'", 8217) 72CHAR("aq", "\'", 39) 73CHAR("dq", "\"", 34) 74CHAR("Fo", "<<", 171) 75CHAR("Fc", ">>", 187) 76CHAR("fo", "<", 8249) 77CHAR("fc", ">", 8250) 78 79/* Brackets. */ 80CHAR("lB", "[", 91) 81CHAR("rB", "]", 93) 82CHAR("lC", "{", 123) 83CHAR("rC", "}", 125) 84CHAR("la", "<", 60) 85CHAR("ra", ">", 62) 86CHAR("bv", "|", 9130) 87CHAR("braceex", "|", 9130) 88CHAR("bracketlefttp", "|", 9121) 89CHAR("bracketleftbp", "|", 9123) 90CHAR("bracketleftex", "|", 9122) 91CHAR("bracketrighttp", "|", 9124) 92CHAR("bracketrightbp", "|", 9126) 93CHAR("bracketrightex", "|", 9125) 94CHAR("lt", ",-", 9127) 95CHAR("bracelefttp", ",-", 9127) 96CHAR("lk", "{", 9128) 97CHAR("braceleftmid", "{", 9128) 98CHAR("lb", ",-", 9129) 99CHAR("braceleftbp", "`-", 9129) 100CHAR("braceleftex", "|", 9130) 101CHAR("rt", "-.", 9131) 102CHAR("bracerighttp", "-.", 9131) 103CHAR("rk", "}", 9132) 104CHAR("bracerightmid", "}", 9132) 105CHAR("rb", "-\'", 9133) 106CHAR("bracerightbp", "-\'", 9133) 107CHAR("bracerightex", "|", 9130) 108CHAR("parenlefttp", "/", 9115) 109CHAR("parenleftbp", "\\", 9117) 110CHAR("parenleftex", "|", 9116) 111CHAR("parenrighttp", "\\", 9118) 112CHAR("parenrightbp", "/", 9120) 113CHAR("parenrightex", "|", 9119) 114 115/* Greek characters. */ 116CHAR("*A", "A", 913) 117CHAR("*B", "B", 914) 118CHAR("*G", "|", 915) 119CHAR("*D", "/\\", 916) 120CHAR("*E", "E", 917) 121CHAR("*Z", "Z", 918) 122CHAR("*Y", "H", 919) 123CHAR("*H", "O", 920) 124CHAR("*I", "I", 921) 125CHAR("*K", "K", 922) 126CHAR("*L", "/\\", 923) 127CHAR("*M", "M", 924) 128CHAR("*N", "N", 925) 129CHAR("*C", "H", 926) 130CHAR("*O", "O", 927) 131CHAR("*P", "TT", 928) 132CHAR("*R", "P", 929) 133CHAR("*S", ">", 931) 134CHAR("*T", "T", 932) 135CHAR("*U", "Y", 933) 136CHAR("*F", "O_", 934) 137CHAR("*X", "X", 935) 138CHAR("*Q", "Y", 936) 139CHAR("*W", "O", 937) 140CHAR("*a", "a", 945) 141CHAR("*b", "B", 946) 142CHAR("*g", "y", 947) 143CHAR("*d", "d", 948) 144CHAR("*e", "e", 949) 145CHAR("*z", "C", 950) 146CHAR("*y", "n", 951) 147CHAR("*h", "0", 952) 148CHAR("*i", "i", 953) 149CHAR("*k", "k", 954) 150CHAR("*l", "\\", 955) 151CHAR("*m", "u", 956) 152CHAR("*n", "v", 957) 153CHAR("*c", "E", 958) 154CHAR("*o", "o", 959) 155CHAR("*p", "n", 960) 156CHAR("*r", "p", 961) 157CHAR("*s", "o", 963) 158CHAR("*t", "t", 964) 159CHAR("*u", "u", 965) 160CHAR("*f", "o", 981) 161CHAR("*x", "x", 967) 162CHAR("*q", "u", 968) 163CHAR("*w", "w", 969) 164CHAR("+h", "0", 977) 165CHAR("+f", "o", 966) 166CHAR("+p", "w", 982) 167CHAR("+e", "e", 1013) 168CHAR("ts", "s", 962) 169 170/* Accented letters. */ 171CHAR(",C", "C", 199) 172CHAR(",c", "c", 231) 173CHAR("/L", "L", 321) 174CHAR("/O", "O", 216) 175CHAR("/l", "l", 322) 176CHAR("/o", "o", 248) 177CHAR("oA", "A", 197) 178CHAR("oa", "a", 229) 179CHAR(":A", "A", 196) 180CHAR(":E", "E", 203) 181CHAR(":I", "I", 207) 182CHAR(":O", "O", 214) 183CHAR(":U", "U", 220) 184CHAR(":a", "a", 228) 185CHAR(":e", "e", 235) 186CHAR(":i", "i", 239) 187CHAR(":o", "o", 246) 188CHAR(":u", "u", 252) 189CHAR(":y", "y", 255) 190CHAR("\'A", "A", 193) 191CHAR("\'E", "E", 201) 192CHAR("\'I", "I", 205) 193CHAR("\'O", "O", 211) 194CHAR("\'U", "U", 218) 195CHAR("\'a", "a", 225) 196CHAR("\'e", "e", 233) 197CHAR("\'i", "i", 237) 198CHAR("\'o", "o", 243) 199CHAR("\'u", "u", 250) 200CHAR("^A", "A", 194) 201CHAR("^E", "E", 202) 202CHAR("^I", "I", 206) 203CHAR("^O", "O", 212) 204CHAR("^U", "U", 219) 205CHAR("^a", "a", 226) 206CHAR("^e", "e", 234) 207CHAR("^i", "i", 238) 208CHAR("^o", "o", 244) 209CHAR("^u", "u", 251) 210CHAR("`A", "A", 192) 211CHAR("`E", "E", 200) 212CHAR("`I", "I", 204) 213CHAR("`O", "O", 210) 214CHAR("`U", "U", 217) 215CHAR("`a", "a", 224) 216CHAR("`e", "e", 232) 217CHAR("`i", "i", 236) 218CHAR("`o", "o", 242) 219CHAR("`u", "u", 249) 220CHAR("~A", "A", 195) 221CHAR("~N", "N", 209) 222CHAR("~O", "O", 213) 223CHAR("~a", "a", 227) 224CHAR("~n", "n", 241) 225CHAR("~o", "o", 245) 226 227/* Arrows and lines. */ 228CHAR("<-", "<-", 8592) 229CHAR("->", "->", 8594) 230CHAR("<>", "<>", 8596) 231CHAR("da", "v", 8595) 232CHAR("ua", "^", 8593) 233CHAR("va", "^v", 8597) 234CHAR("lA", "<=", 8656) 235CHAR("rA", "=>", 8658) 236CHAR("hA", "<=>", 8660) 237CHAR("dA", "v", 8659) 238CHAR("uA", "^", 8657) 239CHAR("vA", "^=v", 8661) 240 241/* Logic. */ 242CHAR("AN", "^", 8743) 243CHAR("OR", "v", 8744) 244CHAR("no", "~", 172) 245CHAR("tno", "~", 172) 246CHAR("te", "3", 8707) 247CHAR("fa", "V", 8704) 248CHAR("st", "-)", 8715) 249CHAR("tf", ".:.", 8756) 250CHAR("3d", ".:.", 8756) 251CHAR("or", "|", 124) 252 253/* Mathematicals. */ 254CHAR("pl", "+", 43) 255CHAR("mi", "-", 8722) 256CHAR("-", "-", 45) 257CHAR("-+", "-+", 8723) 258CHAR("+-", "+-", 177) 259CHAR("t+-", "+-", 177) 260CHAR("pc", ".", 183) 261CHAR("md", ".", 8901) 262CHAR("mu", "x", 215) 263CHAR("tmu", "x", 215) 264CHAR("c*", "x", 8855) 265CHAR("c+", "+", 8853) 266CHAR("di", "-:-", 247) 267CHAR("tdi", "-:-", 247) 268CHAR("f/", "/", 8260) 269CHAR("**", "*", 8727) 270CHAR("<=", "<=", 8804) 271CHAR(">=", ">=", 8805) 272CHAR("<<", "<<", 8810) 273CHAR(">>", ">>", 8811) 274CHAR("eq", "=", 61) 275CHAR("!=", "!=", 8800) 276CHAR("==", "==", 8801) 277CHAR("ne", "!==", 8802) 278CHAR("=~", "=~", 8773) 279CHAR("-~", "-~", 8771) 280CHAR("ap", "~", 8764) 281CHAR("~~", "~~", 8776) 282CHAR("~=", "~=", 8780) 283CHAR("pt", "oc", 8733) 284CHAR("es", "{}", 8709) 285CHAR("mo", "E", 8712) 286CHAR("nm", "!E", 8713) 287CHAR("sb", "(=", 8834) 288CHAR("nb", "(!=", 8836) 289CHAR("sp", "=)", 8835) 290CHAR("nc", "!=)", 8837) 291CHAR("ib", "(=", 8838) 292CHAR("ip", "=)", 8839) 293CHAR("ca", "(^)", 8745) 294CHAR("cu", "U", 8746) 295CHAR("/_", "/_", 8736) 296CHAR("pp", "_|_", 8869) 297CHAR("is", "I", 8747) 298CHAR("integral", "I", 8747) 299CHAR("sum", "E", 8721) 300CHAR("product", "TT", 8719) 301CHAR("coproduct", "U", 8720) 302CHAR("gr", "V", 8711) 303CHAR("sr", "\\/", 8730) 304CHAR("sqrt", "\\/", 8730) 305CHAR("lc", "|~", 8968) 306CHAR("rc", "~|", 8969) 307CHAR("lf", "|_", 8970) 308CHAR("rf", "_|", 8971) 309CHAR("if", "oo", 8734) 310CHAR("Ah", "N", 8501) 311CHAR("Im", "I", 8465) 312CHAR("Re", "R", 8476) 313CHAR("pd", "a", 8706) 314CHAR("-h", "/h", 8463) 315CHAR("12", "1/2", 189) 316CHAR("14", "1/4", 188) 317CHAR("34", "3/4", 190) 318 319/* Ligatures. */ 320CHAR("ff", "ff", 64256) 321CHAR("fi", "fi", 64257) 322CHAR("fl", "fl", 64258) 323CHAR("Fi", "ffi", 64259) 324CHAR("Fl", "ffl", 64260) 325CHAR("AE", "AE", 198) 326CHAR("ae", "ae", 230) 327CHAR("OE", "OE", 338) 328CHAR("oe", "oe", 339) 329CHAR("ss", "ss", 223) 330CHAR("IJ", "IJ", 306) 331CHAR("ij", "ij", 307) 332 333/* Special letters. */ 334CHAR("-D", "D", 208) 335CHAR("Sd", "o", 240) 336CHAR("TP", "b", 222) 337CHAR("Tp", "b", 254) 338CHAR(".i", "i", 305) 339CHAR(".j", "j", 567) 340 341/* Currency. */ 342CHAR("Do", "$", 36) 343CHAR("ct", "c", 162) 344CHAR("Eu", "EUR", 8364) 345CHAR("eu", "EUR", 8364) 346CHAR("Ye", "Y", 165) 347CHAR("Po", "L", 163) 348CHAR("Cs", "x", 164) 349CHAR("Fn", "f", 402) 350 351/* Lines. */ 352CHAR("ba", "|", 124) 353CHAR("br", "|", 9474) 354CHAR("ul", "_", 95) 355CHAR("rl", "-", 8254) 356CHAR("bb", "|", 166) 357CHAR("sl", "/", 47) 358CHAR("rs", "\\", 92) 359 360/* Text markers. */ 361CHAR("ci", "o", 9675) 362CHAR("bu", "o", 8226) 363CHAR("dd", "=", 8225) 364CHAR("dg", "-", 8224) 365CHAR("lz", "<>", 9674) 366CHAR("sq", "[]", 9633) 367CHAR("ps", "9|", 182) 368CHAR("sc", "S", 167) 369CHAR("lh", "<=", 9756) 370CHAR("rh", "=>", 9758) 371CHAR("at", "@", 64) 372CHAR("sh", "#", 35) 373CHAR("CR", "_|", 8629) 374CHAR("OK", "\\/", 10003) 375 376/* Legal symbols. */ 377CHAR("co", "(C)", 169) 378CHAR("rg", "(R)", 174) 379CHAR("tm", "tm", 8482) 380 381/* Punctuation. */ 382CHAR(".", ".", 46) 383CHAR("r!", "i", 161) 384CHAR("r?", "c", 191) 385CHAR("em", "--", 8212) 386CHAR("en", "-", 8211) 387CHAR("hy", "-", 8208) 388CHAR("e", "\\", 92) 389 390/* Units. */ 391CHAR("de", "o", 176) 392CHAR("%0", "%o", 8240) 393CHAR("fm", "\'", 8242) 394CHAR("sd", "\"", 8243) 395CHAR("mc", "mu", 181) 396 397CHAR_TBL_END 398