计算单词数的 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;
}
输出: