Skip to content

fix: capture-free blocks normalize to empty — .parg tree gate 289/289 - #788

Merged
ronaldtse merged 1 commit into
mainfrom
feat/gate-complete
Sep 30, 2026
Merged

ronaldtse merged 1 commit into
mainfrom
feat/gate-complete

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

The grammar consumes comments as whitespace, so a comment-only or empty parallel {}/sequence {} body matches zero rule lines — .as folds the capture-free block to a raw slice, while the .parg artifact's empty capture is an array. The Normalizer now folds raw block values to [] the same way.

Differential tree gate: 289/289 corpus maps byte-identical through the portable .parg artifact — the last two stragglers closed: odni-kor's comment-only parallels, and un-mar (its converter-corrupted bare \U parses via the accommodation from #783). Full suite 1152/0, lint clean.

With the gate fully green, artifact-parse can become the runtime path (the parser and its portable grammar are proven equivalent on the entire corpus).

…9/289

The grammar consumes comments as whitespace, so a comment-only or
empty parallel/sequence body matches zero rule lines and .as folds
the capture-free block to a raw slice. The artifact's empty capture
is an array; the Normalizer now folds raw block values the same way.

Differential tree gate: 289/289 corpus maps byte-identical through
the .parg artifact (un-mar included via the bare-\\U accommodation).
@ronaldtse
ronaldtse merged commit 373c522 into main Sep 30, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant