aontu 0.52.0 → 0.53.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/README.md +88 -0
- package/bin/aontu-mcp.js +4 -0
- package/dist/agentsmd.d.ts +16 -0
- package/dist/agentsmd.js +107 -0
- package/dist/agentsmd.js.map +1 -0
- package/dist/aontu.d.ts +14 -3
- package/dist/aontu.js +145 -4
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +44 -1
- package/dist/cli.js +2401 -44
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +16 -0
- package/dist/ctx.js +44 -0
- package/dist/ctx.js.map +1 -1
- package/dist/diff.d.ts +22 -0
- package/dist/diff.js +141 -0
- package/dist/diff.js.map +1 -0
- package/dist/err.d.ts +3 -1
- package/dist/err.js +48 -8
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +16 -0
- package/dist/graph.js +73 -0
- package/dist/graph.js.map +1 -0
- package/dist/hcanon.d.ts +3 -0
- package/dist/hcanon.js +146 -0
- package/dist/hcanon.js.map +1 -0
- package/dist/hints.js +223 -5
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +20 -0
- package/dist/jsonschema.js +391 -0
- package/dist/jsonschema.js.map +1 -0
- package/dist/lang.js +698 -35
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +9 -2
- package/dist/lsp.js +262 -46
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.d.ts +20 -0
- package/dist/mcp-server.js +147 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/mcp.d.ts +42 -0
- package/dist/mcp.js +814 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mod-tool.d.ts +58 -0
- package/dist/mod-tool.js +498 -0
- package/dist/mod-tool.js.map +1 -0
- package/dist/mod.d.ts +31 -0
- package/dist/mod.js +250 -0
- package/dist/mod.js.map +1 -0
- package/dist/patch.d.ts +44 -0
- package/dist/patch.js +506 -0
- package/dist/patch.js.map +1 -0
- package/dist/provenance.d.ts +40 -0
- package/dist/provenance.js +335 -0
- package/dist/provenance.js.map +1 -0
- package/dist/query.d.ts +27 -0
- package/dist/query.js +294 -0
- package/dist/query.js.map +1 -0
- package/dist/reach.d.ts +14 -0
- package/dist/reach.js +140 -0
- package/dist/reach.js.map +1 -0
- package/dist/relation.d.ts +19 -0
- package/dist/relation.js +305 -0
- package/dist/relation.js.map +1 -0
- package/dist/report-sarif.d.ts +14 -0
- package/dist/report-sarif.js +102 -0
- package/dist/report-sarif.js.map +1 -0
- package/dist/site.d.ts +4 -0
- package/dist/site.js +31 -0
- package/dist/site.js.map +1 -1
- package/dist/std.d.ts +1 -0
- package/dist/std.js +73 -0
- package/dist/std.js.map +1 -0
- package/dist/subsume.d.ts +39 -0
- package/dist/subsume.js +526 -0
- package/dist/subsume.js.map +1 -0
- package/dist/trim.d.ts +19 -0
- package/dist/trim.js +155 -0
- package/dist/trim.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +17 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.d.ts +3 -1
- package/dist/unify.js +287 -18
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +9 -1
- package/dist/utility.js +122 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +33 -0
- package/dist/val/AggFuncVal.js +202 -0
- package/dist/val/AggFuncVal.js.map +1 -0
- package/dist/val/ArithFuncVal.d.ts +31 -0
- package/dist/val/ArithFuncVal.js +62 -0
- package/dist/val/ArithFuncVal.js.map +1 -0
- package/dist/val/BagVal.d.ts +5 -0
- package/dist/val/BagVal.js +96 -5
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +9 -1
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +19 -0
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.d.ts +48 -1
- package/dist/val/ConstraintVal.js +1501 -110
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/CopyFuncVal.d.ts +1 -2
- package/dist/val/CopyFuncVal.js +7 -0
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.d.ts +1 -0
- package/dist/val/Decimal.js +13 -0
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.d.ts +11 -0
- package/dist/val/DeprecateFuncVal.js +47 -0
- package/dist/val/DeprecateFuncVal.js.map +1 -0
- package/dist/val/DisjunctVal.js +130 -21
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.d.ts +15 -0
- package/dist/val/EachFuncVal.js +75 -0
- package/dist/val/EachFuncVal.js.map +1 -0
- package/dist/val/ExpectVal.d.ts +1 -0
- package/dist/val/ExpectVal.js +41 -4
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FeatureVal.js +1 -1
- package/dist/val/FeatureVal.js.map +1 -1
- package/dist/val/FilterFuncVal.d.ts +15 -0
- package/dist/val/FilterFuncVal.js +91 -0
- package/dist/val/FilterFuncVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +6 -1
- package/dist/val/FuncBaseVal.js +178 -2
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/IdFuncVal.d.ts +13 -0
- package/dist/val/IdFuncVal.js +54 -0
- package/dist/val/IdFuncVal.js.map +1 -0
- package/dist/val/JunctionVal.js +7 -1
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.d.ts +1 -1
- package/dist/val/KeyFuncVal.js +38 -30
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +117 -17
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +102 -8
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.d.ts +15 -0
- package/dist/val/MatchFuncVal.js +107 -0
- package/dist/val/MatchFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +24 -0
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -1
- package/dist/val/OpBaseVal.js +24 -2
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/OpenFuncVal.js +4 -1
- package/dist/val/OpenFuncVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +15 -0
- package/dist/val/PackFuncVal.js +108 -0
- package/dist/val/PackFuncVal.js.map +1 -0
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.d.ts +13 -0
- package/dist/val/PlaceVal.js +131 -0
- package/dist/val/PlaceVal.js.map +1 -0
- package/dist/val/PlusOpVal.js +11 -2
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -2
- package/dist/val/PrefVal.js +78 -23
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +1 -1
- package/dist/val/RefVal.js +158 -30
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +36 -0
- package/dist/val/ReferFuncVal.js +303 -0
- package/dist/val/ReferFuncVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +1 -2
- package/dist/val/ScalarKindVal.js +0 -11
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TypeFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +9 -2
- package/dist/val/Val.js +150 -4
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.d.ts +6 -0
- package/dist/val/arith.js +170 -0
- package/dist/val/arith.js.map +1 -0
- package/dist/vet.d.ts +45 -0
- package/dist/vet.js +776 -0
- package/dist/vet.js.map +1 -0
- package/dist/walk.d.ts +2 -0
- package/dist/walk.js +91 -0
- package/dist/walk.js.map +1 -0
- package/grammar/aontu.gbnf +130 -0
- package/grammar/aontu.lark +113 -0
- package/package.json +30 -15
- package/skill/SKILL.md +37 -0
- package/skill/error-codes.md +62 -0
- package/skill/examples.md +99 -0
- package/skill/grammar-card.md +57 -0
- package/src/agentsmd.ts +135 -0
- package/src/aontu.ts +192 -4
- package/src/cli.ts +2858 -71
- package/src/ctx.ts +81 -0
- package/src/diff.ts +196 -0
- package/src/err.ts +52 -8
- package/src/graph.ts +135 -0
- package/src/hcanon.ts +169 -0
- package/src/hints.ts +271 -5
- package/src/jsonschema.ts +511 -0
- package/src/lang.ts +779 -37
- package/src/lsp.ts +281 -47
- package/src/mcp-server.ts +187 -0
- package/src/mcp.ts +993 -0
- package/src/mod-tool.ts +679 -0
- package/src/mod.ts +344 -0
- package/src/patch.ts +624 -0
- package/src/provenance.ts +430 -0
- package/src/query.ts +379 -0
- package/src/reach.ts +184 -0
- package/src/relation.ts +395 -0
- package/src/report-sarif.ts +137 -0
- package/src/site.ts +36 -1
- package/src/std.ts +73 -0
- package/src/subsume.ts +690 -0
- package/src/trim.ts +195 -0
- package/src/tsconfig.json +10 -4
- package/src/type.ts +51 -2
- package/src/unify.ts +311 -16
- package/src/utility.ts +139 -1
- package/src/val/AggFuncVal.ts +319 -0
- package/src/val/ArithFuncVal.ts +108 -0
- package/src/val/BagVal.ts +101 -4
- package/src/val/CloseFuncVal.ts +9 -1
- package/src/val/ConjunctVal.ts +20 -0
- package/src/val/ConstraintVal.ts +1699 -116
- package/src/val/CopyFuncVal.ts +7 -1
- package/src/val/Decimal.ts +15 -0
- package/src/val/DeprecateFuncVal.ts +84 -0
- package/src/val/DisjunctVal.ts +139 -28
- package/src/val/EachFuncVal.ts +133 -0
- package/src/val/ExpectVal.ts +43 -6
- package/src/val/FeatureVal.ts +1 -1
- package/src/val/FilterFuncVal.ts +154 -0
- package/src/val/FuncBaseVal.ts +200 -3
- package/src/val/HideFuncVal.ts +0 -2
- package/src/val/IdFuncVal.ts +91 -0
- package/src/val/JunctionVal.ts +7 -1
- package/src/val/KeyFuncVal.ts +39 -35
- package/src/val/ListVal.ts +125 -18
- package/src/val/LowerFuncVal.ts +0 -1
- package/src/val/MapVal.ts +110 -8
- package/src/val/MatchFuncVal.ts +176 -0
- package/src/val/MoveFuncVal.ts +0 -2
- package/src/val/NilVal.ts +25 -0
- package/src/val/OpBaseVal.ts +26 -3
- package/src/val/OpenFuncVal.ts +4 -2
- package/src/val/PackFuncVal.ts +175 -0
- package/src/val/PathFuncVal.ts +0 -1
- package/src/val/PlaceVal.ts +193 -0
- package/src/val/PlusOpVal.ts +11 -2
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +79 -36
- package/src/val/RefVal.ts +163 -30
- package/src/val/ReferFuncVal.ts +387 -0
- package/src/val/ScalarKindVal.ts +0 -13
- package/src/val/TopVal.ts +0 -1
- package/src/val/TypeFuncVal.ts +0 -2
- package/src/val/UpperFuncVal.ts +0 -1
- package/src/val/Val.ts +213 -3
- package/src/val/VarVal.ts +0 -1
- package/src/val/arith.ts +316 -0
- package/src/vet.ts +992 -0
- package/src/walk.ts +99 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.EachFuncVal = void 0;
|
|
5
|
+
exports.dataValues = dataValues;
|
|
6
|
+
const unify_1 = require("../unify");
|
|
7
|
+
const err_1 = require("../err");
|
|
8
|
+
const ListVal_1 = require("./ListVal");
|
|
9
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
10
|
+
const Val_1 = require("./Val");
|
|
11
|
+
const PlaceVal_1 = require("./PlaceVal");
|
|
12
|
+
const keyorder_1 = require("../keyorder");
|
|
13
|
+
// The children a data bag holds, in the order the result must carry
|
|
14
|
+
// them, or the code naming what is wrong with the argument.
|
|
15
|
+
function dataValues(data) {
|
|
16
|
+
const d = data;
|
|
17
|
+
if (true === d?.isMap) {
|
|
18
|
+
return Object.keys(d.peg).sort(keyorder_1.cmpCodePoint).map((k) => d.peg[k]);
|
|
19
|
+
}
|
|
20
|
+
if (true === d?.isList) {
|
|
21
|
+
return [...d.peg];
|
|
22
|
+
}
|
|
23
|
+
return 'each_data';
|
|
24
|
+
}
|
|
25
|
+
class EachFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
26
|
+
constructor(spec, ctx) {
|
|
27
|
+
super(spec, ctx);
|
|
28
|
+
this.isEachFunc = true;
|
|
29
|
+
// THE STAGING RULE, for the reason given in PackFuncVal.
|
|
30
|
+
this.staged = true;
|
|
31
|
+
}
|
|
32
|
+
funcname() {
|
|
33
|
+
return 'each';
|
|
34
|
+
}
|
|
35
|
+
// The template is not an argument to drive (see PackFuncVal.prepare).
|
|
36
|
+
prepare(_ctx, _args) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
unify(peer, ctx) {
|
|
40
|
+
// ONE argument is driven: the data. The template is not (see
|
|
41
|
+
// prepare above), and driveStagedArgs answers whether the data has
|
|
42
|
+
// settled -- the other half of "ready to fire".
|
|
43
|
+
const ready = this.driveStagedArgs(ctx, 1);
|
|
44
|
+
if (!ready || !ctx.settle) {
|
|
45
|
+
return this.residuate(peer, ctx);
|
|
46
|
+
}
|
|
47
|
+
return super.unify(peer, ctx);
|
|
48
|
+
}
|
|
49
|
+
resolve(ctx, args) {
|
|
50
|
+
const vals = dataValues(args?.[0]);
|
|
51
|
+
if ('string' === typeof vals) {
|
|
52
|
+
return (0, err_1.makeNilErr)(ctx, vals, this);
|
|
53
|
+
}
|
|
54
|
+
const tmpl = args?.[1];
|
|
55
|
+
const peg = [];
|
|
56
|
+
for (let i = 0; i < vals.length; i++) {
|
|
57
|
+
const elctx = ctx.descend(String(i));
|
|
58
|
+
const el = vals[i].clone(elctx);
|
|
59
|
+
// The template is CLONED per element, never shared — a FULL
|
|
60
|
+
// instance to the leaves (`dup`, ADR-005): see PackFuncVal.resolve.
|
|
61
|
+
// `_` inside the template binds the source child (G8 phase 3),
|
|
62
|
+
// which for `each` is the element itself.
|
|
63
|
+
let inst = undefined;
|
|
64
|
+
if (undefined !== tmpl) {
|
|
65
|
+
inst = tmpl.clone(elctx, { dup: true });
|
|
66
|
+
(0, Val_1.repathInstance)(inst, inst.path);
|
|
67
|
+
}
|
|
68
|
+
peg.push(undefined === inst ? el :
|
|
69
|
+
(0, unify_1.unite)(elctx, el, (0, PlaceVal_1.fillPlace)(inst, vals[i], elctx), 'each'));
|
|
70
|
+
}
|
|
71
|
+
return new ListVal_1.ListVal({ peg }, ctx);
|
|
72
|
+
}
|
|
73
|
+
} /* node:coverage ignore next 7 */
|
|
74
|
+
exports.EachFuncVal = EachFuncVal;
|
|
75
|
+
//# sourceMappingURL=EachFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EachFuncVal.js","sourceRoot":"","sources":["../../src/val/EachFuncVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/ExpectVal.d.ts
CHANGED
package/dist/val/ExpectVal.js
CHANGED
|
@@ -8,28 +8,65 @@ const utility_1 = require("../utility");
|
|
|
8
8
|
const err_1 = require("../err");
|
|
9
9
|
const FeatureVal_1 = require("./FeatureVal");
|
|
10
10
|
class ExpectVal extends FeatureVal_1.FeatureVal {
|
|
11
|
+
// An expectation canons as THE EXPECTATION ITSELF -- the peg the peer
|
|
12
|
+
// must satisfy. Val.canon's default was the empty string, which
|
|
13
|
+
// rendered a key with no value (`{"r":}`): text that is not a document
|
|
14
|
+
// and could not be reparsed, breaking canon's round-trip contract in
|
|
15
|
+
// both engines (issue #43).
|
|
16
|
+
//
|
|
17
|
+
// Not `top`, which was the first fix here and was wrong. An ExpectVal
|
|
18
|
+
// is created for EVERY peer-introduced non-generable key, not just for
|
|
19
|
+
// `&:` spread children -- `m:{x:1} m:{y:string}` makes one at `y` with
|
|
20
|
+
// no spread in sight -- so rendering `top` erased the `string` and the
|
|
21
|
+
// canon reparsed into a document that accepts values the original
|
|
22
|
+
// rejects. A canon that silently drops a constraint is worse than one
|
|
23
|
+
// that fails to parse. Go's ExpectVal.Canon renders the same peg.
|
|
24
|
+
get canon() { return this.peg.canon; }
|
|
11
25
|
constructor(spec, ctx) {
|
|
12
26
|
super(spec, ctx);
|
|
13
27
|
this.isExpect = true;
|
|
14
28
|
}
|
|
29
|
+
// PURE, deliberately (the unequal-spread crosswire, BUGS.md §6-§7).
|
|
30
|
+
// The old body accumulated `this.peer` IN PLACE, which was invisible
|
|
31
|
+
// while an expectation only ever lived at one destination -- but the
|
|
32
|
+
// spread-combination meet (MapVal.unify's 'map-self' unite) bakes an
|
|
33
|
+
// ExpectVal INTO the combined template, and a path-independent
|
|
34
|
+
// template is SHARED across every destination (spreadClone tier 1).
|
|
35
|
+
// One stateful node in a shared template unified each sibling's own
|
|
36
|
+
// data with the next sibling's ($.w.y.r: "Cannot unify value: 6 with
|
|
37
|
+
// value: 5", both values sibling data). An expectation now answers
|
|
38
|
+
// with a NEW node when it must keep accumulated state, so a shared
|
|
39
|
+
// template's expect stays exactly what was written.
|
|
15
40
|
unify(peer, ctx) {
|
|
16
41
|
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Expect', this, peer);
|
|
17
42
|
let out = this;
|
|
18
43
|
if (!peer.isTop) {
|
|
19
|
-
|
|
44
|
+
const acc = undefined === this.peer ? peer :
|
|
20
45
|
(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,
|
|
46
|
+
const peeru = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'EXPECT') }) : ctx, acc, this.peg, 'expect-self');
|
|
22
47
|
if (peeru.isGenable) {
|
|
23
48
|
out = peeru;
|
|
24
49
|
}
|
|
50
|
+
else {
|
|
51
|
+
// Still an expectation: carry the accumulated peer forward in a
|
|
52
|
+
// fresh node stored at THIS destination by the caller, leaving
|
|
53
|
+
// `this` -- possibly a shared template's child -- untouched.
|
|
54
|
+
const e = new ExpectVal({ peg: this.peg }, ctx);
|
|
55
|
+
e.key = this.key;
|
|
56
|
+
e.parent = this.parent;
|
|
57
|
+
e.peer = acc;
|
|
58
|
+
out = e;
|
|
59
|
+
}
|
|
25
60
|
}
|
|
26
61
|
out.dc = type_1.DONE;
|
|
27
62
|
ctx.explain && (0, utility_1.explainClose)(te, out);
|
|
28
63
|
return out;
|
|
29
64
|
}
|
|
30
65
|
gen(ctx) {
|
|
31
|
-
// Unresolved expect cannot be generated, so always an error.
|
|
32
|
-
|
|
66
|
+
// Unresolved expect cannot be generated, so always an error. The
|
|
67
|
+
// CALL is the point -- it records the failure on ctx -- and there
|
|
68
|
+
// is no value to bind: generation answers nothing.
|
|
69
|
+
(0, err_1.makeNilErr)(ctx, 'expect', this.peg, this.peer);
|
|
33
70
|
return undefined;
|
|
34
71
|
}
|
|
35
72
|
inspection(d) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAMhB,oCAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"ExpectVal.js","sourceRoot":"","sources":["../../src/val/ExpectVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/FeatureVal.js
CHANGED
|
@@ -18,7 +18,7 @@ class FeatureVal extends Val_1.Val {
|
|
|
18
18
|
let nerr = (0, err_1.makeNilErr)(ctx, 'no_gen', this);
|
|
19
19
|
(0, err_1.descErr)(nerr, ctx);
|
|
20
20
|
ctx?.adderr(nerr);
|
|
21
|
-
if (null == ctx || !ctx
|
|
21
|
+
if (null == ctx || !ctx.collect) {
|
|
22
22
|
const aerr = new err_1.AontuError(nerr.msg, [nerr]);
|
|
23
23
|
throw aerr;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureVal.js","sourceRoot":"","sources":["../../src/val/FeatureVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,+BAA2B;AAE3B,+BAA2B;AAE3B,gCAAwD;AAGxD,MAAe,UAAW,SAAQ,SAAG;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;IAOhB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAA,SAAG,GAAE,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,0DAA0D;QAE1D,IAAI,IAAI,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAA,aAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"FeatureVal.js","sourceRoot":"","sources":["../../src/val/FeatureVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,+BAA2B;AAE3B,+BAA2B;AAE3B,gCAAwD;AAGxD,MAAe,UAAW,SAAQ,SAAG;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;IAOhB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAA,SAAG,GAAE,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,0DAA0D;QAE1D,IAAI,IAAI,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAA,aAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAA;QACZ,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF,CAAC,iCAAiC;QAIjC,UAAU"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { MapVal } from './MapVal';
|
|
4
|
+
import { ListVal } from './ListVal';
|
|
5
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
6
|
+
declare class FilterFuncVal extends FuncBaseVal {
|
|
7
|
+
isFilterFunc: boolean;
|
|
8
|
+
staged: boolean;
|
|
9
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
10
|
+
funcname(): string;
|
|
11
|
+
prepare(_ctx: AontuContext, _args: Val[]): null;
|
|
12
|
+
unify(peer: Val, ctx: AontuContext): Val;
|
|
13
|
+
resolve(ctx: AontuContext, args: Val[]): ListVal | MapVal | import("./NilVal").NilVal;
|
|
14
|
+
}
|
|
15
|
+
export { FilterFuncVal, };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.FilterFuncVal = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const MapVal_1 = require("./MapVal");
|
|
7
|
+
const ListVal_1 = require("./ListVal");
|
|
8
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
9
|
+
const Val_1 = require("./Val");
|
|
10
|
+
const PlaceVal_1 = require("./PlaceVal");
|
|
11
|
+
class FilterFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
12
|
+
constructor(spec, ctx) {
|
|
13
|
+
super(spec, ctx);
|
|
14
|
+
this.isFilterFunc = true;
|
|
15
|
+
// THE STAGING RULE (G8 phase 0). A subset of a bag that is still
|
|
16
|
+
// being merged into is a subset of the wrong bag.
|
|
17
|
+
this.staged = true;
|
|
18
|
+
}
|
|
19
|
+
funcname() {
|
|
20
|
+
return 'filter';
|
|
21
|
+
}
|
|
22
|
+
// Neither argument is driven by the base: `unify` below drives the
|
|
23
|
+
// DATA by hand, because a staged func must advance the argument it
|
|
24
|
+
// is waiting on every pass rather than only on the one it fires.
|
|
25
|
+
//
|
|
26
|
+
// The CONDITION is not driven at all, and that is deliberate: it is
|
|
27
|
+
// a template, tested against each child at that child's position,
|
|
28
|
+
// so it may hold a `_` (G8 phase 3, the child it is being tested
|
|
29
|
+
// against) or a relative reference — neither of which has an answer
|
|
30
|
+
// at the call site. Driving it there would freeze both.
|
|
31
|
+
prepare(_ctx, _args) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
unify(peer, ctx) {
|
|
35
|
+
const ready = this.driveStagedArgs(ctx, 1);
|
|
36
|
+
if (!ready || !ctx.settle) {
|
|
37
|
+
return this.residuate(peer, ctx);
|
|
38
|
+
}
|
|
39
|
+
return super.unify(peer, ctx);
|
|
40
|
+
}
|
|
41
|
+
resolve(ctx, args) {
|
|
42
|
+
const data = args[0];
|
|
43
|
+
const cond = args[1];
|
|
44
|
+
// The trial is run against CLONES: `unite` refines a bag in place,
|
|
45
|
+
// and a child that failed the test must reach the result -- when
|
|
46
|
+
// it passes -- exactly as it was written.
|
|
47
|
+
//
|
|
48
|
+
// Canon is the comparison because canon is what "the same value"
|
|
49
|
+
// MEANS in this language: it is the form the two ports agree on,
|
|
50
|
+
// the form `aontu diff` compares, and the form a hash is taken of.
|
|
51
|
+
const keeps = (child, kctx) => {
|
|
52
|
+
// `_` inside the condition binds the child being tested (G8
|
|
53
|
+
// phase 3), so a condition can be about the child as a whole
|
|
54
|
+
// rather than only about its shape. The condition is cloned as
|
|
55
|
+
// a FULL instance per trial (`dup`, ADR-005) — a bare clone
|
|
56
|
+
// shares call/pref innards across trials (see PackFuncVal).
|
|
57
|
+
const inst = cond.clone(kctx, { dup: true });
|
|
58
|
+
(0, Val_1.repathInstance)(inst, inst.path);
|
|
59
|
+
const test = (0, PlaceVal_1.fillPlace)(inst, child, kctx);
|
|
60
|
+
const met = (0, FuncBaseVal_1.trialUnify)(kctx, child.clone(kctx), test);
|
|
61
|
+
return undefined !== met && met.canon === child.canon;
|
|
62
|
+
};
|
|
63
|
+
if (true === data?.isMap) {
|
|
64
|
+
const peg = {};
|
|
65
|
+
for (const key of Object.keys(data.peg)) {
|
|
66
|
+
const kctx = ctx.descend(key);
|
|
67
|
+
if (keeps(data.peg[key], kctx)) {
|
|
68
|
+
peg[key] = data.peg[key].clone(kctx);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return new MapVal_1.MapVal({ peg }, ctx);
|
|
72
|
+
}
|
|
73
|
+
if (true === data?.isList) {
|
|
74
|
+
const peg = [];
|
|
75
|
+
for (const el of data.peg) {
|
|
76
|
+
// The element context is the position it will END UP at, which
|
|
77
|
+
// is its index in the RESULT: dropping the third of five moves
|
|
78
|
+
// the fourth up, and a kept element must be pathed where it
|
|
79
|
+
// lands rather than where it came from.
|
|
80
|
+
const ectx = ctx.descend(String(peg.length));
|
|
81
|
+
if (keeps(el, ectx)) {
|
|
82
|
+
peg.push(el.clone(ectx));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return new ListVal_1.ListVal({ peg }, ctx);
|
|
86
|
+
}
|
|
87
|
+
return (0, err_1.makeNilErr)(ctx, 'filter_data', this);
|
|
88
|
+
}
|
|
89
|
+
} /* node:coverage ignore next 5 */
|
|
90
|
+
exports.FilterFuncVal = FilterFuncVal;
|
|
91
|
+
//# sourceMappingURL=FilterFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterFuncVal.js","sourceRoot":"","sources":["../../src/val/FilterFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { AontuContext } from '../ctx';
|
|
3
3
|
import { FeatureVal } from '../val/FeatureVal';
|
|
4
|
+
declare function trialUnify(ctx: AontuContext, a: Val, b: Val): Val | undefined;
|
|
4
5
|
declare class FuncBaseVal extends FeatureVal {
|
|
5
6
|
isFunc: boolean;
|
|
6
7
|
isGenable: boolean;
|
|
8
|
+
staged: boolean;
|
|
7
9
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
8
10
|
validateArgs(args: Val[], min: number): void;
|
|
9
11
|
make(ctx: AontuContext, _spec: ValSpec): Val;
|
|
12
|
+
driveStagedArgs(ctx: AontuContext, count: number): boolean;
|
|
13
|
+
clone(ctx: AontuContext, spec?: ValSpec): Val;
|
|
14
|
+
residuate(peer: Val, ctx: AontuContext): Val;
|
|
10
15
|
unify(peer: Val, ctx: AontuContext): Val;
|
|
11
16
|
get canon(): string;
|
|
12
17
|
funcname(): string;
|
|
13
18
|
prepare(_ctx: AontuContext, args: Val[]): Val[] | null;
|
|
14
19
|
resolve(ctx: AontuContext, _args: Val[]): Val;
|
|
15
20
|
}
|
|
16
|
-
export { FuncBaseVal, };
|
|
21
|
+
export { trialUnify, FuncBaseVal, };
|
package/dist/val/FuncBaseVal.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.FuncBaseVal = void 0;
|
|
5
|
+
exports.trialUnify = trialUnify;
|
|
5
6
|
const type_1 = require("../type");
|
|
6
7
|
const unify_1 = require("../unify");
|
|
7
8
|
const utility_1 = require("../utility");
|
|
@@ -9,11 +10,46 @@ const err_1 = require("../err");
|
|
|
9
10
|
const top_1 = require("./top");
|
|
10
11
|
const ConjunctVal_1 = require("../val/ConjunctVal");
|
|
11
12
|
const FeatureVal_1 = require("../val/FeatureVal");
|
|
13
|
+
const PlaceVal_1 = require("../val/PlaceVal");
|
|
14
|
+
// A TRIAL meet: does `a` unify with `b`, and if so as what? Failure is
|
|
15
|
+
// an ANSWER here rather than an error, which is exactly what
|
|
16
|
+
// DisjunctVal already needs when it tries each member against a peer —
|
|
17
|
+
// so this is that mechanism (`ctx._trialMode`, which makes makeNilErr
|
|
18
|
+
// return the shared TRIAL_NIL instead of allocating and recording),
|
|
19
|
+
// lent to the combinators that select by unifiability.
|
|
20
|
+
//
|
|
21
|
+
// The error list and the trial flag are saved and restored in a
|
|
22
|
+
// `finally`: a trial that throws must not leave the surrounding
|
|
23
|
+
// evaluation collapsing every later error into the sentinel.
|
|
24
|
+
function trialUnify(ctx, a, b) {
|
|
25
|
+
const savedErr = ctx.err;
|
|
26
|
+
const savedTrial = ctx._trialMode;
|
|
27
|
+
const trialErr = [];
|
|
28
|
+
ctx.err = trialErr;
|
|
29
|
+
ctx._trialMode = true;
|
|
30
|
+
let out;
|
|
31
|
+
try {
|
|
32
|
+
out = (0, unify_1.unite)(ctx, a, b, 'trial');
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
ctx.err = savedErr;
|
|
36
|
+
ctx._trialMode = savedTrial;
|
|
37
|
+
}
|
|
38
|
+
return 0 < trialErr.length || out.isNil ? undefined : out;
|
|
39
|
+
}
|
|
12
40
|
class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
13
41
|
constructor(spec, ctx) {
|
|
14
42
|
super(spec, ctx);
|
|
15
43
|
this.isFunc = true;
|
|
16
44
|
this.isGenable = true;
|
|
45
|
+
// THE STAGING RULE (G8 phase 0, see AontuContext.settle). A func
|
|
46
|
+
// whose answer depends on WHERE IT IS -- `key()`, whose answer is a
|
|
47
|
+
// segment of its own path, and the generation combinators, whose
|
|
48
|
+
// data argument can still be merged into by a sibling -- sets this
|
|
49
|
+
// and residuates until the model stops moving. Everything else
|
|
50
|
+
// resolves as soon as its arguments are done, which is the rule that
|
|
51
|
+
// has always been here.
|
|
52
|
+
this.staged = false;
|
|
17
53
|
// console.log('FBV', this.id, this.constructor.name, this.peg?.[0]?.canon)
|
|
18
54
|
}
|
|
19
55
|
validateArgs(args, min) {
|
|
@@ -26,7 +62,103 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
26
62
|
make(ctx, _spec) {
|
|
27
63
|
return (0, err_1.makeNilErr)(ctx, 'func:' + this.funcname(), this, undefined, 'make');
|
|
28
64
|
}
|
|
65
|
+
// Drive the first `count` arguments IN PLACE, every pass — not only
|
|
66
|
+
// on the settle pass. A staged func waits for the model to settle,
|
|
67
|
+
// and its own arguments are part of that model: leaving them
|
|
68
|
+
// standing until settle would guarantee the model was still moving
|
|
69
|
+
// when settle arrived. Answers whether they are all done, which is
|
|
70
|
+
// the other half of "ready to fire".
|
|
71
|
+
driveStagedArgs(ctx, count) {
|
|
72
|
+
const TOP = (0, top_1.top)();
|
|
73
|
+
let alldone = true;
|
|
74
|
+
// THE SNAPSHOT WAITS FOR THE SOURCE (the spread-then-pack defect,
|
|
75
|
+
// use-cases/BUGS.md pack-refs family). A reference resolving inside
|
|
76
|
+
// a staged argument is this argument's SNAPSHOT of its source, and
|
|
77
|
+
// the snapshot is not part of the tree: a spread-injected relative
|
|
78
|
+
// reference inside a too-early copy dangles at the argument's
|
|
79
|
+
// location (`.containerPort` rebased under the generator, where no
|
|
80
|
+
// root traversal reaches it) and the generator never fires. The
|
|
81
|
+
// `argsnap` flag makes RefVal.find defer until the target has
|
|
82
|
+
// finished resolving IN THE TREE — where its own spreads and
|
|
83
|
+
// relative references answer at their real location — and only then
|
|
84
|
+
// take the copy. Inherited by every descended ctx, so a reference
|
|
85
|
+
// anywhere in the argument subtree waits the same way.
|
|
86
|
+
const actx = ctx.clone({});
|
|
87
|
+
actx.argsnap = true;
|
|
88
|
+
for (let i = 0; i < count && i < this.peg.length; i++) {
|
|
89
|
+
const arg = this.peg[i];
|
|
90
|
+
if (!arg.done) {
|
|
91
|
+
// Charged to the depth budget, as FuncBaseVal's own arg loop is:
|
|
92
|
+
// this recurses without going through `unite`.
|
|
93
|
+
this.peg[i] = (0, unify_1.withDepth)(ctx, arg, TOP, () => arg.unify(TOP, actx));
|
|
94
|
+
}
|
|
95
|
+
alldone = alldone && true === this.peg[i].done;
|
|
96
|
+
}
|
|
97
|
+
return alldone;
|
|
98
|
+
}
|
|
99
|
+
// THE PER-DESTINATION INSTANTIATION RULE (ADR-005). The default
|
|
100
|
+
// clone shares the argument array AND the argument Vals — pinned
|
|
101
|
+
// sharing for the move()/copy() ghost artifacts (test/spec/func.tsv,
|
|
102
|
+
// ghost-*-innard-canon) — but a clone that is a template INSTANCE
|
|
103
|
+
// must own the full inner structure: with the args shared,
|
|
104
|
+
// `pack($.names, close({name: key()}))` resolved key() once inside
|
|
105
|
+
// the one shared inner map and stamped the FIRST child's key on
|
|
106
|
+
// every child (use-cases/BUGS.md §8). The `dup` spec flag asks for
|
|
107
|
+
// that depth; everything else keeps the sharing it has always had.
|
|
108
|
+
clone(ctx, spec) {
|
|
109
|
+
const out = super.clone(ctx, spec);
|
|
110
|
+
if (true === spec?.dup && Array.isArray(this.peg)) {
|
|
111
|
+
// Every argument is a Val by construction (the parser builds
|
|
112
|
+
// them; make() rebuilds from driven Vals), as the Go twin's
|
|
113
|
+
// []Val typing states outright. The instantiation sites then
|
|
114
|
+
// normalise every path in the clone (repathInstance), so the
|
|
115
|
+
// argument-shaped parse paths never leak into an instance.
|
|
116
|
+
out.peg = this.peg.map((a) => a.clone(ctx, { dup: true }));
|
|
117
|
+
}
|
|
118
|
+
return out;
|
|
119
|
+
}
|
|
120
|
+
// The shape a staged func holds while it waits: not done, so the pass
|
|
121
|
+
// loop keeps going; unchanged against TOP, so nothing reads an answer
|
|
122
|
+
// it has not given; and collapsed against an identical twin at the
|
|
123
|
+
// same position, so `key() & key()` does not grow a conjunct per pass.
|
|
124
|
+
residuate(peer, ctx) {
|
|
125
|
+
this.notdone();
|
|
126
|
+
if (peer.isTop || (peer.id === this.id)) {
|
|
127
|
+
// Cloned rather than returned: a driver that met the same object
|
|
128
|
+
// twice in one pass would charge the revisit budget and report
|
|
129
|
+
// `unify_cycle`.
|
|
130
|
+
return this.clone(ctx);
|
|
131
|
+
}
|
|
132
|
+
if (peer.isNil) {
|
|
133
|
+
return peer;
|
|
134
|
+
}
|
|
135
|
+
if (peer.isFunc
|
|
136
|
+
&& peer.funcname() === this.funcname()
|
|
137
|
+
&& peer.path.join('.') === this.path.join('.')
|
|
138
|
+
&& peer.canon === this.canon) {
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
return new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
|
|
142
|
+
}
|
|
29
143
|
unify(peer, ctx) {
|
|
144
|
+
if (this.staged && !ctx.settle) {
|
|
145
|
+
return this.residuate(peer, ctx);
|
|
146
|
+
}
|
|
147
|
+
// THE PLACEHOLDER (G8 phase 3, see PlaceVal). A call holding a hole
|
|
148
|
+
// waits for a peer, and the peer is what fills it: the call is
|
|
149
|
+
// rebuilt with the hole replaced and resolved on the spot, so
|
|
150
|
+
// `upper(_) & hello` is `"HELLO"` and not `"HELLO" & "hello"` --
|
|
151
|
+
// the peer went INTO the call, it is not also a constraint on the
|
|
152
|
+
// way out.
|
|
153
|
+
if (!peer.isTop && !peer.isNil && this.id !== peer.id && (0, PlaceVal_1.hasPlace)(this)) {
|
|
154
|
+
// TWO HOLES AND NOTHING TO FILL THEM. `upper(_) & lower(_)` has
|
|
155
|
+
// no value on either side, and picking one call to be the other's
|
|
156
|
+
// filling would be inventing an order the language does not have.
|
|
157
|
+
if ((0, PlaceVal_1.hasPlace)(peer)) {
|
|
158
|
+
return (0, err_1.makeNilErr)(ctx, 'place_pair', this, peer);
|
|
159
|
+
}
|
|
160
|
+
return (0, PlaceVal_1.fillPlace)(this, peer, ctx).unify((0, top_1.top)(), ctx);
|
|
161
|
+
}
|
|
30
162
|
const TOP = (0, top_1.top)();
|
|
31
163
|
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Func:' + this.funcname(), this, peer);
|
|
32
164
|
// const sc = this.id + '=' + this.canon
|
|
@@ -54,7 +186,13 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
54
186
|
// console.log('FUNCBASE-UNIFY-PEG-A', arg.canon)
|
|
55
187
|
let newarg = arg;
|
|
56
188
|
if (!arg.done) {
|
|
57
|
-
|
|
189
|
+
// Charged to the depth budget: this recurses without going
|
|
190
|
+
// through `unite`, so the counter would otherwise stay flat
|
|
191
|
+
// while the stack grows (see withDepth in unify.ts). The
|
|
192
|
+
// arg context is built OUTSIDE the closure so its explain
|
|
193
|
+
// ternary stays one branch rather than one per call.
|
|
194
|
+
const argctx = te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'ARG') }) : ctx;
|
|
195
|
+
newarg = (0, unify_1.withDepth)(ctx, arg, TOP, () => arg.unify(TOP, argctx));
|
|
58
196
|
newtype = newtype || newarg.mark.type;
|
|
59
197
|
newhide = newhide || newarg.mark.hide;
|
|
60
198
|
// console.log('FUNCBASE-UNIFY-PEG-B', arg.canon, arg.done, '->', newarg.canon, newarg.done)
|
|
@@ -68,13 +206,29 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
68
206
|
if (pegdone) {
|
|
69
207
|
const resolved = this.resolve(ctx, newpeg);
|
|
70
208
|
// console.log('FUNC-RESOLVED', ctx.cc, resolved?.canon)
|
|
71
|
-
|
|
209
|
+
// The TOP peer is DROPPED as the unit it is — unless it
|
|
210
|
+
// carries an identity (G4 phase 1), which is content rather
|
|
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 :
|
|
72
215
|
(0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PEG') }) : ctx, resolved, peer, 'func-' + this.funcname() + '/' + this.id);
|
|
73
216
|
(0, utility_1.propagateMarks)(this, out);
|
|
74
217
|
// TODO: make should handle this using ctx?
|
|
75
218
|
out.site.row = this.site.row;
|
|
76
219
|
out.site.col = this.site.col;
|
|
77
220
|
out.site.url = this.site.url;
|
|
221
|
+
// THE SPAN COMES WITH THE POSITION, always. Moving row and
|
|
222
|
+
// col onto the result while leaving its own text behind
|
|
223
|
+
// produced a site that contradicted itself: `close({...})`
|
|
224
|
+
// reported the call's column and the map's `{`, so reading
|
|
225
|
+
// the document at (row, col, len) found `c` where `src` said
|
|
226
|
+
// `{`. A consumer following the verification contract would
|
|
227
|
+
// refuse every such repair; one skipping it would edit the
|
|
228
|
+
// wrong token. Whatever the position names, the text names
|
|
229
|
+
// too. Twin: the same assignment in go/func.go.
|
|
230
|
+
out.site.len = this.site.len;
|
|
231
|
+
out.site.src = this.site.src;
|
|
78
232
|
out.path = this.path;
|
|
79
233
|
why += 'pegdone';
|
|
80
234
|
}
|
|
@@ -85,6 +239,17 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
85
239
|
out.site.row = this.site.row;
|
|
86
240
|
out.site.col = this.site.col;
|
|
87
241
|
out.site.url = this.site.url;
|
|
242
|
+
// THE SPAN COMES WITH THE POSITION, always. Moving row and
|
|
243
|
+
// col onto the result while leaving its own text behind
|
|
244
|
+
// produced a site that contradicted itself: `close({...})`
|
|
245
|
+
// reported the call's column and the map's `{`, so reading
|
|
246
|
+
// the document at (row, col, len) found `c` where `src` said
|
|
247
|
+
// `{`. A consumer following the verification contract would
|
|
248
|
+
// refuse every such repair; one skipping it would edit the
|
|
249
|
+
// wrong token. Whatever the position names, the text names
|
|
250
|
+
// too. Twin: the same assignment in go/func.go.
|
|
251
|
+
out.site.len = this.site.len;
|
|
252
|
+
out.site.src = this.site.src;
|
|
88
253
|
out.path = this.path;
|
|
89
254
|
why += 'top';
|
|
90
255
|
}
|
|
@@ -102,6 +267,17 @@ class FuncBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
102
267
|
out.site.row = this.site.row;
|
|
103
268
|
out.site.col = this.site.col;
|
|
104
269
|
out.site.url = this.site.url;
|
|
270
|
+
// THE SPAN COMES WITH THE POSITION, always. Moving row and
|
|
271
|
+
// col onto the result while leaving its own text behind
|
|
272
|
+
// produced a site that contradicted itself: `close({...})`
|
|
273
|
+
// reported the call's column and the map's `{`, so reading
|
|
274
|
+
// the document at (row, col, len) found `c` where `src` said
|
|
275
|
+
// `{`. A consumer following the verification contract would
|
|
276
|
+
// refuse every such repair; one skipping it would edit the
|
|
277
|
+
// wrong token. Whatever the position names, the text names
|
|
278
|
+
// too. Twin: the same assignment in go/func.go.
|
|
279
|
+
out.site.len = this.site.len;
|
|
280
|
+
out.site.src = this.site.src;
|
|
105
281
|
out.path = this.path;
|
|
106
282
|
why += 'defer';
|
|
107
283
|
}
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HideFuncVal.js","sourceRoot":"","sources":["../../src/val/HideFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,
|
|
1
|
+
{"version":3,"file":"HideFuncVal.js","sourceRoot":"","sources":["../../src/val/HideFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,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;QAUf,qCAAqC;QACrC,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;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD;;;;;;;;;;;;MAYE;IAGF,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEpB,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACxD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBACpB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,iCAAiC;QAIjC,WAAW"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
4
|
+
import { TopVal } from './TopVal';
|
|
5
|
+
export declare function idName(v: any): string | undefined;
|
|
6
|
+
declare class IdFuncVal extends FuncBaseVal {
|
|
7
|
+
isIdFunc: boolean;
|
|
8
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
9
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
10
|
+
funcname(): string;
|
|
11
|
+
resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | TopVal;
|
|
12
|
+
}
|
|
13
|
+
export { IdFuncVal, };
|