编译原理使用flex/bison实现英文字母小转大
1. flex/bison环境配置
配置好的可以跳过此步,下面是flex/bison工具包。
链接:https://pan.baidu.com/s/1vHOrw96LKVYnp9Ry6ko91Q 提取码:0e9w
复制这段内容后打开百度网盘手机App,操作更方便哦
- 下载解压好后放到电脑上的一个目录下,我这是放在了C盘
- 然后添加环境变量,在高级系统设置里,新建(点新建就行)添加两个新的变量,分别是
flex
(C:\win_flex_bison-latest\win_flex.exe)和bison
(C:\win_flex_bison-latest\win_bison.exe),对应文件是刚刚那个文件里面,里面有两个.exe,如图。
-
注意,弄好后不要叉掉,全部点确定来退出这些窗口。
-
然后按 win+R 键,输入
cmd
来打开DOS命令窗口
输入cd C:\win_flex_bison-latest
进入刚刚放文件的位置
- 再输入
win_flex
或者win_bison
查看环境配置情况。
- 有这个效果,环境就可以了。(这个DOS窗口不要关,后面还用得上。)
2.第二步
- 在
……\win_flex_bison-latest
里面新建一个文本文档,把下面的代码放进去,然后重命名为 test.l 。用其他名字也行,尾缀是 .l。
test.l
%option noyywrap
%{
%}
%%
[a-z] printf("%c",yytext[0]+'A'-'a');
%%
int main() {
yyin = stdin;
return yylex();
}
- 然后继续使用DOS窗口,输入
win_flex test.l
,可以看到文件夹下生成了一个名为lex.yy.c
的c源文件。
- 继续输入
gcc lex.yy.c
,会生成一个a.exe
的可执行文件。(这个gcc命令也需要配置环境的。如果没有就用 DEV-C++ 打开lex.yy.c
,然后编译运行。)
- 最后双击打开这个
a.exe
就可以运行了,输入一些数据进行测试。
我也是在校生,做过这个实验,就来跟大家分享一下步骤😀