aontu 0.2.0 → 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 +5 -1
- package/dist/aontu.js +3 -1
- package/dist/aontu.js.map +1 -1
- package/dist/lib/lang.js +77 -238
- package/dist/lib/lang.js.map +1 -1
- package/dist/lib/op/unite.js +1 -1
- package/dist/lib/op/unite.js.map +1 -1
- package/dist/lib/unify.js +1 -0
- package/dist/lib/unify.js.map +1 -1
- package/dist/lib/val.d.ts +12 -1
- package/dist/lib/val.js +83 -28
- package/dist/lib/val.js.map +1 -1
- package/lib/lang.ts +117 -276
- package/lib/op/unite.ts +1 -1
- package/lib/unify.ts +1 -0
- package/lib/val.ts +118 -34
- package/package.json +10 -9
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,
|
|
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': {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
'
|
|
37
|
-
|
|
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,89 @@ 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
|
-
|
|
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
|
|
295
|
-
|
|
296
|
-
|
|
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;
|
|
297
114
|
let valtype = typeof valnode;
|
|
115
|
+
// console.log('VAL RULE', rule.use, rule.node)
|
|
298
116
|
if ('string' === valtype) {
|
|
299
|
-
valnode = new val_1.StringVal(
|
|
117
|
+
valnode = addpath(new val_1.StringVal(r.node), r.keep.path);
|
|
300
118
|
}
|
|
301
119
|
else if ('number' === valtype) {
|
|
302
|
-
if (Number.isInteger(
|
|
303
|
-
valnode = new val_1.IntegerVal(
|
|
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(
|
|
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(
|
|
128
|
+
valnode = addpath(new val_1.BooleanVal(r.node), r.keep.path);
|
|
311
129
|
}
|
|
312
|
-
let st =
|
|
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
|
-
|
|
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
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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(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
|
+
});
|
|
329
162
|
return rs;
|
|
330
163
|
});
|
|
331
164
|
jsonic.rule('pair', (rs) => {
|
|
332
|
-
let orig_bc = rs.def.bc
|
|
165
|
+
// let orig_bc: any = rs.def.bc
|
|
333
166
|
rs
|
|
334
167
|
.open([{ s: [CJ, CL], p: 'val', u: { spread: true }, g: 'spread' }])
|
|
335
|
-
.bc((...rest) => {
|
|
336
|
-
orig_bc(...rest)
|
|
337
|
-
|
|
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
|
|
338
175
|
if (rule.use.spread) {
|
|
339
176
|
rule.node[val_1.MapVal.SPREAD] =
|
|
340
177
|
(rule.node[val_1.MapVal.SPREAD] || { o: rule.o0.src, v: [] });
|
|
341
178
|
rule.node[val_1.MapVal.SPREAD].v.push(rule.child.node);
|
|
342
179
|
}
|
|
180
|
+
return undefined;
|
|
343
181
|
});
|
|
344
182
|
return rs;
|
|
345
183
|
});
|
|
@@ -374,6 +212,7 @@ class Lang {
|
|
|
374
212
|
if (opts && null != opts.log && Number.isInteger(opts.log)) {
|
|
375
213
|
jm.log = opts.log;
|
|
376
214
|
}
|
|
215
|
+
// jm.log = -1
|
|
377
216
|
let val = this.jsonic(src, jm);
|
|
378
217
|
return val;
|
|
379
218
|
}
|
package/dist/lib/lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../lib/lang.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,qDAM4B;AAE5B,qDAE4B;AAE5B,iEAE+C;AAE/C,uCAGqB;AAQrB,+
|
|
1
|
+
{"version":3,"file":"lang.js","sourceRoot":"","sources":["../../lib/lang.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/op/unite.js
CHANGED
package/dist/lib/op/unite.js.map
CHANGED
|
@@ -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;
|
|
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
package/dist/lib/unify.js.map
CHANGED
|
@@ -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;
|
|
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, };
|