parseman 0.50.7 → 0.51.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.
Files changed (56) hide show
  1. package/dist/analysis/choice-cost.d.ts.map +1 -1
  2. package/dist/analysis/commitment.d.ts.map +1 -1
  3. package/dist/analysis/diagnostics.js +165 -21
  4. package/dist/analysis/diagnostics.js.map +2 -2
  5. package/dist/analysis/duplication.d.ts.map +1 -1
  6. package/dist/analysis/gating.d.ts.map +1 -1
  7. package/dist/cli/index.js +171 -22
  8. package/dist/cli/index.js.map +2 -2
  9. package/dist/combinators/dispatch.d.ts.map +1 -1
  10. package/dist/combinators/scanTo.d.ts +23 -1
  11. package/dist/combinators/scanTo.d.ts.map +1 -1
  12. package/dist/compiler/fields.d.ts.map +1 -1
  13. package/dist/compiler/grammar-coverage-ids.d.ts.map +1 -1
  14. package/dist/compiler/ir-serialize.d.ts.map +1 -1
  15. package/dist/compiler/token-capability.js +2 -2
  16. package/dist/compiler/token-capability.js.map +1 -1
  17. package/dist/coverage.d.ts.map +1 -1
  18. package/dist/cst/reflection.d.ts.map +1 -1
  19. package/dist/index.js +198 -30
  20. package/dist/index.js.map +2 -2
  21. package/dist/plugin/index.js +185 -27
  22. package/dist/plugin/index.js.map +2 -2
  23. package/dist/spec/index.js +127 -12
  24. package/dist/spec/index.js.map +2 -2
  25. package/dist/table/assemble.d.ts.map +1 -1
  26. package/dist/table/emit.d.ts.map +1 -1
  27. package/dist/table/encode.d.ts.map +1 -1
  28. package/dist/table/exec.d.ts.map +1 -1
  29. package/dist/table/index.js +171 -22
  30. package/dist/table/index.js.map +2 -2
  31. package/dist/table/program.d.ts +2 -0
  32. package/dist/table/program.d.ts.map +1 -1
  33. package/dist/types.d.ts +2 -0
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/version.d.ts +1 -1
  36. package/package.json +1 -1
  37. package/src/analysis/choice-cost.ts +6 -1
  38. package/src/analysis/commitment.ts +10 -2
  39. package/src/analysis/duplication.ts +7 -2
  40. package/src/analysis/gating.ts +6 -1
  41. package/src/analysis/rebuild.ts +1 -1
  42. package/src/combinators/dispatch.ts +4 -1
  43. package/src/combinators/scanTo.ts +163 -9
  44. package/src/compiler/fields.ts +8 -2
  45. package/src/compiler/grammar-coverage-ids.ts +6 -1
  46. package/src/compiler/ir-serialize.ts +14 -5
  47. package/src/compiler/token-alphabet.ts +1 -1
  48. package/src/coverage.ts +7 -1
  49. package/src/cst/reflection.ts +6 -1
  50. package/src/table/assemble.ts +11 -1
  51. package/src/table/emit.ts +4 -0
  52. package/src/table/encode.ts +6 -0
  53. package/src/table/exec.ts +7 -1
  54. package/src/table/program.ts +2 -0
  55. package/src/types.ts +1 -1
  56. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../src/table/assemble.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../src/table/assemble.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/table/emit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG/D,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,eAAe,CAAA;AAyHnD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAMhE;AAkFD,MAAM,MAAM,WAAW,GAAG;IACxB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAmED,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CAYlF;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAChD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,GAAE,qBAA0B,GAAG,MAAM,CAWhG;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAClD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,GAAE,iBAAsB,GAAG,MAAM,CA0B5F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAExD"}
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/table/emit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG/D,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,eAAe,CAAA;AA2HnD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,CAMhE;AAoFD,MAAM,MAAM,WAAW,GAAG;IACxB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAmED,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,GAAE,WAAgB,GAAG,MAAM,CAYlF;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG;IAChD;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,GAAE,qBAA0B,GAAG,MAAM,CAWhG;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAClD,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,GAAE,iBAAsB,GAAG,MAAM,CA0B5F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAExD"}
@@ -1 +1 @@
1
- {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/table/encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAuB,MAAM,aAAa,CAAA;AAwBhF,OAAO,KAAK,EAAmE,YAAY,EAAc,MAAM,cAAc,CAAA;AAS7H,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AA0B9E,8EAA8E;AAC9E,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,YAAY,GAAG,EAAE,MAAM,EAAqE;CAC7F;AAED,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACxC,CAAA;AAytDD,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC5C,QAAQ,GAAE,aAAkB,GAC3B,YAAY,CAEd;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC5C,QAAQ,GAAE,aAAkB,GAC3B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;CAAE,CA+BnD"}
1
+ {"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/table/encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAuB,MAAM,aAAa,CAAA;AAwBhF,OAAO,KAAK,EAAmE,YAAY,EAAc,MAAM,cAAc,CAAA;AAS7H,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AA0B9E,8EAA8E;AAC9E,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,YAAY,GAAG,EAAE,MAAM,EAAqE;CAC7F;AAED,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACxC,CAAA;AA+tDD,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC5C,QAAQ,GAAE,aAAkB,GAC3B,YAAY,CAEd;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC5C,QAAQ,GAAE,aAAkB,GAC3B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;CAAE,CA+BnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/table/exec.ts"],"names":[],"mappings":"AA6CA,OAAO,EAEL,KAAK,cAAc,EACF,KAAK,YAAY,EAAE,KAAK,SAAS,EACnD,MAAM,cAAc,CAAA;AA0BrB;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,+EAA+E;IAC/E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAChC;;;;;;;;;;;OAWG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,sFAAsF;IACtF,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAA;CAC+H,CAAA;AAUrJ,wBAAgB,kBAAkB,IAAI,IAAI,CASzC;AA4jDD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,YAAY,GAAG,cAAc;AACrC;;;;;;;;GAQG;AACH,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,EACjC,gBAAgB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CA8B3B"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/table/exec.ts"],"names":[],"mappings":"AA6CA,OAAO,EAEL,KAAK,cAAc,EACF,KAAK,YAAY,EAAE,KAAK,SAAS,EACnD,MAAM,cAAc,CAAA;AA0BrB;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,+EAA+E;IAC/E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAChC;;;;;;;;;;;OAWG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,sFAAsF;IACtF,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAA;CAC+H,CAAA;AAUrJ,wBAAgB,kBAAkB,IAAI,IAAI,CASzC;AAkkDD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,YAAY,GAAG,cAAc;AACrC;;;;;;;;GAQG;AACH,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,EACjC,gBAAgB,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CA8B3B"}
@@ -3500,7 +3500,7 @@ function resolveScanSkip(explicitSkip, raw, ctx) {
3500
3500
  out.push(...explicitSkip);
3501
3501
  return out;
3502
3502
  }
3503
- function scanTo(sentinel, { skip, raw = false, orEOF = false } = {}) {
3503
+ function scanTo(sentinel, { skip, raw = false, orEOF = false, recoverAt, stopAt } = {}) {
3504
3504
  const meta = {
3505
3505
  firstSet: any(),
3506
3506
  canMatchNewline: true,
@@ -3510,7 +3510,15 @@ function scanTo(sentinel, { skip, raw = false, orEOF = false } = {}) {
3510
3510
  return {
3511
3511
  _tag: "scanTo",
3512
3512
  _meta: meta,
3513
- _def: { tag: "scanTo", sentinel, skip: explicitSkip, raw, orEOF },
3513
+ _def: {
3514
+ tag: "scanTo",
3515
+ sentinel,
3516
+ skip: explicitSkip,
3517
+ raw,
3518
+ orEOF,
3519
+ ...recoverAt === void 0 ? {} : { recoverAt },
3520
+ ...stopAt === void 0 ? {} : { stopAt }
3521
+ },
3514
3522
  parse(input, pos, ctx) {
3515
3523
  let cur = pos;
3516
3524
  const skip2 = resolveScanSkip(explicitSkip, raw, ctx);
@@ -3522,28 +3530,130 @@ function scanTo(sentinel, { skip, raw = false, orEOF = false } = {}) {
3522
3530
  pushCstLeaf(ctx, leaf);
3523
3531
  }
3524
3532
  };
3525
- while (cur < input.length) {
3526
- const s = sentinel.parse(input, cur, probeCtx);
3527
- if (s.ok) {
3533
+ if (recoverAt === void 0 && stopAt === void 0) {
3534
+ while (cur < input.length) {
3535
+ const s = sentinel.parse(input, cur, probeCtx);
3536
+ if (s.ok) {
3537
+ if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, cur);
3538
+ emit(cur);
3539
+ return { ok: true, value: input.slice(pos, cur), span: { start: pos, end: cur } };
3540
+ }
3541
+ let advanced = false;
3542
+ for (const skipper of skip2) {
3543
+ const r = skipper.parse(input, cur, probeCtx);
3544
+ if (r.ok && r.span.end > cur) {
3545
+ cur = r.span.end;
3546
+ advanced = true;
3547
+ break;
3548
+ }
3549
+ }
3550
+ if (!advanced) cur++;
3551
+ }
3552
+ if (orEOF) {
3528
3553
  if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, cur);
3529
3554
  emit(cur);
3530
3555
  return { ok: true, value: input.slice(pos, cur), span: { start: pos, end: cur } };
3531
3556
  }
3557
+ const sentDef2 = sentinel._def;
3558
+ const expected2 = sentDef2.tag === "literal" ? [JSON.stringify(sentDef2.value)] : ["sentinel"];
3559
+ return { ok: false, expected: expected2, span: { start: pos, end: cur } };
3560
+ }
3561
+ let recovery = -1;
3562
+ let firstSentinel = -1;
3563
+ let sentinelCount = 0;
3564
+ let recoveryErrorCount = -1;
3565
+ let sentinelErrorCount = -1;
3566
+ const succeed = (end) => {
3567
+ if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, end);
3568
+ emit(end);
3569
+ return { ok: true, value: input.slice(pos, end), span: { start: pos, end } };
3570
+ };
3571
+ const recoveredEnd = () => {
3572
+ const acceptSentinel = firstSentinel >= 0 && (sentinelCount & 1) === 1;
3573
+ const errors = ctx._errors;
3574
+ if (errors !== void 0) {
3575
+ const keep = acceptSentinel ? sentinelErrorCount : recoveryErrorCount;
3576
+ if (keep >= 0 && errors.length > keep) errors.length = keep;
3577
+ }
3578
+ return acceptSentinel ? firstSentinel : recovery;
3579
+ };
3580
+ while (cur < input.length) {
3581
+ const sentinelProbeErrorCount = ctx._errors?.length ?? -1;
3582
+ const s = sentinel.parse(input, cur, probeCtx);
3583
+ const sentinelProbeErrors = ctx._errors;
3584
+ if (sentinelProbeErrors !== void 0 && sentinelProbeErrorCount >= 0 && sentinelProbeErrors.length > sentinelProbeErrorCount) {
3585
+ sentinelProbeErrors.length = sentinelProbeErrorCount;
3586
+ }
3587
+ if (s.ok) {
3588
+ if (recovery < 0) return succeed(cur);
3589
+ if (s.span.end <= cur) {
3590
+ throw new TypeError("scanTo recovery requires a sentinel that consumes input");
3591
+ }
3592
+ if (firstSentinel < 0) {
3593
+ firstSentinel = cur;
3594
+ sentinelErrorCount = sentinelProbeErrorCount;
3595
+ }
3596
+ sentinelCount++;
3597
+ cur = s.span.end;
3598
+ continue;
3599
+ }
3600
+ if (stopAt !== void 0) {
3601
+ const errorCount = ctx._errors?.length ?? -1;
3602
+ const stop = stopAt.parse(input, cur, probeCtx);
3603
+ const errors = ctx._errors;
3604
+ if (errors !== void 0 && errorCount >= 0 && errors.length > errorCount) {
3605
+ errors.length = errorCount;
3606
+ }
3607
+ if (stop.ok) {
3608
+ if (recovery < 0) {
3609
+ recovery = cur;
3610
+ recoveryErrorCount = errorCount;
3611
+ }
3612
+ return succeed(recoveredEnd());
3613
+ }
3614
+ }
3532
3615
  let advanced = false;
3533
3616
  for (const skipper of skip2) {
3617
+ const errorCount = ctx._errors?.length ?? -1;
3534
3618
  const r = skipper.parse(input, cur, probeCtx);
3535
3619
  if (r.ok && r.span.end > cur) {
3536
3620
  cur = r.span.end;
3537
3621
  advanced = true;
3538
3622
  break;
3539
3623
  }
3624
+ const errors = ctx._errors;
3625
+ if (errors !== void 0 && errorCount >= 0 && errors.length > errorCount) {
3626
+ errors.length = errorCount;
3627
+ }
3540
3628
  }
3541
- if (!advanced) cur++;
3629
+ if (advanced) continue;
3630
+ if (recoverAt !== void 0) {
3631
+ const errorCount = ctx._errors?.length ?? -1;
3632
+ const recover = recoverAt.parse(input, cur, probeCtx);
3633
+ const errors = ctx._errors;
3634
+ if (errors !== void 0 && errorCount >= 0 && errors.length > errorCount) {
3635
+ errors.length = errorCount;
3636
+ }
3637
+ if (recover.ok) {
3638
+ if (recover.span.end <= cur) {
3639
+ throw new TypeError("scanTo recoverAt must consume input");
3640
+ }
3641
+ if (recovery < 0) {
3642
+ recovery = cur;
3643
+ recoveryErrorCount = errorCount;
3644
+ }
3645
+ if (firstSentinel >= 0 && (sentinelCount & 1) === 1) {
3646
+ return succeed(recoveredEnd());
3647
+ }
3648
+ cur = recover.span.end;
3649
+ continue;
3650
+ }
3651
+ }
3652
+ cur++;
3542
3653
  }
3654
+ if (recovery >= 0) return succeed(recoveredEnd());
3543
3655
  if (orEOF) {
3544
- if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, cur);
3545
- emit(cur);
3546
- return { ok: true, value: input.slice(pos, cur), span: { start: pos, end: cur } };
3656
+ return succeed(cur);
3547
3657
  }
3548
3658
  const sentDef = sentinel._def;
3549
3659
  const expected = sentDef.tag === "literal" ? [JSON.stringify(sentDef.value)] : ["sentinel"];
@@ -3920,7 +4030,7 @@ function parserHasOwnFields(p, seen = /* @__PURE__ */ new Set()) {
3920
4030
  case "grammar":
3921
4031
  return parserHasOwnFields(d.parser, seen) || (d.triviaParser ? parserHasOwnFields(d.triviaParser, seen) : false);
3922
4032
  case "scanTo":
3923
- return parserHasOwnFields(d.sentinel, seen) || d.skip.some((x) => parserHasOwnFields(x, seen));
4033
+ return parserHasOwnFields(d.sentinel, seen) || d.skip.some((x) => parserHasOwnFields(x, seen)) || d.recoverAt !== void 0 && parserHasOwnFields(d.recoverAt, seen) || d.stopAt !== void 0 && parserHasOwnFields(d.stopAt, seen);
3924
4034
  case "recover":
3925
4035
  return parserHasOwnFields(d.parser, seen) || parserHasOwnFields(d.sentinel, seen);
3926
4036
  case "routed":
@@ -3974,7 +4084,7 @@ function parserUsesRouted(parser, seen = /* @__PURE__ */ new Set()) {
3974
4084
  case "grammar":
3975
4085
  return parserUsesRouted(def.parser, seen) || (def.triviaParser ? parserUsesRouted(def.triviaParser, seen) : false);
3976
4086
  case "scanTo":
3977
- return parserUsesRouted(def.sentinel, seen) || def.skip.some((entry) => parserUsesRouted(entry, seen));
4087
+ return parserUsesRouted(def.sentinel, seen) || def.skip.some((entry) => parserUsesRouted(entry, seen)) || def.recoverAt !== void 0 && parserUsesRouted(def.recoverAt, seen) || def.stopAt !== void 0 && parserUsesRouted(def.stopAt, seen);
3978
4088
  case "recover":
3979
4089
  return parserUsesRouted(def.parser, seen) || parserUsesRouted(def.sentinel, seen);
3980
4090
  case "lazy":
@@ -8248,6 +8358,8 @@ function assemble(t, prog, cfg) {
8248
8358
  for (const s of prog.scans ?? []) {
8249
8359
  for (const r of s.skip) labelExtraIps.push(r[0]);
8250
8360
  if (s.sentinel !== void 0) labelExtraIps.push(s.sentinel[0]);
8361
+ if (s.recoverAt !== void 0) labelExtraIps.push(s.recoverAt[0]);
8362
+ if (s.stopAt !== void 0) labelExtraIps.push(s.stopAt[0]);
8251
8363
  }
8252
8364
  for (const set of prog.scanSkip ?? []) for (const r of set) labelExtraIps.push(r[0]);
8253
8365
  const closureLabels = computeSiteLabels(
@@ -10933,6 +11045,8 @@ function assemble(t, prog, cfg) {
10933
11045
  for (const s of prog.scans ?? []) {
10934
11046
  for (const r of s.skip) extraIps.push(r[0]);
10935
11047
  if (s.sentinel !== void 0) extraIps.push(s.sentinel[0]);
11048
+ if (s.recoverAt !== void 0) extraIps.push(s.recoverAt[0]);
11049
+ if (s.stopAt !== void 0) extraIps.push(s.stopAt[0]);
10936
11050
  }
10937
11051
  for (const set of prog.scanSkip ?? []) for (const r of set) extraIps.push(r[0]);
10938
11052
  const roots = [...Object.values(prog.rules), ...extraIps];
@@ -11144,7 +11258,13 @@ function assemble(t, prog, cfg) {
11144
11258
  continue;
11145
11259
  }
11146
11260
  const sentDef = typeof s.sent === "string" ? { tag: "literal", value: s.sent, caseInsensitive: false } : void 0;
11147
- scansArr.push(scanTo(subtreeComb(s.sentinel, sentDef), { skip, raw, orEOF: (s.flags & 2) !== 0 }));
11261
+ scansArr.push(scanTo(subtreeComb(s.sentinel, sentDef), {
11262
+ skip,
11263
+ raw,
11264
+ orEOF: (s.flags & 2) !== 0,
11265
+ ...s.recoverAt === void 0 ? {} : { recoverAt: subtreeComb(s.recoverAt) },
11266
+ ...s.stopAt === void 0 ? {} : { stopAt: subtreeComb(s.stopAt) }
11267
+ }));
11148
11268
  }
11149
11269
  const scans = scansArr;
11150
11270
  const scanSkip = (prog.scanSkip ?? []).map((set) => set.map((r) => subtreeComb(r)));
@@ -11337,7 +11457,12 @@ function childrenOf(d) {
11337
11457
  case "recover":
11338
11458
  return [d.parser, d.sentinel];
11339
11459
  case "scanTo":
11340
- return [d.sentinel, ...d.skip];
11460
+ return [
11461
+ d.sentinel,
11462
+ ...d.skip,
11463
+ ...d.recoverAt === void 0 ? [] : [d.recoverAt],
11464
+ ...d.stopAt === void 0 ? [] : [d.stopAt]
11465
+ ];
11341
11466
  case "grammar":
11342
11467
  return d.triviaParser ? [d.parser, d.triviaParser] : [d.parser];
11343
11468
  case "routed":
@@ -11608,7 +11733,7 @@ function hasNodeDef(p, seen = /* @__PURE__ */ new Set()) {
11608
11733
  case "sepBy":
11609
11734
  return hasNodeDef(d.parser, seen) || hasNodeDef(d.separator, seen);
11610
11735
  case "scanTo":
11611
- return hasNodeDef(d.sentinel, seen) || d.skip.some((x) => hasNodeDef(x, seen));
11736
+ return hasNodeDef(d.sentinel, seen) || d.skip.some((x) => hasNodeDef(x, seen)) || d.recoverAt !== void 0 && hasNodeDef(d.recoverAt, seen) || d.stopAt !== void 0 && hasNodeDef(d.stopAt, seen);
11612
11737
  case "recover":
11613
11738
  return hasNodeDef(d.parser, seen) || hasNodeDef(d.sentinel, seen);
11614
11739
  case "expect":
@@ -11657,7 +11782,7 @@ function hasDirectBuildDef(p, seen = /* @__PURE__ */ new Set()) {
11657
11782
  case "sepBy":
11658
11783
  return hasDirectBuildDef(d.parser, seen) || hasDirectBuildDef(d.separator, seen);
11659
11784
  case "scanTo":
11660
- return hasDirectBuildDef(d.sentinel, seen) || d.skip.some((x) => hasDirectBuildDef(x, seen));
11785
+ return hasDirectBuildDef(d.sentinel, seen) || d.skip.some((x) => hasDirectBuildDef(x, seen)) || d.recoverAt !== void 0 && hasDirectBuildDef(d.recoverAt, seen) || d.stopAt !== void 0 && hasDirectBuildDef(d.stopAt, seen);
11661
11786
  case "recover":
11662
11787
  return hasDirectBuildDef(d.parser, seen) || hasDirectBuildDef(d.sentinel, seen);
11663
11788
  case "routed":
@@ -11694,7 +11819,7 @@ function mayCommitFailure(p, seen = /* @__PURE__ */ new Set(), resolve) {
11694
11819
  case "withCtx":
11695
11820
  return mayCommitFailure(d.parser, seen, resolve);
11696
11821
  case "scanTo":
11697
- return mayCommitFailure(d.sentinel, seen, resolve) || d.skip.some((x) => mayCommitFailure(x, seen, resolve));
11822
+ return mayCommitFailure(d.sentinel, seen, resolve) || d.skip.some((x) => mayCommitFailure(x, seen, resolve)) || d.recoverAt !== void 0 && mayCommitFailure(d.recoverAt, seen, resolve) || d.stopAt !== void 0 && mayCommitFailure(d.stopAt, seen, resolve);
11698
11823
  case "lazy": {
11699
11824
  try {
11700
11825
  return mayCommitFailure(d.thunk(), seen, resolve);
@@ -12837,6 +12962,8 @@ var Encoder = class {
12837
12962
  flags: (d.raw ? 1 : 0) | (d.orEOF ? 2 : 0),
12838
12963
  skip: d.skip.map((c) => this.subtree(c)),
12839
12964
  sentinel: this.subtree(d.sentinel),
12965
+ ...d.recoverAt === void 0 ? {} : { recoverAt: this.subtree(d.recoverAt) },
12966
+ ...d.stopAt === void 0 ? {} : { stopAt: this.subtree(d.stopAt) },
12840
12967
  sent: sentDef.tag === "literal" ? sentDef.value : null
12841
12968
  }));
12842
12969
  }
@@ -13270,6 +13397,8 @@ var Encoder = class {
13270
13397
  const refs = [];
13271
13398
  for (const s of this.scans) {
13272
13399
  if (s.sentinel !== void 0) refs.push(s.sentinel);
13400
+ if (s.recoverAt !== void 0) refs.push(s.recoverAt);
13401
+ if (s.stopAt !== void 0) refs.push(s.stopAt);
13273
13402
  refs.push(...s.skip);
13274
13403
  }
13275
13404
  for (const set of this.scanSkipSets) refs.push(...set);
@@ -13289,7 +13418,9 @@ var Encoder = class {
13289
13418
  this.scans = this.scans.map((s) => ({
13290
13419
  ...s,
13291
13420
  skip: s.skip.map(res),
13292
- ...s.sentinel === void 0 ? {} : { sentinel: res(s.sentinel) }
13421
+ ...s.sentinel === void 0 ? {} : { sentinel: res(s.sentinel) },
13422
+ ...s.recoverAt === void 0 ? {} : { recoverAt: res(s.recoverAt) },
13423
+ ...s.stopAt === void 0 ? {} : { stopAt: res(s.stopAt) }
13293
13424
  }));
13294
13425
  this.scanSkipSets = this.scanSkipSets.map((set) => set.map(res));
13295
13426
  }
@@ -13417,6 +13548,8 @@ function emitRef(r) {
13417
13548
  function emitScanSpec(s) {
13418
13549
  const parts = [`kind:${s.kind}`, `flags:${s.flags}`, `skip:[${s.skip.map(emitRef).join(",")}]`];
13419
13550
  if (s.sentinel !== void 0) parts.push(`sentinel:${emitRef(s.sentinel)}`);
13551
+ if (s.recoverAt !== void 0) parts.push(`recoverAt:${emitRef(s.recoverAt)}`);
13552
+ if (s.stopAt !== void 0) parts.push(`stopAt:${emitRef(s.stopAt)}`);
13420
13553
  if (s.sent !== void 0) parts.push(`sent:${s.sent === null ? "null" : jsString(s.sent)}`);
13421
13554
  if (s.open !== void 0) parts.push(`open:${jsString(s.open)}`);
13422
13555
  if (s.close !== void 0) parts.push(`close:${jsString(s.close)}`);
@@ -13443,6 +13576,8 @@ function emitAssemblies(prog, cfgs) {
13443
13576
  for (const s of prog.scans ?? []) {
13444
13577
  for (const r of s.skip) extraIps.push(r[0]);
13445
13578
  if (s.sentinel !== void 0) extraIps.push(s.sentinel[0]);
13579
+ if (s.recoverAt !== void 0) extraIps.push(s.recoverAt[0]);
13580
+ if (s.stopAt !== void 0) extraIps.push(s.stopAt[0]);
13446
13581
  }
13447
13582
  for (const set of prog.scanSkip ?? []) for (const r of set) extraIps.push(r[0]);
13448
13583
  const out = [];
@@ -13611,7 +13746,12 @@ function children(def, winners) {
13611
13746
  case "sepBy":
13612
13747
  return [def.parser, def.separator];
13613
13748
  case "scanTo":
13614
- return [def.sentinel, ...def.skip];
13749
+ return [
13750
+ def.sentinel,
13751
+ ...def.skip,
13752
+ ...def.recoverAt === void 0 ? [] : [def.recoverAt],
13753
+ ...def.stopAt === void 0 ? [] : [def.stopAt]
13754
+ ];
13615
13755
  case "lazy": {
13616
13756
  let resolved;
13617
13757
  try {
@@ -13724,7 +13864,7 @@ function payloadKey(p, d) {
13724
13864
  case "expect":
13725
13865
  return `expect\0${d.label ?? ""}\0${d.expected.join("")}`;
13726
13866
  case "scanTo":
13727
- return `scanTo\0${d.raw}\0${d.orEOF}`;
13867
+ return `scanTo\0${d.raw}\0${d.orEOF}\0${d.recoverAt !== void 0}\0${d.stopAt !== void 0}`;
13728
13868
  case "guard":
13729
13869
  return `guard\0${fnKey(d.predSrc, d.predicate)}`;
13730
13870
  case "adjacency":
@@ -13839,8 +13979,12 @@ function segment(d, index) {
13839
13979
  return index === 0 ? "sepBy.item" : "sepBy.sep";
13840
13980
  case "recover":
13841
13981
  return index === 0 ? "recover.body" : "recover.sentinel";
13842
- case "scanTo":
13843
- return index === 0 ? "scanTo.sentinel" : `scanTo.skip[${index - 1}]`;
13982
+ case "scanTo": {
13983
+ if (index === 0) return "scanTo.sentinel";
13984
+ if (index <= d.skip.length) return `scanTo.skip[${index - 1}]`;
13985
+ if (d.recoverAt !== void 0 && index === d.skip.length + 1) return "scanTo.recoverAt";
13986
+ return "scanTo.stopAt";
13987
+ }
13844
13988
  default:
13845
13989
  return d.tag;
13846
13990
  }
@@ -15100,7 +15244,12 @@ function childrenOf2(def) {
15100
15244
  case "sepBy":
15101
15245
  return [def.parser, def.separator];
15102
15246
  case "scanTo":
15103
- return [def.sentinel, ...def.skip];
15247
+ return [
15248
+ def.sentinel,
15249
+ ...def.skip,
15250
+ ...def.recoverAt === void 0 ? [] : [def.recoverAt],
15251
+ ...def.stopAt === void 0 ? [] : [def.stopAt]
15252
+ ];
15104
15253
  case "routed":
15105
15254
  return def.fallback ? [def.fallback] : [];
15106
15255
  case "literal":