@elaraai/east 0.0.1-beta.1 → 0.0.1-beta.10

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 (124) hide show
  1. package/README.md +9 -6
  2. package/dist/src/analyze.d.ts +4 -4
  3. package/dist/src/analyze.d.ts.map +1 -1
  4. package/dist/src/analyze.js +142 -44
  5. package/dist/src/analyze.js.map +1 -1
  6. package/dist/src/ast.d.ts +18 -7
  7. package/dist/src/ast.d.ts.map +1 -1
  8. package/dist/src/ast.js +1 -146
  9. package/dist/src/ast.js.map +1 -1
  10. package/dist/src/ast_to_ir.d.ts +7 -0
  11. package/dist/src/ast_to_ir.d.ts.map +1 -1
  12. package/dist/src/ast_to_ir.js +80 -11
  13. package/dist/src/ast_to_ir.js.map +1 -1
  14. package/dist/src/builtins.d.ts +1 -1
  15. package/dist/src/builtins.d.ts.map +1 -1
  16. package/dist/src/builtins.js +89 -64
  17. package/dist/src/builtins.js.map +1 -1
  18. package/dist/src/comparison.d.ts.map +1 -1
  19. package/dist/src/comparison.js +19 -2
  20. package/dist/src/comparison.js.map +1 -1
  21. package/dist/src/compile.d.ts.map +1 -1
  22. package/dist/src/compile.js +137 -221
  23. package/dist/src/compile.js.map +1 -1
  24. package/dist/src/default.d.ts.map +1 -1
  25. package/dist/src/default.js +2 -0
  26. package/dist/src/default.js.map +1 -1
  27. package/dist/src/eastir.d.ts +12 -10
  28. package/dist/src/eastir.d.ts.map +1 -1
  29. package/dist/src/eastir.js +20 -19
  30. package/dist/src/eastir.js.map +1 -1
  31. package/dist/src/expr/array.d.ts +66 -0
  32. package/dist/src/expr/array.d.ts.map +1 -1
  33. package/dist/src/expr/array.js +161 -51
  34. package/dist/src/expr/array.js.map +1 -1
  35. package/dist/src/expr/ast.d.ts.map +1 -1
  36. package/dist/src/expr/ast.js +6 -0
  37. package/dist/src/expr/ast.js.map +1 -1
  38. package/dist/src/expr/asyncfunction.d.ts +49 -0
  39. package/dist/src/expr/asyncfunction.d.ts.map +1 -0
  40. package/dist/src/expr/asyncfunction.js +60 -0
  41. package/dist/src/expr/asyncfunction.js.map +1 -0
  42. package/dist/src/expr/blob.d.ts +25 -1
  43. package/dist/src/expr/blob.d.ts.map +1 -1
  44. package/dist/src/expr/blob.js +36 -1
  45. package/dist/src/expr/blob.js.map +1 -1
  46. package/dist/src/expr/block.d.ts +82 -8
  47. package/dist/src/expr/block.d.ts.map +1 -1
  48. package/dist/src/expr/block.js +278 -16
  49. package/dist/src/expr/block.js.map +1 -1
  50. package/dist/src/expr/dict.js +47 -47
  51. package/dist/src/expr/dict.js.map +1 -1
  52. package/dist/src/expr/expr.d.ts +9 -0
  53. package/dist/src/expr/expr.d.ts.map +1 -1
  54. package/dist/src/expr/expr.js +5 -1
  55. package/dist/src/expr/expr.js.map +1 -1
  56. package/dist/src/expr/index.d.ts +112 -2
  57. package/dist/src/expr/index.d.ts.map +1 -1
  58. package/dist/src/expr/index.js +110 -8
  59. package/dist/src/expr/index.js.map +1 -1
  60. package/dist/src/expr/libs/array.js +1 -1
  61. package/dist/src/expr/libs/array.js.map +1 -1
  62. package/dist/src/expr/libs/dict.js +3 -3
  63. package/dist/src/expr/libs/dict.js.map +1 -1
  64. package/dist/src/expr/libs/integer.d.ts +19 -0
  65. package/dist/src/expr/libs/integer.d.ts.map +1 -1
  66. package/dist/src/expr/libs/integer.js +47 -0
  67. package/dist/src/expr/libs/integer.js.map +1 -1
  68. package/dist/src/expr/libs/set.js +2 -2
  69. package/dist/src/expr/libs/set.js.map +1 -1
  70. package/dist/src/expr/ref.js +1 -1
  71. package/dist/src/expr/ref.js.map +1 -1
  72. package/dist/src/expr/set.js +38 -38
  73. package/dist/src/expr/set.js.map +1 -1
  74. package/dist/src/expr/struct.d.ts +2 -0
  75. package/dist/src/expr/struct.d.ts.map +1 -1
  76. package/dist/src/expr/types.d.ts +8 -5
  77. package/dist/src/expr/types.d.ts.map +1 -1
  78. package/dist/src/expr/variant.d.ts +53 -0
  79. package/dist/src/expr/variant.d.ts.map +1 -1
  80. package/dist/src/expr/variant.js +56 -0
  81. package/dist/src/expr/variant.js.map +1 -1
  82. package/dist/src/fuzz.d.ts.map +1 -1
  83. package/dist/src/fuzz.js +5 -0
  84. package/dist/src/fuzz.js.map +1 -1
  85. package/dist/src/internal.d.ts +7 -0
  86. package/dist/src/internal.d.ts.map +1 -1
  87. package/dist/src/internal.js +7 -0
  88. package/dist/src/internal.js.map +1 -1
  89. package/dist/src/ir.d.ts +231 -33
  90. package/dist/src/ir.d.ts.map +1 -1
  91. package/dist/src/ir.js +3 -1
  92. package/dist/src/ir.js.map +1 -1
  93. package/dist/src/serialization/beast.d.ts.map +1 -1
  94. package/dist/src/serialization/beast.js +59 -18
  95. package/dist/src/serialization/beast.js.map +1 -1
  96. package/dist/src/serialization/beast2-stream.d.ts.map +1 -1
  97. package/dist/src/serialization/beast2-stream.js +5 -0
  98. package/dist/src/serialization/beast2-stream.js.map +1 -1
  99. package/dist/src/serialization/beast2.d.ts.map +1 -1
  100. package/dist/src/serialization/beast2.js +10 -4
  101. package/dist/src/serialization/beast2.js.map +1 -1
  102. package/dist/src/serialization/csv.d.ts +139 -0
  103. package/dist/src/serialization/csv.d.ts.map +1 -0
  104. package/dist/src/serialization/csv.js +615 -0
  105. package/dist/src/serialization/csv.js.map +1 -0
  106. package/dist/src/serialization/east.d.ts.map +1 -1
  107. package/dist/src/serialization/east.js +9 -1
  108. package/dist/src/serialization/east.js.map +1 -1
  109. package/dist/src/serialization/index.d.ts +1 -0
  110. package/dist/src/serialization/index.d.ts.map +1 -1
  111. package/dist/src/serialization/index.js +1 -0
  112. package/dist/src/serialization/index.js.map +1 -1
  113. package/dist/src/serialization/json.d.ts.map +1 -1
  114. package/dist/src/serialization/json.js +8 -2
  115. package/dist/src/serialization/json.js.map +1 -1
  116. package/dist/src/type_of_type.d.ts +20 -3
  117. package/dist/src/type_of_type.d.ts.map +1 -1
  118. package/dist/src/type_of_type.js +101 -13
  119. package/dist/src/type_of_type.js.map +1 -1
  120. package/dist/src/types.d.ts +59 -16
  121. package/dist/src/types.d.ts.map +1 -1
  122. package/dist/src/types.js +141 -91
  123. package/dist/src/types.js.map +1 -1
  124. package/package.json +4 -4
