符號表的基本操作

2021-07-23 17:56:48 字數 1593 閱讀 5774

/**符號儲存結構定義**/

typedef struct symbol

symbol;

/**型別結構定義**/

typedef struct typedef

type;

/**資料型別編碼**/

enum e_typecode

;/**儲存型別**/

enum e_storageclass

;type char_pointer_type, //字串指標

int_type, //int型別

default_func_type; //預設函式型別

stack global_sym_stack, //全域性符號棧

local_sym_stack; //區域性符號棧

/**符號的登入**/

/**將符號放在符號棧裡

v: 符號編號

type: 符號資料型別

c: 符號關聯值

**/symbol *sym_direct_push(stack*ss,int v,type *type,int c)

/**將符號放在符號棧中,動態判斷是放入全域性符號棧還是區域性符號棧

v: 符號編號

type: 符號資料型別

r: 符號儲存型別

c: 符號關聯值

**/symbol *sym_push(int v,type *type,int r,int c)

return ps;

}/**

將函式符號放入全域性符號表中

v: 符號編號

type: 符號資料型別

**/symbol *func_sym_push(int v,type *type)

/**變數符號插入

**/symbol *var_sym_put(type *type,int r,int v,int addr)

else if(v&&(r&sc_valmask)==sc_global) //全域性變數

//字串常量符號

return sym;

}/**

將節名稱放入全域性符號表

sec:節名稱

c: 符號關聯值

**/symbol *sec_sym_put(char *sec ,int c)

/**符號的刪除

彈出棧中符號直到棧頂符號為'b'

ptop:符號棧棧頂

b: 符號指標

**/void sym_pop(stack *ptop,symbol *b)

stack_pop(ptop);

s=(symbol *)stack_get_top(ptop);

}}/**

符號的查詢

**//**

查詢結構定義

v:符號編號

**/symbol *struct_search(int v)

/**查詢識別符號

v:符號編號

**/symbol *sym_search(int v)

邏輯符號表

邏輯符號表 跳轉到 導航,搜尋 在邏輯中,經常使用一組符號來表達邏輯結構。因為邏輯學家非常熟悉這些符號,他們在使用的時候沒有解釋它們。所以,給學邏輯的人的下列 列出了最常用的符號 它們的名字 讀法和有關的數學領域。此外,第三列包含非正式定義,第四列給出簡短的例子。要注意,在一些情況下,不同的符號有相...

數學符號表

符號 名稱定義 舉例讀法 數學領域 等號y xy1 1 2 等於所有領域 不等號x y xy 不等於 所有領域 嚴格不等號 xyx3 4 5 4 小於,大於 序理論 不等號x y x yx 3 4 5 5 5 4 5 5 小於等於,大於等於 序理論 加號 4 6 表示 4 加 6。2 7 9加算術 ...

核心符號表

linux核心為了實現模組化,需要提供乙個公共的核心符號表,它包含了所有的全域性核心項 函式以及變數 的位址。當模組載入到核心中後,它所匯出的任何符號都將成為核心公共符號表的一部分。核心模組只需要實現自己的功能而無需匯出任何符號,但這樣其他模組將無法使用該模組的功能,乙個新的模組可以使用自己其他模組...