sh-ast 0.6.1 → 0.8.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 (48) hide show
  1. package/README.md +147 -15
  2. package/dist/analyze/enumerate-commands.d.ts +5 -1
  3. package/dist/analyze/enumerate-commands.d.ts.map +1 -1
  4. package/dist/analyze/enumerate-commands.js.map +1 -1
  5. package/dist/analyze/index.d.ts +10 -2
  6. package/dist/analyze/index.d.ts.map +1 -1
  7. package/dist/analyze/index.js +11 -1
  8. package/dist/analyze/index.js.map +1 -1
  9. package/dist/analyze/resolve-argv0.d.ts +225 -16
  10. package/dist/analyze/resolve-argv0.d.ts.map +1 -1
  11. package/dist/analyze/resolve-argv0.js +372 -11
  12. package/dist/analyze/resolve-argv0.js.map +1 -1
  13. package/dist/analyze.d.ts +380 -157
  14. package/dist/errors.d.ts +14 -27
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +15 -28
  17. package/dist/errors.js.map +1 -1
  18. package/dist/sh-ast.d.ts +28 -32
  19. package/dist/syntax-operator.d.ts +9 -0
  20. package/dist/syntax-operator.d.ts.map +1 -0
  21. package/dist/syntax-operator.js +22 -0
  22. package/dist/syntax-operator.js.map +1 -0
  23. package/dist/syntax-print.d.ts +3 -1
  24. package/dist/syntax-print.d.ts.map +1 -1
  25. package/dist/syntax-print.js +3 -1
  26. package/dist/syntax-print.js.map +1 -1
  27. package/dist/syntax-snapshot.d.ts +4 -1
  28. package/dist/syntax-snapshot.d.ts.map +1 -1
  29. package/dist/syntax-snapshot.js +18 -3
  30. package/dist/syntax-snapshot.js.map +1 -1
  31. package/dist/syntax-wire.d.ts +12 -0
  32. package/dist/syntax-wire.d.ts.map +1 -1
  33. package/dist/syntax-wire.js +99 -15
  34. package/dist/syntax-wire.js.map +1 -1
  35. package/dist/syntax.d.ts +12 -10
  36. package/dist/syntax.d.ts.map +1 -1
  37. package/dist/syntax.js +46 -33
  38. package/dist/syntax.js.map +1 -1
  39. package/dist/wasm-instance.d.ts +8 -0
  40. package/dist/wasm-instance.d.ts.map +1 -1
  41. package/dist/wasm-instance.js +36 -8
  42. package/dist/wasm-instance.js.map +1 -1
  43. package/package.json +1 -1
  44. package/shim/sh-ast.wasm +0 -0
  45. package/dist/parse-depth-guard.d.ts +0 -11
  46. package/dist/parse-depth-guard.d.ts.map +0 -1
  47. package/dist/parse-depth-guard.js +0 -633
  48. package/dist/parse-depth-guard.js.map +0 -1
package/dist/analyze.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * @public
7
7
  */
8
- declare const Add: 81;
8
+ export declare const Add: 81;
9
9
 
10
10
  /**
11
11
  * Upstream BinAritOperator constant AddAssgn. Its numeric value is preserved exactly.
@@ -14,7 +14,7 @@ declare const Add: 81;
14
14
  *
15
15
  * @public
16
16
  */
17
- declare const AddAssgn: 49;
17
+ export declare const AddAssgn: 49;
18
18
 
19
19
  /**
20
20
  * Upstream ParExpOperator constant AlternateUnset. Its numeric value is preserved exactly.
@@ -23,7 +23,7 @@ declare const AddAssgn: 49;
23
23
  *
24
24
  * @public
25
25
  */
26
- declare const AlternateUnset: 81;
26
+ export declare const AlternateUnset: 81;
27
27
 
28
28
  /**
29
29
  * Upstream ParExpOperator constant AlternateUnsetOrNull. Its numeric value is preserved exactly.
@@ -32,7 +32,7 @@ declare const AlternateUnset: 81;
32
32
  *
33
33
  * @public
34
34
  */
35
- declare const AlternateUnsetOrNull: 82;
35
+ export declare const AlternateUnsetOrNull: 82;
36
36
 
37
37
  /**
38
38
  * Upstream BinAritOperator constant And. Its numeric value is preserved exactly.
@@ -41,7 +41,7 @@ declare const AlternateUnsetOrNull: 82;
41
41
  *
42
42
  * @public
43
43
  */
44
- declare const And: 10;
44
+ export declare const And: 10;
45
45
 
46
46
  /**
47
47
  * Upstream BinAritOperator constant AndArit. Its numeric value is preserved exactly.
@@ -50,7 +50,7 @@ declare const And: 10;
50
50
  *
51
51
  * @public
52
52
  */
53
- declare const AndArit: 11;
53
+ export declare const AndArit: 11;
54
54
 
55
55
  /**
56
56
  * Upstream BinAritOperator constant AndAssgn. Its numeric value is preserved exactly.
@@ -59,7 +59,7 @@ declare const AndArit: 11;
59
59
  *
60
60
  * @public
61
61
  */
62
- declare const AndAssgn: 54;
62
+ export declare const AndAssgn: 54;
63
63
 
64
64
  /**
65
65
  * Upstream BinAritOperator constant AndBoolAssgn. Its numeric value is preserved exactly.
@@ -68,7 +68,7 @@ declare const AndAssgn: 54;
68
68
  *
69
69
  * @public
70
70
  */
71
- declare const AndBoolAssgn: 59;
71
+ export declare const AndBoolAssgn: 59;
72
72
 
73
73
  /**
74
74
  * Upstream BinCmdOperator constant AndStmt. Its numeric value is preserved exactly.
@@ -77,7 +77,7 @@ declare const AndBoolAssgn: 59;
77
77
  *
78
78
  * @public
79
79
  */
80
- declare const AndStmt: 11;
80
+ export declare const AndStmt: 11;
81
81
 
82
82
  /**
83
83
  * Upstream BinTestOperator constant AndTest. Its numeric value is preserved exactly.
@@ -86,7 +86,7 @@ declare const AndStmt: 11;
86
86
  *
87
87
  * @public
88
88
  */
89
- declare const AndTest: 11;
89
+ export declare const AndTest: 11;
90
90
 
91
91
  /**
92
92
  * Upstream RedirOperator constant AppAll. Its numeric value is preserved exactly.
@@ -95,7 +95,7 @@ declare const AndTest: 11;
95
95
  *
96
96
  * @public
97
97
  */
98
- declare const AppAll: 76;
98
+ export declare const AppAll: 76;
99
99
 
100
100
  /**
101
101
  * Upstream RedirOperator constant AppAllClob. Its numeric value is preserved exactly.
@@ -104,7 +104,7 @@ declare const AppAll: 76;
104
104
  *
105
105
  * @public
106
106
  */
107
- declare const AppAllClob: 77;
107
+ export declare const AppAllClob: 77;
108
108
 
109
109
  /**
110
110
  * Upstream RedirOperator constant AppClob. Its numeric value is preserved exactly.
@@ -113,7 +113,7 @@ declare const AppAllClob: 77;
113
113
  *
114
114
  * @public
115
115
  */
116
- declare const AppClob: 70;
116
+ export declare const AppClob: 70;
117
117
 
118
118
  /**
119
119
  * Upstream RedirOperator constant AppOut. Its numeric value is preserved exactly.
@@ -122,7 +122,7 @@ declare const AppClob: 70;
122
122
  *
123
123
  * @public
124
124
  */
125
- declare const AppOut: 64;
125
+ export declare const AppOut: 64;
126
126
 
127
127
  /**
128
128
  * The result of statically resolving one position in an
@@ -151,6 +151,22 @@ export declare interface Argv0Resolution {
151
151
  * one element.
152
152
  */
153
153
  readonly chain: readonly Argv0ChainWord[];
154
+ /**
155
+ * Indices into the input {@link CommandSite.argv}, one for each corresponding
156
+ * {@link Argv0Resolution.chain} entry. The arrays always have the same nonzero
157
+ * length. Ordinary entries identify their original word; synthesized failures
158
+ * identify the triggering flag or ambiguous assignment operand instead.
159
+ * Repeated word text does not collapse distinct argument positions.
160
+ *
161
+ * For a resolved effective command, its arguments are
162
+ * `site.argv.slice(chainIndices.at(-1)! + 1)`. Sites from
163
+ * {@link enumerateCommands} align argv directly with `site.node.Args`, retaining
164
+ * null slots as unsupported word resolutions, so the same indices select syntax
165
+ * Words. A synthetic failure does not identify a command or its arguments.
166
+ * When wrapper scanning stops or runs out of operands, the existing result
167
+ * remains the wrapper word and its index; no missing command is invented.
168
+ */
169
+ readonly chainIndices: readonly number[];
154
170
  /**
155
171
  * The last element of {@link Argv0Resolution.chain} — the effective
156
172
  * command, or, if resolution hit a statically-unknowable word anywhere
@@ -194,7 +210,10 @@ export declare interface Argv0Resolution {
194
210
  * - `'embedded-command'` — a wrapper flag whose value structurally embeds
195
211
  * the real command rather than naming it as a separate word (e.g.
196
212
  * `env -S 'rm -rf /'` — see {@link WrapperSpec.unresolvableFlags}'s doc
197
- * comment).
213
+ * comment), or a shell interpreter's `-c` option (`bash -c 'rm x'`, see
214
+ * {@link EmbeddedCommandInterpreterSpec}). In both cases the chain's
215
+ * second-to-last element is the wrapper or interpreter word, so its name
216
+ * stays available.
198
217
  * - `'ambiguous-assignment'` — a statically known assignment operand whose
199
218
  * acceptance differs across supported utility implementations, such as
200
219
  * `env =value cmd` (GNU/glibc accepts an empty name; BSD rejects it).
@@ -348,7 +367,7 @@ export declare interface ArrayElem {
348
367
  *
349
368
  * @public
350
369
  */
