]> git.lizzy.rs Git - rust.git/blob - crates/syntax/test_data/parser/ok/0035_weird_exprs.rast
7c61b5006de12e9591065da5eb34bbaf974d0817
[rust.git] / crates / syntax / test_data / parser / ok / 0035_weird_exprs.rast
1 SOURCE_FILE@0..3813
2   COMMENT@0..55 "//! Adapted from a `r ..."
3   WHITESPACE@55..56 "\n"
4   COMMENT@56..173 "//! https://github.co ..."
5   WHITESPACE@173..174 "\n"
6   COMMENT@174..178 "//! "
7   WHITESPACE@178..179 "\n"
8   COMMENT@179..269 "//! Reported to rust- ..."
9   WHITESPACE@269..271 "\n\n"
10   ATTR@271..302
11     POUND@271..272 "#"
12     BANG@272..273 "!"
13     L_BRACK@273..274 "["
14     PATH@274..279
15       PATH_SEGMENT@274..279
16         NAME_REF@274..279
17           IDENT@274..279 "allow"
18     TOKEN_TREE@279..301
19       L_PAREN@279..280 "("
20       IDENT@280..300 "non_camel_case_types"
21       R_PAREN@300..301 ")"
22     R_BRACK@301..302 "]"
23   WHITESPACE@302..303 "\n"
24   ATTR@303..323
25     POUND@303..304 "#"
26     BANG@304..305 "!"
27     L_BRACK@305..306 "["
28     PATH@306..311
29       PATH_SEGMENT@306..311
30         NAME_REF@306..311
31           IDENT@306..311 "allow"
32     TOKEN_TREE@311..322
33       L_PAREN@311..312 "("
34       IDENT@312..321 "dead_code"
35       R_PAREN@321..322 ")"
36     R_BRACK@322..323 "]"
37   WHITESPACE@323..324 "\n"
38   ATTR@324..351
39     POUND@324..325 "#"
40     BANG@325..326 "!"
41     L_BRACK@326..327 "["
42     PATH@327..332
43       PATH_SEGMENT@327..332
44         NAME_REF@327..332
45           IDENT@327..332 "allow"
46     TOKEN_TREE@332..350
47       L_PAREN@332..333 "("
48       IDENT@333..349 "unreachable_code"
49       R_PAREN@349..350 ")"
50     R_BRACK@350..351 "]"
51   WHITESPACE@351..352 "\n"
52   ATTR@352..376
53     POUND@352..353 "#"
54     BANG@353..354 "!"
55     L_BRACK@354..355 "["
56     PATH@355..360
57       PATH_SEGMENT@355..360
58         NAME_REF@355..360
59           IDENT@355..360 "allow"
60     TOKEN_TREE@360..375
61       L_PAREN@360..361 "("
62       IDENT@361..374 "unused_parens"
63       R_PAREN@374..375 ")"
64     R_BRACK@375..376 "]"
65   WHITESPACE@376..378 "\n\n"
66   ATTR@378..405
67     POUND@378..379 "#"
68     BANG@379..380 "!"
69     L_BRACK@380..381 "["
70     PATH@381..396
71       PATH_SEGMENT@381..396
72         NAME_REF@381..396
73           IDENT@381..396 "recursion_limit"
74     WHITESPACE@396..397 " "
75     EQ@397..398 "="
76     WHITESPACE@398..399 " "
77     LITERAL@399..404
78       STRING@399..404 "\"128\""
79     R_BRACK@404..405 "]"
80   WHITESPACE@405..407 "\n\n"
81   USE@407..427
82     USE_KW@407..410 "use"
83     WHITESPACE@410..411 " "
84     USE_TREE@411..426
85       PATH@411..426
86         PATH@411..420
87           PATH@411..414
88             PATH_SEGMENT@411..414
89               NAME_REF@411..414
90                 IDENT@411..414 "std"
91           COLON2@414..416 "::"
92           PATH_SEGMENT@416..420
93             NAME_REF@416..420
94               IDENT@416..420 "cell"
95         COLON2@420..422 "::"
96         PATH_SEGMENT@422..426
97           NAME_REF@422..426
98             IDENT@422..426 "Cell"
99     SEMICOLON@426..427 ";"
100   WHITESPACE@427..428 "\n"
101   USE@428..447
102     USE_KW@428..431 "use"
103     WHITESPACE@431..432 " "
104     USE_TREE@432..446
105       PATH@432..446
106         PATH@432..440
107           PATH@432..435
108             PATH_SEGMENT@432..435
109               NAME_REF@432..435
110                 IDENT@432..435 "std"
111           COLON2@435..437 "::"
112           PATH_SEGMENT@437..440
113             NAME_REF@437..440
114               IDENT@437..440 "mem"
115         COLON2@440..442 "::"
116         PATH_SEGMENT@442..446
117           NAME_REF@442..446
118             IDENT@442..446 "swap"
119     SEMICOLON@446..447 ";"
120   WHITESPACE@447..449 "\n\n"
121   COMMENT@449..518 "// Just a grab bag of ..."
122   WHITESPACE@518..520 "\n\n"
123   FN@520..572
124     FN_KW@520..522 "fn"
125     WHITESPACE@522..523 " "
126     NAME@523..530
127       IDENT@523..530 "strange"
128     PARAM_LIST@530..532
129       L_PAREN@530..531 "("
130       R_PAREN@531..532 ")"
131     WHITESPACE@532..533 " "
132     RET_TYPE@533..540
133       THIN_ARROW@533..535 "->"
134       WHITESPACE@535..536 " "
135       PATH_TYPE@536..540
136         PATH@536..540
137           PATH_SEGMENT@536..540
138             NAME_REF@536..540
139               IDENT@536..540 "bool"
140     WHITESPACE@540..541 " "
141     BLOCK_EXPR@541..572
142       L_CURLY@541..542 "{"
143       WHITESPACE@542..543 " "
144       LET_STMT@543..570
145         LET_KW@543..546 "let"
146         WHITESPACE@546..547 " "
147         IDENT_PAT@547..549
148           NAME@547..549
149             IDENT@547..549 "_x"
150         COLON@549..550 ":"
151         WHITESPACE@550..551 " "
152         PATH_TYPE@551..555
153           PATH@551..555
154             PATH_SEGMENT@551..555
155               NAME_REF@551..555
156                 IDENT@551..555 "bool"
157         WHITESPACE@555..556 " "
158         EQ@556..557 "="
159         WHITESPACE@557..558 " "
160         RETURN_EXPR@558..569
161           RETURN_KW@558..564 "return"
162           WHITESPACE@564..565 " "
163           LITERAL@565..569
164             TRUE_KW@565..569 "true"
165         SEMICOLON@569..570 ";"
166       WHITESPACE@570..571 " "
167       R_CURLY@571..572 "}"
168   WHITESPACE@572..574 "\n\n"
169   FN@574..624
170     FN_KW@574..576 "fn"
171     WHITESPACE@576..577 " "
172     NAME@577..582
173       IDENT@577..582 "funny"
174     PARAM_LIST@582..584
175       L_PAREN@582..583 "("
176       R_PAREN@583..584 ")"
177     WHITESPACE@584..585 " "
178     BLOCK_EXPR@585..624
179       L_CURLY@585..586 "{"
180       WHITESPACE@586..591 "\n    "
181       FN@591..607
182         FN_KW@591..593 "fn"
183         WHITESPACE@593..594 " "
184         NAME@594..595
185           IDENT@594..595 "f"
186         PARAM_LIST@595..603
187           L_PAREN@595..596 "("
188           PARAM@596..602
189             IDENT_PAT@596..598
190               NAME@596..598
191                 IDENT@596..598 "_x"
192             COLON@598..599 ":"
193             WHITESPACE@599..600 " "
194             TUPLE_TYPE@600..602
195               L_PAREN@600..601 "("
196               R_PAREN@601..602 ")"
197           R_PAREN@602..603 ")"
198         WHITESPACE@603..604 " "
199         BLOCK_EXPR@604..607
200           L_CURLY@604..605 "{"
201           WHITESPACE@605..606 " "
202           R_CURLY@606..607 "}"
203       WHITESPACE@607..612 "\n    "
204       EXPR_STMT@612..622
205         CALL_EXPR@612..621
206           PATH_EXPR@612..613
207             PATH@612..613
208               PATH_SEGMENT@612..613
209                 NAME_REF@612..613
210                   IDENT@612..613 "f"
211           ARG_LIST@613..621
212             L_PAREN@613..614 "("
213             RETURN_EXPR@614..620
214               RETURN_KW@614..620 "return"
215             R_PAREN@620..621 ")"
216         SEMICOLON@621..622 ";"
217       WHITESPACE@622..623 "\n"
218       R_CURLY@623..624 "}"
219   WHITESPACE@624..626 "\n\n"
220   FN@626..816
221     FN_KW@626..628 "fn"
222     WHITESPACE@628..629 " "
223     NAME@629..633
224       IDENT@629..633 "what"
225     PARAM_LIST@633..635
226       L_PAREN@633..634 "("
227       R_PAREN@634..635 ")"
228     WHITESPACE@635..636 " "
229     BLOCK_EXPR@636..816
230       L_CURLY@636..637 "{"
231       WHITESPACE@637..642 "\n    "
232       FN@642..720
233         FN_KW@642..644 "fn"
234         WHITESPACE@644..645 " "
235         NAME@645..648
236           IDENT@645..648 "the"
237         PARAM_LIST@648..664
238           L_PAREN@648..649 "("
239           PARAM@649..663
240             IDENT_PAT@649..650
241               NAME@649..650
242                 IDENT@649..650 "x"
243             COLON@650..651 ":"
244             WHITESPACE@651..652 " "
245             REF_TYPE@652..663
246               AMP@652..653 "&"
247               PATH_TYPE@653..663
248                 PATH@653..663
249                   PATH_SEGMENT@653..663
250                     NAME_REF@653..657
251                       IDENT@653..657 "Cell"
252                     GENERIC_ARG_LIST@657..663
253                       L_ANGLE@657..658 "<"
254                       TYPE_ARG@658..662
255                         PATH_TYPE@658..662
256                           PATH@658..662
257                             PATH_SEGMENT@658..662
258                               NAME_REF@658..662
259                                 IDENT@658..662 "bool"
260                       R_ANGLE@662..663 ">"
261           R_PAREN@663..664 ")"
262         WHITESPACE@664..665 " "
263         BLOCK_EXPR@665..720
264           L_CURLY@665..666 "{"
265           WHITESPACE@666..675 "\n        "
266           EXPR_STMT@675..714
267             RETURN_EXPR@675..713
268               RETURN_KW@675..681 "return"
269               WHITESPACE@681..682 " "
270               WHILE_EXPR@682..713
271                 WHILE_KW@682..687 "while"
272                 WHITESPACE@687..688 " "
273                 CONDITION@688..696
274                   PREFIX_EXPR@688..696
275                     BANG@688..689 "!"
276                     METHOD_CALL_EXPR@689..696
277                       PATH_EXPR@689..690
278                         PATH@689..690
279                           PATH_SEGMENT@689..690
280                             NAME_REF@689..690
281                               IDENT@689..690 "x"
282                       DOT@690..691 "."
283                       NAME_REF@691..694
284                         IDENT@691..694 "get"
285                       ARG_LIST@694..696
286                         L_PAREN@694..695 "("
287                         R_PAREN@695..696 ")"
288                 WHITESPACE@696..697 " "
289                 BLOCK_EXPR@697..713
290                   L_CURLY@697..698 "{"
291                   WHITESPACE@698..699 " "
292                   EXPR_STMT@699..711
293                     METHOD_CALL_EXPR@699..710
294                       PATH_EXPR@699..700
295                         PATH@699..700
296                           PATH_SEGMENT@699..700
297                             NAME_REF@699..700
298                               IDENT@699..700 "x"
299                       DOT@700..701 "."
300                       NAME_REF@701..704
301                         IDENT@701..704 "set"
302                       ARG_LIST@704..710
303                         L_PAREN@704..705 "("
304                         LITERAL@705..709
305                           TRUE_KW@705..709 "true"
306                         R_PAREN@709..710 ")"
307                     SEMICOLON@710..711 ";"
308                   WHITESPACE@711..712 " "
309                   R_CURLY@712..713 "}"
310             SEMICOLON@713..714 ";"
311           WHITESPACE@714..719 "\n    "
312           R_CURLY@719..720 "}"
313       WHITESPACE@720..725 "\n    "
314       LET_STMT@725..751
315         LET_KW@725..728 "let"
316         WHITESPACE@728..729 " "
317         IDENT_PAT@729..730
318           NAME@729..730
319             IDENT@729..730 "i"
320         WHITESPACE@730..731 " "
321         EQ@731..732 "="
322         WHITESPACE@732..733 " "
323         REF_EXPR@733..750
324           AMP@733..734 "&"
325           CALL_EXPR@734..750
326             PATH_EXPR@734..743
327               PATH@734..743
328                 PATH@734..738
329                   PATH_SEGMENT@734..738
330                     NAME_REF@734..738
331                       IDENT@734..738 "Cell"
332                 COLON2@738..740 "::"
333                 PATH_SEGMENT@740..743
334                   NAME_REF@740..743
335                     IDENT@740..743 "new"
336             ARG_LIST@743..750
337               L_PAREN@743..744 "("
338               LITERAL@744..749
339                 FALSE_KW@744..749 "false"
340               R_PAREN@749..750 ")"
341         SEMICOLON@750..751 ";"
342       WHITESPACE@751..756 "\n    "
343       LET_STMT@756..778
344         LET_KW@756..759 "let"
345         WHITESPACE@759..760 " "
346         IDENT_PAT@760..764
347           NAME@760..764
348             IDENT@760..764 "dont"
349         WHITESPACE@764..765 " "
350         EQ@765..766 "="
351         WHITESPACE@766..767 " "
352         BLOCK_EXPR@767..777
353           L_CURLY@767..768 "{"
354           CLOSURE_EXPR@768..776
355             PARAM_LIST@768..770
356               PIPE@768..769 "|"
357               PIPE@769..770 "|"
358             CALL_EXPR@770..776
359               PATH_EXPR@770..773
360                 PATH@770..773
361                   PATH_SEGMENT@770..773
362                     NAME_REF@770..773
363                       IDENT@770..773 "the"
364               ARG_LIST@773..776
365                 L_PAREN@773..774 "("
366                 PATH_EXPR@774..775
367                   PATH@774..775
368                     PATH_SEGMENT@774..775
369                       NAME_REF@774..775
370                         IDENT@774..775 "i"
371                 R_PAREN@775..776 ")"
372           R_CURLY@776..777 "}"
373         SEMICOLON@777..778 ";"
374       WHITESPACE@778..783 "\n    "
375       EXPR_STMT@783..790
376         CALL_EXPR@783..789
377           PATH_EXPR@783..787
378             PATH@783..787
379               PATH_SEGMENT@783..787
380                 NAME_REF@783..787
381                   IDENT@783..787 "dont"
382           ARG_LIST@787..789
383             L_PAREN@787..788 "("
384             R_PAREN@788..789 ")"
385         SEMICOLON@789..790 ";"
386       WHITESPACE@790..795 "\n    "
387       EXPR_STMT@795..814
388         MACRO_CALL@795..813
389           PATH@795..801
390             PATH_SEGMENT@795..801
391               NAME_REF@795..801
392                 IDENT@795..801 "assert"
393           BANG@801..802 "!"
394           TOKEN_TREE@802..813
395             L_PAREN@802..803 "("
396             TOKEN_TREE@803..812
397               L_PAREN@803..804 "("
398               IDENT@804..805 "i"
399               DOT@805..806 "."
400               IDENT@806..809 "get"
401               TOKEN_TREE@809..811
402                 L_PAREN@809..810 "("
403                 R_PAREN@810..811 ")"
404               R_PAREN@811..812 ")"
405             R_PAREN@812..813 ")"
406         SEMICOLON@813..814 ";"
407       WHITESPACE@814..815 "\n"
408       R_CURLY@815..816 "}"
409   WHITESPACE@816..818 "\n\n"
410   FN@818..1322
411     FN_KW@818..820 "fn"
412     WHITESPACE@820..821 " "
413     NAME@821..832
414       IDENT@821..832 "zombiejesus"
415     PARAM_LIST@832..834
416       L_PAREN@832..833 "("
417       R_PAREN@833..834 ")"
418     WHITESPACE@834..835 " "
419     BLOCK_EXPR@835..1322
420       L_CURLY@835..836 "{"
421       WHITESPACE@836..841 "\n    "
422       LOOP_EXPR@841..1320
423         LOOP_KW@841..845 "loop"
424         WHITESPACE@845..846 " "
425         BLOCK_EXPR@846..1320
426           L_CURLY@846..847 "{"
427           WHITESPACE@847..856 "\n        "
428           EXPR_STMT@856..1283
429             WHILE_EXPR@856..1283
430               WHILE_KW@856..861 "while"
431               WHITESPACE@861..862 " "
432               CONDITION@862..870
433                 PAREN_EXPR@862..870
434                   L_PAREN@862..863 "("
435                   RETURN_EXPR@863..869
436                     RETURN_KW@863..869 "return"
437                   R_PAREN@869..870 ")"
438               WHITESPACE@870..871 " "
439               BLOCK_EXPR@871..1283
440                 L_CURLY@871..872 "{"
441                 WHITESPACE@872..885 "\n            "
442                 IF_EXPR@885..1273
443                   IF_KW@885..887 "if"
444                   WHITESPACE@887..888 " "
445                   CONDITION@888..896
446                     PAREN_EXPR@888..896
447                       L_PAREN@888..889 "("
448                       RETURN_EXPR@889..895
449                         RETURN_KW@889..895 "return"
450                       R_PAREN@895..896 ")"
451                   WHITESPACE@896..897 " "
452                   BLOCK_EXPR@897..1216
453                     L_CURLY@897..898 "{"
454                     WHITESPACE@898..915 "\n                "
455                     EXPR_STMT@915..1202
456                       MATCH_EXPR@915..1201
457                         MATCH_KW@915..920 "match"
458                         WHITESPACE@920..921 " "
459                         PAREN_EXPR@921..929
460                           L_PAREN@921..922 "("
461                           RETURN_EXPR@922..928
462                             RETURN_KW@922..928 "return"
463                           R_PAREN@928..929 ")"
464                         WHITESPACE@929..930 " "
465                         MATCH_ARM_LIST@930..1201
466                           L_CURLY@930..931 "{"
467                           WHITESPACE@931..952 "\n                    "
468                           MATCH_ARM@952..1147
469                             LITERAL_PAT@952..953
470                               LITERAL@952..953
471                                 INT_NUMBER@952..953 "1"
472                             WHITESPACE@953..954 " "
473                             FAT_ARROW@954..956 "=>"
474                             WHITESPACE@956..957 " "
475                             BLOCK_EXPR@957..1147
476                               L_CURLY@957..958 "{"
477                               WHITESPACE@958..983 "\n                     ..."
478                               IF_EXPR@983..1125
479                                 IF_KW@983..985 "if"
480                                 WHITESPACE@985..986 " "
481                                 CONDITION@986..994
482                                   PAREN_EXPR@986..994
483                                     L_PAREN@986..987 "("
484                                     RETURN_EXPR@987..993
485                                       RETURN_KW@987..993 "return"
486                                     R_PAREN@993..994 ")"
487                                 WHITESPACE@994..995 " "
488                                 BLOCK_EXPR@995..1057
489                                   L_CURLY@995..996 "{"
490                                   WHITESPACE@996..1025 "\n                     ..."
491                                   RETURN_EXPR@1025..1031
492                                     RETURN_KW@1025..1031 "return"
493                                   WHITESPACE@1031..1056 "\n                     ..."
494                                   R_CURLY@1056..1057 "}"
495                                 WHITESPACE@1057..1058 " "
496                                 ELSE_KW@1058..1062 "else"
497                                 WHITESPACE@1062..1063 " "
498                                 BLOCK_EXPR@1063..1125
499                                   L_CURLY@1063..1064 "{"
500                                   WHITESPACE@1064..1093 "\n                     ..."
501                                   RETURN_EXPR@1093..1099
502                                     RETURN_KW@1093..1099 "return"
503                                   WHITESPACE@1099..1124 "\n                     ..."
504                                   R_CURLY@1124..1125 "}"
505                               WHITESPACE@1125..1146 "\n                    "
506                               R_CURLY@1146..1147 "}"
507                           WHITESPACE@1147..1168 "\n                    "
508                           MATCH_ARM@1168..1183
509                             WILDCARD_PAT@1168..1169
510                               UNDERSCORE@1168..1169 "_"
511                             WHITESPACE@1169..1170 " "
512                             FAT_ARROW@1170..1172 "=>"
513                             WHITESPACE@1172..1173 " "
514                             BLOCK_EXPR@1173..1183
515                               L_CURLY@1173..1174 "{"
516                               WHITESPACE@1174..1175 " "
517                               RETURN_EXPR@1175..1181
518                                 RETURN_KW@1175..1181 "return"
519                               WHITESPACE@1181..1182 " "
520                               R_CURLY@1182..1183 "}"
521                           WHITESPACE@1183..1200 "\n                "
522                           R_CURLY@1200..1201 "}"
523                       SEMICOLON@1201..1202 ";"
524                     WHITESPACE@1202..1215 "\n            "
525                     R_CURLY@1215..1216 "}"
526                   WHITESPACE@1216..1217 " "
527                   ELSE_KW@1217..1221 "else"
528                   WHITESPACE@1221..1222 " "
529                   IF_EXPR@1222..1273
530                     IF_KW@1222..1224 "if"
531                     WHITESPACE@1224..1225 " "
532                     CONDITION@1225..1233
533                       PAREN_EXPR@1225..1233
534                         L_PAREN@1225..1226 "("
535                         RETURN_EXPR@1226..1232
536                           RETURN_KW@1226..1232 "return"
537                         R_PAREN@1232..1233 ")"
538                     WHITESPACE@1233..1234 " "
539                     BLOCK_EXPR@1234..1273
540                       L_CURLY@1234..1235 "{"
541                       WHITESPACE@1235..1252 "\n                "
542                       EXPR_STMT@1252..1259
543                         RETURN_EXPR@1252..1258
544                           RETURN_KW@1252..1258 "return"
545                         SEMICOLON@1258..1259 ";"
546                       WHITESPACE@1259..1272 "\n            "
547                       R_CURLY@1272..1273 "}"
548                 WHITESPACE@1273..1282 "\n        "
549                 R_CURLY@1282..1283 "}"
550           WHITESPACE@1283..1292 "\n        "
551           IF_EXPR@1292..1314
552             IF_KW@1292..1294 "if"
553             WHITESPACE@1294..1295 " "
554             CONDITION@1295..1303
555               PAREN_EXPR@1295..1303
556                 L_PAREN@1295..1296 "("
557                 RETURN_EXPR@1296..1302
558                   RETURN_KW@1296..1302 "return"
559                 R_PAREN@1302..1303 ")"
560             WHITESPACE@1303..1304 " "
561             BLOCK_EXPR@1304..1314
562               L_CURLY@1304..1305 "{"
563               WHITESPACE@1305..1306 " "
564               EXPR_STMT@1306..1312
565                 BREAK_EXPR@1306..1311
566                   BREAK_KW@1306..1311 "break"
567                 SEMICOLON@1311..1312 ";"
568               WHITESPACE@1312..1313 " "
569               R_CURLY@1313..1314 "}"
570           WHITESPACE@1314..1319 "\n    "
571           R_CURLY@1319..1320 "}"
572       WHITESPACE@1320..1321 "\n"
573       R_CURLY@1321..1322 "}"
574   WHITESPACE@1322..1324 "\n\n"
575   FN@1324..1539
576     FN_KW@1324..1326 "fn"
577     WHITESPACE@1326..1327 " "
578     NAME@1327..1334
579       IDENT@1327..1334 "notsure"
580     PARAM_LIST@1334..1336
581       L_PAREN@1334..1335 "("
582       R_PAREN@1335..1336 ")"
583     WHITESPACE@1336..1337 " "
584     BLOCK_EXPR@1337..1539
585       L_CURLY@1337..1338 "{"
586       WHITESPACE@1338..1343 "\n    "
587       LET_STMT@1343..1361
588         LET_KW@1343..1346 "let"
589         WHITESPACE@1346..1347 " "
590         IDENT_PAT@1347..1353
591           MUT_KW@1347..1350 "mut"
592           WHITESPACE@1350..1351 " "
593           NAME@1351..1353
594             IDENT@1351..1353 "_x"
595         COLON@1353..1354 ":"
596         WHITESPACE@1354..1355 " "
597         PATH_TYPE@1355..1360
598           PATH@1355..1360
599             PATH_SEGMENT@1355..1360
600               NAME_REF@1355..1360
601                 IDENT@1355..1360 "isize"
602         SEMICOLON@1360..1361 ";"
603       WHITESPACE@1361..1366 "\n    "
604       LET_STMT@1366..1400
605         LET_KW@1366..1369 "let"
606         WHITESPACE@1369..1370 " "
607         IDENT_PAT@1370..1376
608           MUT_KW@1370..1373 "mut"
609           WHITESPACE@1373..1374 " "
610           NAME@1374..1376
611             IDENT@1374..1376 "_y"
612         WHITESPACE@1376..1377 " "
613         EQ@1377..1378 "="
614         WHITESPACE@1378..1379 " "
615         BIN_EXPR@1379..1399
616           PAREN_EXPR@1379..1387
617             L_PAREN@1379..1380 "("
618             BIN_EXPR@1380..1386
619               PATH_EXPR@1380..1382
620                 PATH@1380..1382
621                   PATH_SEGMENT@1380..1382
622                     NAME_REF@1380..1382
623                       IDENT@1380..1382 "_x"
624               WHITESPACE@1382..1383 " "
625               EQ@1383..1384 "="
626               WHITESPACE@1384..1385 " "
627               LITERAL@1385..1386
628                 INT_NUMBER@1385..1386 "0"
629             R_PAREN@1386..1387 ")"
630           WHITESPACE@1387..1388 " "
631           EQ2@1388..1390 "=="
632           WHITESPACE@1390..1391 " "
633           PAREN_EXPR@1391..1399
634             L_PAREN@1391..1392 "("
635             BIN_EXPR@1392..1398
636               PATH_EXPR@1392..1394
637                 PATH@1392..1394
638                   PATH_SEGMENT@1392..1394
639                     NAME_REF@1392..1394
640                       IDENT@1392..1394 "_x"
641               WHITESPACE@1394..1395 " "
642               EQ@1395..1396 "="
643               WHITESPACE@1396..1397 " "
644               LITERAL@1397..1398
645                 INT_NUMBER@1397..1398 "0"
646             R_PAREN@1398..1399 ")"
647         SEMICOLON@1399..1400 ";"
648       WHITESPACE@1400..1405 "\n    "
649       LET_STMT@1405..1438
650         LET_KW@1405..1408 "let"
651         WHITESPACE@1408..1409 " "
652         IDENT_PAT@1409..1415
653           MUT_KW@1409..1412 "mut"
654           WHITESPACE@1412..1413 " "
655           NAME@1413..1415
656             IDENT@1413..1415 "_z"
657         WHITESPACE@1415..1416 " "
658         EQ@1416..1417 "="
659         WHITESPACE@1417..1418 " "
660         BIN_EXPR@1418..1437
661           PAREN_EXPR@1418..1426
662             L_PAREN@1418..1419 "("
663             BIN_EXPR@1419..1425
664               PATH_EXPR@1419..1421
665                 PATH@1419..1421
666                   PATH_SEGMENT@1419..1421
667                     NAME_REF@1419..1421
668                       IDENT@1419..1421 "_x"
669               WHITESPACE@1421..1422 " "
670               EQ@1422..1423 "="
671               WHITESPACE@1423..1424 " "
672               LITERAL@1424..1425
673                 INT_NUMBER@1424..1425 "0"
674             R_PAREN@1425..1426 ")"
675           WHITESPACE@1426..1427 " "
676           L_ANGLE@1427..1428 "<"
677           WHITESPACE@1428..1429 " "
678           PAREN_EXPR@1429..1437
679             L_PAREN@1429..1430 "("
680             BIN_EXPR@1430..1436
681               PATH_EXPR@1430..1432
682                 PATH@1430..1432
683                   PATH_SEGMENT@1430..1432
684                     NAME_REF@1430..1432
685                       IDENT@1430..1432 "_x"
686               WHITESPACE@1432..1433 " "
687               EQ@1433..1434 "="
688               WHITESPACE@1434..1435 " "
689               LITERAL@1435..1436
690                 INT_NUMBER@1435..1436 "0"
691             R_PAREN@1436..1437 ")"
692         SEMICOLON@1437..1438 ";"
693       WHITESPACE@1438..1443 "\n    "
694       LET_STMT@1443..1474
695         LET_KW@1443..1446 "let"
696         WHITESPACE@1446..1447 " "
697         IDENT_PAT@1447..1449
698           NAME@1447..1449
699             IDENT@1447..1449 "_a"
700         WHITESPACE@1449..1450 " "
701         EQ@1450..1451 "="
702         WHITESPACE@1451..1452 " "
703         BIN_EXPR@1452..1473
704           PAREN_EXPR@1452..1461
705             L_PAREN@1452..1453 "("
706             BIN_EXPR@1453..1460
707               PATH_EXPR@1453..1455
708                 PATH@1453..1455
709                   PATH_SEGMENT@1453..1455
710                     NAME_REF@1453..1455
711                       IDENT@1453..1455 "_x"
712               WHITESPACE@1455..1456 " "
713               PLUSEQ@1456..1458 "+="
714               WHITESPACE@1458..1459 " "
715               LITERAL@1459..1460
716                 INT_NUMBER@1459..1460 "0"
717             R_PAREN@1460..1461 ")"
718           WHITESPACE@1461..1462 " "
719           EQ2@1462..1464 "=="
720           WHITESPACE@1464..1465 " "
721           PAREN_EXPR@1465..1473
722             L_PAREN@1465..1466 "("
723             BIN_EXPR@1466..1472
724               PATH_EXPR@1466..1468
725                 PATH@1466..1468
726                   PATH_SEGMENT@1466..1468
727                     NAME_REF@1466..1468
728                       IDENT@1466..1468 "_x"
729               WHITESPACE@1468..1469 " "
730               EQ@1469..1470 "="
731               WHITESPACE@1470..1471 " "
732               LITERAL@1471..1472
733                 INT_NUMBER@1471..1472 "0"
734             R_PAREN@1472..1473 ")"
735         SEMICOLON@1473..1474 ";"
736       WHITESPACE@1474..1479 "\n    "
737       LET_STMT@1479..1537
738         LET_KW@1479..1482 "let"
739         WHITESPACE@1482..1483 " "
740         IDENT_PAT@1483..1485
741           NAME@1483..1485
742             IDENT@1483..1485 "_b"
743         WHITESPACE@1485..1486 " "
744         EQ@1486..1487 "="
745         WHITESPACE@1487..1488 " "
746         BIN_EXPR@1488..1536
747           CALL_EXPR@1488..1510
748             PATH_EXPR@1488..1492
749               PATH@1488..1492
750                 PATH_SEGMENT@1488..1492
751                   NAME_REF@1488..1492
752                     IDENT@1488..1492 "swap"
753             ARG_LIST@1492..1510
754               L_PAREN@1492..1493 "("
755               REF_EXPR@1493..1500
756                 AMP@1493..1494 "&"
757                 MUT_KW@1494..1497 "mut"
758                 WHITESPACE@1497..1498 " "
759                 PATH_EXPR@1498..1500
760                   PATH@1498..1500
761                     PATH_SEGMENT@1498..1500
762                       NAME_REF@1498..1500
763                         IDENT@1498..1500 "_y"
764               COMMA@1500..1501 ","
765               WHITESPACE@1501..1502 " "
766               REF_EXPR@1502..1509
767                 AMP@1502..1503 "&"
768                 MUT_KW@1503..1506 "mut"
769                 WHITESPACE@1506..1507 " "
770                 PATH_EXPR@1507..1509
771                   PATH@1507..1509
772                     PATH_SEGMENT@1507..1509
773                       NAME_REF@1507..1509
774                         IDENT@1507..1509 "_z"
775               R_PAREN@1509..1510 ")"
776           WHITESPACE@1510..1511 " "
777           EQ2@1511..1513 "=="
778           WHITESPACE@1513..1514 " "
779           CALL_EXPR@1514..1536
780             PATH_EXPR@1514..1518
781               PATH@1514..1518
782                 PATH_SEGMENT@1514..1518
783                   NAME_REF@1514..1518
784                     IDENT@1514..1518 "swap"
785             ARG_LIST@1518..1536
786               L_PAREN@1518..1519 "("
787               REF_EXPR@1519..1526
788                 AMP@1519..1520 "&"
789                 MUT_KW@1520..1523 "mut"
790                 WHITESPACE@1523..1524 " "
791                 PATH_EXPR@1524..1526
792                   PATH@1524..1526
793                     PATH_SEGMENT@1524..1526
794                       NAME_REF@1524..1526
795                         IDENT@1524..1526 "_y"
796               COMMA@1526..1527 ","
797               WHITESPACE@1527..1528 " "
798               REF_EXPR@1528..1535
799                 AMP@1528..1529 "&"
800                 MUT_KW@1529..1532 "mut"
801                 WHITESPACE@1532..1533 " "
802                 PATH_EXPR@1533..1535
803                   PATH@1533..1535
804                     PATH_SEGMENT@1533..1535
805                       NAME_REF@1533..1535
806                         IDENT@1533..1535 "_z"
807               R_PAREN@1535..1536 ")"
808         SEMICOLON@1536..1537 ";"
809       WHITESPACE@1537..1538 "\n"
810       R_CURLY@1538..1539 "}"
811   WHITESPACE@1539..1541 "\n\n"
812   FN@1541..1741
813     FN_KW@1541..1543 "fn"
814     WHITESPACE@1543..1544 " "
815     NAME@1544..1557
816       IDENT@1544..1557 "canttouchthis"
817     PARAM_LIST@1557..1559
818       L_PAREN@1557..1558 "("
819       R_PAREN@1558..1559 ")"
820     WHITESPACE@1559..1560 " "
821     RET_TYPE@1560..1568
822       THIN_ARROW@1560..1562 "->"
823       WHITESPACE@1562..1563 " "
824       PATH_TYPE@1563..1568
825         PATH@1563..1568
826           PATH_SEGMENT@1563..1568
827             NAME_REF@1563..1568
828               IDENT@1563..1568 "usize"
829     WHITESPACE@1568..1569 " "
830     BLOCK_EXPR@1569..1741
831       L_CURLY@1569..1570 "{"
832       WHITESPACE@1570..1575 "\n    "
833       FN@1575..1598
834         FN_KW@1575..1577 "fn"
835         WHITESPACE@1577..1578 " "
836         NAME@1578..1579
837           IDENT@1578..1579 "p"
838         PARAM_LIST@1579..1581
839           L_PAREN@1579..1580 "("
840           R_PAREN@1580..1581 ")"
841         WHITESPACE@1581..1582 " "
842         RET_TYPE@1582..1589
843           THIN_ARROW@1582..1584 "->"
844           WHITESPACE@1584..1585 " "
845           PATH_TYPE@1585..1589
846             PATH@1585..1589
847               PATH_SEGMENT@1585..1589
848                 NAME_REF@1585..1589
849                   IDENT@1585..1589 "bool"
850         WHITESPACE@1589..1590 " "
851         BLOCK_EXPR@1590..1598
852           L_CURLY@1590..1591 "{"
853           WHITESPACE@1591..1592 " "
854           LITERAL@1592..1596
855             TRUE_KW@1592..1596 "true"
856           WHITESPACE@1596..1597 " "
857           R_CURLY@1597..1598 "}"
858       WHITESPACE@1598..1603 "\n    "
859       LET_STMT@1603..1648
860         LET_KW@1603..1606 "let"
861         WHITESPACE@1606..1607 " "
862         IDENT_PAT@1607..1609
863           NAME@1607..1609
864             IDENT@1607..1609 "_a"
865         WHITESPACE@1609..1610 " "
866         EQ@1610..1611 "="
867         WHITESPACE@1611..1612 " "
868         PAREN_EXPR@1612..1647
869           L_PAREN@1612..1613 "("
870           BIN_EXPR@1613..1646
871             MACRO_CALL@1613..1628
872               PATH@1613..1619
873                 PATH_SEGMENT@1613..1619
874                   NAME_REF@1613..1619
875                     IDENT@1613..1619 "assert"
876               BANG@1619..1620 "!"
877               TOKEN_TREE@1620..1628
878                 L_PAREN@1620..1621 "("
879                 TOKEN_TREE@1621..1627
880                   L_PAREN@1621..1622 "("
881                   TRUE_KW@1622..1626 "true"
882                   R_PAREN@1626..1627 ")"
883                 R_PAREN@1627..1628 ")"
884             WHITESPACE@1628..1629 " "
885             EQ2@1629..1631 "=="
886             WHITESPACE@1631..1632 " "
887             PAREN_EXPR@1632..1646
888               L_PAREN@1632..1633 "("
889               MACRO_CALL@1633..1645
890                 PATH@1633..1639
891                   PATH_SEGMENT@1633..1639
892                     NAME_REF@1633..1639
893                       IDENT@1633..1639 "assert"
894                 BANG@1639..1640 "!"
895                 TOKEN_TREE@1640..1645
896                   L_PAREN@1640..1641 "("
897                   IDENT@1641..1642 "p"
898                   TOKEN_TREE@1642..1644
899                     L_PAREN@1642..1643 "("
900                     R_PAREN@1643..1644 ")"
901                   R_PAREN@1644..1645 ")"
902               R_PAREN@1645..1646 ")"
903           R_PAREN@1646..1647 ")"
904         SEMICOLON@1647..1648 ";"
905       WHITESPACE@1648..1653 "\n    "
906       LET_STMT@1653..1685
907         LET_KW@1653..1656 "let"
908         WHITESPACE@1656..1657 " "
909         IDENT_PAT@1657..1659
910           NAME@1657..1659
911             IDENT@1657..1659 "_c"
912         WHITESPACE@1659..1660 " "
913         EQ@1660..1661 "="
914         WHITESPACE@1661..1662 " "
915         PAREN_EXPR@1662..1684
916           L_PAREN@1662..1663 "("
917           BIN_EXPR@1663..1683
918             MACRO_CALL@1663..1677
919               PATH@1663..1669
920                 PATH_SEGMENT@1663..1669
921                   NAME_REF@1663..1669
922                     IDENT@1663..1669 "assert"
923               BANG@1669..1670 "!"
924               TOKEN_TREE@1670..1677
925                 L_PAREN@1670..1671 "("
926                 TOKEN_TREE@1671..1676
927                   L_PAREN@1671..1672 "("
928                   IDENT@1672..1673 "p"
929                   TOKEN_TREE@1673..1675
930                     L_PAREN@1673..1674 "("
931                     R_PAREN@1674..1675 ")"
932                   R_PAREN@1675..1676 ")"
933                 R_PAREN@1676..1677 ")"
934             WHITESPACE@1677..1678 " "
935             EQ2@1678..1680 "=="
936             WHITESPACE@1680..1681 " "
937             TUPLE_EXPR@1681..1683
938               L_PAREN@1681..1682 "("
939               R_PAREN@1682..1683 ")"
940           R_PAREN@1683..1684 ")"
941         SEMICOLON@1684..1685 ";"
942       WHITESPACE@1685..1690 "\n    "
943       LET_STMT@1690..1739
944         LET_KW@1690..1693 "let"
945         WHITESPACE@1693..1694 " "
946         IDENT_PAT@1694..1696
947           NAME@1694..1696
948             IDENT@1694..1696 "_b"
949         COLON@1696..1697 ":"
950         WHITESPACE@1697..1698 " "
951         PATH_TYPE@1698..1702
952           PATH@1698..1702
953             PATH_SEGMENT@1698..1702
954               NAME_REF@1698..1702
955                 IDENT@1698..1702 "bool"
956         WHITESPACE@1702..1703 " "
957         EQ@1703..1704 "="
958         WHITESPACE@1704..1705 " "
959         PAREN_EXPR@1705..1738
960           L_PAREN@1705..1706 "("
961           BIN_EXPR@1706..1737
962             MACRO_CALL@1706..1723
963               PATH@1706..1713
964                 PATH_SEGMENT@1706..1713
965                   NAME_REF@1706..1713
966                     IDENT@1706..1713 "println"
967               BANG@1713..1714 "!"
968               TOKEN_TREE@1714..1723
969                 L_PAREN@1714..1715 "("
970                 STRING@1715..1719 "\"{}\""
971                 COMMA@1719..1720 ","
972                 WHITESPACE@1720..1721 " "
973                 INT_NUMBER@1721..1722 "0"
974                 R_PAREN@1722..1723 ")"
975             WHITESPACE@1723..1724 " "
976             EQ2@1724..1726 "=="
977             WHITESPACE@1726..1727 " "
978             PAREN_EXPR@1727..1737
979               L_PAREN@1727..1728 "("
980               RETURN_EXPR@1728..1736
981                 RETURN_KW@1728..1734 "return"
982                 WHITESPACE@1734..1735 " "
983                 LITERAL@1735..1736
984                   INT_NUMBER@1735..1736 "0"
985               R_PAREN@1736..1737 ")"
986           R_PAREN@1737..1738 ")"
987         SEMICOLON@1738..1739 ";"
988       WHITESPACE@1739..1740 "\n"
989       R_CURLY@1740..1741 "}"
990   WHITESPACE@1741..1743 "\n\n"
991   FN@1743..1904
992     FN_KW@1743..1745 "fn"
993     WHITESPACE@1745..1746 " "
994     NAME@1746..1755
995       IDENT@1746..1755 "angrydome"
996     PARAM_LIST@1755..1757
997       L_PAREN@1755..1756 "("
998       R_PAREN@1756..1757 ")"
999     WHITESPACE@1757..1758 " "
1000     BLOCK_EXPR@1758..1904
1001       L_CURLY@1758..1759 "{"
1002       WHITESPACE@1759..1764 "\n    "
1003       EXPR_STMT@1764..1785
1004         LOOP_EXPR@1764..1785
1005           LOOP_KW@1764..1768 "loop"
1006           WHITESPACE@1768..1769 " "
1007           BLOCK_EXPR@1769..1785
1008             L_CURLY@1769..1770 "{"
1009             WHITESPACE@1770..1771 " "
1010             IF_EXPR@1771..1783
1011               IF_KW@1771..1773 "if"
1012               WHITESPACE@1773..1774 " "
1013               CONDITION@1774..1779
1014                 BREAK_EXPR@1774..1779
1015                   BREAK_KW@1774..1779 "break"
1016               WHITESPACE@1779..1780 " "
1017               BLOCK_EXPR@1780..1783
1018                 L_CURLY@1780..1781 "{"
1019                 WHITESPACE@1781..1782 " "
1020                 R_CURLY@1782..1783 "}"
1021             WHITESPACE@1783..1784 " "
1022             R_CURLY@1784..1785 "}"
1023       WHITESPACE@1785..1790 "\n    "
1024       LET_STMT@1790..1804
1025         LET_KW@1790..1793 "let"
1026         WHITESPACE@1793..1794 " "
1027         IDENT_PAT@1794..1799
1028           MUT_KW@1794..1797 "mut"
1029           WHITESPACE@1797..1798 " "
1030           NAME@1798..1799
1031             IDENT@1798..1799 "i"
1032         WHITESPACE@1799..1800 " "
1033         EQ@1800..1801 "="
1034         WHITESPACE@1801..1802 " "
1035         LITERAL@1802..1803
1036           INT_NUMBER@1802..1803 "0"
1037         SEMICOLON@1803..1804 ";"
1038       WHITESPACE@1804..1809 "\n    "
1039       LOOP_EXPR@1809..1902
1040         LOOP_KW@1809..1813 "loop"
1041         WHITESPACE@1813..1814 " "
1042         BLOCK_EXPR@1814..1902
1043           L_CURLY@1814..1815 "{"
1044           WHITESPACE@1815..1816 " "
1045           EXPR_STMT@1816..1823
1046             BIN_EXPR@1816..1822
1047               PATH_EXPR@1816..1817
1048                 PATH@1816..1817
1049                   PATH_SEGMENT@1816..1817
1050                     NAME_REF@1816..1817
1051                       IDENT@1816..1817 "i"
1052               WHITESPACE@1817..1818 " "
1053               PLUSEQ@1818..1820 "+="
1054               WHITESPACE@1820..1821 " "
1055               LITERAL@1821..1822
1056                 INT_NUMBER@1821..1822 "1"
1057             SEMICOLON@1822..1823 ";"
1058           WHITESPACE@1823..1824 " "
1059           EXPR_STMT@1824..1887
1060             IF_EXPR@1824..1887
1061               IF_KW@1824..1826 "if"
1062               WHITESPACE@1826..1827 " "
1063               CONDITION@1827..1833
1064                 BIN_EXPR@1827..1833
1065                   PATH_EXPR@1827..1828
1066                     PATH@1827..1828
1067                       PATH_SEGMENT@1827..1828
1068                         NAME_REF@1827..1828
1069                           IDENT@1827..1828 "i"
1070                   WHITESPACE@1828..1829 " "
1071                   EQ2@1829..1831 "=="
1072                   WHITESPACE@1831..1832 " "
1073                   LITERAL@1832..1833
1074                     INT_NUMBER@1832..1833 "1"
1075               WHITESPACE@1833..1834 " "
1076               BLOCK_EXPR@1834..1887
1077                 L_CURLY@1834..1835 "{"
1078                 WHITESPACE@1835..1836 " "
1079                 MATCH_EXPR@1836..1885
1080                   MATCH_KW@1836..1841 "match"
1081                   WHITESPACE@1841..1842 " "
1082                   PAREN_EXPR@1842..1852
1083                     L_PAREN@1842..1843 "("
1084                     CONTINUE_EXPR@1843..1851
1085                       CONTINUE_KW@1843..1851 "continue"
1086                     R_PAREN@1851..1852 ")"
1087                   WHITESPACE@1852..1853 " "
1088                   MATCH_ARM_LIST@1853..1885
1089                     L_CURLY@1853..1854 "{"
1090                     WHITESPACE@1854..1855 " "
1091                     MATCH_ARM@1855..1863
1092                       LITERAL_PAT@1855..1856
1093                         LITERAL@1855..1856
1094                           INT_NUMBER@1855..1856 "1"
1095                       WHITESPACE@1856..1857 " "
1096                       FAT_ARROW@1857..1859 "=>"
1097                       WHITESPACE@1859..1860 " "
1098                       BLOCK_EXPR@1860..1863
1099                         L_CURLY@1860..1861 "{"
1100                         WHITESPACE@1861..1862 " "
1101                         R_CURLY@1862..1863 "}"
1102                     COMMA@1863..1864 ","
1103                     WHITESPACE@1864..1865 " "
1104                     MATCH_ARM@1865..1883
1105                       WILDCARD_PAT@1865..1866
1106                         UNDERSCORE@1865..1866 "_"
1107                       WHITESPACE@1866..1867 " "
1108                       FAT_ARROW@1867..1869 "=>"
1109                       WHITESPACE@1869..1870 " "
1110                       MACRO_CALL@1870..1883
1111                         PATH@1870..1875
1112                           PATH_SEGMENT@1870..1875
1113                             NAME_REF@1870..1875
1114                               IDENT@1870..1875 "panic"
1115                         BANG@1875..1876 "!"
1116                         TOKEN_TREE@1876..1883
1117                           L_PAREN@1876..1877 "("
1118                           STRING@1877..1882 "\"wat\""
1119                           R_PAREN@1882..1883 ")"
1120                     WHITESPACE@1883..1884 " "
1121                     R_CURLY@1884..1885 "}"
1122                 WHITESPACE@1885..1886 " "
1123                 R_CURLY@1886..1887 "}"
1124           WHITESPACE@1887..1894 "\n      "
1125           EXPR_STMT@1894..1900
1126             BREAK_EXPR@1894..1899
1127               BREAK_KW@1894..1899 "break"
1128             SEMICOLON@1899..1900 ";"
1129           WHITESPACE@1900..1901 " "
1130           R_CURLY@1901..1902 "}"
1131       WHITESPACE@1902..1903 "\n"
1132       R_CURLY@1903..1904 "}"
1133   WHITESPACE@1904..1906 "\n\n"
1134   FN@1906..1960
1135     FN_KW@1906..1908 "fn"
1136     WHITESPACE@1908..1909 " "
1137     NAME@1909..1921
1138       IDENT@1909..1921 "evil_lincoln"
1139     PARAM_LIST@1921..1923
1140       L_PAREN@1921..1922 "("
1141       R_PAREN@1922..1923 ")"
1142     WHITESPACE@1923..1924 " "
1143     BLOCK_EXPR@1924..1960
1144       L_CURLY@1924..1925 "{"
1145       WHITESPACE@1925..1926 " "
1146       LET_STMT@1926..1958
1147         LET_KW@1926..1929 "let"
1148         WHITESPACE@1929..1930 " "
1149         IDENT_PAT@1930..1935
1150           NAME@1930..1935
1151             IDENT@1930..1935 "_evil"
1152         WHITESPACE@1935..1936 " "
1153         EQ@1936..1937 "="
1154         WHITESPACE@1937..1938 " "
1155         MACRO_CALL@1938..1957
1156           PATH@1938..1945
1157             PATH_SEGMENT@1938..1945
1158               NAME_REF@1938..1945
1159                 IDENT@1938..1945 "println"
1160           BANG@1945..1946 "!"
1161           TOKEN_TREE@1946..1957
1162             L_PAREN@1946..1947 "("
1163             STRING@1947..1956 "\"lincoln\""
1164             R_PAREN@1956..1957 ")"
1165         SEMICOLON@1957..1958 ";"
1166       WHITESPACE@1958..1959 " "
1167       R_CURLY@1959..1960 "}"
1168   WHITESPACE@1960..1962 "\n\n"
1169   FN@1962..2198
1170     FN_KW@1962..1964 "fn"
1171     WHITESPACE@1964..1965 " "
1172     NAME@1965..1969
1173       IDENT@1965..1969 "dots"
1174     PARAM_LIST@1969..1971
1175       L_PAREN@1969..1970 "("
1176       R_PAREN@1970..1971 ")"
1177     WHITESPACE@1971..1972 " "
1178     BLOCK_EXPR@1972..2198
1179       L_CURLY@1972..1973 "{"
1180       WHITESPACE@1973..1978 "\n    "
1181       EXPR_STMT@1978..2196
1182         MACRO_CALL@1978..2195
1183           PATH@1978..1987
1184             PATH_SEGMENT@1978..1987
1185               NAME_REF@1978..1987
1186                 IDENT@1978..1987 "assert_eq"
1187           BANG@1987..1988 "!"
1188           TOKEN_TREE@1988..2195
1189             L_PAREN@1988..1989 "("
1190             IDENT@1989..1995 "String"
1191             COLON@1995..1996 ":"
1192             COLON@1996..1997 ":"
1193             IDENT@1997..2001 "from"
1194             TOKEN_TREE@2001..2055
1195               L_PAREN@2001..2002 "("
1196               STRING@2002..2054 "\".................... ..."
1197               R_PAREN@2054..2055 ")"
1198             COMMA@2055..2056 ","
1199             WHITESPACE@2056..2072 "\n               "
1200             IDENT@2072..2078 "format"
1201             BANG@2078..2079 "!"
1202             TOKEN_TREE@2079..2194
1203               L_PAREN@2079..2080 "("
1204               STRING@2080..2086 "\"{:?}\""
1205               COMMA@2086..2087 ","
1206               WHITESPACE@2087..2088 " "
1207               DOT@2088..2089 "."
1208               DOT@2089..2090 "."
1209               WHITESPACE@2090..2091 " "
1210               DOT@2091..2092 "."
1211               DOT@2092..2093 "."
1212               WHITESPACE@2093..2094 " "
1213               DOT@2094..2095 "."
1214               DOT@2095..2096 "."
1215               WHITESPACE@2096..2097 " "
1216               DOT@2097..2098 "."
1217               DOT@2098..2099 "."
1218               WHITESPACE@2099..2100 " "
1219               DOT@2100..2101 "."
1220               DOT@2101..2102 "."
1221               WHITESPACE@2102..2103 " "
1222               DOT@2103..2104 "."
1223               DOT@2104..2105 "."
1224               WHITESPACE@2105..2106 " "
1225               DOT@2106..2107 "."
1226               DOT@2107..2108 "."
1227               WHITESPACE@2108..2109 " "
1228               DOT@2109..2110 "."
1229               DOT@2110..2111 "."
1230               WHITESPACE@2111..2112 " "
1231               DOT@2112..2113 "."
1232               DOT@2113..2114 "."
1233               WHITESPACE@2114..2115 " "
1234               DOT@2115..2116 "."
1235               DOT@2116..2117 "."
1236               WHITESPACE@2117..2118 " "
1237               DOT@2118..2119 "."
1238               DOT@2119..2120 "."
1239               WHITESPACE@2120..2121 " "
1240               DOT@2121..2122 "."
1241               DOT@2122..2123 "."
1242               WHITESPACE@2123..2124 " "
1243               DOT@2124..2125 "."
1244               DOT@2125..2126 "."
1245               WHITESPACE@2126..2158 "\n                     ..."
1246               DOT@2158..2159 "."
1247               DOT@2159..2160 "."
1248               WHITESPACE@2160..2161 " "
1249               DOT@2161..2162 "."
1250               DOT@2162..2163 "."
1251               WHITESPACE@2163..2164 " "
1252               DOT@2164..2165 "."
1253               DOT@2165..2166 "."
1254               WHITESPACE@2166..2167 " "
1255               DOT@2167..2168 "."
1256               DOT@2168..2169 "."
1257               WHITESPACE@2169..2170 " "
1258               DOT@2170..2171 "."
1259               DOT@2171..2172 "."
1260               WHITESPACE@2172..2173 " "
1261               DOT@2173..2174 "."
1262               DOT@2174..2175 "."
1263               WHITESPACE@2175..2176 " "
1264               DOT@2176..2177 "."
1265               DOT@2177..2178 "."
1266               WHITESPACE@2178..2179 " "
1267               DOT@2179..2180 "."
1268               DOT@2180..2181 "."
1269               WHITESPACE@2181..2182 " "
1270               DOT@2182..2183 "."
1271               DOT@2183..2184 "."
1272               WHITESPACE@2184..2185 " "
1273               DOT@2185..2186 "."
1274               DOT@2186..2187 "."
1275               WHITESPACE@2187..2188 " "
1276               DOT@2188..2189 "."
1277               DOT@2189..2190 "."
1278               WHITESPACE@2190..2191 " "
1279               DOT@2191..2192 "."
1280               DOT@2192..2193 "."
1281               R_PAREN@2193..2194 ")"
1282             R_PAREN@2194..2195 ")"
1283         SEMICOLON@2195..2196 ";"
1284       WHITESPACE@2196..2197 "\n"
1285       R_CURLY@2197..2198 "}"
1286   WHITESPACE@2198..2200 "\n\n"
1287   FN@2200..2693
1288     FN_KW@2200..2202 "fn"
1289     WHITESPACE@2202..2203 " "
1290     NAME@2203..2205
1291       IDENT@2203..2205 "u8"
1292     PARAM_LIST@2205..2213
1293       L_PAREN@2205..2206 "("
1294       PARAM@2206..2212
1295         IDENT_PAT@2206..2208
1296           NAME@2206..2208
1297             IDENT@2206..2208 "u8"
1298         COLON@2208..2209 ":"
1299         WHITESPACE@2209..2210 " "
1300         PATH_TYPE@2210..2212
1301           PATH@2210..2212
1302             PATH_SEGMENT@2210..2212
1303               NAME_REF@2210..2212
1304                 IDENT@2210..2212 "u8"
1305       R_PAREN@2212..2213 ")"
1306     WHITESPACE@2213..2214 " "
1307     BLOCK_EXPR@2214..2693
1308       L_CURLY@2214..2215 "{"
1309       WHITESPACE@2215..2220 "\n    "
1310       IF_EXPR@2220..2691
1311         IF_KW@2220..2222 "if"
1312         WHITESPACE@2222..2223 " "
1313         CONDITION@2223..2232
1314           BIN_EXPR@2223..2232
1315             PATH_EXPR@2223..2225
1316               PATH@2223..2225
1317                 PATH_SEGMENT@2223..2225
1318                   NAME_REF@2223..2225
1319                     IDENT@2223..2225 "u8"
1320             WHITESPACE@2225..2226 " "
1321             NEQ@2226..2228 "!="
1322             WHITESPACE@2228..2229 " "
1323             LITERAL@2229..2232
1324               INT_NUMBER@2229..2232 "0u8"
1325         WHITESPACE@2232..2233 " "
1326         BLOCK_EXPR@2233..2691
1327           L_CURLY@2233..2234 "{"
1328           WHITESPACE@2234..2243 "\n        "
1329           EXPR_STMT@2243..2685
1330             MACRO_CALL@2243..2684
1331               PATH@2243..2252
1332                 PATH_SEGMENT@2243..2252
1333                   NAME_REF@2243..2252
1334                     IDENT@2243..2252 "assert_eq"
1335               BANG@2252..2253 "!"
1336               TOKEN_TREE@2253..2684
1337                 L_PAREN@2253..2254 "("
1338                 INT_NUMBER@2254..2257 "8u8"
1339                 COMMA@2257..2258 ","
1340                 WHITESPACE@2258..2259 " "
1341                 TOKEN_TREE@2259..2683
1342                   L_CURLY@2259..2260 "{"
1343                   WHITESPACE@2260..2273 "\n            "
1344                   IDENT@2273..2284 "macro_rules"
1345                   BANG@2284..2285 "!"
1346                   WHITESPACE@2285..2286 " "
1347                   IDENT@2286..2288 "u8"
1348                   WHITESPACE@2288..2289 " "
1349                   TOKEN_TREE@2289..2567
1350                     L_CURLY@2289..2290 "{"
1351                     WHITESPACE@2290..2307 "\n                "
1352                     TOKEN_TREE@2307..2311
1353                       L_PAREN@2307..2308 "("
1354                       IDENT@2308..2310 "u8"
1355                       R_PAREN@2310..2311 ")"
1356                     WHITESPACE@2311..2312 " "
1357                     EQ@2312..2313 "="
1358                     R_ANGLE@2313..2314 ">"
1359                     WHITESPACE@2314..2315 " "
1360                     TOKEN_TREE@2315..2552
1361                       L_CURLY@2315..2316 "{"
1362                       WHITESPACE@2316..2337 "\n                    "
1363                       MOD_KW@2337..2340 "mod"
1364                       WHITESPACE@2340..2341 " "
1365                       IDENT@2341..2343 "u8"
1366                       WHITESPACE@2343..2344 " "
1367                       TOKEN_TREE@2344..2534
1368                         L_CURLY@2344..2345 "{"
1369                         WHITESPACE@2345..2370 "\n                     ..."
1370                         PUB_KW@2370..2373 "pub"
1371                         WHITESPACE@2373..2374 " "
1372                         FN_KW@2374..2376 "fn"
1373                         WHITESPACE@2376..2377 " "
1374                         IDENT@2377..2379 "u8"
1375                         L_ANGLE@2379..2380 "<"
1376                         LIFETIME@2380..2383 "\'u8"
1377                         COLON@2383..2384 ":"
1378                         WHITESPACE@2384..2385 " "
1379                         LIFETIME@2385..2388 "\'u8"
1380                         WHITESPACE@2388..2389 " "
1381                         PLUS@2389..2390 "+"
1382                         WHITESPACE@2390..2391 " "
1383                         LIFETIME@2391..2394 "\'u8"
1384                         R_ANGLE@2394..2395 ">"
1385                         TOKEN_TREE@2395..2408
1386                           L_PAREN@2395..2396 "("
1387                           IDENT@2396..2398 "u8"
1388                           COLON@2398..2399 ":"
1389                           WHITESPACE@2399..2400 " "
1390                           AMP@2400..2401 "&"
1391                           LIFETIME@2401..2404 "\'u8"
1392                           WHITESPACE@2404..2405 " "
1393                           IDENT@2405..2407 "u8"
1394                           R_PAREN@2407..2408 ")"
1395                         WHITESPACE@2408..2409 " "
1396                         MINUS@2409..2410 "-"
1397                         R_ANGLE@2410..2411 ">"
1398                         WHITESPACE@2411..2412 " "
1399                         AMP@2412..2413 "&"
1400                         LIFETIME@2413..2416 "\'u8"
1401                         WHITESPACE@2416..2417 " "
1402                         IDENT@2417..2419 "u8"
1403                         WHITESPACE@2419..2420 " "
1404                         TOKEN_TREE@2420..2512
1405                           L_CURLY@2420..2421 "{"
1406                           WHITESPACE@2421..2450 "\n                     ..."
1407                           STRING@2450..2454 "\"u8\""
1408                           SEMICOLON@2454..2455 ";"
1409                           WHITESPACE@2455..2484 "\n                     ..."
1410                           IDENT@2484..2486 "u8"
1411                           WHITESPACE@2486..2511 "\n                     ..."
1412                           R_CURLY@2511..2512 "}"
1413                         WHITESPACE@2512..2533 "\n                    "
1414                         R_CURLY@2533..2534 "}"
1415                       WHITESPACE@2534..2551 "\n                "
1416                       R_CURLY@2551..2552 "}"
1417                     SEMICOLON@2552..2553 ";"
1418                     WHITESPACE@2553..2566 "\n            "
1419                     R_CURLY@2566..2567 "}"
1420                   WHITESPACE@2567..2581 "\n\n            "
1421                   IDENT@2581..2583 "u8"
1422                   BANG@2583..2584 "!"
1423                   TOKEN_TREE@2584..2588
1424                     L_PAREN@2584..2585 "("
1425                     IDENT@2585..2587 "u8"
1426                     R_PAREN@2587..2588 ")"
1427                   SEMICOLON@2588..2589 ";"
1428                   WHITESPACE@2589..2602 "\n            "
1429                   LET_KW@2602..2605 "let"
1430                   WHITESPACE@2605..2606 " "
1431                   AMP@2606..2607 "&"
1432                   IDENT@2607..2609 "u8"
1433                   COLON@2609..2610 ":"
1434                   WHITESPACE@2610..2611 " "
1435                   AMP@2611..2612 "&"
1436                   IDENT@2612..2614 "u8"
1437                   WHITESPACE@2614..2615 " "
1438                   EQ@2615..2616 "="
1439                   WHITESPACE@2616..2617 " "
1440                   IDENT@2617..2619 "u8"
1441                   COLON@2619..2620 ":"
1442                   COLON@2620..2621 ":"
1443                   IDENT@2621..2623 "u8"
1444                   TOKEN_TREE@2623..2629
1445                     L_PAREN@2623..2624 "("
1446                     AMP@2624..2625 "&"
1447                     INT_NUMBER@2625..2628 "8u8"
1448                     R_PAREN@2628..2629 ")"
1449                   SEMICOLON@2629..2630 ";"
1450                   WHITESPACE@2630..2643 "\n            "
1451                   CRATE_KW@2643..2648 "crate"
1452                   COLON@2648..2649 ":"
1453                   COLON@2649..2650 ":"
1454                   IDENT@2650..2652 "u8"
1455                   TOKEN_TREE@2652..2657
1456                     L_PAREN@2652..2653 "("
1457                     INT_NUMBER@2653..2656 "0u8"
1458                     R_PAREN@2656..2657 ")"
1459                   SEMICOLON@2657..2658 ";"
1460                   WHITESPACE@2658..2671 "\n            "
1461                   IDENT@2671..2673 "u8"
1462                   WHITESPACE@2673..2682 "\n        "
1463                   R_CURLY@2682..2683 "}"
1464                 R_PAREN@2683..2684 ")"
1465             SEMICOLON@2684..2685 ";"
1466           WHITESPACE@2685..2690 "\n    "
1467           R_CURLY@2690..2691 "}"
1468       WHITESPACE@2691..2692 "\n"
1469       R_CURLY@2692..2693 "}"
1470   WHITESPACE@2693..2695 "\n\n"
1471   FN@2695..2832
1472     FN_KW@2695..2697 "fn"
1473     WHITESPACE@2697..2698 " "
1474     NAME@2698..2703
1475       IDENT@2698..2703 "fishy"
1476     PARAM_LIST@2703..2705
1477       L_PAREN@2703..2704 "("
1478       R_PAREN@2704..2705 ")"
1479     WHITESPACE@2705..2706 " "
1480     BLOCK_EXPR@2706..2832
1481       L_CURLY@2706..2707 "{"
1482       WHITESPACE@2707..2712 "\n    "
1483       EXPR_STMT@2712..2830
1484         MACRO_CALL@2712..2829
1485           PATH@2712..2721
1486             PATH_SEGMENT@2712..2721
1487               NAME_REF@2712..2721
1488                 IDENT@2712..2721 "assert_eq"
1489           BANG@2721..2722 "!"
1490           TOKEN_TREE@2722..2829
1491             L_PAREN@2722..2723 "("
1492             IDENT@2723..2729 "String"
1493             COLON@2729..2730 ":"
1494             COLON@2730..2731 ":"
1495             IDENT@2731..2735 "from"
1496             TOKEN_TREE@2735..2742
1497               L_PAREN@2735..2736 "("
1498               STRING@2736..2741 "\"><>\""
1499               R_PAREN@2741..2742 ")"
1500             COMMA@2742..2743 ","
1501             WHITESPACE@2743..2759 "\n               "
1502             IDENT@2759..2765 "String"
1503             COLON@2765..2766 ":"
1504             COLON@2766..2767 ":"
1505             L_ANGLE@2767..2768 "<"
1506             R_ANGLE@2768..2769 ">"
1507             COLON@2769..2770 ":"
1508             COLON@2770..2771 ":"
1509             IDENT@2771..2775 "from"
1510             COLON@2775..2776 ":"
1511             COLON@2776..2777 ":"
1512             L_ANGLE@2777..2778 "<"
1513             R_ANGLE@2778..2779 ">"
1514             TOKEN_TREE@2779..2786
1515               L_PAREN@2779..2780 "("
1516               STRING@2780..2785 "\"><>\""
1517               R_PAREN@2785..2786 ")"
1518             DOT@2786..2787 "."
1519             IDENT@2787..2792 "chars"
1520             COLON@2792..2793 ":"
1521             COLON@2793..2794 ":"
1522             L_ANGLE@2794..2795 "<"
1523             R_ANGLE@2795..2796 ">"
1524             TOKEN_TREE@2796..2798
1525               L_PAREN@2796..2797 "("
1526               R_PAREN@2797..2798 ")"
1527             DOT@2798..2799 "."
1528             IDENT@2799..2802 "rev"
1529             COLON@2802..2803 ":"
1530             COLON@2803..2804 ":"
1531             L_ANGLE@2804..2805 "<"
1532             R_ANGLE@2805..2806 ">"
1533             TOKEN_TREE@2806..2808
1534               L_PAREN@2806..2807 "("
1535               R_PAREN@2807..2808 ")"
1536             DOT@2808..2809 "."
1537             IDENT@2809..2816 "collect"
1538             COLON@2816..2817 ":"
1539             COLON@2817..2818 ":"
1540             L_ANGLE@2818..2819 "<"
1541             IDENT@2819..2825 "String"
1542             R_ANGLE@2825..2826 ">"
1543             TOKEN_TREE@2826..2828
1544               L_PAREN@2826..2827 "("
1545               R_PAREN@2827..2828 ")"
1546             R_PAREN@2828..2829 ")"
1547         SEMICOLON@2829..2830 ";"
1548       WHITESPACE@2830..2831 "\n"
1549       R_CURLY@2831..2832 "}"
1550   WHITESPACE@2832..2834 "\n\n"
1551   FN@2834..2906
1552     FN_KW@2834..2836 "fn"
1553     WHITESPACE@2836..2837 " "
1554     NAME@2837..2842
1555       IDENT@2837..2842 "union"
1556     PARAM_LIST@2842..2844
1557       L_PAREN@2842..2843 "("
1558       R_PAREN@2843..2844 ")"
1559     WHITESPACE@2844..2845 " "
1560     BLOCK_EXPR@2845..2906
1561       L_CURLY@2845..2846 "{"
1562       WHITESPACE@2846..2851 "\n    "
1563       UNION@2851..2904
1564         UNION_KW@2851..2856 "union"
1565         WHITESPACE@2856..2857 " "
1566         NAME@2857..2862
1567           IDENT@2857..2862 "union"
1568         GENERIC_PARAM_LIST@2862..2870
1569           L_ANGLE@2862..2863 "<"
1570           LIFETIME_PARAM@2863..2869
1571             LIFETIME@2863..2869 "\'union"
1572           R_ANGLE@2869..2870 ">"
1573         WHITESPACE@2870..2871 " "
1574         RECORD_FIELD_LIST@2871..2904
1575           L_CURLY@2871..2872 "{"
1576           WHITESPACE@2872..2873 " "
1577           RECORD_FIELD@2873..2901
1578             NAME@2873..2878
1579               IDENT@2873..2878 "union"
1580             COLON@2878..2879 ":"
1581             WHITESPACE@2879..2880 " "
1582             REF_TYPE@2880..2901
1583               AMP@2880..2881 "&"
1584               LIFETIME@2881..2887 "\'union"
1585               WHITESPACE@2887..2888 " "
1586               PATH_TYPE@2888..2901
1587                 PATH@2888..2901
1588                   PATH_SEGMENT@2888..2901
1589                     NAME_REF@2888..2893
1590                       IDENT@2888..2893 "union"
1591                     GENERIC_ARG_LIST@2893..2901
1592                       L_ANGLE@2893..2894 "<"
1593                       LIFETIME_ARG@2894..2900
1594                         LIFETIME@2894..2900 "\'union"
1595                       R_ANGLE@2900..2901 ">"
1596           COMMA@2901..2902 ","
1597           WHITESPACE@2902..2903 " "
1598           R_CURLY@2903..2904 "}"
1599       WHITESPACE@2904..2905 "\n"
1600       R_CURLY@2905..2906 "}"
1601   WHITESPACE@2906..2908 "\n\n"
1602   FN@2908..3042
1603     FN_KW@2908..2910 "fn"
1604     WHITESPACE@2910..2911 " "
1605     NAME@2911..2929
1606       IDENT@2911..2929 "special_characters"
1607     PARAM_LIST@2929..2931
1608       L_PAREN@2929..2930 "("
1609       R_PAREN@2930..2931 ")"
1610     WHITESPACE@2931..2932 " "
1611     BLOCK_EXPR@2932..3042
1612       L_CURLY@2932..2933 "{"
1613       WHITESPACE@2933..2938 "\n    "
1614       LET_STMT@2938..3021
1615         LET_KW@2938..2941 "let"
1616         WHITESPACE@2941..2942 " "
1617         IDENT_PAT@2942..2945
1618           NAME@2942..2945
1619             IDENT@2942..2945 "val"
1620         WHITESPACE@2945..2946 " "
1621         EQ@2946..2947 "="
1622         WHITESPACE@2947..2948 " "
1623         PREFIX_EXPR@2948..3013
1624           BANG@2948..2949 "!"
1625           PAREN_EXPR@2949..3013
1626             L_PAREN@2949..2950 "("
1627             BIN_EXPR@2950..3012
1628               CALL_EXPR@2950..2995
1629                 PAREN_EXPR@2950..2971
1630                   L_PAREN@2950..2951 "("
1631                   CLOSURE_EXPR@2951..2970
1632                     PARAM_LIST@2951..2968
1633                       PIPE@2951..2952 "|"
1634                       PARAM@2952..2962
1635                         TUPLE_PAT@2952..2956
1636                           L_PAREN@2952..2953 "("
1637                           REST_PAT@2953..2955
1638                             DOT2@2953..2955 ".."
1639                           R_PAREN@2955..2956 ")"
1640                         COLON@2956..2957 ":"
1641                         TUPLE_TYPE@2957..2962
1642                           L_PAREN@2957..2958 "("
1643                           INFER_TYPE@2958..2959
1644                             UNDERSCORE@2958..2959 "_"
1645                           COMMA@2959..2960 ","
1646                           INFER_TYPE@2960..2961
1647                             UNDERSCORE@2960..2961 "_"
1648                           R_PAREN@2961..2962 ")"
1649                       COMMA@2962..2963 ","
1650                       PARAM@2963..2967
1651                         IDENT_PAT@2963..2967
1652                           NAME@2963..2965
1653                             IDENT@2963..2965 "__"
1654                           AT@2965..2966 "@"
1655                           WILDCARD_PAT@2966..2967
1656                             UNDERSCORE@2966..2967 "_"
1657                       PIPE@2967..2968 "|"
1658                     PATH_EXPR@2968..2970
1659                       PATH@2968..2970
1660                         PATH_SEGMENT@2968..2970
1661                           NAME_REF@2968..2970
1662                             IDENT@2968..2970 "__"
1663                   R_PAREN@2970..2971 ")"
1664                 ARG_LIST@2971..2995
1665                   L_PAREN@2971..2972 "("
1666                   TUPLE_EXPR@2972..2987
1667                     L_PAREN@2972..2973 "("
1668                     REF_EXPR@2973..2979
1669                       AMP@2973..2974 "&"
1670                       PREFIX_EXPR@2974..2979
1671                         STAR@2974..2975 "*"
1672                         LITERAL@2975..2979
1673                           STRING@2975..2979 "\"\\\\\""
1674                     COMMA@2979..2980 ","
1675                     LITERAL@2980..2986
1676                       CHAR@2980..2986 "\'🤔\'"
1677                     R_PAREN@2986..2987 ")"
1678                   COMMENT@2987..2991 "/**/"
1679                   COMMA@2991..2992 ","
1680                   BLOCK_EXPR@2992..2994
1681                     L_CURLY@2992..2993 "{"
1682                     R_CURLY@2993..2994 "}"
1683                   R_PAREN@2994..2995 ")"
1684               EQ2@2995..2997 "=="
1685               BLOCK_EXPR@2997..3012
1686                 L_CURLY@2997..2998 "{"
1687                 EXPR_STMT@2998..3011
1688                   REF_EXPR@2998..3010
1689                     AMP@2998..2999 "&"
1690                     INDEX_EXPR@2999..3010
1691                       ARRAY_EXPR@2999..3006
1692                         L_BRACK@2999..3000 "["
1693                         RANGE_EXPR@3000..3005
1694                           DOT2EQ@3000..3003 "..="
1695                           RANGE_EXPR@3003..3005
1696                             DOT2@3003..3005 ".."
1697                         R_BRACK@3005..3006 "]"
1698                       L_BRACK@3006..3007 "["
1699                       RANGE_EXPR@3007..3009
1700                         DOT2@3007..3009 ".."
1701                       R_BRACK@3009..3010 "]"
1702                   SEMICOLON@3010..3011 ";"
1703                 R_CURLY@3011..3012 "}"
1704             R_PAREN@3012..3013 ")"
1705         COMMENT@3013..3015 "//"
1706         WHITESPACE@3015..3020 "\n    "
1707         SEMICOLON@3020..3021 ";"
1708       WHITESPACE@3021..3026 "\n    "
1709       EXPR_STMT@3026..3040
1710         MACRO_CALL@3026..3039
1711           PATH@3026..3032
1712             PATH_SEGMENT@3026..3032
1713               NAME_REF@3026..3032
1714                 IDENT@3026..3032 "assert"
1715           BANG@3032..3033 "!"
1716           TOKEN_TREE@3033..3039
1717             L_PAREN@3033..3034 "("
1718             BANG@3034..3035 "!"
1719             IDENT@3035..3038 "val"
1720             R_PAREN@3038..3039 ")"
1721         SEMICOLON@3039..3040 ";"
1722       WHITESPACE@3040..3041 "\n"
1723       R_CURLY@3041..3042 "}"
1724   WHITESPACE@3042..3044 "\n\n"
1725   FN@3044..3514
1726     FN_KW@3044..3046 "fn"
1727     WHITESPACE@3046..3047 " "
1728     NAME@3047..3057
1729       IDENT@3047..3057 "punch_card"
1730     PARAM_LIST@3057..3059
1731       L_PAREN@3057..3058 "("
1732       R_PAREN@3058..3059 ")"
1733     WHITESPACE@3059..3060 " "
1734     RET_TYPE@3060..3083
1735       THIN_ARROW@3060..3062 "->"
1736       WHITESPACE@3062..3063 " "
1737       IMPL_TRAIT_TYPE@3063..3083
1738         IMPL_KW@3063..3067 "impl"
1739         WHITESPACE@3067..3068 " "
1740         TYPE_BOUND_LIST@3068..3083
1741           TYPE_BOUND@3068..3083
1742             PATH_TYPE@3068..3083
1743               PATH@3068..3083
1744                 PATH@3068..3076
1745                   PATH@3068..3071
1746                     PATH_SEGMENT@3068..3071
1747                       NAME_REF@3068..3071
1748                         IDENT@3068..3071 "std"
1749                   COLON2@3071..3073 "::"
1750                   PATH_SEGMENT@3073..3076
1751                     NAME_REF@3073..3076
1752                       IDENT@3073..3076 "fmt"
1753                 COLON2@3076..3078 "::"
1754                 PATH_SEGMENT@3078..3083
1755                   NAME_REF@3078..3083
1756                     IDENT@3078..3083 "Debug"
1757     WHITESPACE@3083..3084 " "
1758     BLOCK_EXPR@3084..3514
1759       L_CURLY@3084..3085 "{"
1760       WHITESPACE@3085..3090 "\n    "
1761       RANGE_EXPR@3090..3512
1762         DOT2EQ@3090..3093 "..="
1763         RANGE_EXPR@3093..3512
1764           DOT2EQ@3093..3096 "..="
1765           RANGE_EXPR@3096..3512
1766             DOT2@3096..3098 ".."
1767             WHITESPACE@3098..3099 " "
1768             RANGE_EXPR@3099..3512
1769               DOT2@3099..3101 ".."
1770               WHITESPACE@3101..3105 "    "
1771               RANGE_EXPR@3105..3512
1772                 DOT2@3105..3107 ".."
1773                 WHITESPACE@3107..3108 " "
1774                 RANGE_EXPR@3108..3512
1775                   DOT2@3108..3110 ".."
1776                   WHITESPACE@3110..3111 " "
1777                   RANGE_EXPR@3111..3512
1778                     DOT2@3111..3113 ".."
1779                     WHITESPACE@3113..3114 " "
1780                     RANGE_EXPR@3114..3512
1781                       DOT2@3114..3116 ".."
1782                       WHITESPACE@3116..3120 "    "
1783                       RANGE_EXPR@3120..3512
1784                         DOT2@3120..3122 ".."
1785                         WHITESPACE@3122..3123 " "
1786                         RANGE_EXPR@3123..3512
1787                           DOT2@3123..3125 ".."
1788                           WHITESPACE@3125..3126 " "
1789                           RANGE_EXPR@3126..3512
1790                             DOT2@3126..3128 ".."
1791                             WHITESPACE@3128..3129 " "
1792                             RANGE_EXPR@3129..3512
1793                               DOT2@3129..3131 ".."
1794                               WHITESPACE@3131..3135 "    "
1795                               RANGE_EXPR@3135..3512
1796                                 DOT2@3135..3137 ".."
1797                                 WHITESPACE@3137..3138 " "
1798                                 RANGE_EXPR@3138..3512
1799                                   DOT2EQ@3138..3141 "..="
1800                                   RANGE_EXPR@3141..3512
1801                                     DOT2@3141..3143 ".."
1802                                     WHITESPACE@3143..3144 " "
1803                                     RANGE_EXPR@3144..3512
1804                                       DOT2@3144..3146 ".."
1805                                       WHITESPACE@3146..3151 "\n    "
1806                                       RANGE_EXPR@3151..3512
1807                                         DOT2EQ@3151..3154 "..="
1808                                         RANGE_EXPR@3154..3512
1809                                           DOT2@3154..3156 ".."
1810                                           WHITESPACE@3156..3157 " "
1811                                           RANGE_EXPR@3157..3512
1812                                             DOT2EQ@3157..3160 "..="
1813                                             RANGE_EXPR@3160..3512
1814                                               DOT2@3160..3162 ".."
1815                                               WHITESPACE@3162..3166 "    "
1816                                               RANGE_EXPR@3166..3512
1817                                                 DOT2@3166..3168 ".."
1818                                                 WHITESPACE@3168..3169 " "
1819                                                 RANGE_EXPR@3169..3512
1820                                                   DOT2@3169..3171 ".."
1821                                                   WHITESPACE@3171..3172 " "
1822                                                   RANGE_EXPR@3172..3512
1823                                                     DOT2@3172..3174 ".."
1824                                                     WHITESPACE@3174..3175 " "
1825                                                     RANGE_EXPR@3175..3512
1826                                                       DOT2@3175..3177 ".."
1827                                                       WHITESPACE@3177..3181 "    "
1828                                                       RANGE_EXPR@3181..3512
1829                                                         DOT2@3181..3183 ".."
1830                                                         WHITESPACE@3183..3184 " "
1831                                                         RANGE_EXPR@3184..3512
1832                                                           DOT2@3184..3186 ".."
1833                                                           WHITESPACE@3186..3187 " "
1834                                                           RANGE_EXPR@3187..3512
1835                                                             DOT2@3187..3189 ".."
1836                                                             WHITESPACE@3189..3190 " "
1837                                                             RANGE_EXPR@3190..3512
1838                                                               DOT2@3190..3192 ".."
1839                                                               WHITESPACE@3192..3196 "    "
1840                                                               RANGE_EXPR@3196..3512
1841                                                                 DOT2EQ@3196..3199 "..="
1842                                                                 RANGE_EXPR@3199..3512
1843                                                                   DOT2EQ@3199..3202 "..="
1844                                                                   RANGE_EXPR@3202..3512
1845                                                                     DOT2EQ@3202..3205 "..="
1846                                                                     RANGE_EXPR@3205..3512
1847                                                                       DOT2@3205..3207 ".."
1848                                                                       WHITESPACE@3207..3212 "\n    "
1849                                                                       RANGE_EXPR@3212..3512
1850                                                                         DOT2EQ@3212..3215 "..="
1851                                                                         RANGE_EXPR@3215..3512
1852                                                                           DOT2@3215..3217 ".."
1853                                                                           WHITESPACE@3217..3218 " "
1854                                                                           RANGE_EXPR@3218..3512
1855                                                                             DOT2EQ@3218..3221 "..="
1856                                                                             RANGE_EXPR@3221..3512
1857                                                                               DOT2@3221..3223 ".."
1858                                                                               WHITESPACE@3223..3227 "    "
1859                                                                               RANGE_EXPR@3227..3512
1860                                                                                 DOT2EQ@3227..3230 "..="
1861                                                                                 RANGE_EXPR@3230..3512
1862                                                                                   DOT2@3230..3232 ".."
1863                                                                                   WHITESPACE@3232..3233 " "
1864                                                                                   RANGE_EXPR@3233..3512
1865                                                                                     DOT2EQ@3233..3236 "..="
1866                                                                                     RANGE_EXPR@3236..3512
1867                                                                                       DOT2@3236..3238 ".."
1868                                                                                       WHITESPACE@3238..3242 "    "
1869                                                                                       RANGE_EXPR@3242..3512
1870                                                                                         DOT2@3242..3244 ".."
1871                                                                                         WHITESPACE@3244..3245 " "
1872                                                                                         RANGE_EXPR@3245..3512
1873                                                                                           DOT2EQ@3245..3248 "..="
1874                                                                                           RANGE_EXPR@3248..3512
1875                                                                                             DOT2EQ@3248..3251 "..="
1876                                                                                             RANGE_EXPR@3251..3512
1877                                                                                               DOT2@3251..3253 ".."
1878                                                                                               WHITESPACE@3253..3257 "    "
1879                                                                                               RANGE_EXPR@3257..3512
1880                                                                                                 DOT2@3257..3259 ".."
1881                                                                                                 WHITESPACE@3259..3260 " "
1882                                                                                                 RANGE_EXPR@3260..3512
1883                                                                                                   DOT2EQ@3260..3263 "..="
1884                                                                                                   RANGE_EXPR@3263..3512
1885                                                                                                     DOT2@3263..3265 ".."
1886                                                                                                     WHITESPACE@3265..3266 " "
1887                                                                                                     RANGE_EXPR@3266..3512
1888                                                                                                       DOT2@3266..3268 ".."
1889                                                                                                       WHITESPACE@3268..3273 "\n    "
1890                                                                                                       RANGE_EXPR@3273..3512
1891                                                                                                         DOT2EQ@3273..3276 "..="
1892                                                                                                         RANGE_EXPR@3276..3512
1893                                                                                                           DOT2EQ@3276..3279 "..="
1894                                                                                                           RANGE_EXPR@3279..3512
1895                                                                                                             DOT2@3279..3281 ".."
1896                                                                                                             WHITESPACE@3281..3282 " "
1897                                                                                                             RANGE_EXPR@3282..3512
1898                                                                                                               DOT2@3282..3284 ".."
1899                                                                                                               WHITESPACE@3284..3288 "    "
1900                                                                                                               RANGE_EXPR@3288..3512
1901                                                                                                                 DOT2EQ@3288..3291 "..="
1902                                                                                                                 RANGE_EXPR@3291..3512
1903                                                                                                                   DOT2@3291..3293 ".."
1904                                                                                                                   WHITESPACE@3293..3294 " "
1905                                                                                                                   RANGE_EXPR@3294..3512
1906                                                                                                                     DOT2EQ@3294..3297 "..="
1907                                                                                                                     RANGE_EXPR@3297..3512
1908                                                                                                                       DOT2@3297..3299 ".."
1909                                                                                                                       WHITESPACE@3299..3303 "    "
1910                                                                                                                       RANGE_EXPR@3303..3512
1911                                                                                                                         DOT2EQ@3303..3306 "..="
1912                                                                                                                         RANGE_EXPR@3306..3512
1913                                                                                                                           DOT2@3306..3308 ".."
1914                                                                                                                           WHITESPACE@3308..3309 " "
1915                                                                                                                           RANGE_EXPR@3309..3512
1916                                                                                                                             DOT2@3309..3311 ".."
1917                                                                                                                             WHITESPACE@3311..3312 " "
1918                                                                                                                             RANGE_EXPR@3312..3512
1919                                                                                                                               DOT2@3312..3314 ".."
1920                                                                                                                               WHITESPACE@3314..3318 "    "
1921                                                                                                                               RANGE_EXPR@3318..3512
1922                                                                                                                                 DOT2@3318..3320 ".."
1923                                                                                                                                 WHITESPACE@3320..3321 " "
1924                                                                                                                                 RANGE_EXPR@3321..3512
1925                                                                                                                                   DOT2EQ@3321..3324 "..="
1926                                                                                                                                   RANGE_EXPR@3324..3512
1927                                                                                                                                     DOT2@3324..3326 ".."
1928                                                                                                                                     WHITESPACE@3326..3327 " "
1929                                                                                                                                     RANGE_EXPR@3327..3512
1930                                                                                                                                       DOT2@3327..3329 ".."
1931                                                                                                                                       WHITESPACE@3329..3334 "\n    "
1932                                                                                                                                       RANGE_EXPR@3334..3512
1933                                                                                                                                         DOT2EQ@3334..3337 "..="
1934                                                                                                                                         RANGE_EXPR@3337..3512
1935                                                                                                                                           DOT2@3337..3339 ".."
1936                                                                                                                                           WHITESPACE@3339..3340 " "
1937                                                                                                                                           RANGE_EXPR@3340..3512
1938                                                                                                                                             DOT2EQ@3340..3343 "..="
1939                                                                                                                                             RANGE_EXPR@3343..3512
1940                                                                                                                                               DOT2@3343..3345 ".."
1941                                                                                                                                               WHITESPACE@3345..3349 "    "
1942                                                                                                                                               RANGE_EXPR@3349..3512
1943                                                                                                                                                 DOT2EQ@3349..3352 "..="
1944                                                                                                                                                 RANGE_EXPR@3352..3512
1945                                                                                                                                                   DOT2@3352..3354 ".."
1946                                                                                                                                                   WHITESPACE@3354..3355 " "
1947                                                                                                                                                   RANGE_EXPR@3355..3512
1948                                                                                                                                                     DOT2EQ@3355..3358 "..="
1949                                                                                                                                                     RANGE_EXPR@3358..3512
1950                                                                                                                                                       DOT2@3358..3360 ".."
1951                                                                                                                                                       WHITESPACE@3360..3364 "    "
1952                                                                                                                                                       RANGE_EXPR@3364..3512
1953                                                                                                                                                         DOT2@3364..3366 ".."
1954                                                                                                                                                         WHITESPACE@3366..3367 " "
1955                                                                                                                                                         RANGE_EXPR@3367..3512
1956                                                                                                                                                           DOT2EQ@3367..3370 "..="
1957                                                                                                                                                           RANGE_EXPR@3370..3512
1958                                                                                                                                                             DOT2@3370..3372 ".."
1959                                                                                                                                                             WHITESPACE@3372..3373 " "
1960                                                                                                                                                             RANGE_EXPR@3373..3512
1961                                                                                                                                                               DOT2@3373..3375 ".."
1962                                                                                                                                                               WHITESPACE@3375..3379 "    "
1963                                                                                                                                                               RANGE_EXPR@3379..3512
1964                                                                                                                                                                 DOT2@3379..3381 ".."
1965                                                                                                                                                                 WHITESPACE@3381..3382 " "
1966                                                                                                                                                                 RANGE_EXPR@3382..3512
1967                                                                                                                                                                   DOT2EQ@3382..3385 "..="
1968                                                                                                                                                                   RANGE_EXPR@3385..3512
1969                                                                                                                                                                     DOT2@3385..3387 ".."
1970                                                                                                                                                                     WHITESPACE@3387..3388 " "
1971                                                                                                                                                                     RANGE_EXPR@3388..3512
1972                                                                                                                                                                       DOT2@3388..3390 ".."
1973                                                                                                                                                                       WHITESPACE@3390..3395 "\n    "
1974                                                                                                                                                                       RANGE_EXPR@3395..3512
1975                                                                                                                                                                         DOT2EQ@3395..3398 "..="
1976                                                                                                                                                                         RANGE_EXPR@3398..3512
1977                                                                                                                                                                           DOT2@3398..3400 ".."
1978                                                                                                                                                                           WHITESPACE@3400..3401 " "
1979                                                                                                                                                                           RANGE_EXPR@3401..3512
1980                                                                                                                                                                             DOT2EQ@3401..3404 "..="
1981                                                                                                                                                                             RANGE_EXPR@3404..3512
1982                                                                                                                                                                               DOT2@3404..3406 ".."
1983                                                                                                                                                                               WHITESPACE@3406..3410 "    "
1984                                                                                                                                                                               RANGE_EXPR@3410..3512
1985                                                                                                                                                                                 DOT2EQ@3410..3413 "..="
1986                                                                                                                                                                                 RANGE_EXPR@3413..3512
1987                                                                                                                                                                                   DOT2@3413..3415 ".."
1988                                                                                                                                                                                   WHITESPACE@3415..3416 " "
1989                                                                                                                                                                                   RANGE_EXPR@3416..3512
1990                                                                                                                                                                                     DOT2EQ@3416..3419 "..="
1991                                                                                                                                                                                     RANGE_EXPR@3419..3512
1992                                                                                                                                                                                       DOT2@3419..3421 ".."
1993                                                                                                                                                                                       WHITESPACE@3421..3425 "    "
1994                                                                                                                                                                                       RANGE_EXPR@3425..3512
1995                                                                                                                                                                                         DOT2@3425..3427 ".."
1996                                                                                                                                                                                         WHITESPACE@3427..3428 " "
1997                                                                                                                                                                                         RANGE_EXPR@3428..3512
1998                                                                                                                                                                                           DOT2@3428..3430 ".."
1999                                                                                                                                                                                           WHITESPACE@3430..3431 " "
2000                                                                                                                                                                                           RANGE_EXPR@3431..3512
2001                                                                                                                                                                                             DOT2EQ@3431..3434 "..="
2002                                                                                                                                                                                             RANGE_EXPR@3434..3512
2003                                                                                                                                                                                               DOT2@3434..3436 ".."
2004                                                                                                                                                                                               WHITESPACE@3436..3440 "    "
2005                                                                                                                                                                                               RANGE_EXPR@3440..3512
2006                                                                                                                                                                                                 DOT2@3440..3442 ".."
2007                                                                                                                                                                                                 WHITESPACE@3442..3443 " "
2008                                                                                                                                                                                                 RANGE_EXPR@3443..3512
2009                                                                                                                                                                                                   DOT2EQ@3443..3446 "..="
2010                                                                                                                                                                                                   RANGE_EXPR@3446..3512
2011                                                                                                                                                                                                     DOT2@3446..3448 ".."
2012                                                                                                                                                                                                     WHITESPACE@3448..3449 " "
2013                                                                                                                                                                                                     RANGE_EXPR@3449..3512
2014                                                                                                                                                                                                       DOT2@3449..3451 ".."
2015                                                                                                                                                                                                       WHITESPACE@3451..3456 "\n    "
2016                                                                                                                                                                                                       RANGE_EXPR@3456..3512
2017                                                                                                                                                                                                         DOT2EQ@3456..3459 "..="
2018                                                                                                                                                                                                         RANGE_EXPR@3459..3512
2019                                                                                                                                                                                                           DOT2@3459..3461 ".."
2020                                                                                                                                                                                                           WHITESPACE@3461..3462 " "
2021                                                                                                                                                                                                           RANGE_EXPR@3462..3512
2022                                                                                                                                                                                                             DOT2EQ@3462..3465 "..="
2023                                                                                                                                                                                                             RANGE_EXPR@3465..3512
2024                                                                                                                                                                                                               DOT2@3465..3467 ".."
2025                                                                                                                                                                                                               WHITESPACE@3467..3471 "    "
2026                                                                                                                                                                                                               RANGE_EXPR@3471..3512
2027                                                                                                                                                                                                                 DOT2@3471..3473 ".."
2028                                                                                                                                                                                                                 WHITESPACE@3473..3474 " "
2029                                                                                                                                                                                                                 RANGE_EXPR@3474..3512
2030                                                                                                                                                                                                                   DOT2EQ@3474..3477 "..="
2031                                                                                                                                                                                                                   RANGE_EXPR@3477..3512
2032                                                                                                                                                                                                                     DOT2EQ@3477..3480 "..="
2033                                                                                                                                                                                                                     RANGE_EXPR@3480..3512
2034                                                                                                                                                                                                                       DOT2@3480..3482 ".."
2035                                                                                                                                                                                                                       WHITESPACE@3482..3486 "    "
2036                                                                                                                                                                                                                       RANGE_EXPR@3486..3512
2037                                                                                                                                                                                                                         DOT2EQ@3486..3489 "..="
2038                                                                                                                                                                                                                         RANGE_EXPR@3489..3512
2039                                                                                                                                                                                                                           DOT2EQ@3489..3492 "..="
2040                                                                                                                                                                                                                           RANGE_EXPR@3492..3512
2041                                                                                                                                                                                                                             DOT2@3492..3494 ".."
2042                                                                                                                                                                                                                             WHITESPACE@3494..3495 " "
2043                                                                                                                                                                                                                             RANGE_EXPR@3495..3512
2044                                                                                                                                                                                                                               DOT2@3495..3497 ".."
2045                                                                                                                                                                                                                               WHITESPACE@3497..3501 "    "
2046                                                                                                                                                                                                                               RANGE_EXPR@3501..3512
2047                                                                                                                                                                                                                                 DOT2@3501..3503 ".."
2048                                                                                                                                                                                                                                 WHITESPACE@3503..3504 " "
2049                                                                                                                                                                                                                                 RANGE_EXPR@3504..3512
2050                                                                                                                                                                                                                                   DOT2EQ@3504..3507 "..="
2051                                                                                                                                                                                                                                   RANGE_EXPR@3507..3512
2052                                                                                                                                                                                                                                     DOT2@3507..3509 ".."
2053                                                                                                                                                                                                                                     WHITESPACE@3509..3510 " "
2054                                                                                                                                                                                                                                     RANGE_EXPR@3510..3512
2055                                                                                                                                                                                                                                       DOT2@3510..3512 ".."
2056       WHITESPACE@3512..3513 "\n"
2057       R_CURLY@3513..3514 "}"
2058   WHITESPACE@3514..3516 "\n\n"
2059   FN@3516..3552
2060     FN_KW@3516..3518 "fn"
2061     WHITESPACE@3518..3519 " "
2062     NAME@3519..3525
2063       IDENT@3519..3525 "ktulhu"
2064     PARAM_LIST@3525..3527
2065       L_PAREN@3525..3526 "("
2066       R_PAREN@3526..3527 ")"
2067     WHITESPACE@3527..3528 " "
2068     BLOCK_EXPR@3528..3552
2069       L_CURLY@3528..3529 "{"
2070       WHITESPACE@3529..3534 "\n    "
2071       SEMICOLON@3534..3535 ";"
2072       SEMICOLON@3535..3536 ";"
2073       SEMICOLON@3536..3537 ";"
2074       EXPR_STMT@3537..3540
2075         TUPLE_EXPR@3537..3539
2076           L_PAREN@3537..3538 "("
2077           R_PAREN@3538..3539 ")"
2078         SEMICOLON@3539..3540 ";"
2079       SEMICOLON@3540..3541 ";"
2080       SEMICOLON@3541..3542 ";"
2081       SEMICOLON@3542..3543 ";"
2082       SEMICOLON@3543..3544 ";"
2083       SEMICOLON@3544..3545 ";"
2084       SEMICOLON@3545..3546 ";"
2085       SEMICOLON@3546..3547 ";"
2086       SEMICOLON@3547..3548 ";"
2087       TUPLE_EXPR@3548..3550
2088         L_PAREN@3548..3549 "("
2089         R_PAREN@3549..3550 ")"
2090       WHITESPACE@3550..3551 "\n"
2091       R_CURLY@3551..3552 "}"
2092   WHITESPACE@3552..3554 "\n\n"
2093   FN@3554..3812
2094     VISIBILITY@3554..3557
2095       PUB_KW@3554..3557 "pub"
2096     WHITESPACE@3557..3558 " "
2097     FN_KW@3558..3560 "fn"
2098     WHITESPACE@3560..3561 " "
2099     NAME@3561..3565
2100       IDENT@3561..3565 "main"
2101     PARAM_LIST@3565..3567
2102       L_PAREN@3565..3566 "("
2103       R_PAREN@3566..3567 ")"
2104     WHITESPACE@3567..3568 " "
2105     BLOCK_EXPR@3568..3812
2106       L_CURLY@3568..3569 "{"
2107       WHITESPACE@3569..3574 "\n    "
2108       EXPR_STMT@3574..3584
2109         CALL_EXPR@3574..3583
2110           PATH_EXPR@3574..3581
2111             PATH@3574..3581
2112               PATH_SEGMENT@3574..3581
2113                 NAME_REF@3574..3581
2114                   IDENT@3574..3581 "strange"
2115           ARG_LIST@3581..3583
2116             L_PAREN@3581..3582 "("
2117             R_PAREN@3582..3583 ")"
2118         SEMICOLON@3583..3584 ";"
2119       WHITESPACE@3584..3589 "\n    "
2120       EXPR_STMT@3589..3597
2121         CALL_EXPR@3589..3596
2122           PATH_EXPR@3589..3594
2123             PATH@3589..3594
2124               PATH_SEGMENT@3589..3594
2125                 NAME_REF@3589..3594
2126                   IDENT@3589..3594 "funny"
2127           ARG_LIST@3594..3596
2128             L_PAREN@3594..3595 "("
2129             R_PAREN@3595..3596 ")"
2130         SEMICOLON@3596..3597 ";"
2131       WHITESPACE@3597..3602 "\n    "
2132       EXPR_STMT@3602..3609
2133         CALL_EXPR@3602..3608
2134           PATH_EXPR@3602..3606
2135             PATH@3602..3606
2136               PATH_SEGMENT@3602..3606
2137                 NAME_REF@3602..3606
2138                   IDENT@3602..3606 "what"
2139           ARG_LIST@3606..3608
2140             L_PAREN@3606..3607 "("
2141             R_PAREN@3607..3608 ")"
2142         SEMICOLON@3608..3609 ";"
2143       WHITESPACE@3609..3614 "\n    "
2144       EXPR_STMT@3614..3628
2145         CALL_EXPR@3614..3627
2146           PATH_EXPR@3614..3625
2147             PATH@3614..3625
2148               PATH_SEGMENT@3614..3625
2149                 NAME_REF@3614..3625
2150                   IDENT@3614..3625 "zombiejesus"
2151           ARG_LIST@3625..3627
2152             L_PAREN@3625..3626 "("
2153             R_PAREN@3626..3627 ")"
2154         SEMICOLON@3627..3628 ";"
2155       WHITESPACE@3628..3633 "\n    "
2156       EXPR_STMT@3633..3643
2157         CALL_EXPR@3633..3642
2158           PATH_EXPR@3633..3640
2159             PATH@3633..3640
2160               PATH_SEGMENT@3633..3640
2161                 NAME_REF@3633..3640
2162                   IDENT@3633..3640 "notsure"
2163           ARG_LIST@3640..3642
2164             L_PAREN@3640..3641 "("
2165             R_PAREN@3641..3642 ")"
2166         SEMICOLON@3642..3643 ";"
2167       WHITESPACE@3643..3648 "\n    "
2168       EXPR_STMT@3648..3664
2169         CALL_EXPR@3648..3663
2170           PATH_EXPR@3648..3661
2171             PATH@3648..3661
2172               PATH_SEGMENT@3648..3661
2173                 NAME_REF@3648..3661
2174                   IDENT@3648..3661 "canttouchthis"
2175           ARG_LIST@3661..3663
2176             L_PAREN@3661..3662 "("
2177             R_PAREN@3662..3663 ")"
2178         SEMICOLON@3663..3664 ";"
2179       WHITESPACE@3664..3669 "\n    "
2180       EXPR_STMT@3669..3681
2181         CALL_EXPR@3669..3680
2182           PATH_EXPR@3669..3678
2183             PATH@3669..3678
2184               PATH_SEGMENT@3669..3678
2185                 NAME_REF@3669..3678
2186                   IDENT@3669..3678 "angrydome"
2187           ARG_LIST@3678..3680
2188             L_PAREN@3678..3679 "("
2189             R_PAREN@3679..3680 ")"
2190         SEMICOLON@3680..3681 ";"
2191       WHITESPACE@3681..3686 "\n    "
2192       EXPR_STMT@3686..3701
2193         CALL_EXPR@3686..3700
2194           PATH_EXPR@3686..3698
2195             PATH@3686..3698
2196               PATH_SEGMENT@3686..3698
2197                 NAME_REF@3686..3698
2198                   IDENT@3686..3698 "evil_lincoln"
2199           ARG_LIST@3698..3700
2200             L_PAREN@3698..3699 "("
2201             R_PAREN@3699..3700 ")"
2202         SEMICOLON@3700..3701 ";"
2203       WHITESPACE@3701..3706 "\n    "
2204       EXPR_STMT@3706..3713
2205         CALL_EXPR@3706..3712
2206           PATH_EXPR@3706..3710
2207             PATH@3706..3710
2208               PATH_SEGMENT@3706..3710
2209                 NAME_REF@3706..3710
2210                   IDENT@3706..3710 "dots"
2211           ARG_LIST@3710..3712
2212             L_PAREN@3710..3711 "("
2213             R_PAREN@3711..3712 ")"
2214         SEMICOLON@3712..3713 ";"
2215       WHITESPACE@3713..3718 "\n    "
2216       EXPR_STMT@3718..3726
2217         CALL_EXPR@3718..3725
2218           PATH_EXPR@3718..3720
2219             PATH@3718..3720
2220               PATH_SEGMENT@3718..3720
2221                 NAME_REF@3718..3720
2222                   IDENT@3718..3720 "u8"
2223           ARG_LIST@3720..3725
2224             L_PAREN@3720..3721 "("
2225             LITERAL@3721..3724
2226               INT_NUMBER@3721..3724 "8u8"
2227             R_PAREN@3724..3725 ")"
2228         SEMICOLON@3725..3726 ";"
2229       WHITESPACE@3726..3731 "\n    "
2230       EXPR_STMT@3731..3739
2231         CALL_EXPR@3731..3738
2232           PATH_EXPR@3731..3736
2233             PATH@3731..3736
2234               PATH_SEGMENT@3731..3736
2235                 NAME_REF@3731..3736
2236                   IDENT@3731..3736 "fishy"
2237           ARG_LIST@3736..3738
2238             L_PAREN@3736..3737 "("
2239             R_PAREN@3737..3738 ")"
2240         SEMICOLON@3738..3739 ";"
2241       WHITESPACE@3739..3744 "\n    "
2242       EXPR_STMT@3744..3752
2243         CALL_EXPR@3744..3751
2244           PATH_EXPR@3744..3749
2245             PATH@3744..3749
2246               PATH_SEGMENT@3744..3749
2247                 NAME_REF@3744..3749
2248                   IDENT@3744..3749 "union"
2249           ARG_LIST@3749..3751
2250             L_PAREN@3749..3750 "("
2251             R_PAREN@3750..3751 ")"
2252         SEMICOLON@3751..3752 ";"
2253       WHITESPACE@3752..3757 "\n    "
2254       EXPR_STMT@3757..3778
2255         CALL_EXPR@3757..3777
2256           PATH_EXPR@3757..3775
2257             PATH@3757..3775
2258               PATH_SEGMENT@3757..3775
2259                 NAME_REF@3757..3775
2260                   IDENT@3757..3775 "special_characters"
2261           ARG_LIST@3775..3777
2262             L_PAREN@3775..3776 "("
2263             R_PAREN@3776..3777 ")"
2264         SEMICOLON@3777..3778 ";"
2265       WHITESPACE@3778..3783 "\n    "
2266       EXPR_STMT@3783..3796
2267         CALL_EXPR@3783..3795
2268           PATH_EXPR@3783..3793
2269             PATH@3783..3793
2270               PATH_SEGMENT@3783..3793
2271                 NAME_REF@3783..3793
2272                   IDENT@3783..3793 "punch_card"
2273           ARG_LIST@3793..3795
2274             L_PAREN@3793..3794 "("
2275             R_PAREN@3794..3795 ")"
2276         SEMICOLON@3795..3796 ";"
2277       WHITESPACE@3796..3801 "\n    "
2278       EXPR_STMT@3801..3810
2279         CALL_EXPR@3801..3809
2280           PATH_EXPR@3801..3807
2281             PATH@3801..3807
2282               PATH_SEGMENT@3801..3807
2283                 NAME_REF@3801..3807
2284                   IDENT@3801..3807 "ktulhu"
2285           ARG_LIST@3807..3809
2286             L_PAREN@3807..3808 "("
2287             R_PAREN@3808..3809 ")"
2288         SEMICOLON@3809..3810 ";"
2289       WHITESPACE@3810..3811 "\n"
2290       R_CURLY@3811..3812 "}"
2291   WHITESPACE@3812..3813 "\n"