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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nil.js","sourceRoot":"","sources":["../../../lib/val/Nil.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAOzD,kCAEgB;AAOhB,4CAEuB;AAMvB,MAAM,GAAI,SAAQ,iBAAO;IA8CvB,YAAY,GAAS,EAAE,GAAa;QAClC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QA9ClB,QAAG,GAAG,IAAI,CAAA;QA+CR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,qCAAqC;QACrC,IAAI,CAAC,IAAI,GAAG,WAAI,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,KAAU,EAAE,IAAa;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,GAAG,CAAC,IAAc;QAChB,OAAO,SAAS,CAAA;IAClB,CAAC;;AAID,kBAAG;AA9DH,sDAAsD;AAC/C,QAAI,GAAG,CAAC,GAAa,EAAE,GAAS,EAAE,EAAQ,EAAE,EAAQ,EAAE,EAAE;IAC7D,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAE3B,uDAAuD;IAEvD,sEAAsE;IACtE,IAAI,IAAI,IAAI,EAAE,EAAE;QACd,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;QAChB,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;QAChB,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;QAEhB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAA;QAEhB,IAAI,IAAI,IAAI,EAAE,EAAE;YACd,GAAG,CAAC,SAAS,GAAG,EAAE,CAAA;YAElB,IAAI,WAAW,GACb,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CACtB,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAClB,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CACzC,CAAA;YAEH,IAAI,WAAW,EAAE;gBACf,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;gBAChB,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;gBAChB,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;gBAChB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAA;gBAChB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAA;aACnB;SACF;KACF;IAED,IAAI,GAAG,EAAE;QACP,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAClB;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { Val } from '../type';
2
+ import { Context } from '../unify';
3
+ import { ValBase } from '../val/ValBase';
4
+ declare class PrefVal extends ValBase {
5
+ pref: Val;
6
+ constructor(peg: any, pref?: any, ctx?: Context);
7
+ unify(peer: Val, ctx: Context): Val;
8
+ same(peer: Val): boolean;
9
+ get canon(): any;
10
+ gen(ctx?: Context): any;
11
+ }
12
+ export { PrefVal, };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PrefVal = void 0;
5
+ const type_1 = require("../type");
6
+ const op_1 = require("../op/op");
7
+ const Nil_1 = require("../val/Nil");
8
+ const ValBase_1 = require("../val/ValBase");
9
+ class PrefVal extends ValBase_1.ValBase {
10
+ constructor(peg, pref, ctx) {
11
+ super(peg, ctx);
12
+ this.pref = pref || peg;
13
+ }
14
+ // PrefVal unify always returns a PrefVal
15
+ // PrefVals can only be removed by becoming Nil in a Disjunct
16
+ unify(peer, ctx) {
17
+ let done = true;
18
+ let out;
19
+ if (peer instanceof PrefVal) {
20
+ out = new PrefVal((0, op_1.unite)(ctx, this.peg, peer.peg, 'Pref000'), (0, op_1.unite)(ctx, this.pref, peer.pref, 'Pref010'), ctx);
21
+ }
22
+ else {
23
+ out = new PrefVal(
24
+ // TODO: find a better way to drop Nil non-errors
25
+ (0, op_1.unite)(ctx === null || ctx === void 0 ? void 0 : ctx.clone({ err: [] }), this.peg, peer, 'Pref020'), (0, op_1.unite)(ctx === null || ctx === void 0 ? void 0 : ctx.clone({ err: [] }), this.pref, peer, 'Pref030'), ctx);
26
+ }
27
+ done = done && type_1.DONE === out.peg.done &&
28
+ (null != out.pref ? type_1.DONE === out.pref.done : true);
29
+ if (out.peg instanceof Nil_1.Nil) {
30
+ out = out.pref;
31
+ }
32
+ else if (out.pref instanceof Nil_1.Nil) {
33
+ out = out.peg;
34
+ }
35
+ out.done = done ? type_1.DONE : this.done + 1;
36
+ return out;
37
+ }
38
+ same(peer) {
39
+ if (null == peer) {
40
+ return false;
41
+ }
42
+ let pegsame = (this.peg === peer.peg) ||
43
+ (this.peg instanceof ValBase_1.ValBase && this.peg.same(peer.peg));
44
+ let prefsame = peer instanceof PrefVal &&
45
+ ((this.pref === peer.pref) ||
46
+ (this.pref instanceof ValBase_1.ValBase && this.pref.same(peer.pref)));
47
+ return pegsame && prefsame;
48
+ }
49
+ get canon() {
50
+ return this.pref instanceof Nil_1.Nil ? this.peg.canon : '*' + this.pref.canon;
51
+ }
52
+ gen(ctx) {
53
+ let val = !(this.pref instanceof Nil_1.Nil) ? this.pref :
54
+ !(this.peg instanceof Nil_1.Nil) ? this.peg :
55
+ undefined;
56
+ return undefined === val ? undefined : val.gen(ctx);
57
+ }
58
+ }
59
+ exports.PrefVal = PrefVal;
60
+ //# sourceMappingURL=PrefVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../../lib/val/PrefVal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Val } from '../type';
2
+ import { Context } from '../unify';
3
+ import { ValBase } from '../val/ValBase';
4
+ declare class RefVal extends ValBase {
5
+ parts: string[];
6
+ absolute: boolean;
7
+ sep: string;
8
+ constructor(peg: any[], abs?: boolean);
9
+ append(part: any): void;
10
+ unify(peer: Val, ctx: Context): Val;
11
+ same(peer: Val): boolean;
12
+ get canon(): any;
13
+ gen(_ctx?: Context): undefined;
14
+ }
15
+ export { RefVal, };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RefVal = void 0;
5
+ const type_1 = require("../type");
6
+ const op_1 = require("../op/op");
7
+ const Nil_1 = require("../val/Nil");
8
+ const ValBase_1 = require("../val/ValBase");
9
+ const ConjunctVal_1 = require("../val/ConjunctVal");
10
+ const val_1 = require("../val");
11
+ class RefVal extends ValBase_1.ValBase {
12
+ constructor(peg, abs) {
13
+ super('');
14
+ this.sep = '.';
15
+ this.absolute = true === abs;
16
+ this.parts = [];
17
+ for (let part of peg) {
18
+ this.append(part);
19
+ }
20
+ }
21
+ append(part) {
22
+ //console.log('APPEND 0', part)
23
+ if ('string' === typeof part) {
24
+ this.parts.push(part);
25
+ }
26
+ else if (part instanceof val_1.StringVal) {
27
+ this.parts.push(part.peg);
28
+ }
29
+ else if (part instanceof RefVal) {
30
+ this.parts.push(...part.parts);
31
+ if (part.absolute) {
32
+ this.absolute = true;
33
+ }
34
+ }
35
+ this.peg = (this.absolute ? this.sep : '') + this.parts.join(this.sep);
36
+ }
37
+ unify(peer, ctx) {
38
+ let resolved = null == ctx ? this : ctx.find(this);
39
+ // TODO: large amount of reruns needed? why?
40
+ resolved = null == resolved && 999 < this.done ?
41
+ Nil_1.Nil.make(ctx, 'no-path', this, peer) : (resolved || this);
42
+ let out;
43
+ if (resolved instanceof RefVal) {
44
+ if (type_1.TOP === peer) {
45
+ out = this;
46
+ }
47
+ else if (peer instanceof Nil_1.Nil) {
48
+ out = Nil_1.Nil.make(ctx, 'ref[' + this.peg + ']', this, peer);
49
+ }
50
+ else {
51
+ // Ensure RefVal done is incremented
52
+ this.done = type_1.DONE === this.done ? type_1.DONE : this.done + 1;
53
+ out = new ConjunctVal_1.ConjunctVal([this, peer], ctx);
54
+ }
55
+ }
56
+ else {
57
+ out = (0, op_1.unite)(ctx, resolved, peer);
58
+ }
59
+ out.done = type_1.DONE === out.done ? type_1.DONE : this.done + 1;
60
+ return out;
61
+ }
62
+ same(peer) {
63
+ return null == peer ? false : this.peg === peer.peg;
64
+ }
65
+ get canon() {
66
+ return this.peg;
67
+ }
68
+ gen(_ctx) {
69
+ return undefined;
70
+ }
71
+ }
72
+ exports.RefVal = RefVal;
73
+ //# sourceMappingURL=RefVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../../lib/val/RefVal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Val } from '../type';
2
+ import { Context } from '../unify';
3
+ import { Site } from '../lang';
4
+ declare abstract class ValBase implements Val {
5
+ isVal: boolean;
6
+ id: number;
7
+ done: number;
8
+ path: string[];
9
+ row: number;
10
+ col: number;
11
+ url: string;
12
+ top?: boolean;
13
+ peg?: any;
14
+ err?: any[];
15
+ constructor(peg?: any, ctx?: Context);
16
+ same(peer: Val): boolean;
17
+ get site(): Site;
18
+ abstract unify(peer: Val, ctx?: Context): Val;
19
+ abstract get canon(): string;
20
+ abstract gen(ctx?: Context): any;
21
+ }
22
+ export { ValBase, };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021-2022 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ValBase = void 0;
5
+ const lang_1 = require("../lang");
6
+ class ValBase {
7
+ // deps?: any
8
+ constructor(peg, ctx) {
9
+ this.isVal = true;
10
+ this.done = 0;
11
+ this.row = -1;
12
+ this.col = -1;
13
+ this.url = '';
14
+ this.peg = peg;
15
+ this.path = (ctx && ctx.path) || [];
16
+ this.id = (ctx && ctx.vc++) || (9e9 + Math.floor(Math.random() * (1e9)));
17
+ }
18
+ same(peer) {
19
+ // return this === peer
20
+ return null == peer ? false : this.id === peer.id;
21
+ }
22
+ get site() {
23
+ return new lang_1.Site(this);
24
+ }
25
+ }
26
+ exports.ValBase = ValBase;
27
+ //# sourceMappingURL=ValBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValBase.js","sourceRoot":"","sources":["../../../lib/val/ValBase.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAkBzD,kCAEgB;AAWhB,MAAe,OAAO;IAiBpB,aAAa;IAEb,YAAY,GAAS,EAAE,GAAa;QAlBpC,UAAK,GAAG,IAAI,CAAA;QAGZ,SAAI,GAAW,CAAC,CAAA;QAEhB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,CAAC,CAAC,CAAA;QAChB,QAAG,GAAW,EAAE,CAAA;QAYd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,CAAC,IAAS;QACZ,uBAAuB;QACvB,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;IACnD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;CAOF;AAMC,0BAAO"}
package/dist/lib/val.d.ts CHANGED
@@ -1,51 +1,17 @@
1
+ import type { Val } from './type';
1
2
  import { Context } from './unify';
