2
* itex2MML.l last modified 9/30/2010
2
* itex2MML.l last modified 10/2/2010
8
%x MATH ATTRIBUTELIST BBOLD FRAKTUR CALLIGRAPHIC ROMAN PLAINTEXT INT1 INT2 INT3 MATHENV SVGENV SVGEND OPTARG
8
%x MATH ATTRIBUTELIST BBOLD FRAKTUR CALLIGRAPHIC ROMAN PLAINTEXT INT1 INT2 INT3 MATHENV SVGENV SVGEND OPTARG ARRAYOPTIONS COLOPTS
10
10
#include <string.h>
27
27
int itex2MML_lineno = 1;
28
28
int itex2MML_inoptarg[itex2MML_optarg_depth];
29
29
int itex2MML_optarg_ind = 0;
30
int itex2MML_env_start = 0;
31
32
int itex2MML_rowposn = 0;
32
33
int itex2MML_displaymode = 0;
57
58
"{"[\t\r\n ]*"}" return EMPTYMROW;
58
"{" {itex2MML_rowposn = 2; itex2MML_inoptarg[itex2MML_optarg_ind] = itex2MML_inoptarg[itex2MML_optarg_ind]*2; return MROWOPEN;}
59
"}" {itex2MML_inoptarg[itex2MML_optarg_ind] = itex2MML_inoptarg[itex2MML_optarg_ind]/2; return MROWCLOSE;}
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;}
61
62
"\\left" itex2MML_rowposn=2; return LEFT;
62
63
"\\right" return RIGHT;
849
851
"\\mathcal" {BEGIN(CALLIGRAPHIC); return CAL;}
851
"\\begin" {BEGIN(MATHENV); return BEGINENV;}
853
"\\begin" {itex2MML_env_start = 1; BEGIN(MATHENV); return BEGINENV;}
852
854
"\\end" {BEGIN(MATHENV); return ENDENV;}
854
856
"\\substack" {return SUBSTACK;}
936
"\{matrix\}" {BEGIN(MATH); return MATRIX;}
937
"\{pmatrix\}" {BEGIN(MATH); return PMATRIX;}
938
"\{bmatrix\}" {BEGIN(MATH); return BMATRIX;}
939
"\{Bmatrix\}" {BEGIN(MATH); return BBMATRIX;}
940
"\{vmatrix\}" {BEGIN(MATH); return VMATRIX;}
941
"\{Vmatrix\}" {BEGIN(MATH); return VVMATRIX;}
942
"\{smallmatrix\}" {BEGIN(MATH); return SMALLMATRIX;}
943
"\{cases\}" {BEGIN(MATH); return CASES;}
944
"\{aligned\}" {BEGIN(MATH); return ALIGNED;}
945
"\{gathered\}" {BEGIN(MATH); return GATHERED;}
946
"\{split\}" {BEGIN(MATH); return ALIGNED;}
947
"\{svg\}" {BEGIN(SVGENV); return SVG;}
938
"\{matrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return MATRIX;}
939
"\{pmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return PMATRIX;}
940
"\{bmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return BMATRIX;}
941
"\{Bmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return BBMATRIX;}
942
"\{vmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return VMATRIX;}
943
"\{Vmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return VVMATRIX;}
944
"\{smallmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return SMALLMATRIX;}
945
"\{cases\}" {itex2MML_env_start = 0; BEGIN(MATH); return CASES;}
946
"\{aligned\}" {itex2MML_env_start = 0; BEGIN(MATH); return ALIGNED;}
947
"\{gathered\}" {itex2MML_env_start = 0; BEGIN(MATH); return GATHERED;}
948
"\{split\}" {itex2MML_env_start = 0; BEGIN(MATH); return ALIGNED;}
949
"\{array\}" {if (itex2MML_env_start == 1) BEGIN(ARRAYOPTIONS); else BEGIN(MATH); return ARRAY;}
950
"\{svg\}" {itex2MML_env_start = 0; BEGIN(SVGENV); return SVG;}
954
"[t]" {yylval=itex2MML_copy_string("axis 1"); return ARRAYALIGN;}
955
"[c]" {yylval=itex2MML_copy_string("center"); return ARRAYALIGN;}
956
"[b]" {yylval=itex2MML_copy_string("axis -1"); return ARRAYALIGN;}
957
"\{" {BEGIN(COLOPTS); return ST;}
962
"\}" {itex2MML_env_start = 0; BEGIN(MATH); return END;}
963
"c" {yylval=itex2MML_copy_string("center"); return COLUMNALIGN;}
964
"l" {yylval=itex2MML_copy_string("left"); return COLUMNALIGN;}
965
"r" {yylval=itex2MML_copy_string("right"); return COLUMNALIGN;}