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:2121–2143  ·  view source on GitHub ↗

Extract base classes from a C++ base_class_clause node.

Source from the content-addressed store, hash-verified

2119
2120// Extract base classes from a C++ base_class_clause node.
2121static const char **extract_cpp_base_classes(CBMArena *a, TSNode clause, const char *source) {
2122 const char *bases[MAX_BASES];
2123 int base_count = 0;
2124 uint32_t bnc = ts_node_named_child_count(clause);
2125 for (uint32_t bi = 0; bi < bnc && base_count < MAX_BASES_MINUS_1; bi++) {
2126 char *text = extract_cpp_base_text(a, ts_node_named_child(clause, bi), source);
2127 if (text && text[0]) {
2128 bases[base_count++] = text;
2129 }
2130 }
2131 if (base_count > 0) {
2132 const char **result =
2133 (const char **)cbm_arena_alloc(a, (base_count + NULL_TERM) * sizeof(const char *));
2134 if (result) {
2135 for (int j = 0; j < base_count; j++) {
2136 result[j] = bases[j];
2137 }
2138 result[base_count] = NULL;
2139 return result;
2140 }
2141 }
2142 return NULL;
2143}
2144
2145// Build a single-element NULL-terminated base class array.
2146static 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