@thomasfosterau/effect-parse 0.0.0-stage → 0.1.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":"jit.js","sourceRoot":"","sources":["../../../src/internal/compiler/jit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The registry of compiled parsers, keyed by parser (see `Parser.compile`).
3
+ * Compiled steps are built lazily, once per input kind.
4
+ */
5
+ import type { State } from "../../Input.js";
6
+ import type { ParserLike } from "../node.js";
7
+ import type { Fallback, Step } from "./closure.js";
8
+ /** Which compiler to use. */
9
+ export type Backend = "auto" | "closure";
10
+ /** What was compiled for a parser and an input kind. */
11
+ export interface Compiled {
12
+ /** The compiler actually used. */
13
+ readonly backend: "jit" | "closure" | undefined;
14
+ readonly step: Step | undefined;
15
+ /** Parts of the grammar that run interpreted, and why. */
16
+ readonly fallbacks: ReadonlyArray<Fallback>;
17
+ /** Why compilation failed, if it did (the parser then runs interpreted). */
18
+ readonly error: unknown;
19
+ /** Why the JIT failed, if it did (the closure compiler is then used). */
20
+ readonly jitError?: unknown;
21
+ /** The generated source, for the JIT. */
22
+ readonly source?: string;
23
+ }
24
+ export declare const register: (p: ParserLike, backend: Backend) => void;
25
+ export declare const isRegistered: (p: ParserLike) => boolean;
26
+ /**
27
+ * The compiled form of a registered parser for an input kind, compiling it
28
+ * if needed. `resumable` selects the build used by streaming parses, which
29
+ * supports partial input and checkpoints.
30
+ */
31
+ export declare const compiled: (p: ParserLike, kind: 0 | 1 | 2, resumable?: boolean) => Compiled | undefined;
32
+ /** The compiled step for running `p` on `state`, if it is registered. */
33
+ export declare const stepFor: (p: ParserLike, state: State<any>, resumable?: boolean) => Step | undefined;
34
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/internal/compiler/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAIlD,6BAA6B;AAC7B,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAExC,wDAAwD;AACxD,MAAM,WAAW,QAAQ;IACvB,kCAAkC;IAClC,QAAQ,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC3C,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AASD,eAAO,MAAM,QAAQ,MAAO,UAAU,WAAW,OAAO,KAAG,IAG1D,CAAA;AAED,eAAO,MAAM,YAAY,MAAO,UAAU,KAAG,OAA0B,CAAA;AAwBvE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,MAAO,UAAU,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,0BAAsB,QAAQ,GAAG,SAKvF,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,OAAO,MAAO,UAAU,SAAS,KAAK,CAAC,GAAG,CAAC,0BAAsB,IAAI,GAAG,SACtC,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { compileClosure } from "./closure.js";
2
+ import { compileJit, jitSupported } from "./jit.js";
3
+ const registry = new WeakMap();
4
+ export const register = (p, backend) => {
5
+ const entry = registry.get(p);
6
+ if (entry === undefined || entry.backend !== backend)
7
+ registry.set(p, { backend, byKind: [] });
8
+ };
9
+ export const isRegistered = (p) => registry.has(p);
10
+ const build = (p, kind, backend, resumable) => {
11
+ if (backend === "auto" && jitSupported()) {
12
+ try {
13
+ const { fallbacks, source, step } = compileJit(p, kind, resumable);
14
+ return { backend: "jit", step, fallbacks, error: undefined, source };
15
+ }
16
+ catch (error) {
17
+ // Fall back to the closure compiler, remembering why
18
+ return { ...buildClosure(p, kind, resumable), jitError: error };
19
+ }
20
+ }
21
+ return buildClosure(p, kind, resumable);
22
+ };
23
+ const buildClosure = (p, kind, resumable) => {
24
+ try {
25
+ const { fallbacks, step } = compileClosure(p, kind, resumable);
26
+ return { backend: "closure", step, fallbacks, error: undefined };
27
+ }
28
+ catch (error) {
29
+ return { backend: undefined, step: undefined, fallbacks: [], error };
30
+ }
31
+ };
32
+ /**
33
+ * The compiled form of a registered parser for an input kind, compiling it
34
+ * if needed. `resumable` selects the build used by streaming parses, which
35
+ * supports partial input and checkpoints.
36
+ */
37
+ export const compiled = (p, kind, resumable = false) => {
38
+ const entry = registry.get(p);
39
+ if (entry === undefined)
40
+ return undefined;
41
+ const index = resumable ? kind + 3 : kind;
42
+ return entry.byKind[index] ??= build(p, kind, entry.backend, resumable);
43
+ };
44
+ /** The compiled step for running `p` on `state`, if it is registered. */
45
+ export const stepFor = (p, state, resumable = false) => compiled(p, state.inputKind, resumable)?.step;
46
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/internal/compiler/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Token sets for compiled parsers: membership tables for small units, the
3
+ * exact test for the rest, and the code point ranges when they are known.
4
+ */
5
+ import type { Encoding } from "../../Encoding.js";
6
+ /** Size of the membership table: every byte, and the Latin-1 code points. */
7
+ export declare const TableSize = 256;
8
+ export interface CharSet {
9
+ /** Tests a code point (or byte, for `Token` on bytes). */
10
+ readonly test: (code: number) => boolean;
11
+ /** `table[c] === 1` iff `test(c)`, for `c < TableSize`. */
12
+ readonly table: Uint8Array;
13
+ /** Sorted inclusive ranges of accepted code points, when known. */
14
+ readonly ranges: ReadonlyArray<readonly [number, number]> | undefined;
15
+ }
16
+ /** The code point ranges of a token set, or `undefined` if it has an unknown predicate. */
17
+ export declare const rangesOf: (set: unknown) => Array<[number, number]> | undefined;
18
+ /**
19
+ * The set as a `Token` parser sees it: string predicates receive strings on
20
+ * string input, everything receives numbers on byte input.
21
+ */
22
+ export declare const tokenSet: (set: unknown, kind: 0 | 1) => CharSet;
23
+ /** The set as a `Text` parser sees it: code points, for any encoding. */
24
+ export declare const textSet: (set: unknown) => CharSet;
25
+ /** Whether some accepted code point is at least `limit` (true when unknown). */
26
+ export declare const reachesAbove: (s: CharSet, limit: number) => boolean;
27
+ /** The input kind a `Text` encoding reads: 0 for strings, 1 for bytes. */
28
+ export declare const kindOfEncoding: (enc: Encoding<any>) => 0 | 1;
29
+ //# sourceMappingURL=sets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sets.d.ts","sourceRoot":"","sources":["../../../src/internal/compiler/sets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAGjD,6EAA6E;AAC7E,eAAO,MAAM,SAAS,MAAM,CAAA;AAE5B,MAAM,WAAW,OAAO;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IACxC,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;CACtE;AAOD,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAyCjE,CAAA;AAUD;;;GAGG;AACH,eAAO,MAAM,QAAQ,QAAS,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAG,OAGpD,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAAoD,CAAA;AAE3F,gFAAgF;AAChF,eAAO,MAAM,YAAY,MAAO,OAAO,SAAS,MAAM,KAAG,OACO,CAAA;AAEhE,0EAA0E;AAC1E,eAAO,MAAM,cAAc,QAAS,QAAQ,CAAC,GAAG,CAAC,KAAG,CAAC,GAAG,CAIvD,CAAA"}
@@ -0,0 +1,85 @@
1
+ import { compile, compileAny, PredicateRanges } from "../tokens.js";
2
+ /** Size of the membership table: every byte, and the Latin-1 code points. */
3
+ export const TableSize = 256;
4
+ const isRange = (u) => typeof u === "object" && u !== null && u._tag === "TokenRange";
5
+ const toCode = (u) => typeof u === "number" ? u : u.codePointAt(0);
6
+ /** The code point ranges of a token set, or `undefined` if it has an unknown predicate. */
7
+ export const rangesOf = (set) => {
8
+ const out = [];
9
+ const add = (u) => {
10
+ if (typeof u === "string") {
11
+ for (const c of u) {
12
+ const cp = c.codePointAt(0);
13
+ out.push([cp, cp]);
14
+ }
15
+ return true;
16
+ }
17
+ if (typeof u === "number") {
18
+ out.push([u, u]);
19
+ return true;
20
+ }
21
+ if (u instanceof Uint8Array) {
22
+ for (const b of u)
23
+ out.push([b, b]);
24
+ return true;
25
+ }
26
+ if (isRange(u)) {
27
+ out.push([toCode(u.from), toCode(u.to)]);
28
+ return true;
29
+ }
30
+ if (typeof u === "function") {
31
+ const r = u[PredicateRanges];
32
+ if (r === undefined)
33
+ return false;
34
+ for (const [a, b] of r)
35
+ out.push([a, b]);
36
+ return true;
37
+ }
38
+ if (Array.isArray(u))
39
+ return u.every(add);
40
+ return false;
41
+ };
42
+ if (!add(set))
43
+ return undefined;
44
+ out.sort((a, b) => a[0] - b[0]);
45
+ const merged = [];
46
+ for (const [a, b] of out) {
47
+ if (b < a)
48
+ continue;
49
+ const last = merged[merged.length - 1];
50
+ if (last !== undefined && a <= last[1] + 1)
51
+ last[1] = Math.max(last[1], b);
52
+ else
53
+ merged.push([a, b]);
54
+ }
55
+ return merged;
56
+ };
57
+ const makeSet = (test, set) => {
58
+ // The table calls the test once per small code: token-set predicates are
59
+ // assumed to be pure (see the design notes).
60
+ const table = new Uint8Array(TableSize);
61
+ for (let c = 0; c < TableSize; c++)
62
+ table[c] = test(c) ? 1 : 0;
63
+ return { test, table, ranges: rangesOf(set) };
64
+ };
65
+ /**
66
+ * The set as a `Token` parser sees it: string predicates receive strings on
67
+ * string input, everything receives numbers on byte input.
68
+ */
69
+ export const tokenSet = (set, kind) => {
70
+ const m = compileAny(set);
71
+ return makeSet(kind === 0 ? m.forString.code : m.forCode.code, set);
72
+ };
73
+ /** The set as a `Text` parser sees it: code points, for any encoding. */
74
+ export const textSet = (set) => makeSet(compile(set, "string").code, set);
75
+ /** Whether some accepted code point is at least `limit` (true when unknown). */
76
+ export const reachesAbove = (s, limit) => s.ranges === undefined || s.ranges.some(([, b]) => b >= limit);
77
+ /** The input kind a `Text` encoding reads: 0 for strings, 1 for bytes. */
78
+ export const kindOfEncoding = (enc) => {
79
+ let k = kinds.get(enc);
80
+ if (k === undefined)
81
+ kinds.set(enc, k = typeof enc.encode("") === "string" ? 0 : 1);
82
+ return k;
83
+ };
84
+ const kinds = new WeakMap();
85
+ //# sourceMappingURL=sets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sets.js","sourceRoot":"","sources":["../../../src/internal/compiler/sets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Building objects as `Object.fromEntries` does, without its array of
3
+ * `[key, value]` pairs: the compilers use these when a parser maps a
4
+ * repetition of pairs with `Object.fromEntries` (see `Parser.fromEntries`).
5
+ */
6
+ /** The built-in `Object.fromEntries`, which compiled parsers recognize. */
7
+ export declare const fromEntries: <K extends PropertyKey, V>(entries: Iterable<readonly [K, V]>) => {
8
+ [P in K]: V;
9
+ };
10
+ /**
11
+ * Whether `o[key] = value` on a new plain object creates the same property
12
+ * as `Object.fromEntries` (a writable, enumerable, configurable data
13
+ * property): `key` is a string that `Object.prototype` has no property for,
14
+ * so there is no setter (`__proto__`) or read-only property to run into.
15
+ */
16
+ export declare const isPlainKey: (key: unknown) => key is string;
17
+ /**
18
+ * Adds an entry whose key is not plain to `o`, given the entries already
19
+ * deferred. Keys that are objects may run code when converted to property
20
+ * keys, which `Object.fromEntries` only does once every entry is parsed:
21
+ * from the first such key on, entries are deferred to {@link flushEntries}.
22
+ * Returns the deferred entries, if any.
23
+ */
24
+ export declare const addEntry: (o: object, deferred: Array<unknown> | undefined, key: unknown, value: unknown) => Array<unknown> | undefined;
25
+ /** Adds the deferred entries of {@link addEntry} to `o`, in order. */
26
+ export declare const flushEntries: (o: object, deferred: ReadonlyArray<unknown>) => void;
27
+ //# sourceMappingURL=entries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/internal/entries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;KAAG,CAAC,IAAI,CAAC,GAAG,CAAC;CAC9E,CAAA;AAK3B;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAS,OAAO,KAAG,GAAG,IAAI,MAAuE,CAAA;AAMxH;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,MAChB,MAAM,YACC,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,OAC/B,OAAO,SACL,OAAO,KACb,KAAK,CAAC,OAAO,CAAC,GAAG,SAQnB,CAAA;AAED,sEAAsE;AACtE,eAAO,MAAM,YAAY,MAAO,MAAM,YAAY,aAAa,CAAC,OAAO,CAAC,KAAG,IAE1E,CAAA"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Building objects as `Object.fromEntries` does, without its array of
3
+ * `[key, value]` pairs: the compilers use these when a parser maps a
4
+ * repetition of pairs with `Object.fromEntries` (see `Parser.fromEntries`).
5
+ */
6
+ /** The built-in `Object.fromEntries`, which compiled parsers recognize. */
7
+ export const fromEntries = Object.fromEntries;
8
+ const objectPrototype = Object.prototype;
9
+ const hasOwn = objectPrototype.hasOwnProperty;
10
+ /**
11
+ * Whether `o[key] = value` on a new plain object creates the same property
12
+ * as `Object.fromEntries` (a writable, enumerable, configurable data
13
+ * property): `key` is a string that `Object.prototype` has no property for,
14
+ * so there is no setter (`__proto__`) or read-only property to run into.
15
+ */
16
+ export const isPlainKey = (key) => typeof key === "string" && !hasOwn.call(objectPrototype, key);
17
+ const define = (o, key, value) => {
18
+ Object.defineProperty(o, key, { value, writable: true, enumerable: true, configurable: true });
19
+ };
20
+ /**
21
+ * Adds an entry whose key is not plain to `o`, given the entries already
22
+ * deferred. Keys that are objects may run code when converted to property
23
+ * keys, which `Object.fromEntries` only does once every entry is parsed:
24
+ * from the first such key on, entries are deferred to {@link flushEntries}.
25
+ * Returns the deferred entries, if any.
26
+ */
27
+ export const addEntry = (o, deferred, key, value) => {
28
+ if (deferred === undefined && (typeof key !== "object" || key === null) && typeof key !== "function") {
29
+ define(o, key, value);
30
+ return undefined;
31
+ }
32
+ if (deferred === undefined)
33
+ deferred = [];
34
+ deferred.push(key, value);
35
+ return deferred;
36
+ };
37
+ /** Adds the deferred entries of {@link addEntry} to `o`, in order. */
38
+ export const flushEntries = (o, deferred) => {
39
+ for (let i = 0; i < deferred.length; i += 2)
40
+ define(o, deferred[i], deferred[i + 1]);
41
+ };
42
+ //# sourceMappingURL=entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries.js","sourceRoot":"","sources":["../../src/internal/entries.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,WAAW,GACtB,MAAM,CAAC,WAAkB,CAAA;AAE3B,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAA;AACxC,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;AAExH,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,GAAY,EAAE,KAAc,EAAQ,EAAE;IAC/D,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,GAAkB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/G,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,QAAoC,EACpC,GAAY,EACZ,KAAc,EACc,EAAE;IAC9B,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QACrG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,QAAQ,GAAG,EAAE,CAAA;IACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,sEAAsE;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,QAAgC,EAAQ,EAAE;IAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA"}