词法分析器的设计与实现1.docx

上传人:scccc 文档编号:13967984 上传时间:2022-01-28 格式:DOCX 页数:11 大小:55.42KB
返回 下载 相关 举报
词法分析器的设计与实现1.docx_第1页
第1页 / 共11页
词法分析器的设计与实现1.docx_第2页
第2页 / 共11页
词法分析器的设计与实现1.docx_第3页
第3页 / 共11页
词法分析器的设计与实现1.docx_第4页
第4页 / 共11页
词法分析器的设计与实现1.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《词法分析器的设计与实现1.docx》由会员分享,可在线阅读,更多相关《词法分析器的设计与实现1.docx(11页珍藏版)》请在三一文库上搜索。

1、编译原理课程实验报告实验题目:某种简单程序语言的词法分析器的设计与实现专业:计算机科学与技术班级:11060341学号:11060341姓 名:实验目的:设计一个词法分析程序,理解词法分析器实现的原理,掌握程序设计语言中的各类 单词的词法分析方法,加深对词法分析原理的理解。实验任务:词法分析是从左向右扫描每行源程序的符号,拼成单词,换成统一的二元式(单词种别,单词符号的属性值)表示。对给定的程序通过词法分析器识别一个个单词符号,并以二元式(单词种别,单词符号的属性值)显示,本程序则是通过对给定程序段分析后以单词符号和文字提示显示)实验流程:这在靖宇注册为 数字单堂空方一星f语却为的开程序清单:

2、#include#include#includeusing namespace std;int k=0;struct wordchar name10;int kind; word1000;char key3510= scanf,short,int,long,float,double,char,struct,union, printf,typedef,const,unsigned,signed,extern,register,static, volatile,void,if,else,switch,case,for,do,while,goto, continue,break,default,si

3、zeof,return,include,bool;bool cmp(char a)int i;for(int k=0; k35; k+)if(strcmp(a,keyk)=0)return 1;return 0;int main()#ifdef LOCALfreopen(in.txt, r, stdin);freopen(out.txt, w, stdout);#endifint p,q,flag;char a1000,b10,ch;while(gets(a)p=0;int len=strlen(a);while(p=a&ch=A&ch=a&ch=A&ch=0&ch=0&ch=0&ch=0&a

4、t=a&at=A&at=0&ch)(P+; ch=ap;if(ch=|ch=)(b0=;b1=ch;strcpy(wordk.name,b); wordk+.kind=5;ch=a+p;) else(b0=;strcpy(wordk.name,b); wordk+.kind=5;)else if(ch=)(P+;ch=ap;if(ch=|ch=)(b0=;b1=ch;strcpy(wordk.name,b); wordk+.kind=5;ch=a+p;) else(b0=;strcpy(wordk.name,b); wordk+.kind=5;)else if(ch=!)(P+;ch=ap;i

5、f(ch=) (b0=!;b1 =;strcpy(wordk.name,b); wordk+.kind=5;ch=a+p;) else(b0=!;strcpy(wordk.name,b); wordk+.kind=5;)else if(ch=&)(P+; ch=ap;if(ch=&)(b0=b1 =&;strcpy(wordk.name,b); wordk+.kind=5;ch=a+p;) else(b0=&;strcpy(wordk.name,b); wordk+.kind=5;)else if(ch=|)(P+; ch=ap;if(ch=|)(b0=b1=T;strcpy(wordk.na

6、me,b); wordk+.kind=5;ch=a+p;) else(bO=T;strcpy(wordk.name,b); wordk+.kind=5;)for(int i=0; ik; i+)switch(wordi.kind)case 1:printf(标识符,); break;case 2:printf(常量,);break;case 3:printf(关键字,);break;case 4:printf(界符,);break;case 5:printf(运算符,);break;printf(%s)n,wordi.name);int a1=0,a2=0,a3=0,a4=0,a5=0;for

7、(int i=0;ik;i+)if(wordi.kind=1)a1+;else if(wordi.kind=2)a2+;else if(wordi.kind=3)a3+;else if(wordi.kind=4)a4+;else if(wordi.kind=5)a5+;printf(标识符:dn 常量:dn 关键字:dn 界符:%dn 运算符:%dn,a1,a2,a3,a4,a5); return 0;运行结果:7| ift.bd:-记事本I. 立陶F)依旧格式(5查看(VI郎朗间void raainO .inf suiffO;for (int i=0; i10; i-H-) scan sunFsmn+a, print f (飞d”, sum);J out.trt -记落本文件旧骗。旧恃式时音看M帮盟1H)肄识识算返昌锌识裳藩瞽泞髀普导重名异识算返异识叠 】看界界运篇天界森运常需运1运界天界界运常界界运运标运标羹JZ JZ JJZ S1JZ )z Jz- ,(,符,d特,),;与?守 克4万4示ync-s吴云一6 92 5:2:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1