@herb-tools/core 0.5.0 → 0.6.1
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/herb-core.browser.js +1344 -368
- package/dist/herb-core.browser.js.map +1 -1
- package/dist/herb-core.cjs +1443 -368
- package/dist/herb-core.cjs.map +1 -1
- package/dist/herb-core.esm.js +1344 -368
- package/dist/herb-core.esm.js.map +1 -1
- package/dist/herb-core.umd.js +1443 -368
- package/dist/herb-core.umd.js.map +1 -1
- package/dist/types/ast-utils.d.ts +124 -0
- package/dist/types/backend.d.ts +2 -1
- package/dist/types/herb-backend.d.ts +3 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/node-type-guards.d.ts +434 -0
- package/dist/types/nodes.d.ts +187 -97
- package/dist/types/parser-options.d.ts +4 -0
- package/dist/types/visitor.d.ts +3 -2
- package/package.json +1 -1
- package/src/ast-utils.ts +291 -0
- package/src/backend.ts +2 -1
- package/src/errors.ts +1 -1
- package/src/herb-backend.ts +7 -2
- package/src/index.ts +3 -0
- package/src/node-type-guards.ts +878 -0
- package/src/nodes.ts +436 -251
- package/src/parser-options.ts +7 -0
- package/src/visitor.ts +11 -6
package/dist/types/nodes.d.ts
CHANGED
|
@@ -20,9 +20,16 @@ export declare abstract class Node implements BaseNodeProps {
|
|
|
20
20
|
readonly location: Location;
|
|
21
21
|
readonly errors: HerbError[];
|
|
22
22
|
static from(node: SerializedNode): Node;
|
|
23
|
+
static get type(): NodeType;
|
|
23
24
|
constructor(type: NodeType, location: Location, errors: HerbError[]);
|
|
24
25
|
toJSON(): SerializedNode;
|
|
25
26
|
inspect(): string;
|
|
27
|
+
is<T extends Node>(nodeClass: {
|
|
28
|
+
new (...args: any[]): T;
|
|
29
|
+
prototype: T;
|
|
30
|
+
type: NodeType;
|
|
31
|
+
}): this is T;
|
|
32
|
+
isOfType<T extends Node>(type: NodeType): this is T;
|
|
26
33
|
get isSingleLine(): boolean;
|
|
27
34
|
abstract treeInspect(indent?: number): string;
|
|
28
35
|
abstract recursiveErrors(): HerbError[];
|
|
@@ -41,6 +48,7 @@ export interface DocumentNodeProps extends BaseNodeProps {
|
|
|
41
48
|
}
|
|
42
49
|
export declare class DocumentNode extends Node {
|
|
43
50
|
readonly children: Node[];
|
|
51
|
+
static get type(): NodeType;
|
|
44
52
|
static from(data: SerializedDocumentNode): DocumentNode;
|
|
45
53
|
constructor(props: DocumentNodeProps);
|
|
46
54
|
accept(visitor: Visitor): void;
|
|
@@ -59,6 +67,7 @@ export interface LiteralNodeProps extends BaseNodeProps {
|
|
|
59
67
|
}
|
|
60
68
|
export declare class LiteralNode extends Node {
|
|
61
69
|
readonly content: string;
|
|
70
|
+
static get type(): NodeType;
|
|
62
71
|
static from(data: SerializedLiteralNode): LiteralNode;
|
|
63
72
|
constructor(props: LiteralNodeProps);
|
|
64
73
|
accept(visitor: Visitor): void;
|
|
@@ -89,6 +98,7 @@ export declare class HTMLOpenTagNode extends Node {
|
|
|
89
98
|
readonly tag_closing: Token | null;
|
|
90
99
|
readonly children: Node[];
|
|
91
100
|
readonly is_void: boolean;
|
|
101
|
+
static get type(): NodeType;
|
|
92
102
|
static from(data: SerializedHTMLOpenTagNode): HTMLOpenTagNode;
|
|
93
103
|
constructor(props: HTMLOpenTagNodeProps);
|
|
94
104
|
accept(visitor: Visitor): void;
|
|
@@ -102,17 +112,21 @@ export interface SerializedHTMLCloseTagNode extends SerializedNode {
|
|
|
102
112
|
type: "AST_HTML_CLOSE_TAG_NODE";
|
|
103
113
|
tag_opening: SerializedToken | null;
|
|
104
114
|
tag_name: SerializedToken | null;
|
|
115
|
+
children: SerializedNode[];
|
|
105
116
|
tag_closing: SerializedToken | null;
|
|
106
117
|
}
|
|
107
118
|
export interface HTMLCloseTagNodeProps extends BaseNodeProps {
|
|
108
119
|
tag_opening: Token | null;
|
|
109
120
|
tag_name: Token | null;
|
|
121
|
+
children: Node[];
|
|
110
122
|
tag_closing: Token | null;
|
|
111
123
|
}
|
|
112
124
|
export declare class HTMLCloseTagNode extends Node {
|
|
113
125
|
readonly tag_opening: Token | null;
|
|
114
126
|
readonly tag_name: Token | null;
|
|
127
|
+
readonly children: Node[];
|
|
115
128
|
readonly tag_closing: Token | null;
|
|
129
|
+
static get type(): NodeType;
|
|
116
130
|
static from(data: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
|
|
117
131
|
constructor(props: HTMLCloseTagNodeProps);
|
|
118
132
|
accept(visitor: Visitor): void;
|
|
@@ -122,57 +136,28 @@ export declare class HTMLCloseTagNode extends Node {
|
|
|
122
136
|
toJSON(): SerializedHTMLCloseTagNode;
|
|
123
137
|
treeInspect(): string;
|
|
124
138
|
}
|
|
125
|
-
export interface SerializedHTMLSelfCloseTagNode extends SerializedNode {
|
|
126
|
-
type: "AST_HTML_SELF_CLOSE_TAG_NODE";
|
|
127
|
-
tag_opening: SerializedToken | null;
|
|
128
|
-
tag_name: SerializedToken | null;
|
|
129
|
-
attributes: SerializedNode[];
|
|
130
|
-
tag_closing: SerializedToken | null;
|
|
131
|
-
is_void: boolean;
|
|
132
|
-
}
|
|
133
|
-
export interface HTMLSelfCloseTagNodeProps extends BaseNodeProps {
|
|
134
|
-
tag_opening: Token | null;
|
|
135
|
-
tag_name: Token | null;
|
|
136
|
-
attributes: any[];
|
|
137
|
-
tag_closing: Token | null;
|
|
138
|
-
is_void: boolean;
|
|
139
|
-
}
|
|
140
|
-
export declare class HTMLSelfCloseTagNode extends Node {
|
|
141
|
-
readonly tag_opening: Token | null;
|
|
142
|
-
readonly tag_name: Token | null;
|
|
143
|
-
readonly attributes: any[];
|
|
144
|
-
readonly tag_closing: Token | null;
|
|
145
|
-
readonly is_void: boolean;
|
|
146
|
-
static from(data: SerializedHTMLSelfCloseTagNode): HTMLSelfCloseTagNode;
|
|
147
|
-
constructor(props: HTMLSelfCloseTagNodeProps);
|
|
148
|
-
accept(visitor: Visitor): void;
|
|
149
|
-
childNodes(): (Node | null | undefined)[];
|
|
150
|
-
compactChildNodes(): Node[];
|
|
151
|
-
recursiveErrors(): HerbError[];
|
|
152
|
-
toJSON(): SerializedHTMLSelfCloseTagNode;
|
|
153
|
-
treeInspect(): string;
|
|
154
|
-
}
|
|
155
139
|
export interface SerializedHTMLElementNode extends SerializedNode {
|
|
156
140
|
type: "AST_HTML_ELEMENT_NODE";
|
|
157
|
-
open_tag:
|
|
141
|
+
open_tag: SerializedHTMLOpenTagNode | null;
|
|
158
142
|
tag_name: SerializedToken | null;
|
|
159
143
|
body: SerializedNode[];
|
|
160
|
-
close_tag:
|
|
144
|
+
close_tag: SerializedHTMLCloseTagNode | null;
|
|
161
145
|
is_void: boolean;
|
|
162
146
|
}
|
|
163
147
|
export interface HTMLElementNodeProps extends BaseNodeProps {
|
|
164
|
-
open_tag:
|
|
148
|
+
open_tag: HTMLOpenTagNode | null;
|
|
165
149
|
tag_name: Token | null;
|
|
166
150
|
body: Node[];
|
|
167
|
-
close_tag:
|
|
151
|
+
close_tag: HTMLCloseTagNode | null;
|
|
168
152
|
is_void: boolean;
|
|
169
153
|
}
|
|
170
154
|
export declare class HTMLElementNode extends Node {
|
|
171
|
-
readonly open_tag:
|
|
155
|
+
readonly open_tag: HTMLOpenTagNode | null;
|
|
172
156
|
readonly tag_name: Token | null;
|
|
173
157
|
readonly body: Node[];
|
|
174
|
-
readonly close_tag:
|
|
158
|
+
readonly close_tag: HTMLCloseTagNode | null;
|
|
175
159
|
readonly is_void: boolean;
|
|
160
|
+
static get type(): NodeType;
|
|
176
161
|
static from(data: SerializedHTMLElementNode): HTMLElementNode;
|
|
177
162
|
constructor(props: HTMLElementNodeProps);
|
|
178
163
|
accept(visitor: Visitor): void;
|
|
@@ -200,6 +185,7 @@ export declare class HTMLAttributeValueNode extends Node {
|
|
|
200
185
|
readonly children: Node[];
|
|
201
186
|
readonly close_quote: Token | null;
|
|
202
187
|
readonly quoted: boolean;
|
|
188
|
+
static get type(): NodeType;
|
|
203
189
|
static from(data: SerializedHTMLAttributeValueNode): HTMLAttributeValueNode;
|
|
204
190
|
constructor(props: HTMLAttributeValueNodeProps);
|
|
205
191
|
accept(visitor: Visitor): void;
|
|
@@ -211,13 +197,14 @@ export declare class HTMLAttributeValueNode extends Node {
|
|
|
211
197
|
}
|
|
212
198
|
export interface SerializedHTMLAttributeNameNode extends SerializedNode {
|
|
213
199
|
type: "AST_HTML_ATTRIBUTE_NAME_NODE";
|
|
214
|
-
|
|
200
|
+
children: SerializedNode[];
|
|
215
201
|
}
|
|
216
202
|
export interface HTMLAttributeNameNodeProps extends BaseNodeProps {
|
|
217
|
-
|
|
203
|
+
children: Node[];
|
|
218
204
|
}
|
|
219
205
|
export declare class HTMLAttributeNameNode extends Node {
|
|
220
|
-
readonly
|
|
206
|
+
readonly children: Node[];
|
|
207
|
+
static get type(): NodeType;
|
|
221
208
|
static from(data: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
|
|
222
209
|
constructor(props: HTMLAttributeNameNodeProps);
|
|
223
210
|
accept(visitor: Visitor): void;
|
|
@@ -229,19 +216,20 @@ export declare class HTMLAttributeNameNode extends Node {
|
|
|
229
216
|
}
|
|
230
217
|
export interface SerializedHTMLAttributeNode extends SerializedNode {
|
|
231
218
|
type: "AST_HTML_ATTRIBUTE_NODE";
|
|
232
|
-
name:
|
|
219
|
+
name: SerializedHTMLAttributeNameNode | null;
|
|
233
220
|
equals: SerializedToken | null;
|
|
234
|
-
value:
|
|
221
|
+
value: SerializedHTMLAttributeValueNode | null;
|
|
235
222
|
}
|
|
236
223
|
export interface HTMLAttributeNodeProps extends BaseNodeProps {
|
|
237
|
-
name:
|
|
224
|
+
name: HTMLAttributeNameNode | null;
|
|
238
225
|
equals: Token | null;
|
|
239
|
-
value:
|
|
226
|
+
value: HTMLAttributeValueNode | null;
|
|
240
227
|
}
|
|
241
228
|
export declare class HTMLAttributeNode extends Node {
|
|
242
|
-
readonly name:
|
|
229
|
+
readonly name: HTMLAttributeNameNode | null;
|
|
243
230
|
readonly equals: Token | null;
|
|
244
|
-
readonly value:
|
|
231
|
+
readonly value: HTMLAttributeValueNode | null;
|
|
232
|
+
static get type(): NodeType;
|
|
245
233
|
static from(data: SerializedHTMLAttributeNode): HTMLAttributeNode;
|
|
246
234
|
constructor(props: HTMLAttributeNodeProps);
|
|
247
235
|
accept(visitor: Visitor): void;
|
|
@@ -260,6 +248,7 @@ export interface HTMLTextNodeProps extends BaseNodeProps {
|
|
|
260
248
|
}
|
|
261
249
|
export declare class HTMLTextNode extends Node {
|
|
262
250
|
readonly content: string;
|
|
251
|
+
static get type(): NodeType;
|
|
263
252
|
static from(data: SerializedHTMLTextNode): HTMLTextNode;
|
|
264
253
|
constructor(props: HTMLTextNodeProps);
|
|
265
254
|
accept(visitor: Visitor): void;
|
|
@@ -284,6 +273,7 @@ export declare class HTMLCommentNode extends Node {
|
|
|
284
273
|
readonly comment_start: Token | null;
|
|
285
274
|
readonly children: Node[];
|
|
286
275
|
readonly comment_end: Token | null;
|
|
276
|
+
static get type(): NodeType;
|
|
287
277
|
static from(data: SerializedHTMLCommentNode): HTMLCommentNode;
|
|
288
278
|
constructor(props: HTMLCommentNodeProps);
|
|
289
279
|
accept(visitor: Visitor): void;
|
|
@@ -308,6 +298,7 @@ export declare class HTMLDoctypeNode extends Node {
|
|
|
308
298
|
readonly tag_opening: Token | null;
|
|
309
299
|
readonly children: Node[];
|
|
310
300
|
readonly tag_closing: Token | null;
|
|
301
|
+
static get type(): NodeType;
|
|
311
302
|
static from(data: SerializedHTMLDoctypeNode): HTMLDoctypeNode;
|
|
312
303
|
constructor(props: HTMLDoctypeNodeProps);
|
|
313
304
|
accept(visitor: Visitor): void;
|
|
@@ -317,6 +308,56 @@ export declare class HTMLDoctypeNode extends Node {
|
|
|
317
308
|
toJSON(): SerializedHTMLDoctypeNode;
|
|
318
309
|
treeInspect(): string;
|
|
319
310
|
}
|
|
311
|
+
export interface SerializedXMLDeclarationNode extends SerializedNode {
|
|
312
|
+
type: "AST_XML_DECLARATION_NODE";
|
|
313
|
+
tag_opening: SerializedToken | null;
|
|
314
|
+
children: SerializedNode[];
|
|
315
|
+
tag_closing: SerializedToken | null;
|
|
316
|
+
}
|
|
317
|
+
export interface XMLDeclarationNodeProps extends BaseNodeProps {
|
|
318
|
+
tag_opening: Token | null;
|
|
319
|
+
children: Node[];
|
|
320
|
+
tag_closing: Token | null;
|
|
321
|
+
}
|
|
322
|
+
export declare class XMLDeclarationNode extends Node {
|
|
323
|
+
readonly tag_opening: Token | null;
|
|
324
|
+
readonly children: Node[];
|
|
325
|
+
readonly tag_closing: Token | null;
|
|
326
|
+
static get type(): NodeType;
|
|
327
|
+
static from(data: SerializedXMLDeclarationNode): XMLDeclarationNode;
|
|
328
|
+
constructor(props: XMLDeclarationNodeProps);
|
|
329
|
+
accept(visitor: Visitor): void;
|
|
330
|
+
childNodes(): (Node | null | undefined)[];
|
|
331
|
+
compactChildNodes(): Node[];
|
|
332
|
+
recursiveErrors(): HerbError[];
|
|
333
|
+
toJSON(): SerializedXMLDeclarationNode;
|
|
334
|
+
treeInspect(): string;
|
|
335
|
+
}
|
|
336
|
+
export interface SerializedCDATANode extends SerializedNode {
|
|
337
|
+
type: "AST_CDATA_NODE";
|
|
338
|
+
tag_opening: SerializedToken | null;
|
|
339
|
+
children: SerializedNode[];
|
|
340
|
+
tag_closing: SerializedToken | null;
|
|
341
|
+
}
|
|
342
|
+
export interface CDATANodeProps extends BaseNodeProps {
|
|
343
|
+
tag_opening: Token | null;
|
|
344
|
+
children: Node[];
|
|
345
|
+
tag_closing: Token | null;
|
|
346
|
+
}
|
|
347
|
+
export declare class CDATANode extends Node {
|
|
348
|
+
readonly tag_opening: Token | null;
|
|
349
|
+
readonly children: Node[];
|
|
350
|
+
readonly tag_closing: Token | null;
|
|
351
|
+
static get type(): NodeType;
|
|
352
|
+
static from(data: SerializedCDATANode): CDATANode;
|
|
353
|
+
constructor(props: CDATANodeProps);
|
|
354
|
+
accept(visitor: Visitor): void;
|
|
355
|
+
childNodes(): (Node | null | undefined)[];
|
|
356
|
+
compactChildNodes(): Node[];
|
|
357
|
+
recursiveErrors(): HerbError[];
|
|
358
|
+
toJSON(): SerializedCDATANode;
|
|
359
|
+
treeInspect(): string;
|
|
360
|
+
}
|
|
320
361
|
export interface SerializedWhitespaceNode extends SerializedNode {
|
|
321
362
|
type: "AST_WHITESPACE_NODE";
|
|
322
363
|
value: SerializedToken | null;
|
|
@@ -326,6 +367,7 @@ export interface WhitespaceNodeProps extends BaseNodeProps {
|
|
|
326
367
|
}
|
|
327
368
|
export declare class WhitespaceNode extends Node {
|
|
328
369
|
readonly value: Token | null;
|
|
370
|
+
static get type(): NodeType;
|
|
329
371
|
static from(data: SerializedWhitespaceNode): WhitespaceNode;
|
|
330
372
|
constructor(props: WhitespaceNodeProps);
|
|
331
373
|
accept(visitor: Visitor): void;
|
|
@@ -356,6 +398,7 @@ export declare class ERBContentNode extends Node {
|
|
|
356
398
|
readonly tag_closing: Token | null;
|
|
357
399
|
readonly parsed: boolean;
|
|
358
400
|
readonly valid: boolean;
|
|
401
|
+
static get type(): NodeType;
|
|
359
402
|
static from(data: SerializedERBContentNode): ERBContentNode;
|
|
360
403
|
constructor(props: ERBContentNodeProps);
|
|
361
404
|
accept(visitor: Visitor): void;
|
|
@@ -380,6 +423,7 @@ export declare class ERBEndNode extends Node {
|
|
|
380
423
|
readonly tag_opening: Token | null;
|
|
381
424
|
readonly content: Token | null;
|
|
382
425
|
readonly tag_closing: Token | null;
|
|
426
|
+
static get type(): NodeType;
|
|
383
427
|
static from(data: SerializedERBEndNode): ERBEndNode;
|
|
384
428
|
constructor(props: ERBEndNodeProps);
|
|
385
429
|
accept(visitor: Visitor): void;
|
|
@@ -407,6 +451,7 @@ export declare class ERBElseNode extends Node {
|
|
|
407
451
|
readonly content: Token | null;
|
|
408
452
|
readonly tag_closing: Token | null;
|
|
409
453
|
readonly statements: Node[];
|
|
454
|
+
static get type(): NodeType;
|
|
410
455
|
static from(data: SerializedERBElseNode): ERBElseNode;
|
|
411
456
|
constructor(props: ERBElseNodeProps);
|
|
412
457
|
accept(visitor: Visitor): void;
|
|
@@ -423,7 +468,7 @@ export interface SerializedERBIfNode extends SerializedNode {
|
|
|
423
468
|
tag_closing: SerializedToken | null;
|
|
424
469
|
statements: SerializedNode[];
|
|
425
470
|
subsequent: SerializedNode | null;
|
|
426
|
-
end_node:
|
|
471
|
+
end_node: SerializedERBEndNode | null;
|
|
427
472
|
}
|
|
428
473
|
export interface ERBIfNodeProps extends BaseNodeProps {
|
|
429
474
|
tag_opening: Token | null;
|
|
@@ -431,7 +476,7 @@ export interface ERBIfNodeProps extends BaseNodeProps {
|
|
|
431
476
|
tag_closing: Token | null;
|
|
432
477
|
statements: Node[];
|
|
433
478
|
subsequent: Node | null;
|
|
434
|
-
end_node:
|
|
479
|
+
end_node: ERBEndNode | null;
|
|
435
480
|
}
|
|
436
481
|
export declare class ERBIfNode extends Node {
|
|
437
482
|
readonly tag_opening: Token | null;
|
|
@@ -439,7 +484,8 @@ export declare class ERBIfNode extends Node {
|
|
|
439
484
|
readonly tag_closing: Token | null;
|
|
440
485
|
readonly statements: Node[];
|
|
441
486
|
readonly subsequent: Node | null;
|
|
442
|
-
readonly end_node:
|
|
487
|
+
readonly end_node: ERBEndNode | null;
|
|
488
|
+
static get type(): NodeType;
|
|
443
489
|
static from(data: SerializedERBIfNode): ERBIfNode;
|
|
444
490
|
constructor(props: ERBIfNodeProps);
|
|
445
491
|
accept(visitor: Visitor): void;
|
|
@@ -455,21 +501,22 @@ export interface SerializedERBBlockNode extends SerializedNode {
|
|
|
455
501
|
content: SerializedToken | null;
|
|
456
502
|
tag_closing: SerializedToken | null;
|
|
457
503
|
body: SerializedNode[];
|
|
458
|
-
end_node:
|
|
504
|
+
end_node: SerializedERBEndNode | null;
|
|
459
505
|
}
|
|
460
506
|
export interface ERBBlockNodeProps extends BaseNodeProps {
|
|
461
507
|
tag_opening: Token | null;
|
|
462
508
|
content: Token | null;
|
|
463
509
|
tag_closing: Token | null;
|
|
464
510
|
body: Node[];
|
|
465
|
-
end_node:
|
|
511
|
+
end_node: ERBEndNode | null;
|
|
466
512
|
}
|
|
467
513
|
export declare class ERBBlockNode extends Node {
|
|
468
514
|
readonly tag_opening: Token | null;
|
|
469
515
|
readonly content: Token | null;
|
|
470
516
|
readonly tag_closing: Token | null;
|
|
471
517
|
readonly body: Node[];
|
|
472
|
-
readonly end_node:
|
|
518
|
+
readonly end_node: ERBEndNode | null;
|
|
519
|
+
static get type(): NodeType;
|
|
473
520
|
static from(data: SerializedERBBlockNode): ERBBlockNode;
|
|
474
521
|
constructor(props: ERBBlockNodeProps);
|
|
475
522
|
accept(visitor: Visitor): void;
|
|
@@ -497,6 +544,7 @@ export declare class ERBWhenNode extends Node {
|
|
|
497
544
|
readonly content: Token | null;
|
|
498
545
|
readonly tag_closing: Token | null;
|
|
499
546
|
readonly statements: Node[];
|
|
547
|
+
static get type(): NodeType;
|
|
500
548
|
static from(data: SerializedERBWhenNode): ERBWhenNode;
|
|
501
549
|
constructor(props: ERBWhenNodeProps);
|
|
502
550
|
accept(visitor: Visitor): void;
|
|
@@ -513,8 +561,8 @@ export interface SerializedERBCaseNode extends SerializedNode {
|
|
|
513
561
|
tag_closing: SerializedToken | null;
|
|
514
562
|
children: SerializedNode[];
|
|
515
563
|
conditions: SerializedNode[];
|
|
516
|
-
else_clause:
|
|
517
|
-
end_node:
|
|
564
|
+
else_clause: SerializedERBElseNode | null;
|
|
565
|
+
end_node: SerializedERBEndNode | null;
|
|
518
566
|
}
|
|
519
567
|
export interface ERBCaseNodeProps extends BaseNodeProps {
|
|
520
568
|
tag_opening: Token | null;
|
|
@@ -522,17 +570,18 @@ export interface ERBCaseNodeProps extends BaseNodeProps {
|
|
|
522
570
|
tag_closing: Token | null;
|
|
523
571
|
children: Node[];
|
|
524
572
|
conditions: any[];
|
|
525
|
-
else_clause:
|
|
526
|
-
end_node:
|
|
573
|
+
else_clause: ERBElseNode | null;
|
|
574
|
+
end_node: ERBEndNode | null;
|
|
527
575
|
}
|
|
528
576
|
export declare class ERBCaseNode extends Node {
|
|
529
577
|
readonly tag_opening: Token | null;
|
|
530
578
|
readonly content: Token | null;
|
|
531
579
|
readonly tag_closing: Token | null;
|
|
532
580
|
readonly children: Node[];
|
|
533
|
-
readonly conditions:
|
|
534
|
-
readonly else_clause:
|
|
535
|
-
readonly end_node:
|
|
581
|
+
readonly conditions: Node[];
|
|
582
|
+
readonly else_clause: ERBElseNode | null;
|
|
583
|
+
readonly end_node: ERBEndNode | null;
|
|
584
|
+
static get type(): NodeType;
|
|
536
585
|
static from(data: SerializedERBCaseNode): ERBCaseNode;
|
|
537
586
|
constructor(props: ERBCaseNodeProps);
|
|
538
587
|
accept(visitor: Visitor): void;
|
|
@@ -549,8 +598,8 @@ export interface SerializedERBCaseMatchNode extends SerializedNode {
|
|
|
549
598
|
tag_closing: SerializedToken | null;
|
|
550
599
|
children: SerializedNode[];
|
|
551
600
|
conditions: SerializedNode[];
|
|
552
|
-
else_clause:
|
|
553
|
-
end_node:
|
|
601
|
+
else_clause: SerializedERBElseNode | null;
|
|
602
|
+
end_node: SerializedERBEndNode | null;
|
|
554
603
|
}
|
|
555
604
|
export interface ERBCaseMatchNodeProps extends BaseNodeProps {
|
|
556
605
|
tag_opening: Token | null;
|
|
@@ -558,17 +607,18 @@ export interface ERBCaseMatchNodeProps extends BaseNodeProps {
|
|
|
558
607
|
tag_closing: Token | null;
|
|
559
608
|
children: Node[];
|
|
560
609
|
conditions: any[];
|
|
561
|
-
else_clause:
|
|
562
|
-
end_node:
|
|
610
|
+
else_clause: ERBElseNode | null;
|
|
611
|
+
end_node: ERBEndNode | null;
|
|
563
612
|
}
|
|
564
613
|
export declare class ERBCaseMatchNode extends Node {
|
|
565
614
|
readonly tag_opening: Token | null;
|
|
566
615
|
readonly content: Token | null;
|
|
567
616
|
readonly tag_closing: Token | null;
|
|
568
617
|
readonly children: Node[];
|
|
569
|
-
readonly conditions:
|
|
570
|
-
readonly else_clause:
|
|
571
|
-
readonly end_node:
|
|
618
|
+
readonly conditions: Node[];
|
|
619
|
+
readonly else_clause: ERBElseNode | null;
|
|
620
|
+
readonly end_node: ERBEndNode | null;
|
|
621
|
+
static get type(): NodeType;
|
|
572
622
|
static from(data: SerializedERBCaseMatchNode): ERBCaseMatchNode;
|
|
573
623
|
constructor(props: ERBCaseMatchNodeProps);
|
|
574
624
|
accept(visitor: Visitor): void;
|
|
@@ -584,21 +634,22 @@ export interface SerializedERBWhileNode extends SerializedNode {
|
|
|
584
634
|
content: SerializedToken | null;
|
|
585
635
|
tag_closing: SerializedToken | null;
|
|
586
636
|
statements: SerializedNode[];
|
|
587
|
-
end_node:
|
|
637
|
+
end_node: SerializedERBEndNode | null;
|
|
588
638
|
}
|
|
589
639
|
export interface ERBWhileNodeProps extends BaseNodeProps {
|
|
590
640
|
tag_opening: Token | null;
|
|
591
641
|
content: Token | null;
|
|
592
642
|
tag_closing: Token | null;
|
|
593
643
|
statements: Node[];
|
|
594
|
-
end_node:
|
|
644
|
+
end_node: ERBEndNode | null;
|
|
595
645
|
}
|
|
596
646
|
export declare class ERBWhileNode extends Node {
|
|
597
647
|
readonly tag_opening: Token | null;
|
|
598
648
|
readonly content: Token | null;
|
|
599
649
|
readonly tag_closing: Token | null;
|
|
600
650
|
readonly statements: Node[];
|
|
601
|
-
readonly end_node:
|
|
651
|
+
readonly end_node: ERBEndNode | null;
|
|
652
|
+
static get type(): NodeType;
|
|
602
653
|
static from(data: SerializedERBWhileNode): ERBWhileNode;
|
|
603
654
|
constructor(props: ERBWhileNodeProps);
|
|
604
655
|
accept(visitor: Visitor): void;
|
|
@@ -614,21 +665,22 @@ export interface SerializedERBUntilNode extends SerializedNode {
|
|
|
614
665
|
content: SerializedToken | null;
|
|
615
666
|
tag_closing: SerializedToken | null;
|
|
616
667
|
statements: SerializedNode[];
|
|
617
|
-
end_node:
|
|
668
|
+
end_node: SerializedERBEndNode | null;
|
|
618
669
|
}
|
|
619
670
|
export interface ERBUntilNodeProps extends BaseNodeProps {
|
|
620
671
|
tag_opening: Token | null;
|
|
621
672
|
content: Token | null;
|
|
622
673
|
tag_closing: Token | null;
|
|
623
674
|
statements: Node[];
|
|
624
|
-
end_node:
|
|
675
|
+
end_node: ERBEndNode | null;
|
|
625
676
|
}
|
|
626
677
|
export declare class ERBUntilNode extends Node {
|
|
627
678
|
readonly tag_opening: Token | null;
|
|
628
679
|
readonly content: Token | null;
|
|
629
680
|
readonly tag_closing: Token | null;
|
|
630
681
|
readonly statements: Node[];
|
|
631
|
-
readonly end_node:
|
|
682
|
+
readonly end_node: ERBEndNode | null;
|
|
683
|
+
static get type(): NodeType;
|
|
632
684
|
static from(data: SerializedERBUntilNode): ERBUntilNode;
|
|
633
685
|
constructor(props: ERBUntilNodeProps);
|
|
634
686
|
accept(visitor: Visitor): void;
|
|
@@ -644,21 +696,22 @@ export interface SerializedERBForNode extends SerializedNode {
|
|
|
644
696
|
content: SerializedToken | null;
|
|
645
697
|
tag_closing: SerializedToken | null;
|
|
646
698
|
statements: SerializedNode[];
|
|
647
|
-
end_node:
|
|
699
|
+
end_node: SerializedERBEndNode | null;
|
|
648
700
|
}
|
|
649
701
|
export interface ERBForNodeProps extends BaseNodeProps {
|
|
650
702
|
tag_opening: Token | null;
|
|
651
703
|
content: Token | null;
|
|
652
704
|
tag_closing: Token | null;
|
|
653
705
|
statements: Node[];
|
|
654
|
-
end_node:
|
|
706
|
+
end_node: ERBEndNode | null;
|
|
655
707
|
}
|
|
656
708
|
export declare class ERBForNode extends Node {
|
|
657
709
|
readonly tag_opening: Token | null;
|
|
658
710
|
readonly content: Token | null;
|
|
659
711
|
readonly tag_closing: Token | null;
|
|
660
712
|
readonly statements: Node[];
|
|
661
|
-
readonly end_node:
|
|
713
|
+
readonly end_node: ERBEndNode | null;
|
|
714
|
+
static get type(): NodeType;
|
|
662
715
|
static from(data: SerializedERBForNode): ERBForNode;
|
|
663
716
|
constructor(props: ERBForNodeProps);
|
|
664
717
|
accept(visitor: Visitor): void;
|
|
@@ -674,21 +727,22 @@ export interface SerializedERBRescueNode extends SerializedNode {
|
|
|
674
727
|
content: SerializedToken | null;
|
|
675
728
|
tag_closing: SerializedToken | null;
|
|
676
729
|
statements: SerializedNode[];
|
|
677
|
-
subsequent:
|
|
730
|
+
subsequent: SerializedERBRescueNode | null;
|
|
678
731
|
}
|
|
679
732
|
export interface ERBRescueNodeProps extends BaseNodeProps {
|
|
680
733
|
tag_opening: Token | null;
|
|
681
734
|
content: Token | null;
|
|
682
735
|
tag_closing: Token | null;
|
|
683
736
|
statements: Node[];
|
|
684
|
-
subsequent:
|
|
737
|
+
subsequent: ERBRescueNode | null;
|
|
685
738
|
}
|
|
686
739
|
export declare class ERBRescueNode extends Node {
|
|
687
740
|
readonly tag_opening: Token | null;
|
|
688
741
|
readonly content: Token | null;
|
|
689
742
|
readonly tag_closing: Token | null;
|
|
690
743
|
readonly statements: Node[];
|
|
691
|
-
readonly subsequent:
|
|
744
|
+
readonly subsequent: ERBRescueNode | null;
|
|
745
|
+
static get type(): NodeType;
|
|
692
746
|
static from(data: SerializedERBRescueNode): ERBRescueNode;
|
|
693
747
|
constructor(props: ERBRescueNodeProps);
|
|
694
748
|
accept(visitor: Visitor): void;
|
|
@@ -716,6 +770,7 @@ export declare class ERBEnsureNode extends Node {
|
|
|
716
770
|
readonly content: Token | null;
|
|
717
771
|
readonly tag_closing: Token | null;
|
|
718
772
|
readonly statements: Node[];
|
|
773
|
+
static get type(): NodeType;
|
|
719
774
|
static from(data: SerializedERBEnsureNode): ERBEnsureNode;
|
|
720
775
|
constructor(props: ERBEnsureNodeProps);
|
|
721
776
|
accept(visitor: Visitor): void;
|
|
@@ -731,30 +786,31 @@ export interface SerializedERBBeginNode extends SerializedNode {
|
|
|
731
786
|
content: SerializedToken | null;
|
|
732
787
|
tag_closing: SerializedToken | null;
|
|
733
788
|
statements: SerializedNode[];
|
|
734
|
-
rescue_clause:
|
|
735
|
-
else_clause:
|
|
736
|
-
ensure_clause:
|
|
737
|
-
end_node:
|
|
789
|
+
rescue_clause: SerializedERBRescueNode | null;
|
|
790
|
+
else_clause: SerializedERBElseNode | null;
|
|
791
|
+
ensure_clause: SerializedERBEnsureNode | null;
|
|
792
|
+
end_node: SerializedERBEndNode | null;
|
|
738
793
|
}
|
|
739
794
|
export interface ERBBeginNodeProps extends BaseNodeProps {
|
|
740
795
|
tag_opening: Token | null;
|
|
741
796
|
content: Token | null;
|
|
742
797
|
tag_closing: Token | null;
|
|
743
798
|
statements: Node[];
|
|
744
|
-
rescue_clause:
|
|
745
|
-
else_clause:
|
|
746
|
-
ensure_clause:
|
|
747
|
-
end_node:
|
|
799
|
+
rescue_clause: ERBRescueNode | null;
|
|
800
|
+
else_clause: ERBElseNode | null;
|
|
801
|
+
ensure_clause: ERBEnsureNode | null;
|
|
802
|
+
end_node: ERBEndNode | null;
|
|
748
803
|
}
|
|
749
804
|
export declare class ERBBeginNode extends Node {
|
|
750
805
|
readonly tag_opening: Token | null;
|
|
751
806
|
readonly content: Token | null;
|
|
752
807
|
readonly tag_closing: Token | null;
|
|
753
808
|
readonly statements: Node[];
|
|
754
|
-
readonly rescue_clause:
|
|
755
|
-
readonly else_clause:
|
|
756
|
-
readonly ensure_clause:
|
|
757
|
-
readonly end_node:
|
|
809
|
+
readonly rescue_clause: ERBRescueNode | null;
|
|
810
|
+
readonly else_clause: ERBElseNode | null;
|
|
811
|
+
readonly ensure_clause: ERBEnsureNode | null;
|
|
812
|
+
readonly end_node: ERBEndNode | null;
|
|
813
|
+
static get type(): NodeType;
|
|
758
814
|
static from(data: SerializedERBBeginNode): ERBBeginNode;
|
|
759
815
|
constructor(props: ERBBeginNodeProps);
|
|
760
816
|
accept(visitor: Visitor): void;
|
|
@@ -770,24 +826,25 @@ export interface SerializedERBUnlessNode extends SerializedNode {
|
|
|
770
826
|
content: SerializedToken | null;
|
|
771
827
|
tag_closing: SerializedToken | null;
|
|
772
828
|
statements: SerializedNode[];
|
|
773
|
-
else_clause:
|
|
774
|
-
end_node:
|
|
829
|
+
else_clause: SerializedERBElseNode | null;
|
|
830
|
+
end_node: SerializedERBEndNode | null;
|
|
775
831
|
}
|
|
776
832
|
export interface ERBUnlessNodeProps extends BaseNodeProps {
|
|
777
833
|
tag_opening: Token | null;
|
|
778
834
|
content: Token | null;
|
|
779
835
|
tag_closing: Token | null;
|
|
780
836
|
statements: Node[];
|
|
781
|
-
else_clause:
|
|
782
|
-
end_node:
|
|
837
|
+
else_clause: ERBElseNode | null;
|
|
838
|
+
end_node: ERBEndNode | null;
|
|
783
839
|
}
|
|
784
840
|
export declare class ERBUnlessNode extends Node {
|
|
785
841
|
readonly tag_opening: Token | null;
|
|
786
842
|
readonly content: Token | null;
|
|
787
843
|
readonly tag_closing: Token | null;
|
|
788
844
|
readonly statements: Node[];
|
|
789
|
-
readonly else_clause:
|
|
790
|
-
readonly end_node:
|
|
845
|
+
readonly else_clause: ERBElseNode | null;
|
|
846
|
+
readonly end_node: ERBEndNode | null;
|
|
847
|
+
static get type(): NodeType;
|
|
791
848
|
static from(data: SerializedERBUnlessNode): ERBUnlessNode;
|
|
792
849
|
constructor(props: ERBUnlessNodeProps);
|
|
793
850
|
accept(visitor: Visitor): void;
|
|
@@ -812,6 +869,7 @@ export declare class ERBYieldNode extends Node {
|
|
|
812
869
|
readonly tag_opening: Token | null;
|
|
813
870
|
readonly content: Token | null;
|
|
814
871
|
readonly tag_closing: Token | null;
|
|
872
|
+
static get type(): NodeType;
|
|
815
873
|
static from(data: SerializedERBYieldNode): ERBYieldNode;
|
|
816
874
|
constructor(props: ERBYieldNodeProps);
|
|
817
875
|
accept(visitor: Visitor): void;
|
|
@@ -839,6 +897,7 @@ export declare class ERBInNode extends Node {
|
|
|
839
897
|
readonly content: Token | null;
|
|
840
898
|
readonly tag_closing: Token | null;
|
|
841
899
|
readonly statements: Node[];
|
|
900
|
+
static get type(): NodeType;
|
|
842
901
|
static from(data: SerializedERBInNode): ERBInNode;
|
|
843
902
|
constructor(props: ERBInNodeProps);
|
|
844
903
|
accept(visitor: Visitor): void;
|
|
@@ -848,9 +907,40 @@ export declare class ERBInNode extends Node {
|
|
|
848
907
|
toJSON(): SerializedERBInNode;
|
|
849
908
|
treeInspect(): string;
|
|
850
909
|
}
|
|
910
|
+
export type ConcreteNode = DocumentNode | LiteralNode | HTMLOpenTagNode | HTMLCloseTagNode | HTMLElementNode | HTMLAttributeValueNode | HTMLAttributeNameNode | HTMLAttributeNode | HTMLTextNode | HTMLCommentNode | HTMLDoctypeNode | XMLDeclarationNode | CDATANode | WhitespaceNode | ERBContentNode | ERBEndNode | ERBElseNode | ERBIfNode | ERBBlockNode | ERBWhenNode | ERBCaseNode | ERBCaseMatchNode | ERBWhileNode | ERBUntilNode | ERBForNode | ERBRescueNode | ERBEnsureNode | ERBBeginNode | ERBUnlessNode | ERBYieldNode | ERBInNode;
|
|
911
|
+
export declare function fromSerializedNode(node: SerializedDocumentNode): DocumentNode;
|
|
912
|
+
export declare function fromSerializedNode(node: SerializedLiteralNode): LiteralNode;
|
|
913
|
+
export declare function fromSerializedNode(node: SerializedHTMLOpenTagNode): HTMLOpenTagNode;
|
|
914
|
+
export declare function fromSerializedNode(node: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
|
|
915
|
+
export declare function fromSerializedNode(node: SerializedHTMLElementNode): HTMLElementNode;
|
|
916
|
+
export declare function fromSerializedNode(node: SerializedHTMLAttributeValueNode): HTMLAttributeValueNode;
|
|
917
|
+
export declare function fromSerializedNode(node: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
|
|
918
|
+
export declare function fromSerializedNode(node: SerializedHTMLAttributeNode): HTMLAttributeNode;
|
|
919
|
+
export declare function fromSerializedNode(node: SerializedHTMLTextNode): HTMLTextNode;
|
|
920
|
+
export declare function fromSerializedNode(node: SerializedHTMLCommentNode): HTMLCommentNode;
|
|
921
|
+
export declare function fromSerializedNode(node: SerializedHTMLDoctypeNode): HTMLDoctypeNode;
|
|
922
|
+
export declare function fromSerializedNode(node: SerializedXMLDeclarationNode): XMLDeclarationNode;
|
|
923
|
+
export declare function fromSerializedNode(node: SerializedCDATANode): CDATANode;
|
|
924
|
+
export declare function fromSerializedNode(node: SerializedWhitespaceNode): WhitespaceNode;
|
|
925
|
+
export declare function fromSerializedNode(node: SerializedERBContentNode): ERBContentNode;
|
|
926
|
+
export declare function fromSerializedNode(node: SerializedERBEndNode): ERBEndNode;
|
|
927
|
+
export declare function fromSerializedNode(node: SerializedERBElseNode): ERBElseNode;
|
|
928
|
+
export declare function fromSerializedNode(node: SerializedERBIfNode): ERBIfNode;
|
|
929
|
+
export declare function fromSerializedNode(node: SerializedERBBlockNode): ERBBlockNode;
|
|
930
|
+
export declare function fromSerializedNode(node: SerializedERBWhenNode): ERBWhenNode;
|
|
931
|
+
export declare function fromSerializedNode(node: SerializedERBCaseNode): ERBCaseNode;
|
|
932
|
+
export declare function fromSerializedNode(node: SerializedERBCaseMatchNode): ERBCaseMatchNode;
|
|
933
|
+
export declare function fromSerializedNode(node: SerializedERBWhileNode): ERBWhileNode;
|
|
934
|
+
export declare function fromSerializedNode(node: SerializedERBUntilNode): ERBUntilNode;
|
|
935
|
+
export declare function fromSerializedNode(node: SerializedERBForNode): ERBForNode;
|
|
936
|
+
export declare function fromSerializedNode(node: SerializedERBRescueNode): ERBRescueNode;
|
|
937
|
+
export declare function fromSerializedNode(node: SerializedERBEnsureNode): ERBEnsureNode;
|
|
938
|
+
export declare function fromSerializedNode(node: SerializedERBBeginNode): ERBBeginNode;
|
|
939
|
+
export declare function fromSerializedNode(node: SerializedERBUnlessNode): ERBUnlessNode;
|
|
940
|
+
export declare function fromSerializedNode(node: SerializedERBYieldNode): ERBYieldNode;
|
|
941
|
+
export declare function fromSerializedNode(node: SerializedERBInNode): ERBInNode;
|
|
851
942
|
export declare function fromSerializedNode(node: SerializedNode): Node;
|
|
852
|
-
export type NodeType = "AST_DOCUMENT_NODE" | "AST_LITERAL_NODE" | "AST_HTML_OPEN_TAG_NODE" | "AST_HTML_CLOSE_TAG_NODE" | "
|
|
943
|
+
export type NodeType = "AST_DOCUMENT_NODE" | "AST_LITERAL_NODE" | "AST_HTML_OPEN_TAG_NODE" | "AST_HTML_CLOSE_TAG_NODE" | "AST_HTML_ELEMENT_NODE" | "AST_HTML_ATTRIBUTE_VALUE_NODE" | "AST_HTML_ATTRIBUTE_NAME_NODE" | "AST_HTML_ATTRIBUTE_NODE" | "AST_HTML_TEXT_NODE" | "AST_HTML_COMMENT_NODE" | "AST_HTML_DOCTYPE_NODE" | "AST_XML_DECLARATION_NODE" | "AST_CDATA_NODE" | "AST_WHITESPACE_NODE" | "AST_ERB_CONTENT_NODE" | "AST_ERB_END_NODE" | "AST_ERB_ELSE_NODE" | "AST_ERB_IF_NODE" | "AST_ERB_BLOCK_NODE" | "AST_ERB_WHEN_NODE" | "AST_ERB_CASE_NODE" | "AST_ERB_CASE_MATCH_NODE" | "AST_ERB_WHILE_NODE" | "AST_ERB_UNTIL_NODE" | "AST_ERB_FOR_NODE" | "AST_ERB_RESCUE_NODE" | "AST_ERB_ENSURE_NODE" | "AST_ERB_BEGIN_NODE" | "AST_ERB_UNLESS_NODE" | "AST_ERB_YIELD_NODE" | "AST_ERB_IN_NODE";
|
|
853
944
|
export type ERBNodeType = Extract<NodeType, `AST_ERB_${string}`>;
|
|
854
945
|
export type ERBNode = ERBContentNode | ERBEndNode | ERBElseNode | ERBIfNode | ERBBlockNode | ERBWhenNode | ERBCaseNode | ERBCaseMatchNode | ERBWhileNode | ERBUntilNode | ERBForNode | ERBRescueNode | ERBEnsureNode | ERBBeginNode | ERBUnlessNode | ERBYieldNode | ERBInNode;
|
|
855
946
|
export declare const ERBNodeClasses: (typeof ERBContentNode | typeof ERBEndNode | typeof ERBElseNode | typeof ERBIfNode | typeof ERBBlockNode | typeof ERBWhenNode | typeof ERBCaseNode | typeof ERBCaseMatchNode | typeof ERBWhileNode | typeof ERBUntilNode | typeof ERBForNode | typeof ERBRescueNode | typeof ERBEnsureNode | typeof ERBBeginNode | typeof ERBUnlessNode | typeof ERBYieldNode | typeof ERBInNode)[];
|
|
856
|
-
export declare function isERBNode(node: Node): node is ERBNode;
|