aontu 0.2.0 → 0.5.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"}
package/dist/lib/lang.js CHANGED
@@ -6,6 +6,7 @@ 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,47 +23,49 @@ 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, {
@@ -92,254 +95,97 @@ let AontuJsonic = function aontu(jsonic) {
92
95
  right: 14000000,
93
96
  },
94
97
  },
95
- evaluate: (op, terms) => {
96
- // console.log('LANG EVAL', op, terms)
97
- 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;
98
103
  }
99
104
  });
100
- // console.log(jsonic.token)
101
105
  let CJ = jsonic.token['#E&'];
102
106
  let CL = jsonic.token.CL;
103
- // let NR = jsonic.token.NR
104
- // let TX = jsonic.token.TX
105
- // let ST = jsonic.token.ST
106
- // let VL = jsonic.token.VL
107
- // let OB = jsonic.token.OB
108
- // let OS = jsonic.token.OS
109
- // let DJ = jsonic.token['#A|']
110
- // let FS = jsonic.token['#A/']
111
- // let AK = jsonic.token['#A*']
112
- // let EQ = jsonic.token['#A=']
113
- // JSONIC-UPDATE: rule.open[], rule.close[] - replace with rule.oN|cN
114
- // jsonic.rule('expr', (rs: RuleSpec) => {
115
- // rs
116
- // .open([
117
- // { s: [[CJ, DJ, AK]], p: 'disjunct', b: 1, n: { expr: 1 } },
118
- // ])
119
- // .close([
120
- // { s: [] }
121
- // ])
122
- // // NOTE: expr node are meta structures, not Vals
123
- // // t=most recent term on the left, o=Val
124
- // .bo((r: Rule) => r.node = { t: r.node })
125
- // .ac((r: Rule) => {
126
- // let cn = r.child.node.o
127
- // if (cn instanceof PrefVal) {
128
- // return r.o0.bad('single-pref')
129
- // }
130
- // // replace first val with expr val
131
- // r.node = cn
132
- // if ('val' === r.parent?.name) {
133
- // r.parent.node = r.node
134
- // }
135
- // })
136
- // })
137
- // jsonic.rule('disjunct', (rs: RuleSpec) => {
138
- // rs
139
- // .open([
140
- // {
141
- // s: [CJ], p: 'conjunct', b: 1
142
- // },
143
- // {
144
- // s: [AK], p: 'pref', b: 1
145
- // },
146
- // {
147
- // s: [DJ, AK], p: 'pref', b: 1,
148
- // a: (r: Rule) => {
149
- // // Append to existing or start new
150
- // r.node.o = r.node.o instanceof DisjunctVal ?
151
- // r.node.o : new DisjunctVal([r.node.t])
152
- // }
153
- // },
154
- // {
155
- // s: [DJ, [NR, TX, ST, VL, OB, OS]], b: 1,
156
- // p: 'val',
157
- // a: (r: Rule) => {
158
- // // Append to existing or start new
159
- // r.node.o = r.node.o instanceof DisjunctVal ?
160
- // r.node.o : new DisjunctVal([r.node.t])
161
- // }
162
- // },
163
- // ])
164
- // .close([
165
- // {
166
- // s: [DJ], r: 'disjunct', b: 1, a: (r: Rule) => {
167
- // // higher precedence term (e.g &) was on the left
168
- // let cn = r.child.node?.o || r.child.node
169
- // r.node.t = cn
170
- // }
171
- // },
172
- // {
173
- // s: [CJ], r: 'disjunct', b: 1, a: (r: Rule) => {
174
- // // & with higher precedence to the right
175
- // let cn = r.child.node?.o || r.child.node
176
- // r.node.t = cn
177
- // r.child.node = null
178
- // }
179
- // },
180
- // {}
181
- // ])
182
- // .ac((r: Rule) => {
183
- // // child values may be normal or expr metas
184
- // let cn = r.child.node?.o || r.child.node
185
- // if (cn) {
186
- // if (r.node.o instanceof DisjunctVal) {
187
- // r.node.o.append(cn)
188
- // }
189
- // else {
190
- // // this rule was just a pass-through
191
- // r.node.o = cn
192
- // }
193
- // }
194
- // })
195
- // })
196
- // jsonic.rule('conjunct', (rs: RuleSpec) => {
197
- // rs
198
- // .open([
199
- // {
200
- // s: [CJ, [NR, TX, ST, VL, OB, OS, FS]], b: 1,
201
- // p: 'val',
202
- // a: (r: Rule) => {
203
- // r.node = {
204
- // o: r.node.o instanceof ConjunctVal ?
205
- // r.node.o : new ConjunctVal([r.node.t])
206
- // }
207
- // }
208
- // },
209
- // ])
210
- // .close([
211
- // {
212
- // s: [CJ], r: 'conjunct', b: 1
213
- // },
214
- // {}
215
- // ])
216
- // .ac((r: Rule) => {
217
- // let cn = r.child.node?.o || r.child.node
218
- // if (cn) {
219
- // if (r.node.o instanceof ConjunctVal) {
220
- // r.node.o.append(cn)
221
- // }
222
- // else {
223
- // r.node.o = cn
224
- // }
225
- // }
226
- // })
227
- // })
228
- // jsonic.rule('path', (rs: RuleSpec) => {
229
- // rs
230
- // .open([
231
- // { s: [FS, [TX, ST, NR, VL]], p: 'part', b: 2 }
232
- // ])
233
- // .bo((r: Rule) => r.node = new RefVal('/'))
234
- // })
235
- // jsonic.rule('part', (rs: RuleSpec) => {
236
- // rs.
237
- // open([
238
- // {
239
- // s: [FS, [TX, ST, NR, VL]], r: 'part', a: (r: Rule) => {
240
- // r.node.append(r.o1.src)
241
- // }
242
- // },
243
- // {}, // no more parts
244
- // ])
245
- // })
246
- // // rs.def.open.unshift({
247
- // // s: [[CJ, DJ], EQ], p: 'val', u: { spread: true }
248
- // // })
249
- // // // TODO: make before/after function[]
250
- // // let orig_bc: any = rs.def.bc
251
- // // rs.def.bc = function(rule: Rule, ctx: Context) {
252
- // // let out = orig_bc.call(this, rule, ctx)
253
- // // if (rule.use.spread) {
254
- // // rule.node[MapVal.SPREAD] =
255
- // // (rule.node[MapVal.SPREAD] || { o: rule.o0.src, v: [] })
256
- // // rule.node[MapVal.SPREAD].v.push(rule.child.node)
257
- // // }
258
- // // return out
259
- // // }
260
- // return rs
261
- // })
262
- // jsonic.rule('pref', (rs: RuleSpec) => {
263
- // rs
264
- // .open([
265
- // {
266
- // s: [AK, [NR, TX, ST, VL, OB, OS, FS]], b: 1,
267
- // p: 'val',
268
- // },
269
- // ])
270
- // .close([
271
- // // Can't be in a conjunct
272
- // { s: [CJ], e: (r: Rule) => r.o1 },
273
- // {}
274
- // ])
275
- // .ac((r: Rule) => {
276
- // r.node = new PrefVal(r.child.node)
277
- // })
278
- // })
279
107
  jsonic.rule('val', (rs) => {
280
- // rs.def.open.unshift(
281
- // // Prefs are always within an expression
282
- // { s: [AK, [NR, TX, ST, VL, OB, OS, FS]], p: 'expr', b: 2 },
283
- // { s: [FS, [TX, ST, NR, VL]], p: 'path', b: 2 },
284
- // )
285
- // rs.def.close.unshift(
286
- // {
287
- // s: [[CJ, DJ]], p: 'expr', b: 1, c: (r: Rule) => {
288
- // return null == r.n.expr || 0 === r.n.expr
289
- // }
290
- // },
291
- // )
292
108
  // TODO: wrap utility needed for jsonic to do this?
293
- let orig_bc = rs.def.bc;
294
- rs.def.bc = function (rule, ctx) {
295
- let out = orig_bc.call(this, rule, ctx);
296
- 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((r, ctx) => {
113
+ let valnode = r.node;
297
114
  let valtype = typeof valnode;
115
+ // console.log('VAL RULE', valtype, r.use, r.node)
298
116
  if ('string' === valtype) {
299
- valnode = new val_1.StringVal(rule.node);
117
+ valnode = addpath(new val_1.StringVal(r.node), r.keep.path);
300
118
  }
301
119
  else if ('number' === valtype) {
302
- if (Number.isInteger(rule.node)) {
303
- 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);
304
122
  }
305
123
  else {
306
- valnode = new val_1.NumberVal(rule.node);
124
+ valnode = addpath(new val_1.NumberVal(r.node), r.keep.path);
307
125
  }
308
126
  }
309
127
  else if ('boolean' === valtype) {
310
- valnode = new val_1.BooleanVal(rule.node);
128
+ valnode = addpath(new val_1.BooleanVal(r.node), r.keep.path);
311
129
  }
312
- let st = rule.o0;
130
+ let st = r.o0;
313
131
  valnode.row = st.rI;
314
132
  valnode.col = st.cI;
315
133
  // JSONIC-UPDATE: still valid? check multisource
316
134
  valnode.url = ctx.meta.multisource && ctx.meta.multisource.path;
317
- rule.node = valnode;
318
- return out;
319
- };
135
+ r.node = valnode;
136
+ // return out
137
+ return undefined;
138
+ });
320
139
  return rs;
321
140
  });
