@openrewrite/rewrite 8.67.0-20251112-160335 → 8.67.0-20251113-160321
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/dist/javascript/comparator.d.ts +64 -3
- package/dist/javascript/comparator.d.ts.map +1 -1
- package/dist/javascript/comparator.js +216 -155
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/templating/comparator.d.ts +118 -9
- package/dist/javascript/templating/comparator.d.ts.map +1 -1
- package/dist/javascript/templating/comparator.js +821 -73
- package/dist/javascript/templating/comparator.js.map +1 -1
- package/dist/javascript/templating/index.d.ts +1 -1
- package/dist/javascript/templating/index.d.ts.map +1 -1
- package/dist/javascript/templating/index.js.map +1 -1
- package/dist/javascript/templating/pattern.d.ts +89 -5
- package/dist/javascript/templating/pattern.d.ts.map +1 -1
- package/dist/javascript/templating/pattern.js +442 -31
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/javascript/templating/types.d.ts +157 -1
- package/dist/javascript/templating/types.d.ts.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/javascript/comparator.ts +249 -169
- package/src/javascript/templating/comparator.ts +952 -87
- package/src/javascript/templating/index.ts +6 -1
- package/src/javascript/templating/pattern.ts +543 -23
- package/src/javascript/templating/types.ts +178 -1
|
@@ -31,6 +31,8 @@ const capture_1 = require("./capture");
|
|
|
31
31
|
const comparator_1 = require("./comparator");
|
|
32
32
|
const utils_1 = require("./utils");
|
|
33
33
|
const engine_1 = require("./engine");
|
|
34
|
+
const print_1 = require("../../print");
|
|
35
|
+
const index_1 = require("../index");
|
|
34
36
|
/**
|
|
35
37
|
* Builder for creating patterns programmatically.
|
|
36
38
|
* Use when pattern structure is not known at compile time.
|
|
@@ -158,6 +160,19 @@ class Pattern {
|
|
|
158
160
|
this.templateParts = templateParts;
|
|
159
161
|
this.captures = captures;
|
|
160
162
|
this._options = {};
|
|
163
|
+
this.unnamedCaptureMapping = new Map();
|
|
164
|
+
this.patternId = Pattern.nextPatternId++;
|
|
165
|
+
// Build mapping for unnamed captures (unnamed_N -> _X)
|
|
166
|
+
let unnamedIndex = 1;
|
|
167
|
+
for (const cap of captures) {
|
|
168
|
+
if (cap && typeof cap === 'object' && 'getName' in cap) {
|
|
169
|
+
const name = cap.getName();
|
|
170
|
+
if (name && name.startsWith('unnamed_')) {
|
|
171
|
+
this.unnamedCaptureMapping.set(name, `_${unnamedIndex}`);
|
|
172
|
+
unnamedIndex++;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
161
176
|
}
|
|
162
177
|
/**
|
|
163
178
|
* Configures this pattern with additional options.
|
|
@@ -224,10 +239,39 @@ class Pattern {
|
|
|
224
239
|
* @param cursor Optional cursor at the node's position in a larger tree. Used for context-aware
|
|
225
240
|
* capture constraints to navigate to parent nodes. If omitted, a cursor will be
|
|
226
241
|
* created at the ast root, allowing constraints to navigate within the matched subtree.
|
|
242
|
+
* @param options Optional match options (e.g., debug flag)
|
|
227
243
|
* @returns A MatchResult if the pattern matches, undefined otherwise
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* // Normal match
|
|
248
|
+
* const match = await pattern.match(node);
|
|
249
|
+
*
|
|
250
|
+
* // Debug this specific call
|
|
251
|
+
* const match = await pattern.match(node, cursor, { debug: true });
|
|
252
|
+
* ```
|
|
228
253
|
*/
|
|
229
|
-
match(ast, cursor) {
|
|
254
|
+
match(ast, cursor, options) {
|
|
230
255
|
return __awaiter(this, void 0, void 0, function* () {
|
|
256
|
+
// Three-level precedence: call > pattern > global
|
|
257
|
+
const debugEnabled = (options === null || options === void 0 ? void 0 : options.debug) !== undefined
|
|
258
|
+
? options.debug // 1. Explicit call-level (true OR false)
|
|
259
|
+
: (this._options.debug !== undefined
|
|
260
|
+
? this._options.debug // 2. Explicit pattern-level
|
|
261
|
+
: process.env.PATTERN_DEBUG === 'true'); // 3. Global
|
|
262
|
+
if (debugEnabled) {
|
|
263
|
+
// Use matchWithExplanation and log the result
|
|
264
|
+
const result = yield this.matchWithExplanation(ast, cursor);
|
|
265
|
+
yield this.logMatchResult(ast, cursor, result);
|
|
266
|
+
if (result.matched) {
|
|
267
|
+
// result.result is the MatchResult class instance
|
|
268
|
+
return result.result;
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
return undefined;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// Fast path - no debug
|
|
231
275
|
const matcher = new Matcher(this, ast, cursor);
|
|
232
276
|
const success = yield matcher.matches();
|
|
233
277
|
if (!success) {
|
|
@@ -238,8 +282,245 @@ class Pattern {
|
|
|
238
282
|
return new MatchResult(new Map(storage));
|
|
239
283
|
});
|
|
240
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Formats and logs the match result to stderr.
|
|
287
|
+
* @private
|
|
288
|
+
*/
|
|
289
|
+
logMatchResult(ast, cursor, result) {
|
|
290
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
291
|
+
const patternSource = this.getPatternSource();
|
|
292
|
+
const patternId = `Pattern #${this.patternId}`;
|
|
293
|
+
const nodeKind = ast.kind || 'unknown';
|
|
294
|
+
// Format kind: extract short name (e.g., "org.openrewrite.java.tree.J$Binary" -> "J$Binary")
|
|
295
|
+
const shortKind = typeof nodeKind === 'string'
|
|
296
|
+
? nodeKind.split('.').pop() || nodeKind
|
|
297
|
+
: nodeKind;
|
|
298
|
+
// First, log the pattern source
|
|
299
|
+
console.error(`[${patternId}] ${patternSource}`);
|
|
300
|
+
// Build the complete match result message
|
|
301
|
+
const lines = [];
|
|
302
|
+
// Print the target tree being matched
|
|
303
|
+
let treeStr;
|
|
304
|
+
try {
|
|
305
|
+
const printer = print_1.TreePrinters.printer(index_1.JS.Kind.CompilationUnit);
|
|
306
|
+
treeStr = yield printer.print(ast);
|
|
307
|
+
}
|
|
308
|
+
catch (e) {
|
|
309
|
+
treeStr = '(tree printing unavailable)';
|
|
310
|
+
}
|
|
311
|
+
if (result.matched) {
|
|
312
|
+
// Success case - result first, then tree, then captures
|
|
313
|
+
lines.push(`[${patternId}] ✅ SUCCESS matching against ${shortKind}:`);
|
|
314
|
+
treeStr.split('\n').forEach(line => lines.push(`[${patternId}] ${line}`));
|
|
315
|
+
// Log captured values
|
|
316
|
+
if (result.result) {
|
|
317
|
+
const storage = result.result.storage;
|
|
318
|
+
if (storage && storage.size > 0) {
|
|
319
|
+
for (const [name, value] of storage) {
|
|
320
|
+
const extractedValue = result.result.extractElements(value);
|
|
321
|
+
const valueStr = this.formatCapturedValue(extractedValue);
|
|
322
|
+
const displayName = this.unnamedCaptureMapping.get(name) || name;
|
|
323
|
+
lines.push(`[${patternId}] Captured '${displayName}': ${valueStr}`);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
// Failure case - result first, then tree, then explanation
|
|
330
|
+
lines.push(`[${patternId}] ❌ FAILED matching against ${shortKind}:`);
|
|
331
|
+
treeStr.split('\n').forEach(line => lines.push(`[${patternId}] ${line}`));
|
|
332
|
+
const explanation = result.explanation;
|
|
333
|
+
if (explanation) {
|
|
334
|
+
// Always show path, even if empty, to make it clear where the mismatch occurred
|
|
335
|
+
const compactedPath = this.compactPath(explanation.path);
|
|
336
|
+
const pathStr = compactedPath.length > 0 ? compactedPath.join(' → ') : '';
|
|
337
|
+
lines.push(`[${patternId}] At path: [${pathStr}]`);
|
|
338
|
+
lines.push(`[${patternId}] Reason: ${explanation.reason}`);
|
|
339
|
+
lines.push(`[${patternId}] Expected: ${explanation.expected}`);
|
|
340
|
+
lines.push(`[${patternId}] Actual: ${explanation.actual}`);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// Single console.error call with all lines joined
|
|
344
|
+
console.error(lines.join('\n'));
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Compacts array index navigations into the previous path element.
|
|
349
|
+
* For example: ['J$VariableDeclarations#variables', '0'] → ['J$VariableDeclarations#variables[0]']
|
|
350
|
+
* @private
|
|
351
|
+
*/
|
|
352
|
+
compactPath(path) {
|
|
353
|
+
const compacted = [];
|
|
354
|
+
let i = 0;
|
|
355
|
+
while (i < path.length) {
|
|
356
|
+
const current = path[i];
|
|
357
|
+
// Check if current element is itself a numeric index
|
|
358
|
+
if (/^\d+$/.test(current)) {
|
|
359
|
+
// This is a bare numeric index - shouldn't normally happen
|
|
360
|
+
// If we have a previous element, append to it
|
|
361
|
+
if (compacted.length > 0) {
|
|
362
|
+
compacted[compacted.length - 1] += `[${current}]`;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
// No previous element to attach to - this is an error in path construction
|
|
366
|
+
// Skip it to avoid bare [0] in output
|
|
367
|
+
console.warn(`Warning: Path starts with numeric index '${current}' - skipping`);
|
|
368
|
+
}
|
|
369
|
+
i++;
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
// Look ahead to collect consecutive numeric indices
|
|
373
|
+
let j = i + 1;
|
|
374
|
+
const indices = [];
|
|
375
|
+
while (j < path.length && /^\d+$/.test(path[j])) {
|
|
376
|
+
indices.push(path[j]);
|
|
377
|
+
j++;
|
|
378
|
+
}
|
|
379
|
+
// If we found numeric indices, append them to current element
|
|
380
|
+
if (indices.length > 0) {
|
|
381
|
+
compacted.push(current + indices.map(idx => `[${idx}]`).join(''));
|
|
382
|
+
i = j; // Skip the indices we just processed
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
compacted.push(current);
|
|
386
|
+
i++;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
return compacted;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Gets the source code representation of this pattern for logging.
|
|
393
|
+
* @private
|
|
394
|
+
*/
|
|
395
|
+
getPatternSource() {
|
|
396
|
+
// Reconstruct pattern source from template parts
|
|
397
|
+
let source = '';
|
|
398
|
+
for (let i = 0; i < this.templateParts.length; i++) {
|
|
399
|
+
source += this.templateParts[i];
|
|
400
|
+
if (i < this.captures.length) {
|
|
401
|
+
const cap = this.captures[i];
|
|
402
|
+
// Skip raw code
|
|
403
|
+
if (cap instanceof capture_1.RawCode || (cap && typeof cap === 'object' && cap[capture_1.RAW_CODE_SYMBOL])) {
|
|
404
|
+
source += '${raw(...)}';
|
|
405
|
+
continue;
|
|
406
|
+
}
|
|
407
|
+
// Show capture name or placeholder
|
|
408
|
+
const name = cap[capture_1.CAPTURE_NAME_SYMBOL];
|
|
409
|
+
if (cap && typeof cap === 'object' && name) {
|
|
410
|
+
// Use mapped name for unnamed captures, or original name
|
|
411
|
+
const displayName = this.unnamedCaptureMapping.get(name) || name;
|
|
412
|
+
source += `\${${displayName}}`;
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
source += '${...}';
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
return source;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Formats a captured value for logging.
|
|
423
|
+
* @private
|
|
424
|
+
*/
|
|
425
|
+
formatCapturedValue(value) {
|
|
426
|
+
if (value === null)
|
|
427
|
+
return 'null';
|
|
428
|
+
if (value === undefined)
|
|
429
|
+
return 'undefined';
|
|
430
|
+
// Check if it's an array (variadic capture)
|
|
431
|
+
if (Array.isArray(value)) {
|
|
432
|
+
if (value.length === 0)
|
|
433
|
+
return '[]';
|
|
434
|
+
const items = value.slice(0, 3).map(v => this.formatSingleValue(v));
|
|
435
|
+
const suffix = value.length > 3 ? `, ... (${value.length} total)` : '';
|
|
436
|
+
return `[${items.join(', ')}${suffix}]`;
|
|
437
|
+
}
|
|
438
|
+
return this.formatSingleValue(value);
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Formats a single AST node for logging.
|
|
442
|
+
* @private
|
|
443
|
+
*/
|
|
444
|
+
formatSingleValue(value) {
|
|
445
|
+
if (!value || typeof value !== 'object') {
|
|
446
|
+
return String(value);
|
|
447
|
+
}
|
|
448
|
+
const kind = value.kind;
|
|
449
|
+
if (!kind)
|
|
450
|
+
return String(value);
|
|
451
|
+
// Extract simple kind name (last segment)
|
|
452
|
+
const kindStr = kind.split('.').pop();
|
|
453
|
+
// For literals, show the value
|
|
454
|
+
if (kindStr === 'Literal' && value.value !== undefined) {
|
|
455
|
+
const litValue = typeof value.value === 'string'
|
|
456
|
+
? `"${value.value}"`
|
|
457
|
+
: String(value.value);
|
|
458
|
+
return `${kindStr}(${litValue})`;
|
|
459
|
+
}
|
|
460
|
+
// For identifiers, show the name
|
|
461
|
+
if (kindStr === 'Identifier' && value.simpleName) {
|
|
462
|
+
return `${kindStr}(${value.simpleName})`;
|
|
463
|
+
}
|
|
464
|
+
// Default: just the kind
|
|
465
|
+
return kindStr;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Matches a pattern against an AST node with detailed debug information.
|
|
469
|
+
* Part of Layer 2 (Public API).
|
|
470
|
+
*
|
|
471
|
+
* This method always enables debug logging and returns detailed information about
|
|
472
|
+
* the match attempt, including:
|
|
473
|
+
* - Whether the pattern matched
|
|
474
|
+
* - Captured nodes (if matched)
|
|
475
|
+
* - Explanation of failure (if not matched)
|
|
476
|
+
* - Debug log entries showing the matching process
|
|
477
|
+
*
|
|
478
|
+
* @param ast The AST node to match against
|
|
479
|
+
* @param cursor Optional cursor at the node's position in a larger tree
|
|
480
|
+
* @param debugOptions Optional debug options (defaults to all logging enabled)
|
|
481
|
+
* @returns Detailed result with debug information
|
|
482
|
+
*
|
|
483
|
+
* @example
|
|
484
|
+
* const x = capture('x');
|
|
485
|
+
* const pat = pattern`console.log(${x})`;
|
|
486
|
+
* const attempt = await pat.matchWithExplanation(node);
|
|
487
|
+
* if (attempt.matched) {
|
|
488
|
+
* console.log('Matched!');
|
|
489
|
+
* console.log('Captured x:', attempt.result.get('x'));
|
|
490
|
+
* } else {
|
|
491
|
+
* console.log('Failed:', attempt.explanation);
|
|
492
|
+
* console.log('Debug log:', attempt.debugLog);
|
|
493
|
+
* }
|
|
494
|
+
*/
|
|
495
|
+
matchWithExplanation(ast, cursor, debugOptions) {
|
|
496
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
497
|
+
// Default to full debug logging if not specified
|
|
498
|
+
const options = Object.assign({ enabled: true, logComparison: true, logConstraints: true }, debugOptions);
|
|
499
|
+
const matcher = new Matcher(this, ast, cursor, options);
|
|
500
|
+
const success = yield matcher.matches();
|
|
501
|
+
if (success) {
|
|
502
|
+
// Match succeeded - return MatchResult with debug info
|
|
503
|
+
const storage = matcher.storage;
|
|
504
|
+
const matchResult = new MatchResult(new Map(storage));
|
|
505
|
+
return {
|
|
506
|
+
matched: true,
|
|
507
|
+
result: matchResult,
|
|
508
|
+
debugLog: matcher.getDebugLog()
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
else {
|
|
512
|
+
// Match failed - return explanation
|
|
513
|
+
return {
|
|
514
|
+
matched: false,
|
|
515
|
+
explanation: matcher.getExplanation(),
|
|
516
|
+
debugLog: matcher.getDebugLog()
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
}
|
|
241
521
|
}
|
|
242
522
|
exports.Pattern = Pattern;
|
|
523
|
+
Pattern.nextPatternId = 1;
|
|
243
524
|
/**
|
|
244
525
|
* Result of a successful pattern match containing captured values.
|
|
245
526
|
*
|
|
@@ -334,14 +615,18 @@ class Matcher {
|
|
|
334
615
|
* @param pattern The pattern to match
|
|
335
616
|
* @param ast The AST node to match against
|
|
336
617
|
* @param cursor Optional cursor at the AST node's position
|
|
618
|
+
* @param debugOptions Optional debug options for instrumentation
|
|
337
619
|
*/
|
|
338
|
-
constructor(pattern, ast, cursor) {
|
|
620
|
+
constructor(pattern, ast, cursor, debugOptions) {
|
|
339
621
|
this.pattern = pattern;
|
|
340
622
|
this.ast = ast;
|
|
341
623
|
// Unified storage: holds J for scalar captures, J.RightPadded<J>[] or J[] for variadic captures
|
|
342
624
|
this.storage = new Map();
|
|
625
|
+
this.debugLog = [];
|
|
626
|
+
this.currentPath = [];
|
|
343
627
|
// If no cursor provided, create one at the ast root so constraints can navigate up
|
|
344
628
|
this.cursor = cursor !== null && cursor !== void 0 ? cursor : new __1.Cursor(ast, undefined);
|
|
629
|
+
this.debugOptions = debugOptions !== null && debugOptions !== void 0 ? debugOptions : {};
|
|
345
630
|
}
|
|
346
631
|
/**
|
|
347
632
|
* Checks if the pattern matches the AST node.
|
|
@@ -392,6 +677,70 @@ class Matcher {
|
|
|
392
677
|
// Scalar element
|
|
393
678
|
return value;
|
|
394
679
|
}
|
|
680
|
+
/**
|
|
681
|
+
* Logs a debug message if debugging is enabled.
|
|
682
|
+
* Part of Layer 1 (Core Instrumentation).
|
|
683
|
+
*
|
|
684
|
+
* @param level The severity level
|
|
685
|
+
* @param scope The scope/category
|
|
686
|
+
* @param message The message to log
|
|
687
|
+
* @param data Optional data to include
|
|
688
|
+
*/
|
|
689
|
+
log(level, scope, message, data) {
|
|
690
|
+
if (!this.debugOptions.enabled)
|
|
691
|
+
return;
|
|
692
|
+
// Filter by scope if specific logging is requested
|
|
693
|
+
if (scope === 'comparison' && !this.debugOptions.logComparison)
|
|
694
|
+
return;
|
|
695
|
+
if (scope === 'constraint' && !this.debugOptions.logConstraints)
|
|
696
|
+
return;
|
|
697
|
+
this.debugLog.push({
|
|
698
|
+
level,
|
|
699
|
+
scope,
|
|
700
|
+
path: [...this.currentPath],
|
|
701
|
+
message,
|
|
702
|
+
data
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
/**
|
|
706
|
+
* Sets the explanation for why the pattern match failed.
|
|
707
|
+
* Only sets the first failure (most relevant).
|
|
708
|
+
* Part of Layer 1 (Core Instrumentation).
|
|
709
|
+
*
|
|
710
|
+
* @param reason The reason for failure
|
|
711
|
+
* @param expected Human-readable description of what was expected
|
|
712
|
+
* @param actual Human-readable description of what was found
|
|
713
|
+
* @param details Optional additional context
|
|
714
|
+
*/
|
|
715
|
+
setExplanation(reason, expected, actual, details) {
|
|
716
|
+
// Only set the first failure (most relevant)
|
|
717
|
+
if (this.explanation)
|
|
718
|
+
return;
|
|
719
|
+
this.explanation = {
|
|
720
|
+
reason,
|
|
721
|
+
path: [...this.currentPath],
|
|
722
|
+
expected,
|
|
723
|
+
actual,
|
|
724
|
+
details
|
|
725
|
+
};
|
|
726
|
+
}
|
|
727
|
+
/**
|
|
728
|
+
* Pushes a path component onto the current path.
|
|
729
|
+
* Used to track where in the AST tree we are during matching.
|
|
730
|
+
* Part of Layer 1 (Core Instrumentation).
|
|
731
|
+
*
|
|
732
|
+
* @param name The path component to push
|
|
733
|
+
*/
|
|
734
|
+
pushPath(name) {
|
|
735
|
+
this.currentPath.push(name);
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* Pops the last path component from the current path.
|
|
739
|
+
* Part of Layer 1 (Core Instrumentation).
|
|
740
|
+
*/
|
|
741
|
+
popPath() {
|
|
742
|
+
this.currentPath.pop();
|
|
743
|
+
}
|
|
395
744
|
/**
|
|
396
745
|
* Matches a pattern node against a target node.
|
|
397
746
|
*
|
|
@@ -401,40 +750,83 @@ class Matcher {
|
|
|
401
750
|
*/
|
|
402
751
|
matchNode(pattern, target) {
|
|
403
752
|
return __awaiter(this, void 0, void 0, function* () {
|
|
404
|
-
var _a;
|
|
753
|
+
var _a, _b, _c;
|
|
405
754
|
// Always delegate to the comparator visitor, which handles:
|
|
406
755
|
// - Capture detection and constraint evaluation
|
|
407
756
|
// - Kind checking
|
|
408
757
|
// - Deep structural comparison
|
|
409
758
|
// This centralizes all matching logic in one place
|
|
410
759
|
const lenientTypeMatching = (_a = this.pattern.options.lenientTypeMatching) !== null && _a !== void 0 ? _a : true;
|
|
411
|
-
|
|
760
|
+
// Factory pattern: instantiate debug or production comparator
|
|
761
|
+
// Zero cost in production - DebugPatternMatchingComparator is never instantiated
|
|
762
|
+
const matcherCallbacks = {
|
|
412
763
|
handleCapture: (capture, t, w) => this.handleCapture(capture, t, w),
|
|
413
764
|
handleVariadicCapture: (capture, ts, ws) => this.handleVariadicCapture(capture, ts, ws),
|
|
414
765
|
saveState: () => this.saveState(),
|
|
415
|
-
restoreState: (state) => this.restoreState(state)
|
|
416
|
-
|
|
766
|
+
restoreState: (state) => this.restoreState(state),
|
|
767
|
+
// Debug callbacks (Layer 1) - grouped together, always present or absent
|
|
768
|
+
debug: this.debugOptions.enabled ? {
|
|
769
|
+
log: (level, scope, message, data) => this.log(level, scope, message, data),
|
|
770
|
+
setExplanation: (reason, expected, actual, details) => this.setExplanation(reason, expected, actual, details),
|
|
771
|
+
getExplanation: () => this.explanation,
|
|
772
|
+
restoreExplanation: (explanation) => { this.explanation = explanation; },
|
|
773
|
+
clearExplanation: () => { this.explanation = undefined; },
|
|
774
|
+
pushPath: (name) => this.pushPath(name),
|
|
775
|
+
popPath: () => this.popPath()
|
|
776
|
+
} : undefined
|
|
777
|
+
};
|
|
778
|
+
const comparator = this.debugOptions.enabled
|
|
779
|
+
? new comparator_1.DebugPatternMatchingComparator(matcherCallbacks, lenientTypeMatching)
|
|
780
|
+
: new comparator_1.PatternMatchingComparator(matcherCallbacks, lenientTypeMatching);
|
|
417
781
|
// Pass cursors to allow constraints to navigate to root
|
|
418
782
|
// Pattern cursor is undefined (pattern is the root), target cursor is provided by user
|
|
419
|
-
|
|
783
|
+
const result = yield comparator.compare(pattern, target, undefined, this.cursor);
|
|
784
|
+
// If match failed and no explanation was set, provide a generic one
|
|
785
|
+
if (!result && this.debugOptions.enabled && !this.explanation) {
|
|
786
|
+
const patternKind = ((_b = pattern.kind) === null || _b === void 0 ? void 0 : _b.split('.').pop()) || 'unknown';
|
|
787
|
+
const targetKind = ((_c = target.kind) === null || _c === void 0 ? void 0 : _c.split('.').pop()) || 'unknown';
|
|
788
|
+
this.setExplanation('structural-mismatch', `Pattern node of type ${patternKind}`, `Target node of type ${targetKind}`, 'Nodes did not match structurally');
|
|
789
|
+
}
|
|
790
|
+
return result;
|
|
420
791
|
});
|
|
421
792
|
}
|
|
422
793
|
/**
|
|
423
|
-
* Saves the current state
|
|
794
|
+
* Saves the current state for backtracking.
|
|
795
|
+
* Includes both capture storage AND debug state (explanation, log, path).
|
|
424
796
|
*
|
|
425
797
|
* @returns A snapshot of the current state
|
|
426
798
|
*/
|
|
427
799
|
saveState() {
|
|
428
|
-
return
|
|
800
|
+
return {
|
|
801
|
+
storage: new Map(this.storage),
|
|
802
|
+
debugState: this.debugOptions.enabled ? {
|
|
803
|
+
explanation: this.explanation,
|
|
804
|
+
logLength: this.debugLog.length,
|
|
805
|
+
path: [...this.currentPath]
|
|
806
|
+
} : undefined
|
|
807
|
+
};
|
|
429
808
|
}
|
|
430
809
|
/**
|
|
431
810
|
* Restores a previously saved state for backtracking.
|
|
811
|
+
* Restores both capture storage AND debug state.
|
|
432
812
|
*
|
|
433
813
|
* @param state The state to restore
|
|
434
814
|
*/
|
|
435
815
|
restoreState(state) {
|
|
816
|
+
// Restore capture storage
|
|
436
817
|
this.storage.clear();
|
|
437
|
-
state.forEach((value, key) => this.storage.set(key, value));
|
|
818
|
+
state.storage.forEach((value, key) => this.storage.set(key, value));
|
|
819
|
+
// Restore debug state if it was saved
|
|
820
|
+
if (state.debugState) {
|
|
821
|
+
// Restore explanation to the saved state
|
|
822
|
+
// This clears any explanations set during failed exploratory attempts (like pivot detection)
|
|
823
|
+
this.explanation = state.debugState.explanation;
|
|
824
|
+
// Truncate debug log to saved length (remove entries added during failed attempt)
|
|
825
|
+
this.debugLog.length = state.debugState.logLength;
|
|
826
|
+
// Restore path
|
|
827
|
+
this.currentPath.length = 0;
|
|
828
|
+
this.currentPath.push(...state.debugState.path);
|
|
829
|
+
}
|
|
438
830
|
}
|
|
439
831
|
/**
|
|
440
832
|
* Handles a capture placeholder.
|
|
@@ -495,29 +887,43 @@ class Matcher {
|
|
|
495
887
|
}
|
|
496
888
|
return true;
|
|
497
889
|
}
|
|
890
|
+
/**
|
|
891
|
+
* Gets the debug log entries collected during matching.
|
|
892
|
+
* Part of Layer 2 (Public API).
|
|
893
|
+
*
|
|
894
|
+
* @returns The debug log entries, or undefined if debug wasn't enabled
|
|
895
|
+
*/
|
|
896
|
+
getDebugLog() {
|
|
897
|
+
return this.debugOptions.enabled ? [...this.debugLog] : undefined;
|
|
898
|
+
}
|
|
899
|
+
/**
|
|
900
|
+
* Gets the explanation for why the match failed.
|
|
901
|
+
* Part of Layer 2 (Public API).
|
|
902
|
+
*
|
|
903
|
+
* @returns The match explanation, or undefined if match succeeded or no explanation available
|
|
904
|
+
*/
|
|
905
|
+
getExplanation() {
|
|
906
|
+
return this.explanation;
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
// Implementation
|
|
910
|
+
function pattern(stringsOrOptions, ...captures) {
|
|
911
|
+
// Check if first arg is TemplateStringsArray (direct usage)
|
|
912
|
+
if (Array.isArray(stringsOrOptions) && 'raw' in stringsOrOptions) {
|
|
913
|
+
// Direct usage: pattern`...`
|
|
914
|
+
return createPattern(stringsOrOptions, captures, {});
|
|
915
|
+
}
|
|
916
|
+
// Options usage: pattern({ ... })`...`
|
|
917
|
+
const options = stringsOrOptions;
|
|
918
|
+
return (strings, ...caps) => {
|
|
919
|
+
return createPattern(strings, caps, options);
|
|
920
|
+
};
|
|
498
921
|
}
|
|
499
922
|
/**
|
|
500
|
-
*
|
|
501
|
-
*
|
|
502
|
-
* @param strings The string parts of the template
|
|
503
|
-
* @param captures The captures between the string parts (Capture, Any, RawCode, or string names)
|
|
504
|
-
* @returns A Pattern object
|
|
505
|
-
*
|
|
506
|
-
* @example
|
|
507
|
-
* // Using the same capture multiple times for repeated patterns
|
|
508
|
-
* const expr = capture('expr');
|
|
509
|
-
* const redundantOr = pattern`${expr} || ${expr}`;
|
|
510
|
-
*
|
|
511
|
-
* @example
|
|
512
|
-
* // Using any() for non-capturing matches
|
|
513
|
-
* const pat = pattern`foo(${any()})`;
|
|
514
|
-
*
|
|
515
|
-
* @example
|
|
516
|
-
* // Using raw() for dynamic pattern construction
|
|
517
|
-
* const operator = '===';
|
|
518
|
-
* const pat = pattern`x ${raw(operator)} y`;
|
|
923
|
+
* Internal helper to create a Pattern instance.
|
|
924
|
+
* @private
|
|
519
925
|
*/
|
|
520
|
-
function
|
|
926
|
+
function createPattern(strings, captures, options) {
|
|
521
927
|
const capturesByName = captures.reduce((map, c) => {
|
|
522
928
|
// Skip raw code - it's not a capture
|
|
523
929
|
if (c instanceof capture_1.RawCode || (typeof c === 'object' && c && c[capture_1.RAW_CODE_SYMBOL])) {
|
|
@@ -528,7 +934,7 @@ function pattern(strings, ...captures) {
|
|
|
528
934
|
const name = capture[capture_1.CAPTURE_NAME_SYMBOL] || capture.getName();
|
|
529
935
|
return map.set(name, capture);
|
|
530
936
|
}, new Map());
|
|
531
|
-
|
|
937
|
+
const pat = new Pattern(strings, captures.map(c => {
|
|
532
938
|
// Return raw code as-is
|
|
533
939
|
if (c instanceof capture_1.RawCode || (typeof c === 'object' && c && c[capture_1.RAW_CODE_SYMBOL])) {
|
|
534
940
|
return c;
|
|
@@ -537,5 +943,10 @@ function pattern(strings, ...captures) {
|
|
|
537
943
|
const name = typeof c === "string" ? c : (c[capture_1.CAPTURE_NAME_SYMBOL] || c.getName());
|
|
538
944
|
return capturesByName.get(name);
|
|
539
945
|
}));
|
|
946
|
+
// Apply options if provided
|
|
947
|
+
if (options && Object.keys(options).length > 0) {
|
|
948
|
+
pat.configure(options);
|
|
949
|
+
}
|
|
950
|
+
return pat;
|
|
540
951
|
}
|
|
541
952
|
//# sourceMappingURL=pattern.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"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"}
|