版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 編譯原理 實驗名稱 實驗二 LL(1) 分析法實驗?zāi)康? 掌握 LL(1) 分析法的基本原理;2 掌握 LL(1) 分析表的構(gòu)造方法;3 掌握 LL(1) 驅(qū)動程序的構(gòu)造方法。一. 實驗內(nèi)容及要求根據(jù)某一文法編制調(diào)試 LL( 1)分析程序,以便對任意輸入的符號串進(jìn)行分析。本次實 驗的目的主要是加深對預(yù)測分析LL( 1)分析法的理解。對下列文法,用 LL( 1)分析法對任意輸入的符號串進(jìn)行分析:( 1) E-TG( 2) G-+TG( 3) G- (4)T-FS( 5) S-*FS( 6)S- (7)F-(E)(8)F-i 程序輸入一以 #結(jié)束的符號串 (包括+* () i#) ,如:
2、i+i*i# 。輸出過程如下: 步驟 分析棧 剩余輸入串 所用產(chǎn)生式1 E i+i*i# E-TG. 實驗過程及結(jié)果代碼如下:#include#include using namespace std;edge:edge()cinleftright; rlen=();if(left)()NODE+=left;string edge:getlf()return left;string edge:getrg()return right;string edge:getfirst()return first;string edge:getfollow()return follow;string edge
3、:getselect()return select;string edge:getro()string str;str+=right0;return str;int edge:getrlen()return ();void edge:newfirst(string w)int i;for(i=0;i() first+=wi;void edge:newfollow(string w)int i;for(i=0;i()&wi!=) follow+=wi;void edge:newselect(string w)int i;for(i=0;i()&wi!=) select+=wi;void edge
4、:delfirst()int i=();(i,1);int SUM;string NODE,ENODE;etlf()if(nj.getro()() for(i=0;iSUM;i+) if(ni.getlf()=nj.getro() first(ni,n,x);else nx.newfirst(nj.getro();etlf().find()i)=0)if()i+1)()for(k=0;kSUM;k+) if(nk.getlf().find()i+1)=0) nj.newfollow(nk.getfirst();etlf()0)etlf()0)if(nk.getfirst().find()nj.
5、getfirst().length()return;x=nj.getselect().find(ENODEk); if(x-1) coutnj.getrg(); ycik=nj.getrg(); outfu(9-nj.getrlen(), ); flag=0;x=nj.getselect().find(#);if(k=()-1&x-1) coutnj.getrg(); ycij=nj.getrg();if(flag&ENODEk!=)outfu(11, );coutendl;ength()coutNODEi-1;k-) if(ycijk!=) fenxi+=ycijk;if(pipei(chu
6、an,fenxi,yc,b) return 1;elsereturn 0;elsereturn 0;void main()edge *n;string str,(*yc)50;int i,j,k;bool flag=0;cout 請輸入上下文無關(guān)文法的總規(guī)則數(shù): SUM;cout 請輸入具體規(guī)則(格式:左部右部, 為空): endl;n=new edgeSUM;for(i=0;iSUM;i+) for(j=0;j()&(strj)() ENODE+=strj; etfirst().find()ni.getfirst().length()if(ni.getro()()for(k=1;kni.ge
7、trlen();k+)if(ni.getrg()k)() for(j=0;jnj.getfirst().length() ni.delfirst(); break;etlf()=n0.getlf() ni.newfollow(#); follow(ni,n,i);for(i=0;iSUM;i+) for(j=0;jSUM;j+) if(nj.getrg().find(ni.getlf()=nj.getrlen()-1) ni.newfollow(nj.getfollow();etlf()0=NODEi)if(!() str=nj.getselect(); else for(k=0;knj.ge
8、tselect().length();k+) if(nj.getselect()k)()flag=1;break;etlf()0)outfu(3, ); coutNODEi; outfu(SUM+4, ); out(nj.getfirst();outfu(SUM+4-2*nj.getfirst().length(), ); out(nj.getfollow();coutendl;break; outfu(5+SUM,-*-); coutendl 判定結(jié)論: ;if(flag)cout 該文法不是 LL(1) 文法 !endl; return;elsecout 該文法是 LL(1) 文法 !en
9、dl;/ 輸出預(yù)測分析表 coutendl 預(yù)測分析表如下: endl; yc=new string()50;outgraph(n,yc);string chuan,fenxi,fchuan; coutendlchuan; fchuan=chuan;fenxi=#; fenxi+=NODE0;i=0;coutendl 預(yù)測分析過程如下: endl; cout 步驟 ;outfu(7, );cout 分析棧 ;outfu(10, );cout 剩余輸入串 ;outfu(8, );cout 推導(dǎo)所用產(chǎn)生式或匹配 ; if(pipei(chuan,fenxi,yc,i)coutendl 輸入串 fchuan 是該
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度米面產(chǎn)品食品安全風(fēng)險評估與控制合同3篇
- 二零二五年度升級版民間汽車質(zhì)押貸款服務(wù)合同范本4篇
- 二零二五年度新能源產(chǎn)業(yè)供應(yīng)鏈融資保理合同4篇
- 新型建筑材料研發(fā)與應(yīng)用-洞察分析
- 2025年人教A版九年級物理上冊階段測試試卷含答案
- 二零二五年度礦山開采承包合同合同解除條件4篇
- 2025年度智慧小區(qū)門牌制作與維護(hù)服務(wù)合同4篇
- 體育館物業(yè)2025年度承包服務(wù)合同8篇
- 2025年教科新版七年級物理上冊階段測試試卷
- 二零二五年度環(huán)保型廠房工程承包與監(jiān)理合同2篇
- 2024-2030年中國電子郵箱行業(yè)市場運營模式及投資前景預(yù)測報告
- 基礎(chǔ)設(shè)施零星維修 投標(biāo)方案(技術(shù)方案)
- 人力資源 -人效評估指導(dǎo)手冊
- 大疆80分鐘在線測評題
- 2024屆廣東省廣州市高三上學(xué)期調(diào)研測試英語試題及答案
- 中煤平朔集團(tuán)有限公司招聘筆試題庫2024
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 不付租金解除合同通知書
- 區(qū)域合作伙伴合作協(xié)議書范本
- 中學(xué)數(shù)學(xué)教學(xué)設(shè)計全套教學(xué)課件
- 環(huán)衛(wèi)公司年終工作總結(jié)
評論
0/150
提交評論