实验一、语句分析实验
专业 商业软件三班 姓名 许怀鹏 学号 201506110222
一、 实验目的
编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。
二、 实验内容和要求
利用C语言编制递归下降分析程序,并对简单语言进行语法分析。
三、 实验方法、步骤及结果测试
- 源程序名:实验一中源程序名 实验一.c
可执行程序名:实验一.exe
- 原理分析及流程图
- 主要程序段及其解释:
void bianbie(char a[])
{
char aa,b[10];
int n=strlen(a),i,l,c;//使用strlen函数来计算a数组的长度
for(i=0;i<n;i++)
{
aa=a[i];//将数组中的字符取出置于aa中方便比较
c=a[i+1];
if(aa>='0'&&aa<='9')//判断是否是数字
{
b[0]=aa;
l=SZshuchu(b);
if(c=='+'||c=='-'||c=='*'||c=='/'||c=='='||c==' ')//若出现运算符或结束时则开始说明
{
printf(" 数字");
printf(" ");
}
}
else//出现符号开始说明
{
if(aa=='+')
printf("加号");
if(aa=='-')
printf("减号");
if(aa=='*')
printf("乘号");
if(aa=='/')
printf("除号");
if(aa=='=')
printf("等号");
printf(" 运算符号 ");
}
}
}
运行结果及分析
四、 实验总结
首先我到现在还没有做完,只做了一部分,目前只能对简单算式进行分析,我试着做过对单词进行分析,但不知为何,老是出现bug,比如无法识别,或者只能识别一部分。但我会在以后的日子里,参考同学的代码,进行学习的。