parseman 0.60.6 → 0.61.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 (60) hide show
  1. package/dist/analysis/backtrack.d.ts +50 -0
  2. package/dist/analysis/backtrack.d.ts.map +1 -0
  3. package/dist/analysis/diagnostics.d.ts +3 -0
  4. package/dist/analysis/diagnostics.d.ts.map +1 -1
  5. package/dist/analysis/diagnostics.js +1162 -158
  6. package/dist/analysis/diagnostics.js.map +3 -3
  7. package/dist/analysis/rebuild.d.ts +17 -1
  8. package/dist/analysis/rebuild.d.ts.map +1 -1
  9. package/dist/cli/index.js +353 -69
  10. package/dist/cli/index.js.map +3 -3
  11. package/dist/combinators/choice.d.ts.map +1 -1
  12. package/dist/combinators/dispatch.d.ts +2 -0
  13. package/dist/combinators/dispatch.d.ts.map +1 -1
  14. package/dist/combinators/expect.d.ts.map +1 -1
  15. package/dist/combinators/link-scope.d.ts +7 -0
  16. package/dist/combinators/link-scope.d.ts.map +1 -0
  17. package/dist/combinators/node.d.ts.map +1 -1
  18. package/dist/combinators/parser.d.ts.map +1 -1
  19. package/dist/compiler/token-capability.js +1 -0
  20. package/dist/compiler/token-capability.js.map +1 -1
  21. package/dist/compiler/value-usage.d.ts.map +1 -1
  22. package/dist/coverage.d.ts.map +1 -1
  23. package/dist/functional/run.d.ts.map +1 -1
  24. package/dist/index.js +121 -90
  25. package/dist/index.js.map +3 -3
  26. package/dist/language-service/index.js +1 -1
  27. package/dist/language-service/index.js.map +1 -1
  28. package/dist/plugin/index.js +274 -243
  29. package/dist/plugin/index.js.map +3 -3
  30. package/dist/run/index.js +1 -1
  31. package/dist/run/index.js.map +1 -1
  32. package/dist/spec/index.js.map +1 -1
  33. package/dist/table/backtrack-probe.d.ts +41 -0
  34. package/dist/table/backtrack-probe.d.ts.map +1 -0
  35. package/dist/table/child-slots.d.ts +10 -0
  36. package/dist/table/child-slots.d.ts.map +1 -1
  37. package/dist/table/emit.d.ts.map +1 -1
  38. package/dist/table/index.js +31 -20
  39. package/dist/table/index.js.map +3 -3
  40. package/dist/table/program.d.ts +3 -1
  41. package/dist/table/program.d.ts.map +1 -1
  42. package/dist/version.d.ts +1 -1
  43. package/package.json +5 -1
  44. package/src/analysis/backtrack.ts +249 -0
  45. package/src/analysis/diagnostics.ts +4 -0
  46. package/src/analysis/rebuild.ts +63 -11
  47. package/src/combinators/choice.ts +3 -1
  48. package/src/combinators/dispatch.ts +9 -0
  49. package/src/combinators/expect.ts +1 -0
  50. package/src/combinators/link-scope.ts +19 -0
  51. package/src/combinators/node.ts +11 -2
  52. package/src/combinators/parser.ts +37 -31
  53. package/src/compiler/value-usage.ts +16 -29
  54. package/src/coverage.ts +2 -14
  55. package/src/functional/run.ts +3 -1
  56. package/src/table/backtrack-probe.ts +326 -0
  57. package/src/table/child-slots.ts +30 -14
  58. package/src/table/emit.ts +5 -1
  59. package/src/table/program.ts +8 -2
  60. package/src/version.ts +1 -1
@@ -53,9 +53,25 @@ export type RebuildResult = {
53
53
  */
54
54
  unapplied: Combinator<unknown>[];
55
55
  };
56
+ export type RebuildOptions = {
57
+ /**
58
+ * Also rebuild `dispatch`, a gated `choice`, `withCtx` and `routed` instead of
59
+ * freezing them. Each is reconstructed from its own def fields — the arms, gates,
60
+ * matchers and `extra` the grammar built it with. Off for `proposeFixes()`, whose
61
+ * reports name the frozen kinds; on for an instrumented rebuild, which must reach
62
+ * every terminal (`backtrack.ts`).
63
+ */
64
+ readonly thaw?: boolean;
65
+ /**
66
+ * Called with each node and what it was rebuilt to (itself, for a frozen or
67
+ * childless one), and its result is used in its place. Not called for a
68
+ * replacement or a `lazy` slot.
69
+ */
70
+ readonly after?: (original: Combinator<unknown>, rebuilt: Combinator<unknown>) => Combinator<unknown>;
71
+ };
56
72
  /**
57
73
  * Rebuild `root`, replacing every combinator that is a key of `replacements` with its
58
74
  * value. The replacement is spliced WITHOUT descending into the original target.
59
75
  */
60
- export declare function rebuildCombinator(root: Combinator<unknown>, replacements: ReadonlyMap<Combinator<unknown>, Combinator<unknown>>): RebuildResult;
76
+ export declare function rebuildCombinator(root: Combinator<unknown>, replacements: ReadonlyMap<Combinator<unknown>, Combinator<unknown>>, options?: RebuildOptions): RebuildResult;
61
77
  //# sourceMappingURL=rebuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../src/analysis/rebuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAuBxD,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IACzB,wEAAwE;IACxE,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB;;;OAGG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAA;CACjC,CAAA;AA0CD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EACzB,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,GAClE,aAAa,CAiKf"}
1
+ {"version":3,"file":"rebuild.d.ts","sourceRoot":"","sources":["../../src/analysis/rebuild.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AA4BxD,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;IACzB,wEAAwE;IACxE,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB;;;OAGG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAA;CACjC,CAAA;AA0CD,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;CACtG,CAAA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EACzB,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EACnE,OAAO,GAAE,cAAmB,GAC3B,aAAa,CA8Lf"}