遞歸下降語法分析器實(shí)驗(yàn)報(bào)告_第1頁
遞歸下降語法分析器實(shí)驗(yàn)報(bào)告_第2頁
遞歸下降語法分析器實(shí)驗(yàn)報(bào)告_第3頁
遞歸下降語法分析器實(shí)驗(yàn)報(bào)告_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

實(shí)驗(yàn)?zāi)康氖褂眠f歸子程序法設(shè)計(jì)一個(gè)語法分析程序,理解自頂向下分析方法的原理,掌握手工編寫語法分析程序的方法。實(shí)驗(yàn)原理1.基本原理遞歸下降法是語法分析中最易懂的一種方法。它的主要原理是,對每個(gè)非終極符按其產(chǎn)生式結(jié)構(gòu)構(gòu)造相應(yīng)語法分析子程序,其中終極符產(chǎn)生匹配命令,而非終極符則產(chǎn)生過程調(diào)用命令。因?yàn)槲姆ㄟf歸相應(yīng)子程序也遞歸,所以稱這種方法為遞歸子程序下降法或遞歸下降法。其中子程序的結(jié)構(gòu)與產(chǎn)生式結(jié)構(gòu)幾乎是一致的。2.文法要求遞歸下降法要滿足的條件:假設(shè)A的全部產(chǎn)生式為Aα1|α2|……|αn,則必須滿足如下條件才能保證可以唯一的選擇合適的產(chǎn)生式predict(Aαi)∩predict(Aαj)=Φ,當(dāng)i≠j. 3.實(shí)現(xiàn)原理假設(shè)文法中有如下的產(chǎn)生式A1|2|…|n,則應(yīng)按如下方法編寫語法分析子程序procedureA()begin iftokenPredict(A1)thenθ(1)elseiftokenPredict(A2)thenθ(2)else …… iftokenPredict(An)thenθ(n)elseerror()end其中對i=X1X2…Xn,θ(i)=θ’(X1);θ’(X2);…;θ’(Xn);如果XiVN,θ’(Xi)=Xi如果XiVT,θ’(Xi)=Match(Xi)如果Xi=,θ’(λ)=skip(空語句)實(shí)驗(yàn)要求1、使用遞歸下降分析算法分析表達(dá)式文法:exp::=expaddopterm|termaddop::=+|-term::=termmulopfactor|factormulop::=*|/factor::=(exp)|number其中number可以是多位的十進(jìn)制數(shù)字串(整數(shù)即可),因此這里還需要一個(gè)小的詞法分析器來得到number的值。2、該詞法分析器以子程序形式出現(xiàn),當(dāng)需要進(jìn)行詞法分析時(shí)進(jìn)行調(diào)用;3、能夠識別正確和錯(cuò)誤的表達(dá)式;4、在進(jìn)行語法分析的過程中,計(jì)算輸入表達(dá)式的值。實(shí)驗(yàn)結(jié)果(程序)與分析用FILE創(chuàng)建一個(gè)文件(FILE*IN聲明IN指針),在文件中輸入你要分析公式。voidScanner()//掃描符號{sym=fgetc(in); if(isspace(sym)) {while(1) { if(isspace(sym)) {sym=fgetc(in);} elsebreak;} } if(isdigit(sym)) { while(1) { if(isdigit(sym)) { strToken[i]=sym; i++; sym=fgetc(in);} else{ printf("%s",strToken); i=0; Retract(strToken); fseek(in,-2,1); sym=fgetc(in); break; } } } else {if(sym=='+') printf("+");elseif(sym=='-') printf("-");elseif(sym=='*') printf("*"); elseif(sym=='/') printf("/"); elseif(sym=='^') printf("^");elseif(sym=='(')

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論