parseman 0.60.4 → 0.60.6
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/commitment.d.ts.map +1 -1
- package/dist/analysis/diagnostics.js +31 -5
- package/dist/analysis/diagnostics.js.map +1 -1
- package/dist/cli/index.js +639 -613
- package/dist/cli/index.js.map +3 -3
- package/dist/combinators/parser.d.ts +34 -3
- package/dist/combinators/parser.d.ts.map +1 -1
- package/dist/combinators/trivia-boundary.d.ts +5 -3
- package/dist/combinators/trivia-boundary.d.ts.map +1 -1
- package/dist/compiler/compile-linkable-table.d.ts.map +1 -1
- package/dist/compiler/linker.d.ts +11 -3
- package/dist/compiler/linker.d.ts.map +1 -1
- package/dist/compiler/token-capability.js +6 -0
- package/dist/compiler/token-capability.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -25
- package/dist/index.js.map +1 -1
- package/dist/plugin/evaluator.d.ts +3 -1
- package/dist/plugin/evaluator.d.ts.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +116 -75
- package/dist/plugin/index.js.map +1 -1
- package/dist/spec/index.js +3 -1
- package/dist/spec/index.js.map +1 -1
- package/dist/spec/model.d.ts.map +1 -1
- package/dist/table/assemble.d.ts.map +1 -1
- package/dist/table/emit-assembly.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 +31 -5
- package/dist/table/index.js.map +1 -1
- package/dist/table/ops.d.ts +6 -0
- package/dist/table/ops.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/analysis/commitment.ts +3 -1
- package/src/combinators/grammar.ts +1 -1
- package/src/combinators/parser.ts +82 -9
- package/src/combinators/trivia-boundary.ts +11 -3
- package/src/compiler/compile-linkable-table.ts +4 -1
- package/src/compiler/ir-serialize.ts +10 -4
- package/src/compiler/linker.ts +22 -12
- package/src/index.ts +2 -1
- package/src/plugin/evaluator.ts +16 -5
- package/src/plugin/index.ts +27 -104
- package/src/spec/model.ts +3 -1
- package/src/table/assemble.ts +11 -1
- package/src/table/emit-assembly.ts +10 -1
- package/src/table/encode.ts +16 -9
- package/src/table/exec.ts +11 -9
- package/src/table/ops.ts +6 -0
- package/src/table/site-labels.ts +3 -3
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitment.d.ts","sourceRoot":"","sources":["../../src/analysis/commitment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAI9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAqCnG;AAkCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAiC1G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,EAAE,YAAY,UAAO,EACvF,YAAY,GAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,OAAO,CAAS,GACzE,OAAO,CAuHT;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAsDxG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAiCtG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAsC7G;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtB,OAAO,CAAC,EAAE,WAAW,EACrB,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAa,GAClD,OAAO,CAET;AAyDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG,IAAI,EAC5C,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GACpB,OAAO,CAkDT;AAwCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC7D;IAAE,iBAAiB,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"commitment.d.ts","sourceRoot":"","sources":["../../src/analysis/commitment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAI9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAqCnG;AAkCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAiC1G;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,EAAE,YAAY,UAAO,EACvF,YAAY,GAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,OAAO,CAAS,GACzE,OAAO,CAuHT;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAsDxG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAiCtG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAsC7G;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtB,OAAO,CAAC,EAAE,WAAW,EACrB,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAa,GAClD,OAAO,CAET;AAyDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,EAAE,GAAG,IAAI,EAC5C,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GACpB,OAAO,CAkDT;AAwCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC7D;IAAE,iBAAiB,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAE,CA0B5D"}
|
|
@@ -40,6 +40,12 @@ function hasOwnTriviaBoundary(p, depth = MAX_DEPTH) {
|
|
|
40
40
|
case "oneOrMore":
|
|
41
41
|
case "sepBy":
|
|
42
42
|
return true;
|
|
43
|
+
// A scope that names or clears trivia keeps an outer install out of its body.
|
|
44
|
+
// Any other inherits, so it falls through at no cost in depth: line tracking
|
|
45
|
+
// wraps every rule in one, and must not change what this walk sees.
|
|
46
|
+
case "grammar":
|
|
47
|
+
if (d.triviaParser || d.clearTrivia) return false;
|
|
48
|
+
depth++;
|
|
43
49
|
// Transparent wrappers — they add no position, so ask what they wrap.
|
|
44
50
|
case "node":
|
|
45
51
|
case "transform":
|
|
@@ -2469,7 +2475,7 @@ function parser(opts, root) {
|
|
|
2469
2475
|
ctx.triviaKindLabels = void 0;
|
|
2470
2476
|
} else if (scopeTrivia !== void 0) {
|
|
2471
2477
|
ctx.trivia = scopeTrivia;
|
|
2472
|
-
|
|
2478
|
+
ctx.triviaKindLabels = scopeLabels;
|
|
2473
2479
|
}
|
|
2474
2480
|
if (forceCaptureTrivia || _ctx?.captureTrivia) ctx.captureTrivia = true;
|
|
2475
2481
|
if (ownCaptureMask !== void 0) ctx._triviaCaptureMask = ownCaptureMask;
|
|
@@ -6615,6 +6621,7 @@ var OP_LIT_CI = 27;
|
|
|
6615
6621
|
var OP_LIT_CI_TRACK = 28;
|
|
6616
6622
|
var OP_TOKEN = 29;
|
|
6617
6623
|
var OP_SCOPE_CAP = 30;
|
|
6624
|
+
var SCOPE_INHERIT = -2;
|
|
6618
6625
|
var OP_WITHCTX = 31;
|
|
6619
6626
|
var OP_GUARD = 32;
|
|
6620
6627
|
var OP_ADJ = 33;
|
|
@@ -8764,7 +8771,7 @@ var Encoder = class {
|
|
|
8764
8771
|
this.triviaKnown = savedKnown;
|
|
8765
8772
|
if (d.clearTrivia === true) return this.emit(op, -1, bodyIp, flags);
|
|
8766
8773
|
if (d.triviaParser === void 0) {
|
|
8767
|
-
return cap
|
|
8774
|
+
return cap ? this.emit(op, SCOPE_INHERIT, bodyIp, flags) : bodyIp;
|
|
8768
8775
|
}
|
|
8769
8776
|
return this.emit(op, this.triviaSlot(d.triviaParser), bodyIp, flags);
|
|
8770
8777
|
}
|
|
@@ -10156,7 +10163,7 @@ function transfer(code, ip, at, hostCst) {
|
|
|
10156
10163
|
const op = code[ip];
|
|
10157
10164
|
if (op === OP_SCOPE || op === OP_SCOPE_CAP || op === OP_SCOPE_PLAIN) {
|
|
10158
10165
|
const ki = code[ip + 1];
|
|
10159
|
-
const tri = ki < 0 ? TRI_NONE : ki;
|
|
10166
|
+
const tri = ki === SCOPE_INHERIT ? at.tri : ki < 0 ? TRI_NONE : ki;
|
|
10160
10167
|
const cap = op === OP_SCOPE_CAP ? CAP_ON : at.cap;
|
|
10161
10168
|
if (tri === at.tri && cap === at.cap) return at;
|
|
10162
10169
|
return { tri, buf: at.buf, raw: at.raw, cap };
|
|
@@ -10230,7 +10237,7 @@ function scanHandoffNeeded(code, ip, labels) {
|
|
|
10230
10237
|
if (l.tri === TRI_UNKNOWN) return true;
|
|
10231
10238
|
const op = code[at];
|
|
10232
10239
|
if (op === OP_SCAN) return true;
|
|
10233
|
-
if (op === OP_TOKEN || op === OP_SCOPE_CAP) continue;
|
|
10240
|
+
if (op === OP_TOKEN || op === OP_SCOPE_CAP && code[at + 1] !== SCOPE_INHERIT) continue;
|
|
10234
10241
|
if ((op === OP_SCOPE_PLAIN || op === OP_SCOPE) && !(code[at + 1] >= 0 && l.tri === code[at + 1] && (op === OP_SCOPE_PLAIN || code[at + 3] === 0))) continue;
|
|
10235
10242
|
kids.length = 0;
|
|
10236
10243
|
if (!childSlots(code, at, kids)) return true;
|
|
@@ -11525,6 +11532,15 @@ return r.value
|
|
|
11525
11532
|
const cap = op === OP_SCOPE_CAP;
|
|
11526
11533
|
const flags = op === OP_SCOPE_PLAIN ? 0 : code[ip + 3];
|
|
11527
11534
|
const child = link(code[ip + 2]);
|
|
11535
|
+
if (ki === SCOPE_INHERIT) {
|
|
11536
|
+
return `${head}
|
|
11537
|
+
const sC=ctx.captureTrivia
|
|
11538
|
+
ctx.captureTrivia=true
|
|
11539
|
+
const v=${child}(input,pos,ctx)
|
|
11540
|
+
ctx.captureTrivia=sC
|
|
11541
|
+
return v
|
|
11542
|
+
}`;
|
|
11543
|
+
}
|
|
11528
11544
|
const scanFor = swapLegal && ki >= 0 && !triviaLabelled[ki] ? hoist("ts", `TRIVIASCAN[${ki}]`) : "null";
|
|
11529
11545
|
const tri = ki < 0 ? "undefined" : hoist("tv", `TRIVIA[${ki}]`);
|
|
11530
11546
|
const lab = ki < 0 ? "undefined" : hoist("tl", `TRIVIA[${ki}]._meta.triviaKindLabels`);
|
|
@@ -13270,7 +13286,7 @@ function clearOf(ranges, input, from, to) {
|
|
|
13270
13286
|
}
|
|
13271
13287
|
|
|
13272
13288
|
// src/version.ts
|
|
13273
|
-
var PARSEMAN_VERSION = "0.60.
|
|
13289
|
+
var PARSEMAN_VERSION = "0.60.6";
|
|
13274
13290
|
|
|
13275
13291
|
// src/table/assemble.ts
|
|
13276
13292
|
import { PlainBuf as PlainBuf2, PlainField, PlainLeaf as PlainLeaf9, PlainNode as PlainNode2, PlainSpan as PlainSpan10 } from "../cst/plain.js";
|
|
@@ -14787,6 +14803,16 @@ function assemble(t2, prog, cfg) {
|
|
|
14787
14803
|
case OP_SCOPE_CAP:
|
|
14788
14804
|
case OP_SCOPE_PLAIN: {
|
|
14789
14805
|
const ki = code[ip + 1];
|
|
14806
|
+
if (ki === SCOPE_INHERIT) {
|
|
14807
|
+
const body = link(code[ip + 2]);
|
|
14808
|
+
return (input, pos, ctx) => {
|
|
14809
|
+
const savedCap = ctx.captureTrivia;
|
|
14810
|
+
ctx.captureTrivia = true;
|
|
14811
|
+
const v = body(input, pos, ctx);
|
|
14812
|
+
ctx.captureTrivia = savedCap;
|
|
14813
|
+
return v;
|
|
14814
|
+
};
|
|
14815
|
+
}
|
|
14790
14816
|
const scopeTrivia = ki < 0 ? void 0 : trivia2[ki];
|
|
14791
14817
|
const scopeLabels = scopeTrivia?._meta.triviaKindLabels;
|
|
14792
14818
|
const scanFor = swapLegal && ki >= 0 && !triviaLabelled[ki] ? triviaScan[ki] : null;
|