@aroman22/codegraph-vba-darwin-arm64 1.10.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 +37 -0
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +33 -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/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/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-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-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 +22 -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/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
|
@@ -33,7 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.VbaExtractor = void 0;
|
|
36
|
+
exports.VbaExtractor = exports.VBA_RULE_TABLES = exports.DEFAULT_MAX_RAISE_FANOUT = void 0;
|
|
37
|
+
exports.validateVbaRuleTables = validateVbaRuleTables;
|
|
37
38
|
/**
|
|
38
39
|
* VbaExtractor — regex extractor for `.bas` / `.cls` / `.frm` / `.dsr` source.
|
|
39
40
|
*
|
|
@@ -82,33 +83,160 @@ const dims_1 = require("./vba/dims");
|
|
|
82
83
|
const enums_consts_1 = require("./vba/enums-consts");
|
|
83
84
|
const implements_1 = require("./vba/implements");
|
|
84
85
|
const call_sweep_1 = require("./vba/call-sweep");
|
|
86
|
+
const vba_timing_1 = require("./vba-timing");
|
|
87
|
+
/**
|
|
88
|
+
* Issue #152: per-file fanout cap for `RaiseEvent <EventName>` edges. An
|
|
89
|
+
* event raised from more than this many sites in a single file is
|
|
90
|
+
* flagged `metadata.highFanout: true` and ALL `raises-event` edges to it
|
|
91
|
+
* are dropped — the gate suppresses graph noise from events with generic
|
|
92
|
+
* names (`Change`, `Click`, `AfterUpdate`, …) that would otherwise
|
|
93
|
+
* produce hundreds of edges per file. Mirrors the upstream
|
|
94
|
+
* `EVENT_FANOUT_CAP` discipline in
|
|
95
|
+
* `src/resolution/callback-synthesizer.ts:43`. Configurable via
|
|
96
|
+
* `codegraph.json` → `vba.maxRaiseFanout`. Pass `Number.POSITIVE_INFINITY`
|
|
97
|
+
* (or any value `>=` the largest expected count) to disable the gate.
|
|
98
|
+
*/
|
|
99
|
+
exports.DEFAULT_MAX_RAISE_FANOUT = 50;
|
|
100
|
+
/**
|
|
101
|
+
* Issue #153: the orchestrator's aggregated view of every VBA
|
|
102
|
+
* classifier's declarative `RULES` table. Each entry is the
|
|
103
|
+
* `readonly VbaExtractionRule[]` constant exported by the
|
|
104
|
+
* corresponding classifier file. Exposed at module scope so:
|
|
105
|
+
*
|
|
106
|
+
* 1. Tests can pin the table shape and assert that the orchestrator
|
|
107
|
+
* still references each table (a deleted import would
|
|
108
|
+
* accidentally break a whole concern and the test would catch
|
|
109
|
+
* the missing reference).
|
|
110
|
+
* 2. Tooling can introspect every rule the orchestrator
|
|
111
|
+
* dispatches — useful for `codegraph stats` style UIs that
|
|
112
|
+
* show "what kinds of VBA symbols does codegraph know about".
|
|
113
|
+
* 3. The `validateVbaRuleTables` invariant runs on this aggregate
|
|
114
|
+
* so a refactor that empties one concern's `RULES` array
|
|
115
|
+
* (e.g. by deleting the `defineRule` calls during a partial
|
|
116
|
+
* migration) fails loudly at module load instead of silently
|
|
117
|
+
* dropping a whole concern.
|
|
118
|
+
*
|
|
119
|
+
* The keys are the FILE BASENAMES of the classifier modules (no
|
|
120
|
+
* `.ts` extension, kebab-case) — the same naming convention the
|
|
121
|
+
* per-classifier export comments use. Stable identifier for
|
|
122
|
+
* `validateVbaRuleTables` consumers.
|
|
123
|
+
*/
|
|
124
|
+
exports.VBA_RULE_TABLES = {
|
|
125
|
+
implements: implements_1.RULES,
|
|
126
|
+
procedures: procedures_1.RULES,
|
|
127
|
+
declarations: declarations_1.RULES,
|
|
128
|
+
dims: dims_1.RULES,
|
|
129
|
+
'enums-consts': enums_consts_1.RULES,
|
|
130
|
+
'call-sweep': call_sweep_1.RULES,
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Issue #153: the canonical list of concern keys `VBA_RULE_TABLES`
|
|
134
|
+
* must contain. Order matches the per-line dispatch order in
|
|
135
|
+
* `extract()`: events/types/declares → implements → dims → enums/consts
|
|
136
|
+
* → calls/sql. The procedures sweep is the only one that runs BEFORE
|
|
137
|
+
* the main walk (so `ctx.localProcs` is populated for the call sweep
|
|
138
|
+
* to consult) and is therefore referenced in `VBA_RULE_TABLES` but NOT
|
|
139
|
+
* in this list — it is intentionally validated as a separate concern
|
|
140
|
+
* because the pre-walk contract is different.
|
|
141
|
+
*/
|
|
142
|
+
const REQUIRED_DISPATCH_TABLES = [
|
|
143
|
+
'declarations',
|
|
144
|
+
'implements',
|
|
145
|
+
'dims',
|
|
146
|
+
'enums-consts',
|
|
147
|
+
'call-sweep',
|
|
148
|
+
];
|
|
149
|
+
/**
|
|
150
|
+
* Issue #153: validate that every per-concern rule table the
|
|
151
|
+
* orchestrator dispatches is non-empty. Called once at module load
|
|
152
|
+
* (see the IIFE at the bottom of this file) so an accidentally-
|
|
153
|
+
* emptied `RULES` array fails loudly when the extractor is first
|
|
154
|
+
* imported, NOT at the first `extract()` call.
|
|
155
|
+
*
|
|
156
|
+
* The result is `{ ok, empty }`:
|
|
157
|
+
* - `ok: true` — every required table has at least one rule.
|
|
158
|
+
* - `ok: false` — at least one table is empty; `empty` lists the
|
|
159
|
+
* concern keys that need attention.
|
|
160
|
+
*
|
|
161
|
+
* The function accepts an optional `tables` argument so the unit
|
|
162
|
+
* test in `__tests__/extraction-vba-rule-table.test.ts` can verify
|
|
163
|
+
* the validator's contract independently of the live data.
|
|
164
|
+
*/
|
|
165
|
+
function validateVbaRuleTables(tables = exports.VBA_RULE_TABLES) {
|
|
166
|
+
const empty = [];
|
|
167
|
+
for (const key of REQUIRED_DISPATCH_TABLES) {
|
|
168
|
+
const table = tables[key];
|
|
169
|
+
if (!table || table.length === 0)
|
|
170
|
+
empty.push(key);
|
|
171
|
+
}
|
|
172
|
+
return { ok: empty.length === 0, empty };
|
|
173
|
+
}
|
|
174
|
+
// Run the validator once at module load. The IIFE never throws — it
|
|
175
|
+
// just emits a console.error so the failure is visible in CI logs
|
|
176
|
+
// without aborting the import. The unit test
|
|
177
|
+
// `__tests__/extraction-vba-rule-table.test.ts` pins the
|
|
178
|
+
// `validateVbaRuleTables` contract independently.
|
|
179
|
+
(function runRuleTableInvariant() {
|
|
180
|
+
const result = validateVbaRuleTables();
|
|
181
|
+
if (!result.ok) {
|
|
182
|
+
// eslint-disable-next-line no-console
|
|
183
|
+
console.error(`[vba-extractor] VBA_RULE_TABLES is missing rules for: ${result.empty.join(', ')}. ` +
|
|
184
|
+
`Each concern's RULES array must be non-empty.`);
|
|
185
|
+
}
|
|
186
|
+
})();
|
|
85
187
|
class VbaExtractor {
|
|
86
188
|
filePath;
|
|
87
189
|
source;
|
|
88
190
|
ctx;
|
|
89
191
|
vbaTargets;
|
|
90
|
-
|
|
192
|
+
/**
|
|
193
|
+
* Issue #152: per-file fanout cap for `RaiseEvent <EventName>` edges.
|
|
194
|
+
* When a single event is raised more than this many times in one file,
|
|
195
|
+
* the event node is flagged `metadata.highFanout: true` and ALL
|
|
196
|
+
* `raises-event` edges to it are dropped. Pass `undefined` to disable
|
|
197
|
+
* the gate (the legacy, uncapped behaviour). The 50 default lives in
|
|
198
|
+
* the orchestrator: callers that don't pass a value get the default.
|
|
199
|
+
*/
|
|
200
|
+
maxRaiseFanout;
|
|
201
|
+
constructor(filePath, source, vbaTargets, maxRaiseFanout = exports.DEFAULT_MAX_RAISE_FANOUT) {
|
|
91
202
|
this.filePath = filePath;
|
|
92
203
|
this.source = source;
|
|
93
204
|
this.vbaTargets = vbaTargets;
|
|
205
|
+
this.maxRaiseFanout = maxRaiseFanout;
|
|
94
206
|
this.ctx = new context_1.VbaExtractorContext(filePath);
|
|
95
207
|
}
|
|
96
208
|
extract() {
|
|
97
209
|
const startTime = Date.now();
|
|
210
|
+
// Issue #156: lazy-enable the timing instrumentation ONLY when the
|
|
211
|
+
// env var is set. The Maps stay `null` otherwise so the default path
|
|
212
|
+
// (every real user's `codegraph index` run) pays no Map-allocation
|
|
213
|
+
// cost and no `recordStage` call does any real work.
|
|
214
|
+
const timingMode = (0, vba_timing_1.readTimingMode)();
|
|
215
|
+
if (timingMode !== 'off') {
|
|
216
|
+
this.ctx.ensureTimings();
|
|
217
|
+
}
|
|
98
218
|
try {
|
|
99
219
|
// REQ-CODE-9: hand form/report files off to VbaFormExtractor. If
|
|
100
220
|
// somehow routed here, emit just a file node and return.
|
|
101
221
|
if (this.isFormOrReportFile()) {
|
|
102
222
|
this.ctx.nodes.push(this.createFileNode());
|
|
103
|
-
|
|
223
|
+
const result = this.result(startTime);
|
|
224
|
+
this.maybeEmitTimings(result, timingMode);
|
|
225
|
+
return result;
|
|
104
226
|
}
|
|
105
227
|
// Pre-process pipeline (per design): strip comments first to prevent
|
|
106
228
|
// comments from blocking or causing false line continuations, then join
|
|
107
229
|
// continuations, and blank inactive conditional-compilation branches.
|
|
108
230
|
// Line count is preserved by all stages.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
231
|
+
//
|
|
232
|
+
// Issue #156: each stage is wrapped in a timing block that records
|
|
233
|
+
// into the context's `timings` Map. `preprocessConditionalCompilation`
|
|
234
|
+
// itself contains an internal lexer+parser pair; we sum that into a
|
|
235
|
+
// single `preprocess.cc.lexer+parser` stage via a thin wrapper that
|
|
236
|
+
// re-uses the same `withStage` helper.
|
|
237
|
+
const cleanComments = (0, vba_timing_1.withStage)(this.ctx, 'preprocess.stripVbaComments', () => (0, vba_preprocess_1.stripVbaComments)(this.source));
|
|
238
|
+
const joined = (0, vba_timing_1.withStage)(this.ctx, 'preprocess.joinLineContinuations', () => (0, vba_preprocess_1.joinLineContinuations)(cleanComments));
|
|
239
|
+
const uncommented = (0, vba_timing_1.withStage)(this.ctx, 'preprocess.conditionalCompilation', () => (0, vba_preprocess_1.preprocessConditionalCompilation)(joined, this.vbaTargets, this.ctx.timings));
|
|
112
240
|
// Create the file node.
|
|
113
241
|
this.ctx.nodes.push(this.createFileNode());
|
|
114
242
|
// Resolve the file's "kind" — .cls → class, else module (including .bas
|
|
@@ -151,19 +279,33 @@ class VbaExtractor {
|
|
|
151
279
|
// Pre-walk: procedures only — populates the same-file function index
|
|
152
280
|
// (legacy behaviour: `sweepProcedures` ran first so the call sweep
|
|
153
281
|
// could look up call targets by name).
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
282
|
+
(0, vba_timing_1.withStage)(this.ctx, 'walk.procedures', () => {
|
|
283
|
+
for (let i = 0; i < lines.length; i++) {
|
|
284
|
+
(0, vba_timing_1.withClassifier)(this.ctx, proceduresCls, lines[i] ?? '', i);
|
|
285
|
+
}
|
|
286
|
+
});
|
|
157
287
|
// Main walk: every other classifier sees every line in order.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
288
|
+
(0, vba_timing_1.withStage)(this.ctx, 'walk.main', () => {
|
|
289
|
+
for (let i = 0; i < lines.length; i++) {
|
|
290
|
+
const line = lines[i] ?? '';
|
|
291
|
+
for (const c of classifiers) {
|
|
292
|
+
(0, vba_timing_1.withClassifier)(this.ctx, c, line, i);
|
|
293
|
+
}
|
|
162
294
|
}
|
|
163
|
-
}
|
|
295
|
+
});
|
|
164
296
|
// Finalize (calls-sql flushes proc-end line updates to function nodes).
|
|
165
297
|
for (const c of classifiers)
|
|
166
298
|
c.finalize?.(this.ctx);
|
|
299
|
+
// Issue #152: per-file fanout gate for `RaiseEvent <EventName>`
|
|
300
|
+
// edges. Events raised from more than `maxRaiseFanout` sites get
|
|
301
|
+
// the `metadata.highFanout` flag and ALL of their `raises-event`
|
|
302
|
+
// edges dropped. The gate is a no-op when `maxRaiseFanout` is
|
|
303
|
+
// undefined (the legacy, uncapped behaviour) and runs BEFORE the
|
|
304
|
+
// module/class node is created so `pendingModuleOrClassSource`
|
|
305
|
+
// re-attribution never sees the dropped edges.
|
|
306
|
+
if (this.maxRaiseFanout !== undefined) {
|
|
307
|
+
this.ctx.applyRaiseFanoutGate(this.maxRaiseFanout);
|
|
308
|
+
}
|
|
167
309
|
const hasAnySymbols = proceduresCls.count > 0 || classifiers.some((c) => c.count > 0);
|
|
168
310
|
const procs = this.ctx.procedures;
|
|
169
311
|
// Create the module/class node ONLY when the file has actual symbols
|
|
@@ -200,11 +342,31 @@ class VbaExtractor {
|
|
|
200
342
|
code: 'parse_error',
|
|
201
343
|
});
|
|
202
344
|
}
|
|
203
|
-
|
|
345
|
+
const result = this.result(startTime);
|
|
346
|
+
this.maybeEmitTimings(result, timingMode);
|
|
347
|
+
return result;
|
|
204
348
|
}
|
|
205
349
|
// ---------------------------------------------------------------------------
|
|
206
350
|
// Helpers
|
|
207
351
|
// ---------------------------------------------------------------------------
|
|
352
|
+
/**
|
|
353
|
+
* Issue #156: emit the per-file timing block (mode `1` or `2`) and
|
|
354
|
+
* — in mode `2` — append the running aggregate. No-op when
|
|
355
|
+
* `mode === 'off'`. In aggregate mode we flush after every extract()
|
|
356
|
+
* call so the line is visible per-file even without a graceful
|
|
357
|
+
* shutdown (crash-on-file-3 still shows files 1-3 in the aggregate).
|
|
358
|
+
*/
|
|
359
|
+
maybeEmitTimings(_result, mode) {
|
|
360
|
+
if (mode === 'off')
|
|
361
|
+
return;
|
|
362
|
+
if (mode === 'per-file' || mode === 'aggregate') {
|
|
363
|
+
(0, vba_timing_1.emitPerFileTimings)(this.ctx, this.filePath);
|
|
364
|
+
}
|
|
365
|
+
if (mode === 'aggregate') {
|
|
366
|
+
(0, vba_timing_1.recordAggregateTimings)(this.ctx, this.filePath);
|
|
367
|
+
(0, vba_timing_1.flushAggregate)();
|
|
368
|
+
}
|
|
369
|
+
}
|
|
208
370
|
result(startTime) {
|
|
209
371
|
return {
|
|
210
372
|
nodes: this.ctx.nodes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vba-extractor.js","sourceRoot":"","sources":["../../src/extraction/vba-extractor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"vba-extractor.js","sourceRoot":"","sources":["../../src/extraction/vba-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,7 +96,17 @@ export declare function stripVbaComments(src: string): string;
|
|
|
96
96
|
* downstream extraction keeps source-line parity. Unsupported/unsafe
|
|
97
97
|
* expressions evaluate to false rather than throwing.
|
|
98
98
|
*/
|
|
99
|
-
export declare function preprocessConditionalCompilation(src: string, customTargets?: Record<string, boolean
|
|
99
|
+
export declare function preprocessConditionalCompilation(src: string, customTargets?: Record<string, boolean>,
|
|
100
|
+
/**
|
|
101
|
+
* Issue #156: optional timing sink for the internal lexer+parser.
|
|
102
|
+
* When provided, the wall-clock spent inside `evaluateConditionalExpression`
|
|
103
|
+
* and `evaluateConstRhs` is accumulated under the key
|
|
104
|
+
* `preprocess.cc.lexer+parser` so the orchestrator can break the
|
|
105
|
+
* outer `preprocess.conditionalCompilation` stage into its outer +
|
|
106
|
+
* inner sub-totals. Undefined → no-op, zero cost (just the
|
|
107
|
+
* `if (timings)` null-check on every CC line).
|
|
108
|
+
*/
|
|
109
|
+
timings?: Map<string, number> | null): string;
|
|
100
110
|
export interface StringLiteralSpan {
|
|
101
111
|
/** The literal content (no surrounding quotes; `""` collapsed to `"`). */
|
|
102
112
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vba-preprocess.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWzD;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4EpD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gCAAgC,
|
|
1
|
+
{"version":3,"file":"vba-preprocess.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWzD;AAWD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4EpD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AACvC;;;;;;;;GAQG;AACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GACnC,MAAM,CA2ER;AA0fD,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAsDtE"}
|
|
@@ -202,7 +202,17 @@ const CONST_DIRECTIVE = /^\s*#Const\s+([A-Za-z_][A-Za-z_0-9]*)\s*=\s*(.+?)\s*$/i
|
|
|
202
202
|
* downstream extraction keeps source-line parity. Unsupported/unsafe
|
|
203
203
|
* expressions evaluate to false rather than throwing.
|
|
204
204
|
*/
|
|
205
|
-
function preprocessConditionalCompilation(src, customTargets
|
|
205
|
+
function preprocessConditionalCompilation(src, customTargets,
|
|
206
|
+
/**
|
|
207
|
+
* Issue #156: optional timing sink for the internal lexer+parser.
|
|
208
|
+
* When provided, the wall-clock spent inside `evaluateConditionalExpression`
|
|
209
|
+
* and `evaluateConstRhs` is accumulated under the key
|
|
210
|
+
* `preprocess.cc.lexer+parser` so the orchestrator can break the
|
|
211
|
+
* outer `preprocess.conditionalCompilation` stage into its outer +
|
|
212
|
+
* inner sub-totals. Undefined → no-op, zero cost (just the
|
|
213
|
+
* `if (timings)` null-check on every CC line).
|
|
214
|
+
*/
|
|
215
|
+
timings) {
|
|
206
216
|
if (!src)
|
|
207
217
|
return src;
|
|
208
218
|
const lines = src.split('\n');
|
|
@@ -215,6 +225,7 @@ function preprocessConditionalCompilation(src, customTargets) {
|
|
|
215
225
|
// simply misses and the conservative fallback (unknown identifier →
|
|
216
226
|
// false) applies, exactly as for an unrecognised hardcoded constant.
|
|
217
227
|
const constTable = new Map();
|
|
228
|
+
const CC_STAGE = 'preprocess.cc.lexer+parser';
|
|
218
229
|
for (const line of lines) {
|
|
219
230
|
// Parse #Const BEFORE the other directives so the table is up-to-date
|
|
220
231
|
// when a subsequent #If expression references it. The line itself is
|
|
@@ -223,7 +234,7 @@ function preprocessConditionalCompilation(src, customTargets) {
|
|
|
223
234
|
if (constMatch) {
|
|
224
235
|
const name = (constMatch[1] ?? '').trim();
|
|
225
236
|
const rhs = (constMatch[2] ?? '').trim();
|
|
226
|
-
const value = evaluateConstRhs(rhs, constTable, customTargets);
|
|
237
|
+
const value = evaluateConstRhs(rhs, constTable, customTargets, timings, CC_STAGE);
|
|
227
238
|
if (value !== null) {
|
|
228
239
|
constTable.set(name, value);
|
|
229
240
|
}
|
|
@@ -233,7 +244,7 @@ function preprocessConditionalCompilation(src, customTargets) {
|
|
|
233
244
|
const ifMatch = IF_DIRECTIVE.exec(line);
|
|
234
245
|
if (ifMatch) {
|
|
235
246
|
const parentActive = stack.every((frame) => frame.active);
|
|
236
|
-
const active = parentActive && evaluateConditionalExpression(ifMatch[1] ?? '', constTable, customTargets);
|
|
247
|
+
const active = parentActive && evaluateConditionalExpression(ifMatch[1] ?? '', constTable, customTargets, timings, CC_STAGE);
|
|
237
248
|
stack.push({ parentActive, active, branchTaken: active });
|
|
238
249
|
out.push('');
|
|
239
250
|
continue;
|
|
@@ -244,7 +255,7 @@ function preprocessConditionalCompilation(src, customTargets) {
|
|
|
244
255
|
if (frame) {
|
|
245
256
|
const active = frame.parentActive &&
|
|
246
257
|
!frame.branchTaken &&
|
|
247
|
-
evaluateConditionalExpression(elseIfMatch[1] ?? '', constTable, customTargets);
|
|
258
|
+
evaluateConditionalExpression(elseIfMatch[1] ?? '', constTable, customTargets, timings, CC_STAGE);
|
|
248
259
|
frame.active = active;
|
|
249
260
|
if (active)
|
|
250
261
|
frame.branchTaken = true;
|
|
@@ -576,34 +587,52 @@ class Parser {
|
|
|
576
587
|
throw new Error(`Unexpected token: ${t.type}`);
|
|
577
588
|
}
|
|
578
589
|
}
|
|
579
|
-
function evaluateConditionalExpression(expr, constTable = new Map(), customTargets) {
|
|
590
|
+
function evaluateConditionalExpression(expr, constTable = new Map(), customTargets, timings, stageName = 'preprocess.cc.lexer+parser') {
|
|
580
591
|
try {
|
|
581
592
|
let exprClean = expr.trim();
|
|
582
593
|
if (exprClean.toLowerCase().endsWith('then')) {
|
|
583
594
|
exprClean = exprClean.slice(0, -4).trim();
|
|
584
595
|
}
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
596
|
+
return timeLexerParser(timings, stageName, () => {
|
|
597
|
+
const tokens = tokenize(exprClean, constTable, customTargets);
|
|
598
|
+
const parser = new Parser(tokens);
|
|
599
|
+
const result = parser.parseExpression();
|
|
600
|
+
parser.ensureEOF();
|
|
601
|
+
return result !== 0;
|
|
602
|
+
});
|
|
590
603
|
}
|
|
591
604
|
catch {
|
|
592
605
|
return false;
|
|
593
606
|
}
|
|
594
607
|
}
|
|
595
|
-
function evaluateConstRhs(rhs, constTable, customTargets) {
|
|
608
|
+
function evaluateConstRhs(rhs, constTable, customTargets, timings, stageName = 'preprocess.cc.lexer+parser') {
|
|
596
609
|
try {
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
610
|
+
return timeLexerParser(timings, stageName, () => {
|
|
611
|
+
const tokens = tokenize(rhs.trim(), constTable, customTargets);
|
|
612
|
+
const parser = new Parser(tokens);
|
|
613
|
+
const result = parser.parseExpression();
|
|
614
|
+
parser.ensureEOF();
|
|
615
|
+
return String(result);
|
|
616
|
+
});
|
|
602
617
|
}
|
|
603
618
|
catch {
|
|
604
619
|
return null;
|
|
605
620
|
}
|
|
606
621
|
}
|
|
622
|
+
/**
|
|
623
|
+
* Issue #156: timing wrapper used by `evaluateConditionalExpression`
|
|
624
|
+
* and `evaluateConstRhs` to record the lexer+parser portion of CC
|
|
625
|
+
* evaluation. When `timings` is null/undefined the call is a direct
|
|
626
|
+
* invocation — no `performance.now()` overhead.
|
|
627
|
+
*/
|
|
628
|
+
function timeLexerParser(timings, stageName, fn) {
|
|
629
|
+
if (!timings)
|
|
630
|
+
return fn();
|
|
631
|
+
const t0 = performance.now();
|
|
632
|
+
const result = fn();
|
|
633
|
+
timings.set(stageName, (timings.get(stageName) ?? 0) + (performance.now() - t0));
|
|
634
|
+
return result;
|
|
635
|
+
}
|
|
607
636
|
/**
|
|
608
637
|
* Split `line` into alternating code / string-literal segments and apply
|
|
609
638
|
* `REM_MIDLINE` only to code segments. String segments are returned
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vba-preprocess.js","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vba-preprocess.js","sourceRoot":"","sources":["../../src/extraction/vba-preprocess.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { VbaExtractorContext, VbaClassifier } from './vba/context';
|
|
2
|
+
export type TimingMode = 'off' | 'per-file' | 'aggregate';
|
|
3
|
+
/**
|
|
4
|
+
* Read the timing mode from the env var. Reads are cached per call —
|
|
5
|
+
* the env var is consulted on every `extract()` but the result is just
|
|
6
|
+
* a number/string compare.
|
|
7
|
+
*/
|
|
8
|
+
export declare function readTimingMode(): TimingMode;
|
|
9
|
+
/**
|
|
10
|
+
* Run `fn`, time the wall-clock, and record into `ctx.timings` under
|
|
11
|
+
* `stageName`. Returns the value `fn` returned. No-op when timings
|
|
12
|
+
* are disabled (the Map is null) — except the `performance.now()` pair,
|
|
13
|
+
* which is the irreducible cost of measuring anything.
|
|
14
|
+
*
|
|
15
|
+
* `performance.now()` is the right primitive here (monotonic, sub-ms
|
|
16
|
+
* resolution on every supported Node version). `Date.now()` would round
|
|
17
|
+
* to whole milliseconds and lose the per-stage signal on small files.
|
|
18
|
+
*/
|
|
19
|
+
export declare function withStage<T>(ctx: VbaExtractorContext, stageName: string, fn: () => T): T;
|
|
20
|
+
/**
|
|
21
|
+
* Time a single `VbaClassifier.classifyLine` invocation. The accumulated
|
|
22
|
+
* time is reported under the bucket `classifier.<name>` so the
|
|
23
|
+
* aggregate stage totals match the per-classifier view.
|
|
24
|
+
*/
|
|
25
|
+
export declare function withClassifier(ctx: VbaExtractorContext, classifier: VbaClassifier, line: string, index: number): void;
|
|
26
|
+
/**
|
|
27
|
+
* Per-file stderr block. Cheap string-build; the per-extract call cost
|
|
28
|
+
* is bounded by the small number of stages (~10).
|
|
29
|
+
*/
|
|
30
|
+
export declare function emitPerFileTimings(ctx: VbaExtractorContext, filePath: string): void;
|
|
31
|
+
export declare function recordAggregateTimings(ctx: VbaExtractorContext, _filePath: string): void;
|
|
32
|
+
export declare function flushAggregate(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Test-only: clear the aggregate between test cases so they do not
|
|
35
|
+
* pollute each other. Not exported in the public API.
|
|
36
|
+
*/
|
|
37
|
+
export declare function _resetAggregateForTests(): void;
|
|
38
|
+
//# sourceMappingURL=vba-timing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-timing.d.ts","sourceRoot":"","sources":["../../src/extraction/vba-timing.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAK3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAMH;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,aAAa,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,IAAI,CAeN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,mBAAmB,EACxB,QAAQ,EAAE,MAAM,GACf,IAAI,CAiBN;AAmCD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,MAAM,GAChB,IAAI,CASN;AAED,wBAAgB,cAAc,IAAI,IAAI,CAmBrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}
|