Lex和Yacc从入门到精通熊春雷Abstract在开发程序的过程中经常会遇到文本解析的问题,例如:解析C语言源程序,编写脚本引擎等等,解决这种文本解析的方法有很多,一种方法就是自己手动用C或者C++直接编写解析程序,这对于简单格式的文本信息来说,不会是什么问题,但是对于稍微复杂一点的文本信息的解析来说,手工编写解析器将会是一件漫长痛苦而容易出错的事情。
本系列文档就是专门用来由浅入深的介绍两个有名的Unix工具Lex和Yacc,并会一步一步的详细解释如何用这两个工具来实现我们想要的任何功能的解析程序,为了方便理解和应用,我会在该系列的文章中尽可能的采用具体可行的实例来加以阐释,而且这种实例都是尽可能的和具体的系统平台无关的,因此我采用命令行程序作为我们的解析程序的最终结果。
1、环境配置篇开发Lex和Yacc程序最需要的程序就是lex和yacc了,如果你是Unix或者Linux系统,则系统自带了这两个工具,无需安装,不过值得说明的是GNU/Linux下面的Lex是flex,而Yacc则是bison。
另外需要的就是一个C/C++语言编译器,由于我们采用的是GNU的lex和yacc,所以,理所当然的我们就使用GNU的编译器了,如果是Unix或者Linux系统,那么编译器应该已经安装了。
在这里我重点讨论的是Windows系统环境下的Lex和Yacc程序的开发,至于为什么选择Windows系统作为开发平台,则是为了尽可能的让初学者容易入门。
1.1.必备工具言归正传,首先列举Windows平台下面Lex和Yacc开发环境所需要安装的程序:1.Lex(flex.exe)和Yacc(bison.exe)环境2.C/C++编译器1.2.flex和bison值得说明的是,flex.exe和bison.exe是UnxUtils包中的文件,已经将许多Unix/Linux平台的程序都移植到了Windows平台,可以直接到UnxUtils网站下载,下载解压缩之后在系统的PATH环境变量中增加UnxUtils所有的exe文件所在的目录,使得DOS命令行可以直接搜索到flex.exe和bison.exe,除此之外还需要从网络上下载bison需要的bison.simple和bison.hairy两个文件,并且还要分别设置环境变量BISON_HAIRY指向bison.hairy,BISON_SIMPLE指向bison.simple。
Tip如果觉得麻烦也可以直接使用我做好的flex和bison环境,点击这里下载。
解压缩lexyacc.rar之后运行里面的lexyacc.bat文件就会得到一个lex和yacc环境,下图是简单的运行结果:
2026/1/1 15:30:16 1.51MB lex yacc 编译原理
1
本文档详细介绍了sybaseASE的从基本感念到具体的详细的操作,目录如下:1.基本概念篇 51.1什么是SybaseAdaptiveServerEnterprise(ASE)? 51.2Sybase具有哪些Server以及这些Server的用途? 5BackupServer 51.3什么是登录帐户? 51.4什么是角色,Sybase具有哪些常用的系统角色以及这些系统角色的作用? 51.5什么是超级用户,它具有哪些特点? 61.6什么是数据库设备? 71.7什么是数据库? 71.8Sybase具有那些重要和必要的系统数据库,它们的作用分别是什么? 71.9什么是数据库用户,以及登录帐户与数据库用户的区别? 71.10什么是用户定义组? 71.11什么是数据库的属主? 81.12什么是数据库选项,Sybase具有那些常用的数据库选项? 81.13什么是数据库一致性检查,Sybase具有哪些常用的检查命令? 91.14什么是APL表和DOL表,它们的特点和区别? 91.15什么是Sybase的锁,它具有哪些类型以及这些锁的作用? 91.16什么是数据库备份和恢复? 112.日常维护篇 122.1常规数据库服务器维护的基本要点和步骤? 122.2例行数据库备份恢复策略和必要步骤? 132.3查找定位数据库服务器性能问题的常用工具和方法? 142.4开发数据库应用时需要开发人员重点关注的几个问题? 182.5如何在Windows平台上启动和关闭Sybase数据库服务器? 182.6如何在UNIX平台上启动和关闭Sybase数据库服务器? 182.7如何使用交互式管理工具isql? 192.8如何在Windows操作系统上安装OpenClient12.0 192.9如何使用图形化管理工具SybaseCentral? 192.10如何使用图形化管理工具Dsedit实用程序? 222.11如何创建登录帐户? 262.12如何修改自己以及其登录帐户的口令? 262.13如何查看登录帐户的信息? 272.14如何设置登录帐户的缺省数据库? 272.15如何为登录帐户授予系统角色? 272.16如何创建数据库设备? 282.17如何把数据库设备设置为缺省设备? 282.18如何镜像数据库设备和取消数据库设备镜像? 282.19如何创建数据库? 292.20如何在SybaseCentral中配置MonitorServer? 302.21如何配置用户自定义命名缓存以及缓冲池? 302.22如何扩展数据库? 312.23如何设置数据库为单用户模式? 312.24如何把数据库设置为自动截断事务日志? 312.25为了可以在用户事务中执行数据定义语言,应如何设置数据库选项? 322.26如何设置数据库选项可以在用户表中自动添加序号生成器? 322.27如何为数据库创建数据库用户? 322.28如何创建用户自定义组? 322.29如何改变用户自定义组中数据库用户? 332.30如何查看数据库空间的大小? 332.31如何改变数据库的属主? 332.32如何执行sp_configure系统存储过程来查看系统参数? 332.33如何为当前的Sybase数据库服务器设置最大可用内存? 342.34影响数据库服务器内存配置的基本参数 342.35如何为当前的SybaseASE12.5设置可用的数据缓存? 352.36如何为当前的SybaseASE12.5设置可用的过程缓存? 352.37如何为当前的Sybase数据库服务器设置可用的最大数据库设备数量? 352.38如何为当前的Sybase数据库服务器设置可用的最大锁数? 362.39如何为当前的Sybase数据库服务器设置可用的最大用户连接数? 362.40如何备份数据库? 362.41如何进行数据库的增量备份? 372.42如何恢复数据库? 372.43如何截断数据库的事务日志? 382.44如何恢复数据库到某一具体时间? 382.45如何把表、索引等数据库对象的定义从数据库中导出来? 382.46如何把整个数据库中所有用户表的数据全部导出来? 392.47如何执行快速bcp操作? 392.48如何查看当前数据库中的进程信息? 392.49如何查看当前数据库中锁发生的情况? 40
2025/12/26 4:26:30 1.94MB sybase ASE
1
VxGate是一款简单易用的NAT软件支持WindowsXP、Windows2003、Vista、Win7、Win8的32位版本和64位版本。
目前VxGate超越Windows平台中任何一款NAT软件。
支持客户端流量控制,支持多个Internet出口是VxGate最大特色。
2025/12/25 15:53:17 165KB VxGate 分网 路由
1
参照http://blog.csdn.net/zgrjkflmkyc/article/details/44855543做的一个测试,最终汇总到http://davidrobot.com/2015/08/libmodbus_mingw_qt5.html
2025/11/28 21:32:38 39KB libmodbus qt5
1
基于mingw32编译的windows平台使用的openssl-1.1.1头文件库文件齐全,可以在windows下的QTVS等环境中使用openssl
2025/11/27 21:09:40 34.86MB windows-mingw32
1
这是一个小巧的ModbusRTUMaster测试工具.是现场通讯测试的最佳助手。
适合运行在任何Windows平台下。
绿色软件,无需任何运行库。
2025/11/12 4:29:17 950KB Modbus ModbusRTU
1
django富文本使用简明教程(基于百度Ueditor编辑器,windows平台)可以提取富文本文字和图片python3.6,django==1.11.14实现过程可以参考教程https://mp.csdn.net/postedit/88389535
2025/10/8 12:50:15 3.43MB python django 富文本 提取文字和图
1
标题中的“车载录像机/SD-MDVR/SW-0001A/.264文件播放器”指的是一个专为车载监控系统设计的设备,它集成了录像、存储和回放功能。
SD-MDVR(可能是SmartDigitalMobileDigitalVideoRecorder)是这款设备的型号,SW-0001A可能是其特定的版本或序列号。
".264"是指它支持的视频编码格式,即H.264或AVC(AdvancedVideoCoding),这是一种高效能、高压缩比的视频编码标准,广泛应用于高清视频录制和传输。
描述中提到的“年检车载录像机”意味着该设备需要定期进行检查和维护,以确保其在车辆安全监控中的正常运行。
4路录像监控表示该设备可以同时记录来自四个不同摄像头的视频流,提供全方位的车辆内部和外部环境监控。
“MDVRPlayer_WIN_7.4.0.16_20151217.exe”这个文件名表明这是一款Windows平台的车载录像机播放软件,版本号为7.4.0.16,发布日期为2015年12月17日。
此软件用于查看和播放由上述SD-MDVR设备录制的.H264格式的视频文件,可能包括了回放控制、时间轴导航、视频剪辑等基本功能,也可能具备一些高级特性,如视频分析、事件标记或云同步。
在车载硬盘录像机的使用中,有以下几个关键知识点:1.**H.264编码**:H.264编码技术能以相对较低的码率实现高质量的视频传输,节省存储空间,对于车载监控这种对存储空间有限制的应用场景尤其重要。
2.**多通道录像**:4路录像意味着设备可以同时捕捉多个角度的画面,提供全面的监控覆盖,确保行车安全。
3.**年检维护**:定期对车载录像机进行年检是保证设备正常运行、防止数据丢失和确保视频质量的重要步骤。
4.**专用播放软件**:MDVRPlayer这样的专用软件通常会优化对特定编码格式的支持,提供更好的兼容性和稳定性,同时可能有针对监控视频的特点进行特殊设计的用户界面和功能。
5.**软件更新**:软件版本号(7.4.0.16)显示设备制造商持续提供更新以修复问题、增加新功能或提升性能,用户应定期更新以保持最佳体验。
6.**视频分析**:虽然未在描述中明确提及,但现代车载录像机可能包含智能视频分析功能,如行为识别、碰撞检测等,这些功能能自动检测异常情况并生成报警,提高行车安全。
车载硬盘录像机系统结合高效的视频编码、多通道录像、专用播放软件以及定期维护,为公共交通和私人车辆提供了强大的安全保障。
2025/9/22 15:07:10 13.82MB 车载硬盘录像机
1
应用于Windows平台的VS2017在线安装包,用户可根据自身需求安装相应模块。
2025/8/24 9:04:41 1.22MB Windows VS2017
1
winedt是一款应用于windows平台下进行编译排版的前端编辑软件,主要用来创建编辑TeX或LaTeX文档,当然也可以用于普通的文本编辑和程序开发。
2025/8/17 10:52:45 12.5MB winedt 10.2 破解版
1
共 186 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