@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.
Files changed (117) hide show
  1. package/lib/dist/db/queries.d.ts +39 -0
  2. package/lib/dist/db/queries.d.ts.map +1 -1
  3. package/lib/dist/db/queries.js +45 -0
  4. package/lib/dist/db/queries.js.map +1 -1
  5. package/lib/dist/extraction/frameworks/dysflow-export.d.ts +37 -0
  6. package/lib/dist/extraction/frameworks/dysflow-export.d.ts.map +1 -0
  7. package/lib/dist/extraction/frameworks/dysflow-export.js +121 -0
  8. package/lib/dist/extraction/frameworks/dysflow-export.js.map +1 -0
  9. package/lib/dist/extraction/frameworks/index.d.ts +20 -0
  10. package/lib/dist/extraction/frameworks/index.d.ts.map +1 -0
  11. package/lib/dist/extraction/frameworks/index.js +24 -0
  12. package/lib/dist/extraction/frameworks/index.js.map +1 -0
  13. package/lib/dist/extraction/index.d.ts.map +1 -1
  14. package/lib/dist/extraction/index.js +25 -5
  15. package/lib/dist/extraction/index.js.map +1 -1
  16. package/lib/dist/extraction/parse-pool.d.ts +10 -0
  17. package/lib/dist/extraction/parse-pool.d.ts.map +1 -1
  18. package/lib/dist/extraction/parse-pool.js +2 -0
  19. package/lib/dist/extraction/parse-pool.js.map +1 -1
  20. package/lib/dist/extraction/parse-worker.js +6 -2
  21. package/lib/dist/extraction/parse-worker.js.map +1 -1
  22. package/lib/dist/extraction/tree-sitter.d.ts +9 -1
  23. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  24. package/lib/dist/extraction/tree-sitter.js +58 -5
  25. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  26. package/lib/dist/extraction/vba/call-sweep.d.ts +43 -0
  27. package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
  28. package/lib/dist/extraction/vba/call-sweep.js +155 -66
  29. package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
  30. package/lib/dist/extraction/vba/calls.d.ts.map +1 -1
  31. package/lib/dist/extraction/vba/calls.js +6 -0
  32. package/lib/dist/extraction/vba/calls.js.map +1 -1
  33. package/lib/dist/extraction/vba/context.d.ts +109 -1
  34. package/lib/dist/extraction/vba/context.d.ts.map +1 -1
  35. package/lib/dist/extraction/vba/context.js +155 -2
  36. package/lib/dist/extraction/vba/context.js.map +1 -1
  37. package/lib/dist/extraction/vba/controls.d.ts.map +1 -1
  38. package/lib/dist/extraction/vba/controls.js +77 -0
  39. package/lib/dist/extraction/vba/controls.js.map +1 -1
  40. package/lib/dist/extraction/vba/declarations.d.ts +38 -2
  41. package/lib/dist/extraction/vba/declarations.d.ts.map +1 -1
  42. package/lib/dist/extraction/vba/declarations.js +217 -129
  43. package/lib/dist/extraction/vba/declarations.js.map +1 -1
  44. package/lib/dist/extraction/vba/dims.d.ts +35 -1
  45. package/lib/dist/extraction/vba/dims.d.ts.map +1 -1
  46. package/lib/dist/extraction/vba/dims.js +185 -109
  47. package/lib/dist/extraction/vba/dims.js.map +1 -1
  48. package/lib/dist/extraction/vba/enums-consts.d.ts +47 -7
  49. package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -1
  50. package/lib/dist/extraction/vba/enums-consts.js +212 -139
  51. package/lib/dist/extraction/vba/enums-consts.js.map +1 -1
  52. package/lib/dist/extraction/vba/event-synth.d.ts +3 -0
  53. package/lib/dist/extraction/vba/event-synth.d.ts.map +1 -0
  54. package/lib/dist/extraction/vba/event-synth.js +176 -0
  55. package/lib/dist/extraction/vba/event-synth.js.map +1 -0
  56. package/lib/dist/extraction/vba/events.d.ts +16 -0
  57. package/lib/dist/extraction/vba/events.d.ts.map +1 -0
  58. package/lib/dist/extraction/vba/events.js +90 -0
  59. package/lib/dist/extraction/vba/events.js.map +1 -0
  60. package/lib/dist/extraction/vba/implements.d.ts +16 -0
  61. package/lib/dist/extraction/vba/implements.d.ts.map +1 -1
  62. package/lib/dist/extraction/vba/implements.js +43 -12
  63. package/lib/dist/extraction/vba/implements.js.map +1 -1
  64. package/lib/dist/extraction/vba/procedures.d.ts +20 -0
  65. package/lib/dist/extraction/vba/procedures.d.ts.map +1 -1
  66. package/lib/dist/extraction/vba/procedures.js +48 -13
  67. package/lib/dist/extraction/vba/procedures.js.map +1 -1
  68. package/lib/dist/extraction/vba/rules.d.ts +125 -0
  69. package/lib/dist/extraction/vba/rules.d.ts.map +1 -0
  70. package/lib/dist/extraction/vba/rules.js +49 -0
  71. package/lib/dist/extraction/vba/rules.js.map +1 -0
  72. package/lib/dist/extraction/vba/text-utils.d.ts +0 -6
  73. package/lib/dist/extraction/vba/text-utils.d.ts.map +1 -1
  74. package/lib/dist/extraction/vba/text-utils.js +9 -6
  75. package/lib/dist/extraction/vba/text-utils.js.map +1 -1
  76. package/lib/dist/extraction/vba-extractor.d.ts +77 -1
  77. package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
  78. package/lib/dist/extraction/vba-extractor.js +177 -15
  79. package/lib/dist/extraction/vba-extractor.js.map +1 -1
  80. package/lib/dist/extraction/vba-form-extractor.d.ts +26 -114
  81. package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
  82. package/lib/dist/extraction/vba-form-extractor.js +293 -297
  83. package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
  84. package/lib/dist/extraction/vba-preprocess.d.ts +11 -1
  85. package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
  86. package/lib/dist/extraction/vba-preprocess.js +45 -16
  87. package/lib/dist/extraction/vba-preprocess.js.map +1 -1
  88. package/lib/dist/extraction/vba-timing.d.ts +38 -0
  89. package/lib/dist/extraction/vba-timing.d.ts.map +1 -0
  90. package/lib/dist/extraction/vba-timing.js +203 -0
  91. package/lib/dist/extraction/vba-timing.js.map +1 -0
  92. package/lib/dist/index.d.ts.map +1 -1
  93. package/lib/dist/index.js +26 -0
  94. package/lib/dist/index.js.map +1 -1
  95. package/lib/dist/project-config.d.ts +31 -0
  96. package/lib/dist/project-config.d.ts.map +1 -1
  97. package/lib/dist/project-config.js +75 -22
  98. package/lib/dist/project-config.js.map +1 -1
  99. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  100. package/lib/dist/resolution/frameworks/index.js +7 -0
  101. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  102. package/lib/dist/resolution/index.d.ts +7 -0
  103. package/lib/dist/resolution/index.d.ts.map +1 -1
  104. package/lib/dist/resolution/index.js +155 -11
  105. package/lib/dist/resolution/index.js.map +1 -1
  106. package/lib/dist/resolution/name-matcher.d.ts +6 -0
  107. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  108. package/lib/dist/resolution/name-matcher.js +81 -0
  109. package/lib/dist/resolution/name-matcher.js.map +1 -1
  110. package/lib/dist/resolution/vba-access-object-name.d.ts +7 -0
  111. package/lib/dist/resolution/vba-access-object-name.d.ts.map +1 -0
  112. package/lib/dist/resolution/vba-access-object-name.js +15 -0
  113. package/lib/dist/resolution/vba-access-object-name.js.map +1 -0
  114. package/lib/node_modules/.modules.yaml +1 -1
  115. package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
  116. package/lib/package.json +2 -1
  117. package/package.json +1 -1
