@thomasfosterau/effect-parse 0.4.1 → 0.6.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 (157) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/README.md +56 -14
  3. package/dist/Ascii.d.ts +11 -4
  4. package/dist/Ascii.d.ts.map +1 -1
  5. package/dist/Ascii.js +12 -4
  6. package/dist/Ascii.js.map +1 -1
  7. package/dist/Binary.d.ts +5 -2
  8. package/dist/Binary.d.ts.map +1 -1
  9. package/dist/Binary.js +83 -37
  10. package/dist/Binary.js.map +1 -1
  11. package/dist/Bits.d.ts.map +1 -1
  12. package/dist/Bits.js +11 -4
  13. package/dist/Bits.js.map +1 -1
  14. package/dist/Compiler.d.ts +74 -2
  15. package/dist/Compiler.d.ts.map +1 -1
  16. package/dist/Compiler.js +78 -1
  17. package/dist/Compiler.js.map +1 -1
  18. package/dist/Expression.d.ts.map +1 -1
  19. package/dist/Expression.js +86 -74
  20. package/dist/Expression.js.map +1 -1
  21. package/dist/Input.d.ts +56 -5
  22. package/dist/Input.d.ts.map +1 -1
  23. package/dist/Input.js +70 -1
  24. package/dist/Input.js.map +1 -1
  25. package/dist/Nom.d.ts +5 -15
  26. package/dist/Nom.d.ts.map +1 -1
  27. package/dist/Nom.js.map +1 -1
  28. package/dist/ParseError.d.ts +69 -11
  29. package/dist/ParseError.d.ts.map +1 -1
  30. package/dist/ParseError.js +129 -28
  31. package/dist/ParseError.js.map +1 -1
  32. package/dist/Parser.d.ts +375 -29
  33. package/dist/Parser.d.ts.map +1 -1
  34. package/dist/Parser.js +394 -37
  35. package/dist/Parser.js.map +1 -1
  36. package/dist/ParserSchema.d.ts.map +1 -1
  37. package/dist/ParserSchema.js +2 -3
  38. package/dist/ParserSchema.js.map +1 -1
  39. package/dist/ParserStream.d.ts +122 -14
  40. package/dist/ParserStream.d.ts.map +1 -1
  41. package/dist/ParserStream.js +293 -62
  42. package/dist/ParserStream.js.map +1 -1
  43. package/dist/Syntax.d.ts +23 -5
  44. package/dist/Syntax.d.ts.map +1 -1
  45. package/dist/Syntax.js +1 -1
  46. package/dist/Syntax.js.map +1 -1
  47. package/dist/Text.d.ts.map +1 -1
  48. package/dist/Text.js +21 -15
  49. package/dist/Text.js.map +1 -1
  50. package/dist/Token.d.ts +65 -11
  51. package/dist/Token.d.ts.map +1 -1
  52. package/dist/Token.js +73 -26
  53. package/dist/Token.js.map +1 -1
  54. package/dist/internal/compiler/closure.d.ts +1 -1
  55. package/dist/internal/compiler/closure.d.ts.map +1 -1
  56. package/dist/internal/compiler/closure.js +263 -113
  57. package/dist/internal/compiler/closure.js.map +1 -1
  58. package/dist/internal/compiler/entries.d.ts +3 -1
  59. package/dist/internal/compiler/entries.d.ts.map +1 -1
  60. package/dist/internal/compiler/entries.js +3 -2
  61. package/dist/internal/compiler/entries.js.map +1 -1
  62. package/dist/internal/compiler/first.d.ts.map +1 -1
  63. package/dist/internal/compiler/first.js +9 -2
  64. package/dist/internal/compiler/first.js.map +1 -1
  65. package/dist/internal/compiler/graph.d.ts +39 -0
  66. package/dist/internal/compiler/graph.d.ts.map +1 -0
  67. package/dist/internal/compiler/graph.js +78 -0
  68. package/dist/internal/compiler/graph.js.map +1 -0
  69. package/dist/internal/compiler/jit.d.ts +5 -0
  70. package/dist/internal/compiler/jit.d.ts.map +1 -1
  71. package/dist/internal/compiler/jit.js +208 -106
  72. package/dist/internal/compiler/jit.js.map +1 -1
  73. package/dist/internal/compiler/registry.d.ts +11 -3
  74. package/dist/internal/compiler/registry.d.ts.map +1 -1
  75. package/dist/internal/compiler/registry.js.map +1 -1
  76. package/dist/internal/compiler/search.d.ts +32 -0
  77. package/dist/internal/compiler/search.d.ts.map +1 -0
  78. package/dist/internal/compiler/search.js +68 -0
  79. package/dist/internal/compiler/search.js.map +1 -0
  80. package/dist/internal/compiler/sets.d.ts.map +1 -1
  81. package/dist/internal/compiler/sets.js +1 -1
  82. package/dist/internal/compiler/sets.js.map +1 -1
  83. package/dist/internal/compiler/wasm.d.ts +8 -0
  84. package/dist/internal/compiler/wasm.d.ts.map +1 -0
  85. package/dist/internal/compiler/wasm.js +2840 -0
  86. package/dist/internal/compiler/wasm.js.map +1 -0
  87. package/dist/internal/compiler/wasmAsm.d.ts +199 -0
  88. package/dist/internal/compiler/wasmAsm.d.ts.map +1 -0
  89. package/dist/internal/compiler/wasmAsm.js +427 -0
  90. package/dist/internal/compiler/wasmAsm.js.map +1 -0
  91. package/dist/internal/entries.d.ts +3 -1
  92. package/dist/internal/entries.d.ts.map +1 -1
  93. package/dist/internal/entries.js.map +1 -1
  94. package/dist/internal/node.d.ts +77 -3
  95. package/dist/internal/node.d.ts.map +1 -1
  96. package/dist/internal/node.js +54 -10
  97. package/dist/internal/node.js.map +1 -1
  98. package/dist/internal/numbers.d.ts.map +1 -1
  99. package/dist/internal/numbers.js.map +1 -1
  100. package/dist/internal/run.d.ts +14 -0
  101. package/dist/internal/run.d.ts.map +1 -1
  102. package/dist/internal/run.js +53 -11
  103. package/dist/internal/run.js.map +1 -1
  104. package/dist/internal/stack.d.ts +14 -0
  105. package/dist/internal/stack.d.ts.map +1 -1
  106. package/dist/internal/stack.js +24 -2
  107. package/dist/internal/stack.js.map +1 -1
  108. package/dist/internal/syntax.d.ts +4 -4
  109. package/dist/internal/syntax.d.ts.map +1 -1
  110. package/dist/internal/syntax.js +18 -10
  111. package/dist/internal/syntax.js.map +1 -1
  112. package/dist/internal/text.d.ts +32 -0
  113. package/dist/internal/text.d.ts.map +1 -1
  114. package/dist/internal/text.js +68 -14
  115. package/dist/internal/text.js.map +1 -1
  116. package/dist/internal/tokens.d.ts +20 -0
  117. package/dist/internal/tokens.d.ts.map +1 -1
  118. package/dist/internal/tokens.js +72 -39
  119. package/dist/internal/tokens.js.map +1 -1
  120. package/dist/internal/tuple.d.ts +6 -0
  121. package/dist/internal/tuple.d.ts.map +1 -0
  122. package/dist/internal/tuple.js +170 -0
  123. package/dist/internal/tuple.js.map +1 -0
  124. package/package.json +18 -10
  125. package/src/Ascii.ts +47 -12
  126. package/src/Binary.ts +174 -73
  127. package/src/Bits.ts +16 -6
  128. package/src/Compiler.ts +101 -10
  129. package/src/Expression.ts +94 -81
  130. package/src/Input.ts +99 -7
  131. package/src/Nom.ts +15 -5
  132. package/src/ParseError.ts +209 -52
  133. package/src/Parser.ts +684 -143
  134. package/src/ParserSchema.ts +1 -2
  135. package/src/ParserStream.ts +361 -68
  136. package/src/Syntax.ts +60 -36
  137. package/src/Text.ts +32 -27
  138. package/src/Token.ts +152 -34
  139. package/src/internal/compiler/closure.ts +371 -153
  140. package/src/internal/compiler/entries.ts +4 -2
  141. package/src/internal/compiler/first.ts +16 -0
  142. package/src/internal/compiler/graph.ts +96 -0
  143. package/src/internal/compiler/jit.ts +319 -169
  144. package/src/internal/compiler/registry.ts +10 -2
  145. package/src/internal/compiler/search.ts +68 -0
  146. package/src/internal/compiler/sets.ts +7 -3
  147. package/src/internal/compiler/wasm.ts +3276 -0
  148. package/src/internal/compiler/wasmAsm.ts +484 -0
  149. package/src/internal/entries.ts +8 -2
  150. package/src/internal/node.ts +103 -7
  151. package/src/internal/numbers.ts +3 -1
  152. package/src/internal/run.ts +73 -12
  153. package/src/internal/stack.ts +25 -1
  154. package/src/internal/syntax.ts +39 -18
  155. package/src/internal/text.ts +97 -9
  156. package/src/internal/tokens.ts +106 -14
  157. package/src/internal/tuple.ts +141 -0
