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
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PlaceVal = void 0;
|
|
5
|
+
exports.hasPlace = hasPlace;
|
|
6
|
+
exports.fillPlace = fillPlace;
|
|
7
|
+
const Val_1 = require("./Val");
|
|
8
|
+
class PlaceVal extends Val_1.Val {
|
|
9
|
+
constructor(spec, ctx) {
|
|
10
|
+
super(spec, ctx);
|
|
11
|
+
this.isPlace = true;
|
|
12
|
+
}
|
|
13
|
+
unify(peer, _ctx) {
|
|
14
|
+
// The peer FILLS the hole. Against TOP there is nothing to fill it
|
|
15
|
+
// with, so it waits -- and waiting is not done, or a call holding
|
|
16
|
+
// it would resolve around it.
|
|
17
|
+
if (peer.isTop) {
|
|
18
|
+
this.notdone();
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
return peer;
|
|
22
|
+
}
|
|
23
|
+
get canon() {
|
|
24
|
+
return '_';
|
|
25
|
+
}
|
|
26
|
+
// A hole admits everything, so nothing sits above it -- the same
|
|
27
|
+
// answer TOP gives, for the same reason.
|
|
28
|
+
superior() {
|
|
29
|
+
return this;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.PlaceVal = PlaceVal;
|
|
33
|
+
// A HOLE BELONGS TO ITS NEAREST ENCLOSING GENERATOR. A `_` inside a
|
|
34
|
+
// generator's template (pack/each, arg 1) or condition (filter, arg 1)
|
|
35
|
+
// is that generator's to bind — "_ is the source child" — so neither
|
|
36
|
+
// the hole test nor the fill walk may cross into those arguments from
|
|
37
|
+
// outside. Before this boundary, `close(pack(d, _ & t))` reported a
|
|
38
|
+
// hole to the OUTER call, so an ordinary overlay statement was
|
|
39
|
+
// absorbed into the template instead of merging with the generated
|
|
40
|
+
// child (use-cases/BUGS.md §10), and an outer pack's fill pass
|
|
41
|
+
// captured a NESTED pack's hole lexically, binding it to the outer
|
|
42
|
+
// source (§34). The data argument (arg 0) is not a binding position,
|
|
43
|
+
// so it stays visible: a hole there is an outer hole as before.
|
|
44
|
+
function boundArgStart(v) {
|
|
45
|
+
return true === v.isPackFunc || true === v.isEachFunc ||
|
|
46
|
+
true === v.isFilterFunc ? 1 : Infinity;
|
|
47
|
+
}
|
|
48
|
+
// Does this value CONTAIN a hole? Asked of a call before it resolves:
|
|
49
|
+
// a call holding one must wait for a peer to fill it. Holes inside a
|
|
50
|
+
// generator's own binding arguments are NOT this value's holes — see
|
|
51
|
+
// boundArgStart above.
|
|
52
|
+
function hasPlace(v) {
|
|
53
|
+
if (true === v.isPlace) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
const peg = v.peg;
|
|
57
|
+
const bound = boundArgStart(v);
|
|
58
|
+
if (Array.isArray(peg)) {
|
|
59
|
+
for (let cI = 0; cI < peg.length && cI < bound; cI++) {
|
|
60
|
+
const c = peg[cI];
|
|
61
|
+
if (true === c?.isVal && hasPlace(c)) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (true === peg?.isVal) {
|
|
67
|
+
return hasPlace(peg);
|
|
68
|
+
}
|
|
69
|
+
else if (null != peg && 'object' === typeof peg) {
|
|
70
|
+
for (const k of Object.keys(peg)) {
|
|
71
|
+
if (true === peg[k]?.isVal && hasPlace(peg[k])) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
// The same tree with every hole filled by `fill`. Answers the value
|
|
79
|
+
// UNCHANGED when it holds no hole, so a caller can test identity to
|
|
80
|
+
// know whether anything was filled -- and so a tree with no hole is
|
|
81
|
+
// never needlessly cloned. A nested generator's binding arguments are
|
|
82
|
+
// left untouched (boundArgStart): those holes are the inner
|
|
83
|
+
// generator's to fill with its OWN source children when it fires.
|
|
84
|
+
function fillPlace(v, fill, ctx) {
|
|
85
|
+
if (true === v.isPlace) {
|
|
86
|
+
return fill;
|
|
87
|
+
}
|
|
88
|
+
const peg = v.peg;
|
|
89
|
+
const bound = boundArgStart(v);
|
|
90
|
+
if (Array.isArray(peg)) {
|
|
91
|
+
let changed = false;
|
|
92
|
+
const out = peg.map((c, cI) => {
|
|
93
|
+
if (true !== c?.isVal || bound <= cI) {
|
|
94
|
+
return c;
|
|
95
|
+
}
|
|
96
|
+
const f = fillPlace(c, fill, ctx);
|
|
97
|
+
changed = changed || f !== c;
|
|
98
|
+
return f;
|
|
99
|
+
});
|
|
100
|
+
return changed ? rebuild(v, out, ctx) : v;
|
|
101
|
+
}
|
|
102
|
+
if (true === peg?.isVal) {
|
|
103
|
+
const f = fillPlace(peg, fill, ctx);
|
|
104
|
+
return f === peg ? v : rebuild(v, f, ctx);
|
|
105
|
+
}
|
|
106
|
+
if (null != peg && 'object' === typeof peg) {
|
|
107
|
+
let changed = false;
|
|
108
|
+
const out = {};
|
|
109
|
+
for (const k of Object.keys(peg)) {
|
|
110
|
+
const c = peg[k];
|
|
111
|
+
// No isVal guard: a slot holding something that is not a Val
|
|
112
|
+
// answers itself, because fillPlace's own first tests -- is it a
|
|
113
|
+
// hole, has it a peg -- are both false for one.
|
|
114
|
+
const f = fillPlace(c, fill, ctx);
|
|
115
|
+
changed = changed || f !== c;
|
|
116
|
+
out[k] = f;
|
|
117
|
+
}
|
|
118
|
+
return changed ? rebuild(v, out, ctx) : v;
|
|
119
|
+
}
|
|
120
|
+
return v;
|
|
121
|
+
}
|
|
122
|
+
// A clone carrying a new peg. `clone` shares the peg by reference (see
|
|
123
|
+
// Val.clone), which is exactly what must NOT happen here: the tree
|
|
124
|
+
// being filled is a template, and the fill is one destination's.
|
|
125
|
+
function rebuild(v, peg, ctx) {
|
|
126
|
+
const out = v.clone(ctx);
|
|
127
|
+
out.peg = peg;
|
|
128
|
+
out.dc = 0;
|
|
129
|
+
return out;
|
|
130
|
+
} /* node:coverage ignore next 8 */
|
|
131
|
+
//# sourceMappingURL=PlaceVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlaceVal.js","sourceRoot":"","sources":["../../src/val/PlaceVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/PlusOpVal.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { BooleanVal } from '../val/BooleanVal';
|
|
|
7
7
|
import { BigIntegerVal } from '../val/BigIntegerVal';
|
|
8
8
|
import { BigDecimalVal } from '../val/BigDecimalVal';
|
|
9
9
|
import { OpBaseVal } from './OpBaseVal';
|
|
10
|
+
declare function plusText(v: Val): string | undefined;
|
|
10
11
|
declare class PlusOpVal extends OpBaseVal {
|
|
11
12
|
isPlusOp: boolean;
|
|
12
13
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
@@ -15,4 +16,4 @@ declare class PlusOpVal extends OpBaseVal {
|
|
|
15
16
|
operate(ctx: AontuContext, args: Val[]): BigDecimalVal | BigIntegerVal | BooleanVal | IntegerVal | import("./NilVal").NilVal | NumberVal | StringVal | undefined;
|
|
16
17
|
get canon(): string;
|
|
17
18
|
}
|
|
18
|
-
export { PlusOpVal, };
|
|
19
|
+
export { PlusOpVal, plusText, };
|
package/dist/val/PlusOpVal.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/* Copyright (c) 2024-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.PlusOpVal = void 0;
|
|
5
|
+
exports.plusText = plusText;
|
|
5
6
|
const err_1 = require("../err");
|
|
6
7
|
const IntegerVal_1 = require("../val/IntegerVal");
|
|
7
8
|
const NumberVal_1 = require("../val/NumberVal");
|
|
@@ -35,6 +36,55 @@ const EXACT_RANK = {
|
|
|
35
36
|
function isBig(k) {
|
|
36
37
|
return 'biginteger' === k || 'bigdecimal' === k;
|
|
37
38
|
}
|
|
39
|
+
// Only concrete scalar operands are valid: anything else (kinds, maps,
|
|
40
|
+
// lists, null, top, funcs) must not coerce — the JS `+` would leak
|
|
41
|
+
// internals like "[object Object]" into output. A non-scalar operand
|
|
42
|
+
// leaves the op unresolved, which generate() reports.
|
|
43
|
+
//
|
|
44
|
+
// A pref operand contributes its preferred value (`pref(1)+2`), and
|
|
45
|
+
// therefore that value's kind too.
|
|
46
|
+
function operand(v) {
|
|
47
|
+
while (v?.isPref) {
|
|
48
|
+
v = v.peg;
|
|
49
|
+
}
|
|
50
|
+
return v;
|
|
51
|
+
}
|
|
52
|
+
// The operand's LEAF, not the JavaScript type of its peg: integer and
|
|
53
|
+
// float share `number`, while the exact leaves are told apart from each
|
|
54
|
+
// other and from everything else by their own flags. The whole ladder in
|
|
55
|
+
// `operate` dispatches on this and never on `typeof`.
|
|
56
|
+
function opkind(v) {
|
|
57
|
+
if (!(v?.isVal && v.isScalar)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
if (v.isBigInteger) {
|
|
61
|
+
return 'biginteger';
|
|
62
|
+
}
|
|
63
|
+
if (v.isBigDecimal) {
|
|
64
|
+
return 'bigdecimal';
|
|
65
|
+
}
|
|
66
|
+
if (v.isInteger) {
|
|
67
|
+
return 'integer';
|
|
68
|
+
}
|
|
69
|
+
const t = typeof v.peg;
|
|
70
|
+
return 'number' === t ? 'float' :
|
|
71
|
+
'string' === t ? 'string' :
|
|
72
|
+
'boolean' === t ? 'boolean' :
|
|
73
|
+
undefined;
|
|
74
|
+
}
|
|
75
|
+
// THE TEXT `+` WOULD MAKE OF THIS OPERAND, or undefined if `+` would not
|
|
76
|
+
// take it at all.
|
|
77
|
+
//
|
|
78
|
+
// `join` folds with `+` seeded with `""`, so every member goes through
|
|
79
|
+
// concatenation's string branch — and this is the function that branch
|
|
80
|
+
// calls. Exported so that the fold and the operator cannot drift into
|
|
81
|
+
// two answers to "how does a number become text": there is one
|
|
82
|
+
// rendering, `digits` below, and both reach it here.
|
|
83
|
+
function plusText(v) {
|
|
84
|
+
const o = operand(v);
|
|
85
|
+
const k = opkind(o);
|
|
86
|
+
return undefined === k ? undefined : digits(o, k);
|
|
87
|
+
}
|
|
38
88
|
class PlusOpVal extends OpBaseVal_1.OpBaseVal {
|
|
39
89
|
constructor(spec, ctx) {
|
|
40
90
|
super(spec, ctx);
|
|
@@ -47,41 +97,6 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
|
|
|
47
97
|
return 'plus';
|
|
48
98
|
}
|
|
49
99
|
operate(ctx, args) {
|
|
50
|
-
// Only concrete scalar operands are valid: anything else (kinds,
|
|
51
|
-
// maps, lists, null, top, funcs) must not coerce — the JS `+` would
|
|
52
|
-
// leak internals like "[object Object]" into output. A non-scalar
|
|
53
|
-
// operand leaves the op unresolved, which generate() reports.
|
|
54
|
-
const operand = (v) => {
|
|
55
|
-
// A pref operand contributes its preferred value (`pref(1)+2`),
|
|
56
|
-
// and therefore that value's kind too.
|
|
57
|
-
while (v?.isPref) {
|
|
58
|
-
v = v.peg;
|
|
59
|
-
}
|
|
60
|
-
return v;
|
|
61
|
-
};
|
|
62
|
-
// The operand's LEAF, not the JavaScript type of its peg: integer
|
|
63
|
-
// and float share `number`, while the exact leaves are told apart
|
|
64
|
-
// from each other and from everything else by their own flags. The
|
|
65
|
-
// whole ladder below dispatches on this and never on `typeof`.
|
|
66
|
-
const opkind = (v) => {
|
|
67
|
-
if (!(v?.isVal && v.isScalar)) {
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
if (v.isBigInteger) {
|
|
71
|
-
return 'biginteger';
|
|
72
|
-
}
|
|
73
|
-
if (v.isBigDecimal) {
|
|
74
|
-
return 'bigdecimal';
|
|
75
|
-
}
|
|
76
|
-
if (v.isInteger) {
|
|
77
|
-
return 'integer';
|
|
78
|
-
}
|
|
79
|
-
const t = typeof v.peg;
|
|
80
|
-
return 'number' === t ? 'float' :
|
|
81
|
-
'string' === t ? 'string' :
|
|
82
|
-
'boolean' === t ? 'boolean' :
|
|
83
|
-
undefined;
|
|
84
|
-
};
|
|
85
100
|
const av = operand(args[0]);
|
|
86
101
|
const bv = operand(args[1]);
|
|
87
102
|
const ak = opkind(av);
|
|
@@ -115,9 +130,18 @@ class PlusOpVal extends OpBaseVal_1.OpBaseVal {
|
|
|
115
130
|
return (0, err_1.makeNilErr)(ctx, 'exact_float_mix', this, undefined, 'add', { left: ak, right: bk });
|
|
116
131
|
}
|
|
117
132
|
// Float with float or integer: unchanged R5 contagion, binary64
|
|
118
|
-
// addition, float result (`1 + 2.0` is `3.0`)
|
|
133
|
+
// addition, float result (`1 + 2.0` is `3.0`) -- but a sum that
|
|
134
|
+
// leaves binary64's finite range is NOT a value. Aontu is a JSON
|
|
135
|
+
// superset and there is no notation for an infinity, so one here
|
|
136
|
+
// used to escape as `[aontu/internal]` in TypeScript and as Go's
|
|
137
|
+
// raw `json: unsupported value: +Inf` with no code at all
|
|
138
|
+
// (use-cases/BUGS.md 39). The same check governs the arithmetic
|
|
139
|
+
// family (float_overflow, ts/src/val/arith.ts).
|
|
119
140
|
if ('float' === ak || 'float' === bk) {
|
|
120
|
-
|
|
141
|
+
const sum = av.peg + bv.peg;
|
|
142
|
+
return Number.isFinite(sum) ?
|
|
143
|
+
new NumberVal_1.NumberVal({ peg: sum }) :
|
|
144
|
+
(0, err_1.makeNilErr)(ctx, 'float_overflow', this, undefined, 'add');
|
|
121
145
|
}
|
|
122
146
|
// Both operands are on the exact ladder: promote to the widest.
|
|
123
147
|
const rank = EXACT_RANK[bk] < EXACT_RANK[ak] ? EXACT_RANK[ak] : EXACT_RANK[bk];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlusOpVal.js","sourceRoot":"","sources":["../../src/val/PlusOpVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;
|
|
1
|
+
{"version":3,"file":"PlusOpVal.js","sourceRoot":"","sources":["../../src/val/PlusOpVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrefFuncVal.js","sourceRoot":"","sources":["../../src/val/PrefFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAEnC,wCAEmB;
|
|
1
|
+
{"version":3,"file":"PrefFuncVal.js","sourceRoot":"","sources":["../../src/val/PrefFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAEnC,wCAEmB;AAEnB,4CAAwC;AACxC,+CAA2C;AAG3C,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,GAAiB,EAAE,IAAW;QACpC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAA,gBAAU,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAEpB,oCAAoC;YACpC,GAAG,GAAG,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;gBAC9D,IAAI,IAAI,GAAG,GAAG,CAAA;gBACd,kEAAkE;gBAClE,IACE,GAAG,CAAC,QAAQ;uBACT,GAAG,CAAC,MAAM,EACb,CAAC;oBACD,IAAI,GAAG,IAAI,iBAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;gBACvC,CAAC;gBAED,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF,CAAC,iCAAiC;QAIjC,WAAW"}
|
package/dist/val/PrefVal.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { AontuContext } from '../ctx';
|
|
3
3
|
import { FeatureVal } from './FeatureVal';
|
|
4
|
+
declare function prefInnerPeg(v: Val): Val;
|
|
4
5
|
declare class PrefVal extends FeatureVal {
|
|
5
6
|
isPref: boolean;
|
|
6
7
|
isGenable: boolean;
|
|
7
8
|
cjo: number;
|
|
8
9
|
superpeg: Val;
|
|
9
|
-
familypeg: Val;
|
|
10
10
|
rank: number;
|
|
11
|
+
narrowed?: Val;
|
|
11
12
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
12
13
|
private resuper;
|
|
14
|
+
private restand;
|
|
13
15
|
unify(peer: Val, ctx: AontuContext): Val;
|
|
14
16
|
same(peer: Val): boolean;
|
|
15
17
|
clone(ctx: AontuContext, spec?: ValSpec): Val;
|
|
16
18
|
get canon(): string;
|
|
17
19
|
gen(ctx?: AontuContext): any;
|
|
18
20
|
}
|
|
19
|
-
export { PrefVal, };
|
|
21
|
+
export { PrefVal, prefInnerPeg, };
|