digit[0-9]
letter[a-zA-Z]
end[;]
space[' ']
line[\n]
%{
int dig_cnt=0,let_cnt=0, wrds_cnt=0,line_cnt=0,spec_cnt=0;
%}
%%
{digit} {dig_cnt++;}
{letter} {let_cnt++;}
{space}* {wrds_cnt++;}
{line} {line_cnt++;}
{end} {printf("digits = %d, letters = %d, words = %d, lines = %d, special characters = %d",dig_cnt,let_cnt,wrds_cnt+1,line_cnt,spec_cnt);}
. {spec_cnt++;}
%%
int main(void)
{
yylex();
}
Output:

Comments
Post a Comment