@thomasfosterau/effect-parse 0.0.0 → 0.2.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 (155) hide show
  1. package/README.md +247 -230
  2. package/dist/Ascii.d.ts +32 -53
  3. package/dist/Ascii.d.ts.map +1 -1
  4. package/dist/Ascii.js +576 -571
  5. package/dist/Ascii.js.map +1 -1
  6. package/dist/Binary.d.ts +6 -29
  7. package/dist/Binary.d.ts.map +1 -1
  8. package/dist/Binary.js +129 -116
  9. package/dist/Binary.js.map +1 -1
  10. package/dist/Bits.d.ts +4 -2
  11. package/dist/Bits.d.ts.map +1 -1
  12. package/dist/Bits.js +121 -123
  13. package/dist/Bits.js.map +1 -1
  14. package/dist/Compiler.d.ts +39 -0
  15. package/dist/Compiler.d.ts.map +1 -0
  16. package/dist/Compiler.js +48 -0
  17. package/dist/Compiler.js.map +1 -0
  18. package/dist/Encoding.d.ts +29 -46
  19. package/dist/Encoding.d.ts.map +1 -1
  20. package/dist/Encoding.js +76 -75
  21. package/dist/Encoding.js.map +1 -1
  22. package/dist/Expression.d.ts +15 -49
  23. package/dist/Expression.d.ts.map +1 -1
  24. package/dist/Expression.js +143 -131
  25. package/dist/Expression.js.map +1 -1
  26. package/dist/Input.d.ts +206 -177
  27. package/dist/Input.d.ts.map +1 -1
  28. package/dist/Input.js +317 -299
  29. package/dist/Input.js.map +1 -1
  30. package/dist/Nom.d.ts +44 -84
  31. package/dist/Nom.d.ts.map +1 -1
  32. package/dist/Nom.js +423 -453
  33. package/dist/Nom.js.map +1 -1
  34. package/dist/ParseError.d.ts +54 -49
  35. package/dist/ParseError.d.ts.map +1 -1
  36. package/dist/ParseError.js +233 -275
  37. package/dist/ParseError.js.map +1 -1
  38. package/dist/Parser.d.ts +345 -313
  39. package/dist/Parser.d.ts.map +1 -1
  40. package/dist/Parser.js +2010 -1802
  41. package/dist/Parser.js.map +1 -1
  42. package/dist/ParserSchema.d.ts +8 -7
  43. package/dist/ParserSchema.d.ts.map +1 -1
  44. package/dist/ParserSchema.js +49 -49
  45. package/dist/ParserSchema.js.map +1 -1
  46. package/dist/ParserStream.d.ts +26 -20
  47. package/dist/ParserStream.d.ts.map +1 -1
  48. package/dist/ParserStream.js +267 -255
  49. package/dist/ParserStream.js.map +1 -1
  50. package/dist/Syntax.d.ts +401 -0
  51. package/dist/Syntax.d.ts.map +1 -0
  52. package/dist/Syntax.js +717 -0
  53. package/dist/Syntax.js.map +1 -0
  54. package/dist/Text.d.ts +98 -134
  55. package/dist/Text.d.ts.map +1 -1
  56. package/dist/Text.js +534 -496
  57. package/dist/Text.js.map +1 -1
  58. package/dist/Token.d.ts +60 -42
  59. package/dist/Token.d.ts.map +1 -1
  60. package/dist/Token.js +331 -265
  61. package/dist/Token.js.map +1 -1
  62. package/dist/index.d.ts +16 -17
  63. package/dist/index.js +16 -17
  64. package/dist/internal/compiler/closure.d.ts +14 -16
  65. package/dist/internal/compiler/closure.d.ts.map +1 -1
  66. package/dist/internal/compiler/closure.js +1458 -1637
  67. package/dist/internal/compiler/closure.js.map +1 -1
  68. package/dist/internal/compiler/entries.d.ts +11 -11
  69. package/dist/internal/compiler/entries.d.ts.map +1 -1
  70. package/dist/internal/compiler/entries.js +36 -26
  71. package/dist/internal/compiler/entries.js.map +1 -1
  72. package/dist/internal/compiler/first.d.ts +19 -19
  73. package/dist/internal/compiler/first.d.ts.map +1 -1
  74. package/dist/internal/compiler/first.js +251 -227
  75. package/dist/internal/compiler/first.js.map +1 -1
  76. package/dist/internal/compiler/jit.d.ts +6 -17
  77. package/dist/internal/compiler/jit.d.ts.map +1 -1
  78. package/dist/internal/compiler/jit.js +860 -988
  79. package/dist/internal/compiler/jit.js.map +1 -1
  80. package/dist/internal/compiler/registry.d.ts +20 -21
  81. package/dist/internal/compiler/registry.d.ts.map +1 -1
  82. package/dist/internal/compiler/registry.js +21 -41
  83. package/dist/internal/compiler/registry.js.map +1 -1
  84. package/dist/internal/compiler/sets.d.ts +9 -13
  85. package/dist/internal/compiler/sets.d.ts.map +1 -1
  86. package/dist/internal/compiler/sets.js +76 -73
  87. package/dist/internal/compiler/sets.js.map +1 -1
  88. package/dist/internal/entries.d.ts +3 -3
  89. package/dist/internal/entries.d.ts.map +1 -1
  90. package/dist/internal/entries.js +38 -30
  91. package/dist/internal/entries.js.map +1 -1
  92. package/dist/internal/node.d.ts +177 -173
  93. package/dist/internal/node.d.ts.map +1 -1
  94. package/dist/internal/node.js +77 -66
  95. package/dist/internal/node.js.map +1 -1
  96. package/dist/internal/numbers.d.ts +7 -8
  97. package/dist/internal/numbers.d.ts.map +1 -1
  98. package/dist/internal/numbers.js +246 -276
  99. package/dist/internal/numbers.js.map +1 -1
  100. package/dist/internal/resume.d.ts +6 -24
  101. package/dist/internal/resume.d.ts.map +1 -1
  102. package/dist/internal/resume.js +30 -29
  103. package/dist/internal/resume.js.map +1 -1
  104. package/dist/internal/run.d.ts +15 -0
  105. package/dist/internal/run.d.ts.map +1 -0
  106. package/dist/internal/run.js +36 -0
  107. package/dist/internal/run.js.map +1 -0
  108. package/dist/internal/stack.d.ts +16 -0
  109. package/dist/internal/stack.d.ts.map +1 -0
  110. package/dist/internal/stack.js +26 -0
  111. package/dist/internal/stack.js.map +1 -0
  112. package/dist/internal/syntax.d.ts +146 -0
  113. package/dist/internal/syntax.d.ts.map +1 -0
  114. package/dist/internal/syntax.js +305 -0
  115. package/dist/internal/syntax.js.map +1 -0
  116. package/dist/internal/text.d.ts +10 -2
  117. package/dist/internal/text.d.ts.map +1 -1
  118. package/dist/internal/text.js +295 -345
  119. package/dist/internal/text.js.map +1 -1
  120. package/dist/internal/tokens.d.ts +25 -30
  121. package/dist/internal/tokens.d.ts.map +1 -1
  122. package/dist/internal/tokens.js +369 -363
  123. package/dist/internal/tokens.js.map +1 -1
  124. package/package.json +42 -28
  125. package/src/Ascii.ts +278 -187
  126. package/src/Binary.ts +150 -44
  127. package/src/Bits.ts +6 -3
  128. package/src/Compiler.ts +98 -0
  129. package/src/Expression.ts +10 -5
  130. package/src/Input.ts +106 -28
  131. package/src/Nom.ts +4 -3
  132. package/src/ParseError.ts +48 -51
  133. package/src/Parser.ts +1163 -795
  134. package/src/ParserStream.ts +104 -80
  135. package/src/Syntax.ts +900 -0
  136. package/src/Text.ts +272 -187
  137. package/src/Token.ts +180 -87
  138. package/src/index.ts +2 -0
  139. package/src/internal/compiler/closure.ts +121 -88
  140. package/src/internal/compiler/entries.ts +21 -8
  141. package/src/internal/compiler/first.ts +17 -15
  142. package/src/internal/compiler/jit.ts +360 -157
  143. package/src/internal/compiler/registry.ts +12 -33
  144. package/src/internal/compiler/sets.ts +17 -11
  145. package/src/internal/entries.ts +4 -2
  146. package/src/internal/node.ts +51 -37
  147. package/src/internal/numbers.ts +22 -20
  148. package/src/internal/resume.ts +8 -4
  149. package/src/internal/run.ts +41 -0
  150. package/src/internal/stack.ts +36 -0
  151. package/src/internal/syntax.ts +421 -0
  152. package/src/internal/text.ts +32 -25
  153. package/src/internal/tokens.ts +96 -51
  154. package/dist/index.d.ts.map +0 -1
  155. package/dist/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"closure.js","sourceRoot":"","sources":["../../../src/internal/compiler/closure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"closure.js","names":[],"sources":["../../../src/internal/compiler/closure.ts"],"sourcesContent":["/**\n * The closure compiler: turns a parser's description into specialized\n * closures with the step signature. Compiled steps return a value, or\n * `Fail` with only `state.mode` set: no diagnostics are recorded.\n *\n * Nothing here generates code, so it works under a Content Security\n * Policy. Parsers that can't be compiled run their own (interpreted) steps\n * on the same state.\n */\nimport * as Predicate from \"effect/Predicate\"\nimport type { Encoding } from \"../../Encoding.js\"\nimport type { ErrMode, State } from \"../../Input.js\"\nimport { Fail } from \"../../Input.js\"\nimport * as Option from \"effect/Option\"\nimport type { Node, NodeOf, ParserLike } from \"../node.js\"\nimport { addEntry, flushEntries, fromEntries, isPlainKey } from \"../entries.js\"\nimport { nodeOf } from \"../node.js\"\nimport { floatScan, floatTexts, scanFloatBytes, scanFloatString, toFloat } from \"../numbers.js\"\nimport { charOf, fastLimit, firstCodePoint, fold, validate } from \"../text.js\"\nimport { countTokens, indexOf } from \"../tokens.js\"\nimport type { AltPlan } from \"./first.js\"\nimport * as Resume from \"../resume.js\"\nimport type { Backend } from \"./registry.js\"\nimport type { EntryPair } from \"./entries.js\"\nimport { buildsEntries, pairOf } from \"./entries.js\"\nimport { FirstSets, planAlt } from \"./first.js\"\nimport type { CharSet } from \"./sets.js\"\nimport { kindOfEncoding, TableSize, textSet, tokenSet } from \"./sets.js\"\n\nexport type Step = (state: State<any>) => any\n\n/** A parser that the compiler left to its interpreted step. */\nexport interface Fallback {\n readonly name: string | undefined\n readonly tag: Node[\"_tag\"]\n readonly reason: string\n}\n\n/** The maximum number of distinct parsers compiled for one root. */\nconst maxNodes = 2048\n\nconst BT: ErrMode = \"Backtrack\"\nconst CUT: ErrMode = \"Cut\"\nconst INC: ErrMode = \"Incomplete\"\n\n/**\n * How many units past the cursor a single token can depend on (a code\n * point is at most 4 units). In a partial parse, a token parser that read\n * no closer than this to the end of the input behaves exactly as on\n * complete input.\n */\nconst Margin = 4\n\nconst lowerAscii = (c: number): number => (c >= 65 && c <= 90 ? c + 32 : c)\n\nconst isSuccess = (r: any): boolean => r._tag === \"Success\"\nconst isSome = (o: any): boolean => o._tag === \"Some\"\n\ninterface Slot {\n fn: Step | undefined\n}\n\nclass Compiler {\n readonly used = new Map<ParserLike, Slot>()\n readonly unused = new Map<ParserLike, Slot>()\n readonly firsts: FirstSets\n readonly fallbacks: Array<Fallback> = []\n private readonly fellBack = new Set<ParserLike>()\n private budget = maxNodes\n\n /**\n * `resumable`: compile for streaming parses, which may be partial (see\n * `state.partial`) and keep checkpoints (see `internal/resume.ts`).\n */\n constructor(\n readonly kind: 0 | 1 | 2,\n readonly resumable = false\n ) {\n this.firsts = new FirstSets(kind)\n }\n\n /**\n * In a resumable build, runs the compiled token parser `step`, and falls\n * back to the interpreted one when it read within `lookahead` units of\n * the end of a partial input, where it might have to report `Incomplete`.\n * Compiled token parsers leave `state.pos` where they stopped reading,\n * even when they fail.\n */\n private partialSafe(p: ParserLike, step: Step, lookahead: number): Step {\n if (!this.resumable) return step\n const interpreted = p.step\n const ahead = Math.max(lookahead, Margin)\n return (s) => {\n if (!s.partial) return step(s)\n const start = s.pos\n const r = step(s)\n if (s.pos + ahead <= s.end) return r\n s.pos = start\n return interpreted(s)\n }\n }\n\n /** Compiles `p`; when `used` is false its output is not needed. */\n compile(p: ParserLike, used: boolean): Step {\n const memo = used ? this.used : this.unused\n const slot = memo.get(p)\n if (slot !== undefined) {\n if (slot.fn !== undefined) return slot.fn\n // A cycle through `suspend`: the slot is filled once the cycle is compiled, before any parse runs\n return (s) => (slot.fn ?? p.step)(s)\n }\n const fresh: Slot = { fn: undefined }\n memo.set(p, fresh)\n const node = nodeOf(p)\n const fn = --this.budget < 0 ? this.fallback(p, node, \"node budget exceeded\") : this.build(p, node, used)\n fresh.fn = fn\n return fn\n }\n\n fallback(p: ParserLike, node: Node, reason: string): Step {\n this.note(p, node, reason)\n return p.step\n }\n\n /** Records that (part of) `p` runs interpreted. */\n note(p: ParserLike, node: Node, reason: string): void {\n if (!this.fellBack.has(p)) {\n this.fellBack.add(p)\n this.fallbacks.push({ name: p.name, tag: node._tag, reason })\n }\n }\n\n /** Whether a token node reads this input kind natively. */\n private native(enc: Encoding<any> | undefined): boolean {\n return enc === undefined ? this.kind !== 2 : kindOfEncoding(enc) === this.kind\n }\n\n build(p: ParserLike, node: Node, used: boolean): Step {\n switch (node._tag) {\n case \"Opaque\":\n return this.fallback(p, node, \"not describable (Parser.make, gen, ...)\")\n case \"Succeed\": {\n const value = node.value\n return () => value\n }\n case \"Sync\": {\n const evaluate = node.evaluate\n return used ? () => evaluate() : () => undefined\n }\n case \"Fail\": {\n const mode = node.mode\n return (s) => {\n s.mode = mode\n return Fail\n }\n }\n case \"Eof\":\n return (s) => {\n if (s.pos < s.end) {\n s.mode = BT\n return Fail\n }\n if (s.partial) {\n s.mode = INC\n return Fail\n }\n return undefined\n }\n case \"Location\":\n return (s) => s.pos\n case \"RestLen\":\n return (s) => s.end - s.pos\n case \"Suspend\":\n return this.compile(node.resolve(), used)\n case \"Any\":\n case \"Literal\":\n case \"OneOf\":\n case \"Take\":\n case \"TakeWhile\":\n case \"TakeUntil\":\n case \"Rest\":\n if (!this.native(node.encoding)) return this.fallback(p, node, \"token parser on array input\")\n return this.partialSafe(\n p,\n node.encoding === undefined ? this.token(p, node, used) : this.text(p, node, node.encoding, used),\n node._tag === \"Literal\" || node._tag === \"TakeUntil\" ? node.literal.length * 4 : Margin\n )\n case \"TillLineEnding\":\n case \"Identifier\":\n case \"Bom\":\n return this.fallback(p, node, \"leaf parser without a compiled form\")\n case \"Escaped\":\n if (!this.native(node.encoding)) return this.fallback(p, node, \"token parser on array input\")\n return this.escaped(node)\n case \"Map\": {\n if (!used) return this.compile(node.self, false)\n if (node.f === toFloat) {\n const step = this.float(node)\n if (step !== undefined) return step\n }\n // Streaming builds keep the array, which their checkpoints hold\n if (node.f === fromEntries && !this.resumable && buildsEntries(node.self)) return this.entries(node.self)\n const c = this.compile(node.self, true)\n const f = node.f\n return (s) => {\n const a = c(s)\n return a === Fail ? Fail : f(a)\n }\n }\n case \"As\": {\n const c = this.compile(node.self, false)\n if (!used) return c\n const value = node.value\n return (s) => (c(s) === Fail ? Fail : value)\n }\n case \"Tap\": {\n const c = this.compile(node.self, true)\n const f = node.f\n return (s) => {\n const a = c(s)\n if (a !== Fail) f(a)\n return a\n }\n }\n case \"TryMap\": {\n const c = this.compile(node.self, true)\n const f = node.f\n return (s) => {\n const a = c(s)\n if (a === Fail) return Fail\n const r = f(a) as any\n if (isSuccess(r)) return r.success\n s.mode = BT\n return Fail\n }\n }\n case \"FilterMap\": {\n const c = this.compile(node.self, true)\n const f = node.f\n return (s) => {\n const a = c(s)\n if (a === Fail) return Fail\n const o = f(a) as any\n if (isSome(o)) return o.value\n s.mode = BT\n return Fail\n }\n }\n case \"Filter\": {\n const c = this.compile(node.self, true)\n const predicate = node.predicate\n return (s) => {\n const a = c(s)\n if (a === Fail) return Fail\n if (predicate(a)) return a\n s.mode = BT\n return Fail\n }\n }\n case \"FlatMap\": {\n // The parser returned by `f` runs interpreted\n const c = this.compile(node.self, true)\n const f = node.f\n this.note(p, node, \"the parser returned by the function runs interpreted\")\n return (s) => {\n const a = c(s)\n return a === Fail ? Fail : f(a).step(s)\n }\n }\n case \"Taken\":\n if (node.encoding !== undefined && !this.native(node.encoding)) {\n return this.fallback(p, node, \"Text parser on another input kind\")\n }\n return this.taken(node, used)\n case \"WithTaken\": {\n const c = this.compile(node.self, true)\n return (s) => {\n const start = s.pos\n const a = c(s)\n return a === Fail ? Fail : [a, s.slice(start, s.pos)]\n }\n }\n case \"Span\": {\n const c = this.compile(node.self, false)\n if (!used) return c\n return (s) => {\n const start = s.pos\n return c(s) === Fail ? Fail : { start, end: s.pos }\n }\n }\n case \"WithSpan\": {\n const c = this.compile(node.self, true)\n return (s) => {\n const start = s.pos\n const a = c(s)\n return a === Fail ? Fail : [a, { start, end: s.pos }]\n }\n }\n case \"Mode\": {\n const c = this.compile(node.self, used)\n const from = node.from\n const to = node.to\n return (s) => {\n const a = c(s)\n if (a === Fail && s.mode === from) s.mode = to\n return a\n }\n }\n case \"Context\":\n case \"Expected\":\n case \"MapError\":\n case \"OrFail\":\n case \"Trace\":\n case \"Syntax\":\n case \"RetryAfter\":\n // Diagnostics only, or inactive outside parseRecoverable / tracing\n return this.compile(node.self, used)\n case \"ResumeAfter\": {\n const c = this.compile(node.self, used)\n if (!used) return c\n return (s) => {\n const a = c(s)\n return a === Fail ? Fail : Option.some(a)\n }\n }\n case \"Opt\":\n case \"OrElseSucceed\": {\n const c = this.compile(node.self, used)\n const orElse = !used ? undefined : node._tag === \"Opt\" ? Option.none : node.value\n const some = used && node._tag === \"Opt\"\n return (s) => {\n const start = s.pos\n const a = c(s)\n if (a !== Fail) return some ? Option.some(a) : a\n if (s.mode !== BT) return Fail\n s.pos = start\n return orElse === undefined ? undefined : orElse()\n }\n }\n case \"Peek\": {\n const c = this.compile(node.self, used)\n return (s) => {\n const start = s.pos\n const a = c(s)\n if (a !== Fail) s.pos = start\n return a\n }\n }\n case \"Not\": {\n const c = this.compile(node.self, false)\n return (s) => {\n const start = s.pos\n if (c(s) !== Fail) {\n s.pos = start\n s.mode = BT\n return Fail\n }\n if (s.mode !== BT) return Fail\n s.pos = start\n return undefined\n }\n }\n case \"Seq\":\n return this.seq(node, used)\n case \"Struct\": {\n const keys = node.keys\n const steps = node.parsers.map((q) => this.compile(q, used))\n const n = steps.length\n if (!used) return this.chain(steps)\n return (s) => {\n const out: Record<string, unknown> = {}\n for (let i = 0; i < n; i++) {\n const a = steps[i](s)\n if (a === Fail) return Fail\n out[keys[i]] = a\n }\n return out\n }\n }\n case \"ZipWith\": {\n const c1 = this.compile(node.self, used)\n const c2 = this.compile(node.that, used)\n if (!used) return this.chain([c1, c2])\n const f = node.f\n return (s) => {\n const a = c1(s)\n if (a === Fail) return Fail\n const b = c2(s)\n return b === Fail ? Fail : f(a, b)\n }\n }\n case \"Alt\":\n return this.alt(node, used)\n case \"Dispatch\":\n return this.dispatch(p, node, used)\n case \"Repeat\":\n case \"Fold\":\n return this.repeat(node, used)\n case \"RepeatTill\":\n return this.repeatTill(node)\n case \"Separated\":\n return this.separated(node, used)\n case \"SeparatedFold\":\n return this.separatedFold(node)\n case \"Service\":\n case \"Provide\":\n return this.fallback(p, node, \"services stay interpreted\")\n }\n }\n\n /** Runs steps in order, for their effect on the cursor only. */\n chain(steps: ReadonlyArray<Step>): Step {\n const n = steps.length\n if (n === 0) return () => undefined\n if (n === 1) return steps[0]\n if (n === 2) {\n const [a, b] = steps as [Step, Step]\n return (s) => (a(s) === Fail ? Fail : b(s))\n }\n return (s) => {\n for (let i = 0; i < n; i++) if (steps[i](s) === Fail) return Fail\n return undefined\n }\n }\n\n seq(node: NodeOf<\"Seq\">, used: boolean): Step {\n const output = node.output\n const keep = (i: number) =>\n used && (output === \"tuple\" || output === i || (Array.isArray(output) && output.includes(i)))\n const steps = node.parsers.map((q, i) => this.compile(q, keep(i)))\n const n = steps.length\n if (!used) return this.chain(steps)\n if (output === \"tuple\") {\n return (s) => {\n const out = new Array(n)\n for (let i = 0; i < n; i++) {\n const a = steps[i](s)\n if (a === Fail) return Fail\n out[i] = a\n }\n return out\n }\n }\n if (Predicate.isNumber(output)) {\n if (n === 2) {\n const [a, b] = steps as [Step, Step]\n return output === 0\n ? (s) => {\n const x = a(s)\n if (x === Fail) return Fail\n return b(s) === Fail ? Fail : x\n }\n : (s) => (a(s) === Fail ? Fail : b(s))\n }\n return (s) => {\n let out: unknown\n for (let i = 0; i < n; i++) {\n const a = steps[i](s)\n if (a === Fail) return Fail\n if (i === output) out = a\n }\n return out\n }\n }\n const [i0, i1] = output\n return (s) => {\n let x: unknown\n let y: unknown\n for (let i = 0; i < n; i++) {\n const a = steps[i](s)\n if (a === Fail) return Fail\n if (i === i0) x = a\n else if (i === i1) y = a\n }\n return [x, y]\n }\n }\n\n /** The unit at the cursor, or -1 at the end of the input. */\n private unitReader(): (s: State<any>) => number {\n return this.kind === 0\n ? (s) => (s.pos < s.end ? (s.input as string).charCodeAt(s.pos) : -1)\n : (s) => (s.pos < s.end ? (s.input as Uint8Array)[s.pos] : -1)\n }\n\n alt(node: NodeOf<\"Alt\">, used: boolean): Step {\n const steps = node.parsers.map((q) => this.compile(q, used))\n const n = steps.length\n if (n === 0) {\n return (s) => {\n s.mode = BT\n return Fail\n }\n }\n if (n === 1) return steps[0]\n const plan: AltPlan | undefined = this.kind === 2 ? undefined : planAlt(node.parsers.map((q) => this.firsts.of(q)))\n if (plan === undefined) {\n return (s) => {\n const start = s.pos\n for (let i = 0; i < n; i++) {\n const a = steps[i](s)\n if (a !== Fail) return a\n if (s.mode !== BT) return Fail\n s.pos = start\n }\n s.mode = BT\n return Fail\n }\n }\n const lists = plan.lists.map((l) => l.map((i) => steps[i]))\n const { byUnit, end, high } = plan\n const unit = this.unitReader()\n const resumable = this.resumable\n return (s) => {\n // Near the end of a partial input, branches may be incomplete rather than fail\n const u = resumable && s.partial && s.pos + Margin > s.end ? -2 : unit(s)\n const candidates = u === -2 ? steps : lists[u < 0 ? end : u < TableSize ? byUnit[u] : high]\n const start = s.pos\n for (let i = 0; i < candidates.length; i++) {\n const a = candidates[i](s)\n if (a !== Fail) return a\n if (s.mode !== BT) return Fail\n s.pos = start\n }\n s.mode = BT\n return Fail\n }\n }\n\n dispatch(p: ParserLike, node: NodeOf<\"Dispatch\">, used: boolean): Step {\n const selector = this.compile(node.selector, true)\n const choose = node.choose\n const compiled = new Map<ParserLike, Step>()\n if (node.cases !== undefined) {\n for (const key of Reflect.ownKeys(node.cases)) {\n const q = node.cases[key as any]\n if (!compiled.has(q)) compiled.set(q, this.compile(q, used))\n }\n }\n if (node.otherwise !== undefined && !compiled.has(node.otherwise)) {\n compiled.set(node.otherwise, this.compile(node.otherwise, used))\n }\n const general: Step = (s) => {\n const start = s.pos\n const key = selector(s)\n if (key === Fail) return Fail\n const q = choose(key)\n if (q === undefined) {\n s.pos = start\n s.mode = BT\n return Fail\n }\n return (compiled.get(q) ?? q.step)(s)\n }\n if (node.cases === undefined) {\n this.note(p, node, \"the parser returned by the function of cases runs interpreted\")\n return general\n }\n // Switch on the next unit when the selector is `any` or `peek(any)`\n let sel = nodeOf(node.selector)\n const peek = sel._tag === \"Peek\"\n if (peek) sel = nodeOf((sel as NodeOf<\"Peek\">).self)\n if (sel._tag !== \"Any\" || !this.native(sel.encoding)) return general\n const enc = sel.encoding\n // Units below `limit` are whole tokens, so the key is known in advance\n const limit = enc === undefined ? (this.kind === 0 ? 0xd800 : TableSize) : Math.min(fastLimit(enc), 0xd800)\n const size = Math.min(limit, TableSize)\n if (size === 0) return general\n const table: Array<Step | null> = []\n for (let u = 0; u < size; u++) {\n const key = enc === undefined && this.kind === 1 ? u : charOf(u)\n const q = choose(key)\n table.push(q === undefined ? null : (compiled.get(q) ?? q.step))\n }\n const unit = this.unitReader()\n const advance = peek ? 0 : 1\n const resumable = this.resumable\n return (s) => {\n if (resumable && s.partial && s.pos + Margin > s.end) return general(s)\n const u = unit(s)\n if (u < 0) {\n s.mode = BT\n return Fail\n }\n if (u >= size) return general(s)\n const q = table[u]\n if (q === null) {\n s.mode = BT\n return Fail\n }\n s.pos += advance\n return q(s)\n }\n }\n\n repeat(node: NodeOf<\"Repeat\"> | NodeOf<\"Fold\">, used: boolean): Step {\n const { max, min } = node\n const checkLoop = max === Infinity\n const isFold = node._tag === \"Fold\"\n const cond = isFold ? (node as NodeOf<\"Fold\">).while : undefined\n const c = this.compile(node.self, used)\n const resumable = this.resumable\n const key = {}\n // The accumulator: an array, the fold's value, or nothing when unused (and unneeded by `while`)\n const tracked = used || cond !== undefined\n const init: () => unknown = !tracked ? () => undefined : isFold ? (node as NodeOf<\"Fold\">).init : () => []\n const add: (acc: any, a: unknown) => unknown = !tracked\n ? (acc) => acc\n : isFold\n ? (node as NodeOf<\"Fold\">).f\n : (acc, a) => {\n acc.push(a)\n return acc\n }\n return (s) => {\n const entry = s.pos\n let acc: unknown\n let count = 0\n let resumed = false\n if (resumable && s.resume !== undefined) {\n const cp = Resume.take(s, key, entry) as Resume.Done | { acc: unknown; count: number; pos: number } | undefined\n if (cp instanceof Resume.Done) {\n s.pos = cp.pos\n return cp.value\n }\n if (cp !== undefined) {\n acc = cp.acc\n count = cp.count\n s.pos = cp.pos\n resumed = true\n }\n }\n if (!resumed) acc = init()\n for (; count < max; count++) {\n if (cond !== undefined && count >= min && !cond(acc)) break\n const start = s.pos\n const a = c(s)\n if (a === Fail) {\n if (s.mode === INC && s.resume !== undefined) Resume.save(s, key, entry, { acc, count, pos: start })\n if (s.mode !== BT || count < min) return Fail\n s.pos = start\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n if (checkLoop && s.pos === start) {\n s.mode = CUT\n return Fail\n }\n acc = add(acc, a)\n }\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n }\n\n /**\n * `map(self, Object.fromEntries)`, where `buildsEntries(self)`: builds the\n * object directly (see the JIT).\n */\n private entries(p: ParserLike): Step {\n const node = nodeOf(p)\n switch (node._tag) {\n case \"Mode\": {\n const c = this.entries(node.self)\n const from = node.from\n const to = node.to\n return (s) => {\n const a = c(s)\n if (a === Fail && s.mode === from) s.mode = to\n return a\n }\n }\n case \"Seq\": {\n const i = node.output as number\n const steps = node.parsers.map((q, j) => (j === i ? this.entries(q) : this.compile(q, false)))\n return (s) => {\n let out: unknown\n for (let j = 0; j < steps.length; j++) {\n const a = steps[j](s)\n if (a === Fail) return Fail\n if (j === i) out = a\n }\n return out\n }\n }\n case \"Repeat\":\n case \"Separated\": {\n const pair = pairOf(node.self)\n if (pair !== undefined) return this.entriesLoop(node, pair)\n // Not reached (`buildsEntries` found the pair): build the pairs, then the object\n const c = this.compile(p, true)\n return (s) => {\n const a = c(s)\n return a === Fail ? Fail : fromEntries(a as Iterable<readonly [PropertyKey, unknown]>)\n }\n }\n default:\n return this.entries((node as { readonly self: ParserLike }).self)\n }\n }\n\n private entriesLoop(node: NodeOf<\"Repeat\"> | NodeOf<\"Separated\">, pair: EntryPair): Step {\n const parts = pair.parsers.map((q, j) => this.compile(q, j === pair.key || j === pair.value))\n const { key: ki, value: vi } = pair\n // Parses an entry and adds it to `acc`\n const entry = (s: State<any>, acc: EntriesAcc): boolean => {\n let key: unknown\n let value: unknown\n for (let j = 0; j < parts.length; j++) {\n const a = parts[j](s)\n if (a === Fail) return false\n if (j === ki) key = a\n else if (j === vi) value = a\n }\n acc.add(key, value)\n return true\n }\n const { max, min } = node\n const checkLoop = max === Infinity\n if (node._tag === \"Repeat\") {\n return (s) => {\n const acc = new EntriesAcc()\n for (let count = 0; count < max; count++) {\n const start = s.pos\n let key: unknown\n let value: unknown\n let ok = true\n for (let j = 0; j < parts.length; j++) {\n const a = parts[j](s)\n if (a === Fail) {\n ok = false\n break\n }\n if (j === ki) key = a\n else if (j === vi) value = a\n }\n if (!ok) {\n if (s.mode !== BT || count < min) return Fail\n s.pos = start\n return acc.result()\n }\n if (checkLoop && s.pos === start) {\n s.mode = CUT\n return Fail\n }\n acc.add(key, value)\n }\n return acc.result()\n }\n }\n const sep = this.compile(node.separator, false)\n return (s) => {\n const acc = new EntriesAcc()\n let count = 0\n if (max === 0) return acc.result()\n let start = s.pos\n if (!entry(s, acc)) {\n if (s.mode !== BT || min > 0) return Fail\n s.pos = start\n return acc.result()\n }\n count++\n while (count < max) {\n start = s.pos\n if (sep(s) === Fail) {\n if (s.mode !== BT || count < min) return Fail\n s.pos = start\n return acc.result()\n }\n if (checkLoop && s.pos === start) {\n s.mode = CUT\n return Fail\n }\n if (!entry(s, acc)) {\n if (s.mode !== BT || count < min) return Fail\n s.pos = start\n return acc.result()\n }\n count++\n }\n return acc.result()\n }\n }\n\n repeatTill(node: NodeOf<\"RepeatTill\">): Step {\n const { max, min } = node\n const c = this.compile(node.self, true)\n const end = this.compile(node.end, true)\n return (s) => {\n const acc: Array<unknown> = []\n while (true) {\n const start = s.pos\n if (acc.length >= min) {\n const b = end(s)\n if (b !== Fail) return [acc, b]\n if (s.mode !== BT) return Fail\n s.pos = start\n if (acc.length >= max) return Fail\n }\n const a = c(s)\n if (a === Fail) return Fail\n if (s.pos === start) {\n s.mode = CUT\n return Fail\n }\n acc.push(a)\n }\n }\n }\n\n separated(node: NodeOf<\"Separated\">, used: boolean): Step {\n const { max, min } = node\n const checkLoop = max === Infinity\n const c = this.compile(node.self, used)\n const sep = this.compile(node.separator, false)\n const resumable = this.resumable\n const key = {}\n return (s) => {\n const entry = s.pos\n let acc: Array<unknown> | undefined\n let count = 0\n let resumed = false\n if (resumable && s.resume !== undefined) {\n const cp = Resume.take(s, key, entry) as\n | Resume.Done\n | { acc: Array<unknown>; count: number; pos: number }\n | undefined\n if (cp instanceof Resume.Done) {\n s.pos = cp.pos\n return cp.value\n }\n if (cp !== undefined) {\n acc = cp.acc\n count = cp.count\n s.pos = cp.pos\n resumed = true\n }\n }\n if (!resumed) {\n acc = used ? [] : undefined\n if (max === 0) return acc\n const start = s.pos\n const first = c(s)\n if (first === Fail) {\n if (s.mode !== BT || min > 0) return Fail\n s.pos = start\n return acc\n }\n acc?.push(first)\n count = 1\n }\n while (count < max) {\n const start = s.pos\n if (sep(s) === Fail) {\n if (s.mode === INC && s.resume !== undefined) Resume.save(s, key, entry, { acc, count, pos: start })\n if (s.mode !== BT || count < min) return Fail\n s.pos = start\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n if (checkLoop && s.pos === start) {\n s.mode = CUT\n return Fail\n }\n const a = c(s)\n if (a === Fail) {\n if (s.mode === INC && s.resume !== undefined) Resume.save(s, key, entry, { acc, count, pos: start })\n if (s.mode !== BT || count < min) return Fail\n s.pos = start\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n acc?.push(a)\n count++\n }\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n }\n\n separatedFold(node: NodeOf<\"SeparatedFold\">): Step {\n const c = this.compile(node.self, true)\n const sep = this.compile(node.separator, true)\n const op = node.op\n const resumable = this.resumable\n const key = {}\n if (!node.right) {\n return (s) => {\n const entry = s.pos\n let acc: unknown\n let resumed = false\n if (resumable && s.resume !== undefined) {\n const cp = Resume.take(s, key, entry) as Resume.Done | { acc: unknown; pos: number } | undefined\n if (cp instanceof Resume.Done) {\n s.pos = cp.pos\n return cp.value\n }\n if (cp !== undefined) {\n acc = cp.acc\n s.pos = cp.pos\n resumed = true\n }\n }\n if (!resumed) {\n acc = c(s)\n if (acc === Fail) return Fail\n }\n while (true) {\n const start = s.pos\n const x = sep(s)\n if (x === Fail) {\n if (s.mode === INC && s.resume !== undefined) Resume.save(s, key, entry, { acc, pos: start })\n if (s.mode !== BT) return Fail\n s.pos = start\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n if (s.pos === start) {\n s.mode = CUT\n return Fail\n }\n const a = c(s)\n if (a === Fail) {\n if (s.mode === INC && s.resume !== undefined) Resume.save(s, key, entry, { acc, pos: start })\n if (s.mode !== BT) return Fail\n s.pos = start\n return resumed ? Resume.done(s, key, entry, true, acc) : acc\n }\n acc = op(acc, x, a)\n }\n }\n }\n return (s) => {\n const first = c(s)\n if (first === Fail) return Fail\n const values: Array<unknown> = [first]\n const seps: Array<unknown> = []\n while (true) {\n const start = s.pos\n const x = sep(s)\n if (x === Fail) {\n if (s.mode !== BT) return Fail\n s.pos = start\n break\n }\n if (s.pos === start) {\n s.mode = CUT\n return Fail\n }\n const a = c(s)\n if (a === Fail) {\n if (s.mode !== BT) return Fail\n s.pos = start\n break\n }\n seps.push(x)\n values.push(a)\n }\n let acc = values[values.length - 1]\n for (let i = seps.length - 1; i >= 0; i--) acc = op(values[i], seps[i], acc)\n return acc\n }\n }\n\n // ---------------------------------------------------------------------------\n // Token parsers (`Token`, `Ascii`)\n // ---------------------------------------------------------------------------\n\n token(p: ParserLike, node: TokenNode, used: boolean): Step {\n const kind = this.kind as 0 | 1\n switch (node._tag) {\n case \"Any\":\n if (kind === 1) {\n return (s) => {\n const pos = s.pos\n if (pos >= s.end) return fail(s)\n s.pos = pos + 1\n return (s.input as Uint8Array)[pos]\n }\n }\n return (s) => {\n const pos = s.pos\n if (pos >= s.end) return fail(s)\n const str = s.input as string\n const c = str.charCodeAt(pos)\n if (c >= 0xd800 && c <= 0xdbff && pos + 1 < str.length && (str.charCodeAt(pos + 1) & 0xfc00) === 0xdc00) {\n s.pos = pos + 2\n return used ? str.slice(pos, pos + 2) : undefined\n }\n s.pos = pos + 1\n return used ? str[pos] : undefined\n }\n case \"Literal\":\n return this.tokenLiteral(p, node)\n case \"OneOf\": {\n const set = tokenSet(node.set, kind)\n const negate = node.negate\n const accept = acceptTable(set, negate)\n const test = set.test\n if (kind === 1) {\n return (s) => {\n const pos = s.pos\n if (pos >= s.end) return fail(s)\n const b = (s.input as Uint8Array)[pos]\n if (accept[b] === 0) return fail(s)\n s.pos = pos + 1\n return b\n }\n }\n return (s) => {\n const pos = s.pos\n if (pos >= s.end) return fail(s)\n const str = s.input as string\n const c = str.charCodeAt(pos)\n if (c < TableSize) {\n if (accept[c] === 0) return fail(s)\n s.pos = pos + 1\n return used ? str[pos] : undefined\n }\n let cp = c\n if (c >= 0xd800 && c <= 0xdbff && pos + 1 < str.length) {\n const d = str.charCodeAt(pos + 1)\n if ((d & 0xfc00) === 0xdc00) cp = ((c - 0xd800) << 10) + (d - 0xdc00) + 0x10000\n }\n if (test(cp) === negate) return fail(s)\n const len = cp > 0xffff ? 2 : 1\n s.pos = pos + len\n return !used ? undefined : len === 1 ? str[pos] : str.slice(pos, pos + 2)\n }\n }\n case \"Take\": {\n const count = node.count\n if (kind === 1) {\n return (s) => {\n const start = s.pos\n if (s.end - start < count) return failAt(s, s.end)\n s.pos = start + count\n return used ? (s.input as Uint8Array).subarray(start, start + count) : undefined\n }\n }\n return (s) => {\n const str = s.input as string\n const start = s.pos\n const end = s.end\n let i = start\n let got = 0\n while (got < count && i < end) {\n const c = str.charCodeAt(i)\n i += c >= 0xd800 && c <= 0xdbff && i + 1 < str.length && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00 ? 2 : 1\n got++\n }\n if (got < count) return failAt(s, i)\n s.pos = i\n return used ? str.slice(start, i) : undefined\n }\n }\n case \"TakeWhile\":\n return this.tokenTakeWhile(node, used)\n case \"TakeUntil\": {\n const { literal, max, min } = node\n const bounded = min > 0 || max !== Infinity\n return (s) => {\n const start = s.pos\n const idx = indexOf(s, literal, start)\n if (idx < 0) return failAt(s, s.end)\n if (bounded) {\n const count = countTokens(s, start, idx)\n if (count < min || count > max) return failAt(s, idx)\n }\n s.pos = idx\n return used ? s.slice(start, idx) : undefined\n }\n }\n case \"Rest\":\n return (s) => {\n const start = s.pos\n s.pos = s.end\n return used ? s.slice(start, s.end) : undefined\n }\n }\n }\n\n tokenLiteral(p: ParserLike, node: NodeOf<\"Literal\">): Step {\n const lit = node.literal\n const literalKind = Predicate.isString(lit) ? 0 : lit instanceof Uint8Array ? 1 : 2\n if (this.kind === 0) {\n if (literalKind !== 0) return this.fallback(p, node, \"byte or array literal on string input\")\n const str = lit as string\n const len = str.length\n if (node.caseless) {\n const lowered = Array.from({ length: len }, (_, i) => lowerAscii(str.charCodeAt(i)))\n return (s) => {\n const pos = s.pos\n if (s.end - pos < len) return fail(s)\n const input = s.input as string\n for (let i = 0; i < len; i++) {\n if (lowerAscii(input.charCodeAt(pos + i)) !== lowered[i]) return fail(s)\n }\n s.pos = pos + len\n return input.slice(pos, pos + len)\n }\n }\n return stringLiteral(str, str)\n }\n if (literalKind === 2) return this.fallback(p, node, \"array literal on byte input\")\n const bytes = literalKind === 0 ? new TextEncoder().encode(lit as string) : (lit as Uint8Array)\n const len = bytes.length\n const sameKind = literalKind === 1 && !node.caseless\n const expect = node.caseless ? Array.from(bytes, lowerAscii) : Array.from(bytes)\n const caseless = node.caseless\n return (s) => {\n const pos = s.pos\n if (s.end - pos < len) return fail(s)\n const input = s.input as Uint8Array\n for (let i = 0; i < len; i++) {\n const b = input[pos + i]\n if ((caseless ? lowerAscii(b) : b) !== expect[i]) return fail(s)\n }\n s.pos = pos + len\n return sameKind ? lit : input.subarray(pos, pos + len)\n }\n }\n\n tokenTakeWhile(node: NodeOf<\"TakeWhile\">, used: boolean): Step {\n const kind = this.kind as 0 | 1\n const { max, min, negate } = node\n const set = tokenSet(node.set, kind)\n const accept = acceptTable(set, negate)\n if (kind === 1) {\n return (s) => {\n const bytes = s.input as Uint8Array\n const start = s.pos\n const limit = max === Infinity ? s.end : Math.min(s.end, start + max)\n let i = start\n while (i < limit && accept[bytes[i]] === 1) i++\n if (i - start < min) return failAt(s, i)\n s.pos = i\n return used ? bytes.subarray(start, i) : undefined\n }\n }\n const test = set.test\n return (s) => {\n const str = s.input as string\n const start = s.pos\n const end = s.end\n let i = start\n let count = 0\n while (count < max && i < end) {\n const c = str.charCodeAt(i)\n if (c < TableSize) {\n if (accept[c] === 0) break\n i++\n } else if (c < 0xd800 || c > 0xdbff) {\n if (test(c) === negate) break\n i++\n } else {\n let cp = c\n if (i + 1 < str.length) {\n const d = str.charCodeAt(i + 1)\n if ((d & 0xfc00) === 0xdc00) cp = ((c - 0xd800) << 10) + (d - 0xdc00) + 0x10000\n }\n if (test(cp) === negate) break\n i += cp > 0xffff ? 2 : 1\n }\n count++\n }\n if (count < min) return failAt(s, i)\n s.pos = i\n return used ? str.slice(start, i) : undefined\n }\n }\n\n // ---------------------------------------------------------------------------\n // Text parsers, specialized per encoding\n // ---------------------------------------------------------------------------\n\n text(p: ParserLike, node: TokenNode, enc: Encoding<any>, used: boolean): Step {\n const kind = this.kind as 0 | 1\n const fast = fastLimit(enc)\n const decode = enc.decode\n const width = enc.width\n const toText = enc.text\n const unitAt: (input: any, i: number) => number =\n kind === 0 ? (input: string, i) => input.charCodeAt(i) : (input: Uint8Array, i) => input[i]\n switch (node._tag) {\n case \"Any\":\n return (s) => {\n const pos = s.pos\n const end = s.end\n if (pos >= end) return fail(s)\n const c = unitAt(s.input, pos)\n if (c < fast) {\n s.pos = pos + 1\n return used ? charOf(c) : undefined\n }\n const cp = decode(s.input, pos, end)\n if (cp < 0) return fail(s)\n s.pos = pos + width(cp)\n return used ? charOf(cp) : undefined\n }\n case \"Literal\": {\n const lit = node.literal as string\n if (node.caseless) {\n const folded = Array.from(lit, (c) => fold(firstCodePoint(c)))\n const n = folded.length\n return (s) => {\n const start = s.pos\n const end = s.end\n const input = s.input\n let pos = start\n for (let i = 0; i < n; i++) {\n if (pos >= end) return failAt(s, pos)\n const c = unitAt(input, pos)\n let cp: number\n if (c < fast) {\n cp = c\n pos++\n } else {\n cp = decode(input, pos, end)\n if (cp < 0) return failAt(s, pos)\n pos += width(cp)\n }\n if (fold(cp) !== folded[i]) return failAt(s, pos)\n }\n s.pos = pos\n return used ? toText(input, start, pos) : undefined\n }\n }\n const encoded = enc.encode(lit)\n if (Predicate.isString(encoded)) return stringLiteral(encoded, lit)\n const bytes = encoded as Uint8Array\n const len = bytes.length\n if (len === 1) {\n const b0 = bytes[0]\n return (s) => {\n const pos = s.pos\n if (pos < s.end && (s.input as Uint8Array)[pos] === b0) {\n s.pos = pos + 1\n return lit\n }\n return fail(s)\n }\n }\n return (s) => {\n const pos = s.pos\n if (s.end - pos < len) return fail(s)\n const input = s.input as Uint8Array\n for (let i = 0; i < len; i++) if (input[pos + i] !== bytes[i]) return fail(s)\n s.pos = pos + len\n return lit\n }\n }\n case \"OneOf\": {\n const set = textSet(node.set)\n const negate = node.negate\n const accept = acceptTable(set, negate)\n const test = set.test\n return (s) => {\n const pos = s.pos\n const end = s.end\n if (pos >= end) return fail(s)\n const c = unitAt(s.input, pos)\n if (c < fast && c < TableSize) {\n if (accept[c] === 0) return fail(s)\n s.pos = pos + 1\n return used ? charOf(c) : undefined\n }\n const cp = c < fast ? c : decode(s.input, pos, end)\n if (cp < 0 || test(cp) === negate) return fail(s)\n s.pos = pos + (c < fast ? 1 : width(cp))\n return used ? charOf(cp) : undefined\n }\n }\n case \"Take\": {\n const count = node.count\n return (s) => {\n const start = s.pos\n const end = s.end\n const input = s.input\n let pos = start\n for (let got = 0; got < count; got++) {\n if (pos >= end) return failAt(s, pos)\n const c = unitAt(input, pos)\n if (c < fast) pos++\n else {\n const cp = decode(input, pos, end)\n if (cp < 0) return failAt(s, pos)\n pos += width(cp)\n }\n }\n s.pos = pos\n return used ? toText(input, start, pos) : undefined\n }\n }\n case \"TakeWhile\": {\n const { max, min, negate } = node\n const set = textSet(node.set)\n const accept = acceptTable(set, negate)\n const test = set.test\n const small = Math.min(fast, TableSize)\n return (s) => {\n const input = s.input\n const start = s.pos\n const end = s.end\n let i = start\n let count = 0\n while (count < max && i < end) {\n const c = unitAt(input, i)\n if (c < small) {\n if (accept[c] === 0) break\n i++\n } else if (c < fast) {\n if (test(c) === negate) break\n i++\n } else {\n const cp = decode(input, i, end)\n if (cp < 0 || test(cp) === negate) break\n i += width(cp)\n }\n count++\n }\n if (count < min) return failAt(s, i)\n s.pos = i\n return used ? toText(input, start, i) : undefined\n }\n }\n case \"TakeUntil\":\n case \"Rest\":\n return this.fallback(p, node, \"Text parser without a compiled form\")\n }\n }\n\n taken(node: NodeOf<\"Taken\">, used: boolean): Step {\n const c = this.compile(node.self, false)\n const enc = node.encoding\n if (enc === undefined) {\n if (!used) return c\n if (this.kind === 0) {\n return (s) => {\n const start = s.pos\n return c(s) === Fail ? Fail : (s.input as string).slice(start, s.pos)\n }\n }\n return (s) => {\n const start = s.pos\n return c(s) === Fail ? Fail : s.slice(start, s.pos)\n }\n }\n // `Text.taken` checks that the text is well formed, then decodes it\n const fast = fastLimit(enc)\n const toText = enc.text\n const unitAt: (input: any, i: number) => number =\n this.kind === 0 ? (input: string, i) => input.charCodeAt(i) : (input: Uint8Array, i) => input[i]\n return (s) => {\n const start = s.pos\n if (c(s) === Fail) return Fail\n const end = s.pos\n const input = s.input\n let i = start\n while (i < end && unitAt(input, i) < fast) i++\n if (i < end && validate(enc, s, i, end) < 0) return fail(s)\n return used ? toText(input, start, end) : undefined\n }\n }\n\n /**\n * `Ascii.float` and `Text.float` (`map(floatText, toFloat)`): numbers in\n * decimal notation are matched and converted in one pass, without\n * slicing the input; the rest runs the compiled parser (see the JIT).\n */\n private float(node: NodeOf<\"Map\">): Step | undefined {\n if (!floatTexts.has(node.self) || this.kind === 2) return undefined\n let taken = nodeOf(node.self)\n while (taken._tag === \"Expected\") taken = nodeOf(taken.self)\n if (taken._tag !== \"Taken\") return undefined\n const enc = taken.encoding\n if (enc !== undefined && !(this.native(enc) && enc.unit === 1 && enc.asciiCompatible)) return undefined\n const c = this.compile(node.self, true)\n const scan = (this.kind === 0 ? scanFloatString : scanFloatBytes) as (\n input: unknown,\n i: number,\n end: number\n ) => unknown\n const resumable = this.resumable\n return (s) => {\n const v = scan(s.input, s.pos, s.end)\n // Near the end of a partial input, the parser may have to report `Incomplete`\n if (v === undefined || (resumable && s.partial && floatScan.read + Margin > s.end)) {\n const t = c(s)\n return t === Fail ? Fail : toFloat(t)\n }\n if (v === Fail) return fail(s)\n s.pos = floatScan.end\n return v\n }\n }\n\n escaped(node: NodeOf<\"Escaped\">): Step {\n const raw = node.raw\n const normal = this.compile(node.normal, !raw)\n const escape = this.compile(node.escape, !raw)\n const enc = node.encoding\n const ctrl = node.control\n const kind = this.kind\n // Matches the control character, advancing past it\n let control: (s: State<any>) => boolean\n if (enc === undefined || (ctrl < fastLimit(enc) && ctrl < TableSize)) {\n control =\n kind === 0\n ? (s) => {\n if (s.pos < s.end && (s.input as string).charCodeAt(s.pos) === ctrl) {\n s.pos++\n return true\n }\n return false\n }\n : (s) => {\n if (s.pos < s.end && (s.input as Uint8Array)[s.pos] === ctrl) {\n s.pos++\n return true\n }\n return false\n }\n } else {\n control = (s) => {\n if (s.pos >= s.end) return false\n const cp = enc.decode(s.input, s.pos, s.end)\n if (cp !== ctrl) return false\n s.pos += enc.width(cp)\n return true\n }\n }\n const resumable = this.resumable\n const key = {}\n /** Fails as incomplete, keeping a checkpoint in a streaming parse. */\n const incomplete = (s: State<any>, start: number, checkpoint: unknown): typeof Fail => {\n if (s.resume !== undefined) Resume.save(s, key, start, checkpoint)\n s.mode = INC\n return Fail\n }\n if (raw) {\n const slice: (s: State<any>, start: number) => unknown =\n enc === undefined ? (s, start) => s.slice(start, s.pos) : (s, start) => enc.text(s.input, start, s.pos)\n return (s) => {\n const start = s.pos\n let resumed = false\n if (resumable && s.resume !== undefined) {\n const cp = Resume.take(s, key, start) as Resume.Done | number | undefined\n if (cp instanceof Resume.Done) {\n s.pos = cp.pos\n return cp.value\n }\n if (cp !== undefined) {\n s.pos = cp\n resumed = true\n }\n }\n while (s.pos < s.end) {\n const before = s.pos\n if (normal(s) !== Fail) {\n if (s.pos === before) {\n s.mode = CUT\n return Fail\n }\n continue\n }\n if (s.mode === INC) return incomplete(s, start, before)\n if (s.mode !== BT) return Fail\n s.pos = before\n if (control(s)) {\n if (escape(s) === Fail) return s.mode === INC ? incomplete(s, start, before) : Fail\n } else {\n return resumed ? Resume.done(s, key, start, true, slice(s, start)) : slice(s, start)\n }\n }\n if (s.partial) return incomplete(s, start, s.pos)\n return resumed ? Resume.done(s, key, start, true, slice(s, start)) : slice(s, start)\n }\n }\n return (s) => {\n const start = s.pos\n let out = \"\"\n let resumed = false\n if (resumable && s.resume !== undefined) {\n const cp = Resume.take(s, key, start) as Resume.Done | { out: string; pos: number } | undefined\n if (cp instanceof Resume.Done) {\n s.pos = cp.pos\n return cp.value\n }\n if (cp !== undefined) {\n out = cp.out\n s.pos = cp.pos\n resumed = true\n }\n }\n while (s.pos < s.end) {\n const before = s.pos\n const a = normal(s)\n if (a !== Fail) {\n if (s.pos !== before) {\n out += a\n continue\n }\n } else {\n if (s.mode === INC) return incomplete(s, start, { out, pos: before })\n if (s.mode !== BT) return Fail\n s.pos = before\n }\n if (control(s)) {\n const b = escape(s)\n if (b === Fail) return s.mode === INC ? incomplete(s, start, { out, pos: before }) : Fail\n out += b\n } else {\n return resumed ? Resume.done(s, key, start, true, out) : out\n }\n }\n if (s.partial) return incomplete(s, start, { out, pos: s.pos })\n return resumed ? Resume.done(s, key, start, true, out) : out\n }\n }\n}\n\ntype TokenNode = NodeOf<\"Any\" | \"Literal\" | \"OneOf\" | \"Take\" | \"TakeWhile\" | \"TakeUntil\" | \"Rest\">\n\nconst fail = (s: State<any>): typeof Fail => {\n s.mode = BT\n return Fail\n}\n\n/** Fails, leaving the cursor at `pos`: how far a token parser read (see `partialSafe`). */\nconst failAt = (s: State<any>, pos: number): typeof Fail => {\n s.pos = pos\n s.mode = BT\n return Fail\n}\n\n/** 1 where a small code is accepted (taking `negate` into account). */\nconst acceptTable = (set: CharSet, negate: boolean): Uint8Array => {\n const t = new Uint8Array(TableSize)\n for (let c = 0; c < TableSize; c++) t[c] = (set.table[c] === 1) !== negate ? 1 : 0\n return t\n}\n\n/** A literal matched against a string input, returning `value`. */\nconst stringLiteral = (str: string, value: unknown): Step => {\n const len = str.length\n if (len === 0) return () => value\n if (len === 1) {\n const c0 = str.charCodeAt(0)\n return (s) => {\n const pos = s.pos\n if (pos < s.end && (s.input as string).charCodeAt(pos) === c0) {\n s.pos = pos + 1\n return value\n }\n return fail(s)\n }\n }\n return (s) => {\n const pos = s.pos\n if (s.end - pos >= len && (s.input as string).startsWith(str, pos)) {\n s.pos = pos + len\n return value\n }\n return fail(s)\n }\n}\n\n/** A closure compiler for one input kind; it memoizes what it compiles. */\n/** The object of `Object.fromEntries`, built an entry at a time (see `internal/entries.ts`). */\nclass EntriesAcc {\n readonly o: Record<string, unknown> = {}\n deferred: Array<unknown> | undefined = undefined\n add(key: unknown, value: unknown): void {\n if (this.deferred === undefined && isPlainKey(key)) this.o[key] = value\n else this.deferred = addEntry(this.o, this.deferred, key, value)\n }\n result(): object {\n if (this.deferred !== undefined) flushEntries(this.o, this.deferred)\n return this.o\n }\n}\n\nexport interface ClosureCompiler {\n readonly compile: (p: ParserLike, used: boolean) => Step\n readonly note: (p: ParserLike, node: Node, reason: string) => void\n readonly firsts: FirstSets\n readonly fallbacks: ReadonlyArray<Fallback>\n}\n\nexport const createClosureCompiler = (kind: 0 | 1 | 2, resumable = false): ClosureCompiler => {\n const compiler = new Compiler(kind, resumable)\n return {\n compile: (p, used) => compiler.compile(p, used),\n note: (p, node, reason) => compiler.note(p, node, reason),\n firsts: compiler.firsts,\n fallbacks: compiler.fallbacks\n }\n}\n\n/** Compiles a root parser for one input kind. */\nconst compileClosure = (\n root: ParserLike,\n kind: 0 | 1 | 2,\n resumable = false\n): { readonly step: Step; readonly fallbacks: ReadonlyArray<Fallback> } => {\n const compiler = new Compiler(kind, resumable)\n const step = compiler.compile(root, true)\n return { step, fallbacks: compiler.fallbacks }\n}\n\n/** The closure compiler as a backend. */\nexport const backend: Backend = {\n build: (p, kind, resumable) => {\n try {\n const { fallbacks, step } = compileClosure(p, kind, resumable)\n return { backend: \"closure\", step, fallbacks, error: undefined }\n } catch (error) {\n return { backend: undefined, step: undefined, fallbacks: [], error }\n }\n }\n}\n"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- /**
2
- * The shapes of `map(p, Object.fromEntries)` that the compilers build
3
- * directly (see `internal/entries.ts`).
4
- */
5
- import type { ParserLike } from "../node.js";
1
+ import { ParserLike } from "../node.js";
2
+ //#region src/internal/compiler/entries.d.ts
3
+ /** A sequence that yields an entry: its parsers, and which of them produce the key and the value. */
4
+ export interface EntryPair {
5
+ readonly parsers: ReadonlyArray<ParserLike>;
6
+ readonly key: number;
7
+ readonly value: number;
8
+ }
6
9
  /** A repeated pair for `Object.fromEntries`: the sequence and the indices of its key and value. */
7
- export declare const pairOf: (p: ParserLike) => {
8
- readonly parsers: ReadonlyArray<ParserLike>;
9
- readonly key: number;
10
- readonly value: number;
11
- } | undefined;
10
+ export declare const pairOf: (p: ParserLike) => EntryPair | undefined;
12
11
  /**
13
12
  * Whether `map(p, Object.fromEntries)` can build its object directly: `p`
14
13
  * is a `repeat` or `separated` of a pair, possibly inside `cut`, the kept
15
14
  * element of a sequence (`preceded`, `terminated`, `delimited`) and
16
15
  * diagnostics.
17
16
  */
18
- export declare const entriesShape: (p: ParserLike) => boolean;
17
+ export declare const buildsEntries: (p: ParserLike) => boolean;
18
+ //#endregion
19
19
  //# sourceMappingURL=entries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/internal/compiler/entries.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,YAAY,CAAA;AAG1D,mGAAmG;AACnG,eAAO,MAAM,MAAM,MAAO,UAAU,KAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAQtI,CAAA;AAQD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,MAAO,UAAU,KAAG,OAK5C,CAAA"}
1
+ {"version":3,"file":"entries.d.ts","names":[],"sources":["../../../src/internal/compiler/entries.ts"],"mappings":";;;iBASiB;WACN,SAAS,cAAc;WACvB;WACA;;;qBAIE,SAAU,GAAG,eAAa;;;;;;;qBA2B1B,gBAAiB,GAAG"}
@@ -1,32 +1,42 @@
1
+ import * as Predicate from "effect/Predicate";
1
2
  import { nodeOf } from "../node.js";
3
+ //#region src/internal/compiler/entries.ts
4
+ /**
5
+ * The shapes of `map(p, Object.fromEntries)` that the compilers build
6
+ * directly (see `internal/entries.ts`).
7
+ */
2
8
  /** A repeated pair for `Object.fromEntries`: the sequence and the indices of its key and value. */
3
- export const pairOf = (p) => {
4
- let node = nodeOf(p);
5
- while (isDiagnostic(node))
6
- node = nodeOf(node.self);
7
- if (node._tag !== "Seq")
8
- return undefined;
9
- const output = node.output;
10
- if (output === "tuple")
11
- return node.parsers.length === 2 ? { parsers: node.parsers, key: 0, value: 1 } : undefined;
12
- if (typeof output === "number" || output[0] === output[1])
13
- return undefined;
14
- return { parsers: node.parsers, key: output[0], value: output[1] };
9
+ const pairOf = (p) => {
10
+ let node = nodeOf(p);
11
+ while (isDiagnostic(node)) node = nodeOf(node.self);
12
+ if (node._tag !== "Seq") return void 0;
13
+ const output = node.output;
14
+ if (output === "tuple") return node.parsers.length === 2 ? {
15
+ parsers: node.parsers,
16
+ key: 0,
17
+ value: 1
18
+ } : void 0;
19
+ if (Predicate.isNumber(output) || output[0] === output[1]) return void 0;
20
+ return {
21
+ parsers: node.parsers,
22
+ key: output[0],
23
+ value: output[1]
24
+ };
15
25
  };
16
- const isDiagnostic = (node) => node._tag === "Context" || node._tag === "Expected" || node._tag === "MapError" || node._tag === "OrFail" ||
17
- node._tag === "Trace" || node._tag === "RetryAfter";
26
+ const isDiagnostic = (node) => node._tag === "Context" || node._tag === "Expected" || node._tag === "MapError" || node._tag === "OrFail" || node._tag === "Trace" || node._tag === "Syntax" || node._tag === "RetryAfter";
18
27
  /**
19
- * Whether `map(p, Object.fromEntries)` can build its object directly: `p`
20
- * is a `repeat` or `separated` of a pair, possibly inside `cut`, the kept
21
- * element of a sequence (`preceded`, `terminated`, `delimited`) and
22
- * diagnostics.
23
- */
24
- export const entriesShape = (p) => {
25
- const node = nodeOf(p);
26
- if (isDiagnostic(node) || node._tag === "Mode")
27
- return entriesShape(node.self);
28
- if (node._tag === "Seq")
29
- return typeof node.output === "number" && entriesShape(node.parsers[node.output]);
30
- return (node._tag === "Repeat" || node._tag === "Separated") && pairOf(node.self) !== undefined;
28
+ * Whether `map(p, Object.fromEntries)` can build its object directly: `p`
29
+ * is a `repeat` or `separated` of a pair, possibly inside `cut`, the kept
30
+ * element of a sequence (`preceded`, `terminated`, `delimited`) and
31
+ * diagnostics.
32
+ */
33
+ const buildsEntries = (p) => {
34
+ const node = nodeOf(p);
35
+ if (isDiagnostic(node) || node._tag === "Mode") return buildsEntries(node.self);
36
+ if (node._tag === "Seq") return Predicate.isNumber(node.output) && buildsEntries(node.parsers[node.output]);
37
+ return (node._tag === "Repeat" || node._tag === "Separated") && pairOf(node.self) !== void 0;
31
38
  };
39
+ //#endregion
40
+ export { buildsEntries, pairOf };
41
+
32
42
  //# sourceMappingURL=entries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../../src/internal/compiler/entries.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,mGAAmG;AACnG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAa,EAA6G,EAAE;IACjJ,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACpB,OAAO,YAAY,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAClH,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3E,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;AACpE,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CACnB,IAAU,EAC+E,EAAE,CAC3F,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;IACzG,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAAA;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAa,EAAW,EAAE;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9E,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAA;IAC3G,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,CAAA;AACjG,CAAC,CAAA"}
1
+ {"version":3,"file":"entries.js","names":[],"sources":["../../../src/internal/compiler/entries.ts"],"sourcesContent":["/**\n * The shapes of `map(p, Object.fromEntries)` that the compilers build\n * directly (see `internal/entries.ts`).\n */\nimport * as Predicate from \"effect/Predicate\"\nimport type { Node, NodeOf, ParserLike } from \"../node.js\"\nimport { nodeOf } from \"../node.js\"\n\n/** A sequence that yields an entry: its parsers, and which of them produce the key and the value. */\nexport interface EntryPair {\n readonly parsers: ReadonlyArray<ParserLike>\n readonly key: number\n readonly value: number\n}\n\n/** A repeated pair for `Object.fromEntries`: the sequence and the indices of its key and value. */\nexport const pairOf = (p: ParserLike): EntryPair | undefined => {\n let node = nodeOf(p)\n while (isDiagnostic(node)) node = nodeOf(node.self)\n if (node._tag !== \"Seq\") return undefined\n const output = node.output\n if (output === \"tuple\") return node.parsers.length === 2 ? { parsers: node.parsers, key: 0, value: 1 } : undefined\n if (Predicate.isNumber(output) || output[0] === output[1]) return undefined\n return { parsers: node.parsers, key: output[0], value: output[1] }\n}\n\nconst isDiagnostic = (\n node: Node\n): node is NodeOf<\"Context\" | \"Expected\" | \"MapError\" | \"OrFail\" | \"Trace\" | \"Syntax\" | \"RetryAfter\"> =>\n node._tag === \"Context\" ||\n node._tag === \"Expected\" ||\n node._tag === \"MapError\" ||\n node._tag === \"OrFail\" ||\n node._tag === \"Trace\" ||\n node._tag === \"Syntax\" ||\n node._tag === \"RetryAfter\"\n\n/**\n * Whether `map(p, Object.fromEntries)` can build its object directly: `p`\n * is a `repeat` or `separated` of a pair, possibly inside `cut`, the kept\n * element of a sequence (`preceded`, `terminated`, `delimited`) and\n * diagnostics.\n */\nexport const buildsEntries = (p: ParserLike): boolean => {\n const node = nodeOf(p)\n if (isDiagnostic(node) || node._tag === \"Mode\") return buildsEntries(node.self)\n if (node._tag === \"Seq\") return Predicate.isNumber(node.output) && buildsEntries(node.parsers[node.output])\n return (node._tag === \"Repeat\" || node._tag === \"Separated\") && pairOf(node.self) !== undefined\n}\n"],"mappings":";;;;;;;;AAgBA,MAAa,UAAU,MAAyC;CAC9D,IAAI,OAAO,OAAO,CAAC;CACnB,OAAO,aAAa,IAAI,GAAG,OAAO,OAAO,KAAK,IAAI;CAClD,IAAI,KAAK,SAAS,OAAO,OAAO,KAAA;CAChC,MAAM,SAAS,KAAK;CACpB,IAAI,WAAW,SAAS,OAAO,KAAK,QAAQ,WAAW,IAAI;EAAE,SAAS,KAAK;EAAS,KAAK;EAAG,OAAO;CAAE,IAAI,KAAA;CACzG,IAAI,UAAU,SAAS,MAAM,KAAK,OAAO,OAAO,OAAO,IAAI,OAAO,KAAA;CAClE,OAAO;EAAE,SAAS,KAAK;EAAS,KAAK,OAAO;EAAI,OAAO,OAAO;CAAG;AACnE;AAEA,MAAM,gBACJ,SAEA,KAAK,SAAS,aACd,KAAK,SAAS,cACd,KAAK,SAAS,cACd,KAAK,SAAS,YACd,KAAK,SAAS,WACd,KAAK,SAAS,YACd,KAAK,SAAS;;;;;;;AAQhB,MAAa,iBAAiB,MAA2B;CACvD,MAAM,OAAO,OAAO,CAAC;CACrB,IAAI,aAAa,IAAI,KAAK,KAAK,SAAS,QAAQ,OAAO,cAAc,KAAK,IAAI;CAC9E,IAAI,KAAK,SAAS,OAAO,OAAO,UAAU,SAAS,KAAK,MAAM,KAAK,cAAc,KAAK,QAAQ,KAAK,OAAO;CAC1G,QAAQ,KAAK,SAAS,YAAY,KAAK,SAAS,gBAAgB,OAAO,KAAK,IAAI,MAAM,KAAA;AACxF"}
@@ -1,21 +1,20 @@
1
- import type { ParserLike } from "../node.js";
1
+ import { ParserLike } from "../node.js";
2
+ //#region src/internal/compiler/first.d.ts
2
3
  export declare const Strict = 0;
3
- export declare const Optional = 1;
4
- export declare const Unknown = 2;
5
4
  export interface First {
6
- readonly mode: 0 | 1 | 2;
7
- readonly units: Uint8Array;
8
- readonly high: boolean;
5
+ readonly mode: 0 | 1 | 2;
6
+ readonly units: Uint8Array;
7
+ readonly high: boolean;
9
8
  }
10
9
  export declare class FirstSets {
11
- readonly kind: 0 | 1 | 2;
12
- private readonly memo;
13
- constructor(kind: 0 | 1 | 2);
14
- of(p: ParserLike): First;
15
- /** Units of the code points of a set, as an encoding (or `Token`) reads them. */
16
- private setUnits;
17
- private compute;
18
- private sequence;
10
+ readonly kind: 0 | 1 | 2;
11
+ private readonly memo;
12
+ constructor(kind: 0 | 1 | 2);
13
+ of(p: ParserLike): First;
14
+ /** Units of the code points of a set, as an encoding (or `Token`) reads them. */
15
+ private setUnits;
16
+ private compute;
17
+ private sequence;
19
18
  }
20
19
  /**
21
20
  * For an `Alt`: the branches worth trying for each next unit, each next
@@ -23,11 +22,12 @@ export declare class FirstSets {
23
22
  * would never skip a branch.
24
23
  */
25
24
  export interface AltPlan {
26
- /** Indexed by unit: indexes into `lists`. */
27
- readonly byUnit: Uint8Array;
28
- readonly high: number;
29
- readonly end: number;
30
- readonly lists: ReadonlyArray<ReadonlyArray<number>>;
25
+ /** Indexed by unit: indexes into `lists`. */
26
+ readonly byUnit: Uint8Array;
27
+ readonly high: number;
28
+ readonly end: number;
29
+ readonly lists: ReadonlyArray<ReadonlyArray<number>>;
31
30
  }
32
31
  export declare const planAlt: (firsts: ReadonlyArray<First>) => AltPlan | undefined;
32
+ //#endregion
33
33
  //# sourceMappingURL=first.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"first.d.ts","sourceRoot":"","sources":["../../../src/internal/compiler/first.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAQ,UAAU,EAAE,MAAM,YAAY,CAAA;AAMlD,eAAO,MAAM,MAAM,IAAI,CAAA;AACvB,eAAO,MAAM,QAAQ,IAAI,CAAA;AACzB,eAAO,MAAM,OAAO,IAAI,CAAA;AAExB,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AA+BD,qBAAa,SAAS;IAER,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;IADpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2C;IAChE,YAAqB,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAI;IAExC,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK,CAOvB;IAED,iFAAiF;IACjF,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,OAAO;IA+Gf,OAAO,CAAC,QAAQ;CAUjB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;CACrD;AAED,eAAO,MAAM,OAAO,WAAY,aAAa,CAAC,KAAK,CAAC,KAAG,OAAO,GAAG,SAwBhE,CAAA"}
1
+ {"version":3,"file":"first.d.ts","names":[],"sources":["../../../src/internal/compiler/first.ts"],"mappings":";;qBAyBa;iBAII;WACN;WACA,OAAO;WACP;;qBAgCE;WAEU;mBADJ;EACI,YAAA;EAErB,GAAG,GAAG,aAAa;;UAUX;UAcA;UAgHA;;;;;;;iBAiBO;;WAEN,QAAQ;WACR;WACA;WACA,OAAO,cAAc;;qBAGnB,UAAW,QAAQ,cAAc,WAAS"}