R13: final sweep — EXEC stripping + INSPECT bugfix + more EQ assertions

1. Lark: preprocess strips EXEC CICS/SQL...END-EXEC blocks
   -> CI01_CICS/DB01_SELECT_UPDATE now parse, 75/75 samples pass
2. propagate_assignments INSPECT TALLYING bugfix:
   was reading source from count_var (wrong field) instead of
   asgn['tgt']. Now CNT='005' instead of '003' for len(HELLO)=5.
3. 26 new EQ/falsifiable assertions added (propagate chains,
   orchestrator state, data_writer, report generator)
4. Hardened: ACCEPT DATE string len check, DataWriter JSON format

16 suites / 0 FAIL.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
NB-076
2026-06-22 09:37:58 +08:00
parent 58816799d4
commit abb283669c
4 changed files with 214 additions and 3 deletions
+3 -1
View File
@@ -1417,7 +1417,9 @@ def propagate_assignments(rec, assignments, fields, file_sec=None):
resolved_tgt = _resolve_subscript(tgt, rec)
if resolved_tgt not in rec:
continue
src_val = str(rec[resolved_tgt])
inspect_src = asgn.get('tgt', tgt)
resolved_src = _resolve_subscript(inspect_src, rec)
src_val = str(rec.get(resolved_src, ''))
for op_type, params in asgn.get('sub_ops', []):
if op_type == 'tally':
cv = params['count_var'].upper()