資源簡介
河北工業大學2015級學長傾情推薦,完全是學長手動編程,未借鑒網絡上任何代碼,絕對能幫你實驗獲得好成績。
代碼片段和文件信息
#?include?
#?include?
#?include?
#?include?
#?define?LB?0//(
#?define?RB?1//)
#?define?PL?2//+
#?define?MI?3//-
#?define?MU?4//*
#?define?DI?5//?/
#?define?II?6
#?define?WE?7//#
#?define?e?8
#?define?t?9
#?define?f?10
#?define?BEGIN?11
#?define?END?12
#?define?IF?13
#?define?THEN?14
#?define?ELSE?15
#?define?WHILE?16
#?define?DO?17
#?define?ID?18
#?define?FCON?19
#?define?LT?20
#?define?LE?21
#?define?EQ?22
#?define?NE?23
#?define?GT?24
#?define?GE?25
#?define?PU?26
#?define?PLU?27
#?define?MIN?28
#?define?MUL?29
#?define?DIV?30
#?define?IS?31
#define?idlen?20//此編譯程序允許標識符的最大長度
#define?MAXLENGTH?10;//將最大長度設置為10
#define?MAX_KEY_NUMBER?20??//此編譯程序允許的最大關鍵字數量
#define?KEY_WORD_END?“waiting?for?your?expanding“??
char?*KeyWordTable[MAX_KEY_NUMBER]={“begin““end“?“if“?“then“?“else“?“while““do“KEY_WORD_END};//要添加關鍵字
void?analyse();
void?push(intstruct?type);
void?act(int);
int?advance(struct?type);//函數聲明
char?TOKEN[idlen];//存儲從文檔中讀取的字符串
char?*temp;
int?NXTemp?=?0;/*整型變量NXTemp指示臨時變量的編號*/
struct?type{
char?prename[idlen];//規約前的name和臨時變量的結果
char?name;
float?num;
}type1type2type11type12;//type1表示經過詞法分析后讀入的詞的類型,若是浮點型,則name有值,type2表示規約出的表達式
struct?type?a[100];//a是分析棧
int??c[100];//c是狀態棧
int?k?=?0;//分析棧指針
int?TopStat;//SLR1分析表的行
int?InpSym;//SLR1分析表的列
int?ifSpace?=?0;//讀入的是否是空格、制表等無意義字符
int?isRight?=?1;//文法正確標志位
int?endtext?=?0;//文檔結束標志位
int?signal?=?0;//判斷輸入浮點型數字時是否重復輸入小數點的標志位
int?lookup?(char?*token)
{
int?n=0;
while?(strcmp(KeyWordTable[n]?KEY_WORD_END))?//strcmp比較兩串是否相同,若相同返回0
{
if?(!strcmp(KeyWordTable[n]?token))?//比較token所指向的關鍵字和保留字表中哪個關鍵字相符
{
return?n+11;?//根據單詞分類碼表I,設置正確的關鍵字類別碼,并返回此類別碼的值
break;
}
n++;
}
return?0;?//單詞不是關鍵字,而是標識符
}
void?out(int?identifychar?*tokenFILE?*f2){
switch(identify){
case?BEGIN:
fprintf(f2“(begin%s)\n“token);
break;
case?END:
fprintf(f2“(end%s)\n“token);
break;
case?IF:
fprintf(f2“(if%s)\n“token);
break;
case?THEN:
fprintf(f2“(then%s)\n“token);
break;
case?ELSE:
fprintf(f2“(else%s)\n“token);
break;
case?WHILE:
fprintf(f2“(while%s)\n“token);
break;
case?DO:
fprintf(f2“(do%s)\n“token);
break;
case?ID:
fprintf(f2“(ID%s)\n“token);
type1.name?=?‘i‘;
strcpy(type1.prenametoken);
break;
case?FCON:
fprintf(f2“(FCON%s)\n“token);
type1.name?=?‘i‘;
type1.num?=?(float)?atoi(token);
strcpy(type1.prenametoken);
break;
case?LE:
fprintf(f2“(LE%s)\n“token);
break;
case?NE:
fprintf(f2“(NE%s)\n“token);
break;
case?LT:
fprintf(f2“(LT%s)\n“token);
break;
case?EQ:
fprintf(f2“(EQ%s)\n“token);
break;
case?GE:
fprintf(f2“(GE%s)\n“token);
break;
case?GT:
fprintf(f2“(GT%s)\n“token);
break;
case?PU:
fprintf(f2“(PU?%s?)\n“token);
break;
case?PLU:
fprintf(f2“(PLU?%s?)\n“token);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-10?20:38??河北工業大學編譯原理實驗代碼及實驗報告\
?????目錄???????????0??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\
?????文件???????12232??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\byyl?1+2+3.cpp
?????文件????????4276??2017-12-24?21:29??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\byyl.dsp
?????文件?????????547??2017-12-24?21:29??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\byyl.dsw
?????文件???????33792??2017-12-24?21:34??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\byyl.ncb
?????文件????????1324??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\byyl.plg
?????目錄???????????0??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\
?????文件???????32929??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\byyl?1+2+3.obj
?????文件??????213057??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\byyl.exe
?????文件??????224696??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\byyl.ilk
?????文件??????239144??2017-12-24?21:29??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\byyl.pch
?????文件??????500736??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\byyl.pdb
?????文件???????33792??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\vc60.idb
?????文件???????53248??2017-12-24?21:32??河北工業大學編譯原理實驗代碼及實驗報告\byyl?153123\Debug\vc60.pdb
?????文件???????11924??2017-12-24?21:42??河北工業大學編譯原理實驗代碼及實驗報告\使用說明.docx
?????文件??????177963??2019-07-10?20:42??河北工業大學編譯原理實驗代碼及實驗報告\實驗報告.docx
評論
共有 條評論