desmost 0.3.2 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/compiler/compile.d.ts +2 -2
  2. package/dist/compiler/compile.d.ts.map +1 -1
  3. package/dist/compiler/compile.js +9 -4
  4. package/dist/compiler/compile.js.map +1 -1
  5. package/dist/compiler/evaluate.d.ts.map +1 -1
  6. package/dist/compiler/evaluate.js +1 -5
  7. package/dist/compiler/evaluate.js.map +1 -1
  8. package/dist/compiler/format.d.ts +4 -0
  9. package/dist/compiler/format.d.ts.map +1 -0
  10. package/dist/compiler/format.js +7 -0
  11. package/dist/compiler/format.js.map +1 -0
  12. package/dist/compiler/index.d.ts.map +1 -1
  13. package/dist/compiler/index.js.map +1 -1
  14. package/dist/compiler/options.d.ts +2 -2
  15. package/dist/compiler/options.d.ts.map +1 -1
  16. package/dist/compiler/options.js +11 -11
  17. package/dist/compiler/options.js.map +1 -1
  18. package/dist/index.internal.d.ts +1 -0
  19. package/dist/index.internal.d.ts.map +1 -1
  20. package/dist/index.internal.js.map +1 -1
  21. package/dist/magic/incantation.d.ts.map +1 -1
  22. package/dist/magic/incantation.js +2 -1
  23. package/dist/magic/incantation.js.map +1 -1
  24. package/dist/magic/index.d.ts.map +1 -1
  25. package/dist/magic/index.js.map +1 -1
  26. package/dist/magic/local/anim.d.ts +1 -1
  27. package/dist/magic/local/anim.d.ts.map +1 -1
  28. package/dist/magic/local/anim.js +1 -1
  29. package/dist/magic/local/anim.js.map +1 -1
  30. package/dist/magic/local/colour.js +1 -1
  31. package/dist/magic/local/colour.js.map +1 -1
  32. package/dist/magic/local/label.d.ts +1 -1
  33. package/dist/magic/local/label.d.ts.map +1 -1
  34. package/dist/magic/local/label.js +5 -10
  35. package/dist/magic/local/label.js.map +1 -1
  36. package/dist/parser/desmost-parser.d.ts +1 -1
  37. package/dist/parser/desmost-parser.d.ts.map +1 -1
  38. package/dist/parser/desmost-parser.js +110 -50
  39. package/dist/parser/desmost-parser.js.map +1 -1
  40. package/dist/parser/index.d.ts.map +1 -1
  41. package/dist/parser/index.js.map +1 -1
  42. package/dist/utils.d.ts +11 -0
  43. package/dist/utils.d.ts.map +1 -0
  44. package/dist/utils.js +41 -0
  45. package/dist/utils.js.map +1 -0
  46. package/package.json +5 -4
  47. package/src/compiler/compile.ts +12 -5
  48. package/src/compiler/evaluate.ts +1 -13
  49. package/src/compiler/format.ts +16 -0
  50. package/src/compiler/index.ts +7 -0
  51. package/src/compiler/options.ts +32 -20
  52. package/src/index.internal.ts +1 -0
  53. package/src/magic/incantation.ts +2 -1
  54. package/src/magic/index.ts +8 -0
  55. package/src/magic/local/anim.ts +1 -1
  56. package/src/magic/local/colour.ts +1 -1
  57. package/src/magic/local/label.ts +12 -7
  58. package/src/parser/desmost-parser.ts +173 -62
  59. package/src/parser/generic-parser.ts +3 -3
  60. package/src/parser/index.ts +0 -2
  61. package/src/utils.ts +54 -0
