zoukankan      html  css  js  c++  java
  • 实验三 递归下降分析程序

    实验三递归下降分析程序实验

    专业 商软2班   姓名 邝启彬  学号 201506110165

    一、        实验目的

         编制一个递归下降分析程序。

    二、        实验内容和要求

         输入:正规式

    输出:判断该正规式是否正确。

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

    1. 1.      源程序名:递归下降分析程序.c

    可执行程序名:递归下降分析程序.exe

    1. 2.      原理分析及流程图

     

    1. 3.      主要程序段及其解释:
    #include<stdio.h>
    
    #include<string.h>
    
    char Token[30];//存储输入的字符
    
    char sym;//记录下一个字符
    
    char s;//输入字符的传递
    
    static int p=0 ;//下一个字符的下标
    
    void S();
    
    void T();
    
    void U();
    
    void scaner();//下一个字符
    
    void error();//错误结束
    
    //以此文法为基础作此程序
    
    //S->a|^|(T)
    
    //T->SU
    
    //U->,SU|$
    
    int main()
    
    {
    
        int i=-1;
    
        printf("Please input :
    ");
    
      do
    
        {
    
         
    
          scanf("%c",&s);i++;
    
          Token[i]=s;
    
         
    
        }while(Token[i]!='#');
    
     scaner();
    
     S();
    
         if(sym=='#')
    
             printf("Success!
    ");
    
         else
    
             printf("fail!
    ");
    
     return 0 ;
    
     
    
    }
    
    void scaner()
    
    {
    
        sym=Token[p];
    
        p++;
    
    }
    
    void error()
    
    {
    
        printf("error!");
    
    }
    
    void S()
    
    {
    
      if(sym=='a'||sym=='^')//如果是a或者是^
    
          scaner();
    
      else if(sym=='(')
    
      {
    
          scaner();
    
          T();
    
          if(sym==')')
    
              scaner();
    
          else
    
              error();
    
      }
    
    }
    
    void T()
    
    {
    
      S();
    
      U();
    
    }
    
    void U()
    
    {
    
      if(sym==',')
    
      {
    
        scaner();
    
        S();
    
        U();
    
      }
    
      else if(sym!=')')
    
          error();
    
    }
    
     
    1. 4.      运行结果及分析

                           

    四、        实验总结

    通过这个递归下降分析程序,使我懂得了编译器在编译时候的过程。虽然我做出来了这个程序,但是C语言文法的递归下降分析程序有点难度,需要我在以后的时间去慢慢完成。我会在接下来的时间里慢慢去完成C语言文法的递归下降分析程序的。

     

     

     

     

     

     

     

     

  • 相关阅读:
    1142
    dbms_monitor开启/关闭会话跟踪
    mysql密码过期问题
    zabbix监控mysql
    12C -- ORA-65048 ORA-65048
    idea的快捷键
    IntelliJ IDEA的配置优化
    IDEA环境设置
    Java 中int、String的类型转换
    js数组去重
  • 原文地址:https://www.cnblogs.com/BennyKuang/p/6188207.html
Copyright © 2011-2022 走看看