@lezer/common 0.15.10 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +206 -76
- package/dist/index.d.ts +1 -1
- package/dist/index.js +206 -77
- package/dist/mix.d.ts +3 -3
- package/dist/tree.d.ts +48 -29
- package/package.json +1 -1
- package/dist/composite.d.ts +0 -42
- package/dist/frame.d.ts +0 -25
- package/dist/scaffold.d.ts +0 -25
- package/dist/tree.cjs +0 -1156
- package/dist/tree.cjs.map +0 -1
- package/dist/tree.es.js +0 -1143
- package/dist/tree.es.js.map +0 -1
package/dist/tree.d.ts
CHANGED
|
@@ -62,6 +62,12 @@ export declare class NodeSet {
|
|
|
62
62
|
constructor(types: readonly NodeType[]);
|
|
63
63
|
extend(...props: NodePropSource[]): NodeSet;
|
|
64
64
|
}
|
|
65
|
+
export declare enum IterMode {
|
|
66
|
+
ExcludeBuffers = 1,
|
|
67
|
+
IncludeAnonymous = 2,
|
|
68
|
+
IgnoreMounts = 4,
|
|
69
|
+
IgnoreOverlays = 8
|
|
70
|
+
}
|
|
65
71
|
export declare class Tree {
|
|
66
72
|
readonly type: NodeType;
|
|
67
73
|
readonly children: readonly (Tree | TreeBuffer)[];
|
|
@@ -69,16 +75,17 @@ export declare class Tree {
|
|
|
69
75
|
readonly length: number;
|
|
70
76
|
constructor(type: NodeType, children: readonly (Tree | TreeBuffer)[], positions: readonly number[], length: number, props?: readonly [NodeProp<any> | number, any][]);
|
|
71
77
|
static empty: Tree;
|
|
72
|
-
cursor(
|
|
73
|
-
|
|
78
|
+
cursor(mode?: IterMode): TreeCursor;
|
|
79
|
+
cursorAt(pos: number, side?: -1 | 0 | 1, mode?: IterMode): TreeCursor;
|
|
74
80
|
get topNode(): SyntaxNode;
|
|
75
81
|
resolve(pos: number, side?: -1 | 0 | 1): SyntaxNode;
|
|
76
82
|
resolveInner(pos: number, side?: -1 | 0 | 1): SyntaxNode;
|
|
77
83
|
iterate(spec: {
|
|
78
|
-
enter(
|
|
79
|
-
leave?(
|
|
84
|
+
enter(node: SyntaxNodeRef): boolean | void;
|
|
85
|
+
leave?(node: SyntaxNodeRef): void;
|
|
80
86
|
from?: number;
|
|
81
87
|
to?: number;
|
|
88
|
+
mode?: IterMode;
|
|
82
89
|
}): void;
|
|
83
90
|
prop<T>(prop: NodeProp<T>): T | undefined;
|
|
84
91
|
get propValues(): readonly [NodeProp<any> | number, any][];
|
|
@@ -113,27 +120,31 @@ export declare class TreeBuffer {
|
|
|
113
120
|
readonly set: NodeSet;
|
|
114
121
|
constructor(buffer: Uint16Array, length: number, set: NodeSet);
|
|
115
122
|
}
|
|
116
|
-
export interface
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
123
|
+
export interface SyntaxNodeRef {
|
|
124
|
+
readonly from: number;
|
|
125
|
+
readonly to: number;
|
|
126
|
+
readonly type: NodeType;
|
|
127
|
+
readonly name: string;
|
|
128
|
+
readonly tree: Tree | null;
|
|
129
|
+
readonly node: SyntaxNode;
|
|
130
|
+
}
|
|
131
|
+
export interface SyntaxNode extends SyntaxNodeRef {
|
|
121
132
|
parent: SyntaxNode | null;
|
|
122
133
|
firstChild: SyntaxNode | null;
|
|
123
134
|
lastChild: SyntaxNode | null;
|
|
124
135
|
childAfter(pos: number): SyntaxNode | null;
|
|
125
136
|
childBefore(pos: number): SyntaxNode | null;
|
|
126
|
-
enter(pos: number, side: -1 | 0 | 1,
|
|
137
|
+
enter(pos: number, side: -1 | 0 | 1, mode?: IterMode): SyntaxNode | null;
|
|
127
138
|
nextSibling: SyntaxNode | null;
|
|
128
139
|
prevSibling: SyntaxNode | null;
|
|
129
|
-
cursor: TreeCursor;
|
|
140
|
+
cursor(mode?: IterMode): TreeCursor;
|
|
130
141
|
resolve(pos: number, side?: -1 | 0 | 1): SyntaxNode;
|
|
131
142
|
resolveInner(pos: number, side?: -1 | 0 | 1): SyntaxNode;
|
|
132
143
|
enterUnfinishedNodesBefore(pos: number): SyntaxNode;
|
|
133
|
-
tree: Tree | null;
|
|
134
144
|
toTree(): Tree;
|
|
135
145
|
getChild(type: string | number, before?: string | number | null, after?: string | number | null): SyntaxNode | null;
|
|
136
146
|
getChildren(type: string | number, before?: string | number | null, after?: string | number | null): SyntaxNode[];
|
|
147
|
+
matchContext(context: readonly string[]): boolean;
|
|
137
148
|
}
|
|
138
149
|
declare const enum Side {
|
|
139
150
|
Before = -2,
|
|
@@ -143,31 +154,26 @@ declare const enum Side {
|
|
|
143
154
|
After = 2,
|
|
144
155
|
DontCare = 4
|
|
145
156
|
}
|
|
146
|
-
export declare const enum Mode {
|
|
147
|
-
Full = 1,
|
|
148
|
-
NoEnterBuffer = 2
|
|
149
|
-
}
|
|
150
157
|
export declare class TreeNode implements SyntaxNode {
|
|
151
|
-
readonly
|
|
152
|
-
readonly
|
|
158
|
+
readonly _tree: Tree;
|
|
159
|
+
readonly from: number;
|
|
153
160
|
readonly index: number;
|
|
154
161
|
readonly _parent: TreeNode | null;
|
|
155
|
-
constructor(
|
|
162
|
+
constructor(_tree: Tree, from: number, index: number, _parent: TreeNode | null);
|
|
156
163
|
get type(): NodeType;
|
|
157
164
|
get name(): string;
|
|
158
|
-
get from(): number;
|
|
159
165
|
get to(): number;
|
|
160
|
-
nextChild(i: number, dir: 1 | -1, pos: number, side: Side, mode?:
|
|
166
|
+
nextChild(i: number, dir: 1 | -1, pos: number, side: Side, mode?: IterMode): TreeNode | BufferNode | null;
|
|
161
167
|
get firstChild(): TreeNode | BufferNode;
|
|
162
168
|
get lastChild(): TreeNode | BufferNode;
|
|
163
169
|
childAfter(pos: number): TreeNode | BufferNode;
|
|
164
170
|
childBefore(pos: number): TreeNode | BufferNode;
|
|
165
|
-
enter(pos: number, side: -1 | 0 | 1,
|
|
171
|
+
enter(pos: number, side: -1 | 0 | 1, mode?: number): TreeNode | BufferNode;
|
|
166
172
|
nextSignificantParent(): TreeNode;
|
|
167
173
|
get parent(): TreeNode;
|
|
168
174
|
get nextSibling(): TreeNode | BufferNode;
|
|
169
175
|
get prevSibling(): TreeNode | BufferNode;
|
|
170
|
-
|
|
176
|
+
cursor(mode?: IterMode): TreeCursor;
|
|
171
177
|
get tree(): Tree;
|
|
172
178
|
toTree(): Tree;
|
|
173
179
|
resolve(pos: number, side?: -1 | 0 | 1): SyntaxNode;
|
|
@@ -175,6 +181,8 @@ export declare class TreeNode implements SyntaxNode {
|
|
|
175
181
|
enterUnfinishedNodesBefore(pos: number): SyntaxNode;
|
|
176
182
|
getChild(type: string | number, before?: string | number | null, after?: string | number | null): SyntaxNode;
|
|
177
183
|
getChildren(type: string | number, before?: string | number | null, after?: string | number | null): SyntaxNode[];
|
|
184
|
+
get node(): this;
|
|
185
|
+
matchContext(context: readonly string[]): boolean;
|
|
178
186
|
}
|
|
179
187
|
declare class BufferContext {
|
|
180
188
|
readonly parent: TreeNode;
|
|
@@ -197,12 +205,12 @@ declare class BufferNode implements SyntaxNode {
|
|
|
197
205
|
get lastChild(): BufferNode;
|
|
198
206
|
childAfter(pos: number): BufferNode;
|
|
199
207
|
childBefore(pos: number): BufferNode;
|
|
200
|
-
enter(pos: number, side: -1 | 0 | 1,
|
|
208
|
+
enter(pos: number, side: -1 | 0 | 1, mode?: IterMode): BufferNode;
|
|
201
209
|
get parent(): TreeNode | BufferNode;
|
|
202
210
|
externalSibling(dir: 1 | -1): TreeNode | BufferNode;
|
|
203
211
|
get nextSibling(): SyntaxNode | null;
|
|
204
212
|
get prevSibling(): SyntaxNode | null;
|
|
205
|
-
|
|
213
|
+
cursor(mode?: IterMode): TreeCursor;
|
|
206
214
|
get tree(): any;
|
|
207
215
|
toTree(): Tree;
|
|
208
216
|
resolve(pos: number, side?: -1 | 0 | 1): SyntaxNode;
|
|
@@ -210,15 +218,15 @@ declare class BufferNode implements SyntaxNode {
|
|
|
210
218
|
enterUnfinishedNodesBefore(pos: number): SyntaxNode;
|
|
211
219
|
getChild(type: string | number, before?: string | number | null, after?: string | number | null): SyntaxNode;
|
|
212
220
|
getChildren(type: string | number, before?: string | number | null, after?: string | number | null): SyntaxNode[];
|
|
221
|
+
get node(): this;
|
|
222
|
+
matchContext(context: readonly string[]): boolean;
|
|
213
223
|
}
|
|
214
|
-
export declare class TreeCursor {
|
|
224
|
+
export declare class TreeCursor implements SyntaxNodeRef {
|
|
215
225
|
type: NodeType;
|
|
216
226
|
get name(): string;
|
|
217
227
|
from: number;
|
|
218
228
|
to: number;
|
|
219
|
-
private buffer;
|
|
220
229
|
private stack;
|
|
221
|
-
private index;
|
|
222
230
|
private bufferNode;
|
|
223
231
|
private yieldNode;
|
|
224
232
|
private yieldBuf;
|
|
@@ -227,7 +235,7 @@ export declare class TreeCursor {
|
|
|
227
235
|
lastChild(): boolean;
|
|
228
236
|
childAfter(pos: number): boolean;
|
|
229
237
|
childBefore(pos: number): boolean;
|
|
230
|
-
enter(pos: number, side: -1 | 0 | 1,
|
|
238
|
+
enter(pos: number, side: -1 | 0 | 1, mode?: IterMode): boolean;
|
|
231
239
|
parent(): boolean;
|
|
232
240
|
nextSibling(): boolean;
|
|
233
241
|
prevSibling(): boolean;
|
|
@@ -238,5 +246,16 @@ export declare class TreeCursor {
|
|
|
238
246
|
moveTo(pos: number, side?: -1 | 0 | 1): this;
|
|
239
247
|
get node(): SyntaxNode;
|
|
240
248
|
get tree(): Tree | null;
|
|
249
|
+
iterate(enter: (node: SyntaxNodeRef) => boolean | void, leave?: (node: SyntaxNodeRef) => void): void;
|
|
250
|
+
matchContext(context: readonly string[]): boolean;
|
|
251
|
+
}
|
|
252
|
+
export declare class NodeWeakMap<T> {
|
|
253
|
+
private map;
|
|
254
|
+
private setBuffer;
|
|
255
|
+
private getBuffer;
|
|
256
|
+
set(node: SyntaxNode, value: T): void;
|
|
257
|
+
get(node: SyntaxNode): T | undefined;
|
|
258
|
+
cursorSet(cursor: TreeCursor, value: T): void;
|
|
259
|
+
cursorGet(cursor: TreeCursor): T | undefined;
|
|
241
260
|
}
|
|
242
261
|
export {};
|
package/package.json
CHANGED
package/dist/composite.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Tree, SyntaxNode } from "./tree";
|
|
2
|
-
import { Parser, PartialParse, TreeFragment, Input } from "./parse";
|
|
3
|
-
export declare class SubtreeRange {
|
|
4
|
-
constructor(from: number, to: number, parser: Parser, cont?: any);
|
|
5
|
-
}
|
|
6
|
-
export declare class CompositeParser extends Parser {
|
|
7
|
-
private subtreeRanges;
|
|
8
|
-
private subtreeCache;
|
|
9
|
-
constructor(main: Parser, subtreeRanges: {
|
|
10
|
-
[nodeID: number]: (node: SyntaxNode, input: Input) => (readonly SubtreeRange[] | null);
|
|
11
|
-
});
|
|
12
|
-
startParseInner(input: Input, fragments: readonly TreeFragment[], ranges: readonly {
|
|
13
|
-
from: number;
|
|
14
|
-
to: number;
|
|
15
|
-
}[]): CompositeParse;
|
|
16
|
-
}
|
|
17
|
-
declare class CompositeParse implements PartialParse {
|
|
18
|
-
readonly input: Input;
|
|
19
|
-
readonly fragments: readonly TreeFragment[];
|
|
20
|
-
readonly ranges: readonly {
|
|
21
|
-
from: number;
|
|
22
|
-
to: number;
|
|
23
|
-
}[];
|
|
24
|
-
readonly parser: CompositeParser;
|
|
25
|
-
main: PartialParse;
|
|
26
|
-
mainResult: Tree | null;
|
|
27
|
-
mainSub: Tree[];
|
|
28
|
-
inner: PartialParse[];
|
|
29
|
-
subtrees: Tree[];
|
|
30
|
-
stoppedAt: number | null;
|
|
31
|
-
constructor(input: Input, fragments: readonly TreeFragment[], ranges: readonly {
|
|
32
|
-
from: number;
|
|
33
|
-
to: number;
|
|
34
|
-
}[], parser: CompositeParser);
|
|
35
|
-
advance(): Tree | null;
|
|
36
|
-
private startSub;
|
|
37
|
-
private startInner;
|
|
38
|
-
private reuseInner;
|
|
39
|
-
stopAt(pos: number): void;
|
|
40
|
-
get parsedPos(): number;
|
|
41
|
-
}
|
|
42
|
-
export {};
|
package/dist/frame.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Parser, ParseSpec, FullParseSpec, PartialParse } from "./parse";
|
|
2
|
-
import { Tree, NodeType } from "./tree";
|
|
3
|
-
export declare class FramingParser extends Parser {
|
|
4
|
-
constructor(config: {
|
|
5
|
-
frame: Parser;
|
|
6
|
-
fill: Parser;
|
|
7
|
-
frameNodes: readonly NodeType[];
|
|
8
|
-
});
|
|
9
|
-
startParse(spec: ParseSpec): FramingParse;
|
|
10
|
-
}
|
|
11
|
-
declare class FramingParse implements PartialParse {
|
|
12
|
-
readonly parser: FramingParser;
|
|
13
|
-
readonly spec: FullParseSpec;
|
|
14
|
-
outerTree: Tree | null;
|
|
15
|
-
outer: PartialParse;
|
|
16
|
-
inner: PartialParse | null;
|
|
17
|
-
stoppedAt: null | number;
|
|
18
|
-
constructor(parser: FramingParser, spec: FullParseSpec);
|
|
19
|
-
get parsedPos(): number;
|
|
20
|
-
advance(): Tree;
|
|
21
|
-
stopAt(pos: number): void;
|
|
22
|
-
private startInner;
|
|
23
|
-
private finishParse;
|
|
24
|
-
}
|
|
25
|
-
export {};
|
package/dist/scaffold.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Parser, ParseSpec, FullParseSpec, PartialParse } from "./parse";
|
|
2
|
-
import { Tree, NodeType } from "./tree";
|
|
3
|
-
export declare class ScaffoldParser extends Parser {
|
|
4
|
-
constructor(config: {
|
|
5
|
-
scaffold: Parser;
|
|
6
|
-
fill: Parser;
|
|
7
|
-
scaffoldNodes: readonly NodeType[];
|
|
8
|
-
});
|
|
9
|
-
startParse(spec: ParseSpec): ScaffoldParse;
|
|
10
|
-
}
|
|
11
|
-
declare class ScaffoldParse implements PartialParse {
|
|
12
|
-
readonly parser: ScaffoldParser;
|
|
13
|
-
readonly spec: FullParseSpec;
|
|
14
|
-
outerTree: Tree | null;
|
|
15
|
-
outer: PartialParse;
|
|
16
|
-
inner: PartialParse | null;
|
|
17
|
-
stoppedAt: null | number;
|
|
18
|
-
constructor(parser: ScaffoldParser, spec: FullParseSpec);
|
|
19
|
-
get parsedPos(): number;
|
|
20
|
-
advance(): Tree;
|
|
21
|
-
stopAt(pos: number): void;
|
|
22
|
-
private startInner;
|
|
23
|
-
private finishParse;
|
|
24
|
-
}
|
|
25
|
-
export {};
|