desmost 0.6.1 → 0.7.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 (40) hide show
  1. package/dist/compiler/compile.d.ts +1 -1
  2. package/dist/compiler/compile.d.ts.map +1 -1
  3. package/dist/compiler/compile.js +34 -17
  4. package/dist/compiler/compile.js.map +1 -1
  5. package/dist/compiler/evaluate.js +3 -7
  6. package/dist/compiler/evaluate.js.map +1 -1
  7. package/dist/compiler/options.d.ts +4 -3
  8. package/dist/compiler/options.d.ts.map +1 -1
  9. package/dist/compiler/options.js +4 -3
  10. package/dist/compiler/options.js.map +1 -1
  11. package/dist/errors.d.ts +2 -3
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js +1 -1
  14. package/dist/errors.js.map +1 -1
  15. package/dist/magic/expr/text.d.ts +1 -0
  16. package/dist/magic/expr/text.d.ts.map +1 -1
  17. package/dist/magic/expr/text.js +1 -0
  18. package/dist/magic/expr/text.js.map +1 -1
  19. package/dist/magic/global/viewport.d.ts.map +1 -1
  20. package/dist/magic/global/viewport.js.map +1 -1
  21. package/dist/magic/local/label.js +1 -2
  22. package/dist/magic/local/label.js.map +1 -1
  23. package/dist/parser/desmost-parser.d.ts +5 -5
  24. package/dist/parser/desmost-parser.d.ts.map +1 -1
  25. package/dist/parser/desmost-parser.js +19 -19
  26. package/dist/parser/desmost-parser.js.map +1 -1
  27. package/dist/parser/generic-parser.d.ts +3 -3
  28. package/dist/parser/generic-parser.d.ts.map +1 -1
  29. package/dist/parser/generic-parser.js +5 -5
  30. package/dist/parser/generic-parser.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/compiler/compile.ts +55 -25
  33. package/src/compiler/evaluate.ts +3 -7
  34. package/src/compiler/options.ts +21 -13
  35. package/src/errors.ts +3 -10
  36. package/src/magic/expr/text.ts +1 -0
  37. package/src/magic/global/viewport.ts +1 -0
  38. package/src/magic/local/label.ts +1 -1
  39. package/src/parser/desmost-parser.ts +23 -27
  40. package/src/parser/generic-parser.ts +8 -8
@@ -1,9 +1,9 @@
1
1
  import { type DesmostOptions } from "./options.js";
2
2
  import { Ast } from "../parser/index.js";
3
- export declare function compile(desmos: Desmos.Calculator, source: string, options?: DesmostOptions): void | DesmostDebug;
4
3
  export interface DesmostDebug {
5
4
  duration: number;
6
5
  num_blocks: number;
7
6
  ast: Ast[];
8
7
  }
8
+ export declare function compile(desmos: Desmos.Calculator, source: string, options?: DesmostOptions): void | DesmostDebug;
9
9
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAiB,GAAG,EAAE,MAAM,WAAW,CAAC;AAqB/C,wBAAgB,OAAO,CAErB,MAAM,EAAE,MAAM,CAAC,UAAU,EAGzB,MAAM,EAAE,MAAM,EAGd,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI,GAAG,YAAY,CA4FrB;AAGD,MAAM,WAAW,YAAY;IAE3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,GAAG,EAAE,CAAC;CACZ"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAiB,GAAG,EAAE,MAAM,WAAW,CAAC;AAI/C,MAAM,WAAW,YAAY;IAE3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,GAAG,EAAE,CAAC;CACZ;AAoBD,wBAAgB,OAAO,CAErB,MAAM,EAAE,MAAM,CAAC,UAAU,EAGzB,MAAM,EAAE,MAAM,EAGd,OAAO,CAAC,EAAE,cAAc,GACvB,IAAI,GAAG,YAAY,CAkHrB"}
@@ -1,7 +1,6 @@
1
1
  import { fill_defaults } from "./options.js";
2
2
  import { evaluate_global_incantation, evaluate_expr, evaluate_error } from "./evaluate.js";
3
3
  import { DesmostParser, Ast } from "../parser/index.js";
