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.
Files changed (36) hide show
  1. package/dist/compiler/evaluate.js.map +1 -1
  2. package/dist/errors.d.ts +6 -7
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/errors.js +1 -3
  5. package/dist/errors.js.map +1 -1
  6. package/dist/magic/expr/latex.d.ts.map +1 -1
  7. package/dist/magic/expr/text.d.ts.map +1 -1
  8. package/dist/magic/global/dark-mode.d.ts.map +1 -1
  9. package/dist/magic/global/desmos.d.ts.map +1 -1
  10. package/dist/magic/global/viewport.d.ts.map +1 -1
  11. package/dist/magic/incantation.d.ts.map +1 -1
  12. package/dist/magic/incantation.js.map +1 -1
  13. package/dist/magic/local/anim.d.ts.map +1 -1
  14. package/dist/magic/local/colour.d.ts.map +1 -1
  15. package/dist/magic/local/colour.js.map +1 -1
  16. package/dist/magic/local/dashed.d.ts.map +1 -1
  17. package/dist/magic/local/fill.d.ts.map +1 -1
  18. package/dist/magic/local/hide.d.ts.map +1 -1
  19. package/dist/magic/local/line.d.ts.map +1 -1
  20. package/dist/magic/local/no-line.d.ts.map +1 -1
  21. package/dist/magic/local/point.d.ts.map +1 -1
  22. package/dist/magic/local/secret.d.ts.map +1 -1
  23. package/dist/magic/local/slider.d.ts.map +1 -1
  24. package/dist/parser/ast.js.map +1 -1
  25. package/dist/parser/desmost-parser.d.ts +4 -4
  26. package/dist/parser/desmost-parser.d.ts.map +1 -1
  27. package/dist/parser/desmost-parser.js +50 -66
  28. package/dist/parser/desmost-parser.js.map +1 -1
  29. package/dist/parser/generic-parser.d.ts +5 -4
  30. package/dist/parser/generic-parser.d.ts.map +1 -1
  31. package/dist/parser/generic-parser.js +20 -23
  32. package/dist/parser/generic-parser.js.map +1 -1
  33. package/package.json +7 -2
  34. package/src/errors.ts +6 -6
  35. package/src/parser/desmost-parser.ts +61 -78
  36. package/src/parser/generic-parser.ts +33 -32
@@ -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,13 +14,12 @@ export declare namespace UnrecoverableError {
14
14
  class InvalidArgument extends UnrecoverableError {
15
15
  }
16
16
  }
17
- export declare class RecoverableFail {
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 | (Result & {
20
+ };
21
+ export type Unrecoverable<Result> = Result | Result & {
23
22
  readonly __brand?: unique symbol;
24
- });
25
- export type MaybeRecoverable<Result> = Recoverable<Result> | Unrecoverable<Result>;
23
+ };
24
+ export type MaybeRecoverable<Result> = RecoverableFail | Unrecoverable<Result>;
26
25
  //# 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,qBAAa,eAAe;CAAG;AAI/B,MAAM,MAAM,WAAW,CAAC,MAAM,IAAI,MAAM,IAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAA,CAAC;AAGzF,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,IAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,MAAM,CAAA;CAAE,CAAA,CAAC;AAO3F,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,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,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 class RecoverableFail {
