%{
#include <stdio.h>
#include <ctype.h>
int vowel_count = 0; // Counter for vowels
int consonant_count = 0; // Counter for consonants
// Helper function to check if a character
is a vowel
int is_vowel(char ch) {
ch = tolower(ch); // Convert to lowercase for uniformity
return (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u');
}
%}
%%
[a-zA-Z] {
if (is_vowel(yytext[0])) {
vowel_count++;
} else {
consonant_count++;
}
}
[ \t\n] {
// Ignore whitespace characters
}
. {
// Ignore any other non-alphabetic characters
}
%%
int main() {
printf("Enter a string:\n");
yylex(); // Start lexical analysis
printf("\nVowel Count: %d\n", vowel_count);
printf("Consonant Count: %d\n", consonant_count);
return 0;
}
int yywrap() {
return 1; // Indicate end of input
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgoKaW50IHZvd2VsX2NvdW50ID0gMDsgICAgICAgLy8gQ291bnRlciBmb3Igdm93ZWxzCmludCBjb25zb25hbnRfY291bnQgPSAwOyAgIC8vIENvdW50ZXIgZm9yIGNvbnNvbmFudHMKCi8vIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayBpZiBhIGNoYXJhY3RlciBpcyBhIHZvd2VsCmludCBpc192b3dlbChjaGFyIGNoKSB7CiAgICBjaCA9IHRvbG93ZXIoY2gpOyAvLyBDb252ZXJ0IHRvIGxvd2VyY2FzZSBmb3IgdW5pZm9ybWl0eQogICAgcmV0dXJuIChjaCA9PSAnYScgfHwgY2ggPT0gJ2UnIHx8IGNoID09ICdpJyB8fCBjaCA9PSAnbycgfHwgY2ggPT0gJ3UnKTsKfQolfQoKJSUKClthLXpBLVpdIHsKICAgIGlmIChpc192b3dlbCh5eXRleHRbMF0pKSB7CiAgICAgICAgdm93ZWxfY291bnQrKzsKICAgIH0gZWxzZSB7CiAgICAgICAgY29uc29uYW50X2NvdW50Kys7CiAgICB9Cn0KClsgXHRcbl0gewogICAgLy8gSWdub3JlIHdoaXRlc3BhY2UgY2hhcmFjdGVycwp9CgouIHsKICAgIC8vIElnbm9yZSBhbnkgb3RoZXIgbm9uLWFscGhhYmV0aWMgY2hhcmFjdGVycwp9CgolJQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIGEgc3RyaW5nOlxuIik7CiAgICB5eWxleCgpOyAvLyBTdGFydCBsZXhpY2FsIGFuYWx5c2lzCgogICAgcHJpbnRmKCJcblZvd2VsIENvdW50OiAlZFxuIiwgdm93ZWxfY291bnQpOwogICAgcHJpbnRmKCJDb25zb25hbnQgQ291bnQ6ICVkXG4iLCBjb25zb25hbnRfY291bnQpOwoKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7IC8vIEluZGljYXRlIGVuZCBvZiBpbnB1dAp9