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

Function parse_rel_bracket

src/cypher/cypher.c:708–727  ·  view source on GitHub ↗

Parse bracket content of a relationship: [var:TYPE*hops] */

Source from the content-addressed store, hash-verified

706
707/* Parse bracket content of a relationship: [var:TYPE*hops] */
708static int parse_rel_bracket(parser_t *p, cbm_rel_pattern_t *out) {
709 /* Optional variable */
710 if (check(p, TOK_IDENT) && !check(p, TOK_COLON)) {
711 out->variable = heap_strdup(advance(p)->text);
712 }
713 /* Optional :Types */
714 if (match(p, TOK_COLON)) {
715 if (parse_rel_types(p, out) < 0) {
716 return CBM_NOT_FOUND;
717 }
718 }
719 /* Optional *hop_range */
720 if (match(p, TOK_STAR)) {
721 parse_hop_range(p, &out->min_hops, &out->max_hops);
722 }
723 if (!expect(p, TOK_RBRACKET)) {
724 return CBM_NOT_FOUND;
725 }
726 return 0;
727}
728
729/* Parse relationship: -[:TYPE|TYPE2*min..max]-> or <-[...]- */
730static int parse_rel(parser_t *p, cbm_rel_pattern_t *out) {

Callers 1

parse_relFunction · 0.85

Calls 7

advanceFunction · 0.85
matchFunction · 0.85
parse_rel_typesFunction · 0.85
parse_hop_rangeFunction · 0.85
expectFunction · 0.85
checkFunction · 0.70
heap_strdupFunction · 0.70

Tested by

no test coverage detected