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

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

    专业 商软2班   姓名 蓝海鹏  学号 201506110171

    一、        实验目的

         编制一个使用递归下降分析法实现的语法分析程序。

    二、        实验内容和要求

         输入:正规式

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

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

    1. 1.      源程序名:171-蓝海鹏.c

    可执行程序名:171蓝海鹏.exe

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

     

    1. 3.      主要程序段:
     1 #include<stdio.h>
     2 #include<string.h>
     3 char Token[30];//存储输入的字符
     4 char sym;//记录下一个字符
     5 char s;//输入字符的传递
     6 static int p=0 ;//下一个字符的下标
     7 void S();
     8 void T();
     9 void U();
    10 void scaner();//下一个字符
    11 void error();//错误结束
    12 main()
    13 {    
    14     int i=-1;    
    15     printf("Please input :
    ");    
    16     do    
    17     {        
    18         scanf("%c",&s);i++;
    19         
    20         Token[i]=s;
    21     }while(Token[i]!='#');
    22     scaner();    
    23     S();    
    24     if(sym=='#')        
    25         printf("Success!
    ");    
    26     else        
    27         printf("fail!
    ");
    28 }
    29 
    30 void scaner()
    31 {    
    32     sym=Token[p];    
    33     p++;    
    34 }
    35 void error()
    36 {    
    37     printf("error!");    
    38 }
    39 void S()
    40 {    
    41     if(sym=='a'||sym=='^')//如果是a或者是^        
    42         scaner();    
    43     else if(sym=='(')        
    44     {        
    45         scaner();        
    46         T();        
    47         if(sym==')')            
    48             scaner();        
    49         else            
    50             error();
    51     }    
    52 }
    53 void T()
    54 {    
    55     S();    
    56     U();    
    57 }
    58 
    59 void U()
    60 {    
    61     if(sym==',')        
    62     {        
    63         scaner();        
    64         S();        
    65         U();        
    66     }
    67     else if(sym!=')')        
    68         error();    
    69 }
    1. 4.      运行结果及分析

                           

    四、        实验总结

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

  • 相关阅读:
    向Word模板中填充数据
    WCF学习笔记之消息交换模式
    Matlab图窗复制后visio中不能取消组合
    Tecplot 360 安装后弹出“Is your Tecplot 360 EX liense valid?”解决方法
    PS操作
    fluent仿真数值错误
    运行程序显示:Could not find version 8.3 of the MCR.
    matlab图片高清复制到visio
    51单片机常用头文件
    逻辑电平
  • 原文地址:https://www.cnblogs.com/171-LAN/p/6192969.html
Copyright © 2011-2022 走看看