我是靠谱客的博主 魁梧热狗,这篇文章主要介绍flex+bison运行测试一个小例子,现在分享给大家,希望可以做个参考。

  1. 要测试运行实例的话,前提是保证配好环境变量。环境变量具体配置通过查阅其他博客完成了,接下来演示如何查看是否配置成功:
    ①进入cmd,输入flex --version
    说明flex环境变量配置好了
    ②输入bison --version
    说明bison环境变量配好

  2. 我使用codeblocks进行后面的编译,所以先对codeblocks进行一些配置。进入cb:设置->编译器
    在这里插入图片描述
    点击右边的小三角,拖到最右边:
    在这里插入图片描述在这里插入图片描述
    进入高级选项,会弹出一个确认框,确认:
    在这里插入图片描述
    对.l进行配置:在Source ext.的下拉框中选择l,表示将针对flex文件进行配置,宏命令行下面的编辑框中会显示利用flex命令对.l文件进行处理的命令行(命令及命令参数)。由于CodeBlocks使用的是移植自Linux的MinGW,所以其缺省的命令还是Linux下使用flex的命令。现在我们需要更新为:win_flex -o$file_dir/$file_name.flex.cpp --wincompat $file,其中“$file_dir/$file_name.flex.cpp”是要生成的cpp文件的目录+文件名称。你可以根据你的需要选择由flex生成的文件是什么名字。相应的在Generated files的编辑框中同样修改为“$file_dir/$file_name.flex.cpp”,和前面的生成一致,这样能够让CodeBlocks找到生成的文件进行编译处理。这样.l的配置就完成了:
    在这里插入图片描述
    对.y进行配置:同样在Source ext.的下拉菜单中选择y,进入.y文件的相关配置中,替换原来的配置项为:
    win_bison --output=$file_dir/$file_name.tab.cpp --defines=$file_dir/$file_name.tab.h $file(具体可以参考win_bison的帮助,通过win_bison --help)。相应Generate files也修改为$file_dir/$file_name.tab.cpp 和$file_dir/$file_name.tab.h。点击OK即完成配置,这样就可以添加.y和.l到你的工程中了。要记得去重启cb!

  3. 接下来进入自己创建好的文件夹中,复制路径,cmd进入命令行,cd 自己的路径,输入type nul>hello.l创建一个hello.l文件:
    在这里插入图片描述
    发现文件夹中生成了文件:
    在这里插入图片描述
    右击以记事本方式打开,然后把lex代码写进去,保存:(注意这里面有.l与.y文件,要分开创建)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
hello.l %{ #include <stdlib.h> #include "y.tab.h" %} %% ("hi"|"oi")"n" { return HI; } ("tchau"|"bye")"n" { return BYE; } . { yyerror(); } %% int main(void) { yyparse(); return 0; } int yywrap(void) { return 0; } int yyerror(void) { printf("Errorn"); exit(1); } hello.y %token HI BYE %% program: hi bye ; hi: HI { printf("Hello Worldn"); } ; bye: BYE { printf("Bye Worldn"); exit(0); } ;

在这里插入图片描述
在命令框输入命令:win_flex --nounistd hello.l
在这里插入图片描述
将产生编译好的.c文件:
在这里插入图片描述
输入:type nul>hello.y,填入上面hello.y的代码保存,
输入命令:win_bison -d -o y.tab.c hello.y
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
4. 接下来可以开始测试了:
①在那个文件夹中新建test文件夹,用来存放cb新建的工程:
在这里插入图片描述
②进入cb,新建控制台工程:
在这里插入图片描述在这里插入图片描述
③把以下3个文件拖进工程:
在这里插入图片描述

编译此工程,生成:
在这里插入图片描述
测试成功!

最后

以上就是魁梧热狗最近收集整理的关于flex+bison运行测试一个小例子的全部内容,更多相关flex+bison运行测试一个小例子内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部