parseman 0.61.6 → 0.61.8
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/diagnostics.js +117 -33
- package/dist/analysis/diagnostics.js.map +2 -2
- package/dist/cli/index.js +117 -33
- package/dist/cli/index.js.map +2 -2
- package/dist/combinators/expect.d.ts.map +1 -1
- package/dist/combinators/first-set.d.ts +3 -1
- package/dist/combinators/first-set.d.ts.map +1 -1
- package/dist/compiler/token-capability.js +14 -10
- package/dist/compiler/token-capability.js.map +1 -1
- package/dist/index.js +117 -33
- package/dist/index.js.map +2 -2
- package/dist/plugin/index.js +117 -33
- package/dist/plugin/index.js.map +2 -2
- package/dist/table/assemble.d.ts.map +1 -1
- package/dist/table/emit-assembly.d.ts.map +1 -1
- package/dist/table/fail-clean.d.ts.map +1 -1
- package/dist/table/hold-gap.d.ts +3 -1
- package/dist/table/hold-gap.d.ts.map +1 -1
- package/dist/table/index.js +117 -33
- package/dist/table/index.js.map +2 -2
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/combinators/expect.ts +3 -2
- package/src/combinators/first-set.ts +14 -7
- package/src/combinators/sequence.ts +1 -1
- package/src/table/assemble.ts +38 -0
- package/src/table/emit-assembly.ts +42 -5
- package/src/table/encode.ts +1 -1
- package/src/table/fail-clean.ts +8 -4
- package/src/table/hold-gap.ts +22 -13
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../src/table/assemble.ts"],"names":[],"mappings":"AAmEA,OAAO,KAAK,EAAE,UAAU,EAAsB,YAAY,EAA0B,MAAM,aAAa,CAAA;AAkDvG;;;;;;;;;;;;GAYG;AACH,OAAO,EAGL,KAAK,cAAc,EAAsB,KAAK,aAAa,EAC1C,KAAK,YAAY,EAAE,KAAK,SAAS,EACnD,MAAM,cAAc,CAAA;AA4ErB;;;;;;;;;;;;;GAaG;AACH,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAA;AAgDvE;;;;;;;;GAQG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;IACpE,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB;;;;;;;OAOG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA;AAoBD,+CAA+C;AAC/C,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAExC;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAA;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,CAAA;AAED;;;;;GAKG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASzE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,
|
|
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-assembly.d.ts","sourceRoot":"","sources":["../../src/table/emit-assembly.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAS/C,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAC1D,MAAM,cAAc,CAAA;AAsBrB,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAA;AACrF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAC7C,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAA;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,MAAM,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,CAAA;IAClG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CACxC,CAAA;AACD,gFAAgF;AAChF,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,EAAE,SAAS,OAAO,EAAE,KAAK,eAAe,CAAA;AAE7E,iFAAiF;AACjF,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,YAAY,SAAS,EAAE,MAAM,EAI5B;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YACzB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAC5E,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EACxE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,QAAQ,EAC1G,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAC3E,qBAAqB,EAAE,cAAc,EAAE,mBAAmB,EAAE,2BAA2B,EACvF,eAAe,EAAE,6BAA6B,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAC/E,cAAc,EAAE,WAAW,EAO3B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAGjE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAEhC,SAAS,EAET,MAAM,EAAE,oBAAoB,EAE5B,oBAAoB,EAEpB,eAAe,EAAE,aAAa,EAG9B,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAElC,KAAK,CAIG,CAAA;
|
|
1
|
+
{"version":3,"file":"emit-assembly.d.ts","sourceRoot":"","sources":["../../src/table/emit-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fail-clean.d.ts","sourceRoot":"","sources":["../../src/table/fail-clean.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;AAwB/C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"fail-clean.d.ts","sourceRoot":"","sources":["../../src/table/fail-clean.ts"],"names":[],"mappings":"AA6BA,MAAM,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;AAwB/C,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAuFpE"}
|
package/dist/table/hold-gap.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Can the row at `ip` match empty? `true` wherever it cannot tell. A first-set
|
|
3
3
|
* gate row wraps only a child that cannot (`encode.ts` gates nothing nullable).
|
|
4
|
+
* An `expect` recovers at zero width whatever its child needs; with `recovers`
|
|
5
|
+
* false, this asks what the row can match empty without recovering.
|
|
4
6
|
*/
|
|
5
|
-
export declare function rowNullable(code: ArrayLike<number>, k: readonly unknown[], ip: number, memo: Map<number, boolean
|
|
7
|
+
export declare function rowNullable(code: ArrayLike<number>, k: readonly unknown[], ip: number, memo: Map<number, boolean>, recovers?: boolean): boolean;
|
|
6
8
|
/** Term `i` of the sequence at `seq` (terms from `base`, `n` of them) holds its gap. */
|
|
7
9
|
export declare function holdsGap(code: ArrayLike<number>, k: readonly unknown[], base: number, n: number, i: number, memo: Map<number, boolean>): boolean;
|
|
8
10
|
//# sourceMappingURL=hold-gap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hold-gap.d.ts","sourceRoot":"","sources":["../../src/table/hold-gap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hold-gap.d.ts","sourceRoot":"","sources":["../../src/table/hold-gap.ts"],"names":[],"mappings":"AAgCA;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,UAAO,GACtG,OAAO,CA4BT;AAED,wFAAwF;AACxF,wBAAgB,QAAQ,CACtB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7G,OAAO,CAOT"}
|
package/dist/table/index.js
CHANGED
|
@@ -198,8 +198,9 @@ function matchesEmptyBody(p, seen, resolve) {
|
|
|
198
198
|
case "optional":
|
|
199
199
|
case "not":
|
|
200
200
|
case "peek":
|
|
201
|
+
case "expect":
|
|
201
202
|
return true;
|
|
202
|
-
// zero repetitions / absent / lookahead
|
|
203
|
+
// zero repetitions / absent / lookahead / recovered
|
|
203
204
|
// Default `sepBy` is `(item (sep item)*)?` — it MATCHES THE EMPTY STRING.
|
|
204
205
|
// Any `min >= 1` requires that many ITEMS, so it is nullable only when the
|
|
205
206
|
// item is. (Keying this off `min === 1` reported every `{ min: 2 }` list as
|
|
@@ -220,7 +221,6 @@ function matchesEmptyBody(p, seen, resolve) {
|
|
|
220
221
|
case "trivia":
|
|
221
222
|
case "token":
|
|
222
223
|
case "leaf":
|
|
223
|
-
case "expect":
|
|
224
224
|
case "withCtx":
|
|
225
225
|
case "node":
|
|
226
226
|
case "grammar":
|
|
@@ -290,17 +290,17 @@ function sequenceSet(parsers, fs, empties, trivia2, consuming = true) {
|
|
|
290
290
|
function sequenceFirstSet(parsers) {
|
|
291
291
|
return sequenceSet(parsers, (p) => p._meta.firstSet, matchesEmpty, void 0, false);
|
|
292
292
|
}
|
|
293
|
-
function firstSetOf(p, seen = /* @__PURE__ */ new Set(), resolve, activeTrivia, consuming = true) {
|
|
293
|
+
function firstSetOf(p, seen = /* @__PURE__ */ new Set(), resolve, activeTrivia, consuming = true, follow = false) {
|
|
294
294
|
if (seen.has(p)) return any();
|
|
295
295
|
seen.add(p);
|
|
296
296
|
try {
|
|
297
|
-
return firstSetBody(p, seen, resolve, activeTrivia, consuming);
|
|
297
|
+
return firstSetBody(p, seen, resolve, activeTrivia, consuming, follow);
|
|
298
298
|
} finally {
|
|
299
299
|
seen.delete(p);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
|
-
function firstSetBody(p, seen, resolve, activeTrivia, consuming) {
|
|
303
|
-
const fs = (c) => firstSetOf(c, seen, resolve, activeTrivia, consuming);
|
|
302
|
+
function firstSetBody(p, seen, resolve, activeTrivia, consuming, follow) {
|
|
303
|
+
const fs = (c) => firstSetOf(c, seen, resolve, activeTrivia, consuming, follow);
|
|
304
304
|
const empties = (c) => matchesEmpty(c, /* @__PURE__ */ new Set(), resolve);
|
|
305
305
|
const d = p._def;
|
|
306
306
|
switch (d.tag) {
|
|
@@ -321,7 +321,7 @@ function firstSetBody(p, seen, resolve, activeTrivia, consuming) {
|
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
323
|
const through = activeTrivia === null && resolve !== void 0;
|
|
324
|
-
return firstSetOf(target, seen, resolve, through ? triviaThroughRef(p, target, null) : activeTrivia, consuming);
|
|
324
|
+
return firstSetOf(target, seen, resolve, through ? triviaThroughRef(p, target, null) : activeTrivia, consuming, follow);
|
|
325
325
|
}
|
|
326
326
|
case "choice": {
|
|
327
327
|
let out = empty();
|
|
@@ -331,6 +331,10 @@ function firstSetBody(p, seen, resolve, activeTrivia, consuming) {
|
|
|
331
331
|
case "sequence": {
|
|
332
332
|
return sequenceSet(d.parsers, fs, empties, activeTrivia, consuming);
|
|
333
333
|
}
|
|
334
|
+
// Runs on any character: on one its child can't start, it reports the error. A
|
|
335
|
+
// resync sentinel still stops where the child could start.
|
|
336
|
+
case "expect":
|
|
337
|
+
return follow ? fs(d.parser) : any();
|
|
334
338
|
case "peek": {
|
|
335
339
|
const inner = d.parser;
|
|
336
340
|
return empties(inner) ? any() : fs(inner);
|
|
@@ -344,7 +348,6 @@ function firstSetBody(p, seen, resolve, activeTrivia, consuming) {
|
|
|
344
348
|
case "leaf":
|
|
345
349
|
case "node":
|
|
346
350
|
case "sepBy":
|
|
347
|
-
case "expect":
|
|
348
351
|
// A transaction accepts exactly what its inner accepts. Its own `_meta` is
|
|
349
352
|
// the inner's construction-time set, which reads `any` when the inner opens
|
|
350
353
|
// with a rule reference — resolve through it like any other wrapper.
|
|
@@ -352,14 +355,15 @@ function firstSetBody(p, seen, resolve, activeTrivia, consuming) {
|
|
|
352
355
|
return fs(d.parser);
|
|
353
356
|
// A token runs its body with trivia cleared (`token.ts`).
|
|
354
357
|
case "token":
|
|
355
|
-
return firstSetOf(d.parser, seen, resolve, activeTrivia === void 0 ? void 0 : null, consuming);
|
|
358
|
+
return firstSetOf(d.parser, seen, resolve, activeTrivia === void 0 ? void 0 : null, consuming, follow);
|
|
356
359
|
case "grammar":
|
|
357
360
|
return firstSetOf(
|
|
358
361
|
d.parser,
|
|
359
362
|
seen,
|
|
360
363
|
resolve,
|
|
361
364
|
d.clearTrivia ? null : d.triviaParser ?? activeTrivia,
|
|
362
|
-
consuming
|
|
365
|
+
consuming,
|
|
366
|
+
follow
|
|
363
367
|
);
|
|
364
368
|
// A run starts with its first line's prefix; a nullable prefix starts with anything.
|
|
365
369
|
case "lines": {
|
|
@@ -1833,7 +1837,8 @@ function derive(c, seen) {
|
|
|
1833
1837
|
function expect(combinator, label2) {
|
|
1834
1838
|
const expected = label2 !== void 0 ? [label2] : deriveExpected(combinator);
|
|
1835
1839
|
const meta = {
|
|
1836
|
-
|
|
1840
|
+
// It runs on any character: on one its child can't start, it reports the error.
|
|
1841
|
+
firstSet: any(),
|
|
1837
1842
|
canMatchNewline: combinator._meta.canMatchNewline,
|
|
1838
1843
|
isTrivia: false
|
|
1839
1844
|
};
|
|
@@ -3636,7 +3641,7 @@ function regex(pattern, flags = "") {
|
|
|
3636
3641
|
}
|
|
3637
3642
|
|
|
3638
3643
|
// src/version.ts
|
|
3639
|
-
var PARSEMAN_VERSION = "0.61.
|
|
3644
|
+
var PARSEMAN_VERSION = "0.61.8";
|
|
3640
3645
|
|
|
3641
3646
|
// src/table/lex-body.ts
|
|
3642
3647
|
function buildLexBodyRecognizer(spec, constants) {
|
|
@@ -4776,7 +4781,7 @@ function sequence(...parsers) {
|
|
|
4776
4781
|
if (tolerant) {
|
|
4777
4782
|
followSentinels ??= parsers.map((_, i) => firstSetSentinel(
|
|
4778
4783
|
parsers.slice(i + 1).reduce(
|
|
4779
|
-
(set, parser2) => union(set, firstSetOf(parser2, /* @__PURE__ */ new Set(), void 0, void 0, false)),
|
|
4784
|
+
(set, parser2) => union(set, firstSetOf(parser2, /* @__PURE__ */ new Set(), void 0, void 0, false, true)),
|
|
4780
4785
|
{ kind: "empty" }
|
|
4781
4786
|
)
|
|
4782
4787
|
));
|
|
@@ -7427,17 +7432,17 @@ var WRAPPERS = /* @__PURE__ */ new Set([
|
|
|
7427
7432
|
OP_SCOPE_PLAIN,
|
|
7428
7433
|
OP_FIELD,
|
|
7429
7434
|
OP_LABEL,
|
|
7430
|
-
OP_EXPECT,
|
|
7431
7435
|
OP_WITHCTX,
|
|
7432
7436
|
OP_RULE,
|
|
7433
7437
|
OP_ATTEMPT,
|
|
7434
7438
|
OP_COV,
|
|
7435
7439
|
OP_GAPGATE
|
|
7436
7440
|
]);
|
|
7437
|
-
function rowNullable(code, k, ip, memo) {
|
|
7438
|
-
const
|
|
7441
|
+
function rowNullable(code, k, ip, memo, recovers = true) {
|
|
7442
|
+
const key = recovers ? ip : ~ip;
|
|
7443
|
+
const hit = memo.get(key);
|
|
7439
7444
|
if (hit !== void 0) return hit;
|
|
7440
|
-
memo.set(
|
|
7445
|
+
memo.set(key, true);
|
|
7441
7446
|
const op = code[ip];
|
|
7442
7447
|
const kids = [];
|
|
7443
7448
|
let out = true;
|
|
@@ -7448,20 +7453,20 @@ function rowNullable(code, k, ip, memo) {
|
|
|
7448
7453
|
out = !(re instanceof RegExp) || regexCanMatchEmpty(re.source);
|
|
7449
7454
|
} else if (op === OP_SEQ || op === OP_SEQV || op === OP_SEQX) {
|
|
7450
7455
|
childSlots(code, ip, kids);
|
|
7451
|
-
out = kids.every((c) => rowNullable(code, k, c, memo));
|
|
7456
|
+
out = kids.every((c) => rowNullable(code, k, c, memo, recovers));
|
|
7452
7457
|
} else if (op === OP_CHOICE) {
|
|
7453
7458
|
childSlots(code, ip, kids);
|
|
7454
|
-
out = kids.length === 0 || kids.some((c) => rowNullable(code, k, c, memo));
|
|
7459
|
+
out = kids.length === 0 || kids.some((c) => rowNullable(code, k, c, memo, recovers));
|
|
7455
7460
|
} else if (op === OP_REP || op === OP_REPV) {
|
|
7456
|
-
out = code[ip + 2] === 0 || rowNullable(code, k, code[ip + 1], memo);
|
|
7461
|
+
out = code[ip + 2] === 0 || rowNullable(code, k, code[ip + 1], memo, recovers);
|
|
7457
7462
|
} else if (op === OP_SEED) {
|
|
7458
|
-
out = rowNullable(code, k, code[ip + 1], memo);
|
|
7463
|
+
out = rowNullable(code, k, code[ip + 1], memo, recovers);
|
|
7459
7464
|
} else if (op === OP_CONT) {
|
|
7460
|
-
out = rowNullable(code, k, code[ip + 1], memo) && rowNullable(code, k, code[ip + 3], memo);
|
|
7461
|
-
} else if (WRAPPERS.has(op)) {
|
|
7462
|
-
if (childSlots(code, ip, kids) && kids.length === 1) out = rowNullable(code, k, kids[0], memo);
|
|
7465
|
+
out = rowNullable(code, k, code[ip + 1], memo, recovers) && rowNullable(code, k, code[ip + 3], memo, recovers);
|
|
7466
|
+
} else if (WRAPPERS.has(op) || op === OP_EXPECT && !recovers) {
|
|
7467
|
+
if (childSlots(code, ip, kids) && kids.length === 1) out = rowNullable(code, k, kids[0], memo, recovers);
|
|
7463
7468
|
}
|
|
7464
|
-
memo.set(
|
|
7469
|
+
memo.set(key, out);
|
|
7465
7470
|
return out;
|
|
7466
7471
|
}
|
|
7467
7472
|
function holdsGap(code, k, base, n, i, memo) {
|
|
@@ -7470,7 +7475,7 @@ function holdsGap(code, k, base, n, i, memo) {
|
|
|
7470
7475
|
if (code[term] !== OP_NOT && code[term] !== OP_PEEK) return false;
|
|
7471
7476
|
const next = code[base + i + 1];
|
|
7472
7477
|
if (code[next] === OP_ADJ || leadingTriviaFieldAt(code, k, next)) return false;
|
|
7473
|
-
return !rowNullable(code, k, next, memo);
|
|
7478
|
+
return !rowNullable(code, k, next, memo, false);
|
|
7474
7479
|
}
|
|
7475
7480
|
|
|
7476
7481
|
// src/table/gap-gate.ts
|
|
@@ -7792,11 +7797,35 @@ ${fast}
|
|
|
7792
7797
|
${scanned}
|
|
7793
7798
|
}`;
|
|
7794
7799
|
}
|
|
7795
|
-
|
|
7800
|
+
var TRIVIA_LOG_LENGTH = "ctx._cstBuf!==undefined?(ctx._cstBuf.tl!==undefined?ctx._cstBuf.tl.length:0):(ctx._cstTriviaLog!==undefined?ctx._cstTriviaLog.length:0)";
|
|
7801
|
+
function emitHoldTerm(callee, dst, t, l, skip, recovers) {
|
|
7796
7802
|
const fast = `const ${t}v=${callee}(input,cur,ctx)
|
|
7797
7803
|
if(${t}v===FAIL)return FAIL
|
|
7798
7804
|
${dst}=${t}v
|
|
7799
7805
|
cur=EC.e`;
|
|
7806
|
+
if (recovers) {
|
|
7807
|
+
const marked = `let ${t}c=cur,${t}s=cur,${t}tl=0,${t}stl=0,${t}lg=0,${t}slg=0,${t}rt=0,${t}srt=0`;
|
|
7808
|
+
if (l.tri === TRI_NONE) return `${marked}
|
|
7809
|
+
${fast}`;
|
|
7810
|
+
const held2 = `${t}tl=${TRIVIA_LOG_LENGTH}
|
|
7811
|
+
${t}lg=ctx._triviaLog!==undefined?ctx._triviaLog.length:0
|
|
7812
|
+
${t}rt=ctx._rootTriviaLog!==undefined?ctx._rootTriviaLog.length:0
|
|
7813
|
+
${t}s=${skip}(input,cur,ctx)
|
|
7814
|
+
${t}stl=${TRIVIA_LOG_LENGTH}
|
|
7815
|
+
${t}slg=ctx._triviaLog!==undefined?ctx._triviaLog.length:0
|
|
7816
|
+
${t}srt=ctx._rootTriviaLog!==undefined?ctx._rootTriviaLog.length:0
|
|
7817
|
+
const ${t}v=${callee}(input,${t}s,ctx)
|
|
7818
|
+
if(${t}v===FAIL)return FAIL
|
|
7819
|
+
${dst}=${t}v
|
|
7820
|
+
cur=${t}s`;
|
|
7821
|
+
return l.tri !== TRI_UNKNOWN ? `${marked}
|
|
7822
|
+
${held2}` : `${marked}
|
|
7823
|
+
if(ctx.trivia===undefined){
|
|
7824
|
+
${fast}
|
|
7825
|
+
}else{
|
|
7826
|
+
${held2}
|
|
7827
|
+
}`;
|
|
7828
|
+
}
|
|
7800
7829
|
if (l.tri === TRI_NONE) return fast;
|
|
7801
7830
|
const held = `const ${t}s=${skip}(input,cur,ctx)
|
|
7802
7831
|
const ${t}v=${callee}(input,${t}s,ctx)
|
|
@@ -7810,6 +7839,9 @@ ${fast}
|
|
|
7810
7839
|
${held}
|
|
7811
7840
|
}`;
|
|
7812
7841
|
}
|
|
7842
|
+
function emitHeldGapUndo(t) {
|
|
7843
|
+
return `if(cur===${t}s&&${t}s!==${t}c){rollbackScannedTriviaAt(ctx,${t}tl,${t}stl,${t}lg,${t}slg,${t}rt,${t}srt);cur=${t}c}`;
|
|
7844
|
+
}
|
|
7813
7845
|
function leadSkip(hasTrivia, leadTrivia, skip) {
|
|
7814
7846
|
if (hasTrivia === "false") return "{}";
|
|
7815
7847
|
const call = `itemStart=${skip}(input,itemStart,ctx)`;
|
|
@@ -8818,6 +8850,7 @@ return v
|
|
|
8818
8850
|
}
|
|
8819
8851
|
parts.push("let cur=EC.e");
|
|
8820
8852
|
const names = ["v0"];
|
|
8853
|
+
let heldUndo;
|
|
8821
8854
|
for (let i = 1; i < n; i++) {
|
|
8822
8855
|
const vn = `v${i}`;
|
|
8823
8856
|
parts.push(`let ${vn}`);
|
|
@@ -8834,7 +8867,16 @@ return v
|
|
|
8834
8867
|
);
|
|
8835
8868
|
} else {
|
|
8836
8869
|
const callee = leadingTriviaFieldAt(code, k, childIp) ? `(LEAD.at=cur,${kids[i]})` : kids[i];
|
|
8837
|
-
|
|
8870
|
+
if (holdsGap(code, k, base, n, i, nullable2)) {
|
|
8871
|
+
const t2 = tmp();
|
|
8872
|
+
const recovers = rowNullable(code, k, code[base + i + 1], nullable2);
|
|
8873
|
+
parts.push(emitHoldTerm(callee, vn, t2, L, skipFor(L), recovers));
|
|
8874
|
+
heldUndo = recovers ? t2 : void 0;
|
|
8875
|
+
} else {
|
|
8876
|
+
parts.push(emitTerm(callee, vn, tmp(), L, skipFor(L), L.tri >= 0 ? triviaMiss(L.tri) : void 0));
|
|
8877
|
+
if (heldUndo !== void 0) parts.push(emitHeldGapUndo(heldUndo));
|
|
8878
|
+
heldUndo = void 0;
|
|
8879
|
+
}
|
|
8838
8880
|
}
|
|
8839
8881
|
names.push(vn);
|
|
8840
8882
|
}
|
|
@@ -9770,11 +9812,15 @@ function failCleanAnalysis(code) {
|
|
|
9770
9812
|
case OP_CONT:
|
|
9771
9813
|
out = clean(code[ip + 1]) && neverFails(code[ip + 3]);
|
|
9772
9814
|
break;
|
|
9773
|
-
// An arm's failure and
|
|
9774
|
-
// not
|
|
9775
|
-
|
|
9776
|
-
|
|
9815
|
+
// An arm's failure and a committing fallback's are committed; only the
|
|
9816
|
+
// selector's is not. An uncommitted fallback's failure leaves the selector's
|
|
9817
|
+
// capture, unless the fallback reads it through `routed()`, which rolls that
|
|
9818
|
+
// capture back first. With no fallback, the dispatch fails after the selector wrote.
|
|
9819
|
+
case OP_DISPATCH: {
|
|
9820
|
+
const flags = code[ip + 4];
|
|
9821
|
+
out = code[ip + 3] >= 0 && ((flags & 2) === 0 || (flags & 1) === 1) && clean(code[ip + 1]);
|
|
9777
9822
|
break;
|
|
9823
|
+
}
|
|
9778
9824
|
default: {
|
|
9779
9825
|
const c = passChild(code, ip);
|
|
9780
9826
|
out = c >= 0 && clean(c);
|
|
@@ -11839,8 +11885,46 @@ function assemble(t, prog, cfg) {
|
|
|
11839
11885
|
}
|
|
11840
11886
|
if (hasAdj) {
|
|
11841
11887
|
const first2 = linkFirst();
|
|
11888
|
+
let heldFrom = 0, heldTl = 0, heldScanTl = 0, heldLog = 0, heldScanLog = 0, heldRoot = 0, heldScanRoot = 0;
|
|
11842
11889
|
const runnerAt = (i) => {
|
|
11843
11890
|
const kidIp = code[base + i];
|
|
11891
|
+
if (i > 1 && holdsGap(code, k, base, n, i - 1, NULLABLE) && rowNullable(code, k, kidIp, NULLABLE)) {
|
|
11892
|
+
const kid = link(kidIp);
|
|
11893
|
+
return (input, cur, ctx) => {
|
|
11894
|
+
const from = heldFrom, tl = heldTl, scanTl = heldScanTl, log = heldLog;
|
|
11895
|
+
const scanLog = heldScanLog, root = heldRoot, scanRoot = heldScanRoot;
|
|
11896
|
+
const next = step(kid, input, cur, ctx);
|
|
11897
|
+
if (next !== cur || from === cur) return next;
|
|
11898
|
+
rollbackScannedTriviaAt(ctx, tl, scanTl, log, scanLog, root, scanRoot);
|
|
11899
|
+
return from;
|
|
11900
|
+
};
|
|
11901
|
+
}
|
|
11902
|
+
if (holdsGap(code, k, base, n, i, NULLABLE) && rowNullable(code, k, code[base + i + 1], NULLABLE)) {
|
|
11903
|
+
const kid = link(kidIp);
|
|
11904
|
+
return (input, cur, ctx) => {
|
|
11905
|
+
if (ctx.trivia === void 0) {
|
|
11906
|
+
const v2 = kid(input, cur, ctx);
|
|
11907
|
+
if (v2 === FAIL) return -1;
|
|
11908
|
+
TERMV = v2;
|
|
11909
|
+
heldFrom = cur;
|
|
11910
|
+
return EC.e;
|
|
11911
|
+
}
|
|
11912
|
+
const tl = cstTlLen(ctx), log = ctx._triviaLog?.length ?? 0, root = ctx._rootTriviaLog?.length ?? 0;
|
|
11913
|
+
const scanEnd = skipTrivia(input, cur, ctx);
|
|
11914
|
+
const scanTl = cstTlLen(ctx), scanLog = ctx._triviaLog?.length ?? 0, scanRoot = ctx._rootTriviaLog?.length ?? 0;
|
|
11915
|
+
const v = kid(input, scanEnd, ctx);
|
|
11916
|
+
if (v === FAIL) return -1;
|
|
11917
|
+
TERMV = v;
|
|
11918
|
+
heldFrom = cur;
|
|
11919
|
+
heldTl = tl;
|
|
11920
|
+
heldScanTl = scanTl;
|
|
11921
|
+
heldLog = log;
|
|
11922
|
+
heldScanLog = scanLog;
|
|
11923
|
+
heldRoot = root;
|
|
11924
|
+
heldScanRoot = scanRoot;
|
|
11925
|
+
return scanEnd;
|
|
11926
|
+
};
|
|
11927
|
+
}
|
|
11844
11928
|
if (holdsGap(code, k, base, n, i, NULLABLE)) {
|
|
11845
11929
|
const kid = link(kidIp);
|
|
11846
11930
|
return (input, cur, ctx) => {
|
|
@@ -15446,7 +15530,7 @@ var Encoder = class {
|
|
|
15446
15530
|
let fs = { kind: "empty" };
|
|
15447
15531
|
const rr = this.refResolver();
|
|
15448
15532
|
for (let j = i + 1; j < parsers.length; j++) {
|
|
15449
|
-
fs = union(fs, firstSetOf(parsers[j], /* @__PURE__ */ new Set(), rr, void 0, false));
|
|
15533
|
+
fs = union(fs, firstSetOf(parsers[j], /* @__PURE__ */ new Set(), rr, void 0, false, true));
|
|
15450
15534
|
}
|
|
15451
15535
|
return this.charClass(fs);
|
|
15452
15536
|
}
|