LL(1)文法的判断,递归下降分析程序

void ParseT(){

    switch(lookahead){
        case (,i:
            ParseF();
            ParseT'();
            break;
        default:
             printf("语法错误! \n");
            exit(0);
    }
 }
void ParseT'(){
    switch(lookahead){
         case *:
             MatchToken(*);
             ParseF();
            ParseT'();
            break;
         case #,),+:
            break;
         default:
            printf("语法错误! \n");
            exit(0);
     }
 }
  
 void ParseE(){
     switch(lookahead){
         case (,i:
             ParseT();
             ParseE'();
             break;
          default:
          printf("语法错误! \n");
           exit(0);
   }
}
 void ParseE'(){
    switch(lookahead){
        case +:
             MatchToken(+);
             ParseT();
          ParseE'();
          break;
         case #,):
            break;
        default:
            printf("语法错误! \n");
            exit(0);
    }
 }
 
 void ParseF(){
     switch(lookahead){
         case (:
             MatchToken(();
            ParseE()
            MatchToken());
            break;
        case i:
            MatchToken(i);
            break;
       default:
            printf("语法错误! \n");
            exit(0);
  }
}
void ParseT(){
    switch(lookahead){
        case (,i:
            ParseF();
            ParseT'();
            break;
        default:
             printf("语法错误! \n");
            exit(0);
    }
 }
void ParseT'(){
    switch(lookahead){
         case *:
             MatchToken(*);
             ParseF();
            ParseT'();
            break;
         case #,),+:
            break;
         default:
            printf("语法错误! \n");
            exit(0);
     }
 }
  
 void ParseE(){
     switch(lookahead){
         case (,i:
             ParseT();
             ParseE'();
             break;
          default:
          printf("语法错误! \n");
           exit(0);
   }
}
 void ParseE'(){
    switch(lookahead){
        case +:
             MatchToken(+);
             ParseT();
          ParseE'();
          break;
         case #,):
            break;
        default:
            printf("语法错误! \n");
            exit(0);
    }
 }
 
 void ParseF(){
     switch(lookahead){
         case (:
             MatchToken(();
            ParseE()
            MatchToken());
            break;
        case i:
            MatchToken(i);
            break;
       default:
            printf("语法错误! \n");
            exit(0);
  }
}

 

posted @ 2019-11-21 21:19  林文文  阅读(250)  评论(0编辑  收藏  举报