【精品】词法分析实验报告.doc

【精品】词法分析实验报告.doc

ID:51892115

大小:182.50 KB

页数:7页

时间:2020-03-18

【精品】词法分析实验报告.doc_第1页
【精品】词法分析实验报告.doc_第2页
【精品】词法分析实验报告.doc_第3页
【精品】词法分析实验报告.doc_第4页
【精品】词法分析实验报告.doc_第5页
资源描述:

《【精品】词法分析实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验目的设计,编制并调试一个词法分析稈序,加深对词法分析原理的理解。实验要求待分析的简单语言的此法(I)关键字(32个)”auto“,“break”,“case”,”char“,“const”,“continue”,“default",“do”,“double",“else叮'enumTexter,''float^'Tor0,"goto",,,ifn;,int,V,long,,;,registerH,"return,,;'shortn,,,signed,,,,,sizeof,,,,,static,,;,struct,,,Hswitch","typedef","union","unsig

2、ned","void","volatile","while"(2)运算符和界符(40个)(3)其他单词是标识符和整型常数(4)空格由空白,制表符和换行符组成。空格一般用來分隔标识符,整型常数,运算符,界符,关键字。各种单词符号对应的种别码auto40#0break41(1case42)2char4313••••■■■•■■■•volatile70+=37while71■ZZZ38ID150*=39DIGIT100/=39词法分析程序的功能输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。其屮:syn为单词种别码;token为存放的单词自身字符串;sum

3、为整型常数;词法分析程序的算法思想算法的基木任务是从字符串表示的源程序屮识别出具有独立意义的单词符号,其基木思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。主程序示意(1)关键字表的初值。关键字特殊标识符处理,把他们预安排在一张表格屮,当扫描程序识别岀标识符时,杳找关键字表。如能杳找到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:char*keyO[]={"auton,"break","case","char","const'1,"continue","default","do”,“double”,“else",”enum”,“e

4、xtern",“float”,”for“,“goto",“if”,“long”,”「egi(2)稈序屮需要用到的主要变量为syn,token和sum;扫描子程序的算法思想首先设置3个变量:token用来存放构成单词符号的字符串;sum用来存放整型单词;syn用来存放单词符号的种别码。词法分析程序的C语言程序框架2:、:.V

5、拼数7Syn=15()对不同符号绐出相应的synffl7源程序代码#includeHstdio.hH#include"string.h"#include"iostream.h”char*keyO[]={"aiito","break","case","char",

6、"const","continue","default","do","double","else","enum'V*extern”float”,“for”,“goto",“if”,”long”,“wgister“,Return”,“short",“signed”,“sizeof",“static”,“struct”,”switchn,”typedefYunionTunsignedTvoicT「voIatiiyrwhiiy};//32个关键字intcompare(char*token)intn;for(n=0;nv40;n++)if(strcmp(token,key1[n])==0)br

7、eak;returnn;}voidscaner(constchar*prog,char*tokenjnt&syn,int&p){intn,i=0;charch;for(n=0;n<8;n++){token[n]=NULL;}ch=prog[p];while(ch==,’llch==)ch=prog[++p];1if(((ch>=,A,)&&(ch<=,Z,))ll((ch>=,a,)&&(ch<=,z,))ll(ch==,J)){while(((ch>=,A,)&&(ch<=,Z,))ll((ch>=,a,)&&(ch<=,z,))ll(ch>=,0'&&ch<=,9,)ll(ch

8、==,_')){token[i+4-]=ch;ch=prog[++p];}token[i]=AO*;syn=150;for(n=0;n<32;n++){if(strcmp(token,keyO[n])==0){syn=n+40;break;}}}elseif(ch>=,0,&&chv=9){while(l){token[i++]=ch;ch=prog[++p];if(ch==,#,llch==,,llch==,;*){token[i]=,;

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

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

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