@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.
@@ -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: SerializedNode | null;
141
+ open_tag: SerializedHTMLOpenTagNode | null;
158
142
  tag_name: SerializedToken | null;
159
143
  body: SerializedNode[];
160
- close_tag: SerializedNode | null;
144
+ close_tag: SerializedHTMLCloseTagNode | null;
161
145
  is_void: boolean;
162
146
  }
163
147
  export interface HTMLElementNodeProps extends BaseNodeProps {
164
- open_tag: Node | null;
148
+ open_tag: HTMLOpenTagNode | null;
165
149
  tag_name: Token | null;
166
150
  body: Node[];
167
- close_tag: Node | null;
151
+ close_tag: HTMLCloseTagNode | null;
168
152
  is_void: boolean;
169
153
  }
170
154
  export declare class HTMLElementNode extends Node {
171
- readonly open_tag: Node | null;
155
+ readonly open_tag: HTMLOpenTagNode | null;
172
156
  readonly tag_name: Token | null;
173
157
  readonly body: Node[];
174
- readonly close_tag: Node | null;
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
- name: SerializedToken | null;
200
+ children: SerializedNode[];
215
201
  }
216
202
  export interface HTMLAttributeNameNodeProps extends BaseNodeProps {
217
- name: Token | null;
203
+ children: Node[];
218
204
  }
219
205
  export declare class HTMLAttributeNameNode extends Node {
220
- readonly name: Token | null;
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: SerializedNode | null;
219
+ name: SerializedHTMLAttributeNameNode | null;
233
220
  equals: SerializedToken | null;
234
- value: SerializedNode | null;
221
+ value: SerializedHTMLAttributeValueNode | null;
235
222
  }
236
223
  export interface HTMLAttributeNodeProps extends BaseNodeProps {
237
- name: Node | null;
224
+ name: HTMLAttributeNameNode | null;
238
225
  equals: Token | null;
239
- value: Node | null;
226
+ value: HTMLAttributeValueNode | null;
240
227
  }
241
228
  export declare class HTMLAttributeNode extends Node {
242
- readonly name: Node | null;
229
+ readonly name: HTMLAttributeNameNode | null;
243
230
  readonly equals: Token | null;
244
- readonly value: Node | null;
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: SerializedNode | null;
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: Node | null;
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: Node | null;
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: SerializedNode | null;
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: Node | null;
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: Node | null;
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: SerializedNode | null;
517
- end_node: SerializedNode | null;
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: Node | null;
526
- end_node: Node | null;
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: any[];
534
- readonly else_clause: Node | null;
535
- readonly end_node: Node | null;
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: SerializedNode | null;
553
- end_node: SerializedNode | null;
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: Node | null;
562
- end_node: Node | null;
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: any[];
570
- readonly else_clause: Node | null;
571
- readonly end_node: Node | null;
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: SerializedNode | null;
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: Node | null;
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: Node | null;
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: SerializedNode | null;
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: Node | null;
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: Node | null;
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: SerializedNode | null;
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: Node | null;
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: Node | null;
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: SerializedNode | null;
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: Node | null;
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: Node | null;
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: SerializedNode | null;
735
- else_clause: SerializedNode | null;
736
- ensure_clause: SerializedNode | null;
737
- end_node: SerializedNode | null;
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: Node | null;
745
- else_clause: Node | null;
746
- ensure_clause: Node | null;
747
- end_node: Node | null;
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: Node | null;
755
- readonly else_clause: Node | null;
756
- readonly ensure_clause: Node | null;
757
- readonly end_node: Node | null;
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: SerializedNode | null;
774
- end_node: SerializedNode | null;
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: Node | null;
782
- end_node: Node | null;
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: Node | null;
790
- readonly end_node: Node | null;
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" | "AST_HTML_SELF_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_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";
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;
@@ -0,0 +1,4 @@
1
+ export interface ParserOptions {
2
+ track_whitespace?: boolean;
3
+ }
4
+ export declare const DEFAULT_PARSER_OPTIONS: ParserOptions;