parseman 0.53.0 → 0.54.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 +278 -118
- package/dist/analysis/diagnostics.js.map +2 -2
- package/dist/cli/index.js +278 -118
- package/dist/cli/index.js.map +2 -2
- 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/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 +284 -120
- package/dist/index.js.map +2 -2
- package/dist/plugin/index.js +284 -120
- package/dist/plugin/index.js.map +2 -2
- 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 +245 -112
- package/dist/table/index.js.map +2 -2
- 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/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 +1 -1
- package/src/table/assemble.ts +126 -22
- package/src/table/emit-assembly.ts +38 -18
- package/src/table/emit.ts +15 -4
- package/src/table/encode.ts +18 -2
- package/src/table/exec.ts +15 -1
- package/src/table/field-spec.ts +17 -0
- package/src/table/scalar-terminal.ts +25 -0
- package/src/types.ts +12 -2
- package/src/version.ts +1 -1
|
@@ -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":"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"}
|
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.54.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)
|
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 } : {}),
|
|
@@ -226,74 +226,35 @@ function plainRegexSource(p: Combinator<unknown>): string | null {
|
|
|
226
226
|
return d.tag === 'regex' && d.flags === '' ? d.source : null
|
|
227
227
|
}
|
|
228
228
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
let visitSpec2: LabeledTriviaSpec | undefined
|
|
232
|
-
let visitSpec3: LabeledTriviaSpec | undefined
|
|
233
|
-
let visitValue0: CssTriviaVisitor | null | undefined
|
|
234
|
-
let visitValue1: CssTriviaVisitor | null | undefined
|
|
235
|
-
let visitValue2: CssTriviaVisitor | null | undefined
|
|
236
|
-
let visitValue3: CssTriviaVisitor | null | undefined
|
|
229
|
+
/** The fields of a spec the char-level lowerings below are computed from. */
|
|
230
|
+
type TriviaArmsSpec = Pick<LabeledTriviaSpec, 'arms' | 'minRepeats'>
|
|
237
231
|
|
|
238
|
-
/**
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
const visitor = commonCssTriviaVisitor(sources)
|
|
246
|
-
visitSpec3 = visitSpec2
|
|
247
|
-
visitValue3 = visitValue2
|
|
248
|
-
visitSpec2 = visitSpec1
|
|
249
|
-
visitValue2 = visitValue1
|
|
250
|
-
visitSpec1 = visitSpec0
|
|
251
|
-
visitValue1 = visitValue0
|
|
252
|
-
visitSpec0 = spec
|
|
253
|
-
visitValue0 = visitor
|
|
254
|
-
return visitor
|
|
232
|
+
/**
|
|
233
|
+
* A direct classified scanner for the four canonical CSS/Less trivia tuples.
|
|
234
|
+
* Computed once per spec, by `analyzeLabeledTrivia`, and read off it as
|
|
235
|
+
* `spec.visitor`: a scan never asks again.
|
|
236
|
+
*/
|
|
237
|
+
export function commonLabeledTriviaVisitor(spec: TriviaArmsSpec): CssTriviaVisitor | null {
|
|
238
|
+
return commonCssTriviaVisitor(spec.minRepeats <= 1 ? spec.arms.map(arm => plainRegexSource(arm.parser)) : [])
|
|
255
239
|
}
|
|
256
240
|
|
|
257
|
-
let armSpec0: LabeledTriviaSpec | undefined
|
|
258
|
-
let armSpec1: LabeledTriviaSpec | undefined
|
|
259
|
-
let armSpec2: LabeledTriviaSpec | undefined
|
|
260
|
-
let armSpec3: LabeledTriviaSpec | undefined
|
|
261
|
-
let armValue0: readonly TriviaArmMatcher[] | null | undefined
|
|
262
|
-
let armValue1: readonly TriviaArmMatcher[] | null | undefined
|
|
263
|
-
let armValue2: readonly TriviaArmMatcher[] | null | undefined
|
|
264
|
-
let armValue3: readonly TriviaArmMatcher[] | null | undefined
|
|
265
|
-
|
|
266
241
|
/**
|
|
267
242
|
* The character-level matchers for a spec's arms — index-parallel to `spec.arms`,
|
|
268
243
|
* so a matcher's index IS its kind index — or `null` when any arm has no lowering.
|
|
244
|
+
* Computed once per spec, as `spec.charArms`.
|
|
269
245
|
*
|
|
270
246
|
* `spec.minRepeats > 1` is excluded: the loops below report only an END, and a run
|
|
271
247
|
* that fails a minimum of two must report NOTHING. `classifiedTrivia()` never
|
|
272
248
|
* produces one, and the combinator path still handles it if a host writes one.
|
|
273
249
|
*/
|
|
274
|
-
export function charArmsFor(spec:
|
|
275
|
-
if (spec
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
arms = null
|
|
282
|
-
} else {
|
|
283
|
-
for (const arm of spec.arms) {
|
|
284
|
-
const c = classifyParser(arm.parser)
|
|
285
|
-
if (!c) { arms = null; break }
|
|
286
|
-
arms.push(c)
|
|
287
|
-
}
|
|
250
|
+
export function charArmsFor(spec: TriviaArmsSpec): readonly TriviaArmMatcher[] | null {
|
|
251
|
+
if (spec.minRepeats > 1) return null
|
|
252
|
+
const arms: TriviaArmMatcher[] = []
|
|
253
|
+
for (const arm of spec.arms) {
|
|
254
|
+
const c = classifyParser(arm.parser)
|
|
255
|
+
if (!c) return null
|
|
256
|
+
arms.push(c)
|
|
288
257
|
}
|
|
289
|
-
armSpec3 = armSpec2
|
|
290
|
-
armValue3 = armValue2
|
|
291
|
-
armSpec2 = armSpec1
|
|
292
|
-
armValue2 = armValue1
|
|
293
|
-
armSpec1 = armSpec0
|
|
294
|
-
armValue1 = armValue0
|
|
295
|
-
armSpec0 = spec
|
|
296
|
-
armValue0 = arms
|
|
297
258
|
return arms
|
|
298
259
|
}
|
|
299
260
|
|
package/src/cst/trivia-kinds.ts
CHANGED
|
@@ -2,7 +2,10 @@ import type { Combinator, ParseContext } from '../types.ts'
|
|
|
2
2
|
import { pushCstTriviaEntry, pushTriviaLogEntry } from './capture-buffer.ts'
|
|
3
3
|
import { startsFirstSet } from '../combinators/first-set.ts'
|
|
4
4
|
import { createDetachedParseContext } from '../parse-context.ts'
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
charArmsFor, charTriviaEnd, charTriviaKindMask, charTriviaVisit, commonLabeledTriviaVisitor, type TriviaArmMatcher,
|
|
7
|
+
} from './trivia-charscan.ts'
|
|
8
|
+
import type { CssTriviaVisitor } from './trivia-css-scanner.ts'
|
|
6
9
|
|
|
7
10
|
export type TriviaChunk = { start: number; end: number; kindIndex: number }
|
|
8
11
|
|
|
@@ -10,6 +13,13 @@ export type LabeledTriviaSpec = {
|
|
|
10
13
|
readonly labels: readonly string[]
|
|
11
14
|
readonly arms: ReadonlyArray<{ label: string; kindIndex: number; parser: Combinator<unknown> }>
|
|
12
15
|
readonly minRepeats: number
|
|
16
|
+
/**
|
|
17
|
+
* The spec's char-level scanners, built with it. A scan reads them here: the
|
|
18
|
+
* four-slot memo they used to sit behind thrashed on a grammar with more trivia
|
|
19
|
+
* tables than slots, and rebuilt one on every miss.
|
|
20
|
+
*/
|
|
21
|
+
readonly visitor: CssTriviaVisitor | null
|
|
22
|
+
readonly charArms: readonly TriviaArmMatcher[] | null
|
|
13
23
|
}
|
|
14
24
|
|
|
15
25
|
/** See `trivia-skip.ts`: bounded scalar memoisation avoids a WeakMap in the
|
|
@@ -93,12 +103,18 @@ export function analyzeLabeledTrivia(trivia: Combinator<unknown>): LabeledTrivia
|
|
|
93
103
|
arms.push({ label: peeled.label, kindIndex: 0, parser: peeled.parser })
|
|
94
104
|
}
|
|
95
105
|
|
|
96
|
-
|
|
106
|
+
return cacheLabeledTrivia(trivia, labeledTriviaSpec(arms, minRepeats))
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** A spec, with the char-level scanners every scan of it reads. */
|
|
110
|
+
export function labeledTriviaSpec(arms: LabeledTriviaSpec['arms'], minRepeats: number): LabeledTriviaSpec {
|
|
111
|
+
return {
|
|
97
112
|
labels: arms.map(a => a.label),
|
|
98
113
|
arms,
|
|
99
114
|
minRepeats,
|
|
115
|
+
visitor: commonLabeledTriviaVisitor({ arms, minRepeats }),
|
|
116
|
+
charArms: charArmsFor({ arms, minRepeats }),
|
|
100
117
|
}
|
|
101
|
-
return cacheLabeledTrivia(trivia, spec)
|
|
102
118
|
}
|
|
103
119
|
|
|
104
120
|
/** Label table on a `trivia()` combinator, if all arms are labeled. */
|
|
@@ -169,9 +185,9 @@ export function scanLabeledTriviaEnd(
|
|
|
169
185
|
spec: LabeledTriviaSpec,
|
|
170
186
|
state?: unknown,
|
|
171
187
|
): number {
|
|
172
|
-
// `
|
|
188
|
+
// `charArms` only lowers `minRepeats <= 1`, where "no chunk matched" and
|
|
173
189
|
// "the minimum was not met" are the same position — so an end IS the answer.
|
|
174
|
-
const chars =
|
|
190
|
+
const chars = spec.charArms
|
|
175
191
|
if (chars !== null) return charTriviaEnd(input, cur, chars)
|
|
176
192
|
|
|
177
193
|
let pos = cur
|
|
@@ -205,9 +221,9 @@ export function visitLabeledTrivia(
|
|
|
205
221
|
visit: (start: number, end: number, kindIndex: number) => void,
|
|
206
222
|
): number | undefined {
|
|
207
223
|
if (spec.minRepeats > 1) return undefined
|
|
208
|
-
const common =
|
|
224
|
+
const common = spec.visitor
|
|
209
225
|
if (common !== null) return common(input, cur, visit)
|
|
210
|
-
const chars =
|
|
226
|
+
const chars = spec.charArms
|
|
211
227
|
if (chars !== null) return charTriviaVisit(input, cur, chars, visit)
|
|
212
228
|
|
|
213
229
|
let pos = cur
|
|
@@ -331,7 +347,7 @@ export function triviaKindMaskAt(
|
|
|
331
347
|
spec: LabeledTriviaSpec,
|
|
332
348
|
state?: unknown,
|
|
333
349
|
): number {
|
|
334
|
-
const chars =
|
|
350
|
+
const chars = spec.charArms
|
|
335
351
|
if (chars !== null) return charTriviaKindMask(input, pos, chars)
|
|
336
352
|
|
|
337
353
|
let cur = pos
|
package/src/index.ts
CHANGED
|
@@ -30,6 +30,7 @@ export { node } from './combinators/node.ts'
|
|
|
30
30
|
export type { BuildNode, NodeCombinator, NodeOptions, NodeProjectOptions } from './combinators/node.ts'
|
|
31
31
|
// lazy() is intentionally NOT exported.
|
|
32
32
|
export { transform, trivia, classifiedTrivia, label, field } from './combinators/map.ts'
|
|
33
|
+
export type { FieldOptions } from './combinators/map.ts'
|
|
33
34
|
export { parse, parser, noTrivia } from './combinators/grammar.ts'
|
|
34
35
|
export type { ParseOptions, ParserOptions, ParsemanParser } from './combinators/grammar.ts'
|
|
35
36
|
export { token, leaf, sourceLeaf } from './combinators/token.ts'
|
package/src/plugin/evaluator.ts
CHANGED
|
@@ -314,7 +314,7 @@ const SUPPORTED: Record<string, (...args: unknown[]) => Combinator<unknown>> = {
|
|
|
314
314
|
a[0] as Readonly<Record<string, Combinator<unknown>>>,
|
|
315
315
|
),
|
|
316
316
|
label: (...a) => parseman.label(a[0] as string, a[1] as Combinator<unknown>),
|
|
317
|
-
field: (...a) => parseman.field(a[0] as string, a[1] as Combinator<unknown
|
|
317
|
+
field: (...a) => parseman.field(a[0] as string, a[1] as Combinator<unknown>, a[2] as parseman.FieldOptions | undefined),
|
|
318
318
|
noTrivia: (...a) => parseman.noTrivia(a[0] as Combinator<unknown>),
|
|
319
319
|
token: (...a) => parseman.token(a[0] as Combinator<unknown>),
|
|
320
320
|
// `routed(fallback)` — the fallback must be forwarded. A zero-arg entry here read
|