@thomasfosterau/effect-parse 0.0.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +247 -230
- package/dist/Ascii.d.ts +32 -53
- package/dist/Ascii.d.ts.map +1 -1
- package/dist/Ascii.js +576 -571
- package/dist/Ascii.js.map +1 -1
- package/dist/Binary.d.ts +6 -29
- package/dist/Binary.d.ts.map +1 -1
- package/dist/Binary.js +129 -116
- package/dist/Binary.js.map +1 -1
- package/dist/Bits.d.ts +4 -2
- package/dist/Bits.d.ts.map +1 -1
- package/dist/Bits.js +121 -123
- package/dist/Bits.js.map +1 -1
- package/dist/Compiler.d.ts +39 -0
- package/dist/Compiler.d.ts.map +1 -0
- package/dist/Compiler.js +48 -0
- package/dist/Compiler.js.map +1 -0
- package/dist/Encoding.d.ts +29 -46
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +76 -75
- package/dist/Encoding.js.map +1 -1
- package/dist/Expression.d.ts +15 -49
- package/dist/Expression.d.ts.map +1 -1
- package/dist/Expression.js +143 -131
- package/dist/Expression.js.map +1 -1
- package/dist/Input.d.ts +206 -177
- package/dist/Input.d.ts.map +1 -1
- package/dist/Input.js +317 -299
- package/dist/Input.js.map +1 -1
- package/dist/Nom.d.ts +44 -84
- package/dist/Nom.d.ts.map +1 -1
- package/dist/Nom.js +423 -453
- package/dist/Nom.js.map +1 -1
- package/dist/ParseError.d.ts +54 -49
- package/dist/ParseError.d.ts.map +1 -1
- package/dist/ParseError.js +233 -275
- package/dist/ParseError.js.map +1 -1
- package/dist/Parser.d.ts +345 -313
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Parser.js +2010 -1802
- package/dist/Parser.js.map +1 -1
- package/dist/ParserSchema.d.ts +8 -7
- package/dist/ParserSchema.d.ts.map +1 -1
- package/dist/ParserSchema.js +49 -49
- package/dist/ParserSchema.js.map +1 -1
- package/dist/ParserStream.d.ts +26 -20
- package/dist/ParserStream.d.ts.map +1 -1
- package/dist/ParserStream.js +267 -255
- package/dist/ParserStream.js.map +1 -1
- package/dist/Syntax.d.ts +401 -0
- package/dist/Syntax.d.ts.map +1 -0
- package/dist/Syntax.js +717 -0
- package/dist/Syntax.js.map +1 -0
- package/dist/Text.d.ts +98 -134
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +534 -496
- package/dist/Text.js.map +1 -1
- package/dist/Token.d.ts +60 -42
- package/dist/Token.d.ts.map +1 -1
- package/dist/Token.js +331 -265
- package/dist/Token.js.map +1 -1
- package/dist/index.d.ts +16 -17
- package/dist/index.js +16 -17
- package/dist/internal/compiler/closure.d.ts +14 -16
- package/dist/internal/compiler/closure.d.ts.map +1 -1
- package/dist/internal/compiler/closure.js +1458 -1637
- package/dist/internal/compiler/closure.js.map +1 -1
- package/dist/internal/compiler/entries.d.ts +11 -11
- package/dist/internal/compiler/entries.d.ts.map +1 -1
- package/dist/internal/compiler/entries.js +36 -26
- package/dist/internal/compiler/entries.js.map +1 -1
- package/dist/internal/compiler/first.d.ts +19 -19
- package/dist/internal/compiler/first.d.ts.map +1 -1
- package/dist/internal/compiler/first.js +251 -227
- package/dist/internal/compiler/first.js.map +1 -1
- package/dist/internal/compiler/jit.d.ts +6 -17
- package/dist/internal/compiler/jit.d.ts.map +1 -1
- package/dist/internal/compiler/jit.js +860 -988
- package/dist/internal/compiler/jit.js.map +1 -1
- package/dist/internal/compiler/registry.d.ts +20 -21
- package/dist/internal/compiler/registry.d.ts.map +1 -1
- package/dist/internal/compiler/registry.js +21 -41
- package/dist/internal/compiler/registry.js.map +1 -1
- package/dist/internal/compiler/sets.d.ts +9 -13
- package/dist/internal/compiler/sets.d.ts.map +1 -1
- package/dist/internal/compiler/sets.js +76 -73
- package/dist/internal/compiler/sets.js.map +1 -1
- package/dist/internal/entries.d.ts +3 -3
- package/dist/internal/entries.d.ts.map +1 -1
- package/dist/internal/entries.js +38 -30
- package/dist/internal/entries.js.map +1 -1
- package/dist/internal/node.d.ts +177 -173
- package/dist/internal/node.d.ts.map +1 -1
- package/dist/internal/node.js +77 -66
- package/dist/internal/node.js.map +1 -1
- package/dist/internal/numbers.d.ts +7 -8
- package/dist/internal/numbers.d.ts.map +1 -1
- package/dist/internal/numbers.js +246 -276
- package/dist/internal/numbers.js.map +1 -1
- package/dist/internal/resume.d.ts +6 -24
- package/dist/internal/resume.d.ts.map +1 -1
- package/dist/internal/resume.js +30 -29
- package/dist/internal/resume.js.map +1 -1
- package/dist/internal/run.d.ts +15 -0
- package/dist/internal/run.d.ts.map +1 -0
- package/dist/internal/run.js +36 -0
- package/dist/internal/run.js.map +1 -0
- package/dist/internal/stack.d.ts +16 -0
- package/dist/internal/stack.d.ts.map +1 -0
- package/dist/internal/stack.js +26 -0
- package/dist/internal/stack.js.map +1 -0
- package/dist/internal/syntax.d.ts +146 -0
- package/dist/internal/syntax.d.ts.map +1 -0
- package/dist/internal/syntax.js +305 -0
- package/dist/internal/syntax.js.map +1 -0
- package/dist/internal/text.d.ts +10 -2
- package/dist/internal/text.d.ts.map +1 -1
- package/dist/internal/text.js +295 -345
- package/dist/internal/text.js.map +1 -1
- package/dist/internal/tokens.d.ts +25 -30
- package/dist/internal/tokens.d.ts.map +1 -1
- package/dist/internal/tokens.js +369 -363
- package/dist/internal/tokens.js.map +1 -1
- package/package.json +42 -28
- package/src/Ascii.ts +278 -187
- package/src/Binary.ts +150 -44
- package/src/Bits.ts +6 -3
- package/src/Compiler.ts +98 -0
- package/src/Expression.ts +10 -5
- package/src/Input.ts +106 -28
- package/src/Nom.ts +4 -3
- package/src/ParseError.ts +48 -51
- package/src/Parser.ts +1163 -795
- package/src/ParserStream.ts +104 -80
- package/src/Syntax.ts +900 -0
- package/src/Text.ts +272 -187
- package/src/Token.ts +180 -87
- package/src/index.ts +2 -0
- package/src/internal/compiler/closure.ts +121 -88
- package/src/internal/compiler/entries.ts +21 -8
- package/src/internal/compiler/first.ts +17 -15
- package/src/internal/compiler/jit.ts +360 -157
- package/src/internal/compiler/registry.ts +12 -33
- package/src/internal/compiler/sets.ts +17 -11
- package/src/internal/entries.ts +4 -2
- package/src/internal/node.ts +51 -37
- package/src/internal/numbers.ts +22 -20
- package/src/internal/resume.ts +8 -4
- package/src/internal/run.ts +41 -0
- package/src/internal/stack.ts +36 -0
- package/src/internal/syntax.ts +421 -0
- package/src/internal/text.ts +32 -25
- package/src/internal/tokens.ts +96 -51
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/internal/text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text.js","names":[],"sources":["../../src/internal/text.ts"],"sourcesContent":["import type { Encoding } from \"../Encoding.js\"\nimport type { Fail, State } from \"../Input.js\"\n\n// -----------------------------------------------------------------------------\n// Decoding results\n// -----------------------------------------------------------------------------\n\n/** `Encoding.decode`: the input is malformed. */\nexport const Invalid = -1\n/** `Encoding.decode`: the input ends inside a sequence. */\nexport const Truncated = -2\n/** `next`: the input has ended. */\nexport const End = -3\n\n// -----------------------------------------------------------------------------\n// Encodings\n// -----------------------------------------------------------------------------\n\n/**\n * Units below this value decode to themselves with width 1, so hot loops can\n * skip `decode`. Defaults to 0x80 for ASCII compatible encodings.\n */\nconst FastLimit: unique symbol = /*#__PURE__*/ Symbol.for(\"effect-parse/Encoding/FastLimit\")\n\n/** @internal */\nexport const fastLimit = (enc: Encoding<any>): number =>\n (enc as any)[FastLimit] ?? (enc.asciiCompatible && enc.unit === 1 ? 0x80 : 0)\n\nconst asciiChars: ReadonlyArray<string> = /*#__PURE__*/ Array.from({ length: 128 }, (_, i) => String.fromCharCode(i))\n\n/**\n * The code point that starts `s`: for a string known to hold one, such as\n * one element of `Array.from(string)`. On an empty string it is `NaN`, which,\n * like the `undefined` of `codePointAt(0)`, matches no code point.\n */\nexport const firstCodePoint = (s: string): number => s.codePointAt(0) ?? Number.NaN\n\n/** `String.fromCodePoint`, with the ASCII characters cached. */\nexport const charOf = (cp: number): string =>\n cp < 128 ? asciiChars[cp] : cp < 0x10000 ? String.fromCharCode(cp) : String.fromCodePoint(cp)\n\nconst decodeString = (s: string, i: number, end: number): number => {\n const c = s.charCodeAt(i)\n if ((c & 0xf800) !== 0xd800) return c\n if (c <= 0xdbff) {\n if (i + 1 >= end) return Truncated\n const d = s.charCodeAt(i + 1)\n if ((d & 0xfc00) === 0xdc00) return ((c - 0xd800) << 10) + (d - 0xdc00) + 0x10000\n }\n return Invalid\n}\n\n/**\n * JavaScript strings: UTF-16 code units. Offsets are code-unit indices and\n * slices are `String.prototype.slice`s, so no decoding is needed.\n */\nexport const string: Encoding<string> = {\n name: \"UTF-16\",\n unit: 1,\n asciiCompatible: true,\n decode: decodeString,\n width: (cp) => (cp > 0xffff ? 2 : 1),\n encode: (text) => text,\n text: (s, start, end) => s.slice(start, end),\n [FastLimit]: 0xd800\n} as Encoding<string>\n\nconst decodeUtf8 = (b: Uint8Array, i: number, end: number): number => {\n const c = b[i]\n if (c < 0x80) return c\n if (c < 0xc2) return Invalid\n if (c < 0xe0) {\n if (i + 1 >= end) return Truncated\n const d = b[i + 1]\n return (d & 0xc0) === 0x80 ? ((c & 0x1f) << 6) | (d & 0x3f) : Invalid\n }\n if (c < 0xf0) {\n if (i + 1 >= end) return Truncated\n const d = b[i + 1]\n // Reject overlong encodings (E0 80..9F) and surrogates (ED A0..BF)\n if (c === 0xe0 ? d < 0xa0 || d > 0xbf : c === 0xed ? d < 0x80 || d > 0x9f : (d & 0xc0) !== 0x80) return Invalid\n if (i + 2 >= end) return Truncated\n const e = b[i + 2]\n return (e & 0xc0) === 0x80 ? ((c & 0x0f) << 12) | ((d & 0x3f) << 6) | (e & 0x3f) : Invalid\n }\n if (c < 0xf5) {\n if (i + 1 >= end) return Truncated\n const d = b[i + 1]\n // Reject overlong encodings (F0 80..8F) and code points above U+10FFFF (F4 90..BF)\n if (c === 0xf0 ? d < 0x90 || d > 0xbf : c === 0xf4 ? d < 0x80 || d > 0x8f : (d & 0xc0) !== 0x80) return Invalid\n if (i + 2 >= end) return Truncated\n const e = b[i + 2]\n if ((e & 0xc0) !== 0x80) return Invalid\n if (i + 3 >= end) return Truncated\n const f = b[i + 3]\n return (f & 0xc0) === 0x80 ? ((c & 0x07) << 18) | ((d & 0x3f) << 12) | ((e & 0x3f) << 6) | (f & 0x3f) : Invalid\n }\n return Invalid\n}\n\n// Building short strings by hand is several times faster than a\n// `TextDecoder` call, which has a high fixed cost.\nconst SHORT = 24\n\nconst utf8Decoder = /*#__PURE__*/ new TextDecoder(\"utf-8\", { ignoreBOM: true })\n\n/**\n * Decodes `b[start, end)`. Some platforms' `TextDecoder` rejects views of a\n * `SharedArrayBuffer`, so those are copied first.\n */\nconst decodeRange = (decoder: TextDecoder, b: Uint8Array, start: number, end: number): string => {\n const view = b.subarray(start, end)\n return decoder.decode(b.buffer instanceof ArrayBuffer ? view : view.slice())\n}\nconst utf8Encoder = /*#__PURE__*/ new TextEncoder()\n\n/** UTF-8 bytes. */\nexport const utf8: Encoding<Uint8Array> = {\n name: \"UTF-8\",\n unit: 1,\n asciiCompatible: true,\n decode: decodeUtf8,\n width: (cp) => (cp < 0x80 ? 1 : cp < 0x800 ? 2 : cp < 0x10000 ? 3 : 4),\n encode: (text) => utf8Encoder.encode(text),\n text: (b, start, end) => {\n if (end - start > SHORT) return decodeRange(utf8Decoder, b, start, end)\n let out = \"\"\n for (let i = start; i < end;) {\n const c = b[i]\n if (c < 0x80) {\n out += asciiChars[c]\n i++\n } else {\n const cp = decodeUtf8(b, i, end)\n out += cp < 0x10000 ? String.fromCharCode(cp) : String.fromCodePoint(cp)\n i += cp < 0x800 ? 2 : cp < 0x10000 ? 3 : 4\n }\n }\n return out\n }\n}\n\nconst makeUtf16 = (littleEndian: boolean): Encoding<Uint8Array> => {\n const lo = littleEndian ? 0 : 1\n const hi = 1 - lo\n let decoder: TextDecoder | undefined\n return {\n name: littleEndian ? \"UTF-16LE\" : \"UTF-16BE\",\n unit: 2,\n asciiCompatible: false,\n decode: (b, i, end) => {\n if (i + 1 >= end) return Truncated\n const c = b[i + lo] | (b[i + hi] << 8)\n if ((c & 0xf800) !== 0xd800) return c\n if (c > 0xdbff) return Invalid\n if (i + 3 >= end) return Truncated\n const d = b[i + 2 + lo] | (b[i + 2 + hi] << 8)\n return (d & 0xfc00) === 0xdc00 ? ((c - 0xd800) << 10) + (d - 0xdc00) + 0x10000 : Invalid\n },\n width: (cp) => (cp > 0xffff ? 4 : 2),\n encode: (text) => {\n const out = new Uint8Array(text.length * 2)\n for (let i = 0; i < text.length; i++) {\n const c = text.charCodeAt(i)\n out[2 * i + lo] = c & 0xff\n out[2 * i + hi] = c >> 8\n }\n return out\n },\n text: (b, start, end) => {\n if (end - start <= SHORT * 2) {\n // The range is well formed, so surrogate pairs can be copied unit by unit\n let out = \"\"\n for (let i = start; i < end; i += 2) out += String.fromCharCode(b[i + lo] | (b[i + hi] << 8))\n return out\n }\n decoder ??= new TextDecoder(littleEndian ? \"utf-16le\" : \"utf-16be\", { ignoreBOM: true })\n return decodeRange(decoder, b, start, end)\n }\n }\n}\n\n/** UTF-16 bytes, little endian. */\nexport const utf16le: Encoding<Uint8Array> = /*#__PURE__*/ makeUtf16(true)\n\n/** UTF-16 bytes, big endian. */\nexport const utf16be: Encoding<Uint8Array> = /*#__PURE__*/ makeUtf16(false)\n\n/** ISO-8859-1: every byte is the code point of the same value. */\nexport const latin1: Encoding<Uint8Array> = {\n name: \"ISO-8859-1\",\n unit: 1,\n asciiCompatible: true,\n decode: (b, i) => b[i],\n width: () => 1,\n encode: (text) => {\n const out = new Uint8Array(text.length)\n for (let i = 0; i < text.length; i++) {\n const c = text.charCodeAt(i)\n if (c > 0xff) throw new RangeError(`${JSON.stringify(text[i])} can't be encoded as ISO-8859-1`)\n out[i] = c\n }\n return out\n },\n text: (b, start, end) => {\n let out = \"\"\n for (let i = start; i < end; i += 8192) {\n out += String.fromCharCode.apply(null, b.subarray(i, Math.min(end, i + 8192)) as unknown as Array<number>)\n }\n return out\n },\n [FastLimit]: 0x100\n} as Encoding<Uint8Array>\n\n// -----------------------------------------------------------------------------\n// Reading code points from a State\n// -----------------------------------------------------------------------------\n\n/** The width of the code point returned by the latest {@link next}. */\nexport let width = 0\n\n/**\n * Decodes the code point at the cursor without consuming it. Returns the\n * code point (setting {@link width}), {@link End}, {@link Invalid}, or\n * {@link Truncated} (only for partial input; on complete input a truncated\n * sequence is {@link Invalid}).\n */\nexport const next = (enc: Encoding<any>, state: State<any>, pos: number = state.pos): number => {\n const end = state.end\n if (pos >= end) return End\n const cp = enc.decode(state.input, pos, end)\n if (cp >= 0) {\n width = enc.width(cp)\n return cp\n }\n return cp === Truncated && !state.partial ? Invalid : cp\n}\n\n/**\n * Fails a parser that expected a code point but found `cp` (one of the\n * negative results of {@link next}, or a code point that did not match).\n */\nexport const failAt = (\n state: State<any>,\n cp: number,\n kind: Parameters<State[\"backtrack\"]>[0],\n expected: ReadonlyArray<string>,\n offset: number = state.pos\n): Fail => {\n if (cp === End) return state.eoi(kind, expected, 1)\n if (cp === Truncated) return state.incomplete(1, expected)\n return state.backtrack(kind, expected, offset)\n}\n\n// Results of `scan`, kept in module variables to avoid allocating\n/** Offset reached by the latest {@link scan}. */\nexport let scanOffset = 0\n/** Number of code points matched by the latest {@link scan}. */\nexport let scanCount = 0\n/**\n * Why the latest {@link scan} stopped: 0 = a non-matching code point or the\n * maximum count, or one of {@link End}, {@link Invalid}, {@link Truncated}.\n */\nexport let scanStop = 0\n\n/**\n * Scans code points from `pos` while `test(cp) !== negate`, up to `max`\n * code points. `fast` is `fastLimit(enc)`, which callers can precompute.\n */\nexport const scan = (\n enc: Encoding<any>,\n state: State<any>,\n test: (cp: number) => boolean,\n negate: boolean,\n max: number,\n pos: number = state.pos,\n fast: number = fastLimit(enc)\n): void => {\n const end = state.end\n const decode = enc.decode\n let i = pos\n let count = 0\n let stop = 0\n if (state.inputKind === 0) {\n const s = state.input as string\n while (count < max) {\n if (i >= end) {\n stop = End\n break\n }\n const c = s.charCodeAt(i)\n if (c < fast) {\n if (test(c) === negate) break\n i++\n } else {\n const cp = decode(s, i, end)\n if (cp < 0) {\n stop = cp === Truncated && state.partial ? Truncated : Invalid\n break\n }\n if (test(cp) === negate) break\n i += enc.width(cp)\n }\n count++\n }\n } else {\n const b = state.input as Uint8Array\n while (count < max) {\n if (i >= end) {\n stop = End\n break\n }\n const c = b[i]\n if (c < fast) {\n if (test(c) === negate) break\n i++\n } else {\n const cp = decode(b, i, end)\n if (cp < 0) {\n stop = cp === Truncated && state.partial ? Truncated : Invalid\n break\n }\n if (test(cp) === negate) break\n i += enc.width(cp)\n }\n count++\n }\n }\n scanOffset = i\n scanCount = count\n scanStop = stop\n}\n\nconst always = () => true\n\n/**\n * Checks that `[start, end)` is well formed, counting its code points.\n * Returns the count, or `-1 - offset` of the first malformed sequence.\n */\nexport const validate = (enc: Encoding<any>, state: State<any>, start: number, end: number): number => {\n const savedEnd = state.end\n const savedPartial = state.partial\n state.end = end\n state.partial = false\n scan(enc, state, always, false, Infinity, start)\n state.end = savedEnd\n state.partial = savedPartial\n return scanStop === Invalid ? -1 - scanOffset : scanCount\n}\n\n// -----------------------------------------------------------------------------\n// Case folding\n// -----------------------------------------------------------------------------\n\nconst foldCache = /*#__PURE__*/ new Map<number, number>()\n\nconst single = (s: string): number => {\n const cp = firstCodePoint(s)\n return s.length === (cp > 0xffff ? 2 : 1) ? cp : -1\n}\n\n/**\n * Simple case folding of a code point: the lowercase of its uppercase, when\n * both map to a single code point (so `\"K\"` (Kelvin) and `\"ſ\"` fold to `\"k\"`\n * and `\"s\"`), otherwise the code point itself.\n */\nexport const fold = (cp: number): number => {\n if (cp < 128) return cp >= 65 && cp <= 90 ? cp + 32 : cp\n let f = foldCache.get(cp)\n if (f === undefined) {\n const c = String.fromCodePoint(cp)\n const upper = c.toUpperCase()\n const viaUpper = single(upper) >= 0 ? single(upper.toLowerCase()) : -1\n f = viaUpper >= 0 ? viaUpper : single(c.toLowerCase())\n if (f < 0) f = cp\n foldCache.set(cp, f)\n }\n return f\n}\n\n// -----------------------------------------------------------------------------\n// Error rendering\n// -----------------------------------------------------------------------------\n\n/**\n * Walks the code points of `[start, end)` leniently: malformed sequences\n * are reported as `-1` and skipped one code unit at a time.\n */\nexport const walk = (\n enc: Encoding<any>,\n input: string | Uint8Array,\n start: number,\n end: number,\n f: (cp: number, offset: number, width: number) => boolean | void\n): void => {\n let i = start\n while (i < end) {\n let cp = enc.decode(input, i, end)\n let w: number\n if (cp >= 0) {\n w = enc.width(cp)\n } else {\n cp = -1\n w = Math.min(enc.unit, end - i)\n }\n if (f(cp, i, w) === false) return\n i += w\n }\n}\n\n/** Decodes `[start, end)`, replacing malformed sequences with U+FFFD. */\nexport const lenientText = (enc: Encoding<any>, input: string | Uint8Array, start: number, end: number): string => {\n let out = \"\"\n walk(enc, input, start, end, (cp) => {\n out += cp < 0 ? \"�\" : charOf(cp)\n })\n return out\n}\n"],"mappings":"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"}
|
|
@@ -1,29 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Input, State } from "../Input.js";
|
|
2
|
+
//#region src/internal/tokens.d.ts
|
|
2
3
|
/** A compiled token set. */
|
|
3
4
|
export interface Matcher {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
/** Tests a code point (string input) or a byte (Uint8Array input). */
|
|
6
|
+
readonly code: (code: number) => boolean;
|
|
7
|
+
/** Tests an element of an array input. */
|
|
8
|
+
readonly token: (token: unknown) => boolean;
|
|
9
|
+
/** Human readable description, used in error messages. */
|
|
10
|
+
readonly description: string;
|
|
10
11
|
}
|
|
11
12
|
/** @internal */
|
|
12
13
|
export interface TokenRangeLike {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
readonly _tag: "TokenRange";
|
|
15
|
+
readonly from: string | number;
|
|
16
|
+
readonly to: string | number;
|
|
16
17
|
}
|
|
17
18
|
/** @internal */
|
|
18
19
|
export declare const describeChar: (s: string) => string;
|
|
19
|
-
/** Renders bytes as a Rust-style byte string literal: b"GET\r\n". */
|
|
20
|
-
export declare const describeBytes: (bytes: Uint8Array) => string;
|
|
21
|
-
/**
|
|
22
|
-
* Marks a predicate over characters that also accepts a code point (a
|
|
23
|
-
* number), so string inputs can call it without allocating a string per
|
|
24
|
-
* character.
|
|
25
|
-
*/
|
|
26
|
-
export declare const CodePointPredicate: unique symbol;
|
|
27
20
|
/**
|
|
28
21
|
* The code points accepted by a predicate, as sorted, disjoint, inclusive
|
|
29
22
|
* ranges, when they are known. The compiler turns such predicates into
|
|
@@ -37,7 +30,8 @@ export declare const PredicateRanges: unique symbol;
|
|
|
37
30
|
export declare const codePointPredicate: <F extends (c: never) => boolean>(name: string, f: F, ranges?: ReadonlyArray<readonly [number, number]>) => F;
|
|
38
31
|
/**
|
|
39
32
|
* Compiles a token set. Predicates for string inputs receive the token as a
|
|
40
|
-
* string, so they are wrapped here.
|
|
33
|
+
* string, so they are wrapped here; `charOf` avoids `String.fromCodePoint`,
|
|
34
|
+
* which is several times slower, for the Basic Multilingual Plane.
|
|
41
35
|
*/
|
|
42
36
|
export declare const compile: (set: unknown, kind?: "string" | "code") => Matcher;
|
|
43
37
|
/**
|
|
@@ -45,10 +39,12 @@ export declare const compile: (set: unknown, kind?: "string" | "code") => Matche
|
|
|
45
39
|
* token as a string, byte predicates receive numbers.
|
|
46
40
|
*/
|
|
47
41
|
export interface AnyMatcher {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
readonly forString: Matcher;
|
|
43
|
+
readonly forCode: Matcher;
|
|
44
|
+
readonly description: string;
|
|
51
45
|
}
|
|
46
|
+
/** Describes a literal for error messages: `"abc"`, `b"abc"` or `["a", 1]`. */
|
|
47
|
+
export declare const describeLiteral: (lit: Input) => string;
|
|
52
48
|
export declare const compileAny: (set: unknown) => AnyMatcher;
|
|
53
49
|
/**
|
|
54
50
|
* Whether the string token at `i` is a high surrogate at the very end of a
|
|
@@ -56,8 +52,6 @@ export declare const compileAny: (set: unknown) => AnyMatcher;
|
|
|
56
52
|
* not arrived yet.
|
|
57
53
|
*/
|
|
58
54
|
export declare const splitSurrogate: (state: State<Input>, i: number) => boolean;
|
|
59
|
-
/** Reads the code point at `i` of a string. */
|
|
60
|
-
export declare const codePointAt: (s: string, i: number) => number;
|
|
61
55
|
/**
|
|
62
56
|
* Tests the token at the current position. Returns the token (as the input's
|
|
63
57
|
* token type) and advances, or returns `NoMatch`/`End`.
|
|
@@ -71,18 +65,18 @@ export declare const nextIf: (state: State<Input>, m: AnyMatcher, negate: boolea
|
|
|
71
65
|
* whether the end of input was hit before `max` tokens.
|
|
72
66
|
*/
|
|
73
67
|
export declare const scan: (state: State<Input>, m: AnyMatcher, negate: boolean, max: number) => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
68
|
+
readonly offset: number;
|
|
69
|
+
readonly count: number;
|
|
70
|
+
readonly hitEnd: boolean;
|
|
77
71
|
};
|
|
78
72
|
/** Advances `n` tokens from `start`, returning the offset reached and the count. */
|
|
79
73
|
export declare const advance: (state: State<Input>, start: number, n: number) => {
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
offset: number;
|
|
75
|
+
count: number;
|
|
82
76
|
};
|
|
83
77
|
/** Counts tokens between two offsets. */
|
|
84
78
|
export declare const countTokens: (state: State<Input>, start: number, end: number) => number;
|
|
85
|
-
/** Finds `needle`
|
|
79
|
+
/** Finds `needle` within `[from, state.end)`; returns -1 if absent. */
|
|
86
80
|
export declare const indexOf: (state: State<Input>, needle: Input, from: number) => number;
|
|
87
81
|
/**
|
|
88
82
|
* Compares the input at the current position with a literal. Returns the
|
|
@@ -90,4 +84,5 @@ export declare const indexOf: (state: State<Input>, needle: Input, from: number)
|
|
|
90
84
|
* -1 on mismatch, or -2 when the input ends while matching a prefix.
|
|
91
85
|
*/
|
|
92
86
|
export declare const matchLiteral: (state: State<Input>, lit: Input, caseless: boolean) => number;
|
|
87
|
+
//#endregion
|
|
93
88
|
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","names":[],"sources":["../../src/internal/tokens.ts"],"mappings":";;;iBAOiB;;WAEN,OAAO;;WAEP,QAAQ;;WAER;;;iBAIM;WACN;WACA;WACA;;;qBAQE,eAAgB;;;;;;qBA2FhB;;;;;qBAMA,qBAAsB,WAAW,sBAC5C,cACA,GAAG,GACH,SAAS,6CACR;;;;;;qBAYU,UAAW,cAAc,6BAAmC;;;;;iBAgCxD;WACN,WAAW;WACX,SAAS;WACT;;;qBAuBE,kBAAmB,KAAK;qBASxB,aAAc,iBAAe;;;;;;qBAmB7B,iBAAkB,OAAO,MAAM,QAAQ;;;;;qBAoBvC;qBACA;qBAEA,SAAU,OAAO,MAAM,QAAQ,GAAG,YAAY;;;;;;qBAiC9C,OACX,OAAO,MAAM,QACb,GAAG,YACH,iBACA;WACY;WAAyB;WAAwB;;;qBAkDlD,UAAW,OAAO,MAAM,QAAQ,eAAe;EAAc;EAAgB;;;qBAkB7E,cAAe,OAAO,MAAM,QAAQ,eAAe;;qBAanD,UAAW,OAAO,MAAM,QAAQ,QAAQ,OAAO;;;;;;qBAwC/C,eAAgB,OAAO,MAAM,QAAQ,KAAK,OAAO"}
|