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

Function jl_parse_array

src/cli/config_json_like.c:538–576  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

536}
537
538static int jl_parse_array(jl_parser_t *parser, unsigned depth) {
539 if (depth >= JL_MAX_DEPTH || parser->pos >= parser->length ||
540 parser->text[parser->pos] != '[') {
541 return -1;
542 }
543 parser->pos++;
544 if (jl_skip_trivia(parser) != 0) {
545 return -1;
546 }
547 if (parser->pos < parser->length && parser->text[parser->pos] == ']') {
548 parser->pos++;
549 return 0;
550 }
551 while (parser->pos < parser->length) {
552 if (jl_parse_value(parser, depth + 1U, NULL, NULL) != 0 || jl_skip_trivia(parser) != 0 ||
553 parser->pos >= parser->length) {
554 return -1;
555 }
556 if (parser->text[parser->pos] == ']') {
557 parser->pos++;
558 return 0;
559 }
560 if (parser->text[parser->pos] != ',') {
561 return -1;
562 }
563 parser->pos++;
564 if (jl_skip_trivia(parser) != 0 || parser->pos >= parser->length) {
565 return -1;
566 }
567 if (parser->text[parser->pos] == ']') {
568 if (parser->strict) {
569 return -1;
570 }
571 parser->pos++;
572 return 0;
573 }
574 }
575 return -1;
576}
577
578static int jl_parse_value(jl_parser_t *parser, unsigned depth, size_t *start_out, size_t *end_out) {
579 if (depth > JL_MAX_DEPTH || parser->pos >= parser->length) {

Callers 1

jl_parse_valueFunction · 0.85

Calls 2

jl_skip_triviaFunction · 0.85
jl_parse_valueFunction · 0.85

Tested by

no test coverage detected