desmost 0.9.1 → 0.10.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/README.md +12 -3
- package/dist/compiler/compile.d.ts +1 -7
- package/dist/compiler/compile.d.ts.map +1 -1
- package/dist/compiler/compile.js +3 -94
- package/dist/compiler/compile.js.map +1 -1
- package/dist/compiler/compiler.d.ts +56 -0
- package/dist/compiler/compiler.d.ts.map +1 -0
- package/dist/compiler/compiler.js +209 -0
- package/dist/compiler/compiler.js.map +1 -0
- package/dist/compiler/format.d.ts +2 -2
- package/dist/compiler/format.d.ts.map +1 -1
- package/dist/compiler/format.js +18 -9
- package/dist/compiler/format.js.map +1 -1
- package/dist/decompiler/decompile.d.ts +1 -1
- package/dist/decompiler/decompile.d.ts.map +1 -1
- package/dist/decompiler/extract.d.ts.map +1 -1
- package/dist/decompiler/extract.js +7 -3
- package/dist/decompiler/extract.js.map +1 -1
- package/dist/errors.d.ts +35 -27
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +46 -48
- package/dist/errors.js.map +1 -1
- package/dist/index.internal.d.ts +1 -1
- package/dist/index.internal.d.ts.map +1 -1
- package/dist/magic/global/desmos.d.ts +2 -2
- package/dist/magic/global/desmos.d.ts.map +1 -1
- package/dist/magic/global/desmos.js +3 -2
- package/dist/magic/global/desmos.js.map +1 -1
- package/dist/magic/global/viewport.d.ts +2 -2
- package/dist/magic/global/viewport.d.ts.map +1 -1
- package/dist/magic/global/viewport.js +5 -5
- package/dist/magic/global/viewport.js.map +1 -1
- package/dist/magic/incantation.d.ts +4 -4
- package/dist/magic/incantation.d.ts.map +1 -1
- package/dist/magic/incantation.js +15 -8
- package/dist/magic/incantation.js.map +1 -1
- package/dist/magic/local/colour.d.ts +3 -1
- package/dist/magic/local/colour.d.ts.map +1 -1
- package/dist/magic/local/colour.js +15 -11
- package/dist/magic/local/colour.js.map +1 -1
- package/dist/magic/local/label.d.ts.map +1 -1
- package/dist/magic/local/label.js +7 -7
- package/dist/magic/local/label.js.map +1 -1
- package/dist/magic/local/line.d.ts +2 -2
- package/dist/magic/local/line.d.ts.map +1 -1
- package/dist/magic/local/line.js +0 -1
- package/dist/magic/local/line.js.map +1 -1
- package/dist/options.d.ts +57 -23
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +2 -1
- package/dist/options.js.map +1 -1
- package/dist/parser/ast.d.ts +3 -17
- package/dist/parser/ast.d.ts.map +1 -1
- package/dist/parser/ast.js +0 -2
- package/dist/parser/ast.js.map +1 -1
- package/dist/parser/desmost-parser.d.ts +33 -22
- package/dist/parser/desmost-parser.d.ts.map +1 -1
- package/dist/parser/desmost-parser.js +114 -100
- package/dist/parser/desmost-parser.js.map +1 -1
- package/dist/parser/generic-parser.d.ts +23 -14
- package/dist/parser/generic-parser.d.ts.map +1 -1
- package/dist/parser/generic-parser.js +67 -27
- package/dist/parser/generic-parser.js.map +1 -1
- package/dist/utils.d.ts +9 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -2
- package/dist/utils.js.map +1 -1
- package/package.json +5 -2
- package/src/compiler/compile.ts +7 -120
- package/src/compiler/compiler.ts +275 -0
- package/src/compiler/format.ts +19 -7
- package/src/decompiler/decompile.ts +1 -1
- package/src/decompiler/extract.ts +3 -1
- package/src/errors.ts +40 -24
- package/src/index.internal.ts +1 -1
- package/src/magic/.template.ts +2 -2
- package/src/magic/global/desmos.ts +7 -9
- package/src/magic/global/viewport.ts +11 -17
- package/src/magic/incantation.ts +21 -22
- package/src/magic/local/colour.ts +23 -13
- package/src/magic/local/label.ts +11 -17
- package/src/magic/local/line.ts +2 -2
- package/src/options.ts +81 -47
- package/src/parser/ast.ts +1 -21
- package/src/parser/desmost-parser.ts +139 -143
- package/src/parser/generic-parser.ts +82 -40
- package/src/utils.ts +25 -3
- package/dist/compiler/evaluate.d.ts +0 -18
- package/dist/compiler/evaluate.d.ts.map +0 -1
- package/dist/compiler/evaluate.js +0 -93
- package/dist/compiler/evaluate.js.map +0 -1
- package/dist/desmos.d.ts +0 -16
- package/dist/desmos.d.ts.map +0 -1
- package/dist/desmos.js +0 -19
- package/dist/desmos.js.map +0 -1
- package/src/compiler/evaluate.ts +0 -128
- package/src/desmos.ts +0 -22
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GenericParser } from "./generic-parser.js";
|
|
2
2
|
import { Ast } from "./ast.js";
|
|
3
|
-
import { NO_MATCH,
|
|
3
|
+
import { NO_MATCH, DesmostError } 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
6
|
/**
|
|
@@ -14,47 +14,66 @@ export class DesmostParser extends GenericParser {
|
|
|
14
14
|
}
|
|
15
15
|
// == TOP-LEVEL == //
|
|
16
16
|
/**
|
|
17
|
-
* Parse the next semantic block of source code
|
|
17
|
+
* Parse the next semantic block of source code.
|
|
18
|
+
*
|
|
19
|
+
* This returns:
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* // an AST block(s) + any errors encountered
|
|
23
|
+
* { blocks: Ast[], errors: [...] }
|
|
24
|
+
*
|
|
25
|
+
* // ignored block + any errors encountered
|
|
26
|
+
* { blocks: [], errors: [...] }
|
|
27
|
+
*
|
|
28
|
+
* // parser has reached the end of the source
|
|
29
|
+
* undefined
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* `block: null` could be ignored content like comments, or it could be a parse that couldn't recover and so failed to produce a block.
|
|
18
33
|
*/
|
|
19
34
|
parse_next() {
|
|
20
|
-
this.
|
|
35
|
+
this.errors = [];
|
|
36
|
+
this.eat_whitespace();
|
|
21
37
|
if (this.out_of_bounds()) {
|
|
22
|
-
return
|
|
38
|
+
return undefined;
|
|
23
39
|
}
|
|
40
|
+
let blocks = [];
|
|
24
41
|
if (this.current === "%") {
|
|
42
|
+
// comment
|
|
25
43
|
if (this.options?.ignore_comments) {
|
|
26
|
-
// ignore comment
|
|
27
44
|
this.parse_line();
|
|
28
|
-
this.consume_end_of_block();
|
|
29
|
-
return this.parse_next();
|
|
30
45
|
}
|
|
31
46
|
else {
|
|
32
|
-
|
|
33
|
-
var expr = this.parse_comment();
|
|
47
|
+
blocks.push(this.parse_comment());
|
|
34
48
|
}
|
|
35
49
|
}
|
|
36
50
|
else if (this.current === "/") {
|
|
37
51
|
let r = this.parse_pre_sep();
|
|
38
|
-
// 1 global
|
|
39
52
|
if ("global" in r) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
if (incantations.length > 0) {
|
|
45
|
-
this.parse_sep();
|
|
53
|
+
// 1 global
|
|
54
|
+
if (r.global !== null) {
|
|
55
|
+
blocks.push(r.global);
|
|
56
|
+
}
|
|
46
57
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
58
|
+
else {
|
|
59
|
+
// 1+ locals + 1 expr
|
|
60
|
+
let incantations = r.locals;
|
|
61
|
+
if (incantations.length > 0) {
|
|
62
|
+
this.parse_sep();
|
|
63
|
+
}
|
|
64
|
+
let block = this.parse_post_sep();
|
|
65
|
+
for (let invocation of incantations) {
|
|
66
|
+
block.incantations.push(invocation);
|
|
67
|
+
}
|
|
68
|
+
blocks.push(block);
|
|
50
69
|
}
|
|
51
70
|
}
|
|
52
71
|
else {
|
|
53
72
|
// 1 expr
|
|
54
|
-
|
|
73
|
+
blocks.push(this.parse_post_sep());
|
|
55
74
|
}
|
|
56
|
-
this.
|
|
57
|
-
return
|
|
75
|
+
this.eat_end_of_block();
|
|
76
|
+
return { blocks, errors: this.errors };
|
|
58
77
|
}
|
|
59
78
|
/**
|
|
60
79
|
* Parse Desmost syntax before the `::` separator, which may be:
|
|
@@ -64,28 +83,64 @@ export class DesmostParser extends GenericParser {
|
|
|
64
83
|
*/
|
|
65
84
|
parse_pre_sep() {
|
|
66
85
|
// 1 global incantation
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
86
|
+
try {
|
|
87
|
+
let r = this.try_parse_incantation(GLOBAL_INCANTATIONS);
|
|
88
|
+
if (r !== NO_MATCH) {
|
|
89
|
+
this.eat_whitespace();
|
|
90
|
+
return { global: r };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
this.errors.push(e);
|
|
95
|
+
return { global: null };
|
|
71
96
|
}
|
|
72
97
|
// 1+ local incantations
|
|
73
98
|
let incantations = [];
|
|
74
99
|
while (this.current === "/") {
|
|
75
|
-
|
|
100
|
+
try {
|
|
101
|
+
var invocation = this.try_parse_incantation(LOCAL_INCANTATIONS);
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
this.errors.push(e);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
76
107
|
if (invocation === NO_MATCH)
|
|
77
108
|
break;
|
|
78
109
|
incantations.push(invocation);
|
|
110
|
+
this.eat_newlines();
|
|
79
111
|
}
|
|
80
|
-
return {
|
|
112
|
+
return { locals: incantations };
|
|
81
113
|
}
|
|
82
114
|
/**
|
|
83
115
|
* Parse the Desmost `::` separator.
|
|
84
116
|
*/
|
|
85
117
|
parse_sep() {
|
|
86
|
-
this.
|
|
87
|
-
|
|
88
|
-
|
|
118
|
+
this.eat_newlines();
|
|
119
|
+
try {
|
|
120
|
+
this.eat("::", {
|
|
121
|
+
msg: `Expected \`::\` separator between local incantations and expression, but found: \`${this.preview()}\``,
|
|
122
|
+
hint: `Use \`/incantation :: ${this.preview()}\``,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
if (!this.peek_line().includes("::"))
|
|
127
|
+
throw e;
|
|
128
|
+
let init = this.i;
|
|
129
|
+
while (this.current !== ":" || this.peek() !== ":") {
|
|
130
|
+
this.advance();
|
|
131
|
+
}
|
|
132
|
+
const peek = 7;
|
|
133
|
+
const start = "...".length + Math.round(1.5 * peek);
|
|
134
|
+
this.errors.push(new DesmostError.ExcessInput({
|
|
135
|
+
msg: `While consuming \`::\` separator`,
|
|
136
|
+
show: {
|
|
137
|
+
text: `...${this.source.slice(init - peek, this.i + peek)}...`,
|
|
138
|
+
span: new utils.Range(start, start + this.i - init)
|
|
139
|
+
}
|
|
140
|
+
}));
|
|
141
|
+
this.eat("::");
|
|
142
|
+
}
|
|
143
|
+
this.eat_newlines();
|
|
89
144
|
}
|
|
90
145
|
/**
|
|
91
146
|
* Parse Desmost syntax after the `::` separator, which may be:
|
|
@@ -94,7 +149,7 @@ export class DesmostParser extends GenericParser {
|
|
|
94
149
|
* - 1 expression incantation
|
|
95
150
|
*/
|
|
96
151
|
parse_post_sep() {
|
|
97
|
-
this.
|
|
152
|
+
this.eat_whitespace();
|
|
98
153
|
switch (this.current) {
|
|
99
154
|
// empty block
|
|
100
155
|
case "\n":
|
|
@@ -139,47 +194,19 @@ export class DesmostParser extends GenericParser {
|
|
|
139
194
|
return this.source.slice(init, this.i).trim();
|
|
140
195
|
}
|
|
141
196
|
/**
|
|
142
|
-
* Attempt to parse
|
|
197
|
+
* Attempt to parse an incantation invocation allowed by `incantations`.
|
|
143
198
|
*/
|
|
144
|
-
|
|
199
|
+
try_parse_incantation(incantations) {
|
|
145
200
|
let init = this.i;
|
|
146
|
-
if (this.
|
|
201
|
+
if (this.try_eat("/") === NO_MATCH)
|
|
147
202
|
return NO_MATCH;
|
|
148
|
-
let
|
|
149
|
-
if (
|
|
203
|
+
let ident = this.try_eat_identifier();
|
|
204
|
+
if (ident === NO_MATCH) {
|
|
150
205
|
this.i = init;
|
|
151
206
|
return NO_MATCH;
|
|
152
207
|
}
|
|
153
|
-
let
|
|
154
|
-
if (incantation
|
|
155
|
-
if (this.current === "{") {
|
|
156
|
-
data = this.parse_incantation_arg(incantation.arg_type);
|
|
157
|
-
}
|
|
158
|
-
else if (incantation.requires_arg) {
|
|
159
|
-
return {
|
|
160
|
-
kind: Ast.Kind.INVALID_INCANTATION,
|
|
161
|
-
incantation,
|
|
162
|
-
error: new UnrecoverableError.MissingInput(`No argument provided for /${incantation.identifier}, which requires an argument of type: \`${incantation.arg_type}\``)
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
this.consume_spaces();
|
|
167
|
-
// @ts-expect-error: FIXME
|
|
168
|
-
return {
|
|
169
|
-
kind: Ast.Kind.INCANTATION_INVOCATION,
|
|
170
|
-
incantation,
|
|
171
|
-
arg_raw: data,
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Attempt to parse a local incantation invocation.
|
|
176
|
-
*/
|
|
177
|
-
try_parse_local_incantation() {
|
|
178
|
-
let init = this.i;
|
|
179
|
-
if (this.try_consume("/") === NO_MATCH)
|
|
180
|
-
return NO_MATCH;
|
|
181
|
-
let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
|
|
182
|
-
if (incantation === NO_MATCH) {
|
|
208
|
+
let incantation = incantations.find(inc => inc.identifier === ident || inc.alias === ident);
|
|
209
|
+
if (incantation == undefined) {
|
|
183
210
|
this.i = init;
|
|
184
211
|
return NO_MATCH;
|
|
185
212
|
}
|
|
@@ -189,15 +216,12 @@ export class DesmostParser extends GenericParser {
|
|
|
189
216
|
arg_raw = this.parse_incantation_arg(incantation.arg_type);
|
|
190
217
|
}
|
|
191
218
|
else if (incantation.requires_arg) {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
incantation
|
|
195
|
-
|
|
196
|
-
};
|
|
219
|
+
throw new DesmostError.MissingInput({
|
|
220
|
+
msg: `No argument provided for /${incantation.identifier}`,
|
|
221
|
+
hint: `/${incantation.identifier} requires an argument of type: \`${incantation.arg_type}\``,
|
|
222
|
+
});
|
|
197
223
|
}
|
|
198
224
|
}
|
|
199
|
-
this.consume_whitespace();
|
|
200
|
-
// @ts-expect-error: FIXME
|
|
201
225
|
return {
|
|
202
226
|
kind: Ast.Kind.INCANTATION_INVOCATION,
|
|
203
227
|
incantation,
|
|
@@ -209,14 +233,19 @@ export class DesmostParser extends GenericParser {
|
|
|
209
233
|
*/
|
|
210
234
|
try_parse_expr_incantation() {
|
|
211
235
|
let init = this.i;
|
|
212
|
-
if (this.
|
|
236
|
+
if (this.try_eat("/") === NO_MATCH)
|
|
213
237
|
return NO_MATCH;
|
|
214
|
-
let
|
|
215
|
-
if (
|
|
216
|
-
|
|
238
|
+
let ident = this.try_eat_identifier();
|
|
239
|
+
if (ident === NO_MATCH) {
|
|
240
|
+
this.i = init;
|
|
241
|
+
return NO_MATCH;
|
|
242
|
+
}
|
|
243
|
+
let incantation = EXPR_INCANTATIONS.find(inc => inc.identifier === ident || inc.alias === ident);
|
|
244
|
+
if (incantation == undefined) {
|
|
217
245
|
this.i = init;
|
|
218
246
|
return NO_MATCH;
|
|
219
247
|
}
|
|
248
|
+
/* NOTE: All expression incantations currently require arguments, and all for the foreseeable future will too */
|
|
220
249
|
let arg_raw = this.parse_incantation_arg(incantation.arg_type);
|
|
221
250
|
let data = {};
|
|
222
251
|
incantation.apply(data, arg_raw);
|
|
@@ -226,23 +255,6 @@ export class DesmostParser extends GenericParser {
|
|
|
226
255
|
incantations: [],
|
|
227
256
|
};
|
|
228
257
|
}
|
|
229
|
-
/**
|
|
230
|
-
* Attempt to parse an incantation identifier.
|
|
231
|
-
*/
|
|
232
|
-
try_parse_identifier(incantations) {
|
|
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
|
|
235
|
-
let r = this.try_consume(incantation.identifier);
|
|
236
|
-
if (r !== NO_MATCH)
|
|
237
|
-
return incantation;
|
|
238
|
-
if (incantation.alias != undefined) {
|
|
239
|
-
let r = this.try_consume(incantation.alias);
|
|
240
|
-
if (r !== NO_MATCH)
|
|
241
|
-
return incantation;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
return NO_MATCH;
|
|
245
|
-
}
|
|
246
258
|
/**
|
|
247
259
|
* Parse an argument to an incantation, enclosed in `{}`.
|
|
248
260
|
*
|
|
@@ -309,7 +321,9 @@ export class DesmostParser extends GenericParser {
|
|
|
309
321
|
*/
|
|
310
322
|
arg_type) {
|
|
311
323
|
let init = this.i;
|
|
312
|
-
this.
|
|
324
|
+
this.eat("{", {
|
|
325
|
+
msg: `Expected \`{\` to start incantation argument, but found: \`${this.preview()}\``
|
|
326
|
+
});
|
|
313
327
|
/** The context stack to keep track of when the closing `}` is encountered. */
|
|
314
328
|
let stack = new ContextStack();
|
|
315
329
|
/** Indices at which to later insert `"` quotes. */
|
|
@@ -318,7 +332,7 @@ export class DesmostParser extends GenericParser {
|
|
|
318
332
|
// If the last character was an escape, we don't care at all what the next character is!
|
|
319
333
|
// This handles \\ double escape perfectly fine, since the first negates the second
|
|
320
334
|
if (stack.try_pop(Ctx.ESCAPE)) {
|
|
321
|
-
this.advance(
|
|
335
|
+
this.advance({ msg: `While parsing incantation argument`, debug: stack.debug() });
|
|
322
336
|
}
|
|
323
337
|
let top = stack.top;
|
|
324
338
|
switch (this.current) {
|
|
@@ -337,7 +351,7 @@ export class DesmostParser extends GenericParser {
|
|
|
337
351
|
stack.push(Ctx.ENUM);
|
|
338
352
|
indices_to_insert_quotes.push(this.i);
|
|
339
353
|
}
|
|
340
|
-
else if (top === Ctx.ENUM && this.current?.match(/[^a-zA-Z]/)) {
|
|
354
|
+
else if (top === Ctx.ENUM && this.current?.match(/[^a-zA-Z-_]/)) {
|
|
341
355
|
stack.pop();
|
|
342
356
|
indices_to_insert_quotes.push(this.i);
|
|
343
357
|
if (indices_to_insert_quotes.length % 2 != 0) {
|
|
@@ -365,7 +379,7 @@ export class DesmostParser extends GenericParser {
|
|
|
365
379
|
break;
|
|
366
380
|
}
|
|
367
381
|
}
|
|
368
|
-
this.advance(
|
|
382
|
+
this.advance({ msg: `While parsing incantation argument`, debug: stack.debug() });
|
|
369
383
|
}
|
|
370
384
|
/* NOTE: Cut in by 1 on both sides to exclude {} braces */
|
|
371
385
|
let raw = utils.chars(this.source, init + 1, this.i - 1);
|
|
@@ -413,7 +427,7 @@ class ContextStack {
|
|
|
413
427
|
return false;
|
|
414
428
|
}
|
|
415
429
|
}
|
|
416
|
-
/**
|
|
430
|
+
/** If `ctx` is in the context stack, backtrack until it is popped, returning `true` if so. */
|
|
417
431
|
force_pop(ctx, options) {
|
|
418
432
|
if (this.#should_skip(options))
|
|
419
433
|
return false;
|
|
@@ -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,17 +1,20 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DesmostError } from "../errors.js";
|
|
2
|
+
import type { NoMatch, Fallible } from "../errors.js";
|
|
2
3
|
/**
|
|
3
4
|
* A stateful lazy parser, providing core (non-Desmost-specific) methods for parsing.
|
|
4
5
|
*
|
|
5
|
-
* Many methods come in `<verb>` and `try_<verb>` pairs. On parsing failure, the former throws an `
|
|
6
|
+
* Many methods come in `<verb>` and `try_<verb>` pairs. On parsing failure, the former throws an `DesmostError`, but the latter instead backtracks and only returns a `NoMatch`. The former is for expected parses, while the latter is for speculative parsing.
|
|
6
7
|
*/
|
|
7
8
|
export declare class GenericParser {
|
|
8
9
|
#private;
|
|
9
|
-
/** The source code
|
|
10
|
-
protected source: string;
|
|
10
|
+
/** The source code to parse. */
|
|
11
|
+
protected readonly source: string;
|
|
11
12
|
/** The current position in the source code the parser is pointing to. */
|
|
12
13
|
protected i: number;
|
|
13
14
|
/** The number of characters in the source code. */
|
|
14
|
-
protected length: number;
|
|
15
|
+
protected readonly length: number;
|
|
16
|
+
/** Accumulated errors in the current block being parsed. */
|
|
17
|
+
errors: DesmostError[];
|
|
15
18
|
/** Create a parser for parsing `source`. */
|
|
16
19
|
constructor(source: string);
|
|
17
20
|
/**
|
|
@@ -22,8 +25,13 @@ export declare class GenericParser {
|
|
|
22
25
|
* Get the character the parser is currently pointing at, or `undefined` if the parser is out-of-bounds.
|
|
23
26
|
*/
|
|
24
27
|
protected get current(): string | undefined;
|
|
28
|
+
protected peek(): string | undefined;
|
|
25
29
|
/**
|
|
26
|
-
* Peek
|
|
30
|
+
* Peek the rest of the content in the current line.
|
|
31
|
+
*/
|
|
32
|
+
protected peek_line(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Peek a snippet of the upcoming source text for display purposes.
|
|
27
35
|
*
|
|
28
36
|
* Optionally start from the given `idx`.
|
|
29
37
|
*/
|
|
@@ -31,9 +39,9 @@ export declare class GenericParser {
|
|
|
31
39
|
/**
|
|
32
40
|
* Advance to the next character, skipping ignored characters.
|
|
33
41
|
*
|
|
34
|
-
* Errors if the parser is
|
|
42
|
+
* Errors if the parser is already out-of-bounds *before* advancing.
|
|
35
43
|
*/
|
|
36
|
-
protected advance(
|
|
44
|
+
protected advance(error_data?: DesmostError.Data): Fallible<void>;
|
|
37
45
|
/**
|
|
38
46
|
* Attempt to advance to the next character, skipping ignored characters.
|
|
39
47
|
*
|
|
@@ -43,21 +51,22 @@ export declare class GenericParser {
|
|
|
43
51
|
/**
|
|
44
52
|
* Consume `raw`, erroring if `raw` was not found.
|
|
45
53
|
*/
|
|
46
|
-
protected
|
|
54
|
+
protected eat(raw: string, error_data?: DesmostError.Data): Fallible<void>;
|
|
47
55
|
/**
|
|
48
56
|
* Attempt to consume `raw`, backtracking if `raw` was not found.
|
|
49
57
|
*/
|
|
50
|
-
protected
|
|
58
|
+
protected try_eat(raw: string): void | NoMatch;
|
|
59
|
+
protected try_eat_identifier(): string | NoMatch;
|
|
51
60
|
/**
|
|
52
|
-
* Consume 0 or more space characters.
|
|
61
|
+
* Consume 0 or more space or tab characters.
|
|
53
62
|
*/
|
|
54
|
-
protected
|
|
63
|
+
protected eat_whitespace(): void;
|
|
55
64
|
/**
|
|
56
65
|
* Consume 0 or more whitespace characters.
|
|
57
66
|
*
|
|
58
67
|
* Same as `.consume_spaces()`, but allows tabs and newlines.
|
|
59
68
|
*/
|
|
60
|
-
protected
|
|
61
|
-
protected
|
|
69
|
+
protected eat_newlines(): void;
|
|
70
|
+
protected eat_end_of_block(error_data?: DesmostError.Data): Fallible<void>;
|
|
62
71
|
}
|
|
63
72
|
//# sourceMappingURL=generic-parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-parser.d.ts","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generic-parser.d.ts","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAQnD;;;;GAIG;AACH,qBAAa,aAAa;;IAEzB,gCAAgC;IAChC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEjC,yEAAyE;IACzE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAI;IAEvB,mDAAmD;IACnD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEjC,4DAA4D;IAC5D,MAAM,EAAE,YAAY,EAAE,CAAA;IAGtB,4CAA4C;gBAChC,MAAM,EAAE,MAAM;IAQ1B;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,OAAO;IAKlC;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,MAAM,GAAG,SAAS,CAG1C;IAED,SAAS,CAAC,IAAI,IAAI,MAAM,GAAG,SAAS;IAKpC;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM;IAK7B;;;;OAIG;IACI,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAUpC;;;;OAIG;IACH,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAQjE;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI,GAAG,OAAO;IAkBvC;;OAEG;IACH,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAgC1E;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAkB9C,SAAS,CAAC,kBAAkB,IAAI,MAAM,GAAG,OAAO;IAgBhD;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAUhC;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAc9B,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;CAW1E"}
|