351
- declare const ArrayExclude: 94;
370
+ export declare const ArrayExclude: 94;
352
371
 
353
372
  /**
354
373
  * ArrayExpr represents a Bash array expression.
@@ -389,7 +408,7 @@ export declare interface ArrayExpr {
389
408
  *
390
409
  * @public
391
410
  */
392
- declare const ArrayIntersect: 95;
411
+ export declare const ArrayIntersect: 95;
393
412
 
394
413
  /**
395
414
  * Upstream BinAritOperator constant Assgn. Its numeric value is preserved exactly.
@@ -398,7 +417,7 @@ declare const ArrayIntersect: 95;
398
417
  *
399
418
  * @public
400
419
  */
401
- declare const Assgn: 87;
420
+ export declare const Assgn: 87;
402
421
 
403
422
  /**
404
423
  * Assign represents an assignment to a variable.
@@ -467,7 +486,7 @@ export declare interface Assign {
467
486
  *
468
487
  * @public
469
488
  */
470
- declare const AssignUnset: 87;
489
+ export declare const AssignUnset: 87;
471
490
 
472
491
  /**
473
492
  * Upstream ParExpOperator constant AssignUnsetOrNull. Its numeric value is preserved exactly.
@@ -476,7 +495,7 @@ declare const AssignUnset: 87;
476
495
  *
477
496
  * @public
478
497
  */
479
- declare const AssignUnsetOrNull: 88;
498
+ export declare const AssignUnsetOrNull: 88;
480
499
 
481
500
  /**
482
501
  * The upstream BinAritOperator domain: exact named tokens, the Go zero value, and explicitly validated unnamed uint32 values. Constants shared by upstream families retain their shared numeric identity.
@@ -663,7 +682,7 @@ export declare type BinTestOperator =
663
682
  *
664
683
  * @public
665
684
  */
666
- declare const BitNegation: 40;
685
+ export declare const BitNegation: 40;
667
686
 
668
687
  /**
669
688
  * Block represents a series of commands that should be executed in a nested
@@ -729,7 +748,7 @@ export declare interface BraceExp {
729
748
  *
730
749
  * @public
731
750
  */
732
- declare const Break: 35;
751
+ export declare const Break: 35;
733
752
 
734
753
  /**
735
754
  * CallExpr represents a command execution or function call, otherwise known as
@@ -863,7 +882,7 @@ export declare type CaseOperator =
863
882
  *
864
883
  * @public
865
884
  */
866
- declare const CmdIn: 78;
885
+ export declare const CmdIn: 78;
867
886
 
868
887
  /**
869
888
  * Upstream ProcOperator constant CmdInTemp. Its numeric value is preserved exactly.
@@ -872,7 +891,7 @@ declare const CmdIn: 78;
872
891
  *
873
892
  * @public
874
893
  */
875
- declare const CmdInTemp: 79;
894
+ export declare const CmdInTemp: 79;
876
895
 
877
896
  /**
878
897
  * Upstream ProcOperator constant CmdOut. Its numeric value is preserved exactly.
@@ -881,7 +900,7 @@ declare const CmdInTemp: 79;
881
900
  *
882
901
  * @public
883
902
  */
884
- declare const CmdOut: 80;
903
+ export declare const CmdOut: 80;
885
904
 
886
905
  /**
887
906
  * CmdSubst represents a command substitution.
@@ -938,7 +957,7 @@ export declare interface CmdSubst {
938
957
  *
939
958
  * @public
940
959
  */
941
- declare const Comma: 98;
960
+ export declare const Comma: 98;
942
961
 
943
962
  /**
944
963
  * The concrete records and typed nil pointers accepted by upstream syntax.Command. Typed nil kinds are limited to this interface's actual implementers; auxiliary records are excluded.
@@ -1092,7 +1111,11 @@ export declare interface CommandSite {
1092
1111
  * `ResolveWordOptions.context`'s doc comment).
1093
1112
  */
1094
1113
  readonly argv0: WordResolution;
1095
- /** `resolveWord` applied to every word, in argument order (same `{ context: 'command-argument' }` as {@link CommandSite.argv0}). */
1114
+ /**
1115
+ * `resolveWord` applied in argument order (same `{ context: 'command-argument' }`
1116
+ * as {@link CommandSite.argv0}). Indices align directly with {@link CommandSite.node}'s
1117
+ * Args array: a null slot is retained as an unsupported resolution, never skipped.
1118
+ */
1096
1119
  readonly argv: readonly WordResolution[];
1097
1120
  /** The path from the tree root to this site, outermost frame first. */
1098
1121
  readonly context: readonly CommandContext[];
