@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
@@ -1 +1 @@
1
- {"version":3,"file":"js-evaluator.js","sourceRoot":"","sources":["../src/js-evaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-evaluator.js","sourceRoot":"","sources":["../src/js-evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { FormulaNode } from "./ast.js";
2
- import type { JsPlanInstruction } from "./js-evaluator.js";
1
+ import type { FormulaNode } from './ast.js';
2
+ import type { JsPlanInstruction } from './js-evaluator.js';
3
3
  export declare function lowerToPlan(node: FormulaNode): JsPlanInstruction[];
@@ -1,57 +1,57 @@
1
- import { ErrorCode } from "@bilig/protocol";
2
- import { parseRangeAddress } from "./addressing.js";
3
- import { hasBuiltin } from "./builtins.js";
4
- import { rewriteSpecialCall } from "./special-call-rewrites.js";
1
+ import { ErrorCode } from '@bilig/protocol';
2
+ import { parseRangeAddress } from './addressing.js';
3
+ import { hasBuiltin } from './builtins.js';
4
+ import { rewriteSpecialCall } from './special-call-rewrites.js';
5
5
  function referenceOperandFromNode(node) {
6
6
  switch (node.kind) {
7
- case "CellRef":
7
+ case 'CellRef':
8
8
  return {
9
- kind: "cell",
9
+ kind: 'cell',
10
10
  ...(node.sheetName === undefined ? {} : { sheetName: node.sheetName }),
11
11
  address: node.ref,
12
12
  };
13
- case "RangeRef":
13
+ case 'RangeRef':
14
14
  return {
15
- kind: "range",
15
+ kind: 'range',
16
16
  ...(node.sheetName === undefined ? {} : { sheetName: node.sheetName }),
17
17
  start: node.start,
18
18
  end: node.end,
19
19
  refKind: node.refKind,
20
20
  };
21
- case "RowRef":
21
+ case 'RowRef':
22
22
  return {
23
- kind: "row",
23
+ kind: 'row',
24
24
  ...(node.sheetName === undefined ? {} : { sheetName: node.sheetName }),
25
25
  address: node.ref,
26
26
  };
27
- case "ColumnRef":
27
+ case 'ColumnRef':
28
28
  return {
29
- kind: "col",
29
+ kind: 'col',
30
30
  ...(node.sheetName === undefined ? {} : { sheetName: node.sheetName }),
31
31
  address: node.ref,
32
32
  };
33
- case "BinaryExpr":
34
- case "BooleanLiteral":
35
- case "CallExpr":
36
- case "ErrorLiteral":
37
- case "InvokeExpr":
38
- case "NameRef":
39
- case "NumberLiteral":
40
- case "SpillRef":
41
- case "StringLiteral":
42
- case "StructuredRef":
43
- case "UnaryExpr":
33
+ case 'BinaryExpr':
34
+ case 'BooleanLiteral':
35
+ case 'CallExpr':
36
+ case 'ErrorLiteral':
37
+ case 'InvokeExpr':
38
+ case 'NameRef':
39
+ case 'NumberLiteral':
40
+ case 'SpillRef':
41
+ case 'StringLiteral':
42
+ case 'StructuredRef':
43
+ case 'UnaryExpr':
44
44
  return undefined;
45
45
  default:
46
46
  return undefined;
47
47
  }
48
48
  }
49
49
  function isVectorCellRange(node) {
50
- if (node.kind !== "RangeRef" || node.refKind !== "cells") {
50
+ if (node.kind !== 'RangeRef' || node.refKind !== 'cells') {
51
51
  return false;
52
52
  }
53
53
  const parsed = parseRangeAddress(`${node.start}:${node.end}`, node.sheetName);
54
- return (parsed.kind === "cells" &&
54
+ return (parsed.kind === 'cells' &&
55
55
  (parsed.start.col === parsed.end.col || parsed.start.row === parsed.end.row) &&
56
56
  (parsed.start.col !== parsed.end.col || parsed.start.row !== parsed.end.row));
57
57
  }
@@ -59,12 +59,12 @@ function staticIntegerValue(node) {
59
59
  if (!node) {
60
60
  return undefined;
61
61
  }
62
- if (node.kind === "NumberLiteral") {
62
+ if (node.kind === 'NumberLiteral') {
63
63
  return Number.isInteger(node.value) ? node.value : undefined;
64
64
  }
65
- if (node.kind === "UnaryExpr" &&
66
- node.operator === "-" &&
67
- node.argument.kind === "NumberLiteral" &&
65
+ if (node.kind === 'UnaryExpr' &&
66
+ node.operator === '-' &&
67
+ node.argument.kind === 'NumberLiteral' &&
68
68
  Number.isInteger(node.argument.value)) {
69
69
  return -node.argument.value;
70
70
  }
@@ -73,19 +73,19 @@ function staticIntegerValue(node) {
73
73
  function lowerExactVectorLookup(node, plan) {
74
74
  const callee = node.callee.toUpperCase();
75
75
  const lookupRange = node.args[1];
76
- if (callee === "MATCH" &&
76
+ if (callee === 'MATCH' &&
77
77
  node.args.length === 3 &&
78
78
  lookupRange !== undefined &&
79
79
  isVectorCellRange(lookupRange) &&
80
80
  staticIntegerValue(node.args[2]) === 0) {
81
81
  const parsedRange = parseRangeAddress(`${lookupRange.start}:${lookupRange.end}`, lookupRange.sheetName);
82
- if (parsedRange.kind !== "cells") {
82
+ if (parsedRange.kind !== 'cells') {
83
83
  return false;
84
84
  }
85
85
  lowerNode(node.args[0], plan);
86
86
  plan.push({
87
- opcode: "lookup-exact-match",
88
- callee: "MATCH",
87
+ opcode: 'lookup-exact-match',
88
+ callee: 'MATCH',
89
89
  ...(lookupRange.sheetName === undefined ? {} : { sheetName: lookupRange.sheetName }),
90
90
  start: lookupRange.start,
91
91
  end: lookupRange.end,
@@ -93,12 +93,12 @@ function lowerExactVectorLookup(node, plan) {
93
93
  endRow: parsedRange.end.row,
94
94
  startCol: parsedRange.start.col,
95
95
  endCol: parsedRange.end.col,
96
- refKind: "cells",
96
+ refKind: 'cells',
97
97
  searchMode: 1,
98
98
  });
99
99
  return true;
100
100
  }
101
- if (callee === "XMATCH" &&
101
+ if (callee === 'XMATCH' &&
102
102
  node.args.length >= 2 &&
103
103
  node.args.length <= 4 &&
104
104
  lookupRange !== undefined &&
@@ -107,13 +107,13 @@ function lowerExactVectorLookup(node, plan) {
107
107
  const searchMode = node.args.length >= 4 ? staticIntegerValue(node.args[3]) : 1;
108
108
  if (searchMode === 1 || searchMode === -1) {
109
109
  const parsedRange = parseRangeAddress(`${lookupRange.start}:${lookupRange.end}`, lookupRange.sheetName);
110
- if (parsedRange.kind !== "cells") {
110
+ if (parsedRange.kind !== 'cells') {
111
111
  return false;
112
112
  }
113
113
  lowerNode(node.args[0], plan);
114
114
  plan.push({
115
- opcode: "lookup-exact-match",
116
- callee: "XMATCH",
115
+ opcode: 'lookup-exact-match',
116
+ callee: 'XMATCH',
117
117
  ...(lookupRange.sheetName === undefined ? {} : { sheetName: lookupRange.sheetName }),
118
118
  start: lookupRange.start,
119
119
  end: lookupRange.end,
@@ -121,7 +121,7 @@ function lowerExactVectorLookup(node, plan) {
121
121
  endRow: parsedRange.end.row,
122
122
  startCol: parsedRange.start.col,
123
123
  endCol: parsedRange.end.col,
124
- refKind: "cells",
124
+ refKind: 'cells',
125
125
  searchMode,
126
126
  });
127
127
  return true;
@@ -132,20 +132,17 @@ function lowerExactVectorLookup(node, plan) {
132
132
  function lowerApproximateVectorLookup(node, plan) {
133
133
  const callee = node.callee.toUpperCase();
134
134
  const lookupRange = node.args[1];
135
- if (callee === "MATCH" &&
136
- node.args.length === 3 &&
137
- lookupRange !== undefined &&
138
- isVectorCellRange(lookupRange)) {
135
+ if (callee === 'MATCH' && node.args.length === 3 && lookupRange !== undefined && isVectorCellRange(lookupRange)) {
139
136
  const matchMode = staticIntegerValue(node.args[2]);
140
137
  if (matchMode === 1 || matchMode === -1) {
141
138
  const parsedRange = parseRangeAddress(`${lookupRange.start}:${lookupRange.end}`, lookupRange.sheetName);
142
- if (parsedRange.kind !== "cells") {
139
+ if (parsedRange.kind !== 'cells') {
143
140
  return false;
144
141
  }
145
142
  lowerNode(node.args[0], plan);
146
143
  plan.push({
147
- opcode: "lookup-approximate-match",
148
- callee: "MATCH",
144
+ opcode: 'lookup-approximate-match',
145
+ callee: 'MATCH',
149
146
  ...(lookupRange.sheetName === undefined ? {} : { sheetName: lookupRange.sheetName }),
150
147
  start: lookupRange.start,
151
148
  end: lookupRange.end,
@@ -153,13 +150,13 @@ function lowerApproximateVectorLookup(node, plan) {
153
150
  endRow: parsedRange.end.row,
154
151
  startCol: parsedRange.start.col,
155
152
  endCol: parsedRange.end.col,
156
- refKind: "cells",
153
+ refKind: 'cells',
157
154
  matchMode,
158
155
  });
159
156
  return true;
160
157
  }
161
158
  }
162
- if (callee === "XMATCH" &&
159
+ if (callee === 'XMATCH' &&
163
160
  node.args.length >= 3 &&
164
161
  node.args.length <= 4 &&
165
162
  lookupRange !== undefined &&
@@ -168,13 +165,13 @@ function lowerApproximateVectorLookup(node, plan) {
168
165
  const searchMode = node.args.length === 4 ? staticIntegerValue(node.args[3]) : 1;
169
166
  if ((matchMode === 1 || matchMode === -1) && searchMode === 1) {
170
167
  const parsedRange = parseRangeAddress(`${lookupRange.start}:${lookupRange.end}`, lookupRange.sheetName);
171
- if (parsedRange.kind !== "cells") {
168
+ if (parsedRange.kind !== 'cells') {
172
169
  return false;
173
170
  }
174
171
  lowerNode(node.args[0], plan);
175
172
  plan.push({
176
- opcode: "lookup-approximate-match",
177
- callee: "XMATCH",
173
+ opcode: 'lookup-approximate-match',
174
+ callee: 'XMATCH',
178
175
  ...(lookupRange.sheetName === undefined ? {} : { sheetName: lookupRange.sheetName }),
179
176
  start: lookupRange.start,
180
177
  end: lookupRange.end,
@@ -182,7 +179,7 @@ function lowerApproximateVectorLookup(node, plan) {
182
179
  endRow: parsedRange.end.row,
183
180
  startCol: parsedRange.start.col,
184
181
  endCol: parsedRange.end.col,
185
- refKind: "cells",
182
+ refKind: 'cells',
186
183
  matchMode,
187
184
  });
188
185
  return true;
@@ -192,65 +189,63 @@ function lowerApproximateVectorLookup(node, plan) {
192
189
  }
193
190
  function lowerNode(node, plan) {
194
191
  switch (node.kind) {
195
- case "NumberLiteral":
196
- plan.push({ opcode: "push-number", value: node.value });
192
+ case 'NumberLiteral':
193
+ plan.push({ opcode: 'push-number', value: node.value });
197
194
  return;
198
- case "BooleanLiteral":
199
- plan.push({ opcode: "push-boolean", value: node.value });
195
+ case 'BooleanLiteral':
196
+ plan.push({ opcode: 'push-boolean', value: node.value });
200
197
  return;
201
- case "StringLiteral":
202
- plan.push({ opcode: "push-string", value: node.value });
198
+ case 'StringLiteral':
199
+ plan.push({ opcode: 'push-string', value: node.value });
203
200
  return;
204
- case "ErrorLiteral":
205
- plan.push({ opcode: "push-error", code: node.code });
201
+ case 'ErrorLiteral':
202
+ plan.push({ opcode: 'push-error', code: node.code });
206
203
  return;
207
- case "NameRef":
208
- plan.push({ opcode: "push-name", name: node.name });
204
+ case 'NameRef':
205
+ plan.push({ opcode: 'push-name', name: node.name });
209
206
  return;
210
- case "StructuredRef":
211
- case "SpillRef":
212
- plan.push({ opcode: "push-error", code: ErrorCode.Ref });
207
+ case 'StructuredRef':
208
+ case 'SpillRef':
209
+ plan.push({ opcode: 'push-error', code: ErrorCode.Ref });
213
210
  return;
214
- case "CellRef":
215
- plan.push(node.sheetName
216
- ? { opcode: "push-cell", sheetName: node.sheetName, address: node.ref }
217
- : { opcode: "push-cell", address: node.ref });
211
+ case 'CellRef':
212
+ plan.push(node.sheetName ? { opcode: 'push-cell', sheetName: node.sheetName, address: node.ref } : { opcode: 'push-cell', address: node.ref });
218
213
  return;
219
- case "RangeRef":
214
+ case 'RangeRef':
220
215
  plan.push(node.sheetName
221
216
  ? {
222
- opcode: "push-range",
217
+ opcode: 'push-range',
223
218
  sheetName: node.sheetName,
224
219
  start: node.start,
225
220
  end: node.end,
226
221
  refKind: node.refKind,
227
222
  }
228
223
  : {
229
- opcode: "push-range",
224
+ opcode: 'push-range',
230
225
  start: node.start,
231
226
  end: node.end,
232
227
  refKind: node.refKind,
233
228
  });
234
229
  return;
235
- case "RowRef":
236
- case "ColumnRef":
237
- plan.push({ opcode: "push-number", value: Number.NaN });
230
+ case 'RowRef':
231
+ case 'ColumnRef':
232
+ plan.push({ opcode: 'push-number', value: Number.NaN });
238
233
  return;
239
- case "UnaryExpr":
234
+ case 'UnaryExpr':
240
235
  lowerNode(node.argument, plan);
241
- plan.push({ opcode: "unary", operator: node.operator });
236
+ plan.push({ opcode: 'unary', operator: node.operator });
242
237
  return;
243
- case "BinaryExpr":
238
+ case 'BinaryExpr':
244
239
  lowerNode(node.left, plan);
245
240
  lowerNode(node.right, plan);
246
- plan.push({ opcode: "binary", operator: node.operator });
241
+ plan.push({ opcode: 'binary', operator: node.operator });
247
242
  return;
248
- case "InvokeExpr":
243
+ case 'InvokeExpr':
249
244
  lowerNode(node.callee, plan);
250
245
  node.args.forEach((arg) => lowerNode(arg, plan));
251
- plan.push({ opcode: "invoke", argc: node.args.length });
246
+ plan.push({ opcode: 'invoke', argc: node.args.length });
252
247
  return;
253
- case "CallExpr": {
248
+ case 'CallExpr': {
254
249
  const rewritten = rewriteSpecialCall(node);
255
250
  if (rewritten) {
256
251
  lowerNode(rewritten, plan);
@@ -263,74 +258,74 @@ function lowerNode(node, plan) {
263
258
  return;
264
259
  }
265
260
  const callee = node.callee.toUpperCase();
266
- if (callee === "LAMBDA") {
261
+ if (callee === 'LAMBDA') {
267
262
  if (node.args.length < 1) {
268
- plan.push({ opcode: "push-error", code: ErrorCode.Value });
263
+ plan.push({ opcode: 'push-error', code: ErrorCode.Value });
269
264
  return;
270
265
  }
271
266
  const params = [];
272
267
  for (let index = 0; index < node.args.length - 1; index += 1) {
273
268
  const paramNode = node.args[index];
274
- if (paramNode.kind !== "NameRef") {
275
- plan.push({ opcode: "push-error", code: ErrorCode.Value });
269
+ if (paramNode.kind !== 'NameRef') {
270
+ plan.push({ opcode: 'push-error', code: ErrorCode.Value });
276
271
  return;
277
272
  }
278
273
  params.push(paramNode.name);
279
274
  }
280
275
  const body = [];
281
276
  lowerNode(node.args[node.args.length - 1], body);
282
- body.push({ opcode: "return" });
283
- plan.push({ opcode: "push-lambda", params, body });
277
+ body.push({ opcode: 'return' });
278
+ plan.push({ opcode: 'push-lambda', params, body });
284
279
  return;
285
280
  }
286
- if (callee === "LET") {
281
+ if (callee === 'LET') {
287
282
  if (node.args.length < 3 || node.args.length % 2 === 0) {
288
- plan.push({ opcode: "push-error", code: ErrorCode.Value });
283
+ plan.push({ opcode: 'push-error', code: ErrorCode.Value });
289
284
  return;
290
285
  }
291
- plan.push({ opcode: "begin-scope" });
286
+ plan.push({ opcode: 'begin-scope' });
292
287
  for (let index = 0; index < node.args.length - 1; index += 2) {
293
288
  const nameNode = node.args[index];
294
- if (nameNode.kind !== "NameRef") {
295
- plan.push({ opcode: "push-error", code: ErrorCode.Value });
296
- plan.push({ opcode: "end-scope" });
289
+ if (nameNode.kind !== 'NameRef') {
290
+ plan.push({ opcode: 'push-error', code: ErrorCode.Value });
291
+ plan.push({ opcode: 'end-scope' });
297
292
  return;
298
293
  }
299
294
  lowerNode(node.args[index + 1], plan);
300
- plan.push({ opcode: "bind-name", name: nameNode.name });
295
+ plan.push({ opcode: 'bind-name', name: nameNode.name });
301
296
  }
302
297
  lowerNode(node.args[node.args.length - 1], plan);
303
- plan.push({ opcode: "end-scope" });
298
+ plan.push({ opcode: 'end-scope' });
304
299
  return;
305
300
  }
306
- if (callee === "IF" && node.args.length === 3) {
301
+ if (callee === 'IF' && node.args.length === 3) {
307
302
  lowerNode(node.args[0], plan);
308
- const jumpIfFalseIndex = plan.push({ opcode: "jump-if-false", target: -1 }) - 1;
303
+ const jumpIfFalseIndex = plan.push({ opcode: 'jump-if-false', target: -1 }) - 1;
309
304
  lowerNode(node.args[1], plan);
310
- const jumpIndex = plan.push({ opcode: "jump", target: -1 }) - 1;
305
+ const jumpIndex = plan.push({ opcode: 'jump', target: -1 }) - 1;
311
306
  const falseTarget = plan.length;
312
307
  lowerNode(node.args[2], plan);
313
308
  const endTarget = plan.length;
314
- plan[jumpIfFalseIndex] = { opcode: "jump-if-false", target: falseTarget };
315
- plan[jumpIndex] = { opcode: "jump", target: endTarget };
309
+ plan[jumpIfFalseIndex] = { opcode: 'jump-if-false', target: falseTarget };
310
+ plan[jumpIndex] = { opcode: 'jump', target: endTarget };
316
311
  return;
317
312
  }
318
313
  if (!hasBuiltin(callee)) {
319
- lowerNode({ kind: "NameRef", name: node.callee }, plan);
314
+ lowerNode({ kind: 'NameRef', name: node.callee }, plan);
320
315
  node.args.forEach((arg) => lowerNode(arg, plan));
321
- plan.push({ opcode: "invoke", argc: node.args.length });
316
+ plan.push({ opcode: 'invoke', argc: node.args.length });
322
317
  return;
323
318
  }
324
- const aggregateArgumentIndex = callee === "GROUPBY" ? 2 : callee === "PIVOTBY" ? 3 : -1;
319
+ const aggregateArgumentIndex = callee === 'GROUPBY' ? 2 : callee === 'PIVOTBY' ? 3 : -1;
325
320
  node.args.forEach((arg, index) => {
326
- if (index === aggregateArgumentIndex && arg.kind === "NameRef") {
327
- plan.push({ opcode: "push-string", value: arg.name });
321
+ if (index === aggregateArgumentIndex && arg.kind === 'NameRef') {
322
+ plan.push({ opcode: 'push-string', value: arg.name });
328
323
  return;
329
324
  }
330
325
  lowerNode(arg, plan);
331
326
  });
332
327
  plan.push({
333
- opcode: "call",
328
+ opcode: 'call',
334
329
  callee,
335
330
  argc: node.args.length,
336
331
  argRefs: node.args.map((arg) => referenceOperandFromNode(arg)),
@@ -342,7 +337,7 @@ function lowerNode(node, plan) {
342
337
  export function lowerToPlan(node) {
343
338
  const plan = [];
344
339
  lowerNode(node, plan);
345
- plan.push({ opcode: "return" });
340
+ plan.push({ opcode: 'return' });
346
341
  return plan;
347
342
  }
348
343
  //# sourceMappingURL=js-plan-lowering.js.map