@thomasfosterau/effect-parse 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +3 -1
  2. package/dist/Ascii.d.ts +0 -2
  3. package/dist/Ascii.d.ts.map +1 -1
  4. package/dist/Ascii.js +6 -6
  5. package/dist/Ascii.js.map +1 -1
  6. package/dist/Binary.d.ts +0 -2
  7. package/dist/Binary.d.ts.map +1 -1
  8. package/dist/Binary.js +1 -2
  9. package/dist/Bits.d.ts +0 -2
  10. package/dist/Bits.d.ts.map +1 -1
  11. package/dist/Bits.js +2 -3
  12. package/dist/Bits.js.map +1 -1
  13. package/dist/Compiler.d.ts +0 -2
  14. package/dist/Compiler.d.ts.map +1 -1
  15. package/dist/Compiler.js +1 -2
  16. package/dist/Encoding.d.ts +0 -2
  17. package/dist/Encoding.d.ts.map +1 -1
  18. package/dist/Encoding.js +1 -2
  19. package/dist/Expression.d.ts +0 -2
  20. package/dist/Expression.d.ts.map +1 -1
  21. package/dist/Expression.js +44 -8
  22. package/dist/Expression.js.map +1 -1
  23. package/dist/Input.d.ts +32 -4
  24. package/dist/Input.d.ts.map +1 -1
  25. package/dist/Input.js +47 -8
  26. package/dist/Input.js.map +1 -1
  27. package/dist/Nom.d.ts +0 -2
  28. package/dist/Nom.d.ts.map +1 -1
  29. package/dist/Nom.js +1 -2
  30. package/dist/ParseError.d.ts +2 -4
  31. package/dist/ParseError.d.ts.map +1 -1
  32. package/dist/ParseError.js +6 -9
  33. package/dist/ParseError.js.map +1 -1
  34. package/dist/Parser.d.ts +6 -4
  35. package/dist/Parser.d.ts.map +1 -1
  36. package/dist/Parser.js +26 -24
  37. package/dist/Parser.js.map +1 -1
  38. package/dist/ParserSchema.d.ts +0 -2
  39. package/dist/ParserSchema.d.ts.map +1 -1
  40. package/dist/ParserSchema.js +3 -4
  41. package/dist/ParserSchema.js.map +1 -1
  42. package/dist/ParserStream.d.ts +0 -2
  43. package/dist/ParserStream.d.ts.map +1 -1
  44. package/dist/ParserStream.js +17 -10
  45. package/dist/ParserStream.js.map +1 -1
  46. package/dist/Syntax.d.ts +0 -2
  47. package/dist/Syntax.d.ts.map +1 -1
  48. package/dist/Syntax.js +13 -11
  49. package/dist/Syntax.js.map +1 -1
  50. package/dist/Text.d.ts +0 -2
  51. package/dist/Text.d.ts.map +1 -1
  52. package/dist/Text.js +1 -2
  53. package/dist/Token.d.ts +0 -2
  54. package/dist/Token.d.ts.map +1 -1
  55. package/dist/Token.js +1 -2
  56. package/dist/internal/compiler/closure.d.ts +5 -2
  57. package/dist/internal/compiler/closure.d.ts.map +1 -1
  58. package/dist/internal/compiler/closure.js +160 -92
  59. package/dist/internal/compiler/closure.js.map +1 -1
  60. package/dist/internal/compiler/entries.d.ts +0 -2
  61. package/dist/internal/compiler/entries.d.ts.map +1 -1
  62. package/dist/internal/compiler/entries.js +6 -7
  63. package/dist/internal/compiler/entries.js.map +1 -1
  64. package/dist/internal/compiler/first.d.ts +0 -2
  65. package/dist/internal/compiler/first.d.ts.map +1 -1
  66. package/dist/internal/compiler/first.js +10 -10
  67. package/dist/internal/compiler/first.js.map +1 -1
  68. package/dist/internal/compiler/jit.d.ts +0 -2
  69. package/dist/internal/compiler/jit.d.ts.map +1 -1
  70. package/dist/internal/compiler/jit.js +52 -51
  71. package/dist/internal/compiler/jit.js.map +1 -1
  72. package/dist/internal/compiler/registry.d.ts +0 -2
  73. package/dist/internal/compiler/registry.d.ts.map +1 -1
  74. package/dist/internal/compiler/registry.js +1 -2
  75. package/dist/internal/compiler/sets.d.ts +2 -2
  76. package/dist/internal/compiler/sets.d.ts.map +1 -1
  77. package/dist/internal/compiler/sets.js +8 -3
  78. package/dist/internal/compiler/sets.js.map +1 -1
  79. package/dist/internal/entries.d.ts +0 -2
  80. package/dist/internal/entries.d.ts.map +1 -1
  81. package/dist/internal/entries.js +2 -4
  82. package/dist/internal/entries.js.map +1 -1
  83. package/dist/internal/key.d.ts +10 -0
  84. package/dist/internal/key.d.ts.map +1 -0
  85. package/dist/internal/key.js +11 -0
  86. package/dist/internal/key.js.map +1 -0
  87. package/dist/internal/node.d.ts +11 -4
  88. package/dist/internal/node.d.ts.map +1 -1
  89. package/dist/internal/node.js +15 -3
  90. package/dist/internal/node.js.map +1 -1
  91. package/dist/internal/numbers.d.ts +0 -2
  92. package/dist/internal/numbers.d.ts.map +1 -1
  93. package/dist/internal/numbers.js +1 -2
  94. package/dist/internal/resume.d.ts +5 -6
  95. package/dist/internal/resume.d.ts.map +1 -1
  96. package/dist/internal/resume.js +1 -2
  97. package/dist/internal/resume.js.map +1 -1
  98. package/dist/internal/run.d.ts +0 -2
  99. package/dist/internal/run.d.ts.map +1 -1
  100. package/dist/internal/run.js +2 -3
  101. package/dist/internal/run.js.map +1 -1
  102. package/dist/internal/stack.d.ts +0 -2
  103. package/dist/internal/stack.d.ts.map +1 -1
  104. package/dist/internal/stack.js +1 -2
  105. package/dist/internal/syntax.d.ts +30 -20
  106. package/dist/internal/syntax.d.ts.map +1 -1
  107. package/dist/internal/syntax.js +73 -66
  108. package/dist/internal/syntax.js.map +1 -1
  109. package/dist/internal/text.d.ts +5 -2
  110. package/dist/internal/text.d.ts.map +1 -1
  111. package/dist/internal/text.js +14 -5
  112. package/dist/internal/text.js.map +1 -1
  113. package/dist/internal/ties.d.ts +0 -2
  114. package/dist/internal/ties.d.ts.map +1 -1
  115. package/dist/internal/ties.js +1 -2
  116. package/dist/internal/tokens.d.ts +10 -9
  117. package/dist/internal/tokens.d.ts.map +1 -1
  118. package/dist/internal/tokens.js +4 -8
  119. package/dist/internal/tokens.js.map +1 -1
  120. package/package.json +7 -7
  121. package/src/Ascii.ts +6 -5
  122. package/src/Bits.ts +1 -1
  123. package/src/Expression.ts +7 -6
  124. package/src/Input.ts +50 -11
  125. package/src/ParseError.ts +13 -9
  126. package/src/Parser.ts +30 -25
  127. package/src/ParserSchema.ts +1 -1
  128. package/src/ParserStream.ts +23 -9
  129. package/src/Syntax.ts +12 -9
  130. package/src/internal/compiler/closure.ts +202 -90
  131. package/src/internal/compiler/entries.ts +14 -11
  132. package/src/internal/compiler/first.ts +9 -8
  133. package/src/internal/compiler/jit.ts +95 -74
  134. package/src/internal/compiler/sets.ts +7 -0
  135. package/src/internal/entries.ts +2 -2
  136. package/src/internal/key.ts +11 -0
  137. package/src/internal/node.ts +19 -2
  138. package/src/internal/resume.ts +5 -4
  139. package/src/internal/run.ts +1 -1
  140. package/src/internal/syntax.ts +78 -87
  141. package/src/internal/text.ts +24 -4
  142. package/src/internal/tokens.ts +20 -13
