FLEX (Fast Lexical Analyzer Generator) es una herramienta/programa de computadora para generar analizadores léxicos (escáneres o lexers) escrito por Vern Paxson en C alrededor de 1987. Lex lee un flujo de entrada que especifica el analizador léxico y genera el código fuente que implementa el lexer en el C lenguaje de programación. La función yylex() es la principal función flexible que ejecuta la sección de reglas. Prerrequisito: FLEX (Fast Lexical Analyzer Generator) Ejemplo:
Input: hello how are you? Output: hellohowareyou? Input: Welcome to Geeks for Geeks Output: WelcometoGeeksforGeeks
Enfoque: abra el archivo de entrada en modo de lectura y cada vez que el analizador encuentre una nueva línea (\n), espacio() o tabulador (\t), elimínelo y escriba todos los demás caracteres en el archivo de salida. Archivo de entrada: Input.txt (Archivo de entrada utilizado en este programa) A continuación se muestra el programa de implementación:
C
/*Lex program to take input from file and remove multiple spaces, newline and tab and write output in a separate file*/ % { /*Definition section */ % } /* Rule: whenever space, tab or newline is encountered, remove it*/ % % [ \n\t]+ {fprintf(yyout, "");} . { fprintf(yyout, "%s", yytext); } % % int yywrap(){} // driver code int main() { /* yyin and yyout as pointer of File type */ extern FILE *yyin, *yyout; /* yyin points to the file input.txt and opens it in read mode*/ yyin = fopen("Input.txt", "r"); /* yyout points to the file output.txt and opens it in write mode*/ yyout = fopen("Output.txt", "w"); yylex(); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por shivani.mittal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA