/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: 2019-03-23 21:46:56 UTC
  • Revision ID: distler@golem.ph.utexas.edu-20190323214656-rgo97tpyxbe3ltq3
Tags: 1.6.0
itex2MML 1.6.0

Bring up to spec with MathML-core

Show diffs side-by-side

added added

removed removed

1
 
/*             itex2MML 1.5.7
2
 
 *   itex2MML.y last modified 06/25/2018
 
1
/*             itex2MML 1.6.0
 
2
 *   itex2MML.y last modified 03/23/2019
3
3
 */
4
4
 
5
5
%parse-param {char **ret_str}
748
748
};
749
749
 
750
750
unaryminus: UNARYMINUS {
751
 
  $$ = itex2MML_copy_string("<mo lspace=\"verythinmathspace\" rspace=\"0em\">&minus;</mo>");
 
751
  $$ = itex2MML_copy_string("<mo lspace=\"0.11111em\" rspace=\"0em\">&minus;</mo>");
752
752
};
753
753
 
754
754
unaryplus: UNARYPLUS {
755
 
  $$ = itex2MML_copy_string("<mo lspace=\"verythinmathspace\" rspace=\"0em\">+</mo>");
 
755
  $$ = itex2MML_copy_string("<mo lspace=\"0.11111em\" rspace=\"0em\">+</mo>");
756
756
};
757
757
 
758
758
mi: MI;
772
772
 
773
773
mob: MOB {
774
774
  itex2MML_rowposn = 2;
775
 
  $$ = itex2MML_copy3("<mo lspace=\"thinmathspace\" rspace=\"thinmathspace\">", $1, "</mo>");
 
775
  $$ = itex2MML_copy3("<mo lspace=\"0.16667em\" rspace=\"0.16667em\">", $1, "</mo>");
776
776
  itex2MML_free_string($1);
777
777
};
778
778
 
816
816
}
817
817
| MOS {
818
818
  itex2MML_rowposn=2;
819
 
  $$ = itex2MML_copy3("<mo lspace=\"mediummathspace\" rspace=\"mediummathspace\">", $1, "</mo>");
 
819
  $$ = itex2MML_copy3("<mo lspace=\"0.22222em\" rspace=\"0.22222em\">", $1, "</mo>");
820
820
  itex2MML_free_string($1);
821
821
}
822
822
| MOP {
823
823
  itex2MML_rowposn = 2;
824
 
  $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"thinmathspace\">", $1, "</mo>");
 
824
  $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"0.16667em\">", $1, "</mo>");
825
825
  itex2MML_free_string($1);
826
826
}
827
827
| MOR {
828
828
  itex2MML_rowposn = 2;
829
 
  $$ = itex2MML_copy3("<mo lspace=\"verythinmathspace\">", $1, "</mo>");
 
829
  $$ = itex2MML_copy3("<mo lspace=\"0.11111em\">", $1, "</mo>");
830
830
  itex2MML_free_string($1);
831
831
}
832
832
| OPERATORNAME TEXTSTRING {
833
833
  itex2MML_rowposn = 2;
834
 
  $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"thinmathspace\">", $2, "</mo>");
 
834
  $$ = itex2MML_copy3("<mo lspace=\"0em\" rspace=\"0.16667em\">", $2, "</mo>");
835
835
  itex2MML_free_string($2);
836
836
}
837
837
| MATHOP TEXTSTRING {
838
838
  itex2MML_rowposn = 2;
839
 
  $$ = itex2MML_copy3("<mo lspace=\"thinmathspace\" rspace=\"thinmathspace\">", $2, "</mo>");
 
839
  $$ = itex2MML_copy3("<mo lspace=\"0.16667em\" rspace=\"0.16667em\">", $2, "</mo>");
840
840
  itex2MML_free_string($2);
841
841
}
842
842
| MATHBIN TEXTSTRING {
843
843
  itex2MML_rowposn = 2;
844
 
  $$ = itex2MML_copy3("<mo lspace=\"mediummathspace\" rspace=\"mediummathspace\">", $2, "</mo>");
 
844
  $$ = itex2MML_copy3("<mo lspace=\"0.22222em\" rspace=\"0.22222em\">", $2, "</mo>");
845
845
  itex2MML_free_string($2);
846
846
}
847
847
| MATHREL TEXTSTRING {
848
848
  itex2MML_rowposn = 2;
849
 
  $$ = itex2MML_copy3("<mo lspace=\"thickmathspace\" rspace=\"thickmathspace\">", $2, "</mo>");
 
849
  $$ = itex2MML_copy3("<mo lspace=\"0.27778em\" rspace=\"0.27778em\">", $2, "</mo>");
850
850
  itex2MML_free_string($2);
851
851
};
852
852
 
921
921
};
922
922
 
923
923
mathrlap: RLAP closedTerm {
924
 
  $$ = itex2MML_copy3("<mpadded width=\"0\">", $2, "</mpadded>");
 
924
  $$ = itex2MML_copy3("<mpadded width=\"0px\">", $2, "</mpadded>");
925
925
  itex2MML_free_string($2);
926
926
};
927
927
 
928
928
mathllap: LLAP closedTerm {
929
 
  $$ = itex2MML_copy3("<mpadded width=\"0\" lspace=\"-100%width\">", $2, "</mpadded>");
 
929
  $$ = itex2MML_copy3("<mpadded width=\"0px\" lspace=\"-100%width\">", $2, "</mpadded>");
930
930
  itex2MML_free_string($2);
931
931
};
932
932
 
