ACAV:支持 C、C++ 和 Objective-C 的交互式 AST 可视化工具,功能强大!
ACAV:基于 Clang 和 Qt 的交互式 AST 可视化工具,支持 C、C++ 和 Objective-C
ACAV(Aurora Clang AST Viewer)是一款基于 Clang 和 Qt 构建的交互式抽象语法树(AST)可视化工具,适用于 C、C++ 和 Objective-C 语言。借助 JSON 编译数据库(如 compile_commands.json),它能让用户打开真实项目,检查某个翻译单元的 AST,并在源代码和 AST 节点之间直接切换。
项目链接
- 项目代码库
- 项目介绍页面
- 在线手册
功能概览
在拥有有效编译数据库时,ACAV 具备以下功能:
- 可在可导航的树结构中检查某个翻译单元的 AST。
- 能在源代码位置和 AST 节点之间双向切换。
- 探索程序结构时可查看声明上下文。
- 可同时搜索源代码文本和 AST 节点。
- 能在不同会话间复用依赖项和 AST 缓存文件。
ACAV 采用三程序架构:
- acav 是交互式的图形用户界面(GUI)应用程序。
- query-dependencies 从编译数据库中提取依赖信息。
- make-ast 为单个源文件构建并缓存序列化的 AST 文件。
目的与范围
ACAV 填补了 Clang 强大的前端基础设施与交互式探索 Clang AST 实际困难之间的空白。它针对真实代码库设计,读取 JSON 编译数据库,为每个源文件应用记录的构建设置,并通过后台处理和 AST 缓存保持界面响应。
ACAV 对学习编译器内部原理的学生、研究程序结构的科研人员,以及构建或调试基于 Clang 的工具的开发者都很有用。目前,其功能仅限于只读的 AST 探索,不会修改源代码、执行重构,也不作为通用编辑器使用,且一次仅显示一个翻译单元的 AST。
快速开始
典型使用流程如下:
- 为目标项目生成或找到编译数据库。
- 按照安装说明构建或安装 ACAV。
- 启动 ACAV:
acav -c /path/to/compile_commands.json
- 在文件浏览器中浏览文件,然后双击文件或按 F5 生成或加载其 AST。
- 使用源代码视图、AST 视图和声明上下文视图来浏览程序结构。
文档结构
- 许可证指向权威的许可证文件。
- 安装涵盖了先决条件、本地构建和容器化工作流程。
- Docker/Podman 演示镜像提供了详细的 OCI 演示镜像说明。
- 用户手册介绍了 GUI、常见工作流程、命令行程序、键盘快捷键和配置。
- 参考资料列出了相关技术和资源。
- 类提供生成的类参考。
- 文件提供生成的文件参考。
- 更新日志提供 ACAV 的公开发布说明。
- 声明提供项目归属、作者信息和许可背景。
如何使用本手册
如果你是 ACAV 的新手,先阅读本概述,然后查看安装,接着阅读用户手册。如果你想查看 API 接口,可参考类和文件。如果你想查看公开发布说明,可查看更新日志。
由1.16.1 生成
