这里所用到的Parser Generator工具实际上是将YACC和LEX在windows的成功移植后的产物。这个工具使用YACC和LEX能够生成Visual C++,Borland C++,Other C/C++以及相关Java代码。下面介绍一下这个工具是如何生成代码并使用Visual C++编译的。(可以在http://www.bumblebeesoftware.com/downloads.htm下载Parser Generator)
在安装了Parser Generator后,执行以下步骤,即可使VC++编译和链接由Parser Generator产生的文件。下边是关于编程环境配置的详细步骤:
1.Parser Generator的环境配置:
(1)首先打开Parser Generator编辑器,选择Project->LibBuilder;
(2)在LibBuilder对话框中选中Visual C++(32-bit),按属性键Properties后将修改各个属性,具体修改参考表3.1;
(3)Libraries下的库文件全部选中后ok;
(4)LibBuilder对话框->Build(编译过程可能几分钟)。
编译完成后我们就可以使用Parser Generator编写LEX或是YACC程序了
表3.1 VC环境设置
Script file name |
\Cpp\Script\msvc32.lbs |
Name |
Visual C++(32-bit) |
Directory |
msvc32 |
Compiler Version |
Version 6 |
Unicode |
True |
Treat wchar_t as Built-in Type |
False |
Compiler Bin Directory |
安装路径\Microsoft Visual Studio\Vc98\bin |
Compiler Bin Directory(2) |
安装路径\Microsoft Visual Studio\Common\MSDev98\bin |
Compiler Include Directory |
安装路径\Microsoft Visual Studio\Vc98\include |
Compiler Include Directory(2) |
无 |
Compiler Library Directory |
安装路径\Microsoft Visual Studio \Vc98\lib |
2.Parser Generator工程的建立过程如下:
(1)Project->ParserWizard;
(2)工程设定(一点需要注意语言可以选择C或是C++或java);
(3)工程设定(默认创建带main函数的YACC文件和LEX文件);
(4)YACC文件设定;
(5)LEX文件设定;
(6)编辑好代码后Project->RebBuild All,在你创建好的工程下自动生成第一步选定的语言文件。
3.VC的环境设置
在VC++中执行以下步骤,每个步骤只执行一次。
(1)选择Tools菜单中的Options命令,在屏幕上即会出现Options对话框;
(2)选择Directories选项卡;
(3)在Show Directories for下拉列表框中选择Include Files;
(4)在Directories框中,点击最后的空目录,并填入Parser Generator的include子目录的路径;
(5)在Show Directories for下拉列表框中选择Library Files;
(6)在Directories框中,点击最后的空目录,并填入Parser Generator的lib\msvc32子目录的路径;
(7)在Show Directories for下拉列表框中选择Source Files;
(8)在Directories框中,点击最后的空目录,并填入Parser Generator的Source子目录的路径;
(9)点击OK按钮,Options对话框将接受设置并关闭。
VC++现在就可以找到包含文件YACC.h和LEX.h以及YACC和LEX的库文件。
4.VC项目设置
对于每个VC++项目,都需在VC++中执行以下步骤:
(1)选择Project菜单中的Settings命令,在屏幕上即会出现Project Settings对话框;
(2)在Settings for下拉列表框中选择Win32 Debug;
(3)选择C/C++标签;
(4)在Category下拉列表框中选择General;
(5)在Preprocessor Definitions框中,在当前文本的最后,输入YYDEBUG;
(6)选择Link标签;
(7)在Category下拉列表框中选择General;
(8)在Object/Library Modules框中,在当前文本的后面,输入yld.lib ylmtd.lib;
(9)在Settings for下拉列表框中选择Win32 Release;
(10)重复第8步的工作;
(11)点击OK按钮,Project Settings对话框将接受设置并关闭。
VC++现在就可以从特定的库中接受YACC和Lex所需的函数和变量。
5.应用
(1)在Parser Generator下的编辑窗口输入YACC源程序(扩展名必须为.y);
(2)用Parser Generator下的Project菜单的Compile file命令编译源程序,生成相应的C语言源程序(.cpp);
(3)将Parser Generator生成的文件(.cpp或者.c)添加到一个VC的新建工程中,用VC++编译,编译链接C语言源程序,生成可执行程序(.exe)后即可执行。
由此我们了解了Parser Generator的用法,以及如何将生成的C代码加入到所建的VC工程中,以及在如何使用VC下将代码编译运行。