PureYAML/Sources/Parsing
Mihaela Mihaljevic ff199516ac fix(parsing): apply the YAML 1.2 flow ':' rule with JSON-key adjacency
libyaml makes every ':' in a flow collection a value indicator, so it
mis-scans ':x', 'http://foo.com', '::vector', and 'omitted value:,', and
drops the value after an adjacent quoted or collection key. Per the spec a
':' only ends a node when followed by whitespace, end of input, or a flow
indicator, except an adjacent ':' after a JSON key (a quoted flow scalar
or a flow collection used as the key).

Gate the ':' value-indicator dispatch on that rule, tracking on the
pending simple key whether it is a JSON node (set for quoted flow scalars
and flow-collection starts). End the plain scalar at a ':' before a flow
indicator instead of rejecting it as unexpected.

Surpasses libyaml on 4ABK, 58MP, 5T43, DBG4, FRK4, HM87/00, with 9MMW
(mixing adjacent and separated keys) still correct. Port score 292 -> 298.
2026-06-24 19:02:43 +02:00
..
BlockScalarChomping.swift fix(parsing): correct block scalar folding and chomping 2026-06-23 20:01:03 +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(parsing): route the event API through the ported libyaml engine 2026-06-24 17:32:29 +02:00
EventComposer.Merge.swift feat(model): support complex mapping keys 2026-06-05 16:08:45 +02:00
EventComposer.swift fix(parsing): emit no document for comment-only or empty streams 2026-06-24 02:27:38 +02:00
EventStreamComposer.swift fix(parsing): emit no document for comment-only or empty streams 2026-06-24 02:27:38 +02:00
LibYAML.CharacterClass.swift fix(parsing): treat flow '?' before a non-indicator as scalar content 2026-06-24 18:50:46 +02:00
LibYAML.IndentEngine.swift feat(parsing): port libyaml token-fetch loop (block + plain core) 2026-06-24 10:37:35 +02:00
LibYAML.NodeProperties.swift feat(parsing): port libyaml parser state machine to Swift 2026-06-24 17:05:59 +02:00
LibYAML.Parser.Block.swift feat(parsing): parse block mappings with empty keys 2026-06-24 18:27:45 +02:00
LibYAML.Parser.Directives.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
LibYAML.Parser.Document.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
LibYAML.Parser.Flow.swift feat(parsing): parse flow mappings with empty keys 2026-06-24 18:31:40 +02:00
LibYAML.Parser.Helpers.swift feat(parsing): port libyaml parser state machine to Swift 2026-06-24 17:05:59 +02:00
LibYAML.Parser.Node.swift feat(parsing): port libyaml parser state machine to Swift 2026-06-24 17:05:59 +02:00
LibYAML.Parser.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
LibYAML.ParserError.swift feat(parsing): port libyaml parser state machine to Swift 2026-06-24 17:05:59 +02:00
LibYAML.ParserState.swift feat(parsing): port libyaml parser state machine to Swift 2026-06-24 17:05:59 +02:00
LibYAML.Reader.swift feat(parsing): port libyaml input reader to Swift 2026-06-24 03:04:08 +02:00
LibYAML.Scanner.Anchor.swift feat(parsing): accept full YAML 1.2 anchor and alias names 2026-06-24 18:11:58 +02:00
LibYAML.Scanner.BlockScalar.swift fix(parsing): accept tabs as block-scalar content past the indentation 2026-06-24 18:44:25 +02:00
LibYAML.Scanner.Directive.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
LibYAML.Scanner.Fetch.swift fix(parsing): apply the YAML 1.2 flow ':' rule with JSON-key adjacency 2026-06-24 19:02:43 +02:00
LibYAML.Scanner.FlowScalar.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
LibYAML.Scanner.PlainScalar.swift fix(parsing): apply the YAML 1.2 flow ':' rule with JSON-key adjacency 2026-06-24 19:02:43 +02:00
LibYAML.Scanner.swift feat(parsing): support multi-line flow mapping keys 2026-06-24 17:46:16 +02:00
LibYAML.Scanner.Tag.swift feat(parsing): port libyaml tag scanner to Swift 2026-06-24 16:48:22 +02:00
LibYAML.ScannerError.swift feat(parsing): port libyaml simple-key mechanism to Swift 2026-06-24 02:55:07 +02:00
LibYAML.SimpleKey.swift fix(parsing): apply the YAML 1.2 flow ':' rule with JSON-key adjacency 2026-06-24 19:02:43 +02:00
LibYAML.swift feat(parsing): begin faithful libyaml scanner port (indent engine) 2026-06-24 02:46:29 +02:00
LibYAML.Token.swift feat(parsing): begin faithful libyaml scanner port (indent engine) 2026-06-24 02:46:29 +02:00
LibYAML.TokenType.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
Mark.swift feat(parsing): add parse event model 2026-06-05 07:16:23 +02:00
NodeKind.swift feat(parsing): parse token stream into events 2026-06-05 09:56:18 +02:00
ParseError.LibYAML.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +02:00
ParseError.swift feat(parsing): route the event API through the ported libyaml engine 2026-06-24 17:32:29 +02:00
Parser.Events.swift feat(parsing): run the whole library on the ported engine 2026-06-24 18:02:22 +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): apply flow folding to quoted scalars 2026-06-23 20:17:56 +02:00
ScalarStyle.swift feat(parsing): compose events into values 2026-06-05 10:07:28 +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