版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、編譯原理實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)二 語法分析 班 級(jí): 13級(jí)軟件5班 學(xué) 號(hào): 姓 名: 任課教師: 邢 計(jì)算機(jī)科學(xué)與工程系2016年 6 月 14 日 實(shí)驗(yàn)?zāi)康木幹埔粋€(gè)遞歸下降分析程序,實(shí)現(xiàn)對(duì)詞法分析程序所提供的單詞序列的語法檢查和結(jié)構(gòu)分析。實(shí)驗(yàn)要求1待分析的簡單語言的語法用擴(kuò)充的BNF表示如下: (1):beginend (2):;(3)(語句):賦值語句)(4)賦值語句):ID:(5):+|-(6)(項(xiàng)):因子)*|/(7)因子):ID|NUM|()2實(shí)驗(yàn)要求說明 輸入單詞串,以“#”結(jié)束,如果是文法正確的句子,則輸出成功信息,打印“success”,否則輸出“error”。例如: 輸入 beg
2、in a:9;x:2*3;b:a+x end# 輸出 success 輸入 x:a+b*c end# 輸出 error實(shí)驗(yàn)內(nèi)容利用C語言編制遞歸下降分析程序,并對(duì)簡單語言進(jìn)行語法分析。算法設(shè)計(jì)和源程序 圖1 遞歸下降分析程序示意圖 圖1 遞歸下降分析程序示意圖 圖2 語句串分析示意圖 圖3 statement語句分析函數(shù)示意圖 圖4 expression表達(dá)式分析函數(shù)示意圖圖4 expression表達(dá)式分析函數(shù)示意圖 圖5 term分析函數(shù)示意圖 圖6 factor分析過程示意圖#include #include #include char prog100, ch, token8;int p
3、 = 0, syn, n, i;char* keyword6 = begin, then, if, while, do, end ;void scaner();void Irparse();void statement();void expression_r();void term();void factor();void main() int select = -1; p = 0; printf(please input sentence, end of # !n); do ch = getchar(); progp+ = ch; while (ch != #); p = 0; printf
4、(請(qǐng)輸入1 或 2 n 1.詞法分析n 2.語法分析n); scanf(%d, &select); if (select = 1) do scaner(); switch (syn) case -1: printf(詞法分析 出錯(cuò)n); break; default: printf(n, syn, token); break; while (syn != 0); printf(詞法分析 成功n); else if (select = 2) scaner(); if (syn = 1) Irparse(); /begin else printf(語法分析出錯(cuò)! 請(qǐng)檢查begin關(guān)鍵字n); re
5、turn; if (syn = 6)/end scaner(); if (syn = 0) printf(恭喜 語法分析 成功n); else printf(語法分析出錯(cuò)! 請(qǐng)檢查是否缺少#n); else printf(語法分析出錯(cuò)! 請(qǐng)檢查是否缺少endn); getchar();void scaner() for (n = 0; n = a & ch = A & ch = a & ch = a & ch = 0 & ch = 9); syn = 10; for (n = 0; n = 0 & ch = 0 & ch = 9); syn = 11; return; else /ch=pro
6、gp+; switch (ch) case +: syn = 13; token0 = ch; break; case -: syn = 14; token0 = ch; break; case *: syn = 15; token0 = ch; break; case /: syn = 16; token0 = ch; break; case : syn = 17; token0 = ch; ch = progp+; if (ch = =) token1 = ch; syn+; else p-; break; case ) token1 = ch; syn+; else if (ch = =
7、) token1 = ch; syn = syn + 2; else p-; break; case : syn = 23; token0 = ch; ch = progp+; if (ch = =) token1 = ch; syn+; else p-; break; case =: syn = 25; token0 = ch; break; case ;: syn = 26; token0 = ch; break; case (: syn = 27; token0 = ch; break; case ): syn = 28; token0 = ch; break; case #: syn
8、= 0; token0 = ch; break; default: printf(詞法分析出錯(cuò)! 請(qǐng)檢查是否輸入非法字符n); syn = -1; break; /return; void Irparse() scaner(); statement(); while (syn = 26)/; scaner(); statement(); void statement() if (syn = 10) scaner(); if (syn = 18) scaner(); expression_r(); else printf(語法分析出錯(cuò)! 請(qǐng)檢查表達(dá)式是否正確n); return; else pr
9、intf(語法分析出錯(cuò)! 請(qǐng)檢查語句是否正確n); return; void expression_r() term(); while (syn = 13 | syn = 14)/+ - scaner(); term(); void term() factor(); while (syn = 15 | syn = 16)/* / scaner(); factor(); void factor() if (syn = 10 | syn = 11) scaner(); else if (syn = 27) scaner(); expression_r(); if (syn = 28) scaner(); else printf(語法分析出錯(cuò)! 請(qǐng)檢查是否缺少)n); return; else printf(語法分析出錯(cuò)! 請(qǐng)檢查是否輸入非法字符n); return; 實(shí)驗(yàn)結(jié)果分析正確實(shí)驗(yàn)結(jié)果1:Begin a:=9 ; x
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽省工程咨詢研究院招聘勞務(wù)派遣人員備考題庫及答案詳解一套
- 2025年興業(yè)銀行廈門分行社會(huì)招聘備考題庫及一套答案詳解
- 2025年海南省檢驗(yàn)檢測(cè)研究院考核招聘事業(yè)編制專業(yè)技術(shù)人員備考題庫及參考答案詳解1套
- 2025年醫(yī)學(xué)法律倫理知識(shí)理論考核及答案解析
- 2025云南玉溪市紅塔區(qū)應(yīng)急管理局招聘綜合應(yīng)急救援隊(duì)人員11人考試重點(diǎn)題庫及答案解析
- 2026年泉州市直部分公辦學(xué)校赴華東師范大學(xué)招聘編制內(nèi)新任教師調(diào)整招聘計(jì)劃考試核心題庫及答案解析
- 黑龍江大學(xué)《中國近現(xiàn)代史綱要實(shí)務(wù)》2024-2025學(xué)年期末試卷(A卷)
- 公務(wù)員考試真題庫《行測(cè)》及答案(奪冠系列)
- 昆明市精神衛(wèi)生防治醫(yī)院招聘編外工作人員備考題庫附答案
- 2026廣西中煙工業(yè)有限責(zé)任公司招聘51人備考題庫附答案
- 沃柑銷售合同范本
- PS板繪課件教學(xué)課件
- 2025年居家養(yǎng)老助餐合同協(xié)議
- 公安車輛盤查課件
- 生產(chǎn)性采購管理制度(3篇)
- 協(xié)議書代還款協(xié)議書
- 數(shù)學(xué)人教版五年級(jí)上冊(cè)課件練習(xí)二十四
- 高考語文復(fù)習(xí)二元思辨作文結(jié)構(gòu)模式+課件42張
- GB/T 33248-2016印刷技術(shù)膠印橡皮布
- GB/T 18487.1-2015電動(dòng)汽車傳導(dǎo)充電系統(tǒng)第1部分:通用要求
- 高三期末考試心態(tài)調(diào)整和考試技巧指導(dǎo)課件
評(píng)論
0/150
提交評(píng)論