百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

cppast

> 编程语言
开源

用于解析和处理 C++ AST 的库

1.8K stars0 点赞2 次浏览
访问官网GitHub

工具介绍

用于解析和处理 C++ AST 的库

cppast

C++ AST 库接口 - 解析源文件、合成实体、获取文档注释并生成代码。

理由

如果您正在编写一个需要访问 C++ AST 的工具(例如文档生成器、反射库等),除了编写自己的解析器之外,您的唯一选择是使用 clang。 它提供了 三种工具接口,但真正适用于独立应用程序的唯一一个是 libclang。 但是, libclang 具有各种限制,并且不暴露整个 AST。

因此没有可行的选项 - 除了这个库。它最初是 standardese 文档生成器 的一部分,但已被提取为一个独立的库。有关动机和设计的更多信息,请参阅 此博客文章。

  • 将 (几乎) 所有 C++ 实体暴露出来: 支持从函数到类、模板到友元声明、宏到枚举等各种内容; * 将 C++ 类型的完整信息暴露出来; * 支持和暴露各种格式的文档注释,并通过智能实体匹配进行处理; * 支持 C++11 属性(包括用户定义的属性); * AST 层次结构完全脱离了解析器: 这允许合成 AST 实体和多个解析后端; * 解析器基于 libclang: 虽然 libclang 存在限制和/或 bug,但实现的解析器使用各种工作绕过/修补,以提供一个仅在罕见的边缘情况中出错的解析器。请参见 带有 libclang-parser 标签的问题列表; * 简单但可自定义的代码生成接口。

  • 支持修改解析的实体: 目前所有实体都是不可变的,需要找到一个合适的实现方式; * 全面支持表达式: 目前只暴露了字面表达式; * 支持语句: 目前函数体根本没有被解析; * 支持成员特殊化: 目前只支持基本类型的成员特殊化;

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++astcpluspluslibclangparser-library

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言