aboutsummaryrefslogtreecommitdiffstats
path: root/test/yarp/snapshots/unparser/corpus/literal/while.txt
blob: 29d65bc43d6b1c8c60f49fce19af0100e7cc2cc2 (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
@ ProgramNode (location: (0...620))
├── locals: [:x]
└── statements:
    @ StatementsNode (location: (0...620))
    └── body: (length: 17)
        ├── @ ModuleNode (location: (0...68))
        │   ├── locals: []
        │   ├── module_keyword_loc: (0...6) = "module"
        │   ├── constant_path:
        │   │   @ ConstantReadNode (location: (7...8))
        │   │   └── name: :A
        │   ├── body:
        │   │   @ StatementsNode (location: (11...64))
        │   │   └── body: (length: 1)
        │   │       └── @ CallNode (location: (11...64))
        │   │           ├── receiver: ∅
        │   │           ├── call_operator_loc: ∅
        │   │           ├── message_loc: (11...14) = "foo"
        │   │           ├── opening_loc: ∅
        │   │           ├── arguments: ∅
        │   │           ├── closing_loc: ∅
        │   │           ├── block:
        │   │           │   @ BlockNode (location: (15...64))
        │   │           │   ├── locals: [:bar, :foo]
        │   │           │   ├── parameters:
        │   │           │   │   @ BlockParametersNode (location: (17...22))
        │   │           │   │   ├── parameters:
        │   │           │   │   │   @ ParametersNode (location: (18...21))
        │   │           │   │   │   ├── requireds: (length: 1)
        │   │           │   │   │   │   └── @ RequiredParameterNode (location: (18...21))
        │   │           │   │   │   │       └── name: :bar
        │   │           │   │   │   ├── optionals: (length: 0)
        │   │           │   │   │   ├── posts: (length: 0)
        │   │           │   │   │   ├── rest: ∅
        │   │           │   │   │   ├── keywords: (length: 0)
        │   │           │   │   │   ├── keyword_rest: ∅
        │   │           │   │   │   └── block: ∅
        │   │           │   │   ├── locals: (length: 0)
        │   │           │   │   ├── opening_loc: (17...18) = "|"
        │   │           │   │   └── closing_loc: (21...22) = "|"
        │   │           │   ├── body:
        │   │           │   │   @ StatementsNode (location: (27...60))
        │   │           │   │   └── body: (length: 1)
        │   │           │   │       └── @ WhileNode (location: (27...60))
        │   │           │   │           ├── keyword_loc: (27...32) = "while"
        │   │           │   │           ├── closing_loc: (57...60) = "end"
        │   │           │   │           ├── predicate:
        │   │           │   │           │   @ CallNode (location: (33...36))
        │   │           │   │           │   ├── receiver: ∅
        │   │           │   │           │   ├── call_operator_loc: ∅
        │   │           │   │           │   ├── message_loc: (33...36) = "foo"
        │   │           │   │           │   ├── opening_loc: ∅
        │   │           │   │           │   ├── arguments: ∅
        │   │           │   │           │   ├── closing_loc: ∅
        │   │           │   │           │   ├── block: ∅
        │   │           │   │           │   ├── flags: variable_call
        │   │           │   │           │   └── name: "foo"
        │   │           │   │           ├── statements:
        │   │           │   │           │   @ StatementsNode (location: (43...52))
        │   │           │   │           │   └── body: (length: 1)
        │   │           │   │           │       └── @ LocalVariableWriteNode (location: (43...52))
        │   │           │   │           │           ├── name: :foo
        │   │           │   │           │           ├── depth: 0
        │   │           │   │           │           ├── name_loc: (43...46) = "foo"
        │   │           │   │           │           ├── value:
        │   │           │   │           │           │   @ LocalVariableReadNode (location: (49...52))
        │   │           │   │           │           │   ├── name: :bar
        │   │           │   │           │           │   └── depth: 0
        │   │           │   │           │           └── operator_loc: (47...48) = "="
        │   │           │   │           └── flags: 
        │   │           │   ├── opening_loc: (15...16) = "{"
        │   │           │   └── closing_loc: (63...64) = "}"
        │   │           ├── flags: 
        │   │           └── name: "foo"
        │   ├── end_keyword_loc: (65...68) = "end"
        │   └── name: :A
        ├── @ DefNode (location: (70...110))
        │   ├── name: :foo
        │   ├── name_loc: (74...77) = "foo"
        │   ├── receiver: ∅
        │   ├── parameters: ∅
        │   ├── body:
        │   │   @ StatementsNode (location: (80...106))
        │   │   └── body: (length: 1)
        │   │       └── @ WhileNode (location: (80...106))
        │   │           ├── keyword_loc: (90...95) = "while"
        │   │           ├── closing_loc: ∅
        │   │           ├── predicate:
        │   │           │   @ CallNode (location: (96...106))
        │   │           │   ├── receiver:
        │   │           │   │   @ LocalVariableReadNode (location: (96...99))
        │   │           │   │   ├── name: :foo
        │   │           │   │   └── depth: 0
        │   │           │   ├── call_operator_loc: ∅
        │   │           │   ├── message_loc: (100...102) = "!="
        │   │           │   ├── opening_loc: ∅
        │   │           │   ├── arguments:
        │   │           │   │   @ ArgumentsNode (location: (103...106))
        │   │           │   │   └── arguments: (length: 1)
        │   │           │   │       └── @ CallNode (location: (103...106))
        │   │           │   │           ├── receiver: ∅
        │   │           │   │           ├── call_operator_loc: ∅
        │   │           │   │           ├── message_loc: (103...106) = "baz"
        │   │           │   │           ├── opening_loc: ∅
        │   │           │   │           ├── arguments: ∅
        │   │           │   │           ├── closing_loc: ∅
        │   │           │   │           ├── block: ∅
        │   │           │   │           ├── flags: variable_call
        │   │           │   │           └── name: "baz"
        │   │           │   ├── closing_loc: ∅
        │   │           │   ├── block: ∅
        │   │           │   ├── flags: 
        │   │           │   └── name: "!="
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (80...89))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ LocalVariableWriteNode (location: (80...89))
        │   │           │           ├── name: :foo
        │   │           │           ├── depth: 0
        │   │           │           ├── name_loc: (80...83) = "foo"
        │   │           │           ├── value:
        │   │           │           │   @ CallNode (location: (86...89))
        │   │           │           │   ├── receiver: ∅
        │   │           │           │   ├── call_operator_loc: ∅
        │   │           │           │   ├── message_loc: (86...89) = "bar"
        │   │           │           │   ├── opening_loc: ∅
        │   │           │           │   ├── arguments: ∅
        │   │           │           │   ├── closing_loc: ∅
        │   │           │           │   ├── block: ∅
        │   │           │           │   ├── flags: variable_call
        │   │           │           │   └── name: "bar"
        │   │           │           └── operator_loc: (84...85) = "="
        │   │           └── flags: 
        │   ├── locals: [:foo]
        │   ├── def_keyword_loc: (70...73) = "def"
        │   ├── operator_loc: ∅
        │   ├── lparen_loc: ∅
        │   ├── rparen_loc: ∅
        │   ├── equal_loc: ∅
        │   └── end_keyword_loc: (107...110) = "end"
        ├── @ ModuleNode (location: (112...146))
        │   ├── locals: [:foo]
        │   ├── module_keyword_loc: (112...118) = "module"
        │   ├── constant_path:
        │   │   @ ConstantReadNode (location: (119...120))
        │   │   └── name: :A
        │   ├── body:
        │   │   @ StatementsNode (location: (123...142))
        │   │   └── body: (length: 1)
        │   │       └── @ WhileNode (location: (123...142))
        │   │           ├── keyword_loc: (133...138) = "while"
        │   │           ├── closing_loc: ∅
        │   │           ├── predicate:
        │   │           │   @ LocalVariableReadNode (location: (139...142))
        │   │           │   ├── name: :foo
        │   │           │   └── depth: 0
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (123...132))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ LocalVariableWriteNode (location: (123...132))
        │   │           │           ├── name: :foo
        │   │           │           ├── depth: 0
        │   │           │           ├── name_loc: (123...126) = "foo"
        │   │           │           ├── value:
        │   │           │           │   @ CallNode (location: (129...132))
        │   │           │           │   ├── receiver: ∅
        │   │           │           │   ├── call_operator_loc: ∅
        │   │           │           │   ├── message_loc: (129...132) = "bar"
        │   │           │           │   ├── opening_loc: ∅
        │   │           │           │   ├── arguments: ∅
        │   │           │           │   ├── closing_loc: ∅
        │   │           │           │   ├── block: ∅
        │   │           │           │   ├── flags: variable_call
        │   │           │           │   └── name: "bar"
        │   │           │           └── operator_loc: (127...128) = "="
        │   │           └── flags: 
        │   ├── end_keyword_loc: (143...146) = "end"
        │   └── name: :A
        ├── @ ModuleNode (location: (148...182))
        │   ├── locals: [:foo]
        │   ├── module_keyword_loc: (148...154) = "module"
        │   ├── constant_path:
        │   │   @ ConstantReadNode (location: (155...156))
        │   │   └── name: :A
        │   ├── body:
        │   │   @ StatementsNode (location: (159...178))
        │   │   └── body: (length: 1)
        │   │       └── @ UntilNode (location: (159...178))
        │   │           ├── keyword_loc: (169...174) = "until"
        │   │           ├── closing_loc: ∅
        │   │           ├── predicate:
        │   │           │   @ LocalVariableReadNode (location: (175...178))
        │   │           │   ├── name: :foo
        │   │           │   └── depth: 0
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (159...168))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ LocalVariableWriteNode (location: (159...168))
        │   │           │           ├── name: :foo
        │   │           │           ├── depth: 0
        │   │           │           ├── name_loc: (159...162) = "foo"
        │   │           │           ├── value:
        │   │           │           │   @ CallNode (location: (165...168))
        │   │           │           │   ├── receiver: ∅
        │   │           │           │   ├── call_operator_loc: ∅
        │   │           │           │   ├── message_loc: (165...168) = "bar"
        │   │           │           │   ├── opening_loc: ∅
        │   │           │           │   ├── arguments: ∅
        │   │           │           │   ├── closing_loc: ∅
        │   │           │           │   ├── block: ∅
        │   │           │           │   ├── flags: variable_call
        │   │           │           │   └── name: "bar"
        │   │           │           └── operator_loc: (163...164) = "="
        │   │           └── flags: 
        │   ├── end_keyword_loc: (179...182) = "end"
        │   └── name: :A
        ├── @ ModuleNode (location: (184...228))
        │   ├── locals: [:foo]
        │   ├── module_keyword_loc: (184...190) = "module"
        │   ├── constant_path:
        │   │   @ ConstantReadNode (location: (191...192))
        │   │   └── name: :A
        │   ├── body:
        │   │   @ StatementsNode (location: (195...224))
        │   │   └── body: (length: 1)
        │   │       └── @ WhileNode (location: (195...224))
        │   │           ├── keyword_loc: (195...200) = "while"
        │   │           ├── closing_loc: (221...224) = "end"
        │   │           ├── predicate:
        │   │           │   @ CallNode (location: (201...204))
        │   │           │   ├── receiver: ∅
        │   │           │   ├── call_operator_loc: ∅
        │   │           │   ├── message_loc: (201...204) = "foo"
        │   │           │   ├── opening_loc: ∅
        │   │           │   ├── arguments: ∅
        │   │           │   ├── closing_loc: ∅
        │   │           │   ├── block: ∅
        │   │           │   ├── flags: variable_call
        │   │           │   └── name: "foo"
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (209...218))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ LocalVariableWriteNode (location: (209...218))
        │   │           │           ├── name: :foo
        │   │           │           ├── depth: 0
        │   │           │           ├── name_loc: (209...212) = "foo"
        │   │           │           ├── value:
        │   │           │           │   @ CallNode (location: (215...218))
        │   │           │           │   ├── receiver: ∅
        │   │           │           │   ├── call_operator_loc: ∅
        │   │           │           │   ├── message_loc: (215...218) = "bar"
        │   │           │           │   ├── opening_loc: ∅
        │   │           │           │   ├── arguments: ∅
        │   │           │           │   ├── closing_loc: ∅
        │   │           │           │   ├── block: ∅
        │   │           │           │   ├── flags: variable_call
        │   │           │           │   └── name: "bar"
        │   │           │           └── operator_loc: (213...214) = "="
        │   │           └── flags: 
        │   ├── end_keyword_loc: (225...228) = "end"
        │   └── name: :A
        ├── @ ModuleNode (location: (230...299))
        │   ├── locals: []
        │   ├── module_keyword_loc: (230...236) = "module"
        │   ├── constant_path:
        │   │   @ ConstantReadNode (location: (237...238))
        │   │   └── name: :A
        │   ├── body:
        │   │   @ StatementsNode (location: (241...295))
        │   │   └── body: (length: 1)
        │   │       └── @ CallNode (location: (241...295))
        │   │           ├── receiver: ∅
        │   │           ├── call_operator_loc: ∅
        │   │           ├── message_loc: (241...245) = "each"
        │   │           ├── opening_loc: ∅
        │   │           ├── arguments: ∅
        │   │           ├── closing_loc: ∅
        │   │           ├── block:
        │   │           │   @ BlockNode (location: (246...295))
        │   │           │   ├── locals: [:baz, :foo]
        │   │           │   ├── parameters:
        │   │           │   │   @ BlockParametersNode (location: (248...253))
        │   │           │   │   ├── parameters:
        │   │           │   │   │   @ ParametersNode (location: (249...252))
        │   │           │   │   │   ├── requireds: (length: 1)
        │   │           │   │   │   │   └── @ RequiredParameterNode (location: (249...252))
        │   │           │   │   │   │       └── name: :baz
        │   │           │   │   │   ├── optionals: (length: 0)
        │   │           │   │   │   ├── posts: (length: 0)
        │   │           │   │   │   ├── rest: ∅
        │   │           │   │   │   ├── keywords: (length: 0)
        │   │           │   │   │   ├── keyword_rest: ∅
        │   │           │   │   │   └── block: ∅
        │   │           │   │   ├── locals: (length: 0)
        │   │           │   │   ├── opening_loc: (248...249) = "|"
        │   │           │   │   └── closing_loc: (252...253) = "|"
        │   │           │   ├── body:
        │   │           │   │   @ StatementsNode (location: (258...291))
        │   │           │   │   └── body: (length: 1)
        │   │           │   │       └── @ WhileNode (location: (258...291))
        │   │           │   │           ├── keyword_loc: (258...263) = "while"
        │   │           │   │           ├── closing_loc: (288...291) = "end"
        │   │           │   │           ├── predicate:
        │   │           │   │           │   @ CallNode (location: (264...267))
        │   │           │   │           │   ├── receiver: ∅
        │   │           │   │           │   ├── call_operator_loc: ∅
        │   │           │   │           │   ├── message_loc: (264...267) = "foo"
        │   │           │   │           │   ├── opening_loc: ∅
        │   │           │   │           │   ├── arguments: ∅
        │   │           │   │           │   ├── closing_loc: ∅
        │   │           │   │           │   ├── block: ∅
        │   │           │   │           │   ├── flags: variable_call
        │   │           │   │           │   └── name: "foo"
        │   │           │   │           ├── statements:
        │   │           │   │           │   @ StatementsNode (location: (274...283))
        │   │           │   │           │   └── body: (length: 1)
        │   │           │   │           │       └── @ LocalVariableWriteNode (location: (274...283))
        │   │           │   │           │           ├── name: :foo
        │   │           │   │           │           ├── depth: 0
        │   │           │   │           │           ├── name_loc: (274...277) = "foo"
        │   │           │   │           │           ├── value:
        │   │           │   │           │           │   @ CallNode (location: (280...283))
        │   │           │   │           │           │   ├── receiver: ∅
        │   │           │   │           │           │   ├── call_operator_loc: ∅
        │   │           │   │           │           │   ├── message_loc: (280...283) = "bar"
        │   │           │   │           │           │   ├── opening_loc: ∅
        │   │           │   │           │           │   ├── arguments: ∅
        │   │           │   │           │           │   ├── closing_loc: ∅
        │   │           │   │           │           │   ├── block: ∅
        │   │           │   │           │           │   ├── flags: variable_call
        │   │           │   │           │           │   └── name: "bar"
        │   │           │   │           │           └── operator_loc: (278...279) = "="
        │   │           │   │           └── flags: 
        │   │           │   ├── opening_loc: (246...247) = "{"
        │   │           │   └── closing_loc: (294...295) = "}"
        │   │           ├── flags: 
        │   │           └── name: "each"
        │   ├── end_keyword_loc: (296...299) = "end"
        │   └── name: :A
        ├── @ ModuleNode (location: (301...370))
        │   ├── locals: []
        │   ├── module_keyword_loc: (301...307) = "module"
        │   ├── constant_path:
        │   │   @ ConstantReadNode (location: (308...309))
        │   │   └── name: :A
        │   ├── body:
        │   │   @ StatementsNode (location: (312...366))
        │   │   └── body: (length: 1)
        │   │       └── @ CallNode (location: (312...366))
        │   │           ├── receiver: ∅
        │   │           ├── call_operator_loc: ∅
        │   │           ├── message_loc: (312...316) = "each"
        │   │           ├── opening_loc: ∅
        │   │           ├── arguments: ∅
        │   │           ├── closing_loc: ∅
        │   │           ├── block:
        │   │           │   @ BlockNode (location: (317...366))
        │   │           │   ├── locals: [:foo]
        │   │           │   ├── parameters:
        │   │           │   │   @ BlockParametersNode (location: (319...324))
        │   │           │   │   ├── parameters:
        │   │           │   │   │   @ ParametersNode (location: (320...323))
        │   │           │   │   │   ├── requireds: (length: 1)
        │   │           │   │   │   │   └── @ RequiredParameterNode (location: (320...323))
        │   │           │   │   │   │       └── name: :foo
        │   │           │   │   │   ├── optionals: (length: 0)
        │   │           │   │   │   ├── posts: (length: 0)
        │   │           │   │   │   ├── rest: ∅
        │   │           │   │   │   ├── keywords: (length: 0)
        │   │           │   │   │   ├── keyword_rest: ∅
        │   │           │   │   │   └── block: ∅
        │   │           │   │   ├── locals: (length: 0)
        │   │           │   │   ├── opening_loc: (319...320) = "|"
        │   │           │   │   └── closing_loc: (323...324) = "|"
        │   │           │   ├── body:
        │   │           │   │   @ StatementsNode (location: (329...362))
        │   │           │   │   └── body: (length: 1)
        │   │           │   │       └── @ WhileNode (location: (329...362))
        │   │           │   │           ├── keyword_loc: (329...334) = "while"
        │   │           │   │           ├── closing_loc: (359...362) = "end"
        │   │           │   │           ├── predicate:
        │   │           │   │           │   @ LocalVariableReadNode (location: (335...338))
        │   │           │   │           │   ├── name: :foo
        │   │           │   │           │   └── depth: 0
        │   │           │   │           ├── statements:
        │   │           │   │           │   @ StatementsNode (location: (345...354))
        │   │           │   │           │   └── body: (length: 1)
        │   │           │   │           │       └── @ LocalVariableWriteNode (location: (345...354))
        │   │           │   │           │           ├── name: :foo
        │   │           │   │           │           ├── depth: 0
        │   │           │   │           │           ├── name_loc: (345...348) = "foo"
        │   │           │   │           │           ├── value:
        │   │           │   │           │           │   @ CallNode (location: (351...354))
        │   │           │   │           │           │   ├── receiver: ∅
        │   │           │   │           │           │   ├── call_operator_loc: ∅
        │   │           │   │           │           │   ├── message_loc: (351...354) = "bar"
        │   │           │   │           │           │   ├── opening_loc: ∅
        │   │           │   │           │           │   ├── arguments: ∅
        │   │           │   │           │           │   ├── closing_loc: ∅
        │   │           │   │           │           │   ├── block: ∅
        │   │           │   │           │           │   ├── flags: variable_call
        │   │           │   │           │           │   └── name: "bar"
        │   │           │   │           │           └── operator_loc: (349...350) = "="
        │   │           │   │           └── flags: 
        │   │           │   ├── opening_loc: (317...318) = "{"
        │   │           │   └── closing_loc: (365...366) = "}"
        │   │           ├── flags: 
        │   │           └── name: "each"
        │   ├── end_keyword_loc: (367...370) = "end"
        │   └── name: :A
        ├── @ LocalVariableWriteNode (location: (371...402))
        │   ├── name: :x
        │   ├── depth: 0
        │   ├── name_loc: (371...372) = "x"
        │   ├── value:
        │   │   @ ParenthesesNode (location: (375...402))
        │   │   ├── body:
        │   │   │   @ StatementsNode (location: (376...401))
        │   │   │   └── body: (length: 1)
        │   │   │       └── @ WhileNode (location: (376...401))
        │   │   │           ├── keyword_loc: (392...397) = "while"
        │   │   │           ├── closing_loc: ∅
        │   │   │           ├── predicate:
        │   │   │           │   @ CallNode (location: (398...401))
        │   │   │           │   ├── receiver: ∅
        │   │   │           │   ├── call_operator_loc: ∅
        │   │   │           │   ├── message_loc: (398...401) = "baz"
        │   │   │           │   ├── opening_loc: ∅
        │   │   │           │   ├── arguments: ∅
        │   │   │           │   ├── closing_loc: ∅
        │   │   │           │   ├── block: ∅
        │   │   │           │   ├── flags: variable_call
        │   │   │           │   └── name: "baz"
        │   │   │           ├── statements:
        │   │   │           │   @ StatementsNode (location: (376...391))
        │   │   │           │   └── body: (length: 1)
        │   │   │           │       └── @ BeginNode (location: (376...391))
        │   │   │           │           ├── begin_keyword_loc: (376...381) = "begin"
        │   │   │           │           ├── statements:
        │   │   │           │           │   @ StatementsNode (location: (384...387))
        │   │   │           │           │   └── body: (length: 1)
        │   │   │           │           │       └── @ CallNode (location: (384...387))
        │   │   │           │           │           ├── receiver: ∅
        │   │   │           │           │           ├── call_operator_loc: ∅
        │   │   │           │           │           ├── message_loc: (384...387) = "foo"
        │   │   │           │           │           ├── opening_loc: ∅
        │   │   │           │           │           ├── arguments: ∅
        │   │   │           │           │           ├── closing_loc: ∅
        │   │   │           │           │           ├── block: ∅
        │   │   │           │           │           ├── flags: variable_call
        │   │   │           │           │           └── name: "foo"
        │   │   │           │           ├── rescue_clause: ∅
        │   │   │           │           ├── else_clause: ∅
        │   │   │           │           ├── ensure_clause: ∅
        │   │   │           │           └── end_keyword_loc: (388...391) = "end"
        │   │   │           └── flags: begin_modifier
        │   │   ├── opening_loc: (375...376) = "("
        │   │   └── closing_loc: (401...402) = ")"
        │   └── operator_loc: (373...374) = "="
        ├── @ WhileNode (location: (403...428))
        │   ├── keyword_loc: (419...424) = "while"
        │   ├── closing_loc: ∅
        │   ├── predicate:
        │   │   @ CallNode (location: (425...428))
        │   │   ├── receiver: ∅
        │   │   ├── call_operator_loc: ∅
        │   │   ├── message_loc: (425...428) = "baz"
        │   │   ├── opening_loc: ∅
        │   │   ├── arguments: ∅
        │   │   ├── closing_loc: ∅
        │   │   ├── block: ∅
        │   │   ├── flags: variable_call
        │   │   └── name: "baz"
        │   ├── statements:
        │   │   @ StatementsNode (location: (403...418))
        │   │   └── body: (length: 1)
        │   │       └── @ BeginNode (location: (403...418))
        │   │           ├── begin_keyword_loc: (403...408) = "begin"
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (411...414))
        │   │           │   └── body: (length: 1)
        │   │           │       └── @ CallNode (location: (411...414))
        │   │           │           ├── receiver: ∅
        │   │           │           ├── call_operator_loc: ∅
        │   │           │           ├── message_loc: (411...414) = "foo"
        │   │           │           ├── opening_loc: ∅
        │   │           │           ├── arguments: ∅
        │   │           │           ├── closing_loc: ∅
        │   │           │           ├── block: ∅
        │   │           │           ├── flags: variable_call
        │   │           │           └── name: "foo"
        │   │           ├── rescue_clause: ∅
        │   │           ├── else_clause: ∅
        │   │           ├── ensure_clause: ∅
        │   │           └── end_keyword_loc: (415...418) = "end"
        │   └── flags: begin_modifier
        ├── @ UntilNode (location: (429...460))
        │   ├── keyword_loc: (451...456) = "until"
        │   ├── closing_loc: ∅
        │   ├── predicate:
        │   │   @ CallNode (location: (457...460))
        │   │   ├── receiver: ∅
        │   │   ├── call_operator_loc: ∅
        │   │   ├── message_loc: (457...460) = "baz"
        │   │   ├── opening_loc: ∅
        │   │   ├── arguments: ∅
        │   │   ├── closing_loc: ∅
        │   │   ├── block: ∅
        │   │   ├── flags: variable_call
        │   │   └── name: "baz"
        │   ├── statements:
        │   │   @ StatementsNode (location: (429...450))
        │   │   └── body: (length: 1)
        │   │       └── @ BeginNode (location: (429...450))
        │   │           ├── begin_keyword_loc: (429...434) = "begin"
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (437...446))
        │   │           │   └── body: (length: 2)
        │   │           │       ├── @ CallNode (location: (437...440))
        │   │           │       │   ├── receiver: ∅
        │   │           │       │   ├── call_operator_loc: ∅
        │   │           │       │   ├── message_loc: (437...440) = "foo"
        │   │           │       │   ├── opening_loc: ∅
        │   │           │       │   ├── arguments: ∅
        │   │           │       │   ├── closing_loc: ∅
        │   │           │       │   ├── block: ∅
        │   │           │       │   ├── flags: variable_call
        │   │           │       │   └── name: "foo"
        │   │           │       └── @ CallNode (location: (443...446))
        │   │           │           ├── receiver: ∅
        │   │           │           ├── call_operator_loc: ∅
        │   │           │           ├── message_loc: (443...446) = "bar"
        │   │           │           ├── opening_loc: ∅
        │   │           │           ├── arguments: ∅
        │   │           │           ├── closing_loc: ∅
        │   │           │           ├── block: ∅
        │   │           │           ├── flags: variable_call
        │   │           │           └── name: "bar"
        │   │           ├── rescue_clause: ∅
        │   │           ├── else_clause: ∅
        │   │           ├── ensure_clause: ∅
        │   │           └── end_keyword_loc: (447...450) = "end"
        │   └── flags: begin_modifier
        ├── @ WhileNode (location: (461...492))
        │   ├── keyword_loc: (483...488) = "while"
        │   ├── closing_loc: ∅
        │   ├── predicate:
        │   │   @ CallNode (location: (489...492))
        │   │   ├── receiver: ∅
        │   │   ├── call_operator_loc: ∅
        │   │   ├── message_loc: (489...492) = "baz"
        │   │   ├── opening_loc: ∅
        │   │   ├── arguments: ∅
        │   │   ├── closing_loc: ∅
        │   │   ├── block: ∅
        │   │   ├── flags: variable_call
        │   │   └── name: "baz"
        │   ├── statements:
        │   │   @ StatementsNode (location: (461...482))
        │   │   └── body: (length: 1)
        │   │       └── @ BeginNode (location: (461...482))
        │   │           ├── begin_keyword_loc: (461...466) = "begin"
        │   │           ├── statements:
        │   │           │   @ StatementsNode (location: (469...478))
        │   │           │   └── body: (length: 2)
        │   │           │       ├── @ CallNode (location: (469...472))
        │   │           │       │   ├── receiver: ∅
        │   │           │       │   ├── call_operator_loc: ∅
        │   │           │       │   ├── message_loc: (469...472) = "foo"
        │   │           │       │   ├── opening_loc: ∅
        │   │           │       │   ├── arguments: ∅
        │   │           │       │   ├── closing_loc: ∅
        │   │           │       │   ├── block: ∅
        │   │           │       │   ├── flags: variable_call
        │   │           │       │   └── name: "foo"
        │   │           │       └── @ CallNode (location: (475...478))
        │   │           │           ├── receiver: ∅
        │   │           │           ├── call_operator_loc: ∅
        │   │           │           ├── message_loc: (475...478) = "bar"
        │   │           │           ├── opening_loc: ∅
        │   │           │           ├── arguments: ∅
        │   │           │           ├── closing_loc: ∅
        │   │           │           ├── block: ∅
        │   │           │           ├── flags: variable_call
        │   │           │           └── name: "bar"
        │   │           ├── rescue_clause: ∅
        │   │           ├── else_clause: ∅
        │   │           ├── ensure_clause: ∅
        │   │           └── end_keyword_loc: (479...482) = "end"
        │   └── flags: begin_modifier
        ├── @ WhileNode (location: (493...508))
        │   ├── keyword_loc: (493...498) = "while"
        │   ├── closing_loc: (505...508) = "end"
        │   ├── predicate:
        │   │   @ FalseNode (location: (499...504))
        │   ├── statements: ∅
        │   └── flags: 
        ├── @ WhileNode (location: (509...528))
        │   ├── keyword_loc: (509...514) = "while"
        │   ├── closing_loc: (525...528) = "end"
        │   ├── predicate:
        │   │   @ FalseNode (location: (515...520))
        │   ├── statements:
        │   │   @ StatementsNode (location: (523...524))
        │   │   └── body: (length: 1)
        │   │       └── @ IntegerNode (location: (523...524))
        │   │           └── flags: decimal
        │   └── flags: 
        ├── @ WhileNode (location: (529...556))
        │   ├── keyword_loc: (529...534) = "while"
        │   ├── closing_loc: (553...556) = "end"
        │   ├── predicate:
        │   │   @ ParenthesesNode (location: (535...544))
        │   │   ├── body:
        │   │   │   @ StatementsNode (location: (536...543))
        │   │   │   └── body: (length: 1)
        │   │   │       └── @ CallNode (location: (536...543))
        │   │   │           ├── receiver: ∅
        │   │   │           ├── call_operator_loc: ∅
        │   │   │           ├── message_loc: (536...539) = "foo"
        │   │   │           ├── opening_loc: ∅
        │   │   │           ├── arguments: ∅
        │   │   │           ├── closing_loc: ∅
        │   │   │           ├── block:
        │   │   │           │   @ BlockNode (location: (540...543))
        │   │   │           │   ├── locals: []
        │   │   │           │   ├── parameters: ∅
        │   │   │           │   ├── body: ∅
        │   │   │           │   ├── opening_loc: (540...541) = "{"
        │   │   │           │   └── closing_loc: (542...543) = "}"
        │   │   │           ├── flags: 
        │   │   │           └── name: "foo"
        │   │   ├── opening_loc: (535...536) = "("
        │   │   └── closing_loc: (543...544) = ")"
        │   ├── statements:
        │   │   @ StatementsNode (location: (547...552))
        │   │   └── body: (length: 1)
        │   │       └── @ SymbolNode (location: (547...552))
        │   │           ├── opening_loc: (547...548) = ":"
        │   │           ├── value_loc: (548...552) = "body"
        │   │           ├── closing_loc: ∅
        │   │           └── unescaped: "body"
        │   └── flags: 
        ├── @ UntilNode (location: (557...572))
        │   ├── keyword_loc: (557...562) = "until"
        │   ├── closing_loc: (569...572) = "end"
        │   ├── predicate:
        │   │   @ FalseNode (location: (563...568))
        │   ├── statements: ∅
        │   └── flags: 
        ├── @ UntilNode (location: (573...592))
        │   ├── keyword_loc: (573...578) = "until"
        │   ├── closing_loc: (589...592) = "end"
        │   ├── predicate:
        │   │   @ FalseNode (location: (579...584))
        │   ├── statements:
        │   │   @ StatementsNode (location: (587...588))
        │   │   └── body: (length: 1)
        │   │       └── @ IntegerNode (location: (587...588))
        │   │           └── flags: decimal
        │   └── flags: 
        └── @ UntilNode (location: (593...620))
            ├── keyword_loc: (593...598) = "until"
            ├── closing_loc: (617...620) = "end"
            ├── predicate:
            │   @ ParenthesesNode (location: (599...608))
            │   ├── body:
            │   │   @ StatementsNode (location: (600...607))
            │   │   └── body: (length: 1)
            │   │       └── @ CallNode (location: (600...607))
            │   │           ├── receiver: ∅
            │   │           ├── call_operator_loc: ∅
            │   │           ├── message_loc: (600...603) = "foo"
            │   │           ├── opening_loc: ∅
            │   │           ├── arguments: ∅
            │   │           ├── closing_loc: ∅
            │   │           ├── block:
            │   │           │   @ BlockNode (location: (604...607))
            │   │           │   ├── locals: []
            │   │           │   ├── parameters: ∅
            │   │           │   ├── body: ∅
            │   │           │   ├── opening_loc: (604...605) = "{"
            │   │           │   └── closing_loc: (606...607) = "}"
            │   │           ├── flags: 
            │   │           └── name: "foo"
            │   ├── opening_loc: (599...600) = "("
            │   └── closing_loc: (607...608) = ")"
            ├── statements:
            │   @ StatementsNode (location: (611...616))
            │   └── body: (length: 1)
            │       └── @ SymbolNode (location: (611...616))
            │           ├── opening_loc: (611...612) = ":"
            │           ├── value_loc: (612...616) = "body"
            │           ├── closing_loc: ∅
            │           └── unescaped: "body"
            └── flags: