📜  Lex程序检查输入是否为数字

📅  最后修改于: 2021-06-28 07:13:11             🧑  作者: Mango

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

先决条件:Flex(快速词法分析器生成器)。

给定输入,任务是检查输入是否为数字。

例子:

Input:  28
Output: digit

Input: a
Output: not a digit. 

Input: 21ab
Output: not a digit. 

下面是实现:

/* Lex program to check whether input is digit or not. */
%{
#include
#include
%}
/* Rule Section */
%%
^[0-9]*  printf("digit");
^[^0-9]|[0-9]*[a-zA-Z]  printf("not a digit");
. ;
%%
int main()
{
        // The function that starts the analysis
    yylex();
        return 0;
}

输出: