parseman 0.51.1 → 0.51.2
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 +48 -15
- package/dist/analysis/diagnostics.js.map +1 -1
- package/dist/cli/index.js +50 -17
- package/dist/cli/index.js.map +1 -1
- package/dist/combinators/token.d.ts +8 -8
- package/dist/combinators/token.d.ts.map +1 -1
- package/dist/coverage.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -19
- package/dist/index.js.map +1 -1
- package/dist/plugin/evaluator.d.ts.map +1 -1
- package/dist/plugin/index.js +53 -20
- package/dist/plugin/index.js.map +1 -1
- package/dist/spec/index.js +27 -5
- package/dist/spec/index.js.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-baseline.d.ts.map +1 -1
- package/dist/table/exec-baseline.d.ts.map +1 -1
- package/dist/table/exec.d.ts.map +1 -1
- package/dist/table/index.js +373 -362
- package/dist/table/index.js.map +2 -2
- package/dist/table/ops.d.ts +2 -0
- package/dist/table/ops.d.ts.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/analysis/duplication.ts +1 -1
- package/src/analysis/rebuild.ts +2 -2
- package/src/combinators/token.ts +46 -3
- package/src/compiler/ir-serialize.ts +4 -4
- package/src/coverage.ts +2 -3
- package/src/index.ts +1 -1
- package/src/plugin/evaluator.ts +7 -4
- package/src/table/assemble.ts +8 -3
- package/src/table/child-slots.ts +2 -2
- package/src/table/emit-assembly.ts +5 -3
- package/src/table/encode-baseline.ts +3 -2
- package/src/table/encode.ts +3 -3
- package/src/table/exec-baseline.ts +30 -4
- package/src/table/exec.ts +8 -3
- package/src/table/ops.ts +3 -1
- package/src/table/scalar-terminal.ts +5 -5
- package/src/table/site-labels.ts +2 -2
- package/src/types.ts +1 -1
- package/src/version.ts +1 -1
|
@@ -7,16 +7,16 @@ import type { Combinator } from '../types.ts';
|
|
|
7
7
|
* for the full span, suppressing any internal terminal leaves.
|
|
8
8
|
*/
|
|
9
9
|
export declare function token(root: Combinator<unknown>): Combinator<string>;
|
|
10
|
+
export declare function leaf<T, U>(root: Combinator<T>, fn: (value: T, span: {
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}) => U): Combinator<U>;
|
|
10
14
|
/**
|
|
11
|
-
* Reduce a structural parser
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* a scoped `parser({ trivia })` inside the supplied grammar when that region has
|
|
15
|
-
* a local spacing rule. Internal CST captures are suppressed, while selected
|
|
16
|
-
* root-source trivia remains visible, and one leaf with the reducer's value and
|
|
17
|
-
* the complete consumed span is exposed to the parent.
|
|
15
|
+
* Reduce a structural parser semantically while exposing its matched source as
|
|
16
|
+
* one CST leaf. This keeps AST-only decoding out of the CST contract without a
|
|
17
|
+
* second source scan.
|
|
18
18
|
*/
|
|
19
|
-
export declare function
|
|
19
|
+
export declare function sourceLeaf<T, U>(root: Combinator<T>, fn: (value: T, span: {
|
|
20
20
|
start: number;
|
|
21
21
|
end: number;
|
|
22
22
|
}) => U): Combinator<U>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/combinators/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAyC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/combinators/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAyC,MAAM,aAAa,CAAA;AAcpF;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAuDnE;AAqED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EACvB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK,CAAC,GACxD,UAAU,CAAC,CAAC,CAAC,CAEf;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAC7B,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,KAAK,CAAC,GACxD,UAAU,CAAC,CAAC,CAAC,CAEf"}
|
package/dist/coverage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../src/coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAqC,YAAY,EAAe,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../src/coverage.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export type { BuildNode, NodeCombinator, NodeOptions, NodeProjectOptions } from
|
|
|
20
20
|
export { transform, trivia, classifiedTrivia, label, field } from './combinators/map.ts';
|
|
21
21
|
export { parse, parser, noTrivia } from './combinators/grammar.ts';
|
|
22
22
|
export type { ParseOptions, ParserOptions, ParsemanParser } from './combinators/grammar.ts';
|
|
23
|
-
export { token, leaf } from './combinators/token.ts';
|
|
23
|
+
export { token, leaf, sourceLeaf } from './combinators/token.ts';
|
|
24
24
|
export { compile } from './table/compile.ts';
|
|
25
25
|
export type { HostMode } from './cst/host-mode.ts';
|
|
26
26
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE7S,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAS9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AACtH,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACnL,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvG,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEvG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAClE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5138,6 +5138,12 @@ function field(name, combinator) {
|
|
|
5138
5138
|
}
|
|
5139
5139
|
|
|
5140
5140
|
// src/combinators/token.ts
|
|
5141
|
+
function semanticLeafValue(_ctx, _input, _start, _end, value) {
|
|
5142
|
+
return value;
|
|
5143
|
+
}
|
|
5144
|
+
function sourceLeafValue(ctx, input, start, end, value) {
|
|
5145
|
+
return cstOutputHost(ctx.build) ? input.slice(start, end) : value;
|
|
5146
|
+
}
|
|
5141
5147
|
function token(root) {
|
|
5142
5148
|
const meta = {
|
|
5143
5149
|
firstSet: root._meta.firstSet,
|
|
@@ -5190,7 +5196,8 @@ function token(root) {
|
|
|
5190
5196
|
}
|
|
5191
5197
|
};
|
|
5192
5198
|
}
|
|
5193
|
-
function
|
|
5199
|
+
function makeLeaf(root, fn, sourceCstValue) {
|
|
5200
|
+
const cstValue = sourceCstValue ? sourceLeafValue : semanticLeafValue;
|
|
5194
5201
|
const meta = {
|
|
5195
5202
|
firstSet: root._meta.firstSet,
|
|
5196
5203
|
canMatchNewline: root._meta.canMatchNewline,
|
|
@@ -5199,7 +5206,12 @@ function leaf(root, fn) {
|
|
|
5199
5206
|
return {
|
|
5200
5207
|
_tag: "leaf",
|
|
5201
5208
|
_meta: meta,
|
|
5202
|
-
_def: {
|
|
5209
|
+
_def: {
|
|
5210
|
+
tag: "leaf",
|
|
5211
|
+
parser: root,
|
|
5212
|
+
fn,
|
|
5213
|
+
...sourceCstValue ? { cstValue: "source" } : {}
|
|
5214
|
+
},
|
|
5203
5215
|
parse(input, pos, ctx) {
|
|
5204
5216
|
const savedBuf = ctx._cstBuf;
|
|
5205
5217
|
const savedChildren = ctx._cstChildren;
|
|
@@ -5227,11 +5239,21 @@ function leaf(root, fn) {
|
|
|
5227
5239
|
}
|
|
5228
5240
|
if (!result.ok) return result;
|
|
5229
5241
|
const value = fn(result.value, result.span);
|
|
5230
|
-
if (wasCapturing) pushCstLeaf(ctx, {
|
|
5242
|
+
if (wasCapturing) pushCstLeaf(ctx, {
|
|
5243
|
+
_tag: "leaf",
|
|
5244
|
+
value: cstValue(ctx, input, pos, result.span.end, value),
|
|
5245
|
+
span: result.span
|
|
5246
|
+
});
|
|
5231
5247
|
return { ok: true, value, span: result.span };
|
|
5232
5248
|
}
|
|
5233
5249
|
};
|
|
5234
5250
|
}
|
|
5251
|
+
function leaf(root, fn) {
|
|
5252
|
+
return makeLeaf(root, fn, false);
|
|
5253
|
+
}
|
|
5254
|
+
function sourceLeaf(root, fn) {
|
|
5255
|
+
return makeLeaf(root, fn, true);
|
|
5256
|
+
}
|
|
5235
5257
|
|
|
5236
5258
|
// src/analysis/gating.ts
|
|
5237
5259
|
function childrenOf2(d) {
|
|
@@ -6099,6 +6121,7 @@ var OP_COV = 40;
|
|
|
6099
6121
|
var OP_SCOPE_PLAIN = 41;
|
|
6100
6122
|
var OP_LEX_BODY = 42;
|
|
6101
6123
|
var OP_LEX_PROGRAM = 43;
|
|
6124
|
+
var OP_SOURCE_LEAF = 44;
|
|
6102
6125
|
var OP_DISPATCH = 25;
|
|
6103
6126
|
var OP_ROUTED = 26;
|
|
6104
6127
|
var OP_NAMES = {
|
|
@@ -6117,6 +6140,7 @@ var OP_NAMES = {
|
|
|
6117
6140
|
[OP_NOT]: "NOT",
|
|
6118
6141
|
[OP_PEEK]: "PEEK",
|
|
6119
6142
|
[OP_LEAF]: "LEAF",
|
|
6143
|
+
[OP_SOURCE_LEAF]: "SOURCE_LEAF",
|
|
6120
6144
|
[OP_EMPTY]: "EMPTY",
|
|
6121
6145
|
[OP_LIT_TRACK]: "LIT_TRACK",
|
|
6122
6146
|
[OP_RX_TRACK]: "RX_TRACK",
|
|
@@ -8069,7 +8093,7 @@ var Encoder = class {
|
|
|
8069
8093
|
}
|
|
8070
8094
|
case "leaf": {
|
|
8071
8095
|
const child = this.node(d.parser).ip;
|
|
8072
|
-
return this.emit(OP_LEAF, this.fn(d.fn, d.fnSrc ?? null), child);
|
|
8096
|
+
return this.emit(d.cstValue === "source" ? OP_SOURCE_LEAF : OP_LEAF, this.fn(d.fn, d.fnSrc ?? null), child);
|
|
8073
8097
|
}
|
|
8074
8098
|
case "node": {
|
|
8075
8099
|
if (d.type === void 0) missingInferredType();
|
|
@@ -8294,6 +8318,7 @@ var Encoder = class {
|
|
|
8294
8318
|
case OP_WITHCTX:
|
|
8295
8319
|
case OP_XFORM:
|
|
8296
8320
|
case OP_LEAF:
|
|
8321
|
+
case OP_SOURCE_LEAF:
|
|
8297
8322
|
case OP_NODE:
|
|
8298
8323
|
case OP_NODE_TRACK:
|
|
8299
8324
|
return [ip + 2];
|
|
@@ -9506,6 +9531,7 @@ function childSlots(code, ip, out) {
|
|
|
9506
9531
|
case OP_NODE_TRACK:
|
|
9507
9532
|
case OP_FIELD:
|
|
9508
9533
|
case OP_LEAF:
|
|
9534
|
+
case OP_SOURCE_LEAF:
|
|
9509
9535
|
case OP_ARMGATE:
|
|
9510
9536
|
out.push(code[ip + 2]);
|
|
9511
9537
|
return true;
|
|
@@ -9614,7 +9640,7 @@ function transfer(code, ip, at, hostCst) {
|
|
|
9614
9640
|
if (at.tri === TRI_NONE && !at.buf) return at;
|
|
9615
9641
|
return { tri: TRI_NONE, buf: false, raw: RAW_UNKNOWN, cap: at.cap };
|
|
9616
9642
|
}
|
|
9617
|
-
if (op === OP_LEAF) {
|
|
9643
|
+
if (op === OP_LEAF || op === OP_SOURCE_LEAF) {
|
|
9618
9644
|
if (!at.buf) return at;
|
|
9619
9645
|
return { tri: at.tri, buf: false, raw: RAW_UNKNOWN, cap: at.cap };
|
|
9620
9646
|
}
|
|
@@ -9701,7 +9727,7 @@ function leadingScalarTerminal(code, ip, minDepth = 2, throughAttempt = true, th
|
|
|
9701
9727
|
depth++;
|
|
9702
9728
|
continue;
|
|
9703
9729
|
}
|
|
9704
|
-
if (op === OP_GATE || op === OP_SCOPE || op === OP_SCOPE_CAP || op === OP_SCOPE_PLAIN || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || op === OP_LEAF) {
|
|
9730
|
+
if (op === OP_GATE || op === OP_SCOPE || op === OP_SCOPE_CAP || op === OP_SCOPE_PLAIN || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || (op === OP_LEAF || op === OP_SOURCE_LEAF)) {
|
|
9705
9731
|
at = code[at + 2];
|
|
9706
9732
|
depth++;
|
|
9707
9733
|
continue;
|
|
@@ -9734,7 +9760,7 @@ function leadingScalarSequence(code, ip) {
|
|
|
9734
9760
|
at2 = code[at2 + 1];
|
|
9735
9761
|
continue;
|
|
9736
9762
|
}
|
|
9737
|
-
if (op === OP_GATE || op === OP_SCOPE_PLAIN || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || op === OP_LEAF) {
|
|
9763
|
+
if (op === OP_GATE || op === OP_SCOPE_PLAIN || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || (op === OP_LEAF || op === OP_SOURCE_LEAF)) {
|
|
9738
9764
|
at2 = code[at2 + 2];
|
|
9739
9765
|
continue;
|
|
9740
9766
|
}
|
|
@@ -9767,7 +9793,7 @@ function leadingScalarSequence(code, ip) {
|
|
|
9767
9793
|
at = code[at + 2];
|
|
9768
9794
|
continue;
|
|
9769
9795
|
}
|
|
9770
|
-
if (op === OP_GATE || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || op === OP_LEAF) {
|
|
9796
|
+
if (op === OP_GATE || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || (op === OP_LEAF || op === OP_SOURCE_LEAF)) {
|
|
9771
9797
|
at = code[at + 2];
|
|
9772
9798
|
continue;
|
|
9773
9799
|
}
|
|
@@ -9797,7 +9823,7 @@ function leadingLiteralFamily(code, constants, ip, minDepth = 2, limit = 4) {
|
|
|
9797
9823
|
if (op === OP_RULE || op === OP_LABEL || op === OP_TOKEN || op === OP_ATTEMPT || op === OP_PEEK) {
|
|
9798
9824
|
return walk(code[at + 1], depth + 1);
|
|
9799
9825
|
}
|
|
9800
|
-
if (op === OP_GATE || op === OP_SCOPE || op === OP_SCOPE_CAP || op === OP_SCOPE_PLAIN || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || op === OP_LEAF) {
|
|
9826
|
+
if (op === OP_GATE || op === OP_SCOPE || op === OP_SCOPE_CAP || op === OP_SCOPE_PLAIN || op === OP_XFORM || op === OP_NODE || op === OP_FIELD || (op === OP_LEAF || op === OP_SOURCE_LEAF)) {
|
|
9801
9827
|
return walk(code[at + 2], depth + 1);
|
|
9802
9828
|
}
|
|
9803
9829
|
if (op === OP_SEQ || op === OP_SEQV) {
|
|
@@ -10683,8 +10709,10 @@ ${rootCap ? "ctx._rootTriviaCapture=sR\n" : ""}return v
|
|
|
10683
10709
|
}
|
|
10684
10710
|
/* ── boundaries ──────────────────────────────────────────────────────── */
|
|
10685
10711
|
case OP_TOKEN:
|
|
10686
|
-
case OP_LEAF:
|
|
10712
|
+
case OP_LEAF:
|
|
10713
|
+
case OP_SOURCE_LEAF: {
|
|
10687
10714
|
const isToken = op === OP_TOKEN;
|
|
10715
|
+
const capturesSource = isToken || op === OP_SOURCE_LEAF && hostCst;
|
|
10688
10716
|
const fn = isToken ? void 0 : fnRef(code[ip + 1]);
|
|
10689
10717
|
const child = link(isToken ? code[ip + 1] : code[ip + 2]);
|
|
10690
10718
|
const wasCap = L.buf ? "true" : "(ctx._cstBuf!==undefined||ctx._cstLeaves!==undefined)";
|
|
@@ -10717,7 +10745,7 @@ ctx._triviaLog=sOtl
|
|
|
10717
10745
|
if(v===FAIL)return FAIL
|
|
10718
10746
|
const e=EC.e
|
|
10719
10747
|
const out=${isToken ? "input.slice(pos,e)" : `${fn}(v,{start:pos,end:e})`}
|
|
10720
|
-
if(wasCap)pushCstLeaf(ctx,{_tag:'leaf',value:out,span:{start:pos,end:e}})
|
|
10748
|
+
if(wasCap)pushCstLeaf(ctx,{_tag:'leaf',value:${capturesSource ? "input.slice(pos,e)" : "out"},span:{start:pos,end:e}})
|
|
10721
10749
|
EC.e=e
|
|
10722
10750
|
return out
|
|
10723
10751
|
}`;
|
|
@@ -13387,7 +13415,8 @@ function assemble(t, prog, cfg) {
|
|
|
13387
13415
|
return value;
|
|
13388
13416
|
};
|
|
13389
13417
|
}
|
|
13390
|
-
case OP_LEAF:
|
|
13418
|
+
case OP_LEAF:
|
|
13419
|
+
case OP_SOURCE_LEAF: {
|
|
13391
13420
|
const fn = fns[code[ip + 1]];
|
|
13392
13421
|
const child = link(code[ip + 2]);
|
|
13393
13422
|
return (input, pos, ctx) => {
|
|
@@ -13415,7 +13444,11 @@ function assemble(t, prog, cfg) {
|
|
|
13415
13444
|
if (v === FAIL) return FAIL;
|
|
13416
13445
|
const end = EC.e;
|
|
13417
13446
|
const out = fn(v, { start: pos, end });
|
|
13418
|
-
if (wasCapturing) pushCstLeaf(ctx, {
|
|
13447
|
+
if (wasCapturing) pushCstLeaf(ctx, {
|
|
13448
|
+
_tag: "leaf",
|
|
13449
|
+
value: op === OP_SOURCE_LEAF && hostCst ? input.slice(pos, end) : out,
|
|
13450
|
+
span: { start: pos, end }
|
|
13451
|
+
});
|
|
13419
13452
|
EC.e = end;
|
|
13420
13453
|
return out;
|
|
13421
13454
|
};
|
|
@@ -15456,7 +15489,7 @@ function payloadKey(p, d) {
|
|
|
15456
15489
|
case "transform":
|
|
15457
15490
|
return `transform\0${fnKey(d.fnSrc, d.fn)}\0${d.recognitionOnly === true}`;
|
|
15458
15491
|
case "leaf":
|
|
15459
|
-
return `leaf\0${fnKey(d.fnSrc, d.fn)}`;
|
|
15492
|
+
return `leaf\0${d.cstValue ?? "value"}\0${fnKey(d.fnSrc, d.fn)}`;
|
|
15460
15493
|
case "many":
|
|
15461
15494
|
case "oneOrMore":
|
|
15462
15495
|
return `${d.tag}\0${d.min}\0${d.max ?? ""}`;
|
|
@@ -16945,7 +16978,7 @@ function evalRuleMapIR(ir) {
|
|
|
16945
16978
|
if (recognitionOnly) t._def.recognitionOnly = true;
|
|
16946
16979
|
return t;
|
|
16947
16980
|
};
|
|
16948
|
-
const _lf = (child, src) => {
|
|
16981
|
+
const _lf = (child, src, source = false) => {
|
|
16949
16982
|
let fn2;
|
|
16950
16983
|
try {
|
|
16951
16984
|
fn2 = (0, eval)(`(${src})`);
|
|
@@ -16954,7 +16987,7 @@ function evalRuleMapIR(ir) {
|
|
|
16954
16987
|
throw new Error("IR leaf fn not materialized");
|
|
16955
16988
|
};
|
|
16956
16989
|
}
|
|
16957
|
-
const l = leaf(child, fn2);
|
|
16990
|
+
const l = source ? sourceLeaf(child, fn2) : leaf(child, fn2);
|
|
16958
16991
|
l._def.fnSrc = src;
|
|
16959
16992
|
return l;
|
|
16960
16993
|
};
|
|
@@ -17357,7 +17390,7 @@ ${outerDecls.map((d) => " " + d).join("\n")}
|
|
|
17357
17390
|
return `token(${kid(def.parser)})`;
|
|
17358
17391
|
case "leaf": {
|
|
17359
17392
|
if (def.fnSrc === void 0) throw new Unserializable("leaf without fnSrc");
|
|
17360
|
-
return `_lf(${kid(def.parser)}, ${JSON.stringify(def.fnSrc)})`;
|
|
17393
|
+
return `_lf(${kid(def.parser)}, ${JSON.stringify(def.fnSrc)}${def.cstValue === "source" ? ", true" : ""})`;
|
|
17361
17394
|
}
|
|
17362
17395
|
case "label":
|
|
17363
17396
|
return `label(${JSON.stringify(def.label)}, ${kid(def.parser)})`;
|
|
@@ -17546,7 +17579,7 @@ function compileRuleMap(ruleMap, opts = {}) {
|
|
|
17546
17579
|
}
|
|
17547
17580
|
|
|
17548
17581
|
// src/version.ts
|
|
17549
|
-
var PARSEMAN_VERSION = "0.51.
|
|
17582
|
+
var PARSEMAN_VERSION = "0.51.2";
|
|
17550
17583
|
|
|
17551
17584
|
// src/compiler/compile-linkable-table.ts
|
|
17552
17585
|
function isLocal(rule) {
|
|
@@ -20259,7 +20292,7 @@ function coverageEntry(entry, collector, maps, trace) {
|
|
|
20259
20292
|
case "token":
|
|
20260
20293
|
return token(build(def.parser));
|
|
20261
20294
|
case "leaf":
|
|
20262
|
-
return leaf(build(def.parser), def.fn);
|
|
20295
|
+
return def.cstValue === "source" ? sourceLeaf(build(def.parser), def.fn) : leaf(build(def.parser), def.fn);
|
|
20263
20296
|
case "field":
|
|
20264
20297
|
return field(def.name, build(def.parser));
|
|
20265
20298
|
case "grammar":
|
|
@@ -20528,6 +20561,7 @@ export {
|
|
|
20528
20561
|
sequence,
|
|
20529
20562
|
shiftAbsolute,
|
|
20530
20563
|
siteToString,
|
|
20564
|
+
sourceLeaf,
|
|
20531
20565
|
startsWith,
|
|
20532
20566
|
token,
|
|
20533
20567
|
transform,
|