24
- }
25
- ;
23
+ export const FAIL = Symbol("fail");
26
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,mBAAA,aAAa,gBAA8B,CAAA;IAGxD,MAAa,YAAa,SAAQ,kBAAkB;KAAG;IAA1C,mBAAA,YAAY,eAA8B,CAAA;IAGvD,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAA7C,mBAAA,eAAe,kBAA8B,CAAA;IAG1D,MAAa,WAAY,SAAQ,kBAAkB;KAAG;IAAzC,mBAAA,WAAW,cAA8B,CAAA;IAItD,MAAa,kBAAmB,SAAQ,kBAAkB;KAAG;IAAhD,mBAAA,kBAAkB,qBAA8B,CAAA;IAG7D,MAAa,eAAgB,SAAQ,kBAAkB;KAAG;IAA7C,mBAAA,eAAe,kBAA8B,CAAA;AAC5D,CAAC,EApBgB,kBAAkB,KAAlB,kBAAkB,QAoBlC;AAID,MAAM,OAAO,eAAe;CAAG;AAO4D,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,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,CAKxD;IAEQ,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1C;CACF"}
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,QAK1D;CACF"}
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,QAK9B;CACF"}
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,CAGN;CACF"}
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,QAIpD;CACF"}
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;IAI9B,SAAgB,KAAK,CACnB,MAAM,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,eAAe,EAC1E,IAAI,CAAC,EAAE,OAAO,GACb,IAAI,CAAA;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,CAQrB;CACF;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,CAgBvD;CACF;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
+ {"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,EAAE,OAAO,GAAG,CAAC;YAC5C,KAAK,WAAW,CAAC,OAAO,CAAC,KAAK,EAAG,OAAO,GAAG,CAAC;YAC5C,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,EAAI,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,YAAA,MAAM,KAAN,YAAA,MAAM,QAUjB;IAGD,IAAY,OAaX;IAbD,WAAY,OAAO;QAGjB,4BAAiB,CAAA;QAGjB,0BAAe,CAAA;QAGf,wBAAa,CAAA;QAGb,4BAAiB,CAAA;IACnB,CAAC,EAbW,OAAO,GAAP,YAAA,OAAO,KAAP,YAAA,OAAO,QAalB;AACH,CAAC,EA9BgB,WAAW,KAAX,WAAW,QA8B3B"}
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,QAK5C;CACF"}
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,QAIhE;IAEQ,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAchD;CACF"}
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,EAAK,OAAO,YAAY,CAAC,GAAG,CAAC;YACvC,KAAK,MAAM,EAAI,OAAO,YAAY,CAAC,IAAI,CAAC;YACxC,KAAK,OAAO,EAAG,OAAO,YAAY,CAAC,KAAK,CAAC;YACzC,KAAK,QAAQ,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;YAC1C,KAAK,QAAQ,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;YAC1C,KAAK,OAAO,EAAG,OAAO,YAAY,CAAC,KAAK,CAAC;YACzC;gBACE,MAAM,IAAI,kBAAkB,CAC1B,qBAAqB,IAAI,IAAI,CAC9B,CAAC;QACN,CAAC;IACH,CAAC;CACF"}
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,QAI5C;CACF"}
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,QAI/D;CACF"}
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,QAInC;CACF"}
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,QAO/D;CACF"}
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,QAI5C;CACF"}
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,QAOxE;CACF"}
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,QAI5C;CACF"}
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,QAKhE;CACF"}
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"}
@@ -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,IAAA,IAAI,KAAJ,IAAA,IAAI,QAKf;AAwCH,CAAC,EAhDgB,GAAG,KAAH,GAAG,QAgDnB"}
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 { Recoverable, Unrecoverable, MaybeRecoverable } from "../errors.js";
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(): Recoverable<Ast.IncantationInvocation<GLOBAL> | Ast.InvalidInvocation>;
19
- try_parse_local_incantation(): Recoverable<Ast.IncantationInvocation<LOCAL> | Ast.InvalidInvocation>;
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>[]): Recoverable<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,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE9E,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;IAE9C,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAGnD;IAQM,UAAU,IAAI,GAAG,GAAG,IAAI,CAgC9B;IAQD,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,CAkCF;IAKD,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,CAM/B;IAQD,cAAc,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CA4B9C;IAQD,gBAAgB,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAahD;IAMD,4BAA4B,IAC1B,WAAW,CACT,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,GACjC,GAAG,CAAC,iBAAiB,CACtB,CAwCF;IAKD,2BAA2B,IACzB,WAAW,CACT,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAChC,GAAG,CAAC,iBAAiB,CACtB,CAwCF;IAED,0BAA0B,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CA4B7D;IAKD,oBAAoB,CAAC,MAAM,SAAS,WAAW,CAAC,MAAM,EACpD,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAClC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAwBlC;IAyCD,qBAAqB,CASnB,QAAQ,EAAE,WAAW,CAAC,OAAO,GAC5B,aAAa,CAAC,MAAM,CAAC,CAgFvB;CAEF"}
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 { RecoverableFail, UnrecoverableError } from "../errors.js";
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
- try {
33
- let r = this.try_parse_global_incantation();
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
- try {
44
- incantations.push(this.try_parse_local_incantation());
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
- try {
72
- return this.try_parse_expr_incantation();
73
- }
74
- catch (e) {
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
- try {
98
- var incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
99
- }
100
- catch (e) {
101
- if (e instanceof RecoverableFail) {
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
- try {
130
- var incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
131
- }
132
- catch (e) {
133
- if (e instanceof RecoverableFail) {
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
- try {
162
- var incantation = this.try_parse_identifier(EXPR_INCANTATIONS);
163
- }
164
- catch (e) {
165
- if (e instanceof RecoverableFail) {
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
- try {
182
- this.try_consume(incantation.identifier);
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
- try {
191
- this.try_consume(incantation.alias);
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
- throw new RecoverableFail();
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":"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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,5 +1,6 @@
1
- import type { Recoverable, Unrecoverable } from "../errors.js";
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(): Recoverable<void>;
13
+ protected try_advance(): void | RecoverableFail;
13
14
  protected consume(raw: string, error_msg?: string): Unrecoverable<void>;
14
- protected try_consume(raw: string): Recoverable<void>;
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,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAa5D,qBAAa,aAAa;IAGxB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAK;IAGxB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAIzB,YAAY,MAAM,EAAE,MAAM,EAIzB;IAMD,SAAS,CAAC,aAAa,IAAI,OAAO,CAGjC;IAKD,SAAS,KAAK,OAAO,IAAI,MAAM,GAAG,SAAS,CAG1C;IAKD,SAAS,CAAC,IAAI,IAAI,MAAM,GAAG,SAAS,CAGnC;IAKM,OAAO,IAAI,MAAM,CAGvB;IAOD,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAYzD;IAKD,SAAS,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC,CAQzC;IAKD,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAsBtE;IAKD,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAepD;IAKD,SAAS,CAAC,cAAc,IAAI,IAAI,CAQ/B;IAOD,SAAS,CAAC,kBAAkB,IAAI,IAAI,CAQnC;IAED,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAgBtE;CACF"}
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 { RecoverableFail, UnrecoverableError } from "../errors.js";
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
- return this.source.slice(this.i, this.i + 20) + "...";
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.i++;
30
- if (IGNORED_CHARACTERS.has(this.current)) {
31
- this.advance();
32
- }
30
+ this.#advance();
33
31
  }
34
32
  try_advance() {
35
- try {
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
- throw new RecoverableFail();
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
- try {
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":"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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.1.2",
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": "^7.0",
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 class RecoverableFail {}
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 throw either a `RecoverableFail` *or* an `UnrecoverableError`.
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> = Recoverable<Result> | Unrecoverable<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 { RecoverableFail, UnrecoverableError } from "../errors";
5
- import type { Recoverable, Unrecoverable, MaybeRecoverable } from "../errors";
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
- try {
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
- try {
101
- incantations.push(this.try_parse_local_incantation());
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
- try {
149
- return this.try_parse_expr_incantation();
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
- try {
199
- var incantation = this.try_parse_identifier(GLOBAL_INCANTATIONS);
200
- }
201
- catch (e) {
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
- try {
248
- var incantation = this.try_parse_identifier(LOCAL_INCANTATIONS);
249
- }
250
- catch (e) {
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
- try {
291
- var incantation = this.try_parse_identifier(EXPR_INCANTATIONS) as ArgIncantation<EXPR>;
292
- }
293
- catch (e) {
294
- if (e instanceof RecoverableFail) {
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
- ): Recoverable<Incantation<Effect>>
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
- try {
323
- this.try_consume(incantation.identifier);
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
- try {
332
- this.try_consume(incantation.alias);
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
- throw new RecoverableFail();
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: try_pop(Ctx.STR_1) || stack.push(Ctx.STR_1); break;
461
- case Ctx.STR_2: try_pop(Ctx.STR_2) || stack.push(Ctx.STR_2); break;
462
- case Ctx.STR_F: try_pop(Ctx.STR_F) || stack.push(Ctx.STR_F); break;
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 { RecoverableFail, UnrecoverableError } from "../errors";
2
- import type { Recoverable, Unrecoverable } from "../errors";
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
- return this.source.slice(this.i, this.i + 20) + "...";
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.i++;
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(): Recoverable<void>
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
- try {
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 and throwing if `raw` was not found.
134
+ * Attempt to consume `raw`, backtracking if `raw` was not found.
128
135
  */
129
- protected try_consume(raw: string): Recoverable<void>
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
- ii++;
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
- throw new RecoverableFail();
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
- try {
181
- this.try_consume("\n");
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
  }