Explorar el Código

docs: designators are fused with the grammar value/note chain too

Eric Streit hace 3 días
padre
commit
f014363356
Se han modificado 1 ficheros con 8 adiciones y 2 borrados
  1. 8 2
      docs/STATUS.md

+ 8 - 2
docs/STATUS.md

@@ -127,8 +127,14 @@ Still to do:
    `Op3`/`NewTemp` there would break constants and constant-bound
    checks.  Deleting them requires first teaching `Lower` to fold
    constants itself from the AST (a real change, not cleanup), then
-   dropping the grammar's value layer.  Designators are entangled the
-   same way (`qn`/`NoteAddr` feed VAR-actual addresses).
+   dropping the grammar's value layer.
+   **Designators are fused the same way, confirmed 2026-10-08:**
+   `Fact` calls `Design<…, qd, …>` then records `NoteAddr(q, qd)` /
+   `AddrOf(qn, qa)`, and `ActParam` recovers the VAR-actual address with
+   `AddrOfVal(qe, qa)`; `q`/`qd` also feed `IsImm`/`ConstInt` for CASE
+   labels, bounds and BY.  So dropping `LoadVar`/`ElemLoad`/`FieldAddr`/
+   `AddrOf` from `Design` breaks the grammar's own value/note chain, not
+   just output.
 5. **Calls, proc headings, imports, classes: BLOCKED too, by fused
    validation.**  The `QbeGen` emit functions double as semantic
    checks and the grammar depends on their result: `QbeGen.CallArg`