%{
#include <stdio.h>
// Variables to keep track of frequencies
int count_if = 0;
int count_else = 0;
int count_while = 0;
int total_keywords = 0;
%}
%option noyywrap
%%
"if" { count_if++; total_keywords++; }
"else" { count_else++; total_keywords++; }
"while" { count_while++; total_keywords++; }
[a-zA-Z]+ { /* Ignore other words. */ }
.|\n { /* Ignore spaces, punctuation, and new lines */ }
%%
int main() {
printf("Enter your text (Press Ctrl+Z and Enter on a new line to finish):\n");
// yylex() starts the scanning process
yylex();
printf("\n--- Keyword Frequency Results ---\n");
printf("'if' count : %d\n", count_if);
printf("'else' count : %d\n", count_else);
printf("'while' count : %d\n", count_while);
printf("Total keywords: %d\n", total_keywords);
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+Ci8vIFZhcmlhYmxlcyB0byBrZWVwIHRyYWNrIG9mIGZyZXF1ZW5jaWVzCmludCBjb3VudF9pZiA9IDA7CmludCBjb3VudF9lbHNlID0gMDsKaW50IGNvdW50X3doaWxlID0gMDsKaW50IHRvdGFsX2tleXdvcmRzID0gMDsKJX0KCiVvcHRpb24gbm95eXdyYXAKCiUlCiJpZiIgICAgICAgIHsgY291bnRfaWYrKzsgdG90YWxfa2V5d29yZHMrKzsgfQoiZWxzZSIgICAgICB7IGNvdW50X2Vsc2UrKzsgdG90YWxfa2V5d29yZHMrKzsgfQoid2hpbGUiICAgICB7IGNvdW50X3doaWxlKys7IHRvdGFsX2tleXdvcmRzKys7IH0KClthLXpBLVpdKyAgIHsgLyogSWdub3JlIG90aGVyIHdvcmRzLiAgKi8gfQoufFxuICAgICAgICB7IC8qIElnbm9yZSBzcGFjZXMsIHB1bmN0dWF0aW9uLCBhbmQgbmV3IGxpbmVzICovIH0KJSUKCmludCBtYWluKCkgewogICAgcHJpbnRmKCJFbnRlciB5b3VyIHRleHQgKFByZXNzIEN0cmwrWiBhbmQgRW50ZXIgb24gYSBuZXcgbGluZSB0byBmaW5pc2gpOlxuIik7CiAgICAKICAgIC8vIHl5bGV4KCkgc3RhcnRzIHRoZSBzY2FubmluZyBwcm9jZXNzCiAgICB5eWxleCgpOwogICAgCiAgICBwcmludGYoIlxuLS0tIEtleXdvcmQgRnJlcXVlbmN5IFJlc3VsdHMgLS0tXG4iKTsKICAgIHByaW50ZigiJ2lmJyBjb3VudCAgICA6ICVkXG4iLCBjb3VudF9pZik7CiAgICBwcmludGYoIidlbHNlJyBjb3VudCAgOiAlZFxuIiwgY291bnRfZWxzZSk7CiAgICBwcmludGYoIid3aGlsZScgY291bnQgOiAlZFxuIiwgY291bnRfd2hpbGUpOwogICAgcHJpbnRmKCJUb3RhbCBrZXl3b3JkczogJWRcbiIsIHRvdGFsX2tleXdvcmRzKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=