comarkserv 0.1.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 (44) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +389 -0
  3. package/dist/THIRD_PARTY_LICENSES.md +932 -0
  4. package/dist/build-CsToYJrU.mjs +2 -0
  5. package/dist/build-Cv5aO0CB.mjs +205 -0
  6. package/dist/cli.d.mts +1 -0
  7. package/dist/cli.mjs +894 -0
  8. package/dist/cloudflared-6f_lzz4F.mjs +181 -0
  9. package/dist/dist-B-IALNns.mjs +2 -0
  10. package/dist/dist-BK-bpLWg.mjs +2 -0
  11. package/dist/dist-BQzCbTko.mjs +1693 -0
  12. package/dist/dist-BWcWG5YB.mjs +671 -0
  13. package/dist/dist-BiVw4ojz.mjs +592 -0
  14. package/dist/dist-BnmL9jeq.mjs +538 -0
  15. package/dist/dist-BtedNLrc.mjs +276 -0
  16. package/dist/dist-BvdNTrap.mjs +2710 -0
  17. package/dist/dist-ByijHttv.mjs +69 -0
  18. package/dist/dist-C2E4zSX1.mjs +347 -0
  19. package/dist/dist-CWYRQLUT.mjs +2 -0
  20. package/dist/dist-CXQ7eTfT.mjs +417 -0
  21. package/dist/dist-CfsjQ0o8.mjs +905 -0
  22. package/dist/dist-CsTXDvwi.mjs +300 -0
  23. package/dist/dist-CtONMLh4.mjs +283 -0
  24. package/dist/dist-DMftjyxU.mjs +370 -0
  25. package/dist/dist-Dr9uTCX7.mjs +2 -0
  26. package/dist/dist-Dxvc11TH.mjs +339 -0
  27. package/dist/dist-GmbcGEAc.mjs +3 -0
  28. package/dist/dist-V1rkISnf.mjs +220 -0
  29. package/dist/dist-ZoN94PJ0.mjs +76 -0
  30. package/dist/dist-fh99cWMN.mjs +524 -0
  31. package/dist/editor-CHDyOp-8.mjs +721 -0
  32. package/dist/index.d.mts +301 -0
  33. package/dist/index.mjs +6 -0
  34. package/dist/languages-C0kEygG_.mjs +119 -0
  35. package/dist/markdown-BqKed1Vq.mjs +710 -0
  36. package/dist/markdown-DWuqfzps.mjs +2 -0
  37. package/dist/rolldown-runtime-CMFfr-1z.mjs +26 -0
  38. package/dist/server-Dkjk_D1Y.mjs +2628 -0
  39. package/dist/terminal-aKr5Xlp3.mjs +169 -0
  40. package/dist/themes-mEufQ_3e.mjs +2194 -0
  41. package/dist/twinkleplop.production-Coccf2Q9.mjs +2 -0
  42. package/dist/twinkleplop.production-DekYmX6O.mjs +4697 -0
  43. package/dist/twinkleplop.tokens-CgBUTCSg.mjs +76 -0
  44. package/package.json +133 -0
