Parser Generator的使用说明

Parser Generator的使用说明
2010年05月13日 星期四 18:35
parser generator的使用方法

这里只以vc6.0为例,首先打开parser generator编辑器,选择Project->LibBuilder

在LibBuilder对话框中选中Visual C++(32-bit),按属性键Properties后确以下设置

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

Compiler Library Directory(2)              无

Libraries下的库文件全部选中后ok

LibBuilder对话框->Build(编译过程可能几分钟)

编译完成后我们就可以使用parser generator编写lex或是yacc程序了

Project->ParserWizard

Step1 工程设定(一点需要注意语言可以选择c或是c++或java)

Step2 工程设定(默认创建带main函数的yacc文件和lex文件)

Step3 yacc文件设定

Step4 lex文件设定

Lex和yacc的语法参考http://www.ibm.com/developerworks/cn/linux/sdk/lex/

编辑好代码后Project->RebBuild All在你创建好的工程下自动生成Step1选定语言的文件(.h/..c/.cpp/.java)

之后在vc6.0加入如下设置

Tool->Option-> directory

Bin file :

安装目录\PARSER GENERATOR 2\BIN

Include file:

安装目录\PARSER GENERATOR 2\CPP\INCLUDE

Library file

安装目录\PARSER GENERATOR 2\CPP\LIB\MSVC32

Soure file

安装目录\PARSER GENERATOR 2\CPP\SOURCE

创建vc6.0工程

将生成文件复制到vc6.0创建工程下

Source files和Header Files中加入生成文件(.h/.c/.cpp)

在工程设定中Project->Settings For box选中win32 debug

c/c++ ->Category选中General ->Preprocessor Definitions加入YYDEBUG

在工程Project设定Project->Settings For box中选中all

link -> Category选中General->Object/Library Modules中加入yld.lib

这里需要注意的是yld.lib为parser generator的DUBUG单线程版本,对于vc的控制台程序是可以的,如果使用了MFC或是Windows applications程序则需要对应下表追加

Library(DEBUG)

Run-time Library

Description

yld.lib

Debug Single-Threaded

单线程静态链接库(DEBUG版本)

ylmtd.lib

Debug Multithreaded

多线程静态链接库(DEBUG版本)

ylmtrd.lib

Debug Multithreaded DLL

多线程静态链接库当run time library 使用动态库(DEBUG版本)

ylmtrid.lib    

Debug Multithreaded DLL

多线程动态链接库当run time library 使用动态库(DEBUG版本)

Library(RELEASE)

Run-time Library

Description

yl.lib

Single-Threaded

单线程静态链接库(RELEASE版本)

ylmt.lib

Multithreaded

多线程静态链接库(RELEASE版本)

ylmtr.lib

Multithreaded DLL      

多线程静态链接库当run time library 使用动态库(RELEASE版本)

ylmtri.lib

Multithreaded DLL      

多线程动态链接库当run time library 使用动态库(RELEASE版本)

如果使用了动态库版本需要在程序运行环境中追加DLL的地址

安装目录\PARSER GENERATOR 2\CPP\LIB\MSVC32

如果需要链接yacc或是lex的dll.在Preprocessor Definitions下加入YYDLL.

这样就可以使用vc6.0对lex生成文件进行编译了

原文地址:https://www.cnblogs.com/gaoteng/p/2382587.html