資源簡介
實現詞法,語法,語義翻譯器,程序中包含轉移函數,生成四元式

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?S?0;
#define?R?1;
#define?ACC?2;
#define?AND?0
#define?BEGIN?1
#define?DO?2
#define?ELSE?3
#define?END?4
#define?FOR?5
#define?IF?6
#define?NOT?7
#define?OR?8
#define?PROG?9
#define?READ?10
#define?THEN?11
#define?TO?12
#define?WHILE?13
#define?WRITE?14
#define?VAR?15
#define?ID?16
#define?INTEGER?17
#define?REAL?18
#define?PLUS?19
#define?MINUS?20
#define?MULTI?21
#define?RDIV?22
#define?EQ?23
#define?LT?24
#define?GT?25
#define?LE?26
#define?GE?27
#define?NE?28
#define?LR_BRAC?29
#define?RR_BRAC?30
#define?COMMA?31
#define?ASSIGN?32
#define?SEMIC?33
#define?COLON?34
#define?TRUE?35
#define?FALSE?36
#define?NUMBER?37
#define?LS_BRAC?38
#define?RS_BRAC?39
#define?ARRAY?40
#define?OF?41
#define?PROC?42
#define?CALL?43
#define?RETURN?44
#define?VOID?45
#define?ENDING?46
#define?P?47
#define?D?48
#define?List?49
#define?SS?50???//from?S
#define?Sp?51??????//from?S‘
#define?SB?52
#define?Lp?53
#define?T?54
#define?L?55
#define?Left?56
#define?PList?57
#define?E?58
#define?ET?59
#define?EEp?60
#define?EF?61
#define?ETp?62
#define?B?63
#define?BE?64
#define?BT?65
#define?BEp?66
#define?C?67
#define?EList?68
#define?M_d?69
#define?M_bool?70
#define?M_con?71
#define?N_con?72
#define?M_for?73
#define?wordnum?47;
using?namespace?std;
typedef?int?type;///屬性
typedef?int?state;///狀態
typedef?int?pos;///中間變量位置
typedef?struct{
????string?type;///“real“/“integer“
????int?int_val;
????double?real_val;
}number_val;
typedef?struct{
????type?typ;///詞的屬性
????int?pos;///變量位置
????void?*?ptr;///指向中間變量屬性
????number_val?*?num_ptr;///指向數字屬性值
}SIGN;
///---------LexicalAnalyzer------------
/*typedef?struct{
????char?name[30];
????char?type[10];
????int?value;
}id;*/
//id?variable[200];
int?int_cnt=0;
int?int_buf[1000];
int?real_cnt=0;
double?real_buf[1000];
int?cnt=0;///統計句子長度
SIGN?buff[200];///讀入句子緩沖區
int?id_cnt=0;///記錄變量數量
string?id_name[1000];///記錄變量名
///---------SyntaxAnalyzer-------------
typedef?struct{
????string?pro;///產生式
????int?left;///產生式左邊
????int?num;///產生式右邊符號數
}production;
state?state_stak[1000];///存放狀態的棧
void?*?ptr_stak[1000];///存放對應符號棧的中間變量具體是哪個的棧
SIGN?sign_stak[1000];///存放符號的棧
int?top=0;
//SIGN?buff[50];///緩沖區
int?buff_len=0;///輸入句子長度
state?action[141][47][2];///語法分析表
production?prod[60];///產生式
state?got[141][30];///轉移函數
///---------SemanticAnalyzer-----------
///---------assignment-----------------
typedef?struct{
????string?type;///(“real““integer““array“)
????string?array_type;///數組類型
????int?length;///數組長度
}var_type;
typedef?struct?id_INFO{
????string?id;///變量名
????var_type?type;///變量類型
????int?addr;///變量地址
????id_INFO?*?next_id;///指向hash表中下一個變量
}id_info;
id_info?*?id_list[211];
typedef?struct{
????string?name_list[10];///一次支持最多10個變
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????799758??2015-05-21?12:45??SemanticAnalyzer_v2\bin\Debug\SemanticAnalyzer_v2.exe
?????文件????????645??2015-05-21?12:45??SemanticAnalyzer_v2\LexcialOut.txt
?????文件?????145143??2015-05-21?12:45??SemanticAnalyzer_v2\main.cpp
?????文件?????309727??2015-05-21?12:45??SemanticAnalyzer_v2\obj\Debug\main.o
?????文件???????1142??2015-05-14?22:41??SemanticAnalyzer_v2\SemanticAnalyzer_v2.cbp
?????文件????????337??2015-05-21?12:35??SemanticAnalyzer_v2\SemanticAnalyzer_v2.depend
?????文件???????2107??2015-05-17?22:50??SemanticAnalyzer_v2\SemanticAnalyzer_v2.layout
?????文件????????277??2015-05-21?12:45??SemanticAnalyzer_v2\SemanticOut.txt
?????文件???????2068??2015-05-21?12:45??SemanticAnalyzer_v2\SyntaxOut.txt
?????文件????????235??2015-05-21?12:21??SemanticAnalyzer_v2\test.txt
?????文件????????388??2015-05-20?21:07??SemanticAnalyzer_v2\test_all.txt
?????目錄??????????0??2015-05-21?12:45??SemanticAnalyzer_v2\bin\Debug
?????目錄??????????0??2015-05-21?12:58??SemanticAnalyzer_v2\obj\Debug
?????目錄??????????0??2015-05-14?22:42??SemanticAnalyzer_v2\bin
?????目錄??????????0??2015-05-14?22:42??SemanticAnalyzer_v2\obj
?????目錄??????????0??2015-05-21?12:58??SemanticAnalyzer_v2
-----------?---------??----------?-----??----
??????????????1261827????????????????????16
評論
共有 條評論