aontu 0.29.0 → 0.30.1

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.
Files changed (89) hide show
  1. package/dist/aontu.d.ts +17 -13
  2. package/dist/aontu.js +145 -60
  3. package/dist/aontu.js.map +1 -1
  4. package/package.json +18 -34
  5. package/aontu.ts +0 -92
  6. package/dist/lib/err.d.ts +0 -4
  7. package/dist/lib/err.js +0 -61
  8. package/dist/lib/err.js.map +0 -1
  9. package/dist/lib/lang.d.ts +0 -15
  10. package/dist/lib/lang.js +0 -409
  11. package/dist/lib/lang.js.map +0 -1
  12. package/dist/lib/op/disjunct.d.ts +0 -3
  13. package/dist/lib/op/disjunct.js +0 -28
  14. package/dist/lib/op/disjunct.js.map +0 -1
  15. package/dist/lib/op/op.d.ts +0 -6
  16. package/dist/lib/op/op.js +0 -9
  17. package/dist/lib/op/op.js.map +0 -1
  18. package/dist/lib/op/unite.d.ts +0 -3
  19. package/dist/lib/op/unite.js +0 -100
  20. package/dist/lib/op/unite.js.map +0 -1
  21. package/dist/lib/type.d.ts +0 -49
  22. package/dist/lib/type.js +0 -7
  23. package/dist/lib/type.js.map +0 -1
  24. package/dist/lib/unify.d.ts +0 -38
  25. package/dist/lib/unify.js +0 -67
  26. package/dist/lib/unify.js.map +0 -1
  27. package/dist/lib/utility.d.ts +0 -3
  28. package/dist/lib/utility.js +0 -16
  29. package/dist/lib/utility.js.map +0 -1
  30. package/dist/lib/val/ConjunctVal.d.ts +0 -17
  31. package/dist/lib/val/ConjunctVal.js +0 -171
  32. package/dist/lib/val/ConjunctVal.js.map +0 -1
  33. package/dist/lib/val/DisjunctVal.d.ts +0 -17
  34. package/dist/lib/val/DisjunctVal.js +0 -95
  35. package/dist/lib/val/DisjunctVal.js.map +0 -1
  36. package/dist/lib/val/ListVal.d.ts +0 -18
  37. package/dist/lib/val/ListVal.js +0 -120
  38. package/dist/lib/val/ListVal.js.map +0 -1
  39. package/dist/lib/val/MapVal.d.ts +0 -18
  40. package/dist/lib/val/MapVal.js +0 -117
  41. package/dist/lib/val/MapVal.js.map +0 -1
  42. package/dist/lib/val/Nil.d.ts +0 -22
  43. package/dist/lib/val/Nil.js +0 -84
  44. package/dist/lib/val/Nil.js.map +0 -1
  45. package/dist/lib/val/NullVal.d.ts +0 -15
  46. package/dist/lib/val/NullVal.js +0 -38
  47. package/dist/lib/val/NullVal.js.map +0 -1
  48. package/dist/lib/val/OpVal.d.ts +0 -17
  49. package/dist/lib/val/OpVal.js +0 -89
  50. package/dist/lib/val/OpVal.js.map +0 -1
  51. package/dist/lib/val/PlusVal.d.ts +0 -12
  52. package/dist/lib/val/PlusVal.js +0 -32
  53. package/dist/lib/val/PlusVal.js.map +0 -1
  54. package/dist/lib/val/PrefVal.d.ts +0 -17
  55. package/dist/lib/val/PrefVal.js +0 -87
  56. package/dist/lib/val/PrefVal.js.map +0 -1
  57. package/dist/lib/val/RefVal.d.ts +0 -22
  58. package/dist/lib/val/RefVal.js +0 -247
  59. package/dist/lib/val/RefVal.js.map +0 -1
  60. package/dist/lib/val/ValBase.d.ts +0 -26
  61. package/dist/lib/val/ValBase.js +0 -77
  62. package/dist/lib/val/ValBase.js.map +0 -1
  63. package/dist/lib/val/VarVal.d.ts +0 -15
  64. package/dist/lib/val/VarVal.js +0 -84
  65. package/dist/lib/val/VarVal.js.map +0 -1
  66. package/dist/lib/val.d.ts +0 -81
  67. package/dist/lib/val.js +0 -191
  68. package/dist/lib/val.js.map +0 -1
  69. package/lib/err.ts +0 -83
  70. package/lib/lang.ts +0 -585
  71. package/lib/op/disjunct.ts +0 -51
  72. package/lib/op/op.ts +0 -18
  73. package/lib/op/unite.ts +0 -143
  74. package/lib/type.ts +0 -95
  75. package/lib/unify.ts +0 -128
  76. package/lib/utility.ts +0 -24
  77. package/lib/val/ConjunctVal.ts +0 -265
  78. package/lib/val/DisjunctVal.ts +0 -160
  79. package/lib/val/ListVal.ts +0 -196
  80. package/lib/val/MapVal.ts +0 -181
  81. package/lib/val/Nil.ts +0 -144
  82. package/lib/val/NullVal.ts +0 -72
  83. package/lib/val/OpVal.ts +0 -159
  84. package/lib/val/PlusVal.ts +0 -76
  85. package/lib/val/PrefVal.ts +0 -154
  86. package/lib/val/RefVal.ts +0 -362
  87. package/lib/val/ValBase.ts +0 -109
  88. package/lib/val/VarVal.ts +0 -157
  89. package/lib/val.ts +0 -327
