%{ #include int n = 0; %} %% "#define"(\40|\t)+[A-Z0-9_]+(\40|\t)+"$\n" { yytext[yyleng - 2] = '\0'; printf("%s%d\n", yytext, n); n++; } " * ".*\$.*\$"\n" { char *s = malloc(yyleng + 1), *t; strncpy(s, yytext, yyleng - 1); s[yyleng - 2] = '\n'; s[yyleng - 1] = '\0'; t = (char *)index(s, (int)'$'); *t = ' '; printf(" * NOTE: This file is automatically created!\n *\n * from: %s%s", s + 3, yytext); } .*"\n" printf("%s", yytext); %% main() { yylex(); exit(0); } .