学士学位论文—-编译原理词法分析实验一词法分析扫描器的设计实现.doc
《学士学位论文—-编译原理词法分析实验一词法分析扫描器的设计实现.doc》由会员分享,可在线阅读,更多相关《学士学位论文—-编译原理词法分析实验一词法分析扫描器的设计实现.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理程序设计实验报告实验题目班级:计算机1306姓名:学号:289实验目标:词法分析扫描器的设计实现实验内容:1. 概要设计1) 主函数:每次从文件中读取一个字符,不是#,继续判断其是否是09数字,是进入isnumber()函数,否继续判断其是否是az或AZ,是进入isalpha()函数,否继续判断是否是空格或换行符,是继续读下一个字符,否进入isother()函数。2) Isnumber():读字符,将数字(包括小数点)全部接收,并存入常数表。3) Isalpha():读字符,将az或AZ(包括下划线)全部接收,与关键字表比较,匹配,输出序号,否则存入标识符表。4) Isother():
2、读字符,将符号都接受,与界符表比较,匹配输出序号,遇到”或分别存入字符表和字符串表。2. 流程图 开始从文件读一个字符结束 #? T F进入函数Isnumber() 09? T F进入函数isAlpha()az或AZ? T空格或/n? F F进入isOther()3. 关键函数void IsNumber(); /读的是数字void IsAlpha(); /读的是关键字和标示符int IsOther();/读字符、字符串、界符源程序代码:(加入注释)#include#include#include #include using namespace std;/*定义结构体*/typedef str
3、uct Token char name20; int state; /状态,为0是标识符,为1是字符,为2是字符串,为3是数字,为4是关键字,为5是界符 Token;typedef struct STR / char name20; int code;STR;STR iT10;STR cT20;STR sT20;STR CT20;STR KT10=int,4,main,5,void,6,if,7,else,8,char,9;STR PT30=,10,14,15,+,16,-,17,*,18,/,19, ,20,21,22,;,23,(,24,),25, ,26,27;/*全局变量声明*/Tok
4、en CurrentToken; /正在读的tokenToken token200;FILE *fp; /源文件指针char ch; /读取字符int state=0;/0表示标识符,1表示字符,2表示字符串int iT_i=0;/iT结构体数组下标int cT_i=0;int sT_i=0;int CT_i=0;int index=0;/token的下标/*函数声明*/void IsNumber(); /读的是数字void IsAlpha(); /读的是字母,关键字和标示符int IsOther();/,;+-/*主函数*/int main() int i =0; if(fp=fopen(s
5、ource.txt,r)=NULL) coutcan not open the source file!nendl; exit(1); ch=fgetc(fp); /文件中读一个字符 while(ch!=#) for(i=0; i=0)&(ch=a)&(ch=A)&(ch=Z)|(ch=_) /关键字和标识符 IsAlpha(); else if(ch= |ch=n) ch=fgetc(fp); else IsOther(); coutendl; for(i=0;i=index;i+)couttokeni.name ; coutendl; coutfinish=0)&(ch=9) Curren
6、tToken.namek+=ch;/将数字放入单词缓冲区 ch=fgetc(fp); bool flag=1; if(ch=.) CurrentToken.namek+=ch; ch=fgetc(fp); if(ch9) CurrentToken.namek+=ch; flag=0; else while(ch=0)&(ch=9) CurrentToken.namek+=ch;/将数字放入单词缓冲区 ch=fgetc(fp); if(flag=1) strcpy(CTCT_i+.name,CurrentToken.name);strcpy(tokenindex.name,CurrentToke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学士学位 论文 编译 原理 词法 分析 实验 扫描器 设计 实现
限制150内