@@ -0,0 +1,4697 @@
1
+ //#region node_modules/.pnpm/@twinkleplop+core@0.2.1/node_modules/@twinkleplop/core/dist/verify-DchRPg2z.js
2
+ var t = Symbol("ASCII");
3
+ var n$1 = Symbol("DIGIT");
4
+ var r$1 = Symbol("LETTER");
5
+ var i$1 = Symbol("LOWER");
6
+ var a$1 = Symbol("UPPER");
7
+ var o$1 = Symbol("ALNUM");
8
+ var s$1 = Symbol("SPACE");
9
+ var c$1 = Symbol("WORD");
10
+ var l$1 = Symbol("HEX");
11
+ var u$1 = Symbol("PUNCT");
12
+ var d$1 = Symbol("PRINT");
13
+ var f$1 = Symbol("CONTROL");
14
+ function p$1(e, t, n, r) {
15
+ let i = 128 * t + n;
16
+ e[i] === 65535 && (e[i] = r);
17
+ }
18
+ function m$1(e, t, n, r, i, a, o) {
19
+ let s = e.get(t);
20
+ s === void 0 && (s = [], e.set(t, s));
21
+ for (let e = 0; e < s.length; e += 3) if (n <= s[e + 1] && r >= s[e]) throw Error(`Grammar validation error in state "${a}": Multiple rules match ${o}. Rule ${s[e + 2]} and rule ${i} both match this character.`);
22
+ s.push(n, r, i);
23
+ }
24
+ function h$1(e) {
25
+ let t = {
26
+ name: e.name,
27
+ states: { ...e.states }
28
+ }, n = {}, r = 0;
29
+ for (let [e, i] of Object.entries(t.states)) {
30
+ let a = [];
31
+ for (let t of i.rules ?? []) if (t.match_within) {
32
+ if (t.match_within.begin !== void 0) throw Error(`Grammar error in state "${e}" rule ${a.length}: match_within uses "start" not "begin". Change { begin: "..." } to { start: "..." }.`);
33
+ let i = `__match_within_${e}_${r++}`;
34
+ a.push({
35
+ match: t.match_within.start,
36
+ token: t.token,
37
+ state: i
38
+ });
39
+ let o = [];
40
+ t.match_within.escape && (o.push({
41
+ match: t.match_within.escape,
42
+ token: t.token,
43
+ state: `${i}_escape`
44
+ }), n[`${i}_escape`] = { rules: [{
45
+ range: [0, 127],
46
+ token: t.token,
47
+ exit: !0
48
+ }] }), o.push({
49
+ match: t.match_within.end,
50
+ token: t.token,
51
+ exit: !0
52
+ }), o.push({
53
+ range: !1 === t.match_within.multiline ? [[0, 9], [11, 127]] : [0, 127],
54
+ token: t.token
55
+ }), n[i] = { rules: o };
56
+ } else a.push(t);
57
+ t.states[e] = {
58
+ ...i,
59
+ rules: a
60
+ };
61
+ }
62
+ return Object.assign(t.states, n), t;
63
+ }
64
+ function g$1(e) {
65
+ return e;
66
+ }
67
+ function _$1(e) {
68
+ let g = h$1(e), _ = Object.keys(g.states), v = /* @__PURE__ */ new Map();
69
+ _.forEach((e, t) => v.set(e, t));
70
+ let y = /* @__PURE__ */ new Set();
71
+ for (let e of _) (g.states[e].rules ?? []).forEach((e) => {
72
+ e.token && y.add(e.token);
73
+ });
74
+ let b = Array.from(y), x = /* @__PURE__ */ new Map();
75
+ if (b.forEach((e, t) => x.set(e, t)), _.length > 65534) throw Error(`Grammar exceeds state limit: ${_.length} states (max 65534, including states generated by match_within).`);
76
+ let S = !1, C = _[0];
77
+ (g.states[C].rules ?? []).forEach((e, t) => {
78
+ e.exit && !e.state && console.warn(`Grammar warning: rule ${t} in root state "${C}" has exit:true but there is no parent state to return to. This exit will be a no-op.`);
79
+ });
80
+ let w = new Uint16Array(256 * _.length * 3);
81
+ w.fill(65535);
82
+ let T = new Uint16Array(128 * _.length);
83
+ T.fill(65535);
84
+ let E = new Uint16Array(3 * _.length);
85
+ E.fill(65535);
86
+ let D = new Uint8Array(256 * _.length), O = new Uint8Array(_.length), k = /* @__PURE__ */ new Map(), A = /* @__PURE__ */ new Map(), j = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Set(), N = /* @__PURE__ */ new Set(), P = /* @__PURE__ */ new Map();
87
+ _.forEach((h) => {
88
+ let _ = g.states[h], y = v.get(h);
89
+ if (y === void 0) throw Error(`State ${h} not found in state_map`);
90
+ if (_.mode === "probe" && (N.add(y), _.fallback)) {
91
+ let t = v.get(_.fallback);
92
+ if (t === void 0) throw Error(`Grammar "${e.name ?? "unnamed"}": probe state "${h}" fallback references unknown state "${_.fallback}"`);
93
+ P.set(y, t);
94
+ }
95
+ let b = Array(128);
96
+ for (let e = 0; e < 128; e++) b[e] = null;
97
+ _.rules.forEach((g, _) => {
98
+ let C = 65535, k = 0;
99
+ if (g.state && g.exit) {
100
+ let t = v.get(g.state);
101
+ if (t === void 0) throw Error(`Grammar "${e.name ?? "unnamed"}": state "${h}" rule ${_} references unknown state "${g.state}"`);
102
+ C = t, k = 2;
103
+ } else if (g.state) {
104
+ let t = v.get(g.state);
105
+ if (t === void 0) throw Error(`Grammar "${e.name ?? "unnamed"}": state "${h}" rule ${_} references unknown state "${g.state}"`);
106
+ C = t, k = 1;
107
+ } else g.exit && (k = 2);
108
+ let A = 65535;
109
+ if (g.token) {
110
+ let e = x.get(g.token);
111
+ e !== void 0 && (A = e);
112
+ }
113
+ let N = !0 === g.seal || !0 === g.boundary;
114
+ N && (S = !0, D[256 * y + _] = 1);
115
+ let P = 3 * ((y << 8) + _);
116
+ if (w[P] = C, w[P + 1] = A, w[P + 2] = k, g.match) {
117
+ let e = Array.isArray(g.match) ? g.match : [g.match];
118
+ for (let v of e) if (v === t) for (let e = 0; e < 128; e++) p$1(T, y, e, _);
119
+ else if (v === n$1) for (let e = 48; e <= 57; e++) p$1(T, y, e, _);
120
+ else if (v === r$1) {
121
+ for (let e = 65; e <= 90; e++) p$1(T, y, e, _);
122
+ for (let e = 97; e <= 122; e++) p$1(T, y, e, _);
123
+ } else if (v === i$1) for (let e = 97; e <= 122; e++) p$1(T, y, e, _);
124
+ else if (v === a$1) for (let e = 65; e <= 90; e++) p$1(T, y, e, _);
125
+ else if (v === o$1) {
126
+ for (let e = 48; e <= 57; e++) p$1(T, y, e, _);
127
+ for (let e = 65; e <= 90; e++) p$1(T, y, e, _);
128
+ for (let e = 97; e <= 122; e++) p$1(T, y, e, _);
129
+ } else if (v === s$1) for (let e of [
130
+ 32,
131
+ 9,
132
+ 10,
133
+ 13
134
+ ]) p$1(T, y, e, _);
135
+ else if (v === c$1) {
136
+ for (let e = 48; e <= 57; e++) p$1(T, y, e, _);
137
+ for (let e = 65; e <= 90; e++) p$1(T, y, e, _);
138
+ for (let e = 97; e <= 122; e++) p$1(T, y, e, _);
139
+ p$1(T, y, 95, _);
140
+ } else if (v === l$1) {
141
+ for (let e = 48; e <= 57; e++) p$1(T, y, e, _);
142
+ for (let e = 65; e <= 70; e++) p$1(T, y, e, _);
143
+ for (let e = 97; e <= 102; e++) p$1(T, y, e, _);
144
+ } else if (v === d$1) for (let e = 32; e <= 126; e++) p$1(T, y, e, _);
145
+ else if (v === u$1) for (let [e, t] of [
146
+ [33, 47],
147
+ [58, 64],
148
+ [91, 96],
149
+ [123, 126]
150
+ ]) for (let n = e; n <= t; n++) p$1(T, y, n, _);
151
+ else if (v === f$1) {
152
+ for (let e = 0; e <= 31; e++) p$1(T, y, e, _);
153
+ p$1(T, y, 127, _);
154
+ } else if (typeof v == "string") {
155
+ if (v.length === 1) {
156
+ let e = v.charCodeAt(0);
157
+ e < 128 ? (p$1(T, y, e, _), g.boundary && M.add(256 * y + _)) : (m$1(j, y, e, e, _, h, `non-ASCII character '${v}' (code: ${e})`), g.boundary && M.add(256 * y + _));
158
+ } else if (v.length > 1) {
159
+ let e = v.charCodeAt(0);
160
+ if (e < 128) {
161
+ let t = new Uint16Array(v.length);
162
+ for (let e = 0; e < v.length; e++) t[e] = v.charCodeAt(e);
163
+ let n = {
164
+ codes: t,
165
+ length: v.length,
166
+ rule_idx: _,
167
+ boundary: g.boundary
168
+ };
169
+ b[e] || (b[e] = []), b[e].push(n);
170
+ }
171
+ }
172
+ }
173
+ }
174
+ if (g.range) {
175
+ let e = Array.isArray(g.range[0]) ? g.range : [g.range];
176
+ for (let t of e) {
177
+ let e = typeof t[0] == "string" ? t[0].charCodeAt(0) : t[0], n = typeof t[1] == "string" ? t[1].charCodeAt(0) : t[1], r = n < 127 ? n : 127;
178
+ for (let t = e; t <= r; t++) p$1(T, y, t, _);
179
+ if (n >= 128) {
180
+ let t = e < 128 ? 128 : e;
181
+ m$1(j, y, t, n, _, h, `characters in range ${t}..${n}`);
182
+ }
183
+ }
184
+ }
185
+ if (g.any) {
186
+ for (let e = 0; e < 128; e++) T[128 * y + e] === 65535 && (T[128 * y + e] = _);
187
+ let e = 3 * y;
188
+ E[e] = C, E[e + 1] = A, E[e + 2] = k, N && (O[y] = 1);
189
+ }
190
+ });
191
+ let C = !1;
192
+ for (let e = 0; e < 128; e++) b[e] && b[e].length > 0 && (b[e].sort((e, t) => t.length - e.length), C = !0);
193
+ C && A.set(y, b);
194
+ });
195
+ let F = new Uint8Array(_.length);
196
+ N.forEach((e) => {
197
+ F[e] = 1;
198
+ });
199
+ let I = /* @__PURE__ */ new Map();
200
+ for (let [e, t] of j) I.set(e, Int32Array.from(t));
201
+ return {
202
+ states: v,
203
+ transitions: w,
204
+ char_maps: T,
205
+ keywords: k,
206
+ token_types: b,
207
+ patterns: A,
208
+ fallback_transitions: E,
209
+ non_ascii_ranges: I,
210
+ probe_states: N,
211
+ probe_mask: F,
212
+ probe_fallbacks: P,
213
+ boundary_rules: M.size > 0 ? M : void 0,
214
+ has_seals: S,
215
+ seal_flags: S ? D : void 0,
216
+ fallback_seal_flags: S ? O : void 0
217
+ };
218
+ }
219
+ function v$1(e) {
220
+ let t = [], n = Object.keys(e.states), r = new Set(n), i = /* @__PURE__ */ new Set();
221
+ n.length > 0 && i.add(n[0]);
222
+ for (let a of n) {
223
+ let n = e.states[a];
224
+ n.fallback !== void 0 && (r.has(n.fallback) ? i.add(n.fallback) : t.push({
225
+ type: "invalid-transition",
226
+ state: a,
227
+ target: n.fallback,
228
+ from: "fallback",
229
+ message: `state "${a}" fallback references unknown state "${n.fallback}"`
230
+ })), (n.rules ?? []).forEach((e, n) => {
231
+ e.state !== void 0 && (r.has(e.state) ? i.add(e.state) : t.push({
232
+ type: "invalid-transition",
233
+ state: a,
234
+ rule_index: n,
235
+ target: e.state,
236
+ from: "rule",
237
+ message: `state "${a}" rule ${n} references unknown state "${e.state}"`
238
+ }));
239
+ });
240
+ }
241
+ for (let e of n) i.has(e) || t.push({
242
+ type: "unused-state",
243
+ state: e,
244
+ message: `state "${e}" is defined but never referenced`
245
+ });
246
+ return t;
247
+ }
248
+ //#endregion
249
+ //#region node_modules/.pnpm/@twinkleplop+core@0.2.1/node_modules/@twinkleplop/core/dist/twinkleplop.production.js
250
+ function n(e, t, n = null) {
251
+ let { transitions: r, char_maps: i, token_types: a, patterns: o, fallback_transitions: s, non_ascii_ranges: c, probe_states: l, probe_mask: u, probe_fallbacks: d, boundary_rules: f, has_seals: p, seal_flags: m, fallback_seal_flags: h } = t, g = e.length, _ = new Uint32Array(3 * g), v = 0, y = /* @__PURE__ */ new Uint16Array(256), b = 0, x = 0, S = o && o.get(0), C = 0, w = 0, T = c && c.get(0), E = 0, D = -1, O = 65535, k = -1, A = null, j = /* @__PURE__ */ new Set(), M = !1;
252
+ function N(e) {
253
+ A && (E = A.pos, y[A.stack_ptr] = A.state, b = A.stack_ptr + 1, x = e, A = null, S = o && o.get(x), C = 128 * x, w = 256 * x * 3, T = c && c.get(x));
254
+ }
255
+ function P() {
256
+ if (!A || !l || !l.has(x)) return !1;
257
+ let e = d?.get(x);
258
+ return e === void 0 ? L() : N(e), !0;
259
+ }
260
+ function F(e, t) {
261
+ return !(M && j.has(E << 16 | x << 8 | e) || (A = {
262
+ pos: E,
263
+ entry_pos: E + 1,
264
+ state: x,
265
+ stack_ptr: b,
266
+ rule_idx: e,
267
+ probe_state: t,
268
+ resolved_state: -1,
269
+ resolved_pos: -1
270
+ }, 0));
271
+ }
272
+ function I(e) {
273
+ A &&= (E = A.pos, b = A.stack_ptr, e === 1 && (y[b++] = A.state), null);
274
+ }
275
+ function L() {
276
+ A && (j.add(A.pos << 16 | A.state << 8 | A.rule_idx), M = !0, E = A.pos, x = A.state, b = A.stack_ptr, A = null, S = o && o.get(x), C = 128 * x, w = 256 * x * 3, T = c && c.get(x));
277
+ }
278
+ for (; E < g;) {
279
+ E > D && (M &&= (j.clear(), !1), D = E);
280
+ let t = e.charCodeAt(E), n = E, a = u ? !!u[x] : !(!l || !l.has(x));
281
+ if (t < 128) {
282
+ let n = 0, s = 65535;
283
+ if (s === 65535 && S) {
284
+ let r = S[t];
285
+ if (r) {
286
+ let t = r.length;
287
+ for (let i = 0; i < t; i++) {
288
+ let t = r[i], a = t.length;
289
+ if (E + a > g) continue;
290
+ let o = t.codes, c = !0;
291
+ for (let t = 1; t < a; t++) if (e.charCodeAt(E + t) !== o[t]) {
292
+ c = !1;
293
+ break;
294
+ }
295
+ if (c) {
296
+ if (t.boundary && E + a < g) {
297
+ let t = e.charCodeAt(E + a);
298
+ if (t >= 97 && t <= 122 || t >= 65 && t <= 90 || t >= 48 && t <= 57 || t === 95 || t === 36) continue;
299
+ }
300
+ if (M && j.has(E << 16 | x << 8 | t.rule_idx)) continue;
301
+ n = a, s = t.rule_idx;
302
+ break;
303
+ }
304
+ }
305
+ }
306
+ }
307
+ let h = s;
308
+ if (h === 65535 && (h = i[C + t]), h !== 65535) {
309
+ if (s === 65535 && f && f.has(256 * x + h) && E + 1 < g) {
310
+ let t = e.charCodeAt(E + 1);
311
+ (t >= 97 && t <= 122 || t >= 65 && t <= 90 || t >= 48 && t <= 57 || t === 95 || t === 36) && (h = 65535);
312
+ }
313
+ s === 65535 && M && h !== 65535 && j.has(E << 16 | x << 8 | h) && (h = 65535);
314
+ }
315
+ if (h !== 65535) {
316
+ let t = w + 3 * h, s = r[t], D = r[t + 1], j = r[t + 2];
317
+ if (!(s !== 65535 || j !== 0 || D === 65535 || n !== 0 || a || M || p && m[256 * x + h] || f && f.has(256 * x + h))) {
318
+ if (D === O && E === k) E++;
319
+ else {
320
+ let e = 3 * v;
321
+ _[e] = D, _[e + 1] = E, v++, E++;
322
+ }
323
+ for (; E < g;) {
324
+ let t = e.charCodeAt(E);
325
+ if (t > 127 || i[C + t] !== h || S !== void 0 && S[t] !== null) break;
326
+ E++;
327
+ }
328
+ _[3 * (v - 1) + 2] = E, O = D, k = E;
329
+ continue;
330
+ }
331
+ let P = x;
332
+ j === 1 && s !== 65535 || j === 2 && s !== 65535 ? P = s : j === 2 && b > 0 ? P = y[b - 1] : s !== 65535 && (P = s);
333
+ let F = u ? !!u[P] : !(!l || !l.has(P));
334
+ if (a && A && !F && (A.resolved_state = P, A.resolved_pos = E), !a && F && (A = {
335
+ pos: E,
336
+ entry_pos: E + (n || 1),
337
+ state: x,
338
+ stack_ptr: b,
339
+ rule_idx: h,
340
+ probe_state: P,
341
+ resolved_state: -1,
342
+ resolved_pos: -1
343
+ }), a || D === 65535) j === 2 ? j === 2 && s !== 65535 && n > 0 && (E += n) : E += n || 1;
344
+ else {
345
+ let e = E + (n || 1);
346
+ if (n !== 0 || p && m[256 * x + h] || D !== O || E !== k) {
347
+ let t = 3 * v;
348
+ _[t] = D, _[t + 1] = E, _[t + 2] = e, v++;
349
+ } else _[3 * (v - 1) + 2] = e;
350
+ O = D, k = e, E = e;
351
+ }
352
+ if (j === 1 ? (y[b++] = x, x = s, a && A && (A.resolved_state = x, A.resolved_pos = E), S = o && o.get(x), C = x << 7, w = 3 * (x << 8), T = c && c.get(x)) : j === 2 ? (s === 65535 ? b > 0 && (x = y[--b]) : x = s, S = o ? o.get(x) : void 0, C = x << 7, w = 3 * (x << 8), T = c && c.get(x)) : s !== 65535 && (x = s, S = o && o.get(x), C = x << 7, w = 3 * (x << 8), T = c && c.get(x)), a && !F && A && (E = A.pos, b = A.stack_ptr, j === 1 && (y[b++] = A.state), A = null, S = o && o.get(x), C = x << 7, w = 3 * (x << 8), T = c && c.get(x)), l && l.has(x) && E >= g && A) {
353
+ let e = d?.get(x);
354
+ if (e !== void 0) {
355
+ N(e);
356
+ continue;
357
+ }
358
+ L();
359
+ continue;
360
+ }
361
+ } else if (a && A) {
362
+ if (E++, E >= g) {
363
+ let e = d?.get(x);
364
+ if (e !== void 0) {
365
+ N(e);
366
+ continue;
367
+ }
368
+ L();
369
+ continue;
370
+ }
371
+ } else E++;
372
+ } else {
373
+ let e = 65535;
374
+ if (T !== void 0) {
375
+ for (let n = 0; n < T.length; n += 3) if (t >= T[n] && t <= T[n + 1]) {
376
+ e = T[n + 2];
377
+ break;
378
+ }
379
+ }
380
+ if (e !== 65535) {
381
+ let t = w + 3 * e, i = r[t], s = r[t + 1], d = r[t + 2], f = x;
382
+ d === 1 && i !== 65535 || d === 2 && i !== 65535 ? f = i : d === 2 && b > 0 ? f = y[b - 1] : i !== 65535 && (f = i);
383
+ let h = u ? !!u[f] : !(!l || !l.has(f));
384
+ if (!a && h && !F(e, f)) {
385
+ E++;
386
+ continue;
387
+ }
388
+ if (a || s === 65535) d !== 2 && E++;
389
+ else {
390
+ let t = E + 1;
391
+ if (p && m[256 * x + e] || s !== O || n !== k) {
392
+ let e = 3 * v;
393
+ _[e] = s, _[e + 1] = E, _[e + 2] = t, v++;
394
+ } else _[3 * (v - 1) + 2] = t;
395
+ O = s, k = t, E = t;
396
+ }
397
+ if (d === 1 ? (y[b++] = x, x = i, a && A && (A.resolved_state = x, A.resolved_pos = E), S = o && o.get(x), C = 128 * x, w = 256 * x * 3, T = c && c.get(x)) : d === 2 ? (i === 65535 ? b > 0 && (x = y[--b]) : x = i, S = o ? o.get(x) : void 0, C = 128 * x, w = 256 * x * 3, T = c && c.get(x)) : i !== 65535 && (x = i, S = o && o.get(x), C = 128 * x, w = 256 * x * 3, T = c && c.get(x)), a && !h && A && I(d), E >= g && P()) continue;
398
+ } else if (s) {
399
+ let e = 3 * x, t = s[e], r = s[e + 1], i = s[e + 2], d = x;
400
+ i === 1 && t !== 65535 || i === 2 && t !== 65535 ? d = t : i === 2 && b > 0 ? d = y[b - 1] : t !== 65535 && (d = t);
401
+ let f = u ? !!u[d] : !(!l || !l.has(d));
402
+ if (!a && f && !F(255, d)) {
403
+ E++;
404
+ continue;
405
+ }
406
+ if (a || r === 65535) i !== 2 && E++;
407
+ else {
408
+ let e = E + 1;
409
+ if (p && h[x] || r !== O || n !== k) {
410
+ let t = 3 * v;
411
+ _[t] = r, _[t + 1] = E, _[t + 2] = e, v++;
412
+ } else _[3 * (v - 1) + 2] = e;
413
+ O = r, k = e, E = e;
414
+ }
415
+ if (i === 1 ? (y[b++] = x, x = t, a && A && (A.resolved_state = x, A.resolved_pos = E), S = o && o.get(x), C = 128 * x, w = 256 * x * 3, T = c && c.get(x)) : i === 2 ? (t === 65535 ? b > 0 && (x = y[--b]) : x = t, S = o ? o.get(x) : void 0, C = 128 * x, w = 256 * x * 3, T = c && c.get(x)) : t !== 65535 && (x = t, S = o && o.get(x), C = 128 * x, w = 256 * x * 3, T = c && c.get(x)), a && !f && A && I(i), E >= g && P()) continue;
416
+ } else if (a && A) {
417
+ if (E++, E >= g) {
418
+ let e = d?.get(x);
419
+ if (e !== void 0) {
420
+ N(e);
421
+ continue;
422
+ }
423
+ L();
424
+ continue;
425
+ }
426
+ } else E++;
427
+ }
428
+ }
429
+ let R = 3 * v;
430
+ return {
431
+ tokens: 3 * g - R > 1024 ? _.slice(0, R) : _.subarray(0, R),
432
+ token_types: a
433
+ };
434
+ }
435
+ function r(e, t) {
436
+ let n = i(e.plugins), r = t.indexOf("comment");
437
+ return (t, i) => {
438
+ if (!(r < 0 || t.indexOf("[!") < 0)) return o(t, i, n, r, e.on_error);
439
+ };
440
+ }
441
+ function i(e) {
442
+ let t = /* @__PURE__ */ new Map();
443
+ for (let n of e) for (let e of n.verbs) {
444
+ if (t.has(e)) throw Error(`annotation: verb "${e}" claimed by multiple plugins`);
445
+ t.set(e, n);
446
+ }
447
+ return t;
448
+ }
449
+ var a = class extends Error {
450
+ constructor(e, t) {
451
+ super(t), this.kind = e;
452
+ }
453
+ };
454
+ function o(e, t, n, r, i) {
455
+ let o = t.tokens, f = o.length / 3, m = [], h = [], g = /* @__PURE__ */ new Map(), _ = [], v = null, y = null, b = () => (y === null && (y = I(o, r)), y), x = (e) => {
456
+ let t = g.get(e);
457
+ return t === void 0 && (t = _.length, _.push(e), g.set(e, t)), t;
458
+ }, S = () => (v === null && (v = E(e)), v), C = (e, t, n) => {
459
+ i ? i({
460
+ kind: e,
461
+ message: t,
462
+ position: n
463
+ }) : typeof console < "u" && typeof console.warn == "function" && console.warn(`twinkleplop annotation [${e}] at line ${n.line}: ${t}`);
464
+ }, w = /* @__PURE__ */ new Map(), T = (e, t) => e + "\0" + (t ?? ""), O = (t) => {
465
+ let n = S();
466
+ return {
467
+ start: M(n, t.line),
468
+ end: N(n, t.line, e.length),
469
+ start_line: t.line,
470
+ end_line: t.line
471
+ };
472
+ }, P = (t, n) => {
473
+ let r = S();
474
+ switch (t.kind) {
475
+ case "wholeLine": return [O(n)];
476
+ case "set": {
477
+ let i = A(t.scope, n, r, e.length);
478
+ if (i === null) throw new a("malformed", "set scope names a line that does not exist");
479
+ let o = F(e, t.anchor, i.start, i.end, b());
480
+ if (o.length === 0) throw new a("anchor_not_found", "set anchor matched zero occurrences");
481
+ let s = [];
482
+ for (let e of o) s.push({
483
+ start: e.start,
484
+ end: e.end,
485
+ start_line: D(r, e.start),
486
+ end_line: D(r, Math.max(e.start, e.end - 1))
487
+ });
488
+ return s;
489
+ }
490
+ case "range": {
491
+ if (t.from === null || t.to === null) throw new a("malformed", "half-open range cannot be resolved outside a pair");
492
+ let i = j(t.from, t.to, t.inclusive_start, t.inclusive_end, n, n, e, r, b());
493
+ if (i === null) throw new a("anchor_not_found", "anchor not found");
494
+ return [i];
495
+ }
496
+ default: {
497
+ let i = k(t, n, r, e.length);
498
+ if (i === null) throw new a("malformed", "unable to resolve marker range");
499
+ return [i];
500
+ }
501
+ }
502
+ }, L = (e, t) => {
503
+ let n = p(e, 0, e.length);
504
+ if (n === null) throw new a("malformed", `malformed argument: "${e}"`);
505
+ return P(n, t);
506
+ }, z = (t, n, r, i, o, c, l) => {
507
+ let u;
508
+ try {
509
+ u = t.handle({
510
+ verb: n,
511
+ id: r,
512
+ args: i,
513
+ range: o,
514
+ marker: c,
515
+ standalone: l,
516
+ resolve: (e) => L(e, c)[0],
517
+ resolve_all: (e) => L(e, c)
518
+ });
519
+ } catch (e) {
520
+ return e instanceof a ? C(e.kind, e.message, c) : C("malformed", `plugin "${n}" threw: ${e instanceof Error ? e.message : String(e)}`, c), !0;
521
+ }
522
+ if (!u) return !0;
523
+ if (u.overlays) for (let t of u.overlays) {
524
+ if (t.start < 0 || t.end > e.length) throw RangeError(`annotation: plugin "${n}" emitted an overlay outside the source (${t.start}..${t.end}, source length ${e.length})`);
525
+ s(m, x, t);
526
+ }
527
+ if (u.issues) for (let e of u.issues) C(e.kind, e.message, e.position ?? c);
528
+ return !1 !== u.consumed;
529
+ }, B = (t, n, r) => {
530
+ let i = n.marker, o = p(e, n.args_start, n.args_end);
531
+ if (o === null) return C("malformed", `malformed argument: "${e.slice(n.args_start, n.args_end)}"`, i), !1;
532
+ if (o.kind === "range" && (o.from === null || o.to === null)) {
533
+ if (o.from !== null) {
534
+ let e = T(n.verb, n.id), t = w.get(e);
535
+ return t === void 0 && (t = [], w.set(e, t)), t.push({
536
+ marker: i,
537
+ verb: n.verb,
538
+ id: n.id,
539
+ from: o.from,
540
+ inclusive_start: o.inclusive_start,
541
+ standalone: r
542
+ }), !0;
543
+ }
544
+ if (o.to === null) return C("malformed", "range with no anchors", i), !0;
545
+ let a = T(n.verb, n.id), s = w.get(a), c = s && s.length > 0 ? s.pop() : void 0;
546
+ if (c === void 0) return C("unmatched_pair", `unmatched close for "[!${n.verb}${n.id ? "#" + n.id : ""}]"`, i), !0;
547
+ let l = j(c.from, o.to, c.inclusive_start, o.inclusive_end, c.marker, i, e, S(), b());
548
+ return l === null ? (C("anchor_not_found", "anchor not found", i), !0) : z(t, n.verb, n.id, {
549
+ kind: "range",
550
+ from: c.from,
551
+ to: o.to,
552
+ inclusive_start: c.inclusive_start,
553
+ inclusive_end: o.inclusive_end
554
+ }, l, c.marker, c.standalone);
555
+ }
556
+ let s;
557
+ try {
558
+ s = P(o, i);
559
+ } catch (e) {
560
+ if (e instanceof a) return C(e.kind, e.message, i), !0;
561
+ throw e;
562
+ }
563
+ let c = !0;
564
+ for (let e of s) z(t, n.verb, n.id, o, e, i, r) || (c = !1);
565
+ return c;
566
+ };
567
+ for (let t = 0; t < f; t++) {
568
+ if (o[3 * t] !== r) continue;
569
+ let i = o[3 * t + 1], a = o[3 * t + 2], s = [], f = i;
570
+ for (; f < a;) {
571
+ let t = u(e, f, a);
572
+ if (t < 0) break;
573
+ if (t > i && e.charCodeAt(t - 1) === 92) {
574
+ f = t + 2;
575
+ continue;
576
+ }
577
+ let r = d(e, t, a, S());
578
+ if (r === null) {
579
+ f = t + 2;
580
+ continue;
581
+ }
582
+ let o = n.get(r.verb);
583
+ o === void 0 ? f = r.marker.end : r.spans_newline ? (C("marker_spans_newline", "marker spans a newline", r.marker), f = r.marker.end) : r.error === null ? (s.push({
584
+ parsed: r,
585
+ plugin: o
586
+ }), f = r.marker.end) : (C(r.error.kind, r.error.message, r.marker), f = r.marker.end);
587
+ }
588
+ if (s.length === 0) continue;
589
+ let p = ee(e, i, a, c(s)), m = [];
590
+ for (let { parsed: t, plugin: n } of s) {
591
+ let r = t.marker, o = p && l(e, S(), r.line, i, a);
592
+ (n.parse === "raw" ? z(n, t.verb, t.id, e.slice(t.raw_start, t.args_end), O(r), r, o) : B(n, t, o)) && m.push({
593
+ start: r.start,
594
+ end: r.end,
595
+ line: r.line
596
+ });
597
+ }
598
+ if (m.length > 0) if (ee(e, i, a, m)) {
599
+ let t = a;
600
+ for (; t > i;) {
601
+ let n = e.charCodeAt(t - 1);
602
+ if (n !== 10 && n !== 13) break;
603
+ t--;
604
+ }
605
+ h.push({
606
+ start: i,
607
+ end: t,
608
+ line: D(S(), i)
609
+ });
610
+ } else for (let e of m) h.push(e);
611
+ }
612
+ for (let e of w.values()) for (let t of e) C("unmatched_pair", `unmatched open for "[!${t.verb}${t.id ? "#" + t.id : ""}]"`, t.marker);
613
+ if (m.length !== 0 || h.length !== 0) return R(m, _, h, e, S);
614
+ }
615
+ function s(e, t, n) {
616
+ n.start >= n.end || e.push({
617
+ start: n.start,
618
+ end: n.end,
619
+ class_id: t(n.classification),
620
+ flags: +!!n.line_mode
621
+ });
622
+ }
623
+ function c(e) {
624
+ let t = [];
625
+ for (let n = 0; n < e.length; n++) t.push(e[n].parsed.marker);
626
+ return t;
627
+ }
628
+ function l(e, t, n, r, i) {
629
+ let a = M(t, n), o = N(t, n, e.length);
630
+ return !(r > a && B(e, a, r) || i < o && B(e, i, o));
631
+ }
632
+ function u(e, t, n) {
633
+ for (let r = t; r + 1 < n; r++) if (e.charCodeAt(r) === 91 && e.charCodeAt(r + 1) === 33) return r;
634
+ return -1;
635
+ }
636
+ function d(e, t, n, r) {
637
+ let i = e.length, a = t + 2, o = a;
638
+ if (a >= i || !w(e.charCodeAt(a))) return null;
639
+ for (a++; a < i && T(e.charCodeAt(a));) a++;
640
+ let s = e.slice(o, a), c;
641
+ if (a < i && e.charCodeAt(a) === 35) {
642
+ a++;
643
+ let n = a;
644
+ if (a >= i || !w(e.charCodeAt(a))) return f(0, t, a, r, s, void 0, {
645
+ kind: "malformed",
646
+ message: "expected identifier after `#`"
647
+ });
648
+ for (a++; a < i && T(e.charCodeAt(a));) a++;
649
+ c = e.slice(n, a);
650
+ }
651
+ let l = a, u = a, d = a;
652
+ if (a < i && e.charCodeAt(a) === 32) {
653
+ a++, l = a, d = a;
654
+ let t = !1;
655
+ for (; a < i && a < n;) {
656
+ let r = e.charCodeAt(a);
657
+ if (r === 10) break;
658
+ if (r === 92 && a + 1 < n && e.charCodeAt(a + 1) !== 10) a += 2;
659
+ else if (t) r === 34 && (t = !1), a++;
660
+ else if (r !== 34) {
661
+ if (r === 93) break;
662
+ a++;
663
+ } else t = !0, a++;
664
+ }
665
+ for (u = a; l < u;) {
666
+ let t = e.charCodeAt(l);
667
+ if (t !== 32 && t !== 9 && t !== 13) break;
668
+ l++;
669
+ }
670
+ for (; u > l;) {
671
+ let t = e.charCodeAt(u - 1);
672
+ if (t !== 32 && t !== 9 && t !== 13) break;
673
+ u--;
674
+ }
675
+ }
676
+ return a >= i || a >= n || e.charCodeAt(a) !== 93 ? a < i && e.charCodeAt(a) === 10 ? f(0, t, a, r, s, c, {
677
+ kind: "marker_spans_newline",
678
+ message: "marker not closed before newline"
679
+ }) : null : (a++, {
680
+ verb: s,
681
+ id: c,
682
+ args_start: l,
683
+ args_end: u,
684
+ raw_start: d,
685
+ marker: {
686
+ start: t,
687
+ end: a,
688
+ line: D(r, t)
689
+ },
690
+ spans_newline: !1,
691
+ error: null
692
+ });
693
+ }
694
+ function f(e, t, n, r, i, a, o) {
695
+ return {
696
+ verb: i,
697
+ id: a,
698
+ args_start: n,
699
+ args_end: n,
700
+ raw_start: n,
701
+ marker: {
702
+ start: t,
703
+ end: n,
704
+ line: D(r, t)
705
+ },
706
+ spans_newline: o.kind === "marker_spans_newline",
707
+ error: o
708
+ };
709
+ }
710
+ function p(e, t, n) {
711
+ if (t >= n) return { kind: "bare" };
712
+ if (n - t === 3 && e.charCodeAt(t) === 42 && e.charCodeAt(t + 1) === 42 && e.charCodeAt(t + 2) === 42) return { kind: "wholeLine" };
713
+ let r = e.charCodeAt(t);
714
+ if (r === 43) {
715
+ let r = C(e, t + 1, n);
716
+ return r === null || r < 1 ? null : {
717
+ kind: "lineCount",
718
+ count: r
719
+ };
720
+ }
721
+ return r === 58 ? m(e, t + 1, n) : r === 61 ? h(e, t + 1, n) : _(e, t, n);
722
+ }
723
+ function m(e, t, n) {
724
+ let r = x(e, "...", t, n);
725
+ if (r >= 0) {
726
+ let i = C(e, t, r), a = C(e, r + 3, n);
727
+ return i === null || a === null || i < 1 || a < i ? null : {
728
+ kind: "lineRef",
729
+ from: i,
730
+ to: a,
731
+ inclusive: !0
732
+ };
733
+ }
734
+ let i = x(e, "..", t, n);
735
+ if (i < 0) {
736
+ let r = C(e, t, n);
737
+ return r === null || r < 1 ? null : {
738
+ kind: "lineRef",
739
+ from: r
740
+ };
741
+ }
742
+ let a = C(e, t, i), o = C(e, i + 2, n);
743
+ return a === null || o === null || a < 1 || o < a ? null : {
744
+ kind: "lineRef",
745
+ from: a,
746
+ to: o,
747
+ inclusive: !1
748
+ };
749
+ }
750
+ function h(e, t, n) {
751
+ let r = b(e, t, n), i = v(e, r, n);
752
+ if (i === null || (r = b(e, i.next, n), i.anchor.kind === "wildcard")) return null;
753
+ if (r === n) return {
754
+ kind: "set",
755
+ anchor: i.anchor
756
+ };
757
+ let a = g(e, r, n);
758
+ return a === null ? null : {
759
+ kind: "set",
760
+ anchor: i.anchor,
761
+ scope: a
762
+ };
763
+ }
764
+ function g(e, t, n) {
765
+ let r = e.charCodeAt(t);
766
+ if (r === 43) {
767
+ let r = C(e, t + 1, n);
768
+ return r === null || r < 1 ? null : {
769
+ kind: "lineCount",
770
+ count: r
771
+ };
772
+ }
773
+ if (r !== 58) return null;
774
+ if (n - t === 2 && e.charCodeAt(t + 1) === 42) return { kind: "all" };
775
+ let i = m(e, t + 1, n);
776
+ return i === null || i.kind !== "lineRef" ? null : i;
777
+ }
778
+ function _(e, t, n) {
779
+ let r, i = b(e, t, n), a = null;
780
+ if (i < n && e.charCodeAt(i) !== 46) {
781
+ let t = v(e, i, n);
782
+ if (t === null) return null;
783
+ a = t.anchor, i = t.next;
784
+ }
785
+ if (i = b(e, i, n), i + 3 <= n && e.startsWith("...", i)) r = !0, i += 3;
786
+ else {
787
+ if (!(i + 2 <= n && e.startsWith("..", i))) return null;
788
+ r = !1, i += 2;
789
+ }
790
+ i = b(e, i, n);
791
+ let o = null, s = r;
792
+ if (i < n) {
793
+ let t = v(e, i, n);
794
+ if (t === null) return null;
795
+ o = t.anchor, i = t.next;
796
+ }
797
+ return i = b(e, i, n), i !== n || a === null && o === null ? null : {
798
+ kind: "range",
799
+ from: a,
800
+ to: o,
801
+ inclusive_start: a === null ? s : r,
802
+ inclusive_end: o === null ? r : s
803
+ };
804
+ }
805
+ function v(e, t, n) {
806
+ if (t >= n) return null;
807
+ let r = e.charCodeAt(t);
808
+ if (r === 42) return {
809
+ anchor: { kind: "wildcard" },
810
+ next: t + 1
811
+ };
812
+ if (r === 34) return y(e, t, n);
813
+ if (S(r)) {
814
+ let r = t;
815
+ for (; r < n && S(e.charCodeAt(r));) r++;
816
+ return {
817
+ anchor: {
818
+ kind: "word",
819
+ value: e.slice(t, r)
820
+ },
821
+ next: r
822
+ };
823
+ }
824
+ return null;
825
+ }
826
+ function y(e, t, n) {
827
+ let r = t + 1, i = "", a = r;
828
+ for (; r < n;) {
829
+ let t = e.charCodeAt(r);
830
+ if (t === 34) return r > a && (i += e.slice(a, r)), {
831
+ anchor: {
832
+ kind: "literal",
833
+ value: i
834
+ },
835
+ next: r + 1
836
+ };
837
+ if (t === 92) {
838
+ if (r + 1 >= n) return null;
839
+ let t = e.charCodeAt(r + 1);
840
+ if (t !== 34 && t !== 92) return null;
841
+ r > a && (i += e.slice(a, r)), i += String.fromCharCode(t), r += 2, a = r;
842
+ continue;
843
+ }
844
+ r++;
845
+ }
846
+ return null;
847
+ }
848
+ function b(e, t, n) {
849
+ for (; t < n && e.charCodeAt(t) === 32;) t++;
850
+ return t;
851
+ }
852
+ function x(e, t, n, r) {
853
+ let i = e.indexOf(t, n);
854
+ return i < 0 || i + t.length > r ? -1 : i;
855
+ }
856
+ function S(e) {
857
+ return e >= 48 && e <= 57 || e >= 65 && e <= 90 || e >= 97 && e <= 122 || e === 95;
858
+ }
859
+ function C(e, t, n) {
860
+ if (t >= n) return null;
861
+ let r = 0;
862
+ for (let i = t; i < n; i++) {
863
+ let t = e.charCodeAt(i);
864
+ if (t < 48 || t > 57) return null;
865
+ r = 10 * r + (t - 48);
866
+ }
867
+ return r;
868
+ }
869
+ function w(e) {
870
+ return e >= 65 && e <= 90 || e >= 97 && e <= 122;
871
+ }
872
+ function T(e) {
873
+ return w(e) || e >= 48 && e <= 57 || e === 95 || e === 45;
874
+ }
875
+ function E(e) {
876
+ let t = 1;
877
+ for (let n = 0; n < e.length; n++) e.charCodeAt(n) === 10 && t++;
878
+ let n = new Int32Array(t), r = 1;
879
+ n[0] = 0;
880
+ for (let t = 0; t < e.length; t++) e.charCodeAt(t) === 10 && (n[r++] = t + 1);
881
+ return n;
882
+ }
883
+ function D(e, t) {
884
+ let n = 0, r = e.length - 1;
885
+ for (; n < r;) {
886
+ let i = n + r + 1 >>> 1;
887
+ e[i] <= t ? n = i : r = i - 1;
888
+ }
889
+ return n + 1;
890
+ }
891
+ function O(e, t, n) {
892
+ return t >= e.length ? n : e[t];
893
+ }
894
+ function k(e, t, n, r) {
895
+ let i = n.length, a, o;
896
+ switch (e.kind) {
897
+ case "bare":
898
+ a = t.line, o = t.line;
899
+ break;
900
+ case "lineCount":
901
+ if (a = t.line + 1, o = Math.min(i, t.line + e.count), a > i) return {
902
+ start: 0,
903
+ end: 0,
904
+ start_line: t.line,
905
+ end_line: t.line
906
+ };
907
+ break;
908
+ case "lineRef":
909
+ if (e.from > i) return null;
910
+ if (e.to === void 0) a = e.from, o = e.from;
911
+ else if (e.inclusive) a = e.from, o = Math.min(i, e.to);
912
+ else if (a = e.from + 1, o = Math.min(i, e.to - 1), o < a) return {
913
+ start: 0,
914
+ end: 0,
915
+ start_line: t.line,
916
+ end_line: t.line
917
+ };
918
+ break;
919
+ default: return null;
920
+ }
921
+ return {
922
+ start: n[a - 1],
923
+ end: O(n, o, r),
924
+ start_line: a,
925
+ end_line: o
926
+ };
927
+ }
928
+ function A(e, t, n, r) {
929
+ if (e === void 0) return {
930
+ start: M(n, t.line),
931
+ end: N(n, t.line, r)
932
+ };
933
+ if (e.kind === "all") return {
934
+ start: 0,
935
+ end: r
936
+ };
937
+ let i = k(e, t, n, r);
938
+ return i === null ? null : {
939
+ start: i.start,
940
+ end: i.end
941
+ };
942
+ }
943
+ function j(e, t, n, r, i, a, o, s, c) {
944
+ if (e.kind === "wildcard" && t.kind === "wildcard") return null;
945
+ let l = M(s, i.line), u = N(s, i.line, o.length), d = M(s, a.line), f = N(s, a.line, o.length), p = e.kind === "wildcard" ? null : P(o, e, l, u, c);
946
+ if (e.kind !== "wildcard" && p === null) return null;
947
+ let m = t.kind === "wildcard" ? null : P(o, t, p !== null && i.line === a.line ? p.end : d, f, c);
948
+ if (t.kind !== "wildcard" && m === null) return null;
949
+ let h, g;
950
+ return h = e.kind === "wildcard" ? l : n ? p.start : p.end, g = t.kind === "wildcard" ? f : r ? m.end : m.start, g < h && (g = h), {
951
+ start: h,
952
+ end: g,
953
+ start_line: D(s, h),
954
+ end_line: D(s, Math.max(h, g - 1))
955
+ };
956
+ }
957
+ function M(e, t) {
958
+ return e[t - 1];
959
+ }
960
+ function N(e, t, n) {
961
+ return t < e.length ? e[t] - 1 : n;
962
+ }
963
+ function P(e, t, n, r, i) {
964
+ if (t.kind === "wildcard") return null;
965
+ let a = t.value;
966
+ if (a.length === 0) return null;
967
+ let o = n;
968
+ for (; o + a.length <= r;) {
969
+ let n = e.indexOf(a, o);
970
+ if (n < 0 || n + a.length > r) return null;
971
+ let s = L(i, n);
972
+ if (!(s >= 0)) {
973
+ if (t.kind === "word") {
974
+ let t = n === 0 || !S(e.charCodeAt(n - 1)), r = n + a.length, i = r >= e.length || !S(e.charCodeAt(r));
975
+ if (!t || !i) {
976
+ o = n + 1;
977
+ continue;
978
+ }
979
+ }
980
+ return {
981
+ start: n,
982
+ end: n + a.length
983
+ };
984
+ }
985
+ o = s;
986
+ }
987
+ return null;
988
+ }
989
+ function F(e, t, n, r, i) {
990
+ let a = [], o = n;
991
+ for (; o < r;) {
992
+ let n = P(e, t, o, r, i);
993
+ if (n === null) break;
994
+ a.push(n), o = Math.max(n.end, n.start + 1);
995
+ }
996
+ return a;
997
+ }
998
+ function I(e, t) {
999
+ let n = 0;
1000
+ for (let r = 0; r < e.length; r += 3) e[r] === t && n++;
1001
+ let r = new Uint32Array(2 * n), i = 0;
1002
+ for (let n = 0; n < e.length; n += 3) e[n] === t && (r[i++] = e[n + 1], r[i++] = e[n + 2]);
1003
+ return r;
1004
+ }
1005
+ function L(e, t) {
1006
+ if (e.length === 0) return -1;
1007
+ let n = 0, r = e.length / 2 - 1;
1008
+ for (; n <= r;) {
1009
+ let i = n + r >>> 1;
1010
+ e[2 * i] <= t ? n = i + 1 : r = i - 1;
1011
+ }
1012
+ if (r < 0) return -1;
1013
+ let i = e[2 * r + 1];
1014
+ return t < i ? i : -1;
1015
+ }
1016
+ function R(e, t, n, r, i) {
1017
+ e.sort((e, t) => e.start - t.start || e.end - t.end);
1018
+ let a = new Uint32Array(4 * e.length);
1019
+ for (let t = 0; t < e.length; t++) {
1020
+ let n = e[t];
1021
+ a[4 * t] = n.start, a[4 * t + 1] = n.end, a[4 * t + 2] = n.class_id, a[4 * t + 3] = n.flags;
1022
+ }
1023
+ n.sort((e, t) => e.start - t.start);
1024
+ let o = new Uint32Array(2 * n.length);
1025
+ for (let e = 0; e < n.length; e++) o[2 * e] = n[e].start, o[2 * e + 1] = n[e].end;
1026
+ return {
1027
+ ranges: a,
1028
+ classifications: t,
1029
+ skip_ranges: o,
1030
+ elided_lines: z(r, n, i())
1031
+ };
1032
+ }
1033
+ function z(e, t, n) {
1034
+ let r = n.length, i = new Uint8Array(r), a = /* @__PURE__ */ new Map();
1035
+ for (let e of t) {
1036
+ let t = a.get(e.line);
1037
+ t === void 0 && (t = [], a.set(e.line, t)), t.push(e);
1038
+ }
1039
+ for (let [t, o] of a) {
1040
+ let a = t < r ? n[t] - 1 : e.length, s = !1, c = !1, l = n[t - 1];
1041
+ o.sort((e, t) => e.start - t.start);
1042
+ for (let t = 0; t < o.length; t++) {
1043
+ let n = o[t];
1044
+ B(e, l, n.start) && (s = !0, c = !0), B(e, n.start, n.end) && (s = !0), l = n.end;
1045
+ }
1046
+ B(e, l, a) && (s = !0, c = !0), s && !c && (i[t - 1] = 1);
1047
+ }
1048
+ return i;
1049
+ }
1050
+ function B(e, t, n) {
1051
+ for (let r = t; r < n; r++) {
1052
+ let t = e.charCodeAt(r);
1053
+ if (t !== 32 && t !== 9 && t !== 13) return !0;
1054
+ }
1055
+ return !1;
1056
+ }
1057
+ function ee(e, t, n, r) {
1058
+ let i = t;
1059
+ for (let t = 0; t < r.length; t++) {
1060
+ let n = r[t];
1061
+ if (V(e, i, n.start)) return !1;
1062
+ i = n.end;
1063
+ }
1064
+ return !V(e, i, n);
1065
+ }
1066
+ function V(e, t, n) {
1067
+ for (let r = t; r < n; r++) {
1068
+ let t = e.charCodeAt(r);
1069
+ if (t >= 48 && t <= 57 || t >= 65 && t <= 90 || t >= 97 && t <= 122 || t === 95 || t >= 128) return !0;
1070
+ }
1071
+ return !1;
1072
+ }
1073
+ function te(e, t, n) {
1074
+ if (!Array.isArray(t)) throw TypeError("overlays must be an array");
1075
+ let r = E(e), i = [], a = [];
1076
+ if (n !== void 0) {
1077
+ let { ranges: t, classifications: o, skip_ranges: s } = n;
1078
+ for (let e = 0; e < t.length; e += 4) i.push({
1079
+ start: t[e],
1080
+ end: t[e + 1],
1081
+ cls: o[t[e + 2]],
1082
+ flags: t[e + 3]
1083
+ });
1084
+ for (let t = 0; t < s.length; t += 2) fe(a, e, r, s[t], s[t + 1]);
1085
+ }
1086
+ for (let n = 0; n < t.length; n++) {
1087
+ let o = t[n];
1088
+ switch (re(o, n)) {
1089
+ case "range": {
1090
+ let { start: t, end: a } = ae(o, n, e, r), s = le(o.class, n);
1091
+ t < a && i.push({
1092
+ start: t,
1093
+ end: a,
1094
+ cls: s,
1095
+ flags: 0
1096
+ });
1097
+ break;
1098
+ }
1099
+ case "line": {
1100
+ let t = se(o.line, n, "line", r.length);
1101
+ i.push({
1102
+ start: r[t - 1],
1103
+ end: de(r, t, e.length),
1104
+ cls: le(o.class, n),
1105
+ flags: 1
1106
+ });
1107
+ break;
1108
+ }
1109
+ case "lines": {
1110
+ let t = le(o.class, n);
1111
+ for (let a of ce(o.lines, n, r.length)) i.push({
1112
+ start: r[a - 1],
1113
+ end: de(r, a, e.length),
1114
+ cls: t,
1115
+ flags: 1
1116
+ });
1117
+ break;
1118
+ }
1119
+ case "hide": {
1120
+ let { start: t, end: i } = ae(o, n, e, r);
1121
+ fe(a, e, r, t, i);
1122
+ break;
1123
+ }
1124
+ }
1125
+ }
1126
+ return pe(e, r, i, a, n);
1127
+ }
1128
+ var ne = /* @__PURE__ */ new Set([
1129
+ "start",
1130
+ "end",
1131
+ "class",
1132
+ "line",
1133
+ "lines",
1134
+ "hide"
1135
+ ]);
1136
+ function re(e, t) {
1137
+ if (typeof e != "object" || !e || Array.isArray(e)) throw TypeError(`overlays[${t}] must be an object`);
1138
+ let n = /* @__PURE__ */ new Set();
1139
+ for (let r of Object.keys(e)) if (e[r] !== void 0) {
1140
+ if (!ne.has(r)) throw TypeError(`overlays[${t}] has an unknown field "${r}"`);
1141
+ n.add(r);
1142
+ }
1143
+ if (ie(n, "start", "end", "class")) return "range";
1144
+ if (ie(n, "line", "class")) return "line";
1145
+ if (ie(n, "lines", "class")) return "lines";
1146
+ if (ie(n, "start", "end", "hide")) {
1147
+ if (!0 !== e.hide) throw TypeError(`overlays[${t}].hide must be true`);
1148
+ return "hide";
1149
+ }
1150
+ throw TypeError(`overlays[${t}] must be { start, end, class }, { line, class }, { lines, class } or { start, end, hide: true }`);
1151
+ }
1152
+ function ie(e, ...t) {
1153
+ if (e.size !== t.length) return !1;
1154
+ for (let n of t) if (!e.has(n)) return !1;
1155
+ return !0;
1156
+ }
1157
+ function ae(e, t, n, r) {
1158
+ let i = oe(e.start, t, "start", n, r), a = oe(e.end, t, "end", n, r);
1159
+ if (a < i) throw RangeError(`overlays[${t}].end (${a}) is before its start (${i})`);
1160
+ return {
1161
+ start: i,
1162
+ end: a
1163
+ };
1164
+ }
1165
+ function oe(e, t, n, r, i) {
1166
+ if (typeof e == "number") {
1167
+ if (!Number.isInteger(e)) throw RangeError(`overlays[${t}].${n} must be an integer offset`);
1168
+ if (e < 0 || e > r.length) throw RangeError(`overlays[${t}].${n} offset ${e} is outside 0..${r.length}`);
1169
+ return e;
1170
+ }
1171
+ if (typeof e != "object" || !e) throw TypeError(`overlays[${t}].${n} must be an offset or { line, character }`);
1172
+ let a = e, o = se(a.line, t, `${n}.line`, i.length), s = a.character, c = de(i, o, r.length) - i[o - 1], l = o < i.length ? c - 1 : c;
1173
+ if (typeof s != "number" || !Number.isInteger(s)) throw RangeError(`overlays[${t}].${n}.character must be an integer`);
1174
+ if (s < 0 || s > l) throw RangeError(`overlays[${t}].${n}.character ${s} is outside 0..${l} on line ${o}`);
1175
+ return i[o - 1] + s;
1176
+ }
1177
+ function se(e, t, n, r) {
1178
+ if (typeof e != "number" || !Number.isInteger(e)) throw RangeError(`overlays[${t}].${n} must be an integer line number`);
1179
+ if (e < 1 || e > r) throw RangeError(`overlays[${t}].${n} ${e} is outside 1..${r}`);
1180
+ return e;
1181
+ }
1182
+ function ce(e, t, n) {
1183
+ if (!Array.isArray(e)) throw TypeError(`overlays[${t}].lines must be an array`);
1184
+ let r = /* @__PURE__ */ new Set(), i = [], a = (e) => {
1185
+ r.has(e) || (r.add(e), i.push(e));
1186
+ };
1187
+ for (let r of e) {
1188
+ if (Array.isArray(r)) {
1189
+ if (r.length !== 2) throw TypeError(`overlays[${t}].lines pairs must be [from, to]`);
1190
+ let e = se(r[0], t, "lines[from]", n), i = se(r[1], t, "lines[to]", n);
1191
+ if (i < e) throw RangeError(`overlays[${t}].lines pair [${e}, ${i}] runs backwards`);
1192
+ for (let t = e; t <= i; t++) a(t);
1193
+ continue;
1194
+ }
1195
+ a(se(r, t, "lines", n));
1196
+ }
1197
+ return i;
1198
+ }
1199
+ function le(e, t) {
1200
+ if (typeof e != "string" || !ue(e)) throw TypeError(`overlays[${t}].class must be one or more css class tokens separated by single spaces`);
1201
+ return e;
1202
+ }
1203
+ function ue(e) {
1204
+ let t = e.length;
1205
+ if (t === 0) return !1;
1206
+ let n = 0;
1207
+ for (let r = 0; r <= t; r++) {
1208
+ let i = r < t ? e.charCodeAt(r) : 32;
1209
+ if (i !== 32) {
1210
+ if (!(i >= 128 || i >= 48 && i <= 57 || i >= 65 && i <= 90 || i >= 97 && i <= 122 || i === 45 || i === 95)) return !1;
1211
+ } else {
1212
+ if (r === n || e.charCodeAt(n) >= 48 && e.charCodeAt(n) <= 57) return !1;
1213
+ n = r + 1;
1214
+ }
1215
+ }
1216
+ return !0;
1217
+ }
1218
+ function de(e, t, n) {
1219
+ return t < e.length ? e[t] : n;
1220
+ }
1221
+ function fe(e, t, n, r, i) {
1222
+ if (r >= i) return;
1223
+ let a = D(n, r), o = D(n, i - 1);
1224
+ for (let s = a; s <= o; s++) {
1225
+ let a = n[s - 1], o = s < n.length ? n[s] - 1 : t.length, c = r > a ? r : a, l = i < o ? i : o;
1226
+ c < l && e.push({
1227
+ start: c,
1228
+ end: l,
1229
+ line: s
1230
+ });
1231
+ }
1232
+ }
1233
+ function pe(e, t, n, r, i) {
1234
+ n.sort((e, t) => e.start - t.start || e.end - t.end || e.flags - t.flags || (e.cls < t.cls ? -1 : +(e.cls > t.cls)));
1235
+ let a = i === void 0 ? [] : i.classifications.slice(), o = /* @__PURE__ */ new Map();
1236
+ for (let e = 0; e < a.length; e++) o.set(a[e], e);
1237
+ let s = new Uint32Array(4 * n.length);
1238
+ for (let e = 0; e < n.length; e++) {
1239
+ let t = n[e], r = o.get(t.cls);
1240
+ r === void 0 && (r = a.length, a.push(t.cls), o.set(t.cls, r)), s[4 * e] = t.start, s[4 * e + 1] = t.end, s[4 * e + 2] = r, s[4 * e + 3] = t.flags;
1241
+ }
1242
+ r.sort((e, t) => e.start - t.start || e.end - t.end);
1243
+ let c = [];
1244
+ for (let e of r) {
1245
+ let t = c.length === 0 ? null : c[c.length - 1];
1246
+ t !== null && e.start <= t.end && e.line === t.line ? e.end > t.end && (t.end = e.end) : c.push({
1247
+ start: e.start,
1248
+ end: e.end,
1249
+ line: e.line
1250
+ });
1251
+ }
1252
+ let l = new Uint32Array(2 * c.length);
1253
+ for (let e = 0; e < c.length; e++) l[2 * e] = c[e].start, l[2 * e + 1] = c[e].end;
1254
+ return {
1255
+ ranges: s,
1256
+ classifications: a,
1257
+ skip_ranges: l,
1258
+ elided_lines: z(e, c, t)
1259
+ };
1260
+ }
1261
+ var me = Array(128);
1262
+ for (let e = 0; e < 128; e++) me[e] = String.fromCharCode(e);
1263
+ me[38] = "&amp;", me[60] = "&lt;", me[62] = "&gt;", me[34] = "&quot;", me[39] = "&#39;";
1264
+ var he = /* @__PURE__ */ new Uint8Array(63);
1265
+ function ge(e, t, n = {}) {
1266
+ let r = n.overlays;
1267
+ if (r !== void 0 && r.length !== 0) {
1268
+ let i = te(e, r, t.overlays);
1269
+ if (i.ranges.length !== 0 || i.skip_ranges.length !== 0) return Le(e, t, i, n);
1270
+ }
1271
+ if (t.overlays !== void 0) return Le(e, t, t.overlays, n);
1272
+ let { tokens: i, token_types: a } = t, { class_name: o = "twinkleplop" } = n, s = !!n.line_numbers, c = n.structure === "inline", l = c ? void 0 : n.line, u = n.token, d = c ? "<br>" : "</span>\n", f = Se(n.whitespace), p = Ce(n.indent_guides), m = f !== 0 || p !== 0, h = c ? "" : ke(o, n.attributes), g = c ? 1 : ve(n.line_numbers), _ = g, v = null, y = null;
1273
+ function b() {
1274
+ if (c) return;
1275
+ if (l === void 0) return void (h += _e(_, s));
1276
+ let e = _ - g + 1, t = Ne(l(e, e), "line");
1277
+ h += t === null ? _e(_, s) : Ge(_, s, "l" + t.cls, t.attrs);
1278
+ }
1279
+ function x() {
1280
+ v !== null && (h += "</span>", v = null);
1281
+ }
1282
+ function S(e) {
1283
+ e !== v && (x(), e !== null && (h += y === null ? `<span class="tok ${e}">` : y, v = e));
1284
+ }
1285
+ function C(t, n, r) {
1286
+ if (t >= n) return;
1287
+ let i = t;
1288
+ for (let a = t; a < n; a++) {
1289
+ let t = e.charCodeAt(a);
1290
+ if (t > 62) continue;
1291
+ let n = he[t];
1292
+ n !== 0 && (n === 2 ? (S(r), a > i && (h += e.substring(i, a)), h += me[t], i = a + 1) : (a > i && (S(r), h += e.substring(i, a)), x(), h += d, _++, b(), i = a + 1));
1293
+ }
1294
+ n > i && (S(r), h += e.substring(i, n));
1295
+ }
1296
+ function w(t, n) {
1297
+ x();
1298
+ let r = t, i = t;
1299
+ for (; i < n;) {
1300
+ let t = e.charCodeAt(i);
1301
+ if (t === 32 || t === 9) {
1302
+ i > r && C(r, i, null);
1303
+ let t = i + 1;
1304
+ for (; t < n;) {
1305
+ let n = e.charCodeAt(t);
1306
+ if (n !== 32 && n !== 9) break;
1307
+ t++;
1308
+ }
1309
+ h += De(e, i, t, f, p), i = t, r = t;
1310
+ continue;
1311
+ }
1312
+ t === 10 ? (i > r && C(r, i, null), h += d, _++, b(), i++, r = i) : i++;
1313
+ }
1314
+ n > r && C(r, n, null);
1315
+ }
1316
+ b();
1317
+ let T = 0;
1318
+ for (let e = 0; e < i.length; e += 3) {
1319
+ let t = a[i[e]], n = i[e + 1], r = i[e + 2];
1320
+ if (n > T && (m ? w(T, n) : C(T, n, null)), u !== void 0) {
1321
+ let e = Ne(u(t, n, r), "token");
1322
+ if (e !== null) {
1323
+ x(), y = Pe(t, e), C(n, r, t), x(), y = null, T = r;
1324
+ continue;
1325
+ }
1326
+ }
1327
+ C(n, r, t), T = r;
1328
+ }
1329
+ return T < e.length && (m ? w(T, e.length) : C(T, e.length, null)), x(), c || (h += "</span></code></pre>"), h;
1330
+ }
1331
+ function _e(e, t) {
1332
+ return t ? `<span class="l"><span class="ln">${e}</span>` : "<span class=\"l\">";
1333
+ }
1334
+ function ve(e) {
1335
+ if (typeof e != "object" || !e) return 1;
1336
+ let t = e.start;
1337
+ if (t === void 0) return 1;
1338
+ if (typeof t != "number" || !Number.isInteger(t)) throw RangeError(`line_numbers.start must be a finite integer, got ${String(t)}`);
1339
+ return t;
1340
+ }
1341
+ he[10] = 1, he[34] = 2, he[38] = 2, he[39] = 2, he[60] = 2, he[62] = 2;
1342
+ var ye = 1;
1343
+ var be = 2;
1344
+ var xe = 4;
1345
+ function Se(e) {
1346
+ switch (e) {
1347
+ case void 0: return 0;
1348
+ case "all": return 5 | be;
1349
+ case "boundary": return ye | be;
1350
+ case "leading": return ye;
1351
+ case "trailing": return be;
1352
+ }
1353
+ throw TypeError(`whitespace must be "all", "boundary", "leading" or "trailing", got ${String(e)}`);
1354
+ }
1355
+ function Ce(e) {
1356
+ if (e === void 0 || !1 === e) return 0;
1357
+ if (!0 === e) return 2;
1358
+ let t = e.size;
1359
+ if (t === void 0) return 2;
1360
+ if (typeof t != "number" || !Number.isInteger(t) || t < 1) throw RangeError(`indent_guides.size must be a positive integer, got ${String(t)}`);
1361
+ return t;
1362
+ }
1363
+ var we = "<span class=\"tok space\"> </span>";
1364
+ var Te = "<span class=\"tok tab\"> </span>";
1365
+ var Ee = "<span class=\"indent\">";
1366
+ function De(e, t, n, r, i) {
1367
+ let a = t === 0 || e.charCodeAt(t - 1) === 10, o = (r & xe) !== 0;
1368
+ if (!o) {
1369
+ if (a && (r & ye) !== 0) o = !0;
1370
+ else if ((r & be) !== 0) {
1371
+ let t = n === e.length ? 10 : e.charCodeAt(n);
1372
+ o = t === 10 || t === 13;
1373
+ }
1374
+ }
1375
+ if (!a || i === 0) return Oe(e, t, n, o);
1376
+ let s = "", c = t, l = 0;
1377
+ for (let r = t; r < n; r++) e.charCodeAt(r) === 9 ? (l !== 0 && (s += Oe(e, c, r, o), l = 0), s += Ee + (o ? Te : " ") + "</span>", c = r + 1) : ++l === i && (s += Ee + Oe(e, c, r + 1, o) + "</span>", l = 0, c = r + 1);
1378
+ return l !== 0 && (s += Oe(e, c, n, o)), s;
1379
+ }
1380
+ function Oe(e, t, n, r) {
1381
+ if (!r) return e.substring(t, n);
1382
+ let i = "";
1383
+ for (let r = t; r < n; r++) i += e.charCodeAt(r) === 9 ? Te : we;
1384
+ return i;
1385
+ }
1386
+ function ke(e, t) {
1387
+ return t === void 0 ? `<pre class="${e}"><code>` : `<pre class="${e}"${je(t)}><code>`;
1388
+ }
1389
+ function Ae(e, t) {
1390
+ return t.length === 0 ? e : e.length === 0 ? t : e + " " + t;
1391
+ }
1392
+ function je(e, t = "attributes") {
1393
+ let n = "";
1394
+ for (let r of Object.keys(e)) {
1395
+ if (r === "class" || r === "style") throw TypeError(`${t}.${r} is reserved`);
1396
+ if (!Me(r)) throw TypeError(`"${r}" is not a valid attribute name`);
1397
+ let i = e[r];
1398
+ if (!1 !== i) if (!0 === i) n += " " + r;
1399
+ else if (typeof i == "string") n += ` ${r}="${Ke(i)}"`;
1400
+ else {
1401
+ if (typeof i != "number") throw TypeError(`${t}.${r} must be a string, number or boolean`);
1402
+ n += ` ${r}="${i}"`;
1403
+ }
1404
+ }
1405
+ return n;
1406
+ }
1407
+ function Me(e) {
1408
+ let t = e.length;
1409
+ if (t === 0) return !1;
1410
+ for (let n = 0; n < t; n++) {
1411
+ let t = e.charCodeAt(n);
1412
+ if (t >= 48 && t <= 57) {
1413
+ if (n === 0) return !1;
1414
+ } else if (!(t >= 65 && t <= 90 || t >= 97 && t <= 122) && t !== 45 && t !== 95 && t !== 58 && t !== 46) return !1;
1415
+ }
1416
+ return !0;
1417
+ }
1418
+ function Ne(e, t) {
1419
+ if (e == null) return null;
1420
+ if (typeof e != "object") throw TypeError(`the ${t} hook must return an object or nothing, got ${typeof e}`);
1421
+ let { class: n, attrs: r } = e, i = "";
1422
+ if (n != null) {
1423
+ if (typeof n != "string") throw TypeError(`${t} hook class must be a string`);
1424
+ n.length !== 0 && (i = " " + Ke(n));
1425
+ }
1426
+ return {
1427
+ cls: i,
1428
+ attrs: r === void 0 ? "" : je(r, `${t} hook attrs`)
1429
+ };
1430
+ }
1431
+ function Pe(e, t) {
1432
+ return `<span class="tok ${e}${t.cls}"${t.attrs}>`;
1433
+ }
1434
+ function Fe(e, t) {
1435
+ let n = t.length;
1436
+ if (n === 0 || e.length === 0) return "";
1437
+ let r = Array(n).fill(-1), i = Array(n).fill(0);
1438
+ for (let t = 0; t < e.length; t += 4) {
1439
+ let a = e[t + 2];
1440
+ if (a >= n) continue;
1441
+ let o = e[t];
1442
+ (r[a] === -1 || o < r[a]) && (r[a] = o, i[a] = t);
1443
+ }
1444
+ let a = [];
1445
+ for (let e = 0; e < n; e++) r[e] !== -1 && a.push(e);
1446
+ a.sort((e, t) => r[e] - r[t] || i[e] - i[t]);
1447
+ let o = /* @__PURE__ */ new Set(), s = "";
1448
+ for (let e = 0; e < a.length; e++) {
1449
+ let n = t[a[e]], r = n.indexOf(" "), i = r === -1 ? n : n.substring(0, r);
1450
+ i.length === 0 || o.has(i) || (o.add(i), s += s.length === 0 ? "has-" + i : " has-" + i);
1451
+ }
1452
+ return s;
1453
+ }
1454
+ function Ie(e, t, n) {
1455
+ let r = !1;
1456
+ for (let i = t; i < n; i++) {
1457
+ let t = e.charCodeAt(i);
1458
+ if (t === 38 || t === 60 || t === 62 || t === 34 || t === 39) {
1459
+ r = !0;
1460
+ break;
1461
+ }
1462
+ }
1463
+ if (!r) return e.substring(t, n);
1464
+ let i = "", a = t;
1465
+ for (let r = t; r < n; r++) {
1466
+ let t = e.charCodeAt(r);
1467
+ t !== 38 && t !== 60 && t !== 62 && t !== 34 && t !== 39 || (r > a && (i += e.substring(a, r)), i += me[t], a = r + 1);
1468
+ }
1469
+ return n > a && (i += e.substring(a, n)), i;
1470
+ }
1471
+ function Le(e, t, n, r) {
1472
+ let { tokens: i, token_types: a } = t, { class_name: o = "twinkleplop" } = r, s = !!r.line_numbers, c = r.structure === "inline", l = c ? void 0 : r.line, u = r.token, d = c ? "<br>" : "</span>\n", f = Se(r.whitespace), p = Ce(r.indent_guides), m = f !== 0 || p !== 0, { ranges: h, classifications: g, skip_ranges: _, elided_lines: v } = n, y = /* @__PURE__ */ new Map(), b = /* @__PURE__ */ new Map();
1473
+ if (h.length > 0) for (let t = 0; t < h.length; t += 4) {
1474
+ let n = h[t], r = h[t + 1], i = h[t + 2], a = h[t + 3], o = We(e, n), s = r > n ? We(e, r - 1) : o;
1475
+ if (1 & ~a) for (let e = o; e <= s; e++) {
1476
+ let t = b.get(e);
1477
+ t === void 0 && (t = [], b.set(e, t)), t.push({
1478
+ start: n,
1479
+ end: r,
1480
+ class_id: i
1481
+ });
1482
+ }
1483
+ else for (let e = o; e <= s; e++) {
1484
+ let t = y.get(e);
1485
+ t === void 0 ? y.set(e, [i]) : t.includes(i) || t.push(i);
1486
+ }
1487
+ }
1488
+ let x = null;
1489
+ function S() {
1490
+ if (x !== null) return x;
1491
+ let t = 1;
1492
+ for (let n = 0; n < e.length; n++) e.charCodeAt(n) === 10 && t++;
1493
+ x = new Int32Array(t);
1494
+ let n = 1;
1495
+ for (let t = 0; t < e.length; t++) e.charCodeAt(t) === 10 && (x[n++] = t + 1);
1496
+ return x;
1497
+ }
1498
+ let C = 0, w = _.length / 2;
1499
+ function T(e) {
1500
+ if (w === 0) return -1;
1501
+ let t = 0, n = w - 1;
1502
+ for (; t < n;) {
1503
+ let r = t + n + 1 >>> 1;
1504
+ _[2 * r] <= e ? t = r : n = r - 1;
1505
+ }
1506
+ return _[2 * t] <= e && e < _[2 * t + 1] ? t : -1;
1507
+ }
1508
+ let E = /* @__PURE__ */ new Map();
1509
+ function D(t) {
1510
+ let n = E.get(t);
1511
+ if (n !== void 0) return n;
1512
+ let r = S(), i = r[t - 1], a = t < r.length ? r[t] - 1 : e.length, o = a - 1, s = !1;
1513
+ for (; o >= i;) {
1514
+ let t = T(o);
1515
+ if (t >= 0) {
1516
+ s = !0, o = _[2 * t] - 1;
1517
+ continue;
1518
+ }
1519
+ let n = e.charCodeAt(o);
1520
+ if (n !== 32 && n !== 9 && n !== 13) break;
1521
+ o--;
1522
+ }
1523
+ let c = m && !s ? a : o + 1;
1524
+ return E.set(t, c), c;
1525
+ }
1526
+ let O = /* @__PURE__ */ new Map();
1527
+ function k(t) {
1528
+ let n = O.get(t);
1529
+ if (n !== void 0) return n;
1530
+ let r = b.get(t);
1531
+ if (r === void 0 || r.length === 0) return O.set(t, Re), Re;
1532
+ let i = S(), a = ze(r, g, e, i[t - 1], t < i.length ? i[t] - 1 : e.length, _);
1533
+ return O.set(t, a), a;
1534
+ }
1535
+ let A = [];
1536
+ if (!c) {
1537
+ let e = !1 === r.has_classes ? "" : Fe(h, g);
1538
+ A.push(ke(Ae(o, e), r.attributes));
1539
+ }
1540
+ let j = 1, M = c ? 1 : ve(r.line_numbers), N = M, P = !1, F = null, I = null, L = Re, R = 0, z = null;
1541
+ function B() {
1542
+ if (!(P || j <= v.length && v[j - 1] === 1)) {
1543
+ if (!c) {
1544
+ let e = "l", t = y.get(j);
1545
+ if (t !== void 0) for (let n = 0; n < t.length; n++) e += " " + g[t[n]];
1546
+ let n = "";
1547
+ if (l !== void 0) {
1548
+ let t = Ne(l(N - M + 1, j), "line");
1549
+ t !== null && (e += t.cls, n = t.attrs);
1550
+ }
1551
+ A.push(Ge(N, s, e, n));
1552
+ }
1553
+ N++, P = !0, L = k(j), R = 0, z = null;
1554
+ }
1555
+ }
1556
+ function ee() {
1557
+ F !== null && (A.push("</span>"), F = null);
1558
+ }
1559
+ function V() {
1560
+ ee(), z !== null && (A.push("</span>"), z = null);
1561
+ }
1562
+ function te() {
1563
+ V(), P &&= (A.push(d), !1), j++;
1564
+ }
1565
+ function ne(t, n, r) {
1566
+ if (!(t >= n)) {
1567
+ if (r === null && m) return ee(), void ae(t, n);
1568
+ if (ie(t, n)) return ee(), void Ve(A, e, t, n, _, se);
1569
+ var i;
1570
+ (i = r) !== F && (ee(), i !== null && (A.push(I === null ? `<span class="tok ${i}">` : I), F = i)), Ve(A, e, t, n, _, se);
1571
+ }
1572
+ }
1573
+ function re(e, t, n) {
1574
+ if (e >= t) return;
1575
+ let r = e;
1576
+ for (; r < t;) {
1577
+ if (z !== null && r >= z.end && V(), z === null && R < L.length) {
1578
+ let e = L[R];
1579
+ r >= e.start && (ee(), A.push(`<span class="tok ${e.cls}">`), z = e, R++);
1580
+ }
1581
+ let e = t;
1582
+ if (z !== null && z.end < e) e = z.end;
1583
+ else if (z === null && R < L.length) {
1584
+ let t = L[R];
1585
+ t.start < e && (e = t.start);
1586
+ }
1587
+ ne(r, e, n), r = e;
1588
+ }
1589
+ }
1590
+ function ie(t, n) {
1591
+ let r = 0;
1592
+ for (; r < w && _[2 * r + 1] <= t;) r++;
1593
+ let i = t;
1594
+ for (; i < n;) {
1595
+ if (r < w) {
1596
+ let e = _[2 * r + 1];
1597
+ if (_[2 * r] < n && e > i) {
1598
+ i = e > n ? n : e, r++;
1599
+ continue;
1600
+ }
1601
+ }
1602
+ let t = e.charCodeAt(i);
1603
+ if (t !== 32 && t !== 9 && t !== 13) return !1;
1604
+ i++;
1605
+ }
1606
+ return !0;
1607
+ }
1608
+ function ae(e, t) {
1609
+ let n = se(e), r = e;
1610
+ for (; n < w;) {
1611
+ let e = _[2 * n], i = _[2 * n + 1];
1612
+ if (e >= t) break;
1613
+ e > r && oe(r, e);
1614
+ let a = i < t ? i : t, o = a - (r > e ? r : e);
1615
+ if (o > 0 && A.push(Ue(o)), r = a, i > t) break;
1616
+ n++;
1617
+ }
1618
+ r < t && oe(r, t);
1619
+ }
1620
+ function oe(t, n) {
1621
+ let r = t, i = t;
1622
+ for (; i < n;) {
1623
+ let t = e.charCodeAt(i);
1624
+ if (t !== 32 && t !== 9) {
1625
+ i++;
1626
+ continue;
1627
+ }
1628
+ i > r && A.push(Ie(e, r, i));
1629
+ let a = i + 1;
1630
+ for (; a < n;) {
1631
+ let t = e.charCodeAt(a);
1632
+ if (t !== 32 && t !== 9) break;
1633
+ a++;
1634
+ }
1635
+ A.push(De(e, i, a, f, p)), i = a, r = a;
1636
+ }
1637
+ n > r && A.push(Ie(e, r, n));
1638
+ }
1639
+ function se(e, t) {
1640
+ for (; C < w && _[2 * C + 1] <= e;) C++;
1641
+ return C;
1642
+ }
1643
+ function ce(t, n, r) {
1644
+ if (t >= n) return;
1645
+ let i = t;
1646
+ for (let a = t; a < n; a++) if (e.charCodeAt(a) === 10) {
1647
+ if (!(j <= v.length && v[j - 1] === 1) && a > i) {
1648
+ let e = D(j), t = a < e ? a : e;
1649
+ t > i && re(i, t, r);
1650
+ }
1651
+ te(), B(), i = a + 1;
1652
+ }
1653
+ if (!(j <= v.length && v[j - 1] === 1) && n > i) {
1654
+ let e = D(j), t = n < e ? n : e;
1655
+ t > i && re(i, t, r);
1656
+ }
1657
+ }
1658
+ B();
1659
+ let le = 0;
1660
+ for (let e = 0; e < i.length; e += 3) {
1661
+ let t = a[i[e]], n = i[e + 1], r = i[e + 2];
1662
+ if (n > le && ce(le, n, null), u !== void 0) {
1663
+ let e = Ne(u(t, n, r), "token");
1664
+ if (e !== null) {
1665
+ ee(), I = Pe(t, e), ce(n, r, t), ee(), I = null, le = r;
1666
+ continue;
1667
+ }
1668
+ }
1669
+ ce(n, r, t), le = r;
1670
+ }
1671
+ return le < e.length && ce(le, e.length, null), V(), c || (P && A.push("</span>"), A.push("</code></pre>")), A.join("");
1672
+ }
1673
+ var Re = [];
1674
+ function ze(e, t, n, r, i, a) {
1675
+ let o = [];
1676
+ for (let t of e) {
1677
+ let e = t.start < r ? r : t.start, n = t.end > i ? i : t.end;
1678
+ e >= n || (o.push({
1679
+ pos: e,
1680
+ delta: 1,
1681
+ class_id: t.class_id
1682
+ }), o.push({
1683
+ pos: n,
1684
+ delta: -1,
1685
+ class_id: t.class_id
1686
+ }));
1687
+ }
1688
+ if (o.length === 0) return [];
1689
+ o.sort((e, t) => e.pos - t.pos || e.delta - t.delta);
1690
+ let s = [], c = /* @__PURE__ */ new Map(), l = o[0].pos;
1691
+ for (let e = 0; e < o.length; e++) {
1692
+ let r = o[e];
1693
+ if (r.pos > l && c.size > 0) {
1694
+ let e = l, i = r.pos;
1695
+ for (; e < i && Be(n, e, a);) e++;
1696
+ for (; i > e && Be(n, i - 1, a);) i--;
1697
+ if (e < i) {
1698
+ let n = [];
1699
+ for (let e of c.keys()) n.push(t[e]);
1700
+ s.push({
1701
+ start: e,
1702
+ end: i,
1703
+ cls: n.join(" ")
1704
+ });
1705
+ }
1706
+ }
1707
+ if (r.delta === 1) c.set(r.class_id, (c.get(r.class_id) ?? 0) + 1);
1708
+ else {
1709
+ let e = (c.get(r.class_id) ?? 0) - 1;
1710
+ e <= 0 ? c.delete(r.class_id) : c.set(r.class_id, e);
1711
+ }
1712
+ l = r.pos;
1713
+ }
1714
+ return s;
1715
+ }
1716
+ function Be(e, t, n) {
1717
+ let r = e.charCodeAt(t);
1718
+ if (r === 32 || r === 9 || r === 13) return !0;
1719
+ for (let e = 0; e < n.length; e += 2) {
1720
+ if (n[e] > t) return !1;
1721
+ if (t < n[e + 1]) return !0;
1722
+ }
1723
+ return !1;
1724
+ }
1725
+ function Ve(e, t, n, r, i, a) {
1726
+ let o = i.length / 2, s = a(n, r);
1727
+ if (s >= o || i[2 * s] >= r) return void e.push(Ie(t, n, r));
1728
+ let c = n;
1729
+ for (; s < o;) {
1730
+ let n = i[2 * s], a = i[2 * s + 1];
1731
+ if (n >= r) break;
1732
+ n > c && e.push(Ie(t, c, n));
1733
+ let o = Math.min(a, r), l = o - Math.max(c, n);
1734
+ if (l > 0 && e.push(Ue(l)), c = o, a > r) break;
1735
+ s++;
1736
+ }
1737
+ c < r && e.push(Ie(t, c, r));
1738
+ }
1739
+ var He = [];
1740
+ function Ue(e) {
1741
+ if (e < 64) {
1742
+ let t = He[e];
1743
+ if (t !== void 0) return t;
1744
+ let n = " ".repeat(e);
1745
+ return He[e] = n, n;
1746
+ }
1747
+ return " ".repeat(e);
1748
+ }
1749
+ function We(e, t) {
1750
+ let n = 1, r = Math.min(t, e.length);
1751
+ for (let t = 0; t < r; t++) e.charCodeAt(t) === 10 && n++;
1752
+ return n;
1753
+ }
1754
+ function Ge(e, t, n, r) {
1755
+ return t ? `<span class="${n}"${r}><span class="ln">${e}</span>` : `<span class="${n}"${r}>`;
1756
+ }
1757
+ function Ke(e) {
1758
+ let t = e.length, n = !1;
1759
+ for (let r = 0; r < t; r++) {
1760
+ let t = e.charCodeAt(r);
1761
+ if (t === 38 || t === 60 || t === 62 || t === 34 || t === 39) {
1762
+ n = !0;
1763
+ break;
1764
+ }
1765
+ }
1766
+ if (!n) return e;
1767
+ let r = "", i = 0;
1768
+ for (let n = 0; n < t; n++) {
1769
+ let t = e.charCodeAt(n);
1770
+ t !== 38 && t !== 60 && t !== 62 && t !== 34 && t !== 39 || (n > i && (r += e.substring(i, n)), r += me[t], i = n + 1);
1771
+ }
1772
+ return t > i && (r += e.substring(i, t)), r;
1773
+ }
1774
+ var qe = (e) => {
1775
+ console.warn(`[twinkleplop] ${e.source}: ${e.message}`);
1776
+ };
1777
+ var Je = null;
1778
+ var Ye = /* @__PURE__ */ new Set();
1779
+ function Xe(e) {
1780
+ Je = !0 === e ? qe : !1 === e ? null : e, Ye.clear();
1781
+ }
1782
+ function H() {
1783
+ return Je !== null;
1784
+ }
1785
+ function U(e, t, n) {
1786
+ if (Je === null) return;
1787
+ let r = `${e}\0${t}`;
1788
+ Ye.has(r) || (Ye.add(r), Je({
1789
+ source: e,
1790
+ message: n
1791
+ }));
1792
+ }
1793
+ var Ze = 0;
1794
+ var Qe = 1;
1795
+ var $e = 2;
1796
+ var et = 0;
1797
+ var tt = 1;
1798
+ var nt = 2;
1799
+ var rt = 1;
1800
+ function it(e, t, n) {
1801
+ return {
1802
+ __kind: "type",
1803
+ type_name: e,
1804
+ value: t,
1805
+ text_pred: n?.text_pred
1806
+ };
1807
+ }
1808
+ function at(...e) {
1809
+ return {
1810
+ __kind: "seq",
1811
+ children: e
1812
+ };
1813
+ }
1814
+ function ot(...e) {
1815
+ return {
1816
+ __kind: "anyOf",
1817
+ branches: e
1818
+ };
1819
+ }
1820
+ function st(e) {
1821
+ return {
1822
+ __kind: "optional",
1823
+ inner: e
1824
+ };
1825
+ }
1826
+ function ct(e, t) {
1827
+ return {
1828
+ __kind: "capture",
1829
+ name: e,
1830
+ inner: t
1831
+ };
1832
+ }
1833
+ function lt(e = "(", t = ")", n = 200, r = "punctuation") {
1834
+ return {
1835
+ __kind: "balanced",
1836
+ open: e,
1837
+ close: t,
1838
+ max_tokens: n,
1839
+ punct_type: r
1840
+ };
1841
+ }
1842
+ function ut(e, t) {
1843
+ return {
1844
+ __kind: "repeat",
1845
+ inner: e,
1846
+ separator: t
1847
+ };
1848
+ }
1849
+ function dt(e) {
1850
+ return {
1851
+ __kind: "not",
1852
+ inner: e
1853
+ };
1854
+ }
1855
+ function ft(e) {
1856
+ return {
1857
+ __kind: "params",
1858
+ into: e.into,
1859
+ find_open: e.find_open ?? "starts_with",
1860
+ strategy: e.strategy ?? "first_ident",
1861
+ separator: e.separator ?? ",",
1862
+ default_introducer: e.default_introducer,
1863
+ transparent_texts_for_type: e.transparent_texts_for_type,
1864
+ skip_generics: e.skip_generics ?? !1,
1865
+ skip_ts_return_type: e.skip_ts_return_type ?? !1,
1866
+ skip_in_type_position: e.skip_in_type_position ?? !1,
1867
+ scan_max_tokens: e.scan_max_tokens ?? 64
1868
+ };
1869
+ }
1870
+ function pt(e) {
1871
+ return {
1872
+ __kind: "type_span",
1873
+ into: e.into,
1874
+ exit_on_comma: e.exit_on_comma ?? !0,
1875
+ exit_on_eq: e.exit_on_eq ?? !0,
1876
+ exit_on_qmark: e.exit_on_qmark ?? !1,
1877
+ enter_angle: e.enter_angle ?? !1,
1878
+ brace_exit_on_closer: e.brace_exit_on_closer ?? !1,
1879
+ value_op_terminators: e.value_op_terminators,
1880
+ stmt_keyword_terminators: e.stmt_keyword_terminators,
1881
+ type_terminal_keywords: e.type_terminal_keywords,
1882
+ verify_generic_args: e.verify_generic_args ?? !1
1883
+ };
1884
+ }
1885
+ var W = -1;
1886
+ var G = -2;
1887
+ var mt = /* @__PURE__ */ new Uint8Array();
1888
+ function ht(e, t) {
1889
+ let n = e.transparent_texts_for_type;
1890
+ if (n === void 0 || n.length === 0) return null;
1891
+ let r = null;
1892
+ for (let e of n) {
1893
+ if (e.texts.length === 0) continue;
1894
+ let n = t.get(e.type);
1895
+ if (n === void 0) continue;
1896
+ for (r === null && (r = []); r.length <= n;) r.push(null);
1897
+ let i = r[n];
1898
+ r[n] = i === null ? e.texts.slice() : i.concat(e.texts);
1899
+ }
1900
+ return r;
1901
+ }
1902
+ function gt(e, t) {
1903
+ let n = e.transparent_by_type;
1904
+ return n === null || t >= n.length ? null : n[t];
1905
+ }
1906
+ function _t(e, t, n, r, i, a) {
1907
+ for (let o = n; o < r; o++) {
1908
+ let n = 3 * o, r = t[n];
1909
+ if (a[r]) continue;
1910
+ if (r === e.ident_id) return !0;
1911
+ let s = gt(e, r);
1912
+ if (s === null || s.indexOf(i.slice(t[n + 1], t[n + 2])) < 0) return !1;
1913
+ }
1914
+ return !1;
1915
+ }
1916
+ function vt(e, t) {
1917
+ let n = e.program_len + t;
1918
+ if (n <= e.program.length) return;
1919
+ let r = 2 * e.program.length;
1920
+ for (; r < n;) r *= 2;
1921
+ let i = new Int32Array(r);
1922
+ i.set(e.program), e.program = i;
1923
+ }
1924
+ function K(e, ...t) {
1925
+ vt(e, t.length);
1926
+ for (let n = 0; n < t.length; n++) e.program[e.program_len++] = t[n];
1927
+ }
1928
+ function yt(e, t) {
1929
+ if (t === null) return -1;
1930
+ if (2 * (e.value_offsets_len + 1) > e.value_offsets.length) {
1931
+ let t = new Int32Array(2 * e.value_offsets.length);
1932
+ t.set(e.value_offsets), e.value_offsets = t;
1933
+ }
1934
+ let n = 0;
1935
+ for (let e = 0; e < t.length; e++) n += 1 + t[e].length;
1936
+ if (e.value_pool_len + n > e.value_pool.length) {
1937
+ let t = 2 * e.value_pool.length;
1938
+ for (; t < e.value_pool_len + n;) t *= 2;
1939
+ let r = new Uint16Array(t);
1940
+ r.set(e.value_pool), e.value_pool = r;
1941
+ }
1942
+ let r = e.value_offsets_len;
1943
+ e.value_offsets[2 * r] = e.value_pool_len, e.value_offsets[2 * r + 1] = t.length, e.value_offsets_len++;
1944
+ for (let n = 0; n < t.length; n++) {
1945
+ let r = t[n];
1946
+ e.value_pool[e.value_pool_len++] = r.length;
1947
+ for (let t = 0; t < r.length; t++) e.value_pool[e.value_pool_len++] = r.charCodeAt(t);
1948
+ }
1949
+ return r;
1950
+ }
1951
+ function bt() {
1952
+ return {
1953
+ name_to_slot: /* @__PURE__ */ new Map(),
1954
+ max_slots: 0
1955
+ };
1956
+ }
1957
+ function xt(e, t) {
1958
+ let n = e.name_to_slot.get(t);
1959
+ return n === void 0 && (n = e.max_slots++, e.name_to_slot.set(t, n)), n;
1960
+ }
1961
+ function St(e, t, n, r) {
1962
+ switch (e.__kind) {
1963
+ case "type": {
1964
+ let r = t.get(e.type_name) ?? W;
1965
+ r === W && U("rewrite_types", `pattern-type:${e.type_name}`, `pattern references type "${e.type_name}" which is not in the token vocabulary; the branch can never match`);
1966
+ let i = null;
1967
+ e.value !== void 0 && (i = Array.isArray(e.value) ? e.value : [e.value]);
1968
+ let a = yt(n, i), o = -1;
1969
+ if (e.text_pred !== void 0) {
1970
+ let t = Ft(e.text_pred);
1971
+ t < 0 ? (r = W, U("rewrite_types", `pattern-pred:${e.text_pred}`, `unknown text predicate "${e.text_pred}"; the branch can never match`)) : o = t;
1972
+ }
1973
+ K(n, 0, r, a, o);
1974
+ return;
1975
+ }
1976
+ case "seq":
1977
+ for (let i = 0; i < e.children.length; i++) St(e.children[i], t, n, r);
1978
+ return;
1979
+ case "anyOf": {
1980
+ let i = [], a = e.branches;
1981
+ for (let e = 0; e < a.length; e++) {
1982
+ let o = e === a.length - 1, s = -1;
1983
+ o || (K(n, 1, 0), s = n.program_len - 1), St(a[e], t, n, r), o || (K(n, 3), K(n, 2, 0), i.push(n.program_len - 1), n.program[s] = n.program_len);
1984
+ }
1985
+ let o = n.program_len;
1986
+ for (let e = 0; e < i.length; e++) n.program[i[e]] = o;
1987
+ return;
1988
+ }
1989
+ case "optional": {
1990
+ K(n, 1, 0);
1991
+ let i = n.program_len - 1;
1992
+ St(e.inner, t, n, r), K(n, 3), n.program[i] = n.program_len;
1993
+ return;
1994
+ }
1995
+ case "capture": {
1996
+ let i = xt(r, e.name);
1997
+ K(n, 4, i), St(e.inner, t, n, r), K(n, 5, i);
1998
+ return;
1999
+ }
2000
+ case "balanced": {
2001
+ let r = e.punct_type ?? "punctuation", i = t.get(r) ?? W;
2002
+ i === W && U("rewrite_types", `balanced-punct:${r}`, `balanced pattern's bracket type "${r}" is not in the token vocabulary; the branch can never match`), K(n, 6, i, e.open.charCodeAt(0), e.close.charCodeAt(0), e.max_tokens ?? 200);
2003
+ return;
2004
+ }
2005
+ case "repeat": {
2006
+ if (e.separator !== void 0) {
2007
+ K(n, 1, 0);
2008
+ let i = n.program_len - 1;
2009
+ St(e.inner, t, n, r), K(n, 3);
2010
+ let a = n.program_len;
2011
+ K(n, 1, 0);
2012
+ let o = n.program_len - 1;
2013
+ St(e.separator, t, n, r), St(e.inner, t, n, r), K(n, 8, a);
2014
+ let s = n.program_len;
2015
+ n.program[i] = s, n.program[o] = s;
2016
+ return;
2017
+ }
2018
+ let i = n.program_len;
2019
+ K(n, 1, 0);
2020
+ let a = n.program_len - 1;
2021
+ St(e.inner, t, n, r), K(n, 8, i), n.program[a] = n.program_len;
2022
+ return;
2023
+ }
2024
+ case "not": {
2025
+ let r = e.inner, i = t.get(r.type_name) ?? W, a = -1;
2026
+ if (r.text_pred !== void 0) {
2027
+ let e = Ft(r.text_pred);
2028
+ e < 0 ? i = W : a = e;
2029
+ }
2030
+ if (i === W) return U("rewrite_types", `not-inner:${r.type_name}:${r.text_pred ?? ""}`, `not() inner spec (type "${r.type_name}") cannot resolve; the branch can never match`), void K(n, 0, W, -1, -1);
2031
+ let o = null;
2032
+ r.value !== void 0 && (o = Array.isArray(r.value) ? r.value : [r.value]);
2033
+ let s = yt(n, o);
2034
+ K(n, 9, i, s, a);
2035
+ return;
2036
+ }
2037
+ case "params": {
2038
+ let i = t.get("identifier") ?? W, a = t.get("punctuation") ?? W;
2039
+ if (i === W || a === W) return U("rewrite_types", "params-base-types", "params() needs \"identifier\" and \"punctuation\" in the token vocabulary; the branch can never match"), void K(n, 0, W, -1, -1);
2040
+ if (e.find_open === "arrow" && n.program_len !== n.rule_start_pc) return U("rewrite_types", "params-arrow-position", "params({find_open: \"arrow\"}) must be the first element of when; the branch can never match"), void K(n, 0, W, -1, -1);
2041
+ let o = xt(r, e.into), s = n.params_specs.length;
2042
+ n.params_specs.push({
2043
+ find_open: e.find_open === "starts_with" ? 0 : e.find_open === "scan" ? 1 : 2,
2044
+ strategy: +(e.strategy === "carry_pending"),
2045
+ separator_code: e.separator.charCodeAt(0),
2046
+ default_introducer: e.default_introducer ?? null,
2047
+ transparent_by_type: ht(e, t),
2048
+ skip_generics: e.skip_generics,
2049
+ skip_ts_return_type: e.skip_ts_return_type,
2050
+ skip_in_type_position: e.skip_in_type_position,
2051
+ scan_max_tokens: e.scan_max_tokens,
2052
+ ident_id: i,
2053
+ function_id: t.get("function") ?? -1,
2054
+ punct_id: a,
2055
+ operator_id: t.get("operator") ?? -1
2056
+ }), K(n, 10, s, o);
2057
+ return;
2058
+ }
2059
+ case "type_span": {
2060
+ let i = t.get("identifier") ?? W, a = t.get("punctuation") ?? W;
2061
+ if (i === W || a === W) return U("rewrite_types", "type-span-base-types", "type_span() needs \"identifier\" and \"punctuation\" in the token vocabulary; the branch can never match"), void K(n, 0, W, -1, -1);
2062
+ let o = xt(r, e.into), s = n.span_specs.length, c = (e) => e !== void 0 && e.length > 0 ? yt(n, e) : -1;
2063
+ n.span_specs.push({
2064
+ exit_on_comma: e.exit_on_comma,
2065
+ exit_on_eq: e.exit_on_eq,
2066
+ exit_on_qmark: e.exit_on_qmark,
2067
+ enter_angle: e.enter_angle,
2068
+ brace_exit_on_closer: e.brace_exit_on_closer,
2069
+ verify_generic_args: e.verify_generic_args,
2070
+ value_ops_id: c(e.value_op_terminators),
2071
+ stmt_keywords_id: c(e.stmt_keyword_terminators),
2072
+ terminal_keywords_id: c(e.type_terminal_keywords),
2073
+ ident_id: i,
2074
+ punct_id: a,
2075
+ keyword_id: t.get("keyword") ?? -1,
2076
+ operator_id: t.get("operator") ?? -1,
2077
+ type_id: t.get("type") ?? -1
2078
+ }), K(n, 11, s, o);
2079
+ return;
2080
+ }
2081
+ }
2082
+ }
2083
+ function Ct(e, t, n) {
2084
+ switch (e.__kind) {
2085
+ case "type": {
2086
+ let r = t.get(e.type_name) ?? W;
2087
+ r === W && U("rewrite_types", `pattern-type:${e.type_name}`, `pattern references type "${e.type_name}" which is not in the token vocabulary; the branch can never match`);
2088
+ let i = null;
2089
+ e.value !== void 0 && (i = Array.isArray(e.value) ? e.value : [e.value]);
2090
+ let a = yt(n, i), o = -1;
2091
+ if (e.text_pred !== void 0) {
2092
+ let t = Ft(e.text_pred);
2093
+ t < 0 ? (r = W, U("rewrite_types", `pattern-pred:${e.text_pred}`, `unknown text predicate "${e.text_pred}"; the branch can never match`)) : o = t;
2094
+ }
2095
+ K(n, 0, r, a, o);
2096
+ return;
2097
+ }
2098
+ case "seq":
2099
+ for (let r = e.children.length - 1; r >= 0; r--) Ct(e.children[r], t, n);
2100
+ return;
2101
+ case "anyOf": {
2102
+ let r = [], i = e.branches;
2103
+ for (let e = 0; e < i.length; e++) {
2104
+ let a = e === i.length - 1, o = -1;
2105
+ a || (K(n, 1, 0), o = n.program_len - 1), Ct(i[e], t, n), a || (K(n, 3), K(n, 2, 0), r.push(n.program_len - 1), n.program[o] = n.program_len);
2106
+ }
2107
+ let a = n.program_len;
2108
+ for (let e = 0; e < r.length; e++) n.program[r[e]] = a;
2109
+ return;
2110
+ }
2111
+ case "optional": {
2112
+ K(n, 1, 0);
2113
+ let r = n.program_len - 1;
2114
+ Ct(e.inner, t, n), K(n, 3), n.program[r] = n.program_len;
2115
+ return;
2116
+ }
2117
+ case "capture":
2118
+ case "balanced":
2119
+ case "repeat":
2120
+ case "not":
2121
+ case "params":
2122
+ case "type_span":
2123
+ U("rewrite_types", `before-unsupported:${e.__kind}`, `"${e.__kind}" is not supported in before lookbehind; the rule can never match`), K(n, 0, W, -1, -1);
2124
+ return;
2125
+ }
2126
+ }
2127
+ function wt(e, t, n, r) {
2128
+ let i = (e) => r !== void 0 && e >= 0 && e < r.length ? `${r[e]}(${e})` : `${e}`, a = [], o = t;
2129
+ for (; o < n;) {
2130
+ let t = e[o], n;
2131
+ switch (t) {
2132
+ case 0:
2133
+ n = `${o}: TYPE type=${i(e[o + 1])} values=${e[o + 2]} pred=${e[o + 3]}`, o += 4;
2134
+ break;
2135
+ case 1:
2136
+ n = `${o}: ALT -> ${e[o + 1]}`, o += 2;
2137
+ break;
2138
+ case 2:
2139
+ n = `${o}: JUMP -> ${e[o + 1]}`, o += 2;
2140
+ break;
2141
+ case 3:
2142
+ n = `${o}: COMMIT`, o += 1;
2143
+ break;
2144
+ case 4:
2145
+ n = `${o}: CAP_BEGIN slot=${e[o + 1]}`, o += 2;
2146
+ break;
2147
+ case 5:
2148
+ n = `${o}: CAP_END slot=${e[o + 1]}`, o += 2;
2149
+ break;
2150
+ case 6:
2151
+ n = `${o}: BALANCED punct=${i(e[o + 1])} open=${e[o + 2]} close=${e[o + 3]} max=${e[o + 4]}`, o += 5;
2152
+ break;
2153
+ case 7:
2154
+ n = `${o}: MATCH`, o += 1;
2155
+ break;
2156
+ case 8:
2157
+ n = `${o}: LOOP -> ${e[o + 1]}`, o += 2;
2158
+ break;
2159
+ case 9:
2160
+ n = `${o}: NOT_TYPE type=${i(e[o + 1])} values=${e[o + 2]} pred=${e[o + 3]}`, o += 4;
2161
+ break;
2162
+ case 10:
2163
+ n = `${o}: PARAMS spec=${e[o + 1]} slot=${e[o + 2]}`, o += 3;
2164
+ break;
2165
+ case 11:
2166
+ n = `${o}: TYPE_SPAN spec=${e[o + 1]} slot=${e[o + 2]}`, o += 3;
2167
+ break;
2168
+ default: n = `${o}: <unknown op ${t}>`, o += 1;
2169
+ }
2170
+ if (a.push(n), t === 7) break;
2171
+ }
2172
+ return a.join("\n");
2173
+ }
2174
+ var Tt = /* @__PURE__ */ new Int32Array(384);
2175
+ var Et = /* @__PURE__ */ new Uint32Array(8);
2176
+ var q = /* @__PURE__ */ new Int32Array(192);
2177
+ var Dt = 0;
2178
+ function Ot(e) {
2179
+ if (e > Et.length) {
2180
+ let t = 2 * Et.length;
2181
+ for (; t < e;) t *= 2;
2182
+ let n = new Uint32Array(t);
2183
+ n.set(Et), Et = n;
2184
+ }
2185
+ }
2186
+ function kt(e, t, n) {
2187
+ if (Dt + 3 > q.length) {
2188
+ let e = new Int32Array(2 * q.length);
2189
+ e.set(q), q = e;
2190
+ }
2191
+ q[Dt] = e, q[Dt + 1] = t, q[Dt + 2] = n, Dt += 3;
2192
+ }
2193
+ var At = 0;
2194
+ var jt = 1;
2195
+ function Mt(e, t, n) {
2196
+ if (n - t < 2) return !1;
2197
+ let r = e.charCodeAt(t);
2198
+ if (r < 65 || r > 90) return !1;
2199
+ for (let r = t + 1; r < n; r++) {
2200
+ let t = e.charCodeAt(r);
2201
+ if (!(t >= 65 && t <= 90 || t >= 48 && t <= 57 || t === 95)) return !1;
2202
+ }
2203
+ return !0;
2204
+ }
2205
+ function Nt(e, t, n) {
2206
+ let r = e.charCodeAt(t);
2207
+ if (r < 65 || r > 90) return !1;
2208
+ if (n - t <= 1) return !0;
2209
+ for (let r = t + 1; r < n; r++) {
2210
+ let t = e.charCodeAt(r);
2211
+ if (t >= 97 && t <= 122) return !0;
2212
+ }
2213
+ return !1;
2214
+ }
2215
+ function Pt(e, t, n, r) {
2216
+ switch (e) {
2217
+ case At: return Mt(t, n, r);
2218
+ case jt: return Nt(t, n, r);
2219
+ default: return !1;
2220
+ }
2221
+ }
2222
+ function Ft(e) {
2223
+ switch (e) {
2224
+ case "upper_snake_case": return At;
2225
+ case "pascal_case": return jt;
2226
+ default: return -1;
2227
+ }
2228
+ }
2229
+ function It(e, t, n, r, i, a) {
2230
+ let o = a - i, s = 2 * n, c = t[s + 1], l = t[s];
2231
+ for (let t = 0; t < c; t++) {
2232
+ let t = e[l++];
2233
+ if (t <= o) {
2234
+ let n = !0, i = a - t;
2235
+ for (let a = 0; a < t; a++) if (e[l + a] !== r.charCodeAt(i + a)) {
2236
+ n = !1;
2237
+ break;
2238
+ }
2239
+ if (n) return !0;
2240
+ }
2241
+ l += t;
2242
+ }
2243
+ return !1;
2244
+ }
2245
+ function Lt(e, t, n, r, i, a) {
2246
+ let o = a - i, s = 2 * n, c = t[s + 1], l = t[s];
2247
+ for (let t = 0; t < c; t++) {
2248
+ let t = e[l++];
2249
+ if (t === o) {
2250
+ let n = !0;
2251
+ for (let a = 0; a < t; a++) if (e[l + a] !== r.charCodeAt(i + a)) {
2252
+ n = !1;
2253
+ break;
2254
+ }
2255
+ if (n) return !0;
2256
+ }
2257
+ l += t;
2258
+ }
2259
+ return !1;
2260
+ }
2261
+ function Rt(e, t, n, r, i, a, o, s) {
2262
+ if (t >= n) return G;
2263
+ let c = 3 * t;
2264
+ if (e[c] !== i) return G;
2265
+ let l = 0, u = e[c + 1], d = e[c + 2];
2266
+ if (r.charCodeAt(u) !== a) return G;
2267
+ for (let e = u; e < d; e++) {
2268
+ let n = r.charCodeAt(e);
2269
+ if (n === a) l++;
2270
+ else if (n === o && (l--, l === 0)) return t + 1;
2271
+ }
2272
+ let f = Math.min(n, t + 1 + s);
2273
+ for (let n = t + 1; n < f; n++) {
2274
+ let t = 3 * n;
2275
+ if (e[t] === i) {
2276
+ let i = e[t + 2];
2277
+ for (let s = e[t + 1]; s < i; s++) {
2278
+ let e = r.charCodeAt(s);
2279
+ if (e === a) l++;
2280
+ else if (e === o && (l--, l === 0)) return n + 1;
2281
+ }
2282
+ }
2283
+ }
2284
+ return G;
2285
+ }
2286
+ var J = 40;
2287
+ var Y = 41;
2288
+ var X = 91;
2289
+ var Z = 93;
2290
+ var Q = 123;
2291
+ var $ = 125;
2292
+ var zt = 58;
2293
+ var Bt = 60;
2294
+ var Vt = 62;
2295
+ var Ht = 61;
2296
+ var Ut = 0;
2297
+ var Wt = 0;
2298
+ var Gt = 0;
2299
+ var Kt = 0;
2300
+ function qt(e, t, n, r) {
2301
+ for (let i = t; i < n; i++) if (!r[e[3 * i]]) return i;
2302
+ return -1;
2303
+ }
2304
+ function Jt(e, t, n) {
2305
+ for (let r = t; r >= 0; r--) if (!n[e[3 * r]]) return r;
2306
+ return -1;
2307
+ }
2308
+ function Yt(e, t, n, r, i, a) {
2309
+ for (; n < r && a[t[3 * n]];) n++;
2310
+ if (n >= r) return !1;
2311
+ let o = 3 * n;
2312
+ return t[o] === e.punct_id && i.charCodeAt(t[o + 1]) === J && (Ut = n, Wt = 0, !0);
2313
+ }
2314
+ function Xt(e, t, n, r, i, a) {
2315
+ for (; n < r && a[t[3 * n]];) n++;
2316
+ if (n >= r || t[3 * n] !== e.punct_id) return !1;
2317
+ let o = 0, s = 0, c = Math.min(r, n + e.scan_max_tokens);
2318
+ for (let r = n; r < c; r++) {
2319
+ let n = 3 * r;
2320
+ if (a[t[n]] || t[n] !== e.punct_id) continue;
2321
+ let c = t[n + 1], l = t[n + 2];
2322
+ for (let e = c; e < l; e++) {
2323
+ let t = i.charCodeAt(e);
2324
+ if (t === X) o++;
2325
+ else if (t === Z) {
2326
+ if (o === 0) return !1;
2327
+ o--;
2328
+ } else if (t === Q) s++;
2329
+ else if (t === $) {
2330
+ if (s === 0) return !1;
2331
+ s--;
2332
+ } else if (t === J) {
2333
+ if (o === 0 && s === 0) return Ut = r, Wt = e - c, !0;
2334
+ } else if (t === Y && o === 0 && s === 0) return !1;
2335
+ }
2336
+ }
2337
+ return !1;
2338
+ }
2339
+ function Zt(e, t, n, r, i, a) {
2340
+ let o = 1, s = t[3 * n + 1], c = t[3 * n + 2];
2341
+ for (let e = s + r + 1; e < c; e++) {
2342
+ let t = a.charCodeAt(e);
2343
+ if (t === J || t === X || t === Q) o++;
2344
+ else if ((t === Y || t === Z || t === $) && (o--, o === 0)) return Gt = n, Kt = e - s, !0;
2345
+ }
2346
+ for (let r = n + 1; r < i; r++) {
2347
+ let n = 3 * r;
2348
+ if (t[n] !== e.punct_id) continue;
2349
+ let i = t[n + 1], s = t[n + 2];
2350
+ for (let e = i; e < s; e++) {
2351
+ let t = a.charCodeAt(e);
2352
+ if (t === J || t === X || t === Q) o++;
2353
+ else if ((t === Y || t === Z || t === $) && (o--, o === 0)) return Gt = r, Kt = e - i, !0;
2354
+ }
2355
+ }
2356
+ return !1;
2357
+ }
2358
+ function Qt(e, t, n, r, i, a, o) {
2359
+ if (!Zt(e, t, n, r, i, a) || Kt + 1 < t[3 * Gt + 2] - t[3 * Gt + 1]) return !1;
2360
+ let s = qt(t, Gt + 1, i, o);
2361
+ if (s < 0) return !1;
2362
+ let c = 3 * s;
2363
+ if (e.skip_ts_return_type && t[c] === e.punct_id) {
2364
+ let n = t[c + 1];
2365
+ if (t[c + 2] - n === 1 && a.charCodeAt(n) === zt) {
2366
+ let n = 0, r = s + 1;
2367
+ for (; r < i;) {
2368
+ let i = 3 * r, s = t[i];
2369
+ if (o[s]) r++;
2370
+ else {
2371
+ if (s === e.punct_id) {
2372
+ let e = t[i + 2];
2373
+ for (let r = t[i + 1]; r < e; r++) {
2374
+ let e = a.charCodeAt(r);
2375
+ if (e === J || e === X || e === Q) n++;
2376
+ else if (e === Y || e === Z || e === $) {
2377
+ if (n === 0) return !1;
2378
+ n--;
2379
+ } else if ((e === 44 || e === 59) && n === 0) return !1;
2380
+ }
2381
+ } else if (s === e.operator_id && n === 0) {
2382
+ let e = t[i + 1];
2383
+ if (t[i + 2] - e === 2 && a.charCodeAt(e) === Ht && a.charCodeAt(e + 1) === Vt) return !0;
2384
+ }
2385
+ r++;
2386
+ }
2387
+ }
2388
+ return !1;
2389
+ }
2390
+ }
2391
+ if (t[c] !== e.operator_id) return !1;
2392
+ let l = t[c + 1];
2393
+ return t[c + 2] - l === 2 && a.charCodeAt(l) === Ht && a.charCodeAt(l + 1) === Vt;
2394
+ }
2395
+ function $t(e, t, n, r, i) {
2396
+ if (e.operator_id < 0) return !1;
2397
+ let a = Jt(t, n - 1, i);
2398
+ if (a < 0) return !1;
2399
+ let o = 3 * a;
2400
+ if (t[o] !== e.operator_id) return !1;
2401
+ let s = t[o + 1];
2402
+ return t[o + 2] - s === 1 && r.charCodeAt(s) === sn;
2403
+ }
2404
+ function en(e, t, n, r, i, a, o) {
2405
+ if (n < 0) return !1;
2406
+ let s = 3 * n;
2407
+ if (t[s] !== e.punct_id) return !1;
2408
+ let c = t[s + 1], l = t[s + 2], u = -2;
2409
+ for (let s = 0; s < l - c; s++) if (i.charCodeAt(c + s) === J) {
2410
+ if (e.skip_in_type_position && s === 0 && o !== void 0) {
2411
+ let r = Jt(t, n - 1, a);
2412
+ if (r >= 0 && t[3 * r] === e.punct_id) {
2413
+ let s = t[3 * r + 2];
2414
+ if (s > t[3 * r + 1] && i.charCodeAt(s - 1) === zt) {
2415
+ u === -2 && (u = o.kind_names.indexOf("object"));
2416
+ let s = o.frames[n > 0 ? o.active_frame[n - 1] : 0], c = s.bracket === 1 && s.kind === u, l = r < o.signals.length && !!(1 & o.signals[r]);
2417
+ if (l && $t(e, t, r, i, a) && (l = !1), !c && !l) continue;
2418
+ }
2419
+ }
2420
+ }
2421
+ if (Qt(e, t, n, s, r, i, a)) return Ut = n, Wt = s, !0;
2422
+ }
2423
+ return !1;
2424
+ }
2425
+ function tn(e, t, n, r, i, a) {
2426
+ for (; n < r && a[t[3 * n]];) n++;
2427
+ if (n >= r) return n;
2428
+ let o = 3 * n;
2429
+ if (t[o] !== e.operator_id) return n;
2430
+ let s = t[o + 1];
2431
+ if (t[o + 2] - s !== 1 || i.charCodeAt(s) !== Bt) return n;
2432
+ let c = 1, l = n + 1;
2433
+ for (; l < r && c > 0;) {
2434
+ let n = 3 * l;
2435
+ if (a[t[n]]) l++;
2436
+ else {
2437
+ if (t[n] === e.operator_id) {
2438
+ let e = t[n + 1], r = t[n + 2] - e;
2439
+ if (r === 1 && i.charCodeAt(e) === Bt) c++;
2440
+ else if (r >= 1 && r <= 3 && i.charCodeAt(e) === Vt) {
2441
+ let t = 1;
2442
+ r >= 2 && i.charCodeAt(e + 1) === Vt && (t = 2), r === 3 && i.charCodeAt(e + 2) === Vt && (t = 3), t === r && (c = Math.max(0, c - t));
2443
+ }
2444
+ }
2445
+ l++;
2446
+ }
2447
+ }
2448
+ return l;
2449
+ }
2450
+ function nn(e, t, n, r, i, a, o, s) {
2451
+ let c = 1, l = !0, u = !1, d = e.separator_code, f = n[3 * r + 2];
2452
+ for (let e = n[3 * r + 1] + i + 1; e < f; e++) {
2453
+ let t = o.charCodeAt(e);
2454
+ if (t === J || t === X || t === Q) c++;
2455
+ else if (t === Y || t === Z || t === $) {
2456
+ if (c--, c === 0) return r + 1;
2457
+ } else t === d && c === 1 && (l = !0, u = !1);
2458
+ }
2459
+ let p = r + 1;
2460
+ for (; p < a && c > 0;) {
2461
+ let r = 3 * p, i = n[r];
2462
+ if (s[i]) p++;
2463
+ else {
2464
+ if (i === e.punct_id) {
2465
+ let e = n[r + 2];
2466
+ for (let t = n[r + 1]; t < e; t++) {
2467
+ let e = o.charCodeAt(t);
2468
+ if (e === J || e === X || e === Q) c++;
2469
+ else if (e === Y || e === Z || e === $) {
2470
+ if (c--, c === 0) break;
2471
+ } else e === d && c === 1 && (l = !0, u = !1);
2472
+ }
2473
+ p++;
2474
+ continue;
2475
+ }
2476
+ if (c === 1 && l && !u) {
2477
+ if (i === e.ident_id) {
2478
+ kt(t, p, p + 1), l = !1, p++;
2479
+ continue;
2480
+ }
2481
+ let c = gt(e, i), d = i === e.operator_id && e.default_introducer !== null;
2482
+ if (c !== null || d) {
2483
+ let t = o.slice(n[r + 1], n[r + 2]);
2484
+ if (d && t === e.default_introducer) {
2485
+ l = !1, u = !0, p++;
2486
+ continue;
2487
+ }
2488
+ if (c !== null && c.indexOf(t) >= 0 && _t(e, n, p + 1, a, o, s)) {
2489
+ p++;
2490
+ continue;
2491
+ }
2492
+ }
2493
+ l = !1;
2494
+ }
2495
+ p++;
2496
+ }
2497
+ }
2498
+ return p;
2499
+ }
2500
+ function rn(e, t, n, r) {
2501
+ if (n.length < 2) return !1;
2502
+ let i = n[1];
2503
+ if (t[3 * i] === e.punct_id) {
2504
+ let a = r.charCodeAt(t[3 * i + 1]);
2505
+ if (a === 46) return !1;
2506
+ if (a === X) return an(e, t, n, 1, r);
2507
+ }
2508
+ return !0;
2509
+ }
2510
+ function an(e, t, n, r, i) {
2511
+ let a = 0, o = !1;
2512
+ for (let s = r; s < n.length; s++) {
2513
+ let r = n[s];
2514
+ if (t[3 * r] !== e.punct_id) continue;
2515
+ let c = i.slice(t[3 * r + 1], t[3 * r + 2]);
2516
+ for (let e = 0; e < c.length; e++) {
2517
+ let t = c[e];
2518
+ if (t === "[") a++, o = !0;
2519
+ else if (t === "]" && a > 0 && (a--, o && a === 0)) {
2520
+ for (let t = e + 1; t < c.length; t++) {
2521
+ let e = c[t];
2522
+ if (e !== ")" && e !== ",") return !0;
2523
+ }
2524
+ return s < n.length - 1;
2525
+ }
2526
+ }
2527
+ }
2528
+ return !0;
2529
+ }
2530
+ function on(e, t, n, r, i, a, o, s) {
2531
+ let c = 1, l = 0, u = 0, d = [], f = [], p = r, m = i + 1, h = e.separator_code;
2532
+ for (; p < a && c > 0;) {
2533
+ let t = 3 * p;
2534
+ if (s[n[t]]) {
2535
+ p++, m = 0;
2536
+ continue;
2537
+ }
2538
+ if (n[t] !== e.punct_id) {
2539
+ f.push(p), p++, m = 0;
2540
+ continue;
2541
+ }
2542
+ let r = n[t + 2], i = !1;
2543
+ for (let e = n[t + 1] + m; e < r; e++) {
2544
+ let t = o.charCodeAt(e);
2545
+ if (t !== h || c !== 1 || l !== 0 || u !== 0) if (t === J) c++, i = !0;
2546
+ else if (t === Y) {
2547
+ if (c--, c === 0) break;
2548
+ i = !0;
2549
+ } else t === X ? (l++, i = !0) : t === Z ? (l = Math.max(0, l - 1), i = !0) : t === Q ? (u++, i = !0) : (t === $ && (u = Math.max(0, u - 1)), i = !0);
2550
+ else i && f.push(p), d.push(f), f = [], i = !1;
2551
+ }
2552
+ i && f.push(p), p++, m = 0;
2553
+ }
2554
+ f.length > 0 && d.push(f);
2555
+ let g = [];
2556
+ for (let r of d) {
2557
+ if (r.length === 0) continue;
2558
+ let i = r[0], a = n[3 * i];
2559
+ if (a === e.ident_id || e.function_id >= 0 && a === e.function_id) if (rn(e, n, r, o)) {
2560
+ for (let e of g) kt(t, e, e + 1);
2561
+ kt(t, i, i + 1), g = [];
2562
+ } else r.length === 1 ? g.push(i) : g = [];
2563
+ else g = [];
2564
+ }
2565
+ return p;
2566
+ }
2567
+ var sn = 63;
2568
+ function cn(e, t, n, r) {
2569
+ if (n - t !== r.length) return !1;
2570
+ for (let n = 0; n < r.length; n++) if (e.charCodeAt(t + n) !== r.charCodeAt(n)) return !1;
2571
+ return !0;
2572
+ }
2573
+ function ln(e, t, n) {
2574
+ let r = n - t;
2575
+ if (r < 1 || r > 3) return 0;
2576
+ for (let r = t; r < n; r++) if (e.charCodeAt(r) !== Vt) return 0;
2577
+ return r;
2578
+ }
2579
+ function un(e, t, n, r, i, a) {
2580
+ if (e.operator_id < 0) return !1;
2581
+ let o = 1, s = n + 1;
2582
+ for (; s < r;) {
2583
+ let n = 3 * s, c = t[n];
2584
+ if (a[c]) {
2585
+ s++;
2586
+ continue;
2587
+ }
2588
+ let l = t[n + 1], u = t[n + 2];
2589
+ if (c === e.operator_id) if (u - l === 1 && i.charCodeAt(l) === Bt) o++;
2590
+ else {
2591
+ let n = ln(i, l, u);
2592
+ if (n > 0 && (o -= n, o <= 0)) {
2593
+ let n = qt(t, s + 1, r, a);
2594
+ return n >= 0 && t[3 * n] === e.punct_id && i.charCodeAt(t[3 * n + 1]) === J;
2595
+ }
2596
+ }
2597
+ else if (c === e.punct_id) for (let e = l; e < u; e++) {
2598
+ let t = i.charCodeAt(e);
2599
+ if (t === 59 || t === $) return !1;
2600
+ }
2601
+ s++;
2602
+ }
2603
+ return !1;
2604
+ }
2605
+ function dn(e, t, n, r, i, a) {
2606
+ let o = 1, s = 0, c = n, l = -1;
2607
+ for (; c < r;) {
2608
+ let n = 3 * c, r = t[n];
2609
+ if (a[r]) {
2610
+ c++;
2611
+ continue;
2612
+ }
2613
+ let u = t[n + 1], d = t[n + 2];
2614
+ if (e.operator_id >= 0 && r === e.operator_id) {
2615
+ if (d - u === 1 && i.charCodeAt(u) === Bt) o++;
2616
+ else if (s === 0) {
2617
+ let e = ln(i, u, d);
2618
+ if (e > 0 && (o -= e, o <= 0)) {
2619
+ l = c;
2620
+ break;
2621
+ }
2622
+ }
2623
+ } else if (r === e.punct_id) for (let e = u; e < d; e++) {
2624
+ let t = i.charCodeAt(e);
2625
+ if (t === Q) s++;
2626
+ else if (t === $) {
2627
+ if (s === 0) return !1;
2628
+ s--;
2629
+ } else if (t === 59 && s === 0) return !1;
2630
+ }
2631
+ c++;
2632
+ }
2633
+ if (l < 0) return !1;
2634
+ let u = qt(t, l + 1, r, a);
2635
+ if (u < 0) return !0;
2636
+ let d = 3 * u, f = t[d], p = t[d + 1], m = t[d + 2];
2637
+ if (f === e.punct_id) {
2638
+ let e = i.charCodeAt(p);
2639
+ return e === J || e === Y || e === Q || e === $ || e === X || e === Z || e === 44 || e === 59 || e === 46 || e === zt;
2640
+ }
2641
+ if (e.operator_id >= 0 && f === e.operator_id) {
2642
+ let e = m - p, t = i.charCodeAt(p);
2643
+ if (e === 1) return t === Ht || t === 124 || t === 38 || t === Vt || t === sn || t === 33;
2644
+ if (e === 2) {
2645
+ let e = i.charCodeAt(p + 1);
2646
+ return t === Ht && e === Vt || t === sn && e === zt;
2647
+ }
2648
+ return !1;
2649
+ }
2650
+ return e.keyword_id >= 0 && f === e.keyword_id && (cn(i, p, m, "extends") || cn(i, p, m, "implements"));
2651
+ }
2652
+ function fn(e, t, n, r, i, a, o) {
2653
+ let s = Jt(t, n - 1, i);
2654
+ if (s < 0) return !1;
2655
+ let c = 3 * s, l = t[c], u = t[c + 1], d = t[c + 2];
2656
+ if (l === e.punct_id) {
2657
+ let e = r.charCodeAt(d - 1);
2658
+ return e === Z || e === Y;
2659
+ }
2660
+ return l === e.ident_id || e.type_id >= 0 && l === e.type_id || l === e.operator_id && d - u === 1 && r.charCodeAt(u) === Vt || l === e.keyword_id && e.terminal_keywords_id >= 0 && Lt(a, o, e.terminal_keywords_id, r, u, d);
2661
+ }
2662
+ function pn(e, t, n, r, i) {
2663
+ let a = Jt(t, n - 1, i);
2664
+ if (a < 0) return !1;
2665
+ let o = 3 * a, s = t[o], c = t[o + 1], l = t[o + 2];
2666
+ if (s === e.punct_id) {
2667
+ let e = r.charCodeAt(l - 1);
2668
+ return e === X || e === 44 || l - c >= 3 && e === 46 && r.charCodeAt(l - 2) === 46 && r.charCodeAt(l - 3) === 46;
2669
+ }
2670
+ return e.operator_id >= 0 && s === e.operator_id && cn(r, c, l, "...");
2671
+ }
2672
+ function mn(e, t, n, r, i, a, o, s, c) {
2673
+ if (e.verify_generic_args && !dn(e, n, r, i, a, o)) return G;
2674
+ let l = 0, u = 0, d = 0, f = 0, p = r;
2675
+ for (; p < i;) {
2676
+ let r = 3 * p, m = n[r];
2677
+ if (o[m]) {
2678
+ p++;
2679
+ continue;
2680
+ }
2681
+ let h = n[r + 1], g = n[r + 2];
2682
+ if (m !== e.punct_id) {
2683
+ if (e.operator_id >= 0 && m === e.operator_id) {
2684
+ let t = g - h;
2685
+ if (t === 1 && a.charCodeAt(h) === Bt) {
2686
+ f++, p++;
2687
+ continue;
2688
+ }
2689
+ let r = ln(a, h, g);
2690
+ if (r > 0) {
2691
+ if (f >= r) {
2692
+ f -= r, p++;
2693
+ continue;
2694
+ }
2695
+ if (f = 0, e.enter_angle) return p;
2696
+ }
2697
+ if (l === 0 && u === 0 && d === 0 && f === 0) {
2698
+ if (t === 1 && a.charCodeAt(h) === Ht) {
2699
+ if (e.exit_on_eq) return p;
2700
+ p++;
2701
+ continue;
2702
+ }
2703
+ if (t === 2 && a.charCodeAt(h) === Ht && a.charCodeAt(h + 1) === Vt) {
2704
+ let e = Jt(n, p - 1, o);
2705
+ if (e >= 0 && a.charCodeAt(n[3 * e + 2] - 1) === Y) {
2706
+ p++;
2707
+ continue;
2708
+ }
2709
+ return p;
2710
+ }
2711
+ if (t === 1 && a.charCodeAt(h) === sn) {
2712
+ if (e.exit_on_qmark) return p;
2713
+ p++;
2714
+ continue;
2715
+ }
2716
+ if (e.value_ops_id >= 0 && Lt(s, c, e.value_ops_id, a, h, g)) return p;
2717
+ }
2718
+ p++;
2719
+ continue;
2720
+ }
2721
+ if (e.keyword_id >= 0 && m === e.keyword_id) {
2722
+ if (l === 0 && u === 0 && d === 0 && f === 0 && e.stmt_keywords_id >= 0 && Lt(s, c, e.stmt_keywords_id, a, h, g)) return p;
2723
+ p++;
2724
+ } else {
2725
+ if (m === e.ident_id) {
2726
+ let r = !1, s = l > 0 || u > 0;
2727
+ if (s || d > 0 && pn(e, n, p, a, o)) {
2728
+ let t = qt(n, p + 1, i, o);
2729
+ if (t >= 0) {
2730
+ let c = 3 * t, l = n[c + 1], u = n[c + 2] - l, d = n[c];
2731
+ if (d === e.punct_id) {
2732
+ let e = a.charCodeAt(l);
2733
+ (u === 1 && e === zt || s && e === J) && (r = !0);
2734
+ } else if (e.operator_id >= 0 && d === e.operator_id) {
2735
+ let c = a.charCodeAt(l);
2736
+ if (u === 2 && c === sn && a.charCodeAt(l + 1) === zt) r = !0;
2737
+ else if (u === 1 && c === sn) {
2738
+ let s = qt(n, t + 1, i, o);
2739
+ s >= 0 && n[3 * s] === e.punct_id && a.charCodeAt(n[3 * s + 1]) === zt && (r = !0);
2740
+ } else s && u === 1 && c === Bt && (r = un(e, n, t, i, a, o));
2741
+ }
2742
+ }
2743
+ }
2744
+ r || kt(t, p, p + 1), p++;
2745
+ continue;
2746
+ }
2747
+ p++;
2748
+ }
2749
+ } else {
2750
+ for (let t = h; t < g; t++) {
2751
+ let r = a.charCodeAt(t);
2752
+ if (r === J) l++;
2753
+ else if (r === Y) {
2754
+ if (l--, l < 0) return p;
2755
+ } else if (r === Q) {
2756
+ if (e.brace_exit_on_closer && u === 0 && l === 0 && fn(e, n, p, a, o, s, c)) return p;
2757
+ u++;
2758
+ } else if (r === $) {
2759
+ if (u--, u < 0) return p;
2760
+ } else if (r === X) d++;
2761
+ else if (r === Z) {
2762
+ if (d--, d < 0) return p;
2763
+ } else if (r === 59 && l === 0 && u === 0 && d === 0 && f === 0) return p;
2764
+ }
2765
+ if (e.exit_on_comma && l === 0 && u === 0 && d === 0 && f === 0) {
2766
+ for (let e = h; e < g; e++) if (a.charCodeAt(e) === 44) return p;
2767
+ }
2768
+ p++;
2769
+ }
2770
+ }
2771
+ return i;
2772
+ }
2773
+ function hn(e, t, n, r, i, a, o, s) {
2774
+ let c;
2775
+ if (e.find_open === 2) {
2776
+ if (e.skip_in_type_position && s === void 0) return U("rewrite_types", "params-frames-missing", "params() with skip_in_type_position ran without a frame_track stage upstream; the branch is disabled"), G;
2777
+ c = en(e, n, r - 1, i, a, o, s);
2778
+ } else e.skip_generics && (r = tn(e, n, r, i, a, o)), c = e.find_open === 1 ? Xt(e, n, r, i, a, o) : Yt(e, n, r, i, a, o);
2779
+ return c ? e.strategy === 1 ? on(e, t, n, Ut, Wt, i, a, o) : nn(e, t, n, Ut, Wt, i, a, o) : G;
2780
+ }
2781
+ function gn(e, t, n, r, i, a, o, s, c, l, u, d, f) {
2782
+ l > 0 && Ot(l), Dt = 0;
2783
+ let p = t, m = 0, h = Tt, g = !1;
2784
+ for (;;) {
2785
+ switch (e[p]) {
2786
+ case 0: {
2787
+ for (; r < i && o[n[3 * r]];) r++;
2788
+ if (r >= i) {
2789
+ g = !0;
2790
+ break;
2791
+ }
2792
+ let t = 3 * r;
2793
+ if (n[t] !== e[p + 1]) {
2794
+ g = !0;
2795
+ break;
2796
+ }
2797
+ let l = e[p + 2];
2798
+ if (l >= 0 && !Lt(s, c, l, a, n[t + 1], n[t + 2])) {
2799
+ g = !0;
2800
+ break;
2801
+ }
2802
+ let u = e[p + 3];
2803
+ if (u >= 0 && !Pt(u, a, n[t + 1], n[t + 2])) {
2804
+ g = !0;
2805
+ break;
2806
+ }
2807
+ r++, p += 4;
2808
+ break;
2809
+ }
2810
+ case 1:
2811
+ if (m + 3 > h.length) {
2812
+ let e = new Int32Array(2 * h.length);
2813
+ e.set(h), h = e, Tt = e;
2814
+ }
2815
+ h[m++] = e[p + 1], h[m++] = r, h[m++] = Dt, p += 2;
2816
+ break;
2817
+ case 2:
2818
+ p = e[p + 1];
2819
+ break;
2820
+ case 3:
2821
+ m -= 3, p += 1;
2822
+ break;
2823
+ case 4:
2824
+ for (; r < i && o[n[3 * r]];) r++;
2825
+ Et[e[p + 1]] = r, p += 2;
2826
+ break;
2827
+ case 5: {
2828
+ let t = e[p + 1];
2829
+ kt(t, Et[t], r), p += 2;
2830
+ break;
2831
+ }
2832
+ case 6: {
2833
+ for (; r < i && o[n[3 * r]];) r++;
2834
+ let t = Rt(n, r, i, a, e[p + 1], e[p + 2], e[p + 3], e[p + 4]);
2835
+ if (t === G) {
2836
+ g = !0;
2837
+ break;
2838
+ }
2839
+ r = t, p += 5;
2840
+ break;
2841
+ }
2842
+ case 8:
2843
+ m -= 3, p = r === h[m + 1] ? h[m] : e[p + 1];
2844
+ break;
2845
+ case 9: {
2846
+ for (; r < i && o[n[3 * r]];) r++;
2847
+ if (r >= i) {
2848
+ p += 4;
2849
+ break;
2850
+ }
2851
+ let t = 3 * r, l = n[t] === e[p + 1];
2852
+ if (l) {
2853
+ let r = e[p + 2];
2854
+ r >= 0 && (l = Lt(s, c, r, a, n[t + 1], n[t + 2]));
2855
+ }
2856
+ if (l) {
2857
+ let r = e[p + 3];
2858
+ r >= 0 && (l = Pt(r, a, n[t + 1], n[t + 2]));
2859
+ }
2860
+ if (l) {
2861
+ g = !0;
2862
+ break;
2863
+ }
2864
+ p += 4;
2865
+ break;
2866
+ }
2867
+ case 10: {
2868
+ let t = hn(u[e[p + 1]], e[p + 2], n, r, i, a, o, f);
2869
+ if (t === G) {
2870
+ g = !0;
2871
+ break;
2872
+ }
2873
+ r = t, p += 3;
2874
+ break;
2875
+ }
2876
+ case 11: {
2877
+ let t = mn(d[e[p + 1]], e[p + 2], n, r, i, a, o, s, c);
2878
+ if (t === G) {
2879
+ g = !0;
2880
+ break;
2881
+ }
2882
+ r = t, p += 3;
2883
+ break;
2884
+ }
2885
+ case 7: return r;
2886
+ default: g = !0;
2887
+ }
2888
+ if (g) {
2889
+ if (m === 0) return G;
2890
+ m -= 3, p = h[m], r = h[m + 1], Dt = h[m + 2], g = !1;
2891
+ }
2892
+ }
2893
+ }
2894
+ function _n(e, t, n, r, i, a, o, s) {
2895
+ let c = t, l = 0, u = Tt, d = !1;
2896
+ for (;;) {
2897
+ switch (e[c]) {
2898
+ case 0: {
2899
+ for (; r >= 0 && a[n[3 * r]];) r--;
2900
+ if (r < 0) {
2901
+ d = !0;
2902
+ break;
2903
+ }
2904
+ let t = 3 * r;
2905
+ if (n[t] !== e[c + 1]) {
2906
+ d = !0;
2907
+ break;
2908
+ }
2909
+ let l = e[c + 2];
2910
+ if (l >= 0 && !It(o, s, l, i, n[t + 1], n[t + 2])) {
2911
+ d = !0;
2912
+ break;
2913
+ }
2914
+ let u = e[c + 3];
2915
+ if (u >= 0 && !Pt(u, i, n[t + 1], n[t + 2])) {
2916
+ d = !0;
2917
+ break;
2918
+ }
2919
+ r--, c += 4;
2920
+ break;
2921
+ }
2922
+ case 1:
2923
+ if (l + 3 > u.length) {
2924
+ let e = new Int32Array(2 * u.length);
2925
+ e.set(u), u = e, Tt = e;
2926
+ }
2927
+ u[l++] = e[c + 1], u[l++] = r, u[l++] = 0, c += 2;
2928
+ break;
2929
+ case 2:
2930
+ c = e[c + 1];
2931
+ break;
2932
+ case 3:
2933
+ l -= 3, c += 1;
2934
+ break;
2935
+ case 7: return r;
2936
+ default: d = !0;
2937
+ }
2938
+ if (d) {
2939
+ if (l === 0) return G;
2940
+ l -= 3, c = u[l], r = u[l + 1], d = !1;
2941
+ }
2942
+ }
2943
+ }
2944
+ function vn(e, t, n = {}) {
2945
+ let r = En(e, n, t), i = t.slice(0, r.compile_base_len).concat(r.appended_names), a = (e) => e >= 0 && e < i.length ? i[e] : `${e}`, o = [];
2946
+ for (let e = 0; e < r.compiled.length; e++) {
2947
+ let t = r.compiled[e], n = [];
2948
+ t.anchor_at_start && n.push("at_start"), t.anchor_value_suffix_id >= 0 && n.push(`ends_with#${t.anchor_value_suffix_id}`), t.anchor_frame_kinds !== null && n.push(`frame_kinds=${t.anchor_frame_kinds.join(",")}`), t.anchor_ternary_colon >= 0 && n.push(`ternary_colon=${t.anchor_ternary_colon === 1}`), t.anchor_flags_all !== null && n.push(`stmt_flags_all=${t.anchor_flags_all.join(",")}`), t.anchor_flags_none !== null && n.push(`stmt_flags_none=${t.anchor_flags_none.join(",")}`);
2949
+ let s = t.anchor_target_id >= 0 ? a(t.anchor_target_id) : `captures{${(t.capture_targets ?? []).map((e) => a(e.target_id)).join(",")}}`;
2950
+ o.push(`rule ${e}: anchor=${a(t.anchor_id)}${n.length > 0 ? ` ${n.join(" ")}` : ""} -> ${s}`), o.push(" when:");
2951
+ for (let e of wt(r.program, t.when_pc, r.program.length, i).split("\n")) o.push(` ${e}`);
2952
+ if (t.before_pc >= 0) {
2953
+ o.push(" before (reverse):");
2954
+ for (let e of wt(r.program, t.before_pc, r.program.length, i).split("\n")) o.push(` ${e}`);
2955
+ }
2956
+ }
2957
+ return o.join("\n");
2958
+ }
2959
+ var yn = {
2960
+ identifier: 0,
2961
+ punctuation: 5,
2962
+ operator: 5,
2963
+ variable: 10,
2964
+ parameter: 15,
2965
+ property: 20,
2966
+ function: 30,
2967
+ builtin: 40,
2968
+ type: 45,
2969
+ class_name: 50,
2970
+ constant: 55,
2971
+ keyword: 70,
2972
+ boolean: 75,
2973
+ null: 75,
2974
+ number: 75,
2975
+ comment: 80,
2976
+ string: 80
2977
+ };
2978
+ function bn(e) {
2979
+ let t = yn[e];
2980
+ return t === void 0 ? 25 : t;
2981
+ }
2982
+ var xn = class {
2983
+ constructor(e = 1024) {
2984
+ this.count = 0, this.capacity = e, this.token_idx = new Int32Array(e), this.type_id = new Int32Array(e), this.precedence = new Int32Array(e);
2985
+ }
2986
+ emit(e, t, n) {
2987
+ this.count >= this.capacity && this.grow(), this.token_idx[this.count] = e, this.type_id[this.count] = t, this.precedence[this.count] = n, this.count++;
2988
+ }
2989
+ reset() {
2990
+ this.count = 0;
2991
+ }
2992
+ grow() {
2993
+ let e = 2 * this.capacity, t = new Int32Array(e), n = new Int32Array(e), r = new Int32Array(e);
2994
+ t.set(this.token_idx), n.set(this.type_id), r.set(this.precedence), this.token_idx = t, this.type_id = n, this.precedence = r, this.capacity = e;
2995
+ }
2996
+ };
2997
+ var Sn = new xn();
2998
+ var Cn = /* @__PURE__ */ new Int32Array(1024);
2999
+ var wn = /* @__PURE__ */ new Int32Array(1024);
3000
+ function Tn(e, t) {
3001
+ if (t.count === 0) return;
3002
+ let n = e.length / 3;
3003
+ if (Cn.length < n) {
3004
+ let e = 2 * Cn.length;
3005
+ for (; e < n;) e *= 2;
3006
+ Cn = new Int32Array(e), wn = new Int32Array(e);
3007
+ }
3008
+ Cn.fill(-1, 0, n);
3009
+ let r = t.token_idx, i = t.type_id, a = t.precedence;
3010
+ for (let e = 0; e < t.count; e++) {
3011
+ let t = r[e], n = a[e];
3012
+ (Cn[t] === -1 || n > wn[t]) && (Cn[t] = i[e], wn[t] = n);
3013
+ }
3014
+ for (let t = 0; t < n; t++) {
3015
+ let n = Cn[t];
3016
+ n !== -1 && (e[3 * t] = n);
3017
+ }
3018
+ }
3019
+ function En(e, t, n) {
3020
+ let r = n.slice(), i = /* @__PURE__ */ new Map();
3021
+ for (let e = 0; e < r.length; e++) i.set(r[e], e);
3022
+ let a = r.length, o = (e) => {
3023
+ let t = i.get(e);
3024
+ return t === void 0 && (t = r.length, r.push(e), i.set(e, t)), t;
3025
+ }, s = {
3026
+ program: /* @__PURE__ */ new Int32Array(64),
3027
+ program_len: 0,
3028
+ value_pool: /* @__PURE__ */ new Uint16Array(32),
3029
+ value_pool_len: 0,
3030
+ value_offsets: /* @__PURE__ */ new Int32Array(16),
3031
+ value_offsets_len: 0,
3032
+ params_specs: [],
3033
+ span_specs: [],
3034
+ rule_start_pc: 0
3035
+ }, c = [];
3036
+ for (let t of e) {
3037
+ let e = typeof t.anchor == "string" ? {
3038
+ type_name: t.anchor,
3039
+ value: void 0,
3040
+ value_ends_with: void 0,
3041
+ text_pred: void 0,
3042
+ at_start: void 0,
3043
+ frame_kinds: void 0,
3044
+ frame_direct: void 0,
3045
+ ternary_colon: void 0,
3046
+ stmt_flags_all: void 0,
3047
+ stmt_flags_none: void 0
3048
+ } : {
3049
+ type_name: t.anchor.type_name,
3050
+ value: t.anchor.value,
3051
+ value_ends_with: t.anchor.value_ends_with,
3052
+ text_pred: t.anchor.text_pred,
3053
+ at_start: t.anchor.at_start,
3054
+ frame_kinds: t.anchor.frame_kinds,
3055
+ frame_direct: t.anchor.frame_direct,
3056
+ ternary_colon: t.anchor.ternary_colon,
3057
+ stmt_flags_all: t.anchor.stmt_flags_all,
3058
+ stmt_flags_none: t.anchor.stmt_flags_none
3059
+ }, n = i.get(e.type_name);
3060
+ if (n === void 0) {
3061
+ U("rewrite_types", `anchor-type:${e.type_name}`, `anchor type "${e.type_name}" is not in the token vocabulary; rule disabled`);
3062
+ continue;
3063
+ }
3064
+ let r = bt(), a = s.program_len;
3065
+ s.rule_start_pc = a, t.when !== void 0 && St(t.when, i, s, r), K(s, 7);
3066
+ let l = -1, u = null;
3067
+ if (typeof t.rewrite == "string") l = o(t.rewrite);
3068
+ else {
3069
+ u = [];
3070
+ for (let e of Object.keys(t.rewrite)) {
3071
+ let n = r.name_to_slot.get(e);
3072
+ n === void 0 ? U("rewrite_types", `rewrite-capture:${e}`, `rewrite target references capture "${e}" which the when pattern never declares; target ignored`) : u.push({
3073
+ slot_id: n,
3074
+ target_id: o(t.rewrite[e])
3075
+ });
3076
+ }
3077
+ }
3078
+ let d = -1;
3079
+ e.value !== void 0 && (d = yt(s, Array.isArray(e.value) ? e.value : [e.value]));
3080
+ let f = -1;
3081
+ e.value_ends_with !== void 0 && (f = yt(s, Array.isArray(e.value_ends_with) ? e.value_ends_with : [e.value_ends_with]));
3082
+ let p = -1;
3083
+ if (e.text_pred !== void 0) {
3084
+ let t = Ft(e.text_pred);
3085
+ t < 0 && U("rewrite_types", `anchor-pred:${e.text_pred}`, `unknown text predicate "${e.text_pred}" on anchor; rule disabled`), p = t < 0 ? -2 : t;
3086
+ }
3087
+ let m = -1;
3088
+ t.before !== void 0 && (m = s.program_len, Ct(t.before, i, s), K(s, 7));
3089
+ let h = null;
3090
+ if (u !== null && u.length > 0) {
3091
+ h = new Int32Array(r.max_slots).fill(-1);
3092
+ for (let e of u) h[e.slot_id] = e.target_id;
3093
+ }
3094
+ let g = -1;
3095
+ s.program[a] === 10 && s.params_specs[s.program[a + 1]].find_open === 2 && (g = J);
3096
+ let _ = -1;
3097
+ {
3098
+ let t = [];
3099
+ if (e.value !== void 0 && t.push(...Array.isArray(e.value) ? e.value : [e.value]), e.value_ends_with !== void 0 && t.push(...Array.isArray(e.value_ends_with) ? e.value_ends_with : [e.value_ends_with]), t.length > 0 && t.every((e) => e.length > 0)) {
3100
+ let e = t[0].charCodeAt(t[0].length - 1);
3101
+ t.every((t) => t.charCodeAt(t.length - 1) === e) && (_ = e);
3102
+ }
3103
+ }
3104
+ let v = -1, y = -1, b = -1;
3105
+ s.program[a] === 0 && s.program[a + 1] !== W && s.program[a + 4] === 7 && (v = s.program[a + 1], y = s.program[a + 2], b = s.program[a + 3]), c.push({
3106
+ anchor_id: n,
3107
+ anchor_value_id: d,
3108
+ anchor_value_suffix_id: f,
3109
+ anchor_text_pred_id: p,
3110
+ anchor_target_id: l,
3111
+ capture_targets: u,
3112
+ capture_slot_targets: h,
3113
+ before_pc: m,
3114
+ when_pc: a,
3115
+ max_capture_slots: r.max_slots,
3116
+ anchor_at_start: !0 === e.at_start,
3117
+ anchor_frame_kinds: e.frame_kinds !== void 0 && e.frame_kinds.length > 0 ? e.frame_kinds : null,
3118
+ anchor_frame_direct: !0 === e.frame_direct,
3119
+ anchor_ternary_colon: e.ternary_colon === void 0 ? -1 : +!!e.ternary_colon,
3120
+ anchor_flags_all: e.stmt_flags_all !== void 0 && e.stmt_flags_all.length > 0 ? e.stmt_flags_all : null,
3121
+ anchor_flags_none: e.stmt_flags_none !== void 0 && e.stmt_flags_none.length > 0 ? e.stmt_flags_none : null,
3122
+ anchor_must_contain: g,
3123
+ anchor_last_char: _,
3124
+ inline_when_type: v,
3125
+ inline_when_values: y,
3126
+ inline_when_pred: b,
3127
+ precedence_override: t.precedence ?? -1
3128
+ });
3129
+ }
3130
+ let l = Math.max(256, r.length), u = new Int32Array(l);
3131
+ u.fill(-1);
3132
+ let d = new Uint8Array(l), f = [], p = /* @__PURE__ */ new Map();
3133
+ for (let e of c) {
3134
+ let t = p.get(e.anchor_id);
3135
+ t || (t = [], p.set(e.anchor_id, t)), t.push(e);
3136
+ }
3137
+ for (let [e, t] of p) {
3138
+ u[e] = f.length, d[e] = t.length;
3139
+ for (let e of t) f.push(e);
3140
+ }
3141
+ let m = new Uint8Array(Math.max(256, r.length));
3142
+ if (t.trivia) for (let e of t.trivia) {
3143
+ let t = i.get(e);
3144
+ t !== void 0 && (m[t] = 1);
3145
+ }
3146
+ let h = s.program.slice(0, s.program_len), g = s.value_pool.slice(0, s.value_pool_len), _ = s.value_offsets.slice(0, 2 * s.value_offsets_len);
3147
+ return {
3148
+ compile_base_len: a,
3149
+ appended_names: r.slice(a),
3150
+ compiled: c,
3151
+ anchor_offset: u,
3152
+ anchor_count: d,
3153
+ rule_table: f,
3154
+ trivia: m,
3155
+ program: h,
3156
+ value_pool: g,
3157
+ value_offsets: _,
3158
+ params_specs: s.params_specs,
3159
+ span_specs: s.span_specs,
3160
+ has_frame_gates: c.some((e) => e.anchor_at_start || e.anchor_frame_kinds !== null),
3161
+ has_signal_gates: c.some((e) => e.anchor_ternary_colon >= 0 || e.anchor_flags_all !== null || e.anchor_flags_none !== null),
3162
+ kind_gate_cache: /* @__PURE__ */ new WeakMap(),
3163
+ signal_gate_cache: /* @__PURE__ */ new WeakMap()
3164
+ };
3165
+ }
3166
+ function Dn(e, t) {
3167
+ return e.map((e) => {
3168
+ if (e.anchor_frame_kinds === null) return null;
3169
+ let n = new Int32Array(e.anchor_frame_kinds.length);
3170
+ for (let r = 0; r < e.anchor_frame_kinds.length; r++) n[r] = t.indexOf(e.anchor_frame_kinds[r]), n[r] < 0 && H() && U("rewrite_types", `frame-kind:${e.anchor_frame_kinds[r]}`, `anchor frame kind "${e.anchor_frame_kinds[r]}" is not in the frame table's kind names; the gate can never pass`);
3171
+ return n;
3172
+ });
3173
+ }
3174
+ function On(e, t) {
3175
+ let n = new Int32Array(e.length), r = new Int32Array(e.length);
3176
+ for (let i = 0; i < e.length; i++) {
3177
+ let a = e[i];
3178
+ if (a.anchor_flags_all === null && a.anchor_flags_none === null) continue;
3179
+ let o = !1, s = (e) => {
3180
+ if (e === null) return 0;
3181
+ let n = 0;
3182
+ for (let r of e) {
3183
+ let e = t.indexOf(r);
3184
+ e < 0 ? (o = !0, H() && U("rewrite_types", `stmt-flag:${r}`, `anchor stmt flag "${r}" is not in the frame table's flag names; the gate can never pass`)) : n |= 1 << e + 1;
3185
+ }
3186
+ return n;
3187
+ }, c = s(a.anchor_flags_all), l = s(a.anchor_flags_none);
3188
+ o && (c |= 1 << 30), n[i] = c, r[i] = l;
3189
+ }
3190
+ return {
3191
+ all: n,
3192
+ none: r
3193
+ };
3194
+ }
3195
+ function kn(e, t) {
3196
+ let n = e.appended_names.length, r = new Int32Array(n);
3197
+ for (let i = 0; i < n; i++) {
3198
+ let n = e.appended_names[i], a = -1;
3199
+ for (let e = 0; e < t.length; e++) if (t[e] === n) {
3200
+ a = e;
3201
+ break;
3202
+ }
3203
+ a < 0 && (a = t.length, t.push(n)), r[i] = a;
3204
+ }
3205
+ return r;
3206
+ }
3207
+ function An(e, t, n) {
3208
+ return e < t.compile_base_len ? e : n[e - t.compile_base_len];
3209
+ }
3210
+ function jn(e, t = {}) {
3211
+ let n = [];
3212
+ function r(r) {
3213
+ e: for (let e = 0; e < n.length; e++) {
3214
+ let t = n[e].snapshot;
3215
+ if (t.length === r.length) {
3216
+ for (let e = 0; e < t.length; e++) if (t[e] !== r[e]) continue e;
3217
+ return n[e].state;
3218
+ }
3219
+ }
3220
+ let i = En(e, t, r);
3221
+ return n.length >= 8 && (n.length = 0), n.push({
3222
+ snapshot: r.slice(),
3223
+ state: i
3224
+ }), i;
3225
+ }
3226
+ function i(e, t, n, r, i, a) {
3227
+ r.compiled.length !== 0 && Mn(e, t, n, r, kn(r, n), i, a);
3228
+ }
3229
+ let a = (e, t) => {
3230
+ let n = new Uint32Array(t.tokens), a = t.token_types.slice(), o = r(t.token_types), s = new xn(256);
3231
+ return i(e, n, a, o, s, t.frames), Tn(n, s), {
3232
+ tokens: n,
3233
+ token_types: a,
3234
+ frames: t.frames
3235
+ };
3236
+ };
3237
+ return a.__claim = (e, t, n, a, o) => {
3238
+ i(e, t, n, r(n), a, o);
3239
+ }, a;
3240
+ }
3241
+ function Mn(e, t, n, r, i, a, o) {
3242
+ let s = t.length / 3, { anchor_offset: c, anchor_count: l, rule_table: u, trivia: d, program: f, value_pool: p, value_offsets: m, params_specs: h, span_specs: g } = r, _ = null;
3243
+ r.has_frame_gates && o !== void 0 && (_ = r.kind_gate_cache.get(o.kind_names) ?? null, _ === null && (_ = Dn(u, o.kind_names), r.kind_gate_cache.set(o.kind_names, _))), r.has_frame_gates && o === void 0 && H() && U("rewrite_types", "frames-missing", "rules with frame gates ran without a frame_track stage upstream; gated rules are disabled");
3244
+ let v = null, y = null, b = o === void 0 ? mt : o.signals;
3245
+ if (r.has_signal_gates && o !== void 0 && b.length > 0) {
3246
+ let e = r.signal_gate_cache.get(o.flag_names) ?? null;
3247
+ e === null && (e = On(u, o.flag_names), r.signal_gate_cache.set(o.flag_names, e)), v = e.all, y = e.none;
3248
+ }
3249
+ r.has_signal_gates && b.length === 0 && H() && U("rewrite_types", "signals-missing", "rules with signal gates ran without ternary / stmt_flags configured in the frame_track stage; gated rules are disabled");
3250
+ for (let x = 0; x < s; x++) {
3251
+ let S = t[3 * x];
3252
+ if (d[S]) continue;
3253
+ let C = c[S];
3254
+ if (C < 0) continue;
3255
+ let w = l[S];
3256
+ for (let c = 0; c < w; c++) {
3257
+ let l = u[C + c];
3258
+ if (!(l.anchor_last_char >= 0 && e.charCodeAt(t[3 * x + 2] - 1) !== l.anchor_last_char)) {
3259
+ if (l.anchor_value_id !== -1 && !Lt(p, m, l.anchor_value_id, e, t[3 * x + 1], t[3 * x + 2]) || l.anchor_value_suffix_id !== -1 && !It(p, m, l.anchor_value_suffix_id, e, t[3 * x + 1], t[3 * x + 2])) continue;
3260
+ if (l.anchor_at_start || l.anchor_frame_kinds !== null) {
3261
+ if (o === void 0 || l.anchor_at_start && o.at_start[x] !== 1) continue;
3262
+ if (l.anchor_frame_kinds !== null) {
3263
+ let e = _[C + c], t;
3264
+ if (l.anchor_frame_direct) t = o.frames[o.active_frame[x]].kind;
3265
+ else {
3266
+ let e = o.active_frame[x], n = o.frames[e];
3267
+ for (; e > 0 && n.bracket !== 1;) e = n.parent, n = o.frames[e];
3268
+ t = n.bracket === 1 ? n.kind : 0;
3269
+ }
3270
+ let n = !1;
3271
+ for (let r = 0; r < e.length; r++) if (e[r] === t) {
3272
+ n = !0;
3273
+ break;
3274
+ }
3275
+ if (!n) continue;
3276
+ }
3277
+ }
3278
+ if (l.anchor_ternary_colon >= 0 || l.anchor_flags_all !== null || l.anchor_flags_none !== null) {
3279
+ if (x >= b.length) continue;
3280
+ let e = b[x];
3281
+ if (l.anchor_ternary_colon >= 0 && (1 & e) !== l.anchor_ternary_colon) continue;
3282
+ if (v !== null) {
3283
+ let t = v[C + c];
3284
+ if ((e & t) !== t || (e & y[C + c]) !== 0) continue;
3285
+ } else if (l.anchor_flags_all !== null || l.anchor_flags_none !== null) continue;
3286
+ }
3287
+ if (l.anchor_text_pred_id !== -1 && (l.anchor_text_pred_id === -2 || !Pt(l.anchor_text_pred_id, e, t[3 * x + 1], t[3 * x + 2]))) continue;
3288
+ if (l.anchor_must_contain >= 0) {
3289
+ let n = t[3 * x + 2], r = !1;
3290
+ for (let i = t[3 * x + 1]; i < n; i++) if (e.charCodeAt(i) === l.anchor_must_contain) {
3291
+ r = !0;
3292
+ break;
3293
+ }
3294
+ if (!r) continue;
3295
+ }
3296
+ if (!(l.before_pc >= 0 && _n(f, l.before_pc, t, x - 1, e, d, p, m) === G)) {
3297
+ if (l.inline_when_type >= 0) {
3298
+ let n = x + 1;
3299
+ for (; n < s && d[t[3 * n]];) n++;
3300
+ if (n >= s || t[3 * n] !== l.inline_when_type || l.inline_when_values >= 0 && !Lt(p, m, l.inline_when_values, e, t[3 * n + 1], t[3 * n + 2]) || l.inline_when_pred >= 0 && !Pt(l.inline_when_pred, e, t[3 * n + 1], t[3 * n + 2])) continue;
3301
+ } else if (gn(f, l.when_pc, t, x + 1, s, e, d, p, m, l.max_capture_slots, h, g, o) === G) continue;
3302
+ if (l.anchor_target_id !== -1) {
3303
+ let e = An(l.anchor_target_id, r, i), t = l.precedence_override >= 0 ? l.precedence_override : bn(n[e]);
3304
+ a.emit(x, e, t);
3305
+ }
3306
+ if (l.capture_slot_targets !== null) {
3307
+ let e = l.capture_slot_targets;
3308
+ for (let t = 0; t < Dt; t += 3) {
3309
+ let o = e[q[t]];
3310
+ if (o < 0) continue;
3311
+ let s = An(o, r, i), c = l.precedence_override >= 0 ? l.precedence_override : bn(n[s]), u = q[t + 2];
3312
+ for (let e = q[t + 1]; e < u; e++) a.emit(e, s, c);
3313
+ }
3314
+ }
3315
+ break;
3316
+ }
3317
+ }
3318
+ }
3319
+ }
3320
+ }
3321
+ function Nn(e) {
3322
+ let t = Object.keys(e), n = t.map((t) => {
3323
+ return typeof (n = e[t]) == "function" ? {
3324
+ language: n,
3325
+ trim_start: 0,
3326
+ trim_end: 0,
3327
+ wrap_token: null
3328
+ } : {
3329
+ language: n.language,
3330
+ trim_start: n.trim_start ?? 0,
3331
+ trim_end: n.trim_end ?? 0,
3332
+ wrap_token: n.wrap_token ?? null
3333
+ };
3334
+ var n;
3335
+ }), r = /* @__PURE__ */ new WeakMap();
3336
+ return (e, i) => {
3337
+ let a = i.tokens, o = i.token_types, s = a.length / 3, c = r.get(o);
3338
+ if (c === void 0) {
3339
+ let e = new Int32Array(o.length).fill(-1), n = !1;
3340
+ for (let r = 0; r < t.length; r++) {
3341
+ let i = o.indexOf(t[r]);
3342
+ i !== -1 && (e[i] = r, n = !0);
3343
+ }
3344
+ c = { table: n ? e : null }, r.set(o, c);
3345
+ }
3346
+ let l = c.table;
3347
+ if (l === null) return i;
3348
+ let u = [], d = s;
3349
+ for (let t = 0; t < s; t++) {
3350
+ let r = a[3 * t], i = r < l.length ? l[r] : -1;
3351
+ if (i < 0) continue;
3352
+ let o = n[i], s = a[3 * t + 1], c = a[3 * t + 2], f = Math.min(s + o.trim_start, c), p = Math.max(c - o.trim_end, f), m = e.slice(f, p), h = o.language(m), g = h.tokens.length / 3;
3353
+ u.push({
3354
+ host_idx: t,
3355
+ sub: h,
3356
+ content_start: f,
3357
+ entry: o,
3358
+ host_start: s,
3359
+ host_end: c
3360
+ });
3361
+ let _ = g;
3362
+ o.wrap_token !== null && (o.trim_start > 0 && _++, o.trim_end > 0 && _++), d = d - 1 + _;
3363
+ }
3364
+ if (u.length === 0) return i;
3365
+ let f = o.slice(), p = /* @__PURE__ */ new Map();
3366
+ for (let e = 0; e < f.length; e++) p.set(f[e], e);
3367
+ let m = (e) => {
3368
+ let t = p.get(e);
3369
+ return t === void 0 && (t = f.length, f.push(e), p.set(e, t)), t;
3370
+ }, h = /* @__PURE__ */ new WeakMap(), g = (e) => {
3371
+ let t = h.get(e);
3372
+ if (t) return t;
3373
+ t = new Uint32Array(e.length);
3374
+ for (let n = 0; n < e.length; n++) t[n] = m(e[n]);
3375
+ return h.set(e, t), t;
3376
+ }, _ = new Uint32Array(3 * d), v = 0, y = 0;
3377
+ for (let e = 0; e < s; e++) if (y < u.length && u[y].host_idx === e) {
3378
+ let { sub: e, content_start: t, entry: n, host_start: r, host_end: i } = u[y++], a = g(e.token_types), o = n.wrap_token === null ? -1 : m(n.wrap_token);
3379
+ o !== -1 && n.trim_start > 0 && (_[3 * v] = o, _[3 * v + 1] = r, _[3 * v + 2] = t, v++);
3380
+ let s = e.tokens.length / 3;
3381
+ for (let n = 0; n < s; n++) {
3382
+ let r = 3 * n;
3383
+ _[3 * v] = a[e.tokens[r]], _[3 * v + 1] = e.tokens[r + 1] + t, _[3 * v + 2] = e.tokens[r + 2] + t, v++;
3384
+ }
3385
+ o !== -1 && n.trim_end > 0 && (_[3 * v] = o, _[3 * v + 1] = i - n.trim_end, _[3 * v + 2] = i, v++);
3386
+ } else {
3387
+ let t = 3 * e;
3388
+ _[3 * v] = a[t], _[3 * v + 1] = a[t + 1], _[3 * v + 2] = a[t + 2], v++;
3389
+ }
3390
+ return {
3391
+ tokens: _,
3392
+ token_types: f
3393
+ };
3394
+ };
3395
+ }
3396
+ function Pn(e) {
3397
+ let t = e.hole_char ?? " ";
3398
+ return (n, r) => {
3399
+ let i = r;
3400
+ for (let r = 0; r < 16; r++) {
3401
+ let r = Fn(e, t, n, i);
3402
+ if (r === i) return i;
3403
+ i = r;
3404
+ }
3405
+ return i;
3406
+ };
3407
+ }
3408
+ function Fn(e, t, n, r) {
3409
+ let i = r.tokens, a = r.token_types, o = i.length / 3, s = a, c = null, l = () => {
3410
+ if (c !== null) return c;
3411
+ s = a.slice();
3412
+ let e = /* @__PURE__ */ new Map();
3413
+ for (let t = 0; t < s.length; t++) e.set(s[t], t);
3414
+ return c = e, e;
3415
+ }, u = (e) => {
3416
+ let t = l(), n = t.get(e);
3417
+ return n === void 0 && (n = s.length, s.push(e), t.set(e, n)), n;
3418
+ }, d = null, f = (e) => {
3419
+ d === null && (d = /* @__PURE__ */ new WeakMap());
3420
+ let t = d.get(e);
3421
+ if (t) return t;
3422
+ t = new Uint32Array(e.length);
3423
+ for (let n = 0; n < e.length; n++) t[n] = u(e[n]);
3424
+ return d.set(e, t), t;
3425
+ }, p = [], m = o, h = 0;
3426
+ for (; h < o;) {
3427
+ let r = e.scan(i, n, h, s);
3428
+ if (r === null) {
3429
+ h++;
3430
+ continue;
3431
+ }
3432
+ let a = r.language ?? e.language;
3433
+ if (a === void 0) {
3434
+ h++;
3435
+ continue;
3436
+ }
3437
+ l();
3438
+ let o = In(r, n, i, a, t, f, u);
3439
+ p.push({
3440
+ out_idx: 0,
3441
+ out: o,
3442
+ token_start: r.token_start,
3443
+ token_end: r.token_end
3444
+ }), m += o.length - (r.token_end - r.token_start), h = r.token_end > h ? r.token_end : h + 1;
3445
+ }
3446
+ if (p.length === 0) return r;
3447
+ let g = new Uint32Array(3 * m), _ = 0, v = 0, y = 0;
3448
+ for (; y < o;) {
3449
+ if (v < p.length && p[v].token_start === y) {
3450
+ let e = p[v++];
3451
+ for (let t = 0; t < e.out.length; t++) {
3452
+ let n = e.out[t];
3453
+ g[3 * _] = n.type, g[3 * _ + 1] = n.start, g[3 * _ + 2] = n.end, _++;
3454
+ }
3455
+ y = e.token_end;
3456
+ continue;
3457
+ }
3458
+ let e = 3 * y;
3459
+ g[3 * _] = i[e], g[3 * _ + 1] = i[e + 1], g[3 * _ + 2] = i[e + 2], _++, y++;
3460
+ }
3461
+ return {
3462
+ tokens: g.subarray(0, 3 * _),
3463
+ token_types: s
3464
+ };
3465
+ }
3466
+ function In(e, t, n, r, i, a, o) {
3467
+ let s = "", c = [], l = [];
3468
+ for (let n = 0; n < e.regions.length; n++) {
3469
+ let r = e.regions[n];
3470
+ if (r.kind === "content") {
3471
+ let e = t.slice(r.source_start, r.source_end), n = s.length;
3472
+ s += e, c.push({
3473
+ v_start: n,
3474
+ v_end: s.length,
3475
+ real_start: r.source_start
3476
+ });
3477
+ } else if (r.kind === "hole") {
3478
+ let e = r.source_end - r.source_start, t = s.length;
3479
+ s += i.length === 1 ? i.repeat(e) : i.repeat(e).slice(0, e), l.push({
3480
+ v_start: t,
3481
+ v_end: s.length
3482
+ });
3483
+ }
3484
+ }
3485
+ let u = r(s), d = u.tokens, f = d.length / 3, p = a(u.token_types), m = [];
3486
+ for (let e = 0; e < f; e++) {
3487
+ let t = 3 * e, n = d[t + 1], r = d[t + 2], i = p[d[t]];
3488
+ for (let e = 0; e < c.length; e++) {
3489
+ let t = c[e];
3490
+ if (t.v_end <= n) continue;
3491
+ if (t.v_start >= r) break;
3492
+ let a = Math.max(n, t.v_start), o = Math.min(r, t.v_end);
3493
+ o <= a || m.push({
3494
+ type: i,
3495
+ v_start: a,
3496
+ real_start: t.real_start + (a - t.v_start),
3497
+ real_end: t.real_start + (o - t.v_start)
3498
+ });
3499
+ }
3500
+ }
3501
+ m.sort((e, t) => e.v_start - t.v_start);
3502
+ let h = [], g = 0;
3503
+ for (let t = 0; t < e.regions.length; t++) {
3504
+ let r = e.regions[t];
3505
+ if (r.kind === "content") for (; g < m.length && m[g].real_start < r.source_end;) {
3506
+ let e = m[g++];
3507
+ h.push({
3508
+ type: e.type,
3509
+ start: e.real_start,
3510
+ end: e.real_end
3511
+ });
3512
+ }
3513
+ else if (r.kind === "hole") for (let e = r.token_start; e < r.token_end; e++) {
3514
+ let t = 3 * e;
3515
+ h.push({
3516
+ type: n[t],
3517
+ start: n[t + 1],
3518
+ end: n[t + 2]
3519
+ });
3520
+ }
3521
+ else r.kind === "synthetic" && h.push({
3522
+ type: o(r.type_name),
3523
+ start: r.source_start,
3524
+ end: r.source_end
3525
+ });
3526
+ }
3527
+ return h;
3528
+ }
3529
+ function Ln(e) {
3530
+ return "__claim" in e && typeof e.__claim == "function";
3531
+ }
3532
+ function Rn(e) {
3533
+ let t = [], n = [];
3534
+ for (let r = 0; r < e.length; r++) {
3535
+ let i = e[r];
3536
+ Ln(i) ? n.push(i) : (n.length > 0 && (t.push({
3537
+ batch: n,
3538
+ fn: null
3539
+ }), n = []), t.push({
3540
+ batch: null,
3541
+ fn: i
3542
+ }));
3543
+ }
3544
+ return n.length > 0 && t.push({
3545
+ batch: n,
3546
+ fn: null
3547
+ }), t;
3548
+ }
3549
+ function zn(e) {
3550
+ let t = null;
3551
+ return (n, r) => {
3552
+ t === null && (t = Rn(e));
3553
+ let i = r;
3554
+ for (let e = 0; e < t.length; e++) {
3555
+ let r = t[e];
3556
+ if (r.batch !== null) {
3557
+ i = Bn(n, i, r.batch);
3558
+ continue;
3559
+ }
3560
+ let a = i.frames, o = i.tokens.length;
3561
+ i = (0, r.fn)(n, i), i.frames === void 0 && a !== void 0 && i.tokens.length === o && (i = {
3562
+ tokens: i.tokens,
3563
+ token_types: i.token_types,
3564
+ overlays: i.overlays,
3565
+ frames: a
3566
+ });
3567
+ }
3568
+ return i;
3569
+ };
3570
+ }
3571
+ function Bn(e, t, n) {
3572
+ let r = t.token_types.slice();
3573
+ Sn.reset();
3574
+ for (let i = 0; i < n.length; i++) n[i].__claim(e, t.tokens, r, Sn, t.frames);
3575
+ if (Sn.count === 0) return {
3576
+ tokens: t.tokens,
3577
+ token_types: r,
3578
+ frames: t.frames
3579
+ };
3580
+ let i = new Uint32Array(t.tokens);
3581
+ return Tn(i, Sn), {
3582
+ tokens: i,
3583
+ token_types: r,
3584
+ frames: t.frames
3585
+ };
3586
+ }
3587
+ function Vn(e, t, n = "type_claim") {
3588
+ return {
3589
+ reclassifier: e,
3590
+ produces: t,
3591
+ layer: n
3592
+ };
3593
+ }
3594
+ function Hn(e, t) {
3595
+ return {
3596
+ reclassifier: e,
3597
+ produces: [],
3598
+ layer: t
3599
+ };
3600
+ }
3601
+ function Un(e) {
3602
+ let t = (t, n) => {
3603
+ let r = new Uint32Array(n.tokens), i = n.token_types.slice(), a = new xn(256);
3604
+ return e(t, r, i, a, n.frames), Tn(r, a), {
3605
+ tokens: r,
3606
+ token_types: i,
3607
+ frames: n.frames
3608
+ };
3609
+ };
3610
+ return t.__claim = e, t;
3611
+ }
3612
+ function Wn(e) {
3613
+ return typeof e != "function";
3614
+ }
3615
+ function Gn(e) {
3616
+ return e.produces.length === 0;
3617
+ }
3618
+ function Kn(e, t) {
3619
+ if (t === void 0 || t === "high") return e.map((e) => Wn(e) ? e.reclassifier : e);
3620
+ if (t === "low") {
3621
+ let t = [];
3622
+ for (let n of e) Wn(n) ? Gn(n) && t.push(n.reclassifier) : t.push(n);
3623
+ return t;
3624
+ }
3625
+ let n = new Set(t), r = [];
3626
+ for (let t of e) Wn(t) ? (Gn(t) || t.produces.some((e) => n.has(e))) && r.push(t.reclassifier) : r.push(t);
3627
+ return r;
3628
+ }
3629
+ function qn(e, t = []) {
3630
+ return (i) => {
3631
+ let a = zn(Kn(t, i?.fidelity)), o = Xn(e.token_types, i?.fidelity), s = i?.annotation ? r(i.annotation, e.token_types) : null;
3632
+ return (t) => {
3633
+ let r = a(t, n(t, e));
3634
+ if (o !== null && Zn(r.tokens, o), s !== null) {
3635
+ let e = s(t, r);
3636
+ e !== void 0 && (r.overlays = e);
3637
+ }
3638
+ return r;
3639
+ };
3640
+ };
3641
+ }
3642
+ var Jn = {
3643
+ boolean: "identifier",
3644
+ function: "identifier",
3645
+ decorator: "identifier"
3646
+ };
3647
+ var Yn = Object.keys(Jn);
3648
+ function Xn(e, t) {
3649
+ if (t === void 0 || t === "high") return null;
3650
+ let n = t === "low" ? null : new Set(t), r = new Int32Array(e.length);
3651
+ r.fill(-1);
3652
+ let i = !1;
3653
+ for (let [t, a] of Object.entries(Jn)) {
3654
+ if (n !== null && n.has(t)) continue;
3655
+ let o = e.indexOf(t);
3656
+ if (o < 0) continue;
3657
+ let s = e.indexOf(a);
3658
+ s < 0 || (r[o] = s, i = !0);
3659
+ }
3660
+ return i ? r : null;
3661
+ }
3662
+ function Zn(e, t) {
3663
+ let n = e.length / 3, r = t.length;
3664
+ for (let i = 0; i < n; i++) {
3665
+ let n = e[3 * i];
3666
+ if (n < r) {
3667
+ let r = t[n];
3668
+ r >= 0 && (e[3 * i] = r);
3669
+ }
3670
+ }
3671
+ }
3672
+ var Qn = class {
3673
+ constructor(e, t, n, r = ["comment"]) {
3674
+ this.input = e, this.tokens = t, this.token_types = n, this.count = t.length / 3;
3675
+ let i = -1, a = /* @__PURE__ */ new Set();
3676
+ for (let e of r) {
3677
+ let t = n.indexOf(e);
3678
+ t < 0 || (a.add(t), i < 0 && (i = t));
3679
+ }
3680
+ this.comment_id = i, this.trivia_set = a.size <= 1 ? null : a;
3681
+ }
3682
+ kind_of(e) {
3683
+ return this.tokens[3 * e];
3684
+ }
3685
+ text_of(e) {
3686
+ let t = this.tokens;
3687
+ return this.input.slice(t[3 * e + 1], t[3 * e + 2]);
3688
+ }
3689
+ is_trivia(e) {
3690
+ let t = this.tokens[3 * e];
3691
+ return this.trivia_set === null ? t === this.comment_id : this.trivia_set.has(t);
3692
+ }
3693
+ next_non_trivia(e) {
3694
+ let t = this.tokens, n = this.count, r = this.trivia_set;
3695
+ if (r === null) {
3696
+ let r = this.comment_id;
3697
+ for (let i = e; i < n; i++) if (t[3 * i] !== r) return i;
3698
+ return -1;
3699
+ }
3700
+ for (let i = e; i < n; i++) if (!r.has(t[3 * i])) return i;
3701
+ return -1;
3702
+ }
3703
+ prev_non_trivia(e) {
3704
+ let t = this.tokens, n = this.trivia_set;
3705
+ if (n === null) {
3706
+ let n = this.comment_id;
3707
+ for (let r = e; r >= 0; r--) if (t[3 * r] !== n) return r;
3708
+ return -1;
3709
+ }
3710
+ for (let r = e; r >= 0; r--) if (!n.has(t[3 * r])) return r;
3711
+ return -1;
3712
+ }
3713
+ };
3714
+ function $n(e, t, n, r = ["comment"]) {
3715
+ return new Qn(e, t, n, r);
3716
+ }
3717
+ function er() {
3718
+ let e = [], t = {
3719
+ entries: e,
3720
+ paren_depth: 0,
3721
+ brace_depth: 0,
3722
+ bracket_depth: 0,
3723
+ length: () => e.length,
3724
+ top: () => e[e.length - 1],
3725
+ push(n, r) {
3726
+ e.push({
3727
+ bracket: n,
3728
+ data: r
3729
+ }), n === "(" ? t.paren_depth++ : n === "[" ? t.bracket_depth++ : t.brace_depth++;
3730
+ },
3731
+ pop() {
3732
+ let n = e.pop();
3733
+ if (n !== void 0) return n.bracket === "(" ? t.paren_depth-- : n.bracket === "[" ? t.bracket_depth-- : t.brace_depth--, n;
3734
+ }
3735
+ };
3736
+ return t;
3737
+ }
3738
+ var tr = /* @__PURE__ */ new Uint8Array();
3739
+ var nr = [];
3740
+ var rr = [
3741
+ "top",
3742
+ "paren",
3743
+ "bracket"
3744
+ ];
3745
+ function ir(e) {
3746
+ let t = [];
3747
+ for (let n = 0; n < e.length; n++) t.push(e.charCodeAt(n));
3748
+ return { codes: t };
3749
+ }
3750
+ function ar(e, t, n, r) {
3751
+ let i = r.codes;
3752
+ if (n - t !== i.length) return !1;
3753
+ for (let n = 0; n < i.length; n++) if (e.charCodeAt(t + n) !== i[n]) return !1;
3754
+ return !0;
3755
+ }
3756
+ function or(e) {
3757
+ if (e === void 0) return [];
3758
+ let t = [];
3759
+ for (let n = 0; n < e.length; n++) t.push(e.charCodeAt(n));
3760
+ return t;
3761
+ }
3762
+ function sr(e) {
3763
+ let t = rr.slice(), n = (e) => {
3764
+ let n = t.indexOf(e);
3765
+ return n >= 0 ? n : (t.push(e), t.length - 1);
3766
+ }, r = (e.body_markers ?? []).map((e) => ({
3767
+ type: e.type,
3768
+ text: ir(e.text),
3769
+ kind_id: n(e.kind)
3770
+ })), i = (e.prev_rules ?? []).map((e) => {
3771
+ let t = e.prev_last_char_in === void 0 ? null : [];
3772
+ if (t !== null && e.prev_last_char_in !== void 0) for (let n = 0; n < e.prev_last_char_in.length; n++) t.push(e.prev_last_char_in.charCodeAt(n));
3773
+ return {
3774
+ type: e.prev_type,
3775
+ texts: e.prev_texts === void 0 ? null : e.prev_texts.map(ir),
3776
+ last_chars: t,
3777
+ in_kind_names: e.in_kinds ?? null,
3778
+ in_kind_ids: null,
3779
+ scan: e.scan_back === void 0 ? null : (r = e.scan_back, {
3780
+ over: r.over.map((e) => ({
3781
+ type: e.type,
3782
+ texts: e.texts === void 0 ? null : e.texts.map(ir),
3783
+ chars: e.chars === void 0 ? null : or(e.chars)
3784
+ })),
3785
+ to_type: r.to.type,
3786
+ to_texts: r.to.texts === void 0 ? null : r.to.texts.map(ir),
3787
+ to_last_chars: r.to.last_char_in === void 0 ? null : or(r.to.last_char_in),
3788
+ to_prev_chars: r.to.preceded_by_char_in === void 0 ? null : or(r.to.preceded_by_char_in),
3789
+ max: r.max === void 0 ? 16 : r.max
3790
+ }),
3791
+ kind_id: n(e.kind)
3792
+ };
3793
+ var r;
3794
+ });
3795
+ for (let e of i) {
3796
+ if (e.in_kind_names === null) continue;
3797
+ let n = /* @__PURE__ */ new Set();
3798
+ for (let r of e.in_kind_names) {
3799
+ let e = t.indexOf(r);
3800
+ e >= 0 ? n.add(e) : U("frame_track", `in-kind:${r}`, `prev rule in_kinds kind "${r}" is not declared by the brace_kinds spec; the rule can never match`);
3801
+ }
3802
+ e.in_kind_ids = n;
3803
+ }
3804
+ return {
3805
+ kind_names: t,
3806
+ markers: r,
3807
+ pending_in_angles_kind: e.pending_in_angles_kind === void 0 ? -1 : n(e.pending_in_angles_kind),
3808
+ angle_type: e.angles?.type ?? null,
3809
+ angle_open: e.angles === void 0 ? null : ir(e.angles.open),
3810
+ angle_closes: (e.angles?.closes ?? []).map((e) => ({
3811
+ text: ir(e.text),
3812
+ pops: e.pops
3813
+ })),
3814
+ angle_reset_chars: or(e.angles?.reset_chars),
3815
+ marker_reset_chars: or(e.marker_reset_chars),
3816
+ prev_rules: i,
3817
+ default_kind: n(e.default_kind),
3818
+ start_kind: n(e.start_kind === void 0 ? e.default_kind : e.start_kind)
3819
+ };
3820
+ }
3821
+ function cr(e, t) {
3822
+ let n = Array(t.length).fill(null);
3823
+ for (let r of e.over) {
3824
+ let e = t.indexOf(r.type);
3825
+ if (e < 0) {
3826
+ U("frame_track", `scan-over-type:${r.type}`, `scan_back over type "${r.type}" is not in the token vocabulary; the walk stops at it`);
3827
+ continue;
3828
+ }
3829
+ let i = r.texts === null && r.chars === null, a = n[e];
3830
+ a === null ? n[e] = {
3831
+ any: i,
3832
+ texts: r.texts,
3833
+ chars: r.chars
3834
+ } : (a.any = a.any || i, r.texts !== null && (a.texts = a.texts === null ? r.texts : a.texts.concat(r.texts)), r.chars !== null && (a.chars = a.chars === null ? r.chars : a.chars.concat(r.chars)));
3835
+ }
3836
+ let r = t.indexOf(e.to_type);
3837
+ return r < 0 && U("frame_track", `scan-to-type:${e.to_type}`, `scan_back landing type "${e.to_type}" is not in the token vocabulary; the rule can never match`), {
3838
+ over: n,
3839
+ to_type_id: r,
3840
+ to_texts: e.to_texts,
3841
+ to_last_chars: e.to_last_chars,
3842
+ to_prev_chars: e.to_prev_chars,
3843
+ max: e.max
3844
+ };
3845
+ }
3846
+ function lr(e, t) {
3847
+ let n = Array(t.length).fill(null);
3848
+ for (let r of e.markers) {
3849
+ let e = t.indexOf(r.type);
3850
+ if (e < 0) {
3851
+ U("frame_track", `marker-type:${r.type}`, `body marker type "${r.type}" is not in the token vocabulary; the marker can never arm`);
3852
+ continue;
3853
+ }
3854
+ let i = n[e];
3855
+ i === null && (i = [], n[e] = i), i.push({
3856
+ text: r.text,
3857
+ kind_id: r.kind_id
3858
+ });
3859
+ }
3860
+ let r = e.angle_type === null ? -1 : t.indexOf(e.angle_type);
3861
+ e.angle_type !== null && r < 0 && U("frame_track", `angle-type:${e.angle_type}`, `angle type "${e.angle_type}" is not in the token vocabulary; angle depth is never tracked`);
3862
+ let i = e.prev_rules.map((e) => {
3863
+ let n = t.indexOf(e.type);
3864
+ return n < 0 && U("frame_track", `prev-rule-type:${e.type}`, `prev rule type "${e.type}" is not in the token vocabulary; the rule can never match`), {
3865
+ type_id: n,
3866
+ texts: e.texts,
3867
+ last_chars: e.last_chars,
3868
+ in_kind_ids: e.in_kind_ids,
3869
+ scan: e.scan === null ? null : cr(e.scan, t),
3870
+ kind_id: e.kind_id
3871
+ };
3872
+ }), a = Array(t.length).fill(null);
3873
+ for (let e of i) {
3874
+ if (e.type_id < 0) continue;
3875
+ let t = a[e.type_id];
3876
+ t === null && (t = [], a[e.type_id] = t), t.push(e);
3877
+ }
3878
+ return {
3879
+ marker_lists: n,
3880
+ angle_type_id: r,
3881
+ prev_rules: i,
3882
+ prev_rule_lists: a
3883
+ };
3884
+ }
3885
+ function ur(e, t) {
3886
+ let n = -1;
3887
+ e.ternary_qmark_type !== null && (n = t.indexOf(e.ternary_qmark_type), n < 0 && U("frame_track", `qmark-type:${e.ternary_qmark_type}`, `ternary qmark type "${e.ternary_qmark_type}" is not in the token vocabulary; ternary colons are never marked`));
3888
+ let r = Array(t.length).fill(null);
3889
+ for (let n of e.stmt_rules) {
3890
+ let e = t.indexOf(n.type);
3891
+ if (e < 0) {
3892
+ U("frame_track", `stmt-type:${n.type}`, `stmt flag trigger type "${n.type}" is not in the token vocabulary; the trigger can never fire`);
3893
+ continue;
3894
+ }
3895
+ let i = n.text.codes.length > 0 ? n.text.codes[0] : 0;
3896
+ if (i >= 128) {
3897
+ U("frame_track", `stmt-text:${n.type}`, "stmt flag trigger text starting with a non-ascii char cannot be bucketed; the trigger can never fire");
3898
+ continue;
3899
+ }
3900
+ let a = r[e];
3901
+ a === null && (a = Array(128).fill(null), r[e] = a);
3902
+ let o = a[i];
3903
+ o === null && (o = [], a[i] = o), o.push(n);
3904
+ }
3905
+ return {
3906
+ qmark_type_id: n,
3907
+ stmt_lists: r
3908
+ };
3909
+ }
3910
+ function dr(e, t) {
3911
+ for (let n = 0; n < e.length; n++) if (t === e[n]) return !0;
3912
+ return !1;
3913
+ }
3914
+ function fr(e, t, n) {
3915
+ let r = n;
3916
+ for (; r >= 0 && 1 & t[e[3 * r]];) r--;
3917
+ return r;
3918
+ }
3919
+ function pr(e, t, n, r, i) {
3920
+ let a = 3 * i, o = t[a + 1], s = t[a + 2];
3921
+ if (r.to_texts !== null) {
3922
+ let t = !1;
3923
+ for (let n = 0; n < r.to_texts.length; n++) if (ar(e, o, s, r.to_texts[n])) {
3924
+ t = !0;
3925
+ break;
3926
+ }
3927
+ if (!t) return !1;
3928
+ }
3929
+ if (r.to_last_chars !== null && !dr(r.to_last_chars, e.charCodeAt(s - 1))) return !1;
3930
+ if (r.to_prev_chars !== null) {
3931
+ let a;
3932
+ if (s - 2 >= o) a = e.charCodeAt(s - 2);
3933
+ else {
3934
+ let r = fr(t, n, i - 1);
3935
+ if (r < 0) return !1;
3936
+ a = e.charCodeAt(t[3 * r + 2] - 1);
3937
+ }
3938
+ if (!dr(r.to_prev_chars, a)) return !1;
3939
+ }
3940
+ return !0;
3941
+ }
3942
+ function mr(e, t, n, r, i) {
3943
+ let a = r.over, o = i;
3944
+ for (let i = 0; i < r.max; i++) {
3945
+ if (o = fr(t, n, o), o < 0) return !1;
3946
+ let i = 3 * o, s = t[i];
3947
+ if (s === r.to_type_id && pr(e, t, n, r, o)) return !0;
3948
+ let c = a[s] ?? null;
3949
+ if (c === null) return !1;
3950
+ if (!c.any) {
3951
+ let n = t[i + 1], r = t[i + 2], a = !1;
3952
+ if (c.texts !== null) {
3953
+ for (let t = 0; t < c.texts.length; t++) if (ar(e, n, r, c.texts[t])) {
3954
+ a = !0;
3955
+ break;
3956
+ }
3957
+ }
3958
+ if (!a && c.chars !== null) {
3959
+ a = !0;
3960
+ for (let t = n; t < r; t++) if (!dr(c.chars, e.charCodeAt(t))) {
3961
+ a = !1;
3962
+ break;
3963
+ }
3964
+ }
3965
+ if (!a) return !1;
3966
+ }
3967
+ o--;
3968
+ }
3969
+ return !1;
3970
+ }
3971
+ function hr(e, t, n, r, i, a, o, s, c, l) {
3972
+ if (l >= 0) {
3973
+ let u = i.prev_rule_lists[c] ?? null;
3974
+ if (u === null) return r.default_kind;
3975
+ for (let r = 0; r < u.length; r++) {
3976
+ let i = u[r];
3977
+ if (i.texts !== null) {
3978
+ let e = !1;
3979
+ for (let t = 0; t < i.texts.length; t++) {
3980
+ let n = i.texts[t].codes;
3981
+ if (n.length === 1 && n[0] === l) {
3982
+ e = !0;
3983
+ break;
3984
+ }
3985
+ }
3986
+ if (!e) continue;
3987
+ } else if (i.last_chars !== null && !dr(i.last_chars, l)) continue;
3988
+ if ((i.in_kind_ids === null || i.in_kind_ids.has(o[s].kind)) && (i.scan === null || mr(e, t, n, i.scan, a))) return i.kind_id;
3989
+ }
3990
+ return r.default_kind;
3991
+ }
3992
+ if (a < 0) return r.start_kind;
3993
+ let u = 3 * a, d = i.prev_rule_lists[t[u]] ?? null;
3994
+ if (d === null) return r.default_kind;
3995
+ let f = t[u + 1], p = t[u + 2];
3996
+ for (let r = 0; r < d.length; r++) {
3997
+ let i = d[r];
3998
+ if (i.texts !== null) {
3999
+ let t = i.texts, n = !1;
4000
+ for (let r = 0; r < t.length; r++) if (ar(e, f, p, t[r])) {
4001
+ n = !0;
4002
+ break;
4003
+ }
4004
+ if (!n) continue;
4005
+ } else if (i.last_chars !== null && !dr(i.last_chars, e.charCodeAt(p - 1))) continue;
4006
+ if ((i.in_kind_ids === null || i.in_kind_ids.has(o[s].kind)) && (i.scan === null || mr(e, t, n, i.scan, a - 1))) return i.kind_id;
4007
+ }
4008
+ return r.default_kind;
4009
+ }
4010
+ function gr(e) {
4011
+ let t = (e) => e !== void 0 && e.length > 0 ? e.charCodeAt(0) : -1, n = [];
4012
+ if (e.at_start !== void 0) for (let t = 0; t < e.at_start.reset_chars.length; t++) n.push(e.at_start.reset_chars.charCodeAt(t));
4013
+ let r = (e.at_start?.transparent_texts_for_type ?? []).map((e) => ({
4014
+ type: e.type,
4015
+ texts: e.texts.map(ir)
4016
+ })), i = e.brace_kinds === void 0 ? null : sr(e.brace_kinds), a = null, o = e.at_start?.rearm_after_close_kinds;
4017
+ if (o !== void 0 && i !== null) {
4018
+ a = /* @__PURE__ */ new Set();
4019
+ for (let e of o) {
4020
+ let t = i.kind_names.indexOf(e);
4021
+ t >= 0 ? a.add(t) : U("frame_track", `rearm-kind:${e}`, `rearm_after_close_kinds kind "${e}" is not declared by the brace_kinds spec; it can never re-arm`);
4022
+ }
4023
+ } else o !== void 0 && i === null && U("frame_track", "rearm-without-kinds", "rearm_after_close_kinds is set but brace_kinds is not configured; re-arm never happens");
4024
+ let s = e.stmt_flags ?? [];
4025
+ s.length > 7 && U("frame_track", "stmt-flags-overflow", `stmt_flags declares ${s.length} flags but only 7 signal bits exist; extras are ignored`);
4026
+ let c = [], l = /* @__PURE__ */ new Map(), u = [], d = [], f = 0, p = (e, t) => {
4027
+ let n = `${e}\0${t}`, r = l.get(n);
4028
+ return r === void 0 && (r = {
4029
+ type: e,
4030
+ text: ir(t),
4031
+ arm_mask: 0,
4032
+ clear_mask: 0
4033
+ }, l.set(n, r)), r;
4034
+ };
4035
+ for (let e = 0; e < s.length && e < 7; e++) {
4036
+ let t = s[e], n = 1 << e;
4037
+ c.push(t.name);
4038
+ for (let e of t.arm.texts) p(t.arm.type, e).arm_mask |= n;
4039
+ if (t.clear !== void 0) for (let e of t.clear.texts) p(t.clear.type, e).clear_mask |= n;
4040
+ if (t.clear_chars !== void 0) for (let e = 0; e < t.clear_chars.length; e++) {
4041
+ let r = t.clear_chars.charCodeAt(e), i = u.indexOf(r);
4042
+ i >= 0 ? d[i] |= n : (u.push(r), d.push(n));
4043
+ }
4044
+ !0 === t.clear_on_brace_close && (f |= n);
4045
+ }
4046
+ return {
4047
+ punct_type: e.punct_type,
4048
+ paren_open: t(e.brackets.paren?.open),
4049
+ paren_close: t(e.brackets.paren?.close),
4050
+ brace_open: t(e.brackets.brace?.open),
4051
+ brace_close: t(e.brackets.brace?.close),
4052
+ bracket_open: t(e.brackets.bracket?.open),
4053
+ bracket_close: t(e.brackets.bracket?.close),
4054
+ at_start_reset_chars: n,
4055
+ at_start_transparent: e.at_start?.transparent_types ?? [],
4056
+ at_start_transparent_texts: r,
4057
+ at_start_enabled: e.at_start !== void 0,
4058
+ rearm_kind_ids: a,
4059
+ brace_kinds: i,
4060
+ ternary_qmark_type: e.ternary?.qmark.type ?? null,
4061
+ ternary_qmark_text: e.ternary === void 0 ? null : ir(e.ternary.qmark.text),
4062
+ ternary_colon_code: e.ternary !== void 0 && e.ternary.colon_char.length > 0 ? e.ternary.colon_char.charCodeAt(0) : -1,
4063
+ stmt_flag_names: c,
4064
+ stmt_rules: Array.from(l.values()),
4065
+ stmt_clear_char_codes: u,
4066
+ stmt_clear_char_masks: d,
4067
+ stmt_brace_close_clear_mask: f,
4068
+ signals_enabled: e.ternary !== void 0 || c.length > 0
4069
+ };
4070
+ }
4071
+ function _r(e, t, n, r, i, a, o, s) {
4072
+ let c = r.ternary_qmark_text, l = r.ternary_colon_code, u = i.stmt_lists, d = r.stmt_clear_char_codes, f = r.stmt_clear_char_masks, p = d.length, m = r.stmt_brace_close_clear_mask, h = r.paren_open, g = r.paren_close, _ = r.brace_open, v = r.brace_close, y = r.bracket_open, b = r.bracket_close, x = [0], S = [0], C = !1;
4073
+ for (let r = 0; r < n; r++) {
4074
+ let n = 3 * r, i = t[n], w = a[i], T = 0, E = !1;
4075
+ if (96 & w && (32 & w && c !== null && ar(e, t[n + 1], t[n + 2], c) && (x[x.length - 1]++, E = !0), 64 & w)) {
4076
+ let r = u[i];
4077
+ if (r !== null) {
4078
+ let i = t[n + 1], a = t[n + 2], o = e.charCodeAt(i), s = o < 128 ? r[o] : null;
4079
+ if (s !== null) {
4080
+ for (let t = 0; t < s.length; t++) if (ar(e, i, a, s[t].text)) {
4081
+ let e = S.length - 1;
4082
+ S[e] = (S[e] | s[t].arm_mask) & ~s[t].clear_mask;
4083
+ break;
4084
+ }
4085
+ }
4086
+ }
4087
+ }
4088
+ if (i === o) {
4089
+ let r = t[n + 1], i = t[n + 2];
4090
+ for (let t = r; t < i; t++) {
4091
+ let n = e.charCodeAt(t);
4092
+ if (n === h || n === _ || n === y) x.push(0), S.push(0);
4093
+ else if (n === g || n === b) x.length > 1 && (x.pop(), S.pop());
4094
+ else if (n === v) x.length > 1 && (x.pop(), S.pop(), S[S.length - 1] &= ~m);
4095
+ else if (n === l && x[x.length - 1] > 0) x[x.length - 1]--, C && t === r || (T |= 1);
4096
+ else if (p > 0) {
4097
+ for (let e = 0; e < p; e++) if (n === d[e]) {
4098
+ S[S.length - 1] &= ~f[e];
4099
+ break;
4100
+ }
4101
+ }
4102
+ }
4103
+ }
4104
+ s[r] = T | S[S.length - 1] << 1, 1 & w || (C = E);
4105
+ }
4106
+ }
4107
+ function vr(e) {
4108
+ let t = gr(e), n = t.brace_kinds === null ? rr : t.brace_kinds.kind_names, r = /* @__PURE__ */ new WeakMap(), i = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), o = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap();
4109
+ return (e, c) => {
4110
+ let l = r.get(c.token_types);
4111
+ l === void 0 && (l = c.token_types.indexOf(t.punct_type), r.set(c.token_types, l), l < 0 && H() && U("frame_track", `punct-type:${t.punct_type}`, `punct_type "${t.punct_type}" is not in the token vocabulary; no frames will be tracked`));
4112
+ let u = t.brace_kinds, d = null;
4113
+ u !== null && (d = a.get(c.token_types) ?? null, d === null && (d = lr(u, c.token_types), a.set(c.token_types, d)));
4114
+ let f = t.signals_enabled, p = null;
4115
+ f && (p = s.get(c.token_types) ?? null, p === null && (p = ur(t, c.token_types), s.set(c.token_types, p)));
4116
+ let m = null, h = null;
4117
+ if (t.at_start_enabled || u !== null || f) {
4118
+ if (m = i.get(c.token_types) ?? null, m === null) {
4119
+ let e = c.token_types;
4120
+ m = new Uint8Array(e.length);
4121
+ let n = e.indexOf("comment");
4122
+ n >= 0 && (m[n] |= 1);
4123
+ for (let n = 0; n < t.at_start_transparent.length; n++) {
4124
+ let r = e.indexOf(t.at_start_transparent[n]);
4125
+ r >= 0 && (m[r] |= 2);
4126
+ }
4127
+ for (let n of t.at_start_transparent_texts) {
4128
+ let t = e.indexOf(n.type);
4129
+ t >= 0 && (m[t] |= 4);
4130
+ }
4131
+ if (d !== null) {
4132
+ for (let e = 0; e < d.marker_lists.length; e++) d.marker_lists[e] !== null && (m[e] |= 8);
4133
+ d.angle_type_id >= 0 && (m[d.angle_type_id] |= 16);
4134
+ }
4135
+ if (p !== null) {
4136
+ p.qmark_type_id >= 0 && (m[p.qmark_type_id] |= 32);
4137
+ for (let e = 0; e < p.stmt_lists.length; e++) p.stmt_lists[e] !== null && (m[e] |= 64);
4138
+ }
4139
+ i.set(c.token_types, m);
4140
+ }
4141
+ if (t.at_start_transparent_texts.length > 0 && (h = o.get(c.token_types) ?? null, h === null)) {
4142
+ h = Array(c.token_types.length).fill(null);
4143
+ for (let e of t.at_start_transparent_texts) {
4144
+ let t = c.token_types.indexOf(e.type);
4145
+ t >= 0 && (h[t] = e.texts);
4146
+ }
4147
+ o.set(c.token_types, h);
4148
+ }
4149
+ }
4150
+ let g = t.at_start_enabled, _ = t.paren_open, v = t.paren_close, y = t.brace_open, b = t.brace_close, x = t.bracket_open, S = t.bracket_close, C = t.at_start_reset_chars, w = C.length, T = t.rearm_kind_ids, E = d === null ? null : d.marker_lists, { tokens: D } = c, O = D.length / 3, k = new Uint32Array(O), A = new Uint8Array(3 * O), j = g ? new Uint8Array(O) : tr, M = f ? new Uint8Array(O) : tr, N = [{
4151
+ bracket: -1,
4152
+ kind: 0,
4153
+ enter_idx: -1,
4154
+ parent: -1
4155
+ }], P = [0], F = [1], I = 0, L = 0, R = 0, z = 0, B = u === null ? nr : u.angle_reset_chars, ee = B.length, V = -1, te = -1, ne = u === null ? nr : u.marker_reset_chars, re = ne.length, ie = -1;
4156
+ for (let t = 0; t < O; t++) {
4157
+ let n = 3 * t, r = D[n], i = m === null ? 0 : m[r], a = !!(1 & i), o = !1;
4158
+ if (g) {
4159
+ if (o = !!(2 & i), !o && 4 & i && h !== null) {
4160
+ let t = h[r];
4161
+ if (t !== null) {
4162
+ let r = D[n + 1], i = D[n + 2];
4163
+ for (let n = 0; n < t.length; n++) if (ar(e, r, i, t[n])) {
4164
+ o = !0;
4165
+ break;
4166
+ }
4167
+ }
4168
+ }
4169
+ j[t] = F[F.length - 1];
4170
+ }
4171
+ if (24 & i && E !== null) {
4172
+ if (8 & i) {
4173
+ let t = E[r];
4174
+ if (t !== null) {
4175
+ let r = D[n + 1], i = D[n + 2];
4176
+ for (let n = 0; n < t.length; n++) if (ar(e, r, i, t[n].text)) {
4177
+ V = t[n].kind_id, te = L;
4178
+ break;
4179
+ }
4180
+ }
4181
+ }
4182
+ if (16 & i && u !== null) {
4183
+ let t = D[n + 1], r = D[n + 2];
4184
+ if (u.angle_open !== null && ar(e, t, r, u.angle_open)) z++;
4185
+ else {
4186
+ let n = u.angle_closes;
4187
+ for (let i = 0; i < n.length; i++) if (ar(e, t, r, n[i].text)) {
4188
+ z = Math.max(0, z - n[i].pops);
4189
+ break;
4190
+ }
4191
+ }
4192
+ }
4193
+ }
4194
+ if (l >= 0 && r === l) {
4195
+ let r = D[n + 1], i = D[n + 2];
4196
+ for (let n = r; n < i; n++) {
4197
+ let i = e.charCodeAt(n);
4198
+ if (i === _) {
4199
+ g && (F[F.length - 1] = 0);
4200
+ let e = N.length;
4201
+ N.push({
4202
+ bracket: 0,
4203
+ kind: 1,
4204
+ enter_idx: t,
4205
+ parent: P[P.length - 1]
4206
+ }), P.push(e), F.push(0), I++;
4207
+ } else if (i === v) P.length > 1 && (P.pop(), F.pop()), I > 0 && I--, g && (F[F.length - 1] = 0);
4208
+ else if (i === y) {
4209
+ g && (F[F.length - 1] = 0);
4210
+ let i = 0;
4211
+ u !== null && d !== null && (V >= 0 && z === 0 && I === 0 && R === 0 ? (i = V, V = -1) : V >= 0 && z > 0 ? i = u.pending_in_angles_kind >= 0 ? u.pending_in_angles_kind : u.default_kind : m !== null && (i = hr(e, D, m, u, d, ie, N, P[P.length - 1], l, n > r ? e.charCodeAt(n - 1) : -1)));
4212
+ let a = N.length;
4213
+ N.push({
4214
+ bracket: 1,
4215
+ kind: i,
4216
+ enter_idx: t,
4217
+ parent: P[P.length - 1]
4218
+ }), P.push(a), F.push(1), L++;
4219
+ } else if (i === b) {
4220
+ z = 0;
4221
+ let e = !1;
4222
+ if (P.length > 1 && (P.pop(), F.pop(), e = !0), L > 0 && L--, g) {
4223
+ let t = 0;
4224
+ e && T !== null && T.has(N[P[P.length - 1]].kind) && (t = 1), F[F.length - 1] = t;
4225
+ }
4226
+ } else if (i === x) {
4227
+ g && (F[F.length - 1] = 0);
4228
+ let e = N.length;
4229
+ N.push({
4230
+ bracket: 2,
4231
+ kind: 2,
4232
+ enter_idx: t,
4233
+ parent: P[P.length - 1]
4234
+ }), P.push(e), F.push(0), R++;
4235
+ } else if (i === S) P.length > 1 && (P.pop(), F.pop()), R > 0 && R--, g && (F[F.length - 1] = 0);
4236
+ else {
4237
+ for (let e = 0; e < ee; e++) if (i === B[e]) {
4238
+ z = 0;
4239
+ break;
4240
+ }
4241
+ if (V >= 0 && L === te) {
4242
+ for (let e = 0; e < re; e++) if (i === ne[e]) {
4243
+ V = -1, te = -1;
4244
+ break;
4245
+ }
4246
+ }
4247
+ if (g) {
4248
+ let e = !1;
4249
+ for (let t = 0; t < w; t++) if (i === C[t]) {
4250
+ e = !0;
4251
+ break;
4252
+ }
4253
+ F[F.length - 1] = +!!e;
4254
+ }
4255
+ }
4256
+ }
4257
+ } else !g || a || o || (F[F.length - 1] = 0);
4258
+ a || (ie = t), k[t] = P[P.length - 1], A[n] = I, A[n + 1] = L, A[n + 2] = R;
4259
+ }
4260
+ return f && m !== null && p !== null && _r(e, D, O, t, p, m, l, M), {
4261
+ tokens: c.tokens,
4262
+ token_types: c.token_types,
4263
+ overlays: c.overlays,
4264
+ frames: {
4265
+ active_frame: k,
4266
+ depths: A,
4267
+ at_start: j,
4268
+ frames: N,
4269
+ kind_names: n,
4270
+ signals: M,
4271
+ flag_names: t.stmt_flag_names
4272
+ }
4273
+ };
4274
+ };
4275
+ }
4276
+ function yr(e) {
4277
+ let t = [];
4278
+ if (e.refuse_if !== void 0) for (let n = 0; n < e.refuse_if.first_char_in.length; n++) t.push(e.refuse_if.first_char_in.charCodeAt(n));
4279
+ return (n, r) => {
4280
+ let { tokens: i, token_types: a } = r, o = a.slice(), s = o.indexOf(e.anchor_type);
4281
+ if (s < 0) return H() && U("merge_adjacent", `anchor-type:${e.anchor_type}`, `anchor type "${e.anchor_type}" is not in the token vocabulary; pass disabled`), {
4282
+ tokens: new Uint32Array(i),
4283
+ token_types: o
4284
+ };
4285
+ let c = [];
4286
+ for (let t of e.consume_next_types) {
4287
+ let e = o.indexOf(t);
4288
+ e >= 0 && c.push(e);
4289
+ }
4290
+ if (c.length === 0) return {
4291
+ tokens: new Uint32Array(i),
4292
+ token_types: o
4293
+ };
4294
+ let l = -1, u = 0;
4295
+ e.refuse_if !== void 0 && (l = o.indexOf(e.refuse_if.type_must_be), u = e.refuse_if.offset);
4296
+ let d = e.result_type ?? e.anchor_type, f = o.indexOf(d);
4297
+ f < 0 && (f = o.length, o.push(d));
4298
+ let p = i.length / 3, m = [];
4299
+ for (let e = 0; e < p; e++) {
4300
+ let r = 3 * e, a = i[r], o = i[r + 1], d = i[r + 2];
4301
+ if (a === s && e + 1 < p) {
4302
+ let r = i[3 * (e + 1)], a = !1;
4303
+ for (let e = 0; e < c.length; e++) if (c[e] === r) {
4304
+ a = !0;
4305
+ break;
4306
+ }
4307
+ if (a) {
4308
+ let r = !1;
4309
+ if (l >= 0 && t.length > 0) {
4310
+ let a = e + u;
4311
+ if (a < p && i[3 * a] === l) {
4312
+ let e = n.charCodeAt(i[3 * a + 1]);
4313
+ for (let n = 0; n < t.length; n++) if (e === t[n]) {
4314
+ r = !0;
4315
+ break;
4316
+ }
4317
+ }
4318
+ }
4319
+ if (!r) {
4320
+ m.push(f, o, i[3 * (e + 1) + 2]), e++;
4321
+ continue;
4322
+ }
4323
+ }
4324
+ }
4325
+ m.push(a, o, d);
4326
+ }
4327
+ return {
4328
+ tokens: new Uint32Array(m),
4329
+ token_types: o
4330
+ };
4331
+ };
4332
+ }
4333
+ function br(e) {
4334
+ let t = e.post_open_required === void 0 ? null : new Set(e.post_open_required.text_in);
4335
+ return Un((n, r, i, a) => {
4336
+ let o = r.length / 3;
4337
+ if (o === 0) return;
4338
+ let s = i.indexOf(e.open_type), c = i.indexOf(e.close_type);
4339
+ if (s < 0 || c < 0) {
4340
+ if (H()) {
4341
+ let t = s < 0 ? e.open_type : e.close_type;
4342
+ U("matched_bracket", `endpoint-type:${t}`, `endpoint type "${t}" is not in the token vocabulary; pass disabled`);
4343
+ }
4344
+ return;
4345
+ }
4346
+ let l = i.indexOf("comment"), u = e.post_open_required === void 0 ? -1 : i.indexOf(e.post_open_required.type);
4347
+ if (e.post_open_required !== void 0 && u < 0) return void (H() && U("matched_bracket", `post-open-type:${e.post_open_required.type}`, `post_open_required type "${e.post_open_required.type}" is not in the token vocabulary; pass disabled`));
4348
+ let d = e.retag_open_to === void 0 ? s : i.indexOf(e.retag_open_to), f = e.retag_close_to === void 0 ? c : i.indexOf(e.retag_close_to);
4349
+ if (d < 0 || f < 0) {
4350
+ if (H()) {
4351
+ let t = d < 0 ? e.retag_open_to : e.retag_close_to;
4352
+ U("matched_bracket", `retag-type:${t}`, `retag target "${t}" is not in the token vocabulary; pass disabled`);
4353
+ }
4354
+ return;
4355
+ }
4356
+ let p = bn(e.retag_open_to ?? e.open_type), m = bn(e.retag_close_to ?? e.close_type), h = (e) => n.slice(r[3 * e + 1], r[3 * e + 2]), g = (e) => {
4357
+ for (let t = e; t < o; t++) if (r[3 * t] !== l) return t;
4358
+ return -1;
4359
+ };
4360
+ for (let n = 0; n < o; n++) if (r[3 * n] === s && h(n) === e.open_text) {
4361
+ if (t !== null) {
4362
+ let e = g(n + 1);
4363
+ if (e === -1 || r[3 * e] !== u || !t.has(h(e))) continue;
4364
+ }
4365
+ for (let t = n + 1; t < o; t++) if (r[3 * t] === c && h(t) === e.close_text) {
4366
+ d !== s && a.emit(n, d, p), f !== c && a.emit(t, f, m), n = t;
4367
+ break;
4368
+ }
4369
+ }
4370
+ });
4371
+ }
4372
+ function xr(e, t) {
4373
+ let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
4374
+ for (let i of t.styles) {
4375
+ let t = e.indexOf(i.open_type), a = e.indexOf(i.close_type);
4376
+ t >= 0 && n.set(t, i.style_name), a >= 0 && r.set(a, i.style_name);
4377
+ }
4378
+ return {
4379
+ by_open_id: n,
4380
+ by_close_id: r
4381
+ };
4382
+ }
4383
+ function Sr(e) {
4384
+ return (t, n) => {
4385
+ let { tokens: r, token_types: i } = n, a = i.slice(), o = xr(a, e);
4386
+ if (o.by_open_id.size === 0 && o.by_close_id.size === 0) return H() && U("compound_compose", "no-styles", "none of the configured open/close marker types are in the token vocabulary; pass disabled"), n;
4387
+ let s = /* @__PURE__ */ new Map();
4388
+ for (let e = 0; e < a.length; e++) s.set(a[e], e);
4389
+ let c = (e) => {
4390
+ let t = s.get(e);
4391
+ return t === void 0 && (t = a.length, a.push(e), s.set(e, t)), t;
4392
+ }, l = (t, n) => t.length === 0 ? n : e.dedup_against_base && t.indexOf(n) !== -1 ? t.join(e.join_separator) : t.join(e.join_separator) + e.join_separator + n, u = new Uint32Array(r.length), d = [], f = 0;
4393
+ for (let n = 0; n < r.length; n += 3) {
4394
+ let i = r[n], s = a[i], p = r[n + 1], m = r[n + 2];
4395
+ if (e.auto_pop_on_newline && d.length > 0) {
4396
+ let e = t.indexOf("\n", f);
4397
+ e !== -1 && e < p && (d.length = 0);
4398
+ }
4399
+ let h, g = o.by_open_id.get(i), _ = o.by_close_id.get(i);
4400
+ if (g !== void 0) {
4401
+ let t = d.lastIndexOf(g);
4402
+ t === -1 ? (d.push(g), h = d.join(e.join_separator)) : (h = d.join(e.join_separator), d.length = t);
4403
+ } else if (_ !== void 0) {
4404
+ h = d.join(e.join_separator);
4405
+ let t = d.lastIndexOf(_);
4406
+ t !== -1 && (d.length = t);
4407
+ } else h = l(d, s);
4408
+ u[n] = c(h), u[n + 1] = p, u[n + 2] = m, f = m;
4409
+ }
4410
+ return {
4411
+ tokens: u,
4412
+ token_types: a,
4413
+ overlays: n.overlays,
4414
+ frames: n.frames
4415
+ };
4416
+ };
4417
+ }
4418
+ function Cr(e) {
4419
+ return typeof (typeof e == "function" ? e : e.reclassifier).__claim == "function";
4420
+ }
4421
+ function* wr(e) {
4422
+ if (e.length <= 1) yield e.slice();
4423
+ else for (let t = 0; t < e.length; t++) {
4424
+ let n = [...e.slice(0, t), ...e.slice(t + 1)];
4425
+ for (let r of wr(n)) yield [e[t], ...r];
4426
+ }
4427
+ }
4428
+ function Tr(e) {
4429
+ let t = [];
4430
+ for (let n of e) {
4431
+ let e = Cr(n), r = t[t.length - 1];
4432
+ r && r.is_claim === e ? r.entries.push(n) : t.push({
4433
+ is_claim: e,
4434
+ entries: [n]
4435
+ });
4436
+ }
4437
+ let n = t.map((e) => {
4438
+ if (!e.is_claim || e.entries.length <= 1) return [e.entries];
4439
+ let t = [];
4440
+ for (let n of wr(e.entries)) t.push(n);
4441
+ return t;
4442
+ }), r = [[]];
4443
+ for (let e of n) {
4444
+ let t = [];
4445
+ for (let n of r) for (let r of e) t.push([...n, ...r]);
4446
+ r = t;
4447
+ }
4448
+ return r;
4449
+ }
4450
+ function Er(e, t) {
4451
+ let n = [], r = e.tokens.length / 3;
4452
+ for (let i = 0; i < r; i++) {
4453
+ let r = e.tokens[3 * i + 1], a = e.tokens[3 * i + 2];
4454
+ n.push({
4455
+ type: e.token_types[e.tokens[3 * i]],
4456
+ value: t.slice(r, a),
4457
+ start: r,
4458
+ end: a
4459
+ });
4460
+ }
4461
+ return n;
4462
+ }
4463
+ function Dr(e) {
4464
+ let t = /* @__PURE__ */ new Map();
4465
+ for (let n = 0; n < e.length; n++) {
4466
+ let r = e[n], i = t.get(r.token_idx);
4467
+ (i === void 0 || r.precedence > i.precedence) && t.set(r.token_idx, r);
4468
+ }
4469
+ return Array.from(t.values());
4470
+ }
4471
+ function Or(e, t, n) {
4472
+ let r = [], i = new Uint32Array(t.tokens), a = t.token_types.slice(), o = [], s = [], c = () => {
4473
+ if (o.length === 0) return;
4474
+ let t = [];
4475
+ for (let n = 0; n < o.length; n++) {
4476
+ let c = [];
4477
+ o[n](e, i, a, { emit: (e, t, n) => {
4478
+ c.push({
4479
+ token_idx: e,
4480
+ type_id: t,
4481
+ precedence: n
4482
+ });
4483
+ } }), t.push(c.slice()), r.push({
4484
+ pass_index: s[n],
4485
+ claims: c.slice()
4486
+ });
4487
+ }
4488
+ let n = [];
4489
+ for (let e of t) for (let t of e) n.push(t);
4490
+ let c = Dr(n);
4491
+ for (let e of c) i[3 * e.token_idx] = e.type_id;
4492
+ o.length = 0, s.length = 0;
4493
+ }, l = 0;
4494
+ for (let t of n) {
4495
+ let n = typeof t == "function" ? t : t.reclassifier, r = n.__claim;
4496
+ if (typeof r == "function") {
4497
+ o.push(r), s.push(l), l++;
4498
+ continue;
4499
+ }
4500
+ c();
4501
+ let u = n(e, {
4502
+ tokens: i,
4503
+ token_types: a
4504
+ });
4505
+ i = new Uint32Array(u.tokens), a = u.token_types, l++;
4506
+ }
4507
+ return c(), {
4508
+ claims_per_pass: r,
4509
+ token_types: a
4510
+ };
4511
+ }
4512
+ function kr(e, t, n) {
4513
+ let { claims_per_pass: r, token_types: i } = n, a = /* @__PURE__ */ new Map();
4514
+ for (let { pass_index: e, claims: t } of r) for (let n of t) {
4515
+ let t = a.get(n.token_idx);
4516
+ t || (t = [], a.set(n.token_idx, t)), t.push({
4517
+ pass_index: e,
4518
+ type_id: n.type_id
4519
+ });
4520
+ }
4521
+ let o = [];
4522
+ for (let [n, r] of a) new Set(r.map((e) => e.type_id)).size <= 1 || o.push({
4523
+ token_idx: n,
4524
+ value: e.slice(t.tokens[3 * n + 1], t.tokens[3 * n + 2]),
4525
+ contenders: r.map((e) => ({
4526
+ pass_index: e.pass_index,
4527
+ type_name: i[e.type_id] ?? `#${e.type_id}`
4528
+ }))
4529
+ });
4530
+ return o.sort((e, t) => e.token_idx - t.token_idx), o;
4531
+ }
4532
+ function Ar(e) {
4533
+ let t = Array(128).fill(null), n = null, r = Infinity, i = 0;
4534
+ for (let a of e) {
4535
+ if (a.length === 0) continue;
4536
+ a.length < r && (r = a.length), a.length > i && (i = a.length);
4537
+ let e = a.charCodeAt(0);
4538
+ if (e >= 128) {
4539
+ n ??= /* @__PURE__ */ new Set(), n.add(a);
4540
+ continue;
4541
+ }
4542
+ let o = new Uint16Array(a.length);
4543
+ for (let e = 0; e < a.length; e++) o[e] = a.charCodeAt(e);
4544
+ let s = t[e];
4545
+ s === null && (s = [], t[e] = s), s.push(o);
4546
+ }
4547
+ return {
4548
+ buckets: t,
4549
+ wide: n,
4550
+ min_len: r === Infinity ? 1 : r,
4551
+ max_len: i
4552
+ };
4553
+ }
4554
+ function jr(e, t, n, r) {
4555
+ let i = r - n;
4556
+ if (i < e.min_len || i > e.max_len) return !1;
4557
+ let a = t.charCodeAt(n);
4558
+ if (a >= 128) return e.wide !== null && e.wide.has(t.slice(n, r));
4559
+ let o = e.buckets[a];
4560
+ if (o === null) return !1;
4561
+ for (let e = 0; e < o.length; e++) {
4562
+ let r = o[e];
4563
+ if (r.length !== i) continue;
4564
+ let a = !0;
4565
+ for (let e = 1; e < i; e++) if (t.charCodeAt(n + e) !== r[e]) {
4566
+ a = !1;
4567
+ break;
4568
+ }
4569
+ if (a) return !0;
4570
+ }
4571
+ return !1;
4572
+ }
4573
+ function Mr(e, t, n) {
4574
+ let r = Ar(n);
4575
+ return Un((n, i, a, o) => {
4576
+ let s = a.indexOf(e);
4577
+ if (s < 0) return void (H() && U("fidelity", `source-type:${e}`, `source type "${e}" is not in the token vocabulary; pass disabled`));
4578
+ let c = a.indexOf(t);
4579
+ c < 0 && (c = a.length, a.push(t));
4580
+ let l = bn(t), u = i.length / 3;
4581
+ for (let e = 0; e < u; e++) i[3 * e] === s && jr(r, n, i[3 * e + 1], i[3 * e + 2]) && o.emit(e, c, l);
4582
+ });
4583
+ }
4584
+ function Nr(e, t) {
4585
+ return Un((n, r, i, a) => {
4586
+ let o = i.indexOf(e);
4587
+ if (o < 0) return void (H() && U("fidelity", `source-type:${e}`, `source type "${e}" is not in the token vocabulary; pass disabled`));
4588
+ let s = i.indexOf(t);
4589
+ s < 0 && (s = i.length, i.push(t));
4590
+ let c = bn(t), l = r.length / 3;
4591
+ for (let e = 0; e < l; e++) {
4592
+ if (r[3 * e] !== o) continue;
4593
+ let t = r[3 * e + 1], i = r[3 * e + 2], l = n.charCodeAt(t);
4594
+ if (!(l < 65 || l > 90)) {
4595
+ if (i - t > 1) {
4596
+ let e = !1;
4597
+ for (let r = t; r < i; r++) {
4598
+ let t = n.charCodeAt(r);
4599
+ if (t >= 97 && t <= 122) {
4600
+ e = !0;
4601
+ break;
4602
+ }
4603
+ }
4604
+ if (!e) continue;
4605
+ }
4606
+ a.emit(e, s, c);
4607
+ }
4608
+ }
4609
+ });
4610
+ }
4611
+ function Pr(e) {
4612
+ return e >= 65 && e <= 90 || e >= 48 && e <= 57 || e === 95;
4613
+ }
4614
+ function Fr(e, t) {
4615
+ return Un((n, r, i, a) => {
4616
+ let o = i.indexOf(e);
4617
+ if (o < 0) return void (H() && U("fidelity", `source-type:${e}`, `source type "${e}" is not in the token vocabulary; pass disabled`));
4618
+ let s = i.indexOf(t);
4619
+ s < 0 && (s = i.length, i.push(t));
4620
+ let c = bn(t), l = r.length / 3;
4621
+ for (let e = 0; e < l; e++) {
4622
+ if (r[3 * e] !== o) continue;
4623
+ let t = r[3 * e + 1], i = r[3 * e + 2];
4624
+ if (i - t < 2) continue;
4625
+ let l = n.charCodeAt(t);
4626
+ if (l < 65 || l > 90) continue;
4627
+ let u = !0;
4628
+ for (let e = t + 1; e < i; e++) if (!Pr(n.charCodeAt(e))) {
4629
+ u = !1;
4630
+ break;
4631
+ }
4632
+ u && a.emit(e, s, c);
4633
+ }
4634
+ });
4635
+ }
4636
+ function Ir(e = "identifier", t = "function", n = { plain: !0 }, r) {
4637
+ let i = [], a = lt("(", ")");
4638
+ return n.plain && i.push(a), n.macro && i.push(at(it("builtin", ["!"]), a)), n.generic_fn && i.push(at(lt("<", ">"), a)), n.turbofish && i.push(at(it("punctuation", ["::"]), lt("<", ">"), a)), i.length === 0 ? (e, t) => t : jn([{
4639
+ anchor: e,
4640
+ when: i.length === 1 ? i[0] : ot(...i),
4641
+ rewrite: t
4642
+ }], r);
4643
+ }
4644
+ var Lr = (e) => ({
4645
+ __range: !0,
4646
+ pairs: e
4647
+ });
4648
+ var Rr = (e) => typeof e == "object" && !!e && !0 === e.__range;
4649
+ var zr = Lr([["a", "z"]]);
4650
+ var Br = Lr([["A", "Z"]]);
4651
+ var Vr = Lr([["a", "z"], ["A", "Z"]]);
4652
+ var Hr = Lr([["0", "9"]]);
4653
+ var Ur = Lr([
4654
+ ["a", "z"],
4655
+ ["A", "Z"],
4656
+ ["0", "9"]
4657
+ ]);
4658
+ var Wr = Lr([
4659
+ ["0", "9"],
4660
+ ["a", "f"],
4661
+ ["A", "F"]
4662
+ ]);
4663
+ var Gr = (e) => ({ state: e });
4664
+ var Kr = (e) => ({
4665
+ state: e,
4666
+ exit: !0
4667
+ });
4668
+ var qr = () => ({ exit: !0 });
4669
+ var Jr = (e) => e ? Kr(e) : {};
4670
+ var Yr = (e, t, n) => {
4671
+ let r = Array.isArray(e) ? e : [e], i = [], a = [];
4672
+ for (let e of r) Rr(e) ? a.push(...e.pairs) : i.push(e);
4673
+ let o = { ...n };
4674
+ return t != null && (o.token = t), i.length === 1 ? o.match = i[0] : i.length > 1 && (o.match = i), a.length && (o.range = a), o;
4675
+ };
4676
+ var Xr = (e, t, n = {}) => Yr(e, t, n);
4677
+ var Zr = (e, t = {}) => Yr(e, null, t);
4678
+ var Qr = (e, t = {}, n = "keyword") => ({
4679
+ match: e,
4680
+ boundary: !0,
4681
+ token: n,
4682
+ ...t
4683
+ });
4684
+ var $r = (e, t, n, r = {}) => ({
4685
+ match_within: {
4686
+ start: e,
4687
+ end: t,
4688
+ ...r
4689
+ },
4690
+ token: n
4691
+ });
4692
+ var ei = (e = {}) => ({
4693
+ any: !0,
4694
+ ...e
4695
+ });
4696
+ //#endregion
4697
+ export { pt as $, Wr as A, dt as B, Sr as C, Ur as D, Un as E, Zr as F, ge as G, er as H, at as I, kr as J, it as K, bn as L, Xr as M, Yn as N, Vn as O, Ze as P, ot as Q, br as R, Qr as S, U as T, et as U, ei as V, ft as W, n as X, lt as Y, nt as Z, Nn as _, Er as a, te as at, Pn as b, H as c, vn as ct, Ir as d, zn as dt, qn as et, Jn as f, zr as ft, Mr as g, Lr as h, v$1 as ht, Br as i, st as it, Xe as j, Vr as k, Hn as l, vr as lt, Kr as m, g$1 as mt, $n as n, r as nt, Fr as o, tt as ot, Jr as p, _$1 as pt, jn as q, $r as r, rt, Gr as s, ut as st, $e as t, qr as tt, Hr as u, yr as ut, Nr as v, Tr as w, Qe as x, Or as y, ct as z };