effect-grammar 0.4.0 → 0.5.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 (72) hide show
  1. package/README.md +175 -87
  2. package/dist/binary.d.ts +64 -0
  3. package/dist/binary.d.ts.map +1 -0
  4. package/dist/binary.js +246 -0
  5. package/dist/binary.js.map +1 -0
  6. package/dist/codec.d.ts +17 -0
  7. package/dist/codec.d.ts.map +1 -0
  8. package/dist/codec.js +14 -0
  9. package/dist/codec.js.map +1 -0
  10. package/dist/combinators.d.ts +112 -6
  11. package/dist/combinators.d.ts.map +1 -1
  12. package/dist/combinators.js +218 -28
  13. package/dist/combinators.js.map +1 -1
  14. package/dist/compile.d.ts +36 -0
  15. package/dist/compile.d.ts.map +1 -0
  16. package/dist/compile.js +228 -0
  17. package/dist/compile.js.map +1 -0
  18. package/dist/core.d.ts +34 -1
  19. package/dist/core.d.ts.map +1 -1
  20. package/dist/core.js +51 -1
  21. package/dist/core.js.map +1 -1
  22. package/dist/env.d.ts +5 -0
  23. package/dist/env.d.ts.map +1 -1
  24. package/dist/env.js +20 -1
  25. package/dist/env.js.map +1 -1
  26. package/dist/errors.d.ts +12 -0
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +40 -4
  29. package/dist/errors.js.map +1 -1
  30. package/dist/gen.d.ts.map +1 -1
  31. package/dist/gen.js +5 -7
  32. package/dist/gen.js.map +1 -1
  33. package/dist/index.d.ts +5 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +3 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/parse.d.ts +10 -1
  38. package/dist/parse.d.ts.map +1 -1
  39. package/dist/parse.js +81 -19
  40. package/dist/parse.js.map +1 -1
  41. package/dist/pattern.d.ts +2 -1
  42. package/dist/pattern.d.ts.map +1 -1
  43. package/dist/pattern.js +46 -2
  44. package/dist/pattern.js.map +1 -1
  45. package/dist/print.d.ts +8 -0
  46. package/dist/print.d.ts.map +1 -1
  47. package/dist/print.js +136 -18
  48. package/dist/print.js.map +1 -1
  49. package/dist/render.d.ts.map +1 -1
  50. package/dist/render.js +33 -6
  51. package/dist/render.js.map +1 -1
  52. package/dist/schema.d.ts +8 -3
  53. package/dist/schema.d.ts.map +1 -1
  54. package/dist/schema.js +11 -13
  55. package/dist/schema.js.map +1 -1
  56. package/dist/testing.d.ts +18 -0
  57. package/dist/testing.d.ts.map +1 -0
  58. package/dist/testing.js +72 -0
  59. package/dist/testing.js.map +1 -0
  60. package/package.json +9 -3
  61. package/dist/ast.d.ts +0 -115
  62. package/dist/ast.d.ts.map +0 -1
  63. package/dist/ast.js +0 -253
  64. package/dist/ast.js.map +0 -1
  65. package/dist/grammar.d.ts +0 -8
  66. package/dist/grammar.d.ts.map +0 -1
  67. package/dist/grammar.js +0 -8
  68. package/dist/grammar.js.map +0 -1
  69. package/dist/recovery.d.ts +0 -10
  70. package/dist/recovery.d.ts.map +0 -1
  71. package/dist/recovery.js +0 -296
  72. package/dist/recovery.js.map +0 -1
