@aroman22/codegraph-vba-darwin-arm64 1.9.0 → 1.11.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/lib/dist/db/queries.d.ts +39 -0
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +45 -0
- package/lib/dist/db/queries.js.map +1 -1
- package/lib/dist/extraction/frameworks/dysflow-export.d.ts +37 -0
- package/lib/dist/extraction/frameworks/dysflow-export.d.ts.map +1 -0
- package/lib/dist/extraction/frameworks/dysflow-export.js +121 -0
- package/lib/dist/extraction/frameworks/dysflow-export.js.map +1 -0
- package/lib/dist/extraction/frameworks/index.d.ts +20 -0
- package/lib/dist/extraction/frameworks/index.d.ts.map +1 -0
- package/lib/dist/extraction/frameworks/index.js +24 -0
- package/lib/dist/extraction/frameworks/index.js.map +1 -0
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +25 -5
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/parse-pool.d.ts +10 -0
- package/lib/dist/extraction/parse-pool.d.ts.map +1 -1
- package/lib/dist/extraction/parse-pool.js +2 -0
- package/lib/dist/extraction/parse-pool.js.map +1 -1
- package/lib/dist/extraction/parse-worker.js +6 -2
- package/lib/dist/extraction/parse-worker.js.map +1 -1
- package/lib/dist/extraction/tree-sitter.d.ts +9 -1
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +58 -5
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/extraction/vba/call-sweep.d.ts +43 -0
- package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
- package/lib/dist/extraction/vba/call-sweep.js +155 -66
- package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
- package/lib/dist/extraction/vba/calls.d.ts.map +1 -1
- package/lib/dist/extraction/vba/calls.js +6 -0
- package/lib/dist/extraction/vba/calls.js.map +1 -1
- package/lib/dist/extraction/vba/context.d.ts +109 -1
- package/lib/dist/extraction/vba/context.d.ts.map +1 -1
- package/lib/dist/extraction/vba/context.js +155 -2
- package/lib/dist/extraction/vba/context.js.map +1 -1
- package/lib/dist/extraction/vba/controls.d.ts.map +1 -1
- package/lib/dist/extraction/vba/controls.js +77 -0
- package/lib/dist/extraction/vba/controls.js.map +1 -1
- package/lib/dist/extraction/vba/declarations.d.ts +38 -2
- package/lib/dist/extraction/vba/declarations.d.ts.map +1 -1
- package/lib/dist/extraction/vba/declarations.js +217 -129
- package/lib/dist/extraction/vba/declarations.js.map +1 -1
- package/lib/dist/extraction/vba/dims.d.ts +35 -1
- package/lib/dist/extraction/vba/dims.d.ts.map +1 -1
- package/lib/dist/extraction/vba/dims.js +185 -109
- package/lib/dist/extraction/vba/dims.js.map +1 -1
- package/lib/dist/extraction/vba/enums-consts.d.ts +47 -7
- package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -1
- package/lib/dist/extraction/vba/enums-consts.js +212 -139
- package/lib/dist/extraction/vba/enums-consts.js.map +1 -1
- package/lib/dist/extraction/vba/event-synth.d.ts +3 -0
- package/lib/dist/extraction/vba/event-synth.d.ts.map +1 -0
- package/lib/dist/extraction/vba/event-synth.js +176 -0
- package/lib/dist/extraction/vba/event-synth.js.map +1 -0
- package/lib/dist/extraction/vba/events.d.ts +16 -0
- package/lib/dist/extraction/vba/events.d.ts.map +1 -0
- package/lib/dist/extraction/vba/events.js +90 -0
- package/lib/dist/extraction/vba/events.js.map +1 -0
- package/lib/dist/extraction/vba/implements.d.ts +16 -0
- package/lib/dist/extraction/vba/implements.d.ts.map +1 -1
- package/lib/dist/extraction/vba/implements.js +43 -12
- package/lib/dist/extraction/vba/implements.js.map +1 -1
- package/lib/dist/extraction/vba/procedures.d.ts +20 -0
- package/lib/dist/extraction/vba/procedures.d.ts.map +1 -1
- package/lib/dist/extraction/vba/procedures.js +48 -13
- package/lib/dist/extraction/vba/procedures.js.map +1 -1
- package/lib/dist/extraction/vba/rules.d.ts +125 -0
- package/lib/dist/extraction/vba/rules.d.ts.map +1 -0
- package/lib/dist/extraction/vba/rules.js +49 -0
- package/lib/dist/extraction/vba/rules.js.map +1 -0
- package/lib/dist/extraction/vba/text-utils.d.ts +0 -6
- package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -1
- package/lib/dist/extraction/vba/text-utils.js +9 -6
- package/lib/dist/extraction/vba/text-utils.js.map +1 -1
- package/lib/dist/extraction/vba-extractor.d.ts +77 -1
- package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-extractor.js +177 -15
- package/lib/dist/extraction/vba-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-form-extractor.d.ts +26 -114
- package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-form-extractor.js +293 -297
- package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-preprocess.d.ts +11 -1
- package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
- package/lib/dist/extraction/vba-preprocess.js +45 -16
- package/lib/dist/extraction/vba-preprocess.js.map +1 -1
- package/lib/dist/extraction/vba-timing.d.ts +38 -0
- package/lib/dist/extraction/vba-timing.d.ts.map +1 -0
- package/lib/dist/extraction/vba-timing.js +203 -0
- package/lib/dist/extraction/vba-timing.js.map +1 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +26 -0
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/project-config.d.ts +31 -0
- package/lib/dist/project-config.d.ts.map +1 -1
- package/lib/dist/project-config.js +75 -22
- package/lib/dist/project-config.js.map +1 -1
- package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/index.js +7 -0
- package/lib/dist/resolution/frameworks/index.js.map +1 -1
- package/lib/dist/resolution/index.d.ts +7 -0
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +155 -11
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/name-matcher.d.ts +6 -0
- package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
- package/lib/dist/resolution/name-matcher.js +81 -0
- package/lib/dist/resolution/name-matcher.js.map +1 -1
- package/lib/dist/resolution/vba-access-object-name.d.ts +7 -0
- package/lib/dist/resolution/vba-access-object-name.d.ts.map +1 -0
- package/lib/dist/resolution/vba-access-object-name.js +15 -0
- package/lib/dist/resolution/vba-access-object-name.js.map +1 -0
- package/lib/node_modules/.modules.yaml +1 -1
- package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
- package/lib/package.json +2 -1
- package/package.json +1 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RULES = void 0;
|
|
3
4
|
exports.createEventsTypesDeclaresClassifier = createEventsTypesDeclaresClassifier;
|
|
4
5
|
exports.sweepEventsTypesAndDeclares = sweepEventsTypesAndDeclares;
|
|
5
6
|
const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
|
|
6
7
|
const text_utils_1 = require("./text-utils");
|
|
8
|
+
const rules_1 = require("./rules");
|
|
7
9
|
/** `[visibility] Event <Name>(...)` custom event declaration. */
|
|
8
10
|
const EVENT_DECL_RE = /^\s*((?:Public|Private|Friend)\s+)?Event\s+(\p{L}[\p{L}\p{N}_]*)\b/iu;
|
|
9
11
|
/** `[visibility] Type <Name>` user-defined type block start. */
|
|
@@ -15,143 +17,229 @@ const TYPE_MEMBER_RE = /^\s*(\p{L}[\p{L}\p{N}_]*)\s*(?:\([^)]*\))?\s+As\s+(.+?)\
|
|
|
15
17
|
/** `[visibility] Declare [PtrSafe] Sub|Function <Name> Lib "dll" [Alias "x"] ...` */
|
|
16
18
|
const DLL_DECLARE_RE = /^\s*((?:Public|Private)\s+)?Declare\s+(PtrSafe\s+)?(Sub|Function)\s+(\p{L}[\p{L}\p{N}_]*)\s+Lib\s+"([^"]+)"(?:\s+Alias\s+"([^"]+)")?/iu;
|
|
17
19
|
/**
|
|
18
|
-
* Issue #
|
|
19
|
-
*
|
|
20
|
+
* Issue #153: the declarative rule table for the events/types/declares
|
|
21
|
+
* concern. Five rules, partitioned by where they fire:
|
|
22
|
+
*
|
|
23
|
+
* - `event-decl` (outside-type-block) — match an `Event <Name>` decl
|
|
24
|
+
* - `type-start` (outside-type-block) — match a `Type <Name>` header;
|
|
25
|
+
* sets `ctx.vbaDeclTypeBlock` on a successful match
|
|
26
|
+
* - `type-end` (inside-type-block) — match `End Type`; clears
|
|
27
|
+
* `ctx.vbaDeclTypeBlock` on a successful match
|
|
28
|
+
* - `type-member` (inside-type-block) — match `<Member> As <Type>`
|
|
29
|
+
* inside an open type block
|
|
30
|
+
* - `dll-declare` (outside-type-block) — match a `[Private|Public]
|
|
31
|
+
* Declare [PtrSafe] Sub|Function <Name> Lib "<dll>"
|
|
32
|
+
* [Alias "<x>"]` Win32 API declaration
|
|
33
|
+
*
|
|
34
|
+
* The `requires` field encodes the type-block precondition. The
|
|
35
|
+
* dispatcher (the factory's `classifyLine`) filters rules whose
|
|
36
|
+
* precondition does not hold, so an `End Type` line never
|
|
37
|
+
* accidentally re-enters the `event-decl` / `dll-declare` paths.
|
|
38
|
+
*
|
|
39
|
+
* Inter-line state lives on `ctx.vbaDeclTypeBlock` (replaces the
|
|
40
|
+
* pre-#153 factory closure variable) so the emit functions can
|
|
41
|
+
* read/write it without taking a mutable closure reference.
|
|
42
|
+
*/
|
|
43
|
+
exports.RULES = [
|
|
44
|
+
(0, rules_1.defineRule)({
|
|
45
|
+
id: 'event-decl',
|
|
46
|
+
description: 'Match an `[Public|Private|Friend] Event <Name>(...)` custom event declaration; emit an `event` node + `contains` edge from the module/class.',
|
|
47
|
+
pattern: EVENT_DECL_RE,
|
|
48
|
+
requires: 'outside-type-block',
|
|
49
|
+
emit: (m, ctx, line, lineNum) => {
|
|
50
|
+
const visibility = (0, text_utils_1.foldVisibility)(m[1] ?? '');
|
|
51
|
+
const name = m[2] ?? '';
|
|
52
|
+
if (!name)
|
|
53
|
+
return null;
|
|
54
|
+
const eventId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'event', name, lineNum);
|
|
55
|
+
const eventNode = {
|
|
56
|
+
id: eventId,
|
|
57
|
+
kind: 'event',
|
|
58
|
+
name,
|
|
59
|
+
signature: line.trim(),
|
|
60
|
+
qualifiedName: ctx.classNamePrefix ? `${ctx.classNamePrefix}.${name}` : name,
|
|
61
|
+
filePath: ctx.filePath,
|
|
62
|
+
language: 'vba',
|
|
63
|
+
startLine: lineNum,
|
|
64
|
+
endLine: lineNum,
|
|
65
|
+
startColumn: 0,
|
|
66
|
+
endColumn: line.length,
|
|
67
|
+
visibility,
|
|
68
|
+
updatedAt: Date.now(),
|
|
69
|
+
};
|
|
70
|
+
ctx.nodes.push(eventNode);
|
|
71
|
+
ctx.localEvents.set(name.toLowerCase(), eventNode);
|
|
72
|
+
ctx.pushContainsFromModule(eventId);
|
|
73
|
+
return { name };
|
|
74
|
+
},
|
|
75
|
+
}),
|
|
76
|
+
(0, rules_1.defineRule)({
|
|
77
|
+
id: 'type-start',
|
|
78
|
+
description: 'Match a `[Public|Private|Friend] Type <Name>` UDT block header; emit a `type` node + `contains` edge and mark `ctx.vbaDeclTypeBlock` so subsequent member lines route to `type-member` / `End Type` lines route to `type-end`.',
|
|
79
|
+
pattern: TYPE_START_RE,
|
|
80
|
+
requires: 'outside-type-block',
|
|
81
|
+
emit: (m, ctx, line, lineNum) => {
|
|
82
|
+
const visibility = (0, text_utils_1.foldVisibility)(m[1] ?? '');
|
|
83
|
+
const name = m[2] ?? '';
|
|
84
|
+
if (!name)
|
|
85
|
+
return null;
|
|
86
|
+
const typeId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'type', name, lineNum);
|
|
87
|
+
ctx.nodes.push({
|
|
88
|
+
id: typeId,
|
|
89
|
+
kind: 'type',
|
|
90
|
+
name,
|
|
91
|
+
qualifiedName: ctx.classNamePrefix ? `${ctx.classNamePrefix}.${name}` : name,
|
|
92
|
+
filePath: ctx.filePath,
|
|
93
|
+
language: 'vba',
|
|
94
|
+
startLine: lineNum,
|
|
95
|
+
endLine: lineNum,
|
|
96
|
+
startColumn: 0,
|
|
97
|
+
endColumn: line.length,
|
|
98
|
+
visibility,
|
|
99
|
+
updatedAt: Date.now(),
|
|
100
|
+
});
|
|
101
|
+
ctx.pushContainsFromModule(typeId);
|
|
102
|
+
// Mark the open type block on ctx so the next non-End line is
|
|
103
|
+
// dispatched to `type-member` / `type-end` instead of the
|
|
104
|
+
// outside-type-block rules.
|
|
105
|
+
ctx.vbaDeclTypeBlock = { id: typeId, name };
|
|
106
|
+
return { name, typeId };
|
|
107
|
+
},
|
|
108
|
+
}),
|
|
109
|
+
(0, rules_1.defineRule)({
|
|
110
|
+
id: 'type-end',
|
|
111
|
+
description: 'Match `End Type` while inside a type block; emit nothing and clear `ctx.vbaDeclTypeBlock` so subsequent lines route back to the outside-type-block rules.',
|
|
112
|
+
pattern: TYPE_END_RE,
|
|
113
|
+
requires: 'inside-type-block',
|
|
114
|
+
emit: (_m, ctx) => {
|
|
115
|
+
ctx.vbaDeclTypeBlock = null;
|
|
116
|
+
return { kind: 'end-type-block' };
|
|
117
|
+
},
|
|
118
|
+
}),
|
|
119
|
+
(0, rules_1.defineRule)({
|
|
120
|
+
id: 'type-member',
|
|
121
|
+
description: 'Match `<MemberName> [As <Type>]` inside an open type block; emit a `type_member` node + a `type-member` edge from the open type to the member.',
|
|
122
|
+
pattern: TYPE_MEMBER_RE,
|
|
123
|
+
requires: 'inside-type-block',
|
|
124
|
+
emit: (m, ctx, line, lineNum) => {
|
|
125
|
+
const memberName = m[1] ?? '';
|
|
126
|
+
const memberType = (m[2] ?? '').trim();
|
|
127
|
+
if (!memberName || !ctx.vbaDeclTypeBlock)
|
|
128
|
+
return null;
|
|
129
|
+
const memberId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'type_member', memberName, lineNum);
|
|
130
|
+
ctx.nodes.push({
|
|
131
|
+
id: memberId,
|
|
132
|
+
kind: 'type_member',
|
|
133
|
+
name: memberName,
|
|
134
|
+
qualifiedName: `${ctx.vbaDeclTypeBlock.name}.${memberName}`,
|
|
135
|
+
filePath: ctx.filePath,
|
|
136
|
+
language: 'vba',
|
|
137
|
+
startLine: lineNum,
|
|
138
|
+
endLine: lineNum,
|
|
139
|
+
startColumn: 0,
|
|
140
|
+
endColumn: line.length,
|
|
141
|
+
metadata: { memberType },
|
|
142
|
+
updatedAt: Date.now(),
|
|
143
|
+
});
|
|
144
|
+
ctx.edges.push({
|
|
145
|
+
source: ctx.vbaDeclTypeBlock.id,
|
|
146
|
+
target: memberId,
|
|
147
|
+
kind: 'type-member',
|
|
148
|
+
provenance: 'parser',
|
|
149
|
+
});
|
|
150
|
+
return { name: memberName };
|
|
151
|
+
},
|
|
152
|
+
}),
|
|
153
|
+
(0, rules_1.defineRule)({
|
|
154
|
+
id: 'dll-declare',
|
|
155
|
+
description: 'Match a `[Public|Private] Declare [PtrSafe] Sub|Function <Name> Lib "<dll>" [Alias "<x>"]` Win32 API declaration; emit a `declare` node + `contains` edge and register the name in `functionNodeByName` so call-site scanning can resolve it.',
|
|
156
|
+
pattern: DLL_DECLARE_RE,
|
|
157
|
+
requires: 'outside-type-block',
|
|
158
|
+
emit: (m, ctx, line, lineNum) => {
|
|
159
|
+
const visibility = (0, text_utils_1.foldVisibility)(m[1] ?? '');
|
|
160
|
+
const ptrSafe = !!m[2];
|
|
161
|
+
const declareKind = (m[3] ?? '').toLowerCase();
|
|
162
|
+
const name = m[4] ?? '';
|
|
163
|
+
const dll = m[5] ?? '';
|
|
164
|
+
const aliasName = m[6] ?? undefined;
|
|
165
|
+
if (!name)
|
|
166
|
+
return null;
|
|
167
|
+
const declareId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'declare', name, lineNum);
|
|
168
|
+
const declareNode = {
|
|
169
|
+
id: declareId,
|
|
170
|
+
kind: 'declare',
|
|
171
|
+
name,
|
|
172
|
+
qualifiedName: ctx.classNamePrefix ? `${ctx.classNamePrefix}.${name}` : name,
|
|
173
|
+
filePath: ctx.filePath,
|
|
174
|
+
language: 'vba',
|
|
175
|
+
startLine: lineNum,
|
|
176
|
+
endLine: lineNum,
|
|
177
|
+
startColumn: 0,
|
|
178
|
+
endColumn: line.length,
|
|
179
|
+
visibility,
|
|
180
|
+
metadata: {
|
|
181
|
+
isDeclare: true,
|
|
182
|
+
dll,
|
|
183
|
+
declareKind,
|
|
184
|
+
ptrSafe,
|
|
185
|
+
...(aliasName ? { aliasName } : {}),
|
|
186
|
+
},
|
|
187
|
+
updatedAt: Date.now(),
|
|
188
|
+
};
|
|
189
|
+
ctx.nodes.push(declareNode);
|
|
190
|
+
if (!ctx.functionNodeByName.has(name)) {
|
|
191
|
+
ctx.functionNodeByName.set(name, declareNode);
|
|
192
|
+
}
|
|
193
|
+
ctx.pushContainsFromModule(declareId);
|
|
194
|
+
return { name };
|
|
195
|
+
},
|
|
196
|
+
}),
|
|
197
|
+
];
|
|
198
|
+
/**
|
|
199
|
+
* Issue #83: factory for the events/types/declares classifier.
|
|
200
|
+
*
|
|
201
|
+
* Inter-line state (`ctx.vbaDeclTypeBlock`) lives on `ctx` — the
|
|
202
|
+
* declarative RULES table's `emit` functions read/write it directly.
|
|
203
|
+
* The dispatcher below honours each rule's `requires` precondition
|
|
204
|
+
* so the per-line dispatch mirrors the legacy cascade exactly:
|
|
205
|
+
*
|
|
206
|
+
* if (currentType) {
|
|
207
|
+
* try type-end, then type-member; return early
|
|
208
|
+
* } else {
|
|
209
|
+
* try event-decl, type-start, dll-declare
|
|
210
|
+
* }
|
|
20
211
|
*/
|
|
21
212
|
function createEventsTypesDeclaresClassifier() {
|
|
22
|
-
let currentType = null;
|
|
23
213
|
const cls = {
|
|
24
214
|
name: 'eventsTypesDeclares',
|
|
25
215
|
count: 0,
|
|
26
216
|
classifyLine(line, i, ctx) {
|
|
27
217
|
const lineNum = i + 1;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
qualifiedName: `${currentType.name}.${memberName}`,
|
|
45
|
-
filePath: ctx.filePath,
|
|
46
|
-
language: 'vba',
|
|
47
|
-
startLine: lineNum,
|
|
48
|
-
endLine: lineNum,
|
|
49
|
-
startColumn: 0,
|
|
50
|
-
endColumn: line.length,
|
|
51
|
-
metadata: { memberType },
|
|
52
|
-
updatedAt: Date.now(),
|
|
53
|
-
});
|
|
54
|
-
ctx.edges.push({
|
|
55
|
-
source: currentType.id,
|
|
56
|
-
target: memberId,
|
|
57
|
-
kind: 'type-member',
|
|
58
|
-
provenance: 'parser',
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const eventDecl = EVENT_DECL_RE.exec(line);
|
|
64
|
-
if (eventDecl) {
|
|
65
|
-
const visibility = (0, text_utils_1.foldVisibility)(eventDecl[1] ?? '');
|
|
66
|
-
const name = eventDecl[2] ?? '';
|
|
67
|
-
if (!name)
|
|
68
|
-
return;
|
|
69
|
-
const eventId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'event', name, lineNum);
|
|
70
|
-
const eventNode = {
|
|
71
|
-
id: eventId,
|
|
72
|
-
kind: 'event',
|
|
73
|
-
name,
|
|
74
|
-
signature: line.trim(),
|
|
75
|
-
qualifiedName: ctx.classNamePrefix ? `${ctx.classNamePrefix}.${name}` : name,
|
|
76
|
-
filePath: ctx.filePath,
|
|
77
|
-
language: 'vba',
|
|
78
|
-
startLine: lineNum,
|
|
79
|
-
endLine: lineNum,
|
|
80
|
-
startColumn: 0,
|
|
81
|
-
endColumn: line.length,
|
|
82
|
-
visibility,
|
|
83
|
-
updatedAt: Date.now(),
|
|
84
|
-
};
|
|
85
|
-
ctx.nodes.push(eventNode);
|
|
86
|
-
ctx.localEvents.set(name.toLowerCase(), eventNode);
|
|
87
|
-
ctx.pushContainsFromModule(eventId);
|
|
88
|
-
this.count++;
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
const typeStart = TYPE_START_RE.exec(line);
|
|
92
|
-
if (typeStart) {
|
|
93
|
-
const visibility = (0, text_utils_1.foldVisibility)(typeStart[1] ?? '');
|
|
94
|
-
const name = typeStart[2] ?? '';
|
|
95
|
-
if (!name)
|
|
96
|
-
return;
|
|
97
|
-
const typeId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'type', name, lineNum);
|
|
98
|
-
ctx.nodes.push({
|
|
99
|
-
id: typeId,
|
|
100
|
-
kind: 'type',
|
|
101
|
-
name,
|
|
102
|
-
qualifiedName: ctx.classNamePrefix ? `${ctx.classNamePrefix}.${name}` : name,
|
|
103
|
-
filePath: ctx.filePath,
|
|
104
|
-
language: 'vba',
|
|
105
|
-
startLine: lineNum,
|
|
106
|
-
endLine: lineNum,
|
|
107
|
-
startColumn: 0,
|
|
108
|
-
endColumn: line.length,
|
|
109
|
-
visibility,
|
|
110
|
-
updatedAt: Date.now(),
|
|
111
|
-
});
|
|
112
|
-
ctx.pushContainsFromModule(typeId);
|
|
113
|
-
currentType = { id: typeId, name };
|
|
114
|
-
this.count++;
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
const declaration = DLL_DECLARE_RE.exec(line);
|
|
118
|
-
if (declaration) {
|
|
119
|
-
const visibility = (0, text_utils_1.foldVisibility)(declaration[1] ?? '');
|
|
120
|
-
const ptrSafe = !!declaration[2];
|
|
121
|
-
const declareKind = (declaration[3] ?? '').toLowerCase();
|
|
122
|
-
const name = declaration[4] ?? '';
|
|
123
|
-
const dll = declaration[5] ?? '';
|
|
124
|
-
const aliasName = declaration[6] ?? undefined;
|
|
125
|
-
if (!name)
|
|
126
|
-
return;
|
|
127
|
-
const declareId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'declare', name, lineNum);
|
|
128
|
-
const declareNode = {
|
|
129
|
-
id: declareId,
|
|
130
|
-
kind: 'declare',
|
|
131
|
-
name,
|
|
132
|
-
qualifiedName: ctx.classNamePrefix ? `${ctx.classNamePrefix}.${name}` : name,
|
|
133
|
-
filePath: ctx.filePath,
|
|
134
|
-
language: 'vba',
|
|
135
|
-
startLine: lineNum,
|
|
136
|
-
endLine: lineNum,
|
|
137
|
-
startColumn: 0,
|
|
138
|
-
endColumn: line.length,
|
|
139
|
-
visibility,
|
|
140
|
-
metadata: {
|
|
141
|
-
isDeclare: true,
|
|
142
|
-
dll,
|
|
143
|
-
declareKind,
|
|
144
|
-
ptrSafe,
|
|
145
|
-
...(aliasName ? { aliasName } : {}),
|
|
146
|
-
},
|
|
147
|
-
updatedAt: Date.now(),
|
|
148
|
-
};
|
|
149
|
-
ctx.nodes.push(declareNode);
|
|
150
|
-
if (!ctx.functionNodeByName.has(name)) {
|
|
151
|
-
ctx.functionNodeByName.set(name, declareNode);
|
|
218
|
+
for (const rule of exports.RULES) {
|
|
219
|
+
// Gate by the rule's `requires` precondition. The
|
|
220
|
+
// `outside-type-block` / `inside-type-block` values are the
|
|
221
|
+
// concrete preconditions the dispatcher knows about today;
|
|
222
|
+
// unknown strings are treated as "always" so adding new
|
|
223
|
+
// preconditions does not require touching this loop.
|
|
224
|
+
if (rule.requires === 'inside-type-block' && !ctx.vbaDeclTypeBlock)
|
|
225
|
+
continue;
|
|
226
|
+
if (rule.requires === 'outside-type-block' && ctx.vbaDeclTypeBlock)
|
|
227
|
+
continue;
|
|
228
|
+
const m = (0, rules_1.matchRule)(rule.pattern, line);
|
|
229
|
+
if (!m)
|
|
230
|
+
continue;
|
|
231
|
+
const result = rule.emit(m, ctx, line, lineNum);
|
|
232
|
+
if (result !== null && result !== undefined) {
|
|
233
|
+
this.count += rule.count ? rule.count(result) : 1;
|
|
152
234
|
}
|
|
153
|
-
|
|
154
|
-
|
|
235
|
+
// `type-end` cleared the type block — nothing else on this
|
|
236
|
+
// line can apply (a VBA `End Type` line cannot also be an
|
|
237
|
+
// `Event <Name>` declaration). The legacy cascade did the
|
|
238
|
+
// same short-circuit via `return`. Break out of the loop
|
|
239
|
+
// explicitly so a later refactor cannot accidentally let an
|
|
240
|
+
// outside-type-block rule fire on the same line.
|
|
241
|
+
if (rule.id === 'type-end')
|
|
242
|
+
break;
|
|
155
243
|
}
|
|
156
244
|
},
|
|
157
245
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../src/extraction/vba/declarations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../../src/extraction/vba/declarations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
import { VbaExtractorContext, VbaClassifier } from './context';
|
|
2
|
+
import { VbaExtractionRule } from './rules';
|
|
2
3
|
/**
|
|
3
|
-
* Issue #
|
|
4
|
+
* Issue #153: the declarative rule table for the Dim / WithEvents
|
|
5
|
+
* concern. Two rules:
|
|
6
|
+
*
|
|
7
|
+
* - `dim-decl` — match a `Dim|Private|Public|Global|Static
|
|
8
|
+
* <var> [As [New] <TypePart>[.<TypePart>]][, …]`
|
|
9
|
+
* declaration; populate `localVarTypeMap` and
|
|
10
|
+
* emit one `references` edge per non-primitive
|
|
11
|
+
* type (or per qualified outer type).
|
|
12
|
+
* - `withevents-decl`— match a `[Dim|Private|Public|Global|Static]
|
|
13
|
+
* WithEvents <var> As <FormType>` declaration;
|
|
14
|
+
* populate `localVarTypeMap` with `withEvents: true`,
|
|
15
|
+
* emit a `references` edge (synthesizedBy:
|
|
16
|
+
* `vba-withevents`) and a `subscribes-event` edge.
|
|
17
|
+
*
|
|
18
|
+
* The two rules are dispatched independently and BOTH can fire on the
|
|
19
|
+
* same line in principle (a `WithEvents` line does NOT match the
|
|
20
|
+
* `Dim|Private|...` prefix because the negative lookahead excludes it).
|
|
21
|
+
* The `dim-decl` rule's `count` hook reports the number of
|
|
22
|
+
* non-primitive `references` edges it emitted, so a multi-variable
|
|
23
|
+
* `Dim a As Foo, b As Bar` line adds 2 to the classifier count, and a
|
|
24
|
+
* bare `Dim x` line adds 0 (the bare-Dim path is a `localVarTypeMap`
|
|
25
|
+
* only side effect, no graph edges).
|
|
26
|
+
*
|
|
27
|
+
* No inter-line state — each rule is self-contained.
|
|
28
|
+
*/
|
|
29
|
+
export declare const RULES: readonly VbaExtractionRule<unknown>[];
|
|
30
|
+
/**
|
|
31
|
+
* Issue #83: factory for the Dim / WithEvents classifier.
|
|
32
|
+
*
|
|
33
|
+
* The body walks the declarative `RULES` table (Issue #153). The two
|
|
34
|
+
* rules are independent: `dim-decl` handles typed declarations
|
|
35
|
+
* (REJECTED if the line is a `WithEvents` because the prefix
|
|
36
|
+
* negative-lookahead excludes `WithEvents`), `withevents-decl`
|
|
37
|
+
* handles WithEvents. No inter-line state.
|
|
4
38
|
*/
|
|
5
39
|
export declare function createDimsClassifier(): VbaClassifier;
|
|
6
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dims.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/dims.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dims.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/dims.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAiFnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,iBAAiB,CAAC,OAAO,CAAC,EAyItD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,CAgBpD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpF"}
|