package/dist/src/ast.js CHANGED
@@ -2,150 +2,5 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
- import { Builtins } from "./builtins.js";
6
- /** Get the platform functions used inside an AST node. Useful to obtrain the potential effects performed by a function.
7
- *
8
- * @internal */
9
- export function getPlatforms(ast) {
10
- const platforms = new Set();
11
- _getPlatforms(ast, platforms);
12
- return [...platforms].sort();
13
- }
14
- /** @internal */
15
- export function _getPlatforms(ast, platforms) {
16
- if (ast.ast_type === "Platform") {
17
- // The trivial case
18
- platforms.add(ast.name);
19
- }
20
- else if (ast.ast_type === "Call") {
21
- // We need to obtain the callee, which may require platforms to evaluate
22
- _getPlatforms(ast.function, platforms);
23
- // We need to obtain the arguments
24
- for (const arg of ast.arguments) {
25
- _getPlatforms(arg, platforms);
26
- }
27
- // Finally, we need to add any platforms the function uses
28
- const callee_platforms = ast.function.type.platforms;
29
- if (callee_platforms === null) {
30
- throw new Error(`Called function has not populated the 'platforms' field`);
31
- }
32
- else {
33
- for (const p of callee_platforms) {
34
- platforms.add(p);
35
- }
36
- }
37
- }
38
- else if (ast.ast_type === "Builtin") {
39
- const builtin_def = Builtins[ast.builtin];
40
- if (!builtin_def) {
41
- throw new Error(`Unknown builtin ${ast.builtin}`);
42
- }
43
- if (builtin_def.inputs.length !== ast.arguments.length) {
44
- throw new Error(`Builtin ${ast.builtin} expected ${builtin_def.inputs.length} arguments, got ${ast.arguments.length}`);
45
- }
46
- for (const [i, arg] of ast.arguments.entries()) {
47
- // Find the platform functions required to evaluate the argument
48
- _getPlatforms(arg, platforms);
49
- // Some platform functions are higher-order functions
50
- // - No existing builtin returns a function
51
- // - Any functions they call are direct arguments
52
- // - Such arguments have "Function" type in their Builtin definition
53
- const expected_type = builtin_def.inputs[i];
54
- if (typeof expected_type === "object" && expected_type.type === "Function") {
55
- if (arg.type.type !== "Function") {
56
- throw new Error(`Builtin ${ast.builtin} expected argument ${i} to be a function`);
57
- }
58
- const func_platforms = arg.type.platforms;
59
- if (func_platforms === null) {
60
- throw new Error(`Builtin ${ast.builtin} argument ${i} function has not populated the 'platforms' field`);
61
- }
62
- else {
63
- for (const p of func_platforms) {
64
- platforms.add(p);
65
- }
66
- }
67
- }
68
- }
69
- }
70
- else if (ast.ast_type === "Value" || ast.ast_type === "Variable" || ast.ast_type === "Function" || ast.ast_type === "Continue" || ast.ast_type === "Break") {
71
- // effect free (Function only collects captured variables here)
72
- }
73
- else if (ast.ast_type === "As" || ast.ast_type === "UnwrapRecursive" || ast.ast_type === "WrapRecursive" || ast.ast_type === "Let" || ast.ast_type === "Assign" || ast.ast_type === "Return" || ast.ast_type === "NewRef") {
74
- _getPlatforms(ast.value, platforms);
75
- }
76
- else if (ast.ast_type === "Error") {
77
- _getPlatforms(ast.message, platforms);
78
- }
79
- else if (ast.ast_type === "TryCatch") {
80
- _getPlatforms(ast.try_body, platforms);
81
- _getPlatforms(ast.catch_body, platforms);
82
- if (ast.finally_body) {
83
- _getPlatforms(ast.finally_body, platforms);
84
- }
85
- }
86
- else if (ast.ast_type === "NewArray") {
87
- for (const v of ast.values) {
88
- _getPlatforms(v, platforms);
89
- }
90
- }
91
- else if (ast.ast_type === "NewSet") {
92
- for (const v of ast.values) {
93
- _getPlatforms(v, platforms);
94
- }
95
- }
96
- else if (ast.ast_type === "NewDict") {
97
- for (const [k, v] of ast.values) {
98
- _getPlatforms(k, platforms);
99
- _getPlatforms(v, platforms);
100
- }
101
- }
102
- else if (ast.ast_type === "Struct") {
103
- for (const f of Object.values(ast.fields)) {
104
- _getPlatforms(f, platforms);
105
- }
106
- }
107
- else if (ast.ast_type === "GetField") {
108
- _getPlatforms(ast.struct, platforms);
109
- }
110
- else if (ast.ast_type === "Variant") {
111
- _getPlatforms(ast.value, platforms);
112
- }
113
- else if (ast.ast_type === "Match") {
114
- _getPlatforms(ast.variant, platforms);
115
- for (const case_body of Object.values(ast.cases)) {
116
- _getPlatforms(case_body.body, platforms);
117
- }
118
- }
119
- else if (ast.ast_type === "Block") {
120
- for (const s of ast.statements) {
121
- _getPlatforms(s, platforms);
122
- }
123
- }
124
- else if (ast.ast_type === "IfElse") {
125
- for (const if_case of ast.ifs) {
126
- _getPlatforms(if_case.predicate, platforms);
127
- _getPlatforms(if_case.body, platforms);
128
- }
129
- _getPlatforms(ast.else_body, platforms);
130
- }
131
- else if (ast.ast_type === "While") {
132
- _getPlatforms(ast.predicate, platforms);
133
- _getPlatforms(ast.body, platforms);
134
- }
135
- else if (ast.ast_type === "ForArray") {
136
- _getPlatforms(ast.array, platforms);
137
- _getPlatforms(ast.body, platforms);
138
- }
139
- else if (ast.ast_type === "ForSet") {
140
- _getPlatforms(ast.set, platforms);
141
- _getPlatforms(ast.body, platforms);
142
- }
143
- else if (ast.ast_type === "ForDict") {
144
- _getPlatforms(ast.dict, platforms);
145
- _getPlatforms(ast.body, platforms);
146
- }
147
- else {
148
- throw new Error(`Unhandled AST node type in getPlatforms: ${ast.ast_type}`);
149
- }
150
- }
5
+ import {} from "./builtins.js";
151
6
  //# sourceMappingURL=ast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAgS3D;;eAEe;AACf,MAAM,UAAU,YAAY,CAAC,GAAQ;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,GAAQ,EAAE,SAAsB;IAC5D,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAChC,mBAAmB;QACnB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACnC,wEAAwE;QACxE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEvC,kCAAkC;QAClC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAChC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAChC,CAAC;QAED,0DAA0D;QAC1D,MAAM,gBAAgB,GAAI,GAAG,CAAC,QAAQ,CAAC,IAAqB,CAAC,SAAS,CAAC;QACvE,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,aAAa,WAAW,CAAC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACzH,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,gEAAgE;YAChE,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAE9B,qDAAqD;YACrD,4CAA4C;YAC5C,kDAAkD;YAClD,qEAAqE;YAErE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC;YAC7C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3E,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;gBACpF,CAAC;gBAED,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC1C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,mDAAmD,CAAC,CAAC;gBAC3G,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;wBAC/B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC7J,+DAA+D;IACjE,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,iBAAiB,IAAI,GAAG,CAAC,QAAQ,KAAK,eAAe,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5N,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACvC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3B,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3B,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC5B,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACvC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/B,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC9B,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC5C,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACvC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,4CAA6C,GAA2B,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAoB,MAAM,eAAe,CAAC"}
