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语言文法的递归下降分析程序的。

  • 相关阅读:
    2022年第一天
    RestTemplate、 Ribbon、 OpenFeign 关系以及OpenFeign使用连接池
    linux下面编写简单的c++程序
    Rocket简介以及单机版安装
    事务源码(二)
    javaagent技术&Attach技术
    gateway网关原理
    Maven自定义插件以及使用
    AotucCrawler 快速爬取图片
    Monkey工具之fastbotiOS实践
  • 原文地址:https://www.cnblogs.com/171-LAN/p/6192969.html
Copyright © 2011-2022 走看看