




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗二遞歸下降分析器設計與實現1、實驗目的:(1)掌握自上而下語法分析的要求與特點。(2)掌握遞歸下降語法分析的基本原理和方法。(3)掌握相應數據結構的設計方法。2、實驗內容:編程實現給定算術表達式的遞歸下降分析器。算術表達式文法如下:E->E+T|TT->T*F|FF->(E)|i3、設計說明:首先改寫文法為LL(1)文法;然后為每一個非終結符,構造相應的遞歸過程, 過程的名字表示規則左部的非終結符;過程體按規則右部符號用的順序編寫。4、設計分析這個題目屬于比較典型的遞歸下降語法分析。需要先將原算術表達式方法改寫為LL(1)文法為:E->TE'E'-&
2、gt;+TE'| £T->FT'T'->*FT'|£F->(E)|i然后再為每個非終結符設計一個對應的函數,通過各函數之間的遞歸調用從而 實現遞歸下降語法分析的功能。具體方法為:(1)當遇到終結符a時,則編寫語句If(當前讀到的輸入符號=a)讀入下一個輸入符號(2)當遇到非終結符 可寸,則編寫語句調用A() o(3)當遇到A->規則時,則編寫語句If(當前讀到的輸入符號不屬于Follow(A)error()(4)當某個非終結符的規則有多個候選式時,按 LL(1)文法的條件能唯一地選擇一 個候選式進行推導.5、程序代碼#
3、include<stdio.h>void E();void T();void E1();void T1();void F();char s100;int i, SIGN;int main()printf("請輸入一個語句,以#號結束語句(直接輸入#號推出)n");while( 1 )SIGN = 0;i=0;scanf("%s",&s);if( s0 = '#')return 0;E();if(si='#')printf(" 正確語句! n");printf("請輸入一個語
4、句,以#號結束語句n");return 1;void E()if(SIGN=0)T();E1();void E1()if(SIGN=0)if(si='+') +i;T();E1(); else if(si!='#'&&si!=')') printf("語句有誤! n");SIGN=1;void T()if(SIGN=0)F();T1();void T1()if(SIGN=0)if(si='*')+i;F();T1(); else if(si!='#'&&
5、si!=')'&&si!='+') printf("語句有誤! n");SIGN=1;void F()if(SIGN=0)if(si='(')+i;E();if(si=')')+i;else if(si= '#')printf("語句有誤! n");SIGN=1;+i;else if(si='i')+i;elseprintf(" 語句有誤! n");SIGN=1;6、測試用例(1)只含有一個字符的形式:iaAc:C ,C :
6、 Docuaents and 5£七6!1三=人占1111="&1口11桌面,實裝二二算術表達式遞歸下降分析程序謾請輸入需識別的句子:設請輸入需識別的句子:皿fail請輸入需識別的句子創fail(2)含有'+'的形式:i+ii+i+ii+*C: Doceiits and SettAda i. mi str at or 桌面,賣監二;算術表達式遞歸下降分析程序謾一請輸入需識別的句子:"訓jj Lie cess請輸入需識別的句子:""i*success含有'*'的形式:*s *C : YDocuBents a
7、nd SettingsAAdBiiii虧tra>td:r'桌面,實裝二:茸術表達式遞歸下降分析程序設.I請輸入需識別的句子=i*iJ5 no cess同輸入需識別的句子success Ini x: V,Docwients and 5et"!1蕓5111>1*111三七工0±<111桌面上賣姜二:算術表達式遞歸下降分析程/設.I請輸入需識別的句子eeppor*|Pfe導w any key 七口 continue Ini xs *C : V,DocuBents and SettingsAAdBiiii虧tra>t0:rt桌面,實裝二:算術表達式遞
8、歸下降分析程序謾.I請輸入需識別的句子ei'i'or?|Pfe£g any key 七口 continue含有(,)的形式:(i )()c: ,C: VDocnaeikts and Se t tings'Adaini str sit 口工桌面,賣裝二-算術表達式遞歸下降分析程存設一請輸入需識別的句子CFPOP?Pi*E3臺 any key 七口 continue,:=:,. rC : VDocuents and Set tin的,Adaiiii str&AioiA桌面、實會二:算術表達式遞歸下降分析程序設.I請輸入需識別的句子;fail(5)綜合形式:
9、(i+i ) *i (i+i)*(i+i) i+i*i i+i* (*i+ (i+ liic:C : DocoBents and互tr.toiA桌面,賣裝二二算術表達式遞歸下降分析程一謾-請輸入 需骸別 的句子CFPOP?|Pres:s any key to continuec1'. ,C ADocuaents ajid 3/ttinf;式AAini三tratuir、桌面1實裝二二篁術表達式遞歸下降分祈程,設.i瞌I人需幟刖的句子:仃+Ujnlis any key t。cointinue7、系統實施系統實施環境為VC+6.0,在系統的實施過程中存在的問題主要是程序輸入錯 誤,沒有大的技
10、術問題,經過調試和修改,系統最終能夠運行并實現上述所有功 能。以下列出程序運行時的幾個界面:(1)系統運行初始界面:(2)導入文法選擇要導入的文本遞歸下降分析器非終結符號集合1w刪除終結符號集合 添加文法開始符號刪除si產生式集合添加刪除導人文法薪凝面清除文法(G)保存文法關閉S->MH S->a H->LSo H-> ”>皿 K->8(3)生成非終結符集合,終結符集合,空用的非終結符集合,非終結符號的FIRST集合,非終結符號的FOLLO侔合,各產生式的SELECT1合,預測分析表:GS:S->MHH->LSoK->dILK->
11、169;L'>eHfM->KM->bLM可以推出空串的非線結符集合為; 與凡K, M 非終結符號的FI RST集合:FIRST =吼 a, d,b, e )FIRST(H) = ®, e FIRST(K)二 & 四)FIRST(L) = e 分析句子|保帝吉果| 關閉 |1回lJULLp。1. ur Z JHL11Z -SELECT(S->a)二"I j U, l_r, D, TT, a SELECT(H->LSo)= e SELECT(H->«)二虬視t 0 )SELECT(K->dML)= d SELECT(K->)=場內祗 SELECT(L->eHf)= e SELECT »->K)二 d,電3 1 #, )SELECT(M=>bLM)二 b 輸入的文法是一個LL(l)文法” 下面是生成的預測分析表;abefd#SaMHMH一MHMHMHHLSo®K電電dML8LeHfMbLMKKKK分析句子(A)保存結果(D美閉8、實驗總結通過本次試驗實踐掌握了自上而下語法分析法的特點。掌握了遞 歸下降語法分析的基本原理和方法。運用遞歸下降分析法完成了本試 驗的語法分析構造,并且成功的分析出每種正確的句子和錯誤的句 子。函數的構造是根據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025商場攤位租賃合同范本
- 2025健身房合作合同范本模板
- 2025合同績效評估與獎懲機制
- 2025標準版合同租賃協議
- 2025桐鄉市茶葉收購合同范本
- 2025勞動合同法律法規要點梳理
- 2024年環磷酰胺原料藥項目資金申請報告代可行性研究報告
- 2025年中國合同法范本
- 2025年中國農業銀行教育貸款合同范本
- 2025多方協作合同協議范本
- 福建省龍巖市一級校2024-2025學年高二下學期4月期中聯考 數學試題(含答案)
- 2025年街道全面加強鄉村治理工作實施方案
- 湖北省武漢市2025屆高中畢業生四月調研考試英語試題(無答案)
- 護理不良事件報告及管理制度
- 小米供應鏈管理案例分析
- 黃岡市2025年春季九年級調研考試道德與法治試卷
- 2025至2030年中國集成電路(IC)制造產業全景調查及投資咨詢報告
- 2025“十五五”金融規劃研究白皮書
- 9.2法律保障生活(教案) -2024-2025學年統編版道德與法治七年級下冊
- 慢性阻塞性肺疾病(COPD)課件
- DB12 596.1-2015 道路交通智能管理系統設施設置規范 第1部分:設施設置要求
評論
0/150
提交評論