?? commondef.h
字號:
//文件說明:這個文件中包括一些在整個程序中用到的公用部分的定義
#ifndef COMMON_DEF
#define COMMON_DEF
//**********************************************************
typedef int Status;
//LL(1)分析表元素結構類型定義
typedef struct _Elem{
char notTerminals[3]; //non-terminals
char terminal; //Terminals
char replace[10]; //the string to be placed and put to the top of the analstack
int nextStep; //P or N
}Elem;
typedef Elem * LElem;
//LR(0)分析表元素結構類型定義
typedef int Type; //指示LR(0)的action動作type的類型 0:移進 1:歸約 3:分析over
typedef struct _LRElem
{
CString statusPrev; //指示前一分析棧棧頂狀態
char chInput; //輸入字符(終結符)
Type type; //MOVE_IN, DEDUCE, or ACC or NOT_SUPPORT
int nNum; //如果是移進的話,指出(status,chInput)對應的下一狀態,如果是歸約的話,指出要采用第幾條歸約規則
} LRElem;
//LR(0)的歸約規則結構類型定義
typedef struct _Regulation
{
CString left; //規則的左部
CString right; //規則的右部
} Regulation;
//LR(0)的GoTo表元素結構類型定義
typedef struct _ElemGoto
{
CString statusPrev; //分析棧的前一狀態
CString symbol; //符號棧中的棧頂符號
CString statusNext; //下一狀態
} ElemGoto;
//***********************************************************
//************************************************************
//宏定義
#define OK 0
#define FAIL -1
#define END_OF_INPUT -2 //輸入結束
#define BEGINNING_OF_INPUT -3
#define P 1 //在LL(1)中指示動作狀態為重復讀字符
#define N 2 //在LL(1)中指示動作狀態為讀下一字符
#define ACC 3 //指示分析結束
#define TABLE_LENGTH 26 //LL(1)的分析表的長度
#define ASM_CODE_LENGTH 255 //編譯到匯編碼時的每條asm code的最大長度
#define MOVE_IN 0 //指示LR(0)的action表的動作類型 ,表示移進
#define DEDUCE 1 //表示歸約
#define NOT_SUPPORT -2
//************************************************************
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -