是否有像 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? 的相关文章

  • 为什么你可以在字符串上重载 __radd__ 而不是 __rmod__ ?

    在Python中 您可以覆盖右 和左 加法运算符
  • 加载 IPython 笔记本时出错

    一旦我用 Jupyter 打开笔记本文件 它要求我转换文件 我就再也无法在标准 IPython 笔记本中打开它了 我收到以下错误 Error loading notebook Bad Request 2014 12 21 04 13 03
  • c++11 中的 std::thread 问题

    我在尝试从标准模板库编译具有多线程的程序时遇到一些麻烦 当我尝试编译以下程序时 它返回一个晦涩的错误 include
  • popen2()在c中如何工作?

    我尝试使用管道 叉子和 dup 在我的程序中执行 md5sume 命令 我发现总和代码运行成功 但我无法理解某些代码行 这是我的代码 int infp outfp char buf 128 if popen2 md5sum infp out
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 使用 MinGW 链接到 Python

    我不想创建一个嵌入Python解释器的跨平台程序 并用MinGW编译它 但是 Python 二进制发行版没有提供 MinGW 链接的库 仅python32 lib对于 Visual C 并且 Python 源包不提供使用 MinGW 编译的
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 如何在 Python 中将 .docx 转换为 .txt

    我想将大量 MS Word 文件转换为纯文本格式 我不知道如何在 Python 中做到这一点 我在网上找到了以下代码 我的路径是本地路径 所有文件名都类似于 cx xxx 即 c1 000 c1 001 c2 000 c2 001 等 fr
  • 如何使用 Caliburn.Micro MVVM 将焦点设置到控件

    我有一个表单 我想在发生某些用户操作时将焦点设置到文本框 我知道 MVVM 的处理方式是绑定到 VM 属性 但是 TextBox 没有允许这种情况发生的属性 从虚拟机设置焦点的最佳方法是什么 我创建了一个 IResult 实现 可以很好地实
  • 允许 .NET WebApi 忽略 DOCTYPE 声明

    我正在尝试通过 WebApi 方法将 XML 反序列化为对象 我有以下课程 XmlRoot IsNullable false public class MyObject XmlElement Name public string Name
  • Python:Scrapy返回元素后面的所有html,而不仅仅是元素的html

    我遇到了 Scrapy 行为异常的问题 几个月前我编写了一个简单的函数 它返回给定 xpath 处的项目列表 def get html response path sel Selector text response page source
  • 我可以在C中直接比较int和size_t吗?

    我可以比较一个int and a size t像这样的变量 int i 1 size t y 2 if i y Do something 或者我必须输入其中之一 只要满足以下条件 它就是安全的int为零或正数 如果它是负数 并且size t
  • 选择要重写哪个基类的方法

    鉴于以下情况 class Observer public virtual void Observe Parameter p 0 template
  • gcc 中的“假设”子句

    gcc 最新版本 4 8 4 9 是否有类似于以下的 假设 子句 assume 内置icc支持吗 例如 assume n 8 0 从 gcc 4 8 2 开始 gcc 中没有 assume 的等效项 我不知道为什么 这会非常有用 马夫索建议
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 使 flake8 区分未定义函数和星型导入

    我有一个相当大的项目 我试图在发布之前清理它 但是当我运行 flake8 时 我得到了大量的 F405
  • Python中矩阵元素的双重求和

    基于下面的简化示例 我想在我的代码中 from sympy import import numpy as np init printing x y symbols x y mat Matrix x 1 1 y X 1 2 3 Y 10 20
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • 当另一个进程使用 std::fstream 写入文件时从文件读取[重复]

    这个问题在这里已经有答案了 我需要从文件中逐行读取 它是由 std getline 完成的 另一个进程的问题是一直向其附加数据 然后我需要读取新行 例如 文件一开始包含10行 我的程序读取了10行 那么我的程序应该等待 过了一会儿 另一个进
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include

随机推荐

  • 反转博客条目和评论的显示顺序,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 编译带来的好处 我现在想知道