关于flex的一些基本使用方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pfl_327/article/details/83148040

有关flex的基本使用方法与配置

  1. 首先肯定是要有关于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;
}

最后我们这个文件夹里面有这些东西:

或许去下载我打包的文件夹:
下载地址:->文件包<-

猜你喜欢

转载自blog.csdn.net/pfl_327/article/details/83148040