語法分析思路_第1頁
語法分析思路_第2頁
語法分析思路_第3頁
語法分析思路_第4頁
語法分析思路_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、語法分析C2.1 實(shí)驗(yàn)?zāi)康木幹埔粋€遞歸下降分析程序,實(shí)現(xiàn)對詞法分析程序所提供的單詞序列的語法檢查和結(jié)構(gòu)分析.C2.2 實(shí)驗(yàn)要求利用C語言編制遞歸下降分析程序,并對簡單語言進(jìn)行語法分析.C2.2.1待分析的簡單語言的語法用擴(kuò)充的BNF表示如下:(1)<程序>:begin<語句串>end(2)<語句串>:<語句><語句>(3)<語句>:<賦值語句>(4)<賦值語句>:ID:<表達(dá)式>(5)<表達(dá)式>:<項(xiàng)><項(xiàng)> | 項(xiàng)>(6)<項(xiàng)>:&

2、lt;因子>*<因子> | /<因子>(7)<因子>:ID | NUM | (<表達(dá)式>)。實(shí)驗(yàn)要求說明輸入單詞串,以“”結(jié)束,如果是文法正確的句子,則輸出成功信息,打印“success”,否則輸出“error”. 例如:圖c.3語法分析主程序示意圖 輸入begin a:=9;x:=2*3;b:=a+x end # 輸出success 輸入x:=a+b*c end # 輸出 errorC2.3語法分析程序的算法思想() 主程序示意圖如圖。所示。() 遞歸下降分析程序示意圖如圖。所示。() 語句串分析過程示意圖如圖。所示。() stateme

3、nt語句分析函數(shù)流程如圖.6. C.7. C.8 C.9所示。圖c.4遞歸下降分析程序示意圖圖c.5語句串分析示意圖否是否是調(diào)用scaner是否:=?調(diào)用scaner是否標(biāo)識?出錯處理調(diào)用expression函數(shù)圖c.6statement語句分析函數(shù)示意圖否出錯處理調(diào)用term函數(shù)調(diào)用scaner是否+,-?調(diào)用term函數(shù)是 圖c.7 expression表達(dá)式分析函數(shù)示意圖否是調(diào)用factor函數(shù)調(diào)用scaner是否*,/?調(diào)用factor函數(shù)出錯處理圖c.8term分析函數(shù)示意圖圖c.9factor分析過程示意圖.4語法分析程序的語言程序框架lrparser() if(syn=1) 讀下

4、一個單詞符號;調(diào)用yucu函數(shù);if(syn=6) 讀下一個單詞符號;if(syn=0 &&(kk=0) 輸出(“success”); else if(kk!=1) 輸出缺 endl 錯誤;kk=1;else 輸出 begin錯誤;kk=1; return;yucu()調(diào)用statement(); while(syn=26) 讀下一個單詞符號; 調(diào)用statement函數(shù); return;statement() if(syn=10) 讀下一個單詞符號;if(syn=18) 讀下一個單詞符號;調(diào)用expression函數(shù);else 輸出賦值號錯誤;kk=1; else輸出語句錯誤;kk=1return;expression() 調(diào)用term函數(shù);while(syn=13 or 14) 讀下一個單詞符號;調(diào)用term函數(shù);return;term() 調(diào)用factor函數(shù);while(syn=15 or 16) 讀下一個單詞符號;調(diào)用factor函數(shù);return;factor() if(syn=10 or 11)讀下一個單詞符號;else if (syn=27) 讀下一個單詞符號;調(diào)用ex

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論