Repository navigation
det: JSON GENERATE SUPPRESS ... WHEN / EVERY (Part of #7524) - #7905
Conversation
SUPPRESS item WHEN {ZERO|SPACE|LOW-VALUE|HIGH-VALUE} [OR ...] and
SUPPRESS EVERY [NUMERIC|NONNUMERIC] WHEN ... are translated from IBM's
definition; a group left with no member goes too, the source group is
always written. Table items, a group target and a usage the figurative
does not select are refused by name. Oracle-unbacked (register X76).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No description provided. |
|
No description provided. |
|
PR #7905 @ d6d641a: 1 failed check(s) == ground-truth part 1/2 (failure) -- real |
|
CI shepherd: the head of this PR (3e1e43e) is not the one a maintainer labelled |
|
No description provided. |
|
No description provided. |
Part of #7524. Checklist: partial [c:bb8e1760] -- CONVERTING, NAME OMITTED, DEPENDING ON, JSON-CODE after exception left
What
JSON GENERATE
SUPPRESS item WHEN {ZERO|SPACE|LOW-VALUE|HIGH-VALUE} [OR ...]andSUPPRESS EVERY [NUMERIC|NONNUMERIC] WHEN ..., translated from IBM's Enterprise COBOL 6.3 definition. A group left with no member is dropped; the source group itself is always written ({"A":{}}). Oracle-unbacked: GnuCOBOL has no JSON statement, so register X76 stays ASSUMED with no L2+ claim.Assumptions (in X76): ZERO on an alphanumeric item is a comparison with ZEROS (every char
0); SPACE/LOW-VALUE/HIGH-VALUE compare bytes (SPACE is the code page's blank); a number equal to zero is suppressed by ZERO, so invalid data in it is a runtime Hole (C11) and negative zero stays a Hole.Refused by name (IBM's page is silent): an item inside an OCCURS table, a group named with WHEN, a usage the figurative does not select. JSON PARSE still refuses WHEN/EVERY.
Gates
pr_gates --fast: 9/9.pr_gates --ratchets: 9 pass.audit_check.py: all clear.det_port.py check: 270/270 unchanged.test_det_json_generate.py+test_det_json_parse.py: 53 passed. No golden bless needed (det translator only).Files
Seven files, over the usual five:
cobolrt_rules.json(catalogue must list the two new runtime helpers ortest_the_catalogue_matches_the_runtimefails) andtest_det_source_4462.py(its JSON GENERATE hole case used SUPPRESS WHEN, now modelled; it usesWITH ENCODINGinstead).Class / Sibling gaps
Still holes by name for JSON GENERATE: CONVERTING, NAME OMITTED, OCCURS DEPENDING ON, JSON-CODE value after an exception, elementary-item source. JSON PARSE: SUPPRESS WHEN, CONVERTING, JSON-CODE/STATUS. XML GENERATE/PARSE siblings. SUPPRESS WHEN inside tables is refused pending an IBM ruling. No burned program uses JSON, so none of these gate a proof.
Lessons for agents
cobolrt/*.javafile needs a catalogue entry or aplumbingname indocs/language_status/cobolrt_rules.json, ortest_cobolrt_rulesfails.test_det_source_4462hole cases that used it as the example.Cross-repo
None.
🤖 Generated with Claude Code