




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 1 / 8 /文法為/(0)E' #E#/(1)E E+T /(2)E T/(3)T T*F /(4)T F/(5)F PF /(6)F P/(7)P (E) /(8)P i /根據(jù)算符優(yōu)先文法的分析規(guī)則求得終結(jié)符優(yōu)先關(guān)系表/ + * i ( )
2、0; #/ + > < < < < > >/ * > > < < &
3、#160; < > >/ > > < < < > >/ i > >
4、160; > > >/ ( < < < < < = /
5、60; ) > > > > >/ # < < < < &
6、#160; < =#include<stdlib.h>#include<stdio.h>#include<dos.h>#include<stdio.h>#include<string.h>#include<ctype.h>#include<iostream.h>#define SIZE 128char youxian77; /算符優(yōu)先關(guān)系數(shù)組char lexbufSIZE; /存放輸入的
7、要進(jìn)行分析的句子char lexSIZE; /存放剩余串char fenxizhanSIZE;/分析棧void fenxi();int panduanyou(char x);void shengyuchuan();int k;void zengjia();void main() /將算符優(yōu)先關(guān)系存放在算符優(yōu)先關(guān)系數(shù)組里 youxian00='>' youxian01='<' youxian02='<' youxian
8、03='<' youxian04='<' youxian05='>' youxian06='>' /_ youxian10='>' youxian11='>' youxian12='<' youxian13='<' youxian14='<' youxian15='>'
9、;youxian16='>' /_ youxian20='>' youxian21='>' youxian22='<' youxian23='<' youxian24='<' youxian25='>' youxian26='>' /_ youxian30='>' youxian31=
10、9;>' youxian32='>' youxian33='$'/無優(yōu)先關(guān)系的用$表示 youxian34='$' youxian35='>' youxian36='>' /_ youxian40='<' youxian41='<' youxian42='<' &
11、#160; youxian43='<' youxian44='<' youxian45='=' youxian46='$' /_ youxian50='>' youxian51='>' youxian52='>' youxian53='$'
12、; youxian54='$' youxian55='>' youxian56='>' /_ youxian60='<' youxian61='<' youxian62='<' youxian63='<' youxian64='<
13、39; youxian65='$' youxian66='=' /_ printf("現(xiàn)在就要進(jìn)行算符優(yōu)先分析,請做好準(zhǔn)備 n"); printf("*n"); printf("請輸入要進(jìn)行分析的句子n&q
14、uot;); cin.get(lexbuf,SIZE); /將輸入的字符串存到數(shù)組 printf("步驟 棧 優(yōu)先關(guān)系 當(dāng)前符號 剩余輸入串 移進(jìn)或歸約n"); k=0; fenxizhank='#' fenxizhank+1='0' int lenth,i1; /初始化 剩余串?dāng)?shù)
15、組為輸入串 lenth=strlen(lexbuf); for(i1=0;i1<lenth;i1+) lexi1=lexbufi1; lexi1='0' fenxi(); void fenxi() int i,j,f,z,z1,n,n1,z4,n4; int flag=0;/操作的步驟數(shù) char a; /存放正在分析的字符 char p6,Q,p1,p4;
16、0; f=strlen(lexbuf); /測出數(shù)組的長度 for(i=0;i<f;i+) a=lexbufi; if(fenxizhank='+'|fenxizhank='*'|fenxizhank=''|fenxizhank='i'|fenxizhank='('|fenxizhank=')'|fenxizhank='#') j=k; else &
17、#160; j=k-1; z=panduanyou(fenxizhanj);/ 從優(yōu)先關(guān)系表中查出sj和a的優(yōu)先關(guān)系 if(a='+'|a='*'|a=''|a='i'|a='('|a=')'|a='#') n=panduanyou(a); else /如果句子含有不是終結(jié)符集合里的其它字符,不合法 p
18、rintf("error!不合法的句子"); break; p6=youxianzn; if(p6='>') loop: Q=fenxizhanj; if(fenxizhanj-1='+'|fenxizhanj-1='*'|fenxizhanj-1=''|fenxizhanj-1='i'|fenxizhanj-1='('|fenxizhanj-1=')
19、9;|fenxizhanj-1='#') j=j-1; else j=j-2; z1=panduanyou(fenxizhanj); n1=panduanyou(Q); p1=youxianz1n1; if(p1='<') /fenxizhanj+1fenxizhank歸約為N k=j+1;
20、160; shengyuchuan(); flag+; printf("(%d) %s %c %c %s
21、0; 歸約n",flag,fenxizhan,p6,a,lex); i-; fenxizhank='N' int hou,hou1; hou=strlen(fenxizhan); for(hou1=k+1;hou1<hou;hou1+) fenxizhanhou1='0'/多個字符歸約,把棧頂后面的舍棄 zengjia();/歸約剩余串沒變化
22、; else goto loop; else if(p6='<') /移進(jìn) 有一個問題就是如果上一步是不歸約,剩余的字符串減少一個 shengyuchuan(); &
23、#160; lexbuff='0' flag=flag+1; printf("(%d) %s %c %c %s
24、0; 移進(jìn)n",flag,fenxizhan,p6,a,lex); /printf("1 "); /printf(" %s ",fenxizhan); /printf(" %c ",p); / printf("
25、; %c ",a); /printf(" %s",lex); /printf(" 移進(jìn)n"); / printf("%s",lex); /printf(&qu
26、ot;(i)"); k=k+1; fenxizhank=a; else if(p6='=') z4=panduanyou(fenxizhanj); n4=panduanyou('#'); p4=youxianz4n4; if(p4='=')
27、60; shengyuchuan(); flag+; printf("(%d) %s %c %c %s 接受n",flag,fenxizhan,p6,a,lex); printf("合法的句子"); break;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國金屬家具行業(yè)市場全景分析及投資前景展望報(bào)告
- 心靈培訓(xùn)分享課件
- 謝彬培訓(xùn)課件
- 接待專員培訓(xùn)課件
- 社會熱點(diǎn)事件在初中歷史教學(xué)中的應(yīng)用策略與實(shí)踐研究
- 海洋調(diào)查設(shè)備項(xiàng)目風(fēng)險(xiǎn)評估報(bào)告
- 中國集成顯卡行業(yè)市場深度分析及發(fā)展趨勢預(yù)測報(bào)告
- 2025年 滄州市人民醫(yī)院招聘考試筆試試題附答案
- 2025年中國全銅紅沖三角閥行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2022-2027年中國瓜子行業(yè)市場供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
- 醫(yī)療保險(xiǎn)基本政策培訓(xùn)PPT
- 連云港師范高等??茖W(xué)校輔導(dǎo)員考試題庫
- 2023年湖北黃岡市檢察機(jī)關(guān)招聘雇員制檢察輔助人員50人高頻考點(diǎn)題庫(共500題含答案解析)模擬練習(xí)試卷
- 05G525-吊車軌道聯(lián)結(jié)及車擋(適用于鋼吊車梁)課件
- TQGCML 757-2023 硫酸鈣晶須規(guī)程
- 計(jì)數(shù)型MSA分析表
- 軍校招生政治考核表格式-雙面打印
- 急救-毒蛇咬傷
- YY 0334-2002硅橡膠外科植入物通用要求
- GB/T 41261-2022過程工業(yè)報(bào)警系統(tǒng)管理
- (完整版)杭州電子科技大學(xué)數(shù)字電路期末考試試卷及答案
評論
0/150
提交評論