首页 > 其他 > 详细

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

时间:2019-11-21 21:22:43      阅读:169      评论:0      收藏: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);
  }
}
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);
  }
}

 

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

原文:https://www.cnblogs.com/lwwwjl123/p/11908483.html

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