• 递归下降分析法


    实验三 递归下降分析法

     

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

    专业 商软2班   姓名 李文辉  学号 201506110168

    一、        实验目的

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

    二、        实验内容和要求

         输入:正规式

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

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

    1. 1.      源程序名:168-李文辉.c

    可执行程序名:168李文辉.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语言文法的递归下降分析程序的。

  • 相关阅读:
    webpack的最简单应用,只使用js与css的打包
    数据统计表插件,highcharts插件的简单应用
    C#中的特性 (Attribute) 入门 (二)
    C#中的特性 (Attribute) 入门 (一)
    SQLServer存储过程入门
    C#拖拽操作
    C#剪切板
    .Net中的IO
    Android四大组件-服务
    AlertDialog对话框
  • 原文地址:https://www.cnblogs.com/168-hui/p/6212156.html
Copyright © 2020-2023  润新知