2
- import { Site } from './lang';
3
- declare type ValMap = {
4
- [key: string]: Val;
5
- };
6
- declare type ValList = Val[];
7
- declare const DONE = -1;
8
- declare const TOP: Val;
9
- declare abstract class Val {
10
- id: number;
11
- done: number;
12
- path: string[];
13
- row: number;
14
- col: number;
15
- url: string;
16
- top?: boolean;
17
- peg?: any;
18
- err?: any[];
19
- deps?: any;
20
- constructor(peg?: any, ctx?: Context);
21
- same(peer: Val): boolean;
22
- get site(): Site;
23
- abstract unify(peer: Val, ctx: Context): Val;
24
- abstract get canon(): string;
25
- abstract gen(ctx?: Context): any;
26
- }
27
- declare class Nil extends Val {
28
- nil: boolean;
29
- why: any;
30
- primary?: Val;
31
- secondary?: Val;
32
- static make: (ctx?: Context, why?: any, av?: Val, bv?: Val) => Nil;
33
- constructor(why?: any, ctx?: Context);
34
- unify(_peer: Val, _ctx: Context): this;
35
- get canon(): string;
36
- gen(_ctx?: Context): undefined;
37
- }
3
+ import { ValBase } from './val/ValBase';
38
4
  declare class Integer {
39
5
  }
