Lex和Yacc应用方法(九).Windows下使用Lex和Yacc
草木瓜 20070904
一、序
不想Lex和Yacc系列的最后一篇文章竟如此“难产”,已时隔三个月之久。不由慨叹自由可支
配时间是如此之少,如此岂不谓新时代的“奴隶”~
罢罢罢,闲话少叙,回归正题,本文主要介绍在Windows下如何去使用Lex和Yacc,以作为
本系列文章的终结。
二、方法介绍
Windows下使用Lex和Yacc多种多样,简单罗列如下:
a.Cygwin
Cygwin是Windows平台上运行的unix/linux模拟环境,由Cygnus Solutions开发。
Cygnus起初把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标
文件。然后再把这些工具移植到windows平台上去。
移值方案有多种,一是基于win32 api对这些工具的源代码进行大幅修改。但工作量太大,他
们采取了另一种方法,即开发一个共享库(cygwin.dll),把win32 api中没有的unix风格的调用(如
fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32 api写了一个unix
系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主
机上的交叉编译器来生成可以在windows平台上运行的工具集。
以这些移植到windows平台上的开发工具为基础,Cygnus又逐步把其他的工具(几乎不需要
对源代