首页 > 其他 > 详细

12.16实验四 递归下降语法分析程序设计

时间:2015-12-30 19:15:07      阅读:232      评论:0      收藏:0      [点我收藏+]
#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("请输入需要分析的语法:(#结束)\n");
do{ scanf("%c",&ch); LL1[i] = ch; i++; }while(ch != #); scaner(); checking(); } void scaner(){ //用于读取源函数的下一个字符 N++; if(LL1[N] == ){ N++; }else { curr = LL1[N]; } }技术分享技术分享

 

12.16实验四 递归下降语法分析程序设计

原文:http://www.cnblogs.com/zlcan/p/5089536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!