aontu 0.1.1 → 0.3.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.
package/aontu.ts CHANGED
@@ -1,10 +1,14 @@
1
- /* Copyright (c) 2021 Richard Rodger, MIT License */
1
+ /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
2
2
 
3
3
  import { Options } from './lib/common'
4
4
  import { Lang, includeFileResolver } from './lib/lang'
5
5
  import { Unify } from './lib/unify'
6
6
  import { Val, Nil } from './lib/val'
7
7
 
8
+ // FIX: multisource file loading within Conjuct fails
9
+
10
+ // TODO: propogate property path and url properly over unification, and multisource
11
+
8
12
  /*
9
13
  NEXT:
10
14
  inject path from multisource into Vals when created
package/dist/aontu.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.util = exports.Lang = exports.Nil = exports.Val = exports.Aontu = void 0;
5
5
  const lang_1 = require("./lib/lang");
@@ -8,6 +8,8 @@ const unify_1 = require("./lib/unify");
8
8
  const val_1 = require("./lib/val");
9
9
  Object.defineProperty(exports, "Val", { enumerable: true, get: function () { return val_1.Val; } });
10
10
  Object.defineProperty(exports, "Nil", { enumerable: true, get: function () { return val_1.Nil; } });
11
+ // FIX: multisource file loading within Conjuct fails
12
+ // TODO: propogate property path and url properly over unification, and multisource
11
13
  /*
12
14
  NEXT:
13
15
  inject path from multisource into Vals when created
package/dist/aontu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"aontu.js","sourceRoot":"","sources":["../aontu.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAGpD,qCAAsD;AAkE5B,qFAlEjB,WAAI,OAkEiB;AAjE9B,uCAAmC;AACnC,mCAAoC;AAgEpB,oFAhEP,SAAG,OAgEO;AAAE,oFAhEP,SAAG,OAgEO;AA9DxB;;;;;EAKE;AAEF,wBAAwB;AAExB,sBAAsB;AACtB,gDAAgD;AAEhD,wCAAwC;AACxC,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,KAAK;AAEL;;;GAGG;AACH,SAAS,KAAK,CAAC,GAA8B,EAAE,KAAwB;IACrE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEnC,IAAI,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA;IACzB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,IAAI,GAAG,GAAG,IAAI,aAAK,CAAC,GAAqB,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IACjB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IAEjB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IAEb,OAAO,GAAG,CAAA;AACZ,CAAC;AAuBQ,sBAAK;AArBd,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,CACP,GAA8B,EAC9B,KAAwB,EACf,EAAE;QACX,mDAAmD;QACnD,IAAI,OAAO,GAAqB,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAEvE,IAAI,IAAI,GAAY;YAClB,GAAG;gBACD,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,0BAAmB;aAC9B;YACD,GAAG,OAAO;YACV,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAE+B,oBAAI;AACpC,kBAAe,KAAK,CAAA"}
1
+ {"version":3,"file":"aontu.js","sourceRoot":"","sources":["../aontu.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,qCAAsD;AAsE5B,qFAtEjB,WAAI,OAsEiB;AArE9B,uCAAmC;AACnC,mCAAoC;AAoEpB,oFApEP,SAAG,OAoEO;AAAE,oFApEP,SAAG,OAoEO;AAlExB,qDAAqD;AAErD,mFAAmF;AAEnF;;;;;EAKE;AAEF,wBAAwB;AAExB,sBAAsB;AACtB,gDAAgD;AAEhD,wCAAwC;AACxC,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,KAAK;AAEL;;;GAGG;AACH,SAAS,KAAK,CAAC,GAA8B,EAAE,KAAwB;IACrE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEnC,IAAI,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA;IACzB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9C,IAAI,GAAG,GAAG,IAAI,aAAK,CAAC,GAAqB,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IACjB,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;IAEjB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;IAEb,OAAO,GAAG,CAAA;AACZ,CAAC;AAuBQ,sBAAK;AArBd,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,CACP,GAA8B,EAC9B,KAAwB,EACf,EAAE;QACX,mDAAmD;QACnD,IAAI,OAAO,GAAqB,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;QAEvE,IAAI,IAAI,GAAY;YAClB,GAAG;gBACD,GAAG,EAAE,EAAE;gBACP,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,0BAAmB;aAC9B;YACD,GAAG,OAAO;YACV,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,CAAA;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAE+B,oBAAI;AACpC,kBAAe,KAAK,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Jsonic } from 'jsonic';
1
+ import { Jsonic } from '@jsonic/jsonic-next';
2
2
  import { Options } from './common';
3
3
  import { Val } from './val';
4
4
  declare class Site {
package/dist/lib/lang.js CHANGED
@@ -2,10 +2,11 @@
2
2
  /* Copyright (c) 2021 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.includeFileResolver = exports.Site = exports.Lang = void 0;
5
- const jsonic_1 = require("jsonic");
5
+ const jsonic_next_1 = require("@jsonic/jsonic-next");
6
6
  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
+ const path_1 = require("@jsonic/path");
9
10
  const val_1 = require("./val");
10
11
  class Site {
11
12
  constructor(val) {
@@ -22,56 +23,60 @@ class Site {
22
23
  exports.Site = Site;
23
24
  Site.NONE = new Site(val_1.TOP);
24
25
  let AontuJsonic = function aontu(jsonic) {
26
+ jsonic.use(path_1.Path);
27
+ // TODO: refactor Val constructor
28
+ let addpath = (v, p) => (v.path = [...(p || [])], v);
25
29
  jsonic.options({
26
30
  value: {
27
- // JSONIC-UPDATE: map: { val: ... }
28
31
  map: {
29
32
  // NOTE: specify with functions as jsonic/deep will
30
33
  // remove class prototype as options are assumed plain
31
34
  // (except for functions).
32
35
  // TODO: jsonic should be able to pass context into these
33
- 'string': { val: () => new val_1.ScalarTypeVal(String) },
34
- 'number': { val: () => new val_1.ScalarTypeVal(Number) },
35
- 'integer': { val: () => new val_1.ScalarTypeVal(val_1.Integer) },
36
- 'boolean': { val: () => new val_1.ScalarTypeVal(Boolean) },
37
- 'nil': { val: () => new val_1.Nil('literal') },
36
+ 'string': {
37
+ val: (r) => addpath(new val_1.ScalarTypeVal(String), r.keep.path)
38
+ },
39
+ 'number': {
40
+ val: (r) => addpath(new val_1.ScalarTypeVal(Number), r.keep.path)
41
+ },
42
+ 'integer': {
43
+ val: (r) => addpath(new val_1.ScalarTypeVal(val_1.Integer), r.keep.path)
44
+ },
45
+ 'boolean': {
46
+ val: (r) => addpath(new val_1.ScalarTypeVal(Boolean), r.keep.path)
47
+ },
48
+ 'nil': {
49
+ val: (r) => addpath(new val_1.Nil('literal'), r.keep.path)
50
+ },
51
+ // TODO: FIX: need a TOP instance to hold path
38
52
  'top': { val: () => val_1.TOP },
39
53
  }
40
54
  },
41
- // // JSONIC-UPDATE: fixed: { token }
42
- // fixed: {
43
- // token: {
44
- // '#A&': '&',
45
- // '#A|': '|',
46
- // '#A/': '/',
47
- // '#A*': '*', // TODO: REVIEW char as * is a bit overloaded
48
- // '#A=': '=',
49
- // }
50
- // },
51
- // JSONIC-UPDATE: check impl
52
55
  map: {
53
56
  merge: (prev, curr) => {
54
57
  let pval = prev;
55
58
  let cval = curr;
56
- return new val_1.ConjunctVal([pval, cval]);
59
+ return addpath(new val_1.ConjunctVal([pval, cval]), prev.path);
57
60
  }
58
61
  }
59
62
  });
60
63
  let opmap = {
61
- 'conjunct-infix': (_op, terms) => new val_1.ConjunctVal(terms),
62
- 'disjunct-infix': (_op, terms) => new val_1.DisjunctVal(terms),
63
- 'dot-prefix': (_op, terms) => new val_1.RefVal(terms, true),
64
- 'dot-infix': (_op, terms) => new val_1.RefVal(terms),
65
- 'star-prefix': (_op, terms) => new val_1.PrefVal(terms[0]),
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),
66
69
  };
67
70
  jsonic
68
71
  .use(expr_1.Expr, {
69
72
  op: {
73
+ // disjunct > conjunct: c & b|a -> c & (b|a)
70
74
  'conjunct': {
71
75
  infix: true, src: '&', left: 14000, right: 15000
72
76
  },
73
77
  'disjunct': {
74
- infix: true, src: '|', left: 14000, right: 15000
78
+ // infix: true, src: '|', left: 14000, right: 15000
79
+ infix: true, src: '|', left: 16000, right: 17000
75
80
  },
76
81
  'dot-infix': {
77
82
  src: '.',
@@ -90,254 +95,89 @@ let AontuJsonic = function aontu(jsonic) {
90
95
  right: 14000000,
91
96
  },
92
97
  },
93
- evaluate: (op, terms) => {
94
- // console.log('LANG EVAL', op, terms)
95
- return opmap[op.name](op, terms);
98
+ evaluate: (r, op, terms) => {
99
+ // console.log('LANG EVAL', r.keep, op, terms)
100
+ let val = opmap[op.name](r, op, terms);
101
+ // console.dir(val, { depth: null })
102
+ return val;
96
103
  }
97
104
  });
98
- // console.log(jsonic.token)
99
105
  let CJ = jsonic.token['#E&'];
100
106
  let CL = jsonic.token.CL;
101
- // let NR = jsonic.token.NR
102
- // let TX = jsonic.token.TX
103
- // let ST = jsonic.token.ST
104
- // let VL = jsonic.token.VL
105
- // let OB = jsonic.token.OB
106
- // let OS = jsonic.token.OS
107
- // let DJ = jsonic.token['#A|']
108
- // let FS = jsonic.token['#A/']
109
- // let AK = jsonic.token['#A*']
110
- // let EQ = jsonic.token['#A=']
111
- // JSONIC-UPDATE: rule.open[], rule.close[] - replace with rule.oN|cN
112
- // jsonic.rule('expr', (rs: RuleSpec) => {
113
- // rs
114
- // .open([
115
- // { s: [[CJ, DJ, AK]], p: 'disjunct', b: 1, n: { expr: 1 } },
116
- // ])
117
- // .close([
118
- // { s: [] }
119
- // ])
120
- // // NOTE: expr node are meta structures, not Vals
121
- // // t=most recent term on the left, o=Val
122
- // .bo((r: Rule) => r.node = { t: r.node })
123
- // .ac((r: Rule) => {
124
- // let cn = r.child.node.o
125
- // if (cn instanceof PrefVal) {
126
- // return r.o0.bad('single-pref')
127
- // }
128
- // // replace first val with expr val
129
- // r.node = cn
130
- // if ('val' === r.parent?.name) {
131
- // r.parent.node = r.node
132
- // }
133
- // })
134
- // })
135
- // jsonic.rule('disjunct', (rs: RuleSpec) => {
136
- // rs
137
- // .open([
138
- // {
139
- // s: [CJ], p: 'conjunct', b: 1
140
- // },
141
- // {
142
- // s: [AK], p: 'pref', b: 1
143
- // },
144
- // {
145
- // s: [DJ, AK], p: 'pref', b: 1,
146
- // a: (r: Rule) => {
147
- // // Append to existing or start new
148
- // r.node.o = r.node.o instanceof DisjunctVal ?
149
- // r.node.o : new DisjunctVal([r.node.t])
150
- // }
151
- // },
152
- // {
153
- // s: [DJ, [NR, TX, ST, VL, OB, OS]], b: 1,
154
- // p: 'val',
155
- // a: (r: Rule) => {
156
- // // Append to existing or start new
157
- // r.node.o = r.node.o instanceof DisjunctVal ?
158
- // r.node.o : new DisjunctVal([r.node.t])
159
- // }
160
- // },
161
- // ])
162
- // .close([
163
- // {
164
- // s: [DJ], r: 'disjunct', b: 1, a: (r: Rule) => {
165
- // // higher precedence term (e.g &) was on the left
166
- // let cn = r.child.node?.o || r.child.node
167
- // r.node.t = cn
168
- // }
169
- // },
170
- // {
171
- // s: [CJ], r: 'disjunct', b: 1, a: (r: Rule) => {
172
- // // & with higher precedence to the right
173
- // let cn = r.child.node?.o || r.child.node
174
- // r.node.t = cn
175
- // r.child.node = null
176
- // }
177
- // },
178
- // {}
179
- // ])
180
- // .ac((r: Rule) => {
181
- // // child values may be normal or expr metas
182
- // let cn = r.child.node?.o || r.child.node
183
- // if (cn) {
184
- // if (r.node.o instanceof DisjunctVal) {
185
- // r.node.o.append(cn)
186
- // }
187
- // else {
188
- // // this rule was just a pass-through
189
- // r.node.o = cn
190
- // }
191
- // }
192
- // })
193
- // })
194
- // jsonic.rule('conjunct', (rs: RuleSpec) => {
195
- // rs
196
- // .open([
197
- // {
198
- // s: [CJ, [NR, TX, ST, VL, OB, OS, FS]], b: 1,
199
- // p: 'val',
200
- // a: (r: Rule) => {
201
- // r.node = {
202
- // o: r.node.o instanceof ConjunctVal ?
203
- // r.node.o : new ConjunctVal([r.node.t])
204
- // }
205
- // }
206
- // },
207
- // ])
208
- // .close([
209
- // {
210
- // s: [CJ], r: 'conjunct', b: 1
211
- // },
212
- // {}
213
- // ])
214
- // .ac((r: Rule) => {
215
- // let cn = r.child.node?.o || r.child.node
216
- // if (cn) {
217
- // if (r.node.o instanceof ConjunctVal) {
218
- // r.node.o.append(cn)
219
- // }
220
- // else {
221
- // r.node.o = cn
222
- // }
223
- // }
224
- // })
225
- // })
226
- // jsonic.rule('path', (rs: RuleSpec) => {
227
- // rs
228
- // .open([
229
- // { s: [FS, [TX, ST, NR, VL]], p: 'part', b: 2 }
230
- // ])
231
- // .bo((r: Rule) => r.node = new RefVal('/'))
232
- // })
233
- // jsonic.rule('part', (rs: RuleSpec) => {
234
- // rs.
235
- // open([
236
- // {
237
- // s: [FS, [TX, ST, NR, VL]], r: 'part', a: (r: Rule) => {
238
- // r.node.append(r.o1.src)
239
- // }
240
- // },
241
- // {}, // no more parts
242
- // ])
243
- // })
244
- // // rs.def.open.unshift({
245
- // // s: [[CJ, DJ], EQ], p: 'val', u: { spread: true }
246
- // // })
247
- // // // TODO: make before/after function[]
248
- // // let orig_bc: any = rs.def.bc
249
- // // rs.def.bc = function(rule: Rule, ctx: Context) {
250
- // // let out = orig_bc.call(this, rule, ctx)
251
- // // if (rule.use.spread) {
252
- // // rule.node[MapVal.SPREAD] =
253
- // // (rule.node[MapVal.SPREAD] || { o: rule.o0.src, v: [] })
254
- // // rule.node[MapVal.SPREAD].v.push(rule.child.node)
255
- // // }
256
- // // return out
257
- // // }
258
- // return rs
259
- // })
260
- // jsonic.rule('pref', (rs: RuleSpec) => {
261
- // rs
262
- // .open([
263
- // {
264
- // s: [AK, [NR, TX, ST, VL, OB, OS, FS]], b: 1,
265
- // p: 'val',
266
- // },
267
- // ])
268
- // .close([
269
- // // Can't be in a conjunct
270
- // { s: [CJ], e: (r: Rule) => r.o1 },
271
- // {}
272
- // ])
273
- // .ac((r: Rule) => {
274
- // r.node = new PrefVal(r.child.node)
275
- // })
276
- // })
277
107
  jsonic.rule('val', (rs) => {
278
- // rs.def.open.unshift(
279
- // // Prefs are always within an expression
280
- // { s: [AK, [NR, TX, ST, VL, OB, OS, FS]], p: 'expr', b: 2 },
281
- // { s: [FS, [TX, ST, NR, VL]], p: 'path', b: 2 },
282
- // )
283
- // rs.def.close.unshift(
284
- // {
285
- // s: [[CJ, DJ]], p: 'expr', b: 1, c: (r: Rule) => {
286
- // return null == r.n.expr || 0 === r.n.expr
287
- // }
288
- // },
289
- // )
290
108
  // TODO: wrap utility needed for jsonic to do this?
291
- let orig_bc = rs.def.bc;
292
- rs.def.bc = function (rule, ctx) {
293
- let out = orig_bc.call(this, rule, ctx);
294
- let valnode = rule.node;
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(false, (r, ctx) => {
113
+ let valnode = r.node;
295
114
  let valtype = typeof valnode;
115
+ // console.log('VAL RULE', rule.use, rule.node)
296
116
  if ('string' === valtype) {
297
- valnode = new val_1.StringVal(rule.node);
117
+ valnode = addpath(new val_1.StringVal(r.node), r.keep.path);
298
118
  }
299
119
  else if ('number' === valtype) {
300
- if (Number.isInteger(rule.node)) {
301
- valnode = new val_1.IntegerVal(rule.node);
120
+ if (Number.isInteger(r.node)) {
121
+ valnode = addpath(new val_1.IntegerVal(r.node), r.keep.path);
302
122
  }
303
123
  else {
304
- valnode = new val_1.NumberVal(rule.node);
124
+ valnode = addpath(new val_1.NumberVal(r.node), r.keep.path);
305
125
  }
306
126
  }
307
127
  else if ('boolean' === valtype) {
308
- valnode = new val_1.BooleanVal(rule.node);
128
+ valnode = addpath(new val_1.BooleanVal(r.node), r.keep.path);
309
129
  }
310
- let st = rule.o0;
130
+ let st = r.o0;
311
131
  valnode.row = st.rI;
312
132
  valnode.col = st.cI;
313
133
  // JSONIC-UPDATE: still valid? check multisource
314
134
  valnode.url = ctx.meta.multisource && ctx.meta.multisource.path;
315
- rule.node = valnode;
316
- return out;
317
- };
135
+ r.node = valnode;
136
+ // return out
137
+ return undefined;
138
+ });
318
139
  return rs;
319
140
  });
320
141
  jsonic.rule('map', (rs) => {
321
- let orig_bc = rs.def.bc;
322
- rs.def.bc = function (rule, ctx) {
323
- let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined;
324
- rule.node = new val_1.MapVal(rule.node);
325
- return out;
326
- };
142
+ // let orig_bc = rs.def.bc
143
+ // rs.def.bc = function(rule: Rule, ctx: Context) {
144
+ // let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined
145
+ rs.bc(false, (r) => {
146
+ // console.log('MAP RULE', rule.use, rule.node)
147
+ r.node = addpath(new val_1.MapVal(r.node), r.keep.path);
148
+ // return out
149
+ return undefined;
150
+ });
151
+ return rs;
152
+ });
153
+ jsonic.rule('list', (rs) => {
154
+ // let orig_bc = rs.def.bc
155
+ // rs.def.bc = function(rule: Rule, ctx: Context) {
156
+ // let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined
157
+ rs.bc(false, (r) => {
158
+ r.node = addpath(new val_1.ListVal(r.node), r.keep.path);
159
+ // return out
160
+ return undefined;
161
+ });
327
162
  return rs;
328
163
  });
329
164
  jsonic.rule('pair', (rs) => {
330
- let orig_bc = rs.def.bc;
165
+ // let orig_bc: any = rs.def.bc
331
166
  rs
332
167
  .open([{ s: [CJ, CL], p: 'val', u: { spread: true }, g: 'spread' }])
333
- .bc((...rest) => {
334
- orig_bc(...rest);
335
- let rule = rest[0];
168
+ // .bc((...rest: any) => {
169
+ // orig_bc(...rest)
170
+ .bc(false, (rule) => {
171
+ // let rule = rest[0]
172
+ // console.log('PAIR RULE', rule.use, rule.node,
173
+ // rule.parent.name, rule.parent.use)
174
+ // TRAVERSE PARENTS TO GET PATH
336
175
  if (rule.use.spread) {
337
176
  rule.node[val_1.MapVal.SPREAD] =
338
177
  (rule.node[val_1.MapVal.SPREAD] || { o: rule.o0.src, v: [] });
339
178
  rule.node[val_1.MapVal.SPREAD].v.push(rule.child.node);
340
179
  }
180
+ return undefined;
341
181
  });
342
182
  return rs;
343
183
  });
@@ -353,7 +193,7 @@ class Lang {
353
193
  print: -1,
354
194
  };
355
195
  this.options = Object.assign({}, this.options, options);
356
- this.jsonic = jsonic_1.Jsonic.make()
196
+ this.jsonic = jsonic_next_1.Jsonic.make()
357
197
  .use(AontuJsonic)
358
198
  .use(multisource_1.MultiSource, {
359
199
  resolver: (options === null || options === void 0 ? void 0 : options.resolver) || includeFileResolver
@@ -372,6 +212,7 @@ class Lang {
372
212
  if (opts && null != opts.log && Number.isInteger(opts.log)) {
373
213
  jm.log = opts.log;
374
214
  }
215
+ // jm.log = -1
375
216
  let val = this.jsonic(src, jm);
376
217
  return val;
377
218
  }
@@ -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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"}
@@ -2,5 +2,5 @@ import { Context } from '../unify';
2
2
  import { Val } from '../val';
3
3
  import { disjunct } from './disjunct';
4
4
  import { unite } from './unite';
5
- declare type Operation = (ctx: Context, a?: Val, b?: Val) => Val;
5
+ declare type Operation = (ctx: Context, a?: Val, b?: Val, whence?: string) => Val;
6
6
  export { Operation, disjunct, unite, };
@@ -5,9 +5,11 @@ exports.unite = void 0;
5
5
  const val_1 = require("../val");
6
6
  // Vals should only have to unify downwards (in .unify) over Vals they understand.
7
7
  // and for complex Vals, TOP, which means self unify if not yet done
8
- const unite = (ctx, a, b) => {
8
+ const unite = (ctx, a, b, whence) => {
9
9
  let out = a;
10
- //console.log('Ua', a && a.canon, b && b.canon)
10
+ // console.log('AA OP unite IN', a?.canon, b?.canon,
11
+ // 'W', whence,
12
+ // 'E', 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
11
13
  if (b && (val_1.TOP === a || !a)) {
12
14
  //console.log('Utb', b.canon)
13
15
  out = b;
@@ -30,6 +32,7 @@ const unite = (ctx, a, b) => {
30
32
  //console.log('U', a.canon, b.canon)
31
33
  return b.unify(a, ctx);
32
34
  }
35
+ // Exactly equal scalars.
33
36
  else if (a.constructor === b.constructor && a.peg === b.peg) {
34
37
  out = update(a, b);
35
38
  }
@@ -37,12 +40,14 @@ const unite = (ctx, a, b) => {
37
40
  out = a.unify(b, ctx);
38
41
  }
39
42
  }
40
- if (!out) {
43
+ if (!out || !out.unify) {
41
44
  out = val_1.Nil.make(ctx, 'unite', a, b);
42
45
  }
43
46
  if (val_1.DONE !== out.done) {
44
47
  out = out.unify(val_1.TOP, ctx);
45
48
  }
49
+ // console.log('AA OP unite OUT', a?.canon, b?.canon, '->', out && out.canon,
50
+ // 0 < ctx?.err?.length ? ctx.err.map((e: Val) => e.canon) : '')
46
51
  return out;
47
52
  };
48
53
  exports.unite = unite;
@@ -1 +1 @@
1
- {"version":3,"file":"unite.js","sourceRoot":"","sources":["../../../lib/op/unite.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAKpD,gCAUe;AAIf,kFAAkF;AAClF,oEAAoE;AACpE,MAAM,KAAK,GAAc,CAAC,GAAY,EAAE,CAAO,EAAE,CAAO,EAAE,EAAE;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAA;IAEX,+CAA+C;IAE/C,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;aACI,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;aACI;YACH,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;SACtB;KACF;IAED,IAAI,CAAC,GAAG,EAAE;QACR,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,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,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"}
@@ -12,8 +12,9 @@ declare class Context {
12
12
  vc?: number;
13
13
  });
14
14
  clone(cfg: {
15
- root: Val;
15
+ root?: Val;
16
16
  path?: Path;
17
+ err?: Nil[];
17
18
  }): Context;
18
19
  descend(key: string): Context;
19
20
  find(ref: RefVal): MapVal | undefined;
package/dist/lib/unify.js CHANGED
@@ -15,8 +15,8 @@ class Context {
15
15
  }
16
16
  clone(cfg) {
17
17
  return new Context({
18
- root: cfg.root,
19
- err: this.err,
18
+ root: cfg.root || this.root,
19
+ err: cfg.err || this.err,
20
20
  vc: this.vc,
21
21
  });
22
22
  }
@@ -27,6 +27,7 @@ class Context {
27
27
  });
28
28
  }
29
29
  find(ref) {
30
+ // console.log('FIND', ref.path, ref.peg)
30
31
  // TODO: relative paths
31
32
  if (this.root instanceof val_1.MapVal && ref.absolute) {
32
33
  let node = this.root;
@@ -60,7 +61,6 @@ class Unify {
60
61
  // perhaps parse should count intial vals, paths, etc?
61
62
  let maxdc = 999;
62
63
  for (this.dc = 0; this.dc < maxdc && val_1.DONE !== res.done; this.dc++) {
63
- //res = res.unify(TOP, ctx)
64
64
  res = (0, op_1.unite)(ctx, res, val_1.TOP);
65
65
  ctx = ctx.clone({ root: res });
66
66
  }
@@ -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;IAOX,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,GAGL;QACC,OAAO,IAAI,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,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;QAEd,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;AA+CC,0BAAO;AA5CT,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;QAKtD,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,2BAA2B;YAC3B,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":"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"}
package/dist/lib/val.d.ts CHANGED
@@ -3,6 +3,7 @@ import { Site } from './lang';
3
3
  declare type ValMap = {
4
4
  [key: string]: Val;
5
5
  };
6
+ declare type ValList = Val[];
6
7
  declare const DONE = -1;
7
8
  declare const TOP: Val;
8
9
  declare abstract class Val {
@@ -81,6 +82,16 @@ declare class MapVal extends Val {
81
82
  get canon(): string;
82
83
  gen(ctx?: Context): any;
83
84
  }
85
+ declare class ListVal extends Val {
86
+ static SPREAD: symbol;
87
+ spread: {
88
+ cj: Val | undefined;
89
+ };
90
+ constructor(peg: ValList, ctx?: Context);
91
+ unify(peer: Val, ctx: Context): Val;
92
+ get canon(): string;
93
+ gen(ctx?: Context): any;
94
+ }
84
95
  declare class ConjunctVal extends Val {
85
96
  constructor(peg: Val[], ctx?: Context);
86
97
  append(peer: Val): ConjunctVal;
@@ -112,4 +123,4 @@ declare class PrefVal extends Val {
112
123
  get canon(): any;
113
124
  gen(ctx?: Context): any;
114
125
  }
115
- export { DONE, Integer, Val, TOP, Nil, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, MapVal, ConjunctVal, DisjunctVal, RefVal, PrefVal, };
126
+ export { DONE, Integer, Val, TOP, Nil, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, MapVal, ListVal, ConjunctVal, DisjunctVal, RefVal, PrefVal, };