%{ using namespace std; #include #include #include "lunch.tab.h" int line_num = 1; %} %% with { return WITH_tok; } pizza { return PIZZA_tok; } sandwich { return SANDWICH_tok; } "ice cream" { return ICE_CREAM_tok; } and { return AND_tok; } pepperoni { return PEPPERONI_tok; } cheese { return CHEESE_tok; } "chocolate sauce" { return CHOCOLATE_SAUCE_tok; } pineapple { return PINEAPPLE_tok; } \. { return PERIOD_tok; } \n { line_num++; } [ \t\r] { ; } . { cerr << "lexical error on line " << line_num; cerr << ": " << yytext << endl; exit(1); }