版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大學(xué)信息工程學(xué)院計算機科學(xué)與技術(shù)系上機實驗報告課程名稱:編譯原理實驗實驗日期:2016年7月5日姓名: 班級:13計科學(xué)號:指導(dǎo)教師: 實驗成績:一、 實驗名稱LL1文法的實現(xiàn)二、 實驗功能實現(xiàn)文法EE+T|E-T|TTT*F|T/F|FF(E)Fid消除左遞歸ETD First(ETD) = First(T) = Fitst(F) = (,idD+TD First(D+TD) = +D-TD First(D-TD) = -D Follow(D) = ),#TFB First(TFB) = First(F) = (,idB*FB First(B*FB) = *B/FB First(B/FB)
2、= /B Follow(B) = +,-,),#F(E) First(F(E) = (Fid First(Fid) = idFollow(E) = ),#Follow(D) = Follow(E) = ),#Follow(T) = (First(D) ) Follow(D) = +,-,),#Follow(B) = Follow(T) = +,-,),#Follow(F) = (First(B) ) Follow(T) = *,/,+,-,),#預(yù)測分析表id+-*/()#EETDETD-DD+TDD-TDDDTTFB-TFB-BBBB*FBB/FBBBFFid-F(E)-三、 實驗環(huán)境Cod
3、e:Blocks四、 源代碼#include #include #include #define LINE 5#define ROW 8char AnalStack20; /分析棧char SpareStack20; /剩余棧char TerSymbol20 = i, +, -, *, /, (, ), # ;/終結(jié)符char NTerSymbol20 = E,D,T,B,F; /非終結(jié)符int j = 0, b = 0,l = 0 ,top = 0;typedef struct LLType char nonchar; /非終結(jié)符 char production5; /產(chǎn)生式int leng
4、th; /產(chǎn)生式長度LL1Type;LL1Type e, d, d1, d2, t, c, c1, c2, f, f1;LL1Type PreTableLINEROW;void print()int a;for (a = 0; a = top + 1; +a)printf(%c, AnalStacka);printf(tt);void print1()int j;for(j = 0; j b; +j)printf( );for (j = b; j l; +j)printf(%c, SpareStackj);printf(ttt);int main()int m, n, k = 1, flag
5、= 0, finish = 0;char ch, x;LL1Type str;e.nonchar = E;strcpy(duction, TD); /ETDe.length = 2;d.nonchar = D;strcpy(duction, +TD);/D+TDd.length = 3;d1.nonchar = D;strcpy(duction, -TD);/D-TDd1.length = 3;d2.nonchar = D;strcpy(duction, .); /Dd2.length = 1;t.nonchar = T;strcpy(du
6、ction, FB);/TFBt.length = 2;c.nonchar = B;strcpy(duction, *FB);/B*FBc.length = 3;c1.nonchar = B;strcpy(duction, /FB);/B/FBc1.length = 3; c2.nonchar = B;strcpy(duction, .);/Bc2.length = 1;f.nonchar = F;strcpy(duction, (E);/F(E)f.length = 3;f1.nonchar = F;strcpy(duction, i)
7、;/Fidf1.length = 1;for (m = 0; m LINE; m+)/初始化預(yù)測分析表for (n = 0; n ROW; n+)PreTablemn.nonchar = N; /填充預(yù)測分析表PreTable00 = e; PreTable05 = e;PreTable11 = d;PreTable12 = d1;PreTable16 = d2; PreTable17 = d2;PreTable20 = t; PreTable25 = t;PreTable31 = c2; PreTable32 = c2;PreTable33 = c;PreTable34 = c1;PreTa
8、ble36 = c2; PreTable37 = c2;PreTable40 = f1;PreTable45 = f;printf(Please Enter A String to analyze:);do /讀入分析串,放入剩余棧中scanf(%c, &ch);if (ch!=i & ch!=+ & ch!=- & ch!=* & ch!=/ & ch!=( & ch!=) & ch!=#)printf(Input characters are illegal!n);exit(1);SpareStackj = ch;j+; while (ch!=#);l = j;/分析串長度ch = Spa
9、reStack0;/當前分析字符AnalStacktop= #;AnalStack+top = E;/#,E進棧printf(nSteptAnalysis stacktRemaining stringtProductionn);dox = AnalStacktop-; /為當前棧頂字符printf(%dt, k+);for (j = 0; j ROW; j+) /判斷是否為終結(jié)符if (x = TerSymbolj)flag = 1;break;if (flag = 1) /如果是終結(jié)符if (x = #)print();print1();finish = 1; /結(jié)束標記printf(Acc
10、ept!n);getchar();exit(1);if (x = ch)print();print1();printf(%c matchingn, ch);ch = SpareStack+b; /下一個輸入字符flag = 0; /恢復(fù)標記else/出錯處理print();print1();printf(%c Error!n, ch);/輸出出錯終結(jié)符exit(1);else/非終結(jié)符處理for (j = 0; j LINE; j+)if (x = NTerSymbolj)m = j;break;for (j = 0; j , str.nonchar);/輸出產(chǎn)生式左邊字符for (j = 0; j = 0; j-)/產(chǎn)生式逆序入棧AnalStack+top =
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多組學(xué)技術(shù)助力銀屑病精準分型
- 2025年大學(xué)大四(材料化學(xué))納米材料科學(xué)綜合測試試題及答案
- 2025年高職新能源汽車(智能駕駛實操)試題及答案
- 2025年高職(房地產(chǎn)經(jīng)營與管理)房地產(chǎn)估價實務(wù)測試題及答案
- 2026年智能馬桶水溫控制器項目評估報告
- 2025年高職(大數(shù)據(jù)技術(shù))數(shù)據(jù)可視化技術(shù)試題及答案
- 2026年智能洗衣機(節(jié)能)項目評估報告
- 2026年自動駕駛數(shù)據(jù)隱私項目可行性研究報告
- 2025年中職汽車機械安裝(汽車機械安裝)試題及答案
- 2025年大學(xué)大二(食品保鮮技術(shù))保鮮方法期末測試試題及答案
- 市政工程施工組織資源配備計劃
- 銀行消防管理辦法
- 奧沙利鉑使用的健康宣教
- 礦山三級安全教育培訓(xùn)
- 人工耳蝸術(shù)后護理指南
- 2025至2030船用導(dǎo)航雷達行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 2025綜合安防系統(tǒng)建設(shè)與運維手冊
- 人員離市出省管理制度
- GB/T 45698-2025物業(yè)服務(wù)客戶滿意度測評
- GB/T 16603-2025錦綸牽伸絲
- 2025-2030年中國三坐標測量機行業(yè)前景趨勢及投資風(fēng)險預(yù)測研究報告
評論
0/150
提交評論