@@ -1199,7 +1222,7 @@ export declare interface CStyleLoop {
1199
1222
  *
1200
1223
  * @public
1201
1224
  */
1202
- declare const DashHdoc: 72;
1225
+ export declare const DashHdoc: 72;
1203
1226
 
1204
1227
  /**
1205
1228
  * DblQuoted represents a list of nodes within double quotes.
@@ -1240,7 +1263,7 @@ export declare interface DblQuoted {
1240
1263
  *
1241
1264
  * @public
1242
1265
  */
1243
- declare const Dec: 42;
1266
+ export declare const Dec: 42;
1244
1267
 
1245
1268
  /**
1246
1269
  * DeclClause represents a Bash declare clause.
@@ -1272,6 +1295,38 @@ export declare interface DeclClause {
1272
1295
  Variant: Lit | null;
1273
1296
  }
1274
1297
 
1298
+ /**
1299
+ * `sh-ast/analyze`'s default {@link EmbeddedCommandInterpreterSpec} table:
1300
+ * the shells whose `-c` option makes {@link resolveArgv0} report
1301
+ * `'embedded-command'`. Each entry's option grammar is hand-derived from the
1302
+ * cited manual. Basic clusters and required operands were cross-checked on
1303
+ * Linux bash 5.2.21, dash 0.5.12, zsh 5.9, ksh93u+m 1.0.8 and mksh R59.
1304
+ * Long-option, termination and omitted-operand cases were checked on macOS
1305
+ * bash 5.3.9 and 3.2.57 (also `/bin/sh`), Apple dash-16, zsh 5.9 and ksh93u+
1306
+ * AJM 2012-08-01. Omitted `-o`/`+o` operands before another signed option
1307
+ * were confirmed only on that ksh93u+ build, not ksh93u+m or mksh. Builds can
1308
+ * differ: macOS's ksh93u+ differs from the cited 93u+m for `ksh -o c "echo X"`.
1309
+ * The `sh` entry also models bash's long options because `sh` can be bash.
1310
+ * Named options that change the option grammar itself (such as zsh's
1311
+ * `shoptionletters`) are not interpreted; a custom table is needed for that
1312
+ * grammar. It is data, not policy:
1313
+ * it names no dangerous commands and a caller can replace or extend it via
1314
+ * {@link ResolveArgv0Options.embeddedCommandInterpreters}; an empty array
1315
+ * restores the behavior in which an interpreter is an ordinary effective
1316
+ * command.
1317
+ *
1318
+ * Frozen, including each entry and its arrays.
1319
+ *
1320
+ * @see https://www.gnu.org/software/bash/manual/bash.html#Invoking-Bash — bash
1321
+ * @see https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html — POSIX `sh`
1322
+ * @see https://man7.org/linux/man-pages/man1/dash.1.html — dash(1)
1323
+ * @see https://zsh.sourceforge.io/Doc/Release/Invocation-and-Startup.html — zsh
1324
+ * @see https://github.com/ksh93/ksh — ksh93u+m `sh(1)`
1325
+ * @see https://man.mirbsd.org/mksh.1 — mksh(1)
1326
+ * @public
1327
+ */
1328
+ export declare const DEFAULT_EMBEDDED_COMMAND_INTERPRETERS: readonly EmbeddedCommandInterpreterSpec[];
1329
+
1275
1330
  /**
1276
1331
  * `sh-ast/analyze`'s default {@link WrapperSpec} table — every entry's
1277
1332
  * flag/operand handling is hand-derived from that wrapper's own manual
@@ -1325,7 +1380,7 @@ export declare const DEFAULT_TRANSPARENT_WRAPPERS: readonly WrapperSpec[];
1325
1380
  *
1326
1381
  * @public
1327
1382
  */
1328
- declare const DefaultUnset: 83;
1383
+ export declare const DefaultUnset: 83;
1329
1384
 
1330
1385
  /**
1331
1386
  * Upstream ParExpOperator constant DefaultUnsetOrNull. Its numeric value is preserved exactly.
@@ -1334,7 +1389,7 @@ declare const DefaultUnset: 83;
1334
1389
  *
1335
1390
  * @public
1336
1391
  */
1337
- declare const DefaultUnsetOrNull: 84;
1392
+ export declare const DefaultUnsetOrNull: 84;
1338
1393
 
1339
1394
  /**
1340
1395
  * Upstream RedirOperator constant DplIn. Its numeric value is preserved exactly.
@@ -1343,7 +1398,7 @@ declare const DefaultUnsetOrNull: 84;
1343
1398
  *
1344
1399
  * @public
1345
1400
  */
1346
- declare const DplIn: 67;
1401
+ export declare const DplIn: 67;
1347
1402
 
1348
1403
  /**
1349
1404
  * Upstream RedirOperator constant DplOut. Its numeric value is preserved exactly.
@@ -1352,7 +1407,116 @@ declare const DplIn: 67;
1352
1407
  *
1353
1408
  * @public
1354
1409
  */
1355
- declare const DplOut: 68;
1410
+ export declare const DplOut: 68;
1411
+
1412
+ /**
1413
+ * A data-only description of one shell interpreter whose `-c` option makes the
1414
+ * next operand a command string run by that shell (`bash -c 'rm x'`). Like
1415
+ * `env -S`, the command that runs lives *inside* an operand, so
1416
+ * {@link resolveArgv0} reports `'embedded-command'` instead of the
1417
+ * interpreter's own name as the effective command.
1418
+ * The selector `c` is reserved: exact-token fields (`noOperandLongOptions`,
1419
+ * `operandLongOptions`, `optionTerminatorWords`) cannot contain `-c`.
1420
+ *
1421
+ * Only the option grammar needed to decide *whether `-c` is an option* is
1422
+ * described: which options consume an operand word (so that `-o c` or
1423
+ * `-o pipefail -c` are not misread) and where option parsing ends. Everything
1424
+ * else about the interpreter — what its other options mean, whether a given
1425
+ * option name is valid — is irrelevant to that decision and unmodeled; an
1426
+ * invalid invocation that a real shell would reject is still reported
1427
+ * conservatively, since nothing is guessed about what it would run.
1428
+ *
1429
+ * Option parsing ends at the first statically known word that is not an
1430
+ * option, at `--`, at a lone `-`, or at a table-defined terminator; afterwards
1431
+ * a word shaped like `-c` is an ordinary script operand. A dynamic word in
1432
+ * option position leaves the question undecidable, so scanning stops and the interpreter is reported
1433
+ * exactly as before (its own static name). In that case `static: true` means
1434
+ * only that the interpreter's name is known; it does not mean the command is a
1435
+ * plain shell invocation, because `bash "$f" -c x` runs `x` when `$f` is `-x`.
1436
+ *
1437
+ * This shape may grow new optional fields in a **minor** release; existing
1438
+ * fields' meaning never changes.
1439
+ *
1440
+ * @public
1441
+ */
1442
+ export declare interface EmbeddedCommandInterpreterSpec {
1443
+ /**
1444
+ * The interpreter's name, matched against a static command word's final
1445
+ * path segment: `bash`, `/bin/bash` and `/usr/local/bin/bash` all match
1446
+ * `['bash']`. Only the command word is reduced to its final segment;
1447
+ * entries containing `/` (such as `['/bin/bash']`) are rejected with
1448
+ * {@link ShAnalyzeInvalidWrapperSpecError}. Use `['bash']` to recognize
1449
+ * path-qualified invocations. The first entry containing the segment wins.
1450
+ *
1451
+ * Unlike {@link WrapperSpec.names}, which tries exact names first and
1452
+ * falls back to the final segment only for absolute paths, interpreter
1453
+ * matching uses only the final segment, including for relative paths
1454
+ * such as `./bash`. The question here is whether a command string is
1455
+ * embedded, not which executable would be located.
1456
+ */
1457
+ readonly names: readonly string[];
1458
+ /**
1459
+ * Single option letters (without a sign) that take a name or value operand
1460
+ * under both `-` and `+`, e.g. `['o']` for `-o pipefail` / `+o pipefail`.
1461
+ * A letter listed here never selects the command string itself, so
1462
+ * `bash -o c script` keeps `c` as an option *name*.
1463
+ * The selector `c` is reserved and cannot be listed as an operand option;
1464
+ * conflicting entries throw {@link ShAnalyzeInvalidWrapperSpecError}.
1465
+ */
1466
+ readonly operandOptions: readonly string[];
1467
+ /**
1468
+ * How an {@link EmbeddedCommandInterpreterSpec.operandOptions} letter
1469
+ * receives its operand inside a clustered word:
1470
+ *
1471
+ * - `'separate-word'` — always the next word; remaining letters in the
1472
+ * cluster are still options (`bash -oc errexit 'cmd'` is `-o errexit -c`).
1473
+ * - `'rest-of-cluster'` — the remainder of the word if any, else the next
1474
+ * word; later letters in the same word are part of the operand
1475
+ * (`zsh -oc` names an option `c`).
1476
+ */
1477
+ readonly operandAttachment: 'separate-word' | 'rest-of-cluster';
1478
+ /**
1479
+ * Letters from {@link EmbeddedCommandInterpreterSpec.operandOptions} whose
1480
+ * separate operand may be omitted before a word beginning with `-` or `+`.
1481
+ * An attached operand still belongs to the option. For example, ksh93u+
1482
+ * treats `-o -c cmd` and `+o -c cmd` as an operand-free option listing
1483
+ * followed by `-c`; bash, dash and zsh consume `-c` as the option name.
1484
+ * A dynamic potential operand makes this distinction undecidable.
1485
+ */
1486
+ readonly optionalOperandOptions?: readonly string[];
1487
+ /**
1488
+ * No-operand letters that end option scanning after the current cluster,
1489
+ * under either sign. Remaining letters in that cluster still take effect:
1490
+ * zsh's `-b -c script` runs the file `-c`, but `-bc cmd` selects a string.
1491
+ * These letters must not include `c` or an operand-taking letter.
1492
+ */
1493
+ readonly optionTerminatorLetters?: readonly string[];
1494
+ /**
1495
+ * Additional whole words that end option scanning, like zsh's `+` and `+-`.
1496
+ * The terminator is not a command string; an already-selected `-c` needs
1497
+ * a following word. `--` and a lone `-` are always terminators.
1498
+ */
1499
+ readonly optionTerminatorWords?: readonly string[];
1500
+ /**
1501
+ * Exact long-option words that take a separate operand, recognized before
1502
+ * short-option clusters regardless of prefix: bash's `--rcfile FILE` and
1503
+ * `-rcfile FILE`, or zsh's `--emulate sh`. A dynamic operand stops scanning
1504
+ * because its expansion may produce multiple actual arguments.
1505
+ */
1506
+ readonly operandLongOptions?: readonly string[];
1507
+ /**
1508
+ * Exact long-option words with no operand, recognized before short-option
1509
+ * clusters. Bash's `-restricted` and `-noprofile` are whole long options,
1510
+ * not clusters containing `c` or `o`. Unlisted `--name` / `+-name` words
1511
+ * are also treated as operand-free; option validity is not checked.
1512
+ */
1513
+ readonly noOperandLongOptions?: readonly string[];
1514
+ /**
1515
+ * `true` if the interpreter also treats `+c` as selecting the command
1516
+ * string. Other shells do not select command mode with `+c`.
1517
+ */
1518
+ readonly plusCSelectsCommand?: boolean;
1519
+ }
1356
1520
 
1357
1521
  /**
1358
1522
  * Enumerates every command invocation (`CallExpr`) reachable from `root`,
@@ -1404,7 +1568,7 @@ declare const DplOut: 68;
1404
1568
  *
1405
1569
  * @public
1406
1570
  */
1407
- declare const Eql: 45;
1571
+ export declare const Eql: 45;
1408
1572
 
1409
1573
  /**
1410
1574
  * Upstream ParExpOperator constant ErrorUnset. Its numeric value is preserved exactly.
@@ -1413,7 +1577,7 @@ declare const DplOut: 68;
1413
1577
  *
1414
1578
  * @public
1415
1579
  */
1416
- declare const ErrorUnset: 85;
1580
+ export declare const ErrorUnset: 85;
1417
1581
 
1418
1582
  /**
1419
1583
  * Upstream ParExpOperator constant ErrorUnsetOrNull. Its numeric value is preserved exactly.
@@ -1422,7 +1586,7 @@ declare const DplOut: 68;
1422
1586
  *
1423
1587
  * @public
1424
1588
  */
1425
- declare const ErrorUnsetOrNull: 86;
1589
+ export declare const ErrorUnsetOrNull: 86;
1426
1590
 
1427
1591
  /**
1428
1592
  * Expansion represents string manipulation in a `ParamExp` other than those
@@ -1484,7 +1648,7 @@ declare const DplOut: 68;
1484
1648
  *
1485
1649
  * @public
1486
1650
  */
1487
- declare const Fallthrough: 36;
1651
+ export declare const Fallthrough: 36;
1488
1652
 
1489
1653
  /**
1490
1654
  * File represents a shell source file.
@@ -1641,7 +1805,7 @@ declare const DplOut: 68;
1641
1805
  *
1642
1806
  * @public
1643
1807
  */
1644
- declare const Geq: 48;
1808
+ export declare const Geq: 48;
1645
1809
 
1646
1810
  /**
1647
1811
  * Upstream GlobOperator constant GlobExcept. Its numeric value is preserved exactly.
@@ -1650,7 +1814,7 @@ declare const DplOut: 68;
1650
1814
  *
1651
1815
  * @public
1652
1816
  */
1653
- declare const GlobExcept: 143;
1817
+ export declare const GlobExcept: 143;
1654
1818
 
1655
1819
  /**
1656
1820
  * Upstream GlobOperator constant GlobOne. Its numeric value is preserved exactly.
@@ -1659,7 +1823,7 @@ declare const DplOut: 68;
1659
1823
  *
1660
1824
  * @public
1661
1825
  */
1662
- declare const GlobOne: 142;
1826
+ export declare const GlobOne: 142;
1663
1827
 
1664
1828
  /**
1665
1829
  * Upstream GlobOperator constant GlobOneOrMore. Its numeric value is preserved exactly.
@@ -1668,7 +1832,7 @@ declare const DplOut: 68;
1668
1832
  *
1669
1833
  * @public
1670
1834
  */
1671
- declare const GlobOneOrMore: 141;
1835
+ export declare const GlobOneOrMore: 141;
1672
1836
 
1673
1837
  /**
1674
1838
  * The upstream GlobOperator domain: exact named tokens, the Go zero value, and explicitly validated unnamed uint32 values. Constants shared by upstream families retain their shared numeric identity.
@@ -1691,7 +1855,7 @@ declare const DplOut: 68;
1691
1855
  *
1692
1856
  * @public
1693
1857
  */
1694
- declare const GlobZeroOrMore: 140;
1858
+ export declare const GlobZeroOrMore: 140;
1695
1859
 
1696
1860
  /**
1697
1861
  * Upstream GlobOperator constant GlobZeroOrOne. Its numeric value is preserved exactly.
@@ -1700,7 +1864,7 @@ declare const DplOut: 68;
1700
1864
  *
1701
1865
  * @public
1702
1866
  */
1703
- declare const GlobZeroOrOne: 139;
1867
+ export declare const GlobZeroOrOne: 139;
1704
1868
 
1705
1869
  /**
1706
1870
  * A Go string's exact bytes. Valid UTF-8 is represented as a JavaScript string; other bytes use Uint8Array. String inputs must not contain unpaired surrogates, which have no faithful UTF-8 representation.
@@ -1716,7 +1880,7 @@ declare const DplOut: 68;
1716
1880
  *
1717
1881
  * @public
1718
1882
  */
1719
- declare const Gtr: 63;
1883
+ export declare const Gtr: 63;
1720
1884
 
1721
1885
  /**
1722
1886
  * Upstream RedirOperator constant Hdoc. Its numeric value is preserved exactly.
@@ -1725,7 +1889,7 @@ declare const DplOut: 68;
1725
1889
  *
1726
1890
  * @public
1727
1891
  */
1728
- declare const Hdoc: 71;
1892
+ export declare const Hdoc: 71;
1729
1893
 
1730
1894
  /**
1731
1895
  * IfClause represents an if statement.
@@ -1794,7 +1958,7 @@ declare const DplOut: 68;
1794
1958
  *
1795
1959
  * @public
1796
1960
  */
1797
- declare const Inc: 41;
1961
+ export declare const Inc: 41;
1798
1962
 
1799
1963
  /**
1800
1964
  * Upstream BinAritOperator constant Leq. Its numeric value is preserved exactly.
@@ -1803,7 +1967,7 @@ declare const DplOut: 68;
1803
1967
  *
1804
1968
  * @public
1805
1969
  */
1806
- declare const Leq: 47;
1970
+ export declare const Leq: 47;
1807
1971
 
1808
1972
  /**
1809
1973
  * LetClause represents a Bash let clause.
@@ -1873,7 +2037,7 @@ declare const DplOut: 68;
1873
2037
  *
1874
2038
  * @public
1875
2039
  */
1876
- declare const LowerAll: 99;
2040
+ export declare const LowerAll: 99;
1877
2041
 
1878
2042
  /**
1879
2043
  * Upstream ParExpOperator constant LowerFirst. Its numeric value is preserved exactly.
@@ -1882,7 +2046,7 @@ declare const DplOut: 68;
1882
2046
  *
1883
2047
  * @public
1884
2048
  */
1885
- declare const LowerFirst: 98;
2049
+ export declare const LowerFirst: 98;
1886
2050
 
1887
2051
  /**
1888
2052
  * Upstream BinAritOperator constant Lss. Its numeric value is preserved exactly.
@@ -1891,7 +2055,7 @@ declare const DplOut: 68;
1891
2055
  *
1892
2056
  * @public
1893
2057
  */
1894
- declare const Lss: 65;
2058
+ export declare const Lss: 65;
1895
2059
 
1896
2060
  /**
1897
2061
  * Upstream ParExpOperator constant MatchEmpty. Its numeric value is preserved exactly.
@@ -1900,7 +2064,7 @@ declare const DplOut: 68;
1900
2064
  *
1901
2065
  * @public
1902
2066
  */
1903
- declare const MatchEmpty: 93;
2067
+ export declare const MatchEmpty: 93;
1904
2068
 
1905
2069
  /**
1906
2070
  * Upstream UnAritOperator constant Minus. Its numeric value is preserved exactly.
@@ -1909,7 +2073,7 @@ declare const DplOut: 68;
1909
2073
  *
1910
2074
  * @public
1911
2075
  */
1912
- declare const Minus: 83;
2076
+ export declare const Minus: 83;
1913
2077
 
1914
2078
  /**
1915
2079
  * Upstream BinAritOperator constant Mul. Its numeric value is preserved exactly.
@@ -1918,7 +2082,7 @@ declare const DplOut: 68;
1918
2082
  *
1919
2083
  * @public
1920
2084
  */
1921
- declare const Mul: 43;
2085
+ export declare const Mul: 43;
1922
2086
 
1923
2087
  /**
1924
2088
  * Upstream BinAritOperator constant MulAssgn. Its numeric value is preserved exactly.
@@ -1927,7 +2091,7 @@ declare const DplOut: 68;
1927
2091
  *
1928
2092
  * @public
1929
2093
  */
1930
- declare const MulAssgn: 51;
2094
+ export declare const MulAssgn: 51;
1931
2095
 
1932
2096
  /**
1933
2097
  * Upstream ParNamesOperator constant NamesPrefix. Its numeric value is preserved exactly.
@@ -1936,7 +2100,7 @@ declare const DplOut: 68;
1936
2100
  *
1937
2101
  * @public
1938
2102
  */
1939
- declare const NamesPrefix: 43;
2103
+ export declare const NamesPrefix: 43;
1940
2104
 
1941
2105
  /**
1942
2106
  * Upstream ParNamesOperator constant NamesPrefixWords. Its numeric value is preserved exactly.
@@ -1945,7 +2109,7 @@ declare const DplOut: 68;
1945
2109
  *
1946
2110
  * @public
1947
2111
  */
1948
- declare const NamesPrefixWords: 100;
2112
+ export declare const NamesPrefixWords: 100;
1949
2113
 
1950
2114
  /**
1951
2115
  * Upstream BinAritOperator constant Neq. Its numeric value is preserved exactly.
@@ -1954,7 +2118,7 @@ declare const DplOut: 68;
1954
2118
  *
1955
2119
  * @public
1956
2120
  */
1957
- declare const Neq: 46;
2121
+ export declare const Neq: 46;
1958
2122
 
1959
2123
  /**
1960
2124
  * The concrete records and typed nil pointers accepted by upstream syntax.Node. Typed nil kinds are limited to this interface's actual implementers; auxiliary records are excluded.
@@ -2059,7 +2223,7 @@ declare const DplOut: 68;
2059
2223
  *
2060
2224
  * @public
2061
2225
  */
2062
- declare const Not: 39;
2226
+ export declare const Not: 39;
2063
2227
 
2064
2228
  /**
2065
2229
  * The upstream uint32 operator families. A family name identifies the Go named type, not the spelling of one token.
@@ -2086,7 +2250,7 @@ declare const DplOut: 68;
2086
2250
  *
2087
2251
  * @public
2088
2252
  */
2089
- declare const Or: 13;
2253
+ export declare const Or: 13;
2090
2254
 
2091
2255
  /**
2092
2256
  * Upstream BinAritOperator constant OrArit. Its numeric value is preserved exactly.
@@ -2095,7 +2259,7 @@ declare const DplOut: 68;
2095
2259
  *
2096
2260
  * @public
2097
2261
  */
2098
- declare const OrArit: 12;
2262
+ export declare const OrArit: 12;
2099
2263
 
2100
2264
  /**
2101
2265
  * Upstream BinAritOperator constant OrAssgn. Its numeric value is preserved exactly.
@@ -2104,7 +2268,7 @@ declare const DplOut: 68;
2104
2268
  *
2105
2269
  * @public
2106
2270
  */
2107
- declare const OrAssgn: 55;
2271
+ export declare const OrAssgn: 55;
2108
2272
 
2109
2273
  /**
2110
2274
  * Upstream BinAritOperator constant OrBoolAssgn. Its numeric value is preserved exactly.
@@ -2113,7 +2277,7 @@ declare const DplOut: 68;
2113
2277
  *
2114
2278
  * @public
2115
2279
  */
2116
- declare const OrBoolAssgn: 60;
2280
+ export declare const OrBoolAssgn: 60;
2117
2281
 
2118
2282
  /**
2119
2283
  * Upstream BinCmdOperator constant OrStmt. Its numeric value is preserved exactly.
@@ -2122,7 +2286,7 @@ declare const DplOut: 68;
2122
2286
  *
2123
2287
  * @public
2124
2288
  */
2125
- declare const OrStmt: 12;
2289
+ export declare const OrStmt: 12;
2126
2290
 
2127
2291
  /**
2128
2292
  * Upstream BinTestOperator constant OrTest. Its numeric value is preserved exactly.
@@ -2131,7 +2295,7 @@ declare const DplOut: 68;
2131
2295
  *
2132
2296
  * @public
2133
2297
  */
2134
- declare const OrTest: 12;
2298
+ export declare const OrTest: 12;
2135
2299
 
2136
2300
  /**
2137
2301
  * Upstream ParExpOperator constant OtherParamOps. Its numeric value is preserved exactly.
@@ -2140,7 +2304,7 @@ declare const DplOut: 68;
2140
2304
  *
2141
2305
  * @public
2142
2306
  */
2143
- declare const OtherParamOps: 100;
2307
+ export declare const OtherParamOps: 100;
2144
2308
 
2145
2309
  /**
2146
2310
  * ParamExp represents a parameter expansion.
@@ -2352,7 +2516,7 @@ declare const DplOut: 68;
2352
2516
  *
2353
2517
  * @public
2354
2518
  */
2355
- declare const Pipe: 13;
2519
+ export declare const Pipe: 13;
2356
2520
 
2357
2521
  /**
2358
2522
  * Upstream BinCmdOperator constant PipeAll. Its numeric value is preserved exactly.
@@ -2361,7 +2525,7 @@ declare const DplOut: 68;
2361
2525
  *
2362
2526
  * @public
2363
2527
  */
2364
- declare const PipeAll: 14;
2528
+ export declare const PipeAll: 14;
2365
2529
 
2366
2530
  /**
2367
2531
  * Upstream UnAritOperator constant Plus. Its numeric value is preserved exactly.
@@ -2370,7 +2534,7 @@ declare const DplOut: 68;
2370
2534
  *
2371
2535
  * @public
2372
2536
  */
2373
- declare const Plus: 81;
2537
+ export declare const Plus: 81;
2374
2538
 
2375
2539
  /**
2376
2540
  * Upstream BinAritOperator constant Pow. Its numeric value is preserved exactly.
@@ -2379,7 +2543,7 @@ declare const DplOut: 68;
2379
2543
  *
2380
2544
  * @public
2381
2545
  */
2382
- declare const Pow: 44;
2546
+ export declare const Pow: 44;
2383
2547
 
2384
2548
  /**
2385
2549
  * Upstream BinAritOperator constant PowAssgn. Its numeric value is preserved exactly.
@@ -2388,7 +2552,7 @@ declare const DplOut: 68;
2388
2552
  *
2389
2553
  * @public
2390
2554
  */
2391
- declare const PowAssgn: 62;
2555
+ export declare const PowAssgn: 62;
2392
2556
 
2393
2557
  /**
2394
2558
  * The upstream ProcOperator domain: exact named tokens, the Go zero value, and explicitly validated unnamed uint32 values. Constants shared by upstream families retain their shared numeric identity.
@@ -2441,7 +2605,7 @@ declare const DplOut: 68;
2441
2605
  *
2442
2606
  * @public
2443
2607
  */
2444
- declare const Quo: 101;
2608
+ export declare const Quo: 101;
2445
2609
 
2446
2610
  /**
2447
2611
  * Upstream BinAritOperator constant QuoAssgn. Its numeric value is preserved exactly.
@@ -2450,7 +2614,7 @@ declare const DplOut: 68;
2450
2614
  *
2451
2615
  * @public
2452
2616
  */
2453
- declare const QuoAssgn: 52;
2617
+ export declare const QuoAssgn: 52;
2454
2618
 
2455
2619
  /**
2456
2620
  * An explicitly represented unnamed uint32 value in one upstream operator family. The runtime constructor checks integer range; this type does not claim that every value is meaningful to every parser or printer operation. The structural family marker remains interoperable across package entry points while preventing accidental cross-family assignment.
@@ -2461,6 +2625,14 @@ declare const DplOut: 68;
2461
2625
  readonly __shAstOperatorFamily: Family;
2462
2626
  };
2463
2627
 
2628
+ /**
2629
+ * Represents an unnamed value in an upstream uint32 operator family. Named
2630
+ * constants remain precise literal unions; this explicit path preserves other Go
2631
+ * values without claiming an operation such as Print accepts them.
2632
+ * @public
2633
+ */
2634
+ export declare function rawOperator<Family extends OperatorFamily>(family: Family, value: number): RawOperator<Family>;
2635
+
2464
2636
  /**
2465
2637
  * Upstream RedirOperator constant RdrAll. Its numeric value is preserved exactly.
2466
2638
  *
@@ -2468,7 +2640,7 @@ declare const DplOut: 68;
2468
2640
  *
2469
2641
  * @public
2470
2642
  */
2471
- declare const RdrAll: 74;
2643
+ export declare const RdrAll: 74;
2472
2644
 
2473
2645
  /**
2474
2646
  * Upstream RedirOperator constant RdrAllClob. Its numeric value is preserved exactly.
@@ -2477,7 +2649,7 @@ declare const DplOut: 68;
2477
2649
  *
2478
2650
  * @public
2479
2651
  */
2480
- declare const RdrAllClob: 75;
2652
+ export declare const RdrAllClob: 75;
2481
2653
 
2482
2654
  /**
2483
2655
  * Upstream RedirOperator constant RdrClob. Its numeric value is preserved exactly.
@@ -2486,7 +2658,7 @@ declare const DplOut: 68;
2486
2658
  *
2487
2659
  * @public
2488
2660
  */
2489
- declare const RdrClob: 69;
2661
+ export declare const RdrClob: 69;
2490
2662
 
2491
2663
  /**
2492
2664
  * Upstream RedirOperator constant RdrIn. Its numeric value is preserved exactly.
@@ -2495,7 +2667,7 @@ declare const DplOut: 68;
2495
2667
  *
2496
2668
  * @public
2497
2669
  */
2498
- declare const RdrIn: 65;
2670
+ export declare const RdrIn: 65;
2499
2671
 
2500
2672
  /**
2501
2673
  * Upstream RedirOperator constant RdrInOut. Its numeric value is preserved exactly.
@@ -2504,7 +2676,7 @@ declare const DplOut: 68;
2504
2676
  *
2505
2677
  * @public
2506
2678
  */
2507
- declare const RdrInOut: 66;
2679
+ export declare const RdrInOut: 66;
2508
2680
 
2509
2681
  /**
2510
2682
  * Upstream RedirOperator constant RdrOut. Its numeric value is preserved exactly.
@@ -2513,7 +2685,7 @@ declare const DplOut: 68;
2513
2685
  *
2514
2686
  * @public
2515
2687
  */
2516
- declare const RdrOut: 63;
2688
+ export declare const RdrOut: 63;
2517
2689
 
2518
2690
  /**
2519
2691
  * Redirect represents an input/output redirection.
@@ -2586,7 +2758,7 @@ declare const DplOut: 68;
2586
2758
  *
2587
2759
  * @public
2588
2760
  */
2589
- declare const Rem: 89;
2761
+ export declare const Rem: 89;
2590
2762
 
2591
2763
  /**
2592
2764
  * Upstream BinAritOperator constant RemAssgn. Its numeric value is preserved exactly.
@@ -2595,7 +2767,7 @@ declare const DplOut: 68;
2595
2767
  *
2596
2768
  * @public
2597
2769
  */
2598
- declare const RemAssgn: 53;
2770
+ export declare const RemAssgn: 53;
2599
2771
 
2600
2772
  /**
2601
2773
  * Upstream ParExpOperator constant RemLargePrefix. Its numeric value is preserved exactly.
@@ -2604,7 +2776,7 @@ declare const DplOut: 68;
2604
2776
  *
2605
2777
  * @public
2606
2778
  */
2607
- declare const RemLargePrefix: 92;
2779
+ export declare const RemLargePrefix: 92;
2608
2780
 
2609
2781
  /**
2610
2782
  * Upstream ParExpOperator constant RemLargeSuffix. Its numeric value is preserved exactly.
@@ -2613,7 +2785,7 @@ declare const DplOut: 68;
2613
2785
  *
2614
2786
  * @public
2615
2787
  */
2616
- declare const RemLargeSuffix: 90;
2788
+ export declare const RemLargeSuffix: 90;
2617
2789
 
2618
2790
  /**
2619
2791
  * Upstream ParExpOperator constant RemSmallPrefix. Its numeric value is preserved exactly.
@@ -2622,7 +2794,7 @@ declare const DplOut: 68;
2622
2794
  *
2623
2795
  * @public
2624
2796
  */
2625
- declare const RemSmallPrefix: 91;
2797
+ export declare const RemSmallPrefix: 91;
2626
2798
 
2627
2799
  /**
2628
2800
  * Upstream ParExpOperator constant RemSmallSuffix. Its numeric value is preserved exactly.
@@ -2631,7 +2803,7 @@ declare const DplOut: 68;
2631
2803
  *
2632
2804
  * @public
2633
2805
  */
2634
- declare const RemSmallSuffix: 89;
2806
+ export declare const RemSmallSuffix: 89;
2635
2807
 
2636
2808
  /**
2637
2809
  * Replace represents a search and replace expression inside a `ParamExp`.
@@ -2677,7 +2849,7 @@ declare const DplOut: 68;
2677
2849
  * command) or add their own (e.g. a project's `with-retry` helper) and
2678
2850
  * both directions are followed identically to any built-in entry.
2679
2851
  *
2680
- * **A statically-unknowable word is never guessed through** — three
2852
+ * **A statically-unknowable word is never guessed through** — four
2681
2853
  * distinct cases all stop the chain immediately at that word rather than
2682
2854
  * falling back to any other guess:
2683
2855
  *
@@ -2698,6 +2870,30 @@ declare const DplOut: 68;
2698
2870
  * reports `effective: { static: false, reason: 'embedded-command' }`
2699
2871
  * (see {@link WrapperSpec.unresolvableFlags}'s doc comment).
2700
2872
  *
2873
+ * 4. The effective command is a shell interpreter
2874
+ * ({@link DEFAULT_EMBEDDED_COMMAND_INTERPRETERS}) invoked with `-c` —
2875
+ * `bash -c "$x"`, `sudo sh -ec ls` — and the command that runs is
2876
+ * inside the string operand. The result is the same
2877
+ * `'embedded-command'` shape `env -S` produces: the interpreter word is
2878
+ * `chain.at(-2)` and `chainIndices.at(-1)` is the option word that
2879
+ * selected `-c`. `bash script.sh`, `bash -e script.sh`, `bash -- -c`
2880
+ * and `bash -o c` are not `-c` invocations and resolve to `bash` as
2881
+ * before. A dynamic word in option position (`bash "$f" -c x`,
2882
+ * `bash -c"$y" x`) is undecidable, so the interpreter stays a static
2883
+ * `bash`: `static: true` then means only that the name is known, not that
2884
+ * the command is a plain shell invocation. The `-c` string itself is never
2885
+ * parsed.
2886
+ *
2887
+ * Known limits: the table models common option spellings, not a full
2888
+ * emulation of each shell's option parser. Unusual spellings can be
2889
+ * misclassified in either direction:
2890
+ *
2891
+ * - Bash/sh single-dash long options after a short option, e.g. `bash -e -rcfile M`.
2892
+ * - `ksh -c +c M`, or a dynamic word after `-c` that expands to an option.
2893
+ * - mksh's selector-bearing operands in `mksh -o -c M` and `mksh -o +c M`.
2894
+ * - A lone `+` before `-c`, e.g. `bash + -c M`.
2895
+ * - Zsh grammar switches, e.g. `zsh -o shoptionletters -b -c M`.
2896
+ *
2701
2897
  * `VAR=val` shell-assignment prefixes on the `CallExpr` itself
2702
2898
  * (`CommandSite.node.Assigns`, e.g. `FOO=bar rm x`) are always skipped and
2703
2899
  * counted in {@link Argv0Resolution.assignmentsSkipped} — a mechanism
@@ -2712,7 +2908,8 @@ declare const DplOut: 68;
2712
2908
  * least one argv word; see its doc comment), not a "malformed shell
2713
2909
  * source" case.
2714
2910
  * @throws {@link ShAnalyzeInvalidWrapperSpecError} if
2715
- * `options.transparentWrappers` contains a malformed entry (see
2911
+ * `options.transparentWrappers` or `options.embeddedCommandInterpreters`
2912
+ * contains a malformed entry (see
2716
2913
  * {@link ResolveArgv0Options.transparentWrappers}'s doc comment).
2717
2914
  * @public
2718
2915
  */
@@ -2739,6 +2936,19 @@ declare const DplOut: 68;
2739
2936
  * flag matching.
2740
2937
  */
2741
2938
  readonly transparentWrappers?: readonly WrapperSpec[];
2939
+ /**
2940
+ * The shell interpreters whose `-c` operand is reported as an
2941
+ * `'embedded-command'`. Defaults to
2942
+ * {@link DEFAULT_EMBEDDED_COMMAND_INTERPRETERS}. Pass a replacement array to
2943
+ * add or drop interpreters; an empty array disables the behavior, so every
2944
+ * interpreter resolves as an ordinary effective command.
2945
+ *
2946
+ * Validated at the {@link resolveArgv0} boundary like
2947
+ * {@link ResolveArgv0Options.transparentWrappers}: the table must be an
2948
+ * array. A non-array value (including `null`) or malformed entry throws
2949
+ * {@link ShAnalyzeInvalidWrapperSpecError}; only `undefined` uses defaults.
2950
+ */
2951
+ readonly embeddedCommandInterpreters?: readonly EmbeddedCommandInterpreterSpec[];
2742
2952
  }
