aontu 0.29.0 → 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 (270) hide show
  1. package/dist/aontu.d.ts +17 -13
  2. package/dist/aontu.js +145 -60
  3. package/dist/aontu.js.map +1 -1
  4. package/dist/ctx.d.ts +51 -0
  5. package/dist/ctx.js +105 -0
  6. package/dist/ctx.js.map +1 -0
  7. package/dist/err.d.ts +12 -0
  8. package/dist/err.js +123 -0
  9. package/dist/err.js.map +1 -0
  10. package/dist/hints.d.ts +8 -0
  11. package/dist/hints.js +84 -0
  12. package/dist/hints.js.map +1 -0
  13. package/dist/lang.d.ts +11 -0
  14. package/dist/lang.js +569 -0
  15. package/dist/lang.js.map +1 -0
  16. package/dist/site.d.ts +12 -0
  17. package/dist/site.js +27 -0
  18. package/dist/site.js.map +1 -0
  19. package/dist/tsconfig.tsbuildinfo +1 -0
  20. package/dist/type.d.ts +32 -0
  21. package/dist/type.js +16 -0
  22. package/dist/type.js.map +1 -0
  23. package/dist/unify.d.ts +14 -0
  24. package/dist/unify.js +156 -0
  25. package/dist/unify.js.map +1 -0
  26. package/dist/utility.d.ts +14 -0
  27. package/dist/utility.js +122 -0
  28. package/dist/utility.js.map +1 -0
  29. package/dist/val/BagVal.d.ts +10 -0
  30. package/dist/val/BagVal.js +15 -0
  31. package/dist/val/BagVal.js.map +1 -0
  32. package/dist/val/BooleanVal.d.ts +9 -0
  33. package/dist/val/BooleanVal.js +16 -0
  34. package/dist/val/BooleanVal.js.map +1 -0
  35. package/dist/val/CloseFuncVal.d.ts +11 -0
  36. package/dist/val/CloseFuncVal.js +32 -0
  37. package/dist/val/CloseFuncVal.js.map +1 -0
  38. package/dist/val/ConjunctVal.d.ts +14 -0
  39. package/dist/val/ConjunctVal.js +187 -0
  40. package/dist/val/ConjunctVal.js.map +1 -0
  41. package/dist/val/CopyFuncVal.d.ts +13 -0
  42. package/dist/val/CopyFuncVal.js +35 -0
  43. package/dist/val/CopyFuncVal.js.map +1 -0
  44. package/dist/val/DisjunctVal.d.ts +19 -0
  45. package/dist/val/DisjunctVal.js +194 -0
  46. package/dist/val/DisjunctVal.js.map +1 -0
  47. package/dist/val/FeatureVal.d.ts +10 -0
  48. package/dist/val/FeatureVal.js +29 -0
  49. package/dist/val/FeatureVal.js.map +1 -0
  50. package/dist/val/FuncBaseVal.d.ts +15 -0
  51. package/dist/val/FuncBaseVal.js +127 -0
  52. package/dist/val/FuncBaseVal.js.map +1 -0
  53. package/dist/val/HideFuncVal.d.ts +12 -0
  54. package/dist/val/HideFuncVal.js +48 -0
  55. package/dist/val/HideFuncVal.js.map +1 -0
  56. package/dist/val/IntegerVal.d.ts +9 -0
  57. package/dist/val/IntegerVal.js +46 -0
  58. package/dist/val/IntegerVal.js.map +1 -0
  59. package/dist/val/JunctionVal.d.ts +12 -0
  60. package/dist/val/JunctionVal.js +31 -0
  61. package/dist/val/JunctionVal.js.map +1 -0
  62. package/dist/val/KeyFuncVal.d.ts +12 -0
  63. package/dist/val/KeyFuncVal.js +34 -0
  64. package/dist/val/KeyFuncVal.js.map +1 -0
  65. package/dist/val/ListVal.d.ts +17 -0
  66. package/dist/val/ListVal.js +186 -0
  67. package/dist/val/ListVal.js.map +1 -0
  68. package/dist/val/LowerFuncVal.d.ts +12 -0
  69. package/dist/val/LowerFuncVal.js +40 -0
  70. package/dist/val/LowerFuncVal.js.map +1 -0
  71. package/dist/val/MapVal.d.ts +16 -0
  72. package/dist/val/MapVal.js +211 -0
  73. package/dist/val/MapVal.js.map +1 -0
  74. package/dist/val/MoveFuncVal.d.ts +11 -0
  75. package/dist/val/MoveFuncVal.js +41 -0
  76. package/dist/val/MoveFuncVal.js.map +1 -0
  77. package/dist/val/NilVal.d.ts +25 -0
  78. package/dist/{lib/val/Nil.js → val/NilVal.js} +38 -30
  79. package/dist/val/NilVal.js.map +1 -0
  80. package/dist/val/NullVal.d.ts +9 -0
  81. package/dist/val/NullVal.js +18 -0
  82. package/dist/val/NullVal.js.map +1 -0
  83. package/dist/val/NumberVal.d.ts +9 -0
  84. package/dist/val/NumberVal.js +44 -0
  85. package/dist/val/NumberVal.js.map +1 -0
  86. package/dist/val/OpBaseVal.d.ts +18 -0
  87. package/dist/val/OpBaseVal.js +152 -0
  88. package/dist/val/OpBaseVal.js.map +1 -0
  89. package/dist/val/OpenFuncVal.d.ts +11 -0
  90. package/dist/val/OpenFuncVal.js +30 -0
  91. package/dist/val/OpenFuncVal.js.map +1 -0
  92. package/dist/val/PathFuncVal.d.ts +13 -0
  93. package/dist/val/PathFuncVal.js +42 -0
  94. package/dist/val/PathFuncVal.js.map +1 -0
  95. package/dist/val/PlusOpVal.d.ts +16 -0
  96. package/dist/val/PlusOpVal.js +59 -0
  97. package/dist/val/PlusOpVal.js.map +1 -0
  98. package/dist/val/PrefFuncVal.d.ts +11 -0
  99. package/dist/val/PrefFuncVal.js +39 -0
  100. package/dist/val/PrefFuncVal.js.map +1 -0
  101. package/dist/val/PrefVal.d.ts +15 -0
  102. package/dist/val/PrefVal.js +104 -0
  103. package/dist/val/PrefVal.js.map +1 -0
  104. package/dist/val/RefVal.d.ts +22 -0
  105. package/dist/val/RefVal.js +276 -0
  106. package/dist/val/RefVal.js.map +1 -0
  107. package/dist/val/ScalarKindVal.d.ts +16 -0
  108. package/dist/val/ScalarKindVal.js +76 -0
  109. package/dist/val/ScalarKindVal.js.map +1 -0
  110. package/dist/val/ScalarVal.d.ts +16 -0
  111. package/dist/val/ScalarVal.js +61 -0
  112. package/dist/val/ScalarVal.js.map +1 -0
  113. package/dist/val/StringVal.d.ts +10 -0
  114. package/dist/val/StringVal.js +19 -0
  115. package/dist/val/StringVal.js.map +1 -0
  116. package/dist/val/SuperFuncVal.d.ts +11 -0
  117. package/dist/val/SuperFuncVal.js +22 -0
  118. package/dist/val/SuperFuncVal.js.map +1 -0
  119. package/dist/val/TopVal.d.ts +16 -0
  120. package/dist/val/TopVal.js +38 -0
  121. package/dist/val/TopVal.js.map +1 -0
  122. package/dist/val/TypeFuncVal.d.ts +12 -0
  123. package/dist/val/TypeFuncVal.js +35 -0
  124. package/dist/val/TypeFuncVal.js.map +1 -0
  125. package/dist/val/UpperFuncVal.d.ts +12 -0
  126. package/dist/val/UpperFuncVal.js +40 -0
  127. package/dist/val/UpperFuncVal.js.map +1 -0
  128. package/dist/val/Val.d.ts +89 -0
  129. package/dist/val/Val.js +186 -0
  130. package/dist/val/Val.js.map +1 -0
  131. package/dist/val/VarVal.d.ts +13 -0
  132. package/dist/val/VarVal.js +109 -0
  133. package/dist/val/VarVal.js.map +1 -0
  134. package/dist/val/top.d.ts +2 -0
  135. package/dist/val/top.js +10 -0
  136. package/dist/val/top.js.map +1 -0
  137. package/dist/val/valutil.d.ts +2 -0
  138. package/dist/val/valutil.js +30 -0
  139. package/dist/val/valutil.js.map +1 -0
  140. package/package.json +20 -38
  141. package/src/aontu.ts +218 -0
  142. package/src/ctx.ts +201 -0
  143. package/src/err.ts +172 -0
  144. package/src/hints.ts +119 -0
  145. package/src/lang.ts +782 -0
  146. package/src/site.ts +34 -0
  147. package/src/tsconfig.json +16 -0
  148. package/src/type.ts +72 -0
  149. package/src/unify.ts +225 -0
  150. package/src/utility.ts +179 -0
  151. package/src/val/BagVal.ts +33 -0
  152. package/src/val/BooleanVal.ts +32 -0
  153. package/src/val/CloseFuncVal.ts +61 -0
  154. package/src/val/ConjunctVal.ts +285 -0
  155. package/src/val/CopyFuncVal.ts +69 -0
  156. package/src/val/DisjunctVal.ts +288 -0
  157. package/src/val/FeatureVal.ts +56 -0
  158. package/src/val/FuncBaseVal.ts +198 -0
  159. package/src/val/HideFuncVal.ts +85 -0
  160. package/src/val/IntegerVal.ts +75 -0
  161. package/src/val/JunctionVal.ts +54 -0
  162. package/src/val/KeyFuncVal.ts +67 -0
  163. package/src/val/ListVal.ts +286 -0
  164. package/src/val/LowerFuncVal.ts +73 -0
  165. package/src/val/MapVal.ts +316 -0
  166. package/src/val/MoveFuncVal.ts +79 -0
  167. package/{lib/val/Nil.ts → src/val/NilVal.ts} +49 -37
  168. package/src/val/NullVal.ts +38 -0
  169. package/src/val/NumberVal.ts +75 -0
  170. package/src/val/OpBaseVal.ts +231 -0
  171. package/src/val/OpenFuncVal.ts +60 -0
  172. package/src/val/PathFuncVal.ts +75 -0
  173. package/src/val/PlusOpVal.ts +92 -0
  174. package/src/val/PrefFuncVal.ts +73 -0
  175. package/src/val/PrefVal.ts +159 -0
  176. package/src/val/RefVal.ts +384 -0
  177. package/src/val/ScalarKindVal.ts +125 -0
  178. package/src/val/ScalarVal.ts +105 -0
  179. package/src/val/StringVal.ts +37 -0
  180. package/src/val/SuperFuncVal.ts +46 -0
  181. package/src/val/TopVal.ts +69 -0
  182. package/src/val/TypeFuncVal.ts +69 -0
  183. package/src/val/UpperFuncVal.ts +72 -0
  184. package/src/val/Val.ts +294 -0
  185. package/src/val/VarVal.ts +171 -0
  186. package/src/val/top.ts +12 -0
  187. package/src/val/valutil.ts +31 -0
  188. package/aontu.ts +0 -92
  189. package/dist/lib/err.d.ts +0 -4
  190. package/dist/lib/err.js +0 -61
  191. package/dist/lib/err.js.map +0 -1
  192. package/dist/lib/lang.d.ts +0 -15
  193. package/dist/lib/lang.js +0 -409
  194. package/dist/lib/lang.js.map +0 -1
  195. package/dist/lib/op/disjunct.d.ts +0 -3
  196. package/dist/lib/op/disjunct.js +0 -28
  197. package/dist/lib/op/disjunct.js.map +0 -1
  198. package/dist/lib/op/op.d.ts +0 -6
  199. package/dist/lib/op/op.js +0 -9
  200. package/dist/lib/op/op.js.map +0 -1
  201. package/dist/lib/op/unite.d.ts +0 -3
  202. package/dist/lib/op/unite.js +0 -100
  203. package/dist/lib/op/unite.js.map +0 -1
  204. package/dist/lib/type.d.ts +0 -49
  205. package/dist/lib/type.js +0 -7
  206. package/dist/lib/type.js.map +0 -1
  207. package/dist/lib/unify.d.ts +0 -38
  208. package/dist/lib/unify.js +0 -67
  209. package/dist/lib/unify.js.map +0 -1
  210. package/dist/lib/utility.d.ts +0 -3
  211. package/dist/lib/utility.js +0 -16
  212. package/dist/lib/utility.js.map +0 -1
  213. package/dist/lib/val/ConjunctVal.d.ts +0 -17
  214. package/dist/lib/val/ConjunctVal.js +0 -171
  215. package/dist/lib/val/ConjunctVal.js.map +0 -1
  216. package/dist/lib/val/DisjunctVal.d.ts +0 -17
  217. package/dist/lib/val/DisjunctVal.js +0 -95
  218. package/dist/lib/val/DisjunctVal.js.map +0 -1
  219. package/dist/lib/val/ListVal.d.ts +0 -18
  220. package/dist/lib/val/ListVal.js +0 -120
  221. package/dist/lib/val/ListVal.js.map +0 -1
  222. package/dist/lib/val/MapVal.d.ts +0 -18
  223. package/dist/lib/val/MapVal.js +0 -117
  224. package/dist/lib/val/MapVal.js.map +0 -1
  225. package/dist/lib/val/Nil.d.ts +0 -22
  226. package/dist/lib/val/Nil.js.map +0 -1
  227. package/dist/lib/val/NullVal.d.ts +0 -15
  228. package/dist/lib/val/NullVal.js +0 -38
  229. package/dist/lib/val/NullVal.js.map +0 -1
  230. package/dist/lib/val/OpVal.d.ts +0 -17
  231. package/dist/lib/val/OpVal.js +0 -89
  232. package/dist/lib/val/OpVal.js.map +0 -1
  233. package/dist/lib/val/PlusVal.d.ts +0 -12
  234. package/dist/lib/val/PlusVal.js +0 -32
  235. package/dist/lib/val/PlusVal.js.map +0 -1
  236. package/dist/lib/val/PrefVal.d.ts +0 -17
  237. package/dist/lib/val/PrefVal.js +0 -87
  238. package/dist/lib/val/PrefVal.js.map +0 -1
  239. package/dist/lib/val/RefVal.d.ts +0 -22
  240. package/dist/lib/val/RefVal.js +0 -247
  241. package/dist/lib/val/RefVal.js.map +0 -1
  242. package/dist/lib/val/ValBase.d.ts +0 -26
  243. package/dist/lib/val/ValBase.js +0 -77
  244. package/dist/lib/val/ValBase.js.map +0 -1
  245. package/dist/lib/val/VarVal.d.ts +0 -15
  246. package/dist/lib/val/VarVal.js +0 -84
  247. package/dist/lib/val/VarVal.js.map +0 -1
  248. package/dist/lib/val.d.ts +0 -81
  249. package/dist/lib/val.js +0 -191
  250. package/dist/lib/val.js.map +0 -1
  251. package/lib/err.ts +0 -83
  252. package/lib/lang.ts +0 -585
  253. package/lib/op/disjunct.ts +0 -51
  254. package/lib/op/op.ts +0 -18
  255. package/lib/op/unite.ts +0 -143
  256. package/lib/type.ts +0 -95
  257. package/lib/unify.ts +0 -128
  258. package/lib/utility.ts +0 -24
  259. package/lib/val/ConjunctVal.ts +0 -265
  260. package/lib/val/DisjunctVal.ts +0 -160
  261. package/lib/val/ListVal.ts +0 -196
  262. package/lib/val/MapVal.ts +0 -181
  263. package/lib/val/NullVal.ts +0 -72
  264. package/lib/val/OpVal.ts +0 -159
  265. package/lib/val/PlusVal.ts +0 -76
  266. package/lib/val/PrefVal.ts +0 -154
  267. package/lib/val/RefVal.ts +0 -362
  268. package/lib/val/ValBase.ts +0 -109
  269. package/lib/val/VarVal.ts +0 -157
  270. package/lib/val.ts +0 -327
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrefVal.js","sourceRoot":"","sources":["../../../lib/val/PrefVal.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { Val, ValSpec } from '../type';
2
- import { Context } from '../unify';
3
- import { StringVal } from '../val';
4
- import { ValBase } from '../val/ValBase';
5
- declare class RefVal extends ValBase {
6
- isRefVal: boolean;
7
- absolute: boolean;
8
- prefix: boolean;
9
- constructor(spec: {
10
- peg: any[];
11
- absolute?: boolean;
12
- prefix?: boolean;
13
- }, ctx?: Context);
14
- append(part: any): void;
15
- unify(peer: Val, ctx: Context): Val;
16
- find(ctx: Context): Val | StringVal | undefined;
17
- same(peer: Val): boolean;
18
- clone(spec?: ValSpec, ctx?: Context): Val;
19
- get canon(): string;
20
- gen(ctx?: Context): undefined;
21
- }
22
- export { RefVal, };
@@ -1,247 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.RefVal = void 0;
5
- const type_1 = require("../type");
6
- const err_1 = require("../err");
7
- const op_1 = require("../op/op");
8
- const val_1 = require("../val");
9
- const ConjunctVal_1 = require("../val/ConjunctVal");
10
- const MapVal_1 = require("../val/MapVal");
11
- const Nil_1 = require("../val/Nil");
12
- const VarVal_1 = require("../val/VarVal");
13
- const ValBase_1 = require("../val/ValBase");
14
- class RefVal extends ValBase_1.ValBase {
15
- constructor(spec, ctx) {
16
- super(spec, ctx);
17
- this.isRefVal = true;
18
- this.absolute = false;
19
- this.prefix = false;
20
- this.peg = [];
21
- this.absolute = true === this.absolute ? true : // absolute sticks
22
- true === spec.absolute ? true : false;
23
- this.prefix = true === spec.prefix;
24
- for (let pI = 0; pI < spec.peg.length; pI++) {
25
- this.append(spec.peg[pI]);
26
- }
27
- }
28
- append(part) {
29
- let partval;
30
- if ('string' === typeof part) {
31
- partval = part;
32
- this.peg.push(partval);
33
- }
34
- else if (part instanceof val_1.StringVal) {
35
- partval = part.peg;
36
- this.peg.push(partval);
37
- }
38
- else if (part instanceof VarVal_1.VarVal) {
39
- partval = part;
40
- this.peg.push(partval);
41
- }
42
- else if (part instanceof RefVal) {
43
- if (part.absolute) {
44
- this.absolute = true;
45
- }
46
- if (this.prefix) {
47
- if (part.prefix) {
48
- this.peg.push('.');
49
- }
50
- }
51
- else {
52
- if (part.prefix) {
53
- if (0 === this.peg.length) {
54
- this.prefix = true;
55
- }
56
- else if (0 < this.peg.length) {
57
- this.peg.push('.');
58
- }
59
- }
60
- }
61
- this.peg.push(...part.peg);
62
- }
63
- }
64
- unify(peer, ctx) {
65
- let out = this;
66
- // let why = 'id'
67
- if (this.id !== peer.id) {
68
- // TODO: not resolved when all Vals in path are done is an error
69
- // as path cannot be found
70
- // let resolved: Val | undefined = null == ctx ? this : ctx.find(this)
71
- let resolved = null == ctx ? this : this.find(ctx);
72
- resolved = resolved || this;
73
- if (null == resolved && this.canon === peer.canon) {
74
- out = this;
75
- }
76
- else if (resolved instanceof RefVal) {
77
- if (val_1.TOP === peer) {
78
- out = this;
79
- // why = 'pt'
80
- }
81
- else if (peer instanceof Nil_1.Nil) {
82
- out = Nil_1.Nil.make(ctx, 'ref[' + this.peg + ']', this, peer);
83
- // why = 'pn'
84
- }
85
- // same path
86
- // else if (this.peg === peer.peg) {
87
- else if (this.canon === peer.canon) {
88
- out = this;
89
- // why = 'pp'
90
- }
91
- else {
92
- // Ensure RefVal done is incremented
93
- this.done = type_1.DONE === this.done ? type_1.DONE : this.done + 1;
94
- out = new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
95
- // why = 'cj'
96
- }
97
- }
98
- else {
99
- out = (0, op_1.unite)(ctx, resolved, peer, 'ref');
100
- // why = 'u'
101
- }
102
- out.done = type_1.DONE === out.done ? type_1.DONE : this.done + 1;
103
- }
104
- return out;
105
- }
106
- find(ctx) {
107
- // TODO: relative paths
108
- // if (this.root instanceof MapVal && ref.absolute) {
109
- // NOTE: path *to* the ref, not the ref itself!
110
- let fullpath = this.path;
111
- let parts = [];
112
- let modes = [];
113
- for (let pI = 0; pI < this.peg.length; pI++) {
114
- let part = this.peg[pI];
115
- if (part instanceof VarVal_1.VarVal) {
116
- let strval = part.peg;
117
- let name = strval ? '' + strval.peg : '';
118
- if ('KEY' === name) {
119
- if (pI === this.peg.length - 1) {
120
- modes.push(name);
121
- }
122
- else {
123
- // TODO: return a Nil explaining error
124
- return;
125
- }
126
- }
127
- if ('SELF' === name) {
128
- if (pI === 0) {
129
- modes.push(name);
130
- }
131
- else {
132
- // TODO: return a Nil explaining error
133
- return;
134
- }
135
- }
136
- else if ('PARENT' === name) {
137
- if (pI === 0) {
138
- modes.push(name);
139
- }
140
- else {
141
- // TODO: return a Nil explaining error
142
- return;
143
- }
144
- }
145
- else if (0 === modes.length) {
146
- part = part.unify(val_1.TOP, ctx);
147
- if (part instanceof Nil_1.Nil) {
148
- // TODO: var not found, so can't find path
149
- return;
150
- }
151
- else {
152
- part = '' + part.peg;
153
- }
154
- }
155
- }
156
- else {
157
- parts.push(part);
158
- }
159
- }
160
- if (this.absolute) {
161
- fullpath = parts;
162
- }
163
- else {
164
- fullpath = fullpath.slice(0, (modes.includes('SELF') ? 0 :
165
- modes.includes('PARENT') ? -1 :
166
- -1 // siblings
167
- )).concat(parts);
168
- }
169
- let sep = '.';
170
- fullpath = fullpath
171
- .reduce(((a, p) => (p === sep ? a.length = a.length - 1 : a.push(p), a)), []);
172
- if (modes.includes('KEY')) {
173
- let key = this.path[this.path.length - 2];
174
- let sv = new val_1.StringVal({ peg: null == key ? '' : key }, ctx);
175
- // TODO: other props?
176
- sv.done = type_1.DONE;
177
- sv.path = this.path;
178
- return sv;
179
- }
180
- let node = ctx.root;
181
- let pI = 0;
182
- for (; pI < fullpath.length; pI++) {
183
- let part = fullpath[pI];
184
- if (node instanceof MapVal_1.MapVal) {
185
- node = node.peg[part];
186
- }
187
- else {
188
- break;
189
- }
190
- }
191
- if (pI === fullpath.length) {
192
- // if (this.attr && 'KEY' === this.attr.kind) {
193
- // if (modes.includes('KEY')) {
194
- // let key = fullpath[fullpath.length - 1]
195
- // let sv = new StringVal({ peg: null == key ? '' : key }, ctx)
196
- // // TODO: other props?
197
- // sv.done = DONE
198
- // sv.path = this.path
199
- // return sv
200
- // }
201
- // else {
202
- // console.log('REF', this.id, this.path, this.done, 'FOUND', node.canon)
203
- return node;
204
- // }
205
- }
206
- }
207
- same(peer) {
208
- return null == peer ? false : this.peg === peer.peg;
209
- }
210
- clone(spec, ctx) {
211
- let out = super.clone({
212
- peg: this.peg,
213
- absolute: this.absolute,
214
- ...(spec || {})
215
- }, ctx);
216
- return out;
217
- }
218
- get canon() {
219
- let str = (this.absolute ? '$' : '') +
220
- (0 < this.peg.length ? '.' : '') +
221
- // this.peg.join(this.sep)
222
- this.peg.map((p) => '.' === p ? '' :
223
- (p.isVal ? p.canon : '' + p))
224
- .join('.');
225
- return str;
226
- }
227
- gen(ctx) {
228
- // Unresolved ref cannot be generated, so always an error.
229
- let nil = Nil_1.Nil.make(ctx, 'ref', this, // (formatPath(this.peg, this.absolute) as any),
230
- undefined);
231
- // TODO: refactor to use Site
232
- nil.path = this.path;
233
- nil.url = this.url;
234
- nil.row = this.row;
235
- nil.col = this.col;
236
- (0, err_1.descErr)(nil, ctx);
237
- if (ctx) {
238
- ctx.err.push(nil);
239
- }
240
- else {
241
- throw new Error(nil.msg);
242
- }
243
- return undefined;
244
- }
245
- }
246
- exports.RefVal = RefVal;
247
- //# sourceMappingURL=RefVal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../../lib/val/RefVal.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { Val, ValSpec } from '../type';
2
- import { Context } from '../unify';
3
- import { Site } from '../lang';
4
- declare class ValBase implements Val {
5
- #private;
6
- isVal: boolean;
7
- id: number;
8
- done: number;
9
- path: string[];
10
- row: number;
11
- col: number;
12
- url: string;
13
- top: boolean;
14
- peg: any;
15
- err: any[];
16
- uh: number[];
17
- constructor(spec: ValSpec, ctx?: Context);
18
- ctx(): any;
19
- same(peer: Val): boolean;
20
- clone(spec?: ValSpec, ctx?: Context): Val;
21
- get site(): Site;
22
- unify(_peer: Val, _ctx?: Context): Val;
23
- get canon(): string;
24
- gen(_ctx?: Context): any;
25
- }
26
- export { ValBase, };
@@ -1,77 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2024 Richard Rodger, MIT License */
3
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
4
- if (kind === "m") throw new TypeError("Private method is not writable");
5
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
6
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
7
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
8
- };
9
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
10
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
11
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
12
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
13
- };
14
- var _ValBase_ctx;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ValBase = void 0;
17
- const lang_1 = require("../lang");
18
- let ID = 0;
19
- class ValBase {
20
- // TODO: Site needed in ctor
21
- constructor(spec, ctx) {
22
- this.isVal = true;
23
- this.done = 0;
24
- this.path = [];
25
- this.row = -1;
26
- this.col = -1;
27
- this.url = '';
28
- this.top = false;
29
- // Actual native value.
30
- this.peg = undefined;
31
- // TODO: used for top level result - not great
32
- this.err = [];
33
- // TODO: implement!
34
- // site: Site
35
- _ValBase_ctx.set(this, void 0);
36
- __classPrivateFieldSet(this, _ValBase_ctx, ctx, "f");
37
- this.peg = spec === null || spec === void 0 ? void 0 : spec.peg;
38
- this.path = (ctx === null || ctx === void 0 ? void 0 : ctx.path) || [];
39
- // this.id = (9e9 + Math.floor(Math.random() * (1e9)))
40
- this.id = ++ID; // (9e9 + Math.floor(Math.random() * (1e5)))
41
- this.uh = [];
42
- }
43
- ctx() {
44
- return __classPrivateFieldGet(this, _ValBase_ctx, "f");
45
- }
46
- same(peer) {
47
- return null == peer ? false : this.id === peer.id;
48
- }
49
- clone(spec, ctx) {
50
- let cloneCtx;
51
- if (ctx) {
52
- let cut = this.path.indexOf('&');
53
- cut = -1 < cut ? cut + 1 : ctx.path.length;
54
- cloneCtx = ctx.clone({
55
- path: ctx.path.concat(this.path.slice(cut))
56
- });
57
- }
58
- let out = new this
59
- .constructor(spec || { peg: this.peg }, cloneCtx);
60
- out.row = (spec === null || spec === void 0 ? void 0 : spec.row) || this.row || -1;
61
- out.col = (spec === null || spec === void 0 ? void 0 : spec.col) || this.col || -1;
62
- out.url = (spec === null || spec === void 0 ? void 0 : spec.url) || this.url || '';
63
- if (null == cloneCtx) {
64
- out.path = this.path.slice(0);
65
- }
66
- return out;
67
- }
68
- get site() {
69
- return new lang_1.Site(this);
70
- }
71
- unify(_peer, _ctx) { return this; }
72
- get canon() { return ''; }
73
- gen(_ctx) { return null; }
74
- }
75
- exports.ValBase = ValBase;
76
- _ValBase_ctx = new WeakMap();
77
- //# sourceMappingURL=ValBase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ValBase.js","sourceRoot":"","sources":["../../../lib/val/ValBase.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { Val, ValSpec } from '../type';
2
- import { Context } from '../unify';
3
- import { ValBase } from '../val/ValBase';
4
- declare class VarVal extends ValBase {
5
- isVarVal: boolean;
6
- constructor(spec: {
7
- peg: string | Val;
8
- }, ctx?: Context);
9
- unify(peer: Val, ctx: Context): Val;
10
- same(peer: Val): boolean;
11
- clone(spec?: ValSpec, ctx?: Context): Val;
12
- get canon(): string;
13
- gen(ctx?: Context): undefined;
14
- }
15
- export { VarVal, };
@@ -1,84 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2021-2023 Richard Rodger, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.VarVal = void 0;
5
- const type_1 = require("../type");
6
- const err_1 = require("../err");
7
- const val_1 = require("../val");
8
- // import { ConjunctVal } from '../val/ConjunctVal'
9
- // import { DisjunctVal } from '../val/DisjunctVal'
10
- // import { ListVal } from '../val/ListVal'
11
- // import { MapVal } from '../val/MapVal'
12
- const Nil_1 = require("../val/Nil");
13
- const RefVal_1 = require("../val/RefVal");
14
- const ValBase_1 = require("../val/ValBase");
15
- // TODO: KEY, SELF, PARENT are reserved names - error
16
- class VarVal extends ValBase_1.ValBase {
17
- constructor(spec, ctx) {
18
- super(spec, ctx);
19
- this.isVarVal = true;
20
- }
21
- unify(peer, ctx) {
22
- let out;
23
- let nameVal;
24
- if (this.peg.isVal) {
25
- // $.a.b.c - convert path to absolute
26
- if (this.peg instanceof RefVal_1.RefVal) {
27
- this.peg.absolute = true;
28
- nameVal = this.peg;
29
- }
30
- else {
31
- nameVal = this.peg.unify(peer);
32
- }
33
- }
34
- else {
35
- // TODO: how to pass row+col?
36
- nameVal = new val_1.StringVal({ peg: '' + this.peg }, ctx);
37
- }
38
- if (!(nameVal instanceof RefVal_1.RefVal) && type_1.DONE === nameVal.done) {
39
- if (nameVal instanceof val_1.StringVal) {
40
- out = ctx.var[nameVal.peg];
41
- if (null == out) {
42
- out = Nil_1.Nil.make(ctx, 'var[' + nameVal.peg + ']', this, peer);
43
- }
44
- }
45
- else {
46
- out = Nil_1.Nil.make(ctx, 'var[' + typeof nameVal + ']', this, peer);
47
- }
48
- }
49
- else {
50
- out = nameVal;
51
- }
52
- return out;
53
- }
54
- same(peer) {
55
- return null == peer ? false : peer instanceof VarVal && this.peg === peer.peg;
56
- }
57
- clone(spec, ctx) {
58
- let out = super.clone(spec, ctx);
59
- return out;
60
- }
61
- get canon() {
62
- var _a;
63
- return '$' + (((_a = this.peg) === null || _a === void 0 ? void 0 : _a.isVal) ? this.peg.canon : '' + this.peg);
64
- }
65
- gen(ctx) {
66
- // Unresolved var cannot be generated, so always an error.
67
- let nil = Nil_1.Nil.make(ctx, 'var', this, undefined);
68
- // TODO: refactor to use Site
69
- nil.path = this.path;
70
- nil.url = this.url;
71
- nil.row = this.row;
72
- nil.col = this.col;
73
- (0, err_1.descErr)(nil, ctx);
74
- if (ctx) {
75
- ctx.err.push(nil);
76
- }
77
- else {
78
- throw new Error(nil.msg);
79
- }
80
- return undefined;
81
- }
82
- }
83
- exports.VarVal = VarVal;
84
- //# sourceMappingURL=VarVal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VarVal.js","sourceRoot":"","sources":["../../../lib/val/VarVal.ts"],"names":[],"mappings":"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"}
package/dist/lib/val.d.ts DELETED
@@ -1,81 +0,0 @@
1
- import type { Val, ValSpec } from './type';
2
- import { Context } from './unify';
3
- import { Site } from './lang';
4
- import { ValBase } from './val/ValBase';
5
- declare class TopVal extends ValBase {
6
- isTop: boolean;
7
- id: number;
8
- top: boolean;
9
- peg: undefined;
10
- done: number;
11
- path: never[];
12
- row: number;
13
- col: number;
14
- url: string;
15
- constructor();
16
- unify(peer: Val, _ctx?: Context): Val;
17
- get canon(): string;
18
- get site(): Site;
19
- same(peer: Val): boolean;
20
- clone(): this;
21
- gen(_ctx?: Context): undefined;
22
- }
23
- declare const TOP: TopVal;
24
- declare class Integer {
25
- }
26
- type ScalarConstructor = StringConstructor | NumberConstructor | BooleanConstructor | (typeof Integer.constructor);
27
- declare class ScalarTypeVal extends ValBase {
28
- isScalarTypeVal: boolean;
29
- constructor(spec: {
30
- peg: ScalarConstructor;
31
- }, ctx?: Context);
32
- unify(peer: any, ctx?: Context): Val;
33
- get canon(): any;
34
- same(peer: any): boolean;
35
- gen(_ctx?: Context): undefined;
36
- }
37
- declare class ScalarVal<T> extends ValBase {
38
- type: any;
39
- isScalarVal: boolean;
40
- constructor(spec: {
41
- peg: T;
42
- type: ScalarConstructor;
43
- }, ctx?: Context);
44
- clone(spec?: ValSpec, ctx?: Context): Val;
45
- unify(peer: any, ctx?: Context): Val;
46
- get canon(): any;
47
- same(peer: any): boolean;
48
- gen(_ctx?: Context): any;
49
- }
50
- declare class NumberVal extends ScalarVal<number> {
51
- isNumberVal: boolean;
52
- constructor(spec: {
53
- peg: number;
54
- }, ctx?: Context);
55
- unify(peer: any, ctx?: Context): Val;
56
- }
57
- declare class IntegerVal extends ScalarVal<number> {
58
- isIntegerVal: boolean;
59
- constructor(spec: {
60
- peg: number;
61
- }, ctx?: Context);
62
- unify(peer: any, ctx?: Context): Val;
63
- }
64
- declare class StringVal extends ScalarVal<string> {
65
- isStringVal: boolean;
66
- constructor(spec: {
67
- peg: string;
68
- }, ctx?: Context);
69
- unify(peer: Val, ctx?: Context): Val;
70
- get canon(): string;
71
- }
72
- declare class BooleanVal extends ScalarVal<boolean> {
73
- isBooleanVal: boolean;
74
- constructor(spec: {
75
- peg: boolean;
76
- }, ctx?: Context);
77
- unify(peer: Val, ctx?: Context): Val;
78
- static TRUE: BooleanVal;
79
- static FALSE: BooleanVal;
80
- }
81
- export { TOP, Integer, ScalarTypeVal, NumberVal, StringVal, BooleanVal, IntegerVal, };