@tabnas/expr 0.5.2 → 0.5.5

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/dist/expr.d.ts CHANGED
@@ -62,4 +62,4 @@ declare const testing: {
62
62
  };
63
63
  export { VERSION, Expr, evaluation, testing };
64
64
  export type { ExprOptions, OpDef, Op, Evaluate };
65
- declare const VERSION = "0.5.2";
65
+ declare const VERSION = "0.5.5";
package/dist/expr.js CHANGED
@@ -553,7 +553,7 @@ let Expr = function Expr(tn, options) {
553
553
  c: (r) => r.d <= 0,
554
554
  n: { expr: 0 },
555
555
  r: 'elem',
556
- a: (r) => (r.parent.node = r.node = [r.node]),
556
+ a: (r, ctx) => (r.node = topList(r, ctx)),
557
557
  g: 'expr,comma,list,top',
558
558
  },
559
559
  // Implicit list at the top level.
@@ -564,7 +564,7 @@ let Expr = function Expr(tn, options) {
564
564
  n: { expr: 0 },
565
565
  b: 1,
566
566
  r: 'elem',
567
- a: (r) => (r.parent.node = r.node = [r.node]),
567
+ a: (r, ctx) => (r.node = topList(r, ctx)),
568
568
  g: 'expr,space,list,top',
569
569
  },
570
570
  // Implicit list indicated by comma.
@@ -577,8 +577,18 @@ let Expr = function Expr(tn, options) {
577
577
  g: 'expr,list,val,imp,comma',
578
578
  },
579
579
  // Implicit list indicated by space separated value.
