aontu 0.61.0 → 0.63.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 +4 -4
- package/dist/agentsmd.d.ts +1 -0
- package/dist/agentsmd.js +7 -28
- package/dist/agentsmd.js.map +1 -1
- package/dist/alias.js.map +1 -1
- package/dist/allow.d.ts +23 -0
- package/dist/allow.js +138 -0
- package/dist/allow.js.map +1 -0
- package/dist/aontu.d.ts +4 -2
- package/dist/aontu.js +4 -80
- package/dist/aontu.js.map +1 -1
- package/dist/aontumodel.d.ts +4 -0
- package/dist/aontumodel.js +33 -0
- package/dist/aontumodel.js.map +1 -0
- package/dist/cli.d.ts +10 -1
- package/dist/cli.js +877 -479
- package/dist/cli.js.map +1 -1
- package/dist/ctx.js +0 -48
- package/dist/ctx.js.map +1 -1
- package/dist/diff.js +0 -32
- package/dist/diff.js.map +1 -1
- package/dist/err.js +0 -40
- package/dist/err.js.map +1 -1
- package/dist/escape.js +0 -45
- package/dist/escape.js.map +1 -1
- package/dist/exactjson.d.ts +0 -35
- package/dist/exactjson.js +0 -131
- package/dist/exactjson.js.map +1 -1
- package/dist/format.js +55 -189
- package/dist/format.js.map +1 -1
- package/dist/grammar.d.ts +9 -0
- package/dist/grammar.js +54 -0
- package/dist/grammar.js.map +1 -0
- package/dist/graph.js +0 -26
- package/dist/graph.js.map +1 -1
- package/dist/hcanon.js +0 -82
- package/dist/hcanon.js.map +1 -1
- package/dist/helpdoc.d.ts +16 -0
- package/dist/helpdoc.js +59 -0
- package/dist/helpdoc.js.map +1 -0
- package/dist/hints.d.ts +0 -6
- package/dist/hints.js +59 -47
- package/dist/hints.js.map +1 -1
- package/dist/jsonschema.js +0 -114
- package/dist/jsonschema.js.map +1 -1
- package/dist/keyorder.d.ts +0 -7
- package/dist/keyorder.js +0 -41
- package/dist/keyorder.js.map +1 -1
- package/dist/lang.js +32 -877
- package/dist/lang.js.map +1 -1
- package/dist/lower.d.ts +3 -0
- package/dist/lower.js +14 -61
- package/dist/lower.js.map +1 -1
- package/dist/lsp-server.js +0 -16
- package/dist/lsp-server.js.map +1 -1
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +12 -159
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.js +0 -26
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp.js +0 -113
- package/dist/mcp.js.map +1 -1
- package/dist/mod-tool.js +0 -130
- package/dist/mod-tool.js.map +1 -1
- package/dist/mod.js +0 -162
- package/dist/mod.js.map +1 -1
- package/dist/patch.js +0 -217
- package/dist/patch.js.map +1 -1
- package/dist/provenance.js +0 -140
- package/dist/provenance.js.map +1 -1
- package/dist/query.js +0 -75
- package/dist/query.js.map +1 -1
- package/dist/reach.js +0 -43
- package/dist/reach.js.map +1 -1
- package/dist/relation.d.ts +2 -0
- package/dist/relation.js +3 -58
- package/dist/relation.js.map +1 -1
- package/dist/render.js +33 -143
- package/dist/render.js.map +1 -1
- package/dist/report-sarif.d.ts +0 -11
- package/dist/report-sarif.js +0 -28
- package/dist/report-sarif.js.map +1 -1
- package/dist/sig.js +0 -35
- package/dist/sig.js.map +1 -1
- package/dist/sigdecl.js +1 -1
- package/dist/sigdecl.js.map +1 -1
- package/dist/siggate.js +0 -4
- package/dist/siggate.js.map +1 -1
- package/dist/site.js +3 -29
- package/dist/site.js.map +1 -1
- package/dist/subsume.d.ts +0 -10
- package/dist/subsume.js +0 -137
- package/dist/subsume.js.map +1 -1
- package/dist/template.d.ts +2 -1
- package/dist/template.js +58 -138
- package/dist/template.js.map +1 -1
- package/dist/trim.js +0 -41
- package/dist/trim.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.js.map +1 -1
- package/dist/unify.js +12 -242
- package/dist/unify.js.map +1 -1
- package/dist/utility.js +0 -22
- package/dist/utility.js.map +1 -1
- package/dist/val/AbnfFuncVal.d.ts +18 -0
- package/dist/val/AbnfFuncVal.js +132 -0
- package/dist/val/AbnfFuncVal.js.map +1 -0
- package/dist/val/AbsentVal.d.ts +11 -0
- package/dist/val/AbsentVal.js +30 -0
- package/dist/val/AbsentVal.js.map +1 -0
- package/dist/val/AggFuncVal.d.ts +10 -1
- package/dist/val/AggFuncVal.js +104 -116
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/ArithFuncVal.js +0 -12
- package/dist/val/ArithFuncVal.js.map +1 -1
- package/dist/val/BagVal.js +1 -78
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/BigDecimalVal.js +0 -16
- package/dist/val/BigDecimalVal.js.map +1 -1
- package/dist/val/BigIntegerVal.js +0 -16
- package/dist/val/BigIntegerVal.js.map +1 -1
- package/dist/val/CloseFuncVal.js +0 -9
- package/dist/val/CloseFuncVal.js.map +1 -1
- package/dist/val/CmpFuncVal.d.ts +20 -0
- package/dist/val/CmpFuncVal.js +188 -0
- package/dist/val/CmpFuncVal.js.map +1 -0
- package/dist/val/ConjunctVal.js +0 -29
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/ConstraintVal.js +0 -500
- package/dist/val/ConstraintVal.js.map +1 -1
- package/dist/val/ContainerKindVal.js +0 -2
- package/dist/val/ContainerKindVal.js.map +1 -1
- package/dist/val/CopyFuncVal.js +0 -3
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/Decimal.js +0 -179
- package/dist/val/Decimal.js.map +1 -1
- package/dist/val/DeprecateFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.js +0 -152
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/EachFuncVal.d.ts +1 -2
- package/dist/val/EachFuncVal.js +12 -29
- package/dist/val/EachFuncVal.js.map +1 -1
- package/dist/val/EmitFuncVal.d.ts +1 -1
- package/dist/val/EmitFuncVal.js +6 -119
- package/dist/val/EmitFuncVal.js.map +1 -1
- package/dist/val/ExpectVal.js +0 -62
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/FilterFuncVal.js +0 -25
- package/dist/val/FilterFuncVal.js.map +1 -1
- package/dist/val/FuncBaseVal.d.ts +1 -0
- package/dist/val/FuncBaseVal.js +7 -127
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/GraphAtomVal.js +0 -15
- package/dist/val/GraphAtomVal.js.map +1 -1
- package/dist/val/HideFuncVal.js +0 -13
- package/dist/val/HideFuncVal.js.map +1 -1
- package/dist/val/IntegerVal.js +0 -61
- package/dist/val/IntegerVal.js.map +1 -1
- package/dist/val/JunctionVal.js +0 -20
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.js +0 -46
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.js +0 -57
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js +11 -6
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +0 -151
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MatchFuncVal.js +0 -27
- package/dist/val/MatchFuncVal.js.map +1 -1
- package/dist/val/{FormFuncVal.d.ts → MaybeFuncVal.d.ts} +5 -5
- package/dist/val/MaybeFuncVal.js +50 -0
- package/dist/val/MaybeFuncVal.js.map +1 -0
- package/dist/val/MoveFuncVal.js +0 -18
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NilVal.js +2 -36
- package/dist/val/NilVal.js.map +1 -1
- package/dist/val/NomFuncVal.d.ts +12 -0
- package/dist/val/NomFuncVal.js +153 -0
- package/dist/val/NomFuncVal.js.map +1 -0
- package/dist/val/NumberVal.js +0 -15
- package/dist/val/NumberVal.js.map +1 -1
- package/dist/val/OpBaseVal.d.ts +1 -0
- package/dist/val/OpBaseVal.js +3 -15
- package/dist/val/OpBaseVal.js.map +1 -1
- package/dist/val/PackFuncVal.js +0 -34
- package/dist/val/PackFuncVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +0 -6
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PathVal.js +0 -41
- package/dist/val/PathVal.js.map +1 -1
- package/dist/val/PlaceVal.js +0 -25
- package/dist/val/PlaceVal.js.map +1 -1
- package/dist/val/PlusOpVal.d.ts +1 -7
- package/dist/val/PlusOpVal.js +13 -74
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefFuncVal.js +0 -1
- package/dist/val/PrefFuncVal.js.map +1 -1
- package/dist/val/PrefVal.js +0 -167
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RecurseVal.js +0 -55
- package/dist/val/RecurseVal.js.map +1 -1
- package/dist/val/RefVal.js +0 -282
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ReferFuncVal.js +0 -232
- package/dist/val/ReferFuncVal.js.map +1 -1
- package/dist/val/ScalarKindVal.js +0 -49
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/ScalarVal.js +0 -11
- package/dist/val/ScalarVal.js.map +1 -1
- package/dist/val/StrFuncVal.js +0 -18
- package/dist/val/StrFuncVal.js.map +1 -1
- package/dist/val/SuperFuncVal.js +0 -32
- package/dist/val/SuperFuncVal.js.map +1 -1
- package/dist/val/TopVal.js +0 -1
- package/dist/val/TopVal.js.map +1 -1
- package/dist/val/TranslateFuncVal.d.ts +12 -0
- package/dist/val/TranslateFuncVal.js +99 -0
- package/dist/val/TranslateFuncVal.js.map +1 -0
- package/dist/val/UpperFuncVal.js +11 -6
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/Val.d.ts +1 -0
- package/dist/val/Val.js +2 -133
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js +0 -12
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/arith.js +0 -37
- package/dist/val/arith.js.map +1 -1
- package/dist/val/caserange.d.ts +3 -0
- package/dist/val/caserange.js +49 -0
- package/dist/val/caserange.js.map +1 -0
- package/dist/val/members.js +0 -6
- package/dist/val/members.js.map +1 -1
- package/dist/val/numcmp.js +0 -11
- package/dist/val/numcmp.js.map +1 -1
- package/dist/val/numkind.js +0 -145
- package/dist/val/numkind.js.map +1 -1
- package/dist/val/valutil.js +0 -16
- package/dist/val/valutil.js.map +1 -1
- package/dist/vet.d.ts +12 -0
- package/dist/vet.js +159 -412
- package/dist/vet.js.map +1 -1
- package/dist/view.js +0 -414
- package/dist/view.js.map +1 -1
- package/dist/walk.js +0 -41
- package/dist/walk.js.map +1 -1
- package/grammar/aontu.abnf +9 -7
- package/grammar/aontu.gbnf +5 -5
- package/grammar/aontu.lark +5 -5
- package/grammar/aontu.tmLanguage.json +1 -1
- package/package.json +4 -2
- package/skill/SKILL.md +8 -0
- package/skill/init/check.sh +28 -0
- package/skill/init/data.aon +12 -0
- package/skill/init/model.aon +19 -0
- package/skill/tasks.md +151 -0
- package/src/agentsmd.ts +8 -32
- package/src/alias.ts +0 -39
- package/src/allow.ts +221 -0
- package/src/aontu.ts +10 -108
- package/src/aontumodel.ts +32 -0
- package/src/cli.ts +1009 -540
- package/src/ctx.ts +0 -103
- package/src/diff.ts +0 -40
- package/src/err.ts +0 -40
- package/src/escape.ts +0 -46
- package/src/exactjson.ts +0 -131
- package/src/format.ts +63 -234
- package/src/grammar.ts +72 -0
- package/src/graph.ts +0 -61
- package/src/hcanon.ts +0 -82
- package/src/helpdoc.ts +77 -0
- package/src/hints.ts +72 -49
- package/src/jsonschema.ts +0 -123
- package/src/keyorder.ts +0 -42
- package/src/lang.ts +39 -895
- package/src/lower.ts +15 -65
- package/src/lsp-server.ts +0 -16
- package/src/lsp.ts +12 -180
- package/src/mcp-server.ts +0 -31
- package/src/mcp.ts +0 -130
- package/src/mod-tool.ts +0 -158
- package/src/mod.ts +0 -178
- package/src/patch.ts +0 -232
- package/src/provenance.ts +0 -183
- package/src/query.ts +0 -84
- package/src/reach.ts +0 -53
- package/src/relation.ts +7 -71
- package/src/render.ts +33 -180
- package/src/report-sarif.ts +0 -48
- package/src/sig.ts +0 -35
- package/src/sigdecl.ts +1 -1
- package/src/siggate.ts +0 -30
- package/src/site.ts +3 -29
- package/src/subsume.ts +1 -161
- package/src/template.ts +69 -140
- package/src/trim.ts +0 -53
- package/src/type.ts +2 -45
- package/src/unify.ts +13 -251
- package/src/utility.ts +0 -31
- package/src/val/AbnfFuncVal.ts +181 -0
- package/src/val/AbsentVal.ts +54 -0
- package/src/val/AggFuncVal.ts +152 -188
- package/src/val/ArithFuncVal.ts +0 -20
- package/src/val/BagVal.ts +1 -78
- package/src/val/BigDecimalVal.ts +0 -16
- package/src/val/BigIntegerVal.ts +0 -16
- package/src/val/CloseFuncVal.ts +0 -9
- package/src/val/CmpFuncVal.ts +249 -0
- package/src/val/ConjunctVal.ts +0 -33
- package/src/val/ConstraintVal.ts +2 -537
- package/src/val/ContainerKindVal.ts +0 -18
- package/src/val/CopyFuncVal.ts +0 -5
- package/src/val/Decimal.ts +1 -185
- package/src/val/DeprecateFuncVal.ts +0 -10
- package/src/val/DisjunctVal.ts +0 -157
- package/src/val/EachFuncVal.ts +12 -53
- package/src/val/EmitFuncVal.ts +8 -208
- package/src/val/ExpectVal.ts +0 -62
- package/src/val/FilterFuncVal.ts +0 -55
- package/src/val/FuncBaseVal.ts +9 -130
- package/src/val/GraphAtomVal.ts +0 -42
- package/src/val/HideFuncVal.ts +0 -15
- package/src/val/IntegerVal.ts +0 -61
- package/src/val/JunctionVal.ts +0 -20
- package/src/val/KeyFuncVal.ts +0 -48
- package/src/val/ListVal.ts +0 -59
- package/src/val/LowerFuncVal.ts +12 -7
- package/src/val/MapVal.ts +0 -151
- package/src/val/MatchFuncVal.ts +0 -59
- package/src/val/MaybeFuncVal.ts +86 -0
- package/src/val/MoveFuncVal.ts +0 -20
- package/src/val/NilVal.ts +2 -36
- package/src/val/NomFuncVal.ts +200 -0
- package/src/val/NumberVal.ts +0 -16
- package/src/val/OpBaseVal.ts +4 -17
- package/src/val/PackFuncVal.ts +0 -63
- package/src/val/PathFuncVal.ts +0 -32
- package/src/val/PathVal.ts +0 -66
- package/src/val/PlaceVal.ts +0 -45
- package/src/val/PlusOpVal.ts +18 -75
- package/src/val/PrefFuncVal.ts +0 -1
- package/src/val/PrefVal.ts +0 -179
- package/src/val/RecurseVal.ts +0 -81
- package/src/val/RefVal.ts +1 -285
- package/src/val/ReferFuncVal.ts +0 -255
- package/src/val/ScalarKindVal.ts +0 -50
- package/src/val/ScalarVal.ts +0 -12
- package/src/val/StrFuncVal.ts +0 -44
- package/src/val/SuperFuncVal.ts +0 -42
- package/src/val/TopVal.ts +0 -1
- package/src/val/TranslateFuncVal.ts +132 -0
- package/src/val/UpperFuncVal.ts +12 -7
- package/src/val/Val.ts +3 -192
- package/src/val/VarVal.ts +0 -15
- package/src/val/arith.ts +0 -92
- package/src/val/caserange.ts +53 -0
- package/src/val/members.ts +0 -23
- package/src/val/numcmp.ts +1 -27
- package/src/val/numkind.ts +0 -149
- package/src/val/valutil.ts +0 -16
- package/src/vet.ts +209 -504
- package/src/view.ts +0 -507
- package/src/walk.ts +0 -41
- package/dist/std.d.ts +0 -3
- package/dist/std.js +0 -637
- package/dist/std.js.map +0 -1
- package/dist/val/FormFuncVal.js +0 -55
- package/dist/val/FormFuncVal.js.map +0 -1
- package/src/std.ts +0 -648
- package/src/val/FormFuncVal.ts +0 -119
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatchFuncVal.js","sourceRoot":"","sources":["../../src/val/MatchFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;;
|
|
1
|
+
{"version":3,"file":"MatchFuncVal.js","sourceRoot":"","sources":["../../src/val/MatchFuncVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Val, ValSpec } from '../type';
|
|
2
2
|
import { AontuContext } from '../ctx';
|
|
3
|
-
import { ListVal } from './ListVal';
|
|
4
3
|
import { FuncBaseVal } from './FuncBaseVal';
|
|
5
|
-
declare class
|
|
6
|
-
|
|
4
|
+
declare class MaybeFuncVal extends FuncBaseVal {
|
|
5
|
+
isMaybeFunc: boolean;
|
|
6
|
+
forgives: boolean;
|
|
7
7
|
staged: boolean;
|
|
8
8
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
9
9
|
funcname(): string;
|
|
10
10
|
prepare(_ctx: AontuContext, _args: Val[]): null;
|
|
11
11
|
unify(peer: Val, ctx: AontuContext): Val;
|
|
12
|
-
resolve(ctx: AontuContext, args: Val[]):
|
|
12
|
+
resolve(ctx: AontuContext, args: Val[]): any;
|
|
13
13
|
}
|
|
14
|
-
export {
|
|
14
|
+
export { MaybeFuncVal, };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2026 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MaybeFuncVal = void 0;
|
|
5
|
+
const unify_1 = require("../unify");
|
|
6
|
+
const AbsentVal_1 = require("./AbsentVal");
|
|
7
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
8
|
+
const top_1 = require("./top");
|
|
9
|
+
class MaybeFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
10
|
+
constructor(spec, ctx) {
|
|
11
|
+
super(spec, ctx);
|
|
12
|
+
this.isMaybeFunc = true;
|
|
13
|
+
this.forgives = true;
|
|
14
|
+
// A reference that has not resolved YET is not a reference to
|
|
15
|
+
// nothing (ADR-034).
|
|
16
|
+
this.staged = true;
|
|
17
|
+
}
|
|
18
|
+
funcname() {
|
|
19
|
+
return 'maybe';
|
|
20
|
+
}
|
|
21
|
+
// Null so the base drives nothing: it would drive on the CALLER's
|
|
22
|
+
// context, where NilVal.make records the miss before resolve runs.
|
|
23
|
+
prepare(_ctx, _args) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
unify(peer, ctx) {
|
|
27
|
+
if (!ctx.settle) {
|
|
28
|
+
return this.residuate(peer, ctx);
|
|
29
|
+
}
|
|
30
|
+
return super.unify(peer, ctx);
|
|
31
|
+
}
|
|
32
|
+
resolve(ctx, args) {
|
|
33
|
+
// Cloned rather than swapped and restored, which is the
|
|
34
|
+
// own-property hazard trialUnify documents at length.
|
|
35
|
+
const sink = [];
|
|
36
|
+
const actx = ctx.clone({ err: sink, collect: true });
|
|
37
|
+
const out = (0, unify_1.unite)(actx, args[0], (0, top_1.top)(), 'maybe');
|
|
38
|
+
// ONLY a missing referent. A conflict inside the argument stays
|
|
39
|
+
// the document's error.
|
|
40
|
+
if (out.isNil && 'reference' === out.class) {
|
|
41
|
+
return this.place(new AbsentVal_1.AbsentVal({}, ctx));
|
|
42
|
+
}
|
|
43
|
+
for (const err of sink) {
|
|
44
|
+
ctx.adderr(err);
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
} /* node:coverage ignore next 6 */
|
|
49
|
+
exports.MaybeFuncVal = MaybeFuncVal;
|
|
50
|
+
//# sourceMappingURL=MaybeFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaybeFuncVal.js","sourceRoot":"","sources":["../../src/val/MaybeFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAYpD,oCAAgC;AAChC,2CAAuC;AACvC,+CAA2C;AAG3C,+BAEc;AAGd,MAAM,YAAa,SAAQ,yBAAW;IASpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAZlB,gBAAW,GAAG,IAAI,CAAA;QAElB,aAAQ,GAAG,IAAI,CAAA;QAEf,8DAA8D;QAC9D,qBAAqB;QACrB,WAAM,GAAG,IAAI,CAAA;IAOb,CAAC;IAGD,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,kEAAkE;IAClE,mEAAmE;IACnE,OAAO,CAAC,IAAkB,EAAE,KAAY;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,wDAAwD;QACxD,sDAAsD;QACtD,MAAM,IAAI,GAAU,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,GAAG,GAAG,IAAA,aAAK,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAA,SAAG,GAAE,EAAE,OAAO,CAAC,CAAA;QAEhD,gEAAgE;QAChE,wBAAwB;QACxB,IAAI,GAAG,CAAC,KAAK,IAAI,WAAW,KAAM,GAAW,CAAC,KAAK,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,qBAAS,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,GAAU,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CAEF,CAAC,iCAAiC;QAIjC,YAAY"}
|
package/dist/val/MoveFuncVal.js
CHANGED
|
@@ -25,23 +25,6 @@ class MoveFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
25
25
|
const orig = out;
|
|
26
26
|
if (!orig.isNil) {
|
|
27
27
|
const src = orig.clone(ctx);
|
|
28
|
-
// THE HIDE-WALK ONLY RUNS WHEN THE CLONE IS A SEPARATE OBJECT.
|
|
29
|
-
//
|
|
30
|
-
// move() is the only function that marks the ORIGINAL rather than
|
|
31
|
-
// the clone -- that is how the value disappears from its old home
|
|
32
|
-
// and reappears at the destination. It relies on clone() returning
|
|
33
|
-
// something distinct to carry to the destination.
|
|
34
|
-
//
|
|
35
|
-
// TopVal.clone is the IDENTITY function, so for `move(top)` the
|
|
36
|
-
// clone and the original are the same object and the walk hid the
|
|
37
|
-
// very value being returned: the key vanished from generated output
|
|
38
|
-
// with no error, while canon still showed `x:top` -- the port
|
|
39
|
-
// disagreeing with itself.
|
|
40
|
-
//
|
|
41
|
-
// With the walk skipped, `move(top)` keeps `top` at the destination
|
|
42
|
-
// and then errors there because top is not generable, which is
|
|
43
|
-
// already what `x:top`, `x:copy(top)` and `x:pref(top)` do in both
|
|
44
|
-
// ports, and what `move(number)` does for the same reason.
|
|
45
28
|
if (src !== orig) {
|
|
46
29
|
if (src.isRef) {
|
|
47
30
|
src.mark._hide_found = true;
|
|
@@ -53,7 +36,6 @@ class MoveFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
|
53
36
|
}
|
|
54
37
|
out = new PrefFuncVal_1.PrefFuncVal({ peg: [src] }, ctx);
|
|
55
38
|
}
|
|
56
|
-
// console.log('MOVE-resolve', orig, out)
|
|
57
39
|
return out;
|
|
58
40
|
}
|
|
59
41
|
} /* node:coverage ignore next 6 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoveFuncVal.js","sourceRoot":"","sources":["../../src/val/MoveFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wCAEmB;
|
|
1
|
+
{"version":3,"file":"MoveFuncVal.js","sourceRoot":"","sources":["../../src/val/MoveFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,wCAEmB;AAGnB,+CAA2C;AAC3C,+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;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,KAAK,IAAI,EAAE,CAAC;gBACjB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;gBAC7B,CAAC;gBAED,IAAA,cAAI,EAAC,IAAI,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;oBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;oBACpB,OAAO,GAAG,CAAA;gBACZ,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;QAGD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAC,iCAAiC;QAIjC,WAAW"}
|
package/dist/val/NilVal.js
CHANGED
|
@@ -30,15 +30,11 @@ class NilVal extends Val_1.Val {
|
|
|
30
30
|
clone(ctx, spec) {
|
|
31
31
|
let out = super.clone(ctx, spec);
|
|
32
32
|
out.why = this.why;
|
|
33
|
-
// Should these clone?
|
|
34
|
-
// out.primary = this.primary?.clone()
|
|
35
|
-
// out.secondary = this.secondary?.clone()
|
|
36
33
|
out.primary = this.primary;
|
|
37
34
|
out.secondary = this.secondary;
|
|
38
35
|
out.msg = this.msg;
|
|
39
36
|
return out;
|
|
40
37
|
}
|
|
41
|
-
// TODO: custom canon? useful for unknown function errors
|
|
42
38
|
get canon() {
|
|
43
39
|
return 'nil';
|
|
44
40
|
}
|
|
@@ -69,7 +65,6 @@ class NilVal extends Val_1.Val {
|
|
|
69
65
|
}
|
|
70
66
|
}
|
|
71
67
|
exports.NilVal = NilVal;
|
|
72
|
-
// TODO: include Val generating nil, thus capture type
|
|
73
68
|
// A Nil is an error - should not happen - unify failed
|
|
74
69
|
// refactor ,make(spec,ctx)
|
|
75
70
|
NilVal.make = (ctx, why, av, bv, attempt, details) => {
|
|
@@ -97,28 +92,8 @@ NilVal.make = (ctx, why, av, bv, attempt, details) => {
|
|
|
97
92
|
}
|
|
98
93
|
}
|
|
99
94
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
// correctly and the path only by accident: a value that arrives by
|
|
103
|
-
// REFERENCE is re-pathed to the referring field, and its children
|
|
104
|
-
// are re-pathed to that same field rather than rebased under it, so
|
|
105
|
-
// every conflict inside `q: $.M` reported `$.q` — the enclosing
|
|
106
|
-
// record, not the key to edit, and the SAME path for every one of
|
|
107
|
-
// its fields. The context has descended to the child by the time
|
|
108
|
-
// the meet fails, and Go reads the path off the tree position for
|
|
109
|
-
// exactly this reason.
|
|
110
|
-
//
|
|
111
|
-
// Only EXTENDS, never redirects: the context path is taken when the
|
|
112
|
-
// operand's path is a PREFIX of it, so a nil minted away from the
|
|
113
|
-
// descent (a func resolving an argument, a generator's own probe,
|
|
114
|
-
// an anchored `--at` run whose operand is already correctly placed)
|
|
115
|
-
// keeps the path its operand carries. Taking the context path
|
|
116
|
-
// unconditionally was tried and reverted -- it moved the closed-key,
|
|
117
|
-
// spread-template and every `--at` finding to the driving location,
|
|
118
|
-
// which is not where those belong.
|
|
119
|
-
if (null != ctx?.path && null != nil.path &&
|
|
120
|
-
nil.path.length < ctx.path.length &&
|
|
121
|
-
nil.path.every((p, i) => p === ctx.path[i])) {
|
|
95
|
+
if (null != ctx?.path && 0 < ctx.path.length &&
|
|
96
|
+
(null != bv || null == nil.path || 0 === nil.path.length)) {
|
|
122
97
|
nil.path = [...ctx.path];
|
|
123
98
|
}
|
|
124
99
|
if (ctx) {
|
|
@@ -126,15 +101,6 @@ NilVal.make = (ctx, why, av, bv, attempt, details) => {
|
|
|
126
101
|
}
|
|
127
102
|
return nil;
|
|
128
103
|
};
|
|
129
|
-
// Shared sentinel for transient "this unification branch failed"
|
|
130
|
-
// markers. Used by DisjunctVal.unify to flag failed member trials
|
|
131
|
-
// (and to dedup results) without allocating a fresh NilVal per
|
|
132
|
-
// failure. The sentinel is filtered out before the disjunct result
|
|
133
|
-
// is constructed, so its .why / .site / .primary fields are never
|
|
134
|
-
// inspected by user-visible code.
|
|
135
|
-
//
|
|
136
|
-
// Do NOT use this sentinel for errors that may surface: those need
|
|
137
|
-
// real NilVals with proper site/path info for descErr formatting.
|
|
138
104
|
const TRIAL_NIL = new NilVal({ why: '|:trial-nil' }); /* node:coverage ignore next 7 */
|
|
139
105
|
exports.TRIAL_NIL = TRIAL_NIL;
|
|
140
106
|
//# sourceMappingURL=NilVal.js.map
|
package/dist/val/NilVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NilVal.js","sourceRoot":"","sources":["../../src/val/NilVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAOhB,+BAAsC;AAEtC,gCAA4C;AAE5C,oCAAoC;AAGpC,MAAM,MAAO,SAAQ,SAAG;
|
|
1
|
+
{"version":3,"file":"NilVal.js","sourceRoot":"","sources":["../../src/val/NilVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
4
|
+
declare const NOM_STYLES: string[];
|
|
5
|
+
declare class NomFuncVal extends FuncBaseVal {
|
|
6
|
+
isNamerFunc: boolean;
|
|
7
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
8
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
9
|
+
funcname(): string;
|
|
10
|
+
resolve(ctx: AontuContext, args: Val[]): Val;
|
|
11
|
+
}
|
|
12
|
+
export { NOM_STYLES, NomFuncVal, };
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2026 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NomFuncVal = exports.NOM_STYLES = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const lower_1 = require("../lower");
|
|
7
|
+
const MapVal_1 = require("./MapVal");
|
|
8
|
+
const StringVal_1 = require("./StringVal");
|
|
9
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
10
|
+
const NOM_STYLES = [
|
|
11
|
+
'camel', // userId
|
|
12
|
+
'dot',
|
|
13
|
+
'kebab',
|
|
14
|
+
'pascal', // UserId
|
|
15
|
+
'path',
|
|
16
|
+
'snake',
|
|
17
|
+
'text',
|
|
18
|
+
'title',
|
|
19
|
+
'upper', // USER_ID
|
|
20
|
+
];
|
|
21
|
+
exports.NOM_STYLES = NOM_STYLES;
|
|
22
|
+
// nom's style name -> the `%case` style `caseName` serves. `upper` and
|
|
23
|
+
// `text` are nom's spellings: `screaming` is what `aontu:render` calls
|
|
24
|
+
// SCREAMING_SNAKE and that name is pinned cross-port, so the mapping
|
|
25
|
+
// lives here rather than in the shared vocabulary.
|
|
26
|
+
const CASENAME_STYLES = {
|
|
27
|
+
camel: 'camel',
|
|
28
|
+
kebab: 'kebab',
|
|
29
|
+
pascal: 'pascal',
|
|
30
|
+
snake: 'snake',
|
|
31
|
+
upper: 'screaming',
|
|
32
|
+
};
|
|
33
|
+
// One name in one style, or undefined when the style is not one, or
|
|
34
|
+
// when the name holds no words at all.
|
|
35
|
+
function styleName(name, style, acronyms) {
|
|
36
|
+
const src = name.replace(/[./]/g, '_');
|
|
37
|
+
const words = (0, lower_1.splitWords)(src);
|
|
38
|
+
if (0 === words.length) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
const cased = CASENAME_STYLES[style];
|
|
42
|
+
if (undefined !== cased) {
|
|
43
|
+
return (0, lower_1.caseName)(src, cased, acronyms);
|
|
44
|
+
}
|
|
45
|
+
if ('dot' === style) {
|
|
46
|
+
return words.map(lower_1.lowerASCII).join('.');
|
|
47
|
+
}
|
|
48
|
+
if ('path' === style) {
|
|
49
|
+
return words.map(lower_1.lowerASCII).join('/');
|
|
50
|
+
}
|
|
51
|
+
if ('title' === style) {
|
|
52
|
+
return words.map((w) => (0, lower_1.capitalise)(w, acronyms)).join(' ');
|
|
53
|
+
}
|
|
54
|
+
if ('text' === style) {
|
|
55
|
+
const isAcronym = (w) => acronyms.some((a) => (0, lower_1.lowerASCII)(a) === (0, lower_1.lowerASCII)(w));
|
|
56
|
+
return [(0, lower_1.capitalise)(words[0], acronyms)]
|
|
57
|
+
.concat(words.slice(1).map((w) => isAcronym(w) ? (0, lower_1.capitalise)(w, acronyms) : (0, lower_1.lowerASCII)(w)))
|
|
58
|
+
.join(' ');
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
// The text a value carries, when it is a concrete string. A path is a
|
|
63
|
+
// string too (ScalarKindVal's Path sits under String), so a spelled
|
|
64
|
+
// address may be renamed like any other text.
|
|
65
|
+
function textOf(v) {
|
|
66
|
+
const s = v;
|
|
67
|
+
return (true === s?.isScalar && 'string' === typeof s.peg) ? s.peg : undefined;
|
|
68
|
+
}
|
|
69
|
+
// An acronym set: a list of concrete strings, or undefined when the
|
|
70
|
+
// value is not one.
|
|
71
|
+
function acronymsOf(v) {
|
|
72
|
+
const l = v;
|
|
73
|
+
if (true !== l?.isList) {
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
const out = [];
|
|
77
|
+
for (const el of l.peg) {
|
|
78
|
+
const t = textOf(el);
|
|
79
|
+
if (undefined === t || '' === t) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
out.push(t);
|
|
83
|
+
}
|
|
84
|
+
return out;
|
|
85
|
+
}
|
|
86
|
+
class NomFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
87
|
+
constructor(spec, ctx) {
|
|
88
|
+
super(spec, ctx);
|
|
89
|
+
this.isNamerFunc = true;
|
|
90
|
+
}
|
|
91
|
+
make(_ctx, spec) {
|
|
92
|
+
return new NomFuncVal(spec);
|
|
93
|
+
}
|
|
94
|
+
funcname() {
|
|
95
|
+
return 'nom';
|
|
96
|
+
}
|
|
97
|
+
resolve(ctx, args) {
|
|
98
|
+
// Arity is checked at parse (funcArity); see the translate twin.
|
|
99
|
+
const name = textOf(args[0]);
|
|
100
|
+
if (undefined === name || '' === name) {
|
|
101
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, args[0], 'name');
|
|
102
|
+
}
|
|
103
|
+
let style;
|
|
104
|
+
let acronyms = [];
|
|
105
|
+
if (2 <= args.length) {
|
|
106
|
+
const second = args[1];
|
|
107
|
+
if (true === second?.isList) {
|
|
108
|
+
if (3 === args.length) {
|
|
109
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, args[2], 'arity');
|
|
110
|
+
}
|
|
111
|
+
const acr = acronymsOf(second);
|
|
112
|
+
if (undefined === acr) {
|
|
113
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, second, 'acronyms');
|
|
114
|
+
}
|
|
115
|
+
acronyms = acr;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
style = textOf(second);
|
|
119
|
+
if (undefined === style) {
|
|
120
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, second, 'style');
|
|
121
|
+
}
|
|
122
|
+
if (3 === args.length) {
|
|
123
|
+
const acr = acronymsOf(args[2]);
|
|
124
|
+
if (undefined === acr) {
|
|
125
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, args[2], 'acronyms');
|
|
126
|
+
}
|
|
127
|
+
acronyms = acr;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// One style: the string.
|
|
132
|
+
if (undefined !== style) {
|
|
133
|
+
const out = styleName(name, style, acronyms);
|
|
134
|
+
if (undefined === out) {
|
|
135
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, args[1], 'style');
|
|
136
|
+
}
|
|
137
|
+
return this.place(new StringVal_1.StringVal({ peg: out }, ctx));
|
|
138
|
+
}
|
|
139
|
+
const peg = {};
|
|
140
|
+
for (const s of NOM_STYLES) {
|
|
141
|
+
const out = styleName(name, s, acronyms);
|
|
142
|
+
if (undefined === out) {
|
|
143
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, args[0], 'name');
|
|
144
|
+
}
|
|
145
|
+
peg[s] = new StringVal_1.StringVal({ peg: out }, ctx);
|
|
146
|
+
}
|
|
147
|
+
const map = new MapVal_1.MapVal({ peg }, ctx);
|
|
148
|
+
map.closed = true;
|
|
149
|
+
return this.place(map);
|
|
150
|
+
}
|
|
151
|
+
} /* node:coverage ignore next 6 */
|
|
152
|
+
exports.NomFuncVal = NomFuncVal;
|
|
153
|
+
//# sourceMappingURL=NomFuncVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NomFuncVal.js","sourceRoot":"","sources":["../../src/val/NomFuncVal.ts"],"names":[],"mappings":"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"}
|
package/dist/val/NumberVal.js
CHANGED
|
@@ -6,16 +6,11 @@ const err_1 = require("../err");
|
|
|
6
6
|
const ScalarVal_1 = require("./ScalarVal");
|
|
7
7
|
const ScalarKindVal_1 = require("./ScalarKindVal");
|
|
8
8
|
const utility_1 = require("../utility");
|
|
9
|
-
// The IEEE-754 binary64 leaf of the number tower. Its KIND is Float (the
|
|
10
|
-
// keyword `float`), not the `number` supertype: `number` names the family
|
|
11
|
-
// of numeric leaves and never tags a concrete value. The class name is
|
|
12
|
-
// historical -- `number` used to name this leaf.
|
|
13
9
|
class NumberVal extends ScalarVal_1.ScalarVal {
|
|
14
10
|
constructor(spec, ctx) {
|
|
15
11
|
// Number.isFinite (not the coercing global isNaN, which lets null/''
|
|
16
12
|
// through as "numbers") — only an actual finite number is valid.
|
|
17
13
|
if (!Number.isFinite(spec.peg)) {
|
|
18
|
-
// TODO: use Nil?
|
|
19
14
|
throw new err_1.AontuError('not-number: ' + spec.peg);
|
|
20
15
|
}
|
|
21
16
|
super({ ...spec, kind: ScalarKindVal_1.Float }, ctx);
|
|
@@ -31,8 +26,6 @@ class NumberVal extends ScalarVal_1.ScalarVal {
|
|
|
31
26
|
else if (peer.isScalar &&
|
|
32
27
|
peer.kind === this.kind &&
|
|
33
28
|
peer.peg === this.peg) {
|
|
34
|
-
// Same kind (both Float) and equal value: integer/float no
|
|
35
|
-
// longer cross-unify, so peer is necessarily a NumberVal here.
|
|
36
29
|
out = this;
|
|
37
30
|
}
|
|
38
31
|
else if (peer.isTop) {
|
|
@@ -49,14 +42,6 @@ class NumberVal extends ScalarVal_1.ScalarVal {
|
|
|
49
42
|
(0, utility_1.explainClose)(te, out);
|
|
50
43
|
return out;
|
|
51
44
|
}
|
|
52
|
-
// Canon must round-trip kind: reparsing the canon of a float-kind
|
|
53
|
-
// value has to yield a float-kind value again. A rendering with no
|
|
54
|
-
// '.' and no exponent (1 -> "1") would reparse as an integer, so it
|
|
55
|
-
// gains a ".0" suffix. Renderings that already carry a fraction, an
|
|
56
|
-
// exponent, or are NaN/Infinity are left alone.
|
|
57
|
-
//
|
|
58
|
-
// This is the CANON path only. String coercion inside `+` keeps plain
|
|
59
|
-
// JS parity ("a"+1.0 is "a1"), so it must not pick up the suffix.
|
|
60
45
|
get canon() {
|
|
61
46
|
const s = super.canon;
|
|
62
47
|
return (s.includes('.') ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberVal.js","sourceRoot":"","sources":["../../src/val/NumberVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAWzD,gCAA+C;AAE/C,2CAAuC;AACvC,mDAAuC;AAEvC,wCAGmB;
|
|
1
|
+
{"version":3,"file":"NumberVal.js","sourceRoot":"","sources":["../../src/val/NumberVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAWzD,gCAA+C;AAE/C,2CAAuC;AACvC,mDAAuC;AAEvC,wCAGmB;AAGnB,MAAM,SAAU,SAAQ,qBAAS;IAG/B,YACE,IAAa,EACb,GAAkB;QAElB,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,gBAAU,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACjD,CAAC;QAED,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,qBAAK,EAAE,EAAE,GAAG,CAAC,CAAA;QAZtC,aAAQ,GAAG,IAAI,CAAA;IAaf,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAE7E,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,YAAY,IAAK,IAAY,CAAC,YAAY,EAAE,CAAC;gBACpD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAC7B,CAAC;iBACI,IACH,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBACvB,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EACrB,CAAC;gBACD,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,GAAG,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,SAAS;oBAC7B,CAAE,IAAY,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,IAAI,KAAK;QACP,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;QACrB,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACf,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACf,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YACf,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACnC,CAAC;CACF,CAAC,iCAAiC;QAIjC,SAAS"}
|
package/dist/val/OpBaseVal.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Val, ValSpec } from '../type';
|
|
|
2
2
|
import { AontuContext } from '../ctx';
|
|
3
3
|
import { FeatureVal } from './FeatureVal';
|
|
4
4
|
declare class OpBaseVal extends FeatureVal {
|
|
5
|
+
cjo: number;
|
|
5
6
|
isOp: boolean;
|
|
6
7
|
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
7
8
|
append(part: any): void;
|
package/dist/val/OpBaseVal.js
CHANGED
|
@@ -13,6 +13,9 @@ const PlaceVal_1 = require("./PlaceVal");
|
|
|
13
13
|
class OpBaseVal extends FeatureVal_1.FeatureVal {
|
|
14
14
|
constructor(spec, ctx) {
|
|
15
15
|
super(spec, ctx);
|
|
16
|
+
// An op sorts BEFORE the kinds in a conjunct: only it knows to wait
|
|
17
|
+
// for a staged operand, and a kind met first refuses it outright.
|
|
18
|
+
this.cjo = 48000;
|
|
16
19
|
this.isOp = true;
|
|
17
20
|
this.peg = [];
|
|
18
21
|
for (let pI = 0; pI < spec.peg.length; pI++) {
|
|
@@ -40,10 +43,6 @@ class OpBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
40
43
|
return (0, PlaceVal_1.fillPlace)(this, peer, ctx).unify((0, top_1.top)(), ctx);
|
|
41
44
|
}
|
|
42
45
|
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Op:' + this.opname(), this, peer);
|
|
43
|
-
// Declared without an initial value: every arm below assigns it, and
|
|
44
|
-
// seeding it with `this` made the two arms that stand the op read as
|
|
45
|
-
// redundant self-assignments. The arms themselves stay as they are —
|
|
46
|
-
// they mirror the dispatch switch in go/op.go arm for arm (ADR-001).
|
|
47
46
|
let out;
|
|
48
47
|
if (this.id == peer.id) {
|
|
49
48
|
return this;
|
|
@@ -52,9 +51,6 @@ class OpBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
52
51
|
let newpeg = [];
|
|
53
52
|
for (let arg of this.peg) {
|
|
54
53
|
if (!arg.done) {
|
|
55
|
-
// Charged to the depth budget: this recurses without going
|
|
56
|
-
// through `unite`, so the counter would otherwise stay flat
|
|
57
|
-
// while the stack grows (see withDepth in unify.ts).
|
|
58
54
|
const a = arg;
|
|
59
55
|
arg = (0, unify_1.withDepth)(ctx, a, (0, top_1.top)(), () => a.unify((0, top_1.top)(), ctx, (0, utility_1.ec)(te, 'ARG')));
|
|
60
56
|
}
|
|
@@ -66,12 +62,10 @@ class OpBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
66
62
|
// `|| this` makes result truthy, so an op that cannot compute yet
|
|
67
63
|
// takes the OpBaseVal arm below rather than a separate null arm.
|
|
68
64
|
let result = this.operate(ctx, newpeg) || this;
|
|
69
|
-
// TODO: should be result.isOp
|
|
70
65
|
if (result instanceof OpBaseVal) {
|
|
71
66
|
if (peer.isTop) {
|
|
72
67
|
out = this;
|
|
73
68
|
}
|
|
74
|
-
// TODO: should peer.isNil
|
|
75
69
|
else if (peer.isNil) {
|
|
76
70
|
out = (0, err_1.makeNilErr)(ctx, 'op[' + this.peg + ']', this, peer);
|
|
77
71
|
}
|
|
@@ -92,22 +86,18 @@ class OpBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
92
86
|
else if (peer.isTop) {
|
|
93
87
|
this.notdone();
|
|
94
88
|
out = this.make(ctx, { peg: newpeg });
|
|
95
|
-
// TODO: make should handle this using ctx?
|
|
96
89
|
out.site.row = this.site.row;
|
|
97
90
|
out.site.col = this.site.col;
|
|
98
91
|
out.site.url = this.site.url;
|
|
99
92
|
out.path = this.path;
|
|
100
|
-
// why += 'top'
|
|
101
93
|
}
|
|
102
94
|
else if (peer.isNil) {
|
|
103
95
|
this.notdone();
|
|
104
96
|
out = peer;
|
|
105
|
-
//why += 'nil'
|
|
106
97
|
}
|
|
107
98
|
else {
|
|
108
99
|
this.notdone();
|
|
109
100
|
out = new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
|
|
110
|
-
// TODO: make should handle this using ctx?
|
|
111
101
|
out.site.row = this.site.row;
|
|
112
102
|
out.site.col = this.site.col;
|
|
113
103
|
out.site.url = this.site.url;
|
|
@@ -156,14 +146,12 @@ class OpBaseVal extends FeatureVal_1.FeatureVal {
|
|
|
156
146
|
gen(ctx) {
|
|
157
147
|
// Unresolved op cannot be generated, so always an error.
|
|
158
148
|
let nil = (0, err_1.makeNilErr)(ctx, 'op', this, undefined);
|
|
159
|
-
// TODO: refactor to use Site
|
|
160
149
|
nil.path = this.path;
|
|
161
150
|
nil.site.url = this.site.url;
|
|
162
151
|
nil.site.row = this.site.row;
|
|
163
152
|
nil.site.col = this.site.col;
|
|
164
153
|
(0, err_1.descErr)(nil, ctx);
|
|
165
154
|
if (ctx) {
|
|
166
|
-
// ctx.err.push(nil)
|
|
167
155
|
ctx.adderr(nil);
|
|
168
156
|
}
|
|
169
157
|
else {
|
|
@@ -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;AACzC,yCAAgD;
|
|
1
|
+
{"version":3,"file":"OpBaseVal.js","sourceRoot":"","sources":["../../src/val/OpBaseVal.ts"],"names":[],"mappings":"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"}
|