flex与bison的结合使用(计算器例子)

  				flex与bison的结合使用

1.详介
对于怎么让flex与bison结合到一起,有两种方法。一种是在VC6中建立一个工程,不过VC6工程中要做一些设置,才能顺利编译,所以第一种我就没采纳。
另外一种就是在bison的辅助性c语言例程部分加一个#include "lex.yy.c"就可以了。在CMD命令中,我们就可以先编译flex,>flex name.l 。
然后会生成lex.yy.c文件,不过在用编译器编译的时候会报错,原因我相信也是好理解的。因为在flex我们会返回bison中出现的终结符,即词法单元。在我们还没有编译bison文件的时候肯定是不认识的,所以报错。
我们无需理会错误(除非是真的自己写错了,看好错误的情况),继续在CMD中执行>bison -d name.y 命令。这样就默认完成连接,并且执行完了程序。
bison 工具包>地址<
2.细节
一些基本的过程就不说了,在前面已经提及了。
不明白的去看一下就好了。
网址:>基本过程<
现在我就讲一下不同的地方,
(1).我们肯定在文件夹里要导入bison的包,才能进行的编译。

(2).工具已经准备就绪,我们打开CMD命令(注意细节),执行>flex name.l 命令

flex与bison的结合使用(计算器例子)_第1张图片

(3).我们去文件夹看一下会有一个lex.yy.c文件,用编译器打开运行一下,会发现报错(一般是正常现象):
flex与bison的结合使用(计算器例子)_第2张图片

(4).执行 bison -d name.y 命令,在去文件夹看会有name_table.c文件。
flex与bison的结合使用(计算器例子)_第3张图片
(5).用编译器打开并运行name_tab.c程序,就可以实现了(这个程序可以直接在运行.c程序生成的对话框上操作就可以)。
flex与bison的结合使用(计算器例子)_第4张图片

你可能感兴趣的:(编译原理)