这是lex yacc for windows下载, yacc和lex在windows已经移植成功,其中常用的一个工具就是Parser Generator。这个工具使用yacc和lex能够生成Visual C++,Borland C++,Other C/C++以及相关Java代码。下面介绍一下这个工具是如何生成代码并使用Visual C++编译的。
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下的yacc 和 flex工具,安装时注意不要有空格,然后命令行进入bin目录,就可以用命令行调用这两个工具了,命令行如下:
flex xx.l
bison -d xx.y
建立数组,将单词读入,对单词的ASCII码进行判断,将在ASCII码值在一定区间进行区分(使用if语句来判断),分开来后,对其所在ASCII值区间的不同,给予以不同的属性(比如:系统保留字…),词法分析器完成后要能识别+,-,=等字符。
对输入的程序语句进行分析。对每个非终结点定义单个函数,定义了它的后继节点。然后用一个构造来的函数,使定义的后继节点符合语法,否则报错。