aboutsummaryrefslogtreecommitdiffstats
path: root/test/yarp/snapshots/whitequark/args.txt
blob: 9e648eb5335dc734f847854252362812b90c66bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
@ ProgramNode (location: (0...690))
├── locals: []
└── statements:
    @ StatementsNode (location: (0...690))
    └── body: (length: 31)
        ├── @ DefNode (location: (0...13))
        │   ├── name: :f
        │   ├── name_loc: (4...5) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (6...8))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (6...8))
        │   │       ├── name: :b
        │   │       ├── name_loc: (7...8) = "b"
        │   │       └── operator_loc: (6...7) = "&"
        │   ├── body: ∅
        │   ├── locals: [:b]
        │   ├── def_keyword_loc: (0...3) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (10...13) = "end"
        ├── @ DefNode (location: (15...33))
        │   ├── name: :f
        │   ├── name_loc: (19...20) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (22...27))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (22...27))
        │   │   │       ├── parameters: (length: 1)
        │   │   │       │   └── @ RequiredDestructuredParameterNode (location: (23...26))
        │   │   │       │       ├── parameters: (length: 1)
        │   │   │       │       │   └── @ RequiredParameterNode (location: (24...25))
        │   │   │       │       │       └── name: :a
        │   │   │       │       ├── opening_loc: (23...24) = "("
        │   │   │       │       └── closing_loc: (25...26) = ")"
        │   │   │       ├── opening_loc: (22...23) = "("
        │   │   │       └── closing_loc: (26...27) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:a]
        │   ├── def_keyword_loc: (15...18) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (21...22) = "("
        │   ├── rparen_loc: (27...28) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (30...33) = "end"
        ├── @ DefNode (location: (35...51))
        │   ├── name: :f
        │   ├── name_loc: (39...40) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (42...45))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (42...45))
        │   │   │       ├── parameters: (length: 1)
        │   │   │       │   └── @ SplatNode (location: (43...44))
        │   │   │       │       ├── operator_loc: (43...44) = "*"
        │   │   │       │       └── expression: ∅
        │   │   │       ├── opening_loc: (42...43) = "("
        │   │   │       └── closing_loc: (44...45) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: []
        │   ├── def_keyword_loc: (35...38) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (41...42) = "("
        │   ├── rparen_loc: (45...46) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (48...51) = "end"
        ├── @ DefNode (location: (53...72))
        │   ├── name: :f
        │   ├── name_loc: (57...58) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (60...66))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (60...66))
        │   │   │       ├── parameters: (length: 2)
        │   │   │       │   ├── @ SplatNode (location: (61...62))
        │   │   │       │   │   ├── operator_loc: (61...62) = "*"
        │   │   │       │   │   └── expression: ∅
        │   │   │       │   └── @ RequiredParameterNode (location: (64...65))
        │   │   │       │       └── name: :p
        │   │   │       ├── opening_loc: (60...61) = "("
        │   │   │       └── closing_loc: (65...66) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:p]
        │   ├── def_keyword_loc: (53...56) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (59...60) = "("
        │   ├── rparen_loc: (66...67) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (69...72) = "end"
        ├── @ DefNode (location: (74...91))
        │   ├── name: :f
        │   ├── name_loc: (78...79) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (81...85))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (81...85))
        │   │   │       ├── parameters: (length: 1)
        │   │   │       │   └── @ SplatNode (location: (82...84))
        │   │   │       │       ├── operator_loc: (82...83) = "*"
        │   │   │       │       └── expression:
        │   │   │       │           @ RequiredParameterNode (location: (83...84))
        │   │   │       │           └── name: :r
        │   │   │       ├── opening_loc: (81...82) = "("
        │   │   │       └── closing_loc: (84...85) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:r]
        │   ├── def_keyword_loc: (74...77) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (80...81) = "("
        │   ├── rparen_loc: (85...86) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (88...91) = "end"
        ├── @ DefNode (location: (93...113))
        │   ├── name: :f
        │   ├── name_loc: (97...98) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (100...107))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (100...107))
        │   │   │       ├── parameters: (length: 2)
        │   │   │       │   ├── @ SplatNode (location: (101...103))
        │   │   │       │   │   ├── operator_loc: (101...102) = "*"
        │   │   │       │   │   └── expression:
        │   │   │       │   │       @ RequiredParameterNode (location: (102...103))
        │   │   │       │   │       └── name: :r
        │   │   │       │   └── @ RequiredParameterNode (location: (105...106))
        │   │   │       │       └── name: :p
        │   │   │       ├── opening_loc: (100...101) = "("
        │   │   │       └── closing_loc: (106...107) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:r, :p]
        │   ├── def_keyword_loc: (93...96) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (99...100) = "("
        │   ├── rparen_loc: (107...108) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (110...113) = "end"
        ├── @ DefNode (location: (115...134))
        │   ├── name: :f
        │   ├── name_loc: (119...120) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (122...128))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (122...128))
        │   │   │       ├── parameters: (length: 2)
        │   │   │       │   ├── @ RequiredParameterNode (location: (123...124))
        │   │   │       │   │   └── name: :a
        │   │   │       │   └── @ SplatNode (location: (126...127))
        │   │   │       │       ├── operator_loc: (126...127) = "*"
        │   │   │       │       └── expression: ∅
        │   │   │       ├── opening_loc: (122...123) = "("
        │   │   │       └── closing_loc: (127...128) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:a]
        │   ├── def_keyword_loc: (115...118) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (121...122) = "("
        │   ├── rparen_loc: (128...129) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (131...134) = "end"
        ├── @ DefNode (location: (136...158))
        │   ├── name: :f
        │   ├── name_loc: (140...141) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (143...152))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (143...152))
        │   │   │       ├── parameters: (length: 3)
        │   │   │       │   ├── @ RequiredParameterNode (location: (144...145))
        │   │   │       │   │   └── name: :a
        │   │   │       │   ├── @ SplatNode (location: (147...148))
        │   │   │       │   │   ├── operator_loc: (147...148) = "*"
        │   │   │       │   │   └── expression: ∅
        │   │   │       │   └── @ RequiredParameterNode (location: (150...151))
        │   │   │       │       └── name: :p
        │   │   │       ├── opening_loc: (143...144) = "("
        │   │   │       └── closing_loc: (151...152) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:a, :p]
        │   ├── def_keyword_loc: (136...139) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (142...143) = "("
        │   ├── rparen_loc: (152...153) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (155...158) = "end"
        ├── @ DefNode (location: (160...180))
        │   ├── name: :f
        │   ├── name_loc: (164...165) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (167...174))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (167...174))
        │   │   │       ├── parameters: (length: 2)
        │   │   │       │   ├── @ RequiredParameterNode (location: (168...169))
        │   │   │       │   │   └── name: :a
        │   │   │       │   └── @ SplatNode (location: (171...173))
        │   │   │       │       ├── operator_loc: (171...172) = "*"
        │   │   │       │       └── expression:
        │   │   │       │           @ RequiredParameterNode (location: (172...173))
        │   │   │       │           └── name: :r
        │   │   │       ├── opening_loc: (167...168) = "("
        │   │   │       └── closing_loc: (173...174) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:a, :r]
        │   ├── def_keyword_loc: (160...163) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (166...167) = "("
        │   ├── rparen_loc: (174...175) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (177...180) = "end"
        ├── @ DefNode (location: (182...205))
        │   ├── name: :f
        │   ├── name_loc: (186...187) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (189...199))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (189...199))
        │   │   │       ├── parameters: (length: 3)
        │   │   │       │   ├── @ RequiredParameterNode (location: (190...191))
        │   │   │       │   │   └── name: :a
        │   │   │       │   ├── @ SplatNode (location: (193...195))
        │   │   │       │   │   ├── operator_loc: (193...194) = "*"
        │   │   │       │   │   └── expression:
        │   │   │       │   │       @ RequiredParameterNode (location: (194...195))
        │   │   │       │   │       └── name: :r
        │   │   │       │   └── @ RequiredParameterNode (location: (197...198))
        │   │   │       │       └── name: :p
        │   │   │       ├── opening_loc: (189...190) = "("
        │   │   │       └── closing_loc: (198...199) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:a, :r, :p]
        │   ├── def_keyword_loc: (182...185) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (188...189) = "("
        │   ├── rparen_loc: (199...200) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (202...205) = "end"
        ├── @ DefNode (location: (207...227))
        │   ├── name: :f
        │   ├── name_loc: (211...212) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (214...221))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredDestructuredParameterNode (location: (214...221))
        │   │   │       ├── parameters: (length: 2)
        │   │   │       │   ├── @ RequiredParameterNode (location: (215...216))
        │   │   │       │   │   └── name: :a
        │   │   │       │   └── @ RequiredParameterNode (location: (218...220))
        │   │   │       │       └── name: :a1
        │   │   │       ├── opening_loc: (214...215) = "("
        │   │   │       └── closing_loc: (220...221) = ")"
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:a, :a1]
        │   ├── def_keyword_loc: (207...210) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (213...214) = "("
        │   ├── rparen_loc: (221...222) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (224...227) = "end"
        ├── @ DefNode (location: (229...252))
        │   ├── name: :f
        │   ├── name_loc: (233...234) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (236...246))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 1)
        │   │   │   └── @ KeywordParameterNode (location: (236...242))
        │   │   │       ├── name: :foo
        │   │   │       ├── name_loc: (236...240) = "foo:"
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (241...242))
        │   │   │           └── flags: decimal
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (244...246))
        │   │       ├── name: :b
        │   │       ├── name_loc: (245...246) = "b"
        │   │       └── operator_loc: (244...245) = "&"
        │   ├── body: ∅
        │   ├── locals: [:foo, :b]
        │   ├── def_keyword_loc: (229...232) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (235...236) = "("
        │   ├── rparen_loc: (246...247) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (249...252) = "end"
        ├── @ DefNode (location: (254...292))
        │   ├── name: :f
        │   ├── name_loc: (258...259) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (261...286))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 2)
        │   │   │   ├── @ KeywordParameterNode (location: (261...267))
        │   │   │   │   ├── name: :foo
        │   │   │   │   ├── name_loc: (261...265) = "foo:"
        │   │   │   │   └── value:
        │   │   │   │       @ IntegerNode (location: (266...267))
        │   │   │   │       └── flags: decimal
        │   │   │   └── @ KeywordParameterNode (location: (269...275))
        │   │   │       ├── name: :bar
        │   │   │       ├── name_loc: (269...273) = "bar:"
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (274...275))
        │   │   │           └── flags: decimal
        │   │   ├── keyword_rest:
        │   │   │   @ KeywordRestParameterNode (location: (277...282))
        │   │   │   ├── name: :baz
        │   │   │   ├── name_loc: (279...282) = "baz"
        │   │   │   └── operator_loc: (277...279) = "**"
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (284...286))
        │   │       ├── name: :b
        │   │       ├── name_loc: (285...286) = "b"
        │   │       └── operator_loc: (284...285) = "&"
        │   ├── body: ∅
        │   ├── locals: [:foo, :bar, :baz, :b]
        │   ├── def_keyword_loc: (254...257) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: (260...261) = "("
        │   ├── rparen_loc: (286...287) = ")"
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (289...292) = "end"
        ├── @ DefNode (location: (294...314))
        │   ├── name: :f
        │   ├── name_loc: (298...299) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (300...309))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest:
        │   │   │   @ KeywordRestParameterNode (location: (300...305))
        │   │   │   ├── name: :baz
        │   │   │   ├── name_loc: (302...305) = "baz"
        │   │   │   └── operator_loc: (300...302) = "**"
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (307...309))
        │   │       ├── name: :b
        │   │       ├── name_loc: (308...309) = "b"
        │   │       └── operator_loc: (307...308) = "&"
        │   ├── body: ∅
        │   ├── locals: [:baz, :b]
        │   ├── def_keyword_loc: (294...297) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (311...314) = "end"
        ├── @ DefNode (location: (316...332))
        │   ├── name: :f
        │   ├── name_loc: (320...321) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (322...327))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (322...323))
        │   │   │   ├── name: nil
        │   │   │   ├── name_loc: ∅
        │   │   │   └── operator_loc: (322...323) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest:
        │   │   │   @ KeywordRestParameterNode (location: (325...327))
        │   │   │   ├── name: nil
        │   │   │   ├── name_loc: ∅
        │   │   │   └── operator_loc: (325...327) = "**"
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:*, :**]
        │   ├── def_keyword_loc: (316...319) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (329...332) = "end"
        ├── @ DefNode (location: (334...351))
        │   ├── name: :f
        │   ├── name_loc: (338...339) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (340...346))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (340...342))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (341...342) = "r"
        │   │   │   └── operator_loc: (340...341) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (344...346))
        │   │       ├── name: :b
        │   │       ├── name_loc: (345...346) = "b"
        │   │       └── operator_loc: (344...345) = "&"
        │   ├── body: ∅
        │   ├── locals: [:r, :b]
        │   ├── def_keyword_loc: (334...337) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (348...351) = "end"
        ├── @ DefNode (location: (353...373))
        │   ├── name: :f
        │   ├── name_loc: (357...358) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (359...368))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (363...364))
        │   │   │       └── name: :p
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (359...361))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (360...361) = "r"
        │   │   │   └── operator_loc: (359...360) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (366...368))
        │   │       ├── name: :b
        │   │       ├── name_loc: (367...368) = "b"
        │   │       └── operator_loc: (366...367) = "&"
        │   ├── body: ∅
        │   ├── locals: [:r, :p, :b]
        │   ├── def_keyword_loc: (353...356) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (370...373) = "end"
        ├── @ DefNode (location: (375...386))
        │   ├── name: :f
        │   ├── name_loc: (379...380) = "f"
        │   ├── receiver: ∅
        │   ├── parameters: ∅
        │   ├── body: ∅
        │   ├── locals: []
        │   ├── def_keyword_loc: (375...378) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (383...386) = "end"
        ├── @ DefNode (location: (388...404))
        │   ├── name: :f
        │   ├── name_loc: (392...393) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (394...399))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (394...395))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (397...399))
        │   │       ├── name: :b
        │   │       ├── name_loc: (398...399) = "b"
        │   │       └── operator_loc: (397...398) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :b]
        │   ├── def_keyword_loc: (388...391) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (401...404) = "end"
        ├── @ DefNode (location: (406...426))
        │   ├── name: :f
        │   ├── name_loc: (410...411) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (412...421))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (412...413))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (415...417))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (416...417) = "r"
        │   │   │   └── operator_loc: (415...416) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (419...421))
        │   │       ├── name: :b
        │   │       ├── name_loc: (420...421) = "b"
        │   │       └── operator_loc: (419...420) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :r, :b]
        │   ├── def_keyword_loc: (406...409) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (423...426) = "end"
        ├── @ DefNode (location: (428...451))
        │   ├── name: :f
        │   ├── name_loc: (432...433) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (434...446))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (434...435))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (441...442))
        │   │   │       └── name: :p
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (437...439))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (438...439) = "r"
        │   │   │   └── operator_loc: (437...438) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (444...446))
        │   │       ├── name: :b
        │   │       ├── name_loc: (445...446) = "b"
        │   │       └── operator_loc: (444...445) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :r, :p, :b]
        │   ├── def_keyword_loc: (428...431) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (448...451) = "end"
        ├── @ DefNode (location: (453...474))
        │   ├── name: :f
        │   ├── name_loc: (457...458) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (459...469))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (459...460))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (462...465))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (462...463) = "o"
        │   │   │       ├── operator_loc: (463...464) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (464...465))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (467...469))
        │   │       ├── name: :b
        │   │       ├── name_loc: (468...469) = "b"
        │   │       └── operator_loc: (467...468) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :o, :b]
        │   ├── def_keyword_loc: (453...456) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (471...474) = "end"
        ├── @ DefNode (location: (476...501))
        │   ├── name: :f
        │   ├── name_loc: (480...481) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (482...496))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (482...483))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (485...488))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (485...486) = "o"
        │   │   │       ├── operator_loc: (486...487) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (487...488))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 0)
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (490...492))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (491...492) = "r"
        │   │   │   └── operator_loc: (490...491) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (494...496))
        │   │       ├── name: :b
        │   │       ├── name_loc: (495...496) = "b"
        │   │       └── operator_loc: (494...495) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :o, :r, :b]
        │   ├── def_keyword_loc: (476...479) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (498...501) = "end"
        ├── @ DefNode (location: (503...531))
        │   ├── name: :f
        │   ├── name_loc: (507...508) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (509...526))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (509...510))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (512...515))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (512...513) = "o"
        │   │   │       ├── operator_loc: (513...514) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (514...515))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (521...522))
        │   │   │       └── name: :p
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (517...519))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (518...519) = "r"
        │   │   │   └── operator_loc: (517...518) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (524...526))
        │   │       ├── name: :b
        │   │       ├── name_loc: (525...526) = "b"
        │   │       └── operator_loc: (524...525) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :o, :r, :p, :b]
        │   ├── def_keyword_loc: (503...506) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (528...531) = "end"
        ├── @ DefNode (location: (533...557))
        │   ├── name: :f
        │   ├── name_loc: (537...538) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (539...552))
        │   │   ├── requireds: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (539...540))
        │   │   │       └── name: :a
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (542...545))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (542...543) = "o"
        │   │   │       ├── operator_loc: (543...544) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (544...545))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (547...548))
        │   │   │       └── name: :p
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (550...552))
        │   │       ├── name: :b
        │   │       ├── name_loc: (551...552) = "b"
        │   │       └── operator_loc: (550...551) = "&"
        │   ├── body: ∅
        │   ├── locals: [:a, :o, :p, :b]
        │   ├── def_keyword_loc: (533...536) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (554...557) = "end"
        ├── @ DefNode (location: (559...575))
        │   ├── name: :f
        │   ├── name_loc: (563...564) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (565...569))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 1)
        │   │   │   └── @ KeywordParameterNode (location: (565...569))
        │   │   │       ├── name: :foo
        │   │   │       ├── name_loc: (565...569) = "foo:"
        │   │   │       └── value: ∅
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:foo]
        │   ├── def_keyword_loc: (559...562) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (572...575) = "end"
        ├── @ DefNode (location: (577...596))
        │   ├── name: :f
        │   ├── name_loc: (581...582) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (583...590))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 0)
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 1)
        │   │   │   └── @ KeywordParameterNode (location: (583...590))
        │   │   │       ├── name: :foo
        │   │   │       ├── name_loc: (583...587) = "foo:"
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (588...590))
        │   │   │           └── flags: decimal
        │   │   ├── keyword_rest: ∅
        │   │   └── block: ∅
        │   ├── body: ∅
        │   ├── locals: [:foo]
        │   ├── def_keyword_loc: (577...580) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (593...596) = "end"
        ├── @ DefNode (location: (598...616))
        │   ├── name: :f
        │   ├── name_loc: (602...603) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (604...611))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (604...607))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (604...605) = "o"
        │   │   │       ├── operator_loc: (605...606) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (606...607))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 0)
        │   │   ├── rest: ∅
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (609...611))
        │   │       ├── name: :b
        │   │       ├── name_loc: (610...611) = "b"
        │   │       └── operator_loc: (609...610) = "&"
        │   ├── body: ∅
        │   ├── locals: [:o, :b]
        │   ├── def_keyword_loc: (598...601) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (613...616) = "end"
        ├── @ DefNode (location: (618...640))
        │   ├── name: :f
        │   ├── name_loc: (622...623) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (624...635))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (624...627))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (624...625) = "o"
        │   │   │       ├── operator_loc: (625...626) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (626...627))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 0)
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (629...631))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (630...631) = "r"
        │   │   │   └── operator_loc: (629...630) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (633...635))
        │   │       ├── name: :b
        │   │       ├── name_loc: (634...635) = "b"
        │   │       └── operator_loc: (633...634) = "&"
        │   ├── body: ∅
        │   ├── locals: [:o, :r, :b]
        │   ├── def_keyword_loc: (618...621) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (637...640) = "end"
        ├── @ DefNode (location: (642...667))
        │   ├── name: :f
        │   ├── name_loc: (646...647) = "f"
        │   ├── receiver: ∅
        │   ├── parameters:
        │   │   @ ParametersNode (location: (648...662))
        │   │   ├── requireds: (length: 0)
        │   │   ├── optionals: (length: 1)
        │   │   │   └── @ OptionalParameterNode (location: (648...651))
        │   │   │       ├── name: :o
        │   │   │       ├── name_loc: (648...649) = "o"
        │   │   │       ├── operator_loc: (649...650) = "="
        │   │   │       └── value:
        │   │   │           @ IntegerNode (location: (650...651))
        │   │   │           └── flags: decimal
        │   │   ├── posts: (length: 1)
        │   │   │   └── @ RequiredParameterNode (location: (657...658))
        │   │   │       └── name: :p
        │   │   ├── rest:
        │   │   │   @ RestParameterNode (location: (653...655))
        │   │   │   ├── name: :r
        │   │   │   ├── name_loc: (654...655) = "r"
        │   │   │   └── operator_loc: (653...654) = "*"
        │   │   ├── keywords: (length: 0)
        │   │   ├── keyword_rest: ∅
        │   │   └── block:
        │   │       @ BlockParameterNode (location: (660...662))
        │   │       ├── name: :b
        │   │       ├── name_loc: (661...662) = "b"
        │   │       └── operator_loc: (660...661) = "&"
        │   ├── body: ∅
        │   ├── locals: [:o, :r, :p, :b]
        │   ├── def_keyword_loc: (642...645) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (664...667) = "end"
        └── @ DefNode (location: (669...690))
            ├── name: :f
            ├── name_loc: (673...674) = "f"
            ├── receiver: ∅
            ├── parameters:
            │   @ ParametersNode (location: (675...685))
            │   ├── requireds: (length: 0)
            │   ├── optionals: (length: 1)
            │   │   └── @ OptionalParameterNode (location: (675...678))
            │   │       ├── name: :o
            │   │       ├── name_loc: (675...676) = "o"
            │   │       ├── operator_loc: (676...677) = "="
            │   │       └── value:
            │   │           @ IntegerNode (location: (677...678))
            │   │           └── flags: decimal
            │   ├── posts: (length: 1)
            │   │   └── @ RequiredParameterNode (location: (680...681))
            │   │       └── name: :p
            │   ├── rest: ∅
            │   ├── keywords: (length: 0)
            │   ├── keyword_rest: ∅
            │   └── block:
            │       @ BlockParameterNode (location: (683...685))
            │       ├── name: :b
            │       ├── name_loc: (684...685) = "b"
            │       └── operator_loc: (683...684) = "&"
            ├── body: ∅
            ├── locals: [:o, :p, :b]
            ├── def_keyword_loc: (669...672) = "def"
            ├── operator_loc: ∅
            ├── lparen_loc: ∅
            ├── rparen_loc: ∅
            ├── equal_loc: ∅
            └── end_keyword_loc: (687...690) = "end"