1{
2 "name": "rust",
3 "inherits": null,
4 "word": "identifier",
5 "rules": {
6 "source_file": {
7 "type": "SEQ",
8 "members": [
9 {
10 "type": "CHOICE",
11 "members": [
12 {
13 "type": "SYMBOL",
14 "name": "shebang"
15 },
16 {
17 "type": "BLANK"
18 }
19 ]
20 },
21 {
22 "type": "REPEAT",
23 "content": {
24 "type": "SYMBOL",
25 "name": "_statement"
26 }
27 }
28 ]
29 },
30 "_statement": {
31 "type": "CHOICE",
32 "members": [
33 {
34 "type": "SYMBOL",
35 "name": "expression_statement"
36 },
37 {
38 "type": "SYMBOL",
39 "name": "_declaration_statement"
40 }
41 ]
42 },
43 "empty_statement": {
44 "type": "STRING",
45 "value": ";"
46 },
47 "expression_statement": {
48 "type": "CHOICE",
49 "members": [
50 {
51 "type": "SEQ",
52 "members": [
53 {
54 "type": "SYMBOL",
55 "name": "_expression"
56 },
57 {
58 "type": "STRING",
59 "value": ";"
60 }
61 ]
62 },
63 {
64 "type": "PREC",
65 "value": 1,
66 "content": {
67 "type": "SYMBOL",
68 "name": "_expression_ending_with_block"
69 }
70 }
71 ]
72 },
73 "_declaration_statement": {
74 "type": "CHOICE",
75 "members": [
76 {
77 "type": "SYMBOL",
78 "name": "const_item"
79 },
80 {
81 "type": "SYMBOL",
82 "name": "macro_invocation"
83 },
84 {
85 "type": "SYMBOL",
86 "name": "macro_definition"
87 },
88 {
89 "type": "SYMBOL",
90 "name": "empty_statement"
91 },
92 {
93 "type": "SYMBOL",
94 "name": "attribute_item"
95 },
96 {
97 "type": "SYMBOL",
98 "name": "inner_attribute_item"
99 },
100 {
101 "type": "SYMBOL",
102 "name": "mod_item"
103 },
104 {
105 "type": "SYMBOL",
106 "name": "foreign_mod_item"
107 },
108 {
109 "type": "SYMBOL",
110 "name": "struct_item"
111 },
112 {
113 "type": "SYMBOL",
114 "name": "union_item"
115 },
116 {
117 "type": "SYMBOL",
118 "name": "enum_item"
119 },
120 {
121 "type": "SYMBOL",
122 "name": "type_item"
123 },
124 {
125 "type": "SYMBOL",
126 "name": "function_item"
127 },
128 {
129 "type": "SYMBOL",
130 "name": "function_signature_item"
131 },
132 {
133 "type": "SYMBOL",
134 "name": "impl_item"
135 },
136 {
137 "type": "SYMBOL",
138 "name": "trait_item"
139 },
140 {
141 "type": "SYMBOL",
142 "name": "associated_type"
143 },
144 {
145 "type": "SYMBOL",
146 "name": "let_declaration"
147 },
148 {
149 "type": "SYMBOL",
150 "name": "use_declaration"
151 },
152 {
153 "type": "SYMBOL",
154 "name": "extern_crate_declaration"
155 },
156 {
157 "type": "SYMBOL",
158 "name": "static_item"
159 }
160 ]
161 },
162 "macro_definition": {
163 "type": "SEQ",
164 "members": [
165 {
166 "type": "STRING",
167 "value": "macro_rules!"
168 },
169 {
170 "type": "FIELD",
171 "name": "name",
172 "content": {
173 "type": "CHOICE",
174 "members": [
175 {
176 "type": "SYMBOL",
177 "name": "identifier"
178 },
179 {
180 "type": "SYMBOL",
181 "name": "_reserved_identifier"
182 }
183 ]
184 }
185 },
186 {
187 "type": "CHOICE",
188 "members": [
189 {
190 "type": "SEQ",
191 "members": [
192 {
193 "type": "STRING",
194 "value": "("
195 },
196 {
197 "type": "SEQ",
198 "members": [
199 {
200 "type": "REPEAT",
201 "content": {
202 "type": "SEQ",
203 "members": [
204 {
205 "type": "SYMBOL",
206 "name": "macro_rule"
207 },
208 {
209 "type": "STRING",
210 "value": ";"
211 }
212 ]
213 }
214 },
215 {
216 "type": "CHOICE",
217 "members": [
218 {
219 "type": "SYMBOL",
220 "name": "macro_rule"
221 },
222 {
223 "type": "BLANK"
224 }
225 ]
226 }
227 ]
228 },
229 {
230 "type": "STRING",
231 "value": ")"
232 },
233 {
234 "type": "STRING",
235 "value": ";"
236 }
237 ]
238 },
239 {
240 "type": "SEQ",
241 "members": [
242 {
243 "type": "STRING",
244 "value": "["
245 },
246 {
247 "type": "SEQ",
248 "members": [
249 {
250 "type": "REPEAT",
251 "content": {
252 "type": "SEQ",
253 "members": [
254 {
255 "type": "SYMBOL",
256 "name": "macro_rule"
257 },
258 {
259 "type": "STRING",
260 "value": ";"
261 }
262 ]
263 }
264 },
265 {
266 "type": "CHOICE",
267 "members": [
268 {
269 "type": "SYMBOL",
270 "name": "macro_rule"
271 },
272 {
273 "type": "BLANK"
274 }
275 ]
276 }
277 ]
278 },
279 {
280 "type": "STRING",
281 "value": "]"
282 },
283 {
284 "type": "STRING",
285 "value": ";"
286 }
287 ]
288 },
289 {
290 "type": "SEQ",
291 "members": [
292 {
293 "type": "STRING",
294 "value": "{"
295 },
296 {
297 "type": "SEQ",
298 "members": [
299 {
300 "type": "REPEAT",
301 "content": {
302 "type": "SEQ",
303 "members": [
304 {
305 "type": "SYMBOL",
306 "name": "macro_rule"
307 },
308 {
309 "type": "STRING",
310 "value": ";"
311 }
312 ]
313 }
314 },
315 {
316 "type": "CHOICE",
317 "members": [
318 {
319 "type": "SYMBOL",
320 "name": "macro_rule"
321 },
322 {
323 "type": "BLANK"
324 }
325 ]
326 }
327 ]
328 },
329 {
330 "type": "STRING",
331 "value": "}"
332 }
333 ]
334 }
335 ]
336 }
337 ]
338 },
339 "macro_rule": {
340 "type": "SEQ",
341 "members": [
342 {
343 "type": "FIELD",
344 "name": "left",
345 "content": {
346 "type": "SYMBOL",
347 "name": "token_tree_pattern"
348 }
349 },
350 {
351 "type": "STRING",
352 "value": "=>"
353 },
354 {
355 "type": "FIELD",
356 "name": "right",
357 "content": {
358 "type": "SYMBOL",
359 "name": "token_tree"
360 }
361 }
362 ]
363 },
364 "_token_pattern": {
365 "type": "CHOICE",
366 "members": [
367 {
368 "type": "SYMBOL",
369 "name": "token_tree_pattern"
370 },
371 {
372 "type": "SYMBOL",
373 "name": "token_repetition_pattern"
374 },
375 {
376 "type": "SYMBOL",
377 "name": "token_binding_pattern"
378 },
379 {
380 "type": "SYMBOL",
381 "name": "metavariable"
382 },
383 {
384 "type": "SYMBOL",
385 "name": "_non_special_token"
386 }
387 ]
388 },
389 "token_tree_pattern": {
390 "type": "CHOICE",
391 "members": [
392 {
393 "type": "SEQ",
394 "members": [
395 {
396 "type": "STRING",
397 "value": "("
398 },
399 {
400 "type": "REPEAT",
401 "content": {
402 "type": "SYMBOL",
403 "name": "_token_pattern"
404 }
405 },
406 {
407 "type": "STRING",
408 "value": ")"
409 }
410 ]
411 },
412 {
413 "type": "SEQ",
414 "members": [
415 {
416 "type": "STRING",
417 "value": "["
418 },
419 {
420 "type": "REPEAT",
421 "content": {
422 "type": "SYMBOL",
423 "name": "_token_pattern"
424 }
425 },
426 {
427 "type": "STRING",
428 "value": "]"
429 }
430 ]
431 },
432 {
433 "type": "SEQ",
434 "members": [
435 {
436 "type": "STRING",
437 "value": "{"
438 },
439 {
440 "type": "REPEAT",
441 "content": {
442 "type": "SYMBOL",
443 "name": "_token_pattern"
444 }
445 },
446 {
447 "type": "STRING",
448 "value": "}"
449 }
450 ]
451 }
452 ]
453 },
454 "token_binding_pattern": {
455 "type": "PREC",
456 "value": 1,
457 "content": {
458 "type": "SEQ",
459 "members": [
460 {
461 "type": "FIELD",
462 "name": "name",
463 "content": {
464 "type": "SYMBOL",
465 "name": "metavariable"
466 }
467 },
468 {
469 "type": "STRING",
470 "value": ":"
471 },
472 {
473 "type": "FIELD",
474 "name": "type",
475 "content": {
476 "type": "SYMBOL",
477 "name": "fragment_specifier"
478 }
479 }
480 ]
481 }
482 },
483 "token_repetition_pattern": {
484 "type": "SEQ",
485 "members": [
486 {
487 "type": "STRING",
488 "value": "$"
489 },
490 {
491 "type": "STRING",
492 "value": "("
493 },
494 {
495 "type": "REPEAT",
496 "content": {
497 "type": "SYMBOL",
498 "name": "_token_pattern"
499 }
500 },
501 {
502 "type": "STRING",
503 "value": ")"
504 },
505 {
506 "type": "CHOICE",
507 "members": [
508 {
509 "type": "PATTERN",
510 "value": "[^+*?]+"
511 },
512 {
513 "type": "BLANK"
514 }
515 ]
516 },
517 {
518 "type": "CHOICE",
519 "members": [
520 {
521 "type": "STRING",
522 "value": "+"
523 },
524 {
525 "type": "STRING",
526 "value": "*"
527 },
528 {
529 "type": "STRING",
530 "value": "?"
531 }
532 ]
533 }
534 ]
535 },
536 "fragment_specifier": {
537 "type": "CHOICE",
538 "members": [
539 {
540 "type": "STRING",
541 "value": "block"
542 },
543 {
544 "type": "STRING",
545 "value": "expr"
546 },
547 {
548 "type": "STRING",
549 "value": "ident"
550 },
551 {
552 "type": "STRING",
553 "value": "item"
554 },
555 {
556 "type": "STRING",
557 "value": "lifetime"
558 },
559 {
560 "type": "STRING",
561 "value": "literal"
562 },
563 {
564 "type": "STRING",
565 "value": "meta"
566 },
567 {
568 "type": "STRING",
569 "value": "pat"
570 },
571 {
572 "type": "STRING",
573 "value": "path"
574 },
575 {
576 "type": "STRING",
577 "value": "stmt"
578 },
579 {
580 "type": "STRING",
581 "value": "tt"
582 },
583 {
584 "type": "STRING",
585 "value": "ty"
586 },
587 {
588 "type": "STRING",
589 "value": "vis"
590 }
591 ]
592 },
593 "_tokens": {
594 "type": "CHOICE",
595 "members": [
596 {
597 "type": "SYMBOL",
598 "name": "token_tree"
599 },
600 {
601 "type": "SYMBOL",
602 "name": "token_repetition"
603 },
604 {
605 "type": "SYMBOL",
606 "name": "metavariable"
607 },
608 {
609 "type": "SYMBOL",
610 "name": "_non_special_token"
611 }
612 ]
613 },
614 "token_tree": {
615 "type": "CHOICE",
616 "members": [
617 {
618 "type": "SEQ",
619 "members": [
620 {
621 "type": "STRING",
622 "value": "("
623 },
624 {
625 "type": "REPEAT",
626 "content": {
627 "type": "SYMBOL",
628 "name": "_tokens"
629 }
630 },
631 {
632 "type": "STRING",
633 "value": ")"
634 }
635 ]
636 },
637 {
638 "type": "SEQ",
639 "members": [
640 {
641 "type": "STRING",
642 "value": "["
643 },
644 {
645 "type": "REPEAT",
646 "content": {
647 "type": "SYMBOL",
648 "name": "_tokens"
649 }
650 },
651 {
652 "type": "STRING",
653 "value": "]"
654 }
655 ]
656 },
657 {
658 "type": "SEQ",
659 "members": [
660 {
661 "type": "STRING",
662 "value": "{"
663 },
664 {
665 "type": "REPEAT",
666 "content": {
667 "type": "SYMBOL",
668 "name": "_tokens"
669 }
670 },
671 {
672 "type": "STRING",
673 "value": "}"
674 }
675 ]
676 }
677 ]
678 },
679 "token_repetition": {
680 "type": "SEQ",
681 "members": [
682 {
683 "type": "STRING",
684 "value": "$"
685 },
686 {
687 "type": "STRING",
688 "value": "("
689 },
690 {
691 "type": "REPEAT",
692 "content": {
693 "type": "SYMBOL",
694 "name": "_tokens"
695 }
696 },
697 {
698 "type": "STRING",
699 "value": ")"
700 },
701 {
702 "type": "CHOICE",
703 "members": [
704 {
705 "type": "PATTERN",
706 "value": "[^+*?]+"
707 },
708 {
709 "type": "BLANK"
710 }
711 ]
712 },
713 {
714 "type": "CHOICE",
715 "members": [
716 {
717 "type": "STRING",
718 "value": "+"
719 },
720 {
721 "type": "STRING",
722 "value": "*"
723 },
724 {
725 "type": "STRING",
726 "value": "?"
727 }
728 ]
729 }
730 ]
731 },
732 "_non_special_token": {
733 "type": "CHOICE",
734 "members": [
735 {
736 "type": "SYMBOL",
737 "name": "_literal"
738 },
739 {
740 "type": "SYMBOL",
741 "name": "identifier"
742 },
743 {
744 "type": "SYMBOL",
745 "name": "mutable_specifier"
746 },
747 {
748 "type": "SYMBOL",
749 "name": "self"
750 },
751 {
752 "type": "SYMBOL",
753 "name": "super"
754 },
755 {
756 "type": "SYMBOL",
757 "name": "crate"
758 },
759 {
760 "type": "ALIAS",
761 "content": {
762 "type": "CHOICE",
763 "members": [
764 {
765 "type": "STRING",
766 "value": "u8"
767 },
768 {
769 "type": "STRING",
770 "value": "i8"
771 },
772 {
773 "type": "STRING",
774 "value": "u16"
775 },
776 {
777 "type": "STRING",
778 "value": "i16"
779 },
780 {
781 "type": "STRING",
782 "value": "u32"
783 },
784 {
785 "type": "STRING",
786 "value": "i32"
787 },
788 {
789 "type": "STRING",
790 "value": "u64"
791 },
792 {
793 "type": "STRING",
794 "value": "i64"
795 },
796 {
797 "type": "STRING",
798 "value": "u128"
799 },
800 {
801 "type": "STRING",
802 "value": "i128"
803 },
804 {
805 "type": "STRING",
806 "value": "isize"
807 },
808 {
809 "type": "STRING",
810 "value": "usize"
811 },
812 {
813 "type": "STRING",
814 "value": "f32"
815 },
816 {
817 "type": "STRING",
818 "value": "f64"
819 },
820 {
821 "type": "STRING",
822 "value": "bool"
823 },
824 {
825 "type": "STRING",
826 "value": "str"
827 },
828 {
829 "type": "STRING",
830 "value": "char"
831 }
832 ]
833 },
834 "named": true,
835 "value": "primitive_type"
836 },
837 {
838 "type": "PREC_RIGHT",
839 "value": 0,
840 "content": {
841 "type": "REPEAT1",
842 "content": {
843 "type": "CHOICE",
844 "members": [
845 {
846 "type": "STRING",
847 "value": "+"
848 },
849 {
850 "type": "STRING",
851 "value": "-"
852 },
853 {
854 "type": "STRING",
855 "value": "*"
856 },
857 {
858 "type": "STRING",
859 "value": "/"
860 },
861 {
862 "type": "STRING",
863 "value": "%"
864 },
865 {
866 "type": "STRING",
867 "value": "^"
868 },
869 {
870 "type": "STRING",
871 "value": "!"
872 },
873 {
874 "type": "STRING",
875 "value": "&"
876 },
877 {
878 "type": "STRING",
879 "value": "|"
880 },
881 {
882 "type": "STRING",
883 "value": "&&"
884 },
885 {
886 "type": "STRING",
887 "value": "||"
888 },
889 {
890 "type": "STRING",
891 "value": "<<"
892 },
893 {
894 "type": "STRING",
895 "value": ">>"
896 },
897 {
898 "type": "STRING",
899 "value": "+="
900 },
901 {
902 "type": "STRING",
903 "value": "-="
904 },
905 {
906 "type": "STRING",
907 "value": "*="
908 },
909 {
910 "type": "STRING",
911 "value": "/="
912 },
913 {
914 "type": "STRING",
915 "value": "%="
916 },
917 {
918 "type": "STRING",
919 "value": "^="
920 },
921 {
922 "type": "STRING",
923 "value": "&="
924 },
925 {
926 "type": "STRING",
927 "value": "|="
928 },
929 {
930 "type": "STRING",
931 "value": "<<="
932 },
933 {
934 "type": "STRING",
935 "value": ">>="
936 },
937 {
938 "type": "STRING",
939 "value": "="
940 },
941 {
942 "type": "STRING",
943 "value": "=="
944 },
945 {
946 "type": "STRING",
947 "value": "!="
948 },
949 {
950 "type": "STRING",
951 "value": ">"
952 },
953 {
954 "type": "STRING",
955 "value": "<"
956 },
957 {
958 "type": "STRING",
959 "value": ">="
960 },
961 {
962 "type": "STRING",
963 "value": "<="
964 },
965 {
966 "type": "STRING",
967 "value": "@"
968 },
969 {
970 "type": "STRING",
971 "value": "_"
972 },
973 {
974 "type": "STRING",
975 "value": "."
976 },
977 {
978 "type": "STRING",
979 "value": ".."
980 },
981 {
982 "type": "STRING",
983 "value": "..."
984 },
985 {
986 "type": "STRING",
987 "value": "..="
988 },
989 {
990 "type": "STRING",
991 "value": ","
992 },
993 {
994 "type": "STRING",
995 "value": ";"
996 },
997 {
998 "type": "STRING",
999 "value": ":"
1000 },
1001 {
1002 "type": "STRING",
1003 "value": "::"
1004 },
1005 {
1006 "type": "STRING",
1007 "value": "->"
1008 },
1009 {
1010 "type": "STRING",
1011 "value": "=>"
1012 },
1013 {
1014 "type": "STRING",
1015 "value": "#"
1016 },
1017 {
1018 "type": "STRING",
1019 "value": "?"
1020 }
1021 ]
1022 }
1023 }
1024 },
1025 {
1026 "type": "STRING",
1027 "value": "'"
1028 },
1029 {
1030 "type": "STRING",
1031 "value": "as"
1032 },
1033 {
1034 "type": "STRING",
1035 "value": "async"
1036 },
1037 {
1038 "type": "STRING",
1039 "value": "await"
1040 },
1041 {
1042 "type": "STRING",
1043 "value": "break"
1044 },
1045 {
1046 "type": "STRING",
1047 "value": "const"
1048 },
1049 {
1050 "type": "STRING",
1051 "value": "continue"
1052 },
1053 {
1054 "type": "STRING",
1055 "value": "default"
1056 },
1057 {
1058 "type": "STRING",
1059 "value": "enum"
1060 },
1061 {
1062 "type": "STRING",
1063 "value": "fn"
1064 },
1065 {
1066 "type": "STRING",
1067 "value": "for"
1068 },
1069 {
1070 "type": "STRING",
1071 "value": "if"
1072 },
1073 {
1074 "type": "STRING",
1075 "value": "impl"
1076 },
1077 {
1078 "type": "STRING",
1079 "value": "let"
1080 },
1081 {
1082 "type": "STRING",
1083 "value": "loop"
1084 },
1085 {
1086 "type": "STRING",
1087 "value": "match"
1088 },
1089 {
1090 "type": "STRING",
1091 "value": "mod"
1092 },
1093 {
1094 "type": "STRING",
1095 "value": "pub"
1096 },
1097 {
1098 "type": "STRING",
1099 "value": "return"
1100 },
1101 {
1102 "type": "STRING",
1103 "value": "static"
1104 },
1105 {
1106 "type": "STRING",
1107 "value": "struct"
1108 },
1109 {
1110 "type": "STRING",
1111 "value": "trait"
1112 },
1113 {
1114 "type": "STRING",
1115 "value": "type"
1116 },
1117 {
1118 "type": "STRING",
1119 "value": "union"
1120 },
1121 {
1122 "type": "STRING",
1123 "value": "unsafe"
1124 },
1125 {
1126 "type": "STRING",
1127 "value": "use"
1128 },
1129 {
1130 "type": "STRING",
1131 "value": "where"
1132 },
1133 {
1134 "type": "STRING",
1135 "value": "while"
1136 }
1137 ]
1138 },
1139 "attribute_item": {
1140 "type": "SEQ",
1141 "members": [
1142 {
1143 "type": "STRING",
1144 "value": "#"
1145 },
1146 {
1147 "type": "STRING",
1148 "value": "["
1149 },
1150 {
1151 "type": "SYMBOL",
1152 "name": "attribute"
1153 },
1154 {
1155 "type": "STRING",
1156 "value": "]"
1157 }
1158 ]
1159 },
1160 "inner_attribute_item": {
1161 "type": "SEQ",
1162 "members": [
1163 {
1164 "type": "STRING",
1165 "value": "#"
1166 },
1167 {
1168 "type": "STRING",
1169 "value": "!"
1170 },
1171 {
1172 "type": "STRING",
1173 "value": "["
1174 },
1175 {
1176 "type": "SYMBOL",
1177 "name": "attribute"
1178 },
1179 {
1180 "type": "STRING",
1181 "value": "]"
1182 }
1183 ]
1184 },
1185 "attribute": {
1186 "type": "SEQ",
1187 "members": [
1188 {
1189 "type": "SYMBOL",
1190 "name": "_path"
1191 },
1192 {
1193 "type": "CHOICE",
1194 "members": [
1195 {
1196 "type": "CHOICE",
1197 "members": [
1198 {
1199 "type": "SEQ",
1200 "members": [
1201 {
1202 "type": "STRING",
1203 "value": "="
1204 },
1205 {
1206 "type": "FIELD",
1207 "name": "value",
1208 "content": {
1209 "type": "SYMBOL",
1210 "name": "_expression"
1211 }
1212 }
1213 ]
1214 },
1215 {
1216 "type": "FIELD",
1217 "name": "arguments",
1218 "content": {
1219 "type": "ALIAS",
1220 "content": {
1221 "type": "SYMBOL",
1222 "name": "delim_token_tree"
1223 },
1224 "named": true,
1225 "value": "token_tree"
1226 }
1227 }
1228 ]
1229 },
1230 {
1231 "type": "BLANK"
1232 }
1233 ]
1234 }
1235 ]
1236 },
1237 "mod_item": {
1238 "type": "SEQ",
1239 "members": [
1240 {
1241 "type": "CHOICE",
1242 "members": [
1243 {
1244 "type": "SYMBOL",
1245 "name": "visibility_modifier"
1246 },
1247 {
1248 "type": "BLANK"
1249 }
1250 ]
1251 },
1252 {
1253 "type": "STRING",
1254 "value": "mod"
1255 },
1256 {
1257 "type": "FIELD",
1258 "name": "name",
1259 "content": {
1260 "type": "SYMBOL",
1261 "name": "identifier"
1262 }
1263 },
1264 {
1265 "type": "CHOICE",
1266 "members": [
1267 {
1268 "type": "STRING",
1269 "value": ";"
1270 },
1271 {
1272 "type": "FIELD",
1273 "name": "body",
1274 "content": {
1275 "type": "SYMBOL",
1276 "name": "declaration_list"
1277 }
1278 }
1279 ]
1280 }
1281 ]
1282 },
1283 "foreign_mod_item": {
1284 "type": "SEQ",
1285 "members": [
1286 {
1287 "type": "CHOICE",
1288 "members": [
1289 {
1290 "type": "SYMBOL",
1291 "name": "visibility_modifier"
1292 },
1293 {
1294 "type": "BLANK"
1295 }
1296 ]
1297 },
1298 {
1299 "type": "SYMBOL",
1300 "name": "extern_modifier"
1301 },
1302 {
1303 "type": "CHOICE",
1304 "members": [
1305 {
1306 "type": "STRING",
1307 "value": ";"
1308 },
1309 {
1310 "type": "FIELD",
1311 "name": "body",
1312 "content": {
1313 "type": "SYMBOL",
1314 "name": "declaration_list"
1315 }
1316 }
1317 ]
1318 }
1319 ]
1320 },
1321 "declaration_list": {
1322 "type": "SEQ",
1323 "members": [
1324 {
1325 "type": "STRING",
1326 "value": "{"
1327 },
1328 {
1329 "type": "REPEAT",
1330 "content": {
1331 "type": "SYMBOL",
1332 "name": "_declaration_statement"
1333 }
1334 },
1335 {
1336 "type": "STRING",
1337 "value": "}"
1338 }
1339 ]
1340 },
1341 "struct_item": {
1342 "type": "SEQ",
1343 "members": [
1344 {
1345 "type": "CHOICE",
1346 "members": [
1347 {
1348 "type": "SYMBOL",
1349 "name": "visibility_modifier"
1350 },
1351 {
1352 "type": "BLANK"
1353 }
1354 ]
1355 },
1356 {
1357 "type": "STRING",
1358 "value": "struct"
1359 },
1360 {
1361 "type": "FIELD",
1362 "name": "name",
1363 "content": {
1364 "type": "SYMBOL",
1365 "name": "_type_identifier"
1366 }
1367 },
1368 {
1369 "type": "FIELD",
1370 "name": "type_parameters",
1371 "content": {
1372 "type": "CHOICE",
1373 "members": [
1374 {
1375 "type": "SYMBOL",
1376 "name": "type_parameters"
1377 },
1378 {
1379 "type": "BLANK"
1380 }
1381 ]
1382 }
1383 },
1384 {
1385 "type": "CHOICE",
1386 "members": [
1387 {
1388 "type": "SEQ",
1389 "members": [
1390 {
1391 "type": "CHOICE",
1392 "members": [
1393 {
1394 "type": "SYMBOL",
1395 "name": "where_clause"
1396 },
1397 {
1398 "type": "BLANK"
1399 }
1400 ]
1401 },
1402 {
1403 "type": "FIELD",
1404 "name": "body",
1405 "content": {
1406 "type": "SYMBOL",
1407 "name": "field_declaration_list"
1408 }
1409 }
1410 ]
1411 },
1412 {
1413 "type": "SEQ",
1414 "members": [
1415 {
1416 "type": "FIELD",
1417 "name": "body",
1418 "content": {
1419 "type": "SYMBOL",
1420 "name": "ordered_field_declaration_list"
1421 }
1422 },
1423 {
1424 "type": "CHOICE",
1425 "members": [
1426 {
1427 "type": "SYMBOL",
1428 "name": "where_clause"
1429 },
1430 {
1431 "type": "BLANK"
1432 }
1433 ]
1434 },
1435 {
1436 "type": "STRING",
1437 "value": ";"
1438 }
1439 ]
1440 },
1441 {
1442 "type": "STRING",
1443 "value": ";"
1444 }
1445 ]
1446 }
1447 ]
1448 },
1449 "union_item": {
1450 "type": "SEQ",
1451 "members": [
1452 {
1453 "type": "CHOICE",
1454 "members": [
1455 {
1456 "type": "SYMBOL",
1457 "name": "visibility_modifier"
1458 },
1459 {
1460 "type": "BLANK"
1461 }
1462 ]
1463 },
1464 {
1465 "type": "STRING",
1466 "value": "union"
1467 },
1468 {
1469 "type": "FIELD",
1470 "name": "name",
1471 "content": {
1472 "type": "SYMBOL",
1473 "name": "_type_identifier"
1474 }
1475 },
1476 {
1477 "type": "FIELD",
1478 "name": "type_parameters",
1479 "content": {
1480 "type": "CHOICE",
1481 "members": [
1482 {
1483 "type": "SYMBOL",
1484 "name": "type_parameters"
1485 },
1486 {
1487 "type": "BLANK"
1488 }
1489 ]
1490 }
1491 },
1492 {
1493 "type": "CHOICE",
1494 "members": [
1495 {
1496 "type": "SYMBOL",
1497 "name": "where_clause"
1498 },
1499 {
1500 "type": "BLANK"
1501 }
1502 ]
1503 },
1504 {
1505 "type": "FIELD",
1506 "name": "body",
1507 "content": {
1508 "type": "SYMBOL",
1509 "name": "field_declaration_list"
1510 }
1511 }
1512 ]
1513 },
1514 "enum_item": {
1515 "type": "SEQ",
1516 "members": [
1517 {
1518 "type": "CHOICE",
1519 "members": [
1520 {
1521 "type": "SYMBOL",
1522 "name": "visibility_modifier"
1523 },
1524 {
1525 "type": "BLANK"
1526 }
1527 ]
1528 },
1529 {
1530 "type": "STRING",
1531 "value": "enum"
1532 },
1533 {
1534 "type": "FIELD",
1535 "name": "name",
1536 "content": {
1537 "type": "SYMBOL",
1538 "name": "_type_identifier"
1539 }
1540 },
1541 {
1542 "type": "FIELD",
1543 "name": "type_parameters",
1544 "content": {
1545 "type": "CHOICE",
1546 "members": [
1547 {
1548 "type": "SYMBOL",
1549 "name": "type_parameters"
1550 },
1551 {
1552 "type": "BLANK"
1553 }
1554 ]
1555 }
1556 },
1557 {
1558 "type": "CHOICE",
1559 "members": [
1560 {
1561 "type": "SYMBOL",
1562 "name": "where_clause"
1563 },
1564 {
1565 "type": "BLANK"
1566 }
1567 ]
1568 },
1569 {
1570 "type": "FIELD",
1571 "name": "body",
1572 "content": {
1573 "type": "SYMBOL",
1574 "name": "enum_variant_list"
1575 }
1576 }
1577 ]
1578 },
1579 "enum_variant_list": {
1580 "type": "SEQ",
1581 "members": [
1582 {
1583 "type": "STRING",
1584 "value": "{"
1585 },
1586 {
1587 "type": "CHOICE",
1588 "members": [
1589 {
1590 "type": "SEQ",
1591 "members": [
1592 {
1593 "type": "SEQ",
1594 "members": [
1595 {
1596 "type": "REPEAT",
1597 "content": {
1598 "type": "SYMBOL",
1599 "name": "attribute_item"
1600 }
1601 },
1602 {
1603 "type": "SYMBOL",
1604 "name": "enum_variant"
1605 }
1606 ]
1607 },
1608 {
1609 "type": "REPEAT",
1610 "content": {
1611 "type": "SEQ",
1612 "members": [
1613 {
1614 "type": "STRING",
1615 "value": ","
1616 },
1617 {
1618 "type": "SEQ",
1619 "members": [
1620 {
1621 "type": "REPEAT",
1622 "content": {
1623 "type": "SYMBOL",
1624 "name": "attribute_item"
1625 }
1626 },
1627 {
1628 "type": "SYMBOL",
1629 "name": "enum_variant"
1630 }
1631 ]
1632 }
1633 ]
1634 }
1635 }
1636 ]
1637 },
1638 {
1639 "type": "BLANK"
1640 }
1641 ]
1642 },
1643 {
1644 "type": "CHOICE",
1645 "members": [
1646 {
1647 "type": "STRING",
1648 "value": ","
1649 },
1650 {
1651 "type": "BLANK"
1652 }
1653 ]
1654 },
1655 {
1656 "type": "STRING",
1657 "value": "}"
1658 }
1659 ]
1660 },
1661 "enum_variant": {
1662 "type": "SEQ",
1663 "members": [
1664 {
1665 "type": "CHOICE",
1666 "members": [
1667 {
1668 "type": "SYMBOL",
1669 "name": "visibility_modifier"
1670 },
1671 {
1672 "type": "BLANK"
1673 }
1674 ]
1675 },
1676 {
1677 "type": "FIELD",
1678 "name": "name",
1679 "content": {
1680 "type": "SYMBOL",
1681 "name": "identifier"
1682 }
1683 },
1684 {
1685 "type": "FIELD",
1686 "name": "body",
1687 "content": {
1688 "type": "CHOICE",
1689 "members": [
1690 {
1691 "type": "CHOICE",
1692 "members": [
1693 {
1694 "type": "SYMBOL",
1695 "name": "field_declaration_list"
1696 },
1697 {
1698 "type": "SYMBOL",
1699 "name": "ordered_field_declaration_list"
1700 }
1701 ]
1702 },
1703 {
1704 "type": "BLANK"
1705 }
1706 ]
1707 }
1708 },
1709 {
1710 "type": "CHOICE",
1711 "members": [
1712 {
1713 "type": "SEQ",
1714 "members": [
1715 {
1716 "type": "STRING",
1717 "value": "="
1718 },
1719 {
1720 "type": "FIELD",
1721 "name": "value",
1722 "content": {
1723 "type": "SYMBOL",
1724 "name": "_expression"
1725 }
1726 }
1727 ]
1728 },
1729 {
1730 "type": "BLANK"
1731 }
1732 ]
1733 }
1734 ]
1735 },
1736 "field_declaration_list": {
1737 "type": "SEQ",
1738 "members": [
1739 {
1740 "type": "STRING",
1741 "value": "{"
1742 },
1743 {
1744 "type": "CHOICE",
1745 "members": [
1746 {
1747 "type": "SEQ",
1748 "members": [
1749 {
1750 "type": "SEQ",
1751 "members": [
1752 {
1753 "type": "REPEAT",
1754 "content": {
1755 "type": "SYMBOL",
1756 "name": "attribute_item"
1757 }
1758 },
1759 {
1760 "type": "SYMBOL",
1761 "name": "field_declaration"
1762 }
1763 ]
1764 },
1765 {
1766 "type": "REPEAT",
1767 "content": {
1768 "type": "SEQ",
1769 "members": [
1770 {
1771 "type": "STRING",
1772 "value": ","
1773 },
1774 {
1775 "type": "SEQ",
1776 "members": [
1777 {
1778 "type": "REPEAT",
1779 "content": {
1780 "type": "SYMBOL",
1781 "name": "attribute_item"
1782 }
1783 },
1784 {
1785 "type": "SYMBOL",
1786 "name": "field_declaration"
1787 }
1788 ]
1789 }
1790 ]
1791 }
1792 }
1793 ]
1794 },
1795 {
1796 "type": "BLANK"
1797 }
1798 ]
1799 },
1800 {
1801 "type": "CHOICE",
1802 "members": [
1803 {
1804 "type": "STRING",
1805 "value": ","
1806 },
1807 {
1808 "type": "BLANK"
1809 }
1810 ]
1811 },
1812 {
1813 "type": "STRING",
1814 "value": "}"
1815 }
1816 ]
1817 },
1818 "field_declaration": {
1819 "type": "SEQ",
1820 "members": [
1821 {
1822 "type": "CHOICE",
1823 "members": [
1824 {
1825 "type": "SYMBOL",
1826 "name": "visibility_modifier"
1827 },
1828 {
1829 "type": "BLANK"
1830 }
1831 ]
1832 },
1833 {
1834 "type": "FIELD",
1835 "name": "name",
1836 "content": {
1837 "type": "SYMBOL",
1838 "name": "_field_identifier"
1839 }
1840 },
1841 {
1842 "type": "STRING",
1843 "value": ":"
1844 },
1845 {
1846 "type": "FIELD",
1847 "name": "type",
1848 "content": {
1849 "type": "SYMBOL",
1850 "name": "_type"
1851 }
1852 }
1853 ]
1854 },
1855 "ordered_field_declaration_list": {
1856 "type": "SEQ",
1857 "members": [
1858 {
1859 "type": "STRING",
1860 "value": "("
1861 },
1862 {
1863 "type": "CHOICE",
1864 "members": [
1865 {
1866 "type": "SEQ",
1867 "members": [
1868 {
1869 "type": "SEQ",
1870 "members": [
1871 {
1872 "type": "REPEAT",
1873 "content": {
1874 "type": "SYMBOL",
1875 "name": "attribute_item"
1876 }
1877 },
1878 {
1879 "type": "CHOICE",
1880 "members": [
1881 {
1882 "type": "SYMBOL",
1883 "name": "visibility_modifier"
1884 },
1885 {
1886 "type": "BLANK"
1887 }
1888 ]
1889 },
1890 {
1891 "type": "FIELD",
1892 "name": "type",
1893 "content": {
1894 "type": "SYMBOL",
1895 "name": "_type"
1896 }
1897 }
1898 ]
1899 },
1900 {
1901 "type": "REPEAT",
1902 "content": {
1903 "type": "SEQ",
1904 "members": [
1905 {
1906 "type": "STRING",
1907 "value": ","
1908 },
1909 {
1910 "type": "SEQ",
1911 "members": [
1912 {
1913 "type": "REPEAT",
1914 "content": {
1915 "type": "SYMBOL",
1916 "name": "attribute_item"
1917 }
1918 },
1919 {
1920 "type": "CHOICE",
1921 "members": [
1922 {
1923 "type": "SYMBOL",
1924 "name": "visibility_modifier"
1925 },
1926 {
1927 "type": "BLANK"
1928 }
1929 ]
1930 },
1931 {
1932 "type": "FIELD",
1933 "name": "type",
1934 "content": {
1935 "type": "SYMBOL",
1936 "name": "_type"
1937 }
1938 }
1939 ]
1940 }
1941 ]
1942 }
1943 }
1944 ]
1945 },
1946 {
1947 "type": "BLANK"
1948 }
1949 ]
1950 },
1951 {
1952 "type": "CHOICE",
1953 "members": [
1954 {
1955 "type": "STRING",
1956 "value": ","
1957 },
1958 {
1959 "type": "BLANK"
1960 }
1961 ]
1962 },
1963 {
1964 "type": "STRING",
1965 "value": ")"
1966 }
1967 ]
1968 },
1969 "extern_crate_declaration": {
1970 "type": "SEQ",
1971 "members": [
1972 {
1973 "type": "CHOICE",
1974 "members": [
1975 {
1976 "type": "SYMBOL",
1977 "name": "visibility_modifier"
1978 },
1979 {
1980 "type": "BLANK"
1981 }
1982 ]
1983 },
1984 {
1985 "type": "STRING",
1986 "value": "extern"
1987 },
1988 {
1989 "type": "SYMBOL",
1990 "name": "crate"
1991 },
1992 {
1993 "type": "FIELD",
1994 "name": "name",
1995 "content": {
1996 "type": "SYMBOL",
1997 "name": "identifier"
1998 }
1999 },
2000 {
2001 "type": "CHOICE",
2002 "members": [
2003 {
2004 "type": "SEQ",
2005 "members": [
2006 {
2007 "type": "STRING",
2008 "value": "as"
2009 },
2010 {
2011 "type": "FIELD",
2012 "name": "alias",
2013 "content": {
2014 "type": "SYMBOL",
2015 "name": "identifier"
2016 }
2017 }
2018 ]
2019 },
2020 {
2021 "type": "BLANK"
2022 }
2023 ]
2024 },
2025 {
2026 "type": "STRING",
2027 "value": ";"
2028 }
2029 ]
2030 },
2031 "const_item": {
2032 "type": "SEQ",
2033 "members": [
2034 {
2035 "type": "CHOICE",
2036 "members": [
2037 {
2038 "type": "SYMBOL",
2039 "name": "visibility_modifier"
2040 },
2041 {
2042 "type": "BLANK"
2043 }
2044 ]
2045 },
2046 {
2047 "type": "STRING",
2048 "value": "const"
2049 },
2050 {
2051 "type": "FIELD",
2052 "name": "name",
2053 "content": {
2054 "type": "SYMBOL",
2055 "name": "identifier"
2056 }
2057 },
2058 {
2059 "type": "STRING",
2060 "value": ":"
2061 },
2062 {
2063 "type": "FIELD",
2064 "name": "type",
2065 "content": {
2066 "type": "SYMBOL",
2067 "name": "_type"
2068 }
2069 },
2070 {
2071 "type": "CHOICE",
2072 "members": [
2073 {
2074 "type": "SEQ",
2075 "members": [
2076 {
2077 "type": "STRING",
2078 "value": "="
2079 },
2080 {
2081 "type": "FIELD",
2082 "name": "value",
2083 "content": {
2084 "type": "SYMBOL",
2085 "name": "_expression"
2086 }
2087 }
2088 ]
2089 },
2090 {
2091 "type": "BLANK"
2092 }
2093 ]
2094 },
2095 {
2096 "type": "STRING",
2097 "value": ";"
2098 }
2099 ]
2100 },
2101 "static_item": {
2102 "type": "SEQ",
2103 "members": [
2104 {
2105 "type": "CHOICE",
2106 "members": [
2107 {
2108 "type": "SYMBOL",
2109 "name": "visibility_modifier"
2110 },
2111 {
2112 "type": "BLANK"
2113 }
2114 ]
2115 },
2116 {
2117 "type": "STRING",
2118 "value": "static"
2119 },
2120 {
2121 "type": "CHOICE",
2122 "members": [
2123 {
2124 "type": "STRING",
2125 "value": "ref"
2126 },
2127 {
2128 "type": "BLANK"
2129 }
2130 ]
2131 },
2132 {
2133 "type": "CHOICE",
2134 "members": [
2135 {
2136 "type": "SYMBOL",
2137 "name": "mutable_specifier"
2138 },
2139 {
2140 "type": "BLANK"
2141 }
2142 ]
2143 },
2144 {
2145 "type": "FIELD",
2146 "name": "name",
2147 "content": {
2148 "type": "SYMBOL",
2149 "name": "identifier"
2150 }
2151 },
2152 {
2153 "type": "STRING",
2154 "value": ":"
2155 },
2156 {
2157 "type": "FIELD",
2158 "name": "type",
2159 "content": {
2160 "type": "SYMBOL",
2161 "name": "_type"
2162 }
2163 },
2164 {
2165 "type": "CHOICE",
2166 "members": [
2167 {
2168 "type": "SEQ",
2169 "members": [
2170 {
2171 "type": "STRING",
2172 "value": "="
2173 },
2174 {
2175 "type": "FIELD",
2176 "name": "value",
2177 "content": {
2178 "type": "SYMBOL",
2179 "name": "_expression"
2180 }
2181 }
2182 ]
2183 },
2184 {
2185 "type": "BLANK"
2186 }
2187 ]
2188 },
2189 {
2190 "type": "STRING",
2191 "value": ";"
2192 }
2193 ]
2194 },
2195 "type_item": {
2196 "type": "SEQ",
2197 "members": [
2198 {
2199 "type": "CHOICE",
2200 "members": [
2201 {
2202 "type": "SYMBOL",
2203 "name": "visibility_modifier"
2204 },
2205 {
2206 "type": "BLANK"
2207 }
2208 ]
2209 },
2210 {
2211 "type": "STRING",
2212 "value": "type"
2213 },
2214 {
2215 "type": "FIELD",
2216 "name": "name",
2217 "content": {
2218 "type": "SYMBOL",
2219 "name": "_type_identifier"
2220 }
2221 },
2222 {
2223 "type": "FIELD",
2224 "name": "type_parameters",
2225 "content": {
2226 "type": "CHOICE",
2227 "members": [
2228 {
2229 "type": "SYMBOL",
2230 "name": "type_parameters"
2231 },
2232 {
2233 "type": "BLANK"
2234 }
2235 ]
2236 }
2237 },
2238 {
2239 "type": "STRING",
2240 "value": "="
2241 },
2242 {
2243 "type": "FIELD",
2244 "name": "type",
2245 "content": {
2246 "type": "SYMBOL",
2247 "name": "_type"
2248 }
2249 },
2250 {
2251 "type": "CHOICE",
2252 "members": [
2253 {
2254 "type": "SYMBOL",
2255 "name": "where_clause"
2256 },
2257 {
2258 "type": "BLANK"
2259 }
2260 ]
2261 },
2262 {
2263 "type": "STRING",
2264 "value": ";"
2265 }
2266 ]
2267 },
2268 "function_item": {
2269 "type": "SEQ",
2270 "members": [
2271 {
2272 "type": "CHOICE",
2273 "members": [
2274 {
2275 "type": "SYMBOL",
2276 "name": "visibility_modifier"
2277 },
2278 {
2279 "type": "BLANK"
2280 }
2281 ]
2282 },
2283 {
2284 "type": "CHOICE",
2285 "members": [
2286 {
2287 "type": "SYMBOL",
2288 "name": "function_modifiers"
2289 },
2290 {
2291 "type": "BLANK"
2292 }
2293 ]
2294 },
2295 {
2296 "type": "STRING",
2297 "value": "fn"
2298 },
2299 {
2300 "type": "FIELD",
2301 "name": "name",
2302 "content": {
2303 "type": "CHOICE",
2304 "members": [
2305 {
2306 "type": "SYMBOL",
2307 "name": "identifier"
2308 },
2309 {
2310 "type": "SYMBOL",
2311 "name": "metavariable"
2312 }
2313 ]
2314 }
2315 },
2316 {
2317 "type": "FIELD",
2318 "name": "type_parameters",
2319 "content": {
2320 "type": "CHOICE",
2321 "members": [
2322 {
2323 "type": "SYMBOL",
2324 "name": "type_parameters"
2325 },
2326 {
2327 "type": "BLANK"
2328 }
2329 ]
2330 }
2331 },
2332 {
2333 "type": "FIELD",
2334 "name": "parameters",
2335 "content": {
2336 "type": "SYMBOL",
2337 "name": "parameters"
2338 }
2339 },
2340 {
2341 "type": "CHOICE",
2342 "members": [
2343 {
2344 "type": "SEQ",
2345 "members": [
2346 {
2347 "type": "STRING",
2348 "value": "->"
2349 },
2350 {
2351 "type": "FIELD",
2352 "name": "return_type",
2353 "content": {
2354 "type": "SYMBOL",
2355 "name": "_type"
2356 }
2357 }
2358 ]
2359 },
2360 {
2361 "type": "BLANK"
2362 }
2363 ]
2364 },
2365 {
2366 "type": "CHOICE",
2367 "members": [
2368 {
2369 "type": "SYMBOL",
2370 "name": "where_clause"
2371 },
2372 {
2373 "type": "BLANK"
2374 }
2375 ]
2376 },
2377 {
2378 "type": "FIELD",
2379 "name": "body",
2380 "content": {
2381 "type": "SYMBOL",
2382 "name": "block"
2383 }
2384 }
2385 ]
2386 },
2387 "function_signature_item": {
2388 "type": "SEQ",
2389 "members": [
2390 {
2391 "type": "CHOICE",
2392 "members": [
2393 {
2394 "type": "SYMBOL",
2395 "name": "visibility_modifier"
2396 },
2397 {
2398 "type": "BLANK"
2399 }
2400 ]
2401 },
2402 {
2403 "type": "CHOICE",
2404 "members": [
2405 {
2406 "type": "SYMBOL",
2407 "name": "function_modifiers"
2408 },
2409 {
2410 "type": "BLANK"
2411 }
2412 ]
2413 },
2414 {
2415 "type": "STRING",
2416 "value": "fn"
2417 },
2418 {
2419 "type": "FIELD",
2420 "name": "name",
2421 "content": {
2422 "type": "CHOICE",
2423 "members": [
2424 {
2425 "type": "SYMBOL",
2426 "name": "identifier"
2427 },
2428 {
2429 "type": "SYMBOL",
2430 "name": "metavariable"
2431 }
2432 ]
2433 }
2434 },
2435 {
2436 "type": "FIELD",
2437 "name": "type_parameters",
2438 "content": {
2439 "type": "CHOICE",
2440 "members": [
2441 {
2442 "type": "SYMBOL",
2443 "name": "type_parameters"
2444 },
2445 {
2446 "type": "BLANK"
2447 }
2448 ]
2449 }
2450 },
2451 {
2452 "type": "FIELD",
2453 "name": "parameters",
2454 "content": {
2455 "type": "SYMBOL",
2456 "name": "parameters"
2457 }
2458 },
2459 {
2460 "type": "CHOICE",
2461 "members": [
2462 {
2463 "type": "SEQ",
2464 "members": [
2465 {
2466 "type": "STRING",
2467 "value": "->"
2468 },
2469 {
2470 "type": "FIELD",
2471 "name": "return_type",
2472 "content": {
2473 "type": "SYMBOL",
2474 "name": "_type"
2475 }
2476 }
2477 ]
2478 },
2479 {
2480 "type": "BLANK"
2481 }
2482 ]
2483 },
2484 {
2485 "type": "CHOICE",
2486 "members": [
2487 {
2488 "type": "SYMBOL",
2489 "name": "where_clause"
2490 },
2491 {
2492 "type": "BLANK"
2493 }
2494 ]
2495 },
2496 {
2497 "type": "STRING",
2498 "value": ";"
2499 }
2500 ]
2501 },
2502 "function_modifiers": {
2503 "type": "REPEAT1",
2504 "content": {
2505 "type": "CHOICE",
2506 "members": [
2507 {
2508 "type": "STRING",
2509 "value": "async"
2510 },
2511 {
2512 "type": "STRING",
2513 "value": "default"
2514 },
2515 {
2516 "type": "STRING",
2517 "value": "const"
2518 },
2519 {
2520 "type": "STRING",
2521 "value": "unsafe"
2522 },
2523 {
2524 "type": "SYMBOL",
2525 "name": "extern_modifier"
2526 }
2527 ]
2528 }
2529 },
2530 "where_clause": {
2531 "type": "PREC_RIGHT",
2532 "value": 0,
2533 "content": {
2534 "type": "SEQ",
2535 "members": [
2536 {
2537 "type": "STRING",
2538 "value": "where"
2539 },
2540 {
2541 "type": "SEQ",
2542 "members": [
2543 {
2544 "type": "SYMBOL",
2545 "name": "where_predicate"
2546 },
2547 {
2548 "type": "REPEAT",
2549 "content": {
2550 "type": "SEQ",
2551 "members": [
2552 {
2553 "type": "STRING",
2554 "value": ","
2555 },
2556 {
2557 "type": "SYMBOL",
2558 "name": "where_predicate"
2559 }
2560 ]
2561 }
2562 }
2563 ]
2564 },
2565 {
2566 "type": "CHOICE",
2567 "members": [
2568 {
2569 "type": "STRING",
2570 "value": ","
2571 },
2572 {
2573 "type": "BLANK"
2574 }
2575 ]
2576 }
2577 ]
2578 }
2579 },
2580 "where_predicate": {
2581 "type": "SEQ",
2582 "members": [
2583 {
2584 "type": "FIELD",
2585 "name": "left",
2586 "content": {
2587 "type": "CHOICE",
2588 "members": [
2589 {
2590 "type": "SYMBOL",
2591 "name": "lifetime"
2592 },
2593 {
2594 "type": "SYMBOL",
2595 "name": "_type_identifier"
2596 },
2597 {
2598 "type": "SYMBOL",
2599 "name": "scoped_type_identifier"
2600 },
2601 {
2602 "type": "SYMBOL",
2603 "name": "generic_type"
2604 },
2605 {
2606 "type": "SYMBOL",
2607 "name": "reference_type"
2608 },
2609 {
2610 "type": "SYMBOL",
2611 "name": "pointer_type"
2612 },
2613 {
2614 "type": "SYMBOL",
2615 "name": "tuple_type"
2616 },
2617 {
2618 "type": "SYMBOL",
2619 "name": "array_type"
2620 },
2621 {
2622 "type": "SYMBOL",
2623 "name": "higher_ranked_trait_bound"
2624 },
2625 {
2626 "type": "ALIAS",
2627 "content": {
2628 "type": "CHOICE",
2629 "members": [
2630 {
2631 "type": "STRING",
2632 "value": "u8"
2633 },
2634 {
2635 "type": "STRING",
2636 "value": "i8"
2637 },
2638 {
2639 "type": "STRING",
2640 "value": "u16"
2641 },
2642 {
2643 "type": "STRING",
2644 "value": "i16"
2645 },
2646 {
2647 "type": "STRING",
2648 "value": "u32"
2649 },
2650 {
2651 "type": "STRING",
2652 "value": "i32"
2653 },
2654 {
2655 "type": "STRING",
2656 "value": "u64"
2657 },
2658 {
2659 "type": "STRING",
2660 "value": "i64"
2661 },
2662 {
2663 "type": "STRING",
2664 "value": "u128"
2665 },
2666 {
2667 "type": "STRING",
2668 "value": "i128"
2669 },
2670 {
2671 "type": "STRING",
2672 "value": "isize"
2673 },
2674 {
2675 "type": "STRING",
2676 "value": "usize"
2677 },
2678 {
2679 "type": "STRING",
2680 "value": "f32"
2681 },
2682 {
2683 "type": "STRING",
2684 "value": "f64"
2685 },
2686 {
2687 "type": "STRING",
2688 "value": "bool"
2689 },
2690 {
2691 "type": "STRING",
2692 "value": "str"
2693 },
2694 {
2695 "type": "STRING",
2696 "value": "char"
2697 }
2698 ]
2699 },
2700 "named": true,
2701 "value": "primitive_type"
2702 }
2703 ]
2704 }
2705 },
2706 {
2707 "type": "FIELD",
2708 "name": "bounds",
2709 "content": {
2710 "type": "SYMBOL",
2711 "name": "trait_bounds"
2712 }
2713 }
2714 ]
2715 },
2716 "impl_item": {
2717 "type": "SEQ",
2718 "members": [
2719 {
2720 "type": "CHOICE",
2721 "members": [
2722 {
2723 "type": "STRING",
2724 "value": "unsafe"
2725 },
2726 {
2727 "type": "BLANK"
2728 }
2729 ]
2730 },
2731 {
2732 "type": "STRING",
2733 "value": "impl"
2734 },
2735 {
2736 "type": "FIELD",
2737 "name": "type_parameters",
2738 "content": {
2739 "type": "CHOICE",
2740 "members": [
2741 {
2742 "type": "SYMBOL",
2743 "name": "type_parameters"
2744 },
2745 {
2746 "type": "BLANK"
2747 }
2748 ]
2749 }
2750 },
2751 {
2752 "type": "CHOICE",
2753 "members": [
2754 {
2755 "type": "SEQ",
2756 "members": [
2757 {
2758 "type": "CHOICE",
2759 "members": [
2760 {
2761 "type": "STRING",
2762 "value": "!"
2763 },
2764 {
2765 "type": "BLANK"
2766 }
2767 ]
2768 },
2769 {
2770 "type": "FIELD",
2771 "name": "trait",
2772 "content": {
2773 "type": "CHOICE",
2774 "members": [
2775 {
2776 "type": "SYMBOL",
2777 "name": "_type_identifier"
2778 },
2779 {
2780 "type": "SYMBOL",
2781 "name": "scoped_type_identifier"
2782 },
2783 {
2784 "type": "SYMBOL",
2785 "name": "generic_type"
2786 }
2787 ]
2788 }
2789 },
2790 {
2791 "type": "STRING",
2792 "value": "for"
2793 }
2794 ]
2795 },
2796 {
2797 "type": "BLANK"
2798 }
2799 ]
2800 },
2801 {
2802 "type": "FIELD",
2803 "name": "type",
2804 "content": {
2805 "type": "SYMBOL",
2806 "name": "_type"
2807 }
2808 },
2809 {
2810 "type": "CHOICE",
2811 "members": [
2812 {
2813 "type": "SYMBOL",
2814 "name": "where_clause"
2815 },
2816 {
2817 "type": "BLANK"
2818 }
2819 ]
2820 },
2821 {
2822 "type": "CHOICE",
2823 "members": [
2824 {
2825 "type": "FIELD",
2826 "name": "body",
2827 "content": {
2828 "type": "SYMBOL",
2829 "name": "declaration_list"
2830 }
2831 },
2832 {
2833 "type": "STRING",
2834 "value": ";"
2835 }
2836 ]
2837 }
2838 ]
2839 },
2840 "trait_item": {
2841 "type": "SEQ",
2842 "members": [
2843 {
2844 "type": "CHOICE",
2845 "members": [
2846 {
2847 "type": "SYMBOL",
2848 "name": "visibility_modifier"
2849 },
2850 {
2851 "type": "BLANK"
2852 }
2853 ]
2854 },
2855 {
2856 "type": "CHOICE",
2857 "members": [
2858 {
2859 "type": "STRING",
2860 "value": "unsafe"
2861 },
2862 {
2863 "type": "BLANK"
2864 }
2865 ]
2866 },
2867 {
2868 "type": "STRING",
2869 "value": "trait"
2870 },
2871 {
2872 "type": "FIELD",
2873 "name": "name",
2874 "content": {
2875 "type": "SYMBOL",
2876 "name": "_type_identifier"
2877 }
2878 },
2879 {
2880 "type": "FIELD",
2881 "name": "type_parameters",
2882 "content": {
2883 "type": "CHOICE",
2884 "members": [
2885 {
2886 "type": "SYMBOL",
2887 "name": "type_parameters"
2888 },
2889 {
2890 "type": "BLANK"
2891 }
2892 ]
2893 }
2894 },
2895 {
2896 "type": "FIELD",
2897 "name": "bounds",
2898 "content": {
2899 "type": "CHOICE",
2900 "members": [
2901 {
2902 "type": "SYMBOL",
2903 "name": "trait_bounds"
2904 },
2905 {
2906 "type": "BLANK"
2907 }
2908 ]
2909 }
2910 },
2911 {
2912 "type": "CHOICE",
2913 "members": [
2914 {
2915 "type": "SYMBOL",
2916 "name": "where_clause"
2917 },
2918 {
2919 "type": "BLANK"
2920 }
2921 ]
2922 },
2923 {
2924 "type": "FIELD",
2925 "name": "body",
2926 "content": {
2927 "type": "SYMBOL",
2928 "name": "declaration_list"
2929 }
2930 }
2931 ]
2932 },
2933 "associated_type": {
2934 "type": "SEQ",
2935 "members": [
2936 {
2937 "type": "STRING",
2938 "value": "type"
2939 },
2940 {
2941 "type": "FIELD",
2942 "name": "name",
2943 "content": {
2944 "type": "SYMBOL",
2945 "name": "_type_identifier"
2946 }
2947 },
2948 {
2949 "type": "FIELD",
2950 "name": "type_parameters",
2951 "content": {
2952 "type": "CHOICE",
2953 "members": [
2954 {
2955 "type": "SYMBOL",
2956 "name": "type_parameters"
2957 },
2958 {
2959 "type": "BLANK"
2960 }
2961 ]
2962 }
2963 },
2964 {
2965 "type": "FIELD",
2966 "name": "bounds",
2967 "content": {
2968 "type": "CHOICE",
2969 "members": [
2970 {
2971 "type": "SYMBOL",
2972 "name": "trait_bounds"
2973 },
2974 {
2975 "type": "BLANK"
2976 }
2977 ]
2978 }
2979 },
2980 {
2981 "type": "CHOICE",
2982 "members": [
2983 {
2984 "type": "SYMBOL",
2985 "name": "where_clause"
2986 },
2987 {
2988 "type": "BLANK"
2989 }
2990 ]
2991 },
2992 {
2993 "type": "STRING",
2994 "value": ";"
2995 }
2996 ]
2997 },
2998 "trait_bounds": {
2999 "type": "SEQ",
3000 "members": [
3001 {
3002 "type": "STRING",
3003 "value": ":"
3004 },
3005 {
3006 "type": "SEQ",
3007 "members": [
3008 {
3009 "type": "CHOICE",
3010 "members": [
3011 {
3012 "type": "SYMBOL",
3013 "name": "_type"
3014 },
3015 {
3016 "type": "SYMBOL",
3017 "name": "lifetime"
3018 },
3019 {
3020 "type": "SYMBOL",
3021 "name": "higher_ranked_trait_bound"
3022 }
3023 ]
3024 },
3025 {
3026 "type": "REPEAT",
3027 "content": {
3028 "type": "SEQ",
3029 "members": [
3030 {
3031 "type": "STRING",
3032 "value": "+"
3033 },
3034 {
3035 "type": "CHOICE",
3036 "members": [
3037 {
3038 "type": "SYMBOL",
3039 "name": "_type"
3040 },
3041 {
3042 "type": "SYMBOL",
3043 "name": "lifetime"
3044 },
3045 {
3046 "type": "SYMBOL",
3047 "name": "higher_ranked_trait_bound"
3048 }
3049 ]
3050 }
3051 ]
3052 }
3053 }
3054 ]
3055 }
3056 ]
3057 },
3058 "higher_ranked_trait_bound": {
3059 "type": "SEQ",
3060 "members": [
3061 {
3062 "type": "STRING",
3063 "value": "for"
3064 },
3065 {
3066 "type": "FIELD",
3067 "name": "type_parameters",
3068 "content": {
3069 "type": "SYMBOL",
3070 "name": "type_parameters"
3071 }
3072 },
3073 {
3074 "type": "FIELD",
3075 "name": "type",
3076 "content": {
3077 "type": "SYMBOL",
3078 "name": "_type"
3079 }
3080 }
3081 ]
3082 },
3083 "removed_trait_bound": {
3084 "type": "SEQ",
3085 "members": [
3086 {
3087 "type": "STRING",
3088 "value": "?"
3089 },
3090 {
3091 "type": "SYMBOL",
3092 "name": "_type"
3093 }
3094 ]
3095 },
3096 "type_parameters": {
3097 "type": "PREC",
3098 "value": 1,
3099 "content": {
3100 "type": "SEQ",
3101 "members": [
3102 {
3103 "type": "STRING",
3104 "value": "<"
3105 },
3106 {
3107 "type": "SEQ",
3108 "members": [
3109 {
3110 "type": "SEQ",
3111 "members": [
3112 {
3113 "type": "REPEAT",
3114 "content": {
3115 "type": "SYMBOL",
3116 "name": "attribute_item"
3117 }
3118 },
3119 {
3120 "type": "CHOICE",
3121 "members": [
3122 {
3123 "type": "SYMBOL",
3124 "name": "lifetime"
3125 },
3126 {
3127 "type": "SYMBOL",
3128 "name": "metavariable"
3129 },
3130 {
3131 "type": "SYMBOL",
3132 "name": "_type_identifier"
3133 },
3134 {
3135 "type": "SYMBOL",
3136 "name": "constrained_type_parameter"
3137 },
3138 {
3139 "type": "SYMBOL",
3140 "name": "optional_type_parameter"
3141 },
3142 {
3143 "type": "SYMBOL",
3144 "name": "const_parameter"
3145 }
3146 ]
3147 }
3148 ]
3149 },
3150 {
3151 "type": "REPEAT",
3152 "content": {
3153 "type": "SEQ",
3154 "members": [
3155 {
3156 "type": "STRING",
3157 "value": ","
3158 },
3159 {
3160 "type": "SEQ",
3161 "members": [
3162 {
3163 "type": "REPEAT",
3164 "content": {
3165 "type": "SYMBOL",
3166 "name": "attribute_item"
3167 }
3168 },
3169 {
3170 "type": "CHOICE",
3171 "members": [
3172 {
3173 "type": "SYMBOL",
3174 "name": "lifetime"
3175 },
3176 {
3177 "type": "SYMBOL",
3178 "name": "metavariable"
3179 },
3180 {
3181 "type": "SYMBOL",
3182 "name": "_type_identifier"
3183 },
3184 {
3185 "type": "SYMBOL",
3186 "name": "constrained_type_parameter"
3187 },
3188 {
3189 "type": "SYMBOL",
3190 "name": "optional_type_parameter"
3191 },
3192 {
3193 "type": "SYMBOL",
3194 "name": "const_parameter"
3195 }
3196 ]
3197 }
3198 ]
3199 }
3200 ]
3201 }
3202 }
3203 ]
3204 },
3205 {
3206 "type": "CHOICE",
3207 "members": [
3208 {
3209 "type": "STRING",
3210 "value": ","
3211 },
3212 {
3213 "type": "BLANK"
3214 }
3215 ]
3216 },
3217 {
3218 "type": "STRING",
3219 "value": ">"
3220 }
3221 ]
3222 }
3223 },
3224 "const_parameter": {
3225 "type": "SEQ",
3226 "members": [
3227 {
3228 "type": "STRING",
3229 "value": "const"
3230 },
3231 {
3232 "type": "FIELD",
3233 "name": "name",
3234 "content": {
3235 "type": "SYMBOL",
3236 "name": "identifier"
3237 }
3238 },
3239 {
3240 "type": "STRING",
3241 "value": ":"
3242 },
3243 {
3244 "type": "FIELD",
3245 "name": "type",
3246 "content": {
3247 "type": "SYMBOL",
3248 "name": "_type"
3249 }
3250 }
3251 ]
3252 },
3253 "constrained_type_parameter": {
3254 "type": "SEQ",
3255 "members": [
3256 {
3257 "type": "FIELD",
3258 "name": "left",
3259 "content": {
3260 "type": "CHOICE",
3261 "members": [
3262 {
3263 "type": "SYMBOL",
3264 "name": "lifetime"
3265 },
3266 {
3267 "type": "SYMBOL",
3268 "name": "_type_identifier"
3269 }
3270 ]
3271 }
3272 },
3273 {
3274 "type": "FIELD",
3275 "name": "bounds",
3276 "content": {
3277 "type": "SYMBOL",
3278 "name": "trait_bounds"
3279 }
3280 }
3281 ]
3282 },
3283 "optional_type_parameter": {
3284 "type": "SEQ",
3285 "members": [
3286 {
3287 "type": "FIELD",
3288 "name": "name",
3289 "content": {
3290 "type": "CHOICE",
3291 "members": [
3292 {
3293 "type": "SYMBOL",
3294 "name": "_type_identifier"
3295 },
3296 {
3297 "type": "SYMBOL",
3298 "name": "constrained_type_parameter"
3299 }
3300 ]
3301 }
3302 },
3303 {
3304 "type": "STRING",
3305 "value": "="
3306 },
3307 {
3308 "type": "FIELD",
3309 "name": "default_type",
3310 "content": {
3311 "type": "SYMBOL",
3312 "name": "_type"
3313 }
3314 }
3315 ]
3316 },
3317 "let_declaration": {
3318 "type": "SEQ",
3319 "members": [
3320 {
3321 "type": "STRING",
3322 "value": "let"
3323 },
3324 {
3325 "type": "CHOICE",
3326 "members": [
3327 {
3328 "type": "SYMBOL",
3329 "name": "mutable_specifier"
3330 },
3331 {
3332 "type": "BLANK"
3333 }
3334 ]
3335 },
3336 {
3337 "type": "FIELD",
3338 "name": "pattern",
3339 "content": {
3340 "type": "SYMBOL",
3341 "name": "_pattern"
3342 }
3343 },
3344 {
3345 "type": "CHOICE",
3346 "members": [
3347 {
3348 "type": "SEQ",
3349 "members": [
3350 {
3351 "type": "STRING",
3352 "value": ":"
3353 },
3354 {
3355 "type": "FIELD",
3356 "name": "type",
3357 "content": {
3358 "type": "SYMBOL",
3359 "name": "_type"
3360 }
3361 }
3362 ]
3363 },
3364 {
3365 "type": "BLANK"
3366 }
3367 ]
3368 },
3369 {
3370 "type": "CHOICE",
3371 "members": [
3372 {
3373 "type": "SEQ",
3374 "members": [
3375 {
3376 "type": "STRING",
3377 "value": "="
3378 },
3379 {
3380 "type": "FIELD",
3381 "name": "value",
3382 "content": {
3383 "type": "SYMBOL",
3384 "name": "_expression"
3385 }
3386 }
3387 ]
3388 },
3389 {
3390 "type": "BLANK"
3391 }
3392 ]
3393 },
3394 {
3395 "type": "CHOICE",
3396 "members": [
3397 {
3398 "type": "SEQ",
3399 "members": [
3400 {
3401 "type": "STRING",
3402 "value": "else"
3403 },
3404 {
3405 "type": "FIELD",
3406 "name": "alternative",
3407 "content": {
3408 "type": "SYMBOL",
3409 "name": "block"
3410 }
3411 }
3412 ]
3413 },
3414 {
3415 "type": "BLANK"
3416 }
3417 ]
3418 },
3419 {
3420 "type": "STRING",
3421 "value": ";"
3422 }
3423 ]
3424 },
3425 "use_declaration": {
3426 "type": "SEQ",
3427 "members": [
3428 {
3429 "type": "CHOICE",
3430 "members": [
3431 {
3432 "type": "SYMBOL",
3433 "name": "visibility_modifier"
3434 },
3435 {
3436 "type": "BLANK"
3437 }
3438 ]
3439 },
3440 {
3441 "type": "STRING",
3442 "value": "use"
3443 },
3444 {
3445 "type": "FIELD",
3446 "name": "argument",
3447 "content": {
3448 "type": "SYMBOL",
3449 "name": "_use_clause"
3450 }
3451 },
3452 {
3453 "type": "STRING",
3454 "value": ";"
3455 }
3456 ]
3457 },
3458 "_use_clause": {
3459 "type": "CHOICE",
3460 "members": [
3461 {
3462 "type": "SYMBOL",
3463 "name": "_path"
3464 },
3465 {
3466 "type": "SYMBOL",
3467 "name": "use_as_clause"
3468 },
3469 {
3470 "type": "SYMBOL",
3471 "name": "use_list"
3472 },
3473 {
3474 "type": "SYMBOL",
3475 "name": "scoped_use_list"
3476 },
3477 {
3478 "type": "SYMBOL",
3479 "name": "use_wildcard"
3480 }
3481 ]
3482 },
3483 "scoped_use_list": {
3484 "type": "SEQ",
3485 "members": [
3486 {
3487 "type": "FIELD",
3488 "name": "path",
3489 "content": {
3490 "type": "CHOICE",
3491 "members": [
3492 {
3493 "type": "SYMBOL",
3494 "name": "_path"
3495 },
3496 {
3497 "type": "BLANK"
3498 }
3499 ]
3500 }
3501 },
3502 {
3503 "type": "STRING",
3504 "value": "::"
3505 },
3506 {
3507 "type": "FIELD",
3508 "name": "list",
3509 "content": {
3510 "type": "SYMBOL",
3511 "name": "use_list"
3512 }
3513 }
3514 ]
3515 },
3516 "use_list": {
3517 "type": "SEQ",
3518 "members": [
3519 {
3520 "type": "STRING",
3521 "value": "{"
3522 },
3523 {
3524 "type": "CHOICE",
3525 "members": [
3526 {
3527 "type": "SEQ",
3528 "members": [
3529 {
3530 "type": "CHOICE",
3531 "members": [
3532 {
3533 "type": "SYMBOL",
3534 "name": "_use_clause"
3535 }
3536 ]
3537 },
3538 {
3539 "type": "REPEAT",
3540 "content": {
3541 "type": "SEQ",
3542 "members": [
3543 {
3544 "type": "STRING",
3545 "value": ","
3546 },
3547 {
3548 "type": "CHOICE",
3549 "members": [
3550 {
3551 "type": "SYMBOL",
3552 "name": "_use_clause"
3553 }
3554 ]
3555 }
3556 ]
3557 }
3558 }
3559 ]
3560 },
3561 {
3562 "type": "BLANK"
3563 }
3564 ]
3565 },
3566 {
3567 "type": "CHOICE",
3568 "members": [
3569 {
3570 "type": "STRING",
3571 "value": ","
3572 },
3573 {
3574 "type": "BLANK"
3575 }
3576 ]
3577 },
3578 {
3579 "type": "STRING",
3580 "value": "}"
3581 }
3582 ]
3583 },
3584 "use_as_clause": {
3585 "type": "SEQ",
3586 "members": [
3587 {
3588 "type": "FIELD",
3589 "name": "path",
3590 "content": {
3591 "type": "SYMBOL",
3592 "name": "_path"
3593 }
3594 },
3595 {
3596 "type": "STRING",
3597 "value": "as"
3598 },
3599 {
3600 "type": "FIELD",
3601 "name": "alias",
3602 "content": {
3603 "type": "SYMBOL",
3604 "name": "identifier"
3605 }
3606 }
3607 ]
3608 },
3609 "use_wildcard": {
3610 "type": "SEQ",
3611 "members": [
3612 {
3613 "type": "CHOICE",
3614 "members": [
3615 {
3616 "type": "SEQ",
3617 "members": [
3618 {
3619 "type": "SYMBOL",
3620 "name": "_path"
3621 },
3622 {
3623 "type": "STRING",
3624 "value": "::"
3625 }
3626 ]
3627 },
3628 {
3629 "type": "BLANK"
3630 }
3631 ]
3632 },
3633 {
3634 "type": "STRING",
3635 "value": "*"
3636 }
3637 ]
3638 },
3639 "parameters": {
3640 "type": "SEQ",
3641 "members": [
3642 {
3643 "type": "STRING",
3644 "value": "("
3645 },
3646 {
3647 "type": "CHOICE",
3648 "members": [
3649 {
3650 "type": "SEQ",
3651 "members": [
3652 {
3653 "type": "SEQ",
3654 "members": [
3655 {
3656 "type": "CHOICE",
3657 "members": [
3658 {
3659 "type": "SYMBOL",
3660 "name": "attribute_item"
3661 },
3662 {
3663 "type": "BLANK"
3664 }
3665 ]
3666 },
3667 {
3668 "type": "CHOICE",
3669 "members": [
3670 {
3671 "type": "SYMBOL",
3672 "name": "parameter"
3673 },
3674 {
3675 "type": "SYMBOL",
3676 "name": "self_parameter"
3677 },
3678 {
3679 "type": "SYMBOL",
3680 "name": "variadic_parameter"
3681 },
3682 {
3683 "type": "STRING",
3684 "value": "_"
3685 },
3686 {
3687 "type": "SYMBOL",
3688 "name": "_type"
3689 }
3690 ]
3691 }
3692 ]
3693 },
3694 {
3695 "type": "REPEAT",
3696 "content": {
3697 "type": "SEQ",
3698 "members": [
3699 {
3700 "type": "STRING",
3701 "value": ","
3702 },
3703 {
3704 "type": "SEQ",
3705 "members": [
3706 {
3707 "type": "CHOICE",
3708 "members": [
3709 {
3710 "type": "SYMBOL",
3711 "name": "attribute_item"
3712 },
3713 {
3714 "type": "BLANK"
3715 }
3716 ]
3717 },
3718 {
3719 "type": "CHOICE",
3720 "members": [
3721 {
3722 "type": "SYMBOL",
3723 "name": "parameter"
3724 },
3725 {
3726 "type": "SYMBOL",
3727 "name": "self_parameter"
3728 },
3729 {
3730 "type": "SYMBOL",
3731 "name": "variadic_parameter"
3732 },
3733 {
3734 "type": "STRING",
3735 "value": "_"
3736 },
3737 {
3738 "type": "SYMBOL",
3739 "name": "_type"
3740 }
3741 ]
3742 }
3743 ]
3744 }
3745 ]
3746 }
3747 }
3748 ]
3749 },
3750 {
3751 "type": "BLANK"
3752 }
3753 ]
3754 },
3755 {
3756 "type": "CHOICE",
3757 "members": [
3758 {
3759 "type": "STRING",
3760 "value": ","
3761 },
3762 {
3763 "type": "BLANK"
3764 }
3765 ]
3766 },
3767 {
3768 "type": "STRING",
3769 "value": ")"
3770 }
3771 ]
3772 },
3773 "self_parameter": {
3774 "type": "SEQ",
3775 "members": [
3776 {
3777 "type": "CHOICE",
3778 "members": [
3779 {
3780 "type": "STRING",
3781 "value": "&"
3782 },
3783 {
3784 "type": "BLANK"
3785 }
3786 ]
3787 },
3788 {
3789 "type": "CHOICE",
3790 "members": [
3791 {
3792 "type": "SYMBOL",
3793 "name": "lifetime"
3794 },
3795 {
3796 "type": "BLANK"
3797 }
3798 ]
3799 },
3800 {
3801 "type": "CHOICE",
3802 "members": [
3803 {
3804 "type": "SYMBOL",
3805 "name": "mutable_specifier"
3806 },
3807 {
3808 "type": "BLANK"
3809 }
3810 ]
3811 },
3812 {
3813 "type": "SYMBOL",
3814 "name": "self"
3815 }
3816 ]
3817 },
3818 "variadic_parameter": {
3819 "type": "SEQ",
3820 "members": [
3821 {
3822 "type": "CHOICE",
3823 "members": [
3824 {
3825 "type": "SYMBOL",
3826 "name": "mutable_specifier"
3827 },
3828 {
3829 "type": "BLANK"
3830 }
3831 ]
3832 },
3833 {
3834 "type": "CHOICE",
3835 "members": [
3836 {
3837 "type": "SEQ",
3838 "members": [
3839 {
3840 "type": "FIELD",
3841 "name": "pattern",
3842 "content": {
3843 "type": "SYMBOL",
3844 "name": "_pattern"
3845 }
3846 },
3847 {
3848 "type": "STRING",
3849 "value": ":"
3850 }
3851 ]
3852 },
3853 {
3854 "type": "BLANK"
3855 }
3856 ]
3857 },
3858 {
3859 "type": "STRING",
3860 "value": "..."
3861 }
3862 ]
3863 },
3864 "parameter": {
3865 "type": "SEQ",
3866 "members": [
3867 {
3868 "type": "CHOICE",
3869 "members": [
3870 {
3871 "type": "SYMBOL",
3872 "name": "mutable_specifier"
3873 },
3874 {
3875 "type": "BLANK"
3876 }
3877 ]
3878 },
3879 {
3880 "type": "FIELD",
3881 "name": "pattern",
3882 "content": {
3883 "type": "CHOICE",
3884 "members": [
3885 {
3886 "type": "SYMBOL",
3887 "name": "_pattern"
3888 },
3889 {
3890 "type": "SYMBOL",
3891 "name": "self"
3892 }
3893 ]
3894 }
3895 },
3896 {
3897 "type": "STRING",
3898 "value": ":"
3899 },
3900 {
3901 "type": "FIELD",
3902 "name": "type",
3903 "content": {
3904 "type": "SYMBOL",
3905 "name": "_type"
3906 }
3907 }
3908 ]
3909 },
3910 "extern_modifier": {
3911 "type": "SEQ",
3912 "members": [
3913 {
3914 "type": "STRING",
3915 "value": "extern"
3916 },
3917 {
3918 "type": "CHOICE",
3919 "members": [
3920 {
3921 "type": "SYMBOL",
3922 "name": "string_literal"
3923 },
3924 {
3925 "type": "BLANK"
3926 }
3927 ]
3928 }
3929 ]
3930 },
3931 "visibility_modifier": {
3932 "type": "CHOICE",
3933 "members": [
3934 {
3935 "type": "SYMBOL",
3936 "name": "crate"
3937 },
3938 {
3939 "type": "SEQ",
3940 "members": [
3941 {
3942 "type": "STRING",
3943 "value": "pub"
3944 },
3945 {
3946 "type": "CHOICE",
3947 "members": [
3948 {
3949 "type": "SEQ",
3950 "members": [
3951 {
3952 "type": "STRING",
3953 "value": "("
3954 },
3955 {
3956 "type": "CHOICE",
3957 "members": [
3958 {
3959 "type": "SYMBOL",
3960 "name": "self"
3961 },
3962 {
3963 "type": "SYMBOL",
3964 "name": "super"
3965 },
3966 {
3967 "type": "SYMBOL",
3968 "name": "crate"
3969 },
3970 {
3971 "type": "SEQ",
3972 "members": [
3973 {
3974 "type": "STRING",
3975 "value": "in"
3976 },
3977 {
3978 "type": "SYMBOL",
3979 "name": "_path"
3980 }
3981 ]
3982 }
3983 ]
3984 },
3985 {
3986 "type": "STRING",
3987 "value": ")"
3988 }
3989 ]
3990 },
3991 {
3992 "type": "BLANK"
3993 }
3994 ]
3995 }
3996 ]
3997 }
3998 ]
3999 },
4000 "_type": {
4001 "type": "CHOICE",
4002 "members": [
4003 {
4004 "type": "SYMBOL",
4005 "name": "abstract_type"
4006 },
4007 {
4008 "type": "SYMBOL",
4009 "name": "reference_type"
4010 },
4011 {
4012 "type": "SYMBOL",
4013 "name": "metavariable"
4014 },
4015 {
4016 "type": "SYMBOL",
4017 "name": "pointer_type"
4018 },
4019 {
4020 "type": "SYMBOL",
4021 "name": "generic_type"
4022 },
4023 {
4024 "type": "SYMBOL",
4025 "name": "scoped_type_identifier"
4026 },
4027 {
4028 "type": "SYMBOL",
4029 "name": "tuple_type"
4030 },
4031 {
4032 "type": "SYMBOL",
4033 "name": "unit_type"
4034 },
4035 {
4036 "type": "SYMBOL",
4037 "name": "array_type"
4038 },
4039 {
4040 "type": "SYMBOL",
4041 "name": "function_type"
4042 },
4043 {
4044 "type": "SYMBOL",
4045 "name": "_type_identifier"
4046 },
4047 {
4048 "type": "SYMBOL",
4049 "name": "macro_invocation"
4050 },
4051 {
4052 "type": "SYMBOL",
4053 "name": "never_type"
4054 },
4055 {
4056 "type": "SYMBOL",
4057 "name": "dynamic_type"
4058 },
4059 {
4060 "type": "SYMBOL",
4061 "name": "bounded_type"
4062 },
4063 {
4064 "type": "SYMBOL",
4065 "name": "removed_trait_bound"
4066 },
4067 {
4068 "type": "ALIAS",
4069 "content": {
4070 "type": "CHOICE",
4071 "members": [
4072 {
4073 "type": "STRING",
4074 "value": "u8"
4075 },
4076 {
4077 "type": "STRING",
4078 "value": "i8"
4079 },
4080 {
4081 "type": "STRING",
4082 "value": "u16"
4083 },
4084 {
4085 "type": "STRING",
4086 "value": "i16"
4087 },
4088 {
4089 "type": "STRING",
4090 "value": "u32"
4091 },
4092 {
4093 "type": "STRING",
4094 "value": "i32"
4095 },
4096 {
4097 "type": "STRING",
4098 "value": "u64"
4099 },
4100 {
4101 "type": "STRING",
4102 "value": "i64"
4103 },
4104 {
4105 "type": "STRING",
4106 "value": "u128"
4107 },
4108 {
4109 "type": "STRING",
4110 "value": "i128"
4111 },
4112 {
4113 "type": "STRING",
4114 "value": "isize"
4115 },
4116 {
4117 "type": "STRING",
4118 "value": "usize"
4119 },
4120 {
4121 "type": "STRING",
4122 "value": "f32"
4123 },
4124 {
4125 "type": "STRING",
4126 "value": "f64"
4127 },
4128 {
4129 "type": "STRING",
4130 "value": "bool"
4131 },
4132 {
4133 "type": "STRING",
4134 "value": "str"
4135 },
4136 {
4137 "type": "STRING",
4138 "value": "char"
4139 }
4140 ]
4141 },
4142 "named": true,
4143 "value": "primitive_type"
4144 }
4145 ]
4146 },
4147 "bracketed_type": {
4148 "type": "SEQ",
4149 "members": [
4150 {
4151 "type": "STRING",
4152 "value": "<"
4153 },
4154 {
4155 "type": "CHOICE",
4156 "members": [
4157 {
4158 "type": "SYMBOL",
4159 "name": "_type"
4160 },
4161 {
4162 "type": "SYMBOL",
4163 "name": "qualified_type"
4164 }
4165 ]
4166 },
4167 {
4168 "type": "STRING",
4169 "value": ">"
4170 }
4171 ]
4172 },
4173 "qualified_type": {
4174 "type": "SEQ",
4175 "members": [
4176 {
4177 "type": "FIELD",
4178 "name": "type",
4179 "content": {
4180 "type": "SYMBOL",
4181 "name": "_type"
4182 }
4183 },
4184 {
4185 "type": "STRING",
4186 "value": "as"
4187 },
4188 {
4189 "type": "FIELD",
4190 "name": "alias",
4191 "content": {
4192 "type": "SYMBOL",
4193 "name": "_type"
4194 }
4195 }
4196 ]
4197 },
4198 "lifetime": {
4199 "type": "PREC",
4200 "value": 1,
4201 "content": {
4202 "type": "SEQ",
4203 "members": [
4204 {
4205 "type": "STRING",
4206 "value": "'"
4207 },
4208 {
4209 "type": "SYMBOL",
4210 "name": "identifier"
4211 }
4212 ]
4213 }
4214 },
4215 "array_type": {
4216 "type": "SEQ",
4217 "members": [
4218 {
4219 "type": "STRING",
4220 "value": "["
4221 },
4222 {
4223 "type": "FIELD",
4224 "name": "element",
4225 "content": {
4226 "type": "SYMBOL",
4227 "name": "_type"
4228 }
4229 },
4230 {
4231 "type": "CHOICE",
4232 "members": [
4233 {
4234 "type": "SEQ",
4235 "members": [
4236 {
4237 "type": "STRING",
4238 "value": ";"
4239 },
4240 {
4241 "type": "FIELD",
4242 "name": "length",
4243 "content": {
4244 "type": "SYMBOL",
4245 "name": "_expression"
4246 }
4247 }
4248 ]
4249 },
4250 {
4251 "type": "BLANK"
4252 }
4253 ]
4254 },
4255 {
4256 "type": "STRING",
4257 "value": "]"
4258 }
4259 ]
4260 },
4261 "for_lifetimes": {
4262 "type": "SEQ",
4263 "members": [
4264 {
4265 "type": "STRING",
4266 "value": "for"
4267 },
4268 {
4269 "type": "STRING",
4270 "value": "<"
4271 },
4272 {
4273 "type": "SEQ",
4274 "members": [
4275 {
4276 "type": "SYMBOL",
4277 "name": "lifetime"
4278 },
4279 {
4280 "type": "REPEAT",
4281 "content": {
4282 "type": "SEQ",
4283 "members": [
4284 {
4285 "type": "STRING",
4286 "value": ","
4287 },
4288 {
4289 "type": "SYMBOL",
4290 "name": "lifetime"
4291 }
4292 ]
4293 }
4294 }
4295 ]
4296 },
4297 {
4298 "type": "CHOICE",
4299 "members": [
4300 {
4301 "type": "STRING",
4302 "value": ","
4303 },
4304 {
4305 "type": "BLANK"
4306 }
4307 ]
4308 },
4309 {
4310 "type": "STRING",
4311 "value": ">"
4312 }
4313 ]
4314 },
4315 "function_type": {
4316 "type": "SEQ",
4317 "members": [
4318 {
4319 "type": "CHOICE",
4320 "members": [
4321 {
4322 "type": "SYMBOL",
4323 "name": "for_lifetimes"
4324 },
4325 {
4326 "type": "BLANK"
4327 }
4328 ]
4329 },
4330 {
4331 "type": "PREC",
4332 "value": 15,
4333 "content": {
4334 "type": "SEQ",
4335 "members": [
4336 {
4337 "type": "CHOICE",
4338 "members": [
4339 {
4340 "type": "FIELD",
4341 "name": "trait",
4342 "content": {
4343 "type": "CHOICE",
4344 "members": [
4345 {
4346 "type": "SYMBOL",
4347 "name": "_type_identifier"
4348 },
4349 {
4350 "type": "SYMBOL",
4351 "name": "scoped_type_identifier"
4352 }
4353 ]
4354 }
4355 },
4356 {
4357 "type": "SEQ",
4358 "members": [
4359 {
4360 "type": "CHOICE",
4361 "members": [
4362 {
4363 "type": "SYMBOL",
4364 "name": "function_modifiers"
4365 },
4366 {
4367 "type": "BLANK"
4368 }
4369 ]
4370 },
4371 {
4372 "type": "STRING",
4373 "value": "fn"
4374 }
4375 ]
4376 }
4377 ]
4378 },
4379 {
4380 "type": "FIELD",
4381 "name": "parameters",
4382 "content": {
4383 "type": "SYMBOL",
4384 "name": "parameters"
4385 }
4386 }
4387 ]
4388 }
4389 },
4390 {
4391 "type": "CHOICE",
4392 "members": [
4393 {
4394 "type": "SEQ",
4395 "members": [
4396 {
4397 "type": "STRING",
4398 "value": "->"
4399 },
4400 {
4401 "type": "FIELD",
4402 "name": "return_type",
4403 "content": {
4404 "type": "SYMBOL",
4405 "name": "_type"
4406 }
4407 }
4408 ]
4409 },
4410 {
4411 "type": "BLANK"
4412 }
4413 ]
4414 }
4415 ]
4416 },
4417 "tuple_type": {
4418 "type": "SEQ",
4419 "members": [
4420 {
4421 "type": "STRING",
4422 "value": "("
4423 },
4424 {
4425 "type": "SEQ",
4426 "members": [
4427 {
4428 "type": "SYMBOL",
4429 "name": "_type"
4430 },
4431 {
4432 "type": "REPEAT",
4433 "content": {
4434 "type": "SEQ",
4435 "members": [
4436 {
4437 "type": "STRING",
4438 "value": ","
4439 },
4440 {
4441 "type": "SYMBOL",
4442 "name": "_type"
4443 }
4444 ]
4445 }
4446 }
4447 ]
4448 },
4449 {
4450 "type": "CHOICE",
4451 "members": [
4452 {
4453 "type": "STRING",
4454 "value": ","
4455 },
4456 {
4457 "type": "BLANK"
4458 }
4459 ]
4460 },
4461 {
4462 "type": "STRING",
4463 "value": ")"
4464 }
4465 ]
4466 },
4467 "unit_type": {
4468 "type": "SEQ",
4469 "members": [
4470 {
4471 "type": "STRING",
4472 "value": "("
4473 },
4474 {
4475 "type": "STRING",
4476 "value": ")"
4477 }
4478 ]
4479 },
4480 "generic_function": {
4481 "type": "PREC",
4482 "value": 1,
4483 "content": {
4484 "type": "SEQ",
4485 "members": [
4486 {
4487 "type": "FIELD",
4488 "name": "function",
4489 "content": {
4490 "type": "CHOICE",
4491 "members": [
4492 {
4493 "type": "SYMBOL",
4494 "name": "identifier"
4495 },
4496 {
4497 "type": "SYMBOL",
4498 "name": "scoped_identifier"
4499 },
4500 {
4501 "type": "SYMBOL",
4502 "name": "field_expression"
4503 }
4504 ]
4505 }
4506 },
4507 {
4508 "type": "STRING",
4509 "value": "::"
4510 },
4511 {
4512 "type": "FIELD",
4513 "name": "type_arguments",
4514 "content": {
4515 "type": "SYMBOL",
4516 "name": "type_arguments"
4517 }
4518 }
4519 ]
4520 }
4521 },
4522 "generic_type": {
4523 "type": "PREC",
4524 "value": 1,
4525 "content": {
4526 "type": "SEQ",
4527 "members": [
4528 {
4529 "type": "FIELD",
4530 "name": "type",
4531 "content": {
4532 "type": "CHOICE",
4533 "members": [
4534 {
4535 "type": "SYMBOL",
4536 "name": "_type_identifier"
4537 },
4538 {
4539 "type": "SYMBOL",
4540 "name": "_reserved_identifier"
4541 },
4542 {
4543 "type": "SYMBOL",
4544 "name": "scoped_type_identifier"
4545 }
4546 ]
4547 }
4548 },
4549 {
4550 "type": "FIELD",
4551 "name": "type_arguments",
4552 "content": {
4553 "type": "SYMBOL",
4554 "name": "type_arguments"
4555 }
4556 }
4557 ]
4558 }
4559 },
4560 "generic_type_with_turbofish": {
4561 "type": "SEQ",
4562 "members": [
4563 {
4564 "type": "FIELD",
4565 "name": "type",
4566 "content": {
4567 "type": "CHOICE",
4568 "members": [
4569 {
4570 "type": "SYMBOL",
4571 "name": "_type_identifier"
4572 },
4573 {
4574 "type": "SYMBOL",
4575 "name": "scoped_identifier"
4576 }
4577 ]
4578 }
4579 },
4580 {
4581 "type": "STRING",
4582 "value": "::"
4583 },
4584 {
4585 "type": "FIELD",
4586 "name": "type_arguments",
4587 "content": {
4588 "type": "SYMBOL",
4589 "name": "type_arguments"
4590 }
4591 }
4592 ]
4593 },
4594 "bounded_type": {
4595 "type": "PREC_LEFT",
4596 "value": -1,
4597 "content": {
4598 "type": "CHOICE",
4599 "members": [
4600 {
4601 "type": "SEQ",
4602 "members": [
4603 {
4604 "type": "SYMBOL",
4605 "name": "lifetime"
4606 },
4607 {
4608 "type": "STRING",
4609 "value": "+"
4610 },
4611 {
4612 "type": "SYMBOL",
4613 "name": "_type"
4614 }
4615 ]
4616 },
4617 {
4618 "type": "SEQ",
4619 "members": [
4620 {
4621 "type": "SYMBOL",
4622 "name": "_type"
4623 },
4624 {
4625 "type": "STRING",
4626 "value": "+"
4627 },
4628 {
4629 "type": "SYMBOL",
4630 "name": "_type"
4631 }
4632 ]
4633 },
4634 {
4635 "type": "SEQ",
4636 "members": [
4637 {
4638 "type": "SYMBOL",
4639 "name": "_type"
4640 },
4641 {
4642 "type": "STRING",
4643 "value": "+"
4644 },
4645 {
4646 "type": "SYMBOL",
4647 "name": "lifetime"
4648 }
4649 ]
4650 }
4651 ]
4652 }
4653 },
4654 "type_arguments": {
4655 "type": "SEQ",
4656 "members": [
4657 {
4658 "type": "TOKEN",
4659 "content": {
4660 "type": "PREC",
4661 "value": 1,
4662 "content": {
4663 "type": "STRING",
4664 "value": "<"
4665 }
4666 }
4667 },
4668 {
4669 "type": "SEQ",
4670 "members": [
4671 {
4672 "type": "SEQ",
4673 "members": [
4674 {
4675 "type": "CHOICE",
4676 "members": [
4677 {
4678 "type": "SYMBOL",
4679 "name": "_type"
4680 },
4681 {
4682 "type": "SYMBOL",
4683 "name": "type_binding"
4684 },
4685 {
4686 "type": "SYMBOL",
4687 "name": "lifetime"
4688 },
4689 {
4690 "type": "SYMBOL",
4691 "name": "_literal"
4692 },
4693 {
4694 "type": "SYMBOL",
4695 "name": "block"
4696 }
4697 ]
4698 },
4699 {
4700 "type": "CHOICE",
4701 "members": [
4702 {
4703 "type": "SYMBOL",
4704 "name": "trait_bounds"
4705 },
4706 {
4707 "type": "BLANK"
4708 }
4709 ]
4710 }
4711 ]
4712 },
4713 {
4714 "type": "REPEAT",
4715 "content": {
4716 "type": "SEQ",
4717 "members": [
4718 {
4719 "type": "STRING",
4720 "value": ","
4721 },
4722 {
4723 "type": "SEQ",
4724 "members": [
4725 {
4726 "type": "CHOICE",
4727 "members": [
4728 {
4729 "type": "SYMBOL",
4730 "name": "_type"
4731 },
4732 {
4733 "type": "SYMBOL",
4734 "name": "type_binding"
4735 },
4736 {
4737 "type": "SYMBOL",
4738 "name": "lifetime"
4739 },
4740 {
4741 "type": "SYMBOL",
4742 "name": "_literal"
4743 },
4744 {
4745 "type": "SYMBOL",
4746 "name": "block"
4747 }
4748 ]
4749 },
4750 {
4751 "type": "CHOICE",
4752 "members": [
4753 {
4754 "type": "SYMBOL",
4755 "name": "trait_bounds"
4756 },
4757 {
4758 "type": "BLANK"
4759 }
4760 ]
4761 }
4762 ]
4763 }
4764 ]
4765 }
4766 }
4767 ]
4768 },
4769 {
4770 "type": "CHOICE",
4771 "members": [
4772 {
4773 "type": "STRING",
4774 "value": ","
4775 },
4776 {
4777 "type": "BLANK"
4778 }
4779 ]
4780 },
4781 {
4782 "type": "STRING",
4783 "value": ">"
4784 }
4785 ]
4786 },
4787 "type_binding": {
4788 "type": "SEQ",
4789 "members": [
4790 {
4791 "type": "FIELD",
4792 "name": "name",
4793 "content": {
4794 "type": "SYMBOL",
4795 "name": "_type_identifier"
4796 }
4797 },
4798 {
4799 "type": "FIELD",
4800 "name": "type_arguments",
4801 "content": {
4802 "type": "CHOICE",
4803 "members": [
4804 {
4805 "type": "SYMBOL",
4806 "name": "type_arguments"
4807 },
4808 {
4809 "type": "BLANK"
4810 }
4811 ]
4812 }
4813 },
4814 {
4815 "type": "STRING",
4816 "value": "="
4817 },
4818 {
4819 "type": "FIELD",
4820 "name": "type",
4821 "content": {
4822 "type": "SYMBOL",
4823 "name": "_type"
4824 }
4825 }
4826 ]
4827 },
4828 "reference_type": {
4829 "type": "SEQ",
4830 "members": [
4831 {
4832 "type": "STRING",
4833 "value": "&"
4834 },
4835 {
4836 "type": "CHOICE",
4837 "members": [
4838 {
4839 "type": "SYMBOL",
4840 "name": "lifetime"
4841 },
4842 {
4843 "type": "BLANK"
4844 }
4845 ]
4846 },
4847 {
4848 "type": "CHOICE",
4849 "members": [
4850 {
4851 "type": "SYMBOL",
4852 "name": "mutable_specifier"
4853 },
4854 {
4855 "type": "BLANK"
4856 }
4857 ]
4858 },
4859 {
4860 "type": "FIELD",
4861 "name": "type",
4862 "content": {
4863 "type": "SYMBOL",
4864 "name": "_type"
4865 }
4866 }
4867 ]
4868 },
4869 "pointer_type": {
4870 "type": "SEQ",
4871 "members": [
4872 {
4873 "type": "STRING",
4874 "value": "*"
4875 },
4876 {
4877 "type": "CHOICE",
4878 "members": [
4879 {
4880 "type": "STRING",
4881 "value": "const"
4882 },
4883 {
4884 "type": "SYMBOL",
4885 "name": "mutable_specifier"
4886 }
4887 ]
4888 },
4889 {
4890 "type": "FIELD",
4891 "name": "type",
4892 "content": {
4893 "type": "SYMBOL",
4894 "name": "_type"
4895 }
4896 }
4897 ]
4898 },
4899 "never_type": {
4900 "type": "STRING",
4901 "value": "!"
4902 },
4903 "abstract_type": {
4904 "type": "SEQ",
4905 "members": [
4906 {
4907 "type": "STRING",
4908 "value": "impl"
4909 },
4910 {
4911 "type": "CHOICE",
4912 "members": [
4913 {
4914 "type": "SEQ",
4915 "members": [
4916 {
4917 "type": "STRING",
4918 "value": "for"
4919 },
4920 {
4921 "type": "SYMBOL",
4922 "name": "type_parameters"
4923 }
4924 ]
4925 },
4926 {
4927 "type": "BLANK"
4928 }
4929 ]
4930 },
4931 {
4932 "type": "FIELD",
4933 "name": "trait",
4934 "content": {
4935 "type": "CHOICE",
4936 "members": [
4937 {
4938 "type": "SYMBOL",
4939 "name": "_type_identifier"
4940 },
4941 {
4942 "type": "SYMBOL",
4943 "name": "scoped_type_identifier"
4944 },
4945 {
4946 "type": "SYMBOL",
4947 "name": "removed_trait_bound"
4948 },
4949 {
4950 "type": "SYMBOL",
4951 "name": "generic_type"
4952 },
4953 {
4954 "type": "SYMBOL",
4955 "name": "function_type"
4956 },
4957 {
4958 "type": "SYMBOL",
4959 "name": "tuple_type"
4960 }
4961 ]
4962 }
4963 }
4964 ]
4965 },
4966 "dynamic_type": {
4967 "type": "SEQ",
4968 "members": [
4969 {
4970 "type": "STRING",
4971 "value": "dyn"
4972 },
4973 {
4974 "type": "FIELD",
4975 "name": "trait",
4976 "content": {
4977 "type": "CHOICE",
4978 "members": [
4979 {
4980 "type": "SYMBOL",
4981 "name": "higher_ranked_trait_bound"
4982 },
4983 {
4984 "type": "SYMBOL",
4985 "name": "_type_identifier"
4986 },
4987 {
4988 "type": "SYMBOL",
4989 "name": "scoped_type_identifier"
4990 },
4991 {
4992 "type": "SYMBOL",
4993 "name": "generic_type"
4994 },
4995 {
4996 "type": "SYMBOL",
4997 "name": "function_type"
4998 }
4999 ]
5000 }
5001 }
5002 ]
5003 },
5004 "mutable_specifier": {
5005 "type": "STRING",
5006 "value": "mut"
5007 },
5008 "_expression_except_range": {
5009 "type": "CHOICE",
5010 "members": [
5011 {
5012 "type": "SYMBOL",
5013 "name": "unary_expression"
5014 },
5015 {
5016 "type": "SYMBOL",
5017 "name": "reference_expression"
5018 },
5019 {
5020 "type": "SYMBOL",
5021 "name": "try_expression"
5022 },
5023 {
5024 "type": "SYMBOL",
5025 "name": "binary_expression"
5026 },
5027 {
5028 "type": "SYMBOL",
5029 "name": "assignment_expression"
5030 },
5031 {
5032 "type": "SYMBOL",
5033 "name": "compound_assignment_expr"
5034 },
5035 {
5036 "type": "SYMBOL",
5037 "name": "type_cast_expression"
5038 },
5039 {
5040 "type": "SYMBOL",
5041 "name": "call_expression"
5042 },
5043 {
5044 "type": "SYMBOL",
5045 "name": "return_expression"
5046 },
5047 {
5048 "type": "SYMBOL",
5049 "name": "yield_expression"
5050 },
5051 {
5052 "type": "SYMBOL",
5053 "name": "_literal"
5054 },
5055 {
5056 "type": "PREC_LEFT",
5057 "value": 0,
5058 "content": {
5059 "type": "SYMBOL",
5060 "name": "identifier"
5061 }
5062 },
5063 {
5064 "type": "ALIAS",
5065 "content": {
5066 "type": "CHOICE",
5067 "members": [
5068 {
5069 "type": "STRING",
5070 "value": "u8"
5071 },
5072 {
5073 "type": "STRING",
5074 "value": "i8"
5075 },
5076 {
5077 "type": "STRING",
5078 "value": "u16"
5079 },
5080 {
5081 "type": "STRING",
5082 "value": "i16"
5083 },
5084 {
5085 "type": "STRING",
5086 "value": "u32"
5087 },
5088 {
5089 "type": "STRING",
5090 "value": "i32"
5091 },
5092 {
5093 "type": "STRING",
5094 "value": "u64"
5095 },
5096 {
5097 "type": "STRING",
5098 "value": "i64"
5099 },
5100 {
5101 "type": "STRING",
5102 "value": "u128"
5103 },
5104 {
5105 "type": "STRING",
5106 "value": "i128"
5107 },
5108 {
5109 "type": "STRING",
5110 "value": "isize"
5111 },
5112 {
5113 "type": "STRING",
5114 "value": "usize"
5115 },
5116 {
5117 "type": "STRING",
5118 "value": "f32"
5119 },
5120 {
5121 "type": "STRING",
5122 "value": "f64"
5123 },
5124 {
5125 "type": "STRING",
5126 "value": "bool"
5127 },
5128 {
5129 "type": "STRING",
5130 "value": "str"
5131 },
5132 {
5133 "type": "STRING",
5134 "value": "char"
5135 }
5136 ]
5137 },
5138 "named": true,
5139 "value": "identifier"
5140 },
5141 {
5142 "type": "PREC_LEFT",
5143 "value": 0,
5144 "content": {
5145 "type": "SYMBOL",
5146 "name": "_reserved_identifier"
5147 }
5148 },
5149 {
5150 "type": "SYMBOL",
5151 "name": "self"
5152 },
5153 {
5154 "type": "SYMBOL",
5155 "name": "scoped_identifier"
5156 },
5157 {
5158 "type": "SYMBOL",
5159 "name": "generic_function"
5160 },
5161 {
5162 "type": "SYMBOL",
5163 "name": "await_expression"
5164 },
5165 {
5166 "type": "SYMBOL",
5167 "name": "field_expression"
5168 },
5169 {
5170 "type": "SYMBOL",
5171 "name": "array_expression"
5172 },
5173 {
5174 "type": "SYMBOL",
5175 "name": "tuple_expression"
5176 },
5177 {
5178 "type": "PREC",
5179 "value": 1,
5180 "content": {
5181 "type": "SYMBOL",
5182 "name": "macro_invocation"
5183 }
5184 },
5185 {
5186 "type": "SYMBOL",
5187 "name": "unit_expression"
5188 },
5189 {
5190 "type": "SYMBOL",
5191 "name": "break_expression"
5192 },
5193 {
5194 "type": "SYMBOL",
5195 "name": "continue_expression"
5196 },
5197 {
5198 "type": "SYMBOL",
5199 "name": "index_expression"
5200 },
5201 {
5202 "type": "SYMBOL",
5203 "name": "metavariable"
5204 },
5205 {
5206 "type": "SYMBOL",
5207 "name": "closure_expression"
5208 },
5209 {
5210 "type": "SYMBOL",
5211 "name": "parenthesized_expression"
5212 },
5213 {
5214 "type": "SYMBOL",
5215 "name": "struct_expression"
5216 },
5217 {
5218 "type": "SYMBOL",
5219 "name": "_expression_ending_with_block"
5220 }
5221 ]
5222 },
5223 "_expression": {
5224 "type": "CHOICE",
5225 "members": [
5226 {
5227 "type": "SYMBOL",
5228 "name": "_expression_except_range"
5229 },
5230 {
5231 "type": "SYMBOL",
5232 "name": "range_expression"
5233 }
5234 ]
5235 },
5236 "_expression_ending_with_block": {
5237 "type": "CHOICE",
5238 "members": [
5239 {
5240 "type": "SYMBOL",
5241 "name": "unsafe_block"
5242 },
5243 {
5244 "type": "SYMBOL",
5245 "name": "async_block"
5246 },
5247 {
5248 "type": "SYMBOL",
5249 "name": "try_block"
5250 },
5251 {
5252 "type": "SYMBOL",
5253 "name": "block"
5254 },
5255 {
5256 "type": "SYMBOL",
5257 "name": "if_expression"
5258 },
5259 {
5260 "type": "SYMBOL",
5261 "name": "match_expression"
5262 },
5263 {
5264 "type": "SYMBOL",
5265 "name": "while_expression"
5266 },
5267 {
5268 "type": "SYMBOL",
5269 "name": "loop_expression"
5270 },
5271 {
5272 "type": "SYMBOL",
5273 "name": "for_expression"
5274 },
5275 {
5276 "type": "SYMBOL",
5277 "name": "const_block"
5278 }
5279 ]
5280 },
5281 "macro_invocation": {
5282 "type": "SEQ",
5283 "members": [
5284 {
5285 "type": "FIELD",
5286 "name": "macro",
5287 "content": {
5288 "type": "CHOICE",
5289 "members": [
5290 {
5291 "type": "SYMBOL",
5292 "name": "scoped_identifier"
5293 },
5294 {
5295 "type": "SYMBOL",
5296 "name": "identifier"
5297 },
5298 {
5299 "type": "SYMBOL",
5300 "name": "_reserved_identifier"
5301 }
5302 ]
5303 }
5304 },
5305 {
5306 "type": "STRING",
5307 "value": "!"
5308 },
5309 {
5310 "type": "ALIAS",
5311 "content": {
5312 "type": "SYMBOL",
5313 "name": "delim_token_tree"
5314 },
5315 "named": true,
5316 "value": "token_tree"
5317 }
5318 ]
5319 },
5320 "delim_token_tree": {
5321 "type": "CHOICE",
5322 "members": [
5323 {
5324 "type": "SEQ",
5325 "members": [
5326 {
5327 "type": "STRING",
5328 "value": "("
5329 },
5330 {
5331 "type": "REPEAT",
5332 "content": {
5333 "type": "SYMBOL",
5334 "name": "_delim_tokens"
5335 }
5336 },
5337 {
5338 "type": "STRING",
5339 "value": ")"
5340 }
5341 ]
5342 },
5343 {
5344 "type": "SEQ",
5345 "members": [
5346 {
5347 "type": "STRING",
5348 "value": "["
5349 },
5350 {
5351 "type": "REPEAT",
5352 "content": {
5353 "type": "SYMBOL",
5354 "name": "_delim_tokens"
5355 }
5356 },
5357 {
5358 "type": "STRING",
5359 "value": "]"
5360 }
5361 ]
5362 },
5363 {
5364 "type": "SEQ",
5365 "members": [
5366 {
5367 "type": "STRING",
5368 "value": "{"
5369 },
5370 {
5371 "type": "REPEAT",
5372 "content": {
5373 "type": "SYMBOL",
5374 "name": "_delim_tokens"
5375 }
5376 },
5377 {
5378 "type": "STRING",
5379 "value": "}"
5380 }
5381 ]
5382 }
5383 ]
5384 },
5385 "_delim_tokens": {
5386 "type": "CHOICE",
5387 "members": [
5388 {
5389 "type": "SYMBOL",
5390 "name": "_non_delim_token"
5391 },
5392 {
5393 "type": "ALIAS",
5394 "content": {
5395 "type": "SYMBOL",
5396 "name": "delim_token_tree"
5397 },
5398 "named": true,
5399 "value": "token_tree"
5400 }
5401 ]
5402 },
5403 "_non_delim_token": {
5404 "type": "CHOICE",
5405 "members": [
5406 {
5407 "type": "SYMBOL",
5408 "name": "_non_special_token"
5409 },
5410 {
5411 "type": "STRING",
5412 "value": "$"
5413 }
5414 ]
5415 },
5416 "scoped_identifier": {
5417 "type": "SEQ",
5418 "members": [
5419 {
5420 "type": "FIELD",
5421 "name": "path",
5422 "content": {
5423 "type": "CHOICE",
5424 "members": [
5425 {
5426 "type": "CHOICE",
5427 "members": [
5428 {
5429 "type": "SYMBOL",
5430 "name": "_path"
5431 },
5432 {
5433 "type": "SYMBOL",
5434 "name": "bracketed_type"
5435 },
5436 {
5437 "type": "ALIAS",
5438 "content": {
5439 "type": "SYMBOL",
5440 "name": "generic_type_with_turbofish"
5441 },
5442 "named": true,
5443 "value": "generic_type"
5444 }
5445 ]
5446 },
5447 {
5448 "type": "BLANK"
5449 }
5450 ]
5451 }
5452 },
5453 {
5454 "type": "STRING",
5455 "value": "::"
5456 },
5457 {
5458 "type": "FIELD",
5459 "name": "name",
5460 "content": {
5461 "type": "CHOICE",
5462 "members": [
5463 {
5464 "type": "SYMBOL",
5465 "name": "identifier"
5466 },
5467 {
5468 "type": "SYMBOL",
5469 "name": "super"
5470 }
5471 ]
5472 }
5473 }
5474 ]
5475 },
5476 "scoped_type_identifier_in_expression_position": {
5477 "type": "PREC",
5478 "value": -2,
5479 "content": {
5480 "type": "SEQ",
5481 "members": [
5482 {
5483 "type": "FIELD",
5484 "name": "path",
5485 "content": {
5486 "type": "CHOICE",
5487 "members": [
5488 {
5489 "type": "CHOICE",
5490 "members": [
5491 {
5492 "type": "SYMBOL",
5493 "name": "_path"
5494 },
5495 {
5496 "type": "ALIAS",
5497 "content": {
5498 "type": "SYMBOL",
5499 "name": "generic_type_with_turbofish"
5500 },
5501 "named": true,
5502 "value": "generic_type"
5503 }
5504 ]
5505 },
5506 {
5507 "type": "BLANK"
5508 }
5509 ]
5510 }
5511 },
5512 {
5513 "type": "STRING",
5514 "value": "::"
5515 },
5516 {
5517 "type": "FIELD",
5518 "name": "name",
5519 "content": {
5520 "type": "SYMBOL",
5521 "name": "_type_identifier"
5522 }
5523 }
5524 ]
5525 }
5526 },
5527 "scoped_type_identifier": {
5528 "type": "SEQ",
5529 "members": [
5530 {
5531 "type": "FIELD",
5532 "name": "path",
5533 "content": {
5534 "type": "CHOICE",
5535 "members": [
5536 {
5537 "type": "CHOICE",
5538 "members": [
5539 {
5540 "type": "SYMBOL",
5541 "name": "_path"
5542 },
5543 {
5544 "type": "ALIAS",
5545 "content": {
5546 "type": "SYMBOL",
5547 "name": "generic_type_with_turbofish"
5548 },
5549 "named": true,
5550 "value": "generic_type"
5551 },
5552 {
5553 "type": "SYMBOL",
5554 "name": "bracketed_type"
5555 },
5556 {
5557 "type": "SYMBOL",
5558 "name": "generic_type"
5559 }
5560 ]
5561 },
5562 {
5563 "type": "BLANK"
5564 }
5565 ]
5566 }
5567 },
5568 {
5569 "type": "STRING",
5570 "value": "::"
5571 },
5572 {
5573 "type": "FIELD",
5574 "name": "name",
5575 "content": {
5576 "type": "SYMBOL",
5577 "name": "_type_identifier"
5578 }
5579 }
5580 ]
5581 },
5582 "range_expression": {
5583 "type": "PREC_LEFT",
5584 "value": 1,
5585 "content": {
5586 "type": "CHOICE",
5587 "members": [
5588 {
5589 "type": "SEQ",
5590 "members": [
5591 {
5592 "type": "SYMBOL",
5593 "name": "_expression"
5594 },
5595 {
5596 "type": "CHOICE",
5597 "members": [
5598 {
5599 "type": "STRING",
5600 "value": ".."
5601 },
5602 {
5603 "type": "STRING",
5604 "value": "..."
5605 },
5606 {
5607 "type": "STRING",
5608 "value": "..="
5609 }
5610 ]
5611 },
5612 {
5613 "type": "SYMBOL",
5614 "name": "_expression"
5615 }
5616 ]
5617 },
5618 {
5619 "type": "SEQ",
5620 "members": [
5621 {
5622 "type": "SYMBOL",
5623 "name": "_expression"
5624 },
5625 {
5626 "type": "STRING",
5627 "value": ".."
5628 }
5629 ]
5630 },
5631 {
5632 "type": "SEQ",
5633 "members": [
5634 {
5635 "type": "STRING",
5636 "value": ".."
5637 },
5638 {
5639 "type": "SYMBOL",
5640 "name": "_expression"
5641 }
5642 ]
5643 },
5644 {
5645 "type": "STRING",
5646 "value": ".."
5647 }
5648 ]
5649 }
5650 },
5651 "unary_expression": {
5652 "type": "PREC",
5653 "value": 12,
5654 "content": {
5655 "type": "SEQ",
5656 "members": [
5657 {
5658 "type": "CHOICE",
5659 "members": [
5660 {
5661 "type": "STRING",
5662 "value": "-"
5663 },
5664 {
5665 "type": "STRING",
5666 "value": "*"
5667 },
5668 {
5669 "type": "STRING",
5670 "value": "!"
5671 }
5672 ]
5673 },
5674 {
5675 "type": "SYMBOL",
5676 "name": "_expression"
5677 }
5678 ]
5679 }
5680 },
5681 "try_expression": {
5682 "type": "PREC",
5683 "value": 13,
5684 "content": {
5685 "type": "SEQ",
5686 "members": [
5687 {
5688 "type": "SYMBOL",
5689 "name": "_expression"
5690 },
5691 {
5692 "type": "STRING",
5693 "value": "?"
5694 }
5695 ]
5696 }
5697 },
5698 "reference_expression": {
5699 "type": "PREC",
5700 "value": 12,
5701 "content": {
5702 "type": "SEQ",
5703 "members": [
5704 {
5705 "type": "STRING",
5706 "value": "&"
5707 },
5708 {
5709 "type": "CHOICE",
5710 "members": [
5711 {
5712 "type": "SYMBOL",
5713 "name": "mutable_specifier"
5714 },
5715 {
5716 "type": "BLANK"
5717 }
5718 ]
5719 },
5720 {
5721 "type": "FIELD",
5722 "name": "value",
5723 "content": {
5724 "type": "SYMBOL",
5725 "name": "_expression"
5726 }
5727 }
5728 ]
5729 }
5730 },
5731 "binary_expression": {
5732 "type": "CHOICE",
5733 "members": [
5734 {
5735 "type": "PREC_LEFT",
5736 "value": 3,
5737 "content": {
5738 "type": "SEQ",
5739 "members": [
5740 {
5741 "type": "FIELD",
5742 "name": "left",
5743 "content": {
5744 "type": "SYMBOL",
5745 "name": "_expression"
5746 }
5747 },
5748 {
5749 "type": "FIELD",
5750 "name": "operator",
5751 "content": {
5752 "type": "STRING",
5753 "value": "&&"
5754 }
5755 },
5756 {
5757 "type": "FIELD",
5758 "name": "right",
5759 "content": {
5760 "type": "SYMBOL",
5761 "name": "_expression"
5762 }
5763 }
5764 ]
5765 }
5766 },
5767 {
5768 "type": "PREC_LEFT",
5769 "value": 2,
5770 "content": {
5771 "type": "SEQ",
5772 "members": [
5773 {
5774 "type": "FIELD",
5775 "name": "left",
5776 "content": {
5777 "type": "SYMBOL",
5778 "name": "_expression"
5779 }
5780 },
5781 {
5782 "type": "FIELD",
5783 "name": "operator",
5784 "content": {
5785 "type": "STRING",
5786 "value": "||"
5787 }
5788 },
5789 {
5790 "type": "FIELD",
5791 "name": "right",
5792 "content": {
5793 "type": "SYMBOL",
5794 "name": "_expression"
5795 }
5796 }
5797 ]
5798 }
5799 },
5800 {
5801 "type": "PREC_LEFT",
5802 "value": 7,
5803 "content": {
5804 "type": "SEQ",
5805 "members": [
5806 {
5807 "type": "FIELD",
5808 "name": "left",
5809 "content": {
5810 "type": "SYMBOL",
5811 "name": "_expression"
5812 }
5813 },
5814 {
5815 "type": "FIELD",
5816 "name": "operator",
5817 "content": {
5818 "type": "STRING",
5819 "value": "&"
5820 }
5821 },
5822 {
5823 "type": "FIELD",
5824 "name": "right",
5825 "content": {
5826 "type": "SYMBOL",
5827 "name": "_expression"
5828 }
5829 }
5830 ]
5831 }
5832 },
5833 {
5834 "type": "PREC_LEFT",
5835 "value": 5,
5836 "content": {
5837 "type": "SEQ",
5838 "members": [
5839 {
5840 "type": "FIELD",
5841 "name": "left",
5842 "content": {
5843 "type": "SYMBOL",
5844 "name": "_expression"
5845 }
5846 },
5847 {
5848 "type": "FIELD",
5849 "name": "operator",
5850 "content": {
5851 "type": "STRING",
5852 "value": "|"
5853 }
5854 },
5855 {
5856 "type": "FIELD",
5857 "name": "right",
5858 "content": {
5859 "type": "SYMBOL",
5860 "name": "_expression"
5861 }
5862 }
5863 ]
5864 }
5865 },
5866 {
5867 "type": "PREC_LEFT",
5868 "value": 6,
5869 "content": {
5870 "type": "SEQ",
5871 "members": [
5872 {
5873 "type": "FIELD",
5874 "name": "left",
5875 "content": {
5876 "type": "SYMBOL",
5877 "name": "_expression"
5878 }
5879 },
5880 {
5881 "type": "FIELD",
5882 "name": "operator",
5883 "content": {
5884 "type": "STRING",
5885 "value": "^"
5886 }
5887 },
5888 {
5889 "type": "FIELD",
5890 "name": "right",
5891 "content": {
5892 "type": "SYMBOL",
5893 "name": "_expression"
5894 }
5895 }
5896 ]
5897 }
5898 },
5899 {
5900 "type": "PREC_LEFT",
5901 "value": 4,
5902 "content": {
5903 "type": "SEQ",
5904 "members": [
5905 {
5906 "type": "FIELD",
5907 "name": "left",
5908 "content": {
5909 "type": "SYMBOL",
5910 "name": "_expression"
5911 }
5912 },
5913 {
5914 "type": "FIELD",
5915 "name": "operator",
5916 "content": {
5917 "type": "CHOICE",
5918 "members": [
5919 {
5920 "type": "STRING",
5921 "value": "=="
5922 },
5923 {
5924 "type": "STRING",
5925 "value": "!="
5926 },
5927 {
5928 "type": "STRING",
5929 "value": "<"
5930 },
5931 {
5932 "type": "STRING",
5933 "value": "<="
5934 },
5935 {
5936 "type": "STRING",
5937 "value": ">"
5938 },
5939 {
5940 "type": "STRING",
5941 "value": ">="
5942 }
5943 ]
5944 }
5945 },
5946 {
5947 "type": "FIELD",
5948 "name": "right",
5949 "content": {
5950 "type": "SYMBOL",
5951 "name": "_expression"
5952 }
5953 }
5954 ]
5955 }
5956 },
5957 {
5958 "type": "PREC_LEFT",
5959 "value": 8,
5960 "content": {
5961 "type": "SEQ",
5962 "members": [
5963 {
5964 "type": "FIELD",
5965 "name": "left",
5966 "content": {
5967 "type": "SYMBOL",
5968 "name": "_expression"
5969 }
5970 },
5971 {
5972 "type": "FIELD",
5973 "name": "operator",
5974 "content": {
5975 "type": "CHOICE",
5976 "members": [
5977 {
5978 "type": "STRING",
5979 "value": "<<"
5980 },
5981 {
5982 "type": "STRING",
5983 "value": ">>"
5984 }
5985 ]
5986 }
5987 },
5988 {
5989 "type": "FIELD",
5990 "name": "right",
5991 "content": {
5992 "type": "SYMBOL",
5993 "name": "_expression"
5994 }
5995 }
5996 ]
5997 }
5998 },
5999 {
6000 "type": "PREC_LEFT",
6001 "value": 9,
6002 "content": {
6003 "type": "SEQ",
6004 "members": [
6005 {
6006 "type": "FIELD",
6007 "name": "left",
6008 "content": {
6009 "type": "SYMBOL",
6010 "name": "_expression"
6011 }
6012 },
6013 {
6014 "type": "FIELD",
6015 "name": "operator",
6016 "content": {
6017 "type": "CHOICE",
6018 "members": [
6019 {
6020 "type": "STRING",
6021 "value": "+"
6022 },
6023 {
6024 "type": "STRING",
6025 "value": "-"
6026 }
6027 ]
6028 }
6029 },
6030 {
6031 "type": "FIELD",
6032 "name": "right",
6033 "content": {
6034 "type": "SYMBOL",
6035 "name": "_expression"
6036 }
6037 }
6038 ]
6039 }
6040 },
6041 {
6042 "type": "PREC_LEFT",
6043 "value": 10,
6044 "content": {
6045 "type": "SEQ",
6046 "members": [
6047 {
6048 "type": "FIELD",
6049 "name": "left",
6050 "content": {
6051 "type": "SYMBOL",
6052 "name": "_expression"
6053 }
6054 },
6055 {
6056 "type": "FIELD",
6057 "name": "operator",
6058 "content": {
6059 "type": "CHOICE",
6060 "members": [
6061 {
6062 "type": "STRING",
6063 "value": "*"
6064 },
6065 {
6066 "type": "STRING",
6067 "value": "/"
6068 },
6069 {
6070 "type": "STRING",
6071 "value": "%"
6072 }
6073 ]
6074 }
6075 },
6076 {
6077 "type": "FIELD",
6078 "name": "right",
6079 "content": {
6080 "type": "SYMBOL",
6081 "name": "_expression"
6082 }
6083 }
6084 ]
6085 }
6086 }
6087 ]
6088 },
6089 "assignment_expression": {
6090 "type": "PREC_LEFT",
6091 "value": 0,
6092 "content": {
6093 "type": "SEQ",
6094 "members": [
6095 {
6096 "type": "FIELD",
6097 "name": "left",
6098 "content": {
6099 "type": "SYMBOL",
6100 "name": "_expression"
6101 }
6102 },
6103 {
6104 "type": "STRING",
6105 "value": "="
6106 },
6107 {
6108 "type": "FIELD",
6109 "name": "right",
6110 "content": {
6111 "type": "SYMBOL",
6112 "name": "_expression"
6113 }
6114 }
6115 ]
6116 }
6117 },
6118 "compound_assignment_expr": {
6119 "type": "PREC_LEFT",
6120 "value": 0,
6121 "content": {
6122 "type": "SEQ",
6123 "members": [
6124 {
6125 "type": "FIELD",
6126 "name": "left",
6127 "content": {
6128 "type": "SYMBOL",
6129 "name": "_expression"
6130 }
6131 },
6132 {
6133 "type": "FIELD",
6134 "name": "operator",
6135 "content": {
6136 "type": "CHOICE",
6137 "members": [
6138 {
6139 "type": "STRING",
6140 "value": "+="
6141 },
6142 {
6143 "type": "STRING",
6144 "value": "-="
6145 },
6146 {
6147 "type": "STRING",
6148 "value": "*="
6149 },
6150 {
6151 "type": "STRING",
6152 "value": "/="
6153 },
6154 {
6155 "type": "STRING",
6156 "value": "%="
6157 },
6158 {
6159 "type": "STRING",
6160 "value": "&="
6161 },
6162 {
6163 "type": "STRING",
6164 "value": "|="
6165 },
6166 {
6167 "type": "STRING",
6168 "value": "^="
6169 },
6170 {
6171 "type": "STRING",
6172 "value": "<<="
6173 },
6174 {
6175 "type": "STRING",
6176 "value": ">>="
6177 }
6178 ]
6179 }
6180 },
6181 {
6182 "type": "FIELD",
6183 "name": "right",
6184 "content": {
6185 "type": "SYMBOL",
6186 "name": "_expression"
6187 }
6188 }
6189 ]
6190 }
6191 },
6192 "type_cast_expression": {
6193 "type": "PREC_LEFT",
6194 "value": 11,
6195 "content": {
6196 "type": "SEQ",
6197 "members": [
6198 {
6199 "type": "FIELD",
6200 "name": "value",
6201 "content": {
6202 "type": "SYMBOL",
6203 "name": "_expression"
6204 }
6205 },
6206 {
6207 "type": "STRING",
6208 "value": "as"
6209 },
6210 {
6211 "type": "FIELD",
6212 "name": "type",
6213 "content": {
6214 "type": "SYMBOL",
6215 "name": "_type"
6216 }
6217 }
6218 ]
6219 }
6220 },
6221 "return_expression": {
6222 "type": "CHOICE",
6223 "members": [
6224 {
6225 "type": "PREC_LEFT",
6226 "value": 0,
6227 "content": {
6228 "type": "SEQ",
6229 "members": [
6230 {
6231 "type": "STRING",
6232 "value": "return"
6233 },
6234 {
6235 "type": "SYMBOL",
6236 "name": "_expression"
6237 }
6238 ]
6239 }
6240 },
6241 {
6242 "type": "PREC",
6243 "value": -1,
6244 "content": {
6245 "type": "STRING",
6246 "value": "return"
6247 }
6248 }
6249 ]
6250 },
6251 "yield_expression": {
6252 "type": "CHOICE",
6253 "members": [
6254 {
6255 "type": "PREC_LEFT",
6256 "value": 0,
6257 "content": {
6258 "type": "SEQ",
6259 "members": [
6260 {
6261 "type": "STRING",
6262 "value": "yield"
6263 },
6264 {
6265 "type": "SYMBOL",
6266 "name": "_expression"
6267 }
6268 ]
6269 }
6270 },
6271 {
6272 "type": "PREC",
6273 "value": -1,
6274 "content": {
6275 "type": "STRING",
6276 "value": "yield"
6277 }
6278 }
6279 ]
6280 },
6281 "call_expression": {
6282 "type": "PREC",
6283 "value": 15,
6284 "content": {
6285 "type": "SEQ",
6286 "members": [
6287 {
6288 "type": "FIELD",
6289 "name": "function",
6290 "content": {
6291 "type": "SYMBOL",
6292 "name": "_expression_except_range"
6293 }
6294 },
6295 {
6296 "type": "FIELD",
6297 "name": "arguments",
6298 "content": {
6299 "type": "SYMBOL",
6300 "name": "arguments"
6301 }
6302 }
6303 ]
6304 }
6305 },
6306 "arguments": {
6307 "type": "SEQ",
6308 "members": [
6309 {
6310 "type": "STRING",
6311 "value": "("
6312 },
6313 {
6314 "type": "CHOICE",
6315 "members": [
6316 {
6317 "type": "SEQ",
6318 "members": [
6319 {
6320 "type": "SEQ",
6321 "members": [
6322 {
6323 "type": "REPEAT",
6324 "content": {
6325 "type": "SYMBOL",
6326 "name": "attribute_item"
6327 }
6328 },
6329 {
6330 "type": "SYMBOL",
6331 "name": "_expression"
6332 }
6333 ]
6334 },
6335 {
6336 "type": "REPEAT",
6337 "content": {
6338 "type": "SEQ",
6339 "members": [
6340 {
6341 "type": "STRING",
6342 "value": ","
6343 },
6344 {
6345 "type": "SEQ",
6346 "members": [
6347 {
6348 "type": "REPEAT",
6349 "content": {
6350 "type": "SYMBOL",
6351 "name": "attribute_item"
6352 }
6353 },
6354 {
6355 "type": "SYMBOL",
6356 "name": "_expression"
6357 }
6358 ]
6359 }
6360 ]
6361 }
6362 }
6363 ]
6364 },
6365 {
6366 "type": "BLANK"
6367 }
6368 ]
6369 },
6370 {
6371 "type": "CHOICE",
6372 "members": [
6373 {
6374 "type": "STRING",
6375 "value": ","
6376 },
6377 {
6378 "type": "BLANK"
6379 }
6380 ]
6381 },
6382 {
6383 "type": "STRING",
6384 "value": ")"
6385 }
6386 ]
6387 },
6388 "array_expression": {
6389 "type": "SEQ",
6390 "members": [
6391 {
6392 "type": "STRING",
6393 "value": "["
6394 },
6395 {
6396 "type": "REPEAT",
6397 "content": {
6398 "type": "SYMBOL",
6399 "name": "attribute_item"
6400 }
6401 },
6402 {
6403 "type": "CHOICE",
6404 "members": [
6405 {
6406 "type": "SEQ",
6407 "members": [
6408 {
6409 "type": "SYMBOL",
6410 "name": "_expression"
6411 },
6412 {
6413 "type": "STRING",
6414 "value": ";"
6415 },
6416 {
6417 "type": "FIELD",
6418 "name": "length",
6419 "content": {
6420 "type": "SYMBOL",
6421 "name": "_expression"
6422 }
6423 }
6424 ]
6425 },
6426 {
6427 "type": "SEQ",
6428 "members": [
6429 {
6430 "type": "CHOICE",
6431 "members": [
6432 {
6433 "type": "SEQ",
6434 "members": [
6435 {
6436 "type": "SEQ",
6437 "members": [
6438 {
6439 "type": "REPEAT",
6440 "content": {
6441 "type": "SYMBOL",
6442 "name": "attribute_item"
6443 }
6444 },
6445 {
6446 "type": "SYMBOL",
6447 "name": "_expression"
6448 }
6449 ]
6450 },
6451 {
6452 "type": "REPEAT",
6453 "content": {
6454 "type": "SEQ",
6455 "members": [
6456 {
6457 "type": "STRING",
6458 "value": ","
6459 },
6460 {
6461 "type": "SEQ",
6462 "members": [
6463 {
6464 "type": "REPEAT",
6465 "content": {
6466 "type": "SYMBOL",
6467 "name": "attribute_item"
6468 }
6469 },
6470 {
6471 "type": "SYMBOL",
6472 "name": "_expression"
6473 }
6474 ]
6475 }
6476 ]
6477 }
6478 }
6479 ]
6480 },
6481 {
6482 "type": "BLANK"
6483 }
6484 ]
6485 },
6486 {
6487 "type": "CHOICE",
6488 "members": [
6489 {
6490 "type": "STRING",
6491 "value": ","
6492 },
6493 {
6494 "type": "BLANK"
6495 }
6496 ]
6497 }
6498 ]
6499 }
6500 ]
6501 },
6502 {
6503 "type": "STRING",
6504 "value": "]"
6505 }
6506 ]
6507 },
6508 "parenthesized_expression": {
6509 "type": "SEQ",
6510 "members": [
6511 {
6512 "type": "STRING",
6513 "value": "("
6514 },
6515 {
6516 "type": "SYMBOL",
6517 "name": "_expression"
6518 },
6519 {
6520 "type": "STRING",
6521 "value": ")"
6522 }
6523 ]
6524 },
6525 "tuple_expression": {
6526 "type": "SEQ",
6527 "members": [
6528 {
6529 "type": "STRING",
6530 "value": "("
6531 },
6532 {
6533 "type": "REPEAT",
6534 "content": {
6535 "type": "SYMBOL",
6536 "name": "attribute_item"
6537 }
6538 },
6539 {
6540 "type": "SEQ",
6541 "members": [
6542 {
6543 "type": "SYMBOL",
6544 "name": "_expression"
6545 },
6546 {
6547 "type": "STRING",
6548 "value": ","
6549 }
6550 ]
6551 },
6552 {
6553 "type": "REPEAT",
6554 "content": {
6555 "type": "SEQ",
6556 "members": [
6557 {
6558 "type": "SYMBOL",
6559 "name": "_expression"
6560 },
6561 {
6562 "type": "STRING",
6563 "value": ","
6564 }
6565 ]
6566 }
6567 },
6568 {
6569 "type": "CHOICE",
6570 "members": [
6571 {
6572 "type": "SYMBOL",
6573 "name": "_expression"
6574 },
6575 {
6576 "type": "BLANK"
6577 }
6578 ]
6579 },
6580 {
6581 "type": "STRING",
6582 "value": ")"
6583 }
6584 ]
6585 },
6586 "unit_expression": {
6587 "type": "SEQ",
6588 "members": [
6589 {
6590 "type": "STRING",
6591 "value": "("
6592 },
6593 {
6594 "type": "STRING",
6595 "value": ")"
6596 }
6597 ]
6598 },
6599 "struct_expression": {
6600 "type": "SEQ",
6601 "members": [
6602 {
6603 "type": "FIELD",
6604 "name": "name",
6605 "content": {
6606 "type": "CHOICE",
6607 "members": [
6608 {
6609 "type": "SYMBOL",
6610 "name": "_type_identifier"
6611 },
6612 {
6613 "type": "ALIAS",
6614 "content": {
6615 "type": "SYMBOL",
6616 "name": "scoped_type_identifier_in_expression_position"
6617 },
6618 "named": true,
6619 "value": "scoped_type_identifier"
6620 },
6621 {
6622 "type": "SYMBOL",
6623 "name": "generic_type_with_turbofish"
6624 }
6625 ]
6626 }
6627 },
6628 {
6629 "type": "FIELD",
6630 "name": "body",
6631 "content": {
6632 "type": "SYMBOL",
6633 "name": "field_initializer_list"
6634 }
6635 }
6636 ]
6637 },
6638 "field_initializer_list": {
6639 "type": "SEQ",
6640 "members": [
6641 {
6642 "type": "STRING",
6643 "value": "{"
6644 },
6645 {
6646 "type": "CHOICE",
6647 "members": [
6648 {
6649 "type": "SEQ",
6650 "members": [
6651 {
6652 "type": "CHOICE",
6653 "members": [
6654 {
6655 "type": "SYMBOL",
6656 "name": "shorthand_field_initializer"
6657 },
6658 {
6659 "type": "SYMBOL",
6660 "name": "field_initializer"
6661 },
6662 {
6663 "type": "SYMBOL",
6664 "name": "base_field_initializer"
6665 }
6666 ]
6667 },
6668 {
6669 "type": "REPEAT",
6670 "content": {
6671 "type": "SEQ",
6672 "members": [
6673 {
6674 "type": "STRING",
6675 "value": ","
6676 },
6677 {
6678 "type": "CHOICE",
6679 "members": [
6680 {
6681 "type": "SYMBOL",
6682 "name": "shorthand_field_initializer"
6683 },
6684 {
6685 "type": "SYMBOL",
6686 "name": "field_initializer"
6687 },
6688 {
6689 "type": "SYMBOL",
6690 "name": "base_field_initializer"
6691 }
6692 ]
6693 }
6694 ]
6695 }
6696 }
6697 ]
6698 },
6699 {
6700 "type": "BLANK"
6701 }
6702 ]
6703 },
6704 {
6705 "type": "CHOICE",
6706 "members": [
6707 {
6708 "type": "STRING",
6709 "value": ","
6710 },
6711 {
6712 "type": "BLANK"
6713 }
6714 ]
6715 },
6716 {
6717 "type": "STRING",
6718 "value": "}"
6719 }
6720 ]
6721 },
6722 "shorthand_field_initializer": {
6723 "type": "SEQ",
6724 "members": [
6725 {
6726 "type": "REPEAT",
6727 "content": {
6728 "type": "SYMBOL",
6729 "name": "attribute_item"
6730 }
6731 },
6732 {
6733 "type": "SYMBOL",
6734 "name": "identifier"
6735 }
6736 ]
6737 },
6738 "field_initializer": {
6739 "type": "SEQ",
6740 "members": [
6741 {
6742 "type": "REPEAT",
6743 "content": {
6744 "type": "SYMBOL",
6745 "name": "attribute_item"
6746 }
6747 },
6748 {
6749 "type": "FIELD",
6750 "name": "field",
6751 "content": {
6752 "type": "CHOICE",
6753 "members": [
6754 {
6755 "type": "SYMBOL",
6756 "name": "_field_identifier"
6757 },
6758 {
6759 "type": "SYMBOL",
6760 "name": "integer_literal"
6761 }
6762 ]
6763 }
6764 },
6765 {
6766 "type": "STRING",
6767 "value": ":"
6768 },
6769 {
6770 "type": "FIELD",
6771 "name": "value",
6772 "content": {
6773 "type": "SYMBOL",
6774 "name": "_expression"
6775 }
6776 }
6777 ]
6778 },
6779 "base_field_initializer": {
6780 "type": "SEQ",
6781 "members": [
6782 {
6783 "type": "STRING",
6784 "value": ".."
6785 },
6786 {
6787 "type": "SYMBOL",
6788 "name": "_expression"
6789 }
6790 ]
6791 },
6792 "if_expression": {
6793 "type": "PREC_RIGHT",
6794 "value": 0,
6795 "content": {
6796 "type": "SEQ",
6797 "members": [
6798 {
6799 "type": "STRING",
6800 "value": "if"
6801 },
6802 {
6803 "type": "FIELD",
6804 "name": "condition",
6805 "content": {
6806 "type": "SYMBOL",
6807 "name": "_condition"
6808 }
6809 },
6810 {
6811 "type": "FIELD",
6812 "name": "consequence",
6813 "content": {
6814 "type": "SYMBOL",
6815 "name": "block"
6816 }
6817 },
6818 {
6819 "type": "CHOICE",
6820 "members": [
6821 {
6822 "type": "FIELD",
6823 "name": "alternative",
6824 "content": {
6825 "type": "SYMBOL",
6826 "name": "else_clause"
6827 }
6828 },
6829 {
6830 "type": "BLANK"
6831 }
6832 ]
6833 }
6834 ]
6835 }
6836 },
6837 "let_condition": {
6838 "type": "SEQ",
6839 "members": [
6840 {
6841 "type": "STRING",
6842 "value": "let"
6843 },
6844 {
6845 "type": "FIELD",
6846 "name": "pattern",
6847 "content": {
6848 "type": "SYMBOL",
6849 "name": "_pattern"
6850 }
6851 },
6852 {
6853 "type": "STRING",
6854 "value": "="
6855 },
6856 {
6857 "type": "FIELD",
6858 "name": "value",
6859 "content": {
6860 "type": "PREC_LEFT",
6861 "value": 3,
6862 "content": {
6863 "type": "SYMBOL",
6864 "name": "_expression"
6865 }
6866 }
6867 }
6868 ]
6869 },
6870 "_let_chain": {
6871 "type": "PREC_LEFT",
6872 "value": 3,
6873 "content": {
6874 "type": "CHOICE",
6875 "members": [
6876 {
6877 "type": "SEQ",
6878 "members": [
6879 {
6880 "type": "SYMBOL",
6881 "name": "_let_chain"
6882 },
6883 {
6884 "type": "STRING",
6885 "value": "&&"
6886 },
6887 {
6888 "type": "SYMBOL",
6889 "name": "let_condition"
6890 }
6891 ]
6892 },
6893 {
6894 "type": "SEQ",
6895 "members": [
6896 {
6897 "type": "SYMBOL",
6898 "name": "_let_chain"
6899 },
6900 {
6901 "type": "STRING",
6902 "value": "&&"
6903 },
6904 {
6905 "type": "SYMBOL",
6906 "name": "_expression"
6907 }
6908 ]
6909 },
6910 {
6911 "type": "SEQ",
6912 "members": [
6913 {
6914 "type": "SYMBOL",
6915 "name": "let_condition"
6916 },
6917 {
6918 "type": "STRING",
6919 "value": "&&"
6920 },
6921 {
6922 "type": "SYMBOL",
6923 "name": "_expression"
6924 }
6925 ]
6926 },
6927 {
6928 "type": "SEQ",
6929 "members": [
6930 {
6931 "type": "SYMBOL",
6932 "name": "let_condition"
6933 },
6934 {
6935 "type": "STRING",
6936 "value": "&&"
6937 },
6938 {
6939 "type": "SYMBOL",
6940 "name": "let_condition"
6941 }
6942 ]
6943 },
6944 {
6945 "type": "SEQ",
6946 "members": [
6947 {
6948 "type": "SYMBOL",
6949 "name": "_expression"
6950 },
6951 {
6952 "type": "STRING",
6953 "value": "&&"
6954 },
6955 {
6956 "type": "SYMBOL",
6957 "name": "let_condition"
6958 }
6959 ]
6960 }
6961 ]
6962 }
6963 },
6964 "_condition": {
6965 "type": "CHOICE",
6966 "members": [
6967 {
6968 "type": "SYMBOL",
6969 "name": "_expression"
6970 },
6971 {
6972 "type": "SYMBOL",
6973 "name": "let_condition"
6974 },
6975 {
6976 "type": "ALIAS",
6977 "content": {
6978 "type": "SYMBOL",
6979 "name": "_let_chain"
6980 },
6981 "named": true,
6982 "value": "let_chain"
6983 }
6984 ]
6985 },
6986 "else_clause": {
6987 "type": "SEQ",
6988 "members": [
6989 {
6990 "type": "STRING",
6991 "value": "else"
6992 },
6993 {
6994 "type": "CHOICE",
6995 "members": [
6996 {
6997 "type": "SYMBOL",
6998 "name": "block"
6999 },
7000 {
7001 "type": "SYMBOL",
7002 "name": "if_expression"
7003 }
7004 ]
7005 }
7006 ]
7007 },
7008 "match_expression": {
7009 "type": "SEQ",
7010 "members": [
7011 {
7012 "type": "STRING",
7013 "value": "match"
7014 },
7015 {
7016 "type": "FIELD",
7017 "name": "value",
7018 "content": {
7019 "type": "SYMBOL",
7020 "name": "_expression"
7021 }
7022 },
7023 {
7024 "type": "FIELD",
7025 "name": "body",
7026 "content": {
7027 "type": "SYMBOL",
7028 "name": "match_block"
7029 }
7030 }
7031 ]
7032 },
7033 "match_block": {
7034 "type": "SEQ",
7035 "members": [
7036 {
7037 "type": "STRING",
7038 "value": "{"
7039 },
7040 {
7041 "type": "CHOICE",
7042 "members": [
7043 {
7044 "type": "SEQ",
7045 "members": [
7046 {
7047 "type": "REPEAT",
7048 "content": {
7049 "type": "SYMBOL",
7050 "name": "match_arm"
7051 }
7052 },
7053 {
7054 "type": "ALIAS",
7055 "content": {
7056 "type": "SYMBOL",
7057 "name": "last_match_arm"
7058 },
7059 "named": true,
7060 "value": "match_arm"
7061 }
7062 ]
7063 },
7064 {
7065 "type": "BLANK"
7066 }
7067 ]
7068 },
7069 {
7070 "type": "STRING",
7071 "value": "}"
7072 }
7073 ]
7074 },
7075 "match_arm": {
7076 "type": "PREC_RIGHT",
7077 "value": 0,
7078 "content": {
7079 "type": "SEQ",
7080 "members": [
7081 {
7082 "type": "REPEAT",
7083 "content": {
7084 "type": "CHOICE",
7085 "members": [
7086 {
7087 "type": "SYMBOL",
7088 "name": "attribute_item"
7089 },
7090 {
7091 "type": "SYMBOL",
7092 "name": "inner_attribute_item"
7093 }
7094 ]
7095 }
7096 },
7097 {
7098 "type": "FIELD",
7099 "name": "pattern",
7100 "content": {
7101 "type": "SYMBOL",
7102 "name": "match_pattern"
7103 }
7104 },
7105 {
7106 "type": "STRING",
7107 "value": "=>"
7108 },
7109 {
7110 "type": "CHOICE",
7111 "members": [
7112 {
7113 "type": "SEQ",
7114 "members": [
7115 {
7116 "type": "FIELD",
7117 "name": "value",
7118 "content": {
7119 "type": "SYMBOL",
7120 "name": "_expression"
7121 }
7122 },
7123 {
7124 "type": "STRING",
7125 "value": ","
7126 }
7127 ]
7128 },
7129 {
7130 "type": "FIELD",
7131 "name": "value",
7132 "content": {
7133 "type": "PREC",
7134 "value": 1,
7135 "content": {
7136 "type": "SYMBOL",
7137 "name": "_expression_ending_with_block"
7138 }
7139 }
7140 }
7141 ]
7142 }
7143 ]
7144 }
7145 },
7146 "last_match_arm": {
7147 "type": "SEQ",
7148 "members": [
7149 {
7150 "type": "REPEAT",
7151 "content": {
7152 "type": "CHOICE",
7153 "members": [
7154 {
7155 "type": "SYMBOL",
7156 "name": "attribute_item"
7157 },
7158 {
7159 "type": "SYMBOL",
7160 "name": "inner_attribute_item"
7161 }
7162 ]
7163 }
7164 },
7165 {
7166 "type": "FIELD",
7167 "name": "pattern",
7168 "content": {
7169 "type": "SYMBOL",
7170 "name": "match_pattern"
7171 }
7172 },
7173 {
7174 "type": "STRING",
7175 "value": "=>"
7176 },
7177 {
7178 "type": "FIELD",
7179 "name": "value",
7180 "content": {
7181 "type": "SYMBOL",
7182 "name": "_expression"
7183 }
7184 },
7185 {
7186 "type": "CHOICE",
7187 "members": [
7188 {
7189 "type": "STRING",
7190 "value": ","
7191 },
7192 {
7193 "type": "BLANK"
7194 }
7195 ]
7196 }
7197 ]
7198 },
7199 "match_pattern": {
7200 "type": "SEQ",
7201 "members": [
7202 {
7203 "type": "SYMBOL",
7204 "name": "_pattern"
7205 },
7206 {
7207 "type": "CHOICE",
7208 "members": [
7209 {
7210 "type": "SEQ",
7211 "members": [
7212 {
7213 "type": "STRING",
7214 "value": "if"
7215 },
7216 {
7217 "type": "FIELD",
7218 "name": "condition",
7219 "content": {
7220 "type": "SYMBOL",
7221 "name": "_condition"
7222 }
7223 }
7224 ]
7225 },
7226 {
7227 "type": "BLANK"
7228 }
7229 ]
7230 }
7231 ]
7232 },
7233 "while_expression": {
7234 "type": "SEQ",
7235 "members": [
7236 {
7237 "type": "CHOICE",
7238 "members": [
7239 {
7240 "type": "SEQ",
7241 "members": [
7242 {
7243 "type": "SYMBOL",
7244 "name": "label"
7245 },
7246 {
7247 "type": "STRING",
7248 "value": ":"
7249 }
7250 ]
7251 },
7252 {
7253 "type": "BLANK"
7254 }
7255 ]
7256 },
7257 {
7258 "type": "STRING",
7259 "value": "while"
7260 },
7261 {
7262 "type": "FIELD",
7263 "name": "condition",
7264 "content": {
7265 "type": "SYMBOL",
7266 "name": "_condition"
7267 }
7268 },
7269 {
7270 "type": "FIELD",
7271 "name": "body",
7272 "content": {
7273 "type": "SYMBOL",
7274 "name": "block"
7275 }
7276 }
7277 ]
7278 },
7279 "loop_expression": {
7280 "type": "SEQ",
7281 "members": [
7282 {
7283 "type": "CHOICE",
7284 "members": [
7285 {
7286 "type": "SEQ",
7287 "members": [
7288 {
7289 "type": "SYMBOL",
7290 "name": "label"
7291 },
7292 {
7293 "type": "STRING",
7294 "value": ":"
7295 }
7296 ]
7297 },
7298 {
7299 "type": "BLANK"
7300 }
7301 ]
7302 },
7303 {
7304 "type": "STRING",
7305 "value": "loop"
7306 },
7307 {
7308 "type": "FIELD",
7309 "name": "body",
7310 "content": {
7311 "type": "SYMBOL",
7312 "name": "block"
7313 }
7314 }
7315 ]
7316 },
7317 "for_expression": {
7318 "type": "SEQ",
7319 "members": [
7320 {
7321 "type": "CHOICE",
7322 "members": [
7323 {
7324 "type": "SEQ",
7325 "members": [
7326 {
7327 "type": "SYMBOL",
7328 "name": "label"
7329 },
7330 {
7331 "type": "STRING",
7332 "value": ":"
7333 }
7334 ]
7335 },
7336 {
7337 "type": "BLANK"
7338 }
7339 ]
7340 },
7341 {
7342 "type": "STRING",
7343 "value": "for"
7344 },
7345 {
7346 "type": "FIELD",
7347 "name": "pattern",
7348 "content": {
7349 "type": "SYMBOL",
7350 "name": "_pattern"
7351 }
7352 },
7353 {
7354 "type": "STRING",
7355 "value": "in"
7356 },
7357 {
7358 "type": "FIELD",
7359 "name": "value",
7360 "content": {
7361 "type": "SYMBOL",
7362 "name": "_expression"
7363 }
7364 },
7365 {
7366 "type": "FIELD",
7367 "name": "body",
7368 "content": {
7369 "type": "SYMBOL",
7370 "name": "block"
7371 }
7372 }
7373 ]
7374 },
7375 "const_block": {
7376 "type": "SEQ",
7377 "members": [
7378 {
7379 "type": "STRING",
7380 "value": "const"
7381 },
7382 {
7383 "type": "FIELD",
7384 "name": "body",
7385 "content": {
7386 "type": "SYMBOL",
7387 "name": "block"
7388 }
7389 }
7390 ]
7391 },
7392 "closure_expression": {
7393 "type": "PREC",
7394 "value": -1,
7395 "content": {
7396 "type": "SEQ",
7397 "members": [
7398 {
7399 "type": "CHOICE",
7400 "members": [
7401 {
7402 "type": "STRING",
7403 "value": "static"
7404 },
7405 {
7406 "type": "BLANK"
7407 }
7408 ]
7409 },
7410 {
7411 "type": "CHOICE",
7412 "members": [
7413 {
7414 "type": "STRING",
7415 "value": "move"
7416 },
7417 {
7418 "type": "BLANK"
7419 }
7420 ]
7421 },
7422 {
7423 "type": "FIELD",
7424 "name": "parameters",
7425 "content": {
7426 "type": "SYMBOL",
7427 "name": "closure_parameters"
7428 }
7429 },
7430 {
7431 "type": "CHOICE",
7432 "members": [
7433 {
7434 "type": "SEQ",
7435 "members": [
7436 {
7437 "type": "CHOICE",
7438 "members": [
7439 {
7440 "type": "SEQ",
7441 "members": [
7442 {
7443 "type": "STRING",
7444 "value": "->"
7445 },
7446 {
7447 "type": "FIELD",
7448 "name": "return_type",
7449 "content": {
7450 "type": "SYMBOL",
7451 "name": "_type"
7452 }
7453 }
7454 ]
7455 },
7456 {
7457 "type": "BLANK"
7458 }
7459 ]
7460 },
7461 {
7462 "type": "FIELD",
7463 "name": "body",
7464 "content": {
7465 "type": "SYMBOL",
7466 "name": "block"
7467 }
7468 }
7469 ]
7470 },
7471 {
7472 "type": "FIELD",
7473 "name": "body",
7474 "content": {
7475 "type": "CHOICE",
7476 "members": [
7477 {
7478 "type": "SYMBOL",
7479 "name": "_expression"
7480 },
7481 {
7482 "type": "STRING",
7483 "value": "_"
7484 }
7485 ]
7486 }
7487 }
7488 ]
7489 }
7490 ]
7491 }
7492 },
7493 "closure_parameters": {
7494 "type": "SEQ",
7495 "members": [
7496 {
7497 "type": "STRING",
7498 "value": "|"
7499 },
7500 {
7501 "type": "CHOICE",
7502 "members": [
7503 {
7504 "type": "SEQ",
7505 "members": [
7506 {
7507 "type": "CHOICE",
7508 "members": [
7509 {
7510 "type": "SYMBOL",
7511 "name": "_pattern"
7512 },
7513 {
7514 "type": "SYMBOL",
7515 "name": "parameter"
7516 }
7517 ]
7518 },
7519 {
7520 "type": "REPEAT",
7521 "content": {
7522 "type": "SEQ",
7523 "members": [
7524 {
7525 "type": "STRING",
7526 "value": ","
7527 },
7528 {
7529 "type": "CHOICE",
7530 "members": [
7531 {
7532 "type": "SYMBOL",
7533 "name": "_pattern"
7534 },
7535 {
7536 "type": "SYMBOL",
7537 "name": "parameter"
7538 }
7539 ]
7540 }
7541 ]
7542 }
7543 }
7544 ]
7545 },
7546 {
7547 "type": "BLANK"
7548 }
7549 ]
7550 },
7551 {
7552 "type": "STRING",
7553 "value": "|"
7554 }
7555 ]
7556 },
7557 "label": {
7558 "type": "SEQ",
7559 "members": [
7560 {
7561 "type": "STRING",
7562 "value": "'"
7563 },
7564 {
7565 "type": "SYMBOL",
7566 "name": "identifier"
7567 }
7568 ]
7569 },
7570 "break_expression": {
7571 "type": "PREC_LEFT",
7572 "value": 0,
7573 "content": {
7574 "type": "SEQ",
7575 "members": [
7576 {
7577 "type": "STRING",
7578 "value": "break"
7579 },
7580 {
7581 "type": "CHOICE",
7582 "members": [
7583 {
7584 "type": "SYMBOL",
7585 "name": "label"
7586 },
7587 {
7588 "type": "BLANK"
7589 }
7590 ]
7591 },
7592 {
7593 "type": "CHOICE",
7594 "members": [
7595 {
7596 "type": "SYMBOL",
7597 "name": "_expression"
7598 },
7599 {
7600 "type": "BLANK"
7601 }
7602 ]
7603 }
7604 ]
7605 }
7606 },
7607 "continue_expression": {
7608 "type": "PREC_LEFT",
7609 "value": 0,
7610 "content": {
7611 "type": "SEQ",
7612 "members": [
7613 {
7614 "type": "STRING",
7615 "value": "continue"
7616 },
7617 {
7618 "type": "CHOICE",
7619 "members": [
7620 {
7621 "type": "SYMBOL",
7622 "name": "label"
7623 },
7624 {
7625 "type": "BLANK"
7626 }
7627 ]
7628 }
7629 ]
7630 }
7631 },
7632 "index_expression": {
7633 "type": "PREC",
7634 "value": 15,
7635 "content": {
7636 "type": "SEQ",
7637 "members": [
7638 {
7639 "type": "SYMBOL",
7640 "name": "_expression"
7641 },
7642 {
7643 "type": "STRING",
7644 "value": "["
7645 },
7646 {
7647 "type": "SYMBOL",
7648 "name": "_expression"
7649 },
7650 {
7651 "type": "STRING",
7652 "value": "]"
7653 }
7654 ]
7655 }
7656 },
7657 "await_expression": {
7658 "type": "PREC",
7659 "value": 14,
7660 "content": {
7661 "type": "SEQ",
7662 "members": [
7663 {
7664 "type": "SYMBOL",
7665 "name": "_expression"
7666 },
7667 {
7668 "type": "STRING",
7669 "value": "."
7670 },
7671 {
7672 "type": "STRING",
7673 "value": "await"
7674 }
7675 ]
7676 }
7677 },
7678 "field_expression": {
7679 "type": "PREC",
7680 "value": 14,
7681 "content": {
7682 "type": "SEQ",
7683 "members": [
7684 {
7685 "type": "FIELD",
7686 "name": "value",
7687 "content": {
7688 "type": "SYMBOL",
7689 "name": "_expression"
7690 }
7691 },
7692 {
7693 "type": "STRING",
7694 "value": "."
7695 },
7696 {
7697 "type": "FIELD",
7698 "name": "field",
7699 "content": {
7700 "type": "CHOICE",
7701 "members": [
7702 {
7703 "type": "SYMBOL",
7704 "name": "_field_identifier"
7705 },
7706 {
7707 "type": "SYMBOL",
7708 "name": "integer_literal"
7709 }
7710 ]
7711 }
7712 }
7713 ]
7714 }
7715 },
7716 "unsafe_block": {
7717 "type": "SEQ",
7718 "members": [
7719 {
7720 "type": "STRING",
7721 "value": "unsafe"
7722 },
7723 {
7724 "type": "SYMBOL",
7725 "name": "block"
7726 }
7727 ]
7728 },
7729 "async_block": {
7730 "type": "SEQ",
7731 "members": [
7732 {
7733 "type": "STRING",
7734 "value": "async"
7735 },
7736 {
7737 "type": "CHOICE",
7738 "members": [
7739 {
7740 "type": "STRING",
7741 "value": "move"
7742 },
7743 {
7744 "type": "BLANK"
7745 }
7746 ]
7747 },
7748 {
7749 "type": "SYMBOL",
7750 "name": "block"
7751 }
7752 ]
7753 },
7754 "try_block": {
7755 "type": "SEQ",
7756 "members": [
7757 {
7758 "type": "STRING",
7759 "value": "try"
7760 },
7761 {
7762 "type": "SYMBOL",
7763 "name": "block"
7764 }
7765 ]
7766 },
7767 "block": {
7768 "type": "SEQ",
7769 "members": [
7770 {
7771 "type": "CHOICE",
7772 "members": [
7773 {
7774 "type": "SEQ",
7775 "members": [
7776 {
7777 "type": "SYMBOL",
7778 "name": "label"
7779 },
7780 {
7781 "type": "STRING",
7782 "value": ":"
7783 }
7784 ]
7785 },
7786 {
7787 "type": "BLANK"
7788 }
7789 ]
7790 },
7791 {
7792 "type": "STRING",
7793 "value": "{"
7794 },
7795 {
7796 "type": "REPEAT",
7797 "content": {
7798 "type": "SYMBOL",
7799 "name": "_statement"
7800 }
7801 },
7802 {
7803 "type": "CHOICE",
7804 "members": [
7805 {
7806 "type": "SYMBOL",
7807 "name": "_expression"
7808 },
7809 {
7810 "type": "BLANK"
7811 }
7812 ]
7813 },
7814 {
7815 "type": "STRING",
7816 "value": "}"
7817 }
7818 ]
7819 },
7820 "_pattern": {
7821 "type": "CHOICE",
7822 "members": [
7823 {
7824 "type": "SYMBOL",
7825 "name": "_literal_pattern"
7826 },
7827 {
7828 "type": "ALIAS",
7829 "content": {
7830 "type": "CHOICE",
7831 "members": [
7832 {
7833 "type": "STRING",
7834 "value": "u8"
7835 },
7836 {
7837 "type": "STRING",
7838 "value": "i8"
7839 },
7840 {
7841 "type": "STRING",
7842 "value": "u16"
7843 },
7844 {
7845 "type": "STRING",
7846 "value": "i16"
7847 },
7848 {
7849 "type": "STRING",
7850 "value": "u32"
7851 },
7852 {
7853 "type": "STRING",
7854 "value": "i32"
7855 },
7856 {
7857 "type": "STRING",
7858 "value": "u64"
7859 },
7860 {
7861 "type": "STRING",
7862 "value": "i64"
7863 },
7864 {
7865 "type": "STRING",
7866 "value": "u128"
7867 },
7868 {
7869 "type": "STRING",
7870 "value": "i128"
7871 },
7872 {
7873 "type": "STRING",
7874 "value": "isize"
7875 },
7876 {
7877 "type": "STRING",
7878 "value": "usize"
7879 },
7880 {
7881 "type": "STRING",
7882 "value": "f32"
7883 },
7884 {
7885 "type": "STRING",
7886 "value": "f64"
7887 },
7888 {
7889 "type": "STRING",
7890 "value": "bool"
7891 },
7892 {
7893 "type": "STRING",
7894 "value": "str"
7895 },
7896 {
7897 "type": "STRING",
7898 "value": "char"
7899 }
7900 ]
7901 },
7902 "named": true,
7903 "value": "identifier"
7904 },
7905 {
7906 "type": "SYMBOL",
7907 "name": "identifier"
7908 },
7909 {
7910 "type": "SYMBOL",
7911 "name": "scoped_identifier"
7912 },
7913 {
7914 "type": "SYMBOL",
7915 "name": "tuple_pattern"
7916 },
7917 {
7918 "type": "SYMBOL",
7919 "name": "tuple_struct_pattern"
7920 },
7921 {
7922 "type": "SYMBOL",
7923 "name": "struct_pattern"
7924 },
7925 {
7926 "type": "SYMBOL",
7927 "name": "_reserved_identifier"
7928 },
7929 {
7930 "type": "SYMBOL",
7931 "name": "ref_pattern"
7932 },
7933 {
7934 "type": "SYMBOL",
7935 "name": "slice_pattern"
7936 },
7937 {
7938 "type": "SYMBOL",
7939 "name": "captured_pattern"
7940 },
7941 {
7942 "type": "SYMBOL",
7943 "name": "reference_pattern"
7944 },
7945 {
7946 "type": "SYMBOL",
7947 "name": "remaining_field_pattern"
7948 },
7949 {
7950 "type": "SYMBOL",
7951 "name": "mut_pattern"
7952 },
7953 {
7954 "type": "SYMBOL",
7955 "name": "range_pattern"
7956 },
7957 {
7958 "type": "SYMBOL",
7959 "name": "or_pattern"
7960 },
7961 {
7962 "type": "SYMBOL",
7963 "name": "const_block"
7964 },
7965 {
7966 "type": "SYMBOL",
7967 "name": "macro_invocation"
7968 },
7969 {
7970 "type": "STRING",
7971 "value": "_"
7972 }
7973 ]
7974 },
7975 "tuple_pattern": {
7976 "type": "SEQ",
7977 "members": [
7978 {
7979 "type": "STRING",
7980 "value": "("
7981 },
7982 {
7983 "type": "CHOICE",
7984 "members": [
7985 {
7986 "type": "SEQ",
7987 "members": [
7988 {
7989 "type": "CHOICE",
7990 "members": [
7991 {
7992 "type": "SYMBOL",
7993 "name": "_pattern"
7994 },
7995 {
7996 "type": "SYMBOL",
7997 "name": "closure_expression"
7998 }
7999 ]
8000 },
8001 {
8002 "type": "REPEAT",
8003 "content": {
8004 "type": "SEQ",
8005 "members": [
8006 {
8007 "type": "STRING",
8008 "value": ","
8009 },
8010 {
8011 "type": "CHOICE",
8012 "members": [
8013 {
8014 "type": "SYMBOL",
8015 "name": "_pattern"
8016 },
8017 {
8018 "type": "SYMBOL",
8019 "name": "closure_expression"
8020 }
8021 ]
8022 }
8023 ]
8024 }
8025 }
8026 ]
8027 },
8028 {
8029 "type": "BLANK"
8030 }
8031 ]
8032 },
8033 {
8034 "type": "CHOICE",
8035 "members": [
8036 {
8037 "type": "STRING",
8038 "value": ","
8039 },
8040 {
8041 "type": "BLANK"
8042 }
8043 ]
8044 },
8045 {
8046 "type": "STRING",
8047 "value": ")"
8048 }
8049 ]
8050 },
8051 "slice_pattern": {
8052 "type": "SEQ",
8053 "members": [
8054 {
8055 "type": "STRING",
8056 "value": "["
8057 },
8058 {
8059 "type": "CHOICE",
8060 "members": [
8061 {
8062 "type": "SEQ",
8063 "members": [
8064 {
8065 "type": "SYMBOL",
8066 "name": "_pattern"
8067 },
8068 {
8069 "type": "REPEAT",
8070 "content": {
8071 "type": "SEQ",
8072 "members": [
8073 {
8074 "type": "STRING",
8075 "value": ","
8076 },
8077 {
8078 "type": "SYMBOL",
8079 "name": "_pattern"
8080 }
8081 ]
8082 }
8083 }
8084 ]
8085 },
8086 {
8087 "type": "BLANK"
8088 }
8089 ]
8090 },
8091 {
8092 "type": "CHOICE",
8093 "members": [
8094 {
8095 "type": "STRING",
8096 "value": ","
8097 },
8098 {
8099 "type": "BLANK"
8100 }
8101 ]
8102 },
8103 {
8104 "type": "STRING",
8105 "value": "]"
8106 }
8107 ]
8108 },
8109 "tuple_struct_pattern": {
8110 "type": "SEQ",
8111 "members": [
8112 {
8113 "type": "FIELD",
8114 "name": "type",
8115 "content": {
8116 "type": "CHOICE",
8117 "members": [
8118 {
8119 "type": "SYMBOL",
8120 "name": "identifier"
8121 },
8122 {
8123 "type": "SYMBOL",
8124 "name": "scoped_identifier"
8125 },
8126 {
8127 "type": "ALIAS",
8128 "content": {
8129 "type": "SYMBOL",
8130 "name": "generic_type_with_turbofish"
8131 },
8132 "named": true,
8133 "value": "generic_type"
8134 }
8135 ]
8136 }
8137 },
8138 {
8139 "type": "STRING",
8140 "value": "("
8141 },
8142 {
8143 "type": "CHOICE",
8144 "members": [
8145 {
8146 "type": "SEQ",
8147 "members": [
8148 {
8149 "type": "SYMBOL",
8150 "name": "_pattern"
8151 },
8152 {
8153 "type": "REPEAT",
8154 "content": {
8155 "type": "SEQ",
8156 "members": [
8157 {
8158 "type": "STRING",
8159 "value": ","
8160 },
8161 {
8162 "type": "SYMBOL",
8163 "name": "_pattern"
8164 }
8165 ]
8166 }
8167 }
8168 ]
8169 },
8170 {
8171 "type": "BLANK"
8172 }
8173 ]
8174 },
8175 {
8176 "type": "CHOICE",
8177 "members": [
8178 {
8179 "type": "STRING",
8180 "value": ","
8181 },
8182 {
8183 "type": "BLANK"
8184 }
8185 ]
8186 },
8187 {
8188 "type": "STRING",
8189 "value": ")"
8190 }
8191 ]
8192 },
8193 "struct_pattern": {
8194 "type": "SEQ",
8195 "members": [
8196 {
8197 "type": "FIELD",
8198 "name": "type",
8199 "content": {
8200 "type": "CHOICE",
8201 "members": [
8202 {
8203 "type": "SYMBOL",
8204 "name": "_type_identifier"
8205 },
8206 {
8207 "type": "SYMBOL",
8208 "name": "scoped_type_identifier"
8209 }
8210 ]
8211 }
8212 },
8213 {
8214 "type": "STRING",
8215 "value": "{"
8216 },
8217 {
8218 "type": "CHOICE",
8219 "members": [
8220 {
8221 "type": "SEQ",
8222 "members": [
8223 {
8224 "type": "CHOICE",
8225 "members": [
8226 {
8227 "type": "SYMBOL",
8228 "name": "field_pattern"
8229 },
8230 {
8231 "type": "SYMBOL",
8232 "name": "remaining_field_pattern"
8233 }
8234 ]
8235 },
8236 {
8237 "type": "REPEAT",
8238 "content": {
8239 "type": "SEQ",
8240 "members": [
8241 {
8242 "type": "STRING",
8243 "value": ","
8244 },
8245 {
8246 "type": "CHOICE",
8247 "members": [
8248 {
8249 "type": "SYMBOL",
8250 "name": "field_pattern"
8251 },
8252 {
8253 "type": "SYMBOL",
8254 "name": "remaining_field_pattern"
8255 }
8256 ]
8257 }
8258 ]
8259 }
8260 }
8261 ]
8262 },
8263 {
8264 "type": "BLANK"
8265 }
8266 ]
8267 },
8268 {
8269 "type": "CHOICE",
8270 "members": [
8271 {
8272 "type": "STRING",
8273 "value": ","
8274 },
8275 {
8276 "type": "BLANK"
8277 }
8278 ]
8279 },
8280 {
8281 "type": "STRING",
8282 "value": "}"
8283 }
8284 ]
8285 },
8286 "field_pattern": {
8287 "type": "SEQ",
8288 "members": [
8289 {
8290 "type": "CHOICE",
8291 "members": [
8292 {
8293 "type": "STRING",
8294 "value": "ref"
8295 },
8296 {
8297 "type": "BLANK"
8298 }
8299 ]
8300 },
8301 {
8302 "type": "CHOICE",
8303 "members": [
8304 {
8305 "type": "SYMBOL",
8306 "name": "mutable_specifier"
8307 },
8308 {
8309 "type": "BLANK"
8310 }
8311 ]
8312 },
8313 {
8314 "type": "CHOICE",
8315 "members": [
8316 {
8317 "type": "FIELD",
8318 "name": "name",
8319 "content": {
8320 "type": "ALIAS",
8321 "content": {
8322 "type": "SYMBOL",
8323 "name": "identifier"
8324 },
8325 "named": true,
8326 "value": "shorthand_field_identifier"
8327 }
8328 },
8329 {
8330 "type": "SEQ",
8331 "members": [
8332 {
8333 "type": "FIELD",
8334 "name": "name",
8335 "content": {
8336 "type": "SYMBOL",
8337 "name": "_field_identifier"
8338 }
8339 },
8340 {
8341 "type": "STRING",
8342 "value": ":"
8343 },
8344 {
8345 "type": "FIELD",
8346 "name": "pattern",
8347 "content": {
8348 "type": "SYMBOL",
8349 "name": "_pattern"
8350 }
8351 }
8352 ]
8353 }
8354 ]
8355 }
8356 ]
8357 },
8358 "remaining_field_pattern": {
8359 "type": "STRING",
8360 "value": ".."
8361 },
8362 "mut_pattern": {
8363 "type": "PREC",
8364 "value": -1,
8365 "content": {
8366 "type": "SEQ",
8367 "members": [
8368 {
8369 "type": "SYMBOL",
8370 "name": "mutable_specifier"
8371 },
8372 {
8373 "type": "SYMBOL",
8374 "name": "_pattern"
8375 }
8376 ]
8377 }
8378 },
8379 "range_pattern": {
8380 "type": "SEQ",
8381 "members": [
8382 {
8383 "type": "CHOICE",
8384 "members": [
8385 {
8386 "type": "SYMBOL",
8387 "name": "_literal_pattern"
8388 },
8389 {
8390 "type": "SYMBOL",
8391 "name": "_path"
8392 }
8393 ]
8394 },
8395 {
8396 "type": "CHOICE",
8397 "members": [
8398 {
8399 "type": "SEQ",
8400 "members": [
8401 {
8402 "type": "CHOICE",
8403 "members": [
8404 {
8405 "type": "STRING",
8406 "value": "..."
8407 },
8408 {
8409 "type": "STRING",
8410 "value": "..="
8411 },
8412 {
8413 "type": "STRING",
8414 "value": ".."
8415 }
8416 ]
8417 },
8418 {
8419 "type": "CHOICE",
8420 "members": [
8421 {
8422 "type": "SYMBOL",
8423 "name": "_literal_pattern"
8424 },
8425 {
8426 "type": "SYMBOL",
8427 "name": "_path"
8428 }
8429 ]
8430 }
8431 ]
8432 },
8433 {
8434 "type": "STRING",
8435 "value": ".."
8436 }
8437 ]
8438 }
8439 ]
8440 },
8441 "ref_pattern": {
8442 "type": "SEQ",
8443 "members": [
8444 {
8445 "type": "STRING",
8446 "value": "ref"
8447 },
8448 {
8449 "type": "SYMBOL",
8450 "name": "_pattern"
8451 }
8452 ]
8453 },
8454 "captured_pattern": {
8455 "type": "SEQ",
8456 "members": [
8457 {
8458 "type": "SYMBOL",
8459 "name": "identifier"
8460 },
8461 {
8462 "type": "STRING",
8463 "value": "@"
8464 },
8465 {
8466 "type": "SYMBOL",
8467 "name": "_pattern"
8468 }
8469 ]
8470 },
8471 "reference_pattern": {
8472 "type": "SEQ",
8473 "members": [
8474 {
8475 "type": "STRING",
8476 "value": "&"
8477 },
8478 {
8479 "type": "CHOICE",
8480 "members": [
8481 {
8482 "type": "SYMBOL",
8483 "name": "mutable_specifier"
8484 },
8485 {
8486 "type": "BLANK"
8487 }
8488 ]
8489 },
8490 {
8491 "type": "SYMBOL",
8492 "name": "_pattern"
8493 }
8494 ]
8495 },
8496 "or_pattern": {
8497 "type": "PREC_LEFT",
8498 "value": -2,
8499 "content": {
8500 "type": "CHOICE",
8501 "members": [
8502 {
8503 "type": "SEQ",
8504 "members": [
8505 {
8506 "type": "SYMBOL",
8507 "name": "_pattern"
8508 },
8509 {
8510 "type": "STRING",
8511 "value": "|"
8512 },
8513 {
8514 "type": "SYMBOL",
8515 "name": "_pattern"
8516 }
8517 ]
8518 },
8519 {
8520 "type": "SEQ",
8521 "members": [
8522 {
8523 "type": "STRING",
8524 "value": "|"
8525 },
8526 {
8527 "type": "SYMBOL",
8528 "name": "_pattern"
8529 }
8530 ]
8531 }
8532 ]
8533 }
8534 },
8535 "_literal": {
8536 "type": "CHOICE",
8537 "members": [
8538 {
8539 "type": "SYMBOL",
8540 "name": "string_literal"
8541 },
8542 {
8543 "type": "SYMBOL",
8544 "name": "raw_string_literal"
8545 },
8546 {
8547 "type": "SYMBOL",
8548 "name": "char_literal"
8549 },
8550 {
8551 "type": "SYMBOL",
8552 "name": "boolean_literal"
8553 },
8554 {
8555 "type": "SYMBOL",
8556 "name": "integer_literal"
8557 },
8558 {
8559 "type": "SYMBOL",
8560 "name": "float_literal"
8561 }
8562 ]
8563 },
8564 "_literal_pattern": {
8565 "type": "CHOICE",
8566 "members": [
8567 {
8568 "type": "SYMBOL",
8569 "name": "string_literal"
8570 },
8571 {
8572 "type": "SYMBOL",
8573 "name": "raw_string_literal"
8574 },
8575 {
8576 "type": "SYMBOL",
8577 "name": "char_literal"
8578 },
8579 {
8580 "type": "SYMBOL",
8581 "name": "boolean_literal"
8582 },
8583 {
8584 "type": "SYMBOL",
8585 "name": "integer_literal"
8586 },
8587 {
8588 "type": "SYMBOL",
8589 "name": "float_literal"
8590 },
8591 {
8592 "type": "SYMBOL",
8593 "name": "negative_literal"
8594 }
8595 ]
8596 },
8597 "negative_literal": {
8598 "type": "SEQ",
8599 "members": [
8600 {
8601 "type": "STRING",
8602 "value": "-"
8603 },
8604 {
8605 "type": "CHOICE",
8606 "members": [
8607 {
8608 "type": "SYMBOL",
8609 "name": "integer_literal"
8610 },
8611 {
8612 "type": "SYMBOL",
8613 "name": "float_literal"
8614 }
8615 ]
8616 }
8617 ]
8618 },
8619 "integer_literal": {
8620 "type": "TOKEN",
8621 "content": {
8622 "type": "SEQ",
8623 "members": [
8624 {
8625 "type": "CHOICE",
8626 "members": [
8627 {
8628 "type": "PATTERN",
8629 "value": "[0-9][0-9_]*"
8630 },
8631 {
8632 "type": "PATTERN",
8633 "value": "0x[0-9a-fA-F_]+"
8634 },
8635 {
8636 "type": "PATTERN",
8637 "value": "0b[01_]+"
8638 },
8639 {
8640 "type": "PATTERN",
8641 "value": "0o[0-7_]+"
8642 }
8643 ]
8644 },
8645 {
8646 "type": "CHOICE",
8647 "members": [
8648 {
8649 "type": "CHOICE",
8650 "members": [
8651 {
8652 "type": "STRING",
8653 "value": "u8"
8654 },
8655 {
8656 "type": "STRING",
8657 "value": "i8"
8658 },
8659 {
8660 "type": "STRING",
8661 "value": "u16"
8662 },
8663 {
8664 "type": "STRING",
8665 "value": "i16"
8666 },
8667 {
8668 "type": "STRING",
8669 "value": "u32"
8670 },
8671 {
8672 "type": "STRING",
8673 "value": "i32"
8674 },
8675 {
8676 "type": "STRING",
8677 "value": "u64"
8678 },
8679 {
8680 "type": "STRING",
8681 "value": "i64"
8682 },
8683 {
8684 "type": "STRING",
8685 "value": "u128"
8686 },
8687 {
8688 "type": "STRING",
8689 "value": "i128"
8690 },
8691 {
8692 "type": "STRING",
8693 "value": "isize"
8694 },
8695 {
8696 "type": "STRING",
8697 "value": "usize"
8698 },
8699 {
8700 "type": "STRING",
8701 "value": "f32"
8702 },
8703 {
8704 "type": "STRING",
8705 "value": "f64"
8706 }
8707 ]
8708 },
8709 {
8710 "type": "BLANK"
8711 }
8712 ]
8713 }
8714 ]
8715 }
8716 },
8717 "string_literal": {
8718 "type": "SEQ",
8719 "members": [
8720 {
8721 "type": "ALIAS",
8722 "content": {
8723 "type": "PATTERN",
8724 "value": "[bc]?\""
8725 },
8726 "named": false,
8727 "value": "\""
8728 },
8729 {
8730 "type": "REPEAT",
8731 "content": {
8732 "type": "CHOICE",
8733 "members": [
8734 {
8735 "type": "SYMBOL",
8736 "name": "escape_sequence"
8737 },
8738 {
8739 "type": "SYMBOL",
8740 "name": "string_content"
8741 }
8742 ]
8743 }
8744 },
8745 {
8746 "type": "IMMEDIATE_TOKEN",
8747 "content": {
8748 "type": "STRING",
8749 "value": "\""
8750 }
8751 }
8752 ]
8753 },
8754 "raw_string_literal": {
8755 "type": "SEQ",
8756 "members": [
8757 {
8758 "type": "SYMBOL",
8759 "name": "_raw_string_literal_start"
8760 },
8761 {
8762 "type": "ALIAS",
8763 "content": {
8764 "type": "SYMBOL",
8765 "name": "raw_string_literal_content"
8766 },
8767 "named": true,
8768 "value": "string_content"
8769 },
8770 {
8771 "type": "SYMBOL",
8772 "name": "_raw_string_literal_end"
8773 }
8774 ]
8775 },
8776 "char_literal": {
8777 "type": "TOKEN",
8778 "content": {
8779 "type": "SEQ",
8780 "members": [
8781 {
8782 "type": "CHOICE",
8783 "members": [
8784 {
8785 "type": "STRING",
8786 "value": "b"
8787 },
8788 {
8789 "type": "BLANK"
8790 }
8791 ]
8792 },
8793 {
8794 "type": "STRING",
8795 "value": "'"
8796 },
8797 {
8798 "type": "CHOICE",
8799 "members": [
8800 {
8801 "type": "CHOICE",
8802 "members": [
8803 {
8804 "type": "SEQ",
8805 "members": [
8806 {
8807 "type": "STRING",
8808 "value": "\\"
8809 },
8810 {
8811 "type": "CHOICE",
8812 "members": [
8813 {
8814 "type": "PATTERN",
8815 "value": "[^xu]"
8816 },
8817 {
8818 "type": "PATTERN",
8819 "value": "u[0-9a-fA-F]{4}"
8820 },
8821 {
8822 "type": "PATTERN",
8823 "value": "u\\{[0-9a-fA-F]+\\}"
8824 },
8825 {
8826 "type": "PATTERN",
8827 "value": "x[0-9a-fA-F]{2}"
8828 }
8829 ]
8830 }
8831 ]
8832 },
8833 {
8834 "type": "PATTERN",
8835 "value": "[^\\\\']"
8836 }
8837 ]
8838 },
8839 {
8840 "type": "BLANK"
8841 }
8842 ]
8843 },
8844 {
8845 "type": "STRING",
8846 "value": "'"
8847 }
8848 ]
8849 }
8850 },
8851 "escape_sequence": {
8852 "type": "IMMEDIATE_TOKEN",
8853 "content": {
8854 "type": "SEQ",
8855 "members": [
8856 {
8857 "type": "STRING",
8858 "value": "\\"
8859 },
8860 {
8861 "type": "CHOICE",
8862 "members": [
8863 {
8864 "type": "PATTERN",
8865 "value": "[^xu]"
8866 },
8867 {
8868 "type": "PATTERN",
8869 "value": "u[0-9a-fA-F]{4}"
8870 },
8871 {
8872 "type": "PATTERN",
8873 "value": "u\\{[0-9a-fA-F]+\\}"
8874 },
8875 {
8876 "type": "PATTERN",
8877 "value": "x[0-9a-fA-F]{2}"
8878 }
8879 ]
8880 }
8881 ]
8882 }
8883 },
8884 "boolean_literal": {
8885 "type": "CHOICE",
8886 "members": [
8887 {
8888 "type": "STRING",
8889 "value": "true"
8890 },
8891 {
8892 "type": "STRING",
8893 "value": "false"
8894 }
8895 ]
8896 },
8897 "comment": {
8898 "type": "CHOICE",
8899 "members": [
8900 {
8901 "type": "SYMBOL",
8902 "name": "line_comment"
8903 },
8904 {
8905 "type": "SYMBOL",
8906 "name": "block_comment"
8907 }
8908 ]
8909 },
8910 "line_comment": {
8911 "type": "SEQ",
8912 "members": [
8913 {
8914 "type": "STRING",
8915 "value": "//"
8916 },
8917 {
8918 "type": "CHOICE",
8919 "members": [
8920 {
8921 "type": "SEQ",
8922 "members": [
8923 {
8924 "type": "IMMEDIATE_TOKEN",
8925 "content": {
8926 "type": "PREC",
8927 "value": 2,
8928 "content": {
8929 "type": "PATTERN",
8930 "value": "\\/\\/"
8931 }
8932 }
8933 },
8934 {
8935 "type": "PATTERN",
8936 "value": ".*"
8937 }
8938 ]
8939 },
8940 {
8941 "type": "SEQ",
8942 "members": [
8943 {
8944 "type": "SYMBOL",
8945 "name": "_line_doc_comment_marker"
8946 },
8947 {
8948 "type": "FIELD",
8949 "name": "doc",
8950 "content": {
8951 "type": "ALIAS",
8952 "content": {
8953 "type": "SYMBOL",
8954 "name": "_line_doc_content"
8955 },
8956 "named": true,
8957 "value": "doc_comment"
8958 }
8959 }
8960 ]
8961 },
8962 {
8963 "type": "IMMEDIATE_TOKEN",
8964 "content": {
8965 "type": "PREC",
8966 "value": 1,
8967 "content": {
8968 "type": "PATTERN",
8969 "value": ".*"
8970 }
8971 }
8972 }
8973 ]
8974 }
8975 ]
8976 },
8977 "_line_doc_comment_marker": {
8978 "type": "CHOICE",
8979 "members": [
8980 {
8981 "type": "FIELD",
8982 "name": "outer",
8983 "content": {
8984 "type": "ALIAS",
8985 "content": {
8986 "type": "SYMBOL",
8987 "name": "_outer_line_doc_comment_marker"
8988 },
8989 "named": true,
8990 "value": "outer_doc_comment_marker"
8991 }
8992 },
8993 {
8994 "type": "FIELD",
8995 "name": "inner",
8996 "content": {
8997 "type": "ALIAS",
8998 "content": {
8999 "type": "SYMBOL",
9000 "name": "_inner_line_doc_comment_marker"
9001 },
9002 "named": true,
9003 "value": "inner_doc_comment_marker"
9004 }
9005 }
9006 ]
9007 },
9008 "_inner_line_doc_comment_marker": {
9009 "type": "IMMEDIATE_TOKEN",
9010 "content": {
9011 "type": "PREC",
9012 "value": 2,
9013 "content": {
9014 "type": "STRING",
9015 "value": "!"
9016 }
9017 }
9018 },
9019 "_outer_line_doc_comment_marker": {
9020 "type": "IMMEDIATE_TOKEN",
9021 "content": {
9022 "type": "PREC",
9023 "value": 2,
9024 "content": {
9025 "type": "STRING",
9026 "value": "/"
9027 }
9028 }
9029 },
9030 "block_comment": {
9031 "type": "SEQ",
9032 "members": [
9033 {
9034 "type": "STRING",
9035 "value": "/*"
9036 },
9037 {
9038 "type": "CHOICE",
9039 "members": [
9040 {
9041 "type": "CHOICE",
9042 "members": [
9043 {
9044 "type": "SEQ",
9045 "members": [
9046 {
9047 "type": "SYMBOL",
9048 "name": "_block_doc_comment_marker"
9049 },
9050 {
9051 "type": "CHOICE",
9052 "members": [
9053 {
9054 "type": "FIELD",
9055 "name": "doc",
9056 "content": {
9057 "type": "ALIAS",
9058 "content": {
9059 "type": "SYMBOL",
9060 "name": "_block_comment_content"
9061 },
9062 "named": true,
9063 "value": "doc_comment"
9064 }
9065 },
9066 {
9067 "type": "BLANK"
9068 }
9069 ]
9070 }
9071 ]
9072 },
9073 {
9074 "type": "SYMBOL",
9075 "name": "_block_comment_content"
9076 }
9077 ]
9078 },
9079 {
9080 "type": "BLANK"
9081 }
9082 ]
9083 },
9084 {
9085 "type": "STRING",
9086 "value": "*/"
9087 }
9088 ]
9089 },
9090 "_block_doc_comment_marker": {
9091 "type": "CHOICE",
9092 "members": [
9093 {
9094 "type": "FIELD",
9095 "name": "outer",
9096 "content": {
9097 "type": "ALIAS",
9098 "content": {
9099 "type": "SYMBOL",
9100 "name": "_outer_block_doc_comment_marker"
9101 },
9102 "named": true,
9103 "value": "outer_doc_comment_marker"
9104 }
9105 },
9106 {
9107 "type": "FIELD",
9108 "name": "inner",
9109 "content": {
9110 "type": "ALIAS",
9111 "content": {
9112 "type": "SYMBOL",
9113 "name": "_inner_block_doc_comment_marker"
9114 },
9115 "named": true,
9116 "value": "inner_doc_comment_marker"
9117 }
9118 }
9119 ]
9120 },
9121 "_path": {
9122 "type": "CHOICE",
9123 "members": [
9124 {
9125 "type": "SYMBOL",
9126 "name": "self"
9127 },
9128 {
9129 "type": "ALIAS",
9130 "content": {
9131 "type": "CHOICE",
9132 "members": [
9133 {
9134 "type": "STRING",
9135 "value": "u8"
9136 },
9137 {
9138 "type": "STRING",
9139 "value": "i8"
9140 },
9141 {
9142 "type": "STRING",
9143 "value": "u16"
9144 },
9145 {
9146 "type": "STRING",
9147 "value": "i16"
9148 },
9149 {
9150 "type": "STRING",
9151 "value": "u32"
9152 },
9153 {
9154 "type": "STRING",
9155 "value": "i32"
9156 },
9157 {
9158 "type": "STRING",
9159 "value": "u64"
9160 },
9161 {
9162 "type": "STRING",
9163 "value": "i64"
9164 },
9165 {
9166 "type": "STRING",
9167 "value": "u128"
9168 },
9169 {
9170 "type": "STRING",
9171 "value": "i128"
9172 },
9173 {
9174 "type": "STRING",
9175 "value": "isize"
9176 },
9177 {
9178 "type": "STRING",
9179 "value": "usize"
9180 },
9181 {
9182 "type": "STRING",
9183 "value": "f32"
9184 },
9185 {
9186 "type": "STRING",
9187 "value": "f64"
9188 },
9189 {
9190 "type": "STRING",
9191 "value": "bool"
9192 },
9193 {
9194 "type": "STRING",
9195 "value": "str"
9196 },
9197 {
9198 "type": "STRING",
9199 "value": "char"
9200 }
9201 ]
9202 },
9203 "named": true,
9204 "value": "identifier"
9205 },
9206 {
9207 "type": "SYMBOL",
9208 "name": "metavariable"
9209 },
9210 {
9211 "type": "SYMBOL",
9212 "name": "super"
9213 },
9214 {
9215 "type": "SYMBOL",
9216 "name": "crate"
9217 },
9218 {
9219 "type": "SYMBOL",
9220 "name": "identifier"
9221 },
9222 {
9223 "type": "SYMBOL",
9224 "name": "scoped_identifier"
9225 },
9226 {
9227 "type": "SYMBOL",
9228 "name": "_reserved_identifier"
9229 }
9230 ]
9231 },
9232 "identifier": {
9233 "type": "PATTERN",
9234 "value": "(r#)?[_\\p{XID_Start}][_\\p{XID_Continue}]*"
9235 },
9236 "shebang": {
9237 "type": "PATTERN",
9238 "value": "#![\\s]*[^\\[\\s]+"
9239 },
9240 "_reserved_identifier": {
9241 "type": "ALIAS",
9242 "content": {
9243 "type": "CHOICE",
9244 "members": [
9245 {
9246 "type": "STRING",
9247 "value": "default"
9248 },
9249 {
9250 "type": "STRING",
9251 "value": "union"
9252 }
9253 ]
9254 },
9255 "named": true,
9256 "value": "identifier"
9257 },
9258 "_type_identifier": {
9259 "type": "ALIAS",
9260 "content": {
9261 "type": "SYMBOL",
9262 "name": "identifier"
9263 },
9264 "named": true,
9265 "value": "type_identifier"
9266 },
9267 "_field_identifier": {
9268 "type": "ALIAS",
9269 "content": {
9270 "type": "SYMBOL",
9271 "name": "identifier"
9272 },
9273 "named": true,
9274 "value": "field_identifier"
9275 },
9276 "self": {
9277 "type": "STRING",
9278 "value": "self"
9279 },
9280 "super": {
9281 "type": "STRING",
9282 "value": "super"
9283 },
9284 "crate": {
9285 "type": "STRING",
9286 "value": "crate"
9287 },
9288 "metavariable": {
9289 "type": "PATTERN",
9290 "value": "\\$[a-zA-Z_]\\w*"
9291 }
9292 },
9293 "extras": [
9294 {
9295 "type": "PATTERN",
9296 "value": "\\s"
9297 },
9298 {
9299 "type": "SYMBOL",
9300 "name": "line_comment"
9301 },
9302 {
9303 "type": "SYMBOL",
9304 "name": "block_comment"
9305 }
9306 ],
9307 "conflicts": [
9308 [
9309 "_type",
9310 "_pattern"
9311 ],
9312 [
9313 "unit_type",
9314 "tuple_pattern"
9315 ],
9316 [
9317 "scoped_identifier",
9318 "scoped_type_identifier"
9319 ],
9320 [
9321 "parameters",
9322 "_pattern"
9323 ],
9324 [
9325 "parameters",
9326 "tuple_struct_pattern"
9327 ],
9328 [
9329 "type_parameters",
9330 "for_lifetimes"
9331 ],
9332 [
9333 "array_expression"
9334 ],
9335 [
9336 "visibility_modifier"
9337 ],
9338 [
9339 "visibility_modifier",
9340 "scoped_identifier",
9341 "scoped_type_identifier"
9342 ]
9343 ],
9344 "precedences": [],
9345 "externals": [
9346 {
9347 "type": "SYMBOL",
9348 "name": "string_content"
9349 },
9350 {
9351 "type": "SYMBOL",
9352 "name": "_raw_string_literal_start"
9353 },
9354 {
9355 "type": "SYMBOL",
9356 "name": "raw_string_literal_content"
9357 },
9358 {
9359 "type": "SYMBOL",
9360 "name": "_raw_string_literal_end"
9361 },
9362 {
9363 "type": "SYMBOL",
9364 "name": "float_literal"
9365 },
9366 {
9367 "type": "SYMBOL",
9368 "name": "_outer_block_doc_comment_marker"
9369 },
9370 {
9371 "type": "SYMBOL",
9372 "name": "_inner_block_doc_comment_marker"
9373 },
9374 {
9375 "type": "SYMBOL",
9376 "name": "_block_comment_content"
9377 },
9378 {
9379 "type": "SYMBOL",
9380 "name": "_line_doc_content"
9381 },
9382 {
9383 "type": "SYMBOL",
9384 "name": "_error_sentinel"
9385 }
9386 ],
9387 "inline": [
9388 "_path",
9389 "_type_identifier",
9390 "_tokens",
9391 "_field_identifier",
9392 "_non_special_token",
9393 "_declaration_statement",
9394 "_reserved_identifier",
9395 "_expression_ending_with_block"
9396 ],
9397 "supertypes": [
9398 "_expression",
9399 "_type",
9400 "_literal",
9401 "_literal_pattern",
9402 "_declaration_statement",
9403 "_pattern"
9404 ]
9405}