/itexToMML

To download this project, use:
bzr branch http://golem.ph.utexas.edu/~distler/code/itexToMML/

« back to all changes in this revision

Viewing changes to itex-src/itex2MML.y

  • Committer: Jacques Distler
  • Date: 2010-10-03 15:14:30 UTC
  • Revision ID: distler@golem.ph.utexas.edu-20101003151430-63lclcdosj2qb0ot
Tags: 1.4.5
itex2MML 1.4.5: Array Environment

Support for \begin{array}[b]{clrc} .... \end{array}
-- the standard LaTeX array environment, with an
optional argument giving the alignment of the array
with respect to the current equation axis ('b', 't'
or 'c', defaulting to 'c'), and a mandatory argument
giving the alignment of the columns.
\begin{array}{cc...c} ...\end{array} is equivalent
to \begin{matrix} ... \end{matrix}.

Support for an optional argument on \sqrt. The
(LaTeX standard) \sqrt[3]{a} is equivalent to the
(itex) \root{3}{a}.

Support for \tbinom{}{}.

Show diffs side-by-side

added added

removed removed

1
 
/*             itex2MML 1.4.3
2
 
 *   itex2MML.y last modified 9/29/2010
 
1
/*             itex2MML 1.4.5
 
2
 *   itex2MML.y last modified 10/2/2010
3
3
 */
4
4
 
5
5
%{
277
277
%}
278
278
 
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
281
281
 
282
282
%%
283
283
 
1217
1217
  itex2MML_free_string(s1);
1218
1218
  itex2MML_free_string($2);
1219
1219
  itex2MML_free_string($3);
 
1220
}
 
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);
1220
1227
};
1221
1228
 
1222
1229
munderbrace: UNDERBRACE closedTerm {
1304
1311
  itex2MML_free_string($2);
1305
1312
};
1306
1313
 
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);
 
1320
}
 
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);
1407
1421
}
 
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);
 
1431
}
 
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);
 
1438
}
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(" ");
1414
1445
};
1415
1446
 
 
1447
columnAlignList: columnAlignList COLUMNALIGN {
 
1448
  $$ = itex2MML_copy3($1, " ", $2);
 
1449
  itex2MML_free_string($1);
 
1450
  itex2MML_free_string($2);
 
1451
}
 
1452
| COLUMNALIGN {
 
1453
  $$ = itex2MML_copy_string($1);
 
1454
  itex2MML_free_string($1);
 
1455
};
 
1456
 
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);