学习编译原理的朋友,都会看到书中提到的 lex & yacc 或 flex & bison 工具组合。这两组工具在 Unix, Linux, BSD 上使用不会有太大的问题,但在 Windows 上使用通常需要安装 MinGW+ (Msys GnuWin 或Msys2 ) 或者Cygwin。Win flex-bison 提供了 flex bison for Windows 的另外一种移植,将GNU m4宏处理器源代码集成进 win flex-bison ,不依赖Msys,Msys2,Cygwin 提供的模拟类 Unix 运行环境,不依赖GNU m4宏处理器便可生成 C 目标文件。
flex 见 http://sourceforge.net/projects/flex/
bison 见 http://www.gnu.org/software/bison/
目前,Msys GnuWin 上的 flex 2.5.35 和 bison (GNU Bison) 2.4.2 版本太陈旧了, N年没更新了。Msys2 ( http://sourceforge.net/projects/msys2/ ) 上的版本新, flex2.5.38 和 bison 3.0.2
Win flex-bison 见 http://sourceforge.net/projects/winflexbison/
Win flex-bison is a port Flex & Bison tools to the Windows platform
下面以 Win flex-bison 2.5.1和《flex & bison》第一章的简单计算器fb1-5为例,简单介绍如何使用。
首先从 http://sourceforge.net/projects/winflexbison/ 下载已经编译好的压缩文件 win_flex_bison-2.5.1.zip(不到700kb),
Update: 2014-01-04
Description
Win flex-bison is a windows port the Flex(the fast lexical analyser) and Bison (GNU parser generator). win_flex based onFlex version 2.5.37 source code and win_bisonbased on Bison version 2.7 and they depend on system libraries only.
UPDATE1: Bison version 3.0 available in Files section in win_flex_bison-2.5.zippackage.
UPDATE2: Now "winflexbison" available as package in Chocolatey (http://chocolatey.org/packages/winflexbison)