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.
- package/dist/analysis/choice-cost.d.ts.map +1 -1
- package/dist/analysis/commitment.d.ts.map +1 -1
- package/dist/analysis/diagnostics.js +165 -21
- package/dist/analysis/diagnostics.js.map +2 -2
- package/dist/analysis/duplication.d.ts.map +1 -1
- package/dist/analysis/gating.d.ts.map +1 -1
- package/dist/cli/index.js +171 -22
- package/dist/cli/index.js.map +2 -2
- package/dist/combinators/dispatch.d.ts.map +1 -1
- package/dist/combinators/scanTo.d.ts +23 -1
- package/dist/combinators/scanTo.d.ts.map +1 -1
- package/dist/compiler/fields.d.ts.map +1 -1
- package/dist/compiler/grammar-coverage-ids.d.ts.map +1 -1
- package/dist/compiler/ir-serialize.d.ts.map +1 -1
- package/dist/compiler/token-capability.js +2 -2
- package/dist/compiler/token-capability.js.map +1 -1
- package/dist/coverage.d.ts.map +1 -1
- package/dist/cst/reflection.d.ts.map +1 -1
- package/dist/index.js +198 -30
- package/dist/index.js.map +2 -2
- package/dist/plugin/index.js +185 -27
- package/dist/plugin/index.js.map +2 -2
- package/dist/spec/index.js +127 -12
- package/dist/spec/index.js.map +2 -2
- package/dist/table/assemble.d.ts.map +1 -1
- package/dist/table/emit.d.ts.map +1 -1
- package/dist/table/encode.d.ts.map +1 -1
- package/dist/table/exec.d.ts.map +1 -1
- package/dist/table/index.js +171 -22
- package/dist/table/index.js.map +2 -2
- package/dist/table/program.d.ts +2 -0
- package/dist/table/program.d.ts.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/analysis/choice-cost.ts +6 -1
- package/src/analysis/commitment.ts +10 -2
- package/src/analysis/duplication.ts +7 -2
- package/src/analysis/gating.ts +6 -1
- package/src/analysis/rebuild.ts +1 -1
- package/src/combinators/dispatch.ts +4 -1
- package/src/combinators/scanTo.ts +163 -9
- package/src/compiler/fields.ts +8 -2
- package/src/compiler/grammar-coverage-ids.ts +6 -1
- package/src/compiler/ir-serialize.ts +14 -5
- package/src/compiler/token-alphabet.ts +1 -1
- package/src/coverage.ts +7 -1
- package/src/cst/reflection.ts +6 -1
- package/src/table/assemble.ts +11 -1
- package/src/table/emit.ts +4 -0
- package/src/table/encode.ts +6 -0
- package/src/table/exec.ts +7 -1
- package/src/table/program.ts +2 -0
- package/src/types.ts +1 -1
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../../src/analysis/duplication.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../../src/analysis/duplication.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gating.d.ts","sourceRoot":"","sources":["../../src/analysis/gating.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gating.d.ts","sourceRoot":"","sources":["../../src/analysis/gating.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -312,7 +312,12 @@ function childrenOf(d) {
|
|
|
312
312
|
case "recover":
|
|
313
313
|
return [d.parser, d.sentinel];
|
|
314
314
|
case "scanTo":
|
|
315
|
-
return [
|
|
315
|
+
return [
|
|
316
|
+
d.sentinel,
|
|
317
|
+
...d.skip,
|
|
318
|
+
...d.recoverAt === void 0 ? [] : [d.recoverAt],
|
|
319
|
+
...d.stopAt === void 0 ? [] : [d.stopAt]
|
|
320
|
+
];
|
|
316
321
|
case "grammar":
|
|
317
322
|
return d.triviaParser ? [d.parser, d.triviaParser] : [d.parser];
|
|
318
323
|
case "routed":
|
|
@@ -2157,7 +2162,12 @@ function childrenOf2(def) {
|
|
|
2157
2162
|
case "sepBy":
|
|
2158
2163
|
return [def.parser, def.separator];
|
|
2159
2164
|
case "scanTo":
|
|
2160
|
-
return [
|
|
2165
|
+
return [
|
|
2166
|
+
def.sentinel,
|
|
2167
|
+
...def.skip,
|
|
2168
|
+
...def.recoverAt === void 0 ? [] : [def.recoverAt],
|
|
2169
|
+
...def.stopAt === void 0 ? [] : [def.stopAt]
|
|
2170
|
+
];
|
|
2161
2171
|
case "routed":
|
|
2162
2172
|
return def.fallback ? [def.fallback] : [];
|
|
2163
2173
|
case "literal":
|
|
@@ -4228,7 +4238,7 @@ function parserUsesRouted(parser2, seen = /* @__PURE__ */ new Set()) {
|
|
|
4228
4238
|
case "grammar":
|
|
4229
4239
|
return parserUsesRouted(def.parser, seen) || (def.triviaParser ? parserUsesRouted(def.triviaParser, seen) : false);
|
|
4230
4240
|
case "scanTo":
|
|
4231
|
-
return parserUsesRouted(def.sentinel, seen) || def.skip.some((entry) => parserUsesRouted(entry, seen));
|
|
4241
|
+
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);
|
|
4232
4242
|
case "recover":
|
|
4233
4243
|
return parserUsesRouted(def.parser, seen) || parserUsesRouted(def.sentinel, seen);
|
|
4234
4244
|
case "lazy":
|
|
@@ -5198,7 +5208,7 @@ function parserHasOwnFields(p, seen = /* @__PURE__ */ new Set()) {
|
|
|
5198
5208
|
case "grammar":
|
|
5199
5209
|
return parserHasOwnFields(d.parser, seen) || (d.triviaParser ? parserHasOwnFields(d.triviaParser, seen) : false);
|
|
5200
5210
|
case "scanTo":
|
|
5201
|
-
return parserHasOwnFields(d.sentinel, seen) || d.skip.some((x) => parserHasOwnFields(x, seen));
|
|
5211
|
+
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);
|
|
5202
5212
|
case "recover":
|
|
5203
5213
|
return parserHasOwnFields(d.parser, seen) || parserHasOwnFields(d.sentinel, seen);
|
|
5204
5214
|
case "routed":
|
|
@@ -5575,7 +5585,7 @@ function resolveScanSkip(explicitSkip, raw, ctx) {
|
|
|
5575
5585
|
out.push(...explicitSkip);
|
|
5576
5586
|
return out;
|
|
5577
5587
|
}
|
|
5578
|
-
function scanTo(sentinel, { skip, raw = false, orEOF = false } = {}) {
|
|
5588
|
+
function scanTo(sentinel, { skip, raw = false, orEOF = false, recoverAt, stopAt } = {}) {
|
|
5579
5589
|
const meta = {
|
|
5580
5590
|
firstSet: any(),
|
|
5581
5591
|
canMatchNewline: true,
|
|
@@ -5585,7 +5595,15 @@ function scanTo(sentinel, { skip, raw = false, orEOF = false } = {}) {
|
|
|
5585
5595
|
return {
|
|
5586
5596
|
_tag: "scanTo",
|
|
5587
5597
|
_meta: meta,
|
|
5588
|
-
_def: {
|
|
5598
|
+
_def: {
|
|
5599
|
+
tag: "scanTo",
|
|
5600
|
+
sentinel,
|
|
5601
|
+
skip: explicitSkip,
|
|
5602
|
+
raw,
|
|
5603
|
+
orEOF,
|
|
5604
|
+
...recoverAt === void 0 ? {} : { recoverAt },
|
|
5605
|
+
...stopAt === void 0 ? {} : { stopAt }
|
|
5606
|
+
},
|
|
5589
5607
|
parse(input, pos, ctx) {
|
|
5590
5608
|
let cur = pos;
|
|
5591
5609
|
const skip2 = resolveScanSkip(explicitSkip, raw, ctx);
|
|
@@ -5597,28 +5615,130 @@ function scanTo(sentinel, { skip, raw = false, orEOF = false } = {}) {
|
|
|
5597
5615
|
pushCstLeaf(ctx, leaf2);
|
|
5598
5616
|
}
|
|
5599
5617
|
};
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5618
|
+
if (recoverAt === void 0 && stopAt === void 0) {
|
|
5619
|
+
while (cur < input.length) {
|
|
5620
|
+
const s = sentinel.parse(input, cur, probeCtx);
|
|
5621
|
+
if (s.ok) {
|
|
5622
|
+
if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, cur);
|
|
5623
|
+
emit(cur);
|
|
5624
|
+
return { ok: true, value: input.slice(pos, cur), span: { start: pos, end: cur } };
|
|
5625
|
+
}
|
|
5626
|
+
let advanced = false;
|
|
5627
|
+
for (const skipper of skip2) {
|
|
5628
|
+
const r = skipper.parse(input, cur, probeCtx);
|
|
5629
|
+
if (r.ok && r.span.end > cur) {
|
|
5630
|
+
cur = r.span.end;
|
|
5631
|
+
advanced = true;
|
|
5632
|
+
break;
|
|
5633
|
+
}
|
|
5634
|
+
}
|
|
5635
|
+
if (!advanced) cur++;
|
|
5636
|
+
}
|
|
5637
|
+
if (orEOF) {
|
|
5603
5638
|
if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, cur);
|
|
5604
5639
|
emit(cur);
|
|
5605
5640
|
return { ok: true, value: input.slice(pos, cur), span: { start: pos, end: cur } };
|
|
5606
5641
|
}
|
|
5642
|
+
const sentDef2 = sentinel._def;
|
|
5643
|
+
const expected2 = sentDef2.tag === "literal" ? [JSON.stringify(sentDef2.value)] : ["sentinel"];
|
|
5644
|
+
return { ok: false, expected: expected2, span: { start: pos, end: cur } };
|
|
5645
|
+
}
|
|
5646
|
+
let recovery = -1;
|
|
5647
|
+
let firstSentinel = -1;
|
|
5648
|
+
let sentinelCount = 0;
|
|
5649
|
+
let recoveryErrorCount = -1;
|
|
5650
|
+
let sentinelErrorCount = -1;
|
|
5651
|
+
const succeed = (end) => {
|
|
5652
|
+
if (ctx.trackLines) recordLineRangeFromContext(ctx, input, pos, end);
|
|
5653
|
+
emit(end);
|
|
5654
|
+
return { ok: true, value: input.slice(pos, end), span: { start: pos, end } };
|
|
5655
|
+
};
|
|
5656
|
+
const recoveredEnd = () => {
|
|
5657
|
+
const acceptSentinel = firstSentinel >= 0 && (sentinelCount & 1) === 1;
|
|
5658
|
+
const errors = ctx._errors;
|
|
5659
|
+
if (errors !== void 0) {
|
|
5660
|
+
const keep = acceptSentinel ? sentinelErrorCount : recoveryErrorCount;
|
|
5661
|
+
if (keep >= 0 && errors.length > keep) errors.length = keep;
|
|
5662
|
+
}
|
|
5663
|
+
return acceptSentinel ? firstSentinel : recovery;
|
|
5664
|
+
};
|
|
5665
|
+
while (cur < input.length) {
|
|
5666
|
+
const sentinelProbeErrorCount = ctx._errors?.length ?? -1;
|
|
5667
|
+
const s = sentinel.parse(input, cur, probeCtx);
|
|
5668
|
+
const sentinelProbeErrors = ctx._errors;
|
|
5669
|
+
if (sentinelProbeErrors !== void 0 && sentinelProbeErrorCount >= 0 && sentinelProbeErrors.length > sentinelProbeErrorCount) {
|
|
5670
|
+
sentinelProbeErrors.length = sentinelProbeErrorCount;
|
|
5671
|
+
}
|
|
5672
|
+
if (s.ok) {
|
|
5673
|
+
if (recovery < 0) return succeed(cur);
|
|
5674
|
+
if (s.span.end <= cur) {
|
|
5675
|
+
throw new TypeError("scanTo recovery requires a sentinel that consumes input");
|
|
5676
|
+
}
|
|
5677
|
+
if (firstSentinel < 0) {
|
|
5678
|
+
firstSentinel = cur;
|
|
5679
|
+
sentinelErrorCount = sentinelProbeErrorCount;
|
|
5680
|
+
}
|
|
5681
|
+
sentinelCount++;
|
|
5682
|
+
cur = s.span.end;
|
|
5683
|
+
continue;
|
|
5684
|
+
}
|
|
5685
|
+
if (stopAt !== void 0) {
|
|
5686
|
+
const errorCount = ctx._errors?.length ?? -1;
|
|
5687
|
+
const stop = stopAt.parse(input, cur, probeCtx);
|
|
5688
|
+
const errors = ctx._errors;
|
|
5689
|
+
if (errors !== void 0 && errorCount >= 0 && errors.length > errorCount) {
|
|
5690
|
+
errors.length = errorCount;
|
|
5691
|
+
}
|
|
5692
|
+
if (stop.ok) {
|
|
5693
|
+
if (recovery < 0) {
|
|
5694
|
+
recovery = cur;
|
|
5695
|
+
recoveryErrorCount = errorCount;
|
|
5696
|
+
}
|
|
5697
|
+
return succeed(recoveredEnd());
|
|
5698
|
+
}
|
|
5699
|
+
}
|
|
5607
5700
|
let advanced = false;
|
|
5608
5701
|
for (const skipper of skip2) {
|
|
5702
|
+
const errorCount = ctx._errors?.length ?? -1;
|
|
5609
5703
|
const r = skipper.parse(input, cur, probeCtx);
|
|
5610
5704
|
if (r.ok && r.span.end > cur) {
|
|
5611
5705
|
cur = r.span.end;
|
|
5612
5706
|
advanced = true;
|
|
5613
5707
|
break;
|
|
5614
5708
|
}
|
|
5709
|
+
const errors = ctx._errors;
|
|
5710
|
+
if (errors !== void 0 && errorCount >= 0 && errors.length > errorCount) {
|
|
5711
|
+
errors.length = errorCount;
|
|
5712
|
+
}
|
|
5615
5713
|
}
|
|
5616
|
-
if (
|
|
5714
|
+
if (advanced) continue;
|
|
5715
|
+
if (recoverAt !== void 0) {
|
|
5716
|
+
const errorCount = ctx._errors?.length ?? -1;
|
|
5717
|
+
const recover = recoverAt.parse(input, cur, probeCtx);
|
|
5718
|
+
const errors = ctx._errors;
|
|
5719
|
+
if (errors !== void 0 && errorCount >= 0 && errors.length > errorCount) {
|
|
5720
|
+
errors.length = errorCount;
|
|
5721
|
+
}
|
|
5722
|
+
if (recover.ok) {
|
|
5723
|
+
if (recover.span.end <= cur) {
|
|
5724
|
+
throw new TypeError("scanTo recoverAt must consume input");
|
|
5725
|
+
}
|
|
5726
|
+
if (recovery < 0) {
|
|
5727
|
+
recovery = cur;
|
|
5728
|
+
recoveryErrorCount = errorCount;
|
|
5729
|
+
}
|
|
5730
|
+
if (firstSentinel >= 0 && (sentinelCount & 1) === 1) {
|
|
5731
|
+
return succeed(recoveredEnd());
|
|
5732
|
+
}
|
|
5733
|
+
cur = recover.span.end;
|
|
5734
|
+
continue;
|
|
5735
|
+
}
|
|
5736
|
+
}
|
|
5737
|
+
cur++;
|
|
5617
5738
|
}
|
|
5739
|
+
if (recovery >= 0) return succeed(recoveredEnd());
|
|
5618
5740
|
if (orEOF) {
|
|
5619
|
-
|
|
5620
|
-
emit(cur);
|
|
5621
|
-
return { ok: true, value: input.slice(pos, cur), span: { start: pos, end: cur } };
|
|
5741
|
+
return succeed(cur);
|
|
5622
5742
|
}
|
|
5623
5743
|
const sentDef = sentinel._def;
|
|
5624
5744
|
const expected = sentDef.tag === "literal" ? [JSON.stringify(sentDef.value)] : ["sentinel"];
|
|
@@ -6131,7 +6251,7 @@ function hasNodeDef(p, seen = /* @__PURE__ */ new Set()) {
|
|
|
6131
6251
|
case "sepBy":
|
|
6132
6252
|
return hasNodeDef(d.parser, seen) || hasNodeDef(d.separator, seen);
|
|
6133
6253
|
case "scanTo":
|
|
6134
|
-
return hasNodeDef(d.sentinel, seen) || d.skip.some((x) => hasNodeDef(x, seen));
|
|
6254
|
+
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);
|
|
6135
6255
|
case "recover":
|
|
6136
6256
|
return hasNodeDef(d.parser, seen) || hasNodeDef(d.sentinel, seen);
|
|
6137
6257
|
case "expect":
|
|
@@ -6170,7 +6290,7 @@ function mayCommitFailure(p, seen = /* @__PURE__ */ new Set(), resolve2) {
|
|
|
6170
6290
|
case "withCtx":
|
|
6171
6291
|
return mayCommitFailure(d.parser, seen, resolve2);
|
|
6172
6292
|
case "scanTo":
|
|
6173
|
-
return mayCommitFailure(d.sentinel, seen, resolve2) || d.skip.some((x) => mayCommitFailure(x, seen, resolve2));
|
|
6293
|
+
return mayCommitFailure(d.sentinel, seen, resolve2) || d.skip.some((x) => mayCommitFailure(x, seen, resolve2)) || d.recoverAt !== void 0 && mayCommitFailure(d.recoverAt, seen, resolve2) || d.stopAt !== void 0 && mayCommitFailure(d.stopAt, seen, resolve2);
|
|
6174
6294
|
case "lazy": {
|
|
6175
6295
|
try {
|
|
6176
6296
|
return mayCommitFailure(d.thunk(), seen, resolve2);
|
|
@@ -8025,6 +8145,8 @@ var Encoder = class {
|
|
|
8025
8145
|
flags: (d.raw ? 1 : 0) | (d.orEOF ? 2 : 0),
|
|
8026
8146
|
skip: d.skip.map((c) => this.subtree(c)),
|
|
8027
8147
|
sentinel: this.subtree(d.sentinel),
|
|
8148
|
+
...d.recoverAt === void 0 ? {} : { recoverAt: this.subtree(d.recoverAt) },
|
|
8149
|
+
...d.stopAt === void 0 ? {} : { stopAt: this.subtree(d.stopAt) },
|
|
8028
8150
|
sent: sentDef.tag === "literal" ? sentDef.value : null
|
|
8029
8151
|
}));
|
|
8030
8152
|
}
|
|
@@ -8458,6 +8580,8 @@ var Encoder = class {
|
|
|
8458
8580
|
const refs = [];
|
|
8459
8581
|
for (const s of this.scans) {
|
|
8460
8582
|
if (s.sentinel !== void 0) refs.push(s.sentinel);
|
|
8583
|
+
if (s.recoverAt !== void 0) refs.push(s.recoverAt);
|
|
8584
|
+
if (s.stopAt !== void 0) refs.push(s.stopAt);
|
|
8461
8585
|
refs.push(...s.skip);
|
|
8462
8586
|
}
|
|
8463
8587
|
for (const set of this.scanSkipSets) refs.push(...set);
|
|
@@ -8477,7 +8601,9 @@ var Encoder = class {
|
|
|
8477
8601
|
this.scans = this.scans.map((s) => ({
|
|
8478
8602
|
...s,
|
|
8479
8603
|
skip: s.skip.map(res),
|
|
8480
|
-
...s.sentinel === void 0 ? {} : { sentinel: res(s.sentinel) }
|
|
8604
|
+
...s.sentinel === void 0 ? {} : { sentinel: res(s.sentinel) },
|
|
8605
|
+
...s.recoverAt === void 0 ? {} : { recoverAt: res(s.recoverAt) },
|
|
8606
|
+
...s.stopAt === void 0 ? {} : { stopAt: res(s.stopAt) }
|
|
8481
8607
|
}));
|
|
8482
8608
|
this.scanSkipSets = this.scanSkipSets.map((set) => set.map(res));
|
|
8483
8609
|
}
|
|
@@ -11914,6 +12040,8 @@ function assemble(t2, prog, cfg) {
|
|
|
11914
12040
|
for (const s of prog.scans ?? []) {
|
|
11915
12041
|
for (const r of s.skip) labelExtraIps.push(r[0]);
|
|
11916
12042
|
if (s.sentinel !== void 0) labelExtraIps.push(s.sentinel[0]);
|
|
12043
|
+
if (s.recoverAt !== void 0) labelExtraIps.push(s.recoverAt[0]);
|
|
12044
|
+
if (s.stopAt !== void 0) labelExtraIps.push(s.stopAt[0]);
|
|
11917
12045
|
}
|
|
11918
12046
|
for (const set of prog.scanSkip ?? []) for (const r of set) labelExtraIps.push(r[0]);
|
|
11919
12047
|
const closureLabels = computeSiteLabels(
|
|
@@ -14599,6 +14727,8 @@ function assemble(t2, prog, cfg) {
|
|
|
14599
14727
|
for (const s of prog.scans ?? []) {
|
|
14600
14728
|
for (const r of s.skip) extraIps.push(r[0]);
|
|
14601
14729
|
if (s.sentinel !== void 0) extraIps.push(s.sentinel[0]);
|
|
14730
|
+
if (s.recoverAt !== void 0) extraIps.push(s.recoverAt[0]);
|
|
14731
|
+
if (s.stopAt !== void 0) extraIps.push(s.stopAt[0]);
|
|
14602
14732
|
}
|
|
14603
14733
|
for (const set of prog.scanSkip ?? []) for (const r of set) extraIps.push(r[0]);
|
|
14604
14734
|
const roots = [...Object.values(prog.rules), ...extraIps];
|
|
@@ -14810,7 +14940,13 @@ function assemble(t2, prog, cfg) {
|
|
|
14810
14940
|
continue;
|
|
14811
14941
|
}
|
|
14812
14942
|
const sentDef = typeof s.sent === "string" ? { tag: "literal", value: s.sent, caseInsensitive: false } : void 0;
|
|
14813
|
-
scansArr.push(scanTo(subtreeComb(s.sentinel, sentDef), {
|
|
14943
|
+
scansArr.push(scanTo(subtreeComb(s.sentinel, sentDef), {
|
|
14944
|
+
skip,
|
|
14945
|
+
raw,
|
|
14946
|
+
orEOF: (s.flags & 2) !== 0,
|
|
14947
|
+
...s.recoverAt === void 0 ? {} : { recoverAt: subtreeComb(s.recoverAt) },
|
|
14948
|
+
...s.stopAt === void 0 ? {} : { stopAt: subtreeComb(s.stopAt) }
|
|
14949
|
+
}));
|
|
14814
14950
|
}
|
|
14815
14951
|
const scans = scansArr;
|
|
14816
14952
|
const scanSkip = (prog.scanSkip ?? []).map((set) => set.map((r) => subtreeComb(r)));
|
|
@@ -15027,6 +15163,8 @@ function emitRef(r) {
|
|
|
15027
15163
|
function emitScanSpec(s) {
|
|
15028
15164
|
const parts = [`kind:${s.kind}`, `flags:${s.flags}`, `skip:[${s.skip.map(emitRef).join(",")}]`];
|
|
15029
15165
|
if (s.sentinel !== void 0) parts.push(`sentinel:${emitRef(s.sentinel)}`);
|
|
15166
|
+
if (s.recoverAt !== void 0) parts.push(`recoverAt:${emitRef(s.recoverAt)}`);
|
|
15167
|
+
if (s.stopAt !== void 0) parts.push(`stopAt:${emitRef(s.stopAt)}`);
|
|
15030
15168
|
if (s.sent !== void 0) parts.push(`sent:${s.sent === null ? "null" : jsString(s.sent)}`);
|
|
15031
15169
|
if (s.open !== void 0) parts.push(`open:${jsString(s.open)}`);
|
|
15032
15170
|
if (s.close !== void 0) parts.push(`close:${jsString(s.close)}`);
|
|
@@ -15042,6 +15180,8 @@ function emitAssemblies(prog, cfgs) {
|
|
|
15042
15180
|
for (const s of prog.scans ?? []) {
|
|
15043
15181
|
for (const r of s.skip) extraIps.push(r[0]);
|
|
15044
15182
|
if (s.sentinel !== void 0) extraIps.push(s.sentinel[0]);
|
|
15183
|
+
if (s.recoverAt !== void 0) extraIps.push(s.recoverAt[0]);
|
|
15184
|
+
if (s.stopAt !== void 0) extraIps.push(s.stopAt[0]);
|
|
15045
15185
|
}
|
|
15046
15186
|
for (const set of prog.scanSkip ?? []) for (const r of set) extraIps.push(r[0]);
|
|
15047
15187
|
const out = [];
|
|
@@ -15184,7 +15324,12 @@ function children(def, winners) {
|
|
|
15184
15324
|
case "sepBy":
|
|
15185
15325
|
return [def.parser, def.separator];
|
|
15186
15326
|
case "scanTo":
|
|
15187
|
-
return [
|
|
15327
|
+
return [
|
|
15328
|
+
def.sentinel,
|
|
15329
|
+
...def.skip,
|
|
15330
|
+
...def.recoverAt === void 0 ? [] : [def.recoverAt],
|
|
15331
|
+
...def.stopAt === void 0 ? [] : [def.stopAt]
|
|
15332
|
+
];
|
|
15188
15333
|
case "lazy": {
|
|
15189
15334
|
let resolved;
|
|
15190
15335
|
try {
|
|
@@ -15297,7 +15442,7 @@ function payloadKey(p, d) {
|
|
|
15297
15442
|
case "expect":
|
|
15298
15443
|
return `expect\0${d.label ?? ""}\0${d.expected.join("")}`;
|
|
15299
15444
|
case "scanTo":
|
|
15300
|
-
return `scanTo\0${d.raw}\0${d.orEOF}`;
|
|
15445
|
+
return `scanTo\0${d.raw}\0${d.orEOF}\0${d.recoverAt !== void 0}\0${d.stopAt !== void 0}`;
|
|
15301
15446
|
case "guard":
|
|
15302
15447
|
return `guard\0${fnKey(d.predSrc, d.predicate)}`;
|
|
15303
15448
|
case "adjacency":
|
|
@@ -15412,8 +15557,12 @@ function segment(d, index) {
|
|
|
15412
15557
|
return index === 0 ? "sepBy.item" : "sepBy.sep";
|
|
15413
15558
|
case "recover":
|
|
15414
15559
|
return index === 0 ? "recover.body" : "recover.sentinel";
|
|
15415
|
-
case "scanTo":
|
|
15416
|
-
|
|
15560
|
+
case "scanTo": {
|
|
15561
|
+
if (index === 0) return "scanTo.sentinel";
|
|
15562
|
+
if (index <= d.skip.length) return `scanTo.skip[${index - 1}]`;
|
|
15563
|
+
if (d.recoverAt !== void 0 && index === d.skip.length + 1) return "scanTo.recoverAt";
|
|
15564
|
+
return "scanTo.stopAt";
|
|
15565
|
+
}
|
|
15417
15566
|
default:
|
|
15418
15567
|
return d.tag;
|
|
15419
15568
|
}
|
|
@@ -17725,7 +17874,7 @@ function subtreeContains(p, targets) {
|
|
|
17725
17874
|
const kids = [];
|
|
17726
17875
|
if (Array.isArray(rec.parsers)) kids.push(...rec.parsers);
|
|
17727
17876
|
if (Array.isArray(rec.skip)) kids.push(...rec.skip);
|
|
17728
|
-
for (const k of ["parser", "main", "skipped", "separator", "sentinel", "selector", "otherwise", "fallback", "triviaParser"])
|
|
17877
|
+
for (const k of ["parser", "main", "skipped", "separator", "sentinel", "recoverAt", "stopAt", "selector", "otherwise", "fallback", "triviaParser"])
|
|
17729
17878
|
if (rec[k]) kids.push(rec[k]);
|
|
17730
17879
|
if (d.tag === "dispatch") {
|
|
17731
17880
|
for (const c2 of d.cases) kids.push(c2.parser);
|