@thomasfosterau/effect-parse 0.0.0-stage → 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +550 -2
  3. package/dist/Ascii.d.ts +392 -0
  4. package/dist/Ascii.d.ts.map +1 -0
  5. package/dist/Ascii.js +610 -0
  6. package/dist/Ascii.js.map +1 -0
  7. package/dist/Binary.d.ts +153 -0
  8. package/dist/Binary.d.ts.map +1 -0
  9. package/dist/Binary.js +171 -0
  10. package/dist/Binary.js.map +1 -0
  11. package/dist/Bits.d.ts +60 -0
  12. package/dist/Bits.d.ts.map +1 -0
  13. package/dist/Bits.js +144 -0
  14. package/dist/Bits.js.map +1 -0
  15. package/dist/Encoding.d.ts +116 -0
  16. package/dist/Encoding.d.ts.map +1 -0
  17. package/dist/Encoding.js +85 -0
  18. package/dist/Encoding.js.map +1 -0
  19. package/dist/Expression.d.ts +124 -0
  20. package/dist/Expression.d.ts.map +1 -0
  21. package/dist/Expression.js +139 -0
  22. package/dist/Expression.js.map +1 -0
  23. package/dist/Input.d.ts +301 -0
  24. package/dist/Input.d.ts.map +1 -0
  25. package/dist/Input.js +312 -0
  26. package/dist/Input.js.map +1 -0
  27. package/dist/Nom.d.ts +518 -0
  28. package/dist/Nom.d.ts.map +1 -0
  29. package/dist/Nom.js +519 -0
  30. package/dist/Nom.js.map +1 -0
  31. package/dist/ParseError.d.ts +120 -0
  32. package/dist/ParseError.d.ts.map +1 -0
  33. package/dist/ParseError.js +301 -0
  34. package/dist/ParseError.js.map +1 -0
  35. package/dist/Parser.d.ts +1312 -0
  36. package/dist/Parser.d.ts.map +1 -0
  37. package/dist/Parser.js +1936 -0
  38. package/dist/Parser.js.map +1 -0
  39. package/dist/ParserSchema.d.ts +31 -0
  40. package/dist/ParserSchema.d.ts.map +1 -0
  41. package/dist/ParserSchema.js +56 -0
  42. package/dist/ParserSchema.js.map +1 -0
  43. package/dist/ParserStream.d.ts +127 -0
  44. package/dist/ParserStream.d.ts.map +1 -0
  45. package/dist/ParserStream.js +270 -0
  46. package/dist/ParserStream.js.map +1 -0
  47. package/dist/Text.d.ts +330 -0
  48. package/dist/Text.d.ts.map +1 -0
  49. package/dist/Text.js +529 -0
  50. package/dist/Text.js.map +1 -0
  51. package/dist/Token.d.ts +225 -0
  52. package/dist/Token.d.ts.map +1 -0
  53. package/dist/Token.js +294 -0
  54. package/dist/Token.js.map +1 -0
  55. package/dist/index.d.ts +17 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +17 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/internal/compiler/closure.d.ts +25 -0
  60. package/dist/internal/compiler/closure.d.ts.map +1 -0
  61. package/dist/internal/compiler/closure.js +1668 -0
  62. package/dist/internal/compiler/closure.js.map +1 -0
  63. package/dist/internal/compiler/entries.d.ts +19 -0
  64. package/dist/internal/compiler/entries.d.ts.map +1 -0
  65. package/dist/internal/compiler/entries.js +32 -0
  66. package/dist/internal/compiler/entries.js.map +1 -0
  67. package/dist/internal/compiler/first.d.ts +33 -0
  68. package/dist/internal/compiler/first.d.ts.map +1 -0
  69. package/dist/internal/compiler/first.js +235 -0
  70. package/dist/internal/compiler/first.js.map +1 -0
  71. package/dist/internal/compiler/jit.d.ts +20 -0
  72. package/dist/internal/compiler/jit.d.ts.map +1 -0
  73. package/dist/internal/compiler/jit.js +1030 -0
  74. package/dist/internal/compiler/jit.js.map +1 -0
  75. package/dist/internal/compiler/registry.d.ts +34 -0
  76. package/dist/internal/compiler/registry.d.ts.map +1 -0
  77. package/dist/internal/compiler/registry.js +46 -0
  78. package/dist/internal/compiler/registry.js.map +1 -0
  79. package/dist/internal/compiler/sets.d.ts +29 -0
  80. package/dist/internal/compiler/sets.d.ts.map +1 -0
  81. package/dist/internal/compiler/sets.js +85 -0
  82. package/dist/internal/compiler/sets.js.map +1 -0
  83. package/dist/internal/entries.d.ts +27 -0
  84. package/dist/internal/entries.d.ts.map +1 -0
  85. package/dist/internal/entries.js +42 -0
  86. package/dist/internal/entries.js.map +1 -0
  87. package/dist/internal/node.d.ts +251 -0
  88. package/dist/internal/node.d.ts.map +1 -0
  89. package/dist/internal/node.js +73 -0
  90. package/dist/internal/node.js.map +1 -0
  91. package/dist/internal/numbers.d.ts +41 -0
  92. package/dist/internal/numbers.d.ts.map +1 -0
  93. package/dist/internal/numbers.js +302 -0
  94. package/dist/internal/numbers.js.map +1 -0
  95. package/dist/internal/resume.d.ts +39 -0
  96. package/dist/internal/resume.d.ts.map +1 -0
  97. package/dist/internal/resume.js +37 -0
  98. package/dist/internal/resume.js.map +1 -0
  99. package/dist/internal/text.d.ts +72 -0
  100. package/dist/internal/text.d.ts.map +1 -0
  101. package/dist/internal/text.js +391 -0
  102. package/dist/internal/text.js.map +1 -0
  103. package/dist/internal/tokens.d.ts +93 -0
  104. package/dist/internal/tokens.d.ts.map +1 -0
  105. package/dist/internal/tokens.js +400 -0
  106. package/dist/internal/tokens.js.map +1 -0
  107. package/package.json +115 -3
  108. package/src/Ascii.ts +741 -0
  109. package/src/Binary.ts +228 -0
  110. package/src/Bits.ts +192 -0
  111. package/src/Encoding.ts +128 -0
  112. package/src/Expression.ts +245 -0
  113. package/src/Input.ts +429 -0
  114. package/src/Nom.ts +642 -0
  115. package/src/ParseError.ts +378 -0
  116. package/src/Parser.ts +2763 -0
  117. package/src/ParserSchema.ts +87 -0
  118. package/src/ParserStream.ts +390 -0
  119. package/src/Text.ts +757 -0
  120. package/src/Token.ts +416 -0
  121. package/src/index.ts +16 -0
  122. package/src/internal/compiler/closure.ts +1583 -0
  123. package/src/internal/compiler/entries.ts +36 -0
  124. package/src/internal/compiler/first.ts +252 -0
  125. package/src/internal/compiler/jit.ts +1091 -0
  126. package/src/internal/compiler/registry.ts +79 -0
  127. package/src/internal/compiler/sets.ts +100 -0
  128. package/src/internal/entries.ts +51 -0
  129. package/src/internal/node.ts +207 -0
  130. package/src/internal/numbers.ts +291 -0
  131. package/src/internal/resume.ts +55 -0
  132. package/src/internal/text.ts +411 -0
  133. package/src/internal/tokens.ts +409 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.js","sourceRoot":"","sources":["../../src/internal/numbers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Checkpoints for resumable (streaming) parses.
