Lex是一个生成词法分析器的计算机程序。 Lex读取指定词法分析器的输入流,并输出以C编程语言实现词法分析器的源代码。
用于执行lex程序的命令为:
lex abc.l (abc is the file name)
cc lex.yy.c -efl
./a.out
让我们看看LEX程序接受以元音开头的字符串。
例子:
Input :
//testing
#include
int main()
{
/* multiline comment
continue....
*/
return 0;
}
Output :
#include
int main()
{
return 0;
}
下面是实现:
/% Lex Program to remove comments from C program
and save it in a file %/
/*Definition Section*/
%{
%}
/*Starting character sequence for multiline comment*/
start \/\*
/*Ending character sequence for multiline comment*/
end \*\/
/*Rule Section*/
%%
/*Regular expression for single line comment*/
\/\/(.*) ;
/*Regular expression for multi line comment*/
{start}.*{end} ;
%%
/*Driver function*/
int main(int k,char **argcv)
{
yyin=fopen(argcv[1],"r");
yyout=fopen("out.c","w");
/*call the yylex function.*/
yylex();
return 0;
}
输出:
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。