/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: 2014-01-05 08:47:22 UTC
  • Revision ID: distler@golem.ph.utexas.edu-20140105084722-ml82ec7py0v5ousi
itex2MML 1.5.1b1

New commands:
  \negmedspace
  \negthickspace
  \mathsf{}

Bugs fixed
   \pmod{} MathML output corrected
    | = \vert
      and      emit the "correct" unicode characters now. 
   \| = \Vert

Show diffs side-by-side

added added

removed removed

1
 
/*             itex2MML 1.5.0
2
 
 *   itex2MML.y last modified 12/8/2013
 
1
/*             itex2MML 1.5.1
 
2
 *   itex2MML.y last modified 1/5/2014
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 RAISEBOX NEG
 
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 SANS 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 NEGMEDSPACE NEGTHICKSPACE 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
 
561
561
| scriptsize
562
562
| scriptscriptsize
563
563
| italics
 
564
| sans
564
565
| bold
565
566
| roman
566
567
| rmchars
577
578
| quad
578
579
| qquad
579
580
| negspace
 
581
| negmedspace
 
582
| negthickspace
580
583
| phantom
581
584
| href
582
585
| statusline
840
843
space: SPACE ST INTONE END ST INTTWO END ST INTTHREE END {
841
844
  char * s1 = itex2MML_copy3("<mspace height=\"", $3, "ex\" depth=\"");
842
845
  char * s2 = itex2MML_copy3($6, "ex\" width=\"", $9);
843
 
  $$ = itex2MML_copy3(s1, s2, "em\"></mspace>");
 
846
  $$ = itex2MML_copy3(s1, s2, "em\"/>");
844
847
  itex2MML_free_string(s1);
845
848
  itex2MML_free_string(s2);
846
849
  itex2MML_free_string($3);
953
956
  itex2MML_free_string($2);
954
957
};
955
958
 
 
959
sans: SANS closedTerm {
 
960
  $$ = itex2MML_copy3("<mstyle mathvariant=\"sans-serif\">", $2, "</mstyle>");
 
961
  itex2MML_free_string($2);
 
962
};
 
963
 
956
964
slashed: SLASHED closedTerm {
957
965
  $$ = itex2MML_copy3("<menclose notation=\"updiagonalstrike\">", $2, "</menclose>");
958
966
  itex2MML_free_string($2);
1055
1063
};
1056
1064
 
1057
1065
thinspace: THINSPACE {
1058
 
  $$ = itex2MML_copy_string("<mspace width=\"thinmathspace\"></mspace>");
 
1066
  $$ = itex2MML_copy_string("<mspace width=\"thinmathspace\"/>");
1059
1067
};
1060
1068
 
1061
1069
medspace: MEDSPACE {
1062
 
  $$ = itex2MML_copy_string("<mspace width=\"mediummathspace\"></mspace>");
 
1070
  $$ = itex2MML_copy_string("<mspace width=\"mediummathspace\"/>");
1063
1071
};
1064
1072
 
1065
1073
thickspace: THICKSPACE {
1066
 
  $$ = itex2MML_copy_string("<mspace width=\"thickmathspace\"></mspace>");
 
1074
  $$ = itex2MML_copy_string("<mspace width=\"thickmathspace\"/>");
1067
1075
};
1068
1076
 
1069
1077
quad: QUAD {
1070
 
  $$ = itex2MML_copy_string("<mspace width=\"1em\"></mspace>");
 
1078
  $$ = itex2MML_copy_string("<mspace width=\"1em\"/>");
1071
1079
};
1072
1080
 
1073
1081
qquad: QQUAD {
1074
 
  $$ = itex2MML_copy_string("<mspace width=\"2em\"></mspace>");
 
1082
  $$ = itex2MML_copy_string("<mspace width=\"2em\"/>");
1075
1083
};
1076
1084
 
1077
1085
negspace: NEGSPACE {
1078
 
  $$ = itex2MML_copy_string("<mspace width=\"-0.1667 em\"></mspace>");
 
1086
  $$ = itex2MML_copy_string("<mspace width=\"-0.1667 em\"/>");
 
1087
};
 
1088
 
 
1089
negmedspace: NEGMEDSPACE {
 
1090
  $$ = itex2MML_copy_string("<mspace width=\"negativemediummathspace\"/>");
 
1091
};
 
1092
 
 
1093
negthickspace: NEGTHICKSPACE {
 
1094
  $$ = itex2MML_copy_string("<mspace width=\"negativethickmathspace\"/>");
1079
1095
};
1080
1096
 
1081
1097
phantom: PHANTOM closedTerm {
1179
1195
};
1180
1196
 
1181
1197
pmod: PMOD closedTerm {
1182
 
  $$ = itex2MML_copy3( "<mo lspace=\"mediummathspace\">(</mo><mo rspace=\"thinmathspace\">mod</mo>", $2, "<mo rspace=\"mediummathspace\">)</mo>");
 
1198
  $$ = itex2MML_copy3( "<mrow><mo lspace=\"mediummathspace\">(</mo><mo rspace=\"thinmathspace\">mod</mo>", $2, "<mo rspace=\"mediummathspace\">)</mo></mrow>");
1183
1199
  itex2MML_free_string($2);
1184
1200
}
1185
1201