📜  计算单词数的 Lex 程序

📅  最后修改于: 2022-05-13 01:57:14.190000             🧑  作者: Mango

计算单词数的 Lex 程序

Lex 是一个生成词法分析器的计算机程序,由 Mike Lesk 和 Eric Schmidt 编写。
Lex 读取指定词法分析器的输入流,并输出在 C 编程语言中实现词法分析器的源代码。
先决条件: Flex(快速词法分析器生成器)

例子:

Input: Hello everyone
Output: 2

Input: This is GeeksforGeeks
Output: 3

注意:单词可以由小写字符、大写字符和数字组成。

下面是计算单词数的实现。

/*lex program to count number of words*/
%{
#include
#include
int i = 0;
%}
  
/* Rules Section*/
%%
([a-zA-Z0-9])*    {i++;} /* Rule for counting 
                          number of words*/
  
"\n" {printf("%d\n", i); i = 0;}
%%
  
int yywrap(void){}
  
int main()
{   
    // The function that starts the analysis
    yylex();
  
    return 0;
}

输出: