Lex es un programa informático que genera analizadores léxicos. Lex lee un flujo de entrada que especifica el analizador léxico y genera el código fuente que implementa el lexer en el lenguaje de programación C.
Los comandos para ejecutar el programa lex son:
lex abc.l (abc is the file name) cc lex.yy.c -lfl ./a.out
Veamos el programa Lex para imprimir el total de caracteres, espacios en blanco, tabulaciones en el archivo de entrada dado.
A continuación se muestra la implementación:
/* 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); }
Aporte:
Producción:
Publicación traducida automáticamente
Artículo escrito por Tanmay_Jain y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA