符號表是用來儲存每個符號資訊的,因為編譯器分析源程式的過程會生成很多符號的屬性,後端根據這些屬性來生成合適的指令和**的格式。
#001 //
符號表結構.
#002 //
#003 //
蔡軍生
#004 //
#005 struct symbol
#006 l;
#030
#031 struct
#032 s;
#038
#039 int value;
#040 symbol *idlist;
#041
#042 struct
#043 limits;
#046
#047 //
儲存常量的結構.
#048 struct
#049 c;
#053
#054 struct
#055 f;
#061
#062 //
全域性變數或靜態變數給出定義的段.
#063 int seg;
#064
#065 symbol alias;
#066
#067 struct
#068 t;
#076
#077 } u;
#078
#079 xsymbol x; //
後端使用的符號擴充套件。
#080 };
LCC編譯器的源程式分析 12 13
語法分析是比較複雜的處理,下面再來分析乙個例子,它的 如下 typedef unsigned short wchar t typedef wchar t wint t 第一句語句在lcc裡的處理,前面已經解釋清楚,主要生成wchar t儲存符號表裡,並且記錄這個id的型別屬性。那麼第二句是怎麼樣通過...
LCC編譯器的源程式分析 18 19
lcc編譯器的源程式分析 19 全域性函式的定義 函式定義funcdefn處理裡,已經準備好呼叫引數和引數返回,接著就是呼叫全域性函式宣告來處理。如下面的 132 宣告函式。133 cfunc dclglobal sclass,id,ty,pt 134 上面的 是處理函式全域性定義。現在就去就分析d...
LCC編譯器的源程式分析 64 符號表的結構注釋
符號表是用來儲存每個符號資訊的,因為編譯器分析源程式的過程會生成很多符號的屬性,後端根據這些屬性來生成合適的指令和 的格式。001 符號表結構 002 003 蔡軍生 004 005 struct symbol 006 l 030 031 struct 032 s 038 039 int value...