编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

这篇具有很好参考价值的文章主要介绍了编译原理——编写LEX文件:一个能识别所有运算式中包含的符号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

题目

1.首先需要有一个flex.exe文件

 2.在这个文件中写.l文件

3.win+r打开cmd命令

(1)进入flex.exe文件所在文件夹

(2)使用dir命令查看目录中的文件

 4.生成lex.yy.c文件

 5.生成lex.yy.exe文件

 (1)点击文件—>打开项目或文件

(2)选中lex.yy.c

(3)然后编译运行

(4)生成.exe文件

6.运行结果

(1)运行:输入 lex.yy

 (2)输入想要判断的运算式


题目

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

 如输入(a+10)*b,输出:
   OPERATER:(
   WORD:a
   OPERATER:+
   NUMBER:10
   OPERATER:)
   OPERATER:*
   WORD:b

1.首先需要有一个flex.exe文件

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

文件下载地址:

https://d0.ananas.chaoxing.com/download/d2d4fa63ad12b418b4750789a2f96ba2?at_=1665644185600&ak_=1a25479acd5967964e64a90cef0d0be9&ad_=befeb3e6dd0f4e91ed144cd992d9585a&fn=flex-2.5.4a-1

 2.在这个文件中写.l文件

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

/*hw1.l*/
%option main
DIGIT [0-9]+
WORD [a-zA-Z]+
OPT ("+"|"-"|"*"|"/"|"("|")")
%%
{DIGIT} {printf("NUMBER:%s\n",yytext);}
{WORD} {printf("WORD:%s\n",yytext);}
{OPT} {printf("OPERATER:%s\n",yytext);}

. {}
%%

3.win+r打开cmd命令

(1)进入flex.exe文件所在文件夹

命令框直接输入 E:(进入E盘)

然后使用cd命令进入该文件夹

(2)使用dir命令查看目录中的文件

确保有flex.exe和.l文件

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

 4.生成lex.yy.c文件

在命令框中输入:flex homework1.l

返回文件夹中即可看到生成了lex.yy.c文件

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

 5.生成lex.yy.exe文件

这里我们需要用编译器编译运行一下(我用的是Dev-C++,联想商店可下载)

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

 (1)点击文件—>打开项目或文件

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

(2)选中lex.yy.c

根据刚刚的文件路径找到文件

(3)然后编译运行

(可以直接按f9)

(4)生成.exe文件

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

6.运行结果

(1)运行:输入 lex.yy

编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

 (2)输入想要判断的运算式

例:(a+10)*b

 编译原理——编写LEX文件:一个能识别所有运算式中包含的符号

 此题结束。文章来源地址https://www.toymoban.com/news/detail-409455.html

到了这里,关于编译原理——编写LEX文件:一个能识别所有运算式中包含的符号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包