@herb-tools/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/README.md +9 -0
  3. package/dist/herb-core.browser.js +2704 -0
  4. package/dist/herb-core.browser.js.map +1 -0
  5. package/dist/herb-core.cjs +2759 -0
  6. package/dist/herb-core.cjs.map +1 -0
  7. package/dist/herb-core.esm.js +2704 -0
  8. package/dist/herb-core.esm.js.map +1 -0
  9. package/dist/herb-core.umd.js +2765 -0
  10. package/dist/herb-core.umd.js.map +1 -0
  11. package/dist/types/ast.d.ts +4 -0
  12. package/dist/types/backend.d.ts +24 -0
  13. package/dist/types/error.d.ts +16 -0
  14. package/dist/types/errors.d.ts +222 -0
  15. package/dist/types/herb-backend.d.ts +87 -0
  16. package/dist/types/index.d.ts +15 -0
  17. package/dist/types/lex-result.d.ts +50 -0
  18. package/dist/types/location.d.ts +18 -0
  19. package/dist/types/node.d.ts +27 -0
  20. package/dist/types/nodes.d.ts +682 -0
  21. package/dist/types/parse-result.d.ts +62 -0
  22. package/dist/types/position.d.ts +15 -0
  23. package/dist/types/range.d.ts +12 -0
  24. package/dist/types/result.d.ts +10 -0
  25. package/dist/types/token-list.d.ts +16 -0
  26. package/dist/types/token.d.ts +22 -0
  27. package/dist/types/util.d.ts +2 -0
  28. package/dist/types/visitor.d.ts +11 -0
  29. package/dist/types/warning.d.ts +11 -0
  30. package/package.json +49 -0
  31. package/src/ast.ts +7 -0
  32. package/src/backend.ts +85 -0
  33. package/src/error.ts +38 -0
  34. package/src/errors.ts +820 -0
  35. package/src/herb-backend.ts +152 -0
  36. package/src/index.ts +15 -0
  37. package/src/lex-result.ts +78 -0
  38. package/src/location.ts +51 -0
  39. package/src/node.ts +106 -0
  40. package/src/nodes.ts +2294 -0
  41. package/src/parse-result.ts +101 -0
  42. package/src/position.ts +38 -0
  43. package/src/range.ts +35 -0
  44. package/src/result.ts +26 -0
  45. package/src/token-list.ts +57 -0
  46. package/src/token.ts +63 -0
  47. package/src/util.ts +19 -0
  48. package/src/visitor.ts +14 -0
  49. package/src/warning.ts +20 -0
