aontu 0.41.0 → 0.43.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.
Files changed (79) hide show
  1. package/dist/ctx.d.ts +5 -2
  2. package/dist/ctx.js +2 -1
  3. package/dist/ctx.js.map +1 -1
  4. package/dist/lang.d.ts +5 -1
  5. package/dist/lang.js +100 -24
  6. package/dist/lang.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/dist/type.d.ts +5 -0
  9. package/dist/type.js.map +1 -1
  10. package/dist/unify.js +292 -13
  11. package/dist/unify.js.map +1 -1
  12. package/dist/utility.js +6 -2
  13. package/dist/utility.js.map +1 -1
  14. package/dist/val/BagVal.d.ts +0 -3
  15. package/dist/val/BagVal.js +6 -6
  16. package/dist/val/BagVal.js.map +1 -1
  17. package/dist/val/ConjunctVal.d.ts +1 -1
  18. package/dist/val/ConjunctVal.js +137 -14
  19. package/dist/val/ConjunctVal.js.map +1 -1
  20. package/dist/val/CopyFuncVal.js +3 -2
  21. package/dist/val/CopyFuncVal.js.map +1 -1
  22. package/dist/val/DisjunctVal.js +4 -0
  23. package/dist/val/DisjunctVal.js.map +1 -1
  24. package/dist/val/ExpectVal.js +16 -3
  25. package/dist/val/ExpectVal.js.map +1 -1
  26. package/dist/val/JunctionVal.d.ts +1 -0
  27. package/dist/val/JunctionVal.js +6 -1
  28. package/dist/val/JunctionVal.js.map +1 -1
  29. package/dist/val/KeyFuncVal.js +0 -2
  30. package/dist/val/KeyFuncVal.js.map +1 -1
  31. package/dist/val/ListVal.d.ts +1 -0
  32. package/dist/val/ListVal.js +33 -66
  33. package/dist/val/ListVal.js.map +1 -1
  34. package/dist/val/MapVal.d.ts +3 -2
  35. package/dist/val/MapVal.js +67 -95
  36. package/dist/val/MapVal.js.map +1 -1
  37. package/dist/val/MoveFuncVal.d.ts +2 -1
  38. package/dist/val/MoveFuncVal.js +78 -13
  39. package/dist/val/MoveFuncVal.js.map +1 -1
  40. package/dist/val/PathFuncVal.js +25 -4
  41. package/dist/val/PathFuncVal.js.map +1 -1
  42. package/dist/val/{RefVal.d.ts → PathVal.d.ts} +4 -3
  43. package/dist/val/{RefVal.js → PathVal.js} +75 -77
  44. package/dist/val/PathVal.js.map +1 -0
  45. package/dist/val/PlusOpVal.d.ts +1 -1
  46. package/dist/val/PrefVal.js +18 -5
  47. package/dist/val/PrefVal.js.map +1 -1
  48. package/dist/val/SpreadVal.d.ts +20 -0
  49. package/dist/val/SpreadVal.js +194 -0
  50. package/dist/val/SpreadVal.js.map +1 -0
  51. package/dist/val/Val.d.ts +2 -1
  52. package/dist/val/Val.js +7 -8
  53. package/dist/val/Val.js.map +1 -1
  54. package/dist/val/VarVal.js +2 -2
  55. package/dist/val/VarVal.js.map +1 -1
  56. package/package.json +5 -6
  57. package/src/ctx.ts +16 -3
  58. package/src/lang.ts +113 -23
  59. package/src/type.ts +5 -0
  60. package/src/unify.ts +310 -13
  61. package/src/utility.ts +5 -2
  62. package/src/val/BagVal.ts +6 -7
  63. package/src/val/ConjunctVal.ts +131 -13
  64. package/src/val/CopyFuncVal.ts +3 -2
  65. package/src/val/DisjunctVal.ts +6 -0
  66. package/src/val/ExpectVal.ts +18 -4
  67. package/src/val/JunctionVal.ts +5 -1
  68. package/src/val/KeyFuncVal.ts +0 -3
  69. package/src/val/ListVal.ts +38 -88
  70. package/src/val/MapVal.ts +75 -124
  71. package/src/val/MoveFuncVal.ts +79 -14
  72. package/src/val/PathFuncVal.ts +29 -4
  73. package/src/val/PathVal.ts +435 -0
  74. package/src/val/PrefVal.ts +19 -6
  75. package/src/val/{RefVal.ts → RefVal.ts.old} +30 -19
  76. package/src/val/SpreadVal.ts +275 -0
  77. package/src/val/Val.ts +9 -9
  78. package/src/val/VarVal.ts +2 -2
  79. package/dist/val/RefVal.js.map +0 -1
