Open In App

Lex Program to accept a valid integer and float value

Last Updated : 30 Sep, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report
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 -efl
./a.out
Let’s see to accept a valid integer and float value using lex program. Examples:
Input : 
-77.99
Output :
 Valid Float Value

Input : 
fghj
Output : 
Not a valid Integer/ Float number
Below is the implementation: C
/*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;
}
Output:

Next Article

Similar Reads