编译原理第三版第三章lex描述文件答案

写在前面

好吧,直接给答案。救人于水火

系统:centos7

步骤

0、安装环境,这个百度就有了
1、打开终端,进入管理员模式:su
2、输入密码:你在安装系统时根用户的密码
3、打开指定文件夹:cd 路径
4、创建lex文件:touch 123.l
5、打开lex文件:vim 123.l
6、保存lex文件:自己百度
7、运行步骤:
7.1 lex 123.l # 生成一个lex.yy.c文件
7.2 cc -o count lex,yy.c
7.3 ./count # 这里斜杠前面有个点
7.4 键入KeywordIdentifierOperatorNumber
7.5 截图交作业
8、删除文件 rm 指定文件
9、我运行的结果截图
在这里插入图片描述

%%
[0-9A-Fa-f]+H { printf("Number"); }
[A-Za-z][A-Za-z0-9]* { printf("Identifier");}
"=" { printf("Operator"); }
"LET" {printf("Keyword");}
. {}
%%

或者

%%
"LET" {printf("Keyword");}
[0-9A-Fa-f]+H { printf("Number"); }
[A-Za-z][A-Za-z0-9]* { printf("Identifier");}
"=" { printf("Operator"); }
. {}
%%

我是使用第二个,因为第一个会有个warning:1232.l:4: warning, 无法匹配规则

写在后面

为什么会变换写法呢?这位大佬这么说

还有其他方法用gcc来运行,可能我没配置好,我这里是有问题的,即用gcc运行会报错什么编译错误,无法识别,匹配错误,line6有问题之类的。
希望小伙伴能留下解决方案

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐子元竟然被占了!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值