@@ -10,6 +10,58 @@ const err_2 = require("../err");
10
10
  const JunctionVal_1 = require("./JunctionVal");
11
11
  const utility_1 = require("../utility");
12
12
  const top_1 = require("./top");
13
+ const MapVal_1 = require("./MapVal");
14
+ // Shallow merge two MapVals: combine keys without deep unification.
15
+ // For shared keys, merge child terms from both maps into one ConjunctVal
16
+ // so spreads at that level see all children from both terms.
17
+ function shallowMerge(a, b, ctx) {
18
+ const out = new MapVal_1.MapVal({ peg: {} }, ctx);
19
+ out.site = a.site;
20
+ out.closed = a.closed || b.closed;
21
+ out.optionalKeys = [...a.optionalKeys];
22
+ for (const k of b.optionalKeys) {
23
+ if (!out.optionalKeys.includes(k))
24
+ out.optionalKeys.push(k);
25
+ }
26
+ let done = true;
27
+ // Copy all keys from a
28
+ for (const k in a.peg) {
29
+ out.peg[k] = a.peg[k];
30
+ }
31
+ // Merge keys from b
32
+ for (const k in b.peg) {
33
+ if (k in out.peg) {
34
+ const av = out.peg[k];
35
+ const bv = b.peg[k];
36
+ // Flatten both sides' terms into a single ConjunctVal
37
+ const terms = [];
38
+ if (av.isConjunct) {
39
+ terms.push(...av.peg);
40
+ }
41
+ else {
42
+ terms.push(av);
43
+ }
44
+ if (bv.isConjunct) {
45
+ terms.push(...bv.peg);
46
+ }
47
+ else {
48
+ terms.push(bv);
49
+ }
50
+ out.peg[k] = new ConjunctVal({ peg: terms }, ctx);
51
+ done = false;
52
+ }
53
+ else {
54
+ out.peg[k] = b.peg[k];
55
+ }
56
+ }
57
+ for (const k in out.peg) {
58
+ done = done && (type_1.DONE === out.peg[k]?.dc);
59
+ }
60
+ out.dc = done ? type_1.DONE : 1;
61
+ (0, utility_1.propagateMarks)(a, out);
62
+ (0, utility_1.propagateMarks)(b, out);
63
+ return out;
64
+ }
13
65
  // TODO: move main logic to op/conjunct
14
66
  class ConjunctVal extends JunctionVal_1.JunctionVal {
15
67
  constructor(spec, ctx) {
@@ -35,6 +87,10 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
35
87
  }
36
88
  unify(peer, ctx) {
37
89
  peer = peer ?? (0, top_1.top)();
90
+ // Fast path: done conjunct self-unifying with TOP.
91
+ if (this.done && peer.isTop) {
92
+ return this;
93
+ }
38
94
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Conjunct', this, peer);
39
95
  let done = true;
40
96
  this.peg = norm(this.peg);
@@ -52,8 +108,13 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
52
108
  this.peg[vI].mark.type = newtype;
53
109
  this.peg[vI].mark.hide = newhide;
54
110
  // console.log('CONJUNCT-TERM', this.id, vI, this.peg[vI].canon)
111
+ // Defer unify-with-TOP for map terms with spreads when other
112
+ // map terms exist — the shallow merge fold handles them instead.
113
+ const hasMapPeers = this.peg.length > 1 && this.peg[vI].isMap &&
114
+ this.peg.some((p, i) => i !== vI && p.isMap);
55
115
  upeer[vI] = (this.peg[vI].done && peer.isTop) ? this.peg[vI] :
56
- (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'OWN') }) : ctx, this.peg[vI], peer, 'cj-own');
116
+ (hasMapPeers && hasSpreads(this.peg[vI])) ? this.peg[vI] :
117
+ (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'OWN') }) : ctx, this.peg[vI], peer, 'cj-own');
57
118
  upeer[vI].mark.type = newtype = newtype || upeer[vI].mark.type;
