PureYAML/Sources/Parsing
Mihaela Mihaljevic b2d2d2f595 fix(parsing): accept tabs as separation, reject them as indentation
libyaml refuses to skip a tab in the inter-token whitespace whenever a
simple key is allowed, so a tab used as valid separation (after a '-',
'?', or ':' indicator, or before a flow collection) is reported as a
character that cannot start a token. But a tab is legal in-line
separation; it is only illegal as indentation.

The scanner now skips tabs in scan_to_next_token and records in
tabbedSeparation whether one preceded the pending token. A block entry,
an explicit key, or an implicit mapping key promoted by ':' is rejected
when reached through a tab (there the tab would be indentation), while a
scalar value or a flow collection is accepted. Tab-indented keys and
'-\t-' nested entries still reject.

Surpasses libyaml on 6BCT, 6CA3, A2M4, DK95/00, Q5MG, Y79Y/010.
Port score 299 -> 305.
2026-06-24 19:14:12 +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 fix(parsing): parse a leading ':' flow-sequence entry as an empty-key pair 2026-06-24 19:07:04 +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): accept tabs as separation, reject them as indentation 2026-06-24 19:14:12 +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 fix(parsing): accept tabs as separation, reject them as indentation 2026-06-24 19:14:12 +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): accept tabs as separation, reject them as indentation 2026-06-24 19:14:12 +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