Below, is a simple example for counting words, lines and characters by using a Flex lexer.
Flex lexer / scanner implementation:
%{
int chars = 0;
int words = 0;
int lines = 0;
%}
%%
[a-zA-Z]+ { words++; chars += strlen(yytext); }
\n { chars++; lines++; }
. { chars++; }
%%
You can call yylex() to scan input tokens in a simple test program:
int
main(void)
{
yylex();
printf("%8d%8d%8dn", lines, words, chars);
return 0;
}
You may use also “[:alpha:]” in place of “[a-zA-Z]”.


