

%{
#include <stdio.h>
%}

%%

[ \t\n]+    { printf(" "); } // Replace whitespace sequence with a single blank
.           { putchar(yytext[0]); } // Copy other characters as they are

%%

int main(int argc, char *argv[]) {
    if (argc < 2) {
        printf("Usage: %s <filename>\n", argv[0]);
        return 1;
    }
    FILE *fp = fopen(argv[1], "r");
    if (!fp) {
        printf("Error: Unable to open the file.\n");
        return 1;
    }
    yyin = fp;
    yylex();
    fclose(fp);
    return 0;
}