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

Function extract_cpp_base_classes

internal/cbm/extract_defs.c:2078–2100  ·  view source on GitHub ↗

Extract base classes from a C++ base_class_clause node.

Source from the content-addressed store, hash-verified

2076
2077// Extract base classes from a C++ base_class_clause node.
2078static const char **extract_cpp_base_classes(CBMArena *a, TSNode clause, const char *source) {
2079 const char *bases[MAX_BASES];
2080 int base_count = 0;
2081 uint32_t bnc = ts_node_named_child_count(clause);
2082 for (uint32_t bi = 0; bi < bnc && base_count < MAX_BASES_MINUS_1; bi++) {
2083 char *text = extract_cpp_base_text(a, ts_node_named_child(clause, bi), source);
2084 if (text && text[0]) {
2085 bases[base_count++] = text;
2086 }
2087 }
2088 if (base_count > 0) {
2089 const char **result =
2090 (const char **)cbm_arena_alloc(a, (base_count + NULL_TERM) * sizeof(const char *));
2091 if (result) {
2092 for (int j = 0; j < base_count; j++) {
2093 result[j] = bases[j];
2094 }
2095 result[base_count] = NULL;
2096 return result;
2097 }
2098 }
2099 return NULL;
2100}
2101
2102// Build a single-element NULL-terminated base class array.
2103static const char **make_single_base(CBMArena *a, const char *text) {

Callers 1

extract_base_classesFunction · 0.85

Calls 2

extract_cpp_base_textFunction · 0.85
cbm_arena_allocFunction · 0.70

Tested by

no test coverage detected