package/dist/lib/lang.js DELETED
@@ -1,409 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Site = exports.Lang = void 0;
5
- const jsonic_1 = require("jsonic");
6
- const debug_1 = require("jsonic/debug");
7
- const multisource_1 = require("@jsonic/multisource");
8
- const file_1 = require("@jsonic/multisource/resolver/file");
9
- const pkg_1 = require("@jsonic/multisource/resolver/pkg");
10
- const mem_1 = require("@jsonic/multisource/resolver/mem");
11
- const expr_1 = require("@jsonic/expr");
12
- const path_1 = require("@jsonic/path");
13
- const DisjunctVal_1 = require("./val/DisjunctVal");
14
- const ConjunctVal_1 = require("./val/ConjunctVal");
15
- const ListVal_1 = require("./val/ListVal");
16
- const MapVal_1 = require("./val/MapVal");
17
- const Nil_1 = require("./val/Nil");
18
- const PrefVal_1 = require("./val/PrefVal");
19
- const RefVal_1 = require("./val/RefVal");
20
- const VarVal_1 = require("./val/VarVal");
21
- const PlusVal_1 = require("./val/PlusVal");
22
- const NullVal_1 = require("./val/NullVal");
23
- const val_1 = require("./val");
24
- class Site {
25
- // static NONE = new Site(TOP)
26
- constructor(val) {
27
- this.row = -1;
28
- this.col = -1;
29
- this.url = '';
30
- // TODO: logic to select most meaningful site if val has no site,
31
- // but has peg children that do.
32
- this.row = val.row;
33
- this.col = val.col;
34
- this.url = val.url;
35
- }
36
- }
37
- exports.Site = Site;
38
- let AontuJsonic = function aontu(jsonic) {
39
- jsonic.use(path_1.Path);
40
- // TODO: refactor Val constructor
41
- // let addsite = (v: Val, p: string[]) => (v.path = [...(p || [])], v)
42
- let addsite = (v, r, ctx) => {
43
- v.row = null == r.o0 ? -1 : r.o0.rI;
44
- v.col = null == r.o0 ? -1 : r.o0.cI;
45
- v.url = ctx.meta.multisource ? ctx.meta.multisource.path : '';
46
- v.path = r.k ? [...(r.k.path || [])] : [];
47
- return v;
48
- };
49
- jsonic.options({
50
- value: {
51
- def: {
52
- // NOTE: specify with functions as jsonic/deep will
53
- // remove class prototype as options are assumed plain
54
- // (except for functions).
55
- // TODO: jsonic should be able to pass context into these
56
- 'string': {
57
- val: (r, ctx) => addsite(new val_1.ScalarTypeVal({ peg: String }), r, ctx)
58
- },
59
- 'number': {
60
- val: (r, ctx) => addsite(new val_1.ScalarTypeVal({ peg: Number }), r, ctx)
61
- },
62
- 'integer': {
63
- val: (r, ctx) => addsite(new val_1.ScalarTypeVal({ peg: val_1.Integer }), r, ctx)
64
- },
65
- 'boolean': {
66
- val: (r, ctx) => addsite(new val_1.ScalarTypeVal({ peg: Boolean }), r, ctx)
67
- },
68
- 'nil': {
69
- val: (r, ctx) => addsite(new Nil_1.Nil('literal'), r, ctx)
70
- },
71
- // TODO: FIX: need a TOP instance to hold path
72
- 'top': { val: () => val_1.TOP },
73
- }
74
- },
75
- map: {
76
- merge: (prev, curr, _r, ctx) => {
77
- let pval = prev;
78
- let cval = curr;
79
- if ((pval === null || pval === void 0 ? void 0 : pval.isVal) && (cval === null || cval === void 0 ? void 0 : cval.isVal)) {
80
- // TODO: test multi element conjuncts work
81
- if (pval instanceof ConjunctVal_1.ConjunctVal && cval instanceof ConjunctVal_1.ConjunctVal) {
82
- pval.append(cval);
83
- return pval;
84
- }
85
- else if (pval instanceof ConjunctVal_1.ConjunctVal) {
86
- pval.append(cval);
87
- return pval;
88
- }
89
- // else if (cval instanceof ConjunctVal) {
90
- // cval.append(pval)
91
- // return cval
92
- // }
93
- else {
94
- return addsite(new ConjunctVal_1.ConjunctVal({ peg: [pval, cval] }), prev, ctx);
95
- }
96
- }
97
- // Handle defered conjuncts, where MapVal does not yet
98
- // exist, by creating ConjunctVal later.
99
- else {
100
- prev.___merge = (prev.___merge || []);
101
- prev.___merge.push(curr);
102
- return prev;
103
- }
104
- }
105
- }
106
- });
107
- let opmap = {
108
- 'conjunct-infix': (r, ctx, _op, terms) => addsite(new ConjunctVal_1.ConjunctVal({ peg: terms }), r, ctx),
109
- 'disjunct-infix': (r, ctx, _op, terms) => addsite(new DisjunctVal_1.DisjunctVal({ peg: terms }), r, ctx),
110
- 'dot-prefix': (r, ctx, _op, terms) => {
111
- return addsite(new RefVal_1.RefVal({ peg: terms, prefix: true }), r, ctx);
112
- },
113
- 'dot-infix': (r, ctx, _op, terms) => {
114
- return addsite(new RefVal_1.RefVal({ peg: terms }), r, ctx);
115
- },
116
- 'star-prefix': (r, ctx, _op, terms) => addsite(new PrefVal_1.PrefVal({ peg: terms[0] }), r, ctx),
117
- 'dollar-prefix': (r, ctx, _op, terms) => {
118
- // $.a.b absolute path
119
- if (terms[0] instanceof RefVal_1.RefVal) {
120
- terms[0].absolute = true;
121
- return terms[0];
122
- }
123
- return addsite(new VarVal_1.VarVal({ peg: terms[0] }), r, ctx);
124
- },
125
- 'plus-infix': (r, ctx, _op, terms) => {
126
- return addsite(new PlusVal_1.PlusVal({ peg: [terms[0], terms[1]] }), r, ctx);
127
- },
128
- 'negative-prefix': (r, ctx, _op, terms) => {
129
- let val = terms[0];
130
- val.peg = -1 * val.peg;
131
- return addsite(val, r, ctx);
132
- },
133
- 'positive-prefix': (r, ctx, _op, terms) => {
134
- let val = terms[0];
135
- return addsite(val, r, ctx);
136
- },
137
- 'plain-paren': (r, ctx, _op, terms) => {
138
- let val = terms[0];
139
- return addsite(val, r, ctx);
140
- },
141
- };
142
- jsonic
143
- .use(expr_1.Expr, {
144
- op: {
145
- // disjunct > conjunct: c & b | a -> c & (b | a)
146
- 'conjunct': {
147
- infix: true, src: '&', left: 14000000, right: 15000000
148
- },
149
- 'disjunct': {
150
- infix: true, src: '|', left: 16000000, right: 17000000
151
- },
152
- 'plus-infix': {
153
- src: '+',
154
- infix: true,
155
- left: 20000000,
156
- right: 21000000,
157
- },
158
- 'dollar-prefix': {
159
- src: '$',
160
- prefix: true,
161
- right: 31000000,
162
- },
163
- 'dot-infix': {
164
- src: '.',
165
- infix: true,
166
- left: 25000000,
167
- right: 24000000,
168
- },
169
- 'dot-prefix': {
170
- src: '.',
171
- prefix: true,
172
- right: 24000000,
173
- },
174
- 'star': {
175
- src: '*',
176
- prefix: true,
177
- right: 24000000,
178
- },
179
- addition: null,
180
- subtraction: null,
181
- multiplication: null,
182
- division: null,
183
- remainder: null,
184
- },
185
- evaluate: (r, ctx, op, terms) => {
186
- // console.log('EVAL', op.name, terms)
187
- let val = opmap[op.name](r, ctx, op, terms);
188
- return val;
189
- }
190
- });
191
- let CJ = jsonic.token['#E&'];
192
- let CL = jsonic.token.CL;
193
- jsonic.rule('val', (rs) => {
194
- rs
195
- .open([{ s: [CJ, CL], p: 'map', b: 2, n: { pk: 1 }, g: 'spread' }])
196
- .bc((r, ctx) => {
197
- let valnode = r.node;
198
- let valtype = typeof valnode;
199
- if ('string' === valtype) {
200
- valnode = addsite(new val_1.StringVal({ peg: r.node }), r, ctx);
201
- }
202
- else if ('number' === valtype) {
203
- if (Number.isInteger(r.node)) {
204
- valnode = addsite(new val_1.IntegerVal({ peg: r.node }), r, ctx);
205
- }
206
- else {
207
- valnode = addsite(new val_1.NumberVal({ peg: r.node }), r, ctx);
208
- }
209
- }
210
- else if ('boolean' === valtype) {
211
- valnode = addsite(new val_1.BooleanVal({ peg: r.node }), r, ctx);
212
- }
213
- else if (null === valnode) {
214
- valnode = addsite(new NullVal_1.NullVal({ peg: r.node }), r, ctx);
215
- }
216
- if (null != valnode && 'object' === typeof valnode) {
217
- let st = r.o0;
218
- valnode.row = st.rI;
219
- valnode.col = st.cI;
220
- valnode.url = ctx.meta.multisource && ctx.meta.multisource.path;
221
- }
222
- // else { ERROR? }
223
- r.node = valnode;
224
- return undefined;
225
- })
226
- .close([{ s: [CJ, CL], b: 2, g: 'spread,json,more' }]);
227
- return rs;
228
- });
229
- jsonic.rule('map', (rs) => {
230
- rs
231
- .open([{ s: [CJ, CL], p: 'pair', b: 2, g: 'spread' }])
232
- .bc((r, ctx) => {
233
- let mo = r.node;
234
- // Handle defered conjuncts, e.g. `{x:1 @"foo"}`
235
- if (mo.___merge) {
236
- let mop = { ...mo };
237
- delete mop.___merge;
238
- // TODO: needs addpath?
239
- let mopv = new MapVal_1.MapVal({ peg: mop });
240
- r.node =
241
- addsite(new ConjunctVal_1.ConjunctVal({ peg: [mopv, ...mo.___merge] }), r, ctx);
242
- }
243
- else {
244
- r.node = addsite(new MapVal_1.MapVal({ peg: mo }), r, ctx);
245
- }
246
- return undefined;
247
- })
248
- .close([{ s: [CJ, CL], b: 2, g: 'spread,json,more' }]);
249
- return rs;
250
- });
251
- jsonic.rule('list', (rs) => {
252
- rs.bc((r, ctx) => {
253
- r.node = addsite(new ListVal_1.ListVal({ peg: r.node }), r, ctx);
254
- return undefined;
255
- });
256
- return rs;
257
- });
258
- jsonic.rule('pair', (rs) => {
259
- rs
260
- .open([{
261
- s: [CJ, CL], p: 'val',
262
- u: { spread: true },
263
- g: 'spread'
264
- }])
265
- // NOTE: manually adjust path - @jsonic/path ignores as not pair:true
266
- .ao((r) => {
267
- if (0 < r.d && r.u.spread) {
268
- r.child.k.path = [...r.k.path, '&'];
269
- r.child.k.key = '&';
270
- }
271
- })
272
- .bc((rule) => {
273
- // TRAVERSE PARENTS TO GET PATH
274
- if (rule.u.spread) {
275
- rule.node[MapVal_1.MapVal.SPREAD] =
276
- (rule.node[MapVal_1.MapVal.SPREAD] || { o: rule.o0.src, v: [] });
277
- rule.node[MapVal_1.MapVal.SPREAD].v.push(rule.child.node);
278
- }
279
- return undefined;
280
- })
281
- .close([
282
- { s: [CJ, CL], c: (r) => r.lte('dmap', 1), r: 'pair', b: 2, g: 'spread,json,pair' },
283
- { s: [CJ, CL], b: 2, g: 'spread,json,more' }
284
- ]);
285
- return rs;
286
- });
287
- jsonic.rule('elem', (rs) => {
288
- rs
289
- // PPP
290
- .open([{ s: [CJ, CL], p: 'val', u: { spread: true }, n: { pk: 1 }, g: 'spread' }])
291
- .bc((rule) => {
292
- // TRAVERSE PARENTS TO GET PATH
293
- if (rule.u.spread) {
294
- rule.node[ListVal_1.ListVal.SPREAD] =
295
- (rule.node[ListVal_1.ListVal.SPREAD] || { o: rule.o0.src, v: [] });
296
- rule.node[ListVal_1.ListVal.SPREAD].v.push(rule.child.node);
297
- }
298
- return undefined;
299
- })
300
- .close([{ s: [CJ, CL], r: 'elem', b: 2, g: 'spread,json,more' }]);
301
- return rs;
302
- });
303
- };
304
- // const includeFileResolver = makeFileResolver((spec: any) => {
305
- // return 'string' === typeof spec ? spec : spec?.peg
306
- // })
307
- function makeModelResolver(options) {
308
- var _a, _b;
309
- const useRequire = options.require || require;
310
- let memResolver = (0, mem_1.makeMemResolver)({
311
- ...(((_a = options.resolver) === null || _a === void 0 ? void 0 : _a.mem) || {})
312
- });
313
- // let fileResolver = makeFileResolver({
314
- // ...(options.resolver?.file || {})
315
- // })
316
- // TODO: make this consistent with other resolvers
317
- let fileResolver = (0, file_1.makeFileResolver)((spec) => {
318
- return 'string' === typeof spec ? spec : spec === null || spec === void 0 ? void 0 : spec.peg;
319
- });
320
- let pkgResolver = (0, pkg_1.makePkgResolver)({
321
- require: useRequire,
322
- ...(((_b = options.resolver) === null || _b === void 0 ? void 0 : _b.pkg) || {})
323
- });
324
- return function ModelResolver(spec, popts, rule, ctx, jsonic) {
325
- let path = 'string' === typeof spec ? spec : spec === null || spec === void 0 ? void 0 : spec.peg;
326
- let search = [];
327
- let res = memResolver(path, popts, rule, ctx, jsonic);
328
- res.path = path;
329
- if (res.found) {
330
- return res;
331
- }
332
- search = search.concat(res.search);
333
- res = fileResolver(path, popts, rule, ctx, jsonic);
334
- res.path = path;
335
- if (res.found) {
336
- return res;
337
- }
338
- search = search.concat(res.search);
339
- res = pkgResolver(path, popts, rule, ctx, jsonic);
340
- res.path = path;
341
- if (res.found) {
342
- return res;
343
- }
344
- res.search = search.concat(res.search);
345
- return res;
346
- };
347
- }
348
- class Lang {
349
- constructor(options) {
350
- this.options = {
351
- src: '',
352
- print: -1,
353
- debug: false,
354
- trace: false,
355
- };
356
- this.options = Object.assign({}, this.options, options);
357
- const modelResolver = makeModelResolver(this.options);
358
- this.jsonic = jsonic_1.Jsonic.make();
359
- if (this.options.debug) {
360
- this.jsonic.use(debug_1.Debug, {
361
- trace: this.options.trace
362
- });
363
- }
364
- this.jsonic
365
- .use(AontuJsonic)
366
- .use(multisource_1.MultiSource, {
367
- // resolver: options?.resolver || includeFileResolver
368
- resolver: (options === null || options === void 0 ? void 0 : options.resolver) || modelResolver
369
- });
370
- }
371
- parse(src, opts) {
372
- // JSONIC-UPDATE - check meta
373
- let jm = {
374
- fs: opts === null || opts === void 0 ? void 0 : opts.fs,
375
- fileName: this.options.path,
376
- multisource: {
377
- path: this.options.path,
378
- deps: (opts && opts.deps) || undefined
379
- }
380
- };
381
- // Pass through Jsonic debug log value
382
- if (opts && null != opts.log && Number.isInteger(opts.log)) {
383
- jm.log = opts.log;
384
- }
385
- // jm.log = -1
386
- let val;
387
- try {
388
- val = this.jsonic(src, jm);
389
- }
390
- catch (e) {
391
- if (e instanceof jsonic_1.JsonicError || 'JsonicError' === e.constructor.name) {
392
- val = new Nil_1.Nil({
393
- why: 'parse',
394
- err: new Nil_1.Nil({
395
- why: 'syntax',
396
- msg: e.message,
397
- err: e,
398
- })
399
- });
400
- }
401
- else {
402
- throw e;
403
- }
404
- }
405
- return val;
406
- }
407
- }
408
- exports.Lang = Lang;
409
- //# sourceMappingURL=lang.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../lib/lang.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Operation } from './op';
2
- declare const disjunct: Operation;
3
- export { disjunct };
@@ -1,28 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.disjunct = void 0;
5
- const DisjunctVal_1 = require("../val/DisjunctVal");
6
- const ValBase_1 = require("../val/ValBase");
7
- const disjunct = (ctx, a, b) => {
8
- let peers = [];
9
- let origsites = [];
10
- // origsites.push(append(peers, a))
11
- // origsites.push(append(peers, b))
12
- let out = new DisjunctVal_1.DisjunctVal({ peg: peers }, ctx, origsites);
13
- return out;
14
- };
15
- exports.disjunct = disjunct;
16
- function append(peers, v) {
17
- // let origsite: Site = Site.NONE
18
- if (v.isDisjunctVal) {
19
- peers.push(...v.peg);
20
- // origsite = v.site
21
- }
22
- // TODO: handle no-error Nil (drop) and error Nil (keep and become)
23
- else if (v instanceof ValBase_1.ValBase) {
24
- peers.push(v);
25
- }
26
- // return origsite
27
- }
28
- //# sourceMappingURL=disjunct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"disjunct.js","sourceRoot":"","sources":["../../../lib/op/disjunct.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAWzD,oDAAgD;AAOhD,4CAAwC;AAIxC,MAAM,QAAQ,GAAc,CAAC,GAAa,EAAE,CAAO,EAAE,CAAO,EAAE,EAAE;IAC9D,IAAI,KAAK,GAAU,EAAE,CAAA;IACrB,IAAI,SAAS,GAAW,EAAE,CAAA;IAC1B,mCAAmC;IACnC,mCAAmC;IACnC,IAAI,GAAG,GAAG,IAAI,yBAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IACzD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAoBC,4BAAQ;AAjBV,SAAS,MAAM,CAAC,KAAY,EAAE,CAAO;IACnC,iCAAiC;IAEjC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACpB,oBAAoB;IACtB,CAAC;IAED,mEAAmE;SAC9D,IAAI,CAAC,YAAY,iBAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IAED,kBAAkB;AACpB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Context } from '../unify';
2
- import { Val } from '../type';
3
- import { disjunct } from './disjunct';
4
- import { unite } from './unite';
5
- type Operation = (ctx: Context, a?: Val, b?: Val, whence?: string) => Val;
6
- export { Operation, disjunct, unite, };
package/dist/lib/op/op.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License. */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.unite = exports.disjunct = void 0;
5
- const disjunct_1 = require("./disjunct");
6
- Object.defineProperty(exports, "disjunct", { enumerable: true, get: function () { return disjunct_1.disjunct; } });
7
- const unite_1 = require("./unite");
8
- Object.defineProperty(exports, "unite", { enumerable: true, get: function () { return unite_1.unite; } });
9
- //# sourceMappingURL=op.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"op.js","sourceRoot":"","sources":["../../../lib/op/op.ts"],"names":[],"mappings":";AAAA,0DAA0D;;;AAM1D,yCAAqC;AAQnC,yFARO,mBAAQ,OAQP;AAPV,mCAA+B;AAQ7B,sFARO,aAAK,OAQP"}
@@ -1,3 +0,0 @@
1
- import { Operation } from './op';
2
- declare const unite: Operation;
3
- export { unite };
@@ -1,100 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.unite = void 0;
5
- const type_1 = require("../type");
6
- const Nil_1 = require("../val/Nil");
7
- const val_1 = require("../val");
8
- let uc = 0;
9
- // Vals should only have to unify downwards (in .unify) over Vals they understand.
10
- // and for complex Vals, TOP, which means self unify if not yet done
11
- const unite = (ctx, a, b, whence) => {
12
- let out = a;
13
- let why = 'u';
14
- // console.log('AA OP unite IN', a?.canon, b?.canon,
15
- // 'W', whence,
16
- // 'E', 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
17
- let unified = false;
18
- if (b && (val_1.TOP === a || !a)) {
19
- //console.log('Utb', b.canon)
20
- out = b;
21
- why = 'b';
22
- }
23
- else if (a && (val_1.TOP === b || !b)) {
24
- //console.log('Uta', a.canon)
25
- out = a;
26
- why = 'a';
27
- }
28
- else if (a && b && val_1.TOP !== b) {
29
- if (a.isNil) {
30
- out = update(a, b);
31
- why = 'an';
32
- }
33
- else if (b.isNil) {
34
- out = update(b, a);
35
- why = 'bn';
36
- }
37
- else if (a.isConjunctVal) {
38
- // console.log('Q', a.canon, b.canon)
39
- out = a.unify(b, ctx);
40
- unified = true;
41
- why = 'acj';
42
- }
43
- else if (b.isConjunctVal ||
44
- b.isDisjunctVal ||
45
- b.isRefVal ||
46
- b.isPrefVal) {
47
- // console.log('U', a.canon, b.canon)
48
- // return b.unify(a, ctx)
49
- out = b.unify(a, ctx);
50
- unified = true;
51
- // console.log('UO', out.canon)
52
- why = 'bv';
53
- }
54
- // Exactly equal scalars.
55
- else if (a.constructor === b.constructor && a.peg === b.peg) {
56
- out = update(a, b);
57
- why = 'up';
58
- }
59
- else {
60
- // console.log('QQQ')
61
- out = a.unify(b, ctx);
62
- unified = true;
63
- why = 'ab';
64
- }
65
- }
66
- if (!out || !out.unify) {
67
- out = Nil_1.Nil.make(ctx, 'unite', a, b);
68
- why += 'N';
69
- }
70
- if (type_1.DONE !== out.done && !unified) {
71
- out = out.unify(val_1.TOP, ctx);
72
- why += 'T';
73
- }
74
- // console.log('AA OP unite OUT', a?.canon, b?.canon, '->', out && out.canon,
75
- // 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
76
- uc++;
77
- // TODO: KEEP THIS! print in debug mode! push to ctx.log?
78
- /*
79
- console.log(
80
- 'U',
81
- ('' + ctx.cc).padStart(2),
82
- ('' + uc).padStart(4),
83
- (whence || '').substring(0, 16).padEnd(16),
84
- why.padEnd(6),
85
- ctx.path.join('.').padEnd(16),
86
- (a || '').constructor.name.substring(0, 3),
87
- '&',
88
- (b || '').constructor.name.substring(0, 3),
89
- '|',
90
- ' '.repeat(ctx.path.length),
91
- a?.canon, '&', b?.canon, '->', out.canon)
92
- */
93
- return out;
94
- };
95
- exports.unite = unite;
96
- function update(x, _y) {
97
- // TODO: update x with y.site
98
- return x;
99
- }
100
- //# sourceMappingURL=unite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unite.js","sourceRoot":"","sources":["../../../lib/op/unite.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- import * as Fs from 'node:fs';
2
- import { Resolver } from '@jsonic/multisource';
3
- import { Context } from './unify';
4
- type FST = typeof Fs;
5
- type Options = {
6
- src: string;
7
- print: number;
8
- resolver?: Resolver;
9
- base?: string;
10
- path?: string;
11
- debug?: boolean;
12
- trace?: boolean;
13
- fs?: FST;
14
- deps?: any;
15
- log?: any;
16
- };
17
- interface Val {
18
- isVal: boolean;
19
- id: number;
20
- done: number;
21
- path: string[];
22
- row: number;
23
- col: number;
24
- url: string;
25
- top: boolean;
26
- peg: any;
27
- err: any[];
28
- deps?: any;
29
- same(peer: Val): boolean;
30
- clone(spec?: ValSpec, ctx?: Context): Val;
31
- unify(peer: Val, ctx?: Context): Val;
32
- get canon(): string;
33
- gen(ctx?: Context): any;
34
- }
35
- type ValSpec = {
36
- peg?: any;
37
- [name: string]: any;
38
- } | null;
39
- type ValMap = {
40
- [key: string]: Val;
41
- };
42
- type ValList = Val[];
43
- declare const DONE = -1;
44
- type ErrContext = {
45
- src?: string;
46
- fs?: FST;
47
- };
48
- export type { Val, ValSpec, ValMap, ValList, Options, ErrContext, FST, };
49
- export { DONE, Resolver, };
package/dist/lib/type.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2022-2023 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DONE = void 0;
5
- const DONE = -1;
6
- exports.DONE = DONE;
7
- //# sourceMappingURL=type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../lib/type.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAwEzD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAA;AAmBb,oBAAI"}