@enspirit/elo 0.9.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/LICENSE +21 -0
- package/README.md +322 -0
- package/bin/elo +2 -0
- package/bin/eloc +2 -0
- package/dist/src/ast.d.ts +309 -0
- package/dist/src/ast.d.ts.map +1 -0
- package/dist/src/ast.js +173 -0
- package/dist/src/ast.js.map +1 -0
- package/dist/src/bindings/javascript.d.ts +17 -0
- package/dist/src/bindings/javascript.d.ts.map +1 -0
- package/dist/src/bindings/javascript.js +350 -0
- package/dist/src/bindings/javascript.js.map +1 -0
- package/dist/src/bindings/ruby.d.ts +20 -0
- package/dist/src/bindings/ruby.d.ts.map +1 -0
- package/dist/src/bindings/ruby.js +365 -0
- package/dist/src/bindings/ruby.js.map +1 -0
- package/dist/src/bindings/sql.d.ts +20 -0
- package/dist/src/bindings/sql.d.ts.map +1 -0
- package/dist/src/bindings/sql.js +319 -0
- package/dist/src/bindings/sql.js.map +1 -0
- package/dist/src/cli.d.ts +3 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +225 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/compile.d.ts +47 -0
- package/dist/src/compile.d.ts.map +1 -0
- package/dist/src/compile.js +55 -0
- package/dist/src/compile.js.map +1 -0
- package/dist/src/compilers/javascript.d.ts +41 -0
- package/dist/src/compilers/javascript.d.ts.map +1 -0
- package/dist/src/compilers/javascript.js +323 -0
- package/dist/src/compilers/javascript.js.map +1 -0
- package/dist/src/compilers/ruby.d.ts +40 -0
- package/dist/src/compilers/ruby.d.ts.map +1 -0
- package/dist/src/compilers/ruby.js +326 -0
- package/dist/src/compilers/ruby.js.map +1 -0
- package/dist/src/compilers/sql.d.ts +37 -0
- package/dist/src/compilers/sql.d.ts.map +1 -0
- package/dist/src/compilers/sql.js +164 -0
- package/dist/src/compilers/sql.js.map +1 -0
- package/dist/src/elo.d.ts +3 -0
- package/dist/src/elo.d.ts.map +1 -0
- package/dist/src/elo.js +187 -0
- package/dist/src/elo.js.map +1 -0
- package/dist/src/eloc.d.ts +3 -0
- package/dist/src/eloc.d.ts.map +1 -0
- package/dist/src/eloc.js +232 -0
- package/dist/src/eloc.js.map +1 -0
- package/dist/src/eval.d.ts +3 -0
- package/dist/src/eval.d.ts.map +1 -0
- package/dist/src/eval.js +196 -0
- package/dist/src/eval.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +36 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ir.d.ts +295 -0
- package/dist/src/ir.d.ts.map +1 -0
- package/dist/src/ir.js +224 -0
- package/dist/src/ir.js.map +1 -0
- package/dist/src/parser.d.ts +137 -0
- package/dist/src/parser.d.ts.map +1 -0
- package/dist/src/parser.js +1266 -0
- package/dist/src/parser.js.map +1 -0
- package/dist/src/preludes/index.d.ts +14 -0
- package/dist/src/preludes/index.d.ts.map +1 -0
- package/dist/src/preludes/index.js +27 -0
- package/dist/src/preludes/index.js.map +1 -0
- package/dist/src/runtime.d.ts +23 -0
- package/dist/src/runtime.d.ts.map +1 -0
- package/dist/src/runtime.js +326 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/stdlib.d.ts +121 -0
- package/dist/src/stdlib.d.ts.map +1 -0
- package/dist/src/stdlib.js +237 -0
- package/dist/src/stdlib.js.map +1 -0
- package/dist/src/transform.d.ts +38 -0
- package/dist/src/transform.d.ts.map +1 -0
- package/dist/src/transform.js +322 -0
- package/dist/src/transform.js.map +1 -0
- package/dist/src/typedefs.d.ts +50 -0
- package/dist/src/typedefs.d.ts.map +1 -0
- package/dist/src/typedefs.js +294 -0
- package/dist/src/typedefs.js.map +1 -0
- package/dist/src/types.d.ts +54 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +62 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prelude content for all target languages.
|
|
3
|
+
* This is the single source of truth for preludes used by both CLI and web.
|
|
4
|
+
*
|
|
5
|
+
* Note: JavaScript prelude only contains library requires.
|
|
6
|
+
* Runtime helpers (kAdd, kSub, etc.) are now embedded directly in the
|
|
7
|
+
* compiled output as needed, wrapped in an IIFE.
|
|
8
|
+
*/
|
|
9
|
+
export type Target = 'javascript' | 'ruby' | 'sql';
|
|
10
|
+
/**
|
|
11
|
+
* Get the prelude content for a given target language.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPrelude(target: Target): string;
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/preludes/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC;AAenD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Prelude content for all target languages.
|
|
4
|
+
* This is the single source of truth for preludes used by both CLI and web.
|
|
5
|
+
*
|
|
6
|
+
* Note: JavaScript prelude only contains library requires.
|
|
7
|
+
* Runtime helpers (kAdd, kSub, etc.) are now embedded directly in the
|
|
8
|
+
* compiled output as needed, wrapped in an IIFE.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.getPrelude = getPrelude;
|
|
12
|
+
const javascriptPrelude = `const { DateTime, Duration } = require('luxon');`;
|
|
13
|
+
const rubyPrelude = `require 'date'
|
|
14
|
+
require 'active_support/all'`;
|
|
15
|
+
const sqlPrelude = `-- No prelude needed for SQL`;
|
|
16
|
+
const preludes = {
|
|
17
|
+
javascript: javascriptPrelude,
|
|
18
|
+
ruby: rubyPrelude,
|
|
19
|
+
sql: sqlPrelude
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Get the prelude content for a given target language.
|
|
23
|
+
*/
|
|
24
|
+
function getPrelude(target) {
|
|
25
|
+
return preludes[target];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/preludes/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAoBH,gCAEC;AAlBD,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAE7E,MAAM,WAAW,GAAG;6BACS,CAAC;AAE9B,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAElD,MAAM,QAAQ,GAA2B;IACvC,UAAU,EAAE,iBAAiB;IAC7B,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,UAAU;CAChB,CAAC;AAEF;;GAEG;AACH,SAAgB,UAAU,CAAC,MAAc;IACvC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Elo runtime helpers for JavaScript execution.
|
|
3
|
+
*
|
|
4
|
+
* These helper function snippets are embedded directly in compiled output
|
|
5
|
+
* when needed, wrapped in an IIFE for encapsulation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Individual JavaScript helper function snippets.
|
|
9
|
+
* Each helper is a standalone function that can be included in the output.
|
|
10
|
+
* Used for dynamically-typed operations where types aren't known at compile time.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Dependencies between helpers. If helper A uses helper B, A depends on B.
|
|
14
|
+
*/
|
|
15
|
+
export declare const JS_HELPER_DEPS: Record<string, string[]>;
|
|
16
|
+
export declare const JS_HELPERS: Record<string, string>;
|
|
17
|
+
/**
|
|
18
|
+
* Ruby parser helper function snippets.
|
|
19
|
+
* These are embedded in compiled Ruby output when type definitions are used.
|
|
20
|
+
*/
|
|
21
|
+
export declare const RUBY_HELPER_DEPS: Record<string, string[]>;
|
|
22
|
+
export declare const RUBY_HELPERS: Record<string, string>;
|
|
23
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAYnD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuM7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAUrD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgF/C,CAAC"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Elo runtime helpers for JavaScript execution.
|
|
4
|
+
*
|
|
5
|
+
* These helper function snippets are embedded directly in compiled output
|
|
6
|
+
* when needed, wrapped in an IIFE for encapsulation.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RUBY_HELPERS = exports.RUBY_HELPER_DEPS = exports.JS_HELPERS = exports.JS_HELPER_DEPS = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Individual JavaScript helper function snippets.
|
|
12
|
+
* Each helper is a standalone function that can be included in the output.
|
|
13
|
+
* Used for dynamically-typed operations where types aren't known at compile time.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Dependencies between helpers. If helper A uses helper B, A depends on B.
|
|
17
|
+
*/
|
|
18
|
+
exports.JS_HELPER_DEPS = {
|
|
19
|
+
kNeq: ['kEq'],
|
|
20
|
+
// Parser helpers depend on pOk/pFail
|
|
21
|
+
pAny: ['pOk'],
|
|
22
|
+
pString: ['pOk', 'pFail'],
|
|
23
|
+
pInt: ['pOk', 'pFail'],
|
|
24
|
+
pBool: ['pOk', 'pFail'],
|
|
25
|
+
pDatetime: ['pOk', 'pFail'],
|
|
26
|
+
pFloat: ['pOk', 'pFail'],
|
|
27
|
+
pDate: ['pOk', 'pFail'],
|
|
28
|
+
pDuration: ['pOk', 'pFail'],
|
|
29
|
+
pData: ['pOk', 'pFail'],
|
|
30
|
+
};
|
|
31
|
+
exports.JS_HELPERS = {
|
|
32
|
+
kAdd: `function kAdd(l, r) {
|
|
33
|
+
if (DateTime.isDateTime(l) && Duration.isDuration(r)) return l.plus(r);
|
|
34
|
+
if (Duration.isDuration(l) && DateTime.isDateTime(r)) return r.plus(l);
|
|
35
|
+
if (Duration.isDuration(l) && Duration.isDuration(r)) return Duration.fromMillis(l.toMillis() + r.toMillis());
|
|
36
|
+
return l + r;
|
|
37
|
+
}`,
|
|
38
|
+
kSub: `function kSub(l, r) {
|
|
39
|
+
if (DateTime.isDateTime(l) && Duration.isDuration(r)) return l.minus(r);
|
|
40
|
+
if (DateTime.isDateTime(l) && DateTime.isDateTime(r)) return Duration.fromMillis(l.toMillis() - r.toMillis());
|
|
41
|
+
if (Duration.isDuration(l) && Duration.isDuration(r)) return Duration.fromMillis(l.toMillis() - r.toMillis());
|
|
42
|
+
return l - r;
|
|
43
|
+
}`,
|
|
44
|
+
kMul: `function kMul(l, r) {
|
|
45
|
+
if (Duration.isDuration(l)) return Duration.fromMillis(l.toMillis() * r);
|
|
46
|
+
if (Duration.isDuration(r)) return Duration.fromMillis(r.toMillis() * l);
|
|
47
|
+
return l * r;
|
|
48
|
+
}`,
|
|
49
|
+
kDiv: `function kDiv(l, r) {
|
|
50
|
+
if (Duration.isDuration(l) && typeof r === 'number') return Duration.fromMillis(l.toMillis() / r);
|
|
51
|
+
return l / r;
|
|
52
|
+
}`,
|
|
53
|
+
kMod: `function kMod(l, r) { return l % r; }`,
|
|
54
|
+
kPow: `function kPow(l, r) { return Math.pow(l, r); }`,
|
|
55
|
+
kEq: `function kEq(l, r) {
|
|
56
|
+
if (Duration.isDuration(l) && Duration.isDuration(r)) return l.toMillis() === r.toMillis();
|
|
57
|
+
if (DateTime.isDateTime(l) && DateTime.isDateTime(r)) return l.toMillis() === r.toMillis();
|
|
58
|
+
if (Array.isArray(l) && Array.isArray(r)) {
|
|
59
|
+
if (l.length !== r.length) return false;
|
|
60
|
+
for (let i = 0; i < l.length; i++) if (!kEq(l[i], r[i])) return false;
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
if (typeof l === 'object' && typeof r === 'object' && l !== null && r !== null && !Array.isArray(l) && !Array.isArray(r)) {
|
|
64
|
+
const keysL = Object.keys(l);
|
|
65
|
+
const keysR = Object.keys(r);
|
|
66
|
+
if (keysL.length !== keysR.length) return false;
|
|
67
|
+
for (const key of keysL) if (!(key in r) || !kEq(l[key], r[key])) return false;
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
return l == r;
|
|
71
|
+
}`,
|
|
72
|
+
kNeq: `function kNeq(l, r) {
|
|
73
|
+
return !kEq(l, r);
|
|
74
|
+
}`,
|
|
75
|
+
kNeg: `function kNeg(v) {
|
|
76
|
+
if (Duration.isDuration(v)) return Duration.fromMillis(-v.toMillis());
|
|
77
|
+
return -v;
|
|
78
|
+
}`,
|
|
79
|
+
kPos: `function kPos(v) { return +v; }`,
|
|
80
|
+
kTypeOf: `function kTypeOf(v) {
|
|
81
|
+
if (v === null || v === undefined) return 'Null';
|
|
82
|
+
if (Duration.isDuration(v)) return 'Duration';
|
|
83
|
+
if (DateTime.isDateTime(v)) return 'DateTime';
|
|
84
|
+
if (typeof v === 'number') return Number.isInteger(v) ? 'Int' : 'Float';
|
|
85
|
+
if (typeof v === 'boolean') return 'Bool';
|
|
86
|
+
if (typeof v === 'string') return 'String';
|
|
87
|
+
if (typeof v === 'function') return 'Function';
|
|
88
|
+
if (Array.isArray(v)) return 'List';
|
|
89
|
+
return 'Tuple';
|
|
90
|
+
}`,
|
|
91
|
+
kIsNull: `function kIsNull(v) { return v === null || v === undefined; }`,
|
|
92
|
+
kFetch: `function kFetch(data, path) {
|
|
93
|
+
let current = data;
|
|
94
|
+
for (const segment of path) {
|
|
95
|
+
if (current === null || current === undefined) return null;
|
|
96
|
+
if (typeof segment === 'number') {
|
|
97
|
+
if (!Array.isArray(current)) return null;
|
|
98
|
+
current = current[segment];
|
|
99
|
+
} else {
|
|
100
|
+
if (typeof current !== 'object' || current === null) return null;
|
|
101
|
+
current = current[segment];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return current === undefined ? null : current;
|
|
105
|
+
}`,
|
|
106
|
+
kPatch: `function kPatch(data, path, value) {
|
|
107
|
+
if (path.length === 0) return value;
|
|
108
|
+
const seg = path[0];
|
|
109
|
+
const rest = path.slice(1);
|
|
110
|
+
const nextDefault = rest.length === 0 ? null : typeof rest[0] === 'number' ? [] : {};
|
|
111
|
+
if (typeof seg === 'number') {
|
|
112
|
+
if (data !== null && data !== undefined && !Array.isArray(data)) throw new Error('cannot patch array index on non-array');
|
|
113
|
+
const arr = Array.isArray(data) ? [...data] : [];
|
|
114
|
+
while (arr.length <= seg) arr.push(null);
|
|
115
|
+
const existing = arr[seg];
|
|
116
|
+
arr[seg] = kPatch(existing === null || existing === undefined ? nextDefault : existing, rest, value);
|
|
117
|
+
return arr;
|
|
118
|
+
} else {
|
|
119
|
+
if (Array.isArray(data)) throw new Error('cannot patch object key on array');
|
|
120
|
+
const obj = data !== null && data !== undefined && typeof data === 'object' ? {...data} : {};
|
|
121
|
+
const existing = obj[seg];
|
|
122
|
+
obj[seg] = kPatch(existing === null || existing === undefined ? nextDefault : existing, rest, value);
|
|
123
|
+
return obj;
|
|
124
|
+
}
|
|
125
|
+
}`,
|
|
126
|
+
kMerge: `function kMerge(a, b) {
|
|
127
|
+
return {...a, ...b};
|
|
128
|
+
}`,
|
|
129
|
+
kDeepMerge: `function kDeepMerge(a, b) {
|
|
130
|
+
if (typeof a !== 'object' || a === null || Array.isArray(a)) return b;
|
|
131
|
+
if (typeof b !== 'object' || b === null || Array.isArray(b)) return b;
|
|
132
|
+
const result = {...a};
|
|
133
|
+
for (const key of Object.keys(b)) {
|
|
134
|
+
result[key] = kDeepMerge(a[key], b[key]);
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
}`,
|
|
138
|
+
// Type selectors
|
|
139
|
+
kInt: `function kInt(v) {
|
|
140
|
+
if (v === null || v === undefined) return null;
|
|
141
|
+
if (typeof v === 'number') return Math.trunc(v);
|
|
142
|
+
if (typeof v === 'string') { const n = parseInt(v, 10); return isNaN(n) ? null : n; }
|
|
143
|
+
return null;
|
|
144
|
+
}`,
|
|
145
|
+
kFloat: `function kFloat(v) {
|
|
146
|
+
if (v === null || v === undefined) return null;
|
|
147
|
+
if (typeof v === 'number') return v;
|
|
148
|
+
if (typeof v === 'string') { const n = parseFloat(v); return isNaN(n) ? null : n; }
|
|
149
|
+
return null;
|
|
150
|
+
}`,
|
|
151
|
+
kBool: `function kBool(v) {
|
|
152
|
+
if (v === null || v === undefined) return null;
|
|
153
|
+
if (typeof v === 'boolean') return v;
|
|
154
|
+
if (typeof v === 'string') { if (v === 'true') return true; if (v === 'false') return false; }
|
|
155
|
+
return null;
|
|
156
|
+
}`,
|
|
157
|
+
kDate: `function kDate(v) {
|
|
158
|
+
if (v === null || v === undefined) return null;
|
|
159
|
+
if (DateTime.isDateTime(v)) return v.startOf('day');
|
|
160
|
+
if (typeof v === 'string') { const d = DateTime.fromISO(v); return d.isValid && /^\\d{4}-\\d{2}-\\d{2}$/.test(v) ? d.startOf('day') : null; }
|
|
161
|
+
return null;
|
|
162
|
+
}`,
|
|
163
|
+
kDatetime: `function kDatetime(v) {
|
|
164
|
+
if (v === null || v === undefined) return null;
|
|
165
|
+
if (DateTime.isDateTime(v)) return v;
|
|
166
|
+
if (typeof v === 'string') { const d = DateTime.fromISO(v); return d.isValid ? d : null; }
|
|
167
|
+
return null;
|
|
168
|
+
}`,
|
|
169
|
+
kDuration: `function kDuration(v) {
|
|
170
|
+
if (v === null || v === undefined) return null;
|
|
171
|
+
if (Duration.isDuration(v)) return v;
|
|
172
|
+
if (typeof v === 'string') { const d = Duration.fromISO(v); return d.isValid ? d : null; }
|
|
173
|
+
return null;
|
|
174
|
+
}`,
|
|
175
|
+
kData: `function kData(v) {
|
|
176
|
+
if (v === null || v === undefined) return null;
|
|
177
|
+
if (typeof v === 'string') { try { return JSON.parse(v); } catch { return null; } }
|
|
178
|
+
return v;
|
|
179
|
+
}`,
|
|
180
|
+
// Parser helpers - return Result: { success: boolean, path: string, message: string, value: any, cause: Result[] }
|
|
181
|
+
pOk: `function pOk(v, p) { return { success: true, path: p, message: '', value: v, cause: [] }; }`,
|
|
182
|
+
pFail: `function pFail(p, m, c) { return { success: false, path: p, message: m || '', value: null, cause: c || [] }; }`,
|
|
183
|
+
pAny: `function pAny(v, p) { return pOk(v, p); }`,
|
|
184
|
+
pString: `function pString(v, p) {
|
|
185
|
+
if (typeof v === 'string') return pOk(v, p);
|
|
186
|
+
return pFail(p, 'expected String, got ' + (v === null ? 'Null' : typeof v));
|
|
187
|
+
}`,
|
|
188
|
+
pInt: `function pInt(v, p) {
|
|
189
|
+
if (typeof v === 'number' && Number.isInteger(v)) return pOk(v, p);
|
|
190
|
+
if (typeof v === 'string') { const n = parseInt(v, 10); if (!isNaN(n)) return pOk(n, p); }
|
|
191
|
+
return pFail(p, 'expected Int, got ' + (v === null ? 'Null' : typeof v === 'string' ? JSON.stringify(v) : typeof v));
|
|
192
|
+
}`,
|
|
193
|
+
pBool: `function pBool(v, p) {
|
|
194
|
+
if (typeof v === 'boolean') return pOk(v, p);
|
|
195
|
+
if (v === 'true') return pOk(true, p);
|
|
196
|
+
if (v === 'false') return pOk(false, p);
|
|
197
|
+
return pFail(p, 'expected Bool, got ' + (v === null ? 'Null' : typeof v === 'string' ? JSON.stringify(v) : typeof v));
|
|
198
|
+
}`,
|
|
199
|
+
pDatetime: `function pDatetime(v, p) {
|
|
200
|
+
if (DateTime.isDateTime(v)) return pOk(v, p);
|
|
201
|
+
if (typeof v === 'string') { const d = DateTime.fromISO(v); if (d.isValid) return pOk(d, p); }
|
|
202
|
+
return pFail(p, 'expected Datetime, got ' + (v === null ? 'Null' : typeof v === 'string' ? 'invalid datetime ' + JSON.stringify(v) : typeof v));
|
|
203
|
+
}`,
|
|
204
|
+
pFloat: `function pFloat(v, p) {
|
|
205
|
+
if (typeof v === 'number') return pOk(v, p);
|
|
206
|
+
if (typeof v === 'string') { const n = parseFloat(v); if (!isNaN(n)) return pOk(n, p); }
|
|
207
|
+
return pFail(p, 'expected Float, got ' + (v === null ? 'Null' : typeof v === 'string' ? JSON.stringify(v) : typeof v));
|
|
208
|
+
}`,
|
|
209
|
+
pDate: `function pDate(v, p) {
|
|
210
|
+
if (DateTime.isDateTime(v)) return pOk(v.startOf('day'), p);
|
|
211
|
+
if (typeof v === 'string' && /^\\d{4}-\\d{2}-\\d{2}$/.test(v)) { const d = DateTime.fromISO(v); if (d.isValid) return pOk(d.startOf('day'), p); }
|
|
212
|
+
return pFail(p, 'expected Date (YYYY-MM-DD), got ' + (v === null ? 'Null' : typeof v === 'string' ? JSON.stringify(v) : typeof v));
|
|
213
|
+
}`,
|
|
214
|
+
pDuration: `function pDuration(v, p) {
|
|
215
|
+
if (Duration.isDuration(v)) return pOk(v, p);
|
|
216
|
+
if (typeof v === 'string') { const d = Duration.fromISO(v); if (d.isValid) return pOk(d, p); }
|
|
217
|
+
return pFail(p, 'expected Duration (ISO 8601), got ' + (v === null ? 'Null' : typeof v === 'string' ? JSON.stringify(v) : typeof v));
|
|
218
|
+
}`,
|
|
219
|
+
pData: `function pData(v, p) {
|
|
220
|
+
if (typeof v === 'string') { try { return pOk(JSON.parse(v), p); } catch { return pFail(p, 'invalid JSON: ' + JSON.stringify(v)); } }
|
|
221
|
+
return pOk(v, p);
|
|
222
|
+
}`,
|
|
223
|
+
pUnwrap: `function pUnwrap(r) {
|
|
224
|
+
if (r.success) return r.value;
|
|
225
|
+
function findError(e) { if (e.message) return e; if (e.cause && e.cause[0]) return findError(e.cause[0]); return e; }
|
|
226
|
+
const err = findError(r);
|
|
227
|
+
throw new Error((err.path || '.') + ': ' + (err.message || 'type error'));
|
|
228
|
+
}`,
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* Ruby parser helper function snippets.
|
|
232
|
+
* These are embedded in compiled Ruby output when type definitions are used.
|
|
233
|
+
*/
|
|
234
|
+
exports.RUBY_HELPER_DEPS = {
|
|
235
|
+
p_any: ['p_ok'],
|
|
236
|
+
p_string: ['p_ok', 'p_fail'],
|
|
237
|
+
p_int: ['p_ok', 'p_fail'],
|
|
238
|
+
p_bool: ['p_ok', 'p_fail'],
|
|
239
|
+
p_datetime: ['p_ok', 'p_fail'],
|
|
240
|
+
p_float: ['p_ok', 'p_fail'],
|
|
241
|
+
p_date: ['p_ok', 'p_fail'],
|
|
242
|
+
p_duration: ['p_ok', 'p_fail'],
|
|
243
|
+
p_data: ['p_ok', 'p_fail'],
|
|
244
|
+
};
|
|
245
|
+
exports.RUBY_HELPERS = {
|
|
246
|
+
k_deep_merge: `def k_deep_merge(a, b)
|
|
247
|
+
return b unless a.is_a?(Hash) && b.is_a?(Hash)
|
|
248
|
+
result = a.dup
|
|
249
|
+
b.each { |k, v| result[k] = k_deep_merge(a[k], v) }
|
|
250
|
+
result
|
|
251
|
+
end`,
|
|
252
|
+
k_patch: `def k_patch(d, p, v)
|
|
253
|
+
return v if p.empty?
|
|
254
|
+
seg = p[0]
|
|
255
|
+
rest = p[1..]
|
|
256
|
+
next_default = rest.empty? ? nil : (rest[0].is_a?(Integer) ? [] : {})
|
|
257
|
+
if seg.is_a?(Integer)
|
|
258
|
+
raise 'cannot patch array index on non-array' if !d.nil? && !d.is_a?(Array)
|
|
259
|
+
arr = d.is_a?(Array) ? d.dup : []
|
|
260
|
+
arr[seg] = nil while arr.length <= seg
|
|
261
|
+
existing = arr[seg]
|
|
262
|
+
arr[seg] = k_patch(existing.nil? ? next_default : existing, rest, v)
|
|
263
|
+
arr
|
|
264
|
+
else
|
|
265
|
+
raise 'cannot patch object key on array' if d.is_a?(Array)
|
|
266
|
+
obj = d.is_a?(Hash) ? d.dup : {}
|
|
267
|
+
existing = obj[seg]
|
|
268
|
+
obj[seg] = k_patch(existing.nil? ? next_default : existing, rest, v)
|
|
269
|
+
obj
|
|
270
|
+
end
|
|
271
|
+
end`,
|
|
272
|
+
p_ok: `def p_ok(v, p) { success: true, path: p, message: '', value: v, cause: [] } end`,
|
|
273
|
+
p_fail: `def p_fail(p, m = nil, c = nil) { success: false, path: p, message: m || '', value: nil, cause: c || [] } end`,
|
|
274
|
+
p_any: `def p_any(v, p) p_ok(v, p) end`,
|
|
275
|
+
p_string: `def p_string(v, p)
|
|
276
|
+
return p_ok(v, p) if v.is_a?(String)
|
|
277
|
+
p_fail(p, "expected String, got #{v.nil? ? 'Null' : v.class}")
|
|
278
|
+
end`,
|
|
279
|
+
p_int: `def p_int(v, p)
|
|
280
|
+
return p_ok(v, p) if v.is_a?(Integer)
|
|
281
|
+
return p_ok(Integer(v, 10), p) if v.is_a?(String) rescue nil
|
|
282
|
+
p_fail(p, "expected Int, got #{v.nil? ? 'Null' : v.is_a?(String) ? v.inspect : v.class}")
|
|
283
|
+
end`,
|
|
284
|
+
p_bool: `def p_bool(v, p)
|
|
285
|
+
return p_ok(v, p) if v == true || v == false
|
|
286
|
+
return p_ok(true, p) if v == 'true'
|
|
287
|
+
return p_ok(false, p) if v == 'false'
|
|
288
|
+
p_fail(p, "expected Bool, got #{v.nil? ? 'Null' : v.is_a?(String) ? v.inspect : v.class}")
|
|
289
|
+
end`,
|
|
290
|
+
p_datetime: `def p_datetime(v, p)
|
|
291
|
+
return p_ok(v, p) if v.is_a?(DateTime) || v.is_a?(Time)
|
|
292
|
+
return p_ok(DateTime.parse(v), p) if v.is_a?(String) rescue nil
|
|
293
|
+
p_fail(p, "expected Datetime, got #{v.nil? ? 'Null' : v.is_a?(String) ? 'invalid datetime ' + v.inspect : v.class}")
|
|
294
|
+
end`,
|
|
295
|
+
p_float: `def p_float(v, p)
|
|
296
|
+
return p_ok(v, p) if v.is_a?(Numeric)
|
|
297
|
+
return p_ok(Float(v), p) if v.is_a?(String) rescue nil
|
|
298
|
+
p_fail(p, "expected Float, got #{v.nil? ? 'Null' : v.is_a?(String) ? v.inspect : v.class}")
|
|
299
|
+
end`,
|
|
300
|
+
p_date: `def p_date(v, p)
|
|
301
|
+
return p_ok(v.to_date, p) if v.is_a?(DateTime) || v.is_a?(Time)
|
|
302
|
+
return p_ok(v, p) if v.is_a?(Date)
|
|
303
|
+
return p_ok(Date.parse(v), p) if v.is_a?(String) && v.match?(/^\\d{4}-\\d{2}-\\d{2}$/) rescue nil
|
|
304
|
+
p_fail(p, "expected Date (YYYY-MM-DD), got #{v.nil? ? 'Null' : v.is_a?(String) ? v.inspect : v.class}")
|
|
305
|
+
end`,
|
|
306
|
+
p_duration: `def p_duration(v, p)
|
|
307
|
+
return p_ok(v, p) if v.is_a?(ActiveSupport::Duration)
|
|
308
|
+
return p_ok(ActiveSupport::Duration.parse(v), p) if v.is_a?(String) rescue nil
|
|
309
|
+
p_fail(p, "expected Duration (ISO 8601), got #{v.nil? ? 'Null' : v.is_a?(String) ? v.inspect : v.class}")
|
|
310
|
+
end`,
|
|
311
|
+
p_data: `def p_data(v, p)
|
|
312
|
+
return p_ok(JSON.parse(v), p) if v.is_a?(String) rescue p_fail(p, "invalid JSON: #{v.inspect}")
|
|
313
|
+
p_ok(v, p)
|
|
314
|
+
end`,
|
|
315
|
+
p_unwrap: `def p_unwrap(r)
|
|
316
|
+
return r[:value] if r[:success]
|
|
317
|
+
find_error = ->(e) {
|
|
318
|
+
return e if e[:message] && !e[:message].empty?
|
|
319
|
+
return find_error.call(e[:cause][0]) if e[:cause] && e[:cause][0]
|
|
320
|
+
e
|
|
321
|
+
}
|
|
322
|
+
err = find_error.call(r)
|
|
323
|
+
raise "#{err[:path] || '.'}: #{err[:message] || 'type error'}"
|
|
324
|
+
end`,
|
|
325
|
+
};
|
|
326
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard Library for Elo
|
|
3
|
+
*
|
|
4
|
+
* Provides a type-based dispatch system for function implementations.
|
|
5
|
+
* Each target compiler (JS, Ruby, SQL) defines its own implementations
|
|
6
|
+
* that are looked up by function name and argument types.
|
|
7
|
+
*/
|
|
8
|
+
import { EloType } from './types';
|
|
9
|
+
import { IRExpr } from './ir';
|
|
10
|
+
/**
|
|
11
|
+
* A function signature: name + argument types
|
|
12
|
+
*/
|
|
13
|
+
export interface FunctionSignature {
|
|
14
|
+
name: string;
|
|
15
|
+
argTypes: EloType[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a signature key for lookup
|
|
19
|
+
* e.g., "add:int,int" or "neg:float"
|
|
20
|
+
*/
|
|
21
|
+
export declare function signatureKey(name: string, argTypes: EloType[]): string;
|
|
22
|
+
/**
|
|
23
|
+
* Format a function signature for user-friendly error messages
|
|
24
|
+
* e.g., "foo(Int, String)" or "upper(Any)"
|
|
25
|
+
*/
|
|
26
|
+
export declare function formatSignature(name: string, argTypes: EloType[]): string;
|
|
27
|
+
/**
|
|
28
|
+
* Generate all generalizations of argument types by progressively replacing
|
|
29
|
+
* concrete types with 'any'. Returns type arrays in order from most specific
|
|
30
|
+
* to most general.
|
|
31
|
+
*
|
|
32
|
+
* For [int, float]: returns [int,float], [any,float], [int,any], [any,any]
|
|
33
|
+
* Types that are already 'any' don't generate additional combinations.
|
|
34
|
+
*/
|
|
35
|
+
export declare function typeGeneralizations(argTypes: EloType[]): EloType[][];
|
|
36
|
+
/**
|
|
37
|
+
* Context passed to emitters for recursive emission
|
|
38
|
+
*/
|
|
39
|
+
export interface EmitContext<T> {
|
|
40
|
+
emit: (ir: IRExpr) => T;
|
|
41
|
+
emitWithParens: (ir: IRExpr, parentOp: string, side: 'left' | 'right') => T;
|
|
42
|
+
/** Track a required helper function (e.g., 'kAdd', 'kSub') */
|
|
43
|
+
requireHelper?: (name: string) => void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A function implementation that emits code for a specific signature
|
|
47
|
+
*/
|
|
48
|
+
export type FunctionEmitter<T> = (args: IRExpr[], ctx: EmitContext<T>) => T;
|
|
49
|
+
/**
|
|
50
|
+
* A library of function implementations for a target language
|
|
51
|
+
*/
|
|
52
|
+
export declare class StdLib<T> {
|
|
53
|
+
private implementations;
|
|
54
|
+
private fallback;
|
|
55
|
+
/**
|
|
56
|
+
* Register an implementation for a specific signature
|
|
57
|
+
*/
|
|
58
|
+
register(name: string, argTypes: EloType[], emitter: FunctionEmitter<T>): this;
|
|
59
|
+
/**
|
|
60
|
+
* Register a fallback for unmatched signatures
|
|
61
|
+
*/
|
|
62
|
+
registerFallback(handler: (name: string, args: IRExpr[], argTypes: EloType[], ctx: EmitContext<T>) => T): this;
|
|
63
|
+
/**
|
|
64
|
+
* Look up an implementation by signature.
|
|
65
|
+
* Tries progressively more general type signatures before giving up.
|
|
66
|
+
* For example, for add(int, float), tries:
|
|
67
|
+
* add(int, float) -> add(any, float) -> add(int, any) -> add(any, any)
|
|
68
|
+
*
|
|
69
|
+
* If any argument type is 'any' and no match is found through generalization,
|
|
70
|
+
* falls back to finding any implementation with matching name and arity.
|
|
71
|
+
* This allows functions like abs(any) to find abs(int) or abs(float).
|
|
72
|
+
*/
|
|
73
|
+
lookup(name: string, argTypes: EloType[]): FunctionEmitter<T> | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Emit code for a function call
|
|
76
|
+
*/
|
|
77
|
+
emit(name: string, args: IRExpr[], argTypes: EloType[], ctx: EmitContext<T>): T;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Helper to create a binary operator emitter
|
|
81
|
+
*/
|
|
82
|
+
export declare function binaryOp<T>(op: string, format: (left: T, right: T) => T): FunctionEmitter<T>;
|
|
83
|
+
/**
|
|
84
|
+
* Helper to create a simple binary operator that just joins with the operator
|
|
85
|
+
*/
|
|
86
|
+
export declare function simpleBinaryOp(op: string): FunctionEmitter<string>;
|
|
87
|
+
/**
|
|
88
|
+
* Helper to create a unary operator emitter
|
|
89
|
+
*/
|
|
90
|
+
export declare function unaryOp<T>(format: (operand: T, needsParens: boolean) => T, needsParensCheck: (arg: IRExpr) => boolean): FunctionEmitter<T>;
|
|
91
|
+
/**
|
|
92
|
+
* Helper for method call style: arg0.method(arg1)
|
|
93
|
+
*/
|
|
94
|
+
export declare function methodCall(method: string): FunctionEmitter<string>;
|
|
95
|
+
/**
|
|
96
|
+
* Helper for nullary function (no args)
|
|
97
|
+
*/
|
|
98
|
+
export declare function nullary<T>(value: T): FunctionEmitter<T>;
|
|
99
|
+
/**
|
|
100
|
+
* Helper for unary method call: arg0.method()
|
|
101
|
+
*/
|
|
102
|
+
export declare function unaryMethod(method: string): FunctionEmitter<string>;
|
|
103
|
+
/**
|
|
104
|
+
* Check if an IR expression is a binary operation (needs parens for postfix method calls)
|
|
105
|
+
*/
|
|
106
|
+
export declare function isBinaryOp(ir: IRExpr): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Helper for Ruby-style postfix method call that wraps binary expressions in parens.
|
|
109
|
+
* Use for: arg0.method() where Ruby's precedence requires parens around binary ops.
|
|
110
|
+
*/
|
|
111
|
+
export declare function rubyMethod(method: string): FunctionEmitter<string>;
|
|
112
|
+
/**
|
|
113
|
+
* Helper for function call style: fn(arg0, arg1, ...)
|
|
114
|
+
*/
|
|
115
|
+
export declare function fnCall(fnName: string): FunctionEmitter<string>;
|
|
116
|
+
/**
|
|
117
|
+
* Helper for runtime helper function call (tracks the helper as required)
|
|
118
|
+
* Used for dynamically-typed operations that need runtime support.
|
|
119
|
+
*/
|
|
120
|
+
export declare function helperCall(helperName: string): FunctionEmitter<string>;
|
|
121
|
+
//# sourceMappingURL=stdlib.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdlib.d.ts","sourceRoot":"","sources":["../../src/stdlib.ts"],"names":[],"mappings":"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"}
|