Sealang 是 libclang 的一套改良 Python 綁定程式。

libclang」的上游維護者並沒有特別回應 對於解決 Python 3 相容性等問題的修補程式的回應、 和 API 中的重大遺漏 (例如提取字面意義 和運算符號)。

這個套件是 libclang 官方 Python 綁定的分叉、 修補以修正這些問題。

如何運作

Sealang 是一個有點討厭的 hack。libclang 是一套綁定 C++ API 的 C C++ API 綁定;然後 Python ctypes 用來包裝 C API。然而,雖然 C++ API 是相當豐富的,而 libclang 則沒有那麼豐富。

Sealang 透過提供 C++ 呼叫的 C wrappers 來彌補這個差距。 提供有用的功能。這個 C 函式庫 包裝成一個 Python C 模組,以達到傳送的目的 - 這個 C 模組 不包含外露的 Python 物件或方法,但因為它是一個 模組,底層的編譯 sealang.so檔案很容易找到。 ctypes然後用來揭露 sealang包裝函數;

在內部,Sealang 重現了 libclang API 的一些次要部分; 這些方法 (例如字串建立與操作方法) 這些方法 (例如字串的建立和操作方法) 並沒有以符號的形式公開給第三方使用。

所有這些功能都有可能被傳到上游的 到 libclang。

與 Clang 的關係

這個專案的目的是要反映目前在 Python 綁定到 libclang。本專案的版本號 版本和官方 clang 套件庫的 SVN 版本。

任何在 libclang 上游所做的變更,都會在這裡做鏡射;任何在這裡所做的變更,都會在可能的情況下推送到 libclang 上游。 所做的任何變更,在可能的情況下,都會被推送到 libclang`。

發展狀態

這個專案是為了支援 海蛇。由於 Seasnake 已經被放棄、 此專案也被放棄。

How to help