/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.l

  • 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.l last modified 7/7/2011
 
1
/*             itex2MML 1.4.7
 
2
 *   itex2MML.l last modified 9/7/2011
3
3
 */
4
4
 
5
5
%{
6
6
%}
7
7
%option noyywrap
8
 
%x MATH ATTRIBUTELIST BBOLD FRAKTUR CALLIGRAPHIC ROMAN PLAINTEXT INT1 INT2 INT3 MATHENV SVGENV SVGEND OPTARG ARRAYOPTIONS COLOPTS
 
8
%x MATH ATTRIBUTELIST BBOLD FRAKTUR CALLIGRAPHIC ROMAN PLAINTEXT INT1 INT2 INT3 MATHENV SVGENV SVGEND OPTARG ARRAYOPTIONS COLOPTS TEXTOPTARG TEXTOPTARG1 RAISEBOX1 RAISEBOX2
9
9
%{
10
10
#include <string.h>
11
11
 
815
815
 
816
816
"\\toggle"        {return TOGGLE;}
817
817
 
 
818
"\\mathraisebox"  {BEGIN(RAISEBOX1); return RAISEBOX;}
 
819
 
818
820
"\\fghilight" |
819
821
"\\fghighlight"   {BEGIN(ATTRIBUTELIST); return FGHIGHLIGHT;}
820
822
 
937
939
.   {BEGIN(MATH); unput(yytext[0]);}
938
940
}
939
941
 
 
942
<RAISEBOX1>{
 
943
\{[\n\r\t ]*- {BEGIN(RAISEBOX2); return NEG;}
 
944
\{[\n\r\t ]* {BEGIN(RAISEBOX2);}
 
945
}
 
946
 
 
947
<RAISEBOX2>{
 
948
[^\}]*?\}  {yylval=itex2MML_copy_string(yytext); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-1]='\0'; BEGIN(TEXTOPTARG1); return TEXTSTRING;}
 
949
}
 
950
 
 
951
 
 
952
<TEXTOPTARG1>{
 
953
\[[^\]]*?\] {yylval=itex2MML_copy_string(yytext+1); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-2]='\0'; BEGIN(TEXTOPTARG); return TEXTSTRING;}
 
954
. {BEGIN(MATH); unput(yytext[0]);}
 
955
}
 
956
 
 
957
<TEXTOPTARG>{
 
958
\[[^\]]*?\] {yylval=itex2MML_copy_string(yytext+1); if ((yyleng > 1) && (yylval != itex2MML_empty_string)) yylval[yyleng-2]='\0'; BEGIN(MATH); return TEXTSTRING;}
 
959
. {BEGIN(MATH); unput(yytext[0]);}
 
960
}
 
961
 
940
962
<MATHENV>{
941
963
"\{matrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return MATRIX;}
942
964
"\{pmatrix\}" {itex2MML_env_start = 0; BEGIN(MATH); return PMATRIX;}