@jafreck/lore 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +22 -13
  2. package/dist/cli.js +81 -14
  3. package/dist/cli.js.map +1 -1
  4. package/dist/indexer/call-graph.d.ts +24 -7
  5. package/dist/indexer/call-graph.d.ts.map +1 -1
  6. package/dist/indexer/call-graph.js +154 -22
  7. package/dist/indexer/call-graph.js.map +1 -1
  8. package/dist/indexer/config-parser.js +6 -1
  9. package/dist/indexer/config-parser.js.map +1 -1
  10. package/dist/indexer/coverage.js +3 -1
  11. package/dist/indexer/coverage.js.map +1 -1
  12. package/dist/indexer/db.d.ts.map +1 -1
  13. package/dist/indexer/db.js +43 -0
  14. package/dist/indexer/db.js.map +1 -1
  15. package/dist/indexer/docs.d.ts.map +1 -1
  16. package/dist/indexer/docs.js +4 -0
  17. package/dist/indexer/docs.js.map +1 -1
  18. package/dist/indexer/embedder.d.ts.map +1 -1
  19. package/dist/indexer/embedder.js +5 -0
  20. package/dist/indexer/embedder.js.map +1 -1
  21. package/dist/indexer/extractors/bash.d.ts.map +1 -1
  22. package/dist/indexer/extractors/bash.js +29 -1
  23. package/dist/indexer/extractors/bash.js.map +1 -1
  24. package/dist/indexer/extractors/c.d.ts +5 -2
  25. package/dist/indexer/extractors/c.d.ts.map +1 -1
  26. package/dist/indexer/extractors/c.js +277 -8
  27. package/dist/indexer/extractors/c.js.map +1 -1
  28. package/dist/indexer/extractors/cpp.d.ts +5 -2
  29. package/dist/indexer/extractors/cpp.d.ts.map +1 -1
  30. package/dist/indexer/extractors/cpp.js +349 -3
  31. package/dist/indexer/extractors/cpp.js.map +1 -1
  32. package/dist/indexer/extractors/csharp.d.ts.map +1 -1
  33. package/dist/indexer/extractors/csharp.js +166 -1
  34. package/dist/indexer/extractors/csharp.js.map +1 -1
  35. package/dist/indexer/extractors/dart.d.ts.map +1 -1
  36. package/dist/indexer/extractors/dart.js +134 -1
  37. package/dist/indexer/extractors/dart.js.map +1 -1
  38. package/dist/indexer/extractors/elixir.d.ts.map +1 -1
  39. package/dist/indexer/extractors/elixir.js +45 -0
  40. package/dist/indexer/extractors/elixir.js.map +1 -1
  41. package/dist/indexer/extractors/elm.d.ts.map +1 -1
  42. package/dist/indexer/extractors/elm.js +33 -0
  43. package/dist/indexer/extractors/elm.js.map +1 -1
  44. package/dist/indexer/extractors/go.d.ts.map +1 -1
  45. package/dist/indexer/extractors/go.js +206 -1
  46. package/dist/indexer/extractors/go.js.map +1 -1
  47. package/dist/indexer/extractors/haskell.d.ts.map +1 -1
  48. package/dist/indexer/extractors/haskell.js +29 -0
  49. package/dist/indexer/extractors/haskell.js.map +1 -1
  50. package/dist/indexer/extractors/java.d.ts.map +1 -1
  51. package/dist/indexer/extractors/java.js +170 -1
  52. package/dist/indexer/extractors/java.js.map +1 -1
  53. package/dist/indexer/extractors/javascript.d.ts.map +1 -1
  54. package/dist/indexer/extractors/javascript.js +24 -2
  55. package/dist/indexer/extractors/javascript.js.map +1 -1
  56. package/dist/indexer/extractors/julia.d.ts.map +1 -1
  57. package/dist/indexer/extractors/julia.js +23 -1
  58. package/dist/indexer/extractors/julia.js.map +1 -1
  59. package/dist/indexer/extractors/kotlin.d.ts.map +1 -1
  60. package/dist/indexer/extractors/kotlin.js +122 -1
  61. package/dist/indexer/extractors/kotlin.js.map +1 -1
  62. package/dist/indexer/extractors/lua.d.ts.map +1 -1
  63. package/dist/indexer/extractors/lua.js +19 -1
  64. package/dist/indexer/extractors/lua.js.map +1 -1
  65. package/dist/indexer/extractors/objc.d.ts.map +1 -1
  66. package/dist/indexer/extractors/objc.js +171 -1
  67. package/dist/indexer/extractors/objc.js.map +1 -1
  68. package/dist/indexer/extractors/ocaml.d.ts.map +1 -1
  69. package/dist/indexer/extractors/ocaml.js +29 -0
  70. package/dist/indexer/extractors/ocaml.js.map +1 -1
  71. package/dist/indexer/extractors/php.d.ts.map +1 -1
  72. package/dist/indexer/extractors/php.js +133 -1
  73. package/dist/indexer/extractors/php.js.map +1 -1
  74. package/dist/indexer/extractors/python.d.ts.map +1 -1
  75. package/dist/indexer/extractors/python.js +24 -3
  76. package/dist/indexer/extractors/python.js.map +1 -1
  77. package/dist/indexer/extractors/ruby.d.ts.map +1 -1
  78. package/dist/indexer/extractors/ruby.js +23 -1
  79. package/dist/indexer/extractors/ruby.js.map +1 -1
  80. package/dist/indexer/extractors/rust.d.ts.map +1 -1
  81. package/dist/indexer/extractors/rust.js +139 -2
  82. package/dist/indexer/extractors/rust.js.map +1 -1
  83. package/dist/indexer/extractors/scala.d.ts.map +1 -1
  84. package/dist/indexer/extractors/scala.js +24 -1
  85. package/dist/indexer/extractors/scala.js.map +1 -1
  86. package/dist/indexer/extractors/swift.d.ts.map +1 -1
  87. package/dist/indexer/extractors/swift.js +129 -1
  88. package/dist/indexer/extractors/swift.js.map +1 -1
  89. package/dist/indexer/extractors/types.d.ts +78 -2
  90. package/dist/indexer/extractors/types.d.ts.map +1 -1
  91. package/dist/indexer/extractors/types.js +167 -8
  92. package/dist/indexer/extractors/types.js.map +1 -1
  93. package/dist/indexer/extractors/typescript.d.ts.map +1 -1
  94. package/dist/indexer/extractors/typescript.js +217 -1
  95. package/dist/indexer/extractors/typescript.js.map +1 -1
  96. package/dist/indexer/extractors/zig.d.ts.map +1 -1
  97. package/dist/indexer/extractors/zig.js +30 -0
  98. package/dist/indexer/extractors/zig.js.map +1 -1
  99. package/dist/indexer/git-history.d.ts.map +1 -1
  100. package/dist/indexer/git-history.js +4 -8
  101. package/dist/indexer/git-history.js.map +1 -1
  102. package/dist/indexer/git-hooks.js +1 -1
  103. package/dist/indexer/git-hooks.js.map +1 -1
  104. package/dist/indexer/index.d.ts +24 -1
  105. package/dist/indexer/index.d.ts.map +1 -1
  106. package/dist/indexer/index.js +199 -68
  107. package/dist/indexer/index.js.map +1 -1
  108. package/dist/indexer/lsp/client.d.ts.map +1 -1
  109. package/dist/indexer/lsp/client.js +40 -15
  110. package/dist/indexer/lsp/client.js.map +1 -1
  111. package/dist/indexer/lsp/config.d.ts.map +1 -1
  112. package/dist/indexer/lsp/config.js +18 -4
  113. package/dist/indexer/lsp/config.js.map +1 -1
  114. package/dist/indexer/poller.d.ts +8 -0
  115. package/dist/indexer/poller.d.ts.map +1 -1
  116. package/dist/indexer/poller.js +3 -1
  117. package/dist/indexer/poller.js.map +1 -1
  118. package/dist/indexer/resolver.d.ts.map +1 -1
  119. package/dist/indexer/resolver.js +8 -4
  120. package/dist/indexer/resolver.js.map +1 -1
  121. package/dist/indexer/watcher.d.ts +8 -0
  122. package/dist/indexer/watcher.d.ts.map +1 -1
  123. package/dist/indexer/watcher.js +18 -1
  124. package/dist/indexer/watcher.js.map +1 -1
  125. package/dist/lore-server/db.d.ts.map +1 -1
  126. package/dist/lore-server/db.js +28 -24
  127. package/dist/lore-server/db.js.map +1 -1
  128. package/dist/lore-server/server.d.ts.map +1 -1
  129. package/dist/lore-server/server.js +12 -51
  130. package/dist/lore-server/server.js.map +1 -1
  131. package/dist/lore-server/tools/graph.d.ts +4 -3
  132. package/dist/lore-server/tools/graph.d.ts.map +1 -1
  133. package/dist/lore-server/tools/graph.js +48 -10
  134. package/dist/lore-server/tools/graph.js.map +1 -1
  135. package/dist/lore-server/tools/notes.d.ts.map +1 -1
  136. package/dist/lore-server/tools/notes.js +6 -2
  137. package/dist/lore-server/tools/notes.js.map +1 -1
  138. package/dist/lore-server/tools/search.d.ts.map +1 -1
  139. package/dist/lore-server/tools/search.js +46 -14
  140. package/dist/lore-server/tools/search.js.map +1 -1
  141. package/package.json +2 -2
