




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、南昌大學實驗報告一實驗類型:驗證 綜合設計 創(chuàng)新 實驗日期:2013.4 實驗成績: 詞法分析程序設計一、實驗目的掌握計算機語言的詞法分析程序的開發(fā)方法。 二、實驗內(nèi)容編制一個能夠分析三種整數(shù)、標識符、主要運算符和主要關鍵字的詞法分析程序。三、實驗要求1、根據(jù)狀態(tài)圖,設計詞法分析函數(shù)int scan( ),完成以下功能:1) 從文本文件中讀入測試源代碼,根據(jù)狀態(tài)轉換圖,分析出一個單詞,2) 以二元式形式輸出單詞<單詞種類,單詞屬性>其中單詞種類用整數(shù)表示:0:標識符1:十進制整數(shù)2:八進制整數(shù)3:十六進制整數(shù)運算符和界符,關鍵字采用一字一符,不編碼其中單詞屬性表示如下:標
2、識符,整數(shù)由于采用一類一符,屬性用單詞表示運算符和界符,關鍵字采用一字一符,屬性為空2、編寫測試程序,反復調(diào)用函數(shù)scan( ),輸出單詞種別和屬性。 四、實驗環(huán)境PC微機DOS操作系統(tǒng)或 Windows 操作系統(tǒng)Turbo C 程序集成環(huán)境或 Visual C+ 程序集成環(huán)境 五、實驗步驟編輯一個文本文件program.txt,在文件中輸入如下內(nèi)容:if data+92>0x3f thendata=data+01;elsedata=data-01; 正確結果:<if , -><0 , data><+ , -><1 , 92&
3、gt;<> , -><3 , 3f><then , -><0 , data><= , ><0 , data><+ , -><2 , 1>< ,-><else , -><0 , data><= , -><0 , data><- , -><2 , ->< , ->【實驗代碼】#include <iostream>#include<string>using namespace st
4、d;#define MAX 5 char ch =' 'string key5="if","then","else","while","do"int Iskey(string c) /關鍵字判斷 int i; for(i=0;i<MAX;i+) if(pare(c)=0) return 1; return 0;int IsLetter(char c) /判斷是否為字母 if(c<='z')&&(c>='a&
5、#39;)|(c<='Z')&&(c>='A') return 1; else return 0;int IsLetter1(char c) /判斷是否為af字母 if(c<='f')&&(c>='a')|(c<='F')&&(c>='A') return 1; else return 0;int IsDigit(char c) /判斷是否為數(shù)字 if(c>='0'&&c<
6、='9') return 1; else return 0;void scan(FILE *fpin) string arr="" while(ch=fgetc(fpin)!=EOF) arr="" if(ch=' '|ch='t'|ch='n') else if(IsLetter(ch)|ch='_') arr=arr+ch; ch=fgetc(fpin); while(IsLetter(ch)|IsDigit(ch) if(ch<='Z')&
7、&(ch>='A') ch=ch+32; arr=arr+ch; ch=fgetc(fpin); fseek(fpin,-1L,SEEK_CUR); if (Iskey(arr)cout<<arr<<"t$關鍵字"<<endl; else cout<<arr<<"t$普通標識符"<<endl; else if(IsDigit(ch) int flag=0;if(ch='0')arr=arr+ch;ch=fgetc(fpin);if(ch&
8、gt;='0'&&ch<='7') while(ch>='0'&&ch<='7') flag=1; arr=arr+ch; ch=fgetc(fpin);else if(ch='x'|ch='X')flag=2;arr=arr+ch; ch=fgetc(fpin);while(IsDigit(ch)|IsLetter1(ch) arr=arr+ch; ch=fgetc(fpin);else if(ch=' '|ch=',
9、9;|ch='' )cout<<arr<<"t$整數(shù)0"<<endl;fseek(fpin,-1L,SEEK_CUR); if(flag=1) cout<<arr<<"t$八進制整數(shù)"<<endl;else if(flag=2) cout<<arr<<"t$十六進制整數(shù)"<<endl; else arr=arr+ch;ch=fgetc(fpin);while(IsDigit(ch) arr=arr+ch; ch=
10、fgetc(fpin); fseek(fpin,-1L,SEEK_CUR); cout<<arr<<"t$十進制整數(shù)"<<endl; else switch(ch) case'+': case'-' : case'*' : case'=' : case'/' :cout<<ch<<"t$運算符"<<endl;break; case'(' : case')' : case
11、39;' : case'' : case'' : case'.' : case',' : case'' : case'' :cout<<ch<<"t$界符"<<endl;break; case':' :ch=fgetc(fpin); if(ch='=') cout<<":="<<"t$運算符"<<endl; else cout&l
12、t;<":"<<"t$界符"<<endl; fseek(fpin,-1L,SEEK_CUR); break; case'>' :ch=fgetc(fpin); if(ch='=') cout<<">="<<"t$運算符"<<endl; if(ch='>')cout<<">>"<<"t$輸入控制符"<<
13、;endl; else cout<<">"<<"t$運算符"<<endl; fseek(fpin,-1L,SEEK_CUR); break; case'<' :ch=fgetc(fpin); if(ch='=')cout<<"<="<<"t$運算符"<<endl; else if(ch='<')cout<<"<<"<<
14、"t$輸出控制符"<<endl; else if(ch='>') cout<<"<>"<<"t$運算符"<<endl; elsecout<<"<"<<"t$運算符"<<endl; fseek(fpin,-1L,SEEK_CUR); break; default : cout<<ch<<"t$無法識別字符"<<endl; void main() char in_fn30; FILE * fpin; cout<<"請輸入源文件名(包括路徑和后綴名):" for(;) cin>>in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第7課 隋唐時期的科技與文化 教案2024-2025學年七年級歷史下冊新課標
- 關于創(chuàng)意種植產(chǎn)品的調(diào)查問卷
- 穿孔鋁板吊頂施工方案
- 橋梁基礎加固施工方案
- 2025年磷礦石行業(yè)發(fā)展趨勢分析:我國磷礦石開采產(chǎn)能持續(xù)增長
- 2024年三季度報湖南地區(qū)A股每股經(jīng)營性現(xiàn)金流排名前十大上市公司
- 污水處理池改造施工方案
- 山東省青島市2025屆高三上學期部分學生調(diào)研檢測(1月)數(shù)學試題(解析版)
- 烤房土建施工方案
- 水電施工方案英文縮寫
- 2025中國船舶集團限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 土壤侵蝕與碳匯-深度研究
- 四川省2024年普通高等學校高職教育單獨招生文化考試數(shù)學試題
- 3.1公民基本權利(課件 )-2024-2025學年八年級道德與法治下冊 (統(tǒng)編版)
- GB/T 44934-2024電力儲能用飛輪儲能單元技術規(guī)范
- 教師專業(yè)發(fā)展與教學質(zhì)量的關系-深度研究
- 2025年哈爾濱鐵道職業(yè)技術學院高職單招數(shù)學歷年(2016-2024)頻考點試題含答案解析
- 地震資料解釋基礎
- 14《請幫我一下吧》說課稿-2023-2024學年道德與法治一年級下冊統(tǒng)編版
- 四川省綿陽市2025屆高三第二次診斷性考試思想政治試題(含答案)
- DB3304T 040-2023 安全生產(chǎn)技術服務機構管理規(guī)范
評論
0/150
提交評論