首页 > 代码库 > 词法分析器实验报告
词法分析器实验报告
实验一、词法分析实验
专业 商业软件工程
姓名 孙创锋
学号 201506110221
一、 实验目的
编制一个词法分析程序。
二、 实验内容和要求
输入:源程序字符串;输出:二元组(种别,单词本身)。
三、 实验方法、步骤及结果测试
源程序名:词法分析.c,词法分析.exe
原理分析及流程图
原理主要根据老师给的表格
主要程序段及其解释:
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i;
char s[10];
printf("词法分析器输出类型说明:");
printf("1.保留字\n");
printf("2.运算符\n");
printf("3.分界符\n");
printf("4.常数\n");
printf("5.标识符\n\n\n\n");
printf("请输入字符串:");
scanf("%s",&s);
for(i=0;i<10;i++)
{
if(s[i]==‘a‘&&s[i+1]==‘u‘&&s[i+2]==‘t‘&&s[i+3]==‘o‘)
printf("1, auto\n");
else if(s[i]==‘i‘&&s[i+1]==‘n‘&&s[i+2]==‘t‘)
printf("1, int\n");
else if(s[i]==‘c‘&&s[i+1]==‘h‘&&s[i+2]==‘a‘&&s[i+3]==‘r‘)
printf("1, char\n");
else if(s[i]==‘w‘&&s[i+1]==‘h‘&&s[i+2]==‘i‘&&s[i+3]==‘l‘&&s[i+4]==‘e‘)
printf("1, while\n");
else if(s[i]==‘d‘&&s[i+1]==‘o‘)
printf("1, do\n");
else if(s[i]==‘f‘&&s[i+1]==‘o‘&&s[i+2]==‘r‘)
printf("1, for\n");
else if(s[i]==‘g‘&&s[i+1]==‘o‘&&s[i+2]==‘t‘&&s[i+3]==‘o‘)
printf("1, goto*\n");
else if(s[i]==‘-‘)
printf("2, -\n");
else if(s[i]==‘*‘)
printf("2, *\n");
else if(s[i]==‘/‘)
printf("2, /\n");
else if(s[i]==‘+‘)
printf("2, +\n");
else if(s[i]==‘<‘)
printf("2, <\n");
else if(s[i]==‘>‘)
printf("2, >\n");
else if(s[i]==‘;‘)
printf("3, ;\n");
else if(s[i]==‘=‘)
printf("3, =\n");
else if(s[i]==‘,‘)
printf("3, ,\n");
else if(s[i]==‘0‘)
printf("4, 0\n");
else if(s[i]==‘1‘)
printf("4, 1\n");
else if(s[i]==‘2‘)
printf("4, 2\n");
else if(s[i]==‘3‘)
printf("4, 3\n");
else if(s[i]==‘4‘)
printf("4, 4\n");
else if(s[i]==‘5‘)
printf("4, 5\n");
else if(s[i]==‘6‘)
printf("4, 6\n");
else if(s[i]==‘7‘)
printf("4, 7\n");
else if(s[i]==‘8‘)
printf("4, 8\n");
else if(s[i]==‘9‘)
printf("4, 9\n");
else if(s[i]==‘10‘)
printf("4, 10\n");
else if(s[i]==‘a‘)
printf("5, a\n");
else if(s[i]==‘b‘)
printf("5, b\n");
}
}
运行结果及分析
四、 实验总结
刚认识词法分析,对词法分析不是很了解,写出来的代码我也觉得怪怪的,不知道其中的意思。
词法分析器实验报告