2743
2953
 
2744
2954
  /**
@@ -2812,7 +3022,7 @@ declare const DplOut: 68;
2812
3022
  *
2813
3023
  * @public
2814
3024
  */
2815
- declare const Resume: 37;
3025
+ export declare const Resume: 37;
2816
3026
 
2817
3027
  /**
2818
3028
  * Upstream CaseOperator constant ResumeKorn. Its numeric value is preserved exactly.
@@ -2821,7 +3031,7 @@ declare const DplOut: 68;
2821
3031
  *
2822
3032
  * @public
2823
3033
  */
2824
- declare const ResumeKorn: 38;
3034
+ export declare const ResumeKorn: 38;
2825
3035
 
2826
3036
  /**
2827
3037
  * SglQuoted represents a string within single quotes.
@@ -2917,7 +3127,7 @@ declare const DplOut: 68;
2917
3127
  *
2918
3128
  * @public
2919
3129
  */
2920
- declare const Shl: 71;
3130
+ export declare const Shl: 71;
2921
3131
 
2922
3132
  /**
2923
3133
  * Upstream BinAritOperator constant ShlAssgn. Its numeric value is preserved exactly.
@@ -2926,7 +3136,7 @@ declare const DplOut: 68;
2926
3136
  *
2927
3137
  * @public
2928
3138
  */
