版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pfl_327/article/details/83148040
有关flex的基本使用方法与配置
- 首先肯定是要有关于flex的工具
文件夹里面是这样的:
其实就是需要flex.exe这个文件。
下载地址:flex工具包
2.有了这个工具你先放到一个你喜欢的文件夹里面,比如:
3.然后打开cmd命令;
这个里面的t2.lex是我们用flex语言编写的程序(要和flex.exe放到同一个文件夹里面),flex t2.lex 会编译生成c程序lex.yy.c。
在文件夹中我们可以找c程序lex.yy.c:
这个c程序可以用自己有的编译器打开并运行(运行完毕关闭自己的编译器即可)生成可执行程序lex.yy.exe。
4.运行生成的可执行文件lex.yy。lex.yy<InputFile.
这里面test.txt是我们想要输入测试的一个c程序放在了记事本里。
做到这一步,一些基本的操作我们就会了!!
我把源程序也给大家测试一下吧!
首先是编写一个t2.lex程序:
/*t2.lex*/
%option main
%{
int line=1;
%}
DIGIT [0-9]
OINTEGER [1-9]{DIGIT}*
INTEGER ("+"|"-")?{OINTEGER}
DECIMAL {INTEGER}(.{OINTEGER})?
LETTER [a-zA-Z]
ID ({LETTER}|_)({LETTER}|_|{DIGIT})*
OPT ("+="|"-="|"*="|"/="|"+"|"-"|"*"|"/"|"<="|">="|"=="|"=")
%%
\n {++line;}
(int|float|double|short) {printf("line%d:(type,%s)\n",line,yytext);}
for {printf("line%d:(for,)\n",line);}
{INTEGER} {printf("line%d:(integer,%s)\n",line,yytext);}
{DECIMAL} {printf("line%d:(decimal,%s)\n",line,yytext);}
{ID} {printf("line%d:(identify,%s)\n",line,yytext);}
("("|")"|"{"|"}"|"["|"]") {printf("line%d:(bracket,\"%s\")\n",line,yytext);}
"\"" {printf("line%d:(QUOTE,)\n",line);}
{OPT} {printf("line%d:(OPT,%s)\n",line,yytext);}
. {}
%%
/*辅助过程部分*/
然后就是测试程序test,txt:
int main(){
int a = 10;
double b = -20.9;
if(a<=b)
a+=b;
return a;
}
最后我们这个文件夹里面有这些东西:
或许去下载我打包的文件夹:
下载地址:->文件包<-