云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 词法分析器-计算器-设计及实现实验报告

词法分析器-计算器-设计及实现实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 18:47:39

辅导教师 张静 成绩

实验日期 实验时间 1实验名称 :词法分析器的设计与实现 2、实验目的 (1)掌握C语言单词符号的划分、正规式、状态转换图及词法分析器的实现。 (2)掌握词法分析程序的作用。 3、实验要求 (1)对任给的一个C语言源程序,能够滤掉空格、回车换行符、tab键及注释。 (2)识别各类单词符号,如关键字、标识符、运算符、常数、界符,结果以二元式形式输出,并构造符号表。 (3)输出有词法错误的单词及所在行号。(在此阶段只能识别有限的词法错误) 4、实验原理 根据扫描到的单词符号的第一个字符的种类,分别转到相应的程序进行处理。这些程序的功能就是识别以相应字符开头的各类单词符号。 5、实验步骤 (1)根据C语言各类单词的正规式,构造能识别各类单词的状态转换图。 (2)根据状态转换图,构造识别各类单词的词法分析器。 6、状态转换图及词法分析程序 状态转换图: 空白 字母 字母或数字 非字母与数字 * 0 1 2 数字 非数字 * 3 4 运算符 * 5 界符 * 6 其他 * 7 词法分析程序: #include #include #include #include using namespace std; string keywords[20]={\\char rz[99999]=\string id[10000]; int pp=0; string nu[10000]; int qq=0; int choice1(char a) //判断是否是字母 { if((a>='a'&&a<='z')||(a>='A'&&a<='Z')) return 1; else return 0; } int choice2(char a) //判断是否是数字 { if(a>='0'&&a<='9') return 1; else return 0; } int alpha(int st) //识别保留字和标识符 { char wordbuf[20]=\ int n=0; for( ; ; ) { wordbuf[n]=rz[st]; st++; n++; if((choice2(rz[st])==1)||(choice1(rz[st])==1)||(rz[st]=='_')) wordbuf[n]=rz[st]; else break; } int flag=0; for(int k=0;k<20;k++) { if(strcmp(keywords[k].c_str(),wordbuf)==0) flag=1; } if(flag==0) { int flagg=-1; for(int t=0;t

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

辅导教师 张静 成绩 实验日期 实验时间 1实验名称 :词法分析器的设计与实现 2、实验目的 (1)掌握C语言单词符号的划分、正规式、状态转换图及词法分析器的实现。 (2)掌握词法分析程序的作用。 3、实验要求 (1)对任给的一个C语言源程序,能够滤掉空格、回车换行符、tab键及注释。 (2)识别各类单词符号,如关键字、标识符、运算符、常数、界符,结果以二元式形式输出,并构造符号表。 (3)输出有词法错误的单词及所在行号。(在此阶段只能识别有限的词法错误) 4、实验原理 根据扫描到的单词符号的第一个字符的种类,分别转到相应的程序进行处理。这些程序的功能就是识别以相应字符开头的各类单词符号。 5、实验步骤 (1)根据C语言各类单词的正规式,构造能识别各类单词的状态转换图。 (2)根据状态转换图,构造识别各类单词的词法

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com