




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c+ 代码解析(词法分析、语法分析)很久以前就想写个c+ 的类解析器了,终于花了一晚上时间,写了一个 c+ 头文件和 cpp 文件的解析。 其实跟我上篇 “编译原理”的文章说的一样,词法分析和语法分析最基本就是一堆if-else 或者 switch-case 。不要被什么有穷自动机吓倒了。下面的代码是一个基本的词法和语法分析,能工作,但现在这个实验品,肯定不会很完善,请各位看官见谅。能解析出来所包含的头文件、类名(输入.h 文件可以解析出类名)、函数名等,需要的功能自己再加吧。程序我直接一个 main 函数写下来的,完全c风格,不用跟我讲什么分函数、分类之类的话,我也知道,后期我在代码上会分好
2、,不过不一定贴上来了,要分你可以自己分一下,如果能共享出来给我学习一下,那更感谢了。我这个程序就是让你看看一个词法分析和一个语法分析的最简单的写法,同时也实现一些有点用的功能。下面就是这个程序代码,能直接拷贝编译运行的。代码也有注释,逻辑比较清楚了。n); exit(0); onewordnbuf+ = onechar; else if(onechar = =) onewordnbuf+ = onechar; else if(onechar = /) ; n); exit(0); for(int i = 0; i (); i+) char szbuf300; memset(szbuf, 0,
3、300); sprintf(szbuf, %d. %sn, i, vecwordsi.c_str(); fwrite(szbuf, strlen(szbuf), 1, fpin); %sn, i, vecwordsi.c_str(); fclose(fpin); n); exit(0); %s n, i, vecheaderi.c_str(); fwrite(szbuf, strlen(szbuf), 1, fpin); fwrite(nnn, 2, 1, fpin); %s n, i, vecclassi.c_str(); fwrite(szbuf, strlen(szbuf), 1, fpin); fwrite(nnn, 2, 1, fpin); %s %s n, i, vecfunci.(), vecfunci.(); fwrite(szbuf, strlen(szbuf), 1, fpin); %sn, i, vecwordsi.c_str(); fclose(fpin); .n); printf(词法分析结果 : d: 语法分析结果 : d:, 请输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 口腔门诊劳动合同(2025年版)
- 2024年张紧装置项目资金申请报告代可行性研究报告
- 2025年华北理工大学轻工学院单招职业倾向性测试题库带答案
- 数学-广州市白云区2025年高三下学期期初综合训练试题+答案
- 2025年贵州工程职业学院单招职业适应性测试题库附答案
- 2025年度合伙人拆伙协议书:涉及债务分担及清偿的拆伙协议
- 2025年度手车过户车辆交易车辆交易税费减免协议
- 2025年度房屋赠与与绿色出行合同样本
- 2025年度道路救援拖车服务与救援人员培训合同范本
- 2025年度土地使用权转让合同协议书
- 线下庭审申请书
- 萃取技术 多级逆流萃取
- 部编版小学五年级语文教材培训课件【部编】
- 盆景造型经验
- 2023年广东省佛山市顺德区小升初数学试卷(含答案)
- ICU护理查房记录【范本模板】
- 威风堂堂进行曲
- 铜及铜合金物理冶金基础-黄铜
- 煤矿信息化管理制度
- 金融科技学-完整全套课件
- 物理学史中国古代物理学
评论
0/150
提交评论