package/dist/Parser.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import * as Result from "effect/Result";
2
- import { Fail, Input, Slice, Source, State, TraceEvent } from "./Input.js";
2
+ import { ErrMode, Fail, Input, Slice, Source, State, TraceEvent } from "./Input.js";
3
+ import { Defer as Defer$1, Node } from "./internal/node.js";
3
4
  import * as Option from "effect/Option";
4
5
  import * as Context from "effect/Context";
5
6
  import * as Effect from "effect/Effect";
6
7
  import { Pipeable } from "effect/Pipeable";
7
8
  import * as ParseError from "./ParseError.js";
8
9
  import { ErrorKind } from "./ParseError.js";
9
- import { Node } from "./internal/node.js";
10
10
  import { Contravariant, Covariant, Simplify } from "effect/Types";
11
11
  /**
12
12
  * @since 0.1.0
@@ -90,6 +90,13 @@ export declare namespace Parser {
90
90
  * @since 0.1.0
91
91
  */
92
92
  type InputOf<P> = [P] extends [never] ? Input : [P] extends [Parser<infer _A, infer _E, infer _R, infer I>] ? I : never;
93
+ /**
94
+ * The steps {@link combinator}'s `build` receives: one per parser, in
95
+ * order, each returning its parser's output or `Fail`.
96
+ *
97
+ * @since 0.5.0
98
+ */
99
+ type Steps<Ps extends ReadonlyArray<Any>> = { readonly [K in keyof Ps]: (state: State<InputOf<Ps[number]>>) => Success<Ps[K]> | Fail; };
93
100
  }