4
- import { UnrecoverableError } from "../errors.js";
5
4
  export function compile(desmos, source, options) {
6
5
  if (desmos == undefined) {
7
6
  console.error(`Desmost: No \`Desmos.Calculator\` instance provided, aborting compilation!`);
@@ -11,15 +10,19 @@ export function compile(desmos, source, options) {
11
10
  console.error(`Desmost: No source code provided, aborting compilation!`);
12
11
  return;
13
12
  }
14
- let t_init = performance.now();
15
- let num_blocks = 0;
16
- let ast = [];
17
13
  let opts = fill_defaults(options);
14
+ if (opts.debug) {
15
+ var t_init = performance.now();
16
+ var num_blocks = 0;
17
+ var ast = [];
18
+ }
18
19
  let parser = new DesmostParser(source, opts);
20
+ let errors = [];
19
21
  if (opts.place_errors === "start") {
20
- desmos.setExpression({ id: "deferred-start", latex: "" });
22
+ desmos.setExpression({ id: "deferred-start", latex: " " });
21
23
  }
22
- let errors = [];
24
+ let seen_non_blank = false;
25
+ let pending_blanks = 0;
23
26
  try {
24
27
  while (true) {
25
28
  let r = parser.parse_next();
@@ -35,10 +38,21 @@ export function compile(desmos, source, options) {
35
38
  defer = evaluate_global_incantation(r, desmos, opts);
36
39
  break;
37
40
  case Ast.Kind.EXPRESSION:
38
- if (opts.ignore_blank_lines && r.data.latex === " ")
41
+ if (r.data.latex === " ") {
42
+ if (opts.ignore_all_blanks)
43
+ break;
44
+ if (!seen_non_blank && !opts.keep_leading_blanks)
45
+ break;
46
+ pending_blanks++;
39
47
  break;
40
- defer = evaluate_expr(r, desmos, opts);
41
- break;
48
+ }
49
+ else {
50
+ flush_pending_blanks(desmos, pending_blanks);
51
+ pending_blanks = 0;
52
+ seen_non_blank = true;
53
+ defer = evaluate_expr(r, desmos, opts);
54
+ break;
55
+ }
42
56
  case Ast.Kind.INVALID_INCANTATION:
43
57
  defer = evaluate_error(r.error, desmos, opts);
44
58
  break;
@@ -49,12 +63,10 @@ export function compile(desmos, source, options) {
49
63
  }
50
64
  }
51
65
  catch (e) {
52
- if (e instanceof UnrecoverableError) {
53
- errors.push(e);
54
- }
55
- else {
56
- throw e;
57
- }
66
+ errors.push(e.message);
67
+ }
68
+ if (opts.keep_trailing_blanks) {
69
+ flush_pending_blanks(desmos, pending_blanks);
58
70
  }
59
71
  if (errors.length > 0) {
60
72
  let expr = {
@@ -74,9 +86,14 @@ export function compile(desmos, source, options) {
74
86
  if (opts.debug) {
75
87
  return {
76
88
  duration: performance.now() - t_init,
77
- num_blocks,
78
- ast,
89
+ num_blocks: num_blocks,
90
+ ast: ast,
79
91
  };
80
92
  }
81
93
  }
94
+ function flush_pending_blanks(desmos, count) {
95
+ for (let i = 0; i < count; i++) {
96
+ desmos.setExpression({ latex: ` ` });
97
+ }
98
+ }
82
99
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"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"}
@@ -75,13 +75,9 @@ function normalise_latex(latex) {
75
75
  return latex;
76
76
  }
77
77
  function prettify_latex(latex) {
78
- latex = latex.replaceAll(/(?<!\\left)\(/g, "\\left(");
79
- latex = latex.replaceAll(/(?<!\\right)\)/g, "\\right)");
80
- latex = latex.replaceAll(/(?<!\\left)\[/g, "\\left[");
81
- latex = latex.replaceAll(/(?<!\\right)\]/g, "\\right]");
82
- latex = latex.replaceAll("\\{", "\\left\\{");
83
- latex = latex.replaceAll("\\}", "\\right\\}");
84
- latex = latex.replaceAll(/(?<=[^\w]|^)\\?(mean|median|count|total|repeat|join|sort|shuffle|unique|mod|ceil|floor|round|sign)(?=\(|\\left\()/g, "\\operatorname{$1}");
78
+ latex = latex.replaceAll(/(?<!\\left)(\(|\[|\\\{)/g, "\\left$1");
79
+ latex = latex.replaceAll(/(?<!\\right)(\)|\]|\\\})/g, "\\right$1");
80
+ latex = latex.replaceAll(/(?<=[^\w]|^)\\?(mean|median|count|total|repeat|join|sort|shuffle|unique|mod|ceil|floor|round|sign) ?(?=\(|\\left\()/g, "\\operatorname{$1}");
85
81
  return latex;
86
82
  }
87
83
  //# sourceMappingURL=evaluate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/compiler/evaluate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/compiler/evaluate.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,11 @@ export interface DesmostOptions {
2
2
  errors?: "surface" | "crash" | "suppress";
3
3
  place_errors?: "inline" | "end" | "start";
4
4
  error_prefix?: string;
5
- ignore_comments?: boolean;
6
- ignore_blank_lines?: boolean;
7
- ignore_trailing_blanks?: boolean;
8
5
  prettify?: boolean;
6
+ ignore_comments?: boolean;
7
+ ignore_all_blanks?: boolean;
8
+ keep_leading_blanks?: boolean;
9
+ keep_trailing_blanks?: boolean;
9
10
  debug?: boolean;
10
11
  }
11
12
  export declare function fill_defaults(options: Partial<DesmostOptions> | undefined): Required<DesmostOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/compiler/options.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAS7B,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;IASzC,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA;IASzC,YAAY,CAAC,EAAE,MAAM,CAAA;IAOrB,eAAe,CAAC,EAAE,OAAO,CAAA;IAOzB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAO5B,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAOhC,QAAQ,CAAC,EAAE,OAAO,CAAA;IASlB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAgBpG"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/compiler/options.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAS7B,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;IASzC,YAAY,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAA;IASzC,YAAY,CAAC,EAAE,MAAM,CAAA;IAOrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAOlB,eAAe,CAAC,EAAE,OAAO,CAAA;IAOzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAO3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAO7B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAS9B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAMD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAiBpG"}
@@ -3,10 +3,11 @@ export function fill_defaults(options) {
3
3
  out.errors ??= "surface";
4
4
  out.place_errors ??= "inline";
5
5
  out.error_prefix ??= "[DESMOST ERROR]\n";
6
- out.ignore_comments ??= false;
7
- out.ignore_blank_lines ??= false;
8
- out.ignore_trailing_blanks ??= false;
9
6
  out.prettify ??= true;
7
+ out.ignore_comments ??= false;
8
+ out.ignore_all_blanks ??= false;
9
+ out.keep_leading_blanks ??= false;
10
+ out.keep_trailing_blanks ??= false;
10
11
  out.debug ??= false;
11
12
  return out;
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/compiler/options.ts"],"names":[],"mappings":"AAgFA,MAAM,UAAU,aAAa,CAAC,OAA4C;IAExE,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAErC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;IACzB,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC;IAC9B,GAAG,CAAC,YAAY,KAAK,mBAAmB,CAAC;IAEzC,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC;IAC9B,GAAG,CAAC,kBAAkB,KAAK,KAAK,CAAC;IACjC,GAAG,CAAC,sBAAsB,KAAK,KAAK,CAAC;IAErC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;IACtB,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;IAEpB,OAAO,GAA+B,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/compiler/options.ts"],"names":[],"mappings":"AAuFA,MAAM,UAAU,aAAa,CAAC,OAA4C;IAExE,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAErC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;IACzB,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC;IAC9B,GAAG,CAAC,YAAY,KAAK,mBAAmB,CAAC;IAEzC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;IAEtB,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC;IAC9B,GAAG,CAAC,iBAAiB,KAAK,KAAK,CAAC;IAChC,GAAG,CAAC,mBAAmB,KAAK,KAAK,CAAC;IAClC,GAAG,CAAC,oBAAoB,KAAK,KAAK,CAAC;IACnC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;IAEpB,OAAO,GAA+B,CAAC;AACzC,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -14,12 +14,11 @@ export declare namespace UnrecoverableError {
14
14
  class InvalidArgument extends UnrecoverableError {
15
15
  }
16
16
  }
17
- export declare const FAIL: unique symbol;
18
- export type RecoverableFail = typeof FAIL & {
17
+ export declare const NO_MATCH: unique symbol;
18
+ export type NoMatch = typeof NO_MATCH & {
19
19
  readonly __brand?: unique symbol;
20
20
  };
21
21
  export type Unrecoverable<Result> = Result | Result & {
22
22
  readonly __brand?: unique symbol;
23
23
  };
24
- export type MaybeRecoverable<Result> = RecoverableFail | Unrecoverable<Result>;
25
24
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAKA,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,yBAAiB,kBAAkB,CACnC;IAEE,MAAa,aAAc,SAAQ,kBAAkB;KAAG;IAGxD,MAAa,YAAa,SAAQ,kBAAkB;KAAG;IAGvD,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAG1D,MAAa,WAAY,SAAQ,kBAAkB;KAAG;IAItD,MAAa,kBAAmB,SAAQ,kBAAkB;KAAG;IAG7D,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;CAC3D;AAID,eAAO,MAAM,IAAI,eAAiB,CAAC;AAGnC,MAAM,MAAM,eAAe,GAAG,OAAO,IAAI,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAIjF,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAO3F,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAKA,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,yBAAiB,kBAAkB,CACnC;IAEE,MAAa,aAAc,SAAQ,kBAAkB;KAAG;IAGxD,MAAa,YAAa,SAAQ,kBAAkB;KAAG;IAGvD,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAG1D,MAAa,WAAY,SAAQ,kBAAkB;KAAG;IAItD,MAAa,kBAAmB,SAAQ,kBAAkB;KAAG;IAG7D,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;CAC3D;AAID,eAAO,MAAM,QAAQ,eAAqB,CAAC;AAG3C,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC;AAI7E,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAC"}
package/dist/errors.js CHANGED
@@ -20,5 +20,5 @@ export class UnrecoverableError extends Error {
20
20
  }
21
21
  UnrecoverableError.InvalidArgument = InvalidArgument;
22
22
  })(UnrecoverableError || (UnrecoverableError = {}));
23
- export const FAIL = Symbol("fail");
23
+ export const NO_MATCH = Symbol("no-match");
24
24
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,WAAiB,kBAAkB;IAGjC,MAAa,aAAc,SAAQ,kBAAkB;KAAG;IAA3C,gCAAa,gBAA8B,CAAA;IAGxD,MAAa,YAAa,SAAQ,kBAAkB;KAAG;IAA1C,+BAAY,eAA8B,CAAA;IAGvD,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAA7C,kCAAe,kBAA8B,CAAA;IAG1D,MAAa,WAAY,SAAQ,kBAAkB;KAAG;IAAzC,8BAAW,cAA8B,CAAA;IAItD,MAAa,kBAAmB,SAAQ,kBAAkB;KAAG;IAAhD,qCAAkB,qBAA8B,CAAA;IAG7D,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAA7C,kCAAe,kBAA8B,CAAA;AAC5D,CAAC,EApBgB,kBAAkB,KAAlB,kBAAkB,QAoBlC;AAID,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,WAAiB,kBAAkB;IAGjC,MAAa,aAAc,SAAQ,kBAAkB;KAAG;IAA3C,gCAAa,gBAA8B,CAAA;IAGxD,MAAa,YAAa,SAAQ,kBAAkB;KAAG;IAA1C,+BAAY,eAA8B,CAAA;IAGvD,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAA7C,kCAAe,kBAA8B,CAAA;IAG1D,MAAa,WAAY,SAAQ,kBAAkB;KAAG;IAAzC,8BAAW,cAA8B,CAAA;IAItD,MAAa,kBAAmB,SAAQ,kBAAkB;KAAG;IAAhD,qCAAkB,qBAA8B,CAAA;IAG7D,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAA7C,kCAAe,kBAA8B,CAAA;AAC5D,CAAC,EApBgB,kBAAkB,KAAlB,kBAAkB,QAoBlC;AAID,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { Incantation, ArgIncantation, type EXPR } from "../incantation.js";
2
2
  export declare class TextIncantation extends ArgIncantation<EXPR> {
3
3
  readonly description = "Produce a text expression (\u201CAdd Note\u201D in the Desmos GUI).";
4
4
  readonly identifier = "text";
5
+ readonly alias = "note";
5
6
  readonly requires_arg = true;
6
7
  readonly arg_type = Incantation.ArgType.STRING;
7
8
  apply(target: Desmos.ExpressionState, data: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/magic/expr/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGxE,qBAAa,eAAgB,SAAQ,cAAc,CAAC,IAAI,CAAC;IAEvD,SAAkB,WAAW,yEACkC;IAE/D,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM;CAM5D"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/magic/expr/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGxE,qBAAa,eAAgB,SAAQ,cAAc,CAAC,IAAI,CAAC;IAEvD,SAAkB,WAAW,yEACkC;IAE/D,SAAkB,UAAU,UAAW;IACvC,SAAkB,KAAK,UAAgB;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM;CAM5D"}
@@ -2,6 +2,7 @@ import { Incantation, ArgIncantation } from "../incantation.js";
2
2
  export class TextIncantation extends ArgIncantation {
3
3
  description = "Produce a text expression (“Add Note” in the Desmos GUI).";
4
4
  identifier = "text";
5
+ alias = "note";
5
6
  requires_arg = true;
6
7
  arg_type = Incantation.ArgType.STRING;
7
8
  apply(target, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/magic/expr/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAGxE,MAAM,OAAO,eAAgB,SAAQ,cAAoB;IAErC,WAAW,GACzB,2DAA2D,CAAA;IAE7C,UAAU,GAAK,MAAM,CAAA;IACrB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAY;QAEzD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/magic/expr/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAGxE,MAAM,OAAO,eAAgB,SAAQ,cAAoB;IAErC,WAAW,GACzB,2DAA2D,CAAA;IAE7C,UAAU,GAAK,MAAM,CAAA;IACrB,KAAK,GAAU,MAAM,CAAA;IACrB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAY;QAEzD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QAErB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1E,UAAU,cAAc;IAEtB,IAAI,EAAI,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAI,MAAM,CAAC;CAC/B;AAGD,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE7D,SAAkB,WAAW,sEACyC;IAEtE,SAAkB,UAAU,cAAe;IAC3C,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAE3D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc;CAKtD"}
1
+ {"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1E,UAAU,cAAc;IAEtB,IAAI,EAAI,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAI,MAAM,CAAC;CAC/B;AAGD,qBAAa,mBAAoB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE7D,SAAkB,WAAW,sEACyC;IAEtE,SAAkB,UAAU,cAAe;IAC3C,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAE3D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc;CAMtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAU1E,MAAM,OAAO,mBAAoB,SAAQ,cAAsB;IAE3C,WAAW,GACzB,kEAAkE,CAAA;IAEpD,UAAU,GAAK,UAAU,CAAA;IACzB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAE3D,KAAK,CAAC,MAAyB,EAAE,IAAoB;QAGnD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/magic/global/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAU1E,MAAM,OAAO,mBAAoB,SAAQ,cAAsB;IAE3C,WAAW,GACzB,kEAAkE,CAAA;IAEpD,UAAU,GAAK,UAAU,CAAA;IACzB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAE3D,KAAK,CAAC,MAAyB,EAAE,IAAoB;QAInD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -8,8 +8,7 @@ export class LabelIncantation extends ArgIncantation {
8
8
  apply(target, data) {
9
9
  super.require_expr_type(target.type, "expression");
10
10
  target.label = data.text;
11
- if (data.show != undefined)
12
- target.showLabel = data.show;
11
+ target.showLabel = data.show ?? true;
13
12
  if (data.size != undefined)
14
13
  target.labelSize = data.size;
15
14
  if (data.pos != undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/magic/local/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAYzE,MAAM,OAAO,gBAAiB,SAAQ,cAAqB;IAEvC,WAAW,GACzB,6CAA6C,CAAA;IAE/B,UAAU,GAAK,OAAO,CAAA;IACtB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAkB;QAE/D,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAEzD,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,GAAG,IAAK,SAAS;YAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;IACjE,CAAC;IAEQ,YAAY,CAAC,GAAW;QAE/B,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAiB,CAAC;QAElD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAC1C,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAEvC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO,CAAC;gBACb,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACV,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;oBACd,MAAM;gBAER;oBACE,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAC1C,mCAAmC,GAAG,EAAE,CACzC,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/magic/local/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAYzE,MAAM,OAAO,gBAAiB,SAAQ,cAAqB;IAEvC,WAAW,GACzB,6CAA6C,CAAA;IAE/B,UAAU,GAAK,OAAO,CAAA;IACtB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IAElD,KAAK,CAAC,MAA8B,EAAE,IAAkB;QAE/D,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAErC,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,GAAG,IAAK,SAAS;YAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC;IACjE,CAAC;IAEQ,YAAY,CAAC,GAAW;QAE/B,IAAI,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAiB,CAAC;QAElD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAC1C,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAEvC,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO,CAAC;gBACb,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO;oBACV,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;oBACd,MAAM;gBAER;oBACE,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAC1C,mCAAmC,GAAG,EAAE,CACzC,CAAC;YACN,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { GenericParser } from "./generic-parser.js";
2
2
  import { Ast } from "./ast.js";
3
3
  import type { DesmostOptions } from "../compiler/index.js";
4
- import type { RecoverableFail, Unrecoverable, MaybeRecoverable } from "../errors.js";
4
+ import type { NoMatch, Unrecoverable } from "../errors.js";
5
5
  import { Incantation } from "../magic/index.js";
6
6
  import type { GLOBAL, LOCAL } from "../magic/index.js";
7
7
  export declare class DesmostParser extends GenericParser {
@@ -17,10 +17,10 @@ export declare class DesmostParser extends GenericParser {
17
17
  parse_post_sep(): Unrecoverable<Ast.Expression>;
18
18
  parse_comment(): Unrecoverable<Ast.Expression>;
19
19
  parse_line(): Unrecoverable<string>;
20
- try_parse_global_incantation(): Ast.IncantationInvocation<GLOBAL> | Ast.InvalidInvocation | RecoverableFail;
21
- try_parse_local_incantation(): Ast.IncantationInvocation<LOCAL> | Ast.InvalidInvocation | RecoverableFail;
22
- try_parse_expr_incantation(): MaybeRecoverable<Ast.Expression>;
23
- try_parse_identifier<Effect extends Incantation.Effect>(incantations: Incantation<Effect>[]): Incantation<Effect> | RecoverableFail;
20
+ try_parse_global_incantation(): Ast.IncantationInvocation<GLOBAL> | Ast.InvalidInvocation | NoMatch;
21
+ try_parse_local_incantation(): Ast.IncantationInvocation<LOCAL> | Ast.InvalidInvocation | NoMatch;
22
+ try_parse_expr_incantation(): Unrecoverable<Ast.Expression | NoMatch>;
23
+ try_parse_identifier<Effect extends Incantation.Effect>(incantations: Incantation<Effect>[]): Incantation<Effect> | NoMatch;
24
24
  parse_incantation_arg(arg_type: Incantation.ArgType): Unrecoverable<string>;
25
25
  }
26
26
  //# sourceMappingURL=desmost-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"desmost-parser.d.ts","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;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlF,OAAO,EACL,WAAW,EAEZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAQ,MAAM,UAAU,CAAC;AAMpD,qBAAa,aAAc,SAAQ,aAAa;IAElB,SAAS,CAAC,OAAO,CAAC,EAAE,cAAc;gBAAlD,MAAM,EAAE,MAAM,EAAY,OAAO,CAAC,EAAE,cAAc,YAAA;IAWvD,UAAU,IAAI,GAAG,GAAG,IAAI;IAwD/B,aAAa,IACX,aAAa,CACT;QAAE,MAAM,EAAE,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,GACjC,GAAG,CAAC,iBAAiB,CAAC;KACjC,GACC;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAC/B,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACxC,CACF;IA4BH,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAehC,cAAc,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IA6B/C,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IAkB9C,UAAU,IAAI,aAAa,CAAC,MAAM,CAAC;IAcnC,4BAA4B,IACxB,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,GACjC,GAAG,CAAC,iBAAiB,GACrB,eAAe;IA0CnB,2BAA2B,IACvB,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAChC,GAAG,CAAC,iBAAiB,GACrB,eAAe;IAuCnB,0BAA0B,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;IA4B9D,oBAAoB,CAAC,MAAM,SAAS,WAAW,CAAC,MAAM,EACpD,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAClC,WAAW,CAAC,MAAM,CAAC,GAAG,eAAe;IAuExC,qBAAqB,CASnB,QAAQ,EAAE,WAAW,CAAC,OAAO,GAC5B,aAAa,CAAC,MAAM,CAAC;CAyFzB"}
1
+ {"version":3,"file":"desmost-parser.d.ts","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;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGxD,OAAO,EACL,WAAW,EAEZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAQ,MAAM,UAAU,CAAC;AAMpD,qBAAa,aAAc,SAAQ,aAAa;IAElB,SAAS,CAAC,OAAO,CAAC,EAAE,cAAc;gBAAlD,MAAM,EAAE,MAAM,EAAY,OAAO,CAAC,EAAE,cAAc,YAAA;IAWvD,UAAU,IAAI,GAAG,GAAG,IAAI;IAwD/B,aAAa,IACX,aAAa,CACX;QAAE,MAAM,EAAE,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAA;KAAE,GACrE;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAA;KAAE,CAC3E;IA4BH,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC;IAehC,cAAc,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IA6B/C,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IAkB9C,UAAU,IAAI,aAAa,CAAC,MAAM,CAAC;IAcnC,4BAA4B,IACxB,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,GACjC,GAAG,CAAC,iBAAiB,GACrB,OAAO;IA0CX,2BAA2B,IACvB,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAChC,GAAG,CAAC,iBAAiB,GACrB,OAAO;IAuCX,0BAA0B,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;IA4BrE,oBAAoB,CAAC,MAAM,SAAS,WAAW,CAAC,MAAM,EACpD,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAClC,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO;IAuEhC,qBAAqB,CASnB,QAAQ,EAAE,WAAW,CAAC,OAAO,GAC5B,aAAa,CAAC,MAAM,CAAC;CAyFzB"}
@@ -1,6 +1,6 @@
1
1
  import { GenericParser } from "./generic-parser.js";
2
2
  import { Ast } from "./ast.js";
3
- import { FAIL, UnrecoverableError } from "../errors.js";
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
6
  export class DesmostParser extends GenericParser {
@@ -46,14 +46,14 @@ export class DesmostParser extends GenericParser {
46
46
  }
47
47
  parse_pre_sep() {
48
48
  let r = this.try_parse_global_incantation();
49
- if (r !== FAIL) {
49
+ if (r !== NO_MATCH) {
50
50
  this.consume_end_of_block(`Received excess input after global incantation /${r.incantation.identifier}`);
51
51
  return { global: r };
52
52
  }
53
53
  let incantations = [];
54
54
  while (this.current === "/") {
55
55
  let invocation = this.try_parse_local_incantation();
56
- if (invocation === FAIL)
56
+ if (invocation === NO_MATCH)
57
57
  break;
58
58
  incantations.push(invocation);
59
59
  }
@@ -75,7 +75,7 @@ export class DesmostParser extends GenericParser {
75
75
  };
76
76
  case "/":
77
77
  let incantation = this.try_parse_expr_incantation();
78
- if (incantation !== FAIL)
78
+ if (incantation !== NO_MATCH)
79
79
  return incantation;
80
80
  default:
81
81
  return {
@@ -103,12 +103,12 @@ export class DesmostParser extends GenericParser {
103
103
  }
104
104
  try_parse_global_incantation() {
105
105
  let init = this.i;
106
- if (this.try_consume("/") === FAIL)
107
- return FAIL;
106
+ if (this.try_consume("/") === NO_MATCH)
107
+ return NO_MATCH;
108
108
  let incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
109
- if (incantation === FAIL) {
109
+ if (incantation === NO_MATCH) {
110
110
  this.i = init;
111
- return FAIL;
111
+ return NO_MATCH;
112
112
  }
113
113
  let data = undefined;
114
114
  if (incantation instanceof ArgIncantation) {
@@ -132,12 +132,12 @@ export class DesmostParser extends GenericParser {
132
132
  }
133
133
  try_parse_local_incantation() {
134
134
  let init = this.i;
135
- if (this.try_consume("/") === FAIL)
136
- return FAIL;
135
+ if (this.try_consume("/") === NO_MATCH)
136
+ return NO_MATCH;
137
137
  let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
138
- if (incantation === FAIL) {
138
+ if (incantation === NO_MATCH) {
139
139
  this.i = init;
140
- return FAIL;
140
+ return NO_MATCH;
141
141
  }
142
142
  let arg_raw = undefined;
143
143
  if (incantation instanceof ArgIncantation) {
@@ -161,12 +161,12 @@ export class DesmostParser extends GenericParser {
161
161
  }
162
162
  try_parse_expr_incantation() {
163
163
  let init = this.i;
164
- if (this.try_consume("/") === FAIL)
165
- return FAIL;
164
+ if (this.try_consume("/") === NO_MATCH)
165
+ return NO_MATCH;
166
166
  let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
167
- if (incantation === FAIL) {
167
+ if (incantation === NO_MATCH) {
168
168
  this.i = init;
169
- return FAIL;
169
+ return NO_MATCH;
170
170
  }
171
171
  let arg_raw = this.parse_incantation_arg(incantation.arg_type);
172
172
  let data = {};
@@ -180,15 +180,15 @@ export class DesmostParser extends GenericParser {
180
180
  try_parse_identifier(incantations) {
181
181
  for (let incantation of incantations) {
182
182
  let r = this.try_consume(incantation.identifier);
183
- if (r !== FAIL)
183
+ if (r !== NO_MATCH)
184
184
  return incantation;
185
185
  if (incantation.alias != undefined) {
186
186
  let r = this.try_consume(incantation.alias);
187
- if (r !== FAIL)
187
+ if (r !== NO_MATCH)
188
188
  return incantation;
189
189
  }
190
190
  }
191
- return FAIL;
191
+ return NO_MATCH;
192
192
  }
193
193
  parse_incantation_arg(arg_type) {
194
194
  let init = this.i;
@@ -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,EACL,WAAW,EAAE,cAAc,EAC3B,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAC3D,MAAM,UAAU,CAAC;AAOlB,MAAM,OAAO,aAAc,SAAQ,aAAa;IAER;IAAtC,YAAY,MAAc,EAAY,OAAwB;QAE5D,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAFe,YAAO,GAAP,OAAO,CAAiB;IAG9D,CAAC;IAQM,UAAU;QAEf,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;gBAElC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,CAAC;iBACI,CAAC;gBAEJ,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;aACI,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAG7B,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;YAGD,IAAI,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;YAE3B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAEjC,KAAK,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aACI,CAAC;YAEJ,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,aAAa;QAOX,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAE5C,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,CACvB,mDAAmD,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,CAC9E,CAAC;YAEF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACvB,CAAC;QAGD,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACpD,IAAI,UAAU,KAAK,QAAQ;gBAAE,MAAM;YACnC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjC,CAAC;IAKD,SAAS;QAEP,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EACf,qFAAqF,IAAI,CAAC,OAAO,EAAE,IAAI,CACxG,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAQD,cAAc;QAEZ,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YAErB,KAAK,IAAI;gBACP,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oBACpB,YAAY,EAAE,EAAE;iBACjB,CAAC;YAGJ,KAAK,GAAG;gBACN,IAAI,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpD,IAAI,WAAW,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;YAInD;gBACE,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE;oBAClC,YAAY,EAAE,EAAE;iBACjB,CAAC;QACN,CAAC;IACH,CAAC;IAED,aAAa;QAEX,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAE7B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;YAC5B,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAQD,UAAU;QAER,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAKD,4BAA4B;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,mBAAmB,CAAC,CAAC;QACjE,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAC;QAErB,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;iBACI,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAClC,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB;oBAClC,WAAW;oBACX,KAAK,EAAE,IAAI,kBAAkB,CAAC,YAAY,CACxC,6BAA6B,WAAW,CAAC,UAAU,2CAA2C,WAAW,CAAC,QAAQ,IAAI,CACvH;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAGtB,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW;YACX,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAKD,2BAA2B;QAKzB,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;YAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,GAAG,SAAS,CAAC;QAExB,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;iBACI,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAClC,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB;oBAClC,WAAW;oBACX,KAAK,EAAE,IAAI,kBAAkB,CAAC,YAAY,CACxC,6BAA6B,WAAW,CAAC,UAAU,2CAA2C,WAAW,CAAC,QAAQ,IAAI,CACvH;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAG1B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW;YACX,OAAO;SACR,CAAC;IACJ,CAAC;IAED,0BAA0B;QAExB,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;YAE7B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,QAAQ,CAAC;QAClB,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;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI;YACJ,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAKD,oBAAoB,CAClB,YAAmC;QAGnC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAErC,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;gBACnC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAyDD,qBAAqB,CASnB,QAA6B;QAG7B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,OAAO,CAAC,GAAG,EACd,8DAA8D,IAAI,CAAC,OAAO,EAAE,IAAI,CACjF,CAAC;QAGF,IAAI,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAG/B,IAAI,wBAAwB,GAAa,EAAE,CAAC;QAE5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAGxB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CACV,sEAAsE,KAAK,CAAC,KAAK,EAAE,EAAE,CACtF,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,GAAG,KAAK,CAAC,GAAI,CAAC;YAErB,QAAQ,IAAI,CAAC,OAAO,EACpB,CAAC;gBACC,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;YAC9F,CAAC;YAED,IAAI,QAAQ,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,EAC3C,CAAC;gBACC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACrB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;qBACI,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,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;wBAC7C,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;oBAC9G,CAAC;gBACH,CAAC;gBAED,QAAQ,IAAI,CAAC,OAAO,EACpB,CAAC;oBACC,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;wBACf,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;oBACR,KAAK,IAAI,CAAC,OAAO;wBACf,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;oBACR,KAAK,IAAI,CAAC,QAAQ;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;gBACV,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CACV,sEAAsE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC;QAGD,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;YAC3E,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;QACxB,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF;AAGD,MAAM,YAAY;IAEhB,KAAK,GAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAGD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,OAA+B;QAE5C,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;IACd,CAAC;IAED,GAAG;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;IAGD,OAAO,CAAC,GAAQ;QAEd,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD,SAAS,CAAC,GAAQ,EAAE,OAA+B;QAEjD,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;QAG7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,WAAW,CAAC,GAAQ,EAAE,OAA+B;QAEnD,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;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAA0C;QAErD,OAAO,OAAO,CACV,OAAO,EAAE,IAAI,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;eAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CACvC,CAAC;IACJ,CAAC;CACF;AAWD,IAAK,IAMJ;AAND,WAAK,IAAI;IAEP,wBAAgB,CAAA;IAChB,qBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;AACjB,CAAC,EANI,IAAI,KAAJ,IAAI,QAMR;AAED,IAAK,GAQJ;AARD,WAAK,GAAG;IACN,kBAAY,CAAA;IACZ,kBAAY,CAAA;IACZ,8BAAyB,CAAA;IACzB,kBAAqB,CAAA;IACrB,mBAAqB,CAAA;IACrB,kBAAsB,CAAA;IACtB,oBAAuB,CAAA;AACzB,CAAC,EARI,GAAG,KAAH,GAAG,QAQP"}
@@ -1,4 +1,4 @@
1
- import type { RecoverableFail, Unrecoverable } from "../errors.js";
1
+ import type { NoMatch, Unrecoverable } from "../errors.js";
2
2
  export declare class GenericParser {
3
3
  #private;
4
4
  protected source: string;
@@ -10,9 +10,9 @@ export declare class GenericParser {
10
10
  protected next(): string | undefined;
11
11
  preview(idx?: number): string;
12
12
  protected advance(error_msg?: string): Unrecoverable<void>;
13
- protected try_advance(): void | RecoverableFail;
13
+ protected try_advance(): void | NoMatch;
14
14
  protected consume(raw: string, error_msg?: string): Unrecoverable<void>;
15
- protected try_consume(raw: string): void | RecoverableFail;
15
+ protected try_consume(raw: string): void | NoMatch;
16
16
  protected consume_spaces(): void;
17
17
  protected consume_whitespace(): void;
18
18
  protected consume_end_of_block(error_msg?: string): Unrecoverable<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"generic-parser.d.ts","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAahE,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,eAAe;IAmB/C,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,eAAe;IAqB1D,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;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,4 +1,4 @@
1
- import { FAIL, UnrecoverableError } from "../errors.js";
1
+ import { NO_MATCH, UnrecoverableError } from "../errors.js";
2
2
  const IGNORED_CHARACTERS = new Set([
3
3
  "\r",
4
4
  ]);
@@ -31,7 +31,7 @@ export class GenericParser {
31
31
  }
32
32
  try_advance() {
33
33
  if (this.out_of_bounds())
34
- return FAIL;
34
+ return NO_MATCH;
35
35
  this.#advance();
36
36
  }
37
37
  #advance() {
@@ -59,8 +59,8 @@ export class GenericParser {
59
59
  let ii = 0;
60
60
  while (this.current === raw[ii]) {
61
61
  let r = this.try_advance();
62
- if (r === FAIL)
63
- return FAIL;
62
+ if (r === NO_MATCH)
63
+ return NO_MATCH;
64
64
  ii++;
65
65
  if (ii === raw.length)
66
66
  return;
@@ -68,7 +68,7 @@ export class GenericParser {
68
68
  break;
69
69
  }
70
70
  this.i = init;
71
- return FAIL;
71
+ return NO_MATCH;
72
72
  }
73
73
  consume_spaces() {
74
74
  if (this.out_of_bounds())
@@ -1 +1 @@
1
- {"version":3,"file":"generic-parser.js","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generic-parser.js","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "desmost",
3
3
  "author": "Sup#2.0",
4
- "version": "0.6.1",
4
+ "version": "0.7.1",
5
5
  "license": "MIT",
6
6
 
7
7
  "description": "A tiny DSL for compiling LaTeX to Desmos",
@@ -2,7 +2,15 @@ import { type DesmostOptions, fill_defaults } from "./options";
2
2
  import { evaluate_global_incantation, evaluate_expr, evaluate_error } from "./evaluate";
3
3
 
4
4
  import { DesmostParser, Ast } from "../parser";
5
- import { UnrecoverableError } from "../errors";
5
+
6
+
7
+ /** Debug diagnostics returned from `compile()`. */
8
+ export interface DesmostDebug
9
+ {
10
+ duration: number;
11
+ num_blocks: number;
12
+ ast: Ast[];
13
+ }
6
14
 
7
15
 
8
16
  /**
@@ -43,31 +51,42 @@ export function compile(
43
51
  return;
44
52
  }
45
53
 
46
- let t_init = performance.now();
47
- let num_blocks = 0;
48
- let ast = [];
49
-
50
54
  let opts = fill_defaults(options);
55
+
56
+ if (opts.debug) {
57
+ var t_init = performance.now();
58
+ var num_blocks = 0;
59
+ var ast: Ast[] = [];
60
+ }
61
+
51
62
  let parser = new DesmostParser(source, opts);
63
+
64
+ let errors: string[] = [];
52
65
 
53
66
  /* To aggregate errors at the start, we need a target to retroactively inject errors into */
54
67
  if (opts.place_errors === "start") {
55
- desmos.setExpression({ id: "deferred-start", latex: "" });
68
+ desmos.setExpression({ id: "deferred-start", latex: " " }); // FIXME check if ` ` needed
56
69
  }
57
70
 
58
- let errors = [];
71
+ /* Keep track of whether we're still evaluating leading blank expressions, which might be ignored. */
72
+ let seen_non_blank = false;
73
+
74
+ /** The number of pending blank expressions to add. */
75
+ let pending_blanks: number = 0;
59
76
 
60
- /* NOTE: The compiler is lazy, parsing and evaluating one block at a time (as opposed to first parsing the entire AST). We don't need the whole AST, so this saves memory. It also doesn't sacrifice performance, since `.setExpressions()` internally just calls `.setExpression()` in a loop anyway. Benchmarks in the frontend produce similar times for both, so there's no performance improvement. */
77
+ /* The compiler is lazy, parsing and evaluating one block at a time (as opposed to first parsing the entire AST). We don't need the whole AST, so this saves memory. */
78
+ /* NOTE: It also doesn't sacrifice performance, since `.setExpressions()` internally just calls `.setExpression()` in a loop anyway. Benchmarks in the frontend produce similar times for both, so there's no performance improvement. */
61
79
  try {
62
80
  while (true) {
63
81
  let r = parser.parse_next();
64
82
  if (r === null) break;
65
83
 
66
84
  if (opts.debug) {
67
- num_blocks++;
68
- ast.push(r);
85
+ num_blocks!++;
86
+ ast!.push(r);
69
87
  }
70
88
 
89
+ /** An error message to leave for aggregation later. */
71
90
  let defer: string | void = undefined;
72
91
 
73
92
  switch (r.kind) {
@@ -77,9 +96,20 @@ export function compile(
77
96
 
78
97
  case Ast.Kind.EXPRESSION:
79
98
  // @ts-expect-error: outdated types
80
- if (opts.ignore_blank_lines && r.data.latex === " ") break;
81
- defer = evaluate_expr(r, desmos, opts);
82
- break;
99
+ if (r.data.latex === " ") {
100
+ if (opts.ignore_all_blanks) break;
101
+ if (!seen_non_blank && !opts.keep_leading_blanks) break;
102
+ pending_blanks++;
103
+ break;
104
+ }
105
+ else {
106
+ flush_pending_blanks(desmos, pending_blanks);
107
+ pending_blanks = 0;
108
+
109
+ seen_non_blank = true;
110
+ defer = evaluate_expr(r, desmos, opts);
111
+ break;
112
+ }
83
113
 
84
114
  case Ast.Kind.INVALID_INCANTATION:
85
115
  defer = evaluate_error(r.error, desmos, opts);
@@ -92,11 +122,11 @@ export function compile(
92
122
  }
93
123
  }
94
124
  catch (e) {
95
- if (e instanceof UnrecoverableError) {
96
- errors.push(e);
97
- } else {
98
- throw e;
99
- }
125
+ errors.push((e as Error).message);
126
+ }
127
+
128
+ if (opts.keep_trailing_blanks) {
129
+ flush_pending_blanks(desmos, pending_blanks);
100
130
  }
101
131
 
102
132
  if (errors.length > 0) {
@@ -118,17 +148,17 @@ export function compile(
118
148
 
119
149
  if (opts.debug) {
120
150
  return {
121
- duration: performance.now() - t_init,
122
- num_blocks,
123
- ast,
151
+ duration: performance.now() - t_init!,
152
+ num_blocks: num_blocks!,
153
+ ast: ast!,
124
154
  };
125
155
  }
126
156
  }
127
157
 
128
158
 
129
- export interface DesmostDebug
159
+ function flush_pending_blanks(desmos: Desmos.Calculator, count: number)
130
160
  {
131
- duration: number;
132
- num_blocks: number;
133
- ast: Ast[];
161
+ for (let i = 0; i < count; i++) {
162
+ desmos.setExpression({ latex: ` ` });
163
+ }
134
164
  }
@@ -141,15 +141,11 @@ function normalise_latex(latex: string): string
141
141
  */
142
142
  function prettify_latex(latex: string): string
143
143
  {
144
- latex = latex.replaceAll(/(?<!\\left)\(/g, "\\left(");
145
- latex = latex.replaceAll(/(?<!\\right)\)/g, "\\right)");
146
- latex = latex.replaceAll(/(?<!\\left)\[/g, "\\left[");
147
- latex = latex.replaceAll(/(?<!\\right)\]/g, "\\right]");
148
- latex = latex.replaceAll("\\{", "\\left\\{");
149
- latex = latex.replaceAll("\\}", "\\right\\}");
144
+ latex = latex.replaceAll(/(?<!\\left)(\(|\[|\\\{)/g, "\\left$1");
145
+ latex = latex.replaceAll(/(?<!\\right)(\)|\]|\\\})/g, "\\right$1");
150
146
 
151
147
  latex = latex.replaceAll(
152
- /(?<=[^\w]|^)\\?(mean|median|count|total|repeat|join|sort|shuffle|unique|mod|ceil|floor|round|sign)(?=\(|\\left\()/g,
148
+ /(?<=[^\w]|^)\\?(mean|median|count|total|repeat|join|sort|shuffle|unique|mod|ceil|floor|round|sign) ?(?=\(|\\left\()/g,
153
149
  "\\operatorname{$1}"
154
150
  );
155
151
 
@@ -37,7 +37,14 @@ export interface DesmostOptions
37
37
  error_prefix?: string
38
38
 
39
39
  /**
40
- * Should comments be ignored, instead of turned into text expressions (notes)?
40
+ * Prettify LaTeX output so it renders nicely in the Desmos editor?
41
+ *
42
+ * Defaults to `true`, meaning LaTeX is prettified.
43
+ */
44
+ prettify?: boolean
45
+
46
+ /**
47
+ * Should `%` LaTeX comments be ignored, instead of turned into text expressions (notes)?
41
48
  *
42
49
  * Defaults to `false`, meaning comments are kept.
43
50
  */
@@ -48,26 +55,26 @@ export interface DesmostOptions
48
55
  *
49
56
  * Defaults to `false`, meaning all blank lines are kept.
50
57
  */
51
- ignore_blank_lines?: boolean
58
+ ignore_all_blanks?: boolean
52
59
 
53
60
  /**
54
- * Should trailing blank lines at the end of the source be ignored, instead of kept as blank expressions?
61
+ * Should trailing blank lines at the start of the source be kept as blank expressions?
55
62
  *
56
- * Defaults to `false`, meaning trailing blank lines are kept.
63
+ * Defaults to `false`, meaning leading blank lines are ignored.
57
64
  */
58
- ignore_trailing_blanks?: boolean
65
+ keep_leading_blanks?: boolean
59
66
 
60
67
  /**
61
- * Prettify LaTeX output so it renders nicely in the Desmos editor?
68
+ * Should trailing blank lines at the end of the source be kept as blank expressions?
62
69
  *
63
- * Defaults to `true`, meaning LaTeX is prettified.
70
+ * Defaults to `false`, meaning trailing blank lines are ignored.
64
71
  */
65
- prettify?: boolean
72
+ keep_trailing_blanks?: boolean
66
73
 
67
74
  /**
68
75
  * Return debug diagnostics?
69
76
  *
70
- * This includes the unevaluated AST, and performance diagnostics.
77
+ * This includes the unevaluated AST and performance diagnostics.
71
78
  *
72
79
  * Defaults to `false`, meaning `compile()` returns `void`.
73
80
  */
@@ -85,12 +92,13 @@ export function fill_defaults(options: Partial<DesmostOptions> | undefined): Req
85
92
  out.errors ??= "surface";
86
93
  out.place_errors ??= "inline";
87
94
  out.error_prefix ??= "[DESMOST ERROR]\n";
88
-
89
- out.ignore_comments ??= false;
90
- out.ignore_blank_lines ??= false;
91
- out.ignore_trailing_blanks ??= false;
92
95
 
93
96
  out.prettify ??= true;
97
+
98
+ out.ignore_comments ??= false;
99
+ out.ignore_all_blanks ??= false;
100
+ out.keep_leading_blanks ??= false;
101
+ out.keep_trailing_blanks ??= false;
94
102
  out.debug ??= false;
95
103
 
96
104
  return out as Required<DesmostOptions>;
package/src/errors.ts CHANGED
@@ -28,19 +28,12 @@ export namespace UnrecoverableError
28
28
  }
29
29
 
30
30
 
31
- /** The compiler encountered a non-fatal recoverable failure (usually during speculative parsing), which only results in internal backtracking. */
32
- export const FAIL = Symbol("fail");
31
+ /** The parser failed to parse something (usually during speculative parsing), which only results in internal backtracking. */
32
+ export const NO_MATCH = Symbol("no-match");
33
33
 
34
34
  /** The compiler encountered a non-fatal recoverable failure (usually during speculative parsing), which only results in internal backtracking. */
35
- export type RecoverableFail = typeof FAIL & { readonly __brand?: unique symbol };
35
+ export type NoMatch = typeof NO_MATCH & { readonly __brand?: unique symbol };
36
36
 
37
37
 
38
38
  /** Indicates that a function may throw an `UnrecoverableError`. */
39
39
  export type Unrecoverable<Result> = Result | Result & { readonly __brand?: unique symbol };
40
-
41
- /**
42
- * Indicates that a function may either return a `RecoverableFail` *or* throw an `UnrecoverableError`.
43
- *
44
- * This is used in potentially ambiguous cases. For instance, the user might have invoked an unknown incantation, in which case we might want to `RecoverableFail` and fallback to parsing it as LaTeX; on the other hand, if they invoked a valid incantation, but did not supply the required argument, that's a definite `UnrecoverableError`.
45
- */
46
- export type MaybeRecoverable<Result> = RecoverableFail | Unrecoverable<Result>;
@@ -7,6 +7,7 @@ export class TextIncantation extends ArgIncantation<EXPR>
7
7
  = "Produce a text expression (“Add Note” in the Desmos GUI)."
8
8
 
9
9
  override readonly identifier = "text"
10
+ override readonly alias = "note"
10
11
  override readonly requires_arg = true
11
12
  override readonly arg_type = Incantation.ArgType.STRING
12
13
 
@@ -19,6 +19,7 @@ export class ViewportIncantation extends ArgIncantation<GLOBAL>
19
19
 
20
20
  apply(target: Desmos.Calculator, data: ViewportBounds)
21
21
  {
22
+ // FIXME broken?
22
23
  // TODO validate bounds
23
24
  target.setMathBounds(data);
24
25
  }
@@ -24,7 +24,7 @@ export class LabelIncantation extends ArgIncantation<LOCAL>
24
24
  {
25
25
  super.require_expr_type(target.type, "expression");
26
26
  target.label = data.text;
27
- if (data.show != undefined) target.showLabel = data.show;
27
+ target.showLabel = data.show ?? true;
28
28
  // @ts-expect-error: outdated types TODO check
29
29
  if (data.size != undefined) target.labelSize = data.size;
30
30
  if (data.pos != undefined) target.labelOrientation = data.pos;
@@ -2,8 +2,8 @@ import { GenericParser } from "./generic-parser";
2
2
  import { Ast } from "./ast";
3
3
 
4
4
  import type { DesmostOptions } from "../compiler";
5
- import { FAIL, UnrecoverableError } from "../errors";
6
- import type { RecoverableFail, Unrecoverable, MaybeRecoverable } from "../errors";
5
+ import { NO_MATCH, UnrecoverableError } from "../errors";
6
+ import type { NoMatch, Unrecoverable } from "../errors";
7
7
  import * as utils from "../utils";
8
8
 
9
9
  import {
@@ -87,18 +87,14 @@ export class DesmostParser extends GenericParser
87
87
  */
88
88
  parse_pre_sep():
89
89
  Unrecoverable<
90
- | { global: Ast.IncantationInvocation<GLOBAL>
91
- | Ast.InvalidInvocation;
92
- }
93
- | { local: Array<Ast.IncantationInvocation<LOCAL>
94
- | Ast.InvalidInvocation>;
95
- }
90
+ | { global: Ast.IncantationInvocation<GLOBAL> | Ast.InvalidInvocation }
91
+ | { local: Array<Ast.IncantationInvocation<LOCAL> | Ast.InvalidInvocation> }
96
92
  >
97
93
  {
98
94
  // 1 global incantation
99
95
  let r = this.try_parse_global_incantation();
100
96
 
101
- if (r !== FAIL) {
97
+ if (r !== NO_MATCH) {
102
98
  this.consume_end_of_block(
103
99
  `Received excess input after global incantation /${r.incantation.identifier}`
104
100
  );
@@ -111,7 +107,7 @@ export class DesmostParser extends GenericParser
111
107
 
112
108
  while (this.current === "/") {
113
109
  let invocation = this.try_parse_local_incantation();
114
- if (invocation === FAIL) break;
110
+ if (invocation === NO_MATCH) break;
115
111
  incantations.push(invocation);
116
112
  }
117
113
 
@@ -152,7 +148,7 @@ export class DesmostParser extends GenericParser
152
148
  // expr incantation
153
149
  case "/":
154
150
  let incantation = this.try_parse_expr_incantation();
155
- if (incantation !== FAIL) return incantation;
151
+ if (incantation !== NO_MATCH) return incantation;
156
152
  // FALLTHROUGH: to fallback on plain LaTeX
157
153
 
158
154
  // plain LaTeX
@@ -200,16 +196,16 @@ export class DesmostParser extends GenericParser
200
196
  try_parse_global_incantation():
201
197
  | Ast.IncantationInvocation<GLOBAL>
202
198
  | Ast.InvalidInvocation
203
- | RecoverableFail
199
+ | NoMatch
204
200
  {
205
201
  let init = this.i;
206
202
 
207
- if (this.try_consume("/") === FAIL) return FAIL;
203
+ if (this.try_consume("/") === NO_MATCH) return NO_MATCH;
208
204
 
209
205
  let incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
210
- if (incantation === FAIL) {
206
+ if (incantation === NO_MATCH) {
211
207
  this.i = init;
212
- return FAIL;
208
+ return NO_MATCH;
213
209
  }
214
210
 
215
211
  let data = undefined;
@@ -245,16 +241,16 @@ export class DesmostParser extends GenericParser
245
241
  try_parse_local_incantation():
246
242
  | Ast.IncantationInvocation<LOCAL>
247
243
  | Ast.InvalidInvocation
248
- | RecoverableFail
244
+ | NoMatch
249
245
  {
250
246
  let init = this.i;
251
247
 
252
- if (this.try_consume("/") === FAIL) return FAIL;
248
+ if (this.try_consume("/") === NO_MATCH) return NO_MATCH;
253
249
 
254
250
  let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
255
- if (incantation === FAIL) {
251
+ if (incantation === NO_MATCH) {
256
252
  this.i = init;
257
- return FAIL;
253
+ return NO_MATCH;
258
254
  }
259
255
 
260
256
  let arg_raw = undefined;
@@ -284,17 +280,17 @@ export class DesmostParser extends GenericParser
284
280
  };
285
281
  }
286
282
 
287
- try_parse_expr_incantation(): MaybeRecoverable<Ast.Expression>
283
+ try_parse_expr_incantation(): Unrecoverable<Ast.Expression | NoMatch>
288
284
  {
289
285
  let init = this.i;
290
286
 
291
- if (this.try_consume("/") === FAIL) return FAIL;
287
+ if (this.try_consume("/") === NO_MATCH) return NO_MATCH;
292
288
 
293
289
  let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
294
- if (incantation === FAIL) {
290
+ if (incantation === NO_MATCH) {
295
291
  // TODO maybe flag to user
296
292
  this.i = init;
297
- return FAIL;
293
+ return NO_MATCH;
298
294
  }
299
295
 
300
296
  let arg_raw = this.parse_incantation_arg((incantation as ArgIncantation<EXPR>).arg_type);
@@ -314,20 +310,20 @@ export class DesmostParser extends GenericParser
314
310
  */
315
311
  try_parse_identifier<Effect extends Incantation.Effect>(
316
312
  incantations: Incantation<Effect>[]
317
- ): Incantation<Effect> | RecoverableFail
313
+ ): Incantation<Effect> | NoMatch
318
314
  {
319
315
  for (let incantation of incantations) {
320
316
  // yeah the duplication here is a little meh, unfortunately needing `return` means we can't extract it into a helper
321
317
  let r = this.try_consume(incantation.identifier);
322
- if (r !== FAIL) return incantation;
318
+ if (r !== NO_MATCH) return incantation;
323
319
 
324
320
  if (incantation.alias != undefined) {
325
321
  let r = this.try_consume(incantation.alias);
326
- if (r !== FAIL) return incantation;
322
+ if (r !== NO_MATCH) return incantation;
327
323
  }
328
324
  }
329
325
 
330
- return FAIL;
326
+ return NO_MATCH;
331
327
  }
332
328
 
333
329
  /**
@@ -1,5 +1,5 @@
1
- import { FAIL, UnrecoverableError } from "../errors";
2
- import type { RecoverableFail, Unrecoverable } from "../errors";
1
+ import { NO_MATCH, UnrecoverableError } from "../errors";
2
+ import type { NoMatch, Unrecoverable } from "../errors";
3
3
 
4
4
 
5
5
  const IGNORED_CHARACTERS = new Set([
@@ -10,7 +10,7 @@ const IGNORED_CHARACTERS = new Set([
10
10
  /**
11
11
  * A stateful lazy parser, providing core (non-Desmost-specific) methods for parsing.
12
12
  *
13
- * 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 `RecoverableFail`. The former is for expected parses, while the latter is for speculative parsing.
13
+ * 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.
14
14
  */
15
15
  export class GenericParser
16
16
  {
@@ -86,9 +86,9 @@ export class GenericParser
86
86
  *
87
87
  * Fails if the parser is the out-of-bounds *before* advancing.
88
88
  */
89
- protected try_advance(): void | RecoverableFail
89
+ protected try_advance(): void | NoMatch
90
90
  {
91
- if (this.out_of_bounds()) return FAIL;
91
+ if (this.out_of_bounds()) return NO_MATCH;
92
92
  this.#advance();
93
93
  }
94
94
 
@@ -133,14 +133,14 @@ export class GenericParser
133
133
  /**
134
134
  * Attempt to consume `raw`, backtracking if `raw` was not found.
135
135
  */
136
- protected try_consume(raw: string): void | RecoverableFail
136
+ protected try_consume(raw: string): void | NoMatch
137
137
  {
138
138
  let init = this.i;
139
139
  let ii = 0;
140
140
 
141
141
  while (this.current === raw[ii]) {
142
142
  let r = this.try_advance();
143
- if (r === FAIL) return FAIL;
143
+ if (r === NO_MATCH) return NO_MATCH;
144
144
 
145
145
  ii++;
146
146
  if (ii === raw.length) return;
@@ -148,7 +148,7 @@ export class GenericParser
148
148
  }
149
149
 
150
150
  this.i = init;
151
- return FAIL;
151
+ return NO_MATCH;
152
152
  }
153
153
 
154
154
  /**