如何使用 Clang 从 C++ 字符串生成 AST?

2024-02-12

我正在尝试使用 Clang 操作 C++ 源代码,但在发现 API 时遇到问题。

我想获取一串 C++ 源代码并从中生成 AST;就像是:

auto myAst = clang::parse("auto x = 1 + 1;"); 

有一个最小的工作示例吗?


您可以尝试下一个代码:

std::unique_ptr<ASTUnit> AST(tooling::buildASTFromCode("auto x = 1 + 1;"));
TranslationUnitDecl *DC = AST->getASTContext().getTranslationUnitDecl();
if (DC) {
   llvm::errs() << "---------dump begin----------\n";
   DC->dump();
   llvm::errs() << "---------dump end----------\n";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Clang 从 C++ 字符串生成 AST? 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • XSD 嵌套元素

  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 有什么好的 PDF 导出过滤器可以与 Fast Report 配合使用吗?

    我最近发现 Fast Report 的 PDF 导出过滤器导出的 PDF 在 Mac OSX iOS 和 Android 设备中无法正确显示 Fast Report 告知他们的 pdf 实现仅支持 Windows 他们无法透露他们正在开发的
  • 选择/取消选择特定下拉选项时切换隐藏的 div

    大家好 我有一个简单的问题 对于有 Jquery 和 Javascript 经验的人来说应该很容易 我希望在表单中的下拉字段下方有一个隐藏的 div 当选择某一特定选项时 将显示隐藏的 div 我还希望它在选择任何其他选项时消失 我将此用作
  • 错误:com.google.android.gms.ads 包不存在

    我的 Android 应用程序运行良好 API 15 直到我想包含 Google 广告 虽然 google play services jar 位于我的项目库中并且包含 com google android gms ads 但调试器会出现错
  • Spring会将内容保存在内存中还是存储在磁盘中?

    当从浏览器上传一个大小为 100 MB 的文件时 Spring 会将整个数据保留在内存中或暂时存储在磁盘中 在阅读了 Spring 文档之后 我知道如何设置临时目录 但我想知道如果我不提及这一点会发生什么 我有以下声明
  • 多次加密密码真的会更安全吗? [复制]

    这个问题在这里已经有答案了 可能的重复 双重哈希 密码是否比仅哈希一次更安全 https stackoverflow com questions 348109 is double hashing a password less secure
  • 资产文件project.assets.json没有“net6.0”的目标 - VS2022

    就在几天前 更新到 Visual Studio Community 2022 v17 2 从 v17 1 6 后出现此错误 错误NETSDK1005 资产文件 C XXXXXX Web obj project assets json 没有
  • 底部导航视图:更改应用程序启动时默认突出显示的选项卡

    如上所示 我有这个按钮导航视图 当我启动我的应用程序时 默认情况下我的 类别 选项卡会突出显示 但我想在启动我的应用程序时突出显示我的 主页 选项卡 任何人都可以帮助我摆脱它 尝试这个用法setSelectedItemId 你的方法Bott
  • 字符串初始值设定项和只读部分

    假设我有一个数组 函数的局部数组 和一个指针 char a aesdf and char b asdf 我的问题是在前一种情况下字符串文字是否 aesdf 存储在只读部分 然后复制到本地数组或者类似于 char a a e s d f 0
  • 在feathersjs中将socket.io逻辑与app.js分离

    目前 我的 app js 文件中的 socket io 配置如下 app configure feathers socketio function io io on connection function socket socket emi
  • Flutter中如何调度后台任务?

    我一直在寻找这个 但没有找到任何包或在 Flutter 中安排后台任务的方法 就像在 Android 中一样WorkManager AlarmManager 我知道我可以使用以下方式访问这些课程MethodChannel 但我想要一些适用于
  • 如何将子 SKSpriteNode 放置在其父级内部

    我不太明白定位子节点的逻辑 假设我有一个矩形 如果我没有改变它的锚点 子节点默认会出现在中间 但例如如何将其放置在矩形的左上角呢 还是右下角 我试过 child zPosition 1 child position y rect size
  • Xcode 中的存档显示在“其他项目”下

    我正在尝试使用 存档 选项将应用程序提交到 iTunes Connect 为通用 iOS 设备构建 它通常显示在管理器中的 iOS 应用程序下 然而 现在它显示在 其他项目 下 但没有更整洁的版本和想法 我最后一次构建是在 10 月 28
  • 在 GWT 单元格表中添加超链接

    我正在尝试在单元格表中添加一个超链接 然后单击该链接我想调用一个方法 使用下面的代码 我在单元格表中正确获得了超链接 但我无法通过单击链接来调用方法 当我单击链接时 它会将我带到上一页 任何解决方案 Hyperlink link new H
  • Excel VBA - 将子菜单添加到自定义右键菜单

    看了很久了 第一次发海报 我有一个带有右键单击功能的表单 可以正常工作 我试图在主右键菜单中添加一个子菜单来分隔一些功能 命令 我需要 想要插入 选择案例 所在的部分 但是 它只显示顶部菜单 不知道从这里去哪里 任何帮助都是极好的 谢谢 附
  • Python读取DOT格式的文件并返回城市名称列表

    嘿大家好 问题是这样的 说实话 这是家庭作业问题 但我只是被困住了 而且已经永远了 我的问题是 由于城市在每行中都有不同的索引位置 我们如何逐行迭代并将城市名称返回到列表中 任何可以让我开始的帮助将不胜感激 我并不懒惰 我已经为此工作了几个
  • 如何从视频中提取方向信息?

    在网上浏览了大量文档后 iPhone 似乎总是以 480x360 的宽高比拍摄视频 并在视频轨道上应用变换矩阵 480x360 可能会改变 但对于给定设备来说始终相同 这是在 iOS 项目中修改 ffmpeg 源并访问矩阵的方法http w
  • python中pandas系列的地板还是天花板?

    我有一个熊猫系列series 如果我想获得元素级下限或上限 是否有内置方法或者我是否必须编写函数并使用 apply 我问是因为数据很大所以我很看重效率 此外 还没有针对 Pandas 包提出这个问题 您可以使用 NumPy 的内置方法来执行
  • App Engine Java API 页面大小

    为什么谷歌决定忽略pageSize参数以及为什么使用不同的页面大小时收集的项目的总体大小不同 这是一个例子 Appsactivity Activities List request service activities list setDr
  • 如何更改 UIView zPosition?

    我不明白如何更改视图的位置 我尝试这样做 但没有任何反应 void viewDidLoad super viewDidLoad UIView view UIView alloc initWithFrame CGRectMake 100 10
  • 如何使用 Clang 从 C++ 字符串生成 AST?

    我正在尝试使用 Clang 操作 C 源代码 但在发现 API 时遇到问题 我想获取一串 C 源代码并从中生成 AST 就像是 auto myAst clang parse auto x 1 1 有一个最小的工作示例吗 您可以尝试下一个代码