@aroman22/codegraph-vba-darwin-arm64 1.6.0 → 1.6.2

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 (81) hide show
  1. package/lib/dist/db/migrations.d.ts +1 -1
  2. package/lib/dist/db/migrations.d.ts.map +1 -1
  3. package/lib/dist/db/migrations.js +14 -1
  4. package/lib/dist/db/migrations.js.map +1 -1
  5. package/lib/dist/db/queries.d.ts.map +1 -1
  6. package/lib/dist/db/queries.js +8 -2
  7. package/lib/dist/db/queries.js.map +1 -1
  8. package/lib/dist/db/schema.sql +1 -0
  9. package/lib/dist/extraction/grammars.d.ts +32 -0
  10. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  11. package/lib/dist/extraction/grammars.js +61 -0
  12. package/lib/dist/extraction/grammars.js.map +1 -1
  13. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  14. package/lib/dist/extraction/tree-sitter.js +24 -0
  15. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  16. package/lib/dist/extraction/vba/call-sweep.d.ts +13 -1
  17. package/lib/dist/extraction/vba/call-sweep.d.ts.map +1 -1
  18. package/lib/dist/extraction/vba/call-sweep.js +229 -151
  19. package/lib/dist/extraction/vba/call-sweep.js.map +1 -1
  20. package/lib/dist/extraction/vba/context.d.ts +52 -2
  21. package/lib/dist/extraction/vba/context.d.ts.map +1 -1
  22. package/lib/dist/extraction/vba/context.js +29 -2
  23. package/lib/dist/extraction/vba/context.js.map +1 -1
  24. package/lib/dist/extraction/vba/declarations.d.ts +10 -1
  25. package/lib/dist/extraction/vba/declarations.d.ts.map +1 -1
  26. package/lib/dist/extraction/vba/declarations.js +141 -123
  27. package/lib/dist/extraction/vba/declarations.js.map +1 -1
  28. package/lib/dist/extraction/vba/dims.d.ts +9 -1
  29. package/lib/dist/extraction/vba/dims.d.ts.map +1 -1
  30. package/lib/dist/extraction/vba/dims.js +125 -109
  31. package/lib/dist/extraction/vba/dims.js.map +1 -1
  32. package/lib/dist/extraction/vba/enums-consts.d.ts +13 -10
  33. package/lib/dist/extraction/vba/enums-consts.d.ts.map +1 -1
  34. package/lib/dist/extraction/vba/enums-consts.js +153 -131
  35. package/lib/dist/extraction/vba/enums-consts.js.map +1 -1
  36. package/lib/dist/extraction/vba/implements.d.ts +9 -1
  37. package/lib/dist/extraction/vba/implements.d.ts.map +1 -1
  38. package/lib/dist/extraction/vba/implements.js +56 -40
  39. package/lib/dist/extraction/vba/implements.js.map +1 -1
  40. package/lib/dist/extraction/vba/procedures.d.ts +13 -1
  41. package/lib/dist/extraction/vba/procedures.d.ts.map +1 -1
  42. package/lib/dist/extraction/vba/procedures.js +238 -186
  43. package/lib/dist/extraction/vba/procedures.js.map +1 -1
  44. package/lib/dist/extraction/vba/sql-wrapper.d.ts.map +1 -1
  45. package/lib/dist/extraction/vba/sql-wrapper.js +20 -3
  46. package/lib/dist/extraction/vba/sql-wrapper.js.map +1 -1
  47. package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
  48. package/lib/dist/extraction/vba-extractor.js +47 -38
  49. package/lib/dist/extraction/vba-extractor.js.map +1 -1
  50. package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
  51. package/lib/dist/extraction/vba-form-extractor.js +6 -1
  52. package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
  53. package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
  54. package/lib/dist/extraction/vba-preprocess.js +23 -2
  55. package/lib/dist/extraction/vba-preprocess.js.map +1 -1
  56. package/lib/dist/extraction/vba-test-manifest-extractor.d.ts +26 -0
  57. package/lib/dist/extraction/vba-test-manifest-extractor.d.ts.map +1 -0
  58. package/lib/dist/extraction/vba-test-manifest-extractor.js +173 -0
  59. package/lib/dist/extraction/vba-test-manifest-extractor.js.map +1 -0
  60. package/lib/dist/extraction/vba-test-sequence-extractor.d.ts +29 -0
  61. package/lib/dist/extraction/vba-test-sequence-extractor.d.ts.map +1 -0
  62. package/lib/dist/extraction/vba-test-sequence-extractor.js +180 -0
  63. package/lib/dist/extraction/vba-test-sequence-extractor.js.map +1 -0
  64. package/lib/dist/mcp/server-instructions.d.ts +1 -1
  65. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  66. package/lib/dist/mcp/server-instructions.js +5 -0
  67. package/lib/dist/mcp/server-instructions.js.map +1 -1
  68. package/lib/dist/resolution/index.d.ts.map +1 -1
  69. package/lib/dist/resolution/index.js +30 -0
  70. package/lib/dist/resolution/index.js.map +1 -1
  71. package/lib/dist/resolution/types.d.ts +7 -0
  72. package/lib/dist/resolution/types.d.ts.map +1 -1
  73. package/lib/dist/upgrade/index.d.ts +2 -2
  74. package/lib/dist/upgrade/index.d.ts.map +1 -1
  75. package/lib/dist/upgrade/index.js +1 -1
  76. package/lib/dist/upgrade/index.js.map +1 -1
  77. package/lib/node_modules/.modules.yaml +1 -1
  78. package/lib/node_modules/.pnpm/lock.yaml +4 -0
  79. package/lib/node_modules/.pnpm-workspace-state-v1.json +1 -1
  80. package/lib/package.json +8 -2
  81. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDimsClassifier = createDimsClassifier;
