ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:186.33KB ,
资源ID:30289573      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30289573.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机编译原理实验二.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机编译原理实验二.docx

1、计算机编译原理实验二华中师范大学CENTRAL CHINA NORMAL UNIVERSITY题 目: 语法分析 院 系:计算机科学与技术系 班 级: 0701 姓 名: 王辉 学 号: 2007210514 指导老师: 王明安 一.实验题目语法分析二实验目的 编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。三.实验内容 用C语言编制递归下降分析程,并对简单语言进行语法分析。四.实验步骤 1.设计语法分析程序的算法。 2.画流程图。 3.编写程序。 4.测试并调试程序。 5写实验报告。五.实验设计思想 出错处理打印分析成功语句串分析示意图递归下降分析程序示意图

2、六实现代码#include #include#include char str5010;char word610=begin,if,then,while,do,end;char pro80,token10;int syn,num,kk;void scaner();void lrparser();void yuxu();void statement();void expression();void term();void factor();void readfile();void readbroad();void main() char ch; int Tag=1; while(Tag) num

3、 = 0; printf(1键盘读取 2文件读取:); scanf(%c, &ch); if(ch = 1) readbroad(); if(ch=2) readfile(); printf(n是否继续输入1:); scanf(%d, &Tag); getchar(); void readfile()/从文件中读取 FILE *fp; char ch; int i=0; fp = fopen(date.txt,rt); if(fp = NULL) printf(the memory is not enough); exit(0); while(!feof(fp) memset(pro,NULL

4、,80); num=0; do fscanf(fp,%c,&ch); pronum+ = ch; while(ch!=n) & (!feof(fp); printf(n%d.文件中的符号为:%s,+i, pro); num=0; kk = 0; scaner(); lrparser(); fclose(fp);void readbroad()/从键盘中读取 FILE *fp; char ch; memset(pro, NULL, 80); ch = getchar(); printf(input the string:); do ch = getchar(); pronum+ = ch; wh

5、ile(ch != #); fp = fopen(date.txt,a+); if(fp = NULL) printf(the memory is not enough); exit(0); num = 0; do ch = pronum+; fprintf(fp,%c,ch); while(ch!=#); fprintf(fp, n); fclose(fp); num = 0; kk=0; scaner(); lrparser();void lrparser() if(syn = 1) scaner(); yuxu(); if(syn = 6) scaner(); if(syn = 0 &

6、(kk = 0) printf(success!); else printf(语句串错误!); kk =1; else if(kk !=1) printf(lack end); kk = 1; else printf(lack begin!); return;void yuxu() statement(); while(syn = 26) scaner(); statement(); return;void statement() if(syn = 10) scaner(); if(syn = 18) scaner(); expression(); else printf(赋值错误); kk

7、= 1; else printf(语句错误!); kk =1; void expression() term(); while(syn = 13 | syn = 14) scaner(); term(); return;void term() factor(); while(syn = 15 | syn = 16) scaner(); factor(); return;void factor() if(syn = 10 | syn = 11) scaner(); else if(syn = 27) scaner(); expression(); if(syn = 28) scaner(); e

8、lse printf(错误); kk=1; else printf(表达式错误1); kk = 1; return; void scaner() int i = 0; char ch; for(i = 0; i 10; i+) tokeni = NULL; ch = pronum+; while(ch = ) ch = pronum+; i = 0; if( a=ch & ch=z) while(a=ch & ch=z | 0=ch & ch=9) tokeni+ = ch; ch = pronum+; tokeni+ = 0; num-; syn = 10; for(i = 0; i 10;

9、 i+) if(strcmp(token, wordi)= 0) syn = i+1; break; else if(0=ch & ch=9) while(0=ch & ch=9) tokeni+ = ch; ch = pronum+; tokeni = 0; num-; syn= 11; else switch(ch) case ) tokeni+ = ch; syn = 21; else if(ch = =) tokeni+ = ch; syn = 22; else syn = 20; num-; syn=20; break; case : i = 0; tokeni+ = ch; ch

10、= pronum+; if(ch = =) tokeni+ = ch; syn= 24; else num-; syn=23; break; case : tokeni+ = ch; ch = pronum+; if(ch = =) tokeni+ = ch; syn=18; else num-; syn=17; break; case +: tokeni+ = ch; syn=13; break; case ;: tokeni+ = ch; syn=26; break; case -: tokeni+ = ch; syn=14; break; case *: tokeni+ = ch; syn= 15; break; case /: tokeni+ = ch; syn=16; break; case (: tokeni+ = ch; syn=27; break; case ): tokeni+ = ch; syn=28; break; case #: tokeni+ = ch; syn=0; break; default: syn= -1; break; 程序运行结果:七.小结 八.参考文献编译原理教材后面的程序模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1