PureYAML/Sources/Parsing/LibYAML.NodeProperties.swift
Mihaela Mihaljevic 521062d974 feat(parsing): port libyaml parser state machine to Swift
Ports parser.c: the one-event-at-a-time state machine that turns the
scanner's token stream into the YAML event stream. Covers stream and
document framing, directive processing with %TAG handle resolution and
default handles, the node property/tag/anchor production, block and
indentless sequences, block mappings, and flow sequences and mappings
including the single-pair `?` mapping forms.

Output verified against the libyaml reference event dumper: the empty
mapping value, %TAG resolution, and shorthand tags all match byte for
byte. 331 tests, no regression.
2026-06-24 17:05:59 +02:00

13 lines
437 B
Swift

extension PureYAML.Parsing.LibYAML {
/// The anchor and tag scanned ahead of a node's content, with the marks needed
/// for events and tag-resolution errors. Mirrors the locals in
/// `yaml_parser_parse_node`.
struct NodeProperties {
var anchor: String?
var tagHandle: String?
var tagSuffix: String?
var startMark: PureYAML.Parsing.Mark
var tagMark: PureYAML.Parsing.Mark
}
}