aontu 0.41.0 → 0.42.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.
- package/dist/ctx.d.ts +5 -2
- package/dist/ctx.js +2 -1
- package/dist/ctx.js.map +1 -1
- package/dist/lang.d.ts +5 -1
- package/dist/lang.js +100 -24
- package/dist/lang.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +5 -0
- package/dist/type.js.map +1 -1
- package/dist/unify.js +292 -13
- package/dist/unify.js.map +1 -1
- package/dist/utility.js +6 -2
- package/dist/utility.js.map +1 -1
- package/dist/val/BagVal.d.ts +0 -3
- package/dist/val/BagVal.js +6 -6
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +137 -14
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/CopyFuncVal.js +3 -2
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.js +4 -0
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/ExpectVal.js +16 -3
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/JunctionVal.d.ts +1 -0
- package/dist/val/JunctionVal.js +6 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.js +0 -2
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.d.ts +1 -0
- package/dist/val/ListVal.js +33 -66
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +3 -2
- package/dist/val/MapVal.js +67 -95
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MoveFuncVal.d.ts +2 -1
- package/dist/val/MoveFuncVal.js +78 -13
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +25 -4
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/{RefVal.d.ts → PathVal.d.ts} +4 -3
- package/dist/val/{RefVal.js → PathVal.js} +75 -77
- package/dist/val/PathVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +1 -1
- package/dist/val/PrefVal.js +18 -5
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/SpreadVal.d.ts +20 -0
- package/dist/val/SpreadVal.js +194 -0
- package/dist/val/SpreadVal.js.map +1 -0
- package/dist/val/Val.d.ts +2 -1
- package/dist/val/Val.js +7 -8
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js +2 -2
- package/dist/val/VarVal.js.map +1 -1
- package/package.json +5 -6
- package/src/ctx.ts +16 -3
- package/src/lang.ts +113 -23
- package/src/type.ts +5 -0
- package/src/unify.ts +310 -13
- package/src/utility.ts +5 -2
- package/src/val/BagVal.ts +6 -7
- package/src/val/ConjunctVal.ts +131 -13
- package/src/val/CopyFuncVal.ts +3 -2
- package/src/val/DisjunctVal.ts +6 -0
- package/src/val/ExpectVal.ts +18 -4
- package/src/val/JunctionVal.ts +5 -1
- package/src/val/KeyFuncVal.ts +0 -3
- package/src/val/ListVal.ts +38 -88
- package/src/val/MapVal.ts +75 -124
- package/src/val/MoveFuncVal.ts +79 -14
- package/src/val/PathFuncVal.ts +29 -4
- package/src/val/PathVal.ts +435 -0
- package/src/val/PrefVal.ts +19 -6
- package/src/val/{RefVal.ts → RefVal.ts.old} +30 -19
- package/src/val/SpreadVal.ts +275 -0
- package/src/val/Val.ts +9 -9
- package/src/val/VarVal.ts +2 -2
- package/dist/val/RefVal.js.map +0 -1
package/dist/val/ConjunctVal.js
CHANGED
|
@@ -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
|
-
(
|
|
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
|
-
//
|
|
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.
|
|
164
|
+
else if (t0.isPath && !(t1.isPath)) {
|
|
89
165
|
outvals.push(t0);
|
|
90
166
|
t0 = t1;
|
|
91
167
|
}
|
|
92
|
-
else if (t1.
|
|
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
|
|
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
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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":";AAAA,yDAAyD;;;AA6RvD,oBAAI;AApRN,kCAEgB;AAIhB,gCAAmC;AACnC,oCAAgC;AAEhC,gCAEe;AAGf,+CAA2C;AAE3C,wCAKmB;AAInB,+BAEc;AAId,uCAAuC;AACvC,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QACjB,cAAS,GAAG,IAAI,CAAA;QAChB,QAAG,GAAG,KAAK,CAAA;QAOT,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAA;QAClC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;aACjD,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACvB,IAAA,wBAAc,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACvB,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,CAAA;QACF,kEAAkE;IACpE,CAAC;IAED,kBAAkB;IAClB,MAAM,CAAC,IAAS;QACd,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAClB,IAAA,wBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,IAAI,GAAG,IAAI,IAAI,IAAA,SAAG,GAAE,CAAA;QAEpB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE/E,IAAI,IAAI,GAAG,IAAI,CAAA;QAEf,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEzB,8EAA8E;QAE9E,2CAA2C;QAC3C,IAAI,KAAK,GAAU,EAAE,CAAA;QAErB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAC9C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QAE9C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,yEAAyE;YACzE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;YAC3C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAA;QAC7C,CAAC;QAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YAChC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YAChC,gEAAgE;YAEhE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5D,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAEvF,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;YAC9D,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;YAE9D,sBAAsB;YACtB,IAAI,GAAG,IAAI,IAAI,CAAC,WAAI,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;YAEtC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC,EAAE,CAAC,CAAA;gBAChB,mBAAmB;gBACnB,SAAS;gBACT,yDAAyD;gBACzD,kBAAkB;gBAClB,SAAS;gBACT,IAAI;YACN,CAAC;QACH,CAAC;QAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,yEAAyE;QAEzE,iCAAiC;QAEjC,IAAI,OAAO,GAAU,EAAE,CAAA;QACvB,IAAI,GAAQ,CAAA;QAGZ,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QAEjB,aAAa;QACb,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACzC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAEtB,oIAAoI;YAEpI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;gBACxC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAA;YAC1C,CAAC;YAED,kEAAkE;YAClE,8DAA8D;iBACzD,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChB,EAAE,GAAG,EAAE,CAAA;YACT,CAAC;iBAEI,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAChB,EAAE,GAAG,EAAE,CAAA;YACT,CAAC;iBAGI,CAAC;gBACJ,GAAG,GAAG,IAAA,aAAK,EAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;gBACrF,kEAAkE;gBAClE,IAAI,GAAG,IAAI,IAAI,WAAI,KAAK,GAAG,CAAC,EAAE,CAAA;gBAC9B,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;gBACzC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;gBAEzC,+CAA+C;gBAC/C,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBAChB,EAAE,GAAG,EAAE,CAAA;gBACT,CAAC;qBACI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACnB,OAAO,GAAG,CAAA;gBACZ,CAAC;qBACI,CAAC;oBACJ,EAAE,GAAG,GAAG,CAAA;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAQ,CAAA;QAEZ,4EAA4E;QAE5E,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAEzB,6BAA6B;YAC7B,GAAG,GAAG,IAAA,SAAG,GAAE,CAAA;QACb,CAAC;QAED,iEAAiE;aAC5D,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAChB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YACvB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;QACzB,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QACtF,CAAC;QAED,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,WAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAElC,iGAAiG;QAEjG,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,KAAK,CAAC,GAAiB,EAAE,IAAc;QACrC,IAAI,GAAG,GAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAiB,CAAA;QACjD,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,iBAAiB;QACf,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,GAAkB;QACpB,+DAA+D;QAC/D,IAAI,GAAG,GAAG,IAAA,gBAAU,EAClB,GAAG,EACH,UAAU,EACV,IAAI,EAAE,gDAAgD;QACtD,SAAS,CACV,CAAA;QAED,6BAA6B;QAC7B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACpB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAE5B,oBAAoB;QAEpB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,gBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AA+CC,kCAAW;AA3Cb,sBAAsB;AACtB,4BAA4B;AAC5B,gCAAgC;AAChC,SAAS,IAAI,CAAC,KAAY;IAExB,IAAI,MAAM,GAAU,EAAE,CAAA;IACtB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACvD,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAA;YAC5B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;YAC9B,CAAC;YACD,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QACzB,CAAC;aACI,CAAC;YACJ,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAGD,6DAA6D;IAC7D,iDAAiD;IACjD,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,GAAG,KAAK,CAAA;YACd,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAChD,CAAC;IAED,2DAA2D;IAG3D,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/CopyFuncVal.js
CHANGED
|
@@ -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.
|
|
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,
|
|
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"}
|
package/dist/val/DisjunctVal.js
CHANGED
|
@@ -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":";AAAA,yDAAyD;;;AASzD,kCAEgB;AAIhB,gCAAmC;AACnC,oCAAgC;AAEhC,wCAImB;AAMnB,+BAEc;
|
|
1
|
+
{"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/ExpectVal.js
CHANGED
|
@@ -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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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,
|
|
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;
|
package/dist/val/JunctionVal.js
CHANGED
|
@@ -21,10 +21,15 @@ class JunctionVal extends FeatureVal_1.FeatureVal {
|
|
|
21
21
|
return out;
|
|
22
22
|
}
|
|
23
23
|
get canon() {
|
|
24
|
-
|
|
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;
|
|
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"}
|
package/dist/val/KeyFuncVal.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/val/ListVal.d.ts
CHANGED
package/dist/val/ListVal.js
CHANGED
|
@@ -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
|
-
|
|
63
|
-
|
|
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 ?
|
|
64
|
+
undefined === child ? (0, top_1.top)() :
|
|
71
65
|
child.isNil ? child :
|
|
72
|
-
|
|
73
|
-
|
|
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 && !
|
|
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:
|
|
123
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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;
|