aontu 0.5.0 → 0.7.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 (65) hide show
  1. package/aontu.ts +3 -2
  2. package/dist/aontu.d.ts +2 -2
  3. package/dist/aontu.js +3 -4
  4. package/dist/aontu.js.map +1 -1
  5. package/dist/aontu.min.js +1 -63
  6. package/dist/lib/lang.d.ts +1 -3
  7. package/dist/lib/lang.js +53 -25
  8. package/dist/lib/lang.js.map +1 -1
  9. package/dist/lib/op/disjunct.js +10 -10
  10. package/dist/lib/op/disjunct.js.map +1 -1
  11. package/dist/lib/op/op.d.ts +2 -2
  12. package/dist/lib/op/op.js.map +1 -1
  13. package/dist/lib/op/unite.js +19 -14
  14. package/dist/lib/op/unite.js.map +1 -1
  15. package/dist/lib/type.d.ts +34 -22
  16. package/dist/lib/type.js +23 -76
  17. package/dist/lib/type.js.map +1 -1
  18. package/dist/lib/unify.d.ts +5 -2
  19. package/dist/lib/unify.js +7 -5
  20. package/dist/lib/unify.js.map +1 -1
  21. package/dist/lib/val/ConjunctVal.d.ts +12 -0
  22. package/dist/lib/val/ConjunctVal.js +191 -0
  23. package/dist/lib/val/ConjunctVal.js.map +1 -0
  24. package/dist/lib/val/DisjunctVal.d.ts +12 -0
  25. package/dist/lib/val/DisjunctVal.js +85 -0
  26. package/dist/lib/val/DisjunctVal.js.map +1 -0
  27. package/dist/lib/val/ListVal.d.ts +14 -0
  28. package/dist/lib/val/ListVal.js +91 -0
  29. package/dist/lib/val/ListVal.js.map +1 -0
  30. package/dist/lib/val/MapVal.d.ts +14 -0
  31. package/dist/lib/val/MapVal.js +141 -0
  32. package/dist/lib/val/MapVal.js.map +1 -0
  33. package/dist/lib/val/Nil.d.ts +15 -0
  34. package/dist/lib/val/Nil.js +54 -0
  35. package/dist/lib/val/Nil.js.map +1 -0
  36. package/dist/lib/val/PrefVal.d.ts +12 -0
  37. package/dist/lib/val/PrefVal.js +60 -0
  38. package/dist/lib/val/PrefVal.js.map +1 -0
  39. package/dist/lib/val/RefVal.d.ts +15 -0
  40. package/dist/lib/val/RefVal.js +73 -0
  41. package/dist/lib/val/RefVal.js.map +1 -0
  42. package/dist/lib/val/ValBase.d.ts +22 -0
  43. package/dist/lib/val/ValBase.js +27 -0
  44. package/dist/lib/val/ValBase.js.map +1 -0
  45. package/dist/lib/val.d.ts +6 -93
  46. package/dist/lib/val.js +13 -609
  47. package/dist/lib/val.js.map +1 -1
  48. package/lib/lang.ts +79 -49
  49. package/lib/op/disjunct.ts +14 -8
  50. package/lib/op/op.ts +2 -1
  51. package/lib/op/unite.ts +14 -12
  52. package/lib/type.ts +108 -0
  53. package/lib/unify.ts +10 -8
  54. package/lib/val/ConjunctVal.ts +284 -0
  55. package/lib/val/DisjunctVal.ts +145 -0
  56. package/lib/val/ListVal.ts +154 -0
  57. package/lib/val/MapVal.ts +226 -0
  58. package/lib/val/Nil.ts +94 -0
  59. package/lib/val/PrefVal.ts +113 -0
  60. package/lib/val/RefVal.ts +126 -0
  61. package/lib/val/RefVal.ts~ +319 -0
  62. package/lib/val/ValBase.ts +78 -0
  63. package/lib/val.ts +15 -825
  64. package/package.json +27 -24
  65. package/lib/common.ts +0 -19
package/dist/lib/lang.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.includeFileResolver = exports.Site = exports.Lang = void 0;
5
5
  const jsonic_next_1 = require("@jsonic/jsonic-next");
@@ -7,8 +7,18 @@ const multisource_1 = require("@jsonic/multisource");
7
7
  const file_1 = require("@jsonic/multisource/dist/resolver/file");
8
8
  const expr_1 = require("@jsonic/expr");
9
9
  const path_1 = require("@jsonic/path");
10
+ const type_1 = require("./type");
11
+ const ConjunctVal_1 = require("./val/ConjunctVal");
12
+ const DisjunctVal_1 = require("./val/DisjunctVal");
13
+ const MapVal_1 = require("./val/MapVal");
14
+ const ListVal_1 = require("./val/ListVal");
15
+ const PrefVal_1 = require("./val/PrefVal");
16
+ const RefVal_1 = require("./val/RefVal");
17
+ const Nil_1 = require("./val/Nil");
10
18
  const val_1 = require("./val");
19
+ // console.log('TOP', TOP)
11
20
  class Site {
21
+ // static NONE = new Site(TOP)
12
22
  constructor(val) {
13
23
  this.row = -1;
14
24
  this.col = -1;
@@ -21,7 +31,6 @@ class Site {
21
31
  }
22
32
  }
23
33
  exports.Site = Site;
24
- Site.NONE = new Site(val_1.TOP);
25
34
  let AontuJsonic = function aontu(jsonic) {
26
35
  jsonic.use(path_1.Path);
27
36
  // TODO: refactor Val constructor
@@ -46,26 +55,35 @@ let AontuJsonic = function aontu(jsonic) {
46
55
  val: (r) => addpath(new val_1.ScalarTypeVal(Boolean), r.keep.path)
47
56
  },
48
57
  'nil': {
49
- val: (r) => addpath(new val_1.Nil('literal'), r.keep.path)
58
+ val: (r) => addpath(new Nil_1.Nil('literal'), r.keep.path)
50
59
  },
51
60
  // TODO: FIX: need a TOP instance to hold path
52
- 'top': { val: () => val_1.TOP },
61
+ 'top': { val: () => type_1.TOP },
53
62
  }
54
63
  },
