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