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

Extract base classes from a C++ base_class_clause node.

Source from the content-addressed store, hash-verified

1955
1956// Extract base classes from a C++ base_class_clause node.
1957static const char **extract_cpp_base_classes(CBMArena *a, TSNode clause, const char *source) {
1958 const char *bases[MAX_BASES];
1959 int base_count = 0;
1960 uint32_t bnc = ts_node_named_child_count(clause);
1961 for (uint32_t bi = 0; bi < bnc && base_count < MAX_BASES_MINUS_1; bi++) {
1962 char *text = extract_cpp_base_text(a, ts_node_named_child(clause, bi), source);
1963 if (text && text[0]) {
1964 bases[base_count++] = text;
1965 }
1966 }
1967 if (base_count > 0) {
1968 const char **result =
1969 (const char **)cbm_arena_alloc(a, (base_count + NULL_TERM) * sizeof(const char *));
1970 if (result) {
1971 for (int j = 0; j < base_count; j++) {
1972 result[j] = bases[j];
1973 }
1974 result[base_count] = NULL;
1975 return result;
1976 }
1977 }
1978 return NULL;
1979}
1980
1981// Build a single-element NULL-terminated base class array.
1982static 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