编译原理课程设计报告-词法分析器(共6页).doc
《编译原理课程设计报告-词法分析器(共6页).doc》由会员分享,可在线阅读,更多相关《编译原理课程设计报告-词法分析器(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上一. 课程设计题目: 词法分析器的实现二.课程设计成员 三.课程设计内容和要求 设计一个程序,调试、编译,实现词法分析的功能,识别各单词或字符所属类别,并显示在屏幕上。词法分析器:逐个读入源程序字符并按照构词规则切分成一系列单词。单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。词法分析是编译过程中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。要求:通过词法分析器能够实现以下五种类型如单词等的识别。(1)关键字begin,end,if,then,else,
2、while,write,read等,do, call,const,char,until,procedure,repeat等(2)运算符:+,-,*,/,=等(3)界符:,;,.,(,),:等(4)标识符 (5)常量四操作要求 首先建立一个或多个文档,此处新建了两个文档,例:.txt文本文档和zhaoxiaodong.txt文本文档,以供选择,各文本文档中都输入有不同的内容,运行程序,出现提示,输入文本文档的名称,即可对文本文档中的内容进行分析,并把分析结果输出显示在屏幕上。五.算法设计#include #includeusing namespace std;#define MAX 22 cha
3、r ch = ;string key15=begin,end,if,then,else,while,write,read, do, call,const,char,until,procedure,repeat;int Iskey(string c) /关键字判断int i;for(i=0;iMAX;i+) if(pare(c)=0) return 1; return 0;int IsLetter(char c) /判断是否为字母 if(c=a)|(c=A) return 1; else return 0;int IsDigit(char c) /判断是否为数字 if(c=0&c=9) retu
4、rn 1;else return 0;void analyse(FILE *fpin) string arr=; while(ch=fgetc(fpin)!=EOF) arr=; if(ch= |ch=t|ch=n) else if(IsLetter(ch) while(IsLetter(ch)|IsDigit(ch) if(ch=A) ch=ch+32; arr=arr+ch; ch=fgetc(fpin); fseek(fpin,-1L,SEEK_CUR); if (Iskey(arr)coutarrt$属于关键字endl; else coutarrt$属于普通标识符endl; else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课程设计 报告 词法 分析器
限制150内