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