parseman 0.53.0 → 0.55.0
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 +295 -119
- package/dist/analysis/diagnostics.js.map +3 -3
- package/dist/cli/index.js +295 -119
- package/dist/cli/index.js.map +3 -3
- package/dist/combinators/field-trivia.d.ts +40 -0
- package/dist/combinators/field-trivia.d.ts.map +1 -0
- package/dist/combinators/map.d.ts +19 -2
- package/dist/combinators/map.d.ts.map +1 -1
- package/dist/combinators/repeat.d.ts.map +1 -1
- package/dist/combinators/sequence.d.ts.map +1 -1
- package/dist/combinators/withCtx.d.ts +22 -7
- package/dist/combinators/withCtx.d.ts.map +1 -1
- package/dist/compiler/fields.d.ts +2 -0
- package/dist/compiler/fields.d.ts.map +1 -1
- package/dist/cst/trivia-charscan.d.ts +11 -3
- package/dist/cst/trivia-charscan.d.ts.map +1 -1
- package/dist/cst/trivia-kinds.d.ts +11 -0
- package/dist/cst/trivia-kinds.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +319 -130
- package/dist/index.js.map +3 -3
- package/dist/plugin/evaluator.d.ts.map +1 -1
- package/dist/plugin/index.js +324 -132
- package/dist/plugin/index.js.map +3 -3
- package/dist/table/assemble.d.ts +9 -0
- package/dist/table/assemble.d.ts.map +1 -1
- package/dist/table/emit-assembly.d.ts +1 -1
- package/dist/table/emit-assembly.d.ts.map +1 -1
- package/dist/table/emit.d.ts +6 -2
- 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/field-spec.d.ts +13 -0
- package/dist/table/field-spec.d.ts.map +1 -0
- package/dist/table/index.js +262 -113
- package/dist/table/index.js.map +3 -3
- package/dist/table/ops.d.ts +3 -1
- package/dist/table/ops.d.ts.map +1 -1
- package/dist/table/scalar-terminal.d.ts +11 -0
- package/dist/table/scalar-terminal.d.ts.map +1 -1
- package/dist/types.d.ts +14 -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 +1 -1
- package/src/combinators/field-trivia.ts +44 -0
- package/src/combinators/map.ts +48 -6
- package/src/combinators/repeat.ts +6 -1
- package/src/combinators/sequence.ts +9 -1
- package/src/combinators/withCtx.ts +61 -28
- package/src/compiler/fields.ts +5 -2
- package/src/compiler/ir-serialize.ts +7 -1
- package/src/coverage.ts +1 -1
- package/src/cst/trivia-charscan.ts +17 -56
- package/src/cst/trivia-kinds.ts +24 -8
- package/src/index.ts +1 -0
- package/src/plugin/evaluator.ts +13 -3
- package/src/table/assemble.ts +137 -23
- package/src/table/emit-assembly.ts +38 -18
- package/src/table/emit.ts +15 -4
- package/src/table/encode.ts +23 -2
- package/src/table/exec.ts +17 -2
- package/src/table/field-spec.ts +17 -0
- package/src/table/ops.ts +3 -1
- package/src/table/scalar-terminal.ts +25 -0
- package/src/types.ts +14 -2
- package/src/version.ts +1 -1
package/dist/table/ops.d.ts
CHANGED
|
@@ -216,7 +216,9 @@ export declare const OP_TOKEN = 29;
|
|
|
216
216
|
*/
|
|
217
217
|
export declare const OP_SCOPE_CAP = 30;
|
|
218
218
|
/**
|
|
219
|
-
* `WITHCTX k c` — `withCtx(extra, c)`. `k` is `extra` in the const pool
|
|
219
|
+
* `WITHCTX k c` — `withCtx(extra, c)`. `k >= 0` is `extra` in the const pool
|
|
220
|
+
* (the replace form); `k < 0` is the derive form, `~k` indexing the author's
|
|
221
|
+
* `(state) => state` in `prog.fns`, called once per entry with the outer state.
|
|
220
222
|
*
|
|
221
223
|
* SAVE / RESTORE, matching `withCtx.ts`. Both used to CLONE the context, which
|
|
222
224
|
* scoped far more than the state: every scalar the child wrote on `ctx` landed
|
package/dist/table/ops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/table/ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,wDAAwD;AACxD,eAAO,MAAM,MAAM,IAAI,CAAA;AACvB,gEAAgE;AAChE,eAAO,MAAM,KAAK,IAAI,CAAA;AACtB,6EAA6E;AAC7E,eAAO,MAAM,MAAM,IAAI,CAAA;AACvB,iFAAiF;AACjF,eAAO,MAAM,OAAO,IAAI,CAAA;AACxB;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,IAAI,CAAA;AACvB,2CAA2C;AAC3C,eAAO,MAAM,OAAO,IAAI,CAAA;AACxB;;;;kDAIkD;AAClD,eAAO,MAAM,MAAM,IAAI,CAAA;AACvB,qEAAqE;AACrE,eAAO,MAAM,QAAQ,IAAI,CAAA;AACzB;;;;;;;;;;;;;;;;;;;;;iCAqBiC;AACjC,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,2CAA2C;AAC3C,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,8EAA8E;AAC9E,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,+CAA+C;AAC/C,eAAO,MAAM,MAAM,KAAK,CAAA;AACxB;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,oEAAoE;AACpE,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,KAAK,CAAA;AAC1B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,eAAO,MAAM,WAAW,KAAK,CAAA;AAC7B,eAAO,MAAM,aAAa,KAAK,CAAA;AAC/B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,KAAK,CAAA;AAC1B;;;GAGG;AACH,eAAO,MAAM,SAAS,KAAK,CAAA;AAC3B;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,KAAK,CAAA;AAC1B;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,KAAK,CAAA;AAC3B,gEAAgE;AAChE,eAAO,MAAM,eAAe,KAAK,CAAA;AACjC;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,KAAK,CAAA;AAC1B;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/table/ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,4 +40,15 @@ export declare function leadingScalarSequence(code: ArrayLike<number>, ip: numbe
|
|
|
40
40
|
* covered by a shorter prefix are removed (`@{-}` is already covered by `@{`).
|
|
41
41
|
*/
|
|
42
42
|
export declare function leadingLiteralFamily(code: ArrayLike<number>, constants: readonly unknown[], ip: number, minDepth?: number, limit?: number): readonly number[] | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* The literal terminals an arm of a LARGE ordered choice (more than three arms)
|
|
45
|
+
* may be pretested on before it is entered, or `undefined` when it has none.
|
|
46
|
+
*
|
|
47
|
+
* A pretest runs again when the arm then matches, so a large choice only takes
|
|
48
|
+
* literals of two or more characters: one `startsWith` is the price of skipping an
|
|
49
|
+
* arm that first-char dispatch could not exclude (`@{` and `@@` beside `@name`).
|
|
50
|
+
* A one-character literal is exactly what the dispatch mask already decided.
|
|
51
|
+
* The emitted and the closure engines both select through this function.
|
|
52
|
+
*/
|
|
53
|
+
export declare function largeChoiceLiteralPretest(code: ArrayLike<number>, constants: readonly unknown[], armIp: number): readonly number[] | undefined;
|
|
43
54
|
//# sourceMappingURL=scalar-terminal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-terminal.d.ts","sourceRoot":"","sources":["../../src/table/scalar-terminal.ts"],"names":[],"mappings":"AAMA,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;AAEpF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAwB5F;AAED,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAKnF;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,cAAc,UAAO,EAAE,WAAW,UAAQ,GAC5F,MAAM,CA4CR;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAClC,qBAAqB,GAAG,SAAS,CAmEnC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAClE,QAAQ,SAAI,EAAE,KAAK,SAAI,GACtB,SAAS,MAAM,EAAE,GAAG,SAAS,CAwD/B"}
|
|
1
|
+
{"version":3,"file":"scalar-terminal.d.ts","sourceRoot":"","sources":["../../src/table/scalar-terminal.ts"],"names":[],"mappings":"AAMA,4FAA4F;AAC5F,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;AAEpF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAwB5F;AAED,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAKnF;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,cAAc,UAAO,EAAE,WAAW,UAAQ,GAC5F,MAAM,CA4CR;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAClC,qBAAqB,GAAG,SAAS,CAmEnC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAClE,QAAQ,SAAI,EAAE,KAAK,SAAI,GACtB,SAAS,MAAM,EAAE,GAAG,SAAS,CAwD/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GACpE,SAAS,MAAM,EAAE,GAAG,SAAS,CAW/B"}
|
package/dist/types.d.ts
CHANGED
|
@@ -123,6 +123,8 @@ export type ParserDef = {
|
|
|
123
123
|
tag: 'field';
|
|
124
124
|
name: string;
|
|
125
125
|
parser: Combinator<unknown>;
|
|
126
|
+
leadingTrivia?: true;
|
|
127
|
+
trailingTrivia?: true;
|
|
126
128
|
} | {
|
|
127
129
|
tag: 'grammar';
|
|
128
130
|
parser: Combinator<unknown>;
|
|
@@ -274,6 +276,16 @@ export type BuildHost = ((type: string, children: ReadonlyArray<unknown>, fields
|
|
|
274
276
|
export type FieldCapture<T = unknown> = {
|
|
275
277
|
value: T;
|
|
276
278
|
span: Span;
|
|
279
|
+
/**
|
|
280
|
+
* `field(…, { leadingTrivia: true })` only: the source text of the trivia the
|
|
281
|
+
* enclosing sequence or separated list skipped right before this field, or `''`.
|
|
282
|
+
*/
|
|
283
|
+
leading?: string;
|
|
284
|
+
/**
|
|
285
|
+
* `field(…, { trailingTrivia: true })` only: the source text of the trivia the
|
|
286
|
+
* field consumed after its match, or `''`.
|
|
287
|
+
*/
|
|
288
|
+
trailing?: string;
|
|
277
289
|
};
|
|
278
290
|
export type FieldMap = Record<string, FieldCapture | FieldCapture[]>;
|
|
279
291
|
/**
|
|
@@ -458,6 +470,8 @@ export type ParseContext = {
|
|
|
458
470
|
name: string;
|
|
459
471
|
value: unknown;
|
|
460
472
|
span: Span;
|
|
473
|
+
leading?: string;
|
|
474
|
+
trailing?: string;
|
|
461
475
|
}> | undefined;
|
|
462
476
|
/** Framework-internal: lazy capture buffer for active node() parse. */
|
|
463
477
|
_cstBuf?: CstCaptureBuf | undefined;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,EAAE,EAAE,IAAI,CAAA;IACR,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE,IAAI,EAAE,CAAA;IACf,oHAAoH;IACpH,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,KAAK,CAAA;IACT,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,IAAI,CAAA;IACV;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;AAMnD,MAAM,MAAM,SAAS,GACjB;IAAE,GAAG,EAAE,SAAS,CAAC;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GAC7D;IAAE,GAAG,EAAE,OAAO,CAAC;IAAK,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAKnD;IAAE,GAAG,EAAE,UAAU,CAAC;IAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAM3E;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAI,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;CAAE,GACpN;IAAE,GAAG,EAAE,UAAU,CAAC;IAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GACjO;IAAE,GAAG,EAAE,SAAS,CAAC;IAAG,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,2FAA2F;IAAC,OAAO,CAAC,EAAE,IAAI,CAAA;CAAE,GAK7J;IAAE,GAAG,EAAE,MAAM,CAAC;IAAM,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9F;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GACnG;IAAE,GAAG,EAAE,UAAU,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAOjD;IAAE,GAAG,EAAE,OAAO,CAAC;IAAK,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,iGAAiG;IAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,GACzP;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/J;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAI,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GACjD;IAAE,GAAG,EAAE,OAAO,CAAC;IAAK,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAKjD;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAI,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GACpD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAM,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GACzJ;IAAE,GAAG,EAAE,OAAO,CAAC;IAAK,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAChE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAK,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,GAC5G;IAAE,GAAG,EAAE,SAAS,CAAC;IAAG,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,sBAAsB,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;IAAC,8BAA8B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACpS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAK,KAAK,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GACrD;IAAE,GAAG,EAAE,KAAK,CAAC;IAAM,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAIhD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAI,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAC/C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAK,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,wSAAwS;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,oGAAoG;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,8JAA8J;IAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,sKAAsK;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,2DAA2D;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,yPAAyP;IAAC,YAAY,CAAC,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAKzqD;IAAE,GAAG,EAAE,OAAO,CAAC;IAAI,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAK7E;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,UAAU,GAAG,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAGrF;IAAE,GAAG,EAAE,SAAS,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnF;IAAE,GAAG,EAAE,SAAS,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAC/E;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAG,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAK/F;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAG,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;CAAE,GAC5K;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACrG;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,CAAA;AAEtB,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,iFAAiF;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IAC/F,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAA;AAEvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,mBAAmB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjC,CAAA;AAED,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,KAChC,OAAO,CAAA;AAEZ,MAAM,MAAM,SAAS,GAAG,CAAC,CACvB,IAAI,EAAE,MAAM,EAKZ,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAC5B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACpC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,EACnC,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,KACjC,OAAO,CAAC,GAAG;IACd,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAA;IACvD;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC5C;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;IAChE;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;CAC1E,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,IAAI,CAAA;IACV;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC,CAAA;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3I,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,KAAK,OAAO,CAAA;IAC7F,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;IACvF;mFAC+E;IAC/E,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACtD;;;4BAGwB;IACxB,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAGzB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACxC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;IAC5C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAChD;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,0HAA0H;IAC1H,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;IAClC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACvC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;IAClC;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC1B,iEAAiE;IACjE,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACzB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,OAAO,CAAA;IACb;;;;OAIG;IACH,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,GAAG,SAAS,CAAA;IAC/D;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;IAClC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;IACvC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACjC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACrC;;wEAEoE;IACpE,oBAAoB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IACnE,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACpC,kFAAkF;IAClF,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAA;IAC9G,uEAAuE;IACvE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAA;IACnC,kFAAkF;IAClF,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAA;IACpD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAClC,iFAAiF;IACjF,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;IACjD,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACrD,kFAAkF;IAClF,aAAa,CAAC,EAAE;QACd,KAAK,CAAC,KAAK,EAAE;YACX,EAAE,EAAE,MAAM,CAAA;YACV,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAA;YAC1F,MAAM,EAAE,MAAM,CAAA;YACd,GAAG,CAAC,EAAE,MAAM,CAAA;SACb,GAAG,IAAI,CAAA;KACT,GAAG,SAAS,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,gFAAgF;IAChF,QAAQ,EAAE,QAAQ,CAAA;IAClB,0DAA0D;IAC1D,eAAe,EAAE,OAAO,CAAA;IACxB,0DAA0D;IAC1D,QAAQ,EAAE,OAAO,CAAA;IACjB,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC5C,2EAA2E;IAC3E,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/D;2EACuE;IACvE,oBAAoB,CAAC,EAAE,IAAI,CAAA;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IAC/C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;IACnD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;IAC3C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACrC,CAAA;AAED,oFAAoF;AACpF,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAA;AAErB,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,GAAG,EAAE,gBAAgB,CAAC;IAAO,UAAU,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,GAAG,EAAE,sBAAsB,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,GACxD;IAAE,GAAG,EAAE,YAAY,CAAA;CAAE,GACrB;IAAE,GAAG,EAAE,cAAc,CAAC;IAAS,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEnF;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAG,GAAG,EAAE,QAAQ,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEzC;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,OAAO,IAAI;IAClC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;IACjC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAC1B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAClD,kGAAkG;IAClG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAChF;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE,CAAA;IACvF,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,SAAS,OAAO,oCAAoC,EAAE,yBAAyB,EAAE,CAAA;CACxG,CAAA"}
|
package/dist/version.d.ts
CHANGED
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
* Kept in sync with `package.json` by `test/unit/version-sync.test.ts`, which fails
|
|
14
14
|
* the build if this constant drifts from the published version.
|
|
15
15
|
*/
|
|
16
|
-
export declare const PARSEMAN_VERSION = "0.
|
|
16
|
+
export declare const PARSEMAN_VERSION = "0.55.0";
|
|
17
17
|
//# sourceMappingURL=version.d.ts.map
|
package/package.json
CHANGED
|
@@ -389,7 +389,7 @@ function payloadKey(p: Combinator<unknown>, d: ParserDef): string {
|
|
|
389
389
|
return n === undefined ? `ref\u0000#${anonId(p)}` : `ref\u0000${n}`
|
|
390
390
|
}
|
|
391
391
|
case 'label': return `label\u0000${d.label}`
|
|
392
|
-
case 'field': return `field\u0000${d.name}`
|
|
392
|
+
case 'field': return `field\u0000${d.name}\u0000${d.leadingTrivia === true}\u0000${d.trailingTrivia === true}`
|
|
393
393
|
case 'node': return `node\u0000${d.type ?? ''}\u0000${d.unwrap === true}\u0000${d.collapse === true}\u0000${fnKey(d.buildSrc, d.build)}`
|
|
394
394
|
case 'transform': return `transform\u0000${fnKey(d.fnSrc, d.fn)}\u0000${d.recognitionOnly === true}`
|
|
395
395
|
case 'leaf': return `leaf\u0000${d.cstValue ?? 'value'}\u0000${fnKey(d.fnSrc, d.fn)}`
|
package/src/analysis/rebuild.ts
CHANGED
|
@@ -220,7 +220,7 @@ export function rebuildCombinator(
|
|
|
220
220
|
}); break
|
|
221
221
|
case 'transform': out = transform(one(d.parser), d.fn); break
|
|
222
222
|
case 'label': out = label(d.label, one(d.parser)); break
|
|
223
|
-
case 'field': out = field(d.name, one(d.parser)); break
|
|
223
|
+
case 'field': out = field(d.name, one(d.parser), { leadingTrivia: d.leadingTrivia === true, trailingTrivia: d.trailingTrivia === true }); break
|
|
224
224
|
case 'token': out = token(one(d.parser)); break
|
|
225
225
|
case 'leaf': out = d.cstValue === 'source' ? sourceLeaf(one(d.parser), d.fn) : leaf(one(d.parser), d.fn); break
|
|
226
226
|
// A LABELLED expect reproduces `d.expected` exactly (`expect` sets it to `[label]`).
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Combinator } from '../types.ts'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Where the trivia before a `field(…, { leadingTrivia: true })` began.
|
|
5
|
+
*
|
|
6
|
+
* A sequence or separated list skips the trivia before a term and calls the
|
|
7
|
+
* term at the first byte after it, so the term cannot see where the gap
|
|
8
|
+
* started. The boundary that calls such a field writes its pre-trivia cursor
|
|
9
|
+
* here immediately before the call, and the field reads it and resets it to −1
|
|
10
|
+
* on entry, before its own child can run another boundary. Nothing else writes
|
|
11
|
+
* it, so a field reached any other way reads −1 and records no leading trivia.
|
|
12
|
+
*
|
|
13
|
+
* ONE per process, like `FAIL`: the write and the read are adjacent in one
|
|
14
|
+
* synchronous call, and every engine (the interpreter included) must agree on
|
|
15
|
+
* the same cell when one calls another.
|
|
16
|
+
*/
|
|
17
|
+
export const LEAD: { at: number } = { at: -1 }
|
|
18
|
+
|
|
19
|
+
/** Option bits of a trivia-attributing `field()`, as the table carries them. */
|
|
20
|
+
export const FIELD_LEADING_TRIVIA = 1
|
|
21
|
+
export const FIELD_TRAILING_TRIVIA = 2
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The capture a trivia-attributing field pushes. `leadFrom` is the cursor before
|
|
25
|
+
* the trivia its boundary skipped (−1 when it was not called from one), and
|
|
26
|
+
* `trailEnd` the end of the trivia it consumed after its match. One spelling for
|
|
27
|
+
* every engine, so the captures agree byte for byte.
|
|
28
|
+
*/
|
|
29
|
+
export function triviaFieldCapture(
|
|
30
|
+
name: string, value: unknown, input: string, start: number, end: number, leadFrom: number, trailEnd: number,
|
|
31
|
+
): { name: string; value: unknown; span: { start: number; end: number }; leading: string; trailing: string } {
|
|
32
|
+
return {
|
|
33
|
+
name,
|
|
34
|
+
value,
|
|
35
|
+
span: { start, end },
|
|
36
|
+
leading: leadFrom >= 0 && leadFrom < start ? input.slice(leadFrom, start) : '',
|
|
37
|
+
trailing: trailEnd > end ? input.slice(end, trailEnd) : '',
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Is `p` a `field(…, { leadingTrivia: true })` — the term itself, not wrapped? */
|
|
42
|
+
export function leadsTrivia(p: Combinator<unknown>): boolean {
|
|
43
|
+
return p._def.tag === 'field' && p._def.leadingTrivia === true
|
|
44
|
+
}
|
package/src/combinators/map.ts
CHANGED
|
@@ -3,7 +3,8 @@ import { analyzeLabeledTrivia } from '../cst/trivia-kinds.ts'
|
|
|
3
3
|
import { choice } from './choice.ts'
|
|
4
4
|
import { matchesEmpty } from './first-set.ts'
|
|
5
5
|
import { oneOrMore } from './repeat.ts'
|
|
6
|
-
import { fastTriviaScanner } from './trivia-skip.ts'
|
|
6
|
+
import { consumeTrivia, fastTriviaScanner } from './trivia-skip.ts'
|
|
7
|
+
import { LEAD, triviaFieldCapture } from './field-trivia.ts'
|
|
7
8
|
import { scalarOf } from './scalar.ts'
|
|
8
9
|
|
|
9
10
|
const JSON_STRING_BODY = String.raw`(?:[^"\\]|\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4}))*`
|
|
@@ -151,20 +152,61 @@ export function label<T>(name: string, combinator: Combinator<T>): Combinator<T>
|
|
|
151
152
|
}
|
|
152
153
|
}
|
|
153
154
|
|
|
155
|
+
export type FieldOptions = {
|
|
156
|
+
/**
|
|
157
|
+
* Record, as the capture's `leading`, the source text of the trivia that the
|
|
158
|
+
* enclosing `sequence()` (as any term after the first) or separated list (as
|
|
159
|
+
* its separator) skipped right before this field. A comment written before a
|
|
160
|
+
* `,` belongs to no term, so a builder could only read it from its node's
|
|
161
|
+
* trivia log; this hands it to the separator instead. The field must be the
|
|
162
|
+
* term or separator itself, not wrapped; anywhere else `leading` is `''`.
|
|
163
|
+
*/
|
|
164
|
+
leadingTrivia?: boolean
|
|
165
|
+
/**
|
|
166
|
+
* After the match, consume the trivia that follows (as `node({ trailingTrivia })`
|
|
167
|
+
* does) and record its source text as the capture's `trailing`.
|
|
168
|
+
*/
|
|
169
|
+
trailingTrivia?: boolean
|
|
170
|
+
}
|
|
171
|
+
|
|
154
172
|
/**
|
|
155
173
|
* Capture a named parse result for the nearest enclosing node() builder.
|
|
156
|
-
* Parse behavior and the normal returned value are unchanged
|
|
174
|
+
* Parse behavior and the normal returned value are unchanged, except that
|
|
175
|
+
* `trailingTrivia` also consumes the trivia after the match.
|
|
157
176
|
*/
|
|
158
|
-
export function field<T>(name: string, combinator: Combinator<T
|
|
177
|
+
export function field<T>(name: string, combinator: Combinator<T>, opts?: FieldOptions): Combinator<T> {
|
|
178
|
+
const leadingTrivia = opts?.leadingTrivia === true
|
|
179
|
+
const trailingTrivia = opts?.trailingTrivia === true
|
|
180
|
+
if (!leadingTrivia && !trailingTrivia) {
|
|
181
|
+
return {
|
|
182
|
+
_tag: combinator._tag,
|
|
183
|
+
_meta: combinator._meta,
|
|
184
|
+
_def: { tag: 'field', name, parser: combinator as Combinator<unknown> },
|
|
185
|
+
parse(input: string, pos: number, ctx: ParseContext): ParseResult<T> {
|
|
186
|
+
const result = combinator.parse(input, pos, ctx)
|
|
187
|
+
if (!result.ok) return result
|
|
188
|
+
ctx._fields?.push({ name, value: result.value, span: result.span })
|
|
189
|
+
return result
|
|
190
|
+
},
|
|
191
|
+
}
|
|
192
|
+
}
|
|
159
193
|
return {
|
|
160
194
|
_tag: combinator._tag,
|
|
161
195
|
_meta: combinator._meta,
|
|
162
|
-
_def: {
|
|
196
|
+
_def: {
|
|
197
|
+
tag: 'field', name, parser: combinator as Combinator<unknown>,
|
|
198
|
+
...(leadingTrivia ? { leadingTrivia: true } : {}),
|
|
199
|
+
...(trailingTrivia ? { trailingTrivia: true } : {}),
|
|
200
|
+
},
|
|
163
201
|
parse(input: string, pos: number, ctx: ParseContext): ParseResult<T> {
|
|
202
|
+
const leadFrom = LEAD.at
|
|
203
|
+
LEAD.at = -1
|
|
164
204
|
const result = combinator.parse(input, pos, ctx)
|
|
165
205
|
if (!result.ok) return result
|
|
166
|
-
|
|
167
|
-
|
|
206
|
+
const end = result.span.end
|
|
207
|
+
const trailEnd = trailingTrivia && ctx.trivia ? consumeTrivia(input, end, ctx) : end
|
|
208
|
+
ctx._fields?.push(triviaFieldCapture(name, result.value, input, result.span.start, end, leadingTrivia ? leadFrom : -1, trailEnd))
|
|
209
|
+
return trailEnd === end ? result : { ok: true, value: result.value, span: { start: result.span.start, end: trailEnd } }
|
|
168
210
|
},
|
|
169
211
|
}
|
|
170
212
|
}
|
|
@@ -5,6 +5,7 @@ import { deriveExpected } from './expect.ts'
|
|
|
5
5
|
import { matchesAt, orSentinel, recoverScan, captureError } from '../recovery/scan.ts'
|
|
6
6
|
import { demoteCapturedToRaw } from '../cst/capture-buffer.ts'
|
|
7
7
|
import { scalarOf, type ScalarParser } from './scalar.ts'
|
|
8
|
+
import { LEAD, leadsTrivia } from './field-trivia.ts'
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Parse one repetition item at `cur`, first skipping (and, in capture mode,
|
|
@@ -438,6 +439,9 @@ export function sepBy<T, S>(
|
|
|
438
439
|
opts: SepByOptions = {},
|
|
439
440
|
): Combinator<T[]> {
|
|
440
441
|
const { sep: separator, keep: keepSeparators } = unwrapSeparator(separatorArg)
|
|
442
|
+
// A `field(…, { leadingTrivia: true })` separator reads the cursor this loop
|
|
443
|
+
// had before the trivia it skipped (`LEAD`, table/cell.ts).
|
|
444
|
+
const separatorLeads = leadsTrivia(separator)
|
|
441
445
|
const { min, max } = resolveBounds('sepBy()', opts)
|
|
442
446
|
const trailing = opts.trailing ?? 'forbid'
|
|
443
447
|
const meta: ParserMeta = {
|
|
@@ -517,7 +521,7 @@ export function sepBy<T, S>(
|
|
|
517
521
|
// this option surface already; parity is held by test/parity, not by hope.
|
|
518
522
|
...(keepSeparators ? { keepSeparators: true } : {}),
|
|
519
523
|
},
|
|
520
|
-
_parseScalar: keepSeparators ? undefined : parseScalar,
|
|
524
|
+
_parseScalar: keepSeparators || separatorLeads ? undefined : parseScalar,
|
|
521
525
|
parse(input: string, pos: number, ctx: ParseContext): ParseResult<T[]> {
|
|
522
526
|
const first = combinator.parse(input, pos, ctx)
|
|
523
527
|
const values: T[] = []
|
|
@@ -574,6 +578,7 @@ export function sepBy<T, S>(
|
|
|
574
578
|
sepPos = advanceTrivia(input, cur, ctx)
|
|
575
579
|
}
|
|
576
580
|
}
|
|
581
|
+
if (separatorLeads) LEAD.at = cur
|
|
577
582
|
const sep = separator.parse(input, sepPos, ctx)
|
|
578
583
|
if (!sep.ok) {
|
|
579
584
|
rollbackTrivia(ctx, loopMark)
|
|
@@ -8,6 +8,7 @@ import { cstTlLen } from '../cst/capture-buffer.ts'
|
|
|
8
8
|
import { firstSetSentinel } from '../recovery/scan.ts'
|
|
9
9
|
import { adjacencyFail, adjacencyOf, holdsAdjacency, type AdjacencyDef } from './adjacency.ts'
|
|
10
10
|
import { scalarOf } from './scalar.ts'
|
|
11
|
+
import { LEAD, leadsTrivia } from './field-trivia.ts'
|
|
11
12
|
|
|
12
13
|
type UnwrapParsers<T extends Combinator<unknown>[]> = {
|
|
13
14
|
[K in keyof T]: T[K] extends Combinator<infer U> ? U : never
|
|
@@ -37,6 +38,12 @@ export function sequence<T extends [Combinator<unknown>, ...Combinator<unknown>[
|
|
|
37
38
|
;(adjacency ??= Array.from({ length: parsers.length }, () => null))[i] = a
|
|
38
39
|
}
|
|
39
40
|
const hasAdjacency = adjacency !== null
|
|
41
|
+
// `field(…, { leadingTrivia: true })` after the first term reads the cursor
|
|
42
|
+
// this boundary had before its trivia skip (`LEAD`, table/cell.ts).
|
|
43
|
+
let leading: boolean[] | null = null
|
|
44
|
+
for (let i = 1; i < parsers.length; i++) {
|
|
45
|
+
if (leadsTrivia(parsers[i]!)) (leading ??= Array.from({ length: parsers.length }, () => false))[i] = true
|
|
46
|
+
}
|
|
40
47
|
const strictArity = !hasAdjacency
|
|
41
48
|
&& ((parsers.length === 2 && !matchesEmpty(parsers[1]!))
|
|
42
49
|
|| (parsers.length === 3 && parsers.every(p => !matchesEmpty(p))))
|
|
@@ -95,7 +102,7 @@ export function sequence<T extends [Combinator<unknown>, ...Combinator<unknown>[
|
|
|
95
102
|
_tag: 'sequence',
|
|
96
103
|
_meta: meta,
|
|
97
104
|
_def: def,
|
|
98
|
-
_parseScalar: hasAdjacency ? undefined : parseScalar,
|
|
105
|
+
_parseScalar: hasAdjacency || leading !== null ? undefined : parseScalar,
|
|
99
106
|
parse(input: string, pos: number, ctx: ParseContext): ParseResult<UnwrapParsers<T>> {
|
|
100
107
|
const tolerant = ctx._tolerant === true
|
|
101
108
|
if (tolerant) {
|
|
@@ -130,6 +137,7 @@ export function sequence<T extends [Combinator<unknown>, ...Combinator<unknown>[
|
|
|
130
137
|
const scanTlog = deferredTrivia ? cstTlLen(ctx) : 0
|
|
131
138
|
const scanLog = deferredTrivia ? (ctx._triviaLog?.length ?? 0) : 0
|
|
132
139
|
const scanRootLog = deferredTrivia ? (ctx._rootTriviaLog?.length ?? 0) : 0
|
|
140
|
+
if (leading?.[i] === true) LEAD.at = cur
|
|
133
141
|
const result = parsers[i]!.parse(input, termPos, ctx)
|
|
134
142
|
if (!result.ok) return result as ParseFail
|
|
135
143
|
if (values !== undefined) values.push(result.value)
|
|
@@ -1,45 +1,78 @@
|
|
|
1
1
|
import type { Combinator, ParseContext, ParseResult, ParserMeta } from '../types.ts'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Runs `combinator`
|
|
5
|
-
* The outer user context is restored on exit (lexical scoping).
|
|
4
|
+
* Runs `combinator` under a scoped `ctx.state`, restored on exit (lexical scoping).
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
* sequence(literal('{'), many(statement), literal('}'))
|
|
9
|
-
* )
|
|
6
|
+
* Two forms, told apart by whether the first argument is a function:
|
|
10
7
|
*
|
|
11
|
-
*
|
|
8
|
+
* - **Replace** — `withCtx(extra, c)`: the subtree's state IS `extra`.
|
|
9
|
+
*
|
|
10
|
+
* const functionBody = withCtx({ inFn: true },
|
|
11
|
+
* sequence(literal('{'), many(statement), literal('}'))
|
|
12
|
+
* )
|
|
13
|
+
*
|
|
14
|
+
* - **Derive** — `withCtx(state => next, c)`: the subtree's state is computed
|
|
15
|
+
* FROM the state in force at entry, once per entry. Use it to add or override
|
|
16
|
+
* a field while every outer field (options, document-wide sinks) stays visible
|
|
17
|
+
* to the gates and reducers inside:
|
|
18
|
+
*
|
|
19
|
+
* const argument = withCtx(s => ({ ...s, stop: 'comparison' }), value)
|
|
20
|
+
*
|
|
21
|
+
* Because a function argument always selects the derive form, a state that is
|
|
22
|
+
* itself a function cannot be installed with the replace form; wrap it
|
|
23
|
+
* (`withCtx(() => fn, c)`).
|
|
24
|
+
*
|
|
25
|
+
* Read back with gate() or from within a transform's span argument.
|
|
12
26
|
*/
|
|
13
|
-
|
|
27
|
+
// `S` defaults to what a derive callback can assume without an annotation: the
|
|
28
|
+
// state in force is absent at the root, and otherwise conventionally an object.
|
|
29
|
+
// Annotate the parameter when the grammar's state is something else.
|
|
30
|
+
export function withCtx<S = Readonly<Record<string, unknown>> | undefined, U = unknown, T = unknown>(derive: (state: S) => U, combinator: Combinator<T>): Combinator<T>
|
|
31
|
+
// A callable `extra` is excluded here because the runtime ALWAYS takes a function
|
|
32
|
+
// as the derive form; without this, a function the derive overload rejects (two
|
|
33
|
+
// required parameters, say) would type-check as a replacement value and then be
|
|
34
|
+
// called as a deriver.
|
|
35
|
+
export function withCtx<U, T>(extra: U extends (...args: never[]) => unknown ? never : U, combinator: Combinator<T>): Combinator<T>
|
|
36
|
+
export function withCtx<T>(extra: unknown, combinator: Combinator<T>): Combinator<T> {
|
|
14
37
|
const meta: ParserMeta = {
|
|
15
38
|
firstSet: combinator._meta.firstSet,
|
|
16
39
|
canMatchNewline: combinator._meta.canMatchNewline,
|
|
17
40
|
isTrivia: false,
|
|
18
41
|
}
|
|
42
|
+
// The form is decided HERE, once, so neither parse path tests it per entry.
|
|
43
|
+
//
|
|
44
|
+
// SAVE / RESTORE, not a clone. This used to run the child against
|
|
45
|
+
// `{ ...ctx, state: extra }`, which scopes far more than the state: every
|
|
46
|
+
// scalar the child writes on `ctx` lands on the clone and dies with it —
|
|
47
|
+
// including `_fe` / `_fx`, the furthest-failure position and its expected
|
|
48
|
+
// set. A failing `withCtx` subtree therefore contributed NOTHING to the
|
|
49
|
+
// parent's expected set, silently. Nobody asked for that isolation; the
|
|
50
|
+
// combinator's contract is "set `state` for the duration", and the clone
|
|
51
|
+
// was an implementation detail with a semantic reach nobody consented to.
|
|
52
|
+
//
|
|
53
|
+
// (Array MUTATIONS were never affected either way — `_triviaLog` and the
|
|
54
|
+
// CST buffers are the same objects through a spread — so this changes the
|
|
55
|
+
// scalars only, which is exactly the part that was being dropped.)
|
|
56
|
+
//
|
|
57
|
+
// It also allocated a full context per entry, on the object every
|
|
58
|
+
// combinator reads on every step.
|
|
59
|
+
const parse = typeof extra === 'function'
|
|
60
|
+
? (input: string, pos: number, ctx: ParseContext): ParseResult<T> => {
|
|
61
|
+
const saved = ctx.state
|
|
62
|
+
ctx.state = (extra as (state: unknown) => unknown)(saved)
|
|
63
|
+
try { return combinator.parse(input, pos, ctx) }
|
|
64
|
+
finally { ctx.state = saved }
|
|
65
|
+
}
|
|
66
|
+
: (input: string, pos: number, ctx: ParseContext): ParseResult<T> => {
|
|
67
|
+
const saved = ctx.state
|
|
68
|
+
ctx.state = extra
|
|
69
|
+
try { return combinator.parse(input, pos, ctx) }
|
|
70
|
+
finally { ctx.state = saved }
|
|
71
|
+
}
|
|
19
72
|
return {
|
|
20
73
|
_tag: 'withCtx',
|
|
21
74
|
_meta: meta,
|
|
22
75
|
_def: { tag: 'withCtx', extra, parser: combinator as Combinator<unknown> },
|
|
23
|
-
parse
|
|
24
|
-
// SAVE / RESTORE, not a clone. This used to run the child against
|
|
25
|
-
// `{ ...ctx, state: extra }`, which scopes far more than the state: every
|
|
26
|
-
// scalar the child writes on `ctx` lands on the clone and dies with it —
|
|
27
|
-
// including `_fe` / `_fx`, the furthest-failure position and its expected
|
|
28
|
-
// set. A failing `withCtx` subtree therefore contributed NOTHING to the
|
|
29
|
-
// parent's expected set, silently. Nobody asked for that isolation; the
|
|
30
|
-
// combinator's contract is "set `state` for the duration", and the clone
|
|
31
|
-
// was an implementation detail with a semantic reach nobody consented to.
|
|
32
|
-
//
|
|
33
|
-
// (Array MUTATIONS were never affected either way — `_triviaLog` and the
|
|
34
|
-
// CST buffers are the same objects through a spread — so this changes the
|
|
35
|
-
// scalars only, which is exactly the part that was being dropped.)
|
|
36
|
-
//
|
|
37
|
-
// It also allocated a full context per entry, on the object every
|
|
38
|
-
// combinator reads on every step.
|
|
39
|
-
const saved = ctx.state
|
|
40
|
-
ctx.state = extra
|
|
41
|
-
try { return combinator.parse(input, pos, ctx) }
|
|
42
|
-
finally { ctx.state = saved }
|
|
43
|
-
},
|
|
76
|
+
parse,
|
|
44
77
|
}
|
|
45
78
|
}
|
package/src/compiler/fields.ts
CHANGED
|
@@ -183,11 +183,13 @@ export function parserEnablesTriviaCapture(p: Combinator<unknown>, seen: Set<Com
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
export function buildFieldMap(captures: ReadonlyArray<{ name: string; value: unknown; span: { start: number; end: number } }> | undefined): FieldMap | undefined {
|
|
186
|
+
export function buildFieldMap(captures: ReadonlyArray<{ name: string; value: unknown; span: { start: number; end: number }; leading?: string; trailing?: string }> | undefined): FieldMap | undefined {
|
|
187
187
|
if (!captures?.length) return undefined
|
|
188
188
|
const out: FieldMap = {}
|
|
189
189
|
for (const cap of captures) {
|
|
190
|
-
const entry =
|
|
190
|
+
const entry = cap.leading === undefined
|
|
191
|
+
? { value: cap.value, span: cap.span }
|
|
192
|
+
: { value: cap.value, span: cap.span, leading: cap.leading, trailing: cap.trailing! }
|
|
191
193
|
const current = out[cap.name]
|
|
192
194
|
if (current === undefined) out[cap.name] = entry
|
|
193
195
|
else if (Array.isArray(current)) current.push(entry)
|
|
@@ -195,3 +197,4 @@ export function buildFieldMap(captures: ReadonlyArray<{ name: string; value: unk
|
|
|
195
197
|
}
|
|
196
198
|
return out
|
|
197
199
|
}
|
|
200
|
+
|
|
@@ -484,7 +484,7 @@ class Serializer {
|
|
|
484
484
|
return `_lf(${kid(def.parser)}, ${JSON.stringify(def.fnSrc)}${def.cstValue === 'source' ? ', true' : ''})`
|
|
485
485
|
}
|
|
486
486
|
case 'label': return `label(${JSON.stringify(def.label)}, ${kid(def.parser)})`
|
|
487
|
-
case 'field': return `field(${JSON.stringify(def.name)}, ${kid(def.parser)})`
|
|
487
|
+
case 'field': return `field(${JSON.stringify(def.name)}, ${kid(def.parser)}${fieldOptionsSrc(def)})`
|
|
488
488
|
case 'expect': return `expect(${kid(def.parser)}${def.label !== undefined ? `, ${JSON.stringify(def.label)}` : ''})`
|
|
489
489
|
case 'scanTo':
|
|
490
490
|
return `scanTo(${kid(def.sentinel)}, { skip: [${def.skip.map(kid).join(', ')}]${def.raw ? ', raw: true' : ''}, orEOF: ${def.orEOF}${def.recoverAt === undefined ? '' : `, recoverAt: ${kid(def.recoverAt)}`}${def.stopAt === undefined ? '' : `, stopAt: ${kid(def.stopAt)}`} })`
|
|
@@ -569,3 +569,9 @@ class Serializer {
|
|
|
569
569
|
}
|
|
570
570
|
}
|
|
571
571
|
}
|
|
572
|
+
|
|
573
|
+
/** The options argument of a trivia-attributing `field()`, or nothing for a plain one. */
|
|
574
|
+
function fieldOptionsSrc(def: Extract<ParserDef, { tag: 'field' }>): string {
|
|
575
|
+
if (def.leadingTrivia !== true && def.trailingTrivia !== true) return ''
|
|
576
|
+
return `, { ${[def.leadingTrivia === true ? 'leadingTrivia: true' : '', def.trailingTrivia === true ? 'trailingTrivia: true' : ''].filter(Boolean).join(', ')} }`
|
|
577
|
+
}
|
package/src/coverage.ts
CHANGED
|
@@ -343,7 +343,7 @@ function coverageEntry(entry: Combinator<unknown>, collector: GrammarCoverageCol
|
|
|
343
343
|
case 'trivia': return trivia(build(def.parser))
|
|
344
344
|
case 'token': return token(build(def.parser))
|
|
345
345
|
case 'leaf': return def.cstValue === 'source' ? sourceLeaf(build(def.parser), def.fn) : leaf(build(def.parser), def.fn)
|
|
346
|
-
case 'field': return field(def.name, build(def.parser))
|
|
346
|
+
case 'field': return field(def.name, build(def.parser), { leadingTrivia: def.leadingTrivia === true, trailingTrivia: def.trailingTrivia === true })
|
|
347
347
|
case 'grammar': return grammarParser({
|
|
348
348
|
...(def.triviaParser === undefined ? (def.clearTrivia ? { trivia: null } : {}) : { trivia: build(def.triviaParser) }),
|
|
349
349
|
...(def.captureTrivia ? { captureTrivia: true } : {}),
|