@thomasfosterau/effect-parse 0.2.0 → 0.4.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.
- package/README.md +44 -1
- package/dist/Ascii.d.ts +0 -2
- package/dist/Ascii.d.ts.map +1 -1
- package/dist/Ascii.js +6 -6
- package/dist/Ascii.js.map +1 -1
- package/dist/Binary.d.ts +0 -2
- package/dist/Binary.d.ts.map +1 -1
- package/dist/Binary.js +1 -2
- package/dist/Bits.d.ts +0 -2
- package/dist/Bits.d.ts.map +1 -1
- package/dist/Bits.js +2 -3
- package/dist/Bits.js.map +1 -1
- package/dist/Compiler.d.ts +0 -2
- package/dist/Compiler.d.ts.map +1 -1
- package/dist/Compiler.js +1 -2
- package/dist/Encoding.d.ts +0 -2
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +1 -2
- package/dist/Expression.d.ts +0 -2
- package/dist/Expression.d.ts.map +1 -1
- package/dist/Expression.js +61 -18
- package/dist/Expression.js.map +1 -1
- package/dist/Input.d.ts +80 -7
- package/dist/Input.d.ts.map +1 -1
- package/dist/Input.js +149 -18
- package/dist/Input.js.map +1 -1
- package/dist/Nom.d.ts +1 -3
- package/dist/Nom.d.ts.map +1 -1
- package/dist/Nom.js +1 -2
- package/dist/ParseError.d.ts +0 -2
- package/dist/ParseError.d.ts.map +1 -1
- package/dist/ParseError.js +6 -10
- package/dist/ParseError.js.map +1 -1
- package/dist/Parser.d.ts +2 -2
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Parser.js +58 -32
- package/dist/Parser.js.map +1 -1
- package/dist/ParserSchema.d.ts +198 -2
- package/dist/ParserSchema.d.ts.map +1 -1
- package/dist/ParserSchema.js +646 -18
- package/dist/ParserSchema.js.map +1 -1
- package/dist/ParserStream.d.ts +0 -2
- package/dist/ParserStream.d.ts.map +1 -1
- package/dist/ParserStream.js +15 -9
- package/dist/ParserStream.js.map +1 -1
- package/dist/Syntax.d.ts +0 -2
- package/dist/Syntax.d.ts.map +1 -1
- package/dist/Syntax.js +13 -11
- package/dist/Syntax.js.map +1 -1
- package/dist/Text.d.ts +0 -2
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +1 -2
- package/dist/Token.d.ts +0 -2
- package/dist/Token.d.ts.map +1 -1
- package/dist/Token.js +1 -2
- package/dist/internal/compiler/closure.d.ts +5 -2
- package/dist/internal/compiler/closure.d.ts.map +1 -1
- package/dist/internal/compiler/closure.js +160 -92
- package/dist/internal/compiler/closure.js.map +1 -1
- package/dist/internal/compiler/entries.d.ts +0 -2
- package/dist/internal/compiler/entries.d.ts.map +1 -1
- package/dist/internal/compiler/entries.js +6 -7
- package/dist/internal/compiler/entries.js.map +1 -1
- package/dist/internal/compiler/first.d.ts +0 -2
- package/dist/internal/compiler/first.d.ts.map +1 -1
- package/dist/internal/compiler/first.js +10 -10
- package/dist/internal/compiler/first.js.map +1 -1
- package/dist/internal/compiler/jit.d.ts +0 -2
- package/dist/internal/compiler/jit.d.ts.map +1 -1
- package/dist/internal/compiler/jit.js +52 -51
- package/dist/internal/compiler/jit.js.map +1 -1
- package/dist/internal/compiler/registry.d.ts +0 -2
- package/dist/internal/compiler/registry.d.ts.map +1 -1
- package/dist/internal/compiler/registry.js +1 -2
- package/dist/internal/compiler/sets.d.ts +2 -2
- package/dist/internal/compiler/sets.d.ts.map +1 -1
- package/dist/internal/compiler/sets.js +8 -3
- package/dist/internal/compiler/sets.js.map +1 -1
- package/dist/internal/entries.d.ts +0 -2
- package/dist/internal/entries.d.ts.map +1 -1
- package/dist/internal/entries.js +1 -2
- package/dist/internal/key.d.ts +10 -0
- package/dist/internal/key.d.ts.map +1 -0
- package/dist/internal/key.js +11 -0
- package/dist/internal/key.js.map +1 -0
- package/dist/internal/node.d.ts +11 -4
- package/dist/internal/node.d.ts.map +1 -1
- package/dist/internal/node.js +15 -3
- package/dist/internal/node.js.map +1 -1
- package/dist/internal/numbers.d.ts +0 -2
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +1 -2
- package/dist/internal/resume.d.ts +5 -6
- package/dist/internal/resume.d.ts.map +1 -1
- package/dist/internal/resume.js +1 -2
- package/dist/internal/resume.js.map +1 -1
- package/dist/internal/run.d.ts +0 -2
- package/dist/internal/run.d.ts.map +1 -1
- package/dist/internal/run.js +2 -3
- package/dist/internal/run.js.map +1 -1
- package/dist/internal/stack.d.ts +0 -2
- package/dist/internal/stack.d.ts.map +1 -1
- package/dist/internal/stack.js +12 -3
- package/dist/internal/stack.js.map +1 -1
- package/dist/internal/syntax.d.ts +30 -19
- package/dist/internal/syntax.d.ts.map +1 -1
- package/dist/internal/syntax.js +74 -63
- package/dist/internal/syntax.js.map +1 -1
- package/dist/internal/text.d.ts +5 -2
- package/dist/internal/text.d.ts.map +1 -1
- package/dist/internal/text.js +14 -5
- package/dist/internal/text.js.map +1 -1
- package/dist/internal/ties.d.ts +28 -0
- package/dist/internal/ties.d.ts.map +1 -0
- package/dist/internal/ties.js +66 -0
- package/dist/internal/ties.js.map +1 -0
- package/dist/internal/tokens.d.ts +10 -9
- package/dist/internal/tokens.d.ts.map +1 -1
- package/dist/internal/tokens.js +4 -8
- package/dist/internal/tokens.js.map +1 -1
- package/package.json +6 -6
- package/src/Ascii.ts +6 -5
- package/src/Bits.ts +1 -1
- package/src/Expression.ts +27 -23
- package/src/Input.ts +157 -21
- package/src/ParseError.ts +10 -8
- package/src/Parser.ts +67 -32
- package/src/ParserSchema.ts +982 -23
- package/src/ParserStream.ts +20 -8
- package/src/Syntax.ts +12 -9
- package/src/internal/compiler/closure.ts +202 -90
- package/src/internal/compiler/entries.ts +14 -11
- package/src/internal/compiler/first.ts +9 -8
- package/src/internal/compiler/jit.ts +95 -74
- package/src/internal/compiler/sets.ts +7 -0
- package/src/internal/key.ts +11 -0
- package/src/internal/node.ts +19 -2
- package/src/internal/resume.ts +5 -4
- package/src/internal/run.ts +1 -1
- package/src/internal/stack.ts +6 -1
- package/src/internal/syntax.ts +80 -84
- package/src/internal/text.ts +24 -4
- package/src/internal/ties.ts +83 -0
- package/src/internal/tokens.ts +20 -13
package/dist/Input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":[],"sources":["../src/Input.ts"],"sourcesContent":["/**\n * Input types and the mutable parse {@link State} cursor.\n *\n * Like winnow, effect-parse parsers advance a mutable cursor rather than\n * returning the remaining input. A {@link State} wraps the original input\n * together with the current offset, the streaming (partial) flag, the\n * services available to the parser, and the details of the most recent\n * failure.\n *\n * Most users never touch `State` directly. It is exposed for writing custom\n * low-level parsers with `Parser.make`, and for drivers that run a parser's\n * `step` many times over one input, reusing a state with {@link State.reset}.\n *\n * @since 0.1.0\n */\nimport * as Predicate from \"effect/Predicate\"\nimport * as Context from \"effect/Context\"\nimport type { Encoding } from \"./Encoding.js\"\nimport type { ErrorKind } from \"./ParseError.js\"\nimport type { Builder as SyntaxBuilder } from \"./internal/syntax.js\"\n\n/**\n * The kinds of input a parser can consume.\n *\n * - `string`: tokens are Unicode code points (returned as strings), offsets\n * are UTF-16 code-unit indices.\n * - `Uint8Array`: tokens are bytes (numbers), slices are `subarray` views.\n * - `ReadonlyArray<T>`: tokens are elements, e.g. the output of a lexer.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Input = string | Uint8Array | ReadonlyArray<unknown>\n\n/**\n * Binary data that can be passed wherever a `Uint8Array` input is expected:\n * an `ArrayBuffer`, a `SharedArrayBuffer`, a `DataView` or any typed array.\n *\n * It is viewed, not copied, as a `Uint8Array` of its bytes. A typed array\n * with wider elements is viewed in the platform's byte order, which is\n * little endian on all common platforms, so a `Uint16Array` of UTF-16 code\n * units can be parsed with `Text.utf16le`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type BinaryInput = ArrayBufferLike | ArrayBufferView\n\n/**\n * What the runners accept for a parser over `I`: the input itself, or, for\n * byte parsers, any {@link BinaryInput}.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Source<I> = I | ([I] extends [Uint8Array] ? BinaryInput : never)\n\n/**\n * Converts a {@link Source} to the input parsers read: binary data becomes a\n * `Uint8Array` view of the same memory, everything else is returned as is.\n *\n * @example\n * ```ts\n * import { Input } from \"@thomasfosterau/effect-parse\"\n *\n * Input.fromSource(new Uint16Array([0x41]).buffer) // Uint8Array [0x41, 0x00]\n * ```\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromSource: {\n (source: BinaryInput): Uint8Array\n <I extends Input>(source: Source<I>): I\n} = (source: Input | BinaryInput): any => {\n if (Predicate.isString(source) || source instanceof Uint8Array || Array.isArray(source)) return source\n if (ArrayBuffer.isView(source)) return new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n // An explicit length fixes the view's size even for a resizable buffer\n if (isArrayBufferLike(source)) return new Uint8Array(source, 0, source.byteLength)\n return source\n}\n\nconst isArrayBufferLike = (u: unknown): u is ArrayBufferLike =>\n u instanceof ArrayBuffer || (globalThis.SharedArrayBuffer !== undefined && u instanceof SharedArrayBuffer)\n\n/**\n * The type of a single token of an input.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Token<I> = I extends string\n ? string\n : I extends Uint8Array\n ? number\n : I extends ReadonlyArray<infer T>\n ? T\n : never\n\n/**\n * The type of a contiguous slice of an input.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Slice<I> = I extends string\n ? string\n : I extends Uint8Array\n ? Uint8Array\n : I extends ReadonlyArray<infer T>\n ? ReadonlyArray<T>\n : never\n\n/**\n * Sentinel returned by a parser step to signal failure. The failure details\n * are stored on the {@link State}.\n *\n * @since 0.1.0\n * @category failure\n */\nexport const Fail: unique symbol = /*#__PURE__*/ Symbol.for(\"effect-parse/Fail\")\n\n/**\n * @since 0.1.0\n * @category failure\n */\nexport type Fail = typeof Fail\n\n/**\n * How a failure propagates (winnow's `ErrMode`, nom's `Err`).\n *\n * - `Backtrack`: recoverable; `alt`, `opt`, `repeat`, ... try something else.\n * - `Cut`: unrecoverable; alternatives are not attempted.\n * - `Incomplete`: a partial (streaming) input ran out; more data is needed.\n *\n * @since 0.1.0\n * @category failure\n */\nexport type ErrMode = \"Backtrack\" | \"Cut\" | \"Incomplete\"\n\n/**\n * The details of a parse failure.\n *\n * @since 0.1.0\n * @category failure\n */\nexport class Failure {\n constructor(\n /** Offset into the input where the failure occurred. */\n readonly offset: number,\n /** The kind of parser that failed. */\n readonly kind: ErrorKind,\n /** Rendered descriptions of what was expected at `offset`. */\n readonly expected: ReadonlyArray<string>,\n /** Context labels added by `Parser.context`, innermost first. */\n readonly context: ReadonlyArray<string>,\n /** Whether a user supplied cause is present. */\n readonly hasCause: boolean,\n /** A user supplied (typed) cause. */\n readonly cause: unknown,\n /** An optional free-form message. */\n readonly message: string | undefined,\n /** For `Incomplete` failures, how many more tokens are needed (0 if unknown). */\n readonly needed: number\n ) {}\n}\n\nconst empty: ReadonlyArray<string> = []\n\n/** The failure a {@link State} starts with, before any step has failed. */\nconst initialFailure = /*#__PURE__*/ new Failure(0, \"Fail\", empty, empty, false, undefined, undefined, 0)\n\n/** @internal */\nexport const emptyStrings = empty\n\n/**\n * A tracing event emitted by `Parser.trace`.\n *\n * @since 0.1.0\n * @category tracing\n */\nexport interface TraceEvent {\n readonly _tag: \"Enter\" | \"Exit\"\n readonly name: string\n readonly depth: number\n readonly offset: number\n /** For `Exit` events: the outcome. */\n readonly result?: \"Ok\" | ErrMode\n /** For `Exit` events: the offset reached. */\n readonly endOffset?: number\n readonly state: State\n}\n\n/**\n * The mutable parsing cursor.\n *\n * @since 0.1.0\n * @category models\n */\nexport class State<I extends Input = Input> {\n /** The full input being parsed. */\n readonly input: I\n /** The current offset. Advanced by parsers, rewound on backtracking. */\n // Declared, not defined, so that a subclass can make it an accessor\n declare pos: number\n /** The end offset (the input's length; in bits inside `Bits.bits`). */\n end: number\n /** 0 = string, 1 = Uint8Array, 2 = array. */\n readonly inputKind: 0 | 1 | 2\n /** Whether the input is partial (streaming): running out yields `Incomplete`. */\n partial: boolean\n /** Services available to `Parser.service`. */\n context: Context.Context<never>\n /** Mode of the latest failure. Only meaningful after a step returned {@link Fail}. */\n mode: ErrMode = \"Backtrack\"\n /** Details of the latest failure. Only meaningful after a step returned {@link Fail}. */\n failure: Failure\n /**\n * The offset of a recoverable failure that occurred without consuming\n * input (for example the last attempt of a `repeat`). Its\n * expectations are merged into new failures at the same offset, producing\n * messages like `expected digit or \")\"`.\n */\n hintOffset = -1\n /** The expectations of the hint at {@link hintOffset}. */\n hintExpected: ReadonlyArray<string> = empty\n /**\n * The furthest recoverable failure seen so far, including failures that\n * were later swallowed by backtracking (for example a trailing separator\n * followed by an invalid element). It is reported instead of the final\n * failure when it lies further into the input. This is the classic PEG\n * \"farthest failure\" heuristic. `Parser.cut` keeps only the failures\n * recorded inside it when it commits, and `Parser.peek` and `Parser.not`\n * forget the failures of a lookahead that succeeded.\n */\n deepest: Failure | undefined = undefined\n /** When defined, `Parser.resumeAfter`/`retryAfter` record failures here. */\n recovered: Array<Failure> | undefined = undefined\n /** When defined, `Parser.trace` reports events here. */\n tracer: ((event: TraceEvent) => void) | undefined = undefined\n /** Current tracing depth. */\n depth = 0\n /**\n * The text encoding of a byte input, recorded by `Text` parsers when they\n * fail so that errors can show the input as text.\n */\n encoding: Encoding<any> | undefined = undefined\n /**\n * The checkpoints of a resumable streaming parse (see\n * `ParserStream.parseAll`); `undefined` otherwise.\n *\n * @internal\n */\n resume: Map<object, Map<number, unknown>> | undefined = undefined\n /**\n * The tree builder of a `Syntax` parse; `undefined` otherwise.\n *\n * @internal\n */\n syntax: SyntaxBuilder | undefined = undefined\n\n constructor(\n source: I | Source<I>,\n options?: {\n readonly partial?: boolean | undefined\n readonly context?: Context.Context<never> | undefined\n readonly offset?: number | undefined\n }\n ) {\n const input = fromSource(source as Input) as I\n this.input = input\n this.end = input.length\n this.pos = options?.offset ?? 0\n this.partial = options?.partial ?? false\n this.context = options?.context ?? Context.empty()\n this.inputKind = Predicate.isString(input) ? 0 : input instanceof Uint8Array ? 1 : 2\n this.failure = initialFailure\n }\n\n /**\n * Prepares the state for another run over the same input, starting at\n * `offset`: afterwards it behaves exactly like\n * `new State(state.input, { ...options, offset })`, without allocating a\n * new state.\n *\n * Every per-run field is reset: the cursor and end, the latest failure,\n * hints and furthest failure, recorded recoveries, the tracer and tracing\n * depth, the recorded encoding and streaming checkpoints. Like the\n * constructor, `partial` defaults to `false` and `context` to the empty\n * context, so pass them again on every reset.\n *\n * Use it to run many small parses over one buffer, for example one per\n * token, with `parser.step`. A state can be reused after any run,\n * including one that failed, returned `Incomplete` or threw.\n *\n * @example\n * ```ts\n * import { Ascii, Input } from \"@thomasfosterau/effect-parse\"\n *\n * const state = new Input.State(\"12 34\")\n * Ascii.decUint.step(state) // 12\n * state.reset(3)\n * Ascii.decUint.step(state) // 34\n * ```\n *\n * @since 0.2.0\n */\n reset(\n offset: number = 0,\n options?: {\n readonly partial?: boolean | undefined\n readonly context?: Context.Context<never> | undefined\n }\n ): this {\n this.pos = offset\n this.end = this.input.length\n this.partial = options?.partial ?? false\n this.context = options?.context ?? Context.empty()\n this.mode = \"Backtrack\"\n this.failure = initialFailure\n this.hintOffset = -1\n this.hintExpected = empty\n this.deepest = undefined\n this.recovered = undefined\n this.tracer = undefined\n this.depth = 0\n this.encoding = undefined\n this.resume = undefined\n return this\n }\n\n /**\n * The number of input units (code units, bytes or elements) remaining.\n */\n remaining(): number {\n return this.end - this.pos\n }\n\n /**\n * Whether the cursor is at the end of the input.\n */\n atEnd(): boolean {\n return this.pos >= this.end\n }\n\n /**\n * Extracts the slice `[start, end)` of the input.\n */\n slice(start: number, end: number): Slice<I> {\n const input = this.input as any\n switch (this.inputKind) {\n case 0:\n return input.slice(start, end)\n case 1:\n return input.subarray(start, end)\n default:\n return input.slice(start, end)\n }\n }\n\n /**\n * Records a recoverable failure at the current offset and returns {@link Fail}.\n */\n backtrack(kind: ErrorKind, expected: ReadonlyArray<string> = empty, offset: number = this.pos): Fail {\n return this.failWith(\"Backtrack\", this.makeFailure(offset, kind, expected))\n }\n\n /**\n * Records an unrecoverable failure at the current offset and returns {@link Fail}.\n */\n cut(kind: ErrorKind, expected: ReadonlyArray<string> = empty, offset: number = this.pos): Fail {\n return this.failWith(\"Cut\", this.makeFailure(offset, kind, expected))\n }\n\n /**\n * Records an `Incomplete` failure (only meaningful for partial input) and\n * returns {@link Fail}.\n */\n incomplete(needed: number, expected: ReadonlyArray<string> = empty): Fail {\n return this.failWith(\n \"Incomplete\",\n new Failure(this.pos, \"Incomplete\", expected, empty, false, undefined, undefined, needed)\n )\n }\n\n /**\n * Fails because the input ended: `Incomplete` for partial input, otherwise\n * a `Backtrack` failure of the given kind.\n */\n eoi(kind: ErrorKind, expected: ReadonlyArray<string>, needed: number): Fail {\n return this.partial ? this.incomplete(needed, expected) : this.backtrack(kind, expected)\n }\n\n /**\n * Records a failure carrying a user supplied cause.\n */\n failCause(mode: ErrMode, kind: ErrorKind, cause: unknown, offset: number = this.pos): Fail {\n return this.failWith(mode, new Failure(offset, kind, empty, empty, true, cause, undefined, 0))\n }\n\n /**\n * Records a failure carrying a message.\n */\n failMessage(mode: ErrMode, kind: ErrorKind, message: string, offset: number = this.pos): Fail {\n return this.failWith(mode, new Failure(offset, kind, empty, empty, false, undefined, message, 0))\n }\n\n /**\n * Records the given failure and returns {@link Fail}.\n */\n failWith(mode: ErrMode, failure: Failure): Fail {\n this.mode = mode\n this.failure = failure\n if (mode === \"Backtrack\" && (this.deepest === undefined || failure.offset >= this.deepest.offset)) {\n this.deepest = failure\n }\n return Fail\n }\n\n /**\n * Replaces the details of the current failure (for example to add context),\n * keeping the record of the furthest failure consistent.\n */\n replaceFailure(failure: Failure): void {\n if (this.deepest === this.failure) this.deepest = failure\n this.failure = failure\n }\n\n /**\n * The failure to report to the user: the current failure, or the furthest\n * failure if it lies beyond the current one and the current failure is a\n * plain syntax error (no user cause or message).\n */\n reportedFailure(): Failure {\n const f = this.failure\n const d = this.deepest\n if (\n d === undefined ||\n d === f ||\n d.offset <= f.offset ||\n this.mode === \"Incomplete\" ||\n f.hasCause ||\n f.message !== undefined\n ) {\n return f\n }\n const context =\n d.context.length === 0 ? f.context : [...d.context, ...f.context.filter((l) => !d.context.includes(l))]\n return new Failure(d.offset, d.kind, d.expected, context, d.hasCause, d.cause, d.message, d.needed)\n }\n\n /**\n * Records that, at `offset`, any of `expected` could also have been\n * accepted. Used by parsers that stop without failing, such as `opt`,\n * `repeat` and `Ascii.digit1`.\n */\n setHint(offset: number, expected: ReadonlyArray<string>): void {\n if (this.hintOffset === offset) {\n this.hintExpected = mergeExpected(this.hintExpected, expected)\n } else {\n this.hintOffset = offset\n this.hintExpected = expected\n }\n }\n\n /** @internal */\n makeFailure(offset: number, kind: ErrorKind, expected: ReadonlyArray<string>): Failure {\n if (this.hintOffset === offset && this.hintExpected.length > 0) {\n expected = mergeExpected(this.hintExpected, expected)\n }\n return new Failure(offset, kind, expected, empty, false, undefined, undefined, 0)\n }\n}\n\n/** @internal */\nexport const mergeExpected = (a: ReadonlyArray<string>, b: ReadonlyArray<string>): ReadonlyArray<string> => {\n if (a.length === 0) return b\n if (b.length === 0) return a\n const out = a.slice()\n for (const e of b) {\n if (!out.includes(e)) out.push(e)\n }\n return out\n}\n\n/**\n * Combines the failures of two alternatives: the furthest failure wins, and\n * failures at the same offset have their expectations merged.\n *\n * @internal\n */\nexport const mergeFailures = (a: Failure, b: Failure): Failure => {\n if (a.offset > b.offset) return a\n if (b.offset > a.offset) return b\n const expected = mergeExpected(a.expected, b.expected)\n if (expected === b.expected) return b\n return new Failure(\n b.offset,\n b.kind,\n expected,\n b.context.length > 0 ? b.context : a.context,\n b.hasCause || a.hasCause,\n b.hasCause ? b.cause : a.cause,\n b.message ?? a.message,\n b.needed\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.js","names":[],"sources":["../src/Input.ts"],"sourcesContent":["/**\n * Input types and the mutable parse {@link State} cursor.\n *\n * Like winnow, effect-parse parsers advance a mutable cursor rather than\n * returning the remaining input. A {@link State} wraps the original input\n * together with the current offset, the streaming (partial) flag, the\n * services available to the parser, and the details of the most recent\n * failure.\n *\n * Most users never touch `State` directly. It is exposed for writing custom\n * low-level parsers with `Parser.make`, and for drivers that run a parser's\n * `step` many times over one input, reusing a state with {@link State.reset}.\n *\n * @since 0.1.0\n */\nimport * as Arr from \"effect/Array\"\nimport * as Predicate from \"effect/Predicate\"\nimport * as Context from \"effect/Context\"\nimport type { Encoding } from \"./Encoding.js\"\nimport type { ErrorKind } from \"./ParseError.js\"\nimport type { Builder as SyntaxBuilder } from \"./internal/syntax.js\"\n\n/**\n * The kinds of input a parser can consume.\n *\n * - `string`: tokens are Unicode code points (returned as strings), offsets\n * are UTF-16 code-unit indices.\n * - `Uint8Array`: tokens are bytes (numbers), slices are `subarray` views.\n * - `ReadonlyArray<T>`: tokens are elements, e.g. the output of a lexer.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Input = string | Uint8Array | ReadonlyArray<unknown>\n\n/**\n * Binary data that can be passed wherever a `Uint8Array` input is expected:\n * an `ArrayBuffer`, a `SharedArrayBuffer`, a `DataView` or any typed array.\n *\n * It is viewed, not copied, as a `Uint8Array` of its bytes. A typed array\n * with wider elements is viewed in the platform's byte order, which is\n * little endian on all common platforms, so a `Uint16Array` of UTF-16 code\n * units can be parsed with `Text.utf16le`.\n *\n * @since 0.1.0\n * @category models\n */\nexport type BinaryInput = ArrayBufferLike | ArrayBufferView\n\n/**\n * What the runners accept for a parser over `I`: the input itself, or, for\n * byte parsers, any {@link BinaryInput}.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Source<I> = I | ([I] extends [Uint8Array] ? BinaryInput : never)\n\n/**\n * Converts a {@link Source} to the input parsers read: binary data becomes a\n * `Uint8Array` view of the same memory, everything else is returned as is.\n *\n * @example\n * ```ts\n * import { Input } from \"@thomasfosterau/effect-parse\"\n *\n * Input.fromSource(new Uint16Array([0x41]).buffer) // Uint8Array [0x41, 0x00]\n * ```\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const fromSource: {\n (source: BinaryInput): Uint8Array\n <I extends Input>(source: Source<I>): I\n} = (source: Input | BinaryInput): any => {\n if (Predicate.isString(source) || source instanceof Uint8Array || Array.isArray(source)) return source\n if (ArrayBuffer.isView(source)) return new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n // An explicit length fixes the view's size even for a resizable buffer\n if (isArrayBufferLike(source)) return new Uint8Array(source, 0, source.byteLength)\n return source\n}\n\nconst isArrayBufferLike = (u: Input | BinaryInput): u is ArrayBufferLike =>\n u instanceof ArrayBuffer || (globalThis.SharedArrayBuffer !== undefined && u instanceof SharedArrayBuffer)\n\n/**\n * The type of a single token of an input.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Token<I> = I extends string\n ? string\n : I extends Uint8Array\n ? number\n : I extends ReadonlyArray<infer T>\n ? T\n : never\n\n/**\n * The type of a contiguous slice of an input.\n *\n * @since 0.1.0\n * @category models\n */\nexport type Slice<I> = I extends string\n ? string\n : I extends Uint8Array\n ? Uint8Array\n : I extends ReadonlyArray<infer T>\n ? ReadonlyArray<T>\n : never\n\n/**\n * Sentinel returned by a parser step to signal failure. The failure details\n * are stored on the {@link State}.\n *\n * @since 0.1.0\n * @category failure\n */\nexport const Fail: unique symbol = /*#__PURE__*/ Symbol.for(\"effect-parse/Fail\")\n\n/**\n * @since 0.1.0\n * @category failure\n */\nexport type Fail = typeof Fail\n\n/**\n * How a failure propagates (winnow's `ErrMode`, nom's `Err`).\n *\n * - `Backtrack`: recoverable; `alt`, `opt`, `repeat`, ... try something else.\n * - `Cut`: unrecoverable; alternatives are not attempted.\n * - `Incomplete`: a partial (streaming) input ran out; more data is needed.\n *\n * @since 0.1.0\n * @category failure\n */\nexport type ErrMode = \"Backtrack\" | \"Cut\" | \"Incomplete\"\n\n/**\n * The details of a parse failure.\n *\n * @since 0.1.0\n * @category failure\n */\nexport class Failure {\n constructor(\n /** Offset into the input where the failure occurred. */\n readonly offset: number,\n /** The kind of parser that failed. */\n readonly kind: ErrorKind,\n /** Rendered descriptions of what was expected at `offset`. */\n readonly expected: ReadonlyArray<string>,\n /** Context labels added by `Parser.context`, innermost first. */\n readonly context: ReadonlyArray<string>,\n /** Whether a user supplied cause is present. */\n readonly hasCause: boolean,\n /** A user supplied (typed) cause. */\n readonly cause: unknown,\n /** An optional free-form message. */\n readonly message: string | undefined,\n /** For `Incomplete` failures, how many more tokens are needed (0 if unknown). */\n readonly needed: number\n ) {}\n}\n\nconst empty: ReadonlyArray<string> = []\n\n/** The failure a {@link State} starts with, before any step has failed. */\nconst initialFailure = /*#__PURE__*/ new Failure(0, \"Fail\", empty, empty, false, undefined, undefined, 0)\n\n/** @internal */\nexport const emptyStrings = empty\n\n/**\n * A tracing event emitted by `Parser.trace`.\n *\n * @since 0.1.0\n * @category tracing\n */\nexport interface TraceEvent {\n readonly _tag: \"Enter\" | \"Exit\"\n readonly name: string\n readonly depth: number\n readonly offset: number\n /** For `Exit` events: the outcome. */\n readonly result?: \"Ok\" | ErrMode\n /** For `Exit` events: the offset reached. */\n readonly endOffset?: number\n readonly state: State\n}\n\n/**\n * The mutable parsing cursor.\n *\n * @since 0.1.0\n * @category models\n */\nexport class State<I extends Input = Input> {\n /** The full input being parsed. */\n readonly input: I\n /**\n * The current offset. Parsers advance it by assigning it; moving it back\n * (backtracking, or after a lookahead) goes through {@link rewind}.\n */\n pos: number\n /** The end offset (the input's length; in bits inside `Bits.bits`). */\n end: number\n /** 0 = string, 1 = Uint8Array, 2 = array. */\n readonly inputKind: 0 | 1 | 2\n /** Whether the input is partial (streaming): running out yields `Incomplete`. */\n partial: boolean\n /** Services available to `Parser.service`. */\n context: Context.Context<never>\n /** Mode of the latest failure. Only meaningful after a step returned {@link Fail}. */\n mode: ErrMode = \"Backtrack\"\n /**\n * The latest failure, kept unmerged: the failure is `failureHead` merged\n * (as `mergeFailures` does) with `failureTie1` and then `failureTie2`, all\n * at the same offset. `Parser.alt` records its tied branch failures here\n * with {@link failTies} instead of merging them, so that an enclosing `alt`\n * whose next branch succeeds never pays for the merge. Reading\n * {@link failure} performs the merge, once.\n *\n * @internal\n */\n failureHead: Failure\n /** @internal */\n failureTie1: Failure | undefined = undefined\n /** @internal */\n failureTie2: Failure | undefined = undefined\n /** Backs {@link deepest}. @internal */\n deepestFailure: Failure | undefined = undefined\n /**\n * Whether the furthest failure is the latest failure, still unmerged, so\n * that {@link deepest} is that failure once merged. Only set while\n * `failureTie1` is.\n *\n * @internal\n */\n deepestIsLatest = false\n /**\n * The offset of a recoverable failure that occurred without consuming\n * input (for example the last attempt of a `repeat`). Its\n * expectations are merged into new failures at the same offset, producing\n * messages like `expected digit or \")\"`.\n */\n hintOffset = -1\n /** The expectations of the hint at {@link hintOffset}. */\n hintExpected: ReadonlyArray<string> = empty\n /**\n * The furthest recoverable failure seen so far, including failures that\n * were later swallowed by backtracking (for example a trailing separator\n * followed by an invalid element). It is reported instead of the final\n * failure when it lies further into the input. This is the classic PEG\n * \"farthest failure\" heuristic. `Parser.cut` keeps only the failures\n * recorded inside it when it commits, and `Parser.peek` and `Parser.not`\n * forget the failures of a lookahead that succeeded.\n */\n get deepest(): Failure | undefined {\n if (this.deepestIsLatest) this.settleFailure()\n return this.deepestFailure\n }\n set deepest(failure: Failure | undefined) {\n this.deepestIsLatest = false\n this.deepestFailure = failure\n }\n /** When defined, `Parser.resumeAfter`/`retryAfter` record failures here. */\n recovered: Array<Failure> | undefined = undefined\n /** When defined, `Parser.trace` reports events here. */\n tracer: ((event: TraceEvent) => void) | undefined = undefined\n /** Current tracing depth. */\n depth = 0\n /**\n * The text encoding of a byte input, recorded by `Text` parsers when they\n * fail so that errors can show the input as text.\n */\n encoding: Encoding<any> | undefined = undefined\n /**\n * The checkpoints of a resumable streaming parse (see\n * `ParserStream.parseAll`); `undefined` otherwise.\n *\n * @internal\n */\n resume: Map<object, Map<number, unknown>> | undefined = undefined\n /**\n * The tree builder of a `Syntax` parse; `undefined` otherwise. A builder\n * rather than a subclass of `State`, so that every state has one shape.\n *\n * @internal\n */\n syntax: SyntaxBuilder | undefined = undefined\n\n constructor(\n source: I | Source<I>,\n options?: {\n readonly partial?: boolean | undefined\n readonly context?: Context.Context<never> | undefined\n readonly offset?: number | undefined\n }\n ) {\n const input = fromSource(source as Input) as I\n this.input = input\n this.end = input.length\n this.pos = options?.offset ?? 0\n this.partial = options?.partial ?? false\n this.context = options?.context ?? Context.empty()\n this.inputKind = Predicate.isString(input) ? 0 : input instanceof Uint8Array ? 1 : 2\n this.failureHead = initialFailure\n }\n\n /** Details of the latest failure. Only meaningful after a step returned {@link Fail}. */\n get failure(): Failure {\n if (this.failureTie1 !== undefined) this.settleFailure()\n return this.failureHead\n }\n set failure(failure: Failure) {\n if (this.deepestIsLatest) this.settleFailure()\n this.failureHead = failure\n this.failureTie1 = undefined\n this.failureTie2 = undefined\n }\n\n /** Merges the latest failure's ties into it (see {@link failureHead}). */\n private settleFailure(): void {\n let failure = this.failureHead\n const tie1 = this.failureTie1\n if (tie1 !== undefined) {\n failure = mergeTiedFailures(failure, tie1, mergeExpected(failure.expected, tie1.expected))\n const tie2 = this.failureTie2\n if (tie2 !== undefined) failure = mergeTiedFailures(failure, tie2, mergeExpected(failure.expected, tie2.expected))\n this.failureHead = failure\n this.failureTie1 = undefined\n this.failureTie2 = undefined\n }\n if (this.deepestIsLatest) {\n this.deepestFailure = failure\n this.deepestIsLatest = false\n }\n }\n\n /**\n * Prepares the state for another run over the same input, starting at\n * `offset`: afterwards it behaves exactly like\n * `new State(state.input, { ...options, offset })`, without allocating a\n * new state.\n *\n * Every per-run field is reset: the cursor and end, the latest failure,\n * hints and furthest failure, recorded recoveries, the tracer and tracing\n * depth, the recorded encoding and streaming checkpoints. Like the\n * constructor, `partial` defaults to `false` and `context` to the empty\n * context, so pass them again on every reset.\n *\n * Use it to run many small parses over one buffer, for example one per\n * token, with `parser.step`. A state can be reused after any run,\n * including one that failed, returned `Incomplete` or threw.\n *\n * @example\n * ```ts\n * import { Ascii, Input } from \"@thomasfosterau/effect-parse\"\n *\n * const state = new Input.State(\"12 34\")\n * Ascii.decUint.step(state) // 12\n * state.reset(3)\n * Ascii.decUint.step(state) // 34\n * ```\n *\n * @since 0.2.0\n */\n reset(\n offset: number = 0,\n options?: {\n readonly partial?: boolean | undefined\n readonly context?: Context.Context<never> | undefined\n }\n ): this {\n this.pos = offset\n this.end = this.input.length\n this.partial = options?.partial ?? false\n this.context = options?.context ?? Context.empty()\n this.mode = \"Backtrack\"\n this.failureHead = initialFailure\n this.failureTie1 = undefined\n this.failureTie2 = undefined\n this.hintOffset = -1\n this.hintExpected = empty\n this.deepestFailure = undefined\n this.deepestIsLatest = false\n this.recovered = undefined\n this.tracer = undefined\n this.depth = 0\n this.encoding = undefined\n this.resume = undefined\n return this\n }\n\n /**\n * Moves the cursor back to `offset`, abandoning what was parsed after it:\n * how a parser backtracks, or returns to where a lookahead started. A step\n * that moves the cursor backwards must use this rather than assigning\n * {@link pos}, so that a `Syntax` parse drops the nodes the abandoned\n * attempt built. Moving forward is an assignment.\n *\n * @example\n * ```ts\n * import { Input, Parser } from \"@thomasfosterau/effect-parse\"\n *\n * // Like `Parser.opt`, for one parser\n * const optional = <A>(p: Parser.Parser<A>) =>\n * Parser.make<A | undefined>((state) => {\n * const start = state.pos\n * const a = p.step(state)\n * if (a !== Input.Fail) return a\n * if (state.mode !== \"Backtrack\") return Input.Fail\n * state.rewind(start)\n * return undefined\n * })\n * ```\n *\n * @since 0.4.0\n */\n rewind(offset: number): void {\n const syntax = this.syntax\n if (syntax !== undefined && offset < this.pos) syntax.rewound(this.pos, offset)\n this.pos = offset\n }\n\n /**\n * The number of input units (code units, bytes or elements) remaining.\n */\n remaining(): number {\n return this.end - this.pos\n }\n\n /**\n * Whether the cursor is at the end of the input.\n */\n atEnd(): boolean {\n return this.pos >= this.end\n }\n\n /**\n * Extracts the slice `[start, end)` of the input.\n */\n slice(start: number, end: number): Slice<I> {\n const input = this.input as any\n switch (this.inputKind) {\n case 0:\n return input.slice(start, end)\n case 1:\n return input.subarray(start, end)\n default:\n return input.slice(start, end)\n }\n }\n\n /**\n * Records a recoverable failure at the current offset and returns {@link Fail}.\n */\n backtrack(kind: ErrorKind, expected: ReadonlyArray<string> = empty, offset: number = this.pos): Fail {\n return this.failWith(\"Backtrack\", this.makeFailure(offset, kind, expected))\n }\n\n /**\n * Records an unrecoverable failure at the current offset and returns {@link Fail}.\n */\n cut(kind: ErrorKind, expected: ReadonlyArray<string> = empty, offset: number = this.pos): Fail {\n return this.failWith(\"Cut\", this.makeFailure(offset, kind, expected))\n }\n\n /**\n * Records an `Incomplete` failure (only meaningful for partial input) and\n * returns {@link Fail}.\n */\n incomplete(needed: number, expected: ReadonlyArray<string> = empty): Fail {\n return this.failWith(\n \"Incomplete\",\n new Failure(this.pos, \"Incomplete\", expected, empty, false, undefined, undefined, needed)\n )\n }\n\n /**\n * Fails because the input ended: `Incomplete` for partial input, otherwise\n * a `Backtrack` failure of the given kind.\n */\n eoi(kind: ErrorKind, expected: ReadonlyArray<string>, needed: number): Fail {\n return this.partial ? this.incomplete(needed, expected) : this.backtrack(kind, expected)\n }\n\n /**\n * Records a failure carrying a user supplied cause.\n */\n failCause(mode: ErrMode, kind: ErrorKind, cause: unknown, offset: number = this.pos): Fail {\n return this.failWith(mode, new Failure(offset, kind, empty, empty, true, cause, undefined, 0))\n }\n\n /**\n * Records a failure carrying a message.\n */\n failMessage(mode: ErrMode, kind: ErrorKind, message: string, offset: number = this.pos): Fail {\n return this.failWith(mode, new Failure(offset, kind, empty, empty, false, undefined, message, 0))\n }\n\n /**\n * Records the given failure and returns {@link Fail}.\n */\n failWith(mode: ErrMode, failure: Failure): Fail {\n this.mode = mode\n if (this.deepestIsLatest) {\n // The furthest failure is the latest one: it is replaced below, unmerged, if `failure` is as far\n if (mode === \"Backtrack\" && failure.offset >= this.failureHead.offset) this.deepestIsLatest = false\n else this.settleFailure()\n }\n this.failureHead = failure\n this.failureTie1 = undefined\n this.failureTie2 = undefined\n if (mode === \"Backtrack\" && (this.deepestFailure === undefined || failure.offset >= this.deepestFailure.offset)) {\n this.deepestFailure = failure\n }\n if (this.syntax !== undefined) this.syntax.reach(failure.offset)\n return Fail\n }\n\n /**\n * Records a recoverable failure made of tied failures, merged only when\n * read: `failWith(\"Backtrack\", f)` where `f` merges `head` with `tie1`\n * and then `tie2` (all at the same offset), as `mergeFailures` would.\n *\n * @internal\n */\n failTies(head: Failure, tie1: Failure, tie2: Failure | undefined): Fail {\n this.mode = \"Backtrack\"\n if (this.deepestIsLatest && head.offset < this.failureHead.offset) this.settleFailure()\n this.failureHead = head\n this.failureTie1 = tie1\n this.failureTie2 = tie2\n this.deepestIsLatest = this.deepestFailure === undefined || head.offset >= this.deepestFailure.offset\n if (this.syntax !== undefined) this.syntax.reach(head.offset)\n return Fail\n }\n\n /**\n * Replaces the details of the current failure (for example to add context),\n * keeping the record of the furthest failure consistent.\n */\n replaceFailure(failure: Failure): void {\n if (this.deepest === this.failure) this.deepest = failure\n this.failure = failure\n }\n\n /**\n * The failure to report to the user: the current failure, or the furthest\n * failure if it lies beyond the current one and the current failure is a\n * plain syntax error (no user cause or message).\n */\n reportedFailure(): Failure {\n const f = this.failure\n const d = this.deepest\n if (\n d === undefined ||\n d === f ||\n d.offset <= f.offset ||\n this.mode === \"Incomplete\" ||\n f.hasCause ||\n f.message !== undefined\n ) {\n return f\n }\n const context = Arr.isReadonlyArrayEmpty(d.context)\n ? f.context\n : [...d.context, ...f.context.filter((l) => !d.context.includes(l))]\n return new Failure(d.offset, d.kind, d.expected, context, d.hasCause, d.cause, d.message, d.needed)\n }\n\n /**\n * Records that, at `offset`, any of `expected` could also have been\n * accepted. Used by parsers that stop without failing, such as `opt`,\n * `repeat` and `Ascii.digit1`.\n */\n setHint(offset: number, expected: ReadonlyArray<string>): void {\n if (this.syntax !== undefined) this.syntax.reach(offset)\n if (this.hintOffset === offset) {\n this.hintExpected = mergeExpected(this.hintExpected, expected)\n } else {\n this.hintOffset = offset\n this.hintExpected = expected\n }\n }\n\n /** @internal */\n makeFailure(offset: number, kind: ErrorKind, expected: ReadonlyArray<string>): Failure {\n if (this.hintOffset === offset && Arr.isReadonlyArrayNonEmpty(this.hintExpected)) {\n expected = mergeExpected(this.hintExpected, expected)\n }\n return new Failure(offset, kind, expected, empty, false, undefined, undefined, 0)\n }\n}\n\n/** @internal */\nexport const mergeExpected = (a: ReadonlyArray<string>, b: ReadonlyArray<string>): ReadonlyArray<string> => {\n if (Arr.isReadonlyArrayEmpty(a)) return b\n if (Arr.isReadonlyArrayEmpty(b)) return a\n const out = a.slice()\n for (const e of b) {\n if (!out.includes(e)) out.push(e)\n }\n return out\n}\n\n/**\n * Combines the failures of two alternatives: the furthest failure wins, and\n * failures at the same offset have their expectations merged.\n *\n * @internal\n */\nexport const mergeFailures = (a: Failure, b: Failure): Failure => {\n if (a.offset > b.offset) return a\n if (b.offset > a.offset) return b\n return mergeTiedFailures(a, b, mergeExpected(a.expected, b.expected))\n}\n\n/**\n * {@link mergeFailures} for two failures at the same offset, given their\n * merged expectations (`mergeExpected(a.expected, b.expected)`, possibly\n * memoised by the caller).\n *\n * @internal\n */\nexport const mergeTiedFailures = (a: Failure, b: Failure, expected: ReadonlyArray<string>): Failure => {\n if (expected === b.expected) return b\n return new Failure(\n b.offset,\n b.kind,\n expected,\n Arr.isReadonlyArrayNonEmpty(b.context) ? b.context : a.context,\n b.hasCause || a.hasCause,\n b.hasCause ? b.cause : a.cause,\n b.message ?? a.message,\n b.needed\n )\n}\n"],"mappings":"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"}
|
package/dist/Nom.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import * as P from "./Parser.js";
|
|
|
4
4
|
import { Parser } from "./Parser.js";
|
|
5
5
|
import { TokenSet } from "./Token.js";
|
|
6
6
|
import * as Option from "effect/Option";
|
|
7
|
-
//#region src/Nom.d.ts
|
|
8
7
|
/**
|
|
9
8
|
* Matches a literal (nom's `tag`).
|
|
10
9
|
*
|
|
@@ -151,7 +150,7 @@ export declare const multispace0: Parser<string, never, never, string>;
|
|
|
151
150
|
/** @since 0.1.0 @category character */
|
|
152
151
|
export declare const multispace1: Parser<string, never, never, string>;
|
|
153
152
|
/** @since 0.1.0 @category character */
|
|
154
|
-
export declare const lineEnding: Parser<"\n" | "\
|
|
153
|
+
export declare const lineEnding: Parser<"\r\n" | "\n", never, never, string>;
|
|
155
154
|
/** @since 0.1.0 @category character */
|
|
156
155
|
export declare const newline: Parser<"\n", never, never, string>;
|
|
157
156
|
/** @since 0.1.0 @category character */
|
|
@@ -474,5 +473,4 @@ export declare const restLen: Parser<number, never, never, Input>;
|
|
|
474
473
|
* @category error
|
|
475
474
|
*/
|
|
476
475
|
export declare const context: <A, E, R, I extends Input>(label: string, parser: Parser<A, E, R, I>) => Parser<A, E, R, I>;
|
|
477
|
-
//#endregion
|
|
478
476
|
//# sourceMappingURL=Nom.d.ts.map
|
package/dist/Nom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nom.d.ts","names":["TokenOf"],"sources":["../src/Nom.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Nom.d.ts","names":["TokenOf"],"sources":["../src/Nom.ts"],"mappings":"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"}
|
package/dist/Nom.js
CHANGED
|
@@ -4,7 +4,7 @@ import * as Token from "./Token.js";
|
|
|
4
4
|
import "effect/Option";
|
|
5
5
|
import * as Ascii from "./Ascii.js";
|
|
6
6
|
import * as Binary from "./Binary.js";
|
|
7
|
-
|
|
7
|
+
// src/Nom.ts
|
|
8
8
|
/**
|
|
9
9
|
* Matches a literal (nom's `tag`).
|
|
10
10
|
*
|
|
@@ -483,7 +483,6 @@ const restLen = Token.restLen;
|
|
|
483
483
|
* @category error
|
|
484
484
|
*/
|
|
485
485
|
const context = (label, parser) => P.context(parser, label);
|
|
486
|
-
//#endregion
|
|
487
486
|
export { allConsuming, alpha0, alpha1, alphanumeric0, alphanumeric1, alt, anychar, beF32, beF64, beI128, beI16, beI24, beI32, beI64, beI8, beU128, beU16, beU24, beU32, beU64, beU8, char, complete, cond, consumed, context, count, crlf, cut, delimited, digit0, digit1, double, eof, escaped, escapedTransform, fail, flatMap, foldMany0, foldMany1, foldManyMN, hexDigit0, hexDigit1, hexU32, i64, isA, isNot, leF32, leF64, leI128, leI16, leI24, leI32, leI64, leI8, leU128, leU16, leU24, leU32, leU64, leU8, lengthCount, lengthData, lengthValue, lineEnding, many0, many1, manyMN, manyTill, map, mapOpt, mapParser, mapRes, multispace0, multispace1, newline, noneOf, not, notLineEnding, octDigit0, octDigit1, oneOf, opt, pair, peek, permutation, preceded, recognize, recognizeFloat, rest, restLen, satisfy, separatedList0, separatedList1, separatedPair, space0, space1, success, tab, tag, tagNoCase, take, takeTill, takeTill1, takeUntil, takeWhile, takeWhile1, takeWhileMN, terminated, tuple, u64, value, verify };
|
|
488
487
|
|
|
489
488
|
//# sourceMappingURL=Nom.js.map
|
package/dist/ParseError.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ErrMode, Failure, Input } from "./Input.js";
|
|
2
2
|
import * as Option from "effect/Option";
|
|
3
3
|
import { Encoding } from "./Encoding.js";
|
|
4
|
-
//#region src/ParseError.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* The kind of parser that produced an error, in the spirit of nom's
|
|
7
6
|
* `ErrorKind`.
|
|
@@ -120,6 +119,5 @@ export declare const lineColumn: (input: Input, offset: number, encoding?: Encod
|
|
|
120
119
|
export declare const formatExpected: (expected: ReadonlyArray<string>) => string;
|
|
121
120
|
/** @internal */
|
|
122
121
|
export declare const inspectToken: (u: unknown) => string;
|
|
123
|
-
//#endregion
|
|
124
122
|
export {};
|
|
125
123
|
//# sourceMappingURL=ParseError.d.ts.map
|
package/dist/ParseError.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParseError.d.ts","names":[],"sources":["../src/ParseError.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ParseError.d.ts","names":[],"sources":["../src/ParseError.ts"],"mappings":";;;;;;;;;;;;;YAwCY;;;;;qBAuCC;;;;;;;;;;qBAQA,eAAe,iCACJ;;WAEX,OAAO;;WAEP;;WAEA,MAAM;;WAEN,MAAM;;WAEN,UAAU;;WAEV,SAAS;;WAET,OAAO;;WAEP;;;;;WAKA,WAAW,SAAS;;;;;YAMrB,gBAAgB;;;;;;;MAQtB,YAAY;;;;;;MASH;;;;EAOJ;;;;;;qBASE,eAAgB,eAAa,KAAK;;;;;;;qBAQlC,cAAe,WAC1B,OAAO,OACP,SAAS,SACT,MAAM,SACN,WAAW,8BACV,WAAW;;;;;;;qBAmBD,WAAY,GAAG,MAAM,WAAW,OAAK,OAAO,OAAO;;;;;;;iBAS/C;WACN;WACA;;;;;;;;;;;qBAYE,aAAc,OAAO,OAAO,gBAAgB,WAAW,8BAA4B;;;;;;;qBA6CnF,iBAAkB,UAAU;;qBA8B5B,eAAgB"}
|
package/dist/ParseError.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as Predicate from "effect/Predicate";
|
|
2
|
+
import * as Result from "effect/Result";
|
|
2
3
|
import * as Option from "effect/Option";
|
|
3
4
|
import * as text from "./internal/text.js";
|
|
5
|
+
import * as Arr from "effect/Array";
|
|
4
6
|
import * as Data from "effect/Data";
|
|
5
|
-
|
|
7
|
+
// src/ParseError.ts
|
|
6
8
|
/**
|
|
7
9
|
* The error type produced when running a parser.
|
|
8
10
|
*
|
|
@@ -151,7 +153,7 @@ const codePointCount = (s, start, end) => {
|
|
|
151
153
|
* @category utils
|
|
152
154
|
*/
|
|
153
155
|
const formatExpected = (expected) => {
|
|
154
|
-
if (expected
|
|
156
|
+
if (Arr.isReadonlyArrayEmpty(expected)) return "";
|
|
155
157
|
if (expected.length === 1) return expected[0];
|
|
156
158
|
return `${expected.slice(0, -1).join(", ")} or ${expected[expected.length - 1]}`;
|
|
157
159
|
};
|
|
@@ -174,17 +176,12 @@ const describeFound = (input, offset, encoding) => {
|
|
|
174
176
|
/** @internal */
|
|
175
177
|
const inspectToken = (u) => {
|
|
176
178
|
if (Predicate.isString(u)) return JSON.stringify(u);
|
|
177
|
-
if (Predicate.isObjectOrArray(u)) try
|
|
178
|
-
return JSON.stringify(u);
|
|
179
|
-
} catch {
|
|
180
|
-
return String(u);
|
|
181
|
-
}
|
|
179
|
+
if (Predicate.isObjectOrArray(u)) return Result.getOrElse(Result.try(() => JSON.stringify(u)), () => String(u));
|
|
182
180
|
return String(u);
|
|
183
181
|
};
|
|
184
182
|
const causeMessage = (cause) => {
|
|
185
183
|
if (cause === void 0) return void 0;
|
|
186
184
|
if (Predicate.isString(cause)) return cause;
|
|
187
|
-
if (cause instanceof Error) return cause.message;
|
|
188
185
|
if (Predicate.isObjectOrArray(cause) && "message" in cause && Predicate.isString(cause.message)) return cause.message;
|
|
189
186
|
return inspectToken(cause);
|
|
190
187
|
};
|
|
@@ -249,11 +246,10 @@ const render = (error) => {
|
|
|
249
246
|
if (cause !== void 0) lines.push(cause);
|
|
250
247
|
if (error.description !== void 0) lines.push(error.description);
|
|
251
248
|
if (error.mode === "Incomplete") lines.push("unexpected end of input (incomplete)");
|
|
252
|
-
else if (error.expected
|
|
249
|
+
else if (Arr.isReadonlyArrayNonEmpty(error.expected)) lines.push(`expected ${formatExpected(error.expected)}, found ${describeFound(input, offset, encoding)}`);
|
|
253
250
|
else if (cause === void 0 && error.description === void 0) lines.push(`unexpected ${describeFound(input, offset, encoding)} (${error.kind})`);
|
|
254
251
|
return lines.join("\n");
|
|
255
252
|
};
|
|
256
|
-
//#endregion
|
|
257
253
|
export { ParseError, TypeId, formatExpected, fromFailure, getCause, inspectToken, isParseError, lineColumn };
|
|
258
254
|
|
|
259
255
|
//# sourceMappingURL=ParseError.js.map
|
package/dist/ParseError.js.map
CHANGED
|
@@ -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 if (cause instanceof Error) return cause.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;CACtC,IAAI,iBAAiB,OAAO,OAAO,MAAM;CACzC,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> | 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 (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\n return Result.getOrElse(\n Result.try(() => JSON.stringify(u)),\n () => 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 (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
|
|
@@ -140,6 +139,8 @@ export declare const isParser: (u: unknown) => u is Parser<unknown, unknown, unk
|
|
|
140
139
|
* The step function must either return the parsed value, having advanced
|
|
141
140
|
* `state.pos` past the consumed input, or return the result of one of
|
|
142
141
|
* `state.backtrack`, `state.cut`, `state.incomplete`, ... to signal failure.
|
|
142
|
+
* A step that moves the cursor backwards (to retry, or after a lookahead)
|
|
143
|
+
* calls `state.rewind(offset)` rather than assigning `state.pos`.
|
|
143
144
|
*
|
|
144
145
|
* @example
|
|
145
146
|
* ```ts
|
|
@@ -1339,6 +1340,5 @@ export declare const parseRecoverable: {
|
|
|
1339
1340
|
<A, E, I extends Input>(self: Parser<A, E, never, I>, input: NoInfer<Source<I>>, options?: ParseOptions): RecoverableResult<A, E>;
|
|
1340
1341
|
<A, E, R, I extends Input>(self: Parser<A, E, R, I>, input: NoInfer<Source<I>>, options: ParseOptionsWithContext<R>): RecoverableResult<A, E>;
|
|
1341
1342
|
};
|
|
1342
|
-
//#endregion
|
|
1343
1343
|
export { type ErrorKind, let_ as let, void_ as void };
|
|
1344
1344
|
//# sourceMappingURL=Parser.d.ts.map
|
package/dist/Parser.d.ts.map
CHANGED
|
@@ -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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"}
|