2929
- declare const ShlAssgn: 57;
3139
+ export declare const ShlAssgn: 57;
2930
3140
 
2931
3141
  /**
2932
3142
  * Upstream BinAritOperator constant Shr. Its numeric value is preserved exactly.
@@ -2935,7 +3145,7 @@ declare const DplOut: 68;
2935
3145
  *
2936
3146
  * @public
2937
3147
  */
2938
- declare const Shr: 64;
3148
+ export declare const Shr: 64;
2939
3149
 
2940
3150
  /**
2941
3151
  * Upstream BinAritOperator constant ShrAssgn. Its numeric value is preserved exactly.
@@ -2944,7 +3154,7 @@ declare const DplOut: 68;
2944
3154
  *
2945
3155
  * @public
2946
3156
  */
2947
- declare const ShrAssgn: 58;
3157
+ export declare const ShrAssgn: 58;
2948
3158
 
2949
3159
  /**
2950
3160
  * Slice represents a character slicing expression inside a `ParamExp`.
@@ -3042,7 +3252,7 @@ declare const DplOut: 68;
3042
3252
  *
3043
3253
  * @public
3044
3254
  */
3045
- declare const Sub: 83;
3255
+ export declare const Sub: 83;
3046
3256
 
3047
3257
  /**
3048
3258
  * Upstream BinAritOperator constant SubAssgn. Its numeric value is preserved exactly.
@@ -3051,7 +3261,7 @@ declare const DplOut: 68;
3051
3261
  *
3052
3262
  * @public
3053
3263
  */
3054
- declare const SubAssgn: 50;
3264
+ export declare const SubAssgn: 50;
3055
3265
 
3056
3266
  /**
3057
3267
  * Subshell represents a series of commands that should be executed in a nested
@@ -3123,7 +3333,7 @@ declare const DplOut: 68;
3123
3333
  *
3124
3334
  * @public
3125
3335
  */
3126
- declare const TernColon: 104;
3336
+ export declare const TernColon: 104;
3127
3337
 
3128
3338
  /**
3129
3339
  * Upstream BinAritOperator constant TernQuest. Its numeric value is preserved exactly.
@@ -3132,7 +3342,7 @@ declare const DplOut: 68;
3132
3342
  *
3133
3343
  * @public
3134
3344
  */
3135
- declare const TernQuest: 85;
3345
+ export declare const TernQuest: 85;
3136
3346
 
3137
3347
  /**
3138
3348
  * TestClause represents a Bash extended test clause.
@@ -3236,7 +3446,7 @@ declare const DplOut: 68;
3236
3446
  *
3237
3447
  * @public
3238
3448
  */
3239
- declare const TsAfter: 63;
3449
+ export declare const TsAfter: 63;
3240
3450
 
3241
3451
  /**
3242
3452
  * Upstream BinTestOperator constant TsBefore. Its numeric value is preserved exactly.
@@ -3245,7 +3455,7 @@ declare const DplOut: 68;
3245
3455
  *
3246
3456
  * @public
3247
3457
  */
3248
- declare const TsBefore: 65;
3458
+ export declare const TsBefore: 65;
3249
3459
 
3250
3460
  /**
3251
3461
  * Upstream UnTestOperator constant TsBlckSp. Its numeric value is preserved exactly.
@@ -3254,7 +3464,7 @@ declare const DplOut: 68;
3254
3464
  *
3255
3465
  * @public
3256
3466
  */
3257
- declare const TsBlckSp: 109;
3467
+ export declare const TsBlckSp: 109;
3258
3468
 
3259
3469
  /**
3260
3470
  * Upstream UnTestOperator constant TsCharSp. Its numeric value is preserved exactly.
@@ -3263,7 +3473,7 @@ declare const DplOut: 68;
3263
3473
  *
3264
3474
  * @public
3265
3475
  */
3266
- declare const TsCharSp: 108;
3476
+ export declare const TsCharSp: 108;
3267
3477
 
3268
3478
  /**
3269
3479
  * Upstream BinTestOperator constant TsDevIno. Its numeric value is preserved exactly.
@@ -3272,7 +3482,7 @@ declare const DplOut: 68;
3272
3482
  *
3273
3483
  * @public
3274
3484
  */
3275
- declare const TsDevIno: 132;
3485
+ export declare const TsDevIno: 132;
3276
3486
 
3277
3487
  /**
3278
3488
  * Upstream UnTestOperator constant TsDirect. Its numeric value is preserved exactly.
@@ -3281,7 +3491,7 @@ declare const DplOut: 68;
3281
3491
  *
3282
3492
  * @public
3283
3493
  */
3284
- declare const TsDirect: 107;
3494
+ export declare const TsDirect: 107;
3285
3495
 
3286
3496
  /**
3287
3497
  * Upstream UnTestOperator constant TsEmpStr. Its numeric value is preserved exactly.
@@ -3290,7 +3500,7 @@ declare const DplOut: 68;
3290
3500
  *
3291
3501
  * @public
3292
3502
  */
3293
- declare const TsEmpStr: 124;
3503
+ export declare const TsEmpStr: 124;
3294
3504
 
3295
3505
  /**
3296
3506
  * Upstream BinTestOperator constant TsEql. Its numeric value is preserved exactly.
@@ -3299,7 +3509,7 @@ declare const DplOut: 68;
3299
3509
  *
3300
3510
  * @public
3301
3511
  */
3302
- declare const TsEql: 133;
3512
+ export declare const TsEql: 133;
3303
3513
 
3304
3514
  /**
3305
3515
  * Upstream UnTestOperator constant TsExec. Its numeric value is preserved exactly.
@@ -3308,7 +3518,7 @@ declare const DplOut: 68;
3308
3518
  *
3309
3519
  * @public
3310
3520
  */
3311
- declare const TsExec: 121;
3521
+ export declare const TsExec: 121;
3312
3522
 
3313
3523
  /**
3314
3524
  * Upstream UnTestOperator constant TsExists. Its numeric value is preserved exactly.
@@ -3317,7 +3527,7 @@ declare const DplOut: 68;
3317
3527
  *
3318
3528
  * @public
3319
3529
  */
3320
- declare const TsExists: 105;
3530
+ export declare const TsExists: 105;
3321
3531
 
3322
3532
  /**
3323
3533
  * Upstream UnTestOperator constant TsFdTerm. Its numeric value is preserved exactly.
@@ -3326,7 +3536,7 @@ declare const DplOut: 68;
3326
3536
  *
3327
3537
  * @public
3328
3538
  */
3329
- declare const TsFdTerm: 123;
3539
+ export declare const TsFdTerm: 123;
3330
3540
 
3331
3541
  /**
3332
3542
  * Upstream BinTestOperator constant TsGeq. Its numeric value is preserved exactly.
@@ -3335,7 +3545,7 @@ declare const DplOut: 68;
3335
3545
  *
3336
3546
  * @public
3337
3547
  */
3338
- declare const TsGeq: 136;
3548
+ export declare const TsGeq: 136;
3339
3549
 
3340
3550
  /**
3341
3551
  * Upstream UnTestOperator constant TsGIDSet. Its numeric value is preserved exactly.
@@ -3344,7 +3554,7 @@ declare const DplOut: 68;
3344
3554
  *
3345
3555
  * @public
3346
3556
  */
3347
- declare const TsGIDSet: 114;
3557
+ export declare const TsGIDSet: 114;
3348
3558
 
3349
3559
  /**
3350
3560
  * Upstream UnTestOperator constant TsGrpOwn. Its numeric value is preserved exactly.
@@ -3353,7 +3563,7 @@ declare const DplOut: 68;
3353
3563
  *
3354
3564
  * @public
3355
3565
  */
3356
- declare const TsGrpOwn: 116;
3566
+ export declare const TsGrpOwn: 116;
3357
3567
 
3358
3568
  /**
3359
3569
  * Upstream BinTestOperator constant TsGtr. Its numeric value is preserved exactly.
@@ -3362,7 +3572,7 @@ declare const DplOut: 68;
3362
3572
  *
3363
3573
  * @public
3364
3574
  */
3365
- declare const TsGtr: 138;
3575
+ export declare const TsGtr: 138;
3366
3576
 
3367
3577
  /**
3368
3578
  * Upstream BinTestOperator constant TsLeq. Its numeric value is preserved exactly.
@@ -3371,7 +3581,7 @@ declare const DplOut: 68;
3371
3581
  *
3372
3582
  * @public
3373
3583
  */
3374
- declare const TsLeq: 135;
3584
+ export declare const TsLeq: 135;
3375
3585
 
3376
3586
  /**
3377
3587
  * Upstream BinTestOperator constant TsLss. Its numeric value is preserved exactly.
@@ -3380,7 +3590,7 @@ declare const DplOut: 68;
3380
3590
  *
3381
3591
  * @public
3382
3592
  */
3383
- declare const TsLss: 137;
3593
+ export declare const TsLss: 137;
3384
3594
 
3385
3595
  /**
3386
3596
  * Upstream BinTestOperator constant TsMatch. Its numeric value is preserved exactly.
@@ -3389,7 +3599,7 @@ declare const DplOut: 68;
3389
3599
  *
3390
3600
  * @public
3391
3601
  */
3392
- declare const TsMatch: 45;
3602
+ export declare const TsMatch: 45;
3393
3603
 
3394
3604
  /**
3395
3605
  * Upstream BinTestOperator constant TsMatchShort. Its numeric value is preserved exactly.
@@ -3398,7 +3608,7 @@ declare const DplOut: 68;
3398
3608
  *
3399
3609
  * @public
3400
3610
  */
3401
- declare const TsMatchShort: 87;
3611
+ export declare const TsMatchShort: 87;
3402
3612
 
3403
3613
  /**
3404
3614
  * Upstream UnTestOperator constant TsModif. Its numeric value is preserved exactly.
@@ -3407,7 +3617,7 @@ declare const DplOut: 68;
3407
3617
  *
3408
3618
  * @public
3409
3619
  */
3410
- declare const TsModif: 118;
3620
+ export declare const TsModif: 118;
3411
3621
 
3412
3622
  /**
3413
3623
  * Upstream UnTestOperator constant TsNempStr. Its numeric value is preserved exactly.
@@ -3416,7 +3626,7 @@ declare const DplOut: 68;
3416
3626
  *
3417
3627
  * @public
3418
3628
  */
3419
- declare const TsNempStr: 125;
3629
+ export declare const TsNempStr: 125;
3420
3630
 
3421
3631
  /**
3422
3632
  * Upstream BinTestOperator constant TsNeq. Its numeric value is preserved exactly.
@@ -3425,7 +3635,7 @@ declare const DplOut: 68;
3425
3635
  *
3426
3636
  * @public
3427
3637
  */
3428
- declare const TsNeq: 134;
3638
+ export declare const TsNeq: 134;
3429
3639
 
3430
3640
  /**
3431
3641
  * Upstream BinTestOperator constant TsNewer. Its numeric value is preserved exactly.
@@ -3434,7 +3644,7 @@ declare const DplOut: 68;
3434
3644
  *
3435
3645
  * @public
3436
3646
  */
3437
- declare const TsNewer: 130;
3647
+ export declare const TsNewer: 130;
3438
3648
 
3439
3649
  /**
3440
3650
  * Upstream UnTestOperator constant TsNmPipe. Its numeric value is preserved exactly.
@@ -3443,7 +3653,7 @@ declare const DplOut: 68;
3443
3653
  *
3444
3654
  * @public
3445
3655
  */
3446
- declare const TsNmPipe: 110;
3656
+ export declare const TsNmPipe: 110;
3447
3657
 
3448
3658
  /**
3449
3659
  * Upstream UnTestOperator constant TsNoEmpty. Its numeric value is preserved exactly.
@@ -3452,7 +3662,7 @@ declare const DplOut: 68;
3452
3662
  *
3453
3663
  * @public
3454
3664
  */
3455
- declare const TsNoEmpty: 122;
3665
+ export declare const TsNoEmpty: 122;
3456
3666
 
3457
3667
  /**
3458
3668
  * Upstream BinTestOperator constant TsNoMatch. Its numeric value is preserved exactly.
@@ -3461,7 +3671,7 @@ declare const DplOut: 68;
3461
3671
  *
3462
3672
  * @public
3463
3673
  */
3464
- declare const TsNoMatch: 46;
3674
+ export declare const TsNoMatch: 46;
3465
3675
 
3466
3676
  /**
3467
3677
  * Upstream UnTestOperator constant TsNot. Its numeric value is preserved exactly.
@@ -3470,7 +3680,7 @@ declare const DplOut: 68;
3470
3680
  *
3471
3681
  * @public
3472
3682
  */
3473
- declare const TsNot: 39;
3683
+ export declare const TsNot: 39;
3474
3684
 
3475
3685
  /**
3476
3686
  * Upstream BinTestOperator constant TsOlder. Its numeric value is preserved exactly.
@@ -3479,7 +3689,7 @@ declare const DplOut: 68;
3479
3689
  *
3480
3690
  * @public
3481
3691
  */
3482
- declare const TsOlder: 131;
3692
+ export declare const TsOlder: 131;
3483
3693
 
3484
3694
  /**
3485
3695
  * Upstream UnTestOperator constant TsOptSet. Its numeric value is preserved exactly.
@@ -3488,7 +3698,7 @@ declare const DplOut: 68;
3488
3698
  *
3489
3699
  * @public
3490
3700
  */
3491
- declare const TsOptSet: 126;
3701
+ export declare const TsOptSet: 126;
3492
3702
 
3493
3703
  /**
3494
3704
  * Upstream UnTestOperator constant TsParen. Its numeric value is preserved exactly.
@@ -3497,7 +3707,7 @@ declare const DplOut: 68;
3497
3707
  *
3498
3708
  * @public
3499
3709
  */
3500
- declare const TsParen: 27;
3710
+ export declare const TsParen: 27;
3501
3711
 
3502
3712
  /**
3503
3713
  * Upstream UnTestOperator constant TsRead. Its numeric value is preserved exactly.
@@ -3506,7 +3716,7 @@ declare const DplOut: 68;
3506
3716
  *
3507
3717
  * @public
3508
3718
  */
3509
- declare const TsRead: 119;
3719
+ export declare const TsRead: 119;
3510
3720
 
3511
3721
  /**
3512
3722
  * Upstream UnTestOperator constant TsRefVar. Its numeric value is preserved exactly.
@@ -3515,7 +3725,7 @@ declare const DplOut: 68;
3515
3725
  *
3516
3726
  * @public
3517
3727
  */
