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