94
101
  /**
95
102
  * A repetition range, in the spirit of winnow's `impl Into<Range>`:
@@ -98,6 +105,12 @@ export declare namespace Parser {
98
105
  * - `{ min, max }`: between `min` and `max` times (inclusive); `min`
99
106
  * defaults to 0 and `max` to unbounded.
100
107
  *
108
+ * A count and both bounds must be non-negative integers (`max` may be
109
+ * `Infinity`) with `min <= max`. Every combinator that takes a range
110
+ * throws a `RangeError` otherwise, when the parser is built: a range that
111
+ * comes from data (a config file, a query parameter) is checked there,
112
+ * whatever its static type says.
113
+ *
101
114
  * @since 0.1.0
102
115
  * @category models
103
116
  */
@@ -171,6 +184,51 @@ export declare const make: <A, E = never, R = never, I extends Input = string>(s
171
184
  * @internal
172
185
  */
173
186
  export declare const described: <A, E = never, R = never, I extends Input = string>(step: (state: State<I>) => A | Fail, name: string | undefined, node: Node) => Parser<A, E, R, I>;
187
+ /**
188
+ * Creates a combinator over `parsers` that compiles: `build` makes the
189
+ * combinator's step from the parsers' steps. Write combinators with it
190
+ * rather than with {@link make} when they run other parsers: a `make`
191
+ * parser is opaque to the compilers, so in a compiled grammar it runs
192
+ * interpreted, and so does every parser it runs. Interpreted, `build`
193
+ * receives the parsers' own steps; compiled (see the `Compiler` module), it
194
+ * receives their compiled steps, so the parsers inside compile with the
195
+ * grammar.
196
+ *
197
+ * Each step runs its parser on the state it is given, as `Parser.run` does,
198
+ * and returns the parser's output or `Fail`. The steps must run on the
199
+ * combinator's own state (they are compiled for its input kind): a
200
+ * combinator that runs a parser on another input, as {@link mapParser}
201
+ * does, is written with `make`. `build` may be called more than once (once
202
+ * interpreted, and once for each compiled build), so state its step shares
203
+ * between calls belongs inside `build`.
204
+ *
205
+ * @example
206
+ * ```ts
207
+ * import { Ascii, Input, Parser, Token } from "@thomasfosterau/effect-parse"
208
+ *
209
+ * // One or more `item`s separated by `sep`, returning their count
210
+ * const count = <A, B>(item: Parser.Parser<A>, sep: Parser.Parser<B>) =>
211
+ * Parser.combinator([item, sep], ([itemStep, sepStep]) => (state) => {
212
+ * if (itemStep(state) === Input.Fail) return Input.Fail
213
+ * let n = 1
214
+ * while (true) {
215
+ * const start = state.pos
216
+ * if (sepStep(state) === Input.Fail || itemStep(state) === Input.Fail) {
217
+ * if (state.mode !== "Backtrack") return Input.Fail
218
+ * state.rewind(start)
219
+ * return n
220
+ * }
221
+ * n++
222
+ * }
223
+ * })
224
+ *
225
+ * Parser.parse(count(Ascii.digit1, Token.literal(",")), "1,22,333") // Result.succeed(3)
226
+ * ```
227
+ *
228
+ * @since 0.5.0
229
+ * @category constructors
230
+ */
231
+ export declare const combinator: <const Ps extends ReadonlyArray<Parser.Any>, A, E = never>(parsers: Ps, build: (steps: Parser.Steps<Ps>) => (state: State<Parser.InputOf<Ps[number]>>) => A | Fail, name?: string) => Parser<A, E | Parser.Error<Ps[number]>, Parser.Services<Ps[number]>, Parser.InputOf<Ps[number]>>;
174
232
  /**
175
233
  * Gives a parser a name, used by `toString`.
176
234
  *
@@ -218,6 +276,34 @@ export declare const void_: Parser<void, never, never, Input>;
218
276
  * @category constructors
219
277
  */
220
278
  export declare const fail: <E>(error: E) => Parser<never, E, never, Input>;
279
+ /**
280
+ * A parser that fails (backtracks) with the given user error, reporting it
281
+ * at `offset` rather than where the parser runs. Use it for a check that
282
+ * can only run once a whole construct has parsed but should point at the
283
+ * part at fault: return it from a {@link flatMap} continuation, with an
284
+ * offset taken from {@link location} or {@link withSpan}. Like any failure,
285
+ * one at a later offset is preferred over the failures of other
286
+ * alternatives (the furthest failure wins). The offset is clamped to the
287
+ * input.
288
+ *
289
+ * @example
290
+ * ```ts
291
+ * import { Ascii, Parser, Token } from "@thomasfosterau/effect-parse"
292
+ *
293
+ * const tag = (open: string) => Parser.delimited(Token.literal(open), Ascii.alpha1, Token.literal(">"))
294
+ * const element = Parser.seq(tag("<"), Parser.location, tag("</")).pipe(
295
+ * Parser.flatMap(([start, at, end]) =>
296
+ * start === end ? Parser.succeed(start) : Parser.failAt(at, `expected </${start}>`)
297
+ * )
298
+ * )
299
+ * // The error points at the end tag (offset 3), not at the start of the element
300
+ * Parser.parse(element, "<a></b>")
301
+ * ```
302
+ *
303
+ * @since 0.5.0
304
+ * @category constructors
305
+ */
306
+ export declare const failAt: <E>(offset: number, error: E) => Parser<never, E, never, Input>;
221
307
  /**
222
308
  * A parser that always fails (backtracks) without a cause. This is winnow's
223
309
  * `fail` and nom's `fail()`.
@@ -398,6 +484,40 @@ export declare const tryMap: {
398
484
  <A, B, E2>(f: (a: A) => Result.Result<B, E2>): <E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<B, E | E2, R, I>;
399
485
  <A, E, R, I extends Input, B, E2>(self: Parser<A, E, R, I>, f: (a: A) => Result.Result<B, E2>): Parser<B, E | E2, R, I>;
400
486
  };
487
+ /**
488
+ * Transforms the output of a parser with a function that returns
489
+ * `Input.Fail` to reject it: the allocation-free form of {@link tryMap} and
490
+ * {@link filterMap}, for checks that run on nearly every token. Compiled
491
+ * code compares the result with the sentinel instead of allocating and
492
+ * unwrapping a `Result` or an `Option` on every success.
493
+ *
494
+ * On failure the parser backtracks to where it started. With `orFailWith`,
495
+ * the user error it builds (only on failure) becomes the `cause` of the
496
+ * `ParseError`, as with `tryMap`; without, the failure has no cause, as
497
+ * with `filterMap`.
498
+ *
499
+ * @example
500
+ * ```ts
501
+ * import { Ascii, Input, Parser } from "@thomasfosterau/effect-parse"
502
+ *
503
+ * const byte = Ascii.decUint.pipe(
504
+ * Parser.mapOrFail(
505
+ * (n) => (n < 256 ? n : Input.Fail),
506
+ * (n) => `${n} is not a byte`
507
+ * )
508
+ * )
509
+ * Parser.parse(byte, "300") // fails with the cause "300 is not a byte"
510
+ * ```
511
+ *
512
+ * @since 0.5.0
513
+ * @category mapping
514
+ */
515
+ export declare const mapOrFail: {
516
+ <A, B>(f: (a: A) => B | Fail): <E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<Exclude<B, Fail>, E, R, I>;
517
+ <A, B, E2>(f: (a: A) => B | Fail, orFailWith: (a: A) => E2): <E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<Exclude<B, Fail>, E | E2, R, I>;
518
+ <A, E, R, I extends Input, B>(self: Parser<A, E, R, I>, f: (a: A) => B | Fail): Parser<Exclude<B, Fail>, E, R, I>;
519
+ <A, E, R, I extends Input, B, E2>(self: Parser<A, E, R, I>, f: (a: A) => B | Fail, orFailWith: (a: A) => E2): Parser<Exclude<B, Fail>, E | E2, R, I>;
520
+ };
401
521
  /**
402
522
  * Like {@link tryMap}, but the function may throw. Thrown values become the
403
523
  * `cause` of the error.
@@ -479,6 +599,28 @@ export declare const span: <A, E, R, I extends Input>(self: Parser<A, E, R, I>)
479
599
  * @category consumed input
480
600
  */
481
601
  export declare const withSpan: <A, E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<[output: A, span: Span], E, R, I>;
602
+ /**
603
+ * Transforms the output of a parser together with the offsets it consumed,
604
+ * `[start, end)`: the allocation-free spelling of
605
+ * `map(withSpan(p), ([a, span]) => f(a, span.start, span.end))`, which
606
+ * builds a tuple and a span object on every success. Compiled code passes
607
+ * the offsets to `f` directly.
608
+ *
609
+ * @example
610
+ * ```ts
611
+ * import { Ascii, Parser } from "@thomasfosterau/effect-parse"
612
+ *
613
+ * const name = Ascii.alpha1.pipe(Parser.mapSpan((text, start, end) => ({ text, start, end })))
614
+ * Parser.parse(name, "abc") // Result.succeed({ text: "abc", start: 0, end: 3 })
615
+ * ```
616
+ *
617
+ * @since 0.5.0
618
+ * @category consumed input
619
+ */
620
+ export declare const mapSpan: {
621
+ <A, B>(f: (a: A, start: number, end: number) => B): <E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<B, E, R, I>;
622
+ <A, E, R, I extends Input, B>(self: Parser<A, E, R, I>, f: (a: A, start: number, end: number) => B): Parser<B, E, R, I>;
623
+ };
482
624
  /**
483
625
  * Commits to the current branch: recoverable failures of the parser become
484
626
  * unrecoverable, so enclosing `alt`, `opt`, `repeat`, ... do not try
@@ -537,6 +679,146 @@ export declare const expected: {
537
679
  (description: string): <A, E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<A, E, R, I>;
538
680
  <A, E, R, I extends Input>(self: Parser<A, E, R, I>, description: string): Parser<A, E, R, I>;
539
681
  };
682
+ /**
683
+ * Runs a parser without letting it add to the expectations of later errors
684
+ * (chumsky's `quiet`). Use it on skippers, such as whitespace and comments,
685
+ * that may appear between any two tokens: they stop by failing, and without
686
+ * `quiet` what they would have accepted (`" "`, `"(:"`, ...) is listed in
687
+ * every error raised after them.
688
+ *
689
+ * When the parser succeeds, the hints and the furthest failure it recorded
690
+ * are forgotten, as after a lookahead that succeeded. When it fails
691
+ * recoverably without consuming input, its failure expects nothing, so an
692
+ * enclosing `alt` or `opt` reports only the other alternatives. A failure
693
+ * after consuming input (an unterminated comment) or an unrecoverable one
694
+ * is kept as it is. `Parser.expected` cannot do this: it relabels a failure,
695
+ * and a skipper that matches zero or more times never fails.
696
+ *
697
+ * @example
698
+ * ```ts
699
+ * import { Ascii, Parser, Token } from "@thomasfosterau/effect-parse"
700
+ *
701
+ * const comment = Parser.delimited(Token.literal("(:"), Token.takeTill(":"), Token.literal(":)"))
702
+ * const skip = Parser.quiet(Parser.repeat(Parser.alt(Ascii.multispace1, comment)))
703
+ * const number = Parser.preceded(skip, Ascii.digit1)
704
+ * // Fails expecting only a digit: without `quiet`, also whitespace and "(:"
705
+ * Parser.parse(number, " (: one :) x")
706
+ * ```
707
+ *
708
+ * @since 0.5.0
709
+ * @category error management
710
+ */
711
+ export declare const quiet: <A, E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<A, E, R, I>;
712
+ /**
713
+ * What a fast path (see {@link withFastPath}) returns to leave the input at
714
+ * the current offset to its grammar.
715
+ *
716
+ * @since 0.5.0
717
+ * @category fast paths
718
+ */
719
+ export declare const Defer: typeof Defer$1;
720
+ /**
721
+ * The type of {@link Defer}.
722
+ *
723
+ * @since 0.5.0
724
+ * @category fast paths
725
+ */
726
+ export type Defer = typeof Defer$1;
727
+ /**
728
+ * Puts a hand-written fast path in front of a grammar, which stays the
729
+ * specification: `fast` runs on the state, at the offset where the grammar
730
+ * would, and either returns the value the grammar would return, with
731
+ * `state.pos` where the grammar would stop, or returns {@link Defer}, and
732
+ * the grammar runs from that offset instead. Use it where a scanner written
733
+ * by hand (`indexOf`, a lookup table, interned names) beats compiled code on
734
+ * the tokens that dominate an input, and let the grammar handle everything
735
+ * else.
736
+ *
737
+ * The fast path runs in compiled code only (see the `Compiler` module).
738
+ * Interpreted runs, and so every error, every `Syntax` tree and every trace,
739
+ * come from the grammar alone, so they are exactly the grammar's. It must
740
+ * defer wherever it would not return exactly what the grammar returns, and
741
+ * on partial input wherever the grammar might report `Incomplete`; check it
742
+ * against the grammar with {@link verifyFastPath}.
743
+ *
744
+ * @example
745
+ * ```ts
746
+ * import { Compiler, Parser, Token } from "@thomasfosterau/effect-parse"
747
+ *
748
+ * const text = Token.takeTill("<", { min: 1 })
749
+ * // The same run, found with `indexOf`; anything else (an empty run, the end of a partial input) defers
750
+ * const fastText = Compiler.jit(
751
+ * Parser.withFastPath(text, (state) => {
752
+ * const end = state.input.indexOf("<", state.pos)
753
+ * if (end <= state.pos || end > state.end) return Parser.Defer
754
+ * const value = state.input.slice(state.pos, end)
755
+ * state.pos = end
756
+ * return value
757
+ * })
758
+ * )
759
+ * ```
760
+ *
761
+ * @since 0.5.0
762
+ * @category fast paths
763
+ */
764
+ export declare const withFastPath: {
765
+ <A, I extends Input>(fast: (state: State<I>) => A | Defer): <E, R>(grammar: Parser<A, E, R, I>) => Parser<A, E, R, I>;
766
+ <A, E, R, I extends Input>(grammar: Parser<A, E, R, I>, fast: (state: State<I>) => A | Defer): Parser<A, E, R, I>;
767
+ };
768
+ /**
769
+ * A place where a fast path disagrees with its grammar (see
770
+ * {@link verifyFastPath}).
771
+ *
772
+ * @since 0.5.0
773
+ * @category fast paths
774
+ */
775
+ export interface FastPathMismatch<A, I extends Input> {
776
+ readonly input: I;
777
+ readonly offset: number;
778
+ readonly partial: boolean;
779
+ /** What the fast path returned, and where it stopped. */
780
+ readonly fast: {
781
+ readonly value: A;
782
+ readonly end: number;
783
+ };
784
+ /** What the grammar returned, and where it stopped, or how it failed. */
785
+ readonly grammar: {
786
+ readonly value: A;
787
+ readonly end: number;
788
+ } | {
789
+ readonly failed: ErrMode;
790
+ };
791
+ }
792
+ /**
793
+ * Checks a fast path against its grammar (see {@link withFastPath}): on
794
+ * every input, at every offset, on complete and on partial input, wherever
795
+ * `fast` returns a value, the grammar (run interpreted) must return an
796
+ * equal value (by `Equal.equals`, or `options.equivalence`) and stop at the
797
+ * same offset. Returns every place where it doesn't, so a test asserts that
798
+ * the result is empty; generated inputs, mutated and truncated, find the
799
+ * most. Grammars that use services are not supported.
800
+ *
801
+ * @example
802
+ * ```ts
803
+ * import { Input, Parser, Token } from "@thomasfosterau/effect-parse"
804
+ *
805
+ * const text = Token.takeTill("<", { min: 1 })
806
+ * const fast = (state: Input.State<string>) => {
807
+ * const end = state.input.indexOf("<", state.pos)
808
+ * if (end <= state.pos || end > state.end) return Parser.Defer
809
+ * const value = state.input.slice(state.pos, end)
810
+ * state.pos = end
811
+ * return value
812
+ * }
813
+ * Parser.verifyFastPath(text, fast, ["a<b", "<", "abc"]) // []
814
+ * ```
815
+ *
816
+ * @since 0.5.0
817
+ * @category fast paths
818
+ */
819
+ export declare const verifyFastPath: <A, E, I extends Input>(grammar: Parser<A, E, never, I>, fast: (state: State<I>) => A | Defer, inputs: Iterable<I>, options?: {
820
+ readonly equivalence?: ((a: A, b: A) => boolean) | undefined;
821
+ }) => ReadonlyArray<FastPathMismatch<A, I>>;
540
822
  /**
541
823
  * Transforms the user error (cause) of a parser's failures.
542
824
  *
@@ -633,6 +915,28 @@ export declare const allConsuming: <A, E, R, I extends Input>(self: Parser<A, E,
633
915
  * @category sequencing
634
916
  */
635
917
  export declare const seq: <const Ps extends ReadonlyArray<Parser.Any>>(...parsers: Ps) => Parser<{ -readonly [K in keyof Ps]: Parser.Success<Ps[K]>; }, Parser.Error<Ps[number]>, Parser.Services<Ps[number]>, Parser.InputOf<Ps[number]>>;
918
+ /**
919
+ * Runs parsers in sequence and combines their outputs with `f`, which
920
+ * receives one argument per parser: the allocation-free spelling of
921
+ * `map(seq(...parsers), ([a, b, ...]) => f(a, b, ...))`, which builds a
922
+ * tuple on every success. Compiled code calls `f` with the values directly.
923
+ * {@link zipWith} is the two-parser, pipeable form.
924
+ *
925
+ * @example
926
+ * ```ts
927
+ * import { Ascii, Parser, Token } from "@thomasfosterau/effect-parse"
928
+ *
929
+ * const point = Parser.seqWith(
930
+ * [Ascii.decInt, Token.literal(","), Ascii.decInt],
931
+ * (x, _, y) => ({ x, y })
932
+ * )
933
+ * Parser.parse(point, "3,-4") // Result.succeed({ x: 3, y: -4 })
934
+ * ```
935
+ *
936
+ * @since 0.5.0
937
+ * @category sequencing
938
+ */
939
+ export declare const seqWith: <const Ps extends ReadonlyArray<Parser.Any>, B>(parsers: Ps, f: (...values: { -readonly [K in keyof Ps]: Parser.Success<Ps[K]>; }) => B) => Parser<B, Parser.Error<Ps[number]>, Parser.Services<Ps[number]>, Parser.InputOf<Ps[number]>>;
636
940
  /**
637
941
  * Runs a record of parsers in sequence (in key order), collecting their
638
942
  * outputs in a record. This is the Effect counterpart to winnow's
@@ -806,6 +1110,16 @@ declare const let_: {
806
1110
  * @category choice
807
1111
  */
808
1112
  export declare const alt: <const Ps extends ReadonlyArray<Parser.Any>>(...parsers: Ps) => Parser<Parser.Success<Ps[number]>, Parser.Error<Ps[number]>, Parser.Services<Ps[number]>, Parser.InputOf<Ps[number]>>;
1113
+ /**
1114
+ * The overloads of {@link dispatch}.
1115
+ *
1116
+ * @since 0.5.0
1117
+ * @category choice
1118
+ */
1119
+ export interface DispatchFn {
1120
+ <K, E, R, I extends Input, P extends Parser.Any>(selector: Parser<K, E, R, I>, cases: (key: K) => P | undefined): Parser<Parser.Success<P>, E | Parser.Error<P>, R | Parser.Services<P>, I & Parser.InputOf<P>>;
1121
+ <K extends PropertyKey, E, R, I extends Input, const Cases extends { readonly [key in K]?: Parser.Any; }, Otherwise extends Parser.Any = never>(selector: Parser<K, E, R, I>, cases: Cases, otherwise?: Otherwise): Parser<Parser.Success<NonNullable<Cases[keyof Cases]> | Otherwise>, E | Parser.Error<NonNullable<Cases[keyof Cases]> | Otherwise>, R | Parser.Services<NonNullable<Cases[keyof Cases]> | Otherwise>, I & Parser.InputOf<NonNullable<Cases[keyof Cases]> | Otherwise>>;
1122
+ }
809
1123
  /**
810
1124
  * Selects the parser to run next based on the output of `selector`, like a
811
1125
  * `match` over the input (winnow's `dispatch!`). If no case matches, the
@@ -840,10 +1154,7 @@ export declare const alt: <const Ps extends ReadonlyArray<Parser.Any>>(...parser
840
1154
  * @since 0.1.0
841
1155
  * @category choice
842
1156
  */
843
- export declare const dispatch: {
844
- <K, E, R, I extends Input, P extends Parser.Any>(selector: Parser<K, E, R, I>, cases: (key: K) => P | undefined): Parser<Parser.Success<P>, E | Parser.Error<P>, R | Parser.Services<P>, I & Parser.InputOf<P>>;
845
- <K extends PropertyKey, E, R, I extends Input, const Cases extends { readonly [key in K]?: Parser.Any; }, Otherwise extends Parser.Any = never>(selector: Parser<K, E, R, I>, cases: Cases, otherwise?: Otherwise): Parser<Parser.Success<NonNullable<Cases[keyof Cases]> | Otherwise>, E | Parser.Error<NonNullable<Cases[keyof Cases]> | Otherwise>, R | Parser.Services<NonNullable<Cases[keyof Cases]> | Otherwise>, I & Parser.InputOf<NonNullable<Cases[keyof Cases]> | Otherwise>>;
846
- };
1157
+ export declare const dispatch: DispatchFn;
847
1158
  /**
848
1159
  * Applies every parser exactly once, in whatever order they match, and
849
1160
  * returns their outputs in the order the parsers were given (winnow's and
@@ -861,9 +1172,9 @@ export declare const permutation: <const Ps extends ReadonlyArray<Parser.Any>>(.
861
1172
  * exactly that many times. With a literal positive `min`, the output is
862
1173
  * typed as a non-empty array.
863
1174
  *
864
- * As in winnow, an unbounded repetition of a parser that succeeds without
865
- * consuming input fails with an unrecoverable assertion instead of looping
866
- * forever.
1175
+ * A parser that succeeds without consuming input fails the repetition with
1176
+ * an unrecoverable `Assert` failure, whatever the range (winnow checks only
1177
+ * unbounded ones): a bound can come from the input (`Binary.lengthRepeat`).
867
1178
  *
868
1179
  * @example
869
1180
  * ```ts
@@ -1132,6 +1443,16 @@ export interface ParseOptions {
1132
1443
  export interface ParseOptionsWithContext<R> extends ParseOptions {
1133
1444
  readonly context: Context.Context<R>;
1134
1445
  }
1446
+ /**
1447
+ * The overloads of {@link parse}.
1448
+ *
1449
+ * @since 0.5.0
1450
+ * @category running
1451
+ */
1452
+ export interface ParseFn {
1453
+ <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): Result.Result<A, ParseError.ParseError<E>>;
1454
+ <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): Result.Result<A, ParseError.ParseError<E>>;
1455
+ }
1135
1456
  /**
1136
1457
  * Runs a parser against a complete input, requiring the whole input to be
1137
1458
  * consumed (winnow's `Parser::parse`).
@@ -1148,20 +1469,34 @@ export interface ParseOptionsWithContext<R> extends ParseOptions {
1148
1469
  * @since 0.1.0
1149
1470
  * @category running
1150
1471
  */
