




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验1 词法分析程序设计【开发语言及实现平台或实验环境】C/C+/C#Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET 2005-2008【实验目的】(1)理解词法分析在编译程序中的作用(2)加深对有穷自动机模型的理解(3)掌握词法分析程序的实现方法和技术【实验内容】对一个简单语言的子集编制一个一遍扫描的词法分析程序。【实验要求】(1)待分析的简单语言的词法1) 关键字begin if then while do end2) 运算符和界符:= + - * / = = ; ( ) #3) 其他单词是标识符(ID)和整形常数(NUM),通过以下正规式定义:ID=letter(letter|digit)*NUM=digitdigit*4) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM、运算符、界符和关键字,词法分析阶段通常被忽略。(2)各种单词符号对应的种别编码单词符号种别码单词符号种别码begin1:17if2:=18then320while421do523letter(letter|digit)*10=24digitdigit*11=25+13;26-14(27*15)28/16#0(3)词法分析程序的功能输入:所给文法的源程序字符串输出:二元组(syn,token或sum)构成的序列。syn为单词种别码;token为存放的单词自身字符串;sum为整形常数。例如:对源程序begin x:=9;if x0 then x:=2*x+1/3;end# 经词法分析后输出如下序列:(1,begin)(10,x) (18,:=) (11,9) (26,;) (2,if)【实验步骤】(1)根据图1.1构建主程序框架置初值调用扫描子程序输出串结束?输出单词二元组是否结束图1.1 词法分析主程序示意图代码#include stdafx.h #include #include #include using namespace std; char prog80,token8; char ch; int syn,p,m=0,n,row,sum=0; char *rwtab6=begin,if,then,while,do,end; void scaner() for(n=0;n=a&ch=A&ch=0&ch=a&ch=A&ch=Z) tokenm+=ch; ch=progp+; tokenm+=0; p-; syn=10; for(n=0;n=0&ch=0&ch32767) syn=-1; else switch(ch) case) syn=21; tokenm+=ch; else if(ch=) syn=22; tokenm+=ch; else syn=23; p-; break; case:m=0; tokenm+=ch; ch=progp+; if(ch=) syn=24; tokenm+=ch; else syn=20; p-; break; case:m=0; tokenm+=ch; ch=progp+; if(ch=) syn=18; tokenm+=ch; else syn=17; p-; break; case*:syn=13; token0=ch;break; case/:syn=14; token0=ch;break; case+:syn=15; token0=ch;break; case-:syn=16; token0=ch;break; case=:syn=25; token0=ch;break; case;:syn=26; token0=ch;break; case(:syn=27; token0=ch;break; case):syn=28; token0=ch;break; case#:syn=0; token0=ch;break; casen:syn=-2;break; default: syn=-1;break; void main() p=0; row=1; coutPlease input string:endl; do cin.get(ch); progp+=ch; while(ch!=#); p=0; do scaner(); switch(syn) case 11: cout(syn,sum)endl; break; case -1: coutError in row row!endl; break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路建设质量检测方案
- 国家助学贷款诚信教育网络答题(含答案)
- 充电桩服务质量提升方案
- 2025年试验机行业研究报告及未来行业发展趋势预测
- 2025年临床检验服务行业研究报告及未来行业发展趋势预测
- 2025年抽纱刺绣工艺品制造行业研究报告及未来行业发展趋势预测
- 医疗废物考试题(附答案)
- 2025年保健品行业需求分析及创新策略研究报告
- 2025年其他皮革制品制造行业研究报告及未来行业发展趋势预测
- 2025年鸡的饲养行业研究报告及未来行业发展趋势预测
- 2025山东菏泽郓城县人民医院招聘合同制护理人员60人笔试备考试题及答案解析
- 低血糖知识培训课件
- 银行公司服务礼仪管理规章
- 2025年秋季开学全体教师大会校长讲话:践行“六个学会”做学生生命中的那束光
- 吊装作业安全专项方案
- 2025年上海公务员考试(城市建设管理)历年参考题库含答案详解(5卷)
- 舆情安全管理办法
- 2025个人洗护市场趋势洞察报告-魔镜洞察
- 厨房4D管理课件下载
- 建筑工地实名制管理
- 铜陵维修基金管理办法
评论
0/150
提交评论