58
119
  upeer[vI].mark.hide = newhide = newhide || upeer[vI].mark.hide;
59
120
  // let prevdone = done
@@ -69,7 +130,22 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
69
130
  }
70
131
  }
71
132
  upeer = norm(upeer);
72
- // console.log('CONJUNCT-UPEER', this.id, upeer.map((v: Val) => v.canon))
133
+ // Stable partition: fold pure terms first, spread-bearing terms
134
+ // last. Pure terms (no spreads, no path-dependent functions)
135
+ // unify cheaply. Dynamic terms are then folded in, applying
136
+ // spread constraints once to the merged result rather than
137
+ // incrementally at every intermediate fold step.
138
+ const pure = [];
139
+ const dyn = [];
140
+ for (const term of upeer) {
141
+ if (term.isPathDependent || hasSpreads(term)) {
142
+ dyn.push(term);
143
+ }
144
+ else {
145
+ pure.push(term);
146
+ }
147
+ }
148
+ upeer = pure.concat(dyn);
73
149
  // Unify terms against each other
74
150
  let outvals = [];
75
151
  let val;
@@ -85,21 +161,31 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
85
161
  }
86
162
  // Can't unite with a RefVal, unless also a RefVal with same path.
87
163
  // else if (t0 instanceof RefVal && !(t1 instanceof RefVal)) {
88
- else if (t0.isRef && !(t1.isRef)) {
164
+ else if (t0.isPath && !(t1.isPath)) {
89
165
  outvals.push(t0);
90
166
  t0 = t1;
91
167
  }
92
- else if (t1.isRef && !(t0.isRef)) {
168
+ else if (t1.isPath && !(t0.isPath)) {
93
169
  outvals.push(t0);
94
170
  t0 = t1;
95
171
  }
172
+ // Shallow merge: when both are maps AND the conjunct contains spreads,
173
+ // combine keys into inner ConjunctVals instead of deep unification.
174
+ // This ensures spreads see ALL children across terms before being applied.
175
+ else if (t0.isMap && t1.isMap && (hasSpreads(t0) || hasSpreads(t1))) {
176
+ const merged = shallowMerge(t0, t1, ctx);
177
+ done = done && type_1.DONE === merged.dc;
178
+ newtype = this.mark.type || merged.mark.type;
179
+ newhide = this.mark.hide || merged.mark.hide;
180
+ t0 = merged;
181
+ }
96
182
  else {
97
183
  val = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'DEF') }) : ctx, t0, t1, 'cj-peer-t0t1');
98
184
  // console.log('CONJUNCT-T', t0.canon, t1?.canon, '->', val.canon)
99
185
  done = done && type_1.DONE === val.dc;
100
186
  newtype = this.mark.type || val.mark.type;
101
187
  newhide = this.mark.hide || val.mark.hide;
