![编译原理词法分析器和语法分析器(急急急)_第1页](http://file4.renrendoc.com/view10/M03/17/28/wKhkGWXayQ-AafAsAADnj-LgEpM415.jpg)
![编译原理词法分析器和语法分析器(急急急)_第2页](http://file4.renrendoc.com/view10/M03/17/28/wKhkGWXayQ-AafAsAADnj-LgEpM4152.jpg)
![编译原理词法分析器和语法分析器(急急急)_第3页](http://file4.renrendoc.com/view10/M03/17/28/wKhkGWXayQ-AafAsAADnj-LgEpM4153.jpg)
![编译原理词法分析器和语法分析器(急急急)_第4页](http://file4.renrendoc.com/view10/M03/17/28/wKhkGWXayQ-AafAsAADnj-LgEpM4154.jpg)
![编译原理词法分析器和语法分析器(急急急)_第5页](http://file4.renrendoc.com/view10/M03/17/28/wKhkGWXayQ-AafAsAADnj-LgEpM4155.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理实验报告词法分析器实验目的熟练掌握词法分析程序的基本原理掌握词法分析程序的设计和实现实验内容针对一个简化的C语言子集完成对它的词法分析程序的设计与实现C语言子集的单词符号挤内码值程序代码:#include"stdio.h"#include"string.h"inti,j,k;chars;chara[20],token[20];intletter(){ if((s>=97)&&(s<=122)) return1; elsereturn0;}intdigit(){if((s>=48)&&(s<=57)) return1; elsereturn0;}voidget(){ s=a[i];i=i+1;}voidretract(){i=i-1;}intlookup(){ if(strcmp(token,"while")==0)return1; elseif(strcmp(token,"if")==0)return2; elseif(strcmp(token,"else")==0)return3; elseif(strcmp(token,"switch")==0)return4; elseif(strcmp(token,"case")==0)return5; elsereturn0;}voidmain(){printf("输入源程序,结束用'#':\n"); i=0; do{i++; scanf("%c",&a[i]); }while(a[i]!='#'); i=1; memset(token,0,sizeof(char)*20); j=0; get(); while(s!='#') {if(s=='') get(); else {switch(s){ case'a': case'b': case'c': case'd': case'e': case'f': case'g': case'h': case'i': case'j': case'k': case'l': case'm': case'n': case'o': case'p': case'q': case'r': case's': case't': case'u': case'v': case'w': case'x': case'y': case'z': while(letter(s)||digit(s)) {token[j]=s; j++; get(); } retract(); k=lookup(); if(k==0)printf("(%d,%s)\n",6,token); elseprintf("(%d,unll)\n",k); break; case'0': case'1': case'2': case'3': case'4': case'5': case'6': case'7': case'8': case'9': while(digit(s)){ token[j]=s; j=j+1; get(); } retract(); printf("(%d,%s)\n",7,token); break; case'+':printf("(+,null)\n"); break; case'-':printf("(-,null)\n"); break; case'*':printf("(*,null)\n"); break; case'<': get(); if(s=='=') printf("(relop,LE)\n"); else{ retract(); printf("(relop,LT)\n"); } break; case'=': get(); if(s=='=')printf("(relop,EQ)\n"); else{ retract(); printf("(=,null)\n"); } break; case';':printf("(;,null)\n"); break; default:printf("(%c,error)\n",s); break; } memset(token,0,sizeof(char)*10); j=0; get(); } }}运行结果:编译原理实验报告语法分析器实验目的熟练掌握语法分析程序的基本原理掌握用算符优先分析法来构造,设计优先函数掌握语法分析程序的设计与实现实验内容针对一个简单文法完成对它的语法分析程序的设计与实现通过语法分析程序来完成多输入的算数表达式进行计算并相应得到的对应四元式程序代码:#include<stdio.h>chara[20],optr[10],s,op;inti,j,k,opnd[10],x1,x2,x3;intoperand(chars){ if((s>='0')&&(s<='9')) return1; else return0;}intf(chars){ switch(s) { case'+':return6; case'-':return8; case'*':return10; case'/':return12; case'(':return2; case')':return12; case'#':return2; default:printf("error!\n"); }}intg(chars){ switch(s) { case'+':return5; case'-':return7; case'*':return9; case'/':return11; case'(':return13; case')':return2; case'#':return2; default:printf("error!\n"); }}voidget(){ i=i+1; s=a[i]; }voidmain(){ printf("请输入算数表达式,以'#'结束:\n");i=0;do{ i=i+1; scanf("%c",&a[i]);}while(a[i]!='#');i=0;j=0;k=0;optr[j]='#';get();while((optr[j]!='#')||(s!='#')){ if(operand(s)) { opnd[k]=s-'0'; k=k+1; get(); } elseif(f(optr[j])>g(s)) { op=optr[j]; j=j-1; x2=opnd[k-1]; x1=opnd[k-2]; k=k-2; switch(op){ case'+':x3=x1+x2;break; case'-':x3=x1-x2;break; case'*':x3=x1*x2;break; case'/':x3=x1/x2;break; } opnd[k]=x3; k=k+1; printf("(%c,%d,%d,%d)\n",o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湘教版九年级数学下册2.5直线与圆的位置关系2.5.3切线长定理听评课记录
- 小学数学五年级数学《植树问题》听评课记录
- 生态物流服务合同(2篇)
- 教科版道德与法治九年级下册第十四课《第一次选择》听课评课记录
- 湘教版数学八年级上册4.3《一元一次不等式的解法》听评课记录1
- 华师大版数学七年级上册《角》听评课记录2
- 新版苏教版小学数学(二年级上册)听评课记录【含教学计划】
- 苏州苏教版三年级下册数学第七单元《37、认识几分之一》听评课记录
- 苏科版数学九年级下册5.4《二次函数与一元二次方程》(第2课时)讲听评课记录
- 北师大版历史七年级下册第22课《明清皇权膨胀与文化专制》听课评课记录
- 2025年1月浙江省高考政治试卷(含答案)
- 20以内加减法口算题(10000道)(A4直接打印-每页100题)
- 早产儿视网膜病变
- 矮小症诊治指南
- GB 10665-1997碳化钙(电石)
- 《克雷洛夫寓言》专项测试题附答案
- 《中小学教育惩戒规则》重点内容学习PPT课件(带内容)
- 海信rsag7.820.1646ip电源与背光电路图fan7530、fan7602fan
- 板带生产工艺5(热连轧带钢生产)课件
- 2022年同等学力英语考试真题及详解
- 深度配煤掺烧方案
评论
0/150
提交评论