Lex Program to print the total characters, white spaces, tabs in the given input file

Lex is a computer program that generates lexical analyzers. Lex reads an input stream specifying the lexical analyzer and outputs source code implementing the lexer in the C programming language.

The commands for executing the lex program are:

lex abc.l (abc is the file name)
cc lex.yy.c -lfl
./a.out

Let’s see Lex program to print the total characters, white spaces, tabs in the given input file.

Below is the implementation:

filter_none

edit
close

play_arrow

link
brightness_4
code

/* Lex program to print the total characters, 
white spaces, tabs in the given input file.
*/
  
%
{
    int n, w, c;
    %
}
% %
\n { n++; }
[^ \n\t] +
{
    w++;
    c = c + yyleng;
}
.c++;
% % int yywrap(void)
{
    return 1;
}
  
  
main()
{
    extern FILE* yyin;
    yyin = fopen("input.txt", "r");
    yylex();
    printf("Line= %d word=%d total char=%d \n", n, w, c);
}

chevron_right


Input:



Output:

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.