@colbymchenry/codegraph-darwin-arm64 1.2.0 → 1.3.1
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.
- package/bin/codegraph +5 -0
- package/lib/dist/bin/codegraph.d.ts +1 -1
- package/lib/dist/bin/codegraph.d.ts.map +1 -1
- package/lib/dist/bin/codegraph.js +232 -61
- package/lib/dist/bin/codegraph.js.map +1 -1
- package/lib/dist/bin/command-supervision.d.ts.map +1 -1
- package/lib/dist/bin/command-supervision.js +4 -1
- package/lib/dist/bin/command-supervision.js.map +1 -1
- package/lib/dist/db/index.d.ts +17 -5
- package/lib/dist/db/index.d.ts.map +1 -1
- package/lib/dist/db/index.js +68 -12
- package/lib/dist/db/index.js.map +1 -1
- package/lib/dist/db/migrations.d.ts +1 -1
- package/lib/dist/db/migrations.d.ts.map +1 -1
- package/lib/dist/db/migrations.js +19 -1
- package/lib/dist/db/migrations.js.map +1 -1
- package/lib/dist/db/queries.d.ts +76 -1
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +180 -0
- package/lib/dist/db/queries.js.map +1 -1
- package/lib/dist/db/schema.sql +19 -0
- package/lib/dist/directory.d.ts +9 -5
- package/lib/dist/directory.d.ts.map +1 -1
- package/lib/dist/directory.js +210 -19
- package/lib/dist/directory.js.map +1 -1
- package/lib/dist/extraction/cfml-extractor.d.ts +107 -0
- package/lib/dist/extraction/cfml-extractor.d.ts.map +1 -0
- package/lib/dist/extraction/cfml-extractor.js +494 -0
- package/lib/dist/extraction/cfml-extractor.js.map +1 -0
- package/lib/dist/extraction/grammars.d.ts +9 -0
- package/lib/dist/extraction/grammars.d.ts.map +1 -1
- package/lib/dist/extraction/grammars.js +115 -3
- package/lib/dist/extraction/grammars.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +46 -1
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +338 -34
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/languages/arkts.d.ts +3 -0
- package/lib/dist/extraction/languages/arkts.d.ts.map +1 -0
- package/lib/dist/extraction/languages/arkts.js +127 -0
- package/lib/dist/extraction/languages/arkts.js.map +1 -0
- package/lib/dist/extraction/languages/c-cpp.d.ts +42 -0
- package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/lib/dist/extraction/languages/c-cpp.js +369 -4
- package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
- package/lib/dist/extraction/languages/cfquery.d.ts +12 -0
- package/lib/dist/extraction/languages/cfquery.d.ts.map +1 -0
- package/lib/dist/extraction/languages/cfquery.js +28 -0
- package/lib/dist/extraction/languages/cfquery.js.map +1 -0
- package/lib/dist/extraction/languages/cfscript.d.ts +3 -0
- package/lib/dist/extraction/languages/cfscript.d.ts.map +1 -0
- package/lib/dist/extraction/languages/cfscript.js +73 -0
- package/lib/dist/extraction/languages/cfscript.js.map +1 -0
- package/lib/dist/extraction/languages/cobol.d.ts +33 -0
- package/lib/dist/extraction/languages/cobol.d.ts.map +1 -0
- package/lib/dist/extraction/languages/cobol.js +499 -0
- package/lib/dist/extraction/languages/cobol.js.map +1 -0
- package/lib/dist/extraction/languages/erlang.d.ts +3 -0
- package/lib/dist/extraction/languages/erlang.d.ts.map +1 -0
- package/lib/dist/extraction/languages/erlang.js +350 -0
- package/lib/dist/extraction/languages/erlang.js.map +1 -0
- package/lib/dist/extraction/languages/index.d.ts.map +1 -1
- package/lib/dist/extraction/languages/index.js +18 -0
- package/lib/dist/extraction/languages/index.js.map +1 -1
- package/lib/dist/extraction/languages/nix.d.ts +3 -0
- package/lib/dist/extraction/languages/nix.d.ts.map +1 -0
- package/lib/dist/extraction/languages/nix.js +294 -0
- package/lib/dist/extraction/languages/nix.js.map +1 -0
- package/lib/dist/extraction/languages/solidity.d.ts +3 -0
- package/lib/dist/extraction/languages/solidity.d.ts.map +1 -0
- package/lib/dist/extraction/languages/solidity.js +293 -0
- package/lib/dist/extraction/languages/solidity.js.map +1 -0
- package/lib/dist/extraction/languages/terraform.d.ts +3 -0
- package/lib/dist/extraction/languages/terraform.d.ts.map +1 -0
- package/lib/dist/extraction/languages/terraform.js +641 -0
- package/lib/dist/extraction/languages/terraform.js.map +1 -0
- package/lib/dist/extraction/languages/vbnet.d.ts +11 -0
- package/lib/dist/extraction/languages/vbnet.d.ts.map +1 -0
- package/lib/dist/extraction/languages/vbnet.js +141 -0
- package/lib/dist/extraction/languages/vbnet.js.map +1 -0
- package/lib/dist/extraction/mybatis-extractor.d.ts +30 -10
- package/lib/dist/extraction/mybatis-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/mybatis-extractor.js +140 -38
- package/lib/dist/extraction/mybatis-extractor.js.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.js +1 -0
- package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/lib/dist/extraction/tree-sitter-types.d.ts +3 -1
- package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.d.ts +38 -0
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +753 -10
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
- package/lib/dist/index.d.ts +63 -1
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +327 -5
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/index.d.ts.map +1 -1
- package/lib/dist/installer/index.js +3 -1
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/mcp/daemon.d.ts +25 -3
- package/lib/dist/mcp/daemon.d.ts.map +1 -1
- package/lib/dist/mcp/daemon.js +62 -8
- package/lib/dist/mcp/daemon.js.map +1 -1
- package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
- package/lib/dist/mcp/dynamic-boundaries.js +2 -1
- package/lib/dist/mcp/dynamic-boundaries.js.map +1 -1
- package/lib/dist/mcp/early-ppid.d.ts +26 -0
- package/lib/dist/mcp/early-ppid.d.ts.map +1 -0
- package/lib/dist/mcp/early-ppid.js +29 -0
- package/lib/dist/mcp/early-ppid.js.map +1 -0
- package/lib/dist/mcp/index.d.ts.map +1 -1
- package/lib/dist/mcp/index.js +21 -4
- package/lib/dist/mcp/index.js.map +1 -1
- package/lib/dist/mcp/proxy.d.ts.map +1 -1
- package/lib/dist/mcp/proxy.js +29 -3
- package/lib/dist/mcp/proxy.js.map +1 -1
- package/lib/dist/mcp/query-pool.d.ts +14 -0
- package/lib/dist/mcp/query-pool.d.ts.map +1 -1
- package/lib/dist/mcp/query-pool.js +18 -0
- package/lib/dist/mcp/query-pool.js.map +1 -1
- package/lib/dist/mcp/session.d.ts.map +1 -1
- package/lib/dist/mcp/session.js +6 -0
- package/lib/dist/mcp/session.js.map +1 -1
- package/lib/dist/mcp/startup-handshake.d.ts +44 -0
- package/lib/dist/mcp/startup-handshake.d.ts.map +1 -0
- package/lib/dist/mcp/startup-handshake.js +73 -0
- package/lib/dist/mcp/startup-handshake.js.map +1 -0
- package/lib/dist/mcp/tools.d.ts +22 -0
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +88 -18
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/mcp/transport.d.ts.map +1 -1
- package/lib/dist/mcp/transport.js +18 -0
- package/lib/dist/mcp/transport.js.map +1 -1
- package/lib/dist/project-config.d.ts +38 -0
- package/lib/dist/project-config.d.ts.map +1 -1
- package/lib/dist/project-config.js +101 -2
- package/lib/dist/project-config.js.map +1 -1
- package/lib/dist/resolution/c-fnptr-synthesizer.d.ts +2 -1
- package/lib/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
- package/lib/dist/resolution/c-fnptr-synthesizer.js +170 -146
- package/lib/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
- package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/lib/dist/resolution/callback-synthesizer.js +982 -81
- package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
- package/lib/dist/resolution/frameworks/cics.d.ts +20 -0
- package/lib/dist/resolution/frameworks/cics.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/cics.js +90 -0
- package/lib/dist/resolution/frameworks/cics.js.map +1 -0
- package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/index.js +6 -0
- package/lib/dist/resolution/frameworks/index.js.map +1 -1
- package/lib/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/java.js +14 -6
- package/lib/dist/resolution/frameworks/java.js.map +1 -1
- package/lib/dist/resolution/frameworks/terraform.d.ts +38 -0
- package/lib/dist/resolution/frameworks/terraform.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/terraform.js +277 -0
- package/lib/dist/resolution/frameworks/terraform.js.map +1 -0
- package/lib/dist/resolution/goframe-synthesizer.d.ts +2 -1
- package/lib/dist/resolution/goframe-synthesizer.d.ts.map +1 -1
- package/lib/dist/resolution/goframe-synthesizer.js +8 -3
- package/lib/dist/resolution/goframe-synthesizer.js.map +1 -1
- package/lib/dist/resolution/import-resolver.d.ts +7 -0
- package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/import-resolver.js +129 -4
- package/lib/dist/resolution/import-resolver.js.map +1 -1
- package/lib/dist/resolution/index.d.ts +49 -6
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +342 -65
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/name-matcher.d.ts +0 -3
- package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
- package/lib/dist/resolution/name-matcher.js +225 -33
- package/lib/dist/resolution/name-matcher.js.map +1 -1
- package/lib/dist/resolution/strip-comments.d.ts +1 -1
- package/lib/dist/resolution/strip-comments.d.ts.map +1 -1
- package/lib/dist/resolution/strip-comments.js +49 -0
- package/lib/dist/resolution/strip-comments.js.map +1 -1
- package/lib/dist/resolution/types.d.ts +29 -0
- package/lib/dist/resolution/types.d.ts.map +1 -1
- package/lib/dist/resolution/workspace-packages.d.ts +10 -0
- package/lib/dist/resolution/workspace-packages.d.ts.map +1 -1
- package/lib/dist/resolution/workspace-packages.js +142 -4
- package/lib/dist/resolution/workspace-packages.js.map +1 -1
- package/lib/dist/search/identifier-segments.d.ts +60 -0
- package/lib/dist/search/identifier-segments.d.ts.map +1 -0
- package/lib/dist/search/identifier-segments.js +176 -0
- package/lib/dist/search/identifier-segments.js.map +1 -0
- package/lib/dist/sync/git-hooks.d.ts.map +1 -1
- package/lib/dist/sync/git-hooks.js +2 -0
- package/lib/dist/sync/git-hooks.js.map +1 -1
- package/lib/dist/sync/watcher.d.ts +10 -5
- package/lib/dist/sync/watcher.d.ts.map +1 -1
- package/lib/dist/sync/watcher.js +51 -14
- package/lib/dist/sync/watcher.js.map +1 -1
- package/lib/dist/sync/worktree.d.ts.map +1 -1
- package/lib/dist/sync/worktree.js +5 -0
- package/lib/dist/sync/worktree.js.map +1 -1
- package/lib/dist/types.d.ts +19 -1
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +10 -0
- package/lib/dist/types.js.map +1 -1
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
- package/lib/dist/reasoning/config.d.ts +0 -45
- package/lib/dist/reasoning/config.d.ts.map +0 -1
- package/lib/dist/reasoning/config.js +0 -171
- package/lib/dist/reasoning/config.js.map +0 -1
- package/lib/dist/reasoning/credentials.d.ts +0 -5
- package/lib/dist/reasoning/credentials.d.ts.map +0 -1
- package/lib/dist/reasoning/credentials.js +0 -83
- package/lib/dist/reasoning/credentials.js.map +0 -1
- package/lib/dist/reasoning/login.d.ts +0 -21
- package/lib/dist/reasoning/login.d.ts.map +0 -1
- package/lib/dist/reasoning/login.js +0 -85
- package/lib/dist/reasoning/login.js.map +0 -1
- package/lib/dist/reasoning/reasoner.d.ts +0 -43
- package/lib/dist/reasoning/reasoner.d.ts.map +0 -1
- package/lib/dist/reasoning/reasoner.js +0 -308
- package/lib/dist/reasoning/reasoner.js.map +0 -1
|
@@ -6,6 +6,11 @@ exports.stripCppTemplateArgs = stripCppTemplateArgs;
|
|
|
6
6
|
exports.blankCppExportMacros = blankCppExportMacros;
|
|
7
7
|
exports.blankCppInlineMacros = blankCppInlineMacros;
|
|
8
8
|
exports.recoverMangledCppName = recoverMangledCppName;
|
|
9
|
+
exports.blankMetalAttributes = blankMetalAttributes;
|
|
10
|
+
exports.blankCppAnnotationMacroCalls = blankCppAnnotationMacroCalls;
|
|
11
|
+
exports.blankCppApiPrefixMacros = blankCppApiPrefixMacros;
|
|
12
|
+
exports.blankCppInlineAnnotationMacros = blankCppInlineAnnotationMacros;
|
|
13
|
+
exports.blankCudaConstructs = blankCudaConstructs;
|
|
9
14
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
10
15
|
/**
|
|
11
16
|
* Find the function NAME's `qualified_identifier` (`Foo::bar`) inside a
|
|
@@ -32,7 +37,60 @@ function findDeclaratorQualifiedId(declarator) {
|
|
|
32
37
|
}
|
|
33
38
|
return undefined;
|
|
34
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Recover the real function name from the macro-definition idiom
|
|
42
|
+
* `MACRO_NAME(real_name, typed args…) { body }` — flash-attention's
|
|
43
|
+
* `DEFINE_FLASH_FORWARD_KERNEL(flash_fwd_kernel, bool Is_dropout, …) { … }`
|
|
44
|
+
* being the motivating case: tree-sitter parses the invocation as a
|
|
45
|
+
* function_definition NAMED after the macro, so every such kernel shared one
|
|
46
|
+
* name (`DEFINE_FLASH_FORWARD_KERNEL`) and the launch sites' calls to the real
|
|
47
|
+
* names (`flash_fwd_kernel<…><<<…>>>`) could never resolve.
|
|
48
|
+
*
|
|
49
|
+
* Deliberately narrow so name-in-first-arg is unambiguous — ALL of:
|
|
50
|
+
* - the parsed name is macro-shaped: ALL-CAPS with at least one underscore
|
|
51
|
+
* (`TEST` never matches; K&R C definitions have lowercase names);
|
|
52
|
+
* - the first "parameter" is a LONE identifier (no type, no declarator)
|
|
53
|
+
* containing a lowercase letter — the name being defined;
|
|
54
|
+
* - at least one more parameter follows and NONE of them is another lone
|
|
55
|
+
* identifier — a second bare arg means the first isn't the name (gtest's
|
|
56
|
+
* `TEST_F(Fixture, Name)`, `PYBIND11_MODULE(ext, m)`,
|
|
57
|
+
* google-benchmark's `BENCHMARK_DEFINE_F(Fix, name)` all bail here).
|
|
58
|
+
*/
|
|
59
|
+
function recoverCppMacroDefinedName(node, source) {
|
|
60
|
+
if (node.type !== 'function_definition')
|
|
61
|
+
return undefined;
|
|
62
|
+
const declarator = (0, tree_sitter_helpers_1.getChildByField)(node, 'declarator');
|
|
63
|
+
if (declarator?.type !== 'function_declarator')
|
|
64
|
+
return undefined;
|
|
65
|
+
const inner = (0, tree_sitter_helpers_1.getChildByField)(declarator, 'declarator');
|
|
66
|
+
if (inner?.type !== 'identifier')
|
|
67
|
+
return undefined;
|
|
68
|
+
const macroName = (0, tree_sitter_helpers_1.getNodeText)(inner, source);
|
|
69
|
+
if (!/^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$/.test(macroName))
|
|
70
|
+
return undefined;
|
|
71
|
+
const params = (0, tree_sitter_helpers_1.getChildByField)(declarator, 'parameters');
|
|
72
|
+
if (!params || params.namedChildCount < 2)
|
|
73
|
+
return undefined;
|
|
74
|
+
const loneIdentText = (p) => p.type === 'parameter_declaration' &&
|
|
75
|
+
p.namedChildCount === 1 &&
|
|
76
|
+
p.namedChild(0)?.type === 'type_identifier'
|
|
77
|
+
? (0, tree_sitter_helpers_1.getNodeText)(p.namedChild(0), source)
|
|
78
|
+
: null;
|
|
79
|
+
const first = params.namedChild(0);
|
|
80
|
+
const name = first ? loneIdentText(first) : null;
|
|
81
|
+
if (!name || !/[a-z]/.test(name))
|
|
82
|
+
return undefined;
|
|
83
|
+
for (let i = 1; i < params.namedChildCount; i++) {
|
|
84
|
+
const p = params.namedChild(i);
|
|
85
|
+
if (p && loneIdentText(p) !== null)
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
return name;
|
|
89
|
+
}
|
|
35
90
|
function extractCppQualifiedMethodName(node, source) {
|
|
91
|
+
const macroDefined = recoverCppMacroDefinedName(node, source);
|
|
92
|
+
if (macroDefined)
|
|
93
|
+
return macroDefined;
|
|
36
94
|
const declarator = (0, tree_sitter_helpers_1.getChildByField)(node, 'declarator');
|
|
37
95
|
if (!declarator)
|
|
38
96
|
return undefined;
|
|
@@ -139,6 +197,8 @@ function extractCppReturnType(node, source) {
|
|
|
139
197
|
return normalizeCppReturnType((0, tree_sitter_helpers_1.getNodeText)(typeNode, source));
|
|
140
198
|
}
|
|
141
199
|
exports.cExtractor = {
|
|
200
|
+
// CUDA in C-detected headers (content-gated blank; see preParseCSource).
|
|
201
|
+
preParse: preParseCSource,
|
|
142
202
|
// Universal net: recover a real name from any macro-mangled function name.
|
|
143
203
|
recoverMangledName: recoverMangledCppName,
|
|
144
204
|
functionTypes: ['function_definition'],
|
|
@@ -369,10 +429,315 @@ function recoverMangledCppName(name) {
|
|
|
369
429
|
return name;
|
|
370
430
|
return candidate;
|
|
371
431
|
}
|
|
372
|
-
/**
|
|
373
|
-
*
|
|
374
|
-
|
|
375
|
-
|
|
432
|
+
/**
|
|
433
|
+
* Blank Metal Shading Language `[[attribute]]` annotations before parsing.
|
|
434
|
+
* MSL (≈ C++14) puts attributes AFTER the declarator — `float4 position
|
|
435
|
+
* [[position]];`, `constant Uniforms &u [[buffer(0)]]` — a position
|
|
436
|
+
* tree-sitter-cpp can't reconcile: a struct field with a trailing attribute
|
|
437
|
+
* misparses into a shape that emits a spurious `extends` reference from the
|
|
438
|
+
* struct to the field's *type* (`VertexIn extends float3`), which becomes a
|
|
439
|
+
* wrong inheritance edge whenever the repo defines that type itself (simd
|
|
440
|
+
* typedefs in a shared ShaderTypes.h are common). Replacing the attribute with
|
|
441
|
+
* equal-length spaces preserves every byte offset and lets fields and
|
|
442
|
+
* parameters parse as ordinary declarations, mirroring the macro blanks above.
|
|
443
|
+
*
|
|
444
|
+
* Matched tightly to the attribute shape — `[[ident]]`, `[[ident(args)]]`, and
|
|
445
|
+
* comma-separated lists (`[[buffer(0), raster_order_group(0)]]`) — so a
|
|
446
|
+
* subscripted lambda call (`arr[[]{ … }()]`, the only other way `[[` appears in
|
|
447
|
+
* C++-family source) can never match: after `[[` a lambda continues with `]`,
|
|
448
|
+
* never an identifier followed by `]]`. Applied ONLY to `.metal` files — in
|
|
449
|
+
* regular C++ the pre-declarator attribute position (`[[nodiscard]] int f()`)
|
|
450
|
+
* is legal syntax the grammar parses natively, and blanking it would be pure
|
|
451
|
+
* blast radius. (#1121)
|
|
452
|
+
*/
|
|
453
|
+
const METAL_ATTRIBUTE_RE = /\[\[\s*[A-Za-z_]\w*(?:\s*\([^()\n]*\))?(?:\s*,\s*[A-Za-z_]\w*(?:\s*\([^()\n]*\))?)*\s*\]\]/g;
|
|
454
|
+
function blankMetalAttributes(source) {
|
|
455
|
+
if (source.indexOf('[[') === -1)
|
|
456
|
+
return source;
|
|
457
|
+
return source.replace(METAL_ATTRIBUTE_RE, (m) => ' '.repeat(m.length));
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Blank annotation-style macro invocations that decorate a declaration but carry
|
|
461
|
+
* NO terminating semicolon — the pervasive Unreal-Engine reflection markup
|
|
462
|
+
* (`UPROPERTY(...)`, `UFUNCTION(...)`, `UCLASS(...)`, `GENERATED_BODY()`,
|
|
463
|
+
* `UE_DEPRECATED_FORGAME(...)`, `DECLARE_DELEGATE_*(...)`, …) that sits on its
|
|
464
|
+
* own line right before a member/type. tree-sitter's C++ grammar doesn't know
|
|
465
|
+
* these are macros, so each one drops into error recovery; in a big reflected
|
|
466
|
+
* class (`CharacterMovementComponent.h` has ~240 of them) the errors accumulate
|
|
467
|
+
* until the enclosing `class_specifier` can't close and collapses into an ERROR
|
|
468
|
+
* node — the whole class definition, its members, and its `extends` edges vanish
|
|
469
|
+
* from the graph. Neither `blankCppExportMacros` (class-header export macros) nor
|
|
470
|
+
* `blankCppInlineMacros` (return-type inline specifiers) touches these in-body
|
|
471
|
+
* markup macros. Replacing each with equal-length spaces preserves every byte
|
|
472
|
+
* offset (so line/column stay exact) and the class then parses normally.
|
|
473
|
+
*
|
|
474
|
+
* Deliberately name-list-FREE — UE alone has hundreds of such macros and projects
|
|
475
|
+
* add their own — so it keys on structure, not a curated list, matched tightly to
|
|
476
|
+
* avoid touching legitimate C++:
|
|
477
|
+
* - the macro must be the FIRST non-whitespace token on its line (`^[ \t]*`),
|
|
478
|
+
* which is where declaration markup lives — so a macro used inside an
|
|
479
|
+
* expression or condition (`if (CHECK(x))`, `x = MACRO(a) + b`) is never
|
|
480
|
+
* matched (it isn't line-leading);
|
|
481
|
+
* - the name must be ALL-CAPS (`[A-Z][A-Z0-9_]{2,}`), since ordinary
|
|
482
|
+
* function/type names called at line start are lower/mixed case;
|
|
483
|
+
* - the char after the balanced `(...)` must START A DECLARATION — a letter,
|
|
484
|
+
* `_`, `~` (destructor), or `#` (a following directive). Declaration markup is
|
|
485
|
+
* always followed by the thing it decorates (`UPROPERTY(...)\n float X;`,
|
|
486
|
+
* `UE_DEPRECATED(...) UPROPERTY(...)`), whereas a statement call is followed by
|
|
487
|
+
* `;` (`FOO(x);`), an init-list item by `,`/`{`, and an expression fragment by
|
|
488
|
+
* an operator (`MAKE(a) + 1`) — all rejected. String/char literals inside the
|
|
489
|
+
* args are skipped so an embedded `)` can't mis-close the balance.
|
|
490
|
+
*
|
|
491
|
+
* C++-only (wired into cppExtractor). A blanked macro inside a block comment is
|
|
492
|
+
* harmless (comments don't parse), and the rare line-leading no-semicolon
|
|
493
|
+
* ALL-CAPS call that isn't markup only loses that one annotation, never a whole
|
|
494
|
+
* class.
|
|
495
|
+
*/
|
|
496
|
+
function blankCppAnnotationMacroCalls(source) {
|
|
497
|
+
if (!/^[ \t]*[A-Z][A-Z0-9_]{2,}\s*\(/m.test(source))
|
|
498
|
+
return source;
|
|
499
|
+
const chars = source.split('');
|
|
500
|
+
const re = /^([ \t]*)([A-Z][A-Z0-9_]{2,})(\s*)\(/gm;
|
|
501
|
+
let m;
|
|
502
|
+
while ((m = re.exec(source)) !== null) {
|
|
503
|
+
const macroStart = m.index + (m[1] ?? '').length; // skip leading indent
|
|
504
|
+
let i = m.index + m[0].length - 1; // index of the opening '('
|
|
505
|
+
let depth = 0;
|
|
506
|
+
let end = -1;
|
|
507
|
+
for (; i < source.length; i++) {
|
|
508
|
+
const c = source[i];
|
|
509
|
+
if (c === '"' || c === "'") {
|
|
510
|
+
const quote = c;
|
|
511
|
+
i++;
|
|
512
|
+
while (i < source.length && source[i] !== quote) {
|
|
513
|
+
if (source[i] === '\\')
|
|
514
|
+
i++;
|
|
515
|
+
i++;
|
|
516
|
+
}
|
|
517
|
+
continue;
|
|
518
|
+
}
|
|
519
|
+
if (c === '(')
|
|
520
|
+
depth++;
|
|
521
|
+
else if (c === ')') {
|
|
522
|
+
depth--;
|
|
523
|
+
if (depth === 0) {
|
|
524
|
+
end = i + 1;
|
|
525
|
+
break;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
if (end < 0)
|
|
530
|
+
continue;
|
|
531
|
+
let j = end;
|
|
532
|
+
while (j < source.length && /\s/.test(source[j]))
|
|
533
|
+
j++;
|
|
534
|
+
const after = source[j];
|
|
535
|
+
// Only markup is followed by the declaration it decorates; a statement call
|
|
536
|
+
// (`;`), init-list item (`,`/`{`), or expression fragment (operator) is not.
|
|
537
|
+
if (!after || !/[A-Za-z_~#]/.test(after))
|
|
538
|
+
continue;
|
|
539
|
+
for (let k = macroStart; k < end; k++) {
|
|
540
|
+
if (chars[k] !== '\n' && chars[k] !== '\r')
|
|
541
|
+
chars[k] = ' ';
|
|
542
|
+
}
|
|
543
|
+
re.lastIndex = end;
|
|
544
|
+
}
|
|
545
|
+
return chars.join('');
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Blank an export/visibility macro sitting in front of a *member* or *method*
|
|
549
|
+
* declaration inside a class/namespace (`ENGINE_API virtual void Tick(…)`,
|
|
550
|
+
* `static ENGINE_API void AddReferencedObjects(…)`, `UE_API FVector GetVel()
|
|
551
|
+
* const`), before parsing. `blankCppExportMacros` only recovers the macro in a
|
|
552
|
+
* `class MACRO Name` *header*; the very same macro also prefixes almost every
|
|
553
|
+
* exported member of a big Unreal-Engine class, and tree-sitter — not knowing
|
|
554
|
+
* it's a macro — reads `MACRO <return-type> <name>(` as an extra type token and
|
|
555
|
+
* drops each such declaration into error recovery. In a heavily-exported header
|
|
556
|
+
* (`Actor.h`, `World.h`, …) hundreds of these accumulate: the return types pile
|
|
557
|
+
* up as orphan ERROR tokens and, combined with other markup, can still tip the
|
|
558
|
+
* enclosing class into collapse. Replacing the macro with equal-length spaces
|
|
559
|
+
* preserves every byte offset (line/column stay exact) and each member parses
|
|
560
|
+
* as an ordinary declaration.
|
|
561
|
+
*
|
|
562
|
+
* Matched tightly so it can't touch the same token used as a value
|
|
563
|
+
* (`int x = SOME_API;`, `if (mode == FOO_API)`): the token must be ALL-CAPS AND
|
|
564
|
+
* end in the conventional visibility-macro suffix `_API` / `_EXPORT` / `_ABI`
|
|
565
|
+
* (Unreal `*_API`, Qt/Boost `*_EXPORT`, LLVM `*_ABI`) — ordinary identifiers
|
|
566
|
+
* effectively never carry these suffixes — and must be immediately followed by
|
|
567
|
+
* whitespace then a declaration token (`\s+[A-Za-z_]`: a type, `virtual`,
|
|
568
|
+
* `static`, or the name). A value use is instead followed by `;`, `)`, `,`,
|
|
569
|
+
* `=`, `::`, or an operator, all of which fail the look-ahead. C++-only (wired
|
|
570
|
+
* into cppExtractor).
|
|
571
|
+
*/
|
|
572
|
+
const CPP_API_PREFIX_RE = /\b[A-Z][A-Z0-9_]*(?:_API|_EXPORT|_ABI)\b(?=\s+[A-Za-z_])/g;
|
|
573
|
+
function blankCppApiPrefixMacros(source) {
|
|
574
|
+
if (!/_(?:API|EXPORT|ABI)\b/.test(source))
|
|
575
|
+
return source;
|
|
576
|
+
return source.replace(CPP_API_PREFIX_RE, (m) => ' '.repeat(m.length));
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* Blank an Unreal-Engine annotation macro that appears MID-LINE (not
|
|
580
|
+
* line-leading, so `blankCppAnnotationMacroCalls` never sees it) inside a
|
|
581
|
+
* declaration: an enum value's `UMETA(DisplayName="…")`, a parameter's
|
|
582
|
+
* `UPARAM(ref)`, or a deprecation tag wedged into a `using`/member declaration
|
|
583
|
+
* (`using FOnNetTick UE_DEPRECATED(5.5, "…") = TMulticastDelegate<void(float)>;`
|
|
584
|
+
* in `World.h`, which otherwise collapses `UWorld`). tree-sitter can't reconcile
|
|
585
|
+
* these embedded macro calls and drops into error recovery, and a mid-line one
|
|
586
|
+
* inside a big enum or a class-scope `using` can cascade into the whole enum /
|
|
587
|
+
* class being lost. Replacing the entire `MACRO(...)` (balanced parens, string
|
|
588
|
+
* literals skipped so an embedded `)` can't mis-close) with equal-length spaces
|
|
589
|
+
* preserves every byte offset and the declaration parses normally.
|
|
590
|
+
*
|
|
591
|
+
* Keyed on an explicit UE-only name list (`UMETA`, `UPARAM`, and the
|
|
592
|
+
* `UE_DEPRECATED*` family) — these identifiers are exclusive to Unreal's
|
|
593
|
+
* reflection layer and appear in no standard-C++ or other-library code, so
|
|
594
|
+
* blanking them is zero-risk to non-UE sources. (The line-LEADING forms of
|
|
595
|
+
* `UE_DEPRECATED(...)` are already handled by `blankCppAnnotationMacroCalls`;
|
|
596
|
+
* this covers the mid-line forms it structurally can't.) C++-only.
|
|
597
|
+
*/
|
|
598
|
+
const CPP_INLINE_ANNOTATION_RE = /\b(?:UMETA|UPARAM|UE_DEPRECATED\w*)\s*\(/g;
|
|
599
|
+
function blankCppInlineAnnotationMacros(source) {
|
|
600
|
+
if (!/\b(?:UMETA|UPARAM|UE_DEPRECATED)/.test(source))
|
|
601
|
+
return source;
|
|
602
|
+
const chars = source.split('');
|
|
603
|
+
const re = new RegExp(CPP_INLINE_ANNOTATION_RE.source, 'g');
|
|
604
|
+
let m;
|
|
605
|
+
while ((m = re.exec(source)) !== null) {
|
|
606
|
+
let i = m.index + m[0].length - 1; // index of the opening '('
|
|
607
|
+
let depth = 0;
|
|
608
|
+
let end = -1;
|
|
609
|
+
for (; i < source.length; i++) {
|
|
610
|
+
const c = source[i];
|
|
611
|
+
if (c === '"' || c === "'") {
|
|
612
|
+
const quote = c;
|
|
613
|
+
i++;
|
|
614
|
+
while (i < source.length && source[i] !== quote) {
|
|
615
|
+
if (source[i] === '\\')
|
|
616
|
+
i++;
|
|
617
|
+
i++;
|
|
618
|
+
}
|
|
619
|
+
continue;
|
|
620
|
+
}
|
|
621
|
+
if (c === '(')
|
|
622
|
+
depth++;
|
|
623
|
+
else if (c === ')') {
|
|
624
|
+
depth--;
|
|
625
|
+
if (depth === 0) {
|
|
626
|
+
end = i + 1;
|
|
627
|
+
break;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
if (end < 0)
|
|
632
|
+
continue;
|
|
633
|
+
for (let k = m.index; k < end; k++) {
|
|
634
|
+
if (chars[k] !== '\n' && chars[k] !== '\r')
|
|
635
|
+
chars[k] = ' ';
|
|
636
|
+
}
|
|
637
|
+
re.lastIndex = end;
|
|
638
|
+
}
|
|
639
|
+
return chars.join('');
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Blank CUDA-specific constructs before parsing `.cu`/`.cuh` files (parsed with
|
|
643
|
+
* the C++ grammar). Three shapes tree-sitter-cpp can't reconcile, each replaced
|
|
644
|
+
* with equal-length whitespace so every byte offset survives (#387):
|
|
645
|
+
*
|
|
646
|
+
* 1. Execution-space / storage specifiers: in `__global__ void step(…)` or
|
|
647
|
+
* `__shared__ float tile[256]` the specifier parses as the declaration's
|
|
648
|
+
* TYPE and shunts the real return/value type into an ERROR node — mangling
|
|
649
|
+
* signatures and, for `__shared__` arrays, the declared name itself. Blanked
|
|
650
|
+
* unconditionally (no following-token lookahead) so extended lambdas
|
|
651
|
+
* (`[=] __device__ (int i) { … }`) recover too. `__restrict__` is deliberately
|
|
652
|
+
* absent: the grammar already parses it natively as a type_qualifier.
|
|
653
|
+
* 2. `__launch_bounds__(…)` between specifier and declarator — same misparse.
|
|
654
|
+
* The parenthesized form is blanked first; a bare leftover token is caught
|
|
655
|
+
* by the specifier list.
|
|
656
|
+
* 3. Kernel-launch configs `step<<<grid, block, smem, stream>>>(args)`: the
|
|
657
|
+
* chevrons lex as shift operators around an empty-named template, so no
|
|
658
|
+
* call_expression exists and the host→kernel call edge — the main reason to
|
|
659
|
+
* index CUDA at all — is lost. Blanking the `<<<…>>>` span leaves
|
|
660
|
+
* `step (args)`, a plain call the grammar
|
|
661
|
+
* parses natively (templated launches `k<T, 256><<<…>>>(…)` included).
|
|
662
|
+
*
|
|
663
|
+
* The launch-config match is deliberately bounded — statement/brace characters
|
|
664
|
+
* excluded, span capped, newlines preserved by the replacer — so a stray `<<<`
|
|
665
|
+
* (a committed merge-conflict marker, a string literal) can never blank a run
|
|
666
|
+
* of real code: an unmatched launch degrades to the status quo for that call
|
|
667
|
+
* site (no call edge), never to corruption. Applied to `.cu`/`.cuh` files and —
|
|
668
|
+
* because much real CUDA lives in extension-less headers (cutlass launches the
|
|
669
|
+
* majority of its kernels from `.h`; flash-attention's launch templates are
|
|
670
|
+
* `.h`; llm.c keeps device helpers in C-detected `.h`) — to any C/C++-family
|
|
671
|
+
* file whose CONTENT carries a strong CUDA marker (`looksLikeCudaSource`).
|
|
672
|
+
* Unlike Metal's `[[attribute]]` (legal C++ syntax elsewhere, hence Metal's
|
|
673
|
+
* strict extension gate), no CUDA marker is valid C++ anywhere: `<<<` isn't
|
|
674
|
+
* legal syntax and the dunder specifiers are implementation-reserved names no
|
|
675
|
+
* real codebase defines — so a content-triggered blank on a non-CUDA file can
|
|
676
|
+
* only ever whitespace tokens inside comments or strings, which parse the same.
|
|
677
|
+
*/
|
|
678
|
+
const CUDA_LAUNCH_BOUNDS_RE = /\b__launch_bounds__\s*\([^()\n]*\)/g;
|
|
679
|
+
const CUDA_SPECIFIER_RE = /\b__(?:global|device|host|constant|shared|managed|grid_constant|forceinline|noinline|launch_bounds)__\b/g;
|
|
680
|
+
// `;` stays excluded (launch configs are expressions; a stray `<<<` spanning
|
|
681
|
+
// real statements always crosses one) and the span is capped. Braces are
|
|
682
|
+
// allowed through the regex — `k<<<dim3{1,1,1}, dim3{256,1,1}>>>(…)` is a real
|
|
683
|
+
// launch shape — but the replacer only blanks a BALANCED match: a merge
|
|
684
|
+
// conflict's `<<<<<<< … >>>>>>>` region that dodges every `;` still opens
|
|
685
|
+
// braces it never closes, so it fails the balance check and stays untouched.
|
|
686
|
+
const CUDA_LAUNCH_CONFIG_RE = /<<<[^;]{0,400}?>>>/g;
|
|
687
|
+
function blankCudaConstructs(source) {
|
|
688
|
+
let out = source;
|
|
689
|
+
if (out.indexOf('__') !== -1) {
|
|
690
|
+
out = out
|
|
691
|
+
.replace(CUDA_LAUNCH_BOUNDS_RE, (m) => ' '.repeat(m.length))
|
|
692
|
+
.replace(CUDA_SPECIFIER_RE, (m) => ' '.repeat(m.length));
|
|
693
|
+
}
|
|
694
|
+
if (out.indexOf('<<<') !== -1) {
|
|
695
|
+
out = out.replace(CUDA_LAUNCH_CONFIG_RE, (m) => {
|
|
696
|
+
let depth = 0;
|
|
697
|
+
for (let i = 0; i < m.length; i++) {
|
|
698
|
+
const ch = m.charCodeAt(i);
|
|
699
|
+
if (ch === 0x7b /* { */)
|
|
700
|
+
depth++;
|
|
701
|
+
else if (ch === 0x7d /* } */ && --depth < 0)
|
|
702
|
+
return m;
|
|
703
|
+
}
|
|
704
|
+
return depth === 0 ? m.replace(/[^\n]/g, ' ') : m;
|
|
705
|
+
});
|
|
706
|
+
}
|
|
707
|
+
return out;
|
|
708
|
+
}
|
|
709
|
+
/** Strong content markers for CUDA source in files without a CUDA extension
|
|
710
|
+
* (headers). The dunders are execution-space specifiers that only nvcc defines;
|
|
711
|
+
* `cudaStream_t` is the runtime's stream handle, pervasive in launcher headers
|
|
712
|
+
* that themselves declare no kernel. Deliberately excludes weak markers (`dim3`,
|
|
713
|
+
* `<<<`) that could plausibly appear in non-CUDA text. */
|
|
714
|
+
function looksLikeCudaSource(source) {
|
|
715
|
+
return (source.indexOf('__global__') !== -1 ||
|
|
716
|
+
source.indexOf('__device__') !== -1 ||
|
|
717
|
+
source.indexOf('__constant__') !== -1 ||
|
|
718
|
+
source.indexOf('cudaStream_t') !== -1);
|
|
719
|
+
}
|
|
720
|
+
/** C/C++ source pre-processing before tree-sitter: recover macro-annotated class
|
|
721
|
+
* definitions, macro-prefixed function definitions, macro-prefixed members, and
|
|
722
|
+
* macro-decorated members (Unreal-Engine reflection markup) — plus the non-C++
|
|
723
|
+
* surface of the dialects parsed with the C++ grammar: `.metal` MSL attribute
|
|
724
|
+
* annotations, and CUDA specifiers + launch syntax (by `.cu`/`.cuh` extension
|
|
725
|
+
* or by content, for CUDA living in `.h`/`.hpp` headers). Offset-preserving. */
|
|
726
|
+
function preParseCppSource(source, filePath) {
|
|
727
|
+
const blanked = blankCppAnnotationMacroCalls(blankCppInlineAnnotationMacros(blankCppApiPrefixMacros(blankCppInlineMacros(blankCppExportMacros(source)))));
|
|
728
|
+
const lower = filePath ? filePath.toLowerCase() : '';
|
|
729
|
+
if (lower.endsWith('.metal'))
|
|
730
|
+
return blankMetalAttributes(blanked);
|
|
731
|
+
if (lower.endsWith('.cu') || lower.endsWith('.cuh') || looksLikeCudaSource(source)) {
|
|
732
|
+
return blankCudaConstructs(blanked);
|
|
733
|
+
}
|
|
734
|
+
return blanked;
|
|
735
|
+
}
|
|
736
|
+
/** C source pre-processing: C-detected headers in CUDA projects (llm.c keeps
|
|
737
|
+
* `__device__` helpers and kernel prototypes in plain `.h`) get the same
|
|
738
|
+
* content-gated CUDA blank as C++. */
|
|
739
|
+
function preParseCSource(source) {
|
|
740
|
+
return looksLikeCudaSource(source) ? blankCudaConstructs(source) : source;
|
|
376
741
|
}
|
|
377
742
|
exports.cppExtractor = {
|
|
378
743
|
// Recover macro-annotated class/struct definitions (`class MYMODULE_API Foo : Base`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c-cpp.js","sourceRoot":"","sources":["../../../src/extraction/languages/c-cpp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c-cpp.js","sourceRoot":"","sources":["../../../src/extraction/languages/c-cpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LanguageExtractor } from '../tree-sitter-types';
|
|
2
|
+
/**
|
|
3
|
+
* `<cfquery>` SQL bodies: `#hash#` expressions inside the SQL text are real
|
|
4
|
+
* CFML expressions (tree-sitter-cfml's `cfquery` grammar parses them
|
|
5
|
+
* structurally — `call_expression`/`member_expression`, same shape as
|
|
6
|
+
* cfscript's), so a call like `#getCurrentUser().getId()#` embedded in a
|
|
7
|
+
* WHERE clause is a genuine call edge. The surrounding SQL keywords/
|
|
8
|
+
* identifiers aren't symbols CodeGraph models — only `call_expression` is
|
|
9
|
+
* mapped, so extraction yields call references and nothing else.
|
|
10
|
+
*/
|
|
11
|
+
export declare const cfqueryExtractor: LanguageExtractor;
|
|
12
|
+
//# sourceMappingURL=cfquery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfquery.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/cfquery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAc9B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cfqueryExtractor = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `<cfquery>` SQL bodies: `#hash#` expressions inside the SQL text are real
|
|
6
|
+
* CFML expressions (tree-sitter-cfml's `cfquery` grammar parses them
|
|
7
|
+
* structurally — `call_expression`/`member_expression`, same shape as
|
|
8
|
+
* cfscript's), so a call like `#getCurrentUser().getId()#` embedded in a
|
|
9
|
+
* WHERE clause is a genuine call edge. The surrounding SQL keywords/
|
|
10
|
+
* identifiers aren't symbols CodeGraph models — only `call_expression` is
|
|
11
|
+
* mapped, so extraction yields call references and nothing else.
|
|
12
|
+
*/
|
|
13
|
+
exports.cfqueryExtractor = {
|
|
14
|
+
functionTypes: [],
|
|
15
|
+
classTypes: [],
|
|
16
|
+
methodTypes: [],
|
|
17
|
+
interfaceTypes: [],
|
|
18
|
+
structTypes: [],
|
|
19
|
+
enumTypes: [],
|
|
20
|
+
typeAliasTypes: [],
|
|
21
|
+
importTypes: [],
|
|
22
|
+
callTypes: ['call_expression'],
|
|
23
|
+
variableTypes: [],
|
|
24
|
+
nameField: 'name',
|
|
25
|
+
bodyField: 'body',
|
|
26
|
+
paramsField: 'parameters',
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=cfquery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfquery.js","sourceRoot":"","sources":["../../../src/extraction/languages/cfquery.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACU,QAAA,gBAAgB,GAAsB;IACjD,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;IACf,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,iBAAiB,CAAC;IAC9B,aAAa,EAAE,EAAE;IACjB,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,YAAY;CAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfscript.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/cfscript.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAiB9D,eAAO,MAAM,iBAAiB,EAAE,iBAiD/B,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cfscriptExtractor = void 0;
|
|
4
|
+
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
5
|
+
/** CFML access modifiers (`public`/`private`/`package`/`remote`) on a function_declaration. */
|
|
6
|
+
function cfmlVisibility(node) {
|
|
7
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
8
|
+
const child = node.child(i);
|
|
9
|
+
if (child?.type === 'access_type') {
|
|
10
|
+
const text = child.text;
|
|
11
|
+
if (text === 'public')
|
|
12
|
+
return 'public';
|
|
13
|
+
if (text === 'private')
|
|
14
|
+
return 'private';
|
|
15
|
+
if (text === 'package')
|
|
16
|
+
return 'internal';
|
|
17
|
+
if (text === 'remote')
|
|
18
|
+
return 'public';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
exports.cfscriptExtractor = {
|
|
24
|
+
functionTypes: ['function_declaration', 'function_expression', 'arrow_function'],
|
|
25
|
+
classTypes: ['component'],
|
|
26
|
+
// `component` is reused for both `component { ... }` and `interface { ... }` —
|
|
27
|
+
// the only difference is the literal first token (verified via the grammar's
|
|
28
|
+
// native binding: child(0).type is 'component' or 'interface', both unnamed).
|
|
29
|
+
classifyClassNode: (node) => (node.child(0)?.type === 'interface' ? 'interface' : 'class'),
|
|
30
|
+
methodTypes: ['function_declaration', 'method_definition'],
|
|
31
|
+
interfaceTypes: [],
|
|
32
|
+
structTypes: [],
|
|
33
|
+
enumTypes: [],
|
|
34
|
+
typeAliasTypes: [],
|
|
35
|
+
importTypes: ['import_statement', 'include_statement'],
|
|
36
|
+
callTypes: ['call_expression'],
|
|
37
|
+
variableTypes: ['variable_declaration'],
|
|
38
|
+
propertyTypes: ['property_declaration'],
|
|
39
|
+
nameField: 'name',
|
|
40
|
+
bodyField: 'body',
|
|
41
|
+
paramsField: 'parameters',
|
|
42
|
+
getVisibility: cfmlVisibility,
|
|
43
|
+
getSignature: (node, source) => {
|
|
44
|
+
const params = (0, tree_sitter_helpers_1.getChildByField)(node, 'parameters');
|
|
45
|
+
return params ? (0, tree_sitter_helpers_1.getNodeText)(params, source) : undefined;
|
|
46
|
+
},
|
|
47
|
+
extractImport: (node, source) => {
|
|
48
|
+
const importText = source.substring(node.startIndex, node.endIndex).trim();
|
|
49
|
+
if (node.type === 'include_statement') {
|
|
50
|
+
// `include "path/to/file.cfm";` — the included template path.
|
|
51
|
+
const expr = node.namedChildren.find((c) => c.type === 'string');
|
|
52
|
+
if (!expr)
|
|
53
|
+
return null;
|
|
54
|
+
const moduleName = (0, tree_sitter_helpers_1.getNodeText)(expr, source).replace(/^["']|["']$/g, '');
|
|
55
|
+
return moduleName ? { moduleName, signature: importText } : null;
|
|
56
|
+
}
|
|
57
|
+
// `import com.foo.Bar;` (dotted path) or `import "java:java.util.ArrayList";` (string form)
|
|
58
|
+
const sourceNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'source');
|
|
59
|
+
if (!sourceNode)
|
|
60
|
+
return null;
|
|
61
|
+
let moduleName;
|
|
62
|
+
if (sourceNode.type === 'import_path') {
|
|
63
|
+
moduleName = sourceNode.namedChildren
|
|
64
|
+
.map((c) => (0, tree_sitter_helpers_1.getNodeText)(c, source))
|
|
65
|
+
.join('.');
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
moduleName = (0, tree_sitter_helpers_1.getNodeText)(sourceNode, source).replace(/^["']|["']$/g, '');
|
|
69
|
+
}
|
|
70
|
+
return moduleName ? { moduleName, signature: importText } : null;
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=cfscript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfscript.js","sourceRoot":"","sources":["../../../src/extraction/languages/cfscript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* COBOL Language Extractor
|
|
3
|
+
*
|
|
4
|
+
* COBOL's AST (vendored, patched build of yutaro-sakamoto/tree-sitter-cobol)
|
|
5
|
+
* is fundamentally different from block-structured languages, so extraction
|
|
6
|
+
* runs almost entirely through the custom visitNode hook (the Pascal pattern):
|
|
7
|
+
*
|
|
8
|
+
* - A program (PROGRAM-ID) becomes a `module` node.
|
|
9
|
+
* - PROCEDURE DIVISION sections and paragraphs become `function` nodes. The
|
|
10
|
+
* grammar emits them FLAT — a section_header/paragraph_header followed by
|
|
11
|
+
* sibling statements — so extents are reconstructed here: a paragraph runs
|
|
12
|
+
* from its header to the next header, a section to the next section header.
|
|
13
|
+
* - PERFORM (including THRU ranges), GO TO, and CALL 'literal' become `calls`
|
|
14
|
+
* references. A dynamic CALL through a data name is skipped — announce,
|
|
15
|
+
* don't guess. EXEC CICS LINK/XCTL PROGRAM('X') with a literal target also
|
|
16
|
+
* becomes a `calls` reference; EXEC SQL INCLUDE X becomes an `imports`
|
|
17
|
+
* reference (DB2's COPY).
|
|
18
|
+
* - COPY statements become `import` nodes + `imports` references.
|
|
19
|
+
* - DATA DIVISION entries become `variable` (01/77 levels), `field` (nested
|
|
20
|
+
* levels, contained in their group item), or `constant` (88-level condition
|
|
21
|
+
* names) nodes, so impact queries on working-storage names work.
|
|
22
|
+
* - Standalone copybooks (.cpy) parse via the grammar's copybook_fragment
|
|
23
|
+
* entry point: data copybooks yield their record structure, procedure
|
|
24
|
+
* copybooks yield paragraphs.
|
|
25
|
+
*
|
|
26
|
+
* The grammar is fixed-format (code area columns 8-72). preParse detects a
|
|
27
|
+
* free-format file (division header or level number starting before column 8)
|
|
28
|
+
* and indents every line by 7 spaces: line numbers are preserved, columns
|
|
29
|
+
* drift by 7 — acceptable for line-oriented consumers.
|
|
30
|
+
*/
|
|
31
|
+
import type { LanguageExtractor } from '../tree-sitter-types';
|
|
32
|
+
export declare const cobolExtractor: LanguageExtractor;
|
|
33
|
+
//# sourceMappingURL=cobol.d.ts.map
|