写在前面
好吧,直接给答案。救人于水火
系统: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有问题之类的。
希望小伙伴能留下解决方案