The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
%{
#include <stdio.h>
int lines= 0, words= 0, chars= 0;
%}

start	= (line | word | char)

line	= < (( '\n' '\r'* ) | ( '\r' '\n'* )) >	{ lines++;  chars += yyleng; }
word	= < [a-zA-Z]+ >				{ words++;  chars += yyleng;  printf("<%s>\n", yytext); }
char	= .					{ chars++; }

%%

int main()
{
  GREG g;
  yyinit(&g);
  while (yyparse(&g));
  yydeinit(&g);

  printf("%d lines\n", lines);
  printf("%d chars\n", chars);
  printf("%d words\n", words);
  return 0;
}