aontu 0.50.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aontu.d.ts +4 -2
- package/dist/aontu.js +18 -2
- package/dist/aontu.js.map +1 -1
- package/dist/cli.js +33 -7
- package/dist/cli.js.map +1 -1
- package/dist/exactjson.d.ts +37 -0
- package/dist/exactjson.js +228 -0
- package/dist/exactjson.js.map +1 -0
- package/dist/hints.js +61 -4
- package/dist/hints.js.map +1 -1
- package/dist/keyorder.d.ts +9 -0
- package/dist/keyorder.js +65 -0
- package/dist/keyorder.js.map +1 -0
- package/dist/lang.js +200 -4
- package/dist/lang.js.map +1 -1
- package/dist/lsp.js +12 -2
- package/dist/lsp.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/val/BagVal.js +8 -5
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/BigDecimalVal.d.ts +13 -0
- package/dist/val/BigDecimalVal.js +80 -0
- package/dist/val/BigDecimalVal.js.map +1 -0
- package/dist/val/BigIntegerVal.d.ts +11 -0
- package/dist/val/BigIntegerVal.js +75 -0
- package/dist/val/BigIntegerVal.js.map +1 -0
- package/dist/val/Decimal.d.ts +32 -0
- package/dist/val/Decimal.js +318 -0
- package/dist/val/Decimal.js.map +1 -0
- package/dist/val/IntegerVal.d.ts +2 -0
- package/dist/val/IntegerVal.js +75 -3
- package/dist/val/IntegerVal.js.map +1 -1
- package/dist/val/KeyFuncVal.d.ts +1 -1
- package/dist/val/KeyFuncVal.js +33 -3
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/LowerFuncVal.js +20 -3
- package/dist/val/LowerFuncVal.js.map +1 -1
- package/dist/val/MapVal.js +6 -4
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MoveFuncVal.js +25 -8
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/NumberVal.d.ts +1 -0
- package/dist/val/NumberVal.js +23 -2
- package/dist/val/NumberVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +9 -1
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlusOpVal.d.ts +3 -1
- package/dist/val/PlusOpVal.js +140 -29
- package/dist/val/PlusOpVal.js.map +1 -1
- package/dist/val/PrefVal.d.ts +2 -0
- package/dist/val/PrefVal.js +40 -4
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/RefVal.js +57 -2
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/ScalarKindVal.d.ts +12 -2
- package/dist/val/ScalarKindVal.js +100 -11
- package/dist/val/ScalarKindVal.js.map +1 -1
- package/dist/val/ScalarVal.d.ts +1 -0
- package/dist/val/ScalarVal.js +16 -1
- package/dist/val/ScalarVal.js.map +1 -1
- package/dist/val/SuperFuncVal.d.ts +1 -1
- package/dist/val/SuperFuncVal.js +14 -1
- package/dist/val/SuperFuncVal.js.map +1 -1
- package/dist/val/UpperFuncVal.js +20 -3
- package/dist/val/UpperFuncVal.js.map +1 -1
- package/dist/val/VarVal.js +7 -1
- package/dist/val/VarVal.js.map +1 -1
- package/dist/val/numkind.d.ts +6 -0
- package/dist/val/numkind.js +224 -0
- package/dist/val/numkind.js.map +1 -0
- package/dist/val/valutil.d.ts +1 -0
- package/dist/val/valutil.js +35 -0
- package/dist/val/valutil.js.map +1 -1
- package/package.json +7 -7
- package/src/aontu.ts +23 -2
- package/src/cli.ts +36 -8
- package/src/exactjson.ts +254 -0
- package/src/hints.ts +73 -4
- package/src/keyorder.ts +73 -0
- package/src/lang.ts +229 -5
- package/src/lsp.ts +10 -2
- package/src/val/BagVal.ts +8 -5
- package/src/val/BigDecimalVal.ts +117 -0
- package/src/val/BigIntegerVal.ts +110 -0
- package/src/val/Decimal.ts +385 -0
- package/src/val/IntegerVal.ts +79 -3
- package/src/val/KeyFuncVal.ts +35 -3
- package/src/val/LowerFuncVal.ts +21 -4
- package/src/val/MapVal.ts +6 -4
- package/src/val/MoveFuncVal.ts +26 -9
- package/src/val/NumberVal.ts +25 -2
- package/src/val/PathFuncVal.ts +9 -1
- package/src/val/PlusOpVal.ts +168 -32
- package/src/val/PrefVal.ts +66 -5
- package/src/val/RefVal.ts +61 -2
- package/src/val/ScalarKindVal.ts +115 -10
- package/src/val/ScalarVal.ts +18 -1
- package/src/val/SuperFuncVal.ts +14 -1
- package/src/val/UpperFuncVal.ts +21 -4
- package/src/val/VarVal.ts +7 -1
- package/src/val/numkind.ts +256 -0
- package/src/val/valutil.ts +36 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"7.0.2","root":["../src/aontu.ts","../src/cli.ts","../src/ctx.ts","../src/err.ts","../src/hints.ts","../src/lang.ts","../src/lsp-server.ts","../src/lsp.ts","../src/site.ts","../src/type.ts","../src/unify.ts","../src/utility.ts","../src/val/BagVal.ts","../src/val/BooleanVal.ts","../src/val/CloseFuncVal.ts","../src/val/ConjunctVal.ts","../src/val/CopyFuncVal.ts","../src/val/DisjunctVal.ts","../src/val/ExpectVal.ts","../src/val/FeatureVal.ts","../src/val/FuncBaseVal.ts","../src/val/HideFuncVal.ts","../src/val/IntegerVal.ts","../src/val/JunctionVal.ts","../src/val/KeyFuncVal.ts","../src/val/ListVal.ts","../src/val/LowerFuncVal.ts","../src/val/MapVal.ts","../src/val/MoveFuncVal.ts","../src/val/NilVal.ts","../src/val/NullVal.ts","../src/val/NumberVal.ts","../src/val/OpBaseVal.ts","../src/val/OpenFuncVal.ts","../src/val/PathFuncVal.ts","../src/val/PlusOpVal.ts","../src/val/PrefFuncVal.ts","../src/val/PrefVal.ts","../src/val/RefVal.ts","../src/val/ScalarKindVal.ts","../src/val/ScalarVal.ts","../src/val/StringVal.ts","../src/val/SuperFuncVal.ts","../src/val/TopVal.ts","../src/val/TypeFuncVal.ts","../src/val/UpperFuncVal.ts","../src/val/Val.ts","../src/val/VarVal.ts","../src/val/top.ts","../src/val/valutil.ts"],"packageJsons":["../node_modules/@tabnas/debug/package.json","../node_modules/@tabnas/directive/package.json","../node_modules/@tabnas/expr/package.json","../node_modules/@tabnas/json/package.json","../node_modules/@tabnas/jsonic/package.json","../node_modules/@tabnas/multisource/package.json","../node_modules/@tabnas/parser/package.json","../node_modules/@tabnas/path/package.json","../node_modules/@types/node/package.json","../node_modules/undici-types/package.json","../package.json"],"missingPackageJsons":["../node_modules/@tabnas/debug/dist/package.json","../node_modules/@tabnas/expr/dist/package.json","../node_modules/@tabnas/jsonic/dist/package.json","../node_modules/@tabnas/multisource/dist/package.json","../node_modules/@tabnas/multisource/dist/resolver/package.json","../node_modules/@tabnas/multisource/resolver/file/package.json","../node_modules/@tabnas/multisource/resolver/mem/package.json","../node_modules/@tabnas/multisource/resolver/pkg/package.json","../node_modules/@tabnas/parser/dist/package.json","../node_modules/@tabnas/path/dist/package.json","../node_modules/@types/assert/package.json","../node_modules/@types/assert/strict/package.json","../node_modules/@types/async_hooks/package.json","../node_modules/@types/buffer/package.json","../node_modules/@types/child_process/package.json","../node_modules/@types/cluster/package.json","../node_modules/@types/console/package.json","../node_modules/@types/constants/package.json","../node_modules/@types/crypto/package.json","../node_modules/@types/dgram/package.json","../node_modules/@types/diagnostics_channel/package.json","../node_modules/@types/dns/package.json","../node_modules/@types/dns/promises/package.json","../node_modules/@types/domain/package.json","../node_modules/@types/events/package.json","../node_modules/@types/fs/package.json","../node_modules/@types/fs/promises/package.json","../node_modules/@types/http/package.json","../node_modules/@types/http2/package.json","../node_modules/@types/https/package.json","../node_modules/@types/inspector/package.json","../node_modules/@types/inspector/promises/package.json","../node_modules/@types/module/package.json","../node_modules/@types/net/package.json","../node_modules/@types/node/assert/package.json","../node_modules/@types/node/dns/package.json","../node_modules/@types/node/fs/package.json","../node_modules/@types/node/inspector/package.json","../node_modules/@types/node/path/package.json","../node_modules/@types/node/readline/package.json","../node_modules/@types/node/stream/package.json","../node_modules/@types/node/test/package.json","../node_modules/@types/node/timers/package.json","../node_modules/@types/node/util/package.json","../node_modules/@types/node/web-globals/package.json","../node_modules/@types/node/zlib/package.json","../node_modules/@types/os/package.json","../node_modules/@types/path/package.json","../node_modules/@types/path/posix/package.json","../node_modules/@types/path/win32/package.json","../node_modules/@types/perf_hooks/package.json","../node_modules/@types/process/package.json","../node_modules/@types/punycode/package.json","../node_modules/@types/querystring/package.json","../node_modules/@types/readline/package.json","../node_modules/@types/readline/promises/package.json","../node_modules/@types/repl/package.json","../node_modules/@types/stream/consumers/package.json","../node_modules/@types/stream/iter/package.json","../node_modules/@types/stream/package.json","../node_modules/@types/stream/promises/package.json","../node_modules/@types/stream/web/package.json","../node_modules/@types/string_decoder/package.json","../node_modules/@types/timers/package.json","../node_modules/@types/timers/promises/package.json","../node_modules/@types/tls/package.json","../node_modules/@types/trace_events/package.json","../node_modules/@types/tty/package.json","../node_modules/@types/url/package.json","../node_modules/@types/util/package.json","../node_modules/@types/util/types/package.json","../node_modules/@types/v8/package.json","../node_modules/@types/vm/package.json","../node_modules/@types/wasi/package.json","../node_modules/@types/worker_threads/package.json","../node_modules/@types/zlib/package.json","../node_modules/assert/package.json","../node_modules/assert/strict/package.json","../node_modules/async_hooks/package.json","../node_modules/buffer/package.json","../node_modules/child_process/package.json","../node_modules/cluster/package.json","../node_modules/console/package.json","../node_modules/constants/package.json","../node_modules/crypto/package.json","../node_modules/dgram/package.json","../node_modules/diagnostics_channel/package.json","../node_modules/dns/package.json","../node_modules/dns/promises/package.json","../node_modules/domain/package.json","../node_modules/events/package.json","../node_modules/fs/package.json","../node_modules/fs/promises/package.json","../node_modules/http/package.json","../node_modules/http2/package.json","../node_modules/https/package.json","../node_modules/inspector/package.json","../node_modules/inspector/promises/package.json","../node_modules/module/package.json","../node_modules/net/package.json","../node_modules/os/package.json","../node_modules/path/package.json","../node_modules/path/posix/package.json","../node_modules/path/win32/package.json","../node_modules/perf_hooks/package.json","../node_modules/process/package.json","../node_modules/punycode/package.json","../node_modules/querystring/package.json","../node_modules/readline/package.json","../node_modules/readline/promises/package.json","../node_modules/repl/package.json","../node_modules/stream/consumers/package.json","../node_modules/stream/iter/package.json","../node_modules/stream/package.json","../node_modules/stream/promises/package.json","../node_modules/stream/web/package.json","../node_modules/string_decoder/package.json","../node_modules/timers/package.json","../node_modules/timers/promises/package.json","../node_modules/tls/package.json","../node_modules/trace_events/package.json","../node_modules/tty/package.json","../node_modules/url/package.json","../node_modules/util/package.json","../node_modules/util/types/package.json","../node_modules/v8/package.json","../node_modules/vm/package.json","../node_modules/wasi/package.json","../node_modules/worker_threads/package.json","../node_modules/zlib/package.json"]}
|
|
1
|
+
{"version":"7.0.2","root":["../src/aontu.ts","../src/cli.ts","../src/ctx.ts","../src/err.ts","../src/exactjson.ts","../src/hints.ts","../src/keyorder.ts","../src/lang.ts","../src/lsp-server.ts","../src/lsp.ts","../src/site.ts","../src/type.ts","../src/unify.ts","../src/utility.ts","../src/val/BagVal.ts","../src/val/BigDecimalVal.ts","../src/val/BigIntegerVal.ts","../src/val/BooleanVal.ts","../src/val/CloseFuncVal.ts","../src/val/ConjunctVal.ts","../src/val/CopyFuncVal.ts","../src/val/Decimal.ts","../src/val/DisjunctVal.ts","../src/val/ExpectVal.ts","../src/val/FeatureVal.ts","../src/val/FuncBaseVal.ts","../src/val/HideFuncVal.ts","../src/val/IntegerVal.ts","../src/val/JunctionVal.ts","../src/val/KeyFuncVal.ts","../src/val/ListVal.ts","../src/val/LowerFuncVal.ts","../src/val/MapVal.ts","../src/val/MoveFuncVal.ts","../src/val/NilVal.ts","../src/val/NullVal.ts","../src/val/NumberVal.ts","../src/val/OpBaseVal.ts","../src/val/OpenFuncVal.ts","../src/val/PathFuncVal.ts","../src/val/PlusOpVal.ts","../src/val/PrefFuncVal.ts","../src/val/PrefVal.ts","../src/val/RefVal.ts","../src/val/ScalarKindVal.ts","../src/val/ScalarVal.ts","../src/val/StringVal.ts","../src/val/SuperFuncVal.ts","../src/val/TopVal.ts","../src/val/TypeFuncVal.ts","../src/val/UpperFuncVal.ts","../src/val/Val.ts","../src/val/VarVal.ts","../src/val/numkind.ts","../src/val/top.ts","../src/val/valutil.ts"],"packageJsons":["../node_modules/@tabnas/debug/package.json","../node_modules/@tabnas/directive/package.json","../node_modules/@tabnas/expr/package.json","../node_modules/@tabnas/json/package.json","../node_modules/@tabnas/jsonic/package.json","../node_modules/@tabnas/multisource/package.json","../node_modules/@tabnas/parser/package.json","../node_modules/@tabnas/path/package.json","../node_modules/@types/node/package.json","../node_modules/undici-types/package.json","../package.json"],"missingPackageJsons":["../node_modules/@tabnas/debug/dist/package.json","../node_modules/@tabnas/expr/dist/package.json","../node_modules/@tabnas/jsonic/dist/package.json","../node_modules/@tabnas/multisource/dist/package.json","../node_modules/@tabnas/multisource/dist/resolver/package.json","../node_modules/@tabnas/multisource/resolver/file/package.json","../node_modules/@tabnas/multisource/resolver/mem/package.json","../node_modules/@tabnas/multisource/resolver/pkg/package.json","../node_modules/@tabnas/parser/dist/package.json","../node_modules/@tabnas/path/dist/package.json","../node_modules/@types/assert/package.json","../node_modules/@types/assert/strict/package.json","../node_modules/@types/async_hooks/package.json","../node_modules/@types/buffer/package.json","../node_modules/@types/child_process/package.json","../node_modules/@types/cluster/package.json","../node_modules/@types/console/package.json","../node_modules/@types/constants/package.json","../node_modules/@types/crypto/package.json","../node_modules/@types/dgram/package.json","../node_modules/@types/diagnostics_channel/package.json","../node_modules/@types/dns/package.json","../node_modules/@types/dns/promises/package.json","../node_modules/@types/domain/package.json","../node_modules/@types/events/package.json","../node_modules/@types/fs/package.json","../node_modules/@types/fs/promises/package.json","../node_modules/@types/http/package.json","../node_modules/@types/http2/package.json","../node_modules/@types/https/package.json","../node_modules/@types/inspector/package.json","../node_modules/@types/inspector/promises/package.json","../node_modules/@types/module/package.json","../node_modules/@types/net/package.json","../node_modules/@types/node/assert/package.json","../node_modules/@types/node/dns/package.json","../node_modules/@types/node/fs/package.json","../node_modules/@types/node/inspector/package.json","../node_modules/@types/node/path/package.json","../node_modules/@types/node/readline/package.json","../node_modules/@types/node/stream/package.json","../node_modules/@types/node/test/package.json","../node_modules/@types/node/timers/package.json","../node_modules/@types/node/util/package.json","../node_modules/@types/node/web-globals/package.json","../node_modules/@types/node/zlib/package.json","../node_modules/@types/os/package.json","../node_modules/@types/path/package.json","../node_modules/@types/path/posix/package.json","../node_modules/@types/path/win32/package.json","../node_modules/@types/perf_hooks/package.json","../node_modules/@types/process/package.json","../node_modules/@types/punycode/package.json","../node_modules/@types/querystring/package.json","../node_modules/@types/readline/package.json","../node_modules/@types/readline/promises/package.json","../node_modules/@types/repl/package.json","../node_modules/@types/stream/consumers/package.json","../node_modules/@types/stream/iter/package.json","../node_modules/@types/stream/package.json","../node_modules/@types/stream/promises/package.json","../node_modules/@types/stream/web/package.json","../node_modules/@types/string_decoder/package.json","../node_modules/@types/timers/package.json","../node_modules/@types/timers/promises/package.json","../node_modules/@types/tls/package.json","../node_modules/@types/trace_events/package.json","../node_modules/@types/tty/package.json","../node_modules/@types/url/package.json","../node_modules/@types/util/package.json","../node_modules/@types/util/types/package.json","../node_modules/@types/v8/package.json","../node_modules/@types/vm/package.json","../node_modules/@types/wasi/package.json","../node_modules/@types/worker_threads/package.json","../node_modules/@types/zlib/package.json","../node_modules/assert/package.json","../node_modules/assert/strict/package.json","../node_modules/async_hooks/package.json","../node_modules/buffer/package.json","../node_modules/child_process/package.json","../node_modules/cluster/package.json","../node_modules/console/package.json","../node_modules/constants/package.json","../node_modules/crypto/package.json","../node_modules/dgram/package.json","../node_modules/diagnostics_channel/package.json","../node_modules/dns/package.json","../node_modules/dns/promises/package.json","../node_modules/domain/package.json","../node_modules/events/package.json","../node_modules/fs/package.json","../node_modules/fs/promises/package.json","../node_modules/http/package.json","../node_modules/http2/package.json","../node_modules/https/package.json","../node_modules/inspector/package.json","../node_modules/inspector/promises/package.json","../node_modules/module/package.json","../node_modules/net/package.json","../node_modules/os/package.json","../node_modules/path/package.json","../node_modules/path/posix/package.json","../node_modules/path/win32/package.json","../node_modules/perf_hooks/package.json","../node_modules/process/package.json","../node_modules/punycode/package.json","../node_modules/querystring/package.json","../node_modules/readline/package.json","../node_modules/readline/promises/package.json","../node_modules/repl/package.json","../node_modules/stream/consumers/package.json","../node_modules/stream/iter/package.json","../node_modules/stream/package.json","../node_modules/stream/promises/package.json","../node_modules/stream/web/package.json","../node_modules/string_decoder/package.json","../node_modules/timers/package.json","../node_modules/timers/promises/package.json","../node_modules/tls/package.json","../node_modules/trace_events/package.json","../node_modules/tty/package.json","../node_modules/url/package.json","../node_modules/util/package.json","../node_modules/util/types/package.json","../node_modules/v8/package.json","../node_modules/vm/package.json","../node_modules/wasi/package.json","../node_modules/worker_threads/package.json","../node_modules/zlib/package.json"]}
|
package/dist/val/BagVal.js
CHANGED
|
@@ -8,6 +8,7 @@ const Val_1 = require("./Val");
|
|
|
8
8
|
const NilVal_1 = require("./NilVal");
|
|
9
9
|
const FeatureVal_1 = require("./FeatureVal");
|
|
10
10
|
const ExpectVal_1 = require("./ExpectVal");
|
|
11
|
+
const keyorder_1 = require("../keyorder");
|
|
11
12
|
class BagVal extends FeatureVal_1.FeatureVal {
|
|
12
13
|
constructor(spec, ctx) {
|
|
13
14
|
super(spec, ctx);
|
|
@@ -38,15 +39,17 @@ class BagVal extends FeatureVal_1.FeatureVal {
|
|
|
38
39
|
if (this.mark.type || this.mark.hide) {
|
|
39
40
|
return undefined;
|
|
40
41
|
}
|
|
41
|
-
// Maps emit their keys
|
|
42
|
-
// independent of insertion/unification order
|
|
43
|
-
// port
|
|
44
|
-
//
|
|
42
|
+
// Maps emit their keys in CODE POINT order so the generated output
|
|
43
|
+
// is independent of insertion/unification order and matches the Go
|
|
44
|
+
// port. Lists keep their numeric index order.
|
|
45
|
+
//
|
|
46
|
+
// The keys are String()-coerced because a list entry carries a
|
|
47
|
+
// numeric index here; the coercion is a no-op for every map key.
|
|
45
48
|
let entries = (0, utility_1.items)(this.peg);
|
|
46
49
|
if (this.isMap) {
|
|
47
50
|
entries = entries
|
|
48
51
|
.slice()
|
|
49
|
-
.sort((a, b) => (
|
|
52
|
+
.sort((a, b) => (0, keyorder_1.cmpCodePoint)(String(a[0]), String(b[0])));
|
|
50
53
|
}
|
|
51
54
|
for (let item of entries) {
|
|
52
55
|
const p = item[0];
|
package/dist/val/BagVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BagVal.js","sourceRoot":"","sources":["../../src/val/BagVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAWzD,wCAEmB;AAEnB,gCAAmC;AACnC,+BAA6B;AAG7B,qCAAiC;AACjC,6CAAyC;AACzC,2CAAuC;
|
|
1
|
+
{"version":3,"file":"BagVal.js","sourceRoot":"","sources":["../../src/val/BagVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { ScalarVal } from './ScalarVal';
|
|
4
|
+
import { Decimal } from './Decimal';
|
|
5
|
+
declare class BigDecimalVal extends ScalarVal {
|
|
6
|
+
isBigDecimal: boolean;
|
|
7
|
+
peg: Decimal;
|
|
8
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
9
|
+
unify(peer: any, ctx: AontuContext): Val;
|
|
10
|
+
samePeg(peg: any): boolean;
|
|
11
|
+
get canon(): string;
|
|
12
|
+
}
|
|
13
|
+
export { BigDecimalVal, };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BigDecimalVal = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const ScalarVal_1 = require("./ScalarVal");
|
|
7
|
+
const ScalarKindVal_1 = require("./ScalarKindVal");
|
|
8
|
+
const Decimal_1 = require("./Decimal");
|
|
9
|
+
const utility_1 = require("../utility");
|
|
10
|
+
// The exact base-10 decimal leaf of the number tower, reached only by a
|
|
11
|
+
// `0d` literal carrying a `.` or an exponent (`0d1.5`, `0d1e3`) or by
|
|
12
|
+
// direct construction.
|
|
13
|
+
//
|
|
14
|
+
// Its peg is a Decimal -- an OBJECT, so unlike every other scalar leaf
|
|
15
|
+
// its identity cannot be `===` on the peg. Two bigdecimals are the same
|
|
16
|
+
// value when their NUMBERS are equal (D2), which normalisation at
|
|
17
|
+
// construction reduces to a two-field comparison; `samePeg` and `unify`
|
|
18
|
+
// below are the two places that must not forget it.
|
|
19
|
+
class BigDecimalVal extends ScalarVal_1.ScalarVal {
|
|
20
|
+
constructor(spec, ctx) {
|
|
21
|
+
// Exact-input construction (D8): a Decimal, or a decimal literal as
|
|
22
|
+
// text (`'1.5'`, `'0d1e3'`). A JS `number` is deliberately NOT
|
|
23
|
+
// accepted -- binary64 has already rounded it, so `0.1` could never
|
|
24
|
+
// arrive exact.
|
|
25
|
+
let peg = spec.peg;
|
|
26
|
+
if ('string' === typeof peg) {
|
|
27
|
+
try {
|
|
28
|
+
peg = Decimal_1.Decimal.fromString(peg);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Includes a budget refusal (Decimal.fromString enforces D6),
|
|
32
|
+
// so an over-budget string cannot enter through this route
|
|
33
|
+
// either.
|
|
34
|
+
throw new err_1.AontuError('not-bigdecimal: ' + spec.peg);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!(peg instanceof Decimal_1.Decimal)) {
|
|
38
|
+
throw new err_1.AontuError('not-bigdecimal: ' + peg);
|
|
39
|
+
}
|
|
40
|
+
super({ ...spec, peg, kind: ScalarKindVal_1.BigDecimal }, ctx);
|
|
41
|
+
this.isBigDecimal = true;
|
|
42
|
+
}
|
|
43
|
+
unify(peer, ctx) {
|
|
44
|
+
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'BigDecimal', this, peer);
|
|
45
|
+
let out = this;
|
|
46
|
+
if (null != peer) {
|
|
47
|
+
if (peer.isScalarKind) {
|
|
48
|
+
out = peer.unify(this, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'KND') }) : ctx);
|
|
49
|
+
}
|
|
50
|
+
else if (peer.isScalar &&
|
|
51
|
+
peer.kind === this.kind &&
|
|
52
|
+
this.peg.equals(peer.peg)) {
|
|
53
|
+
// Same kind and equal NUMBER. Never `peer.peg === this.peg`:
|
|
54
|
+
// that is object identity, and `0d0.10 & 0d0.1` (two Decimals
|
|
55
|
+
// holding one value) has to succeed.
|
|
56
|
+
out = this;
|
|
57
|
+
}
|
|
58
|
+
else if (peer.isTop) {
|
|
59
|
+
out = this;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
out = (0, err_1.makeNilErr)(ctx, 'scalar_' +
|
|
63
|
+
(peer.kind === this.kind ? 'value' : 'kind'), this, peer);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
out = super.unify(peer, ctx);
|
|
68
|
+
}
|
|
69
|
+
(0, utility_1.explainClose)(te, out);
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
samePeg(peg) {
|
|
73
|
+
return peg instanceof Decimal_1.Decimal && this.peg.equals(peg);
|
|
74
|
+
}
|
|
75
|
+
get canon() {
|
|
76
|
+
return this.peg.canon();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.BigDecimalVal = BigDecimalVal;
|
|
80
|
+
//# sourceMappingURL=BigDecimalVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigDecimalVal.js","sourceRoot":"","sources":["../../src/val/BigDecimalVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { ScalarVal } from './ScalarVal';
|
|
4
|
+
declare class BigIntegerVal extends ScalarVal {
|
|
5
|
+
isBigInteger: boolean;
|
|
6
|
+
peg: bigint;
|
|
7
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
8
|
+
unify(peer: any, ctx: AontuContext): Val;
|
|
9
|
+
get canon(): string;
|
|
10
|
+
}
|
|
11
|
+
export { BigIntegerVal, };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BigIntegerVal = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const ScalarVal_1 = require("./ScalarVal");
|
|
7
|
+
const ScalarKindVal_1 = require("./ScalarKindVal");
|
|
8
|
+
const utility_1 = require("../utility");
|
|
9
|
+
// The unbounded exact integer leaf of the number tower, reached only by
|
|
10
|
+
// a `0d` literal with no fraction and no exponent (`0d5`, `-0d5`,
|
|
11
|
+
// `0d123456789012345678901234567890`) or by direct construction.
|
|
12
|
+
//
|
|
13
|
+
// Its peg is a native bigint: exact at any magnitude, immutable, and
|
|
14
|
+
// compared by VALUE with `===` (D2 -- two separately built bigints
|
|
15
|
+
// holding the same number are `===`, which is exactly the property the
|
|
16
|
+
// Go port has to reproduce by hand for `*big.Int`).
|
|
17
|
+
//
|
|
18
|
+
// `biginteger` is DISJOINT from `integer`: `5 & 0d5` is an error, since
|
|
19
|
+
// a successful meet would have to pick one of the two kinds and either
|
|
20
|
+
// choice makes `&` asymmetric in kind.
|
|
21
|
+
class BigIntegerVal extends ScalarVal_1.ScalarVal {
|
|
22
|
+
constructor(spec, ctx) {
|
|
23
|
+
// Exact-input construction (D8): a bigint, or the digits as text. A
|
|
24
|
+
// JS `number` is deliberately NOT accepted -- it has already been
|
|
25
|
+
// rounded before this library could inspect it, so an exact value
|
|
26
|
+
// above 2^53 could never arrive that way intact.
|
|
27
|
+
let peg = spec.peg;
|
|
28
|
+
if ('string' === typeof peg) {
|
|
29
|
+
if (!/^[-+]?[0-9]+$/.test(peg)) {
|
|
30
|
+
throw new err_1.AontuError('not-biginteger: ' + peg);
|
|
31
|
+
}
|
|
32
|
+
peg = BigInt(peg);
|
|
33
|
+
}
|
|
34
|
+
if ('bigint' !== typeof peg) {
|
|
35
|
+
throw new err_1.AontuError('not-biginteger: ' + peg);
|
|
36
|
+
}
|
|
37
|
+
super({ ...spec, peg, kind: ScalarKindVal_1.BigInteger }, ctx);
|
|
38
|
+
this.isBigInteger = true;
|
|
39
|
+
}
|
|
40
|
+
unify(peer, ctx) {
|
|
41
|
+
const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'BigInteger', this, peer);
|
|
42
|
+
let out = this;
|
|
43
|
+
if (null != peer) {
|
|
44
|
+
if (peer.isScalarKind) {
|
|
45
|
+
out = peer.unify(this, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'KND') }) : ctx);
|
|
46
|
+
}
|
|
47
|
+
else if (peer.isScalar &&
|
|
48
|
+
peer.kind === this.kind &&
|
|
49
|
+
peer.peg === this.peg) {
|
|
50
|
+
// Same kind and equal NUMBER (bigint `===` is value equality).
|
|
51
|
+
out = this;
|
|
52
|
+
}
|
|
53
|
+
else if (peer.isTop) {
|
|
54
|
+
out = this;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
out = (0, err_1.makeNilErr)(ctx, 'scalar_' +
|
|
58
|
+
(peer.kind === this.kind ? 'value' : 'kind'), this, peer);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
out = super.unify(peer, ctx);
|
|
63
|
+
}
|
|
64
|
+
(0, utility_1.explainClose)(te, out);
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
// The sign renders BEFORE the marker (`-0d5`): `0d-5` is not a literal
|
|
68
|
+
// this language accepts, so canon must not produce it.
|
|
69
|
+
get canon() {
|
|
70
|
+
const neg = this.peg < 0n;
|
|
71
|
+
return (neg ? '-0d' : '0d') + (neg ? -this.peg : this.peg).toString();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.BigIntegerVal = BigIntegerVal;
|
|
75
|
+
//# sourceMappingURL=BigIntegerVal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BigIntegerVal.js","sourceRoot":"","sources":["../../src/val/BigIntegerVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare const DECIMAL_COEFFICIENT_BUDGET = 4096;
|
|
2
|
+
declare const DECIMAL_SCALE_BUDGET = 4096;
|
|
3
|
+
declare class Decimal {
|
|
4
|
+
readonly unscaled: bigint;
|
|
5
|
+
readonly scale: number;
|
|
6
|
+
constructor(unscaled: bigint, scale: number);
|
|
7
|
+
equals(peer: Decimal): boolean;
|
|
8
|
+
compare(peer: Decimal): number;
|
|
9
|
+
negate(): Decimal;
|
|
10
|
+
add(peer: Decimal): Decimal;
|
|
11
|
+
ceil(): Decimal;
|
|
12
|
+
floor(): Decimal;
|
|
13
|
+
private intPart;
|
|
14
|
+
isZero(): boolean;
|
|
15
|
+
toString(): string;
|
|
16
|
+
canon(): string;
|
|
17
|
+
static fromString(src: string): Decimal;
|
|
18
|
+
}
|
|
19
|
+
declare function decimalOverBudget(d: Decimal): boolean;
|
|
20
|
+
declare const BIG_LITERAL_RE: RegExp;
|
|
21
|
+
type BigLiteral = {
|
|
22
|
+
leaf: 'biginteger';
|
|
23
|
+
int: bigint;
|
|
24
|
+
} | {
|
|
25
|
+
leaf: 'bigdecimal';
|
|
26
|
+
dec: Decimal;
|
|
27
|
+
} | {
|
|
28
|
+
leaf: 'error';
|
|
29
|
+
code: string;
|
|
30
|
+
};
|
|
31
|
+
declare function readBigLiteral(m: RegExpExecArray | (string | undefined)[]): BigLiteral;
|
|
32
|
+
export { BIG_LITERAL_RE, BigLiteral, DECIMAL_COEFFICIENT_BUDGET, DECIMAL_SCALE_BUDGET, Decimal, decimalOverBudget, readBigLiteral, };
|