zoukankan      html  css  js  c++  java
  • 递归下降语法分析程序设计

     1 #include<stdio.h>
     2 
     3 #include<string>
     4 char str[10];
     5 int index=0;
     6 void E();            
     7 void X();            
     8 void T();        
     9 void Y();        
    10 void F();            
    11 int main()
    12 {
    13     int len;
    14     int m;
    15     printf("请输入测试的次数:");
    16     scanf("%d",&m);
    17     while(m--)
    18     {
    19         printf("请输入表达式:");
    20         scanf("%s",str);
    21         len=strlen(str);
    22         str[len]='#';
    23         str[len+1]='';
    24         E();
    25         printf("正确语句!
    ");
    26         strcpy(str,"");
    27         index=0;
    28     }
    29     return 0;
    30 }
    31 void E()
    32 {
    33     T();
    34     X();
    35 }
    36 void X()
    37 {
    38     if(str[index]=='+')
    39     {
    40         index++;
    41         T();
    42         X();
    43     } 
    44 }
    45 void T()
    46 {
    47     F();
    48     Y();
    49 }
    50 void Y()
    51 {
    52     if(str[index]=='*')
    53     {
    54         index++;
    55         F();
    56         Y();
    57     }
    58 }
    59 void F()
    60 {
    61     if(str[index]=='i')
    62     {
    63         index++;
    64     }
    65     else if (str[index]=='(')
    66     {     
    67         index++;
    68         E();
    69         if(str[index]==')')
    70         {
    71             index++; 
    72         }else{
    73             printf("
    分析失败!
    ");
    74             exit (0);
    75         }
    76     } 
    77     else{
    78         printf("分析失败!
    "); 
    79         exit(0);
    80     }
    81  }

  • 相关阅读:
    聊一聊Java泛型的擦除
    微信退款通知信息解密
    Spring Boot 初识
    shiro初识
    Redis 初探
    Java Json库的选取准则
    JAVA 几款Json library的比较
    FUSE简介
    Lab 2 源码分析
    Lab2
  • 原文地址:https://www.cnblogs.com/Ranjer/p/5089574.html
Copyright © 2011-2022 走看看