@bilig/formula 0.1.83 → 0.1.85
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/dist/addressing.d.ts +6 -6
- package/dist/addressing.js +16 -16
- package/dist/addressing.js.map +1 -1
- package/dist/ast.d.ts +18 -18
- package/dist/binder-wasm-rules.d.ts +2 -2
- package/dist/binder-wasm-rules.js +677 -724
- package/dist/binder-wasm-rules.js.map +1 -1
- package/dist/binder.d.ts +2 -2
- package/dist/binder.js +133 -137
- package/dist/binder.js.map +1 -1
- package/dist/builtin-capabilities.d.ts +4 -4
- package/dist/builtin-capabilities.js +777 -816
- package/dist/builtin-capabilities.js.map +1 -1
- package/dist/builtins/complex.d.ts +3 -3
- package/dist/builtins/complex.js +20 -48
- package/dist/builtins/complex.js.map +1 -1
- package/dist/builtins/convert.d.ts +1 -1
- package/dist/builtins/convert.js +180 -181
- package/dist/builtins/convert.js.map +1 -1
- package/dist/builtins/datetime.d.ts +1 -1
- package/dist/builtins/datetime.js +60 -72
- package/dist/builtins/datetime.js.map +1 -1
- package/dist/builtins/distribution-builtins.d.ts +2 -2
- package/dist/builtins/distribution-builtins.js +62 -112
- package/dist/builtins/distribution-builtins.js.map +1 -1
- package/dist/builtins/distributions.js +17 -54
- package/dist/builtins/distributions.js.map +1 -1
- package/dist/builtins/financial-builtins.d.ts +2 -2
- package/dist/builtins/financial-builtins.js +9 -42
- package/dist/builtins/financial-builtins.js.map +1 -1
- package/dist/builtins/financial.js +4 -18
- package/dist/builtins/financial.js.map +1 -1
- package/dist/builtins/fixed-income-builtins.d.ts +2 -2
- package/dist/builtins/fixed-income-builtins.js +18 -60
- package/dist/builtins/fixed-income-builtins.js.map +1 -1
- package/dist/builtins/fixed-income.js +25 -96
- package/dist/builtins/fixed-income.js.map +1 -1
- package/dist/builtins/formatting.js +9 -9
- package/dist/builtins/formatting.js.map +1 -1
- package/dist/builtins/logical.d.ts +1 -1
- package/dist/builtins/logical.js +5 -5
- package/dist/builtins/logical.js.map +1 -1
- package/dist/builtins/lookup-array-shape-builtins.d.ts +3 -3
- package/dist/builtins/lookup-array-shape-builtins.js +8 -15
- package/dist/builtins/lookup-array-shape-builtins.js.map +1 -1
- package/dist/builtins/lookup-criteria-builtins.d.ts +2 -2
- package/dist/builtins/lookup-criteria-builtins.js +1 -1
- package/dist/builtins/lookup-criteria-builtins.js.map +1 -1
- package/dist/builtins/lookup-database-builtins.d.ts +2 -2
- package/dist/builtins/lookup-database-builtins.js +20 -24
- package/dist/builtins/lookup-database-builtins.js.map +1 -1
- package/dist/builtins/lookup-financial-builtins.d.ts +3 -3
- package/dist/builtins/lookup-financial-builtins.js +14 -30
- package/dist/builtins/lookup-financial-builtins.js.map +1 -1
- package/dist/builtins/lookup-hypothesis-builtins.d.ts +2 -2
- package/dist/builtins/lookup-hypothesis-builtins.js +23 -58
- package/dist/builtins/lookup-hypothesis-builtins.js.map +1 -1
- package/dist/builtins/lookup-matrix-builtins.d.ts +3 -3
- package/dist/builtins/lookup-matrix-builtins.js +5 -3
- package/dist/builtins/lookup-matrix-builtins.js.map +1 -1
- package/dist/builtins/lookup-order-statistics-builtins.d.ts +3 -3
- package/dist/builtins/lookup-order-statistics-builtins.js +18 -30
- package/dist/builtins/lookup-order-statistics-builtins.js.map +1 -1
- package/dist/builtins/lookup-reference-builtins.d.ts +2 -2
- package/dist/builtins/lookup-reference-builtins.js +10 -26
- package/dist/builtins/lookup-reference-builtins.js.map +1 -1
- package/dist/builtins/lookup-regression-builtins.d.ts +2 -2
- package/dist/builtins/lookup-regression-builtins.js +52 -69
- package/dist/builtins/lookup-regression-builtins.js.map +1 -1
- package/dist/builtins/lookup-sort-filter-builtins.d.ts +3 -3
- package/dist/builtins/lookup-sort-filter-builtins.js +5 -13
- package/dist/builtins/lookup-sort-filter-builtins.js.map +1 -1
- package/dist/builtins/lookup.d.ts +5 -5
- package/dist/builtins/lookup.js +61 -73
- package/dist/builtins/lookup.js.map +1 -1
- package/dist/builtins/math-builtins.d.ts +2 -2
- package/dist/builtins/math-builtins.js +11 -17
- package/dist/builtins/math-builtins.js.map +1 -1
- package/dist/builtins/numeric.d.ts +2 -2
- package/dist/builtins/numeric.js +2 -2
- package/dist/builtins/numeric.js.map +1 -1
- package/dist/builtins/placeholder.d.ts +1 -1
- package/dist/builtins/placeholder.js +505 -505
- package/dist/builtins/placeholder.js.map +1 -1
- package/dist/builtins/radix.d.ts +2 -2
- package/dist/builtins/radix.js +33 -39
- package/dist/builtins/radix.js.map +1 -1
- package/dist/builtins/statistical-builtins.d.ts +2 -2
- package/dist/builtins/statistical-builtins.js +29 -56
- package/dist/builtins/statistical-builtins.js.map +1 -1
- package/dist/builtins/statistics.d.ts +1 -1
- package/dist/builtins/statistics.js +3 -7
- package/dist/builtins/statistics.js.map +1 -1
- package/dist/builtins/text-core-builtins.d.ts +2 -2
- package/dist/builtins/text-core-builtins.js +110 -110
- package/dist/builtins/text-core-builtins.js.map +1 -1
- package/dist/builtins/text-format-builtins.d.ts +2 -2
- package/dist/builtins/text-format-builtins.js +109 -141
- package/dist/builtins/text-format-builtins.js.map +1 -1
- package/dist/builtins/text-search-builtins.d.ts +2 -2
- package/dist/builtins/text-search-builtins.js +37 -44
- package/dist/builtins/text-search-builtins.js.map +1 -1
- package/dist/builtins/text.d.ts +2 -2
- package/dist/builtins/text.js +19 -29
- package/dist/builtins/text.js.map +1 -1
- package/dist/builtins.d.ts +3 -3
- package/dist/builtins.js +55 -75
- package/dist/builtins.js.map +1 -1
- package/dist/compatibility.js +425 -430
- package/dist/compatibility.js.map +1 -1
- package/dist/compiler.d.ts +7 -7
- package/dist/compiler.js +212 -228
- package/dist/compiler.js.map +1 -1
- package/dist/external-function-adapter.d.ts +6 -6
- package/dist/external-function-adapter.js +3 -3
- package/dist/external-function-adapter.js.map +1 -1
- package/dist/formula-template-key.js +25 -26
- package/dist/formula-template-key.js.map +1 -1
- package/dist/group-pivot-evaluator.d.ts +2 -2
- package/dist/group-pivot-evaluator.js +27 -32
- package/dist/group-pivot-evaluator.js.map +1 -1
- package/dist/index.d.ts +20 -20
- package/dist/index.js +20 -20
- package/dist/index.js.map +1 -1
- package/dist/js-evaluator-array-special-calls.d.ts +3 -3
- package/dist/js-evaluator-array-special-calls.js +25 -34
- package/dist/js-evaluator-array-special-calls.js.map +1 -1
- package/dist/js-evaluator-context-special-calls.d.ts +2 -2
- package/dist/js-evaluator-context-special-calls.js +23 -27
- package/dist/js-evaluator-context-special-calls.js.map +1 -1
- package/dist/js-evaluator-reference-context.d.ts +2 -2
- package/dist/js-evaluator-reference-context.js +22 -24
- package/dist/js-evaluator-reference-context.js.map +1 -1
- package/dist/js-evaluator-workbook-special-calls.d.ts +2 -2
- package/dist/js-evaluator-workbook-special-calls.js +18 -24
- package/dist/js-evaluator-workbook-special-calls.js.map +1 -1
- package/dist/js-evaluator.d.ts +40 -40
- package/dist/js-evaluator.js +135 -147
- package/dist/js-evaluator.js.map +1 -1
- package/dist/js-plan-lowering.d.ts +2 -2
- package/dist/js-plan-lowering.js +103 -108
- package/dist/js-plan-lowering.js.map +1 -1
- package/dist/lexer.d.ts +1 -1
- package/dist/lexer.js +34 -43
- package/dist/lexer.js.map +1 -1
- package/dist/optimizer.d.ts +1 -1
- package/dist/optimizer.js +99 -108
- package/dist/optimizer.js.map +1 -1
- package/dist/parser.d.ts +1 -1
- package/dist/parser.js +129 -136
- package/dist/parser.js.map +1 -1
- package/dist/program-arena.js.map +1 -1
- package/dist/runtime-inventory.d.ts +2 -2
- package/dist/runtime-inventory.js +14 -20
- package/dist/runtime-inventory.js.map +1 -1
- package/dist/runtime-values.d.ts +4 -4
- package/dist/runtime-values.js +2 -2
- package/dist/runtime-values.js.map +1 -1
- package/dist/special-call-rewrites.d.ts +1 -1
- package/dist/special-call-rewrites.js +14 -18
- package/dist/special-call-rewrites.js.map +1 -1
- package/dist/translation.d.ts +7 -7
- package/dist/translation.js +323 -366
- package/dist/translation.js.map +1 -1
- package/package.json +2 -2
package/dist/optimizer.js
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { ErrorCode, ValueTag } from
|
|
2
|
-
import { evaluateAstResult } from
|
|
3
|
-
import { isArrayValue } from
|
|
4
|
-
import { rewriteSpecialCall } from
|
|
5
|
-
const VOLATILE_BUILTINS = new Set([
|
|
6
|
-
const CONTEXTUAL_BUILTINS = new Set([
|
|
1
|
+
import { ErrorCode, ValueTag } from '@bilig/protocol';
|
|
2
|
+
import { evaluateAstResult } from './js-evaluator.js';
|
|
3
|
+
import { isArrayValue } from './runtime-values.js';
|
|
4
|
+
import { rewriteSpecialCall } from './special-call-rewrites.js';
|
|
5
|
+
const VOLATILE_BUILTINS = new Set(['TODAY', 'NOW', 'RAND']);
|
|
6
|
+
const CONTEXTUAL_BUILTINS = new Set(['CELL', 'COLUMN', 'FORMULATEXT', 'ROW', 'SHEET', 'SHEETS']);
|
|
7
7
|
function cellValueToAst(value) {
|
|
8
8
|
switch (value.tag) {
|
|
9
9
|
case ValueTag.Number:
|
|
10
|
-
return { kind:
|
|
10
|
+
return { kind: 'NumberLiteral', value: value.value };
|
|
11
11
|
case ValueTag.Boolean:
|
|
12
|
-
return { kind:
|
|
12
|
+
return { kind: 'BooleanLiteral', value: value.value };
|
|
13
13
|
case ValueTag.String:
|
|
14
|
-
return { kind:
|
|
14
|
+
return { kind: 'StringLiteral', value: value.value };
|
|
15
15
|
case ValueTag.Empty:
|
|
16
16
|
return undefined;
|
|
17
17
|
case ValueTag.Error:
|
|
18
|
-
return { kind:
|
|
18
|
+
return { kind: 'ErrorLiteral', code: value.code };
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
function staticContext() {
|
|
22
22
|
return {
|
|
23
|
-
sheetName:
|
|
23
|
+
sheetName: 'Sheet1',
|
|
24
24
|
resolveCell: () => ({ tag: ValueTag.Empty }),
|
|
25
25
|
resolveRange: () => [],
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
function isStaticNode(node) {
|
|
29
29
|
switch (node.kind) {
|
|
30
|
-
case
|
|
31
|
-
case
|
|
32
|
-
case
|
|
33
|
-
case
|
|
30
|
+
case 'NumberLiteral':
|
|
31
|
+
case 'BooleanLiteral':
|
|
32
|
+
case 'StringLiteral':
|
|
33
|
+
case 'ErrorLiteral':
|
|
34
34
|
return true;
|
|
35
|
-
case
|
|
36
|
-
case
|
|
37
|
-
case
|
|
38
|
-
case
|
|
39
|
-
case
|
|
40
|
-
case
|
|
41
|
-
case
|
|
35
|
+
case 'NameRef':
|
|
36
|
+
case 'StructuredRef':
|
|
37
|
+
case 'CellRef':
|
|
38
|
+
case 'SpillRef':
|
|
39
|
+
case 'RowRef':
|
|
40
|
+
case 'ColumnRef':
|
|
41
|
+
case 'RangeRef':
|
|
42
42
|
return false;
|
|
43
|
-
case
|
|
43
|
+
case 'UnaryExpr':
|
|
44
44
|
return isStaticNode(node.argument);
|
|
45
|
-
case
|
|
45
|
+
case 'BinaryExpr':
|
|
46
46
|
return isStaticNode(node.left) && isStaticNode(node.right);
|
|
47
|
-
case
|
|
47
|
+
case 'CallExpr':
|
|
48
48
|
return node.args.every(isStaticNode);
|
|
49
|
-
case
|
|
49
|
+
case 'InvokeExpr':
|
|
50
50
|
return isStaticNode(node.callee) && node.args.every(isStaticNode);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -65,7 +65,7 @@ function tryEvaluateStatic(node) {
|
|
|
65
65
|
function flattenConcatArgs(args) {
|
|
66
66
|
const flattened = [];
|
|
67
67
|
args.forEach((arg) => {
|
|
68
|
-
if (arg.kind ===
|
|
68
|
+
if (arg.kind === 'CallExpr' && arg.callee.toUpperCase() === 'CONCAT') {
|
|
69
69
|
flattened.push(...flattenConcatArgs(arg.args));
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
@@ -78,32 +78,32 @@ function normalizeName(name) {
|
|
|
78
78
|
}
|
|
79
79
|
function cloneFormulaNode(node) {
|
|
80
80
|
switch (node.kind) {
|
|
81
|
-
case
|
|
82
|
-
case
|
|
83
|
-
case
|
|
84
|
-
case
|
|
85
|
-
case
|
|
81
|
+
case 'NumberLiteral':
|
|
82
|
+
case 'BooleanLiteral':
|
|
83
|
+
case 'StringLiteral':
|
|
84
|
+
case 'ErrorLiteral':
|
|
85
|
+
case 'NameRef':
|
|
86
86
|
return { ...node };
|
|
87
|
-
case
|
|
87
|
+
case 'StructuredRef':
|
|
88
88
|
return { ...node };
|
|
89
|
-
case
|
|
90
|
-
case
|
|
91
|
-
case
|
|
92
|
-
case
|
|
89
|
+
case 'CellRef':
|
|
90
|
+
case 'SpillRef':
|
|
91
|
+
case 'RowRef':
|
|
92
|
+
case 'ColumnRef':
|
|
93
93
|
return { ...node };
|
|
94
|
-
case
|
|
94
|
+
case 'RangeRef':
|
|
95
95
|
return { ...node };
|
|
96
|
-
case
|
|
96
|
+
case 'UnaryExpr':
|
|
97
97
|
return { ...node, argument: cloneFormulaNode(node.argument) };
|
|
98
|
-
case
|
|
98
|
+
case 'BinaryExpr':
|
|
99
99
|
return {
|
|
100
100
|
...node,
|
|
101
101
|
left: cloneFormulaNode(node.left),
|
|
102
102
|
right: cloneFormulaNode(node.right),
|
|
103
103
|
};
|
|
104
|
-
case
|
|
104
|
+
case 'CallExpr':
|
|
105
105
|
return { ...node, args: node.args.map(cloneFormulaNode) };
|
|
106
|
-
case
|
|
106
|
+
case 'InvokeExpr':
|
|
107
107
|
return {
|
|
108
108
|
...node,
|
|
109
109
|
callee: cloneFormulaNode(node.callee),
|
|
@@ -113,18 +113,18 @@ function cloneFormulaNode(node) {
|
|
|
113
113
|
}
|
|
114
114
|
function substituteNames(node, replacements, shadowed = new Set()) {
|
|
115
115
|
switch (node.kind) {
|
|
116
|
-
case
|
|
117
|
-
case
|
|
118
|
-
case
|
|
119
|
-
case
|
|
120
|
-
case
|
|
121
|
-
case
|
|
122
|
-
case
|
|
123
|
-
case
|
|
124
|
-
case
|
|
125
|
-
case
|
|
116
|
+
case 'NumberLiteral':
|
|
117
|
+
case 'BooleanLiteral':
|
|
118
|
+
case 'StringLiteral':
|
|
119
|
+
case 'ErrorLiteral':
|
|
120
|
+
case 'StructuredRef':
|
|
121
|
+
case 'CellRef':
|
|
122
|
+
case 'SpillRef':
|
|
123
|
+
case 'RowRef':
|
|
124
|
+
case 'ColumnRef':
|
|
125
|
+
case 'RangeRef':
|
|
126
126
|
return cloneFormulaNode(node);
|
|
127
|
-
case
|
|
127
|
+
case 'NameRef': {
|
|
128
128
|
const key = normalizeName(node.name);
|
|
129
129
|
if (shadowed.has(key)) {
|
|
130
130
|
return { ...node };
|
|
@@ -132,38 +132,35 @@ function substituteNames(node, replacements, shadowed = new Set()) {
|
|
|
132
132
|
const replacement = replacements.get(key);
|
|
133
133
|
return replacement ? cloneFormulaNode(replacement) : { ...node };
|
|
134
134
|
}
|
|
135
|
-
case
|
|
135
|
+
case 'UnaryExpr':
|
|
136
136
|
return { ...node, argument: substituteNames(node.argument, replacements, shadowed) };
|
|
137
|
-
case
|
|
137
|
+
case 'BinaryExpr':
|
|
138
138
|
return {
|
|
139
139
|
...node,
|
|
140
140
|
left: substituteNames(node.left, replacements, shadowed),
|
|
141
141
|
right: substituteNames(node.right, replacements, shadowed),
|
|
142
142
|
};
|
|
143
|
-
case
|
|
143
|
+
case 'CallExpr': {
|
|
144
144
|
const callee = node.callee.toUpperCase();
|
|
145
|
-
if (callee ===
|
|
145
|
+
if (callee === 'LAMBDA' && node.args.length >= 1) {
|
|
146
146
|
const params = node.args.slice(0, -1);
|
|
147
147
|
const body = node.args[node.args.length - 1];
|
|
148
148
|
const innerShadowed = new Set(shadowed);
|
|
149
149
|
params.forEach((param) => {
|
|
150
|
-
if (param.kind ===
|
|
150
|
+
if (param.kind === 'NameRef') {
|
|
151
151
|
innerShadowed.add(normalizeName(param.name));
|
|
152
152
|
}
|
|
153
153
|
});
|
|
154
154
|
return {
|
|
155
155
|
...node,
|
|
156
156
|
callee,
|
|
157
|
-
args: [
|
|
158
|
-
...params.map(cloneFormulaNode),
|
|
159
|
-
substituteNames(body, replacements, innerShadowed),
|
|
160
|
-
],
|
|
157
|
+
args: [...params.map(cloneFormulaNode), substituteNames(body, replacements, innerShadowed)],
|
|
161
158
|
};
|
|
162
159
|
}
|
|
163
160
|
const replacement = shadowed.has(callee) ? undefined : replacements.get(callee);
|
|
164
|
-
if (replacement?.kind ===
|
|
161
|
+
if (replacement?.kind === 'CallExpr' && replacement.callee.toUpperCase() === 'LAMBDA') {
|
|
165
162
|
return {
|
|
166
|
-
kind:
|
|
163
|
+
kind: 'InvokeExpr',
|
|
167
164
|
callee: cloneFormulaNode(replacement),
|
|
168
165
|
args: node.args.map((arg) => substituteNames(arg, replacements, shadowed)),
|
|
169
166
|
};
|
|
@@ -174,7 +171,7 @@ function substituteNames(node, replacements, shadowed = new Set()) {
|
|
|
174
171
|
args: node.args.map((arg) => substituteNames(arg, replacements, shadowed)),
|
|
175
172
|
};
|
|
176
173
|
}
|
|
177
|
-
case
|
|
174
|
+
case 'InvokeExpr':
|
|
178
175
|
return {
|
|
179
176
|
...node,
|
|
180
177
|
callee: substituteNames(node.callee, replacements, shadowed),
|
|
@@ -184,15 +181,15 @@ function substituteNames(node, replacements, shadowed = new Set()) {
|
|
|
184
181
|
}
|
|
185
182
|
function rewriteLet(node) {
|
|
186
183
|
if (node.args.length < 3 || node.args.length % 2 === 0) {
|
|
187
|
-
return { kind:
|
|
184
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
188
185
|
}
|
|
189
186
|
const replacements = new Map();
|
|
190
187
|
const lastArgIndex = node.args.length - 1;
|
|
191
188
|
for (let index = 0; index < lastArgIndex; index += 2) {
|
|
192
189
|
const nameArg = node.args[index];
|
|
193
190
|
const valueArg = node.args[index + 1];
|
|
194
|
-
if (nameArg?.kind !==
|
|
195
|
-
return { kind:
|
|
191
|
+
if (nameArg?.kind !== 'NameRef' || valueArg === undefined) {
|
|
192
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
196
193
|
}
|
|
197
194
|
replacements.set(normalizeName(nameArg.name), substituteNames(valueArg, replacements));
|
|
198
195
|
}
|
|
@@ -200,15 +197,13 @@ function rewriteLet(node) {
|
|
|
200
197
|
}
|
|
201
198
|
function rewriteImmediateLambdaInvoke(node) {
|
|
202
199
|
const callee = node.callee;
|
|
203
|
-
if (callee.kind !==
|
|
204
|
-
callee.callee.toUpperCase() !== "LAMBDA" ||
|
|
205
|
-
callee.args.length < 1) {
|
|
200
|
+
if (callee.kind !== 'CallExpr' || callee.callee.toUpperCase() !== 'LAMBDA' || callee.args.length < 1) {
|
|
206
201
|
return undefined;
|
|
207
202
|
}
|
|
208
203
|
const params = callee.args.slice(0, -1);
|
|
209
204
|
const body = callee.args[callee.args.length - 1];
|
|
210
205
|
if (node.args.length > params.length) {
|
|
211
|
-
return { kind:
|
|
206
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
212
207
|
}
|
|
213
208
|
if (node.args.length !== params.length) {
|
|
214
209
|
return undefined;
|
|
@@ -216,8 +211,8 @@ function rewriteImmediateLambdaInvoke(node) {
|
|
|
216
211
|
const replacements = new Map();
|
|
217
212
|
for (let index = 0; index < params.length; index += 1) {
|
|
218
213
|
const param = params[index];
|
|
219
|
-
if (param?.kind !==
|
|
220
|
-
return { kind:
|
|
214
|
+
if (param?.kind !== 'NameRef') {
|
|
215
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
221
216
|
}
|
|
222
217
|
replacements.set(normalizeName(param.name), node.args[index]);
|
|
223
218
|
}
|
|
@@ -225,25 +220,23 @@ function rewriteImmediateLambdaInvoke(node) {
|
|
|
225
220
|
}
|
|
226
221
|
function rewriteMap(node) {
|
|
227
222
|
if (node.args.length < 2) {
|
|
228
|
-
return { kind:
|
|
223
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
229
224
|
}
|
|
230
225
|
const lambda = node.args[node.args.length - 1];
|
|
231
|
-
if (lambda.kind !==
|
|
232
|
-
lambda.callee.toUpperCase() !== "LAMBDA" ||
|
|
233
|
-
lambda.args.length < 1) {
|
|
226
|
+
if (lambda.kind !== 'CallExpr' || lambda.callee.toUpperCase() !== 'LAMBDA' || lambda.args.length < 1) {
|
|
234
227
|
return undefined;
|
|
235
228
|
}
|
|
236
229
|
const params = lambda.args.slice(0, -1);
|
|
237
230
|
const body = lambda.args[lambda.args.length - 1];
|
|
238
231
|
const inputs = node.args.slice(0, -1);
|
|
239
232
|
if (params.length !== inputs.length) {
|
|
240
|
-
return { kind:
|
|
233
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
241
234
|
}
|
|
242
235
|
const replacements = new Map();
|
|
243
236
|
for (let index = 0; index < params.length; index += 1) {
|
|
244
237
|
const param = params[index];
|
|
245
|
-
if (param?.kind !==
|
|
246
|
-
return { kind:
|
|
238
|
+
if (param?.kind !== 'NameRef') {
|
|
239
|
+
return { kind: 'ErrorLiteral', code: ErrorCode.Value };
|
|
247
240
|
}
|
|
248
241
|
replacements.set(normalizeName(param.name), inputs[index]);
|
|
249
242
|
}
|
|
@@ -252,22 +245,22 @@ function rewriteMap(node) {
|
|
|
252
245
|
function optimizeCall(node) {
|
|
253
246
|
const callee = node.callee.toUpperCase();
|
|
254
247
|
let args = node.args.map(optimizeFormula);
|
|
255
|
-
if (callee ===
|
|
248
|
+
if (callee === 'CONCAT') {
|
|
256
249
|
args = flattenConcatArgs(args);
|
|
257
250
|
}
|
|
258
|
-
if (callee ===
|
|
259
|
-
const rewritten = rewriteLet({ kind:
|
|
251
|
+
if (callee === 'LET') {
|
|
252
|
+
const rewritten = rewriteLet({ kind: 'CallExpr', callee, args });
|
|
260
253
|
if (rewritten) {
|
|
261
254
|
return optimizeFormula(rewritten);
|
|
262
255
|
}
|
|
263
256
|
}
|
|
264
|
-
if (callee ===
|
|
265
|
-
const rewritten = rewriteMap({ kind:
|
|
257
|
+
if (callee === 'MAP') {
|
|
258
|
+
const rewritten = rewriteMap({ kind: 'CallExpr', callee, args });
|
|
266
259
|
if (rewritten) {
|
|
267
260
|
return optimizeFormula(rewritten);
|
|
268
261
|
}
|
|
269
262
|
}
|
|
270
|
-
if (callee ===
|
|
263
|
+
if (callee === 'IF' && args.length === 3) {
|
|
271
264
|
const conditionValue = tryEvaluateStatic(args[0]);
|
|
272
265
|
if (conditionValue && conditionValue.tag !== ValueTag.Error) {
|
|
273
266
|
const truthy = conditionValue.tag === ValueTag.Boolean
|
|
@@ -281,7 +274,7 @@ function optimizeCall(node) {
|
|
|
281
274
|
}
|
|
282
275
|
}
|
|
283
276
|
const rewritten = rewriteSpecialCall({
|
|
284
|
-
kind:
|
|
277
|
+
kind: 'CallExpr',
|
|
285
278
|
callee,
|
|
286
279
|
args,
|
|
287
280
|
});
|
|
@@ -289,7 +282,7 @@ function optimizeCall(node) {
|
|
|
289
282
|
return optimizeFormula(rewritten);
|
|
290
283
|
}
|
|
291
284
|
const candidate = {
|
|
292
|
-
kind:
|
|
285
|
+
kind: 'CallExpr',
|
|
293
286
|
callee,
|
|
294
287
|
args,
|
|
295
288
|
};
|
|
@@ -307,37 +300,35 @@ function optimizeCall(node) {
|
|
|
307
300
|
}
|
|
308
301
|
export function optimizeFormula(node) {
|
|
309
302
|
switch (node.kind) {
|
|
310
|
-
case
|
|
311
|
-
case
|
|
312
|
-
case
|
|
313
|
-
case
|
|
314
|
-
case
|
|
315
|
-
case
|
|
316
|
-
case
|
|
317
|
-
case
|
|
318
|
-
case
|
|
319
|
-
case
|
|
320
|
-
case
|
|
303
|
+
case 'NumberLiteral':
|
|
304
|
+
case 'BooleanLiteral':
|
|
305
|
+
case 'StringLiteral':
|
|
306
|
+
case 'ErrorLiteral':
|
|
307
|
+
case 'NameRef':
|
|
308
|
+
case 'StructuredRef':
|
|
309
|
+
case 'CellRef':
|
|
310
|
+
case 'SpillRef':
|
|
311
|
+
case 'RowRef':
|
|
312
|
+
case 'ColumnRef':
|
|
313
|
+
case 'RangeRef':
|
|
321
314
|
return node;
|
|
322
|
-
case
|
|
315
|
+
case 'UnaryExpr': {
|
|
323
316
|
const argument = optimizeFormula(node.argument);
|
|
324
|
-
if (node.operator ===
|
|
317
|
+
if (node.operator === '+') {
|
|
325
318
|
return argument;
|
|
326
319
|
}
|
|
327
320
|
const folded = tryEvaluateStatic({ ...node, argument });
|
|
328
321
|
return folded ? (cellValueToAst(folded) ?? { ...node, argument }) : { ...node, argument };
|
|
329
322
|
}
|
|
330
|
-
case
|
|
323
|
+
case 'BinaryExpr': {
|
|
331
324
|
const left = optimizeFormula(node.left);
|
|
332
325
|
const right = optimizeFormula(node.right);
|
|
333
326
|
const folded = tryEvaluateStatic({ ...node, left, right });
|
|
334
|
-
return folded
|
|
335
|
-
? (cellValueToAst(folded) ?? { ...node, left, right })
|
|
336
|
-
: { ...node, left, right };
|
|
327
|
+
return folded ? (cellValueToAst(folded) ?? { ...node, left, right }) : { ...node, left, right };
|
|
337
328
|
}
|
|
338
|
-
case
|
|
329
|
+
case 'CallExpr':
|
|
339
330
|
return optimizeCall(node);
|
|
340
|
-
case
|
|
331
|
+
case 'InvokeExpr': {
|
|
341
332
|
const callee = optimizeFormula(node.callee);
|
|
342
333
|
const args = node.args.map(optimizeFormula);
|
|
343
334
|
const candidate = { ...node, callee, args };
|
package/dist/optimizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../src/optimizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../src/optimizer.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { FormulaNode } from
|
|
1
|
+
import type { FormulaNode } from './ast.js';
|
|
2
2
|
export declare function parseFormula(source: string): FormulaNode;
|