%{ #include int yyparse (void); %} WRITE w|write READ r|read DEC [0-9]+ HEX 0x[0-9a-fA-F]+ BIN 0b[01]+ %option noyywrap nounput %% {WRITE} { return WRITE; } {READ} { return READ; } {DEC}|{HEX} { yylval = strtol (yytext, 0, 0); return NUM; } {BIN} { yylval = strtol (yytext + 2, 0, 2); return NUM; } [ \t\n]+ /* Rien à battre. */ . return ERR; %% int parse_string (const char *s) { yy_scan_string (s); return yyparse (); }