desmost 0.7.0 → 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.
- package/dist/compiler/evaluate.js +3 -7
- package/dist/compiler/evaluate.js.map +1 -1
- package/dist/errors.d.ts +2 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/magic/local/label.js +1 -2
- package/dist/magic/local/label.js.map +1 -1
- package/dist/parser/desmost-parser.d.ts +5 -5
- package/dist/parser/desmost-parser.d.ts.map +1 -1
- package/dist/parser/desmost-parser.js +19 -19
- package/dist/parser/desmost-parser.js.map +1 -1
- package/dist/parser/generic-parser.d.ts +3 -3
- package/dist/parser/generic-parser.d.ts.map +1 -1
- package/dist/parser/generic-parser.js +5 -5
- package/dist/parser/generic-parser.js.map +1 -1
- package/package.json +1 -1
- package/src/compiler/evaluate.ts +3 -7
- package/src/errors.ts +3 -10
- package/src/magic/local/label.ts +1 -1
- package/src/parser/desmost-parser.ts +21 -21
- package/src/parser/generic-parser.ts +8 -8
|
@@ -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(/(
|
|
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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"}
|
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
|
|
18
|
-
export type
|
|
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
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
23
|
+
export const NO_MATCH = Symbol("no-match");
|
|
24
24
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -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
|
-
|
|
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,
|
|
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 {
|
|
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 |
|
|
21
|
-
try_parse_local_incantation(): Ast.IncantationInvocation<LOCAL> | Ast.InvalidInvocation |
|
|
22
|
-
try_parse_expr_incantation():
|
|
23
|
-
try_parse_identifier<Effect extends Incantation.Effect>(incantations: Incantation<Effect>[]): Incantation<Effect> |
|
|
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,
|
|
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 {
|
|
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 !==
|
|
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 ===
|
|
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 !==
|
|
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("/") ===
|
|
107
|
-
return
|
|
106
|
+
if (this.try_consume("/") === NO_MATCH)
|
|
107
|
+
return NO_MATCH;
|
|
108
108
|
let incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
|
|
109
|
-
if (incantation ===
|
|
109
|
+
if (incantation === NO_MATCH) {
|
|
110
110
|
this.i = init;
|
|
111
|
-
return
|
|
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("/") ===
|
|
136
|
-
return
|
|
135
|
+
if (this.try_consume("/") === NO_MATCH)
|
|
136
|
+
return NO_MATCH;
|
|
137
137
|
let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
|
|
138
|
-
if (incantation ===
|
|
138
|
+
if (incantation === NO_MATCH) {
|
|
139
139
|
this.i = init;
|
|
140
|
-
return
|
|
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("/") ===
|
|
165
|
-
return
|
|
164
|
+
if (this.try_consume("/") === NO_MATCH)
|
|
165
|
+
return NO_MATCH;
|
|
166
166
|
let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
|
|
167
|
-
if (incantation ===
|
|
167
|
+
if (incantation === NO_MATCH) {
|
|
168
168
|
this.i = init;
|
|
169
|
-
return
|
|
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 !==
|
|
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 !==
|
|
187
|
+
if (r !== NO_MATCH)
|
|
188
188
|
return incantation;
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
|
-
return
|
|
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":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
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 |
|
|
13
|
+
protected try_advance(): void | NoMatch;
|
|
14
14
|
protected consume(raw: string, error_msg?: string): Unrecoverable<void>;
|
|
15
|
-
protected try_consume(raw: string): void |
|
|
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,
|
|
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 {
|
|
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
|
|
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 ===
|
|
63
|
-
return
|
|
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
|
|
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":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"generic-parser.js","sourceRoot":"","sources":["../../src/parser/generic-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/compiler/evaluate.ts
CHANGED
|
@@ -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
|
|
package/src/errors.ts
CHANGED
|
@@ -28,19 +28,12 @@ export namespace UnrecoverableError
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
/** The
|
|
32
|
-
export const
|
|
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
|
|
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>;
|
package/src/magic/local/label.ts
CHANGED
|
@@ -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
|
-
|
|
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 {
|
|
6
|
-
import type {
|
|
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 {
|
|
@@ -94,7 +94,7 @@ export class DesmostParser extends GenericParser
|
|
|
94
94
|
// 1 global incantation
|
|
95
95
|
let r = this.try_parse_global_incantation();
|
|
96
96
|
|
|
97
|
-
if (r !==
|
|
97
|
+
if (r !== NO_MATCH) {
|
|
98
98
|
this.consume_end_of_block(
|
|
99
99
|
`Received excess input after global incantation /${r.incantation.identifier}`
|
|
100
100
|
);
|
|
@@ -107,7 +107,7 @@ export class DesmostParser extends GenericParser
|
|
|
107
107
|
|
|
108
108
|
while (this.current === "/") {
|
|
109
109
|
let invocation = this.try_parse_local_incantation();
|
|
110
|
-
if (invocation ===
|
|
110
|
+
if (invocation === NO_MATCH) break;
|
|
111
111
|
incantations.push(invocation);
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -148,7 +148,7 @@ export class DesmostParser extends GenericParser
|
|
|
148
148
|
// expr incantation
|
|
149
149
|
case "/":
|
|
150
150
|
let incantation = this.try_parse_expr_incantation();
|
|
151
|
-
if (incantation !==
|
|
151
|
+
if (incantation !== NO_MATCH) return incantation;
|
|
152
152
|
// FALLTHROUGH: to fallback on plain LaTeX
|
|
153
153
|
|
|
154
154
|
// plain LaTeX
|
|
@@ -196,16 +196,16 @@ export class DesmostParser extends GenericParser
|
|
|
196
196
|
try_parse_global_incantation():
|
|
197
197
|
| Ast.IncantationInvocation<GLOBAL>
|
|
198
198
|
| Ast.InvalidInvocation
|
|
199
|
-
|
|
|
199
|
+
| NoMatch
|
|
200
200
|
{
|
|
201
201
|
let init = this.i;
|
|
202
202
|
|
|
203
|
-
if (this.try_consume("/") ===
|
|
203
|
+
if (this.try_consume("/") === NO_MATCH) return NO_MATCH;
|
|
204
204
|
|
|
205
205
|
let incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
|
|
206
|
-
if (incantation ===
|
|
206
|
+
if (incantation === NO_MATCH) {
|
|
207
207
|
this.i = init;
|
|
208
|
-
return
|
|
208
|
+
return NO_MATCH;
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
let data = undefined;
|
|
@@ -241,16 +241,16 @@ export class DesmostParser extends GenericParser
|
|
|
241
241
|
try_parse_local_incantation():
|
|
242
242
|
| Ast.IncantationInvocation<LOCAL>
|
|
243
243
|
| Ast.InvalidInvocation
|
|
244
|
-
|
|
|
244
|
+
| NoMatch
|
|
245
245
|
{
|
|
246
246
|
let init = this.i;
|
|
247
247
|
|
|
248
|
-
if (this.try_consume("/") ===
|
|
248
|
+
if (this.try_consume("/") === NO_MATCH) return NO_MATCH;
|
|
249
249
|
|
|
250
250
|
let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
|
|
251
|
-
if (incantation ===
|
|
251
|
+
if (incantation === NO_MATCH) {
|
|
252
252
|
this.i = init;
|
|
253
|
-
return
|
|
253
|
+
return NO_MATCH;
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
let arg_raw = undefined;
|
|
@@ -280,17 +280,17 @@ export class DesmostParser extends GenericParser
|
|
|
280
280
|
};
|
|
281
281
|
}
|
|
282
282
|
|
|
283
|
-
try_parse_expr_incantation():
|
|
283
|
+
try_parse_expr_incantation(): Unrecoverable<Ast.Expression | NoMatch>
|
|
284
284
|
{
|
|
285
285
|
let init = this.i;
|
|
286
286
|
|
|
287
|
-
if (this.try_consume("/") ===
|
|
287
|
+
if (this.try_consume("/") === NO_MATCH) return NO_MATCH;
|
|
288
288
|
|
|
289
289
|
let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
|
|
290
|
-
if (incantation ===
|
|
290
|
+
if (incantation === NO_MATCH) {
|
|
291
291
|
// TODO maybe flag to user
|
|
292
292
|
this.i = init;
|
|
293
|
-
return
|
|
293
|
+
return NO_MATCH;
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
let arg_raw = this.parse_incantation_arg((incantation as ArgIncantation<EXPR>).arg_type);
|
|
@@ -310,20 +310,20 @@ export class DesmostParser extends GenericParser
|
|
|
310
310
|
*/
|
|
311
311
|
try_parse_identifier<Effect extends Incantation.Effect>(
|
|
312
312
|
incantations: Incantation<Effect>[]
|
|
313
|
-
): Incantation<Effect> |
|
|
313
|
+
): Incantation<Effect> | NoMatch
|
|
314
314
|
{
|
|
315
315
|
for (let incantation of incantations) {
|
|
316
316
|
// yeah the duplication here is a little meh, unfortunately needing `return` means we can't extract it into a helper
|
|
317
317
|
let r = this.try_consume(incantation.identifier);
|
|
318
|
-
if (r !==
|
|
318
|
+
if (r !== NO_MATCH) return incantation;
|
|
319
319
|
|
|
320
320
|
if (incantation.alias != undefined) {
|
|
321
321
|
let r = this.try_consume(incantation.alias);
|
|
322
|
-
if (r !==
|
|
322
|
+
if (r !== NO_MATCH) return incantation;
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
-
return
|
|
326
|
+
return NO_MATCH;
|
|
327
327
|
}
|
|
328
328
|
|
|
329
329
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
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 `
|
|
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 |
|
|
89
|
+
protected try_advance(): void | NoMatch
|
|
90
90
|
{
|
|
91
|
-
if (this.out_of_bounds()) return
|
|
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 |
|
|
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 ===
|
|
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
|
|
151
|
+
return NO_MATCH;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
/**
|