933
933
mathclap: CLAP closedTerm {
934
 
  $$ = itex2MML_copy3("<mpadded width=\"0\" lspace=\"-50%width\">", $2, "</mpadded>");
 
934
  $$ = itex2MML_copy3("<mpadded width=\"0px\" lspace=\"-50%width\">", $2, "</mpadded>");
935
935
  itex2MML_free_string($2);
936
936
};
937
937
 
1087
1087
};
1088
1088
 
1089
1089
thinspace: THINSPACE {
1090
 
  $$ = itex2MML_copy_string("<mspace width=\"thinmathspace\"/>");
 
1090
  $$ = itex2MML_copy_string("<mspace width=\"0.16667em\"/>");
1091
1091
};
1092
1092
 
1093
1093
medspace: MEDSPACE {
1094
 
  $$ = itex2MML_copy_string("<mspace width=\"mediummathspace\"/>");
 
1094
  $$ = itex2MML_copy_string("<mspace width=\"0.22222em\"/>");
1095
1095
};
1096
1096
 
1097
1097
thickspace: THICKSPACE {
1098
 
  $$ = itex2MML_copy_string("<mspace width=\"thickmathspace\"/>");
 
1098
  $$ = itex2MML_copy_string("<mspace width=\"0.27778em\"/>");
1099
1099
};
1100
1100
 
1101
1101
quad: QUAD {
1107
1107
};
1108
1108
 
1109
1109
negspace: NEGSPACE {
1110
 
  $$ = itex2MML_copy_string("<mspace width=\"negativethinmathspace\"/>");
 
1110
  $$ = itex2MML_copy_string("<mspace width=\"-0.16667em\"/>");
1111
1111
};
1112
1112
 
1113
1113
negmedspace: NEGMEDSPACE {
1114
 
  $$ = itex2MML_copy_string("<mspace width=\"negativemediummathspace\"/>");
 
1114
  $$ = itex2MML_copy_string("<mspace width=\"-0.22222em\"/>");
1115
1115
};
1116
1116
 
1117
1117
negthickspace: NEGTHICKSPACE {
1118
 
  $$ = itex2MML_copy_string("<mspace width=\"negativethickmathspace\"/>");
 
1118
  $$ = itex2MML_copy_string("<mspace width=\"-0.27778em\"/>");
1119
1119
};
1120
1120
 
1121
1121
phantom: PHANTOM closedTerm {
1219
1219
};
1220
1220
 
1221
1221
pmod: PMOD closedTerm {
1222
 
  $$ = itex2MML_copy3( "<mrow><mo lspace=\"mediummathspace\">(</mo><mo rspace=\"thinmathspace\">mod</mo>", $2, "<mo rspace=\"mediummathspace\">)</mo></mrow>");
 
1222
  $$ = itex2MML_copy3( "<mrow><mo lspace=\"0.22222em\">(</mo><mo rspace=\"0.16667em\">mod</mo>", $2, "<mo rspace=\"0.22222em\">)</mo></mrow>");
1223
1223
  itex2MML_free_string($2);
1224
1224
}
1225
1225
 
1245
1245
};
1246
1246
 
1247
1247
texatop: MROWOPEN compoundTermList TEXATOP compoundTermList MROWCLOSE {
1248
 
  char * s1 = itex2MML_copy3("<mfrac linethickness=\"0\"><mrow>", $2, "</mrow><mrow>");
 
1248
  char * s1 = itex2MML_copy3("<mfrac linethickness=\"0px\"><mrow>", $2, "</mrow><mrow>");
1249
1249
  $$ = itex2MML_copy3(s1, $4, "</mrow></mfrac>");
1250
1250
  itex2MML_free_string(s1);
1251
1251
  itex2MML_free_string($2);
1252
1252
  itex2MML_free_string($4);
1253
1253
}
1254
1254
| left compoundTermList TEXATOP compoundTermList right {
1255
 
  char * s1 = itex2MML_copy3("<mrow>", $1, "<mfrac linethickness=\"0\"><mrow>");
 
1255
  char * s1 = itex2MML_copy3("<mrow>", $1, "<mfrac linethickness=\"0px\"><mrow>");
1256
1256
  char * s2 = itex2MML_copy3($2, "</mrow><mrow>", $4);
1257
1257
  char * s3 = itex2MML_copy3("</mrow></mfrac>", $5, "</mrow>");
1258
1258
  $$ = itex2MML_copy3(s1, s2, s3);
1266
1266
};
1267
1267
 
1268
1268
binom: BINOM closedTerm closedTerm {
1269
 
  char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mfrac linethickness=\"0\">", $2, $3);
 
1269
  char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mfrac linethickness=\"0px\">", $2, $3);
1270
1270
  $$ = itex2MML_copy2(s1, "</mfrac><mo>)</mo></mrow>");
1271
1271
  itex2MML_free_string(s1);
1272
1272
  itex2MML_free_string($2);
1273
1273
  itex2MML_free_string($3);
1274
1274
}
1275
1275
| TBINOM closedTerm closedTerm {
1276
 
  char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mstyle displaystyle=\"false\"><mfrac linethickness=\"0\">", $2, $3);
 
1276
  char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mstyle displaystyle=\"false\"><mfrac linethickness=\"0px\">", $2, $3);
1277
1277
  $$ = itex2MML_copy2(s1, "</mfrac></mstyle><mo>)</mo></mrow>");
1278
1278
  itex2MML_free_string(s1);
1279
1279
  itex2MML_free_string($2);