@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-flow.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/control-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;
|
|
1
|
+
{"version":3,"file":"control-flow.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/control-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA40BH,eAAO,MAAM,SAAS,EAAsB,GAAG,CAAC"}
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
* @internal
|
|
22
22
|
*/
|
|
23
23
|
import { RuntimeError, RILL_ERROR_CODES } from '../../../../types.js';
|
|
24
|
+
import { isTuple } from '../../values.js';
|
|
25
|
+
import { isCallable, isDict } from '../../callable.js';
|
|
24
26
|
import { BreakSignal, ReturnSignal } from '../../signals.js';
|
|
25
27
|
/**
|
|
26
28
|
* CoreMixin implementation.
|
|
@@ -188,13 +190,19 @@ function createCoreMixin(Base) {
|
|
|
188
190
|
return this.evaluateDoWhileLoop(primary);
|
|
189
191
|
case 'Block':
|
|
190
192
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
191
|
-
return this.
|
|
193
|
+
return this.createBlockClosure(primary);
|
|
192
194
|
case 'GroupedExpr':
|
|
193
195
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
194
196
|
return this.evaluateGroupedExpr(primary);
|
|
195
197
|
case 'Spread':
|
|
196
198
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
197
199
|
return this.evaluateSpread(primary);
|
|
200
|
+
case 'Assert':
|
|
201
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
202
|
+
return this.evaluateAssert(primary);
|
|
203
|
+
case 'Error':
|
|
204
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
205
|
+
return this.evaluateError(primary);
|
|
198
206
|
case 'TypeAssertion': {
|
|
199
207
|
// Postfix type assertion: the operand is already evaluated
|
|
200
208
|
if (!primary.operand) {
|
|
@@ -247,12 +255,42 @@ function createCoreMixin(Base) {
|
|
|
247
255
|
case 'DoWhileLoop':
|
|
248
256
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
249
257
|
return this.evaluateDoWhileLoop(target);
|
|
250
|
-
case 'Block':
|
|
258
|
+
case 'Block': {
|
|
259
|
+
// Create block-closure then invoke with input as $
|
|
251
260
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
252
|
-
|
|
261
|
+
const closure = this.createBlockClosure(target);
|
|
262
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
263
|
+
return this.invokeCallable(closure, [input], this.getNodeLocation(target));
|
|
264
|
+
}
|
|
253
265
|
case 'StringLiteral':
|
|
254
266
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
255
267
|
return this.evaluateString(target);
|
|
268
|
+
case 'Dict': {
|
|
269
|
+
// Hierarchical dispatch: detect list input (not tuple)
|
|
270
|
+
if (Array.isArray(input) && !isTuple(input)) {
|
|
271
|
+
// Evaluate dict literal first, then dispatch through path
|
|
272
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
273
|
+
const dictValue = await this.evaluateDict(target);
|
|
274
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
275
|
+
return await this.evaluateHierarchicalDispatch(dictValue, input, target.defaultValue, this.getNodeLocation(target));
|
|
276
|
+
}
|
|
277
|
+
// Dict dispatch: lookup key matching piped value
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
279
|
+
return this.evaluateDictDispatch(target, input);
|
|
280
|
+
}
|
|
281
|
+
case 'Tuple': {
|
|
282
|
+
// Hierarchical dispatch: detect list input (not tuple)
|
|
283
|
+
if (Array.isArray(input) && !isTuple(input)) {
|
|
284
|
+
// Evaluate list literal first, then dispatch through path
|
|
285
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
286
|
+
const listValue = await this.evaluateTuple(target);
|
|
287
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
288
|
+
return await this.evaluateHierarchicalDispatch(listValue, input, target.defaultValue, this.getNodeLocation(target));
|
|
289
|
+
}
|
|
290
|
+
// Tuple dispatch: index lookup matching piped value
|
|
291
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
292
|
+
return this.evaluateListDispatch(target, input);
|
|
293
|
+
}
|
|
256
294
|
case 'GroupedExpr':
|
|
257
295
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
258
296
|
return this.evaluateGroupedExpr(target);
|
|
@@ -286,7 +324,7 @@ function createCoreMixin(Base) {
|
|
|
286
324
|
case 'FilterExpr':
|
|
287
325
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
288
326
|
return this.evaluateFilter(target, input);
|
|
289
|
-
case 'Variable':
|
|
327
|
+
case 'Variable': {
|
|
290
328
|
// $.field is property access on pipe value, not closure invocation
|
|
291
329
|
if (target.isPipeVar &&
|
|
292
330
|
!target.name &&
|
|
@@ -294,9 +332,62 @@ function createCoreMixin(Base) {
|
|
|
294
332
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
295
333
|
return this.evaluatePipePropertyAccess(target, input);
|
|
296
334
|
}
|
|
297
|
-
// Variable in pipe chain: evaluate
|
|
298
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
299
|
-
|
|
335
|
+
// Variable in pipe chain: evaluate and invoke if callable
|
|
336
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
337
|
+
const value = await this.evaluateVariableAsync(target);
|
|
338
|
+
// If value is callable, invoke it with the pipe input
|
|
339
|
+
// Per closure-semantics spec: check params.length to determine invocation style
|
|
340
|
+
if (isCallable(value)) {
|
|
341
|
+
// Check if callable has params to determine invocation style
|
|
342
|
+
const hasParams = (value.kind === 'script' && value.params.length > 0) ||
|
|
343
|
+
(value.kind === 'application' &&
|
|
344
|
+
value.params !== undefined &&
|
|
345
|
+
value.params.length > 0);
|
|
346
|
+
if (hasParams) {
|
|
347
|
+
// Block-closure: invoke with input as argument
|
|
348
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
349
|
+
return this.invokeCallable(value, [input], this.getNodeLocation(target));
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
// Zero-param closure: invoke with args = [] and pipeValue = input
|
|
353
|
+
const savedPipeValue = this.ctx.pipeValue;
|
|
354
|
+
this.ctx.pipeValue = input;
|
|
355
|
+
try {
|
|
356
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
357
|
+
const result = await this.invokeCallable(value, [], this.getNodeLocation(target));
|
|
358
|
+
return result;
|
|
359
|
+
}
|
|
360
|
+
finally {
|
|
361
|
+
this.ctx.pipeValue = savedPipeValue;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// Variable dispatch: if value is dict or list, dispatch into it
|
|
366
|
+
// Hierarchical dispatch: detect list input (not tuple) for path navigation
|
|
367
|
+
if (Array.isArray(input) && !isTuple(input)) {
|
|
368
|
+
if (isDict(value) || (Array.isArray(value) && !isTuple(value))) {
|
|
369
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
370
|
+
return await this.evaluateHierarchicalDispatch(value, input, target.defaultValue, this.getNodeLocation(target));
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
if (Array.isArray(value) && !isTuple(value)) {
|
|
374
|
+
// List dispatch
|
|
375
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
376
|
+
return await this.dispatchToList(value, input, target.defaultValue, target);
|
|
377
|
+
}
|
|
378
|
+
if (isDict(value)) {
|
|
379
|
+
// Dict dispatch
|
|
380
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
381
|
+
return await this.dispatchToDict(value, input, target.defaultValue, target);
|
|
382
|
+
}
|
|
383
|
+
// Non-dispatchable type in pipe context - error
|
|
384
|
+
const valueType = typeof value === 'object' && value !== null
|
|
385
|
+
? Array.isArray(value)
|
|
386
|
+
? 'tuple'
|
|
387
|
+
: 'dict'
|
|
388
|
+
: typeof value;
|
|
389
|
+
throw RuntimeError.fromNode(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Cannot dispatch to ${valueType}`, target);
|
|
390
|
+
}
|
|
300
391
|
case 'PostfixExpr': {
|
|
301
392
|
// Chained methods on pipe value: -> .a.b.c
|
|
302
393
|
// The primary is implicit $ (pipe value)
|
|
@@ -307,6 +398,12 @@ function createCoreMixin(Base) {
|
|
|
307
398
|
}
|
|
308
399
|
return value;
|
|
309
400
|
}
|
|
401
|
+
case 'Assert':
|
|
402
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
403
|
+
return this.evaluateAssert(target, input);
|
|
404
|
+
case 'Error':
|
|
405
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
406
|
+
return this.evaluateError(target, input);
|
|
310
407
|
default:
|
|
311
408
|
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Unsupported pipe target type: ${target.type}`, this.getNodeLocation(target));
|
|
312
409
|
}
|
|
@@ -326,6 +423,210 @@ function createCoreMixin(Base) {
|
|
|
326
423
|
this.ctx.pipeValue = savedPipeValue;
|
|
327
424
|
return args;
|
|
328
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Navigate nested data structure using list of keys/indexes [IR-1].
|
|
428
|
+
*
|
|
429
|
+
* Traverses through nested dicts and lists using a path of keys/indexes.
|
|
430
|
+
* Empty path returns target unchanged. Each path element dispatches to
|
|
431
|
+
* current value. Terminal closures receive $ = final path key.
|
|
432
|
+
*
|
|
433
|
+
* @param target - Already-evaluated dict/list to navigate
|
|
434
|
+
* @param path - List of keys/indexes to traverse
|
|
435
|
+
* @param defaultExpr - Optional default value if path not found
|
|
436
|
+
* @param location - Source location for error reporting
|
|
437
|
+
* @returns Final value at path
|
|
438
|
+
*/
|
|
439
|
+
async evaluateHierarchicalDispatch(target, path, defaultExpr, location) {
|
|
440
|
+
// Target is already evaluated
|
|
441
|
+
const targetValue = target;
|
|
442
|
+
// Empty path returns target unchanged
|
|
443
|
+
if (path.length === 0) {
|
|
444
|
+
return targetValue;
|
|
445
|
+
}
|
|
446
|
+
try {
|
|
447
|
+
// Navigate through path elements
|
|
448
|
+
let current = targetValue;
|
|
449
|
+
let lastKey;
|
|
450
|
+
// Traverse all elements except the last
|
|
451
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
452
|
+
const key = path[i];
|
|
453
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
454
|
+
current = await this.traversePathStep(current, key, false, location);
|
|
455
|
+
}
|
|
456
|
+
// Handle last element separately for terminal closure support
|
|
457
|
+
lastKey = path[path.length - 1];
|
|
458
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
459
|
+
const result = await this.traversePathStep(current, lastKey, true, location);
|
|
460
|
+
// Resolve terminal value (handles terminal closures with $ = lastKey)
|
|
461
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
462
|
+
return await this.resolveTerminalValue(result, lastKey, location);
|
|
463
|
+
}
|
|
464
|
+
catch (error) {
|
|
465
|
+
// Handle missing key/index errors with default value
|
|
466
|
+
if (error instanceof RuntimeError &&
|
|
467
|
+
error.code === RILL_ERROR_CODES.RUNTIME_PROPERTY_NOT_FOUND) {
|
|
468
|
+
if (defaultExpr) {
|
|
469
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
470
|
+
return await this.evaluateExpression(defaultExpr);
|
|
471
|
+
}
|
|
472
|
+
// No default - re-throw original error
|
|
473
|
+
throw error;
|
|
474
|
+
}
|
|
475
|
+
// Type errors and other errors always propagate
|
|
476
|
+
throw error;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Execute single path step: dispatch key to current value [IR-2].
|
|
481
|
+
*
|
|
482
|
+
* Handles type-specific dispatch:
|
|
483
|
+
* - Dict + string key -> dispatchToDict
|
|
484
|
+
* - List + number key -> dispatchToList
|
|
485
|
+
* - Other combinations -> type error
|
|
486
|
+
*
|
|
487
|
+
* For non-terminal steps, closures are resolved via resolveIntermediateClosure.
|
|
488
|
+
* Terminal closures are handled by caller with $ = key.
|
|
489
|
+
*
|
|
490
|
+
* @param current - Current value in traversal
|
|
491
|
+
* @param key - Key/index to dispatch
|
|
492
|
+
* @param isTerminal - Whether this is the final path element
|
|
493
|
+
* @param location - Source location for error reporting
|
|
494
|
+
* @returns Value at key/index
|
|
495
|
+
*/
|
|
496
|
+
async traversePathStep(current, key, isTerminal, location) {
|
|
497
|
+
// Dict + string key: dispatch to dict
|
|
498
|
+
if (isDict(current) && typeof key === 'string') {
|
|
499
|
+
// Create location-like object for dispatchToDict signature
|
|
500
|
+
const locObj = {
|
|
501
|
+
span: location ? { start: location, end: location } : undefined,
|
|
502
|
+
};
|
|
503
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
504
|
+
const result = await this.dispatchToDict(current, key, null, // No default value for intermediate steps
|
|
505
|
+
locObj, true // Skip closure resolution - we handle it here
|
|
506
|
+
);
|
|
507
|
+
// Non-terminal closures must be resolved via resolveIntermediateClosure
|
|
508
|
+
if (!isTerminal && isCallable(result)) {
|
|
509
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
510
|
+
return await this.resolveIntermediateClosure(result, location);
|
|
511
|
+
}
|
|
512
|
+
// Terminal closures will be handled by evaluateHierarchicalDispatch
|
|
513
|
+
return result;
|
|
514
|
+
}
|
|
515
|
+
// List + number key: dispatch to list
|
|
516
|
+
if (Array.isArray(current) &&
|
|
517
|
+
!isTuple(current) &&
|
|
518
|
+
typeof key === 'number') {
|
|
519
|
+
// Create location-like object for dispatchToList signature
|
|
520
|
+
const locObj = {
|
|
521
|
+
span: location ? { start: location, end: location } : undefined,
|
|
522
|
+
};
|
|
523
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
524
|
+
const result = await this.dispatchToList(current, key, null, // No default value for intermediate steps
|
|
525
|
+
locObj, true // Skip closure resolution - we handle it here
|
|
526
|
+
);
|
|
527
|
+
// Non-terminal closures must be resolved via resolveIntermediateClosure
|
|
528
|
+
if (!isTerminal && isCallable(result)) {
|
|
529
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
530
|
+
return await this.resolveIntermediateClosure(result, location);
|
|
531
|
+
}
|
|
532
|
+
// Terminal closures will be handled by evaluateHierarchicalDispatch
|
|
533
|
+
return result;
|
|
534
|
+
}
|
|
535
|
+
// Type mismatch: throw error
|
|
536
|
+
const currentType = Array.isArray(current)
|
|
537
|
+
? isTuple(current)
|
|
538
|
+
? 'tuple'
|
|
539
|
+
: 'list'
|
|
540
|
+
: isDict(current)
|
|
541
|
+
? 'dict'
|
|
542
|
+
: typeof current;
|
|
543
|
+
const keyType = typeof key;
|
|
544
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, `Hierarchical dispatch type mismatch: cannot use ${keyType} key with ${currentType} value`, location, { currentType, keyType, key });
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Resolve closure encountered at non-terminal path position.
|
|
548
|
+
*
|
|
549
|
+
* Auto-invokes zero-param closures with args = [].
|
|
550
|
+
* Throws error for parameterized closures (no args available at intermediate position).
|
|
551
|
+
* Returns non-callable values unchanged.
|
|
552
|
+
*
|
|
553
|
+
* @param value - Value to resolve (may be callable or regular value)
|
|
554
|
+
* @param location - Source location for error reporting
|
|
555
|
+
* @returns Resolved value (invoked result or original value)
|
|
556
|
+
* @throws RuntimeError with RUNTIME_TYPE_ERROR if parameterized closure
|
|
557
|
+
*/
|
|
558
|
+
async resolveIntermediateClosure(value, location) {
|
|
559
|
+
if (!isCallable(value)) {
|
|
560
|
+
return value;
|
|
561
|
+
}
|
|
562
|
+
// Check for parameterized closure (explicit user-defined params)
|
|
563
|
+
// Note: Block-closures have exactly 1 param named '$'
|
|
564
|
+
// Parameterized closures have 1+ params with user-defined names
|
|
565
|
+
if (value.kind === 'script' && value.params.length >= 1) {
|
|
566
|
+
// Check if first param is '$' (block-closure) or user-defined (parameterized)
|
|
567
|
+
if (value.params[0].name !== '$') {
|
|
568
|
+
// Parameterized closure at intermediate position: error per EC-8
|
|
569
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Cannot invoke parameterized closure at intermediate path position', location);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
// Zero-param closure or block-closure: auto-invoke with args = []
|
|
573
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
574
|
+
return await this.invokeCallable(value, [], location);
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Resolve terminal value in hierarchical dispatch: auto-invoke closures with finalKey.
|
|
578
|
+
* Used when navigating to a final path element.
|
|
579
|
+
*
|
|
580
|
+
* Behavior per IR-4:
|
|
581
|
+
* - Block-closures (params.length > 0, first param is '$'): invoke with args = [finalKey]
|
|
582
|
+
* - Zero-param closures: invoke with pipeValue = finalKey
|
|
583
|
+
* - Parameterized closures: throw error (dispatch does not provide args)
|
|
584
|
+
* - Non-callable: return unchanged
|
|
585
|
+
*
|
|
586
|
+
* @param value - Value at terminal path position
|
|
587
|
+
* @param finalKey - Final key from path (becomes $ or first arg)
|
|
588
|
+
* @param location - Source location for error reporting
|
|
589
|
+
* @returns Resolved value (invoked or unchanged)
|
|
590
|
+
* @throws RuntimeError with RUNTIME_TYPE_ERROR if parameterized closure
|
|
591
|
+
*/
|
|
592
|
+
async resolveTerminalValue(value, finalKey, location) {
|
|
593
|
+
if (!isCallable(value)) {
|
|
594
|
+
return value;
|
|
595
|
+
}
|
|
596
|
+
// Check for parameterized closure (explicit user-defined params)
|
|
597
|
+
// Note: Block-closures have exactly 1 param named '$'
|
|
598
|
+
// Parameterized closures have 1+ params with user-defined names
|
|
599
|
+
if (value.kind === 'script' && value.params.length >= 1) {
|
|
600
|
+
// Check if first param is '$' (block-closure) or user-defined (parameterized)
|
|
601
|
+
if (value.params[0].name !== '$') {
|
|
602
|
+
// Parameterized closure at terminal position: error per EC-9
|
|
603
|
+
throw new RuntimeError(RILL_ERROR_CODES.RUNTIME_TYPE_ERROR, 'Dispatch does not provide arguments for parameterized closure', location);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
// Check if callable has params to determine invocation style
|
|
607
|
+
const hasParams = (value.kind === 'script' && value.params.length > 0) ||
|
|
608
|
+
(value.kind === 'application' &&
|
|
609
|
+
value.params !== undefined &&
|
|
610
|
+
value.params.length > 0);
|
|
611
|
+
if (hasParams) {
|
|
612
|
+
// Block-closure or application callable with params: invoke with finalKey as argument
|
|
613
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
614
|
+
return await this.invokeCallable(value, [finalKey], location);
|
|
615
|
+
}
|
|
616
|
+
else {
|
|
617
|
+
// Zero-param closure: invoke with pipeValue = finalKey
|
|
618
|
+
const savedPipeValue = this.ctx.pipeValue;
|
|
619
|
+
this.ctx.pipeValue = finalKey;
|
|
620
|
+
try {
|
|
621
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
622
|
+
const result = await this.invokeCallable(value, [], location);
|
|
623
|
+
return result;
|
|
624
|
+
}
|
|
625
|
+
finally {
|
|
626
|
+
this.ctx.pipeValue = savedPipeValue;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
329
630
|
};
|
|
330
631
|
}
|
|
331
632
|
// Export with type assertion to work around TS4094 limitation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -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]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/literals.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"literals.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/core/eval/mixins/literals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAytBH,eAAO,MAAM,aAAa,EAA0B,GAAG,CAAC"}
|