aontu 0.44.0 → 0.46.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/cli.d.ts +9 -0
- package/dist/cli.js +203 -0
- package/dist/cli.js.map +1 -0
- package/dist/ctx.d.ts +2 -5
- package/dist/ctx.js +1 -2
- package/dist/ctx.js.map +1 -1
- package/dist/lang.d.ts +1 -5
- package/dist/lang.js +24 -100
- package/dist/lang.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +0 -5
- package/dist/type.js.map +1 -1
- package/dist/unify.js +13 -292
- package/dist/unify.js.map +1 -1
- package/dist/utility.js +2 -6
- package/dist/utility.js.map +1 -1
- package/dist/val/BagVal.d.ts +3 -0
- 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 +14 -137
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/CopyFuncVal.js +2 -3
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.js +0 -4
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/ExpectVal.js +3 -16
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/JunctionVal.d.ts +0 -1
- package/dist/val/JunctionVal.js +1 -6
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.js +2 -0
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.d.ts +0 -1
- package/dist/val/ListVal.js +66 -33
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +2 -3
- package/dist/val/MapVal.js +95 -67
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MoveFuncVal.d.ts +1 -2
- package/dist/val/MoveFuncVal.js +13 -78
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +4 -25
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlusOpVal.d.ts +1 -1
- package/dist/val/PrefVal.js +5 -18
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/{PathVal.d.ts → RefVal.d.ts} +3 -4
- package/dist/val/{PathVal.js → RefVal.js} +77 -75
- package/dist/val/RefVal.js.map +1 -0
- package/dist/val/Val.d.ts +1 -2
- package/dist/val/Val.js +8 -7
- 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 +9 -4
- package/src/cli.ts +193 -0
- package/src/ctx.ts +3 -16
- package/src/lang.ts +23 -113
- package/src/type.ts +0 -5
- package/src/unify.ts +13 -310
- package/src/utility.ts +2 -5
- package/src/val/BagVal.ts +7 -6
- package/src/val/ConjunctVal.ts +13 -131
- package/src/val/CopyFuncVal.ts +2 -3
- package/src/val/DisjunctVal.ts +0 -6
- package/src/val/ExpectVal.ts +4 -18
- package/src/val/JunctionVal.ts +1 -5
- package/src/val/KeyFuncVal.ts +3 -0
- package/src/val/ListVal.ts +88 -38
- package/src/val/MapVal.ts +124 -75
- package/src/val/MoveFuncVal.ts +14 -79
- package/src/val/PathFuncVal.ts +4 -29
- package/src/val/PrefVal.ts +6 -19
- package/src/val/{RefVal.ts.old → RefVal.ts} +19 -30
- package/src/val/Val.ts +9 -9
- package/src/val/VarVal.ts +2 -2
- package/README.md +0 -18
- package/dist/val/PathVal.js.map +0 -1
- package/dist/val/SpreadVal.d.ts +0 -20
- package/dist/val/SpreadVal.js +0 -194
- package/dist/val/SpreadVal.js.map +0 -1
- package/src/val/PathVal.ts +0 -435
- package/src/val/SpreadVal.ts +0 -275
package/dist/val/MoveFuncVal.js
CHANGED
|
@@ -3,61 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.MoveFuncVal = void 0;
|
|
5
5
|
const err_1 = require("../err");
|
|
6
|
-
const PathVal_1 = require("../val/PathVal");
|
|
7
6
|
const utility_1 = require("../utility");
|
|
8
7
|
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
9
8
|
const PrefFuncVal_1 = require("./PrefFuncVal");
|
|
10
|
-
// Navigate the tree using a PathVal's resolved path and hide the source.
|
|
11
|
-
function hideAtPath(root, pv) {
|
|
12
|
-
// Compute the refpath the same way PathVal.find does
|
|
13
|
-
const parts = [];
|
|
14
|
-
for (const part of pv.peg) {
|
|
15
|
-
if ('string' === typeof part)
|
|
16
|
-
parts.push(part);
|
|
17
|
-
}
|
|
18
|
-
let refpath;
|
|
19
|
-
if (pv.absolute) {
|
|
20
|
-
refpath = parts;
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
refpath = pv.path.slice(0, -1).concat(parts);
|
|
24
|
-
}
|
|
25
|
-
// Walk to the source, handling conjuncts/disjuncts
|
|
26
|
-
let node = root;
|
|
27
|
-
for (let i = 0; i < refpath.length; i++) {
|
|
28
|
-
const part = refpath[i];
|
|
29
|
-
if (node?.isMap || node?.isList) {
|
|
30
|
-
node = node.peg[part];
|
|
31
|
-
}
|
|
32
|
-
else if (node?.isConjunct || node?.isDisjunct) {
|
|
33
|
-
// Search junction terms for the key
|
|
34
|
-
let found = null;
|
|
35
|
-
const stack = [...node.peg];
|
|
36
|
-
while (stack.length > 0) {
|
|
37
|
-
const term = stack.pop();
|
|
38
|
-
if (term?.isConjunct || term?.isDisjunct) {
|
|
39
|
-
stack.push(...term.peg);
|
|
40
|
-
}
|
|
41
|
-
else if ((term?.isMap || term?.isList) && term.peg[part] != null) {
|
|
42
|
-
found = term.peg[part];
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
node = found;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
if (node == null)
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
// Mark the source value hidden
|
|
55
|
-
node.mark.hide = true;
|
|
56
|
-
(0, utility_1.walk)(node, (_key, val) => {
|
|
57
|
-
val.mark.hide = true;
|
|
58
|
-
return val;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
9
|
class MoveFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
62
10
|
constructor(spec, ctx) {
|
|
63
11
|
super(spec, ctx);
|
|
@@ -73,36 +21,23 @@ class MoveFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
73
21
|
return null;
|
|
74
22
|
}
|
|
75
23
|
resolve(ctx, args) {
|
|
76
|
-
let
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return (0, err_1.makeNilErr)(ctx, 'arg', this);
|
|
85
|
-
// Hide the source in the tree by navigating to it
|
|
86
|
-
hideAtPath(ctx.root, arg);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
src = arg.clone(ctx);
|
|
90
|
-
// Hide the original
|
|
91
|
-
arg.mark.hide = true;
|
|
92
|
-
(0, utility_1.walk)(arg, (_key, val) => {
|
|
24
|
+
let out = args[0] ?? (0, err_1.makeNilErr)(ctx, 'arg', this);
|
|
25
|
+
const orig = out;
|
|
26
|
+
if (!orig.isNil) {
|
|
27
|
+
const src = orig.clone(ctx);
|
|
28
|
+
if (src.isRef) {
|
|
29
|
+
src.mark._hide_found = true;
|
|
30
|
+
}
|
|
31
|
+
(0, utility_1.walk)(orig, (_key, val) => {
|
|
93
32
|
val.mark.hide = true;
|
|
94
33
|
return val;
|
|
95
34
|
});
|
|
35
|
+
// out = new CopyFuncVal({ peg: [src] }, ctx)
|
|
36
|
+
out = new PrefFuncVal_1.PrefFuncVal({ peg: [src] }, ctx);
|
|
37
|
+
// out = src
|
|
96
38
|
}
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
src.mark.hide = false;
|
|
100
|
-
(0, utility_1.walk)(src, (_key, val) => {
|
|
101
|
-
val.mark.type = false;
|
|
102
|
-
val.mark.hide = false;
|
|
103
|
-
return val;
|
|
104
|
-
});
|
|
105
|
-
return new PrefFuncVal_1.PrefFuncVal({ peg: [src] }, ctx);
|
|
39
|
+
// console.log('MOVE-resolve', orig, out)
|
|
40
|
+
return out;
|
|
106
41
|
}
|
|
107
42
|
}
|
|
108
43
|
exports.MoveFuncVal = MoveFuncVal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveFuncVal.js","sourceRoot":"","sources":["../../src/val/MoveFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;
|
|
1
|
+
{"version":3,"file":"MoveFuncVal.js","sourceRoot":"","sources":["../../src/val/MoveFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAInC,wCAEmB;AAInB,+CAA2C;AAE3C,+CAA2C;AAI3C,MAAM,WAAY,SAAQ,yBAAW;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,eAAU,GAAG,IAAI,CAAA;IAOjB,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;IAED,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,MAAM,IAAI,GAAG,GAAG,CAAA;QAEhB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAE3B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YAC7B,CAAC;YAED,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBACpB,OAAO,GAAG,CAAA;YACZ,CAAC,CAAC,CAAA;YAEF,6CAA6C;YAC7C,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAC1C,YAAY;QACd,CAAC;QAED,yCAAyC;QAEzC,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAIC,kCAAW"}
|
package/dist/val/PathFuncVal.js
CHANGED
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.PathFuncVal = void 0;
|
|
5
|
-
const type_1 = require("../type");
|
|
6
5
|
const err_1 = require("../err");
|
|
7
|
-
const
|
|
6
|
+
const RefVal_1 = require("../val/RefVal");
|
|
8
7
|
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
9
8
|
class PathFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
10
9
|
constructor(spec, ctx) {
|
|
@@ -23,26 +22,12 @@ class PathFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
23
22
|
prepare(ctx, args) {
|
|
24
23
|
let arg = args[0];
|
|
25
24
|
if (0 === this.prepared) {
|
|
26
|
-
if (arg
|
|
27
|
-
|
|
28
|
-
const found = arg.find(ctx);
|
|
29
|
-
if (found != null && !found.isNil) {
|
|
30
|
-
arg = found;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
arg.dc = type_1.DONE;
|
|
34
|
-
}
|
|
25
|
+
if (arg.isScalar) {
|
|
26
|
+
arg = this.place(new RefVal_1.RefVal({ peg: [arg], absolute: false }));
|
|
35
27
|
}
|
|
36
|
-
else if (arg.
|
|
37
|
-
&& ('string' === typeof arg.peg || arg.isNumber)) {
|
|
38
|
-
// String or number arg like path("foo") or path(0.2) — create a path value
|
|
39
|
-
arg = this.place(new PathVal_1.PathVal({ peg: [arg], absolute: false }));
|
|
40
|
-
arg.dc = type_1.DONE;
|
|
41
|
-
}
|
|
42
|
-
else if (arg.isNil || (arg.isScalar && (arg.peg === '' || arg.peg == null))) {
|
|
28
|
+
else if (!arg.isRef) {
|
|
43
29
|
arg = (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
|
|
44
30
|
}
|
|
45
|
-
// else: already resolved by preprocessing — pass through
|
|
46
31
|
}
|
|
47
32
|
args[0] = arg;
|
|
48
33
|
this.prepared++;
|
|
@@ -50,12 +35,6 @@ class PathFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
50
35
|
}
|
|
51
36
|
resolve(ctx, args) {
|
|
52
37
|
let out = args[0] ?? (0, err_1.makeNilErr)(ctx, 'arg', this);
|
|
53
|
-
if (out instanceof PathVal_1.PathVal) {
|
|
54
|
-
const found = out.find(ctx);
|
|
55
|
-
if (found != null && !found.isNil) {
|
|
56
|
-
out = found;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
38
|
return out;
|
|
60
39
|
}
|
|
61
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathFuncVal.js","sourceRoot":"","sources":["../../src/val/PathFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"PathFuncVal.js","sourceRoot":"","sources":["../../src/val/PathFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,0CAAsC;AACtC,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QAEjB,aAAQ,GAAG,CAAC,CAAA;IAOZ,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;QACtC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QACjC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAEjB,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,eAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAC/D,CAAC;iBACI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;QAEb,IAAI,CAAC,QAAQ,EAAE,CAAA;QAEf,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF;AAIC,kCAAW"}
|
package/dist/val/PlusOpVal.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ declare class PlusOpVal extends OpBaseVal {
|
|
|
10
10
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
11
11
|
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
12
12
|
opname(): string;
|
|
13
|
-
operate(_ctx: AontuContext, args: Val[]):
|
|
13
|
+
operate(_ctx: AontuContext, args: Val[]): BooleanVal | IntegerVal | NumberVal | StringVal | undefined;
|
|
14
14
|
get canon(): string;
|
|
15
15
|
}
|
|
16
16
|
export { PlusOpVal, };
|
package/dist/val/PrefVal.js
CHANGED
|
@@ -7,7 +7,6 @@ const unify_1 = require("../unify");
|
|
|
7
7
|
const err_1 = require("../err");
|
|
8
8
|
const utility_1 = require("../utility");
|
|
9
9
|
const top_1 = require("./top");
|
|
10
|
-
const ConjunctVal_1 = require("./ConjunctVal");
|
|
11
10
|
const FeatureVal_1 = require("./FeatureVal");
|
|
12
11
|
class PrefVal extends FeatureVal_1.FeatureVal {
|
|
13
12
|
constructor(spec, ctx) {
|
|
@@ -34,13 +33,10 @@ class PrefVal extends FeatureVal_1.FeatureVal {
|
|
|
34
33
|
let why = '';
|
|
35
34
|
if (!this.peg.done) {
|
|
36
35
|
const resolved = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'RES') }) : ctx, this.peg, (0, top_1.top)(), 'pref/resolve');
|
|
36
|
+
// console.log('PREF-RESOLVED', this.peg.canon, '->', resolved)
|
|
37
37
|
this.peg = resolved;
|
|
38
38
|
this.superpeg = this.peg.superior();
|
|
39
39
|
}
|
|
40
|
-
else if (this.superpeg.isTop && !this.peg.isTop) {
|
|
41
|
-
// Stale superpeg from pre-resolved PathVal — recalculate
|
|
42
|
-
this.superpeg = this.peg.superior();
|
|
43
|
-
}
|
|
44
40
|
if (peer instanceof PrefVal) {
|
|
45
41
|
why += 'pref-';
|
|
46
42
|
if (this.id === peer.id) {
|
|
@@ -73,19 +69,10 @@ class PrefVal extends FeatureVal_1.FeatureVal {
|
|
|
73
69
|
}
|
|
74
70
|
else if (!peer.isTop) {
|
|
75
71
|
why += 'super-';
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
done = false;
|
|
81
|
-
why += 'defer';
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
out = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SUPER') }) : ctx, this.superpeg, peer, 'pref-super/' + this.id);
|
|
85
|
-
if (out.same(this.superpeg)) {
|
|
86
|
-
out = this.peg;
|
|
87
|
-
why += 'same';
|
|
88
|
-
}
|
|
72
|
+
out = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'SUPER') }) : ctx, this.superpeg, peer, 'pref-super/' + this.id);
|
|
73
|
+
if (out.same(this.superpeg)) {
|
|
74
|
+
out = this.peg;
|
|
75
|
+
why += 'same';
|
|
89
76
|
}
|
|
90
77
|
// }
|
|
91
78
|
}
|
package/dist/val/PrefVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../src/val/PrefVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAGhB,oCAAgC;AAChC,gCAAmC;AAEnC,wCAImB;AAGnB,+BAA2B;AAE3B
|
|
1
|
+
{"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../src/val/PrefVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { AontuContext } from '../ctx';
|
|
3
3
|
import { FeatureVal } from './FeatureVal';
|
|
4
|
-
declare class
|
|
5
|
-
|
|
4
|
+
declare class RefVal extends FeatureVal {
|
|
5
|
+
isRef: boolean;
|
|
6
6
|
isGenable: boolean;
|
|
7
7
|
cjo: number;
|
|
8
8
|
absolute: boolean;
|
|
9
9
|
prefix: boolean;
|
|
10
|
-
_resolved: Val | undefined;
|
|
11
10
|
constructor(spec: {
|
|
12
11
|
peg: any[];
|
|
13
12
|
absolute?: boolean;
|
|
@@ -22,4 +21,4 @@ declare class PathVal extends FeatureVal {
|
|
|
22
21
|
gen(ctx: AontuContext): undefined;
|
|
23
22
|
inspection(): string;
|
|
24
23
|
}
|
|
25
|
-
export {
|
|
24
|
+
export { RefVal, };
|
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
2
|
+
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
5
|
-
const type_1 = require("../type");
|
|
4
|
+
exports.RefVal = void 0;
|
|
6
5
|
const utility_1 = require("../utility");
|
|
7
|
-
const
|
|
6
|
+
const type_1 = require("../type");
|
|
8
7
|
const err_1 = require("../err");
|
|
8
|
+
const unify_1 = require("../unify");
|
|
9
9
|
const top_1 = require("./top");
|
|
10
10
|
const StringVal_1 = require("./StringVal");
|
|
11
11
|
const IntegerVal_1 = require("./IntegerVal");
|
|
12
12
|
const NumberVal_1 = require("./NumberVal");
|
|
13
|
-
const VarVal_1 = require("./VarVal");
|
|
14
13
|
const ConjunctVal_1 = require("./ConjunctVal");
|
|
15
|
-
const
|
|
14
|
+
const VarVal_1 = require("./VarVal");
|
|
16
15
|
const FeatureVal_1 = require("./FeatureVal");
|
|
17
|
-
class
|
|
16
|
+
class RefVal extends FeatureVal_1.FeatureVal {
|
|
18
17
|
constructor(spec, ctx) {
|
|
19
18
|
super(spec, ctx);
|
|
20
|
-
this.
|
|
19
|
+
this.isRef = true;
|
|
21
20
|
this.isGenable = true;
|
|
22
21
|
this.cjo = 32500;
|
|
23
22
|
this.absolute = false;
|
|
24
23
|
this.prefix = false;
|
|
25
|
-
this._resolved = undefined;
|
|
26
24
|
this.peg = [];
|
|
27
25
|
this.absolute = true === this.absolute ? true : // absolute sticks
|
|
28
26
|
true === spec.absolute ? true : false;
|
|
@@ -30,9 +28,11 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
30
28
|
for (let pI = 0; pI < spec.peg.length; pI++) {
|
|
31
29
|
this.append(spec.peg[pI]);
|
|
32
30
|
}
|
|
31
|
+
//console.log('RefVal', this.id, this.peg)
|
|
33
32
|
}
|
|
34
33
|
append(part) {
|
|
35
34
|
let partval;
|
|
35
|
+
// console.log('APPEND', part)
|
|
36
36
|
if ('string' === typeof part) {
|
|
37
37
|
partval = part;
|
|
38
38
|
this.peg.push(partval);
|
|
@@ -42,10 +42,15 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
42
42
|
this.peg.push(partval);
|
|
43
43
|
}
|
|
44
44
|
else if (part instanceof IntegerVal_1.IntegerVal) {
|
|
45
|
+
// partval = '' + part.peg
|
|
45
46
|
partval = part.src;
|
|
46
47
|
this.peg.push(partval);
|
|
47
48
|
}
|
|
49
|
+
// TODO: this is a bit of a hack, review
|
|
50
|
+
// Seems like a fundamental ambiguity?
|
|
51
|
+
// Resolved by path function
|
|
48
52
|
else if (part instanceof NumberVal_1.NumberVal) {
|
|
53
|
+
// let partvals: string[] = part.peg.toFixed(11).replace(/(\.0)?0+$/, '$1').split('.')
|
|
49
54
|
let partvals = part.src.split('.');
|
|
50
55
|
this.peg.push(...partvals);
|
|
51
56
|
}
|
|
@@ -53,7 +58,7 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
53
58
|
partval = part;
|
|
54
59
|
this.peg.push(partval);
|
|
55
60
|
}
|
|
56
|
-
else if (part instanceof
|
|
61
|
+
else if (part instanceof RefVal) {
|
|
57
62
|
if (part.absolute) {
|
|
58
63
|
this.absolute = true;
|
|
59
64
|
}
|
|
@@ -77,21 +82,47 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
77
82
|
}
|
|
78
83
|
unify(peer, ctx) {
|
|
79
84
|
peer = peer ?? (0, top_1.top)();
|
|
80
|
-
|
|
81
|
-
if (this.done)
|
|
82
|
-
return this;
|
|
85
|
+
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Ref', this, peer);
|
|
83
86
|
let out = this;
|
|
84
|
-
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
87
|
+
let why = 'id';
|
|
88
|
+
if (this.id !== peer.id) {
|
|
89
|
+
// TODO: not resolved when all Vals in path are done is an error
|
|
90
|
+
// as path cannot be found
|
|
91
|
+
// let resolved: Val | undefined = null == ctx ? this : ctx.find(this)
|
|
92
|
+
let found = null == ctx ? this : this.find(ctx);
|
|
93
|
+
const resolved = found ?? this;
|
|
94
|
+
if (null == resolved && this.canon === peer.canon) {
|
|
95
|
+
out = this;
|
|
96
|
+
}
|
|
97
|
+
else if (resolved instanceof RefVal) {
|
|
98
|
+
if (peer.isTop) {
|
|
99
|
+
out = this;
|
|
100
|
+
why = 'pt';
|
|
101
|
+
}
|
|
102
|
+
else if (peer.isNil) {
|
|
103
|
+
out = (0, err_1.makeNilErr)(ctx, 'ref[' + this.peg + ']', this, peer);
|
|
104
|
+
why = 'pn';
|
|
105
|
+
}
|
|
106
|
+
// same path
|
|
107
|
+
else if (this.canon === peer.canon) {
|
|
108
|
+
out = this;
|
|
109
|
+
why = 'pp';
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Ensure RefVal done is incremented
|
|
113
|
+
this.dc = type_1.DONE === this.dc ? type_1.DONE : this.dc + 1;
|
|
114
|
+
out = new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
|
|
115
|
+
why = 'cj';
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
out = (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'RES') }) : ctx, resolved, peer, 'ref');
|
|
120
|
+
why = 'u';
|
|
121
|
+
}
|
|
122
|
+
out.dc = type_1.DONE === out.dc ? type_1.DONE : this.dc + 1;
|
|
94
123
|
}
|
|
124
|
+
// console.log('REFVAL-UNIFY-OUT', ctx.cc, this.id, this.canon, this.done, 'P=', peer.id, peer.canon, peer.done, '->', out.id, out.canon, out.done)
|
|
125
|
+
(0, utility_1.explainClose)(te, out);
|
|
95
126
|
return out;
|
|
96
127
|
}
|
|
97
128
|
find(ctx) {
|
|
@@ -209,36 +240,6 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
209
240
|
else if (node.isList) {
|
|
210
241
|
node = node.peg[part];
|
|
211
242
|
}
|
|
212
|
-
else if (node.isConjunct || node.isDisjunct) {
|
|
213
|
-
// Collect matching children from all junction terms,
|
|
214
|
-
// flattening nested conjuncts and disjuncts.
|
|
215
|
-
// Spreads match any key — their peg is always included.
|
|
216
|
-
const matches = [];
|
|
217
|
-
const stack = [...node.peg];
|
|
218
|
-
while (stack.length > 0) {
|
|
219
|
-
const term = stack.pop();
|
|
220
|
-
if (term.isConjunct || term.isDisjunct) {
|
|
221
|
-
stack.push(...term.peg);
|
|
222
|
-
}
|
|
223
|
-
else if (term.isSpread) {
|
|
224
|
-
matches.push(term.peg);
|
|
225
|
-
}
|
|
226
|
-
else if ((term.isMap || term.isList) && term.peg[part] != null) {
|
|
227
|
-
matches.push(term.peg[part]);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
if (matches.length === 1) {
|
|
231
|
-
node = matches[0];
|
|
232
|
-
}
|
|
233
|
-
else if (matches.length > 1) {
|
|
234
|
-
node = node.isConjunct
|
|
235
|
-
? new ConjunctVal_1.ConjunctVal({ peg: matches })
|
|
236
|
-
: new DisjunctVal_1.DisjunctVal({ peg: matches });
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
node = null;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
243
|
else if (node.done) {
|
|
243
244
|
nopath = true;
|
|
244
245
|
break;
|
|
@@ -256,7 +257,7 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
256
257
|
if (nopath) {
|
|
257
258
|
out = (0, err_1.makeNilErr)(ctx, 'no_path', this);
|
|
258
259
|
}
|
|
259
|
-
else if (pI === refpath.length
|
|
260
|
+
else if (pI === refpath.length) {
|
|
260
261
|
out = node;
|
|
261
262
|
// Types and hidden values are cloned and made concrete
|
|
262
263
|
if (null != out) { // && (out.mark.type || out.mark.hide)) {
|
|
@@ -264,28 +265,25 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
264
265
|
if (this.mark.type || this.mark.hide) {
|
|
265
266
|
out.mark.type = this.mark.type;
|
|
266
267
|
out.mark.hide = this.mark.hide;
|
|
268
|
+
// walk(out, (_key: string | number | undefined, val: Val) => {
|
|
269
|
+
// val.mark.type = this.mark.type
|
|
270
|
+
// val.mark.hide = this.mark.hide
|
|
271
|
+
// return val
|
|
272
|
+
// })
|
|
267
273
|
}
|
|
268
274
|
if (this.mark._hide_found) {
|
|
269
275
|
out.mark.hide = true;
|
|
270
276
|
}
|
|
271
|
-
//
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
out.mark.hide = false;
|
|
282
|
-
(0, utility_1.walk)(out, (_key, val) => {
|
|
283
|
-
val.mark.type = false;
|
|
284
|
-
val.mark.hide = false;
|
|
285
|
-
return val;
|
|
286
|
-
});
|
|
287
|
-
cache?.set(cacheKey, out);
|
|
288
|
-
}
|
|
277
|
+
// console.log('FOUND-B', out)
|
|
278
|
+
out = out.clone(ctx);
|
|
279
|
+
// if (this.mark.type || this.mark.hide) {
|
|
280
|
+
(0, utility_1.walk)(out, (_key, val) => {
|
|
281
|
+
val.mark.type = false;
|
|
282
|
+
val.mark.hide = false;
|
|
283
|
+
return val;
|
|
284
|
+
});
|
|
285
|
+
//}
|
|
286
|
+
// onsole.log('FOUND-C', out)
|
|
289
287
|
}
|
|
290
288
|
}
|
|
291
289
|
}
|
|
@@ -306,13 +304,17 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
306
304
|
get canon() {
|
|
307
305
|
let str = (this.absolute ? '$' : '') +
|
|
308
306
|
(0 < this.peg.length ? '.' : '') +
|
|
307
|
+
// this.peg.join(this.sep)
|
|
309
308
|
this.peg.map((p) => '.' === p ? '' :
|
|
310
309
|
(p.isVal ? p.canon : '' + p))
|
|
311
310
|
.join('.');
|
|
312
311
|
return str;
|
|
313
312
|
}
|
|
314
313
|
gen(ctx) {
|
|
315
|
-
|
|
314
|
+
// Unresolved ref cannot be generated, so always an error.
|
|
315
|
+
let nil = (0, err_1.makeNilErr)(ctx, 'ref', this, // (formatPath(this.peg, this.absolute) as any),
|
|
316
|
+
undefined);
|
|
317
|
+
// TODO: refactor to use Site pointer
|
|
316
318
|
nil.path = this.path;
|
|
317
319
|
nil.site.url = this.site.url;
|
|
318
320
|
nil.site.row = this.site.row;
|
|
@@ -326,5 +328,5 @@ class PathVal extends FeatureVal_1.FeatureVal {
|
|
|
326
328
|
].filter(p => '' != p).join(',');
|
|
327
329
|
}
|
|
328
330
|
}
|
|
329
|
-
exports.
|
|
330
|
-
//# sourceMappingURL=
|
|
331
|
+
exports.RefVal = RefVal;
|
|
332
|
+
//# sourceMappingURL=RefVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../src/val/RefVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/Val.d.ts
CHANGED
|
@@ -34,11 +34,10 @@ declare abstract class Val {
|
|
|
34
34
|
isList: boolean;
|
|
35
35
|
isScalar: boolean;
|
|
36
36
|
isScalarKind: boolean;
|
|
37
|
-
|
|
37
|
+
isRef: boolean;
|
|
38
38
|
isPref: boolean;
|
|
39
39
|
isVar: boolean;
|
|
40
40
|
isBag: boolean;
|
|
41
|
-
isSpread: boolean;
|
|
42
41
|
isNumber: boolean;
|
|
43
42
|
isInteger: boolean;
|
|
44
43
|
isString: boolean;
|
package/dist/val/Val.js
CHANGED
|
@@ -56,10 +56,7 @@ class Val {
|
|
|
56
56
|
this.peg = spec?.peg;
|
|
57
57
|
if (Array.isArray(this.peg)) {
|
|
58
58
|
let spread = this.peg[SPREAD];
|
|
59
|
-
|
|
60
|
-
this.peg = this.peg.filter(n => undefined !== n);
|
|
61
|
-
}
|
|
62
|
-
;
|
|
59
|
+
this.peg = this.peg.filter(n => undefined !== n);
|
|
63
60
|
this.peg[SPREAD] = spread;
|
|
64
61
|
}
|
|
65
62
|
// spec.path takes precedence over ctx.path: lets callers (notably
|
|
@@ -119,7 +116,7 @@ class Val {
|
|
|
119
116
|
get isPathDependent() {
|
|
120
117
|
if (this._isPathDependent !== undefined)
|
|
121
118
|
return this._isPathDependent;
|
|
122
|
-
let dep = this.
|
|
119
|
+
let dep = this.isRef || this.isKeyFunc || this.isPathFunc ||
|
|
123
120
|
this.isMoveFunc || this.isSuperFunc;
|
|
124
121
|
if (!dep) {
|
|
125
122
|
const peg = this.peg;
|
|
@@ -141,6 +138,11 @@ class Val {
|
|
|
141
138
|
}
|
|
142
139
|
}
|
|
143
140
|
}
|
|
141
|
+
if (!dep) {
|
|
142
|
+
const spreadCj = this.spread?.cj;
|
|
143
|
+
if (spreadCj && spreadCj.isPathDependent)
|
|
144
|
+
dep = true;
|
|
145
|
+
}
|
|
144
146
|
}
|
|
145
147
|
this._isPathDependent = dep;
|
|
146
148
|
return dep;
|
|
@@ -219,11 +221,10 @@ Object.assign(Val.prototype, {
|
|
|
219
221
|
isList: false,
|
|
220
222
|
isScalar: false,
|
|
221
223
|
isScalarKind: false,
|
|
222
|
-
|
|
224
|
+
isRef: false,
|
|
223
225
|
isPref: false,
|
|
224
226
|
isVar: false,
|
|
225
227
|
isBag: false,
|
|
226
|
-
isSpread: false,
|
|
227
228
|
isNumber: false,
|
|
228
229
|
isInteger: false,
|
|
229
230
|
isString: false,
|