編譯原理實(shí)驗(yàn)指導(dǎo)書-實(shí)驗(yàn)六_第1頁
編譯原理實(shí)驗(yàn)指導(dǎo)書-實(shí)驗(yàn)六_第2頁
編譯原理實(shí)驗(yàn)指導(dǎo)書-實(shí)驗(yàn)六_第3頁
全文預(yù)覽已結(jié)束

付費(fèi)下載

下載本文檔

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

文檔簡介

第3頁共3頁編譯原理實(shí)驗(yàn)指導(dǎo)書-實(shí)驗(yàn)六實(shí)驗(yàn)六詞法分析^p((二))一、實(shí)驗(yàn)?zāi)康?.掌握識別程序中整數(shù)數(shù)字的方法,并編程實(shí)現(xiàn),為詞法分析^p打根底。2.掌握處理程序中的分隔符的方法,并編程實(shí)現(xiàn),為詞法分析^p打根底。二、實(shí)驗(yàn)要求輸入一段類C語言程序,程序中的每個單詞用空格分隔,要求識別出程序中的數(shù)字及分隔符〔如“+、—、×、/、〔、〕、#、;”等〕。三、實(shí)驗(yàn)步驟原理及思路:寫一段類C代碼,保存成文件。這次實(shí)驗(yàn)需要編寫一段程序,稱分析^p程序。由分析^p程序識別代碼中的數(shù)字和分隔符,并將這些數(shù)字和分隔符輸出??稍诜治鯺p程序中預(yù)先定義分隔符列表,然后將代碼文件翻開,逐個讀入單詞,將單詞和分隔符做比擬,假如發(fā)現(xiàn)單詞是某個分隔符,那么輸出該單詞,否那么讀入下一個單詞。輸入一段類C程序,例如:關(guān)鍵代碼提示:1.定義分隔符表??梢钥紤]用字符數(shù)組定義。代碼提示:charsingleword[keywordSum]="+-*=,.#;";這里根據(jù)需要自行添加關(guān)鍵字。其中keywordSum表示定義了多少個分隔符,程序?qū)崿F(xiàn)的時候用常量說明,方便修改。2.定義一個輸出關(guān)鍵字的緩沖區(qū)。用字符數(shù)組實(shí)現(xiàn)即可。長度可暫定為40。代碼提示:charch,id[40];//ch為每次讀入的字符,id用于保存識別出的單詞。3.翻開代碼文件。代碼提示:if((fin=fopen(PL0Scanin,"r"))==NULL)//判斷輸入文件名是否正確{printf("\n翻開詞法分析^p輸入文件出錯!\n");return(1);//輸入文件出錯返回錯誤代碼1}這里有兩個變量需要預(yù)先說明。一個是fin,一個是PL0Scanin。說明如下:File*fin;//用于指向輸入文件的指針charPL0Scanin[300]//用于接收輸入輸出文件名。這個變量的取值可以在程序運(yùn)行后指定,代碼如下:printf("請輸入程序文件名〔包括途徑〕:");scanf("%s",PL0Scanin);4.從文件中讀入單詞ch=getc(fin);//從文件中讀入一個字符。可以將以下兩個語句放到循環(huán)體中id[j++]=ch;ch=getc(fin);5.判斷單詞是否是數(shù)字可使用isdig

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論