@@ -1 +1 @@
1
- {"version":3,"file":"desmost-parser.js","sourceRoot":"","sources":["../../src/parser/desmost-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"desmost-parser.js","sourceRoot":"","sources":["../../src/parser/desmost-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5B,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAElC,OAAO,EACL,WAAW,EAAE,cAAc,EAC3B,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAC3D,MAAM,UAAU,CAAC;AAOlB,MAAM,OAAO,aAAc,SAAQ,aAAa;IAER;IAAtC,YAAY,MAAc,EAAY,OAAwB;QAE5D,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAFe,YAAO,GAAP,OAAO,CAAiB;IAG9D,CAAC;IAQM,UAAU;QAEf,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAE7B,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAElB,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;YAGD,IAAI,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;YAE3B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YAED,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAEjC,KAAK,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;gBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aACI,CAAC;YAEJ,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,aAAa;QAWX,IAAI,CAAC,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAE5C,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,CACvB,mDAAmD,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,CAC9E,CAAC;YAEF,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACvB,CAAC;QAGD,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACpD,IAAI,UAAU,KAAK,IAAI;gBAAE,MAAM;YAC/B,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACjC,CAAC;IAKD,SAAS;QAEP,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,EACf,qFAAqF,IAAI,CAAC,OAAO,EAAE,IAAI,CACxG,CAAC;QACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAQD,cAAc;QAEZ,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YAErB,KAAK,IAAI;gBACP,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oBACpB,YAAY,EAAE,EAAE;iBACjB,CAAC;YAGJ,KAAK,GAAG;gBACN,IAAI,WAAW,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpD,IAAI,WAAW,KAAK,IAAI;oBAAE,OAAO,WAAW,CAAC;qBACxC,CAAC;oBAEJ,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjC,CAAC;YAGH;gBACE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAQD,gBAAgB;QAEd,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1D,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAMD,4BAA4B;QAK1B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhD,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAC;QAErB,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBACzB,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;iBACI,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAClC,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB;oBAClC,WAAW;oBACX,KAAK,EAAE,IAAI,kBAAkB,CAAC,YAAY,CACxC,6BAA6B,WAAW,CAAC,UAAU,2CAA2C,WAAW,CAAC,QAAQ,IAAI,CACvH;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAGtB,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW;YACX,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAKD,2BAA2B;QAKzB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhD,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,GAAG,SAAS,CAAC;QAExB,IAAI,WAAW,YAAY,cAAc,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;iBACI,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAClC,OAAO;oBACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB;oBAClC,WAAW;oBACX,KAAK,EAAE,IAAI,kBAAkB,CAAC,YAAY,CACxC,6BAA6B,WAAW,CAAC,UAAU,2CAA2C,WAAW,CAAC,QAAQ,IAAI,CACvH;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAG1B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB;YACrC,WAAW;YACX,OAAO;SACR,CAAC;IACJ,CAAC;IAED,0BAA0B;QAExB,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhD,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAEzB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAE,WAAoC,CAAC,QAAQ,CAAC,CAAC;QAEzF,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU;YACzB,IAAI;YACJ,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAKD,oBAAoB,CAClB,YAAmC;QAGnC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAErC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACjD,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO,WAAW,CAAC;YAEnC,IAAI,WAAW,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,IAAI;oBAAE,OAAO,WAAW,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAyDD,qBAAqB,CASnB,QAA6B;QAG7B,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,OAAO,CAAC,GAAG,EACd,8DAA8D,IAAI,CAAC,OAAO,EAAE,IAAI,CACjF,CAAC;QAGF,IAAI,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAG/B,IAAI,wBAAwB,GAAa,EAAE,CAAC;QAE5C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAGxB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CACV,sEAAsE,KAAK,CAAC,KAAK,EAAE,EAAE,CACtF,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,GAAG,KAAK,CAAC,GAAI,CAAC;YAErB,QAAQ,IAAI,CAAC,OAAO,EACpB,CAAC;gBACC,KAAK,IAAI,CAAC,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAAC,MAAM;gBAEnD,KAAK,GAAG;oBAAG,KAAK,CAAC,IAAI,CAAM,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM;gBAC5F,KAAK,GAAG;oBAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAAC,MAAM;YAC9F,CAAC;YAED,IAAI,QAAQ,KAAK,WAAW,CAAC,OAAO,CAAC,MAAM,EAC3C,CAAC;gBACC,IAAI,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACrB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;qBACI,IAAI,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,KAAK,CAAC,GAAG,EAAE,CAAC;oBACZ,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAEtC,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7C,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;oBAC9G,CAAC;gBACH,CAAC;gBAED,QAAQ,IAAI,CAAC,OAAO,EACpB,CAAC;oBACC,KAAK,GAAG;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAAC,MAAM;oBAC9D,KAAK,GAAG;wBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAAC,MAAM;oBAE1C,KAAK,IAAI,CAAC,OAAO;wBACf,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM;oBACR,KAAK,IAAI,CAAC,OAAO;wBACf,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM;oBACR,KAAK,IAAI,CAAC,QAAQ;wBAChB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM;gBACV,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CACV,sEAAsE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC;QAGD,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;YAC3E,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YACd,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAEd,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAErE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACtB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF;AAGD,MAAM,YAAY;IAEhB,KAAK,GAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAE1B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAGD,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,GAAQ,EAAE,OAA+B;QAE5C,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;IAGD,OAAO,CAAC,GAAQ;QAEd,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD,SAAS,CAAC,GAAQ,EAAE,OAA+B;QAEjD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAG7B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,WAAW,CAAC,GAAQ,EAAE,OAA+B;QAEnD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAA0C;QAErD,OAAO,OAAO,CACV,OAAO,EAAE,IAAI,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;eAC/D,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CACvC,CAAC;IACJ,CAAC;CACF;AAWD,IAAK,IAMJ;AAND,WAAK,IAAI;IAEP,wBAAgB,CAAA;IAChB,qBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;AACjB,CAAC,EANI,IAAI,KAAJ,IAAI,QAMR;AAED,IAAK,GAQJ;AARD,WAAK,GAAG;IACN,kBAAY,CAAA;IACZ,kBAAY,CAAA;IACZ,8BAAyB,CAAA;IACzB,kBAAqB,CAAA;IACrB,mBAAqB,CAAA;IACrB,kBAAsB,CAAA;IACtB,oBAAuB,CAAA;AACzB,CAAC,EARI,GAAG,KAAH,GAAG,QAQP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare function reversing<T>(items: ArrayLike<T>): Generator<T>;
2
+ export declare function paired<T>(items: Iterable<T>): Array<[left: T, right: T]>;
3
+ export declare function pairing<T>(items: Iterable<T>): Generator<[left: T, right: T]>;
4
+ export declare function chars(s: string, start?: number, stop?: number): string[];
5
+ export declare class Range {
6
+ protected start: number;
7
+ protected stop: number;
8
+ constructor(start: number, stop: number);
9
+ map<T>(callback: (n: number) => T): Generator<T>;
10
+ }
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAiB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAK/D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAGxE;AAED,wBAAiB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAkB9E;AAGD,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxE;AAGD,qBAAa,KAAK;IAGd,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM;gBADZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM;IAIvB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;CAMlD"}
package/dist/utils.js ADDED
@@ -0,0 +1,41 @@
1
+ export function* reversing(items) {
2
+ for (let i = items.length - 1; i >= 0; i--) {
3
+ yield items[i];
4
+ }
5
+ }
6
+ export function paired(items) {
7
+ return pairing(items).toArray();
8
+ }
9
+ export function* pairing(items) {
10
+ let previous = null;
11
+ for (let item of items) {
12
+ if (previous === null) {
13
+ previous = item;
14
+ continue;
15
+ }
16
+ else {
17
+ yield [previous, item];
18
+ previous = null;
19
+ }
20
+ }
21
+ if (previous !== null) {
22
+ return previous;
23
+ }
24
+ }
25
+ export function chars(s, start, stop) {
26
+ return new Range(start ?? 0, stop ?? s.length).map(i => s[i]).toArray();
27
+ }
28
+ export class Range {
29
+ start;
30
+ stop;
31
+ constructor(start, stop) {
32
+ this.start = start;
33
+ this.stop = stop;
34
+ }
35
+ *map(callback) {
36
+ for (let n = this.start; n < this.stop; n++) {
37
+ yield callback(n);
38
+ }
39
+ }
40
+ }
41
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,CAAC,CAAC,SAAS,CAAI,KAAmB;IAE/C,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAI,KAAkB;IAE1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,OAAO,CAAI,KAAkB;IAE5C,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS;QACX,CAAC;aACI,CAAC;YACJ,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,KAAc,EAAE,IAAa;IAE5D,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAGD,MAAM,OAAO,KAAK;IAGJ;IACA;IAFZ,YACY,KAAa,EACb,IAAY;QADZ,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAAQ;IAEvB,CAAC;IAEF,CAAC,GAAG,CAAI,QAA0B;QAEhC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "desmost",
3
3
  "author": "Sup#2.0",
4
- "version": "0.3.2",
4
+ "version": "0.4.1",
5
5
  "license": "MIT",
6
6
 
7
7
  "description": "A tiny DSL for compiling LaTeX to Desmos",
8
8
  "keywords": [
9
- "desmos", "latex", "desmost"
9
+ "desmos", "latex", "compiler"
10
10
  ],
11
11
 
12
12
  "homepage": "https://sup2point0.github.io/desmost",
@@ -37,7 +37,8 @@
37
37
  }
38
38
  },
