C_and_CPP 板


LINE

前言   Lex&Yacc是在UNIX-LIKE的系统下很常见的工具,不过可能很多人都不知道 Lex&Yacc的用处,希望可以藉由我的这篇文章,让大部分的人可以在WIN32下使用 Lex&Yacc这个美好的工具XD。   有学过系统程式的人应该会知道COMPILER-COMPILER,意思是可以做COMPILER 的COMPILER,他最大的功用就是可以帮助你切TOKEN(lexical analyse)还有做 GRAMMAR的分析(syntax analyse),TOKEN的定义可以用REGULAR EXPRESSION(正规 表示式)来描述,如果还不清楚我说什麽的人,可以参考O`REILLY的Lex&Yacc(中 译本)。   目前C/C++编译器种类甚多,不过我还是选用我最熟悉的Visual C++ 6。 ========================================================================== 安装与设定Parser Generator   事实上,Lex&Yacc的实作有很多,我选用的是Bumble-Bee Software的版本: http://www.bumblebeesoftware.com/ Bumble-Bee Software的网页 http://www.bumblebeesoftware.com/pargen.zip 程式下载 如果不是商业用途的话,它应该是FREE的。 下载之後,解压缩,然後安装。打开Parser Generator这个IDE,点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(2): (C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\COMMON\MSDEV98\BIN) Compiler Include Directory: (C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\INCLUDE) Compiler Include Directory(2): (C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\MFC\INCLUDE) Compiler Library Directory: (C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\LIB) Compiler Library Directory(2): (C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\MFC\LIB) 注意:括号里面的是我自己编译器安装目录,也许你的和我的不一样,需要做适当的 调整。 所有的这些设定完成之後点ok。返回LibBuilder,点Build就可以编译vc++使用的lex 与yacc的函式库,花一点时间等待它编译完成。 ========================================================================== 设定Visual C++   现在开启VC++,然後依序点选Tools -> Options,然後点选Directories那一页 ,在各种档案的目录下加入以下的路径: Executable files: C:\PROGRAM FILES\PARSER GENERATOR 2\BIN Include files: C:\PROGRAM FILES\PARSER GENERATOR 2\CPP\INCLUDE Library files: C:\PROGRAM FILES\PARSER GENERATOR 2\CPP\LIB\MSVC32 Source files: C:\PROGRAM FILES\PARSER GENERATOR 2\CPP\SOURCE 接下来的部分我偷一下懒^^a,我只会提及比较重要的部份 详细的Project Settings请去看Parser Generator的help <Setup Visual C++ Version 4.0 and Above> 开启一个新的Project之後 在Project Settings的DEBUG设定必须在 C/C++ tab -> Preprocessor Definitions box 原本内容的後面加入 ",YYDEBUG" Link tab -> Object/Library Modules box 原本内容的後面加入 " yld.lib" 如果是要用release版本的话,必须修改一点上面的设定(选不同的LIBRARY)。 如果想在vc中直接编辑而且编译LEX&YACC的SOURCE CODE的话,可以看 <Compile YACC and Lex Source Files with Visual C++ Version 5.0 and Above> 这篇help ========================================================================== 开始使用Parser Generator   在Parser Generator的IDE中,选Project -> ParseWizard,然後language选"C" 其他的设定就按下一步。 将产生的.l和.y档经由PG编译後,会产生两个.CPP和两个.H的档 把她们加入VC的新Project中(别忘了要对project做上述设定)。 然後编译看看,如果成功的话应该就OK了,接下来就可以参考O`REILLY的书在WIN32 下写lex和yacc的程式了 ========================================================================== 後记   首先先和看完这篇文章的人说抱歉,因为写的很偷懒,原因是快考试了,可是又 想把自己的心得PO出来,所以看完了还觉得不清楚的人可以写信问我,或是写的有错 还是有lex和yacc语法的问题,也可以问我,有时间的话我一定会解答的。^^ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.101.216
1F:推 UNARYvvv:推~分享是好事情啊~ 02/01 20:07
2F:推 endl:推~ 02/01 21:10
3F:推 Colac:大推!!! 02/01 22:57
※ 编辑: swatches 来自: 211.74.101.216 (02/01 23:17)
4F:推 qrtt1:推...倒.. 02/02 08:48
5F:→ swatches:有人可以试一下VC7.NET的吗?...考完试想玩一下.NET的VC 02/02 11:26
※ 编辑: swatches 来自: 59.105.105.94 (02/02 12:54) crazying:转录至看板 NTUGIEE_EDA 02/06 22:32
6F:推 LoveCheer:push 04/16 21:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP