parseman 0.60.4 → 0.60.5
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/dist/analysis/commitment.d.ts.map +1 -1
- package/dist/analysis/diagnostics.js +1 -1
- package/dist/cli/index.js +420 -420
- package/dist/cli/index.js.map +3 -3
- package/dist/combinators/parser.d.ts +34 -3
- package/dist/combinators/parser.d.ts.map +1 -1
- package/dist/compiler/compile-linkable-table.d.ts.map +1 -1
- package/dist/compiler/linker.d.ts +11 -3
- package/dist/compiler/linker.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -21
- package/dist/index.js.map +1 -1
- package/dist/plugin/evaluator.d.ts +3 -1
- package/dist/plugin/evaluator.d.ts.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +86 -71
- package/dist/plugin/index.js.map +1 -1
- package/dist/spec/index.js +3 -1
- package/dist/spec/index.js.map +1 -1
- package/dist/spec/model.d.ts.map +1 -1
- package/dist/table/index.js +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/analysis/commitment.ts +3 -1
- package/src/combinators/parser.ts +82 -9
- package/src/compiler/compile-linkable-table.ts +4 -1
- package/src/compiler/ir-serialize.ts +10 -4
- package/src/compiler/linker.ts +22 -12
- package/src/index.ts +1 -0
- package/src/plugin/evaluator.ts +16 -5
- package/src/plugin/index.ts +27 -104
- package/src/spec/model.ts +3 -1
- package/src/version.ts +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Combinator } from '../types.ts';
|
|
2
2
|
import type { HostMode } from '../cst/host-mode.ts';
|
|
3
|
+
import type { Runnable } from '../functional/run.ts';
|
|
3
4
|
import { NODE_TAG, NODE_TYPE, type GrammarWithReflection } from '../cst/reflection.ts';
|
|
4
5
|
/**
|
|
5
6
|
* Non-enumerable key on a `rules()` result holding the factory's declaration
|
|
@@ -7,6 +8,8 @@ import { NODE_TAG, NODE_TYPE, type GrammarWithReflection } from '../cst/reflecti
|
|
|
7
8
|
* reference-creation key order. Read by `parseman/spec` for source-order output.
|
|
8
9
|
*/
|
|
9
10
|
export declare const RULE_ORDER = "__parsemanRuleOrder";
|
|
11
|
+
/** The rule name a `prior.X` placeholder stands for (see `linkRules`), or `undefined`. */
|
|
12
|
+
export declare function priorNameOf(r: Combinator<unknown>): string | undefined;
|
|
10
13
|
/**
|
|
11
14
|
* Define named grammar rules without forward declarations.
|
|
12
15
|
*
|
|
@@ -92,8 +95,36 @@ type RuleMapNodeTag<T extends Record<string, Combinator<unknown>>> = {
|
|
|
92
95
|
[K in keyof T & string]: RuleNodeTag<T[K]>;
|
|
93
96
|
}[keyof T & string];
|
|
94
97
|
type RulesResult<T extends Record<string, Combinator<unknown>>> = T & GrammarWithReflection<RuleMapNodeType<T>, RuleMapNodeTag<T>>;
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
/**
|
|
99
|
+
* The second parameter of a `rules((g, prior) => …)` factory. `prior.X` is the
|
|
100
|
+
* definition of `X` that the grammars composed BEFORE this one gave it, with a
|
|
101
|
+
* top-level `node()` unwrapped to its body, so a composing grammar can re-reduce,
|
|
102
|
+
* wrap or extend an inherited rule without re-spelling it:
|
|
103
|
+
*
|
|
104
|
+
* rules((g, prior: PriorRules<typeof css>) => ({
|
|
105
|
+
* Value: node('Value', prior.Value, reduceValue),
|
|
106
|
+
* }))
|
|
107
|
+
*
|
|
108
|
+
* Naming the base grammar types `prior.X`, and a misspelled rule fails to compile.
|
|
109
|
+
*
|
|
110
|
+
* Its `g.X` references stay bound to the composition (open recursion). A rule's value
|
|
111
|
+
* is `unknown` here, because unwrapping a `node()` changes it. Unnamed, the parameter
|
|
112
|
+
* answers any string, which `noUncheckedIndexedAccess` reads as possibly undefined.
|
|
113
|
+
* See `docs/guide/extending.md`.
|
|
114
|
+
*/
|
|
115
|
+
export type PriorRules<Base = Record<string, Combinator<unknown>>> = [
|
|
116
|
+
KnownRuleNames<Base>
|
|
117
|
+
] extends [never] ? {
|
|
118
|
+
readonly [name: string]: Combinator<unknown>;
|
|
119
|
+
} : {
|
|
120
|
+
readonly [K in KnownRuleNames<Base>]: Combinator<unknown>;
|
|
121
|
+
};
|
|
122
|
+
/** The rule names a grammar's type spells out: not its index signature, if it has one. */
|
|
123
|
+
export type KnownRuleNames<Base> = keyof {
|
|
124
|
+
[K in keyof Base as string extends K ? never : number extends K ? never : Base[K] extends Combinator<unknown> | Runnable ? K : never]: unknown;
|
|
125
|
+
} & string;
|
|
126
|
+
export declare function rules<T extends Record<string, Combinator<unknown>>, P extends object = PriorRules>(factory: (self: any, prior: P) => T): RulesResult<T>;
|
|
127
|
+
export declare function rules<T extends Record<string, Combinator<unknown>>, P extends object = PriorRules>(options: RulesOptions, factory: (self: any, prior: P) => T): RulesResult<T>;
|
|
97
128
|
/**
|
|
98
129
|
* The recipe a `rules()` result was built from — its factory and options —
|
|
99
130
|
* non-enumerable, in piece order. Runtime `compose()` links grammars by running
|
|
@@ -103,7 +134,7 @@ export declare function rules<T extends Record<string, Combinator<unknown>>>(opt
|
|
|
103
134
|
*/
|
|
104
135
|
export declare const RULES_RECIPE: unique symbol;
|
|
105
136
|
export type RulesRecipe = {
|
|
106
|
-
readonly factory: (self: Record<string, Combinator<unknown
|
|
137
|
+
readonly factory: (self: Record<string, Combinator<unknown>>, prior: PriorRules) => Record<string, Combinator<unknown>>;
|
|
107
138
|
readonly options: RulesOptions | undefined;
|
|
108
139
|
};
|
|
109
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/combinators/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/combinators/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-linkable-table.d.ts","sourceRoot":"","sources":["../../src/compiler/compile-linkable-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"compile-linkable-table.d.ts","sourceRoot":"","sources":["../../src/compiler/compile-linkable-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAIvF,OAAO,EAA0C,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAC/G,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,CAAC,EAAE,MAAM,CAAA;IACT,EAAE,EAAE,MAAM,CAAA;IACV,sEAAsE;IACtE,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,sEAAsE;IACtE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;IACzB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;IACvC,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;OAKG;IACH,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB;;;;;;;;;OASG;IACH,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC9D,QAAQ,EAAE,QAAQ,CAAA;IAClB,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAA;IAC1B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,iBAAiB,CAAA;CAC9B,CAAA;AA2CD,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EACjE,EAAE,EAAE,MAAM,EACV,IAAI,GAAE,oBAAyB,GAC9B,aAAa,GAAG,IAAI,CAwDtB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type HostMode } from '../cst/host-mode.ts';
|
|
2
2
|
import { type LinkableTable } from './compile-linkable-table.ts';
|
|
3
|
+
import { type KnownRuleNames } from '../combinators/parser.ts';
|
|
3
4
|
import type { BuildHost, Combinator, CstCollapsePredicate, ParseContext, ParseResult } from '../types.ts';
|
|
4
5
|
import type { Runnable } from '../functional/run.ts';
|
|
5
6
|
export declare function linkable(rulesMap: Record<string, Combinator<unknown>>, ns?: string, trivia?: Combinator<unknown>, hostMode?: HostMode): LinkableTable;
|
|
@@ -111,6 +112,13 @@ export declare function linkedWinnersOf(rule: Combinator<unknown>): Record<strin
|
|
|
111
112
|
export declare function danglingReference(map: Record<string, Combinator<unknown>>,
|
|
112
113
|
/** Names read through `g` that `map` itself does not hold (a merge-by-name fuse drops them). */
|
|
113
114
|
accessed?: Iterable<string>): string | undefined;
|
|
115
|
+
/** The rules each item spells out. An item that spells out none, such as a plain
|
|
116
|
+
* `Record<string, …>`, could hold anything, so the whole result stays open. */
|
|
117
|
+
type ItemRuleNames<Item> = Item extends unknown ? [KnownRuleNames<Item>] extends [never] ? string : KnownRuleNames<Item> : never;
|
|
118
|
+
/** A composition's rules: every name its items spell out, plus lookup by any string. */
|
|
119
|
+
export type ComposedRules<Items extends readonly unknown[]> = Record<string, Runnable> & {
|
|
120
|
+
[K in ItemRuleNames<Items[number]>]: Runnable;
|
|
121
|
+
};
|
|
114
122
|
/**
|
|
115
123
|
* Compose grammars into ONE parser map — the only public composition entry point.
|
|
116
124
|
* `compose([base, ext, …])`: a later entry's rule WINS by name, and because every
|
|
@@ -127,7 +135,7 @@ accessed?: Iterable<string>): string | undefined;
|
|
|
127
135
|
* costs a walk of the items' declared names. For speed, `compile()` a rule of it;
|
|
128
136
|
* `compile()` specialises when the environment allows and falls back under CSP.
|
|
129
137
|
*/
|
|
130
|
-
export declare function compose
|
|
138
|
+
export declare function compose<const Items extends ReadonlyArray<LinkableTable | Record<string, unknown>>>(items: Items,
|
|
131
139
|
/**
|
|
132
140
|
* Host mode for the composed grammar, same meaning as `compile(g, { hostMode })`.
|
|
133
141
|
* The interpreter routes by host at parse time; this records `'cst'` on every rule
|
|
@@ -135,7 +143,7 @@ export declare function compose(items: Array<LinkableTable | Record<string, unkn
|
|
|
135
143
|
*/
|
|
136
144
|
opts?: {
|
|
137
145
|
hostMode?: HostMode;
|
|
138
|
-
}):
|
|
146
|
+
}): ComposedRules<Items>;
|
|
139
147
|
/**
|
|
140
148
|
* Compose a TERMINAL grammar: a leaf parser that overlays local semantic reductions
|
|
141
149
|
* on reusable recognition rules. Under the macro it lowers to a static table exactly
|
|
@@ -144,7 +152,7 @@ opts?: {
|
|
|
144
152
|
* At runtime it is the same lazy link as `compose()`, marked terminal. The bench and
|
|
145
153
|
* differential harnesses import un-macro'd grammar modules and run this path.
|
|
146
154
|
*/
|
|
147
|
-
export declare function composeLeaf
|
|
155
|
+
export declare function composeLeaf<const Items extends ReadonlyArray<LinkableTable | Record<string, unknown>>>(items: Items): ComposedRules<Items>;
|
|
148
156
|
/** Whether `map` is a runtime composition (a combinator map) rather than a
|
|
149
157
|
* build-compiled one (a table). INTERNAL — diagnostics only. */
|
|
150
158
|
export declare function isInterpretedFuse(map: object): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../../src/compiler/linker.ts"],"names":[],"mappings":"AAeA,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACvF,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"linker.d.ts","sourceRoot":"","sources":["../../src/compiler/linker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export type { AttemptOptions } from './combinators/attempt.ts';
|
|
|
13
13
|
export { many, oneOrMore, optional, sepBy, oneOrMoreSep, keepSeparator } from './combinators/repeat.ts';
|
|
14
14
|
export type { RepeatOptions, SepByOptions, TrailingSeparator, KeptSeparator } from './combinators/repeat.ts';
|
|
15
15
|
export { rules } from './combinators/parser.ts';
|
|
16
|
+
export type { PriorRules } from './combinators/parser.ts';
|
|
16
17
|
export { ref } from './combinators/ref.ts';
|
|
17
18
|
export { not } from './combinators/not.ts';
|
|
18
19
|
export { peek } from './combinators/peek.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE7S,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAS9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE7E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AACtH,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC7M,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvG,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEvG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACxF,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAClE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAuB5C,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAC1H,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAepE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACjG,YAAY,EACV,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EACpE,kBAAkB,EAAE,eAAe,GACpC,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAChH,YAAY,EACV,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EACtE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,GACvD,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAK5D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAC9G,YAAY,EACV,UAAU,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,WAAW,EACpE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,wBAAwB,EACpF,aAAa,EAAE,cAAc,EAAE,gBAAgB,GAChD,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC7G,YAAY,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACzF,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACnH,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EACL,kBAAkB,EAAE,uBAAuB,EAAE,yBAAyB,EACtE,uBAAuB,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAC3E,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,GAChE,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,IAAI,EACxE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAC5D,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EACvG,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAgBlC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACzE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAE1E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxJ,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC7E,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE5G,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAQtF,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC7F,OAAO,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,8BAA8B,EAAE,mCAAmC,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,kCAAkC,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACrR,YAAY,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC9N,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC1E,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC1G,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC7E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4713,11 +4713,16 @@ function tagRule(r, key) {
|
|
|
4713
4713
|
function isDefinableRef(v) {
|
|
4714
4714
|
return !!v && typeof v === "object" && "_def" in v && v._def.tag === "lazy" && typeof v.define === "function";
|
|
4715
4715
|
}
|
|
4716
|
+
function priorNameOf(r) {
|
|
4717
|
+
return r._priorOf;
|
|
4718
|
+
}
|
|
4716
4719
|
function ruleNameOf(r) {
|
|
4717
4720
|
return r._ruleName;
|
|
4718
4721
|
}
|
|
4719
4722
|
function isNamedRuleRefForAnotherRule(r, key) {
|
|
4720
|
-
|
|
4723
|
+
if (r._def.tag !== "lazy") return false;
|
|
4724
|
+
if (priorNameOf(r) !== void 0) return true;
|
|
4725
|
+
const name = ruleNameOf(r);
|
|
4721
4726
|
return name !== void 0 && name !== key;
|
|
4722
4727
|
}
|
|
4723
4728
|
var claimedRules = /* @__PURE__ */ new WeakSet();
|
|
@@ -4730,6 +4735,20 @@ function ownRule(p, copies) {
|
|
|
4730
4735
|
}
|
|
4731
4736
|
return own;
|
|
4732
4737
|
}
|
|
4738
|
+
var priorUnfilled = (key) => new Error(`compose: prior.${key} is read, but no grammar composed before it defines "${key}"`);
|
|
4739
|
+
function priorHole(key) {
|
|
4740
|
+
const unfilled = priorUnfilled(key);
|
|
4741
|
+
const fail = () => {
|
|
4742
|
+
throw unfilled;
|
|
4743
|
+
};
|
|
4744
|
+
return {
|
|
4745
|
+
_tag: "lazy",
|
|
4746
|
+
_meta: { firstSet: any(), canMatchNewline: true, isTrivia: false },
|
|
4747
|
+
_def: { tag: "lazy", thunk: fail },
|
|
4748
|
+
parse: fail,
|
|
4749
|
+
_priorOf: key
|
|
4750
|
+
};
|
|
4751
|
+
}
|
|
4733
4752
|
function rules(a, b) {
|
|
4734
4753
|
const factory = typeof a === "function" ? a : b;
|
|
4735
4754
|
const options = typeof a === "function" ? b : a;
|
|
@@ -4754,8 +4773,20 @@ function linkRules(recipes, link) {
|
|
|
4754
4773
|
}
|
|
4755
4774
|
});
|
|
4756
4775
|
const winners = /* @__PURE__ */ new Map();
|
|
4776
|
+
const priorHoles = /* @__PURE__ */ new Map();
|
|
4777
|
+
const prior = new Proxy({}, {
|
|
4778
|
+
get(_target, key) {
|
|
4779
|
+
if (typeof key !== "string") return void 0;
|
|
4780
|
+
const earlier = winners.get(key)?.parser;
|
|
4781
|
+
if (earlier !== void 0) return earlier._def.tag === "node" ? earlier._def.parser : earlier;
|
|
4782
|
+
if (link !== void 0) throw priorUnfilled(key);
|
|
4783
|
+
let hole = priorHoles.get(key);
|
|
4784
|
+
if (hole === void 0) priorHoles.set(key, hole = priorHole(key));
|
|
4785
|
+
return hole;
|
|
4786
|
+
}
|
|
4787
|
+
});
|
|
4757
4788
|
for (const recipe of recipes) {
|
|
4758
|
-
const definitions = recipe.factory(proxy);
|
|
4789
|
+
const definitions = recipe.factory(proxy, prior);
|
|
4759
4790
|
for (const key of Object.keys(definitions)) {
|
|
4760
4791
|
winners.set(key, { parser: definitions[key], options: recipe.options });
|
|
4761
4792
|
}
|
|
@@ -7304,7 +7335,8 @@ function classifyRuleMap(ruleMap) {
|
|
|
7304
7335
|
resolved = void 0;
|
|
7305
7336
|
}
|
|
7306
7337
|
if (resolved === void 0) {
|
|
7307
|
-
|
|
7338
|
+
const hole = p;
|
|
7339
|
+
if (hole._ruleName !== void 0 || hole._priorOf !== void 0) externalRefs.add(p);
|
|
7308
7340
|
return;
|
|
7309
7341
|
}
|
|
7310
7342
|
scanExternal(resolved);
|
|
@@ -13871,7 +13903,7 @@ function clearOf(ranges, input, from, to) {
|
|
|
13871
13903
|
}
|
|
13872
13904
|
|
|
13873
13905
|
// src/version.ts
|
|
13874
|
-
var PARSEMAN_VERSION = "0.60.
|
|
13906
|
+
var PARSEMAN_VERSION = "0.60.5";
|
|
13875
13907
|
|
|
13876
13908
|
// src/table/assemble.ts
|
|
13877
13909
|
import { PlainBuf as PlainBuf2, PlainField, PlainLeaf as PlainLeaf9, PlainNode as PlainNode2, PlainSpan as PlainSpan10 } from "./cst/plain.js";
|
|
@@ -18024,7 +18056,7 @@ function buildGrammarPlan(entry, winners) {
|
|
|
18024
18056
|
const dispatches = /* @__PURE__ */ new Map();
|
|
18025
18057
|
const attempts = /* @__PURE__ */ new Map();
|
|
18026
18058
|
const labels = /* @__PURE__ */ new Map();
|
|
18027
|
-
const
|
|
18059
|
+
const rules3 = /* @__PURE__ */ new Map();
|
|
18028
18060
|
const winnerNames = /* @__PURE__ */ new Map();
|
|
18029
18061
|
if (winners) {
|
|
18030
18062
|
for (const [name, winner] of Object.entries(winners)) {
|
|
@@ -18058,7 +18090,7 @@ function buildGrammarPlan(entry, winners) {
|
|
|
18058
18090
|
const ownRule2 = (parser2, rule) => {
|
|
18059
18091
|
const id = `rule:${rule}`;
|
|
18060
18092
|
definitions.set(id, { id, kind: "rule" });
|
|
18061
|
-
|
|
18093
|
+
rules3.set(parser2, id);
|
|
18062
18094
|
};
|
|
18063
18095
|
const seen = /* @__PURE__ */ new Set();
|
|
18064
18096
|
const visit = (parser2, path) => {
|
|
@@ -18098,7 +18130,7 @@ function buildGrammarPlan(entry, winners) {
|
|
|
18098
18130
|
}
|
|
18099
18131
|
visit(body ?? root, name);
|
|
18100
18132
|
}
|
|
18101
|
-
return { definitions: [...definitions.values()].sort((a, b) => a.id.localeCompare(b.id)), choices, dispatches, attempts, labels, rules:
|
|
18133
|
+
return { definitions: [...definitions.values()].sort((a, b) => a.id.localeCompare(b.id)), choices, dispatches, attempts, labels, rules: rules3 };
|
|
18102
18134
|
}
|
|
18103
18135
|
|
|
18104
18136
|
// src/analysis/duplication.ts
|
|
@@ -19891,6 +19923,8 @@ var Serializer = class {
|
|
|
19891
19923
|
localRuleNames = /* @__PURE__ */ new Map();
|
|
19892
19924
|
ruleMap;
|
|
19893
19925
|
scanSkip;
|
|
19926
|
+
/** Whether any rule reads a `prior.X` hole, so the factory takes `(g, prior)`. */
|
|
19927
|
+
usesPrior = false;
|
|
19894
19928
|
accessed;
|
|
19895
19929
|
referenced = /* @__PURE__ */ new Set();
|
|
19896
19930
|
constructor(ruleMap, scanSkip = [], accessed = []) {
|
|
@@ -19911,7 +19945,7 @@ var Serializer = class {
|
|
|
19911
19945
|
if (seen.has(c)) return;
|
|
19912
19946
|
seen.add(c);
|
|
19913
19947
|
if (c._def.tag === "lazy") {
|
|
19914
|
-
if (ruleNameOf4(c) !== void 0) throw new Unserializable("scanSkip unit references a grammar rule");
|
|
19948
|
+
if (ruleNameOf4(c) !== void 0 || priorNameOf(c) !== void 0) throw new Unserializable("scanSkip unit references a grammar rule");
|
|
19915
19949
|
const target = lazyTarget(c);
|
|
19916
19950
|
if (target) this.assertNoRuleRef(target, seen);
|
|
19917
19951
|
return;
|
|
@@ -19975,9 +20009,10 @@ var Serializer = class {
|
|
|
19975
20009
|
for (const name of this.accessed) {
|
|
19976
20010
|
if (!this.referenced.has(name)) innerDecls.push(`void g[${JSON.stringify(name)}]`);
|
|
19977
20011
|
}
|
|
19978
|
-
const
|
|
20012
|
+
const params = this.usesPrior ? "(g, prior)" : "(g)";
|
|
20013
|
+
const factory = innerDecls.length === 0 ? `${params} => ({
|
|
19979
20014
|
${body}
|
|
19980
|
-
})` :
|
|
20015
|
+
})` : `${params} => {
|
|
19981
20016
|
${innerDecls.map((d) => " " + d).join("\n")}
|
|
19982
20017
|
return ({
|
|
19983
20018
|
${body}
|
|
@@ -19994,6 +20029,10 @@ ${outerDecls.map((d) => " " + d).join("\n")}
|
|
|
19994
20029
|
analyze(c, active) {
|
|
19995
20030
|
const def = c._def;
|
|
19996
20031
|
if (def.tag === "lazy") {
|
|
20032
|
+
if (priorNameOf(c) !== void 0) {
|
|
20033
|
+
this.usesPrior = true;
|
|
20034
|
+
return;
|
|
20035
|
+
}
|
|
19997
20036
|
if (ruleNameOf4(c) !== void 0) return;
|
|
19998
20037
|
const target = lazyTarget(c);
|
|
19999
20038
|
if (!target) throw new Unserializable("unresolved unnamed ref");
|
|
@@ -20072,6 +20111,8 @@ ${outerDecls.map((d) => " " + d).join("\n")}
|
|
|
20072
20111
|
}
|
|
20073
20112
|
switch (def.tag) {
|
|
20074
20113
|
case "lazy": {
|
|
20114
|
+
const prior = priorNameOf(c);
|
|
20115
|
+
if (prior !== void 0) return `prior[${JSON.stringify(prior)}]`;
|
|
20075
20116
|
const name = this.localRuleNames.get(c) ?? ruleNameOf4(c);
|
|
20076
20117
|
if (name !== void 0) {
|
|
20077
20118
|
this.referenced.add(name);
|
|
@@ -20252,7 +20293,8 @@ function externalNames(ruleMap) {
|
|
|
20252
20293
|
resolved = void 0;
|
|
20253
20294
|
}
|
|
20254
20295
|
if (resolved === void 0) {
|
|
20255
|
-
const
|
|
20296
|
+
const prior = priorNameOf(p);
|
|
20297
|
+
const name = prior === void 0 ? p._ruleName : `prior.${prior}`;
|
|
20256
20298
|
if (name !== void 0 && !out.includes(name)) out.push(name);
|
|
20257
20299
|
return;
|
|
20258
20300
|
}
|
|
@@ -20345,9 +20387,9 @@ function carriedRuleMapsDetailed(carried) {
|
|
|
20345
20387
|
const maps = [];
|
|
20346
20388
|
const opaque = [];
|
|
20347
20389
|
for (const p of carried) {
|
|
20348
|
-
const
|
|
20349
|
-
if (
|
|
20350
|
-
maps.push(
|
|
20390
|
+
const rules3 = ruleMapOfCarried(p);
|
|
20391
|
+
if (rules3 !== void 0) {
|
|
20392
|
+
maps.push(rules3);
|
|
20351
20393
|
continue;
|
|
20352
20394
|
}
|
|
20353
20395
|
opaque.push({ ns: p.ns, ruleNames: isIRPiece(p) ? [] : [...p.keys] });
|
|
@@ -20358,7 +20400,7 @@ function recoverComposedRules(grammar) {
|
|
|
20358
20400
|
const carried = composedPiecesOf(grammar);
|
|
20359
20401
|
if (carried === void 0) return void 0;
|
|
20360
20402
|
const { maps, opaque } = carriedRuleMapsDetailed(carried);
|
|
20361
|
-
const
|
|
20403
|
+
const rules3 = /* @__PURE__ */ new Map();
|
|
20362
20404
|
for (const map of maps) for (const [name, rule] of map) {
|
|
20363
20405
|
if (rule._def.tag === "lazy") {
|
|
20364
20406
|
try {
|
|
@@ -20367,9 +20409,9 @@ function recoverComposedRules(grammar) {
|
|
|
20367
20409
|
continue;
|
|
20368
20410
|
}
|
|
20369
20411
|
}
|
|
20370
|
-
|
|
20412
|
+
rules3.set(name, rule);
|
|
20371
20413
|
}
|
|
20372
|
-
return { rules:
|
|
20414
|
+
return { rules: rules3, opaque };
|
|
20373
20415
|
}
|
|
20374
20416
|
function composedCoverageRules(grammar) {
|
|
20375
20417
|
const link = grammar[LINKED];
|
|
@@ -21282,12 +21324,12 @@ function inSet(code, fs) {
|
|
|
21282
21324
|
var TERMINAL_TAGS = /* @__PURE__ */ new Set(["literal", "regex", "keywords", "scanTo"]);
|
|
21283
21325
|
var INSTRUMENTABLE = /* @__PURE__ */ new Set(["firstMatch", "sharedPrefix"]);
|
|
21284
21326
|
function profileWastedWork(opts) {
|
|
21285
|
-
const { rules:
|
|
21286
|
-
const { walked, unresolvedRoots } = walkRules(
|
|
21287
|
-
const entryParser = typeof opts.entry === "string" ?
|
|
21327
|
+
const { rules: rules3, corpus } = opts;
|
|
21328
|
+
const { walked, unresolvedRoots } = walkRules(rules3);
|
|
21329
|
+
const entryParser = typeof opts.entry === "string" ? rules3.find(([n]) => n === opts.entry)?.[1] : opts.entry;
|
|
21288
21330
|
if (entryParser === void 0) {
|
|
21289
21331
|
throw new TypeError(
|
|
21290
|
-
`choice-cost: entry rule '${String(opts.entry)}' is not in the rule map (have: ${
|
|
21332
|
+
`choice-cost: entry rule '${String(opts.entry)}' is not in the rule map (have: ${rules3.map(([n]) => n).slice(0, 12).join(", ")}${rules3.length > 12 ? ", \u2026" : ""}).`
|
|
21291
21333
|
);
|
|
21292
21334
|
}
|
|
21293
21335
|
if (corpus.length === 0) {
|