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

    #include<stdio.h>
    char curr;
    char LL1[1000];
    int N=0;
    
    void scaner();
    
    int digital(){         //panduanshifouweishuzi
    
         if(curr >= '0' && curr <= '9')
         {
         return 1;
         }
         else {
         return 0;
         }
    
    }
    
    int english(){                   
       if(curr >= 'a' && curr<='z' || curr >= 'A' && curr <= 'Z')
       {
        return 1;
       }
      else 
          return 0;
    
    }
    int yuansuanf(){
      if(curr=='+'||curr=='-'||curr=='*'||curr=='/')
      {
      return 1;
      }
     
      else{
          return 0;
      }
    
    }
    int  end(){
        if(curr!='#'){
        return 1;    
        }
      else 
          return 0;
    }
    
    
    int check(){
          
         if(digital()==1){
              scaner();
              if(end()==1){
                  if(yuansuanf()==1){
                      
                           return 1;
                  }
                  else if(yuansuanf()==0){
                            return 0;
                  
                  }
              }
              else if(end()==0){
              return 1;
              }
         
         }
    
           
             return 0;
        
    
    
    }
     
    void checking(){
       int number;
     qq:   scaner();
        if(digital()==1){
        while(curr!='#'){
          number=check();
          if(number==1){
             goto qq;
          }
          else if(number==0){
          
           break;     
          }
        }
        }
    
    
    if(number==1){
    
    printf("无错误");
    }
    else 
    printf("%c错误",curr);
    
    
    }
    
    
    
    void main()
    {    char ch;
        int i=0;
        printf("请输入需要分析的语法:(#结束)
    ");
    do{ scanf("%c",&ch); LL1[i] = ch; i++; }while(ch != '#'); scaner(); checking(); } void scaner(){ //用于读取源函数的下一个字符 N++; if(LL1[N] == ' '){ N++; }else { curr = LL1[N]; } }
  • 相关阅读:
    js中细小点
    被 idea 坑了的记录篇
    Spring 读写分离
    Java反射机制
    Spring AOP
    java Beanutils.copyProperties( )用法
    java List 数组删除元素
    java 中序列化(Serializable)
    webpack 入门
    使用zxing生成彩色或带图片的二维码
  • 原文地址:https://www.cnblogs.com/zlcan/p/5089536.html
Copyright © 2011-2022 走看看