📜  Lex程序对小于10且大于5的单词进行计数

📅  最后修改于: 2021-06-28 06:58:33             🧑  作者: Mango

问题:编写一个Lex程序以计算小于10且大于5的单词。

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

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

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

让我们看一下Lex程序对小于10且大于5的单词进行计数。

例子:

Input: geeksforgeeks hey google test lays
Output: 1 

下面是实现:

/*lex code to count words that are less than 10
    - and greater than 5 */
  
%{
  int len=0, counter=0;
%}
  
%%
[a-zA-Z]+ { len=strlen(yytext);
            if(len<10 && len>5)
              {counter++;} }
%%
  
int yywrap (void )
 {
    return 1;
 }
  
int main()
 {
  printf("Enter the string:");
  yylex();
  printf("\n %d", counter);
  return 0;
 }

输出: