




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、递归下降语法分析姓名:郝梦朔 学号:71107416 日期:2010-1-17一、 实验目的构造文法的语法分析程序,要求采用递归下降语法分析方法对输入的字符串进行语法分析,实现对词法分析程序所提供的单词序列的语法检查和结构分析,进一步掌握递归下降的语法分析方法。二、 实验内容编写为一上下文无关文法构造其递归下降语法分析程序,并对任给的一个输入串进行语法分析检查。程序要求能对输入串进行递归下降语法分析,能判别程序是否符合已知的语法规则,如果不符合(编译出错),则输出错误信息。三、 实验要求利用c语言编制递归下降分析程序,并对语言进行语法分析。(1) 待分析的语言的语法。用扩充额bnf表示如下。&
2、lt;程序>:=function<语言串>endfunc<语言串>:=<语句><语句><语句>:=<赋值语句><赋值语句>:=id=<表达式><表达式>:=<项>+<项>|-<项><项>:=<因子>*<因子>|/<因子><因子>:=id|num|(<表达式>)(2) 实验要求说明输入单词串以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“e
3、rror”,具体例子如下。输入functiona=9;x=2*3;b=a+x;endfunc#输出success又如,输入:x=a+b*cendfunc#输出error(3)语法分析程序的算法思想为翟玉庆老师上课所讲。四、 实验源程序#include<stdio.h>#include<string.h>char prog80,token8;char ch;int syn,p,m=0,n,sum,kk=0;char *rwtab6="function","if","then","while",
4、"do","endfunc"void scaner();void lrparser();void yucu();void statement();void expression();void term();void factor();void main()p = 0;printf("please input the string:n");doch = getchar();progp+ = ch;while(ch != '#');p = 0;ch = progp+;scaner();lrparser();return;v
5、oid scaner()for(n=0;n<8;n+)tokenn=null;/printf("n%c in scaner()",ch);while(ch = ' ' | ch = 'n' )ch = progp+;/printf("n%c in scaner()",ch);m = 0;if(ch<='z' && ch>='a') |(ch<='z' && ch>='a')while(ch<=
6、'z' && ch>='a') |(ch<='z' && ch>='a')|(ch<='9' && ch>='0')tokenm+ = ch;ch = progp+;syn=10;for(n=0;n<6;n+)if(strcmp(token,rwtabn) = 0)syn = n+1;/printf("n%d in keyword",syn);break;tokenm+ = '0'
7、else if(ch<='9' && ch>='0')sum=0;while(ch<='9' && ch>='0')sum = sum*10 + ch - '0'ch = progp+;syn = 11;elseswitch(ch)case '<':m = 0;tokenm+ = ch;ch = prog+p;if(ch = '=')syn = 22;tokenm+ = ch;elsesyn = 20;ch = prog-
8、p;break;case '>':m = 0;tokenm+ = ch;ch = prog+p;if(ch = '=')syn = 24;tokenm+ = ch;elsesyn = 23;ch = prog-p;break;case '=':m = 0;tokenm+ = ch;ch = prog+p;if(ch = '=')syn = 25;tokenm+ = ch;elsesyn = 18;ch = prog-p;break;case '!':m = 0;tokenm+ = ch;ch = prog+p
9、;if(ch = '=')syn = 22;tokenm+ = ch;elsesyn = -1;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 = 26;token0 = ch;break;case '(':sy
10、n = 27;token0 = ch;break;case ')':syn = 28;token0 = ch;break;case '#':syn = 0;token0 = ch;break;default:syn = -1;ch = progp+;void lrparser()if(syn =1)/printf("n%d",syn);scaner();/printf("n%d",syn);yucu();/*/printf("n%d after yucu()",syn);if(syn = 6)scane
11、r();/printf("n%d in lrparser() after scaner()",syn);if(syn = 0 && kk = 0)printf("nsuccess!n");elseif(kk != 1)printf("error!need 'endfunc'");kk = 1;elseprintf("error!need 'function'");kk =1;return;void yucu()/printf("n%d in yucu() f
12、irst",syn);statement();/printf("n%d after statement() in yucu()",syn);while(syn = 26)scaner();/syn = 6;/printf("n%d after scaner() in yucu()",syn);statement();return;void statement()/printf("n%d in statement() at first",syn);if(syn = 10)scaner();/printf("n%d a
13、fter scaner() in statement()",syn);if(syn = 18)scaner();/printf("n%d after scaner when syn=18",syn);expression();/printf("n%d after expression()",syn);elseprintf("error! evaluate tag error");kk = 1;else if(syn = 6)return;else printf("error! the statement error
14、!");kk = 1;return;void expression()/printf("n%d in expression at first",syn);term();while(syn = 13 | syn = 14)scaner();term();return;void term()/printf("n%d in term() at first",syn);factor();while(syn = 15 | syn = 16)scaner();factor();return;void factor()/printf("n%d in factor() at first",syn);if(syn = 10 | syn = 11)scaner();elseif(syn = 27)scaner();expression();if(syn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水果地方特色加工创新创业项目商业计划书
- 摄影技巧分享App创新创业项目商业计划书
- 2024年西方经济学专升本试题库与答案
- 电商直播基地2025年项目品牌战略规划与市场布局报告
- 图形的旋转课件
- 绿化维护工程施工方案(3篇)
- 物业工程部能力展示方案(3篇)
- 电商平台社交电商板块数据分析与优化报告
- 地热能供暖与智慧城市能源融合2025年创新应用案例分析报告
- 2025年新能源技术创新引领下的全球产业布局研究报告
- 电脑组装教学课件
- 乌饭叶干燥色素萃取及应用特性的多维度探究
- 统编版语文四年级上册-2024-2025学年习作:小小动物园课件
- 口腔门诊药品管理制度
- 2025石油交易居间合同石油居间协议
- 初中拔高几何题目及答案
- 2024小学劳动技术课标考试模拟试卷及参考答案
- 人保农险理赔员考试题及答案
- JG/T 328-2011建筑装饰用石材蜂窝复合板
- 炼钢钢厂辅料管理制度
- 工程项目廉洁培训
评论
0/150
提交评论