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.
- package/dist/compiler/compile.d.ts +25 -1
- package/dist/compiler/compile.d.ts.map +1 -1
- package/dist/compiler/compile.js +32 -2
- package/dist/compiler/compile.js.map +1 -1
- package/dist/compiler/evaluate.d.ts +11 -0
- package/dist/compiler/evaluate.d.ts.map +1 -1
- package/dist/compiler/evaluate.js +15 -11
- package/dist/compiler/evaluate.js.map +1 -1
- package/dist/compiler/format.d.ts +13 -0
- package/dist/compiler/format.d.ts.map +1 -1
- package/dist/compiler/format.js +23 -0
- package/dist/compiler/format.js.map +1 -1
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/options.d.ts +79 -0
- package/dist/compiler/options.d.ts.map +1 -1
- package/dist/compiler/options.js +18 -11
- package/dist/compiler/options.js.map +1 -1
- package/dist/decompiler/decompile.d.ts +20 -0
- package/dist/decompiler/decompile.d.ts.map +1 -0
- package/dist/decompiler/decompile.js +32 -0
- package/dist/decompiler/decompile.js.map +1 -0
- package/dist/decompiler/emit.d.ts +10 -0
- package/dist/decompiler/emit.d.ts.map +1 -0
- package/dist/decompiler/emit.js +37 -0
- package/dist/decompiler/emit.js.map +1 -0
- package/dist/decompiler/extract.d.ts +14 -0
- package/dist/decompiler/extract.d.ts.map +1 -0
- package/dist/decompiler/extract.js +63 -0
- package/dist/decompiler/extract.js.map +1 -0
- package/dist/decompiler/format.d.ts +3 -0
- package/dist/decompiler/format.d.ts.map +1 -0
- package/dist/decompiler/format.js +14 -0
- package/dist/decompiler/format.js.map +1 -0
- package/dist/decompiler/index.d.ts +2 -0
- package/dist/decompiler/index.d.ts.map +1 -0
- package/dist/decompiler/index.js +2 -0
- package/dist/decompiler/index.js.map +1 -0
- package/dist/desmos.d.ts +3 -0
- package/dist/desmos.d.ts.map +1 -1
- package/dist/desmos.js +3 -0
- package/dist/desmos.js.map +1 -1
- package/dist/errors.d.ts +18 -4
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.internal.d.ts +2 -1
- package/dist/index.internal.d.ts.map +1 -1
- package/dist/index.internal.js +2 -1
- package/dist/index.internal.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/magic/expr/index.js.map +1 -1
- package/dist/magic/expr/latex.d.ts.map +1 -1
- package/dist/magic/expr/latex.js +1 -0
- package/dist/magic/expr/latex.js.map +1 -1
- package/dist/magic/expr/text.d.ts.map +1 -1
- package/dist/magic/expr/text.js +1 -0
- package/dist/magic/expr/text.js.map +1 -1
- package/dist/magic/global/dark-mode.d.ts.map +1 -1
- package/dist/magic/global/dark-mode.js.map +1 -1
- package/dist/magic/global/desmos.d.ts +3 -1
- package/dist/magic/global/desmos.d.ts.map +1 -1
- package/dist/magic/global/desmos.js.map +1 -1
- package/dist/magic/global/index.d.ts +3 -0
- package/dist/magic/global/index.d.ts.map +1 -1
- package/dist/magic/global/index.js +3 -0
- package/dist/magic/global/index.js.map +1 -1
- package/dist/magic/global/viewport.d.ts.map +1 -1
- package/dist/magic/global/viewport.js +0 -1
- package/dist/magic/global/viewport.js.map +1 -1
- package/dist/magic/incantation.d.ts +44 -0
- package/dist/magic/incantation.d.ts.map +1 -1
- package/dist/magic/incantation.js +38 -0
- package/dist/magic/incantation.js.map +1 -1
- package/dist/magic/index.d.ts +7 -0
- package/dist/magic/index.d.ts.map +1 -1
- package/dist/magic/index.js +7 -0
- package/dist/magic/index.js.map +1 -1
- package/dist/magic/local/anim.d.ts.map +1 -1
- package/dist/magic/local/anim.js +1 -0
- package/dist/magic/local/anim.js.map +1 -1
- package/dist/magic/local/colour.d.ts.map +1 -1
- package/dist/magic/local/colour.js.map +1 -1
- package/dist/magic/local/dashed.d.ts.map +1 -1
- package/dist/magic/local/dashed.js.map +1 -1
- package/dist/magic/local/fill.d.ts.map +1 -1
- package/dist/magic/local/fill.js.map +1 -1
- package/dist/magic/local/hide.d.ts.map +1 -1
- package/dist/magic/local/hide.js.map +1 -1
- package/dist/magic/local/index.js.map +1 -1
- package/dist/magic/local/label.d.ts.map +1 -1
- package/dist/magic/local/label.js +1 -0
- package/dist/magic/local/label.js.map +1 -1
- package/dist/magic/local/line.d.ts.map +1 -1
- package/dist/magic/local/line.js.map +1 -1
- package/dist/magic/local/no-line.d.ts.map +1 -1
- package/dist/magic/local/no-line.js.map +1 -1
- package/dist/magic/local/point.d.ts.map +1 -1
- package/dist/magic/local/point.js.map +1 -1
- package/dist/magic/local/secret.d.ts.map +1 -1
- package/dist/magic/local/secret.js.map +1 -1
- package/dist/magic/local/slider.d.ts.map +1 -1
- package/dist/magic/local/slider.js +1 -0
- package/dist/magic/local/slider.js.map +1 -1
- package/dist/parser/ast.d.ts +9 -0
- package/dist/parser/ast.d.ts.map +1 -1
- package/dist/parser/ast.js +1 -0
- package/dist/parser/ast.js.map +1 -1
- package/dist/parser/desmost-parser.d.ts +101 -1
- package/dist/parser/desmost-parser.d.ts.map +1 -1
- package/dist/parser/desmost-parser.js +129 -2
- package/dist/parser/desmost-parser.js.map +1 -1
- package/dist/parser/generic-parser.d.ts +47 -0
- package/dist/parser/generic-parser.d.ts.map +1 -1
- package/dist/parser/generic-parser.js +50 -0
- package/dist/parser/generic-parser.js.map +1 -1
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +5 -2
- package/src/compiler/compile.ts +124 -124
- package/src/compiler/evaluate.ts +86 -118
- package/src/compiler/format.ts +39 -6
- package/src/compiler/index.ts +0 -7
- package/src/compiler/options.ts +83 -77
- package/src/compiler/readme.md +5 -0
- package/src/decompiler/decompile.ts +48 -0
- package/src/decompiler/emit.ts +47 -0
- package/src/decompiler/extract.ts +100 -0
- package/src/decompiler/format.ts +20 -0
- package/src/decompiler/index.ts +1 -0
- package/src/decompiler/readme.md +34 -0
- package/src/desmos.ts +6 -6
- package/src/errors.ts +19 -19
- package/src/index.internal.ts +3 -1
- package/src/index.ts +1 -0
- package/src/magic/expr/index.ts +2 -2
- package/src/magic/expr/latex.ts +16 -16
- package/src/magic/expr/text.ts +13 -13
- package/src/magic/global/dark-mode.ts +10 -10
- package/src/magic/global/desmos.ts +18 -15
- package/src/magic/global/index.ts +8 -3
- package/src/magic/global/viewport.ts +19 -20
- package/src/magic/incantation.ts +94 -94
- package/src/magic/local/anim.ts +10 -10
- package/src/magic/local/colour.ts +26 -26
- package/src/magic/local/dashed.ts +9 -9
- package/src/magic/local/fill.ts +12 -12
- package/src/magic/local/hide.ts +9 -9
- package/src/magic/local/index.ts +11 -11
- package/src/magic/local/label.ts +51 -51
- package/src/magic/local/line.ts +16 -16
- package/src/magic/local/no-line.ts +9 -9
- package/src/magic/local/point.ts +16 -16
- package/src/magic/local/secret.ts +9 -9
- package/src/magic/local/slider.ts +15 -15
- package/src/magic/readme.md +5 -0
- package/src/parser/ast.ts +46 -46
- package/src/parser/desmost-parser.ts +550 -550
- package/src/parser/generic-parser.ts +176 -176
- package/src/parser/index.ts +0 -4
- package/src/parser/readme.md +21 -0
- 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
|
-
|
|
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
|
|
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":"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"}
|
|
@@ -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;
|
|
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;
|
|
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;IAClC,IAAI;CACJ,CAAC,CAAC;AAGH;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAEzB,8CAA8C;IACpC,MAAM,CAAS;IAEzB,yEAAyE;IAC/D,CAAC,GAAW,CAAC,CAAC;IAExB,mDAAmD;IACzC,MAAM,CAAS;IAGzB,4CAA4C;IAC5C,YAAY,MAAc;QAEzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,CAAC;IAGD;;OAEG;IACO,aAAa;QAEtB,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAc,OAAO;QAEpB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACO,IAAI;QAEb,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,GAAY;QAE1B,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACO,OAAO,CAAC,SAAkB;QAEnC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,kBAAkB,CAAC,aAAa,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACO,WAAW;QAEpB,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,QAAQ,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QAEP,IAAI,CAAC,CAAC,EAAE,CAAC;QAET,mEAAmE;QACnE,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IAED;;OAEG;IACO,OAAO,CAAC,GAAW,EAAE,SAAkB;QAEhD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,kBAAkB,CAAC,aAAa,CACzC,sDAAsD,GAAG,IAAI,CAC7D,CAAC;QACH,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;YACjC,IAAI,CAAC,OAAO,CACX,sDAAsD,GAAG,aAAa,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAC5F,CAAC;YAEF,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM;gBAAE,OAAO;QAC/B,CAAC;QAED,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAC3C,SAAS,IAAI,eAAe,GAAG,oBAAoB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CACzE,CAAC;IACH,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,GAAW;QAEhC,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;YACjC,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;QACnC,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACd,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;OAEG;IACO,cAAc;QAEvB,oIAAoI;QACpI,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO;QAEjC,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IAED;;;;OAIG;IACO,kBAAkB;QAE3B,oIAAoI;QACpI,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;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IAES,oBAAoB,CAAC,SAAkB;QAEhD,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAElC,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAChB,SAAS,IAAI,uCAAuC,IAAI,CAAC,OAAO,EAAE,IAAI,CACtE,CAAC;IACH,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/parser/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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.
|
|
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
|
-
"
|
|
55
|
+
"doc": "cd ../.autodoc && rake",
|
|
56
|
+
|
|
57
|
+
"prepublishOnly": "npm run test && npm run doc && npm run buildx"
|
|
55
58
|
},
|
|
56
59
|
|
|
57
60
|
"dependencies":
|