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