Sibling tooling to the NA1 decompiler, in the same repo: compile known C control-flow constructs through GCC
-O0(-fdump-tree-cfg) and catalog the CFG signature each leaves — sourcing the finite inverse-lowering (“atom”) table forward, instead of reverse-engineering each sub as its own exception.
Links: parent project → NA1 · system → NES · series hub → Game Annotation · project SDK → projects/CLAUDE.md
| Field | Value |
|---|---|
| Logical name | na1-decompiler (the lowering-atlas/ subdir) |
| GitHub | github.com/chrisaacson69/na1-decompiler (public) |
| Sibling path | ../na1-decompiler/lowering-atlas/ |
| Extracted | 2026-06-05, with full git history preserved |
⚠️ Not cloned on this machine (2026-07-21).
v1 corpus — 27 functions across if / loop / break-continue / switch / &&-|| — confirms NA1 atoms
1 (continue = multi-latch; GCC’s own latch-finder returns None), 2 (multi-level break = goto),
the guard/shared-return family, and reproduces the atom-4 shared-switch-exit shape
(M = post-dom(S) broken by a guard edge, = $9C84).
Flags for ≡ while and ?: ≡ if/else as graph-indistinguishable. cc65 (real 6502) planned as v2.
Sourcing the atom table forward is the reuse/convert > rebuild rule applied to a decompiler: the compiler is a deterministic oracle you already have, so cataloging what it emits is cheaper and better grounded than inferring the inverse from each decompiled sub. Related: DREAM — goto-free structuring.