@tabnas/expr 0.5.1 → 0.5.4
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 +1 -1
- package/dist/expr.js +118 -5
- package/dist/expr.js.map +1 -1
- package/package.json +5 -4
- package/src/expr.ts +141 -5
package/dist/expr.d.ts
CHANGED
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.
|
|
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.
|
|
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,6 +604,25 @@ 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
628
|
r.parent.node = out;
|
|
@@ -892,8 +921,39 @@ function makeCloseParen(parenCTM) {
|
|
|
892
921
|
}
|
|
893
922
|
};
|
|
894
923
|
}
|
|
924
|
+
// Start a top-level implicit list, publishing it to the rule's parent —
|
|
925
|
+
// unless that parent is the NORULE sentinel.
|
|
926
|
+
//
|
|
927
|
+
// NORULE carries a `node` like any other rule, and a rule seeds its node
|
|
928
|
+
// from its parent, so a list written there is handed straight back out as
|
|
929
|
+
// the starting node of the rules that follow. `@x!, 3` reaches here with
|
|
930
|
+
// NORULE as its parent, because the root val closed early to let the
|
|
931
|
+
// suffix take the completed prefix: the `elem` that should have collected
|
|
932
|
+
// `3` was seeded with the list instead, `3` was dropped, and the list
|
|
933
|
+
// ended up containing itself. The rule's own node is what the parse
|
|
934
|
+
// returns at this depth, so skipping the write costs nothing.
|
|
935
|
+
function topList(rule, ctx) {
|
|
936
|
+
const list = [rule.node];
|
|
937
|
+
if (rule.parent && ctx.NORULE !== rule.parent) {
|
|
938
|
+
rule.parent.node = list;
|
|
939
|
+
return list;
|
|
940
|
+
}
|
|
941
|
+
// No parent to publish to. The list is still built correctly by the
|
|
942
|
+
// `elem` rules that follow, but nothing would ever read it: the result
|
|
943
|
+
// came back as the first member alone, with `, 3` silently gone.
|
|
944
|
+
//
|
|
945
|
+
// Write it back along the r:-replacement chain instead, so whichever
|
|
946
|
+
// rule `ctx.root().node` resolves to is holding this list — the same
|
|
947
|
+
// approach the ternary close hook takes. Members appended later are
|
|
948
|
+
// visible through it, because every writer shares this one array.
|
|
949
|
+
for (let cur = rule; null != cur && ctx.NORULE !== cur; cur = cur.prev) {
|
|
950
|
+
cur.node = list;
|
|
951
|
+
}
|
|
952
|
+
return list;
|
|
953
|
+
}
|
|
895
954
|
function implicitList(rule, ctx, a) {
|
|
896
955
|
let paren = null;
|
|
956
|
+
let parenI = -1;
|
|
897
957
|
// Find the paren rule that contains this implicit list.
|
|
898
958
|
// If a map or list rule sits between the expression and the paren,
|
|
899
959
|
// the expression is inside a contained value — not a direct paren
|
|
@@ -901,6 +961,7 @@ function implicitList(rule, ctx, a) {
|
|
|
901
961
|
for (let rI = ctx.rsI - 1; -1 < rI; rI--) {
|
|
902
962
|
if ('paren' === ctx.rs[rI].name) {
|
|
903
963
|
paren = ctx.rs[rI];
|
|
964
|
+
parenI = rI;
|
|
904
965
|
break;
|
|
905
966
|
}
|
|
906
967
|
if ('map' === ctx.rs[rI].name || 'list' === ctx.rs[rI].name) {
|
|
@@ -908,6 +969,9 @@ function implicitList(rule, ctx, a) {
|
|
|
908
969
|
}
|
|
909
970
|
}
|
|
910
971
|
if (paren) {
|
|
972
|
+
// The node this expression contributes, captured before the
|
|
973
|
+
// reassignment below replaces it with the list.
|
|
974
|
+
const exprNode = rule.node;
|
|
911
975
|
// Create a list value for the paren rule.
|
|
912
976
|
if (null == paren.child.node) {
|
|
913
977
|
paren.child.node = [rule.node];
|
|
@@ -921,6 +985,29 @@ function implicitList(rule, ctx, a) {
|
|
|
921
985
|
a.b = 0;
|
|
922
986
|
}
|
|
923
987
|
rule.node = paren.child.node;
|
|
988
|
+
// The rule that sees the comma is not always the paren's own child.
|
|
989
|
+
// A first argument that nests operators — a prefix whose operand is
|
|
990
|
+
// itself a prefix, `f(- -1, 2)` — leaves further rules on the stack
|
|
991
|
+
// between the paren and this rule, all holding the same expression
|
|
992
|
+
// node. Each writes that node back over the paren's when it closes,
|
|
993
|
+
// discarding every element collected after the first: `f(- -1, 2)`
|
|
994
|
+
// arrived as one argument, not two. Point them at the implicit list
|
|
995
|
+
// so the close-back is a no-op instead of a truncation.
|
|
996
|
+
//
|
|
997
|
+
// Only the frames that carry this expression: the `expr` rules
|
|
998
|
+
// themselves, and the `val` rules they were pushed from, which hold
|
|
999
|
+
// either nothing yet or the expression node. A rule a host plugin
|
|
1000
|
+
// stacked in between has a node of its own to close with, and
|
|
1001
|
+
// overwriting it would destroy a value this plugin knows nothing
|
|
1002
|
+
// about.
|
|
1003
|
+
for (let rI = parenI + 1; rI < ctx.rsI; rI++) {
|
|
1004
|
+
const frame = ctx.rs[rI];
|
|
1005
|
+
if ('expr' === frame.name ||
|
|
1006
|
+
('val' === frame.name &&
|
|
1007
|
+
(null == frame.node || exprNode === frame.node || isOp(frame.node)))) {
|
|
1008
|
+
frame.node = paren.child.node;
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
924
1011
|
}
|
|
925
1012
|
return a;
|
|
926
1013
|
}
|
|
@@ -1192,11 +1279,37 @@ function prattify(expr, op, whence) {
|
|
|
1192
1279
|
// console.log('PRATT-END', whence, p(out), op?.name)
|
|
1193
1280
|
return out;
|
|
1194
1281
|
}
|
|
1282
|
+
// Values `evaluate` has already produced. An implicit list is reduced a
|
|
1283
|
+
// member at a time as the members close, and again as a whole once the
|
|
1284
|
+
// list is complete, so without this a member's reduced value would be
|
|
1285
|
+
// handed back to `evaluate` a second time — and a callback that returns
|
|
1286
|
+
// another marked S-expression (an identity evaluator, a symbolic
|
|
1287
|
+
// rewriter) would transform it twice, making the result depend on the
|
|
1288
|
+
// member's position in the list. Weak, so an entry lasts only as long as
|
|
1289
|
+
// the value itself.
|
|
1290
|
+
const EVALUATED = new WeakSet();
|
|
1195
1291
|
function evaluation(rule, ctx, expr, evaluate) {
|
|
1196
1292
|
let out = expr ?? null;
|
|
1197
|
-
if (null
|
|
1293
|
+
if (null == expr || EVALUATED.has(expr)) {
|
|
1294
|
+
return out;
|
|
1295
|
+
}
|
|
1296
|
+
if (isOp(expr)) {
|
|
1198
1297
|
out = evaluate(rule, ctx, expr[0], expr.slice(1).map((term) => evaluation(rule, ctx, term, evaluate)));
|
|
1199
1298
|
}
|
|
1299
|
+
// An implicit list — `f(1+2, 3+4)`, `1+2, 3+4` — is a plain array, not
|
|
1300
|
+
// an op-array, so the branch above does not reach its members. Reduce
|
|
1301
|
+
// them, into a NEW array: this is a documented public entry point
|
|
1302
|
+
// (`ts/doc/reference.md`) and the parse-once/evaluate-many workflow in
|
|
1303
|
+
// `ts/doc/guide.md` needs a caller's tree to survive a reduction
|
|
1304
|
+
// intact. Where the list under construction must be updated in place,
|
|
1305
|
+
// the expr rule's close hook does that itself — mutating its own tree
|
|
1306
|
+
// is the parser's business, not this function's.
|
|
1307
|
+
else if (Array.isArray(expr)) {
|
|
1308
|
+
out = expr.map((term) => evaluation(rule, ctx, term, evaluate));
|
|
1309
|
+
}
|
|
1310
|
+
if (null != out && 'object' === typeof out) {
|
|
1311
|
+
EVALUATED.add(out);
|
|
1312
|
+
}
|
|
1200
1313
|
// console.log('EXPR-EVAL', expr, '->', out)
|
|
1201
1314
|
return out;
|
|
1202
1315
|
}
|
|
@@ -1221,6 +1334,6 @@ exports.testing = testing;
|
|
|
1221
1334
|
// VERSION is this package's version. It MUST equal package.json "version":
|
|
1222
1335
|
// the release orchestrator rewrites both, and the version test fails the
|
|
1223
1336
|
// build if they drift. Mirrors `const VERSION` in go/expr.go.
|
|
1224
|
-
const VERSION = '0.5.
|
|
1337
|
+
const VERSION = '0.5.4';
|
|
1225
1338
|
exports.VERSION = VERSION;
|
|
1226
1339
|
//# 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.
|
|
3
|
+
"version": "0.5.4",
|
|
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
|
|
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
|
|
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
|
-
"@
|
|
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.
|
|
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.
|
|
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
|
|
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,
|
|
@@ -1081,8 +1120,44 @@ function makeCloseParen(parenCTM: OpMap) {
|
|
|
1081
1120
|
}
|
|
1082
1121
|
|
|
1083
1122
|
|
|
1123
|
+
// Start a top-level implicit list, publishing it to the rule's parent —
|
|
1124
|
+
// unless that parent is the NORULE sentinel.
|
|
1125
|
+
//
|
|
1126
|
+
// NORULE carries a `node` like any other rule, and a rule seeds its node
|
|
1127
|
+
// from its parent, so a list written there is handed straight back out as
|
|
1128
|
+
// the starting node of the rules that follow. `@x!, 3` reaches here with
|
|
1129
|
+
// NORULE as its parent, because the root val closed early to let the
|
|
1130
|
+
// suffix take the completed prefix: the `elem` that should have collected
|
|
1131
|
+
// `3` was seeded with the list instead, `3` was dropped, and the list
|
|
1132
|
+
// ended up containing itself. The rule's own node is what the parse
|
|
1133
|
+
// returns at this depth, so skipping the write costs nothing.
|
|
1134
|
+
function topList(rule: Rule, ctx: Context) {
|
|
1135
|
+
const list = [rule.node]
|
|
1136
|
+
|
|
1137
|
+
if (rule.parent && ctx.NORULE !== rule.parent) {
|
|
1138
|
+
rule.parent.node = list
|
|
1139
|
+
return list
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
// No parent to publish to. The list is still built correctly by the
|
|
1143
|
+
// `elem` rules that follow, but nothing would ever read it: the result
|
|
1144
|
+
// came back as the first member alone, with `, 3` silently gone.
|
|
1145
|
+
//
|
|
1146
|
+
// Write it back along the r:-replacement chain instead, so whichever
|
|
1147
|
+
// rule `ctx.root().node` resolves to is holding this list — the same
|
|
1148
|
+
// approach the ternary close hook takes. Members appended later are
|
|
1149
|
+
// visible through it, because every writer shares this one array.
|
|
1150
|
+
for (let cur: any = rule; null != cur && ctx.NORULE !== cur; cur = cur.prev) {
|
|
1151
|
+
cur.node = list
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
return list
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
|
|
1084
1158
|
function implicitList(rule: Rule, ctx: Context, a: any) {
|
|
1085
1159
|
let paren: Rule | null = null
|
|
1160
|
+
let parenI = -1
|
|
1086
1161
|
|
|
1087
1162
|
// Find the paren rule that contains this implicit list.
|
|
1088
1163
|
// If a map or list rule sits between the expression and the paren,
|
|
@@ -1091,6 +1166,7 @@ function implicitList(rule: Rule, ctx: Context, a: any) {
|
|
|
1091
1166
|
for (let rI = ctx.rsI - 1; -1 < rI; rI--) {
|
|
1092
1167
|
if ('paren' === ctx.rs[rI].name) {
|
|
1093
1168
|
paren = ctx.rs[rI]
|
|
1169
|
+
parenI = rI
|
|
1094
1170
|
break
|
|
1095
1171
|
}
|
|
1096
1172
|
if ('map' === ctx.rs[rI].name || 'list' === ctx.rs[rI].name) {
|
|
@@ -1099,6 +1175,10 @@ function implicitList(rule: Rule, ctx: Context, a: any) {
|
|
|
1099
1175
|
}
|
|
1100
1176
|
|
|
1101
1177
|
if (paren) {
|
|
1178
|
+
// The node this expression contributes, captured before the
|
|
1179
|
+
// reassignment below replaces it with the list.
|
|
1180
|
+
const exprNode = rule.node
|
|
1181
|
+
|
|
1102
1182
|
// Create a list value for the paren rule.
|
|
1103
1183
|
if (null == paren.child.node) {
|
|
1104
1184
|
paren.child.node = [rule.node]
|
|
@@ -1114,6 +1194,31 @@ function implicitList(rule: Rule, ctx: Context, a: any) {
|
|
|
1114
1194
|
}
|
|
1115
1195
|
|
|
1116
1196
|
rule.node = paren.child.node
|
|
1197
|
+
|
|
1198
|
+
// The rule that sees the comma is not always the paren's own child.
|
|
1199
|
+
// A first argument that nests operators — a prefix whose operand is
|
|
1200
|
+
// itself a prefix, `f(- -1, 2)` — leaves further rules on the stack
|
|
1201
|
+
// between the paren and this rule, all holding the same expression
|
|
1202
|
+
// node. Each writes that node back over the paren's when it closes,
|
|
1203
|
+
// discarding every element collected after the first: `f(- -1, 2)`
|
|
1204
|
+
// arrived as one argument, not two. Point them at the implicit list
|
|
1205
|
+
// so the close-back is a no-op instead of a truncation.
|
|
1206
|
+
//
|
|
1207
|
+
// Only the frames that carry this expression: the `expr` rules
|
|
1208
|
+
// themselves, and the `val` rules they were pushed from, which hold
|
|
1209
|
+
// either nothing yet or the expression node. A rule a host plugin
|
|
1210
|
+
// stacked in between has a node of its own to close with, and
|
|
1211
|
+
// overwriting it would destroy a value this plugin knows nothing
|
|
1212
|
+
// about.
|
|
1213
|
+
for (let rI = parenI + 1; rI < ctx.rsI; rI++) {
|
|
1214
|
+
const frame = ctx.rs[rI]
|
|
1215
|
+
|
|
1216
|
+
if ('expr' === frame.name ||
|
|
1217
|
+
('val' === frame.name &&
|
|
1218
|
+
(null == frame.node || exprNode === frame.node || isOp(frame.node)))) {
|
|
1219
|
+
frame.node = paren.child.node
|
|
1220
|
+
}
|
|
1221
|
+
}
|
|
1117
1222
|
}
|
|
1118
1223
|
|
|
1119
1224
|
return a
|
|
@@ -1432,10 +1537,25 @@ function prattify(expr: any, op?: Op, whence?: string): any[] {
|
|
|
1432
1537
|
}
|
|
1433
1538
|
|
|
1434
1539
|
|
|
1540
|
+
// Values `evaluate` has already produced. An implicit list is reduced a
|
|
1541
|
+
// member at a time as the members close, and again as a whole once the
|
|
1542
|
+
// list is complete, so without this a member's reduced value would be
|
|
1543
|
+
// handed back to `evaluate` a second time — and a callback that returns
|
|
1544
|
+
// another marked S-expression (an identity evaluator, a symbolic
|
|
1545
|
+
// rewriter) would transform it twice, making the result depend on the
|
|
1546
|
+
// member's position in the list. Weak, so an entry lasts only as long as
|
|
1547
|
+
// the value itself.
|
|
1548
|
+
const EVALUATED = new WeakSet<any>()
|
|
1549
|
+
|
|
1550
|
+
|
|
1435
1551
|
function evaluation(rule: Rule, ctx: Context, expr: any, evaluate: Evaluate) {
|
|
1436
1552
|
let out = expr ?? null
|
|
1437
1553
|
|
|
1438
|
-
if (null
|
|
1554
|
+
if (null == expr || EVALUATED.has(expr)) {
|
|
1555
|
+
return out
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
if (isOp(expr)) {
|
|
1439
1559
|
out = evaluate(
|
|
1440
1560
|
rule,
|
|
1441
1561
|
ctx,
|
|
@@ -1444,6 +1564,22 @@ function evaluation(rule: Rule, ctx: Context, expr: any, evaluate: Evaluate) {
|
|
|
1444
1564
|
)
|
|
1445
1565
|
}
|
|
1446
1566
|
|
|
1567
|
+
// An implicit list — `f(1+2, 3+4)`, `1+2, 3+4` — is a plain array, not
|
|
1568
|
+
// an op-array, so the branch above does not reach its members. Reduce
|
|
1569
|
+
// them, into a NEW array: this is a documented public entry point
|
|
1570
|
+
// (`ts/doc/reference.md`) and the parse-once/evaluate-many workflow in
|
|
1571
|
+
// `ts/doc/guide.md` needs a caller's tree to survive a reduction
|
|
1572
|
+
// intact. Where the list under construction must be updated in place,
|
|
1573
|
+
// the expr rule's close hook does that itself — mutating its own tree
|
|
1574
|
+
// is the parser's business, not this function's.
|
|
1575
|
+
else if (Array.isArray(expr)) {
|
|
1576
|
+
out = expr.map((term: any) => evaluation(rule, ctx, term, evaluate))
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
if (null != out && 'object' === typeof out) {
|
|
1580
|
+
EVALUATED.add(out)
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1447
1583
|
// console.log('EXPR-EVAL', expr, '->', out)
|
|
1448
1584
|
|
|
1449
1585
|
return out
|
|
@@ -1477,4 +1613,4 @@ export type { ExprOptions, OpDef, Op, Evaluate }
|
|
|
1477
1613
|
// VERSION is this package's version. It MUST equal package.json "version":
|
|
1478
1614
|
// the release orchestrator rewrites both, and the version test fails the
|
|
1479
1615
|
// build if they drift. Mirrors `const VERSION` in go/expr.go.
|
|
1480
|
-
const VERSION = '0.5.
|
|
1616
|
+
const VERSION = '0.5.4'
|