亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1.cpp

?? 實驗目的 通過上機實習,加深對語法制導翻譯原理的理解,掌握將語法分析所識別的語法成分變換為中間代碼的語義翻譯方法. 實驗要求 采用遞歸下降語法制導翻譯法,對算術表達式、賦值語句進行語義分析并生成
?? CPP
字號:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char prog[100],token[8],ch;
char *rwtab[6]={"begin","if","then","while","do","end"};
int syn,p,m,n,sum,q;
int kk;
struct { char result1[8];
    char ag11[8];
    char op1[8];
    char ag21[8];
} quad[20];
char *factor();
char *expression();
int yucu();
char *term();
int statement();
int lrparser();
char *newtemp();
scaner();
emit(char *result,char *ag1,char *op,char *ag2);
main()
{ int j;
q=p=kk=0;
printf("\nplease input a string (end with '#'): ");
do
   { scanf("%c",&ch);
     prog[p++]=ch;
   }while(ch!='#');
p=0;
scaner();
lrparser();
if(q>19)printf(" to long sentense!\n");
else for (j=0;j<q;j++)printf("   %s = %s %s %s \n\n",quad[j].result1,quad[j].ag11,quad[j].op1,quad[j].ag21);
//getch();
}
int lrparser()
{ int schain=0;
    kk=0;
    if (syn==1)
      { scaner();
schain=yucu();
if(syn==6)
{ scaner();
    if((syn==0)&&(kk==0)) printf("Success!\n");
}
else { if(kk!=1)printf("short of 'end' !\n");
        kk=1;
//        getch();
        exit(0);
      }
      }
    else { printf("short of 'begin' !\n");
    kk=1;
//    getch();
    exit(0);
}
    return (schain);
}
int yucu()
{ int schain=0;
schain=statement();
while(syn==26)
   { scaner();
     schain=statement();
   }
return (schain);
}
int statement()
{ char tt[8],eplace[8];
int schain=0;
if (syn==10)
   { strcpy(tt,token);
     scaner();
     if(syn==18)
       { scaner();
strcpy(eplace,expression());
emit(tt,eplace,"","");
schain=0;
}
     else { printf("short of sign ':=' !\n");
     kk=1;
//   getch();
     exit(0);
    }
    return (schain);
   }
}
char *expression()
{ char *tp,*ep2,*eplace,*tt;
tp=(char *)malloc(12);
ep2=(char *)malloc(12);
eplace=(char *)malloc(12);
tt=(char *)malloc(12);
strcpy(eplace,term());
while((syn==13)||(syn==14))
   { if (syn==13)strcpy(tt,"+");
     else strcpy(tt,"-");
     scaner();
     strcpy(ep2,term());
     strcpy(tp,newtemp());
     emit(tp,eplace,tt,ep2);
     strcpy(eplace,tp);
   }
return (eplace);
}
char *term()
{ char *tp,*ep2,*eplace,*tt;
tp=(char *)malloc(12);
ep2=(char *)malloc(12);
eplace=(char *)malloc(12);
tt=(char *)malloc(12);
strcpy(eplace,factor());
while((syn==15)||(syn==16))
   { if (syn==15)strcpy(tt,"*");
     else strcpy(tt,"/");
     scaner();
     strcpy(ep2,factor());
     strcpy(tp,newtemp());
     emit(tp,eplace,tt,ep2);
     strcpy(eplace,tp);
   }
return (eplace);
}
char *factor()
{ char *fplace;
fplace=(char *)malloc(12);
strcpy(fplace,"");
if(syn==10)
   { strcpy(fplace,token);
     scaner();
   }
else if(syn==11)
   { itoa(sum,fplace,10);
     scaner();
   }
else if(syn==27)
   { scaner();
     fplace=expression();
     if(syn==28) scaner();
     else { printf("error on ')' !\n");
     kk=1;
//   getch();
     exit(0);
   }
   }
else { printf("error on '(' !\n");
kk=1;
// getch();
exit(0);
       }
return (fplace);
}
char *newtemp()
{ char *p;
char m[8];
p=(char *)malloc(8);
kk++;
itoa(kk,m,10);
strcpy(p+1,m);
p[0]='t';
return(p);
}
scaner()
{ sum=0;
    for(m=0;m<8;m++)token[m++]=NULL;
    m=0;
    ch=prog[p++];
    while(ch==' ')ch=prog[p++];
    if(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A')))
      { while(((ch<='z')&&(ch>='a'))||((ch<='Z')&&(ch>='A'))||((ch>='0')&&(ch<='9')))
   {token[m++]=ch;
    ch=prog[p++];
   }
      p--;
      syn=10;
      token[m++]='\0';
      for(n=0;n<6;n++)
if(strcmp(token,rwtab[n])==0)
    { syn=n+1;
      break;
    }
      }
    else if((ch>='0')&&(ch<='9'))
      { while((ch>='0')&&(ch<='9'))
{ sum=sum*10+ch-'0';
   ch=prog[p++];
}
p--;
syn=11;
      }
    else switch(ch)
       { case '<':m=0;
    ch=prog[p++];
    if(ch=='>')
      { syn=21;
      }
    else if(ch=='=')
      { syn=22;
      }
    else
      { syn=20;
         p--;
      }
    break;
case '>':m=0;
    ch=prog[p++];
    if(ch=='=')
      { syn=24;
      }
    else
      { syn=23;
        p--;
      }
    break;
case ':':m=0;
    ch=prog[p++];
    if(ch=='=')
      { syn=18;
      }
    else
      { syn=17;
        p--;
      }
    break;
case '+': syn=13; break;
case '-': syn=14; break;
case '*': syn=15;break;
case '/': syn=16;break;
case '(': syn=27;break;
case ')': syn=28;break;
case '=': syn=25;break;
case ';': syn=26;break;
case '#': syn=0;break;
default: syn=-1;break;
       }
    }
emit(char *result,char *ag1,char *op,char *ag2)
{ 
strcpy(quad[q].result1,result);
strcpy(quad[q].ag11,ag1);
strcpy(quad[q].op1,op);
strcpy(quad[q].ag21,ag2);
q++;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一线二线三线视频| 亚洲日本在线看| 国产亚洲成av人在线观看导航| 中文字幕日韩av资源站| 免费成人你懂的| 色婷婷综合久久久久中文 | 欧美大片一区二区| 亚洲人成人一区二区在线观看| 蜜臂av日日欢夜夜爽一区| 97久久精品人人澡人人爽| 日韩一区二区在线观看视频| 一区二区三区中文免费| 国产成人精品亚洲777人妖| 日韩欧美久久一区| 亚洲午夜久久久久久久久久久| 懂色av一区二区三区免费观看| 日韩欧美成人激情| 日本免费新一区视频| 欧美性大战久久久久久久| 18欧美亚洲精品| 国产一区二区三区免费播放| 欧美一区二区三区免费视频| 亚洲色图制服丝袜| 日本不卡高清视频| 欧美日韩免费观看一区二区三区| 精品久久久久久最新网址| 婷婷久久综合九色综合绿巨人| 成人激情校园春色| 精品国产青草久久久久福利| 石原莉奈在线亚洲三区| 成人免费av在线| 久久久精品2019中文字幕之3| 亚洲欧美日韩国产综合在线| 麻豆精品视频在线观看| 欧美美女直播网站| 亚洲精品久久7777| a在线欧美一区| 欧美激情自拍偷拍| 成人国产精品免费网站| 日本一区二区三区在线观看| 国内精品免费**视频| 日韩精品一区国产麻豆| 日韩av中文在线观看| 欧美一级在线免费| 日韩精品乱码免费| 69堂成人精品免费视频| 蜜桃免费网站一区二区三区| 在线成人免费观看| 精品一区二区三区免费毛片爱| 日韩亚洲欧美在线观看| 国产精品一区二区x88av| 日韩欧美黄色影院| 国产乱淫av一区二区三区| 精品久久人人做人人爽| 国产福利一区二区三区视频| 国产亚洲制服色| 国精品**一区二区三区在线蜜桃| 中文字幕精品一区二区精品绿巨人| 国产麻豆成人精品| 欧美韩国一区二区| 99久久er热在这里只有精品15| 亚洲一级二级在线| 欧美午夜精品一区| 天堂成人国产精品一区| 欧美一区二区在线免费播放| 日韩av不卡在线观看| 精品日韩av一区二区| 国产精品一区二区三区四区| 国产精品国产三级国产aⅴ无密码| 色国产精品一区在线观看| 亚洲午夜久久久久中文字幕久| 欧美肥胖老妇做爰| 久久99这里只有精品| 日韩欧美的一区二区| 91在线视频播放| 亚洲成人你懂的| 久久久精品国产免费观看同学| 本田岬高潮一区二区三区| 欧美aⅴ一区二区三区视频| 久久免费视频色| 欧美美女网站色| 国产麻豆视频一区| 午夜久久久影院| 91精品国产91久久久久久最新毛片| 国产成人高清在线| 亚洲精品中文在线| 国产视频一区二区在线观看| 色综合天天综合网天天狠天天 | 亚洲欧美日韩国产综合| 欧美日韩一区二区在线观看| 成人免费毛片a| 亚洲成年人网站在线观看| 国产精品免费久久久久| 91精品在线观看入口| 色呦呦网站一区| 九色综合狠狠综合久久| 午夜视频一区二区三区| 欧美激情在线观看视频免费| 欧美本精品男人aⅴ天堂| 色呦呦日韩精品| 91首页免费视频| 精品在线你懂的| 看片的网站亚洲| 亚洲一区在线免费观看| 亚洲视频免费看| 久久先锋影音av鲁色资源| 欧美一区二区视频观看视频| av电影在线观看不卡 | 亚洲午夜电影网| 日韩一区在线看| 久久先锋资源网| 久久众筹精品私拍模特| 欧美久久久一区| 69堂精品视频| 欧美视频一区在线| 精品视频一区 二区 三区| 99视频超级精品| 色成年激情久久综合| eeuss鲁一区二区三区| 99久久免费国产| 成人国产视频在线观看| 91视频你懂的| 成人免费高清视频在线观看| 波多野结衣的一区二区三区| 粉嫩av亚洲一区二区图片| 国产原创一区二区| 久久精品国产在热久久| 国产一区二区三区黄视频| 韩国欧美国产一区| 国产精品99久久久久| 国产精选一区二区三区| 国产成人午夜高潮毛片| 国产成人精品免费看| 99久久综合国产精品| 成人91在线观看| 精品视频在线看| 欧美日韩大陆一区二区| 精品国产乱码久久久久久闺蜜| 在线不卡中文字幕| 久久美女艺术照精彩视频福利播放| 欧美日韩在线免费视频| 欧美经典一区二区| 国产日韩欧美制服另类| 欧美高清在线一区| 亚洲欧美激情插| 亚洲在线视频网站| 久久精品国产亚洲高清剧情介绍| 黄一区二区三区| 99久久精品一区| 欧美中文字幕一二三区视频| 在线不卡免费欧美| 欧美va天堂va视频va在线| 国产精品拍天天在线| 亚洲欧美一区二区不卡| 久久精品99国产精品| 国产激情一区二区三区| 91黄色小视频| 337p亚洲精品色噜噜狠狠| 欧美激情一区在线观看| 亚洲免费看黄网站| 黄一区二区三区| 99精品久久只有精品| 精品欧美一区二区三区精品久久 | 欧美日韩精品二区第二页| 欧美成人r级一区二区三区| 欧美激情在线观看视频免费| 强制捆绑调教一区二区| 国产乱码精品一区二区三区忘忧草| 欧美性色欧美a在线播放| 精品88久久久久88久久久| 中文字幕一区三区| 日本va欧美va精品发布| 成人av资源站| 精品国产精品一区二区夜夜嗨| 中文字幕日本乱码精品影院| 国产在线一区观看| 在线免费观看日韩欧美| 欧美激情一区二区三区四区| 天天免费综合色| 色噜噜狠狠色综合中国| 久久人人爽人人爽| 三级不卡在线观看| 狠狠色综合色综合网络| 4438x成人网最大色成网站| 精品国产露脸精彩对白| 爽爽淫人综合网网站| 91免费精品国自产拍在线不卡| 精品成a人在线观看| 免播放器亚洲一区| 欧美性色综合网| 一区二区三区免费在线观看| 国产精品一区一区三区| 精品国产一区二区三区av性色| 亚洲图片有声小说| 色噜噜狠狠成人网p站| 久久久国产午夜精品| 国产真实乱对白精彩久久| 欧美xingq一区二区| 蜜臀av一区二区| 精品人伦一区二区色婷婷|