3
+ *
4
+ * In partial mode a parser only succeeds on what it has seen, so a value
5
+ * parsed from a prefix of the input stays the same when more input
6
+ * arrives. A repetition that runs out of input mid-way can therefore record
7
+ * how far it got (its accumulator and position) before the failure
8
+ * propagates. When the parse is attempted again with more input, the same
9
+ * repetition, entered at the same offset, takes its checkpoint and carries
10
+ * on from there instead of re-parsing every element.
11
+ *
12
+ * Checkpoints are keyed by a per-parser key and the offset the repetition
13
+ * started at. Taking a checkpoint removes it, so its accumulator has a
14
+ * single owner; the repetition saves a new one if it runs out again.
15
+ *
16
+ * A resumed repetition that then completes leaves a {@link Done}
17
+ * checkpoint with its result, since the input may still run out after it
18
+ * (in trailing whitespace, say) and the next attempt would otherwise parse
19
+ * it all again. `Done` checkpoints stay in place when taken.
20
+ */
21
+ import type { State } from "../Input.js";
22
+ /** The checkpoints of a resumable parse. */
23
+ export type Checkpoints = Map<object, Map<number, unknown>>;
24
+ /** Takes (and removes) the checkpoint of `key` entered at `offset`, if any. */
25
+ export declare const take: (state: State<any>, key: object, offset: number) => unknown;
26
+ /** The result of a repetition that completed, and where it ended. */
27
+ export declare class Done {
28
+ readonly value: unknown;
29
+ readonly pos: number;
30
+ constructor(value: unknown, pos: number);
31
+ }
32
+ /**
33
+ * Returns `value`, the result of a repetition entered at `entry`; when the
34
+ * repetition was resumed from a checkpoint, records it as {@link Done}.
35
+ */
36
+ export declare const done: <A>(state: State<any>, key: object, entry: number, resumed: boolean, value: A) => A;
37
+ /** Records the checkpoint of `key` entered at `offset`. */
38
+ export declare const save: (state: State<any>, key: object, offset: number, checkpoint: unknown) => void;
39
+ //# sourceMappingURL=resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/internal/resume.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,4CAA4C;AAC5C,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAE3D,+EAA+E;AAC/E,eAAO,MAAM,IAAI,UAAW,KAAK,CAAC,GAAG,CAAC,OAAO,MAAM,UAAU,MAAM,KAAG,OAMrE,CAAA;AAED,qEAAqE;AACrE,qBAAa,IAAI;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM;IAAzD,YAAqB,KAAK,EAAE,OAAO,EAAW,GAAG,EAAE,MAAM,EAAI;CAC9D;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,OAAO,MAAM,SAAS,MAAM,WAAW,OAAO,SAAS,CAAC,KAAG,CAGnG,CAAA;AAED,2DAA2D;AAC3D,eAAO,MAAM,IAAI,UAAW,KAAK,CAAC,GAAG,CAAC,OAAO,MAAM,UAAU,MAAM,cAAc,OAAO,KAAG,IAK1F,CAAA"}
@@ -0,0 +1,37 @@
1
+ /** Takes (and removes) the checkpoint of `key` entered at `offset`, if any. */
2
+ export const take = (state, key, offset) => {
3
+ const byKey = state.resume.get(key);
4
+ if (byKey === undefined)
5
+ return undefined;
6
+ const checkpoint = byKey.get(offset);
7
+ if (checkpoint !== undefined && !(checkpoint instanceof Done))
8
+ byKey.delete(offset);
9
+ return checkpoint;
10
+ };
11
+ /** The result of a repetition that completed, and where it ended. */
12
+ export class Done {
13
+ value;
14
+ pos;
15
+ constructor(value, pos) {
16
+ this.value = value;
17
+ this.pos = pos;
18
+ }
19
+ }
20
+ /**
21
+ * Returns `value`, the result of a repetition entered at `entry`; when the
22
+ * repetition was resumed from a checkpoint, records it as {@link Done}.
23
+ */
24
+ export const done = (state, key, entry, resumed, value) => {
25
+ if (resumed && state.resume !== undefined)
26
+ save(state, key, entry, new Done(value, state.pos));
27
+ return value;
28
+ };
29
+ /** Records the checkpoint of `key` entered at `offset`. */
30
+ export const save = (state, key, offset, checkpoint) => {
31
+ const resume = state.resume;
32
+ let byKey = resume.get(key);
33
+ if (byKey === undefined)
34
+ resume.set(key, byKey = new Map());
35
+ byKey.set(offset, checkpoint);
36
+ };
37
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/internal/resume.ts"],"names":[],"mappings":"AAyBA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAiB,EAAE,GAAW,EAAE,MAAc,EAAW,EAAE;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACpC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,YAAY,IAAI,CAAC;QAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnF,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,qEAAqE;AACrE,MAAM,OAAO,IAAI;IACM,KAAK;IAAoB,GAAG;IAAjD,YAAqB,KAAc,EAAW,GAAW;qBAApC,KAAK;mBAAoB,GAAG;IAAW,CAAC;CAC9D;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAI,KAAiB,EAAE,GAAW,EAAE,KAAa,EAAE,OAAgB,EAAE,KAAQ,EAAK,EAAE;IACtG,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAC9F,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAiB,EAAE,GAAW,EAAE,MAAc,EAAE,UAAmB,EAAQ,EAAE;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAO,CAAA;IAC5B,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,CAAA;IAC3D,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAC/B,CAAC,CAAA"}
@@ -0,0 +1,72 @@
1
+ import type { Encoding } from "../Encoding.js";
2
+ import type { Fail, State } from "../Input.js";
3
+ /** `Encoding.decode`: the input is malformed. */
4
+ export declare const Invalid = -1;
5
+ /** `Encoding.decode`: the input ends inside a sequence. */
6
+ export declare const Truncated = -2;
7
+ /** `next`: the input has ended. */
8
+ export declare const End = -3;
9
+ /** @internal */
10
+ export declare const fastLimit: (enc: Encoding<any>) => number;
11
+ /** `String.fromCodePoint`, with the ASCII characters cached. */
12
+ export declare const charOf: (cp: number) => string;
13
+ /**
14
+ * JavaScript strings: UTF-16 code units. Offsets are code-unit indices and
15
+ * slices are `String.prototype.slice`s, so no decoding is needed.
16
+ */
17
+ export declare const string: Encoding<string>;
18
+ /** UTF-8 bytes. */
19
+ export declare const utf8: Encoding<Uint8Array>;
20
+ /** UTF-16 bytes, little endian. */
21
+ export declare const utf16le: Encoding<Uint8Array>;
22
+ /** UTF-16 bytes, big endian. */
23
+ export declare const utf16be: Encoding<Uint8Array>;
24
+ /** ISO-8859-1: every byte is the code point of the same value. */
25
+ export declare const latin1: Encoding<Uint8Array>;
26
+ /** The width of the code point returned by the latest {@link next}. */
27
+ export declare let width: number;
28
+ /**
29
+ * Decodes the code point at the cursor without consuming it. Returns the
30
+ * code point (setting {@link width}), {@link End}, {@link Invalid}, or
31
+ * {@link Truncated} (only for partial input; on complete input a truncated
32
+ * sequence is {@link Invalid}).
33
+ */
34
+ export declare const next: (enc: Encoding<any>, state: State<any>, pos?: number) => number;
35
+ /**
36
+ * Fails a parser that expected a code point but found `cp` (one of the
37
+ * negative results of {@link next}, or a code point that did not match).
38
+ */
39
+ export declare const failAt: (state: State<any>, cp: number, kind: Parameters<State["backtrack"]>[0], expected: ReadonlyArray<string>, offset?: number) => Fail;
40
+ /** Offset reached by the latest {@link scan}. */
41
+ export declare let scanOffset: number;
42
+ /** Number of code points matched by the latest {@link scan}. */
43
+ export declare let scanCount: number;
44
+ /**
45
+ * Why the latest {@link scan} stopped: 0 = a non-matching code point or the
46
+ * maximum count, or one of {@link End}, {@link Invalid}, {@link Truncated}.
47
+ */
48
+ export declare let scanStop: number;
49
+ /**
50
+ * Scans code points from `pos` while `test(cp) !== negate`, up to `max`
51
+ * code points. `fast` is `fastLimit(enc)`, which callers can precompute.
52
+ */
53
+ export declare const scan: (enc: Encoding<any>, state: State<any>, test: (cp: number) => boolean, negate: boolean, max: number, pos?: number, fast?: number) => void;
54
+ /**
55
+ * Checks that `[start, end)` is well formed, counting its code points.
56
+ * Returns the count, or `-1 - offset` of the first malformed sequence.
57
+ */
58
+ export declare const validate: (enc: Encoding<any>, state: State<any>, start: number, end: number) => number;
59
+ /**
60
+ * Simple case folding of a code point: the lowercase of its uppercase, when
61
+ * both map to a single code point (so `"K"` (Kelvin) and `"ſ"` fold to `"k"`
62
+ * and `"s"`), otherwise the code point itself.
63
+ */
64
+ export declare const fold: (cp: number) => number;
65
+ /**
66
+ * Walks the code points of `[start, end)` leniently: malformed sequences
67
+ * are reported as `-1` and skipped one code unit at a time.
68
+ */
69
+ export declare const walk: (enc: Encoding<any>, input: string | Uint8Array, start: number, end: number, f: (cp: number, offset: number, width: number) => boolean | void) => void;
70
+ /** Decodes `[start, end)`, replacing malformed sequences with U+FFFD. */
71
+ export declare const lenientText: (enc: Encoding<any>, input: string | Uint8Array, start: number, end: number) => string;
72
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/internal/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAM9C,iDAAiD;AACjD,eAAO,MAAM,OAAO,KAAK,CAAA;AACzB,2DAA2D;AAC3D,eAAO,MAAM,SAAS,KAAK,CAAA;AAC3B,mCAAmC;AACnC,eAAO,MAAM,GAAG,KAAK,CAAA;AAYrB,gBAAgB;AAChB,eAAO,MAAM,SAAS,QAAS,QAAQ,CAAC,GAAG,CAAC,KAAG,MACgC,CAAA;AAI/E,gEAAgE;AAChE,eAAO,MAAM,MAAM,OAAQ,MAAM,KAAG,MAC4D,CAAA;AAahG;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM,CASf,CAAA;AAmDrB,mBAAmB;AACnB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,UAAU,CAuBrC,CAAA;AA0CD,mCAAmC;AACnC,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAmB,CAAA;AAE5D,gCAAgC;AAChC,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAoB,CAAA;AAE7D,kEAAkE;AAClE,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,UAAU,CAuBf,CAAA;AAMzB,uEAAuE;AACvE,eAAO,IAAI,KAAK,QAAI,CAAA;AAEpB;;;;;GAKG;AACH,eAAO,MAAM,IAAI,QAAS,QAAQ,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,QAAO,MAAM,KAAe,MASrF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,UACV,KAAK,CAAC,GAAG,CAAC,MACb,MAAM,QACJ,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAC7B,aAAa,CAAC,MAAM,CAAC,WACvB,MAAM,KACb,IAIF,CAAA;AAGD,iDAAiD;AACjD,eAAO,IAAI,UAAU,QAAI,CAAA;AACzB,gEAAgE;AAChE,eAAO,IAAI,SAAS,QAAI,CAAA;AACxB;;;GAGG;AACH,eAAO,IAAI,QAAQ,QAAI,CAAA;AAEvB;;;GAGG;AACH,eAAO,MAAM,IAAI,QACV,QAAQ,CAAC,GAAG,CAAC,SACX,KAAK,CAAC,GAAG,CAAC,QACX,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,UACrB,OAAO,OACV,MAAM,QACN,MAAM,SACL,MAAM,KACX,IAsDF,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,QAAQ,QAAS,QAAQ,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,SAAS,MAAM,OAAO,MAAM,KAAG,MAS5F,CAAA;AAaD;;;;GAIG;AACH,eAAO,MAAM,IAAI,OAAQ,MAAM,KAAG,MAYjC,CAAA;AAMD;;;GAGG;AACH,eAAO,MAAM,IAAI,QACV,QAAQ,CAAC,GAAG,CAAC,SACX,MAAM,GAAG,UAAU,SACnB,MAAM,OACR,MAAM,KACR,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,KAC/D,IAcF,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,WAAW,QAAS,QAAQ,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,UAAU,SAAS,MAAM,OAAO,MAAM,KAAG,MAMxG,CAAA"}
@@ -0,0 +1,391 @@
1
+ // -----------------------------------------------------------------------------
2
+ // Decoding results
3
+ // -----------------------------------------------------------------------------
4
+ /** `Encoding.decode`: the input is malformed. */
5
+ export const Invalid = -1;
6
+ /** `Encoding.decode`: the input ends inside a sequence. */
7
+ export const Truncated = -2;
8
+ /** `next`: the input has ended. */
9
+ export const End = -3;
10
+ // -----------------------------------------------------------------------------
11
+ // Encodings
12
+ // -----------------------------------------------------------------------------
13
+ /**
14
+ * Units below this value decode to themselves with width 1, so hot loops can
15
+ * skip `decode`. Defaults to 0x80 for ASCII compatible encodings.
16
+ */
17
+ const FastLimit = Symbol.for("effect-parse/Encoding/FastLimit");
18
+ /** @internal */
19
+ export const fastLimit = (enc) => enc[FastLimit] ?? (enc.asciiCompatible && enc.unit === 1 ? 0x80 : 0);
20
+ const asciiChars = Array.from({ length: 128 }, (_, i) => String.fromCharCode(i));
21
+ /** `String.fromCodePoint`, with the ASCII characters cached. */
22
+ export const charOf = (cp) => cp < 128 ? asciiChars[cp] : cp < 0x10000 ? String.fromCharCode(cp) : String.fromCodePoint(cp);
23
+ const decodeString = (s, i, end) => {
24
+ const c = s.charCodeAt(i);
25
+ if ((c & 0xf800) !== 0xd800)
26
+ return c;
27
+ if (c <= 0xdbff) {
28
+ if (i + 1 >= end)
29
+ return Truncated;
30
+ const d = s.charCodeAt(i + 1);
31
+ if ((d & 0xfc00) === 0xdc00)
32
+ return ((c - 0xd800) << 10) + (d - 0xdc00) + 0x10000;
33
+ }
34
+ return Invalid;
35
+ };
36
+ /**
37
+ * JavaScript strings: UTF-16 code units. Offsets are code-unit indices and
38
+ * slices are `String.prototype.slice`s, so no decoding is needed.
39
+ */
40
+ export const string = {
41
+ name: "UTF-16",
42
+ unit: 1,
43
+ asciiCompatible: true,
44
+ decode: decodeString,
45
+ width: (cp) => cp > 0xffff ? 2 : 1,
46
+ encode: (text) => text,
47
+ text: (s, start, end) => s.slice(start, end),
48
+ [FastLimit]: 0xd800
49
+ };
50
+ const decodeUtf8 = (b, i, end) => {
51
+ const c = b[i];
52
+ if (c < 0x80)
53
+ return c;
54
+ if (c < 0xc2)
55
+ return Invalid;
56
+ if (c < 0xe0) {
57
+ if (i + 1 >= end)
58
+ return Truncated;
59
+ const d = b[i + 1];
60
+ return (d & 0xc0) === 0x80 ? ((c & 0x1f) << 6) | (d & 0x3f) : Invalid;
61
+ }
62
+ if (c < 0xf0) {
63
+ if (i + 1 >= end)
64
+ return Truncated;
65
+ const d = b[i + 1];
66
+ // Reject overlong encodings (E0 80..9F) and surrogates (ED A0..BF)
67
+ if (c === 0xe0 ? d < 0xa0 || d > 0xbf : c === 0xed ? d < 0x80 || d > 0x9f : (d & 0xc0) !== 0x80)
68
+ return Invalid;
69
+ if (i + 2 >= end)
70
+ return Truncated;
71
+ const e = b[i + 2];
72
+ return (e & 0xc0) === 0x80 ? ((c & 0x0f) << 12) | ((d & 0x3f) << 6) | (e & 0x3f) : Invalid;
73
+ }
74
+ if (c < 0xf5) {
75
+ if (i + 1 >= end)
76
+ return Truncated;
77
+ const d = b[i + 1];
78
+ // Reject overlong encodings (F0 80..8F) and code points above U+10FFFF (F4 90..BF)
79
+ if (c === 0xf0 ? d < 0x90 || d > 0xbf : c === 0xf4 ? d < 0x80 || d > 0x8f : (d & 0xc0) !== 0x80)
80
+ return Invalid;
81
+ if (i + 2 >= end)
82
+ return Truncated;
83
+ const e = b[i + 2];
84
+ if ((e & 0xc0) !== 0x80)
85
+ return Invalid;
86
+ if (i + 3 >= end)
87
+ return Truncated;
88
+ const f = b[i + 3];
89
+ return (f & 0xc0) === 0x80 ? ((c & 0x07) << 18) | ((d & 0x3f) << 12) | ((e & 0x3f) << 6) | (f & 0x3f) : Invalid;
90
+ }
91
+ return Invalid;
92
+ };
93
+ // Building short strings by hand is several times faster than a
94
+ // `TextDecoder` call, which has a high fixed cost.
95
+ const SHORT = 24;
96
+ const utf8Decoder = new TextDecoder("utf-8", { ignoreBOM: true });
97
+ /**
98
+ * Decodes `b[start, end)`. Some platforms' `TextDecoder` rejects views of a
99
+ * `SharedArrayBuffer`, so those are copied first.
100
+ */
101
+ const decodeRange = (decoder, b, start, end) => {
102
+ const view = b.subarray(start, end);
103
+ return decoder.decode(b.buffer instanceof ArrayBuffer ? view : view.slice());
104
+ };
105
+ const utf8Encoder = new TextEncoder();
106
+ /** UTF-8 bytes. */
107
+ export const utf8 = {
108
+ name: "UTF-8",
109
+ unit: 1,
110
+ asciiCompatible: true,
111
+ decode: decodeUtf8,
112
+ width: (cp) => cp < 0x80 ? 1 : cp < 0x800 ? 2 : cp < 0x10000 ? 3 : 4,
113
+ encode: (text) => utf8Encoder.encode(text),
114
+ text: (b, start, end) => {
115
+ if (end - start > SHORT)
116
+ return decodeRange(utf8Decoder, b, start, end);
117
+ let out = "";
118
+ for (let i = start; i < end;) {
119
+ const c = b[i];
120
+ if (c < 0x80) {
121
+ out += asciiChars[c];
122
+ i++;
123
+ }
124
+ else {
125
+ const cp = decodeUtf8(b, i, end);
126
+ out += cp < 0x10000 ? String.fromCharCode(cp) : String.fromCodePoint(cp);
127
+ i += cp < 0x800 ? 2 : cp < 0x10000 ? 3 : 4;
128
+ }
129
+ }
130
+ return out;
131
+ }
132
+ };
133
+ const makeUtf16 = (littleEndian) => {
134
+ const lo = littleEndian ? 0 : 1;
135
+ const hi = 1 - lo;
136
+ let decoder;
137
+ return {
138
+ name: littleEndian ? "UTF-16LE" : "UTF-16BE",
139
+ unit: 2,
140
+ asciiCompatible: false,
141
+ decode: (b, i, end) => {
142
+ if (i + 1 >= end)
143
+ return Truncated;
144
+ const c = b[i + lo] | (b[i + hi] << 8);
145
+ if ((c & 0xf800) !== 0xd800)
146
+ return c;
147
+ if (c > 0xdbff)
148
+ return Invalid;
149
+ if (i + 3 >= end)
150
+ return Truncated;
151
+ const d = b[i + 2 + lo] | (b[i + 2 + hi] << 8);
152
+ return (d & 0xfc00) === 0xdc00 ? ((c - 0xd800) << 10) + (d - 0xdc00) + 0x10000 : Invalid;
153
+ },
154
+ width: (cp) => cp > 0xffff ? 4 : 2,
155
+ encode: (text) => {
156
+ const out = new Uint8Array(text.length * 2);
157
+ for (let i = 0; i < text.length; i++) {
158
+ const c = text.charCodeAt(i);
159
+ out[2 * i + lo] = c & 0xff;
160
+ out[2 * i + hi] = c >> 8;
161
+ }
162
+ return out;
163
+ },
164
+ text: (b, start, end) => {
165
+ if (end - start <= SHORT * 2) {
166
+ // The range is well formed, so surrogate pairs can be copied unit by unit
167
+ let out = "";
168
+ for (let i = start; i < end; i += 2)
169
+ out += String.fromCharCode(b[i + lo] | (b[i + hi] << 8));
170
+ return out;
171
+ }
172
+ decoder ??= new TextDecoder(littleEndian ? "utf-16le" : "utf-16be", { ignoreBOM: true });
173
+ return decodeRange(decoder, b, start, end);
174
+ }
175
+ };
176
+ };
177
+ /** UTF-16 bytes, little endian. */
178
+ export const utf16le = makeUtf16(true);
179
+ /** UTF-16 bytes, big endian. */
180
+ export const utf16be = makeUtf16(false);
181
+ /** ISO-8859-1: every byte is the code point of the same value. */
182
+ export const latin1 = {
183
+ name: "ISO-8859-1",
184
+ unit: 1,
185
+ asciiCompatible: true,
186
+ decode: (b, i) => b[i],
187
+ width: () => 1,
188
+ encode: (text) => {
189
+ const out = new Uint8Array(text.length);
190
+ for (let i = 0; i < text.length; i++) {
191
+ const c = text.charCodeAt(i);
192
+ if (c > 0xff)
193
+ throw new RangeError(`${JSON.stringify(text[i])} can't be encoded as ISO-8859-1`);
194
+ out[i] = c;
195
+ }
196
+ return out;
197
+ },
198
+ text: (b, start, end) => {
199
+ let out = "";
200
+ for (let i = start; i < end; i += 8192) {
201
+ out += String.fromCharCode.apply(null, b.subarray(i, Math.min(end, i + 8192)));
202
+ }
203
+ return out;
204
+ },
205
+ [FastLimit]: 0x100
206
+ };
207
+ // -----------------------------------------------------------------------------
208
+ // Reading code points from a State
209
+ // -----------------------------------------------------------------------------
210
+ /** The width of the code point returned by the latest {@link next}. */
211
+ export let width = 0;
212
+ /**
213
+ * Decodes the code point at the cursor without consuming it. Returns the
214
+ * code point (setting {@link width}), {@link End}, {@link Invalid}, or
215
+ * {@link Truncated} (only for partial input; on complete input a truncated
216
+ * sequence is {@link Invalid}).
217
+ */
218
+ export const next = (enc, state, pos = state.pos) => {
219
+ const end = state.end;
220
+ if (pos >= end)
221
+ return End;
222
+ const cp = enc.decode(state.input, pos, end);
223
+ if (cp >= 0) {
224
+ width = enc.width(cp);
225
+ return cp;
226
+ }
227
+ return cp === Truncated && !state.partial ? Invalid : cp;
228
+ };
229
+ /**
230
+ * Fails a parser that expected a code point but found `cp` (one of the
231
+ * negative results of {@link next}, or a code point that did not match).
232
+ */
233
+ export const failAt = (state, cp, kind, expected, offset = state.pos) => {
234
+ if (cp === End)
235
+ return state.eoi(kind, expected, 1);
236
+ if (cp === Truncated)
237
+ return state.incomplete(1, expected);
238
+ return state.backtrack(kind, expected, offset);
239
+ };
240
+ // Results of `scan`, kept in module variables to avoid allocating
241
+ /** Offset reached by the latest {@link scan}. */
242
+ export let scanOffset = 0;
243
+ /** Number of code points matched by the latest {@link scan}. */
244
+ export let scanCount = 0;
245
+ /**
246
+ * Why the latest {@link scan} stopped: 0 = a non-matching code point or the
247
+ * maximum count, or one of {@link End}, {@link Invalid}, {@link Truncated}.
248
+ */
249
+ export let scanStop = 0;
250
+ /**
251
+ * Scans code points from `pos` while `test(cp) !== negate`, up to `max`
252
+ * code points. `fast` is `fastLimit(enc)`, which callers can precompute.
253
+ */
254
+ export const scan = (enc, state, test, negate, max, pos = state.pos, fast = fastLimit(enc)) => {
255
+ const end = state.end;
256
+ const decode = enc.decode;
257
+ let i = pos;
258
+ let count = 0;
259
+ let stop = 0;
260
+ if (state.inputKind === 0) {
261
+ const s = state.input;
262
+ while (count < max) {
263
+ if (i >= end) {
264
+ stop = End;
265
+ break;
266
+ }
267
+ const c = s.charCodeAt(i);
268
+ if (c < fast) {
269
+ if (test(c) === negate)
270
+ break;
271
+ i++;
272
+ }
273
+ else {
274
+ const cp = decode(s, i, end);
275
+ if (cp < 0) {
276
+ stop = cp === Truncated && state.partial ? Truncated : Invalid;
277
+ break;
278
+ }
279
+ if (test(cp) === negate)
280
+ break;
281
+ i += enc.width(cp);
282
+ }
283
+ count++;
284
+ }
285
+ }
286
+ else {
287
+ const b = state.input;
288
+ while (count < max) {
289
+ if (i >= end) {
290
+ stop = End;
291
+ break;
292
+ }
293
+ const c = b[i];
294
+ if (c < fast) {
295
+ if (test(c) === negate)
296
+ break;
297
+ i++;
298
+ }
299
+ else {
300
+ const cp = decode(b, i, end);
301
+ if (cp < 0) {
302
+ stop = cp === Truncated && state.partial ? Truncated : Invalid;
303
+ break;
304
+ }
305
+ if (test(cp) === negate)
306
+ break;
307
+ i += enc.width(cp);
308
+ }
309
+ count++;
310
+ }
311
+ }
312
+ scanOffset = i;
313
+ scanCount = count;
314
+ scanStop = stop;
315
+ };
316
+ const always = () => true;
317
+ /**
318
+ * Checks that `[start, end)` is well formed, counting its code points.
319
+ * Returns the count, or `-1 - offset` of the first malformed sequence.
320
+ */
321
+ export const validate = (enc, state, start, end) => {
322
+ const savedEnd = state.end;
323
+ const savedPartial = state.partial;
324
+ state.end = end;
325
+ state.partial = false;
326
+ scan(enc, state, always, false, Infinity, start);
327
+ state.end = savedEnd;
328
+ state.partial = savedPartial;
329
+ return scanStop === Invalid ? -1 - scanOffset : scanCount;
330
+ };
331
+ // -----------------------------------------------------------------------------
332
+ // Case folding
333
+ // -----------------------------------------------------------------------------
334
+ const foldCache = new Map();
335
+ const single = (s) => {
336
+ const cp = s.codePointAt(0);
337
+ return s.length === (cp > 0xffff ? 2 : 1) ? cp : -1;
338
+ };
339
+ /**
340
+ * Simple case folding of a code point: the lowercase of its uppercase, when
341
+ * both map to a single code point (so `"K"` (Kelvin) and `"ſ"` fold to `"k"`
342
+ * and `"s"`), otherwise the code point itself.
343
+ */
344
+ export const fold = (cp) => {
345
+ if (cp < 128)
346
+ return cp >= 65 && cp <= 90 ? cp + 32 : cp;
347
+ let f = foldCache.get(cp);
348
+ if (f === undefined) {
349
+ const c = String.fromCodePoint(cp);
350
+ const upper = c.toUpperCase();
351
+ const viaUpper = single(upper) >= 0 ? single(upper.toLowerCase()) : -1;
352
+ f = viaUpper >= 0 ? viaUpper : single(c.toLowerCase());
353
+ if (f < 0)
354
+ f = cp;
355
+ foldCache.set(cp, f);
356
+ }
357
+ return f;
358
+ };
359
+ // -----------------------------------------------------------------------------
360
+ // Error rendering
361
+ // -----------------------------------------------------------------------------
362
+ /**
363
+ * Walks the code points of `[start, end)` leniently: malformed sequences
364
+ * are reported as `-1` and skipped one code unit at a time.
365
+ */
366
+ export const walk = (enc, input, start, end, f) => {
367
+ let i = start;
368
+ while (i < end) {
369
+ let cp = enc.decode(input, i, end);
370
+ let w;
371
+ if (cp >= 0) {
372
+ w = enc.width(cp);
373
+ }
374
+ else {
375
+ cp = -1;
376
+ w = Math.min(enc.unit, end - i);
377
+ }
378
+ if (f(cp, i, w) === false)
379
+ return;
380
+ i += w;
381
+ }
382
+ };
383
+ /** Decodes `[start, end)`, replacing malformed sequences with U+FFFD. */
384
+ export const lenientText = (enc, input, start, end) => {
385
+ let out = "";
386
+ walk(enc, input, start, end, (cp) => {
387
+ out += cp < 0 ? "�" : charOf(cp);
388
+ });
389
+ return out;
390
+ };
391
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/internal/text.ts"],"names":[],"mappings":"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"}