goatlint-parser 0.125.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.
@@ -0,0 +1,2455 @@
1
+ // Auto-generated code, DO NOT EDIT DIRECTLY!
2
+ // To edit this generated file you have to edit `tasks/ast_tools/src/generators/estree_visit.rs`.
3
+
4
+ export { walkProgram };
5
+
6
+ function walkNode(node, visitors) {
7
+ if (node == null) return;
8
+ if (Array.isArray(node)) {
9
+ let len = node.length;
10
+ for (let i = 0; i < len; i++) walkNode(node[i], visitors);
11
+ } else
12
+ switch (node.type) {
13
+ case "DebuggerStatement":
14
+ walkDebuggerStatement(node, visitors);
15
+ break;
16
+ case "EmptyStatement":
17
+ walkEmptyStatement(node, visitors);
18
+ break;
19
+ case "Literal":
20
+ walkLiteral(node, visitors);
21
+ break;
22
+ case "PrivateIdentifier":
23
+ walkPrivateIdentifier(node, visitors);
24
+ break;
25
+ case "Super":
26
+ walkSuper(node, visitors);
27
+ break;
28
+ case "TemplateElement":
29
+ walkTemplateElement(node, visitors);
30
+ break;
31
+ case "ThisExpression":
32
+ walkThisExpression(node, visitors);
33
+ break;
34
+ case "JSXClosingFragment":
35
+ walkJSXClosingFragment(node, visitors);
36
+ break;
37
+ case "JSXEmptyExpression":
38
+ walkJSXEmptyExpression(node, visitors);
39
+ break;
40
+ case "JSXIdentifier":
41
+ walkJSXIdentifier(node, visitors);
42
+ break;
43
+ case "JSXOpeningFragment":
44
+ walkJSXOpeningFragment(node, visitors);
45
+ break;
46
+ case "JSXText":
47
+ walkJSXText(node, visitors);
48
+ break;
49
+ case "TSAnyKeyword":
50
+ walkTSAnyKeyword(node, visitors);
51
+ break;
52
+ case "TSBigIntKeyword":
53
+ walkTSBigIntKeyword(node, visitors);
54
+ break;
55
+ case "TSBooleanKeyword":
56
+ walkTSBooleanKeyword(node, visitors);
57
+ break;
58
+ case "TSIntrinsicKeyword":
59
+ walkTSIntrinsicKeyword(node, visitors);
60
+ break;
61
+ case "TSJSDocUnknownType":
62
+ walkTSJSDocUnknownType(node, visitors);
63
+ break;
64
+ case "TSNeverKeyword":
65
+ walkTSNeverKeyword(node, visitors);
66
+ break;
67
+ case "TSNullKeyword":
68
+ walkTSNullKeyword(node, visitors);
69
+ break;
70
+ case "TSNumberKeyword":
71
+ walkTSNumberKeyword(node, visitors);
72
+ break;
73
+ case "TSObjectKeyword":
74
+ walkTSObjectKeyword(node, visitors);
75
+ break;
76
+ case "TSStringKeyword":
77
+ walkTSStringKeyword(node, visitors);
78
+ break;
79
+ case "TSSymbolKeyword":
80
+ walkTSSymbolKeyword(node, visitors);
81
+ break;
82
+ case "TSThisType":
83
+ walkTSThisType(node, visitors);
84
+ break;
85
+ case "TSUndefinedKeyword":
86
+ walkTSUndefinedKeyword(node, visitors);
87
+ break;
88
+ case "TSUnknownKeyword":
89
+ walkTSUnknownKeyword(node, visitors);
90
+ break;
91
+ case "TSVoidKeyword":
92
+ walkTSVoidKeyword(node, visitors);
93
+ break;
94
+ case "AccessorProperty":
95
+ walkAccessorProperty(node, visitors);
96
+ break;
97
+ case "ArrayExpression":
98
+ walkArrayExpression(node, visitors);
99
+ break;
100
+ case "ArrayPattern":
101
+ walkArrayPattern(node, visitors);
102
+ break;
103
+ case "ArrowFunctionExpression":
104
+ walkArrowFunctionExpression(node, visitors);
105
+ break;
106
+ case "AssignmentExpression":
107
+ walkAssignmentExpression(node, visitors);
108
+ break;
109
+ case "AssignmentPattern":
110
+ walkAssignmentPattern(node, visitors);
111
+ break;
112
+ case "AwaitExpression":
113
+ walkAwaitExpression(node, visitors);
114
+ break;
115
+ case "BinaryExpression":
116
+ walkBinaryExpression(node, visitors);
117
+ break;
118
+ case "BlockStatement":
119
+ walkBlockStatement(node, visitors);
120
+ break;
121
+ case "BreakStatement":
122
+ walkBreakStatement(node, visitors);
123
+ break;
124
+ case "CallExpression":
125
+ walkCallExpression(node, visitors);
126
+ break;
127
+ case "CatchClause":
128
+ walkCatchClause(node, visitors);
129
+ break;
130
+ case "ChainExpression":
131
+ walkChainExpression(node, visitors);
132
+ break;
133
+ case "ClassBody":
134
+ walkClassBody(node, visitors);
135
+ break;
136
+ case "ClassDeclaration":
137
+ walkClassDeclaration(node, visitors);
138
+ break;
139
+ case "ClassExpression":
140
+ walkClassExpression(node, visitors);
141
+ break;
142
+ case "ConditionalExpression":
143
+ walkConditionalExpression(node, visitors);
144
+ break;
145
+ case "ContinueStatement":
146
+ walkContinueStatement(node, visitors);
147
+ break;
148
+ case "Decorator":
149
+ walkDecorator(node, visitors);
150
+ break;
151
+ case "DoWhileStatement":
152
+ walkDoWhileStatement(node, visitors);
153
+ break;
154
+ case "ExportAllDeclaration":
155
+ walkExportAllDeclaration(node, visitors);
156
+ break;
157
+ case "ExportDefaultDeclaration":
158
+ walkExportDefaultDeclaration(node, visitors);
159
+ break;
160
+ case "ExportNamedDeclaration":
161
+ walkExportNamedDeclaration(node, visitors);
162
+ break;
163
+ case "ExportSpecifier":
164
+ walkExportSpecifier(node, visitors);
165
+ break;
166
+ case "ExpressionStatement":
167
+ walkExpressionStatement(node, visitors);
168
+ break;
169
+ case "ForInStatement":
170
+ walkForInStatement(node, visitors);
171
+ break;
172
+ case "ForOfStatement":
173
+ walkForOfStatement(node, visitors);
174
+ break;
175
+ case "ForStatement":
176
+ walkForStatement(node, visitors);
177
+ break;
178
+ case "FunctionDeclaration":
179
+ walkFunctionDeclaration(node, visitors);
180
+ break;
181
+ case "FunctionExpression":
182
+ walkFunctionExpression(node, visitors);
183
+ break;
184
+ case "Identifier":
185
+ walkIdentifier(node, visitors);
186
+ break;
187
+ case "IfStatement":
188
+ walkIfStatement(node, visitors);
189
+ break;
190
+ case "ImportAttribute":
191
+ walkImportAttribute(node, visitors);
192
+ break;
193
+ case "ImportDeclaration":
194
+ walkImportDeclaration(node, visitors);
195
+ break;
196
+ case "ImportDefaultSpecifier":
197
+ walkImportDefaultSpecifier(node, visitors);
198
+ break;
199
+ case "ImportExpression":
200
+ walkImportExpression(node, visitors);
201
+ break;
202
+ case "ImportNamespaceSpecifier":
203
+ walkImportNamespaceSpecifier(node, visitors);
204
+ break;
205
+ case "ImportSpecifier":
206
+ walkImportSpecifier(node, visitors);
207
+ break;
208
+ case "LabeledStatement":
209
+ walkLabeledStatement(node, visitors);
210
+ break;
211
+ case "LogicalExpression":
212
+ walkLogicalExpression(node, visitors);
213
+ break;
214
+ case "MemberExpression":
215
+ walkMemberExpression(node, visitors);
216
+ break;
217
+ case "MetaProperty":
218
+ walkMetaProperty(node, visitors);
219
+ break;
220
+ case "MethodDefinition":
221
+ walkMethodDefinition(node, visitors);
222
+ break;
223
+ case "NewExpression":
224
+ walkNewExpression(node, visitors);
225
+ break;
226
+ case "ObjectExpression":
227
+ walkObjectExpression(node, visitors);
228
+ break;
229
+ case "ObjectPattern":
230
+ walkObjectPattern(node, visitors);
231
+ break;
232
+ case "ParenthesizedExpression":
233
+ walkParenthesizedExpression(node, visitors);
234
+ break;
235
+ case "Program":
236
+ walkProgram(node, visitors);
237
+ break;
238
+ case "Property":
239
+ walkProperty(node, visitors);
240
+ break;
241
+ case "PropertyDefinition":
242
+ walkPropertyDefinition(node, visitors);
243
+ break;
244
+ case "RestElement":
245
+ walkRestElement(node, visitors);
246
+ break;
247
+ case "ReturnStatement":
248
+ walkReturnStatement(node, visitors);
249
+ break;
250
+ case "SequenceExpression":
251
+ walkSequenceExpression(node, visitors);
252
+ break;
253
+ case "SpreadElement":
254
+ walkSpreadElement(node, visitors);
255
+ break;
256
+ case "StaticBlock":
257
+ walkStaticBlock(node, visitors);
258
+ break;
259
+ case "SwitchCase":
260
+ walkSwitchCase(node, visitors);
261
+ break;
262
+ case "SwitchStatement":
263
+ walkSwitchStatement(node, visitors);
264
+ break;
265
+ case "TaggedTemplateExpression":
266
+ walkTaggedTemplateExpression(node, visitors);
267
+ break;
268
+ case "TemplateLiteral":
269
+ walkTemplateLiteral(node, visitors);
270
+ break;
271
+ case "ThrowStatement":
272
+ walkThrowStatement(node, visitors);
273
+ break;
274
+ case "TryStatement":
275
+ walkTryStatement(node, visitors);
276
+ break;
277
+ case "UnaryExpression":
278
+ walkUnaryExpression(node, visitors);
279
+ break;
280
+ case "UpdateExpression":
281
+ walkUpdateExpression(node, visitors);
282
+ break;
283
+ case "V8IntrinsicExpression":
284
+ walkV8IntrinsicExpression(node, visitors);
285
+ break;
286
+ case "VariableDeclaration":
287
+ walkVariableDeclaration(node, visitors);
288
+ break;
289
+ case "VariableDeclarator":
290
+ walkVariableDeclarator(node, visitors);
291
+ break;
292
+ case "WhileStatement":
293
+ walkWhileStatement(node, visitors);
294
+ break;
295
+ case "WithStatement":
296
+ walkWithStatement(node, visitors);
297
+ break;
298
+ case "YieldExpression":
299
+ walkYieldExpression(node, visitors);
300
+ break;
301
+ case "JSXAttribute":
302
+ walkJSXAttribute(node, visitors);
303
+ break;
304
+ case "JSXClosingElement":
305
+ walkJSXClosingElement(node, visitors);
306
+ break;
307
+ case "JSXElement":
308
+ walkJSXElement(node, visitors);
309
+ break;
310
+ case "JSXExpressionContainer":
311
+ walkJSXExpressionContainer(node, visitors);
312
+ break;
313
+ case "JSXFragment":
314
+ walkJSXFragment(node, visitors);
315
+ break;
316
+ case "JSXMemberExpression":
317
+ walkJSXMemberExpression(node, visitors);
318
+ break;
319
+ case "JSXNamespacedName":
320
+ walkJSXNamespacedName(node, visitors);
321
+ break;
322
+ case "JSXOpeningElement":
323
+ walkJSXOpeningElement(node, visitors);
324
+ break;
325
+ case "JSXSpreadAttribute":
326
+ walkJSXSpreadAttribute(node, visitors);
327
+ break;
328
+ case "JSXSpreadChild":
329
+ walkJSXSpreadChild(node, visitors);
330
+ break;
331
+ case "TSAbstractAccessorProperty":
332
+ walkTSAbstractAccessorProperty(node, visitors);
333
+ break;
334
+ case "TSAbstractMethodDefinition":
335
+ walkTSAbstractMethodDefinition(node, visitors);
336
+ break;
337
+ case "TSAbstractPropertyDefinition":
338
+ walkTSAbstractPropertyDefinition(node, visitors);
339
+ break;
340
+ case "TSArrayType":
341
+ walkTSArrayType(node, visitors);
342
+ break;
343
+ case "TSAsExpression":
344
+ walkTSAsExpression(node, visitors);
345
+ break;
346
+ case "TSCallSignatureDeclaration":
347
+ walkTSCallSignatureDeclaration(node, visitors);
348
+ break;
349
+ case "TSClassImplements":
350
+ walkTSClassImplements(node, visitors);
351
+ break;
352
+ case "TSConditionalType":
353
+ walkTSConditionalType(node, visitors);
354
+ break;
355
+ case "TSConstructSignatureDeclaration":
356
+ walkTSConstructSignatureDeclaration(node, visitors);
357
+ break;
358
+ case "TSConstructorType":
359
+ walkTSConstructorType(node, visitors);
360
+ break;
361
+ case "TSDeclareFunction":
362
+ walkTSDeclareFunction(node, visitors);
363
+ break;
364
+ case "TSEmptyBodyFunctionExpression":
365
+ walkTSEmptyBodyFunctionExpression(node, visitors);
366
+ break;
367
+ case "TSEnumBody":
368
+ walkTSEnumBody(node, visitors);
369
+ break;
370
+ case "TSEnumDeclaration":
371
+ walkTSEnumDeclaration(node, visitors);
372
+ break;
373
+ case "TSEnumMember":
374
+ walkTSEnumMember(node, visitors);
375
+ break;
376
+ case "TSExportAssignment":
377
+ walkTSExportAssignment(node, visitors);
378
+ break;
379
+ case "TSExternalModuleReference":
380
+ walkTSExternalModuleReference(node, visitors);
381
+ break;
382
+ case "TSFunctionType":
383
+ walkTSFunctionType(node, visitors);
384
+ break;
385
+ case "TSImportEqualsDeclaration":
386
+ walkTSImportEqualsDeclaration(node, visitors);
387
+ break;
388
+ case "TSImportType":
389
+ walkTSImportType(node, visitors);
390
+ break;
391
+ case "TSIndexSignature":
392
+ walkTSIndexSignature(node, visitors);
393
+ break;
394
+ case "TSIndexedAccessType":
395
+ walkTSIndexedAccessType(node, visitors);
396
+ break;
397
+ case "TSInferType":
398
+ walkTSInferType(node, visitors);
399
+ break;
400
+ case "TSInstantiationExpression":
401
+ walkTSInstantiationExpression(node, visitors);
402
+ break;
403
+ case "TSInterfaceBody":
404
+ walkTSInterfaceBody(node, visitors);
405
+ break;
406
+ case "TSInterfaceDeclaration":
407
+ walkTSInterfaceDeclaration(node, visitors);
408
+ break;
409
+ case "TSInterfaceHeritage":
410
+ walkTSInterfaceHeritage(node, visitors);
411
+ break;
412
+ case "TSIntersectionType":
413
+ walkTSIntersectionType(node, visitors);
414
+ break;
415
+ case "TSJSDocNonNullableType":
416
+ walkTSJSDocNonNullableType(node, visitors);
417
+ break;
418
+ case "TSJSDocNullableType":
419
+ walkTSJSDocNullableType(node, visitors);
420
+ break;
421
+ case "TSLiteralType":
422
+ walkTSLiteralType(node, visitors);
423
+ break;
424
+ case "TSMappedType":
425
+ walkTSMappedType(node, visitors);
426
+ break;
427
+ case "TSMethodSignature":
428
+ walkTSMethodSignature(node, visitors);
429
+ break;
430
+ case "TSModuleBlock":
431
+ walkTSModuleBlock(node, visitors);
432
+ break;
433
+ case "TSModuleDeclaration":
434
+ walkTSModuleDeclaration(node, visitors);
435
+ break;
436
+ case "TSNamedTupleMember":
437
+ walkTSNamedTupleMember(node, visitors);
438
+ break;
439
+ case "TSNamespaceExportDeclaration":
440
+ walkTSNamespaceExportDeclaration(node, visitors);
441
+ break;
442
+ case "TSNonNullExpression":
443
+ walkTSNonNullExpression(node, visitors);
444
+ break;
445
+ case "TSOptionalType":
446
+ walkTSOptionalType(node, visitors);
447
+ break;
448
+ case "TSParameterProperty":
449
+ walkTSParameterProperty(node, visitors);
450
+ break;
451
+ case "TSParenthesizedType":
452
+ walkTSParenthesizedType(node, visitors);
453
+ break;
454
+ case "TSPropertySignature":
455
+ walkTSPropertySignature(node, visitors);
456
+ break;
457
+ case "TSQualifiedName":
458
+ walkTSQualifiedName(node, visitors);
459
+ break;
460
+ case "TSRestType":
461
+ walkTSRestType(node, visitors);
462
+ break;
463
+ case "TSSatisfiesExpression":
464
+ walkTSSatisfiesExpression(node, visitors);
465
+ break;
466
+ case "TSTemplateLiteralType":
467
+ walkTSTemplateLiteralType(node, visitors);
468
+ break;
469
+ case "TSTupleType":
470
+ walkTSTupleType(node, visitors);
471
+ break;
472
+ case "TSTypeAliasDeclaration":
473
+ walkTSTypeAliasDeclaration(node, visitors);
474
+ break;
475
+ case "TSTypeAnnotation":
476
+ walkTSTypeAnnotation(node, visitors);
477
+ break;
478
+ case "TSTypeAssertion":
479
+ walkTSTypeAssertion(node, visitors);
480
+ break;
481
+ case "TSTypeLiteral":
482
+ walkTSTypeLiteral(node, visitors);
483
+ break;
484
+ case "TSTypeOperator":
485
+ walkTSTypeOperator(node, visitors);
486
+ break;
487
+ case "TSTypeParameter":
488
+ walkTSTypeParameter(node, visitors);
489
+ break;
490
+ case "TSTypeParameterDeclaration":
491
+ walkTSTypeParameterDeclaration(node, visitors);
492
+ break;
493
+ case "TSTypeParameterInstantiation":
494
+ walkTSTypeParameterInstantiation(node, visitors);
495
+ break;
496
+ case "TSTypePredicate":
497
+ walkTSTypePredicate(node, visitors);
498
+ break;
499
+ case "TSTypeQuery":
500
+ walkTSTypeQuery(node, visitors);
501
+ break;
502
+ case "TSTypeReference":
503
+ walkTSTypeReference(node, visitors);
504
+ break;
505
+ case "TSUnionType":
506
+ walkTSUnionType(node, visitors);
507
+ break;
508
+ }
509
+ }
510
+
511
+ function walkDebuggerStatement(node, visitors) {
512
+ let visit = visitors[0];
513
+ visit !== null && visit(node);
514
+ }
515
+
516
+ function walkEmptyStatement(node, visitors) {
517
+ let visit = visitors[1];
518
+ visit !== null && visit(node);
519
+ }
520
+
521
+ function walkLiteral(node, visitors) {
522
+ let visit = visitors[2];
523
+ visit !== null && visit(node);
524
+ }
525
+
526
+ function walkPrivateIdentifier(node, visitors) {
527
+ let visit = visitors[3];
528
+ visit !== null && visit(node);
529
+ }
530
+
531
+ function walkSuper(node, visitors) {
532
+ let visit = visitors[4];
533
+ visit !== null && visit(node);
534
+ }
535
+
536
+ function walkTemplateElement(node, visitors) {
537
+ let visit = visitors[5];
538
+ visit !== null && visit(node);
539
+ }
540
+
541
+ function walkThisExpression(node, visitors) {
542
+ let visit = visitors[6];
543
+ visit !== null && visit(node);
544
+ }
545
+
546
+ function walkJSXClosingFragment(node, visitors) {
547
+ let visit = visitors[7];
548
+ visit !== null && visit(node);
549
+ }
550
+
551
+ function walkJSXEmptyExpression(node, visitors) {
552
+ let visit = visitors[8];
553
+ visit !== null && visit(node);
554
+ }
555
+
556
+ function walkJSXIdentifier(node, visitors) {
557
+ let visit = visitors[9];
558
+ visit !== null && visit(node);
559
+ }
560
+
561
+ function walkJSXOpeningFragment(node, visitors) {
562
+ let visit = visitors[10];
563
+ visit !== null && visit(node);
564
+ }
565
+
566
+ function walkJSXText(node, visitors) {
567
+ let visit = visitors[11];
568
+ visit !== null && visit(node);
569
+ }
570
+
571
+ function walkTSAnyKeyword(node, visitors) {
572
+ let visit = visitors[12];
573
+ visit !== null && visit(node);
574
+ }
575
+
576
+ function walkTSBigIntKeyword(node, visitors) {
577
+ let visit = visitors[13];
578
+ visit !== null && visit(node);
579
+ }
580
+
581
+ function walkTSBooleanKeyword(node, visitors) {
582
+ let visit = visitors[14];
583
+ visit !== null && visit(node);
584
+ }
585
+
586
+ function walkTSIntrinsicKeyword(node, visitors) {
587
+ let visit = visitors[15];
588
+ visit !== null && visit(node);
589
+ }
590
+
591
+ function walkTSJSDocUnknownType(node, visitors) {
592
+ let visit = visitors[16];
593
+ visit !== null && visit(node);
594
+ }
595
+
596
+ function walkTSNeverKeyword(node, visitors) {
597
+ let visit = visitors[17];
598
+ visit !== null && visit(node);
599
+ }
600
+
601
+ function walkTSNullKeyword(node, visitors) {
602
+ let visit = visitors[18];
603
+ visit !== null && visit(node);
604
+ }
605
+
606
+ function walkTSNumberKeyword(node, visitors) {
607
+ let visit = visitors[19];
608
+ visit !== null && visit(node);
609
+ }
610
+
611
+ function walkTSObjectKeyword(node, visitors) {
612
+ let visit = visitors[20];
613
+ visit !== null && visit(node);
614
+ }
615
+
616
+ function walkTSStringKeyword(node, visitors) {
617
+ let visit = visitors[21];
618
+ visit !== null && visit(node);
619
+ }
620
+
621
+ function walkTSSymbolKeyword(node, visitors) {
622
+ let visit = visitors[22];
623
+ visit !== null && visit(node);
624
+ }
625
+
626
+ function walkTSThisType(node, visitors) {
627
+ let visit = visitors[23];
628
+ visit !== null && visit(node);
629
+ }
630
+
631
+ function walkTSUndefinedKeyword(node, visitors) {
632
+ let visit = visitors[24];
633
+ visit !== null && visit(node);
634
+ }
635
+
636
+ function walkTSUnknownKeyword(node, visitors) {
637
+ let visit = visitors[25];
638
+ visit !== null && visit(node);
639
+ }
640
+
641
+ function walkTSVoidKeyword(node, visitors) {
642
+ let visit = visitors[26];
643
+ visit !== null && visit(node);
644
+ }
645
+
646
+ function walkAccessorProperty(node, visitors) {
647
+ let enterExit = visitors[27],
648
+ exit = null,
649
+ enter;
650
+ if (enterExit !== null) {
651
+ ({ enter, exit } = enterExit);
652
+ enter !== null && enter(node);
653
+ }
654
+ walkNode(node.decorators, visitors);
655
+ walkNode(node.key, visitors);
656
+ walkNode(node.typeAnnotation, visitors);
657
+ walkNode(node.value, visitors);
658
+ exit !== null && exit(node);
659
+ }
660
+
661
+ function walkArrayExpression(node, visitors) {
662
+ let enterExit = visitors[28],
663
+ exit = null,
664
+ enter;
665
+ if (enterExit !== null) {
666
+ ({ enter, exit } = enterExit);
667
+ enter !== null && enter(node);
668
+ }
669
+ walkNode(node.elements, visitors);
670
+ exit !== null && exit(node);
671
+ }
672
+
673
+ function walkArrayPattern(node, visitors) {
674
+ let enterExit = visitors[29],
675
+ exit = null,
676
+ enter;
677
+ if (enterExit !== null) {
678
+ ({ enter, exit } = enterExit);
679
+ enter !== null && enter(node);
680
+ }
681
+ walkNode(node.decorators, visitors);
682
+ walkNode(node.elements, visitors);
683
+ walkNode(node.typeAnnotation, visitors);
684
+ exit !== null && exit(node);
685
+ }
686
+
687
+ function walkArrowFunctionExpression(node, visitors) {
688
+ let enterExit = visitors[30],
689
+ exit = null,
690
+ enter;
691
+ if (enterExit !== null) {
692
+ ({ enter, exit } = enterExit);
693
+ enter !== null && enter(node);
694
+ }
695
+ walkNode(node.typeParameters, visitors);
696
+ walkNode(node.params, visitors);
697
+ walkNode(node.returnType, visitors);
698
+ walkNode(node.body, visitors);
699
+ exit !== null && exit(node);
700
+ }
701
+
702
+ function walkAssignmentExpression(node, visitors) {
703
+ let enterExit = visitors[31],
704
+ exit = null,
705
+ enter;
706
+ if (enterExit !== null) {
707
+ ({ enter, exit } = enterExit);
708
+ enter !== null && enter(node);
709
+ }
710
+ walkNode(node.left, visitors);
711
+ walkNode(node.right, visitors);
712
+ exit !== null && exit(node);
713
+ }
714
+
715
+ function walkAssignmentPattern(node, visitors) {
716
+ let enterExit = visitors[32],
717
+ exit = null,
718
+ enter;
719
+ if (enterExit !== null) {
720
+ ({ enter, exit } = enterExit);
721
+ enter !== null && enter(node);
722
+ }
723
+ walkNode(node.decorators, visitors);
724
+ walkNode(node.left, visitors);
725
+ walkNode(node.right, visitors);
726
+ walkNode(node.typeAnnotation, visitors);
727
+ exit !== null && exit(node);
728
+ }
729
+
730
+ function walkAwaitExpression(node, visitors) {
731
+ let enterExit = visitors[33],
732
+ exit = null,
733
+ enter;
734
+ if (enterExit !== null) {
735
+ ({ enter, exit } = enterExit);
736
+ enter !== null && enter(node);
737
+ }
738
+ walkNode(node.argument, visitors);
739
+ exit !== null && exit(node);
740
+ }
741
+
742
+ function walkBinaryExpression(node, visitors) {
743
+ let enterExit = visitors[34],
744
+ exit = null,
745
+ enter;
746
+ if (enterExit !== null) {
747
+ ({ enter, exit } = enterExit);
748
+ enter !== null && enter(node);
749
+ }
750
+ walkNode(node.left, visitors);
751
+ walkNode(node.right, visitors);
752
+ exit !== null && exit(node);
753
+ }
754
+
755
+ function walkBlockStatement(node, visitors) {
756
+ let enterExit = visitors[35],
757
+ exit = null,
758
+ enter;
759
+ if (enterExit !== null) {
760
+ ({ enter, exit } = enterExit);
761
+ enter !== null && enter(node);
762
+ }
763
+ walkNode(node.body, visitors);
764
+ exit !== null && exit(node);
765
+ }
766
+
767
+ function walkBreakStatement(node, visitors) {
768
+ let enterExit = visitors[36],
769
+ exit = null,
770
+ enter;
771
+ if (enterExit !== null) {
772
+ ({ enter, exit } = enterExit);
773
+ enter !== null && enter(node);
774
+ }
775
+ walkNode(node.label, visitors);
776
+ exit !== null && exit(node);
777
+ }
778
+
779
+ function walkCallExpression(node, visitors) {
780
+ let enterExit = visitors[37],
781
+ exit = null,
782
+ enter;
783
+ if (enterExit !== null) {
784
+ ({ enter, exit } = enterExit);
785
+ enter !== null && enter(node);
786
+ }
787
+ walkNode(node.callee, visitors);
788
+ walkNode(node.typeArguments, visitors);
789
+ walkNode(node.arguments, visitors);
790
+ exit !== null && exit(node);
791
+ }
792
+
793
+ function walkCatchClause(node, visitors) {
794
+ let enterExit = visitors[38],
795
+ exit = null,
796
+ enter;
797
+ if (enterExit !== null) {
798
+ ({ enter, exit } = enterExit);
799
+ enter !== null && enter(node);
800
+ }
801
+ walkNode(node.param, visitors);
802
+ walkNode(node.body, visitors);
803
+ exit !== null && exit(node);
804
+ }
805
+
806
+ function walkChainExpression(node, visitors) {
807
+ let enterExit = visitors[39],
808
+ exit = null,
809
+ enter;
810
+ if (enterExit !== null) {
811
+ ({ enter, exit } = enterExit);
812
+ enter !== null && enter(node);
813
+ }
814
+ walkNode(node.expression, visitors);
815
+ exit !== null && exit(node);
816
+ }
817
+
818
+ function walkClassBody(node, visitors) {
819
+ let enterExit = visitors[40],
820
+ exit = null,
821
+ enter;
822
+ if (enterExit !== null) {
823
+ ({ enter, exit } = enterExit);
824
+ enter !== null && enter(node);
825
+ }
826
+ walkNode(node.body, visitors);
827
+ exit !== null && exit(node);
828
+ }
829
+
830
+ function walkClassDeclaration(node, visitors) {
831
+ let enterExit = visitors[41],
832
+ exit = null,
833
+ enter;
834
+ if (enterExit !== null) {
835
+ ({ enter, exit } = enterExit);
836
+ enter !== null && enter(node);
837
+ }
838
+ walkNode(node.decorators, visitors);
839
+ walkNode(node.id, visitors);
840
+ walkNode(node.typeParameters, visitors);
841
+ walkNode(node.superClass, visitors);
842
+ walkNode(node.superTypeArguments, visitors);
843
+ walkNode(node.implements, visitors);
844
+ walkNode(node.body, visitors);
845
+ exit !== null && exit(node);
846
+ }
847
+
848
+ function walkClassExpression(node, visitors) {
849
+ let enterExit = visitors[42],
850
+ exit = null,
851
+ enter;
852
+ if (enterExit !== null) {
853
+ ({ enter, exit } = enterExit);
854
+ enter !== null && enter(node);
855
+ }
856
+ walkNode(node.decorators, visitors);
857
+ walkNode(node.id, visitors);
858
+ walkNode(node.typeParameters, visitors);
859
+ walkNode(node.superClass, visitors);
860
+ walkNode(node.superTypeArguments, visitors);
861
+ walkNode(node.implements, visitors);
862
+ walkNode(node.body, visitors);
863
+ exit !== null && exit(node);
864
+ }
865
+
866
+ function walkConditionalExpression(node, visitors) {
867
+ let enterExit = visitors[43],
868
+ exit = null,
869
+ enter;
870
+ if (enterExit !== null) {
871
+ ({ enter, exit } = enterExit);
872
+ enter !== null && enter(node);
873
+ }
874
+ walkNode(node.test, visitors);
875
+ walkNode(node.consequent, visitors);
876
+ walkNode(node.alternate, visitors);
877
+ exit !== null && exit(node);
878
+ }
879
+
880
+ function walkContinueStatement(node, visitors) {
881
+ let enterExit = visitors[44],
882
+ exit = null,
883
+ enter;
884
+ if (enterExit !== null) {
885
+ ({ enter, exit } = enterExit);
886
+ enter !== null && enter(node);
887
+ }
888
+ walkNode(node.label, visitors);
889
+ exit !== null && exit(node);
890
+ }
891
+
892
+ function walkDecorator(node, visitors) {
893
+ let enterExit = visitors[45],
894
+ exit = null,
895
+ enter;
896
+ if (enterExit !== null) {
897
+ ({ enter, exit } = enterExit);
898
+ enter !== null && enter(node);
899
+ }
900
+ walkNode(node.expression, visitors);
901
+ exit !== null && exit(node);
902
+ }
903
+
904
+ function walkDoWhileStatement(node, visitors) {
905
+ let enterExit = visitors[46],
906
+ exit = null,
907
+ enter;
908
+ if (enterExit !== null) {
909
+ ({ enter, exit } = enterExit);
910
+ enter !== null && enter(node);
911
+ }
912
+ walkNode(node.body, visitors);
913
+ walkNode(node.test, visitors);
914
+ exit !== null && exit(node);
915
+ }
916
+
917
+ function walkExportAllDeclaration(node, visitors) {
918
+ let enterExit = visitors[47],
919
+ exit = null,
920
+ enter;
921
+ if (enterExit !== null) {
922
+ ({ enter, exit } = enterExit);
923
+ enter !== null && enter(node);
924
+ }
925
+ walkNode(node.exported, visitors);
926
+ walkNode(node.source, visitors);
927
+ walkNode(node.attributes, visitors);
928
+ exit !== null && exit(node);
929
+ }
930
+
931
+ function walkExportDefaultDeclaration(node, visitors) {
932
+ let enterExit = visitors[48],
933
+ exit = null,
934
+ enter;
935
+ if (enterExit !== null) {
936
+ ({ enter, exit } = enterExit);
937
+ enter !== null && enter(node);
938
+ }
939
+ walkNode(node.declaration, visitors);
940
+ exit !== null && exit(node);
941
+ }
942
+
943
+ function walkExportNamedDeclaration(node, visitors) {
944
+ let enterExit = visitors[49],
945
+ exit = null,
946
+ enter;
947
+ if (enterExit !== null) {
948
+ ({ enter, exit } = enterExit);
949
+ enter !== null && enter(node);
950
+ }
951
+ walkNode(node.declaration, visitors);
952
+ walkNode(node.specifiers, visitors);
953
+ walkNode(node.source, visitors);
954
+ walkNode(node.attributes, visitors);
955
+ exit !== null && exit(node);
956
+ }
957
+
958
+ function walkExportSpecifier(node, visitors) {
959
+ let enterExit = visitors[50],
960
+ exit = null,
961
+ enter;
962
+ if (enterExit !== null) {
963
+ ({ enter, exit } = enterExit);
964
+ enter !== null && enter(node);
965
+ }
966
+ walkNode(node.local, visitors);
967
+ walkNode(node.exported, visitors);
968
+ exit !== null && exit(node);
969
+ }
970
+
971
+ function walkExpressionStatement(node, visitors) {
972
+ let enterExit = visitors[51],
973
+ exit = null,
974
+ enter;
975
+ if (enterExit !== null) {
976
+ ({ enter, exit } = enterExit);
977
+ enter !== null && enter(node);
978
+ }
979
+ walkNode(node.expression, visitors);
980
+ exit !== null && exit(node);
981
+ }
982
+
983
+ function walkForInStatement(node, visitors) {
984
+ let enterExit = visitors[52],
985
+ exit = null,
986
+ enter;
987
+ if (enterExit !== null) {
988
+ ({ enter, exit } = enterExit);
989
+ enter !== null && enter(node);
990
+ }
991
+ walkNode(node.left, visitors);
992
+ walkNode(node.right, visitors);
993
+ walkNode(node.body, visitors);
994
+ exit !== null && exit(node);
995
+ }
996
+
997
+ function walkForOfStatement(node, visitors) {
998
+ let enterExit = visitors[53],
999
+ exit = null,
1000
+ enter;
1001
+ if (enterExit !== null) {
1002
+ ({ enter, exit } = enterExit);
1003
+ enter !== null && enter(node);
1004
+ }
1005
+ walkNode(node.left, visitors);
1006
+ walkNode(node.right, visitors);
1007
+ walkNode(node.body, visitors);
1008
+ exit !== null && exit(node);
1009
+ }
1010
+
1011
+ function walkForStatement(node, visitors) {
1012
+ let enterExit = visitors[54],
1013
+ exit = null,
1014
+ enter;
1015
+ if (enterExit !== null) {
1016
+ ({ enter, exit } = enterExit);
1017
+ enter !== null && enter(node);
1018
+ }
1019
+ walkNode(node.init, visitors);
1020
+ walkNode(node.test, visitors);
1021
+ walkNode(node.update, visitors);
1022
+ walkNode(node.body, visitors);
1023
+ exit !== null && exit(node);
1024
+ }
1025
+
1026
+ function walkFunctionDeclaration(node, visitors) {
1027
+ let enterExit = visitors[55],
1028
+ exit = null,
1029
+ enter;
1030
+ if (enterExit !== null) {
1031
+ ({ enter, exit } = enterExit);
1032
+ enter !== null && enter(node);
1033
+ }
1034
+ walkNode(node.id, visitors);
1035
+ walkNode(node.typeParameters, visitors);
1036
+ walkNode(node.params, visitors);
1037
+ walkNode(node.returnType, visitors);
1038
+ walkNode(node.body, visitors);
1039
+ exit !== null && exit(node);
1040
+ }
1041
+
1042
+ function walkFunctionExpression(node, visitors) {
1043
+ let enterExit = visitors[56],
1044
+ exit = null,
1045
+ enter;
1046
+ if (enterExit !== null) {
1047
+ ({ enter, exit } = enterExit);
1048
+ enter !== null && enter(node);
1049
+ }
1050
+ walkNode(node.id, visitors);
1051
+ walkNode(node.typeParameters, visitors);
1052
+ walkNode(node.params, visitors);
1053
+ walkNode(node.returnType, visitors);
1054
+ walkNode(node.body, visitors);
1055
+ exit !== null && exit(node);
1056
+ }
1057
+
1058
+ function walkIdentifier(node, visitors) {
1059
+ let enterExit = visitors[57],
1060
+ exit = null,
1061
+ enter;
1062
+ if (enterExit !== null) {
1063
+ ({ enter, exit } = enterExit);
1064
+ enter !== null && enter(node);
1065
+ }
1066
+ walkNode(node.decorators, visitors);
1067
+ walkNode(node.typeAnnotation, visitors);
1068
+ exit !== null && exit(node);
1069
+ }
1070
+
1071
+ function walkIfStatement(node, visitors) {
1072
+ let enterExit = visitors[58],
1073
+ exit = null,
1074
+ enter;
1075
+ if (enterExit !== null) {
1076
+ ({ enter, exit } = enterExit);
1077
+ enter !== null && enter(node);
1078
+ }
1079
+ walkNode(node.test, visitors);
1080
+ walkNode(node.consequent, visitors);
1081
+ walkNode(node.alternate, visitors);
1082
+ exit !== null && exit(node);
1083
+ }
1084
+
1085
+ function walkImportAttribute(node, visitors) {
1086
+ let enterExit = visitors[59],
1087
+ exit = null,
1088
+ enter;
1089
+ if (enterExit !== null) {
1090
+ ({ enter, exit } = enterExit);
1091
+ enter !== null && enter(node);
1092
+ }
1093
+ walkNode(node.key, visitors);
1094
+ walkNode(node.value, visitors);
1095
+ exit !== null && exit(node);
1096
+ }
1097
+
1098
+ function walkImportDeclaration(node, visitors) {
1099
+ let enterExit = visitors[60],
1100
+ exit = null,
1101
+ enter;
1102
+ if (enterExit !== null) {
1103
+ ({ enter, exit } = enterExit);
1104
+ enter !== null && enter(node);
1105
+ }
1106
+ walkNode(node.specifiers, visitors);
1107
+ walkNode(node.source, visitors);
1108
+ walkNode(node.attributes, visitors);
1109
+ exit !== null && exit(node);
1110
+ }
1111
+
1112
+ function walkImportDefaultSpecifier(node, visitors) {
1113
+ let enterExit = visitors[61],
1114
+ exit = null,
1115
+ enter;
1116
+ if (enterExit !== null) {
1117
+ ({ enter, exit } = enterExit);
1118
+ enter !== null && enter(node);
1119
+ }
1120
+ walkNode(node.local, visitors);
1121
+ exit !== null && exit(node);
1122
+ }
1123
+
1124
+ function walkImportExpression(node, visitors) {
1125
+ let enterExit = visitors[62],
1126
+ exit = null,
1127
+ enter;
1128
+ if (enterExit !== null) {
1129
+ ({ enter, exit } = enterExit);
1130
+ enter !== null && enter(node);
1131
+ }
1132
+ walkNode(node.source, visitors);
1133
+ walkNode(node.options, visitors);
1134
+ exit !== null && exit(node);
1135
+ }
1136
+
1137
+ function walkImportNamespaceSpecifier(node, visitors) {
1138
+ let enterExit = visitors[63],
1139
+ exit = null,
1140
+ enter;
1141
+ if (enterExit !== null) {
1142
+ ({ enter, exit } = enterExit);
1143
+ enter !== null && enter(node);
1144
+ }
1145
+ walkNode(node.local, visitors);
1146
+ exit !== null && exit(node);
1147
+ }
1148
+
1149
+ function walkImportSpecifier(node, visitors) {
1150
+ let enterExit = visitors[64],
1151
+ exit = null,
1152
+ enter;
1153
+ if (enterExit !== null) {
1154
+ ({ enter, exit } = enterExit);
1155
+ enter !== null && enter(node);
1156
+ }
1157
+ walkNode(node.imported, visitors);
1158
+ walkNode(node.local, visitors);
1159
+ exit !== null && exit(node);
1160
+ }
1161
+
1162
+ function walkLabeledStatement(node, visitors) {
1163
+ let enterExit = visitors[65],
1164
+ exit = null,
1165
+ enter;
1166
+ if (enterExit !== null) {
1167
+ ({ enter, exit } = enterExit);
1168
+ enter !== null && enter(node);
1169
+ }
1170
+ walkNode(node.label, visitors);
1171
+ walkNode(node.body, visitors);
1172
+ exit !== null && exit(node);
1173
+ }
1174
+
1175
+ function walkLogicalExpression(node, visitors) {
1176
+ let enterExit = visitors[66],
1177
+ exit = null,
1178
+ enter;
1179
+ if (enterExit !== null) {
1180
+ ({ enter, exit } = enterExit);
1181
+ enter !== null && enter(node);
1182
+ }
1183
+ walkNode(node.left, visitors);
1184
+ walkNode(node.right, visitors);
1185
+ exit !== null && exit(node);
1186
+ }
1187
+
1188
+ function walkMemberExpression(node, visitors) {
1189
+ let enterExit = visitors[67],
1190
+ exit = null,
1191
+ enter;
1192
+ if (enterExit !== null) {
1193
+ ({ enter, exit } = enterExit);
1194
+ enter !== null && enter(node);
1195
+ }
1196
+ walkNode(node.object, visitors);
1197
+ walkNode(node.property, visitors);
1198
+ exit !== null && exit(node);
1199
+ }
1200
+
1201
+ function walkMetaProperty(node, visitors) {
1202
+ let enterExit = visitors[68],
1203
+ exit = null,
1204
+ enter;
1205
+ if (enterExit !== null) {
1206
+ ({ enter, exit } = enterExit);
1207
+ enter !== null && enter(node);
1208
+ }
1209
+ walkNode(node.meta, visitors);
1210
+ walkNode(node.property, visitors);
1211
+ exit !== null && exit(node);
1212
+ }
1213
+
1214
+ function walkMethodDefinition(node, visitors) {
1215
+ let enterExit = visitors[69],
1216
+ exit = null,
1217
+ enter;
1218
+ if (enterExit !== null) {
1219
+ ({ enter, exit } = enterExit);
1220
+ enter !== null && enter(node);
1221
+ }
1222
+ walkNode(node.decorators, visitors);
1223
+ walkNode(node.key, visitors);
1224
+ walkNode(node.value, visitors);
1225
+ exit !== null && exit(node);
1226
+ }
1227
+
1228
+ function walkNewExpression(node, visitors) {
1229
+ let enterExit = visitors[70],
1230
+ exit = null,
1231
+ enter;
1232
+ if (enterExit !== null) {
1233
+ ({ enter, exit } = enterExit);
1234
+ enter !== null && enter(node);
1235
+ }
1236
+ walkNode(node.callee, visitors);
1237
+ walkNode(node.typeArguments, visitors);
1238
+ walkNode(node.arguments, visitors);
1239
+ exit !== null && exit(node);
1240
+ }
1241
+
1242
+ function walkObjectExpression(node, visitors) {
1243
+ let enterExit = visitors[71],
1244
+ exit = null,
1245
+ enter;
1246
+ if (enterExit !== null) {
1247
+ ({ enter, exit } = enterExit);
1248
+ enter !== null && enter(node);
1249
+ }
1250
+ walkNode(node.properties, visitors);
1251
+ exit !== null && exit(node);
1252
+ }
1253
+
1254
+ function walkObjectPattern(node, visitors) {
1255
+ let enterExit = visitors[72],
1256
+ exit = null,
1257
+ enter;
1258
+ if (enterExit !== null) {
1259
+ ({ enter, exit } = enterExit);
1260
+ enter !== null && enter(node);
1261
+ }
1262
+ walkNode(node.decorators, visitors);
1263
+ walkNode(node.properties, visitors);
1264
+ walkNode(node.typeAnnotation, visitors);
1265
+ exit !== null && exit(node);
1266
+ }
1267
+
1268
+ function walkParenthesizedExpression(node, visitors) {
1269
+ let enterExit = visitors[73],
1270
+ exit = null,
1271
+ enter;
1272
+ if (enterExit !== null) {
1273
+ ({ enter, exit } = enterExit);
1274
+ enter !== null && enter(node);
1275
+ }
1276
+ walkNode(node.expression, visitors);
1277
+ exit !== null && exit(node);
1278
+ }
1279
+
1280
+ function walkProgram(node, visitors) {
1281
+ let enterExit = visitors[74],
1282
+ exit = null,
1283
+ enter;
1284
+ if (enterExit !== null) {
1285
+ ({ enter, exit } = enterExit);
1286
+ enter !== null && enter(node);
1287
+ }
1288
+ walkNode(node.body, visitors);
1289
+ exit !== null && exit(node);
1290
+ }
1291
+
1292
+ function walkProperty(node, visitors) {
1293
+ let enterExit = visitors[75],
1294
+ exit = null,
1295
+ enter;
1296
+ if (enterExit !== null) {
1297
+ ({ enter, exit } = enterExit);
1298
+ enter !== null && enter(node);
1299
+ }
1300
+ walkNode(node.key, visitors);
1301
+ walkNode(node.value, visitors);
1302
+ exit !== null && exit(node);
1303
+ }
1304
+
1305
+ function walkPropertyDefinition(node, visitors) {
1306
+ let enterExit = visitors[76],
1307
+ exit = null,
1308
+ enter;
1309
+ if (enterExit !== null) {
1310
+ ({ enter, exit } = enterExit);
1311
+ enter !== null && enter(node);
1312
+ }
1313
+ walkNode(node.decorators, visitors);
1314
+ walkNode(node.key, visitors);
1315
+ walkNode(node.typeAnnotation, visitors);
1316
+ walkNode(node.value, visitors);
1317
+ exit !== null && exit(node);
1318
+ }
1319
+
1320
+ function walkRestElement(node, visitors) {
1321
+ let enterExit = visitors[77],
1322
+ exit = null,
1323
+ enter;
1324
+ if (enterExit !== null) {
1325
+ ({ enter, exit } = enterExit);
1326
+ enter !== null && enter(node);
1327
+ }
1328
+ walkNode(node.decorators, visitors);
1329
+ walkNode(node.argument, visitors);
1330
+ walkNode(node.typeAnnotation, visitors);
1331
+ exit !== null && exit(node);
1332
+ }
1333
+
1334
+ function walkReturnStatement(node, visitors) {
1335
+ let enterExit = visitors[78],
1336
+ exit = null,
1337
+ enter;
1338
+ if (enterExit !== null) {
1339
+ ({ enter, exit } = enterExit);
1340
+ enter !== null && enter(node);
1341
+ }
1342
+ walkNode(node.argument, visitors);
1343
+ exit !== null && exit(node);
1344
+ }
1345
+
1346
+ function walkSequenceExpression(node, visitors) {
1347
+ let enterExit = visitors[79],
1348
+ exit = null,
1349
+ enter;
1350
+ if (enterExit !== null) {
1351
+ ({ enter, exit } = enterExit);
1352
+ enter !== null && enter(node);
1353
+ }
1354
+ walkNode(node.expressions, visitors);
1355
+ exit !== null && exit(node);
1356
+ }
1357
+
1358
+ function walkSpreadElement(node, visitors) {
1359
+ let enterExit = visitors[80],
1360
+ exit = null,
1361
+ enter;
1362
+ if (enterExit !== null) {
1363
+ ({ enter, exit } = enterExit);
1364
+ enter !== null && enter(node);
1365
+ }
1366
+ walkNode(node.argument, visitors);
1367
+ exit !== null && exit(node);
1368
+ }
1369
+
1370
+ function walkStaticBlock(node, visitors) {
1371
+ let enterExit = visitors[81],
1372
+ exit = null,
1373
+ enter;
1374
+ if (enterExit !== null) {
1375
+ ({ enter, exit } = enterExit);
1376
+ enter !== null && enter(node);
1377
+ }
1378
+ walkNode(node.body, visitors);
1379
+ exit !== null && exit(node);
1380
+ }
1381
+
1382
+ function walkSwitchCase(node, visitors) {
1383
+ let enterExit = visitors[82],
1384
+ exit = null,
1385
+ enter;
1386
+ if (enterExit !== null) {
1387
+ ({ enter, exit } = enterExit);
1388
+ enter !== null && enter(node);
1389
+ }
1390
+ walkNode(node.test, visitors);
1391
+ walkNode(node.consequent, visitors);
1392
+ exit !== null && exit(node);
1393
+ }
1394
+
1395
+ function walkSwitchStatement(node, visitors) {
1396
+ let enterExit = visitors[83],
1397
+ exit = null,
1398
+ enter;
1399
+ if (enterExit !== null) {
1400
+ ({ enter, exit } = enterExit);
1401
+ enter !== null && enter(node);
1402
+ }
1403
+ walkNode(node.discriminant, visitors);
1404
+ walkNode(node.cases, visitors);
1405
+ exit !== null && exit(node);
1406
+ }
1407
+
1408
+ function walkTaggedTemplateExpression(node, visitors) {
1409
+ let enterExit = visitors[84],
1410
+ exit = null,
1411
+ enter;
1412
+ if (enterExit !== null) {
1413
+ ({ enter, exit } = enterExit);
1414
+ enter !== null && enter(node);
1415
+ }
1416
+ walkNode(node.tag, visitors);
1417
+ walkNode(node.typeArguments, visitors);
1418
+ walkNode(node.quasi, visitors);
1419
+ exit !== null && exit(node);
1420
+ }
1421
+
1422
+ function walkTemplateLiteral(node, visitors) {
1423
+ let enterExit = visitors[85],
1424
+ exit = null,
1425
+ enter;
1426
+ if (enterExit !== null) {
1427
+ ({ enter, exit } = enterExit);
1428
+ enter !== null && enter(node);
1429
+ }
1430
+ walkNode(node.quasis, visitors);
1431
+ walkNode(node.expressions, visitors);
1432
+ exit !== null && exit(node);
1433
+ }
1434
+
1435
+ function walkThrowStatement(node, visitors) {
1436
+ let enterExit = visitors[86],
1437
+ exit = null,
1438
+ enter;
1439
+ if (enterExit !== null) {
1440
+ ({ enter, exit } = enterExit);
1441
+ enter !== null && enter(node);
1442
+ }
1443
+ walkNode(node.argument, visitors);
1444
+ exit !== null && exit(node);
1445
+ }
1446
+
1447
+ function walkTryStatement(node, visitors) {
1448
+ let enterExit = visitors[87],
1449
+ exit = null,
1450
+ enter;
1451
+ if (enterExit !== null) {
1452
+ ({ enter, exit } = enterExit);
1453
+ enter !== null && enter(node);
1454
+ }
1455
+ walkNode(node.block, visitors);
1456
+ walkNode(node.handler, visitors);
1457
+ walkNode(node.finalizer, visitors);
1458
+ exit !== null && exit(node);
1459
+ }
1460
+
1461
+ function walkUnaryExpression(node, visitors) {
1462
+ let enterExit = visitors[88],
1463
+ exit = null,
1464
+ enter;
1465
+ if (enterExit !== null) {
1466
+ ({ enter, exit } = enterExit);
1467
+ enter !== null && enter(node);
1468
+ }
1469
+ walkNode(node.argument, visitors);
1470
+ exit !== null && exit(node);
1471
+ }
1472
+
1473
+ function walkUpdateExpression(node, visitors) {
1474
+ let enterExit = visitors[89],
1475
+ exit = null,
1476
+ enter;
1477
+ if (enterExit !== null) {
1478
+ ({ enter, exit } = enterExit);
1479
+ enter !== null && enter(node);
1480
+ }
1481
+ walkNode(node.argument, visitors);
1482
+ exit !== null && exit(node);
1483
+ }
1484
+
1485
+ function walkV8IntrinsicExpression(node, visitors) {
1486
+ let enterExit = visitors[90],
1487
+ exit = null,
1488
+ enter;
1489
+ if (enterExit !== null) {
1490
+ ({ enter, exit } = enterExit);
1491
+ enter !== null && enter(node);
1492
+ }
1493
+ walkNode(node.name, visitors);
1494
+ walkNode(node.arguments, visitors);
1495
+ exit !== null && exit(node);
1496
+ }
1497
+
1498
+ function walkVariableDeclaration(node, visitors) {
1499
+ let enterExit = visitors[91],
1500
+ exit = null,
1501
+ enter;
1502
+ if (enterExit !== null) {
1503
+ ({ enter, exit } = enterExit);
1504
+ enter !== null && enter(node);
1505
+ }
1506
+ walkNode(node.declarations, visitors);
1507
+ exit !== null && exit(node);
1508
+ }
1509
+
1510
+ function walkVariableDeclarator(node, visitors) {
1511
+ let enterExit = visitors[92],
1512
+ exit = null,
1513
+ enter;
1514
+ if (enterExit !== null) {
1515
+ ({ enter, exit } = enterExit);
1516
+ enter !== null && enter(node);
1517
+ }
1518
+ walkNode(node.id, visitors);
1519
+ walkNode(node.init, visitors);
1520
+ exit !== null && exit(node);
1521
+ }
1522
+
1523
+ function walkWhileStatement(node, visitors) {
1524
+ let enterExit = visitors[93],
1525
+ exit = null,
1526
+ enter;
1527
+ if (enterExit !== null) {
1528
+ ({ enter, exit } = enterExit);
1529
+ enter !== null && enter(node);
1530
+ }
1531
+ walkNode(node.test, visitors);
1532
+ walkNode(node.body, visitors);
1533
+ exit !== null && exit(node);
1534
+ }
1535
+
1536
+ function walkWithStatement(node, visitors) {
1537
+ let enterExit = visitors[94],
1538
+ exit = null,
1539
+ enter;
1540
+ if (enterExit !== null) {
1541
+ ({ enter, exit } = enterExit);
1542
+ enter !== null && enter(node);
1543
+ }
1544
+ walkNode(node.object, visitors);
1545
+ walkNode(node.body, visitors);
1546
+ exit !== null && exit(node);
1547
+ }
1548
+
1549
+ function walkYieldExpression(node, visitors) {
1550
+ let enterExit = visitors[95],
1551
+ exit = null,
1552
+ enter;
1553
+ if (enterExit !== null) {
1554
+ ({ enter, exit } = enterExit);
1555
+ enter !== null && enter(node);
1556
+ }
1557
+ walkNode(node.argument, visitors);
1558
+ exit !== null && exit(node);
1559
+ }
1560
+
1561
+ function walkJSXAttribute(node, visitors) {
1562
+ let enterExit = visitors[96],
1563
+ exit = null,
1564
+ enter;
1565
+ if (enterExit !== null) {
1566
+ ({ enter, exit } = enterExit);
1567
+ enter !== null && enter(node);
1568
+ }
1569
+ walkNode(node.name, visitors);
1570
+ walkNode(node.value, visitors);
1571
+ exit !== null && exit(node);
1572
+ }
1573
+
1574
+ function walkJSXClosingElement(node, visitors) {
1575
+ let enterExit = visitors[97],
1576
+ exit = null,
1577
+ enter;
1578
+ if (enterExit !== null) {
1579
+ ({ enter, exit } = enterExit);
1580
+ enter !== null && enter(node);
1581
+ }
1582
+ walkNode(node.name, visitors);
1583
+ exit !== null && exit(node);
1584
+ }
1585
+
1586
+ function walkJSXElement(node, visitors) {
1587
+ let enterExit = visitors[98],
1588
+ exit = null,
1589
+ enter;
1590
+ if (enterExit !== null) {
1591
+ ({ enter, exit } = enterExit);
1592
+ enter !== null && enter(node);
1593
+ }
1594
+ walkNode(node.openingElement, visitors);
1595
+ walkNode(node.children, visitors);
1596
+ walkNode(node.closingElement, visitors);
1597
+ exit !== null && exit(node);
1598
+ }
1599
+
1600
+ function walkJSXExpressionContainer(node, visitors) {
1601
+ let enterExit = visitors[99],
1602
+ exit = null,
1603
+ enter;
1604
+ if (enterExit !== null) {
1605
+ ({ enter, exit } = enterExit);
1606
+ enter !== null && enter(node);
1607
+ }
1608
+ walkNode(node.expression, visitors);
1609
+ exit !== null && exit(node);
1610
+ }
1611
+
1612
+ function walkJSXFragment(node, visitors) {
1613
+ let enterExit = visitors[100],
1614
+ exit = null,
1615
+ enter;
1616
+ if (enterExit !== null) {
1617
+ ({ enter, exit } = enterExit);
1618
+ enter !== null && enter(node);
1619
+ }
1620
+ walkNode(node.openingFragment, visitors);
1621
+ walkNode(node.children, visitors);
1622
+ walkNode(node.closingFragment, visitors);
1623
+ exit !== null && exit(node);
1624
+ }
1625
+
1626
+ function walkJSXMemberExpression(node, visitors) {
1627
+ let enterExit = visitors[101],
1628
+ exit = null,
1629
+ enter;
1630
+ if (enterExit !== null) {
1631
+ ({ enter, exit } = enterExit);
1632
+ enter !== null && enter(node);
1633
+ }
1634
+ walkNode(node.object, visitors);
1635
+ walkNode(node.property, visitors);
1636
+ exit !== null && exit(node);
1637
+ }
1638
+
1639
+ function walkJSXNamespacedName(node, visitors) {
1640
+ let enterExit = visitors[102],
1641
+ exit = null,
1642
+ enter;
1643
+ if (enterExit !== null) {
1644
+ ({ enter, exit } = enterExit);
1645
+ enter !== null && enter(node);
1646
+ }
1647
+ walkNode(node.namespace, visitors);
1648
+ walkNode(node.name, visitors);
1649
+ exit !== null && exit(node);
1650
+ }
1651
+
1652
+ function walkJSXOpeningElement(node, visitors) {
1653
+ let enterExit = visitors[103],
1654
+ exit = null,
1655
+ enter;
1656
+ if (enterExit !== null) {
1657
+ ({ enter, exit } = enterExit);
1658
+ enter !== null && enter(node);
1659
+ }
1660
+ walkNode(node.name, visitors);
1661
+ walkNode(node.typeArguments, visitors);
1662
+ walkNode(node.attributes, visitors);
1663
+ exit !== null && exit(node);
1664
+ }
1665
+
1666
+ function walkJSXSpreadAttribute(node, visitors) {
1667
+ let enterExit = visitors[104],
1668
+ exit = null,
1669
+ enter;
1670
+ if (enterExit !== null) {
1671
+ ({ enter, exit } = enterExit);
1672
+ enter !== null && enter(node);
1673
+ }
1674
+ walkNode(node.argument, visitors);
1675
+ exit !== null && exit(node);
1676
+ }
1677
+
1678
+ function walkJSXSpreadChild(node, visitors) {
1679
+ let enterExit = visitors[105],
1680
+ exit = null,
1681
+ enter;
1682
+ if (enterExit !== null) {
1683
+ ({ enter, exit } = enterExit);
1684
+ enter !== null && enter(node);
1685
+ }
1686
+ walkNode(node.expression, visitors);
1687
+ exit !== null && exit(node);
1688
+ }
1689
+
1690
+ function walkTSAbstractAccessorProperty(node, visitors) {
1691
+ let enterExit = visitors[106],
1692
+ exit = null,
1693
+ enter;
1694
+ if (enterExit !== null) {
1695
+ ({ enter, exit } = enterExit);
1696
+ enter !== null && enter(node);
1697
+ }
1698
+ walkNode(node.decorators, visitors);
1699
+ walkNode(node.key, visitors);
1700
+ walkNode(node.typeAnnotation, visitors);
1701
+ exit !== null && exit(node);
1702
+ }
1703
+
1704
+ function walkTSAbstractMethodDefinition(node, visitors) {
1705
+ let enterExit = visitors[107],
1706
+ exit = null,
1707
+ enter;
1708
+ if (enterExit !== null) {
1709
+ ({ enter, exit } = enterExit);
1710
+ enter !== null && enter(node);
1711
+ }
1712
+ walkNode(node.key, visitors);
1713
+ walkNode(node.value, visitors);
1714
+ exit !== null && exit(node);
1715
+ }
1716
+
1717
+ function walkTSAbstractPropertyDefinition(node, visitors) {
1718
+ let enterExit = visitors[108],
1719
+ exit = null,
1720
+ enter;
1721
+ if (enterExit !== null) {
1722
+ ({ enter, exit } = enterExit);
1723
+ enter !== null && enter(node);
1724
+ }
1725
+ walkNode(node.decorators, visitors);
1726
+ walkNode(node.key, visitors);
1727
+ walkNode(node.typeAnnotation, visitors);
1728
+ exit !== null && exit(node);
1729
+ }
1730
+
1731
+ function walkTSArrayType(node, visitors) {
1732
+ let enterExit = visitors[109],
1733
+ exit = null,
1734
+ enter;
1735
+ if (enterExit !== null) {
1736
+ ({ enter, exit } = enterExit);
1737
+ enter !== null && enter(node);
1738
+ }
1739
+ walkNode(node.elementType, visitors);
1740
+ exit !== null && exit(node);
1741
+ }
1742
+
1743
+ function walkTSAsExpression(node, visitors) {
1744
+ let enterExit = visitors[110],
1745
+ exit = null,
1746
+ enter;
1747
+ if (enterExit !== null) {
1748
+ ({ enter, exit } = enterExit);
1749
+ enter !== null && enter(node);
1750
+ }
1751
+ walkNode(node.expression, visitors);
1752
+ walkNode(node.typeAnnotation, visitors);
1753
+ exit !== null && exit(node);
1754
+ }
1755
+
1756
+ function walkTSCallSignatureDeclaration(node, visitors) {
1757
+ let enterExit = visitors[111],
1758
+ exit = null,
1759
+ enter;
1760
+ if (enterExit !== null) {
1761
+ ({ enter, exit } = enterExit);
1762
+ enter !== null && enter(node);
1763
+ }
1764
+ walkNode(node.typeParameters, visitors);
1765
+ walkNode(node.params, visitors);
1766
+ walkNode(node.returnType, visitors);
1767
+ exit !== null && exit(node);
1768
+ }
1769
+
1770
+ function walkTSClassImplements(node, visitors) {
1771
+ let enterExit = visitors[112],
1772
+ exit = null,
1773
+ enter;
1774
+ if (enterExit !== null) {
1775
+ ({ enter, exit } = enterExit);
1776
+ enter !== null && enter(node);
1777
+ }
1778
+ walkNode(node.expression, visitors);
1779
+ walkNode(node.typeArguments, visitors);
1780
+ exit !== null && exit(node);
1781
+ }
1782
+
1783
+ function walkTSConditionalType(node, visitors) {
1784
+ let enterExit = visitors[113],
1785
+ exit = null,
1786
+ enter;
1787
+ if (enterExit !== null) {
1788
+ ({ enter, exit } = enterExit);
1789
+ enter !== null && enter(node);
1790
+ }
1791
+ walkNode(node.checkType, visitors);
1792
+ walkNode(node.extendsType, visitors);
1793
+ walkNode(node.trueType, visitors);
1794
+ walkNode(node.falseType, visitors);
1795
+ exit !== null && exit(node);
1796
+ }
1797
+
1798
+ function walkTSConstructSignatureDeclaration(node, visitors) {
1799
+ let enterExit = visitors[114],
1800
+ exit = null,
1801
+ enter;
1802
+ if (enterExit !== null) {
1803
+ ({ enter, exit } = enterExit);
1804
+ enter !== null && enter(node);
1805
+ }
1806
+ walkNode(node.typeParameters, visitors);
1807
+ walkNode(node.params, visitors);
1808
+ walkNode(node.returnType, visitors);
1809
+ exit !== null && exit(node);
1810
+ }
1811
+
1812
+ function walkTSConstructorType(node, visitors) {
1813
+ let enterExit = visitors[115],
1814
+ exit = null,
1815
+ enter;
1816
+ if (enterExit !== null) {
1817
+ ({ enter, exit } = enterExit);
1818
+ enter !== null && enter(node);
1819
+ }
1820
+ walkNode(node.typeParameters, visitors);
1821
+ walkNode(node.params, visitors);
1822
+ walkNode(node.returnType, visitors);
1823
+ exit !== null && exit(node);
1824
+ }
1825
+
1826
+ function walkTSDeclareFunction(node, visitors) {
1827
+ let enterExit = visitors[116],
1828
+ exit = null,
1829
+ enter;
1830
+ if (enterExit !== null) {
1831
+ ({ enter, exit } = enterExit);
1832
+ enter !== null && enter(node);
1833
+ }
1834
+ walkNode(node.id, visitors);
1835
+ walkNode(node.typeParameters, visitors);
1836
+ walkNode(node.params, visitors);
1837
+ walkNode(node.returnType, visitors);
1838
+ walkNode(node.body, visitors);
1839
+ exit !== null && exit(node);
1840
+ }
1841
+
1842
+ function walkTSEmptyBodyFunctionExpression(node, visitors) {
1843
+ let enterExit = visitors[117],
1844
+ exit = null,
1845
+ enter;
1846
+ if (enterExit !== null) {
1847
+ ({ enter, exit } = enterExit);
1848
+ enter !== null && enter(node);
1849
+ }
1850
+ walkNode(node.id, visitors);
1851
+ walkNode(node.typeParameters, visitors);
1852
+ walkNode(node.params, visitors);
1853
+ walkNode(node.returnType, visitors);
1854
+ exit !== null && exit(node);
1855
+ }
1856
+
1857
+ function walkTSEnumBody(node, visitors) {
1858
+ let enterExit = visitors[118],
1859
+ exit = null,
1860
+ enter;
1861
+ if (enterExit !== null) {
1862
+ ({ enter, exit } = enterExit);
1863
+ enter !== null && enter(node);
1864
+ }
1865
+ walkNode(node.members, visitors);
1866
+ exit !== null && exit(node);
1867
+ }
1868
+
1869
+ function walkTSEnumDeclaration(node, visitors) {
1870
+ let enterExit = visitors[119],
1871
+ exit = null,
1872
+ enter;
1873
+ if (enterExit !== null) {
1874
+ ({ enter, exit } = enterExit);
1875
+ enter !== null && enter(node);
1876
+ }
1877
+ walkNode(node.id, visitors);
1878
+ walkNode(node.body, visitors);
1879
+ exit !== null && exit(node);
1880
+ }
1881
+
1882
+ function walkTSEnumMember(node, visitors) {
1883
+ let enterExit = visitors[120],
1884
+ exit = null,
1885
+ enter;
1886
+ if (enterExit !== null) {
1887
+ ({ enter, exit } = enterExit);
1888
+ enter !== null && enter(node);
1889
+ }
1890
+ walkNode(node.id, visitors);
1891
+ walkNode(node.initializer, visitors);
1892
+ exit !== null && exit(node);
1893
+ }
1894
+
1895
+ function walkTSExportAssignment(node, visitors) {
1896
+ let enterExit = visitors[121],
1897
+ exit = null,
1898
+ enter;
1899
+ if (enterExit !== null) {
1900
+ ({ enter, exit } = enterExit);
1901
+ enter !== null && enter(node);
1902
+ }
1903
+ walkNode(node.expression, visitors);
1904
+ exit !== null && exit(node);
1905
+ }
1906
+
1907
+ function walkTSExternalModuleReference(node, visitors) {
1908
+ let enterExit = visitors[122],
1909
+ exit = null,
1910
+ enter;
1911
+ if (enterExit !== null) {
1912
+ ({ enter, exit } = enterExit);
1913
+ enter !== null && enter(node);
1914
+ }
1915
+ walkNode(node.expression, visitors);
1916
+ exit !== null && exit(node);
1917
+ }
1918
+
1919
+ function walkTSFunctionType(node, visitors) {
1920
+ let enterExit = visitors[123],
1921
+ exit = null,
1922
+ enter;
1923
+ if (enterExit !== null) {
1924
+ ({ enter, exit } = enterExit);
1925
+ enter !== null && enter(node);
1926
+ }
1927
+ walkNode(node.typeParameters, visitors);
1928
+ walkNode(node.params, visitors);
1929
+ walkNode(node.returnType, visitors);
1930
+ exit !== null && exit(node);
1931
+ }
1932
+
1933
+ function walkTSImportEqualsDeclaration(node, visitors) {
1934
+ let enterExit = visitors[124],
1935
+ exit = null,
1936
+ enter;
1937
+ if (enterExit !== null) {
1938
+ ({ enter, exit } = enterExit);
1939
+ enter !== null && enter(node);
1940
+ }
1941
+ walkNode(node.id, visitors);
1942
+ walkNode(node.moduleReference, visitors);
1943
+ exit !== null && exit(node);
1944
+ }
1945
+
1946
+ function walkTSImportType(node, visitors) {
1947
+ let enterExit = visitors[125],
1948
+ exit = null,
1949
+ enter;
1950
+ if (enterExit !== null) {
1951
+ ({ enter, exit } = enterExit);
1952
+ enter !== null && enter(node);
1953
+ }
1954
+ walkNode(node.source, visitors);
1955
+ walkNode(node.options, visitors);
1956
+ walkNode(node.qualifier, visitors);
1957
+ walkNode(node.typeArguments, visitors);
1958
+ exit !== null && exit(node);
1959
+ }
1960
+
1961
+ function walkTSIndexSignature(node, visitors) {
1962
+ let enterExit = visitors[126],
1963
+ exit = null,
1964
+ enter;
1965
+ if (enterExit !== null) {
1966
+ ({ enter, exit } = enterExit);
1967
+ enter !== null && enter(node);
1968
+ }
1969
+ walkNode(node.parameters, visitors);
1970
+ walkNode(node.typeAnnotation, visitors);
1971
+ exit !== null && exit(node);
1972
+ }
1973
+
1974
+ function walkTSIndexedAccessType(node, visitors) {
1975
+ let enterExit = visitors[127],
1976
+ exit = null,
1977
+ enter;
1978
+ if (enterExit !== null) {
1979
+ ({ enter, exit } = enterExit);
1980
+ enter !== null && enter(node);
1981
+ }
1982
+ walkNode(node.objectType, visitors);
1983
+ walkNode(node.indexType, visitors);
1984
+ exit !== null && exit(node);
1985
+ }
1986
+
1987
+ function walkTSInferType(node, visitors) {
1988
+ let enterExit = visitors[128],
1989
+ exit = null,
1990
+ enter;
1991
+ if (enterExit !== null) {
1992
+ ({ enter, exit } = enterExit);
1993
+ enter !== null && enter(node);
1994
+ }
1995
+ walkNode(node.typeParameter, visitors);
1996
+ exit !== null && exit(node);
1997
+ }
1998
+
1999
+ function walkTSInstantiationExpression(node, visitors) {
2000
+ let enterExit = visitors[129],
2001
+ exit = null,
2002
+ enter;
2003
+ if (enterExit !== null) {
2004
+ ({ enter, exit } = enterExit);
2005
+ enter !== null && enter(node);
2006
+ }
2007
+ walkNode(node.expression, visitors);
2008
+ walkNode(node.typeArguments, visitors);
2009
+ exit !== null && exit(node);
2010
+ }
2011
+
2012
+ function walkTSInterfaceBody(node, visitors) {
2013
+ let enterExit = visitors[130],
2014
+ exit = null,
2015
+ enter;
2016
+ if (enterExit !== null) {
2017
+ ({ enter, exit } = enterExit);
2018
+ enter !== null && enter(node);
2019
+ }
2020
+ walkNode(node.body, visitors);
2021
+ exit !== null && exit(node);
2022
+ }
2023
+
2024
+ function walkTSInterfaceDeclaration(node, visitors) {
2025
+ let enterExit = visitors[131],
2026
+ exit = null,
2027
+ enter;
2028
+ if (enterExit !== null) {
2029
+ ({ enter, exit } = enterExit);
2030
+ enter !== null && enter(node);
2031
+ }
2032
+ walkNode(node.id, visitors);
2033
+ walkNode(node.typeParameters, visitors);
2034
+ walkNode(node.extends, visitors);
2035
+ walkNode(node.body, visitors);
2036
+ exit !== null && exit(node);
2037
+ }
2038
+
2039
+ function walkTSInterfaceHeritage(node, visitors) {
2040
+ let enterExit = visitors[132],
2041
+ exit = null,
2042
+ enter;
2043
+ if (enterExit !== null) {
2044
+ ({ enter, exit } = enterExit);
2045
+ enter !== null && enter(node);
2046
+ }
2047
+ walkNode(node.expression, visitors);
2048
+ walkNode(node.typeArguments, visitors);
2049
+ exit !== null && exit(node);
2050
+ }
2051
+
2052
+ function walkTSIntersectionType(node, visitors) {
2053
+ let enterExit = visitors[133],
2054
+ exit = null,
2055
+ enter;
2056
+ if (enterExit !== null) {
2057
+ ({ enter, exit } = enterExit);
2058
+ enter !== null && enter(node);
2059
+ }
2060
+ walkNode(node.types, visitors);
2061
+ exit !== null && exit(node);
2062
+ }
2063
+
2064
+ function walkTSJSDocNonNullableType(node, visitors) {
2065
+ let enterExit = visitors[134],
2066
+ exit = null,
2067
+ enter;
2068
+ if (enterExit !== null) {
2069
+ ({ enter, exit } = enterExit);
2070
+ enter !== null && enter(node);
2071
+ }
2072
+ walkNode(node.typeAnnotation, visitors);
2073
+ exit !== null && exit(node);
2074
+ }
2075
+
2076
+ function walkTSJSDocNullableType(node, visitors) {
2077
+ let enterExit = visitors[135],
2078
+ exit = null,
2079
+ enter;
2080
+ if (enterExit !== null) {
2081
+ ({ enter, exit } = enterExit);
2082
+ enter !== null && enter(node);
2083
+ }
2084
+ walkNode(node.typeAnnotation, visitors);
2085
+ exit !== null && exit(node);
2086
+ }
2087
+
2088
+ function walkTSLiteralType(node, visitors) {
2089
+ let enterExit = visitors[136],
2090
+ exit = null,
2091
+ enter;
2092
+ if (enterExit !== null) {
2093
+ ({ enter, exit } = enterExit);
2094
+ enter !== null && enter(node);
2095
+ }
2096
+ walkNode(node.literal, visitors);
2097
+ exit !== null && exit(node);
2098
+ }
2099
+
2100
+ function walkTSMappedType(node, visitors) {
2101
+ let enterExit = visitors[137],
2102
+ exit = null,
2103
+ enter;
2104
+ if (enterExit !== null) {
2105
+ ({ enter, exit } = enterExit);
2106
+ enter !== null && enter(node);
2107
+ }
2108
+ walkNode(node.key, visitors);
2109
+ walkNode(node.constraint, visitors);
2110
+ walkNode(node.nameType, visitors);
2111
+ walkNode(node.typeAnnotation, visitors);
2112
+ exit !== null && exit(node);
2113
+ }
2114
+
2115
+ function walkTSMethodSignature(node, visitors) {
2116
+ let enterExit = visitors[138],
2117
+ exit = null,
2118
+ enter;
2119
+ if (enterExit !== null) {
2120
+ ({ enter, exit } = enterExit);
2121
+ enter !== null && enter(node);
2122
+ }
2123
+ walkNode(node.key, visitors);
2124
+ walkNode(node.typeParameters, visitors);
2125
+ walkNode(node.params, visitors);
2126
+ walkNode(node.returnType, visitors);
2127
+ exit !== null && exit(node);
2128
+ }
2129
+
2130
+ function walkTSModuleBlock(node, visitors) {
2131
+ let enterExit = visitors[139],
2132
+ exit = null,
2133
+ enter;
2134
+ if (enterExit !== null) {
2135
+ ({ enter, exit } = enterExit);
2136
+ enter !== null && enter(node);
2137
+ }
2138
+ walkNode(node.body, visitors);
2139
+ exit !== null && exit(node);
2140
+ }
2141
+
2142
+ function walkTSModuleDeclaration(node, visitors) {
2143
+ let enterExit = visitors[140],
2144
+ exit = null,
2145
+ enter;
2146
+ if (enterExit !== null) {
2147
+ ({ enter, exit } = enterExit);
2148
+ enter !== null && enter(node);
2149
+ }
2150
+ walkNode(node.id, visitors);
2151
+ walkNode(node.body, visitors);
2152
+ exit !== null && exit(node);
2153
+ }
2154
+
2155
+ function walkTSNamedTupleMember(node, visitors) {
2156
+ let enterExit = visitors[141],
2157
+ exit = null,
2158
+ enter;
2159
+ if (enterExit !== null) {
2160
+ ({ enter, exit } = enterExit);
2161
+ enter !== null && enter(node);
2162
+ }
2163
+ walkNode(node.label, visitors);
2164
+ walkNode(node.elementType, visitors);
2165
+ exit !== null && exit(node);
2166
+ }
2167
+
2168
+ function walkTSNamespaceExportDeclaration(node, visitors) {
2169
+ let enterExit = visitors[142],
2170
+ exit = null,
2171
+ enter;
2172
+ if (enterExit !== null) {
2173
+ ({ enter, exit } = enterExit);
2174
+ enter !== null && enter(node);
2175
+ }
2176
+ walkNode(node.id, visitors);
2177
+ exit !== null && exit(node);
2178
+ }
2179
+
2180
+ function walkTSNonNullExpression(node, visitors) {
2181
+ let enterExit = visitors[143],
2182
+ exit = null,
2183
+ enter;
2184
+ if (enterExit !== null) {
2185
+ ({ enter, exit } = enterExit);
2186
+ enter !== null && enter(node);
2187
+ }
2188
+ walkNode(node.expression, visitors);
2189
+ exit !== null && exit(node);
2190
+ }
2191
+
2192
+ function walkTSOptionalType(node, visitors) {
2193
+ let enterExit = visitors[144],
2194
+ exit = null,
2195
+ enter;
2196
+ if (enterExit !== null) {
2197
+ ({ enter, exit } = enterExit);
2198
+ enter !== null && enter(node);
2199
+ }
2200
+ walkNode(node.typeAnnotation, visitors);
2201
+ exit !== null && exit(node);
2202
+ }
2203
+
2204
+ function walkTSParameterProperty(node, visitors) {
2205
+ let enterExit = visitors[145],
2206
+ exit = null,
2207
+ enter;
2208
+ if (enterExit !== null) {
2209
+ ({ enter, exit } = enterExit);
2210
+ enter !== null && enter(node);
2211
+ }
2212
+ walkNode(node.decorators, visitors);
2213
+ walkNode(node.parameter, visitors);
2214
+ exit !== null && exit(node);
2215
+ }
2216
+
2217
+ function walkTSParenthesizedType(node, visitors) {
2218
+ let enterExit = visitors[146],
2219
+ exit = null,
2220
+ enter;
2221
+ if (enterExit !== null) {
2222
+ ({ enter, exit } = enterExit);
2223
+ enter !== null && enter(node);
2224
+ }
2225
+ walkNode(node.typeAnnotation, visitors);
2226
+ exit !== null && exit(node);
2227
+ }
2228
+
2229
+ function walkTSPropertySignature(node, visitors) {
2230
+ let enterExit = visitors[147],
2231
+ exit = null,
2232
+ enter;
2233
+ if (enterExit !== null) {
2234
+ ({ enter, exit } = enterExit);
2235
+ enter !== null && enter(node);
2236
+ }
2237
+ walkNode(node.key, visitors);
2238
+ walkNode(node.typeAnnotation, visitors);
2239
+ exit !== null && exit(node);
2240
+ }
2241
+
2242
+ function walkTSQualifiedName(node, visitors) {
2243
+ let enterExit = visitors[148],
2244
+ exit = null,
2245
+ enter;
2246
+ if (enterExit !== null) {
2247
+ ({ enter, exit } = enterExit);
2248
+ enter !== null && enter(node);
2249
+ }
2250
+ walkNode(node.left, visitors);
2251
+ walkNode(node.right, visitors);
2252
+ exit !== null && exit(node);
2253
+ }
2254
+
2255
+ function walkTSRestType(node, visitors) {
2256
+ let enterExit = visitors[149],
2257
+ exit = null,
2258
+ enter;
2259
+ if (enterExit !== null) {
2260
+ ({ enter, exit } = enterExit);
2261
+ enter !== null && enter(node);
2262
+ }
2263
+ walkNode(node.typeAnnotation, visitors);
2264
+ exit !== null && exit(node);
2265
+ }
2266
+
2267
+ function walkTSSatisfiesExpression(node, visitors) {
2268
+ let enterExit = visitors[150],
2269
+ exit = null,
2270
+ enter;
2271
+ if (enterExit !== null) {
2272
+ ({ enter, exit } = enterExit);
2273
+ enter !== null && enter(node);
2274
+ }
2275
+ walkNode(node.expression, visitors);
2276
+ walkNode(node.typeAnnotation, visitors);
2277
+ exit !== null && exit(node);
2278
+ }
2279
+
2280
+ function walkTSTemplateLiteralType(node, visitors) {
2281
+ let enterExit = visitors[151],
2282
+ exit = null,
2283
+ enter;
2284
+ if (enterExit !== null) {
2285
+ ({ enter, exit } = enterExit);
2286
+ enter !== null && enter(node);
2287
+ }
2288
+ walkNode(node.quasis, visitors);
2289
+ walkNode(node.types, visitors);
2290
+ exit !== null && exit(node);
2291
+ }
2292
+
2293
+ function walkTSTupleType(node, visitors) {
2294
+ let enterExit = visitors[152],
2295
+ exit = null,
2296
+ enter;
2297
+ if (enterExit !== null) {
2298
+ ({ enter, exit } = enterExit);
2299
+ enter !== null && enter(node);
2300
+ }
2301
+ walkNode(node.elementTypes, visitors);
2302
+ exit !== null && exit(node);
2303
+ }
2304
+
2305
+ function walkTSTypeAliasDeclaration(node, visitors) {
2306
+ let enterExit = visitors[153],
2307
+ exit = null,
2308
+ enter;
2309
+ if (enterExit !== null) {
2310
+ ({ enter, exit } = enterExit);
2311
+ enter !== null && enter(node);
2312
+ }
2313
+ walkNode(node.id, visitors);
2314
+ walkNode(node.typeParameters, visitors);
2315
+ walkNode(node.typeAnnotation, visitors);
2316
+ exit !== null && exit(node);
2317
+ }
2318
+
2319
+ function walkTSTypeAnnotation(node, visitors) {
2320
+ let enterExit = visitors[154],
2321
+ exit = null,
2322
+ enter;
2323
+ if (enterExit !== null) {
2324
+ ({ enter, exit } = enterExit);
2325
+ enter !== null && enter(node);
2326
+ }
2327
+ walkNode(node.typeAnnotation, visitors);
2328
+ exit !== null && exit(node);
2329
+ }
2330
+
2331
+ function walkTSTypeAssertion(node, visitors) {
2332
+ let enterExit = visitors[155],
2333
+ exit = null,
2334
+ enter;
2335
+ if (enterExit !== null) {
2336
+ ({ enter, exit } = enterExit);
2337
+ enter !== null && enter(node);
2338
+ }
2339
+ walkNode(node.typeAnnotation, visitors);
2340
+ walkNode(node.expression, visitors);
2341
+ exit !== null && exit(node);
2342
+ }
2343
+
2344
+ function walkTSTypeLiteral(node, visitors) {
2345
+ let enterExit = visitors[156],
2346
+ exit = null,
2347
+ enter;
2348
+ if (enterExit !== null) {
2349
+ ({ enter, exit } = enterExit);
2350
+ enter !== null && enter(node);
2351
+ }
2352
+ walkNode(node.members, visitors);
2353
+ exit !== null && exit(node);
2354
+ }
2355
+
2356
+ function walkTSTypeOperator(node, visitors) {
2357
+ let enterExit = visitors[157],
2358
+ exit = null,
2359
+ enter;
2360
+ if (enterExit !== null) {
2361
+ ({ enter, exit } = enterExit);
2362
+ enter !== null && enter(node);
2363
+ }
2364
+ walkNode(node.typeAnnotation, visitors);
2365
+ exit !== null && exit(node);
2366
+ }
2367
+
2368
+ function walkTSTypeParameter(node, visitors) {
2369
+ let enterExit = visitors[158],
2370
+ exit = null,
2371
+ enter;
2372
+ if (enterExit !== null) {
2373
+ ({ enter, exit } = enterExit);
2374
+ enter !== null && enter(node);
2375
+ }
2376
+ walkNode(node.name, visitors);
2377
+ walkNode(node.constraint, visitors);
2378
+ walkNode(node.default, visitors);
2379
+ exit !== null && exit(node);
2380
+ }
2381
+
2382
+ function walkTSTypeParameterDeclaration(node, visitors) {
2383
+ let enterExit = visitors[159],
2384
+ exit = null,
2385
+ enter;
2386
+ if (enterExit !== null) {
2387
+ ({ enter, exit } = enterExit);
2388
+ enter !== null && enter(node);
2389
+ }
2390
+ walkNode(node.params, visitors);
2391
+ exit !== null && exit(node);
2392
+ }
2393
+
2394
+ function walkTSTypeParameterInstantiation(node, visitors) {
2395
+ let enterExit = visitors[160],
2396
+ exit = null,
2397
+ enter;
2398
+ if (enterExit !== null) {
2399
+ ({ enter, exit } = enterExit);
2400
+ enter !== null && enter(node);
2401
+ }
2402
+ walkNode(node.params, visitors);
2403
+ exit !== null && exit(node);
2404
+ }
2405
+
2406
+ function walkTSTypePredicate(node, visitors) {
2407
+ let enterExit = visitors[161],
2408
+ exit = null,
2409
+ enter;
2410
+ if (enterExit !== null) {
2411
+ ({ enter, exit } = enterExit);
2412
+ enter !== null && enter(node);
2413
+ }
2414
+ walkNode(node.parameterName, visitors);
2415
+ walkNode(node.typeAnnotation, visitors);
2416
+ exit !== null && exit(node);
2417
+ }
2418
+
2419
+ function walkTSTypeQuery(node, visitors) {
2420
+ let enterExit = visitors[162],
2421
+ exit = null,
2422
+ enter;
2423
+ if (enterExit !== null) {
2424
+ ({ enter, exit } = enterExit);
2425
+ enter !== null && enter(node);
2426
+ }
2427
+ walkNode(node.exprName, visitors);
2428
+ walkNode(node.typeArguments, visitors);
2429
+ exit !== null && exit(node);
2430
+ }
2431
+
2432
+ function walkTSTypeReference(node, visitors) {
2433
+ let enterExit = visitors[163],
2434
+ exit = null,
2435
+ enter;
2436
+ if (enterExit !== null) {
2437
+ ({ enter, exit } = enterExit);
2438
+ enter !== null && enter(node);
2439
+ }
2440
+ walkNode(node.typeName, visitors);
2441
+ walkNode(node.typeArguments, visitors);
2442
+ exit !== null && exit(node);
2443
+ }
2444
+
2445
+ function walkTSUnionType(node, visitors) {
2446
+ let enterExit = visitors[164],
2447
+ exit = null,
2448
+ enter;
2449
+ if (enterExit !== null) {
2450
+ ({ enter, exit } = enterExit);
2451
+ enter !== null && enter(node);
2452
+ }
2453
+ walkNode(node.types, visitors);
2454
+ exit !== null && exit(node);
2455
+ }