aontu 0.44.0 → 0.46.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/cli.d.ts +9 -0
- package/dist/cli.js +203 -0
- package/dist/cli.js.map +1 -0
- package/dist/ctx.d.ts +2 -5
- package/dist/ctx.js +1 -2
- package/dist/ctx.js.map +1 -1
- package/dist/lang.d.ts +1 -5
- package/dist/lang.js +24 -100
- package/dist/lang.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +0 -5
- package/dist/type.js.map +1 -1
- package/dist/unify.js +13 -292
- package/dist/unify.js.map +1 -1
- package/dist/utility.js +2 -6
- package/dist/utility.js.map +1 -1
- package/dist/val/BagVal.d.ts +3 -0
- package/dist/val/BagVal.js +6 -6
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConjunctVal.d.ts +1 -1
- package/dist/val/ConjunctVal.js +14 -137
- package/dist/val/ConjunctVal.js.map +1 -1
- package/dist/val/CopyFuncVal.js +2 -3
- package/dist/val/CopyFuncVal.js.map +1 -1
- package/dist/val/DisjunctVal.js +0 -4
- package/dist/val/DisjunctVal.js.map +1 -1
- package/dist/val/ExpectVal.js +3 -16
- package/dist/val/ExpectVal.js.map +1 -1
- package/dist/val/JunctionVal.d.ts +0 -1
- package/dist/val/JunctionVal.js +1 -6
- package/dist/val/JunctionVal.js.map +1 -1
- package/dist/val/KeyFuncVal.js +2 -0
- package/dist/val/KeyFuncVal.js.map +1 -1
- package/dist/val/ListVal.d.ts +0 -1
- package/dist/val/ListVal.js +66 -33
- package/dist/val/ListVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +2 -3
- package/dist/val/MapVal.js +95 -67
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/MoveFuncVal.d.ts +1 -2
- package/dist/val/MoveFuncVal.js +13 -78
- package/dist/val/MoveFuncVal.js.map +1 -1
- package/dist/val/PathFuncVal.js +4 -25
- package/dist/val/PathFuncVal.js.map +1 -1
- package/dist/val/PlusOpVal.d.ts +1 -1
- package/dist/val/PrefVal.js +5 -18
- package/dist/val/PrefVal.js.map +1 -1
- package/dist/val/{PathVal.d.ts → RefVal.d.ts} +3 -4
- package/dist/val/{PathVal.js → RefVal.js} +77 -75
- package/dist/val/RefVal.js.map +1 -0
- package/dist/val/Val.d.ts +1 -2
- package/dist/val/Val.js +8 -7
- package/dist/val/Val.js.map +1 -1
- package/dist/val/VarVal.js +2 -2
- package/dist/val/VarVal.js.map +1 -1
- package/package.json +9 -4
- package/src/cli.ts +193 -0
- package/src/ctx.ts +3 -16
- package/src/lang.ts +23 -113
- package/src/type.ts +0 -5
- package/src/unify.ts +13 -310
- package/src/utility.ts +2 -5
- package/src/val/BagVal.ts +7 -6
- package/src/val/ConjunctVal.ts +13 -131
- package/src/val/CopyFuncVal.ts +2 -3
- package/src/val/DisjunctVal.ts +0 -6
- package/src/val/ExpectVal.ts +4 -18
- package/src/val/JunctionVal.ts +1 -5
- package/src/val/KeyFuncVal.ts +3 -0
- package/src/val/ListVal.ts +88 -38
- package/src/val/MapVal.ts +124 -75
- package/src/val/MoveFuncVal.ts +14 -79
- package/src/val/PathFuncVal.ts +4 -29
- package/src/val/PrefVal.ts +6 -19
- package/src/val/{RefVal.ts.old → RefVal.ts} +19 -30
- package/src/val/Val.ts +9 -9
- package/src/val/VarVal.ts +2 -2
- package/README.md +0 -18
- package/dist/val/PathVal.js.map +0 -1
- package/dist/val/SpreadVal.d.ts +0 -20
- package/dist/val/SpreadVal.js +0 -194
- package/dist/val/SpreadVal.js.map +0 -1
- package/src/val/PathVal.ts +0 -435
- package/src/val/SpreadVal.ts +0 -275
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Aontu } from './aontu';
|
|
3
|
+
type Mode = 'json' | 'canon';
|
|
4
|
+
declare function evalSource(aontu: Aontu, src: string, mode: Mode): {
|
|
5
|
+
ok: boolean;
|
|
6
|
+
text: string;
|
|
7
|
+
};
|
|
8
|
+
declare function main(argv: string[]): void;
|
|
9
|
+
export { evalSource, main };
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
+
var ownKeys = function(o) {
|
|
22
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
+
var ar = [];
|
|
24
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
+
return ar;
|
|
26
|
+
};
|
|
27
|
+
return ownKeys(o);
|
|
28
|
+
};
|
|
29
|
+
return function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.evalSource = evalSource;
|
|
39
|
+
exports.main = main;
|
|
40
|
+
// Command-line interface for Aontu.
|
|
41
|
+
//
|
|
42
|
+
// aontu [options] [file]
|
|
43
|
+
//
|
|
44
|
+
// With a file argument, the file is evaluated and the result printed.
|
|
45
|
+
// With no file on an interactive terminal, a REPL is started. With no
|
|
46
|
+
// file and piped input, the source is read from stdin. See HELP below.
|
|
47
|
+
const Fs = __importStar(require("node:fs"));
|
|
48
|
+
const Path = __importStar(require("node:path"));
|
|
49
|
+
const Readline = __importStar(require("node:readline"));
|
|
50
|
+
const aontu_1 = require("./aontu");
|
|
51
|
+
const HELP = `Usage: aontu [options] [file]
|
|
52
|
+
|
|
53
|
+
Evaluate an Aontu source file and print the result as JSON.
|
|
54
|
+
With no file on an interactive terminal, start a REPL.
|
|
55
|
+
With no file and piped input, read the source from stdin.
|
|
56
|
+
|
|
57
|
+
Options:
|
|
58
|
+
-c, --canon Print the canonical form instead of generated JSON
|
|
59
|
+
-h, --help Show this help and exit
|
|
60
|
+
-v, --version Print the version and exit
|
|
61
|
+
|
|
62
|
+
REPL commands:
|
|
63
|
+
:help Show REPL help
|
|
64
|
+
:canon Switch to canonical-form output
|
|
65
|
+
:json Switch to JSON output
|
|
66
|
+
:quit, :exit Exit the REPL (or press Ctrl-D)
|
|
67
|
+
`;
|
|
68
|
+
function version() {
|
|
69
|
+
try {
|
|
70
|
+
const txt = Fs.readFileSync(Path.join(__dirname, '..', 'package.json'), 'utf8');
|
|
71
|
+
return JSON.parse(txt).version ?? '0.0.0';
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return '0.0.0';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Evaluate source, returning either the rendered output or the error
|
|
78
|
+
// message. Never throws.
|
|
79
|
+
function evalSource(aontu, src, mode) {
|
|
80
|
+
try {
|
|
81
|
+
const text = 'canon' === mode
|
|
82
|
+
? aontu.unify(src).canon
|
|
83
|
+
: JSON.stringify(aontu.generate(src), null, 2);
|
|
84
|
+
return { ok: true, text };
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
const msg = (err instanceof aontu_1.AontuError || true === err?.aontu)
|
|
88
|
+
? err.message
|
|
89
|
+
: String(err?.message ?? err);
|
|
90
|
+
return { ok: false, text: msg };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function runFile(file, mode) {
|
|
94
|
+
let src;
|
|
95
|
+
try {
|
|
96
|
+
src = Fs.readFileSync(file, 'utf8');
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
process.stderr.write(`aontu: cannot read ${file}: ${err.message}\n`);
|
|
100
|
+
return 1;
|
|
101
|
+
}
|
|
102
|
+
const aontu = new aontu_1.Aontu({ path: Path.resolve(file) });
|
|
103
|
+
const res = evalSource(aontu, src, mode);
|
|
104
|
+
(res.ok ? process.stdout : process.stderr).write(res.text + '\n');
|
|
105
|
+
return res.ok ? 0 : 1;
|
|
106
|
+
}
|
|
107
|
+
function runStdin(mode) {
|
|
108
|
+
return new Promise((resolve) => {
|
|
109
|
+
let src = '';
|
|
110
|
+
process.stdin.setEncoding('utf8');
|
|
111
|
+
process.stdin.on('data', (d) => (src += d));
|
|
112
|
+
process.stdin.on('end', () => {
|
|
113
|
+
const res = evalSource(new aontu_1.Aontu(), src, mode);
|
|
114
|
+
(res.ok ? process.stdout : process.stderr).write(res.text + '\n');
|
|
115
|
+
resolve(res.ok ? 0 : 1);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function runRepl(initialMode) {
|
|
120
|
+
let mode = initialMode;
|
|
121
|
+
const aontu = new aontu_1.Aontu();
|
|
122
|
+
const rl = Readline.createInterface({
|
|
123
|
+
input: process.stdin,
|
|
124
|
+
output: process.stdout,
|
|
125
|
+
prompt: 'aontu> ',
|
|
126
|
+
});
|
|
127
|
+
process.stdout.write(`Aontu v${version()} REPL — :help for commands, :quit to exit\n`);
|
|
128
|
+
rl.prompt();
|
|
129
|
+
rl.on('line', (line) => {
|
|
130
|
+
const s = line.trim();
|
|
131
|
+
if ('' === s) {
|
|
132
|
+
rl.prompt();
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (s.startsWith(':')) {
|
|
136
|
+
switch (s) {
|
|
137
|
+
case ':help':
|
|
138
|
+
process.stdout.write(HELP);
|
|
139
|
+
break;
|
|
140
|
+
case ':canon':
|
|
141
|
+
mode = 'canon';
|
|
142
|
+
process.stdout.write('canon output\n');
|
|
143
|
+
break;
|
|
144
|
+
case ':json':
|
|
145
|
+
mode = 'json';
|
|
146
|
+
process.stdout.write('json output\n');
|
|
147
|
+
break;
|
|
148
|
+
case ':quit':
|
|
149
|
+
case ':exit':
|
|
150
|
+
rl.close();
|
|
151
|
+
return;
|
|
152
|
+
default: process.stdout.write(`unknown command: ${s} (try :help)\n`);
|
|
153
|
+
}
|
|
154
|
+
rl.prompt();
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const res = evalSource(aontu, s, mode);
|
|
158
|
+
process.stdout.write(res.text + '\n');
|
|
159
|
+
rl.prompt();
|
|
160
|
+
});
|
|
161
|
+
rl.on('close', () => {
|
|
162
|
+
process.stdout.write('\n');
|
|
163
|
+
process.exit(0);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
function main(argv) {
|
|
167
|
+
let mode = 'json';
|
|
168
|
+
let file;
|
|
169
|
+
for (const arg of argv.slice(2)) {
|
|
170
|
+
if ('-c' === arg || '--canon' === arg) {
|
|
171
|
+
mode = 'canon';
|
|
172
|
+
}
|
|
173
|
+
else if ('-h' === arg || '--help' === arg) {
|
|
174
|
+
process.stdout.write(HELP);
|
|
175
|
+
process.exit(0);
|
|
176
|
+
}
|
|
177
|
+
else if ('-v' === arg || '--version' === arg) {
|
|
178
|
+
process.stdout.write(version() + '\n');
|
|
179
|
+
process.exit(0);
|
|
180
|
+
}
|
|
181
|
+
else if (arg.startsWith('-')) {
|
|
182
|
+
process.stderr.write(`aontu: unknown option ${arg} (try --help)\n`);
|
|
183
|
+
process.exit(2);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
file = arg;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (null != file) {
|
|
190
|
+
process.exit(runFile(file, mode));
|
|
191
|
+
}
|
|
192
|
+
else if (process.stdin.isTTY) {
|
|
193
|
+
runRepl(mode);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
runStdin(mode).then((code) => process.exit(code));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Only run when invoked as a program, not when imported (e.g. by tests).
|
|
200
|
+
if (require.main === module) {
|
|
201
|
+
main(process.argv);
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/ctx.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ type AontuContextConfig = {
|
|
|
7
7
|
fs?: any;
|
|
8
8
|
path?: string[];
|
|
9
9
|
root?: Val;
|
|
10
|
-
seen?:
|
|
10
|
+
seen?: Record<string, number>;
|
|
11
11
|
seenI?: number;
|
|
12
12
|
src?: string;
|
|
13
13
|
srcpath?: string;
|
|
@@ -22,12 +22,11 @@ declare class AontuContext {
|
|
|
22
22
|
path: string[];
|
|
23
23
|
vc: number;
|
|
24
24
|
cc: number;
|
|
25
|
-
sc: number;
|
|
26
25
|
vars: Record<string, Val>;
|
|
27
26
|
src?: string;
|
|
28
27
|
fs?: FST;
|
|
29
28
|
seenI: number;
|
|
30
|
-
seen:
|
|
29
|
+
seen: Record<string, number>;
|
|
31
30
|
collect: boolean;
|
|
32
31
|
err: any[];
|
|
33
32
|
explain: any[] | null;
|
|
@@ -46,8 +45,6 @@ declare class AontuContext {
|
|
|
46
45
|
};
|
|
47
46
|
_trialMode?: boolean;
|
|
48
47
|
_childCache?: Map<string, AontuContext>;
|
|
49
|
-
_refCloneCache?: Map<string, Val>;
|
|
50
|
-
_uniteCache?: Map<string, Val>;
|
|
51
48
|
constructor(cfg: AontuContextConfig);
|
|
52
49
|
clone(cfg: {
|
|
53
50
|
root?: Val;
|
package/dist/ctx.js
CHANGED
|
@@ -9,7 +9,6 @@ const err_1 = require("./err");
|
|
|
9
9
|
class AontuContext {
|
|
10
10
|
constructor(cfg) {
|
|
11
11
|
this.cc = -1;
|
|
12
|
-
this.sc = 0; // Unresolved spread count
|
|
13
12
|
this.vars = {};
|
|
14
13
|
this.root = cfg.root;
|
|
15
14
|
this.path = [...(cfg.path ?? [])];
|
|
@@ -23,7 +22,7 @@ class AontuContext {
|
|
|
23
22
|
this.cc = null == cfg.cc ? this.cc : cfg.cc;
|
|
24
23
|
this.vars = cfg.vars ?? this.vars;
|
|
25
24
|
this.seenI = cfg.seenI ?? 0;
|
|
26
|
-
this.seen = cfg.seen ??
|
|
25
|
+
this.seen = cfg.seen ?? {};
|
|
27
26
|
this.srcpath = cfg.srcpath ?? undefined;
|
|
28
27
|
this.deps = cfg.deps ?? {};
|
|
29
28
|
this._pathmap = new Map();
|
package/dist/ctx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAKzD,iCAAqC;AAGrC,yCAAqC;AACrC,2CAAuC;AAIvC,+BAEc;AAuBd,MAAM,YAAY;
|
|
1
|
+
{"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
|
package/dist/lang.d.ts
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { Jsonic } from 'jsonic';
|
|
2
2
|
import type { Val, AontuOptions } from './type';
|
|
3
3
|
import { Site } from './site';
|
|
4
|
-
import { PathVal } from './val/PathVal';
|
|
5
|
-
import { KeyFuncVal } from './val/KeyFuncVal';
|
|
6
4
|
declare class Lang {
|
|
7
5
|
jsonic: Jsonic;
|
|
8
6
|
opts: AontuOptions;
|
|
9
7
|
idcount: number | undefined;
|
|
10
|
-
paths: PathVal[];
|
|
11
|
-
keys: KeyFuncVal[];
|
|
12
8
|
constructor(options?: Partial<AontuOptions>);
|
|
13
9
|
parse(src: string, opts?: Partial<AontuOptions>): Val;
|
|
14
10
|
}
|
|
15
|
-
export { Lang,
|
|
11
|
+
export { Lang, Site, };
|
package/dist/lang.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Copyright (c) 2021-2025 Richard Rodger, MIT License */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.Site = exports.
|
|
4
|
+
exports.Site = exports.Lang = void 0;
|
|
5
5
|
// import { performance } from 'node:perf_hooks'
|
|
6
6
|
const jsonic_1 = require("jsonic");
|
|
7
7
|
const debug_1 = require("jsonic/debug");
|
|
8
8
|
const multisource_1 = require("@jsonic/multisource");
|
|
9
9
|
// TODO: @jsonic/multisource should support virtual fs
|
|
10
10
|
const file_1 = require("@jsonic/multisource/resolver/file");
|
|
11
|
-
const multisource_2 = require("@jsonic/multisource");
|
|
12
11
|
const pkg_1 = require("@jsonic/multisource/resolver/pkg");
|
|
13
12
|
const mem_1 = require("@jsonic/multisource/resolver/mem");
|
|
14
13
|
const expr_1 = require("@jsonic/expr");
|
|
@@ -28,9 +27,7 @@ const NilVal_1 = require("./val/NilVal");
|
|
|
28
27
|
const NullVal_1 = require("./val/NullVal");
|
|
29
28
|
const NumberVal_1 = require("./val/NumberVal");
|
|
30
29
|
const PrefVal_1 = require("./val/PrefVal");
|
|
31
|
-
const
|
|
32
|
-
Object.defineProperty(exports, "PathVal", { enumerable: true, get: function () { return PathVal_1.PathVal; } });
|
|
33
|
-
// RefVal replaced by PathVal — see RefVal.ts.old
|
|
30
|
+
const RefVal_1 = require("./val/RefVal");
|
|
34
31
|
const StringVal_1 = require("./val/StringVal");
|
|
35
32
|
const VarVal_1 = require("./val/VarVal");
|
|
36
33
|
const PlusOpVal_1 = require("./val/PlusOpVal");
|
|
@@ -38,7 +35,6 @@ const UpperFuncVal_1 = require("./val/UpperFuncVal");
|
|
|
38
35
|
const LowerFuncVal_1 = require("./val/LowerFuncVal");
|
|
39
36
|
const CopyFuncVal_1 = require("./val/CopyFuncVal");
|
|
40
37
|
const KeyFuncVal_1 = require("./val/KeyFuncVal");
|
|
41
|
-
Object.defineProperty(exports, "KeyFuncVal", { enumerable: true, get: function () { return KeyFuncVal_1.KeyFuncVal; } });
|
|
42
38
|
const TypeFuncVal_1 = require("./val/TypeFuncVal");
|
|
43
39
|
const HideFuncVal_1 = require("./val/HideFuncVal");
|
|
44
40
|
const MoveFuncVal_1 = require("./val/MoveFuncVal");
|
|
@@ -47,7 +43,6 @@ const PrefFuncVal_1 = require("./val/PrefFuncVal");
|
|
|
47
43
|
const CloseFuncVal_1 = require("./val/CloseFuncVal");
|
|
48
44
|
const OpenFuncVal_1 = require("./val/OpenFuncVal");
|
|
49
45
|
const SuperFuncVal_1 = require("./val/SuperFuncVal");
|
|
50
|
-
const SpreadVal_1 = require("./val/SpreadVal");
|
|
51
46
|
let AontuJsonic = function AontuLang(jsonic) {
|
|
52
47
|
jsonic.use(path_1.Path);
|
|
53
48
|
// TODO: refactor Val constructor
|
|
@@ -59,15 +54,6 @@ let AontuJsonic = function AontuLang(jsonic) {
|
|
|
59
54
|
v.path = r.k ? [...(r.k.path || [])] : [];
|
|
60
55
|
return v;
|
|
61
56
|
};
|
|
62
|
-
// Helper: create a SpreadVal from the raw SPREAD symbol data.
|
|
63
|
-
function makeSpreadVal(rawSpread) {
|
|
64
|
-
const constraint = Array.isArray(rawSpread.v)
|
|
65
|
-
? (rawSpread.v.length > 1
|
|
66
|
-
? new ConjunctVal_1.ConjunctVal({ peg: rawSpread.v })
|
|
67
|
-
: rawSpread.v[0])
|
|
68
|
-
: rawSpread.v;
|
|
69
|
-
return new SpreadVal_1.SpreadVal({ peg: constraint });
|
|
70
|
-
}
|
|
71
57
|
jsonic.options({
|
|
72
58
|
hint: {
|
|
73
59
|
unknown: `
|
|
@@ -161,34 +147,16 @@ help isolate the syntax error.`,
|
|
|
161
147
|
'conjunct-infix': (r, ctx, _op, terms) => addsite(new ConjunctVal_1.ConjunctVal({ peg: terms }), r, ctx),
|
|
162
148
|
'disjunct-infix': (r, ctx, _op, terms) => addsite(new DisjunctVal_1.DisjunctVal({ peg: terms }), r, ctx),
|
|
163
149
|
'dot-prefix': (r, ctx, _op, terms) => {
|
|
164
|
-
|
|
165
|
-
if (ctx.meta.paths) {
|
|
166
|
-
ctx.meta.paths.push(pv);
|
|
167
|
-
}
|
|
168
|
-
return pv;
|
|
150
|
+
return addsite(new RefVal_1.RefVal({ peg: terms, prefix: true }), r, ctx);
|
|
169
151
|
},
|
|
170
152
|
'dot-infix': (r, ctx, _op, terms) => {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
// Remove consumed intermediates
|
|
174
|
-
for (const t of terms) {
|
|
175
|
-
if (t instanceof PathVal_1.PathVal) {
|
|
176
|
-
const idx = paths.indexOf(t);
|
|
177
|
-
if (idx >= 0)
|
|
178
|
-
paths.splice(idx, 1);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
const pv = addsite(new PathVal_1.PathVal({ peg: terms }), r, ctx);
|
|
183
|
-
if (paths) {
|
|
184
|
-
paths.push(pv);
|
|
185
|
-
}
|
|
186
|
-
return pv;
|
|
153
|
+
// // console.log('DOT-INFIX-OP', terms)
|
|
154
|
+
return addsite(new RefVal_1.RefVal({ peg: terms }), r, ctx);
|
|
187
155
|
},
|
|
188
156
|
'star-prefix': (r, ctx, _op, terms) => addsite(new PrefVal_1.PrefVal({ peg: terms[0] }), r, ctx),
|
|
189
157
|
'dollar-prefix': (r, ctx, _op, terms) => {
|
|
190
158
|
// $.a.b absolute path
|
|
191
|
-
if (terms[0] instanceof
|
|
159
|
+
if (terms[0] instanceof RefVal_1.RefVal) {
|
|
192
160
|
terms[0].absolute = true;
|
|
193
161
|
return terms[0];
|
|
194
162
|
}
|
|
@@ -219,9 +187,6 @@ help isolate the syntax error.`,
|
|
|
219
187
|
});
|
|
220
188
|
}
|
|
221
189
|
const out = addsite(val, r, ctx);
|
|
222
|
-
if (out.isKeyFunc && ctx.meta.keys) {
|
|
223
|
-
ctx.meta.keys.push(out);
|
|
224
|
-
}
|
|
225
190
|
return out;
|
|
226
191
|
},
|
|
227
192
|
};
|
|
@@ -230,10 +195,10 @@ help isolate the syntax error.`,
|
|
|
230
195
|
op: {
|
|
231
196
|
// disjunct < conjunct: c & b | a -> (c & b) | a
|
|
232
197
|
'conjunct': {
|
|
233
|
-
infix: true, src: '&', left: 16_000_000, right: 17_000_000
|
|
198
|
+
infix: true, src: '&', left: 16_000_000, right: 17_000_000
|
|
234
199
|
},
|
|
235
200
|
'disjunct': {
|
|
236
|
-
infix: true, src: '|', left: 14_000_000, right: 15_000_000
|
|
201
|
+
infix: true, src: '|', left: 14_000_000, right: 15_000_000
|
|
237
202
|
},
|
|
238
203
|
'plus-infix': {
|
|
239
204
|
src: '+',
|
|
@@ -266,6 +231,7 @@ help isolate the syntax error.`,
|
|
|
266
231
|
paren: true,
|
|
267
232
|
preval: {
|
|
268
233
|
active: true,
|
|
234
|
+
// allow: ['floor'], //Object.keys(funcMap)
|
|
269
235
|
},
|
|
270
236
|
osrc: '(',
|
|
271
237
|
csrc: ')',
|
|
@@ -359,34 +325,19 @@ help isolate the syntax error.`,
|
|
|
359
325
|
.bc((r, ctx) => {
|
|
360
326
|
const optionalKeys = r.u.aontu_optional_keys ?? [];
|
|
361
327
|
let mo = r.node;
|
|
362
|
-
// Extract spread constraint before creating MapVal.
|
|
363
|
-
// If a spread exists, wrap: ConjunctVal([MapVal, SpreadVal])
|
|
364
|
-
const rawSpread = mo[type_1.SPREAD];
|
|
365
|
-
if (rawSpread) {
|
|
366
|
-
delete mo[type_1.SPREAD];
|
|
367
|
-
}
|
|
368
328
|
// Handle defered conjuncts, e.g. `{x:1 @"foo"}`
|
|
369
329
|
if (mo.___merge) {
|
|
370
330
|
let mop = { ...mo };
|
|
371
331
|
delete mop.___merge;
|
|
332
|
+
// TODO: needs addpath?
|
|
372
333
|
let mopv = new MapVal_1.MapVal({ peg: mop });
|
|
373
334
|
mopv.optionalKeys = optionalKeys;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
terms.push(makeSpreadVal(rawSpread));
|
|
377
|
-
}
|
|
378
|
-
r.node = addsite(new ConjunctVal_1.ConjunctVal({ peg: terms }), r, ctx);
|
|
335
|
+
r.node =
|
|
336
|
+
addsite(new ConjunctVal_1.ConjunctVal({ peg: [mopv, ...mo.___merge] }), r, ctx);
|
|
379
337
|
}
|
|
380
338
|
else {
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
if (rawSpread && '&' === rawSpread.o) {
|
|
384
|
-
const spreadVal = makeSpreadVal(rawSpread);
|
|
385
|
-
r.node = addsite(new ConjunctVal_1.ConjunctVal({ peg: [mapVal, spreadVal] }), r, ctx);
|
|
386
|
-
}
|
|
387
|
-
else {
|
|
388
|
-
r.node = addsite(mapVal, r, ctx);
|
|
389
|
-
}
|
|
339
|
+
r.node = addsite(new MapVal_1.MapVal({ peg: mo }), r, ctx);
|
|
340
|
+
r.node.optionalKeys = optionalKeys;
|
|
390
341
|
}
|
|
391
342
|
return undefined;
|
|
392
343
|
})
|
|
@@ -399,33 +350,18 @@ help isolate the syntax error.`,
|
|
|
399
350
|
.bc((r, ctx) => {
|
|
400
351
|
const optionalKeys = r.u.aontu_optional_keys ?? [];
|
|
401
352
|
let ao = r.node;
|
|
402
|
-
// Extract spread from list before creating ListVal.
|
|
403
|
-
const rawSpread = ao[type_1.SPREAD];
|
|
404
|
-
if (rawSpread) {
|
|
405
|
-
delete ao[type_1.SPREAD];
|
|
406
|
-
}
|
|
407
353
|
if (ao.___merge) {
|
|
408
354
|
let aop = [...ao];
|
|
409
355
|
delete aop.___merge;
|
|
356
|
+
// TODO: needs addpath?
|
|
410
357
|
let aopv = new ListVal_1.ListVal({ peg: aop });
|
|
411
358
|
aopv.optionalKeys = optionalKeys;
|
|
412
|
-
let terms = [aopv, ...ao.___merge];
|
|
413
|
-
if (rawSpread && '&' === rawSpread.o) {
|
|
414
|
-
terms.push(makeSpreadVal(rawSpread));
|
|
415
|
-
}
|
|
416
359
|
r.node =
|
|
417
|
-
addsite(new ConjunctVal_1.ConjunctVal({ peg:
|
|
360
|
+
addsite(new ConjunctVal_1.ConjunctVal({ peg: [aopv, ...ao.___merge] }), r, ctx);
|
|
418
361
|
}
|
|
419
362
|
else {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
if (rawSpread && '&' === rawSpread.o) {
|
|
423
|
-
const spreadVal = makeSpreadVal(rawSpread);
|
|
424
|
-
r.node = addsite(new ConjunctVal_1.ConjunctVal({ peg: [listVal, spreadVal] }), r, ctx);
|
|
425
|
-
}
|
|
426
|
-
else {
|
|
427
|
-
r.node = addsite(listVal, r, ctx);
|
|
428
|
-
}
|
|
363
|
+
r.node = addsite(new ListVal_1.ListVal({ peg: ao }), r, ctx);
|
|
364
|
+
r.node.optionalKeys = optionalKeys;
|
|
429
365
|
}
|
|
430
366
|
return undefined;
|
|
431
367
|
});
|
|
@@ -468,13 +404,11 @@ help isolate the syntax error.`,
|
|
|
468
404
|
g: 'aontu-optional-pair'
|
|
469
405
|
}
|
|
470
406
|
])
|
|
471
|
-
//
|
|
472
|
-
// The path gets adjusted correctly when SpreadVal applies
|
|
473
|
-
// the constraint via spreadClone(keyctx).
|
|
407
|
+
// NOTE: manually adjust path - @jsonic/path ignores as not pair:true
|
|
474
408
|
.ao((r) => {
|
|
475
409
|
if (0 < r.d && r.u.spread) {
|
|
476
|
-
r.child.k.path = r.k.path;
|
|
477
|
-
r.child.k.key =
|
|
410
|
+
r.child.k.path = [...r.k.path, '&'];
|
|
411
|
+
r.child.k.key = '&';
|
|
478
412
|
}
|
|
479
413
|
})
|
|
480
414
|
.bc((rule) => {
|
|
@@ -538,14 +472,10 @@ function makeModelResolver(options) {
|
|
|
538
472
|
let memResolver = (0, mem_1.makeMemResolver)({
|
|
539
473
|
...(options.resolver?.mem || {})
|
|
540
474
|
});
|
|
541
|
-
|
|
475
|
+
// TODO: make this consistent with other resolvers
|
|
476
|
+
let fileResolver = (0, file_1.makeFileResolver)((spec) => {
|
|
542
477
|
return 'string' === typeof spec ? spec : spec?.peg;
|
|
543
|
-
};
|
|
544
|
-
let preload;
|
|
545
|
-
if (options.preload) {
|
|
546
|
-
preload = (0, multisource_2.preloadFiles)(options.preload);
|
|
547
|
-
}
|
|
548
|
-
let fileResolver = (0, file_1.makeFileResolver)(preload ? { pathfinder, preload } : pathfinder);
|
|
478
|
+
});
|
|
549
479
|
let pkgResolver = (0, pkg_1.makePkgResolver)({
|
|
550
480
|
require: useRequire,
|
|
551
481
|
...(options.resolver?.pkg || {})
|
|
@@ -577,8 +507,6 @@ function makeModelResolver(options) {
|
|
|
577
507
|
class Lang {
|
|
578
508
|
constructor(options) {
|
|
579
509
|
// const start = performance.now()
|
|
580
|
-
this.paths = [];
|
|
581
|
-
this.keys = [];
|
|
582
510
|
this.opts = Object.assign((0, type_1.DEFAULT_OPTS)(), options);
|
|
583
511
|
const modelResolver = makeModelResolver(this.opts);
|
|
584
512
|
this.jsonic = jsonic_1.Jsonic.make();
|
|
@@ -600,13 +528,9 @@ class Lang {
|
|
|
600
528
|
parse(src, opts) {
|
|
601
529
|
// const start = performance.now()
|
|
602
530
|
// JSONIC-UPDATE - check meta
|
|
603
|
-
this.paths = [];
|
|
604
|
-
this.keys = [];
|
|
605
531
|
let jm = {
|
|
606
532
|
fs: opts?.fs,
|
|
607
533
|
fileName: opts?.path ?? this.opts.path,
|
|
608
|
-
paths: this.paths,
|
|
609
|
-
keys: this.keys,
|
|
610
534
|
multisource: {
|
|
611
535
|
path: opts?.path ?? this.opts.path,
|
|
612
536
|
deps: (opts && opts.deps) || undefined
|