@almadar/evaluator 2.43.0 → 2.44.0
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.
|
@@ -343,7 +343,10 @@ declare function evalLast(args: SExpr[], evaluate: Evaluator$2, ctx: EvaluationC
|
|
|
343
343
|
*/
|
|
344
344
|
declare function evalNth(args: SExpr[], evaluate: Evaluator$2, ctx: EvaluationContext): RuntimeValue;
|
|
345
345
|
/**
|
|
346
|
-
*
|
|
346
|
+
* Array-concat semantics for a collection of args. Not wired to any bare
|
|
347
|
+
* "concat" S-expr head (removed as an ambiguous alias — use 'array/concat'
|
|
348
|
+
* or std/array.ts's evalArrayConcat, which is what "array/concat" dispatches
|
|
349
|
+
* to); kept as a plain exported utility.
|
|
347
350
|
*/
|
|
348
351
|
declare function evalConcat(args: SExpr[], evaluate: Evaluator$2, ctx: EvaluationContext): RuntimeValue[];
|
|
349
352
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SExpr, RuntimeValue, ListenPayloadEvaluator } from '@almadar/core';
|
|
2
2
|
export { CORE_BINDINGS, CoreBinding, Expression, ExpressionSchema, ParsedBinding, SExpr, SExprAtom, SExprSchema, UserContext, collectBindings, getArgs, getOperator, isBinding, isSExpr, isSExprAtom, isSExprCall, isValidBinding, parseBinding, sexpr, walkSExpr } from '@almadar/core';
|
|
3
|
-
import { E as EvaluationContext } from './index-
|
|
4
|
-
export { c as createChildContext, a as createEffectContext, b as createMinimalContext, e as evalAbs, d as evalAdd, f as evalAnd, g as evalAtomic, h as evalCallService, i as evalCeil, j as evalClamp, k as evalConcat, l as evalCount, m as evalDecrement, n as evalDeref, o as evalDespawn, p as evalDivide, q as evalDo, r as evalEmit, s as evalEmpty, t as evalEqual, u as evalFilter, v as evalFind, w as evalFirst, x as evalFloor, y as evalFn, z as evalGreaterThan, A as evalGreaterThanOrEqual, B as evalIf, C as evalIncludes, D as evalIncrement, F as evalLast, G as evalLessThan, H as evalLessThanOrEqual, I as evalLet, J as evalList, K as evalMap, L as evalMatches, M as evalMax, N as evalMin, O as evalModulo, P as evalMultiply, Q as evalNavigate, R as evalNot, S as evalNotEqual, T as evalNotify, U as evalNth, V as evalOr, W as evalPersist, X as evalRef, Y as evalRenderUI, Z as evalRound, _ as evalSet, $ as evalSetDynamic, a0 as evalSpawn, a1 as evalSubtract, a2 as evalSum, a3 as evalSwap, a4 as evalWatch, a5 as evalWhen, a6 as resolveBinding } from './index-
|
|
3
|
+
import { E as EvaluationContext } from './index-DDh6RIVu.js';
|
|
4
|
+
export { c as createChildContext, a as createEffectContext, b as createMinimalContext, e as evalAbs, d as evalAdd, f as evalAnd, g as evalAtomic, h as evalCallService, i as evalCeil, j as evalClamp, k as evalConcat, l as evalCount, m as evalDecrement, n as evalDeref, o as evalDespawn, p as evalDivide, q as evalDo, r as evalEmit, s as evalEmpty, t as evalEqual, u as evalFilter, v as evalFind, w as evalFirst, x as evalFloor, y as evalFn, z as evalGreaterThan, A as evalGreaterThanOrEqual, B as evalIf, C as evalIncludes, D as evalIncrement, F as evalLast, G as evalLessThan, H as evalLessThanOrEqual, I as evalLet, J as evalList, K as evalMap, L as evalMatches, M as evalMax, N as evalMin, O as evalModulo, P as evalMultiply, Q as evalNavigate, R as evalNot, S as evalNotEqual, T as evalNotify, U as evalNth, V as evalOr, W as evalPersist, X as evalRef, Y as evalRenderUI, Z as evalRound, _ as evalSet, $ as evalSetDynamic, a0 as evalSpawn, a1 as evalSubtract, a2 as evalSum, a3 as evalSwap, a4 as evalWatch, a5 as evalWhen, a6 as resolveBinding } from './index-DDh6RIVu.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* S-Expression Evaluator
|
package/dist/index.js
CHANGED
|
@@ -4163,6 +4163,13 @@ function evalPathReachable(args, evaluate2, ctx) {
|
|
|
4163
4163
|
|
|
4164
4164
|
// SExpressionEvaluator.ts
|
|
4165
4165
|
var UNKNOWN_OPERATOR = /* @__PURE__ */ Symbol("unknown-operator");
|
|
4166
|
+
function assertNotAmbiguousConcat(op) {
|
|
4167
|
+
if (op === "concat") {
|
|
4168
|
+
throw new Error(
|
|
4169
|
+
"Ambiguous operator 'concat': use 'str/concat' (string) or 'array/concat' (array)"
|
|
4170
|
+
);
|
|
4171
|
+
}
|
|
4172
|
+
}
|
|
4166
4173
|
var OPERATOR_TABLE = {
|
|
4167
4174
|
"+": evalAdd,
|
|
4168
4175
|
"-": evalSubtract,
|
|
@@ -4201,7 +4208,6 @@ var OPERATOR_TABLE = {
|
|
|
4201
4208
|
"first": evalFirst,
|
|
4202
4209
|
"last": evalLast,
|
|
4203
4210
|
"nth": evalNth,
|
|
4204
|
-
"concat": evalConcat,
|
|
4205
4211
|
"includes": evalIncludes,
|
|
4206
4212
|
"empty": evalEmpty,
|
|
4207
4213
|
"list": evalList,
|
|
@@ -4705,6 +4711,7 @@ var SExpressionEvaluator = class {
|
|
|
4705
4711
|
} else {
|
|
4706
4712
|
const op = getOperator(expr);
|
|
4707
4713
|
const args = getArgs(expr);
|
|
4714
|
+
assertNotAmbiguousConcat(op);
|
|
4708
4715
|
assertOperatorArity(op, args.length);
|
|
4709
4716
|
const impl = OPERATOR_TABLE[op];
|
|
4710
4717
|
for (const item of expr) {
|
|
@@ -4787,6 +4794,7 @@ var SExpressionEvaluator = class {
|
|
|
4787
4794
|
* Dispatch to the appropriate operator implementation.
|
|
4788
4795
|
*/
|
|
4789
4796
|
dispatchOperator(op, args, ctx) {
|
|
4797
|
+
assertNotAmbiguousConcat(op);
|
|
4790
4798
|
assertOperatorArity(op, args.length);
|
|
4791
4799
|
const impl = OPERATOR_TABLE[op];
|
|
4792
4800
|
if (impl === void 0) return UNKNOWN_OPERATOR;
|