parseman 0.47.1 → 0.48.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.
Files changed (124) hide show
  1. package/README.md +27 -21
  2. package/dist/analysis/diagnostics.js +2863 -353
  3. package/dist/analysis/diagnostics.js.map +3 -3
  4. package/dist/cli/index.js +2854 -344
  5. package/dist/cli/index.js.map +3 -3
  6. package/dist/combinators/expect.d.ts +1 -0
  7. package/dist/combinators/expect.d.ts.map +1 -1
  8. package/dist/combinators/expected.d.ts +8 -0
  9. package/dist/combinators/expected.d.ts.map +1 -0
  10. package/dist/combinators/first-set.d.ts +8 -0
  11. package/dist/combinators/first-set.d.ts.map +1 -1
  12. package/dist/combinators/grammar.d.ts.map +1 -1
  13. package/dist/combinators/keywords.d.ts +4 -0
  14. package/dist/combinators/keywords.d.ts.map +1 -1
  15. package/dist/combinators/literal.d.ts.map +1 -1
  16. package/dist/combinators/not.d.ts.map +1 -1
  17. package/dist/combinators/peek.d.ts.map +1 -1
  18. package/dist/combinators/regex.d.ts.map +1 -1
  19. package/dist/combinators/repeat.d.ts.map +1 -1
  20. package/dist/combinators/sequence.d.ts.map +1 -1
  21. package/dist/combinators/trivia-skip.d.ts +16 -3
  22. package/dist/combinators/trivia-skip.d.ts.map +1 -1
  23. package/dist/compiler/direct-projection.d.ts +12 -0
  24. package/dist/compiler/direct-projection.d.ts.map +1 -0
  25. package/dist/compiler/token-alphabet.d.ts +845 -5
  26. package/dist/compiler/token-alphabet.d.ts.map +1 -1
  27. package/dist/compiler/token-capability.d.ts +3 -0
  28. package/dist/compiler/token-capability.d.ts.map +1 -0
  29. package/dist/compiler/token-capability.js +3192 -0
  30. package/dist/compiler/token-capability.js.map +6 -0
  31. package/dist/cst/trivia-charscan.d.ts +3 -0
  32. package/dist/cst/trivia-charscan.d.ts.map +1 -1
  33. package/dist/cst/trivia-css-scanner.d.ts +5 -0
  34. package/dist/cst/trivia-css-scanner.d.ts.map +1 -0
  35. package/dist/cst/trivia-kinds.d.ts.map +1 -1
  36. package/dist/index.js +2862 -339
  37. package/dist/index.js.map +3 -3
  38. package/dist/language-service/index.js +5 -1
  39. package/dist/language-service/index.js.map +1 -1
  40. package/dist/plugin/index.js +2870 -347
  41. package/dist/plugin/index.js.map +3 -3
  42. package/dist/spec/index.js +315 -46
  43. package/dist/spec/index.js.map +2 -2
  44. package/dist/table/assemble.d.ts.map +1 -1
  45. package/dist/table/child-slots.d.ts.map +1 -1
  46. package/dist/table/compile-rule-map.d.ts +3 -1
  47. package/dist/table/compile-rule-map.d.ts.map +1 -1
  48. package/dist/table/emit-assembly.d.ts +12 -13
  49. package/dist/table/emit-assembly.d.ts.map +1 -1
  50. package/dist/table/emit.d.ts.map +1 -1
  51. package/dist/table/encode.d.ts.map +1 -1
  52. package/dist/table/exec-baseline.d.ts.map +1 -1
  53. package/dist/table/exec.d.ts.map +1 -1
  54. package/dist/table/index.js +2819 -300
  55. package/dist/table/index.js.map +3 -3
  56. package/dist/table/lex-body.d.ts +9 -0
  57. package/dist/table/lex-body.d.ts.map +1 -0
  58. package/dist/table/lex-program.d.ts +25 -0
  59. package/dist/table/lex-program.d.ts.map +1 -0
  60. package/dist/table/ops.d.ts +43 -7
  61. package/dist/table/ops.d.ts.map +1 -1
  62. package/dist/table/program.d.ts +50 -2
  63. package/dist/table/program.d.ts.map +1 -1
  64. package/dist/table/scalar-terminal.d.ts +13 -0
  65. package/dist/table/scalar-terminal.d.ts.map +1 -0
  66. package/dist/table/site-labels.d.ts.map +1 -1
  67. package/dist/types.d.ts +2 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/version.d.ts +1 -1
  70. package/package.json +11 -11
  71. package/src/combinators/expect.ts +1 -0
  72. package/src/combinators/expected.ts +17 -0
  73. package/src/combinators/first-set.ts +58 -5
  74. package/src/combinators/grammar.ts +8 -3
  75. package/src/combinators/keywords.ts +22 -6
  76. package/src/combinators/literal.ts +2 -1
  77. package/src/combinators/not.ts +5 -1
  78. package/src/combinators/peek.ts +5 -1
  79. package/src/combinators/regex.ts +5 -3
  80. package/src/combinators/repeat.ts +4 -10
  81. package/src/combinators/sequence.ts +17 -14
  82. package/src/combinators/trivia-skip.ts +46 -13
  83. package/src/compiler/direct-projection.ts +43 -0
  84. package/src/compiler/token-alphabet.ts +4316 -12
  85. package/src/compiler/token-capability.ts +6 -0
  86. package/src/cst/trivia-charscan.ts +34 -0
  87. package/src/cst/trivia-css-scanner.ts +142 -0
  88. package/src/cst/trivia-kinds.ts +3 -1
  89. package/src/plugin/index.ts +4 -4
  90. package/src/table/assemble.ts +1211 -221
  91. package/src/table/child-slots.ts +2 -1
  92. package/src/table/compile-rule-map.ts +21 -3
  93. package/src/table/emit-assembly.ts +328 -85
  94. package/src/table/emit.ts +16 -2
  95. package/src/table/encode.ts +242 -50
  96. package/src/table/exec-baseline.ts +3 -7
  97. package/src/table/exec.ts +121 -7
  98. package/src/table/lex-body.ts +30 -0
  99. package/src/table/lex-program.ts +422 -0
  100. package/src/table/ops.ts +45 -7
  101. package/src/table/program.ts +46 -2
  102. package/src/table/scalar-terminal.ts +51 -0
  103. package/src/table/site-labels.ts +11 -1
  104. package/src/table/stamp.ts +1 -1
  105. package/src/types.ts +1 -1
  106. package/src/version.ts +1 -1
  107. package/dist/analysis/diagnostics.cjs +0 -13824
  108. package/dist/analysis/diagnostics.cjs.map +0 -6
  109. package/dist/cli/index.cjs +0 -14925
  110. package/dist/cli/index.cjs.map +0 -6
  111. package/dist/index.cjs +0 -16391
  112. package/dist/index.cjs.map +0 -6
  113. package/dist/language-service/index.cjs +0 -1304
  114. package/dist/language-service/index.cjs.map +0 -6
  115. package/dist/oracle/index.cjs +0 -254
  116. package/dist/oracle/index.cjs.map +0 -6
  117. package/dist/plugin/index.cjs +0 -16097
  118. package/dist/plugin/index.cjs.map +0 -6
  119. package/dist/run/index.cjs +0 -577
  120. package/dist/run/index.cjs.map +0 -6
  121. package/dist/spec/index.cjs +0 -6236
  122. package/dist/spec/index.cjs.map +0 -6
  123. package/dist/table/index.cjs +0 -11463
  124. package/dist/table/index.cjs.map +0 -6
