%{ /* Prologue C */ #ifdef FLEXALONE enum Return_Token_Values { NEWLINE=1000, BYE, HELLO, THANKS, FUCK, CMD_SEP}; #else #include "vect.h" /* requis a cause du %union partagé dans yyparse.h*/ #include "yyparse.h" #endif #include "proto-color.h" void echo(char *lex_cat) { // fprintf(stdout,GREEN("[%s:%s]"), lex_cat, yytext); } void echonl() { // fprintf(stdout,BLUE("[\\n]")"\n"); } %} /*end Prologue C */ /* Options Flex*/ %option nounput noinput /* Macro-Definition */ newline \n|\r|\r\n cmd_sep [;] plus [+] mult [*] blanc [ \t] comment [#|%].* scalaire -?[0-9]+ parent_in [(] parent_out [)] vect_in [\[] vect_out [\]] vect_sep [,] F_dim dim %% hi|hello echo("Builtin"); return(HELLO); thanks echo("Builtin"); return(THANKS); fuck|shit|"3-" echo("Builtin"); return(FUCK); bye|quit|exit echo("Builtin"); return(BYE); {newline} echonl(); return(NEWLINE); {cmd_sep} echo("Cmd_Sep"); return(CMD_SEP); {plus} echo("Plus"); return(PLUS); {mult} echo("Mult"); return(MULT); {parent_in} echo("Parent"); return(PARENT_IN); {parent_out} echo("Parent"); return(PARENT_OUT); {vect_in} echo("Vect"); return(VECT_IN); {vect_out} echo("Vect"); return(VECT_OUT); {vect_sep} echo("Vect"); return(VECT_SEP); {F_dim} echo("F_dim"); return(F_DIM); {scalaire} echo("Scalaire"); yylval.scalaire=atoi(yytext); return(SCALAIRE); {blanc} echo("Blancs "); {comment} echo("Comment"); . echo("Unknown"); return(yytext[0]); %% int yywrap (void) {return 1;} #ifdef FLEXALONE int main(int argc, char *argv[]) { while (yylex()!=0) ; return 0; } #endif