Cached at:
05/24/26, 12:35 AM
# ACAV: Overview
Source: [https://uvic-aurora.github.io/acav-manual/index.html](https://uvic-aurora.github.io/acav-manual/index.html)
ACAV \(Aurora Clang AST Viewer\) is an interactive Abstract Syntax Tree \(AST\) visualization tool for C, C\+\+, and Objective\-C, built with Clang and Qt\. Given a JSON compilation database such ascompile\_commands\.json, ACAV lets you open a real project, inspect the AST for a translation unit, and move directly between source code and AST nodes\.

*Screenshot: ACAV displaying the file explorer, source\-code panel, AST tree view, declaration\-context panels, and log panel\.*
## Project Links
- [Project codebase](https://github.com/uvic-aurora/acav)
- [Project introduction page](https://uvic-aurora.github.io/acav/)
- [Online manual](https://uvic-aurora.github.io/acav-manual/index.html)
## At a Glance
With a valid compilation database, ACAV lets you:
- inspect the AST for a translation unit in a navigable tree,
- move in both directions between source locations and AST nodes,
- view declaration context while exploring program structure,
- search both source text and AST nodes, and
- reuse dependency and AST\-cache artifacts across sessions\.
ACAV follows a three\-program architecture:
- acavis the interactive GUI application\.
- query\-dependenciesextracts dependency information from a compilation database\.
- make\-astbuilds and caches serialized AST files for individual source files\.
## Purpose and Scope
ACAV addresses the gap between Clang's powerful front\-end infrastructure and the practical difficulty of exploring Clang ASTs interactively\. It is designed for real codebases rather than toy examples: it reads a JSON compilation database, applies the recorded build settings for each source file, and keeps the interface responsive through background processing and AST caching\.
ACAV is useful for students learning compiler internals, researchers studying program structure, and developers building or debugging Clang\-based tools\. Its current scope is intentionally limited to read\-only AST exploration\. ACAV does not modify source code, perform refactoring, or act as a general\-purpose editor, and it displays the AST of one translation unit at a time\.
## Quick Start
The typical workflow is:
1. Generate or locate a compilation database for the target project\.
2. Build or install ACAV by following[Installation](https://uvic-aurora.github.io/acav-manual/installation.html#md_INSTALL)\.
3. Launch ACAV: acav \-c /path/to/compile\_commands\.json
4. Browse files in the file explorer, then double\-click a file or pressF5to generate or load its AST\.
5. Use the source view, AST view, and declaration context view to navigate the program structure\.
## Documentation Organization
- [License](https://uvic-aurora.github.io/acav-manual/license.html#md_docs_2manual_2license)points to the authoritative license file\.
- [Installation](https://uvic-aurora.github.io/acav-manual/installation.html#md_INSTALL)covers prerequisites, native builds, and the containerized workflow\.
- [Docker/Podman Demo Image](https://uvic-aurora.github.io/acav-manual/demo_image.html#md_DOCKER__IMAGE__README)provides detailed OCI demo image instructions\.
- [User Manual](https://uvic-aurora.github.io/acav-manual/user_manual.html#md_ACAV__USER__MANUAL)describes the GUI, common workflows, the command\-line programs, keyboard shortcuts, and configuration\.
- [References](https://uvic-aurora.github.io/acav-manual/references.html#md_docs_2manual_2references)lists related technologies and resources\.
- [Classes](https://uvic-aurora.github.io/acav-manual/annotated.html)provides the generated class reference\.
- [Files](https://uvic-aurora.github.io/acav-manual/files.html)provides the generated file reference\.
- [Changelog](https://uvic-aurora.github.io/acav-manual/changelog.html#md_CHANGELOG)provides public release notes for ACAV\.
- [Notice](https://uvic-aurora.github.io/acav-manual/notice.html#md_docs_2manual_2notice)provides project attribution, authorship, and licensing context\.
## How to Use This Manual
If you are new to ACAV, start with this overview, then[Installation](https://uvic-aurora.github.io/acav-manual/installation.html#md_INSTALL), and then[User Manual](https://uvic-aurora.github.io/acav-manual/user_manual.html#md_ACAV__USER__MANUAL)\. If you want to inspect the API surface, use[Classes](https://uvic-aurora.github.io/acav-manual/annotated.html)and[Files](https://uvic-aurora.github.io/acav-manual/files.html)\. If you want to review public release notes, see the[Changelog](https://uvic-aurora.github.io/acav-manual/changelog.html#md_CHANGELOG)\.