in lib/src/parser.dart [602:637]
Event _parseFlowMappingKey({bool first = false}) {
if (first) _scanner.scan();
var token = _scanner.peek()!;
if (token.type != TokenType.flowMappingEnd) {
if (!first) {
if (token.type != TokenType.flowEntry) {
throw YamlException(
"While parsing a flow mapping, expected ',' or '}'.",
token.span.start.pointSpan());
}
token = _scanner.advance()!;
}
if (token.type == TokenType.key) {
token = _scanner.advance()!;
if (token.type != TokenType.value &&
token.type != TokenType.flowEntry &&
token.type != TokenType.flowMappingEnd) {
_states.add(_State.FLOW_MAPPING_VALUE);
return _parseNode();
} else {
_state = _State.FLOW_MAPPING_VALUE;
return _processEmptyScalar(token.span.start);
}
} else if (token.type != TokenType.flowMappingEnd) {
_states.add(_State.FLOW_MAPPING_EMPTY_VALUE);
return _parseNode();
}
}
_scanner.scan();
_state = _states.removeLast();
return Event(EventType.mappingEnd, token.span);
}