91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

一個小型的編譯器設計,是哈工大計算機專業(yè)必修課《編譯原理》的課程設計。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?

#define?HANG_NUM?121
#define?AC_LIE?38
#define?GO_LIE?16
#define?MAX_NUM?1000
#define?KEY_NUM?11

using?namespace?std;

struct?expression{??//表達式
????string?left;
????int?left_num;
????string?right[15];
????int?num;
????expression(){
????????num?=?0;
????}
};
struct?Word_code?{??//讀入單詞
????string?value;
????int?num;
????bool?ts;
};
expression?exp[100];
int?exp_num?=?0;??//表達式數目

struct?Sym_tab{????//符號表
????string?id;
????int?type;???????//0char?1int?2double
????int?width;
????int?offset;
????bool?isarray;
????string?inside;
????Sym_tab(){
????????inside?=?““;
????}
};
Sym_tab?stable[100];
Sym_tab?Typ;???//臨時符表號
int?off_num?=?0;???//當前偏移量
int?stnum?=?0;???//符號表數量
string?gra_word[30];???//臨時單詞

int?temp_num?=?0;????//臨時變量數目
int?str_num?=?0;????//字符串常量數目
int?fag_num?=?0;????//跳轉標號數目

struct?Four_ex{???//四元式
????string?op;
????string?arg1;
????string?arg2;
????string?result;
????string?fag;
????Four_ex(){
????????fag?=?““;
????}
};
Four_ex?fex[500];
int?fex_num?=?0;????//四元式數目
struct?NUM{
????string?addr;
????int?type;
????string?off;
};
NUM?tnumber;???//臨時數字
NUM?NA[50];
int?na_num=0;
NUM?cc;
NUM?T[50];
int?T_n?=?0;
NUM?F[50];
int?F_n?=?0;
NUM?E[50];
int?E_n?=?0;
NUM?AR;

string?ROP?=?““;
int?Bfalse[50];
int?Btrue[50];
int?Bnum?=?-1;
int?Slist[50];

struct?Judge{??//布爾表達式
????string?E1;
????string?ROP;
????string?E2;
};
Judge?B;

int?action[HANG_NUM][AC_LIE];
int?go_to[HANG_NUM][GO_LIE];
stack?state_stack;
stack?word_stack;

string?acode[500];
string?adata[50];
int?cnum?=?0;
int?dnum?=?0;

string?keyword[KEY_NUM]?=?{“main“?“char“?“int“?“double“?“if“?“else“?“while“?“read“?“write“?“func“?“endl“};

int?keyjudge?(string?word);??//判斷保留字
void?exp_in?();??//表達式讀入
void?table_in?();??//分析表讀入
void?gra_analy?();??//語法分析+語義分析
void?word_analy();??//詞法分析
void?sema_out?();??//語義分析結果輸出
void?asm_data();???//代碼生成
void?asm_code();??//代碼生成
void?merge();???//代碼合并

int?Code_pos?=?0;??//代碼讀入位置

int?main()
{
????word_analy();
????exp_in();
????table_in();
????gra_analy();
????sema_out();
????asm_data();
????asm_code();
????merge();
????return?0;
}
void?exp_in?(){
????ifstream?input;
????input.open(“grammar/grammar.txt“);
????string?str;
????int?num;
????while?(input?>>?num?>>?str){
????????exp[exp_num].left_num?=?num;
????????exp[exp_num].left?=?str;
????????string?left?=?str;
????????while?(input?>>?str){
????????????if?(str?==?“->“)?continue;
????????????if?(str?==?“|“){
????????????????exp_num++;
????????????????exp[exp_num].left?=?left;
????????????????exp[exp_num].left_num?=?num;
????????????????continue;
????????????}
????????????if?(str?==?“@“){
????????????????exp_num++;
????????????????break;
????????????}
????????????exp[exp_num].right[exp[exp_num].num++]?=?str;
????????}
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-12-15?19:21??小型編譯器的設計(C語言實現)\
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\asm\
?????文件????????1782??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\asm\asm_code.txt
?????文件?????????166??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\asm\asm_data.txt
?????文件????????1037??2013-05-04?17:27??小型編譯器的設計(C語言實現)\編譯器\asm\begin.txt
?????文件????????2637??2013-05-04?17:31??小型編譯器的設計(C語言實現)\編譯器\asm\final.txt
?????文件?????????146??2013-05-04?00:01??小型編譯器的設計(C語言實現)\編譯器\asm\middle.txt
?????文件????????5778??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\asm_result.asm
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\bin\
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\bin\Debug\
?????文件?????1147364??2013-05-04?18:06??小型編譯器的設計(C語言實現)\編譯器\bin\Debug\編譯器.exe
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\grammar\
?????文件???????22257??2013-04-07?00:02??小型編譯器的設計(C語言實現)\編譯器\grammar\action.txt
?????文件????????9549??2013-04-07?00:04??小型編譯器的設計(C語言實現)\編譯器\grammar\goto.txt
?????文件?????????692??2013-04-07?00:35??小型編譯器的設計(C語言實現)\編譯器\grammar\grammar.txt
?????文件?????????898??2013-05-02?20:24??小型編譯器的設計(C語言實現)\編譯器\grammar\gra_list.txt
?????文件????????2605??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\grammar\gra_res.txt
?????文件???????51020??2013-05-04?18:06??小型編譯器的設計(C語言實現)\編譯器\main.cpp
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\obj\
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\obj\Debug\
?????文件??????350662??2013-05-04?18:06??小型編譯器的設計(C語言實現)\編譯器\obj\Debug\main.o
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\sema\
?????文件????????1148??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\sema\sema_res.txt
?????文件??????????89??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\sema\sybol_table.txt
?????文件?????????450??2013-05-11?20:32??小型編譯器的設計(C語言實現)\編譯器\source_code.txt
?????文件?????????450??2013-05-04?18:07??小型編譯器的設計(C語言實現)\編譯器\test1.txt
?????文件?????????240??2013-05-04?17:52??小型編譯器的設計(C語言實現)\編譯器\test2.txt
?????文件?????????260??2013-05-04?17:52??小型編譯器的設計(C語言實現)\編譯器\test3.txt
?????目錄???????????0??2013-05-20?11:12??小型編譯器的設計(C語言實現)\編譯器\word\
?????文件????????3837??2013-05-11?20:42??小型編譯器的設計(C語言實現)\編譯器\word\word_res.txt
............此處省略4個文件信息

評論

共有 條評論