@aroman22/codegraph-vba-darwin-arm64 1.4.0 → 1.5.1
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/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +26 -7
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/sql-query-extractor.d.ts +11 -3
- package/lib/dist/extraction/sql-query-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/sql-query-extractor.js +19 -5
- package/lib/dist/extraction/sql-query-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-extractor.d.ts +588 -59
- package/lib/dist/extraction/vba-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-extractor.js +1259 -147
- package/lib/dist/extraction/vba-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-form-extractor.d.ts +127 -0
- package/lib/dist/extraction/vba-form-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vba-form-extractor.js +290 -3
- package/lib/dist/extraction/vba-form-extractor.js.map +1 -1
- package/lib/dist/extraction/vba-preprocess.d.ts +22 -3
- package/lib/dist/extraction/vba-preprocess.d.ts.map +1 -1
- package/lib/dist/extraction/vba-preprocess.js +137 -15
- package/lib/dist/extraction/vba-preprocess.js.map +1 -1
- package/lib/dist/extraction/vba-source.d.ts +58 -0
- package/lib/dist/extraction/vba-source.d.ts.map +1 -0
- package/lib/dist/extraction/vba-source.js +137 -0
- package/lib/dist/extraction/vba-source.js.map +1 -0
- package/lib/dist/types.d.ts +2 -2
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +6 -0
- package/lib/dist/types.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 -2
- package/package.json +1 -1
|
@@ -56,10 +56,23 @@ exports.VbaFormExtractor = void 0;
|
|
|
56
56
|
* - It emits one unresolved reference (synthesizedBy=vba-form-binding) from
|
|
57
57
|
* the form-layout node to the sibling `.cls` basename, so
|
|
58
58
|
* `codegraph_explore` can resolve form → class at lookup time.
|
|
59
|
+
* - It emits one `references` edge per `RecordSource` binding (Issue #49),
|
|
60
|
+
* tagged `metadata.synthesizedBy: 'vba-record-source'`. Bare table names
|
|
61
|
+
* and `SELECT/FROM/...` SQL are both supported; SQL goes through the
|
|
62
|
+
* shared `SQL_TABLE_RE` regex and emits one edge per table. The same
|
|
63
|
+
* happens for `RowSource` bindings on individual controls, but the
|
|
64
|
+
* source is the enclosing `form-instance-control` node and the tag is
|
|
65
|
+
* `'vba-row-source'`. Value-list controls (`RowSourceType = "Value List"`)
|
|
66
|
+
* are skipped — their RowSource is a literal list, not a data binding.
|
|
59
67
|
*
|
|
60
|
-
* Hard invariant (REQ-FORM-4): ZERO `function`/`sub`/`
|
|
61
|
-
* nodes from `.form.txt` / `.report.txt`. The form-side
|
|
62
|
-
* in `vba-form-ui-extraction`; the code-side lives in
|
|
68
|
+
* Hard invariant (REQ-FORM-4): ZERO `function`/`sub`/`module`/`event`
|
|
69
|
+
* /`declare`/`type` nodes from `.form.txt` / `.report.txt`. The form-side
|
|
70
|
+
* behavior lives in `vba-form-ui-extraction`; the code-side lives in
|
|
71
|
+
* `vba-code-extraction`. Note: synthetic `class` PLACEHOLDER nodes ARE
|
|
72
|
+
* emitted for external data bindings (table/query references from
|
|
73
|
+
* RecordSource/RowSource) — they are not the form's own class binding
|
|
74
|
+
* (that one stays an UnresolvedReference) and are deduplicated by name
|
|
75
|
+
* so the same table referenced from N sites collapses to one node.
|
|
63
76
|
*/
|
|
64
77
|
const path = __importStar(require("path"));
|
|
65
78
|
const tree_sitter_helpers_1 = require("./tree-sitter-helpers");
|
|
@@ -71,6 +84,17 @@ class VbaFormExtractor {
|
|
|
71
84
|
edges = [];
|
|
72
85
|
errors = [];
|
|
73
86
|
unresolvedReferences = [];
|
|
87
|
+
/**
|
|
88
|
+
* Issue #49: synthetic `class` placeholder node ids for table/query
|
|
89
|
+
* references emitted by RecordSource/RowSource sweeps. The same table
|
|
90
|
+
* referenced from N different sites collapses to a single placeholder
|
|
91
|
+
* node (id keyed on `(filePath, 'class', tableName, 0)`), but every
|
|
92
|
+
* call site still emits its own `references` edge with a per-site
|
|
93
|
+
* `line` value. Mirrors `VbaExtractor.synthClassNodeIds` (private to
|
|
94
|
+
* VbaExtractor — we keep a separate cache here so the form extractor
|
|
95
|
+
* stays self-contained per the project's per-extractor state rule).
|
|
96
|
+
*/
|
|
97
|
+
synthClassNodeIds = new Set();
|
|
74
98
|
constructor(filePath, source) {
|
|
75
99
|
this.filePath = filePath;
|
|
76
100
|
this.source = source;
|
|
@@ -115,6 +139,13 @@ class VbaFormExtractor {
|
|
|
115
139
|
});
|
|
116
140
|
// Control declarations → property nodes (REQ-FORM-2).
|
|
117
141
|
this.sweepControls(cleaned);
|
|
142
|
+
// Issue #49: RecordSource/RowSource bindings → references edges to
|
|
143
|
+
// placeholder class nodes (one per table/query). Swept AFTER
|
|
144
|
+
// sweepControls so the `form-instance-control` nodes for any
|
|
145
|
+
// enclosing controls are already in `this.nodes` and
|
|
146
|
+
// `sweepRowSources` can attribute each edge to its source node.
|
|
147
|
+
this.sweepRecordSources(cleaned, formLayoutNode.id);
|
|
148
|
+
this.sweepRowSources(cleaned, formLayoutNode.id);
|
|
118
149
|
}
|
|
119
150
|
catch (error) {
|
|
120
151
|
this.errors.push({
|
|
@@ -362,6 +393,262 @@ class VbaFormExtractor {
|
|
|
362
393
|
// transition (a separate B2 task).
|
|
363
394
|
return { name: '', nameLine: beginLineNum };
|
|
364
395
|
}
|
|
396
|
+
// ---------------------------------------------------------------------------
|
|
397
|
+
// RecordSource / RowSource edge emission (Issue #49)
|
|
398
|
+
// ---------------------------------------------------------------------------
|
|
399
|
+
/**
|
|
400
|
+
* Issue #49 — `RecordSource = "..."` line regex. The Dysflow SaveAsText
|
|
401
|
+
* format always wraps the value in double quotes; the inner `(?:[^"]|"")*`
|
|
402
|
+
* body tolerates the doubled-quote escape (`""` → `"`) so the captured
|
|
403
|
+
* group carries the literal text exactly as Access stores it.
|
|
404
|
+
*
|
|
405
|
+
* Anchored at the start of the line — properties in the SaveAsText
|
|
406
|
+
* format are always indented but the attribute name is unambiguous, so
|
|
407
|
+
* a leading whitespace-tolerant anchor is enough.
|
|
408
|
+
*/
|
|
409
|
+
static RECORD_SOURCE_RE = /^\s*RecordSource\s*=\s*"((?:[^"]|"")*)"/iu;
|
|
410
|
+
/** Issue #49 — `RowSource = "..."` line regex. Mirrors `RECORD_SOURCE_RE`. */
|
|
411
|
+
static ROW_SOURCE_RE = /^\s*RowSource\s*=\s*"((?:[^"]|"")*)"/iu;
|
|
412
|
+
/** Issue #49 — `RowSourceType = "..."` line regex. Used by the control-block
|
|
413
|
+
* scan to detect value-list controls whose RowSource is a literal list. */
|
|
414
|
+
static ROW_SOURCE_TYPE_RE = /^\s*RowSourceType\s*=\s*"([^"]*)"/iu;
|
|
415
|
+
/**
|
|
416
|
+
* Issue #49 — copy of `VbaExtractor.SQL_TABLE_RE`. Same source / flags:
|
|
417
|
+
* captures the table name that follows `FROM`/`JOIN`/`INTO`/`UPDATE`,
|
|
418
|
+
* tolerates bracketed `[Order Details]` identifiers and `\p{L}` Unicode
|
|
419
|
+
* identifiers, and allows an optional schema prefix (`[dbo].[tblA]`).
|
|
420
|
+
*
|
|
421
|
+
* We duplicate the regex (rather than exporting it from `VbaExtractor`)
|
|
422
|
+
* because `VbaExtractor.SQL_TABLE_RE` is `private static` and the
|
|
423
|
+
* project's per-extractor state rule keeps each extractor's helpers
|
|
424
|
+
* self-contained — see the file-level JSDoc on `VbaExtractor`.
|
|
425
|
+
*/
|
|
426
|
+
static SQL_TABLE_RE = /\b(?:FROM|JOIN|INTO|UPDATE)\s+((?:(?:\[[^\]]+\]|\p{L}[\p{L}\p{N}_]*)\.)?(?:\[[^\]]+\]|\p{L}[\p{L}\p{N}_]*))/giu;
|
|
427
|
+
/**
|
|
428
|
+
* Issue #49 — classify a RecordSource/RowSource value as SQL.
|
|
429
|
+
* Anything starting with a SQL keyword (`SELECT`, `PARAMETERS`, `WITH`,
|
|
430
|
+
* `UPDATE`, `INSERT`, `DELETE`) — case-insensitive — is treated as a
|
|
431
|
+
* SQL statement and run through `SQL_TABLE_RE`. Anything else is a
|
|
432
|
+
* bare table-or-query name and emitted as a single reference.
|
|
433
|
+
*
|
|
434
|
+
* `WITH` is included because Access/JET supports CTE-style `WITH` queries
|
|
435
|
+
* as record sources. `PARAMETERS` is included because Access uses
|
|
436
|
+
* `PARAMETERS [foo] Text; SELECT … FROM …` to declare parameter types
|
|
437
|
+
* before the body.
|
|
438
|
+
*/
|
|
439
|
+
static SQL_PREFIX_RE = /^\s*(?:SELECT|PARAMETERS|WITH|UPDATE|INSERT|DELETE)\b/i;
|
|
440
|
+
isLikelySql(value) {
|
|
441
|
+
return VbaFormExtractor.SQL_PREFIX_RE.test(value);
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Issue #49 — emit one `references` edge from `sourceNodeId` to a
|
|
445
|
+
* synthetic `class` placeholder node named `tableName`. The placeholder
|
|
446
|
+
* node id is `(filePath, 'class', tableName, 0)` (line-independent, so
|
|
447
|
+
* the same table referenced from N sites collapses to a single node);
|
|
448
|
+
* the edge carries a per-site `line` so consumers can navigate to the
|
|
449
|
+
* call site.
|
|
450
|
+
*
|
|
451
|
+
* The placeholder `class` kind mirrors `VbaExtractor.emitReference`'s
|
|
452
|
+
* convention. The cross-file resolver may re-type these at lookup time
|
|
453
|
+
* (a real `query` node takes precedence when both exist for the same
|
|
454
|
+
* name — same dual-match `vba-sql-impact`'s `extractFormBindings` does).
|
|
455
|
+
*/
|
|
456
|
+
emitTableReference(sourceNodeId, tableName, lineNum, synthesizedBy) {
|
|
457
|
+
if (!tableName)
|
|
458
|
+
return;
|
|
459
|
+
const targetId = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'class', tableName, 0);
|
|
460
|
+
if (!this.synthClassNodeIds.has(targetId)) {
|
|
461
|
+
this.synthClassNodeIds.add(targetId);
|
|
462
|
+
this.nodes.push({
|
|
463
|
+
id: targetId,
|
|
464
|
+
kind: 'class',
|
|
465
|
+
name: tableName,
|
|
466
|
+
qualifiedName: tableName,
|
|
467
|
+
filePath: this.filePath,
|
|
468
|
+
language: 'vba',
|
|
469
|
+
startLine: lineNum,
|
|
470
|
+
endLine: lineNum,
|
|
471
|
+
startColumn: 0,
|
|
472
|
+
endColumn: tableName.length,
|
|
473
|
+
updatedAt: Date.now(),
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
this.edges.push({
|
|
477
|
+
source: sourceNodeId,
|
|
478
|
+
target: targetId,
|
|
479
|
+
kind: 'references',
|
|
480
|
+
provenance: 'heuristic',
|
|
481
|
+
metadata: { synthesizedBy },
|
|
482
|
+
line: lineNum,
|
|
483
|
+
column: 0,
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Issue #49 — dispatch the value of a RecordSource/RowSource binding.
|
|
488
|
+
* If SQL, run `SQL_TABLE_RE` over the value and emit one edge per
|
|
489
|
+
* distinct table (within-value dedup so `FROM tblA JOIN tblA` emits a
|
|
490
|
+
* single edge). If a bare name, emit a single edge with the name as-is
|
|
491
|
+
* — the resolver handles the dual-match against `query` and `class`
|
|
492
|
+
* nodes at lookup time.
|
|
493
|
+
*
|
|
494
|
+
* Doubled-quote escapes (`""`) are unwarapped before classification;
|
|
495
|
+
* the regex capture already includes them as part of the value, so a
|
|
496
|
+
* single `.replace(/""/g, '"')` collapses them — same technique the
|
|
497
|
+
* `extractStringLiterals` helper uses for its emitted `text` field.
|
|
498
|
+
*/
|
|
499
|
+
emitBinding(sourceNodeId, rawValue, lineNum, synthesizedBy) {
|
|
500
|
+
if (!rawValue)
|
|
501
|
+
return;
|
|
502
|
+
// Unwrap VBA doubled-quote escapes so a literal `""` inside the
|
|
503
|
+
// value becomes a single `"` before we classify and parse.
|
|
504
|
+
const value = rawValue.replace(/""/g, '"');
|
|
505
|
+
if (this.isLikelySql(value)) {
|
|
506
|
+
const seen = new Set();
|
|
507
|
+
for (const m of value.matchAll(VbaFormExtractor.SQL_TABLE_RE)) {
|
|
508
|
+
const table = (m[1] ?? '').replace(/[\[\]]/g, '');
|
|
509
|
+
if (!table)
|
|
510
|
+
continue;
|
|
511
|
+
if (seen.has(table))
|
|
512
|
+
continue;
|
|
513
|
+
seen.add(table);
|
|
514
|
+
this.emitTableReference(sourceNodeId, table, lineNum, synthesizedBy);
|
|
515
|
+
}
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
// Bare name → single reference. Trim defensively so trailing
|
|
519
|
+
// whitespace from the SaveAsText export doesn't pollute the target.
|
|
520
|
+
const name = value.trim();
|
|
521
|
+
if (!name)
|
|
522
|
+
return;
|
|
523
|
+
this.emitTableReference(sourceNodeId, name, lineNum, synthesizedBy);
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Issue #49 — sweep for the form-level `RecordSource` line. RecordSource
|
|
527
|
+
* always attributes to the form-layout node (even if the line is
|
|
528
|
+
* written inside a control's Begin block — defensive: in real
|
|
529
|
+
* SaveAsText exports the form's RecordSource sits at the root, but
|
|
530
|
+
* the agent's spec says "emit from the form-layout node" regardless).
|
|
531
|
+
*
|
|
532
|
+
* The sweep intentionally matches ONLY `RecordSource` here;
|
|
533
|
+
* `RowSource` is handled by `sweepRowSources` so the per-binding
|
|
534
|
+
* attribution logic (control vs. form-layout) stays in one place.
|
|
535
|
+
*/
|
|
536
|
+
sweepRecordSources(src, formLayoutNodeId) {
|
|
537
|
+
const lines = src.split('\n');
|
|
538
|
+
for (let i = 0; i < lines.length; i++) {
|
|
539
|
+
const line = lines[i] ?? '';
|
|
540
|
+
const m = VbaFormExtractor.RECORD_SOURCE_RE.exec(line);
|
|
541
|
+
if (!m)
|
|
542
|
+
continue;
|
|
543
|
+
const rawValue = m[1] ?? '';
|
|
544
|
+
const lineNum = i + 1;
|
|
545
|
+
this.emitBinding(formLayoutNodeId, rawValue, lineNum, 'vba-record-source');
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Issue #49 — sweep for per-control `RowSource` lines. RowSource
|
|
550
|
+
* attributes to the enclosing control's `form-instance-control` node
|
|
551
|
+
* when one is in scope; if the line is found outside any control
|
|
552
|
+
* Begin block (defensive — unusual in real exports), it falls back to
|
|
553
|
+
* the form-layout node. The tag is always `'vba-row-source'` so
|
|
554
|
+
* consumers can distinguish a control-level data binding from the
|
|
555
|
+
* form-level RecordSource even when both happen to share the same
|
|
556
|
+
* source node.
|
|
557
|
+
*
|
|
558
|
+
* Control-block tracking: a stack of `{ controlName, rowSourceType }`
|
|
559
|
+
* entries mirrors the current scope as the sweep walks lines in order.
|
|
560
|
+
* `Begin <Type>` pushes; `End` pops. `Begin Form` / `Begin Section`
|
|
561
|
+
* push a non-control entry so a RowSource written at the form root
|
|
562
|
+
* correctly falls through to the form-layout fallback.
|
|
563
|
+
*
|
|
564
|
+
* Value-list skip: when the CURRENT TOP scope's `RowSourceType` is
|
|
565
|
+
* `"Value List"` (captured by the same scan-window as the control's
|
|
566
|
+
* `Name`), the control's RowSource is a literal list and we skip the
|
|
567
|
+
* emission — the data is in code, not a table.
|
|
568
|
+
*/
|
|
569
|
+
sweepRowSources(src, formLayoutNodeId) {
|
|
570
|
+
const lines = src.split('\n');
|
|
571
|
+
const stack = [];
|
|
572
|
+
for (let i = 0; i < lines.length; i++) {
|
|
573
|
+
const line = lines[i] ?? '';
|
|
574
|
+
const lineNum = i + 1;
|
|
575
|
+
const beginM = VbaFormExtractor.BEGIN_RE.exec(line);
|
|
576
|
+
if (beginM) {
|
|
577
|
+
const controlType = beginM[1] ?? '';
|
|
578
|
+
if (VbaFormExtractor.NON_CONTROL_TYPES.has(controlType)) {
|
|
579
|
+
stack.push({ controlName: '', rowSourceType: '' });
|
|
580
|
+
}
|
|
581
|
+
else {
|
|
582
|
+
// Reuse findControlName so the control-name attribution stays
|
|
583
|
+
// in lockstep with the form-instance-control node id we
|
|
584
|
+
// already produced in sweepControls. Issue #41's event-handler
|
|
585
|
+
// edges and Issue #49's references edges then point at the
|
|
586
|
+
// same id consistently.
|
|
587
|
+
const { name: controlName } = this.findControlName(lines, i, lineNum);
|
|
588
|
+
const rowSourceType = this.findRowSourceType(lines, i);
|
|
589
|
+
stack.push({ controlName, rowSourceType });
|
|
590
|
+
}
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
if (/^\s*End\s*$/i.test(line)) {
|
|
594
|
+
if (stack.length > 0)
|
|
595
|
+
stack.pop();
|
|
596
|
+
continue;
|
|
597
|
+
}
|
|
598
|
+
const rowM = VbaFormExtractor.ROW_SOURCE_RE.exec(line);
|
|
599
|
+
if (!rowM)
|
|
600
|
+
continue;
|
|
601
|
+
// Find the nearest enclosing control scope. We don't just look at
|
|
602
|
+
// the stack top because a row could conceivably be written inside
|
|
603
|
+
// a `Begin Section` (controlName='' entry on top) — in that case
|
|
604
|
+
// the section entry hides the actual control below it. Walk the
|
|
605
|
+
// stack from top to bottom and pick the first controlName we see.
|
|
606
|
+
let currentControl = '';
|
|
607
|
+
for (let j = stack.length - 1; j >= 0; j--) {
|
|
608
|
+
if (stack[j]?.controlName) {
|
|
609
|
+
currentControl = stack[j].controlName;
|
|
610
|
+
break;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
// Skip value-list controls. The check is on the TOP scope's
|
|
614
|
+
// rowSourceType, which is the most-recent control's type — even
|
|
615
|
+
// if a nested Begin/End hid it from the stack-walk above, the
|
|
616
|
+
// RowSource line we're matching was written inside that scope so
|
|
617
|
+
// the top of stack carries the right value.
|
|
618
|
+
const top = stack[stack.length - 1];
|
|
619
|
+
if (top && top.rowSourceType === 'Value List')
|
|
620
|
+
continue;
|
|
621
|
+
const rawValue = rowM[1] ?? '';
|
|
622
|
+
const sourceId = currentControl
|
|
623
|
+
? (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'form-instance-control', currentControl, 0)
|
|
624
|
+
: formLayoutNodeId;
|
|
625
|
+
this.emitBinding(sourceId, rawValue, lineNum, 'vba-row-source');
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
/**
|
|
629
|
+
* Issue #49 — companion helper to `findControlName`: scan ahead from a
|
|
630
|
+
* `Begin <Type>` line for the first `RowSourceType = "..."` attribute
|
|
631
|
+
* within the same `NAME_SCAN_WINDOW` (so a missing attribute gracefully
|
|
632
|
+
* no-ops instead of mis-attributing). Returns the captured value (e.g.
|
|
633
|
+
* `"Value List"`, `"Table/Query"`) or `''` when absent.
|
|
634
|
+
*
|
|
635
|
+
* Stops at the next `Begin` or `End` boundary — same scan-window
|
|
636
|
+
* discipline as `findControlName`, so a misaligned scan never crosses
|
|
637
|
+
* into a sibling control's attribute block.
|
|
638
|
+
*/
|
|
639
|
+
findRowSourceType(lines, beginLineIndex) {
|
|
640
|
+
const end = Math.min(lines.length, beginLineIndex + 1 + VbaFormExtractor.NAME_SCAN_WINDOW);
|
|
641
|
+
for (let j = beginLineIndex + 1; j < end; j++) {
|
|
642
|
+
const line = lines[j] ?? '';
|
|
643
|
+
if (/^\s*(Begin|End)\b/i.test(line))
|
|
644
|
+
break;
|
|
645
|
+
const m = VbaFormExtractor.ROW_SOURCE_TYPE_RE.exec(line);
|
|
646
|
+
if (m) {
|
|
647
|
+
return m[1] ?? '';
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
return '';
|
|
651
|
+
}
|
|
365
652
|
}
|
|
366
653
|
exports.VbaFormExtractor = VbaFormExtractor;
|
|
367
654
|
//# sourceMappingURL=vba-form-extractor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vba-form-extractor.js","sourceRoot":"","sources":["../../src/extraction/vba-form-extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vba-form-extractor.js","sourceRoot":"","sources":["../../src/extraction/vba-form-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,9 +69,28 @@ export declare function stripVbaComments(src: string): string;
|
|
|
69
69
|
/**
|
|
70
70
|
* Evaluate VBA conditional-compilation directives for the modern Windows
|
|
71
71
|
* Access/VBA target this extractor is designed around:
|
|
72
|
-
* - VBA7
|
|
73
|
-
* - Win64
|
|
74
|
-
* -
|
|
72
|
+
* - VBA7 = true (VBA7 runtime available)
|
|
73
|
+
* - Win64 = true (64-bit VBA host — Access/VBA on x64 Windows)
|
|
74
|
+
* - Win32 = true (legacy guard; always true on modern Windows, incl. Win64)
|
|
75
|
+
* - Win16 = false (legacy 16-bit Windows — not a current target)
|
|
76
|
+
* - Mac = false (Mac host)
|
|
77
|
+
*
|
|
78
|
+
* In addition, the file-scoped `#Const NAME = <value>` table is consulted
|
|
79
|
+
* before the hardcoded constants above — `#Const MODO_DEBUG = True` then
|
|
80
|
+
* `#If MODO_DEBUG Then` keeps the branch. The #Const line itself is
|
|
81
|
+
* blanked to preserve line-count parity.
|
|
82
|
+
*
|
|
83
|
+
* Truthiness follows VBA semantics: True = -1, False = 0. We achieve this
|
|
84
|
+
* by substituting the JS boolean literals `true`/`false` with their VBA
|
|
85
|
+
* numeric equivalents `-1`/`0` after the identifier+operator rewrites and
|
|
86
|
+
* before the whitelist check. This is a deliberate simplification — full
|
|
87
|
+
* VBA CC is bitwise on -1/0 (so `True And True = -1`), but the supported
|
|
88
|
+
* expression surface here is truthy comparison / `=` / `<>` / `And` /
|
|
89
|
+
* `Or` / `Not`, for which JS `&&`/`||`/`!` truthy evaluation is
|
|
90
|
+
* equivalent: any non-zero operand is truthy, matching VBA's "non-zero is
|
|
91
|
+
* true" convention. If a future task needs bitwise-precise `-1` semantics
|
|
92
|
+
* (e.g. distinguishing `#If X = 1` from `#If X = -1` on a `True` const),
|
|
93
|
+
* promote this evaluator to full integer arithmetic.
|
|
75
94
|
*
|
|
76
95
|
* Directives and inactive branch lines are replaced with empty strings so
|
|
77
96
|
* downstream extraction keeps source-line parity. Unsupported/unsafe
|
|
@@ -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;
|
|
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,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA0EpE;AA0LD,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"}
|
|
@@ -167,12 +167,36 @@ const IF_DIRECTIVE = /^\s*#If\s+(.+?)\s+Then\s*$/i;
|
|
|
167
167
|
const ELSEIF_DIRECTIVE = /^\s*#ElseIf\s+(.+?)\s+Then\s*$/i;
|
|
168
168
|
const ELSE_DIRECTIVE = /^\s*#Else\s*$/i;
|
|
169
169
|
const ENDIF_DIRECTIVE = /^\s*#(?:End\s*If|EndIf)\s*$/i;
|
|
170
|
+
// #Const NAME = <value> — captured name (identifier) and value (anything
|
|
171
|
+
// to EOL). The directive line is always blanked; the value is fed through
|
|
172
|
+
// the same normalize+evaluate pipeline as a #If expression so it inherits
|
|
173
|
+
// the substitution table for free.
|
|
174
|
+
const CONST_DIRECTIVE = /^\s*#Const\s+([A-Za-z_][A-Za-z_0-9]*)\s*=\s*(.+?)\s*$/i;
|
|
170
175
|
/**
|
|
171
176
|
* Evaluate VBA conditional-compilation directives for the modern Windows
|
|
172
177
|
* Access/VBA target this extractor is designed around:
|
|
173
|
-
* - VBA7
|
|
174
|
-
* - Win64
|
|
175
|
-
* -
|
|
178
|
+
* - VBA7 = true (VBA7 runtime available)
|
|
179
|
+
* - Win64 = true (64-bit VBA host — Access/VBA on x64 Windows)
|
|
180
|
+
* - Win32 = true (legacy guard; always true on modern Windows, incl. Win64)
|
|
181
|
+
* - Win16 = false (legacy 16-bit Windows — not a current target)
|
|
182
|
+
* - Mac = false (Mac host)
|
|
183
|
+
*
|
|
184
|
+
* In addition, the file-scoped `#Const NAME = <value>` table is consulted
|
|
185
|
+
* before the hardcoded constants above — `#Const MODO_DEBUG = True` then
|
|
186
|
+
* `#If MODO_DEBUG Then` keeps the branch. The #Const line itself is
|
|
187
|
+
* blanked to preserve line-count parity.
|
|
188
|
+
*
|
|
189
|
+
* Truthiness follows VBA semantics: True = -1, False = 0. We achieve this
|
|
190
|
+
* by substituting the JS boolean literals `true`/`false` with their VBA
|
|
191
|
+
* numeric equivalents `-1`/`0` after the identifier+operator rewrites and
|
|
192
|
+
* before the whitelist check. This is a deliberate simplification — full
|
|
193
|
+
* VBA CC is bitwise on -1/0 (so `True And True = -1`), but the supported
|
|
194
|
+
* expression surface here is truthy comparison / `=` / `<>` / `And` /
|
|
195
|
+
* `Or` / `Not`, for which JS `&&`/`||`/`!` truthy evaluation is
|
|
196
|
+
* equivalent: any non-zero operand is truthy, matching VBA's "non-zero is
|
|
197
|
+
* true" convention. If a future task needs bitwise-precise `-1` semantics
|
|
198
|
+
* (e.g. distinguishing `#If X = 1` from `#If X = -1` on a `True` const),
|
|
199
|
+
* promote this evaluator to full integer arithmetic.
|
|
176
200
|
*
|
|
177
201
|
* Directives and inactive branch lines are replaced with empty strings so
|
|
178
202
|
* downstream extraction keeps source-line parity. Unsupported/unsafe
|
|
@@ -184,11 +208,32 @@ function preprocessConditionalCompilation(src) {
|
|
|
184
208
|
const lines = src.split('\n');
|
|
185
209
|
const out = [];
|
|
186
210
|
const stack = [];
|
|
211
|
+
// Per-call #Const table. Name → post-evaluation numeric string (e.g.
|
|
212
|
+
// "-1" for True, "0" for False, "1" for an integer literal). Stored as a
|
|
213
|
+
// string so it can be substituted verbatim into the normalized
|
|
214
|
+
// expression. A name that fails to evaluate is NOT stored — the lookup
|
|
215
|
+
// simply misses and the conservative fallback (unknown identifier →
|
|
216
|
+
// false) applies, exactly as for an unrecognised hardcoded constant.
|
|
217
|
+
const constTable = new Map();
|
|
187
218
|
for (const line of lines) {
|
|
219
|
+
// Parse #Const BEFORE the other directives so the table is up-to-date
|
|
220
|
+
// when a subsequent #If expression references it. The line itself is
|
|
221
|
+
// always blanked (line-count parity invariant).
|
|
222
|
+
const constMatch = CONST_DIRECTIVE.exec(line);
|
|
223
|
+
if (constMatch) {
|
|
224
|
+
const name = (constMatch[1] ?? '').trim();
|
|
225
|
+
const rhs = (constMatch[2] ?? '').trim();
|
|
226
|
+
const value = evaluateConstRhs(rhs, constTable);
|
|
227
|
+
if (value !== null) {
|
|
228
|
+
constTable.set(name, value);
|
|
229
|
+
}
|
|
230
|
+
out.push('');
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
188
233
|
const ifMatch = IF_DIRECTIVE.exec(line);
|
|
189
234
|
if (ifMatch) {
|
|
190
235
|
const parentActive = stack.every((frame) => frame.active);
|
|
191
|
-
const active = parentActive && evaluateConditionalExpression(ifMatch[1] ?? '');
|
|
236
|
+
const active = parentActive && evaluateConditionalExpression(ifMatch[1] ?? '', constTable);
|
|
192
237
|
stack.push({ parentActive, active, branchTaken: active });
|
|
193
238
|
out.push('');
|
|
194
239
|
continue;
|
|
@@ -199,7 +244,7 @@ function preprocessConditionalCompilation(src) {
|
|
|
199
244
|
if (frame) {
|
|
200
245
|
const active = frame.parentActive &&
|
|
201
246
|
!frame.branchTaken &&
|
|
202
|
-
evaluateConditionalExpression(elseIfMatch[1] ?? '');
|
|
247
|
+
evaluateConditionalExpression(elseIfMatch[1] ?? '', constTable);
|
|
203
248
|
frame.active = active;
|
|
204
249
|
if (active)
|
|
205
250
|
frame.branchTaken = true;
|
|
@@ -227,21 +272,63 @@ function preprocessConditionalCompilation(src) {
|
|
|
227
272
|
}
|
|
228
273
|
return out.join('\n');
|
|
229
274
|
}
|
|
230
|
-
|
|
275
|
+
/**
|
|
276
|
+
* Apply the full substitution pipeline to a conditional-compilation
|
|
277
|
+
* expression: identifier substitutions (#Const table first, then the
|
|
278
|
+
* hardcoded constants), operator rewrites, and the True→-1 / False→0
|
|
279
|
+
* conversion that gives the evaluator correct VBA equality semantics.
|
|
280
|
+
*
|
|
281
|
+
* Returns the normalized string if it passes the whitelist (signed
|
|
282
|
+
* integer literal + operators + parens + whitespace only), or `null` if
|
|
283
|
+
* any substitution left a token that does not match the whitelist. A
|
|
284
|
+
* `null` return signals "do not evaluate" — the caller falls back to
|
|
285
|
+
* false (the conservative behaviour preserved from the original
|
|
286
|
+
* implementation).
|
|
287
|
+
*/
|
|
288
|
+
function normalizeConditionalExpression(expr, constTable) {
|
|
231
289
|
let normalized = expr.trim();
|
|
232
290
|
normalized = normalized.replace(/\bThen\s*$/i, '');
|
|
233
291
|
normalized = normalized.replace(/<>/g, '!==');
|
|
234
292
|
normalized = normalized.replace(/(?<![<>=])=(?![=])/g, '===');
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
293
|
+
// #Const table first — user-defined constants shadow the hardcoded ones
|
|
294
|
+
// below. The replacement value is a numeric literal string (e.g. "-1"),
|
|
295
|
+
// so it cannot re-introduce identifiers or operators. Use a replacement
|
|
296
|
+
// function so the value is inserted verbatim — `String.replace(regex,
|
|
297
|
+
// string)` would otherwise interpret `$`/`\\` in the replacement.
|
|
298
|
+
for (const [name, value] of constTable) {
|
|
299
|
+
normalized = normalized.replace(new RegExp(`\\b${escapeRegExp(name)}\\b`, 'gi'), () => value);
|
|
300
|
+
}
|
|
301
|
+
normalized = normalized
|
|
302
|
+
.replace(/\bVBA7\b/gi, 'true')
|
|
303
|
+
.replace(/\bWin64\b/gi, 'true')
|
|
304
|
+
.replace(/\bWin32\b/gi, 'true')
|
|
305
|
+
.replace(/\bWin16\b/gi, 'false')
|
|
306
|
+
.replace(/\bMac\b/gi, 'false')
|
|
307
|
+
.replace(/\bAnd\b/gi, '&&')
|
|
308
|
+
.replace(/\bOr\b/gi, '||')
|
|
309
|
+
.replace(/\bNot\b/gi, '!')
|
|
310
|
+
// VBA CC truthiness: True = -1, False = 0. Substitute the JS boolean
|
|
311
|
+
// literals with their VBA numeric equivalents so a downstream
|
|
312
|
+
// `Win64 = -1` comparison (after the `=`→`===` rewrite) evaluates
|
|
313
|
+
// true. See the doc comment on `preprocessConditionalCompilation`
|
|
314
|
+
// for the chosen simplification.
|
|
315
|
+
.replace(/\btrue\b/gi, '-1')
|
|
316
|
+
.replace(/\bfalse\b/gi, '0')
|
|
317
|
+
.trim();
|
|
318
|
+
// Whitelist — after every substitution the expression should consist
|
|
319
|
+
// only of signed integer literals, operators, parens, and whitespace.
|
|
320
|
+
// The original whitelist accepted `true`/`false` literals; we have
|
|
321
|
+
// converted those to `-1`/`0` above, so the alternation is no longer
|
|
322
|
+
// needed. The signed-integer alternation accepts unary minus.
|
|
323
|
+
if (!/^(?:-?\d+|\s|&&|\|\||!|===|!==|\(|\))+?$/.test(normalized)) {
|
|
324
|
+
return null;
|
|
244
325
|
}
|
|
326
|
+
return normalized;
|
|
327
|
+
}
|
|
328
|
+
function evaluateConditionalExpression(expr, constTable = new Map()) {
|
|
329
|
+
const normalized = normalizeConditionalExpression(expr, constTable);
|
|
330
|
+
if (normalized === null)
|
|
331
|
+
return false;
|
|
245
332
|
try {
|
|
246
333
|
return Boolean(Function(`"use strict"; return (${normalized});`)());
|
|
247
334
|
}
|
|
@@ -249,6 +336,41 @@ function evaluateConditionalExpression(expr) {
|
|
|
249
336
|
return false;
|
|
250
337
|
}
|
|
251
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* Evaluate the RHS of a `#Const NAME = <value>` directive. Returns the
|
|
341
|
+
* value as a JS-substitutable numeric string (e.g. `"-1"`, `"0"`,
|
|
342
|
+
* `"1"`) so it can be substituted verbatim into subsequent #If
|
|
343
|
+
* expressions, OR `null` if the RHS is unsupported (whitelist failure,
|
|
344
|
+
* non-numeric/non-boolean evaluation result).
|
|
345
|
+
*
|
|
346
|
+
* Re-uses the same normalize pipeline as #If so recursive `#Const X = Y`
|
|
347
|
+
* references resolve against the existing table (but a self-reference is
|
|
348
|
+
* impossible: the new entry is added AFTER the RHS is evaluated, so it
|
|
349
|
+
* is invisible to its own evaluation).
|
|
350
|
+
*/
|
|
351
|
+
function evaluateConstRhs(rhs, constTable) {
|
|
352
|
+
const normalized = normalizeConditionalExpression(rhs, constTable);
|
|
353
|
+
if (normalized === null)
|
|
354
|
+
return null;
|
|
355
|
+
let result;
|
|
356
|
+
try {
|
|
357
|
+
result = Function(`"use strict"; return (${normalized});`)();
|
|
358
|
+
}
|
|
359
|
+
catch {
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
if (typeof result === 'number' && Number.isFinite(result)) {
|
|
363
|
+
return String(Math.trunc(result));
|
|
364
|
+
}
|
|
365
|
+
if (typeof result === 'boolean') {
|
|
366
|
+
return result ? '-1' : '0';
|
|
367
|
+
}
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
/** Escape regex metacharacters so a name can be interpolated safely. */
|
|
371
|
+
function escapeRegExp(s) {
|
|
372
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
373
|
+
}
|
|
252
374
|
/**
|
|
253
375
|
* Split `line` into alternating code / string-literal segments and apply
|
|
254
376
|
* `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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"}
|