← All projects

Developer Tools / 2024–26

ACAV

ACAV shows C++ source, Clang AST nodes, declaration context, comments, and diagnostics in one C++/Qt desktop application.

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

What ACAV shows

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 displays the AST beside the source code. Selecting code highlights related nodes; selecting a node shows its source range, properties, declaration context, comments, and diagnostics.

Handling large ASTs

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 code handles spelling locations, macro expansion locations, source ranges, and generated nodes. Compiler objects remain owned by the C++ layer; the QML interface receives extracted data with a defined lifetime.

Uses

The application supports compiler research, static-analysis development, debugging, and teaching. Engineers and students can select a compiler node, see the code that produced it, and inspect its properties in the same window.