%{ char holdbuf[YYLMAX]; int ii; %} %a 4000 %p 3000 %o 5000 %% ^"! "([^\n]|"\n"[^!]|"\n!"[^ ])*"\n"/"l." { for (ii=0; ii, line %s:\n%s", yytext+2, holdbuf) ; printf(""); }