parseman 0.40.0 → 0.42.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 (54) hide show
  1. package/README.md +7 -6
  2. package/dist/combinators/expect.d.ts.map +1 -1
  3. package/dist/combinators/grammar.d.ts.map +1 -1
  4. package/dist/combinators/literal.d.ts.map +1 -1
  5. package/dist/combinators/node.d.ts.map +1 -1
  6. package/dist/combinators/regex.d.ts.map +1 -1
  7. package/dist/combinators/scanTo.d.ts.map +1 -1
  8. package/dist/combinators/trivia-skip.d.ts.map +1 -1
  9. package/dist/compiler/codegen.d.ts +3 -0
  10. package/dist/compiler/codegen.d.ts.map +1 -1
  11. package/dist/compiler/inline-build.d.ts +1 -1
  12. package/dist/compiler/inline-build.d.ts.map +1 -1
  13. package/dist/compiler/inline-callback.d.ts +9 -0
  14. package/dist/compiler/inline-callback.d.ts.map +1 -1
  15. package/dist/compiler/line-index.d.ts +1 -15
  16. package/dist/compiler/line-index.d.ts.map +1 -1
  17. package/dist/compiler/value-usage.d.ts.map +1 -1
  18. package/dist/cst/capture-buffer.d.ts.map +1 -1
  19. package/dist/cst/trivia-entries.d.ts +52 -0
  20. package/dist/cst/trivia-entries.d.ts.map +1 -1
  21. package/dist/functional/run.d.ts +11 -2
  22. package/dist/functional/run.d.ts.map +1 -1
  23. package/dist/index.cjs +634 -169
  24. package/dist/index.cjs.map +4 -4
  25. package/dist/index.d.ts +4 -4
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +634 -169
  28. package/dist/index.js.map +4 -4
  29. package/dist/language-service/index.cjs +203 -4
  30. package/dist/language-service/index.cjs.map +4 -4
  31. package/dist/language-service/index.js +203 -4
  32. package/dist/language-service/index.js.map +4 -4
  33. package/dist/line-index.d.ts +41 -0
  34. package/dist/line-index.d.ts.map +1 -0
  35. package/dist/plugin/index.cjs +454 -126
  36. package/dist/plugin/index.cjs.map +4 -4
  37. package/dist/plugin/index.js +454 -126
  38. package/dist/plugin/index.js.map +4 -4
  39. package/dist/recovery/scan.d.ts.map +1 -1
  40. package/dist/regex/first-set.d.ts.map +1 -1
  41. package/dist/run/index.cjs +202 -2
  42. package/dist/run/index.cjs.map +4 -4
  43. package/dist/run/index.d.ts +8 -4
  44. package/dist/run/index.d.ts.map +1 -1
  45. package/dist/run/index.js +202 -2
  46. package/dist/run/index.js.map +4 -4
  47. package/dist/spec/index.cjs +174 -52
  48. package/dist/spec/index.cjs.map +4 -4
  49. package/dist/spec/index.js +174 -52
  50. package/dist/spec/index.js.map +4 -4
  51. package/dist/types.d.ts +12 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/version.d.ts +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ import type { Span } from './types.ts';
2
+ /**
3
+ * Precomputed index of newline positions for O(log n) offset->line/col lookup.
4
+ * lineStarts[i] is the byte offset of the first character on line i+1.
5
+ */
6
+ export type LineIndex = {
7
+ lineStarts: number[];
8
+ };
9
+ type LineTrackingContext = {
10
+ trackLines?: boolean | undefined;
11
+ _lineIndex?: LineIndex | undefined;
12
+ _lineStarts?: number[] | undefined;
13
+ _lineScannedTo?: number | undefined;
14
+ };
15
+ export declare function createLineIndex(): LineIndex;
16
+ export declare function buildLineIndex(input: string): LineIndex;
17
+ /**
18
+ * Record newline offsets for a matched range. Intended for optional parsers that
19
+ * collect line starts while they consume terminals. The collector is deliberately
20
+ * append-only: speculative parses never roll it back. Normalize once at the
21
+ * driver boundary before doing offset->line/column lookup.
22
+ */
23
+ export declare function recordLineRange(index: LineIndex, input: string, start: number, end: number): void;
24
+ /**
25
+ * Records newlines from the context high-water mark through `end`. The start
26
+ * argument is only a caller hint: append-only tracking uses `_lineScannedTo` so
27
+ * overlapping calls can backfill gaps without double-scanning committed ranges.
28
+ */
29
+ export declare function recordLineRangeFromContext(ctx: LineTrackingContext, input: string, _startHint: number, end: number): void;
30
+ export declare function normalizeLineIndex(index: LineIndex): LineIndex;
31
+ export declare function offsetToLineCol(index: LineIndex, offset: number): {
32
+ line: number;
33
+ col: number;
34
+ };
35
+ /** Fills startLine/startColumn/endLine/endColumn on a span in-place. */
36
+ export declare function annotateSpan(span: Span, index: LineIndex): Span;
37
+ export declare function annotateSpanFromLineContext(span: Span, ctx: LineTrackingContext): Span;
38
+ /** Annotate every span-shaped object reachable from a parse result value. */
39
+ export declare function annotateTreeSpans<T>(value: T, index: LineIndex, seen?: WeakSet<object>): T;
40
+ export {};
41
+ //# sourceMappingURL=line-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-index.d.ts","sourceRoot":"","sources":["../src/line-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEtC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAChD,KAAK,mBAAmB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAClC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC,CAAA;AAED,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAMvD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,IAAI,CAQN;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAW9D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAU/B;AAED,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAU/D;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,mBAAmB,GACvB,IAAI,CAIN;AASD,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GAAG,CAAC,CAazG"}