aontu 0.12.0 → 0.13.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 (72) hide show
  1. package/aontu.ts +9 -3
  2. package/dist/aontu.d.ts +3 -0
  3. package/dist/aontu.js +7 -2
  4. package/dist/aontu.js.map +1 -1
  5. package/dist/aontu.min.js +1 -1
  6. package/dist/lib/err.js +1 -1
  7. package/dist/lib/err.js.map +1 -1
  8. package/dist/lib/lang.js +80 -32
  9. package/dist/lib/lang.js.map +1 -1
  10. package/dist/lib/op/disjunct.js +2 -2
  11. package/dist/lib/op/disjunct.js.map +1 -1
  12. package/dist/lib/op/op.js +1 -1
  13. package/dist/lib/op/op.js.map +1 -1
  14. package/dist/lib/op/unite.js +36 -6
  15. package/dist/lib/op/unite.js.map +1 -1
  16. package/dist/lib/type.d.ts +10 -8
  17. package/dist/lib/type.js +2 -27
  18. package/dist/lib/type.js.map +1 -1
  19. package/dist/lib/unify.d.ts +7 -4
  20. package/dist/lib/unify.js +17 -28
  21. package/dist/lib/unify.js.map +1 -1
  22. package/dist/lib/val/ConjunctVal.d.ts +7 -4
  23. package/dist/lib/val/ConjunctVal.js +62 -31
  24. package/dist/lib/val/ConjunctVal.js.map +1 -1
  25. package/dist/lib/val/DisjunctVal.d.ts +5 -2
  26. package/dist/lib/val/DisjunctVal.js +15 -7
  27. package/dist/lib/val/DisjunctVal.js.map +1 -1
  28. package/dist/lib/val/ListVal.d.ts +5 -2
  29. package/dist/lib/val/ListVal.js +39 -19
  30. package/dist/lib/val/ListVal.js.map +1 -1
  31. package/dist/lib/val/MapVal.d.ts +5 -2
  32. package/dist/lib/val/MapVal.js +59 -30
  33. package/dist/lib/val/MapVal.js.map +1 -1
  34. package/dist/lib/val/Nil.d.ts +3 -2
  35. package/dist/lib/val/Nil.js +19 -5
  36. package/dist/lib/val/Nil.js.map +1 -1
  37. package/dist/lib/val/PrefVal.d.ts +6 -2
  38. package/dist/lib/val/PrefVal.js +18 -8
  39. package/dist/lib/val/PrefVal.js.map +1 -1
  40. package/dist/lib/val/RefVal.d.ts +11 -5
  41. package/dist/lib/val/RefVal.js +187 -39
  42. package/dist/lib/val/RefVal.js.map +1 -1
  43. package/dist/lib/val/ValBase.d.ts +10 -9
  44. package/dist/lib/val/ValBase.js +25 -6
  45. package/dist/lib/val/ValBase.js.map +1 -1
  46. package/dist/lib/val/VarVal.d.ts +14 -0
  47. package/dist/lib/val/VarVal.js +68 -0
  48. package/dist/lib/val/VarVal.js.map +1 -0
  49. package/dist/lib/val.d.ts +42 -8
  50. package/dist/lib/val.js +64 -18
  51. package/dist/lib/val.js.map +1 -1
  52. package/lib/err.ts +1 -1
  53. package/lib/lang.ts +91 -38
  54. package/lib/op/disjunct.ts +10 -3
  55. package/lib/op/op.ts +1 -1
  56. package/lib/op/unite.ts +44 -4
  57. package/lib/type.ts +12 -40
  58. package/lib/unify.ts +70 -28
  59. package/lib/val/ConjunctVal.ts +83 -46
  60. package/lib/val/DisjunctVal.ts +35 -12
  61. package/lib/val/ListVal.ts +57 -22
  62. package/lib/val/MapVal.ts +82 -51
  63. package/lib/val/Nil.ts +29 -9
  64. package/lib/val/PrefVal.ts +38 -14
  65. package/lib/val/RefVal.ts +254 -55
  66. package/lib/val/ValBase.ts +33 -28
  67. package/lib/val/VarVal.ts +139 -0
  68. package/lib/val.ts +116 -25
  69. package/package.json +8 -8
  70. package/dist/lib/common.d.ts +0 -8
  71. package/dist/lib/common.js +0 -3
  72. package/dist/lib/common.js.map +0 -1
package/dist/lib/err.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.descErr = void 0;
5
5
  const Nil_1 = require("./val/Nil");
