aontu 0.53.0 → 0.55.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/aontu.d.ts +3 -2
- package/dist/aontu.js +36 -7
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +2 -1
- package/dist/cli.js +500 -8
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +5 -0
- package/dist/ctx.js +1 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.js.map +1 -1
- package/dist/err.js +7 -1
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +2 -5
- package/dist/graph.js +83 -46
- package/dist/graph.js.map +1 -1
- package/dist/hcanon.js +9 -10
- package/dist/hcanon.js.map +1 -1
- package/dist/hints.js +94 -26
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.js +34 -0
- package/dist/jsonschema.js.map +1 -1
- package/dist/lang.js +593 -191
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +86 -6
- package/dist/lsp.js.map +1 -1
- package/dist/mcp.js +153 -6
- package/dist/mcp.js.map +1 -1
- package/dist/mod-tool.js +42 -8
- package/dist/mod-tool.js.map +1 -1
- package/dist/mod.d.ts +4 -0
- package/dist/mod.js +97 -2
- package/dist/mod.js.map +1 -1
- package/dist/patch.d.ts +5 -0
- package/dist/patch.js +25 -25
- package/dist/patch.js.map +1 -1
- package/dist/provenance.d.ts +1 -0
- package/dist/provenance.js +2 -1
- package/dist/provenance.js.map +1 -1
- package/dist/query.js.map +1 -1
- package/dist/reach.d.ts +1 -0
- package/dist/reach.js +49 -21
- package/dist/reach.js.map +1 -1
- package/dist/relation.d.ts +4 -0
- package/dist/relation.js +125 -200
- package/dist/relation.js.map +1 -1
- package/dist/sig.d.ts +25 -0
- package/dist/sig.js +277 -0
- package/dist/sig.js.map +1 -0
- package/dist/sigdecl.d.ts +2 -0
- package/dist/sigdecl.js +11 -0
- package/dist/sigdecl.js.map +1 -0
- package/dist/siggate.d.ts +4 -0
- package/dist/siggate.js +90 -0
- package/dist/siggate.js.map +1 -0
- package/dist/std.js +75 -16
- package/dist/std.js.map +1 -1
- package/dist/subsume.js +57 -10
- package/dist/subsume.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/unify.d.ts +2 -2
- package/dist/unify.js +93 -114
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +1 -2
- package/dist/utility.js +7 -61
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +12 -1
- package/dist/val/AggFuncVal.js +165 -3
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/BagVal.d.ts +2 -0
- package/dist/val/BagVal.js +56 -8
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConstraintVal.js +33 -5
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/ContainerKindVal.d.ts +35 -0
- package/dist/val/ContainerKindVal.js +99 -0
- package/dist/val/ContainerKindVal.js.map +1 -0
- package/dist/val/CopyFuncVal.js +0 -7
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.d.ts +1 -2
- package/dist/val/DisjunctVal.js +146 -39
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/ExpectVal.js +37 -2
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FuncBaseVal.d.ts +1 -0
- package/dist/val/FuncBaseVal.js +19 -8
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/GraphAtomVal.d.ts +39 -0
- package/dist/val/GraphAtomVal.js +184 -0
- package/dist/val/GraphAtomVal.js.map +1 -0
- package/dist/val/JunctionVal.js +22 -5
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/ListVal.js +27 -34
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +1 -0
- package/dist/val/MapVal.js +82 -35
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/PathFuncVal.d.ts +2 -2
- package/dist/val/PathFuncVal.js +75 -16
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PathVal.d.ts +25 -0
- package/dist/val/PathVal.js +150 -0
- package/dist/val/PathVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +2 -1
- package/dist/val/PlusOpVal.js +50 -35
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -0
- package/dist/val/PrefVal.js +159 -32
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RecurseVal.d.ts +19 -0
- package/dist/val/RecurseVal.js +217 -0
- package/dist/val/RecurseVal.js.map +1 -0
- package/dist/val/RefVal.d.ts +2 -1
- package/dist/val/RefVal.js +105 -72
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +30 -7
- package/dist/val/ReferFuncVal.js +395 -94
- package/dist/val/ReferFuncVal.js.map +1 -1
- package/dist/val/ScalarKindVal.d.ts +4 -2
- package/dist/val/ScalarKindVal.js +12 -1
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/SuperFuncVal.d.ts +4 -2
- package/dist/val/SuperFuncVal.js +118 -14
- package/dist/val/SuperFuncVal.js.map +1 -1
- package/dist/val/TopVal.d.ts +1 -1
- package/dist/val/Val.d.ts +2 -3
- package/dist/val/Val.js +39 -20
- package/dist/val/Val.js.map +1 -1
- package/dist/val/arith.js +4 -1
- package/dist/val/arith.js.map +1 -1
- package/dist/vet.d.ts +1 -0
- package/dist/vet.js +32 -1
- package/dist/vet.js.map +1 -1
- package/dist/view.d.ts +90 -0
- package/dist/view.js +2168 -0
- package/dist/view.js.map +1 -0
- package/grammar/aontu.gbnf +18 -10
- package/grammar/aontu.lark +15 -10
- package/grammar/aontu.tmLanguage.json +184 -0
- package/package.json +10 -3
- package/skill/grammar-card.md +1 -2
- package/src/aontu.ts +37 -7
- package/src/cli.ts +553 -8
- package/src/ctx.ts +20 -0
- package/src/diff.ts +4 -2
- package/src/err.ts +8 -1
- package/src/graph.ts +125 -75
- package/src/hcanon.ts +9 -11
- package/src/hints.ts +112 -29
- package/src/jsonschema.ts +41 -0
- package/src/lang.ts +642 -203
- package/src/lsp.ts +75 -6
- package/src/mcp.ts +164 -6
- package/src/mod-tool.ts +48 -9
- package/src/mod.ts +110 -1
- package/src/patch.ts +31 -27
- package/src/provenance.ts +8 -1
- package/src/query.ts +4 -2
- package/src/reach.ts +52 -23
- package/src/relation.ts +139 -236
- package/src/sig.ts +345 -0
- package/src/sigdecl.ts +11 -0
- package/src/siggate.ts +144 -0
- package/src/std.ts +77 -16
- package/src/subsume.ts +59 -10
- package/src/unify.ts +102 -125
- package/src/utility.ts +7 -67
- package/src/val/AggFuncVal.ts +231 -4
- package/src/val/BagVal.ts +58 -9
- package/src/val/ConstraintVal.ts +34 -5
- package/src/val/ContainerKindVal.ts +158 -0
- package/src/val/CopyFuncVal.ts +0 -7
- package/src/val/DisjunctVal.ts +152 -40
- package/src/val/ExpectVal.ts +39 -4
- package/src/val/FuncBaseVal.ts +21 -8
- package/src/val/GraphAtomVal.ts +264 -0
- package/src/val/JunctionVal.ts +23 -6
- package/src/val/ListVal.ts +30 -37
- package/src/val/MapVal.ts +87 -39
- package/src/val/PathFuncVal.ts +107 -19
- package/src/val/PathVal.ts +221 -0
- package/src/val/PlusOpVal.ts +56 -37
- package/src/val/PrefVal.ts +186 -38
- package/src/val/RecurseVal.ts +285 -0
- package/src/val/RefVal.ts +105 -83
- package/src/val/ReferFuncVal.ts +445 -100
- package/src/val/ScalarKindVal.ts +12 -0
- package/src/val/SuperFuncVal.ts +137 -13
- package/src/val/TopVal.ts +1 -1
- package/src/val/Val.ts +44 -35
- package/src/val/arith.ts +4 -1
- package/src/vet.ts +41 -4
- package/src/view.ts +2882 -0
- package/dist/val/IdFuncVal.d.ts +0 -13
- package/dist/val/IdFuncVal.js +0 -54
- package/dist/val/IdFuncVal.js.map +0 -1
- package/src/val/IdFuncVal.ts +0 -91
package/dist/val/DisjunctVal.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.DisjunctVal = void 0;
|
|
5
5
|
const type_1 = require("../type");
|
|
6
6
|
const err_1 = require("../err");
|
|
7
|
+
const exactjson_1 = require("../exactjson");
|
|
7
8
|
const unify_1 = require("../unify");
|
|
8
9
|
const utility_1 = require("../utility");
|
|
9
10
|
const top_1 = require("./top");
|
|
@@ -30,7 +31,12 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
30
31
|
peer = peer ?? (0, top_1.top)();
|
|
31
32
|
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Disjunct', this, peer);
|
|
32
33
|
if (!this.prefsRanked) {
|
|
33
|
-
this.rankPrefs(ctx);
|
|
34
|
+
const ranked = this.rankPrefs(ctx);
|
|
35
|
+
// A clash between equal-rank defaults refuses for the whole
|
|
36
|
+
// disjunction (R2): the disagreement IS the answer.
|
|
37
|
+
if (null != ranked && ranked.isNil) {
|
|
38
|
+
return ranked;
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
41
|
// // // console.log('DISJUNCT-unify-A', this.id, this.canon)
|
|
36
42
|
let done = true;
|
|
@@ -51,6 +57,16 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
51
57
|
// before return.
|
|
52
58
|
const savedErr = ctx.err;
|
|
53
59
|
const savedTrialMode = ctx._trialMode;
|
|
60
|
+
// A MEMBER'S TYPE FLOW IS PART OF THAT MEMBER. `refer(t)`/`rel(t)`
|
|
61
|
+
// assert `t` on ANOTHER node, and the assertion may only take
|
|
62
|
+
// effect if the member that makes it survives: committing every
|
|
63
|
+
// member's flow puts `t_A & t_B` on the target, which no reading
|
|
64
|
+
// of `A | B` licenses and which leaves the target MORE constrained
|
|
65
|
+
// than either alternative. The flow record is therefore staged per
|
|
66
|
+
// trial, like `ctx.err`, and only the survivors' records are
|
|
67
|
+
// merged into the real one below.
|
|
68
|
+
const savedFlows = ctx.referflows;
|
|
69
|
+
const staged = [];
|
|
54
70
|
// C1-inner: tell `makeNilErr` to return TRIAL_NIL in this scope
|
|
55
71
|
// instead of allocating per-failure NilVals. Save/restore so
|
|
56
72
|
// nested DisjunctVal trials (and the outer non-trial code) are
|
|
@@ -64,6 +80,10 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
64
80
|
const v = this.peg[vI];
|
|
65
81
|
const trialErr = [];
|
|
66
82
|
ctx.err = trialErr;
|
|
83
|
+
if (undefined !== savedFlows) {
|
|
84
|
+
staged[vI] = new Map();
|
|
85
|
+
ctx.referflows = staged[vI];
|
|
86
|
+
}
|
|
67
87
|
oval[vI] = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'DIST:' + vI) }) : ctx, v, peer, 'dj-peer');
|
|
68
88
|
if (0 < trialErr.length) {
|
|
69
89
|
// C1: failed-trial marker is never user-visible — it just
|
|
@@ -93,7 +113,7 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
93
113
|
// plus `k:'autoo'` answered "autoo", and `*8080|(integer&neq(80))`
|
|
94
114
|
// admitted 80 (use-cases/BUGS.md §1-2). An inadmissible override
|
|
95
115
|
// now fails the pref member's trial, and when every member is
|
|
96
|
-
// gone the meet is the existing
|
|
116
|
+
// gone the meet is the existing `empty` refusal.
|
|
97
117
|
//
|
|
98
118
|
// SCALAR preferred values only, exactly the kind gate's own
|
|
99
119
|
// boundary (test/spec/pref.tsv, "THE GATE IS A SCALAR GATE"): a
|
|
@@ -127,6 +147,7 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
127
147
|
finally {
|
|
128
148
|
ctx._trialMode = savedTrialMode;
|
|
129
149
|
ctx.err = savedErr;
|
|
150
|
+
ctx.referflows = savedFlows;
|
|
130
151
|
}
|
|
131
152
|
// // // console.log('DISJUNCT-unify-B', this.id, oval.map(v => v.canon))
|
|
132
153
|
// A PREFERENCE CONJOINED WITH A DISJUNCTION IS A PREFERENCE ON THE
|
|
@@ -170,14 +191,55 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
170
191
|
for (let kI = vI + 1; kI < oval.length; kI++) {
|
|
171
192
|
if (oval[kI].same(oval[vI])) {
|
|
172
193
|
oval[kI] = NilVal_1.TRIAL_NIL;
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
// TWO PREFERENCES OVER ONE VALUE ARE ONE PREFERENCE, and
|
|
197
|
+
// the lower rank is the one that generates: `*1 | **1` is
|
|
198
|
+
// `*1`. Ranking folds EQUAL ranks (R2); this folds the rest,
|
|
199
|
+
// which R5 stopped discarding.
|
|
200
|
+
//
|
|
201
|
+
// A PLAIN arm holding that same value is NOT a duplicate of
|
|
202
|
+
// it and must not be folded away: it is the sibling that
|
|
203
|
+
// ADMITS an override under ADR-004's gate, which is the
|
|
204
|
+
// whole point of writing `*x | x`. Folding it turned that
|
|
205
|
+
// idiom's own default into a `pref_not_instance` finding,
|
|
206
|
+
// and `*top | top` is pinned as its control.
|
|
207
|
+
const a = oval[vI];
|
|
208
|
+
const b = oval[kI];
|
|
209
|
+
if (true === a.isPref && true === b.isPref
|
|
210
|
+
&& (0, PrefVal_1.prefInnerPeg)(a).same((0, PrefVal_1.prefInnerPeg)(b))) {
|
|
211
|
+
if (a.rank <= b.rank) {
|
|
212
|
+
oval[kI] = NilVal_1.TRIAL_NIL;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
oval[vI] = NilVal_1.TRIAL_NIL;
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
173
218
|
}
|
|
174
219
|
}
|
|
175
220
|
}
|
|
176
221
|
// // // console.log('DISJUNCT-unify-D', this.id, oval.map(v => v.canon))
|
|
177
222
|
}
|
|
223
|
+
// THE SURVIVORS' FLOWS, AND ONLY THEIRS. Members knocked out by
|
|
224
|
+
// the trial, by the admission gate or by the dedup above are all
|
|
225
|
+
// nil here, so this runs after every one of those and before the
|
|
226
|
+
// filter that drops them.
|
|
227
|
+
if (undefined !== savedFlows) {
|
|
228
|
+
for (let vI = 0; vI < staged.length; vI++) {
|
|
229
|
+
const st = staged[vI];
|
|
230
|
+
if (undefined === st || true === oval[vI]?.isNil) {
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
for (const [k, fv] of st) {
|
|
234
|
+
const prev = savedFlows.get(k);
|
|
235
|
+
savedFlows.set(k, undefined === prev ? fv
|
|
236
|
+
: (0, unify_1.unite)(ctx, prev, fv, 'refer-flow-record'));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
178
240
|
// Outside the 1<length block: a SINGLE-member disjunction (e.g. a
|
|
179
241
|
// rankPrefs collapse) whose one member fails the trial or the
|
|
180
|
-
// admission gate must reach the
|
|
242
|
+
// admission gate must reach the `empty` refusal below, not
|
|
181
243
|
// return the trial sentinel as if it were the answer.
|
|
182
244
|
oval = oval.filter(v => !v.isNil);
|
|
183
245
|
let out;
|
|
@@ -185,7 +247,7 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
185
247
|
out = oval[0];
|
|
186
248
|
}
|
|
187
249
|
else if (0 == oval.length) {
|
|
188
|
-
return (0, err_1.makeNilErr)(ctx, '
|
|
250
|
+
return (0, err_1.makeNilErr)(ctx, 'empty', this, peer);
|
|
189
251
|
}
|
|
190
252
|
else {
|
|
191
253
|
out = new DisjunctVal({ peg: oval }, ctx);
|
|
@@ -204,50 +266,57 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
204
266
|
(0, utility_1.explainClose)(te, out);
|
|
205
267
|
return out;
|
|
206
268
|
}
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
//
|
|
269
|
+
// RANK ORDERS THE SURVIVORS, IT DOES NOT DISCARD AT PARSE (ADR-011
|
|
270
|
+
// R5, docs/design/DEFAULTS.0.md). Every rank is KEPT here, and
|
|
271
|
+
// generation takes the lowest-rank preference still standing -- so
|
|
272
|
+
// eliminating the lower arm PROMOTES the next instead of taking the
|
|
273
|
+
// whole ladder with it. This ran once, before the member trials,
|
|
274
|
+
// and discarded every arm but the lowest: `*1 | **2` met by
|
|
275
|
+
// `neq(1)` lost the default entirely and refused, where the ladder
|
|
276
|
+
// exists precisely to answer 2. Rank is a preference order over
|
|
277
|
+
// WHAT SURVIVES, which is not knowable until the trials have run.
|
|
278
|
+
//
|
|
279
|
+
// Only EQUAL ranks fold, because two defaults at one rank are one
|
|
280
|
+
// decision: compatible pegs merge, and a disagreement is the
|
|
281
|
+
// `pref_rank_clash` refusal (R2), which belongs to the whole
|
|
282
|
+
// disjunction -- there is no alternative to fall back to.
|
|
283
|
+
//
|
|
284
|
+
// Answers the sole surviving preference when the disjunction holds
|
|
285
|
+
// exactly one -- which the RECURSIVE call below consumes to lift a
|
|
286
|
+
// nested disjunct's winner into this one -- or the clash refusal.
|
|
211
287
|
rankPrefs(ctx) {
|
|
212
|
-
|
|
213
|
-
|
|
288
|
+
// The kept index per rank, so an equal-rank twin folds into the
|
|
289
|
+
// arm already standing for that rank.
|
|
290
|
+
const atRank = {};
|
|
214
291
|
// // // console.log('RP-A', this.peg.map((p: Val) => p.canon))
|
|
215
292
|
for (let vI = 0; vI < this.peg.length; vI++) {
|
|
216
293
|
const v = this.peg[vI];
|
|
294
|
+
let pref = undefined;
|
|
217
295
|
if (v instanceof PrefVal_1.PrefVal) {
|
|
218
|
-
|
|
219
|
-
if (v.rank === lastpref.rank) {
|
|
220
|
-
const pref = v.unify(lastpref, ctx);
|
|
221
|
-
if (pref.isNil) {
|
|
222
|
-
return pref;
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
this.peg[lastprefI] = pref;
|
|
226
|
-
lastpref = pref;
|
|
227
|
-
this.peg[vI] = null;
|
|
228
|
-
}
|
|
229
|
-
// return Nil.make(ctx, '|:prefs', lastpref, v, 'associate')
|
|
230
|
-
}
|
|
231
|
-
else if (v.rank < lastpref.rank) {
|
|
232
|
-
this.peg[lastprefI] = null;
|
|
233
|
-
lastpref = v;
|
|
234
|
-
lastprefI = vI;
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
this.peg[vI] = null;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
else {
|
|
241
|
-
lastpref = v;
|
|
242
|
-
lastprefI = vI;
|
|
243
|
-
}
|
|
296
|
+
pref = v;
|
|
244
297
|
}
|
|
245
298
|
else if (v.isDisjunct) {
|
|
246
299
|
const subrank = v.rankPrefs(ctx);
|
|
300
|
+
if (null != subrank && subrank.isNil) {
|
|
301
|
+
return subrank;
|
|
302
|
+
}
|
|
247
303
|
if (subrank instanceof PrefVal_1.PrefVal) {
|
|
248
304
|
this.peg[vI] = subrank;
|
|
249
|
-
|
|
250
|
-
|
|
305
|
+
pref = subrank;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
if (undefined !== pref) {
|
|
309
|
+
const at = atRank[pref.rank];
|
|
310
|
+
if (undefined === at) {
|
|
311
|
+
atRank[pref.rank] = vI;
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
const folded = pref.unify(this.peg[at], ctx);
|
|
315
|
+
if (folded.isNil) {
|
|
316
|
+
return folded;
|
|
317
|
+
}
|
|
318
|
+
this.peg[at] = folded;
|
|
319
|
+
this.peg[vI] = null;
|
|
251
320
|
}
|
|
252
321
|
}
|
|
253
322
|
}
|
|
@@ -294,6 +363,32 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
294
363
|
this.rankPrefs(ctx);
|
|
295
364
|
}
|
|
296
365
|
const prefs = this.peg.filter((v) => v instanceof PrefVal_1.PrefVal);
|
|
366
|
+
// ALTERNATIVES THAT GENERATE THE SAME VALUE ARE RESOLVED
|
|
367
|
+
// (ADR-007's rule, asked at the moment it matters): `[] | [&:
|
|
368
|
+
// T]` met by an empty list keeps both arms -- they differ as
|
|
369
|
+
// SCHEMAS, which is what stops the dedup collapsing the
|
|
370
|
+
// template away (BUGS.md §52 regime 4) -- but both generate
|
|
371
|
+
// the empty list, and one generated value is one value.
|
|
372
|
+
if (0 === prefs.length && 1 < this.peg.length) {
|
|
373
|
+
const gctx = ctx.clone({ err: [], collect: true });
|
|
374
|
+
let firstOut;
|
|
375
|
+
let allSame = true;
|
|
376
|
+
for (let gI = 0; gI < this.peg.length && allSame; gI++) {
|
|
377
|
+
const gout = this.peg[gI].gen(gctx);
|
|
378
|
+
if (0 < gctx.err.length || undefined === gout) {
|
|
379
|
+
allSame = false;
|
|
380
|
+
}
|
|
381
|
+
else if (0 === gI) {
|
|
382
|
+
firstOut = gout;
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
allSame = (0, exactjson_1.exactJSON)(gout) === (0, exactjson_1.exactJSON)(firstOut);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (allSame) {
|
|
389
|
+
return firstOut;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
297
392
|
if (0 === prefs.length && 1 < this.peg.length) {
|
|
298
393
|
const nerr = (0, err_1.makeNilErr)(ctx, 'disjunct_no_gen', this);
|
|
299
394
|
(0, err_1.descErr)(nerr, ctx);
|
|
@@ -303,7 +398,19 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
|
|
|
303
398
|
}
|
|
304
399
|
return undefined;
|
|
305
400
|
}
|
|
306
|
-
|
|
401
|
+
// THE LOWEST-RANK SURVIVOR (R5). Ranking no longer discards the
|
|
402
|
+
// weaker arms, so the choice is made here, over what is left:
|
|
403
|
+
// `*1 | **2` answers 1, and answers 2 once `*1` is gone.
|
|
404
|
+
let best = this.peg[0];
|
|
405
|
+
if (0 < prefs.length) {
|
|
406
|
+
best = prefs[0];
|
|
407
|
+
for (const p of prefs) {
|
|
408
|
+
if (p.rank < best.rank) {
|
|
409
|
+
best = p;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
return best.gen(ctx);
|
|
307
414
|
}
|
|
308
415
|
return super.gen(ctx);
|
|
309
416
|
}
|
|
@@ -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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"}
|
package/dist/val/ExpectVal.js
CHANGED
|
@@ -21,6 +21,9 @@ class ExpectVal extends FeatureVal_1.FeatureVal {
|
|
|
21
21
|
// canon reparsed into a document that accepts values the original
|
|
22
22
|
// rejects. A canon that silently drops a constraint is worse than one
|
|
23
23
|
// that fails to parse. Go's ExpectVal.Canon renders the same peg.
|
|
24
|
+
//
|
|
25
|
+
// Which is why `peg` is kept the WHOLE expectation as peers arrive
|
|
26
|
+
// (BUGS.md §48) rather than only what was first written: see unify.
|
|
24
27
|
get canon() { return this.peg.canon; }
|
|
25
28
|
constructor(spec, ctx) {
|
|
26
29
|
super(spec, ctx);
|
|
@@ -41,9 +44,24 @@ class ExpectVal extends FeatureVal_1.FeatureVal {
|
|
|
41
44
|
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Expect', this, peer);
|
|
42
45
|
let out = this;
|
|
43
46
|
if (!peer.isTop) {
|
|
47
|
+
// THE PEER MEETS THE WHOLE EXPECTATION. `peg` already carries
|
|
48
|
+
// every peer met so far (see below), so meeting the incoming peer
|
|
49
|
+
// against the ACCUMULATED `peer` first -- as this did -- refused
|
|
50
|
+
// against only the atom that happened to reject. A conflict with
|
|
51
|
+
// `peg` is a conflict with the accumulation too, since peg
|
|
52
|
+
// subsumes it, so nothing stops being refused: only the sentence
|
|
53
|
+
// changes, to the residual the error's own hint promises
|
|
54
|
+
// (BUGS.md §48).
|
|
55
|
+
const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, peer, this.peg, 'expect-self');
|
|
56
|
+
// Accumulated for the `expect` finding's operand. Computed BEFORE
|
|
57
|
+
// the escape below, where it has always been: an expectation that
|
|
58
|
+
// escapes still passed through here, and moving it after the
|
|
59
|
+
// escape leaves the accumulating arm reachable only by a node
|
|
60
|
+
// that both carries an accumulation AND fails to escape -- which
|
|
61
|
+
// the suite never produces, so it reads as dead code against the
|
|
62
|
+
// ADR-002 gate. Go's ExpectVal.Unify keeps the same order.
|
|
44
63
|
const acc = undefined === this.peer ? peer :
|
|
45
64
|
(0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEER') }) : ctx, this.peer, peer, 'expect-peer');
|
|
46
|
-
const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, acc, this.peg, 'expect-self');
|
|
47
65
|
if (peeru.isGenable) {
|
|
48
66
|
out = peeru;
|
|
49
67
|
}
|
|
@@ -51,7 +69,24 @@ class ExpectVal extends FeatureVal_1.FeatureVal {
|
|
|
51
69
|
// Still an expectation: carry the accumulated peer forward in a
|
|
52
70
|
// fresh node stored at THIS destination by the caller, leaving
|
|
53
71
|
// `this` -- possibly a shared template's child -- untouched.
|
|
54
|
-
|
|
72
|
+
//
|
|
73
|
+
// THE MEET IS THE NEW PEG (BUGS.md §48). An expectation that
|
|
74
|
+
// has met a peer without being freed by it stands for `peg &
|
|
75
|
+
// peer` from then on -- that is what a later peer must satisfy,
|
|
76
|
+
// and what canon has to state. Rebuilding from the ORIGINAL peg
|
|
77
|
+
// dropped the peer everywhere the node was later copied (the
|
|
78
|
+
// bag re-wrap, Val.clone), so `b:{z:1} b:{u8:min(0)}
|
|
79
|
+
// a:$.b.u8&max(15)` -- whose reference resolves a pass late, so
|
|
80
|
+
// `max(15)` arrives as a peer -- canoned as `min(0)`. That text
|
|
81
|
+
// reparses into a document admitting 20, which the original
|
|
82
|
+
// rejects, and hashed differently in each port. Storing the
|
|
83
|
+
// meet in `peg` needs no new field and no carrying: every copy
|
|
84
|
+
// site already preserves `peg`.
|
|
85
|
+
//
|
|
86
|
+
// Purity is untouched -- this is a NEW node, so a shared
|
|
87
|
+
// template's own expectation keeps the peg it was written with
|
|
88
|
+
// (§6-§7).
|
|
89
|
+
const e = new ExpectVal({ peg: peeru }, ctx);
|
|
55
90
|
e.key = this.key;
|
|
56
91
|
e.parent = this.parent;
|
|
57
92
|
e.peer = acc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,wCAImB;AAEnB,gCAAmC;AAGnC,6CAAyC;AAGzC,MAAM,SAAU,SAAQ,uBAAU;IAOhC,sEAAsE;IACtE,gEAAgE;IAChE,uEAAuE;IACvE,qEAAqE;IACrE,4BAA4B;IAC5B,EAAE;IACF,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,uEAAuE;IACvE,kEAAkE;IAClE,sEAAsE;IACtE,kEAAkE;IAClE,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA,CAAC,CAAC;IAErC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,5 +17,6 @@ declare class FuncBaseVal extends FeatureVal {
|
|
|
17
17
|
funcname(): string;
|
|
18
18
|
prepare(_ctx: AontuContext, args: Val[]): Val[] | null;
|
|
19
19
|
resolve(ctx: AontuContext, _args: Val[]): Val;
|
|
20
|
+
deferResolve(_ctx: AontuContext, _args?: Val[]): boolean;
|
|
20
21
|
}
|
|
21
22
|
export { trialUnify, FuncBaseVal, };
|
package/dist/val/FuncBaseVal.js
CHANGED
|
@@ -7,6 +7,7 @@ const type_1 = require("../type");
|
|
|
7
7
|
const unify_1 = require("../unify");
|
|
8
8
|
const utility_1 = require("../utility");
|
|
9
9
|
const err_1 = require("../err");
|
|
10
|
+
const siggate_1 = require("../siggate");
|
|
10
11
|
const top_1 = require("./top");
|
|
11
12
|
const ConjunctVal_1 = require("../val/ConjunctVal");
|
|
12
13
|
const FeatureVal_1 = require("../val/FeatureVal");
|
|
@@ -203,15 +204,16 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
203
204
|
}
|
|
204
205
|
}
|
|
205
206
|
// console.log('FUNCBASE-PEG', this.id, pegdone, this.peg.map((p: any) => p?.canon))
|
|
206
|
-
if (pegdone) {
|
|
207
|
-
|
|
207
|
+
if (pegdone && !this.deferResolve(ctx, newpeg)) {
|
|
208
|
+
// THE SIGNATURE GATE (docs/design/SIGNATURES.0.md): the
|
|
209
|
+
// driven arguments against the declared signature, before
|
|
210
|
+
// the builtin's own logic sees them. See siggate.ts for
|
|
211
|
+
// what the gate owns and what stays with the builtins.
|
|
212
|
+
const resolved = (0, siggate_1.sigRefuse)(ctx, this, newpeg) ??
|
|
213
|
+
this.resolve(ctx, newpeg);
|
|
208
214
|
// console.log('FUNC-RESOLVED', ctx.cc, resolved?.canon)
|
|
209
|
-
// The TOP peer is DROPPED as the unit it is
|
|
210
|
-
|
|
211
|
-
// than the unit: `id(x) & id(y)` resolves both sides to a
|
|
212
|
-
// top, and taking this shortcut would silently keep one
|
|
213
|
-
// name and lose the other instead of refusing the pair.
|
|
214
|
-
out = resolved.done && peer.isTop && null == peer.entity ? resolved :
|
|
215
|
+
// The TOP peer is DROPPED as the unit it is.
|
|
216
|
+
out = resolved.done && peer.isTop ? resolved :
|
|
215
217
|
(0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEG') }) : ctx, resolved, peer, 'func-' + this.funcname() + '/' + this.id);
|
|
216
218
|
(0, utility_1.propagateMarks)(this, out);
|
|
217
219
|
// TODO: make should handle this using ctx?
|
|
@@ -303,6 +305,15 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
303
305
|
resolve(ctx, _args) {
|
|
304
306
|
return (0, err_1.makeNilErr)(ctx, 'func:' + this.funcname(), this, undefined, 'resolve');
|
|
305
307
|
}
|
|
308
|
+
// A function may hold its resolution for a later pass even with its
|
|
309
|
+
// arguments settled -- it then rides the ordinary args-not-done
|
|
310
|
+
// path, residuating as any unresolved call does. super() defers on a
|
|
311
|
+
// recursion residual argument (SuperFuncVal), which is why the DRIVEN
|
|
312
|
+
// arguments are passed: this.peg still holds the undriven originals
|
|
313
|
+
// at the decision point.
|
|
314
|
+
deferResolve(_ctx, _args) {
|
|
315
|
+
return false;
|
|
316
|
+
}
|
|
306
317
|
} /* node:coverage ignore next 6 */
|
|
307
318
|
exports.FuncBaseVal = FuncBaseVal;
|
|
308
319
|
//# sourceMappingURL=FuncBaseVal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FuncBaseVal.js","sourceRoot":"","sources":["../../src/val/FuncBaseVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"FuncBaseVal.js","sourceRoot":"","sources":["../../src/val/FuncBaseVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
4
|
+
import { FeatureVal } from './FeatureVal';
|
|
5
|
+
export type RelDecl = {
|
|
6
|
+
acyclic?: boolean;
|
|
7
|
+
inverses: Set<string>;
|
|
8
|
+
};
|
|
9
|
+
export declare function relDecls(ctx: any): Map<string, RelDecl>;
|
|
10
|
+
declare class GraphAtomVal extends FeatureVal {
|
|
11
|
+
isGraphAtom: boolean;
|
|
12
|
+
isGenable: boolean;
|
|
13
|
+
cjo: number;
|
|
14
|
+
akind: 'acyclic' | 'inverse';
|
|
15
|
+
invname?: string;
|
|
16
|
+
held?: Val;
|
|
17
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
18
|
+
clone(ctx: AontuContext, spec?: ValSpec): Val;
|
|
19
|
+
private carry;
|
|
20
|
+
register(ctx: AontuContext): void;
|
|
21
|
+
unify(peer: Val, ctx: AontuContext): Val;
|
|
22
|
+
get canon(): string;
|
|
23
|
+
gen(ctx: AontuContext): any;
|
|
24
|
+
}
|
|
25
|
+
declare class AcyclicFuncVal extends FuncBaseVal {
|
|
26
|
+
isAcyclicFunc: boolean;
|
|
27
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
28
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
29
|
+
funcname(): string;
|
|
30
|
+
resolve(ctx: AontuContext, _args: Val[]): any;
|
|
31
|
+
}
|
|
32
|
+
declare class InverseFuncVal extends FuncBaseVal {
|
|
33
|
+
isInverseFunc: boolean;
|
|
34
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
35
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
36
|
+
funcname(): string;
|
|
37
|
+
resolve(ctx: AontuContext, args: Val[]): any;
|
|
38
|
+
}
|
|
39
|
+
export { GraphAtomVal, AcyclicFuncVal, InverseFuncVal, };
|