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