資源簡介
完整的詞法、語法、語義程序源代碼+實驗報告(實現過程),參照蔣立源的《編譯原理》

代碼片段和文件信息
/**************************************************************************************************/
//頭文件聲明
/**************************************************************************************************/
#include?
#include?
#include?
#include?
#include?
/**************************************************************************************************/
//宏定義
/**************************************************************************************************/
#define?MAX_ID_LENGTH?50???????//標識符長度
#define?MAX_OPER_LENGTH?2 ???//符號長度
#define?MAX_KEY_NUMBER?25 ???//關鍵字數目
#define?MAX_OPERATOR_NUMBER?13?//符號數目
#define?KEY_WORD_END?“ending“??//關鍵字表結束標志
//助記符
#define?BEGIN?1
#define?END?2
#define?IF?3
#define?THEN?4
#define?ELSE?5
#define?ID?6
#define?UCON????7
#define?DIGIT???71
#define?POINTER?72
#define?OTHER???73
#define?POWER???74
#define?PLUS????75
#define?MINUS???76
#define?EndState???78
#define?LT?8
#define?LE?9
#define?EQ?10
#define?NE?11
#define?GT?12
#define?GE?13
#define?IS?14
#define?PL?15
#define?MI?16
#define?MU?17
#define?DI?18
#define?LP?19
#define?RP?20
/**************************************************************************************************/
//數據結構定義
/**************************************************************************************************/
//單詞內容
union?WordContent
{
char?id[MAX_ID_LENGTH];?//標識符
float?ucon;//無符號數
char?oper[2];//單個符號
};
//單詞
struct?Word
{
int?sym;?//助記符
union?WordContent?value;//值?
}word;
//行列定位器
struct?Location
{
int?row;?//行
int?col;?//列
}location;
/**************************************************************************************************/
//全局變量聲明
/**************************************************************************************************/
char*?keyWordTable[MAX_KEY_NUMBER]={“BEGIN““END““IF““THEN““ELSE“KEY_WORD_END};//關鍵字表
char*?operatorTable[MAX_OPERATOR_NUMBER]={“LT““LE““EQ““NE““GT““GE““IS““PL““MI““MU““DI““LP““RP“};//單個符號表
//無符號數識別用
int?wnped;?//表征元素
int?CurrentState;//當前狀態
//讀寫指針
FILE*?r_fp;
FILE*?w_fp;
/**************************************************************************************************/
//函數聲明
/**************************************************************************************************/
void???initGlobal();?//初始化全局變量
void???setLocation(char?ch);//讀取了字符,定位行列
void???scanner();//掃描器
bool???ispoint(char?ch);?//判斷是否為小數點
int????lookUp(char*?token);//查詢是否為關鍵字
void???out();//輸出
void???reportError();?//報錯程序
void?LEX();?//一個無符號數的識別
int??GetChar();?//識別當前字符屬于無符號數的哪一部分、類型
void?EXCUTE(int?stateint?symbol);?//識別狀態、接受動作、狀態轉移
void?HandleError();
/**************************************************************************************************/
//主函數
/**************************************************************************************************/
void?main()
{
//初始化全局變量
in
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????10415??2014-12-24?22:31??編譯原理實驗\源程序\詞法分析程序.cpp
?????文件??????18330??2014-12-25?22:17??編譯原理實驗\源程序\語義分析程序.cpp
?????文件??????14102??2014-12-25?21:21??編譯原理實驗\源程序\語法分析程序.cpp
?????文件?????143356??2014-12-25?22:31??編譯原理實驗\詞法分析程序實驗報告.docx
?????文件?????184601??2014-12-25?22:29??編譯原理實驗\語義分析程序實驗報告.docx
?????文件?????403105??2014-12-25?22:28??編譯原理實驗\語法分析程序實驗報告.docx
?????目錄??????????0??2015-10-04?23:30??編譯原理實驗\源程序
?????目錄??????????0??2015-10-04?23:30??編譯原理實驗
-----------?---------??----------?-----??----
???????????????773909????????????????????8
評論
共有 條評論