aontu 0.21.1 → 0.22.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.
@@ -7,8 +7,6 @@ const err_1 = require("../err");
7
7
  const op_1 = require("../op/op");
8
8
  const val_1 = require("../val");
9
9
  const ConjunctVal_1 = require("../val/ConjunctVal");
10
- // import { DisjunctVal } from '../val/DisjunctVal'
11
- // import { ListVal } from '../val/ListVal'
12
10
  const MapVal_1 = require("../val/MapVal");
13
11
  const Nil_1 = require("../val/Nil");
14
12
  const VarVal_1 = require("../val/VarVal");
@@ -115,7 +113,8 @@ class RefVal extends ValBase_1.ValBase {
115
113
  let fullpath = this.path;
116
114
  let parts = [];
117
115
  let modes = [];
118
- // console.log('PARTS', this.peg)
116
+ // console.log('REF', this.id, this.path, this.done, 'PEG', this.peg.map((p: any) => p.canon))
117
+ // console.dir(this.peg, { depth: null })
119
118
  for (let pI = 0; pI < this.peg.length; pI++) {
120
119
  let part = this.peg[pI];
121
120
  if (part instanceof VarVal_1.VarVal) {
@@ -176,6 +175,15 @@ class RefVal extends ValBase_1.ValBase {
176
175
  let sep = '.';
177
176
  fullpath = fullpath
178
177
  .reduce(((a, p) => (p === sep ? a.length = a.length - 1 : a.push(p), a)), []);
178
+ // console.log('REF', this.id, this.path, this.done, 'FULLPATH', fullpath)
179
+ if (modes.includes('KEY')) {
180
+ let key = this.path[this.path.length - 2];
181
+ let sv = new val_1.StringVal({ peg: null == key ? '' : key }, ctx);
182
+ // TODO: other props?
183
+ sv.done = type_1.DONE;
184
+ sv.path = this.path;
185
+ return sv;
186
+ }
179
187
  let node = ctx.root;
180
188
  let pI = 0;
181
189
  for (; pI < fullpath.length; pI++) {
@@ -191,18 +199,18 @@ class RefVal extends ValBase_1.ValBase {
191
199
  // console.log('RefVal KEY', modes, pI, fullpath)
192
200
  if (pI === fullpath.length) {
193
201
  // if (this.attr && 'KEY' === this.attr.kind) {
194
- if (modes.includes('KEY')) {
195
- // let key = fullpath[fullpath.length - ('' === this.attr.part ? 1 : 2)]
196
- let key = fullpath[fullpath.length - 1];
197
- let sv = new val_1.StringVal({ peg: null == key ? '' : key }, ctx);
198
- // TODO: other props?
199
- sv.done = type_1.DONE;
200
- sv.path = this.path;
201
- return sv;
202
- }
203
- else {
204
- return node;
205
- }
202
+ // if (modes.includes('KEY')) {
203
+ // let key = fullpath[fullpath.length - 1]
204
+ // let sv = new StringVal({ peg: null == key ? '' : key }, ctx)
205
+ // // TODO: other props?
206
+ // sv.done = DONE
207
+ // sv.path = this.path
208
+ // return sv
209
+ // }
210
+ // else {
211
+ // console.log('REF', this.id, this.path, this.done, 'FOUND', node.canon)
212
+ return node;
213
+ // }
206
214
  }
207
215
  }
208
216
  same(peer) {
@@ -1 +1 @@
1
- {"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../../lib/val/RefVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../../lib/val/RefVal.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ declare class ValBase implements Val {
12
12
  top: boolean;
13
13
  peg: any;
14
14
  err: any[];
15
+ uh: number[];
15
16
  constructor(spec: ValSpec, ctx?: Context);
16
17
  same(peer: Val): boolean;
17
18
  clone(spec?: ValSpec, ctx?: Context): Val;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2024 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ValBase = void 0;
5
5
  const lang_1 = require("../lang");
6
+ let ID = 0;
6
7
  class ValBase {
7
- // deps?: any
8
8
  constructor(spec, ctx) {
9
9
  this.isVal = true;
10
10
  this.done = 0;
@@ -19,15 +19,22 @@ class ValBase {
19
19
  this.err = [];
20
20
  this.peg = spec === null || spec === void 0 ? void 0 : spec.peg;
21
21
  this.path = (ctx === null || ctx === void 0 ? void 0 : ctx.path) || [];
22
- this.id = (9e9 + Math.floor(Math.random() * (1e9)));
22
+ // this.id = (9e9 + Math.floor(Math.random() * (1e9)))
23
+ this.id = ++ID; // (9e9 + Math.floor(Math.random() * (1e5)))
24
+ this.uh = [];
23
25
  }
24
26
  same(peer) {
25
27
  return null == peer ? false : this.id === peer.id;
26
28
  }
27
29
  clone(spec, ctx) {
28
- let cloneCtx = ctx ? ctx.clone({
29
- path: ctx.path.concat(this.path.slice(ctx.path.length))
30
- }) : undefined;
30
+ let cloneCtx;
31
+ if (ctx) {
32
+ let cut = this.path.indexOf('&');
33
+ cut = -1 < cut ? cut + 1 : ctx.path.length;
34
+ cloneCtx = ctx.clone({
35
+ path: ctx.path.concat(this.path.slice(cut))
36
+ });
37
+ }
31
38
  let out = new this
32
39
  .constructor(spec || { peg: this.peg }, cloneCtx);
33
40
  if (null == cloneCtx) {
@@ -1 +1 @@
1
- {"version":3,"file":"ValBase.js","sourceRoot":"","sources":["../../../lib/val/ValBase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAezD,kCAEgB;AAKhB,MAAM,OAAO;IAiBX,aAAa;IAGb,YAAY,IAAa,EAAE,GAAa;QAnBxC,UAAK,GAAG,IAAI,CAAA;QAGZ,SAAI,GAAW,CAAC,CAAA;QAChB,SAAI,GAAa,EAAE,CAAA;QACnB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,EAAE,CAAA;QAEhB,QAAG,GAAY,KAAK,CAAA;QAEpB,uBAAuB;QACvB,QAAG,GAAQ,SAAS,CAAA;QAEpB,8CAA8C;QAC9C,QAAG,GAAU,EAAE,CAAA;QAKb,IAAI,CAAC,GAAG,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC;IAGD,IAAI,CAAC,IAAS;QACZ,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;IACnD,CAAC;IAGD,KAAK,CAAC,IAAc,EAAE,GAAa;QACjC,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACxD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAEd,IAAI,GAAG,GAAG,IAAK,IAAY;aACxB,WAAW,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QAEnD,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,KAAU,EAAE,IAAc,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IACtD,IAAI,KAAK,KAAa,OAAO,EAAE,CAAA,CAAC,CAAC;IACjC,GAAG,CAAC,IAAc,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;CAEzC;AAGC,0BAAO"}
1
+ {"version":3,"file":"ValBase.js","sourceRoot":"","sources":["../../../lib/val/ValBase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAezD,kCAEgB;AAGhB,IAAI,EAAE,GAAG,CAAC,CAAA;AAGV,MAAM,OAAO;IAsBX,YAAY,IAAa,EAAE,GAAa;QArBxC,UAAK,GAAG,IAAI,CAAA;QAGZ,SAAI,GAAW,CAAC,CAAA;QAChB,SAAI,GAAa,EAAE,CAAA;QACnB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,EAAE,CAAA;QAEhB,QAAG,GAAY,KAAK,CAAA;QAEpB,uBAAuB;QACvB,QAAG,GAAQ,SAAS,CAAA;QAEpB,8CAA8C;QAC9C,QAAG,GAAU,EAAE,CAAA;QAOb,IAAI,CAAC,GAAG,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KAAI,EAAE,CAAA;QAC3B,sDAAsD;QACtD,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAA,CAAC,4CAA4C;QAC3D,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAGD,IAAI,CAAC,IAAS;QACZ,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;IACnD,CAAC;IAGD,KAAK,CAAC,IAAc,EAAE,GAAa;QACjC,IAAI,QAAQ,CAAA;QAEZ,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAChC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;YAC1C,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;gBACnB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC5C,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,GAAG,GAAG,IAAK,IAAY;aACxB,WAAW,CAAC,IAAI,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QAEnD,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,KAAU,EAAE,IAAc,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;IACtD,IAAI,KAAK,KAAa,OAAO,EAAE,CAAA,CAAC,CAAC;IACjC,GAAG,CAAC,IAAc,IAAS,OAAO,IAAI,CAAA,CAAC,CAAC;CAEzC;AAGC,0BAAO"}
package/lib/err.ts CHANGED
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
1
+ /* Copyright (c) 2021-2024 Richard Rodger, MIT License */
2
2
 
3
3
 
4
4
  import { Nil } from './val/Nil'
@@ -7,6 +7,8 @@ import { Nil } from './val/Nil'
7
7
  // TODO: move to utility?
8
8
  function descErr<NILS extends Nil | Nil[]>(err: NILS | any): any {
9
9
  if (err?.isNil) {
10
+ // console.trace()
11
+
10
12
  if (null == err.msg || '' === err.msg) {
11
13
  let v1: any = err.primary
12
14
  let v2: any = err.secondary
package/lib/lang.ts CHANGED
@@ -53,7 +53,8 @@ import { Nil } from './val/Nil'
53
53
  import { PrefVal } from './val/PrefVal'
54
54
  import { RefVal } from './val/RefVal'
55
55
  import { VarVal } from './val/VarVal'
56
- import { ValBase } from './val/ValBase'
56
+ import { PlusVal } from './val/PlusVal'
57
+
57
58
 
58
59
 
59
60
  import {
@@ -190,13 +191,17 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
190
191
  }
191
192
  return addpath(new VarVal({ peg: terms[0] }), r.k.path)
192
193
  },
194
+
195
+ 'plus-infix': (r: Rule, _op: Op, terms: any) => {
196
+ return addpath(new PlusVal({ peg: [terms[0], terms[1]] }), r.k.path)
197
+ },
198
+
193
199
  }
194
200
 
195
201
 
196
202
  jsonic
197
203
  .use(Expr, {
198
204
  op: {
199
- // PPP
200
205
  // disjunct > conjunct: c & b | a -> c & (b | a)
201
206
  'conjunct': {
202
207
  infix: true, src: '&', left: 14_000_000, right: 15_000_000
@@ -205,6 +210,13 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
205
210
  infix: true, src: '|', left: 16_000_000, right: 17_000_000
206
211
  },
207
212
 
213
+ 'plus-infix': {
214
+ src: '+',
215
+ infix: true,
216
+ left: 20_000_000,
217
+ right: 21_000_000,
218
+ },
219
+
208
220
  'dollar-prefix': {
209
221
  src: '$',
210
222
  prefix: true,
@@ -217,6 +229,7 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
217
229
  left: 25_000_000,
218
230
  right: 24_000_000,
219
231
  },
232
+
220
233
  'dot-prefix': {
221
234
  src: '.',
222
235
  prefix: true,
@@ -236,7 +249,6 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
236
249
  })
237
250
 
238
251
 
239
- // PPP
240
252
  let CJ = jsonic.token['#E&']
241
253
  let CL = jsonic.token.CL
242
254
 
@@ -244,7 +256,6 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
244
256
  jsonic.rule('val', (rs: RuleSpec) => {
245
257
 
246
258
  rs
247
- // PPP
248
259
  .open([{ s: [CJ, CL], p: 'map', b: 2, n: { pk: 1 }, g: 'spread' }])
249
260
 
250
261
  .bc((r: Rule, ctx: Context) => {
@@ -280,13 +291,14 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
280
291
  return undefined
281
292
  })
282
293
 
294
+ .close([{ s: [CJ, CL], b: 2, g: 'spread,json,more' }])
295
+
283
296
  return rs
284
297
  })
285
298
 
286
299
 
287
300
  jsonic.rule('map', (rs: RuleSpec) => {
288
301
  rs
289
- // PPP
290
302
  .open([{ s: [CJ, CL], p: 'pair', b: 2, g: 'spread' }])
291
303
 
292
304
  .bc((r: Rule) => {
@@ -311,6 +323,8 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
311
323
  return undefined
312
324
  })
313
325
 
326
+ .close([{ s: [CJ, CL], b: 2, g: 'spread,json,more' }])
327
+
314
328
  return rs
315
329
  })
316
330
 
@@ -328,7 +342,6 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
328
342
 
329
343
  jsonic.rule('pair', (rs: RuleSpec) => {
330
344
  rs
331
- // PPP
332
345
  .open([{
333
346
  s: [CJ, CL], p: 'val',
334
347
  u: { spread: true },
@@ -356,6 +369,12 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
356
369
  return undefined
357
370
  })
358
371
 
372
+ .close([
373
+ { s: [CJ, CL], c: (r) => r.lte('dmap', 1), r: 'pair', b: 2, g: 'spread,json,pair' },
374
+ { s: [CJ, CL], b: 2, g: 'spread,json,more' }
375
+ ])
376
+
377
+
359
378
  return rs
360
379
  })
361
380
 
@@ -377,6 +396,8 @@ let AontuJsonic: Plugin = function aontu(jsonic: Jsonic) {
377
396
  return undefined
378
397
  })
379
398
 
399
+ .close([{ s: [CJ, CL], r: 'elem', b: 2, g: 'spread,json,more' }])
400
+
380
401
  return rs
381
402
  })
382
403
 
@@ -452,8 +473,10 @@ class Lang {
452
473
  src: '',
453
474
  print: -1,
454
475
  debug: false,
476
+ trace: false,
455
477
  }
456
478
 
479
+
457
480
  constructor(options?: Partial<Options>) {
458
481
  this.options = Object.assign({}, this.options, options) as Options
459
482
 
@@ -462,7 +485,9 @@ class Lang {
462
485
  this.jsonic = Jsonic.make()
463
486
 
464
487
  if (this.options.debug) {
465
- this.jsonic.use(Debug, { trace: true })
488
+ this.jsonic.use(Debug, {
489
+ trace: this.options.trace
490
+ })
466
491
  }
467
492
 
468
493
  this.jsonic
@@ -473,6 +498,7 @@ class Lang {
473
498
  })
474
499
  }
475
500
 
501
+
476
502
  parse(src: string, opts?: any): Val {
477
503
  // JSONIC-UPDATE - check meta
478
504
  let jm: any = {
package/lib/type.ts CHANGED
@@ -20,6 +20,7 @@ type Options = {
20
20
  base?: string // Base path for resolver
21
21
  path?: string // Path of entry file
22
22
  debug?: boolean
23
+ trace?: boolean
23
24
  }
24
25
 
25
26
 
package/lib/unify.ts CHANGED
@@ -122,6 +122,8 @@ class Unify {
122
122
  ctx.cc = this.cc
123
123
  res = unite(ctx, res, TOP)
124
124
  ctx = ctx.clone({ root: res })
125
+
126
+ // console.log('==============', this.cc)
125
127
  }
126
128
  }
127
129
 
package/lib/val/MapVal.ts CHANGED
@@ -55,14 +55,13 @@ class MapVal extends ValBase {
55
55
  throw new Error('MapVal spec.peg undefined')
56
56
  }
57
57
 
58
-
59
58
  let spread = (this.peg as any)[MapVal.SPREAD]
60
59
  delete (this.peg as any)[MapVal.SPREAD]
61
60
 
62
- // console.log('MC', this.id, peg, spread)
63
-
64
61
  if (spread) {
65
62
  if ('&' === spread.o) {
63
+ // console.log('MapVal.ctor', this.id, this.path.join('.'),
64
+ // 'SPREAD', spread.v[0] && spread.v[0].id)
66
65
  // TODO: handle existing spread!
67
66
  this.spread.cj =
68
67
  Array.isArray(spread.v) ?
@@ -70,8 +69,6 @@ class MapVal extends ValBase {
70
69
  new ConjunctVal({ peg: spread.v }, ctx) :
71
70
  spread.v[0] :
72
71
  spread.v
73
- // let tmv = Array.isArray(spread.v) ? spread.v : [spread.v]
74
- // this.spread.cj = new ConjunctVal({ peg: tmv }, ctx)
75
72
  }
76
73
  }
77
74
  }
@@ -82,6 +79,13 @@ class MapVal extends ValBase {
82
79
  unify(peer: Val, ctx: Context): Val {
83
80
  // let mark = Math.random()
84
81
 
82
+ // console.log(
83
+ // 'MapVal.unify',
84
+ // this.id, '=' + this.uh, this.path.join('.'),
85
+ // (this.spread.cj ?
86
+ // 'spread:' + this.spread.cj.id + ':' + this.spread.cj.path.join('.') : ''),
87
+ // peer.constructor.name, peer.id, peer.path.join('.'))
88
+
85
89
  let done: boolean = true
86
90
  let out: MapVal = TOP === peer ? this : new MapVal({ peg: {} }, ctx)
87
91
 
@@ -128,9 +132,6 @@ class MapVal extends ValBase {
128
132
  let upeer: MapVal = (unite(ctx, peer, undefined, 'map-peer-map') as MapVal)
129
133
 
130
134
  for (let peerkey in upeer.peg) {
131
- // console.log('M1', this.id, mark, Object.keys(this.peg).join('~'),
132
- // 'pk=', peerkey)
133
-
134
135
  let peerchild = upeer.peg[peerkey]
135
136
  let child = out.peg[peerkey]
136
137
 
@@ -142,22 +143,35 @@ class MapVal extends ValBase {
142
143
 
143
144
  if (this.spread.cj) {
144
145
  let key_ctx = ctx.descend(peerkey)
146
+ // console.log('KEY_CTX', peerkey, key_ctx)
147
+
145
148
  let key_spread_cj = spread_cj.clone(null, key_ctx)
146
149
 
150
+ // console.log('MapVal.unify.spread', this.id, '=' + this.uh, this.path.join('.'),
151
+ // key_spread_cj.id, key_spread_cj.path.join('.'))
152
+
153
+
154
+ // console.log('ORIG')
155
+ // console.dir(out.peg[peerkey], { depth: null })
156
+ // console.log('SPREAD')
157
+ // console.dir(this.spread.cj, { depth: null })
158
+
147
159
  oval = out.peg[peerkey] =
148
- // new ConjunctVal({ peg: [out.peg[peerkey], key_spread_cj] }, key_ctx)
149
- // done = false
150
160
  unite(key_ctx, out.peg[peerkey], key_spread_cj)
161
+
162
+ // console.log('OVAL')
163
+ // console.dir(oval, { depth: null })
151
164
  }
152
- // else {
165
+
153
166
  done = (done && DONE === oval.done)
154
- // }
155
167
  }
156
168
  }
157
169
  else if (TOP !== peer) {
158
170
  return Nil.make(ctx, 'map', this, peer)
159
171
  }
160
172
 
173
+ out.uh.push(peer.id)
174
+
161
175
  out.done = done ? DONE : out.done
162
176
  return out
163
177
  }
@@ -0,0 +1,159 @@
1
+ /* Copyright (c) 2024 Richard Rodger, MIT License */
2
+
3
+
4
+ import type {
5
+ Val,
6
+ ValSpec,
7
+ } from '../type'
8
+
9
+ import {
10
+ DONE,
11
+ } from '../type'
12
+
13
+ import {
14
+ descErr
15
+ } from '../err'
16
+
17
+ import {
18
+ Context,
19
+ } from '../unify'
20
+
21
+ import {
22
+ unite
23
+ } from '../op/op'
24
+
25
+ import {
26
+ TOP,
27
+ StringVal,
28
+ } from '../val'
29
+
30
+
31
+ import { ConjunctVal } from '../val/ConjunctVal'
32
+ import { MapVal } from '../val/MapVal'
33
+ import { Nil } from '../val/Nil'
34
+ import { VarVal } from '../val/VarVal'
35
+ import { ValBase } from '../val/ValBase'
36
+
37
+
38
+
39
+
40
+
41
+ class OpVal extends ValBase {
42
+ isOpVal = true
43
+
44
+ constructor(
45
+ spec: {
46
+ peg: any[],
47
+ },
48
+ ctx?: Context
49
+ ) {
50
+ super(spec, ctx)
51
+ this.peg = []
52
+
53
+ for (let pI = 0; pI < spec.peg.length; pI++) {
54
+ this.append(spec.peg[pI])
55
+ }
56
+ }
57
+
58
+
59
+ append(part: any) {
60
+ this.peg.push(part)
61
+ }
62
+
63
+
64
+ unify(peer: Val, ctx: Context): Val {
65
+ let out: Val = this
66
+
67
+ if (this.id !== peer.id) {
68
+ let result: Val | undefined = null == ctx ? this : this.operate(ctx)
69
+
70
+ result = result || this
71
+
72
+ if (null == result && this.canon === peer.canon) {
73
+ out = this
74
+ }
75
+ else if (result instanceof OpVal) {
76
+ if (TOP === peer) {
77
+ out = this
78
+ }
79
+ else if (peer instanceof Nil) {
80
+ out = Nil.make(ctx, 'op[' + this.peg + ']', this, peer)
81
+ }
82
+
83
+ else if (this.canon === peer.canon) {
84
+ out = this
85
+ }
86
+
87
+ else {
88
+ this.done = DONE === this.done ? DONE : this.done + 1
89
+ out = new ConjunctVal({ peg: [this, peer] }, ctx)
90
+ }
91
+ }
92
+ else {
93
+ out = unite(ctx, result, peer, 'op')
94
+ }
95
+
96
+ out.done = DONE === out.done ? DONE : this.done + 1
97
+ }
98
+
99
+ return out
100
+ }
101
+
102
+
103
+ same(peer: Val): boolean {
104
+ return null == peer ? false : this.peg === peer.peg
105
+ }
106
+
107
+
108
+ clone(_spec?: ValSpec, ctx?: Context): Val {
109
+ let out = (super.clone({
110
+ peg: this.peg,
111
+ }, ctx) as OpVal)
112
+ return out
113
+ }
114
+
115
+
116
+ operate(ctx: Context): Val | undefined {
117
+ this.peg = this.peg.map((v: any) => v.isRefVal ? v.unify(TOP, ctx) : v)
118
+ return undefined
119
+ }
120
+
121
+
122
+
123
+ get canon() {
124
+ return ''
125
+ }
126
+
127
+
128
+ gen(ctx?: Context) {
129
+ // Unresolved op cannot be generated, so always an error.
130
+ let nil = Nil.make(
131
+ ctx,
132
+ 'op',
133
+ this,
134
+ undefined
135
+ )
136
+
137
+ // TODO: refactor to use Site
138
+ nil.path = this.path
139
+ nil.url = this.url
140
+ nil.row = this.row
141
+ nil.col = this.col
142
+
143
+ descErr(nil)
144
+
145
+ if (ctx) {
146
+ ctx.err.push(nil)
147
+ }
148
+ else {
149
+ throw new Error(nil.msg)
150
+ }
151
+
152
+ return undefined
153
+ }
154
+ }
155
+
156
+
157
+ export {
158
+ OpVal,
159
+ }