desmost 0.7.3 → 0.8.1

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 (167) hide show
  1. package/dist/compiler/compile.d.ts +25 -1
  2. package/dist/compiler/compile.d.ts.map +1 -1
  3. package/dist/compiler/compile.js +32 -2
  4. package/dist/compiler/compile.js.map +1 -1
  5. package/dist/compiler/evaluate.d.ts +11 -0
  6. package/dist/compiler/evaluate.d.ts.map +1 -1
  7. package/dist/compiler/evaluate.js +15 -11
  8. package/dist/compiler/evaluate.js.map +1 -1
  9. package/dist/compiler/format.d.ts +13 -0
  10. package/dist/compiler/format.d.ts.map +1 -1
  11. package/dist/compiler/format.js +23 -0
  12. package/dist/compiler/format.js.map +1 -1
  13. package/dist/compiler/index.d.ts.map +1 -1
  14. package/dist/compiler/index.js.map +1 -1
  15. package/dist/compiler/options.d.ts +79 -0
  16. package/dist/compiler/options.d.ts.map +1 -1
  17. package/dist/compiler/options.js +18 -11
  18. package/dist/compiler/options.js.map +1 -1
  19. package/dist/decompiler/decompile.d.ts +20 -0
  20. package/dist/decompiler/decompile.d.ts.map +1 -0
  21. package/dist/decompiler/decompile.js +32 -0
  22. package/dist/decompiler/decompile.js.map +1 -0
  23. package/dist/decompiler/emit.d.ts +10 -0
  24. package/dist/decompiler/emit.d.ts.map +1 -0
  25. package/dist/decompiler/emit.js +37 -0
  26. package/dist/decompiler/emit.js.map +1 -0
  27. package/dist/decompiler/extract.d.ts +14 -0
  28. package/dist/decompiler/extract.d.ts.map +1 -0
  29. package/dist/decompiler/extract.js +63 -0
  30. package/dist/decompiler/extract.js.map +1 -0
  31. package/dist/decompiler/format.d.ts +3 -0
  32. package/dist/decompiler/format.d.ts.map +1 -0
  33. package/dist/decompiler/format.js +14 -0
  34. package/dist/decompiler/format.js.map +1 -0
  35. package/dist/decompiler/index.d.ts +2 -0
  36. package/dist/decompiler/index.d.ts.map +1 -0
  37. package/dist/decompiler/index.js +2 -0
  38. package/dist/decompiler/index.js.map +1 -0
  39. package/dist/desmos.d.ts +3 -0
  40. package/dist/desmos.d.ts.map +1 -1
  41. package/dist/desmos.js +3 -0
  42. package/dist/desmos.js.map +1 -1
  43. package/dist/errors.d.ts +18 -4
  44. package/dist/errors.d.ts.map +1 -1
  45. package/dist/errors.js +13 -1
  46. package/dist/errors.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.internal.d.ts +2 -1
  50. package/dist/index.internal.d.ts.map +1 -1
  51. package/dist/index.internal.js +2 -1
  52. package/dist/index.internal.js.map +1 -1
  53. package/dist/index.js +1 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/magic/expr/index.js.map +1 -1
  56. package/dist/magic/expr/latex.d.ts.map +1 -1
  57. package/dist/magic/expr/latex.js +1 -0
  58. package/dist/magic/expr/latex.js.map +1 -1
  59. package/dist/magic/expr/text.d.ts.map +1 -1
  60. package/dist/magic/expr/text.js +1 -0
  61. package/dist/magic/expr/text.js.map +1 -1
  62. package/dist/magic/global/dark-mode.d.ts.map +1 -1
  63. package/dist/magic/global/dark-mode.js.map +1 -1
  64. package/dist/magic/global/desmos.d.ts +3 -1
  65. package/dist/magic/global/desmos.d.ts.map +1 -1
  66. package/dist/magic/global/desmos.js.map +1 -1
  67. package/dist/magic/global/index.d.ts +3 -0
  68. package/dist/magic/global/index.d.ts.map +1 -1
  69. package/dist/magic/global/index.js +3 -0
  70. package/dist/magic/global/index.js.map +1 -1
  71. package/dist/magic/global/viewport.d.ts.map +1 -1
  72. package/dist/magic/global/viewport.js +0 -1
  73. package/dist/magic/global/viewport.js.map +1 -1
  74. package/dist/magic/incantation.d.ts +44 -0
  75. package/dist/magic/incantation.d.ts.map +1 -1
  76. package/dist/magic/incantation.js +38 -0
  77. package/dist/magic/incantation.js.map +1 -1
  78. package/dist/magic/index.d.ts +7 -0
  79. package/dist/magic/index.d.ts.map +1 -1
  80. package/dist/magic/index.js +7 -0
  81. package/dist/magic/index.js.map +1 -1
  82. package/dist/magic/local/anim.d.ts.map +1 -1
  83. package/dist/magic/local/anim.js +1 -0
  84. package/dist/magic/local/anim.js.map +1 -1
  85. package/dist/magic/local/colour.d.ts.map +1 -1
  86. package/dist/magic/local/colour.js.map +1 -1
  87. package/dist/magic/local/dashed.d.ts.map +1 -1
  88. package/dist/magic/local/dashed.js.map +1 -1
  89. package/dist/magic/local/fill.d.ts.map +1 -1
  90. package/dist/magic/local/fill.js.map +1 -1
  91. package/dist/magic/local/hide.d.ts.map +1 -1
  92. package/dist/magic/local/hide.js.map +1 -1
  93. package/dist/magic/local/index.js.map +1 -1
  94. package/dist/magic/local/label.d.ts.map +1 -1
  95. package/dist/magic/local/label.js +1 -0
  96. package/dist/magic/local/label.js.map +1 -1
  97. package/dist/magic/local/line.d.ts.map +1 -1
  98. package/dist/magic/local/line.js.map +1 -1
  99. package/dist/magic/local/no-line.d.ts.map +1 -1
  100. package/dist/magic/local/no-line.js.map +1 -1
  101. package/dist/magic/local/point.d.ts.map +1 -1
  102. package/dist/magic/local/point.js.map +1 -1
  103. package/dist/magic/local/secret.d.ts.map +1 -1
  104. package/dist/magic/local/secret.js.map +1 -1
  105. package/dist/magic/local/slider.d.ts.map +1 -1
  106. package/dist/magic/local/slider.js +1 -0
  107. package/dist/magic/local/slider.js.map +1 -1
  108. package/dist/parser/ast.d.ts +9 -0
  109. package/dist/parser/ast.d.ts.map +1 -1
  110. package/dist/parser/ast.js +1 -0
  111. package/dist/parser/ast.js.map +1 -1
  112. package/dist/parser/desmost-parser.d.ts +101 -1
  113. package/dist/parser/desmost-parser.d.ts.map +1 -1
  114. package/dist/parser/desmost-parser.js +129 -2
  115. package/dist/parser/desmost-parser.js.map +1 -1
  116. package/dist/parser/generic-parser.d.ts +47 -0
  117. package/dist/parser/generic-parser.d.ts.map +1 -1
  118. package/dist/parser/generic-parser.js +50 -0
  119. package/dist/parser/generic-parser.js.map +1 -1
  120. package/dist/parser/index.d.ts.map +1 -1
  121. package/dist/parser/index.js.map +1 -1
  122. package/dist/utils.d.ts.map +1 -1
  123. package/dist/utils.js.map +1 -1
  124. package/package.json +5 -2
  125. package/src/compiler/compile.ts +124 -124
  126. package/src/compiler/evaluate.ts +86 -118
  127. package/src/compiler/format.ts +39 -6
  128. package/src/compiler/index.ts +0 -7
  129. package/src/compiler/options.ts +83 -77
  130. package/src/compiler/readme.md +5 -0
  131. package/src/decompiler/decompile.ts +48 -0
  132. package/src/decompiler/emit.ts +47 -0
  133. package/src/decompiler/extract.ts +100 -0
  134. package/src/decompiler/format.ts +20 -0
  135. package/src/decompiler/index.ts +1 -0
  136. package/src/decompiler/readme.md +34 -0
  137. package/src/desmos.ts +6 -6
  138. package/src/errors.ts +19 -19
  139. package/src/index.internal.ts +3 -1
  140. package/src/index.ts +1 -0
  141. package/src/magic/expr/index.ts +2 -2
  142. package/src/magic/expr/latex.ts +16 -16
  143. package/src/magic/expr/text.ts +13 -13
  144. package/src/magic/global/dark-mode.ts +10 -10
  145. package/src/magic/global/desmos.ts +18 -15
  146. package/src/magic/global/index.ts +8 -3
  147. package/src/magic/global/viewport.ts +19 -20
  148. package/src/magic/incantation.ts +94 -94
  149. package/src/magic/local/anim.ts +10 -10
  150. package/src/magic/local/colour.ts +26 -26
  151. package/src/magic/local/dashed.ts +9 -9
  152. package/src/magic/local/fill.ts +12 -12
  153. package/src/magic/local/hide.ts +9 -9
  154. package/src/magic/local/index.ts +11 -11
  155. package/src/magic/local/label.ts +51 -51
  156. package/src/magic/local/line.ts +16 -16
  157. package/src/magic/local/no-line.ts +9 -9
  158. package/src/magic/local/point.ts +16 -16
  159. package/src/magic/local/secret.ts +9 -9
  160. package/src/magic/local/slider.ts +15 -15
  161. package/src/magic/readme.md +5 -0
  162. package/src/parser/ast.ts +46 -46
  163. package/src/parser/desmost-parser.ts +550 -550
  164. package/src/parser/generic-parser.ts +176 -176
  165. package/src/parser/index.ts +0 -4
  166. package/src/parser/readme.md +21 -0
  167. package/src/utils.ts +33 -33
