desmost 0.1.2 → 0.2.0
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.map +1 -1
- package/dist/errors.d.ts +6 -7
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -3
- package/dist/errors.js.map +1 -1
- package/dist/magic/expr/latex.d.ts.map +1 -1
- package/dist/magic/expr/text.d.ts.map +1 -1
- package/dist/magic/global/dark-mode.d.ts.map +1 -1
- package/dist/magic/global/desmos.d.ts.map +1 -1
- package/dist/magic/global/viewport.d.ts.map +1 -1
- package/dist/magic/incantation.d.ts.map +1 -1
- package/dist/magic/incantation.js.map +1 -1
- package/dist/magic/local/anim.d.ts.map +1 -1
- package/dist/magic/local/colour.d.ts.map +1 -1
- package/dist/magic/local/colour.js.map +1 -1
- package/dist/magic/local/dashed.d.ts.map +1 -1
- package/dist/magic/local/fill.d.ts.map +1 -1
- package/dist/magic/local/hide.d.ts.map +1 -1
- package/dist/magic/local/line.d.ts.map +1 -1
- package/dist/magic/local/no-line.d.ts.map +1 -1
- package/dist/magic/local/point.d.ts.map +1 -1
- package/dist/magic/local/secret.d.ts.map +1 -1
- package/dist/magic/local/slider.d.ts.map +1 -1
- package/dist/parser/ast.js.map +1 -1
- package/dist/parser/desmost-parser.d.ts +4 -4
- package/dist/parser/desmost-parser.d.ts.map +1 -1
- package/dist/parser/desmost-parser.js +50 -66
- package/dist/parser/desmost-parser.js.map +1 -1
- package/dist/parser/generic-parser.d.ts +5 -4
- package/dist/parser/generic-parser.d.ts.map +1 -1
- package/dist/parser/generic-parser.js +20 -23
- package/dist/parser/generic-parser.js.map +1 -1
- package/package.json +7 -2
- package/src/errors.ts +6 -6
- package/src/parser/desmost-parser.ts +61 -78
- package/src/parser/generic-parser.ts +33 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/compiler/evaluate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAsB,MAAM,WAAW,CAAC;AAMnE,MAAM,UAAU,2BAA2B,CACzC,UAAqC,EACrC,MAAyB,EACzB,OAAiC;IAGjC,IAAI,IAAI,GAAG,SAAS,CAAC;IAErB,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QAC/D,IAAI,CAAC;YACH,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,GAAG,GAAG,cAAc,CAAC,CAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;gBACrB,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAMD,MAAM,UAAU,aAAa,CAC3B,IAAoB,EACpB,MAAyB,EACzB,OAAiC;IAGjC,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,UAAU,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrD,IAAI,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1F,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAC;QAErB,IAAI,SAAS,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAU,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC/C,IAAI,UAAU,CAAC,WAAW,CAAC,YAAY;oBAAE,SAAS;YACpD,CAAC;QACH,CAAC;QAED,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAQD,MAAM,UAAU,cAAc,CAC5B,KAAyB,EACzB,MAAyB,EACzB,OAAiC;IAGjC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,MAAM,KAAK,CAAC;QAEd,KAAK,UAAU;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM;QAER,
|
|
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,13 +14,12 @@ export declare namespace UnrecoverableError {
|
|
|
14
14
|
class InvalidArgument extends UnrecoverableError {
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
export declare
|
|
18
|
-
|
|
19
|
-
export type Recoverable<Result> = Result | (Result & {
|
|
17
|
+
export declare const FAIL: unique symbol;
|
|
18
|
+
export type RecoverableFail = typeof FAIL & {
|
|
20
19
|
readonly __brand?: unique symbol;
|
|
21
|
-
}
|
|
22
|
-
export type Unrecoverable<Result> = Result |
|
|
20
|
+
};
|
|
21
|
+
export type Unrecoverable<Result> = Result | Result & {
|
|
23
22
|
readonly __brand?: unique symbol;
|
|
24
|
-
}
|
|
25
|
-
export type MaybeRecoverable<Result> =
|
|
23
|
+
};
|
|
24
|
+
export type MaybeRecoverable<Result> = RecoverableFail | Unrecoverable<Result>;
|
|
26
25
|
//# 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,
|
|
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"}
|
package/dist/errors.js
CHANGED
|
@@ -20,7 +20,5 @@ export class UnrecoverableError extends Error {
|
|
|
20
20
|
}
|
|
21
21
|
UnrecoverableError.InvalidArgument = InvalidArgument;
|
|
22
22
|
})(UnrecoverableError || (UnrecoverableError = {}));
|
|
23
|
-
export
|
|
24
|
-
}
|
|
25
|
-
;
|
|
23
|
+
export const FAIL = Symbol("fail");
|
|
26
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../../src/magic/expr/latex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGxE,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,IAAI,CAAC;IAExD,SAAkB,WAAW,+EACkD;IAE/E,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,6BAAgC;IAE1D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI
|
|
1
|
+
{"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../../src/magic/expr/latex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGxE,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,IAAI,CAAC;IAExD,SAAkB,WAAW,+EACkD;IAE/E,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,6BAAgC;IAE1D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAI5C"}
|
|
@@ -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
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dark-mode.d.ts","sourceRoot":"","sources":["../../../src/magic/global/dark-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1D,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAE1D,SAAkB,WAAW,qEACwC;IAErE,SAAkB,UAAU,UAAS;IAErC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU
|
|
1
|
+
{"version":3,"file":"dark-mode.d.ts","sourceRoot":"","sources":["../../../src/magic/global/dark-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1D,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAE1D,SAAkB,WAAW,qEACwC;IAErE,SAAkB,UAAU,UAAS;IAErC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU;CAMhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desmos.d.ts","sourceRoot":"","sources":["../../../src/magic/global/desmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1E,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE3D,SAAkB,WAAW,gFACmD;IAEhF,SAAkB,UAAU,YAAa;IACzC,SAAkB,YAAY,SAAQ;IACtC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CACZ,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,IAAI,EAAE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,GACrD,IAAI
|
|
1
|
+
{"version":3,"file":"desmos.d.ts","sourceRoot":"","sources":["../../../src/magic/global/desmos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG1E,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAE3D,SAAkB,WAAW,gFACmD;IAEhF,SAAkB,UAAU,YAAa;IACzC,SAAkB,YAAY,SAAQ;IACtC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CACZ,MAAM,EAAE,MAAM,CAAC,UAAU,EACzB,IAAI,EAAE,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,aAAa,GACrD,IAAI;CAIR"}
|
|
@@ -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
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incantation.d.ts","sourceRoot":"","sources":["../../src/magic/incantation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAgBnE,8BAAsB,WAAW,CAC/B,MAAM,SAAS,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;IAItD,kBAAyB,WAAW,EAAE,MAAM,CAAA;IAG5C,kBAAyB,UAAU,EAAE,MAAM,CAAA;IAG3C,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"incantation.d.ts","sourceRoot":"","sources":["../../src/magic/incantation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAgBnE,8BAAsB,WAAW,CAC/B,MAAM,SAAS,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;IAItD,kBAAyB,WAAW,EAAE,MAAM,CAAA;IAG5C,kBAAyB,UAAU,EAAE,MAAM,CAAA;IAG3C,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAA;aAId,KAAK,CACnB,MAAM,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,eAAe,EAC1E,IAAI,CAAC,EAAE,OAAO,GACb,IAAI;IAGP,SAAS,CAAC,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAClE,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,CAAC,GACV,OAAO,CAAC,MAAM,IAAI,CAAC;CASvB;AAMD,8BAAsB,cAAc,CAClC,MAAM,SAAS,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAEtD,SAAQ,WAAW,CAAC,MAAM,CAAC;IAG3B,SAAgB,YAAY,EAAE,OAAO,CAAO;IAG5C,kBAAyB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAA;IAY/C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;CAiBzD;AAGD,yBAAiB,WAAW,CAC5B;IAEE,KAAY,MAAM;QAGhB,MAAM,IAAA;QAGN,KAAK,IAAA;QAGL,IAAI,IAAA;KACL;IAGD,KAAY,OAAO;QAGjB,MAAM,WAAW;QAGjB,KAAK,UAAU;QAGf,IAAI,SAAS;QAGb,MAAM,WAAW;KAClB;CACF;AAMD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;AAG/C,MAAM,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AAG7C,MAAM,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incantation.js","sourceRoot":"","sources":["../../src/magic/incantation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,WAAW,CAAC;AAgBnE,MAAM,OAAgB,WAAW;IAWf,KAAK,CAAS;IAUpB,iBAAiB,CACzB,MAAe,EACf,QAAW;QAGX,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,QAAQ,EACzC,CAAC;YACC,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,CAC7C,IAAI,IAAI,CAAC,UAAU,wBAAwB,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,4CAA4C,MAAM,EAAE,CAC9I,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAMD,MAAM,OAAgB,cAGpB,SAAQ,WAAmB;IAGX,YAAY,GAAY,IAAI,CAAA;IAerC,YAAY,CAAC,GAAW;QAE7B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"incantation.js","sourceRoot":"","sources":["../../src/magic/incantation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAsB,MAAM,WAAW,CAAC;AAgBnE,MAAM,OAAgB,WAAW;IAWf,KAAK,CAAS;IAUpB,iBAAiB,CACzB,MAAe,EACf,QAAW;QAGX,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,QAAQ,EACzC,CAAC;YACC,MAAM,IAAI,kBAAkB,CAAC,kBAAkB,CAC7C,IAAI,IAAI,CAAC,UAAU,wBAAwB,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,4CAA4C,MAAM,EAAE,CAC9I,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAMD,MAAM,OAAgB,cAGpB,SAAQ,WAAmB;IAGX,YAAY,GAAY,IAAI,CAAA;IAerC,YAAY,CAAC,GAAW;QAE7B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC;YAC5C,KAAK,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAE,OAAO,GAAG,CAAC;YAC5C,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAG,OAAO,GAAG,CAAC;YAE5C,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM;gBAC7B,IAAI,CAAC;oBACH,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO,CAAC,EAAE,CAAC;oBAET,MAAM,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC1D,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAGD,WAAiB,WAAW;IAG1B,IAAY,MAUX;IAVD,WAAY,MAAM;QAGhB,uCAAM,CAAA;QAGN,qCAAK,CAAA;QAGL,mCAAI,CAAA;IACN,CAAC,EAVW,MAAM,GAAN,kBAAM,KAAN,kBAAM,QAUjB;IAGD,IAAY,OAaX;IAbD,WAAY,OAAO;QAGjB,4BAAiB,CAAA;QAGjB,0BAAe,CAAA;QAGf,wBAAa,CAAA;QAGb,4BAAiB,CAAA;IACnB,CAAC,EAbW,OAAO,GAAP,mBAAO,KAAP,mBAAO,QAalB;AACH,CAAC,EA9BgB,WAAW,KAAX,WAAW,QA8B3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anim.d.ts","sourceRoot":"","sources":["../../../src/magic/local/anim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,eAAgB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAErD,SAAkB,WAAW,qCACQ;IAErC,SAAkB,UAAU,UAAS;IAE5B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe
|
|
1
|
+
{"version":3,"file":"anim.d.ts","sourceRoot":"","sources":["../../../src/magic/local/anim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,eAAgB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAErD,SAAkB,WAAW,qCACQ;IAErC,SAAkB,UAAU,UAAS;IAE5B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAM9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colour.d.ts","sourceRoot":"","sources":["../../../src/magic/local/colour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,WAAW,MACvB;IAEN,SAAkB,UAAU,WAAY;IACxC,SAAkB,KAAK,YAAkB;IACzC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,4BAA+B;IAEhD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY
|
|
1
|
+
{"version":3,"file":"colour.d.ts","sourceRoot":"","sources":["../../../src/magic/local/colour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,WAAW,MACvB;IAEN,SAAkB,UAAU,WAAY;IACxC,SAAkB,KAAK,YAAkB;IACzC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,4BAA+B;IAEhD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY;IAMxD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;CAelD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colour.js","sourceRoot":"","sources":["../../../src/magic/local/colour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,OAAO,iBAAkB,SAAQ,cAAqB;IAExC,WAAW,GACzB,EAAE,CAAA;IAEY,UAAU,GAAK,OAAO,CAAA;IACtB,KAAK,GAAU,QAAQ,CAAA;IACvB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAA;IAEhD,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;IACtB,CAAC;IAEQ,YAAY,CAAC,IAAY;QAEhC,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"colour.js","sourceRoot":"","sources":["../../../src/magic/local/colour.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,MAAM,OAAO,iBAAkB,SAAQ,cAAqB;IAExC,WAAW,GACzB,EAAE,CAAA;IAEY,UAAU,GAAK,OAAO,CAAA;IACtB,KAAK,GAAU,QAAQ,CAAA;IACvB,YAAY,GAAG,IAAI,CAAA;IACnB,QAAQ,GAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAA;IAEhD,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;IACtB,CAAC;IAEQ,YAAY,CAAC,IAAY;QAEhC,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,KAAK,KAAK,CAAC,CAAI,OAAO,YAAY,CAAC,GAAG,CAAC;YACvC,KAAK,MAAM,CAAC,CAAG,OAAO,YAAY,CAAC,IAAI,CAAC;YACxC,KAAK,OAAO,CAAC,CAAE,OAAO,YAAY,CAAC,KAAK,CAAC;YACzC,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC;YAC1C,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC;YAC1C,KAAK,OAAO,CAAC,CAAE,OAAO,YAAY,CAAC,KAAK,CAAC;YACzC;gBACE,MAAM,IAAI,kBAAkB,CAC1B,qBAAqB,IAAI,IAAI,CAC9B,CAAC;QACN,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashed.d.ts","sourceRoot":"","sources":["../../../src/magic/local/dashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEvD,SAAkB,WAAW,sCACS;IAEtC,SAAkB,UAAU,YAAW;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe
|
|
1
|
+
{"version":3,"file":"dashed.d.ts","sourceRoot":"","sources":["../../../src/magic/local/dashed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEvD,SAAkB,WAAW,sCACS;IAEtC,SAAkB,UAAU,YAAW;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAK9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/magic/local/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,8CACiB;IAE9C,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW
|
|
1
|
+
{"version":3,"file":"fill.d.ts","sourceRoot":"","sources":["../../../src/magic/local/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,8CACiB;IAE9C,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW;CAKjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hide.d.ts","sourceRoot":"","sources":["../../../src/magic/local/hide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,eAAgB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAErD,SAAkB,WAAW,8EACiD;IAE9E,SAAkB,UAAU,UAAS;IAErC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe
|
|
1
|
+
{"version":3,"file":"hide.d.ts","sourceRoot":"","sources":["../../../src/magic/local/hide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,eAAgB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAErD,SAAkB,WAAW,8EACiD;IAE9E,SAAkB,UAAU,UAAS;IAErC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAKrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEnB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,KAAK,CAAC,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,8CACiB;IAE9C,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW
|
|
1
|
+
{"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEnB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,KAAK,CAAC,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,qBAAa,eAAgB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAExD,SAAkB,WAAW,8CACiB;IAE9C,SAAkB,UAAU,UAAW;IACvC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,WAAW;CAQjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/no-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEvD,SAAkB,WAAW,0CACa;IAE1C,SAAkB,UAAU,aAAY;IAE/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe
|
|
1
|
+
{"version":3,"file":"no-line.d.ts","sourceRoot":"","sources":["../../../src/magic/local/no-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEvD,SAAkB,WAAW,0CACa;IAE1C,SAAkB,UAAU,aAAY;IAE/B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAK9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/magic/local/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEnB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAEzD,SAAkB,WAAW,MACvB;IAEN,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/magic/local/point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,WAAW;IAEnB,KAAK,CAAC,EAAI,MAAM,OAAO,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,qBAAa,gBAAiB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAEzD,SAAkB,WAAW,MACvB;IAEN,SAAkB,UAAU,WAAY;IACxC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;CAQ1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/magic/local/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEvD,SAAkB,WAAW,+EACkD;IAE/E,SAAkB,UAAU,YAAW;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe
|
|
1
|
+
{"version":3,"file":"secret.d.ts","sourceRoot":"","sources":["../../../src/magic/local/secret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzD,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,KAAK,CAAC;IAEvD,SAAkB,WAAW,+EACkD;IAE/E,SAAkB,UAAU,YAAW;IAE9B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe;CAK9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/magic/local/slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,YAAY;IAEpB,GAAG,CAAC,EAAG,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAG,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAGD,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,WAAW,kDACqB;IAElD,SAAkB,UAAU,YAAa;IACzC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/magic/local/slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGzE,UAAU,YAAY;IAEpB,GAAG,CAAC,EAAG,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAG,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAGD,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAE1D,SAAkB,WAAW,kDACqB;IAElD,SAAkB,UAAU,YAAa;IACzC,SAAkB,YAAY,QAAO;IACrC,SAAkB,QAAQ,8BAAiC;IAElD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY;CAMlE"}
|
package/dist/parser/ast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGvD,MAAM,KAAW,GAAG,CAgDnB;AAhDD,WAAiB,GAAG;IAGlB,IAAY,IAKX;IALD,WAAY,IAAI;QAEd,iCAAqC,CAAA;QACrC,yDAAiD,CAAA;QACjD,mDAA8C,CAAA;IAChD,CAAC,EALW,IAAI,GAAJ,
|
|
1
|
+
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/parser/ast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGvD,MAAM,KAAW,GAAG,CAgDnB;AAhDD,WAAiB,GAAG;IAGlB,IAAY,IAKX;IALD,WAAY,IAAI;QAEd,iCAAqC,CAAA;QACrC,yDAAiD,CAAA;QACjD,mDAA8C,CAAA;IAChD,CAAC,EALW,IAAI,GAAJ,QAAI,KAAJ,QAAI,QAKf;AAwCH,CAAC,EAhDgB,GAAG,KAAH,GAAG,QAgDnB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GenericParser } from "./generic-parser.js";
|
|
2
2
|
import { Ast } from "./ast.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { RecoverableFail, Unrecoverable, MaybeRecoverable } from "../errors.js";
|
|
4
4
|
import { Incantation } from "../magic/index.js";
|
|
5
5
|
import type { GLOBAL, LOCAL } from "../magic/index.js";
|
|
6
6
|
import type { DesmostOptions } from "../compiler/index.js";
|
|
@@ -15,10 +15,10 @@ export declare class DesmostParser extends GenericParser {
|
|
|
15
15
|
parse_sep(): Unrecoverable<void>;
|
|
16
16
|
parse_post_sep(): Unrecoverable<Ast.Expression>;
|
|
17
17
|
parse_latex_line(): Unrecoverable<Ast.Expression>;
|
|
18
|
-
try_parse_global_incantation():
|
|
19
|
-
try_parse_local_incantation():
|
|
18
|
+
try_parse_global_incantation(): Ast.IncantationInvocation<GLOBAL> | Ast.InvalidInvocation | RecoverableFail;
|
|
19
|
+
try_parse_local_incantation(): Ast.IncantationInvocation<LOCAL> | Ast.InvalidInvocation | RecoverableFail;
|
|
20
20
|
try_parse_expr_incantation(): MaybeRecoverable<Ast.Expression>;
|
|
21
|
-
try_parse_identifier<Effect extends Incantation.Effect>(incantations: Incantation<Effect>[]):
|
|
21
|
+
try_parse_identifier<Effect extends Incantation.Effect>(incantations: Incantation<Effect>[]): Incantation<Effect> | RecoverableFail;
|
|
22
22
|
parse_incantation_arg(arg_type: Incantation.ArgType): Unrecoverable<string>;
|
|
23
23
|
}
|
|
24
24
|
//# 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;AAG5B,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;AAG5B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElF,OAAO,EACL,WAAW,EAEZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAQ,MAAM,UAAU,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,qBAAa,aAAc,SAAQ,aAAa;gBAElC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IAW7C,UAAU,IAAI,GAAG,GAAG,IAAI;IA4C/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;IAkC/C,gBAAgB,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;IAmBjD,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;IAuDxC,qBAAqB,CASnB,QAAQ,EAAE,WAAW,CAAC,OAAO,GAC5B,aAAa,CAAC,MAAM,CAAC;CAgGzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GenericParser } from "./generic-parser.js";
|
|
2
2
|
import { Ast } from "./ast.js";
|
|
3
|
-
import {
|
|
3
|
+
import { FAIL, UnrecoverableError } from "../errors.js";
|
|
4
4
|
import { Incantation, ArgIncantation, GLOBAL_INCANTATIONS, LOCAL_INCANTATIONS, EXPR_INCANTATIONS } from "../magic/index.js";
|
|
5
5
|
export class DesmostParser extends GenericParser {
|
|
6
6
|
constructor(source, options) {
|
|
@@ -17,6 +17,9 @@ export class DesmostParser extends GenericParser {
|
|
|
17
17
|
return r.global;
|
|
18
18
|
}
|
|
19
19
|
let incantations = r.local;
|
|
20
|
+
if (incantations.length > 0) {
|
|
21
|
+
this.parse_sep();
|
|
22
|
+
}
|
|
20
23
|
var expr = this.parse_post_sep();
|
|
21
24
|
for (let invocation of incantations) {
|
|
22
25
|
expr.incantations.push(invocation);
|
|
@@ -29,34 +32,24 @@ export class DesmostParser extends GenericParser {
|
|
|
29
32
|
return expr;
|
|
30
33
|
}
|
|
31
34
|
parse_pre_sep() {
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
let r = this.try_parse_global_incantation();
|
|
36
|
+
if (r !== FAIL) {
|
|
34
37
|
this.consume_end_of_block(`Received excess input after global incantation /${r.incantation.identifier}`);
|
|
35
38
|
return { global: r };
|
|
36
39
|
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
if (!(e instanceof RecoverableFail))
|
|
39
|
-
throw e;
|
|
40
|
-
}
|
|
41
40
|
let incantations = [];
|
|
42
41
|
while (this.current === "/") {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
if (!(e instanceof RecoverableFail))
|
|
48
|
-
throw e;
|
|
42
|
+
let invocation = this.try_parse_local_incantation();
|
|
43
|
+
if (invocation === FAIL)
|
|
49
44
|
break;
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
if (incantations.length > 0) {
|
|
53
|
-
this.parse_sep();
|
|
45
|
+
incantations.push(invocation);
|
|
54
46
|
}
|
|
55
47
|
return { local: incantations };
|
|
56
48
|
}
|
|
57
49
|
parse_sep() {
|
|
58
50
|
this.consume_whitespace();
|
|
59
51
|
this.consume("::", `Expected \`::\` separator between local incantations and expression, but found: \`${this.preview()}\``);
|
|
52
|
+
this.consume_whitespace();
|
|
60
53
|
}
|
|
61
54
|
parse_post_sep() {
|
|
62
55
|
this.consume_spaces();
|
|
@@ -68,12 +61,10 @@ export class DesmostParser extends GenericParser {
|
|
|
68
61
|
incantations: [],
|
|
69
62
|
};
|
|
70
63
|
case "/":
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (!(e instanceof RecoverableFail))
|
|
76
|
-
throw e;
|
|
64
|
+
let incantation = this.try_parse_expr_incantation();
|
|
65
|
+
if (incantation !== FAIL)
|
|
66
|
+
return incantation;
|
|
67
|
+
else {
|
|
77
68
|
return this.parse_latex_line();
|
|
78
69
|
}
|
|
79
70
|
default:
|
|
@@ -87,21 +78,18 @@ export class DesmostParser extends GenericParser {
|
|
|
87
78
|
}
|
|
88
79
|
return {
|
|
89
80
|
kind: Ast.Kind.EXPRESSION,
|
|
90
|
-
data: { latex: this.source.slice(init, this.i) },
|
|
81
|
+
data: { latex: this.source.slice(init, this.i).trimEnd() },
|
|
91
82
|
incantations: [],
|
|
92
83
|
};
|
|
93
84
|
}
|
|
94
85
|
try_parse_global_incantation() {
|
|
95
86
|
let init = this.i;
|
|
96
|
-
this.try_consume("/")
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
this.i = init;
|
|
103
|
-
}
|
|
104
|
-
throw e;
|
|
87
|
+
if (this.try_consume("/") === FAIL)
|
|
88
|
+
return FAIL;
|
|
89
|
+
let incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
|
|
90
|
+
if (incantation === FAIL) {
|
|
91
|
+
this.i = init;
|
|
92
|
+
return FAIL;
|
|
105
93
|
}
|
|
106
94
|
let data = undefined;
|
|
107
95
|
if (incantation instanceof ArgIncantation) {
|
|
@@ -125,15 +113,12 @@ export class DesmostParser extends GenericParser {
|
|
|
125
113
|
}
|
|
126
114
|
try_parse_local_incantation() {
|
|
127
115
|
let init = this.i;
|
|
128
|
-
this.try_consume("/")
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
this.i = init;
|
|
135
|
-
}
|
|
136
|
-
throw e;
|
|
116
|
+
if (this.try_consume("/") === FAIL)
|
|
117
|
+
return FAIL;
|
|
118
|
+
let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
|
|
119
|
+
if (incantation === FAIL) {
|
|
120
|
+
this.i = init;
|
|
121
|
+
return FAIL;
|
|
137
122
|
}
|
|
138
123
|
let arg_raw = undefined;
|
|
139
124
|
if (incantation instanceof ArgIncantation) {
|
|
@@ -157,15 +142,12 @@ export class DesmostParser extends GenericParser {
|
|
|
157
142
|
}
|
|
158
143
|
try_parse_expr_incantation() {
|
|
159
144
|
let init = this.i;
|
|
160
|
-
this.try_consume("/")
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
this.i = init;
|
|
167
|
-
}
|
|
168
|
-
throw e;
|
|
145
|
+
if (this.try_consume("/") === FAIL)
|
|
146
|
+
return FAIL;
|
|
147
|
+
let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
|
|
148
|
+
if (incantation === FAIL) {
|
|
149
|
+
this.i = init;
|
|
150
|
+
return FAIL;
|
|
169
151
|
}
|
|
170
152
|
let arg_raw = this.parse_incantation_arg(incantation.arg_type);
|
|
171
153
|
let data = {};
|
|
@@ -178,26 +160,16 @@ export class DesmostParser extends GenericParser {
|
|
|
178
160
|
}
|
|
179
161
|
try_parse_identifier(incantations) {
|
|
180
162
|
for (let incantation of incantations) {
|
|
181
|
-
|
|
182
|
-
|
|
163
|
+
let r = this.try_consume(incantation.identifier);
|
|
164
|
+
if (r !== FAIL)
|
|
183
165
|
return incantation;
|
|
184
|
-
}
|
|
185
|
-
catch (e) {
|
|
186
|
-
if (!(e instanceof RecoverableFail))
|
|
187
|
-
throw e;
|
|
188
|
-
}
|
|
189
166
|
if (incantation.alias != undefined) {
|
|
190
|
-
|
|
191
|
-
|
|
167
|
+
let r = this.try_consume(incantation.alias);
|
|
168
|
+
if (r !== FAIL)
|
|
192
169
|
return incantation;
|
|
193
|
-
}
|
|
194
|
-
catch (e) {
|
|
195
|
-
if (!(e instanceof RecoverableFail))
|
|
196
|
-
throw e;
|
|
197
|
-
}
|
|
198
170
|
}
|
|
199
171
|
}
|
|
200
|
-
|
|
172
|
+
return FAIL;
|
|
201
173
|
}
|
|
202
174
|
parse_incantation_arg(arg_type) {
|
|
203
175
|
let init = this.i;
|
|
@@ -249,12 +221,24 @@ export class DesmostParser extends GenericParser {
|
|
|
249
221
|
if (arg_type === Incantation.ArgType.OBJECT) {
|
|
250
222
|
switch (this.current) {
|
|
251
223
|
case Ctx.STR_1:
|
|
224
|
+
if (top === Ctx.STR_2)
|
|
225
|
+
break;
|
|
226
|
+
if (top === Ctx.STR_F)
|
|
227
|
+
break;
|
|
252
228
|
try_pop(Ctx.STR_1) || stack.push(Ctx.STR_1);
|
|
253
229
|
break;
|
|
254
230
|
case Ctx.STR_2:
|
|
231
|
+
if (top === Ctx.STR_1)
|
|
232
|
+
break;
|
|
233
|
+
if (top === Ctx.STR_F)
|
|
234
|
+
break;
|
|
255
235
|
try_pop(Ctx.STR_2) || stack.push(Ctx.STR_2);
|
|
256
236
|
break;
|
|
257
237
|
case Ctx.STR_F:
|
|
238
|
+
if (top === Ctx.STR_1)
|
|
239
|
+
break;
|
|
240
|
+
if (top === Ctx.STR_2)
|
|
241
|
+
break;
|
|
258
242
|
try_pop(Ctx.STR_F) || stack.push(Ctx.STR_F);
|
|
259
243
|
break;
|
|
260
244
|
}
|
|
@@ -1 +1 @@
|
|
|
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;AAE5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"desmost-parser.js","sourceRoot":"","sources":["../../src/parser/desmost-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RecoverableFail, Unrecoverable } from "../errors.js";
|
|
2
2
|
export declare class GenericParser {
|
|
3
|
+
#private;
|
|
3
4
|
protected source: string;
|
|
4
5
|
protected i: number;
|
|
5
6
|
protected length: number;
|
|
@@ -7,11 +8,11 @@ export declare class GenericParser {
|
|
|
7
8
|
protected out_of_bounds(): boolean;
|
|
8
9
|
protected get current(): string | undefined;
|
|
9
10
|
protected next(): string | undefined;
|
|
10
|
-
preview(): string;
|
|
11
|
+
preview(idx?: number): string;
|
|
11
12
|
protected advance(error_msg?: string): Unrecoverable<void>;
|
|
12
|
-
protected try_advance():
|
|
13
|
+
protected try_advance(): void | RecoverableFail;
|
|
13
14
|
protected consume(raw: string, error_msg?: string): Unrecoverable<void>;
|
|
14
|
-
protected try_consume(raw: string):
|
|
15
|
+
protected try_consume(raw: string): void | RecoverableFail;
|
|
15
16
|
protected consume_spaces(): void;
|
|
16
17
|
protected consume_whitespace(): void;
|
|
17
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,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,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FAIL, UnrecoverableError } from "../errors.js";
|
|
2
2
|
const IGNORED_CHARACTERS = new Set([
|
|
3
3
|
"\r",
|
|
4
4
|
]);
|
|
@@ -19,44 +19,48 @@ export class GenericParser {
|
|
|
19
19
|
next() {
|
|
20
20
|
return this.source.at(this.i + 1);
|
|
21
21
|
}
|
|
22
|
-
preview() {
|
|
23
|
-
|
|
22
|
+
preview(idx) {
|
|
23
|
+
idx ??= this.i;
|
|
24
|
+
return this.source.slice(idx, idx + 20) + "...";
|
|
24
25
|
}
|
|
25
26
|
advance(error_msg) {
|
|
26
27
|
if (this.out_of_bounds()) {
|
|
27
28
|
throw new UnrecoverableError.UnexpectedEnd(error_msg ?? "Unexpected end of input");
|
|
28
29
|
}
|
|
29
|
-
this
|
|
30
|
-
if (IGNORED_CHARACTERS.has(this.current)) {
|
|
31
|
-
this.advance();
|
|
32
|
-
}
|
|
30
|
+
this.#advance();
|
|
33
31
|
}
|
|
34
32
|
try_advance() {
|
|
35
|
-
|
|
33
|
+
if (this.out_of_bounds())
|
|
34
|
+
return FAIL;
|
|
35
|
+
this.#advance();
|
|
36
|
+
}
|
|
37
|
+
#advance() {
|
|
38
|
+
this.i++;
|
|
39
|
+
if (IGNORED_CHARACTERS.has(this.current)) {
|
|
36
40
|
this.advance();
|
|
37
41
|
}
|
|
38
|
-
catch {
|
|
39
|
-
throw new RecoverableFail();
|
|
40
|
-
}
|
|
41
42
|
}
|
|
42
43
|
consume(raw, error_msg) {
|
|
43
44
|
if (this.out_of_bounds()) {
|
|
44
45
|
throw new UnrecoverableError.UnexpectedEnd(`Unexpected end of input while trying to consume: \`${raw}\``);
|
|
45
46
|
}
|
|
47
|
+
let init = this.i;
|
|
46
48
|
let ii = 0;
|
|
47
49
|
while (this.current === raw[ii]) {
|
|
48
|
-
this.advance(`Unexpected end of input while trying to consume: \`${raw}\``);
|
|
50
|
+
this.advance(`Unexpected end of input while trying to consume: \`${raw}\`, at: \`${this.preview(init)}\``);
|
|
49
51
|
ii++;
|
|
50
52
|
if (ii === raw.length)
|
|
51
53
|
return;
|
|
52
54
|
}
|
|
53
|
-
throw new UnrecoverableError.UnexpectedInput(error_msg ?? `Expected: \`${raw}\`, but found: \`${this.preview()}\``);
|
|
55
|
+
throw new UnrecoverableError.UnexpectedInput(error_msg ?? `Expected: \`${raw}\`, but found: \`${this.preview(init)}\``);
|
|
54
56
|
}
|
|
55
57
|
try_consume(raw) {
|
|
56
58
|
let init = this.i;
|
|
57
59
|
let ii = 0;
|
|
58
60
|
while (this.current === raw[ii]) {
|
|
59
|
-
this.try_advance();
|
|
61
|
+
let r = this.try_advance();
|
|
62
|
+
if (r === FAIL)
|
|
63
|
+
return FAIL;
|
|
60
64
|
ii++;
|
|
61
65
|
if (ii === raw.length)
|
|
62
66
|
return;
|
|
@@ -64,7 +68,7 @@ export class GenericParser {
|
|
|
64
68
|
break;
|
|
65
69
|
}
|
|
66
70
|
this.i = init;
|
|
67
|
-
|
|
71
|
+
return FAIL;
|
|
68
72
|
}
|
|
69
73
|
consume_spaces() {
|
|
70
74
|
if (this.out_of_bounds())
|
|
@@ -84,14 +88,7 @@ export class GenericParser {
|
|
|
84
88
|
if (this.i >= this.length)
|
|
85
89
|
return;
|
|
86
90
|
this.consume_spaces();
|
|
87
|
-
|
|
88
|
-
this.try_consume("\n");
|
|
89
|
-
}
|
|
90
|
-
catch (e) {
|
|
91
|
-
if (!(e instanceof RecoverableFail))
|
|
92
|
-
throw e;
|
|
93
|
-
throw new UnrecoverableError.ExcessInput(error_msg ?? `Expected end of block, but found: \`${this.preview()}\``);
|
|
94
|
-
}
|
|
91
|
+
this.consume("\n", error_msg ?? `Expected end of block, but found: \`${this.preview()}\``);
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
//# sourceMappingURL=generic-parser.js.map
|
|
@@ -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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "desmost",
|
|
3
3
|
"author": "Sup#2.0",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
|
|
7
7
|
"description": "A tiny DSL for compiling LaTeX to Desmos",
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"json5": "^2.2"
|
|
52
52
|
},
|
|
53
53
|
|
|
54
|
+
"peerDependencies":
|
|
55
|
+
{
|
|
56
|
+
"@types/desmos": "1.11"
|
|
57
|
+
},
|
|
58
|
+
|
|
54
59
|
"devDependencies":
|
|
55
60
|
{
|
|
56
61
|
"@types/desmos": "1.11",
|
|
@@ -58,7 +63,7 @@
|
|
|
58
63
|
"oxlint": "^1.78",
|
|
59
64
|
"oxlint-tsgolint": "^7.0",
|
|
60
65
|
"tsc-alias": "^1.9",
|
|
61
|
-
"typescript": "^
|
|
66
|
+
"typescript": "^6.0",
|
|
62
67
|
"vitest": "^4.0"
|
|
63
68
|
}
|
|
64
69
|
}
|
package/src/errors.ts
CHANGED
|
@@ -29,18 +29,18 @@ export namespace UnrecoverableError
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
/** The compiler encountered a non-fatal recoverable failure (usually during speculative parsing), which only results in internal backtracking. */
|
|
32
|
-
export
|
|
32
|
+
export const FAIL = Symbol("fail");
|
|
33
33
|
|
|
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 };
|
|
34
36
|
|
|
35
|
-
/** Indicates that a function may throw a `RecoverableFail`. */
|
|
36
|
-
export type Recoverable<Result> = Result | Result & { readonly __brand?: unique symbol };
|
|
37
37
|
|
|
38
38
|
/** Indicates that a function may throw an `UnrecoverableError`. */
|
|
39
|
-
export type Unrecoverable<Result> = Result | Result & { readonly __brand?: unique symbol }
|
|
39
|
+
export type Unrecoverable<Result> = Result | Result & { readonly __brand?: unique symbol };
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
* Indicates that a function may
|
|
42
|
+
* Indicates that a function may either return a `RecoverableFail` *or* throw an `UnrecoverableError`.
|
|
43
43
|
*
|
|
44
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
45
|
*/
|
|
46
|
-
export type MaybeRecoverable<Result> =
|
|
46
|
+
export type MaybeRecoverable<Result> = RecoverableFail | Unrecoverable<Result>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GenericParser } from "./generic-parser";
|
|
2
2
|
import { Ast } from "./ast";
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
4
|
+
import { FAIL, UnrecoverableError } from "../errors";
|
|
5
|
+
import type { RecoverableFail, Unrecoverable, MaybeRecoverable } from "../errors";
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
Incantation, ArgIncantation,
|
|
@@ -48,6 +48,10 @@ export class DesmostParser extends GenericParser
|
|
|
48
48
|
// 1+ locals + 1 expr
|
|
49
49
|
let incantations = r.local;
|
|
50
50
|
|
|
51
|
+
if (incantations.length > 0) {
|
|
52
|
+
this.parse_sep();
|
|
53
|
+
}
|
|
54
|
+
|
|
51
55
|
var expr = this.parse_post_sep();
|
|
52
56
|
|
|
53
57
|
for (let invocation of incantations) {
|
|
@@ -80,34 +84,23 @@ export class DesmostParser extends GenericParser
|
|
|
80
84
|
>
|
|
81
85
|
{
|
|
82
86
|
// 1 global incantation
|
|
83
|
-
|
|
84
|
-
let r = this.try_parse_global_incantation();
|
|
87
|
+
let r = this.try_parse_global_incantation();
|
|
85
88
|
|
|
89
|
+
if (r !== FAIL) {
|
|
86
90
|
this.consume_end_of_block(
|
|
87
91
|
`Received excess input after global incantation /${r.incantation.identifier}`
|
|
88
92
|
);
|
|
89
93
|
|
|
90
94
|
return { global: r };
|
|
91
95
|
}
|
|
92
|
-
catch (e) {
|
|
93
|
-
if (!(e instanceof RecoverableFail)) throw e;
|
|
94
|
-
}
|
|
95
96
|
|
|
97
|
+
// 1+ local incantations
|
|
96
98
|
let incantations = [];
|
|
97
99
|
|
|
98
|
-
// 1+ local incantations
|
|
99
100
|
while (this.current === "/") {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
catch (e) {
|
|
104
|
-
if (!(e instanceof RecoverableFail)) throw e;
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
if (incantations.length > 0) {
|
|
110
|
-
this.parse_sep();
|
|
101
|
+
let invocation = this.try_parse_local_incantation();
|
|
102
|
+
if (invocation === FAIL) break;
|
|
103
|
+
incantations.push(invocation);
|
|
111
104
|
}
|
|
112
105
|
|
|
113
106
|
return { local: incantations };
|
|
@@ -122,6 +115,7 @@ export class DesmostParser extends GenericParser
|
|
|
122
115
|
this.consume("::",
|
|
123
116
|
`Expected \`::\` separator between local incantations and expression, but found: \`${this.preview()}\``
|
|
124
117
|
);
|
|
118
|
+
this.consume_whitespace();
|
|
125
119
|
}
|
|
126
120
|
|
|
127
121
|
/**
|
|
@@ -145,11 +139,9 @@ export class DesmostParser extends GenericParser
|
|
|
145
139
|
|
|
146
140
|
// expr incantation
|
|
147
141
|
case "/":
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
catch (e) {
|
|
152
|
-
if (!(e instanceof RecoverableFail)) throw e;
|
|
142
|
+
let incantation = this.try_parse_expr_incantation();
|
|
143
|
+
if (incantation !== FAIL) return incantation;
|
|
144
|
+
else {
|
|
153
145
|
// plain LaTeX (fallback)
|
|
154
146
|
return this.parse_latex_line();
|
|
155
147
|
}
|
|
@@ -176,7 +168,7 @@ export class DesmostParser extends GenericParser
|
|
|
176
168
|
|
|
177
169
|
return {
|
|
178
170
|
kind: Ast.Kind.EXPRESSION,
|
|
179
|
-
data: { latex: this.source.slice(init, this.i) },
|
|
171
|
+
data: { latex: this.source.slice(init, this.i).trimEnd() },
|
|
180
172
|
incantations: [],
|
|
181
173
|
};
|
|
182
174
|
}
|
|
@@ -186,23 +178,18 @@ export class DesmostParser extends GenericParser
|
|
|
186
178
|
* Attempt to parse a global incantation invocation.
|
|
187
179
|
*/
|
|
188
180
|
try_parse_global_incantation():
|
|
189
|
-
Recoverable<
|
|
190
181
|
| Ast.IncantationInvocation<GLOBAL>
|
|
191
182
|
| Ast.InvalidInvocation
|
|
192
|
-
|
|
183
|
+
| RecoverableFail
|
|
193
184
|
{
|
|
194
185
|
let init = this.i;
|
|
195
186
|
|
|
196
|
-
this.try_consume("/");
|
|
187
|
+
if (this.try_consume("/") === FAIL) return FAIL;
|
|
197
188
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
if (e instanceof RecoverableFail) {
|
|
203
|
-
this.i = init;
|
|
204
|
-
}
|
|
205
|
-
throw e;
|
|
189
|
+
let incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
|
|
190
|
+
if (incantation === FAIL) {
|
|
191
|
+
this.i = init;
|
|
192
|
+
return FAIL;
|
|
206
193
|
}
|
|
207
194
|
|
|
208
195
|
let data = undefined;
|
|
@@ -224,6 +211,7 @@ export class DesmostParser extends GenericParser
|
|
|
224
211
|
|
|
225
212
|
this.consume_spaces();
|
|
226
213
|
|
|
214
|
+
// @ts-expect-error: FIXME
|
|
227
215
|
return {
|
|
228
216
|
kind: Ast.Kind.INCANTATION_INVOCATION,
|
|
229
217
|
incantation,
|
|
@@ -235,23 +223,18 @@ export class DesmostParser extends GenericParser
|
|
|
235
223
|
* Attempt to parse a local incantation invocation.
|
|
236
224
|
*/
|
|
237
225
|
try_parse_local_incantation():
|
|
238
|
-
Recoverable<
|
|
239
226
|
| Ast.IncantationInvocation<LOCAL>
|
|
240
227
|
| Ast.InvalidInvocation
|
|
241
|
-
|
|
228
|
+
| RecoverableFail
|
|
242
229
|
{
|
|
243
230
|
let init = this.i;
|
|
244
231
|
|
|
245
|
-
this.try_consume("/");
|
|
232
|
+
if (this.try_consume("/") === FAIL) return FAIL;
|
|
246
233
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if (e instanceof RecoverableFail) {
|
|
252
|
-
this.i = init;
|
|
253
|
-
}
|
|
254
|
-
throw e;
|
|
234
|
+
let incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
|
|
235
|
+
if (incantation === FAIL) {
|
|
236
|
+
this.i = init;
|
|
237
|
+
return FAIL;
|
|
255
238
|
}
|
|
256
239
|
|
|
257
240
|
let arg_raw = undefined;
|
|
@@ -273,6 +256,7 @@ export class DesmostParser extends GenericParser
|
|
|
273
256
|
|
|
274
257
|
this.consume_whitespace();
|
|
275
258
|
|
|
259
|
+
// @ts-expect-error: FIXME
|
|
276
260
|
return {
|
|
277
261
|
kind: Ast.Kind.INCANTATION_INVOCATION,
|
|
278
262
|
incantation,
|
|
@@ -282,23 +266,18 @@ export class DesmostParser extends GenericParser
|
|
|
282
266
|
|
|
283
267
|
try_parse_expr_incantation(): MaybeRecoverable<Ast.Expression>
|
|
284
268
|
{
|
|
285
|
-
// TODO refactor with `backtrack()` helper
|
|
286
269
|
let init = this.i;
|
|
287
270
|
|
|
288
|
-
this.try_consume("/");
|
|
271
|
+
if (this.try_consume("/") === FAIL) return FAIL;
|
|
289
272
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
// TODO maybe flag to user
|
|
296
|
-
this.i = init;
|
|
297
|
-
}
|
|
298
|
-
throw e;
|
|
273
|
+
let incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
|
|
274
|
+
if (incantation === FAIL) {
|
|
275
|
+
// TODO maybe flag to user
|
|
276
|
+
this.i = init;
|
|
277
|
+
return FAIL;
|
|
299
278
|
}
|
|
300
279
|
|
|
301
|
-
let arg_raw = this.parse_incantation_arg(incantation.arg_type);
|
|
280
|
+
let arg_raw = this.parse_incantation_arg((incantation as ArgIncantation<EXPR>).arg_type);
|
|
302
281
|
|
|
303
282
|
let data = {};
|
|
304
283
|
incantation.apply(data, arg_raw);
|
|
@@ -315,30 +294,20 @@ export class DesmostParser extends GenericParser
|
|
|
315
294
|
*/
|
|
316
295
|
try_parse_identifier<Effect extends Incantation.Effect>(
|
|
317
296
|
incantations: Incantation<Effect>[]
|
|
318
|
-
):
|
|
297
|
+
): Incantation<Effect> | RecoverableFail
|
|
319
298
|
{
|
|
320
299
|
for (let incantation of incantations) {
|
|
321
300
|
// yeah the duplication here is a little meh, unfortunately needing `return` means we can't extract it into a helper
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
return incantation;
|
|
325
|
-
}
|
|
326
|
-
catch (e) {
|
|
327
|
-
if (!(e instanceof RecoverableFail)) throw e;
|
|
328
|
-
}
|
|
301
|
+
let r = this.try_consume(incantation.identifier);
|
|
302
|
+
if (r !== FAIL) return incantation;
|
|
329
303
|
|
|
330
304
|
if (incantation.alias != undefined) {
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
return incantation;
|
|
334
|
-
}
|
|
335
|
-
catch (e) {
|
|
336
|
-
if (!(e instanceof RecoverableFail)) throw e;
|
|
337
|
-
}
|
|
305
|
+
let r = this.try_consume(incantation.alias);
|
|
306
|
+
if (r !== FAIL) return incantation;
|
|
338
307
|
}
|
|
339
308
|
}
|
|
340
309
|
|
|
341
|
-
|
|
310
|
+
return FAIL;
|
|
342
311
|
}
|
|
343
312
|
|
|
344
313
|
/**
|
|
@@ -457,9 +426,23 @@ export class DesmostParser extends GenericParser
|
|
|
457
426
|
|
|
458
427
|
if (arg_type === Incantation.ArgType.OBJECT) {
|
|
459
428
|
switch (this.current) {
|
|
460
|
-
case Ctx.STR_1:
|
|
461
|
-
|
|
462
|
-
|
|
429
|
+
case Ctx.STR_1:
|
|
430
|
+
if (top === Ctx.STR_2) break;
|
|
431
|
+
if (top === Ctx.STR_F) break;
|
|
432
|
+
try_pop(Ctx.STR_1) || stack.push(Ctx.STR_1);
|
|
433
|
+
break;
|
|
434
|
+
|
|
435
|
+
case Ctx.STR_2:
|
|
436
|
+
if (top === Ctx.STR_1) break;
|
|
437
|
+
if (top === Ctx.STR_F) break;
|
|
438
|
+
try_pop(Ctx.STR_2) || stack.push(Ctx.STR_2);
|
|
439
|
+
break;
|
|
440
|
+
|
|
441
|
+
case Ctx.STR_F:
|
|
442
|
+
if (top === Ctx.STR_1) break;
|
|
443
|
+
if (top === Ctx.STR_2) break;
|
|
444
|
+
try_pop(Ctx.STR_F) || stack.push(Ctx.STR_F);
|
|
445
|
+
break;
|
|
463
446
|
}
|
|
464
447
|
}
|
|
465
448
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { FAIL, UnrecoverableError } from "../errors";
|
|
2
|
+
import type { RecoverableFail, Unrecoverable } from "../errors";
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
const IGNORED_CHARACTERS = new Set([
|
|
@@ -58,10 +58,13 @@ export class GenericParser
|
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
60
|
* Peek a snippet of the upcoming source text (for error messages).
|
|
61
|
+
*
|
|
62
|
+
* Optionally start from the given `idx`.
|
|
61
63
|
*/
|
|
62
|
-
public preview(): string
|
|
64
|
+
public preview(idx?: number): string
|
|
63
65
|
{
|
|
64
|
-
|
|
66
|
+
idx ??= this.i;
|
|
67
|
+
return this.source.slice(idx, idx + 20) + "...";
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
/**
|
|
@@ -75,25 +78,28 @@ export class GenericParser
|
|
|
75
78
|
throw new UnrecoverableError.UnexpectedEnd(error_msg ?? "Unexpected end of input");
|
|
76
79
|
}
|
|
77
80
|
|
|
78
|
-
this
|
|
79
|
-
|
|
80
|
-
// @ts-expect-error: `this.current == undefined` is a true negative
|
|
81
|
-
if (IGNORED_CHARACTERS.has(this.current)) {
|
|
82
|
-
this.advance();
|
|
83
|
-
}
|
|
81
|
+
this.#advance();
|
|
84
82
|
}
|
|
85
83
|
|
|
86
84
|
/**
|
|
87
85
|
* Attempt to advance to the next character, skipping ignored characters.
|
|
86
|
+
*
|
|
87
|
+
* Fails if the parser is the out-of-bounds *before* advancing.
|
|
88
88
|
*/
|
|
89
|
-
protected try_advance():
|
|
89
|
+
protected try_advance(): void | RecoverableFail
|
|
90
|
+
{
|
|
91
|
+
if (this.out_of_bounds()) return FAIL;
|
|
92
|
+
this.#advance();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
#advance(): void
|
|
90
96
|
{
|
|
91
|
-
|
|
97
|
+
this.i++;
|
|
98
|
+
|
|
99
|
+
// @ts-expect-error: `this.current == undefined` is a true negative
|
|
100
|
+
if (IGNORED_CHARACTERS.has(this.current)) {
|
|
92
101
|
this.advance();
|
|
93
102
|
}
|
|
94
|
-
catch {
|
|
95
|
-
throw new RecoverableFail();
|
|
96
|
-
}
|
|
97
103
|
}
|
|
98
104
|
|
|
99
105
|
/**
|
|
@@ -107,11 +113,12 @@ export class GenericParser
|
|
|
107
113
|
);
|
|
108
114
|
}
|
|
109
115
|
|
|
116
|
+
let init = this.i;
|
|
110
117
|
let ii = 0;
|
|
111
118
|
|
|
112
119
|
while (this.current === raw[ii]) {
|
|
113
120
|
this.advance(
|
|
114
|
-
`Unexpected end of input while trying to consume: \`${raw}\``
|
|
121
|
+
`Unexpected end of input while trying to consume: \`${raw}\`, at: \`${this.preview(init)}\``
|
|
115
122
|
);
|
|
116
123
|
|
|
117
124
|
ii++;
|
|
@@ -119,28 +126,29 @@ export class GenericParser
|
|
|
119
126
|
}
|
|
120
127
|
|
|
121
128
|
throw new UnrecoverableError.UnexpectedInput(
|
|
122
|
-
error_msg ?? `Expected: \`${raw}\`, but found: \`${this.preview()}\``
|
|
129
|
+
error_msg ?? `Expected: \`${raw}\`, but found: \`${this.preview(init)}\``
|
|
123
130
|
);
|
|
124
131
|
}
|
|
125
132
|
|
|
126
133
|
/**
|
|
127
|
-
* Attempt to consume `raw`, backtracking
|
|
134
|
+
* Attempt to consume `raw`, backtracking if `raw` was not found.
|
|
128
135
|
*/
|
|
129
|
-
protected try_consume(raw: string):
|
|
136
|
+
protected try_consume(raw: string): void | RecoverableFail
|
|
130
137
|
{
|
|
131
138
|
let init = this.i;
|
|
132
139
|
let ii = 0;
|
|
133
140
|
|
|
134
141
|
while (this.current === raw[ii]) {
|
|
135
|
-
this.try_advance();
|
|
136
|
-
|
|
142
|
+
let r = this.try_advance();
|
|
143
|
+
if (r === FAIL) return FAIL;
|
|
137
144
|
|
|
145
|
+
ii++;
|
|
138
146
|
if (ii === raw.length) return;
|
|
139
147
|
if (this.i === this.length) break;
|
|
140
148
|
}
|
|
141
149
|
|
|
142
150
|
this.i = init;
|
|
143
|
-
|
|
151
|
+
return FAIL;
|
|
144
152
|
}
|
|
145
153
|
|
|
146
154
|
/**
|
|
@@ -177,15 +185,8 @@ export class GenericParser
|
|
|
177
185
|
|
|
178
186
|
this.consume_spaces();
|
|
179
187
|
|
|
180
|
-
|
|
181
|
-
this.
|
|
182
|
-
|
|
183
|
-
catch (e) {
|
|
184
|
-
if (!(e instanceof RecoverableFail)) throw e;
|
|
185
|
-
|
|
186
|
-
throw new UnrecoverableError.ExcessInput(
|
|
187
|
-
error_msg ?? `Expected end of block, but found: \`${this.preview()}\``
|
|
188
|
-
);
|
|
189
|
-
}
|
|
188
|
+
this.consume("\n",
|
|
189
|
+
error_msg ?? `Expected end of block, but found: \`${this.preview()}\``
|
|
190
|
+
);
|
|
190
191
|
}
|
|
191
192
|
}
|