Abstract

在开发程序的过程中经常会遇到文本解析的问题,例如:解析 C 语言源程序,编写
脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用 C 或者 C++直接编写解析程序,这对于简单格式的文本信息来说,不会是什么问题,但是
对于稍微复杂一点的文本信息的解析来说,手工编写解析器将会是一件漫长痛苦 而容易出错的事情。本系列文档就是专门用来由浅入深的介绍两个有名的
Unix 工 具 Lex 和 Yacc,并会一步一步的详细解释如何用这两个工具来实现我们想要的任何 功能的解析程序,为了方便理解和应用,我会在该系列的文章中尽可能的采用具
体可行的实例来加以阐释,而且这种实例都是尽可能的和具体的系统平台无关的 ,因此我采用命令行程序作为我们的解析程序的最终结果。

1 环境配置篇

1.1 必备工具(备注:所需工具均在我的资源文件中可找到)

Windows平台下面Lex 和Yacc开发环境所需要安装的程序:

(1)Lex(flex.exe)

(2)Yacc(bison.exe)

(3)C/C++编译器

1.2 flex和bison安装

flex.exe和bison.exe是UnxUtils包中的文件,已经将许多Unix/Linux平台的程序都移植到了Windows平台,可以直接到UnxUtils网站下载,下载解压缩之后在系统的PATH环境变量中增加UnxUtils所有的exe文件所在的目录,使
得DOS命令行可以直接搜索到flex.exe和bison.exe,除此之外还需要从网络上下载 bison需要的bison.simple和bison.hairy两个文件,并且还要分别设置环境变量
BISON_HAIRY指向bison.hairy,BISON_SIMPLE指向bison.simple。

然后,打开cmd检查是否安装成功,如下图所示:

Lex与Yacc学习(一)之环境配置篇-LMLPHP

1.3 C/C++编译器

我们使用的flex和bison都是GNU的工具,所以为了方便,采用的c/c++编译器也是GNU的编译器GCC,需要WINDOWS版的MinGW编译器,在可以到MinGW的主页下载安装。

安装完毕后,将MinGW下的bin目录添加到系统环境变量的Path中。

配置完毕。

05-11 13:49