📜  Lex程序接受有效的整数和浮点值

📅  最后修改于: 2021-05-28 05:20:23             🧑  作者: Mango

Lex是一个生成词法分析器的计算机程序。
Lex读取指定词法分析器的输入流,并输出以C编程语言实现词法分析器的源代码。

用于执行lex程序的命令为:

lex abc.l (abc is the file name)
cc lex.yy.c -efl
./a.out

让我们看一下接受一个有效的整数和浮点值
使用lex程序。

例子:

Input : 
-77.99
Output :
 Valid Float Value

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

下面是实现:

/*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;
}

输出:

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。