agentmap 0.5.0 → 0.6.0
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/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/extract/definitions.d.ts.map +1 -1
- package/dist/extract/definitions.js +195 -316
- package/dist/extract/definitions.js.map +1 -1
- package/dist/extract/definitions.test.js +749 -20
- package/dist/extract/definitions.test.js.map +1 -1
- package/dist/extract/marker.d.ts.map +1 -1
- package/dist/extract/marker.js +74 -5
- package/dist/extract/marker.js.map +1 -1
- package/dist/extract/marker.test.js +142 -4
- package/dist/extract/marker.test.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -1
- package/dist/index.js.map +1 -1
- package/dist/languages/cpp.d.ts +30 -0
- package/dist/languages/cpp.d.ts.map +1 -0
- package/dist/languages/cpp.js +116 -0
- package/dist/languages/cpp.js.map +1 -0
- package/dist/languages/go.d.ts +26 -0
- package/dist/languages/go.d.ts.map +1 -0
- package/dist/languages/go.js +65 -0
- package/dist/languages/go.js.map +1 -0
- package/dist/languages/index.d.ts +90 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +209 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/javascript.d.ts +18 -0
- package/dist/languages/javascript.d.ts.map +1 -0
- package/dist/languages/javascript.js +23 -0
- package/dist/languages/javascript.js.map +1 -0
- package/dist/languages/python.d.ts +23 -0
- package/dist/languages/python.d.ts.map +1 -0
- package/dist/languages/python.js +35 -0
- package/dist/languages/python.js.map +1 -0
- package/dist/languages/rust.d.ts +26 -0
- package/dist/languages/rust.d.ts.map +1 -0
- package/dist/languages/rust.js +65 -0
- package/dist/languages/rust.js.map +1 -0
- package/dist/languages/typescript.d.ts +30 -0
- package/dist/languages/typescript.d.ts.map +1 -0
- package/dist/languages/typescript.js +68 -0
- package/dist/languages/typescript.js.map +1 -0
- package/dist/languages/zig.d.ts +38 -0
- package/dist/languages/zig.d.ts.map +1 -0
- package/dist/languages/zig.js +104 -0
- package/dist/languages/zig.js.map +1 -0
- package/dist/map/builder.d.ts.map +1 -1
- package/dist/map/builder.js +4 -1
- package/dist/map/builder.js.map +1 -1
- package/dist/parser/languages.d.ts +2 -4
- package/dist/parser/languages.d.ts.map +1 -1
- package/dist/parser/languages.js +4 -29
- package/dist/parser/languages.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +21 -49
- package/dist/scanner.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// C/C++ language support for agentmap.
|
|
2
|
+
export const id = 'cpp';
|
|
3
|
+
export const extensions = ['.c', '.h', '.cpp', '.cc', '.cxx', '.hpp', '.hxx'];
|
|
4
|
+
export const grammar = 'tree-sitter-cpp/tree-sitter-cpp.wasm';
|
|
5
|
+
// AST node types
|
|
6
|
+
export const FUNCTION_TYPES = ['function_definition'];
|
|
7
|
+
export const CLASS_TYPES = ['class_specifier'];
|
|
8
|
+
export const STRUCT_TYPES = ['struct_specifier'];
|
|
9
|
+
export const TRAIT_TYPES = [];
|
|
10
|
+
export const INTERFACE_TYPES = [];
|
|
11
|
+
export const TYPE_TYPES = ['type_definition', 'alias_declaration'];
|
|
12
|
+
export const ENUM_TYPES = ['enum_specifier'];
|
|
13
|
+
export const CONST_TYPES = ['declaration'];
|
|
14
|
+
/**
|
|
15
|
+
* C++ doesn't have module exports in the traditional sense
|
|
16
|
+
*/
|
|
17
|
+
export function isExported(_node) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if a C++ node has extern storage class or is in linkage_specification
|
|
22
|
+
*/
|
|
23
|
+
export function isExtern(node) {
|
|
24
|
+
if (node.type === 'declaration' || node.type === 'function_definition') {
|
|
25
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
26
|
+
const child = node.child(i);
|
|
27
|
+
if (child?.type === 'storage_class_specifier' && child.text === 'extern') {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract name from a C++ node
|
|
36
|
+
*/
|
|
37
|
+
export function extractName(node) {
|
|
38
|
+
if (node.type === 'function_definition') {
|
|
39
|
+
const declarator = node.childForFieldName('declarator');
|
|
40
|
+
if (declarator) {
|
|
41
|
+
const funcDecl = declarator.type === 'function_declarator'
|
|
42
|
+
? declarator
|
|
43
|
+
: findChild(declarator, 'function_declarator');
|
|
44
|
+
if (funcDecl) {
|
|
45
|
+
const innerDecl = funcDecl.childForFieldName('declarator');
|
|
46
|
+
if (innerDecl?.type === 'identifier') {
|
|
47
|
+
return innerDecl.text;
|
|
48
|
+
}
|
|
49
|
+
if (innerDecl?.type === 'qualified_identifier') {
|
|
50
|
+
const name = innerDecl.childForFieldName('name');
|
|
51
|
+
return name?.text ?? null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (node.type === 'struct_specifier' || node.type === 'class_specifier' || node.type === 'enum_specifier') {
|
|
57
|
+
const nameNode = node.childForFieldName('name');
|
|
58
|
+
if (nameNode) {
|
|
59
|
+
return nameNode.text;
|
|
60
|
+
}
|
|
61
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
62
|
+
const child = node.child(i);
|
|
63
|
+
if (child?.type === 'type_identifier') {
|
|
64
|
+
return child.text;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (node.type === 'type_definition') {
|
|
69
|
+
const declarator = node.childForFieldName('declarator');
|
|
70
|
+
if (declarator?.type === 'type_identifier') {
|
|
71
|
+
return declarator.text;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (node.type === 'alias_declaration') {
|
|
75
|
+
const nameNode = node.childForFieldName('name');
|
|
76
|
+
return nameNode?.text ?? null;
|
|
77
|
+
}
|
|
78
|
+
if (node.type === 'declaration') {
|
|
79
|
+
const declarator = node.childForFieldName('declarator');
|
|
80
|
+
if (declarator) {
|
|
81
|
+
if (declarator.type === 'identifier') {
|
|
82
|
+
return declarator.text;
|
|
83
|
+
}
|
|
84
|
+
if (declarator.type === 'init_declarator') {
|
|
85
|
+
const innerDecl = declarator.childForFieldName('declarator');
|
|
86
|
+
if (innerDecl?.type === 'identifier') {
|
|
87
|
+
return innerDecl.text;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
93
|
+
const child = node.child(i);
|
|
94
|
+
if (child?.type === 'identifier' || child?.type === 'type_identifier') {
|
|
95
|
+
return child.text;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Extract name from const declaration
|
|
102
|
+
*/
|
|
103
|
+
export function extractConstName(node) {
|
|
104
|
+
return extractName(node);
|
|
105
|
+
}
|
|
106
|
+
function findChild(node, type) {
|
|
107
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
108
|
+
const child = node.child(i);
|
|
109
|
+
if (child?.type === type)
|
|
110
|
+
return child;
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
// Comment handling
|
|
115
|
+
export const commentPrefixes = ['//', '/*'];
|
|
116
|
+
//# sourceMappingURL=cpp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpp.js","sourceRoot":"","sources":["../../src/languages/cpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SyntaxNode } from '../types.js';
|
|
2
|
+
export declare const id: "go";
|
|
3
|
+
export declare const extensions: string[];
|
|
4
|
+
export declare const grammar = "tree-sitter-go/tree-sitter-go.wasm";
|
|
5
|
+
export declare const FUNCTION_TYPES: string[];
|
|
6
|
+
export declare const CLASS_TYPES: string[];
|
|
7
|
+
export declare const STRUCT_TYPES: string[];
|
|
8
|
+
export declare const TRAIT_TYPES: string[];
|
|
9
|
+
export declare const INTERFACE_TYPES: string[];
|
|
10
|
+
export declare const TYPE_TYPES: string[];
|
|
11
|
+
export declare const ENUM_TYPES: string[];
|
|
12
|
+
export declare const CONST_TYPES: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Check if a Go identifier is exported (starts with uppercase)
|
|
15
|
+
*/
|
|
16
|
+
export declare function isExported(_node: SyntaxNode, name?: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Extract name from a Go node
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractName(node: SyntaxNode): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Extract name from const/var declaration
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractConstName(node: SyntaxNode): string | null;
|
|
25
|
+
export declare const commentPrefixes: string[];
|
|
26
|
+
//# sourceMappingURL=go.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/languages/go.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,eAAO,MAAM,EAAE,EAAG,IAAa,CAAA;AAC/B,eAAO,MAAM,UAAU,UAAU,CAAA;AACjC,eAAO,MAAM,OAAO,uCAAuC,CAAA;AAG3D,eAAO,MAAM,cAAc,UAAiD,CAAA;AAC5E,eAAO,MAAM,WAAW,EAAE,MAAM,EAAO,CAAA;AACvC,eAAO,MAAM,YAAY,EAAE,MAAM,EAAO,CAAA;AACxC,eAAO,MAAM,WAAW,EAAE,MAAM,EAAO,CAAA;AACvC,eAAO,MAAM,eAAe,EAAE,MAAM,EAAO,CAAA;AAC3C,eAAO,MAAM,UAAU,UAAuB,CAAA;AAC9C,eAAO,MAAM,UAAU,EAAE,MAAM,EAAO,CAAA;AACtC,eAAO,MAAM,WAAW,UAA2C,CAAA;AAEnE;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAgB3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAShE;AAWD,eAAO,MAAM,eAAe,UAAe,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Go language support for agentmap.
|
|
2
|
+
export const id = 'go';
|
|
3
|
+
export const extensions = ['.go'];
|
|
4
|
+
export const grammar = 'tree-sitter-go/tree-sitter-go.wasm';
|
|
5
|
+
// AST node types
|
|
6
|
+
export const FUNCTION_TYPES = ['function_declaration', 'method_declaration'];
|
|
7
|
+
export const CLASS_TYPES = []; // Go has structs, not classes
|
|
8
|
+
export const STRUCT_TYPES = []; // Go structs handled via type_declaration
|
|
9
|
+
export const TRAIT_TYPES = [];
|
|
10
|
+
export const INTERFACE_TYPES = []; // Go interfaces handled via type_declaration
|
|
11
|
+
export const TYPE_TYPES = ['type_declaration'];
|
|
12
|
+
export const ENUM_TYPES = [];
|
|
13
|
+
export const CONST_TYPES = ['const_declaration', 'var_declaration'];
|
|
14
|
+
/**
|
|
15
|
+
* Check if a Go identifier is exported (starts with uppercase)
|
|
16
|
+
*/
|
|
17
|
+
export function isExported(_node, name) {
|
|
18
|
+
if (!name || name.length === 0)
|
|
19
|
+
return false;
|
|
20
|
+
const firstChar = name.charAt(0);
|
|
21
|
+
return firstChar >= 'A' && firstChar <= 'Z';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Extract name from a Go node
|
|
25
|
+
*/
|
|
26
|
+
export function extractName(node) {
|
|
27
|
+
if (node.type === 'type_declaration') {
|
|
28
|
+
const spec = findChild(node, 'type_spec');
|
|
29
|
+
if (spec) {
|
|
30
|
+
const nameNode = spec.childForFieldName('name');
|
|
31
|
+
return nameNode?.text ?? null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
35
|
+
const child = node.child(i);
|
|
36
|
+
if (child?.type === 'identifier' || child?.type === 'field_identifier') {
|
|
37
|
+
return child.text;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract name from const/var declaration
|
|
44
|
+
*/
|
|
45
|
+
export function extractConstName(node) {
|
|
46
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
47
|
+
const child = node.child(i);
|
|
48
|
+
if (child?.type === 'const_spec' || child?.type === 'var_spec') {
|
|
49
|
+
const nameNode = child.childForFieldName('name');
|
|
50
|
+
return nameNode?.text ?? null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
function findChild(node, type) {
|
|
56
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
57
|
+
const child = node.child(i);
|
|
58
|
+
if (child?.type === type)
|
|
59
|
+
return child;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
// Comment handling
|
|
64
|
+
export const commentPrefixes = ['//', '/*'];
|
|
65
|
+
//# sourceMappingURL=go.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../src/languages/go.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Language, SyntaxNode, DefinitionType } from '../types.js';
|
|
2
|
+
import * as typescript from './typescript.js';
|
|
3
|
+
import * as javascript from './javascript.js';
|
|
4
|
+
import * as python from './python.js';
|
|
5
|
+
import * as rust from './rust.js';
|
|
6
|
+
import * as go from './go.js';
|
|
7
|
+
import * as zig from './zig.js';
|
|
8
|
+
import * as cpp from './cpp.js';
|
|
9
|
+
export { typescript, javascript, python, rust, go, zig, cpp };
|
|
10
|
+
/**
|
|
11
|
+
* All registered languages
|
|
12
|
+
*/
|
|
13
|
+
export declare const languages: {
|
|
14
|
+
readonly typescript: typeof typescript;
|
|
15
|
+
readonly javascript: typeof javascript;
|
|
16
|
+
readonly python: typeof python;
|
|
17
|
+
readonly rust: typeof rust;
|
|
18
|
+
readonly go: typeof go;
|
|
19
|
+
readonly zig: typeof zig;
|
|
20
|
+
readonly cpp: typeof cpp;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* File extension to language mapping
|
|
24
|
+
*/
|
|
25
|
+
export declare const LANGUAGE_EXTENSIONS: Record<string, Language>;
|
|
26
|
+
/**
|
|
27
|
+
* Grammar paths per language
|
|
28
|
+
*/
|
|
29
|
+
export declare const GRAMMAR_PATHS: Record<Language, string>;
|
|
30
|
+
/**
|
|
31
|
+
* Node types that represent functions per language
|
|
32
|
+
*/
|
|
33
|
+
export declare const FUNCTION_TYPES: Record<Language, string[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Node types that represent classes per language
|
|
36
|
+
*/
|
|
37
|
+
export declare const CLASS_TYPES: Record<Language, string[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Node types that represent structs per language
|
|
40
|
+
*/
|
|
41
|
+
export declare const STRUCT_TYPES: Record<Language, string[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Node types that represent traits per language
|
|
44
|
+
*/
|
|
45
|
+
export declare const TRAIT_TYPES: Record<Language, string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Node types that represent interfaces per language
|
|
48
|
+
*/
|
|
49
|
+
export declare const INTERFACE_TYPES: Record<Language, string[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Node types that represent type aliases per language
|
|
52
|
+
*/
|
|
53
|
+
export declare const TYPE_TYPES: Record<Language, string[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Node types that represent enums per language
|
|
56
|
+
*/
|
|
57
|
+
export declare const ENUM_TYPES: Record<Language, string[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Node types that represent constants per language
|
|
60
|
+
*/
|
|
61
|
+
export declare const CONST_TYPES: Record<Language, string[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Extract name from a node using language-specific logic
|
|
64
|
+
*/
|
|
65
|
+
export declare function extractName(node: SyntaxNode, language: Language): string | null;
|
|
66
|
+
/**
|
|
67
|
+
* Extract name from a const/let/var declaration
|
|
68
|
+
*/
|
|
69
|
+
export declare function extractConstName(node: SyntaxNode, language: Language): string | null;
|
|
70
|
+
/**
|
|
71
|
+
* Check if a node is exported (language-specific)
|
|
72
|
+
*/
|
|
73
|
+
export declare function isExported(node: SyntaxNode, language: Language, name?: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Unwrap export statement to get the actual declaration (TS/JS only)
|
|
76
|
+
*/
|
|
77
|
+
export declare function unwrapExport(node: SyntaxNode, language: Language): SyntaxNode;
|
|
78
|
+
/**
|
|
79
|
+
* Check if a node has extern modifier (Zig/C++ only)
|
|
80
|
+
*/
|
|
81
|
+
export declare function isExtern(node: SyntaxNode, language: Language): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Zig-specific: check if variable_declaration uses 'const'
|
|
84
|
+
*/
|
|
85
|
+
export declare function isZigConst(node: SyntaxNode): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Zig-specific: get type declaration (struct/enum/union) from variable_declaration
|
|
88
|
+
*/
|
|
89
|
+
export declare function getZigTypeDeclaration(node: SyntaxNode): DefinitionType | null;
|
|
90
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEvE,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAE7D;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAQxD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQrD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQlD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQtD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQjD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQjD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAQlD,CAAA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAQ/E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAMpF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAOvF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAK7E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAQtE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAE7E"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
// Language registry for agentmap.
|
|
2
|
+
// Aggregates all language-specific implementations.
|
|
3
|
+
import * as typescript from './typescript.js';
|
|
4
|
+
import * as javascript from './javascript.js';
|
|
5
|
+
import * as python from './python.js';
|
|
6
|
+
import * as rust from './rust.js';
|
|
7
|
+
import * as go from './go.js';
|
|
8
|
+
import * as zig from './zig.js';
|
|
9
|
+
import * as cpp from './cpp.js';
|
|
10
|
+
// Re-export language modules for direct access
|
|
11
|
+
export { typescript, javascript, python, rust, go, zig, cpp };
|
|
12
|
+
/**
|
|
13
|
+
* All registered languages
|
|
14
|
+
*/
|
|
15
|
+
export const languages = {
|
|
16
|
+
typescript,
|
|
17
|
+
javascript,
|
|
18
|
+
python,
|
|
19
|
+
rust,
|
|
20
|
+
go,
|
|
21
|
+
zig,
|
|
22
|
+
cpp,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* File extension to language mapping
|
|
26
|
+
*/
|
|
27
|
+
export const LANGUAGE_EXTENSIONS = {
|
|
28
|
+
...Object.fromEntries(typescript.extensions.map(e => [e, 'typescript'])),
|
|
29
|
+
...Object.fromEntries(javascript.extensions.map(e => [e, 'javascript'])),
|
|
30
|
+
...Object.fromEntries(python.extensions.map(e => [e, 'python'])),
|
|
31
|
+
...Object.fromEntries(rust.extensions.map(e => [e, 'rust'])),
|
|
32
|
+
...Object.fromEntries(go.extensions.map(e => [e, 'go'])),
|
|
33
|
+
...Object.fromEntries(zig.extensions.map(e => [e, 'zig'])),
|
|
34
|
+
...Object.fromEntries(cpp.extensions.map(e => [e, 'cpp'])),
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Grammar paths per language
|
|
38
|
+
*/
|
|
39
|
+
export const GRAMMAR_PATHS = {
|
|
40
|
+
typescript: typescript.grammar,
|
|
41
|
+
javascript: javascript.grammar,
|
|
42
|
+
python: python.grammar,
|
|
43
|
+
rust: rust.grammar,
|
|
44
|
+
go: go.grammar,
|
|
45
|
+
zig: zig.grammar,
|
|
46
|
+
cpp: cpp.grammar,
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Node types that represent functions per language
|
|
50
|
+
*/
|
|
51
|
+
export const FUNCTION_TYPES = {
|
|
52
|
+
typescript: typescript.FUNCTION_TYPES,
|
|
53
|
+
javascript: javascript.FUNCTION_TYPES,
|
|
54
|
+
python: python.FUNCTION_TYPES,
|
|
55
|
+
rust: rust.FUNCTION_TYPES,
|
|
56
|
+
go: go.FUNCTION_TYPES,
|
|
57
|
+
zig: zig.FUNCTION_TYPES,
|
|
58
|
+
cpp: cpp.FUNCTION_TYPES,
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Node types that represent classes per language
|
|
62
|
+
*/
|
|
63
|
+
export const CLASS_TYPES = {
|
|
64
|
+
typescript: typescript.CLASS_TYPES,
|
|
65
|
+
javascript: javascript.CLASS_TYPES,
|
|
66
|
+
python: python.CLASS_TYPES,
|
|
67
|
+
rust: rust.CLASS_TYPES,
|
|
68
|
+
go: go.CLASS_TYPES,
|
|
69
|
+
zig: zig.CLASS_TYPES,
|
|
70
|
+
cpp: cpp.CLASS_TYPES,
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Node types that represent structs per language
|
|
74
|
+
*/
|
|
75
|
+
export const STRUCT_TYPES = {
|
|
76
|
+
typescript: typescript.STRUCT_TYPES,
|
|
77
|
+
javascript: javascript.STRUCT_TYPES,
|
|
78
|
+
python: python.STRUCT_TYPES,
|
|
79
|
+
rust: rust.STRUCT_TYPES,
|
|
80
|
+
go: go.STRUCT_TYPES,
|
|
81
|
+
zig: zig.STRUCT_TYPES,
|
|
82
|
+
cpp: cpp.STRUCT_TYPES,
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Node types that represent traits per language
|
|
86
|
+
*/
|
|
87
|
+
export const TRAIT_TYPES = {
|
|
88
|
+
typescript: typescript.TRAIT_TYPES,
|
|
89
|
+
javascript: javascript.TRAIT_TYPES,
|
|
90
|
+
python: python.TRAIT_TYPES,
|
|
91
|
+
rust: rust.TRAIT_TYPES,
|
|
92
|
+
go: go.TRAIT_TYPES,
|
|
93
|
+
zig: zig.TRAIT_TYPES,
|
|
94
|
+
cpp: cpp.TRAIT_TYPES,
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Node types that represent interfaces per language
|
|
98
|
+
*/
|
|
99
|
+
export const INTERFACE_TYPES = {
|
|
100
|
+
typescript: typescript.INTERFACE_TYPES,
|
|
101
|
+
javascript: javascript.INTERFACE_TYPES,
|
|
102
|
+
python: python.INTERFACE_TYPES,
|
|
103
|
+
rust: rust.INTERFACE_TYPES,
|
|
104
|
+
go: go.INTERFACE_TYPES,
|
|
105
|
+
zig: zig.INTERFACE_TYPES,
|
|
106
|
+
cpp: cpp.INTERFACE_TYPES,
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Node types that represent type aliases per language
|
|
110
|
+
*/
|
|
111
|
+
export const TYPE_TYPES = {
|
|
112
|
+
typescript: typescript.TYPE_TYPES,
|
|
113
|
+
javascript: javascript.TYPE_TYPES,
|
|
114
|
+
python: python.TYPE_TYPES,
|
|
115
|
+
rust: rust.TYPE_TYPES,
|
|
116
|
+
go: go.TYPE_TYPES,
|
|
117
|
+
zig: zig.TYPE_TYPES,
|
|
118
|
+
cpp: cpp.TYPE_TYPES,
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Node types that represent enums per language
|
|
122
|
+
*/
|
|
123
|
+
export const ENUM_TYPES = {
|
|
124
|
+
typescript: typescript.ENUM_TYPES,
|
|
125
|
+
javascript: javascript.ENUM_TYPES,
|
|
126
|
+
python: python.ENUM_TYPES,
|
|
127
|
+
rust: rust.ENUM_TYPES,
|
|
128
|
+
go: go.ENUM_TYPES,
|
|
129
|
+
zig: zig.ENUM_TYPES,
|
|
130
|
+
cpp: cpp.ENUM_TYPES,
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Node types that represent constants per language
|
|
134
|
+
*/
|
|
135
|
+
export const CONST_TYPES = {
|
|
136
|
+
typescript: typescript.CONST_TYPES,
|
|
137
|
+
javascript: javascript.CONST_TYPES,
|
|
138
|
+
python: python.CONST_TYPES,
|
|
139
|
+
rust: rust.CONST_TYPES,
|
|
140
|
+
go: go.CONST_TYPES,
|
|
141
|
+
zig: zig.CONST_TYPES,
|
|
142
|
+
cpp: cpp.CONST_TYPES,
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Extract name from a node using language-specific logic
|
|
146
|
+
*/
|
|
147
|
+
export function extractName(node, language) {
|
|
148
|
+
// Try 'name' field first (common across languages)
|
|
149
|
+
const nameNode = node.childForFieldName('name');
|
|
150
|
+
if (nameNode) {
|
|
151
|
+
return nameNode.text;
|
|
152
|
+
}
|
|
153
|
+
return languages[language].extractName(node);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Extract name from a const/let/var declaration
|
|
157
|
+
*/
|
|
158
|
+
export function extractConstName(node, language) {
|
|
159
|
+
const lang = languages[language];
|
|
160
|
+
if ('extractConstName' in lang && typeof lang.extractConstName === 'function') {
|
|
161
|
+
return lang.extractConstName(node);
|
|
162
|
+
}
|
|
163
|
+
return extractName(node, language);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Check if a node is exported (language-specific)
|
|
167
|
+
*/
|
|
168
|
+
export function isExported(node, language, name) {
|
|
169
|
+
const lang = languages[language];
|
|
170
|
+
// Go uses name-based exports
|
|
171
|
+
if (language === 'go') {
|
|
172
|
+
return lang.isExported(node, name);
|
|
173
|
+
}
|
|
174
|
+
return lang.isExported(node);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Unwrap export statement to get the actual declaration (TS/JS only)
|
|
178
|
+
*/
|
|
179
|
+
export function unwrapExport(node, language) {
|
|
180
|
+
if (language === 'typescript' || language === 'javascript') {
|
|
181
|
+
return typescript.unwrapExport(node);
|
|
182
|
+
}
|
|
183
|
+
return node;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Check if a node has extern modifier (Zig/C++ only)
|
|
187
|
+
*/
|
|
188
|
+
export function isExtern(node, language) {
|
|
189
|
+
if (language === 'zig') {
|
|
190
|
+
return zig.isExtern(node);
|
|
191
|
+
}
|
|
192
|
+
if (language === 'cpp') {
|
|
193
|
+
return cpp.isExtern(node);
|
|
194
|
+
}
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Zig-specific: check if variable_declaration uses 'const'
|
|
199
|
+
*/
|
|
200
|
+
export function isZigConst(node) {
|
|
201
|
+
return zig.isConst(node);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Zig-specific: get type declaration (struct/enum/union) from variable_declaration
|
|
205
|
+
*/
|
|
206
|
+
export function getZigTypeDeclaration(node) {
|
|
207
|
+
return zig.getTypeDeclaration(node);
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/languages/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { extractName as tsExtractName, extractConstName as tsExtractConstName, isExported as tsIsExported, unwrapExport as tsUnwrapExport } from './typescript.js';
|
|
2
|
+
export declare const id: "javascript";
|
|
3
|
+
export declare const extensions: string[];
|
|
4
|
+
export declare const grammar = "tree-sitter-javascript/tree-sitter-javascript.wasm";
|
|
5
|
+
export declare const FUNCTION_TYPES: string[];
|
|
6
|
+
export declare const CLASS_TYPES: string[];
|
|
7
|
+
export declare const STRUCT_TYPES: string[];
|
|
8
|
+
export declare const TRAIT_TYPES: string[];
|
|
9
|
+
export declare const INTERFACE_TYPES: string[];
|
|
10
|
+
export declare const TYPE_TYPES: string[];
|
|
11
|
+
export declare const ENUM_TYPES: string[];
|
|
12
|
+
export declare const CONST_TYPES: string[];
|
|
13
|
+
export declare const isExported: typeof tsIsExported;
|
|
14
|
+
export declare const unwrapExport: typeof tsUnwrapExport;
|
|
15
|
+
export declare const extractName: typeof tsExtractName;
|
|
16
|
+
export declare const extractConstName: typeof tsExtractConstName;
|
|
17
|
+
export declare const commentPrefixes: string[];
|
|
18
|
+
//# sourceMappingURL=javascript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../src/languages/javascript.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,IAAI,aAAa,EAC5B,gBAAgB,IAAI,kBAAkB,EACtC,UAAU,IAAI,YAAY,EAC1B,YAAY,IAAI,cAAc,EAC/B,MAAM,iBAAiB,CAAA;AAExB,eAAO,MAAM,EAAE,EAAG,YAAqB,CAAA;AACvC,eAAO,MAAM,UAAU,UAAkC,CAAA;AACzD,eAAO,MAAM,OAAO,uDAAuD,CAAA;AAG3E,eAAO,MAAM,cAAc,UAAgD,CAAA;AAC3E,eAAO,MAAM,WAAW,UAAwB,CAAA;AAChD,eAAO,MAAM,YAAY,EAAE,MAAM,EAAO,CAAA;AACxC,eAAO,MAAM,WAAW,EAAE,MAAM,EAAO,CAAA;AACvC,eAAO,MAAM,eAAe,EAAE,MAAM,EAAO,CAAA;AAC3C,eAAO,MAAM,UAAU,EAAE,MAAM,EAAO,CAAA;AACtC,eAAO,MAAM,UAAU,EAAE,MAAM,EAAO,CAAA;AACtC,eAAO,MAAM,WAAW,UAA0B,CAAA;AAGlD,eAAO,MAAM,UAAU,qBAAe,CAAA;AACtC,eAAO,MAAM,YAAY,uBAAiB,CAAA;AAC1C,eAAO,MAAM,WAAW,sBAAgB,CAAA;AACxC,eAAO,MAAM,gBAAgB,2BAAqB,CAAA;AAGlD,eAAO,MAAM,eAAe,UAAe,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// JavaScript language support for agentmap.
|
|
2
|
+
// Shares most implementation with TypeScript.
|
|
3
|
+
import { extractName as tsExtractName, extractConstName as tsExtractConstName, isExported as tsIsExported, unwrapExport as tsUnwrapExport, } from './typescript.js';
|
|
4
|
+
export const id = 'javascript';
|
|
5
|
+
export const extensions = ['.js', '.jsx', '.mjs', '.cjs'];
|
|
6
|
+
export const grammar = 'tree-sitter-javascript/tree-sitter-javascript.wasm';
|
|
7
|
+
// AST node types
|
|
8
|
+
export const FUNCTION_TYPES = ['function_declaration', 'method_definition'];
|
|
9
|
+
export const CLASS_TYPES = ['class_declaration'];
|
|
10
|
+
export const STRUCT_TYPES = [];
|
|
11
|
+
export const TRAIT_TYPES = [];
|
|
12
|
+
export const INTERFACE_TYPES = [];
|
|
13
|
+
export const TYPE_TYPES = [];
|
|
14
|
+
export const ENUM_TYPES = [];
|
|
15
|
+
export const CONST_TYPES = ['lexical_declaration'];
|
|
16
|
+
// Reuse TypeScript implementations
|
|
17
|
+
export const isExported = tsIsExported;
|
|
18
|
+
export const unwrapExport = tsUnwrapExport;
|
|
19
|
+
export const extractName = tsExtractName;
|
|
20
|
+
export const extractConstName = tsExtractConstName;
|
|
21
|
+
// Comment handling
|
|
22
|
+
export const commentPrefixes = ['//', '/*'];
|
|
23
|
+
//# sourceMappingURL=javascript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../src/languages/javascript.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,8CAA8C;AAG9C,OAAO,EACL,WAAW,IAAI,aAAa,EAC5B,gBAAgB,IAAI,kBAAkB,EACtC,UAAU,IAAI,YAAY,EAC1B,YAAY,IAAI,cAAc,GAC/B,MAAM,iBAAiB,CAAA;AAExB,MAAM,CAAC,MAAM,EAAE,GAAG,YAAqB,CAAA;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,oDAAoD,CAAA;AAE3E,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAA;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,mBAAmB,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,YAAY,GAAa,EAAE,CAAA;AACxC,MAAM,CAAC,MAAM,WAAW,GAAa,EAAE,CAAA;AACvC,MAAM,CAAC,MAAM,eAAe,GAAa,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAa,EAAE,CAAA;AACtC,MAAM,CAAC,MAAM,UAAU,GAAa,EAAE,CAAA;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAElD,mCAAmC;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAA;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAA;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAElD,mBAAmB;AACnB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SyntaxNode } from '../types.js';
|
|
2
|
+
export declare const id: "python";
|
|
3
|
+
export declare const extensions: string[];
|
|
4
|
+
export declare const grammar = "tree-sitter-python/tree-sitter-python.wasm";
|
|
5
|
+
export declare const FUNCTION_TYPES: string[];
|
|
6
|
+
export declare const CLASS_TYPES: string[];
|
|
7
|
+
export declare const STRUCT_TYPES: string[];
|
|
8
|
+
export declare const TRAIT_TYPES: string[];
|
|
9
|
+
export declare const INTERFACE_TYPES: string[];
|
|
10
|
+
export declare const TYPE_TYPES: string[];
|
|
11
|
+
export declare const ENUM_TYPES: string[];
|
|
12
|
+
export declare const CONST_TYPES: string[];
|
|
13
|
+
/**
|
|
14
|
+
* Python doesn't have explicit exports - everything is importable
|
|
15
|
+
*/
|
|
16
|
+
export declare function isExported(_node: SyntaxNode): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Extract name from a Python node
|
|
19
|
+
*/
|
|
20
|
+
export declare function extractName(node: SyntaxNode): string | null;
|
|
21
|
+
export declare const commentPrefixes: string[];
|
|
22
|
+
export declare const docstringType = "string";
|
|
23
|
+
//# sourceMappingURL=python.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/languages/python.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,eAAO,MAAM,EAAE,EAAG,QAAiB,CAAA;AACnC,eAAO,MAAM,UAAU,UAAkB,CAAA;AACzC,eAAO,MAAM,OAAO,+CAA+C,CAAA;AAGnE,eAAO,MAAM,cAAc,UAA0B,CAAA;AACrD,eAAO,MAAM,WAAW,UAAuB,CAAA;AAC/C,eAAO,MAAM,YAAY,EAAE,MAAM,EAAO,CAAA;AACxC,eAAO,MAAM,WAAW,EAAE,MAAM,EAAO,CAAA;AACvC,eAAO,MAAM,eAAe,EAAE,MAAM,EAAO,CAAA;AAC3C,eAAO,MAAM,UAAU,EAAE,MAAM,EAAO,CAAA;AACtC,eAAO,MAAM,UAAU,EAAE,MAAM,EAAO,CAAA;AACtC,eAAO,MAAM,WAAW,EAAE,MAAM,EAAO,CAAA;AAEvC;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAGD,eAAO,MAAM,eAAe,UAAQ,CAAA;AACpC,eAAO,MAAM,aAAa,WAAW,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Python language support for agentmap.
|
|
2
|
+
export const id = 'python';
|
|
3
|
+
export const extensions = ['.py', '.pyi'];
|
|
4
|
+
export const grammar = 'tree-sitter-python/tree-sitter-python.wasm';
|
|
5
|
+
// AST node types
|
|
6
|
+
export const FUNCTION_TYPES = ['function_definition'];
|
|
7
|
+
export const CLASS_TYPES = ['class_definition'];
|
|
8
|
+
export const STRUCT_TYPES = [];
|
|
9
|
+
export const TRAIT_TYPES = [];
|
|
10
|
+
export const INTERFACE_TYPES = [];
|
|
11
|
+
export const TYPE_TYPES = [];
|
|
12
|
+
export const ENUM_TYPES = [];
|
|
13
|
+
export const CONST_TYPES = []; // Python constants handled separately
|
|
14
|
+
/**
|
|
15
|
+
* Python doesn't have explicit exports - everything is importable
|
|
16
|
+
*/
|
|
17
|
+
export function isExported(_node) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Extract name from a Python node
|
|
22
|
+
*/
|
|
23
|
+
export function extractName(node) {
|
|
24
|
+
for (let i = 0; i < node.childCount; i++) {
|
|
25
|
+
const child = node.child(i);
|
|
26
|
+
if (child?.type === 'identifier') {
|
|
27
|
+
return child.text;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
// Comment handling
|
|
33
|
+
export const commentPrefixes = ['#'];
|
|
34
|
+
export const docstringType = 'string'; // Python uses docstrings
|
|
35
|
+
//# sourceMappingURL=python.js.map
|