- 0
- 0
- 约8.64千字
- 约 14页
- 2026-01-26 发布于江苏
- 举报
词法分析器实验报告
词法分析器设计
实验目的:
对C语言的一个子集设计并实现一个简单的词法分析器,掌握利用状态转换图设计词法分析器的基本方法。利用该词法分析器完成对源程序字符串的词法分析。输出形式是源程序的单词符号二元式的代码,并保存到文件中。
二、实验内容:
1.设计原理
词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号。
理论基础:有限自动机、正规文法、正规式
词法分析器(LexicalAnalyzer)又称扫描器(Scanner):执行词法分析的程序
2.词法分析器的功能和输出形式
功能:输入源程序、输出单词符号
程序语言的单词符号一般分为以下五种:关键字、标识符、常数、运算符,界符
3.输出的单词符号的表示形式:
单词种别用整数编码,关键字一字一种,标识符统归为一种,常数一种,各种符号各一种。
4.词法分析器的结构
5.状态转换图实现
三、程序设计
1.总体模块设计
/*用来存储目标文件名*/
stringfile_name;
/*提取文本文件中的信息。*/
stringGetText();
/*获得一个单词符号,从位置i开始查找。并且有一个引用参数j,用来返回这个单词最后一个字符在str的位置。*/
stringGetWord(stringstr,inti,intj);
/*这个函数用来除去字符串中连续的空格和换行
intDeleteNull(stringstr,inti);
/*判断i当前所指的字符是否为一个分界符,是的话返回真,反之假*/
boolIsBoundary(stringstr,inti);
/*判断i当前所指的字符是否为一个运算符,是的话返回真,反之假*/
boolIsOperation(stringstr,inti);
/*此函数判断传递的参数是否为关键字,是的话,返回真,反之返回假*/
boolIsKey(stringstr);
intmain()
{
cout*********************************************************\n;
cout*************编译原理课程设计--词法编译器ver1.0*********\n;
cout*********************************************************\n;
coutendl;
stringcom1=;
stringcom2=\n;
stringfileline=GetText();
intbegin=0,end=0;
vectorstringarray;
do
{
begin=DeleteNull(fileline,begin);
stringnowString;
nowString=GetWord(fileline,begin,end);
if(end==-1)
break;
if(nowSpare(com1)nowSpare(com2))
array.push_back(nowString);
begin=end+1;
}while(true);
vectorpairint,stringmid_result;
mid_result=analyst(array);
OutFile(mid_result);
cout*********************************************************\n;
cout*程序已完成词法分析,分析结果已经存储在文件file_name中!!!*\n;
cout*********************************************************\n;
cout感谢使用,谢谢再见!endl;
system(pause);
return0;
}
/*提取文本文件中的信息*/
stringGetText()
{
stringfile_name1;
cout请输入源文件名(包括路径和后缀名):;
cinfile_name1;
ifstreaminfile(file_name1.c_str(),ios::in);
if(!inf
您可能关注的文档
最近下载
- 国家中小学智慧教育平台的应用培训.pptx VIP
- 上海市青浦区2026届高三一模英语试题(含答案).docx
- DBJ52T 112-2022 贵州省供水服务评价标准.docx VIP
- 人教版高中语文必修上册教学设计-披情入理,妙笔幽微——散文写作如何做到情景交融.pdf VIP
- 医疗器械程序文件.pdf VIP
- ICD-O-3形态学编码汇总.pdf VIP
- 2025年版新版交规题库12123学法减分题库(学法减分题库及答案通用版300题).docx
- 县残疾人联合会2025年度民主生活会班子对照检查材料(五个带头) .docx VIP
- 基于LORA技术的教室环境监测系统设计与实现.docx VIP
- 钢结构主体验收自评报告.pdf VIP
原创力文档

文档评论(0)