是否有像 pygccxml 一样的 Python Clang 包装器来包装 GCC-XML?

2024-04-04

很长一段时间以来,我一直在使用 pygccxml 来解析和内省我的 C++ 源代码:它帮助我在构建过程中进行一些巧妙的代码生成。

最近我读了很多关于 LLVM 堆栈的好处,特别是 LLVM Clang 解析器给 C++ 编译带来的好处。我现在想知道 Clang 是否有任何 Python 接口,以便我可以使用它作为我现有的一些代码生成任务的基础?


经过进一步挖掘,我发现在LLVM 2.7 版本 https://llvm.org/svn/llvm-project/llvm/tags/cremebrulee/cremebrulee-52/docs/ReleaseNotes.html可能会有一些有用的事情的开始:

在 LLVM 2.7 时间范围内,Clang 团队做出了许多改进......

CIndex API 和 Python 绑定:Clang 现在包含 C API 作为 CIndex 库的一部分。尽管我们将来会对 API 进行一些更改,但它的目的是保持稳定,并且是为外部项目使用而设计的。有关更多详细信息,请参阅 Clang doxygen CIndex 文档。 CIndex API 还包括一组初步的 Python 绑定。

我不确定这在实践中有多有用,当然它看起来可能是构建基于 LLVM 的 pygccxml 等效项的基础,但它本身并不是这样一个库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有像 pygccxml 一样的 Python Clang 包装器来包装 GCC-XML? 的相关文章

