




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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、要進行分析的句子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)在就要進行算符優(yōu)先分析,請做好準備 n"); printf("*n"); printf("請輸入要進行分析的句子n&q
14、uot;); cin.get(lexbuf,SIZE); /將輸入的字符串存到數(shù)組 printf("步驟 棧 優(yōu)先關(guān)系 當前符號 剩余輸入串 移進或歸約n"); k=0; fenxizhank='#' fenxizhank+1='0' int lenth,i1; /初始化 剩余串數(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='<') /移進 有一個問題就是如果上一步是不歸約,剩余的字符串減少一個 shengyuchuan(); &
23、#160; lexbuff='0' flag=flag+1; printf("(%d) %s %c %c %s
24、0; 移進n",flag,fenxizhan,p6,a,lex); /printf("1 "); /printf(" %s ",fenxizhan); /printf(" %c ",p); / printf("
25、; %c ",a); /printf(" %s",lex); /printf(" 移進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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲狀旁腺圍手術(shù)期護理
- 售后文員試題及答案
- 創(chuàng)意管家面試題及答案
- 狼圖騰考試題及答案
- 2025年會計、審計及稅務(wù)服務(wù)項目立項申請報告模范
- 職業(yè)與事業(yè)培訓(xùn)
- 臨床咨詢考試題及答案
- 員工務(wù)實培訓(xùn)
- 中風的分型及護理常規(guī)
- 神奇的筆記本心理健康
- 2025年陜西省中考數(shù)學真題含答案
- 能源站運營管理制度
- 2025至2030中國成人用品行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2024年內(nèi)蒙古錫林郭勒職業(yè)學院招聘真題
- 生物-七年級下冊期末復(fù)習知識點匯Z(冀少版2024)速記版 2024-2025學年七年級生物下學期
- 2025屆浙江省精誠聯(lián)盟高三下學期適應(yīng)性聯(lián)考生物試題
- 2025-2030年中國背光單元(BLU)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025浙江中考:化學必背知識點
- 護理職業(yè)安全文化試題及答案
- 《神經(jīng)調(diào)控機制》課件
- DB63-T 2135-2023 鹽湖資源動態(tài)監(jiān)測技術(shù)規(guī)程
評論
0/150
提交評論