PureYAML/Sources/Tagged
Mihaela M d4ba594012 feat(parsing): opt-in located parse on the hand-rolled engine
Port the located value tree onto the hand-rolled engine, reusing the
engine-agnostic located layer (Model.LocatedValue, LocatedPair,
SourcePosition, SourceRange, and the located composer helper) authored
on the conformance branch. The streaming composer now builds a parallel
located tree behind an opt-in tracksLocations flag, exposed as
parseLocated / parseStreamLocated; the plain Value path stays
byte-identical, gated behind the flag.

The scalar event carries the scanner token's end mark, so a located
scalar spans the whole token (end exclusive, one past the last
character) rather than being start-anchored. The hand-rolled scanner
already tracked token end marks, so this surfaces information the engine
was already computing.

Also stop emitting a spurious null document for a comment-only or empty
stream: YAML 1.2 gives such a stream zero documents, while the
single-document value API still maps it to null, so parse("") is
unchanged.

A whole-suite test proves the located projection equals a plain parse
for every passing case; the value, event-dump, and conformance suites
stay green (507 tests).
2026-06-29 07:14:42 +02:00
..
Tagged.Check.Builtins.swift feat(validation): enforce tagged mapping-key uniqueness 2026-06-28 17:03:20 +02:00
Tagged.ConstructionContext.swift feat(tagged): add typed constructor policy 2026-06-05 16:24:11 +02:00
Tagged.ConstructionError.swift feat(tagged): add typed constructor policy 2026-06-05 16:24:11 +02:00
Tagged.Constructor.swift fix(ci): prepare 0.1.0 release 2026-06-05 21:20:20 +02:00
Tagged.Document.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Tagged.EventComposer.swift feat(parsing): opt-in located parse on the hand-rolled engine 2026-06-29 07:14:42 +02:00
Tagged.Mapping.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Tagged.Node.ModelValue.swift feat(tagged): add typed constructor policy 2026-06-05 16:24:11 +02:00
Tagged.Node.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Tagged.NodeKind.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Tagged.Pair.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Tagged.Parser.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Tagged.Scalar.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Tagged.Sequence.swift refactor(code-style): one top-level type per source file 2026-06-26 06:14:21 +02:00
Tagged.Tag.swift feat(tagged): add tag-preserving validation 2026-06-05 15:35:52 +02:00
Tagged.Validator.swift feat(validation): enforce tagged mapping-key uniqueness 2026-06-28 17:03:20 +02:00