1151
- export declare const parse: {
1152
- <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): Result.Result<A, ParseError.ParseError<E>>;
1153
- <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): Result.Result<A, ParseError.ParseError<E>>;
1154
- };
1472
+ export declare const parse: ParseFn;
1155
1473
  /**
1156
- * Like {@link parse}, but throws the `ParseError` on failure.
1474
+ * The overloads of {@link parseSync}.
1157
1475
  *
1158
- * @since 0.1.0
1476
+ * @since 0.5.0
1159
1477
  * @category running
1160
1478
  */
1161
- export declare const parseSync: {
1479
+ export interface ParseSyncFn {
1162
1480
  <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): A;
1163
1481
  <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): A;
1164
- };
1482
+ }
1483
+ /**
1484
+ * Like {@link parse}, but throws the `ParseError` on failure.
1485
+ *
1486
+ * @since 0.1.0
1487
+ * @category running
1488
+ */
1489
+ export declare const parseSync: ParseSyncFn;
1490
+ /**
1491
+ * The overloads of {@link parsePeek}.
1492
+ *
1493
+ * @since 0.5.0
1494
+ * @category running
1495
+ */
1496
+ export interface ParsePeekFn {
1497
+ <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): Result.Result<[remaining: Slice<I>, output: A], ParseError.ParseError<E>>;
1498
+ <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): Result.Result<[remaining: Slice<I>, output: A], ParseError.ParseError<E>>;
1499
+ }
1165
1500
  /**
1166
1501
  * Runs a parser against the start of an input, returning the remaining
1167
1502
  * input along with the output, nom-style (winnow's `parse_peek`, nom's
@@ -1174,10 +1509,7 @@ export declare const parseSync: {
1174
1509
  * @since 0.1.0
1175
1510
  * @category running
1176
1511
  */
