xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

南開大學的編譯原理期末作業,實現一個編譯器,可以實現將程序源代碼轉換為匯編程序然后執行

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?std;

/**********類編號***********/
#define?AC 1<<30
#define?Keyword 1 //關鍵字?
#define?Identifier 2 //標識符?
#define?Integer 3 //無符號整數?
#define?Float 4 //無符號浮點數?
#define?ConstChar 5 //字符常量?
#define?ConstString 6 //字符串常量?
#define?Operator 7 //操作符?
#define?Punctuation 8 //標點符號?
#define?Logical 9 //邏輯運算符?
#define?Relational 10 //關系運算符?
#define?Comments 0 //注釋?
#define?IllegalIdentifier -2 //非法標識符?
#define?IllegalFloat -4 //非法無符號浮點數?
#define?IllegalConstChar -5 //非法字符常量?
#define?IllegalConstString -6 //非法字符串常量?
#define?IllegalChar -8 //非法字符?

const?int?number_of_keywords?=?36; //關鍵字數目?
const?int?max_of_argv?=?20; //參數字符串最長長度?
const?int?max_of_operator?=?10; //操作符字符串最長長度
const?int?number_of_char?=?15; //文法中出現的符號數量?
const?int?number_of_grammer?=?20; //文法數量

typedef?struct?KeyWordsTrie?{ //字典樹結構體?
int?flag; //標記尾部?
struct?KeyWordsTrie*?next[26]; //下一級指針?
}?KeyWordsTrie;
typedef?struct?Quadruple?{
char?op[max_of_operator]; //操作符字符串?
char?argv1[max_of_argv]; //參數1字符串?
char?argv2[max_of_argv]; //參數2字符串?
char?result[max_of_argv]; //結果字符串?
}Quad;
typedef?struct?Word?{//單詞結構體?
int?type; //單詞類型
char?code; //單詞代號?
string?value; //單詞真值
bool?operator==(struct?Word?ot)?{ //運算符重載?判斷兩個單詞是否相等?
if(type?==?ot.type?&&?value?==?ot.value)?{
return?true;
}
return?false;
}
}Word;
typedef?struct?Symbol?{ //符號結構體?
Word?word; //單詞
int?Place; //在符號表中位置
int?TC; //真鏈
int?FC; //假鏈
int?Chain; //鏈,一般為假鏈
int?LoopStart; //循環開始
}Sym;
/*********詞法分析變量***********/
string?text; //讀入的代碼?
KeyWordsTrie?*keywords; //關鍵字字典樹?
/*********語法分析變量***********/
string?*G; //候選式內容?
char?*reduction; //第i個產生式應該被規約成的非終結符?
int?**SLR_Table;? //負數:Sj正數:Rj零:error?
char?ch_num[128]; //存儲不同字符對應的SLR(1)表的列?
/*********語義分析變量**********/
int?NXQ?=?1; //當前四元式序號?
int?Ntemp?=?0; //臨時變量個數?
vector?quadList; //四元式列表?
vector?symbol_table; //符號表?
Sym?symbols[number_of_char];//歸約符號表
void?(*func[number_of_grammer+1])();//語義處理函數指針

/**************詞法分析函數聲明**************/
KeyWordsTrie*?getKeyWordsTrie(); //構造關鍵字字典樹
bool?isKeyword(KeyWordsTrie*?const?string);//判斷當前單詞是否是關鍵字
bool?isPunctuation(const?char); //判斷當前單詞是否是標點符號
char?getcharFrom(FILE*); //從源代碼文件中獲取一個字符
void?retract(FILE*); //回退一個字符
Word?Scanner(FILE*); //詞法分析函數
/**************語法分析函數聲明**************/
void?readSLR(); //讀入語法和它的SLR(1)信息?
void?freeMemeory(); //釋放內存空間?
void?read(queue&?FILE*);//讀入要識別的句子?
void?grammar_analysis(FILE*);//語法分析總控程序?
/*************語義處理函數聲明***************/
int?NewTemp(); //申請臨時變量?
int?Entry(Word);? //查詢符號表,不存在則?
void?Gen(const?char*?int?int?int); //生成四元式?
void?BackPatch(int?int); //回填
int?Merge(int?int); //歸并真假鏈?
int?getIndex(char); //獲得全局符號

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-10?14:11??編譯原理\
?????目錄???????????0??2018-10-09?14:39??編譯原理\綜合\
?????文件???????24552??2018-10-09?13:58??編譯原理\綜合\Complier.cpp
?????文件?????2208245??2018-10-09?14:39??編譯原理\綜合\Complier.exe
?????文件??????????61??2018-10-09?13:58??編譯原理\綜合\code.in
?????文件????????5296??2018-10-09?14:40??編譯原理\綜合\complier.out
?????文件????????1008??2018-10-09?13:59??編譯原理\綜合\expressions.info
?????目錄???????????0??2018-10-09?14:38??編譯原理\詞法分析\
?????文件???????12367??2018-10-09?14:00??編譯原理\詞法分析\WordAnlayse.cpp
?????文件?????1937148??2018-10-09?14:38??編譯原理\詞法分析\WordAnlayse.exe
?????文件?????????112??2018-10-09?14:39??編譯原理\詞法分析\code.in
?????文件?????????243??2018-10-09?14:39??編譯原理\詞法分析\words.out
?????目錄???????????0??2018-10-09?13:59??編譯原理\語義分析\
?????文件???????24475??2018-10-09?13:59??編譯原理\語義分析\SemanticAnlayse.cpp
?????文件?????2136053??2018-10-09?13:59??編譯原理\語義分析\SemanticAnlayse.exe
?????文件??????????24??2018-10-09?13:59??編譯原理\語義分析\code.in
?????文件????????1008??2018-10-09?13:59??編譯原理\語義分析\expressions.info
?????文件??????490838??2018-10-09?13:58??編譯原理\語義分析\語義分析.zip
?????目錄???????????0??2018-10-09?14:00??編譯原理\語法分析\
?????文件???????16931??2018-10-09?13:59??編譯原理\語法分析\GrammarAnlayse.cpp
?????文件?????2080436??2018-10-09?14:00??編譯原理\語法分析\GrammarAnlayse.exe
?????文件???????24651??2018-10-09?13:59??編譯原理\語法分析\SLR自動生成.cpp
?????文件?????2470581??2018-10-09?14:00??編譯原理\語法分析\SLR自動生成.exe
?????文件??????????26??2018-10-09?14:00??編譯原理\語法分析\code.in
?????文件?????????124??2018-10-09?14:00??編譯原理\語法分析\data.in
?????文件???????22542??2018-10-09?13:59??編譯原理\語法分析\data.out
?????文件????????1008??2018-10-09?13:59??編譯原理\語法分析\expressions.info
?????文件????????1772??2018-10-09?13:59??編譯原理\語法分析\grammar.out
?????文件????????2002??2018-10-09?13:59??編譯原理\語法分析\if-else.info
?????文件????????1923??2018-10-09?13:59??編譯原理\語法分析\while.info
?????文件??????478963??2018-10-09?13:59??編譯原理\語法分析\語法分析.zip
............此處省略0個文件信息

評論

共有 條評論