aontu 0.61.0 → 0.63.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 (371) hide show
  1. package/README.md +4 -4
  2. package/dist/agentsmd.d.ts +1 -0
  3. package/dist/agentsmd.js +7 -28
  4. package/dist/agentsmd.js.map +1 -1
  5. package/dist/alias.js.map +1 -1
  6. package/dist/allow.d.ts +23 -0
  7. package/dist/allow.js +138 -0
  8. package/dist/allow.js.map +1 -0
  9. package/dist/aontu.d.ts +4 -2
  10. package/dist/aontu.js +4 -80
  11. package/dist/aontu.js.map +1 -1
  12. package/dist/aontumodel.d.ts +4 -0
  13. package/dist/aontumodel.js +33 -0
  14. package/dist/aontumodel.js.map +1 -0
  15. package/dist/cli.d.ts +10 -1
  16. package/dist/cli.js +877 -479
  17. package/dist/cli.js.map +1 -1
  18. package/dist/ctx.js +0 -48
  19. package/dist/ctx.js.map +1 -1
  20. package/dist/diff.js +0 -32
  21. package/dist/diff.js.map +1 -1
  22. package/dist/err.js +0 -40
  23. package/dist/err.js.map +1 -1
  24. package/dist/escape.js +0 -45
  25. package/dist/escape.js.map +1 -1
  26. package/dist/exactjson.d.ts +0 -35
  27. package/dist/exactjson.js +0 -131
  28. package/dist/exactjson.js.map +1 -1
  29. package/dist/format.js +55 -189
  30. package/dist/format.js.map +1 -1
  31. package/dist/grammar.d.ts +9 -0
  32. package/dist/grammar.js +54 -0
  33. package/dist/grammar.js.map +1 -0
  34. package/dist/graph.js +0 -26
  35. package/dist/graph.js.map +1 -1
  36. package/dist/hcanon.js +0 -82
  37. package/dist/hcanon.js.map +1 -1
  38. package/dist/helpdoc.d.ts +16 -0
  39. package/dist/helpdoc.js +59 -0
  40. package/dist/helpdoc.js.map +1 -0
  41. package/dist/hints.d.ts +0 -6
  42. package/dist/hints.js +59 -47
  43. package/dist/hints.js.map +1 -1
  44. package/dist/jsonschema.js +0 -114
  45. package/dist/jsonschema.js.map +1 -1
  46. package/dist/keyorder.d.ts +0 -7
  47. package/dist/keyorder.js +0 -41
  48. package/dist/keyorder.js.map +1 -1
  49. package/dist/lang.js +32 -877
  50. package/dist/lang.js.map +1 -1
  51. package/dist/lower.d.ts +3 -0
  52. package/dist/lower.js +14 -61
  53. package/dist/lower.js.map +1 -1
  54. package/dist/lsp-server.js +0 -16
  55. package/dist/lsp-server.js.map +1 -1
  56. package/dist/lsp.d.ts +1 -1
  57. package/dist/lsp.js +12 -159
  58. package/dist/lsp.js.map +1 -1
  59. package/dist/mcp-server.js +0 -26
  60. package/dist/mcp-server.js.map +1 -1
  61. package/dist/mcp.js +0 -113
  62. package/dist/mcp.js.map +1 -1
  63. package/dist/mod-tool.js +0 -130
  64. package/dist/mod-tool.js.map +1 -1
  65. package/dist/mod.js +0 -162
  66. package/dist/mod.js.map +1 -1
  67. package/dist/patch.js +0 -217
  68. package/dist/patch.js.map +1 -1
  69. package/dist/provenance.js +0 -140
  70. package/dist/provenance.js.map +1 -1
  71. package/dist/query.js +0 -75
  72. package/dist/query.js.map +1 -1
  73. package/dist/reach.js +0 -43
  74. package/dist/reach.js.map +1 -1
  75. package/dist/relation.d.ts +2 -0
  76. package/dist/relation.js +3 -58
  77. package/dist/relation.js.map +1 -1
  78. package/dist/render.js +33 -143
  79. package/dist/render.js.map +1 -1
  80. package/dist/report-sarif.d.ts +0 -11
  81. package/dist/report-sarif.js +0 -28
  82. package/dist/report-sarif.js.map +1 -1
  83. package/dist/sig.js +0 -35
  84. package/dist/sig.js.map +1 -1
  85. package/dist/sigdecl.js +1 -1
  86. package/dist/sigdecl.js.map +1 -1
  87. package/dist/siggate.js +0 -4
  88. package/dist/siggate.js.map +1 -1
  89. package/dist/site.js +3 -29
  90. package/dist/site.js.map +1 -1
  91. package/dist/subsume.d.ts +0 -10
  92. package/dist/subsume.js +0 -137
  93. package/dist/subsume.js.map +1 -1
  94. package/dist/template.d.ts +2 -1
  95. package/dist/template.js +58 -138
  96. package/dist/template.js.map +1 -1
  97. package/dist/trim.js +0 -41
  98. package/dist/trim.js.map +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/dist/type.js.map +1 -1
  101. package/dist/unify.js +12 -242
  102. package/dist/unify.js.map +1 -1
  103. package/dist/utility.js +0 -22
  104. package/dist/utility.js.map +1 -1
  105. package/dist/val/AbnfFuncVal.d.ts +18 -0
  106. package/dist/val/AbnfFuncVal.js +132 -0
  107. package/dist/val/AbnfFuncVal.js.map +1 -0
  108. package/dist/val/AbsentVal.d.ts +11 -0
  109. package/dist/val/AbsentVal.js +30 -0
  110. package/dist/val/AbsentVal.js.map +1 -0
  111. package/dist/val/AggFuncVal.d.ts +10 -1
  112. package/dist/val/AggFuncVal.js +104 -116
  113. package/dist/val/AggFuncVal.js.map +1 -1
  114. package/dist/val/ArithFuncVal.js +0 -12
  115. package/dist/val/ArithFuncVal.js.map +1 -1
  116. package/dist/val/BagVal.js +1 -78
  117. package/dist/val/BagVal.js.map +1 -1
  118. package/dist/val/BigDecimalVal.js +0 -16
  119. package/dist/val/BigDecimalVal.js.map +1 -1
  120. package/dist/val/BigIntegerVal.js +0 -16
  121. package/dist/val/BigIntegerVal.js.map +1 -1
  122. package/dist/val/CloseFuncVal.js +0 -9
  123. package/dist/val/CloseFuncVal.js.map +1 -1
  124. package/dist/val/CmpFuncVal.d.ts +20 -0
  125. package/dist/val/CmpFuncVal.js +188 -0
  126. package/dist/val/CmpFuncVal.js.map +1 -0
  127. package/dist/val/ConjunctVal.js +0 -29
  128. package/dist/val/ConjunctVal.js.map +1 -1
  129. package/dist/val/ConstraintVal.js +0 -500
  130. package/dist/val/ConstraintVal.js.map +1 -1
  131. package/dist/val/ContainerKindVal.js +0 -2
  132. package/dist/val/ContainerKindVal.js.map +1 -1
  133. package/dist/val/CopyFuncVal.js +0 -3
  134. package/dist/val/CopyFuncVal.js.map +1 -1
  135. package/dist/val/Decimal.js +0 -179
  136. package/dist/val/Decimal.js.map +1 -1
  137. package/dist/val/DeprecateFuncVal.js.map +1 -1
  138. package/dist/val/DisjunctVal.js +0 -152
  139. package/dist/val/DisjunctVal.js.map +1 -1
  140. package/dist/val/EachFuncVal.d.ts +1 -2
  141. package/dist/val/EachFuncVal.js +12 -29
  142. package/dist/val/EachFuncVal.js.map +1 -1
  143. package/dist/val/EmitFuncVal.d.ts +1 -1
  144. package/dist/val/EmitFuncVal.js +6 -119
  145. package/dist/val/EmitFuncVal.js.map +1 -1
  146. package/dist/val/ExpectVal.js +0 -62
  147. package/dist/val/ExpectVal.js.map +1 -1
  148. package/dist/val/FilterFuncVal.js +0 -25
  149. package/dist/val/FilterFuncVal.js.map +1 -1
  150. package/dist/val/FuncBaseVal.d.ts +1 -0
  151. package/dist/val/FuncBaseVal.js +7 -127
  152. package/dist/val/FuncBaseVal.js.map +1 -1
  153. package/dist/val/GraphAtomVal.js +0 -15
  154. package/dist/val/GraphAtomVal.js.map +1 -1
  155. package/dist/val/HideFuncVal.js +0 -13
  156. package/dist/val/HideFuncVal.js.map +1 -1
  157. package/dist/val/IntegerVal.js +0 -61
  158. package/dist/val/IntegerVal.js.map +1 -1
  159. package/dist/val/JunctionVal.js +0 -20
  160. package/dist/val/JunctionVal.js.map +1 -1
  161. package/dist/val/KeyFuncVal.js +0 -46
  162. package/dist/val/KeyFuncVal.js.map +1 -1
  163. package/dist/val/ListVal.js +0 -57
  164. package/dist/val/ListVal.js.map +1 -1
  165. package/dist/val/LowerFuncVal.js +11 -6
  166. package/dist/val/LowerFuncVal.js.map +1 -1
  167. package/dist/val/MapVal.js +0 -151
  168. package/dist/val/MapVal.js.map +1 -1
  169. package/dist/val/MatchFuncVal.js +0 -27
  170. package/dist/val/MatchFuncVal.js.map +1 -1
  171. package/dist/val/{FormFuncVal.d.ts → MaybeFuncVal.d.ts} +5 -5
  172. package/dist/val/MaybeFuncVal.js +50 -0
  173. package/dist/val/MaybeFuncVal.js.map +1 -0
  174. package/dist/val/MoveFuncVal.js +0 -18
  175. package/dist/val/MoveFuncVal.js.map +1 -1
  176. package/dist/val/NilVal.js +2 -36
  177. package/dist/val/NilVal.js.map +1 -1
  178. package/dist/val/NomFuncVal.d.ts +12 -0
  179. package/dist/val/NomFuncVal.js +153 -0
  180. package/dist/val/NomFuncVal.js.map +1 -0
  181. package/dist/val/NumberVal.js +0 -15
  182. package/dist/val/NumberVal.js.map +1 -1
  183. package/dist/val/OpBaseVal.d.ts +1 -0
  184. package/dist/val/OpBaseVal.js +3 -15
  185. package/dist/val/OpBaseVal.js.map +1 -1
  186. package/dist/val/PackFuncVal.js +0 -34
  187. package/dist/val/PackFuncVal.js.map +1 -1
  188. package/dist/val/PathFuncVal.js +0 -6
  189. package/dist/val/PathFuncVal.js.map +1 -1
  190. package/dist/val/PathVal.js +0 -41
  191. package/dist/val/PathVal.js.map +1 -1
  192. package/dist/val/PlaceVal.js +0 -25
  193. package/dist/val/PlaceVal.js.map +1 -1
  194. package/dist/val/PlusOpVal.d.ts +1 -7
  195. package/dist/val/PlusOpVal.js +13 -74
  196. package/dist/val/PlusOpVal.js.map +1 -1
  197. package/dist/val/PrefFuncVal.js +0 -1
  198. package/dist/val/PrefFuncVal.js.map +1 -1
  199. package/dist/val/PrefVal.js +0 -167
  200. package/dist/val/PrefVal.js.map +1 -1
  201. package/dist/val/RecurseVal.js +0 -55
  202. package/dist/val/RecurseVal.js.map +1 -1
  203. package/dist/val/RefVal.js +0 -282
  204. package/dist/val/RefVal.js.map +1 -1
  205. package/dist/val/ReferFuncVal.js +0 -232
  206. package/dist/val/ReferFuncVal.js.map +1 -1
  207. package/dist/val/ScalarKindVal.js +0 -49
  208. package/dist/val/ScalarKindVal.js.map +1 -1
  209. package/dist/val/ScalarVal.js +0 -11
  210. package/dist/val/ScalarVal.js.map +1 -1
  211. package/dist/val/StrFuncVal.js +0 -18
  212. package/dist/val/StrFuncVal.js.map +1 -1
  213. package/dist/val/SuperFuncVal.js +0 -32
  214. package/dist/val/SuperFuncVal.js.map +1 -1
  215. package/dist/val/TopVal.js +0 -1
  216. package/dist/val/TopVal.js.map +1 -1
  217. package/dist/val/TranslateFuncVal.d.ts +12 -0
  218. package/dist/val/TranslateFuncVal.js +99 -0
  219. package/dist/val/TranslateFuncVal.js.map +1 -0
  220. package/dist/val/UpperFuncVal.js +11 -6
  221. package/dist/val/UpperFuncVal.js.map +1 -1
  222. package/dist/val/Val.d.ts +1 -0
  223. package/dist/val/Val.js +2 -133
  224. package/dist/val/Val.js.map +1 -1
  225. package/dist/val/VarVal.js +0 -12
  226. package/dist/val/VarVal.js.map +1 -1
  227. package/dist/val/arith.js +0 -37
  228. package/dist/val/arith.js.map +1 -1
  229. package/dist/val/caserange.d.ts +3 -0
  230. package/dist/val/caserange.js +49 -0
  231. package/dist/val/caserange.js.map +1 -0
  232. package/dist/val/members.js +0 -6
  233. package/dist/val/members.js.map +1 -1
  234. package/dist/val/numcmp.js +0 -11
  235. package/dist/val/numcmp.js.map +1 -1
  236. package/dist/val/numkind.js +0 -145
  237. package/dist/val/numkind.js.map +1 -1
  238. package/dist/val/valutil.js +0 -16
  239. package/dist/val/valutil.js.map +1 -1
  240. package/dist/vet.d.ts +12 -0
  241. package/dist/vet.js +159 -412
  242. package/dist/vet.js.map +1 -1
  243. package/dist/view.js +0 -414
  244. package/dist/view.js.map +1 -1
  245. package/dist/walk.js +0 -41
  246. package/dist/walk.js.map +1 -1
  247. package/grammar/aontu.abnf +9 -7
  248. package/grammar/aontu.gbnf +5 -5
  249. package/grammar/aontu.lark +5 -5
  250. package/grammar/aontu.tmLanguage.json +1 -1
  251. package/package.json +4 -2
  252. package/skill/SKILL.md +8 -0
  253. package/skill/init/check.sh +28 -0
  254. package/skill/init/data.aon +12 -0
  255. package/skill/init/model.aon +19 -0
  256. package/skill/tasks.md +151 -0
  257. package/src/agentsmd.ts +8 -32
  258. package/src/alias.ts +0 -39
  259. package/src/allow.ts +221 -0
  260. package/src/aontu.ts +10 -108
  261. package/src/aontumodel.ts +32 -0
  262. package/src/cli.ts +1009 -540
  263. package/src/ctx.ts +0 -103
  264. package/src/diff.ts +0 -40
  265. package/src/err.ts +0 -40
  266. package/src/escape.ts +0 -46
  267. package/src/exactjson.ts +0 -131
  268. package/src/format.ts +63 -234
  269. package/src/grammar.ts +72 -0
  270. package/src/graph.ts +0 -61
  271. package/src/hcanon.ts +0 -82
  272. package/src/helpdoc.ts +77 -0
  273. package/src/hints.ts +72 -49
  274. package/src/jsonschema.ts +0 -123
  275. package/src/keyorder.ts +0 -42
  276. package/src/lang.ts +39 -895
  277. package/src/lower.ts +15 -65
  278. package/src/lsp-server.ts +0 -16
  279. package/src/lsp.ts +12 -180
  280. package/src/mcp-server.ts +0 -31
  281. package/src/mcp.ts +0 -130
  282. package/src/mod-tool.ts +0 -158
  283. package/src/mod.ts +0 -178
  284. package/src/patch.ts +0 -232
  285. package/src/provenance.ts +0 -183
  286. package/src/query.ts +0 -84
  287. package/src/reach.ts +0 -53
  288. package/src/relation.ts +7 -71
  289. package/src/render.ts +33 -180
  290. package/src/report-sarif.ts +0 -48
  291. package/src/sig.ts +0 -35
  292. package/src/sigdecl.ts +1 -1
  293. package/src/siggate.ts +0 -30
  294. package/src/site.ts +3 -29
  295. package/src/subsume.ts +1 -161
  296. package/src/template.ts +69 -140
  297. package/src/trim.ts +0 -53
  298. package/src/type.ts +2 -45
  299. package/src/unify.ts +13 -251
  300. package/src/utility.ts +0 -31
  301. package/src/val/AbnfFuncVal.ts +181 -0
  302. package/src/val/AbsentVal.ts +54 -0
  303. package/src/val/AggFuncVal.ts +152 -188
  304. package/src/val/ArithFuncVal.ts +0 -20
  305. package/src/val/BagVal.ts +1 -78
  306. package/src/val/BigDecimalVal.ts +0 -16
  307. package/src/val/BigIntegerVal.ts +0 -16
  308. package/src/val/CloseFuncVal.ts +0 -9
  309. package/src/val/CmpFuncVal.ts +249 -0
  310. package/src/val/ConjunctVal.ts +0 -33
  311. package/src/val/ConstraintVal.ts +2 -537
  312. package/src/val/ContainerKindVal.ts +0 -18
  313. package/src/val/CopyFuncVal.ts +0 -5
  314. package/src/val/Decimal.ts +1 -185
  315. package/src/val/DeprecateFuncVal.ts +0 -10
  316. package/src/val/DisjunctVal.ts +0 -157
  317. package/src/val/EachFuncVal.ts +12 -53
  318. package/src/val/EmitFuncVal.ts +8 -208
  319. package/src/val/ExpectVal.ts +0 -62
  320. package/src/val/FilterFuncVal.ts +0 -55
  321. package/src/val/FuncBaseVal.ts +9 -130
  322. package/src/val/GraphAtomVal.ts +0 -42
  323. package/src/val/HideFuncVal.ts +0 -15
  324. package/src/val/IntegerVal.ts +0 -61
  325. package/src/val/JunctionVal.ts +0 -20
  326. package/src/val/KeyFuncVal.ts +0 -48
  327. package/src/val/ListVal.ts +0 -59
  328. package/src/val/LowerFuncVal.ts +12 -7
  329. package/src/val/MapVal.ts +0 -151
  330. package/src/val/MatchFuncVal.ts +0 -59
  331. package/src/val/MaybeFuncVal.ts +86 -0
  332. package/src/val/MoveFuncVal.ts +0 -20
  333. package/src/val/NilVal.ts +2 -36
  334. package/src/val/NomFuncVal.ts +200 -0
  335. package/src/val/NumberVal.ts +0 -16
  336. package/src/val/OpBaseVal.ts +4 -17
  337. package/src/val/PackFuncVal.ts +0 -63
  338. package/src/val/PathFuncVal.ts +0 -32
  339. package/src/val/PathVal.ts +0 -66
  340. package/src/val/PlaceVal.ts +0 -45
  341. package/src/val/PlusOpVal.ts +18 -75
  342. package/src/val/PrefFuncVal.ts +0 -1
  343. package/src/val/PrefVal.ts +0 -179
  344. package/src/val/RecurseVal.ts +0 -81
  345. package/src/val/RefVal.ts +1 -285
  346. package/src/val/ReferFuncVal.ts +0 -255
  347. package/src/val/ScalarKindVal.ts +0 -50
  348. package/src/val/ScalarVal.ts +0 -12
  349. package/src/val/StrFuncVal.ts +0 -44
  350. package/src/val/SuperFuncVal.ts +0 -42
  351. package/src/val/TopVal.ts +0 -1
  352. package/src/val/TranslateFuncVal.ts +132 -0
  353. package/src/val/UpperFuncVal.ts +12 -7
  354. package/src/val/Val.ts +3 -192
  355. package/src/val/VarVal.ts +0 -15
  356. package/src/val/arith.ts +0 -92
  357. package/src/val/caserange.ts +53 -0
  358. package/src/val/members.ts +0 -23
  359. package/src/val/numcmp.ts +1 -27
  360. package/src/val/numkind.ts +0 -149
  361. package/src/val/valutil.ts +0 -16
  362. package/src/vet.ts +209 -504
  363. package/src/view.ts +0 -507
  364. package/src/walk.ts +0 -41
  365. package/dist/std.d.ts +0 -3
  366. package/dist/std.js +0 -637
  367. package/dist/std.js.map +0 -1
  368. package/dist/val/FormFuncVal.js +0 -55
  369. package/dist/val/FormFuncVal.js.map +0 -1
  370. package/src/std.ts +0 -648
  371. package/src/val/FormFuncVal.ts +0 -119
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ParseFuncVal = exports.AbnfFuncVal = void 0;
5
+ const type_1 = require("../type");
6
+ const FuncBaseVal_1 = require("./FuncBaseVal");
7
+ const StringVal_1 = require("./StringVal");
8
+ const MapVal_1 = require("./MapVal");
9
+ const ListVal_1 = require("./ListVal");
10
+ const ConjunctVal_1 = require("./ConjunctVal");
11
+ const err_1 = require("../err");
12
+ const grammar_1 = require("../grammar");
13
+ class AbnfFuncVal extends FuncBaseVal_1.FuncBaseVal {
14
+ constructor(spec, ctx) {
15
+ super(spec, ctx);
16
+ this.isAbnfFunc = true;
17
+ }
18
+ funcname() {
19
+ return 'abnf';
20
+ }
21
+ resolve(ctx, args) {
22
+ const a = args[0];
23
+ // Not an arity check: the arity and signature gates run first, so
24
+ // what reaches here is a nil argument, which both pass over.
25
+ if ('string' !== typeof a?.peg) {
26
+ return this.place((0, err_1.makeNilErr)(ctx, 'abnf_grammar', this, undefined, 'abnf'));
27
+ }
28
+ const [, why] = (0, grammar_1.compileGrammar)(a.peg);
29
+ if (undefined !== why) {
30
+ return this.place((0, err_1.makeNilErr)(ctx, 'abnf_grammar', this, undefined, 'abnf', { reason: why }));
31
+ }
32
+ return this.place(new StringVal_1.StringVal({ peg: a.peg }, ctx));
33
+ }
34
+ }
35
+ exports.AbnfFuncVal = AbnfFuncVal;
36
+ // A tree node is just the map {rule, src, kids}, so it needs no case of
37
+ // its own. Keys are sorted so both ports build the same member order.
38
+ function astVal(node, ctx) {
39
+ if ('string' === typeof node) {
40
+ return new StringVal_1.StringVal({ peg: node }, ctx);
41
+ }
42
+ if (Array.isArray(node)) {
43
+ return new ListVal_1.ListVal({
44
+ peg: node.map((e, i) => astVal(e, ctx.descend(String(i)))),
45
+ }, ctx);
46
+ }
47
+ const peg = {};
48
+ for (const k of Object.keys(node).sort()) {
49
+ peg[k] = astVal(node[k], ctx.descend(k));
50
+ }
51
+ return new MapVal_1.MapVal({ peg }, ctx);
52
+ }
53
+ class ParseFuncVal extends FuncBaseVal_1.FuncBaseVal {
54
+ constructor(spec, ctx) {
55
+ super(spec, ctx);
56
+ this.isParseFunc = true;
57
+ }
58
+ funcname() {
59
+ return 'parse';
60
+ }
61
+ // Meets its peer instead of resolving, so it must see the peer
62
+ // before the base drives to resolve().
63
+ unify(peer, ctx) {
64
+ if (1 !== this.peg.length) {
65
+ return super.unify(peer, ctx);
66
+ }
67
+ this.driveStagedArgs(ctx, 1);
68
+ const g = this.peg[0];
69
+ if ('string' !== typeof g?.peg) {
70
+ return this.residuate(peer, ctx);
71
+ }
72
+ // A settled constraint is stable, as a residual constraint atom is.
73
+ // Without this a `type()` holding one never resolves.
74
+ this.dc = type_1.DONE;
75
+ const p = peer;
76
+ if (true !== p?.isString || 'string' !== typeof p?.peg) {
77
+ return this.hold(peer, ctx);
78
+ }
79
+ const [grammar, why] = (0, grammar_1.compileGrammar)(g.peg);
80
+ if (undefined !== why) {
81
+ return (0, err_1.makeNilErr)(ctx, 'abnf_grammar', this, peer, 'parse', { reason: why });
82
+ }
83
+ if ('' === p.peg) {
84
+ return (0, err_1.makeNilErr)(ctx, 'parse_failed', this, peer, 'parse', { reason: 'the empty string parses under no grammar' });
85
+ }
86
+ const [, err] = (0, grammar_1.parseWith)(grammar, p.peg, ctx);
87
+ if (undefined !== err) {
88
+ return (0, err_1.makeNilErr)(ctx, 'parse_failed', this, peer, 'parse', { reason: err });
89
+ }
90
+ return peer;
91
+ }
92
+ // The stable twin of residuate: no `notdone()`, because a settled
93
+ // constraint stays done while it waits for a value.
94
+ hold(peer, ctx) {
95
+ if (peer.isTop || peer.id === this.id) {
96
+ // Cloned, or a driver meeting it twice reports `unify_cycle`.
97
+ const out = this.clone(ctx);
98
+ out.dc = type_1.DONE;
99
+ return out;
100
+ }
101
+ if (peer.isFunc
102
+ && peer.funcname() === this.funcname()
103
+ && peer.path.join('.') === this.path.join('.')
104
+ && peer.canon === this.canon) {
105
+ return this;
106
+ }
107
+ return new ConjunctVal_1.ConjunctVal({ peg: [this, peer] }, ctx);
108
+ }
109
+ resolve(ctx, args) {
110
+ const g = args[0];
111
+ const v = args[1];
112
+ // Not an arity check: see the abnf twin above.
113
+ if ('string' !== typeof g?.peg || 'string' !== typeof v?.peg) {
114
+ return this.place((0, err_1.makeNilErr)(ctx, 'parse_arg', this, undefined, 'parse'));
115
+ }
116
+ const [grammar, why] = (0, grammar_1.compileGrammar)(g.peg);
117
+ if (undefined !== why) {
118
+ return this.place((0, err_1.makeNilErr)(ctx, 'abnf_grammar', this, undefined, 'parse', { reason: why }));
119
+ }
120
+ // The host answers an empty tree for empty input.
121
+ if ('' === v.peg) {
122
+ return this.place((0, err_1.makeNilErr)(ctx, 'parse_failed', this, undefined, 'parse', { reason: 'the empty string parses under no grammar' }));
123
+ }
124
+ const [node, err] = (0, grammar_1.parseWith)(grammar, v.peg, ctx);
125
+ if (undefined !== err) {
126
+ return this.place((0, err_1.makeNilErr)(ctx, 'parse_failed', this, undefined, 'parse', { reason: err }));
127
+ }
128
+ return this.place(astVal(node, ctx));
129
+ }
130
+ } /* node:coverage ignore next 6 */
131
+ exports.ParseFuncVal = ParseFuncVal;
132
+ //# sourceMappingURL=AbnfFuncVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbnfFuncVal.js","sourceRoot":"","sources":["../../src/val/AbnfFuncVal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { FeatureVal } from './FeatureVal';
4
+ declare class AbsentVal extends FeatureVal {
5
+ isAbsent: boolean;
6
+ constructor(spec: ValSpec, ctx?: AontuContext);
7
+ unify(peer: Val, _ctx: AontuContext): Val;
8
+ get canon(): string;
9
+ gen(_ctx?: AontuContext): undefined;
10
+ }
11
+ export { AbsentVal, };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AbsentVal = void 0;
5
+ const type_1 = require("../type");
6
+ const FeatureVal_1 = require("./FeatureVal");
7
+ // Top with one difference (ADR-034): absence is GENERABLE, and
8
+ // generates nothing, so a bag drops it at a required key too.
9
+ class AbsentVal extends FeatureVal_1.FeatureVal {
10
+ constructor(spec, ctx) {
11
+ super(spec, ctx);
12
+ this.isAbsent = true;
13
+ this.dc = type_1.DONE;
14
+ this.mark.type = false;
15
+ this.mark.hide = false;
16
+ }
17
+ // The unit of the meet, called for EITHER operand so `&` commutes.
18
+ // Nothing here meets an absence with TOP, so there is no top arm;
19
+ // Go has one because it MEETS an op's result where this port places
20
+ // it. edge-plus-list-absent guards the day that changes.
21
+ unify(peer, _ctx) {
22
+ return peer;
23
+ }
24
+ get canon() { return 'maybe()'; }
25
+ gen(_ctx) {
26
+ return undefined;
27
+ }
28
+ } /* node:coverage ignore next 6 */
29
+ exports.AbsentVal = AbsentVal;
30
+ //# sourceMappingURL=AbsentVal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbsentVal.js","sourceRoot":"","sources":["../../src/val/AbsentVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAQpD,kCAEgB;AAMhB,6CAAyC;AAGzC,+DAA+D;AAC/D,8DAA8D;AAC9D,MAAM,SAAU,SAAQ,uBAAU;IAGhC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,aAAQ,GAAG,IAAI,CAAA;QAOb,IAAI,CAAC,EAAE,GAAG,WAAI,CAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IACxB,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,oEAAoE;IACpE,yDAAyD;IACzD,KAAK,CAAC,IAAS,EAAE,IAAkB;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,SAAS,CAAA,CAAC,CAAC;IAEhC,GAAG,CAAC,IAAmB;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;CAEF,CAAC,iCAAiC;QAIjC,SAAS"}
@@ -21,6 +21,15 @@ declare class PickFuncVal extends FuncBaseVal {
21
21
  unify(peer: Val, ctx: AontuContext): Val;
22
22
  resolve(ctx: AontuContext, args: Val[]): Val;
23
23
  }
