@rcrsr/rill 0.2.3 → 0.4.1
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/README.md +64 -28
- package/dist/check/rules/anti-patterns.d.ts.map +1 -1
- package/dist/check/rules/anti-patterns.js +1 -6
- package/dist/check/rules/anti-patterns.js.map +1 -1
- package/dist/check/rules/closures.d.ts.map +1 -1
- package/dist/check/rules/closures.js +2 -5
- package/dist/check/rules/closures.js.map +1 -1
- package/dist/check/rules/conditionals.d.ts.map +1 -1
- package/dist/check/rules/conditionals.js +36 -8
- package/dist/check/rules/conditionals.js.map +1 -1
- package/dist/check/rules/naming.d.ts.map +1 -1
- package/dist/check/rules/naming.js +9 -2
- package/dist/check/rules/naming.js.map +1 -1
- package/dist/check/rules/strings.d.ts.map +1 -1
- package/dist/check/rules/strings.js +1 -2
- package/dist/check/rules/strings.js.map +1 -1
- package/dist/check/rules/types.d.ts.map +1 -1
- package/dist/check/rules/types.js +4 -3
- package/dist/check/rules/types.js.map +1 -1
- package/dist/check/types.d.ts +2 -0
- package/dist/check/types.d.ts.map +1 -1
- package/dist/check/validator.d.ts.map +1 -1
- package/dist/check/validator.js +8 -0
- package/dist/check/validator.js.map +1 -1
- package/dist/check/visitor.d.ts.map +1 -1
- package/dist/check/visitor.js +13 -1
- package/dist/check/visitor.js.map +1 -1
- package/dist/cli-check.js +1 -0
- package/dist/cli-check.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lexer/operators.d.ts.map +1 -1
- package/dist/lexer/operators.js +2 -0
- package/dist/lexer/operators.js.map +1 -1
- package/dist/parser/helpers.d.ts +2 -1
- package/dist/parser/helpers.d.ts.map +1 -1
- package/dist/parser/helpers.js +78 -10
- package/dist/parser/helpers.js.map +1 -1
- package/dist/parser/parser-control.d.ts +3 -1
- package/dist/parser/parser-control.d.ts.map +1 -1
- package/dist/parser/parser-control.js +93 -0
- package/dist/parser/parser-control.js.map +1 -1
- package/dist/parser/parser-expr.d.ts.map +1 -1
- package/dist/parser/parser-expr.js +79 -2
- package/dist/parser/parser-expr.js.map +1 -1
- package/dist/parser/parser-functions.js +20 -3
- package/dist/parser/parser-functions.js.map +1 -1
- package/dist/parser/parser-literals.d.ts.map +1 -1
- package/dist/parser/parser-literals.js +55 -3
- package/dist/parser/parser-literals.js.map +1 -1
- package/dist/parser/parser-script.d.ts +2 -2
- package/dist/parser/parser-script.d.ts.map +1 -1
- package/dist/parser/parser-script.js +43 -3
- package/dist/parser/parser-script.js.map +1 -1
- package/dist/parser/parser-variables.js +5 -0
- package/dist/parser/parser-variables.js.map +1 -1
- package/dist/runtime/core/callable.d.ts +22 -4
- package/dist/runtime/core/callable.d.ts.map +1 -1
- package/dist/runtime/core/callable.js +45 -3
- package/dist/runtime/core/callable.js.map +1 -1
- package/dist/runtime/core/context.d.ts.map +1 -1
- package/dist/runtime/core/context.js +1 -0
- package/dist/runtime/core/context.js.map +1 -1
- package/dist/runtime/core/equals.js +28 -1
- package/dist/runtime/core/equals.js.map +1 -1
- package/dist/runtime/core/eval/base.d.ts.map +1 -1
- package/dist/runtime/core/eval/base.js +4 -1
- package/dist/runtime/core/eval/base.js.map +1 -1
- package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/closures.js +71 -0
- package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
- package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/control-flow.js +83 -0
- package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
- package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/core.js +308 -7
- package/dist/runtime/core/eval/mixins/core.js.map +1 -1
- package/dist/runtime/core/eval/mixins/literals.d.ts +2 -0
- package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/literals.js +389 -5
- package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
- package/dist/runtime/core/eval/mixins/variables.js +42 -2
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
- package/dist/runtime/core/execute.js +6 -6
- package/dist/runtime/core/execute.js.map +1 -1
- package/dist/runtime/ext/builtins.d.ts.map +1 -1
- package/dist/runtime/ext/builtins.js +66 -0
- package/dist/runtime/ext/builtins.js.map +1 -1
- package/dist/types.d.ts +47 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -1
- package/docs/00_INDEX.md +2 -1
- package/docs/02_types.md +39 -2
- package/docs/04_operators.md +57 -0
- package/docs/05_control-flow.md +261 -2
- package/docs/06_closures.md +438 -4
- package/docs/09_strings.md +1 -1
- package/docs/11_reference.md +257 -11
- package/docs/12_examples.md +58 -55
- package/docs/14_host-integration.md +2 -0
- package/docs/15_grammar.ebnf +56 -5
- package/docs/18_design-principles.md +247 -0
- package/docs/99_llm-reference.txt +206 -10
- package/package.json +1 -1
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
* - Tuple literals
|
|
7
7
|
* - Dict literals with callable binding
|
|
8
8
|
* - Closure creation with late binding
|
|
9
|
+
* - Block-closure creation for expression-position blocks
|
|
9
10
|
*
|
|
10
11
|
* Interface requirements (from spec):
|
|
11
12
|
* - evaluateString(node) -> Promise<string>
|
|
12
13
|
* - evaluateTuple(node) -> Promise<RillValue[]>
|
|
13
14
|
* - evaluateDict(node) -> Promise<Record<string, RillValue>>
|
|
14
15
|
* - createClosure(node) -> Promise<ScriptCallable>
|
|
16
|
+
* - createBlockClosure(node) -> ScriptCallable
|
|
15
17
|
*
|
|
16
18
|
* Error Handling:
|
|
17
19
|
* - String interpolation errors propagate from evaluateExpression() [EC-6]
|
|
@@ -22,6 +24,77 @@
|
|
|
22
24
|
import { RuntimeError, RILL_ERROR_CODES } from '../../../../types.js';
|
|
23
25
|
import { formatValue, isReservedMethod } from '../../values.js';
|
|
24
26
|
import { isCallable, } from '../../callable.js';
|
|
27
|
+
/**
|
|
28
|
+
* Capture annotation context at closure creation time.
|
|
29
|
+
*
|
|
30
|
+
* Evaluates annotation expressions in current context and returns structured object
|
|
31
|
+
* with closure-level and parameter-level annotations.
|
|
32
|
+
*
|
|
33
|
+
* Closure-level annotations are captured from the annotation stack (statement-level
|
|
34
|
+
* annotations like `^(doc: "test")` that precede the closure definition).
|
|
35
|
+
*
|
|
36
|
+
* @param ctx - Runtime context with annotation stack
|
|
37
|
+
* @param closureNode - Closure AST node with parameter annotations
|
|
38
|
+
* @param evaluateExpression - Expression evaluator function
|
|
39
|
+
* @returns Object with annotations and paramAnnotations as evaluated values
|
|
40
|
+
*
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
async function captureClosureAnnotations(ctx, closureNode, evaluateExpression) {
|
|
44
|
+
// Capture closure-level annotations from annotation stack
|
|
45
|
+
// When a closure is created within an annotated statement like:
|
|
46
|
+
// ^(doc: "test") |x|($x * 2) :> $fn
|
|
47
|
+
// The annotation stack contains the evaluated annotations from the statement
|
|
48
|
+
const annotations = ctx.annotationStack.at(-1) ?? {};
|
|
49
|
+
// Capture parameter-level annotations
|
|
50
|
+
const paramAnnotations = {};
|
|
51
|
+
for (const param of closureNode.params) {
|
|
52
|
+
if (param.annotations && param.annotations.length > 0) {
|
|
53
|
+
const paramAnnots = await evaluateAnnotations(param.annotations, evaluateExpression);
|
|
54
|
+
paramAnnotations[param.name] = paramAnnots;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return { annotations, paramAnnotations };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Evaluate annotation arguments to a dict of key-value pairs.
|
|
61
|
+
* Handles both named arguments and spread arguments.
|
|
62
|
+
*
|
|
63
|
+
* @param annotations - Annotation arguments from AST
|
|
64
|
+
* @param evaluateExpression - Expression evaluator function
|
|
65
|
+
* @returns Record of annotation key-value pairs
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
async function evaluateAnnotations(annotations, evaluateExpression) {
|
|
70
|
+
const result = {};
|
|
71
|
+
for (const arg of annotations) {
|
|
72
|
+
if (arg.type === 'NamedArg') {
|
|
73
|
+
const namedArg = arg;
|
|
74
|
+
result[namedArg.name] = await evaluateExpression(namedArg.value);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// SpreadArg: spread tuple/dict keys as annotations
|
|
78
|
+
const spreadArg = arg;
|
|
79
|
+
const spreadValue = await evaluateExpression(spreadArg.expression);
|
|
80
|
+
if (typeof spreadValue === 'object' &&
|
|
81
|
+
spreadValue !== null &&
|
|
82
|
+
!Array.isArray(spreadValue) &&
|
|
83
|
+
!isCallable(spreadValue)) {
|
|
84
|
+
// Dict: spread all key-value pairs
|
|
85
|
+
Object.assign(result, spreadValue);
|
|
86
|
+
}
|
|
87
|
+
else if (Array.isArray(spreadValue)) {
|
|
88
|
+
// Tuple/list: not valid for annotations (need named keys)
|
|
89
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Annotation spread requires dict with named keys, got list', spreadArg.span.start);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Annotation spread requires dict, got ${typeof spreadValue}`, spreadArg.span.start);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
25
98
|
/**
|
|
26
99
|
* LiteralsMixin implementation.
|
|
27
100
|
*
|
|
@@ -39,6 +112,7 @@ import { isCallable, } from '../../callable.js';
|
|
|
39
112
|
* - evaluateTuple(node) -> Promise<RillValue[]>
|
|
40
113
|
* - evaluateDict(node) -> Promise<Record<string, RillValue>>
|
|
41
114
|
* - createClosure(node) -> Promise<ScriptCallable>
|
|
115
|
+
* - createBlockClosure(node) -> ScriptCallable
|
|
42
116
|
*/
|
|
43
117
|
function createLiteralsMixin(Base) {
|
|
44
118
|
return class LiteralsEvaluator extends Base {
|
|
@@ -89,24 +163,41 @@ function createLiteralsMixin(Base) {
|
|
|
89
163
|
* All callables in the dict are bound to the containing dict via boundDict property.
|
|
90
164
|
*
|
|
91
165
|
* Reserved method names (keys, values, entries) cannot be used as dict keys.
|
|
166
|
+
* Multi-key entries (tuple keys) are not supported in dict literals, only in dispatch.
|
|
92
167
|
* Errors from value evaluation propagate to caller.
|
|
93
168
|
*/
|
|
94
169
|
async evaluateDict(node) {
|
|
95
170
|
const result = {};
|
|
96
171
|
for (const entry of node.entries) {
|
|
97
|
-
|
|
98
|
-
|
|
172
|
+
// Multi-key entries (tuple keys) only valid in dict dispatch, not dict literals
|
|
173
|
+
if (typeof entry.key === 'object') {
|
|
174
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Dict literal keys must be identifiers, not lists', entry.span.start, { entry });
|
|
175
|
+
}
|
|
176
|
+
// Convert number and boolean keys to strings per IR-3
|
|
177
|
+
// String keys: use directly as object property
|
|
178
|
+
// Number keys: convert to string via String(key)
|
|
179
|
+
// Boolean keys: convert to string via String(key)
|
|
180
|
+
const stringKey = String(entry.key);
|
|
181
|
+
if (isReservedMethod(stringKey)) {
|
|
182
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Cannot use reserved method name '${stringKey}' as dict key`, entry.span.start, { key: stringKey, reservedMethods: ['keys', 'values', 'entries'] });
|
|
99
183
|
}
|
|
100
|
-
if (this.
|
|
184
|
+
if (this.isBlockExpr(entry.value)) {
|
|
185
|
+
// Safe cast: isBlockExpr ensures head is PostfixExpr with Block primary
|
|
186
|
+
const head = entry.value.head;
|
|
187
|
+
const blockNode = head.primary;
|
|
188
|
+
const closure = this.createBlockClosure(blockNode);
|
|
189
|
+
result[stringKey] = closure;
|
|
190
|
+
}
|
|
191
|
+
else if (this.isClosureExpr(entry.value)) {
|
|
101
192
|
// Safe cast: isClosureExpr ensures head is PostfixExpr with Closure primary
|
|
102
193
|
const head = entry.value.head;
|
|
103
194
|
const fnLit = head.primary;
|
|
104
195
|
const closure = await this.createClosure(fnLit);
|
|
105
|
-
result[
|
|
196
|
+
result[stringKey] = closure;
|
|
106
197
|
}
|
|
107
198
|
else {
|
|
108
199
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
109
|
-
result[
|
|
200
|
+
result[stringKey] = await this.evaluateExpression(entry.value);
|
|
110
201
|
}
|
|
111
202
|
}
|
|
112
203
|
// Bind all callables to the containing dict
|
|
@@ -121,6 +212,245 @@ function createLiteralsMixin(Base) {
|
|
|
121
212
|
}
|
|
122
213
|
return result;
|
|
123
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Evaluate dict as dispatch table when piped [IR-2].
|
|
217
|
+
*
|
|
218
|
+
* Searches dict entries for key matching piped value using type-aware deep equality.
|
|
219
|
+
* Returns matched value. Auto-invokes if matched value is closure.
|
|
220
|
+
*
|
|
221
|
+
* Type-aware matching ensures:
|
|
222
|
+
* - Number key 1 matches only number input 1, not string "1"
|
|
223
|
+
* - Boolean key true matches only boolean input true, not string "true"
|
|
224
|
+
*
|
|
225
|
+
* Multi-key support: [["k1", "k2"]: value] syntax allows multiple keys
|
|
226
|
+
* to map to the same value. Key tuple is evaluated to get list of candidates.
|
|
227
|
+
*
|
|
228
|
+
* @param node - DictNode representing dispatch table
|
|
229
|
+
* @param input - Piped value to use as lookup key
|
|
230
|
+
* @returns Matched value (auto-invoked if closure)
|
|
231
|
+
* @throws RuntimeError with RUNTIME_PROPERTY_NOT_FOUND if no match and no default [EC-4]
|
|
232
|
+
*/
|
|
233
|
+
async evaluateDictDispatch(node, input) {
|
|
234
|
+
// Import deepEquals for type-aware key matching
|
|
235
|
+
const { deepEquals } = await import('../../values.js');
|
|
236
|
+
// Search entries for matching key (process in order, return first match)
|
|
237
|
+
for (const entry of node.entries) {
|
|
238
|
+
let matchFound = false;
|
|
239
|
+
if (typeof entry.key === 'object') {
|
|
240
|
+
// Tuple key - evaluate to get list of candidates
|
|
241
|
+
// Parser ensures entry.key is TupleNode, evaluateTuple always returns array
|
|
242
|
+
const keyValue = await this.evaluateTuple(entry.key);
|
|
243
|
+
// Check if input matches any element in the list (type-aware)
|
|
244
|
+
for (const candidate of keyValue) {
|
|
245
|
+
if (deepEquals(input, candidate)) {
|
|
246
|
+
matchFound = true;
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
// Primitive key (string, number, or boolean) - type-aware comparison
|
|
253
|
+
// deepEquals ensures number 1 != string "1", boolean true != string "true"
|
|
254
|
+
matchFound = deepEquals(input, entry.key);
|
|
255
|
+
}
|
|
256
|
+
if (matchFound) {
|
|
257
|
+
// Found match - evaluate and return the value
|
|
258
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
259
|
+
const matchedValue = await this.evaluateExpression(entry.value);
|
|
260
|
+
return this.resolveDispatchValue(matchedValue, input, node);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// No match found - check for default value
|
|
264
|
+
if (node.defaultValue) {
|
|
265
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
266
|
+
return await this.evaluateExpression(node.defaultValue);
|
|
267
|
+
}
|
|
268
|
+
// No match and no default - throw RUNTIME_PROPERTY_NOT_FOUND [EC-4]
|
|
269
|
+
const location = node.span?.start;
|
|
270
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `Dict dispatch: key '${formatValue(input)}' not found`, location, { key: input });
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Evaluate list literal as dispatch table when piped.
|
|
274
|
+
*
|
|
275
|
+
* Takes numeric index and returns element at that position.
|
|
276
|
+
* Supports negative indices and default values.
|
|
277
|
+
*
|
|
278
|
+
* @param node - TupleNode representing list literal
|
|
279
|
+
* @param input - Piped value to use as index (must be number)
|
|
280
|
+
* @returns Element at index
|
|
281
|
+
* @throws RuntimeError if input not number or index out of bounds
|
|
282
|
+
*/
|
|
283
|
+
async evaluateListDispatch(node, input) {
|
|
284
|
+
// Validate input is number
|
|
285
|
+
if (typeof input !== 'number') {
|
|
286
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `List dispatch requires number index, got ${typeof input}`, node.span?.start, { input, expectedType: 'number' });
|
|
287
|
+
}
|
|
288
|
+
// Evaluate all elements to get the list
|
|
289
|
+
const elements = await this.evaluateTuple(node);
|
|
290
|
+
// Truncate decimal to integer
|
|
291
|
+
const index = Math.trunc(input);
|
|
292
|
+
// Normalize negative indices
|
|
293
|
+
const normalizedIndex = index < 0 ? elements.length + index : index;
|
|
294
|
+
// Check bounds
|
|
295
|
+
if (normalizedIndex < 0 || normalizedIndex >= elements.length) {
|
|
296
|
+
// Check for default value
|
|
297
|
+
if (node.defaultValue) {
|
|
298
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
299
|
+
return await this.evaluateExpression(node.defaultValue);
|
|
300
|
+
}
|
|
301
|
+
// No match and no default - throw error
|
|
302
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `List dispatch: index '${index}' not found`, node.span?.start, { index, listLength: elements.length });
|
|
303
|
+
}
|
|
304
|
+
// Return element at normalized index
|
|
305
|
+
return elements[normalizedIndex];
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Resolve dispatch value: auto-invoke if closure, otherwise return as-is.
|
|
309
|
+
* Zero-param closures (block-closures) are invoked with args = [] and pipeValue = input.
|
|
310
|
+
* Parameterized closures (1+ params) throw error.
|
|
311
|
+
*/
|
|
312
|
+
async resolveDispatchValue(value, input, node) {
|
|
313
|
+
if (isCallable(value)) {
|
|
314
|
+
// Check for parameterized closure (explicit user-defined params)
|
|
315
|
+
// Note: Block-closures have exactly 1 param named '$'
|
|
316
|
+
// Parameterized closures have 1+ params with user-defined names
|
|
317
|
+
if (value.kind === 'script' && value.params.length >= 1) {
|
|
318
|
+
// Check if first param is '$' (block-closure) or user-defined (parameterized)
|
|
319
|
+
if (value.params[0].name !== '$') {
|
|
320
|
+
// Parameterized closure at terminal position: error
|
|
321
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Dispatch does not provide arguments for parameterized closure', node.span?.start);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// Check if callable has params to determine invocation style
|
|
325
|
+
const hasParams = (value.kind === 'script' && value.params.length > 0) ||
|
|
326
|
+
(value.kind === 'application' &&
|
|
327
|
+
value.params !== undefined &&
|
|
328
|
+
value.params.length > 0);
|
|
329
|
+
if (hasParams) {
|
|
330
|
+
// Application callable with params: invoke with input as argument
|
|
331
|
+
// Note: Script callables with params already threw error above
|
|
332
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
333
|
+
return await this.invokeCallable(value, [input], node.span?.start);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
// Zero-param closure: invoke with args = [] and pipeValue = input
|
|
337
|
+
const savedPipeValue = this.ctx.pipeValue;
|
|
338
|
+
this.ctx.pipeValue = input;
|
|
339
|
+
try {
|
|
340
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
341
|
+
const result = await this.invokeCallable(value, [], node.span?.start);
|
|
342
|
+
return result;
|
|
343
|
+
}
|
|
344
|
+
finally {
|
|
345
|
+
this.ctx.pipeValue = savedPipeValue;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return value;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Runtime dict dispatch for variables: search dict for matching key.
|
|
353
|
+
* Supports multi-key entries, auto-invokes closures, handles default values.
|
|
354
|
+
*
|
|
355
|
+
* @param dict - Runtime dict value
|
|
356
|
+
* @param input - Key to search for
|
|
357
|
+
* @param defaultValue - Optional default value expression node
|
|
358
|
+
* @param location - Source location for error reporting
|
|
359
|
+
* @returns Matched value or default
|
|
360
|
+
*/
|
|
361
|
+
async dispatchToDict(dict, input, defaultValue, location, skipClosureResolution = false) {
|
|
362
|
+
const { deepEquals } = await import('../../values.js');
|
|
363
|
+
// Search dict entries for matching key
|
|
364
|
+
for (const [key, value] of Object.entries(dict)) {
|
|
365
|
+
// Simple key match using deep equality
|
|
366
|
+
if (deepEquals(input, key)) {
|
|
367
|
+
// Skip closure resolution for hierarchical dispatch (caller handles it)
|
|
368
|
+
if (skipClosureResolution) {
|
|
369
|
+
return value;
|
|
370
|
+
}
|
|
371
|
+
// Auto-invoke closures if needed
|
|
372
|
+
return this.resolveDispatchValueRuntime(value, input, location);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
// No match found - check for default value
|
|
376
|
+
if (defaultValue) {
|
|
377
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
378
|
+
return await this.evaluateExpression(defaultValue);
|
|
379
|
+
}
|
|
380
|
+
// No match and no default - throw error
|
|
381
|
+
const loc = location.span?.start;
|
|
382
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `Dict dispatch: key '${formatValue(input)}' not found`, loc, { key: input });
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Runtime list dispatch for variables: return element at numeric index.
|
|
386
|
+
* Supports negative indices, auto-invokes closures, handles default values.
|
|
387
|
+
*
|
|
388
|
+
* @param list - Runtime list value
|
|
389
|
+
* @param input - Index value (must be number)
|
|
390
|
+
* @param defaultValue - Optional default value expression node
|
|
391
|
+
* @param location - Source location for error reporting
|
|
392
|
+
* @returns Element at index or default
|
|
393
|
+
*/
|
|
394
|
+
async dispatchToList(list, input, defaultValue, location, skipClosureResolution = false) {
|
|
395
|
+
// Validate input is number
|
|
396
|
+
if (typeof input !== 'number') {
|
|
397
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `List dispatch requires number index, got ${typeof input}`, location.span?.start, { input, expectedType: 'number' });
|
|
398
|
+
}
|
|
399
|
+
// Truncate decimal to integer
|
|
400
|
+
const index = Math.trunc(input);
|
|
401
|
+
// Normalize negative indices
|
|
402
|
+
const normalizedIndex = index < 0 ? list.length + index : index;
|
|
403
|
+
// Check bounds
|
|
404
|
+
if (normalizedIndex < 0 || normalizedIndex >= list.length) {
|
|
405
|
+
// Check for default value
|
|
406
|
+
if (defaultValue) {
|
|
407
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
408
|
+
return await this.evaluateExpression(defaultValue);
|
|
409
|
+
}
|
|
410
|
+
// No default - throw error
|
|
411
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND, `List dispatch: index '${index}' not found`, location.span?.start, { index, listLength: list.length });
|
|
412
|
+
}
|
|
413
|
+
// Return element at normalized index
|
|
414
|
+
const element = list[normalizedIndex];
|
|
415
|
+
// Skip closure resolution for hierarchical dispatch (caller handles it)
|
|
416
|
+
if (skipClosureResolution) {
|
|
417
|
+
return element;
|
|
418
|
+
}
|
|
419
|
+
// Auto-invoke closures if needed
|
|
420
|
+
return this.resolveDispatchValueRuntime(element, input, location);
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Resolve dispatch value for runtime values: auto-invoke if closure.
|
|
424
|
+
* Similar to resolveDispatchValue but works with runtime values.
|
|
425
|
+
*/
|
|
426
|
+
async resolveDispatchValueRuntime(value, input, location) {
|
|
427
|
+
if (isCallable(value)) {
|
|
428
|
+
// Check if callable has params to determine invocation style
|
|
429
|
+
const hasParams = (value.kind === 'script' && value.params.length > 0) ||
|
|
430
|
+
(value.kind === 'application' &&
|
|
431
|
+
value.params !== undefined &&
|
|
432
|
+
value.params.length > 0);
|
|
433
|
+
if (hasParams) {
|
|
434
|
+
// Block-closure: invoke with input as argument
|
|
435
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
436
|
+
return await this.invokeCallable(value, [input], location.span?.start);
|
|
437
|
+
}
|
|
438
|
+
else {
|
|
439
|
+
// Zero-param closure: invoke with args = [] and pipeValue = input
|
|
440
|
+
const savedPipeValue = this.ctx.pipeValue;
|
|
441
|
+
this.ctx.pipeValue = input;
|
|
442
|
+
try {
|
|
443
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
444
|
+
const result = await this.invokeCallable(value, [], location.span?.start);
|
|
445
|
+
return result;
|
|
446
|
+
}
|
|
447
|
+
finally {
|
|
448
|
+
this.ctx.pipeValue = savedPipeValue;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
return value;
|
|
453
|
+
}
|
|
124
454
|
/**
|
|
125
455
|
* Create a script callable from a closure node.
|
|
126
456
|
* Closures use late binding - variables are resolved in definingScope when invoked.
|
|
@@ -131,6 +461,10 @@ function createLiteralsMixin(Base) {
|
|
|
131
461
|
async createClosure(node) {
|
|
132
462
|
// Store reference to the defining scope for late-bound variable resolution
|
|
133
463
|
const definingScope = this.ctx;
|
|
464
|
+
// Capture annotations at closure creation time
|
|
465
|
+
const { annotations, paramAnnotations } = await captureClosureAnnotations(this.ctx, node,
|
|
466
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
467
|
+
this.evaluateExpression.bind(this));
|
|
134
468
|
const params = [];
|
|
135
469
|
for (const param of node.params) {
|
|
136
470
|
let defaultValue = null;
|
|
@@ -142,6 +476,7 @@ function createLiteralsMixin(Base) {
|
|
|
142
476
|
name: param.name,
|
|
143
477
|
typeName: param.typeName,
|
|
144
478
|
defaultValue,
|
|
479
|
+
annotations: paramAnnotations[param.name] ?? {},
|
|
145
480
|
});
|
|
146
481
|
}
|
|
147
482
|
const isProperty = params.length === 0;
|
|
@@ -152,6 +487,38 @@ function createLiteralsMixin(Base) {
|
|
|
152
487
|
body: node.body,
|
|
153
488
|
definingScope,
|
|
154
489
|
isProperty,
|
|
490
|
+
annotations,
|
|
491
|
+
paramAnnotations,
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Create a script callable from a block node in expression position.
|
|
496
|
+
* Block-closures have a single implicit $ parameter representing the piped value.
|
|
497
|
+
*
|
|
498
|
+
* No default parameter evaluation since the implicit $ has no default.
|
|
499
|
+
* isProperty is always false (block-closures require $).
|
|
500
|
+
*/
|
|
501
|
+
createBlockClosure(node) {
|
|
502
|
+
// Store reference to the defining scope for late-bound variable resolution
|
|
503
|
+
const definingScope = this.ctx;
|
|
504
|
+
// Block-closures have exactly one parameter: $
|
|
505
|
+
const params = [
|
|
506
|
+
{
|
|
507
|
+
name: '$',
|
|
508
|
+
typeName: null,
|
|
509
|
+
defaultValue: null,
|
|
510
|
+
annotations: {}, // Block closures have no parameter annotations
|
|
511
|
+
},
|
|
512
|
+
];
|
|
513
|
+
return {
|
|
514
|
+
__type: 'callable',
|
|
515
|
+
kind: 'script',
|
|
516
|
+
params,
|
|
517
|
+
body: node,
|
|
518
|
+
definingScope,
|
|
519
|
+
isProperty: false,
|
|
520
|
+
annotations: {}, // Block closures: no annotation support (expression-position blocks)
|
|
521
|
+
paramAnnotations: {}, // Block closures have no parameter annotations
|
|
155
522
|
};
|
|
156
523
|
}
|
|
157
524
|
/**
|
|
@@ -171,6 +538,23 @@ function createLiteralsMixin(Base) {
|
|
|
171
538
|
return false;
|
|
172
539
|
return head.primary.type === 'Closure';
|
|
173
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* Helper: Check if expression is a bare block (no pipes, no methods).
|
|
543
|
+
* Used to detect dict entries that should be treated as block closures.
|
|
544
|
+
*/
|
|
545
|
+
isBlockExpr(expr) {
|
|
546
|
+
if (expr.type !== 'PipeChain')
|
|
547
|
+
return false;
|
|
548
|
+
const chain = expr;
|
|
549
|
+
if (chain.pipes.length > 0)
|
|
550
|
+
return false;
|
|
551
|
+
if (chain.head.type !== 'PostfixExpr')
|
|
552
|
+
return false;
|
|
553
|
+
const head = chain.head;
|
|
554
|
+
if (head.methods.length > 0)
|
|
555
|
+
return false;
|
|
556
|
+
return head.primary.type === 'Block';
|
|
557
|
+
}
|
|
174
558
|
};
|
|
175
559
|
}
|
|
176
560
|
// Export with type assertion to work around TS4094 limitation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/literals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/literals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;
|
|
1
|
+
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAkmBH,eAAO,MAAM,cAAc,EAA2B,GAAG,CAAC"}
|
|
@@ -196,7 +196,23 @@ function createVariablesMixin(Base) {
|
|
|
196
196
|
// Must be a FieldAccess
|
|
197
197
|
if (access.kind === 'literal') {
|
|
198
198
|
const field = access.field;
|
|
199
|
-
|
|
199
|
+
// Handle .params property on closures
|
|
200
|
+
if (field === 'params') {
|
|
201
|
+
if (isCallable(value)) {
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
203
|
+
value = await this.evaluateParamsProperty(value, this.getNodeLocation(node));
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
// .params on non-callable: throw or return null based on default value
|
|
207
|
+
if (node.defaultValue !== null) {
|
|
208
|
+
value = null;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Cannot access .params on ${inferType(value)}`, this.getNodeLocation(node), { actualType: inferType(value) });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else if (isDict(value)) {
|
|
200
216
|
// Allow missing fields if there's a default value
|
|
201
217
|
const allowMissing = node.defaultValue !== null;
|
|
202
218
|
value = await this.accessDictField(value, field, this.getNodeLocation(node), allowMissing);
|
|
@@ -214,6 +230,27 @@ function createVariablesMixin(Base) {
|
|
|
214
230
|
else if (access.kind === 'alternatives') {
|
|
215
231
|
value = await this.evaluateFieldAccessAlternatives(access, value, node);
|
|
216
232
|
}
|
|
233
|
+
else if (access.kind === 'annotation') {
|
|
234
|
+
// Annotation reflection: .^key
|
|
235
|
+
// Delegates to evaluateAnnotationAccess from ClosuresMixin
|
|
236
|
+
// Convert RUNTIME_UNDEFINED_ANNOTATION to null ONLY if defaultValue exists (for ?? coalescing)
|
|
237
|
+
try {
|
|
238
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
239
|
+
value = await this.evaluateAnnotationAccess(value, access.key, this.getNodeLocation(node));
|
|
240
|
+
}
|
|
241
|
+
catch (e) {
|
|
242
|
+
if (e instanceof RuntimeError &&
|
|
243
|
+
e.code === RILL_ERROR_CODES.RUNTIME_UNDEFINED_ANNOTATION &&
|
|
244
|
+
node.defaultValue !== null) {
|
|
245
|
+
// Convert missing annotation to null for ?? coalescing
|
|
246
|
+
value = null;
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
// No default value: re-throw RUNTIME_UNDEFINED_ANNOTATION
|
|
250
|
+
throw e;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
217
254
|
else {
|
|
218
255
|
// Other field access types (block)
|
|
219
256
|
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Field access kind '${access.kind}' not yet supported`, this.getNodeLocation(node));
|
|
@@ -349,8 +386,11 @@ function createVariablesMixin(Base) {
|
|
|
349
386
|
if (dictValue !== undefined && dictValue !== null) {
|
|
350
387
|
// Property-style callable: auto-invoke when accessed
|
|
351
388
|
if (isCallable(dictValue) && dictValue.isProperty) {
|
|
389
|
+
// ApplicationCallable: pass [dict] as args (no boundDict mechanism)
|
|
390
|
+
// ScriptCallable: pass [] - dict is bound via boundDict -> pipeValue
|
|
391
|
+
const args = dictValue.kind === 'script' ? [] : [value];
|
|
352
392
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
353
|
-
return await this.invokeCallable(dictValue,
|
|
393
|
+
return await this.invokeCallable(dictValue, args, this.getNodeLocation(node));
|
|
354
394
|
}
|
|
355
395
|
return dictValue;
|
|
356
396
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/variables.ts"],"names":[],"mappings":"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"}
|