Sealang 是一套改进的 libclang Python 绑定程序。

libclang "的上游维护者并没有特别积极地 上游维护者对解决 Python 3 兼容性等问题的补丁反应并不积极、 以及 API 中的重大遗漏(如提取字面量和运算符 和操作符)。

此软件包是 libclang 的官方 Python 绑定的分叉、 的官方绑定。

工作原理

Sealang 是一个有点恶心的黑客程序。libclang 是一套 C++ API 的 C 绑定;然后用 Python ctypes 封装 C API。 C++ API 的一套 C 绑定;然后使用 Python ctypes 对 C API 进行封装。然而,虽然 C++ API 相当丰富,而 libclang 就没那么丰富了。

Sealang 提供了 C++ 调用的 C 语言封装器,从而弥补了这一差距。 提供了有用的功能。这个 C 函数库 封装为一个 Python C 模块,用于交付目的。 不包含暴露的Python对象或方法,但由于它是一个 模块,底层的编译 sealang.so文件很容易找到。 ctypes然后用于公开 sealang封装函数;

在内部,Sealang 重现了 libclang API 的一些次要部分; 这些方法(如字符串创建和操作方法) 这些方法(如字符串创建和操作方法)没有以符号的形式公开,供第三方使用。

所有这些功能都有可能被上游的 传递给 libclang。

与 Clang 的关系

该项目旨在反映当前 Python 与 libclang 的绑定。本项目的版本号 版本号取自官方 clang 代码库的版本和 SVN 修订版。

上游对 libclang 所做的任何修改都将在此处进行镜像;此处所做的任何修改都将尽可能推送到上游的 libclang 中。 的任何更改都将尽可能推送到 libclang`。

发展状况

该项目是为支持 海蛇。由于 Seasnake 已被放弃、 这个项目也被放弃了。

如何帮助