← All projects

Systems & Developer Tools / 2024–26

ACAV

A native C++/Qt tool that turns Clang AST structure, source ranges, and compiler metadata into an inspectable visual workflow.

ROLEC++ Engineer / Researcher
FOCUSCompiler Tooling
STATUSActive research
DEMO_OUTPUTCLANG_AST_INSPECTOR
ACAV desktop application with a Clang AST tree and source-code views
InputReal C++ translation units
ViewAST + source + metadata
UseResearch, debugging, teaching

Compiler facts are hard to navigate

Clang exposes a rich semantic model of C++, but the default inspection experience is usually a huge textual AST dump. It is difficult to connect a node back to the precise source range, compare related declarations, or explain what the compiler sees to another person.

ACAV turns that raw structure into a native visual workspace. The tree, source panes, node properties, comments, and diagnostics remain connected, so exploration does not discard the evidence that makes the compiler output useful.

Working with large trees

Materializing an entire AST into QML components would make realistic translation units slow and memory-heavy. ACAV indexes the underlying compiler data and creates visible UI nodes lazily, keeping interaction responsive while preserving access to the full structure.

Source-location handling normalizes the awkward realities of compiler APIs: spelling and expansion locations, ranges, generated nodes, and metadata whose lifetime is tied to the AST context. The implementation keeps ownership and extraction explicit at the C++ boundary rather than leaking fragile compiler objects into the UI.

Why it matters

The tool supports research and static-analysis development, but it is equally valuable as an explanation surface. Engineers and students can point to an exact compiler node, see the code that produced it, and inspect its properties without learning to decode a wall of dump output first.