/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: 2011-09-07 20:15:12 UTC
  • Revision ID: distler@golem.ph.utexas.edu-20110907201512-hgpiwl2c1p7y0bl4
Tags: 1.4.7
itex2MML 1.4.7: \mathraisebox{voffset}[height][depth]{content}

Make use of some new features of MathML3.
(Requires Firefox 7)

Show diffs side-by-side

added added

removed removed

1
 
/*             itex2MML 1.4.6
2
 
 *   itex2MML.y last modified 7/7/2011
 
1
/*             itex2MML 1.4.7
 
2
 *   itex2MML.y last modified 9/7/2011
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 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 ITEXNUM
 
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 ITEXNUM RAISEBOX NEG
281
281
 
282
282
%%
283
283
 
529
529
| binom
530
530
| msqrt 
531
531
| mroot
 
532
| raisebox
532
533
| munder
533
534
| mover
534
535
| bar
1333
1334
  itex2MML_free_string($3);
1334
1335
};
1335
1336
 
 
1337
raisebox: RAISEBOX TEXTSTRING TEXTSTRING TEXTSTRING closedTerm {
 
1338
  char * s1 = itex2MML_copy3("<mpadded voffset='", $2, "' height='");
 
1339
  char * s2 = itex2MML_copy3(s1, $3, "' depth='");
 
1340
  char * s3 = itex2MML_copy3(s2, $4, "'>");
 
1341
  $$ = itex2MML_copy3(s3, $5, "</mpadded>");
 
1342
  itex2MML_free_string(s1);
 
1343
  itex2MML_free_string(s2);
 
1344
  itex2MML_free_string(s3);
 
1345
  itex2MML_free_string($2);
 
1346
  itex2MML_free_string($3);
 
1347
  itex2MML_free_string($4);
 
1348
  itex2MML_free_string($5);
 
1349
}
 
1350
| RAISEBOX NEG TEXTSTRING TEXTSTRING TEXTSTRING closedTerm {
 
1351
  char * s1 = itex2MML_copy3("<mpadded voffset='-", $3, "' height='");
 
1352
  char * s2 = itex2MML_copy3(s1, $4, "' depth='");
 
1353
  char * s3 = itex2MML_copy3(s2, $5, "'>");
 
1354
  $$ = itex2MML_copy3(s3, $6, "</mpadded>");
 
1355
  itex2MML_free_string(s1);
 
1356
  itex2MML_free_string(s2);
 
1357
  itex2MML_free_string(s3);
 
1358
  itex2MML_free_string($3);
 
1359
  itex2MML_free_string($4);
 
1360
  itex2MML_free_string($5);
 
1361
  itex2MML_free_string($6);
 
1362
}
 
1363
| RAISEBOX TEXTSTRING TEXTSTRING closedTerm {
 
1364
  char * s1 = itex2MML_copy3("<mpadded voffset='", $2, "' height='");
 
1365
  char * s2 = itex2MML_copy3(s1, $3, "' depth='depth'>");
 
1366
  $$ = itex2MML_copy3(s2, $4, "</mpadded>");
 
1367
  itex2MML_free_string(s1);
 
1368
  itex2MML_free_string(s2);
 
1369
  itex2MML_free_string($2);
 
1370
  itex2MML_free_string($3);
 
1371
  itex2MML_free_string($4);
 
1372
}
 
1373
| RAISEBOX NEG TEXTSTRING TEXTSTRING closedTerm {
 
1374
  char * s1 = itex2MML_copy3("<mpadded voffset='-", $3, "' height='");
 
1375
  char * s2 = itex2MML_copy3(s1, $4, "' depth='+");
 
1376
  char * s3 = itex2MML_copy3(s2, $3, "'>");
 
1377
  $$ = itex2MML_copy3(s3, $5, "</mpadded>");
 
1378
  itex2MML_free_string(s1);
 
1379
  itex2MML_free_string(s2);
 
1380
  itex2MML_free_string(s3);
 
1381
  itex2MML_free_string($3);
 
1382
  itex2MML_free_string($4);
 
1383
  itex2MML_free_string($5);
 
1384
}
 
1385
| RAISEBOX TEXTSTRING closedTerm {
 
1386
  char * s1 = itex2MML_copy3("<mpadded voffset='", $2, "' height='+");
 
1387
  char * s2 = itex2MML_copy3(s1, $2, "' depth='depth'>");
 
1388
  $$ = itex2MML_copy3(s2, $3, "</mpadded>");
 
1389
  itex2MML_free_string(s1);
 
1390
  itex2MML_free_string(s2);
 
1391
  itex2MML_free_string($2);
 
1392
  itex2MML_free_string($3);
 
1393
}
 
1394
| RAISEBOX NEG TEXTSTRING closedTerm {
 
1395
  char * s1 = itex2MML_copy3("<mpadded voffset='-", $3, "' height='0pt' depth='+");
 
1396
  char * s2 = itex2MML_copy3(s1, $3, "'>");
 
1397
  $$ = itex2MML_copy3(s2, $4, "</mpadded>");
 
1398
  itex2MML_free_string(s1);
 
1399
  itex2MML_free_string(s2);
 
1400
  itex2MML_free_string($3);
 
1401
  itex2MML_free_string($4);
 
1402
};
 
1403
 
1336
1404
munder: XARROW OPTARGOPEN compoundTermList OPTARGCLOSE EMPTYMROW {
1337
1405
  char * s1 = itex2MML_copy3("<munder><mo>", $1, "</mo><mrow>");
1338
1406
  $$ = itex2MML_copy3(s1, $3, "</mrow></munder>");