%option nounput noinput %{ #ifdef FLEXALONE enum Return_Token_Values { ART=1000, NOM, VERBE, ADJ}; #else #include "yyparse.h" #endif #include "proto-color.h" void echo(char *lex_cat) { fprintf(stdout,GREEN("[%s:%s]"), lex_cat, yytext); } void passStringVal() { yylval.string = malloc(yyleng); strcpy(yylval.string,yytext); } %} %% les?|la { echo("ART"); passStringVal(); return ART; } chats?|souris { echo("NOM"); passStringVal(); return NOM; } (attrappe|mange)(nt)? { echo("VERBE"); passStringVal(); return VERBE;} gris|vertes? { echo("ADJ"); passStringVal(); return ADJ; } \n return yytext[0]; " " ECHO; . echo("UNK"); %% int yywrap() { return 1; } #ifdef FLEXALONE int main(int argc, char *argv[]) { while (yylex()!=0) ; return 0; } #endif