@@ -1,23 +1,51 @@
1
1
  /**
2
2
  * @module indexer/extractors/c
3
3
  *
4
- * P0 C language extractor. Extracts function definitions,
5
- * struct/enum/typedef declarations, and #include directives.
4
+ * C language extractor. Extracts:
5
+ * - Function definitions, struct/enum/typedef declarations
6
+ * - Preprocessor macro definitions (`preproc_function_def`, `preproc_def`)
7
+ * - `#include` directives
8
+ * - Call-expression references with function-pointer / indirect-call awareness
6
9
  */
7
- import { emptyResult, findFirst, nodeSignature, walk, } from './types.js';
10
+ import { emptyResult, findEnclosingSymbolName, findFirst, nodeSignature, walk, } from './types.js';
11
+ const C_SYMBOL_NODE_TYPES = [
12
+ 'function_definition',
13
+ ];
14
+ /**
15
+ * AST node types on the "function" child of a `call_expression` that indicate
16
+ * the call goes through a level of indirection (pointer deref, field access,
17
+ * subscript, etc.).
18
+ */
19
+ const INDIRECT_CALL_NODE_TYPES = new Set([
20
+ 'pointer_expression',
21
+ 'parenthesized_expression',
22
+ 'subscript_expression',
23
+ ]);
8
24
  // ─── CExtractor ───────────────────────────────────────────────────────────────