@@ -1 +1 @@
1
- {"version":3,"file":"ParseError.js","names":[],"sources":["../src/ParseError.ts"],"sourcesContent":["/**\n * The error type produced when running a parser.\n *\n * `ParseError` merges winnow's `ContextError`/`ParseError` and nom's\n * `VerboseError`. It records where parsing failed, what was expected there,\n * the context labels that were active, and an optional typed `cause`\n * produced by `Parser.fail`, `Parser.tryMap` and friends. Its `message`\n * shows the failing position in the input:\n *\n * ```text\n * Parse error at line 1, column 4:\n * 1 | [1,,2]\n * | ^\n * expected digit\n * ```\n *\n * `ParseError` is a `Data.TaggedError`, so it can be yielded directly inside\n * `Effect.gen`.\n *\n * @since 0.1.0\n */\nimport * as Predicate from \"effect/Predicate\"\nimport * as Data from \"effect/Data\"\nimport * as Option from \"effect/Option\"\nimport type { Encoding } from \"./Encoding.js\"\nimport type { ErrMode, Failure, Input } from \"./Input.js\"\nimport * as text from \"./internal/text.js\"\n\n/**\n * The kind of parser that produced an error, in the spirit of nom's\n * `ErrorKind`.\n *\n * `\"TooDeep\"` is not produced by a parser: the runners report it when\n * deeply nested input exhausts the call stack (see `Parser.suspend`).\n *\n * @since 0.1.0\n * @category models\n */\nexport type ErrorKind =\n | \"Alpha\"\n | \"AlphaNumeric\"\n | \"Alt\"\n | \"Assert\"\n | \"Bits\"\n | \"Complete\"\n | \"CrLf\"\n | \"Digit\"\n | \"Dispatch\"\n | \"Eof\"\n | \"Escaped\"\n | \"Fail\"\n | \"Float\"\n | \"HexDigit\"\n | \"Incomplete\"\n | \"LineEnding\"\n | \"Literal\"\n | \"Many\"\n | \"MultiSpace\"\n | \"NoneOf\"\n | \"Not\"\n | \"OctDigit\"\n | \"OneOf\"\n | \"Permutation\"\n | \"Separated\"\n | \"Slice\"\n | \"Space\"\n | \"Take\"\n | \"TakeUntil\"\n | \"TakeWhile\"\n | \"Token\"\n | \"TooDeep\"\n | \"Verify\"\n\n/**\n * @since 0.1.0\n * @category type ids\n */\nexport const TypeId = \"~effect-parse/ParseError\" as const\n\n/**\n * An error produced by running a parser.\n *\n * @since 0.1.0\n * @category models\n */\nexport class ParseError<out E = never>\n extends /*#__PURE__*/ Data.TaggedError(\"ParseError\")<{\n /** The input that was being parsed. */\n readonly input: Input\n /** The offset of the failure in the input. */\n readonly offset: number\n /** The kind of parser that failed. */\n readonly kind: ErrorKind\n /** How the error propagated before parsing stopped. */\n readonly mode: ErrMode\n /** Descriptions of what was expected at `offset`. */\n readonly expected: ReadonlyArray<string>\n /** Context labels (`Parser.context`), innermost first. */\n readonly context: ReadonlyArray<string>\n /** The user supplied cause, if any. */\n readonly cause: E | undefined\n /** An optional free-form description. */\n readonly description: string | undefined\n /**\n * For byte inputs parsed by `Text` parsers, the text encoding. Errors\n * then show the input as text, with line and column numbers.\n */\n readonly encoding?: Encoding<Uint8Array> | undefined\n }>\n{\n /**\n * @since 0.1.0\n */\n readonly [TypeId]: typeof TypeId = TypeId\n\n /**\n * The 1-based line and column of the failure (for strings and encoded\n * text; for other inputs the line is 1 and the column is `offset + 1`).\n *\n * @since 0.1.0\n */\n get position(): LineColumn {\n return lineColumn(this.input, this.offset, this.encoding)\n }\n\n /**\n * The rendered, human-readable error message.\n *\n * @since 0.1.0\n */\n override get message(): string {\n return render(this)\n }\n\n /**\n * @since 0.1.0\n */\n override toString(): string {\n return `ParseError: ${this.message}`\n }\n}\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isParseError = (u: unknown): u is ParseError<unknown> => Predicate.isObjectOrArray(u) && TypeId in u\n\n/**\n * Builds a `ParseError` from the failure details recorded while parsing.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromFailure = <E = never>(\n input: Input,\n failure: Failure,\n mode: ErrMode,\n encoding?: Encoding<any> | undefined\n): ParseError<E> =>\n new ParseError<E>({\n input,\n offset: failure.offset,\n kind: failure.kind,\n mode,\n expected: failure.expected,\n context: failure.context,\n cause: failure.hasCause ? (failure.cause as E) : undefined,\n description: failure.message,\n encoding: input instanceof Uint8Array ? encoding : undefined\n })\n\n/**\n * The user supplied cause of an error, if any.\n *\n * @since 0.1.0\n * @category getters\n */\nexport const getCause = <E>(self: ParseError<E>): Option.Option<E> =>\n self.cause === undefined ? Option.none() : Option.some(self.cause)\n\n/**\n * A 1-based line/column position.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LineColumn {\n readonly line: number\n readonly column: number\n}\n\n/**\n * Computes the 1-based line and column (in code points) of an offset. Lines\n * are separated by `\\n`. Byte inputs are read as text when an `encoding`\n * is given. For other inputs the line is always 1 and the column is\n * `offset + 1`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const lineColumn = (input: Input, offset: number, encoding?: Encoding<any> | undefined): LineColumn => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n let line = 1\n let column = 1\n text.walk(encoding, input, 0, Math.min(offset, input.length), (cp) => {\n if (cp === 10) {\n line++\n column = 1\n } else {\n column++\n }\n })\n return { line, column }\n }\n if (!Predicate.isString(input)) return { line: 1, column: offset + 1 }\n let line = 1\n let lineStart = 0\n for (let i = 0; i < offset && i < input.length; i++) {\n if (input.charCodeAt(i) === 10) {\n line++\n lineStart = i + 1\n }\n }\n return { line, column: codePointCount(input, lineStart, Math.min(offset, input.length)) + 1 }\n}\n\nconst codePointCount = (s: string, start: number, end: number): number => {\n let n = 0\n for (let i = start; i < end; i++) {\n const c = s.charCodeAt(i)\n if (c >= 0xd800 && c <= 0xdbff && i + 1 < end) {\n const d = s.charCodeAt(i + 1)\n if (d >= 0xdc00 && d <= 0xdfff) i++\n }\n n++\n }\n return n\n}\n\n/**\n * Formats a list of expectations: `a`, `a or b`, `a, b or c`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const formatExpected = (expected: ReadonlyArray<string>): string => {\n if (expected.length === 0) return \"\"\n if (expected.length === 1) return expected[0]\n return `${expected.slice(0, -1).join(\", \")} or ${expected[expected.length - 1]}`\n}\n\nconst hexBytes = (bytes: Uint8Array): string =>\n Array.from(bytes, (b) => `0x${b.toString(16).padStart(2, \"0\")}`).join(\" \")\n\nconst describeFound = (input: Input, offset: number, encoding: Encoding<any> | undefined): string => {\n if (offset >= input.length) return \"end of input\"\n if (encoding !== undefined && input instanceof Uint8Array) {\n const cp = encoding.decode(input, offset, input.length)\n if (cp >= 0) return JSON.stringify(String.fromCodePoint(cp))\n const bad = input.subarray(offset, Math.min(input.length, offset + Math.max(encoding.unit, 1)))\n return cp === text.Truncated\n ? `incomplete ${encoding.name} sequence ${hexBytes(input.subarray(offset))}`\n : `invalid ${encoding.name} ${hexBytes(bad)}`\n }\n if (Predicate.isString(input)) {\n const cp = input.codePointAt(offset) ?? Number.NaN\n return JSON.stringify(String.fromCodePoint(cp))\n }\n if (input instanceof Uint8Array) {\n return `0x${input[offset].toString(16).padStart(2, \"0\")}`\n }\n return inspectToken(input[offset])\n}\n\n/** @internal */\nexport const inspectToken = (u: unknown): string => {\n if (Predicate.isString(u)) return JSON.stringify(u)\n if (Predicate.isObjectOrArray(u)) {\n try {\n return JSON.stringify(u)\n } catch {\n return String(u)\n }\n }\n return String(u)\n}\n\nconst causeMessage = (cause: unknown): string | undefined => {\n if (cause === undefined) return undefined\n if (Predicate.isString(cause)) return cause\n // An `Error`'s message, or any other object's string `message`\n if (Predicate.isObjectOrArray(cause) && \"message\" in cause && Predicate.isString(cause.message)) {\n return cause.message\n }\n return inspectToken(cause)\n}\n\nconst renderSnippet = (input: Input, offset: number, encoding: Encoding<any> | undefined): Array<string> => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n // Find the line containing `offset`, then decode it\n let lineStart = 0\n let end = input.length\n let column = 1\n text.walk(encoding, input, 0, input.length, (cp, i, w) => {\n if (i >= offset && cp === 10) {\n end = i\n return false\n }\n if (i < offset) {\n if (cp === 10) {\n lineStart = i + w\n column = 1\n } else {\n column++\n }\n }\n })\n let line = text.lenientText(encoding, input, lineStart, end)\n if (line.endsWith(\"\\r\")) line = line.slice(0, -1)\n const gutter = String(lineColumn(input, offset, encoding).line)\n const pad = \" \".repeat(gutter.length)\n return [`${gutter} | ${line}`, `${pad} | ${\" \".repeat(column - 1)}^`]\n }\n if (Predicate.isString(input)) {\n const { column, line } = lineColumn(input, offset)\n let start = offset\n while (start > 0 && input.charCodeAt(start - 1) !== 10) start--\n let end = offset\n while (end < input.length && input.charCodeAt(end) !== 10) end++\n let text = input.slice(start, end)\n if (text.endsWith(\"\\r\")) text = text.slice(0, -1)\n const gutter = String(line)\n const pad = \" \".repeat(gutter.length)\n return [`${gutter} | ${text}`, `${pad} | ${\" \".repeat(column - 1)}^`]\n }\n if (input instanceof Uint8Array) {\n const start = Math.max(0, offset - 8)\n const end = Math.min(input.length, offset + 8)\n const bytes: Array<string> = []\n for (let i = start; i < end; i++) bytes.push(input[i].toString(16).padStart(2, \"0\"))\n const caret = (offset - start) * 3\n return [`${start.toString(16).padStart(8, \"0\")} | ${bytes.join(\" \")}`, `${\" \".repeat(8)} | ${\" \".repeat(caret)}^`]\n }\n return []\n}\n\nconst render = (error: ParseError<unknown>): string => {\n const { encoding, input, offset } = error\n const lines: Array<string> = []\n if (Predicate.isString(input)) {\n const { column, line } = lineColumn(input, offset)\n lines.push(`Parse error at line ${line}, column ${column}:`)\n } else if (encoding !== undefined) {\n const { column, line } = lineColumn(input, offset, encoding)\n lines.push(`Parse error at line ${line}, column ${column} (byte ${offset}):`)\n } else {\n lines.push(`Parse error at offset ${offset}:`)\n }\n lines.push(...renderSnippet(input, offset, encoding))\n for (let i = error.context.length - 1; i >= 0; i--) {\n lines.push(`while parsing ${error.context[i]}`)\n }\n const cause = causeMessage(error.cause)\n if (cause !== undefined) lines.push(cause)\n if (error.description !== undefined) lines.push(error.description)\n if (error.mode === \"Incomplete\") {\n lines.push(\"unexpected end of input (incomplete)\")\n } else if (error.expected.length > 0) {\n lines.push(`expected ${formatExpected(error.expected)}, found ${describeFound(input, offset, encoding)}`)\n } else if (cause === undefined && error.description === undefined) {\n lines.push(`unexpected ${describeFound(input, offset, encoding)} (${error.kind})`)\n }\n return lines.join(\"\\n\")\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,MAAa,SAAS;;;;;;;AAQtB,IAAa,aAAb,eACwB,mBAAK,YAAY,YAAY,EAAA,CAuBrD;;;;CAIE,CAAU,UAAyB;;;;;;;CAQnC,IAAI,WAAuB;EACzB,OAAO,WAAW,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ;CAC1D;;;;;;CAOA,IAAa,UAAkB;EAC7B,OAAO,OAAO,IAAI;CACpB;;;;CAKA,WAA4B;EAC1B,OAAO,eAAe,KAAK;CAC7B;AACF;;;;;AAMA,MAAa,gBAAgB,MAAyC,UAAU,gBAAgB,CAAC,KAAA,8BAAe;;;;;;;AAQhH,MAAa,eACX,OACA,SACA,MACA,aAEA,IAAI,WAAc;CAChB;CACA,QAAQ,QAAQ;CAChB,MAAM,QAAQ;CACd;CACA,UAAU,QAAQ;CAClB,SAAS,QAAQ;CACjB,OAAO,QAAQ,WAAY,QAAQ,QAAc,KAAA;CACjD,aAAa,QAAQ;CACrB,UAAU,iBAAiB,aAAa,WAAW,KAAA;AACrD,CAAC;;;;;;;AAQH,MAAa,YAAe,SAC1B,KAAK,UAAU,KAAA,IAAY,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,KAAK;;;;;;;;;;AAsBnE,MAAa,cAAc,OAAc,QAAgB,aAAqD;CAC5G,IAAI,aAAa,KAAA,KAAa,iBAAiB,YAAY;EACzD,IAAI,OAAO;EACX,IAAI,SAAS;EACb,KAAK,KAAK,UAAU,OAAO,GAAG,KAAK,IAAI,QAAQ,MAAM,MAAM,IAAI,OAAO;GACpE,IAAI,OAAO,IAAI;IACb;IACA,SAAS;GACX,OACE;EAEJ,CAAC;EACD,OAAO;GAAE;GAAM;EAAO;CACxB;CACA,IAAI,CAAC,UAAU,SAAS,KAAK,GAAG,OAAO;EAAE,MAAM;EAAG,QAAQ,SAAS;CAAE;CACrE,IAAI,OAAO;CACX,IAAI,YAAY;CAChB,KAAK,IAAI,IAAI,GAAG,IAAI,UAAU,IAAI,MAAM,QAAQ,KAC9C,IAAI,MAAM,WAAW,CAAC,MAAM,IAAI;EAC9B;EACA,YAAY,IAAI;CAClB;CAEF,OAAO;EAAE;EAAM,QAAQ,eAAe,OAAO,WAAW,KAAK,IAAI,QAAQ,MAAM,MAAM,CAAC,IAAI;CAAE;AAC9F;AAEA,MAAM,kBAAkB,GAAW,OAAe,QAAwB;CACxE,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,KAAK;EAChC,MAAM,IAAI,EAAE,WAAW,CAAC;EACxB,IAAI,KAAK,SAAU,KAAK,SAAU,IAAI,IAAI,KAAK;GAC7C,MAAM,IAAI,EAAE,WAAW,IAAI,CAAC;GAC5B,IAAI,KAAK,SAAU,KAAK,OAAQ;EAClC;EACA;CACF;CACA,OAAO;AACT;;;;;;;AAQA,MAAa,kBAAkB,aAA4C;CACzE,IAAI,SAAS,WAAW,GAAG,OAAO;CAClC,IAAI,SAAS,WAAW,GAAG,OAAO,SAAS;CAC3C,OAAO,GAAG,SAAS,MAAM,GAAG,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,SAAS,SAAS,SAAS;AAC9E;AAEA,MAAM,YAAY,UAChB,MAAM,KAAK,QAAQ,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG;AAE3E,MAAM,iBAAiB,OAAc,QAAgB,aAAgD;CACnG,IAAI,UAAU,MAAM,QAAQ,OAAO;CACnC,IAAI,aAAa,KAAA,KAAa,iBAAiB,YAAY;EACzD,MAAM,KAAK,SAAS,OAAO,OAAO,QAAQ,MAAM,MAAM;EACtD,IAAI,MAAM,GAAG,OAAO,KAAK,UAAU,OAAO,cAAc,EAAE,CAAC;EAC3D,MAAM,MAAM,MAAM,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ,SAAS,KAAK,IAAI,SAAS,MAAM,CAAC,CAAC,CAAC;EAC9F,OAAO,OAAO,KAAK,YACf,cAAc,SAAS,KAAK,YAAY,SAAS,MAAM,SAAS,MAAM,CAAC,MACvE,WAAW,SAAS,KAAK,GAAG,SAAS,GAAG;CAC9C;CACA,IAAI,UAAU,SAAS,KAAK,GAAG;EAC7B,MAAM,KAAK,MAAM,YAAY,MAAM,KAAK;EACxC,OAAO,KAAK,UAAU,OAAO,cAAc,EAAE,CAAC;CAChD;CACA,IAAI,iBAAiB,YACnB,OAAO,KAAK,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;CAExD,OAAO,aAAa,MAAM,OAAO;AACnC;;AAGA,MAAa,gBAAgB,MAAuB;CAClD,IAAI,UAAU,SAAS,CAAC,GAAG,OAAO,KAAK,UAAU,CAAC;CAClD,IAAI,UAAU,gBAAgB,CAAC,GAC7B,IAAI;EACF,OAAO,KAAK,UAAU,CAAC;CACzB,QAAQ;EACN,OAAO,OAAO,CAAC;CACjB;CAEF,OAAO,OAAO,CAAC;AACjB;AAEA,MAAM,gBAAgB,UAAuC;CAC3D,IAAI,UAAU,KAAA,GAAW,OAAO,KAAA;CAChC,IAAI,UAAU,SAAS,KAAK,GAAG,OAAO;CAEtC,IAAI,UAAU,gBAAgB,KAAK,KAAK,aAAa,SAAS,UAAU,SAAS,MAAM,OAAO,GAC5F,OAAO,MAAM;CAEf,OAAO,aAAa,KAAK;AAC3B;AAEA,MAAM,iBAAiB,OAAc,QAAgB,aAAuD;CAC1G,IAAI,aAAa,KAAA,KAAa,iBAAiB,YAAY;EAEzD,IAAI,YAAY;EAChB,IAAI,MAAM,MAAM;EAChB,IAAI,SAAS;EACb,KAAK,KAAK,UAAU,OAAO,GAAG,MAAM,SAAS,IAAI,GAAG,MAAM;GACxD,IAAI,KAAK,UAAU,OAAO,IAAI;IAC5B,MAAM;IACN,OAAO;GACT;GACA,IAAI,IAAI,QAAQ;IACd,IAAI,OAAO,IAAI;KACb,YAAY,IAAI;KAChB,SAAS;IACX,OACE;GAEJ;EACF,CAAC;EACD,IAAI,OAAO,KAAK,YAAY,UAAU,OAAO,WAAW,GAAG;EAC3D,IAAI,KAAK,SAAS,IAAI,GAAG,OAAO,KAAK,MAAM,GAAG,EAAE;EAChD,MAAM,SAAS,OAAO,WAAW,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAAI;EAC9D,MAAM,MAAM,IAAI,OAAO,OAAO,MAAM;EACpC,OAAO,CAAC,GAAG,OAAO,KAAK,QAAQ,GAAG,IAAI,KAAK,IAAI,OAAO,SAAS,CAAC,EAAE,EAAE;CACtE;CACA,IAAI,UAAU,SAAS,KAAK,GAAG;EAC7B,MAAM,EAAE,QAAQ,SAAS,WAAW,OAAO,MAAM;EACjD,IAAI,QAAQ;EACZ,OAAO,QAAQ,KAAK,MAAM,WAAW,QAAQ,CAAC,MAAM,IAAI;EACxD,IAAI,MAAM;EACV,OAAO,MAAM,MAAM,UAAU,MAAM,WAAW,GAAG,MAAM,IAAI;EAC3D,IAAI,OAAO,MAAM,MAAM,OAAO,GAAG;EACjC,IAAI,KAAK,SAAS,IAAI,GAAG,OAAO,KAAK,MAAM,GAAG,EAAE;EAChD,MAAM,SAAS,OAAO,IAAI;EAC1B,MAAM,MAAM,IAAI,OAAO,OAAO,MAAM;EACpC,OAAO,CAAC,GAAG,OAAO,KAAK,QAAQ,GAAG,IAAI,KAAK,IAAI,OAAO,SAAS,CAAC,EAAE,EAAE;CACtE;CACA,IAAI,iBAAiB,YAAY;EAC/B,MAAM,QAAQ,KAAK,IAAI,GAAG,SAAS,CAAC;EACpC,MAAM,MAAM,KAAK,IAAI,MAAM,QAAQ,SAAS,CAAC;EAC7C,MAAM,QAAuB,CAAC;EAC9B,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,KAAK,MAAM,KAAK,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC;EACnF,MAAM,SAAS,SAAS,SAAS;EACjC,OAAO,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,KAAK,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,OAAO,KAAK,EAAE,EAAE;CACnH;CACA,OAAO,CAAC;AACV;AAEA,MAAM,UAAU,UAAuC;CACrD,MAAM,EAAE,UAAU,OAAO,WAAW;CACpC,MAAM,QAAuB,CAAC;CAC9B,IAAI,UAAU,SAAS,KAAK,GAAG;EAC7B,MAAM,EAAE,QAAQ,SAAS,WAAW,OAAO,MAAM;EACjD,MAAM,KAAK,uBAAuB,KAAK,WAAW,OAAO,EAAE;CAC7D,OAAO,IAAI,aAAa,KAAA,GAAW;EACjC,MAAM,EAAE,QAAQ,SAAS,WAAW,OAAO,QAAQ,QAAQ;EAC3D,MAAM,KAAK,uBAAuB,KAAK,WAAW,OAAO,SAAS,OAAO,GAAG;CAC9E,OACE,MAAM,KAAK,yBAAyB,OAAO,EAAE;CAE/C,MAAM,KAAK,GAAG,cAAc,OAAO,QAAQ,QAAQ,CAAC;CACpD,KAAK,IAAI,IAAI,MAAM,QAAQ,SAAS,GAAG,KAAK,GAAG,KAC7C,MAAM,KAAK,iBAAiB,MAAM,QAAQ,IAAI;CAEhD,MAAM,QAAQ,aAAa,MAAM,KAAK;CACtC,IAAI,UAAU,KAAA,GAAW,MAAM,KAAK,KAAK;CACzC,IAAI,MAAM,gBAAgB,KAAA,GAAW,MAAM,KAAK,MAAM,WAAW;CACjE,IAAI,MAAM,SAAS,cACjB,MAAM,KAAK,sCAAsC;MAC5C,IAAI,MAAM,SAAS,SAAS,GACjC,MAAM,KAAK,YAAY,eAAe,MAAM,QAAQ,EAAE,UAAU,cAAc,OAAO,QAAQ,QAAQ,GAAG;MACnG,IAAI,UAAU,KAAA,KAAa,MAAM,gBAAgB,KAAA,GACtD,MAAM,KAAK,cAAc,cAAc,OAAO,QAAQ,QAAQ,EAAE,IAAI,MAAM,KAAK,EAAE;CAEnF,OAAO,MAAM,KAAK,IAAI;AACxB"}
1
+ {"version":3,"file":"ParseError.js","names":[],"sources":["../src/ParseError.ts"],"sourcesContent":["/**\n * The error type produced when running a parser.\n *\n * `ParseError` merges winnow's `ContextError`/`ParseError` and nom's\n * `VerboseError`. It records where parsing failed, what was expected there,\n * the context labels that were active, and an optional typed `cause`\n * produced by `Parser.fail`, `Parser.tryMap` and friends. Its `message`\n * shows the failing position in the input:\n *\n * ```text\n * Parse error at line 1, column 4:\n * 1 | [1,,2]\n * | ^\n * expected digit\n * ```\n *\n * `ParseError` is a `Data.TaggedError`, so it can be yielded directly inside\n * `Effect.gen`.\n *\n * @since 0.1.0\n */\nimport * as Arr from \"effect/Array\"\nimport * as Predicate from \"effect/Predicate\"\nimport * as Data from \"effect/Data\"\nimport * as Option from \"effect/Option\"\nimport * as Result from \"effect/Result\"\nimport type { Encoding } from \"./Encoding.js\"\nimport type { ErrMode, Failure, Input } from \"./Input.js\"\nimport * as text from \"./internal/text.js\"\n\n/**\n * The kind of parser that produced an error, in the spirit of nom's\n * `ErrorKind`.\n *\n * `\"TooDeep\"` is not produced by a parser: the runners report it when\n * deeply nested input exhausts the call stack (see `Parser.suspend`).\n *\n * @since 0.1.0\n * @category models\n */\nexport type ErrorKind =\n | \"Alpha\"\n | \"AlphaNumeric\"\n | \"Alt\"\n | \"Assert\"\n | \"Bits\"\n | \"Complete\"\n | \"CrLf\"\n | \"Digit\"\n | \"Dispatch\"\n | \"Eof\"\n | \"Escaped\"\n | \"Fail\"\n | \"Float\"\n | \"HexDigit\"\n | \"Incomplete\"\n | \"LineEnding\"\n | \"Literal\"\n | \"Many\"\n | \"MultiSpace\"\n | \"NoneOf\"\n | \"Not\"\n | \"OctDigit\"\n | \"OneOf\"\n | \"Permutation\"\n | \"Separated\"\n | \"Slice\"\n | \"Space\"\n | \"Take\"\n | \"TakeUntil\"\n | \"TakeWhile\"\n | \"Token\"\n | \"TooDeep\"\n | \"Verify\"\n\n/**\n * @since 0.1.0\n * @category type ids\n */\nexport const TypeId = \"~effect-parse/ParseError\" as const\n\n/**\n * An error produced by running a parser.\n *\n * @since 0.1.0\n * @category models\n */\nexport class ParseError<out E = never>\n extends /*#__PURE__*/ Data.TaggedError(\"ParseError\")<{\n /** The input that was being parsed. */\n readonly input: Input\n /** The offset of the failure in the input. */\n readonly offset: number\n /** The kind of parser that failed. */\n readonly kind: ErrorKind\n /** How the error propagated before parsing stopped. */\n readonly mode: ErrMode\n /** Descriptions of what was expected at `offset`. */\n readonly expected: ReadonlyArray<string>\n /** Context labels (`Parser.context`), innermost first. */\n readonly context: ReadonlyArray<string>\n /** The user supplied cause, if any. */\n readonly cause: E | undefined\n /** An optional free-form description. */\n readonly description: string | undefined\n /**\n * For byte inputs parsed by `Text` parsers, the text encoding. Errors\n * then show the input as text, with line and column numbers.\n */\n readonly encoding?: Encoding<Uint8Array> | undefined\n }>\n{\n /**\n * @since 0.1.0\n */\n readonly [TypeId]: typeof TypeId = TypeId\n\n /**\n * The 1-based line and column of the failure (for strings and encoded\n * text; for other inputs the line is 1 and the column is `offset + 1`).\n *\n * @since 0.1.0\n */\n get position(): LineColumn {\n return lineColumn(this.input, this.offset, this.encoding)\n }\n\n /**\n * The rendered, human-readable error message.\n *\n * @since 0.1.0\n */\n override get message(): string {\n return render(this)\n }\n\n /**\n * @since 0.1.0\n */\n override toString(): string {\n return `ParseError: ${this.message}`\n }\n}\n\n/**\n * @since 0.1.0\n * @category guards\n */\nexport const isParseError = (u: unknown): u is ParseError<unknown> => Predicate.isObjectOrArray(u) && TypeId in u\n\n/**\n * Builds a `ParseError` from the failure details recorded while parsing.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromFailure = <E = never>(\n input: Input,\n failure: Failure,\n mode: ErrMode,\n encoding?: Encoding<any>\n): ParseError<E> =>\n new ParseError<E>({\n input,\n offset: failure.offset,\n kind: failure.kind,\n mode,\n expected: failure.expected,\n context: failure.context,\n cause: failure.hasCause ? (failure.cause as E) : undefined,\n description: failure.message,\n encoding: input instanceof Uint8Array ? encoding : undefined\n })\n\n/**\n * The user supplied cause of an error, if any.\n *\n * @since 0.1.0\n * @category getters\n */\nexport const getCause = <E>(self: ParseError<E>): Option.Option<E> =>\n self.cause === undefined ? Option.none() : Option.some(self.cause)\n\n/**\n * A 1-based line/column position.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface LineColumn {\n readonly line: number\n readonly column: number\n}\n\n/**\n * Computes the 1-based line and column (in code points) of an offset. Lines\n * are separated by `\\n`. Byte inputs are read as text when an `encoding`\n * is given. For other inputs the line is always 1 and the column is\n * `offset + 1`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const lineColumn = (input: Input, offset: number, encoding?: Encoding<any>): LineColumn => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n let line = 1\n let column = 1\n text.walk(encoding, input, 0, Math.min(offset, input.length), (cp) => {\n if (cp === 10) {\n line++\n column = 1\n } else {\n column++\n }\n })\n return { line, column }\n }\n if (!Predicate.isString(input)) return { line: 1, column: offset + 1 }\n let line = 1\n let lineStart = 0\n for (let i = 0; i < offset && i < input.length; i++) {\n if (input.charCodeAt(i) === 10) {\n line++\n lineStart = i + 1\n }\n }\n return { line, column: codePointCount(input, lineStart, Math.min(offset, input.length)) + 1 }\n}\n\nconst codePointCount = (s: string, start: number, end: number): number => {\n let n = 0\n for (let i = start; i < end; i++) {\n const c = s.charCodeAt(i)\n if (c >= 0xd800 && c <= 0xdbff && i + 1 < end) {\n const d = s.charCodeAt(i + 1)\n if (d >= 0xdc00 && d <= 0xdfff) i++\n }\n n++\n }\n return n\n}\n\n/**\n * Formats a list of expectations: `a`, `a or b`, `a, b or c`.\n *\n * @since 0.1.0\n * @category utils\n */\nexport const formatExpected = (expected: ReadonlyArray<string>): string => {\n if (Arr.isReadonlyArrayEmpty(expected)) return \"\"\n if (expected.length === 1) return expected[0]\n return `${expected.slice(0, -1).join(\", \")} or ${expected[expected.length - 1]}`\n}\n\nconst hexBytes = (bytes: Uint8Array): string =>\n Array.from(bytes, (b) => `0x${b.toString(16).padStart(2, \"0\")}`).join(\" \")\n\nconst describeFound = (input: Input, offset: number, encoding: Encoding<any> | undefined): string => {\n if (offset >= input.length) return \"end of input\"\n if (encoding !== undefined && input instanceof Uint8Array) {\n const cp = encoding.decode(input, offset, input.length)\n if (cp >= 0) return JSON.stringify(String.fromCodePoint(cp))\n const bad = input.subarray(offset, Math.min(input.length, offset + Math.max(encoding.unit, 1)))\n return cp === text.Truncated\n ? `incomplete ${encoding.name} sequence ${hexBytes(input.subarray(offset))}`\n : `invalid ${encoding.name} ${hexBytes(bad)}`\n }\n if (Predicate.isString(input)) {\n const cp = input.codePointAt(offset) ?? Number.NaN\n return JSON.stringify(String.fromCodePoint(cp))\n }\n if (input instanceof Uint8Array) {\n return `0x${input[offset].toString(16).padStart(2, \"0\")}`\n }\n return inspectToken(input[offset])\n}\n\n/** @internal */\nexport const inspectToken = (u: unknown): string => {\n if (Predicate.isString(u)) return JSON.stringify(u)\n if (Predicate.isObjectOrArray(u)) {\n // `JSON.stringify` throws on cycles and `BigInt`s. Fall back to what\n // `String` gives an array (its elements joined) or an object's tag\n // (`[object Map]`), never a user `toString` that might throw in turn.\n return Result.getOrElse(\n Result.try(() => JSON.stringify(u)),\n () => (Array.isArray(u) ? u.join(\",\") : Object.prototype.toString.call(u))\n )\n }\n return String(u)\n}\n\nconst causeMessage = (cause: unknown): string | undefined => {\n if (cause === undefined) return undefined\n if (Predicate.isString(cause)) return cause\n // An `Error`'s message, or any other object's string `message`\n if (Predicate.isObjectOrArray(cause) && \"message\" in cause && Predicate.isString(cause.message)) {\n return cause.message\n }\n return inspectToken(cause)\n}\n\nconst renderSnippet = (input: Input, offset: number, encoding: Encoding<any> | undefined): Array<string> => {\n if (encoding !== undefined && input instanceof Uint8Array) {\n // Find the line containing `offset`, then decode it\n let lineStart = 0\n let end = input.length\n let column = 1\n text.walk(encoding, input, 0, input.length, (cp, i, w) => {\n if (i >= offset && cp === 10) {\n end = i\n return false\n }\n if (i < offset) {\n if (cp === 10) {\n lineStart = i + w\n column = 1\n } else {\n column++\n }\n }\n })\n let line = text.lenientText(encoding, input, lineStart, end)\n if (line.endsWith(\"\\r\")) line = line.slice(0, -1)\n const gutter = String(lineColumn(input, offset, encoding).line)\n const pad = \" \".repeat(gutter.length)\n return [`${gutter} | ${line}`, `${pad} | ${\" \".repeat(column - 1)}^`]\n }\n if (Predicate.isString(input)) {\n const { column, line } = lineColumn(input, offset)\n let start = offset\n while (start > 0 && input.charCodeAt(start - 1) !== 10) start--\n let end = offset\n while (end < input.length && input.charCodeAt(end) !== 10) end++\n let text = input.slice(start, end)\n if (text.endsWith(\"\\r\")) text = text.slice(0, -1)\n const gutter = String(line)\n const pad = \" \".repeat(gutter.length)\n return [`${gutter} | ${text}`, `${pad} | ${\" \".repeat(column - 1)}^`]\n }\n if (input instanceof Uint8Array) {\n const start = Math.max(0, offset - 8)\n const end = Math.min(input.length, offset + 8)\n const bytes: Array<string> = []\n for (let i = start; i < end; i++) bytes.push(input[i].toString(16).padStart(2, \"0\"))\n const caret = (offset - start) * 3\n return [`${start.toString(16).padStart(8, \"0\")} | ${bytes.join(\" \")}`, `${\" \".repeat(8)} | ${\" \".repeat(caret)}^`]\n }\n return []\n}\n\nconst render = (error: ParseError<unknown>): string => {\n const { encoding, input, offset } = error\n const lines: Array<string> = []\n if (Predicate.isString(input)) {\n const { column, line } = lineColumn(input, offset)\n lines.push(`Parse error at line ${line}, column ${column}:`)\n } else if (encoding !== undefined) {\n const { column, line } = lineColumn(input, offset, encoding)\n lines.push(`Parse error at line ${line}, column ${column} (byte ${offset}):`)\n } else {\n lines.push(`Parse error at offset ${offset}:`)\n }\n lines.push(...renderSnippet(input, offset, encoding))\n for (let i = error.context.length - 1; i >= 0; i--) {\n lines.push(`while parsing ${error.context[i]}`)\n }\n const cause = causeMessage(error.cause)\n if (cause !== undefined) lines.push(cause)\n if (error.description !== undefined) lines.push(error.description)\n if (error.mode === \"Incomplete\") {\n lines.push(\"unexpected end of input (incomplete)\")\n } else if (Arr.isReadonlyArrayNonEmpty(error.expected)) {\n lines.push(`expected ${formatExpected(error.expected)}, found ${describeFound(input, offset, encoding)}`)\n } else if (cause === undefined && error.description === undefined) {\n lines.push(`unexpected ${describeFound(input, offset, encoding)} (${error.kind})`)\n }\n return lines.join(\"\\n\")\n}\n"],"mappings":"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"}
package/dist/Parser.d.ts CHANGED
@@ -8,7 +8,6 @@ import * as ParseError from "./ParseError.js";
8
8
  import { ErrorKind } from "./ParseError.js";
9
9
  import { Node } from "./internal/node.js";
10
10
  import { Contravariant, Covariant, Simplify } from "effect/Types";
11
- //#region src/Parser.d.ts
12
11
  /**
13
12
  * @since 0.1.0
14
13
  * @category type ids
@@ -34,6 +33,8 @@ export interface Parser<out A, out E = never, out R = never, in I extends Input
34
33
  /** A human-readable name, used by `toString` and tracing. */
35
34
  readonly name: string | undefined;
36
35
  [Symbol.iterator](): ParserIterator<Parser<A, E, R, I>>;
36
+ /** Describes the parser: `Parser(<name>)`, or `Parser` when it has no name. */
37
+ toString(): string;
37
38
  }
