![語法分析(自上而下分析)實驗報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/26/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec1.gif)
![語法分析(自上而下分析)實驗報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/26/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec2.gif)
![語法分析(自上而下分析)實驗報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/26/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec3.gif)
![語法分析(自上而下分析)實驗報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/26/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec4.gif)
![語法分析(自上而下分析)實驗報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/26/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec/2ce84cf8-9dbb-4d06-b2e5-a1e3798947ec5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實習二 語法分析自上而下分析 一、實驗?zāi)康?使用預測分析方法對輸入的表達式進行分析,掌握其具體的使 用并且學會去分析一個文法。 二、實驗內(nèi)容 1 設(shè)計表達式的語法分析器算法(使用預測分析) 2 編寫一段代碼并上機調(diào)試查看其運行結(jié)果 三、實驗要求 使用 LL (1)分析算法設(shè)計表達式的語法分析器 LL ( 1)文法是一個自上而下的語法分析方法,它是從文法的 開始符號出發(fā),生成句子的最左推導,從左到右掃描源程序, 每次向前查看一個字符,確定當前應(yīng)該選擇的產(chǎn)生式。 實現(xiàn) LL (1)分析的另一種有效方法是使用一張分析表和一個 棧進行聯(lián)合控制。 預測分析程序的總控程序在任何時候都是按 STACK 棧頂
2、符號 X和當前a的輸入符號行事的。對于任何(X, a),總控程序每 次都執(zhí)行三種可能的動作之一。 1. 若X = a=“#”,則宣布分析成功,停止分析過程 2. 若X = az “#”,則把X從STACK棧頂逐出,讓a指向下一 個輸入符號。 3. 若 X 是一個非終結(jié)符,則查看分析表。 四、運行結(jié)果 (本程序只能對由i,+,*,(,)構(gòu)成的以#結(jié)束的字符串進行分析) 門九 *C: .Doi?iiKen.s and Se1t ingsirmt: ciiirk桌商exe 0 12 3 4 5 67890123 01 2 34LD7CO9 11111111112222 #GT #GSF #GGEE
3、#GSGT ttCSGSf #GSGSi ttCSGS ttGSG #GSGT* #GSGI #GSGSF ttGSGSi ttGSGS ttGG ttGS ftGS ttGSF* ttGSF ttGSi ttGS i*i# *i# itt iff G s E B G s 己 _T G _s 己 nJF 己 己 TFCffinTFilffin* + F in .* * SM * i * * -匹-匹-匹-匹-匹-匹-匹- ETFETFis char B20; char v120=i,+,*,(,),#;/* 終結(jié)符 */ char v220=E,G,T,S,F;/* 非終結(jié)符*/ int j=
4、0,b=0,top=0,l;/*L 為輸入串長度 */ typedef struct type char origi n;/* 大寫字符*/ char array5;/*產(chǎn)生式右邊字符*/ int length;/* 字符個數(shù)*/ type; type e,t,g,g1,s,s1,f,f1;/*結(jié)構(gòu)體變量 */ type C1010;/* 預測分析表*/ void print()/*輸出分析棧 */ int a;/* 指針*/ for(a=0;a=top+1;a+) pri ntf(%c,Aa); prin tf(tt); /*pri nt*/ void print1()/* 輸出剩余串 */
5、 int j; for(j=0;jvb;j+)/* 輸出對齊符 */ printf(” ); for(j=b;j=l;j+) prin tf(%c,Bj); prin tf(ttt); /*pri nt1*/ void mai n() int m,n ,k=O,flag=O,fi nish=0; char ch,x; type cha;/*用來接受 Cmn*/ /*把文法產(chǎn)生式賦值結(jié)構(gòu)體*/ e.origi n=E: strcpy(e.array,TG); een gth=2; t.origi n=T; strcpy(t.array,FS); ten gth=2; g.origi n=G; s
6、trcpy(g.array,+TG); gen gth=3; gl.origi n=G: g1.array0=s: g1en gth=1; s.origi n二S; strcpy(s.array,*FS); sen gth=3; sl.origi n二S; s1.array0=A; s1en gth=1; f.origi n=F; strcpy(f.array,(E); fen gth=3; f1.origi n=F: f1.array0=i: f1.le ngth=1; for(m=0;m=4;m+)/* 初始化分析表 */ for(n=0;n=5;n+) Cmn.origin=N;/* 全
7、部賦為空 */ /*填充分析表*/ C00=e;C03=e; C11=g;C14=g1;C15=g1; C20=t;C23=t; C31=s1;C32=s;C34=C35=s1; C40=f1;C43=f; printf(請輸入要分析的字符串:); do/*讀入分析串*/ sca nf(%c, if(ch!=i) exit(1); Bj=ch; j+; while(ch!二#); l=j;/*分析串長度*/ ch=B0;/*當前分析字符*/ Atop=#; A+top=E;/*#,E進棧*/ printf(步驟tt分析棧tt剩余字符tt所用產(chǎn)生式 do x=Atop-;/*x為當前棧頂字符*/
8、 prin tf(%d,k+); prin tf(tt); for(j=0;j=5;j+)/*判斷是否為終結(jié)符*/ if(x=v1j) flag=1; break; if(flag=1)/*如果是終結(jié)符*/ if(x=#) finish=1;/* 結(jié)束標記 */ printf(acc!n);/* 接受 */ getchar(); getchar(); exit(1); /*if*/ if(x=ch) print(); pri nt1(); printf(%c 匹配n,ch); ch二B+b;/*下一個輸入字符*/ flag=O;/*恢復標記*/ /*if*/ else/*出錯處理*/ print(); pri nt1(); printf(%c出錯n,ch);/*輸出出錯終結(jié)符*/ exit(1); /*else*/ /*if*/ else/*非終結(jié)符處理*/ for(j=0;j,cha.origin);/* 輸出產(chǎn)生式 */ for(j=0;j=0;j-)/* 產(chǎn)生式逆序入棧 */ A+top=cha.arrayj; if(Atop=A)/* 為空則不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度家政服務(wù)與家庭園藝維護合同樣本
- 2025年度攪拌車租賃與經(jīng)營承包一體化服務(wù)合同
- 2025年度國際貨物買賣違約賠償金計算與支付協(xié)議
- 戶口落戶申請書
- 2025-2031年中國成套供水設(shè)備行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略咨詢報告
- 2025年度供應(yīng)鏈金融供應(yīng)鏈融資風險控制合同
- 2018-2024年中國中老年奶粉行業(yè)市場評估分析及發(fā)展前景調(diào)研戰(zhàn)略研究報告
- 2025年斜行健腹板行業(yè)深度研究分析報告
- 2025-2030年中國襯里復合用布項目投資可行性研究分析報告
- 2025年度家政鐘點工綜合服務(wù)合同范本
- 安徽省2024年高考語文模擬試卷及答案5
- DLT 5756-2017 額定電壓35kV(Um=40.5kV)及以下冷縮式電纜附件安裝規(guī)程
- 關(guān)于餐飲合同范本
- CHT 4019-2016 城市政務(wù)電子地圖技術(shù)規(guī)范(正式版)
- 廣西壯族自治區(qū)南寧市2024年七年級下學期語文期末試卷附答案
- 冀教版五年級數(shù)學下冊全冊課件【完整版】
- 微量注射泵安全使用和維護保養(yǎng)
- 高二物理人教版(2019)選擇性必修第一冊教學設(shè)計
- 污水處理廠運營維護移交 投標方案(技術(shù)方案)
- 部編版歷史八年級上冊 第八單元 教學設(shè)計
- 高中英語元宵節(jié)猜燈謎活動英文課件
評論
0/150
提交評論