# yaml-test-suite case IDs currently covered by our incremental Panache YAML parser harness.
# Keep this list intentionally small and grow it with parser capability.
D9TU
3UYS
4UYU
4GC6
2CMS
652Z
J7VC
3HFZ
4H7K
6JTT
9MAG
9JBA
55WF
9KBC
9MMA
B63P
9C9N
T833
236B
4EJS
4HVU
5U3A
62EZ
6S55
7LBH
8XDJ
9CWY
BF9H
C2SP
CML9
D49Q
DK4H
DMG6
G7JE
G9HC
HU3P
CTN5
CXX2
EB22
H7J7
HRE5
JY7Z
N4JP
RHX7
S4GJ
X4QW
ZXT5
54T7
58MP
6H3V
J5UC
SYW4
9SHH
JS2J
3GZX
E76Z
W5VH
ZH7C
CUP7
D88J
6SLA
74H7
4V8U
6KGN
CPZ3
H3Z8
65WH
FQ7F
K4SU
SSW6
Y2GN
S7BG
9FMG
9J7A
KMK3
TE2A
# Block sequence of block maps (nested block_map inside sequence item).
229Q
# Block sequence with !!int tagged scalars; projects long-form tag events.
33X3
# Top-level scalar document with explicit tag (`! a` inside `--- ... `).
52DL
# Top-level scalar document with explicit tag (`! a`) — no doc-start marker.
8MK2
# Block sequence of flow sequences, including trailing-comma items.
5KJE
# Block sequence with multi-line flow maps (implicit key across lines).
8KB6
# Nested block sequences (`- - x`) with same-line nested dash.
3ALJ
# Literal block scalar (`|`) in block-map value with blank lines.
M29M
# Standalone top-level flow sequence document.
DHP8
# Block-sequence item containing an inline flow map.
MXS3
# Block-sequence item containing a flow map with colon in URL value.
UDM2
# Block map with literal (`|`) and folded (`>`) block scalars side-by-side.
5BVJ
# Block map mixing folded and literal block scalars (baseball stats example).
HMK4
# Block map followed by explicit document-end marker `...`.
S4T7
# Block sequence of flow sequences (baseball stats example).
YD5X
# Block map with inline flow-sequence and flow-map values.
UDR7
# Block sequence with anchors and aliases.
V55R
# Block sequence with mixed flow-seq, flow-map, and quoted scalars.
Q88A
# Block sequence with a unicode anchor name.
8XYN
# Comment-only document yields no DOC events (just +STR -STR).
98YD
# Document-end-marker-only input yields no DOC events.
HWV9
# Comment followed by document-end marker yields no DOC events.
QT73
# Block sequence with tagged scalars and a leading-space top-level indent.
2AUY
# Two bare document-start markers yielding two empty documents.
6XDY
# Bare scalar document, `...` end marker, then a new implicit-start document.
7Z25
# Two block-sequence documents separated by `---` with stream-level comments.
JHB9
# Document start marker on the last line yields a trailing empty document.
PUW8
# Block sequence including a tag-only-bang scalar (`! 12`) with a leading comment.
S4JQ
# Two-document stream of block maps separated by `---`/`...` markers.
U9NS
# Flow map with trailing comma before `}` (no phantom empty entry).
5C5M
# Flow map with quoted key and adjacent/spaced colons.
5T43
# Flow map with quoted keys and quoted scalar values projection.
C2DT
# Flow map across multiple lines with mixed quoted/plain values.
LP6E
# Flow sequence containing implicit `key: value` map entries.
QF4Y
# Flow sequence containing flow-map entries with empty keys (`[: v]`).
CFD4
# Flow sequence with explicit-key indicator (`?`) and multi-line plain key.
CT4Q
# Block-map with quoted (single) key whose value is a multi-line flow seq of map entries.
87E4
# Block-map with plain key whose value is a multi-line flow seq of map entries.
L9U5
# Block-map with quoted (double) key whose value is a multi-line flow seq of map entries.
LQZ7
# Single-document scalar with `%TAG` shorthand resolving to a custom prefix (handle + suffix).
CC74
# Single-document scalar with `%TAG !yaml!` directive overriding to the secondary YAML prefix.
U3C3
# Block-sequence item with `%TAG` handle shorthand on a quoted scalar.
Z9M4
# Block sequence with anchors and tags interleaved in any order (`&a !!str a`, `!!int &c 4`).
F2C7
# Block sequence with mixed quoted scalars + tags + anchors + alias + tag-only-empty.
LE5A
# Block-sequence item containing a flow map whose implicit key wraps across lines.
NJ66
# Flow map across multiple lines whose entries separate with newlines plus tags (`!!str`).
WZ62
# Block-map value is a multi-line flow map whose entries each split on `:`.
ZF4X
# Multi-line flow map containing nested flow sequences and flow maps as values.
M7NX
# Flow map with explicit-key indicator (`{ ? foo :, : bar }`).
FRK4
# Multi-line flow map mixing explicit and implicit keys (`? explicit: ...` and a trailing `?`).
DFF7
# Comment line inside a multi-line flow sequence is dropped from projected scalar text.
7TMG
# Flow map with URL-like plain value (`http://foo.com`) — colon needs whitespace to split.
4ABK
# Tag suffix percent-encoding (`!e!tag%21`) decoded to `<...tag!>` in event projection.
6CK3
# Multi-document with `%TAG !` directive overriding the primary handle on the second doc.
6WLZ
# Same `%TAG !` primary-handle override pattern but with no `---` on the first doc.
9WXW
# Block map containing standalone explicit-key (`? a`) lines projected with empty values.
7W2P
# Block map mixing regular entries, an explicit-key (`? b`) line, and an anchored key.
ZWK4
# Double-quoted scalars with `\u`, `\x`, and control-char escapes decoded then re-escaped.
G4RS
# Double-quoted scalar containing a literal tab; literal tab re-escaped as `\t` in event.
J3BT
# Multi-doc with bare `---` ... comment ... `...` empty-body doc between content docs.
6ZKB
# Same empty-body-doc-with-comment pattern but preceded by a non-trivial mapping doc.
9DXL
# Empty-body doc whose `---` and `...` are separated by a `# Empty` comment at EOF.
UT92
# Block-seq item with inline `key: value` (`- key: value?`) projected as `+MAP ... -MAP`.
JR7V
# Block-seq item with tab between `:` and value (`- foo:\t bar`); tab counts as separator.
6BCT
# Plain block-seq inline-map keys containing literal `"` and `]` (`- bla"keks: foo`).
AZW3
# Leading-space-indented block sequence with `- key: value` items + continuation entries.
93JH
# Flow sequence as a block-map key (`[flow]: block`) projected as `+SEQ [] ... -SEQ`.
LX3P
# Comment between block-sequence items absorbed as seq-level trivia (Spec 2.12 compact nested mapping).
9U5K
# Comment between block-sequence items where the second item is a flow seq (Spec 7.10 plain characters).
DBG4
# Block-seq inline-map item with tagged empty key/value (`- !!str : !!null`); tag preserved across colon.
FH7J
# Block-scalar header with explicit chomping/indent indicators (`>-`, `|+`); empty body honors keep chomp.
K858
# Block-scalar chomping spec example: strip/clip/keep applied to non-empty body (`|-`, `|`, `|+`).
A6F9
# Plain scalar packed onto the directive-end marker line (`--- text`).
27NA
# Tab-separated payload after directive-end marker (`---<TAB>scalar`).
K54U
# Plain scalar with trailing comment after directive-end marker (`--- foo  # comment`).
L383
# Comment-only payload after directive-end marker (`--- # comment`) with %TAG directive.
5TYM
# Block scalar header packed onto directive-end line: folded scalar (`--- >`).
4Q9F
96L6
B3HG
FP8R
# Block scalar header packed onto directive-end line: folded scalar with strip chomp (`--- >-`).
93WF
# Block scalar header packed onto directive-end line: literal scalar (`--- |`).
6JQW
T26H
T5N4
# Block scalar header packed onto directive-end line: literal with strip chomp (`--- |-`).
753E
# Block scalar header packed onto directive-end line: literal with keep chomp (`--- |+`).
6FWR
# Multi-line plain scalar at top level: line breaks fold to spaces, blank lines fold to newlines.
9YRD
EX5H
# Bare top-level folded block scalar (`>` with no `---` marker), simple body.
G992
# Bare top-level folded block scalar with more-indented "literal" lines surrounded by blanks.
6VJK
# Bare top-level folded block scalar; trailing less-indented comment terminates body.
7T8X
# Folded block scalar where a line beginning with `#` at content-indent is body, not a comment.
DK3J
# Multi-line double-quoted top-level scalar: single line breaks fold to space, blank lines to `\n`.
9TFX
# Multi-line single-quoted top-level scalar with the same line-folding contract as `9TFX`.
T4YY
# Two-document stream with a multi-line double-quoted scalar followed by an anchored plain scalar.
KSS4
# Document-level anchor on its own header line before a block sequence (no `---`).
3R3P
# Document-level anchor packed onto the `---` marker line, preceding a block sequence.
FTA2
# Document-level tag packed onto the `---` marker line, preceding a block sequence (e.g. `--- !!omap`).
J7PZ
# Block-map entry whose value is empty inline (only trivia after `:`) and continued by an indented plain scalar on the next line.
5NYZ
# Anchor-only scalar in a block-map value followed by an indented nested block map; anchor annotates the nested `+MAP &name`.
26DV
# Multi-line double-quoted scalar in a block-map value; blank line folds to `\n`, single break folds to space.
XV9V
# Plain scalar `k:#foo` with no whitespace after the colon: not a key/value pair, must stay a single plain scalar continuing onto the next indented line.
3MYT
# Plain scalar key whose text contains a run of trailing colons (`key::`); only the colon followed by whitespace splits key from value.
8CWC
# Error-contract: bare scalar `top2` at root after a block-map entry (no trailing colon) — rejected with YAML_PARSE_INVALID_KEY_TOKEN.
7MNF
# Error-contract: trailing scalar at document root after a closed flow sequence — rejected with YAML_PARSE_INVALID_KEY_TOKEN.
KS4U
# Error-contract: inline content directly after a flow-map close (`}- invalid`) — rejected with YAML_PARSE_TRAILING_CONTENT_AFTER_FLOW_END.
P2EQ
# Error-contract: multi-line double-quoted scalar whose continuation lines start at column 0 (less than key indent) — rejected with YAML_PARSE_INVALID_KEY_TOKEN.
QB6E
# Error-contract: block-sequence item under-indented relative to its parent block-map entry — rejected with YAML_PARSE_INVALID_KEY_TOKEN.
ZVH3
# Document-level tag packed onto the `---` marker line, preceding a block map of explicit-key (`? key`) entries with implicit null values (e.g. `--- !!set`).
2XXW
# Explicit-key block-map entry: `? key` line followed by `: value` line (each on its own line). Implicit-key entries may interleave.
GH63
# Explicit-key block-map entries mixed with regular implicit-key entries in the same map.
RR7F
# Explicit-key block-map entries where both key and value carry leading tag shorthands (`? !!str a` / `: !!int 47`).
L94M
# Explicit-key block-map entry with a comment line between the `? key` and `: value` lines.
X8DW
# Multi-document stream where each `---` marker carries a type-tag shorthand (`!!map` / `!!seq` / `!!str`); covers tagged maps, tagged sequences, and tagged plain scalars folded across multiple lines.
35KP
# Empty stream: zero documents, zero events between +STR/-STR.
AVM7
# Stream of comment-only lines and blank lines: no documents emitted.
8G76
# Reserved (unrecognized) directive `%FOO …` is ignored; following document parses normally.
2LFX
6LVF
# Recognized future-version YAML directive (`%YAML 1.3`) accepted with warning; document body parses.
BEC7
# `%YAML 1.2` directive followed by `---` marker, document body, and `... # suffix` end-marker with trailing comment.
RTP8
# `%TAG !! tag:example.com,2000:app/` secondary handle; body uses the rebound `!!` shorthand on a plain scalar.
P76L
# Three-dashes immediately followed by content with no space (`---word1\nword2`) is a multi-line plain scalar, not a directive-end marker.
82AN
EXG3
# Multi-line plain scalar at top level whose continuation line happens to look like a YAML directive (`%YAML 1.2`); the scalar continues uninterrupted.
XLQ9
# Tab character at the start of a line followed by a flow indicator (`\t[`, `\t{`) is leading whitespace, not block-context indent.
6CA3
Q5MG
# Trailing whitespace on the line after a closed flow collection (`[1, 2, 3]  \n  `) is consumed as trivia; no further content.
4RWC
# Deeply nested flow collections on one line: maps inside sequences inside maps (`{ a: [b, c, { d: [e, f] } ] }`).
F3CP
R52L
# Nested flow collections split across lines with the closing-brace stack on a single line (`{ key: [[[\n  value\n ]]]\n}`).
ZK9H
# Flow-map entry where the key and value indicator are on different lines (`{ "foo"\n  :bar }`); colon-adjacent value still binds.
5MUD
# Flow-map entry where a comment intervenes between key and the colon-adjacent value on the next line (`{ "foo" # comment\n  :bar }`).
K3WX
# Block-map entry whose value is a comment after the colon and the actual value lives on the next indented line (`key:    # Comment\n  value`).
P94K
# Block-map with `:` key whose value section contains only blank lines (no value); subsequent blanks are document trivia.
NHX8
# Spec example 6.1: indentation spaces — block-map values include literal block scalar and flow sequence with mixed tab/space leading whitespace.
6HB6
# Multi-line double-quoted scalar with single line breaks folding to space and blank lines folding to `\n` (spec 7.6).
7A4E
# Multi-line single-quoted scalar with the same line-folding contract as 7A4E (spec 7.9).
PRH3
# Multi-line plain scalar with blank lines folding to `\n` and tab-prefixed continuation (spec 7.12).
HS5T
# Spec example 6.5: multi-line double-quoted block-map value where blank/whitespace-only lines fold to `\n` and clipped block scalar follows.
5GBF
# Spec example 6.8 [1.3]: bare top-level multi-line double-quoted scalar where leading/trailing whitespace is stripped and blank lines fold to `\n`.
6WPF
# Spec example 6.8: same flow-folding contract as 6WPF without the `---` marker, including a tab-prefixed continuation line.
TL85
# Top-level literal block scalar (`|`) whose body contains blank-only and comment-prefixed indented lines preserved as content (spec 8.8).
DWX9
# Top-level folded block scalar (`>-`) with strip chomp; trimmed content with internal blank lines folds to a single `\n` separator (spec 6.6).
K527
# Top-level literal block scalar (`|`) with tab-indented body line preserved verbatim (spec 8.7).
M9B4
# Top-level literal block scalar with strip chomp (`|-`) terminated by document-end marker (`...`).
MYW6
# Top-level folded block scalar (`>`) with internal blank lines and a re-indented continuation block.
TS54
# Block sequence whose items are block maps, each value a literal block scalar (`|2`, `|`); covers block-scalar inside block-map inside block-sequence nesting.
4WA9
# Block-map with blank lines between entries and a literal block scalar value containing internal blanks/whitespace-only lines.
H2RW
# Anchors on block-map keys (`&k1 key1: one`) and on map values (`top1: &node1\n …`); anchors interleave with comment trivia.
7BMT
U3XV
# Tag and anchor on a double-quoted block-map key (`!!str &a1 "foo": …`) and tag on the value scalar (`!!str bar`).
HMQ5
# Anchors on otherwise-empty scalars in a block sequence: `- &a` (sequence entry with anchor only) and `&a : a` (anchor on empty implicit key).
PW8X
# Multi-line plain scalar in block-map value: single line break folds to space (`b\n c` → `b c`).
A984
# Multi-line plain scalar with blank-line continuation: blanks fold to `\n` between non-empty lines (`a\n b\n\n c` → `a b\nc`).
36F6
# Multi-line plain scalar where the value begins on the line after `key:` (continuation indented under the key).
4CQQ
# Block-map mixing multi-line plain, multi-line double-quoted, and literal block-scalar values.
4ZYM
# Multi-line plain scalar with safe special characters (`?`, `:`, `-`, `#`, brackets) that don't terminate the scalar; backslash escaped to `\\` in event body.
FBC9
# Multi-line plain scalar where a tab-only line counts as a blank line and folds to `\n`.
NB6Z
# Multi-line double-quoted scalar as a flow-map key (`{ "multi\n  line": value }`) with explicit-colon entry.
9SA2
# Explicit-block-key entries (`? key\n: value`) with multi-line plain key and value text — both fold to single-line via continuation-line stripping.
JTV5
# Block-map whose value is a nested block-sequence (`key:\n - item1\n - item2`); projection now scopes top-level container detection to direct children of the document and projects nested block-sequence values explicitly.
8QBE
# Block-map containing two entries each with a nested block-sequence value; same root cause as 8QBE — descendants() walk previously collapsed the entire map into the inner sequence.
PBJ2
# Block-map entries with comments preceding the nested block-sequence value (`hr: # comment\n  - item`) — relies on direct-child top-level detection plus nested-seq value projection.
J9HZ
# Block-map with seq value where one item is itself a `key : value` flow-style mapping (`- two : three`) — exercises nested-seq projection inside a top-level block-map.
JQ4R
# Block-map with seq value containing tab-padded scalars (`seq:\t\n - a\t`) — nested-seq projection fixes the previously-collapsed shape.
DC7X
# Multi-document stream where each `---` doc is a block-map containing nested block-sequence values (Stack: [- file: .., line: ..]); recursive direct-children projection unlocks all three docs.
RZT7
# Block-map with anchors/aliases on nested block-sequence values (`hr:\n  - &SS Sammy Sosa`); top-level direct-child detection now keeps the outer map.
7BUB
# Block-sequence items containing `|` literal block-scalar values (`- |\n detected`); project_block_sequence_items now routes through the block-scalar folder before the plain-scalar fallback.
4QFQ
# Block-sequence items containing `|2-` / `|-2` block scalars (explicit indent + chomp combined in either order); same root cause as 4QFQ — the new block-scalar branch in sequence-item projection picks them up.
D83L
# Block-map values with explicit indent indicators on `>` folded scalars (`a: >2\n   more indented`); explicit indent indicator now sets content_indent to parent_col + m instead of being silently discarded.
F6MC
# Block-map with literal block-scalar values whose content begins with `#` (`strip: |-\n  # text`); keep-chomp counting now uses trailing-empty body lines (computed on stripped text) so `|+` preserves the right number of trailing newlines.
F8F9
# Block-sequence with mixed item kinds including a `|` literal scalar (`- |\n x`); same fix as 4QFQ — block-scalar dispatch in sequence-item projection.
M6YH
# Block-sequence containing a folded `>` block-scalar mixed with plain/quoted scalars (`- >\n  block`); block-scalar dispatch in sequence-item projection picks up the folded scalar.
MZX3
# Block-scalar headers carrying trailing comments (`| # Empty header`, `>1 # Indentation indicator`, `|+ # Chomping indicator`, `>1- # Both indicators`); parse_block_scalar_indicator now consumes optional trailing whitespace + comment after the chomp/indent characters.
P2AD
# Block-sequence containing a `|` block-scalar followed by compact mapping/sequence items (`- |\n block node`); same root cause as 4QFQ.
W42U
# Folded `>` scalar containing tab-prefixed or tab-only lines (`  \t bar`, ` \t`); is_blank/is_mi for folding now decided on the content-indent-stripped text rather than `trim().is_empty()` and leading-spaces count, so a stripped `\t` is content (and more-indented) per §8.1.3 instead of being collapsed into the surrounding blanks.
MJS9
R4YG