@@ -4,7 +4,13 @@
4
4
  */
5
5
  import type { AST, Label, VariableAST } from "./ast.js";
6
6
  import { type IR, type IRLabel, type VariableIR } from "./ir.js";
7
+ import { type Location } from "./location.js";
7
8
  import { type EastType } from "./types.js";
9
+ /** @internal An exception throw for the purpose of early loop continue */
10
+ export declare class OutOfScopeException extends Error {
11
+ definedLocation: Location;
12
+ constructor(definedLocation: Location);
13
+ }
8
14
  type Ctx = {
9
15
  local_ctx: Map<VariableAST, VariableIR>;
10
16
  parent_ctx: Map<VariableAST, VariableIR>;
@@ -15,6 +21,7 @@ type Ctx = {
15
21
  n_loops: number;
16
22
  inputs: EastType[];
17
23
  output: EastType;
24
+ async: boolean;
18
25
  };
19
26
  /** Perform scope resolution and type checking on `AST`, produce `IR` ready for serialization, compilation or evaluation.
20
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ast_to_ir.d.ts","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAsB,KAAK,EAAE,EAAE,KAAK,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGzG,OAAO,EAAuB,KAAK,QAAQ,EAAmH,MAAM,YAAY,CAAC;AAIjL,KAAK,GAAG,GAAG;IACT,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAA;AAYD;;cAEc;AACd,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,GAAqJ,GAAG,EAAE,CAo2BlM"}
1
+ {"version":3,"file":"ast_to_ir.d.ts","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAsB,KAAK,EAAE,EAAE,KAAK,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AACzG,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAuB,KAAK,QAAQ,EAAmH,MAAM,YAAY,CAAC;AAKjL,0EAA0E;AAC1E,qBAAa,mBAAoB,SAAQ,KAAK;IACzB,eAAe,EAAE,QAAQ;gBAAzB,eAAe,EAAE,QAAQ;CAG7C;AAED,KAAK,GAAG,GAAG;IACT,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAA;AAYD;;cAEc;AACd,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAE,GAAmK,GAAG,EAAE,CAs6BhN"}
@@ -4,6 +4,14 @@ import { toEastTypeValue } from "./type_of_type.js";
4
4
  import { ArrayType, DictType, FunctionType, isSubtype, isTypeEqual, NeverType, NullType, printType, RefType, SetType, StructType, VariantType } from "./types.js";
5
5
  import { variant } from "./containers/variant.js";
6
6
  import { applyTypeParameters, Builtins } from "./builtins.js";
7
+ /** @internal An exception throw for the purpose of early loop continue */
8
+ export class OutOfScopeException extends Error {
9
+ definedLocation;
10
+ constructor(definedLocation) {
11
+ super(`Variable defined at ${printLocation(definedLocation)} is out of scope here`);
12
+ this.definedLocation = definedLocation;
13
+ }
14
+ }
7
15
  // TODO we should probably redo type checking exhaustively here?
8
16
  function toLocationValue(location) {
9
17
  return {
@@ -15,7 +23,7 @@ function toLocationValue(location) {
15
23
  /** Perform scope resolution and type checking on `AST`, produce `IR` ready for serialization, compilation or evaluation.
16
24
  *
17
25
  * @internal */
18
- export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map(), captures: new Set(), loop_ctx: new Map(), n_vars: 0, n_loops: 0, inputs: [], output: NeverType }) {
26
+ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map(), captures: new Set(), loop_ctx: new Map(), n_vars: 0, n_loops: 0, inputs: [], output: NeverType, async: false }) {
19
27
  try {
20
28
  if (ast.ast_type === "Variable") {
21
29
  if (ctx.local_ctx.has(ast)) {
@@ -29,7 +37,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
29
37
  return ir;
30
38
  }
31
39
  else {
32
- throw new Error(`Variable defined at ${printLocation(ast.location)} not in scope`);
40
+ throw new OutOfScopeException(ast.location);
33
41
  }
34
42
  }
35
43
  }
@@ -131,14 +139,6 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
131
139
  arguments: ast.arguments.map((arg, i) => {
132
140
  let arg_ir = ast_to_ir(arg, ctx);
133
141
  const expectedType = applyTypeParameters(builtin_def.inputs[i], type_map, [], []);
134
- // Special handling of FunctionType
135
- if (expectedType.type === "Function") {
136
- if (arg.type.type !== "Function") {
137
- throw new Error(`Builtin ${builtin_name} with type parameters [${ast.type_parameters.map(tp => printType(tp)).join(", ")}] argument ${i} of type ${printType(arg.type)} is not compatible with expected type ${printType(expectedType)} at ${printLocation(ast.location)}`);
138
- }
139
- // Take the function argument's actual platform functions and populate here as a form of specialization
140
- expectedType.platforms = arg.type.platforms;
141
- }
142
142
  // Now check type compatibility
143
143
  if (arg.type.type !== "Never" && !isTypeEqual(arg.type, expectedType)) {
144
144
  if (!isSubtype(arg.type, expectedType)) {
@@ -155,11 +155,15 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
155
155
  });
156
156
  }
157
157
  else if (ast.ast_type === "Platform") {
158
+ if (ctx.async === false && ast.async === true) {
159
+ throw new Error(`Async platform call not allowed outside async function at ${printLocation(ast.location)}`);
160
+ }
158
161
  return variant("Platform", {
159
162
  type: toEastTypeValue(ast.type),
160
163
  location: toLocationValue(ast.location),
161
164
  name: ast.name,
162
165
  arguments: ast.arguments.map(ast => ast_to_ir(ast, ctx)), // type equality handled at Expr/AST level
166
+ async: ast.async,
163
167
  });
164
168
  }
165
169
  else if (ast.ast_type === "Struct") {
@@ -235,7 +239,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
235
239
  const local_ctx = new Map(parameters.map((parameter, i) => [ast.parameters[i], parameter]));
236
240
  const parent_ctx = new Map([...ctx.local_ctx, ...ctx.parent_ctx]);
237
241
  const captures = new Set();
238
- const ctx2 = { local_ctx, parent_ctx, captures, loop_ctx: new Map(), n_vars: ctx.n_vars, n_loops: ctx.n_loops, inputs: ast.type.inputs, output: ast.type.output };
242
+ const ctx2 = { local_ctx, parent_ctx, captures, loop_ctx: new Map(), n_vars: ctx.n_vars, n_loops: ctx.n_loops, inputs: ast.type.inputs, output: ast.type.output, async: false };
239
243
  const body = ast_to_ir(ast.body, ctx2);
240
244
  ctx.n_vars = ctx2.n_vars;
241
245
  ctx.n_loops = ctx2.n_loops;
@@ -247,8 +251,36 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
247
251
  body,
248
252
  });
249
253
  }
254
+ else if (ast.ast_type === "AsyncFunction") {
255
+ const parameters = ast.parameters.map(parameter => {
256
+ const param = variant("Variable", {
257
+ type: toEastTypeValue(parameter.type),
258
+ name: `_${ctx.n_vars}`,
259
+ location: toLocationValue(parameter.location),
260
+ mutable: parameter.mutable, // false...
261
+ captured: false,
262
+ });
263
+ ctx.n_vars += 1;
264
+ return param;
265
+ });
266
+ const local_ctx = new Map(parameters.map((parameter, i) => [ast.parameters[i], parameter]));
267
+ const parent_ctx = new Map([...ctx.local_ctx, ...ctx.parent_ctx]);
268
+ const captures = new Set();
269
+ const ctx2 = { local_ctx, parent_ctx, captures, loop_ctx: new Map(), n_vars: ctx.n_vars, n_loops: ctx.n_loops, inputs: ast.type.inputs, output: ast.type.output, async: true };
270
+ const body = ast_to_ir(ast.body, ctx2);
271
+ ctx.n_vars = ctx2.n_vars;
272
+ ctx.n_loops = ctx2.n_loops;
273
+ return variant("AsyncFunction", {
274
+ type: toEastTypeValue(ast.type),
275
+ location: toLocationValue(ast.location),
276
+ parameters,
277
+ captures: [...captures],
278
+ body,
279
+ });
280
+ }
250
281
  else if (ast.ast_type === "Call") {
251
282
  // TODO - type equality could have been handled at Expr/AST level instead
283
+ // TODO - what about widening the result with As?
252
284
  return variant("Call", {
253
285
  type: toEastTypeValue(ast.type),
254
286
  location: toLocationValue(ast.location),
@@ -270,6 +302,33 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
270
302
  }),
271
303
  });