24
+ declare class SortFuncVal extends FuncBaseVal {
25
+ isSortFunc: boolean;
26
+ staged: boolean;
27
+ constructor(spec: ValSpec, ctx?: AontuContext);
28
+ funcname(): string;
29
+ prepare(_ctx: AontuContext, _args: Val[]): null;
30
+ unify(peer: Val, ctx: AontuContext): Val;
31
+ resolve(ctx: AontuContext, args: Val[]): Val;
32
+ }
24
33
  declare class JoinFuncVal extends FuncBaseVal {
25
34
  isJoinFunc: boolean;
26
35
  staged: boolean;
@@ -41,4 +50,4 @@ declare class LeastFuncVal extends AggFuncVal {
41
50
  declare class GreatestFuncVal extends AggFuncVal {
42
51
  constructor(spec: ValSpec, ctx?: AontuContext);
43
52
  }
44
- export { AggFuncVal, JoinFuncVal, PickFuncVal, SumFuncVal, LeastFuncVal, GreatestFuncVal, };
53
+ export { AggFuncVal, JoinFuncVal, PickFuncVal, SortFuncVal, SumFuncVal, LeastFuncVal, GreatestFuncVal, };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  /* Copyright (c) 2025 Richard Rodger, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.GreatestFuncVal = exports.LeastFuncVal = exports.SumFuncVal = exports.PickFuncVal = exports.JoinFuncVal = exports.AggFuncVal = void 0;
4
+ exports.GreatestFuncVal = exports.LeastFuncVal = exports.SumFuncVal = exports.SortFuncVal = exports.PickFuncVal = exports.JoinFuncVal = exports.AggFuncVal = void 0;
5
5
  const err_1 = require("../err");
6
6
  const IntegerVal_1 = require("./IntegerVal");
7
7
  const ListVal_1 = require("./ListVal");
@@ -9,14 +9,9 @@ const StringVal_1 = require("./StringVal");
9
9
  const FuncBaseVal_1 = require("./FuncBaseVal");
10
10
  const arith_1 = require("./arith");
11
11
  const numcmp_1 = require("./numcmp");
12
+ const keyorder_1 = require("../keyorder");
12
13
  const members_1 = require("./members");
13
14
  const PlusOpVal_1 = require("./PlusOpVal");
14
- // The children of a bag, in the order the aggregate sees them: source
15
- // order for a list, sorted-key order for a map -- `each`'s order, and
16
- // for the same reason (a map has no order of its own, so the language
17
- // picks one and states it).
18
- // The members of the bag a fold reads: what generation would emit
19
- // (./members.ts, BUGS.md §79), in the one map-key order (BUGS.md §62).
20
15
  function bagChildren(data, ctx) {
21
16
  return (0, members_1.memberVals)(data, ctx);
22
17
  }
@@ -24,24 +19,12 @@ class AggFuncVal extends FuncBaseVal_1.FuncBaseVal {
24
19
  constructor(spec, ctx, op) {
25
20
  super(spec, ctx);
26
21
  this.isAggFunc = true;
27
- // THE STAGING RULE (G8 phase 0). A total over a bag that is still
28
- // being merged into is a total of the wrong bag -- the same reason
29
- // `filter` and `each` wait.
30
22
  this.staged = true;
31
23
  this.op = op;
32
24
  }
33
- // NO `make` OVERRIDE, matching the other STAGED funcs (pack, each,
34
- // filter, match): a staged call returns `residuate` before `unify`
35
- // ever reaches the rebuild branch, so an override there would be
36
- // unreachable code pretending to be a contract. The base's `make`
37
- // raises `func:<name>` if that ever stops being true, which is the
38
- // loud answer rather than a value that silently lost its operation.
39
25
  funcname() {
40
26
  return this.op;
41
27
  }
42
- // The base does not drive the argument: `unify` drives it by hand,
43
- // because a staged func must advance what it is waiting on every
44
- // pass rather than only on the pass it fires.
45
28
  prepare(_ctx, _args) {
46
29
  return null;
47
30
  }
@@ -58,9 +41,6 @@ class AggFuncVal extends FuncBaseVal_1.FuncBaseVal {
58
41
  return this.place((0, err_1.makeNilErr)(ctx, 'aggregate_data', this, undefined, this.op));
59
42
  }
60
43
  if ('sum' === this.op) {
61
- // Zero is addition's identity, so an empty bag has an answer and
62
- // it is an integer -- the narrowest kind, which the first real
63
- // operand then widens under R5 exactly as `add(0, x)` would.
64
44
  let total = new IntegerVal_1.IntegerVal({ peg: 0 });
65
45
  for (const child of children) {
66
46
  total = (0, arith_1.arith)(ctx, 'add', this, total, child, this.op);
@@ -106,28 +86,6 @@ function unpref(v) {
106
86
  }
107
87
  return v;
108
88
  }
109
- // PROJECTION: `pick(d, k)` -- one element per child of `d`, being that
110
- // child's `k`.
111
- //
112
- // The other half of the review's finding I: "`_.field` is unspellable,
113
- // `filter` cannot see into lists, `unique()`-by-field is reserved but
114
- // absent -- so 'no two services share a port' and 'unique event ids'
115
- // cannot be said." Without it the aggregates above cannot reach the
116
- // case that motivated them, because `sum` needs a bag of NUMBERS and a
117
- // model holds a bag of RECORDS:
118
- //
119
- // total: sum(pick($.lines, amountCents))
120
- //
121
- // IT IS NOT `each` WITH A CLEVER TEMPLATE. `each(d, t)` MEETS each
122
- // child with `t`, and a meet cannot select: `each($.lines, _.amount)`
123
- // asks for a child that is simultaneously the whole record and one of
124
- // its fields, which is why every spelling of it answers `no_path`.
125
- // Selection is a different operation and gets its own verb.
126
- //
127
- // A CHILD MISSING THE KEY IS AN ERROR, not a silently shorter list.
128
- // Skipping would make `sum(pick(...))` quietly total the wrong set of
129
- // records -- the failure mode an aggregate exists to prevent -- so the
130
- // refusal names the child (`pick_key`).
131
89
  class PickFuncVal extends FuncBaseVal_1.FuncBaseVal {
132
90
  constructor(spec, ctx) {
133
91
  super(spec, ctx);
@@ -183,22 +141,107 @@ class PickFuncVal extends FuncBaseVal_1.FuncBaseVal {
183
141
  }
184
142
  }
185
143
  exports.PickFuncVal = PickFuncVal;
186
- // Which of the three a value is.
187
- //
188
- // `text` -- `+` would take it, so the fold can.
189
- //
190
- // `never` -- a SETTLED value that will never become text: a map, a
191
- // list, a null. This is `join_member`, class `conflict`, and it names
192
- // the member rather than the call, because "one of these is not a
193
- // string" is only actionable if you are told which.
194
- //
195
- // `notyet` -- an unresolved kind, a top, a stable residue. NOT a join
196
- // failure at all: the call stays residual and generation reports
197
- // `mapval_no_gen`, class `incomplete`, exactly as docs/trust.md
198
- // requires ("a stable residue ... is ordinary incompleteness"). Getting
199
- // this split wrong in either direction is the defect that matters here:
200
- // refusing a residue makes `join` unusable inside a schema, and
201
- // deferring on a map makes a real error arrive as a shrug.
144
+ // `pick`'s rule, plus: the empty string is the member itself, which is
145
+ // how a keyless descending sort is spelled.
146
+ function projectorName(key) {
147
+ if (null == key || null == key.peg) {
148
+ return ['', true];
149
+ }
150
+ if ('string' === typeof key.peg) {
151
+ return [key.peg, true];
152
+ }
153
+ if ('number' === typeof key.peg && key.isInteger) {
154
+ return [String(key.peg), true];
155
+ }
156
+ return ['', false];
157
+ }
158
+ function fieldOf(child, name) {
159
+ return true === child?.isMap ? child.peg[name] :
160
+ true === child?.isList ? child.peg[Number(name)] :
161
+ undefined;
162
+ }
163
+ const SORT_DIRECTIONS = { asc: 1, desc: -1 };
164
+ function directionOf(v) {
165
+ if (null == v || null == v.peg) {
166
+ return 1;
167
+ }
168
+ return 'string' === typeof v.peg ? SORT_DIRECTIONS[v.peg] : undefined;
169
+ }
170
+ // Text by code point, numbers by the exact comparator, nothing else.
171
+ function sortDomain(u) {
172
+ if (true !== u?.isVal || true !== u.isScalar || true === u.isNull) {
173
+ return undefined;
174
+ }
175
+ if ('string' === typeof u.peg) {
176
+ return 'text';
177
+ }
178
+ return 'boolean' === typeof u.peg ? undefined : 'number';
179
+ }
180
+ class SortFuncVal extends FuncBaseVal_1.FuncBaseVal {
181
+ constructor(spec, ctx) {
182
+ super(spec, ctx);
183
+ this.isSortFunc = true;
184
+ // The bag must settle before it is ordered, exactly as it must
185
+ // before it is projected.
186
+ this.staged = true;
187
+ }
188
+ funcname() {
189
+ return 'sort';
190
+ }
191
+ // The base drives no argument: the DATA is driven by hand below, and
192
+ // the projector is a bare word the parser has already made a string.
193
+ prepare(_ctx, _args) {
194
+ return null;
195
+ }
196
+ unify(peer, ctx) {
197
+ const ready = this.driveStagedArgs(ctx, 1);
198
+ if (!ready || !ctx.settle) {
199
+ return this.residuate(peer, ctx);
200
+ }
201
+ return super.unify(peer, ctx);
202
+ }
203
+ resolve(ctx, args) {
204
+ const children = bagChildren(args?.[0], ctx);
205
+ if (undefined === children) {
206
+ return this.place((0, err_1.makeNilErr)(ctx, 'aggregate_data', this, undefined, 'sort'));
207
+ }
208
+ const [name, nameok] = projectorName(args?.[1]);
209
+ if (!nameok) {
210
+ return this.place((0, err_1.makeNilErr)(ctx, 'invalid-arg', this, undefined, 'sort'));
211
+ }
212
+ const dir = directionOf(args?.[2]);
213
+ if (undefined === dir) {
214
+ return this.place((0, err_1.makeNilErr)(ctx, 'sort_dir', this, undefined, 'sort', { dir: args[2].canon }));
215
+ }
216
+ const rows = [];
217
+ let domain = undefined;
218
+ for (const child of children) {
219
+ const at = '' === name ? child : fieldOf(child, name);
220
+ if (null == at) {
221
+ return this.place((0, err_1.makeNilErr)(ctx, 'sort_key', this, undefined, 'sort', { key: name }));
222
+ }
223
+ const u = unpref(at);
224
+ const found = sortDomain(u);
225
+ if (undefined === found ||
226
+ (undefined !== domain && found !== domain)) {
227
+ return this.place((0, err_1.makeNilErr)(ctx, 'sort_domain', this, undefined, 'sort', { member: u.canon }));
228
+ }
229
+ domain = found;
230
+ rows.push({ idx: rows.length, val: child, key: u });
231
+ }
232
+ // The source index breaks every tie, so the order is TOTAL and
233
+ // neither port's sort algorithm can reorder equals.
234
+ rows.sort((a, b) => {
235
+ const c = 'text' === domain ?
236
+ (0, keyorder_1.cmpCodePoint)(a.key.peg, b.key.peg) :
237
+ (0, numcmp_1.cmpNumeric)(a.key, b.key);
238
+ return 0 === c ? a.idx - b.idx : dir * c;
239
+ });
240
+ const peg = rows.map((r, i) => r.val.clone(ctx.descend(String(i))));
241
+ return this.place(new ListVal_1.ListVal({ peg }, ctx));
242
+ }
243
+ }
244
+ exports.SortFuncVal = SortFuncVal;
202
245
  function memberVerdict(v) {
203
246
  const u = unpref(v);
204
247
  if (undefined !== (0, PlusOpVal_1.plusText)(u)) {
@@ -209,15 +252,6 @@ function memberVerdict(v) {
209
252
  }
210
253
  return 'notyet';
211
254
  }
212
- // The separator is a STRING or it is nothing.
213
- //
214
- // A number would render perfectly well through `+`, and is still
215
- // refused: the separator is not a member of the fold, it is the
216
- // parameter naming the text between members, and `join(x, 5)` is far
217
- // likelier a mistake than an intent to separate with "5". `pick`'s key
218
- // argument draws the same line for the same reason. This is the
219
- // direction that can be loosened later without breaking a document;
220
- // the other direction cannot.
221
255
  function sepVerdict(v) {
222
256
  const u = unpref(v);
223
257
  if (u?.isVal && u.isScalar) {
@@ -236,22 +270,6 @@ class JoinFuncVal extends FuncBaseVal_1.FuncBaseVal {
236
270
  // it is summed or projected.
237
271
  this.staged = true;
238
272
  }
239
- // A `make` OVERRIDE, WHERE ITS AggFuncVal SIBLINGS HAVE NONE, and the
240
- // difference is worth stating because it is not arbitrary. `sum`,
241
- // `pick` and the rest are staged and nothing more: they residuate
242
- // before `unify` reaches the rebuild branch, so a `make` there would
243
- // be unreachable code pretending to be a contract, and the base's
244
- // `func:<name>` refusal is the loud answer if that ever changes.
245
- //
246
- // `join` is the first builtin that is BOTH staged AND defers its
247
- // resolution (see `deferResolve`). A deferred call has settled
248
- // arguments, so it does reach the rebuild branch, and without this it
249
- // raised `func:join` on the first document with an unresolved member
250
- // — where the Go port residuated and reported `mapval_no_gen`.
251
- // Opposite answers on `join($.m, ",")` with `m: [string]`, caught by
252
- // running both engines rather than by either test suite. `super` and
253
- // bare `id`, the two other deferring calls, each carry the same
254
- // override for the same reason.
255
273
  make(_ctx, spec) {
256
274
  return new JoinFuncVal(spec);
257
275
  }
@@ -265,20 +283,12 @@ class JoinFuncVal extends FuncBaseVal_1.FuncBaseVal {
265
283
  return null;
266
284
  }
267
285
  unify(peer, ctx) {
268
- // BOTH arguments, unlike `pick`, which drives only its bag: `pick`'s
269
- // key is a bare word the parser has already made a string, while a
270
- // separator is an ordinary expression and `join($.rows, $.sep)` has
271
- // to wait for it.
272
286
  const ready = this.driveStagedArgs(ctx, 2);
273
287
  if (!ready || !ctx.settle) {
274
288
  return this.residuate(peer, ctx);
275
289
  }
276
290
  return super.unify(peer, ctx);
277
291
  }
278
- // The `notyet` half of the verdict, taken before `resolve` runs: with
279
- // arguments settled but a member still a kind, the call rides the
280
- // ordinary args-not-done path and residuates, which is what makes an
281
- // unresolved member ordinary incompleteness rather than a refusal.
282
292
  deferResolve(ctx, args) {
283
293
  const children = bagChildren(args?.[0], ctx);
284
294
  if (undefined === children) {
@@ -297,27 +307,10 @@ class JoinFuncVal extends FuncBaseVal_1.FuncBaseVal {
297
307
  if (undefined === children) {
298
308
  return this.place((0, err_1.makeNilErr)(ctx, 'aggregate_data', this, undefined, 'join'));
299
309
  }
300
- // Arity is [1,2], so a second argument is present or the separator
301
- // is the empty string -- which makes `join(coll)` concatenation.
302
- // The separator's SHAPE is settled before resolve runs: the
303
- // signature gate refuses every concrete non-string
304
- // (docs/design/SIGNATURES.0.md; join(d: map|list, sep?: string)),
305
- // and deferResolve holds the call while sepVerdict answers notyet
306
- // -- so a present separator here is text.
307
310
  let sep = '';
308
311
  if (1 < args.length) {
309
312
  sep = unpref(args[1]).peg;
310
313
  }
311
- // NO NIL-MEMBER GUARD, WHERE `sum` HAS ONE, and the difference is
312
- // the fold's shape rather than an oversight. `sum` folds with
313
- // `arith`, which MINTS a nil part-way through — a non-numeric child
314
- // or an overflow — so it has to stop and return it. `join` folds
315
- // already-unified values, and a nil among a list's elements
316
- // collapses the list before this call resolves: `join([least([])],
317
- // ",")` reports `aggregate_empty` at the member's own path,
318
- // `$.o.0`, and never reaches here. A guard was written, the
319
- // ADR-002 gate found it unexecuted, and probing confirmed no
320
- // spelling reaches it, so it is removed rather than excused.
321
314
  const parts = [];
322
315
  for (const child of children) {
323
316
  const u = unpref(child);
@@ -327,15 +320,10 @@ class JoinFuncVal extends FuncBaseVal_1.FuncBaseVal {
327
320
  }
328
321
  parts.push(text);
329
322
  }
330
- // Every part is already a string, so this IS the `+` fold seeded
331
- // with `""` -- written as one concatenation because a loop of `+`
332
- // over settled strings cannot differ from it, and because the Go
333
- // twin's strings.Join must produce the same bytes.
334
323
  return this.place(new StringVal_1.StringVal({ peg: parts.join(sep) }));
335
324
  }
336
325
  }
337
326
  exports.JoinFuncVal = JoinFuncVal;
338
- // The three the registry names. Each is its operation and nothing else.
339
327
  class SumFuncVal extends AggFuncVal {
340
328
  constructor(spec, ctx) { super(spec, ctx, 'sum'); }
341
329
  }
@@ -348,6 +336,6 @@ class GreatestFuncVal extends AggFuncVal {
348
336
  constructor(spec, ctx) {
349
337
  super(spec, ctx, 'greatest');
350
338
  }
351
- } /* node:coverage ignore next 10 */
339
+ } /* node:coverage ignore next 11 */
352
340
  exports.GreatestFuncVal = GreatestFuncVal;
353
341
  //# sourceMappingURL=AggFuncVal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AggFuncVal.js","sourceRoot":"","sources":["../../src/val/AggFuncVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AggFuncVal.js","sourceRoot":"","sources":["../../src/val/AggFuncVal.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.RemFuncVal = exports.ModFuncVal = exports.DivFuncVal = exports.MulFuncVal = exports.SubFuncVal = exports.AddFuncVal = exports.ArithFuncVal = void 0;
5
5
  const FuncBaseVal_1 = require("./FuncBaseVal");
6
6
  const arith_1 = require("./arith");
7
- // ONE CLASS FOR SIX FUNCTIONS, because every rule they obey is a rule
8
- // about arithmetic rather than about any one operation (see arith.ts).
9
- // Six near-identical classes would be six places for the exact ladder,
10
- // the zero divisor and the storage contract to drift apart, and the
11
- // number tower's whole point is that they cannot.
12
- //
13
- // The op is carried on the instance and answered by `funcname()`, which
14
- // is what canon renders and what an error names. The six one-line
15
- // subclasses below exist only because the parser's registry constructs
16
- // with `new funcval({peg: args})` and has nowhere to put a name; every
17
- // line of behaviour is here.
18
7
  class ArithFuncVal extends FuncBaseVal_1.FuncBaseVal {
19
8
  constructor(spec, ctx, op) {
20
9
  super(spec, ctx);
@@ -34,7 +23,6 @@ class ArithFuncVal extends FuncBaseVal_1.FuncBaseVal {
34
23
  }
35
24
  }
36
25
  exports.ArithFuncVal = ArithFuncVal;
37
- // The six the registry names. Each is its operation and nothing else.
38
26
  class AddFuncVal extends ArithFuncVal {
39
27
  constructor(spec, ctx) { super(spec, ctx, 'add'); }
40
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArithFuncVal.js","sourceRoot":"","sources":["../../src/val/ArithFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAYpD,+CAA2C;AAC3C,mCAA+B;AAI/B,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,oEAAoE;AACpE,kDAAkD;AAClD,EAAE;AACF,wEAAwE;AACxE,kEAAkE;AAClE,uEAAuE;AACvE,uEAAuE;AACvE,6BAA6B;AAC7B,MAAM,YAAa,SAAQ,yBAAW;IAQpC,YACE,IAAa,EACb,GAA6B,EAC7B,EAAW;QAEX,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAZlB,gBAAW,GAAG,IAAI,CAAA;QAahB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAGD,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAK,IAAI,CAAC,WAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAA6B,EAAE,IAAW;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;CAWF;QA8BC,YAAY;AA3Bd,sEAAsE;AACtE,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAyBC,UAAU;AAvBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAsBC,UAAU;AApBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAmBC,UAAU;AAjBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAgBC,UAAU;AAdZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAaC,UAAU;AAXZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E,CAAC,kCAAkC;QAUlC,UAAU"}
1
+ {"version":3,"file":"ArithFuncVal.js","sourceRoot":"","sources":["../../src/val/ArithFuncVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAYpD,+CAA2C;AAC3C,mCAA+B;AAI/B,MAAM,YAAa,SAAQ,yBAAW;IAQpC,YACE,IAAa,EACb,GAA6B,EAC7B,EAAW;QAEX,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAZlB,gBAAW,GAAG,IAAI,CAAA;QAahB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAGD,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAK,IAAI,CAAC,WAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAA6B,EAAE,IAAW;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;CAGF;QA6BC,YAAY;AA1Bd,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAyBC,UAAU;AAvBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAsBC,UAAU;AApBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAmBC,UAAU;AAjBZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAgBC,UAAU;AAdZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E;QAaC,UAAU;AAXZ,MAAM,UAAW,SAAQ,YAAY;IACnC,YAAY,IAAa,EAAE,GAAkB,IAAI,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA,CAAC,CAAC;CAC3E,CAAC,kCAAkC;QAUlC,UAAU"}