aontu 0.52.1 → 0.54.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 +15 -3
- package/dist/aontu.js +126 -5
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +45 -1
- package/dist/cli.js +2845 -69
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +18 -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 +45 -8
- package/dist/err.js.map +1 -1
- package/dist/graph.d.ts +13 -0
- package/dist/graph.js +110 -0
- package/dist/graph.js.map +1 -0
- package/dist/hcanon.d.ts +3 -0
- package/dist/hcanon.js +145 -0
- package/dist/hcanon.js.map +1 -0
- package/dist/hints.js +235 -8
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.d.ts +20 -0
- package/dist/jsonschema.js +425 -0
- package/dist/jsonschema.js.map +1 -0
- package/dist/lang.js +955 -110
- package/dist/lang.js.map +1 -1
- package/dist/lsp.d.ts +9 -2
- package/dist/lsp.js +343 -48
- 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 +941 -0
- package/dist/mcp.js.map +1 -0
- package/dist/mod-tool.d.ts +58 -0
- package/dist/mod-tool.js +532 -0
- package/dist/mod-tool.js.map +1 -0
- package/dist/mod.d.ts +35 -0
- package/dist/mod.js +345 -0
- package/dist/mod.js.map +1 -0
- package/dist/patch.d.ts +49 -0
- package/dist/patch.js +506 -0
- package/dist/patch.js.map +1 -0
- package/dist/provenance.d.ts +41 -0
- package/dist/provenance.js +336 -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 +15 -0
- package/dist/reach.js +168 -0
- package/dist/reach.js.map +1 -0
- package/dist/relation.d.ts +23 -0
- package/dist/relation.js +230 -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/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/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 +129 -0
- package/dist/std.js.map +1 -0
- package/dist/subsume.d.ts +39 -0
- package/dist/subsume.js +573 -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 +2 -1
- package/dist/unify.js +234 -38
- package/dist/unify.js.map +1 -1
- package/dist/utility.d.ts +8 -1
- package/dist/utility.js +68 -1
- package/dist/utility.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +44 -0
- package/dist/val/AggFuncVal.js +364 -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 +7 -0
- package/dist/val/BagVal.js +150 -11
- 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 +7 -1
- package/dist/val/ConstraintVal.js +523 -45
- 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.d.ts +1 -2
- 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.d.ts +1 -2
- package/dist/val/DisjunctVal.js +269 -53
- 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.js +62 -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 +7 -1
- package/dist/val/FuncBaseVal.js +183 -2
- 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/HideFuncVal.js.map +1 -1
- package/dist/val/JunctionVal.js +24 -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 +94 -14
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +1 -0
- package/dist/val/MapVal.js +146 -14
- 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 +19 -1
- 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.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/PlaceVal.d.ts +13 -0
- package/dist/val/PlaceVal.js +131 -0
- package/dist/val/PlaceVal.js.map +1 -0
- package/dist/val/PlusOpVal.d.ts +2 -1
- package/dist/val/PlusOpVal.js +61 -37
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +4 -2
- package/dist/val/PrefVal.js +223 -41
- 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 +3 -2
- package/dist/val/RefVal.js +181 -66
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.d.ts +59 -0
- package/dist/val/ReferFuncVal.js +604 -0
- package/dist/val/ReferFuncVal.js.map +1 -0
- package/dist/val/ScalarKindVal.d.ts +4 -3
- package/dist/val/ScalarKindVal.js +12 -12
- 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/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 +7 -1
- package/dist/val/Val.js +170 -2
- 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 +173 -0
- package/dist/val/arith.js.map +1 -0
- package/dist/vet.d.ts +45 -0
- package/dist/vet.js +802 -0
- package/dist/vet.js.map +1 -0
- package/dist/view.d.ts +85 -0
- package/dist/view.js +1948 -0
- package/dist/view.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 +138 -0
- package/grammar/aontu.lark +118 -0
- package/grammar/aontu.tmLanguage.json +184 -0
- package/package.json +30 -8
- package/skill/SKILL.md +37 -0
- package/skill/error-codes.md +62 -0
- package/skill/examples.md +99 -0
- package/skill/grammar-card.md +56 -0
- package/src/agentsmd.ts +135 -0
- package/src/aontu.ts +166 -5
- package/src/cli.ts +3324 -72
- package/src/ctx.ts +93 -1
- package/src/diff.ts +198 -0
- package/src/err.ts +50 -8
- package/src/graph.ts +185 -0
- package/src/hcanon.ts +167 -0
- package/src/hints.ts +291 -8
- package/src/jsonschema.ts +552 -0
- package/src/lang.ts +1049 -110
- package/src/lsp.ts +351 -49
- package/src/mcp-server.ts +187 -0
- package/src/mcp.ts +1130 -0
- package/src/mod-tool.ts +718 -0
- package/src/mod.ts +453 -0
- package/src/patch.ts +628 -0
- package/src/provenance.ts +437 -0
- package/src/query.ts +381 -0
- package/src/reach.ts +213 -0
- package/src/relation.ts +298 -0
- package/src/report-sarif.ts +137 -0
- package/src/sig.ts +345 -0
- package/src/sigdecl.ts +11 -0
- package/src/siggate.ts +144 -0
- package/src/site.ts +36 -1
- package/src/std.ts +131 -0
- package/src/subsume.ts +739 -0
- package/src/trim.ts +195 -0
- package/src/tsconfig.json +10 -4
- package/src/type.ts +51 -2
- package/src/unify.ts +253 -38
- package/src/utility.ts +79 -1
- package/src/val/AggFuncVal.ts +546 -0
- package/src/val/ArithFuncVal.ts +108 -0
- package/src/val/BagVal.ts +158 -12
- package/src/val/CloseFuncVal.ts +9 -1
- package/src/val/ConjunctVal.ts +20 -0
- package/src/val/ConstraintVal.ts +576 -48
- package/src/val/ContainerKindVal.ts +158 -0
- package/src/val/CopyFuncVal.ts +0 -1
- package/src/val/Decimal.ts +15 -0
- package/src/val/DeprecateFuncVal.ts +84 -0
- package/src/val/DisjunctVal.ts +282 -59
- package/src/val/EachFuncVal.ts +133 -0
- package/src/val/ExpectVal.ts +65 -8
- package/src/val/FeatureVal.ts +1 -1
- package/src/val/FilterFuncVal.ts +154 -0
- package/src/val/FuncBaseVal.ts +206 -2
- package/src/val/GraphAtomVal.ts +264 -0
- package/src/val/HideFuncVal.ts +0 -2
- package/src/val/JunctionVal.ts +24 -1
- package/src/val/KeyFuncVal.ts +39 -35
- package/src/val/ListVal.ts +101 -15
- package/src/val/LowerFuncVal.ts +0 -1
- package/src/val/MapVal.ts +153 -14
- 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 +20 -1
- package/src/val/OpenFuncVal.ts +4 -2
- package/src/val/PackFuncVal.ts +175 -0
- package/src/val/PathFuncVal.ts +107 -20
- package/src/val/PathVal.ts +221 -0
- package/src/val/PlaceVal.ts +193 -0
- package/src/val/PlusOpVal.ts +67 -39
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +251 -60
- package/src/val/RecurseVal.ts +285 -0
- package/src/val/RefVal.ts +183 -78
- package/src/val/ReferFuncVal.ts +732 -0
- package/src/val/ScalarKindVal.ts +12 -13
- package/src/val/SuperFuncVal.ts +137 -13
- package/src/val/TopVal.ts +1 -2
- package/src/val/TypeFuncVal.ts +0 -2
- package/src/val/UpperFuncVal.ts +0 -1
- package/src/val/Val.ts +216 -4
- package/src/val/VarVal.ts +0 -1
- package/src/val/arith.ts +319 -0
- package/src/vet.ts +1025 -0
- package/src/view.ts +2563 -0
- package/src/walk.ts +99 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpBaseVal.js","sourceRoot":"","sources":["../../src/val/OpBaseVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAQpD,kCAEgB;AAEhB,gCAIe;AAGf,oCAA2C;AAE3C,wCAImB;AAEnB,+BAEc;AAEd,+CAA2C;AAC3C,6CAAyC;
|
|
1
|
+
{"version":3,"file":"OpBaseVal.js","sourceRoot":"","sources":["../../src/val/OpBaseVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/OpenFuncVal.js
CHANGED
|
@@ -16,11 +16,14 @@ class OpenFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
16
16
|
return 'open';
|
|
17
17
|
}
|
|
18
18
|
resolve(ctx, args) {
|
|
19
|
-
|
|
19
|
+
let argval = args[0];
|
|
20
20
|
if (null == argval) {
|
|
21
21
|
return (0, err_1.makeNilErr)(ctx, 'no_first_arg', this, undefined, 'close');
|
|
22
22
|
}
|
|
23
23
|
if (argval.isMap || argval.isList) {
|
|
24
|
+
// In place, for the reason CloseFuncVal.resolve gives: the
|
|
25
|
+
// instantiation rule (ADR-005) makes the argument this call's
|
|
26
|
+
// own wherever the call is multiplied.
|
|
24
27
|
argval.closed = false;
|
|
25
28
|
}
|
|
26
29
|
return argval;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenFuncVal.js","sourceRoot":"","sources":["../../src/val/OpenFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,+CAA2C;
|
|
1
|
+
{"version":3,"file":"OpenFuncVal.js","sourceRoot":"","sources":["../../src/val/OpenFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,+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;IAGD,OAAO,CAAC,GAA6B,EAAE,IAAW;QAChD,IAAI,MAAM,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,2DAA2D;YAC3D,8DAA8D;YAC9D,uCAAuC;YACtC,MAAiB,CAAC,MAAM,GAAG,KAAK,CAAA;QACnC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAEF,CAAC,iCAAiC;QAIjC,WAAW"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { MapVal } from './MapVal';
|
|
4
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
5
|
+
declare function dataKeys(data: Val | undefined): string[] | string;
|
|
6
|
+
declare class PackFuncVal extends FuncBaseVal {
|
|
7
|
+
isPackFunc: 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[]): MapVal | import("./NilVal").NilVal;
|
|
14
|
+
}
|
|
15
|
+
export { dataKeys, PackFuncVal, };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PackFuncVal = void 0;
|
|
5
|
+
exports.dataKeys = dataKeys;
|
|
6
|
+
const unify_1 = require("../unify");
|
|
7
|
+
const err_1 = require("../err");
|
|
8
|
+
const MapVal_1 = require("./MapVal");
|
|
9
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
10
|
+
const Val_1 = require("./Val");
|
|
11
|
+
const PlaceVal_1 = require("./PlaceVal");
|
|
12
|
+
// The keys a data bag names, in the order the result must carry them,
|
|
13
|
+
// or a code naming what is wrong with it. Shared with `each`, which
|
|
14
|
+
// asks the same question of the same argument and answers it with the
|
|
15
|
+
// values rather than the keys.
|
|
16
|
+
function dataKeys(data) {
|
|
17
|
+
const d = data;
|
|
18
|
+
if (true === d?.isMap) {
|
|
19
|
+
return Object.keys(d.peg);
|
|
20
|
+
}
|
|
21
|
+
if (true === d?.isList) {
|
|
22
|
+
const out = [];
|
|
23
|
+
for (const el of d.peg) {
|
|
24
|
+
const e = el;
|
|
25
|
+
// A key is a NAME, and only a string is one. A number would
|
|
26
|
+
// key by position under another spelling, which is the failure
|
|
27
|
+
// mode the data-keyed rule exists to refuse.
|
|
28
|
+
if (true !== e?.isScalar || 'string' !== typeof e.peg) {
|
|
29
|
+
return 'pack_key';
|
|
30
|
+
}
|
|
31
|
+
out.push(e.peg);
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
return 'pack_data';
|
|
36
|
+
}
|
|
37
|
+
class PackFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
38
|
+
constructor(spec, ctx) {
|
|
39
|
+
super(spec, ctx);
|
|
40
|
+
this.isPackFunc = true;
|
|
41
|
+
// THE STAGING RULE (G8 phase 0, see AontuContext.settle). A
|
|
42
|
+
// generator's data argument is not settled merely by being `done`
|
|
43
|
+
// once: a sibling conjunct, an include or a spread can still merge
|
|
44
|
+
// keys into it, and children generated from the half-merged bag
|
|
45
|
+
// would be missing. It fires on the settle pass and only then.
|
|
46
|
+
this.staged = true;
|
|
47
|
+
}
|
|
48
|
+
funcname() {
|
|
49
|
+
return 'pack';
|
|
50
|
+
}
|
|
51
|
+
// The TEMPLATE IS NOT AN ARGUMENT TO DRIVE. Driving it would resolve
|
|
52
|
+
// its `key()` at the CALL SITE -- the one position the template is
|
|
53
|
+
// never used at -- and freeze whatever else in it is path-dependent
|
|
54
|
+
// there too. The data argument is driven by `unify` below instead,
|
|
55
|
+
// one argument by hand rather than all of them by the base.
|
|
56
|
+
prepare(_ctx, _args) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
unify(peer, ctx) {
|
|
60
|
+
// ONE argument is driven: the data. The template is not (see
|
|
61
|
+
// prepare above), and driveStagedArgs answers whether the data has
|
|
62
|
+
// settled -- the other half of "ready to fire".
|
|
63
|
+
const ready = this.driveStagedArgs(ctx, 1);
|
|
64
|
+
if (!ready || !ctx.settle) {
|
|
65
|
+
return this.residuate(peer, ctx);
|
|
66
|
+
}
|
|
67
|
+
return super.unify(peer, ctx);
|
|
68
|
+
}
|
|
69
|
+
resolve(ctx, args) {
|
|
70
|
+
const keys = dataKeys(args?.[0]);
|
|
71
|
+
if ('string' === typeof keys) {
|
|
72
|
+
return (0, err_1.makeNilErr)(ctx, keys, this);
|
|
73
|
+
}
|
|
74
|
+
// Arity is checked at parse (funcArity), so both arguments are here.
|
|
75
|
+
const tmpl = args[1];
|
|
76
|
+
const peg = {};
|
|
77
|
+
const src = args[0];
|
|
78
|
+
for (const key of keys) {
|
|
79
|
+
const keyctx = ctx.descend(key);
|
|
80
|
+
// THE PLACEHOLDER BINDS THE SOURCE CHILD (G8 phase 3): inside a
|
|
81
|
+
// generator's template `_` is the datum this child is being made
|
|
82
|
+
// FROM. For a map that is the child's value; for a list of names
|
|
83
|
+
// it is the name, which is also the key -- so `_` and `key()`
|
|
84
|
+
// agree there, and differ the moment the data is a map.
|
|
85
|
+
const source = true === src?.isMap ? src.peg[key] : src.peg[keys.indexOf(key)];
|
|
86
|
+
// CLONED, never shared. A spread may share a template that holds
|
|
87
|
+
// nothing path-dependent (MapVal.spreadClone), because a spread
|
|
88
|
+
// CONSTRAINS a child that exists; a generator's template IS the
|
|
89
|
+
// child, and a child is a position. Sharing left every generated
|
|
90
|
+
// child pointing at the template's own parse-time location, which
|
|
91
|
+
// is the position the template is never used at -- visible as the
|
|
92
|
+
// site an error inside a generated child reports.
|
|
93
|
+
//
|
|
94
|
+
// A FULL INSTANCE, to the leaves (`dup`, ADR-005): a bare clone
|
|
95
|
+
// shares the inner structure of any call, preference or
|
|
96
|
+
// operation in the template, so the first child's resolution of
|
|
97
|
+
// a shared key()/ref answered for every child (BUGS.md §8, §9).
|
|
98
|
+
const inst = tmpl.clone(keyctx, { dup: true });
|
|
99
|
+
(0, Val_1.repathInstance)(inst, inst.path);
|
|
100
|
+
const child = (0, PlaceVal_1.fillPlace)(inst, source, keyctx);
|
|
101
|
+
peg[key] = undefined === peg[key] ? child :
|
|
102
|
+
(0, unify_1.unite)(keyctx, peg[key], child, 'pack');
|
|
103
|
+
}
|
|
104
|
+
return new MapVal_1.MapVal({ peg }, ctx);
|
|
105
|
+
}
|
|
106
|
+
} /* node:coverage ignore next 7 */
|
|
107
|
+
exports.PackFuncVal = PackFuncVal;
|
|
108
|
+
//# sourceMappingURL=PackFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackFuncVal.js","sourceRoot":"","sources":["../../src/val/PackFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ declare class PathFuncVal extends FuncBaseVal {
|
|
|
7
7
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
8
8
|
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
9
9
|
funcname(): string;
|
|
10
|
-
prepare(ctx: AontuContext, args: Val[]): Val[];
|
|
11
|
-
resolve(ctx: AontuContext, args: Val[]):
|
|
10
|
+
prepare(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal[] | Val[];
|
|
11
|
+
resolve(ctx: AontuContext, args: Val[]): any;
|
|
12
12
|
}
|
|
13
13
|
export { PathFuncVal, };
|
package/dist/val/PathFuncVal.js
CHANGED
|
@@ -3,8 +3,39 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.PathFuncVal = void 0;
|
|
5
5
|
const err_1 = require("../err");
|
|
6
|
-
const RefVal_1 = require("../val/RefVal");
|
|
7
6
|
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
7
|
+
const PathVal_1 = require("./PathVal");
|
|
8
|
+
// The address a reference SPELLS, or undefined when its segments
|
|
9
|
+
// cannot spell one (a variable segment, a parent step after the first
|
|
10
|
+
// named segment). Leading `.` entries in a relative ref's peg are
|
|
11
|
+
// parent steps; the spelling is the same grammar refer reads, so one
|
|
12
|
+
// address parser stays the single gate.
|
|
13
|
+
function captureSpelling(rv) {
|
|
14
|
+
const parts = [];
|
|
15
|
+
let up = 0;
|
|
16
|
+
let lead = true;
|
|
17
|
+
for (const p of rv.peg) {
|
|
18
|
+
if ('string' !== typeof p) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
if ('.' === p) {
|
|
22
|
+
if (!lead) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
up++;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
lead = false;
|
|
29
|
+
parts.push(p);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (0 === parts.length || (rv.absolute && 0 < up)) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return rv.absolute ?
|
|
36
|
+
'$.' + parts.join('.') :
|
|
37
|
+
'.'.repeat(up + 1) + parts.join('.');
|
|
38
|
+
}
|
|
8
39
|
class PathFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
9
40
|
constructor(spec, ctx) {
|
|
10
41
|
super(spec, ctx);
|
|
@@ -20,30 +51,58 @@ class PathFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
20
51
|
return 'path';
|
|
21
52
|
}
|
|
22
53
|
prepare(ctx, args) {
|
|
23
|
-
let arg = args[0];
|
|
24
54
|
if (0 === this.prepared) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
//
|
|
28
|
-
// internal error. Same discipline breach, and same fix, as the one
|
|
29
|
-
// UpperFuncVal records; path() was missed in that sweep.
|
|
55
|
+
this.prepared++;
|
|
56
|
+
const arg = args[0];
|
|
57
|
+
// The kind form: no argument to capture.
|
|
30
58
|
if (null == arg) {
|
|
31
|
-
|
|
59
|
+
return [];
|
|
32
60
|
}
|
|
33
|
-
|
|
34
|
-
|
|
61
|
+
// The captured spelling, from a reference's segments or from a
|
|
62
|
+
// string literal read as address text. Both go through
|
|
63
|
+
// parseAddress, so what capture admits and what refer reads
|
|
64
|
+
// cannot drift. Anything else -- an expression, a reference to
|
|
65
|
+
// a string -- is left for the driving loop, and resolve
|
|
66
|
+
// converts the driven result below.
|
|
67
|
+
let spelling;
|
|
68
|
+
if (true === arg.isRef) {
|
|
69
|
+
spelling = captureSpelling(arg);
|
|
35
70
|
}
|
|
36
|
-
else if (
|
|
37
|
-
|
|
71
|
+
else if (true === arg.isScalar && 'string' === typeof arg.peg) {
|
|
72
|
+
spelling = (0, PathVal_1.textAddress)(arg.peg);
|
|
38
73
|
}
|
|
74
|
+
else {
|
|
75
|
+
return args;
|
|
76
|
+
}
|
|
77
|
+
if (undefined === spelling || undefined === (0, PathVal_1.parseAddress)(spelling)) {
|
|
78
|
+
return [(0, err_1.makeNilErr)(ctx, 'path_address', this, arg)];
|
|
79
|
+
}
|
|
80
|
+
return [new PathVal_1.PathVal({ peg: spelling }, ctx)];
|
|
39
81
|
}
|
|
40
|
-
args[0] = arg;
|
|
41
|
-
this.prepared++;
|
|
42
82
|
return args;
|
|
43
83
|
}
|
|
44
84
|
resolve(ctx, args) {
|
|
45
|
-
|
|
46
|
-
|
|
85
|
+
if (0 === args.length) {
|
|
86
|
+
const out = new PathVal_1.PathKindVal({}, ctx);
|
|
87
|
+
out.site = this.site;
|
|
88
|
+
out.path = this.path;
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
const arg = args[0];
|
|
92
|
+
if (true === arg.isPath || true === arg.isNil) {
|
|
93
|
+
return arg;
|
|
94
|
+
}
|
|
95
|
+
// The COMPUTED argument, driven by the loop above: a string
|
|
96
|
+
// converts by the address grammar, exactly as a literal does at
|
|
97
|
+
// capture; anything else was never a path expression.
|
|
98
|
+
if (true === arg.isScalar && 'string' === typeof arg.peg) {
|
|
99
|
+
const spelling = (0, PathVal_1.textAddress)(arg.peg);
|
|
100
|
+
if (undefined === (0, PathVal_1.parseAddress)(spelling)) {
|
|
101
|
+
return (0, err_1.makeNilErr)(ctx, 'path_address', this, arg);
|
|
102
|
+
}
|
|
103
|
+
return new PathVal_1.PathVal({ peg: spelling }, ctx);
|
|
104
|
+
}
|
|
105
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
|
|
47
106
|
}
|
|
48
107
|
} /* node:coverage ignore next 6 */
|
|
49
108
|
exports.PathFuncVal = PathFuncVal;
|
|
@@ -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":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { ScalarVal } from './ScalarVal';
|
|
4
|
+
import { ScalarKindVal } from './ScalarKindVal';
|
|
5
|
+
export type Address = {
|
|
6
|
+
absolute: boolean;
|
|
7
|
+
up: number;
|
|
8
|
+
parts: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare function parseAddress(s: string): Address | undefined;
|
|
11
|
+
export declare function textAddress(s: string): string;
|
|
12
|
+
export declare function prefixMeet(a: string, b: string): string | undefined;
|
|
13
|
+
declare class PathVal extends ScalarVal {
|
|
14
|
+
isPath: boolean;
|
|
15
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
16
|
+
unify(peer: Val, ctx: AontuContext): Val;
|
|
17
|
+
get canon(): string;
|
|
18
|
+
superior(): Val;
|
|
19
|
+
}
|
|
20
|
+
declare class PathKindVal extends ScalarKindVal {
|
|
21
|
+
isPathKind: boolean;
|
|
22
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
23
|
+
get canon(): string;
|
|
24
|
+
}
|
|
25
|
+
export { PathVal, PathKindVal, };
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PathKindVal = exports.PathVal = void 0;
|
|
5
|
+
exports.parseAddress = parseAddress;
|
|
6
|
+
exports.textAddress = textAddress;
|
|
7
|
+
exports.prefixMeet = prefixMeet;
|
|
8
|
+
const err_1 = require("../err");
|
|
9
|
+
const utility_1 = require("../utility");
|
|
10
|
+
const ScalarVal_1 = require("./ScalarVal");
|
|
11
|
+
const ScalarKindVal_1 = require("./ScalarKindVal");
|
|
12
|
+
// A segment of a tree path: a map key or a list index. The same
|
|
13
|
+
// grammar the rest of the engine spells keys with, and a leading digit
|
|
14
|
+
// is legitimate because a list index is one.
|
|
15
|
+
const ADDR_SEGMENT = /^[A-Za-z0-9_-]+$/;
|
|
16
|
+
// The address a string spells, or undefined when it does not spell
|
|
17
|
+
// one. An address is a TREE PATH, in exactly the two spellings a
|
|
18
|
+
// reference uses: `$.services.auth` from the root, `.auth` from the
|
|
19
|
+
// link's own sibling scope. The tree is the only namespace -- which is
|
|
20
|
+
// what makes a model instantiable more than once, each instance
|
|
21
|
+
// resolving its relative links inside itself (ADR-014).
|
|
22
|
+
function parseAddress(s) {
|
|
23
|
+
if ('$' === s) {
|
|
24
|
+
// The whole document is not a relation's target: an address must
|
|
25
|
+
// name something with a position to be written back into.
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
if (s.startsWith('$.')) {
|
|
29
|
+
const parts = s.slice(2).split('.');
|
|
30
|
+
for (const seg of parts) {
|
|
31
|
+
if (!ADDR_SEGMENT.test(seg)) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return { absolute: true, up: 0, parts };
|
|
36
|
+
}
|
|
37
|
+
if (!s.startsWith('.')) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
// A relative address: the leading dot anchors it at the sibling
|
|
41
|
+
// scope, and every FURTHER leading dot is one step up from there --
|
|
42
|
+
// the same reduction a relative reference's `.` segments perform.
|
|
43
|
+
let up = 0;
|
|
44
|
+
let rest = s.slice(1);
|
|
45
|
+
while (rest.startsWith('.')) {
|
|
46
|
+
up++;
|
|
47
|
+
rest = rest.slice(1);
|
|
48
|
+
}
|
|
49
|
+
if ('' === rest) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const parts = rest.split('.');
|
|
53
|
+
for (const seg of parts) {
|
|
54
|
+
if (!ADDR_SEGMENT.test(seg)) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return { absolute: false, up, parts };
|
|
59
|
+
}
|
|
60
|
+
// The spelling string TEXT converts by, inside a `path(...)` call:
|
|
61
|
+
// text that carries no anchor is RELATIVE (`"a.b"` is the address
|
|
62
|
+
// `.a.b`), matching the raw form (`path(a.b)` captures `.a.b`). Only
|
|
63
|
+
// the anchor is supplied -- the result still has to parse, so
|
|
64
|
+
// malformed text (`""`, `"a..b"`, a bad `$` spelling) refuses as
|
|
65
|
+
// before. The prefix is not applied to text that claims an anchor:
|
|
66
|
+
// `"$x"` is a broken absolute address, not a relative one.
|
|
67
|
+
function textAddress(s) {
|
|
68
|
+
return ('$' === s[0] || '.' === s[0]) ? s : '.' + s;
|
|
69
|
+
}
|
|
70
|
+
// The LONGER of two addresses when one spells a prefix of the other
|
|
71
|
+
// (docs/design/PATHS.0.md, amended): same anchor -- absolute or the
|
|
72
|
+
// same number of parent steps -- and the shorter's segments open the
|
|
73
|
+
// longer's. The meet of two path values, and of a refer's address
|
|
74
|
+
// with a later path peer: a path can always be told more precisely,
|
|
75
|
+
// and the more precise spelling is the result. Undefined when the two
|
|
76
|
+
// are not comparable, which refuses as any two unequal scalars do.
|
|
77
|
+
// Both arguments must already be valid addresses: every caller hands
|
|
78
|
+
// over a PathVal peg or a refer addrsrc, and both are validated at
|
|
79
|
+
// capture or conversion -- the same trust `unify`'s own address arm
|
|
80
|
+
// extends (`parseAddress(p.peg) as Address`).
|
|
81
|
+
function prefixMeet(a, b) {
|
|
82
|
+
const pa = parseAddress(a);
|
|
83
|
+
const pb = parseAddress(b);
|
|
84
|
+
if (pa.absolute !== pb.absolute || pa.up !== pb.up) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
const short = pa.parts.length <= pb.parts.length ? pa : pb;
|
|
88
|
+
const long = short === pa ? pb : pa;
|
|
89
|
+
for (let i = 0; i < short.parts.length; i++) {
|
|
90
|
+
if (short.parts[i] !== long.parts[i]) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return short === pa ? b : a;
|
|
95
|
+
}
|
|
96
|
+
class PathVal extends ScalarVal_1.ScalarVal {
|
|
97
|
+
constructor(spec, ctx) {
|
|
98
|
+
super({ peg: spec.peg, kind: ScalarKindVal_1.Path }, ctx);
|
|
99
|
+
this.isPath = true;
|
|
100
|
+
}
|
|
101
|
+
// Two path values meet by the PREFIX rule (ADR-016): the longer
|
|
102
|
+
// when one opens the other, refusal otherwise. Exactly equal pegs
|
|
103
|
+
// are absorbed by unite's fast path before this runs, so the arm
|
|
104
|
+
// sees the unequal pairs; the winner carries both sides' marks, as
|
|
105
|
+
// the equal-scalar arm has always ratcheted them.
|
|
106
|
+
unify(peer, ctx) {
|
|
107
|
+
const p = peer;
|
|
108
|
+
if (true === p.isPath) {
|
|
109
|
+
const merged = prefixMeet(this.peg, p.peg);
|
|
110
|
+
if (undefined === merged) {
|
|
111
|
+
return (0, err_1.makeNilErr)(ctx, 'scalar_value', this, peer);
|
|
112
|
+
}
|
|
113
|
+
const out = merged === this.peg ? this : p;
|
|
114
|
+
const other = out === this ? p : this;
|
|
115
|
+
(0, utility_1.propagateMarks)(other, out);
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
return super.unify(peer, ctx);
|
|
119
|
+
}
|
|
120
|
+
// Reparses to the same VALUE: the call form is the literal syntax
|
|
121
|
+
// for this kind, so canon renders it back. The peg is already the
|
|
122
|
+
// address grammar, which the argument grammar also accepts.
|
|
123
|
+
get canon() {
|
|
124
|
+
return 'path(' + this.peg + ')';
|
|
125
|
+
}
|
|
126
|
+
// The super() ladder lifts a path value to its own kind, and the
|
|
127
|
+
// kind must render as `path()` -- the bare word `path` is an
|
|
128
|
+
// ordinary string. ScalarVal.superior would mint the plain
|
|
129
|
+
// ScalarKindVal, whose canon is the bare word.
|
|
130
|
+
superior() {
|
|
131
|
+
return this.place(new PathKindVal({}));
|
|
132
|
+
}
|
|
133
|
+
} /* node:coverage ignore next 4 */
|
|
134
|
+
exports.PathVal = PathVal;
|
|
135
|
+
// The path KIND, `path()`: admits every path value and defaults to
|
|
136
|
+
// nothing, as `string` does. It does NOT promote (ADR-016): a bare
|
|
137
|
+
// string meeting the kind refuses through the generic kind ladder,
|
|
138
|
+
// exactly as `integer & "x"` does -- `path("...")` is the one string
|
|
139
|
+
// conversion, and it happens at the call.
|
|
140
|
+
class PathKindVal extends ScalarKindVal_1.ScalarKindVal {
|
|
141
|
+
constructor(spec, ctx) {
|
|
142
|
+
super({ ...spec, peg: ScalarKindVal_1.Path }, ctx);
|
|
143
|
+
this.isPathKind = true;
|
|
144
|
+
}
|
|
145
|
+
get canon() {
|
|
146
|
+
return 'path()';
|
|
147
|
+
}
|
|
148
|
+
} /* node:coverage ignore next 6 */
|
|
149
|
+
exports.PathKindVal = PathKindVal;
|
|
150
|
+
//# sourceMappingURL=PathVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathVal.js","sourceRoot":"","sources":["../../src/val/PathVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;;;AAmCpD,gCAAmC;AAEnC,wCAA2C;AAE3C,2CAAuC;AACvC,mDAAqD;AAIrD,gEAAgE;AAChE,uEAAuE;AACvE,6CAA6C;AAC7C,MAAM,YAAY,GAAG,kBAAkB,CAAA;AAavC,mEAAmE;AACnE,iEAAiE;AACjE,oEAAoE;AACpE,uEAAuE;AACvE,gEAAgE;AAChE,wDAAwD;AACxD,sBAA6B,CAAS;IACpC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,iEAAiE;QACjE,0DAA0D;QAC1D,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA;IACzC,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,gEAAgE;IAChE,oEAAoE;IACpE,kEAAkE;IAClE,IAAI,EAAE,GAAG,CAAC,CAAA;IACV,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,EAAE,EAAE,CAAA;QACJ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QAChB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;AACvC,CAAC;AAGD,mEAAmE;AACnE,kEAAkE;AAClE,qEAAqE;AACrE,8DAA8D;AAC9D,iEAAiE;AACjE,mEAAmE;AACnE,2DAA2D;AAC3D,qBAA4B,CAAS;IACnC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;AACrD,CAAC;AAGD,oEAAoE;AACpE,oEAAoE;AACpE,qEAAqE;AACrE,kEAAkE;AAClE,oEAAoE;AACpE,sEAAsE;AACtE,mEAAmE;AACnE,qEAAqE;AACrE,mEAAmE;AACnE,oEAAoE;AACpE,8CAA8C;AAC9C,oBAA2B,CAAS,EAAE,CAAS;IAC7C,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAY,CAAA;IACrC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAY,CAAA;IACrC,IAAI,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,MAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7B,CAAC;AAID,MAAM,OAAQ,SAAQ,qBAAS;IAG7B,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,oBAAI,EAAE,EAAE,GAAG,CAAC,CAAA;QAN3C,WAAM,GAAG,IAAI,CAAA;IAOb,CAAC;IAED,gEAAgE;IAChE,kEAAkE;IAClE,iEAAiE;IACjE,mEAAmE;IACnE,kDAAkD;IAClD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,CAAC,GAAQ,IAAI,CAAA;QACnB,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1C,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACpD,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACrC,IAAA,wBAAc,EAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC1B,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,4DAA4D;IAC5D,IAAI,KAAK;QACP,OAAO,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IACjC,CAAC;IAED,iEAAiE;IACjE,6DAA6D;IAC7D,2DAA2D;IAC3D,+CAA+C;IAC/C,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,CAAC;CAEF,CAAC,iCAAiC;QA0BjC,OAAO;AAvBT,mEAAmE;AACnE,mEAAmE;AACnE,mEAAmE;AACnE,qEAAqE;AACrE,0CAA0C;AAC1C,MAAM,WAAY,SAAQ,6BAAa;IAGrC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,oBAAI,EAAE,EAAE,GAAG,CAAC,CAAA;QANpC,eAAU,GAAG,IAAI,CAAA;IAOjB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,QAAQ,CAAA;IACjB,CAAC;CAEF,CAAC,iCAAiC;QAKjC,WAAW"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { Val as ValBase } from './Val';
|
|
4
|
+
declare class PlaceVal extends ValBase {
|
|
5
|
+
isPlace: boolean;
|
|
6
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
7
|
+
unify(peer: Val, _ctx: AontuContext): Val;
|
|
8
|
+
get canon(): string;
|
|
9
|
+
superior(): Val;
|
|
10
|
+
}
|
|
11
|
+
declare function hasPlace(v: Val): boolean;
|
|
12
|
+
declare function fillPlace(v: Val, fill: Val, ctx: AontuContext): Val;
|
|
13
|
+
export { hasPlace, fillPlace, PlaceVal, };
|