%{ int num_lines = 0, num_words = 0, num_chars = 0; %} word [^ \t\n]+ eol \n %% {eol} { ++num_lines; num_chars += yyleng; } {word} { ++num_words; ++num_chars; } . { ++num_chars; } %% main() { yylex(); printf( "# of lines = %d, # of words = %d\n", num_lines, num_words ); } yywrap() { return 1; }