

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算符優(yōu)先分析器源代碼:#include #include#define MAX 100 using namespace std; struct Stack / 符號(hào)棧char dataMAX;int top;char Terminal6=;,(,),a,+,#; / 終結(jié)符集合 char Table66= / 算符優(yōu)先關(guān)系表, , , ,IJJJJJJ J, , =, , , , , !, , , , , !, , , , , !, , !, , !, =;/判斷是否為終結(jié)符,是返回其所在位置i,否則返回-1int Is_Vt(char ch,char Terminal6)int i; for
2、(i=0;i6;i+)if(ch=Terminali) / 輸入符為終結(jié)符 return i;return -1;/ 讀入輸入串,返回其長(zhǎng)度int Getchar(int length,char StringMAX)int i;coutlength;coutendl* 該輸入串為: ;for(i=0;iStringi;return length;void PrintStack(Stack &st, int top) / 輸出棧中的內(nèi)容for(int i=0;i=top;i+)coutst.datai ; cout tt;int main()Stack st;int length=0,L
3、en,k;char StringMAX,ch;Len=Getchar(length,String); / 獲得輸入串 int j=0;ch=Stringj; / 指向第一個(gè)輸入符 st.top=0;st.datast.top=#; / 將 #入棧coutendl*cout 符 號(hào) 棧 setw(15) 當(dāng) 前 符 號(hào) setw(15) 剩 余 輸 入串 setw(20) 移進(jìn)或歸約 endl; / 輸出格式while(st.top!=1 | ch!=#)if(Is_Vt(ch,Terminal)!=-1) / 輸入符為終結(jié)符k=Is_Vt(ch,Terminal); / 獲取分析表 Table
4、 的第二個(gè)下標(biāo) int m,t; /t 指向終結(jié)符在棧中的位置 if(Is_Vt(st.datast.top,Terminal)!=-1) / 棧頂為終結(jié)符m=Is_Vt(st.datast.top,Terminal);/ 獲取分析表 Table 的第 一個(gè)下標(biāo)t=st.top;else / 棧頂為非終結(jié)符,看 top-1m=Is_Vt(st.datast.top-1,Terminal);/ 獲取分析表 Table 的第一個(gè)下標(biāo)t=st.top-1;if(Tablemk= | Tablemk=) / 棧頂符號(hào)的優(yōu)先級(jí)小 于等于endl;輸入符號(hào),壓棧PrintStack(st,st.top);
5、 / 輸出棧中內(nèi)容 coutchsetw(10); /輸出當(dāng)前符號(hào) for(int p=j+1;p=Len;p+) / 輸出剩余輸入串coutStringp;coutttt 移進(jìn) endl; / 輸出下一步進(jìn)行的操作st.top+;st.datast.top=ch; / 輸入符移進(jìn)棧中j+;ch=Stringj; / 指向下一輸入符else if(Tablemk=!) / 兩終結(jié)符的優(yōu)先關(guān)系不確定coutendl* 分析出錯(cuò) !*endl;return 0;else / 棧頂符號(hào)的優(yōu)先級(jí)大于輸入符,歸約int q; / 表示分析表 Table 的行if(Is_Vt(st.datat-1,Ter
6、minal)!=-1) / 終結(jié)符相鄰符號(hào)也是 終結(jié)符q=Is_Vt(st.datat-1,Terminal);/ 獲得分析表 Table 的 行t=t-1; / 獲得分析表 Table 的列else /t-1 位置是一個(gè)非終結(jié)符q=Is_Vt(st.datat-2,Terminal);t=t-2;while(Tableqm!=)m=q;if(Is_Vt(st.datat-1,Terminal)!=-1) / 終結(jié)符相鄰符號(hào) 也是終結(jié)符q=Is_Vt(st.datat-1,Terminal);/ 獲 得 分 析 表 Table 的行 t=t-1; / 獲得分析表Table 的列else /t-
7、1 位置是一個(gè)非終結(jié)符q=Is_Vt(st.datat-2,Terminal);t=t-2;PrintStack(st,st.top); coutchsetw(10); for(intp=j+1;p=Len;p+) coutStringp;coutttt 歸約 endl;st.top=t+1;st.datast.top=N;elsecoutendl* 該輸入串不是文法的句子 !*endl; return 0;PrintStack(st,st.top);coutchsetw(10);for(int p=j+1;p=Len;p+)coutStringp;coutttt 接受 endl;couten
8、dl*分析成功:該輸入串是文法的句子!*endl;return 0;運(yùn)行結(jié)果:嬴H:編譯原理調(diào)試程唐Debug、優(yōu)先-eie亥輸入串為:色吩祈成功:該輸入串是文法的句子TPress an/ key to continuecontinye*1衰輸 入串為:a;f翼X?(耳MENX耳耳KiOtE貫羔處算貝覽梵h寸彳旱NWJt XXJfME SOC Jt耳貝K址耳HiCiOtJfXK當(dāng)前符號(hào)剩余輸天串移a;att;att;aNCatt時(shí)號(hào)棧當(dāng)前符號(hào)CaB a+ N+B N *BLB tt tt tk Ntt分析過程 剩余輸天串a(chǎn)+att+a)ttaaHUtlKKKiMKKWK耳耳:ME員iMNaOCXiMJC耳耳6鳶移進(jìn)或歸約賢進(jìn)哆進(jìn)移進(jìn)移進(jìn)b歸約NKJC江遼週量沌NKKXNJ(耳耳*該輸入串為:a;#十分析成功:該輸入串學(xué)文法的句子?十Press any key to continue進(jìn)翁逬常進(jìn)約翁約約K編譯原理調(diào)試程序Debug優(yōu)先exe;*輸入字符串 的長(zhǎng)度f X XX
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 濟(jì)南中職考試試題及答案
- 駕駛?cè)藛T考試試題及答案
- 業(yè)主群購(gòu)房合同范例
- 2025駕駛員勞動(dòng)合同 勞動(dòng)合同模板
- 醫(yī)師服務(wù)考試試題及答案
- 三河教師考試試題及答案
- 2025關(guān)于終止合同協(xié)議書的模版
- 公司員工宿舍使用合同范例
- 黨員培訓(xùn)合同范例
- 湖南省岳陽(yáng)市汨羅市第二中學(xué)2025屆高三下學(xué)期4月月考地理試卷(含答案)
- 2024年山東高考化學(xué)真題試題(原卷版+含解析)
- 3.1.4 禁止編入列車的機(jī)車車輛課件講解
- 30題儀表工程師崗位常見面試問題含HR問題考察點(diǎn)及參考回答
- 數(shù)字貿(mào)易學(xué) 課件 第5章 數(shù)字服務(wù)貿(mào)易
- DB11∕T 848-2023 壓型金屬板屋面工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 2024年江蘇交通控股有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 孕婦乳母的飲食調(diào)理
- 銀行理財(cái)雙錄培訓(xùn)課件
- 2025年4月自考00160審計(jì)學(xué)押題及答案解析
- 了解高中生心理健康問題的常見表現(xiàn)和解決方法
- 小學(xué)生反詐知識(shí)宣傳課件
評(píng)論
0/150
提交評(píng)論