9
25
  export class CExtractor {
10
26
  extract(tree, _source, _filePath) {
11
27
  const result = emptyResult();
28
+ /** Track macro names so the call-ref pass can classify invocations. */
29
+ const macroNames = new Set();
30
+ // First pass: collect macro names.
31
+ for (const node of walk(tree.rootNode)) {
32
+ if (node.type === 'preproc_function_def' || node.type === 'preproc_def') {
33
+ const sym = extractMacro(node);
34
+ if (sym)
35
+ macroNames.add(sym.name);
36
+ }
37
+ }
38
+ // Main pass: symbols, imports, call-refs, type-refs.
12
39
  for (const node of walk(tree.rootNode)) {
13
40
  switch (node.type) {
14
41
  case 'function_definition':
15
42
  result.symbols.push(extractFunction(node));
43
+ extractFunctionTypeRefs(node, result.typeRefs);
16
44
  break;
17
45
  case 'struct_specifier':
18
- // Only capture named structs at file scope (skip anonymous inner structs)
19
46
  if (node.childForFieldName('name')) {
20
47
  result.symbols.push(extractNamedSpecifier(node, 'struct'));
48
+ extractStructFieldTypeRefs(node, result.typeRefs);
21
49
  }
22
50
  break;
23
51
  case 'enum_specifier':
@@ -28,9 +56,34 @@ export class CExtractor {
28
56
  case 'typedef_declaration':
29
57
  result.symbols.push(extractTypedef(node));
30
58
  break;
59
+ case 'preproc_function_def':
60
+ case 'preproc_def': {
61
+ const sym = extractMacro(node);
62
+ if (sym)
63
+ result.symbols.push(sym);
64
+ break;
65
+ }
31
66
  case 'preproc_include':
32
67
  result.imports.push(extractInclude(node));
33
68
  break;
69
+ case 'call_expression': {
70
+ const ref = extractCallRef(node, macroNames);
71
+ if (ref)
72
+ result.callRefs.push(ref);
73
+ break;
74
+ }
75
+ case 'declaration': {
76
+ extractVariableTypeRefs(node, result.typeRefs);
77
+ break;
78
+ }
79
+ case 'sizeof_expression': {
80
+ extractSizeofTypeRef(node, result.typeRefs);
81
+ break;
82
+ }
83
+ case 'cast_expression': {
84
+ extractCastTypeRef(node, result.typeRefs);
85
+ break;
86
+ }
34
87
  }
35
88
  }
36
89
  return result;
@@ -53,7 +106,6 @@ function extractFunction(node) {
53
106
  * extracts the innermost identifier.
54
107
  */
55
108
  function extractDeclaratorName(declarator) {
56
- // Peel off pointer/array wrappers
57
109
  let node = declarator;
58
110
  while (node && node.type !== 'function_declarator') {
59
111
  const inner = node.childForFieldName('declarator') ??
@@ -82,7 +134,6 @@ function extractNamedSpecifier(node, kind) {
82
134
  };
83
135
  }
84
136
  function extractTypedef(node) {
85
- // The typedef name is the last named child (the identifier after the type)
86
137
  const children = node.namedChildren;
87
138
  const nameNode = children[children.length - 1] ?? null;
88
139
  return {
@@ -93,14 +144,232 @@ function extractTypedef(node) {
93
144
  signature: nodeSignature(node),
94
145
  };
95
146
  }
147
+ // ─── Macro extraction ─────────────────────────────────────────────────────────
148
+ /**
149
+ * Extracts a `RawSymbol` with `kind: 'macro'` from `preproc_function_def`
150
+ * (function-like macros) and `preproc_def` (object-like macros).
151
+ */
152
+ function extractMacro(node) {
153
+ const nameNode = node.childForFieldName('name');
154
+ if (!nameNode)
155
+ return null;
156
+ return {
157
+ name: nameNode.text,
158
+ kind: 'macro',
159
+ startLine: node.startPosition.row,
160
+ endLine: node.endPosition.row,
161
+ signature: node.text.split('\n')[0]?.trim() ?? '',
162
+ };
163
+ }
164
+ // ─── Call-ref extraction with indirection awareness ───────────────────────────
165
+ function extractCallRef(node, macroNames) {
166
+ const fnNode = node.childForFieldName('function');
167
+ if (!fnNode)
168
+ return null;
169
+ const callerSymbol = findEnclosingSymbolName(node, C_SYMBOL_NODE_TYPES);
170
+ const line = node.startPosition.row;
171
+ const character = node.startPosition.column;
172
+ const { calleeName, isIndirect, callKind } = classifyCallee(fnNode, macroNames);
173
+ return {
174
+ callerSymbol,
175
+ calleeRaw: calleeName,
176
+ line,
177
+ character,
178
+ callKind,
179
+ isIndirect,
180
+ };
181
+ }
182
+ /**
183
+ * Walks the function-position subtree of a `call_expression` to extract the
184
+ * callee name and classify the call kind.
185
+ */
186
+ function classifyCallee(fnNode, macroNames) {
187
+ // Direct identifier: foo(...)
188
+ if (fnNode.type === 'identifier') {
189
+ const name = fnNode.text;
190
+ if (macroNames.has(name)) {
191
+ return { calleeName: name, isIndirect: false, callKind: 'macro' };
192
+ }
193
+ return { calleeName: name, isIndirect: false, callKind: 'direct' };
194
+ }
195
+ // Field expression: obj.method(...) / ptr->method(...)
196
+ if (fnNode.type === 'field_expression') {
197
+ return { calleeName: fnNode.text, isIndirect: false, callKind: 'direct' };
198
+ }
199
+ // Indirect calls through pointer deref, parens, or subscript:
200
+ // (*callback)(...) / (fnTable[i])(...)
201
+ if (INDIRECT_CALL_NODE_TYPES.has(fnNode.type)) {
202
+ const innerName = extractInnermostIdentifier(fnNode);
203
+ return {
204
+ calleeName: innerName ?? fnNode.text,
205
+ isIndirect: true,
206
+ callKind: 'indirect',
207
+ };
208
+ }
209
+ // Fallback
210
+ return { calleeName: fnNode.text, isIndirect: false, callKind: 'direct' };
211
+ }
212
+ /**
213
+ * Walks into pointer/parenthesised/subscript wrappers to find the innermost
214
+ * identifier being dereferenced.
215
+ */
216
+ function extractInnermostIdentifier(node) {
217
+ let current = node;
218
+ while (current) {
219
+ if (current.type === 'identifier')
220
+ return current.text;
221
+ if (current.type === 'field_expression')
222
+ return current.text;
223
+ if (current.type === 'pointer_expression') {
224
+ const arg = current.childForFieldName('argument') ?? current.namedChildren[current.namedChildren.length - 1] ?? null;
225
+ if (arg && arg !== current) {
226
+ current = arg;
227
+ continue;
228
+ }
229
+ }
230
+ if (current.type === 'parenthesized_expression') {
231
+ const inner = current.namedChildren[0] ?? null;
232
+ if (inner && inner !== current) {
233
+ current = inner;
234
+ continue;
235
+ }
236
+ }
237
+ if (current.type === 'subscript_expression') {
238
+ const arg = current.childForFieldName('argument') ?? current.namedChildren[0] ?? null;
239
+ if (arg && arg !== current) {
240
+ current = arg;
241
+ continue;
242
+ }
243
+ }
244
+ break;
245
+ }
246
+ return null;
247
+ }
96
248
  function extractInclude(node) {
97
- // path child is either string_literal or system_lib_string
98
249
  const pathNode = node.childForFieldName('path') ??
99
250
  node.namedChildren[0] ??
100
251
  null;
101
252
  const raw = pathNode?.text ?? '';
102
- // Strip surrounding quotes or angle brackets
103
253
  const source = raw.replace(/^["<]|[">]$/g, '');
104
254
  return { source, importedNames: [] };
105
255
  }
256
+ // ─── Type-ref extraction ──────────────────────────────────────────────────────
257
+ /**
258
+ * Extracts a type name from a C type node. Returns the text of the first
259
+ * `type_identifier`, `struct_specifier`, `enum_specifier`, or `sized_type_specifier`
260
+ * found within the node.
261
+ */
262
+ function extractCTypeName(typeNode) {
263
+ if (typeNode.type === 'type_identifier')
264
+ return typeNode.text;
265
+ if (typeNode.type === 'struct_specifier' || typeNode.type === 'enum_specifier') {
266
+ const nameNode = typeNode.childForFieldName('name');
267
+ if (nameNode && !typeNode.childForFieldName('body'))
268
+ return nameNode.text;
269
+ return null; // definition context, not a reference
270
+ }
271
+ if (typeNode.type === 'sized_type_specifier')
272
+ return typeNode.text;
273
+ // Walk children
274
+ for (const child of typeNode.namedChildren) {
275
+ const name = extractCTypeName(child);
276
+ if (name)
277
+ return name;
278
+ }
279
+ return null;
280
+ }
281
+ function emitTypeRef(refs, enclosingSymbol, typeRaw, refKind, line, character) {
282
+ refs.push({ enclosingSymbol, typeRaw, refKind, line, character });
283
+ }
284
+ function extractFunctionTypeRefs(funcNode, refs) {
285
+ const funcName = extractDeclaratorName(funcNode.childForFieldName('declarator') ?? funcNode);
286
+ // Return type
287
+ const typeNode = funcNode.childForFieldName('type');
288
+ if (typeNode) {
289
+ const typeName = extractCTypeName(typeNode);
290
+ if (typeName) {
291
+ emitTypeRef(refs, funcName, typeName, 'return', typeNode.startPosition.row, typeNode.startPosition.column);
292
+ }
293
+ }
294
+ // Parameters
295
+ const declarator = funcNode.childForFieldName('declarator');
296
+ if (declarator) {
297
+ const funcDeclarator = findFunctionDeclarator(declarator);
298
+ if (funcDeclarator) {
299
+ const params = funcDeclarator.childForFieldName('parameters');
300
+ if (params) {
301
+ for (const param of params.namedChildren) {
302
+ if (param.type === 'parameter_declaration') {
303
+ const paramType = param.childForFieldName('type');
304
+ if (paramType) {
305
+ const typeName = extractCTypeName(paramType);
306
+ if (typeName) {
307
+ emitTypeRef(refs, funcName, typeName, 'parameter', paramType.startPosition.row, paramType.startPosition.column);
308
+ }
309
+ }
310
+ }
311
+ }
312
+ }
313
+ }
314
+ }
315
+ }
316
+ function findFunctionDeclarator(node) {
317
+ if (node.type === 'function_declarator')
318
+ return node;
319
+ for (const child of node.namedChildren) {
320
+ const found = findFunctionDeclarator(child);
321
+ if (found)
322
+ return found;
323
+ }
324
+ return null;
325
+ }
326
+ function extractStructFieldTypeRefs(structNode, refs) {
327
+ const structName = structNode.childForFieldName('name')?.text ?? '';
328
+ const body = structNode.childForFieldName('body');
329
+ if (!body)
330
+ return;
331
+ for (const child of body.namedChildren) {
332
+ if (child.type === 'field_declaration') {
333
+ const typeNode = child.childForFieldName('type');
334
+ if (typeNode) {
335
+ const typeName = extractCTypeName(typeNode);
336
+ if (typeName) {
337
+ emitTypeRef(refs, structName, typeName, 'field', typeNode.startPosition.row, typeNode.startPosition.column);
338
+ }
339
+ }
340
+ }
341
+ }
342
+ }
343
+ function extractVariableTypeRefs(declNode, refs) {
344
+ // Skip if inside a function_definition (those are handled by extractFunctionTypeRefs)
345
+ const typeNode = declNode.childForFieldName('type');
346
+ if (!typeNode)
347
+ return;
348
+ const typeName = extractCTypeName(typeNode);
349
+ if (!typeName)
350
+ return;
351
+ const enclosing = findEnclosingSymbolName(declNode, C_SYMBOL_NODE_TYPES);
352
+ emitTypeRef(refs, enclosing, typeName, 'variable', typeNode.startPosition.row, typeNode.startPosition.column);
353
+ }
354
+ function extractSizeofTypeRef(node, refs) {
355
+ // sizeof(Type) — the type argument is typically a type_descriptor or parenthesized type
356
+ const valueNode = node.childForFieldName('value') ?? node.childForFieldName('type');
357
+ if (valueNode) {
358
+ const typeName = extractCTypeName(valueNode);
359
+ if (typeName) {
360
+ const enclosing = findEnclosingSymbolName(node, C_SYMBOL_NODE_TYPES);
361
+ emitTypeRef(refs, enclosing, typeName, 'sizeof', valueNode.startPosition.row, valueNode.startPosition.column);
362
+ }
363
+ }
364
+ }
365
+ function extractCastTypeRef(node, refs) {
366
+ const typeNode = node.childForFieldName('type');
367
+ if (typeNode) {
368
+ const typeName = extractCTypeName(typeNode);
369
+ if (typeName) {
370
+ const enclosing = findEnclosingSymbolName(node, C_SYMBOL_NODE_TYPES);
371
+ emitTypeRef(refs, enclosing, typeName, 'cast', typeNode.startPosition.row, typeNode.startPosition.column);
372
+ }
373
+ }
374
+ }
106
375
  //# sourceMappingURL=c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/indexer/extractors/c.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAKL,WAAW,EACX,SAAS,EACT,aAAa,EACb,IAAI,GACL,MAAM,YAAY,CAAC;AAEpB,iFAAiF;AAEjF,MAAM,OAAO,UAAU;IACrB,OAAO,CAAC,IAAiB,EAAE,OAAe,EAAE,SAAiB;QAC3D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,qBAAqB;oBACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,kBAAkB;oBACrB,0EAA0E;oBAC1E,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC7D,CAAC;oBACD,MAAM;gBACR,KAAK,gBAAgB;oBACnB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC3D,CAAC;oBACD,MAAM;gBACR,KAAK,qBAAqB;oBACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC1C,MAAM;gBACR,KAAK,iBAAiB;oBACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC1C,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,iFAAiF;AAEjF,SAAS,eAAe,CAAC,IAAuB;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO;QACL,IAAI;QACJ,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;QACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;QAC7B,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,UAA6B;IAC1D,kCAAkC;IAClC,IAAI,IAAI,GAA6B,UAAU,CAAC;IAChD,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACnD,MAAM,KAAK,GACT,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC;QACP,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM;QACpC,IAAI,GAAG,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAuB,EAAE,IAAY;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO;QACL,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;QAC1B,IAAI;QACJ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;QACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;QAC7B,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAuB;IAC7C,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACvD,OAAO;QACL,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;QACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;QAC7B,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAuB;IAC7C,2DAA2D;IAC3D,MAAM,QAAQ,GACZ,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC;IACP,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;IACjC,6CAA6C;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"c.js","sourceRoot":"","sources":["../../../src/indexer/extractors/c.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * @module indexer/extractors/cpp
3
3
  *
4
- * P1 C++ language extractor. Extracts function definitions, class/struct
5
- * declarations, and #include directives.
4
+ * C++ language extractor. Extracts:
5
+ * - Function definitions, class/struct declarations
6
+ * - Preprocessor macro definitions (`preproc_function_def`, `preproc_def`)
7
+ * - `#include` directives
8
+ * - Call-expression references with function-pointer / indirect-call awareness
6
9
  */
7
10
  import type Parser from 'tree-sitter';
8
11
  import { type ExtractionResult, type SymbolExtractor } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/indexer/extractors/cpp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EAKrB,MAAM,YAAY,CAAC;AAIpB,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB;CA0BjF"}
1
+ {"version":3,"file":"cpp.d.ts","sourceRoot":"","sources":["../../../src/indexer/extractors/cpp.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,KAAK,gBAAgB,EAOrB,KAAK,eAAe,EAOrB,MAAM,YAAY,CAAC;AAmBpB,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB;CAiFjF"}