语句分析实验

实验一、语句分析实验

专业 商业软件三班   姓名 许怀鹏 学号 201506110222

一、 实验目的

编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。

二、 实验内容和要求

利用C语言编制递归下降分析程序,并对简单语言进行语法分析。

三、 实验方法、步骤及结果测试

 

  1. 源程序名:实验一中源程序名 实验一.c

可执行程序名:实验一.exe

  1. 原理分析及流程图

  1. 主要程序段及其解释:

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,比如无法识别,或者只能识别一部分。但我会在以后的日子里,参考同学的代码,进行学习的。

 

原文地址:https://www.cnblogs.com/phoenlix/p/5958298.html