1177
- export declare const parsePeek: {
1178
- <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): Result.Result<[remaining: Slice<I>, output: A], ParseError.ParseError<E>>;
1179
- <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): Result.Result<[remaining: Slice<I>, output: A], ParseError.ParseError<E>>;
1180
- };
1512
+ export declare const parsePeek: ParsePeekFn;
1181
1513
  /**
1182
1514
  * The outcome of parsing a partial (streaming) input.
1183
1515
  *
@@ -1195,6 +1527,16 @@ export type PartialResult<A> = {
1195
1527
  readonly _tag: "Incomplete";
1196
1528
  readonly needed: Option.Option<number>;
1197
1529
  };
1530
+ /**
1531
+ * The overloads of {@link parsePartial}.
1532
+ *
1533
+ * @since 0.5.0
1534
+ * @category running
1535
+ */
1536
+ export interface ParsePartialFn {
1537
+ <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): Result.Result<PartialResult<A>, ParseError.ParseError<E>>;
1538
+ <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): Result.Result<PartialResult<A>, ParseError.ParseError<E>>;
1539
+ }
1198
1540
  /**
1199
1541
  * Runs a parser against a *partial* input, i.e. a chunk of a stream that may
1200
1542
  * be followed by more data (winnow's `Partial`, nom's `streaming` parsers).
@@ -1224,10 +1566,7 @@ export type PartialResult<A> = {
1224
1566
  * @since 0.1.0
1225
1567
  * @category running
1226
1568
  */