@@ -1 +1 @@
1
- {"version":3,"file":"err.js","sourceRoot":"","sources":["../../lib/err.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,mCAA+B;AAG/B,SAAS,OAAO,CAA2B,GAAS;;IAClD,IAAI,GAAG,YAAY,SAAG,EAAE;QACtB,IAAI,EAAE,GAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;QAC/B,IAAI,EAAE,GAAQ,GAAG,CAAC,SAAS,IAAI,EAAE,CAAA;QACjC,GAAG,CAAC,GAAG,GAAG,cAAc;YACtB,CAAC,CAAC,IAAG,MAAA,GAAG,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK;YAE9C,OAAO;YACP,CAAC,CAAC,IAAG,MAAA,EAAE,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;YACzC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;YAE9D,OAAO;YACP,CAAC,CAAC,IAAG,MAAA,EAAE,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;YACzC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;YAE9D,EAAE,CAAA;QACJ,OAAO,GAAG,CAAA;KACX;SACI;QACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;KAChC;AACH,CAAC;AAIC,0BAAO"}
1
+ {"version":3,"file":"err.js","sourceRoot":"","sources":["../../lib/err.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,mCAA+B;AAG/B,SAAS,OAAO,CAA2B,GAAS;;IAClD,IAAI,GAAG,YAAY,SAAG,EAAE;QACtB,IAAI,EAAE,GAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;QAC/B,IAAI,EAAE,GAAQ,GAAG,CAAC,SAAS,IAAI,EAAE,CAAA;QACjC,GAAG,CAAC,GAAG,GAAG,cAAc;YACtB,CAAC,CAAC,IAAG,MAAA,GAAG,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK;YAE9C,OAAO;YACP,CAAC,CAAC,IAAG,MAAA,EAAE,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;YACzC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;YAE9D,OAAO;YACP,CAAC,CAAC,IAAG,MAAA,EAAE,CAAC,IAAI,0CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG;YACzC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI;YAE9D,EAAE,CAAA;QACJ,OAAO,GAAG,CAAA;KACX;SACI;QACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;KAChC;AACH,CAAC;AAIC,0BAAO"}
package/dist/lib/lang.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Site = exports.Lang = void 0;
5
5
  const jsonic_next_1 = require("@jsonic/jsonic-next");
@@ -10,14 +10,14 @@ const pkg_1 = require("@jsonic/multisource/dist/resolver/pkg");
10
10
  const mem_1 = require("@jsonic/multisource/dist/resolver/mem");
11
11
  const expr_1 = require("@jsonic/expr");
12
12
  const path_1 = require("@jsonic/path");
13
- const type_1 = require("./type");
14
- const ConjunctVal_1 = require("./val/ConjunctVal");
15
13
  const DisjunctVal_1 = require("./val/DisjunctVal");
16
- const MapVal_1 = require("./val/MapVal");
14
+ const ConjunctVal_1 = require("./val/ConjunctVal");
17
15
  const ListVal_1 = require("./val/ListVal");
16
+ const MapVal_1 = require("./val/MapVal");
17
+ const Nil_1 = require("./val/Nil");
18
18
  const PrefVal_1 = require("./val/PrefVal");
19
19
  const RefVal_1 = require("./val/RefVal");
20
- const Nil_1 = require("./val/Nil");
20
+ const VarVal_1 = require("./val/VarVal");
21
21
  const val_1 = require("./val");
22
22
  class Site {
23
23
  // static NONE = new Site(TOP)
@@ -45,22 +45,22 @@ let AontuJsonic = function aontu(jsonic) {
45
45
  // (except for functions).
46
46
  // TODO: jsonic should be able to pass context into these
47
47
  'string': {
48
- val: (r) => addpath(new val_1.ScalarTypeVal(String), r.keep.path)
48
+ val: (r) => addpath(new val_1.ScalarTypeVal({ peg: String }), r.keep.path)
49
49
  },
50
50
  'number': {
51
- val: (r) => addpath(new val_1.ScalarTypeVal(Number), r.keep.path)
51
+ val: (r) => addpath(new val_1.ScalarTypeVal({ peg: Number }), r.keep.path)
52
52
  },
53
53
  'integer': {
54
- val: (r) => addpath(new val_1.ScalarTypeVal(val_1.Integer), r.keep.path)
54
+ val: (r) => addpath(new val_1.ScalarTypeVal({ peg: val_1.Integer }), r.keep.path)
55
55
  },
56
56
  'boolean': {
57
- val: (r) => addpath(new val_1.ScalarTypeVal(Boolean), r.keep.path)
57
+ val: (r) => addpath(new val_1.ScalarTypeVal({ peg: Boolean }), r.keep.path)
58
58
  },
59
59
  'nil': {
60
60
  val: (r) => addpath(new Nil_1.Nil('literal'), r.keep.path)
61
61
  },
62
62
  // TODO: FIX: need a TOP instance to hold path
63
- 'top': { val: () => type_1.TOP },
63
+ 'top': { val: () => val_1.TOP },
64
64
  }
65
65
  },
66
66
  map: {
@@ -68,7 +68,22 @@ let AontuJsonic = function aontu(jsonic) {
68
68
  let pval = prev;
69
69
  let cval = curr;
70
70
  if ((pval === null || pval === void 0 ? void 0 : pval.isVal) && (cval === null || cval === void 0 ? void 0 : cval.isVal)) {
71
- return addpath(new ConjunctVal_1.ConjunctVal([pval, cval]), prev.path);
71
+ // TODO: test multi element conjuncts work
72
+ if (pval instanceof ConjunctVal_1.ConjunctVal && cval instanceof ConjunctVal_1.ConjunctVal) {
73
+ pval.append(cval);
74
+ return pval;
75
+ }
76
+ else if (pval instanceof ConjunctVal_1.ConjunctVal) {
77
+ pval.append(cval);
78
+ return pval;
79
+ }
80
+ // else if (cval instanceof ConjunctVal) {
81
+ // cval.append(pval)
82
+ // return cval
83
+ // }
84
+ else {
85
+ return addpath(new ConjunctVal_1.ConjunctVal({ peg: [pval, cval] }), prev.path);
86
+ }
72
87
  }
73
88
  // Handle defered conjuncts, where MapVal does not yet
74
89
  // exist, by creating ConjunctVal later.
@@ -81,38 +96,56 @@ let AontuJsonic = function aontu(jsonic) {
81
96
  }
82
97
  });
83
98
  let opmap = {
84
- 'conjunct-infix': (r, _op, terms) => addpath(new ConjunctVal_1.ConjunctVal(terms), r.keep.path),
85
- 'disjunct-infix': (r, _op, terms) => addpath(new DisjunctVal_1.DisjunctVal(terms), r.keep.path),
86
- 'dot-prefix': (r, _op, terms) => addpath(new RefVal_1.RefVal(terms, true), r.keep.path),
87
- 'dot-infix': (r, _op, terms) => addpath(new RefVal_1.RefVal(terms), r.keep.path),
88
- 'star-prefix': (r, _op, terms) => addpath(new PrefVal_1.PrefVal(terms[0]), r.keep.path),
99
+ 'conjunct-infix': (r, _op, terms) => addpath(new ConjunctVal_1.ConjunctVal({ peg: terms }), r.keep.path),
100
+ 'disjunct-infix': (r, _op, terms) => addpath(new DisjunctVal_1.DisjunctVal({ peg: terms }), r.keep.path),
101
+ 'dot-prefix': (r, _op, terms) => {
102
+ // console.log('DP', terms)
103
+ return addpath(new RefVal_1.RefVal({ peg: terms, prefix: true }), r.keep.path);
104
+ },
105
+ 'dot-infix': (r, _op, terms) => {
106
+ // console.log('DI', terms)
107
+ return addpath(new RefVal_1.RefVal({ peg: terms }), r.keep.path);
108
+ },
109
+ 'star-prefix': (r, _op, terms) => addpath(new PrefVal_1.PrefVal({ peg: terms[0] }), r.keep.path),
110
+ 'dollar-prefix': (r, _op, terms) => {
111
+ // $.a.b absolute path
112
+ if (terms[0] instanceof RefVal_1.RefVal) {
113
+ terms[0].absolute = true;
114
+ return terms[0];
115
+ }
116
+ return addpath(new VarVal_1.VarVal({ peg: terms[0] }), r.keep.path);
117
+ },
89
118
  };
90
119
  jsonic
91
120
  .use(expr_1.Expr, {
92
121
  op: {
93
122
  // disjunct > conjunct: c & b|a -> c & (b|a)
94
123
  'conjunct': {
95
- infix: true, src: '&', left: 14000, right: 15000
124
+ infix: true, src: '&', left: 14000000, right: 15000000
96
125
  },
97
126
  'disjunct': {
98
- // infix: true, src: '|', left: 14000, right: 15000
99
- infix: true, src: '|', left: 16000, right: 17000
127
+ infix: true, src: '|', left: 16000000, right: 17000000
128
+ },
129
+ 'dollar-prefix': {
130
+ src: '$',
131
+ prefix: true,
132
+ right: 31000000,
100
133
  },
101
134
  'dot-infix': {
102
135
  src: '.',
103
136
  infix: true,
104
- left: 15000000,
105
- right: 14000000,
137
+ left: 25000000,
138
+ right: 24000000,
106
139
  },
107
140
  'dot-prefix': {
108
141
  src: '.',
109
142
  prefix: true,
110
- right: 14000000,
143
+ right: 24000000,
111
144
  },
112
145
  'star': {
113
146
  src: '*',
114
147
  prefix: true,
115
- right: 14000000,
148
+ right: 24000000,
116
149
  },
117
150
  },
118
151
  evaluate: (r, op, terms) => {
@@ -129,18 +162,18 @@ let AontuJsonic = function aontu(jsonic) {
129
162
  let valnode = r.node;
130
163
  let valtype = typeof valnode;
131
164
  if ('string' === valtype) {
132
- valnode = addpath(new val_1.StringVal(r.node), r.keep.path);
165
+ valnode = addpath(new val_1.StringVal({ peg: r.node }), r.keep.path);
133
166
  }
134
167
  else if ('number' === valtype) {
135
168
  if (Number.isInteger(r.node)) {
136
- valnode = addpath(new val_1.IntegerVal(r.node), r.keep.path);
169
+ valnode = addpath(new val_1.IntegerVal({ peg: r.node }), r.keep.path);
137
170
  }
138
171
  else {
139
- valnode = addpath(new val_1.NumberVal(r.node), r.keep.path);
172
+ valnode = addpath(new val_1.NumberVal({ peg: r.node }), r.keep.path);
140
173
  }
141
174
  }
142
175
  else if ('boolean' === valtype) {
143
- valnode = addpath(new val_1.BooleanVal(r.node), r.keep.path);
176
+ valnode = addpath(new val_1.BooleanVal({ peg: r.node }), r.keep.path);
144
177
  }
145
178
  let st = r.o0;
146
179
  valnode.row = st.rI;
@@ -165,11 +198,13 @@ let AontuJsonic = function aontu(jsonic) {
165
198
  if (mo.___merge) {
166
199
  let mop = { ...mo };
167
200
  delete mop.___merge;
168
- let mopv = new MapVal_1.MapVal(mop);
169
- r.node = addpath(new ConjunctVal_1.ConjunctVal([mopv, ...mo.___merge]), r.keep.path);
201
+ // TODO: needs addpath?
202
+ let mopv = new MapVal_1.MapVal({ peg: mop });
203
+ r.node =
204
+ addpath(new ConjunctVal_1.ConjunctVal({ peg: [mopv, ...mo.___merge] }), r.keep.path);
170
205
  }
171
206
  else {
172
- r.node = addpath(new MapVal_1.MapVal(mo), r.keep.path);
207
+ r.node = addpath(new MapVal_1.MapVal({ peg: mo }), r.keep.path);
173
208
  }
174
209
  // return out
175
210
  return undefined;
@@ -181,7 +216,7 @@ let AontuJsonic = function aontu(jsonic) {
181
216
  // rs.def.bc = function(rule: Rule, ctx: Context) {
182
217
  // let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined
183
218
  rs.bc((r) => {
184
- r.node = addpath(new ListVal_1.ListVal(r.node), r.keep.path);
219
+ r.node = addpath(new ListVal_1.ListVal({ peg: r.node }), r.keep.path);
185
220
  // return out
186
221
  return undefined;
187
222
  });
@@ -189,7 +224,19 @@ let AontuJsonic = function aontu(jsonic) {
189
224
  });
190
225
  jsonic.rule('pair', (rs) => {
191
226
  rs
192
- .open([{ s: [CJ, CL], p: 'val', u: { spread: true }, g: 'spread' }])
227
+ .open([{
228
+ s: [CJ, CL], p: 'val',
229
+ // pair:true not set, so key ignored by normal pair close
230
+ u: { spread: true },
231
+ g: 'spread'
232
+ }])
233
+ // NOTE: manually adjust path - @jsonic/path ignores as not pair:true
234
+ .ao((r) => {
235
+ if (0 < r.d && r.use.spread) {
236
+ r.child.keep.path = [...r.keep.path, '&'];
237
+ r.child.keep.key = '&';
238
+ }
239
+ })
193
240
  .bc((rule) => {
194
241
  // TRAVERSE PARENTS TO GET PATH
195
242
  if (rule.use.spread) {
@@ -238,6 +285,7 @@ function makeModelResolver(options) {
238
285
  });
239
286
  return function ModelResolver(spec, popts, rule, ctx, jsonic) {
240
287
  let path = 'string' === typeof spec ? spec : spec === null || spec === void 0 ? void 0 : spec.peg;
288
+ // console.log('MR', path, ctx.meta)
241
289
  let search = [];
242
290
  let res = memResolver(path, popts, rule, ctx, jsonic);
243
291
  res.path = path;
@@ -1 +1 @@
1
- {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../lib/lang.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lang.js","sourceRoot":"","sources":["../../lib/lang.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.disjunct = void 0;
5
5
  const DisjunctVal_1 = require("../val/DisjunctVal");
@@ -9,7 +9,7 @@ const disjunct = (ctx, a, b) => {
9
9
  let origsites = [];
10
10
  // origsites.push(append(peers, a))
11
11
  // origsites.push(append(peers, b))
12
- let out = new DisjunctVal_1.DisjunctVal(peers, ctx, origsites);
12
+ let out = new DisjunctVal_1.DisjunctVal({ peg: peers }, ctx, origsites);
13
13
  return out;
14
14
  };
15
15
  exports.disjunct = disjunct;
@@ -1 +1 @@
1
- {"version":3,"file":"disjunct.js","sourceRoot":"","sources":["../../../lib/op/disjunct.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAOpD,oDAAgD;AAKhD,4CAAwC;AAGxC,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,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAChD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAqBC,4BAAQ;AAjBV,SAAS,MAAM,CAAC,KAAY,EAAE,CAAO;IACnC,iCAAiC;IAEjC,IAAI,CAAC,YAAY,yBAAW,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACpB,oBAAoB;KACrB;IAED,mEAAmE;SAC9D,IAAI,CAAC,YAAY,iBAAO,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IAED,kBAAkB;AACpB,CAAC"}
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;AAqBC,4BAAQ;AAjBV,SAAS,MAAM,CAAC,KAAY,EAAE,CAAO;IACnC,iCAAiC;IAEjC,IAAI,CAAC,YAAY,yBAAW,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACpB,oBAAoB;KACrB;IAED,mEAAmE;SAC9D,IAAI,CAAC,YAAY,iBAAO,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IAED,kBAAkB;AACpB,CAAC"}
package/dist/lib/op/op.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License. */
2
+ /* Copyright (c) 2021-2023 Richard Rodger, MIT License. */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.unite = exports.disjunct = void 0;
5
5
  const disjunct_1 = require("./disjunct");
@@ -1 +1 @@
1
- {"version":3,"file":"op.js","sourceRoot":"","sources":["../../../lib/op/op.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAMrD,yCAAqC;AASnC,yFATO,mBAAQ,OASP;AARV,mCAA+B;AAS7B,sFATO,aAAK,OASP"}
1
+ {"version":3,"file":"op.js","sourceRoot":"","sources":["../../../lib/op/op.ts"],"names":[],"mappings":";AAAA,0DAA0D;;;AAM1D,yCAAqC;AASnC,yFATO,mBAAQ,OASP;AARV,mCAA+B;AAS7B,sFATO,aAAK,OASP"}
@@ -1,38 +1,46 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.unite = void 0;
5
5
  const type_1 = require("../type");
6
6
  const ConjunctVal_1 = require("../val/ConjunctVal");
7
7
  const DisjunctVal_1 = require("../val/DisjunctVal");
8
+ const Nil_1 = require("../val/Nil");
8
9
  const PrefVal_1 = require("../val/PrefVal");
9
10
  const RefVal_1 = require("../val/RefVal");
10
- const Nil_1 = require("../val/Nil");
11
+ const val_1 = require("../val");
12
+ let uc = 0;
11
13
  // Vals should only have to unify downwards (in .unify) over Vals they understand.
12
14
  // and for complex Vals, TOP, which means self unify if not yet done
13
15
  const unite = (ctx, a, b, whence) => {
14
16
  let out = a;
17
+ let why = 'u';
15
18
  // console.log('AA OP unite IN', a?.canon, b?.canon,
16
19
  // 'W', whence,
17
20
  // 'E', 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
18
- if (b && (type_1.TOP === a || !a)) {
21
+ if (b && (val_1.TOP === a || !a)) {
19
22
  //console.log('Utb', b.canon)
20
23
  out = b;
24
+ why = 'b';
21
25
  }
22
- else if (a && (type_1.TOP === b || !b)) {
26
+ else if (a && (val_1.TOP === b || !b)) {
23
27
  //console.log('Uta', a.canon)
24
28
  out = a;
29
+ why = 'a';
25
30
  }
26
- else if (a && b && type_1.TOP !== b) {
31
+ else if (a && b && val_1.TOP !== b) {
27
32
  if (a instanceof Nil_1.Nil) {
28
33
  out = update(a, b);
34
+ why = 'an';
29
35
  }
30
36
  else if (b instanceof Nil_1.Nil) {
31
37
  out = update(b, a);
38
+ why = 'bn';
32
39
  }
33
40
  else if (a instanceof ConjunctVal_1.ConjunctVal) {
34
41
  // console.log('Q', a.canon, b.canon)
35
42
  out = a.unify(b, ctx);
43
+ why = 'acj';
36
44
  }
37
45
  else if (b instanceof ConjunctVal_1.ConjunctVal ||
38
46
  b instanceof DisjunctVal_1.DisjunctVal ||
@@ -42,23 +50,45 @@ const unite = (ctx, a, b, whence) => {
42
50
  // return b.unify(a, ctx)
43
51
  out = b.unify(a, ctx);
44
52
  // console.log('UO', out.canon)
53
+ why = 'bv';
45
54
  }
46
55
  // Exactly equal scalars.
47
56
  else if (a.constructor === b.constructor && a.peg === b.peg) {
48
57
  out = update(a, b);
58
+ why = 'up';
49
59
  }
50
60
  else {
51
61
  out = a.unify(b, ctx);
62
+ why = 'ab';
52
63
  }
53
64
  }
54
65
  if (!out || !out.unify) {
55
66
  out = Nil_1.Nil.make(ctx, 'unite', a, b);
67
+ why += 'N';
56
68
  }
57
69
  if (type_1.DONE !== out.done) {
58
- out = out.unify(type_1.TOP, ctx);
70
+ out = out.unify(val_1.TOP, ctx);
71
+ why += 'T';
59
72
  }
60
73
  // console.log('AA OP unite OUT', a?.canon, b?.canon, '->', out && out.canon,
61
74
  // 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
75
+ uc++;
76
+ // TODO: KEEP THIS! print in debug mode! push to ctx.log?
77
+ /*
78
+ console.log(
79
+ 'U',
80
+ ('' + ctx.cc).padStart(2),
81
+ ('' + uc).padStart(4),
82
+ (whence || '').substring(0, 16).padEnd(16),
83
+ why.padEnd(6),
84
+ ctx.path.join('.').padEnd(16),
85
+ (a || '').constructor.name.substring(0, 3),
86
+ '&',
87
+ (b || '').constructor.name.substring(0, 3),
88
+ '|',
89
+ ' '.repeat(ctx.path.length),
90
+ a?.canon, '&', b?.canon, '->', out.canon)
91
+ */
62
92
  return out;
63
93
  };
64
94
  exports.unite = unite;
@@ -1 +1 @@
1
- {"version":3,"file":"unite.js","sourceRoot":"","sources":["../../../lib/op/unite.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAKzD,kCAAmC;AAGnC,oDAAgD;AAChD,oDAAgD;AAChD,4CAAwC;AACxC,0CAAsC;AACtC,oCAAgC;AAQhC,kFAAkF;AAClF,oEAAoE;AACpE,MAAM,KAAK,GAAc,CAAC,GAAY,EAAE,CAAO,EAAE,CAAO,EAAE,MAAe,EAAE,EAAE;IAC3E,IAAI,GAAG,GAAG,CAAC,CAAA;IAEX,qDAAqD;IACrD,iBAAiB;IACjB,uEAAuE;IAGvE,IAAI,CAAC,IAAI,CAAC,UAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC1B,6BAA6B;QAC7B,GAAG,GAAG,CAAC,CAAA;KACR;SAEI,IAAI,CAAC,IAAI,CAAC,UAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC/B,6BAA6B;QAC7B,GAAG,GAAG,CAAC,CAAA;KACR;SAEI,IAAI,CAAC,IAAI,CAAC,IAAI,UAAG,KAAK,CAAC,EAAE;QAC5B,IAAI,CAAC,YAAY,SAAG,EAAE;YACpB,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;SACnB;aACI,IAAI,CAAC,YAAY,SAAG,EAAE;YACzB,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;SACnB;aACI,IAAI,CAAC,YAAY,yBAAW,EAAE;YACjC,qCAAqC;YACrC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;SACtB;aACI,IACH,CAAC,YAAY,yBAAW;YACxB,CAAC,YAAY,yBAAW;YACxB,CAAC,YAAY,eAAM;YACnB,CAAC,YAAY,iBAAO,EACpB;YAEA,qCAAqC;YACrC,yBAAyB;YACzB,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACrB,+BAA+B;SAChC;QAED,yBAAyB;aACpB,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,EAAE;YAC3D,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;SACnB;aAEI;YACH,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;SACtB;KACF;IAED,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;QACtB,GAAG,GAAG,SAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KACnC;IAED,IAAI,WAAI,KAAK,GAAG,CAAC,IAAI,EAAE;QACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,UAAG,EAAE,GAAG,CAAC,CAAA;KAC1B;IAED,6EAA6E;IAC7E,kEAAkE;IAElE,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAUC,sBAAK;AAPP,SAAS,MAAM,CAAC,CAAM,EAAE,EAAO;IAC7B,6BAA6B;IAC7B,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"unite.js","sourceRoot":"","sources":["../../../lib/op/unite.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { Resolver } from '@jsonic/multisource';
2
2
  import { Context } from './unify';
3
- import { Site } from './lang';
4
3
  type Options = {
5
4
  src: string;
6
5
  print: number;
@@ -15,21 +14,24 @@ interface Val {
15
14
  row: number;
16
15
  col: number;
17
16
  url: string;
18
- top?: boolean;
19
- peg?: any;
20
- err?: any[];
17
+ top: boolean;
18
+ peg: any;
19
+ err: any[];
21
20
  deps?: any;
22
21
  same(peer: Val): boolean;
23
- get site(): Site;
22
+ clone(spec?: ValSpec, ctx?: Context): Val;
24
23
  unify(peer: Val, ctx?: Context): Val;
25
24
  get canon(): string;
26
25
  gen(ctx?: Context): any;
27
26
  }
27
+ type ValSpec = {
28
+ peg?: any;
29
+ [name: string]: any;
30
+ } | null;
28
31
  type ValMap = {
29
32
  [key: string]: Val;
30
33
  };
31
34
  type ValList = Val[];
32
35
  declare const DONE = -1;
33
- declare const TOP: Val;
34
- export type { Val, ValMap, ValList, Options, };
35
- export { DONE, TOP, Resolver, };
36
+ export type { Val, ValSpec, ValMap, ValList, Options, };
37
+ export { DONE, Resolver, };
package/dist/lib/type.js CHANGED
@@ -1,32 +1,7 @@
1
1
  "use strict";
2
- /* Copyright (c) 2022 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2022-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.TOP = exports.DONE = void 0;
5
- const lang_1 = require("./lang");
4
+ exports.DONE = void 0;
6
5
  const DONE = -1;
7
6
  exports.DONE = DONE;
8
- // There can be only one.
9
- const TOP = {
10
- isVal: true,
11
- id: 0,
12
- top: true,
13
- peg: undefined,
14
- done: DONE,
15
- path: [],
16
- row: -1,
17
- col: -1,
18
- url: '',
19
- unify(peer, _ctx) {
20
- return peer;
21
- },
22
- get canon() { return 'top'; },
23
- get site() { return new lang_1.Site(this); },
24
- same(peer) {
25
- return TOP === peer;
26
- },
27
- gen: (_ctx) => {
28
- return undefined;
29
- },
30
- };
31
- exports.TOP = TOP;
32
7
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../lib/type.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AASpD,iCAEe;AAgDf,MAAM,IAAI,GAAG,CAAC,CAAC,CAAA;AA4Cb,oBAAI;AAzCN,yBAAyB;AACzB,MAAM,GAAG,GAAQ;IACf,KAAK,EAAE,IAAI;IAEX,EAAE,EAAE,CAAC;IACL,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,CAAC,CAAC;IACP,GAAG,EAAE,CAAC,CAAC;IACP,GAAG,EAAE,EAAE;IAEP,KAAK,CAAC,IAAS,EAAE,IAAa;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,KAAK,CAAA,CAAC,CAAC;IAE5B,IAAI,IAAI,KAAK,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC;IAEpC,IAAI,CAAC,IAAS;QACZ,OAAO,GAAG,KAAK,IAAI,CAAA;IACrB,CAAC;IAED,GAAG,EAAE,CAAC,IAAc,EAAE,EAAE;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF,CAAA;AAaC,kBAAG"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../lib/type.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAgEzD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAA;AAYb,oBAAI"}
@@ -1,6 +1,5 @@
1
1
  import type { Val } from './type';
2
2
  import { Lang } from './lang';
3
- import { RefVal } from '../lib/val/RefVal';
4
3
  import { Nil } from '../lib/val/Nil';
5
4
  type Path = string[];
6
5
  declare class Context {
@@ -8,10 +7,15 @@ declare class Context {
8
7
  path: Path;
9
8
  err: Nil[];
10
9
  vc: number;
10
+ cc: number;
11
+ var: Record<string, Val>;
11
12
  constructor(cfg: {
12
13
  root: Val;
14
+ path?: Path;
13
15
  err?: Nil[];
14
16
  vc?: number;
17
+ cc?: number;
18
+ var?: Record<string, Val>;
15
19
  });
16
20
  clone(cfg: {
17
21
  root?: Val;
@@ -19,14 +23,13 @@ declare class Context {
19
23
  err?: Nil[];
20
24
  }): Context;
21
25
  descend(key: string): Context;
22
- find(ref: RefVal): Val | undefined;
23
26
  }
24
27
  declare class Unify {
25
28
  root: Val;
26
29
  res: Val;
27
30
  err: Nil[];
28
- dc: number;
31
+ cc: number;
29
32
  lang: Lang;
30
- constructor(root: Val | string, lang?: Lang);
33
+ constructor(root: Val | string, lang?: Lang, ctx?: Context);
31
34
  }
32
35
  export { Context, Path, Unify, };
package/dist/lib/unify.js CHANGED
@@ -1,24 +1,31 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Unify = exports.Context = void 0;
5
5
  const type_1 = require("./type");
6
+ const val_1 = require("./val");
6
7
  const lang_1 = require("./lang");
7
8
  const op_1 = require("./op/op");
8
- const MapVal_1 = require("../lib/val/MapVal");
9
9
  class Context {
10
10
  constructor(cfg) {
11
+ this.cc = -1;
12
+ this.var = {};
11
13
  this.root = cfg.root;
12
- this.path = [];
14
+ this.path = cfg.path || [];
13
15
  this.err = cfg.err || [];
14
16
  // Multiple unify passes will keep incrementing Val counter.
15
17
  this.vc = null == cfg.vc ? 1000000000 : cfg.vc;
18
+ this.cc = null == cfg.cc ? this.cc : cfg.cc;
19
+ this.var = cfg.var || this.var;
16
20
  }
17
21
  clone(cfg) {
18
22
  return new Context({
19
23
  root: cfg.root || this.root,
24
+ path: cfg.path,
20
25
  err: cfg.err || this.err,
21
26
  vc: this.vc,
27
+ cc: this.cc,
28
+ var: { ...this.var },
22
29
  });
23
30
  }
24
31
  descend(key) {
@@ -27,30 +34,10 @@ class Context {
27
34
  path: this.path.concat(key),
28
35
  });
29
36
  }
30
- find(ref) {
31
- // TODO: relative paths
32
- // if (this.root instanceof MapVal && ref.absolute) {
33
- if (ref.absolute) {
34
- let node = this.root;
35
- let pI = 0;
36
- for (; pI < ref.parts.length; pI++) {
37
- let part = ref.parts[pI];
38
- if (node instanceof MapVal_1.MapVal) {
39
- node = node.peg[part];
40
- }
41
- else {
42
- break;
43
- }
44
- }
45
- if (pI === ref.parts.length) {
46
- return node;
47
- }
48
- }
49
- }
50
37
  }
51
38
  exports.Context = Context;
52
39
  class Unify {
53
- constructor(root, lang) {
40
+ constructor(root, lang, ctx) {
54
41
  this.lang = lang || new lang_1.Lang();
55
42
  if ('string' === typeof root) {
56
43
  root = this.lang.parse(root);
@@ -59,17 +46,19 @@ class Unify {
59
46
  this.res = root;
60
47
  this.err = [];
61
48
  let res = root;
62
- let ctx = new Context({
49
+ ctx = ctx || new Context({
63
50
  root: res,
64
51
  err: this.err,
65
52
  });
66
53
  // TODO: derive maxdc from res deterministically
67
54
  // perhaps parse should count intial vals, paths, etc?
68
- let maxdc = 999;
69
- for (this.dc = 0; this.dc < maxdc && type_1.DONE !== res.done; this.dc++) {
55
+ let maxdc = 9; // 99
56
+ for (this.cc = 0; this.cc < maxdc && type_1.DONE !== res.done; this.cc++) {
57
+ // console.log('\n\nRES', this.dc)
70
58
  // console.log('\n\nRES', this.dc, res.canon)
71
59
  // console.dir(res, { depth: null })
72
- res = (0, op_1.unite)(ctx, res, type_1.TOP);
60
+ ctx.cc = this.cc;
61
+ res = (0, op_1.unite)(ctx, res, val_1.TOP);
73
62
  ctx = ctx.clone({ root: res });
74
63
  }
75
64
  this.res = res;