Introspector/GccCpp
外觀
使用 g++ 編譯 gcc 的目的是為了能夠從編譯器直接獲取有關樹的資訊。目前,對樹資料結構的訪問沒有像預期那樣緊密地封裝起來。透過使用 c++ 編譯器,我們可以監控對樹節點的所有讀寫訪問。這樣我們就可以隔離它們的使用方式。
然後我們應該能夠重建一個更好、更有文件記錄的樹介面。
我嘗試過使用 java 編譯 gcc 原始碼,但它不支援運算子過載,並且需要你重新設計所有型別的東西。
在這裡,我為所有成員引入了智慧指標。以及一個用於直接值的整數包裝器。
在這一點上,位域不再被最佳化。
下一步將是將原始樹定義作為內部儲存包含進來,並使用包裝器作為公共介面。
我還將中心樹聯合體替換為基類。
使用類而不是聯合體的想法是
當我們重構完部分程式碼後,就不需要使用聯合體了。使用虛擬基類和繼承將消除對它們的需要。
我們需要對模型進行多次迭代,才能使 gcc 使用 c++ 編譯的後端執行。它肯定會遇到一些批評,所以我們會在準備好之前保留這些頁面。
這裡提供了合併的標頭檔案 Introspector/GccCpp/mytypes.h]
這裡是經過修改的樹標頭檔案 Introspector/GccCpp/tree.h
這裡是經過修改的 rtl 標頭檔案 Introspector/GccCpp/rtl.h
這是我目前的補丁 : Introspector/GccCpp/patch.diff