zoukankan      html  css  js  c++  java
  • 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生成文件进行编译了

  • 相关阅读:
    js内置数据类型
    vue禁止复制的方式
    阻止element组件中的<el-input/>的粘贴功能
    Vue插件集合
    qs.parse()、qs.stringify()、JSON.stringify() 用法及区别
    es6数组的一些函数方法使用
    文章段落首字母缩进两个字符
    深圳scala-meetup-20180902(3)- Using heterogeneous Monads in for-comprehension with Monad Transformer
    深圳scala-meetup-20180902(2)- Future vs Task and ReaderMonad依赖注入
    深圳scala-meetup-20180902(1)- Monadic 编程风格
  • 原文地址:https://www.cnblogs.com/gaoteng/p/2382587.html
Copyright © 2011-2022 走看看