【精品】實驗1詞法分析

【精品】實驗1詞法分析

ID:46480780

大小:86.50 KB

頁數:10頁

時間:2019-11-24

【精品】實驗1詞法分析_第1頁
【精品】實驗1詞法分析_第2頁
【精品】實驗1詞法分析_第3頁
【精品】實驗1詞法分析_第4頁
【精品】實驗1詞法分析_第5頁
資源描述:

《【精品】實驗1詞法分析》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。

1、%1.實驗目的:通過設計調試詞法分析程序,實現從源程序中分出各種單詞的方法;加深對課堂教學的理解;提高詞法分析方法的實踐能力。%1.實驗要求:(1)掌握詞法分析的實現方法。(2)上機調試編出的詞法分析程序。(3)源程序可以從鍵盤輸入也可以事先存在文件中(4)將源程序中的各個單詞讀出后可以顯示在屏幕中也可以存在文件中(包括單詞的類別)%1.實驗題目:用C/C++語言編寫以下C/C++子集的詞法分析程序。%1.程序代碼:#includo^include#include^includeusingn

2、amespacestd;/*By舒婷廠_“*/structWORD//存單詞;{charWORDchar[100];//存串.intsign;//存類型.intid;//編號};vectoransright,answrong;vectorQ;charwords[9][10]={"VAR","INTEGER","BEGIN","END","IF","THEN","ELSE","WHILE","DO"};〃標識符charother[12]=C;〃普通符號charotherl[4][10X2,X"?","=};//遇到〈>:特殊符號情況〃由丁?編寫

3、后發(fā)現寫了太多函數,固上用聲明,函數放最下;boo1bool_ch(charx);//分割單詞的符號?intbool_word(chtir*x);//單詞?intboolnum(char*x);//整數?voidshowdetail(char*a);//符號詳細分類,后來補上的..voidGet_type(WORDa);//類型?intready_right(char*x)://是否存在過?intready_wrong(char*x);//是否存在過?boolboololh2(charxl,charx2);//是不是特殊符號?intmainO//主函數{charx

4、tlOOO];charstr[1000];//容器初始化ans_right.clear();dnswrong,clear();Q.clear();intnum_right=0,numwrong=0;inti;while(gets(x)){intlenl=strlen(x),len2;for(i=0;i=‘A'&&x[i]〈='Z')//保留字or標示符or錯誤串{str[len2++]=x[i];while(!bool_ch(x[i+l])&&i+l

5、len2]=0;intfl=readyright(str),f2=readywrong(str);boolflag二false;if(fl==-l&&f2==-l)//沒有存在過{intstrtype=boolword(str);if(str_typc)//保留字or標示符{WORDt;numright++;strcpy(t.WORDchar,str);t?sign=str_type;t?id二num_right;ans_right?push_back(t);flag=lrue;}else//錯誤串{WORDt;numwrong++;strepy(t.WORD_c

6、har,str);t.sign=str_type;t.id二num_wrong:answrong.pushback(t);}}if(fl!=-l){fl++;Q.pushback(fl);}if(flag)Q.pushback(numright);)elseif(x[i]>=0,&&x[i]<=95)//整數串or錯誤串{str[len2++]=x[i];if(i!=lenl-l){wh訂e(!bool_ch(x[i+l])&&i+l

7、=readywrong(str);boolflag=false;if(fl==-l&&f2==-l)//沒有存在過intstr_type=bool_num(str):if(str_type)//整數串WORDt;num_right++;strcpy(t.W0RD_char,str);sign=strtype;id二numright;ans_right?push_back(t);flag-true;)else//錯謀串{WORDt;num_wrong++;strcpy(t.WORDchar,str);t.sign=strtype;t?id二numwrong;ans_

8、wrong

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。