MCPcopy Create free account
hub / github.com/GabrielDosReis/ipr

github.com/GabrielDosReis/ipr @2026.03

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2026.03 ↗ · + Follow
757 symbols 1,292 edges 16 files 69 documented · 9% updated 47d ago2026.03 · 2026-03-14★ 23528 open issues

Browse by type

Functions 605 Types & classes 152
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Build & Test Analysis Docs

The IPR, short for Internal Program Representation, is an open source project originally developed as the core data structures of a framework for semantics-based analysis and transformation of C++ programs. The foundations of the IPR were laid down and implemented between 2004 and 2005, as part of The Pivot research project. An overview, the general philosophy, and the design principles behind the IPR are presented in the paper "A Principled, Complete, and Efficient Representation of C++" . That paper is a useful source of general information about the IPR and non-obvious challenges in representing C++ programs in their most general forms.

The IPR library purposefully separates the interface (a collection of abstract classes found in <ipr/interface>) from the implementation (found in <ipr/impl>) for various reasons. An interface class (say ipr::Fundecl) can admit several implementations: a class for non-defining function declarations, and another class for
function definitions. Furthermore, compilers and tools (in general) can provide their own specific optimized implementations of the interface without impacting users of the IPR as long as those users restrict themselves to the public interface. Such a separation of concerns shields users of the library from implementation vagaries. The implementation in <ipr/impl> is provided for exposition and reference.

For more information, bug reports, and suggestions, please visit

https://github.com/GabrielDosReis/ipr

Gabriel Dos Reis, Bjarne Stroustrup.

Core symbols most depended-on inside this repo

Shape

Method 517
Class 148
Function 88
Enum 4

Languages

C++100%

Modules by API surface

3rdparty/doctest/doctest.h306 symbols
src/impl.cxx274 symbols
src/io.cxx143 symbols
src/input.cxx24 symbols
src/utility.cxx5 symbols
src/traversal.cxx3 symbols
tests/unit-tests/warehouse.cxx2 symbols

For agents

$ claude mcp add ipr \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page