aontu 0.30.1 → 0.30.2

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 (184) hide show
  1. package/dist/ctx.d.ts +51 -0
  2. package/dist/ctx.js +105 -0
  3. package/dist/ctx.js.map +1 -0
  4. package/dist/err.d.ts +12 -0
  5. package/dist/err.js +123 -0
  6. package/dist/err.js.map +1 -0
  7. package/dist/hints.d.ts +8 -0
  8. package/dist/hints.js +84 -0
  9. package/dist/hints.js.map +1 -0
  10. package/dist/lang.d.ts +11 -0
  11. package/dist/lang.js +569 -0
  12. package/dist/lang.js.map +1 -0
  13. package/dist/site.d.ts +12 -0
  14. package/dist/site.js +27 -0
  15. package/dist/site.js.map +1 -0
  16. package/dist/tsconfig.tsbuildinfo +1 -0
  17. package/dist/type.d.ts +32 -0
  18. package/dist/type.js +16 -0
  19. package/dist/type.js.map +1 -0
  20. package/dist/unify.d.ts +14 -0
  21. package/dist/unify.js +156 -0
  22. package/dist/unify.js.map +1 -0
  23. package/dist/utility.d.ts +14 -0
  24. package/dist/utility.js +122 -0
  25. package/dist/utility.js.map +1 -0
  26. package/dist/val/BagVal.d.ts +10 -0
  27. package/dist/val/BagVal.js +15 -0
  28. package/dist/val/BagVal.js.map +1 -0
  29. package/dist/val/BooleanVal.d.ts +9 -0
  30. package/dist/val/BooleanVal.js +16 -0
  31. package/dist/val/BooleanVal.js.map +1 -0
  32. package/dist/val/CloseFuncVal.d.ts +11 -0
  33. package/dist/val/CloseFuncVal.js +32 -0
  34. package/dist/val/CloseFuncVal.js.map +1 -0
  35. package/dist/val/ConjunctVal.d.ts +14 -0
  36. package/dist/val/ConjunctVal.js +187 -0
  37. package/dist/val/ConjunctVal.js.map +1 -0
  38. package/dist/val/CopyFuncVal.d.ts +13 -0
  39. package/dist/val/CopyFuncVal.js +35 -0
  40. package/dist/val/CopyFuncVal.js.map +1 -0
  41. package/dist/val/DisjunctVal.d.ts +19 -0
  42. package/dist/val/DisjunctVal.js +194 -0
  43. package/dist/val/DisjunctVal.js.map +1 -0
  44. package/dist/val/FeatureVal.d.ts +10 -0
  45. package/dist/val/FeatureVal.js +29 -0
  46. package/dist/val/FeatureVal.js.map +1 -0
  47. package/dist/val/FuncBaseVal.d.ts +15 -0
  48. package/dist/val/FuncBaseVal.js +127 -0
  49. package/dist/val/FuncBaseVal.js.map +1 -0
  50. package/dist/val/HideFuncVal.d.ts +12 -0
  51. package/dist/val/HideFuncVal.js +48 -0
  52. package/dist/val/HideFuncVal.js.map +1 -0
  53. package/dist/val/IntegerVal.d.ts +9 -0
  54. package/dist/val/IntegerVal.js +46 -0
  55. package/dist/val/IntegerVal.js.map +1 -0
  56. package/dist/val/JunctionVal.d.ts +12 -0
  57. package/dist/val/JunctionVal.js +31 -0
  58. package/dist/val/JunctionVal.js.map +1 -0
  59. package/dist/val/KeyFuncVal.d.ts +12 -0
  60. package/dist/val/KeyFuncVal.js +34 -0
  61. package/dist/val/KeyFuncVal.js.map +1 -0
  62. package/dist/val/ListVal.d.ts +17 -0
  63. package/dist/val/ListVal.js +186 -0
  64. package/dist/val/ListVal.js.map +1 -0
  65. package/dist/val/LowerFuncVal.d.ts +12 -0
  66. package/dist/val/LowerFuncVal.js +40 -0
  67. package/dist/val/LowerFuncVal.js.map +1 -0
  68. package/dist/val/MapVal.d.ts +16 -0
  69. package/dist/val/MapVal.js +211 -0
  70. package/dist/val/MapVal.js.map +1 -0
  71. package/dist/val/MoveFuncVal.d.ts +11 -0
  72. package/dist/val/MoveFuncVal.js +41 -0
  73. package/dist/val/MoveFuncVal.js.map +1 -0
  74. package/dist/val/NilVal.d.ts +25 -0
  75. package/dist/val/NilVal.js +92 -0
  76. package/dist/val/NilVal.js.map +1 -0
  77. package/dist/val/NullVal.d.ts +9 -0
  78. package/dist/val/NullVal.js +18 -0
  79. package/dist/val/NullVal.js.map +1 -0
  80. package/dist/val/NumberVal.d.ts +9 -0
  81. package/dist/val/NumberVal.js +44 -0
  82. package/dist/val/NumberVal.js.map +1 -0
  83. package/dist/val/OpBaseVal.d.ts +18 -0
  84. package/dist/val/OpBaseVal.js +152 -0
  85. package/dist/val/OpBaseVal.js.map +1 -0
  86. package/dist/val/OpenFuncVal.d.ts +11 -0
  87. package/dist/val/OpenFuncVal.js +30 -0
  88. package/dist/val/OpenFuncVal.js.map +1 -0
  89. package/dist/val/PathFuncVal.d.ts +13 -0
  90. package/dist/val/PathFuncVal.js +42 -0
  91. package/dist/val/PathFuncVal.js.map +1 -0
  92. package/dist/val/PlusOpVal.d.ts +16 -0
  93. package/dist/val/PlusOpVal.js +59 -0
  94. package/dist/val/PlusOpVal.js.map +1 -0
  95. package/dist/val/PrefFuncVal.d.ts +11 -0
  96. package/dist/val/PrefFuncVal.js +39 -0
  97. package/dist/val/PrefFuncVal.js.map +1 -0
  98. package/dist/val/PrefVal.d.ts +15 -0
  99. package/dist/val/PrefVal.js +104 -0
  100. package/dist/val/PrefVal.js.map +1 -0
  101. package/dist/val/RefVal.d.ts +22 -0
  102. package/dist/val/RefVal.js +276 -0
  103. package/dist/val/RefVal.js.map +1 -0
  104. package/dist/val/ScalarKindVal.d.ts +16 -0
  105. package/dist/val/ScalarKindVal.js +76 -0
  106. package/dist/val/ScalarKindVal.js.map +1 -0
  107. package/dist/val/ScalarVal.d.ts +16 -0
  108. package/dist/val/ScalarVal.js +61 -0
  109. package/dist/val/ScalarVal.js.map +1 -0
  110. package/dist/val/StringVal.d.ts +10 -0
  111. package/dist/val/StringVal.js +19 -0
  112. package/dist/val/StringVal.js.map +1 -0
  113. package/dist/val/SuperFuncVal.d.ts +11 -0
  114. package/dist/val/SuperFuncVal.js +22 -0
  115. package/dist/val/SuperFuncVal.js.map +1 -0
  116. package/dist/val/TopVal.d.ts +16 -0
  117. package/dist/val/TopVal.js +38 -0
  118. package/dist/val/TopVal.js.map +1 -0
  119. package/dist/val/TypeFuncVal.d.ts +12 -0
  120. package/dist/val/TypeFuncVal.js +35 -0
  121. package/dist/val/TypeFuncVal.js.map +1 -0
  122. package/dist/val/UpperFuncVal.d.ts +12 -0
  123. package/dist/val/UpperFuncVal.js +40 -0
  124. package/dist/val/UpperFuncVal.js.map +1 -0
  125. package/dist/val/Val.d.ts +89 -0
  126. package/dist/val/Val.js +186 -0
  127. package/dist/val/Val.js.map +1 -0
  128. package/dist/val/VarVal.d.ts +13 -0
  129. package/dist/val/VarVal.js +109 -0
  130. package/dist/val/VarVal.js.map +1 -0
  131. package/dist/val/top.d.ts +2 -0
  132. package/dist/val/top.js +10 -0
  133. package/dist/val/top.js.map +1 -0
  134. package/dist/val/valutil.d.ts +2 -0
  135. package/dist/val/valutil.js +30 -0
  136. package/dist/val/valutil.js.map +1 -0
  137. package/package.json +3 -5
  138. package/src/aontu.ts +218 -0
  139. package/src/ctx.ts +201 -0
  140. package/src/err.ts +172 -0
  141. package/src/hints.ts +119 -0
  142. package/src/lang.ts +782 -0
  143. package/src/site.ts +34 -0
  144. package/src/tsconfig.json +16 -0
  145. package/src/type.ts +72 -0
  146. package/src/unify.ts +225 -0
  147. package/src/utility.ts +179 -0
  148. package/src/val/BagVal.ts +33 -0
  149. package/src/val/BooleanVal.ts +32 -0
  150. package/src/val/CloseFuncVal.ts +61 -0
  151. package/src/val/ConjunctVal.ts +285 -0
  152. package/src/val/CopyFuncVal.ts +69 -0
  153. package/src/val/DisjunctVal.ts +288 -0
  154. package/src/val/FeatureVal.ts +56 -0
  155. package/src/val/FuncBaseVal.ts +198 -0
  156. package/src/val/HideFuncVal.ts +85 -0
  157. package/src/val/IntegerVal.ts +75 -0
  158. package/src/val/JunctionVal.ts +54 -0
  159. package/src/val/KeyFuncVal.ts +67 -0
  160. package/src/val/ListVal.ts +286 -0
  161. package/src/val/LowerFuncVal.ts +73 -0
  162. package/src/val/MapVal.ts +316 -0
  163. package/src/val/MoveFuncVal.ts +79 -0
  164. package/src/val/NilVal.ts +156 -0
  165. package/src/val/NullVal.ts +38 -0
  166. package/src/val/NumberVal.ts +75 -0
  167. package/src/val/OpBaseVal.ts +231 -0
  168. package/src/val/OpenFuncVal.ts +60 -0
  169. package/src/val/PathFuncVal.ts +75 -0
  170. package/src/val/PlusOpVal.ts +92 -0
  171. package/src/val/PrefFuncVal.ts +73 -0
  172. package/src/val/PrefVal.ts +159 -0
  173. package/src/val/RefVal.ts +384 -0
  174. package/src/val/ScalarKindVal.ts +125 -0
  175. package/src/val/ScalarVal.ts +105 -0
  176. package/src/val/StringVal.ts +37 -0
  177. package/src/val/SuperFuncVal.ts +46 -0
  178. package/src/val/TopVal.ts +69 -0
  179. package/src/val/TypeFuncVal.ts +69 -0
  180. package/src/val/UpperFuncVal.ts +72 -0
  181. package/src/val/Val.ts +294 -0
  182. package/src/val/VarVal.ts +171 -0
  183. package/src/val/top.ts +12 -0
  184. package/src/val/valutil.ts +31 -0
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ConjunctVal = void 0;
5
+ exports.norm = norm;
6
+ const type_1 = require("../type");
7
+ const err_1 = require("../err");
8
+ const unify_1 = require("../unify");
9
+ const err_2 = require("../err");
10
+ const JunctionVal_1 = require("./JunctionVal");
11
+ const utility_1 = require("../utility");
12
+ const top_1 = require("./top");
13
+ const CONJUNCT_ORDERING = {
14
+ PrefVal: 30000,
15
+ RefVal: 32500,
16
+ DisjunctVal: 35000,
17
+ ConjunctVal: 40000,
18
+ Any: 99999
19
+ };
20
+ // TODO: move main logic to op/conjunct
21
+ class ConjunctVal extends JunctionVal_1.JunctionVal {
22
+ constructor(spec, ctx) {
23
+ super(spec, ctx);
24
+ this.isConjunct = true;
25
+ this.mark.type = !!spec.mark?.type;
26
+ this.mark.hide = !!spec.mark?.hide;
27
+ this.peg = (Array.isArray(this.peg) ? this.peg : [])
28
+ .filter((p) => null != p && p.isVal);
29
+ this.peg?.map((v) => {
30
+ (0, utility_1.propagateMarks)(this, v);
31
+ return v;
32
+ });
33
+ // console.log('CONJUNCT-ctor', this.peg.map((v: Val) => v.canon))
34
+ }
35
+ // NOTE: mutation!
36
+ append(peer) {
37
+ super.append(peer);
38
+ (0, utility_1.propagateMarks)(this, peer);
39
+ return this;
40
+ }
41
+ unify(peer, ctx) {
42
+ peer = peer ?? (0, top_1.top)();
43
+ const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Conjunct', this, peer);
44
+ let done = true;
45
+ this.peg = norm(this.peg);
46
+ // Unify each term of conjunct against peer
47
+ let upeer = [];
48
+ let newtype = this.mark.type || peer.mark.type;
49
+ let newhide = this.mark.hide || peer.mark.hide;
50
+ for (let vI = 0; vI < this.peg.length; vI++) {
51
+ newtype = this.peg[vI].mark.type || newtype;
52
+ newhide = this.peg[vI].mark.hide || newhide;
53
+ }
54
+ for (let vI = 0; vI < this.peg.length; vI++) {
55
+ this.peg[vI].mark.type = newtype;
56
+ this.peg[vI].mark.hide = newhide;
57
+ // console.log('CONJUNCT-TERM', this.id, vI, this.peg[vI].canon)
58
+ upeer[vI] = (this.peg[vI].done && peer.isTop) ? this.peg[vI] :
59
+ (0, unify_1.unite)(ctx.clone({ explain: (0, utility_1.ec)(te, 'OWN') }), this.peg[vI], peer, 'cj-own');
60
+ upeer[vI].mark.type = newtype = newtype || upeer[vI].mark.type;
61
+ upeer[vI].mark.hide = newhide = newhide || upeer[vI].mark.hide;
62
+ // let prevdone = done
63
+ done = done && (type_1.DONE === upeer[vI].dc);
64
+ if (upeer[vI].isNil) {
65
+ return upeer[vI];
66
+ // return Nil.make(
67
+ // ctx,
68
+ // '&peer[' + upeer[vI].canon + ',' + peer.canon + ']',
69
+ // this.peg[vI],
70
+ // peer
71
+ // )
72
+ }
73
+ }
74
+ upeer = norm(upeer);
75
+ // console.log('CONJUNCT-UPEER', this.id, upeer.map((v: Val) => v.canon))
76
+ // Unify terms against each other
77
+ let outvals = [];
78
+ let val;
79
+ let t0 = upeer[0];
80
+ // next_term:
81
+ for (let pI = 0; pI < upeer.length; pI++) {
82
+ let t1 = upeer[pI + 1];
83
+ // console.log('CONJUNCT-TERMS-C', this.id, pI, t0, t1, 'OV=', outvals.map((v: Val) => v))
84
+ if (null == t1) {
85
+ outvals.push(t0);
86
+ newtype = this.mark.type || t0.mark.type;
87
+ newhide = this.mark.hide || t0.mark.hide;
88
+ }
89
+ // Can't unite with a RefVal, unless also a RefVal with same path.
90
+ // else if (t0 instanceof RefVal && !(t1 instanceof RefVal)) {
91
+ else if (t0.isRef && !(t1.isRef)) {
92
+ outvals.push(t0);
93
+ t0 = t1;
94
+ }
95
+ else if (t1.isRef && !(t0.isRef)) {
96
+ outvals.push(t0);
97
+ t0 = t1;
98
+ }
99
+ else {
100
+ val = (0, unify_1.unite)(ctx.clone({ explain: (0, utility_1.ec)(te, 'DEF') }), t0, t1, 'cj-peer-t0t1');
101
+ done = done && type_1.DONE === val.dc;
102
+ newtype = this.mark.type || val.mark.type;
103
+ newhide = this.mark.hide || val.mark.hide;
104
+ // Unite was just a conjunt anyway, so discard.
105
+ if (val.isConjunct) {
106
+ outvals.push(t0);
107
+ t0 = t1;
108
+ }
109
+ else if (val.isNil) {
110
+ return val;
111
+ }
112
+ else {
113
+ t0 = val;
114
+ }
115
+ // TODO: t0 should become this to avoid unnecessary repasses
116
+ // outvals.push(val)
117
+ // pI++
118
+ }
119
+ }
120
+ let out;
121
+ // console.log('CONJUCT-prepout', this.id, outvals.map((v: Val) => v.canon))
122
+ if (0 === outvals.length) {
123
+ // Empty conjuncts evaporate.
124
+ out = (0, top_1.top)();
125
+ }
126
+ // TODO: corrects CV[CV[1&/x]] issue above, but swaps term order!
127
+ else if (1 === outvals.length) {
128
+ out = outvals[0];
129
+ out.mark.type = newtype;
130
+ out.mark.hide = newhide;
131
+ }
132
+ else {
133
+ out = new ConjunctVal({ peg: outvals, mark: { type: newtype, hide: newhide } }, ctx);
134
+ }
135
+ out.dc = done ? type_1.DONE : this.dc + 1;
136
+ // console.log('CONJUNCT-unify', this.id, sc, pc, '->', out.canon, 'D=' + out.dc, 'E=', this.err)
137
+ (0, utility_1.explainClose)(te, out);
138
+ return out;
139
+ }
140
+ clone(ctx, spec) {
141
+ let out = super.clone(ctx, spec);
142
+ return out;
143
+ }
144
+ getJunctionSymbol() {
145
+ return '&';
146
+ }
147
+ gen(ctx) {
148
+ // Unresolved conjunct cannot be generated, so always an error.
149
+ let nil = (0, err_1.makeNilErr)(ctx, 'conjunct', this, // (formatPath(this.peg, this.absolute) as any),
150
+ undefined);
151
+ // TODO: refactor to use Site
152
+ nil.path = this.path;
153
+ nil.site.url = this.site.url;
154
+ nil.site.row = this.site.row;
155
+ nil.site.col = this.site.col;
156
+ // descErr(nil, ctx)
157
+ if (null == ctx) {
158
+ throw new err_2.AontuError(nil.msg);
159
+ }
160
+ return undefined;
161
+ }
162
+ }
163
+ exports.ConjunctVal = ConjunctVal;
164
+ // Normalize Conjunct:
165
+ // - flatten child conjuncts
166
+ // - consistent sorting of terms
167
+ function norm(terms) {
168
+ let expand = [];
169
+ for (let tI = 0, pI = 0; tI < terms.length; tI++, pI++) {
170
+ if (terms[tI].isConjunct) {
171
+ expand.push(...terms[tI].peg);
172
+ pI += terms[tI].peg.length - 1;
173
+ }
174
+ else {
175
+ expand[pI] = terms[tI];
176
+ }
177
+ }
178
+ // Consistent ordering ensures order independent unification.
179
+ expand = expand.sort((a, b) => {
180
+ const an = CONJUNCT_ORDERING[a.constructor.name] ?? CONJUNCT_ORDERING.Any;
181
+ const bn = CONJUNCT_ORDERING[b.constructor.name] ?? CONJUNCT_ORDERING.Any;
182
+ return an - bn;
183
+ });
184
+ // console.log('NORM', expand.map(t => t.canon).join(', '))
185
+ return expand;
186
+ }
187
+ //# sourceMappingURL=ConjunctVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { NilVal } from '../val/NilVal';
4
+ import { FuncBaseVal } from './FuncBaseVal';
5
+ declare class CopyFuncVal extends FuncBaseVal {
6
+ isCopyFunc: boolean;
7
+ resolved?: Val;
8
+ constructor(spec: ValSpec, ctx?: AontuContext);
9
+ make(_ctx: AontuContext, spec: ValSpec): Val;
10
+ funcname(): string;
11
+ resolve(ctx: AontuContext | undefined, args: Val[]): Val | NilVal;
12
+ }
13
+ export { CopyFuncVal, };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CopyFuncVal = void 0;
5
+ const err_1 = require("../err");
6
+ const utility_1 = require("../utility");
7
+ const FuncBaseVal_1 = require("./FuncBaseVal");
8
+ class CopyFuncVal extends FuncBaseVal_1.FuncBaseVal {
9
+ constructor(spec, ctx) {
10
+ super(spec, ctx);
11
+ this.isCopyFunc = true;
12
+ this.mark.type = false;
13
+ this.mark.hide = false;
14
+ }
15
+ make(_ctx, spec) {
16
+ return new CopyFuncVal(spec);
17
+ }
18
+ funcname() {
19
+ return 'copy';
20
+ }
21
+ resolve(ctx, args) {
22
+ const val = args?.[0];
23
+ const out = null == val || null == ctx ?
24
+ (0, err_1.makeNilErr)(ctx, 'invalid-arg', this) :
25
+ val.clone(ctx, { mark: { type: false, hide: false } });
26
+ (0, utility_1.walk)(out, (_key, val) => {
27
+ val.mark.type = false;
28
+ val.mark.hide = false;
29
+ return val;
30
+ });
31
+ return out;
32
+ }
33
+ }
34
+ exports.CopyFuncVal = CopyFuncVal;
35
+ //# sourceMappingURL=CopyFuncVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyFuncVal.js","sourceRoot":"","sources":["../../src/val/CopyFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAazD,gCAAmC;AAKnC,wCAEmB;AAGnB,+CAA2C;AAG3C,MAAM,WAAY,SAAQ,yBAAW;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QARlB,eAAU,GAAG,IAAI,CAAA;QASf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,QAAQ;QACN,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO,CAAC,GAA6B,EAAE,IAAW;QAChD,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;YACtC,IAAA,gBAAU,EAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QAExD,IAAA,cAAI,EAAC,GAAG,EAAE,CAAC,IAAiC,EAAE,GAAQ,EAAE,EAAE;YACxD,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;YACrB,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;YACrB,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAIC,kCAAW"}
@@ -0,0 +1,19 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { Site } from '../site';
4
+ import { PrefVal } from '../val/PrefVal';
5
+ import { JunctionVal } from '../val/JunctionVal';
6
+ declare class DisjunctVal extends JunctionVal {
7
+ isDisjunct: boolean;
8
+ prefsRanked: boolean;
9
+ constructor(spec: {
10
+ peg: Val[];
11
+ }, ctx?: AontuContext, _sites?: Site[]);
12
+ append(peer: Val): DisjunctVal;
13
+ unify(peer: Val, ctx: AontuContext): Val;
14
+ rankPrefs(ctx: AontuContext): PrefVal | undefined;
15
+ clone(ctx: AontuContext, spec?: ValSpec): Val;
16
+ getJunctionSymbol(): string;
17
+ gen(ctx: AontuContext): any;
18
+ }
19
+ export { DisjunctVal, };
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DisjunctVal = void 0;
5
+ const type_1 = require("../type");
6
+ const err_1 = require("../err");
7
+ const unify_1 = require("../unify");
8
+ const utility_1 = require("../utility");
9
+ const top_1 = require("./top");
10
+ const NilVal_1 = require("../val/NilVal");
11
+ const PrefVal_1 = require("../val/PrefVal");
12
+ const JunctionVal_1 = require("../val/JunctionVal");
13
+ // TODO: move main logic to op/disjunct
14
+ class DisjunctVal extends JunctionVal_1.JunctionVal {
15
+ // TODO: sites from normalization of orginal Disjuncts, as well as child pegs
16
+ constructor(spec, ctx, _sites) {
17
+ super(spec, ctx);
18
+ this.isDisjunct = true;
19
+ this.prefsRanked = false;
20
+ }
21
+ // NOTE: mutation!
22
+ append(peer) {
23
+ super.append(peer);
24
+ this.prefsRanked = false;
25
+ return this;
26
+ }
27
+ unify(peer, ctx) {
28
+ peer = peer ?? (0, top_1.top)();
29
+ const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'Disjunct', this, peer);
30
+ if (!this.prefsRanked) {
31
+ this.rankPrefs(ctx);
32
+ }
33
+ // // // console.log('DISJUNCT-unify-A', this.id, this.canon)
34
+ let done = true;
35
+ let oval = [];
36
+ // Conjunction (&) distributes over disjunction (|)
37
+ for (let vI = 0; vI < this.peg.length; vI++) {
38
+ const v = this.peg[vI];
39
+ const cloneCtx = ctx?.clone({ err: [] });
40
+ // // // console.log('DJ-DIST-A', this.peg[vI].canon, peer.canon)
41
+ oval[vI] = (0, unify_1.unite)(cloneCtx.clone({ explain: (0, utility_1.ec)(te, 'DIST:' + vI) }), v, peer, 'dj-peer');
42
+ // // // console.log('DJ-DIST-B', oval[vI].canon, cloneCtx?.err)
43
+ if (0 < cloneCtx?.err.length) {
44
+ oval[vI] = (0, err_1.makeNilErr)(cloneCtx, '|:empty-dist', this);
45
+ }
46
+ done = done && type_1.DONE === oval[vI].dc;
47
+ }
48
+ // // // console.log('DISJUNCT-unify-B', this.id, oval.map(v => v.canon))
49
+ // Remove duplicates, and normalize
50
+ if (1 < oval.length) {
51
+ for (let vI = 0; vI < oval.length; vI++) {
52
+ if (oval[vI].isDisjunct) {
53
+ oval.splice(vI, 1, ...oval[vI].peg);
54
+ }
55
+ }
56
+ // // // console.log('DISJUNCT-unify-C', this.id, oval.map(v => v.id + '=' + v.canon))
57
+ // TODO: not an error Nil!
58
+ let remove = new NilVal_1.NilVal();
59
+ for (let vI = 0; vI < oval.length; vI++) {
60
+ for (let kI = vI + 1; kI < oval.length; kI++) {
61
+ if (oval[kI].same(oval[vI])) {
62
+ oval[kI] = remove;
63
+ }
64
+ }
65
+ }
66
+ // // // console.log('DISJUNCT-unify-D', this.id, oval.map(v => v.canon))
67
+ oval = oval.filter(v => !v.isNil);
68
+ }
69
+ let out;
70
+ if (1 == oval.length) {
71
+ out = oval[0];
72
+ }
73
+ else if (0 == oval.length) {
74
+ return (0, err_1.makeNilErr)(ctx, '|:empty', this, peer);
75
+ }
76
+ else {
77
+ out = new DisjunctVal({ peg: oval }, ctx);
78
+ }
79
+ out.dc = done ? type_1.DONE : this.dc + 1;
80
+ // // // console.log('DISJUNCT-unify',
81
+ // this.id, sc, pc, '->', out.canon, 'D=' + out.dc, 'E=', this.err)
82
+ (0, utility_1.explainClose)(te, out);
83
+ return out;
84
+ }
85
+ rankPrefs(ctx) {
86
+ let lastpref = undefined;
87
+ let lastprefI = -1;
88
+ // // // console.log('RP-A', this.peg.map((p: Val) => p.canon))
89
+ for (let vI = 0; vI < this.peg.length; vI++) {
90
+ const v = this.peg[vI];
91
+ if (v instanceof PrefVal_1.PrefVal) {
92
+ if (null != lastpref) {
93
+ if (v.rank === lastpref.rank) {
94
+ const pref = v.unify(lastpref, ctx);
95
+ if (pref.isNil) {
96
+ return pref;
97
+ }
98
+ else {
99
+ this.peg[lastprefI] = pref;
100
+ lastpref = pref;
101
+ this.peg[vI] = null;
102
+ }
103
+ // return Nil.make(ctx, '|:prefs', lastpref, v, 'associate')
104
+ }
105
+ else if (v.rank < lastpref.rank) {
106
+ this.peg[lastprefI] = null;
107
+ lastpref = v;
108
+ lastprefI = vI;
109
+ }
110
+ else {
111
+ this.peg[vI] = null;
112
+ }
113
+ }
114
+ else {
115
+ lastpref = v;
116
+ lastprefI = vI;
117
+ }
118
+ }
119
+ else if (v.isDisjunct) {
120
+ let subrank = v.rankPrefs(ctx);
121
+ if (subrank instanceof PrefVal_1.PrefVal) {
122
+ this.peg[vI] = subrank;
123
+ lastpref = subrank;
124
+ lastprefI = vI;
125
+ }
126
+ }
127
+ }
128
+ this.peg = this.peg.filter((p) => null != p);
129
+ this.prefsRanked = true;
130
+ // // // console.log('RP-Z', this.peg.map((p: Val) => p.canon))
131
+ if (1 === this.peg.length && this.peg[0] instanceof PrefVal_1.PrefVal) {
132
+ return this.peg[0];
133
+ }
134
+ }
135
+ clone(ctx, spec) {
136
+ let out = super.clone(ctx, spec);
137
+ return out;
138
+ }
139
+ getJunctionSymbol() {
140
+ return '|';
141
+ }
142
+ gen(ctx) {
143
+ // TODO: move this to main unify
144
+ // console.log('DJ-GEN', this.peg.map((p: any) => p.canon), ctx.err)
145
+ if (0 < this.peg.length) {
146
+ let vals = this.peg.filter((v) => v instanceof PrefVal_1.PrefVal);
147
+ // // // console.log('DJ-GEN-VALS-A', vals.map((p: any) => p.canon))
148
+ vals = 0 === vals.length ? this.peg : vals;
149
+ let val = vals[0];
150
+ // TODO: over unifies complex types like maps
151
+ // ({x:1}|{y:2})&{z:3} should be {"x":1,"z":3}|{"y":2,"z":3} not { x:1, z:3, y:2 }
152
+ for (let vI = 1; vI < vals.length; vI++) {
153
+ let valnext = val.unify(this.peg[vI], ctx);
154
+ // // // console.log('DJ-GEN-VALS-NEXT', valnext.canon)
155
+ val = valnext;
156
+ }
157
+ // console.log('DJ-GEN-VALS-B', val.canon)
158
+ const out = val.gen(ctx);
159
+ // console.log('DJ-GEN-VALS-C', out)
160
+ return out;
161
+ }
162
+ return super.gen(ctx);
163
+ // // // console.log('DJ-GEN', this.peg)
164
+ // if (1 === this.peg.length) {
165
+ // return this.peg[0].gen(ctx)
166
+ // }
167
+ // else if (1 < this.peg.length) {
168
+ // let peg = this.peg.filter((v: Val) => v instanceof PrefVal)
169
+ // if (1 === peg.length) {
170
+ // return peg[0].gen(ctx)
171
+ // }
172
+ // else {
173
+ // let nil = Nil.make(
174
+ // ctx,
175
+ // 'disjunct',
176
+ // this,
177
+ // undefined
178
+ // )
179
+ // // TODO: refactor to use Site
180
+ // nil.path = this.path
181
+ // nil.site.url = this.url
182
+ // nil.site.row = this.row
183
+ // nil.site.col = this.col
184
+ // // descErr(nil, ctx)
185
+ // if (null == ctx) {
186
+ // throw new Error(nil.msg)
187
+ // }
188
+ // }
189
+ // return undefined
190
+ // }
191
+ }
192
+ }
193
+ exports.DisjunctVal = DisjunctVal;
194
+ //# sourceMappingURL=DisjunctVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { Val } from './Val';
4
+ declare abstract class FeatureVal extends Val {
5
+ isFeature: boolean;
6
+ constructor(spec: ValSpec, ctx?: AontuContext);
7
+ superior(): Val;
8
+ gen(ctx: AontuContext): undefined;
9
+ }
10
+ export { FeatureVal, };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /* Copyright (c) 2021-2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FeatureVal = void 0;
5
+ const Val_1 = require("./Val");
6
+ const top_1 = require("./top");
7
+ const err_1 = require("../err");
8
+ class FeatureVal extends Val_1.Val {
9
+ constructor(spec, ctx) {
10
+ super(spec, ctx);
11
+ this.isFeature = true;
12
+ }
13
+ superior() {
14
+ return (0, top_1.top)();
15
+ }
16
+ gen(ctx) {
17
+ // Unresolved nil cannot be generated, so always an error.
18
+ let nerr = (0, err_1.makeNilErr)(ctx, 'no_gen', this);
19
+ (0, err_1.descErr)(nerr, ctx);
20
+ ctx?.adderr(nerr);
21
+ if (null == ctx || !ctx?.collect) {
22
+ const aerr = new err_1.AontuError(nerr.msg, [nerr]);
23
+ throw aerr;
24
+ }
25
+ return undefined;
26
+ }
27
+ }
28
+ exports.FeatureVal = FeatureVal;
29
+ //# sourceMappingURL=FeatureVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureVal.js","sourceRoot":"","sources":["../../src/val/FeatureVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,+BAA2B;AAE3B,+BAA2B;AAE3B,gCAAwD;AAGxD,MAAe,UAAW,SAAQ,SAAG;IAGnC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,cAAS,GAAG,IAAI,CAAA;IAOhB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAA,SAAG,GAAE,CAAA;IACd,CAAC;IAGD,GAAG,CAAC,GAAiB;QACnB,0DAA0D;QAE1D,IAAI,IAAI,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAA,aAAO,EAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAClB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAEjB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,gBAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7C,MAAM,IAAI,CAAA;QACZ,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF;AAIC,gCAAU"}
@@ -0,0 +1,15 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { FeatureVal } from '../val/FeatureVal';
4
+ declare class FuncBaseVal extends FeatureVal {
5
+ isFunc: boolean;
6
+ constructor(spec: ValSpec, ctx?: AontuContext);
7
+ validateArgs(args: Val[], min: number): void;
8
+ make(ctx: AontuContext, _spec: ValSpec): Val;
9
+ unify(peer: Val, ctx: AontuContext): Val;
10
+ get canon(): string;
11
+ funcname(): string;
12
+ prepare(_ctx: AontuContext | undefined, args: Val[]): Val[];
13
+ resolve(ctx: AontuContext | undefined, _args: Val[]): Val;
14
+ }
15
+ export { FuncBaseVal, };