580
+ //
581
+ // This alternative carries no token filter, so it also has to be
582
+ // kept off a pending suffix operator. A suffix belongs to the
583
+ // expression that just closed, not to a new element: `f(@x!)`
584
+ // reached here on the `!` of a completed prefix, opened `elem`,
585
+ // and offered `!` as the start of a value — which nothing matches,
586
+ // so a valid expression failed as `unexpected`. Leaving the token
587
+ // alone lets the val-close suffix alternative take it, which is
588
+ // how the same expression already parses at the top level.
580
589
  {
581
- c: (r) => r.lte('pk') && r.lte('expr_suffix'),
590
+ c: (r, ctx) => r.lte('pk') && r.lte('expr_suffix') &&
591
+ !SUFFIX.includes(ctx.t0.tin),
582
592
  n: { expr: 0 },
583
593
  h: implicitList,
584
594
  g: 'expr,list,val,imp,space',
@@ -594,9 +604,38 @@ let Expr = function Expr(tn, options) {
594
604
  // console.log('EXPR-AC', r.name, r.i, r.n, p(r.node),
595
605
  // 'P', r.parent.name, r.parent.i, r.parent.n, p(r.parent.node))
596
606
  if (options.evaluate && 0 === r.n.expr) {
607
+ const parentNode = r.parent.node;
608
+ // The parent holds an implicit list (`f(1+2, 3)`, `1+2, 3`)
609
+ // rather than this expression's own op-array. A list is a plain
610
+ // array, not an op-array, so its members used to reach the
611
+ // caller as raw op-arrays that `evaluate` was never called on.
612
+ //
613
+ // Reduce them in place, keeping the array: the list is still
614
+ // being collected, and the paren rule and the expr rules
615
+ // between it and here all hold a reference to this exact array,
616
+ // so replacing it would strand the members still to come. A
617
+ // member already reduced is returned untouched rather than
618
+ // reduced again.
619
+ if (Array.isArray(parentNode) && !isOp(parentNode)) {
620
+ for (let termI = 0; termI < parentNode.length; termI++) {
621
+ parentNode[termI] = evaluation(r.parent, ctx, parentNode[termI], options.evaluate);
622
+ }
623
+ r.node = parentNode;
624
+ return;
625
+ }
597
626
  // The parent node will contain the root of the expr tree.
598
627
  let out = evaluation(r.parent, ctx, r.parent.node, options.evaluate);
599
- r.parent.node = out;
628
+ // Not onto the NORULE sentinel, for the reason `topList` gives:
629
+ // NORULE carries a `node` like any other rule and a rule seeds
630
+ // its node from its parent, so a value written there is handed
631
+ // straight back out as the starting node of the rules that
632
+ // follow. The Go port guards the same write; this runtime was
633
+ // left unguarded when that fix landed. `r.node` below is what
634
+ // the parse reads at this depth, so skipping the write costs
635
+ // nothing.
636
+ if (r.parent && ctx.NORULE !== r.parent) {
637
+ r.parent.node = out;
638
+ }
600
639
  // Also write the evaluated result onto this expr rule's own
601
640
  // node. When the expr rule was PUSHED from a still-open val
602
641
  // (the prefix/paren forms: `+1`, `(a)`), that val's close
@@ -892,8 +931,69 @@ function makeCloseParen(parenCTM) {
892
931
  }
893
932
  };
894
933
  }
934
+ // Start a top-level implicit list, publishing it to the rule's parent —
935
+ // unless that parent is the NORULE sentinel.
936
+ //
937
+ // NORULE carries a `node` like any other rule, and a rule seeds its node
938
+ // from its parent, so a list written there is handed straight back out as
939
+ // the starting node of the rules that follow. `@x!, 3` reaches here with
940
+ // NORULE as its parent, because the root val closed early to let the
941
+ // suffix take the completed prefix: the `elem` that should have collected
942
+ // `3` was seeded with the list instead, `3` was dropped, and the list
943
+ // ended up containing itself. The rule's own node is what the parse
944
+ // returns at this depth, so skipping the write costs nothing.
945
+ // The completed expression a top-level implicit list should start with.
946
+ //
947
+ // The rule that meets the separator is the last one prattify built, which
948
+ // for a right-leaning tree is a SUB-expression: `1+2*3` leaves it holding
949
+ // `[*,2,3]` while the finished `[+,1,[*,2,3]]` sits on the val this
950
+ // expression publishes to, and on the outermost expr in the r:-
951
+ // replacement chain. Seeding the list from the rule's own node therefore
952
+ // dropped the `1+` — `1+2*3,4` parsed as `[[*,2,3],4]`, a wrong answer
953
+ // with nothing to signal it. A flat first member (`1+2,3`) is unaffected,
954
+ // because there the rule's node already IS the whole expression, which is
955
+ // why this went unnoticed.
956
+ //
957
+ // Only a top-level bare list reaches here; `[1+2*3,4]`, `f(1+2*3,4)` and
958
+ // `{a:1+2*3,b:4}` collect their members by other paths and were correct.
959
+ function exprRoot(rule, ctx) {
960
+ const parent = rule.parent;
961
+ if (parent && ctx.NORULE !== parent && isOp(parent.node)) {
962
+ return parent.node;
963
+ }
964
+ // No usable parent — the NORULE case topList handles below. The
965
+ // outermost expr in the chain holds the root; later entries are the
966
+ // sub-expressions built under it.
967
+ let root = undefined;
968
+ for (let cur = rule; null != cur && ctx.NORULE !== cur; cur = cur.prev) {
969
+ if ('expr' === cur.name && isOp(cur.node)) {
970
+ root = cur.node;
971
+ }
972
+ }
973
+ return undefined === root ? rule.node : root;
974
+ }
975
+ function topList(rule, ctx) {
976
+ const list = [exprRoot(rule, ctx)];
977
+ if (rule.parent && ctx.NORULE !== rule.parent) {
978
+ rule.parent.node = list;
979
+ return list;
980
+ }
981
+ // No parent to publish to. The list is still built correctly by the
982
+ // `elem` rules that follow, but nothing would ever read it: the result
983
+ // came back as the first member alone, with `, 3` silently gone.
984
+ //
985
+ // Write it back along the r:-replacement chain instead, so whichever
986
+ // rule `ctx.root().node` resolves to is holding this list — the same
987
+ // approach the ternary close hook takes. Members appended later are
988
+ // visible through it, because every writer shares this one array.
989
+ for (let cur = rule; null != cur && ctx.NORULE !== cur; cur = cur.prev) {
990
+ cur.node = list;
991
+ }
992
+ return list;
993
+ }
895
994
  function implicitList(rule, ctx, a) {
896
995
  let paren = null;
996
+ let parenI = -1;
897
997
  // Find the paren rule that contains this implicit list.
898
998
  // If a map or list rule sits between the expression and the paren,
899
999
  // the expression is inside a contained value — not a direct paren
@@ -901,6 +1001,7 @@ function implicitList(rule, ctx, a) {
901
1001
  for (let rI = ctx.rsI - 1; -1 < rI; rI--) {
902
1002
  if ('paren' === ctx.rs[rI].name) {
903
1003
  paren = ctx.rs[rI];
1004
+ parenI = rI;
904
1005
  break;
905
1006
  }
906
1007
  if ('map' === ctx.rs[rI].name || 'list' === ctx.rs[rI].name) {
@@ -908,6 +1009,9 @@ function implicitList(rule, ctx, a) {
908
1009
  }
909
1010
  }
910
1011
  if (paren) {
1012
+ // The node this expression contributes, captured before the
1013
+ // reassignment below replaces it with the list.
1014
+ const exprNode = rule.node;
911
1015
  // Create a list value for the paren rule.
912
1016
  if (null == paren.child.node) {
913
1017
  paren.child.node = [rule.node];
@@ -921,6 +1025,29 @@ function implicitList(rule, ctx, a) {
921
1025
  a.b = 0;
922
1026
  }
923
1027
  rule.node = paren.child.node;
1028
+ // The rule that sees the comma is not always the paren's own child.
1029
+ // A first argument that nests operators — a prefix whose operand is
1030
+ // itself a prefix, `f(- -1, 2)` — leaves further rules on the stack
1031
+ // between the paren and this rule, all holding the same expression
1032
+ // node. Each writes that node back over the paren's when it closes,
1033
+ // discarding every element collected after the first: `f(- -1, 2)`
1034
+ // arrived as one argument, not two. Point them at the implicit list
1035
+ // so the close-back is a no-op instead of a truncation.
1036
+ //
1037
+ // Only the frames that carry this expression: the `expr` rules
1038
+ // themselves, and the `val` rules they were pushed from, which hold
1039
+ // either nothing yet or the expression node. A rule a host plugin
1040
+ // stacked in between has a node of its own to close with, and
1041
+ // overwriting it would destroy a value this plugin knows nothing
1042
+ // about.
1043
+ for (let rI = parenI + 1; rI < ctx.rsI; rI++) {
1044
+ const frame = ctx.rs[rI];
1045
+ if ('expr' === frame.name ||
1046
+ ('val' === frame.name &&
1047
+ (null == frame.node || exprNode === frame.node || isOp(frame.node)))) {
1048
+ frame.node = paren.child.node;
1049
+ }
1050
+ }
924
1051
  }
925
1052
  return a;
926
1053
  }
@@ -1192,11 +1319,37 @@ function prattify(expr, op, whence) {
1192
1319
  // console.log('PRATT-END', whence, p(out), op?.name)
1193
1320
  return out;
1194
1321
  }
1322
+ // Values `evaluate` has already produced. An implicit list is reduced a
1323
+ // member at a time as the members close, and again as a whole once the
1324
+ // list is complete, so without this a member's reduced value would be
1325
+ // handed back to `evaluate` a second time — and a callback that returns
1326
+ // another marked S-expression (an identity evaluator, a symbolic
1327
+ // rewriter) would transform it twice, making the result depend on the
1328
+ // member's position in the list. Weak, so an entry lasts only as long as
1329
+ // the value itself.
1330
+ const EVALUATED = new WeakSet();
1195
1331
  function evaluation(rule, ctx, expr, evaluate) {
1196
1332
  let out = expr ?? null;
1197
- if (null != expr && isOp(expr)) {
1333
+ if (null == expr || EVALUATED.has(expr)) {
1334
+ return out;
1335
+ }
1336
+ if (isOp(expr)) {
1198
1337
  out = evaluate(rule, ctx, expr[0], expr.slice(1).map((term) => evaluation(rule, ctx, term, evaluate)));
1199
1338
  }
1339
+ // An implicit list — `f(1+2, 3+4)`, `1+2, 3+4` — is a plain array, not
1340
+ // an op-array, so the branch above does not reach its members. Reduce
1341
+ // them, into a NEW array: this is a documented public entry point
1342
+ // (`ts/doc/reference.md`) and the parse-once/evaluate-many workflow in
1343
+ // `ts/doc/guide.md` needs a caller's tree to survive a reduction
1344
+ // intact. Where the list under construction must be updated in place,
1345
+ // the expr rule's close hook does that itself — mutating its own tree
1346
+ // is the parser's business, not this function's.
1347
+ else if (Array.isArray(expr)) {
1348
+ out = expr.map((term) => evaluation(rule, ctx, term, evaluate));
1349
+ }
1350
+ if (null != out && 'object' === typeof out) {
1351
+ EVALUATED.add(out);
1352
+ }
1200
1353
  // console.log('EXPR-EVAL', expr, '->', out)
1201
1354
  return out;
1202
1355
  }
@@ -1221,6 +1374,6 @@ exports.testing = testing;
1221
1374
  // VERSION is this package's version. It MUST equal package.json "version":
1222
1375
  // the release orchestrator rewrites both, and the version test fails the
1223
1376
  // build if they drift. Mirrors `const VERSION` in go/expr.go.
1224
- const VERSION = '0.5.2';
1377
+ const VERSION = '0.5.5';
1225
1378
  exports.VERSION = VERSION;
1226
1379
  //# sourceMappingURL=expr.js.map
package/dist/expr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"expr.js","sourceRoot":"","sources":["../src/expr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expr.js","sourceRoot":"","sources":["../src/expr.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tabnas/expr",
3
- "version": "0.5.2",
3
+ "version": "0.5.5",
4
4
  "description": "This plugin allows the [Tabnas](https://github.com/tabnas/jsonic) JSON parser to support expression syntax.",
5
5
  "main": "dist/expr.js",
6
6
  "type": "commonjs",
@@ -27,9 +27,9 @@
27
27
  "build": "tsc --build src test",
28
28
  "clean": "rm -rf node_modules yarn.lock package-lock.json",
29
29
  "reset": "npm run clean && npm i && npm run build && npm test",
30
- "repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag v$REPO_VERSION && git push --tags;",
30
+ "repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: ts/v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag ts/v$REPO_VERSION && git push origin ts/v$REPO_VERSION;",
31
31
  "repo-publish": "npm run clean && npm i && npm run repo-publish-quick",
32
- "repo-publish-quick": "npm run build && npm run test && npm run repo-tag && npm publish --access public --registry https://registry.npmjs.org ",
32
+ "repo-publish-quick": "npm run build && npm run test && npm run repo-tag",
33
33
  "repo-stage": "npm run clean && npm i && npm run repo-stage-quick",
34
34
  "repo-stage-quick": "npm run build && npm run test && npm stage publish",
35
35
  "repo-stage-list": "npm stage list",
@@ -46,7 +46,8 @@
46
46
  "@tabnas/jsonic": "*",
47
47
  "@tabnas/parser": "*",
48
48
  "@tabnas/railroad": "*",
49
- "@types/node": "25.6.0",
49
+ "@tabnas/support": "*",
50
+ "@types/node": "26.2.0",
50
51
  "typescript": "6.0.3"
51
52
  },
52
53
  "peerDependencies": {
package/src/expr.ts CHANGED
@@ -697,7 +697,7 @@ let Expr: Plugin = function Expr(tn: Tabnas, options: ExprOptions) {
697
697
  c: (r: Rule) => r.d <= 0,
698
698
  n: { expr: 0 },
699
699
  r: 'elem',
700
- a: (r: Rule) => (r.parent.node = r.node = [r.node]),
700
+ a: (r: Rule, ctx: Context) => (r.node = topList(r, ctx)),
701
701
  g: 'expr,comma,list,top',
702
702
  },
703
703
 
@@ -709,7 +709,7 @@ let Expr: Plugin = function Expr(tn: Tabnas, options: ExprOptions) {
709
709
  n: { expr: 0 },
710
710
  b: 1,
711
711
  r: 'elem',
712
- a: (r: Rule) => (r.parent.node = r.node = [r.node]),
712
+ a: (r: Rule, ctx: Context) => (r.node = topList(r, ctx)),
713
713
  g: 'expr,space,list,top',
714
714
  },
715
715
 
@@ -724,8 +724,19 @@ let Expr: Plugin = function Expr(tn: Tabnas, options: ExprOptions) {
724
724
  },
725
725
 
726
726
  // Implicit list indicated by space separated value.
727
+ //
728
+ // This alternative carries no token filter, so it also has to be
729
+ // kept off a pending suffix operator. A suffix belongs to the
730
+ // expression that just closed, not to a new element: `f(@x!)`
731
+ // reached here on the `!` of a completed prefix, opened `elem`,
732
+ // and offered `!` as the start of a value — which nothing matches,
733
+ // so a valid expression failed as `unexpected`. Leaving the token
734
+ // alone lets the val-close suffix alternative take it, which is
735
+ // how the same expression already parses at the top level.
727
736
  {
728
- c: (r: Rule) => r.lte('pk') && r.lte('expr_suffix'),
737
+ c: (r: Rule, ctx: Context) =>
738
+ r.lte('pk') && r.lte('expr_suffix') &&
739
+ !SUFFIX.includes(ctx.t0.tin),
729
740
  n: { expr: 0 },
730
741
  h: implicitList,
731
742
  g: 'expr,list,val,imp,space',
@@ -745,6 +756,34 @@ let Expr: Plugin = function Expr(tn: Tabnas, options: ExprOptions) {
745
756
  // 'P', r.parent.name, r.parent.i, r.parent.n, p(r.parent.node))
746
757
 
747
758
  if (options.evaluate && 0 === r.n.expr) {
759
+ const parentNode: any = r.parent.node
760
+
761
+ // The parent holds an implicit list (`f(1+2, 3)`, `1+2, 3`)
762
+ // rather than this expression's own op-array. A list is a plain
763
+ // array, not an op-array, so its members used to reach the
764
+ // caller as raw op-arrays that `evaluate` was never called on.
765
+ //
766
+ // Reduce them in place, keeping the array: the list is still
767
+ // being collected, and the paren rule and the expr rules
768
+ // between it and here all hold a reference to this exact array,
769
+ // so replacing it would strand the members still to come. A
770
+ // member already reduced is returned untouched rather than
771
+ // reduced again.
772
+ if (Array.isArray(parentNode) && !isOp(parentNode)) {
773
+ for (let termI = 0; termI < parentNode.length; termI++) {
774
+ parentNode[termI] = evaluation(
775
+ r.parent,
776
+ ctx,
777
+ parentNode[termI],
778
+ options.evaluate,
779
+ )
780
+ }
781
+
782
+ r.node = parentNode
783
+
784
+ return
785
+ }
786
+
748
787
  // The parent node will contain the root of the expr tree.
749
788
  let out = evaluation(
750
789
  r.parent,
@@ -753,7 +792,17 @@ let Expr: Plugin = function Expr(tn: Tabnas, options: ExprOptions) {
753
792
  options.evaluate,
754
793
  )
755
794
 
756
- r.parent.node = out
795
+ // Not onto the NORULE sentinel, for the reason `topList` gives:
796
+ // NORULE carries a `node` like any other rule and a rule seeds
797
+ // its node from its parent, so a value written there is handed
798
+ // straight back out as the starting node of the rules that
799
+ // follow. The Go port guards the same write; this runtime was
800
+ // left unguarded when that fix landed. `r.node` below is what
801
+ // the parse reads at this depth, so skipping the write costs
802
+ // nothing.
803
+ if (r.parent && ctx.NORULE !== r.parent) {
804
+ r.parent.node = out
805
+ }
757
806
 
758
807
  // Also write the evaluated result onto this expr rule's own
759
808
  // node. When the expr rule was PUSHED from a still-open val
@@ -1081,8 +1130,79 @@ function makeCloseParen(parenCTM: OpMap) {
1081
1130
  }
1082
1131
 
1083
1132
 
1133
+ // Start a top-level implicit list, publishing it to the rule's parent —
1134
+ // unless that parent is the NORULE sentinel.
1135
+ //
1136
+ // NORULE carries a `node` like any other rule, and a rule seeds its node
1137
+ // from its parent, so a list written there is handed straight back out as
1138
+ // the starting node of the rules that follow. `@x!, 3` reaches here with
1139
+ // NORULE as its parent, because the root val closed early to let the
1140
+ // suffix take the completed prefix: the `elem` that should have collected
1141
+ // `3` was seeded with the list instead, `3` was dropped, and the list
1142
+ // ended up containing itself. The rule's own node is what the parse
1143
+ // returns at this depth, so skipping the write costs nothing.
1144
+ // The completed expression a top-level implicit list should start with.
1145
+ //
1146
+ // The rule that meets the separator is the last one prattify built, which
1147
+ // for a right-leaning tree is a SUB-expression: `1+2*3` leaves it holding
1148
+ // `[*,2,3]` while the finished `[+,1,[*,2,3]]` sits on the val this
1149
+ // expression publishes to, and on the outermost expr in the r:-
1150
+ // replacement chain. Seeding the list from the rule's own node therefore
1151
+ // dropped the `1+` — `1+2*3,4` parsed as `[[*,2,3],4]`, a wrong answer
1152
+ // with nothing to signal it. A flat first member (`1+2,3`) is unaffected,
1153
+ // because there the rule's node already IS the whole expression, which is
1154
+ // why this went unnoticed.
1155
+ //
1156
+ // Only a top-level bare list reaches here; `[1+2*3,4]`, `f(1+2*3,4)` and
1157
+ // `{a:1+2*3,b:4}` collect their members by other paths and were correct.
1158
+ function exprRoot(rule: Rule, ctx: Context) {
1159
+ const parent: any = rule.parent
1160
+
1161
+ if (parent && ctx.NORULE !== parent && isOp(parent.node)) {
1162
+ return parent.node
1163
+ }
1164
+
1165
+ // No usable parent — the NORULE case topList handles below. The
1166
+ // outermost expr in the chain holds the root; later entries are the
1167
+ // sub-expressions built under it.
1168
+ let root: any = undefined
1169
+ for (let cur: any = rule; null != cur && ctx.NORULE !== cur; cur = cur.prev) {
1170
+ if ('expr' === cur.name && isOp(cur.node)) {
1171
+ root = cur.node
1172
+ }
1173
+ }
1174
+
1175
+ return undefined === root ? rule.node : root
1176
+ }
1177
+
1178
+
1179
+ function topList(rule: Rule, ctx: Context) {
1180
+ const list = [exprRoot(rule, ctx)]
1181
+
1182
+ if (rule.parent && ctx.NORULE !== rule.parent) {
1183
+ rule.parent.node = list
1184
+ return list
1185
+ }
1186
+
1187
+ // No parent to publish to. The list is still built correctly by the
1188
+ // `elem` rules that follow, but nothing would ever read it: the result
1189
+ // came back as the first member alone, with `, 3` silently gone.
1190
+ //
1191
+ // Write it back along the r:-replacement chain instead, so whichever
1192
+ // rule `ctx.root().node` resolves to is holding this list — the same
1193
+ // approach the ternary close hook takes. Members appended later are
1194
+ // visible through it, because every writer shares this one array.
1195
+ for (let cur: any = rule; null != cur && ctx.NORULE !== cur; cur = cur.prev) {
1196
+ cur.node = list
1197
+ }
1198
+
1199
+ return list
1200
+ }
1201
+
1202
+
1084
1203
  function implicitList(rule: Rule, ctx: Context, a: any) {
1085
1204
  let paren: Rule | null = null
1205
+ let parenI = -1
1086
1206
 
1087
1207
  // Find the paren rule that contains this implicit list.
1088
1208
  // If a map or list rule sits between the expression and the paren,
@@ -1091,6 +1211,7 @@ function implicitList(rule: Rule, ctx: Context, a: any) {
1091
1211
  for (let rI = ctx.rsI - 1; -1 < rI; rI--) {
1092
1212
  if ('paren' === ctx.rs[rI].name) {
1093
1213
  paren = ctx.rs[rI]
1214
+ parenI = rI
1094
1215
  break
1095
1216
  }
1096
1217
  if ('map' === ctx.rs[rI].name || 'list' === ctx.rs[rI].name) {
@@ -1099,6 +1220,10 @@ function implicitList(rule: Rule, ctx: Context, a: any) {
1099
1220
  }
1100
1221
 
1101
1222
  if (paren) {
1223
+ // The node this expression contributes, captured before the
1224
+ // reassignment below replaces it with the list.
1225
+ const exprNode = rule.node
1226
+
1102
1227
  // Create a list value for the paren rule.
1103
1228
  if (null == paren.child.node) {
1104
1229
  paren.child.node = [rule.node]
@@ -1114,6 +1239,31 @@ function implicitList(rule: Rule, ctx: Context, a: any) {
1114
1239
  }
1115
1240
 
1116
1241
  rule.node = paren.child.node
1242
+
1243
+ // The rule that sees the comma is not always the paren's own child.
1244
+ // A first argument that nests operators — a prefix whose operand is
1245
+ // itself a prefix, `f(- -1, 2)` — leaves further rules on the stack
1246
+ // between the paren and this rule, all holding the same expression
1247
+ // node. Each writes that node back over the paren's when it closes,
1248
+ // discarding every element collected after the first: `f(- -1, 2)`
1249
+ // arrived as one argument, not two. Point them at the implicit list
1250
+ // so the close-back is a no-op instead of a truncation.
1251
+ //
1252
+ // Only the frames that carry this expression: the `expr` rules
1253
+ // themselves, and the `val` rules they were pushed from, which hold
1254
+ // either nothing yet or the expression node. A rule a host plugin
1255
+ // stacked in between has a node of its own to close with, and
1256
+ // overwriting it would destroy a value this plugin knows nothing
1257
+ // about.
1258
+ for (let rI = parenI + 1; rI < ctx.rsI; rI++) {
1259
+ const frame = ctx.rs[rI]
1260
+
1261
+ if ('expr' === frame.name ||
1262
+ ('val' === frame.name &&
1263
+ (null == frame.node || exprNode === frame.node || isOp(frame.node)))) {
1264
+ frame.node = paren.child.node
1265
+ }
1266
+ }
1117
1267
  }
1118
1268
 
1119
1269
  return a
@@ -1432,10 +1582,25 @@ function prattify(expr: any, op?: Op, whence?: string): any[] {
1432
1582
  }
1433
1583
 
1434
1584
 
1585
+ // Values `evaluate` has already produced. An implicit list is reduced a
1586
+ // member at a time as the members close, and again as a whole once the
1587
+ // list is complete, so without this a member's reduced value would be
1588
+ // handed back to `evaluate` a second time — and a callback that returns
1589
+ // another marked S-expression (an identity evaluator, a symbolic
1590
+ // rewriter) would transform it twice, making the result depend on the
1591
+ // member's position in the list. Weak, so an entry lasts only as long as
1592
+ // the value itself.
1593
+ const EVALUATED = new WeakSet<any>()
1594
+
1595
+
1435
1596
  function evaluation(rule: Rule, ctx: Context, expr: any, evaluate: Evaluate) {
1436
1597
  let out = expr ?? null
1437
1598
 
1438
- if (null != expr && isOp(expr)) {
1599
+ if (null == expr || EVALUATED.has(expr)) {
1600
+ return out
1601
+ }
1602
+
1603
+ if (isOp(expr)) {
1439
1604
  out = evaluate(
1440
1605
  rule,
1441
1606
  ctx,
@@ -1444,6 +1609,22 @@ function evaluation(rule: Rule, ctx: Context, expr: any, evaluate: Evaluate) {
1444
1609
  )
1445
1610
  }
1446
1611
 
1612
+ // An implicit list — `f(1+2, 3+4)`, `1+2, 3+4` — is a plain array, not
1613
+ // an op-array, so the branch above does not reach its members. Reduce
1614
+ // them, into a NEW array: this is a documented public entry point
1615
+ // (`ts/doc/reference.md`) and the parse-once/evaluate-many workflow in
1616
+ // `ts/doc/guide.md` needs a caller's tree to survive a reduction
1617
+ // intact. Where the list under construction must be updated in place,
1618
+ // the expr rule's close hook does that itself — mutating its own tree
1619
+ // is the parser's business, not this function's.
1620
+ else if (Array.isArray(expr)) {
1621
+ out = expr.map((term: any) => evaluation(rule, ctx, term, evaluate))
1622
+ }
1623
+
1624
+ if (null != out && 'object' === typeof out) {
1625
+ EVALUATED.add(out)
1626
+ }
1627
+
1447
1628
  // console.log('EXPR-EVAL', expr, '->', out)
1448
1629
 
1449
1630
  return out
@@ -1477,4 +1658,4 @@ export type { ExprOptions, OpDef, Op, Evaluate }
1477
1658
  // VERSION is this package's version. It MUST equal package.json "version":
1478
1659
  // the release orchestrator rewrites both, and the version test fails the
1479
1660
  // build if they drift. Mirrors `const VERSION` in go/expr.go.
1480
- const VERSION = '0.5.2'
1661
+ const VERSION = '0.5.5'