日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

遞歸下降分析法的簡單例子的c語言實現

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

我們舉的簡單例子是

G[s]:

Sa || (T)

TT, S | S

轉化為LL1文法

S →a || (T)
T →ST'
T'→,ST'| ε
c語言代碼實現
 
  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("請輸入你要識別的單詞\n");  
  14.  printf("單詞只能由 ( ) a ^ , 組成,且單詞必須以$#結尾\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

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多