乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      遞歸下降分析法的簡(jiǎn)單例子的c語(yǔ)言實(shí)現(xiàn)

       quasiceo 2013-12-10
      分類: 編譯原理 2012-04-08 20:23 595人閱讀 評(píng)論(0) 收藏 舉報(bào)

      我們舉的簡(jiǎn)單例子是

      G[s]:

      Sa || (T)

      TT, S | S

      轉(zhuǎn)化為L(zhǎng)L1文法

      S →a || (T)
      T →ST'
      T'→,ST'| ε
      c語(yǔ)言代碼實(shí)現(xiàn)
       
      1. #include<stdio.h>  
      2. char scaner(char*input,int* p);  
      3. void S(char*input,int* p);  
      4. void T(char*input,int* p);  
      5. void T1(char*input,int* p);  
      6. void error();  
      7. int sym=0;  
      8. int main()  
      9. {  
      10.  int p=0;  
      11.  char input[200]={0};  
      12.   
      13.  printf("請(qǐng)輸入你要識(shí)別的單詞\n");  
      14.  printf("單詞只能由 ( ) a ^ , 組成,且單詞必須以$#結(jié)尾\n");  
      15.  scanf("%[^#]s",input);  
      16.  printf("the word you input is  : %s\n",input);  
      17.  sym=scaner(input,&p);  
      18.  S(input,&p);  
      19.    
      20.  if(sym=='$')  
      21.       printf("sucess\n");  
      22.  else   
      23.       printf("fail");  
      24.         
      25. do   
      26. {  
      27.    ;   }while(1);        
      28.       
      29.  return 0;      
      30. }  
      31. char scaner(char*input,int *p)  
      32. {  
      33.  char temp=input[*p];  
      34.   (*p)++;  
      35.  return temp;       
      36. }  
      37. void S(char*input,int* p)  
      38. {   
      39.  if(sym=='a'||sym=='^')  
      40.        sym=scaner(input,p);  
      41.  else if(sym=='(')  
      42.       {  
      43.        sym=scaner(input,p);  
      44.        T(input,p);  
      45.        if(sym==')')  
      46.               sym=scaner(input,p);  
      47.        else   
      48.               error();       
      49.       }  
      50.  return ;  
      51.  }  
      52.  void T(char*input,int* p)  
      53.  {  
      54.  S(input,p);  
      55.  T1(input,p);  
      56.  return ;       
      57.  }  
      58.  void T1(char*input,int* p)  
      59.  {  
      60.   if(sym==','){  
      61.        sym=scaner(input,p);  
      62.        S(input,p);  
      63.        T1(input,p);}   
      64.   else if(sym!=')')  
      65.        error();  
      66.              
      67.  }  
      68.  void error()  
      69.  {  
      70.         printf("error!!!");  
      71.         return ;  
      72.         }  
      73.           


       

      更多 0

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多