电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

编译原理词法分析实验一词法分析扫描器的设计实现本科论文

编译原理词法分析实验一词法分析扫描器的设计实现本科论文_第1页
1/14
编译原理词法分析实验一词法分析扫描器的设计实现本科论文_第2页
2/14
编译原理词法分析实验一词法分析扫描器的设计实现本科论文_第3页
3/14
编译原理程序设计实验报告——实验题目班级:计算机 1306姓名:学号:289实验目标:词法分析扫描器的设计实现实验内容:1. 概要设计1) 主函数:每次从文件中读取一个字符,不是#,继续推断其是否是 0~9 数字,是进入 isnumber()函数,否继续推断其是否是a~z 或 A~Z,是进入 isalpha()函数,否继续推断是否是空格或换行符,是继续读下一个字符,否进入 isother()函数。2) Isnumber():读字符,将数字(包括小数点)全部接收,并存入常数表。3) Isalpha():读字符,将 a~z 或 A~Z(包括下划线)全部接收,与关键字表比较,匹配,输出序号,否则存入标识符表。4) Isother():读字符,将符号都接受,与界符表比较,匹配输出序号,遇到”或’分别存入字符表和字符串表。2. 流程图 开始 T F T F T F F3. 关键函数void IsNumber(); //读的是数字void IsAlpha(); //读的是关键字和标示符int IsOther();//读字符、字符串、界符源程序代码:(加入注释)#include#include#include #include using namespace std;/***********定义结构体***********/typedef struct Token{ char name[20];从文件读一个字符 0~9 ?进入函数Isnumber()a~z或A~Z?进入函数isAlpha() # ?空格或 /n?进入isOther()结束 int state; //状态,为 0 是标识符,为 1 是字符,为 2 是字符串,为 3 是数字,为 4 是关键字,为 5 是界符} Token;typedef struct STR //{ char name[20]; int code;}STR;STR iT[10];STR cT[20];STR sT[20];STR CT[20];STR KT[10]={{"int",4},{"main",5},{"void",6},{"if",7},{"else",8},{"char",9}};STR PT[30]={{">=",10},{"<=",11},{"==",12},{"=",13},{">",14},{"<",15},{"+",16},{"-",17},{"*",18},{"/",19}, {"{",20},{"}",21},{",",22},{";",23},{"(",24},{")",25}, {"[",26},{"]",27}};/***********全局变量声明*********/Token CurrentToken; //正在读的 tokenToken token[200];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();//...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

编译原理词法分析实验一词法分析扫描器的设计实现本科论文

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部