Programa Lex para aceptar un valor entero y flotante válido

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 -efl
./a.out

Veamos cómo aceptar un valor entero y flotante válido
usando el programa lex.

Ejemplos:

Input : 
-77.99
Output :
 Valid Float Value

Input : 
fghj
Output : 
Not a valid Integer/ Float number

A continuación se muestra la implementación:

/*lex code to accept a valid integer 
  and float value using lex program.*/
    
%{
int valid_int=0, valid_float=0;
%}
  
%%
^[-+]?[0-9]* valid_int++;
^[-+]?[0-9]*[.][0-9]+$ valid_float++;
.;
%%
  
int main()
{
  yylex();
  if(valid_int!=0) printf("Valid Integer number\n");
  else if(valid_float!=0) printf("Valid Float number\n");
  else printf("Not valid Integer/Float number\n");
  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 *