编译原理实验--词法分析器

编译原理实验--词法分析器

ID:13246396

大小:79.50 KB

页数:5页

时间:2018-07-21

编译原理实验--词法分析器_第1页
编译原理实验--词法分析器_第2页
编译原理实验--词法分析器_第3页
编译原理实验--词法分析器_第4页
编译原理实验--词法分析器_第5页
资源描述:

《编译原理实验--词法分析器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一词法分析器设计【实验目的】1.熟悉词法分析的基本原理,词法分析的过程以及词法分析中要注意的问题。2.复习高级语言,进一步加强用高级语言来解决实际问题的能力。3.通过完成词法分析程序,了解词法分析的过程。【实验内容】用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。【实验流程图】【实验步骤】1.提取pl/0文件中基本字的源代码while((ch=fgetc(stream)

2、)!='.'){intk=-1;chara[SIZE];ints=0;while(ch>='a'&&ch<='z'

3、

4、ch>='A'&&ch<='Z'){if(ch>='A'&&ch<='Z')ch+=32;a[++k]=(char)ch;ch=fgetc(stream);}for(intm=0;m<=12&&k!=-1;m++)for(intn=0;n<=k;n++){if(a[n]==wsym[m][n])++s;elses=0;if(s==(strlen(wsym[m]))){printf("%st",w

5、sym[m]);m=14;n=k+1;}}2.提取pl/0文件中标识符的源代码while((ch=fgetc(stream))!='.'){intk=-1;chara[SIZE]="";ints=0;while(ch>='a'&&ch<='z'

6、

7、ch>='A'&&ch<='Z'){if(ch>='A'&&ch<='Z')ch+=32;a[++k]=(char)ch;ch=fgetc(stream);}for(intm=0;m<=12&&k!=-1;m++)for(intn=0;n<=k;n++){if(a[n]

8、==wsym[m][n])++s;elses=0;if(s==(strlen(wsym[m]))){m=14;n=k+1;}}if(m==13)for(m=0;a[m]!=NULL;m++)printf("%c",a[m]);3.提取pl/0文件中常数的源代码while((ch=fgetc(stream))!='.'){while(ch>='0'&&ch<='9'){num=10*num+ch-'0';ch=fgetc(stream);}if(num!=0)printf("%d",num);num=0;}2.提取

9、pl/0文件中运算符的源代码intch=fgetc(stream);while(ch!='.'){switch(ch){case'+':printf("+");break;case'-':printf("-");break;case'*':printf("*");break;case'/':printf("/");break;case'>':if(fgetc(stream)=='=')printf(">=");elseprintf(">");break;case'<':if(fgetc(stream)=='=')

10、printf("<=");elseprintf("<");break;case':':printf(":=");break;case'#':printf("#");break;case'=':printf("=");break;default:break;}ch=fgetc(stream);5.提取pl/0文件中界符的源代码intch=fgetc(stream);while(ch!='.'){switch(ch){case',':printf(",");break;case';':printf(";");brea

11、k;case'(':printf("(");break;case')':printf(")");break;default:break;}ch=fgetc(stream);}【实验结果】1.pl/0文件(222.txt)内容consta=10;varb,c;procedurep;beginc:=b+a;end;beginread(b);whileb#0dobegincallp;write(2*c);read(b)endend.2.实验运行结果【实验小结】1.了解程序在运行过程中对词法分析,识别一个个字符并组合成相

12、应的单词,是机器能过明白程序,定义各种关键字,界符。2.词法分析是运行一个程序的开端,在编译原理这门课中加深了对机器内部程序是如何运行,也加强自己上机动手能力。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。