📜  Lex程序识别标识符

📅  最后修改于: 2021-06-30 01:37:54             🧑  作者: Mango

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

在C语言中,标识符必须以字母或下划线开头,不能以数字或任何其他特殊字符开头,而且可以以数字开头。

例子:

gfg : valid identifier
123 : invalid identifier
_abc12 : valid identifier
#abc : invalid identifier

让我们看一下lex程序,以确定输入是否为标识符。

/*lex code to determine whether input is an identifier or not*/
% {
#include 
    %
}
  
    / rule section % %
    // regex for valid identifiers
    ^[a - z A - Z _][a - z A - Z 0 - 9 _] * printf("Valid Identifier");
  
// regex for invalid identifiers
^[^a - z A - Z _] printf("Invalid Identifier");
.;
% %
  
    main()
{
    yylex();
}

输出: