@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.
Files changed (165) hide show
  1. package/dist/addressing.d.ts +6 -6
  2. package/dist/addressing.js +16 -16
  3. package/dist/addressing.js.map +1 -1
  4. package/dist/ast.d.ts +18 -18
  5. package/dist/binder-wasm-rules.d.ts +2 -2
  6. package/dist/binder-wasm-rules.js +677 -724
  7. package/dist/binder-wasm-rules.js.map +1 -1
  8. package/dist/binder.d.ts +2 -2
  9. package/dist/binder.js +133 -137
  10. package/dist/binder.js.map +1 -1
  11. package/dist/builtin-capabilities.d.ts +4 -4
  12. package/dist/builtin-capabilities.js +777 -816
  13. package/dist/builtin-capabilities.js.map +1 -1
  14. package/dist/builtins/complex.d.ts +3 -3
  15. package/dist/builtins/complex.js +20 -48
  16. package/dist/builtins/complex.js.map +1 -1
  17. package/dist/builtins/convert.d.ts +1 -1
  18. package/dist/builtins/convert.js +180 -181
  19. package/dist/builtins/convert.js.map +1 -1
  20. package/dist/builtins/datetime.d.ts +1 -1
  21. package/dist/builtins/datetime.js +60 -72
  22. package/dist/builtins/datetime.js.map +1 -1
  23. package/dist/builtins/distribution-builtins.d.ts +2 -2
  24. package/dist/builtins/distribution-builtins.js +62 -112
  25. package/dist/builtins/distribution-builtins.js.map +1 -1
  26. package/dist/builtins/distributions.js +17 -54
  27. package/dist/builtins/distributions.js.map +1 -1
  28. package/dist/builtins/financial-builtins.d.ts +2 -2
  29. package/dist/builtins/financial-builtins.js +9 -42
  30. package/dist/builtins/financial-builtins.js.map +1 -1
  31. package/dist/builtins/financial.js +4 -18
  32. package/dist/builtins/financial.js.map +1 -1
  33. package/dist/builtins/fixed-income-builtins.d.ts +2 -2
  34. package/dist/builtins/fixed-income-builtins.js +18 -60
  35. package/dist/builtins/fixed-income-builtins.js.map +1 -1
  36. package/dist/builtins/fixed-income.js +25 -96
  37. package/dist/builtins/fixed-income.js.map +1 -1
  38. package/dist/builtins/formatting.js +9 -9
  39. package/dist/builtins/formatting.js.map +1 -1
  40. package/dist/builtins/logical.d.ts +1 -1
  41. package/dist/builtins/logical.js +5 -5
  42. package/dist/builtins/logical.js.map +1 -1
  43. package/dist/builtins/lookup-array-shape-builtins.d.ts +3 -3
  44. package/dist/builtins/lookup-array-shape-builtins.js +8 -15
  45. package/dist/builtins/lookup-array-shape-builtins.js.map +1 -1
  46. package/dist/builtins/lookup-criteria-builtins.d.ts +2 -2
  47. package/dist/builtins/lookup-criteria-builtins.js +1 -1
  48. package/dist/builtins/lookup-criteria-builtins.js.map +1 -1
  49. package/dist/builtins/lookup-database-builtins.d.ts +2 -2
  50. package/dist/builtins/lookup-database-builtins.js +20 -24
  51. package/dist/builtins/lookup-database-builtins.js.map +1 -1
  52. package/dist/builtins/lookup-financial-builtins.d.ts +3 -3
  53. package/dist/builtins/lookup-financial-builtins.js +14 -30
  54. package/dist/builtins/lookup-financial-builtins.js.map +1 -1
  55. package/dist/builtins/lookup-hypothesis-builtins.d.ts +2 -2
  56. package/dist/builtins/lookup-hypothesis-builtins.js +23 -58
  57. package/dist/builtins/lookup-hypothesis-builtins.js.map +1 -1
  58. package/dist/builtins/lookup-matrix-builtins.d.ts +3 -3
  59. package/dist/builtins/lookup-matrix-builtins.js +5 -3
  60. package/dist/builtins/lookup-matrix-builtins.js.map +1 -1
  61. package/dist/builtins/lookup-order-statistics-builtins.d.ts +3 -3
  62. package/dist/builtins/lookup-order-statistics-builtins.js +18 -30
  63. package/dist/builtins/lookup-order-statistics-builtins.js.map +1 -1
  64. package/dist/builtins/lookup-reference-builtins.d.ts +2 -2
  65. package/dist/builtins/lookup-reference-builtins.js +10 -26
  66. package/dist/builtins/lookup-reference-builtins.js.map +1 -1
  67. package/dist/builtins/lookup-regression-builtins.d.ts +2 -2
  68. package/dist/builtins/lookup-regression-builtins.js +52 -69
  69. package/dist/builtins/lookup-regression-builtins.js.map +1 -1
  70. package/dist/builtins/lookup-sort-filter-builtins.d.ts +3 -3
  71. package/dist/builtins/lookup-sort-filter-builtins.js +5 -13
  72. package/dist/builtins/lookup-sort-filter-builtins.js.map +1 -1
  73. package/dist/builtins/lookup.d.ts +5 -5
  74. package/dist/builtins/lookup.js +61 -73
  75. package/dist/builtins/lookup.js.map +1 -1
  76. package/dist/builtins/math-builtins.d.ts +2 -2
  77. package/dist/builtins/math-builtins.js +11 -17
  78. package/dist/builtins/math-builtins.js.map +1 -1
  79. package/dist/builtins/numeric.d.ts +2 -2
  80. package/dist/builtins/numeric.js +2 -2
  81. package/dist/builtins/numeric.js.map +1 -1
  82. package/dist/builtins/placeholder.d.ts +1 -1
  83. package/dist/builtins/placeholder.js +505 -505
  84. package/dist/builtins/placeholder.js.map +1 -1
  85. package/dist/builtins/radix.d.ts +2 -2
  86. package/dist/builtins/radix.js +33 -39
  87. package/dist/builtins/radix.js.map +1 -1
  88. package/dist/builtins/statistical-builtins.d.ts +2 -2
  89. package/dist/builtins/statistical-builtins.js +29 -56
  90. package/dist/builtins/statistical-builtins.js.map +1 -1
  91. package/dist/builtins/statistics.d.ts +1 -1
  92. package/dist/builtins/statistics.js +3 -7
  93. package/dist/builtins/statistics.js.map +1 -1
  94. package/dist/builtins/text-core-builtins.d.ts +2 -2
  95. package/dist/builtins/text-core-builtins.js +110 -110
  96. package/dist/builtins/text-core-builtins.js.map +1 -1
  97. package/dist/builtins/text-format-builtins.d.ts +2 -2
  98. package/dist/builtins/text-format-builtins.js +109 -141
  99. package/dist/builtins/text-format-builtins.js.map +1 -1
  100. package/dist/builtins/text-search-builtins.d.ts +2 -2
  101. package/dist/builtins/text-search-builtins.js +37 -44
  102. package/dist/builtins/text-search-builtins.js.map +1 -1
  103. package/dist/builtins/text.d.ts +2 -2
  104. package/dist/builtins/text.js +19 -29
  105. package/dist/builtins/text.js.map +1 -1
  106. package/dist/builtins.d.ts +3 -3
  107. package/dist/builtins.js +55 -75
  108. package/dist/builtins.js.map +1 -1
  109. package/dist/compatibility.js +425 -430
  110. package/dist/compatibility.js.map +1 -1
  111. package/dist/compiler.d.ts +7 -7
  112. package/dist/compiler.js +212 -228
  113. package/dist/compiler.js.map +1 -1
  114. package/dist/external-function-adapter.d.ts +6 -6
  115. package/dist/external-function-adapter.js +3 -3
  116. package/dist/external-function-adapter.js.map +1 -1
  117. package/dist/formula-template-key.js +25 -26
  118. package/dist/formula-template-key.js.map +1 -1
  119. package/dist/group-pivot-evaluator.d.ts +2 -2
  120. package/dist/group-pivot-evaluator.js +27 -32
  121. package/dist/group-pivot-evaluator.js.map +1 -1
  122. package/dist/index.d.ts +20 -20
  123. package/dist/index.js +20 -20
  124. package/dist/index.js.map +1 -1
  125. package/dist/js-evaluator-array-special-calls.d.ts +3 -3
  126. package/dist/js-evaluator-array-special-calls.js +25 -34
  127. package/dist/js-evaluator-array-special-calls.js.map +1 -1
  128. package/dist/js-evaluator-context-special-calls.d.ts +2 -2
  129. package/dist/js-evaluator-context-special-calls.js +23 -27
  130. package/dist/js-evaluator-context-special-calls.js.map +1 -1
  131. package/dist/js-evaluator-reference-context.d.ts +2 -2
  132. package/dist/js-evaluator-reference-context.js +22 -24
  133. package/dist/js-evaluator-reference-context.js.map +1 -1
  134. package/dist/js-evaluator-workbook-special-calls.d.ts +2 -2
  135. package/dist/js-evaluator-workbook-special-calls.js +18 -24
  136. package/dist/js-evaluator-workbook-special-calls.js.map +1 -1
  137. package/dist/js-evaluator.d.ts +40 -40
  138. package/dist/js-evaluator.js +135 -147
  139. package/dist/js-evaluator.js.map +1 -1
  140. package/dist/js-plan-lowering.d.ts +2 -2
  141. package/dist/js-plan-lowering.js +103 -108
  142. package/dist/js-plan-lowering.js.map +1 -1
  143. package/dist/lexer.d.ts +1 -1
  144. package/dist/lexer.js +34 -43
  145. package/dist/lexer.js.map +1 -1
  146. package/dist/optimizer.d.ts +1 -1
  147. package/dist/optimizer.js +99 -108
  148. package/dist/optimizer.js.map +1 -1
  149. package/dist/parser.d.ts +1 -1
  150. package/dist/parser.js +129 -136
  151. package/dist/parser.js.map +1 -1
  152. package/dist/program-arena.js.map +1 -1
  153. package/dist/runtime-inventory.d.ts +2 -2
  154. package/dist/runtime-inventory.js +14 -20
  155. package/dist/runtime-inventory.js.map +1 -1
  156. package/dist/runtime-values.d.ts +4 -4
  157. package/dist/runtime-values.js +2 -2
  158. package/dist/runtime-values.js.map +1 -1
  159. package/dist/special-call-rewrites.d.ts +1 -1
  160. package/dist/special-call-rewrites.js +14 -18
  161. package/dist/special-call-rewrites.js.map +1 -1
  162. package/dist/translation.d.ts +7 -7
  163. package/dist/translation.js +323 -366
  164. package/dist/translation.js.map +1 -1
  165. package/package.json +2 -2
package/dist/optimizer.js CHANGED
@@ -1,52 +1,52 @@
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"]);
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: "NumberLiteral", value: value.value };
10
+ return { kind: 'NumberLiteral', value: value.value };
11
11
  case ValueTag.Boolean:
12
- return { kind: "BooleanLiteral", value: value.value };
12
+ return { kind: 'BooleanLiteral', value: value.value };
13
13
  case ValueTag.String:
14
- return { kind: "StringLiteral", value: value.value };
14
+ return { kind: 'StringLiteral', value: value.value };
15
15
  case ValueTag.Empty:
16
16
  return undefined;
17
17
  case ValueTag.Error:
18
- return { kind: "ErrorLiteral", code: value.code };
18
+ return { kind: 'ErrorLiteral', code: value.code };
19
19
  }
20
20
  }
21
21
  function staticContext() {
22
22
  return {
23
- sheetName: "Sheet1",
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 "NumberLiteral":
31
- case "BooleanLiteral":
32
- case "StringLiteral":
33
- case "ErrorLiteral":
30
+ case 'NumberLiteral':
31
+ case 'BooleanLiteral':
32
+ case 'StringLiteral':
33
+ case 'ErrorLiteral':
34
34
  return true;
35
- case "NameRef":
36
- case "StructuredRef":
37
- case "CellRef":
38
- case "SpillRef":
39
- case "RowRef":
40
- case "ColumnRef":
41
- case "RangeRef":
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 "UnaryExpr":
43
+ case 'UnaryExpr':
44
44
  return isStaticNode(node.argument);
45
- case "BinaryExpr":
45
+ case 'BinaryExpr':
46
46
  return isStaticNode(node.left) && isStaticNode(node.right);
47
- case "CallExpr":
47
+ case 'CallExpr':
48
48
  return node.args.every(isStaticNode);
49
- case "InvokeExpr":
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 === "CallExpr" && arg.callee.toUpperCase() === "CONCAT") {
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 "NumberLiteral":
82
- case "BooleanLiteral":
83
- case "StringLiteral":
84
- case "ErrorLiteral":
85
- case "NameRef":
81
+ case 'NumberLiteral':
82
+ case 'BooleanLiteral':
83
+ case 'StringLiteral':
84
+ case 'ErrorLiteral':
85
+ case 'NameRef':
86
86
  return { ...node };
87
- case "StructuredRef":
87
+ case 'StructuredRef':
88
88
  return { ...node };
89
- case "CellRef":
90
- case "SpillRef":
91
- case "RowRef":
92
- case "ColumnRef":
89
+ case 'CellRef':
90
+ case 'SpillRef':
91
+ case 'RowRef':
92
+ case 'ColumnRef':
93
93
  return { ...node };
94
- case "RangeRef":
94
+ case 'RangeRef':
95
95
  return { ...node };
96
- case "UnaryExpr":
96
+ case 'UnaryExpr':
97
97
  return { ...node, argument: cloneFormulaNode(node.argument) };
98
- case "BinaryExpr":
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 "CallExpr":
104
+ case 'CallExpr':
105
105
  return { ...node, args: node.args.map(cloneFormulaNode) };
106
- case "InvokeExpr":
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 "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":
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 "NameRef": {
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 "UnaryExpr":
135
+ case 'UnaryExpr':
136
136
  return { ...node, argument: substituteNames(node.argument, replacements, shadowed) };
137
- case "BinaryExpr":
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 "CallExpr": {
143
+ case 'CallExpr': {
144
144
  const callee = node.callee.toUpperCase();
145
- if (callee === "LAMBDA" && node.args.length >= 1) {
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 === "NameRef") {
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 === "CallExpr" && replacement.callee.toUpperCase() === "LAMBDA") {
161
+ if (replacement?.kind === 'CallExpr' && replacement.callee.toUpperCase() === 'LAMBDA') {
165
162
  return {
166
- kind: "InvokeExpr",
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 "InvokeExpr":
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: "ErrorLiteral", code: ErrorCode.Value };
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 !== "NameRef" || valueArg === undefined) {
195
- return { kind: "ErrorLiteral", code: ErrorCode.Value };
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 !== "CallExpr" ||
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: "ErrorLiteral", code: ErrorCode.Value };
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 !== "NameRef") {
220
- return { kind: "ErrorLiteral", code: ErrorCode.Value };
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: "ErrorLiteral", code: ErrorCode.Value };
223
+ return { kind: 'ErrorLiteral', code: ErrorCode.Value };
229
224
  }
230
225
  const lambda = node.args[node.args.length - 1];
231
- if (lambda.kind !== "CallExpr" ||
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: "ErrorLiteral", code: ErrorCode.Value };
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 !== "NameRef") {
246
- return { kind: "ErrorLiteral", code: ErrorCode.Value };
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 === "CONCAT") {
248
+ if (callee === 'CONCAT') {
256
249
  args = flattenConcatArgs(args);
257
250
  }
258
- if (callee === "LET") {
259
- const rewritten = rewriteLet({ kind: "CallExpr", callee, args });
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 === "MAP") {
265
- const rewritten = rewriteMap({ kind: "CallExpr", callee, args });
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 === "IF" && args.length === 3) {
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: "CallExpr",
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: "CallExpr",
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 "NumberLiteral":
311
- case "BooleanLiteral":
312
- case "StringLiteral":
313
- case "ErrorLiteral":
314
- case "NameRef":
315
- case "StructuredRef":
316
- case "CellRef":
317
- case "SpillRef":
318
- case "RowRef":
319
- case "ColumnRef":
320
- case "RangeRef":
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 "UnaryExpr": {
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 "BinaryExpr": {
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 "CallExpr":
329
+ case 'CallExpr':
339
330
  return optimizeCall(node);
340
- case "InvokeExpr": {
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 };
@@ -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 "./ast.js";
1
+ import type { FormulaNode } from './ast.js';
2
2
  export declare function parseFormula(source: string): FormulaNode;