aontu 0.12.0 → 0.13.1
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/aontu.ts +12 -2
- package/dist/aontu.d.ts +3 -0
- package/dist/aontu.js +9 -2
- package/dist/aontu.js.map +1 -1
- package/dist/aontu.min.js +1 -1
- package/dist/lib/err.js +22 -15
- package/dist/lib/err.js.map +1 -1
- package/dist/lib/lang.js +99 -33
- package/dist/lib/lang.js.map +1 -1
- package/dist/lib/op/disjunct.js +2 -2
- package/dist/lib/op/disjunct.js.map +1 -1
- package/dist/lib/op/op.js +1 -1
- package/dist/lib/op/op.js.map +1 -1
- package/dist/lib/op/unite.js +36 -6
- package/dist/lib/op/unite.js.map +1 -1
- package/dist/lib/type.d.ts +10 -8
- package/dist/lib/type.js +2 -27
- package/dist/lib/type.js.map +1 -1
- package/dist/lib/unify.d.ts +7 -4
- package/dist/lib/unify.js +27 -37
- package/dist/lib/unify.js.map +1 -1
- package/dist/lib/utility.d.ts +3 -0
- package/dist/lib/utility.js +17 -0
- package/dist/lib/utility.js.map +1 -0
- package/dist/lib/val/ConjunctVal.d.ts +7 -4
- package/dist/lib/val/ConjunctVal.js +62 -29
- package/dist/lib/val/ConjunctVal.js.map +1 -1
- package/dist/lib/val/DisjunctVal.d.ts +5 -2
- package/dist/lib/val/DisjunctVal.js +15 -7
- package/dist/lib/val/DisjunctVal.js.map +1 -1
- package/dist/lib/val/ListVal.d.ts +5 -2
- package/dist/lib/val/ListVal.js +39 -19
- package/dist/lib/val/ListVal.js.map +1 -1
- package/dist/lib/val/MapVal.d.ts +6 -3
- package/dist/lib/val/MapVal.js +56 -30
- package/dist/lib/val/MapVal.js.map +1 -1
- package/dist/lib/val/Nil.d.ts +8 -3
- package/dist/lib/val/Nil.js +31 -6
- package/dist/lib/val/Nil.js.map +1 -1
- package/dist/lib/val/PrefVal.d.ts +6 -2
- package/dist/lib/val/PrefVal.js +31 -11
- package/dist/lib/val/PrefVal.js.map +1 -1
- package/dist/lib/val/RefVal.d.ts +11 -5
- package/dist/lib/val/RefVal.js +198 -40
- package/dist/lib/val/RefVal.js.map +1 -1
- package/dist/lib/val/ValBase.d.ts +10 -9
- package/dist/lib/val/ValBase.js +25 -6
- package/dist/lib/val/ValBase.js.map +1 -1
- package/dist/lib/val/VarVal.d.ts +14 -0
- package/dist/lib/val/VarVal.js +79 -0
- package/dist/lib/val/VarVal.js.map +1 -0
- package/dist/lib/val.d.ts +42 -8
- package/dist/lib/val.js +63 -18
- package/dist/lib/val.js.map +1 -1
- package/lib/err.ts +28 -18
- package/lib/lang.ts +115 -41
- package/lib/op/disjunct.ts +10 -3
- package/lib/op/op.ts +1 -1
- package/lib/op/unite.ts +44 -4
- package/lib/type.ts +12 -40
- package/lib/unify.ts +43 -45
- package/lib/utility.ts +23 -0
- package/lib/utility.ts~ +80 -0
- package/lib/val/ConjunctVal.ts +90 -46
- package/lib/val/DisjunctVal.ts +35 -12
- package/lib/val/ListVal.ts +57 -22
- package/lib/val/MapVal.ts +78 -52
- package/lib/val/Nil.ts +55 -12
- package/lib/val/PrefVal.ts +56 -17
- package/lib/val/RefVal.ts +275 -63
- package/lib/val/ValBase.ts +33 -28
- package/lib/val/VarVal.ts +155 -0
- package/lib/val.ts +115 -25
- package/package.json +8 -8
- package/dist/lib/common.d.ts +0 -8
- package/dist/lib/common.js +0 -3
- package/dist/lib/common.js.map +0 -1
package/dist/lib/val/MapVal.js
CHANGED
|
@@ -1,78 +1,104 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Copyright (c) 2021 Richard Rodger, MIT License */
|
|
2
|
+
/* Copyright (c) 2021-2023 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.MapVal = void 0;
|
|
5
5
|
const type_1 = require("../type");
|
|
6
6
|
const op_1 = require("../op/op");
|
|
7
|
+
const val_1 = require("../val");
|
|
8
|
+
const ConjunctVal_1 = require("../val/ConjunctVal");
|
|
9
|
+
const Nil_1 = require("../val/Nil");
|
|
7
10
|
const ValBase_1 = require("../val/ValBase");
|
|
8
|
-
const Nil_1 = require("./Nil");
|
|
9
|
-
const ConjunctVal_1 = require("./ConjunctVal");
|
|
10
11
|
class MapVal extends ValBase_1.ValBase {
|
|
11
|
-
constructor(
|
|
12
|
-
super(
|
|
12
|
+
constructor(spec, ctx) {
|
|
13
|
+
super(spec, ctx);
|
|
13
14
|
this.spread = {
|
|
14
15
|
cj: undefined,
|
|
15
16
|
};
|
|
17
|
+
if (null == this.peg) {
|
|
18
|
+
throw new Error('MapVal spec.peg undefined');
|
|
19
|
+
}
|
|
16
20
|
let spread = this.peg[MapVal.SPREAD];
|
|
17
21
|
delete this.peg[MapVal.SPREAD];
|
|
22
|
+
// console.log('MC', this.id, peg, spread)
|
|
18
23
|
if (spread) {
|
|
19
24
|
if ('&' === spread.o) {
|
|
20
|
-
|
|
21
|
-
this.spread.cj =
|
|
22
|
-
new ConjunctVal_1.ConjunctVal(Array.isArray(spread.v) ? spread.v : [spread.v], ctx);
|
|
25
|
+
let tmv = Array.isArray(spread.v) ? spread.v : [spread.v];
|
|
26
|
+
this.spread.cj = new ConjunctVal_1.ConjunctVal({ peg: tmv }, ctx);
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
29
|
}
|
|
26
30
|
// NOTE: order of keys is not preserved!
|
|
27
31
|
// not possible in any case - consider {a,b} unify {b,a}
|
|
28
32
|
unify(peer, ctx) {
|
|
29
|
-
//
|
|
30
|
-
// console.trace()
|
|
31
|
-
// }
|
|
33
|
+
// let mark = Math.random()
|
|
32
34
|
let done = true;
|
|
33
|
-
let out =
|
|
35
|
+
let out = val_1.TOP === peer ? this : new MapVal({ peg: {} }, ctx);
|
|
34
36
|
out.spread.cj = this.spread.cj;
|
|
35
37
|
if (peer instanceof MapVal) {
|
|
36
|
-
out.spread.cj = null == out.spread.cj ? peer.spread.cj : (null == peer.spread.cj ? out.spread.cj : (out.spread.cj =
|
|
38
|
+
out.spread.cj = null == out.spread.cj ? peer.spread.cj : (null == peer.spread.cj ? out.spread.cj : (out.spread.cj =
|
|
39
|
+
new ConjunctVal_1.ConjunctVal({ peg: [out.spread.cj, peer.spread.cj] }, ctx)));
|
|
37
40
|
}
|
|
38
41
|
out.done = this.done + 1;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
type_1.DONE !== this.spread.cj.done ? (0, op_1.unite)(ctx, this.spread.cj) :
|
|
42
|
-
this.spread.cj;
|
|
43
|
-
done = (done && type_1.DONE === out.spread.cj.done);
|
|
44
|
-
}
|
|
45
|
-
let spread_cj = out.spread.cj || type_1.TOP;
|
|
46
|
-
// Always unify children first
|
|
42
|
+
let spread_cj = out.spread.cj || val_1.TOP;
|
|
43
|
+
// Always unify own children first
|
|
47
44
|
for (let key in this.peg) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
//
|
|
45
|
+
let keyctx = ctx.descend(key);
|
|
46
|
+
let key_spread_cj = spread_cj.clone(null, keyctx);
|
|
47
|
+
// console.log('M0', this.id, mark, Object.keys(this.peg).join('~'),
|
|
48
|
+
// 'p=', this.path.join('.'),
|
|
49
|
+
// 'k=', key, peer.top || peer.constructor.name,
|
|
50
|
+
// 'pp=', this.peg[key].path.join('.'),
|
|
51
|
+
// this.peg[key].canon,
|
|
52
|
+
// 'sp=', key_spread_cj.path.join('.'),
|
|
53
|
+
// key_spread_cj.canon)
|
|
54
|
+
// if (1000000000 === this.id) {
|
|
55
|
+
// console.dir(key_spread_cj, { depth: null })
|
|
56
|
+
// }
|
|
57
|
+
out.peg[key] = (0, op_1.unite)(keyctx, this.peg[key], key_spread_cj, 'map-own');
|
|
52
58
|
done = (done && type_1.DONE === out.peg[key].done);
|
|
53
59
|
}
|
|
54
60
|
if (peer instanceof MapVal) {
|
|
55
|
-
let upeer = (0, op_1.unite)(ctx, peer);
|
|
61
|
+
let upeer = (0, op_1.unite)(ctx, peer, undefined, 'map-peer-map');
|
|
56
62
|
for (let peerkey in upeer.peg) {
|
|
63
|
+
// console.log('M1', this.id, mark, Object.keys(this.peg).join('~'),
|
|
64
|
+
// 'pk=', peerkey)
|
|
57
65
|
let peerchild = upeer.peg[peerkey];
|
|
58
66
|
let child = out.peg[peerkey];
|
|
59
67
|
let oval = out.peg[peerkey] =
|
|
60
68
|
undefined === child ? peerchild :
|
|
61
69
|
child instanceof Nil_1.Nil ? child :
|
|
62
70
|
peerchild instanceof Nil_1.Nil ? peerchild :
|
|
63
|
-
(0, op_1.unite)(ctx.descend(peerkey), child, peerchild);
|
|
71
|
+
(0, op_1.unite)(ctx.descend(peerkey), child, peerchild, 'map-peer');
|
|
64
72
|
if (this.spread.cj) {
|
|
65
|
-
|
|
73
|
+
let key_ctx = ctx.descend(peerkey);
|
|
74
|
+
let key_spread_cj = spread_cj.clone(null, key_ctx);
|
|
75
|
+
out.peg[peerkey] =
|
|
76
|
+
new ConjunctVal_1.ConjunctVal({ peg: [out.peg[peerkey], key_spread_cj] }, key_ctx);
|
|
77
|
+
done = false;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
done = (done && type_1.DONE === oval.done);
|
|
66
81
|
}
|
|
67
|
-
done = (done && type_1.DONE === oval.done);
|
|
68
82
|
}
|
|
69
83
|
}
|
|
70
|
-
else if (
|
|
84
|
+
else if (val_1.TOP !== peer) {
|
|
71
85
|
return Nil_1.Nil.make(ctx, 'map', this, peer);
|
|
72
86
|
}
|
|
73
87
|
out.done = done ? type_1.DONE : out.done;
|
|
74
88
|
return out;
|
|
75
89
|
}
|
|
90
|
+
clone(spec, ctx) {
|
|
91
|
+
let out = super.clone(spec, ctx);
|
|
92
|
+
out.peg = {};
|
|
93
|
+
for (let entry of Object.entries(this.peg)) {
|
|
94
|
+
out.peg[entry[0]] =
|
|
95
|
+
entry[1] instanceof ValBase_1.ValBase ? entry[1].clone(null, ctx) : entry[1];
|
|
96
|
+
}
|
|
97
|
+
if (this.spread.cj) {
|
|
98
|
+
out.spread.cj = this.spread.cj.clone(null, ctx);
|
|
99
|
+
}
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
76
102
|
get canon() {
|
|
77
103
|
let keys = Object.keys(this.peg);
|
|
78
104
|
return '{' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapVal.js","sourceRoot":"","sources":["../../../lib/val/MapVal.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"MapVal.js","sourceRoot":"","sources":["../../../lib/val/MapVal.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/val/Nil.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Val } from '../type';
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { Context } from '../unify';
|
|
3
3
|
import { ValBase } from '../val/ValBase';
|
|
4
4
|
declare class Nil extends ValBase {
|
|
@@ -8,9 +8,14 @@ declare class Nil extends ValBase {
|
|
|
8
8
|
secondary?: Val;
|
|
9
9
|
msg: string;
|
|
10
10
|
static make: (ctx?: Context, why?: any, av?: Val, bv?: Val) => Nil;
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(spec?: {
|
|
12
|
+
why?: string;
|
|
13
|
+
msg?: string;
|
|
14
|
+
err?: Nil | Nil[] | Error | Error[];
|
|
15
|
+
} | string, ctx?: Context);
|
|
12
16
|
unify(_peer: Val, _ctx: Context): this;
|
|
17
|
+
clone(spec?: ValSpec, ctx?: Context): Val;
|
|
13
18
|
get canon(): string;
|
|
14
|
-
gen(
|
|
19
|
+
gen(ctx?: Context): undefined;
|
|
15
20
|
}
|
|
16
21
|
export { Nil, };
|
package/dist/lib/val/Nil.js
CHANGED
|
@@ -1,33 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Copyright (c) 2021-
|
|
2
|
+
/* Copyright (c) 2021-2023 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Nil = void 0;
|
|
5
5
|
const type_1 = require("../type");
|
|
6
|
+
const err_1 = require("../err");
|
|
6
7
|
const ValBase_1 = require("../val/ValBase");
|
|
7
8
|
class Nil extends ValBase_1.ValBase {
|
|
8
|
-
constructor(
|
|
9
|
-
super(
|
|
9
|
+
constructor(spec, ctx) {
|
|
10
|
+
super(spec && 'string' !== typeof spec ? spec : {}, ctx);
|
|
10
11
|
this.nil = true;
|
|
11
12
|
this.msg = '';
|
|
12
|
-
|
|
13
|
+
if (spec && 'object' === typeof spec) {
|
|
14
|
+
this.why = spec === null || spec === void 0 ? void 0 : spec.why;
|
|
15
|
+
this.msg = 'string' === typeof (spec === null || spec === void 0 ? void 0 : spec.msg) ? spec.msg : this.msg;
|
|
16
|
+
this.err = spec ? (Array.isArray(spec.err) ? [...spec.err] : [spec.err]) : [];
|
|
17
|
+
}
|
|
13
18
|
// Nil is always DONE, by definition.
|
|
14
19
|
this.done = type_1.DONE;
|
|
15
20
|
}
|
|
16
21
|
unify(_peer, _ctx) {
|
|
17
22
|
return this;
|
|
18
23
|
}
|
|
24
|
+
clone(spec, ctx) {
|
|
25
|
+
let out = super.clone(spec, ctx);
|
|
26
|
+
out.why = this.why;
|
|
27
|
+
// Should these clone?
|
|
28
|
+
// out.primary = this.primary?.clone()
|
|
29
|
+
// out.secondary = this.secondary?.clone()
|
|
30
|
+
out.primary = this.primary;
|
|
31
|
+
out.secondary = this.secondary;
|
|
32
|
+
out.msg = this.msg;
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
19
35
|
get canon() {
|
|
20
36
|
return 'nil';
|
|
21
37
|
}
|
|
22
|
-
gen(
|
|
38
|
+
gen(ctx) {
|
|
39
|
+
// Unresolved nil cannot be generated, so always an error.
|
|
40
|
+
(0, err_1.descErr)(this);
|
|
41
|
+
if (ctx) {
|
|
42
|
+
ctx.err.push(this);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(this.msg);
|
|
46
|
+
}
|
|
23
47
|
return undefined;
|
|
24
48
|
}
|
|
25
49
|
}
|
|
26
50
|
exports.Nil = Nil;
|
|
27
51
|
// TODO: include Val generating nil, thus capture type
|
|
28
52
|
// A Nil is an error - should not happen - unify failed
|
|
53
|
+
// refactor ,make(spec,ctx)
|
|
29
54
|
Nil.make = (ctx, why, av, bv) => {
|
|
30
|
-
let nil = new Nil(why, ctx);
|
|
55
|
+
let nil = new Nil({ why }, ctx);
|
|
31
56
|
// TODO: this should be done lazily, for multiple terms
|
|
32
57
|
// Terms later in same file are considered the primary error location.
|
|
33
58
|
if (null != av) {
|
package/dist/lib/val/Nil.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nil.js","sourceRoot":"","sources":["../../../lib/val/Nil.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"Nil.js","sourceRoot":"","sources":["../../../lib/val/Nil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type { Val } from '../type';
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { Context } from '../unify';
|
|
3
3
|
import { ValBase } from '../val/ValBase';
|
|
4
4
|
declare class PrefVal extends ValBase {
|
|
5
5
|
pref: Val;
|
|
6
|
-
constructor(
|
|
6
|
+
constructor(spec: {
|
|
7
|
+
peg: any;
|
|
8
|
+
pref?: any;
|
|
9
|
+
}, ctx?: Context);
|
|
7
10
|
unify(peer: Val, ctx: Context): Val;
|
|
8
11
|
same(peer: Val): boolean;
|
|
12
|
+
clone(spec?: ValSpec, ctx?: Context): Val;
|
|
9
13
|
get canon(): any;
|
|
10
14
|
gen(ctx?: Context): any;
|
|
11
15
|
}
|
package/dist/lib/val/PrefVal.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* Copyright (c) 2021-
|
|
2
|
+
/* Copyright (c) 2021-2023 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.PrefVal = void 0;
|
|
5
5
|
const type_1 = require("../type");
|
|
6
|
+
const err_1 = require("../err");
|
|
6
7
|
const op_1 = require("../op/op");
|
|
7
8
|
const Nil_1 = require("../val/Nil");
|
|
8
9
|
const ValBase_1 = require("../val/ValBase");
|
|
9
10
|
class PrefVal extends ValBase_1.ValBase {
|
|
10
|
-
constructor(
|
|
11
|
-
super(
|
|
12
|
-
this.pref = pref || peg;
|
|
11
|
+
constructor(spec, ctx) {
|
|
12
|
+
super(spec, ctx);
|
|
13
|
+
this.pref = spec.pref || spec.peg;
|
|
13
14
|
}
|
|
14
15
|
// PrefVal unify always returns a PrefVal
|
|
15
16
|
// PrefVals can only be removed by becoming Nil in a Disjunct
|
|
@@ -17,12 +18,17 @@ class PrefVal extends ValBase_1.ValBase {
|
|
|
17
18
|
let done = true;
|
|
18
19
|
let out;
|
|
19
20
|
if (peer instanceof PrefVal) {
|
|
20
|
-
out = new PrefVal(
|
|
21
|
+
out = new PrefVal({
|
|
22
|
+
peg: (0, op_1.unite)(ctx, this.peg, peer.peg, 'Pref000'),
|
|
23
|
+
pref: (0, op_1.unite)(ctx, this.pref, peer.pref, 'Pref010'),
|
|
24
|
+
}, ctx);
|
|
21
25
|
}
|
|
22
26
|
else {
|
|
23
|
-
out = new PrefVal(
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
out = new PrefVal({
|
|
28
|
+
// TODO: find a better way to drop Nil non-errors
|
|
29
|
+
peg: (0, op_1.unite)(ctx === null || ctx === void 0 ? void 0 : ctx.clone({ err: [] }), this.peg, peer, 'Pref020'),
|
|
30
|
+
pref: (0, op_1.unite)(ctx === null || ctx === void 0 ? void 0 : ctx.clone({ err: [] }), this.pref, peer, 'Pref030'),
|
|
31
|
+
}, ctx);
|
|
26
32
|
}
|
|
27
33
|
done = done && type_1.DONE === out.peg.done &&
|
|
28
34
|
(null != out.pref ? type_1.DONE === out.pref.done : true);
|
|
@@ -46,14 +52,28 @@ class PrefVal extends ValBase_1.ValBase {
|
|
|
46
52
|
(this.pref instanceof ValBase_1.ValBase && this.pref.same(peer.pref)));
|
|
47
53
|
return pegsame && prefsame;
|
|
48
54
|
}
|
|
55
|
+
clone(spec, ctx) {
|
|
56
|
+
let out = super.clone(spec, ctx);
|
|
57
|
+
out.pref = this.pref.clone(null, ctx);
|
|
58
|
+
return out;
|
|
59
|
+
}
|
|
49
60
|
get canon() {
|
|
50
61
|
return this.pref instanceof Nil_1.Nil ? this.peg.canon : '*' + this.pref.canon;
|
|
51
62
|
}
|
|
52
63
|
gen(ctx) {
|
|
53
64
|
let val = !(this.pref instanceof Nil_1.Nil) ? this.pref :
|
|
54
|
-
!(this.peg instanceof Nil_1.Nil) ? this.peg :
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
(!(this.peg instanceof Nil_1.Nil) ? this.peg :
|
|
66
|
+
this.pref);
|
|
67
|
+
if (val instanceof Nil_1.Nil) {
|
|
68
|
+
(0, err_1.descErr)(val);
|
|
69
|
+
if (ctx) {
|
|
70
|
+
ctx.err.push(val);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw new Error(val.msg);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return val.gen(ctx);
|
|
57
77
|
}
|
|
58
78
|
}
|
|
59
79
|
exports.PrefVal = PrefVal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../../lib/val/PrefVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../../lib/val/PrefVal.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/val/RefVal.d.ts
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import type { Val } from '../type';
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { Context } from '../unify';
|
|
3
|
+
import { StringVal } from '../val';
|
|
3
4
|
import { ValBase } from '../val/ValBase';
|
|
4
5
|
declare class RefVal extends ValBase {
|
|
5
|
-
parts: string[];
|
|
6
6
|
absolute: boolean;
|
|
7
|
-
|
|
8
|
-
constructor(
|
|
7
|
+
prefix: boolean;
|
|
8
|
+
constructor(spec: {
|
|
9
|
+
peg: any[];
|
|
10
|
+
absolute?: boolean;
|
|
11
|
+
prefix?: boolean;
|
|
12
|
+
}, ctx?: Context);
|
|
9
13
|
append(part: any): void;
|
|
10
14
|
unify(peer: Val, ctx: Context): Val;
|
|
15
|
+
find(ctx: Context): Val | StringVal | undefined;
|
|
11
16
|
same(peer: Val): boolean;
|
|
12
|
-
|
|
17
|
+
clone(spec?: ValSpec, ctx?: Context): Val;
|
|
18
|
+
get canon(): string;
|
|
13
19
|
gen(ctx?: Context): undefined;
|
|
14
20
|
}
|
|
15
21
|
export { RefVal, };
|