MCPcopy Index your code
hub / github.com/GJDuck/e9patch / parseAndDiscardObject

Function parseAndDiscardObject

src/e9patch/e9json.cpp:457–497  ·  view source on GitHub ↗

* Parses and discards a JSON object. */

Source from the content-addressed store, hash-verified

455 * Parses and discards a JSON object.
456 */
457static void parseAndDiscardObject(Parser &parser)
458{
459 char token = getToken(parser);
460
461 switch (token)
462 {
463 case '{':
464 token = expectToken2(parser, '}', TOKEN_STRING);
465 if (token == '}')
466 return;
467 while (true)
468 {
469 expectToken(parser, ':');
470 parseAndDiscardObject(parser);
471 token = expectToken2(parser, ',', '}');
472 if (token == '}')
473 return;
474 expectToken(parser, TOKEN_STRING);
475 }
476 case '[':
477 token = peekToken(parser);
478 if (token == ']')
479 {
480 getToken(parser);
481 return;
482 }
483 while (true)
484 {
485 parseAndDiscardObject(parser);
486 token = expectToken2(parser, ',', ']');
487 if (token == ']')
488 return;
489 }
490 case TOKEN_BOOL:
491 case TOKEN_NUMBER:
492 case TOKEN_STRING:
493 break;
494 default:
495 unexpectedToken(parser, "JSON object", token);
496 }
497}
498
499/*
500 * Match parameter names against methods.

Callers 1

parseParamsFunction · 0.85

Calls 5

getTokenFunction · 0.85
expectToken2Function · 0.85
expectTokenFunction · 0.85
peekTokenFunction · 0.85
unexpectedTokenFunction · 0.85

Tested by

no test coverage detected