39
39
 
40
- "scripts": {
40
+ "scripts":
41
+ {
41
42
  "build": "nu build.nu",
42
43
  "buildx": "nu build.nu full",
43
44
 
@@ -46,7 +47,7 @@
46
47
 
47
48
  "check": "npx oxlint src",
48
49
 
49
- "prepublishOnly": "npm run buildx"
50
+ "prepublishOnly": "npm run test && npm run buildx"
50
51
  },
51
52
 
52
53
  "dependencies":
@@ -1,4 +1,4 @@
1
- import { type DesmostOptions, set_default_options } from "./options";
1
+ import { type DesmostOptions, fill_defaults } from "./options";
2
2
  import { evaluate_global_incantation, evaluate_expr, evaluate_error } from "./evaluate";
3
3
 
4
4
  import { DesmostParser, Ast } from "../parser";
@@ -44,9 +44,10 @@ export function compile(
44
44
  }
45
45
 
46
46
  let t_init = performance.now();
47
+ let num_blocks = 0;
47
48
  let ast = [];
48
49
 
49
- let opts = set_default_options(options);
50
+ let opts = fill_defaults(options);
50
51
  let parser = new DesmostParser(source, opts);
51
52
 
52
53
  /* To aggregate errors at the start, we need a target to retroactively inject errors into */
@@ -56,16 +57,18 @@ export function compile(
56
57
 
57
58
  let errors = [];
58
59
 
60
+ /* NOTE: The compiler is lazy, parsing and evaluating one block at a time (as opposed to first parsing the entire AST). We don't need the whole AST, so this saves memory. It also doesn't sacrifice performance, since `.setExpressions()` internally just calls `.setExpression()` in a loop anyway. Benchmarks in the frontend produce similar times for both, so there's no performance improvement. */
59
61
  try {
60
62
  while (true) {
61
63
  let r = parser.parse_next();
62
64
  if (r === null) break;
63
65
 
64
66
  if (opts.debug) {
67
+ num_blocks++;
65
68
  ast.push(r);
66
69
  }
67
70
 
68
- let defer: string | void;
71
+ let defer: string | void = undefined;
69
72
 
70
73
  switch (r.kind) {
71
74
  case Ast.Kind.INCANTATION_INVOCATION:
@@ -73,6 +76,8 @@ export function compile(
73
76
  break;
74
77
 
75
78
  case Ast.Kind.EXPRESSION:
79
+ // @ts-expect-error: outdated types
80
+ if (opts.ignore_blank_lines && r.data.latex === " ") break;
76
81
  defer = evaluate_expr(r, desmos, opts);
77
82
  break;
78
83
 
@@ -88,7 +93,7 @@ export function compile(
88
93
  }
89
94
  catch (e) {
90
95
  if (e instanceof UnrecoverableError) {
91
- errors = [e.message];
96
+ errors.push(e);
92
97
  } else {
93
98
  throw e;
94
99
  }
@@ -114,14 +119,16 @@ export function compile(
114
119
  if (opts.debug) {
115
120
  return {
116
121
  duration: performance.now() - t_init,
122
+ num_blocks,
117
123
  ast,
118
124
  };
119
125
  }
120
126
  }
121
127
 
122
128
 
123
- interface DesmostDebug
129
+ export interface DesmostDebug
124
130
  {
125
131
  duration: number;
132
+ num_blocks: number;
126
133
  ast: Ast[];
127
134
  }
@@ -1,3 +1,4 @@
1
+ import { format_error } from "./format";
1
2
  import type { DesmostOptions } from "./options";
2
3
 
3
4
  import { Ast } from "../parser";
@@ -153,16 +154,3 @@ function prettify_latex(latex: string): string
153
154
 
154
155
  return latex;
155
156
  }
156
-
157
-
158
- function format_error(
159
- e: UnrecoverableError,
160
- options: Required<DesmostOptions>,
161
- ): string
162
- {
163
- let prefix = options.error_prefix;
164
- let sep = (prefix === "" || prefix.endsWith("\n")) ? "" : " ";
165
-
166
- return `${prefix}${sep}${e.name}: ${e.message}`;
167
- // TODO maybe include stack? (configurable?)
168
- }
@@ -0,0 +1,16 @@
1
+ import type { DesmostOptions } from "./options";
2
+
3
+ import { UnrecoverableError } from "../errors";
4
+
5
+
6
+ export function format_error(
7
+ e: UnrecoverableError,
8
+ options: Required<DesmostOptions>,
9
+ ): string
10
+ {
11
+ let prefix = options.error_prefix;
12
+ let sep = (prefix === "" || prefix.endsWith("\n")) ? "" : " ";
13
+
14
+ return `${prefix}${sep}${e.name}: ${e.message}`;
15
+ // TODO maybe include stack? (configurable?)
16
+ }
@@ -1,2 +1,9 @@
1
+ /**
2
+ * Implements the top-level logic of the Desmost compiler.
3
+ */
4
+
5
+ // public entry point
1
6
  export { compile } from "./compile";
7
+
8
+ // compilation options
2
9
  export type { DesmostOptions } from "./options";
@@ -1,10 +1,16 @@
1
- /** Options to customise Desmost compilation. */
1
+ /**
2
+ * Options to customise Desmost compilation.
3
+ *
4
+ * To customise compilation, pass in a `DesmostOptions` object as the last argument to `compile()`:
5
+ *
6
+ * ```ts
7
+ * compile(calc, source, { errors: "crash" });
8
+ * ```
9
+ */
2
10
  export interface DesmostOptions
3
11
  {
4
12
  /**
5
- * How should errors be *surfaced*?
6
- *
7
- * Errors will always be logged to console for the developer; this setting affects how they visually reach the end user.
13
+ * How should errors be *surfaced* to the end user?
8
14
  *
9
15
  * - `surface` (default): Blocks that result in errors will become Desmos text expressions containing the error message, leaving other expressions unaffected.
10
16
  * - `crash`: The entire compilation to Desmos will terminate with a single error message. This means you don't get any output at all, but errors are also immediately obvious.
@@ -22,7 +28,11 @@ export interface DesmostOptions
22
28
  place_errors?: "inline" | "end" | "start"
23
29
 
24
30
  /**
25
- * The prefix to prepend to error blocks. Defaults to `[DESMOST ERROR]\n`. Provide a blank string if you wish for no prefix to be added.
31
+ * The prefix to prepend to error blocks.
32
+ *
33
+ * Defaults to `[DESMOST ERROR]\n`.
34
+ *
35
+ * Provide a `""` blank string if you wish for no prefix to be added.
26
36
  */
27
37
  error_prefix?: string
28
38
 
@@ -34,11 +44,11 @@ export interface DesmostOptions
34
44
  ignore_comments?: boolean
35
45
 
36
46
  /**
37
- * Should all line breaks be ignored, instead of kept as blank expressions.
47
+ * Should all line breaks be ignored, instead of kept as blank expressions?
38
48
  *
39
49
  * Defaults to `false`, meaning all blank lines are kept.
40
50
  */
41
- ignore_line_breaks?: boolean
51
+ ignore_blank_lines?: boolean
42
52
 
43
53
  /**
44
54
  * Should trailing blank lines at the end of the source be ignored, instead of kept as blank expressions?
@@ -55,9 +65,11 @@ export interface DesmostOptions
55
65
  prettify?: boolean
56
66
 
57
67
  /**
58
- * Return debug diagnostics? This includes the unevaluated AST, and performance diagnostics.
68
+ * Return debug diagnostics?
69
+ *
70
+ * This includes the unevaluated AST, and performance diagnostics.
59
71
  *
60
- * Defaults to `false`.
72
+ * Defaults to `false`, meaning `compile()` returns `void`.
61
73
  */
62
74
  debug?: boolean
63
75
  }
@@ -66,20 +78,20 @@ export interface DesmostOptions
66
78
  /**
67
79
  * Fill in `options` with Desmost's defaults to produce a complete `DesmostOptions` config.
68
80
  */
69
- export function set_default_options(options: Partial<DesmostOptions> | undefined): Required<DesmostOptions>
81
+ export function fill_defaults(options: Partial<DesmostOptions> | undefined): Required<DesmostOptions>
70
82
  {
71
- options ??= {};
83
+ let out = Object.assign({}, options);
72
84
 
73
- options.errors ??= "surface";
74
- options.place_errors ??= "inline";
75
- options.error_prefix ??= "[DESMOST ERROR]\n";
85
+ out.errors ??= "surface";
86
+ out.place_errors ??= "inline";
87
+ out.error_prefix ??= "[DESMOST ERROR]\n";
76
88
 
77
- options.ignore_comments ??= false;
78
- options.ignore_line_breaks ??= false;
79
- options.ignore_trailing_blanks ??= false;
89
+ out.ignore_comments ??= false;
90
+ out.ignore_blank_lines ??= false;
91
+ out.ignore_trailing_blanks ??= false;
80
92
 
81
- options.prettify ??= true;
82
- options.debug ??= false;
93
+ out.prettify ??= true;
94
+ out.debug ??= false;
83
95
 
84
- return options as Required<DesmostOptions>;
96
+ return out as Required<DesmostOptions>;
85
97
  }
@@ -1 +1,2 @@
1
+ export type { DesmostDebug } from "./compiler/compile";
1
2
  export { Ast } from "./parser";
@@ -83,7 +83,7 @@ export abstract class ArgIncantation<
83
83
  case Incantation.ArgType.LATEX: return raw;
84
84
  case Incantation.ArgType.ENUM: return raw;
85
85
 
86
- case Incantation.ArgType.OBJECT:
86
+ case Incantation.ArgType.OBJECT: {
87
87
  try {
88
88
  return Json5.parse(`{${raw}}`);
89
89
  }
@@ -91,6 +91,7 @@ export abstract class ArgIncantation<
91
91
  // @ts-expect-error: fine
92
92
  throw new UnrecoverableError.InvalidArgument(e.message);
93
93
  }
94
+ }
94
95
  }
95
96
  }
96
97
  }
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Implements incantations logic.
3
+ *
4
+ * Incantations are represented with `Incantation` and `ArgIncantation` objects. Individual incantations derive from one of these classes, defining their own evaluation and application logic.
5
+ *
6
+ * Defined incantations are listed under `*_INCANTATIONS` lists.
7
+ */
8
+
1
9
  export { Incantation, ArgIncantation } from "./incantation";
2
10
  export type { GLOBAL, LOCAL, EXPR } from "./incantation";
3
11
 
@@ -4,7 +4,7 @@ import { Incantation, type LOCAL } from "../incantation";
4
4
  export class AnimIncantation extends Incantation<LOCAL>
5
5
  {
6
6
  override readonly description
7
- = "Animates the slider of a block."
7
+ = "Animate the slider of a block."
8
8
 
9
9
  override readonly identifier = "anim"
10
10
 
@@ -22,7 +22,7 @@ export class ColourIncantation extends ArgIncantation<LOCAL>
22
22
 
23
23
  override evaluate_arg(data: string): DesmosColour
24
24
  {
25
- switch (data.trim()) {
25
+ switch (data.trim().toUpperCase()) {
26
26
  case "RED": return DesmosColour.RED;
27
27
  case "BLUE": return DesmosColour.BLUE;
28
28
  case "GREEN": return DesmosColour.GREEN;
@@ -14,7 +14,7 @@ interface LabelOptions
14
14
  export class LabelIncantation extends ArgIncantation<LOCAL>
15
15
  {
16
16
  override readonly description
17
- = ""
17
+ = "Label a block that evaluates to a point(s)."
18
18
 
19
19
  override readonly identifier = "label"
20
20
  override readonly requires_arg = true
@@ -41,14 +41,19 @@ export class LabelIncantation extends ArgIncantation<LOCAL>
41
41
  }
42
42
 
43
43
  if (typeof out.pos != "undefined") {
44
- switch (out.pos.trim().toUpperCase()) {
45
- case "ABOVE": out.pos = Desmos.LabelOrientations.ABOVE; break;
46
- case "BELOW": out.pos = Desmos.LabelOrientations.BELOW; break;
47
- case "LEFT": out.pos = Desmos.LabelOrientations.LEFT; break;
48
- case "RIGHT": out.pos = Desmos.LabelOrientations.RIGHT; break;
44
+ let pos = out.pos.trim().toUpperCase();
45
+
46
+ switch (pos) {
47
+ case "ABOVE":
48
+ case "BELOW":
49
+ case "LEFT":
50
+ case "RIGHT":
51
+ out.pos = pos;
52
+ break;
53
+
49
54
  default:
50
55
  throw new UnrecoverableError.InvalidArgument(
51
- `/label: Invalid label position: ${out.pos}`
56
+ `/label: Invalid label position: ${pos}`
52
57
  );
53
58
  }
54
59
  }