Skip to content
Related Articles

Related Articles

Lex Program to accept a valid integer and float value
  • Last Updated : 30 Apr, 2019

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:






/*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:

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.

My Personal Notes arrow_drop_up
Recommended Articles
Page :