随机推荐

  • 反转博客条目和评论的显示顺序,Ruby on Rails

    我是 Rails 新手 所以可以在这里使用一些帮助 我已经按照几个教程创建了一个博客 其中包含评论 甚至还有一些 AJAX 花哨的内容 但我仍然坚持一些我希望很简单的事情 博客和评论的默认显示是首先列出最旧的 我如何反转它以在顶部显示最新条
  • 如何截断 UITextView 内容以适应缩小的尺寸?

    我真的很难理解这个问题 正如标题所示 我在 iPhone 应用程序的视图上有多个 UITextView 我以编程方式创建它们并成功地用文本填充该文本视图 但在某些情况下 我放入视图中的文本占用的空间比我为其分配的框架更多 在这种情况下 我希
  • 为面向对象的 C++ 代码开发 C 包装 API

    我正在寻求开发一组 C API 它们将围绕我们现有的 C API 来访问我们的核心逻辑 用面向对象的 C 编写 这本质上是一个粘合 API 允许其他语言使用我们的 C 逻辑 有哪些好的教程 书籍或最佳实践介绍了将 C 封装到面向对象的 C
  • PHP zipArchive 类的大小限制?

    我正在 PHP 中创建一个 zip 文件供用户下载 我没有从 PHP 或检查 zipArchive 类的 GetStatusString 函数中得到任何错误 但是 如果我将一些文件放入存档中 那么当我尝试打开它时 我会收到错误 压缩的 zi
  • 如何在 Ansible playbook api 中设置“--limit”选项

    我正在编写 python 脚本来运行 ansible playbook 使用 Ansible 2 4 2 0 据我所知有一个选择 limit 这可以限制 Ansible 在特定主机上的运行 例如 这是 etc ansible hosts t
  • 使用 cblas 库时出现“对‘cblas_ddot’的未定义引用”

    我正在测试 cblas ddot 我使用的代码来自link https stackoverflow com questions 14470799 calling ddot function in blas library我将其修复为 inc
  • 为什么当我添加产品图像代码时不支持“产品名称”并且“列“产品名称”不允许为 NULL;SQL 语句:”[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 i am not add any null in productName but error org hibernate exception
  • 用户输入是否进入控制器或模型?

    现在我已经拆分了模型 但我的控制器和视图仍然组合在一个 12k 行文件中 我一直在寻求为此创建一个真正的 MVC 系统 拆分视图 但是在寻找要拆分的内容时 我注意到我的控制器正在执行大量可能属于模型的工作 例如 假设我有 if isset
  • IE7 一段时间后停止发出网络请求

    我们的 asp net 系统是一个更大系统的一部分 它是通过这个更大的系统从 javascript 启动的 该系统执行 window open 调用来打开一个新窗口 此外 身份验证数据等通过加密的查询字符串参数传递到我们的系统 当使用 IE
  • Windows - 使用 perl 监视目录中是否有新文件删除/创建

    寻找一种方法来监视目录中新文件的创建或删除 因此 如果我有一个文件夹 c temp 并且在其中复制 创建了 abc txt 我需要一个事件或其他内容 以便我可以拾取该文件然后处理它 另外 我想持续监控这个文件夹 我怎样才能做到这一点 我正在
  • 使用 AVAudioRecorder 看似随机的文件损坏(有时文件无法播放) - iOS

    在我目前正在开发的应用程序中 我或多或少遇到了障碍 在应用程序中 您可以进入一个视图 该视图在标准表格视图中列出所有本地保存的音频文件 从这里 您可以单击它们来播放它们 或者点击下面的录制按钮来制作新的录音 该录音随后会自动保存到应用程序沙
  • Android:Listview的弹跳到scrollview

    有什么方法可以将ListView的弹跳效果添加到常规滚动视图中吗 我所说的弹跳是指当您到达列表底部时类似橡皮筋的效果 在android中为listview添加效果反弹 Step 1 在com base view包中创建新文件BounceLi
  • 在 vaadin 8 中将文本复制到剪贴板

    我想问如何在 vaadin 8 java web 应用程序中正确地将一些文本复制到剪贴板 我找到了适用于 Chrome 和 IE 的解决方案 但不适用于 Firefox Firefox 总是提示 错误 document execComman
  • JqG​​rid 单元格中的选择框

    我试图让选择框位于特定的单元格中 我的复选框显示得很好 但选择框没有显示 list5 jqGrid datatype local width 100 height 100 colNames Universe1 Connect String1
  • 从更高的时间范围获取历史值

    我构建了一个自定义指标 并使用蜡烛顶部的点绘制了它们 当一个点与另一个点满足特定标准时 我会绘制一条连接它们的趋势线 这样可行 我想做的是从更高的时间范围增加这些线 因为我通常在 5m 上进行交易 意思是 如果每日时间范围内的这些点符合标准
  • jquery加载大数据

    我有一个返回数据的 Web 服务 数据集相当大 可能有 600 行 20 列 在 Jquery 代码中将此数据加载到 html 表中最快最有效的方法是什么 我尝试通过循环返回的数据并在字符串中创建表 DOM 来创建表 html 但循环部分非
  • 遵循 JSON-LD API 中的所有链接

    假设我想使用一个返回 JSON LD 的 API 并跟踪所有链接 我正在尝试Hydra API 演示 http www markus lanthaler com hydra api demo 但它应该适用于所有 JSON LD API 而不
  • ListView 中的 WPF ListView

    我确信我错过了一些简单 明显的东西 但我似乎无法在 ListView 中绑定 ListView 的数据
  • Java 中的 Thread.Sleep 替代方案

    有人告诉我使用Thread Sleep 有时 人们希望在同步方法的操作循环中设置一些时间间隔 这是一个糟糕的解决方案 另一方面 我有两个不同的线程 它们在程序运行期间处于活动状态 还有一个共享对象 当我在该共享对象中使用 Object wa
  • 是否有像 pygccxml 一样的 Python Clang 包装器来包装 GCC-XML?

    很长一段时间以来 我一直在使用 pygccxml 来解析和内省我的 C 源代码 它帮助我在构建过程中进行一些巧妙的代码生成 最近我读了很多关于 LLVM 堆栈的好处 特别是 LLVM Clang 解析器给 C 编译带来的好处 我现在想知道