package/dist/ast.d.ts DELETED
@@ -1,115 +0,0 @@
1
- import { type GrammarInternal, type Value } from "./core.ts";
2
- /**
3
- * A JSON-shaped mirror of a grammar, produced by `toAst`. Scopes become stable
4
- * names (`scope0`, `scope1`, …), a recursive `Suspend` is defined once and
5
- * referenced by id at every other occurrence, and functions are described by
6
- * name instead of being embedded. Constant values are kept as given, so the
7
- * result is serializable for every value a grammar can legally hold.
8
- */
9
- export interface RefAst {
10
- readonly _tag: "Ref";
11
- readonly scope: string;
12
- readonly slot: number;
13
- readonly name?: string | undefined;
14
- }
15
- export type ExprAst = RefAst | {
16
- readonly _tag: "Prop";
17
- readonly object: ExprAst;
18
- readonly key: string | number;
19
- };
20
- export type PatternAst = RefAst | {
21
- readonly _tag: "Const";
22
- readonly value: Value;
23
- } | {
24
- readonly _tag: "Object";
25
- readonly fields: ReadonlyArray<readonly [string, PatternAst]>;
26
- } | {
27
- readonly _tag: "Array";
28
- readonly items: ReadonlyArray<PatternAst>;
29
- };
30
- export interface MatchCaseAst {
31
- readonly key: string | number | boolean;
32
- readonly grammar: GrammarAst;
33
- }
34
- export type StepAst = {
35
- readonly _tag: "Silent";
36
- readonly grammar: GrammarAst;
37
- } | {
38
- readonly _tag: "Bind";
39
- readonly slot: number;
40
- readonly name?: string | undefined;
41
- readonly grammar: GrammarAst;
42
- };
43
- export type GrammarAst = {
44
- readonly _tag: "Literal";
45
- readonly value: string;
46
- } | {
47
- readonly _tag: "Regex";
48
- readonly name: string;
49
- readonly source: string;
50
- readonly flags: string;
51
- } | {
52
- readonly _tag: "Gen";
53
- readonly scope: string;
54
- readonly slotCount: number;
55
- readonly steps: ReadonlyArray<StepAst>;
56
- readonly result: PatternAst;
57
- } | {
58
- readonly _tag: "Wrap";
59
- readonly open: GrammarAst;
60
- readonly inner: GrammarAst;
61
- readonly close: GrammarAst;
62
- } | {
63
- readonly _tag: "Choice";
64
- readonly options: ReadonlyArray<GrammarAst>;
65
- } | {
66
- readonly _tag: "Many";
67
- readonly inner: GrammarAst;
68
- readonly sep: GrammarAst;
69
- readonly min: number;
70
- readonly max: number | "∞";
71
- } | {
72
- readonly _tag: "Optional";
73
- readonly inner: GrammarAst;
74
- } | {
75
- readonly _tag: "Transform";
76
- readonly inner: GrammarAst;
77
- readonly decode: string;
78
- readonly encode: string;
79
- readonly is?: string | undefined;
80
- readonly name?: string | undefined;
81
- } | {
82
- readonly _tag: "Skip";
83
- readonly inner: GrammarAst;
84
- readonly printAs: Value;
85
- readonly show: boolean;
86
- } | {
87
- readonly _tag: "Label";
88
- readonly name: string;
89
- readonly inner: GrammarAst;
90
- } | {
91
- readonly _tag: "Suspend";
92
- readonly id: number;
93
- readonly name?: string | undefined;
94
- readonly body: GrammarAst;
95
- } | {
96
- readonly _tag: "SuspendRef";
97
- readonly id: number;
98
- readonly name?: string | undefined;
99
- } | {
100
- readonly _tag: "Match";
101
- readonly scrutinee: ExprAst;
102
- readonly cases: ReadonlyArray<MatchCaseAst>;
103
- } | {
104
- readonly _tag: "Take";
105
- readonly count: ExprAst;
106
- } | {
107
- readonly _tag: "RepeatExact";
108
- readonly count: ExprAst;
109
- readonly inner: GrammarAst;
110
- };
111
- /** Reflects a grammar into a plain, JSON-shaped tree. */
112
- export declare const toAst: (grammar: GrammarInternal) => GrammarAst;
113
- /** Renders a grammar as an indented node tree, one line per AST node. */
114
- export declare const renderAst: (grammar: GrammarInternal) => string;
115
- //# sourceMappingURL=ast.d.ts.map
package/dist/ast.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
package/dist/ast.js DELETED
@@ -1,253 +0,0 @@
1
- import { Predicate } from "effect";
2
- import { nodeOf, resolve, } from "./core.js";
3
- import { preview } from "./errors.js";
4
- import { nameBindings, namesFor } from "./render.js";
5
- const scopeName = (context, scope) => {
6
- const existing = context.scopes.get(scope);
7
- if (existing !== undefined)
8
- return existing;
9
- const name = `scope${context.scopes.size}`;
10
- context.scopes.set(scope, name);
11
- return name;
12
- };
13
- const refAst = (expr, context) => {
14
- const scope = scopeName(context, expr.scope);
15
- const name = context.names.get(expr.scope)?.get(expr.slot);
16
- if (name === undefined)
17
- return { _tag: "Ref", scope, slot: expr.slot };
18
- return { _tag: "Ref", scope, slot: expr.slot, name };
19
- };
20
- const keyAst = (key) => Predicate.isString(key) || Predicate.isNumber(key) ? key : preview(key);
21
- const exprAst = (expr, context) => expr._tag === "Ref"
22
- ? refAst(expr, context)
23
- : { _tag: "Prop", object: exprAst(expr.object, context), key: keyAst(expr.key) };
24
- const patternAst = (pattern, context) => {
25
- switch (pattern._tag) {
26
- case "Ref":
27
- return refAst(pattern, context);
28
- case "Const":
29
- return { _tag: "Const", value: pattern.value };
30
- case "Object":
31
- return {
32
- _tag: "Object",
33
- fields: pattern.fields.map(([key, field]) => [key, patternAst(field, context)]),
34
- };
35
- case "Array":
36
- return { _tag: "Array", items: pattern.items.map((item) => patternAst(item, context)) };
37
- }
38
- };
39
- const fnName = (f) => (f.name === "" ? "<anonymous>" : f.name);
40
- const stepAst = (step, context, names) => step._tag === "Silent"
41
- ? { _tag: "Silent", grammar: walk(step.grammar, context) }
42
- : {
43
- _tag: "Bind",
44
- slot: step.slot,
45
- name: names.get(step.slot),
46
- grammar: walk(step.grammar, context),
47
- };
48
- const walk = (grammar, context) => {
49
- const node = nodeOf(grammar);
50
- switch (node._tag) {
51
- case "Literal":
52
- return { _tag: "Literal", value: node.value };
53
- case "Regex":
54
- return { _tag: "Regex", name: node.name, source: node.re.source, flags: node.re.flags };
55
- case "Gen": {
56
- const names = namesFor(context.names, node.scope);
57
- nameBindings(node.result, undefined, node.scope, names);
58
- const scope = scopeName(context, node.scope);
59
- return {
60
- _tag: "Gen",
61
- scope,
62
- slotCount: node.slotCount,
63
- steps: node.steps.map((step) => stepAst(step, context, names)),
64
- result: patternAst(node.result, context),
65
- };
66
- }
67
- case "Wrap":
68
- return {
69
- _tag: "Wrap",
70
- open: walk(node.open, context),
71
- inner: walk(node.inner, context),
72
- close: walk(node.close, context),
73
- };
74
- case "Choice":
75
- return { _tag: "Choice", options: node.options.map((option) => walk(option, context)) };
76
- case "Many":
77
- return {
78
- _tag: "Many",
79
- inner: walk(node.inner, context),
80
- sep: walk(node.sep, context),
81
- min: node.min,
82
- max: node.max === Number.POSITIVE_INFINITY ? "∞" : node.max,
83
- };
84
- case "Optional":
85
- return { _tag: "Optional", inner: walk(node.inner, context) };
86
- case "Transform": {
87
- const inner = walk(node.inner, context);
88
- if (node.is === undefined) {
89
- return {
90
- _tag: "Transform",
91
- inner,
92
- decode: fnName(node.decode),
93
- encode: fnName(node.encode),
94
- name: node.name,
95
- };
96
- }
97
- return {
98
- _tag: "Transform",
99
- inner,
100
- decode: fnName(node.decode),
101
- encode: fnName(node.encode),
102
- is: fnName(node.is),
103
- name: node.name,
104
- };
105
- }
106
- case "Skip":
107
- return {
108
- _tag: "Skip",
109
- inner: walk(node.inner, context),
110
- printAs: node.printAs,
111
- show: node.show,
112
- };
113
- case "Label":
114
- return { _tag: "Label", name: node.name, inner: walk(node.inner, context) };
115
- case "Suspend": {
116
- const existing = context.suspends.get(node);
117
- if (existing !== undefined)
118
- return { _tag: "SuspendRef", id: existing, name: node.name };
119
- const id = context.suspends.size;
120
- context.suspends.set(node, id);
121
- return { _tag: "Suspend", id, name: node.name, body: walk(resolve(node), context) };
122
- }
123
- case "Match":
124
- return {
125
- _tag: "Match",
126
- scrutinee: exprAst(node.scrutinee, context),
127
- cases: node.cases.map((matchCase) => ({
128
- key: matchCase.key,
129
- grammar: walk(matchCase.grammar, context),
130
- })),
131
- };
132
- case "Take":
133
- return { _tag: "Take", count: exprAst(node.count, context) };
134
- case "RepeatExact":
135
- return {
136
- _tag: "RepeatExact",
137
- count: exprAst(node.count, context),
138
- inner: walk(node.inner, context),
139
- };
140
- }
141
- };
142
- /** Reflects a grammar into a plain, JSON-shaped tree. */
143
- export const toAst = (grammar) => walk(grammar, { scopes: new Map(), names: new Map(), suspends: new Map() });
144
- const formatValue = (value) => Predicate.isString(value) ? JSON.stringify(value) : preview(value);
145
- const refText = (ref) => ref.name ?? `$${ref.slot}`;
146
- const exprText = (expr) => {
147
- if (expr._tag === "Ref")
148
- return refText(expr);
149
- const object = exprText(expr.object);
150
- return Predicate.isString(expr.key) && /^[A-Za-z_$][\w$]*$/.test(expr.key)
151
- ? `${object}.${expr.key}`
152
- : `${object}[${preview(expr.key)}]`;
153
- };
154
- const patternText = (pattern) => {
155
- switch (pattern._tag) {
156
- case "Ref":
157
- return refText(pattern);
158
- case "Const":
159
- return formatValue(pattern.value);
160
- case "Object":
161
- return `{ ${pattern.fields.map(([key, field]) => `${key}: ${patternText(field)}`).join(", ")} }`;
162
- case "Array":
163
- return `[${pattern.items.map(patternText).join(", ")}]`;
164
- }
165
- };
166
- const boundsText = (min, max) => {
167
- if (max === "∞")
168
- return min === 0 ? "*" : min === 1 ? "+" : `{${min},}`;
169
- return min === max ? `{${min}}` : `{${min},${max}}`;
170
- };
171
- const headerOf = (ast) => {
172
- switch (ast._tag) {
173
- case "Literal":
174
- return `Literal ${formatValue(ast.value)}`;
175
- case "Regex":
176
- return `Regex ${ast.name} /${ast.source}/${ast.flags}`;
177
- case "Gen":
178
- return `Gen ${ast.scope} → ${patternText(ast.result)}`;
179
- case "Wrap":
180
- return "Wrap";
181
- case "Choice":
182
- return "Choice";
183
- case "Many":
184
- return `Many ${boundsText(ast.min, ast.max)}`;
185
- case "Optional":
186
- return "Optional";
187
- case "Transform":
188
- return ast.name === undefined ? "Transform" : `Transform ${ast.name}`;
189
- case "Skip":
190
- return ast.show ? "Skip" : "Skip (hidden)";
191
- case "Label":
192
- return `Label ${ast.name}`;
193
- case "Suspend":
194
- return ast.name === undefined ? `Suspend #${ast.id}` : `Suspend #${ast.id} ${ast.name}`;
195
- case "SuspendRef":
196
- return ast.name === undefined ? `SuspendRef #${ast.id}` : `SuspendRef #${ast.id} ${ast.name}`;
197
- case "Match":
198
- return `Match ${exprText(ast.scrutinee)}`;
199
- case "Take":
200
- return `Take ${exprText(ast.count)}`;
201
- case "RepeatExact":
202
- return `RepeatExact ${exprText(ast.count)}`;
203
- }
204
- };
205
- const childrenOf = (ast) => {
206
- switch (ast._tag) {
207
- case "Gen":
208
- return ast.steps.map((step) => step._tag === "Bind"
209
- ? [step.name ?? `bind #${step.slot}`, step.grammar]
210
- : [undefined, step.grammar]);
211
- case "Wrap":
212
- return [
213
- [undefined, ast.open],
214
- [undefined, ast.inner],
215
- [undefined, ast.close],
216
- ];
217
- case "Choice":
218
- return ast.options.map((option) => [undefined, option]);
219
- case "Many":
220
- return [[undefined, ast.inner], ["sep", ast.sep]];
221
- case "Optional":
222
- case "Transform":
223
- case "Skip":
224
- case "Label":
225
- case "RepeatExact":
226
- return [[undefined, ast.inner]];
227
- case "Suspend":
228
- return [[undefined, ast.body]];
229
- case "Match":
230
- return ast.cases.map((matchCase) => [`${formatValue(matchCase.key)} =>`, matchCase.grammar]);
231
- case "Literal":
232
- case "Regex":
233
- case "Take":
234
- case "SuspendRef":
235
- return [];
236
- }
237
- };
238
- const renderTree = (ast) => {
239
- const lines = [headerOf(ast)];
240
- const visit = (node, padding) => {
241
- const children = childrenOf(node);
242
- children.forEach(([label, child], index) => {
243
- const last = index === children.length - 1;
244
- lines.push(`${padding}${last ? "└─ " : "├─ "}${label === undefined ? "" : `${label} `}${headerOf(child)}`);
245
- visit(child, `${padding}${last ? " " : "│ "}`);
246
- });
247
- };
248
- visit(ast, "");
249
- return lines.join("\n");
250
- };
251
- /** Renders a grammar as an indented node tree, one line per AST node. */
252
- export const renderAst = (grammar) => renderTree(toAst(grammar));
253
- //# sourceMappingURL=ast.js.map
package/dist/ast.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../src/ast.ts"],"names":[],"mappings":"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"}
package/dist/grammar.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export * from "./errors.ts";
2
- export * from "./core.ts";
3
- export * from "./combinators.ts";
4
- export * from "./parse.ts";
5
- export * from "./print.ts";
6
- export * from "./render.ts";
7
- export * from "./schema.ts";
8
- //# sourceMappingURL=grammar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
package/dist/grammar.js DELETED
@@ -1,8 +0,0 @@
1
- export * from "./errors.js";
2
- export * from "./core.js";
3
- export * from "./combinators.js";
4
- export * from "./parse.js";
5
- export * from "./print.js";
6
- export * from "./render.js";
7
- export * from "./schema.js";
8
- //# sourceMappingURL=grammar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../src/grammar.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
@@ -1,10 +0,0 @@
1
- import { type GrammarInternal, type RefExpr, type Value } from "./core.ts";
2
- import { type Frame } from "./env.ts";
3
- export interface Assignment {
4
- readonly ref: RefExpr;
5
- readonly value: Value;
6
- }
7
- export type RecoveryPlan = ReadonlyArray<Assignment>;
8
- export declare const recoverableRefs: (grammar: GrammarInternal) => ReadonlyArray<RefExpr>;
9
- export declare const recoverPlans: (grammar: GrammarInternal, value: Value, env: Frame | undefined) => ReadonlyArray<RecoveryPlan>;
10
- //# sourceMappingURL=recovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,eAAe,EAIpB,KAAK,OAAO,EAEZ,KAAK,KAAK,EACX,MAAM,WAAW,CAAA;AAClB,OAAO,EAAqC,KAAK,KAAK,EAAc,MAAM,UAAU,CAAA;AAGpF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;AAqFpD,eAAO,MAAM,eAAe,YAAa,eAAe,KAAG,aAAa,CAAC,OAAO,CACnD,CAAA;AAkJ7B,eAAO,MAAM,YAAY,YACd,eAAe,SACjB,KAAK,OACP,KAAK,GAAG,SAAS,KACrB,aAAa,CAAC,YAAY,CAqE5B,CAAA"}