272
304
  }
305
+ else if (ast.ast_type === "CallAsync") {
306
+ if (ctx.async === false) {
307
+ throw new Error(`Async function call not allowed outside async function at ${printLocation(ast.location)}`);
308
+ }
309
+ // TODO - type equality could have been handled at Expr/AST level instead
310
+ // TODO - what about widening the result with As?
311
+ return variant("CallAsync", {
312
+ type: toEastTypeValue(ast.type),
313
+ location: toLocationValue(ast.location),
314
+ function: ast_to_ir(ast.function, ctx),
315
+ arguments: ast.arguments.map((argument, i) => {
316
+ let arg = ast_to_ir(argument, ctx);
317
+ const expectedType = ast.function.type.inputs[i];
318
+ if (!isTypeEqual(argument.type, expectedType)) {
319
+ if (!isSubtype(argument.type, expectedType)) {
320
+ throw new Error(`Argument ${i} of type ${printType(argument.type)} is not compatible with expected type ${printType(expectedType)} at ${printLocation(ast.location)}`);
321
+ }
322
+ arg = variant("As", {
323
+ type: toEastTypeValue(expectedType),
324
+ value: arg,
325
+ location: toLocationValue(ast.location),
326
+ });
327
+ }
328
+ return arg;
329
+ }),
330
+ });
331
+ }
273
332
  else if (ast.ast_type === "NewRef") {
274
333
  const valueType = ast.type.value;
275
334
  let value = ast_to_ir(ast.value, ctx);
@@ -377,6 +436,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
377
436
  n_loops: ctx.n_loops,
378
437
  inputs: ctx.inputs,
379
438
  output: ctx.output,
439
+ async: ctx.async,
380
440
  };
