实验一 词法分析1.doc

实验一 词法分析1.doc

ID:51992283

大小:133.00 KB

页数:6页

时间:2020-03-21

实验一 词法分析1.doc_第1页
实验一 词法分析1.doc_第2页
实验一 词法分析1.doc_第3页
实验一 词法分析1.doc_第4页
实验一 词法分析1.doc_第5页
资源描述:

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

1、实验一词法分析本节进行词法分析程序的编程与调试。1・实验要求(1)从源程序文件屮读取有效字符和并将其转换成二元纟H.内部表示形式输出。(2)掌握词法分析的实现方法。(3)实验时间4学时。(4)实验完成后,要上交实验报告(包括源程序清单)。2.实验内容2」主程序设计考虑:主程序的说明部分为各种表格和变量安排空间(关键字和特殊符号表)。id和ci数组分别存放标识符和常数;还有一些为造表填表设置的变量。主稈序的工作部分建议设计成便于调试的循环结构。每个循环处理一个单词;接收键盘上送来的一个单词;调用词法分析过程;输出每个单词的内部码(种别编

2、码,属性值)。2.2词法分析过程考虑该过程根据输入单词的第一个有效字符(有时还需读第二个字符),判断单词种别,产生种别编码。对于标识符和常数,需分别与标识符表和常数表屮已登记的元索相比较,如表中已有该元素,则记录其在表中的位置,如未出现过,将标识符按顺序填入数组id中,将常数存入数组屮ci屮,并记录其在表屮的位置。注:所有识别出的单词都用二元组表示。第一个表示单词的种别编码。例如:关键字的t=l;标识符的t=2;常数t=3;运算符t=4;界符t=5o第二个为该单词在各自表中的指针或内部码值(常数表和标识符表是在编译过程中建立起来的。其

3、i值是根据它们在源程序中出现的顺序确定的)。关键字和特殊符号如下:单词代码12345678910名字intcharfloatvoidconst讦elsedowhilescanf单词代码11121314151617181920名字printfreturnmainread+一*/%—单词代码21222324252627282930名字==><»—a—>=<=&&II!•<>单词代码31323334353637383940名J(){)•99a4++■■将词法分析程序设计成独立一遍扫描源程序的结构。其主流程图如下:图1词法分析程序流程图三.程

4、序代码#include#includevoidmain(){charaa[501;staticcharid[100][50],ci[l00][20];charaal[3O][2O]={“int”,“char",“float”,”vokT,”const”,“if”,“else”,”do“,“while",“scanf","printf","return","main","read"};id[O]fOl=,O,;cifO][O]=,O,;charaa4[30][20]={“+”,叱”,“v”

5、,二””11”,charaa5[30][20]={;cout«"想要退出,请输esc"«endl;cout«M请输入任意字符串表示程序开始"«endl;cin»aa;while(strcmp(,,esc'aa)!=O){cin»aa;if(aa[O]>=*A'&&aa[O]<=,z,){inti,m,j;for(i=0;i<14;i++){if((strcmp(aal[i],aa)==O)){coutvv眛申别编码:t=l,内部编码:i=H«i«endl;break;)}if(i>=14){for(i=0;i<100;i++){if

6、(id[i][0]==W){m=i;break;}}for(i=0;i=m){strcpy(id[m],aa);id[m+l][0]=W;cout«"^中别编码:=2,内部编码:i="«m«endl;))if(aa[0]>=*0'&&aa[0]<=,9,)inti,n;for(i=0;i<100;i++)if(ci[i][O]==W){n=i;break;})for(i=();i

7、二n){strcpy(ci[n],aa);ci[n+ll[0]=W;cout«"种别编码:t=3,内部编码:i="«i«endl;}}else{inti;for(i=0;i<20;i++){if((strcmp(aa4[i

8、,aa)==0)){coutvv”种别编码:t=4,内部编码:i=,,«i«endl;break;}}for(i=0;i<20;i++){if((strcm

9、p(aa5[i],aa)==0)){cout«"种别编码:t=5,内部编码:i="«i«endl;break;四.实验结果反中月・JWR詞石与«屋中月U石与«胃韋月0J自詞石穷«彳中月11^^石与=虽石月寸坯8石与«舅0

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

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

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