資源簡介
里面包括了哈工大威海,編譯原理實驗的全部源碼和報告
有詞法分析
語法分析
語義分析和中間代碼生成
VC 6.0編寫
代碼片段和文件信息
#include??
#include???
#include???
#include????
using?namespace?std;??
#define??MAX?5????????
char?ch?=‘?‘;?????
string?keyword[5]={“do““else““if““while“?“then“?};
?????????????????//?常見關鍵字數組?只用了部分
//************************關鍵字的處理過程****************************************
int?isKeyWord(string?c){????????
???int?i;
???for(i=0;i ??????if(keyword[i].compare(c)==0)
??return?1;??//與關鍵字數組中用相同的就返回真,否則假
???????}?
????return?0;
}
//************************字母的處理過程****************************************
int?isAlpha(char?c)?{??????
????if(((c<=‘z‘)&&(c>=‘a‘))||((c<=‘Z‘)&&(c>=‘A‘)))?
return?1;?//比較字母的ASCII碼值,在大小寫范圍內,返回真,否則假。
????else?
return?0;
}
//************************數字的處理過程****************************************
int?isNum(char?c){????????
?????if(c>=‘0‘&&c<=‘9‘)?
?return?1;?//比較字母的ASCII碼值,在0-9范圍內,返回真,否則假。
?????else?
?return?0;
}
//************************運算符處理過程*******************************************
//?過程中指針總是向前看一個,決定當前的各種單詞是否結束,或是根據后邊的輸入消除當前字符二義性。
void?caculate(FILE?*fpinchar?*out_fin){
ofstream?out(out_finios::out);?//文件token.txt輸入內存
????string?arr=““;??????????????????????????//字符串????
?while((ch=fgetc(fpin))!=EOF)
?{????????
?????????arr=““;?????????????????????????
?????????if(ch==‘?‘||ch==‘\t‘||ch==‘\n‘)
?{
?}???//空格,縮進,換行,均不做操作???
?????????else?if(isAlpha(ch))
?{????????????????????//若有字符
??????????????while(isAlpha(ch)||isNum(ch))
{??????//當有字符或數字的時候,循環
????????????????????arr=arr+ch;???????????
????????????????????ch=fgetc(fpin);?????????
??}
fseek(fpin-1LSEEK_CUR);????????//循環結束后,重定位流指針從當前位置左移一位。開始判斷新的輸入是什么類型?
if?(isKeyWord(arr))
{
out< }????//若是關鍵字,則輸出類型1,關鍵字?
else??out< ???????????????}
?else?if(isNum(ch)){??
??int??i=1;//若是數字
??????????????????while(isNum(ch))//?數字?||?.?&&(得到一個字符||字符是e||輸入是e)
??{???
??arr+=ch;
??ch=fgetc(fpin);
??i++;
??}
?????????????????//?fseek(fpin-iLSEEK_CUR);??//?指針左移3
??????????????????out< ?????????????}
???????else?switch(ch){??????????
???????????????case‘+‘:
???????????????case‘-‘?:
???????????????case‘*‘?:
???????????????case‘=‘?:
???????????????case‘/‘?:out< ???????????????case‘(‘?:
???????????????case‘)‘?:
???????????????case‘[‘?:
???????????????case‘]‘?:? ???
???????????????case‘;‘?:
???case‘#‘?:
???????????????case‘.‘?:
???????????????case‘‘?:
???????????????case‘{‘?:
???????????????case‘}‘?:out< ???
??/*?case?‘“‘:{
????string?string1=““;
do?
{
?string1+=ch;
ch=fgetc(fpin);
?}?while?(ch!=‘“‘);//循環得到?““
string1+=ch;??????????
out< }
br
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\
?????目錄???????????0??2012-05-23?02:04??編譯原理實驗\2\
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗\
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗2\
?????文件?????2712032??2012-05-23?00:35??編譯原理實驗\編譯原理實驗2.zip
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\
?????文件??????577621??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\token1.exe
?????文件??????826032??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\token1.ilk
?????文件??????253033??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\token1.obj
?????文件?????2178064??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\token1.pch
?????文件?????1147904??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\token1.pdb
?????文件???????74752??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\vc60.idb
?????文件??????110592??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\Debug\vc60.pdb
?????文件?????????597??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token.txt
?????文件????????6736??2011-07-10?11:09??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token1.cpp
?????文件????????4284??2011-07-09?22:03??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token1.dsp
?????文件?????????520??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token1.dsw
?????文件???????41984??2012-05-18?16:45??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token1.ncb
?????文件???????48640??2012-05-18?16:45??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token1.opt
?????文件????????1300??2011-07-09?22:02??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\token1.plg
?????文件??????????98??2011-06-02?23:57??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗一,token1\tokentest.txt
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\
?????目錄???????????0??2012-05-24?22:07??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\
?????文件?????????172??2011-07-11?11:39??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\string.txt
?????文件?????????114??2011-07-11?11:38??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\test.txt
?????文件?????????296??2011-07-11?11:39??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\token.txt
?????文件???????82944??2011-07-11?11:34??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\vc60.idb
?????文件??????110592??2011-07-11?11:34??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\vc60.pdb
?????文件??????610387??2011-07-11?11:34??編譯原理實驗\編譯原理實驗2\編譯原理實驗上一屆的\實驗三,YUYI1\Debug\YUYI1.exe
............此處省略86個文件信息
- 上一篇:Eazfuscator.NET 2019.1+注冊機
- 下一篇:電磁兼容測試培訓教材
評論
共有 條評論