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

Function parse_go_import_spec

internal/cbm/extract_imports.c:125–142  ·  view source on GitHub ↗

Parse a single Go import_spec node.

Source from the content-addressed store, hash-verified

123
124// Parse a single Go import_spec node.
125static void parse_go_import_spec(CBMExtractCtx *ctx, TSNode spec) {
126 CBMArena *a = ctx->arena;
127 TSNode path_node = ts_node_child_by_field_name(spec, TS_FIELD("path"));
128 if (ts_node_is_null(path_node)) {
129 return;
130 }
131 char *path = strip_quotes(a, cbm_node_text(a, path_node, ctx->source));
132 if (!path || !path[0]) {
133 return;
134 }
135
136 TSNode name_node = ts_node_child_by_field_name(spec, TS_FIELD("name"));
137 const char *local_name =
138 !ts_node_is_null(name_node) ? cbm_node_text(a, name_node, ctx->source) : path_last(a, path);
139
140 CBMImport imp = {.local_name = local_name, .module_path = path};
141 cbm_imports_push(&ctx->result->imports, a, imp);
142}
143
144static void parse_go_imports(CBMExtractCtx *ctx) {
145 TSTreeCursor cursor = ts_tree_cursor_new(ctx->root);

Callers 1

parse_go_importsFunction · 0.85

Calls 4

cbm_node_textFunction · 0.85
path_lastFunction · 0.85
cbm_imports_pushFunction · 0.85
strip_quotesFunction · 0.70

Tested by

no test coverage detected