381
441
  let branch_body = ast_to_ir(branch.body, ctx_branch);
382
442
  ctx.n_vars = ctx_branch.n_vars;
@@ -402,6 +462,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
402
462
  n_loops: ctx.n_loops,
403
463
  inputs: ctx.inputs,
404
464
  output: ctx.output,
465
+ async: ctx.async,
405
466
  };
406
467
  let else_body = ast_to_ir(ast.else_body, ctx_else);
407
468
  ctx.n_vars = ctx_else.n_vars;
@@ -440,6 +501,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
440
501
  n_loops: ctx.n_loops,
441
502
  inputs: ctx.inputs,
442
503
  output: ctx.output,
504
+ async: ctx.async,
443
505
  };
444
506
  const try_body = ast_to_ir(ast.try_body, ctx_try);
445
507
  ctx.n_vars = ctx_try.n_vars;
@@ -470,6 +532,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
470
532
  n_loops: ctx.n_loops,
471
533
  inputs: ctx.inputs,
472
534
  output: ctx.output,
535
+ async: ctx.async,
473
536
  };
474
537
  const catch_body = ast_to_ir(ast.catch_body, ctx_catch);
475
538
  ctx.n_vars = ctx_catch.n_vars;
@@ -486,6 +549,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
486
549
  n_loops: ctx.n_loops,
