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 已被放弃、 这个项目也被放弃了。