%{
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int vowel_count = 0;
int consonant_count = 0;
%}
%%
[a-zA-Z] {
char ch = yytext[0];
ch = tolower(ch);
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
{
vowel_count++;
printf("Vowel found: %c\n", yytext[0]);
}
else
{
consonant_count++;
printf("Consonant found: %c\n", yytext[0]);
}
}
[ \t\n] ; // Ignore whitespace
. ; // Ignore everything else
%%
int main(int argc, char **argv) {
FILE *file = fopen(argv[1], "r");
yyin = file;
yylex();
printf("\nTotal vowels: %d\n", vowel_count);
printf("Total consonants: %d\n", consonant_count);
fclose(file);
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CmludCB2b3dlbF9jb3VudCA9IDA7CmludCBjb25zb25hbnRfY291bnQgPSAwOwolfQoKJSUKW2EtekEtWl0gewogICAgY2hhciBjaCA9IHl5dGV4dFswXTsKICAgIGNoID0gdG9sb3dlcihjaCk7CiAgICBpZiAoY2ggPT0gJ2EnIHx8IGNoID09ICdlJyB8fCBjaCA9PSAnaScgfHwgY2ggPT0gJ28nIHx8IGNoID09ICd1JykgCiAgICB7CiAgICAgICAgdm93ZWxfY291bnQrKzsKICAgICAgICBwcmludGYoIlZvd2VsIGZvdW5kOiAlY1xuIiwgeXl0ZXh0WzBdKTsKICAgIH0gCiAgICBlbHNlIAogICAgewogICAgICAgIGNvbnNvbmFudF9jb3VudCsrOwogICAgICAgIHByaW50ZigiQ29uc29uYW50IGZvdW5kOiAlY1xuIiwgeXl0ZXh0WzBdKTsKICAgIH0KfQpbIFx0XG5dICAgICAgICA7IC8vIElnbm9yZSB3aGl0ZXNwYWNlCi4gICAgICAgICAgICAgIDsgLy8gSWdub3JlIGV2ZXJ5dGhpbmcgZWxzZQolJQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgIAogICAgRklMRSAqZmlsZSA9IGZvcGVuKGFyZ3ZbMV0sICJyIik7CiAgICB5eWluID0gZmlsZTsKICAgIHl5bGV4KCk7CgogICAgcHJpbnRmKCJcblRvdGFsIHZvd2VsczogJWRcbiIsIHZvd2VsX2NvdW50KTsKICAgIHByaW50ZigiVG90YWwgY29uc29uYW50czogJWRcbiIsIGNvbnNvbmFudF9jb3VudCk7CgogICAgZmNsb3NlKGZpbGUpOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQ==