parseman 0.44.0 → 0.46.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 (111) hide show
  1. package/dist/analysis/choice-cost-gate.d.ts +158 -0
  2. package/dist/analysis/choice-cost-gate.d.ts.map +1 -0
  3. package/dist/analysis/choice-cost-render.d.ts +88 -0
  4. package/dist/analysis/choice-cost-render.d.ts.map +1 -0
  5. package/dist/analysis/choice-cost.d.ts +383 -0
  6. package/dist/analysis/choice-cost.d.ts.map +1 -0
  7. package/dist/analysis/corpus.d.ts +73 -0
  8. package/dist/analysis/corpus.d.ts.map +1 -0
  9. package/dist/analysis/diagnose-render.d.ts +65 -0
  10. package/dist/analysis/diagnose-render.d.ts.map +1 -0
  11. package/dist/analysis/diagnose.d.ts +133 -0
  12. package/dist/analysis/diagnose.d.ts.map +1 -0
  13. package/dist/analysis/diagnostics.cjs +11272 -0
  14. package/dist/analysis/diagnostics.cjs.map +7 -0
  15. package/dist/analysis/diagnostics.d.ts +27 -0
  16. package/dist/analysis/diagnostics.d.ts.map +1 -0
  17. package/dist/analysis/diagnostics.js +11249 -0
  18. package/dist/analysis/diagnostics.js.map +7 -0
  19. package/dist/analysis/fix-render.d.ts +43 -0
  20. package/dist/analysis/fix-render.d.ts.map +1 -0
  21. package/dist/analysis/fix.d.ts +172 -0
  22. package/dist/analysis/fix.d.ts.map +1 -0
  23. package/dist/analysis/gating.d.ts +17 -9
  24. package/dist/analysis/gating.d.ts.map +1 -1
  25. package/dist/analysis/grammar.d.ts.map +1 -1
  26. package/dist/analysis/rebuild.d.ts +61 -0
  27. package/dist/analysis/rebuild.d.ts.map +1 -0
  28. package/dist/analysis/terminal.d.ts +142 -0
  29. package/dist/analysis/terminal.d.ts.map +1 -0
  30. package/dist/cli/index.cjs +12507 -0
  31. package/dist/cli/index.cjs.map +7 -0
  32. package/dist/cli/index.d.ts +3 -0
  33. package/dist/cli/index.d.ts.map +1 -0
  34. package/dist/cli/index.js +12484 -0
  35. package/dist/cli/index.js.map +7 -0
  36. package/dist/combinators/choice.d.ts.map +1 -1
  37. package/dist/combinators/dispatch.d.ts +19 -1
  38. package/dist/combinators/dispatch.d.ts.map +1 -1
  39. package/dist/combinators/expect.d.ts.map +1 -1
  40. package/dist/combinators/first-set.d.ts.map +1 -1
  41. package/dist/combinators/node.d.ts +19 -0
  42. package/dist/combinators/node.d.ts.map +1 -1
  43. package/dist/compiler/build-arity.d.ts +28 -0
  44. package/dist/compiler/build-arity.d.ts.map +1 -1
  45. package/dist/compiler/codegen.d.ts +80 -60
  46. package/dist/compiler/codegen.d.ts.map +1 -1
  47. package/dist/compiler/degradation.d.ts +123 -0
  48. package/dist/compiler/degradation.d.ts.map +1 -0
  49. package/dist/compiler/fields.d.ts.map +1 -1
  50. package/dist/compiler/grammar-coverage-ids.d.ts.map +1 -1
  51. package/dist/compiler/inline-build.d.ts.map +1 -1
  52. package/dist/compiler/ir-serialize.d.ts.map +1 -1
  53. package/dist/compiler/linker.d.ts +45 -7
  54. package/dist/compiler/linker.d.ts.map +1 -1
  55. package/dist/compiler/module-hoist.d.ts +106 -0
  56. package/dist/compiler/module-hoist.d.ts.map +1 -0
  57. package/dist/coverage.d.ts +13 -0
  58. package/dist/coverage.d.ts.map +1 -1
  59. package/dist/cst/reflection.d.ts.map +1 -1
  60. package/dist/functional/run.d.ts.map +1 -1
  61. package/dist/index.cjs +1846 -610
  62. package/dist/index.cjs.map +4 -4
  63. package/dist/index.d.ts +11 -7
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +1846 -610
  66. package/dist/index.js.map +4 -4
  67. package/dist/language-service/index.cjs +40 -30
  68. package/dist/language-service/index.cjs.map +3 -3
  69. package/dist/language-service/index.js +40 -30
  70. package/dist/language-service/index.js.map +3 -3
  71. package/dist/oracle/digest.d.ts +132 -6
  72. package/dist/oracle/digest.d.ts.map +1 -1
  73. package/dist/oracle/index.cjs +136 -305
  74. package/dist/oracle/index.cjs.map +4 -4
  75. package/dist/oracle/index.d.ts +43 -31
  76. package/dist/oracle/index.d.ts.map +1 -1
  77. package/dist/oracle/index.js +136 -305
  78. package/dist/oracle/index.js.map +4 -4
  79. package/dist/plugin/evaluator.d.ts +3 -0
  80. package/dist/plugin/evaluator.d.ts.map +1 -1
  81. package/dist/plugin/free-identifiers.d.ts +23 -0
  82. package/dist/plugin/free-identifiers.d.ts.map +1 -0
  83. package/dist/plugin/index.cjs +1529 -763
  84. package/dist/plugin/index.cjs.map +4 -4
  85. package/dist/plugin/index.d.ts +18 -0
  86. package/dist/plugin/index.d.ts.map +1 -1
  87. package/dist/plugin/index.js +1529 -763
  88. package/dist/plugin/index.js.map +4 -4
  89. package/dist/plugin/reducer-resolver.d.ts +57 -0
  90. package/dist/plugin/reducer-resolver.d.ts.map +1 -0
  91. package/dist/run/index.cjs +33 -30
  92. package/dist/run/index.cjs.map +2 -2
  93. package/dist/run/index.js +33 -30
  94. package/dist/run/index.js.map +2 -2
  95. package/dist/spec/index.cjs +222 -34
  96. package/dist/spec/index.cjs.map +4 -4
  97. package/dist/spec/index.js +222 -34
  98. package/dist/spec/index.js.map +4 -4
  99. package/dist/spec/model.d.ts.map +1 -1
  100. package/dist/types.d.ts +6 -1
  101. package/dist/types.d.ts.map +1 -1
  102. package/dist/version.d.ts +1 -1
  103. package/package.json +23 -4
  104. package/dist/combinators/guard.d.ts +0 -8
  105. package/dist/combinators/guard.d.ts.map +0 -1
  106. package/dist/cst/offset-model.d.ts +0 -119
  107. package/dist/cst/offset-model.d.ts.map +0 -1
  108. package/dist/oracle/corpus.d.ts +0 -32
  109. package/dist/oracle/corpus.d.ts.map +0 -1
  110. package/dist/oracle/identity.d.ts +0 -117
  111. package/dist/oracle/identity.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"choice.d.ts","sourceRoot":"","sources":["../../src/combinators/choice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAC+B,QAAQ,EAClD,MAAM,aAAa,CAAA;AAKpB,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AACvH,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI;KACrE,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC,MAAM,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEjD,wBAAgB,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EACxH,GAAG,IAAI,EAAE,CAAC,GACT,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CA0J1B;AA4FD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAWrF;AA6CD,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAKzE;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMhG"}
