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); } }
原文:https://www.cnblogs.com/lwwwjl123/p/11908483.html