MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / jl_parse_object

Function jl_parse_object

src/cli/config_json_like.c:492–536  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

490static int jl_parse_value(jl_parser_t *parser, unsigned depth, size_t *start_out, size_t *end_out);
491
492static int jl_parse_object(jl_parser_t *parser, unsigned depth) {
493 if (depth >= JL_MAX_DEPTH || parser->pos >= parser->length ||
494 parser->text[parser->pos] != '{') {
495 return -1;
496 }
497 parser->pos++;
498 if (jl_skip_trivia(parser) != 0) {
499 return -1;
500 }
501 if (parser->pos < parser->length && parser->text[parser->pos] == '}') {
502 parser->pos++;
503 return 0;
504 }
505
506 while (parser->pos < parser->length) {
507 if (jl_parse_key(parser, NULL, NULL) != 0 || jl_skip_trivia(parser) != 0 ||
508 parser->pos >= parser->length || parser->text[parser->pos] != ':') {
509 return -1;
510 }
511 parser->pos++;
512 if (jl_skip_trivia(parser) != 0 || jl_parse_value(parser, depth + 1U, NULL, NULL) != 0 ||
513 jl_skip_trivia(parser) != 0 || parser->pos >= parser->length) {
514 return -1;
515 }
516 if (parser->text[parser->pos] == '}') {
517 parser->pos++;
518 return 0;
519 }
520 if (parser->text[parser->pos] != ',') {
521 return -1;
522 }
523 parser->pos++;
524 if (jl_skip_trivia(parser) != 0 || parser->pos >= parser->length) {
525 return -1;
526 }
527 if (parser->text[parser->pos] == '}') {
528 if (parser->strict) {
529 return -1;
530 }
531 parser->pos++;
532 return 0;
533 }
534 }
535 return -1;
536}
537
538static int jl_parse_array(jl_parser_t *parser, unsigned depth) {
539 if (depth >= JL_MAX_DEPTH || parser->pos >= parser->length ||

Callers 1

jl_parse_valueFunction · 0.85

Calls 3

jl_skip_triviaFunction · 0.85
jl_parse_keyFunction · 0.85
jl_parse_valueFunction · 0.85

Tested by

no test coverage detected