




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、編譯原理課程實(shí)驗(yàn)報(bào)告題目lexyacc的聯(lián)合使用專業(yè)班級學(xué)號姓名1 .實(shí)驗(yàn)題目lexyacc的聯(lián)合使用2 .實(shí)驗(yàn)日期3 .實(shí)驗(yàn)環(huán)境(操作系統(tǒng),開發(fā)語言)操作系統(tǒng)是Windows開發(fā)語言是C語言4 .實(shí)驗(yàn)內(nèi)容(實(shí)驗(yàn)要求)目的:熟悉lex和yacc的接口要求:( 1)能對整數(shù)、實(shí)數(shù)進(jìn)行帶變量的四則運(yùn)算( 2)詞法分析用lex實(shí)現(xiàn)( 3)語法分析用yacc實(shí)現(xiàn)( 4)交源代碼和實(shí)驗(yàn)報(bào)告五.實(shí)驗(yàn)步驟1.在實(shí)驗(yàn)二的基礎(chǔ)上修改代碼,并添加上以下的代碼:doublereturnDOUBLE;EOFreturn0;IDreturnID;2. 在DO*境下按照之前的步驟利用flex運(yùn)行,修改其中的錯(cuò)誤之后,生成
2、文件。3. 參照書中第14章第7節(jié)和文件中的代碼,和老師說的思路修改文件,按照實(shí)驗(yàn)要求修改代碼。4. 在DO*境下利用yacc運(yùn)行文件,會有出錯(cuò)提示,按照出錯(cuò)的地方指示,修改代碼,使其最終能通過運(yùn)行,生成文件。(此步驟還未完成)5. 打開,新建工程,在Sourcefiles文件夾中添加之前生成的文件和文件,然后找到已給的文件,將其添加到新建工程中的Headerfiles文件夾中,這時(shí)就能將三個(gè)文件組成一個(gè)類似于.exe文件類型的文件,最后運(yùn)行。6. 運(yùn)行并調(diào)試成功。六.實(shí)驗(yàn)體會(包括收獲、心得體會、存在的問題及解決問題的方法、建議等)這是最后一次實(shí)驗(yàn)了,但這次的難度是有史以來最難的一次實(shí)驗(yàn),因
3、為要結(jié)合之前我們學(xué)到的所有東西。首先要修改.l文件的代碼,再把此文件用lex運(yùn)行,即詞法分析部分用lex完成;然后是修改文件,盡管有參照的代碼,但是要自己實(shí)現(xiàn)能對整數(shù)和實(shí)數(shù)進(jìn)行帶變量的四則運(yùn)算,對于還沒有完全掌握.y文件編寫的我還是太有難度了,自己先是完成了只對實(shí)數(shù)的運(yùn)算,也能運(yùn)行,但只要添加上實(shí)數(shù)就會出錯(cuò),研究了很久,還是沒有找出來哪里還有錯(cuò)誤;有時(shí)候也會出現(xiàn)用yacc運(yùn)行沒錯(cuò)誤,但用c-free運(yùn)行就會出錯(cuò),提示說.h文件有錯(cuò)誤,找了半天,也修改了很多。卻仍然不知道哪里有錯(cuò)??偟膩碚f,雖然沒有完成最終的目的,但是我已經(jīng)盡力了。七.實(shí)驗(yàn)結(jié)果(關(guān)鍵源代碼)文件代碼:%optionnoyywra
4、pDIGIT0-9IDa-zA-Za-zA-Z0-9*%#include%DIGIT+.DIGIT*returnNUM;/*An*/printf(33n);Aprintf(34%sn,yytext);+printf(35%sn,yytext);-printf(36%sn,yytext);*printf(37%sn,yytext);/printf(38%sn,yytext);(printf(39%sn,yytext);)printf(40%sn,yytext);printf(41%sn,yytext);printf(42%sn,yytext);printf(43%sn,yytext);print
5、f(44%sn,yytext);doublereturnDOUBLE;EOFreturn0;IDreturnID;.printf(100%sn,yytext);%main(void)yylex();文件代碼:*/*帶整數(shù)int和實(shí)數(shù)double變量聲明的加減乘除四則運(yùn)算%#include#include#include#include#includeexterncharyytext20;externSYMREC*sym_table;intid_type;SYMREC*sym;typedefstructunioninvaldoubledo;intin;)intvalType;VALUE;%)al
6、Type=1;$,=$/*valType=1代表實(shí)數(shù)*/|NUMINT$.valType=2;$,=$/*valType=2代表整數(shù)*/|IDif(sym=getsym(yytext)!=NULL)if(id_type=INTEGER)$.valType=2;$,=sym-value;/*valType=2代表整數(shù)*/else$.valType=1;$,=sym-value;/*valType=1代表實(shí)數(shù)*/else(此變量沒定義n);|exp+expif($=1&$=1)$,valType=1;$,=$+$;)else|expexp|expexp|exp/exp|-exp%precUMINUSJ%intyyerror(char*s)printf(%sn,s);return0;intmain(void)yyparse();return0;intyylex()|isdigit(c)ungetc(c,stdin);scanf(%lf,&;returnNUMDOU;if(isalpha(c)charsymbuf20;inti=0;dosymbufi=c;i+;c=getchar();while(c!=EOF&isalnum(c);ungetc(c,stdin);symbufi=0;/還要能識別inta中的關(guān)鍵字int,如果遇見int返INTEGERstrc
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅認(rèn)購定金合同范本
- 倉儲保管填寫合同范本
- 2025年四川貨運(yùn)從業(yè)資格證考試的技巧
- 一房三賣買賣合同范本
- 停息掛賬律師委托合同范本
- 個(gè)人外匯貸款合同范本
- 助資合同范本
- 個(gè)人買房購房合同范本
- 公司稅貸合同范本
- 個(gè)人店面整體裝修合同范本
- 廣州獵德大橋三維曲面塔清水混凝土施工技術(shù)
- 產(chǎn)品設(shè)計(jì)思維 課件 第5章 產(chǎn)品設(shè)計(jì)的形式思維
- Unit2Letscelebrate!Usinglanguage課件-高中英語
- 幼兒園大班音樂活動(dòng)《小籬笆》
- Python數(shù)據(jù)挖掘?qū)崙?zhàn)全套教學(xué)課件
- 中美歐規(guī)范樁基承載力計(jì)算設(shè)計(jì)對比
- 煙臺大學(xué)化學(xué)化工學(xué)院實(shí)驗(yàn)室儀器設(shè)備搬遷項(xiàng)目
- 鋼筋工程隱蔽檢查驗(yàn)收記錄表
- 區(qū)塊鏈技術(shù)應(yīng)用開發(fā)項(xiàng)目可行性分析報(bào)告
- 加強(qiáng)師德師風(fēng)建設(shè)學(xué)校師德師風(fēng)警示教育講座培訓(xùn)課件
- 豬飼料購銷合同書
評論
0/150
提交評論