Show HN: Anyone interested in a tool helps to explore C++ ASTs

Hacker News Top Tools

Summary

ACAV is an interactive Abstract Syntax Tree visualization tool for C, C++, and Objective-C, built with Clang and Qt, that allows developers to explore ASTs from real codebases using compilation databases.

I built this software to help users who need to do static code analysis for C/C++ codebase. This can help you to explore the ASTs interactively. It can replace the Clang ast dump completely and also you can search the code/ASTs in a structual way. For example you can search a function which matches specific name or number of paremeters.
Original Article
View Cached Full Text

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 of the ACAV interface showing the file explorer, source code view, AST tree view, declaration-context panels, and log panel.](https://uvic-aurora.github.io/acav-manual/images/acav-screenshot.png) *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)\.

Similar Articles

@_mattata: Anthropic released a pretty clean code auditing harness for identifying bugs with potential security implications. It’s…

X AI KOLs Timeline

Anthropic released an open-source code auditing reference harness for autonomous vulnerability discovery and remediation using Claude, covering a recon→find→triage→report→patch pipeline, primarily targeting C/C++ memory vulnerabilities. It is a template/reference implementation rather than a production-ready product, with a managed hosted option called Claude Security also available.

@GitHub_Daily: When taking over a new project with hundreds of thousands of lines of code, just sorting out the call relationships and overall architecture takes several days, which is very inefficient. Then I found the open-source project Understand Anything, which generates an interactive knowledge graph of the entire codebase, allowing you to visually see the relationships between modules...

X AI KOLs Timeline

Understand Anything is an open-source project that uses a multi-agent pipeline to automatically analyze codebases, generating interactive knowledge graphs to help developers quickly understand code structure and module relationships. It supports integration with mainstream AI coding tools like Claude Code, Cursor, etc.