编译原理词法分析实验.doc

编译原理词法分析实验.doc

ID:51388104

大小:278.00 KB

页数:10页

时间:2020-03-23

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

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

1、编译原理程序设计实验报告词法分析器的构造——实验题目班级:计算机1306姓名:韩远磊学号:20133948实验目标:通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。确定词法分析器的输出形式及标识符与关键字的区分方法。加深对课堂教学的理解;提高词法分析方法的实践能力。通过本实验,应达到以下目标:1、掌握从源程序文件中读取有效字符的方法和产牛源程序的内部表示文件的方法。2、掌握词法分析的实现方法。3

2、、上机调试编出的词法分析程序。实验内容:(1)设计要求内部码表[A001硼X00V01•小獄2->正整散00其它界符(1)((字母)・d(数字):⑵?(空格•回车

3、.换行)需要滤掉:⑶©(泛指单词的后继符):(4)…(表示省略了其他界符的处理几一般的程序设计语言,注释部分的形式为:/*注释部分、、、、*/我们的程序总是顺序的一个一个字符读取输入文件的。我们的目的是把注释部分去掉,那么对于输入的字符流,我们只要识别出“/杆就知道后面的部分是注释部分,直到识别输入流中出现咗厂为止。对字符流的处理是一个一个进行的,每读入一个字符,就判断,如果字符是就说明后面的部分可能是注释,再看下一个输入字符,如果是“杆,就是上面所说的情况:杆那么后面的部分就是注释部分,然后再用相同的方法找出咗

4、/”就可以了。这个识别的过程就可以用状态转换图来清晰的表示:对于读入的每个符号都要进行判断,如果是“厂说明后面的部分有可能是注释,进入状态1。如果后面的输入是“杆那么就可以确定以后的内容为注释内容,如果后面的输入不是”*说明后面的内容不是注释,前面出现的可能是做除号使用,如“5/3”其实上面的流程图也就对应了程序实现的逻辑,可以用switch-case来实现,对于每个输入,判断后跳转到相应的状态,然后继续判断。源程序代码:(加入注释)#include#include#incl

5、ude#include#includechar//KT关键字char*pt[ioo]=r.II兀-兀HItn/»»Itfntr

6、hnit"•兀w/ituyMirmt-iH1.*kt[6]={”intTmainTvoidTifVelseTchar”},TOKEN[120],ch;//IT标识符//ct常数//CT字符//st字符串//PT界符char*it[100];char*ct[10()];char*CT[1()()];char*st[100];in

7、tj=O,k=O;intsearch(char*TOKEN){〃关键字匹配函数intm,i;for(i=0;i<=5;i++){if((m=strcmp(TOKEN,kt[i]))==0)returni+4;}return0;}〃再加一个查找函数intsearchnum(char*TOKEN){〃常数匹配函数intm,i;for(i=0;ct[i]!=NULL;i++){m=strcmp(TOKEN,ct[i]);if(m=0)returni;//3}return-1;}intsearchiden(char*TO

8、KEN){〃标识符匹配函数intm,i;for(i=0;it[i]!=NULL;i++){if((m=strcmp(TOKEN,it[i]))==0)returni;//0}return-1;}voidout(char*TOKEN,intin){〃输出函数cout«,,(,,«TOKEN«,,;,«in«H),,«endl;}voidscanner(FILE*fp){charTOKEN[20]={,,};charch;inti,c,w,v;ch=fgetc(fp);if(isalpha(ch)){TOKEN[

9、0]=ch;ch=fgetc(fp);i=l;while(isalnum(ch)){TOKEN[i]=ch;i++;ch=fgetc(fp);}TOKEN[i]=,,;c=search(TOKEN);fseek(fp,-l,l);if(c==O){v=searchiden(TOKEN);if(v==-l){it[j]二TOKEN;j++;out(TOKENJ);}el

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

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

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