bzr branch
http://golem.ph.utexas.edu/~distler/code/itexToMML/
|
64
by Jacques Distler
itex2MML 1.4.10 |
1 |
/* itex2MML 1.4.10 |
2 |
* itex2MML.l last modified 6/16/2012 |
|
|
1
by Jacques Distler
Initial commit. |
3 |
*/ |
4 |
||
5 |
%{
|
|
6 |
%} |
|
7 |
%option noyywrap |
|
|
61
by Jacques Distler
itex2MML 1.4.7: \mathraisebox{voffset}[height][depth]{content} |
8 |
%x MATH ATTRIBUTELIST BBOLD FRAKTUR CALLIGRAPHIC ROMAN PLAINTEXT INT1 INT2 INT3 MATHENV SVGENV SVGEND OPTARG ARRAYOPTIONS COLOPTS TEXTOPTARG TEXTOPTARG1 RAISEBOX1 RAISEBOX2 |
|
1
by Jacques Distler
Initial commit. |
9 |
%{
|
10 |
#include <string.h> |
|
11 |
||
12 |
#define YYSTYPE char * |
|
13 |
||
14 |
#include "y.tab.h" |
|
15 |
#include "itex2MML.h" |
|
16 |
||
17 |
#define YY_NEVER_INTERACTIVE 1 |
|
18 |
#define YY_INPUT(buffer,result,max_size) result = s_itex2MML_read (buffer, max_size) |
|
19 |
||
20 |
static int s_itex2MML_read (char * buffer, int max_size); |
|
21 |
||
22 |
#define yylval itex2MML_yylval |
|
|
58
by Jacques Distler
Nested Extensible Arrows |
23 |
#define itex2MML_optarg_depth 100 |
|
1
by Jacques Distler
Initial commit. |
24 |
|
25 |
extern char * yylval; |
|
26 |
||
27 |
int itex2MML_lineno = 1; |
|
|
58
by Jacques Distler
Nested Extensible Arrows |
28 |
int itex2MML_inoptarg[itex2MML_optarg_depth]; |
29 |
int itex2MML_optarg_ind = 0; |
|
|
59
by Jacques Distler
itex2MML 1.4.5: Array Environment |
30 |
int itex2MML_env_start = 0; |
|
1
by Jacques Distler
Initial commit. |
31 |
|
32 |
int itex2MML_rowposn = 0; |
|
33 |
int itex2MML_displaymode = 0; |
|
|
58
by Jacques Distler
Nested Extensible Arrows |
34 |
|
|
1
by Jacques Distler
Initial commit. |
35 |
%} |
36 |
%% |
|
37 |
%{ if (itex2MML_rowposn==1) itex2MML_rowposn=0;
|
|
38 |
if (itex2MML_rowposn==2) itex2MML_rowposn=1; |
|
39 |
%} |
|
40 |
||
|
58
by Jacques Distler
Nested Extensible Arrows |
41 |
<INITIAL>"$"{1,2} BEGIN(MATH); itex2MML_inoptarg[0] = 0; itex2MML_rowposn=2; if (yyleng==2) { itex2MML_displaymode=1; return STARTDMATH;}; itex2MML_displaymode=0; return STARTMATH;
|
42 |
<INITIAL>"\\[" BEGIN(MATH); itex2MML_inoptarg[0] = 0; itex2MML_rowposn=2; itex2MML_displaymode=1; return STARTDMATH; |
|
|
1
by Jacques Distler
Initial commit. |
43 |
<INITIAL>EOF return 0; |
44 |
<INITIAL>"\n" {itex2MML_lineno++; yylval=itex2MML_copy_string(yytext); return CHAR;}
|
|
45 |
<INITIAL>. {yylval=itex2MML_copy_string(yytext); return CHAR;}
|
|
46 |
||
47 |
||
48 |
<MATH>{
|
|
49 |
||
50 |
||
51 |
||
52 |
"$"{1,2} |
|
|
53 |
"\\]" {BEGIN(INITIAL); return ENDMATH;}
|
|
54 |
||
|
18
by Jacques Distler
Minor Tweaks |
55 |
|
|
1
by Jacques Distler
Initial commit. |
56 |
"^" return SUP; |
57 |
"_" return SUB; |
|
58 |
"{"[\t\r\n ]*"}" return EMPTYMROW;
|
|
|
59
by Jacques Distler
itex2MML 1.4.5: Array Environment |
59 |
"{" {itex2MML_rowposn = 2; if(itex2MML_inoptarg[itex2MML_optarg_ind] != 0) itex2MML_inoptarg[itex2MML_optarg_ind]++; return MROWOPEN;}
|
60 |
"}" {if(itex2MML_inoptarg[itex2MML_optarg_ind] != 0) itex2MML_inoptarg[itex2MML_optarg_ind]--; return MROWCLOSE;}
|
|
|
1
by Jacques Distler
Initial commit. |
61 |
|
62 |
"\\left" itex2MML_rowposn=2; return LEFT; |
|
63 |
"\\right" return RIGHT; |
|
64 |
||
65 |
"\\big" | |
|
66 |
"\\bigr" {return BIG;}
|
|
67 |
"\\Big" | |
|
68 |
"\\Bigr" {return BBIG;}
|
|
69 |
"\\bigg" | |
|
70 |
"\\biggr" {return BIGG;}
|
|
71 |
"\\Bigg" | |
|
72 |
"\\Biggr" {return BBIGG;}
|
|
73 |
||
74 |
"\\bigl" {return BIGL;}
|
|
75 |
"\\Bigl" {return BBIGL;}
|
|
76 |
"\\biggl" {return BIGGL;}
|
|
77 |
"\\Biggl" {return BBIGGL;}
|
|
78 |
||
|
37
by Jacques Distler
itex2MML 1.3.13 |
79 |
"\\mathrlap" {return RLAP;}
|
80 |
"\\mathllap" {return LLAP;}
|
|
81 |
"\\mathclap" {return CLAP;}
|
|
82 |
"\\rlap" | |
|
|
1
by Jacques Distler
Initial commit. |
83 |
"\\llap" | |
84 |
"\\ulap" | |
|
85 |
"\\dlap" {/* Ignore */ ;}
|
|
86 |
||
87 |
||
88 |
"&" | |
|
89 |
"&" {itex2MML_rowposn=2; return COLSEP;}
|
|
90 |
||
91 |
"\\&" {yylval=itex2MML_copy_string("&"); return MI;}
|
|
92 |
||
93 |
"\\$" {yylval=itex2MML_copy_string("$"); return MI;}
|
|
94 |
"\\%" {yylval=itex2MML_copy_string("%"); return MI;}
|
|
95 |
||
96 |
"\\\\" itex2MML_rowposn=2; return ROWSEP; |
|
97 |
||
98 |
[a-zA-Z]+ {yylval=itex2MML_copy_string(yytext); return MI;}
|
|
99 |
||
|
60
by Jacques Distler
itex2MML 1.4.6 |
100 |
[0-9]{1,3}(,[0-9]{3,3})*(\.[0-9]+)? |
|
101 |
[0-9]*[\.][0-9]+ | |
|
102 |
[0-9]+ {yylval=itex2MML_copy_string(yytext); return MN;}
|
|
|
1
by Jacques Distler
Initial commit. |
103 |
"\\infty" | |
104 |
"\\infinity" {yylval=itex2MML_copy_string("∞"); return MN;}
|
|
105 |
||
106 |
"(" |
|
|
107 |
"[" {yylval=itex2MML_copy_string(yytext); return LEFTDELIM;}
|
|
108 |
||
|
54
by Jacques Distler
itex2MML 1.4.0: Extensible Arrows |
109 |
")" {yylval=itex2MML_copy_string(yytext); return RIGHTDELIM;}
|
|
58
by Jacques Distler
Nested Extensible Arrows |
110 |
"]" {if(itex2MML_inoptarg[itex2MML_optarg_ind]==1 && itex2MML_optarg_ind > 0) {itex2MML_inoptarg[itex2MML_optarg_ind]=0; itex2MML_optarg_ind--; return OPTARGCLOSE;} else {yylval=itex2MML_copy_string(yytext); return RIGHTDELIM;}}
|
|
1
by Jacques Distler
Initial commit. |
111 |
|
112 |
"\\lbrace" | |
|
113 |
"\\{" {yylval=itex2MML_copy_string("{"); return LEFTDELIM;}
|
|
114 |
"\\rbrace" | |
|
115 |
"\\}" {yylval=itex2MML_copy_string("}"); return RIGHTDELIM;}
|
|
116 |
||
117 |
"\\vert" | |
|
118 |
"|" {yylval=itex2MML_copy_string("∣"); return OTHERDELIM;}
|
|
119 |
"\\Vert" | |
|
120 |
"\\|" {yylval=itex2MML_copy_string("∥"); return OTHERDELIM;}
|
|
121 |
||
122 |
"\\setminus" {yylval=itex2MML_copy_string("∖"); return MO;}
|
|
123 |
"\\backslash" {yylval=itex2MML_copy_string("\"); return MO;}
|
|
124 |
"\\smallsetminus" {yylval=itex2MML_copy_string("﹨"); return MOF;}
|
|
125 |
||
|
52
by Jacques Distler
itex2MML 1.3.26 |
126 |
"\\sslash" {yylval=itex2MML_copy_string("⫽"); return MO;}
|
|
30
by Jacques Distler
Version 1.3.6: \sslash |
127 |
|
|
1
by Jacques Distler
Initial commit. |
128 |
"\\lfloor" | |
129 |
"\\lceil" | |
|
130 |
"\\lang" | |
|
131 |
"\\langle" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return LEFTDELIM;}
|
|
132 |
||
133 |
"\\rfloor" | |
|
134 |
"\\rceil" | |
|
135 |
"\\rang" | |
|
136 |
"\\rangle" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return RIGHTDELIM;}
|
|
137 |
||
138 |
"/" {yylval=itex2MML_copy_string(yytext); return OTHERDELIM;}
|
|
139 |
||
140 |
"\\uparrow" | |
|
141 |
"\\downarrow" | |
|
142 |
"\\updownarrow" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return OTHERDELIM;}
|
|
143 |
||
144 |
"." {yylval=itex2MML_copy_string(yytext); return PERIODDELIM;}
|
|
145 |
||
146 |
"-" {if (itex2MML_rowposn==1) return UNARYMINUS; else {yylval=itex2MML_copy_string("−"); return MO;}}
|
|
147 |
||
148 |
"+" {if (itex2MML_rowposn==1) return UNARYPLUS; else {yylval=itex2MML_copy_string("+"); return MO;}}
|
|
149 |
||
|
17
by Jacques Distler
itex2MML 1.2.3 |
150 |
"\\#" {yylval=itex2MML_copy_string("#"); return MOL;}
|
151 |
||
|
1
by Jacques Distler
Initial commit. |
152 |
"," | |
153 |
":" | |
|
154 |
"!" | |
|
155 |
"=" | |
|
156 |
"~" | |
|
157 |
";" | |
|
158 |
"?" | |
|
159 |
"#" | |
|
160 |
"`" | |
|
161 |
"*" {yylval=itex2MML_copy_string(yytext); return MOL;}
|
|
162 |
||
|
18
by Jacques Distler
Minor Tweaks |
163 |
"\\prime" {yylval=itex2MML_copy_string("′"); return MOLL;}
|
|
12
by Jacques Distler
Fixed TeX primes. |
164 |
"'" {yylval=itex2MML_copy_string("′"); return MOL;}
|
165 |
"''" {yylval=itex2MML_copy_string("″"); return MOL;}
|
|
166 |
"'''" {yylval=itex2MML_copy_string("‴"); return MOL;}
|
|
|
15
by Jacques Distler
Quadruple Prime |
167 |
"''''" {yylval=itex2MML_copy_string("⁗"); return MOL;}
|
|
12
by Jacques Distler
Fixed TeX primes. |
168 |
|
|
1
by Jacques Distler
Initial commit. |
169 |
"\\alpha" | |
170 |
"\\beta" | |
|
171 |
"\\gamma" | |
|
172 |
"\\delta" | |
|
173 |
"\\zeta" | |
|
174 |
"\\eta" | |
|
175 |
"\\theta" | |
|
176 |
"\\iota" | |
|
177 |
"\\kappa" | |
|
178 |
"\\lambda" | |
|
179 |
"\\mu" | |
|
180 |
"\\nu" | |
|
181 |
"\\xi" | |
|
182 |
"\\pi" | |
|
183 |
"\\rho" | |
|
184 |
"\\sigma" | |
|
185 |
"\\tau" | |
|
186 |
"\\upsilon" | |
|
187 |
"\\chi" | |
|
188 |
"\\psi" | |
|
189 |
"\\omega" | |
|
190 |
"\\backepsilon" | |
|
191 |
"\\varkappa" | |
|
192 |
"\\varpi" | |
|
193 |
"\\varrho" | |
|
194 |
"\\varsigma" | |
|
195 |
"\\vartheta" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return MI;}
|
|
196 |
||
|
41
by Jacques Distler
itex2MML 1.3.17 |
197 |
"\\varepsilon" {yylval=itex2MML_copy_string("ε"); return MI;}
|
|
1
by Jacques Distler
Initial commit. |
198 |
"\\phi" {yylval=itex2MML_copy_string("ϕ"); return MI;}
|
199 |
"\\varphi" {yylval=itex2MML_copy_string("φ"); return MI;}
|
|
200 |
||
201 |
"\\arccos" | |
|
202 |
"\\arcsin" | |
|
203 |
"\\arctan" | |
|
204 |
"\\arg" | |
|
205 |
"\\cos" | |
|
206 |
"\\cosh" | |
|
207 |
"\\cot" | |
|
208 |
"\\coth" | |
|
209 |
"\\csc" | |
|
210 |
"\\deg" | |
|
211 |
"\\dim" | |
|
212 |
"\\exp" | |
|
213 |
"\\hom" | |
|
214 |
"\\ker" | |
|
215 |
"\\lg" | |
|
216 |
"\\ln" | |
|
217 |
"\\log" | |
|
218 |
"\\sec" | |
|
219 |
"\\sin" | |
|
220 |
"\\sinh" | |
|
221 |
"\\tan" | |
|
222 |
"\\tanh" {yylval=itex2MML_copy_string(yytext+1); return MI;}
|
|
223 |
||
224 |
"\\det" | |
|
225 |
"\\gcd" | |
|
226 |
"\\inf" | |
|
227 |
"\\lim" | |
|
228 |
"\\liminf" | |
|
229 |
"\\limsup" | |
|
230 |
"\\max" | |
|
231 |
"\\min" | |
|
232 |
"\\Pr" | |
|
233 |
"\\sup" {yylval=itex2MML_copy_string(yytext+1); return MIB;}
|
|
234 |
||
235 |
"\\omicron" {yylval=itex2MML_copy_string("ℴ"); return MI;}
|
|
236 |
||
237 |
"\\epsilon" {yylval=itex2MML_copy_string("ε"); return MI;}
|
|
238 |
||
239 |
"\\cdot" {yylval=itex2MML_copy_string("⋅"); return MO;}
|
|
240 |
||
241 |
"\\Alpha" | |
|
242 |
"\\Beta" | |
|
243 |
"\\Delta" | |
|
244 |
"\\Gamma" | |
|
245 |
"\\digamma" | |
|
246 |
"\\Lambda" | |
|
247 |
"\\Pi" | |
|
248 |
"\\Phi" | |
|
249 |
"\\Psi" | |
|
250 |
"\\Sigma" | |
|
251 |
"\\Theta" | |
|
252 |
"\\Xi" | |
|
253 |
"\\Zeta" | |
|
254 |
"\\Eta" | |
|
255 |
"\\Iota" | |
|
256 |
"\\Kappa" | |
|
257 |
"\\Mu" | |
|
258 |
"\\Nu" | |
|
259 |
"\\Rho" | |
|
260 |
"\\Tau" | |
|
261 |
"\\mho" | |
|
262 |
"\\Omega" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return MI;}
|
|
263 |
||
264 |
"\\Upsilon" | |
|
265 |
"\\Upsi" {yylval=itex2MML_copy_string("ϒ"); return MI;}
|
|
266 |
||
267 |
"\\iff" | |
|
268 |
"\\Longleftrightarrow" {yylval=itex2MML_copy_string("⇔"); return MOL;}
|
|
269 |
||
270 |
"\\Leftrightarrow" {yylval=itex2MML_copy_string("⇔"); return MOL;}
|
|
271 |
||
272 |
"\\impliedby" | |
|
273 |
"\\Leftarrow" {yylval=itex2MML_copy_string("⇐"); return MOL;}
|
|
274 |
||
275 |
"\\implies" | |
|
276 |
"\\Rightarrow" {yylval=itex2MML_copy_string("⇒"); return MOL;}
|
|
277 |
||
278 |
"\\hookleftarrow" {yylval=itex2MML_copy_string("↩"); return MOL;}
|
|
279 |
||
280 |
"\\embedsin" | |
|
281 |
"\\hookrightarrow" {yylval=itex2MML_copy_string("↪"); return MOL;}
|
|
282 |
||
283 |
"\\longleftarrow" {yylval=itex2MML_copy_string("⟵"); return MOL;}
|
|
284 |
||
285 |
"\\longrightarrow" {yylval=itex2MML_copy_string("⟶"); return MOL;}
|
|
286 |
||
287 |
"\\leftarrow" {yylval=itex2MML_copy_string("←"); return MOL;}
|
|
288 |
||
289 |
"\\to" | |
|
290 |
"\\rightarrow" {yylval=itex2MML_copy_string("→"); return MOL;}
|
|
291 |
||
292 |
"\\leftrightarrow" {yylval=itex2MML_copy_string("↔"); return MOL;}
|
|
293 |
||
294 |
"\\mapsto" | |
|
295 |
"\\map" {yylval=itex2MML_copy_string("↦"); return MOL;}
|
|
296 |
||
297 |
"\\nearrow" | |
|
298 |
"\\nearr" {yylval=itex2MML_copy_string("↗"); return MOL;}
|
|
299 |
||
300 |
"\\nwarrow" | |
|
301 |
"\\nwarr" {yylval=itex2MML_copy_string("↖"); return MOL;}
|
|
302 |
||
303 |
"\\searrow" | |
|
304 |
"\\searr" {yylval=itex2MML_copy_string("↘"); return MOL;}
|
|
305 |
||
306 |
"\\swarrow" | |
|
307 |
"\\swarr" {yylval=itex2MML_copy_string("↙"); return MOL;}
|
|
308 |
||
309 |
"\\neArrow" | |
|
310 |
"\\neArr" {yylval=itex2MML_copy_string("⇗"); return MOL;}
|
|
311 |
||
312 |
"\\nwArrow" | |
|
313 |
"\\nwArr" {yylval=itex2MML_copy_string("⇖"); return MOL;}
|
|
314 |
||
315 |
"\\seArrow" | |
|
316 |
"\\seArr" {yylval=itex2MML_copy_string("⇘"); return MOL;}
|
|
317 |
||
318 |
"\\swArrow" | |
|
319 |
"\\swArr" {yylval=itex2MML_copy_string("⇙"); return MOL;}
|
|
320 |
||
321 |
"\\darr" {yylval=itex2MML_copy_string("↓"); return MOL;}
|
|
322 |
||
323 |
"\\Downarrow" {yylval=itex2MML_copy_string("⇓"); return MOL;}
|
|
324 |
||
325 |
"\\uparr" {yylval=itex2MML_copy_string("↑"); return MOL;}
|
|
326 |
||
327 |
"\\Uparrow" {yylval=itex2MML_copy_string("⇑"); return MOL;}
|
|
328 |
||
329 |
"\\downuparrow" | |
|
330 |
"\\duparr" | |
|
331 |
"\\updarr" {yylval=itex2MML_copy_string("↕"); return MOL;}
|
|
332 |
||
333 |
"\\Updownarrow" {yylval=itex2MML_copy_string("⇕"); return MOL;}
|
|
334 |
||
|
14
by Jacques Distler
itex2MML 1.2 |
335 |
"\\leftsquigarrow" {yylval=itex2MML_copy_string("⇜"); return MOL;}
|
|
13
by Jacques Distler
itex2MML 1.2 |
336 |
"\\rightsquigarrow" {yylval=itex2MML_copy_string("⇝"); return MOL;}
|
337 |
"\\dashleftarrow" {yylval=itex2MML_copy_string("⤎"); return MOL;}
|
|
338 |
"\\dashrightarrow" {yylval=itex2MML_copy_string("⤏"); return MOL;}
|
|
339 |
"\\curvearrowbotright" {yylval=itex2MML_copy_string("⤻"); return MOL;}
|
|
340 |
"\\righttoleftarrow" {yylval=itex2MML_copy_string("⟲"); return MOL;}
|
|
341 |
"\\lefttorightarrow" {yylval=itex2MML_copy_string("⟳"); return MOL;}
|
|
|
35
by Jacques Distler
itex2MML 1.3.11: A Quiverful of Arrows |
342 |
"\\leftrightsquigarrow" | |
343 |
"\\upuparrows" | |
|
344 |
"\\rightleftarrows" | |
|
345 |
"\\rightrightarrows" | |
|
346 |
"\\curvearrowleft" | |
|
347 |
"\\curvearrowright" | |
|
348 |
"\\downdownarrows" | |
|
349 |
"\\leftarrowtail" | |
|
350 |
"\\rightarrowtail" | |
|
351 |
"\\leftleftarrows" | |
|
352 |
"\\leftrightarrows" | |
|
353 |
"\\Lleftarrow" | |
|
354 |
"\\Rrightarrow" | |
|
355 |
"\\looparrowleft" | |
|
356 |
"\\looparrowright" | |
|
357 |
"\\Lsh" | |
|
358 |
"\\Rsh" | |
|
359 |
"\\circlearrowleft" | |
|
360 |
"\\circlearrowright" | |
|
361 |
"\\twoheadleftarrow" | |
|
362 |
"\\twoheadrightarrow" | |
|
363 |
"\\nLeftarrow" | |
|
364 |
"\\nleftarrow" | |
|
365 |
"\\nLeftrightarrow" | |
|
366 |
"\\nleftrightarrow" | |
|
367 |
"\\nRightarrow" | |
|
368 |
"\\nrightarrow" | |
|
369 |
"\\downharpoonleft" | |
|
370 |
"\\downharpoonright" | |
|
371 |
"\\leftrightharpoons" | |
|
372 |
"\\rightleftharpoons" | |
|
373 |
"\\upharpoonleft" | |
|
374 |
"\\upharpoonright" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return MOL;}
|
|
375 |
||
|
54
by Jacques Distler
itex2MML 1.4.0: Extensible Arrows |
376 |
"\\xrightarrow" | |
377 |
"\\xleftarrow" | |
|
378 |
"\\xleftrightarrow" | |
|
379 |
"\\xLeftarrow" | |
|
380 |
"\\xRightarrow" | |
|
381 |
"\\xLeftrightarrow" | |
|
382 |
"\\xleftrightharpoons" | |
|
383 |
"\\xrightleftharpoons" | |
|
384 |
"\\xhookleftarrow" | |
|
385 |
"\\xhookrightarrow" | |
|
|
55
by Jacques Distler
itex2MML 1.4.1: Memory issue |
386 |
"\\xmapsto" {BEGIN(OPTARG); char * s1 = itex2MML_copy_string(yytext+2); yylval = itex2MML_copy3("&", s1, ";"); itex2MML_free_string(s1); return XARROW;}
|
|
13
by Jacques Distler
itex2MML 1.2 |
387 |
|
|
1
by Jacques Distler
Initial commit. |
388 |
"\\dots" | |
|
53
by Jacques Distler
itex2MML 1.3.27: Fixed \dots |
389 |
"\\ldots" {yylval=itex2MML_copy_string("…"); return MI;}
|
390 |
"\\cdots" {yylval=itex2MML_copy_string("⋯"); return MI;}
|
|
391 |
"\\ddots" {yylval=itex2MML_copy_string("⋱"); return MI;}
|
|
392 |
"\\udots" {yylval=itex2MML_copy_string("⋰"); return MI;}
|
|
393 |
"\\vdots" {yylval=itex2MML_copy_string("⋮"); return MI;}
|
|
|
37
by Jacques Distler
itex2MML 1.3.13 |
394 |
"\\colon" {yylval=itex2MML_copy_string(":"); return MOR;}
|
|
1
by Jacques Distler
Initial commit. |
395 |
|
396 |
"\\cup" | |
|
397 |
"\&union;" | |
|
398 |
"\\union" {yylval=itex2MML_copy_string("∪"); return MOL;}
|
|
399 |
||
400 |
"\\bigcup" | |
|
401 |
"\\Union" | |
|
402 |
"\⋃" {yylval=itex2MML_copy_string("⋃"); return MOB;}
|
|
403 |
||
404 |
"\\cap" | |
|
405 |
"\\intersection" {yylval=itex2MML_copy_string("∩"); return MOL;}
|
|
406 |
||
407 |
"\\bigcap" | |
|
408 |
"\\Intersection" {yylval=itex2MML_copy_string("⋂"); return MOB;}
|
|
409 |
||
410 |
"\\in" {yylval=itex2MML_copy_string("∈"); return MOL;}
|
|
411 |
||
|
36
by Jacques Distler
itex2MML 1.3.12: \coloneqq and its cousins |
412 |
/* For some reason, Firefox does not put in the right spacing around some of these operators |
413 |
* unless we ask for it, explicitly. |
|
414 |
*/ |
|
415 |
"\\coloneqq" {yylval=itex2MML_copy_string("≔"); return MOL;}
|
|
416 |
"\\Coloneqq" {yylval=itex2MML_copy_string("⩴"); return MOS;}
|
|
417 |
"\\coloneq" {yylval=itex2MML_copy_string("∶−"); return MOS;}
|
|
418 |
"\\Coloneq" {yylval=itex2MML_copy_string("∷−"); return MOS;}
|
|
419 |
"\\eqqcolon" {yylval=itex2MML_copy_string("≕"); return MOS;}
|
|
420 |
"\\Eqqcolon" {yylval=itex2MML_copy_string("=∷"); return MOS;}
|
|
421 |
"\\eqcolon" {yylval=itex2MML_copy_string("∹"); return MOS;}
|
|
422 |
"\\Eqcolon" {yylval=itex2MML_copy_string("−∷"); return MOS;}
|
|
423 |
"\\colonapprox" {yylval=itex2MML_copy_string("∶≈"); return MOS;}
|
|
424 |
"\\Colonapprox" {yylval=itex2MML_copy_string("∷≈"); return MOS;}
|
|
425 |
"\\colonsim" {yylval=itex2MML_copy_string("∶∼"); return MOS;}
|
|
426 |
"\\Colonsim" {yylval=itex2MML_copy_string("∷∼"); return MOS;}
|
|
427 |
"\\dblcolon" {yylval=itex2MML_copy_string("∷"); return MOL;}
|
|
428 |
||
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
429 |
"\\ast" | |
430 |
"\\Cap" | |
|
431 |
"\\Cup" | |
|
432 |
"\\circledast" | |
|
433 |
"\\circledcirc" | |
|
434 |
"\\curlyvee" | |
|
435 |
"\\curlywedge" | |
|
436 |
"\\divideontimes" | |
|
437 |
"\\dotplus" | |
|
438 |
"\\leftthreetimes" | |
|
439 |
"\\rightthreetimes" | |
|
440 |
"\\veebar" | |
|
|
1
by Jacques Distler
Initial commit. |
441 |
"\\gt" | |
442 |
"\\lt" | |
|
443 |
"\\approxeq" | |
|
444 |
"\\backsim" | |
|
445 |
"\\backsimeq" | |
|
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
446 |
"\\barwedge" | |
447 |
"\\doublebarwedge" | |
|
|
1
by Jacques Distler
Initial commit. |
448 |
"\\subset" | |
449 |
"\\subseteq" | |
|
450 |
"\\subseteqq" | |
|
451 |
"\\subsetneq" | |
|
452 |
"\\subsetneqq" | |
|
453 |
"\\varsubsetneq" | |
|
454 |
"\\varsubsetneqq" | |
|
455 |
"\\prec" | |
|
456 |
"\\parallel" | |
|
457 |
"\\nparallel" | |
|
458 |
"\\shortparallel" | |
|
459 |
"\\nshortparallel" | |
|
460 |
"\\perp" | |
|
461 |
"\\eqslantgtr" | |
|
462 |
"\\eqslantless" | |
|
463 |
"\\gg" | |
|
464 |
"\\ggg" | |
|
465 |
"\\geq" | |
|
466 |
"\\geqq" | |
|
467 |
"\\geqslant" | |
|
468 |
"\\gneq" | |
|
469 |
"\\gneqq" | |
|
470 |
"\\gnapprox" | |
|
471 |
"\\gnsim" | |
|
472 |
"\\gtrapprox" | |
|
473 |
"\\ge" | |
|
474 |
"\\le" | |
|
475 |
"\\leq" | |
|
476 |
"\\leqq" | |
|
477 |
"\\leqslant" | |
|
478 |
"\\lessapprox" | |
|
479 |
"\\lessdot" | |
|
480 |
"\\lesseqgtr" | |
|
481 |
"\\lesseqqgtr" | |
|
482 |
"\\lessgtr" | |
|
483 |
"\\lneq" | |
|
484 |
"\\lneqq" | |
|
485 |
"\\lnsim" | |
|
486 |
"\\lvertneqq" | |
|
487 |
"\\gtrsim" | |
|
488 |
"\\gtrdot" | |
|
489 |
"\\gtreqless" | |
|
490 |
"\\gtreqqless" | |
|
491 |
"\\gtrless" | |
|
492 |
"\\gvertneqq" | |
|
493 |
"\\lesssim" | |
|
494 |
"\\lnapprox" | |
|
495 |
"\\nsubset" | |
|
496 |
"\\nsubseteq" | |
|
497 |
"\\nsubseteqq" | |
|
498 |
"\\notin" | |
|
499 |
"\\ni" | |
|
500 |
"\\notni" | |
|
501 |
"\\nmid" | |
|
502 |
"\\nshortmid" | |
|
503 |
"\\preceq" | |
|
504 |
"\\npreceq" | |
|
505 |
"\\ll" | |
|
506 |
"\\ngeq" | |
|
507 |
"\\ngeqq" | |
|
508 |
"\\ngeqslant" | |
|
509 |
"\\nleq" | |
|
510 |
"\\nleqq" | |
|
511 |
"\\nleqslant" | |
|
512 |
"\\nless" | |
|
513 |
"\\supset" | |
|
514 |
"\\supseteq" | |
|
515 |
"\\supseteqq" | |
|
516 |
"\\supsetneq" | |
|
517 |
"\\supsetneqq" | |
|
518 |
"\\varsupsetneq" | |
|
519 |
"\\varsupsetneqq" | |
|
520 |
"\\approx" | |
|
521 |
"\\asymp" | |
|
522 |
"\\bowtie" | |
|
523 |
"\\dashv" | |
|
524 |
"\\Vdash" | |
|
525 |
"\\vDash" | |
|
526 |
"\\VDash" | |
|
527 |
"\\vdash" | |
|
528 |
"\\Vvdash" | |
|
529 |
"\\models" | |
|
530 |
"\\sim" | |
|
531 |
"\\simeq" | |
|
532 |
"\\nsim" | |
|
533 |
"\\smile" | |
|
534 |
"\\triangle" | |
|
535 |
"\\triangledown" | |
|
536 |
"\\triangleleft" | |
|
537 |
"\\cong" | |
|
538 |
"\\succ" | |
|
539 |
"\\nsucc" | |
|
540 |
"\\ngtr" | |
|
541 |
"\\nsupset" | |
|
542 |
"\\nsupseteq" | |
|
543 |
"\\propto" | |
|
544 |
"\\equiv" | |
|
|
24
by Jacques Distler
Another Symbol: \nequiv |
545 |
"\\nequiv" | |
|
1
by Jacques Distler
Initial commit. |
546 |
"\\frown" | |
547 |
"\\triangleright" | |
|
548 |
"\\ncong" | |
|
549 |
"\\succeq" | |
|
550 |
"\\succapprox" | |
|
551 |
"\\succnapprox" | |
|
552 |
"\\succcurlyeq" | |
|
553 |
"\\succsim" | |
|
554 |
"\\succnsim" | |
|
555 |
"\\nsucceq" | |
|
556 |
"\\nvDash" | |
|
557 |
"\\nvdash" | |
|
558 |
"\\nVDash" | |
|
559 |
"\\amalg" | |
|
560 |
"\\pm" | |
|
561 |
"\\mp" | |
|
562 |
"\\bigcirc" | |
|
563 |
"\\wr" | |
|
564 |
"\\odot" | |
|
565 |
"\\uplus" | |
|
566 |
"\\clubsuit" | |
|
567 |
"\\spadesuit" | |
|
568 |
"\\Diamond" | |
|
569 |
"\\diamond" | |
|
570 |
"\\sqcup" | |
|
571 |
"\\sqcap" | |
|
572 |
"\\sqsubset" | |
|
573 |
"\\sqsubseteq" | |
|
574 |
"\\sqsupset" | |
|
575 |
"\\sqsupseteq" | |
|
576 |
"\\Subset" | |
|
577 |
"\\Supset" | |
|
578 |
"\\ltimes" | |
|
579 |
"\\div" | |
|
580 |
"\\rtimes" | |
|
581 |
"\\bot" | |
|
582 |
"\\therefore" | |
|
583 |
"\\thickapprox" | |
|
584 |
"\\thicksim" | |
|
585 |
"\\varpropto" | |
|
586 |
"\\varnothing" | |
|
587 |
"\\flat" | |
|
588 |
"\\vee" | |
|
589 |
"\\because" | |
|
590 |
"\\between" | |
|
591 |
"\\Bumpeq" | |
|
592 |
"\\bumpeq" | |
|
593 |
"\\circeq" | |
|
594 |
"\\curlyeqprec" | |
|
595 |
"\\curlyeqsucc" | |
|
596 |
"\\doteq" | |
|
597 |
"\\doteqdot" | |
|
598 |
"\\eqcirc" | |
|
599 |
"\\fallingdotseq" | |
|
600 |
"\\multimap" | |
|
601 |
"\\pitchfork" | |
|
602 |
"\\precapprox" | |
|
603 |
"\\precnapprox" | |
|
604 |
"\\preccurlyeq" | |
|
605 |
"\\precsim" | |
|
606 |
"\\precnsim" | |
|
607 |
"\\risingdotseq" | |
|
608 |
"\\sharp" | |
|
609 |
"\\bullet" | |
|
610 |
"\\nexists" | |
|
611 |
"\\dagger" | |
|
612 |
"\\ddagger" | |
|
613 |
"\\not" | |
|
614 |
"\\top" | |
|
615 |
"\\natural" | |
|
616 |
"\\angle" | |
|
617 |
"\\measuredangle" | |
|
618 |
"\\backprime" | |
|
619 |
"\\bigstar" | |
|
620 |
"\\blacklozenge" | |
|
621 |
"\\lozenge" | |
|
622 |
"\\blacksquare" | |
|
623 |
"\\blacktriangle" | |
|
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
624 |
"\\blacktriangleleft" | |
625 |
"\\blacktriangleright" | |
|
|
1
by Jacques Distler
Initial commit. |
626 |
"\\blacktriangledown" | |
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
627 |
"\\ntriangleleft" | |
628 |
"\\ntriangleright" | |
|
629 |
"\\ntrianglelefteq" | |
|
630 |
"\\ntrianglerighteq" | |
|
631 |
"\\trianglelefteq" | |
|
632 |
"\\trianglerighteq" | |
|
633 |
"\\triangleq" | |
|
634 |
"\\vartriangleleft" | |
|
635 |
"\\vartriangleright" | |
|
|
1
by Jacques Distler
Initial commit. |
636 |
"\\forall" | |
637 |
"\\bigtriangleup" | |
|
638 |
"\\bigtriangledown" | |
|
639 |
"\\nprec" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return MOL;}
|
|
640 |
||
641 |
"\\aleph" | |
|
642 |
"\\beth" | |
|
643 |
"\\eth" | |
|
644 |
"\\ell" | |
|
645 |
"\\hbar" | |
|
646 |
"\\Im" | |
|
647 |
"\\imath" | |
|
648 |
"\\jmath" | |
|
649 |
"\\wp" | |
|
650 |
"\\Re" {yylval=itex2MML_copy2(yytext, ";"); if (yylval != itex2MML_empty_string) yylval[0]='&'; return MI;}
|
|
651 |
||
|
29
by Jacques Distler
itex2MML 1.3.5 |
652 |
"\\Perp" | |
653 |
"\\Vbar" {yylval=itex2MML_copy_string("⫫"); return MOL;}
|
|
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
654 |
"\\boxdot" {yylval=itex2MML_copy_string("⊡"); return MOL;}
|
|
1
by Jacques Distler
Initial commit. |
655 |
"\\Box" | |
656 |
"\\square" {yylval=itex2MML_copy_string("□"); return MOL;}
|
|
657 |
"\\emptyset" | |
|
658 |
"\\empty" {yylval=itex2MML_copy_string("∅"); return MI;}
|
|
659 |
"\\exists" {yylval=itex2MML_copy_string("∃"); return MOL;}
|
|
660 |
"\\circ" {yylval=itex2MML_copy_string("∘"); return MOL;}
|
|
661 |
"\\rhd" {yylval=itex2MML_copy_string("⊳"); return MOL;}
|
|
662 |
"\\lhd" {yylval=itex2MML_copy_string("⊲"); return MOL;}
|
|
663 |
"\\lll" {yylval=itex2MML_copy_string("⋘"); return MOL;}
|
|
664 |
"\\unrhd" {yylval=itex2MML_copy_string("⊵"); return MOL;}
|
|
665 |
"\\unlhd" {yylval=itex2MML_copy_string("⊴"); return MOL;}
|
|
666 |
"\\Del" | |
|
667 |
"\\nabla" {yylval=itex2MML_copy_string("∇"); return MOL;}
|
|
668 |
"\\sphericalangle" {yylval=itex2MML_copy_string("∢"); return MOL;}
|
|
669 |
||
670 |
"\\heartsuit" {yylval=itex2MML_copy_string("♡"); return MOL;}
|
|
671 |
"\\diamondsuit" {yylval=itex2MML_copy_string("♢"); return MOL;}
|
|
672 |
||
673 |
"\\partial" {yylval=itex2MML_copy_string("∂"); return MOL;}
|
|
674 |
||
675 |
"\\qed" {yylval=itex2MML_copy_string("▪"); return MO;}
|
|
676 |
||
677 |
"\\mod" {yylval=itex2MML_copy_string("mod"); return MOS;}
|
|
678 |
"\\pmod" {return PMOD;}
|
|
679 |
||
680 |
"\\bottom" {yylval=itex2MML_copy_string("⊥"); return MOL;}
|
|
681 |
||
682 |
"\\neg" {yylval=itex2MML_copy_string("¬"); return MOL;}
|
|
683 |
||
684 |
"\\neq" | |
|
685 |
"\\ne" {yylval=itex2MML_copy_string("≠"); return MOL;}
|
|
686 |
||
687 |
"\\shortmid" | |
|
688 |
"\\mid" {yylval=itex2MML_copy_string("∣"); return MOS;}
|
|
689 |
||
690 |
"\\int" | |
|
691 |
"\\integral" {yylval=itex2MML_copy_string("∫"); return MOL;}
|
|
692 |
||
693 |
"\\iint" | |
|
694 |
"\\doubleintegral" {yylval=itex2MML_copy_string("∬"); return MOL;}
|
|
695 |
||
696 |
"\\iiint" | |
|
697 |
"\\tripleintegral" {yylval=itex2MML_copy_string("∭"); return MOL;}
|
|
698 |
||
699 |
"\\iiiint" | |
|
700 |
"\\quadrupleintegral" {yylval=itex2MML_copy_string("⨌"); return MOL;}
|
|
701 |
||
702 |
"\\oint" | |
|
703 |
"\\conint" | |
|
704 |
"\\contourintegral" {yylval=itex2MML_copy_string("∮"); return MOL;}
|
|
705 |
||
706 |
"\\times" {yylval=itex2MML_copy_string("×"); return MOL;}
|
|
707 |
"\\star" {yylval=itex2MML_copy_string("⋆"); return MOL;}
|
|
708 |
"\\circleddash" | |
|
709 |
"\\odash" {yylval=itex2MML_copy_string("⊝"); return MOL;}
|
|
710 |
||
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
711 |
"\\intercal" {yylval=itex2MML_copy_string("⊺"); return MOL;}
|
712 |
"\\smallfrown" {yylval=itex2MML_copy_string("⌢"); return MOL;}
|
|
713 |
"\\smallsmile" {yylval=itex2MML_copy_string("⌣"); return MOL;}
|
|
714 |
||
|
1
by Jacques Distler
Initial commit. |
715 |
"\\boxminus" | |
716 |
"\\minusb" {yylval=itex2MML_copy_string("⊟"); return MOL;}
|
|
717 |
"\\boxplus" | |
|
718 |
"\\plusb" {yylval=itex2MML_copy_string("⊞"); return MOL;}
|
|
719 |
"\\boxtimes" | |
|
720 |
"\\timesb" {yylval=itex2MML_copy_string("⊠"); return MOL;}
|
|
721 |
||
722 |
"\\sum" {yylval=itex2MML_copy_string("∑"); return MOB;}
|
|
723 |
||
724 |
"\\prod" | |
|
725 |
"\\product" {yylval=itex2MML_copy_string("∏"); return MOB;}
|
|
726 |
||
727 |
"\\coprod" | |
|
728 |
"\\coproduct" {yylval=itex2MML_copy_string("∐"); return MOB;}
|
|
729 |
||
730 |
"\\otimes" {yylval=itex2MML_copy_string("⊗"); return MOL;}
|
|
731 |
"\\Otimes" {yylval=itex2MML_copy_string("⨷"); return MOL;}
|
|
732 |
"\\bigotimes" {yylval=itex2MML_copy_string("⨂"); return MOL;}
|
|
733 |
||
|
46
by Jacques Distler
itex2MML 1.3.22: New License |
734 |
"\\ominus" {yylval=itex2MML_copy_string("⊖"); return MOL;}
|
735 |
"\\oslash" {yylval=itex2MML_copy_string("⊘"); return MOL;}
|
|
|
1
by Jacques Distler
Initial commit. |
736 |
|
737 |
"\\oplus" {yylval=itex2MML_copy_string("⊕"); return MOL;}
|
|
738 |
"\\Oplus" | |
|
739 |
"\\bigoplus" {yylval=itex2MML_copy_string("⨁"); return MOB;}
|
|
740 |
||
741 |
"\\bigodot" {yylval=itex2MML_copy_string("⨀"); return MOB;}
|
|
742 |
"\\bigsqcup" {yylval=itex2MML_copy_string("⨆"); return MOB;}
|
|
|
64
by Jacques Distler
itex2MML 1.4.10 |
743 |
"\\bigsqcap" {yylval=itex2MML_copy_string("⨅"); return MOB;}
|
744 |
"\\biginterleave" {yylval=itex2MML_copy_string("⫼"); return MOB;}
|
|
|
20
by Jacques Distler
Typo Corrected (from Jason Blevins) |
745 |
"\\biguplus" {yylval=itex2MML_copy_string("⨄"); return MOB;}
|
|
1
by Jacques Distler
Initial commit. |
746 |
|
747 |
"\\wedge" {yylval=itex2MML_copy_string("∧"); return MOL;}
|
|
748 |
"\\Wedge" | |
|
749 |
"\\bigwedge" {yylval=itex2MML_copy_string("⋀"); return MOB;}
|
|
750 |
||
751 |
"\\Vee" | |
|
752 |
"\\bigvee" {yylval=itex2MML_copy_string("⋁"); return MOB;}
|
|
753 |
||
|
31
by Jacques Distler
itex2MML 1.3.7 |
754 |
"\\invamp" | |
755 |
"\\parr" {yylval=itex2MML_copy_string("⅋"); return MOL;}
|
|
756 |
||
|
1
by Jacques Distler
Initial commit. |
757 |
"\\frac" {return FRAC;}
|
758 |
"\\tfrac" {return TFRAC;}
|
|
759 |
||
760 |
"\\binom" {return BINOM;}
|
|
|
59
by Jacques Distler
itex2MML 1.4.5: Array Environment |
761 |
"\\tbinom" {return TBINOM;}
|
|
1
by Jacques Distler
Initial commit. |
762 |
|
763 |
"\\tensor" {return TENSOR;}
|
|
764 |
||
765 |
"\\multiscripts" {return MULTI;}
|
|
766 |
||
767 |
"\\overbrace" {return OVERBRACE;}
|
|
768 |
||
769 |
"\\underbrace" {return UNDERBRACE;}
|
|
770 |
||
|
34
by Jacques Distler
itex2MML 1.3.10 |
771 |
"\\underline" {return UNDERLINE;}
|
772 |
||
|
1
by Jacques Distler
Initial commit. |
773 |
"\\bar" {return BAR;}
|
774 |
"\\overline" | |
|
775 |
"\\closure" | |
|
776 |
"\\widebar" {return WIDEBAR;}
|
|
777 |
||
778 |
"\\vec" {return VEC;}
|
|
779 |
"\\widevec" {return WIDEVEC;}
|
|
780 |
||
781 |
"\\dot" {return DOT;}
|
|
782 |
"\\ddot" {return DDOT;}
|
|
|
38
by Jacques Distler
itex2MML 1.3.14: \dddot{} and \ddddot{} |
783 |
"\\dddot" {return DDDOT;}
|
784 |
"\\ddddot" {return DDDDOT;}
|
|
|
1
by Jacques Distler
Initial commit. |
785 |
|
786 |
"\\tilde" {return TILDE;}
|
|
787 |
"\\widetilde" {return WIDETILDE;}
|
|
788 |
||
789 |
||
790 |
"\\check" {return CHECK;}
|
|
791 |
"\\widecheck" {return WIDECHECK;}
|
|
792 |
||
793 |
||
794 |
"\\hat" {return HAT;}
|
|
795 |
"\\widehat" {return WIDEHAT;}
|
|
796 |
||
797 |
"\\underset" {return UNDER;}
|
|
798 |
||
799 |
"\\stackrel" | |
|
800 |
"\\overset" {return OVER;}
|
|
801 |
||
802 |
"\\over" {return TEXOVER;}
|
|
|
21
by Jacques Distler
\binom |
803 |
"\\atop" {return TEXATOP;}
|
|
1
by Jacques Distler
Initial commit. |
804 |
|
805 |
"\\underoverset" {return UNDEROVER;}
|
|
806 |
||
|
59
by Jacques Distler
itex2MML 1.4.5: Array Environment |
807 |
"\\sqrt" {BEGIN(OPTARG); return SQRT;}
|
|
1
by Jacques Distler
Initial commit. |
808 |
|
809 |
"\\root" {return ROOT;}
|
|
810 |
||
811 |
"\\space" {BEGIN(INT1); return SPACE;}
|
|
812 |
||
813 |
"\\text" {BEGIN(PLAINTEXT); return TEXTBOX;}
|
|
814 |
||
815 |
"\\statusline" {BEGIN(PLAINTEXT); return STATLINE;}
|
|
|
40
by Jacques Distler
itex2MML 1.3.16: \tooltip{}{} |
816 |
"\\tooltip" {BEGIN(PLAINTEXT); return TOOLTIP;}
|
|
1
by Jacques Distler
Initial commit. |
817 |
|
818 |
"\\toggle" {return TOGGLE;}
|
|
819 |
||
|
61
by Jacques Distler
itex2MML 1.4.7: \mathraisebox{voffset}[height][depth]{content} |
820 |
"\\mathraisebox" {BEGIN(RAISEBOX1); return RAISEBOX;}
|
821 |
||
|
1
by Jacques Distler
Initial commit. |
822 |
"\\fghilight" | |
823 |
"\\fghighlight" {BEGIN(ATTRIBUTELIST); return FGHIGHLIGHT;}
|
|
824 |
||
825 |
"\\bghilight" | |
|
826 |
"\\bghighlight" {BEGIN(ATTRIBUTELIST); return BGHIGHLIGHT;}
|
|
827 |
||
828 |
"\\color" {BEGIN(ATTRIBUTELIST); return COLOR;}
|
|
829 |
"\\bgcolor" {BEGIN(ATTRIBUTELIST); return BGCOLOR;}
|
|
830 |
||
|
62
by Jacques Distler
Fix bug in \displaystyle | \textstyle |
831 |
"\\displaystyle" {itex2MML_displaymode=1; itex2MML_rowposn=2; return DISPLAY;}
|
|
1
by Jacques Distler
Initial commit. |
832 |
|
|
62
by Jacques Distler
Fix bug in \displaystyle | \textstyle |
833 |
"\\textstyle" {itex2MML_displaymode=0; itex2MML_rowposn=2; return TEXTSTY;}
|
|
1
by Jacques Distler
Initial commit. |
834 |
|
835 |
"\\textsize" {return TEXTSIZE;}
|
|
836 |
||
837 |
"\\scriptsize" {return SCSIZE;}
|
|
838 |
||
839 |
"\\scriptscriptsize" {return SCSCSIZE;}
|
|
840 |
||
841 |
"\\mathit" {return ITALICS;}
|
|
842 |
||
|
10
by Jacques Distler
Add \boldsymbol, for Tony Pantev. |
843 |
"\\boldsymbol" | |
|
1
by Jacques Distler
Initial commit. |
844 |
"\\mathbf" {return BOLD;}
|
845 |
||
846 |
"\\mathrm" {BEGIN(ROMAN); return RM;}
|
|
847 |
||
848 |
"\\mathbb" {BEGIN(BBOLD); return BB;}
|
|
849 |
||
850 |
"\\mathfrak" | |
|
851 |
"\\mathfr" {BEGIN(FRAKTUR); return FRAK;}
|
|
852 |
||
|
16
by Jacques Distler
Slashed letters |
853 |
"\\slash" {return SLASHED;}
|
854 |
||
|
50
by Jacques Distler
itex2MML 1.3.25 |
855 |
"\\boxed" {return BOXED;}
|
856 |
||
|
1
by Jacques Distler
Initial commit. |
857 |
"\\mathcal" {BEGIN(CALLIGRAPHIC); return CAL;}
|
858 |
||
|
59
by Jacques Distler
itex2MML 1.4.5: Array Environment |
859 |
"\\begin" {itex2MML_env_start = 1; BEGIN(MATHENV); return BEGINENV;}
|
|
1
by Jacques Distler
Initial commit. |
860 |
"\\end" {BEGIN(MATHENV); return ENDENV;}
|
861 |
||
862 |
"\\substack" {return SUBSTACK;}
|
|
863 |
||
864 |
"\\array" {return ARRAY;}
|
|
865 |
||
866 |
"\\arrayopts" {return ARRAYOPTS;}
|
|
867 |
||
868 |
"\\colalign" {BEGIN(ATTRIBUTELIST); return COLALIGN;}
|
|
869 |
||
870 |
"\\collayout" {BEGIN(ATTRIBUTELIST); return COLLAYOUT;}
|
|
871 |
||
872 |
"\\rowalign" {BEGIN(ATTRIBUTELIST); return ROWALIGN;}
|
|
873 |
||
874 |
"\\align" {BEGIN(ATTRIBUTELIST); return ALIGN;}
|
|
875 |
||
876 |
"\\equalrows" {BEGIN(ATTRIBUTELIST); return EQROWS;}
|
|
877 |
||
878 |
"\\equalcols" {BEGIN(ATTRIBUTELIST); return EQCOLS;}
|
|
879 |
||
880 |
"\\rowlines" {BEGIN(ATTRIBUTELIST); return ROWLINES;}
|
|
881 |
||
882 |
"\\collines" {BEGIN(ATTRIBUTELIST); return COLLINES;}
|
|
883 |
||
884 |
"\\frame" {BEGIN(ATTRIBUTELIST); return FRAME;}
|
|
885 |
||
886 |
"\\padding" {BEGIN(ATTRIBUTELIST); return PADDING;}
|
|
887 |
||
888 |
"\\rowopts" {return ROWOPTS;}
|
|
889 |
||
890 |
"\\cellopts" {return CELLOPTS;}
|
|
891 |
||
892 |
"\\rowspan" {BEGIN(ATTRIBUTELIST); return ROWSPAN;}
|
|
893 |
||
894 |
"\\colspan" {BEGIN(ATTRIBUTELIST); return COLSPAN;}
|
|
895 |
||
896 |
||
897 |
"\\," | |
|
898 |
"\\thinspace" {return THINSPACE;}
|
|
899 |
||
900 |
"\\:" | |
|
901 |
"\\medspace" {return MEDSPACE;}
|
|
902 |
||
903 |
"\\;" | |
|
904 |
"\\thickspace" {return THICKSPACE;}
|
|
905 |
||
906 |
"\\quad" {return QUAD;}
|
|
907 |
"\\qquad" {return QQUAD;}
|
|
908 |
||
909 |
"\\!" | |
|
910 |
"\\negspace" {return NEGSPACE;}
|
|
911 |
||
912 |
"\\phantom" {return PHANTOM;}
|
|
913 |
||
914 |
"\\href" {BEGIN(PLAINTEXT); return HREF;}
|
|
915 |
||
|
39
by Jacques Distler
itex2MML 1.3.15: \mathrel and its cousins |
916 |
"\\operatorname" {BEGIN(PLAINTEXT); return OPERATORNAME;}
|
917 |
"\\mathop" {BEGIN(PLAINTEXT); return MATHOP;}
|
|
918 |
"\\mathbin" {BEGIN(PLAINTEXT); return MATHBIN;}
|
|
919 |
"\\mathrel" {BEGIN(PLAINTEXT); return MATHREL;}
|
|
|
60
by Jacques Distler
itex2MML 1.4.6 |
920 |
"\\itexnum" {BEGIN(PLAINTEXT); return ITEXNUM;}
|
|
1
by Jacques Distler
Initial commit. |
921 |
|
|
22
by Jacques Distler
SVG Environment |
922 |
"\\includegraphics"(\[[^\]]*\])?\{[^}]*\} ;
|
923 |
||
|
1
by Jacques Distler
Initial commit. |
924 |
"\\"[a-zA-Z]+ {yylval=itex2MML_copy_string(yytext+1); return MOP;}
|
925 |
||
926 |
"\&"[a-zA-Z_][a-zA-Z0-9_]*";" | |
|
927 |
"\&#"[0-9]+";" | |
|
928 |
"\&#x"[a-fA-F0-9]+";" {yylval=itex2MML_copy_string(yytext); return MI;}
|
|
929 |
||
930 |
"\n" itex2MML_lineno++; |
|
|
40
by Jacques Distler
itex2MML 1.3.16: \tooltip{}{} |
931 |
[\r\t ]+ ; |
|
1
by Jacques Distler
Initial commit. |
932 |
|
933 |
||
934 |
. {return UNKNOWNCHAR;}
|
|
935 |
} |
|
936 |
||
937 |
<ATTRIBUTELIST>"{"[ \t\n\r #a-zA-Z0-9.\-]*"}" {BEGIN(MATH); yylval=itex2MML_copy_string(yytext); if (yylval != itex2MML_empty_string) { yylval[0]='"'; yylval[yyleng-1]='"'; } return ATTRLIST;}
|
|
938 |
||
|
54
by Jacques Distler
itex2MML 1.4.0: Extensible Arrows |
939 |
<OPTARG>{
|
|
58
by Jacques Distler
Nested Extensible Arrows |
940 |
"[" {if(itex2MML_optarg_ind < itex2MML_optarg_depth - 1 && itex2MML_inoptarg[itex2MML_optarg_ind] !=1 ){itex2MML_optarg_ind++; itex2MML_inoptarg[itex2MML_optarg_ind]=1;}; BEGIN(MATH); return OPTARGOPEN;}
|
|
63
by Jacques Distler
itex2MML 1.4.9: improved optarg parsing |
941 |
[\n\r\t ]+ ; |
|
54
by Jacques Distler
itex2MML 1.4.0: Extensible Arrows |
942 |
. {BEGIN(MATH); unput(yytext[0]);}
|
943 |
} |
|
944 |
||
|
61
by Jacques Distler
itex2MML 1.4.7: \mathraisebox{voffset}[height][depth]{content} |
945 |
<RAISEBOX1>{
|
946 |
\{[\n\r\t ]*- {BEGIN(RAISEBOX2); return NEG;}
|
|
947 |
\{[\n\r\t ]* {BEGIN(RAISEBOX2);}
|
|
948 |
} |
|
949 |
||
950 |
<RAISEBOX2>{
|
|
951 |
[^\}]*?\} {yylval=itex2MML_copy_string(yytext); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-1]='\0'; BEGIN(TEXTOPTARG1); return TEXTSTRING;}
|
|
952 |
} |
|
953 |
||
954 |
||
955 |
<TEXTOPTARG1>{
|
|
956 |
\[[^\]]*?\] {yylval=itex2MML_copy_string(yytext+1); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-2]='\0'; BEGIN(TEXTOPTARG); return TEXTSTRING;}
|
|
957 |
. {BEGIN(MATH); unput(yytext[0]);}
|
|
958 |
} |
|
959 |
||
960 |
<TEXTOPTARG>{
|
|
961 |
\[[^\]]*?\] {yylval=itex2MML_copy_string(yytext+1); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-2]='\0'; BEGIN(MATH); return TEXTSTRING;}
|
|
962 |
. {BEGIN(MATH); unput(yytext[0]);}
|
|
963 |
} |
|
964 |
||
|
1
by Jacques Distler
Initial commit. |
965 |
<MATHENV>{
|
|
59
by Jacques Distler
itex2MML 1.4.5: Array Environment |
966 |
"\{matrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return MATRIX;}
|
967 |
"\{pmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return PMATRIX;}
|
|
968 |
"\{bmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return BMATRIX;}
|
|
969 |
"\{Bmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return BBMATRIX;}
|
|
970 |
"\{vmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return VMATRIX;}
|
|
971 |
"\{Vmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return VVMATRIX;}
|
|
972 |
"\{smallmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return SMALLMATRIX;}
|
|
973 |
"\{cases\}" {itex2MML_env_start = 0; BEGIN(MATH); return CASES;}
|
|
974 |
"\{aligned\}" {itex2MML_env_start = 0; BEGIN(MATH); return ALIGNED;}
|
|
975 |
"\{gathered\}" {itex2MML_env_start = 0; BEGIN(MATH); return GATHERED;}
|
|
976 |
"\{split\}" {itex2MML_env_start = 0; BEGIN(MATH); return ALIGNED;}
|
|
977 |
"\{array\}" {if (itex2MML_env_start == 1) BEGIN(ARRAYOPTIONS); else BEGIN(MATH); return ARRAY;}
|
|
978 |
"\{svg\}" {itex2MML_env_start = 0; BEGIN(SVGENV); return SVG;}
|
|
979 |
} |
|
980 |
||
981 |
<ARRAYOPTIONS>{
|
|
982 |
"[t]" {yylval=itex2MML_copy_string("axis 1"); return ARRAYALIGN;}
|
|
983 |
"[c]" {yylval=itex2MML_copy_string("center"); return ARRAYALIGN;}
|
|
984 |
"[b]" {yylval=itex2MML_copy_string("axis -1"); return ARRAYALIGN;}
|
|
985 |
"\{" {BEGIN(COLOPTS); return ST;}
|
|
986 |
[\t\n\r ]+ ; |
|
987 |
} |
|
988 |
||
989 |
<COLOPTS>{
|
|
990 |
"\}" {itex2MML_env_start = 0; BEGIN(MATH); return END;}
|
|
991 |
"c" {yylval=itex2MML_copy_string("center"); return COLUMNALIGN;}
|
|
992 |
"l" {yylval=itex2MML_copy_string("left"); return COLUMNALIGN;}
|
|
993 |
"r" {yylval=itex2MML_copy_string("right"); return COLUMNALIGN;}
|
|
994 |
[\t\n\r ]+ ; |
|
|
22
by Jacques Distler
SVG Environment |
995 |
} |
996 |
||
997 |
<SVGENV>{
|
|
|
48
by Jacques Distler
Fix svg Environment |
998 |
"\\end\{svg" {yylval=itex2MML_copy_string(yytext); yylval[yyleng-8]=0; BEGIN(SVGEND); return XMLSTRING;}
|
999 |
(.|\n) {yymore();}
|
|
1000 |
} |
|
1001 |
||
1002 |
<SVGEND>{
|
|
1003 |
"\}" {BEGIN(MATH); return ENDSVG;}
|
|
|
1
by Jacques Distler
Initial commit. |
1004 |
} |
1005 |
||
1006 |
<ROMAN>{
|
|
1007 |
"\{" {return ST;}
|
|
1008 |
"\}" {BEGIN(MATH); return END;}
|
|
1009 |
[a-zA-Z] {yylval=itex2MML_copy_string(yytext); return RMCHAR;}
|
|
1010 |
[\t\n\r ]+ ; |
|
1011 |
. {return yytext[0];}
|
|
1012 |
} |
|
1013 |
||
1014 |
<BBOLD>{
|
|
1015 |
"\{" {return ST;}
|
|
1016 |
"\}" {BEGIN(MATH); return END;}
|
|
1017 |
[a-z] {yylval=itex2MML_copy_string(yytext); return BBLOWERCHAR;}
|
|
1018 |
[A-Z] {yylval=itex2MML_copy_string(yytext); return BBUPPERCHAR;}
|
|
|
32
by Jacques Distler
itex2MML 1.38: Support for Blackboard Bold Digits |
1019 |
[0-9] {yylval=itex2MML_copy_string(yytext); return BBDIGIT;}
|
|
1
by Jacques Distler
Initial commit. |
1020 |
[\t\n\r ]+ ; |
1021 |
. {return yytext[0];}
|
|
1022 |
} |
|
1023 |
||
1024 |
<CALLIGRAPHIC>{
|
|
1025 |
"\{" {return ST;}
|
|
1026 |
"\}" {BEGIN(MATH); return END;}
|
|
1027 |
[a-zA-Z] {yylval=itex2MML_copy_string(yytext); return CALCHAR;}
|
|
1028 |
[\t\n\r ]+ ; |
|
1029 |
. {return yytext[0];}
|
|
1030 |
} |
|
1031 |
||
1032 |
<FRAKTUR>{
|
|
1033 |
"\{" {return ST;}
|
|
1034 |
"\}" {BEGIN(MATH); return END;}
|
|
1035 |
[a-zA-Z] {yylval=itex2MML_copy_string(yytext); return FRAKCHAR;}
|
|
1036 |
[\t\n\r ]+ ; |
|
1037 |
. {return yytext[0];}
|
|
1038 |
} |
|
1039 |
||
1040 |
<PLAINTEXT>{
|
|
|
39
by Jacques Distler
itex2MML 1.3.15: \mathrel and its cousins |
1041 |
\{[^\}]*?\} {yylval=itex2MML_copy_string(yytext+1); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-2]='\0'; BEGIN(MATH); return TEXTSTRING;}
|
|
1
by Jacques Distler
Initial commit. |
1042 |
} |
1043 |
||
1044 |
<INT1>{
|
|
1045 |
"\{" {return ST;}
|
|
1046 |
"\}" {BEGIN(INT2); return END;}
|
|
1047 |
[0-9]+ {yylval=itex2MML_copy_string_extra(yytext, 1); if (yyleng && (yylval != itex2MML_empty_string)) { yylval[yyleng]=yylval[yyleng-1]; yylval[yyleng-1]='.'; yylval[yyleng+1]='\0'; } return INTONE;}
|
|
1048 |
[\t\n\r ]+ ; |
|
1049 |
. {return yytext[0];}
|
|
1050 |
} |
|
1051 |
||
1052 |
<INT2>{
|
|
1053 |
"\{" {return ST;}
|
|
1054 |
"\}" {BEGIN(INT3); return END;}
|
|
1055 |
[0-9]+ {yylval=itex2MML_copy_string_extra(yytext, 1); if (yyleng && (yylval != itex2MML_empty_string)) { yylval[yyleng]=yylval[yyleng-1]; yylval[yyleng-1]='.'; yylval[yyleng+1]='\0'; } return INTTWO;}
|
|
1056 |
[\t\n\r ]+ ; |
|
1057 |
. {return yytext[0];}
|
|
1058 |
} |
|
1059 |
||
1060 |
<INT3>{
|
|
1061 |
"\{" {return ST;}
|
|
1062 |
"\}" {BEGIN(MATH); return END;}
|
|
1063 |
[0-9]+ {yylval=itex2MML_copy_string_extra(yytext, 1); if (yyleng && (yylval != itex2MML_empty_string)) { yylval[yyleng]=yylval[yyleng-1]; yylval[yyleng-1]='.'; yylval[yyleng+1]='\0'; } return INTTHREE;}
|
|
1064 |
[\t\n\r ]+ ; |
|
1065 |
. {return yytext[0];}
|
|
1066 |
} |
|
1067 |
||
1068 |
||
1069 |
||
1070 |
%% |
|
1071 |
||
1072 |
void itex2MML_restart () |
|
1073 |
{
|
|
1074 |
BEGIN(INITIAL); |
|
1075 |
} |
|
1076 |
||
1077 |
static const char * s_itex2MML_buffer = 0; |
|
1078 |
static unsigned long s_itex2MML_length = 0; |
|
1079 |
||
1080 |
void itex2MML_setup (const char * buffer, unsigned long length) |
|
1081 |
{
|
|
1082 |
yy_flush_buffer( YY_CURRENT_BUFFER ); |
|
1083 |
||
1084 |
s_itex2MML_buffer = buffer; |
|
1085 |
s_itex2MML_length = length; |
|
1086 |
} |
|
1087 |
||
1088 |
static int s_itex2MML_read (char * buffer, int max_size) |
|
1089 |
{
|
|
1090 |
int result = 0; |
|
1091 |
||
1092 |
if (max_size < s_itex2MML_length) |
|
1093 |
{
|
|
1094 |
result = max_size; |
|
1095 |
||
1096 |
memcpy (buffer, s_itex2MML_buffer, max_size); |
|
1097 |
||
1098 |
s_itex2MML_buffer += max_size; |
|
1099 |
s_itex2MML_length -= max_size; |
|
1100 |
} |
|
1101 |
else |
|
1102 |
{
|
|
1103 |
result = s_itex2MML_length; |
|
1104 |
||
1105 |
memcpy (buffer, s_itex2MML_buffer, s_itex2MML_length); |
|
1106 |
||
1107 |
s_itex2MML_buffer = 0; |
|
1108 |
s_itex2MML_length = 0; |
|
1109 |
} |
|
1110 |
return result; |
|
1111 |
} |