MCPcopy Create free account
hub / github.com/apache/trafficserver / HandleBlockMap

Method HandleBlockMap

lib/yamlcpp/src/singledocparser.cpp:251–288  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

249}
250
251void SingleDocParser::HandleBlockMap(EventHandler& eventHandler) {
252 // eat start token
253 m_scanner.pop();
254 m_pCollectionStack->PushCollectionType(CollectionType::BlockMap);
255
256 while (true) {
257 if (m_scanner.empty())
258 throw ParserException(m_scanner.mark(), ErrorMsg::END_OF_MAP);
259
260 Token token = m_scanner.peek();
261 if (token.type != Token::KEY && token.type != Token::VALUE &&
262 token.type != Token::BLOCK_MAP_END)
263 throw ParserException(token.mark, ErrorMsg::END_OF_MAP);
264
265 if (token.type == Token::BLOCK_MAP_END) {
266 m_scanner.pop();
267 break;
268 }
269
270 // grab key (if non-null)
271 if (token.type == Token::KEY) {
272 m_scanner.pop();
273 HandleNode(eventHandler);
274 } else {
275 eventHandler.OnNull(token.mark, NullAnchor);
276 }
277
278 // now grab value (optional)
279 if (!m_scanner.empty() && m_scanner.peek().type == Token::VALUE) {
280 m_scanner.pop();
281 HandleNode(eventHandler);
282 } else {
283 eventHandler.OnNull(token.mark, NullAnchor);
284 }
285 }
286
287 m_pCollectionStack->PopCollectionType(CollectionType::BlockMap);
288}
289
290void SingleDocParser::HandleFlowMap(EventHandler& eventHandler) {
291 // eat start token

Callers

nothing calls this directly

Calls 8

ParserExceptionFunction · 0.85
PushCollectionTypeMethod · 0.80
peekMethod · 0.80
PopCollectionTypeMethod · 0.80
popMethod · 0.45
emptyMethod · 0.45
markMethod · 0.45
OnNullMethod · 0.45

Tested by

no test coverage detected