38
39
  /**
39
40
  * The iterator used by `yield*` inside {@link gen}.
@@ -140,6 +141,8 @@ export declare const isParser: (u: unknown) => u is Parser<unknown, unknown, unk
140
141
  * The step function must either return the parsed value, having advanced
141
142
  * `state.pos` past the consumed input, or return the result of one of
142
143
  * `state.backtrack`, `state.cut`, `state.incomplete`, ... to signal failure.
144
+ * A step that moves the cursor backwards (to retry, or after a lookahead)
145
+ * calls `state.rewind(offset)` rather than assigning `state.pos`.
143
146
  *
144
147
  * @example
145
148
  * ```ts
@@ -403,8 +406,8 @@ export declare const tryMap: {
403
406
  * @category mapping
404
407
  */
405
408
  export declare const tryMapUnknown: {
406
- <A, B>(f: (a: A) => B): <E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<B, E | unknown, R, I>;
407
- <A, E, R, I extends Input, B>(self: Parser<A, E, R, I>, f: (a: A) => B): Parser<B, E | unknown, R, I>;
409
+ <A, B>(f: (a: A) => B): <E, R, I extends Input>(self: Parser<A, E, R, I>) => Parser<B, unknown, R, I>;
410
+ <A, E, R, I extends Input, B>(self: Parser<A, E, R, I>, f: (a: A) => B): Parser<B, unknown, R, I>;
408
411
  };
