flex与bison入门,编译原理:flex编写词法分析器(使用windows环境)

目录

1.题目

2.flex与bison的下载安装

(1)文件获取

途径一:文件下载地址如下

途径二:加qq群935465933领取

(2)安装

bison安装

flex安装

3. 编写.l文件

4.生成lex.yy.c文件,以及编译操作

(1)打开命令窗口

(2)flex指令生成lex.yy.c文件

(3)编译lex.yy.c文件


1.题目

编写LEX文件:一个能识别所有运算式中包含的符号:数字(0-9)+,变量(a-zA-Z)+,运算符:“+,-,*,/,(,)”。
 如输入(a+10)*b,输出:
   OPERATER:(
   WORD:a
   OPERATER:+
   NUMBER:10
   OPERATER:)
   OPERATER:*
   WORD:b
 

2.flex与bison的下载安装

(1)文件获取

途径一:该文章绑定文件

途径二:文件下载地址如下

链接:https://pan.baidu.com/s/1GWCSWVex932zWPkdrV89_g?pwd=link 
提取码:link

途径三:加qq群935465933领取

群密码:link

没有解压缩软件的朋友可以在群内自行下载

(2)安装

bison安装

flex安装

以上两款软件的安装流程都没有什么需要特别注意的点,大家自行安装即可。(建议放在自己容易找到的文件夹中)

bison我们在后续的学习中会用到,先下载下来不亏;

下面我们进入flex安装后bin目录,后续操作都将在这里进行。

3. 编写.l文件

首先在此目录下新建一个文本文件,然后重命名,把他改为homework1.l

ps:不会显示,修改文件后缀的朋友可以搜索(怎么显示文件后缀),网上教程很多,在此不过多阐述

在此,我们右键.l文件,选择打开方式,用记事本或者Notepad打开,输入下列代码即可

ps:这里的END是便于大家作业要求输出学号用的,可以自行更改输出的语句

%option main	
 /*定义数字类型NUM*/
NUM [0-9]+
 /*定义字母类型WORD*/	 
WORD [a-zA-Z]+		
 /*定义字符类型OPT*/
OPT ("+"|"-"|"*"|"/"|"("|")")	
 /*结束输出自己的信息,不需要可以连同第14行删除*/
END("\n")
%%
{NUM} {printf("NUMBER:%s\n",yytext);}
{WORD} {printf("WORD:%s\n",yytext);}
{OPT} {printf("OPERATER:%s\n",yytext);}
{END} {printf("\n程序运行结束\n",yytext);}
. {}
%%
 

保存后退即可出

4.生成lex.yy.c文件,以及编译操作

(1)打开命令窗口

接着在该目录下打开命令窗口

点击,输入cmd,回车即可

(2)flex指令生成lex.yy.c文件

dir

首先查看目录,确保我们所在文件位置与.l文件,flex文件一致

然后用flex指令生成lex.yy.c文件

flex homework1.l

这样便是成功了,如果出错检查空格等错误。

(3)编译lex.yy.c文件

回到目录,这时我们看到文件里多了lex.yy.c文件

右键点击,选择打开方式

点击编译,弹出命令框,然后输入即可

输入题目所要求式子即可

  • 32
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值