102
- // Unite was just a conjunt anyway, so discard.
188
+ // Unite was just a conjunct anyway, so discard.
103
189
  if (val.isConjunct) {
104
190
  outvals.push(t0);
105
191
  t0 = t1;
@@ -140,6 +226,16 @@ class ConjunctVal extends JunctionVal_1.JunctionVal {
140
226
  return '&';
141
227
  }
142
228
  gen(ctx) {
229
+ // If this conjunct contains a SpreadVal + a generable Val,
230
+ // gen the generable Val (spread is an unresolved constraint
231
+ // that's a no-op at gen time — e.g., empty map with spread).
232
+ if (this.peg.length === 2) {
233
+ const [a, b] = this.peg;
234
+ if (a.isSpread && b.isGenable)
235
+ return b.gen(ctx);
236
+ if (b.isSpread && a.isGenable)
237
+ return a.gen(ctx);
238
+ }
143
239
  // Unresolved conjunct cannot be generated, so always an error.
144
240
  let nil = (0, err_1.makeNilErr)(ctx, 'conjunct', this, // (formatPath(this.peg, this.absolute) as any),
145
241
  undefined);
@@ -161,18 +257,17 @@ exports.ConjunctVal = ConjunctVal;
161
257
  // - consistent sorting of terms
162
258
  function norm(terms) {
163
259
  let expand = [];
164
- for (let tI = 0, pI = 0; tI < terms.length; tI++, pI++) {
165
- if (terms[tI].isConjunct) {
166
- const cterms = terms[tI].peg;
167
- for (let cI = 0; cI < cterms.length; cI++) {
168
- expand[pI + cI] = cterms[cI];
260
+ function flattenTerms(terms) {
261
+ for (let tI = 0; tI < terms.length; tI++) {
262
+ if (terms[tI].isConjunct) {
263
+ flattenTerms(terms[tI].peg);
264
+ }
265
+ else {
266
+ expand.push(terms[tI]);
169
267
  }
170
- pI += cterms.length - 1;
171
- }
172
- else {
173
- expand[pI] = terms[tI];
174
268
  }
175
269
  }
270
+ flattenTerms(terms);
176
271
  // Consistent ordering ensures order independent unification.
177
272
  // Skip sort when already in order (common case).
178
273
  let sorted = true;
@@ -188,4 +283,32 @@ function norm(terms) {
188
283
  // console.log('NORM', expand.map(t => t.canon).join(', '))
189
284
  return expand;
190
285
  }
286
+ // Check if a Val tree contains any SpreadVal constraints.
287
+ // Cached on _hasSpreads for performance.
288
+ function hasSpreads(v) {
289
+ if (v._hasSpreads !== undefined)
290
+ return v._hasSpreads;
291
+ let result = false;
292
+ if (v.isSpread) {
293
+ result = true;
294
+ }
295
+ else if (v.isMap || v.isList) {
296
+ for (const k in v.peg) {
297
+ if (v.peg[k]?.isVal && hasSpreads(v.peg[k])) {
298
+ result = true;
299
+ break;
300
+ }
301
+ }
302
+ }
303
+ else if (v.isJunction) {
304
+ for (const p of v.peg) {
305
+ if (p?.isVal && hasSpreads(p)) {
306
+ result = true;
307
+ break;
308
+ }
309
+ }
310
+ }
311
+ v._hasSpreads = result;
312
+ return result;
313
+ }
191
314
  //# sourceMappingURL=ConjunctVal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,10 @@ class CopyFuncVal extends FuncBaseVal_1.FuncBaseVal {
27
27
  (0, err_1.makeNilErr)(ctx, 'invalid-arg', this) :
28
28
  val.clone(ctx);
29
29
  // console.log('CR', out)
30
- if (!out.isRef) {
30
+ if (!out.isPath) {
31
+ out.mark.type = false;
32
+ out.mark.hide = false;
31
33
  (0, utility_1.walk)(out, (_key, val) => {
32
- // console.log('WALK', val)
33
34
  val.mark.type = false;
34
35
  val.mark.hide = false;
35
36
  return val;
@@ -1 +1 @@
1
- {"version":3,"file":"CopyFuncVal.js","sourceRoot":"","sources":["../../src/val/CopyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gCAAmC;AAKnC,wCAEmB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QASf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAGD,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;YACtC,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhB,yBAAyB;QAEzB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,2BAA2B;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,gDAAgD;QAEhD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAIC,kCAAW"}
1
+ {"version":3,"file":"CopyFuncVal.js","sourceRoot":"","sources":["../../src/val/CopyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gCAAmC;AAKnC,wCAEmB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QASf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAGD,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;YACtC,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhB,yBAAyB;QAEzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;YACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;YACrB,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;gBACrB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,gDAAgD;QAEhD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAIC,kCAAW"}
@@ -28,6 +28,10 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
28
28
  }
29
29
  unify(peer, ctx) {
30
30
  peer = peer ?? (0, top_1.top)();
31
+ // Fast path: already-done disjunct unifying with TOP.
32
+ if (this.done && peer.isTop) {
33
+ return this;
34
+ }
31
35
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Disjunct', this, peer);
32
36
  if (!this.prefsRanked) {
33
37
  this.rankPrefs(ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,22 @@ class ExpectVal extends FeatureVal_1.FeatureVal {
18
18
  if (!peer.isTop) {
19
19
  this.peer = undefined === this.peer ? peer :
20
20
  (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEER') }) : ctx, this.peer, peer, 'expect-peer');
21
- const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, this.peer, this.peg, 'expect-self');
22
- if (peeru.isGenable) {
23
- out = peeru;
21
+ // Unwrap nested ExpectVals to prevent infinite recursion
22
+ let peg = this.peg;
23
+ while (peg?.isExpect) {
24
+ peg = peg.peg;
25
+ }
26
+ // Guard against re-entrant recursion
27
+ if (this._expectDepth > 0) {
28
+ out.dc = this.dc + 1;
29
+ }
30
+ else {
31
+ this._expectDepth = (this._expectDepth || 0) + 1;
32
+ const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, this.peer, peg, 'expect-self');
33
+ this._expectDepth--;
34
+ if (peeru.isGenable) {
35
+ out = peeru;
36
+ }
24
37
  }
25
38
  }
26
39
  out.dc = type_1.DONE;
@@ -1 +1 @@
1
- {"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,wCAKmB;AAEnB,gCAAmC;AAGnC,6CAAyC;AAGzC,MAAM,SAAU,SAAQ,uBAAU;IAOhC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,aAAQ,GAAG,IAAI,CAAA;IAWf,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE7E,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;YAE1F,MAAM,KAAK,GACT,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;YAEhG,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,GAAG,GAAG,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,WAAI,CAAA;QAEb,GAAG,CAAC,OAAO,IAAI,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACV,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGD,UAAU,CAAC,CAAU;QACnB,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG;YACtB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CAEF;AAIC,8BAAS"}
1
+ {"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,wCAKmB;AAEnB,gCAAmC;AAGnC,6CAAyC;AAGzC,MAAM,SAAU,SAAQ,uBAAU;IAOhC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAVlB,aAAQ,GAAG,IAAI,CAAA;IAWf,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE7E,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;YAE1F,yDAAyD;YACzD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YAClB,OAAO,GAAG,EAAE,QAAQ,EAAE,CAAC;gBACrB,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;YACf,CAAC;YAED,qCAAqC;YACrC,IAAK,IAAY,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;YACtB,CAAC;iBACI,CAAC;gBACH,IAAY,CAAC,YAAY,GAAG,CAAE,IAAY,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAClE,MAAM,KAAK,GACT,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,aAAa,CAAC,CAC1F;gBAAC,IAAY,CAAC,YAAY,EAAE,CAAA;gBAE7B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,GAAG,GAAG,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,WAAI,CAAA;QAEb,GAAG,CAAC,OAAO,IAAI,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,6DAA6D;QAC7D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,QAAQ,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,IAAI,CACV,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAGD,UAAU,CAAC,CAAU;QACnB,OAAO,MAAM,GAAG,IAAI,CAAC,GAAG;YACtB,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9B,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CAEF;AAIC,8BAAS"}
@@ -3,6 +3,7 @@ import { AontuContext } from '../ctx';
3
3
  import { FeatureVal } from './FeatureVal';
4
4
  declare abstract class JunctionVal extends FeatureVal {
5
5
  isJunction: boolean;
6
+ _canonCache?: string;
6
7
  constructor(spec: ValSpec, ctx?: AontuContext);
7
8
  append(peer: Val): JunctionVal;
8
9
  clone(ctx: AontuContext, spec?: ValSpec): Val;
@@ -21,10 +21,15 @@ class JunctionVal extends FeatureVal_1.FeatureVal {
21
21
  return out;
22
22
  }
23
23
  get canon() {
24
- return this.peg.map((v) => {
24
+ if (this._canonCache !== undefined)
25
+ return this._canonCache;
26
+ const c = this.peg.map((v) => {
25
27
  return v.isJunction && Array.isArray(v.peg) && 1 < v.peg.length ?
26
28
  '(' + v.canon + ')' : v.canon; // v.id + '=' + v.canon
27
29
  }).join(this.getJunctionSymbol()); // + '<' + (this.mark.hide ? 'H' : '') + '>'
30
+ if (this.done)
31
+ this._canonCache = c;
32
+ return c;
28
33
  }
29
34
  }
30
35
  exports.JunctionVal = JunctionVal;
@@ -1 +1 @@
1
- {"version":3,"file":"JunctionVal.js","sourceRoot":"","sources":["../../src/val/JunctionVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,6CAAyC;AAGzC,iFAAiF;AACjF,gCAAgC;AAChC,MAAe,WAAY,SAAQ,uBAAU;IAG3C,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/F,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YAC7B,OAAQ,CAAS,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxE,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,uBAAuB;QACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA,CAAC,4CAA4C;IAChF,CAAC;CAIF;AAIC,kCAAW"}
1
+ {"version":3,"file":"JunctionVal.js","sourceRoot":"","sources":["../../src/val/JunctionVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,6CAAyC;AAGzC,iFAAiF;AACjF,gCAAgC;AAChC,MAAe,WAAY,SAAQ,uBAAU;IAI3C,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAPlB,eAAU,GAAG,IAAI,CAAA;IAQjB,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/F,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAA;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YAChC,OAAQ,CAAS,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACxE,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,uBAAuB;QACzD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA,CAAC,4CAA4C;QAC9E,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;QACnC,OAAO,CAAC,CAAA;IACV,CAAC;CAIF;AAIC,kCAAW"}
@@ -18,12 +18,10 @@ class KeyFuncVal extends FuncBaseVal_1.FuncBaseVal {
18
18
  return 'key';
19
19
  }
20
20
  unify(peer, ctx) {
21
- // TODO: this delay makes keys in spreads and refs work, but it is a hack - find a better way.
22
21
  let out = this;
23
22
  if (ctx.cc < 3) {
24
23
  this.notdone();
25
24
  if (peer.isTop || (peer.id === this.id)) {
26
- // TODO: clone needed to avoid triggering unify_cycle - find a better way
27
25
  out = this.clone(ctx);
28
26
  }
29
27
  else if (peer.isNil) {
@@ -1 +1 @@
1
- {"version":3,"file":"KeyFuncVal.js","sourceRoot":"","sources":["../../src/val/KeyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gDAA4C;AAC5C,oDAAgD;AAIhD,+CAA2C;AAG3C,MAAM,UAAW,SAAQ,yBAAW;IAGlC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;QAOd,iBAAiB;IACnB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,8FAA8F;QAC9F,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,yEAAyE;gBACzE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,IACE,IAAI,CAAC,SAAS;uBACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;uBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAC5C,CAAC;oBACD,GAAG,GAAG,IAAI,CAAA;gBACZ,CAAC;qBACI,CAAC;oBACJ,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,4CAA4C;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;QAC7B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,2CAA2C;QAE3C,GAAG,GAAG,IAAI,qBAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACjC,IAAI;QAEJ,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,IAAkB;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF;AAIC,gCAAU"}
1
+ {"version":3,"file":"KeyFuncVal.js","sourceRoot":"","sources":["../../src/val/KeyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gDAA4C;AAC5C,oDAAgD;AAIhD,+CAA2C;AAE3C,MAAM,UAAW,SAAQ,yBAAW;IAGlC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;QAOd,iBAAiB;IACnB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAA;IACd,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,EAAE,CAAA;YAEd,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,IACE,IAAI,CAAC,SAAS;uBACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;uBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAC5C,CAAC;oBACD,GAAG,GAAG,IAAI,CAAA;gBACZ,CAAC;qBACI,CAAC;oBACJ,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,4CAA4C;QAC5C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAA;QAC7B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1D,2CAA2C;QAE3C,GAAG,GAAG,IAAI,qBAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QACjC,IAAI;QAEJ,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,IAAkB;QACpB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF;AAIC,gCAAU"}
@@ -3,6 +3,7 @@ import { AontuContext } from '../ctx';
3
3
  import { BagVal } from './BagVal';
4
4
  declare class ListVal extends BagVal {
5
5
  isList: boolean;
6
+ _canonCache?: string;
6
7
  constructor(spec: {
7
8
  peg: ValList;
8
9
  }, ctx?: AontuContext);
@@ -7,7 +7,6 @@ const unify_1 = require("../unify");
7
7
  const utility_1 = require("../utility");
8
8
  const err_1 = require("../err");
9
9
  const top_1 = require("./top");
10
- const ConjunctVal_1 = require("./ConjunctVal");
11
10
  const BagVal_1 = require("./BagVal");
12
11
  class ListVal extends BagVal_1.BagVal {
13
12
  constructor(spec, ctx) {
@@ -16,21 +15,6 @@ class ListVal extends BagVal_1.BagVal {
16
15
  if (null == this.peg) {
17
16
  throw new err_1.AontuError('ListVal spec.peg undefined');
18
17
  }
19
- let spread = this.peg[type_1.SPREAD];
20
- delete this.peg[type_1.SPREAD];
21
- if (spread) {
22
- if ('&' === spread.o) {
23
- // TODO: handle existing spread!
24
- this.spread.cj =
25
- Array.isArray(spread.v) ?
26
- 1 < spread.v.length ?
27
- new ConjunctVal_1.ConjunctVal({ peg: spread.v }, ctx) :
28
- spread.v[0] :
29
- spread.v;
30
- // let tmv = Array.isArray(spread.v) ? spread.v : [spread.v]
31
- // this.spread.cj = new ConjunctVal({ peg: tmv }, ctx)
32
- }
33
- }
34
18
  }
35
19
  // NOTE: order of keys is not preserved!
36
20
  // not possible in any case - consider {a,b} unify {b,a}
@@ -43,8 +27,7 @@ class ListVal extends BagVal_1.BagVal {
43
27
  // NOTE: not a clone! needs to be constructed.
44
28
  let out = (peer.isTop ? this : new ListVal({ peg: [] }, ctx));
45
29
  out.closed = this.closed;
46
- out.optionalKeys = [...this.optionalKeys];
47
- out.spread.cj = this.spread.cj;
30
+ out.optionalKeys = 0 < this.optionalKeys.length ? [...this.optionalKeys] : this.optionalKeys;
48
31
  out.site = this.site;
49
32
  if (peer instanceof ListVal) {
50
33
  if (!this.closed && peer.closed) {
@@ -53,36 +36,43 @@ class ListVal extends BagVal_1.BagVal {
53
36
  }
54
37
  else {
55
38
  out.closed = out.closed || peer.closed;
56
- out.spread.cj = null == out.spread.cj ? peer.spread.cj : (null == peer.spread.cj ? out.spread.cj : (out.spread.cj =
57
- (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SPR') }) : ctx, out.spread.cj, peer.spread.cj, 'list-peer')));
58
39
  }
59
40
  }
60
41
  if (!exit) {
61
42
  out.dc = this.dc + 1;
62
- let spread_cj = out.spread.cj || TOP;
63
- // Always unify children first
43
+ // Fast path: self-unify with TOP.
44
+ if (peer.isTop) {
45
+ let allChildrenDone = true;
46
+ for (let key in this.peg) {
47
+ if (type_1.DONE !== this.peg[key]?.dc) {
48
+ allChildrenDone = false;
49
+ break;
50
+ }
51
+ }
52
+ if (allChildrenDone) {
53
+ out.dc = type_1.DONE;
54
+ ctx.explain && (0, utility_1.explainClose)(te, out);
55
+ return out;
56
+ }
57
+ }
58
+ // Unify own children
64
59
  for (let key in this.peg) {
65
60
  const keyctx = ctx.descend(key);
66
- const key_spread_cj = spread_cj.spreadClone(keyctx);
67
61
  const child = this.peg[key];
68
62
  (0, utility_1.propagateMarks)(this, child);
69
63
  out.peg[key] =
70
- undefined === child ? key_spread_cj :
64
+ undefined === child ? (0, top_1.top)() :
71
65
  child.isNil ? child :
72
- key_spread_cj.isNil ? key_spread_cj :
73
- key_spread_cj.isTop && child.done ? child :
74
- child.isTop && key_spread_cj.done ? key_spread_cj :
75
- (0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'PEG:' + key) }) : keyctx, child, key_spread_cj, 'list-own');
66
+ child.done ? child :
67
+ (0, unify_1.unite)(te ? keyctx.clone({ explain: (0, utility_1.ec)(te, 'PEG:' + key) }) : keyctx, child, (0, top_1.top)(), 'list-own');
76
68
  done = (done && type_1.DONE === out.peg[key].dc);
77
69
  }
78
- const allowedKeys = this.closed ? Object.keys(this.peg) : [];
79
70
  let bad = undefined;
80
71
  if (peer instanceof ListVal) {
81
72
  let upeer = peer.done ? peer : (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PER') }) : ctx, peer, TOP, 'list-peer-list');
82
- // NOTE: peerkey is the index
83
73
  for (let peerkey in upeer.peg) {
84
74
  let peerchild = upeer.peg[peerkey];
85
- if (this.closed && !allowedKeys.includes(peerkey)) {
75
+ if (this.closed && !(peerkey in this.peg)) {
86
76
  bad = (0, err_1.makeNilErr)(ctx, 'closed', peerchild, undefined);
87
77
  }
88
78
  let child = out.peg[peerkey];
@@ -93,11 +83,6 @@ class ListVal extends BagVal_1.BagVal {
93
83
  child.isNil ? child :
94
84
  peerchild.isNil ? peerchild :
95
85
  (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'CHD') }) : peerctx, child, peerchild, 'list-peer');
96
- if (this.spread.cj) {
97
- let key_spread_cj = spread_cj.spreadClone(peerctx);
98
- oval = out.peg[peerkey] =
99
- (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }) : peerctx, out.peg[peerkey], key_spread_cj, 'list-spread');
100
- }
101
86
  (0, utility_1.propagateMarks)(this, oval);
102
87
  done = (done && type_1.DONE === oval.dc);
103
88
  }
@@ -119,36 +104,18 @@ class ListVal extends BagVal_1.BagVal {
119
104
  ctx.explain && (0, utility_1.explainClose)(te, out);
120
105
  return out;
121
106
  }
122
- // Spread clone: only deep-clone children that are path-dependent
123
- // (isFunc, isRef). Share all other children directly.
124
- // Spread clone: when all children are ScalarKindVal (simple type
125
- // constraints like `string`, `number`), share them directly to avoid
126
- // N x M allocations. ScalarKindVal is safe to share: it is immutable,
127
- // always done, never path-dependent, and never has marks mutated.
128
- // For anything more complex, fall back to full deep clone.
107
+ // Spread clone: share path-independent children directly, clone
108
+ // only path-dependent ones. See MapVal.spreadClone for rationale.
129
109
  spreadClone(ctx) {
130
- // B1: share directly when the spread tree has no path-dependent
131
- // leaves. See MapVal.spreadClone for rationale.
132
110
  if (!this.isPathDependent)
133
111
  return this;
134
- let allScalarKind = true;
135
- for (let key in this.peg) {
136
- if (!this.peg[key]?.isScalarKind) {
137
- allScalarKind = false;
138
- break;
139
- }
140
- }
141
- if (!allScalarKind) {
142
- return this.clone(ctx);
143
- }
144
112
  let out = super.clone(ctx);
145
113
  for (let entry of Object.entries(this.peg)) {
146
- out.peg[entry[0]] = entry[1];
114
+ const child = entry[1];
115
+ out.peg[entry[0]] = child?.isPathDependent
116
+ ? child.clone(ctx, { mark: {} })
117
+ : child;
147
118
  }
148
- // Must create a new spread object to avoid mutating the original.
149
- out.spread = {
150
- cj: this.spread.cj ? this.spread.cj.spreadClone(ctx) : undefined,
151
- };
152
119
  out.closed = this.closed;
153
120
  out.optionalKeys = [...this.optionalKeys];
154
121
  return out;
@@ -159,27 +126,27 @@ class ListVal extends BagVal_1.BagVal {
159
126
  out.peg[entry[0]] =
160
127
  entry[1]?.isVal ? entry[1].clone(ctx, spec?.mark ? { mark: spec.mark } : {}) : entry[1];
161
128
  }
162
- if (this.spread.cj) {
163
- out.spread.cj = this.spread.cj.clone(ctx, spec?.mark ? { mark: spec.mark } : {});
164
- }
165
129
  out.closed = this.closed;
166
130
  out.optionalKeys = [...this.optionalKeys];
167
131
  // console.log('LISTVAL-CLONE', this.canon, '->', out.canon)
168
132
  return out;
169
133
  }
170
134
  get canon() {
135
+ if (this._canonCache !== undefined)
136
+ return this._canonCache;
171
137
  // console.log('LISTVAL-CANON', this.optionalKeys)
172
138
  let keys = Object.keys(this.peg);
173
- return '' +
139
+ const c = '' +
174
140
  // this.errcanon() +
175
141
  '[' +
176
- (this.spread.cj ? '&:' + this.spread.cj.canon +
177
- (0 < keys.length ? ',' : '') : '') +
178
142
  keys
179
143
  .map(k => this.optionalKeys.includes(k) ?
180
144
  k + '?:' + this.peg[k].canon :
181
145
  this.peg[k].canon).join(',') +
182
146
  ']';
147
+ if (this.done)
148
+ this._canonCache = c;
149
+ return c;
183
150
  }
184
151
  }
185
152
  exports.ListVal = ListVal;