@@ -98,8 +98,52 @@ class VbaExtractorContext {
98
98
  * of every procedure whose `End` marker the sweep has not yet seen.
99
99
  */
100
100
  procStack = [];
101
+ /**
102
+ * Issue #153: per-extraction state for the events/types/declares
103
+ * classifier's `Type <Name> ... End Type` block tracking. The
104
+ * `currentTypeBlock` is set when a `type-start` rule fires and
105
+ * cleared when the matching `type-end` rule fires. Lives on `ctx`
106
+ * (instead of the factory's closure) so the declarative RULES
107
+ * table's `emit` functions can read/write it without taking a
108
+ * closure-captured mutable reference. `null` means "outside any
109
+ * type block right now". Reset implicitly per-extraction (a fresh
110
+ * `VbaExtractorContext` is constructed every `extract()` call).
111
+ */
112
+ vbaDeclTypeBlock = null;
113
+ /**
114
+ * Issue #153: per-extraction state for the enum/consts classifier's
115
+ * `Enum <Name> ... End Enum` block tracking. Same shape and
116
+ * rationale as `vbaDeclTypeBlock`: lives on `ctx` so the
117
+ * declarative RULES table's `emit` functions can read/write it
118
+ * without taking a closure-captured mutable reference.
119
+ * `null` means "outside any enum block right now".
120
+ */
121
+ vbaEnumBlock = null;
122
+ /**
123
+ * Issue #153: per-extraction state for the calls/SQL classifier's
124
+ * `With <receiver> ... End With` block tracking. The with-receiver
125
+ * stack mirrors the textual nesting of `With` blocks inside a
126
+ * procedure body — the top of the stack is the active receiver
127
+ * for `.Member` and `.Member(args)` statement-form calls. Reset
128
+ * implicitly per-extraction (a fresh `VbaExtractorContext` is
129
+ * constructed every `extract()` call). Replaces the per-factory
130
+ * closure variable that lived in `sweepCallsAndSql` before the
131
+ * Issue #153 RULES-table refactor.
132
+ */
133
+ vbaWithStack = [];
101
134
  /** Local event name (lowercase) → event node for `RaiseEvent` edge emission. */
102
135
  localEvents = new Map();
136
+ /**
137
+ * Issue #152: per-event counter for `RaiseEvent <EventName>` sites. Keyed
138
+ * by event node id (so two different events that share a name across
139
+ * files don't collide — the gate is per-file). The count is incremented
140
+ * in `scanRaiseEvents` BEFORE the edge is pushed, so the count equals
141
+ * the number of raise sites regardless of the gate decision downstream.
142
+ * The orchestrator's fanout-gate pass reads this map to decide which
143
+ * event nodes to flag `metadata.highFanout: true` and which `raises-event`
144
+ * edges to drop.
145
+ */
146
+ raiseEventCounts = new Map();
103
147
  /**
104
148
  * Same-file function/property return types, keyed by lowercase proc name →
105
149
  * declared return type. ONLY non-primitive (project-class) return types are
@@ -111,9 +155,45 @@ class VbaExtractorContext {
111
155
  * time) — that stays the resolver's frontier.
112
156
  */
113
157
  functionReturnTypes = new Map();
158
+ /**
159
+ * Issue #156: per-stage timings, lazily allocated ONLY when
160
+ * `CODEGRAPH_VBA_TIMING=1|2` is set. The default path (env var unset)
161
+ * keeps this `null` so `recordStage` is a single null-check and we
162
+ * pay zero Map-allocation cost in the hot path. Stage names are
163
+ * dot-separated: `preprocess.stripVbaComments`,
164
+ * `preprocess.cc.lexer+parser`, `walk.procedures`, `walk.main`,
165
+ * `classifier.<name>`. Counters are in milliseconds (float).
166
+ */
167
+ timings = null;
168
+ /**
169
+ * Issue #156: how many times each classifier's `classifyLine` was
170
+ * invoked. Only allocated together with `timings` so the default path
171
+ * pays no cost.
172
+ */
173
+ classifierInvokeCounts = null;
114
174
  constructor(filePath) {
115
175
  this.filePath = filePath;
116
176
  }
177
+ /**
178
+ * Issue #156: ensure the timings Maps exist. Called once per
179
+ * `extract()` by the orchestrator right after it reads the env var.
180
+ * No-op when already allocated.
181
+ */
182
+ ensureTimings() {
183
+ if (this.timings === null) {
184
+ this.timings = new Map();
185
+ this.classifierInvokeCounts = new Map();
186
+ }
187
+ }
188
+ /**
189
+ * Issue #156: add `ms` to the stage named `name`. No-op when
190
+ * `timings` is null (default path).
191
+ */
192
+ recordStage(name, ms) {
193
+ if (this.timings === null)
194
+ return;
195
+ this.timings.set(name, (this.timings.get(name) ?? 0) + ms);
196
+ }
117
197
  /**
118
198
  * Emit a `contains` edge from the (lazily-created) module/class node to
119
199
  * `targetId`. Mirrors the pending-source pattern the procedure and
@@ -209,6 +289,66 @@ class VbaExtractorContext {
209
289
  // `sweepProcedures` (audit S2 — replaced an O(n) linear scan per call site).
210
290
  return this.functionNodeByName.get(name);
211
291
  }
292
+ /**
293
+ * Issue #152: apply the per-file `RaiseEvent` fanout gate. For every
294
+ * event whose `raiseEventCounts` value exceeds `maxFanout`:
295
+ * 1. Stamp the event node's `metadata.highFanout = true` and
296
+ * `metadata.raiseCount = <count>` so consumers (codegraph_explore,
297
+ * vba-event-tracer) can recognize a high-fanout event.
298
+ * 2. Drop every `raises-event` edge targeting that event id from
299
+ * `edges`. The event node itself stays — declaration site, handler
300
+ * linkage via `subscribes-event`, and metadata are all preserved.
301
+ *
302
+ * Events with `<= maxFanout` raise sites are untouched (no flag, edges
303
+ * stay). When `maxFanout` is undefined, the gate is disabled and the
304
+ * method is a no-op. Mirrors the upstream `EVENT_FANOUT_CAP` discipline
305
+ * in `src/resolution/callback-synthesizer.ts:43` (this side suppresses
306
+ * the producer side, the upstream side suppresses the synthesized
307
+ * cross-file dispatcher/handler edges).
308
+ *
309
+ * Returns the number of `raises-event` edges dropped (zero when the
310
+ * gate is disabled or no event exceeds the cap — useful for tests).
311
+ */
312
+ applyRaiseFanoutGate(maxFanout) {
313
+ if (maxFanout === undefined)
314
+ return 0;
315
+ if (maxFanout < 0)
316
+ return 0;
317
+ // 1. Build the set of event node ids that exceed the cap.
318
+ const overThreshold = new Set();
319
+ for (const [eventId, count] of this.raiseEventCounts) {
320
+ if (count > maxFanout)
321
+ overThreshold.add(eventId);
322
+ }
323
+ if (overThreshold.size === 0)
324
+ return 0;
325
+ // 2. Stamp the metadata on the event nodes.
326
+ for (const eventId of overThreshold) {
327
+ const eventNode = this.nodes.find((n) => n.id === eventId && n.kind === 'event');
328
+ if (!eventNode)
329
+ continue;
330
+ const md = (eventNode.metadata ?? {});
331
+ md.highFanout = true;
332
+ md.raiseCount = this.raiseEventCounts.get(eventId) ?? 0;
333
+ eventNode.metadata = md;
334
+ }
335
+ // 3. Drop every `raises-event` edge targeting an over-threshold event.
336
+ // Re-build the edges array so the dropped edges vanish without
337
+ // disturbing the other edges' order. `edges.length` is the only
338
+ // property kept; this matches how every other sweep mutates `edges`
339
+ // (push-only, never splice).
340
+ const before = this.edges.length;
341
+ const kept = [];
342
+ for (const e of this.edges) {
343
+ if (e.kind === 'raises-event' && overThreshold.has(e.target))
344
+ continue;
345
+ kept.push(e);
346
+ }
347
+ this.edges.length = 0;
348
+ for (const e of kept)
349
+ this.edges.push(e);
350
+ return before - kept.length;
351
+ }
212
352
  /**
213
353
  * Emit a `references` edge from the file's module/class node to a synthetic
214
354
  * node named `targetName`. Used by Dim, WithEvents, Set-New, and SQL sweeps.
@@ -222,8 +362,18 @@ class VbaExtractorContext {
222
362
  * TempVars sweep already emits (`emitTempVarReference`). Omitted for
223
363
  * structural references (Dim/WithEvents/Set-New) where the direction is not
224
364
  * meaningful.
365
+ *
366
+ * `extras` (optional): additional metadata fields to merge into the
367
+ * emitted edge's `metadata` object. Used by the WithEvents sweep to
368
+ * stamp `variableName` (issue #150) so the post-extraction
369
+ * event-handler synthesis pass can find the `m_<var>_<event>`
370
+ * handler Sub even after `resolveVbaReferenceStubs` CASCADE-deletes
371
+ * the companion `subscribes-event` edge along with the synthetic
372
+ * class stub. Fields here are merged AFTER the standard
373
+ * `{ synthesizedBy [, access] }` shape, so callers can override
374
+ * (rarely useful) but not accidentally drop the stamp.
225
375
  */
226
- emitReference(targetName, lineNum, column, synthesizedBy, access) {
376
+ emitReference(targetName, lineNum, column, synthesizedBy, access, extras) {
227
377
  if (!targetName)
228
378
  return;
229
379
  const targetId = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'class', // placeholder kind; cross-file resolution will re-type at lookup
@@ -247,12 +397,15 @@ class VbaExtractorContext {
247
397
  updatedAt: Date.now(),
248
398
  });
249
399
  }
400
+ const metadata = access
401
+ ? { synthesizedBy, access, ...(extras ?? {}) }
402
+ : { synthesizedBy, ...(extras ?? {}) };
250
403
  const edge = {
251
404
  source: '', // rewritten after module node exists
252
405
  target: targetId,
253
406
  kind: 'references',
254
407
  provenance: 'heuristic',
255
- metadata: access ? { synthesizedBy, access } : { synthesizedBy },
408
+ metadata,
256
409
  line: lineNum,
257
410
  column,
258
411
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/extraction/vba/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/extraction/vba/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AA2B1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAsCN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CA0BN"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAiD1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CAiGN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,mBAAmB,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,GACd,IAAI,CA0BN"}
@@ -11,6 +11,25 @@ exports.scanFormsBang = scanFormsBang;
11
11
  * the control, not new symbols. Provenance: `vba-me-control`.
12
12
  */
13
13
  const ME_CONTROL_RE = /\bMe[.!](\p{L}[\p{L}\p{N}_]*)/gu;
14
+ const ACCESS_FORM_MEMBER_BLACKLIST = new Set([
15
+ 'requery', 'refresh', 'repaint', 'recalc', 'undo', 'dirty', 'newrecord',
16
+ 'currentrecord', 'recordset', 'recordsetclone', 'recordsource', 'controls',
17
+ 'name', 'caption', 'visible', 'filter', 'filteron', 'orderby', 'orderbyon',
18
+ 'parent', 'activecontrol', 'section', 'bookmark', 'form', 'hwnd', 'painting',
19
+ 'timerinterval',
20
+ ]);
21
+ const seenMeControls = new WeakMap();
22
+ function siblingLayoutPath(filePath) {
23
+ const normalized = filePath.replace(/\\/g, '/');
24
+ const basename = normalized.slice(normalized.lastIndexOf('/') + 1);
25
+ if (/^Form_.+\.cls$/i.test(basename)) {
26
+ return normalized.replace(/\.cls$/i, '.form.txt');
27
+ }
28
+ if (/^Report_.+\.cls$/i.test(basename)) {
29
+ return normalized.replace(/\.cls$/i, '.report.txt');
30
+ }
31
+ return null;
32
+ }
14
33
  /**
15
34
  * Issue #44: `Forms!<FormName>` / `Forms("<FormName>")!<Ctl>` cross-form
16
35
  * reference capture — companion to `ME_CONTROL_RE`. `Forms` is in
@@ -51,6 +70,64 @@ function scanMeControlReferences(ctx, line, from, lineNum) {
51
70
  // Both `.` and `!` are 1 char so the captured name starts at `m.index + 3`.
52
71
  const operator = line.charAt(m.index + 2); // '.' | '!'
53
72
  const isBang = operator === '!';
73
+ const siblingPath = siblingLayoutPath(ctx.filePath);
74
+ // Issue #140 is deliberately a separate, dot-only sweep for Access
75
+ // form/report code-behind. Keeping `Me` in the generic runtime receiver
76
+ // blacklist prevents runtime methods from becoming synthetic call nodes.
77
+ // `.Control` inside `With Me` is not handled here: resolving an implicit
78
+ // receiver requires block/data-flow tracking and is intentionally follow-up
79
+ // work rather than a guessed edge.
80
+ if (!isBang) {
81
+ if (!siblingPath)
82
+ continue;
83
+ if (ACCESS_FORM_MEMBER_BLACKLIST.has(controlName.toLowerCase())) {
84
+ // Keep issue #108's extraction-shape contract observable: built-in
85
+ // form properties such as Me.Name remain property-get/property-set
86
+ // unresolved refs. The dedicated resolver sees `builtIn: true` and
87
+ // always declines them, so they still create no node or graph edge.
88
+ const after = line.slice(m.index + 3 + controlName.length);
89
+ ctx.unresolvedReferences.push({
90
+ fromNodeId: ctx.findOrCreateFunctionNodeId(from),
91
+ referenceName: controlName,
92
+ referenceKind: after.includes('=') ? 'property-set' : 'property-get',
93
+ line: lineNum,
94
+ column: m.index + 3,
95
+ filePath: ctx.filePath,
96
+ language: 'vba',
97
+ metadata: { synthesizedBy: 'vba-me-control', siblingPath, builtIn: true },
98
+ });
99
+ continue;
100
+ }
101
+ const fromNodeId = ctx.findOrCreateFunctionNodeId(from);
102
+ const dedupeKey = `${fromNodeId}\0${controlName.toLowerCase()}`;
103
+ let seen = seenMeControls.get(ctx);
104
+ if (!seen) {
105
+ seen = new Set();
106
+ seenMeControls.set(ctx, seen);
107
+ }
108
+ if (seen.has(dedupeKey))
109
+ continue;
110
+ seen.add(dedupeKey);
111
+ const after = line.slice(m.index + 3 + controlName.length);
112
+ const before = line.slice(0, m.index);
113
+ const isDirectAssignment = /^\s*$/.test(before) && /^\s*=/.test(after);
114
+ ctx.unresolvedReferences.push({
115
+ fromNodeId,
116
+ referenceName: controlName,
117
+ referenceKind: 'references',
118
+ line: lineNum,
119
+ column: m.index + 3,
120
+ filePath: ctx.filePath,
121
+ language: 'vba',
122
+ metadata: {
123
+ synthesizedBy: 'vba-me-control',
124
+ siblingPath,
125
+ access: isDirectAssignment ? 'write' : 'read',
126
+ },
127
+ });
128
+ continue;
129
+ }
130
+ // Preserve the existing Me! default-collection behavior from issue #44.
54
131
  // Same-line get vs set heuristic: anything past the captured control
55
132
  // name on this line. Cover the `=` form (`Me.Name = "X"`) and ignore
56
133
  // a previous-line `=`. The `= charAt(...)` short-circuits on the first
@@ -1 +1 @@
1
- {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../src/extraction/vba/controls.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,43 @@
1
1
  import { VbaExtractorContext, VbaClassifier } from './context';
2
+ import { VbaExtractionRule } from './rules';
2
3
  /**
3
- * Issue #83: factory for the events/types/declares classifier. Closure
4
- * state: `currentType` (the open `Type ... End Type` block).
4
+ * Issue #153: the declarative rule table for the events/types/declares
5
+ * concern. Five rules, partitioned by where they fire:
6
+ *
7
+ * - `event-decl` (outside-type-block) — match an `Event <Name>` decl
8
+ * - `type-start` (outside-type-block) — match a `Type <Name>` header;
9
+ * sets `ctx.vbaDeclTypeBlock` on a successful match
10
+ * - `type-end` (inside-type-block) — match `End Type`; clears
11
+ * `ctx.vbaDeclTypeBlock` on a successful match
12
+ * - `type-member` (inside-type-block) — match `<Member> As <Type>`
13
+ * inside an open type block
14
+ * - `dll-declare` (outside-type-block) — match a `[Private|Public]
15
+ * Declare [PtrSafe] Sub|Function <Name> Lib "<dll>"
16
+ * [Alias "<x>"]` Win32 API declaration
17
+ *
18
+ * The `requires` field encodes the type-block precondition. The
19
+ * dispatcher (the factory's `classifyLine`) filters rules whose
20
+ * precondition does not hold, so an `End Type` line never
21
+ * accidentally re-enters the `event-decl` / `dll-declare` paths.
22
+ *
23
+ * Inter-line state lives on `ctx.vbaDeclTypeBlock` (replaces the
24
+ * pre-#153 factory closure variable) so the emit functions can
25
+ * read/write it without taking a mutable closure reference.
26
+ */
27
+ export declare const RULES: readonly VbaExtractionRule<unknown>[];
28
+ /**
29
+ * Issue #83: factory for the events/types/declares classifier.
30
+ *
31
+ * Inter-line state (`ctx.vbaDeclTypeBlock`) lives on `ctx` — the
32
+ * declarative RULES table's `emit` functions read/write it directly.
33
+ * The dispatcher below honours each rule's `requires` precondition
34
+ * so the per-line dispatch mirrors the legacy cascade exactly:
35
+ *
36
+ * if (currentType) {
37
+ * try type-end, then type-member; return early
38
+ * } else {
39
+ * try event-decl, type-start, dll-declare
40
+ * }
5
41
  */
6
42
  export declare function createEventsTypesDeclaresClassifier(): VbaClassifier;
7
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"declarations.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/declarations.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqB/D;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,aAAa,CA0InE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOzF"}
1
+ {"version":3,"file":"declarations.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/declarations.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAqBnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,iBAAiB,CAAC,OAAO,CAAC,EA2JtD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mCAAmC,IAAI,aAAa,CA+BnE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOzF"}