487
550
  inputs: ctx.inputs,
488
551
  output: ctx.output,
552
+ async: ctx.async,
489
553
  };
490
554
  finally_body = ast_to_ir(ast.finally_body, ctx_finally);
491
555
  ctx.n_vars = ctx_finally.n_vars;
@@ -567,6 +631,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
567
631
  n_loops: ctx.n_loops,
568
632
  inputs: ctx.inputs,
569
633
  output: ctx.output,
634
+ async: ctx.async,
570
635
  };
571
636
  const body = ast_to_ir(ast.body, ctx2);
572
637
  ctx.n_vars = ctx2.n_vars;
@@ -611,6 +676,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
611
676
  n_loops: ctx.n_loops,
612
677
  inputs: ctx.inputs,
613
678
  output: ctx.output,
679
+ async: ctx.async,
614
680
  };
615
681
  const body = ast_to_ir(ast.body, ctx2);
616
682
  ctx.n_vars = ctx2.n_vars;
@@ -649,6 +715,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
649
715
  n_loops: ctx.n_loops,
650
716
  inputs: ctx.inputs,
651
717
  output: ctx.output,
718
+ async: ctx.async,
652
719
  };
653
720
  const body = ast_to_ir(ast.body, ctx2);
654
721
  ctx.n_vars = ctx2.n_vars;
@@ -694,6 +761,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
694
761
  n_loops: ctx.n_loops,
695
762
  inputs: ctx.inputs,
696
763
  output: ctx.output,
764
+ async: ctx.async,
697
765
  };
698
766
  const body = ast_to_ir(ast.body, ctx2);
699
767
  ctx.n_vars = ctx2.n_vars;
