aontu 0.56.0 → 0.58.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/agentsmd.js +1 -1
- package/dist/alias.d.ts +3 -0
- package/dist/alias.js +59 -0
- package/dist/alias.js.map +1 -0
- package/dist/aontu.d.ts +5 -2
- package/dist/aontu.js +11 -3
- package/dist/aontu.js.map +1 -1
- package/dist/cli.d.ts +8 -2
- package/dist/cli.js +564 -21
- package/dist/cli.js.map +1 -1
- package/dist/ctx.d.ts +2 -0
- package/dist/ctx.js +1 -0
- package/dist/ctx.js.map +1 -1
- package/dist/escape.d.ts +5 -0
- package/dist/escape.js +455 -0
- package/dist/escape.js.map +1 -0
- package/dist/format.d.ts +9 -0
- package/dist/format.js +550 -55
- package/dist/format.js.map +1 -1
- package/dist/hints.js +74 -9
- package/dist/hints.js.map +1 -1
- package/dist/lang.js +374 -58
- package/dist/lang.js.map +1 -1
- package/dist/lower.d.ts +20 -0
- package/dist/lower.js +575 -0
- package/dist/lower.js.map +1 -0
- package/dist/lsp.d.ts +1 -1
- package/dist/lsp.js +4 -4
- package/dist/lsp.js.map +1 -1
- package/dist/mcp-server.js +2 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp.d.ts +1 -0
- package/dist/mcp.js +40 -3
- package/dist/mcp.js.map +1 -1
- package/dist/mod-tool.js +8 -7
- package/dist/mod-tool.js.map +1 -1
- package/dist/mod.js +6 -6
- package/dist/mod.js.map +1 -1
- package/dist/render.d.ts +53 -0
- package/dist/render.js +542 -0
- package/dist/render.js.map +1 -0
- package/dist/sigdecl.js +1 -1
- package/dist/sigdecl.js.map +1 -1
- package/dist/std.d.ts +2 -0
- package/dist/std.js +498 -2
- package/dist/std.js.map +1 -1
- package/dist/template.d.ts +5 -0
- package/dist/template.js +257 -0
- package/dist/template.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/unify.js +43 -0
- package/dist/unify.js.map +1 -1
- package/dist/val/AggFuncVal.d.ts +1 -1
- package/dist/val/AggFuncVal.js +10 -21
- package/dist/val/AggFuncVal.js.map +1 -1
- package/dist/val/BagVal.js +1 -1
- package/dist/val/BagVal.js.map +1 -1
- package/dist/val/ConstraintVal.js +1 -1
- package/dist/val/EachFuncVal.d.ts +1 -1
- package/dist/val/EachFuncVal.js +9 -15
- package/dist/val/EachFuncVal.js.map +1 -1
- package/dist/val/EmitFuncVal.d.ts +42 -0
- package/dist/val/EmitFuncVal.js +531 -0
- package/dist/val/EmitFuncVal.js.map +1 -0
- package/dist/val/FilterFuncVal.js +9 -6
- package/dist/val/FilterFuncVal.js.map +1 -1
- package/dist/val/FormFuncVal.d.ts +14 -0
- package/dist/val/FormFuncVal.js +55 -0
- package/dist/val/FormFuncVal.js.map +1 -0
- package/dist/val/FuncBaseVal.d.ts +1 -0
- package/dist/val/FuncBaseVal.js +16 -0
- package/dist/val/FuncBaseVal.js.map +1 -1
- package/dist/val/MapVal.d.ts +2 -1
- package/dist/val/MapVal.js +2 -1
- package/dist/val/MapVal.js.map +1 -1
- package/dist/val/PackFuncVal.d.ts +1 -1
- package/dist/val/PackFuncVal.js +23 -20
- package/dist/val/PackFuncVal.js.map +1 -1
- package/dist/val/PlaceVal.d.ts +3 -1
- package/dist/val/PlaceVal.js +9 -6
- package/dist/val/PlaceVal.js.map +1 -1
- package/dist/val/RefVal.d.ts +3 -0
- package/dist/val/RefVal.js +156 -17
- package/dist/val/RefVal.js.map +1 -1
- package/dist/val/StrFuncVal.d.ts +32 -0
- package/dist/val/StrFuncVal.js +292 -0
- package/dist/val/StrFuncVal.js.map +1 -0
- package/dist/val/Val.d.ts +7 -1
- package/dist/val/Val.js +12 -1
- package/dist/val/Val.js.map +1 -1
- package/dist/val/members.d.ts +9 -0
- package/dist/val/members.js +52 -0
- package/dist/val/members.js.map +1 -0
- package/grammar/aontu.abnf +4 -3
- package/grammar/aontu.gbnf +4 -3
- package/grammar/aontu.lark +4 -3
- package/grammar/aontu.tmLanguage.json +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +4 -4
- package/skill/error-codes.md +1 -1
- package/skill/examples.md +1 -1
- package/skill/grammar-card.md +1 -1
- package/src/agentsmd.ts +1 -1
- package/src/alias.ts +112 -0
- package/src/aontu.ts +20 -2
- package/src/cli.ts +630 -23
- package/src/ctx.ts +13 -0
- package/src/escape.ts +371 -0
- package/src/format.ts +648 -56
- package/src/hints.ts +94 -9
- package/src/lang.ts +430 -63
- package/src/lower.ts +636 -0
- package/src/lsp.ts +4 -4
- package/src/mcp-server.ts +3 -2
- package/src/mcp.ts +43 -4
- package/src/mod-tool.ts +9 -8
- package/src/mod.ts +6 -6
- package/src/render.ts +727 -0
- package/src/sigdecl.ts +1 -1
- package/src/std.ts +506 -1
- package/src/template.ts +291 -0
- package/src/unify.ts +47 -0
- package/src/val/AggFuncVal.ts +10 -21
- package/src/val/BagVal.ts +1 -1
- package/src/val/ConstraintVal.ts +1 -1
- package/src/val/EachFuncVal.ts +9 -19
- package/src/val/EmitFuncVal.ts +738 -0
- package/src/val/FilterFuncVal.ts +12 -7
- package/src/val/FormFuncVal.ts +119 -0
- package/src/val/FuncBaseVal.ts +18 -0
- package/src/val/MapVal.ts +3 -2
- package/src/val/PackFuncVal.ts +24 -22
- package/src/val/PlaceVal.ts +9 -6
- package/src/val/RefVal.ts +167 -18
- package/src/val/StrFuncVal.ts +334 -0
- package/src/val/Val.ts +42 -1
- package/src/val/members.ts +86 -0
package/dist/val/RefVal.js
CHANGED
|
@@ -44,6 +44,25 @@ function pendingMarkWrapper(v) {
|
|
|
44
44
|
}
|
|
45
45
|
return false;
|
|
46
46
|
}
|
|
47
|
+
// The child a term of the walk can supply for one path segment, or
|
|
48
|
+
// undefined when it has none. A map or a list answers from its own
|
|
49
|
+
// members; a PENDING type()/hide() answers from its argument's, because
|
|
50
|
+
// the wrapper only marks and its argument is the structure the path
|
|
51
|
+
// names (see the call sites in `find`).
|
|
52
|
+
function markedChild(v, part) {
|
|
53
|
+
if (true === v?.isMap || true === v?.isList) {
|
|
54
|
+
return v.peg[part];
|
|
55
|
+
}
|
|
56
|
+
if (true === v?.isFunc
|
|
57
|
+
&& (true === v.isHideFunc || true === v.isTypeFunc)
|
|
58
|
+
&& (true === v.peg?.[0]?.isMap || true === v.peg?.[0]?.isList)) {
|
|
59
|
+
return v.peg[0].peg[part];
|
|
60
|
+
}
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
// An alias name, whole: the sigil and an identifier (the lexer's
|
|
64
|
+
// ALIAS_RE, anchored at both ends, for the canon spelling above).
|
|
65
|
+
const ALIAS_NAME_RE = /^%[A-Za-z_][A-Za-z0-9_]*$/;
|
|
47
66
|
class RefVal extends FeatureVal_1.FeatureVal {
|
|
48
67
|
constructor(spec, ctx) {
|
|
49
68
|
super(spec, ctx);
|
|
@@ -51,6 +70,10 @@ class RefVal extends FeatureVal_1.FeatureVal {
|
|
|
51
70
|
this.isGenable = true;
|
|
52
71
|
this.cjo = 32500;
|
|
53
72
|
this.absolute = false;
|
|
73
|
+
// The value an alias reference canons as, attached by expandAliases
|
|
74
|
+
// after unification (see `canon` below). Not a ValSpec field: it is
|
|
75
|
+
// a rendering of the settled tree, never a parse-time property.
|
|
76
|
+
this.expansion = undefined;
|
|
54
77
|
this.prefix = false;
|
|
55
78
|
this.peg = [];
|
|
56
79
|
// The field initialiser (absolute = false) has just run, so only
|
|
@@ -156,7 +179,8 @@ class RefVal extends FeatureVal_1.FeatureVal {
|
|
|
156
179
|
out = (0, err_1.makeNilErr)(ctx, 'ref[' + this.peg + ']', this, peer);
|
|
157
180
|
}
|
|
158
181
|
// same path
|
|
159
|
-
else if (this.
|
|
182
|
+
else if (this.spelling ===
|
|
183
|
+
(true === peer.isRef ? peer.spelling : peer.canon)) {
|
|
160
184
|
out = this;
|
|
161
185
|
}
|
|
162
186
|
else {
|
|
@@ -326,6 +350,44 @@ class RefVal extends FeatureVal_1.FeatureVal {
|
|
|
326
350
|
|| true === node.peg?.[0]?.isList)) {
|
|
327
351
|
node = node.peg[0].peg[part];
|
|
328
352
|
}
|
|
353
|
+
// AND SO IS A CONJUNCT THAT STILL CARRIES ONE (issue #164).
|
|
354
|
+
// Two statements for one key meet, so a key written as
|
|
355
|
+
// `T: type({...})` twice is a CONJUNCT of two wrappers -- and
|
|
356
|
+
// one written once beside a plain `T: {...}` is a conjunct
|
|
357
|
+
// too. The arm above sees a wrapper only when it is the whole
|
|
358
|
+
// node, so a reference into such a key walked into the
|
|
359
|
+
// conjunct and stopped: the wrapper waited for its argument,
|
|
360
|
+
// the argument waited for the reference, and neither moved.
|
|
361
|
+
// The first referring child of every consumer stayed
|
|
362
|
+
// unresolved and generation reported mapval_no_gen at a path
|
|
363
|
+
// that names none of this, which is how a five-file schema
|
|
364
|
+
// spent its evening being bisected.
|
|
365
|
+
//
|
|
366
|
+
// The answer at a segment is the MEET of what each term
|
|
367
|
+
// supplies, so terms that have no such member are skipped and
|
|
368
|
+
// the rest are conjoined -- one term answers as itself, and
|
|
369
|
+
// the ordinary map arm answers once the fold has happened.
|
|
370
|
+
// Restricted to a conjunct that still holds a pending
|
|
371
|
+
// wrapper: every other conjunct folds on its own, and this
|
|
372
|
+
// walk exists only to break the wrapper's deadlock.
|
|
373
|
+
else if (true === node.isConjunct
|
|
374
|
+
&& Array.isArray(node.peg)
|
|
375
|
+
&& pendingMarkWrapper(node)) {
|
|
376
|
+
const kids = [];
|
|
377
|
+
for (const term of node.peg) {
|
|
378
|
+
const kid = markedChild(term, part);
|
|
379
|
+
if (undefined !== kid && null !== kid) {
|
|
380
|
+
kids.push(kid);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
// No term has it YET. Not a miss: the conjunct is still
|
|
384
|
+
// folding, and the member may arrive with the fold.
|
|
385
|
+
if (0 === kids.length) {
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
388
|
+
node = 1 === kids.length ?
|
|
389
|
+
kids[0] : new ConjunctVal_1.ConjunctVal({ peg: kids }, ctx);
|
|
390
|
+
}
|
|
329
391
|
else if (node.done) {
|
|
330
392
|
nopath = true;
|
|
331
393
|
break;
|
|
@@ -379,6 +441,31 @@ class RefVal extends FeatureVal_1.FeatureVal {
|
|
|
379
441
|
}
|
|
380
442
|
else if (pI === refpath.length) {
|
|
381
443
|
out = node;
|
|
444
|
+
// THE READ IS RECORDED, AND THE VALUE STAMPED WITH WHERE IT
|
|
445
|
+
// WAS FOUND (RENDER.0.md P7). A resolved reference clones its
|
|
446
|
+
// target into the referring position, so without the stamp a
|
|
447
|
+
// value that arrived by reference knows only where it came to
|
|
448
|
+
// rest -- and `render --coverage` has nothing to measure the
|
|
449
|
+
// model against. Off unless the run is instrumented; the first
|
|
450
|
+
// address wins, and every reference to one node names the same
|
|
451
|
+
// address anyway.
|
|
452
|
+
if (undefined !== ctx.reads && null != node) {
|
|
453
|
+
// The root's own address is `$`, as the coverage walk spells
|
|
454
|
+
// it: a dot with nothing after it would match no path there.
|
|
455
|
+
const addr = '$' + refpath.map((seg) => '.' + seg).join('');
|
|
456
|
+
// AN ALIAS IS NOT A PATH. `%wire` names a value the document
|
|
457
|
+
// holds unevaluated and the tree never carries, so it is an
|
|
458
|
+
// address a rule can be reported AT and never a path coverage
|
|
459
|
+
// could call dead: it is stamped, and it is not in the set
|
|
460
|
+
// the model is measured against.
|
|
461
|
+
if (!refpath[0]?.startsWith('%')) {
|
|
462
|
+
ctx.reads.add(addr);
|
|
463
|
+
}
|
|
464
|
+
if (null == node.origin) {
|
|
465
|
+
;
|
|
466
|
+
node.origin = addr;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
382
469
|
// A reference landing on another reference -- or on a FUNCTION,
|
|
383
470
|
// whose arguments the chase now follows (issue #35) -- may be a
|
|
384
471
|
// PROVEN mutual cycle (a: $.b, b: $.a; a: $.b, b: upper($.a)).
|
|
@@ -453,20 +540,36 @@ class RefVal extends FeatureVal_1.FeatureVal {
|
|
|
453
540
|
out.mark.hide = true;
|
|
454
541
|
}
|
|
455
542
|
// console.log('FOUND-B', out)
|
|
543
|
+
// A REFERENCE LIFTS: the copy is concrete, its type and hide
|
|
544
|
+
// marks cleared to the leaves -- a marked target is what the
|
|
545
|
+
// author hid or typed, and a reference to it is the author
|
|
546
|
+
// asking for it in the open. EXCEPT the snapshot a staged
|
|
547
|
+
// verb takes of its data (`argsnap`: each, emit, filter,
|
|
548
|
+
// pack, pick, join, the aggregates), when the target itself
|
|
549
|
+
// is not marked: a member marked inside an unmarked bag was
|
|
550
|
+
// hidden IN ITS OWN RIGHT, and the verb's enumeration
|
|
551
|
+
// (ts/src/val/members.ts, BUGS.md §79) needs to see that
|
|
552
|
+
// mark to leave the member out, as generation does. A marked
|
|
553
|
+
// target lifts even there, or `each($.schema.entities, _)`
|
|
554
|
+
// under `schema: hide({...})` would see every entity as
|
|
555
|
+
// hidden, since hide() marks to the leaves.
|
|
556
|
+
const lifted = true !== ctx.argsnap
|
|
557
|
+
|| true === out.mark.type || true === out.mark.hide;
|
|
456
558
|
out = out.clone(ctx);
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
559
|
+
if (lifted) {
|
|
560
|
+
(0, utility_1.walk)(out, (_key, val) => {
|
|
561
|
+
val.mark.type = false;
|
|
562
|
+
val.mark.hide = false;
|
|
563
|
+
// THE LINK IS NOT CLEARED (G4 phase 3): a link says what
|
|
564
|
+
// a value POINTS AT, and a copy of a link points at the
|
|
565
|
+
// same thing. An ABSOLUTE address still names the same
|
|
566
|
+
// node from the copy; a RELATIVE one is read from the
|
|
567
|
+
// copy's own position, which is what makes a referenced
|
|
568
|
+
// model resolve its internal links inside the copy
|
|
569
|
+
// (ADR-014).
|
|
570
|
+
return val;
|
|
571
|
+
});
|
|
572
|
+
}
|
|
470
573
|
// onsole.log('FOUND-C', out)
|
|
471
574
|
}
|
|
472
575
|
}
|
|
@@ -587,16 +690,52 @@ class RefVal extends FeatureVal_1.FeatureVal {
|
|
|
587
690
|
absolute: this.absolute,
|
|
588
691
|
...(spec || {})
|
|
589
692
|
});
|
|
693
|
+
out.expansion = this.expansion;
|
|
590
694
|
return out;
|
|
591
695
|
}
|
|
592
|
-
|
|
593
|
-
|
|
696
|
+
// THE NAME OF THE ALIAS THIS REFERENCE NAMES, or undefined for a
|
|
697
|
+
// path reference. `%u` is spelled internally as the root reference
|
|
698
|
+
// `$.%u` (docs/design/ALIASES.0.md: the name is a path into the
|
|
699
|
+
// declaration), so an alias reference is an absolute reference of
|
|
700
|
+
// one segment that is an alias name.
|
|
701
|
+
get aliasName() {
|
|
702
|
+
return this.absolute && 1 === this.peg.length &&
|
|
703
|
+
'string' === typeof this.peg[0] && ALIAS_NAME_RE.test(this.peg[0]) ?
|
|
704
|
+
this.peg[0] : undefined;
|
|
705
|
+
}
|
|
706
|
+
// THE REFERENCE'S OWN SPELLING: the alias name, or the path. This is
|
|
707
|
+
// the reference's identity (the snapshot key of a ref spread, the
|
|
708
|
+
// same-path test in unify), which `canon` below is not once an
|
|
709
|
+
// expansion is attached.
|
|
710
|
+
get spelling() {
|
|
711
|
+
const name = this.aliasName;
|
|
712
|
+
if (undefined !== name) {
|
|
713
|
+
return name;
|
|
714
|
+
}
|
|
715
|
+
return (this.absolute ? '$' : '') +
|
|
594
716
|
(0 < this.peg.length ? '.' : '') +
|
|
595
717
|
// this.peg.join(this.sep)
|
|
596
718
|
this.peg.map((p) => '.' === p ? '' :
|
|
597
719
|
(p.isVal ? p.canon : '' + p))
|
|
598
720
|
.join('.');
|
|
599
|
-
|
|
721
|
+
}
|
|
722
|
+
get canon() {
|
|
723
|
+
// AN ALIAS REFERENCE CANONS AS THE VALUE IT NAMES. A reference left
|
|
724
|
+
// standing after unification is one inside a spread template
|
|
725
|
+
// (`[&: %u]`, `{&: {a: %u}}`): the template applies to children
|
|
726
|
+
// that have not arrived, so it is not resolved in place. Canon
|
|
727
|
+
// erases the declaration (an alias is a name for a value, and
|
|
728
|
+
// nothing more -- ALIASES.0.md §4), so the name alone would not
|
|
729
|
+
// reparse, and the hash of `t: {&: %u}` would differ from the hash
|
|
730
|
+
// of `t: {&: integer}`, which is the same document. The expansion
|
|
731
|
+
// is attached by expandAliases (ts/src/alias.ts) once the tree has
|
|
732
|
+
// settled; without one -- a parse-only tree, an unresolved name, or
|
|
733
|
+
// the KNOT of a recursive alias inside its own template -- the
|
|
734
|
+
// reference spells its name. Twin of RefVal.Canon in go/ref.go.
|
|
735
|
+
if (undefined !== this.expansion) {
|
|
736
|
+
return this.expansion.canon;
|
|
737
|
+
}
|
|
738
|
+
return this.spelling;
|
|
600
739
|
}
|
|
601
740
|
gen(ctx) {
|
|
602
741
|
// Unresolved ref cannot be generated, so always an error.
|
package/dist/val/RefVal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../src/val/RefVal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../src/val/RefVal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Val, ValSpec } from '../type';
|
|
2
|
+
import { AontuContext } from '../ctx';
|
|
3
|
+
import { FuncBaseVal } from './FuncBaseVal';
|
|
4
|
+
declare class EscFuncVal extends FuncBaseVal {
|
|
5
|
+
isEscFunc: boolean;
|
|
6
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
7
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
8
|
+
funcname(): string;
|
|
9
|
+
resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
|
|
10
|
+
}
|
|
11
|
+
declare class UscFuncVal extends FuncBaseVal {
|
|
12
|
+
isUscFunc: boolean;
|
|
13
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
14
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
15
|
+
funcname(): string;
|
|
16
|
+
resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
|
|
17
|
+
}
|
|
18
|
+
declare class RepFuncVal extends FuncBaseVal {
|
|
19
|
+
isRepFunc: boolean;
|
|
20
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
21
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
22
|
+
funcname(): string;
|
|
23
|
+
resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
|
|
24
|
+
}
|
|
25
|
+
declare class SplitFuncVal extends FuncBaseVal {
|
|
26
|
+
isSplitFunc: boolean;
|
|
27
|
+
constructor(spec: ValSpec, ctx?: AontuContext);
|
|
28
|
+
make(_ctx: AontuContext, spec: ValSpec): Val;
|
|
29
|
+
funcname(): string;
|
|
30
|
+
resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
|
|
31
|
+
}
|
|
32
|
+
export { EscFuncVal, UscFuncVal, RepFuncVal, SplitFuncVal, };
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2025 Richard Rodger, MIT License */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SplitFuncVal = exports.RepFuncVal = exports.UscFuncVal = exports.EscFuncVal = void 0;
|
|
5
|
+
const err_1 = require("../err");
|
|
6
|
+
const escape_1 = require("../escape");
|
|
7
|
+
const StringVal_1 = require("./StringVal");
|
|
8
|
+
const ListVal_1 = require("./ListVal");
|
|
9
|
+
const FuncBaseVal_1 = require("./FuncBaseVal");
|
|
10
|
+
const ConstraintVal_1 = require("./ConstraintVal");
|
|
11
|
+
// The string a value carries, or undefined when it is not a string.
|
|
12
|
+
// Mirrors `stringLeaf` in ConstraintVal: a path is a string too, so a
|
|
13
|
+
// spelled address may be escaped and split like any other text.
|
|
14
|
+
function textOf(v) {
|
|
15
|
+
const s = v;
|
|
16
|
+
return true === s?.isScalar && 'string' === typeof s.peg ? s.peg : undefined;
|
|
17
|
+
}
|
|
18
|
+
// The variant an optional second argument names: '' for the absent
|
|
19
|
+
// argument (the C/JSON convention), or undefined when it is not a
|
|
20
|
+
// variant name.
|
|
21
|
+
function variantOf(v) {
|
|
22
|
+
if (null == v) {
|
|
23
|
+
return '';
|
|
24
|
+
}
|
|
25
|
+
const s = textOf(v);
|
|
26
|
+
return undefined !== s && (0, escape_1.isEscVariant)(s) ? s : undefined;
|
|
27
|
+
}
|
|
28
|
+
// The number of CAPTURING groups in a normalised pattern. Counted by
|
|
29
|
+
// scanning rather than by asking either host, because the count decides
|
|
30
|
+
// whether a substitution is refused and the two ports must refuse the
|
|
31
|
+
// same ones. The subset admits no named groups, so a capturing group is
|
|
32
|
+
// exactly `(` that is not `(?`.
|
|
33
|
+
function reGroupCount(norm) {
|
|
34
|
+
let count = 0;
|
|
35
|
+
let inClass = false;
|
|
36
|
+
for (let i = 0; i < norm.length; i++) {
|
|
37
|
+
const c = norm[i];
|
|
38
|
+
if ('\\' === c) {
|
|
39
|
+
i++;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (inClass) {
|
|
43
|
+
if (']' === c) {
|
|
44
|
+
inClass = false;
|
|
45
|
+
}
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if ('[' === c) {
|
|
49
|
+
inClass = true;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
if ('(' === c && '?' !== norm[i + 1]) {
|
|
53
|
+
count++;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return count;
|
|
57
|
+
}
|
|
58
|
+
// One code point at `at`, as a count of UTF-16 units: the "advance by
|
|
59
|
+
// one rune" Go's matching loop performs after an empty match.
|
|
60
|
+
function stepAt(src, at) {
|
|
61
|
+
const c = src.codePointAt(at);
|
|
62
|
+
return undefined === c ? 1 : (0xFFFF < c ? 2 : 1);
|
|
63
|
+
}
|
|
64
|
+
// Every match of `re` in `src`, as [start, end, ...group pairs], under
|
|
65
|
+
// Go's rule: scanning resumes at the end of each match, and an empty
|
|
66
|
+
// match ADJACENT to the previous match's end is skipped rather than
|
|
67
|
+
// delivered. Written out because JavaScript has no equivalent and the
|
|
68
|
+
// difference is visible in `rep("aa", "a*", "-")`.
|
|
69
|
+
function allMatches(src, re) {
|
|
70
|
+
const out = [];
|
|
71
|
+
// Its own scanner, so `lastIndex` is this walk's to move: the caller's
|
|
72
|
+
// regexp is shared with whatever else holds it.
|
|
73
|
+
const scan = new RegExp(re.source, re.flags);
|
|
74
|
+
let pos = 0;
|
|
75
|
+
let prevEnd = -1;
|
|
76
|
+
while (pos <= src.length) {
|
|
77
|
+
scan.lastIndex = pos;
|
|
78
|
+
const m = scan.exec(src);
|
|
79
|
+
if (null === m) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
const start = m.index;
|
|
83
|
+
const end = start + m[0].length;
|
|
84
|
+
let accept = true;
|
|
85
|
+
if (end === pos) {
|
|
86
|
+
if (start === prevEnd) {
|
|
87
|
+
accept = false;
|
|
88
|
+
}
|
|
89
|
+
pos += stepAt(src, pos);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
pos = end;
|
|
93
|
+
}
|
|
94
|
+
prevEnd = end;
|
|
95
|
+
if (accept) {
|
|
96
|
+
out.push(m);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
// A substitution template expanded against one match. `$1`..`$9` are
|
|
102
|
+
// the numbered groups, `$&` the whole match and `$$` a literal `$`;
|
|
103
|
+
// anything else after a `$` names nothing, and naming nothing is a
|
|
104
|
+
// REFUSAL rather than a silent literal. A group the pattern does not
|
|
105
|
+
// have is the same refusal -- a generator that expands it to the empty
|
|
106
|
+
// string writes a file with a hole in it and says nothing.
|
|
107
|
+
function expandSub(sub, m, groups) {
|
|
108
|
+
let out = '';
|
|
109
|
+
for (let i = 0; i < sub.length; i++) {
|
|
110
|
+
if ('$' !== sub[i]) {
|
|
111
|
+
out += sub[i];
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
const n = sub[i + 1];
|
|
115
|
+
if ('$' === n) {
|
|
116
|
+
out += '$';
|
|
117
|
+
i++;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
if ('&' === n) {
|
|
121
|
+
out += m[0];
|
|
122
|
+
i++;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (undefined === n || '1' > n || '9' < n) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
const g = n.charCodeAt(0) - 0x30;
|
|
129
|
+
if (groups < g) {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
out += m[g] ?? '';
|
|
133
|
+
i++;
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
// The fields `re` cuts `src` into, under Go's Split: an empty match at
|
|
138
|
+
// the very start opens no field, and a match ending at the end of the
|
|
139
|
+
// input closes none.
|
|
140
|
+
function splitRe(src, re) {
|
|
141
|
+
const out = [];
|
|
142
|
+
let beg = 0;
|
|
143
|
+
let end = 0;
|
|
144
|
+
for (const m of allMatches(src, re)) {
|
|
145
|
+
end = m.index;
|
|
146
|
+
if (0 !== m.index + m[0].length) {
|
|
147
|
+
out.push(src.slice(beg, end));
|
|
148
|
+
}
|
|
149
|
+
beg = m.index + m[0].length;
|
|
150
|
+
}
|
|
151
|
+
if (end !== src.length) {
|
|
152
|
+
out.push(src.slice(beg));
|
|
153
|
+
}
|
|
154
|
+
return out;
|
|
155
|
+
}
|
|
156
|
+
// An EMPTY separator yields the CODE POINTS, not the UTF-16 units a
|
|
157
|
+
// host split would give: `split("é", "")` is one field in both ports.
|
|
158
|
+
function splitLiteral(src, sep) {
|
|
159
|
+
if ('' === sep) {
|
|
160
|
+
return [...src];
|
|
161
|
+
}
|
|
162
|
+
return src.split(sep);
|
|
163
|
+
}
|
|
164
|
+
// The compiled form of a pattern argument, or the code naming what is
|
|
165
|
+
// wrong with it.
|
|
166
|
+
function compileRe(src) {
|
|
167
|
+
const [norm, why] = (0, ConstraintVal_1.normaliseRe)(src);
|
|
168
|
+
if ('' !== why) {
|
|
169
|
+
return 'rep_pattern';
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
// The `u` flag is REQUIRED for parity, exactly as it is for `re()`:
|
|
173
|
+
// without it JavaScript counts UTF-16 units where Go counts code
|
|
174
|
+
// points.
|
|
175
|
+
return new RegExp(norm, 'gu');
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
return 'rep_pattern';
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
class EscFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
182
|
+
constructor(spec, ctx) {
|
|
183
|
+
super(spec, ctx);
|
|
184
|
+
this.isEscFunc = true;
|
|
185
|
+
}
|
|
186
|
+
make(_ctx, spec) { return new EscFuncVal(spec); }
|
|
187
|
+
funcname() { return 'esc'; }
|
|
188
|
+
resolve(ctx, args) {
|
|
189
|
+
const src = textOf(args?.[0]);
|
|
190
|
+
if (undefined === src) {
|
|
191
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
|
|
192
|
+
}
|
|
193
|
+
const variant = variantOf(args?.[1]);
|
|
194
|
+
if (undefined === variant) {
|
|
195
|
+
return (0, err_1.makeNilErr)(ctx, 'esc_variant', this);
|
|
196
|
+
}
|
|
197
|
+
return this.place(new StringVal_1.StringVal({ peg: (0, escape_1.escapeText)(src, variant) }, ctx));
|
|
198
|
+
}
|
|
199
|
+
} /* node:coverage ignore next 2 */
|
|
200
|
+
exports.EscFuncVal = EscFuncVal;
|
|
201
|
+
class UscFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
202
|
+
constructor(spec, ctx) {
|
|
203
|
+
super(spec, ctx);
|
|
204
|
+
this.isUscFunc = true;
|
|
205
|
+
}
|
|
206
|
+
make(_ctx, spec) { return new UscFuncVal(spec); }
|
|
207
|
+
funcname() { return 'usc'; }
|
|
208
|
+
resolve(ctx, args) {
|
|
209
|
+
const src = textOf(args?.[0]);
|
|
210
|
+
if (undefined === src) {
|
|
211
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
|
|
212
|
+
}
|
|
213
|
+
const variant = variantOf(args?.[1]);
|
|
214
|
+
if (undefined === variant) {
|
|
215
|
+
return (0, err_1.makeNilErr)(ctx, 'esc_variant', this);
|
|
216
|
+
}
|
|
217
|
+
const [out, ok] = (0, escape_1.unescapeText)(src, variant);
|
|
218
|
+
if (!ok) {
|
|
219
|
+
return (0, err_1.makeNilErr)(ctx, 'usc_malformed', this);
|
|
220
|
+
}
|
|
221
|
+
return this.place(new StringVal_1.StringVal({ peg: out }, ctx));
|
|
222
|
+
}
|
|
223
|
+
} /* node:coverage ignore next 2 */
|
|
224
|
+
exports.UscFuncVal = UscFuncVal;
|
|
225
|
+
class RepFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
226
|
+
constructor(spec, ctx) {
|
|
227
|
+
super(spec, ctx);
|
|
228
|
+
this.isRepFunc = true;
|
|
229
|
+
}
|
|
230
|
+
make(_ctx, spec) { return new RepFuncVal(spec); }
|
|
231
|
+
funcname() { return 'rep'; }
|
|
232
|
+
resolve(ctx, args) {
|
|
233
|
+
const src = textOf(args?.[0]);
|
|
234
|
+
const pat = textOf(args?.[1]);
|
|
235
|
+
const sub = textOf(args?.[2]);
|
|
236
|
+
if (undefined === src || undefined === pat || undefined === sub) {
|
|
237
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
|
|
238
|
+
}
|
|
239
|
+
const re = compileRe(pat);
|
|
240
|
+
if ('string' === typeof re) {
|
|
241
|
+
return (0, err_1.makeNilErr)(ctx, re, this);
|
|
242
|
+
}
|
|
243
|
+
const groups = reGroupCount(re.source);
|
|
244
|
+
let out = '';
|
|
245
|
+
let at = 0;
|
|
246
|
+
for (const m of allMatches(src, re)) {
|
|
247
|
+
const piece = expandSub(sub, m, groups);
|
|
248
|
+
if (undefined === piece) {
|
|
249
|
+
return (0, err_1.makeNilErr)(ctx, 'rep_sub', this);
|
|
250
|
+
}
|
|
251
|
+
out += src.slice(at, m.index) + piece;
|
|
252
|
+
at = m.index + m[0].length;
|
|
253
|
+
}
|
|
254
|
+
out += src.slice(at);
|
|
255
|
+
return this.place(new StringVal_1.StringVal({ peg: out }, ctx));
|
|
256
|
+
}
|
|
257
|
+
} /* node:coverage ignore next 2 */
|
|
258
|
+
exports.RepFuncVal = RepFuncVal;
|
|
259
|
+
class SplitFuncVal extends FuncBaseVal_1.FuncBaseVal {
|
|
260
|
+
constructor(spec, ctx) {
|
|
261
|
+
super(spec, ctx);
|
|
262
|
+
this.isSplitFunc = true;
|
|
263
|
+
}
|
|
264
|
+
make(_ctx, spec) { return new SplitFuncVal(spec); }
|
|
265
|
+
funcname() { return 'split'; }
|
|
266
|
+
resolve(ctx, args) {
|
|
267
|
+
const src = textOf(args?.[0]);
|
|
268
|
+
if (undefined === src) {
|
|
269
|
+
return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
|
|
270
|
+
}
|
|
271
|
+
// A PLAIN STRING IS A LITERAL and an `re(…)` is a pattern. The
|
|
272
|
+
// asymmetry with `rep` is deliberate: splitting is usually on a
|
|
273
|
+
// literal, replacing is usually by pattern, and it removes the trap
|
|
274
|
+
// where `split(v, ".")` silently cuts between every character.
|
|
275
|
+
const sep = args?.[1];
|
|
276
|
+
const lit = textOf(sep);
|
|
277
|
+
let fields;
|
|
278
|
+
if (undefined !== lit) {
|
|
279
|
+
fields = splitLiteral(src, lit);
|
|
280
|
+
}
|
|
281
|
+
else if (true === sep?.isConstraint && 1 === sep.res?.length) {
|
|
282
|
+
fields = splitRe(src, new RegExp(sep.res[0].re.source, 'gu'));
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
return (0, err_1.makeNilErr)(ctx, 'split_sep', this);
|
|
286
|
+
}
|
|
287
|
+
const peg = fields.map((f, i) => new StringVal_1.StringVal({ peg: f }, ctx.descend(String(i))));
|
|
288
|
+
return this.place(new ListVal_1.ListVal({ peg }, ctx));
|
|
289
|
+
}
|
|
290
|
+
} /* node:coverage ignore next 8 */
|
|
291
|
+
exports.SplitFuncVal = SplitFuncVal;
|
|
292
|
+
//# sourceMappingURL=StrFuncVal.js.map
|