在这里,将介绍由英国Bumble-Bee Software公司生产的Windows环境下的YACC和LEX集成环境Parser Generator。Parser Generator是Windows下YACC和LEX的实现。它包括一个图形用户界面,同时包括YACC和Lex两个版本,分别叫做AYACC和 Alex。Parser Generator非常适合于与VC++集成。
在安装了Parser Generator后,执行以下步骤,即可使VC++编译和连接由Parser Generator产生的文件。
1.目录设置
在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/msdev子目录的路径。
(7) 在Show Directories for下拉列表框中选择Source Files。
(8) 在Directories框中,点击最后的空目录,并填入Parser Generator的Source子目录的路径。
(9) 点击OK按钮,Options对话框将接受设置并关闭。
VC++在就可以找到包含文件yacc.h和lex.h以及YACC和Lex的库文件。
2.项目设置
对于每个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 ylmtdlld.lib。
(9) 在Settings for下拉列表框中选择Win32 Release。
(10) 重复第8步的工作。
(11) 点击OK按钮,Project Settings对话框将接受设置并关闭。
VC++现在可以从特定的库中接受YACC和Lex所需的函数和变量。
3.应用
(1)在Parser Generator下的编辑窗口输入YACC源程序(扩展名必须为.y)。
(2)用Parser Generator下的Project菜单的Compile file命令编译源程序,生成相应的C语言源程序(.cpp)。
(3)用VC++编译,连接C语言源程序,生成可执行程序(.exe)后即可执行。
用的VC 2005, 和原来VC 6的设置项对应不上, 很多半天都找不到.好不容易找全了, 却还是编译出错.
最后,只好选择再装一个VC6, 嗯, 两个VC, 不错.
先介绍一下Parser Generator,主页下载:http://www.bumblebeesoftware.com/downloads.htm
Parser Generator is a YACC and Lex programming tool for Windows. As well as including a Graphical User Interace, the software also includes two versions of YACC and Lex, called AYACC and ALex. Parser Generator is able to generate C, C++ and Java parsers and lexical analysers. This includes both Unicode and Multibyte Character Set (MBCS) variants. In your applications you can create multiple, thread safe, instances of these parsers and lexical analysers.
下面说一下windows环境下parser generator和vc++的各项配置
(一)parser generator的环境设置
安装好parser generator,打开集成开发环境,点项目Project菜单,在下拉菜单中选LibBuilder,弹出LibBuilder对话框选择属性按钮,弹出compiler properties 对话框:
Name 选择Visual C++ (32-bit)
Directory :msvc32
options:
依次为 vc++版本(Versoin 6)
是否支持unicode码。(选择默认)
是否把w_char_t作为内建类型。(选择默认)
下边是VC的各种目录:
依次为
Compiler Bin Directory (C:/PROGRAM FILES/MICROSOFT VISUAL STUDIO/VC98/BIN
Compiler Bin Directory(C:/PROGRAM FILES/MICROSOFT VISUAL STUDIO/COMMON/MSDEV98/BIN
Compiler Include Directory(C:/PROGRAM FILES/MICROSOFT VISUAL STUDIO/VC98/INCLUDE
Compiler Include Directory(C:/PROGRAM FILES/MICROSOFT VISUAL STUDIO/VC98/MFC/INCLUDE
Compiler Library Directory(C:/PROGRAM FILES/MICROSOFT VISUAL STUDIO/VC98/LIB
Compiler Library Directory(C:/PROGRAM FILES/MICROSOFT VISUAL STUDIO/VC98/MFC/LIB
注意:编译器安装目录根据个人安装目录需要做相应的调整。所有的这些设置完成之后点ok。
最后一步,配置parser generator的properties,如图即可:
返回LibBuilder。点Build就可以编译vc++使用的lex与yacc的lib库。
注:我参考Vs 2003.net的设置,在VC 2005下进行相应设置, 结果lex与yacc的lib库没能编译通过, 可能是我设置错误, 不应该是尚不兼容的问题吧.
生成库文件在软件安装目录下的D:/Parser Generator 2/Cpp/Lib/msvc32目录下。
(二)vc++环境的设置
1.目录设置
为了在VC++中可以找到包含文件yacc.h和lex.h以及YACC和Lex的库文件,需要对VC++进行相关的目录设置
(1) 选择Tools菜单中的Options命令,打开Options对话框。
(2) 选择Directories选项卡。
(3) 在Show Directories for下拉列表框中选择Include Files。
在Directories框中,点击最后的空目录,并填入 F:/PARGEN/CPP/INCLUDE(根据个人安装目录需要做相应的调整)
(4) 在Show Directories for下拉列表框中选择Library Files。
在Directories框中,点击最后的空目录,并填入F:/PARGEN/CPP/LIB/MSVC32
(5) 在Show Directories for下拉列表框中选择Source Files。
在Directories框中,点击最后的空目录,并填入F:/PARGEN/CPP/SOURCE
(6) 点击OK按钮,Options对话框将接受设置并关闭。
2.项目设置
对于每个VC++项目,都需在VC++中进行以下设置,以使VC++可以从特定的库中接受LEX和YACC所需要的函数和变量
(1) 选择Project菜单中的Settings命令,打开Project Settings对话框。
(2) 在Settings for下拉列表框中选择Win32 Debug。
(3) 选择C/C++选项卡, 在Category下拉列表框中选择General。
在Preprocessor Definitions框中,在当前文本的最后,输入
,YYDEBUG
注:对应到VC 2005为C/C++->Preprocessor->Preprocessor Definitions.
(4) 选择Link选项卡,在Category下拉列表框中选择General。
在Object/Library Modules框中,在当前文本的后面,输入yld.lib
注:VC 6中的Object/Library Modules对应到VC 2005为Propert->Configuration Properties->Linker->Input->Additional Dependencies ,找了好久.
(5) 在Settings for下拉列表框中选择Win32 Release。
(6) 重复第4步的工作。
(7) 点击OK按钮,Project Settings对话框设置完毕。
这样设置之后我们就可以用vc++编译Parser Generator 生成的c文件了。具体为:
先打开Parser Generator 集成开发环境。点击Project菜单,点击下拉菜单中的ParseWizard菜单,一路下去建立一个工程。然后点击project菜单下的的Rebuild All。在项目文件夹下就生成了相应c文件与h文件。
再用VC++建立一个空控制台工程,然后把用用Parser Generator
生成的c文件和头文件加入工程中。接着对VC++进行上面所说的项目设置,然后就可以编译运行了。新手可以使用parser generator 自带的范例,这样方便检验环境的配置是否正确.