/* $Id$ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2014 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /* * The ASCII translation tables. * * The left-hand side corresponds to the input sequence (\x, \(xx, \*(xx * and so on) whose length is listed second element. The right-hand * side is what's produced by the front-end, with the fourth element * being its length. * * XXX - C-escape strings! * XXX - update LINES_MAX if adding more! */ /* Special break control characters. */ static const char ascii_nbrsp[2] = { ASCII_NBRSP, '\0' }; static const char ascii_break[2] = { ASCII_BREAK, '\0' }; CHAR_TBL_START /* Spacing. */ CHAR(" ", ascii_nbrsp, 160) CHAR("~", ascii_nbrsp, 160) CHAR("0", " ", 8194) CHAR("|", "", 0) CHAR("^", "", 0) CHAR("&", "", 0) CHAR("%", "", 0) CHAR(":", ascii_break, 0) /* XXX The following three do not really belong into this file. */ CHAR("t", "", 0) CHAR("c", "", 0) CHAR("}", "", 0) /* Accents. */ CHAR("a\"", "\"", 733) CHAR("a-", "-", 175) CHAR("a.", ".", 729) CHAR("a^", "^", 94) CHAR("\'", "\'", 180) CHAR("aa", "\'", 180) CHAR("ga", "`", 96) CHAR("`", "`", 96) CHAR("ab", "'\b`", 728) CHAR("ac", ",", 184) CHAR("ad", "\"", 168) CHAR("ah", "v", 711) CHAR("ao", "o", 730) CHAR("a~", "~", 126) CHAR("ho", ",", 731) CHAR("ha", "^", 94) CHAR("ti", "~", 126) /* Quotes. */ CHAR("Bq", ",,", 8222) CHAR("bq", ",", 8218) CHAR("lq", "``", 8220) CHAR("rq", "\'\'", 8221) CHAR("oq", "`", 8216) CHAR("cq", "\'", 8217) CHAR("aq", "\'", 39) CHAR("dq", "\"", 34) CHAR("Fo", "<<", 171) CHAR("Fc", ">>", 187) CHAR("fo", "<", 8249) CHAR("fc", ">", 8250) /* Brackets. */ CHAR("lB", "[", 91) CHAR("rB", "]", 93) CHAR("lC", "{", 123) CHAR("rC", "}", 125) CHAR("la", "<", 10216) CHAR("ra", ">", 10217) CHAR("bv", "|", 9130) CHAR("braceex", "|", 9130) CHAR("bracketlefttp", "|", 9121) CHAR("bracketleftbt", "|", 9123) CHAR("bracketleftex", "|", 9122) CHAR("bracketrighttp", "|", 9124) CHAR("bracketrightbt", "|", 9126) CHAR("bracketrightex", "|", 9125) CHAR("lt", ",-", 9127) CHAR("bracelefttp", ",-", 9127) CHAR("lk", "{", 9128) CHAR("braceleftmid", "{", 9128) CHAR("lb", "`-", 9129) CHAR("braceleftbt", "`-", 9129) CHAR("braceleftex", "|", 9130) CHAR("rt", "-.", 9131) CHAR("bracerighttp", "-.", 9131) CHAR("rk", "}", 9132) CHAR("bracerightmid", "}", 9132) CHAR("rb", "-\'", 9133) CHAR("bracerightbt", "-\'", 9133) CHAR("bracerightex", "|", 9130) CHAR("parenlefttp", "/", 9115) CHAR("parenleftbt", "\\", 9117) CHAR("parenleftex", "|", 9116) CHAR("parenrighttp", "\\", 9118) CHAR("parenrightbt", "/", 9120) CHAR("parenrightex", "|", 9119) /* Greek characters. */ CHAR("*A", "A", 913) CHAR("*B", "B", 914) CHAR("*G", "G", 915) CHAR("*D", "_\b/_\b\\", 916) CHAR("*E", "E", 917) CHAR("*Z", "Z", 918) CHAR("*Y", "H", 919) CHAR("*H", "-\bO", 920) CHAR("*I", "I", 921) CHAR("*K", "K", 922) CHAR("*L", "/\\", 923) CHAR("*M", "M", 924) CHAR("*N", "N", 925) CHAR("*C", "_\bH", 926) CHAR("*O", "O", 927) CHAR("*P", "TT", 928) CHAR("*R", "P", 929) CHAR("*S", "S", 931) CHAR("*T", "T", 932) CHAR("*U", "Y", 933) CHAR("*F", "I\bO", 934) CHAR("*X", "X", 935) CHAR("*Q", "I\bY", 936) CHAR("*W", "_\bO", 937) CHAR("*a", "a", 945) CHAR("*b", "B", 946) CHAR("*g", "y", 947) CHAR("*d", "d", 948) CHAR("*e", "e", 949) CHAR("*z", ",\bC", 950) CHAR("*y", "n", 951) CHAR("*h", "-\b0", 952) CHAR("*i", "i", 953) CHAR("*k", "k", 954) CHAR("*l", ">\b\\", 955) CHAR("*m", ",\bu", 956) CHAR("*n", "v", 957) CHAR("*c", ",\bE", 958) CHAR("*o", "o", 959) CHAR("*p", "-\bn", 960) CHAR("*r", "p", 961) CHAR("*s", "-\bo", 963) CHAR("*t", "~\bt", 964) CHAR("*u", "u", 965) CHAR("*f", "|\bo", 981) CHAR("*x", "x", 967) CHAR("*q", "|\bu", 968) CHAR("*w", "w", 969) CHAR("+h", "-\b0", 977) CHAR("+f", "|\bo", 966) CHAR("+p", "-\bw", 982) CHAR("+e", "e", 1013) CHAR("ts", "s", 962) /* Accented letters. */ CHAR(",C", ",\bC", 199) CHAR(",c", ",\bc", 231) CHAR("/L", "/\bL", 321) CHAR("/O", "/\bO", 216) CHAR("/l", "/\bl", 322) CHAR("/o", "/\bo", 248) CHAR("oA", "o\bA", 197) CHAR("oa", "o\ba", 229) CHAR(":A", "\"\bA", 196) CHAR(":E", "\"\bE", 203) CHAR(":I", "\"\bI", 207) CHAR(":O", "\"\bO", 214) CHAR(":U", "\"\bU", 220) CHAR(":a", "\"\ba", 228) CHAR(":e", "\"\be", 235) CHAR(":i", "\"\bi", 239) CHAR(":o", "\"\bo", 246) CHAR(":u", "\"\bu", 252) CHAR(":y", "\"\by", 255) CHAR("'A", "'\bA", 193) CHAR("'E", "'\bE", 201) CHAR("'I", "'\bI", 205) CHAR("'O", "'\bO", 211) CHAR("'U", "'\bU", 218) CHAR("'a", "'\ba", 225) CHAR("'e", "'\be", 233) CHAR("'i", "'\bi", 237) CHAR("'o", "'\bo", 243) CHAR("'u", "'\bu", 250) CHAR("^A", "^\bA", 194) CHAR("^E", "^\bE", 202) CHAR("^I", "^\bI", 206) CHAR("^O", "^\bO", 212) CHAR("^U", "^\bU", 219) CHAR("^a", "^\ba", 226) CHAR("^e", "^\be", 234) CHAR("^i", "^\bi", 238) CHAR("^o", "^\bo", 244) CHAR("^u", "^\bu", 251) CHAR("`A", "`\bA", 192) CHAR("`E", "`\bE", 200) CHAR("`I", "`\bI", 204) CHAR("`O", "`\bO", 210) CHAR("`U", "`\bU", 217) CHAR("`a", "`\ba", 224) CHAR("`e", "`\be", 232) CHAR("`i", "`\bi", 236) CHAR("`o", "`\bo", 242) CHAR("`u", "`\bu", 249) CHAR("~A", "~\bA", 195) CHAR("~N", "~\bN", 209) CHAR("~O", "~\bO", 213) CHAR("~a", "~\ba", 227) CHAR("~n", "~\bn", 241) CHAR("~o", "~\bo", 245) /* Arrows and lines. */ CHAR("<-", "<-", 8592) CHAR("->", "->", 8594) CHAR("<>", "<->", 8596) CHAR("da", "|\bv", 8595) CHAR("ua", "|\b^", 8593) CHAR("va", "^v", 8597) CHAR("lA", "<=", 8656) CHAR("rA", "=>", 8658) CHAR("hA", "<=>", 8660) CHAR("dA", "=\bv", 8659) CHAR("uA", "=\b^", 8657) CHAR("vA", "^=v", 8661) /* Logic. */ CHAR("AN", "^", 8743) CHAR("OR", "v", 8744) CHAR("no", "~", 172) CHAR("tno", "~", 172) CHAR("te", "3", 8707) CHAR("fa", "-\bV", 8704) CHAR("st", "-)", 8715) CHAR("tf", ".:.", 8756) CHAR("3d", ".:.", 8756) CHAR("or", "|", 124) /* Mathematicals. */ CHAR("pl", "+", 43) CHAR("mi", "-", 8722) CHAR("-", "-", 45) CHAR("-+", "-+", 8723) CHAR("+-", "+-", 177) CHAR("t+-", "+-", 177) CHAR("pc", ".", 183) CHAR("md", ".", 8901) CHAR("mu", "x", 215) CHAR("tmu", "x", 215) CHAR("c*", "O\bx", 8855) CHAR("c+", "O\b+", 8853) CHAR("di", "-:-", 247) CHAR("tdi", "-:-", 247) CHAR("f/", "/", 8260) CHAR("**", "*", 8727) CHAR("<=", "<=", 8804) CHAR(">=", ">=", 8805) CHAR("<<", "<<", 8810) CHAR(">>", ">>", 8811) CHAR("eq", "=", 61) CHAR("!=", "!=", 8800) CHAR("==", "==", 8801) CHAR("ne", "!==", 8802) CHAR("=~", "=~", 8773) CHAR("-~", "-~", 8771) CHAR("ap", "~", 8764) CHAR("~~", "~~", 8776) CHAR("~=", "~=", 8780) CHAR("pt", "oc", 8733) CHAR("es", "{}", 8709) CHAR("mo", "E", 8712) CHAR("nm", "!E", 8713) CHAR("sb", "(=", 8834) CHAR("nb", "(!=", 8836) CHAR("sp", "=)", 8835) CHAR("nc", "!=)", 8837) CHAR("ib", "(=\b_", 8838) CHAR("ip", "=\b_)", 8839) CHAR("ca", "(^)", 8745) CHAR("cu", "U", 8746) CHAR("/_", "_\b/", 8736) CHAR("pp", "_\b|", 8869) CHAR("is", "'\b,\bI", 8747) CHAR("integral", "'\b,\bI", 8747) CHAR("sum", "E", 8721) CHAR("product", "TT", 8719) CHAR("coproduct", "U", 8720) CHAR("gr", "V", 8711) CHAR("sr", "\\/", 8730) CHAR("sqrt", "\\/", 8730) CHAR("lc", "|~", 8968) CHAR("rc", "~|", 8969) CHAR("lf", "|_", 8970) CHAR("rf", "_|", 8971) CHAR("if", "oo", 8734) CHAR("Ah", "N", 8501) CHAR("Im", "I", 8465) CHAR("Re", "R", 8476) CHAR("pd", "a", 8706) CHAR("-h", "/h", 8463) CHAR("12", "1/2", 189) CHAR("14", "1/4", 188) CHAR("34", "3/4", 190) /* Ligatures. */ CHAR("ff", "ff", 64256) CHAR("fi", "fi", 64257) CHAR("fl", "fl", 64258) CHAR("Fi", "ffi", 64259) CHAR("Fl", "ffl", 64260) CHAR("AE", "AE", 198) CHAR("ae", "ae", 230) CHAR("OE", "OE", 338) CHAR("oe", "oe", 339) CHAR("ss", "ss", 223) CHAR("IJ", "IJ", 306) CHAR("ij", "ij", 307) /* Special letters. */ CHAR("-D", "-\bD", 208) CHAR("Sd", "d", 240) CHAR("TP", "Th", 222) CHAR("Tp", "th", 254) CHAR(".i", "i", 305) CHAR(".j", "j", 567) /* Currency. */ CHAR("Do", "$", 36) CHAR("ct", "/\bc", 162) CHAR("Eu", "EUR", 8364) CHAR("eu", "EUR", 8364) CHAR("Ye", "=\bY", 165) CHAR("Po", "GBP", 163) CHAR("Cs", "o\bx", 164) CHAR("Fn", ",\bf", 402) /* Lines. */ CHAR("ba", "|", 124) CHAR("br", "|", 9474) CHAR("ul", "_", 95) CHAR("rn", "-", 8254) CHAR("bb", "|", 166) CHAR("sl", "/", 47) CHAR("rs", "\\", 92) /* Text markers. */ CHAR("ci", "O", 9675) CHAR("bu", "+\bo", 8226) CHAR("dd", "|\b=", 8225) CHAR("dg", "|\b-", 8224) CHAR("lz", "<>", 9674) CHAR("sq", "[]", 9633) CHAR("ps", "", 182) CHAR("sc", "", 167) CHAR("lh", "<=", 9756) CHAR("rh", "=>", 9758) CHAR("at", "@", 64) CHAR("sh", "#", 35) CHAR("CR", "_|", 8629) CHAR("OK", "\\/", 10003) /* Legal symbols. */ CHAR("co", "(C)", 169) CHAR("rg", "(R)", 174) CHAR("tm", "tm", 8482) /* Punctuation. */ CHAR(".", ".", 46) CHAR("r!", "!", 161) CHAR("r?", "?", 191) CHAR("em", "--", 8212) CHAR("en", "-", 8211) CHAR("hy", "-", 8208) CHAR("e", "\\", 92) /* Units. */ CHAR("de", "", 176) CHAR("%0", "%o", 8240) CHAR("fm", "\'", 8242) CHAR("sd", "''", 8243) CHAR("mc", ",\bu", 181) CHAR_TBL_END