@@ -3,12 +3,19 @@ import { Ast } from "./ast.js";
3
3
  import { NO_MATCH, UnrecoverableError } from "../errors.js";
4
4
  import * as utils from "../utils.js";
5
5
  import { Incantation, ArgIncantation, GLOBAL_INCANTATIONS, LOCAL_INCANTATIONS, EXPR_INCANTATIONS } from "../magic/index.js";
6
+ /**
7
+ * A stateful lazy parser for Desmost.
8
+ */
6
9
  export class DesmostParser extends GenericParser {
7
10
  options;
8
11
  constructor(source, options) {
9
12
  super(source + "\n");
10
13
  this.options = options;
11
14
  }
15
+ // == TOP-LEVEL == //
16
+ /**
17
+ * Parse the next semantic block of source code, producing an `Ast` object, or `null` if the parser has successfully reached the end of the source code.
18
+ */
12
19
  parse_next() {
13
20
  this.consume_spaces();
14
21
  if (this.out_of_bounds()) {
@@ -16,19 +23,23 @@ export class DesmostParser extends GenericParser {
16
23
  }
17
24
  if (this.current === "%") {
18
25
  if (this.options?.ignore_comments) {
26
+ // ignore comment
19
27
  this.parse_line();
20
28
  this.consume_end_of_block();
21
29
  return this.parse_next();
22
30
  }
23
31
  else {
32
+ // comment
24
33
  var expr = this.parse_comment();
25
34
  }
26
35
  }
27
36
  else if (this.current === "/") {
28
37
  let r = this.parse_pre_sep();
38
+ // 1 global
29
39
  if ("global" in r) {
30
40
  return r.global;
31
41
  }
42
+ // 1+ locals + 1 expr
32
43
  let incantations = r.local;
33
44
  if (incantations.length > 0) {
34
45
  this.parse_sep();
@@ -39,17 +50,26 @@ export class DesmostParser extends GenericParser {
39
50
  }
40
51
  }
41
52
  else {
53
+ // 1 expr
42
54
  var expr = this.parse_post_sep();
43
55
  }
44
56
  this.consume_end_of_block();
45
57
  return expr;
46
58
  }
59
+ /**
60
+ * Parse Desmost syntax before the `::` separator, which may be:
61
+ *
62
+ * - 1 global incantation
63
+ * - 1+ local incantations
64
+ */
47
65
  parse_pre_sep() {
66
+ // 1 global incantation
48
67
  let r = this.try_parse_global_incantation();
49
68
  if (r !== NO_MATCH) {
50
69
  this.consume_end_of_block(`Received excess input after global incantation /${r.incantation.identifier}`);
51
70
  return { global: r };
52
71
  }
72
+ // 1+ local incantations
53
73
  let incantations = [];
54
74
  while (this.current === "/") {
55
75
  let invocation = this.try_parse_local_incantation();
@@ -59,24 +79,37 @@ export class DesmostParser extends GenericParser {
59
79
  }
60
80
  return { local: incantations };
61
81
  }
82
+ /**
83
+ * Parse the Desmost `::` separator.
84
+ */
62
85
  parse_sep() {
63
86
  this.consume_whitespace();
64
87
  this.consume("::", `Expected \`::\` separator between local incantations and expression, but found: \`${this.preview()}\``);
65
88
  this.consume_whitespace();
66
89
  }
90
+ /**
91
+ * Parse Desmost syntax after the `::` separator, which may be:
92
+ *
93
+ * - 1 line of LaTeX
94
+ * - 1 expression incantation
95
+ */
67
96
  parse_post_sep() {
68
97
  this.consume_spaces();
69
98
  switch (this.current) {
99
+ // empty block
70
100
  case "\n":
71
101
  return {
72
102
  kind: Ast.Kind.EXPRESSION,
73
103
  data: { latex: ` ` },
74
104
  incantations: [],
75
105
  };
106
+ // expr incantation
76
107
  case "/":
77
108
  let incantation = this.try_parse_expr_incantation();
78
109
  if (incantation !== NO_MATCH)
79
110
  return incantation;
111
+ // FALLTHROUGH: to fallback on plain LaTeX
112
+ // plain LaTeX
80
113
  default:
81
114
  return {
82
115
  kind: Ast.Kind.EXPRESSION,
@@ -94,6 +127,10 @@ export class DesmostParser extends GenericParser {
94
127
  incantations: [],
95
128
  };
96
129
  }
130
+ // == LOW-LEVEL == //
131
+ /**
132
+ * Parse a single line of arbitrary text.
133
+ */
97
134
  parse_line() {
98
135
  let init = this.i;
99
136
  while (!this.out_of_bounds() && this.current !== "\n") {
@@ -101,6 +138,9 @@ export class DesmostParser extends GenericParser {
101
138
  }
102
139
  return this.source.slice(init, this.i).trim();
103
140
  }
141
+ /**
142
+ * Attempt to parse a global incantation invocation.
143
+ */
104
144
  try_parse_global_incantation() {
105
145
  let init = this.i;
106
146
  if (this.try_consume("/") === NO_MATCH)
@@ -124,12 +164,16 @@ export class DesmostParser extends GenericParser {
124
164
  }
125
165
  }
126
166
  this.consume_spaces();
167
+ // @ts-expect-error: FIXME
127
168
  return {
128
169
  kind: Ast.Kind.INCANTATION_INVOCATION,
129
170
  incantation,
130
171
  arg_raw: data,
131
172
  };
132
173
  }
174
+ /**
175
+ * Attempt to parse a local incantation invocation.
176
+ */
133
177
  try_parse_local_incantation() {
134
178
  let init = this.i;
135
179
  if (this.try_consume("/") === NO_MATCH)
@@ -153,18 +197,23 @@ export class DesmostParser extends GenericParser {
153
197
  }
154
198
  }
155
199
  this.consume_whitespace();
200
+ // @ts-expect-error: FIXME
156
201
  return {
157
202
  kind: Ast.Kind.INCANTATION_INVOCATION,
158
203
  incantation,
159
204
  arg_raw,
160
205
  };
161
206
  }
207
+ /**
208
+ * Attempt to parse an expression incantation invocation.
209
+ */
162
210
  try_parse_expr_incantation() {
163
211
  let init = this.i;
164
212
  if (this.try_consume("/") === NO_MATCH)
165
213
  return NO_MATCH;
166
214
  let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
167
215
  if (incantation === NO_MATCH) {
216
+ // TODO maybe flag to user
168
217
  this.i = init;
169
218
  return NO_MATCH;
170
219
  }
@@ -177,8 +226,12 @@ export class DesmostParser extends GenericParser {
177
226
  incantations: [],
178
227
  };
179
228
  }
229
+ /**
230
+ * Attempt to parse an incantation identifier.
231
+ */
180
232
  try_parse_identifier(incantations) {
181
233
  for (let incantation of incantations) {
234
+ // yeah the duplication here is a little meh, unfortunately needing `return` means we can't extract it into a helper
182
235
  let r = this.try_consume(incantation.identifier);
183
236
  if (r !== NO_MATCH)
184
237
  return incantation;
@@ -190,12 +243,80 @@ export class DesmostParser extends GenericParser {
190
243
  }
191
244
  return NO_MATCH;
192
245
  }
193
- parse_incantation_arg(arg_type) {
246
+ /**
247
+ * Parse an argument to an incantation, enclosed in `{}`.
248
+ *
249
+ * ```ts
250
+ * /incantation{ arg }
251
+ * ^^^^^^^
252
+ * ```
253
+ *
254
+ * Returns the raw text without `{}`.
255
+ *
256
+ * ```ts
257
+ * /incantation{ arg }
258
+ * ^^^
259
+ * ```
260
+ *
261
+ * ## Notes
262
+ *
263
+ * We don't actually care for what type the argument is since we won't be evaluating it, we just want to find the closing `}`.
264
+ *
265
+ * However, the argument itself might contain one or many `}`! So we need a way to accurately identify the actual closing brace:
266
+ *
267
+ * ```ts
268
+ * /incantation{ field: { value: 1 } }
269
+ * ^ ^
270
+ * ```
271
+ *
272
+ * In our context, we have the guarantee that any well-formed argument always has matching pairs of `{}`. So we'll keep track of a context stack that starts with the opening `{`, and when the stack is depleted, we must've reached the end of the argument.
273
+ *
274
+ * However, there's still more edge cases:
275
+ *
276
+ * ```ts
277
+ * /label{ text: "This }s weird" }
278
+ * ^
279
+ * ```
280
+ *
281
+ * `{` and `}` can appear in strings, and they won't necessarily be matched, so we'll ignore them by also tracking string contexts.
282
+ *
283
+ * ```ts
284
+ * /latex{ \{ x, y ) }
285
+ * ^
286
+ * ```
287
+ *
288
+ * `{` and `}` in LaTeX can be escaped with `\{` or `\}`, and these won't necessarily be matched, so we'll ignore them by also tracking escapes.
289
+ *
290
+ * If the user truly mismatches `{}`, then, well ...parsing will fail catastrophically!
291
+ *
292
+ * This method also handles parsing raw enum literals by converting them to strings. So this:
293
+ *
294
+ * ```ts
295
+ * /line{ style: DOTTED }
296
+ * ^^^^^^
297
+ * ```
298
+ *
299
+ * Produces `style: "DOTTED"` (instead of `style: DOTTED`, which would fail to later parse as JSON).
300
+ */
301
+ parse_incantation_arg(
302
+ /**
303
+ * The type of argument to parse.
304
+ *
305
+ * Parsing strategy varies for different types:
306
+ *
307
+ * - String / LaTeX: Track only balanced `{}` and escaped `\{\}`.
308
+ * - JavaScript object: The above, plus balanced string quotes.
309
+ */
310
+ arg_type) {
194
311
  let init = this.i;
195
312
  this.consume("{", `Expected \`{\` to start incantation argument, but found: \`${this.preview()}\``);
313
+ /** The context stack to keep track of when the closing `}` is encountered. */
196
314
  let stack = new ContextStack();
315
+ /** Indices at which to later insert `"` quotes. */
197
316
  let indices_to_insert_quotes = [];
198
317
  while (stack.length > 0) {
318
+ // If the last character was an escape, we don't care at all what the next character is!
319
+ // This handles \\ double escape perfectly fine, since the first negates the second
199
320
  if (stack.try_pop(Ctx.ESCAPE)) {
200
321
  this.advance(`Unexpected end of input while parsing incantation argument, stack: ${stack.debug()}`);
201
322
  }
@@ -246,6 +367,7 @@ export class DesmostParser extends GenericParser {
246
367
  }
247
368
  this.advance(`Unexpected end of input while parsing incantation argument, stack: ${JSON.stringify(stack)}`);
248
369
  }
370
+ /* NOTE: Cut in by 1 on both sides to exclude {} braces */
249
371
  let out = utils.chars(this.source, init + 1, this.i - 1);
250
372
  for (let [i, j] of utils.reversing(utils.paired(indices_to_insert_quotes))) {
251
373
  i -= init + 1;
@@ -264,6 +386,7 @@ class ContextStack {
264
386
  get length() {
265
387
  return this.#data.length;
266
388
  }
389
+ /** The currently active context. */
267
390
  get top() {
268
391
  return this.#data.at(-1);
269
392
  }
@@ -276,6 +399,7 @@ class ContextStack {
276
399
  pop() {
277
400
  this.#data.pop();
278
401
  }
402
+ /** Pop `ctx` if it is the currently active context, returning `true` if so. */
279
403
  try_pop(ctx) {
280
404
  if (this.top === ctx) {
281
405
  this.#data.pop();
@@ -285,15 +409,18 @@ class ContextStack {
285
409
  return false;
286
410
  }
287
411
  }
412
+ /** Backtrack until `ctx` is popped. */
288
413
  force_pop(ctx, options) {
289
414
  if (this.#should_skip(options))
290
415
  return false;
291
416
  let idx = this.#data.lastIndexOf(ctx);
292
417
  if (idx === -1)
293
418
  return false;
419
+ /* NOTE: We could report errors for unterminated contexts, but we'll leave that for the actual evaluation - in case we get something wrong ;) */
294
420
  this.#data.splice(idx);
295
421
  return true;
296
422
  }
423
+ /** Pop `ctx` if it is the current context, else push it onto the stack. */
297
424
  pop_or_push(ctx, options) {
298
425
  if (this.#should_skip(options))
299
426
  return false;
@@ -304,7 +431,7 @@ class ContextStack {
304
431
  return JSON.stringify(this.#data);
305
432
  }
306
433
  #should_skip(options) {
307
- return Boolean(options?.when != undefined && !options?.when?.includes(this.top)
434
+ return Boolean(options?.when != undefined && !options.when.includes(this.top)
308
435
  || options?.unless?.includes(this.top));
309
436
  }
310
437
  }
@@ -1 +1 @@
1
- {"version":3,"file":"desmost-parser.js","sourceRoot":"","sources":["../../src/parser/desmost-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"desmost-parser.js","sourceRoot":"","sources":["../../src/parser/desmost-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAElC,OAAO,EACN,WAAW,EAAE,cAAc,EAC3B,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAC1D,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,aAAa;IAET;IAAtC,YAAY,MAAc,EAAY,OAAwB;QAE7D,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAFgB,YAAO,GAAP,OAAO,CAAiB;IAG9D,CAAC;IAGD,qBAAqB;IAErB;;OAEG;IACI,UAAU;QAEhB,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;gBACnC,iBAAiB;gBACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;iBACI,CAAC;gBACL,UAAU;gBACV,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACjC,CAAC;QACF,CAAC;aACI,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAE7B,WAAW;YACX,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,CAAC,MAAM,CAAC;YACjB,CAAC;YAED,qBAAqB;YACrB,IAAI,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;YAE3B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAEjC,KAAK,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;gBACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;QACF,CAAC;aACI,CAAC;YACL,SAAS;YACT,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,aAAa;QAMZ,uBAAuB;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAE5C,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,oBAAoB,CACxB,mDAAmD,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,CAC7E,CAAC;YAEF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACtB,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACpD,IAAI,UAAU,KAAK,QAAQ;gBAAE,MAAM;YACnC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,SAAS;QAER,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EAChB,qFAAqF,IAAI,CAAC,OAAO,EAAE,IAAI,CACvG,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,cAAc;QAEb,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACtB,cAAc;YACd,KAAK,IAAI;gBACR,OAAO;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oBACpB,YAAY,EAAE,EAAE;iBAChB,CAAC;YAEH,mBAAmB;YACnB,KAAK,GAAG;gBACP,IAAI,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpD,IAAI,WAAW,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;YACjD,0CAA0C;YAE3C,cAAc;YACd;gBACC,OAAO;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE;oBAClC,YAAY,EAAE,EAAE;iBAChB,CAAC;QACJ,CAAC;IACF,CAAC;IAED,aAAa;QAEZ,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE7B,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAC5B,YAAY,EAAE,EAAE;SAChB,CAAC;IACH,CAAC;IAGD,qBAAqB;IAErB;;OAEG;IACH,UAAU;QAET,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,4BAA4B;QAK3B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAExD,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAC;QAErB,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBAC1B,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACzD,CAAC;iBACI,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBACnC,OAAO;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB;oBAClC,WAAW;oBACX,KAAK,EAAE,IAAI,kBAAkB,CAAC,YAAY,CACzC,6BAA6B,WAAW,CAAC,UAAU,2CAA2C,WAAW,CAAC,QAAQ,IAAI,CACtH;iBACD,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,0BAA0B;QAC1B,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW;YACX,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,2BAA2B;QAK1B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAExD,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,GAAG,SAAS,CAAC;QAExB,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBAC1B,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;iBACI,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBACnC,OAAO;oBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB;oBAClC,WAAW;oBACX,KAAK,EAAE,IAAI,kBAAkB,CAAC,YAAY,CACzC,6BAA6B,WAAW,CAAC,UAAU,2CAA2C,WAAW,CAAC,QAAQ,IAAI,CACtH;iBACD,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,0BAA0B;QAC1B,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW;YACX,OAAO;SACP,CAAC;IACH,CAAC;IAED;;OAEG;IACH,0BAA0B;QAEzB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAExD,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC9B,0BAA0B;YAC1B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAE,WAAoC,CAAC,QAAQ,CAAC,CAAC;QAEzF,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjC,OAAO;YACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI;YACJ,YAAY,EAAE,EAAE;SAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB,CACnB,YAAmC;QAGnC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YACtC,oHAAoH;YACpH,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,QAAQ;gBAAE,OAAO,WAAW,CAAC;YAEvC,IAAI,WAAW,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;YACxC,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACH,qBAAqB;IACpB;;;;;;;OAOG;IACH,QAA6B;QAG7B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,OAAO,CAAC,GAAG,EACf,8DAA8D,IAAI,CAAC,OAAO,EAAE,IAAI,CAChF,CAAC;QAEF,8EAA8E;QAC9E,IAAI,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAE/B,mDAAmD;QACnD,IAAI,wBAAwB,GAAa,EAAE,CAAC;QAE5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,wFAAwF;YACxF,mFAAmF;YACnF,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CACX,sEAAsE,KAAK,CAAC,KAAK,EAAE,EAAE,CACrF,CAAC;YACH,CAAC;YAED,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YAEpB,QAAQ,IAAI,CAAC,OAAO,EACpB,CAAC;gBACA,KAAK,IAAI,CAAC,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM;gBAEnD,KAAK,GAAG;oBAAG,KAAK,CAAC,IAAI,CAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM;gBAC5F,KAAK,GAAG;oBAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM;YAC7F,CAAC;YAED,IAAI,QAAQ,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,EAC3C,CAAC;gBACA,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACrB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;qBACI,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/D,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAEtC,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;oBAC7G,CAAC;gBACF,CAAC;gBAED,QAAQ,IAAI,CAAC,OAAO,EACpB,CAAC;oBACA,KAAK,GAAG;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAAC,MAAM;oBAC9D,KAAK,GAAG;wBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAAC,MAAM;oBAE1C,KAAK,IAAI,CAAC,OAAO;wBAChB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM;oBACP,KAAK,IAAI,CAAC,OAAO;wBAChB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM;oBACP,KAAK,IAAI,CAAC,QAAQ;wBACjB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM;gBACR,CAAC;YACF,CAAC;YAED,IAAI,CAAC,OAAO,CACX,sEAAsE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC7F,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;YAC5E,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YACd,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAEd,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAErE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACtB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;CACD;AAGD,MAAM,YAAY;IAEjB,KAAK,GAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1B,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,oCAAoC;IACpC,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,OAA+B;QAE7C,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,GAAG;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,+EAA+E;IAC/E,OAAO,CAAC,GAAQ;QAEf,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACb,CAAC;aAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,uCAAuC;IACvC,SAAS,CAAC,GAAQ,EAAE,OAA+B;QAElD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7B,gJAAgJ;QAChJ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2EAA2E;IAC3E,WAAW,CAAC,GAAQ,EAAE,OAA+B;QAEpD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,OAA0C;QAEtD,OAAO,OAAO,CACZ,OAAO,EAAE,IAAI,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;eAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CACtC,CAAC;IACH,CAAC;CACD;AAWD,IAAK,IAMJ;AAND,WAAK,IAAI;IAER,wBAAgB,CAAA;IAChB,qBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;AAChB,CAAC,EANI,IAAI,KAAJ,IAAI,QAMR;AAED,IAAK,GAQJ;AARD,WAAK,GAAG;IACP,kBAAY,CAAA;IACZ,kBAAY,CAAA;IACZ,8BAAyB,CAAA;IACzB,kBAAqB,CAAA;IACrB,mBAAqB,CAAA;IACrB,kBAAsB,CAAA;IACtB,oBAAuB,CAAA;AACxB,CAAC,EARI,GAAG,KAAH,GAAG,QAQP"}
@@ -1,19 +1,66 @@
1
1
  import type { NoMatch, Unrecoverable } from "../errors.js";
2
+ /**
3
+ * A stateful lazy parser, providing core (non-Desmost-specific) methods for parsing.
4
+ *
5
+ * Many methods come in `<verb>` and `try_<verb>` pairs. On parsing failure, the former throws an `UnrecoverableError`, but the latter instead backtracks and only returns a `NoMatch`. The former is for expected parses, while the latter is for speculative parsing.
6
+ */
2
7
  export declare class GenericParser {
3
8
  #private;
9
+ /** The source code this parser is parsing. */
4
10
  protected source: string;
11
+ /** The current position in the source code the parser is pointing to. */
5
12
  protected i: number;
13
+ /** The number of characters in the source code. */
6
14
  protected length: number;
15
+ /** Create a parser for parsing `source`. */
7
16
  constructor(source: string);
17
+ /**
18
+ * Is the parser currently pointing at an invalid character?
19
+ */
8
20
  protected out_of_bounds(): boolean;
21
+ /**
22
+ * Get the character the parser is currently pointing at, or `undefined` if the parser is out-of-bounds.
23
+ */
9
24
  protected get current(): string | undefined;
25
+ /**
26
+ * Get the character *after* the current one that the parser points at.
27
+ */
10
28
  protected next(): string | undefined;
29
+ /**
30
+ * Peek a snippet of the upcoming source text.
31
+ *
32
+ * Optionally start from the given `idx`.
33
+ */
11
34
  preview(idx?: number): string;
35
+ /**
36
+ * Advance to the next character, skipping ignored characters.
37
+ *
38
+ * Errors if the parser is the out-of-bounds *before* advancing.
39
+ */
12
40
  protected advance(error_msg?: string): Unrecoverable<void>;
41
+ /**
42
+ * Attempt to advance to the next character, skipping ignored characters.
43
+ *
44
+ * Fails if the parser is the out-of-bounds *before* advancing.
45
+ */
13
46
  protected try_advance(): void | NoMatch;
47
+ /**
48
+ * Consume `raw`, erroring if `raw` was not found.
49
+ */
14
50
  protected consume(raw: string, error_msg?: string): Unrecoverable<void>;
51
+ /**
52
+ * Attempt to consume `raw`, backtracking if `raw` was not found.
53
+ */
15
54
  protected try_consume(raw: string): void | NoMatch;
55
+ /**
56
+ * Consume 0 or more space characters.
57
+ */
16
58
  protected consume_spaces(): void;
59
+ /**
60
+ * Consume 0 or more whitespace characters.
61
+ *
62
+ * Same as `.consume_spaces()`, but allows newlines.
63
+ */
17
64
  protected consume_whitespace(): void;
18
65
  protected consume_end_of_block(error_msg?: string): Unrecoverable<void>;
19
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generic-parser.d.ts","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAaxD,qBAAa,aAAa;;IAGxB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAK;IAGxB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAIb,MAAM,EAAE,MAAM;IAU1B,SAAS,CAAC,aAAa,IAAI,OAAO;IAQlC,SAAS,KAAK,OAAO,IAAI,MAAM,GAAG,SAAS,CAG1C;IAKD,SAAS,CAAC,IAAI,IAAI,MAAM,GAAG,SAAS;IAU7B,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAWpC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IAc1D,SAAS,CAAC,WAAW,IAAI,IAAI,GAAG,OAAO;IAmBvC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IA4BvE,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAqBlD,SAAS,CAAC,cAAc,IAAI,IAAI;IAehC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAUpC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;CAUxE"}
1
+ {"version":3,"file":"generic-parser.d.ts","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAQxD;;;;GAIG;AACH,qBAAa,aAAa;;IAEzB,8CAA8C;IAC9C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEzB,yEAAyE;IACzE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAK;IAExB,mDAAmD;IACnD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAGzB,4CAA4C;gBAChC,MAAM,EAAE,MAAM;IAO1B;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,OAAO;IAKlC;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,MAAM,GAAG,SAAS,CAG1C;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,IAAI,MAAM,GAAG,SAAS;IAKpC;;;;OAIG;IACI,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAMpC;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IAS1D;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI,GAAG,OAAO;IAgBvC;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IAyBvE;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAkBlD;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAUhC;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAUpC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;CAUvE"}
@@ -2,33 +2,66 @@ import { NO_MATCH, UnrecoverableError } from "../errors.js";
2
2
  const IGNORED_CHARACTERS = new Set([
3
3
  "\r",
4
4
  ]);
5
+ /**
6
+ * A stateful lazy parser, providing core (non-Desmost-specific) methods for parsing.
7
+ *
8
+ * Many methods come in `<verb>` and `try_<verb>` pairs. On parsing failure, the former throws an `UnrecoverableError`, but the latter instead backtracks and only returns a `NoMatch`. The former is for expected parses, while the latter is for speculative parsing.
9
+ */
5
10
  export class GenericParser {
11
+ /** The source code this parser is parsing. */
6
12
  source;
13
+ /** The current position in the source code the parser is pointing to. */
7
14
  i = 0;
15
+ /** The number of characters in the source code. */
8
16
  length;
17
+ /** Create a parser for parsing `source`. */
9
18
  constructor(source) {
10
19
  this.source = source;
11
20
  this.length = source.length;
12
21
  }
22
+ /**
23
+ * Is the parser currently pointing at an invalid character?
24
+ */
13
25
  out_of_bounds() {
14
26
  return this.i >= this.length;
15
27
  }
28
+ /**
29
+ * Get the character the parser is currently pointing at, or `undefined` if the parser is out-of-bounds.
30
+ */
16
31
  get current() {
17
32
  return this.source.at(this.i);
18
33
  }
34
+ /**
35
+ * Get the character *after* the current one that the parser points at.
36
+ */
19
37
  next() {
20
38
  return this.source.at(this.i + 1);
21
39
  }
40
+ /**
41
+ * Peek a snippet of the upcoming source text.
42
+ *
43
+ * Optionally start from the given `idx`.
44
+ */
22
45
  preview(idx) {
23
46
  idx ??= this.i;
24
47
  return this.source.slice(idx, idx + 20) + "...";
25
48
  }
49
+ /**
50
+ * Advance to the next character, skipping ignored characters.
51
+ *
52
+ * Errors if the parser is the out-of-bounds *before* advancing.
53
+ */
26
54
  advance(error_msg) {
27
55
  if (this.out_of_bounds()) {
28
56
  throw new UnrecoverableError.UnexpectedEnd(error_msg ?? "Unexpected end of input");
29
57
  }
30
58
  this.#advance();
31
59
  }
60
+ /**
61
+ * Attempt to advance to the next character, skipping ignored characters.
62
+ *
63
+ * Fails if the parser is the out-of-bounds *before* advancing.
64
+ */
32
65
  try_advance() {
33
66
  if (this.out_of_bounds())
34
67
  return NO_MATCH;
@@ -36,10 +69,14 @@ export class GenericParser {
36
69
  }
37
70
  #advance() {
38
71
  this.i++;
72
+ // @ts-expect-error: `this.current == undefined` is a true negative
39
73
  if (IGNORED_CHARACTERS.has(this.current)) {
40
74
  this.advance();
41
75
  }
42
76
  }
77
+ /**
78
+ * Consume `raw`, erroring if `raw` was not found.
79
+ */
43
80
  consume(raw, error_msg) {
44
81
  if (this.out_of_bounds()) {
45
82
  throw new UnrecoverableError.UnexpectedEnd(`Unexpected end of input while trying to consume: \`${raw}\``);
@@ -54,6 +91,9 @@ export class GenericParser {
54
91
  }
55
92
  throw new UnrecoverableError.UnexpectedInput(error_msg ?? `Expected: \`${raw}\`, but found: \`${this.preview(init)}\``);
56
93
  }
94
+ /**
95
+ * Attempt to consume `raw`, backtracking if `raw` was not found.
96
+ */
57
97
  try_consume(raw) {
58
98
  let init = this.i;
59
99
  let ii = 0;
@@ -70,14 +110,24 @@ export class GenericParser {
70
110
  this.i = init;
71
111
  return NO_MATCH;
72
112
  }
113
+ /**
114
+ * Consume 0 or more space characters.
115
+ */
73
116
  consume_spaces() {
117
+ /* NOTE: Callers should be able to assume this is safe to call even when at end of input, since it should just match 0 characters */
74
118
  if (this.out_of_bounds())
75
119
  return;
76
120
  while (this.current === " ") {
77
121
  this.advance();
78
122
  }
79
123
  }
124
+ /**
125
+ * Consume 0 or more whitespace characters.
126
+ *
127
+ * Same as `.consume_spaces()`, but allows newlines.
128
+ */
80
129
  consume_whitespace() {
130
+ /* NOTE: Callers should be able to assume this is safe to call even when at end of input, since it should just match 0 characters */
81
131
  if (this.i >= this.length)
82
132
  return;
83
133
  while (this.current === " " || this.current === "\n") {
@@ -1 +1 @@
1
- {"version":3,"file":"generic-parser.js","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAIzD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,IAAI;CACL,CAAC,CAAC;AAQH,MAAM,OAAO,aAAa;IAGd,MAAM,CAAS;IAGf,CAAC,GAAW,CAAC,CAAC;IAGd,MAAM,CAAS;IAIzB,YAAY,MAAc;QAExB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAMS,aAAa;QAErB,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;IAC/B,CAAC;IAKD,IAAc,OAAO;QAEnB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAKS,IAAI;QAEZ,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAOM,OAAO,CAAC,GAAY;QAEzB,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;IAOS,OAAO,CAAC,SAAkB;QAElC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,kBAAkB,CAAC,aAAa,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAOS,WAAW;QAEnB,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,QAAQ,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,CAAC,EAAE,CAAC;QAGT,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAKS,OAAO,CAAC,GAAW,EAAE,SAAkB;QAE/C,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,kBAAkB,CAAC,aAAa,CACxC,sDAAsD,GAAG,IAAI,CAC9D,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,CAAC;QAEX,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CACV,sDAAsD,GAAG,aAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAC7F,CAAC;YAEF,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM;gBAAE,OAAO;QAChC,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAC1C,SAAS,IAAI,eAAe,GAAG,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAC1E,CAAC;IACJ,CAAC;IAKS,WAAW,CAAC,GAAW;QAE/B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,CAAC;QAEX,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAEpC,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM;gBAAE,OAAO;YAC9B,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM;gBAAE,MAAM;QACpC,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKS,cAAc;QAGtB,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO;QAEjC,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAOS,kBAAkB;QAG1B,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAElC,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAES,oBAAoB,CAAC,SAAkB;QAE/C,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAElC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,IAAI,EACf,SAAS,IAAI,uCAAuC,IAAI,CAAC,OAAO,EAAE,IAAI,CACvE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"generic-parser.js","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAiB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAK/D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAGxE;AAED,wBAAiB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAkB9E;AAGD,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxE;AAGD,qBAAa,KAAK;IAGd,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM;gBADZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM;IAIvB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;CAMlD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAiB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAK/D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAGxE;AAED,wBAAiB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAkB9E;AAGD,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxE;AAGD,qBAAa,KAAK;IAGhB,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM;gBADZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM;IAItB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;CAMjD"}
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,CAAC,CAAC,SAAS,CAAI,KAAmB;IAE/C,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,KAAkB;IAE1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,OAAO,CAAI,KAAkB;IAE5C,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;aACI,CAAC;YACJ,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,KAAc,EAAE,IAAa;IAE5D,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAGD,MAAM,OAAO,KAAK;IAGJ;IACA;IAFZ,YACY,KAAa,EACb,IAAY;QADZ,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAAQ;IAEvB,CAAC;IAEF,CAAC,GAAG,CAAI,QAA0B;QAEhC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,CAAC,CAAC,SAAS,CAAI,KAAmB;IAEhD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,KAAkB;IAE3C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,OAAO,CAAI,KAAkB;IAE7C,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACV,CAAC;aACI,CAAC;YACL,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;QACjB,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC;IACjB,CAAC;AACF,CAAC;AAGD,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,KAAc,EAAE,IAAa;IAE7D,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AACzE,CAAC;AAGD,MAAM,OAAO,KAAK;IAGN;IACA;IAFX,YACW,KAAa,EACb,IAAY;QADZ,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAAQ;IAEtB,CAAC;IAEF,CAAC,GAAG,CAAI,QAA0B;QAEjC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;CACD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "desmost",
3
3
  "author": "Sup#2.0",
4
- "version": "0.7.3",
4
+ "version": "0.8.1",
5
5
  "license": "MIT",
6
6
 
7
7
  "description": "A tiny DSL for compiling LaTeX to Desmos",
@@ -19,6 +19,7 @@
19
19
  },
20
20
 
21
21
  "type": "module",
22
+ "sideEffects": false,
22
23
  "files": [
23
24
  "./src/",
24
25
  "./dist/",
@@ -51,7 +52,9 @@
51
52
 
52
53
  "check": "npx oxlint src",
53
54
 
54
- "prepublishOnly": "npm run test && npm run buildx"
55
+ "doc": "cd ../.autodoc && rake",
56
+
57
+ "prepublishOnly": "npm run test && npm run doc && npm run buildx"
55
58
  },
56
59
 
57
60
  "dependencies":