3518
- declare const TsRefVar: 128;
3728
+ export declare const TsRefVar: 128;
3519
3729
 
3520
3730
  /**
3521
3731
  * Upstream UnTestOperator constant TsRegFile. Its numeric value is preserved exactly.
@@ -3524,7 +3734,7 @@ declare const DplOut: 68;
3524
3734
  *
3525
3735
  * @public
3526
3736
  */
3527
- declare const TsRegFile: 106;
3737
+ export declare const TsRegFile: 106;
3528
3738
 
3529
3739
  /**
3530
3740
  * Upstream BinTestOperator constant TsReMatch. Its numeric value is preserved exactly.
@@ -3533,7 +3743,7 @@ declare const DplOut: 68;
3533
3743
  *
3534
3744
  * @public
3535
3745
  */
3536
- declare const TsReMatch: 129;
3746
+ export declare const TsReMatch: 129;
3537
3747
 
3538
3748
  /**
3539
3749
  * Upstream UnTestOperator constant TsSmbLink. Its numeric value is preserved exactly.
@@ -3542,7 +3752,7 @@ declare const DplOut: 68;
3542
3752
  *
3543
3753
  * @public
3544
3754
  */
3545
- declare const TsSmbLink: 112;
3755
+ export declare const TsSmbLink: 112;
3546
3756
 
3547
3757
  /**
3548
3758
  * Upstream UnTestOperator constant TsSocket. Its numeric value is preserved exactly.
@@ -3551,7 +3761,7 @@ declare const DplOut: 68;
3551
3761
  *
3552
3762
  * @public
3553
3763
  */
3554
- declare const TsSocket: 111;
3764
+ export declare const TsSocket: 111;
3555
3765
 
3556
3766
  /**
3557
3767
  * Upstream UnTestOperator constant TsSticky. Its numeric value is preserved exactly.
@@ -3560,7 +3770,7 @@ declare const DplOut: 68;
3560
3770
  *
3561
3771
  * @public
3562
3772
  */
3563
- declare const TsSticky: 113;
3773
+ export declare const TsSticky: 113;
3564
3774
 
3565
3775
  /**
3566
3776
  * Upstream UnTestOperator constant TsUIDSet. Its numeric value is preserved exactly.
@@ -3569,7 +3779,7 @@ declare const DplOut: 68;
3569
3779
  *
3570
3780
  * @public
3571
3781
  */
3572
- declare const TsUIDSet: 115;
3782
+ export declare const TsUIDSet: 115;
3573
3783
 
3574
3784
  /**
3575
3785
  * Upstream UnTestOperator constant TsUsrOwn. Its numeric value is preserved exactly.
@@ -3578,7 +3788,7 @@ declare const DplOut: 68;
3578
3788
  *
3579
3789
  * @public
3580
3790
  */
3581
- declare const TsUsrOwn: 117;
3791
+ export declare const TsUsrOwn: 117;
3582
3792
 
3583
3793
  /**
3584
3794
  * Upstream UnTestOperator constant TsVarSet. Its numeric value is preserved exactly.
@@ -3587,7 +3797,7 @@ declare const DplOut: 68;
3587
3797
  *
3588
3798
  * @public
3589
3799
  */
3590
- declare const TsVarSet: 127;
3800
+ export declare const TsVarSet: 127;
3591
3801
 
3592
3802
  /**
3593
3803
  * Upstream UnTestOperator constant TsWrite. Its numeric value is preserved exactly.
@@ -3596,7 +3806,7 @@ declare const DplOut: 68;
3596
3806
  *
3597
3807
  * @public
3598
3808
  */
3599
- declare const TsWrite: 120;
3809
+ export declare const TsWrite: 120;
3600
3810
 
3601
3811
  /**
3602
3812
  * An upstream interface containing a nil pointer of a concrete syntax.Node kind. This differs from a nil interface (null): the concrete Go type remains observable and can affect operations. Only interface-valued positions admit this tag; concrete pointer fields use null. No record fields or node bounds are stored on the tag.
@@ -3777,7 +3987,7 @@ declare const DplOut: 68;
3777
3987
  *
3778
3988
  * @public
3779
3989
  */
3780
- declare const UpperAll: 97;
3990
+ export declare const UpperAll: 97;
3781
3991
 
3782
3992
  /**
3783
3993
  * Upstream ParExpOperator constant UpperFirst. Its numeric value is preserved exactly.
@@ -3786,7 +3996,7 @@ declare const DplOut: 68;
3786
3996
  *
3787
3997
  * @public
3788
3998
  */
3789
- declare const UpperFirst: 96;
3999
+ export declare const UpperFirst: 96;
3790
4000
 
3791
4001
  /**
3792
4002
  * WhileClause represents a while or an until clause.
@@ -3861,7 +4071,7 @@ declare const DplOut: 68;
3861
4071
  *
3862
4072
  * @public
3863
4073
  */
3864
- declare const WordHdoc: 73;
4074
+ export declare const WordHdoc: 73;
3865
4075
 
3866
4076
  /**
3867
4077
  * WordIter represents the iteration of a variable over a series of words in a
@@ -4040,20 +4250,33 @@ declare const DplOut: 68;
4040
4250
  */
4041
4251
  export declare interface WrapperSpec {
4042
4252
  /**
4043
- * The literal, exact argv0 text (after quote/escape removal) that
4044
- * identifies this wrapper — e.g. `['env']`. Matched only against a
4045
- * `static: true` word; see {@link WrapperSpec}'s doc comment.
4253
+ * The command name that identifies this wrapper — e.g. `['env']`.
4254
+ * Matched only against a `static: true` word; see {@link WrapperSpec}'s
4255
+ * doc comment.
4256
+ *
4257
+ * Matching first searches the entire table for an exact name. Only when
4258
+ * no exact entry exists does it try an absolute path's final segment:
4259
+ *
4260
+ * 1. Its entire resolved text (after quote/escape removal) equals one of
4261
+ * `names`: `env`, or a path a caller listed verbatim. An exact path
4262
+ * entry takes precedence over a plain-name entry even if listed later.
4263
+ * 2. It is an **absolute path** (starts with `/`) whose final segment
4264
+ * equals one of `names`: `/usr/bin/env`, `/usr/bin/sudo`, `/opt/x/nice`
4265
+ * and `/usr//bin/env` resolve as `env`, `sudo` and `nice`. The chain
4266
+ * keeps the word as written, so a consumer still sees the path.
4267
+ *
4268
+ * Relative paths and paths with a trailing slash do not use the
4269
+ * final-segment fallback. They can still match an explicitly listed name,
4270
+ * such as `./with-retry` or `/opt/with-retry/`. Custom plain names also
4271
+ * acquire absolute-path aliases; a path-only name does not acquire aliases
4272
+ * for other paths with the same final segment.
4046
4273
  *
4047
- * Matching is **exact-name-only** — never basename matching. `sudo` does
4048
- * not match `/usr/bin/sudo` or `./sudo`; only a word whose *entire*
4049
- * resolved text equals one of `names` is recognized. This is a
4050
- * deliberate, narrower-than-real-world policy choice (a real shell would
4051
- * happily run `/usr/bin/sudo`), not an oversight: silently treating any
4052
- * path *ending in* a known wrapper name as that wrapper would be a
4053
- * different, broader matching policy this package isn't making on a
4054
- * caller's behalf. A caller who wants path-aware matching can express it
4055
- * explicitly via a custom {@link ResolveArgv0Options.transparentWrappers}
4056
- * table (e.g. `names: ['sudo', '/usr/bin/sudo']`).
4274
+ * This is a lexical analysis assumption, not executable identity:
4275
+ * `PATH` is not consulted and the filesystem is not read. Without an
4276
+ * exact override, an unrelated executable named `/opt/mytools/env` uses
4277
+ * the `env` entry's grammar. The chain preserves the original path so
4278
+ * callers can apply their own policy. A word with an expansion
4279
+ * (`"$dir/env"`) is not `static` and is never matched.
4057
4280
  */
4058
4281
  readonly names: readonly string[];
4059
4282
  /**
@@ -4154,7 +4377,7 @@ declare const DplOut: 68;
4154
4377
  *
4155
4378
  * @public
4156
4379
  */
4157
- declare const Xor: 96;
4380
+ export declare const Xor: 96;
4158
4381
 
4159
4382
  /**
4160
4383
  * Upstream BinAritOperator constant XorAssgn. Its numeric value is preserved exactly.
@@ -4163,7 +4386,7 @@ declare const DplOut: 68;
4163
4386
  *
4164
4387
  * @public
4165
4388
  */
4166
- declare const XorAssgn: 56;
4389
+ export declare const XorAssgn: 56;
4167
4390
 
4168
4391
  /**
4169
4392
  * Upstream BinAritOperator constant XorBool. Its numeric value is preserved exactly.
@@ -4172,7 +4395,7 @@ declare const DplOut: 68;
4172
4395
  *
4173
4396
  * @public
4174
4397
  */
4175
- declare const XorBool: 97;
4398
+ export declare const XorBool: 97;
4176
4399
 
4177
4400
  /**
4178
4401
  * Upstream BinAritOperator constant XorBoolAssgn. Its numeric value is preserved exactly.
@@ -4181,6 +4404,6 @@ declare const DplOut: 68;
4181
4404
  *
4182
4405
  * @public
4183
4406
  */
4184
- declare const XorBoolAssgn: 61;
4407
+ export declare const XorBoolAssgn: 61;
4185
4408
 
4186
4409
  export { }