@@ -1,577 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/run/index.ts
21
- var run_exports = {};
22
- __export(run_exports, {
23
- buildRootTriviaIndex: () => buildRootTriviaIndex,
24
- run: () => run
25
- });
26
- module.exports = __toCommonJS(run_exports);
27
-
28
- // src/cst/trivia-entries.ts
29
- var EMPTY_INDICES = Object.freeze([]);
30
- var EMPTY_GAPS = Object.freeze([]);
31
- var SELECTED_ROOT_STRIDE = 5;
32
- function buildRootTriviaIndex(log, labels) {
33
- const length = Math.floor(log.length / SELECTED_ROOT_STRIDE);
34
- const markerOffset = (i) => i * SELECTED_ROOT_STRIDE;
35
- const ownedRangeStart = (i) => log[markerOffset(i)];
36
- const ownedRangeEnd = (i) => log[markerOffset(i) + 1];
37
- const markerStart = (i) => log[markerOffset(i) + 2];
38
- const markerEnd = (i) => log[markerOffset(i) + 3];
39
- const markerKind = (i) => log[markerOffset(i) + 4];
40
- const entries = {
41
- length,
42
- labels,
43
- stride: SELECTED_ROOT_STRIDE,
44
- start: markerStart,
45
- end: markerEnd,
46
- insertIndex: () => void 0,
47
- kindIndex: markerKind,
48
- kind(i) {
49
- return labels[markerKind(i)];
50
- },
51
- text(i, input) {
52
- return input.slice(markerStart(i), markerEnd(i));
53
- }
54
- };
55
- const lowerBound = (offset, by) => {
56
- let lo = 0;
57
- let hi = length;
58
- while (lo < hi) {
59
- const mid = lo + hi >>> 1;
60
- if (by(mid) < offset) lo = mid + 1;
61
- else hi = mid;
62
- }
63
- return lo;
64
- };
65
- const gapRowsAt = (offset, direction) => {
66
- const edge = direction === "before" ? ownedRangeEnd : ownedRangeStart;
67
- let first = lowerBound(offset, edge);
68
- if (first === length || edge(first) !== offset) return void 0;
69
- const start = ownedRangeStart(first);
70
- const end = ownedRangeEnd(first);
71
- while (first > 0 && ownedRangeStart(first - 1) === start && ownedRangeEnd(first - 1) === end) first--;
72
- let last = first + 1;
73
- while (last < length && ownedRangeStart(last) === start && ownedRangeEnd(last) === end) last++;
74
- return [first, last];
75
- };
76
- const indices = (first, last) => {
77
- const out = [];
78
- for (let i = first; i < last; i++) out.push(i);
79
- return out;
80
- };
81
- const makeGap = (first, last) => {
82
- const start = ownedRangeStart(first);
83
- const end = ownedRangeEnd(first);
84
- let entryIndices;
85
- return {
86
- start,
87
- end,
88
- get entryIndices() {
89
- return entryIndices ??= indices(first, last);
90
- },
91
- hasKind(kind) {
92
- for (let i = first; i < last; i++) {
93
- if (labels[markerKind(i)] === kind) return true;
94
- }
95
- return false;
96
- },
97
- text(input) {
98
- return input.slice(start, end);
99
- }
100
- };
101
- };
102
- let maps;
103
- const getMaps = () => {
104
- if (maps !== void 0) return maps;
105
- const before = /* @__PURE__ */ new Map();
106
- const after = /* @__PURE__ */ new Map();
107
- const beforeGaps = /* @__PURE__ */ new Map();
108
- const afterGaps = /* @__PURE__ */ new Map();
109
- const gaps = [];
110
- for (let first = 0; first < length; ) {
111
- let last = first + 1;
112
- while (last < length && ownedRangeStart(last) === ownedRangeStart(first) && ownedRangeEnd(last) === ownedRangeEnd(first)) last++;
113
- const gap = makeGap(first, last);
114
- gaps.push(gap);
115
- afterGaps.set(gap.start, gap);
116
- beforeGaps.set(gap.end, gap);
117
- after.set(gap.start, [...gap.entryIndices]);
118
- before.set(gap.end, [...gap.entryIndices]);
119
- first = last;
120
- }
121
- maps = { before, after, beforeGaps, afterGaps, gaps };
122
- return maps;
123
- };
124
- return {
125
- entries,
126
- labels,
127
- get before() {
128
- return getMaps().before;
129
- },
130
- get after() {
131
- return getMaps().after;
132
- },
133
- entryIndicesBefore(offset) {
134
- const rows = gapRowsAt(offset, "before");
135
- return rows ? indices(rows[0], rows[1]) : EMPTY_INDICES;
136
- },
137
- entryIndicesAfter(offset) {
138
- const rows = gapRowsAt(offset, "after");
139
- return rows ? indices(rows[0], rows[1]) : EMPTY_INDICES;
140
- },
141
- gapBefore(offset) {
142
- const rows = gapRowsAt(offset, "before");
143
- return rows ? makeGap(rows[0], rows[1]) : void 0;
144
- },
145
- gapAfter(offset) {
146
- const rows = gapRowsAt(offset, "after");
147
- return rows ? makeGap(rows[0], rows[1]) : void 0;
148
- },
149
- gaps() {
150
- return getMaps().gaps;
151
- },
152
- gapsWithKind(kind) {
153
- const kinds = typeof kind === "string" ? [kind] : kind;
154
- const matches = [];
155
- for (let first = 0; first < length; ) {
156
- let last = first + 1;
157
- while (last < length && ownedRangeStart(last) === ownedRangeStart(first) && ownedRangeEnd(last) === ownedRangeEnd(first)) last++;
158
- let matched = false;
159
- for (let i = first; i < last && !matched; i++) {
160
- const label = labels[markerKind(i)];
161
- for (const kind2 of kinds) {
162
- if (label === kind2) {
163
- matched = true;
164
- break;
165
- }
166
- }
167
- }
168
- if (matched) matches.push(makeGap(first, last));
169
- first = last;
170
- }
171
- return matches.length === 0 ? EMPTY_GAPS : matches;
172
- }
173
- };
174
- }
175
-
176
- // src/line-index.ts
177
- function recordLineRange(index, input, start, end) {
178
- const lineStarts = index.lineStarts;
179
- for (let i = start; i < end; i++) {
180
- if (input.charCodeAt(i) === 10) lineStarts.push(i + 1);
181
- }
182
- }
183
- function recordLineRangeFromContext(ctx, input, _startHint, end) {
184
- if (!ctx.trackLines) return;
185
- const from = ctx._lineScannedTo ?? 0;
186
- if (end <= from) return;
187
- const index = ctx._lineIndex ?? (ctx._lineStarts ? { lineStarts: ctx._lineStarts } : void 0);
188
- if (!index) return;
189
- recordLineRange(index, input, from, end);
190
- ctx._lineScannedTo = end;
191
- }
192
- function offsetToLineCol(index, offset) {
193
- const { lineStarts } = index;
194
- let lo = 0;
195
- let hi = lineStarts.length - 1;
196
- while (lo < hi) {
197
- const mid = lo + hi + 1 >> 1;
198
- if (lineStarts[mid] <= offset) lo = mid;
199
- else hi = mid - 1;
200
- }
201
- return { line: lo + 1, col: offset - lineStarts[lo] + 1 };
202
- }
203
- function annotateSpan(span, index) {
204
- const s = offsetToLineCol(index, span.start);
205
- const e = offsetToLineCol(index, span.end);
206
- return {
207
- ...span,
208
- startLine: s.line,
209
- startColumn: s.col,
210
- endLine: e.line,
211
- endColumn: e.col
212
- };
213
- }
214
- function annotateSpanFromLineContext(span, ctx) {
215
- if (!ctx.trackLines) return span;
216
- const index = ctx._lineIndex ?? (ctx._lineStarts ? { lineStarts: ctx._lineStarts } : void 0);
217
- return index ? annotateSpan(span, index) : span;
218
- }
219
-
220
- // src/cst/capture-buffer.ts
221
- function cstCaptureActive(ctx) {
222
- return ctx._cstBuf !== void 0 || ctx._cstLeaves !== void 0;
223
- }
224
- function pushCstChild(ctx, built, rawEntry) {
225
- const b = ctx._cstBuf;
226
- if (b) {
227
- if (b.rawOnly !== true) {
228
- if (b.ch) b.ch.push(built);
229
- else if (b.single !== void 0) {
230
- b.ch = [b.single, built];
231
- b.single = void 0;
232
- } else b.single = built;
233
- }
234
- if (b.raw) b.raw.push(rawEntry);
235
- else if (b.rawSingle !== void 0) {
236
- b.raw = [b.rawSingle, rawEntry];
237
- b.rawSingle = void 0;
238
- } else b.rawSingle = rawEntry;
239
- return;
240
- }
241
- if (ctx._cstChildren) ctx._cstChildren.push(built);
242
- else if (ctx._cstLeaves) ctx._cstLeaves.push(built);
243
- if (ctx._cstRawChildren) ctx._cstRawChildren.push(rawEntry);
244
- }
245
-
246
- // src/recovery/scan.ts
247
- function probeAt(sentinel, input, pos, ctx) {
248
- const s = {
249
- _probe: ctx._probe,
250
- _errors: ctx._errors,
251
- _cstLeaves: ctx._cstLeaves,
252
- _cstChildren: ctx._cstChildren,
253
- _cstRawChildren: ctx._cstRawChildren,
254
- _cstTriviaLog: ctx._cstTriviaLog,
255
- _triviaLog: ctx._triviaLog,
256
- _rootTriviaLog: ctx._rootTriviaLog,
257
- _fields: ctx._fields,
258
- _cstBuf: ctx._cstBuf,
259
- _tolerant: ctx._tolerant,
260
- _sync: ctx._sync
261
- };
262
- ctx._probe = void 0;
263
- ctx._errors = void 0;
264
- ctx._cstLeaves = void 0;
265
- ctx._cstChildren = void 0;
266
- ctx._cstRawChildren = void 0;
267
- ctx._cstTriviaLog = void 0;
268
- ctx._triviaLog = void 0;
269
- ctx._rootTriviaLog = void 0;
270
- ctx._fields = void 0;
271
- ctx._cstBuf = void 0;
272
- ctx._tolerant = void 0;
273
- ctx._sync = void 0;
274
- try {
275
- return sentinel.parse(input, pos, ctx).ok;
276
- } finally {
277
- ctx._probe = s._probe;
278
- ctx._errors = s._errors;
279
- ctx._cstLeaves = s._cstLeaves;
280
- ctx._cstChildren = s._cstChildren;
281
- ctx._cstRawChildren = s._cstRawChildren;
282
- ctx._cstTriviaLog = s._cstTriviaLog;
283
- ctx._triviaLog = s._triviaLog;
284
- ctx._rootTriviaLog = s._rootTriviaLog;
285
- ctx._fields = s._fields;
286
- ctx._cstBuf = s._cstBuf;
287
- ctx._tolerant = s._tolerant;
288
- ctx._sync = s._sync;
289
- }
290
- }
291
- function orSentinel(a, b) {
292
- if (b === void 0) return a;
293
- return {
294
- _tag: "orSentinel",
295
- _meta: { firstSet: { kind: "any" }, canMatchNewline: false, isTrivia: false },
296
- _def: { tag: "unknown" },
297
- parse(input, pos, ctx) {
298
- const ra = a.parse(input, pos, ctx);
299
- if (ra.ok) return ra;
300
- return b.parse(input, pos, ctx);
301
- }
302
- };
303
- }
304
- function firstSetSentinel(fs) {
305
- if (fs.kind !== "ranges" || fs.ranges.length === 0) return null;
306
- const ranges = fs.ranges;
307
- return {
308
- _tag: "firstSetSentinel",
309
- _meta: { firstSet: fs, canMatchNewline: false, isTrivia: false },
310
- _def: { tag: "unknown" },
311
- parse(input, pos) {
312
- const code = pos < input.length ? input.codePointAt(pos) : void 0;
313
- if (code !== void 0) {
314
- for (const r of ranges) {
315
- if (code >= r.lo && code <= r.hi) return { ok: true, value: null, span: { start: pos, end: pos } };
316
- }
317
- }
318
- return { ok: false, expected: [], span: { start: pos, end: pos } };
319
- }
320
- };
321
- }
322
- function recoverScan(input, from, ctx, sync, expected) {
323
- let scanPos = from;
324
- while (scanPos < input.length && !probeAt(sync, input, scanPos, ctx)) scanPos++;
325
- const span = { start: from, end: scanPos };
326
- if (ctx.trackLines) recordLineRangeFromContext(ctx, input, from, scanPos);
327
- const error = { _tag: "parseError", span: ctx.trackLines ? annotateSpanFromLineContext(span, ctx) : span, expected };
328
- ctx._errors?.push(error);
329
- return { error, end: scanPos };
330
- }
331
- function matchesAt(sentinel, input, pos, ctx) {
332
- return probeAt(sentinel, input, pos, ctx);
333
- }
334
- function captureError(ctx, error) {
335
- if (cstCaptureActive(ctx)) pushCstChild(ctx, error, error);
336
- }
337
- var REC = { scan: recoverScan, at: matchesAt, or: orSentinel, sentinel: firstSetSentinel, capture: captureError };
338
-
339
- // src/parse-context.ts
340
- function createParseContext() {
341
- return {
342
- trivia: void 0,
343
- scanSkip: void 0,
344
- triviaKindLabels: void 0,
345
- captureTrivia: void 0,
346
- _triviaCaptureMask: void 0,
347
- trackLines: false,
348
- state: void 0,
349
- build: void 0,
350
- _errors: void 0,
351
- _tolerant: void 0,
352
- _sync: void 0,
353
- _rec: void 0,
354
- _fe: void 0,
355
- _fx: void 0,
356
- _fc: void 0,
357
- _probe: void 0,
358
- _cstChildren: void 0,
359
- _cstLeaves: void 0,
360
- _cstRawChildren: void 0,
361
- _triviaLog: void 0,
362
- _rootTriviaLog: void 0,
363
- _rootTriviaKindIndex: void 0,
364
- _rootTriviaStrictScopes: void 0,
365
- _rootTriviaCapture: void 0,
366
- _cstTriviaLog: void 0,
367
- _fields: void 0,
368
- _cstBuf: void 0,
369
- _routed: void 0,
370
- _lineStarts: void 0,
371
- _lineIndex: void 0,
372
- _lineScannedTo: void 0,
373
- _grammarCoverage: void 0,
374
- _grammarTrace: void 0
375
- };
376
- }
377
-
378
- // src/cst/host-mode.ts
379
- var FUSED_HOST_MODE = /* @__PURE__ */ Symbol.for("parseman.fusedHostMode");
380
- var FUSED_HOST_ELIDED = /* @__PURE__ */ Symbol.for("parseman.fusedHostElided");
381
- function assertHostModeCompatible(mode, build, hostBranchElided = true) {
382
- const isCstHost = build?._parsemanCstOutput === true;
383
- if (mode === "ast" && isCstHost && hostBranchElided) {
384
- throw new Error(
385
- "parseman: this parser was compiled for host mode \"ast\" (the default), so its nodes build through their own `build` callbacks and no positioned-CST branch was emitted. It cannot be driven with a positioned-CST host (cstBuildHost / a language-service host). Compile a second artifact from the SAME grammar with `compile(grammar, { hostMode: 'cst' })` \u2014 or, under the macro, a second `rules({ hostMode: 'cst' }, factory)` call site \u2014 and drive that one instead."
386
- );
387
- }
388
- if (mode === "cst" && !isCstHost) {
389
- throw new Error(
390
- 'parseman: this parser was compiled for host mode "cst", so every node builds through a positioned-CST `ctx.build` host. Pass one (e.g. `{ build: cstBuildHost }`), or use an artifact compiled with the default `hostMode: "ast"` to get the grammar\'s own AST.'
391
- );
392
- }
393
- }
394
-
395
- // src/functional/run.ts
396
- var SELECT_EXAMPLE = "run(entry, input, { rootTrivia: { select: ['blockComment', 'lineComment'] } })";
397
- var REMOVED_RUN_RESULT_FIELDS = [
398
- [
399
- "triviaMap",
400
- `It was a dense root-trivia index built on every parse; root trivia is now an OPT-IN sparse capture, because most grammars paid for an index they never read. Migration: name the trivia labels your grammar defines \u2014 ${SELECT_EXAMPLE} \u2014 and read \`RunResult.rootTrivia\`, whose \`.index\` carries the labels and gap lookups \`triviaMap\` exposed.`
401
- ],
402
- [
403
- "triviaLog",
404
- `It was the flat \`start, end[, kindIndex]\` log every other trivia view was derived from, and it is no longer allocated at all \u2014 not empty, absent. Migration: request the labels you need \u2014 ${SELECT_EXAMPLE} \u2014 and read \`RunResult.rootTrivia.rows\`. Do NOT reuse a stride-2/3 reader: rows are a different width and a different unit (one row per SELECTED marker, not one per trivia chunk), so an old loop reads confidently wrong offsets rather than failing.`
405
- ],
406
- [
407
- "triviaKindLabels",
408
- `It was already optional, so nothing ever flagged its disappearance \u2014 and \`triviaKindMask(undefined, \u2026)\` means "capture everything", so reading it now silently WIDENS capture instead of erroring. Migration: request labels \u2014 ${SELECT_EXAMPLE} \u2014 then the set you asked for is \`RunResult.rootTrivia.select\` and the resolved table is \`RunResult.rootTrivia.index.labels\`.`
409
- ]
410
- ];
411
- var RunResultRecord = class {
412
- constructor(ok, value, span, expected, errors, unconsumedFrom) {
413
- this.ok = ok;
414
- this.value = value;
415
- this.span = span;
416
- this.expected = expected;
417
- this.errors = errors;
418
- this.unconsumedFrom = unconsumedFrom;
419
- }
420
- };
421
- var RunResultWithRootTrivia = class {
422
- constructor(ok, value, span, expected, errors, rootTrivia, unconsumedFrom) {
423
- this.ok = ok;
424
- this.value = value;
425
- this.span = span;
426
- this.expected = expected;
427
- this.errors = errors;
428
- this.rootTrivia = rootTrivia;
429
- this.unconsumedFrom = unconsumedFrom;
430
- }
431
- };
432
- for (const proto of [RunResultRecord.prototype, RunResultWithRootTrivia.prototype]) {
433
- for (const [name, detail] of REMOVED_RUN_RESULT_FIELDS) {
434
- Object.defineProperty(proto, name, {
435
- configurable: true,
436
- enumerable: false,
437
- get() {
438
- throw new TypeError(
439
- `RunResult.${name} was REMOVED in parseman 0.44.0 and has no default replacement. ${detail}`
440
- );
441
- }
442
- });
443
- }
444
- }
445
- var invoke = (r, input, pos, ctx) => typeof r === "function" ? r(input, pos, ctx) : r.parse(input, pos, ctx);
446
- function ambientTriviaFromRunnable(r) {
447
- if (!r) return void 0;
448
- if (typeof r === "function") return r._meta?.grammarTrivia;
449
- if (r._meta.isTrivia) return void 0;
450
- return r._meta.grammarTrivia ?? (r._def.tag === "grammar" ? r._def.triviaParser : void 0);
451
- }
452
- function triviaKindLabelsFromRunnable(r) {
453
- if (!r) return void 0;
454
- if (typeof r === "function") return r._meta?.triviaKindLabels;
455
- const grammarTrivia = r._meta.grammarTrivia;
456
- return grammarTrivia?._meta.triviaKindLabels ?? r._meta.triviaKindLabels ?? (r._def.tag === "grammar" ? r._def.triviaParser?._meta.triviaKindLabels : void 0);
457
- }
458
- function rootTriviaClassifiedFromRunnable(r) {
459
- if (!r) return false;
460
- if (typeof r === "function") return r._meta?.rootTriviaClassified === true;
461
- const grammarTrivia = r._meta.grammarTrivia;
462
- return grammarTrivia?._meta.rootTriviaClassified === true || r._meta.rootTriviaClassified === true;
463
- }
464
- function makeSelectedRootLabelIndex(labels) {
465
- const index = /* @__PURE__ */ Object.create(null);
466
- for (let i = 0; i < labels.length; i++) {
467
- if (index[labels[i]] === void 0) index[labels[i]] = i;
468
- }
469
- return index;
470
- }
471
- function growSpanEnd(span, input, end) {
472
- if (span.endLine === void 0 || span.endColumn === void 0) {
473
- return { start: span.start, end };
474
- }
475
- let line = span.endLine;
476
- let column = span.endColumn;
477
- for (let i = span.end; i < end; i++) {
478
- if (input.charCodeAt(i) === 10) {
479
- line++;
480
- column = 1;
481
- } else {
482
- column++;
483
- }
484
- }
485
- return { ...span, end, endLine: line, endColumn: column };
486
- }
487
- function runOnce(entry, input, options) {
488
- if (typeof entry !== "function" && typeof entry?.parse !== "function") {
489
- throw new TypeError(
490
- `run(): start production is ${entry === null ? "null" : typeof entry}, not a rule \u2014 the requested grammar rule does not exist (check the rule name).`
491
- );
492
- }
493
- const rootTriviaSelection = options.rootTrivia?.select;
494
- const captureRootTrivia = rootTriviaSelection !== void 0 && rootTriviaSelection.length > 0;
495
- const selectedRootLog = captureRootTrivia ? [] : void 0;
496
- const selectedRootLabelIndex = captureRootTrivia ? makeSelectedRootLabelIndex(rootTriviaSelection) : void 0;
497
- const errors = [];
498
- const grammarTrivia = typeof entry !== "function" ? entry._meta.grammarTrivia : void 0;
499
- const grammarScanSkip = typeof entry !== "function" ? entry._meta.grammarScanSkip : void 0;
500
- const triviaKindLabels = triviaKindLabelsFromRunnable(entry) ?? triviaKindLabelsFromRunnable(options.trivia);
501
- if (captureRootTrivia && triviaKindLabels === void 0) {
502
- throw new TypeError("run(): rootTrivia.select requires labeled grammar trivia.");
503
- }
504
- if (captureRootTrivia) {
505
- for (const label of rootTriviaSelection) {
506
- if (!triviaKindLabels.includes(label)) {
507
- throw new TypeError(`run(): rootTrivia.select contains unknown trivia label ${JSON.stringify(label)}.`);
508
- }
509
- }
510
- }
511
- if (captureRootTrivia && !rootTriviaClassifiedFromRunnable(entry) && !rootTriviaClassifiedFromRunnable(options.trivia)) {
512
- throw new TypeError(
513
- "run(): rootTrivia.select requires classifiedTrivia() at the root."
514
- );
515
- }
516
- const stamped = entry;
517
- assertHostModeCompatible(
518
- typeof entry === "function" ? stamped[FUSED_HOST_MODE] ?? "ast" : entry._meta.grammarHostMode ?? "ast",
519
- options.build,
520
- typeof entry === "function" && stamped[FUSED_HOST_ELIDED] === true
521
- );
522
- const ctx = createParseContext();
523
- if (captureRootTrivia) {
524
- ctx._rootTriviaLog = selectedRootLog;
525
- ctx._rootTriviaKindIndex = selectedRootLabelIndex;
526
- ctx._rootTriviaStrictScopes = true;
527
- }
528
- ctx._errors = errors;
529
- ctx.build = options.build;
530
- ctx.state = options.state;
531
- if (grammarTrivia !== void 0) ctx.trivia = grammarTrivia;
532
- if (triviaKindLabels) ctx.triviaKindLabels = triviaKindLabels;
533
- if (grammarScanSkip !== void 0) ctx.scanSkip = grammarScanSkip;
534
- if (options.triviaCaptureMask !== void 0) ctx._triviaCaptureMask = options.triviaCaptureMask;
535
- if (options.tolerant) {
536
- ctx._tolerant = true;
537
- ctx._rec = REC;
538
- }
539
- if (options.instrumentation !== void 0) {
540
- ctx._grammarCoverage = options.instrumentation._grammarCoverage;
541
- ctx._grammarTrace = options.instrumentation._grammarTrace;
542
- }
543
- const r = invoke(entry, input, 0, ctx);
544
- const value = r.ok ? r.value : void 0;
545
- let span = r.span ?? { start: 0, end: 0 };
546
- const expected = r.ok ? [] : r.expected ?? [];
547
- let unconsumedFrom = null;
548
- if (r.ok) {
549
- let pos = span.end;
550
- const tail = options.trivia ?? ambientTriviaFromRunnable(entry);
551
- if (tail !== void 0 && pos < input.length) {
552
- const t = invoke(tail, input, pos, createParseContext());
553
- if (t.ok && t.span.end > pos) {
554
- span = growSpanEnd(span, input, t.span.end);
555
- pos = t.span.end;
556
- }
557
- }
558
- unconsumedFrom = pos < input.length ? pos : null;
559
- }
560
- return selectedRootLog !== void 0 && selectedRootLog.length > 0 ? new RunResultWithRootTrivia(
561
- r.ok,
562
- value,
563
- span,
564
- expected,
565
- errors,
566
- {
567
- rows: selectedRootLog,
568
- select: rootTriviaSelection,
569
- index: buildRootTriviaIndex(selectedRootLog, rootTriviaSelection)
570
- },
571
- unconsumedFrom
572
- ) : new RunResultRecord(r.ok, value, span, expected, errors, unconsumedFrom);
573
- }
574
- function run(entry, input, options = {}) {
575
- return runOnce(entry, input, options);
576
- }
577
- //# sourceMappingURL=index.cjs.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/run/index.ts", "../../src/cst/trivia-entries.ts", "../../src/line-index.ts", "../../src/cst/capture-buffer.ts", "../../src/recovery/scan.ts", "../../src/parse-context.ts", "../../src/cst/host-mode.ts", "../../src/functional/run.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC4DA,IAAM,gBAAmC,OAAO,OAAO,CAAC,CAAC;AACzD,IAAM,aAAuC,OAAO,OAAO,CAAC,CAAC;AAEtD,IAAM,uBAAuB;AAoE7B,SAAS,qBACd,KACA,QACiB;AACjB,QAAM,SAAS,KAAK,MAAM,IAAI,SAAS,oBAAoB;AAC3D,QAAM,eAAe,CAAC,MAAc,IAAI;AACxC,QAAM,kBAAkB,CAAC,MAAc,IAAI,aAAa,CAAC,CAAC;AAC1D,QAAM,gBAAgB,CAAC,MAAc,IAAI,aAAa,CAAC,IAAI,CAAC;AAC5D,QAAM,cAAc,CAAC,MAAc,IAAI,aAAa,CAAC,IAAI,CAAC;AAC1D,QAAM,YAAY,CAAC,MAAc,IAAI,aAAa,CAAC,IAAI,CAAC;AACxD,QAAM,aAAa,CAAC,MAAc,IAAI,aAAa,CAAC,IAAI,CAAC;AAEzD,QAAM,UAA6B;AAAA,IACjC;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,KAAK;AAAA,IACL,aAAa,MAAM;AAAA,IACnB,WAAW;AAAA,IACX,KAAK,GAAG;AACN,aAAO,OAAO,WAAW,CAAC,CAAC;AAAA,IAC7B;AAAA,IACA,KAAK,GAAG,OAAO;AACb,aAAO,MAAM,MAAM,YAAY,CAAC,GAAG,UAAU,CAAC,CAAC;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,aAAa,CAAC,QAAgB,OAAsC;AACxE,QAAI,KAAK;AACT,QAAI,KAAK;AACT,WAAO,KAAK,IAAI;AACd,YAAM,MAAO,KAAK,OAAQ;AAC1B,UAAI,GAAG,GAAG,IAAI,OAAQ,MAAK,MAAM;AAAA,UAC5B,MAAK;AAAA,IACZ;AACA,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,CAAC,QAAgB,cAAgE;AACjG,UAAM,OAAO,cAAc,WAAW,gBAAgB;AACtD,QAAI,QAAQ,WAAW,QAAQ,IAAI;AACnC,QAAI,UAAU,UAAU,KAAK,KAAK,MAAM,OAAQ,QAAO;AACvD,UAAM,QAAQ,gBAAgB,KAAK;AACnC,UAAM,MAAM,cAAc,KAAK;AAC/B,WAAO,QAAQ,KAAK,gBAAgB,QAAQ,CAAC,MAAM,SAAS,cAAc,QAAQ,CAAC,MAAM,IAAK;AAC9F,QAAI,OAAO,QAAQ;AACnB,WAAO,OAAO,UAAU,gBAAgB,IAAI,MAAM,SAAS,cAAc,IAAI,MAAM,IAAK;AACxF,WAAO,CAAC,OAAO,IAAI;AAAA,EACrB;AAEA,QAAM,UAAU,CAAC,OAAe,SAAoC;AAClE,UAAM,MAAgB,CAAC;AACvB,aAAS,IAAI,OAAO,IAAI,MAAM,IAAK,KAAI,KAAK,CAAC;AAC7C,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,CAAC,OAAe,SAAgC;AAC9D,UAAM,QAAQ,gBAAgB,KAAK;AACnC,UAAM,MAAM,cAAc,KAAK;AAC/B,QAAI;AACJ,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,IAAI,eAAe;AACjB,eAAO,iBAAiB,QAAQ,OAAO,IAAI;AAAA,MAC7C;AAAA,MACA,QAAQ,MAAM;AACZ,iBAAS,IAAI,OAAO,IAAI,MAAM,KAAK;AACjC,cAAI,OAAO,WAAW,CAAC,CAAC,MAAM,KAAM,QAAO;AAAA,QAC7C;AACA,eAAO;AAAA,MACT;AAAA,MACA,KAAK,OAAO;AACV,eAAO,MAAM,MAAM,OAAO,GAAG;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AAEA,MAAI;AACJ,QAAM,UAAU,MAAM;AACpB,QAAI,SAAS,OAAW,QAAO;AAC/B,UAAM,SAAS,oBAAI,IAAsB;AACzC,UAAM,QAAQ,oBAAI,IAAsB;AACxC,UAAM,aAAa,oBAAI,IAA2B;AAClD,UAAM,YAAY,oBAAI,IAA2B;AACjD,UAAM,OAAwB,CAAC;AAC/B,aAAS,QAAQ,GAAG,QAAQ,UAAS;AACnC,UAAI,OAAO,QAAQ;AACnB,aAAO,OAAO,UAAU,gBAAgB,IAAI,MAAM,gBAAgB,KAAK,KAAK,cAAc,IAAI,MAAM,cAAc,KAAK,EAAG;AAC1H,YAAM,MAAM,QAAQ,OAAO,IAAI;AAC/B,WAAK,KAAK,GAAG;AACb,gBAAU,IAAI,IAAI,OAAO,GAAG;AAC5B,iBAAW,IAAI,IAAI,KAAK,GAAG;AAC3B,YAAM,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,YAAY,CAAC;AAC1C,aAAO,IAAI,IAAI,KAAK,CAAC,GAAG,IAAI,YAAY,CAAC;AACzC,cAAQ;AAAA,IACV;AACA,WAAO,EAAE,QAAQ,OAAO,YAAY,WAAW,KAAK;AACpD,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AAAE,aAAO,QAAQ,EAAE;AAAA,IAAO;AAAA,IACvC,IAAI,QAAQ;AAAE,aAAO,QAAQ,EAAE;AAAA,IAAM;AAAA,IACrC,mBAAmB,QAAQ;AACzB,YAAM,OAAO,UAAU,QAAQ,QAAQ;AACvC,aAAO,OAAO,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI;AAAA,IAC5C;AAAA,IACA,kBAAkB,QAAQ;AACxB,YAAM,OAAO,UAAU,QAAQ,OAAO;AACtC,aAAO,OAAO,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI;AAAA,IAC5C;AAAA,IACA,UAAU,QAAQ;AAChB,YAAM,OAAO,UAAU,QAAQ,QAAQ;AACvC,aAAO,OAAO,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI;AAAA,IAC5C;AAAA,IACA,SAAS,QAAQ;AACf,YAAM,OAAO,UAAU,QAAQ,OAAO;AACtC,aAAO,OAAO,QAAQ,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI;AAAA,IAC5C;AAAA,IACA,OAAO;AACL,aAAO,QAAQ,EAAE;AAAA,IACnB;AAAA,IACA,aAAa,MAAM;AACjB,YAAM,QAAQ,OAAO,SAAS,WAAW,CAAC,IAAI,IAAI;AAClD,YAAM,UAA2B,CAAC;AAIlC,eAAS,QAAQ,GAAG,QAAQ,UAAS;AACnC,YAAI,OAAO,QAAQ;AACnB,eAAO,OAAO,UACT,gBAAgB,IAAI,MAAM,gBAAgB,KAAK,KAC/C,cAAc,IAAI,MAAM,cAAc,KAAK,EAAG;AACnD,YAAI,UAAU;AACd,iBAAS,IAAI,OAAO,IAAI,QAAQ,CAAC,SAAS,KAAK;AAC7C,gBAAM,QAAQ,OAAO,WAAW,CAAC,CAAC;AAClC,qBAAWA,SAAQ,OAAO;AACxB,gBAAI,UAAUA,OAAM;AAClB,wBAAU;AACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AACA,YAAI,QAAS,SAAQ,KAAK,QAAQ,OAAO,IAAI,CAAC;AAC9C,gBAAQ;AAAA,MACV;AACA,aAAO,QAAQ,WAAW,IAAI,aAAa;AAAA,IAC7C;AAAA,EACF;AACF;;;AC5PO,SAAS,gBAAgB,OAAkB,OAAe,OAAe,KAAmB;AACjG,QAAM,aAAa,MAAM;AACzB,WAAS,IAAI,OAAO,IAAI,KAAK,KAAK;AAChC,QAAI,MAAM,WAAW,CAAC,MAAM,GAAI,YAAW,KAAK,IAAI,CAAC;AAAA,EACvD;AACF;AAOO,SAAS,2BACd,KACA,OACA,YACA,KACM;AACN,MAAI,CAAC,IAAI,WAAY;AACrB,QAAM,OAAO,IAAI,kBAAkB;AACnC,MAAI,OAAO,KAAM;AACjB,QAAM,QAAQ,IAAI,eAAe,IAAI,cAAc,EAAE,YAAY,IAAI,YAAY,IAAI;AACrF,MAAI,CAAC,MAAO;AACZ,kBAAgB,OAAO,OAAO,MAAM,GAAG;AACvC,MAAI,iBAAiB;AACvB;AAeO,SAAS,gBACd,OACA,QAC+B;AAC/B,QAAM,EAAE,WAAW,IAAI;AACvB,MAAI,KAAK;AACT,MAAI,KAAK,WAAW,SAAS;AAC7B,SAAO,KAAK,IAAI;AACd,UAAM,MAAO,KAAK,KAAK,KAAM;AAC7B,QAAI,WAAW,GAAG,KAAM,OAAQ,MAAK;AAAA,QAChC,MAAK,MAAM;AAAA,EAClB;AACA,SAAO,EAAE,MAAM,KAAK,GAAG,KAAK,SAAS,WAAW,EAAE,IAAK,EAAE;AAC3D;AAGO,SAAS,aAAa,MAAY,OAAwB;AAC/D,QAAM,IAAI,gBAAgB,OAAO,KAAK,KAAK;AAC3C,QAAM,IAAI,gBAAgB,OAAO,KAAK,GAAG;AACzC,SAAO;AAAA,IACL,GAAG;AAAA,IACH,WAAW,EAAE;AAAA,IACb,aAAa,EAAE;AAAA,IACf,SAAS,EAAE;AAAA,IACX,WAAW,EAAE;AAAA,EACf;AACF;AAEO,SAAS,4BACd,MACA,KACM;AACN,MAAI,CAAC,IAAI,WAAY,QAAO;AAC5B,QAAM,QAAQ,IAAI,eAAe,IAAI,cAAc,EAAE,YAAY,IAAI,YAAY,IAAI;AACrF,SAAO,QAAQ,aAAa,MAAM,KAAK,IAAI;AAC7C;;;ACzFO,SAAS,iBAAiB,KAA4B;AAC3D,SAAO,IAAI,YAAY,UAAa,IAAI,eAAe;AACzD;AAmEO,SAAS,aAAa,KAAmB,OAAgB,UAAyB;AACvF,QAAM,IAAI,IAAI;AACd,MAAI,GAAG;AACL,QAAI,EAAE,YAAY,MAAM;AACtB,UAAI,EAAE,GAAI,GAAE,GAAG,KAAK,KAAK;AAAA,eAChB,EAAE,WAAW,QAAW;AAAE,UAAE,KAAK,CAAC,EAAE,QAAQ,KAAK;AAAG,UAAE,SAAS;AAAA,MAAU,MAC7E,GAAE,SAAS;AAAA,IAClB;AAEA,QAAI,EAAE,IAAK,GAAE,IAAI,KAAK,QAAQ;AAAA,aACrB,EAAE,cAAc,QAAW;AAAE,QAAE,MAAM,CAAC,EAAE,WAAW,QAAQ;AAAG,QAAE,YAAY;AAAA,IAAU,MAC1F,GAAE,YAAY;AACnB;AAAA,EACF;AACA,MAAI,IAAI,aAAc,KAAI,aAAa,KAAK,KAAK;AAAA,WACxC,IAAI,WAAY,KAAI,WAAW,KAAK,KAAK;AAClD,MAAI,IAAI,gBAAiB,KAAI,gBAAgB,KAAK,QAAQ;AAC5D;;;ACnFA,SAAS,QAAQ,UAA+B,OAAe,KAAa,KAA4B;AACtG,QAAM,IAAI;AAAA,IACR,QAAQ,IAAI;AAAA,IAAQ,SAAS,IAAI;AAAA,IACjC,YAAY,IAAI;AAAA,IAAY,cAAc,IAAI;AAAA,IAAc,iBAAiB,IAAI;AAAA,IACjF,eAAe,IAAI;AAAA,IAAe,YAAY,IAAI;AAAA,IAAY,gBAAgB,IAAI;AAAA,IAAgB,SAAS,IAAI;AAAA,IAAS,SAAS,IAAI;AAAA,IACrI,WAAW,IAAI;AAAA,IAAW,OAAO,IAAI;AAAA,EACvC;AACA,MAAI,SAAS;AAAW,MAAI,UAAU;AACtC,MAAI,aAAa;AAAW,MAAI,eAAe;AAAW,MAAI,kBAAkB;AAChF,MAAI,gBAAgB;AAAW,MAAI,aAAa;AAAW,MAAI,iBAAiB;AAAW,MAAI,UAAU;AAAW,MAAI,UAAU;AAKlI,MAAI,YAAY;AAAW,MAAI,QAAQ;AACvC,MAAI;AACF,WAAO,SAAS,MAAM,OAAO,KAAK,GAAG,EAAE;AAAA,EACzC,UAAE;AACA,QAAI,SAAS,EAAE;AAAQ,QAAI,UAAU,EAAE;AACvC,QAAI,aAAa,EAAE;AAAY,QAAI,eAAe,EAAE;AAAc,QAAI,kBAAkB,EAAE;AAC1F,QAAI,gBAAgB,EAAE;AAAe,QAAI,aAAa,EAAE;AAAY,QAAI,iBAAiB,EAAE;AAAgB,QAAI,UAAU,EAAE;AAAS,QAAI,UAAU,EAAE;AACpJ,QAAI,YAAY,EAAE;AAAW,QAAI,QAAQ,EAAE;AAAA,EAC7C;AACF;AAOO,SAAS,WACd,GACA,GACqB;AACrB,MAAI,MAAM,OAAW,QAAO;AAC5B,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,GAAG,iBAAiB,OAAO,UAAU,MAAM;AAAA,IAC5E,MAAM,EAAE,KAAK,UAAU;AAAA,IACvB,MAAM,OAAe,KAAa,KAAyC;AACzE,YAAM,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG;AAClC,UAAI,GAAG,GAAI,QAAO;AAClB,aAAO,EAAE,MAAM,OAAO,KAAK,GAAG;AAAA,IAChC;AAAA,EACF;AACF;AASO,SAAS,iBAAiB,IAAuC;AACtE,MAAI,GAAG,SAAS,YAAY,GAAG,OAAO,WAAW,EAAG,QAAO;AAC3D,QAAM,SAAS,GAAG;AAClB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,EAAE,UAAU,IAAI,iBAAiB,OAAO,UAAU,MAAM;AAAA,IAC/D,MAAM,EAAE,KAAK,UAAU;AAAA,IACvB,MAAM,OAAe,KAAgC;AACnD,YAAM,OAAO,MAAM,MAAM,SAAS,MAAM,YAAY,GAAG,IAAI;AAC3D,UAAI,SAAS,QAAW;AACtB,mBAAW,KAAK,QAAQ;AACtB,cAAI,QAAQ,EAAE,MAAM,QAAQ,EAAE,GAAI,QAAO,EAAE,IAAI,MAAM,OAAO,MAAM,MAAM,EAAE,OAAO,KAAK,KAAK,IAAI,EAAE;AAAA,QACnG;AAAA,MACF;AACA,aAAO,EAAE,IAAI,OAAO,UAAU,CAAC,GAAG,MAAM,EAAE,OAAO,KAAK,KAAK,IAAI,EAAE;AAAA,IACnE;AAAA,EACF;AACF;AAcO,SAAS,YACd,OACA,MACA,KACA,MACA,UACoC;AACpC,MAAI,UAAU;AACd,SAAO,UAAU,MAAM,UAAU,CAAC,QAAQ,MAAM,OAAO,SAAS,GAAG,EAAG;AACtE,QAAM,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ;AACzC,MAAI,IAAI,WAAY,4BAA2B,KAAK,OAAO,MAAM,OAAO;AACxE,QAAM,QAAoB,EAAE,MAAM,cAAc,MAAM,IAAI,aAAa,4BAA4B,MAAM,GAAG,IAAI,MAAM,SAAS;AAC/H,MAAI,SAAS,KAAK,KAAK;AACvB,SAAO,EAAE,OAAO,KAAK,QAAQ;AAC/B;AAOO,SAAS,UACd,UACA,OACA,KACA,KACS;AACT,SAAO,QAAQ,UAAU,OAAO,KAAK,GAAG;AAC1C;AAUO,SAAS,aAAa,KAAmB,OAAyB;AACvE,MAAI,iBAAiB,GAAG,EAAG,cAAa,KAAK,OAAO,KAAK;AAC3D;AAQO,IAAM,MAAuB,EAAE,MAAM,aAAa,IAAI,WAAW,IAAI,YAAY,UAAU,kBAAkB,SAAS,aAAa;;;ACjHnI,SAAS,qBAAmC;AACjD,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,yBAAyB;AAAA,IACzB,oBAAoB;AAAA,IACpB,eAAe;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,eAAe;AAAA,EACjB;AACF;;;ACjDO,IAAM,kBAAkB,uBAAO,IAAI,wBAAwB;AAG3D,IAAM,oBAAoB,uBAAO,IAAI,0BAA0B;AAc/D,SAAS,yBAAyB,MAAgB,OAAgB,mBAAmB,MAAY;AACtG,QAAM,YAAa,OAAqD,uBAAuB;AAK/F,MAAI,SAAS,SAAS,aAAa,kBAAkB;AACnD,UAAM,IAAI;AAAA,MACR;AAAA,IAMF;AAAA,EACF;AACA,MAAI,SAAS,SAAS,CAAC,WAAW;AAChC,UAAM,IAAI;AAAA,MACR;AAAA,IAGF;AAAA,EACF;AACF;;;AC2GA,IAAM,iBAAiB;AAEvB,IAAM,4BAAsE;AAAA,EAC1E;AAAA,IACE;AAAA,IACA,8NAEmC,cAAc;AAAA,EAEnD;AAAA,EACA;AAAA,IACE;AAAA,IACA,0MAEO,cAAc;AAAA,EAGvB;AAAA,EACA;AAAA,IACE;AAAA,IACA,mPAEiC,cAAc;AAAA,EAEjD;AACF;AAsBA,IAAM,kBAAN,MAAsB;AAAA,EAQpB,YACE,IACA,OACA,MACA,UACA,QACA,gBACA;AACA,SAAK,KAAK;AACV,SAAK,QAAQ;AACb,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,iBAAiB;AAAA,EACxB;AACF;AAEA,IAAM,0BAAN,MAA8B;AAAA,EAS5B,YACE,IACA,OACA,MACA,UACA,QACA,YACA,gBACA;AACA,SAAK,KAAK;AACV,SAAK,QAAQ;AACb,SAAK,OAAO;AACZ,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,aAAa;AAClB,SAAK,iBAAiB;AAAA,EACxB;AACF;AASA,WAAW,SAAS,CAAC,gBAAgB,WAAW,wBAAwB,SAAS,GAAG;AAClF,aAAW,CAAC,MAAM,MAAM,KAAK,2BAA2B;AACtD,WAAO,eAAe,OAAO,MAAM;AAAA,MACjC,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,MAAa;AACX,cAAM,IAAI;AAAA,UACR,aAAa,IAAI,mEAAmE,MAAM;AAAA,QAC5F;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAM,SAAS,CAAC,GAAa,OAAe,KAAa,QACvD,OAAO,MAAM,aAAa,EAAE,OAAO,KAAK,GAAG,IAAI,EAAE,MAAM,OAAO,KAAK,GAAG;AAmDxE,SAAS,0BAA0B,GAA+C;AAChF,MAAI,CAAC,EAAG,QAAO;AACf,MAAI,OAAO,MAAM,WAAY,QAAQ,EAAmB,OAAO;AAE/D,MAAI,EAAE,MAAM,SAAU,QAAO;AAC7B,SAAQ,EAAE,MAAkD,kBACtD,EAAE,KAAK,QAAQ,YAAY,EAAE,KAAK,eAAe;AACzD;AAEA,SAAS,6BAA6B,GAAwD;AAC5F,MAAI,CAAC,EAAG,QAAO;AACf,MAAI,OAAO,MAAM,WAAY,QAAQ,EAAmB,OAAO;AAC/D,QAAM,gBAAiB,EAAE,MAAkD;AAC3E,SAAO,eAAe,MAAM,oBACvB,EAAE,MAAM,qBACP,EAAE,KAAK,QAAQ,YAAY,EAAE,KAAK,cAAc,MAAM,mBAAmB;AACjF;AAEA,SAAS,iCAAiC,GAAkC;AAC1E,MAAI,CAAC,EAAG,QAAO;AACf,MAAI,OAAO,MAAM,WAAY,QAAQ,EAAmB,OAAO,yBAAyB;AACxF,QAAM,gBAAiB,EAAE,MAAkD;AAC3E,SAAO,eAAe,MAAM,yBAAyB,QAAQ,EAAE,MAAM,yBAAyB;AAChG;AAEA,SAAS,2BAA2B,QAA6D;AAC/F,QAAM,QAAgC,uBAAO,OAAO,IAAI;AACxD,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,QAAI,MAAM,OAAO,CAAC,CAAE,MAAM,OAAW,OAAM,OAAO,CAAC,CAAE,IAAI;AAAA,EAC3D;AACA,SAAO;AACT;AAgBA,SAAS,YAAY,MAAY,OAAe,KAAmB;AACjE,MAAI,KAAK,YAAY,UAAa,KAAK,cAAc,QAAW;AAC9D,WAAO,EAAE,OAAO,KAAK,OAAO,IAAI;AAAA,EAClC;AACA,MAAI,OAAO,KAAK;AAChB,MAAI,SAAS,KAAK;AAClB,WAAS,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK;AACnC,QAAI,MAAM,WAAW,CAAC,MAAM,IAAI;AAAE;AAAQ,eAAS;AAAA,IAAE,OAAO;AAAE;AAAA,IAAS;AAAA,EACzE;AACA,SAAO,EAAE,GAAG,MAAM,KAAK,SAAS,MAAM,WAAW,OAAO;AAC1D;AAGA,SAAS,QAAQ,OAAiB,OAAe,SAAgC;AAC/E,MAAI,OAAO,UAAU,cAAc,OAAQ,OAA2C,UAAU,YAAY;AAC1G,UAAM,IAAI;AAAA,MACR,8BAA8B,UAAU,OAAO,SAAS,OAAO,KAAK;AAAA,IACtE;AAAA,EACF;AACA,QAAM,sBAAsB,QAAQ,YAAY;AAChD,QAAM,oBAAoB,wBAAwB,UAAa,oBAAoB,SAAS;AAC5F,QAAM,kBAAkB,oBAAoB,CAAC,IAAgB;AAC7D,QAAM,yBAAyB,oBAC3B,2BAA2B,mBAAmB,IAC9C;AACJ,QAAM,SAAuB,CAAC;AAK9B,QAAM,gBAAgB,OAAO,UAAU,aAAa,MAAM,MAAM,gBAAgB;AAChF,QAAM,kBAAkB,OAAO,UAAU,aAAa,MAAM,MAAM,kBAAkB;AACpF,QAAM,mBAAmB,6BAA6B,KAAK,KAAK,6BAA6B,QAAQ,MAAM;AAC3G,MAAI,qBAAqB,qBAAqB,QAAW;AACvD,UAAM,IAAI,UAAU,2DAA2D;AAAA,EACjF;AACA,MAAI,mBAAmB;AACrB,eAAW,SAAS,qBAAqB;AACvC,UAAI,CAAC,iBAAkB,SAAS,KAAK,GAAG;AACtC,cAAM,IAAI,UAAU,0DAA0D,KAAK,UAAU,KAAK,CAAC,GAAG;AAAA,MACxG;AAAA,IACF;AAAA,EACF;AACA,MAAI,qBACC,CAAC,iCAAiC,KAAK,KACvC,CAAC,iCAAiC,QAAQ,MAAM,GAAG;AACtD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAiBA,QAAM,UAAU;AAChB;AAAA,IACE,OAAO,UAAU,aACX,QAAQ,eAAe,KAA8B,QACtD,MAAM,MAAM,mBAAmB;AAAA,IACpC,QAAQ;AAAA,IACR,OAAO,UAAU,cAAc,QAAQ,iBAAiB,MAAM;AAAA,EAChE;AAKA,QAAM,MAAM,mBAAmB;AAC/B,MAAI,mBAAmB;AACrB,QAAI,iBAAiB;AACrB,QAAI,uBAAuB;AAC3B,QAAI,0BAA0B;AAAA,EAChC;AACA,MAAI,UAAU;AACd,MAAI,QAAQ,QAAQ;AACpB,MAAI,QAAQ,QAAQ;AACpB,MAAI,kBAAkB,OAAW,KAAI,SAAS;AAC9C,MAAI,iBAAkB,KAAI,mBAAmB;AAC7C,MAAI,oBAAoB,OAAW,KAAI,WAAW;AAClD,MAAI,QAAQ,sBAAsB,OAAW,KAAI,qBAAqB,QAAQ;AAC9E,MAAI,QAAQ,UAAU;AACpB,QAAI,YAAY;AAChB,QAAI,OAAO;AAAA,EACb;AACA,MAAI,QAAQ,oBAAoB,QAAW;AACzC,QAAI,mBAAmB,QAAQ,gBAAgB;AAC/C,QAAI,gBAAgB,QAAQ,gBAAgB;AAAA,EAC9C;AACA,QAAM,IAAI,OAAO,OAAO,OAAO,GAAG,GAAG;AAErC,QAAM,QAAQ,EAAE,KAAM,EAAyB,QAAQ;AACvD,MAAI,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE;AACxC,QAAM,WAAW,EAAE,KAAK,CAAC,IAAM,EAA8B,YAAY,CAAC;AAE1E,MAAI,iBAAgC;AACpC,MAAI,EAAE,IAAI;AACR,QAAI,MAAM,KAAK;AAIf,UAAM,OAAO,QAAQ,UAAU,0BAA0B,KAAK;AAC9D,QAAI,SAAS,UAAa,MAAM,MAAM,QAAQ;AAI5C,YAAM,IAAI,OAAO,MAAM,OAAO,KAAK,mBAAmB,CAAC;AACvD,UAAI,EAAE,MAAM,EAAE,KAAK,MAAM,KAAK;AAC5B,eAAO,YAAY,MAAM,OAAO,EAAE,KAAK,GAAG;AAC1C,cAAM,EAAE,KAAK;AAAA,MACf;AAAA,IACF;AACA,qBAAiB,MAAM,MAAM,SAAS,MAAM;AAAA,EAC9C;AASA,SAAO,oBAAoB,UAAa,gBAAgB,SAAS,IAC7D,IAAI;AAAA,IACF,EAAE;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO,qBAAqB,iBAAiB,mBAAoB;AAAA,IACnE;AAAA,IACA;AAAA,EACF,IACA,IAAI,gBAAgB,EAAE,IAAI,OAAO,MAAM,UAAU,QAAQ,cAAc;AAC7E;AAaO,SAAS,IAAI,OAAiB,OAAe,UAAsB,CAAC,GAAc;AACvF,SAAO,QAAQ,OAAO,OAAO,OAAO;AACtC;",
5
- "names": ["kind"]
6
- }