1
+ {"version":3,"file":"choice.d.ts","sourceRoot":"","sources":["../../src/combinators/choice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAC+B,QAAQ,EAClD,MAAM,aAAa,CAAA;AAKpB,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AACvH,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI;KACrE,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAC,MAAM,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEjD,wBAAgB,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EACxH,GAAG,IAAI,EAAE,CAAC,GACT,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CA0J1B;AAgID;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAWrF;AA6CD,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAKzE;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMhG"}
@@ -47,7 +47,25 @@ export declare function when<T>(key: DispatchWhenKey, parser: Combinator<T>, opt
47
47
  export declare function when<T>(matcher: DispatchStringMatcher, parser: Combinator<T>, opts?: DispatchWhenOptions): DispatchWhenMatcher<T>;
48
48
  export declare function makeWhen(opts?: DispatchWhenOptions): DispatchWhenFactory;
49
49
  export declare function otherwise<T>(parser: Combinator<T>): DispatchOtherwise<T>;
50
- export declare function routed<T = string>(): Combinator<T>;
50
+ /**
51
+ * Reuse the token the enclosing `dispatch()` already consumed to select this branch,
52
+ * instead of re-recognizing it.
53
+ *
54
+ * With no argument this is dispatch-only: outside a dispatch branch (or at a position
55
+ * other than the selector's) it fails with `expected: ['routed()']`.
56
+ *
57
+ * `routed(fallback)` makes the SAME production usable in both contexts: inside a
58
+ * dispatch branch it reuses the routed token; anywhere else it parses `fallback` in
59
+ * place. That is what collapses a `Routed<X>` twin production into its original —
60
+ * `sequence(routed(Name), Prelude, ';')` replaces the pair
61
+ * `sequence(Name, Prelude, ';')` / `sequence(routed(), Prelude, ';')`, which
62
+ * otherwise differ by exactly one element and duplicate a whole production (and a
63
+ * whole compiled emission) for a one-token difference.
64
+ *
65
+ * A `routed()` in a dispatch SELECTOR is still an error with or without a fallback:
66
+ * the selector is what produces the routed token, so reading it there is misuse.
67
+ */
68
+ export declare function routed<T = string>(fallback?: Combinator<T>): Combinator<T>;
51
69
  export declare function dispatch<S extends string, T extends readonly DispatchArm<unknown>[]>(selector: Combinator<S>, ...arms: T): Combinator<[S, UnionArms<T>]>;
52
70
  export {};
53
71
  //# sourceMappingURL=dispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/combinators/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/combinators/dispatch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/combinators/expect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAyC,UAAU,EAAE,MAAM,aAAa,CAAA;AAKhG,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAE/D;AAoED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CA4B/F;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE"}
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/combinators/expect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAyC,UAAU,EAAE,MAAM,aAAa,CAAA;AAKhG,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAE/D;AAuED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CA4B/F;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"first-set.d.ts","sourceRoot":"","sources":["../../src/combinators/first-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;AAS3E,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAKxD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAS5D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnG;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAE1D;AAED,wBAAgB,GAAG,IAAI,QAAQ,CAE9B;AAED,wBAAgB,KAAK,IAAI,QAAQ,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtB,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,EAC1C,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAgDT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAEnE;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAalF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtB,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,EAC1C,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ,CAuDV"}
1
+ {"version":3,"file":"first-set.d.ts","sourceRoot":"","sources":["../../src/combinators/first-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;AAS3E,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAKxD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAS5D;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnG;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAE1D;AAED,wBAAgB,GAAG,IAAI,QAAQ,CAE9B;AAED,wBAAgB,KAAK,IAAI,QAAQ,CAEhC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtB,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,EAC1C,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAiDT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAEpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,CAEnE;AA6BD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAalF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtB,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,EAC1C,OAAO,CAAC,EAAE,WAAW,GACpB,QAAQ,CAuDV"}
@@ -55,6 +55,25 @@ export type NodeOptions<Tags extends readonly string[] = readonly never[]> = {
55
55
  captureTrivia?: boolean;
56
56
  trailingTrivia?: boolean;
57
57
  tags?: Tags;
58
+ /**
59
+ * Declared positional arity of `build` — the ESCAPE HATCH for a reducer parseman
60
+ * cannot read.
61
+ *
62
+ * Arity gates five capture tiers (`>= 1` children, `>= 2` fields, `>= 4` rawChildren,
63
+ * `>= 5` triviaLog, `>= 6` a clone of `_ctx.state`), and parseman normally derives it
64
+ * from the reducer's declaration — including across module boundaries. A few shapes
65
+ * are genuinely undecidable: a rest parameter (`...args`), a body that reads
66
+ * `arguments`, a reassigned or dynamically constructed reducer. Those fail OPEN, which
67
+ * is safe but pays for every tier on every match, forever.
68
+ *
69
+ * Declaring the arity here turns "undecidable" into "declared". You are asserting the
70
+ * highest positional argument the reducer reads; parseman then elides everything above
71
+ * it exactly as if it had read the parameter list.
72
+ *
73
+ * DECLARING TOO LOW UNDER-CAPTURES: the reducer will receive an empty `rawChildren` /
74
+ * `triviaLog` or an absent `state` rather than a wrong value. Count the parameters.
75
+ */
76
+ buildArity?: number;
58
77
  };
59
78
  export type NodeProjectOptions<I extends number = number> = Omit<NodeOptions, 'project' | 'unwrap' | 'collapse'> & {
60
79
  project: I;
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/combinators/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/combinators/node.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,34 @@ export declare function cstOutputHost(build: unknown): boolean;
30
30
  * source can't be parsed into a plain identifier list (→ caller keeps full capture).
31
31
  */
32
32
  export declare function confirmedBuildArity(src: string): number | null;
33
+ /**
34
+ * The source a def's arity/shape analysis must read.
35
+ *
36
+ * `buildSrc` is the source text of the EXPRESSION written at the `node(...)` call
37
+ * site. When the reducer is passed as a bare identifier — `node('Foo', p, { build:
38
+ * foldOperation })` — that text is just `"foldOperation"`, which matches no parameter
39
+ * list and used to fail open into all five capture tiers, silently. The macro plugin
40
+ * already holds the whole module's AST, so it resolves such an identifier to its
41
+ * module-scope declaration and parks that declaration's source here. `buildSigSrc` is
42
+ * ANALYSIS-ONLY: it is never emitted, so the generated builder reference is unchanged.
43
+ */
44
+ export declare function buildAnalysisSrc(def: NodeDef): string;
45
+ /**
46
+ * Confirmed formal arity for a node def, reporting once when it cannot be confirmed.
47
+ *
48
+ * Order of authority:
49
+ * 1. `node(..., { buildArity })` — the author DECLARED it. Nothing overrides that.
50
+ * 2. `def.buildArity` as resolved by the macro's reducer resolver (real scope analysis
51
+ * and cross-module import following).
52
+ * 3. Reading the parameter list out of whatever source we have.
53
+ *
54
+ * Fail-open is the correct BEHAVIOR — capturing too much is safe, capturing too little
55
+ * is a correctness bug. Fail-open with no diagnostic was the defect. But a diagnostic is
56
+ * the right answer only for the genuinely undecidable; for everything a static analysis
57
+ * can decide, the right answer is to decide it, which is why (2) exists and why (1) gives
58
+ * the author a way out of (3) entirely.
59
+ */
60
+ export declare function confirmedArityForDef(def: NodeDef): number | null;
33
61
  /** Build reads its 1st (`children`) arg? Unknown/unparseable → true (keep capture). */
34
62
  export declare function buildReadsChildren(def: NodeDef): boolean;
35
63
  /** Build reads its 4th (`rawChildren`) arg? Unknown/unparseable → true (keep capture). */
@@ -1 +1 @@
1
- {"version":3,"file":"build-arity.d.ts","sourceRoot":"","sources":["../../src/compiler/build-arity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;;;;;;GAUG;AAEH,KAAK,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAkBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuB9D;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMxD;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMnD;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMtD;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMrD"}
1
+ {"version":3,"file":"build-arity.d.ts","sourceRoot":"","sources":["../../src/compiler/build-arity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C;;;;;;;;;;GAUG;AAEH,KAAK,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAgCD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgC9D;AAoHD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErD;AAqCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkBhE;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKxD;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKnD;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKtD;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKrD"}
@@ -8,7 +8,6 @@
8
8
  */
9
9
  import type { Combinator, FirstSet, ParseResult, ParseContext, ParseError } from '../types.ts';
10
10
  import { type HostMode } from '../cst/host-mode.ts';
11
- import { type GatingReport, type GatingWarnLevel } from '../analysis/gating.ts';
12
11
  import { type DuplicationWarnLevel } from '../analysis/duplication.ts';
13
12
  /**
14
13
  * A rule's LEADING first-set as a fuse-resolvable recipe.
@@ -58,12 +57,47 @@ import { type GrammarReflection } from '../cst/reflection.ts';
58
57
  * arity-gates host capture; shared, un-namespaced, mirrors `_EMPTY_TL` placement.
59
58
  */
60
59
  export declare const HOST_READS_DECL = "const _hostReads = (b, n) => { if (b === undefined) return false; let s; try { s = Function.prototype.toString.call(b) } catch (e) { return true } if (/\\barguments\\b/.test(s)) return true; const m = /^[^(]*\\(([\\s\\S]*?)\\)/.exec(s); if (m && /\\.\\.\\.|=/.test(m[1])) return true; return b.length > n }";
60
+ /**
61
+ * Raw-children coercion, hoisted out of every node site.
62
+ *
63
+ * The `rawChildren` entry for a produced value is either the value itself (when it
64
+ * is already a tagged CST thing) or a synthesized leaf. Inlined, that test plus the
65
+ * leaf literal is ~300 bytes emitted PER `node()` site — measured at 2.6% of
66
+ * `example/css`, 7.1% of `probe/node-scale-32`, 11.2% of `probe/trivia-off`.
67
+ *
68
+ * Allocation behaviour is preserved exactly, which is why `span` is the last
69
+ * parameter and may be absent:
70
+ * - line-tracked grammars already hold their span in a local, so they pass it and
71
+ * nothing extra is allocated;
72
+ * - untracked grammars pass nothing and the `{ start, end }` literal is built
73
+ * INSIDE, on the fallback branch only — exactly where the inline form built it.
74
+ * Passing the literal as an argument instead would have allocated a span on the
75
+ * fast path, which is the one thing this hoist must not do.
76
+ */
77
+ export declare const RAW_ENTRY_DECL = "const _rawEntry = (v, input, s, e, span) => (typeof v === 'object' && v !== null && (v._tag === 'node' || v._tag === 'leaf' || v._tag === 'parseError')) ? v : { _tag: 'leaf', value: typeof v === 'string' ? v : (typeof v === 'object' && v !== null ? input.slice(s, e) : ''), span: span ?? { start: s, end: e } }";
61
78
  export declare const LINE_TRACK_DECL = "const _trackLines = (_ctx, input, start, end) => { const from = _ctx._lineScannedTo ?? 0; if (end <= from) return; for (let i = from; i < end; i++) if (input.charCodeAt(i) === 10) _ctx._lineStarts.push(i + 1); _ctx._lineScannedTo = end }";
62
79
  export declare const LINE_SPAN_DECL: string;
63
80
  /** Begin capturing regexes that fall back to `RegExp.exec` (didn't lower). */
64
81
  export declare function beginLoweringCapture(): void;
65
82
  /** Stop capturing and return the un-lowered regex sources seen since begin. */
66
83
  export declare function endLoweringCapture(): string[];
84
+ /** One emitted function whose inline budget was spent, and what it cost. */
85
+ export type InlineCapSite = {
86
+ /** The emitted function that hit the budget. */
87
+ fn: string;
88
+ /** Approximate combinator nodes in the ref body that became a call instead. */
89
+ nodes: number;
90
+ };
91
+ /** Begin collecting inline-cap sites. */
92
+ export declare function beginInlineCapCapture(): void;
93
+ /** Stop collecting and return the sites, in emission order (deterministic). */
94
+ export declare function endInlineCapCapture(): InlineCapSite[];
95
+ /**
96
+ * One line per capped function, in the shape the degradation formatter uses so the two
97
+ * read alike. Says exactly what happened and exactly what to do about it, because a
98
+ * diagnostic that does neither is noise.
99
+ */
100
+ export declare function formatInlineCapSites(sites: readonly InlineCapSite[], max: number): string[];
67
101
  export declare function firstSetCond(codeVar: string, fs: FirstSet): string;
68
102
  export declare function __setForceDisjointIf(on: boolean): void;
69
103
  export declare function __setForceNoSharedPrefix(on: boolean): void;
@@ -94,15 +128,48 @@ export type CompiledParser<T> = {
94
128
  inlineExpression: string | null;
95
129
  /** Present only when compiled with `{ coverage: true }`. */
96
130
  coverageDefinitions?: readonly import('./grammar-coverage-ids.ts').GrammarCoverageDefinition[];
97
- /**
98
- * Static first-char gating diagnostic for this grammar (per-choice gated/
99
- * recoverable/ungated + offending arm + cause + anti-patterns). Computed unless
100
- * `{ gating: 'off' }`. Warnings for genuinely-ungated hot choices are emitted at
101
- * compile time by default (see the `gating` option); this is the programmatic
102
- * view for CI budget snapshots. See `src/analysis/gating.ts`.
103
- */
104
- gating?: GatingReport;
105
131
  };
132
+ /**
133
+ * INLINE EXPANSION CAP — a bound on how much one emitted function may grow by pasting
134
+ * single-use ref bodies into it.
135
+ *
136
+ * The decision procedure, in one sentence: **each emitted function gets a budget of
137
+ * `INLINE_MAX_NODES` combinator nodes of inlined single-use refs; once it is spent, the
138
+ * remaining single-use refs in that function become named functions and are called.**
139
+ *
140
+ * What this limits, precisely. `emitLazy` inlines a ref that is used ONCE and is not
141
+ * recursive, because hoisting a function nobody else calls is pure overhead. That is
142
+ * correct per ref and unbounded in aggregate: a rule whose body is a chain of
143
+ * single-use helpers expands transitively, and the expansion has no ceiling that a
144
+ * grammar author can see or predict. This is NOT the identity-keyed hoisting of a
145
+ * MULTIPLY-referenced subtree (`HOIST_MIN_SUBTREE` above) — that already works, and a
146
+ * shared object referenced 1 or 38 times emits flat. Conflating the two is what made
147
+ * the size problem look like a duplication problem.
148
+ *
149
+ * Why a per-function budget rather than a per-ref size limit or a whole-artifact budget:
150
+ * - a per-ref limit bounds each paste but not the transitive total, which is the
151
+ * quantity that actually grows;
152
+ * - a whole-artifact budget needs an eviction order, and any order that depends on
153
+ * which function was compiled first is a decision the author cannot predict;
154
+ * - a per-function budget needs no eviction order at all. Emission order within one
155
+ * function is the grammar's own left-to-right order, so "the refs after the budget
156
+ * runs out" is stable and explainable.
157
+ *
158
+ * Charge unit is `subtreeSizes` — the same approximate node count `HOIST_MIN_SUBTREE`
159
+ * uses, so the two policies are denominated in one currency.
160
+ *
161
+ * The default is measured, not chosen by taste: see `bench/size/inline-cap.md` for the
162
+ * size/speed sweep this number came from.
163
+ */
164
+ export declare const INLINE_MAX_NODES = 1000;
165
+ /**
166
+ * Resolve the cap: explicit option wins, then `PARSEMAN_MAX_INLINE`, then the default.
167
+ * The escape hatch is deliberately explicit and OFF by default — a grammar that really
168
+ * wants unbounded inlining sets `Infinity` and says so, rather than discovering that a
169
+ * silent policy took it away. Read ONCE per compile and stored on the ctx, so a single
170
+ * compile can never observe two different values.
171
+ */
172
+ export declare function resolveInlineMax(explicit?: number): number;
106
173
  /**
107
174
  * Dependency manifest for the linkable form: for each rule in the map, the set
108
175
  * of OTHER rule names its body references (by name). A referenced rule is a
@@ -121,54 +188,6 @@ export declare function ruleDependencies(ruleMap: ReadonlyArray<readonly [string
121
188
  *
122
189
  * @see https://www.greadme.com/blog/security/what-is-content-security-policy-complete-guide
123
190
  */
124
- /**
125
- * Resolve the gating-diagnostic level: explicit option wins, else the
126
- * `PARSEMAN_GATING` env var, else default-on `'warn'`. `'off'` skips the analysis
127
- * entirely; `'warn'` prints via `console.warn`; `'error'` throws when any
128
- * genuinely-ungated hot choice (or anti-pattern) is found.
129
- */
130
- /**
131
- * The `gating` compile option. A bare level is shorthand for `{ level }`; the
132
- * object form adds the accepted-snapshot `accept` allowlist (choice ids that are
133
- * intentionally ungated — silent, and excluded from the `'error'` gate).
134
- */
135
- export type GatingOption = GatingWarnLevel | {
136
- level?: GatingWarnLevel;
137
- accept?: Iterable<string>;
138
- entryName?: string;
139
- };
140
- /**
141
- * The FUSE-time form of the diagnostic — the only site where a shared shape's
142
- * `g.Foo` hole has an answer.
143
- *
144
- * A shape module (`rules(g => ({ Term: choice(sequence(g.Value, …), …) }))`) cannot
145
- * decide whether `Term` gates: `g.Value` is unbound there, so its first-set reads
146
- * `any`. `analyzeGatingRules` marks such a choice `deferred` rather than `ungated` —
147
- * warning about it would describe a configuration that never runs, and its author
148
- * has nothing to fix. This runs the SAME analysis over the fused winner map, where
149
- * `Value` is bound, and reports what the binding actually produced.
150
- *
151
- * Threading `gating` into the per-piece `compileLinkable` calls would NOT do this:
152
- * each piece is lowered alone, so the hole is still unbound and the shape's own false
153
- * positive is simply re-emitted. Resolution needs the MERGED map.
154
- *
155
- * Reports ONLY choices their authoring site deferred (the local, resolver-free pass
156
- * names them). That is what keeps an ordinary hole-free grammar from being warned
157
- * about twice — once by `compileRuleMap` and again by every `compose()` that fuses
158
- * it. Anti-patterns are structural and already reported at the authoring site, so
159
- * they are dropped here for the same reason.
160
- *
161
- * The rule maps arrive as a THUNK because producing them costs a re-hydration of the
162
- * carried IR: `gating: 'off'` must not pay for a diagnostic it will not print.
163
- */
164
- export declare function runFusedGatingDiagnostic(getRuleMaps: () => ReadonlyArray<ReadonlyArray<readonly [string, Combinator<unknown>]>>, opt?: GatingOption,
165
- /** Carried pieces that could NOT be re-lowered to combinators (opaque precompiled
166
- * artifacts). Threaded by BOTH engines — the runtime linker and the macro plugin —
167
- * so neither can report a clean fuse over a grammar it only partly saw. */
168
- getOpaque?: () => ReadonlyArray<{
169
- ns: string;
170
- ruleNames: string[];
171
- }>): GatingReport | undefined;
172
191
  /**
173
192
  * The `duplication` compile option. A bare level is shorthand for `{ level }`; the
174
193
  * object form adds the `accept` allowlist (finding ids acknowledged as intentional)
@@ -192,9 +211,9 @@ export declare function compile<T>(combinator: Combinator<T>, mapFnSources?: str
192
211
  recovery?: boolean;
193
212
  hostMode?: HostMode;
194
213
  coverage?: boolean;
195
- gating?: GatingOption;
196
214
  duplication?: DuplicationOption;
197
215
  trackLines?: boolean;
216
+ maxInline?: number;
198
217
  }): CompiledParser<T>;
199
218
  export declare function compileRuleMap(ruleMap: ReadonlyArray<readonly [string, Combinator<unknown>]>, opts?: {
200
219
  trivia?: Combinator<unknown>;
@@ -203,8 +222,8 @@ export declare function compileRuleMap(ruleMap: ReadonlyArray<readonly [string,
203
222
  hostMode?: HostMode;
204
223
  trackLines?: boolean;
205
224
  coverage?: boolean;
206
- gating?: GatingOption;
207
225
  duplication?: DuplicationOption;
226
+ maxInline?: number;
208
227
  }): {
209
228
  keys: string[];
210
229
  replacement: string;
@@ -269,6 +288,7 @@ export type LinkablePieces = {
269
288
  deps: Map<string, string[]>;
270
289
  needsEmptyTl: boolean;
271
290
  needsHostReads: boolean;
291
+ needsRawEntry: boolean;
272
292
  /** Compile-time host mode this piece was lowered for ('ast' when absent). */
273
293
  hostMode?: HostMode;
274
294
  /** Set when a direct builder's positioned-CST branch was omitted. */
@@ -296,8 +316,8 @@ export declare function compileLinkable(ruleMapArg: ReadonlyArray<readonly [stri
296
316
  trackLines?: boolean;
297
317
  captureTerminals?: boolean;
298
318
  coverage?: GrammarCoveragePlan;
299
- gating?: GatingOption;
300
319
  duplication?: DuplicationOption;
320
+ maxInline?: number;
301
321
  }): LinkablePieces | null;
302
322
  /**
303
323
  * Does this rule map reference a rule it doesn't define — a NAMED `ref` (`g.Foo`)
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/compiler/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/compiler/codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAa,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAA4B,MAAM,aAAa,CAAA;AAKnI,OAAO,EAA4B,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAA2H,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAE/L;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,MAAM,MAAM,WAAW,GAAG;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAC5E,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAA;CAAE,CAAA;AACtD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,cAAc,CA8FxH;AAGD,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAuBtF,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AA2CvF;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,uTAC0R,CAAA;AAEtT;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,2TAC+S,CAAA;AAE1U,eAAO,MAAM,eAAe,kPACqN,CAAA;AAEjP,eAAO,MAAM,cAAc,QAE2K,CAAA;AActM,8EAA8E;AAC9E,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAI7C;AAcD,4EAA4E;AAC5E,MAAM,MAAM,aAAa,GAAG;IAC1B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAID,yCAAyC;AACzC,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,IAAI,aAAa,EAAE,CAIrD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAY3F;AAwoBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,MAAM,CAQlE;AAcD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAA0B;AAMjF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAA8B;AA2zGzF,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClG,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAClD,kGAAkG;IAClG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;IAChF;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE,CAAA;IACvF,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,SAAS,OAAO,2BAA2B,EAAE,yBAAyB,EAAE,CAAA;CAC/F,CAAA;AA4ID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAA;AAEpC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAS1D;AA6ID;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC7D,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA+BvB;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB;IAAE,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAiE3H,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAYnP;AAkSD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAC9D,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAChN;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC;IAAC,mBAAmB,CAAC,EAAE,SAAS,OAAO,2BAA2B,EAAE,yBAAyB,EAAE,CAAA;CAAE,GAAG,IAAI,CA+L9N;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;OAMG;IACH,CAAC,EAAE,MAAM,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B;;;;OAIG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC7C,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC3B,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mFAAmF;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,+DAA+D;IAC/D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACxC;;;;;OAKG;IACH,KAAK,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAA;IACrD,QAAQ,EAAE,aAAa,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAAA;CACzD,CAAA;AAGD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EACjE,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACxP,cAAc,GAAG,IAAI,CA4QvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC7D,OAAO,CAeT"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Degradation diagnostics — "parseman could not do the fast/complete thing here".
3
+ *
4
+ * A fallback that is CORRECT but slower (or less complete) and announces nothing is
5
+ * indistinguishable from working properly. Every such path in the compiler and the
6
+ * analysis APIs reports through this one channel so a consumer's build gate can
7
+ * assert ZERO degradations, exactly the way jess's `check:macro` already asserts zero
8
+ * `"falling back to runtime"` lines.
9
+ *
10
+ * Machine-greppable contract (stable across minor versions):
11
+ *
12
+ * [parseman] degraded [<code>] <where>: <subject> — <fell back to>; otherwise <what>
13
+ *
14
+ * Grep token is the literal `[parseman] degraded`. The `<code>` is a stable kebab-case
15
+ * identifier; new codes may be added, existing ones are not renamed without a note in
16
+ * CHANGELOG.md.
17
+ *
18
+ * NOT for: user errors (those throw), un-taken optimizations that cost nothing, or
19
+ * anything a grammar author cannot act on. A diagnostic that fires on every rule gets
20
+ * filtered out and becomes the same silence we are trying to end — so a code that is
21
+ * common and unavoidable AGGREGATES (see `DETAIL_CAP`) into one summary line with a
22
+ * count instead of one line per rule.
23
+ */
24
+ /** Off / print / throw. */
25
+ export type DegradationLevel = 'off' | 'warn' | 'error';
26
+ /** Stable, greppable code per degradation class. */
27
+ export type DegradationCode =
28
+ /** A node build's formal parameter list could not be read → all capture tiers kept. */
29
+ 'build-arity-unconfirmed'
30
+ /** A node build looks like an `mk(...)` wrapper but did not match → no inline-mk. */
31
+ | 'mk-inline-missed'
32
+ /** A composed/carried piece is an opaque artifact → its rules were not analysed. */
33
+ | 'opaque-artifact'
34
+ /** A coverage-definition request could not read the grammar → empty is NOT a zero. */
35
+ | 'coverage-definitions-unavailable';
36
+ /**
37
+ * Severity. `warn` = a real, measurable cost the author can remove. `info` = the author
38
+ * has nothing to act on (e.g. an imported reducer in someone else's package), but the
39
+ * fact still has to be visible and countable.
40
+ */
41
+ export type DegradationSeverity = 'warn' | 'info';
42
+ export type Degradation = {
43
+ code: DegradationCode;
44
+ severity: DegradationSeverity;
45
+ /** Rule / node type / artifact the cost lands on. Never a bare "<unknown>" if avoidable. */
46
+ where: string;
47
+ /** The reducer, identifier, or input that could not be analysed. */
48
+ subject: string;
49
+ /** What parseman did instead. */
50
+ fellBackTo: string;
51
+ /** What it would have done had the input been analysable. */
52
+ otherwise: string;
53
+ };
54
+ /** One line per finding, in the documented greppable shape. */
55
+ export declare function formatDegradation(d: Degradation): string;
56
+ /** Group by code, cap the detail lines, and append a counted summary for the rest. */
57
+ export declare function formatDegradations(list: readonly Degradation[]): string[];
58
+ /** Begin collecting degradations instead of printing them. */
59
+ export declare function beginDegradationCapture(): void;
60
+ /** Stop collecting and return the findings (deduped, insertion-ordered). */
61
+ export declare function endDegradationCapture(): Degradation[];
62
+ /** Open-sink depth, for a caller that must unwind exactly its own frames. */
63
+ export declare function degradationCaptureDepth(): number;
64
+ /**
65
+ * Close every sink opened above `depth` and return their findings, outermost first.
66
+ *
67
+ * The safety net for an ABORTED capture. `beginDegradationCapture()` and its matching
68
+ * `end` used to sit on the straight-line path of a function that throws between them, so
69
+ * one failed macro transform left the sink open for the REST OF THE PROCESS: every later
70
+ * `recordDegradation` — including from an unrelated runtime `compile()` — went into a
71
+ * dead Map and printed nothing. Calling this from a `finally` bounds the damage to the
72
+ * frame that failed, and returns what it had collected so it can still be reported
73
+ * rather than silently dropped.
74
+ */
75
+ export declare function unwindDegradationCapture(depth: number): Degradation[];
76
+ /**
77
+ * Resolve the level: explicit argument wins, else `PARSEMAN_DEGRADATION`, else
78
+ * default-on `'warn'`. Default-on is the whole point — this exists because the
79
+ * default was silence.
80
+ */
81
+ export declare function resolveDegradationLevel(explicit?: DegradationLevel): DegradationLevel;
82
+ /**
83
+ * Record one degradation. Deduped on `code + where + subject`, so the four capture-tier
84
+ * probes that all consult the same unreadable parameter list produce ONE finding, not
85
+ * four.
86
+ *
87
+ * With a sink open (a macro transform) the finding is collected and the drain site
88
+ * decides what to do with it. With NO sink open — a runtime `compile()` — this is the
89
+ * only place that ever sees the finding, so it is also the only place that can honour
90
+ * `'error'`. It therefore throws here. `docs/guide/degradation-diagnostics.md` documents
91
+ * `PARSEMAN_DEGRADATION=error` as "fail the build" without qualification, and until this
92
+ * throw existed that was false in library mode: `error` silently behaved as `warn`,
93
+ * because `endDegradationCapture()` had exactly one call site, in the macro plugin.
94
+ */
95
+ export declare function recordDegradation(d: Degradation): void;
96
+ /**
97
+ * Open a per-`compile()` drain and return the function that closes it.
98
+ *
99
+ * This channel stays LOUD. `compile()` no longer prints gating advice — that is a
100
+ * deliberate diagnostic now (`diagnoseGrammar`) — but a degradation is not advice: it
101
+ * is parseman reporting that it could not do the thing the caller asked for, and this
102
+ * release exists to stop that happening silently. What changes here is only the SHAPE.
103
+ *
104
+ * Before, the sink-less path printed one ~500-character line per site as it went, with
105
+ * no aggregation — 31 of them for a single code in one `pnpm perf:workloads` run, each
106
+ * repeating the same advice. The macro drain has always aggregated (`formatDegradations`,
107
+ * `DETAIL_CAP`); the runtime path simply had no drain to aggregate at. It has one now,
108
+ * so both paths report the same way and a real count survives instead of a wall.
109
+ *
110
+ * Nested inside a macro transform this is a NO-OP: that transform's sink owns the whole
111
+ * module's findings and returns them on the bundler's warning channel. A per-compile
112
+ * drain underneath it would steal them and print them instead.
113
+ *
114
+ * @returns `drain(report)` — always unwinds the sink (so a `compile()` that throws
115
+ * cannot leave it open for the rest of the process), and reports only when
116
+ * `report` is true, so a failed compile does not mask its own error with a second one.
117
+ */
118
+ export declare function beginCompileDegradationDrain(): (report: boolean) => void;
119
+ /** Test-only: forget the sink-less dedup memo. */
120
+ export declare function resetDegradationMemo(): void;
121
+ /** Test-only: is a sink open? Guards against a leaked capture between test files. */
122
+ export declare function hasOpenDegradationSink(): boolean;
123
+ //# sourceMappingURL=degradation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degradation.d.ts","sourceRoot":"","sources":["../../src/compiler/degradation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,2BAA2B;AAC3B,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvD,oDAAoD;AACpD,MAAM,MAAM,eAAe;AACzB,uFAAuF;AACrF,yBAAyB;AAC3B,qFAAqF;GACnF,kBAAkB;AACpB,oFAAoF;GAClF,iBAAiB;AACnB,sFAAsF;GACpF,kCAAkC,CAAA;AAEtC;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,eAAe,CAAA;IACrB,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAExD;AAUD,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,EAAE,CAkBzE;AAkBD,8DAA8D;AAC9D,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,IAAI,WAAW,EAAE,CAGrD;AAED,6EAA6E;AAC7E,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAOrE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAKrF;AA2BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAatD;AAKD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAsBxE;AAED,kDAAkD;AAClD,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/compiler/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGlE,KAAK,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAElD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMtD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAmC9G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CA4C/G;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAmCtH;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAW/J"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/compiler/fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGlE,KAAK,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAElD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKtD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAmC9G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CA4C/G;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,GAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAa,GAAG,OAAO,CAmCtH;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAW/J"}
@@ -1 +1 @@
1
- {"version":3,"file":"grammar-coverage-ids.d.ts","sourceRoot":"","sources":["../../src/compiler/grammar-coverage-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAExD,MAAM,MAAM,yBAAyB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,OAAO,CAAA;CAAE,CAAA;AAC9G,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAA;IACjD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IACxD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IAC3D;gFAC4E;IAC5E,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IACvD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;CAC5C,CAAA;AAkCD;;yCAEyC;AACzC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,mBAAmB,CA2DhK"}
1
+ {"version":3,"file":"grammar-coverage-ids.d.ts","sourceRoot":"","sources":["../../src/compiler/grammar-coverage-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,aAAa,CAAA;AAGxD,MAAM,MAAM,yBAAyB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,OAAO,CAAA;CAAE,CAAA;AAC9G,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,SAAS,yBAAyB,EAAE,CAAA;IACjD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IACxD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IAC3D;gFAC4E;IAC5E,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;IAC9C,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,CAAA;IACvD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;CAC5C,CAAA;AAmDD;;yCAEyC;AACzC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,mBAAmB,CA2DhK"}
@@ -1 +1 @@
1
- {"version":3,"file":"inline-build.d.ts","sourceRoot":"","sources":["../../src/compiler/inline-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAiB5C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAW5F;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,MAAM,CAER"}
1
+ {"version":3,"file":"inline-build.d.ts","sourceRoot":"","sources":["../../src/compiler/inline-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AA+D5C;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,GAAG,IAAI,CAmB5F;AAeD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACV,MAAM,CAER"}
@@ -1 +1 @@
1
- {"version":3,"file":"ir-serialize.d.ts","sourceRoot":"","sources":["../../src/compiler/ir-serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,aAAa,CAAA;AAsB7E,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;AA+E/B,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAC/C,QAAQ,CAAC,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,GAChC,MAAM,GAAG,IAAI,CAUf;AAED;;oFAEoF;AACpF,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAqG/D"}
1
+ {"version":3,"file":"ir-serialize.d.ts","sourceRoot":"","sources":["../../src/compiler/ir-serialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,aAAa,CAAA;AAsB7E,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;AA+E/B,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAC/C,QAAQ,CAAC,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,GAChC,MAAM,GAAG,IAAI,CAUf;AAED;;oFAEoF;AACpF,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAyG/D"}