@@ -729,6 +797,7 @@ export function ast_to_ir(ast, ctx = { local_ctx: new Map(), parent_ctx: new Map
729
797
  n_loops: ctx.n_loops,
730
798
  inputs: ctx.inputs,
731
799
  output: ctx.output,
800
+ async: ctx.async,
732
801
  };
733
802
  let body = ast_to_ir(v.body, ctx2);
734
803
  ctx.n_vars = ctx2.n_vars;
@@ -1 +1 @@
1
- {"version":3,"file":"ast_to_ir.js","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast_to_ir.js","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ export type BuiltinType = {
10
10
  output: string | EastType;
11
11
  };
12
12
  /** @internal */
13
- export type BuiltinName = "Is" | "Equal" | "NotEqual" | "Less" | "LessEqual" | "Greater" | "GreaterEqual" | "BooleanNot" | "BooleanOr" | "BooleanAnd" | "BooleanXor" | "IntegerToFloat" | "IntegerNegate" | "IntegerAdd" | "IntegerSubtract" | "IntegerMultiply" | "IntegerDivide" | "IntegerRemainder" | "IntegerPow" | "IntegerAbs" | "IntegerSign" | "IntegerLog" | "FloatToInteger" | "FloatNegate" | "FloatAdd" | "FloatSubtract" | "FloatMultiply" | "FloatDivide" | "FloatRemainder" | "FloatPow" | "FloatAbs" | "FloatSign" | "FloatSqrt" | "FloatExp" | "FloatLog" | "FloatSin" | "FloatCos" | "FloatTan" | "Print" | "Parse" | "StringConcat" | "StringRepeat" | "StringLength" | "StringSubstring" | "StringUpperCase" | "StringLowerCase" | "StringSplit" | "StringTrim" | "StringTrimStart" | "StringTrimEnd" | "StringStartsWith" | "StringEndsWith" | "StringContains" | "StringIndexOf" | "StringReplace" | "RegexContains" | "RegexIndexOf" | "RegexReplace" | "StringEncodeUtf8" | "StringEncodeUtf16" | "StringParseJSON" | "StringPrintJSON" | "DateTimeGetYear" | "DateTimeGetMonth" | "DateTimeGetDayOfMonth" | "DateTimeGetHour" | "DateTimeGetMinute" | "DateTimeGetSecond" | "DateTimeGetDayOfWeek" | "DateTimeGetMillisecond" | "DateTimeAddMilliseconds" | "DateTimeDurationMilliseconds" | "DateTimeToEpochMilliseconds" | "DateTimeFromEpochMilliseconds" | "DateTimeFromComponents" | "DateTimePrintFormat" | "DateTimeParseFormat" | "BlobSize" | "BlobGetUint8" | "BlobDecodeUtf8" | "BlobDecodeUtf16" | "BlobDecodeBeast" | "BlobEncodeBeast" | "BlobDecodeBeast2" | "BlobEncodeBeast2" | "RefGet" | "RefUpdate" | "RefMerge" | "ArrayGenerate" | "ArrayRange" | "ArrayLinspace" | "ArraySize" | "ArrayHas" | "ArrayGet" | "ArrayGetOrDefault" | "ArrayTryGet" | "ArrayUpdate" | "ArrayMerge" | "ArrayPushLast" | "ArrayPopLast" | "ArrayPushFirst" | "ArrayPopFirst" | "ArrayAppend" | "ArrayPrepend" | "ArrayMergeAll" | "ArrayClear" | "ArraySortInPlace" | "ArrayReverseInPlace" | "ArraySort" | "ArrayReverse" | "ArrayIsSorted" | "ArrayFindSortedFirst" | "ArrayFindSortedLast" | "ArrayFindSortedRange" | "ArrayFindFirst" | "ArrayConcat" | "ArraySlice" | "ArrayGetKeys" | "ArrayForEach" | "ArrayCopy" | "ArrayMap" | "ArrayFilter" | "ArrayFilterMap" | "ArrayFirstMap" | "ArrayMapReduce" | "ArrayFold" | "ArrayStringJoin" | "ArrayToSet" | "ArrayToDict" | "ArrayFlattenToArray" | "ArrayFlattenToSet" | "ArrayFlattenToDict" | "ArrayGroupFold" | "SetGenerate" | "SetSize" | "SetHas" | "SetInsert" | "SetTryInsert" | "SetDelete" | "SetTryDelete" | "SetClear" | "SetUnionInPlace" | "SetUnion" | "SetIntersect" | "SetDiff" | "SetSymDiff" | "SetIsSubset" | "SetIsDisjoint" | "SetCopy" | "SetForEach" | "SetMap" | "SetFilter" | "SetFilterMap" | "SetFirstMap" | "SetMapReduce" | "SetReduce" | "SetToArray" | "SetToSet" | "SetToDict" | "SetFlattenToArray" | "SetFlattenToSet" | "SetFlattenToDict" | "SetGroupFold" | "DictGenerate" | "DictSize" | "DictHas" | "DictGet" | "DictGetOrDefault" | "DictTryGet" | "DictInsert" | "DictGetOrInsert" | "DictInsertOrUpdate" | "DictUpdate" | "DictSwap" | "DictMerge" | "DictDelete" | "DictTryDelete" | "DictPop" | "DictClear" | "DictUnionInPlace" | "DictMergeAll" | "DictKeys" | "DictGetKeys" | "DictForEach" | "DictCopy" | "DictMap" | "DictFilter" | "DictFilterMap" | "DictFirstMap" | "DictMapReduce" | "DictReduce" | "DictToArray" | "DictToSet" | "DictToDict" | "DictFlattenToArray" | "DictFlattenToSet" | "DictFlattenToDict" | "DictGroupFold";
13
+ export type BuiltinName = "Is" | "Equal" | "NotEqual" | "Less" | "LessEqual" | "Greater" | "GreaterEqual" | "BooleanNot" | "BooleanOr" | "BooleanAnd" | "BooleanXor" | "IntegerToFloat" | "IntegerNegate" | "IntegerAdd" | "IntegerSubtract" | "IntegerMultiply" | "IntegerDivide" | "IntegerRemainder" | "IntegerPow" | "IntegerAbs" | "IntegerSign" | "IntegerLog" | "FloatToInteger" | "FloatNegate" | "FloatAdd" | "FloatSubtract" | "FloatMultiply" | "FloatDivide" | "FloatRemainder" | "FloatPow" | "FloatAbs" | "FloatSign" | "FloatSqrt" | "FloatExp" | "FloatLog" | "FloatSin" | "FloatCos" | "FloatTan" | "Print" | "Parse" | "StringConcat" | "StringRepeat" | "StringLength" | "StringSubstring" | "StringUpperCase" | "StringLowerCase" | "StringSplit" | "StringTrim" | "StringTrimStart" | "StringTrimEnd" | "StringStartsWith" | "StringEndsWith" | "StringContains" | "StringIndexOf" | "StringReplace" | "RegexContains" | "RegexIndexOf" | "RegexReplace" | "StringEncodeUtf8" | "StringEncodeUtf16" | "StringParseJSON" | "StringPrintJSON" | "DateTimeGetYear" | "DateTimeGetMonth" | "DateTimeGetDayOfMonth" | "DateTimeGetHour" | "DateTimeGetMinute" | "DateTimeGetSecond" | "DateTimeGetDayOfWeek" | "DateTimeGetMillisecond" | "DateTimeAddMilliseconds" | "DateTimeDurationMilliseconds" | "DateTimeToEpochMilliseconds" | "DateTimeFromEpochMilliseconds" | "DateTimeFromComponents" | "DateTimePrintFormat" | "DateTimeParseFormat" | "BlobSize" | "BlobGetUint8" | "BlobDecodeUtf8" | "BlobDecodeUtf16" | "BlobDecodeBeast" | "BlobEncodeBeast" | "BlobDecodeBeast2" | "BlobEncodeBeast2" | "BlobDecodeCsv" | "ArrayEncodeCsv" | "RefGet" | "RefUpdate" | "RefMerge" | "ArrayGenerate" | "ArrayRange" | "ArrayLinspace" | "ArraySize" | "ArrayHas" | "ArrayGet" | "ArrayGetOrDefault" | "ArrayTryGet" | "ArrayUpdate" | "ArrayMerge" | "ArrayPushLast" | "ArrayPopLast" | "ArrayPushFirst" | "ArrayPopFirst" | "ArrayAppend" | "ArrayPrepend" | "ArrayMergeAll" | "ArrayClear" | "ArraySortInPlace" | "ArrayReverseInPlace" | "ArraySort" | "ArrayReverse" | "ArrayIsSorted" | "ArrayFindSortedFirst" | "ArrayFindSortedLast" | "ArrayFindSortedRange" | "ArrayFindFirst" | "ArrayConcat" | "ArraySlice" | "ArrayGetKeys" | "ArrayForEach" | "ArrayCopy" | "ArrayMap" | "ArrayFilter" | "ArrayFilterMap" | "ArrayFirstMap" | "ArrayMapReduce" | "ArrayFold" | "ArrayStringJoin" | "ArrayToSet" | "ArrayToDict" | "ArrayFlattenToArray" | "ArrayFlattenToSet" | "ArrayFlattenToDict" | "ArrayGroupFold" | "SetGenerate" | "SetSize" | "SetHas" | "SetInsert" | "SetTryInsert" | "SetDelete" | "SetTryDelete" | "SetClear" | "SetUnionInPlace" | "SetUnion" | "SetIntersect" | "SetDiff" | "SetSymDiff" | "SetIsSubset" | "SetIsDisjoint" | "SetCopy" | "SetForEach" | "SetMap" | "SetFilter" | "SetFilterMap" | "SetFirstMap" | "SetMapReduce" | "SetReduce" | "SetToArray" | "SetToSet" | "SetToDict" | "SetFlattenToArray" | "SetFlattenToSet" | "SetFlattenToDict" | "SetGroupFold" | "DictGenerate" | "DictSize" | "DictHas" | "DictGet" | "DictGetOrDefault" | "DictTryGet" | "DictInsert" | "DictGetOrInsert" | "DictInsertOrUpdate" | "DictUpdate" | "DictSwap" | "DictMerge" | "DictDelete" | "DictTryDelete" | "DictPop" | "DictClear" | "DictUnionInPlace" | "DictMergeAll" | "DictKeys" | "DictGetKeys" | "DictForEach" | "DictCopy" | "DictMap" | "DictFilter" | "DictFilterMap" | "DictFirstMap" | "DictMapReduce" | "DictReduce" | "DictToArray" | "DictToSet" | "DictToDict" | "DictFlattenToArray" | "DictFlattenToSet" | "DictFlattenToDict" | "DictGroupFold";
14
14
  /** @internal */
15
15
  export declare const Builtins: Record<BuiltinName, BuiltinType>;
16
16
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.d.ts","sourceRoot":"","sources":["../../src/builtins.ts"],"names":[],"mappings":"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"}