279
279
%left TEXOVER TEXATOP
280
%token CHAR STARTMATH STARTDMATH ENDMATH MI MIB MN MO SUP SUB MROWOPEN MROWCLOSE LEFT RIGHT BIG BBIG BIGG BBIGG BIGL BBIGL BIGGL BBIGGL FRAC TFRAC OPERATORNAME MATHOP MATHBIN MATHREL MOP MOL MOLL MOF MOR PERIODDELIM OTHERDELIM LEFTDELIM RIGHTDELIM MOS MOB SQRT ROOT BINOM UNDER OVER OVERBRACE UNDERLINE UNDERBRACE UNDEROVER TENSOR MULTI ARRAY COLSEP ROWSEP ARRAYOPTS COLLAYOUT COLALIGN ROWALIGN ALIGN EQROWS EQCOLS ROWLINES COLLINES FRAME PADDING ATTRLIST ITALICS BOLD BOXED SLASHED RM BB ST END BBLOWERCHAR BBUPPERCHAR BBDIGIT CALCHAR FRAKCHAR CAL FRAK CLAP LLAP RLAP ROWOPTS TEXTSIZE SCSIZE SCSCSIZE DISPLAY TEXTSTY TEXTBOX TEXTSTRING XMLSTRING CELLOPTS ROWSPAN COLSPAN THINSPACE MEDSPACE THICKSPACE QUAD QQUAD NEGSPACE PHANTOM HREF UNKNOWNCHAR EMPTYMROW STATLINE TOOLTIP TOGGLE FGHIGHLIGHT BGHIGHLIGHT SPACE INTONE INTTWO INTTHREE BAR WIDEBAR VEC WIDEVEC HAT WIDEHAT CHECK WIDECHECK TILDE WIDETILDE DOT DDOT DDDOT DDDDOT UNARYMINUS UNARYPLUS BEGINENV ENDENV MATRIX PMATRIX BMATRIX BBMATRIX VMATRIX VVMATRIX SVG ENDSVG SMALLMATRIX CASES ALIGNED GATHERED SUBSTACK PMOD RMCHAR COLOR BGCOLOR XARROW OPTARGOPEN OPTARGCLOSE
280
%token CHAR STARTMATH STARTDMATH ENDMATH MI MIB MN MO SUP SUB MROWOPEN MROWCLOSE LEFT RIGHT BIG BBIG BIGG BBIGG BIGL BBIGL BIGGL BBIGGL FRAC TFRAC OPERATORNAME MATHOP MATHBIN MATHREL MOP MOL MOLL MOF MOR PERIODDELIM OTHERDELIM LEFTDELIM RIGHTDELIM MOS MOB SQRT ROOT BINOM TBINOM UNDER OVER OVERBRACE UNDERLINE UNDERBRACE UNDEROVER TENSOR MULTI ARRAYALIGN COLUMNALIGN ARRAY COLSEP ROWSEP ARRAYOPTS COLLAYOUT COLALIGN ROWALIGN ALIGN EQROWS EQCOLS ROWLINES COLLINES FRAME PADDING ATTRLIST ITALICS BOLD BOXED SLASHED RM BB ST END BBLOWERCHAR BBUPPERCHAR BBDIGIT CALCHAR FRAKCHAR CAL FRAK CLAP LLAP RLAP ROWOPTS TEXTSIZE SCSIZE SCSCSIZE DISPLAY TEXTSTY TEXTBOX TEXTSTRING XMLSTRING CELLOPTS ROWSPAN COLSPAN THINSPACE MEDSPACE THICKSPACE QUAD QQUAD NEGSPACE PHANTOM HREF UNKNOWNCHAR EMPTYMROW STATLINE TOOLTIP TOGGLE FGHIGHLIGHT BGHIGHLIGHT SPACE INTONE INTTWO INTTHREE BAR WIDEBAR VEC WIDEVEC HAT WIDEHAT CHECK WIDECHECK TILDE WIDETILDE DOT DDOT DDDOT DDDDOT UNARYMINUS UNARYPLUS BEGINENV ENDENV MATRIX PMATRIX BMATRIX BBMATRIX VMATRIX VVMATRIX SVG ENDSVG SMALLMATRIX CASES ALIGNED GATHERED SUBSTACK PMOD RMCHAR COLOR BGCOLOR XARROW OPTARGOPEN OPTARGCLOSE
1217
1217
itex2MML_free_string(s1);
1218
1218
itex2MML_free_string($2);
1219
1219
itex2MML_free_string($3);
1221
| TBINOM closedTerm closedTerm {
1222
char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mstyle displaystyle=\"false\"><mfrac linethickness=\"0\">", $2, $3);
1223
$$ = itex2MML_copy2(s1, "</mfrac></mstyle><mo>)</mo></mrow>");
1224
itex2MML_free_string(s1);
1225
itex2MML_free_string($2);
1226
itex2MML_free_string($3);
1222
1229
munderbrace: UNDERBRACE closedTerm {
1304
1311
itex2MML_free_string($2);
1307
mroot: ROOT closedTerm closedTerm {
1314
mroot: SQRT OPTARGOPEN compoundTermList OPTARGCLOSE closedTerm {
1315
char * s1 = itex2MML_copy3("<mroot>", $5, $3);
1316
$$ = itex2MML_copy2(s1, "</mroot>");
1317
itex2MML_free_string(s1);
1318
itex2MML_free_string($3);
1319
itex2MML_free_string($5);
1321
| ROOT closedTerm closedTerm {
1308
1322
char * s1 = itex2MML_copy3("<mroot>", $3, $2);
1309
1323
$$ = itex2MML_copy2(s1, "</mroot>");
1310
1324
itex2MML_free_string(s1);
1405
1419
$$ = itex2MML_copy3("<mrow><mtable columnalign=\"right left right left right left right left right left\" columnspacing=\"0em\">", $3, "</mtable></mrow>");
1406
1420
itex2MML_free_string($3);
1422
| BEGINENV ARRAY ARRAYALIGN ST columnAlignList END tableRowList ENDENV ARRAY {
1423
char * s1 = itex2MML_copy3("<mtable rowspacing=\"0.5ex\" align=\"", $3, "\" columnalign=\"");
1424
char * s2 = itex2MML_copy3(s1, $5, "\">");
1425
$$ = itex2MML_copy3(s2, $7, "</mtable>");
1426
itex2MML_free_string(s1);
1427
itex2MML_free_string(s2);
1428
itex2MML_free_string($3);
1429
itex2MML_free_string($5);
1430
itex2MML_free_string($7);
1432
| BEGINENV ARRAY ST columnAlignList END tableRowList ENDENV ARRAY {
1433
char * s1 = itex2MML_copy3("<mtable rowspacing=\"0.5ex\" columnalign=\"", $4, "\">");
1434
$$ = itex2MML_copy3(s1, $6, "</mtable>");
1435
itex2MML_free_string(s1);
1436
itex2MML_free_string($4);
1437
itex2MML_free_string($6);
1408
1439
| BEGINENV SVG XMLSTRING ENDSVG {
1409
1440
$$ = itex2MML_copy3("<semantics><annotation-xml encoding=\"SVG1.1\">", $3, "</annotation-xml></semantics>");
1410
1441
itex2MML_free_string($3);
1413
1444
$$ = itex2MML_copy_string(" ");
1447
columnAlignList: columnAlignList COLUMNALIGN {
1448
$$ = itex2MML_copy3($1, " ", $2);
1449
itex2MML_free_string($1);
1450
itex2MML_free_string($2);
1453
$$ = itex2MML_copy_string($1);
1454
itex2MML_free_string($1);
1416
1457
substack: SUBSTACK MROWOPEN tableRowList MROWCLOSE {
1417
1458
$$ = itex2MML_copy3("<mrow><mtable columnalign=\"center\" rowspacing=\"0.5ex\">", $3, "</mtable></mrow>");
1418
1459
itex2MML_free_string($3);