private List<NodeTuple> asScalarTuples(final Parser parser, final Resolver resolver) throws ParserException { final List<NodeTuple> tuples = new ArrayList<>(); NodeEvent event = nextNodeEvent(parser); if (isExplicitSequencing()) { if (event.is(Event.ID.SequenceStart)) { // skip: next should be mappingStart event = nextNodeEvent(parser); } } if (event.is(Event.ID.MappingStart)) { while (true) { final NodeTuple tuple = asScalarMappingTuple(parser, resolver); if (tuple != null) { tuples.add(tuple); if (parser.checkEvent(Event.ID.MappingEnd)) { break; } else { continue; } } break; } } return tuples; }
private NodeTuple asScalarMappingTuple(final Parser parser, final Resolver resolver) throws ParserException { NodeEvent event = nextNodeEvent(parser); if (event.is(Event.ID.Scalar)) { final ScalarNode keyNode = composeScalarNode(resolver, (ScalarEvent)event); event = nextNodeEvent(parser); if (event.is(Event.ID.Scalar)) { final ScalarNode valueNode = composeScalarNode(resolver, (ScalarEvent)event); final String key = asStringScalar(keyNode); if (key.startsWith(META_KEY_PREFIX)) { return new NodeTuple(keyNode, valueNode); } } } return null; }
NodeEvent event = nextNodeEvent(parser); if (isExplicitSequencing()) { if (event.is(Event.ID.SequenceStart)) { if (event.is(Event.ID.MappingStart)) { event = nextNodeEvent(parser); if (event.is(Event.ID.Scalar)) { final ScalarNode definitionKey = composeScalarNode(resolver, (ScalarEvent)event); final List<NodeTuple> tuples = asScalarTuples(parser, resolver);