編譯原理——語法制導翻譯1.2

語法樹的構造

語法樹是分析樹的壓縮形式。在語法樹中,運算符和關鍵字不再是葉節(jié)點,而是作為內部節(jié)點的父節(jié)點。

用以下函數建立帶有二元運算符的表達式語法樹節(jié)點,每個函數都返回一個指向新建節(jié)點的指針:

1.mknode(op,left,right)。它建立一個標記為op的運算符節(jié)點,其兩個域left和right是指向其左右運算對象的指針。

2.mkleaf(id,entry)。它建立標記為id的標識符節(jié)點,其域entry是指向該標識符在符號表中的相應表項的指針。

3.mkleaf(num,val)。它建立標記為num的數節(jié)點,域val保存該數的值。

表達式的無環(huán)有向圖(directed acyclic graph,簡稱dag)可以識別表達式中的公共子表達式。代表公共表達式的節(jié)點具有多個“父節(jié)點”。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容