55
64
  map: {
56
65
  merge: (prev, curr) => {
57
66
  let pval = prev;
58
67
  let cval = curr;
59
- return addpath(new val_1.ConjunctVal([pval, cval]), prev.path);
68
+ if ((pval === null || pval === void 0 ? void 0 : pval.isVal) && (cval === null || cval === void 0 ? void 0 : cval.isVal)) {
69
+ return addpath(new ConjunctVal_1.ConjunctVal([pval, cval]), prev.path);
70
+ }
71
+ // Handle defered conjuncts, where MapVal does not yet
72
+ // exist, by creating ConjunctVal later.
73
+ else {
74
+ prev.___merge = (prev.___merge || []);
75
+ prev.___merge.push(curr);
76
+ return prev;
77
+ }
60
78
  }
61
79
  }
62
80
  });
63
81
  let opmap = {
64
- 'conjunct-infix': (r, _op, terms) => addpath(new val_1.ConjunctVal(terms), r.keep.path),
65
- 'disjunct-infix': (r, _op, terms) => addpath(new val_1.DisjunctVal(terms), r.keep.path),
66
- 'dot-prefix': (r, _op, terms) => addpath(new val_1.RefVal(terms, true), r.keep.path),
67
- 'dot-infix': (r, _op, terms) => addpath(new val_1.RefVal(terms), r.keep.path),
68
- 'star-prefix': (r, _op, terms) => addpath(new val_1.PrefVal(terms[0]), r.keep.path),
82
+ 'conjunct-infix': (r, _op, terms) => addpath(new ConjunctVal_1.ConjunctVal(terms), r.keep.path),
83
+ 'disjunct-infix': (r, _op, terms) => addpath(new DisjunctVal_1.DisjunctVal(terms), r.keep.path),
84
+ 'dot-prefix': (r, _op, terms) => addpath(new RefVal_1.RefVal(terms, true), r.keep.path),
85
+ 'dot-infix': (r, _op, terms) => addpath(new RefVal_1.RefVal(terms), r.keep.path),
86
+ 'star-prefix': (r, _op, terms) => addpath(new PrefVal_1.PrefVal(terms[0]), r.keep.path),
69
87
  };
70
88
  jsonic
