freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編譯原理實(shí)驗(yàn)報(bào)告-資料下載頁

2025-03-23 12:06本頁面
  

【正文】 sizeof(r))。 j=1。 b=1。 k=0。 r[0]=nT[i].firsts[0]。 while(nT[i].firsts[j]!=39。\039。) { if(r[k]!=nT[i].firsts[j]) { k++。 r[k]=nT[i].firsts[j]。 b++。 } j++。 } for(a=0。ab。a++) { nT[i].firsts[a]=r[a]。 } nT[i].firsts[a]=39。\039。} for(i=0。isum。i++) { j=0。 printf(非終結(jié)符%c的first集為:,nT[i].nonTerminal)。 while(nT[i].first[j]!=39。\039。) { printf(%c ,nT[i].first[j])。 j++。 } printf(\n)。 } printf(\n)。 for(i=0。inum。i++) { j=0。 printf(字符串%s的first集為:,nT[i].str)。 while(nT[i].firsts[j]!=39。\039。) { printf(%c ,nT[i].firsts[j])。 j++。 } printf(\n)。 } printf(\n)。 return 1。}void initFollow(nonTer nT[20]) //初始化follow集合{ int i,j。 for(i=0。isum。i++) { for(j=0。j10。j++) { nT[i].follow[j]=39。\039。 nT[i].formFollow[j]=39。\039。 } nT[i].fol=0。 }}int main(){ Production p,p1。 int flag=0,i。 nonTer nT[20]。 memset(nT,39。\039。,sizeof(nT))。 p=input()。 p1=copyProduction(p)。 flag=isJudLegal(p)。 if(flag!=1) { printf(輸入有誤\n)。 return 0。 } if(leftRecursive(p,nT)) //判斷是否含有左遞歸 { printf(文法有誤!!!\n)。 return 0。 } initStrings(p,nT)。 //存放各個(gè)產(chǎn)生式右邊的部分 isInferNull(p,nT)。 printf(\n)。 if(judgeGrammar(p,nT)) { printf(輸入的產(chǎn)生式存在其它形式的遞歸!?。。。?!\n)。 return 0。 } First(p1,nT)。 initFollow(nT)。//初始化follow集合 calFollow(p,nT)。//計(jì)算follow集合 showFollow(nT)。 //輸出follow集合 initSellect(nT)。//初始化sellect集合 sellect(p,nT)。 if(judgeLL1(p,nT)) { printf(\n)。 printf(輸入的文法是LL(1)文法\n)。 } getchar()。 return 0。 }實(shí)驗(yàn)截圖:其中空用*代替,以結(jié)束文法的輸入。四、 實(shí)驗(yàn)總結(jié)通過實(shí)驗(yàn)我更加深入的了解了FIRST集和FOLLOW集的應(yīng)用,解開了書上知識(shí)的一些困惑,同時(shí)也明白了書上講的和實(shí)際動(dòng)手的差別。只有親自動(dòng)手才能明白真正的原理,才能夠更加深入的了解所學(xué)知識(shí)。12
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1