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:
/* 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); } |
Input:
Output: