/* dates.l * scanner for dates.y */ %% [0-9]+ { yylval.num = atoi(yytext); return NUMBER; } (J|j)an(nuary)? { yylval.str = "January"; return MONTH; } (F|f)eb(ruary)? { yylval.str = "February"; return MONTH; } (M|m)ar(ch)? { yylval.str = "March"; return MONTH; } (A|a)pr(il)? { yylval.str = "April"; return MONTH; } (M|m)ay { yylval.str = "May"; return MONTH; } (J|j)un(e)? { yylval.str = "June"; return MONTH; } (J|j)ul(y)? { yylval.str = "July"; return MONTH; } (A|a)ug(ust)? { yylval.str = "August"; return MONTH; } (S|s)ep(tember)? { yylval.str = "September"; return MONTH; } (O|o)ct(ober)? { yylval.str = "October"; return MONTH; } (N|n)ov(ember)? { yylval.str = "November"; return MONTH; } (D|d)ec(ember)? { yylval.str = "December"; return MONTH; } [,/\n] { return yytext[0]; } . { /* ignore other characters */ } %% int yywrap() { return(1); }