aontu 0.21.1 → 0.23.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.
Files changed (42) hide show
  1. package/aontu.ts +1 -12
  2. package/dist/aontu.js +3 -13
  3. package/dist/aontu.js.map +1 -1
  4. package/dist/aontu.min.js +64 -1
  5. package/dist/aontu.min.js.tmp-browserify-24272745041996834914 +0 -0
  6. package/dist/lib/err.js +3 -3
  7. package/dist/lib/err.js.map +1 -1
  8. package/dist/lib/lang.js +25 -10
  9. package/dist/lib/lang.js.map +1 -1
  10. package/dist/lib/type.d.ts +1 -0
  11. package/dist/lib/type.js.map +1 -1
  12. package/dist/lib/unify.js +1 -0
  13. package/dist/lib/unify.js.map +1 -1
  14. package/dist/lib/utility.js +1 -2
  15. package/dist/lib/utility.js.map +1 -1
  16. package/dist/lib/val/ConjunctVal.js +2 -2
  17. package/dist/lib/val/ConjunctVal.js.map +1 -1
  18. package/dist/lib/val/MapVal.js +18 -9
  19. package/dist/lib/val/MapVal.js.map +1 -1
  20. package/dist/lib/val/OpVal.d.ts +17 -0
  21. package/dist/lib/val/OpVal.js +89 -0
  22. package/dist/lib/val/OpVal.js.map +1 -0
  23. package/dist/lib/val/PlusVal.d.ts +12 -0
  24. package/dist/lib/val/PlusVal.js +32 -0
  25. package/dist/lib/val/PlusVal.js.map +1 -0
  26. package/dist/lib/val/RefVal.js +23 -15
  27. package/dist/lib/val/RefVal.js.map +1 -1
  28. package/dist/lib/val/ValBase.d.ts +1 -0
  29. package/dist/lib/val/ValBase.js +13 -6
  30. package/dist/lib/val/ValBase.js.map +1 -1
  31. package/lib/err.ts +3 -1
  32. package/lib/lang.ts +33 -7
  33. package/lib/type.ts +1 -0
  34. package/lib/unify.ts +2 -0
  35. package/lib/val/MapVal.ts +26 -12
  36. package/lib/val/OpVal.ts +159 -0
  37. package/lib/val/OpVal.ts~ +158 -0
  38. package/lib/val/PlusVal.ts +76 -0
  39. package/lib/val/PlusVal.ts~ +158 -0
  40. package/lib/val/RefVal.ts +33 -17
  41. package/lib/val/ValBase.ts +16 -5
  42. package/package.json +11 -11
@@ -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
+ }
@@ -0,0 +1,158 @@
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) {
117
+ return undefined
118
+ }
119
+
120
+
121
+
122
+ get canon() {
123
+ return ''
124
+ }
125
+
126
+
127
+ gen(ctx?: Context) {
128
+ // Unresolved ref cannot be generated, so always an error.
129
+ let nil = Nil.make(
130
+ ctx,
131
+ 'ref',
132
+ this, // (formatPath(this.peg, this.absolute) as any),
133
+ undefined
134
+ )
135
+
136
+ // TODO: refactor to use Site
137
+ nil.path = this.path
138
+ nil.url = this.url
139
+ nil.row = this.row
140
+ nil.col = this.col
141
+
142
+ descErr(nil)
143
+
144
+ if (ctx) {
145
+ ctx.err.push(nil)
146
+ }
147
+ else {
148
+ throw new Error(nil.msg)
149
+ }
150
+
151
+ return undefined
152
+ }
153
+ }
154
+
155
+
156
+ export {
157
+ OpVal,
158
+ }