版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、詞法分析一、 實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)本教材附錄B(詞法分析程序)調(diào)試,改編一個(gè)詞法分析程序,加深對(duì)詞法分析原理的理解。二、 實(shí)驗(yàn)要求2.1 待分析的簡(jiǎn)單的詞法(1)保留字:if,else, for, while, do, int ,read, write,real,char(2)純單分界符:+ * () ; : ,(3)雙分界符: = ! ,&,|2.2 實(shí)現(xiàn)功能:(1)在命令行中輸入源程序文件名(包括文件名路徑)(2)輸入目標(biāo)文件名(包括文件名路徑)(3)調(diào)用所編詞法分析代碼將分析結(jié)果寫(xiě)入目標(biāo)文件代碼(編譯完成)三、詞法分析程序的算法思想:算法的基本任務(wù)是從源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào),其基本
2、思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類(lèi),分析與代碼中相應(yīng)的單詞符號(hào)。3.1 主程序示意圖:調(diào)用子程序輸入串結(jié)束結(jié)束是否3.2詞法分析示意圖:輸入源程序文件名輸入目標(biāo)文件名文件名判斷文件名判斷是是否否開(kāi)始讀取一個(gè)字符是否為字母?標(biāo)識(shí)符處理是否數(shù)字?是是否組合整數(shù)數(shù)字分界符分界符處理注釋處理反斜杠錯(cuò)誤處理其他返回四、詞法分析程序的C語(yǔ)言程序源代碼:詞法分析子程序:#include #include #include #define keywordSum 10char *keywordkeywordSum=if,else,for,while,do,int,read,write,char,real
3、;/添加的保留字char,real;char singleword50=+ - * () ; , : ;char doubleword10= = ! ;char doubleword110=& &;char doubleword210=|;extern char Scanin300,Scanout300;extern FILE * fin,*fout;int TESTscan()char ch,token40;int es=0,j,n;printf (請(qǐng)輸入源程序文件名(包括路徑):);scanf (%s,Scanin);printf (請(qǐng)輸入詞法分析輸出文件名(包括路徑):);scanf (
4、%s,Scanout);if (fin=fopen(Scanin,r)=NULL)printf(n打開(kāi)詞法分析輸入文件出錯(cuò)!n);return(1);if(fout=fopen(Scanout,w)=NULL)printf(n創(chuàng)建詞法分析輸出文件出錯(cuò)!n);return(2);ch=getc(fin);while(ch!=EOF)while (ch= | ch=n| ch=t)ch=getc(fin);if(isalpha(ch)token0=ch;j=1;ch=getc(fin);while(isalnum(ch)tokenj+=ch;ch=getc(fin);tokenj=0;n=0;wh
5、ile (n=keywordSum)fprintf(fout,%st%sn,ID,token);else fprintf(fout,%st%sn,token,token);else if (isdigit(ch) token0=ch;j=1; ch=getc(fin); while (isdigit(ch) tokenj+=ch; ch=getc(fin); tokenj=0; fprintf(fout,%st%sn,NUM,token);else if (strchr(singleword,ch)0)token0=ch;token1=0;ch=getc(fin);fprintf(fout,%
6、st%sn,token,token);else if (strchr(doubleword,ch)0)token0=ch;ch=getc(fin);if (ch= = )token1=ch;token2=0;ch=getc(fin);else token1=0;fprintf(fout,%st%sn,token,token);/所加代碼;else if (strchr(doubleword1,ch)0)/判斷&token0=ch;ch=getc(fin);if(ch=&)token1=ch;token2=0;ch=getc(fin);elsetoken1=0;fprintf(fout,%st%
7、sn,token,token);/所加代碼else if (strchr(doubleword2,ch)0)/判斷|token0=ch;ch=getc(fin);if(ch=|)token1=ch;token2=0;ch=getc(fin);elsetoken1=0;fprintf(fout,%st%sn,token,token);/所加代碼else if (ch=/)ch=getc(fin);if (ch=*)char ch1;ch1=getc(fin);doch=ch1;ch1=getc(fin);while (ch!=*|ch1!=/)&ch1!=EOF);ch=getc(fin);el
8、setoken0=ch;token1=0;fprintf(fout,%st%sn,token,token);else token0=ch;token1=0; ch=getc(fin); es=3; fprintf(fout,%st%sn,ERROR,token); fclose(fin);fclose(fout);return(es);主程序:#include#includeextern int TESTscan();char Scanin300,Scanout300;FILE *fin,*fout;void main()int es=0;es=TESTscan(); if(es0) printf(詞法分析有錯(cuò),編譯停止!); else printf(詞法分析成功! n);五、結(jié)果分析:當(dāng)源代碼文件為“a.t”:int a;a=10;read;&編譯結(jié)果:當(dāng)源文件為a.t:int a;real;for(a=10|a=1)retur
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流運(yùn)輸數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 2025年度定制化家具銷(xiāo)售合同范本2篇
- 機(jī)器視覺(jué)課課程設(shè)計(jì)書(shū)
- 2025年度建筑設(shè)備安全施工與安裝服務(wù)協(xié)議
- 二零二五年度商業(yè)綜合體給排水專(zhuān)業(yè)分包合同2篇
- 2025年度知識(shí)產(chǎn)權(quán)質(zhì)押委托保證反擔(dān)保服務(wù)合同3篇
- 貪吃蛇課程設(shè)計(jì)c語(yǔ)言
- 英語(yǔ)語(yǔ)法課程設(shè)計(jì)依據(jù)
- 2025年中學(xué)校長(zhǎng)開(kāi)學(xué)典禮講話(huà)(2篇)
- 網(wǎng)上投票系統(tǒng)課程設(shè)計(jì)
- 廣西壯族自治區(qū)國(guó)資委下屬?lài)?guó)有企業(yè)
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護(hù)理指南解讀)
- 生產(chǎn)計(jì)劃控制程序文件
- 山東省濟(jì)南市2022年中考英語(yǔ)情景運(yùn)用拔高練習(xí)(Word版含答案)
- 護(hù)理查房-糖尿病足 PPT課件
- (高清正版)T-CAGHP 015—2018地質(zhì)災(zāi)害治理工程監(jiān)理預(yù)算標(biāo)準(zhǔn)(試行)
- Q∕GDW 12083-2021 輸變電設(shè)備物聯(lián)網(wǎng)無(wú)線(xiàn)節(jié)點(diǎn)設(shè)備技術(shù)規(guī)范
- 公司物流倉(cāng)儲(chǔ)規(guī)劃方案及建議書(shū)
- 智能掃地機(jī)器人畢業(yè)設(shè)計(jì)
- 佳能EOS7D數(shù)碼單反相機(jī)說(shuō)明書(shū)
- 大型焰火燃放活動(dòng)方案審批表
評(píng)論
0/150
提交評(píng)論