1227
- export declare const parsePartial: {
1228
- <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): Result.Result<PartialResult<A>, ParseError.ParseError<E>>;
1229
- <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): Result.Result<PartialResult<A>, ParseError.ParseError<E>>;
1230
- };
1569
+ export declare const parsePartial: ParsePartialFn;
1231
1570
  /**
1232
1571
  * Runs a parser against a complete input as an `Effect`. Services required
1233
1572
  * by the parser are taken from the Effect's context.
@@ -1330,6 +1669,16 @@ export interface RecoverableResult<A, E> {
1330
1669
  /** Every error encountered: recovered ones, then the fatal one (if any). */
1331
1670
  readonly errors: ReadonlyArray<ParseError.ParseError<E>>;
1332
1671
  }
1672
+ /**
1673
+ * The overloads of {@link parseRecoverable}.
1674
+ *
1675
+ * @since 0.5.0
1676
+ * @category running
1677
+ */
1678
+ export interface ParseRecoverableFn {
1679
+ <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): RecoverableResult<A, E>;
1680
+ <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): RecoverableResult<A, E>;
1681
+ }
1333
1682
  /**
1334
1683
  * Runs a parser with error recovery enabled (winnow's `Recoverable`
1335
1684
  * stream). Failures handled by {@link resumeAfter} and {@link retryAfter}
@@ -1338,9 +1687,6 @@ export interface RecoverableResult<A, E> {
1338
1687
  * @since 0.1.0
1339
1688
  * @category running
1340
1689
  */
1341
- export declare const parseRecoverable: {
1342
- <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): RecoverableResult<A, E>;
1343
- <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): RecoverableResult<A, E>;
1344
- };
1690
+ export declare const parseRecoverable: ParseRecoverableFn;
1345
1691
  export { type ErrorKind, let_ as let, void_ as void };
1346
1692
  //# sourceMappingURL=Parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","names":[],"sources":["../src/Parser.ts"],"mappings":"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"}
1
+ {"version":3,"file":"Parser.d.ts","names":["DeferSymbol"],"sources":["../src/Parser.ts"],"mappings":"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"}