Programa Lex para contar palabras menores de 10 y mayores de 5

Problema: Escriba un programa Lex para contar palabras menores de 10 y mayores de 5.
Explicación:  
Lex es un programa de computadora 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 Programa Lex para contar palabras menores de 10 y mayores de 5.
Ejemplos: 
 

Input: geeksforgeeks hey google test lays
Output: 1 

A continuación se muestra la implementación:
 

C

/*lex code to count words that are less than 10
    - and greater than 5 */
 
    %{
      int len=0, counter=0;
    %}
     
    %%
    [a-zA-Z]+ { len=strlen(yytext);
                if(len<10 && len>5)
                  {counter++;} }
    %%
     
    int yywrap (void )
     {
        return 1;
     }
     
    int main()
     {
      printf("Enter the string:");
      yylex();
      printf("\n %d", counter);
      return 0;
     }

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *