/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: 2007-10-05 12:54:53 UTC
  • Revision ID: distler@golem.ph.utexas.edu-20071005125453-t5md7altdhllrldg
\binom
Fixed \binom{m}{n} to produce binomial coefficients, as it does in AMSLaTeX.
Added \atop, so {m \atop n} reproduces the old behaviour.
\operatorname does what you think it does (a synonym for the mis-named \mathop).

Show diffs side-by-side

added added

removed removed

1
 
/*             itex2MML 1.2.4
2
 
 *   itex2MML.y last modified 8/6/2007
 
1
/*             itex2MML 1.2.6
 
2
 *   itex2MML.y last modified 10/5/2007
3
3
 */
4
4
 
5
5
%{
266
266
 
267
267
%}
268
268
 
269
 
%left TEXOVER
 
269
%left TEXOVER TEXATOP
270
270
%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 MATHOP MOP MOL MOLL MOF PERIODDELIM OTHERDELIM LEFTDELIM RIGHTDELIM MOS MOB SQRT ROOT BINOM UNDER OVER OVERBRACE UNDERBRACE UNDEROVER TENSOR MULTI ARRAY COLSEP ROWSEP ARRAYOPTS COLLAYOUT COLALIGN ROWALIGN ALIGN EQROWS EQCOLS ROWLINES COLLINES FRAME PADDING ATTRLIST ITALICS BOLD SLASHED RM BB ST END BBLOWERCHAR BBUPPERCHAR CALCHAR FRAKCHAR CAL FRAK ROWOPTS TEXTSIZE SCSIZE SCSCSIZE DISPLAY TEXTSTY TEXTBOX TEXTSTRING CELLOPTS ROWSPAN COLSPAN THINSPACE MEDSPACE THICKSPACE QUAD QQUAD NEGSPACE PHANTOM HREF UNKNOWNCHAR EMPTYMROW STATLINE TOGGLE FGHIGHLIGHT BGHIGHLIGHT SPACE INTONE INTTWO INTTHREE BAR WIDEBAR VEC WIDEVEC HAT WIDEHAT CHECK WIDECHECK TILDE WIDETILDE DOT DDOT UNARYMINUS UNARYPLUS BEGINENV ENDENV MATRIX PMATRIX BMATRIX BBMATRIX VMATRIX VVMATRIX SMALLMATRIX CASES ALIGNED GATHERED SUBSTACK PMOD RMCHAR COLOR BGCOLOR
271
271
 
272
272
%%
561
561
| bghighlight
562
562
| color
563
563
| texover
 
564
| texatop
564
565
| MROWOPEN closedTerm MROWCLOSE {
565
566
  $$ = itex2MML_copy_string($2);
566
567
  itex2MML_free_string($2);
1120
1121
  itex2MML_free_string($5);
1121
1122
};
1122
1123
 
 
1124
texatop: MROWOPEN compoundTermList TEXATOP compoundTermList MROWCLOSE {
 
1125
  char * s1 = itex2MML_copy3("<mfrac linethickness=\"0\"><mrow>", $2, "</mrow><mrow>");
 
1126
  $$ = itex2MML_copy3(s1, $4, "</mrow></mfrac>");
 
1127
  itex2MML_free_string(s1);
 
1128
  itex2MML_free_string($2);
 
1129
  itex2MML_free_string($4);
 
1130
}
 
1131
| left compoundTermList TEXATOP compoundTermList right {
 
1132
  char * s1 = itex2MML_copy3("<mrow>", $1, "<mfrac linethickness=\"0\"><mrow>");
 
1133
  char * s2 = itex2MML_copy3($2, "</mrow><mrow>", $4);
 
1134
  char * s3 = itex2MML_copy3("</mrow></mfrac>", $5, "</mrow>");
 
1135
  $$ = itex2MML_copy3(s1, s2, s3);
 
1136
  itex2MML_free_string(s1);
 
1137
  itex2MML_free_string(s2);
 
1138
  itex2MML_free_string(s3);
 
1139
  itex2MML_free_string($1);
 
1140
  itex2MML_free_string($2);
 
1141
  itex2MML_free_string($4);
 
1142
  itex2MML_free_string($5);
 
1143
};
 
1144
 
1123
1145
binom: BINOM closedTerm closedTerm {
1124
 
  char * s1 = itex2MML_copy3("<mfrac linethickness=\"0\">", $2, $3);
1125
 
  $$ = itex2MML_copy2(s1, "</mfrac>");
 
1146
  char * s1 = itex2MML_copy3("<mrow><mo>(</mo><mfrac linethickness=\"0\">", $2, $3);
 
1147
  $$ = itex2MML_copy2(s1, "</mfrac><mo>)</mo></mrow>");
1126
1148
  itex2MML_free_string(s1);
1127
1149
  itex2MML_free_string($2);
1128
1150
  itex2MML_free_string($3);