Home > Articles, Compilers & Interpreters > A simple Flex lexer example for counting words, lines, characters.

A simple Flex lexer example for counting words, lines, characters.

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]”.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: