zoukankan      html  css  js  c++  java
  • 语句分析实验

    实验一、语句分析实验

    专业 商业软件三班   姓名 许怀鹏 学号 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,比如无法识别,或者只能识别一部分。但我会在以后的日子里,参考同学的代码,进行学习的。

     

  • 相关阅读:
    Spring Boot实战二:集成Mybatis
    Spring Boot实战一:搭建Spring Boot开发环境
    Oracle 11g安装和PL/SQL连接完全解读(连接本地数据库)
    Spring事务详解
    RabbitMQ学习笔记六:RabbitMQ之消息确认
    RabbitMQ学习笔记五:RabbitMQ之优先级消息队列
    RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
    RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成
    RabbitMQ学习笔记二:Java实现RabbitMQ
    Spark 读 Hive(不在一个 yarn 集群)
  • 原文地址:https://www.cnblogs.com/phoenlix/p/5958298.html
Copyright © 2011-2022 走看看