3
4
  exports.sweepDimsAndWithEvents = sweepDimsAndWithEvents;
4
5
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
6
  const constants_1 = require("./constants");
@@ -62,125 +63,140 @@ const DIM_ALL_VARS_RE = /\b(\p{L}[\p{L}\p{N}_]*)\s+As\s+(?:New\s+)?(?:\[([^\]]+)
62
63
  const BARE_DIM_VAR_RE = /^\s*(?:Dim|Private|Public|Global|Static)\s+(\p{L}[\p{L}\p{N}_]*)\s*(?:,|$|\b)/iu;
63
64
  /** `WithEvents m_X As Form_Foo` — Dim/Private/Public/Global/Static prefix is optional. */
64
65
  const WITHEVENTS_RE = /^\s*(?:(?:Dim|Private|Public|Global|Static)\s+)?WithEvents\s+\p{L}[\p{L}\p{N}_]*\s+As\s+(\p{L}[\p{L}\p{N}_]*)/iu;
65
- function sweepDimsAndWithEvents(ctx, src) {
66
- const lines = src.split('\n');
67
- let count = 0;
68
- for (let i = 0; i < lines.length; i++) {
69
- const line = lines[i] ?? '';
70
- const lineNum = i + 1;
71
- // Fix 1 + Fix 3 (Issues #1, #3): replace the old single-match
72
- // DIM_QUAL_RE / DIM_UNQUAL_RE pair with a global scan that handles
73
- // `As New <Type>`, multi-variable `Dim a As Foo, b As Bar`, and
74
- // qualified `Dim x As Foo.Bar` in a single pass.
75
- if (DIM_DECL_PREFIX_RE.test(line)) {
76
- DIM_ALL_VARS_RE.lastIndex = 0;
77
- let m;
78
- while ((m = DIM_ALL_VARS_RE.exec(line)) !== null) {
79
- const varName = m[1] ?? '';
80
- // Issue #54: DIM_ALL_VARS_RE groups (2) and (3) are alternative
81
- // captures for the same outer-type position — the bracketed
82
- // alternative wins when present, the bare one otherwise. The
83
- // captured value is already unwrapped (the `[...]` is consumed
84
- // by the regex, group (2) holds the inner content). Same shape
85
- // for the inner type at groups (4)/(5).
86
- const outerType = m[2] ?? m[3] ?? '';
87
- const innerType = m[4] ?? m[5] ?? '';
88
- // Fix 2 (Issue #2): populate the local var type map so that
89
- // `sweepCallsAndSql` can gate qualified statement-form calls.
90
- if (varName && outerType) {
91
- ctx.localVarTypeMap.set(varName.toLowerCase(), {
92
- outer: outerType,
93
- qualified: !!innerType,
94
- });
95
- }
96
- if (innerType) {
97
- // Qualified form (`Dim x As Foo.Bar`) — emit reference to the
98
- // outer type `Foo` (same behaviour as the old DIM_QUAL_RE path).
99
- if (outerType) {
100
- ctx.emitReference(outerType, lineNum, 0, 'vba-name-resolution');
101
- count++;
66
+ /**
67
+ * Issue #83: factory for the Dim / WithEvents classifier. Stateless per-line.
68
+ */
69
+ function createDimsClassifier() {
70
+ return {
71
+ name: 'dims',
72
+ count: 0,
73
+ classifyLine(line, i, ctx) {
74
+ const lineNum = i + 1;
75
+ // Fix 1 + Fix 3 (Issues #1, #3): replace the old single-match
76
+ // DIM_QUAL_RE / DIM_UNQUAL_RE pair with a global scan that handles
77
+ // `As New <Type>`, multi-variable `Dim a As Foo, b As Bar`, and
78
+ // qualified `Dim x As Foo.Bar` in a single pass.
79
+ if (DIM_DECL_PREFIX_RE.test(line)) {
80
+ DIM_ALL_VARS_RE.lastIndex = 0;
81
+ let m;
82
+ while ((m = DIM_ALL_VARS_RE.exec(line)) !== null) {
83
+ const varName = m[1] ?? '';
84
+ // Issue #54: DIM_ALL_VARS_RE groups (2) and (3) are alternative
85
+ // captures for the same outer-type position the bracketed
86
+ // alternative wins when present, the bare one otherwise. The
87
+ // captured value is already unwrapped (the `[...]` is consumed
88
+ // by the regex, group (2) holds the inner content). Same shape
89
+ // for the inner type at groups (4)/(5).
90
+ const outerType = m[2] ?? m[3] ?? '';
91
+ const innerType = m[4] ?? m[5] ?? '';
92
+ // Fix 2 (Issue #2): populate the local var type map so that
93
+ // `sweepCallsAndSql` can gate qualified statement-form calls.
94
+ if (varName && outerType) {
95
+ ctx.localVarTypeMap.set(varName.toLowerCase(), {
96
+ outer: outerType,
97
+ qualified: !!innerType,
98
+ });
99
+ }
100
+ if (innerType) {
101
+ // Qualified form (`Dim x As Foo.Bar`) — emit reference to the
102
+ // outer type `Foo` (same behaviour as the old DIM_QUAL_RE path).
103
+ if (outerType) {
104
+ ctx.emitReference(outerType, lineNum, 0, 'vba-name-resolution');
105
+ this.count++;
106
+ }
107
+ }
108
+ else {
109
+ // Unqualified form (`Dim x As SomeType`, `Dim x As New SomeType`)
110
+ // — emit reference only when the type is not a primitive or keyword.
111
+ if (outerType && !constants_1.PRIMITIVE_TYPES.has(outerType.toLowerCase())) {
112
+ ctx.emitReference(outerType, lineNum, 0, 'vba-name-resolution');
113
+ this.count++;
114
+ }
102
115
  }
103
116
  }
104
- else {
105
- // Unqualified form (`Dim x As SomeType`, `Dim x As New SomeType`)
106
- // emit reference only when the type is not a primitive or keyword.
107
- if (outerType && !constants_1.PRIMITIVE_TYPES.has(outerType.toLowerCase())) {
108
- ctx.emitReference(outerType, lineNum, 0, 'vba-name-resolution');
109
- count++;
117
+ // Antigravity audit Task 3: bare `Dim x` (no `As` clause) and
118
+ // explicit-primitive `Dim x As <primitive>` declarations must
119
+ // still register `x` in `localVarTypeMap` so the qualified-call
120
+ // site scan in `scanCallSites` can gate the dead-end stub that
121
+ // no resolver could ever repoint.
122
+ //
123
+ // Captures the FIRST variable name only. Multi-variable bare
124
+ // Dim (e.g. `Dim a, b, c` without an `As` clause) is rare in
125
+ // real Dysflow fixtures and is intentionally NOT tracked here —
126
+ // those bare variables fall back to the undeclared-receiver
127
+ // path, which is the conservative choice. Skip if the typed-form
128
+ // loop already populated the entry.
129
+ const bm = BARE_DIM_VAR_RE.exec(line);
130
+ if (bm) {
131
+ const varName = bm[1] ?? '';
132
+ if (varName) {
133
+ const key = varName.toLowerCase();
134
+ if (!ctx.localVarTypeMap.has(key)) {
135
+ // Look for an `As <Type>` continuation on the same line so the
136
+ // outer type matches the existing typed-form behaviour. If
137
+ // absent, the variable is implicit `Variant` per VBA semantics.
138
+ const asRe = /\bAs\s+(\p{L}[\p{L}\p{N}_]*)/iu;
139
+ const asMatch = asRe.exec(line);
140
+ const outer = asMatch ? (asMatch[1] ?? '').toLowerCase() : 'variant';
141
+ ctx.localVarTypeMap.set(key, {
142
+ outer,
143
+ qualified: false,
144
+ });
145
+ }
110
146
  }
111
147
  }
112
148
  }
113
- // Antigravity audit Task 3: bare `Dim x` (no `As` clause) and
114
- // explicit-primitive `Dim x As <primitive>` declarations must
115
- // still register `x` in `localVarTypeMap` so the qualified-call
116
- // site scan in `scanCallSites` can gate the dead-end stub that
117
- // no resolver could ever repoint.
118
- //
119
- // Captures the FIRST variable name only. Multi-variable bare
120
- // Dim (e.g. `Dim a, b, c` without an `As` clause) is rare in
121
- // real Dysflow fixtures and is intentionally NOT tracked here —
122
- // those bare variables fall back to the undeclared-receiver
123
- // path, which is the conservative choice. Skip if the typed-form
124
- // loop already populated the entry.
125
- const bm = BARE_DIM_VAR_RE.exec(line);
126
- if (bm) {
127
- const varName = bm[1] ?? '';
128
- if (varName) {
129
- const key = varName.toLowerCase();
130
- if (!ctx.localVarTypeMap.has(key)) {
131
- // Look for an `As <Type>` continuation on the same line so the
132
- // outer type matches the existing typed-form behaviour. If
133
- // absent, the variable is implicit `Variant` per VBA semantics.
134
- const asRe = /\bAs\s+(\p{L}[\p{L}\p{N}_]*)/iu;
135
- const asMatch = asRe.exec(line);
136
- const outer = asMatch ? (asMatch[1] ?? '').toLowerCase() : 'variant';
137
- ctx.localVarTypeMap.set(key, {
138
- outer,
149
+ // WithEvents declarations handled by their own regex; also populate
150
+ // the local var type map for completeness.
151
+ const weMatch = WITHEVENTS_RE.exec(line);
152
+ if (weMatch) {
153
+ const formType = weMatch[1] ?? '';
154
+ if (formType) {
155
+ // Extract the variable name from the WithEvents line for the map.
156
+ const weVarM = /^\s*(?:(?:Dim|Private|Public|Global|Static)\s+)?WithEvents\s+(\p{L}[\p{L}\p{N}_]*)/iu.exec(line);
157
+ const weVarName = weVarM?.[1] ?? '';
158
+ if (weVarName) {
159
+ ctx.localVarTypeMap.set(weVarName.toLowerCase(), {
160
+ outer: formType,
139
161
  qualified: false,
162
+ withEvents: true,
163
+ variableName: weVarName,
140
164
  });
141
165
  }
166
+ ctx.emitReference(formType, lineNum, 0, 'vba-withevents');
167
+ const targetId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'class', formType, 0);
168
+ const subscriberEdge = {
169
+ source: ctx.moduleOrClassNode?.id ?? '',
170
+ target: targetId,
171
+ kind: 'subscribes-event',
172
+ provenance: 'heuristic',
173
+ metadata: {
174
+ synthesizedBy: 'vba-withevents',
175
+ variableName: weVarName || undefined,
176
+ },
177
+ line: lineNum,
178
+ column: 0,
179
+ };
180
+ ctx.edges.push(subscriberEdge);
181
+ if (!ctx.moduleOrClassNode) {
182
+ ctx.pendingModuleOrClassSource.push(subscriberEdge);
183
+ }
184
+ this.count++;
142
185
  }
143
186
  }
144
- }
145
- // WithEvents declarations — handled by their own regex; also populate
146
- // the local var type map for completeness.
147
- const weMatch = WITHEVENTS_RE.exec(line);
148
- if (weMatch) {
149
- const formType = weMatch[1] ?? '';
150
- if (formType) {
151
- // Extract the variable name from the WithEvents line for the map.
152
- const weVarM = /^\s*(?:(?:Dim|Private|Public|Global|Static)\s+)?WithEvents\s+(\p{L}[\p{L}\p{N}_]*)/iu.exec(line);
153
- const weVarName = weVarM?.[1] ?? '';
154
- if (weVarName) {
155
- ctx.localVarTypeMap.set(weVarName.toLowerCase(), {
156
- outer: formType,
157
- qualified: false,
158
- withEvents: true,
159
- variableName: weVarName,
160
- });
161
- }
162
- ctx.emitReference(formType, lineNum, 0, 'vba-withevents');
163
- const targetId = (0, tree_sitter_helpers_1.generateNodeId)(ctx.filePath, 'class', formType, 0);
164
- const subscriberEdge = {
165
- source: ctx.moduleOrClassNode?.id ?? '',
166
- target: targetId,
167
- kind: 'subscribes-event',
168
- provenance: 'heuristic',
169
- metadata: {
170
- synthesizedBy: 'vba-withevents',
171
- variableName: weVarName || undefined,
172
- },
173
- line: lineNum,
174
- column: 0,
175
- };
176
- ctx.edges.push(subscriberEdge);
177
- if (!ctx.moduleOrClassNode) {
178
- ctx.pendingModuleOrClassSource.push(subscriberEdge);
179
- }
180
- count++;
181
- }
182
- }
187
+ },
188
+ };
189
+ }
190
+ /**
191
+ * Backward-compat wrapper (see procedures.ts). Returns the classifier's
192
+ * `count` so the orchestrator can decide `hasAnySymbols`.
193
+ */
194
+ function sweepDimsAndWithEvents(ctx, src) {
195
+ const cls = createDimsClassifier();
196
+ const lines = src.split('\n');
197
+ for (let i = 0; i < lines.length; i++) {
198
+ cls.classifyLine(lines[i] ?? '', i, ctx);
183
199
  }
184
- return count;
200
+ return cls.count;
185
201
  }
186
202
  //# sourceMappingURL=dims.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dims.js","sourceRoot":"","sources":["../../../src/extraction/vba/dims.ts"],"names":[],"mappings":";;AA8EA,wDA4HC;AAnMD,gEAAwD;AACxD,2CAA8C;AAG9C;;;;;;;;;;;;GAYG;AACH,MAAM,kBAAkB,GACtB,8FAA8F,CAAC;AAEjG;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,eAAe,GACnB,kIAAkI,CAAC;AAErI;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,eAAe,GACnB,iFAAiF,CAAC;AAEpF,0FAA0F;AAC1F,MAAM,aAAa,GACjB,iHAAiH,CAAC;AAEpH,SAAgB,sBAAsB,CAAC,GAAwB,EAAE,GAAW;IAC1E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAEtB,8DAA8D;QAC9D,mEAAmE;QACnE,gEAAgE;QAChE,iDAAiD;QACjD,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAyB,CAAC;YAC9B,OAAO,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3B,gEAAgE;gBAChE,4DAA4D;gBAC5D,6DAA6D;gBAC7D,+DAA+D;gBAC/D,+DAA+D;gBAC/D,wCAAwC;gBACxC,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAErC,4DAA4D;gBAC5D,8DAA8D;gBAC9D,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;oBACzB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;wBAC7C,KAAK,EAAE,SAAS;wBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,8DAA8D;oBAC9D,iEAAiE;oBACjE,IAAI,SAAS,EAAE,CAAC;wBACd,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;wBAChE,KAAK,EAAE,CAAC;oBACV,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,kEAAkE;oBAClE,qEAAqE;oBACrE,IAAI,SAAS,IAAI,CAAC,2BAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC/D,GAAG,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;wBAChE,KAAK,EAAE,CAAC;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAED,8DAA8D;YAC9D,8DAA8D;YAC9D,gEAAgE;YAChE,+DAA+D;YAC/D,kCAAkC;YAClC,EAAE;YACF,6DAA6D;YAC7D,6DAA6D;YAC7D,gEAAgE;YAChE,4DAA4D;YAC5D,iEAAiE;YACjE,oCAAoC;YACpC,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;oBAClC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAClC,+DAA+D;wBAC/D,2DAA2D;wBAC3D,gEAAgE;wBAChE,MAAM,IAAI,GAAG,gCAAgC,CAAC;wBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAChC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;wBACrE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;4BAC3B,KAAK;4BACL,SAAS,EAAE,KAAK;yBACjB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,2CAA2C;QAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,QAAQ,EAAE,CAAC;gBACb,kEAAkE;gBAClE,MAAM,MAAM,GAAG,sFAAsF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,SAAS,EAAE,CAAC;oBACd,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;wBAC/C,KAAK,EAAE,QAAQ;wBACf,SAAS,EAAE,KAAK;wBAChB,UAAU,EAAE,IAAI;wBAChB,YAAY,EAAE,SAAS;qBACxB,CAAC,CAAC;gBACL,CAAC;gBACD,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,IAAA,oCAAc,EAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACpE,MAAM,cAAc,GAAS;oBAC3B,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE;oBACvC,MAAM,EAAE,QAAQ;oBAChB,IAAI,EAAE,kBAAkB;oBACxB,UAAU,EAAE,WAAW;oBACvB,QAAQ,EAAE;wBACR,aAAa,EAAE,gBAAgB;wBAC/B,YAAY,EAAE,SAAS,IAAI,SAAS;qBACrC;oBACD,IAAI,EAAE,OAAO;oBACb,MAAM,EAAE,CAAC;iBACV,CAAC;gBACF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,GAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACtD,CAAC;gBACD,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"dims.js","sourceRoot":"","sources":["../../../src/extraction/vba/dims.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
- import { VbaExtractorContext } from './context';
1
+ import { VbaExtractorContext, VbaClassifier } from './context';
2
2
  /**
3
- * Walk the (uncommented, line-joined) source and emit:
4
- * - one `enum` node per `Enum <Name>` block, with one `enum_member` node
5
- * per member and a `contains` edge enum→member;
6
- * - one `constant` node per name declared on a `Const` line (multi-name
7
- * lines emit one node per name);
8
- * - a `contains` edge from the module/class node to each enum and constant
9
- * (held in `pendingModuleOrClassSource` until the module node exists).
3
+ * Issue #83: factory for the enum / const classifier. Closure state:
4
+ * `currentEnum` (open `Enum ... End Enum` block).
10
5
  *
11
- * Returns the number of top-level symbols (enums + constants) emitted so
12
- * the caller can flip `hasAnySymbols`.
6
+ * Also resets + advances the SHARED `ctx.procStack`/`ctx.currentProcKey`
7
+ * per line — same protocol the pre-#83 sweep followed. The calls-sql
8
+ * classifier runs AFTER this one in the per-line dispatch order and
9
+ * applies the same protocol, so the end-of-line scope state is identical
10
+ * to the legacy sequential-sweep behaviour.
11
+ */
12
+ export declare function createEnumsConstsClassifier(): VbaClassifier;
13
+ /**
14
+ * Backward-compat wrapper (see procedures.ts). Returns the classifier's
15
+ * `count` so the orchestrator can decide `hasAnySymbols`.
13
16
  */
14
17
  export declare function sweepEnumsAndConsts(ctx: VbaExtractorContext, src: string): number;
15
18
  //# sourceMappingURL=enums-consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums-consts.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/enums-consts.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAqBhD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAuJjF"}
1
+ {"version":3,"file":"enums-consts.d.ts","sourceRoot":"","sources":["../../../src/extraction/vba/enums-consts.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqB/D;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,IAAI,aAAa,CAiK3D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjF"}