40
- declare type ScalarConstructor = StringConstructor | NumberConstructor | BooleanConstructor | (typeof Integer.constructor);
41
- declare class ScalarTypeVal extends Val {
6
+ type ScalarConstructor = StringConstructor | NumberConstructor | BooleanConstructor | (typeof Integer.constructor);
7
+ declare class ScalarTypeVal extends ValBase {
42
8
  constructor(peg: ScalarConstructor, ctx?: Context);
43
9
  unify(peer: Val, ctx: Context): Val;
44
10
  get canon(): any;
45
11
  same(peer: Val): boolean;
46
12
  gen(_ctx?: Context): undefined;
47
13
  }
48
- declare class ScalarVal<T> extends Val {
14
+ declare class ScalarVal<T> extends ValBase {
49
15
  type: any;
50
16
  constructor(peg: T, type: ScalarConstructor, ctx?: Context);
51
17
  unify(peer: Val, ctx: Context): Val;
@@ -72,57 +38,4 @@ declare class BooleanVal extends ScalarVal<boolean> {
72
38
  static TRUE: BooleanVal;
73
39
  static FALSE: BooleanVal;
74
40
  }
75
- declare class MapVal extends Val {
76
- static SPREAD: symbol;
77
- spread: {
78
- cj: Val | undefined;
79
- };
80
- constructor(peg: ValMap, ctx?: Context);
81
- unify(peer: Val, ctx: Context): Val;
82
- get canon(): string;
83
- gen(ctx?: Context): any;
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
- }
95
- declare class ConjunctVal extends Val {
96
- constructor(peg: Val[], ctx?: Context);
97
- append(peer: Val): ConjunctVal;
98
- unify(peer: Val, ctx: Context): Val;
99
- get canon(): any;
100
- gen(ctx?: Context): any;
101
- }
102
- declare class DisjunctVal extends Val {
103
- constructor(peg: Val[], ctx?: Context, _sites?: Site[]);
104
- append(peer: Val): DisjunctVal;
105
- unify(peer: Val, ctx: Context): Val;
106
- get canon(): any;
107
- gen(ctx?: Context): any;
108
- }
109
- declare class RefVal extends Val {
110
- parts: string[];
111
- absolute: boolean;
112
- sep: string;
113
- constructor(peg: any[], abs?: boolean);
114
- append(part: any): void;
115
- unify(peer: Val, ctx: Context): Val;
116
- same(peer: Val): boolean;
117
- get canon(): any;
118
- gen(_ctx?: Context): undefined;
119
- }
120
- declare class PrefVal extends Val {
121
- pref: Val;
122
- constructor(peg: any, pref?: any, ctx?: Context);
123
- unify(peer: Val, ctx: Context): Val;
124
- same(peer: Val): boolean;
125
- get canon(): any;
126
- gen(ctx?: Context): any;
127
- }
128
- export { DONE, Integer, Val, TOP, Nil, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, MapVal, ListVal, ConjunctVal, DisjunctVal, RefVal, PrefVal, };
41
+ export { Integer, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, };