322
141
  jsonic.rule('map', (rs) => {
323
- let orig_bc = rs.def.bc;
324
- rs.def.bc = function (rule, ctx) {
325
- let out = orig_bc ? orig_bc.call(this, rule, ctx) : undefined;
326
- rule.node = new val_1.MapVal(rule.node);
327
- return out;
328
- };
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((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((r) => {
158
+ r.node = addpath(new val_1.ListVal(r.node), r.keep.path);
159
+ // return out
160
+ return undefined;
161
+ });
329
162
  return rs;
330
163
  });
331
164
  jsonic.rule('pair', (rs) => {
332
- let orig_bc = rs.def.bc;
333
165
  rs
334
166
  .open([{ s: [CJ, CL], p: 'val', u: { spread: true }, g: 'spread' }])
335
- .bc((...rest) => {
336
- orig_bc(...rest);
337
- let rule = rest[0];
167
+ .bc((rule) => {
168
+ // TRAVERSE PARENTS TO GET PATH
338
169
  if (rule.use.spread) {
339
170
  rule.node[val_1.MapVal.SPREAD] =
340
171
  (rule.node[val_1.MapVal.SPREAD] || { o: rule.o0.src, v: [] });
341
172
  rule.node[val_1.MapVal.SPREAD].v.push(rule.child.node);
342
173
  }
174
+ return undefined;
175
+ });
176
+ return rs;
177
+ });
178
+ jsonic.rule('elem', (rs) => {
179
+ rs
180
+ .open([{ s: [CJ, CL], p: 'val', u: { spread: true }, g: 'spread' }])
181
+ .bc((rule) => {
182
+ // TRAVERSE PARENTS TO GET PATH
183
+ 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);
187
+ }
188
+ return undefined;
343
189
  });
344
190
  return rs;
345
191
  });
@@ -374,6 +220,7 @@ class Lang {
374
220
  if (opts && null != opts.log && Number.isInteger(opts.log)) {
375
221
  jm.log = opts.log;
376
222
  }
223
+ // jm.log = -1
377
224
  let val = this.jsonic(src, jm);
378
225
  return val;
379
226
  }
@@ -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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"}
@@ -40,7 +40,7 @@ const unite = (ctx, a, b, whence) => {
40
40
  out = a.unify(b, ctx);
41
41
  }
42
42
  }
43
- if (!out) {
43
+ if (!out || !out.unify) {
44
44
  out = val_1.Nil.make(ctx, 'unite', a, b);
45
45
  }
46
46
  if (val_1.DONE !== out.done) {
@@ -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,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,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,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"}
package/dist/lib/unify.js CHANGED
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"unify.js","sourceRoot":"","sources":["../../lib/unify.ts"],"names":[],"mappings":"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"}
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;
@@ -102,6 +113,7 @@ declare class RefVal extends Val {
102
113
  constructor(peg: any[], abs?: boolean);
103
114
  append(part: any): void;
104
115
  unify(peer: Val, ctx: Context): Val;
116
+ same(peer: Val): boolean;
105
117
  get canon(): any;
106
118
  gen(_ctx?: Context): undefined;
107
119
  }
@@ -109,7 +121,8 @@ declare class PrefVal extends Val {
109
121
  pref: Val;
110
122
  constructor(peg: any, pref?: any, ctx?: Context);
111
123
  unify(peer: Val, ctx: Context): Val;
124
+ same(peer: Val): boolean;
112
125
  get canon(): any;
113
126
  gen(ctx?: Context): any;
114
127
  }
115
- export { DONE, Integer, Val, TOP, Nil, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, MapVal, ConjunctVal, DisjunctVal, RefVal, PrefVal, };
128
+ export { DONE, Integer, Val, TOP, Nil, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, MapVal, ListVal, ConjunctVal, DisjunctVal, RefVal, PrefVal, };