編譯原理語法分析實(shí)驗(yàn)報(bào)告_第1頁
編譯原理語法分析實(shí)驗(yàn)報(bào)告_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)2:語法分析1.實(shí)驗(yàn)題目和要求題目:語法分析程序的設(shè)計(jì)與實(shí)現(xiàn)。實(shí)驗(yàn)內(nèi)容:編寫語法分析程序,實(shí)現(xiàn)對算術(shù)表達(dá)式的語法分析。要求所分析算術(shù)表達(dá)式由如下的文法產(chǎn)生。EET|E-T|TT;T*F|T/F|FF>id|(E)|num實(shí)驗(yàn)要求:在對輸入表達(dá)式進(jìn)行分析的過程中,輸出所采用的產(chǎn)生式。方法1:編寫遞歸調(diào)用程序?qū)崿F(xiàn)自頂向下的分析。方法2:編寫LL(1)語法分析程序,要求如下。(1) 編程實(shí)現(xiàn)算法4.2,為給定文法自動(dòng)構(gòu)造預(yù)測分析表。(2) 編程實(shí)現(xiàn)算法4.1,構(gòu)造LL(1)預(yù)測分析程序。方法3:編寫語法分析程序?qū)崿F(xiàn)自底向上的分析,要求如下。(1) 構(gòu)造識別所有活前綴的DFA。(2) 構(gòu)造L

2、R分析表。(3) 編程實(shí)現(xiàn)算法4.3,構(gòu)造LR分析程序。方法4:利用YACC自動(dòng)生成語法分析程序,調(diào)用LEX自動(dòng)生成的詞法分析程序。實(shí)現(xiàn)(采用方法1)1.1.步驟:1)對文法消除左遞歸E>TEe':te'|TE'|:T>FT'T'>*FT'|/FT'|;F>id|(E)|num2)畫出狀態(tài)轉(zhuǎn)換圖idnum化簡得:T命卩©匹©Idnum3)源程序在程序中I表示idN表示numrlftincludeinclude<stdio.h><iostream>include<fs

3、tream>i+include<string>usingnamespacestd;stringinputstring:charnoflqpointer:intn;存放輸入字符串當(dāng)前指向的字符當(dāng)前字符在字符串的位置voiderror(void)-_coutalrr1。-voidforward(void)丿/指針指向下一個(gè)字芍n+*;nowpointerinputstring_n:.-voidprod(void);voidprocF(void);EvoidprocE(void)procT();if(nowpointer=,亠')forward():procE():eout

4、«"E-E+Tn*;elseif(nowpointer='一')forward();procE():cout«*E->E-TVi*;elsecout«"ETn":voidprocT(void)procF():if(nowpointer='forward();procT();cout«,T->T*Fn"elseif(nowpointer'/'):forward();procT0;cout«,T->T+Fn,;elsecout«*T->

5、FnJr:E-'vo1dprocP(void):if(nowpointer=C)cE();if(nowpointfit='、)forward();cout«*F->(E)u*;elseerror();elseif(nofl-pointer"I')forward();cout«*F->idn#:elseif(novpointer=?N1)forward();cout*F->nuain*;elseerror0;dintmainOcin»inputstring;inputstring+=,;/添加作為字符串的尾noointer=inputstring0_;n=0:procE();if(nowpointer*ft')/當(dāng)指向尾時(shí),語法正確cout«*語法正確n"elsecout«JW錯(cuò)誤n":cin»n;returnQ;|1.2.例子:a)例子1輸入:I+(N*N)輸出:b)例子2輸入:I-NNl=i輸出:

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論