1[
2 {
3 "type": "declaration",
4 "named": true,
5 "subtypes": [
6 {
7 "type": "function_declaration",
8 "named": true
9 },
10 {
11 "type": "variable_declaration",
12 "named": true
13 }
14 ]
15 },
16 {
17 "type": "expression",
18 "named": true,
19 "subtypes": [
20 {
21 "type": "binary_expression",
22 "named": true
23 },
24 {
25 "type": "false",
26 "named": true
27 },
28 {
29 "type": "function_call",
30 "named": true
31 },
32 {
33 "type": "function_definition",
34 "named": true
35 },
36 {
37 "type": "nil",
38 "named": true
39 },
40 {
41 "type": "number",
42 "named": true
43 },
44 {
45 "type": "parenthesized_expression",
46 "named": true
47 },
48 {
49 "type": "string",
50 "named": true
51 },
52 {
53 "type": "table_constructor",
54 "named": true
55 },
56 {
57 "type": "true",
58 "named": true
59 },
60 {
61 "type": "unary_expression",
62 "named": true
63 },
64 {
65 "type": "vararg_expression",
66 "named": true
67 },
68 {
69 "type": "variable",
70 "named": true
71 }
72 ]
73 },
74 {
75 "type": "statement",
76 "named": true,
77 "subtypes": [
78 {
79 "type": "assignment_statement",
80 "named": true
81 },
82 {
83 "type": "break_statement",
84 "named": true
85 },
86 {
87 "type": "declaration",
88 "named": true
89 },
90 {
91 "type": "do_statement",
92 "named": true
93 },
94 {
95 "type": "empty_statement",
96 "named": true
97 },
98 {
99 "type": "for_statement",
100 "named": true
101 },
102 {
103 "type": "function_call",
104 "named": true
105 },
106 {
107 "type": "goto_statement",
108 "named": true
109 },
110 {
111 "type": "if_statement",
112 "named": true
113 },
114 {
115 "type": "label_statement",
116 "named": true
117 },
118 {
119 "type": "repeat_statement",
120 "named": true
121 },
122 {
123 "type": "while_statement",
124 "named": true
125 }
126 ]
127 },
128 {
129 "type": "variable",
130 "named": true,
131 "subtypes": [
132 {
133 "type": "bracket_index_expression",
134 "named": true
135 },
136 {
137 "type": "dot_index_expression",
138 "named": true
139 },
140 {
141 "type": "identifier",
142 "named": true
143 }
144 ]
145 },
146 {
147 "type": "arguments",
148 "named": true,
149 "fields": {},
150 "children": {
151 "multiple": true,
152 "required": false,
153 "types": [
154 {
155 "type": "expression",
156 "named": true
157 }
158 ]
159 }
160 },
161 {
162 "type": "assignment_statement",
163 "named": true,
164 "fields": {},
165 "children": {
166 "multiple": true,
167 "required": true,
168 "types": [
169 {
170 "type": "expression_list",
171 "named": true
172 },
173 {
174 "type": "variable_list",
175 "named": true
176 }
177 ]
178 }
179 },
180 {
181 "type": "attribute",
182 "named": true,
183 "fields": {},
184 "children": {
185 "multiple": false,
186 "required": true,
187 "types": [
188 {
189 "type": "identifier",
190 "named": true
191 }
192 ]
193 }
194 },
195 {
196 "type": "binary_expression",
197 "named": true,
198 "fields": {
199 "left": {
200 "multiple": false,
201 "required": true,
202 "types": [
203 {
204 "type": "expression",
205 "named": true
206 }
207 ]
208 },
209 "right": {
210 "multiple": false,
211 "required": true,
212 "types": [
213 {
214 "type": "expression",
215 "named": true
216 }
217 ]
218 }
219 }
220 },
221 {
222 "type": "block",
223 "named": true,
224 "fields": {},
225 "children": {
226 "multiple": true,
227 "required": true,
228 "types": [
229 {
230 "type": "return_statement",
231 "named": true
232 },
233 {
234 "type": "statement",
235 "named": true
236 }
237 ]
238 }
239 },
240 {
241 "type": "bracket_index_expression",
242 "named": true,
243 "fields": {
244 "field": {
245 "multiple": false,
246 "required": true,
247 "types": [
248 {
249 "type": "expression",
250 "named": true
251 }
252 ]
253 },
254 "table": {
255 "multiple": false,
256 "required": true,
257 "types": [
258 {
259 "type": "function_call",
260 "named": true
261 },
262 {
263 "type": "parenthesized_expression",
264 "named": true
265 },
266 {
267 "type": "variable",
268 "named": true
269 }
270 ]
271 }
272 }
273 },
274 {
275 "type": "chunk",
276 "named": true,
277 "fields": {},
278 "children": {
279 "multiple": true,
280 "required": false,
281 "types": [
282 {
283 "type": "hash_bang_line",
284 "named": true
285 },
286 {
287 "type": "return_statement",
288 "named": true
289 },
290 {
291 "type": "statement",
292 "named": true
293 }
294 ]
295 }
296 },
297 {
298 "type": "comment",
299 "named": true,
300 "fields": {
301 "content": {
302 "multiple": false,
303 "required": true,
304 "types": [
305 {
306 "type": "comment_content",
307 "named": true
308 }
309 ]
310 },
311 "end": {
312 "multiple": false,
313 "required": false,
314 "types": [
315 {
316 "type": "]]",
317 "named": false
318 }
319 ]
320 },
321 "start": {
322 "multiple": false,
323 "required": true,
324 "types": [
325 {
326 "type": "--",
327 "named": false
328 },
329 {
330 "type": "[[",
331 "named": false
332 }
333 ]
334 }
335 }
336 },
337 {
338 "type": "do_statement",
339 "named": true,
340 "fields": {
341 "body": {
342 "multiple": false,
343 "required": false,
344 "types": [
345 {
346 "type": "block",
347 "named": true
348 }
349 ]
350 }
351 }
352 },
353 {
354 "type": "dot_index_expression",
355 "named": true,
356 "fields": {
357 "field": {
358 "multiple": false,
359 "required": true,
360 "types": [
361 {
362 "type": "identifier",
363 "named": true
364 }
365 ]
366 },
367 "table": {
368 "multiple": false,
369 "required": true,
370 "types": [
371 {
372 "type": "function_call",
373 "named": true
374 },
375 {
376 "type": "parenthesized_expression",
377 "named": true
378 },
379 {
380 "type": "variable",
381 "named": true
382 }
383 ]
384 }
385 }
386 },
387 {
388 "type": "else_statement",
389 "named": true,
390 "fields": {
391 "body": {
392 "multiple": false,
393 "required": false,
394 "types": [
395 {
396 "type": "block",
397 "named": true
398 }
399 ]
400 }
401 }
402 },
403 {
404 "type": "elseif_statement",
405 "named": true,
406 "fields": {
407 "condition": {
408 "multiple": false,
409 "required": true,
410 "types": [
411 {
412 "type": "expression",
413 "named": true
414 }
415 ]
416 },
417 "consequence": {
418 "multiple": false,
419 "required": false,
420 "types": [
421 {
422 "type": "block",
423 "named": true
424 }
425 ]
426 }
427 }
428 },
429 {
430 "type": "empty_statement",
431 "named": true,
432 "fields": {}
433 },
434 {
435 "type": "expression_list",
436 "named": true,
437 "fields": {
438 "value": {
439 "multiple": true,
440 "required": false,
441 "types": [
442 {
443 "type": "expression",
444 "named": true
445 }
446 ]
447 }
448 },
449 "children": {
450 "multiple": true,
451 "required": false,
452 "types": [
453 {
454 "type": "expression",
455 "named": true
456 }
457 ]
458 }
459 },
460 {
461 "type": "field",
462 "named": true,
463 "fields": {
464 "name": {
465 "multiple": false,
466 "required": false,
467 "types": [
468 {
469 "type": "expression",
470 "named": true
471 },
472 {
473 "type": "identifier",
474 "named": true
475 }
476 ]
477 },
478 "value": {
479 "multiple": false,
480 "required": true,
481 "types": [
482 {
483 "type": "expression",
484 "named": true
485 }
486 ]
487 }
488 }
489 },
490 {
491 "type": "for_generic_clause",
492 "named": true,
493 "fields": {},
494 "children": {
495 "multiple": true,
496 "required": true,
497 "types": [
498 {
499 "type": "expression_list",
500 "named": true
501 },
502 {
503 "type": "variable_list",
504 "named": true
505 }
506 ]
507 }
508 },
509 {
510 "type": "for_numeric_clause",
511 "named": true,
512 "fields": {
513 "end": {
514 "multiple": false,
515 "required": true,
516 "types": [
517 {
518 "type": "expression",
519 "named": true
520 }
521 ]
522 },
523 "name": {
524 "multiple": false,
525 "required": true,
526 "types": [
527 {
528 "type": "identifier",
529 "named": true
530 }
531 ]
532 },
533 "start": {
534 "multiple": false,
535 "required": true,
536 "types": [
537 {
538 "type": "expression",
539 "named": true
540 }
541 ]
542 },
543 "step": {
544 "multiple": false,
545 "required": false,
546 "types": [
547 {
548 "type": "expression",
549 "named": true
550 }
551 ]
552 }
553 }
554 },
555 {
556 "type": "for_statement",
557 "named": true,
558 "fields": {
559 "body": {
560 "multiple": false,
561 "required": false,
562 "types": [
563 {
564 "type": "block",
565 "named": true
566 }
567 ]
568 },
569 "clause": {
570 "multiple": false,
571 "required": true,
572 "types": [
573 {
574 "type": "for_generic_clause",
575 "named": true
576 },
577 {
578 "type": "for_numeric_clause",
579 "named": true
580 }
581 ]
582 }
583 }
584 },
585 {
586 "type": "function_call",
587 "named": true,
588 "fields": {
589 "arguments": {
590 "multiple": false,
591 "required": true,
592 "types": [
593 {
594 "type": "arguments",
595 "named": true
596 }
597 ]
598 },
599 "name": {
600 "multiple": false,
601 "required": true,
602 "types": [
603 {
604 "type": "function_call",
605 "named": true
606 },
607 {
608 "type": "method_index_expression",
609 "named": true
610 },
611 {
612 "type": "parenthesized_expression",
613 "named": true
614 },
615 {
616 "type": "variable",
617 "named": true
618 }
619 ]
620 }
621 }
622 },
623 {
624 "type": "function_declaration",
625 "named": true,
626 "fields": {
627 "body": {
628 "multiple": false,
629 "required": false,
630 "types": [
631 {
632 "type": "block",
633 "named": true
634 }
635 ]
636 },
637 "name": {
638 "multiple": false,
639 "required": true,
640 "types": [
641 {
642 "type": "dot_index_expression",
643 "named": true
644 },
645 {
646 "type": "identifier",
647 "named": true
648 },
649 {
650 "type": "method_index_expression",
651 "named": true
652 }
653 ]
654 },
655 "parameters": {
656 "multiple": false,
657 "required": true,
658 "types": [
659 {
660 "type": "parameters",
661 "named": true
662 }
663 ]
664 }
665 }
666 },
667 {
668 "type": "function_definition",
669 "named": true,
670 "fields": {
671 "body": {
672 "multiple": false,
673 "required": false,
674 "types": [
675 {
676 "type": "block",
677 "named": true
678 }
679 ]
680 },
681 "parameters": {
682 "multiple": false,
683 "required": true,
684 "types": [
685 {
686 "type": "parameters",
687 "named": true
688 }
689 ]
690 }
691 }
692 },
693 {
694 "type": "goto_statement",
695 "named": true,
696 "fields": {},
697 "children": {
698 "multiple": false,
699 "required": true,
700 "types": [
701 {
702 "type": "identifier",
703 "named": true
704 }
705 ]
706 }
707 },
708 {
709 "type": "if_statement",
710 "named": true,
711 "fields": {
712 "alternative": {
713 "multiple": true,
714 "required": false,
715 "types": [
716 {
717 "type": "else_statement",
718 "named": true
719 },
720 {
721 "type": "elseif_statement",
722 "named": true
723 }
724 ]
725 },
726 "condition": {
727 "multiple": false,
728 "required": true,
729 "types": [
730 {
731 "type": "expression",
732 "named": true
733 }
734 ]
735 },
736 "consequence": {
737 "multiple": false,
738 "required": false,
739 "types": [
740 {
741 "type": "block",
742 "named": true
743 }
744 ]
745 }
746 }
747 },
748 {
749 "type": "label_statement",
750 "named": true,
751 "fields": {},
752 "children": {
753 "multiple": false,
754 "required": true,
755 "types": [
756 {
757 "type": "identifier",
758 "named": true
759 }
760 ]
761 }
762 },
763 {
764 "type": "method_index_expression",
765 "named": true,
766 "fields": {
767 "method": {
768 "multiple": false,
769 "required": true,
770 "types": [
771 {
772 "type": "identifier",
773 "named": true
774 }
775 ]
776 },
777 "table": {
778 "multiple": false,
779 "required": true,
780 "types": [
781 {
782 "type": "function_call",
783 "named": true
784 },
785 {
786 "type": "parenthesized_expression",
787 "named": true
788 },
789 {
790 "type": "variable",
791 "named": true
792 }
793 ]
794 }
795 }
796 },
797 {
798 "type": "parameters",
799 "named": true,
800 "fields": {
801 "name": {
802 "multiple": true,
803 "required": false,
804 "types": [
805 {
806 "type": "identifier",
807 "named": true
808 }
809 ]
810 }
811 },
812 "children": {
813 "multiple": false,
814 "required": false,
815 "types": [
816 {
817 "type": "vararg_expression",
818 "named": true
819 }
820 ]
821 }
822 },
823 {
824 "type": "parenthesized_expression",
825 "named": true,
826 "fields": {},
827 "children": {
828 "multiple": false,
829 "required": true,
830 "types": [
831 {
832 "type": "expression",
833 "named": true
834 }
835 ]
836 }
837 },
838 {
839 "type": "repeat_statement",
840 "named": true,
841 "fields": {
842 "body": {
843 "multiple": false,
844 "required": false,
845 "types": [
846 {
847 "type": "block",
848 "named": true
849 }
850 ]
851 },
852 "condition": {
853 "multiple": false,
854 "required": true,
855 "types": [
856 {
857 "type": "expression",
858 "named": true
859 }
860 ]
861 }
862 }
863 },
864 {
865 "type": "return_statement",
866 "named": true,
867 "fields": {},
868 "children": {
869 "multiple": false,
870 "required": false,
871 "types": [
872 {
873 "type": "expression_list",
874 "named": true
875 }
876 ]
877 }
878 },
879 {
880 "type": "string",
881 "named": true,
882 "fields": {
883 "content": {
884 "multiple": false,
885 "required": false,
886 "types": [
887 {
888 "type": "string_content",
889 "named": true
890 }
891 ]
892 },
893 "end": {
894 "multiple": false,
895 "required": true,
896 "types": [
897 {
898 "type": "\"",
899 "named": false
900 },
901 {
902 "type": "'",
903 "named": false
904 },
905 {
906 "type": "]]",
907 "named": false
908 }
909 ]
910 },
911 "start": {
912 "multiple": false,
913 "required": true,
914 "types": [
915 {
916 "type": "\"",
917 "named": false
918 },
919 {
920 "type": "'",
921 "named": false
922 },
923 {
924 "type": "[[",
925 "named": false
926 }
927 ]
928 }
929 }
930 },
931 {
932 "type": "string_content",
933 "named": true,
934 "fields": {},
935 "children": {
936 "multiple": true,
937 "required": false,
938 "types": [
939 {
940 "type": "escape_sequence",
941 "named": true
942 }
943 ]
944 }
945 },
946 {
947 "type": "table_constructor",
948 "named": true,
949 "fields": {},
950 "children": {
951 "multiple": true,
952 "required": false,
953 "types": [
954 {
955 "type": "field",
956 "named": true
957 }
958 ]
959 }
960 },
961 {
962 "type": "unary_expression",
963 "named": true,
964 "fields": {
965 "operand": {
966 "multiple": false,
967 "required": true,
968 "types": [
969 {
970 "type": "expression",
971 "named": true
972 }
973 ]
974 }
975 }
976 },
977 {
978 "type": "variable_declaration",
979 "named": true,
980 "fields": {},
981 "children": {
982 "multiple": false,
983 "required": true,
984 "types": [
985 {
986 "type": "assignment_statement",
987 "named": true
988 },
989 {
990 "type": "variable_list",
991 "named": true
992 }
993 ]
994 }
995 },
996 {
997 "type": "variable_list",
998 "named": true,
999 "fields": {
1000 "attribute": {
1001 "multiple": true,
1002 "required": false,
1003 "types": [
1004 {
1005 "type": "attribute",
1006 "named": true
1007 }
1008 ]
1009 },
1010 "name": {
1011 "multiple": true,
1012 "required": true,
1013 "types": [
1014 {
1015 "type": "variable",
1016 "named": true
1017 }
1018 ]
1019 }
1020 }
1021 },
1022 {
1023 "type": "while_statement",
1024 "named": true,
1025 "fields": {
1026 "body": {
1027 "multiple": false,
1028 "required": false,
1029 "types": [
1030 {
1031 "type": "block",
1032 "named": true
1033 }
1034 ]
1035 },
1036 "condition": {
1037 "multiple": false,
1038 "required": true,
1039 "types": [
1040 {
1041 "type": "expression",
1042 "named": true
1043 }
1044 ]
1045 }
1046 }
1047 },
1048 {
1049 "type": "\"",
1050 "named": false
1051 },
1052 {
1053 "type": "#",
1054 "named": false
1055 },
1056 {
1057 "type": "%",
1058 "named": false
1059 },
1060 {
1061 "type": "&",
1062 "named": false
1063 },
1064 {
1065 "type": "'",
1066 "named": false
1067 },
1068 {
1069 "type": "(",
1070 "named": false
1071 },
1072 {
1073 "type": ")",
1074 "named": false
1075 },
1076 {
1077 "type": "*",
1078 "named": false
1079 },
1080 {
1081 "type": "+",
1082 "named": false
1083 },
1084 {
1085 "type": ",",
1086 "named": false
1087 },
1088 {
1089 "type": "-",
1090 "named": false
1091 },
1092 {
1093 "type": "--",
1094 "named": false
1095 },
1096 {
1097 "type": ".",
1098 "named": false
1099 },
1100 {
1101 "type": "..",
1102 "named": false
1103 },
1104 {
1105 "type": "/",
1106 "named": false
1107 },
1108 {
1109 "type": "//",
1110 "named": false
1111 },
1112 {
1113 "type": ":",
1114 "named": false
1115 },
1116 {
1117 "type": "::",
1118 "named": false
1119 },
1120 {
1121 "type": ";",
1122 "named": false
1123 },
1124 {
1125 "type": "<",
1126 "named": false
1127 },
1128 {
1129 "type": "<<",
1130 "named": false
1131 },
1132 {
1133 "type": "<=",
1134 "named": false
1135 },
1136 {
1137 "type": "=",
1138 "named": false
1139 },
1140 {
1141 "type": "==",
1142 "named": false
1143 },
1144 {
1145 "type": ">",
1146 "named": false
1147 },
1148 {
1149 "type": ">=",
1150 "named": false
1151 },
1152 {
1153 "type": ">>",
1154 "named": false
1155 },
1156 {
1157 "type": "[",
1158 "named": false
1159 },
1160 {
1161 "type": "[[",
1162 "named": false
1163 },
1164 {
1165 "type": "]",
1166 "named": false
1167 },
1168 {
1169 "type": "]]",
1170 "named": false
1171 },
1172 {
1173 "type": "^",
1174 "named": false
1175 },
1176 {
1177 "type": "and",
1178 "named": false
1179 },
1180 {
1181 "type": "break_statement",
1182 "named": true
1183 },
1184 {
1185 "type": "comment_content",
1186 "named": true
1187 },
1188 {
1189 "type": "do",
1190 "named": false
1191 },
1192 {
1193 "type": "else",
1194 "named": false
1195 },
1196 {
1197 "type": "elseif",
1198 "named": false
1199 },
1200 {
1201 "type": "end",
1202 "named": false
1203 },
1204 {
1205 "type": "escape_sequence",
1206 "named": true
1207 },
1208 {
1209 "type": "false",
1210 "named": true
1211 },
1212 {
1213 "type": "for",
1214 "named": false
1215 },
1216 {
1217 "type": "function",
1218 "named": false
1219 },
1220 {
1221 "type": "goto",
1222 "named": false
1223 },
1224 {
1225 "type": "hash_bang_line",
1226 "named": true
1227 },
1228 {
1229 "type": "identifier",
1230 "named": true
1231 },
1232 {
1233 "type": "if",
1234 "named": false
1235 },
1236 {
1237 "type": "in",
1238 "named": false
1239 },
1240 {
1241 "type": "local",
1242 "named": false
1243 },
1244 {
1245 "type": "nil",
1246 "named": true
1247 },
1248 {
1249 "type": "not",
1250 "named": false
1251 },
1252 {
1253 "type": "number",
1254 "named": true
1255 },
1256 {
1257 "type": "or",
1258 "named": false
1259 },
1260 {
1261 "type": "repeat",
1262 "named": false
1263 },
1264 {
1265 "type": "return",
1266 "named": false
1267 },
1268 {
1269 "type": "then",
1270 "named": false
1271 },
1272 {
1273 "type": "true",
1274 "named": true
1275 },
1276 {
1277 "type": "until",
1278 "named": false
1279 },
1280 {
1281 "type": "vararg_expression",
1282 "named": true
1283 },
1284 {
1285 "type": "while",
1286 "named": false
1287 },
1288 {
1289 "type": "{",
1290 "named": false
1291 },
1292 {
1293 "type": "|",
1294 "named": false
1295 },
1296 {
1297 "type": "}",
1298 "named": false
1299 },
1300 {
1301 "type": "~",
1302 "named": false
1303 },
1304 {
1305 "type": "~=",
1306 "named": false
1307 }
1308]