1 / 33
文档名称:

编译原理实验-词法分析器的设计与实现.docx

格式:docx   大小:146KB   页数:33页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理实验-词法分析器的设计与实现.docx

上传人:zhangshus 2022/5/20 文件大小:146 KB

下载得到文件列表

编译原理实验-词法分析器的设计与实现.docx

相关文档

文档介绍

文档介绍:南华大学
计算机科学与技术学院
实验报告
(2018~2019学年度第二学期)
课程名称编译原理
实验名称词法分析器的设计与
姓名学号
专业班级
地点
教师
.实验目的及要求
实验目的
>
charinput[1000];//输入用
charword[8];//获取到的单词
charch;
intsyn;〃种别码
intp;
intm;
intline;//行数
//关键字
char
keyword[][8]={"main","if","else","while","do","for","switch","case","int","double","float","long","void"};
{
{
}
voidscaner(void);
〃获取输入用
voidinit()
{
inti=0;
printf("\npleaseinputastring(endwith'#'):\n");
do{
scanf("%c",&ch);
input[i++]=ch;
}while(ch!='#');
}
〃判断是不是关键字
intisKey(char*str)
{
intn;
for(n=0;n<13;n++)
{
if(strcmp(str,keyword[n])==0)
{
syn=n;
return1;
}
return0;
}
{
{
}
〃判断是不是数字
intisDigit(charc)
{
if(c>='0'&&c<二'9')
return1;
else
return0;
}
〃判断是不是字母
intisLetter(charc)
{
if((c<='z'&&c>='a')||(c>='A'&&c<二Z))return1;
else
return0;
}
intisSpace(charc)
}
if(c==''||c=='\t'||c=='\n')
{
return1;
}
return0;
}
voidmain()
{
init();〃输入字符串
line=0;
p=0;
do{
scaner();
switch(syn)
{
case-1:
printf("youhaveinputawrongstringinline%d\n”,line);
break;
default:
printf("(%s,%d)\n",word,syn);
break;
}while(syn!=21);
}
voidscaner(void)
{
//清空word
for(m=0;m<8;m++)
{
word[m]='';
}
//读取字符
ch=input[p++];
m=0;
//当ch为空格或换行符时,继续往下读
while(isSpace(ch))
{
if(ch=='\n')
{
line++;
}ch=input[p++];
〃如果以字母开头
if(isLetter(ch))
{
//如果往后是字母或数字,把字符存入word中,然后往下继续

//用长超过8则截断
while((isLetter(ch)||isDigit(ch))&&m<8)
}
{
word[m++]=ch;
ch=input[p++];
}
P--;
syn=43;
word[m++]='\0';
isKey(word);//判断是不是关键字
}
〃如果是以数字开头,并且往后是数字
elseif(isDigit(ch))
{
while((isDigit(ch)11ch=='.')&&m<8)
word[m++]=ch;
ch=input[p++];
}
//如果数字之后是字母,则出错
if(isLetter(ch))
{
while(!isSpace(ch))
{
ch=input[p++];
}
syn=-1;
return;
}
P—-;
syn=42;
}
else
{
switch(ch)
〃比较运算符
word[m++]=ch;
}
ch=input[p++];
if(ch=='=')
{
syn=29;
word[m++]=ch;
else
syn=28;
P--;
break;
case'>':
word[m++]=ch;
ch=input[p++];
if(ch=='=')
{
syn=27;
word[

最近更新

品牌营销案例及分析 22页

轨道交通站房空调系统控制 65页

线上音乐市场未来发展趋势 29页

检测服务行业合规性研究 33页

代谢调控-1上传 (2) 51页

冀教版七年级数学测试题 7页

2024年社会咨询服务项目资金筹措计划书代可行.. 72页

2024年汽车清洁剂项目投资申请报告代可行性研.. 71页

2024年柠檬酸及其盐类项目投资申请报告代可行.. 53页

2024年联合收割机项目投资申请报告代可行性研.. 63页

2024年洁厕剂项目资金申请报告代可行性研究报.. 61页

企业形象长效传播礼品策划案 16页

垃圾为什么要分类大班ppt大纲 29页

公路工程年度总结 11页

变频器基础知识培训 33页

印刷企业法规培训 32页

医院保洁员培训 33页

荒漠化的危害与治理 (2) 60页

2024年高性能陶瓷复合材料项目投资申请报告代.. 62页

2024年穿越片项目资金筹措计划书代可行性研究.. 61页

2024年OLED寿命检测系统项目投资申请报告代可.. 80页

2024年无机复合材料项目项目投资需求报告代可.. 71页

2024年LED器件项目项目投资申请报告代可行性研.. 65页

2024年演出经纪人考试题库含完整答案【各地真.. 221页

南京外国语小升初数学真题附答案 5页

内部控制工作小组及职责 3页

高支模脚手架规范2016 5页

染整专业毕业论文 15页

高中语文基础知识手册薛金星pdf 3页

2021年火力发电厂面试笔试题火力发电厂笔试题.. 20页