问题:编写一个Lex程序来检查有效的手机号码。
解释:
FLEX(快速词法分析器生成器)是一种工具/计算机程序,用于生成Vern Paxson于1987年左右在C中编写的词法分析器(扫描器或词法分析器)。Lex读取指定词法分析器的输入流,并输出在C语言中实现词法分析器的源代码编程语言。函数yylex()是运行规则部分的主要flex函数。
例子:
Input: 7017175023
Output: Mobile Number Valid
Input: 0001112223
Output: Mobile Number Invalid
执行:
/* Lex Program to check valid Mobile Number */
%{
/* Definition section */
%}
/* Rule Section */
%%
[1-9][0-9]{9} {printf("\nMobile Number Valid\n");}
.+ {printf("\nMobile Number Invalid\n");}
%%
// driver code
int main()
{
printf("\nEnter Mobile Number : ");
yylex();
printf("\n");
return 0;
}
输出: