PureYAML/Sources/Parsing
Mihaela M 2501cacd19 fix(parsing): parse a bare document after a document-end marker
Content after a '...' document-end marker begins a new bare document, but
the scanner rejected it as an unsupported multi-document stream and the
parser expected the document to end at the marker. A stream like
'--- scalar / ... / key: value' or 'a / ... / b' is two documents.

The scanner now reopens the stream when content follows '...', and
parseDocument returns at a '...' so the outer stream loop parses the next
document, bare or marked. A trailing '...' with nothing after it still
leaves a single document. The single-document composer still rejects a
multi-document stream, so 'parse' is unchanged. Two tests that asserted
content after '...' is an error are corrected, since the construct is valid
per the grammar and the official test-suite.

Measured against the official YAML test-suite, parse-level conformance
rises from 288/333 (86.5%) to 289/333 (86.8%) with no regression.
2026-06-28 04:23:06 +02:00
..
BlockScalarChomping.swift fix(parsing): classify the keep block-scalar chomping indicator 2026-06-26 07:50:07 +02:00
BlockScalarStyle.swift feat(parsing): add reader scanner core 2026-06-05 07:40:23 +02:00
CollectionStyle.swift feat(parsing): add parse event model 2026-06-05 07:16:23 +02:00
Event.swift feat(parser): add multi-document stream parsing 2026-06-05 14:55:54 +02:00
EventComposer.Merge.swift refactor(parsing): share merge-key resolution between composers 2026-06-26 05:50:28 +02:00
EventComposer.swift refactor(parsing): share merge-key resolution between composers 2026-06-26 05:50:28 +02:00
EventStreamComposedNode.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamComposer.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamComposerMode.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamContainer.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
EventStreamContainerKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Mark.swift feat(parsing): add parse event model 2026-06-05 07:16:23 +02:00
MergeResolution.swift refactor(parsing): share merge-key resolution between composers 2026-06-26 05:50:28 +02:00
NodeKind.swift feat(parsing): parse token stream into events 2026-06-05 09:56:18 +02:00
NodeProperties.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
NodeResult.swift feat(parsing): parse token stream into events 2026-06-05 09:56:18 +02:00
ParseError.swift fix(parsing): reject a document marker inside a multi-line scalar 2026-06-27 23:20:52 +02:00
Parser.Events.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
Parser.ScalarComposition.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Parser.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
Reader.swift feat(parser): harden diagnostics and streaming 2026-06-06 07:57:48 +02:00
Scalar.swift fix(parsing): enforce the full YAML 1.2 double-quoted escape table 2026-06-27 16:19:25 +02:00
ScalarStyle.swift feat(parsing): compose events into values 2026-06-05 10:07:28 +02:00
Scanner.Directives.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
Scanner.FlowContext.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Scanner.Helpers.swift fix(parsing): reject inline nested block mappings 2026-06-27 18:28:57 +02:00
Scanner.Indentation.swift fix(parsing): reject an over-indented leading line in a block scalar 2026-06-28 00:21:57 +02:00
Scanner.Scalars.swift fix(parsing): reject a document marker inside a multi-line scalar 2026-06-27 23:20:52 +02:00
Scanner.swift fix(parsing): parse implicit null mapping keys 2026-06-28 02:53:45 +02:00
ScannerFlowContextKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
TagNormalizer.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Text.swift feat(parsing): compose events into values 2026-06-05 10:07:28 +02:00
Token.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
TokenCursor.swift fix(parsing): reject a block entry after a flow collection on a line 2026-06-28 01:34:55 +02:00
TokenEventParser.Block.swift fix(parsing): reject a block sequence inline after a node property 2026-06-27 23:14:54 +02:00
TokenEventParser.Flow.swift fix(parsing): reject empty entries in flow collections 2026-06-27 16:26:46 +02:00
TokenEventParser.Helpers.swift fix(parsing): reject a later under-indented property on a mapping value 2026-06-28 01:44:48 +02:00
TokenEventParser.swift fix(parsing): parse a bare document after a document-end marker 2026-06-28 04:23:06 +02:00
TokenKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00