%{ void eatJava(); %} %option yylineno spl [=x,()[\]{}%\-] num [0-9]+ flt [0-9]*\.[0-9]+ %% [ \n\t]+ size {return SIZE;} bgcolour {return BGCOLOUR;} RGB {return RGB;} rate {return RATE;} SHAPE {return SHAPE;} SPRITE {return SPRITE;} fillStyle {return FILLSTYLE;} fillStyle1 {return FILLSTYLE1;} fillStyle2 {return FILLSTYLE2;} lineStyle {return LINESTYLE;} move {return MOVE;} line {return LINE;} show {return SHOW;} place {return PLACE;} change {return CHANGE;} at {return AT;} matrix {return MATRIX;} rot {return ROT;} skew {return SKEW;} scale {return SCALE;} trans {return TRANS;} ^J {eatJava(); return JAVA;} {spl} {return yytext[0];} [a-zA-Z]+ {strcpy(yylval.str,yytext); return NAME;} {num}|-{num} {sprintf(yylval.str,yytext); return NUM;} {flt}|-{flt} {sprintf(yylval.str,yytext); return FLOAT;} %% void eatJava() { int c,i; i = 0; yylval.str[0] = '\0'; while((c=input())!='\n') yylval.str[i++] = c; yylval.str[i] = '\0'; } yywrap() { return 1; }