@@ -0,0 +1,682 @@
1
+ import { Node } from "./node.js";
2
+ import { Token, SerializedToken } from "./token.js";
3
+ import { HerbError } from "./error.js";
4
+ import type { SerializedNode, BaseNodeProps } from "./node.js";
5
+ export declare function fromSerializedNode(node: SerializedNode): Node;
6
+ export type SerializedNodeType = string;
7
+ 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_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";
8
+ export interface SerializedDocumentNode extends SerializedNode {
9
+ type: "AST_DOCUMENT_NODE";
10
+ children: SerializedNode[];
11
+ }
12
+ export interface DocumentNodeProps extends BaseNodeProps {
13
+ children: Node[];
14
+ }
15
+ export declare class DocumentNode extends Node {
16
+ readonly children: Node[];
17
+ static from(data: SerializedDocumentNode): DocumentNode;
18
+ constructor(props: DocumentNodeProps);
19
+ childNodes(): Node[];
20
+ recursiveErrors(): HerbError[];
21
+ toJSON(): SerializedDocumentNode;
22
+ treeInspect(): string;
23
+ }
24
+ export interface SerializedLiteralNode extends SerializedNode {
25
+ type: "AST_LITERAL_NODE";
26
+ content: string;
27
+ }
28
+ export interface LiteralNodeProps extends BaseNodeProps {
29
+ content: string;
30
+ }
31
+ export declare class LiteralNode extends Node {
32
+ readonly content: string;
33
+ static from(data: SerializedLiteralNode): LiteralNode;
34
+ constructor(props: LiteralNodeProps);
35
+ childNodes(): Node[];
36
+ recursiveErrors(): HerbError[];
37
+ toJSON(): SerializedLiteralNode;
38
+ treeInspect(): string;
39
+ }
40
+ export interface SerializedHTMLOpenTagNode extends SerializedNode {
41
+ type: "AST_HTML_OPEN_TAG_NODE";
42
+ tag_opening: SerializedToken | null;
43
+ tag_name: SerializedToken | null;
44
+ tag_closing: SerializedToken | null;
45
+ children: SerializedNode[];
46
+ is_void: boolean;
47
+ }
48
+ export interface HTMLOpenTagNodeProps extends BaseNodeProps {
49
+ tag_opening: Token | null;
50
+ tag_name: Token | null;
51
+ tag_closing: Token | null;
52
+ children: Node[];
53
+ is_void: boolean;
54
+ }
55
+ export declare class HTMLOpenTagNode extends Node {
56
+ readonly tag_opening: Token | null;
57
+ readonly tag_name: Token | null;
58
+ readonly tag_closing: Token | null;
59
+ readonly children: Node[];
60
+ readonly is_void: boolean;
61
+ static from(data: SerializedHTMLOpenTagNode): HTMLOpenTagNode;
62
+ constructor(props: HTMLOpenTagNodeProps);
63
+ childNodes(): Node[];
64
+ recursiveErrors(): HerbError[];
65
+ toJSON(): SerializedHTMLOpenTagNode;
66
+ treeInspect(): string;
67
+ }
68
+ export interface SerializedHTMLCloseTagNode extends SerializedNode {
69
+ type: "AST_HTML_CLOSE_TAG_NODE";
70
+ tag_opening: SerializedToken | null;
71
+ tag_name: SerializedToken | null;
72
+ tag_closing: SerializedToken | null;
73
+ }
74
+ export interface HTMLCloseTagNodeProps extends BaseNodeProps {
75
+ tag_opening: Token | null;
76
+ tag_name: Token | null;
77
+ tag_closing: Token | null;
78
+ }
79
+ export declare class HTMLCloseTagNode extends Node {
80
+ readonly tag_opening: Token | null;
81
+ readonly tag_name: Token | null;
82
+ readonly tag_closing: Token | null;
83
+ static from(data: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
84
+ constructor(props: HTMLCloseTagNodeProps);
85
+ childNodes(): Node[];
86
+ recursiveErrors(): HerbError[];
87
+ toJSON(): SerializedHTMLCloseTagNode;
88
+ treeInspect(): string;
89
+ }
90
+ export interface SerializedHTMLSelfCloseTagNode extends SerializedNode {
91
+ type: "AST_HTML_SELF_CLOSE_TAG_NODE";
92
+ tag_opening: SerializedToken | null;
93
+ tag_name: SerializedToken | null;
94
+ attributes: SerializedNode[];
95
+ tag_closing: SerializedToken | null;
96
+ is_void: boolean;
97
+ }
98
+ export interface HTMLSelfCloseTagNodeProps extends BaseNodeProps {
99
+ tag_opening: Token | null;
100
+ tag_name: Token | null;
101
+ attributes: Node[];
102
+ tag_closing: Token | null;
103
+ is_void: boolean;
104
+ }
105
+ export declare class HTMLSelfCloseTagNode extends Node {
106
+ readonly tag_opening: Token | null;
107
+ readonly tag_name: Token | null;
108
+ readonly attributes: Node[];
109
+ readonly tag_closing: Token | null;
110
+ readonly is_void: boolean;
111
+ static from(data: SerializedHTMLSelfCloseTagNode): HTMLSelfCloseTagNode;
112
+ constructor(props: HTMLSelfCloseTagNodeProps);
113
+ childNodes(): Node[];
114
+ recursiveErrors(): HerbError[];
115
+ toJSON(): SerializedHTMLSelfCloseTagNode;
116
+ treeInspect(): string;
117
+ }
118
+ export interface SerializedHTMLElementNode extends SerializedNode {
119
+ type: "AST_HTML_ELEMENT_NODE";
120
+ open_tag: SerializedNode | null;
121
+ tag_name: SerializedToken | null;
122
+ body: SerializedNode[];
123
+ close_tag: SerializedNode | null;
124
+ is_void: boolean;
125
+ }
126
+ export interface HTMLElementNodeProps extends BaseNodeProps {
127
+ open_tag: Node | null;
128
+ tag_name: Token | null;
129
+ body: Node[];
130
+ close_tag: Node | null;
131
+ is_void: boolean;
132
+ }
133
+ export declare class HTMLElementNode extends Node {
134
+ readonly open_tag: Node | null;
135
+ readonly tag_name: Token | null;
136
+ readonly body: Node[];
137
+ readonly close_tag: Node | null;
138
+ readonly is_void: boolean;
139
+ static from(data: SerializedHTMLElementNode): HTMLElementNode;
140
+ constructor(props: HTMLElementNodeProps);
141
+ childNodes(): Node[];
142
+ recursiveErrors(): HerbError[];
143
+ toJSON(): SerializedHTMLElementNode;
144
+ treeInspect(): string;
145
+ }
146
+ export interface SerializedHTMLAttributeValueNode extends SerializedNode {
147
+ type: "AST_HTML_ATTRIBUTE_VALUE_NODE";
148
+ open_quote: SerializedToken | null;
149
+ children: SerializedNode[];
150
+ close_quote: SerializedToken | null;
151
+ quoted: boolean;
152
+ }
153
+ export interface HTMLAttributeValueNodeProps extends BaseNodeProps {
154
+ open_quote: Token | null;
155
+ children: Node[];
156
+ close_quote: Token | null;
157
+ quoted: boolean;
158
+ }
159
+ export declare class HTMLAttributeValueNode extends Node {
160
+ readonly open_quote: Token | null;
161
+ readonly children: Node[];
162
+ readonly close_quote: Token | null;
163
+ readonly quoted: boolean;
164
+ static from(data: SerializedHTMLAttributeValueNode): HTMLAttributeValueNode;
165
+ constructor(props: HTMLAttributeValueNodeProps);
166
+ childNodes(): Node[];
167
+ recursiveErrors(): HerbError[];
168
+ toJSON(): SerializedHTMLAttributeValueNode;
169
+ treeInspect(): string;
170
+ }
171
+ export interface SerializedHTMLAttributeNameNode extends SerializedNode {
172
+ type: "AST_HTML_ATTRIBUTE_NAME_NODE";
173
+ name: SerializedToken | null;
174
+ }
175
+ export interface HTMLAttributeNameNodeProps extends BaseNodeProps {
176
+ name: Token | null;
177
+ }
178
+ export declare class HTMLAttributeNameNode extends Node {
179
+ readonly name: Token | null;
180
+ static from(data: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
181
+ constructor(props: HTMLAttributeNameNodeProps);
182
+ childNodes(): Node[];
183
+ recursiveErrors(): HerbError[];
184
+ toJSON(): SerializedHTMLAttributeNameNode;
185
+ treeInspect(): string;
186
+ }
187
+ export interface SerializedHTMLAttributeNode extends SerializedNode {
188
+ type: "AST_HTML_ATTRIBUTE_NODE";
189
+ name: SerializedNode | null;
190
+ equals: SerializedToken | null;
191
+ value: SerializedNode | null;
192
+ }
193
+ export interface HTMLAttributeNodeProps extends BaseNodeProps {
194
+ name: Node | null;
195
+ equals: Token | null;
196
+ value: Node | null;
197
+ }
198
+ export declare class HTMLAttributeNode extends Node {
199
+ readonly name: Node | null;
200
+ readonly equals: Token | null;
201
+ readonly value: Node | null;
202
+ static from(data: SerializedHTMLAttributeNode): HTMLAttributeNode;
203
+ constructor(props: HTMLAttributeNodeProps);
204
+ childNodes(): Node[];
205
+ recursiveErrors(): HerbError[];
206
+ toJSON(): SerializedHTMLAttributeNode;
207
+ treeInspect(): string;
208
+ }
209
+ export interface SerializedHTMLTextNode extends SerializedNode {
210
+ type: "AST_HTML_TEXT_NODE";
211
+ content: string;
212
+ }
213
+ export interface HTMLTextNodeProps extends BaseNodeProps {
214
+ content: string;
215
+ }
216
+ export declare class HTMLTextNode extends Node {
217
+ readonly content: string;
218
+ static from(data: SerializedHTMLTextNode): HTMLTextNode;
219
+ constructor(props: HTMLTextNodeProps);
220
+ childNodes(): Node[];
221
+ recursiveErrors(): HerbError[];
222
+ toJSON(): SerializedHTMLTextNode;
223
+ treeInspect(): string;
224
+ }
225
+ export interface SerializedHTMLCommentNode extends SerializedNode {
226
+ type: "AST_HTML_COMMENT_NODE";
227
+ comment_start: SerializedToken | null;
228
+ children: SerializedNode[];
229
+ comment_end: SerializedToken | null;
230
+ }
231
+ export interface HTMLCommentNodeProps extends BaseNodeProps {
232
+ comment_start: Token | null;
233
+ children: Node[];
234
+ comment_end: Token | null;
235
+ }
236
+ export declare class HTMLCommentNode extends Node {
237
+ readonly comment_start: Token | null;
238
+ readonly children: Node[];
239
+ readonly comment_end: Token | null;
240
+ static from(data: SerializedHTMLCommentNode): HTMLCommentNode;
241
+ constructor(props: HTMLCommentNodeProps);
242
+ childNodes(): Node[];
243
+ recursiveErrors(): HerbError[];
244
+ toJSON(): SerializedHTMLCommentNode;
245
+ treeInspect(): string;
246
+ }
247
+ export interface SerializedHTMLDoctypeNode extends SerializedNode {
248
+ type: "AST_HTML_DOCTYPE_NODE";
249
+ tag_opening: SerializedToken | null;
250
+ children: SerializedNode[];
251
+ tag_closing: SerializedToken | null;
252
+ }
253
+ export interface HTMLDoctypeNodeProps extends BaseNodeProps {
254
+ tag_opening: Token | null;
255
+ children: Node[];
256
+ tag_closing: Token | null;
257
+ }
258
+ export declare class HTMLDoctypeNode extends Node {
259
+ readonly tag_opening: Token | null;
260
+ readonly children: Node[];
261
+ readonly tag_closing: Token | null;
262
+ static from(data: SerializedHTMLDoctypeNode): HTMLDoctypeNode;
263
+ constructor(props: HTMLDoctypeNodeProps);
264
+ childNodes(): Node[];
265
+ recursiveErrors(): HerbError[];
266
+ toJSON(): SerializedHTMLDoctypeNode;
267
+ treeInspect(): string;
268
+ }
269
+ export interface SerializedWhitespaceNode extends SerializedNode {
270
+ type: "AST_WHITESPACE_NODE";
271
+ value: SerializedToken | null;
272
+ }
273
+ export interface WhitespaceNodeProps extends BaseNodeProps {
274
+ value: Token | null;
275
+ }
276
+ export declare class WhitespaceNode extends Node {
277
+ readonly value: Token | null;
278
+ static from(data: SerializedWhitespaceNode): WhitespaceNode;
279
+ constructor(props: WhitespaceNodeProps);
280
+ childNodes(): Node[];
281
+ recursiveErrors(): HerbError[];
282
+ toJSON(): SerializedWhitespaceNode;
283
+ treeInspect(): string;
284
+ }
285
+ export interface SerializedERBContentNode extends SerializedNode {
286
+ type: "AST_ERB_CONTENT_NODE";
287
+ tag_opening: SerializedToken | null;
288
+ content: SerializedToken | null;
289
+ tag_closing: SerializedToken | null;
290
+ parsed: boolean;
291
+ valid: boolean;
292
+ }
293
+ export interface ERBContentNodeProps extends BaseNodeProps {
294
+ tag_opening: Token | null;
295
+ content: Token | null;
296
+ tag_closing: Token | null;
297
+ parsed: boolean;
298
+ valid: boolean;
299
+ }
300
+ export declare class ERBContentNode extends Node {
301
+ readonly tag_opening: Token | null;
302
+ readonly content: Token | null;
303
+ readonly tag_closing: Token | null;
304
+ readonly parsed: boolean;
305
+ readonly valid: boolean;
306
+ static from(data: SerializedERBContentNode): ERBContentNode;
307
+ constructor(props: ERBContentNodeProps);
308
+ childNodes(): Node[];
309
+ recursiveErrors(): HerbError[];
310
+ toJSON(): SerializedERBContentNode;
311
+ treeInspect(): string;
312
+ }
313
+ export interface SerializedERBEndNode extends SerializedNode {
314
+ type: "AST_ERB_END_NODE";
315
+ tag_opening: SerializedToken | null;
316
+ content: SerializedToken | null;
317
+ tag_closing: SerializedToken | null;
318
+ }
319
+ export interface ERBEndNodeProps extends BaseNodeProps {
320
+ tag_opening: Token | null;
321
+ content: Token | null;
322
+ tag_closing: Token | null;
323
+ }
324
+ export declare class ERBEndNode extends Node {
325
+ readonly tag_opening: Token | null;
326
+ readonly content: Token | null;
327
+ readonly tag_closing: Token | null;
328
+ static from(data: SerializedERBEndNode): ERBEndNode;
329
+ constructor(props: ERBEndNodeProps);
330
+ childNodes(): Node[];
331
+ recursiveErrors(): HerbError[];
332
+ toJSON(): SerializedERBEndNode;
333
+ treeInspect(): string;
334
+ }
335
+ export interface SerializedERBElseNode extends SerializedNode {
336
+ type: "AST_ERB_ELSE_NODE";
337
+ tag_opening: SerializedToken | null;
338
+ content: SerializedToken | null;
339
+ tag_closing: SerializedToken | null;
340
+ statements: SerializedNode[];
341
+ }
342
+ export interface ERBElseNodeProps extends BaseNodeProps {
343
+ tag_opening: Token | null;
344
+ content: Token | null;
345
+ tag_closing: Token | null;
346
+ statements: Node[];
347
+ }
348
+ export declare class ERBElseNode extends Node {
349
+ readonly tag_opening: Token | null;
350
+ readonly content: Token | null;
351
+ readonly tag_closing: Token | null;
352
+ readonly statements: Node[];
353
+ static from(data: SerializedERBElseNode): ERBElseNode;
354
+ constructor(props: ERBElseNodeProps);
355
+ childNodes(): Node[];
356
+ recursiveErrors(): HerbError[];
357
+ toJSON(): SerializedERBElseNode;
358
+ treeInspect(): string;
359
+ }
360
+ export interface SerializedERBIfNode extends SerializedNode {
361
+ type: "AST_ERB_IF_NODE";
362
+ tag_opening: SerializedToken | null;
363
+ content: SerializedToken | null;
364
+ tag_closing: SerializedToken | null;
365
+ statements: SerializedNode[];
366
+ subsequent: SerializedNode | null;
367
+ end_node: SerializedNode | null;
368
+ }
369
+ export interface ERBIfNodeProps extends BaseNodeProps {
370
+ tag_opening: Token | null;
371
+ content: Token | null;
372
+ tag_closing: Token | null;
373
+ statements: Node[];
374
+ subsequent: Node | null;
375
+ end_node: Node | null;
376
+ }
377
+ export declare class ERBIfNode extends Node {
378
+ readonly tag_opening: Token | null;
379
+ readonly content: Token | null;
380
+ readonly tag_closing: Token | null;
381
+ readonly statements: Node[];
382
+ readonly subsequent: Node | null;
383
+ readonly end_node: Node | null;
384
+ static from(data: SerializedERBIfNode): ERBIfNode;
385
+ constructor(props: ERBIfNodeProps);
386
+ childNodes(): Node[];
387
+ recursiveErrors(): HerbError[];
388
+ toJSON(): SerializedERBIfNode;
389
+ treeInspect(): string;
390
+ }
391
+ export interface SerializedERBBlockNode extends SerializedNode {
392
+ type: "AST_ERB_BLOCK_NODE";
393
+ tag_opening: SerializedToken | null;
394
+ content: SerializedToken | null;
395
+ tag_closing: SerializedToken | null;
396
+ body: SerializedNode[];
397
+ end_node: SerializedNode | null;
398
+ }
399
+ export interface ERBBlockNodeProps extends BaseNodeProps {
400
+ tag_opening: Token | null;
401
+ content: Token | null;
402
+ tag_closing: Token | null;
403
+ body: Node[];
404
+ end_node: Node | null;
405
+ }
406
+ export declare class ERBBlockNode extends Node {
407
+ readonly tag_opening: Token | null;
408
+ readonly content: Token | null;
409
+ readonly tag_closing: Token | null;
410
+ readonly body: Node[];
411
+ readonly end_node: Node | null;
412
+ static from(data: SerializedERBBlockNode): ERBBlockNode;
413
+ constructor(props: ERBBlockNodeProps);
414
+ childNodes(): Node[];
415
+ recursiveErrors(): HerbError[];
416
+ toJSON(): SerializedERBBlockNode;
417
+ treeInspect(): string;
418
+ }
419
+ export interface SerializedERBWhenNode extends SerializedNode {
420
+ type: "AST_ERB_WHEN_NODE";
421
+ tag_opening: SerializedToken | null;
422
+ content: SerializedToken | null;
423
+ tag_closing: SerializedToken | null;
424
+ statements: SerializedNode[];
425
+ }
426
+ export interface ERBWhenNodeProps extends BaseNodeProps {
427
+ tag_opening: Token | null;
428
+ content: Token | null;
429
+ tag_closing: Token | null;
430
+ statements: Node[];
431
+ }
432
+ export declare class ERBWhenNode extends Node {
433
+ readonly tag_opening: Token | null;
434
+ readonly content: Token | null;
435
+ readonly tag_closing: Token | null;
436
+ readonly statements: Node[];
437
+ static from(data: SerializedERBWhenNode): ERBWhenNode;
438
+ constructor(props: ERBWhenNodeProps);
439
+ childNodes(): Node[];
440
+ recursiveErrors(): HerbError[];
441
+ toJSON(): SerializedERBWhenNode;
442
+ treeInspect(): string;
443
+ }
444
+ export interface SerializedERBCaseNode extends SerializedNode {
445
+ type: "AST_ERB_CASE_NODE";
446
+ tag_opening: SerializedToken | null;
447
+ content: SerializedToken | null;
448
+ tag_closing: SerializedToken | null;
449
+ children: SerializedNode[];
450
+ conditions: SerializedNode[];
451
+ else_clause: SerializedNode | null;
452
+ end_node: SerializedNode | null;
453
+ }
454
+ export interface ERBCaseNodeProps extends BaseNodeProps {
455
+ tag_opening: Token | null;
456
+ content: Token | null;
457
+ tag_closing: Token | null;
458
+ children: Node[];
459
+ conditions: Node[];
460
+ else_clause: Node | null;
461
+ end_node: Node | null;
462
+ }
463
+ export declare class ERBCaseNode extends Node {
464
+ readonly tag_opening: Token | null;
465
+ readonly content: Token | null;
466
+ readonly tag_closing: Token | null;
467
+ readonly children: Node[];
468
+ readonly conditions: Node[];
469
+ readonly else_clause: Node | null;
470
+ readonly end_node: Node | null;
471
+ static from(data: SerializedERBCaseNode): ERBCaseNode;
472
+ constructor(props: ERBCaseNodeProps);
473
+ childNodes(): Node[];
474
+ recursiveErrors(): HerbError[];
475
+ toJSON(): SerializedERBCaseNode;
476
+ treeInspect(): string;
477
+ }
478
+ export interface SerializedERBWhileNode extends SerializedNode {
479
+ type: "AST_ERB_WHILE_NODE";
480
+ tag_opening: SerializedToken | null;
481
+ content: SerializedToken | null;
482
+ tag_closing: SerializedToken | null;
483
+ statements: SerializedNode[];
484
+ end_node: SerializedNode | null;
485
+ }
486
+ export interface ERBWhileNodeProps extends BaseNodeProps {
487
+ tag_opening: Token | null;
488
+ content: Token | null;
489
+ tag_closing: Token | null;
490
+ statements: Node[];
491
+ end_node: Node | null;
492
+ }
493
+ export declare class ERBWhileNode extends Node {
494
+ readonly tag_opening: Token | null;
495
+ readonly content: Token | null;
496
+ readonly tag_closing: Token | null;
497
+ readonly statements: Node[];
498
+ readonly end_node: Node | null;
499
+ static from(data: SerializedERBWhileNode): ERBWhileNode;
500
+ constructor(props: ERBWhileNodeProps);
501
+ childNodes(): Node[];
502
+ recursiveErrors(): HerbError[];
503
+ toJSON(): SerializedERBWhileNode;
504
+ treeInspect(): string;
505
+ }
506
+ export interface SerializedERBUntilNode extends SerializedNode {
507
+ type: "AST_ERB_UNTIL_NODE";
508
+ tag_opening: SerializedToken | null;
509
+ content: SerializedToken | null;
510
+ tag_closing: SerializedToken | null;
511
+ statements: SerializedNode[];
512
+ end_node: SerializedNode | null;
513
+ }
514
+ export interface ERBUntilNodeProps extends BaseNodeProps {
515
+ tag_opening: Token | null;
516
+ content: Token | null;
517
+ tag_closing: Token | null;
518
+ statements: Node[];
519
+ end_node: Node | null;
520
+ }
521
+ export declare class ERBUntilNode extends Node {
522
+ readonly tag_opening: Token | null;
523
+ readonly content: Token | null;
524
+ readonly tag_closing: Token | null;
525
+ readonly statements: Node[];
526
+ readonly end_node: Node | null;
527
+ static from(data: SerializedERBUntilNode): ERBUntilNode;
528
+ constructor(props: ERBUntilNodeProps);
529
+ childNodes(): Node[];
530
+ recursiveErrors(): HerbError[];
531
+ toJSON(): SerializedERBUntilNode;
532
+ treeInspect(): string;
533
+ }
534
+ export interface SerializedERBForNode extends SerializedNode {
535
+ type: "AST_ERB_FOR_NODE";
536
+ tag_opening: SerializedToken | null;
537
+ content: SerializedToken | null;
538
+ tag_closing: SerializedToken | null;
539
+ statements: SerializedNode[];
540
+ end_node: SerializedNode | null;
541
+ }
542
+ export interface ERBForNodeProps extends BaseNodeProps {
543
+ tag_opening: Token | null;
544
+ content: Token | null;
545
+ tag_closing: Token | null;
546
+ statements: Node[];
547
+ end_node: Node | null;
548
+ }
549
+ export declare class ERBForNode extends Node {
550
+ readonly tag_opening: Token | null;
551
+ readonly content: Token | null;
552
+ readonly tag_closing: Token | null;
553
+ readonly statements: Node[];
554
+ readonly end_node: Node | null;
555
+ static from(data: SerializedERBForNode): ERBForNode;
556
+ constructor(props: ERBForNodeProps);
557
+ childNodes(): Node[];
558
+ recursiveErrors(): HerbError[];
559
+ toJSON(): SerializedERBForNode;
560
+ treeInspect(): string;
561
+ }
562
+ export interface SerializedERBRescueNode extends SerializedNode {
563
+ type: "AST_ERB_RESCUE_NODE";
564
+ tag_opening: SerializedToken | null;
565
+ content: SerializedToken | null;
566
+ tag_closing: SerializedToken | null;
567
+ statements: SerializedNode[];
568
+ subsequent: SerializedNode | null;
569
+ }
570
+ export interface ERBRescueNodeProps extends BaseNodeProps {
571
+ tag_opening: Token | null;
572
+ content: Token | null;
573
+ tag_closing: Token | null;
574
+ statements: Node[];
575
+ subsequent: Node | null;
576
+ }
577
+ export declare class ERBRescueNode extends Node {
578
+ readonly tag_opening: Token | null;
579
+ readonly content: Token | null;
580
+ readonly tag_closing: Token | null;
581
+ readonly statements: Node[];
582
+ readonly subsequent: Node | null;
583
+ static from(data: SerializedERBRescueNode): ERBRescueNode;
584
+ constructor(props: ERBRescueNodeProps);
585
+ childNodes(): Node[];
586
+ recursiveErrors(): HerbError[];
587
+ toJSON(): SerializedERBRescueNode;
588
+ treeInspect(): string;
589
+ }
590
+ export interface SerializedERBEnsureNode extends SerializedNode {
591
+ type: "AST_ERB_ENSURE_NODE";
592
+ tag_opening: SerializedToken | null;
593
+ content: SerializedToken | null;
594
+ tag_closing: SerializedToken | null;
595
+ statements: SerializedNode[];
596
+ }
597
+ export interface ERBEnsureNodeProps extends BaseNodeProps {
598
+ tag_opening: Token | null;
599
+ content: Token | null;
600
+ tag_closing: Token | null;
601
+ statements: Node[];
602
+ }
603
+ export declare class ERBEnsureNode extends Node {
604
+ readonly tag_opening: Token | null;
605
+ readonly content: Token | null;
606
+ readonly tag_closing: Token | null;
607
+ readonly statements: Node[];
608
+ static from(data: SerializedERBEnsureNode): ERBEnsureNode;
609
+ constructor(props: ERBEnsureNodeProps);
610
+ childNodes(): Node[];
611
+ recursiveErrors(): HerbError[];
612
+ toJSON(): SerializedERBEnsureNode;
613
+ treeInspect(): string;
614
+ }
615
+ export interface SerializedERBBeginNode extends SerializedNode {
616
+ type: "AST_ERB_BEGIN_NODE";
617
+ tag_opening: SerializedToken | null;
618
+ content: SerializedToken | null;
619
+ tag_closing: SerializedToken | null;
620
+ statements: SerializedNode[];
621
+ rescue_clause: SerializedNode | null;
622
+ else_clause: SerializedNode | null;
623
+ ensure_clause: SerializedNode | null;
624
+ end_node: SerializedNode | null;
625
+ }
626
+ export interface ERBBeginNodeProps extends BaseNodeProps {
627
+ tag_opening: Token | null;
628
+ content: Token | null;
629
+ tag_closing: Token | null;
630
+ statements: Node[];
631
+ rescue_clause: Node | null;
632
+ else_clause: Node | null;
633
+ ensure_clause: Node | null;
634
+ end_node: Node | null;
635
+ }
636
+ export declare class ERBBeginNode extends Node {
637
+ readonly tag_opening: Token | null;
638
+ readonly content: Token | null;
639
+ readonly tag_closing: Token | null;
640
+ readonly statements: Node[];
641
+ readonly rescue_clause: Node | null;
642
+ readonly else_clause: Node | null;
643
+ readonly ensure_clause: Node | null;
644
+ readonly end_node: Node | null;
645
+ static from(data: SerializedERBBeginNode): ERBBeginNode;
646
+ constructor(props: ERBBeginNodeProps);
647
+ childNodes(): Node[];
648
+ recursiveErrors(): HerbError[];
649
+ toJSON(): SerializedERBBeginNode;
650
+ treeInspect(): string;
651
+ }
652
+ export interface SerializedERBUnlessNode extends SerializedNode {
653
+ type: "AST_ERB_UNLESS_NODE";
654
+ tag_opening: SerializedToken | null;
655
+ content: SerializedToken | null;
656
+ tag_closing: SerializedToken | null;
657
+ statements: SerializedNode[];
658
+ else_clause: SerializedNode | null;
659
+ end_node: SerializedNode | null;
660
+ }
661
+ export interface ERBUnlessNodeProps extends BaseNodeProps {
662
+ tag_opening: Token | null;
663
+ content: Token | null;
664
+ tag_closing: Token | null;
665
+ statements: Node[];
666
+ else_clause: Node | null;
667
+ end_node: Node | null;
668
+ }
669
+ export declare class ERBUnlessNode extends Node {
670
+ readonly tag_opening: Token | null;
671
+ readonly content: Token | null;
672
+ readonly tag_closing: Token | null;
673
+ readonly statements: Node[];
674
+ readonly else_clause: Node | null;
675
+ readonly end_node: Node | null;
676
+ static from(data: SerializedERBUnlessNode): ERBUnlessNode;
677
+ constructor(props: ERBUnlessNodeProps);
678
+ childNodes(): Node[];
679
+ recursiveErrors(): HerbError[];
680
+ toJSON(): SerializedERBUnlessNode;
681
+ treeInspect(): string;
682
+ }