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

Function parse_rel_bracket

src/cypher/cypher.c:683–702  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

681
682/* Parse bracket content of a relationship: [var:TYPE*hops] */
683static int parse_rel_bracket(parser_t *p, cbm_rel_pattern_t *out) {
684 /* Optional variable */
685 if (check(p, TOK_IDENT) && !check(p, TOK_COLON)) {
686 out->variable = heap_strdup(advance(p)->text);
687 }
688 /* Optional :Types */
689 if (match(p, TOK_COLON)) {
690 if (parse_rel_types(p, out) < 0) {
691 return CBM_NOT_FOUND;
692 }
693 }
694 /* Optional *hop_range */
695 if (match(p, TOK_STAR)) {
696 parse_hop_range(p, &out->min_hops, &out->max_hops);
697 }
698 if (!expect(p, TOK_RBRACKET)) {
699 return CBM_NOT_FOUND;
700 }
701 return 0;
702}
703
704/* Parse relationship: -[:TYPE|TYPE2*min..max]-> or <-[...]- */
705static int parse_rel(parser_t *p, cbm_rel_pattern_t *out) {

Callers 1

parse_relFunction · 0.85

Calls 7

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

Tested by

no test coverage detected