]> git.lizzy.rs Git - rust.git/blob - crates/parser/test_data/parser/ok/0035_weird_exprs.txt
parameters.split_last()
[rust.git] / crates / parser / test_data / parser / ok / 0035_weird_exprs.txt
1 SOURCE_FILE
2   COMMENT "//! Adapted from a `rustc` test, which can be found at "
3   WHITESPACE "\n"
4   COMMENT "//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs."
5   WHITESPACE "\n"
6   COMMENT "//! "
7   WHITESPACE "\n"
8   COMMENT "//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290"
9   WHITESPACE "\n\n"
10   ATTR
11     POUND "#"
12     BANG "!"
13     L_BRACK "["
14     META
15       PATH
16         PATH_SEGMENT
17           NAME_REF
18             IDENT "allow"
19       TOKEN_TREE
20         L_PAREN "("
21         IDENT "non_camel_case_types"
22         R_PAREN ")"
23     R_BRACK "]"
24   WHITESPACE "\n"
25   ATTR
26     POUND "#"
27     BANG "!"
28     L_BRACK "["
29     META
30       PATH
31         PATH_SEGMENT
32           NAME_REF
33             IDENT "allow"
34       TOKEN_TREE
35         L_PAREN "("
36         IDENT "dead_code"
37         R_PAREN ")"
38     R_BRACK "]"
39   WHITESPACE "\n"
40   ATTR
41     POUND "#"
42     BANG "!"
43     L_BRACK "["
44     META
45       PATH
46         PATH_SEGMENT
47           NAME_REF
48             IDENT "allow"
49       TOKEN_TREE
50         L_PAREN "("
51         IDENT "unreachable_code"
52         R_PAREN ")"
53     R_BRACK "]"
54   WHITESPACE "\n"
55   ATTR
56     POUND "#"
57     BANG "!"
58     L_BRACK "["
59     META
60       PATH
61         PATH_SEGMENT
62           NAME_REF
63             IDENT "allow"
64       TOKEN_TREE
65         L_PAREN "("
66         IDENT "unused_parens"
67         R_PAREN ")"
68     R_BRACK "]"
69   WHITESPACE "\n\n"
70   ATTR
71     POUND "#"
72     BANG "!"
73     L_BRACK "["
74     META
75       PATH
76         PATH_SEGMENT
77           NAME_REF
78             IDENT "recursion_limit"
79       WHITESPACE " "
80       EQ "="
81       WHITESPACE " "
82       LITERAL
83         STRING "\"128\""
84     R_BRACK "]"
85   WHITESPACE "\n\n"
86   USE
87     USE_KW "use"
88     WHITESPACE " "
89     USE_TREE
90       PATH
91         PATH
92           PATH
93             PATH_SEGMENT
94               NAME_REF
95                 IDENT "std"
96           COLON2 "::"
97           PATH_SEGMENT
98             NAME_REF
99               IDENT "cell"
100         COLON2 "::"
101         PATH_SEGMENT
102           NAME_REF
103             IDENT "Cell"
104     SEMICOLON ";"
105   WHITESPACE "\n"
106   USE
107     USE_KW "use"
108     WHITESPACE " "
109     USE_TREE
110       PATH
111         PATH
112           PATH
113             PATH_SEGMENT
114               NAME_REF
115                 IDENT "std"
116           COLON2 "::"
117           PATH_SEGMENT
118             NAME_REF
119               IDENT "mem"
120         COLON2 "::"
121         PATH_SEGMENT
122           NAME_REF
123             IDENT "swap"
124     SEMICOLON ";"
125   WHITESPACE "\n\n"
126   COMMENT "// Just a grab bag of stuff that you wouldn't want to actually write."
127   WHITESPACE "\n\n"
128   FN
129     FN_KW "fn"
130     WHITESPACE " "
131     NAME
132       IDENT "strange"
133     PARAM_LIST
134       L_PAREN "("
135       R_PAREN ")"
136     WHITESPACE " "
137     RET_TYPE
138       THIN_ARROW "->"
139       WHITESPACE " "
140       PATH_TYPE
141         PATH
142           PATH_SEGMENT
143             NAME_REF
144               IDENT "bool"
145     WHITESPACE " "
146     BLOCK_EXPR
147       STMT_LIST
148         L_CURLY "{"
149         WHITESPACE " "
150         LET_STMT
151           LET_KW "let"
152           WHITESPACE " "
153           IDENT_PAT
154             NAME
155               IDENT "_x"
156           COLON ":"
157           WHITESPACE " "
158           PATH_TYPE
159             PATH
160               PATH_SEGMENT
161                 NAME_REF
162                   IDENT "bool"
163           WHITESPACE " "
164           EQ "="
165           WHITESPACE " "
166           RETURN_EXPR
167             RETURN_KW "return"
168             WHITESPACE " "
169             LITERAL
170               TRUE_KW "true"
171           SEMICOLON ";"
172         WHITESPACE " "
173         R_CURLY "}"
174   WHITESPACE "\n\n"
175   FN
176     FN_KW "fn"
177     WHITESPACE " "
178     NAME
179       IDENT "funny"
180     PARAM_LIST
181       L_PAREN "("
182       R_PAREN ")"
183     WHITESPACE " "
184     BLOCK_EXPR
185       STMT_LIST
186         L_CURLY "{"
187         WHITESPACE "\n    "
188         FN
189           FN_KW "fn"
190           WHITESPACE " "
191           NAME
192             IDENT "f"
193           PARAM_LIST
194             L_PAREN "("
195             PARAM
196               IDENT_PAT
197                 NAME
198                   IDENT "_x"
199               COLON ":"
200               WHITESPACE " "
201               TUPLE_TYPE
202                 L_PAREN "("
203                 R_PAREN ")"
204             R_PAREN ")"
205           WHITESPACE " "
206           BLOCK_EXPR
207             STMT_LIST
208               L_CURLY "{"
209               WHITESPACE " "
210               R_CURLY "}"
211         WHITESPACE "\n    "
212         EXPR_STMT
213           CALL_EXPR
214             PATH_EXPR
215               PATH
216                 PATH_SEGMENT
217                   NAME_REF
218                     IDENT "f"
219             ARG_LIST
220               L_PAREN "("
221               RETURN_EXPR
222                 RETURN_KW "return"
223               R_PAREN ")"
224           SEMICOLON ";"
225         WHITESPACE "\n"
226         R_CURLY "}"
227   WHITESPACE "\n\n"
228   FN
229     FN_KW "fn"
230     WHITESPACE " "
231     NAME
232       IDENT "what"
233     PARAM_LIST
234       L_PAREN "("
235       R_PAREN ")"
236     WHITESPACE " "
237     BLOCK_EXPR
238       STMT_LIST
239         L_CURLY "{"
240         WHITESPACE "\n    "
241         FN
242           FN_KW "fn"
243           WHITESPACE " "
244           NAME
245             IDENT "the"
246           PARAM_LIST
247             L_PAREN "("
248             PARAM
249               IDENT_PAT
250                 NAME
251                   IDENT "x"
252               COLON ":"
253               WHITESPACE " "
254               REF_TYPE
255                 AMP "&"
256                 PATH_TYPE
257                   PATH
258                     PATH_SEGMENT
259                       NAME_REF
260                         IDENT "Cell"
261                       GENERIC_ARG_LIST
262                         L_ANGLE "<"
263                         TYPE_ARG
264                           PATH_TYPE
265                             PATH
266                               PATH_SEGMENT
267                                 NAME_REF
268                                   IDENT "bool"
269                         R_ANGLE ">"
270             R_PAREN ")"
271           WHITESPACE " "
272           BLOCK_EXPR
273             STMT_LIST
274               L_CURLY "{"
275               WHITESPACE "\n        "
276               EXPR_STMT
277                 RETURN_EXPR
278                   RETURN_KW "return"
279                   WHITESPACE " "
280                   WHILE_EXPR
281                     WHILE_KW "while"
282                     WHITESPACE " "
283                     CONDITION
284                       PREFIX_EXPR
285                         BANG "!"
286                         METHOD_CALL_EXPR
287                           PATH_EXPR
288                             PATH
289                               PATH_SEGMENT
290                                 NAME_REF
291                                   IDENT "x"
292                           DOT "."
293                           NAME_REF
294                             IDENT "get"
295                           ARG_LIST
296                             L_PAREN "("
297                             R_PAREN ")"
298                     WHITESPACE " "
299                     BLOCK_EXPR
300                       STMT_LIST
301                         L_CURLY "{"
302                         WHITESPACE " "
303                         EXPR_STMT
304                           METHOD_CALL_EXPR
305                             PATH_EXPR
306                               PATH
307                                 PATH_SEGMENT
308                                   NAME_REF
309                                     IDENT "x"
310                             DOT "."
311                             NAME_REF
312                               IDENT "set"
313                             ARG_LIST
314                               L_PAREN "("
315                               LITERAL
316                                 TRUE_KW "true"
317                               R_PAREN ")"
318                           SEMICOLON ";"
319                         WHITESPACE " "
320                         R_CURLY "}"
321                 SEMICOLON ";"
322               WHITESPACE "\n    "
323               R_CURLY "}"
324         WHITESPACE "\n    "
325         LET_STMT
326           LET_KW "let"
327           WHITESPACE " "
328           IDENT_PAT
329             NAME
330               IDENT "i"
331           WHITESPACE " "
332           EQ "="
333           WHITESPACE " "
334           REF_EXPR
335             AMP "&"
336             CALL_EXPR
337               PATH_EXPR
338                 PATH
339                   PATH
340                     PATH_SEGMENT
341                       NAME_REF
342                         IDENT "Cell"
343                   COLON2 "::"
344                   PATH_SEGMENT
345                     NAME_REF
346                       IDENT "new"
347               ARG_LIST
348                 L_PAREN "("
349                 LITERAL
350                   FALSE_KW "false"
351                 R_PAREN ")"
352           SEMICOLON ";"
353         WHITESPACE "\n    "
354         LET_STMT
355           LET_KW "let"
356           WHITESPACE " "
357           IDENT_PAT
358             NAME
359               IDENT "dont"
360           WHITESPACE " "
361           EQ "="
362           WHITESPACE " "
363           BLOCK_EXPR
364             STMT_LIST
365               L_CURLY "{"
366               CLOSURE_EXPR
367                 PARAM_LIST
368                   PIPE "|"
369                   PIPE "|"
370                 CALL_EXPR
371                   PATH_EXPR
372                     PATH
373                       PATH_SEGMENT
374                         NAME_REF
375                           IDENT "the"
376                   ARG_LIST
377                     L_PAREN "("
378                     PATH_EXPR
379                       PATH
380                         PATH_SEGMENT
381                           NAME_REF
382                             IDENT "i"
383                     R_PAREN ")"
384               R_CURLY "}"
385           SEMICOLON ";"
386         WHITESPACE "\n    "
387         EXPR_STMT
388           CALL_EXPR
389             PATH_EXPR
390               PATH
391                 PATH_SEGMENT
392                   NAME_REF
393                     IDENT "dont"
394             ARG_LIST
395               L_PAREN "("
396               R_PAREN ")"
397           SEMICOLON ";"
398         WHITESPACE "\n    "
399         EXPR_STMT
400           MACRO_CALL
401             PATH
402               PATH_SEGMENT
403                 NAME_REF
404                   IDENT "assert"
405             BANG "!"
406             TOKEN_TREE
407               L_PAREN "("
408               TOKEN_TREE
409                 L_PAREN "("
410                 IDENT "i"
411                 DOT "."
412                 IDENT "get"
413                 TOKEN_TREE
414                   L_PAREN "("
415                   R_PAREN ")"
416                 R_PAREN ")"
417               R_PAREN ")"
418           SEMICOLON ";"
419         WHITESPACE "\n"
420         R_CURLY "}"
421   WHITESPACE "\n\n"
422   FN
423     FN_KW "fn"
424     WHITESPACE " "
425     NAME
426       IDENT "zombiejesus"
427     PARAM_LIST
428       L_PAREN "("
429       R_PAREN ")"
430     WHITESPACE " "
431     BLOCK_EXPR
432       STMT_LIST
433         L_CURLY "{"
434         WHITESPACE "\n    "
435         LOOP_EXPR
436           LOOP_KW "loop"
437           WHITESPACE " "
438           BLOCK_EXPR
439             STMT_LIST
440               L_CURLY "{"
441               WHITESPACE "\n        "
442               EXPR_STMT
443                 WHILE_EXPR
444                   WHILE_KW "while"
445                   WHITESPACE " "
446                   CONDITION
447                     PAREN_EXPR
448                       L_PAREN "("
449                       RETURN_EXPR
450                         RETURN_KW "return"
451                       R_PAREN ")"
452                   WHITESPACE " "
453                   BLOCK_EXPR
454                     STMT_LIST
455                       L_CURLY "{"
456                       WHITESPACE "\n            "
457                       IF_EXPR
458                         IF_KW "if"
459                         WHITESPACE " "
460                         CONDITION
461                           PAREN_EXPR
462                             L_PAREN "("
463                             RETURN_EXPR
464                               RETURN_KW "return"
465                             R_PAREN ")"
466                         WHITESPACE " "
467                         BLOCK_EXPR
468                           STMT_LIST
469                             L_CURLY "{"
470                             WHITESPACE "\n                "
471                             EXPR_STMT
472                               MATCH_EXPR
473                                 MATCH_KW "match"
474                                 WHITESPACE " "
475                                 PAREN_EXPR
476                                   L_PAREN "("
477                                   RETURN_EXPR
478                                     RETURN_KW "return"
479                                   R_PAREN ")"
480                                 WHITESPACE " "
481                                 MATCH_ARM_LIST
482                                   L_CURLY "{"
483                                   WHITESPACE "\n                    "
484                                   MATCH_ARM
485                                     LITERAL_PAT
486                                       LITERAL
487                                         INT_NUMBER "1"
488                                     WHITESPACE " "
489                                     FAT_ARROW "=>"
490                                     WHITESPACE " "
491                                     BLOCK_EXPR
492                                       STMT_LIST
493                                         L_CURLY "{"
494                                         WHITESPACE "\n                        "
495                                         IF_EXPR
496                                           IF_KW "if"
497                                           WHITESPACE " "
498                                           CONDITION
499                                             PAREN_EXPR
500                                               L_PAREN "("
501                                               RETURN_EXPR
502                                                 RETURN_KW "return"
503                                               R_PAREN ")"
504                                           WHITESPACE " "
505                                           BLOCK_EXPR
506                                             STMT_LIST
507                                               L_CURLY "{"
508                                               WHITESPACE "\n                            "
509                                               RETURN_EXPR
510                                                 RETURN_KW "return"
511                                               WHITESPACE "\n                        "
512                                               R_CURLY "}"
513                                           WHITESPACE " "
514                                           ELSE_KW "else"
515                                           WHITESPACE " "
516                                           BLOCK_EXPR
517                                             STMT_LIST
518                                               L_CURLY "{"
519                                               WHITESPACE "\n                            "
520                                               RETURN_EXPR
521                                                 RETURN_KW "return"
522                                               WHITESPACE "\n                        "
523                                               R_CURLY "}"
524                                         WHITESPACE "\n                    "
525                                         R_CURLY "}"
526                                   WHITESPACE "\n                    "
527                                   MATCH_ARM
528                                     WILDCARD_PAT
529                                       UNDERSCORE "_"
530                                     WHITESPACE " "
531                                     FAT_ARROW "=>"
532                                     WHITESPACE " "
533                                     BLOCK_EXPR
534                                       STMT_LIST
535                                         L_CURLY "{"
536                                         WHITESPACE " "
537                                         RETURN_EXPR
538                                           RETURN_KW "return"
539                                         WHITESPACE " "
540                                         R_CURLY "}"
541                                   WHITESPACE "\n                "
542                                   R_CURLY "}"
543                               SEMICOLON ";"
544                             WHITESPACE "\n            "
545                             R_CURLY "}"
546                         WHITESPACE " "
547                         ELSE_KW "else"
548                         WHITESPACE " "
549                         IF_EXPR
550                           IF_KW "if"
551                           WHITESPACE " "
552                           CONDITION
553                             PAREN_EXPR
554                               L_PAREN "("
555                               RETURN_EXPR
556                                 RETURN_KW "return"
557                               R_PAREN ")"
558                           WHITESPACE " "
559                           BLOCK_EXPR
560                             STMT_LIST
561                               L_CURLY "{"
562                               WHITESPACE "\n                "
563                               EXPR_STMT
564                                 RETURN_EXPR
565                                   RETURN_KW "return"
566                                 SEMICOLON ";"
567                               WHITESPACE "\n            "
568                               R_CURLY "}"
569                       WHITESPACE "\n        "
570                       R_CURLY "}"
571               WHITESPACE "\n        "
572               IF_EXPR
573                 IF_KW "if"
574                 WHITESPACE " "
575                 CONDITION
576                   PAREN_EXPR
577                     L_PAREN "("
578                     RETURN_EXPR
579                       RETURN_KW "return"
580                     R_PAREN ")"
581                 WHITESPACE " "
582                 BLOCK_EXPR
583                   STMT_LIST
584                     L_CURLY "{"
585                     WHITESPACE " "
586                     EXPR_STMT
587                       BREAK_EXPR
588                         BREAK_KW "break"
589                       SEMICOLON ";"
590                     WHITESPACE " "
591                     R_CURLY "}"
592               WHITESPACE "\n    "
593               R_CURLY "}"
594         WHITESPACE "\n"
595         R_CURLY "}"
596   WHITESPACE "\n\n"
597   FN
598     FN_KW "fn"
599     WHITESPACE " "
600     NAME
601       IDENT "notsure"
602     PARAM_LIST
603       L_PAREN "("
604       R_PAREN ")"
605     WHITESPACE " "
606     BLOCK_EXPR
607       STMT_LIST
608         L_CURLY "{"
609         WHITESPACE "\n    "
610         LET_STMT
611           LET_KW "let"
612           WHITESPACE " "
613           IDENT_PAT
614             MUT_KW "mut"
615             WHITESPACE " "
616             NAME
617               IDENT "_x"
618           COLON ":"
619           WHITESPACE " "
620           PATH_TYPE
621             PATH
622               PATH_SEGMENT
623                 NAME_REF
624                   IDENT "isize"
625           SEMICOLON ";"
626         WHITESPACE "\n    "
627         LET_STMT
628           LET_KW "let"
629           WHITESPACE " "
630           IDENT_PAT
631             MUT_KW "mut"
632             WHITESPACE " "
633             NAME
634               IDENT "_y"
635           WHITESPACE " "
636           EQ "="
637           WHITESPACE " "
638           BIN_EXPR
639             PAREN_EXPR
640               L_PAREN "("
641               BIN_EXPR
642                 PATH_EXPR
643                   PATH
644                     PATH_SEGMENT
645                       NAME_REF
646                         IDENT "_x"
647                 WHITESPACE " "
648                 EQ "="
649                 WHITESPACE " "
650                 LITERAL
651                   INT_NUMBER "0"
652               R_PAREN ")"
653             WHITESPACE " "
654             EQ2 "=="
655             WHITESPACE " "
656             PAREN_EXPR
657               L_PAREN "("
658               BIN_EXPR
659                 PATH_EXPR
660                   PATH
661                     PATH_SEGMENT
662                       NAME_REF
663                         IDENT "_x"
664                 WHITESPACE " "
665                 EQ "="
666                 WHITESPACE " "
667                 LITERAL
668                   INT_NUMBER "0"
669               R_PAREN ")"
670           SEMICOLON ";"
671         WHITESPACE "\n    "
672         LET_STMT
673           LET_KW "let"
674           WHITESPACE " "
675           IDENT_PAT
676             MUT_KW "mut"
677             WHITESPACE " "
678             NAME
679               IDENT "_z"
680           WHITESPACE " "
681           EQ "="
682           WHITESPACE " "
683           BIN_EXPR
684             PAREN_EXPR
685               L_PAREN "("
686               BIN_EXPR
687                 PATH_EXPR
688                   PATH
689                     PATH_SEGMENT
690                       NAME_REF
691                         IDENT "_x"
692                 WHITESPACE " "
693                 EQ "="
694                 WHITESPACE " "
695                 LITERAL
696                   INT_NUMBER "0"
697               R_PAREN ")"
698             WHITESPACE " "
699             L_ANGLE "<"
700             WHITESPACE " "
701             PAREN_EXPR
702               L_PAREN "("
703               BIN_EXPR
704                 PATH_EXPR
705                   PATH
706                     PATH_SEGMENT
707                       NAME_REF
708                         IDENT "_x"
709                 WHITESPACE " "
710                 EQ "="
711                 WHITESPACE " "
712                 LITERAL
713                   INT_NUMBER "0"
714               R_PAREN ")"
715           SEMICOLON ";"
716         WHITESPACE "\n    "
717         LET_STMT
718           LET_KW "let"
719           WHITESPACE " "
720           IDENT_PAT
721             NAME
722               IDENT "_a"
723           WHITESPACE " "
724           EQ "="
725           WHITESPACE " "
726           BIN_EXPR
727             PAREN_EXPR
728               L_PAREN "("
729               BIN_EXPR
730                 PATH_EXPR
731                   PATH
732                     PATH_SEGMENT
733                       NAME_REF
734                         IDENT "_x"
735                 WHITESPACE " "
736                 PLUSEQ "+="
737                 WHITESPACE " "
738                 LITERAL
739                   INT_NUMBER "0"
740               R_PAREN ")"
741             WHITESPACE " "
742             EQ2 "=="
743             WHITESPACE " "
744             PAREN_EXPR
745               L_PAREN "("
746               BIN_EXPR
747                 PATH_EXPR
748                   PATH
749                     PATH_SEGMENT
750                       NAME_REF
751                         IDENT "_x"
752                 WHITESPACE " "
753                 EQ "="
754                 WHITESPACE " "
755                 LITERAL
756                   INT_NUMBER "0"
757               R_PAREN ")"
758           SEMICOLON ";"
759         WHITESPACE "\n    "
760         LET_STMT
761           LET_KW "let"
762           WHITESPACE " "
763           IDENT_PAT
764             NAME
765               IDENT "_b"
766           WHITESPACE " "
767           EQ "="
768           WHITESPACE " "
769           BIN_EXPR
770             CALL_EXPR
771               PATH_EXPR
772                 PATH
773                   PATH_SEGMENT
774                     NAME_REF
775                       IDENT "swap"
776               ARG_LIST
777                 L_PAREN "("
778                 REF_EXPR
779                   AMP "&"
780                   MUT_KW "mut"
781                   WHITESPACE " "
782                   PATH_EXPR
783                     PATH
784                       PATH_SEGMENT
785                         NAME_REF
786                           IDENT "_y"
787                 COMMA ","
788                 WHITESPACE " "
789                 REF_EXPR
790                   AMP "&"
791                   MUT_KW "mut"
792                   WHITESPACE " "
793                   PATH_EXPR
794                     PATH
795                       PATH_SEGMENT
796                         NAME_REF
797                           IDENT "_z"
798                 R_PAREN ")"
799             WHITESPACE " "
800             EQ2 "=="
801             WHITESPACE " "
802             CALL_EXPR
803               PATH_EXPR
804                 PATH
805                   PATH_SEGMENT
806                     NAME_REF
807                       IDENT "swap"
808               ARG_LIST
809                 L_PAREN "("
810                 REF_EXPR
811                   AMP "&"
812                   MUT_KW "mut"
813                   WHITESPACE " "
814                   PATH_EXPR
815                     PATH
816                       PATH_SEGMENT
817                         NAME_REF
818                           IDENT "_y"
819                 COMMA ","
820                 WHITESPACE " "
821                 REF_EXPR
822                   AMP "&"
823                   MUT_KW "mut"
824                   WHITESPACE " "
825                   PATH_EXPR
826                     PATH
827                       PATH_SEGMENT
828                         NAME_REF
829                           IDENT "_z"
830                 R_PAREN ")"
831           SEMICOLON ";"
832         WHITESPACE "\n"
833         R_CURLY "}"
834   WHITESPACE "\n\n"
835   FN
836     FN_KW "fn"
837     WHITESPACE " "
838     NAME
839       IDENT "canttouchthis"
840     PARAM_LIST
841       L_PAREN "("
842       R_PAREN ")"
843     WHITESPACE " "
844     RET_TYPE
845       THIN_ARROW "->"
846       WHITESPACE " "
847       PATH_TYPE
848         PATH
849           PATH_SEGMENT
850             NAME_REF
851               IDENT "usize"
852     WHITESPACE " "
853     BLOCK_EXPR
854       STMT_LIST
855         L_CURLY "{"
856         WHITESPACE "\n    "
857         FN
858           FN_KW "fn"
859           WHITESPACE " "
860           NAME
861             IDENT "p"
862           PARAM_LIST
863             L_PAREN "("
864             R_PAREN ")"
865           WHITESPACE " "
866           RET_TYPE
867             THIN_ARROW "->"
868             WHITESPACE " "
869             PATH_TYPE
870               PATH
871                 PATH_SEGMENT
872                   NAME_REF
873                     IDENT "bool"
874           WHITESPACE " "
875           BLOCK_EXPR
876             STMT_LIST
877               L_CURLY "{"
878               WHITESPACE " "
879               LITERAL
880                 TRUE_KW "true"
881               WHITESPACE " "
882               R_CURLY "}"
883         WHITESPACE "\n    "
884         LET_STMT
885           LET_KW "let"
886           WHITESPACE " "
887           IDENT_PAT
888             NAME
889               IDENT "_a"
890           WHITESPACE " "
891           EQ "="
892           WHITESPACE " "
893           PAREN_EXPR
894             L_PAREN "("
895             BIN_EXPR
896               MACRO_CALL
897                 PATH
898                   PATH_SEGMENT
899                     NAME_REF
900                       IDENT "assert"
901                 BANG "!"
902                 TOKEN_TREE
903                   L_PAREN "("
904                   TOKEN_TREE
905                     L_PAREN "("
906                     TRUE_KW "true"
907                     R_PAREN ")"
908                   R_PAREN ")"
909               WHITESPACE " "
910               EQ2 "=="
911               WHITESPACE " "
912               PAREN_EXPR
913                 L_PAREN "("
914                 MACRO_CALL
915                   PATH
916                     PATH_SEGMENT
917                       NAME_REF
918                         IDENT "assert"
919                   BANG "!"
920                   TOKEN_TREE
921                     L_PAREN "("
922                     IDENT "p"
923                     TOKEN_TREE
924                       L_PAREN "("
925                       R_PAREN ")"
926                     R_PAREN ")"
927                 R_PAREN ")"
928             R_PAREN ")"
929           SEMICOLON ";"
930         WHITESPACE "\n    "
931         LET_STMT
932           LET_KW "let"
933           WHITESPACE " "
934           IDENT_PAT
935             NAME
936               IDENT "_c"
937           WHITESPACE " "
938           EQ "="
939           WHITESPACE " "
940           PAREN_EXPR
941             L_PAREN "("
942             BIN_EXPR
943               MACRO_CALL
944                 PATH
945                   PATH_SEGMENT
946                     NAME_REF
947                       IDENT "assert"
948                 BANG "!"
949                 TOKEN_TREE
950                   L_PAREN "("
951                   TOKEN_TREE
952                     L_PAREN "("
953                     IDENT "p"
954                     TOKEN_TREE
955                       L_PAREN "("
956                       R_PAREN ")"
957                     R_PAREN ")"
958                   R_PAREN ")"
959               WHITESPACE " "
960               EQ2 "=="
961               WHITESPACE " "
962               TUPLE_EXPR
963                 L_PAREN "("
964                 R_PAREN ")"
965             R_PAREN ")"
966           SEMICOLON ";"
967         WHITESPACE "\n    "
968         LET_STMT
969           LET_KW "let"
970           WHITESPACE " "
971           IDENT_PAT
972             NAME
973               IDENT "_b"
974           COLON ":"
975           WHITESPACE " "
976           PATH_TYPE
977             PATH
978               PATH_SEGMENT
979                 NAME_REF
980                   IDENT "bool"
981           WHITESPACE " "
982           EQ "="
983           WHITESPACE " "
984           PAREN_EXPR
985             L_PAREN "("
986             BIN_EXPR
987               MACRO_CALL
988                 PATH
989                   PATH_SEGMENT
990                     NAME_REF
991                       IDENT "println"
992                 BANG "!"
993                 TOKEN_TREE
994                   L_PAREN "("
995                   STRING "\"{}\""
996                   COMMA ","
997                   WHITESPACE " "
998                   INT_NUMBER "0"
999                   R_PAREN ")"
1000               WHITESPACE " "
1001               EQ2 "=="
1002               WHITESPACE " "
1003               PAREN_EXPR
1004                 L_PAREN "("
1005                 RETURN_EXPR
1006                   RETURN_KW "return"
1007                   WHITESPACE " "
1008                   LITERAL
1009                     INT_NUMBER "0"
1010                 R_PAREN ")"
1011             R_PAREN ")"
1012           SEMICOLON ";"
1013         WHITESPACE "\n"
1014         R_CURLY "}"
1015   WHITESPACE "\n\n"
1016   FN
1017     FN_KW "fn"
1018     WHITESPACE " "
1019     NAME
1020       IDENT "angrydome"
1021     PARAM_LIST
1022       L_PAREN "("
1023       R_PAREN ")"
1024     WHITESPACE " "
1025     BLOCK_EXPR
1026       STMT_LIST
1027         L_CURLY "{"
1028         WHITESPACE "\n    "
1029         EXPR_STMT
1030           LOOP_EXPR
1031             LOOP_KW "loop"
1032             WHITESPACE " "
1033             BLOCK_EXPR
1034               STMT_LIST
1035                 L_CURLY "{"
1036                 WHITESPACE " "
1037                 IF_EXPR
1038                   IF_KW "if"
1039                   WHITESPACE " "
1040                   CONDITION
1041                     BREAK_EXPR
1042                       BREAK_KW "break"
1043                   WHITESPACE " "
1044                   BLOCK_EXPR
1045                     STMT_LIST
1046                       L_CURLY "{"
1047                       WHITESPACE " "
1048                       R_CURLY "}"
1049                 WHITESPACE " "
1050                 R_CURLY "}"
1051         WHITESPACE "\n    "
1052         LET_STMT
1053           LET_KW "let"
1054           WHITESPACE " "
1055           IDENT_PAT
1056             MUT_KW "mut"
1057             WHITESPACE " "
1058             NAME
1059               IDENT "i"
1060           WHITESPACE " "
1061           EQ "="
1062           WHITESPACE " "
1063           LITERAL
1064             INT_NUMBER "0"
1065           SEMICOLON ";"
1066         WHITESPACE "\n    "
1067         LOOP_EXPR
1068           LOOP_KW "loop"
1069           WHITESPACE " "
1070           BLOCK_EXPR
1071             STMT_LIST
1072               L_CURLY "{"
1073               WHITESPACE " "
1074               EXPR_STMT
1075                 BIN_EXPR
1076                   PATH_EXPR
1077                     PATH
1078                       PATH_SEGMENT
1079                         NAME_REF
1080                           IDENT "i"
1081                   WHITESPACE " "
1082                   PLUSEQ "+="
1083                   WHITESPACE " "
1084                   LITERAL
1085                     INT_NUMBER "1"
1086                 SEMICOLON ";"
1087               WHITESPACE " "
1088               EXPR_STMT
1089                 IF_EXPR
1090                   IF_KW "if"
1091                   WHITESPACE " "
1092                   CONDITION
1093                     BIN_EXPR
1094                       PATH_EXPR
1095                         PATH
1096                           PATH_SEGMENT
1097                             NAME_REF
1098                               IDENT "i"
1099                       WHITESPACE " "
1100                       EQ2 "=="
1101                       WHITESPACE " "
1102                       LITERAL
1103                         INT_NUMBER "1"
1104                   WHITESPACE " "
1105                   BLOCK_EXPR
1106                     STMT_LIST
1107                       L_CURLY "{"
1108                       WHITESPACE " "
1109                       MATCH_EXPR
1110                         MATCH_KW "match"
1111                         WHITESPACE " "
1112                         PAREN_EXPR
1113                           L_PAREN "("
1114                           CONTINUE_EXPR
1115                             CONTINUE_KW "continue"
1116                           R_PAREN ")"
1117                         WHITESPACE " "
1118                         MATCH_ARM_LIST
1119                           L_CURLY "{"
1120                           WHITESPACE " "
1121                           MATCH_ARM
1122                             LITERAL_PAT
1123                               LITERAL
1124                                 INT_NUMBER "1"
1125                             WHITESPACE " "
1126                             FAT_ARROW "=>"
1127                             WHITESPACE " "
1128                             BLOCK_EXPR
1129                               STMT_LIST
1130                                 L_CURLY "{"
1131                                 WHITESPACE " "
1132                                 R_CURLY "}"
1133                             COMMA ","
1134                           WHITESPACE " "
1135                           MATCH_ARM
1136                             WILDCARD_PAT
1137                               UNDERSCORE "_"
1138                             WHITESPACE " "
1139                             FAT_ARROW "=>"
1140                             WHITESPACE " "
1141                             MACRO_CALL
1142                               PATH
1143                                 PATH_SEGMENT
1144                                   NAME_REF
1145                                     IDENT "panic"
1146                               BANG "!"
1147                               TOKEN_TREE
1148                                 L_PAREN "("
1149                                 STRING "\"wat\""
1150                                 R_PAREN ")"
1151                           WHITESPACE " "
1152                           R_CURLY "}"
1153                       WHITESPACE " "
1154                       R_CURLY "}"
1155               WHITESPACE "\n      "
1156               EXPR_STMT
1157                 BREAK_EXPR
1158                   BREAK_KW "break"
1159                 SEMICOLON ";"
1160               WHITESPACE " "
1161               R_CURLY "}"
1162         WHITESPACE "\n"
1163         R_CURLY "}"
1164   WHITESPACE "\n\n"
1165   FN
1166     FN_KW "fn"
1167     WHITESPACE " "
1168     NAME
1169       IDENT "evil_lincoln"
1170     PARAM_LIST
1171       L_PAREN "("
1172       R_PAREN ")"
1173     WHITESPACE " "
1174     BLOCK_EXPR
1175       STMT_LIST
1176         L_CURLY "{"
1177         WHITESPACE " "
1178         LET_STMT
1179           LET_KW "let"
1180           WHITESPACE " "
1181           IDENT_PAT
1182             NAME
1183               IDENT "_evil"
1184           WHITESPACE " "
1185           EQ "="
1186           WHITESPACE " "
1187           MACRO_CALL
1188             PATH
1189               PATH_SEGMENT
1190                 NAME_REF
1191                   IDENT "println"
1192             BANG "!"
1193             TOKEN_TREE
1194               L_PAREN "("
1195               STRING "\"lincoln\""
1196               R_PAREN ")"
1197           SEMICOLON ";"
1198         WHITESPACE " "
1199         R_CURLY "}"
1200   WHITESPACE "\n\n"
1201   FN
1202     FN_KW "fn"
1203     WHITESPACE " "
1204     NAME
1205       IDENT "dots"
1206     PARAM_LIST
1207       L_PAREN "("
1208       R_PAREN ")"
1209     WHITESPACE " "
1210     BLOCK_EXPR
1211       STMT_LIST
1212         L_CURLY "{"
1213         WHITESPACE "\n    "
1214         EXPR_STMT
1215           MACRO_CALL
1216             PATH
1217               PATH_SEGMENT
1218                 NAME_REF
1219                   IDENT "assert_eq"
1220             BANG "!"
1221             TOKEN_TREE
1222               L_PAREN "("
1223               IDENT "String"
1224               COLON ":"
1225               COLON ":"
1226               IDENT "from"
1227               TOKEN_TREE
1228                 L_PAREN "("
1229                 STRING "\"..................................................\""
1230                 R_PAREN ")"
1231               COMMA ","
1232               WHITESPACE "\n               "
1233               IDENT "format"
1234               BANG "!"
1235               TOKEN_TREE
1236                 L_PAREN "("
1237                 STRING "\"{:?}\""
1238                 COMMA ","
1239                 WHITESPACE " "
1240                 DOT "."
1241                 DOT "."
1242                 WHITESPACE " "
1243                 DOT "."
1244                 DOT "."
1245                 WHITESPACE " "
1246                 DOT "."
1247                 DOT "."
1248                 WHITESPACE " "
1249                 DOT "."
1250                 DOT "."
1251                 WHITESPACE " "
1252                 DOT "."
1253                 DOT "."
1254                 WHITESPACE " "
1255                 DOT "."
1256                 DOT "."
1257                 WHITESPACE " "
1258                 DOT "."
1259                 DOT "."
1260                 WHITESPACE " "
1261                 DOT "."
1262                 DOT "."
1263                 WHITESPACE " "
1264                 DOT "."
1265                 DOT "."
1266                 WHITESPACE " "
1267                 DOT "."
1268                 DOT "."
1269                 WHITESPACE " "
1270                 DOT "."
1271                 DOT "."
1272                 WHITESPACE " "
1273                 DOT "."
1274                 DOT "."
1275                 WHITESPACE " "
1276                 DOT "."
1277                 DOT "."
1278                 WHITESPACE "\n                               "
1279                 DOT "."
1280                 DOT "."
1281                 WHITESPACE " "
1282                 DOT "."
1283                 DOT "."
1284                 WHITESPACE " "
1285                 DOT "."
1286                 DOT "."
1287                 WHITESPACE " "
1288                 DOT "."
1289                 DOT "."
1290                 WHITESPACE " "
1291                 DOT "."
1292                 DOT "."
1293                 WHITESPACE " "
1294                 DOT "."
1295                 DOT "."
1296                 WHITESPACE " "
1297                 DOT "."
1298                 DOT "."
1299                 WHITESPACE " "
1300                 DOT "."
1301                 DOT "."
1302                 WHITESPACE " "
1303                 DOT "."
1304                 DOT "."
1305                 WHITESPACE " "
1306                 DOT "."
1307                 DOT "."
1308                 WHITESPACE " "
1309                 DOT "."
1310                 DOT "."
1311                 WHITESPACE " "
1312                 DOT "."
1313                 DOT "."
1314                 R_PAREN ")"
1315               R_PAREN ")"
1316           SEMICOLON ";"
1317         WHITESPACE "\n"
1318         R_CURLY "}"
1319   WHITESPACE "\n\n"
1320   FN
1321     FN_KW "fn"
1322     WHITESPACE " "
1323     NAME
1324       IDENT "u8"
1325     PARAM_LIST
1326       L_PAREN "("
1327       PARAM
1328         IDENT_PAT
1329           NAME
1330             IDENT "u8"
1331         COLON ":"
1332         WHITESPACE " "
1333         PATH_TYPE
1334           PATH
1335             PATH_SEGMENT
1336               NAME_REF
1337                 IDENT "u8"
1338       R_PAREN ")"
1339     WHITESPACE " "
1340     BLOCK_EXPR
1341       STMT_LIST
1342         L_CURLY "{"
1343         WHITESPACE "\n    "
1344         IF_EXPR
1345           IF_KW "if"
1346           WHITESPACE " "
1347           CONDITION
1348             BIN_EXPR
1349               PATH_EXPR
1350                 PATH
1351                   PATH_SEGMENT
1352                     NAME_REF
1353                       IDENT "u8"
1354               WHITESPACE " "
1355               NEQ "!="
1356               WHITESPACE " "
1357               LITERAL
1358                 INT_NUMBER "0u8"
1359           WHITESPACE " "
1360           BLOCK_EXPR
1361             STMT_LIST
1362               L_CURLY "{"
1363               WHITESPACE "\n        "
1364               EXPR_STMT
1365                 MACRO_CALL
1366                   PATH
1367                     PATH_SEGMENT
1368                       NAME_REF
1369                         IDENT "assert_eq"
1370                   BANG "!"
1371                   TOKEN_TREE
1372                     L_PAREN "("
1373                     INT_NUMBER "8u8"
1374                     COMMA ","
1375                     WHITESPACE " "
1376                     TOKEN_TREE
1377                       L_CURLY "{"
1378                       WHITESPACE "\n            "
1379                       IDENT "macro_rules"
1380                       BANG "!"
1381                       WHITESPACE " "
1382                       IDENT "u8"
1383                       WHITESPACE " "
1384                       TOKEN_TREE
1385                         L_CURLY "{"
1386                         WHITESPACE "\n                "
1387                         TOKEN_TREE
1388                           L_PAREN "("
1389                           IDENT "u8"
1390                           R_PAREN ")"
1391                         WHITESPACE " "
1392                         EQ "="
1393                         R_ANGLE ">"
1394                         WHITESPACE " "
1395                         TOKEN_TREE
1396                           L_CURLY "{"
1397                           WHITESPACE "\n                    "
1398                           MOD_KW "mod"
1399                           WHITESPACE " "
1400                           IDENT "u8"
1401                           WHITESPACE " "
1402                           TOKEN_TREE
1403                             L_CURLY "{"
1404                             WHITESPACE "\n                        "
1405                             PUB_KW "pub"
1406                             WHITESPACE " "
1407                             FN_KW "fn"
1408                             WHITESPACE " "
1409                             IDENT "u8"
1410                             L_ANGLE "<"
1411                             LIFETIME_IDENT "'u8"
1412                             COLON ":"
1413                             WHITESPACE " "
1414                             LIFETIME_IDENT "'u8"
1415                             WHITESPACE " "
1416                             PLUS "+"
1417                             WHITESPACE " "
1418                             LIFETIME_IDENT "'u8"
1419                             R_ANGLE ">"
1420                             TOKEN_TREE
1421                               L_PAREN "("
1422                               IDENT "u8"
1423                               COLON ":"
1424                               WHITESPACE " "
1425                               AMP "&"
1426                               LIFETIME_IDENT "'u8"
1427                               WHITESPACE " "
1428                               IDENT "u8"
1429                               R_PAREN ")"
1430                             WHITESPACE " "
1431                             MINUS "-"
1432                             R_ANGLE ">"
1433                             WHITESPACE " "
1434                             AMP "&"
1435                             LIFETIME_IDENT "'u8"
1436                             WHITESPACE " "
1437                             IDENT "u8"
1438                             WHITESPACE " "
1439                             TOKEN_TREE
1440                               L_CURLY "{"
1441                               WHITESPACE "\n                            "
1442                               STRING "\"u8\""
1443                               SEMICOLON ";"
1444                               WHITESPACE "\n                            "
1445                               IDENT "u8"
1446                               WHITESPACE "\n                        "
1447                               R_CURLY "}"
1448                             WHITESPACE "\n                    "
1449                             R_CURLY "}"
1450                           WHITESPACE "\n                "
1451                           R_CURLY "}"
1452                         SEMICOLON ";"
1453                         WHITESPACE "\n            "
1454                         R_CURLY "}"
1455                       WHITESPACE "\n\n            "
1456                       IDENT "u8"
1457                       BANG "!"
1458                       TOKEN_TREE
1459                         L_PAREN "("
1460                         IDENT "u8"
1461                         R_PAREN ")"
1462                       SEMICOLON ";"
1463                       WHITESPACE "\n            "
1464                       LET_KW "let"
1465                       WHITESPACE " "
1466                       AMP "&"
1467                       IDENT "u8"
1468                       COLON ":"
1469                       WHITESPACE " "
1470                       AMP "&"
1471                       IDENT "u8"
1472                       WHITESPACE " "
1473                       EQ "="
1474                       WHITESPACE " "
1475                       IDENT "u8"
1476                       COLON ":"
1477                       COLON ":"
1478                       IDENT "u8"
1479                       TOKEN_TREE
1480                         L_PAREN "("
1481                         AMP "&"
1482                         INT_NUMBER "8u8"
1483                         R_PAREN ")"
1484                       SEMICOLON ";"
1485                       WHITESPACE "\n            "
1486                       CRATE_KW "crate"
1487                       COLON ":"
1488                       COLON ":"
1489                       IDENT "u8"
1490                       TOKEN_TREE
1491                         L_PAREN "("
1492                         INT_NUMBER "0u8"
1493                         R_PAREN ")"
1494                       SEMICOLON ";"
1495                       WHITESPACE "\n            "
1496                       IDENT "u8"
1497                       WHITESPACE "\n        "
1498                       R_CURLY "}"
1499                     R_PAREN ")"
1500                 SEMICOLON ";"
1501               WHITESPACE "\n    "
1502               R_CURLY "}"
1503         WHITESPACE "\n"
1504         R_CURLY "}"
1505   WHITESPACE "\n\n"
1506   FN
1507     FN_KW "fn"
1508     WHITESPACE " "
1509     NAME
1510       IDENT "fishy"
1511     PARAM_LIST
1512       L_PAREN "("
1513       R_PAREN ")"
1514     WHITESPACE " "
1515     BLOCK_EXPR
1516       STMT_LIST
1517         L_CURLY "{"
1518         WHITESPACE "\n    "
1519         EXPR_STMT
1520           MACRO_CALL
1521             PATH
1522               PATH_SEGMENT
1523                 NAME_REF
1524                   IDENT "assert_eq"
1525             BANG "!"
1526             TOKEN_TREE
1527               L_PAREN "("
1528               IDENT "String"
1529               COLON ":"
1530               COLON ":"
1531               IDENT "from"
1532               TOKEN_TREE
1533                 L_PAREN "("
1534                 STRING "\"><>\""
1535                 R_PAREN ")"
1536               COMMA ","
1537               WHITESPACE "\n               "
1538               IDENT "String"
1539               COLON ":"
1540               COLON ":"
1541               L_ANGLE "<"
1542               R_ANGLE ">"
1543               COLON ":"
1544               COLON ":"
1545               IDENT "from"
1546               COLON ":"
1547               COLON ":"
1548               L_ANGLE "<"
1549               R_ANGLE ">"
1550               TOKEN_TREE
1551                 L_PAREN "("
1552                 STRING "\"><>\""
1553                 R_PAREN ")"
1554               DOT "."
1555               IDENT "chars"
1556               COLON ":"
1557               COLON ":"
1558               L_ANGLE "<"
1559               R_ANGLE ">"
1560               TOKEN_TREE
1561                 L_PAREN "("
1562                 R_PAREN ")"
1563               DOT "."
1564               IDENT "rev"
1565               COLON ":"
1566               COLON ":"
1567               L_ANGLE "<"
1568               R_ANGLE ">"
1569               TOKEN_TREE
1570                 L_PAREN "("
1571                 R_PAREN ")"
1572               DOT "."
1573               IDENT "collect"
1574               COLON ":"
1575               COLON ":"
1576               L_ANGLE "<"
1577               IDENT "String"
1578               R_ANGLE ">"
1579               TOKEN_TREE
1580                 L_PAREN "("
1581                 R_PAREN ")"
1582               R_PAREN ")"
1583           SEMICOLON ";"
1584         WHITESPACE "\n"
1585         R_CURLY "}"
1586   WHITESPACE "\n\n"
1587   FN
1588     FN_KW "fn"
1589     WHITESPACE " "
1590     NAME
1591       IDENT "union"
1592     PARAM_LIST
1593       L_PAREN "("
1594       R_PAREN ")"
1595     WHITESPACE " "
1596     BLOCK_EXPR
1597       STMT_LIST
1598         L_CURLY "{"
1599         WHITESPACE "\n    "
1600         UNION
1601           UNION_KW "union"
1602           WHITESPACE " "
1603           NAME
1604             IDENT "union"
1605           GENERIC_PARAM_LIST
1606             L_ANGLE "<"
1607             LIFETIME_PARAM
1608               LIFETIME
1609                 LIFETIME_IDENT "'union"
1610             R_ANGLE ">"
1611           WHITESPACE " "
1612           RECORD_FIELD_LIST
1613             L_CURLY "{"
1614             WHITESPACE " "
1615             RECORD_FIELD
1616               NAME
1617                 IDENT "union"
1618               COLON ":"
1619               WHITESPACE " "
1620               REF_TYPE
1621                 AMP "&"
1622                 LIFETIME
1623                   LIFETIME_IDENT "'union"
1624                 WHITESPACE " "
1625                 PATH_TYPE
1626                   PATH
1627                     PATH_SEGMENT
1628                       NAME_REF
1629                         IDENT "union"
1630                       GENERIC_ARG_LIST
1631                         L_ANGLE "<"
1632                         LIFETIME_ARG
1633                           LIFETIME
1634                             LIFETIME_IDENT "'union"
1635                         R_ANGLE ">"
1636             COMMA ","
1637             WHITESPACE " "
1638             R_CURLY "}"
1639         WHITESPACE "\n"
1640         R_CURLY "}"
1641   WHITESPACE "\n\n"
1642   FN
1643     FN_KW "fn"
1644     WHITESPACE " "
1645     NAME
1646       IDENT "special_characters"
1647     PARAM_LIST
1648       L_PAREN "("
1649       R_PAREN ")"
1650     WHITESPACE " "
1651     BLOCK_EXPR
1652       STMT_LIST
1653         L_CURLY "{"
1654         WHITESPACE "\n    "
1655         LET_STMT
1656           LET_KW "let"
1657           WHITESPACE " "
1658           IDENT_PAT
1659             NAME
1660               IDENT "val"
1661           WHITESPACE " "
1662           EQ "="
1663           WHITESPACE " "
1664           PREFIX_EXPR
1665             BANG "!"
1666             PAREN_EXPR
1667               L_PAREN "("
1668               BIN_EXPR
1669                 CALL_EXPR
1670                   PAREN_EXPR
1671                     L_PAREN "("
1672                     CLOSURE_EXPR
1673                       PARAM_LIST
1674                         PIPE "|"
1675                         PARAM
1676                           TUPLE_PAT
1677                             L_PAREN "("
1678                             REST_PAT
1679                               DOT2 ".."
1680                             R_PAREN ")"
1681                           COLON ":"
1682                           TUPLE_TYPE
1683                             L_PAREN "("
1684                             INFER_TYPE
1685                               UNDERSCORE "_"
1686                             COMMA ","
1687                             INFER_TYPE
1688                               UNDERSCORE "_"
1689                             R_PAREN ")"
1690                         COMMA ","
1691                         PARAM
1692                           IDENT_PAT
1693                             NAME
1694                               IDENT "__"
1695                             AT "@"
1696                             WILDCARD_PAT
1697                               UNDERSCORE "_"
1698                         PIPE "|"
1699                       PATH_EXPR
1700                         PATH
1701                           PATH_SEGMENT
1702                             NAME_REF
1703                               IDENT "__"
1704                     R_PAREN ")"
1705                   ARG_LIST
1706                     L_PAREN "("
1707                     TUPLE_EXPR
1708                       L_PAREN "("
1709                       REF_EXPR
1710                         AMP "&"
1711                         PREFIX_EXPR
1712                           STAR "*"
1713                           LITERAL
1714                             STRING "\"\\\\\""
1715                       COMMA ","
1716                       LITERAL
1717                         CHAR "'🤔'"
1718                       R_PAREN ")"
1719                     COMMENT "/**/"
1720                     COMMA ","
1721                     BLOCK_EXPR
1722                       STMT_LIST
1723                         L_CURLY "{"
1724                         R_CURLY "}"
1725                     R_PAREN ")"
1726                 EQ2 "=="
1727                 BLOCK_EXPR
1728                   STMT_LIST
1729                     L_CURLY "{"
1730                     EXPR_STMT
1731                       REF_EXPR
1732                         AMP "&"
1733                         INDEX_EXPR
1734                           ARRAY_EXPR
1735                             L_BRACK "["
1736                             RANGE_EXPR
1737                               DOT2EQ "..="
1738                               RANGE_EXPR
1739                                 DOT2 ".."
1740                             R_BRACK "]"
1741                           L_BRACK "["
1742                           RANGE_EXPR
1743                             DOT2 ".."
1744                           R_BRACK "]"
1745                       SEMICOLON ";"
1746                     R_CURLY "}"
1747               R_PAREN ")"
1748           COMMENT "//"
1749           WHITESPACE "\n    "
1750           SEMICOLON ";"
1751         WHITESPACE "\n    "
1752         EXPR_STMT
1753           MACRO_CALL
1754             PATH
1755               PATH_SEGMENT
1756                 NAME_REF
1757                   IDENT "assert"
1758             BANG "!"
1759             TOKEN_TREE
1760               L_PAREN "("
1761               BANG "!"
1762               IDENT "val"
1763               R_PAREN ")"
1764           SEMICOLON ";"
1765         WHITESPACE "\n"
1766         R_CURLY "}"
1767   WHITESPACE "\n\n"
1768   FN
1769     FN_KW "fn"
1770     WHITESPACE " "
1771     NAME
1772       IDENT "punch_card"
1773     PARAM_LIST
1774       L_PAREN "("
1775       R_PAREN ")"
1776     WHITESPACE " "
1777     RET_TYPE
1778       THIN_ARROW "->"
1779       WHITESPACE " "
1780       IMPL_TRAIT_TYPE
1781         IMPL_KW "impl"
1782         WHITESPACE " "
1783         TYPE_BOUND_LIST
1784           TYPE_BOUND
1785             PATH_TYPE
1786               PATH
1787                 PATH
1788                   PATH
1789                     PATH_SEGMENT
1790                       NAME_REF
1791                         IDENT "std"
1792                   COLON2 "::"
1793                   PATH_SEGMENT
1794                     NAME_REF
1795                       IDENT "fmt"
1796                 COLON2 "::"
1797                 PATH_SEGMENT
1798                   NAME_REF
1799                     IDENT "Debug"
1800     WHITESPACE " "
1801     BLOCK_EXPR
1802       STMT_LIST
1803         L_CURLY "{"
1804         WHITESPACE "\n    "
1805         RANGE_EXPR
1806           DOT2EQ "..="
1807           RANGE_EXPR
1808             DOT2EQ "..="
1809             RANGE_EXPR
1810               DOT2 ".."
1811               WHITESPACE " "
1812               RANGE_EXPR
1813                 DOT2 ".."
1814                 WHITESPACE "    "
1815                 RANGE_EXPR
1816                   DOT2 ".."
1817                   WHITESPACE " "
1818                   RANGE_EXPR
1819                     DOT2 ".."
1820                     WHITESPACE " "
1821                     RANGE_EXPR
1822                       DOT2 ".."
1823                       WHITESPACE " "
1824                       RANGE_EXPR
1825                         DOT2 ".."
1826                         WHITESPACE "    "
1827                         RANGE_EXPR
1828                           DOT2 ".."
1829                           WHITESPACE " "
1830                           RANGE_EXPR
1831                             DOT2 ".."
1832                             WHITESPACE " "
1833                             RANGE_EXPR
1834                               DOT2 ".."
1835                               WHITESPACE " "
1836                               RANGE_EXPR
1837                                 DOT2 ".."
1838                                 WHITESPACE "    "
1839                                 RANGE_EXPR
1840                                   DOT2 ".."
1841                                   WHITESPACE " "
1842                                   RANGE_EXPR
1843                                     DOT2EQ "..="
1844                                     RANGE_EXPR
1845                                       DOT2 ".."
1846                                       WHITESPACE " "
1847                                       RANGE_EXPR
1848                                         DOT2 ".."
1849                                         WHITESPACE "\n    "
1850                                         RANGE_EXPR
1851                                           DOT2EQ "..="
1852                                           RANGE_EXPR
1853                                             DOT2 ".."
1854                                             WHITESPACE " "
1855                                             RANGE_EXPR
1856                                               DOT2EQ "..="
1857                                               RANGE_EXPR
1858                                                 DOT2 ".."
1859                                                 WHITESPACE "    "
1860                                                 RANGE_EXPR
1861                                                   DOT2 ".."
1862                                                   WHITESPACE " "
1863                                                   RANGE_EXPR
1864                                                     DOT2 ".."
1865                                                     WHITESPACE " "
1866                                                     RANGE_EXPR
1867                                                       DOT2 ".."
1868                                                       WHITESPACE " "
1869                                                       RANGE_EXPR
1870                                                         DOT2 ".."
1871                                                         WHITESPACE "    "
1872                                                         RANGE_EXPR
1873                                                           DOT2 ".."
1874                                                           WHITESPACE " "
1875                                                           RANGE_EXPR
1876                                                             DOT2 ".."
1877                                                             WHITESPACE " "
1878                                                             RANGE_EXPR
1879                                                               DOT2 ".."
1880                                                               WHITESPACE " "
1881                                                               RANGE_EXPR
1882                                                                 DOT2 ".."
1883                                                                 WHITESPACE "    "
1884                                                                 RANGE_EXPR
1885                                                                   DOT2EQ "..="
1886                                                                   RANGE_EXPR
1887                                                                     DOT2EQ "..="
1888                                                                     RANGE_EXPR
1889                                                                       DOT2EQ "..="
1890                                                                       RANGE_EXPR
1891                                                                         DOT2 ".."
1892                                                                         WHITESPACE "\n    "
1893                                                                         RANGE_EXPR
1894                                                                           DOT2EQ "..="
1895                                                                           RANGE_EXPR
1896                                                                             DOT2 ".."
1897                                                                             WHITESPACE " "
1898                                                                             RANGE_EXPR
1899                                                                               DOT2EQ "..="
1900                                                                               RANGE_EXPR
1901                                                                                 DOT2 ".."
1902                                                                                 WHITESPACE "    "
1903                                                                                 RANGE_EXPR
1904                                                                                   DOT2EQ "..="
1905                                                                                   RANGE_EXPR
1906                                                                                     DOT2 ".."
1907                                                                                     WHITESPACE " "
1908                                                                                     RANGE_EXPR
1909                                                                                       DOT2EQ "..="
1910                                                                                       RANGE_EXPR
1911                                                                                         DOT2 ".."
1912                                                                                         WHITESPACE "    "
1913                                                                                         RANGE_EXPR
1914                                                                                           DOT2 ".."
1915                                                                                           WHITESPACE " "
1916                                                                                           RANGE_EXPR
1917                                                                                             DOT2EQ "..="
1918                                                                                             RANGE_EXPR
1919                                                                                               DOT2EQ "..="
1920                                                                                               RANGE_EXPR
1921                                                                                                 DOT2 ".."
1922                                                                                                 WHITESPACE "    "
1923                                                                                                 RANGE_EXPR
1924                                                                                                   DOT2 ".."
1925                                                                                                   WHITESPACE " "
1926                                                                                                   RANGE_EXPR
1927                                                                                                     DOT2EQ "..="
1928                                                                                                     RANGE_EXPR
1929                                                                                                       DOT2 ".."
1930                                                                                                       WHITESPACE " "
1931                                                                                                       RANGE_EXPR
1932                                                                                                         DOT2 ".."
1933                                                                                                         WHITESPACE "\n    "
1934                                                                                                         RANGE_EXPR
1935                                                                                                           DOT2EQ "..="
1936                                                                                                           RANGE_EXPR
1937                                                                                                             DOT2EQ "..="
1938                                                                                                             RANGE_EXPR
1939                                                                                                               DOT2 ".."
1940                                                                                                               WHITESPACE " "
1941                                                                                                               RANGE_EXPR
1942                                                                                                                 DOT2 ".."
1943                                                                                                                 WHITESPACE "    "
1944                                                                                                                 RANGE_EXPR
1945                                                                                                                   DOT2EQ "..="
1946                                                                                                                   RANGE_EXPR
1947                                                                                                                     DOT2 ".."
1948                                                                                                                     WHITESPACE " "
1949                                                                                                                     RANGE_EXPR
1950                                                                                                                       DOT2EQ "..="
1951                                                                                                                       RANGE_EXPR
1952                                                                                                                         DOT2 ".."
1953                                                                                                                         WHITESPACE "    "
1954                                                                                                                         RANGE_EXPR
1955                                                                                                                           DOT2EQ "..="
1956                                                                                                                           RANGE_EXPR
1957                                                                                                                             DOT2 ".."
1958                                                                                                                             WHITESPACE " "
1959                                                                                                                             RANGE_EXPR
1960                                                                                                                               DOT2 ".."
1961                                                                                                                               WHITESPACE " "
1962                                                                                                                               RANGE_EXPR
1963                                                                                                                                 DOT2 ".."
1964                                                                                                                                 WHITESPACE "    "
1965                                                                                                                                 RANGE_EXPR
1966                                                                                                                                   DOT2 ".."
1967                                                                                                                                   WHITESPACE " "
1968                                                                                                                                   RANGE_EXPR
1969                                                                                                                                     DOT2EQ "..="
1970                                                                                                                                     RANGE_EXPR
1971                                                                                                                                       DOT2 ".."
1972                                                                                                                                       WHITESPACE " "
1973                                                                                                                                       RANGE_EXPR
1974                                                                                                                                         DOT2 ".."
1975                                                                                                                                         WHITESPACE "\n    "
1976                                                                                                                                         RANGE_EXPR
1977                                                                                                                                           DOT2EQ "..="
1978                                                                                                                                           RANGE_EXPR
1979                                                                                                                                             DOT2 ".."
1980                                                                                                                                             WHITESPACE " "
1981                                                                                                                                             RANGE_EXPR
1982                                                                                                                                               DOT2EQ "..="
1983                                                                                                                                               RANGE_EXPR
1984                                                                                                                                                 DOT2 ".."
1985                                                                                                                                                 WHITESPACE "    "
1986                                                                                                                                                 RANGE_EXPR
1987                                                                                                                                                   DOT2EQ "..="
1988                                                                                                                                                   RANGE_EXPR
1989                                                                                                                                                     DOT2 ".."
1990                                                                                                                                                     WHITESPACE " "
1991                                                                                                                                                     RANGE_EXPR
1992                                                                                                                                                       DOT2EQ "..="
1993                                                                                                                                                       RANGE_EXPR
1994                                                                                                                                                         DOT2 ".."
1995                                                                                                                                                         WHITESPACE "    "
1996                                                                                                                                                         RANGE_EXPR
1997                                                                                                                                                           DOT2 ".."
1998                                                                                                                                                           WHITESPACE " "
1999                                                                                                                                                           RANGE_EXPR
2000                                                                                                                                                             DOT2EQ "..="
2001                                                                                                                                                             RANGE_EXPR
2002                                                                                                                                                               DOT2 ".."
2003                                                                                                                                                               WHITESPACE " "
2004                                                                                                                                                               RANGE_EXPR
2005                                                                                                                                                                 DOT2 ".."
2006                                                                                                                                                                 WHITESPACE "    "
2007                                                                                                                                                                 RANGE_EXPR
2008                                                                                                                                                                   DOT2 ".."
2009                                                                                                                                                                   WHITESPACE " "
2010                                                                                                                                                                   RANGE_EXPR
2011                                                                                                                                                                     DOT2EQ "..="
2012                                                                                                                                                                     RANGE_EXPR
2013                                                                                                                                                                       DOT2 ".."
2014                                                                                                                                                                       WHITESPACE " "
2015                                                                                                                                                                       RANGE_EXPR
2016                                                                                                                                                                         DOT2 ".."
2017                                                                                                                                                                         WHITESPACE "\n    "
2018                                                                                                                                                                         RANGE_EXPR
2019                                                                                                                                                                           DOT2EQ "..="
2020                                                                                                                                                                           RANGE_EXPR
2021                                                                                                                                                                             DOT2 ".."
2022                                                                                                                                                                             WHITESPACE " "
2023                                                                                                                                                                             RANGE_EXPR
2024                                                                                                                                                                               DOT2EQ "..="
2025                                                                                                                                                                               RANGE_EXPR
2026                                                                                                                                                                                 DOT2 ".."
2027                                                                                                                                                                                 WHITESPACE "    "
2028                                                                                                                                                                                 RANGE_EXPR
2029                                                                                                                                                                                   DOT2EQ "..="
2030                                                                                                                                                                                   RANGE_EXPR
2031                                                                                                                                                                                     DOT2 ".."
2032                                                                                                                                                                                     WHITESPACE " "
2033                                                                                                                                                                                     RANGE_EXPR
2034                                                                                                                                                                                       DOT2EQ "..="
2035                                                                                                                                                                                       RANGE_EXPR
2036                                                                                                                                                                                         DOT2 ".."
2037                                                                                                                                                                                         WHITESPACE "    "
2038                                                                                                                                                                                         RANGE_EXPR
2039                                                                                                                                                                                           DOT2 ".."
2040                                                                                                                                                                                           WHITESPACE " "
2041                                                                                                                                                                                           RANGE_EXPR
2042                                                                                                                                                                                             DOT2 ".."
2043                                                                                                                                                                                             WHITESPACE " "
2044                                                                                                                                                                                             RANGE_EXPR
2045                                                                                                                                                                                               DOT2EQ "..="
2046                                                                                                                                                                                               RANGE_EXPR
2047                                                                                                                                                                                                 DOT2 ".."
2048                                                                                                                                                                                                 WHITESPACE "    "
2049                                                                                                                                                                                                 RANGE_EXPR
2050                                                                                                                                                                                                   DOT2 ".."
2051                                                                                                                                                                                                   WHITESPACE " "
2052                                                                                                                                                                                                   RANGE_EXPR
2053                                                                                                                                                                                                     DOT2EQ "..="
2054                                                                                                                                                                                                     RANGE_EXPR
2055                                                                                                                                                                                                       DOT2 ".."
2056                                                                                                                                                                                                       WHITESPACE " "
2057                                                                                                                                                                                                       RANGE_EXPR
2058                                                                                                                                                                                                         DOT2 ".."
2059                                                                                                                                                                                                         WHITESPACE "\n    "
2060                                                                                                                                                                                                         RANGE_EXPR
2061                                                                                                                                                                                                           DOT2EQ "..="
2062                                                                                                                                                                                                           RANGE_EXPR
2063                                                                                                                                                                                                             DOT2 ".."
2064                                                                                                                                                                                                             WHITESPACE " "
2065                                                                                                                                                                                                             RANGE_EXPR
2066                                                                                                                                                                                                               DOT2EQ "..="
2067                                                                                                                                                                                                               RANGE_EXPR
2068                                                                                                                                                                                                                 DOT2 ".."
2069                                                                                                                                                                                                                 WHITESPACE "    "
2070                                                                                                                                                                                                                 RANGE_EXPR
2071                                                                                                                                                                                                                   DOT2 ".."
2072                                                                                                                                                                                                                   WHITESPACE " "
2073                                                                                                                                                                                                                   RANGE_EXPR
2074                                                                                                                                                                                                                     DOT2EQ "..="
2075                                                                                                                                                                                                                     RANGE_EXPR
2076                                                                                                                                                                                                                       DOT2EQ "..="
2077                                                                                                                                                                                                                       RANGE_EXPR
2078                                                                                                                                                                                                                         DOT2 ".."
2079                                                                                                                                                                                                                         WHITESPACE "    "
2080                                                                                                                                                                                                                         RANGE_EXPR
2081                                                                                                                                                                                                                           DOT2EQ "..="
2082                                                                                                                                                                                                                           RANGE_EXPR
2083                                                                                                                                                                                                                             DOT2EQ "..="
2084                                                                                                                                                                                                                             RANGE_EXPR
2085                                                                                                                                                                                                                               DOT2 ".."
2086                                                                                                                                                                                                                               WHITESPACE " "
2087                                                                                                                                                                                                                               RANGE_EXPR
2088                                                                                                                                                                                                                                 DOT2 ".."
2089                                                                                                                                                                                                                                 WHITESPACE "    "
2090                                                                                                                                                                                                                                 RANGE_EXPR
2091                                                                                                                                                                                                                                   DOT2 ".."
2092                                                                                                                                                                                                                                   WHITESPACE " "
2093                                                                                                                                                                                                                                   RANGE_EXPR
2094                                                                                                                                                                                                                                     DOT2EQ "..="
2095                                                                                                                                                                                                                                     RANGE_EXPR
2096                                                                                                                                                                                                                                       DOT2 ".."
2097                                                                                                                                                                                                                                       WHITESPACE " "
2098                                                                                                                                                                                                                                       RANGE_EXPR
2099                                                                                                                                                                                                                                         DOT2 ".."
2100         WHITESPACE "\n"
2101         R_CURLY "}"
2102   WHITESPACE "\n\n"
2103   FN
2104     FN_KW "fn"
2105     WHITESPACE " "
2106     NAME
2107       IDENT "ktulhu"
2108     PARAM_LIST
2109       L_PAREN "("
2110       R_PAREN ")"
2111     WHITESPACE " "
2112     BLOCK_EXPR
2113       STMT_LIST
2114         L_CURLY "{"
2115         WHITESPACE "\n    "
2116         SEMICOLON ";"
2117         SEMICOLON ";"
2118         SEMICOLON ";"
2119         EXPR_STMT
2120           TUPLE_EXPR
2121             L_PAREN "("
2122             R_PAREN ")"
2123           SEMICOLON ";"
2124         SEMICOLON ";"
2125         SEMICOLON ";"
2126         SEMICOLON ";"
2127         SEMICOLON ";"
2128         SEMICOLON ";"
2129         SEMICOLON ";"
2130         SEMICOLON ";"
2131         SEMICOLON ";"
2132         TUPLE_EXPR
2133           L_PAREN "("
2134           R_PAREN ")"
2135         WHITESPACE "\n"
2136         R_CURLY "}"
2137   WHITESPACE "\n\n"
2138   FN
2139     VISIBILITY
2140       PUB_KW "pub"
2141     WHITESPACE " "
2142     FN_KW "fn"
2143     WHITESPACE " "
2144     NAME
2145       IDENT "main"
2146     PARAM_LIST
2147       L_PAREN "("
2148       R_PAREN ")"
2149     WHITESPACE " "
2150     BLOCK_EXPR
2151       STMT_LIST
2152         L_CURLY "{"
2153         WHITESPACE "\n    "
2154         EXPR_STMT
2155           CALL_EXPR
2156             PATH_EXPR
2157               PATH
2158                 PATH_SEGMENT
2159                   NAME_REF
2160                     IDENT "strange"
2161             ARG_LIST
2162               L_PAREN "("
2163               R_PAREN ")"
2164           SEMICOLON ";"
2165         WHITESPACE "\n    "
2166         EXPR_STMT
2167           CALL_EXPR
2168             PATH_EXPR
2169               PATH
2170                 PATH_SEGMENT
2171                   NAME_REF
2172                     IDENT "funny"
2173             ARG_LIST
2174               L_PAREN "("
2175               R_PAREN ")"
2176           SEMICOLON ";"
2177         WHITESPACE "\n    "
2178         EXPR_STMT
2179           CALL_EXPR
2180             PATH_EXPR
2181               PATH
2182                 PATH_SEGMENT
2183                   NAME_REF
2184                     IDENT "what"
2185             ARG_LIST
2186               L_PAREN "("
2187               R_PAREN ")"
2188           SEMICOLON ";"
2189         WHITESPACE "\n    "
2190         EXPR_STMT
2191           CALL_EXPR
2192             PATH_EXPR
2193               PATH
2194                 PATH_SEGMENT
2195                   NAME_REF
2196                     IDENT "zombiejesus"
2197             ARG_LIST
2198               L_PAREN "("
2199               R_PAREN ")"
2200           SEMICOLON ";"
2201         WHITESPACE "\n    "
2202         EXPR_STMT
2203           CALL_EXPR
2204             PATH_EXPR
2205               PATH
2206                 PATH_SEGMENT
2207                   NAME_REF
2208                     IDENT "notsure"
2209             ARG_LIST
2210               L_PAREN "("
2211               R_PAREN ")"
2212           SEMICOLON ";"
2213         WHITESPACE "\n    "
2214         EXPR_STMT
2215           CALL_EXPR
2216             PATH_EXPR
2217               PATH
2218                 PATH_SEGMENT
2219                   NAME_REF
2220                     IDENT "canttouchthis"
2221             ARG_LIST
2222               L_PAREN "("
2223               R_PAREN ")"
2224           SEMICOLON ";"
2225         WHITESPACE "\n    "
2226         EXPR_STMT
2227           CALL_EXPR
2228             PATH_EXPR
2229               PATH
2230                 PATH_SEGMENT
2231                   NAME_REF
2232                     IDENT "angrydome"
2233             ARG_LIST
2234               L_PAREN "("
2235               R_PAREN ")"
2236           SEMICOLON ";"
2237         WHITESPACE "\n    "
2238         EXPR_STMT
2239           CALL_EXPR
2240             PATH_EXPR
2241               PATH
2242                 PATH_SEGMENT
2243                   NAME_REF
2244                     IDENT "evil_lincoln"
2245             ARG_LIST
2246               L_PAREN "("
2247               R_PAREN ")"
2248           SEMICOLON ";"
2249         WHITESPACE "\n    "
2250         EXPR_STMT
2251           CALL_EXPR
2252             PATH_EXPR
2253               PATH
2254                 PATH_SEGMENT
2255                   NAME_REF
2256                     IDENT "dots"
2257             ARG_LIST
2258               L_PAREN "("
2259               R_PAREN ")"
2260           SEMICOLON ";"
2261         WHITESPACE "\n    "
2262         EXPR_STMT
2263           CALL_EXPR
2264             PATH_EXPR
2265               PATH
2266                 PATH_SEGMENT
2267                   NAME_REF
2268                     IDENT "u8"
2269             ARG_LIST
2270               L_PAREN "("
2271               LITERAL
2272                 INT_NUMBER "8u8"
2273               R_PAREN ")"
2274           SEMICOLON ";"
2275         WHITESPACE "\n    "
2276         EXPR_STMT
2277           CALL_EXPR
2278             PATH_EXPR
2279               PATH
2280                 PATH_SEGMENT
2281                   NAME_REF
2282                     IDENT "fishy"
2283             ARG_LIST
2284               L_PAREN "("
2285               R_PAREN ")"
2286           SEMICOLON ";"
2287         WHITESPACE "\n    "
2288         EXPR_STMT
2289           CALL_EXPR
2290             PATH_EXPR
2291               PATH
2292                 PATH_SEGMENT
2293                   NAME_REF
2294                     IDENT "union"
2295             ARG_LIST
2296               L_PAREN "("
2297               R_PAREN ")"
2298           SEMICOLON ";"
2299         WHITESPACE "\n    "
2300         EXPR_STMT
2301           CALL_EXPR
2302             PATH_EXPR
2303               PATH
2304                 PATH_SEGMENT
2305                   NAME_REF
2306                     IDENT "special_characters"
2307             ARG_LIST
2308               L_PAREN "("
2309               R_PAREN ")"
2310           SEMICOLON ";"
2311         WHITESPACE "\n    "
2312         EXPR_STMT
2313           CALL_EXPR
2314             PATH_EXPR
2315               PATH
2316                 PATH_SEGMENT
2317                   NAME_REF
2318                     IDENT "punch_card"
2319             ARG_LIST
2320               L_PAREN "("
2321               R_PAREN ")"
2322           SEMICOLON ";"
2323         WHITESPACE "\n    "
2324         EXPR_STMT
2325           CALL_EXPR
2326             PATH_EXPR
2327               PATH
2328                 PATH_SEGMENT
2329                   NAME_REF
2330                     IDENT "ktulhu"
2331             ARG_LIST
2332               L_PAREN "("
2333               R_PAREN ")"
2334           SEMICOLON ";"
2335         WHITESPACE "\n"
2336         R_CURLY "}"
2337   WHITESPACE "\n"