可用于Win32平台的flex/bison

虽然flex/bison是Linux世界的东东,有些情况下却需要在Windows上使用它们,自己用MinGW编译flex和bison又没那个能力,只好找一些第三方的port,好在终于让我找到了一个,虽然比较老,但是用于学习编译原理还是够了:)

可以到这个网址下载flex和Bison的win32版本:
    http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html

实际上需要下载以下四个文件:
文件名URL
flex.exehttp://www.monmouth.com/~wstreett/lex-yacc/flex.exe
bison.exehttp://www.monmouth.com/~wstreett/lex-yacc/bison.exe
bison.hairyhttp://www.monmouth.com/~wstreett/lex-yacc/bison.hairy
bison.simplehttp://www.monmouth.com/~wstreett/lex-yacc/bison.simple

对这4个文件的安装有如下要求:
  * flex.exe和bison.exe必须放进环境变量 PATH所包含的目录里
  * 文件bison.hairy和文件bison.simple可以安装到任意位置,只需满足:
    o 设置环境变量 BISON_HAIRY为文件bison.hairy的绝对路径
    o 设置环境变量 BISON_SIMPLE为文件bison.simple的绝对路径

注意:
  这个bison的版本比较老,输出文件缺省命名规则为:
     Input: foo.y
     Output: foo_tab.c & foo_tab.h
  而我在fedora9下面用过的bison输出文件为foo.tab.c
  编写 lex.l 时注意 #include "foo_tab.h"

经过测试,生成的lex.yy.c & foo_tab.h & foo_tab.c 可以 在MinGW GCC下面正确编译
  ** 但是 在 VC++ 6.0 和 Borland C++Builder 6  下面编译均不通过! **
据我观察bison.hairy和bison.simple这两个文件可能是bison用于生成parser的C代码模板,
猜想:能否通过改写bison.hairy和bison.simple从而使bison产生可用于VC和BCB的代码?
其他问题还有待进一步测试...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值