LCC編譯器的源程式分析 64 符號表的結構注釋

2021-04-16 07:45:23 字數 909 閱讀 1890

符號表是用來儲存每個符號資訊的,因為編譯器分析源程式的過程會生成很多符號的屬性,後端根據這些屬性來生成合適的指令和**的格式。

#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...