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

Function cbm_cypher_parse

src/cypher/cypher.c:2177–2201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2175/* ── Convenience: lex + parse ───────────────────────────────────── */
2176
2177int cbm_cypher_parse(const char *query, cbm_query_t **out, char **error) {
2178 *out = NULL;
2179 *error = NULL;
2180
2181 cbm_lex_result_t lr = {0};
2182 if (cbm_lex(query, &lr) < 0 || lr.error) {
2183 *error = heap_strdup(lr.error ? lr.error : "lex error");
2184 cbm_lex_free(&lr);
2185 return CBM_NOT_FOUND;
2186 }
2187
2188 cbm_parse_result_t pr = {0};
2189 if (cbm_parse(lr.tokens, lr.count, &pr) < 0) {
2190 *error = heap_strdup(pr.error ? pr.error : "parse error");
2191 cbm_parse_free(&pr);
2192 cbm_lex_free(&lr);
2193 return CBM_NOT_FOUND;
2194 }
2195
2196 *out = pr.query;
2197 pr.query = NULL;
2198 cbm_parse_free(&pr);
2199 cbm_lex_free(&lr);
2200 return 0;
2201}
2202
2203/* ══════════════════════════════════════════════════════════════════
2204 * EXECUTOR

Callers 2

cbm_cypher_executeFunction · 0.85
test_cypher.cFile · 0.85

Calls 5

cbm_lexFunction · 0.85
cbm_lex_freeFunction · 0.85
cbm_parseFunction · 0.85
cbm_parse_freeFunction · 0.85
heap_strdupFunction · 0.70

Tested by

no test coverage detected