409
412
  /**
410
413
  * Transforms the output of a parser with a function returning an `Option`;
@@ -1339,6 +1342,5 @@ export declare const parseRecoverable: {
1339
1342
  <A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): RecoverableResult<A, E>;
1340
1343
  <A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): RecoverableResult<A, E>;
1341
1344
  };
1342
- //#endregion
1343
1345
  export { type ErrorKind, let_ as let, void_ as void };
1344
1346
  //# 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":[],"sources":["../src/Parser.ts"],"mappings":"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"}
package/dist/Parser.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as Predicate from "effect/Predicate";
2
2
  import * as Result from "effect/Result";
3
3
  import { Fail, Failure, State, mergeExpected, mergeFailures, mergeTiedFailures } from "./Input.js";
4
+ import { Key } from "./internal/key.js";
4
5
  import * as Resume from "./internal/resume.js";
5
6
  import * as Registry from "./internal/compiler/registry.js";
6
7
  import * as Option from "effect/Option";
@@ -15,7 +16,7 @@ import * as Entries from "./internal/entries.js";
15
16
  import * as Run from "./internal/run.js";
16
17
  import * as Stack from "./internal/stack.js";
17
18
  import { NodeId, bounds } from "./internal/node.js";
18
- //#region src/Parser.ts
19
+ // src/Parser.ts
19
20
  /**
20
21
  * The `Parser` data type and its general-purpose combinators.
21
22
  *
@@ -135,6 +136,8 @@ const isTwoParserArgs = (args) => isParser(args[0]) && isParser(args[1]);
135
136
  * The step function must either return the parsed value, having advanced
136
137
  * `state.pos` past the consumed input, or return the result of one of
137
138
  * `state.backtrack`, `state.cut`, `state.incomplete`, ... to signal failure.
139
+ * A step that moves the cursor backwards (to retry, or after a lookahead)
140
+ * calls `state.rewind(offset)` rather than assigning `state.pos`.
138
141
  *
139
142
  * @example
140
143
  * ```ts
@@ -461,7 +464,7 @@ const tryMap = /*#__PURE__*/ dual(2, (self, f) => {
461
464
  if (a === Fail) return Fail;
462
465
  const r = f(a);
463
466
  if (Result.isSuccess(r)) return r.success;
464
- state.pos = start;
467
+ state.rewind(start);
465
468
  return state.failCause("Backtrack", "Verify", r.failure);
466
469
  }, self.name, {
467
470
  _tag: "TryMap",
@@ -500,7 +503,7 @@ const filterMap = /*#__PURE__*/ dual(2, (self, f) => {
500
503
  if (a === Fail) return Fail;
501
504
  const o = f(a);
502
505
  if (Option.isSome(o)) return o.value;
503
- state.pos = start;
506
+ state.rewind(start);
504
507
  return state.backtrack("Verify");
505
508
  }, self.name, {
506
509
  _tag: "FilterMap",
@@ -522,7 +525,7 @@ const filter = /*#__PURE__*/ dual(2, (self, predicate) => {
522
525
  const a = step(state);
523
526
  if (a === Fail) return Fail;
524
527
  if (predicate(a)) return a;
525
- state.pos = start;
528
+ state.rewind(start);
526
529
  return state.backtrack("Verify");
527
530
  }, self.name, {
528
531
  _tag: "Filter",
@@ -544,7 +547,7 @@ const filterOrFail = /*#__PURE__*/ dual(3, (self, predicate, orFailWith) => {
544
547
  const a = step(state);
545
548
  if (a === Fail) return Fail;
546
549
  if (predicate(a)) return a;
547
- state.pos = start;
550
+ state.rewind(start);
548
551
  return state.failCause("Backtrack", "Verify", orFailWith(a));
549
552
  }, self.name, {
550
553
  _tag: "Filter",
@@ -699,7 +702,7 @@ const complete = (self) => {
699
702
  const start = state.pos;
700
703
  const a = step(state);
701
704
  if (a === Fail && state.mode === "Incomplete") {
702
- state.pos = start;
705
+ state.rewind(start);
703
706
  return state.backtrack("Complete");
704
707
  }
705
708
  return a;
@@ -836,7 +839,7 @@ const orElseSucceed = /*#__PURE__*/ dual(2, (self, value) => {
836
839
  });
837
840
  /** Rewinds after a recoverable failure, remembering it as a hint. */
838
841
  const recover = (state, start) => {
839
- state.pos = start;
842
+ state.rewind(start);
840
843
  const f = state.failure;
841
844
  if (f.offset === start) {
842
845
  state.hintOffset = start;
@@ -894,7 +897,7 @@ const peek = (self) => {
894
897
  const deepest = state.deepest;
895
898
  const a = step(state);
896
899
  if (a !== Fail) {
897
- state.pos = start;
900
+ state.rewind(start);
898
901
  state.hintOffset = hintOffset;
899
902
  state.hintExpected = hintExpected;
900
903
  state.deepest = deepest;
@@ -920,12 +923,12 @@ const not = (self) => {
920
923
  const hintExpected = state.hintExpected;
921
924
  const deepest = state.deepest;
922
925
  if (step(state) !== Fail) {
923
- state.pos = start;
926
+ state.rewind(start);
924
927
  state.deepest = deepest;
925
928
  return state.backtrack("Not");
926
929
  }
927
930
  if (state.mode !== "Backtrack") return Fail;
928
- state.pos = start;
931
+ state.rewind(start);
929
932
  state.hintOffset = hintOffset;
930
933
  state.hintExpected = hintExpected;
931
934
  state.deepest = deepest;
@@ -1245,7 +1248,7 @@ const alt = (...parsers) => {
1245
1248
  return a;
1246
1249
  }
1247
1250
  if (state.mode !== "Backtrack") return Fail;
1248
- state.pos = start;
1251
+ state.rewind(start);
1249
1252
  const head = state.failureHead;
1250
1253
  if (failure === void 0 || head.offset > failure.offset) {
1251
1254
  failure = head;
@@ -1312,7 +1315,7 @@ const dispatch = (selector, cases, otherwise) => {
1312
1315
  if (key === Fail) return Fail;
1313
1316
  const parser = choose(key);
1314
1317
  if (parser === void 0) {
1315
- state.pos = start;
1318
+ state.rewind(start);
1316
1319
  return state.backtrack("Dispatch");
1317
1320
  }
1318
1321
  return parser.step(state);
@@ -1355,7 +1358,7 @@ const permutation = (...parsers) => {
1355
1358
  break;
1356
1359
  }
1357
1360
  if (state.mode !== "Backtrack") return Fail;
1358
- state.pos = start;
1361
+ state.rewind(start);
1359
1362
  ties.add(state);
1360
1363
  }
1361
1364
  if (!matched) return ties.fail(state);
@@ -1381,7 +1384,7 @@ const foldImpl = (self, range, init, f, name, node, cond) => {
1381
1384
  const [min, max] = normalizeRange(range);
1382
1385
  const step = self.step;
1383
1386
  const checkLoop = max === Infinity;
1384
- const key = {};
1387
+ const key = new Key();
1385
1388
  return described((state) => {
1386
1389
  const entry = state.pos;
1387
1390
  let acc;
@@ -1504,7 +1507,7 @@ const repeatTill = /*#__PURE__*/ dual(isTwoParserArgs, (self, end, range) => {
1504
1507
  if (b !== Fail) return [acc, b];
1505
1508
  if (state.mode !== "Backtrack") return Fail;
1506
1509
  endFailure = state.failure;
1507
- state.pos = start;
1510
+ state.rewind(start);
1508
1511
  if (acc.length >= max) return Fail;
1509
1512
  }
1510
1513
  const a = step(state);
@@ -1543,7 +1546,7 @@ const separated = /*#__PURE__*/ dual(isTwoParserArgs, (self, separator, range) =
1543
1546
  const step = self.step;
1544
1547
  const sepStep = separator.step;
1545
1548
  const checkLoop = max === Infinity;
1546
- const key = {};
1549
+ const key = new Key();
1547
1550
  return described((state) => {
1548
1551
  const entry = state.pos;
1549
1552
  let acc;
@@ -1586,7 +1589,7 @@ const separated = /*#__PURE__*/ dual(isTwoParserArgs, (self, separator, range) =
1586
1589
  pos: start
1587
1590
  });
1588
1591
  if (state.mode !== "Backtrack" || acc.length < min) return Fail;
1589
- state.pos = start;
1592
+ state.rewind(start);
1590
1593
  return Resume.done(state, key, entry, resumed !== void 0, acc);
1591
1594
  }
1592
1595
  acc.push(a);
@@ -1623,7 +1626,7 @@ const separated = /*#__PURE__*/ dual(isTwoParserArgs, (self, separator, range) =
1623
1626
  const separatedFoldl1 = (self, separator, op) => {
1624
1627
  const step = self.step;
1625
1628
  const sepStep = separator.step;
1626
- const key = {};
1629
+ const key = new Key();
1627
1630
  return described((state) => {
1628
1631
  const entry = state.pos;
1629
1632
  const resumed = state.resume === void 0 ? void 0 : Resume.take(state, key, entry);
@@ -1653,7 +1656,7 @@ const separatedFoldl1 = (self, separator, op) => {
1653
1656
  if (a === Fail) {
1654
1657
  if (state.mode === "Incomplete" && state.resume !== void 0) saveFold(state, key, entry, acc, start);
1655
1658
  if (state.mode !== "Backtrack") return Fail;
1656
- state.pos = start;
1659
+ state.rewind(start);
1657
1660
  return Resume.done(state, key, entry, resumed !== void 0, acc);
1658
1661
  }
1659
1662
  acc = op(acc, s, a);
@@ -1695,7 +1698,7 @@ const separatedFoldr1 = (self, separator, op) => {
1695
1698
  const a = step(state);
1696
1699
  if (a === Fail) {
1697
1700
  if (state.mode !== "Backtrack") return Fail;
1698
- state.pos = start;
1701
+ state.rewind(start);
1699
1702
  break;
1700
1703
  }
1701
1704
  seps.push(s);
@@ -1807,7 +1810,7 @@ const resumeAfter = /*#__PURE__*/ dual(2, (self, recover) => {
1807
1810
  if (state.recovered === void 0 || state.mode === "Incomplete") return Fail;
1808
1811
  const failure = state.failure;
1809
1812
  const mode = state.mode;
1810
- state.pos = start;
1813
+ state.rewind(start);
1811
1814
  if (recoverStep(state) === Fail) return state.failWith(mode, failure);
1812
1815
  state.recovered.push(failure);
1813
1816
  state.syntax?.skipped(start, failure, mode);
@@ -1839,7 +1842,7 @@ const retryAfter = /*#__PURE__*/ dual(2, (self, recover) => {
1839
1842
  if (state.recovered === void 0 || state.mode === "Incomplete") return Fail;
1840
1843
  const failure = state.failure;
1841
1844
  const mode = state.mode;
1842
- state.pos = start;
1845
+ state.rewind(start);
1843
1846
  if (recoverStep(state) === Fail || state.pos === start) return state.failWith(mode, failure);
1844
1847
  state.recovered.push(failure);
1845
1848
  state.syntax?.skipped(start, failure, mode);
@@ -1910,7 +1913,7 @@ const preview = (state, offset) => {
1910
1913
  */
1911
1914
  const consoleTracer = (event) => {
1912
1915
  const indent = " ".repeat(event.depth);
1913
- if (event._tag === "Enter") console.log(`${indent}> ${event.name} @${event.offset} | ${preview(event.state, event.offset)}`);
1916
+ if (Predicate.isTagged(event, "Enter")) console.log(`${indent}> ${event.name} @${event.offset} | ${preview(event.state, event.offset)}`);
1914
1917
  else {
1915
1918
  const consumed = (event.endOffset ?? event.offset) - event.offset;
1916
1919
  console.log(`${indent}< ${event.name} | ${event.result === "Ok" ? `+${consumed}` : event.result}`);
@@ -2162,7 +2165,6 @@ const parseRecoverable = (self, input, options) => {
2162
2165
  errors
2163
2166
  };
2164
2167
  };
2165
- //#endregion
2166
2168
  export { Do, TypeId, allConsuming, alt, as, asSome, asVoid, backtrack, bind, bindTo, complete, cond, consoleTracer, context, cut, delimited, described, dispatch, empty, eof, expected, fail, failMessage, filter, filterMap, filterOrFail, flatMap, fold, fromEntries, gen, isParser, let_ as let, location, make, map, mapError, mapParser, named, not, opt, optional, orElse, orElseSucceed, orFail, parse, parseEffect, parsePartial, parsePeek, parseRecoverable, parseSync, peek, permutation, preceded, provide, provideService, reject, repeat, repeatTill, resumeAfter, retryAfter, run, separated, separatedFoldl1, separatedFoldr1, separatedPair, seq, service, span, struct, succeed, suspend, sync, taken, tap, terminated, todo, trace, tryMap, tryMapUnknown, void_ as void, void_, withSpan, withTaken, zip, zipLeft, zipRight, zipWith };
2167
2169
 
2168
2170
  //# sourceMappingURL=Parser.js.map