預(yù)測(cè)分析算法的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
預(yù)測(cè)分析算法的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、預(yù)測(cè)分析算法的設(shè)計(jì)與實(shí)現(xiàn)程序代碼:IlliIlli855202050/*產(chǎn)生式右部結(jié)構(gòu)*/J*J;J;/*右部長(zhǎng)度*/*;/*右部結(jié)點(diǎn)頭指針*/;+1;/*非終結(jié)符集*/J+1;/*終結(jié)符集*/JP;/*要分析的符號(hào)串*/()*輸出分析表*/(*);();();();(r);()J();();();();();();("所得集為:");();("所得集為:");();();();='y'('y')(y/n):");("n是否繼續(xù)進(jìn)行句型分析?=();('y''n')(&q

2、uot;n(y/n)?");=();('y')i;();("請(qǐng)輸入符號(hào)串(以#結(jié)束):");=();i=0;('#'i<)i=;();("輸入出錯(cuò)!n");();()J=0;=0;=0;(i=0;i<=;)i='0'(i=0;i<=;)i='0'(i=0;i<)Pi=;Pi=;Pi=0;=0;(i=0;i<=;)()n;n=0;/*?*/(n'0'n)('0'n)100+n;n=0;/*?*/(n'0'n

3、)('0'n)n;-1;/*輸出或的內(nèi)容*/(*)k=0;('0'k)("",);("n");/*輸入非終結(jié)符*/()='0'n=0;('#')(n<)('''n'-1()=;=();n='#'/*以"#"標(biāo)志結(jié)束用于判斷長(zhǎng)度是否合法*/k=n;('#')('#'(=()('#'(=()J("n符號(hào)數(shù)目超過限制!n");=1;J("輸入正確確

4、認(rèn)?():");("",);('n')("錄入錯(cuò)誤重新輸入!n");=1;=0;/*輸入終結(jié)符*/()=1;()("n請(qǐng)輸入所有的終結(jié)符,注意:");("以#號(hào)結(jié)束:n");=I一Jn=0;/*初始化數(shù)組*/(n<)='0'n=0;('#')(n<)('''n'-1()=;=();n='#'k=n;('#')('#'(=()('#'(=()J(&quo

5、t;n符號(hào)數(shù)目超過限制!n");=1;k='0'();=I('y''n')('n')("輸入正確確認(rèn)?():");("",);('n')("錄入錯(cuò)誤重新輸入!n");=1;=0;/*產(chǎn)生式輸入*/()i=0,;("請(qǐng)輸入文法產(chǎn)生式的個(gè)數(shù):");("",);一J();/*消除回車符*/",);("n請(qǐng)輸入文法的個(gè)產(chǎn)生式,并以回車分隔每個(gè)產(chǎn)生式:("n");(i<)

6、("第個(gè):",i);/*初始化*/(n=0;n<)n='0'/*輸入產(chǎn)生式串*/n=0;('n'(=()n<)('')=;n='0'()*JJPi=(0);=(*)();>=(3);>=;Pi=;n=4;('0'n)=(*)();>=(n);>=;>=;Pi=n-3;Jn");("輸入符號(hào)含非法在成分,請(qǐng)重新輸入!/*判斷產(chǎn)生式正確性*/(*)n;(100>(0)('-'1)('>'2)J(

7、n=3;'0'n;n)(-1(n)JJ(U)J(i=0;i<)(PiU)*J=Pi;j=0;(j<Pi)(100>>)(U,>);J(>-100)(>);(U,>);(>)=>J(j>=Pi)/*當(dāng)產(chǎn)生式右部都能推出空時(shí)*/(U,-1);/*加入集*/(U,)*JJ;/*用于處理*/一J一J(<100)=U-100;()(>)一J=>()=(*)();>=;(U-100)U-100=;>=;/*指向集的最后一個(gè)元素*/=>=-100;()=>(-1)(U,);=>(

8、)(<100)=-100;()(-1>)=>(V)i;*J(100V)/*當(dāng)為初始符時(shí)*/(V,-1,0);(i=0;i<)=Pi;(>V)=>()=>()(Pi-100PiV)(Pi);(V,Pi,0);(>)(V,>,1);=>()(Pi-100PiV)(Pi);(V,Pi,0);(V,>,1);(V,)(<100)/*為終結(jié)符時(shí)*/=V-100;()(>)一J=>()=(*)();>=;>=;(V-100)V-100=;>=;/*指向集的最后一個(gè)元素*/=>(0)=-100;()=

9、>(V,0);=>=-100;()=>(-1)(V,1);=>/*輸出或集*/(*)i;*Ji=0;(i)=i;(":t",i);()(-1>)("",>);("#");=>("n");/*計(jì)算和*/()i;i=0;('0'i)(i)(100+i);Ji=0;('0'i)(100+i);/*構(gòu)造預(yù)測(cè)分析表*/()i;*J*J(i=0;i<)=Pi;(>)=>-100;()(-1>)Pi-100>=i;=>=

10、>()=Pi-100;()(-1>)Pi-100>=i;Pi-100=i;=>(100<=>)/*不含空的非終結(jié)符*/=>-100;()Pi-100>=i;=>/*終結(jié)符或者空*/(-1>)=Pi-100;()(-1>)Pi-100>=i;/*當(dāng)含有#號(hào)時(shí)*/Pi-100=i;=>/*為終結(jié)符*/Pi-100>=i;/*輸出分析表*/()("構(gòu)造預(yù)測(cè)分析表如下:n");("t");(i=0;i<)("t",i);("#tn")

11、;("-t");(i=0;i<=;)("-t");("n");(i=0;i<)("t",i);(j=0;j<=;)(-1ij)("R()t",ij);("t");("n");(*);/*r表使用的產(chǎn)生式的序號(hào)*/的分析過程:n",);("步驟t分析符號(hào)棧t當(dāng)前指示字符t使用產(chǎn)生式序號(hào)n");=0;=0;("t");();("tt-n",);('#')(1

12、00>)()();("t",);();("ttt出棧、后移n",);("不匹配!",);("此串不是此文法的句子!n");J/*當(dāng)為非終結(jié)符時(shí)*/r=-100();(-1r)(r);J("t",);();("ttn",r);("此串不是此文法的句子!n");('#')(0'#')("t",);();("ttt分析成功!n",);("是給定文法的句子!n",);

13、(>0)(100>)("此串不是此文法的句子!n");Jr=-100;(-1r)(r);/*產(chǎn)生式右部代替左部,指示器不移動(dòng)*/J("t",);();();(0'#')("ttt分析成功!n",);("是給定文法的句子!n",);("ttn",r);("此串不是此文法的句子!n");/*初始化棧及符號(hào)串*/()i;/*分析棧的初始化*/(i=0;i<)i='0'0=-1;/*#(-1)入棧*/1=100;/*初始符入棧*/=1

14、;/*顯示符號(hào)棧中內(nèi)容*/()i;(i=0;i<=;)(100<=i)("",i-100);(-1i)("",i);("#");/*棧頂出棧*/()(r)i;();=Pr;(-1>)JPr;(i=0;i<Pr;)逆序入棧*/-i=>*=>運(yùn)行結(jié)果演示E:zzu編譯原浬侏澤2驗(yàn)肓導(dǎo)實(shí)驗(yàn)2閔僉2.exe請(qǐng)輸入所有的非終結(jié)符,注意:請(qǐng)將開始符放在第一位,并以井號(hào)結(jié)束:shABttSB輸入正確確認(rèn)?>:y請(qǐng)輸入所有的終結(jié)符,注意:以#號(hào)結(jié)束:ab倏法b正入入輸a.$冃-012心T17一Tl7一Tl7.穿穿算ttSABSABttattttS!R<0>errorerrorerrorerrorArR<1>errorerrorerrorerrorBR<2>errorerrorerrorerror杲否繼續(xù)進(jìn)行句型分析?<9/n>:<y/n>?y請(qǐng)輸入符號(hào)串以#結(jié)束:abtt半:歹摞刀祈伺'伐當(dāng)前指示字符0#Sa1#BAa2#Bb+aa3#Bb+bE:zzu編譯原

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論