71
89
  .use(expr_1.Expr, {
@@ -105,11 +123,9 @@ let AontuJsonic = function aontu(jsonic) {
105
123
  let CJ = jsonic.token['#E&'];
106
124
  let CL = jsonic.token.CL;
107
125
  jsonic.rule('val', (rs) => {
108
- // TODO: wrap utility needed for jsonic to do this?
109
- // let orig_bc: any = rs.def.bc
110
- // rs.def.bc = function(rule: Rule, ctx: Context) {
111
- // let out = orig_bc.call(this, rule, ctx)
112
- rs.bc((r, ctx) => {
126
+ rs
127
+ .open([{ s: [CJ, CL], p: 'map', b: 2, g: 'spread' }])
128
+ .bc((r, ctx) => {
113
129
  let valnode = r.node;
114
130
  let valtype = typeof valnode;
115
131
  // console.log('VAL RULE', valtype, r.use, r.node)
@@ -142,9 +158,20 @@ let AontuJsonic = function aontu(jsonic) {
142
158
  // let orig_bc = rs.def.bc
143
159
  // rs.def.bc = function(rule: Rule, ctx: Context) {
144
160
  // let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined
145
- rs.bc((r) => {
146
- // console.log('MAP RULE', rule.use, rule.node)
147
- r.node = addpath(new val_1.MapVal(r.node), r.keep.path);
161
+ rs
162
+ .open([{ s: [CJ, CL], p: 'pair', b: 2, g: 'spread' }])
163
+ .bc((r) => {
164
+ let mo = r.node;
165
+ // Handle defered conjuncts, e.g. `{x:1 @"foo"}`
166
+ if (mo.___merge) {
167
+ let mop = { ...mo };
168
+ delete mop.___merge;
169
+ let mopv = new MapVal_1.MapVal(mop);
170
+ r.node = addpath(new ConjunctVal_1.ConjunctVal([mopv, ...mo.___merge]), r.keep.path);
171
+ }
172
+ else {
173
+ r.node = addpath(new MapVal_1.MapVal(mo), r.keep.path);
174
+ }
148
175
  // return out
149
176
  return undefined;
150
177
  });
@@ -155,7 +182,7 @@ let AontuJsonic = function aontu(jsonic) {
155
182
  // rs.def.bc = function(rule: Rule, ctx: Context) {
156
183
  // let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined
157
184
  rs.bc((r) => {
158
- r.node = addpath(new val_1.ListVal(r.node), r.keep.path);
185
+ r.node = addpath(new ListVal_1.ListVal(r.node), r.keep.path);
159
186
  // return out
160
187
  return undefined;
161
188
  });
@@ -167,9 +194,9 @@ let AontuJsonic = function aontu(jsonic) {
167
194
  .bc((rule) => {
168
195
  // TRAVERSE PARENTS TO GET PATH
169
196
  if (rule.use.spread) {
170
- rule.node[val_1.MapVal.SPREAD] =
171
- (rule.node[val_1.MapVal.SPREAD] || { o: rule.o0.src, v: [] });
172
- rule.node[val_1.MapVal.SPREAD].v.push(rule.child.node);
197
+ rule.node[MapVal_1.MapVal.SPREAD] =
198
+ (rule.node[MapVal_1.MapVal.SPREAD] || { o: rule.o0.src, v: [] });
199
+ rule.node[MapVal_1.MapVal.SPREAD].v.push(rule.child.node);
173
200
  }
174
201
  return undefined;
175
202
  });
@@ -181,9 +208,9 @@ let AontuJsonic = function aontu(jsonic) {
181
208
  .bc((rule) => {
182
209
  // TRAVERSE PARENTS TO GET PATH
183
210
  if (rule.use.spread) {
184
- rule.node[val_1.ListVal.SPREAD] =
185
- (rule.node[val_1.ListVal.SPREAD] || { o: rule.o0.src, v: [] });
186
- rule.node[val_1.ListVal.SPREAD].v.push(rule.child.node);
211
+ rule.node[ListVal_1.ListVal.SPREAD] =
212
+ (rule.node[ListVal_1.ListVal.SPREAD] || { o: rule.o0.src, v: [] });
213
+ rule.node[ListVal_1.ListVal.SPREAD].v.push(rule.child.node);
187
214
  }
188
215
  return undefined;
189
216
  });
@@ -202,6 +229,7 @@ class Lang {
202
229
  };
203
230
  this.options = Object.assign({}, this.options, options);
204
231
  this.jsonic = jsonic_next_1.Jsonic.make()
232
+ // .use(Debug, { trace: true })
205
233
  .use(AontuJsonic)
206
234
  .use(multisource_1.MultiSource, {
207
235
  resolver: (options === null || options === void 0 ? void 0 : options.resolver) || includeFileResolver
@@ -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":";AAAA,yDAAyD;;;AAEzD,qDAO4B;AAE5B,qDAE4B;AAE5B,iEAE+C;AAE/C,uCAGqB;AAErB,uCAEqB;AAQrB,iCAEe;AAEf,mDAA+C;AAC/C,mDAA+C;AAC/C,yCAAqC;AACrC,2CAAuC;AACvC,2CAAuC;AACvC,yCAAqC;AACrC,mCAA+B;AAG/B,+BAOc;AAId,0BAA0B;AAE1B,MAAM,IAAI;IAKR,8BAA8B;IAE9B,YAAY,GAAQ;QANpB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,EAAE,CAAA;QAKd,iEAAiE;QACjE,gCAAgC;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IACpB,CAAC;CAGF;AAmTC,oBAAI;AAhTN,IAAI,WAAW,GAAW,SAAS,KAAK,CAAC,MAAc;IAErD,MAAM,CAAC,GAAG,CAAC,WAAI,CAAC,CAAA;IAEhB,iCAAiC;IACjC,IAAI,OAAO,GAAG,CAAC,CAAM,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAGnE,MAAM,CAAC,OAAO,CAAC;QACb,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,mDAAmD;gBACnD,sDAAsD;gBACtD,0BAA0B;gBAC1B,yDAAyD;gBACzD,QAAQ,EAAE;oBACR,GAAG,EAAE,CAAC,CAAO,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,mBAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClD;gBACD,QAAQ,EAAE;oBACR,GAAG,EAAE,CAAC,CAAO,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,mBAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClD;gBACD,SAAS,EAAE;oBACT,GAAG,EAAE,CAAC,CAAO,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,mBAAa,CAAC,aAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACnD;gBACD,SAAS,EAAE;oBACT,GAAG,EAAE,CAAC,CAAO,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,mBAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBACnD;gBACD,KAAK,EAAE;oBACL,GAAG,EAAE,CAAC,CAAO,EAAE,EAAE,CACf,OAAO,CAAC,IAAI,SAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC3C;gBAED,8CAA8C;gBAC9C,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,UAAG,EAAE;aAC1B;SACF;QAED,GAAG,EAAE;YACH,KAAK,EAAE,CAAC,IAAS,EAAE,IAAS,EAAE,EAAE;gBAC9B,IAAI,IAAI,GAAI,IAAY,CAAA;gBACxB,IAAI,IAAI,GAAI,IAAY,CAAA;gBAExB,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA,EAAE;oBAC9B,OAAO,OAAO,CAAC,IAAI,yBAAW,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;iBACzD;gBAED,sDAAsD;gBACtD,wCAAwC;qBACnC;oBACH,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;oBACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACxB,OAAO,IAAI,CAAA;iBACZ;YACH,CAAC;SACF;KACF,CAAC,CAAA;IAGF,IAAI,KAAK,GAAQ;QACf,gBAAgB,EAAE,CAAC,CAAO,EAAE,GAAO,EAAE,KAAU,EAAE,EAAE,CACjD,OAAO,CAAC,IAAI,yBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9C,gBAAgB,EAAE,CAAC,CAAO,EAAE,GAAO,EAAE,KAAU,EAAE,EAAE,CACjD,OAAO,CAAC,IAAI,yBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9C,YAAY,EAAE,CAAC,CAAO,EAAE,GAAO,EAAE,KAAU,EAAE,EAAE,CAC7C,OAAO,CAAC,IAAI,eAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/C,WAAW,EAAE,CAAC,CAAO,EAAE,GAAO,EAAE,KAAU,EAAE,EAAE,CAC5C,OAAO,CAAC,IAAI,eAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAEzC,aAAa,EAAE,CAAC,CAAO,EAAE,GAAO,EAAE,KAAU,EAAE,EAAE,CAC9C,OAAO,CAAC,IAAI,iBAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAC9C,CAAA;IAGD,MAAM;SACH,GAAG,CAAC,WAAI,EAAE;QACT,EAAE,EAAE;YACF,4CAA4C;YAC5C,UAAU,EAAE;gBACV,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;aACjD;YACD,UAAU,EAAE;gBACV,mDAAmD;gBACnD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;aACjD;YAED,WAAW,EAAE;gBACX,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAU;gBAChB,KAAK,EAAE,QAAU;aAClB;YACD,YAAY,EAAE;gBACZ,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,QAAU;aAClB;YAED,MAAM,EAAE;gBACN,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,QAAU;aAClB;SACF;QACD,QAAQ,EAAE,CAAC,CAAO,EAAE,EAAM,EAAE,KAAU,EAAE,EAAE;YACxC,8CAA8C;YAC9C,IAAI,GAAG,GAAQ,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;YAC3C,oCAAoC;YAEpC,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAC,CAAA;IAGJ,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAGxB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAY,EAAE,EAAE;QAElC,EAAE;aACC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;aAEpD,EAAE,CAAC,CAAC,CAAO,EAAE,GAAY,EAAE,EAAE;YAE5B,IAAI,OAAO,GAAQ,CAAC,CAAC,IAAI,CAAA;YACzB,IAAI,OAAO,GAAG,OAAO,OAAO,CAAA;YAE5B,kDAAkD;YAElD,IAAI,QAAQ,KAAK,OAAO,EAAE;gBACxB,OAAO,GAAG,OAAO,CAAC,IAAI,eAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACtD;iBACI,IAAI,QAAQ,KAAK,OAAO,EAAE;gBAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC5B,OAAO,GAAG,OAAO,CAAC,IAAI,gBAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBACvD;qBACI;oBACH,OAAO,GAAG,OAAO,CAAC,IAAI,eAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBACtD;aACF;iBACI,IAAI,SAAS,KAAK,OAAO,EAAE;gBAC9B,OAAO,GAAG,OAAO,CAAC,IAAI,gBAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvD;YAED,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;YACb,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;YACnB,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;YAEnB,gDAAgD;YAChD,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;YAE/D,CAAC,CAAC,IAAI,GAAG,OAAO,CAAA;YAEhB,aAAa;YACb,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;QAEJ,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IAIF,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAY,EAAE,EAAE;QAClC,0BAA0B;QAC1B,mDAAmD;QACnD,kEAAkE;QAClE,EAAE;aACC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;aAErD,EAAE,CAAC,CAAC,CAAO,EAAE,EAAE;YAEd,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAA;YAEf,iDAAiD;YACjD,IAAI,EAAE,CAAC,QAAQ,EAAE;gBACf,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAA;gBACnB,OAAO,GAAG,CAAC,QAAQ,CAAA;gBACnB,IAAI,IAAI,GAAG,IAAI,eAAM,CAAC,GAAG,CAAC,CAAA;gBAC1B,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,yBAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACvE;iBACI;gBACH,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAC9C;YAED,aAAa;YACb,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;QAEJ,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IAGF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAY,EAAE,EAAE;QACnC,0BAA0B;QAC1B,mDAAmD;QACnD,kEAAkE;QAElE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAO,EAAE,EAAE;YAChB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,iBAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAElD,aAAa;YACb,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IAIF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAY,EAAE,EAAE;QACnC,EAAE;aACC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;aAEnE,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;YACjB,+BAA+B;YAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC;oBACtB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBACzD,IAAI,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aACjD;YAED,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;QAEJ,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;IAGF,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAY,EAAE,EAAE;QACnC,EAAE;aACC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;aAEnE,EAAE,CAAC,CAAC,IAAU,EAAE,EAAE;YACjB,+BAA+B;YAE/B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,IAAI,CAAC,iBAAO,CAAC,MAAM,CAAC;oBACvB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC1D,IAAI,CAAC,IAAI,CAAC,iBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aAClD;YAED,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CAAA;QAEJ,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAGD,MAAM,mBAAmB,GAAG,IAAA,uBAAgB,EAAC,CAAC,IAAS,EAAE,EAAE;IACzD,OAAO,QAAQ,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA;AACpD,CAAC,CAAC,CAAA;AA+CA,kDAAmB;AA5CrB,MAAM,IAAI;IAOR,YAAY,OAA0B;QALtC,YAAO,GAAY;YACjB,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,CAAC,CAAC;SACV,CAAA;QAGC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvD,IAAI,CAAC,MAAM,GAAG,oBAAM,CAAC,IAAI,EAAE;YACzB,+BAA+B;aAC9B,GAAG,CAAC,WAAW,CAAC;aAChB,GAAG,CAAC,yBAAW,EAAE;YAChB,QAAQ,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,mBAAmB;SACnD,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,IAAU;QAE3B,6BAA6B;QAC7B,IAAI,EAAE,GAAQ;YACZ,WAAW,EAAE;gBACX,mDAAmD;gBACnD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;aACvC;SACF,CAAA;QAED,sCAAsC;QACtC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1D,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;SAClB;QAED,cAAc;QAEd,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAE9B,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAGC,oBAAI"}
@@ -2,27 +2,27 @@
2
2
  /* Copyright (c) 2021 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.disjunct = void 0;
5
- const lang_1 = require("../lang");
6
- const val_1 = require("../val");
5
+ const DisjunctVal_1 = require("../val/DisjunctVal");
6
+ const ValBase_1 = require("../val/ValBase");
7
7
  const disjunct = (ctx, a, b) => {
8
8
  let peers = [];
9
9
  let origsites = [];
10
- origsites.push(append(peers, a));
11
- origsites.push(append(peers, b));
12
- let out = new val_1.DisjunctVal(peers, ctx, origsites);
10
+ // origsites.push(append(peers, a))
11
+ // origsites.push(append(peers, b))
12
+ let out = new DisjunctVal_1.DisjunctVal(peers, ctx, origsites);
13
13
  return out;
14
14
  };
15
15
  exports.disjunct = disjunct;
16
16
  function append(peers, v) {
17
- let origsite = lang_1.Site.NONE;
18
- if (v instanceof val_1.DisjunctVal) {
17
+ // let origsite: Site = Site.NONE
18
+ if (v instanceof DisjunctVal_1.DisjunctVal) {
19
19
  peers.push(...v.peg);
20
- origsite = v.site;
20
+ // origsite = v.site
21
21
  }
22
22
  // TODO: handle no-error Nil (drop) and error Nil (keep and become)
23
- else if (v instanceof val_1.Val) {
23
+ else if (v instanceof ValBase_1.ValBase) {
24
24
  peers.push(v);
25
25
  }
26
- return origsite;
26
+ // return origsite
27
27
  }
28
28
  //# sourceMappingURL=disjunct.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disjunct.js","sourceRoot":"","sources":["../../../lib/op/disjunct.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,kCAA8B;AAE9B,gCAAyC;AAIzC,MAAM,QAAQ,GAAc,CAAC,GAAa,EAAE,CAAO,EAAE,CAAO,EAAE,EAAE;IAC9D,IAAI,KAAK,GAAU,EAAE,CAAA;IACrB,IAAI,SAAS,GAAW,EAAE,CAAA;IAC1B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IAChC,IAAI,GAAG,GAAG,IAAI,iBAAW,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IAChD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAqBC,4BAAQ;AAlBV,SAAS,MAAM,CAAC,KAAY,EAAE,CAAO;IACnC,IAAI,QAAQ,GAAS,WAAI,CAAC,IAAI,CAAA;IAE9B,IAAI,CAAC,YAAY,iBAAW,EAAE;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QACpB,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAA;KAClB;IAED,mEAAmE;SAC9D,IAAI,CAAC,YAAY,SAAG,EAAE;QACzB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACd;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC"}
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,6 +1,6 @@
1
1
  import { Context } from '../unify';
2
- import { Val } from '../val';
2
+ import { Val } from '../type';
3
3
  import { disjunct } from './disjunct';
4
4
  import { unite } from './unite';
5
- declare type Operation = (ctx: Context, a?: Val, b?: Val, whence?: string) => Val;
5
+ type Operation = (ctx: Context, a?: Val, b?: Val, whence?: string) => Val;
6
6
  export { Operation, disjunct, unite, };
@@ -1 +1 @@
1
- {"version":3,"file":"op.js","sourceRoot":"","sources":["../../../lib/op/op.ts"],"names":[],"mappings":";AAAA,qDAAqD;;;AAMrD,yCAAqC;AAQnC,yFARO,mBAAQ,OAQP;AAPV,mCAA+B;AAQ7B,sFARO,aAAK,OAQP"}
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,8 +1,13 @@
1
1
  "use strict";
2
- /* Copyright (c) 2021 Richard Rodger, MIT License */
2
+ /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.unite = void 0;
5
- const val_1 = require("../val");
5
+ const type_1 = require("../type");
6
+ const ConjunctVal_1 = require("../val/ConjunctVal");
7
+ const DisjunctVal_1 = require("../val/DisjunctVal");
8
+ const PrefVal_1 = require("../val/PrefVal");
9
+ const RefVal_1 = require("../val/RefVal");
10
+ const Nil_1 = require("../val/Nil");
6
11
  // Vals should only have to unify downwards (in .unify) over Vals they understand.
7
12
  // and for complex Vals, TOP, which means self unify if not yet done
8
13
  const unite = (ctx, a, b, whence) => {
@@ -10,25 +15,25 @@ const unite = (ctx, a, b, whence) => {
10
15
  // console.log('AA OP unite IN', a?.canon, b?.canon,
11
16
  // 'W', whence,
12
17
  // 'E', 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
13
- if (b && (val_1.TOP === a || !a)) {
18
+ if (b && (type_1.TOP === a || !a)) {
14
19
  //console.log('Utb', b.canon)
15
20
  out = b;
16
21
  }
17
- else if (a && (val_1.TOP === b || !b)) {
22
+ else if (a && (type_1.TOP === b || !b)) {
18
23
  //console.log('Uta', a.canon)
19
24
  out = a;
20
25
  }
21
- else if (a && b && val_1.TOP !== b) {
22
- if (a instanceof val_1.Nil) {
26
+ else if (a && b && type_1.TOP !== b) {
27
+ if (a instanceof Nil_1.Nil) {
23
28
  out = update(a, b);
24
29
  }
25
- else if (b instanceof val_1.Nil) {
30
+ else if (b instanceof Nil_1.Nil) {
26
31
  out = update(b, a);
27
32
  }
28
- else if (b instanceof val_1.ConjunctVal ||
29
- b instanceof val_1.DisjunctVal ||
30
- b instanceof val_1.RefVal ||
31
- b instanceof val_1.PrefVal) {
33
+ else if (b instanceof ConjunctVal_1.ConjunctVal ||
34
+ b instanceof DisjunctVal_1.DisjunctVal ||
35
+ b instanceof RefVal_1.RefVal ||
36
+ b instanceof PrefVal_1.PrefVal) {
32
37
  //console.log('U', a.canon, b.canon)
33
38
  return b.unify(a, ctx);
34
39
  }
@@ -41,10 +46,10 @@ const unite = (ctx, a, b, whence) => {
41
46
  }
42
47
  }
43
48
  if (!out || !out.unify) {
44
- out = val_1.Nil.make(ctx, 'unite', a, b);
49
+ out = Nil_1.Nil.make(ctx, 'unite', a, b);
45
50
  }
46
- if (val_1.DONE !== out.done) {
47
- out = out.unify(val_1.TOP, ctx);
51
+ if (type_1.DONE !== out.done) {
52
+ out = out.unify(type_1.TOP, ctx);
48
53
  }
49
54
  // console.log('AA OP unite OUT', a?.canon, b?.canon, '->', out && out.canon,
50
55
  // 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
@@ -1 +1 @@
1
- {"version":3,"file":"unite.js","sourceRoot":"","sources":["../../../lib/op/unite.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,gCASe;AAIf,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,SAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC1B,6BAA6B;QAC7B,GAAG,GAAG,CAAC,CAAA;KACR;SAEI,IAAI,CAAC,IAAI,CAAC,SAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC/B,6BAA6B;QAC7B,GAAG,GAAG,CAAC,CAAA;KACR;SAEI,IAAI,CAAC,IAAI,CAAC,IAAI,SAAG,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,IACH,CAAC,YAAY,iBAAW;YACxB,CAAC,YAAY,iBAAW;YACxB,CAAC,YAAY,YAAM;YACnB,CAAC,YAAY,aAAO,EACpB;YAEA,oCAAoC;YACpC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;SACvB;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,UAAI,KAAK,GAAG,CAAC,IAAI,EAAE;QACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAG,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":";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,IACH,CAAC,YAAY,yBAAW;YACxB,CAAC,YAAY,yBAAW;YACxB,CAAC,YAAY,eAAM;YACnB,CAAC,YAAY,iBAAO,EACpB;YAEA,oCAAoC;YACpC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;SACvB;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,23 +1,35 @@
1
- declare const TOP: Val<unknown>;
2
- declare abstract class Val<T> {
3
- val?: T;
4
- constructor(val?: T);
5
- abstract unify(_peer: Val<any>): Val<any>;
1
+ import { Resolver } from '@jsonic/multisource';
2
+ import { Context } from './unify';
3
+ import { Site } from './lang';
4
+ type Options = {
5
+ src: string;
6
+ print: number;
7
+ resolver?: Resolver;
8
+ base?: string;
9
+ };
10
+ interface Val {
11
+ isVal: boolean;
12
+ id: number;
13
+ done: number;
14
+ path: string[];
15
+ row: number;
16
+ col: number;
17
+ url: string;
18
+ top?: boolean;
19
+ peg?: any;
20
+ err?: any[];
21
+ deps?: any;
22
+ same(peer: Val): boolean;
23
+ get site(): Site;
24
+ unify(peer: Val, ctx?: Context): Val;
25
+ get canon(): string;
26
+ gen(ctx?: Context): any;
6
27
  }
7
- declare class Bottom extends Val<unknown> {
8
- why: any;
9
- constructor(why: any);
10
- unify(_peer: Val<any>): this;
11
- }
12
- declare class Integer {
13
- static subsume(child: ScalarVal): boolean;
14
- }
15
- declare class ScalarVal extends Val<unknown> {
16
- constructor(val: String | Number | Boolean);
17
- unify(peer: Val<any>): Val<any>;
18
- }
19
- declare class NumVal extends Val<number> {
20
- constructor(val: number);
21
- unify(peer: Val<any>): Val<any>;
22
- }
23
- export { Val, TOP, Bottom, ScalarVal, NumVal, Integer, };
28
+ type ValMap = {
29
+ [key: string]: Val;
30
+ };
31
+ type ValList = Val[];
32
+ declare const DONE = -1;
33
+ declare const TOP: Val;
34
+ export type { Val, ValMap, ValList, Options, };
35
+ export { DONE, TOP, Resolver, };
package/dist/lib/type.js CHANGED
@@ -1,85 +1,32 @@
1
1
  "use strict";
2
- // rename to val.ts
2
+ /* Copyright (c) 2022 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Integer = exports.NumVal = exports.ScalarVal = exports.Bottom = exports.TOP = exports.Val = void 0;
4
+ exports.TOP = exports.DONE = void 0;
5
+ const lang_1 = require("./lang");
6
+ const DONE = -1;
7
+ exports.DONE = DONE;
5
8
  // There can be only one.
6
9
  const TOP = {
7
- val: undefined,
8
- unify(peer) {
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) {
9
20
  return peer;
10
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
+ },
11
30
  };
12
31
  exports.TOP = TOP;
13
- const UNIFIER = (self, peer) => {
14
- if (peer === TOP) {
15
- return self;
16
- }
17
- else if (self === TOP) {
18
- return peer;
19
- }
20
- else if (self.constructor === peer.constructor) {
21
- return self;
22
- }
23
- else if (peer instanceof Bottom) {
24
- return peer;
25
- }
26
- else if (self instanceof Bottom) {
27
- return self;
28
- }
29
- else {
30
- return new Bottom('no-unify');
31
- }
32
- };
33
- class Val {
34
- constructor(val) {
35
- this.val = val;
36
- }
37
- }
38
- exports.Val = Val;
39
- class Bottom extends Val {
40
- constructor(why) {
41
- super();
42
- this.why = why;
43
- }
44
- unify(_peer) {
45
- return this;
46
- }
47
- }
48
- exports.Bottom = Bottom;
49
- class Integer {
50
- static subsume(child) { return Number.isInteger(child.val); }
51
- }
52
- exports.Integer = Integer;
53
- // TODO: should handle multiple types, rename to ScalarVal
54
- class ScalarVal extends Val {
55
- constructor(val) {
56
- super(val);
57
- }
58
- unify(peer) {
59
- if (peer instanceof this.val) {
60
- return peer;
61
- }
62
- else if (this.val.subsume && this.val.subsume(peer)) {
63
- return peer;
64
- }
65
- else {
66
- return UNIFIER(this, peer);
67
- }
68
- }
69
- }
70
- exports.ScalarVal = ScalarVal;
71
- class NumVal extends Val {
72
- constructor(val) {
73
- super(val);
74
- }
75
- unify(peer) {
76
- if (peer instanceof ScalarVal) {
77
- return peer.unify(this);
78
- }
79
- else {
80
- return UNIFIER(this, peer);
81
- }
82
- }
83
- }
84
- exports.NumVal = NumVal;
85
32
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../lib/type.ts"],"names":[],"mappings":";AAAA,mBAAmB;;;AAEnB,yBAAyB;AACzB,MAAM,GAAG,GAAiB;IACxB,GAAG,EAAE,SAAS;IAEd,KAAK,CAAC,IAAc;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA4FC,kBAAG;AA1FL,MAAM,OAAO,GAAG,CAAC,IAAc,EAAE,IAAc,EAAY,EAAE;IAC3D,IAAI,IAAI,KAAK,GAAG,EAAE;QAChB,OAAO,IAAI,CAAA;KACZ;SACI,IAAI,IAAI,KAAK,GAAG,EAAE;QACrB,OAAO,IAAI,CAAA;KACZ;SACI,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE;QAC9C,OAAO,IAAI,CAAA;KACZ;SACI,IAAI,IAAI,YAAY,MAAM,EAAE;QAC/B,OAAO,IAAI,CAAA;KACZ;SACI,IAAI,IAAI,YAAY,MAAM,EAAE;QAC/B,OAAO,IAAI,CAAA;KACZ;SACI;QACH,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,CAAA;KAC9B;AACH,CAAC,CAAA;AAGD,MAAe,GAAG;IAEhB,YAAY,GAAO;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;CAEF;AA6DC,kBAAG;AA1DL,MAAM,MAAO,SAAQ,GAAY;IAE/B,YAAY,GAAQ;QAClB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IACD,KAAK,CAAC,KAAe;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAmDC,wBAAM;AAjDR,MAAM,OAAO;IACX,MAAM,CAAC,OAAO,CAAC,KAAgB,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC;CACxE;AAkDC,0BAAO;AA9CT,0DAA0D;AAC1D,MAAM,SAAU,SAAQ,GAAY;IAClC,YAAY,GAA8B;QACxC,KAAK,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IACD,KAAK,CAAC,IAAc;QAClB,IAAI,IAAI,YAAa,IAAI,CAAC,GAAW,EAAE;YACrC,OAAO,IAAI,CAAA;SACZ;aACI,IAAK,IAAI,CAAC,GAAW,CAAC,OAAO,IAAK,IAAI,CAAC,GAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrE,OAAO,IAAI,CAAA;SACZ;aACI;YACH,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;CACF;AA4BC,8BAAS;AAzBX,MAAM,MAAO,SAAQ,GAAW;IAC9B,YAAY,GAAW;QACrB,KAAK,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IACD,KAAK,CAAC,IAAc;QAClB,IAAI,IAAI,YAAY,SAAS,EAAE;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACxB;aACI;YACH,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SAC3B;IACH,CAAC;CACF;AAcC,wBAAM"}
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,6 +1,9 @@
1
- import { Val, RefVal, MapVal, Nil } from './val';
1
+ import type { Val } from './type';
2
2
  import { Lang } from './lang';
3
- declare type Path = string[];
3
+ import { MapVal } from '../lib/val/MapVal';
4
+ import { RefVal } from '../lib/val/RefVal';
5
+ import { Nil } from '../lib/val/Nil';
6
+ type Path = string[];
4
7
  declare class Context {
5
8
  root: Val;
6
9
  path: Path;
package/dist/lib/unify.js CHANGED
@@ -2,9 +2,10 @@
2
2
  /* Copyright (c) 2021 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Unify = exports.Context = void 0;
5
- const val_1 = require("./val");
5
+ const type_1 = require("./type");
6
6
  const lang_1 = require("./lang");
7
7
  const op_1 = require("./op/op");
8
+ const MapVal_1 = require("../lib/val/MapVal");
8
9
  class Context {
9
10
  constructor(cfg) {
10
11
  this.root = cfg.root;
@@ -29,10 +30,10 @@ class Context {
29
30
  find(ref) {
30
31
  // console.log('FIND', ref.path, ref.peg)
31
32
  // TODO: relative paths
32
- if (this.root instanceof val_1.MapVal && ref.absolute) {
33
+ if (this.root instanceof MapVal_1.MapVal && ref.absolute) {
33
34
  let node = this.root;
34
35
  let pI = 0;
35
- for (; pI < ref.parts.length && node instanceof val_1.MapVal; pI++) {
36
+ for (; pI < ref.parts.length && node instanceof MapVal_1.MapVal; pI++) {
36
37
  let part = ref.parts[pI];
37
38
  node = node.peg[part];
38
39
  }
@@ -60,8 +61,9 @@ class Unify {
60
61
  // TODO: derive maxdc from res deterministically
61
62
  // perhaps parse should count intial vals, paths, etc?
62
63
  let maxdc = 999;
63
- for (this.dc = 0; this.dc < maxdc && val_1.DONE !== res.done; this.dc++) {
64
- res = (0, op_1.unite)(ctx, res, val_1.TOP);
64
+ for (this.dc = 0; this.dc < maxdc && type_1.DONE !== res.done; this.dc++) {
65
+ res = (0, op_1.unite)(ctx, res, type_1.TOP);
66
+ // console.log('U', this.dc, res.canon)
65
67
  ctx = ctx.clone({ root: res });
66
68
  }
67
69
  this.res = res;
@@ -1 +1 @@
1
- {"version":3,"file":"unify.js","sourceRoot":"","sources":["../../lib/unify.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAIpD,+BAOc;AAEd,iCAEe;AAEf,gCAEgB;AAOhB,MAAM,OAAO;IAMX,YAAY,GAIX;QACC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAA;QAExB,4DAA4D;QAC5D,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IACnD,CAAC;IAGD,KAAK,CAAC,GAIL;QACC,OAAO,IAAI,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;YAC3B,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;YACxB,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAA;IACJ,CAAC;IAGD,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;SAC5B,CAAC,CAAA;IACJ,CAAC;IAGD,IAAI,CAAC,GAAW;QACd,yCAAyC;QAEzC,uBAAuB;QACvB,IAAI,IAAI,CAAC,IAAI,YAAY,YAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;YAC/C,IAAI,IAAI,GAAW,IAAI,CAAC,IAAI,CAAA;YAC5B,IAAI,EAAE,GAAG,CAAC,CAAA;YACV,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,YAAY,YAAM,EAAE,EAAE,EAAE,EAAE;gBAC5D,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aACtB;YAED,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC3B,OAAO,IAAI,CAAA;aACZ;SACF;IACH,CAAC;CACF;AA4CC,0BAAO;AAzCT,MAAM,KAAK;IAOT,YAAY,IAAkB,EAAE,IAAW;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,WAAI,EAAE,CAAA;QAC9B,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE;YAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SAC7B;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QAEb,IAAI,GAAG,GAAG,IAAI,CAAA;QACd,IAAI,GAAG,GAAY,IAAI,OAAO,CAAC;YAC7B,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAGF,gDAAgD;QAChD,sDAAsD;QAGtD,IAAI,KAAK,GAAG,GAAG,CAAA;QACf,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,UAAI,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;YACjE,GAAG,GAAG,IAAA,UAAK,EAAC,GAAG,EAAE,GAAG,EAAE,SAAG,CAAC,CAAA;YAC1B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;SAC/B;QAGD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;CACF;AAMC,sBAAK"}
1
+ {"version":3,"file":"unify.js","sourceRoot":"","sources":["../../lib/unify.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,iCAAkC;AAGlC,iCAEe;AAEf,gCAEgB;AAIhB,8CAA0C;AAS1C,MAAM,OAAO;IAMX,YAAY,GAIX;QACC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAA;QAExB,4DAA4D;QAC5D,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;IACnD,CAAC;IAGD,KAAK,CAAC,GAIL;QACC,OAAO,IAAI,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;YAC3B,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG;YACxB,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CAAA;IACJ,CAAC;IAGD,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;SAC5B,CAAC,CAAA;IACJ,CAAC;IAGD,IAAI,CAAC,GAAW;QACd,yCAAyC;QAEzC,uBAAuB;QACvB,IAAI,IAAI,CAAC,IAAI,YAAY,eAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;YAC/C,IAAI,IAAI,GAAW,IAAI,CAAC,IAAI,CAAA;YAC5B,IAAI,EAAE,GAAG,CAAC,CAAA;YACV,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,YAAY,eAAM,EAAE,EAAE,EAAE,EAAE;gBAC5D,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;aACtB;YAED,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC3B,OAAO,IAAI,CAAA;aACZ;SACF;IACH,CAAC;CACF;AA6CC,0BAAO;AA1CT,MAAM,KAAK;IAOT,YAAY,IAAkB,EAAE,IAAW;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,WAAI,EAAE,CAAA;QAC9B,IAAI,QAAQ,KAAK,OAAO,IAAI,EAAE;YAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SAC7B;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;QACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QAEb,IAAI,GAAG,GAAG,IAAI,CAAA;QACd,IAAI,GAAG,GAAY,IAAI,OAAO,CAAC;YAC7B,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAGF,gDAAgD;QAChD,sDAAsD;QAGtD,IAAI,KAAK,GAAG,GAAG,CAAA;QACf,KAAK,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,WAAI,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE;YACjE,GAAG,GAAG,IAAA,UAAK,EAAC,GAAG,EAAE,GAAG,EAAE,UAAG,CAAC,CAAA;YAC1B,uCAAuC;YACvC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;SAC/B;QAGD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;CACF;AAMC,sBAAK"}
@@ -0,0 +1,12 @@
1
+ import type { Val } from '../type';
2
+ import { ValBase } from '../val/ValBase';
3
+ import { Context } from '../unify';
4
+ declare class ConjunctVal extends ValBase {
5
+ constructor(peg: Val[], ctx?: Context);
6
+ append(peer: Val): ConjunctVal;
7
+ unify(peer: Val, ctx: Context): Val;
8
+ get canon(): any;
9
+ gen(ctx?: Context): any;
10
+ }
11
+ declare function norm(terms: Val[]): Val[];
12
+ export { norm, ConjunctVal, };