1{
2  "name": "php",
3  "word": "name",
4  "rules": {
5    "program": {
6      "type": "SEQ",
7      "members": [
8        {
9          "type": "CHOICE",
10          "members": [
11            {
12              "type": "SYMBOL",
13              "name": "text"
14            },
15            {
16              "type": "BLANK"
17            }
18          ]
19        },
20        {
21          "type": "CHOICE",
22          "members": [
23            {
24              "type": "SEQ",
25              "members": [
26                {
27                  "type": "SYMBOL",
28                  "name": "php_tag"
29                },
30                {
31                  "type": "REPEAT",
32                  "content": {
33                    "type": "SYMBOL",
34                    "name": "_statement"
35                  }
36                }
37              ]
38            },
39            {
40              "type": "BLANK"
41            }
42          ]
43        }
44      ]
45    },
46    "php_tag": {
47      "type": "PATTERN",
48      "value": "<\\?([pP][hH][pP]|=)?"
49    },
50    "text_interpolation": {
51      "type": "SEQ",
52      "members": [
53        {
54          "type": "STRING",
55          "value": "?>"
56        },
57        {
58          "type": "CHOICE",
59          "members": [
60            {
61              "type": "SYMBOL",
62              "name": "text"
63            },
64            {
65              "type": "BLANK"
66            }
67          ]
68        },
69        {
70          "type": "CHOICE",
71          "members": [
72            {
73              "type": "SYMBOL",
74              "name": "php_tag"
75            },
76            {
77              "type": "SYMBOL",
78              "name": "_eof"
79            }
80          ]
81        }
82      ]
83    },
84    "text": {
85      "type": "REPEAT1",
86      "content": {
87        "type": "CHOICE",
88        "members": [
89          {
90            "type": "TOKEN",
91            "content": {
92              "type": "PREC",
93              "value": -1,
94              "content": {
95                "type": "PATTERN",
96                "value": "<"
97              }
98            }
99          },
100          {
101            "type": "PATTERN",
102            "value": "[^\\s<][^<]*"
103          }
104        ]
105      }
106    },
107    "_statement": {
108      "type": "CHOICE",
109      "members": [
110        {
111          "type": "SYMBOL",
112          "name": "empty_statement"
113        },
114        {
115          "type": "SYMBOL",
116          "name": "compound_statement"
117        },
118        {
119          "type": "SYMBOL",
120          "name": "named_label_statement"
121        },
122        {
123          "type": "SYMBOL",
124          "name": "expression_statement"
125        },
126        {
127          "type": "SYMBOL",
128          "name": "if_statement"
129        },
130        {
131          "type": "SYMBOL",
132          "name": "switch_statement"
133        },
134        {
135          "type": "SYMBOL",
136          "name": "while_statement"
137        },
138        {
139          "type": "SYMBOL",
140          "name": "do_statement"
141        },
142        {
143          "type": "SYMBOL",
144          "name": "for_statement"
145        },
146        {
147          "type": "SYMBOL",
148          "name": "foreach_statement"
149        },
150        {
151          "type": "SYMBOL",
152          "name": "goto_statement"
153        },
154        {
155          "type": "SYMBOL",
156          "name": "continue_statement"
157        },
158        {
159          "type": "SYMBOL",
160          "name": "break_statement"
161        },
162        {
163          "type": "SYMBOL",
164          "name": "return_statement"
165        },
166        {
167          "type": "SYMBOL",
168          "name": "throw_statement"
169        },
170        {
171          "type": "SYMBOL",
172          "name": "try_statement"
173        },
174        {
175          "type": "SYMBOL",
176          "name": "declare_statement"
177        },
178        {
179          "type": "SYMBOL",
180          "name": "echo_statement"
181        },
182        {
183          "type": "SYMBOL",
184          "name": "unset_statement"
185        },
186        {
187          "type": "SYMBOL",
188          "name": "const_declaration"
189        },
190        {
191          "type": "SYMBOL",
192          "name": "function_definition"
193        },
194        {
195          "type": "SYMBOL",
196          "name": "class_declaration"
197        },
198        {
199          "type": "SYMBOL",
200          "name": "interface_declaration"
201        },
202        {
203          "type": "SYMBOL",
204          "name": "trait_declaration"
205        },
206        {
207          "type": "SYMBOL",
208          "name": "namespace_definition"
209        },
210        {
211          "type": "SYMBOL",
212          "name": "namespace_use_declaration"
213        },
214        {
215          "type": "SYMBOL",
216          "name": "global_declaration"
217        },
218        {
219          "type": "SYMBOL",
220          "name": "function_static_declaration"
221        }
222      ]
223    },
224    "empty_statement": {
225      "type": "PREC",
226      "value": -1,
227      "content": {
228        "type": "STRING",
229        "value": ";"
230      }
231    },
232    "function_static_declaration": {
233      "type": "SEQ",
234      "members": [
235        {
236          "type": "ALIAS",
237          "content": {
238            "type": "PATTERN",
239            "value": "[sS][tT][aA][tT][iI][cC]"
240          },
241          "named": false,
242          "value": "static"
243        },
244        {
245          "type": "SEQ",
246          "members": [
247            {
248              "type": "SYMBOL",
249              "name": "static_variable_declaration"
250            },
251            {
252              "type": "REPEAT",
253              "content": {
254                "type": "SEQ",
255                "members": [
256                  {
257                    "type": "STRING",
258                    "value": ","
259                  },
260                  {
261                    "type": "SYMBOL",
262                    "name": "static_variable_declaration"
263                  }
264                ]
265              }
266            }
267          ]
268        },
269        {
270          "type": "SYMBOL",
271          "name": "_semicolon"
272        }
273      ]
274    },
275    "static_variable_declaration": {
276      "type": "SEQ",
277      "members": [
278        {
279          "type": "FIELD",
280          "name": "name",
281          "content": {
282            "type": "SYMBOL",
283            "name": "variable_name"
284          }
285        },
286        {
287          "type": "CHOICE",
288          "members": [
289            {
290              "type": "SEQ",
291              "members": [
292                {
293                  "type": "STRING",
294                  "value": "="
295                },
296                {
297                  "type": "FIELD",
298                  "name": "value",
299                  "content": {
300                    "type": "SYMBOL",
301                    "name": "_expression"
302                  }
303                }
304              ]
305            },
306            {
307              "type": "BLANK"
308            }
309          ]
310        }
311      ]
312    },
313    "global_declaration": {
314      "type": "SEQ",
315      "members": [
316        {
317          "type": "ALIAS",
318          "content": {
319            "type": "PATTERN",
320            "value": "[gG][lL][oO][bB][aA][lL]"
321          },
322          "named": false,
323          "value": "global"
324        },
325        {
326          "type": "SEQ",
327          "members": [
328            {
329              "type": "SYMBOL",
330              "name": "_variable_name"
331            },
332            {
333              "type": "REPEAT",
334              "content": {
335                "type": "SEQ",
336                "members": [
337                  {
338                    "type": "STRING",
339                    "value": ","
340                  },
341                  {
342                    "type": "SYMBOL",
343                    "name": "_variable_name"
344                  }
345                ]
346              }
347            }
348          ]
349        },
350        {
351          "type": "SYMBOL",
352          "name": "_semicolon"
353        }
354      ]
355    },
356    "namespace_definition": {
357      "type": "SEQ",
358      "members": [
359        {
360          "type": "ALIAS",
361          "content": {
362            "type": "PATTERN",
363            "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]"
364          },
365          "named": false,
366          "value": "namespace"
367        },
368        {
369          "type": "CHOICE",
370          "members": [
371            {
372              "type": "SEQ",
373              "members": [
374                {
375                  "type": "FIELD",
376                  "name": "name",
377                  "content": {
378                    "type": "SYMBOL",
379                    "name": "namespace_name"
380                  }
381                },
382                {
383                  "type": "SYMBOL",
384                  "name": "_semicolon"
385                }
386              ]
387            },
388            {
389              "type": "SEQ",
390              "members": [
391                {
392                  "type": "FIELD",
393                  "name": "name",
394                  "content": {
395                    "type": "CHOICE",
396                    "members": [
397                      {
398                        "type": "SYMBOL",
399                        "name": "namespace_name"
400                      },
401                      {
402                        "type": "BLANK"
403                      }
404                    ]
405                  }
406                },
407                {
408                  "type": "FIELD",
409                  "name": "body",
410                  "content": {
411                    "type": "SYMBOL",
412                    "name": "compound_statement"
413                  }
414                }
415              ]
416            }
417          ]
418        }
419      ]
420    },
421    "namespace_use_declaration": {
422      "type": "SEQ",
423      "members": [
424        {
425          "type": "ALIAS",
426          "content": {
427            "type": "PATTERN",
428            "value": "[uU][sS][eE]"
429          },
430          "named": false,
431          "value": "use"
432        },
433        {
434          "type": "CHOICE",
435          "members": [
436            {
437              "type": "CHOICE",
438              "members": [
439                {
440                  "type": "ALIAS",
441                  "content": {
442                    "type": "PATTERN",
443                    "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
444                  },
445                  "named": false,
446                  "value": "function"
447                },
448                {
449                  "type": "ALIAS",
450                  "content": {
451                    "type": "PATTERN",
452                    "value": "[cC][oO][nN][sS][tT]"
453                  },
454                  "named": false,
455                  "value": "const"
456                }
457              ]
458            },
459            {
460              "type": "BLANK"
461            }
462          ]
463        },
464        {
465          "type": "CHOICE",
466          "members": [
467            {
468              "type": "SEQ",
469              "members": [
470                {
471                  "type": "SEQ",
472                  "members": [
473                    {
474                      "type": "SYMBOL",
475                      "name": "namespace_use_clause"
476                    },
477                    {
478                      "type": "REPEAT",
479                      "content": {
480                        "type": "SEQ",
481                        "members": [
482                          {
483                            "type": "STRING",
484                            "value": ","
485                          },
486                          {
487                            "type": "SYMBOL",
488                            "name": "namespace_use_clause"
489                          }
490                        ]
491                      }
492                    }
493                  ]
494                }
495              ]
496            },
497            {
498              "type": "SEQ",
499              "members": [
500                {
501                  "type": "CHOICE",
502                  "members": [
503                    {
504                      "type": "STRING",
505                      "value": "\\"
506                    },
507                    {
508                      "type": "BLANK"
509                    }
510                  ]
511                },
512                {
513                  "type": "SYMBOL",
514                  "name": "namespace_name"
515                },
516                {
517                  "type": "STRING",
518                  "value": "\\"
519                },
520                {
521                  "type": "SYMBOL",
522                  "name": "namespace_use_group"
523                }
524              ]
525            }
526          ]
527        },
528        {
529          "type": "SYMBOL",
530          "name": "_semicolon"
531        }
532      ]
533    },
534    "namespace_use_clause": {
535      "type": "SEQ",
536      "members": [
537        {
538          "type": "SYMBOL",
539          "name": "qualified_name"
540        },
541        {
542          "type": "CHOICE",
543          "members": [
544            {
545              "type": "SYMBOL",
546              "name": "namespace_aliasing_clause"
547            },
548            {
549              "type": "BLANK"
550            }
551          ]
552        }
553      ]
554    },
555    "qualified_name": {
556      "type": "SEQ",
557      "members": [
558        {
559          "type": "CHOICE",
560          "members": [
561            {
562              "type": "SYMBOL",
563              "name": "namespace_name_as_prefix"
564            },
565            {
566              "type": "BLANK"
567            }
568          ]
569        },
570        {
571          "type": "CHOICE",
572          "members": [
573            {
574              "type": "SYMBOL",
575              "name": "name"
576            },
577            {
578              "type": "ALIAS",
579              "content": {
580                "type": "SYMBOL",
581                "name": "_reserved_identifier"
582              },
583              "named": true,
584              "value": "name"
585            }
586          ]
587        }
588      ]
589    },
590    "namespace_name_as_prefix": {
591      "type": "CHOICE",
592      "members": [
593        {
594          "type": "STRING",
595          "value": "\\"
596        },
597        {
598          "type": "SEQ",
599          "members": [
600            {
601              "type": "CHOICE",
602              "members": [
603                {
604                  "type": "STRING",
605                  "value": "\\"
606                },
607                {
608                  "type": "BLANK"
609                }
610              ]
611            },
612            {
613              "type": "SYMBOL",
614              "name": "namespace_name"
615            },
616            {
617              "type": "STRING",
618              "value": "\\"
619            }
620          ]
621        },
622        {
623          "type": "SEQ",
624          "members": [
625            {
626              "type": "ALIAS",
627              "content": {
628                "type": "PATTERN",
629                "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]"
630              },
631              "named": false,
632              "value": "namespace"
633            },
634            {
635              "type": "STRING",
636              "value": "\\"
637            }
638          ]
639        },
640        {
641          "type": "SEQ",
642          "members": [
643            {
644              "type": "ALIAS",
645              "content": {
646                "type": "PATTERN",
647                "value": "[nN][aA][mM][eE][sS][pP][aA][cC][eE]"
648              },
649              "named": false,
650              "value": "namespace"
651            },
652            {
653              "type": "CHOICE",
654              "members": [
655                {
656                  "type": "STRING",
657                  "value": "\\"
658                },
659                {
660                  "type": "BLANK"
661                }
662              ]
663            },
664            {
665              "type": "SYMBOL",
666              "name": "namespace_name"
667            },
668            {
669              "type": "STRING",
670              "value": "\\"
671            }
672          ]
673        }
674      ]
675    },
676    "namespace_name": {
677      "type": "SEQ",
678      "members": [
679        {
680          "type": "SYMBOL",
681          "name": "name"
682        },
683        {
684          "type": "REPEAT",
685          "content": {
686            "type": "SEQ",
687            "members": [
688              {
689                "type": "STRING",
690                "value": "\\"
691              },
692              {
693                "type": "SYMBOL",
694                "name": "name"
695              }
696            ]
697          }
698        }
699      ]
700    },
701    "namespace_aliasing_clause": {
702      "type": "SEQ",
703      "members": [
704        {
705          "type": "ALIAS",
706          "content": {
707            "type": "PATTERN",
708            "value": "[aA][sS]"
709          },
710          "named": false,
711          "value": "as"
712        },
713        {
714          "type": "SYMBOL",
715          "name": "name"
716        }
717      ]
718    },
719    "namespace_use_group": {
720      "type": "SEQ",
721      "members": [
722        {
723          "type": "STRING",
724          "value": "{"
725        },
726        {
727          "type": "SEQ",
728          "members": [
729            {
730              "type": "SYMBOL",
731              "name": "namespace_use_group_clause"
732            },
733            {
734              "type": "REPEAT",
735              "content": {
736                "type": "SEQ",
737                "members": [
738                  {
739                    "type": "STRING",
740                    "value": ","
741                  },
742                  {
743                    "type": "SYMBOL",
744                    "name": "namespace_use_group_clause"
745                  }
746                ]
747              }
748            }
749          ]
750        },
751        {
752          "type": "STRING",
753          "value": "}"
754        }
755      ]
756    },
757    "namespace_use_group_clause": {
758      "type": "SEQ",
759      "members": [
760        {
761          "type": "CHOICE",
762          "members": [
763            {
764              "type": "CHOICE",
765              "members": [
766                {
767                  "type": "ALIAS",
768                  "content": {
769                    "type": "PATTERN",
770                    "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
771                  },
772                  "named": false,
773                  "value": "function"
774                },
775                {
776                  "type": "ALIAS",
777                  "content": {
778                    "type": "PATTERN",
779                    "value": "[cC][oO][nN][sS][tT]"
780                  },
781                  "named": false,
782                  "value": "const"
783                }
784              ]
785            },
786            {
787              "type": "BLANK"
788            }
789          ]
790        },
791        {
792          "type": "SYMBOL",
793          "name": "namespace_name"
794        },
795        {
796          "type": "CHOICE",
797          "members": [
798            {
799              "type": "SYMBOL",
800              "name": "namespace_aliasing_clause"
801            },
802            {
803              "type": "BLANK"
804            }
805          ]
806        }
807      ]
808    },
809    "trait_declaration": {
810      "type": "SEQ",
811      "members": [
812        {
813          "type": "ALIAS",
814          "content": {
815            "type": "PATTERN",
816            "value": "[tT][rR][aA][iI][tT]"
817          },
818          "named": false,
819          "value": "trait"
820        },
821        {
822          "type": "FIELD",
823          "name": "name",
824          "content": {
825            "type": "SYMBOL",
826            "name": "name"
827          }
828        },
829        {
830          "type": "FIELD",
831          "name": "body",
832          "content": {
833            "type": "SYMBOL",
834            "name": "declaration_list"
835          }
836        }
837      ]
838    },
839    "interface_declaration": {
840      "type": "SEQ",
841      "members": [
842        {
843          "type": "ALIAS",
844          "content": {
845            "type": "PATTERN",
846            "value": "[iI][nN][tT][eE][rR][fF][aA][cC][eE]"
847          },
848          "named": false,
849          "value": "interface"
850        },
851        {
852          "type": "FIELD",
853          "name": "name",
854          "content": {
855            "type": "SYMBOL",
856            "name": "name"
857          }
858        },
859        {
860          "type": "CHOICE",
861          "members": [
862            {
863              "type": "SYMBOL",
864              "name": "base_clause"
865            },
866            {
867              "type": "BLANK"
868            }
869          ]
870        },
871        {
872          "type": "FIELD",
873          "name": "body",
874          "content": {
875            "type": "SYMBOL",
876            "name": "declaration_list"
877          }
878        }
879      ]
880    },
881    "base_clause": {
882      "type": "SEQ",
883      "members": [
884        {
885          "type": "ALIAS",
886          "content": {
887            "type": "PATTERN",
888            "value": "[eE][xX][tT][eE][nN][dD][sS]"
889          },
890          "named": false,
891          "value": "extends"
892        },
893        {
894          "type": "SEQ",
895          "members": [
896            {
897              "type": "SYMBOL",
898              "name": "qualified_name"
899            },
900            {
901              "type": "REPEAT",
902              "content": {
903                "type": "SEQ",
904                "members": [
905                  {
906                    "type": "STRING",
907                    "value": ","
908                  },
909                  {
910                    "type": "SYMBOL",
911                    "name": "qualified_name"
912                  }
913                ]
914              }
915            }
916          ]
917        }
918      ]
919    },
920    "class_declaration": {
921      "type": "PREC_RIGHT",
922      "value": 0,
923      "content": {
924        "type": "SEQ",
925        "members": [
926          {
927            "type": "CHOICE",
928            "members": [
929              {
930                "type": "SYMBOL",
931                "name": "class_modifier"
932              },
933              {
934                "type": "BLANK"
935              }
936            ]
937          },
938          {
939            "type": "ALIAS",
940            "content": {
941              "type": "PATTERN",
942              "value": "[cC][lL][aA][sS][sS]"
943            },
944            "named": false,
945            "value": "class"
946          },
947          {
948            "type": "FIELD",
949            "name": "name",
950            "content": {
951              "type": "SYMBOL",
952              "name": "name"
953            }
954          },
955          {
956            "type": "CHOICE",
957            "members": [
958              {
959                "type": "SYMBOL",
960                "name": "base_clause"
961              },
962              {
963                "type": "BLANK"
964              }
965            ]
966          },
967          {
968            "type": "CHOICE",
969            "members": [
970              {
971                "type": "SYMBOL",
972                "name": "class_interface_clause"
973              },
974              {
975                "type": "BLANK"
976              }
977            ]
978          },
979          {
980            "type": "FIELD",
981            "name": "body",
982            "content": {
983              "type": "SYMBOL",
984              "name": "declaration_list"
985            }
986          },
987          {
988            "type": "CHOICE",
989            "members": [
990              {
991                "type": "SYMBOL",
992                "name": "_semicolon"
993              },
994              {
995                "type": "BLANK"
996              }
997            ]
998          }
999        ]
1000      }
1001    },
1002    "declaration_list": {
1003      "type": "SEQ",
1004      "members": [
1005        {
1006          "type": "STRING",
1007          "value": "{"
1008        },
1009        {
1010          "type": "REPEAT",
1011          "content": {
1012            "type": "SYMBOL",
1013            "name": "_member_declaration"
1014          }
1015        },
1016        {
1017          "type": "STRING",
1018          "value": "}"
1019        }
1020      ]
1021    },
1022    "class_modifier": {
1023      "type": "CHOICE",
1024      "members": [
1025        {
1026          "type": "ALIAS",
1027          "content": {
1028            "type": "PATTERN",
1029            "value": "[aA][bB][sS][tT][rR][aA][cC][tT]"
1030          },
1031          "named": false,
1032          "value": "abstract"
1033        },
1034        {
1035          "type": "ALIAS",
1036          "content": {
1037            "type": "PATTERN",
1038            "value": "[fF][iI][nN][aA][lL]"
1039          },
1040          "named": false,
1041          "value": "final"
1042        }
1043      ]
1044    },
1045    "class_interface_clause": {
1046      "type": "SEQ",
1047      "members": [
1048        {
1049          "type": "ALIAS",
1050          "content": {
1051            "type": "PATTERN",
1052            "value": "[iI][mM][pP][lL][eE][mM][eE][nN][tT][sS]"
1053          },
1054          "named": false,
1055          "value": "implements"
1056        },
1057        {
1058          "type": "SEQ",
1059          "members": [
1060            {
1061              "type": "SYMBOL",
1062              "name": "qualified_name"
1063            },
1064            {
1065              "type": "REPEAT",
1066              "content": {
1067                "type": "SEQ",
1068                "members": [
1069                  {
1070                    "type": "STRING",
1071                    "value": ","
1072                  },
1073                  {
1074                    "type": "SYMBOL",
1075                    "name": "qualified_name"
1076                  }
1077                ]
1078              }
1079            }
1080          ]
1081        }
1082      ]
1083    },
1084    "_member_declaration": {
1085      "type": "CHOICE",
1086      "members": [
1087        {
1088          "type": "SYMBOL",
1089          "name": "const_declaration"
1090        },
1091        {
1092          "type": "SYMBOL",
1093          "name": "property_declaration"
1094        },
1095        {
1096          "type": "SYMBOL",
1097          "name": "method_declaration"
1098        },
1099        {
1100          "type": "SYMBOL",
1101          "name": "use_declaration"
1102        }
1103      ]
1104    },
1105    "const_declaration": {
1106      "type": "SEQ",
1107      "members": [
1108        {
1109          "type": "CHOICE",
1110          "members": [
1111            {
1112              "type": "SYMBOL",
1113              "name": "visibility_modifier"
1114            },
1115            {
1116              "type": "BLANK"
1117            }
1118          ]
1119        },
1120        {
1121          "type": "ALIAS",
1122          "content": {
1123            "type": "PATTERN",
1124            "value": "[cC][oO][nN][sS][tT]"
1125          },
1126          "named": false,
1127          "value": "const"
1128        },
1129        {
1130          "type": "SEQ",
1131          "members": [
1132            {
1133              "type": "SYMBOL",
1134              "name": "const_element"
1135            },
1136            {
1137              "type": "REPEAT",
1138              "content": {
1139                "type": "SEQ",
1140                "members": [
1141                  {
1142                    "type": "STRING",
1143                    "value": ","
1144                  },
1145                  {
1146                    "type": "SYMBOL",
1147                    "name": "const_element"
1148                  }
1149                ]
1150              }
1151            }
1152          ]
1153        },
1154        {
1155          "type": "SYMBOL",
1156          "name": "_semicolon"
1157        }
1158      ]
1159    },
1160    "property_declaration": {
1161      "type": "SEQ",
1162      "members": [
1163        {
1164          "type": "REPEAT1",
1165          "content": {
1166            "type": "SYMBOL",
1167            "name": "_modifier"
1168          }
1169        },
1170        {
1171          "type": "CHOICE",
1172          "members": [
1173            {
1174              "type": "FIELD",
1175              "name": "type",
1176              "content": {
1177                "type": "SYMBOL",
1178                "name": "_type"
1179              }
1180            },
1181            {
1182              "type": "BLANK"
1183            }
1184          ]
1185        },
1186        {
1187          "type": "SEQ",
1188          "members": [
1189            {
1190              "type": "SYMBOL",
1191              "name": "property_element"
1192            },
1193            {
1194              "type": "REPEAT",
1195              "content": {
1196                "type": "SEQ",
1197                "members": [
1198                  {
1199                    "type": "STRING",
1200                    "value": ","
1201                  },
1202                  {
1203                    "type": "SYMBOL",
1204                    "name": "property_element"
1205                  }
1206                ]
1207              }
1208            }
1209          ]
1210        },
1211        {
1212          "type": "SYMBOL",
1213          "name": "_semicolon"
1214        }
1215      ]
1216    },
1217    "_modifier": {
1218      "type": "CHOICE",
1219      "members": [
1220        {
1221          "type": "SYMBOL",
1222          "name": "var_modifier"
1223        },
1224        {
1225          "type": "SYMBOL",
1226          "name": "visibility_modifier"
1227        },
1228        {
1229          "type": "SYMBOL",
1230          "name": "static_modifier"
1231        },
1232        {
1233          "type": "SYMBOL",
1234          "name": "class_modifier"
1235        }
1236      ]
1237    },
1238    "property_element": {
1239      "type": "SEQ",
1240      "members": [
1241        {
1242          "type": "SYMBOL",
1243          "name": "variable_name"
1244        },
1245        {
1246          "type": "CHOICE",
1247          "members": [
1248            {
1249              "type": "SYMBOL",
1250              "name": "property_initializer"
1251            },
1252            {
1253              "type": "BLANK"
1254            }
1255          ]
1256        }
1257      ]
1258    },
1259    "property_initializer": {
1260      "type": "SEQ",
1261      "members": [
1262        {
1263          "type": "STRING",
1264          "value": "="
1265        },
1266        {
1267          "type": "SYMBOL",
1268          "name": "_expression"
1269        }
1270      ]
1271    },
1272    "method_declaration": {
1273      "type": "SEQ",
1274      "members": [
1275        {
1276          "type": "REPEAT",
1277          "content": {
1278            "type": "SYMBOL",
1279            "name": "_modifier"
1280          }
1281        },
1282        {
1283          "type": "SYMBOL",
1284          "name": "_function_definition_header"
1285        },
1286        {
1287          "type": "CHOICE",
1288          "members": [
1289            {
1290              "type": "FIELD",
1291              "name": "body",
1292              "content": {
1293                "type": "SYMBOL",
1294                "name": "compound_statement"
1295              }
1296            },
1297            {
1298              "type": "SYMBOL",
1299              "name": "_semicolon"
1300            }
1301          ]
1302        }
1303      ]
1304    },
1305    "var_modifier": {
1306      "type": "PATTERN",
1307      "value": "[vV][aA][rR]"
1308    },
1309    "static_modifier": {
1310      "type": "ALIAS",
1311      "content": {
1312        "type": "PATTERN",
1313        "value": "[sS][tT][aA][tT][iI][cC]"
1314      },
1315      "named": false,
1316      "value": "static"
1317    },
1318    "use_declaration": {
1319      "type": "SEQ",
1320      "members": [
1321        {
1322          "type": "ALIAS",
1323          "content": {
1324            "type": "PATTERN",
1325            "value": "[uU][sS][eE]"
1326          },
1327          "named": false,
1328          "value": "use"
1329        },
1330        {
1331          "type": "SEQ",
1332          "members": [
1333            {
1334              "type": "SYMBOL",
1335              "name": "qualified_name"
1336            },
1337            {
1338              "type": "REPEAT",
1339              "content": {
1340                "type": "SEQ",
1341                "members": [
1342                  {
1343                    "type": "STRING",
1344                    "value": ","
1345                  },
1346                  {
1347                    "type": "SYMBOL",
1348                    "name": "qualified_name"
1349                  }
1350                ]
1351              }
1352            }
1353          ]
1354        },
1355        {
1356          "type": "CHOICE",
1357          "members": [
1358            {
1359              "type": "SYMBOL",
1360              "name": "use_list"
1361            },
1362            {
1363              "type": "SYMBOL",
1364              "name": "_semicolon"
1365            }
1366          ]
1367        }
1368      ]
1369    },
1370    "use_list": {
1371      "type": "SEQ",
1372      "members": [
1373        {
1374          "type": "STRING",
1375          "value": "{"
1376        },
1377        {
1378          "type": "REPEAT",
1379          "content": {
1380            "type": "SEQ",
1381            "members": [
1382              {
1383                "type": "CHOICE",
1384                "members": [
1385                  {
1386                    "type": "SYMBOL",
1387                    "name": "use_instead_of_clause"
1388                  },
1389                  {
1390                    "type": "SYMBOL",
1391                    "name": "use_as_clause"
1392                  }
1393                ]
1394              },
1395              {
1396                "type": "SYMBOL",
1397                "name": "_semicolon"
1398              }
1399            ]
1400          }
1401        },
1402        {
1403          "type": "STRING",
1404          "value": "}"
1405        }
1406      ]
1407    },
1408    "use_instead_of_clause": {
1409      "type": "PREC_LEFT",
1410      "value": 0,
1411      "content": {
1412        "type": "SEQ",
1413        "members": [
1414          {
1415            "type": "CHOICE",
1416            "members": [
1417              {
1418                "type": "SYMBOL",
1419                "name": "class_constant_access_expression"
1420              },
1421              {
1422                "type": "SYMBOL",
1423                "name": "name"
1424              }
1425            ]
1426          },
1427          {
1428            "type": "ALIAS",
1429            "content": {
1430              "type": "PATTERN",
1431              "value": "[iI][nN][sS][tT][eE][aA][dD][oO][fF]"
1432            },
1433            "named": false,
1434            "value": "insteadof"
1435          },
1436          {
1437            "type": "SYMBOL",
1438            "name": "name"
1439          }
1440        ]
1441      }
1442    },
1443    "use_as_clause": {
1444      "type": "SEQ",
1445      "members": [
1446        {
1447          "type": "CHOICE",
1448          "members": [
1449            {
1450              "type": "SYMBOL",
1451              "name": "class_constant_access_expression"
1452            },
1453            {
1454              "type": "SYMBOL",
1455              "name": "name"
1456            }
1457          ]
1458        },
1459        {
1460          "type": "ALIAS",
1461          "content": {
1462            "type": "PATTERN",
1463            "value": "[aA][sS]"
1464          },
1465          "named": false,
1466          "value": "as"
1467        },
1468        {
1469          "type": "CHOICE",
1470          "members": [
1471            {
1472              "type": "SEQ",
1473              "members": [
1474                {
1475                  "type": "CHOICE",
1476                  "members": [
1477                    {
1478                      "type": "SYMBOL",
1479                      "name": "visibility_modifier"
1480                    },
1481                    {
1482                      "type": "BLANK"
1483                    }
1484                  ]
1485                },
1486                {
1487                  "type": "SYMBOL",
1488                  "name": "name"
1489                }
1490              ]
1491            },
1492            {
1493              "type": "SEQ",
1494              "members": [
1495                {
1496                  "type": "SYMBOL",
1497                  "name": "visibility_modifier"
1498                },
1499                {
1500                  "type": "CHOICE",
1501                  "members": [
1502                    {
1503                      "type": "SYMBOL",
1504                      "name": "name"
1505                    },
1506                    {
1507                      "type": "BLANK"
1508                    }
1509                  ]
1510                }
1511              ]
1512            }
1513          ]
1514        }
1515      ]
1516    },
1517    "visibility_modifier": {
1518      "type": "CHOICE",
1519      "members": [
1520        {
1521          "type": "ALIAS",
1522          "content": {
1523            "type": "PATTERN",
1524            "value": "[pP][uU][bB][lL][iI][cC]"
1525          },
1526          "named": false,
1527          "value": "public"
1528        },
1529        {
1530          "type": "ALIAS",
1531          "content": {
1532            "type": "PATTERN",
1533            "value": "[pP][rR][oO][tT][eE][cC][tT][eE][dD]"
1534          },
1535          "named": false,
1536          "value": "protected"
1537        },
1538        {
1539          "type": "ALIAS",
1540          "content": {
1541            "type": "PATTERN",
1542            "value": "[pP][rR][iI][vV][aA][tT][eE]"
1543          },
1544          "named": false,
1545          "value": "private"
1546        }
1547      ]
1548    },
1549    "function_definition": {
1550      "type": "SEQ",
1551      "members": [
1552        {
1553          "type": "SYMBOL",
1554          "name": "_function_definition_header"
1555        },
1556        {
1557          "type": "FIELD",
1558          "name": "body",
1559          "content": {
1560            "type": "SYMBOL",
1561            "name": "compound_statement"
1562          }
1563        }
1564      ]
1565    },
1566    "_function_definition_header": {
1567      "type": "SEQ",
1568      "members": [
1569        {
1570          "type": "ALIAS",
1571          "content": {
1572            "type": "PATTERN",
1573            "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
1574          },
1575          "named": false,
1576          "value": "function"
1577        },
1578        {
1579          "type": "CHOICE",
1580          "members": [
1581            {
1582              "type": "STRING",
1583              "value": "&"
1584            },
1585            {
1586              "type": "BLANK"
1587            }
1588          ]
1589        },
1590        {
1591          "type": "FIELD",
1592          "name": "name",
1593          "content": {
1594            "type": "CHOICE",
1595            "members": [
1596              {
1597                "type": "SYMBOL",
1598                "name": "name"
1599              },
1600              {
1601                "type": "ALIAS",
1602                "content": {
1603                  "type": "SYMBOL",
1604                  "name": "_reserved_identifier"
1605                },
1606                "named": true,
1607                "value": "name"
1608              }
1609            ]
1610          }
1611        },
1612        {
1613          "type": "FIELD",
1614          "name": "parameters",
1615          "content": {
1616            "type": "SYMBOL",
1617            "name": "formal_parameters"
1618          }
1619        },
1620        {
1621          "type": "CHOICE",
1622          "members": [
1623            {
1624              "type": "SYMBOL",
1625              "name": "_return_type"
1626            },
1627            {
1628              "type": "BLANK"
1629            }
1630          ]
1631        }
1632      ]
1633    },
1634    "formal_parameters": {
1635      "type": "SEQ",
1636      "members": [
1637        {
1638          "type": "STRING",
1639          "value": "("
1640        },
1641        {
1642          "type": "CHOICE",
1643          "members": [
1644            {
1645              "type": "SEQ",
1646              "members": [
1647                {
1648                  "type": "CHOICE",
1649                  "members": [
1650                    {
1651                      "type": "SYMBOL",
1652                      "name": "simple_parameter"
1653                    },
1654                    {
1655                      "type": "SYMBOL",
1656                      "name": "variadic_parameter"
1657                    }
1658                  ]
1659                },
1660                {
1661                  "type": "REPEAT",
1662                  "content": {
1663                    "type": "SEQ",
1664                    "members": [
1665                      {
1666                        "type": "STRING",
1667                        "value": ","
1668                      },
1669                      {
1670                        "type": "CHOICE",
1671                        "members": [
1672                          {
1673                            "type": "SYMBOL",
1674                            "name": "simple_parameter"
1675                          },
1676                          {
1677                            "type": "SYMBOL",
1678                            "name": "variadic_parameter"
1679                          }
1680                        ]
1681                      }
1682                    ]
1683                  }
1684                }
1685              ]
1686            },
1687            {
1688              "type": "BLANK"
1689            }
1690          ]
1691        },
1692        {
1693          "type": "STRING",
1694          "value": ")"
1695        }
1696      ]
1697    },
1698    "simple_parameter": {
1699      "type": "SEQ",
1700      "members": [
1701        {
1702          "type": "FIELD",
1703          "name": "type",
1704          "content": {
1705            "type": "CHOICE",
1706            "members": [
1707              {
1708                "type": "SYMBOL",
1709                "name": "_type"
1710              },
1711              {
1712                "type": "BLANK"
1713              }
1714            ]
1715          }
1716        },
1717        {
1718          "type": "CHOICE",
1719          "members": [
1720            {
1721              "type": "STRING",
1722              "value": "&"
1723            },
1724            {
1725              "type": "BLANK"
1726            }
1727          ]
1728        },
1729        {
1730          "type": "FIELD",
1731          "name": "name",
1732          "content": {
1733            "type": "SYMBOL",
1734            "name": "variable_name"
1735          }
1736        },
1737        {
1738          "type": "CHOICE",
1739          "members": [
1740            {
1741              "type": "SEQ",
1742              "members": [
1743                {
1744                  "type": "STRING",
1745                  "value": "="
1746                },
1747                {
1748                  "type": "FIELD",
1749                  "name": "default_value",
1750                  "content": {
1751                    "type": "SYMBOL",
1752                    "name": "_expression"
1753                  }
1754                }
1755              ]
1756            },
1757            {
1758              "type": "BLANK"
1759            }
1760          ]
1761        }
1762      ]
1763    },
1764    "variadic_parameter": {
1765      "type": "SEQ",
1766      "members": [
1767        {
1768          "type": "FIELD",
1769          "name": "type",
1770          "content": {
1771            "type": "CHOICE",
1772            "members": [
1773              {
1774                "type": "SYMBOL",
1775                "name": "_type"
1776              },
1777              {
1778                "type": "BLANK"
1779              }
1780            ]
1781          }
1782        },
1783        {
1784          "type": "CHOICE",
1785          "members": [
1786            {
1787              "type": "STRING",
1788              "value": "&"
1789            },
1790            {
1791              "type": "BLANK"
1792            }
1793          ]
1794        },
1795        {
1796          "type": "STRING",
1797          "value": "..."
1798        },
1799        {
1800          "type": "FIELD",
1801          "name": "name",
1802          "content": {
1803            "type": "SYMBOL",
1804            "name": "variable_name"
1805          }
1806        }
1807      ]
1808    },
1809    "_type": {
1810      "type": "CHOICE",
1811      "members": [
1812        {
1813          "type": "SYMBOL",
1814          "name": "optional_type"
1815        },
1816        {
1817          "type": "SYMBOL",
1818          "name": "_type_name"
1819        },
1820        {
1821          "type": "SYMBOL",
1822          "name": "primitive_type"
1823        }
1824      ]
1825    },
1826    "_type_name": {
1827      "type": "ALIAS",
1828      "content": {
1829        "type": "SYMBOL",
1830        "name": "qualified_name"
1831      },
1832      "named": true,
1833      "value": "type_name"
1834    },
1835    "optional_type": {
1836      "type": "SEQ",
1837      "members": [
1838        {
1839          "type": "STRING",
1840          "value": "?"
1841        },
1842        {
1843          "type": "CHOICE",
1844          "members": [
1845            {
1846              "type": "SYMBOL",
1847              "name": "_type_name"
1848            },
1849            {
1850              "type": "SYMBOL",
1851              "name": "primitive_type"
1852            }
1853          ]
1854        }
1855      ]
1856    },
1857    "primitive_type": {
1858      "type": "CHOICE",
1859      "members": [
1860        {
1861          "type": "STRING",
1862          "value": "array"
1863        },
1864        {
1865          "type": "STRING",
1866          "value": "callable"
1867        },
1868        {
1869          "type": "STRING",
1870          "value": "iterable"
1871        },
1872        {
1873          "type": "STRING",
1874          "value": "bool"
1875        },
1876        {
1877          "type": "STRING",
1878          "value": "float"
1879        },
1880        {
1881          "type": "STRING",
1882          "value": "int"
1883        },
1884        {
1885          "type": "STRING",
1886          "value": "string"
1887        },
1888        {
1889          "type": "STRING",
1890          "value": "void"
1891        }
1892      ]
1893    },
1894    "cast_type": {
1895      "type": "CHOICE",
1896      "members": [
1897        {
1898          "type": "STRING",
1899          "value": "array"
1900        },
1901        {
1902          "type": "STRING",
1903          "value": "binary"
1904        },
1905        {
1906          "type": "STRING",
1907          "value": "bool"
1908        },
1909        {
1910          "type": "STRING",
1911          "value": "boolean"
1912        },
1913        {
1914          "type": "STRING",
1915          "value": "double"
1916        },
1917        {
1918          "type": "STRING",
1919          "value": "int"
1920        },
1921        {
1922          "type": "STRING",
1923          "value": "integer"
1924        },
1925        {
1926          "type": "STRING",
1927          "value": "float"
1928        },
1929        {
1930          "type": "STRING",
1931          "value": "object"
1932        },
1933        {
1934          "type": "STRING",
1935          "value": "real"
1936        },
1937        {
1938          "type": "STRING",
1939          "value": "string"
1940        },
1941        {
1942          "type": "STRING",
1943          "value": "unset"
1944        }
1945      ]
1946    },
1947    "_return_type": {
1948      "type": "SEQ",
1949      "members": [
1950        {
1951          "type": "STRING",
1952          "value": ":"
1953        },
1954        {
1955          "type": "FIELD",
1956          "name": "return_type",
1957          "content": {
1958            "type": "SYMBOL",
1959            "name": "_type"
1960          }
1961        }
1962      ]
1963    },
1964    "const_element": {
1965      "type": "SEQ",
1966      "members": [
1967        {
1968          "type": "CHOICE",
1969          "members": [
1970            {
1971              "type": "SYMBOL",
1972              "name": "name"
1973            },
1974            {
1975              "type": "ALIAS",
1976              "content": {
1977                "type": "SYMBOL",
1978                "name": "_reserved_identifier"
1979              },
1980              "named": true,
1981              "value": "name"
1982            }
1983          ]
1984        },
1985        {
1986          "type": "STRING",
1987          "value": "="
1988        },
1989        {
1990          "type": "SYMBOL",
1991          "name": "_expression"
1992        }
1993      ]
1994    },
1995    "echo_statement": {
1996      "type": "SEQ",
1997      "members": [
1998        {
1999          "type": "ALIAS",
2000          "content": {
2001            "type": "PATTERN",
2002            "value": "[eE][cC][hH][oO]"
2003          },
2004          "named": false,
2005          "value": "echo"
2006        },
2007        {
2008          "type": "SYMBOL",
2009          "name": "_expressions"
2010        },
2011        {
2012          "type": "SYMBOL",
2013          "name": "_semicolon"
2014        }
2015      ]
2016    },
2017    "unset_statement": {
2018      "type": "SEQ",
2019      "members": [
2020        {
2021          "type": "STRING",
2022          "value": "unset"
2023        },
2024        {
2025          "type": "STRING",
2026          "value": "("
2027        },
2028        {
2029          "type": "SEQ",
2030          "members": [
2031            {
2032              "type": "SYMBOL",
2033              "name": "_variable"
2034            },
2035            {
2036              "type": "REPEAT",
2037              "content": {
2038                "type": "SEQ",
2039                "members": [
2040                  {
2041                    "type": "STRING",
2042                    "value": ","
2043                  },
2044                  {
2045                    "type": "SYMBOL",
2046                    "name": "_variable"
2047                  }
2048                ]
2049              }
2050            }
2051          ]
2052        },
2053        {
2054          "type": "STRING",
2055          "value": ")"
2056        },
2057        {
2058          "type": "SYMBOL",
2059          "name": "_semicolon"
2060        }
2061      ]
2062    },
2063    "declare_statement": {
2064      "type": "SEQ",
2065      "members": [
2066        {
2067          "type": "STRING",
2068          "value": "declare"
2069        },
2070        {
2071          "type": "STRING",
2072          "value": "("
2073        },
2074        {
2075          "type": "SYMBOL",
2076          "name": "declare_directive"
2077        },
2078        {
2079          "type": "STRING",
2080          "value": ")"
2081        },
2082        {
2083          "type": "CHOICE",
2084          "members": [
2085            {
2086              "type": "SYMBOL",
2087              "name": "_statement"
2088            },
2089            {
2090              "type": "SEQ",
2091              "members": [
2092                {
2093                  "type": "STRING",
2094                  "value": ":"
2095                },
2096                {
2097                  "type": "REPEAT",
2098                  "content": {
2099                    "type": "SYMBOL",
2100                    "name": "_statement"
2101                  }
2102                },
2103                {
2104                  "type": "ALIAS",
2105                  "content": {
2106                    "type": "PATTERN",
2107                    "value": "[eE][nN][dD][dD][eE][cC][lL][aA][rR][eE]"
2108                  },
2109                  "named": false,
2110                  "value": "enddeclare"
2111                },
2112                {
2113                  "type": "SYMBOL",
2114                  "name": "_semicolon"
2115                }
2116              ]
2117            },
2118            {
2119              "type": "SYMBOL",
2120              "name": "_semicolon"
2121            }
2122          ]
2123        }
2124      ]
2125    },
2126    "declare_directive": {
2127      "type": "SEQ",
2128      "members": [
2129        {
2130          "type": "CHOICE",
2131          "members": [
2132            {
2133              "type": "STRING",
2134              "value": "ticks"
2135            },
2136            {
2137              "type": "STRING",
2138              "value": "encoding"
2139            },
2140            {
2141              "type": "STRING",
2142              "value": "strict_types"
2143            }
2144          ]
2145        },
2146        {
2147          "type": "STRING",
2148          "value": "="
2149        },
2150        {
2151          "type": "SYMBOL",
2152          "name": "_literal"
2153        }
2154      ]
2155    },
2156    "_literal": {
2157      "type": "CHOICE",
2158      "members": [
2159        {
2160          "type": "SYMBOL",
2161          "name": "integer"
2162        },
2163        {
2164          "type": "SYMBOL",
2165          "name": "float"
2166        },
2167        {
2168          "type": "SYMBOL",
2169          "name": "_string"
2170        },
2171        {
2172          "type": "SYMBOL",
2173          "name": "boolean"
2174        },
2175        {
2176          "type": "SYMBOL",
2177          "name": "null"
2178        }
2179      ]
2180    },
2181    "float": {
2182      "type": "PATTERN",
2183      "value": "\\d*((\\.\\d*)?([eE][\\+-]?\\d+)|(\\.\\d*)([eE][\\+-]?\\d+)?)"
2184    },
2185    "try_statement": {
2186      "type": "SEQ",
2187      "members": [
2188        {
2189          "type": "ALIAS",
2190          "content": {
2191            "type": "PATTERN",
2192            "value": "[tT][rR][yY]"
2193          },
2194          "named": false,
2195          "value": "try"
2196        },
2197        {
2198          "type": "FIELD",
2199          "name": "body",
2200          "content": {
2201            "type": "SYMBOL",
2202            "name": "compound_statement"
2203          }
2204        },
2205        {
2206          "type": "REPEAT1",
2207          "content": {
2208            "type": "CHOICE",
2209            "members": [
2210              {
2211                "type": "SYMBOL",
2212                "name": "catch_clause"
2213              },
2214              {
2215                "type": "SYMBOL",
2216                "name": "finally_clause"
2217              }
2218            ]
2219          }
2220        }
2221      ]
2222    },
2223    "catch_clause": {
2224      "type": "SEQ",
2225      "members": [
2226        {
2227          "type": "ALIAS",
2228          "content": {
2229            "type": "PATTERN",
2230            "value": "[cC][aA][tT][cC][hH]"
2231          },
2232          "named": false,
2233          "value": "catch"
2234        },
2235        {
2236          "type": "STRING",
2237          "value": "("
2238        },
2239        {
2240          "type": "FIELD",
2241          "name": "type",
2242          "content": {
2243            "type": "SYMBOL",
2244            "name": "_type_name"
2245          }
2246        },
2247        {
2248          "type": "FIELD",
2249          "name": "name",
2250          "content": {
2251            "type": "SYMBOL",
2252            "name": "variable_name"
2253          }
2254        },
2255        {
2256          "type": "STRING",
2257          "value": ")"
2258        },
2259        {
2260          "type": "FIELD",
2261          "name": "body",
2262          "content": {
2263            "type": "SYMBOL",
2264            "name": "compound_statement"
2265          }
2266        }
2267      ]
2268    },
2269    "finally_clause": {
2270      "type": "SEQ",
2271      "members": [
2272        {
2273          "type": "ALIAS",
2274          "content": {
2275            "type": "PATTERN",
2276            "value": "[fF][iI][nN][aA][lL][lL][yY]"
2277          },
2278          "named": false,
2279          "value": "finally"
2280        },
2281        {
2282          "type": "FIELD",
2283          "name": "body",
2284          "content": {
2285            "type": "SYMBOL",
2286            "name": "compound_statement"
2287          }
2288        }
2289      ]
2290    },
2291    "goto_statement": {
2292      "type": "SEQ",
2293      "members": [
2294        {
2295          "type": "ALIAS",
2296          "content": {
2297            "type": "PATTERN",
2298            "value": "[gG][oO][tT][oO]"
2299          },
2300          "named": false,
2301          "value": "goto"
2302        },
2303        {
2304          "type": "SYMBOL",
2305          "name": "name"
2306        },
2307        {
2308          "type": "SYMBOL",
2309          "name": "_semicolon"
2310        }
2311      ]
2312    },
2313    "continue_statement": {
2314      "type": "SEQ",
2315      "members": [
2316        {
2317          "type": "ALIAS",
2318          "content": {
2319            "type": "PATTERN",
2320            "value": "[cC][oO][nN][tT][iI][nN][uU][eE]"
2321          },
2322          "named": false,
2323          "value": "continue"
2324        },
2325        {
2326          "type": "CHOICE",
2327          "members": [
2328            {
2329              "type": "SYMBOL",
2330              "name": "_expression"
2331            },
2332            {
2333              "type": "BLANK"
2334            }
2335          ]
2336        },
2337        {
2338          "type": "SYMBOL",
2339          "name": "_semicolon"
2340        }
2341      ]
2342    },
2343    "break_statement": {
2344      "type": "SEQ",
2345      "members": [
2346        {
2347          "type": "ALIAS",
2348          "content": {
2349            "type": "PATTERN",
2350            "value": "[bB][rR][eE][aA][kK]"
2351          },
2352          "named": false,
2353          "value": "break"
2354        },
2355        {
2356          "type": "CHOICE",
2357          "members": [
2358            {
2359              "type": "SYMBOL",
2360              "name": "_expression"
2361            },
2362            {
2363              "type": "BLANK"
2364            }
2365          ]
2366        },
2367        {
2368          "type": "SYMBOL",
2369          "name": "_semicolon"
2370        }
2371      ]
2372    },
2373    "integer": {
2374      "type": "TOKEN",
2375      "content": {
2376        "type": "CHOICE",
2377        "members": [
2378          {
2379            "type": "PATTERN",
2380            "value": "[1-9]\\d*"
2381          },
2382          {
2383            "type": "PATTERN",
2384            "value": "0[0-7]*"
2385          },
2386          {
2387            "type": "PATTERN",
2388            "value": "0[xX][0-9a-fA-F]+"
2389          },
2390          {
2391            "type": "PATTERN",
2392            "value": "0[bB][01]+"
2393          }
2394        ]
2395      }
2396    },
2397    "return_statement": {
2398      "type": "SEQ",
2399      "members": [
2400        {
2401          "type": "ALIAS",
2402          "content": {
2403            "type": "PATTERN",
2404            "value": "[rR][eE][tT][uU][rR][nN]"
2405          },
2406          "named": false,
2407          "value": "return"
2408        },
2409        {
2410          "type": "CHOICE",
2411          "members": [
2412            {
2413              "type": "SYMBOL",
2414              "name": "_expression"
2415            },
2416            {
2417              "type": "BLANK"
2418            }
2419          ]
2420        },
2421        {
2422          "type": "SYMBOL",
2423          "name": "_semicolon"
2424        }
2425      ]
2426    },
2427    "throw_statement": {
2428      "type": "SEQ",
2429      "members": [
2430        {
2431          "type": "ALIAS",
2432          "content": {
2433            "type": "PATTERN",
2434            "value": "[tT][hH][rR][oO][wW]"
2435          },
2436          "named": false,
2437          "value": "throw"
2438        },
2439        {
2440          "type": "SYMBOL",
2441          "name": "_expression"
2442        },
2443        {
2444          "type": "SYMBOL",
2445          "name": "_semicolon"
2446        }
2447      ]
2448    },
2449    "while_statement": {
2450      "type": "SEQ",
2451      "members": [
2452        {
2453          "type": "ALIAS",
2454          "content": {
2455            "type": "PATTERN",
2456            "value": "[wW][hH][iI][lL][eE]"
2457          },
2458          "named": false,
2459          "value": "while"
2460        },
2461        {
2462          "type": "FIELD",
2463          "name": "condition",
2464          "content": {
2465            "type": "SYMBOL",
2466            "name": "parenthesized_expression"
2467          }
2468        },
2469        {
2470          "type": "CHOICE",
2471          "members": [
2472            {
2473              "type": "FIELD",
2474              "name": "body",
2475              "content": {
2476                "type": "SYMBOL",
2477                "name": "_statement"
2478              }
2479            },
2480            {
2481              "type": "SEQ",
2482              "members": [
2483                {
2484                  "type": "FIELD",
2485                  "name": "body",
2486                  "content": {
2487                    "type": "SYMBOL",
2488                    "name": "colon_block"
2489                  }
2490                },
2491                {
2492                  "type": "ALIAS",
2493                  "content": {
2494                    "type": "PATTERN",
2495                    "value": "[eE][nN][dD][wW][hH][iI][lL][eE]"
2496                  },
2497                  "named": false,
2498                  "value": "endwhile"
2499                },
2500                {
2501                  "type": "SYMBOL",
2502                  "name": "_semicolon"
2503                }
2504              ]
2505            }
2506          ]
2507        }
2508      ]
2509    },
2510    "do_statement": {
2511      "type": "SEQ",
2512      "members": [
2513        {
2514          "type": "ALIAS",
2515          "content": {
2516            "type": "PATTERN",
2517            "value": "[dD][oO]"
2518          },
2519          "named": false,
2520          "value": "do"
2521        },
2522        {
2523          "type": "FIELD",
2524          "name": "body",
2525          "content": {
2526            "type": "SYMBOL",
2527            "name": "_statement"
2528          }
2529        },
2530        {
2531          "type": "ALIAS",
2532          "content": {
2533            "type": "PATTERN",
2534            "value": "[wW][hH][iI][lL][eE]"
2535          },
2536          "named": false,
2537          "value": "while"
2538        },
2539        {
2540          "type": "FIELD",
2541          "name": "condition",
2542          "content": {
2543            "type": "SYMBOL",
2544            "name": "parenthesized_expression"
2545          }
2546        },
2547        {
2548          "type": "SYMBOL",
2549          "name": "_semicolon"
2550        }
2551      ]
2552    },
2553    "for_statement": {
2554      "type": "SEQ",
2555      "members": [
2556        {
2557          "type": "ALIAS",
2558          "content": {
2559            "type": "PATTERN",
2560            "value": "[fF][oO][rR]"
2561          },
2562          "named": false,
2563          "value": "for"
2564        },
2565        {
2566          "type": "STRING",
2567          "value": "("
2568        },
2569        {
2570          "type": "CHOICE",
2571          "members": [
2572            {
2573              "type": "SYMBOL",
2574              "name": "_expressions"
2575            },
2576            {
2577              "type": "BLANK"
2578            }
2579          ]
2580        },
2581        {
2582          "type": "STRING",
2583          "value": ";"
2584        },
2585        {
2586          "type": "CHOICE",
2587          "members": [
2588            {
2589              "type": "SYMBOL",
2590              "name": "_expressions"
2591            },
2592            {
2593              "type": "BLANK"
2594            }
2595          ]
2596        },
2597        {
2598          "type": "STRING",
2599          "value": ";"
2600        },
2601        {
2602          "type": "CHOICE",
2603          "members": [
2604            {
2605              "type": "SYMBOL",
2606              "name": "_expressions"
2607            },
2608            {
2609              "type": "BLANK"
2610            }
2611          ]
2612        },
2613        {
2614          "type": "STRING",
2615          "value": ")"
2616        },
2617        {
2618          "type": "CHOICE",
2619          "members": [
2620            {
2621              "type": "SYMBOL",
2622              "name": "_semicolon"
2623            },
2624            {
2625              "type": "SYMBOL",
2626              "name": "_statement"
2627            },
2628            {
2629              "type": "SEQ",
2630              "members": [
2631                {
2632                  "type": "STRING",
2633                  "value": ":"
2634                },
2635                {
2636                  "type": "REPEAT",
2637                  "content": {
2638                    "type": "SYMBOL",
2639                    "name": "_statement"
2640                  }
2641                },
2642                {
2643                  "type": "ALIAS",
2644                  "content": {
2645                    "type": "PATTERN",
2646                    "value": "[eE][nN][dD][fF][oO][rR]"
2647                  },
2648                  "named": false,
2649                  "value": "endfor"
2650                },
2651                {
2652                  "type": "SYMBOL",
2653                  "name": "_semicolon"
2654                }
2655              ]
2656            }
2657          ]
2658        }
2659      ]
2660    },
2661    "_expressions": {
2662      "type": "CHOICE",
2663      "members": [
2664        {
2665          "type": "SYMBOL",
2666          "name": "_expression"
2667        },
2668        {
2669          "type": "SYMBOL",
2670          "name": "sequence_expression"
2671        }
2672      ]
2673    },
2674    "sequence_expression": {
2675      "type": "PREC",
2676      "value": -1,
2677      "content": {
2678        "type": "SEQ",
2679        "members": [
2680          {
2681            "type": "SYMBOL",
2682            "name": "_expression"
2683          },
2684          {
2685            "type": "STRING",
2686            "value": ","
2687          },
2688          {
2689            "type": "CHOICE",
2690            "members": [
2691              {
2692                "type": "SYMBOL",
2693                "name": "sequence_expression"
2694              },
2695              {
2696                "type": "SYMBOL",
2697                "name": "_expression"
2698              }
2699            ]
2700          }
2701        ]
2702      }
2703    },
2704    "foreach_statement": {
2705      "type": "SEQ",
2706      "members": [
2707        {
2708          "type": "ALIAS",
2709          "content": {
2710            "type": "PATTERN",
2711            "value": "[fF][oO][rR][eE][aA][cC][hH]"
2712          },
2713          "named": false,
2714          "value": "foreach"
2715        },
2716        {
2717          "type": "STRING",
2718          "value": "("
2719        },
2720        {
2721          "type": "SYMBOL",
2722          "name": "_expression"
2723        },
2724        {
2725          "type": "ALIAS",
2726          "content": {
2727            "type": "PATTERN",
2728            "value": "[aA][sS]"
2729          },
2730          "named": false,
2731          "value": "as"
2732        },
2733        {
2734          "type": "CHOICE",
2735          "members": [
2736            {
2737              "type": "ALIAS",
2738              "content": {
2739                "type": "SYMBOL",
2740                "name": "foreach_pair"
2741              },
2742              "named": true,
2743              "value": "pair"
2744            },
2745            {
2746              "type": "SYMBOL",
2747              "name": "_foreach_value"
2748            }
2749          ]
2750        },
2751        {
2752          "type": "STRING",
2753          "value": ")"
2754        },
2755        {
2756          "type": "CHOICE",
2757          "members": [
2758            {
2759              "type": "SYMBOL",
2760              "name": "_semicolon"
2761            },
2762            {
2763              "type": "FIELD",
2764              "name": "body",
2765              "content": {
2766                "type": "SYMBOL",
2767                "name": "_statement"
2768              }
2769            },
2770            {
2771              "type": "SEQ",
2772              "members": [
2773                {
2774                  "type": "FIELD",
2775                  "name": "body",
2776                  "content": {
2777                    "type": "SYMBOL",
2778                    "name": "colon_block"
2779                  }
2780                },
2781                {
2782                  "type": "ALIAS",
2783                  "content": {
2784                    "type": "PATTERN",
2785                    "value": "[eE][nN][dD][fF][oO][rR][eE][aA][cC][hH]"
2786                  },
2787                  "named": false,
2788                  "value": "endforeach"
2789                },
2790                {
2791                  "type": "SYMBOL",
2792                  "name": "_semicolon"
2793                }
2794              ]
2795            }
2796          ]
2797        }
2798      ]
2799    },
2800    "foreach_pair": {
2801      "type": "SEQ",
2802      "members": [
2803        {
2804          "type": "SYMBOL",
2805          "name": "_expression"
2806        },
2807        {
2808          "type": "STRING",
2809          "value": "=>"
2810        },
2811        {
2812          "type": "SYMBOL",
2813          "name": "_foreach_value"
2814        }
2815      ]
2816    },
2817    "_foreach_value": {
2818      "type": "CHOICE",
2819      "members": [
2820        {
2821          "type": "SEQ",
2822          "members": [
2823            {
2824              "type": "CHOICE",
2825              "members": [
2826                {
2827                  "type": "STRING",
2828                  "value": "&"
2829                },
2830                {
2831                  "type": "BLANK"
2832                }
2833              ]
2834            },
2835            {
2836              "type": "SYMBOL",
2837              "name": "_expression"
2838            }
2839          ]
2840        },
2841        {
2842          "type": "SYMBOL",
2843          "name": "list_literal"
2844        }
2845      ]
2846    },
2847    "if_statement": {
2848      "type": "PREC_RIGHT",
2849      "value": 0,
2850      "content": {
2851        "type": "SEQ",
2852        "members": [
2853          {
2854            "type": "ALIAS",
2855            "content": {
2856              "type": "PATTERN",
2857              "value": "[iI][fF]"
2858            },
2859            "named": false,
2860            "value": "if"
2861          },
2862          {
2863            "type": "FIELD",
2864            "name": "condition",
2865            "content": {
2866              "type": "SYMBOL",
2867              "name": "parenthesized_expression"
2868            }
2869          },
2870          {
2871            "type": "CHOICE",
2872            "members": [
2873              {
2874                "type": "SEQ",
2875                "members": [
2876                  {
2877                    "type": "FIELD",
2878                    "name": "body",
2879                    "content": {
2880                      "type": "SYMBOL",
2881                      "name": "_statement"
2882                    }
2883                  },
2884                  {
2885                    "type": "REPEAT",
2886                    "content": {
2887                      "type": "FIELD",
2888                      "name": "alternative",
2889                      "content": {
2890                        "type": "SYMBOL",
2891                        "name": "else_if_clause"
2892                      }
2893                    }
2894                  },
2895                  {
2896                    "type": "CHOICE",
2897                    "members": [
2898                      {
2899                        "type": "FIELD",
2900                        "name": "alternative",
2901                        "content": {
2902                          "type": "SYMBOL",
2903                          "name": "else_clause"
2904                        }
2905                      },
2906                      {
2907                        "type": "BLANK"
2908                      }
2909                    ]
2910                  }
2911                ]
2912              },
2913              {
2914                "type": "SEQ",
2915                "members": [
2916                  {
2917                    "type": "FIELD",
2918                    "name": "body",
2919                    "content": {
2920                      "type": "SYMBOL",
2921                      "name": "colon_block"
2922                    }
2923                  },
2924                  {
2925                    "type": "REPEAT",
2926                    "content": {
2927                      "type": "FIELD",
2928                      "name": "alternative",
2929                      "content": {
2930                        "type": "ALIAS",
2931                        "content": {
2932                          "type": "SYMBOL",
2933                          "name": "else_if_clause_2"
2934                        },
2935                        "named": true,
2936                        "value": "else_if_clause"
2937                      }
2938                    }
2939                  },
2940                  {
2941                    "type": "CHOICE",
2942                    "members": [
2943                      {
2944                        "type": "FIELD",
2945                        "name": "alternative",
2946                        "content": {
2947                          "type": "ALIAS",
2948                          "content": {
2949                            "type": "SYMBOL",
2950                            "name": "else_clause_2"
2951                          },
2952                          "named": true,
2953                          "value": "else_clause"
2954                        }
2955                      },
2956                      {
2957                        "type": "BLANK"
2958                      }
2959                    ]
2960                  },
2961                  {
2962                    "type": "ALIAS",
2963                    "content": {
2964                      "type": "PATTERN",
2965                      "value": "[eE][nN][dD][iI][fF]"
2966                    },
2967                    "named": false,
2968                    "value": "endif"
2969                  },
2970                  {
2971                    "type": "SYMBOL",
2972                    "name": "_semicolon"
2973                  }
2974                ]
2975              }
2976            ]
2977          }
2978        ]
2979      }
2980    },
2981    "colon_block": {
2982      "type": "SEQ",
2983      "members": [
2984        {
2985          "type": "STRING",
2986          "value": ":"
2987        },
2988        {
2989          "type": "REPEAT",
2990          "content": {
2991            "type": "SYMBOL",
2992            "name": "_statement"
2993          }
2994        }
2995      ]
2996    },
2997    "else_if_clause": {
2998      "type": "SEQ",
2999      "members": [
3000        {
3001          "type": "ALIAS",
3002          "content": {
3003            "type": "PATTERN",
3004            "value": "[eE][lL][sS][eE][iI][fF]"
3005          },
3006          "named": false,
3007          "value": "elseif"
3008        },
3009        {
3010          "type": "FIELD",
3011          "name": "condition",
3012          "content": {
3013            "type": "SYMBOL",
3014            "name": "parenthesized_expression"
3015          }
3016        },
3017        {
3018          "type": "FIELD",
3019          "name": "body",
3020          "content": {
3021            "type": "SYMBOL",
3022            "name": "_statement"
3023          }
3024        }
3025      ]
3026    },
3027    "else_clause": {
3028      "type": "SEQ",
3029      "members": [
3030        {
3031          "type": "ALIAS",
3032          "content": {
3033            "type": "PATTERN",
3034            "value": "[eE][lL][sS][eE]"
3035          },
3036          "named": false,
3037          "value": "else"
3038        },
3039        {
3040          "type": "FIELD",
3041          "name": "body",
3042          "content": {
3043            "type": "SYMBOL",
3044            "name": "_statement"
3045          }
3046        }
3047      ]
3048    },
3049    "else_if_clause_2": {
3050      "type": "SEQ",
3051      "members": [
3052        {
3053          "type": "ALIAS",
3054          "content": {
3055            "type": "PATTERN",
3056            "value": "[eE][lL][sS][eE][iI][fF]"
3057          },
3058          "named": false,
3059          "value": "elseif"
3060        },
3061        {
3062          "type": "FIELD",
3063          "name": "condition",
3064          "content": {
3065            "type": "SYMBOL",
3066            "name": "parenthesized_expression"
3067          }
3068        },
3069        {
3070          "type": "FIELD",
3071          "name": "body",
3072          "content": {
3073            "type": "SYMBOL",
3074            "name": "colon_block"
3075          }
3076        }
3077      ]
3078    },
3079    "else_clause_2": {
3080      "type": "SEQ",
3081      "members": [
3082        {
3083          "type": "ALIAS",
3084          "content": {
3085            "type": "PATTERN",
3086            "value": "[eE][lL][sS][eE]"
3087          },
3088          "named": false,
3089          "value": "else"
3090        },
3091        {
3092          "type": "FIELD",
3093          "name": "body",
3094          "content": {
3095            "type": "SYMBOL",
3096            "name": "colon_block"
3097          }
3098        }
3099      ]
3100    },
3101    "switch_statement": {
3102      "type": "SEQ",
3103      "members": [
3104        {
3105          "type": "ALIAS",
3106          "content": {
3107            "type": "PATTERN",
3108            "value": "[sS][wW][iI][tT][cC][hH]"
3109          },
3110          "named": false,
3111          "value": "switch"
3112        },
3113        {
3114          "type": "FIELD",
3115          "name": "condition",
3116          "content": {
3117            "type": "SYMBOL",
3118            "name": "parenthesized_expression"
3119          }
3120        },
3121        {
3122          "type": "FIELD",
3123          "name": "body",
3124          "content": {
3125            "type": "SYMBOL",
3126            "name": "switch_block"
3127          }
3128        }
3129      ]
3130    },
3131    "switch_block": {
3132      "type": "CHOICE",
3133      "members": [
3134        {
3135          "type": "SEQ",
3136          "members": [
3137            {
3138              "type": "STRING",
3139              "value": "{"
3140            },
3141            {
3142              "type": "REPEAT",
3143              "content": {
3144                "type": "CHOICE",
3145                "members": [
3146                  {
3147                    "type": "SYMBOL",
3148                    "name": "case_statement"
3149                  },
3150                  {
3151                    "type": "SYMBOL",
3152                    "name": "default_statement"
3153                  }
3154                ]
3155              }
3156            },
3157            {
3158              "type": "STRING",
3159              "value": "}"
3160            }
3161          ]
3162        },
3163        {
3164          "type": "SEQ",
3165          "members": [
3166            {
3167              "type": "STRING",
3168              "value": ":"
3169            },
3170            {
3171              "type": "REPEAT",
3172              "content": {
3173                "type": "CHOICE",
3174                "members": [
3175                  {
3176                    "type": "SYMBOL",
3177                    "name": "case_statement"
3178                  },
3179                  {
3180                    "type": "SYMBOL",
3181                    "name": "default_statement"
3182                  }
3183                ]
3184              }
3185            },
3186            {
3187              "type": "ALIAS",
3188              "content": {
3189                "type": "PATTERN",
3190                "value": "[eE][nN][dD][sS][wW][iI][tT][cC][hH]"
3191              },
3192              "named": false,
3193              "value": "endswitch"
3194            },
3195            {
3196              "type": "SYMBOL",
3197              "name": "_semicolon"
3198            }
3199          ]
3200        }
3201      ]
3202    },
3203    "case_statement": {
3204      "type": "SEQ",
3205      "members": [
3206        {
3207          "type": "ALIAS",
3208          "content": {
3209            "type": "PATTERN",
3210            "value": "[cC][aA][sS][eE]"
3211          },
3212          "named": false,
3213          "value": "case"
3214        },
3215        {
3216          "type": "FIELD",
3217          "name": "value",
3218          "content": {
3219            "type": "SYMBOL",
3220            "name": "_expression"
3221          }
3222        },
3223        {
3224          "type": "CHOICE",
3225          "members": [
3226            {
3227              "type": "STRING",
3228              "value": ":"
3229            },
3230            {
3231              "type": "STRING",
3232              "value": ";"
3233            }
3234          ]
3235        },
3236        {
3237          "type": "REPEAT",
3238          "content": {
3239            "type": "SYMBOL",
3240            "name": "_statement"
3241          }
3242        }
3243      ]
3244    },
3245    "default_statement": {
3246      "type": "SEQ",
3247      "members": [
3248        {
3249          "type": "ALIAS",
3250          "content": {
3251            "type": "PATTERN",
3252            "value": "[dD][eE][fF][aA][uU][lL][tT]"
3253          },
3254          "named": false,
3255          "value": "default"
3256        },
3257        {
3258          "type": "CHOICE",
3259          "members": [
3260            {
3261              "type": "STRING",
3262              "value": ":"
3263            },
3264            {
3265              "type": "STRING",
3266              "value": ";"
3267            }
3268          ]
3269        },
3270        {
3271          "type": "REPEAT",
3272          "content": {
3273            "type": "SYMBOL",
3274            "name": "_statement"
3275          }
3276        }
3277      ]
3278    },
3279    "compound_statement": {
3280      "type": "SEQ",
3281      "members": [
3282        {
3283          "type": "STRING",
3284          "value": "{"
3285        },
3286        {
3287          "type": "REPEAT",
3288          "content": {
3289            "type": "SYMBOL",
3290            "name": "_statement"
3291          }
3292        },
3293        {
3294          "type": "STRING",
3295          "value": "}"
3296        }
3297      ]
3298    },
3299    "named_label_statement": {
3300      "type": "SEQ",
3301      "members": [
3302        {
3303          "type": "SYMBOL",
3304          "name": "name"
3305        },
3306        {
3307          "type": "STRING",
3308          "value": ":"
3309        }
3310      ]
3311    },
3312    "expression_statement": {
3313      "type": "SEQ",
3314      "members": [
3315        {
3316          "type": "SYMBOL",
3317          "name": "_expression"
3318        },
3319        {
3320          "type": "SYMBOL",
3321          "name": "_semicolon"
3322        }
3323      ]
3324    },
3325    "_expression": {
3326      "type": "CHOICE",
3327      "members": [
3328        {
3329          "type": "SYMBOL",
3330          "name": "conditional_expression"
3331        },
3332        {
3333          "type": "SYMBOL",
3334          "name": "augmented_assignment_expression"
3335        },
3336        {
3337          "type": "SYMBOL",
3338          "name": "assignment_expression"
3339        },
3340        {
3341          "type": "SYMBOL",
3342          "name": "yield_expression"
3343        },
3344        {
3345          "type": "SYMBOL",
3346          "name": "_unary_expression"
3347        },
3348        {
3349          "type": "SYMBOL",
3350          "name": "binary_expression"
3351        },
3352        {
3353          "type": "SYMBOL",
3354          "name": "include_expression"
3355        },
3356        {
3357          "type": "SYMBOL",
3358          "name": "include_once_expression"
3359        },
3360        {
3361          "type": "SYMBOL",
3362          "name": "require_expression"
3363        },
3364        {
3365          "type": "SYMBOL",
3366          "name": "require_once_expression"
3367        }
3368      ]
3369    },
3370    "_unary_expression": {
3371      "type": "CHOICE",
3372      "members": [
3373        {
3374          "type": "SYMBOL",
3375          "name": "clone_expression"
3376        },
3377        {
3378          "type": "SYMBOL",
3379          "name": "_primary_expression"
3380        },
3381        {
3382          "type": "SYMBOL",
3383          "name": "exponentiation_expression"
3384        },
3385        {
3386          "type": "SYMBOL",
3387          "name": "unary_op_expression"
3388        },
3389        {
3390          "type": "SYMBOL",
3391          "name": "cast_expression"
3392        }
3393      ]
3394    },
3395    "unary_op_expression": {
3396      "type": "CHOICE",
3397      "members": [
3398        {
3399          "type": "SEQ",
3400          "members": [
3401            {
3402              "type": "STRING",
3403              "value": "@"
3404            },
3405            {
3406              "type": "SYMBOL",
3407              "name": "_expression"
3408            }
3409          ]
3410        },
3411        {
3412          "type": "PREC_LEFT",
3413          "value": 17,
3414          "content": {
3415            "type": "SEQ",
3416            "members": [
3417              {
3418                "type": "CHOICE",
3419                "members": [
3420                  {
3421                    "type": "STRING",
3422                    "value": "+"
3423                  },
3424                  {
3425                    "type": "STRING",
3426                    "value": "-"
3427                  },
3428                  {
3429                    "type": "STRING",
3430                    "value": "~"
3431                  },
3432                  {
3433                    "type": "STRING",
3434                    "value": "!"
3435                  }
3436                ]
3437              },
3438              {
3439                "type": "SYMBOL",
3440                "name": "_expression"
3441              }
3442            ]
3443          }
3444        }
3445      ]
3446    },
3447    "exponentiation_expression": {
3448      "type": "PREC_RIGHT",
3449      "value": 16,
3450      "content": {
3451        "type": "SEQ",
3452        "members": [
3453          {
3454            "type": "CHOICE",
3455            "members": [
3456              {
3457                "type": "SYMBOL",
3458                "name": "clone_expression"
3459              },
3460              {
3461                "type": "SYMBOL",
3462                "name": "_primary_expression"
3463              }
3464            ]
3465          },
3466          {
3467            "type": "STRING",
3468            "value": "**"
3469          },
3470          {
3471            "type": "CHOICE",
3472            "members": [
3473              {
3474                "type": "SYMBOL",
3475                "name": "exponentiation_expression"
3476              },
3477              {
3478                "type": "SYMBOL",
3479                "name": "clone_expression"
3480              },
3481              {
3482                "type": "SYMBOL",
3483                "name": "_primary_expression"
3484              }
3485            ]
3486          }
3487        ]
3488      }
3489    },
3490    "clone_expression": {
3491      "type": "SEQ",
3492      "members": [
3493        {
3494          "type": "STRING",
3495          "value": "clone"
3496        },
3497        {
3498          "type": "SYMBOL",
3499          "name": "_primary_expression"
3500        }
3501      ]
3502    },
3503    "_primary_expression": {
3504      "type": "CHOICE",
3505      "members": [
3506        {
3507          "type": "SYMBOL",
3508          "name": "_variable"
3509        },
3510        {
3511          "type": "SYMBOL",
3512          "name": "_literal"
3513        },
3514        {
3515          "type": "SYMBOL",
3516          "name": "class_constant_access_expression"
3517        },
3518        {
3519          "type": "SYMBOL",
3520          "name": "qualified_name"
3521        },
3522        {
3523          "type": "SYMBOL",
3524          "name": "array_creation_expression"
3525        },
3526        {
3527          "type": "SYMBOL",
3528          "name": "print_intrinsic"
3529        },
3530        {
3531          "type": "SYMBOL",
3532          "name": "anonymous_function_creation_expression"
3533        },
3534        {
3535          "type": "SYMBOL",
3536          "name": "object_creation_expression"
3537        },
3538        {
3539          "type": "SYMBOL",
3540          "name": "update_expression"
3541        },
3542        {
3543          "type": "SYMBOL",
3544          "name": "shell_command_expression"
3545        },
3546        {
3547          "type": "SYMBOL",
3548          "name": "parenthesized_expression"
3549        }
3550      ]
3551    },
3552    "parenthesized_expression": {
3553      "type": "SEQ",
3554      "members": [
3555        {
3556          "type": "STRING",
3557          "value": "("
3558        },
3559        {
3560          "type": "SYMBOL",
3561          "name": "_expression"
3562        },
3563        {
3564          "type": "STRING",
3565          "value": ")"
3566        }
3567      ]
3568    },
3569    "class_constant_access_expression": {
3570      "type": "SEQ",
3571      "members": [
3572        {
3573          "type": "SYMBOL",
3574          "name": "_scope_resolution_qualifier"
3575        },
3576        {
3577          "type": "STRING",
3578          "value": "::"
3579        },
3580        {
3581          "type": "CHOICE",
3582          "members": [
3583            {
3584              "type": "SYMBOL",
3585              "name": "name"
3586            },
3587            {
3588              "type": "ALIAS",
3589              "content": {
3590                "type": "SYMBOL",
3591                "name": "_reserved_identifier"
3592              },
3593              "named": true,
3594              "value": "name"
3595            }
3596          ]
3597        }
3598      ]
3599    },
3600    "print_intrinsic": {
3601      "type": "SEQ",
3602      "members": [
3603        {
3604          "type": "STRING",
3605          "value": "print"
3606        },
3607        {
3608          "type": "SYMBOL",
3609          "name": "_expression"
3610        }
3611      ]
3612    },
3613    "anonymous_function_creation_expression": {
3614      "type": "SEQ",
3615      "members": [
3616        {
3617          "type": "CHOICE",
3618          "members": [
3619            {
3620              "type": "ALIAS",
3621              "content": {
3622                "type": "PATTERN",
3623                "value": "[sS][tT][aA][tT][iI][cC]"
3624              },
3625              "named": false,
3626              "value": "static"
3627            },
3628            {
3629              "type": "BLANK"
3630            }
3631          ]
3632        },
3633        {
3634          "type": "ALIAS",
3635          "content": {
3636            "type": "PATTERN",
3637            "value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
3638          },
3639          "named": false,
3640          "value": "function"
3641        },
3642        {
3643          "type": "CHOICE",
3644          "members": [
3645            {
3646              "type": "STRING",
3647              "value": "&"
3648            },
3649            {
3650              "type": "BLANK"
3651            }
3652          ]
3653        },
3654        {
3655          "type": "FIELD",
3656          "name": "parameters",
3657          "content": {
3658            "type": "SYMBOL",
3659            "name": "formal_parameters"
3660          }
3661        },
3662        {
3663          "type": "CHOICE",
3664          "members": [
3665            {
3666              "type": "SYMBOL",
3667              "name": "anonymous_function_use_clause"
3668            },
3669            {
3670              "type": "BLANK"
3671            }
3672          ]
3673        },
3674        {
3675          "type": "CHOICE",
3676          "members": [
3677            {
3678              "type": "SYMBOL",
3679              "name": "_return_type"
3680            },
3681            {
3682              "type": "BLANK"
3683            }
3684          ]
3685        },
3686        {
3687          "type": "FIELD",
3688          "name": "body",
3689          "content": {
3690            "type": "SYMBOL",
3691            "name": "compound_statement"
3692          }
3693        }
3694      ]
3695    },
3696    "anonymous_function_use_clause": {
3697      "type": "SEQ",
3698      "members": [
3699        {
3700          "type": "ALIAS",
3701          "content": {
3702            "type": "PATTERN",
3703            "value": "[uU][sS][eE]"
3704          },
3705          "named": false,
3706          "value": "use"
3707        },
3708        {
3709          "type": "STRING",
3710          "value": "("
3711        },
3712        {
3713          "type": "SEQ",
3714          "members": [
3715            {
3716              "type": "SEQ",
3717              "members": [
3718                {
3719                  "type": "CHOICE",
3720                  "members": [
3721                    {
3722                      "type": "STRING",
3723                      "value": "&"
3724                    },
3725                    {
3726                      "type": "BLANK"
3727                    }
3728                  ]
3729                },
3730                {
3731                  "type": "SYMBOL",
3732                  "name": "variable_name"
3733                }
3734              ]
3735            },
3736            {
3737              "type": "REPEAT",
3738              "content": {
3739                "type": "SEQ",
3740                "members": [
3741                  {
3742                    "type": "STRING",
3743                    "value": ","
3744                  },
3745                  {
3746                    "type": "SEQ",
3747                    "members": [
3748                      {
3749                        "type": "CHOICE",
3750                        "members": [
3751                          {
3752                            "type": "STRING",
3753                            "value": "&"
3754                          },
3755                          {
3756                            "type": "BLANK"
3757                          }
3758                        ]
3759                      },
3760                      {
3761                        "type": "SYMBOL",
3762                        "name": "variable_name"
3763                      }
3764                    ]
3765                  }
3766                ]
3767              }
3768            }
3769          ]
3770        },
3771        {
3772          "type": "STRING",
3773          "value": ")"
3774        }
3775      ]
3776    },
3777    "object_creation_expression": {
3778      "type": "PREC_RIGHT",
3779      "value": 21,
3780      "content": {
3781        "type": "CHOICE",
3782        "members": [
3783          {
3784            "type": "SEQ",
3785            "members": [
3786              {
3787                "type": "STRING",
3788                "value": "new"
3789              },
3790              {
3791                "type": "SYMBOL",
3792                "name": "_class_type_designator"
3793              },
3794              {
3795                "type": "CHOICE",
3796                "members": [
3797                  {
3798                    "type": "SYMBOL",
3799                    "name": "arguments"
3800                  },
3801                  {
3802                    "type": "BLANK"
3803                  }
3804                ]
3805              }
3806            ]
3807          },
3808          {
3809            "type": "SEQ",
3810            "members": [
3811              {
3812                "type": "STRING",
3813                "value": "new"
3814              },
3815              {
3816                "type": "ALIAS",
3817                "content": {
3818                  "type": "PATTERN",
3819                  "value": "[cC][lL][aA][sS][sS]"
3820                },
3821                "named": false,
3822                "value": "class"
3823              },
3824              {
3825                "type": "CHOICE",
3826                "members": [
3827                  {
3828                    "type": "SYMBOL",
3829                    "name": "arguments"
3830                  },
3831                  {
3832                    "type": "BLANK"
3833                  }
3834                ]
3835              },
3836              {
3837                "type": "CHOICE",
3838                "members": [
3839                  {
3840                    "type": "SYMBOL",
3841                    "name": "base_clause"
3842                  },
3843                  {
3844                    "type": "BLANK"
3845                  }
3846                ]
3847              },
3848              {
3849                "type": "CHOICE",
3850                "members": [
3851                  {
3852                    "type": "SYMBOL",
3853                    "name": "class_interface_clause"
3854                  },
3855                  {
3856                    "type": "BLANK"
3857                  }
3858                ]
3859              },
3860              {
3861                "type": "SYMBOL",
3862                "name": "declaration_list"
3863              }
3864            ]
3865          }
3866        ]
3867      }
3868    },
3869    "_class_type_designator": {
3870      "type": "CHOICE",
3871      "members": [
3872        {
3873          "type": "SYMBOL",
3874          "name": "qualified_name"
3875        },
3876        {
3877          "type": "SYMBOL",
3878          "name": "subscript_expression"
3879        },
3880        {
3881          "type": "SYMBOL",
3882          "name": "member_access_expression"
3883        },
3884        {
3885          "type": "SYMBOL",
3886          "name": "scoped_property_access_expression"
3887        },
3888        {
3889          "type": "SYMBOL",
3890          "name": "_variable_name"
3891        }
3892      ]
3893    },
3894    "update_expression": {
3895      "type": "PREC_LEFT",
3896      "value": 19,
3897      "content": {
3898        "type": "CHOICE",
3899        "members": [
3900          {
3901            "type": "SEQ",
3902            "members": [
3903              {
3904                "type": "SYMBOL",
3905                "name": "_variable"
3906              },
3907              {
3908                "type": "STRING",
3909                "value": "++"
3910              }
3911            ]
3912          },
3913          {
3914            "type": "SEQ",
3915            "members": [
3916              {
3917                "type": "SYMBOL",
3918                "name": "_variable"
3919              },
3920              {
3921                "type": "STRING",
3922                "value": "--"
3923              }
3924            ]
3925          },
3926          {
3927            "type": "SEQ",
3928            "members": [
3929              {
3930                "type": "STRING",
3931                "value": "++"
3932              },
3933              {
3934                "type": "SYMBOL",
3935                "name": "_variable"
3936              }
3937            ]
3938          },
3939          {
3940            "type": "SEQ",
3941            "members": [
3942              {
3943                "type": "STRING",
3944                "value": "--"
3945              },
3946              {
3947                "type": "SYMBOL",
3948                "name": "_variable"
3949              }
3950            ]
3951          }
3952        ]
3953      }
3954    },
3955    "shell_command_expression": {
3956      "type": "TOKEN",
3957      "content": {
3958        "type": "SEQ",
3959        "members": [
3960          {
3961            "type": "STRING",
3962            "value": "`"
3963          },
3964          {
3965            "type": "REPEAT",
3966            "content": {
3967              "type": "CHOICE",
3968              "members": [
3969                {
3970                  "type": "CHOICE",
3971                  "members": [
3972                    {
3973                      "type": "PATTERN",
3974                      "value": "\\\\\"|\\\\\\\\|\\\\\\$|\\\\e|\\\\f|\\\\n|\\\\r|\\\\t|\\\\v"
3975                    },
3976                    {
3977                      "type": "SEQ",
3978                      "members": [
3979                        {
3980                          "type": "STRING",
3981                          "value": "\\"
3982                        },
3983                        {
3984                          "type": "PATTERN",
3985                          "value": "[0-7]"
3986                        },
3987                        {
3988                          "type": "CHOICE",
3989                          "members": [
3990                            {
3991                              "type": "PATTERN",
3992                              "value": "[0-7]"
3993                            },
3994                            {
3995                              "type": "BLANK"
3996                            }
3997                          ]
3998                        },
3999                        {
4000                          "type": "CHOICE",
4001                          "members": [
4002                            {
4003                              "type": "PATTERN",
4004                              "value": "[0-7]"
4005                            },
4006                            {
4007                              "type": "BLANK"
4008                            }
4009                          ]
4010                        }
4011                      ]
4012                    },
4013                    {
4014                      "type": "SEQ",
4015                      "members": [
4016                        {
4017                          "type": "PATTERN",
4018                          "value": "\\\\[xX]"
4019                        },
4020                        {
4021                          "type": "PATTERN",
4022                          "value": "\\d|a-f|A-F"
4023                        },
4024                        {
4025                          "type": "CHOICE",
4026                          "members": [
4027                            {
4028                              "type": "PATTERN",
4029                              "value": "\\d|a-f|A-F"
4030                            },
4031                            {
4032                              "type": "BLANK"
4033                            }
4034                          ]
4035                        }
4036                      ]
4037                    },
4038                    {
4039                      "type": "SEQ",
4040                      "members": [
4041                        {
4042                          "type": "STRING",
4043                          "value": "\\u{"
4044                        },
4045                        {
4046                          "type": "REPEAT1",
4047                          "content": {
4048                            "type": "PATTERN",
4049                            "value": "\\d|a-f|A-F"
4050                          }
4051                        },
4052                        {
4053                          "type": "STRING",
4054                          "value": "}"
4055                        }
4056                      ]
4057                    }
4058                  ]
4059                },
4060                {
4061                  "type": "PATTERN",
4062                  "value": "[^\"\\\\]|\\\\[^\"\\\\$efnrtv0-7]"
4063                }
4064              ]
4065            }
4066          },
4067          {
4068            "type": "STRING",
4069            "value": "`"
4070          }
4071        ]
4072      }
4073    },
4074    "cast_expression": {
4075      "type": "PREC",
4076      "value": -1,
4077      "content": {
4078        "type": "SEQ",
4079        "members": [
4080          {
4081            "type": "STRING",
4082            "value": "("
4083          },
4084          {
4085            "type": "FIELD",
4086            "name": "type",
4087            "content": {
4088              "type": "SYMBOL",
4089              "name": "cast_type"
4090            }
4091          },
4092          {
4093            "type": "STRING",
4094            "value": ")"
4095          },
4096          {
4097            "type": "FIELD",
4098            "name": "value",
4099            "content": {
4100              "type": "SYMBOL",
4101              "name": "_unary_expression"
4102            }
4103          }
4104        ]
4105      }
4106    },
4107    "cast_variable": {
4108      "type": "PREC",
4109      "value": -1,
4110      "content": {
4111        "type": "SEQ",
4112        "members": [
4113          {
4114            "type": "STRING",
4115            "value": "("
4116          },
4117          {
4118            "type": "FIELD",
4119            "name": "type",
4120            "content": {
4121              "type": "SYMBOL",
4122              "name": "cast_type"
4123            }
4124          },
4125          {
4126            "type": "STRING",
4127            "value": ")"
4128          },
4129          {
4130            "type": "FIELD",
4131            "name": "value",
4132            "content": {
4133              "type": "SYMBOL",
4134              "name": "_variable"
4135            }
4136          }
4137        ]
4138      }
4139    },
4140    "assignment_expression": {
4141      "type": "PREC_RIGHT",
4142      "value": 4,
4143      "content": {
4144        "type": "SEQ",
4145        "members": [
4146          {
4147            "type": "FIELD",
4148            "name": "left",
4149            "content": {
4150              "type": "CHOICE",
4151              "members": [
4152                {
4153                  "type": "SYMBOL",
4154                  "name": "_variable"
4155                },
4156                {
4157                  "type": "SYMBOL",
4158                  "name": "list_literal"
4159                },
4160                {
4161                  "type": "SYMBOL",
4162                  "name": "array_creation_expression"
4163                }
4164              ]
4165            }
4166          },
4167          {
4168            "type": "STRING",
4169            "value": "="
4170          },
4171          {
4172            "type": "CHOICE",
4173            "members": [
4174              {
4175                "type": "STRING",
4176                "value": "&"
4177              },
4178              {
4179                "type": "BLANK"
4180              }
4181            ]
4182          },
4183          {
4184            "type": "FIELD",
4185            "name": "right",
4186            "content": {
4187              "type": "SYMBOL",
4188              "name": "_expression"
4189            }
4190          }
4191        ]
4192      }
4193    },
4194    "conditional_expression": {
4195      "type": "PREC_LEFT",
4196      "value": 5,
4197      "content": {
4198        "type": "SEQ",
4199        "members": [
4200          {
4201            "type": "FIELD",
4202            "name": "condition",
4203            "content": {
4204              "type": "SYMBOL",
4205              "name": "_expression"
4206            }
4207          },
4208          {
4209            "type": "STRING",
4210            "value": "?"
4211          },
4212          {
4213            "type": "FIELD",
4214            "name": "body",
4215            "content": {
4216              "type": "CHOICE",
4217              "members": [
4218                {
4219                  "type": "SYMBOL",
4220                  "name": "_expression"
4221                },
4222                {
4223                  "type": "BLANK"
4224                }
4225              ]
4226            }
4227          },
4228          {
4229            "type": "STRING",
4230            "value": ":"
4231          },
4232          {
4233            "type": "FIELD",
4234            "name": "alternative",
4235            "content": {
4236              "type": "SYMBOL",
4237              "name": "_expression"
4238            }
4239          }
4240        ]
4241      }
4242    },
4243    "augmented_assignment_expression": {
4244      "type": "PREC_RIGHT",
4245      "value": 4,
4246      "content": {
4247        "type": "SEQ",
4248        "members": [
4249          {
4250            "type": "FIELD",
4251            "name": "left",
4252            "content": {
4253              "type": "SYMBOL",
4254              "name": "_variable"
4255            }
4256          },
4257          {
4258            "type": "FIELD",
4259            "name": "operator",
4260            "content": {
4261              "type": "CHOICE",
4262              "members": [
4263                {
4264                  "type": "STRING",
4265                  "value": "**="
4266                },
4267                {
4268                  "type": "STRING",
4269                  "value": "*="
4270                },
4271                {
4272                  "type": "STRING",
4273                  "value": "/="
4274                },
4275                {
4276                  "type": "STRING",
4277                  "value": "%="
4278                },
4279                {
4280                  "type": "STRING",
4281                  "value": "+="
4282                },
4283                {
4284                  "type": "STRING",
4285                  "value": "-="
4286                },
4287                {
4288                  "type": "STRING",
4289                  "value": ".="
4290                },
4291                {
4292                  "type": "STRING",
4293                  "value": "<<="
4294                },
4295                {
4296                  "type": "STRING",
4297                  "value": ">>="
4298                },
4299                {
4300                  "type": "STRING",
4301                  "value": "&="
4302                },
4303                {
4304                  "type": "STRING",
4305                  "value": "^="
4306                },
4307                {
4308                  "type": "STRING",
4309                  "value": "|="
4310                }
4311              ]
4312            }
4313          },
4314          {
4315            "type": "FIELD",
4316            "name": "right",
4317            "content": {
4318              "type": "SYMBOL",
4319              "name": "_expression"
4320            }
4321          }
4322        ]
4323      }
4324    },
4325    "_variable": {
4326      "type": "CHOICE",
4327      "members": [
4328        {
4329          "type": "ALIAS",
4330          "content": {
4331            "type": "SYMBOL",
4332            "name": "cast_variable"
4333          },
4334          "named": true,
4335          "value": "cast_expression"
4336        },
4337        {
4338          "type": "SYMBOL",
4339          "name": "_callable_variable"
4340        },
4341        {
4342          "type": "SYMBOL",
4343          "name": "scoped_property_access_expression"
4344        },
4345        {
4346          "type": "SYMBOL",
4347          "name": "member_access_expression"
4348        }
4349      ]
4350    },
4351    "member_access_expression": {
4352      "type": "PREC",
4353      "value": 23,
4354      "content": {
4355        "type": "SEQ",
4356        "members": [
4357          {
4358            "type": "FIELD",
4359            "name": "object",
4360            "content": {
4361              "type": "SYMBOL",
4362              "name": "_dereferencable_expression"
4363            }
4364          },
4365          {
4366            "type": "STRING",
4367            "value": "->"
4368          },
4369          {
4370            "type": "SYMBOL",
4371            "name": "_member_name"
4372          }
4373        ]
4374      }
4375    },
4376    "scoped_property_access_expression": {
4377      "type": "PREC",
4378      "value": 23,
4379      "content": {
4380        "type": "SEQ",
4381        "members": [
4382          {
4383            "type": "FIELD",
4384            "name": "scope",
4385            "content": {
4386              "type": "SYMBOL",
4387              "name": "_scope_resolution_qualifier"
4388            }
4389          },
4390          {
4391            "type": "STRING",
4392            "value": "::"
4393          },
4394          {
4395            "type": "FIELD",
4396            "name": "name",
4397            "content": {
4398              "type": "SYMBOL",
4399              "name": "_variable_name"
4400            }
4401          }
4402        ]
4403      }
4404    },
4405    "list_literal": {
4406      "type": "SEQ",
4407      "members": [
4408        {
4409          "type": "STRING",
4410          "value": "list"
4411        },
4412        {
4413          "type": "STRING",
4414          "value": "("
4415        },
4416        {
4417          "type": "CHOICE",
4418          "members": [
4419            {
4420              "type": "SEQ",
4421              "members": [
4422                {
4423                  "type": "CHOICE",
4424                  "members": [
4425                    {
4426                      "type": "CHOICE",
4427                      "members": [
4428                        {
4429                          "type": "CHOICE",
4430                          "members": [
4431                            {
4432                              "type": "SYMBOL",
4433                              "name": "list_literal"
4434                            },
4435                            {
4436                              "type": "SYMBOL",
4437                              "name": "_variable"
4438                            }
4439                          ]
4440                        },
4441                        {
4442                          "type": "SEQ",
4443                          "members": [
4444                            {
4445                              "type": "SYMBOL",
4446                              "name": "_expression"
4447                            },
4448                            {
4449                              "type": "STRING",
4450                              "value": "=>"
4451                            },
4452                            {
4453                              "type": "CHOICE",
4454                              "members": [
4455                                {
4456                                  "type": "SYMBOL",
4457                                  "name": "list_literal"
4458                                },
4459                                {
4460                                  "type": "SYMBOL",
4461                                  "name": "_variable"
4462                                }
4463                              ]
4464                            }
4465                          ]
4466                        }
4467                      ]
4468                    },
4469                    {
4470                      "type": "BLANK"
4471                    }
4472                  ]
4473                },
4474                {
4475                  "type": "REPEAT",
4476                  "content": {
4477                    "type": "SEQ",
4478                    "members": [
4479                      {
4480                        "type": "STRING",
4481                        "value": ","
4482                      },
4483                      {
4484                        "type": "CHOICE",
4485                        "members": [
4486                          {
4487                            "type": "CHOICE",
4488                            "members": [
4489                              {
4490                                "type": "CHOICE",
4491                                "members": [
4492                                  {
4493                                    "type": "SYMBOL",
4494                                    "name": "list_literal"
4495                                  },
4496                                  {
4497                                    "type": "SYMBOL",
4498                                    "name": "_variable"
4499                                  }
4500                                ]
4501                              },
4502                              {
4503                                "type": "SEQ",
4504                                "members": [
4505                                  {
4506                                    "type": "SYMBOL",
4507                                    "name": "_expression"
4508                                  },
4509                                  {
4510                                    "type": "STRING",
4511                                    "value": "=>"
4512                                  },
4513                                  {
4514                                    "type": "CHOICE",
4515                                    "members": [
4516                                      {
4517                                        "type": "SYMBOL",
4518                                        "name": "list_literal"
4519                                      },
4520                                      {
4521                                        "type": "SYMBOL",
4522                                        "name": "_variable"
4523                                      }
4524                                    ]
4525                                  }
4526                                ]
4527                              }
4528                            ]
4529                          },
4530                          {
4531                            "type": "BLANK"
4532                          }
4533                        ]
4534                      }
4535                    ]
4536                  }
4537                }
4538              ]
4539            },
4540            {
4541              "type": "BLANK"
4542            }
4543          ]
4544        },
4545        {
4546          "type": "STRING",
4547          "value": ")"
4548        }
4549      ]
4550    },
4551    "_callable_variable": {
4552      "type": "CHOICE",
4553      "members": [
4554        {
4555          "type": "SYMBOL",
4556          "name": "_variable_name"
4557        },
4558        {
4559          "type": "SYMBOL",
4560          "name": "subscript_expression"
4561        },
4562        {
4563          "type": "SYMBOL",
4564          "name": "member_call_expression"
4565        },
4566        {
4567          "type": "SYMBOL",
4568          "name": "scoped_call_expression"
4569        },
4570        {
4571          "type": "SYMBOL",
4572          "name": "function_call_expression"
4573        }
4574      ]
4575    },
4576    "function_call_expression": {
4577      "type": "PREC",
4578      "value": 22,
4579      "content": {
4580        "type": "SEQ",
4581        "members": [
4582          {
4583            "type": "FIELD",
4584            "name": "function",
4585            "content": {
4586              "type": "CHOICE",
4587              "members": [
4588                {
4589                  "type": "SYMBOL",
4590                  "name": "qualified_name"
4591                },
4592                {
4593                  "type": "SYMBOL",
4594                  "name": "_callable_expression"
4595                }
4596              ]
4597            }
4598          },
4599          {
4600            "type": "FIELD",
4601            "name": "arguments",
4602            "content": {
4603              "type": "SYMBOL",
4604              "name": "arguments"
4605            }
4606          }
4607        ]
4608      }
4609    },
4610    "_callable_expression": {
4611      "type": "CHOICE",
4612      "members": [
4613        {
4614          "type": "SYMBOL",
4615          "name": "_callable_variable"
4616        },
4617        {
4618          "type": "SYMBOL",
4619          "name": "parenthesized_expression"
4620        },
4621        {
4622          "type": "SYMBOL",
4623          "name": "array_creation_expression"
4624        },
4625        {
4626          "type": "SYMBOL",
4627          "name": "_string"
4628        }
4629      ]
4630    },
4631    "scoped_call_expression": {
4632      "type": "PREC",
4633      "value": 22,
4634      "content": {
4635        "type": "SEQ",
4636        "members": [
4637          {
4638            "type": "FIELD",
4639            "name": "scope",
4640            "content": {
4641              "type": "SYMBOL",
4642              "name": "_scope_resolution_qualifier"
4643            }
4644          },
4645          {
4646            "type": "STRING",
4647            "value": "::"
4648          },
4649          {
4650            "type": "SYMBOL",
4651            "name": "_member_name"
4652          },
4653          {
4654            "type": "FIELD",
4655            "name": "arguments",
4656            "content": {
4657              "type": "SYMBOL",
4658              "name": "arguments"
4659            }
4660          }
4661        ]
4662      }
4663    },
4664    "_scope_resolution_qualifier": {
4665      "type": "CHOICE",
4666      "members": [
4667        {
4668          "type": "SYMBOL",
4669          "name": "relative_scope"
4670        },
4671        {
4672          "type": "SYMBOL",
4673          "name": "qualified_name"
4674        },
4675        {
4676          "type": "SYMBOL",
4677          "name": "_dereferencable_expression"
4678        }
4679      ]
4680    },
4681    "relative_scope": {
4682      "type": "PREC",
4683      "value": 20,
4684      "content": {
4685        "type": "CHOICE",
4686        "members": [
4687          {
4688            "type": "STRING",
4689            "value": "self"
4690          },
4691          {
4692            "type": "STRING",
4693            "value": "parent"
4694          },
4695          {
4696            "type": "ALIAS",
4697            "content": {
4698              "type": "PATTERN",
4699              "value": "[sS][tT][aA][tT][iI][cC]"
4700            },
4701            "named": false,
4702            "value": "static"
4703          }
4704        ]
4705      }
4706    },
4707    "arguments": {
4708      "type": "SEQ",
4709      "members": [
4710        {
4711          "type": "STRING",
4712          "value": "("
4713        },
4714        {
4715          "type": "CHOICE",
4716          "members": [
4717            {
4718              "type": "SEQ",
4719              "members": [
4720                {
4721                  "type": "CHOICE",
4722                  "members": [
4723                    {
4724                      "type": "SYMBOL",
4725                      "name": "variadic_unpacking"
4726                    },
4727                    {
4728                      "type": "SYMBOL",
4729                      "name": "_expression"
4730                    }
4731                  ]
4732                },
4733                {
4734                  "type": "REPEAT",
4735                  "content": {
4736                    "type": "SEQ",
4737                    "members": [
4738                      {
4739                        "type": "STRING",
4740                        "value": ","
4741                      },
4742                      {
4743                        "type": "CHOICE",
4744                        "members": [
4745                          {
4746                            "type": "SYMBOL",
4747                            "name": "variadic_unpacking"
4748                          },
4749                          {
4750                            "type": "SYMBOL",
4751                            "name": "_expression"
4752                          }
4753                        ]
4754                      }
4755                    ]
4756                  }
4757                }
4758              ]
4759            },
4760            {
4761              "type": "BLANK"
4762            }
4763          ]
4764        },
4765        {
4766          "type": "STRING",
4767          "value": ")"
4768        }
4769      ]
4770    },
4771    "member_call_expression": {
4772      "type": "PREC",
4773      "value": 22,
4774      "content": {
4775        "type": "SEQ",
4776        "members": [
4777          {
4778            "type": "FIELD",
4779            "name": "object",
4780            "content": {
4781              "type": "SYMBOL",
4782              "name": "_dereferencable_expression"
4783            }
4784          },
4785          {
4786            "type": "STRING",
4787            "value": "->"
4788          },
4789          {
4790            "type": "SYMBOL",
4791            "name": "_member_name"
4792          },
4793          {
4794            "type": "FIELD",
4795            "name": "arguments",
4796            "content": {
4797              "type": "SYMBOL",
4798              "name": "arguments"
4799            }
4800          }
4801        ]
4802      }
4803    },
4804    "variadic_unpacking": {
4805      "type": "SEQ",
4806      "members": [
4807        {
4808          "type": "STRING",
4809          "value": "..."
4810        },
4811        {
4812          "type": "SYMBOL",
4813          "name": "_expression"
4814        }
4815      ]
4816    },
4817    "_member_name": {
4818      "type": "CHOICE",
4819      "members": [
4820        {
4821          "type": "FIELD",
4822          "name": "name",
4823          "content": {
4824            "type": "CHOICE",
4825            "members": [
4826              {
4827                "type": "ALIAS",
4828                "content": {
4829                  "type": "SYMBOL",
4830                  "name": "_reserved_identifier"
4831                },
4832                "named": true,
4833                "value": "name"
4834              },
4835              {
4836                "type": "SYMBOL",
4837                "name": "name"
4838              },
4839              {
4840                "type": "SYMBOL",
4841                "name": "_variable_name"
4842              }
4843            ]
4844          }
4845        },
4846        {
4847          "type": "SEQ",
4848          "members": [
4849            {
4850              "type": "STRING",
4851              "value": "{"
4852            },
4853            {
4854              "type": "FIELD",
4855              "name": "name",
4856              "content": {
4857                "type": "SYMBOL",
4858                "name": "_expression"
4859              }
4860            },
4861            {
4862              "type": "STRING",
4863              "value": "}"
4864            }
4865          ]
4866        }
4867      ]
4868    },
4869    "subscript_expression": {
4870      "type": "SEQ",
4871      "members": [
4872        {
4873          "type": "SYMBOL",
4874          "name": "_dereferencable_expression"
4875        },
4876        {
4877          "type": "CHOICE",
4878          "members": [
4879            {
4880              "type": "SEQ",
4881              "members": [
4882                {
4883                  "type": "STRING",
4884                  "value": "["
4885                },
4886                {
4887                  "type": "CHOICE",
4888                  "members": [
4889                    {
4890                      "type": "SYMBOL",
4891                      "name": "_expression"
4892                    },
4893                    {
4894                      "type": "BLANK"
4895                    }
4896                  ]
4897                },
4898                {
4899                  "type": "STRING",
4900                  "value": "]"
4901                }
4902              ]
4903            },
4904            {
4905              "type": "SEQ",
4906              "members": [
4907                {
4908                  "type": "STRING",
4909                  "value": "{"
4910                },
4911                {
4912                  "type": "SYMBOL",
4913                  "name": "_expression"
4914                },
4915                {
4916                  "type": "STRING",
4917                  "value": "}"
4918                }
4919              ]
4920            }
4921          ]
4922        }
4923      ]
4924    },
4925    "_dereferencable_expression": {
4926      "type": "PREC",
4927      "value": 24,
4928      "content": {
4929        "type": "CHOICE",
4930        "members": [
4931          {
4932            "type": "SYMBOL",
4933            "name": "_variable"
4934          },
4935          {
4936            "type": "SYMBOL",
4937            "name": "class_constant_access_expression"
4938          },
4939          {
4940            "type": "SYMBOL",
4941            "name": "parenthesized_expression"
4942          },
4943          {
4944            "type": "SYMBOL",
4945            "name": "array_creation_expression"
4946          },
4947          {
4948            "type": "SYMBOL",
4949            "name": "qualified_name"
4950          },
4951          {
4952            "type": "SYMBOL",
4953            "name": "_string"
4954          }
4955        ]
4956      }
4957    },
4958    "array_creation_expression": {
4959      "type": "CHOICE",
4960      "members": [
4961        {
4962          "type": "SEQ",
4963          "members": [
4964            {
4965              "type": "STRING",
4966              "value": "array"
4967            },
4968            {
4969              "type": "STRING",
4970              "value": "("
4971            },
4972            {
4973              "type": "CHOICE",
4974              "members": [
4975                {
4976                  "type": "SEQ",
4977                  "members": [
4978                    {
4979                      "type": "SYMBOL",
4980                      "name": "array_element_initializer"
4981                    },
4982                    {
4983                      "type": "REPEAT",
4984                      "content": {
4985                        "type": "SEQ",
4986                        "members": [
4987                          {
4988                            "type": "STRING",
4989                            "value": ","
4990                          },
4991                          {
4992                            "type": "SYMBOL",
4993                            "name": "array_element_initializer"
4994                          }
4995                        ]
4996                      }
4997                    }
4998                  ]
4999                },
5000                {
5001                  "type": "BLANK"
5002                }
5003              ]
5004            },
5005            {
5006              "type": "CHOICE",
5007              "members": [
5008                {
5009                  "type": "STRING",
5010                  "value": ","
5011                },
5012                {
5013                  "type": "BLANK"
5014                }
5015              ]
5016            },
5017            {
5018              "type": "STRING",
5019              "value": ")"
5020            }
5021          ]
5022        },
5023        {
5024          "type": "SEQ",
5025          "members": [
5026            {
5027              "type": "STRING",
5028              "value": "["
5029            },
5030            {
5031              "type": "CHOICE",
5032              "members": [
5033                {
5034                  "type": "SEQ",
5035                  "members": [
5036                    {
5037                      "type": "SYMBOL",
5038                      "name": "array_element_initializer"
5039                    },
5040                    {
5041                      "type": "REPEAT",
5042                      "content": {
5043                        "type": "SEQ",
5044                        "members": [
5045                          {
5046                            "type": "STRING",
5047                            "value": ","
5048                          },
5049                          {
5050                            "type": "SYMBOL",
5051                            "name": "array_element_initializer"
5052                          }
5053                        ]
5054                      }
5055                    }
5056                  ]
5057                },
5058                {
5059                  "type": "BLANK"
5060                }
5061              ]
5062            },
5063            {
5064              "type": "CHOICE",
5065              "members": [
5066                {
5067                  "type": "STRING",
5068                  "value": ","
5069                },
5070                {
5071                  "type": "BLANK"
5072                }
5073              ]
5074            },
5075            {
5076              "type": "STRING",
5077              "value": "]"
5078            }
5079          ]
5080        }
5081      ]
5082    },
5083    "string": {
5084      "type": "TOKEN",
5085      "content": {
5086        "type": "CHOICE",
5087        "members": [
5088          {
5089            "type": "SEQ",
5090            "members": [
5091              {
5092                "type": "CHOICE",
5093                "members": [
5094                  {
5095                    "type": "PATTERN",
5096                    "value": "[bB]"
5097                  },
5098                  {
5099                    "type": "BLANK"
5100                  }
5101                ]
5102              },
5103              {
5104                "type": "STRING",
5105                "value": "'"
5106              },
5107              {
5108                "type": "REPEAT",
5109                "content": {
5110                  "type": "PATTERN",
5111                  "value": "\\\\'|\\\\\\\\|\\\\?[^'\\\\]"
5112                }
5113              },
5114              {
5115                "type": "STRING",
5116                "value": "'"
5117              }
5118            ]
5119          },
5120          {
5121            "type": "SEQ",
5122            "members": [
5123              {
5124                "type": "CHOICE",
5125                "members": [
5126                  {
5127                    "type": "PATTERN",
5128                    "value": "[bB]"
5129                  },
5130                  {
5131                    "type": "BLANK"
5132                  }
5133                ]
5134              },
5135              {
5136                "type": "STRING",
5137                "value": "\""
5138              },
5139              {
5140                "type": "REPEAT",
5141                "content": {
5142                  "type": "CHOICE",
5143                  "members": [
5144                    {
5145                      "type": "CHOICE",
5146                      "members": [
5147                        {
5148                          "type": "PATTERN",
5149                          "value": "\\\\\"|\\\\\\\\|\\\\\\$|\\\\e|\\\\f|\\\\n|\\\\r|\\\\t|\\\\v"
5150                        },
5151                        {
5152                          "type": "SEQ",
5153                          "members": [
5154                            {
5155                              "type": "STRING",
5156                              "value": "\\"
5157                            },
5158                            {
5159                              "type": "PATTERN",
5160                              "value": "[0-7]"
5161                            },
5162                            {
5163                              "type": "CHOICE",
5164                              "members": [
5165                                {
5166                                  "type": "PATTERN",
5167                                  "value": "[0-7]"
5168                                },
5169                                {
5170                                  "type": "BLANK"
5171                                }
5172                              ]
5173                            },
5174                            {
5175                              "type": "CHOICE",
5176                              "members": [
5177                                {
5178                                  "type": "PATTERN",
5179                                  "value": "[0-7]"
5180                                },
5181                                {
5182                                  "type": "BLANK"
5183                                }
5184                              ]
5185                            }
5186                          ]
5187                        },
5188                        {
5189                          "type": "SEQ",
5190                          "members": [
5191                            {
5192                              "type": "PATTERN",
5193                              "value": "\\\\[xX]"
5194                            },
5195                            {
5196                              "type": "PATTERN",
5197                              "value": "\\d|a-f|A-F"
5198                            },
5199                            {
5200                              "type": "CHOICE",
5201                              "members": [
5202                                {
5203                                  "type": "PATTERN",
5204                                  "value": "\\d|a-f|A-F"
5205                                },
5206                                {
5207                                  "type": "BLANK"
5208                                }
5209                              ]
5210                            }
5211                          ]
5212                        },
5213                        {
5214                          "type": "SEQ",
5215                          "members": [
5216                            {
5217                              "type": "STRING",
5218                              "value": "\\u{"
5219                            },
5220                            {
5221                              "type": "REPEAT1",
5222                              "content": {
5223                                "type": "PATTERN",
5224                                "value": "\\d|a-f|A-F"
5225                              }
5226                            },
5227                            {
5228                              "type": "STRING",
5229                              "value": "}"
5230                            }
5231                          ]
5232                        }
5233                      ]
5234                    },
5235                    {
5236                      "type": "PATTERN",
5237                      "value": "[^\"\\\\]|\\\\[^\"\\\\$efnrtv0-7]"
5238                    }
5239                  ]
5240                }
5241              },
5242              {
5243                "type": "STRING",
5244                "value": "\""
5245              }
5246            ]
5247          }
5248        ]
5249      }
5250    },
5251    "boolean": {
5252      "type": "PATTERN",
5253      "value": "[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]"
5254    },
5255    "null": {
5256      "type": "PATTERN",
5257      "value": "[nN][uU][lL][lL]"
5258    },
5259    "_string": {
5260      "type": "CHOICE",
5261      "members": [
5262        {
5263          "type": "SYMBOL",
5264          "name": "string"
5265        },
5266        {
5267          "type": "SYMBOL",
5268          "name": "heredoc"
5269        }
5270      ]
5271    },
5272    "dynamic_variable_name": {
5273      "type": "CHOICE",
5274      "members": [
5275        {
5276          "type": "SEQ",
5277          "members": [
5278            {
5279              "type": "STRING",
5280              "value": "$"
5281            },
5282            {
5283              "type": "SYMBOL",
5284              "name": "_variable_name"
5285            }
5286          ]
5287        },
5288        {
5289          "type": "SEQ",
5290          "members": [
5291            {
5292              "type": "STRING",
5293              "value": "$"
5294            },
5295            {
5296              "type": "STRING",
5297              "value": "{"
5298            },
5299            {
5300              "type": "SYMBOL",
5301              "name": "_expression"
5302            },
5303            {
5304              "type": "STRING",
5305              "value": "}"
5306            }
5307          ]
5308        }
5309      ]
5310    },
5311    "_variable_name": {
5312      "type": "CHOICE",
5313      "members": [
5314        {
5315          "type": "SYMBOL",
5316          "name": "dynamic_variable_name"
5317        },
5318        {
5319          "type": "SYMBOL",
5320          "name": "variable_name"
5321        }
5322      ]
5323    },
5324    "variable_name": {
5325      "type": "SEQ",
5326      "members": [
5327        {
5328          "type": "STRING",
5329          "value": "$"
5330        },
5331        {
5332          "type": "SYMBOL",
5333          "name": "name"
5334        }
5335      ]
5336    },
5337    "yield_expression": {
5338      "type": "PREC_RIGHT",
5339      "value": 0,
5340      "content": {
5341        "type": "SEQ",
5342        "members": [
5343          {
5344            "type": "STRING",
5345            "value": "yield"
5346          },
5347          {
5348            "type": "CHOICE",
5349            "members": [
5350              {
5351                "type": "CHOICE",
5352                "members": [
5353                  {
5354                    "type": "SYMBOL",
5355                    "name": "array_element_initializer"
5356                  },
5357                  {
5358                    "type": "SEQ",
5359                    "members": [
5360                      {
5361                        "type": "STRING",
5362                        "value": "from"
5363                      },
5364                      {
5365                        "type": "SYMBOL",
5366                        "name": "_expression"
5367                      }
5368                    ]
5369                  }
5370                ]
5371              },
5372              {
5373                "type": "BLANK"
5374              }
5375            ]
5376          }
5377        ]
5378      }
5379    },
5380    "array_element_initializer": {
5381      "type": "PREC_RIGHT",
5382      "value": 0,
5383      "content": {
5384        "type": "CHOICE",
5385        "members": [
5386          {
5387            "type": "SEQ",
5388            "members": [
5389              {
5390                "type": "CHOICE",
5391                "members": [
5392                  {
5393                    "type": "STRING",
5394                    "value": "&"
5395                  },
5396                  {
5397                    "type": "BLANK"
5398                  }
5399                ]
5400              },
5401              {
5402                "type": "SYMBOL",
5403                "name": "_expression"
5404              }
5405            ]
5406          },
5407          {
5408            "type": "SEQ",
5409            "members": [
5410              {
5411                "type": "SYMBOL",
5412                "name": "_expression"
5413              },
5414              {
5415                "type": "STRING",
5416                "value": "=>"
5417              },
5418              {
5419                "type": "CHOICE",
5420                "members": [
5421                  {
5422                    "type": "STRING",
5423                    "value": "&"
5424                  },
5425                  {
5426                    "type": "BLANK"
5427                  }
5428                ]
5429              },
5430              {
5431                "type": "SYMBOL",
5432                "name": "_expression"
5433              }
5434            ]
5435          }
5436        ]
5437      }
5438    },
5439    "binary_expression": {
5440      "type": "CHOICE",
5441      "members": [
5442        {
5443          "type": "PREC",
5444          "value": 18,
5445          "content": {
5446            "type": "SEQ",
5447            "members": [
5448              {
5449                "type": "FIELD",
5450                "name": "left",
5451                "content": {
5452                  "type": "SYMBOL",
5453                  "name": "_unary_expression"
5454                }
5455              },
5456              {
5457                "type": "FIELD",
5458                "name": "operator",
5459                "content": {
5460                  "type": "ALIAS",
5461                  "content": {
5462                    "type": "PATTERN",
5463                    "value": "[iI][nN][sS][tT][aA][nN][cC][eE][oO][fF]"
5464                  },
5465                  "named": false,
5466                  "value": "instanceof"
5467                }
5468              },
5469              {
5470                "type": "FIELD",
5471                "name": "right",
5472                "content": {
5473                  "type": "SYMBOL",
5474                  "name": "_class_type_designator"
5475                }
5476              }
5477            ]
5478          }
5479        },
5480        {
5481          "type": "PREC_RIGHT",
5482          "value": 6,
5483          "content": {
5484            "type": "SEQ",
5485            "members": [
5486              {
5487                "type": "SYMBOL",
5488                "name": "_expression"
5489              },
5490              {
5491                "type": "STRING",
5492                "value": "??"
5493              },
5494              {
5495                "type": "SYMBOL",
5496                "name": "_expression"
5497              }
5498            ]
5499          }
5500        },
5501        {
5502          "type": "PREC_LEFT",
5503          "value": 3,
5504          "content": {
5505            "type": "SEQ",
5506            "members": [
5507              {
5508                "type": "FIELD",
5509                "name": "left",
5510                "content": {
5511                  "type": "SYMBOL",
5512                  "name": "_expression"
5513                }
5514              },
5515              {
5516                "type": "FIELD",
5517                "name": "operator",
5518                "content": {
5519                  "type": "ALIAS",
5520                  "content": {
5521                    "type": "PATTERN",
5522                    "value": "and|AND"
5523                  },
5524                  "named": false,
5525                  "value": "and"
5526                }
5527              },
5528              {
5529                "type": "FIELD",
5530                "name": "right",
5531                "content": {
5532                  "type": "SYMBOL",
5533                  "name": "_expression"
5534                }
5535              }
5536            ]
5537          }
5538        },
5539        {
5540          "type": "PREC_LEFT",
5541          "value": 1,
5542          "content": {
5543            "type": "SEQ",
5544            "members": [
5545              {
5546                "type": "FIELD",
5547                "name": "left",
5548                "content": {
5549                  "type": "SYMBOL",
5550                  "name": "_expression"
5551                }
5552              },
5553              {
5554                "type": "FIELD",
5555                "name": "operator",
5556                "content": {
5557                  "type": "ALIAS",
5558                  "content": {
5559                    "type": "PATTERN",
5560                    "value": "or|OR"
5561                  },
5562                  "named": false,
5563                  "value": "or"
5564                }
5565              },
5566              {
5567                "type": "FIELD",
5568                "name": "right",
5569                "content": {
5570                  "type": "SYMBOL",
5571                  "name": "_expression"
5572                }
5573              }
5574            ]
5575          }
5576        },
5577        {
5578          "type": "PREC_LEFT",
5579          "value": 2,
5580          "content": {
5581            "type": "SEQ",
5582            "members": [
5583              {
5584                "type": "FIELD",
5585                "name": "left",
5586                "content": {
5587                  "type": "SYMBOL",
5588                  "name": "_expression"
5589                }
5590              },
5591              {
5592                "type": "FIELD",
5593                "name": "operator",
5594                "content": {
5595                  "type": "ALIAS",
5596                  "content": {
5597                    "type": "PATTERN",
5598                    "value": "xor|XOR"
5599                  },
5600                  "named": false,
5601                  "value": "xor"
5602                }
5603              },
5604              {
5605                "type": "FIELD",
5606                "name": "right",
5607                "content": {
5608                  "type": "SYMBOL",
5609                  "name": "_expression"
5610                }
5611              }
5612            ]
5613          }
5614        },
5615        {
5616          "type": "PREC_LEFT",
5617          "value": 7,
5618          "content": {
5619            "type": "SEQ",
5620            "members": [
5621              {
5622                "type": "FIELD",
5623                "name": "left",
5624                "content": {
5625                  "type": "SYMBOL",
5626                  "name": "_expression"
5627                }
5628              },
5629              {
5630                "type": "FIELD",
5631                "name": "operator",
5632                "content": {
5633                  "type": "STRING",
5634                  "value": "||"
5635                }
5636              },
5637              {
5638                "type": "FIELD",
5639                "name": "right",
5640                "content": {
5641                  "type": "SYMBOL",
5642                  "name": "_expression"
5643                }
5644              }
5645            ]
5646          }
5647        },
5648        {
5649          "type": "PREC_LEFT",
5650          "value": 8,
5651          "content": {
5652            "type": "SEQ",
5653            "members": [
5654              {
5655                "type": "FIELD",
5656                "name": "left",
5657                "content": {
5658                  "type": "SYMBOL",
5659                  "name": "_expression"
5660                }
5661              },
5662              {
5663                "type": "FIELD",
5664                "name": "operator",
5665                "content": {
5666                  "type": "STRING",
5667                  "value": "&&"
5668                }
5669              },
5670              {
5671                "type": "FIELD",
5672                "name": "right",
5673                "content": {
5674                  "type": "SYMBOL",
5675                  "name": "_expression"
5676                }
5677              }
5678            ]
5679          }
5680        },
5681        {
5682          "type": "PREC_LEFT",
5683          "value": 9,
5684          "content": {
5685            "type": "SEQ",
5686            "members": [
5687              {
5688                "type": "FIELD",
5689                "name": "left",
5690                "content": {
5691                  "type": "SYMBOL",
5692                  "name": "_expression"
5693                }
5694              },
5695              {
5696                "type": "FIELD",
5697                "name": "operator",
5698                "content": {
5699                  "type": "STRING",
5700                  "value": "|"
5701                }
5702              },
5703              {
5704                "type": "FIELD",
5705                "name": "right",
5706                "content": {
5707                  "type": "SYMBOL",
5708                  "name": "_expression"
5709                }
5710              }
5711            ]
5712          }
5713        },
5714        {
5715          "type": "PREC_LEFT",
5716          "value": 10,
5717          "content": {
5718            "type": "SEQ",
5719            "members": [
5720              {
5721                "type": "FIELD",
5722                "name": "left",
5723                "content": {
5724                  "type": "SYMBOL",
5725                  "name": "_expression"
5726                }
5727              },
5728              {
5729                "type": "FIELD",
5730                "name": "operator",
5731                "content": {
5732                  "type": "STRING",
5733                  "value": "^"
5734                }
5735              },
5736              {
5737                "type": "FIELD",
5738                "name": "right",
5739                "content": {
5740                  "type": "SYMBOL",
5741                  "name": "_expression"
5742                }
5743              }
5744            ]
5745          }
5746        },
5747        {
5748          "type": "PREC_LEFT",
5749          "value": 11,
5750          "content": {
5751            "type": "SEQ",
5752            "members": [
5753              {
5754                "type": "FIELD",
5755                "name": "left",
5756                "content": {
5757                  "type": "SYMBOL",
5758                  "name": "_expression"
5759                }
5760              },
5761              {
5762                "type": "FIELD",
5763                "name": "operator",
5764                "content": {
5765                  "type": "STRING",
5766                  "value": "&"
5767                }
5768              },
5769              {
5770                "type": "FIELD",
5771                "name": "right",
5772                "content": {
5773                  "type": "SYMBOL",
5774                  "name": "_expression"
5775                }
5776              }
5777            ]
5778          }
5779        },
5780        {
5781          "type": "PREC_LEFT",
5782          "value": 12,
5783          "content": {
5784            "type": "SEQ",
5785            "members": [
5786              {
5787                "type": "FIELD",
5788                "name": "left",
5789                "content": {
5790                  "type": "SYMBOL",
5791                  "name": "_expression"
5792                }
5793              },
5794              {
5795                "type": "FIELD",
5796                "name": "operator",
5797                "content": {
5798                  "type": "STRING",
5799                  "value": "=="
5800                }
5801              },
5802              {
5803                "type": "FIELD",
5804                "name": "right",
5805                "content": {
5806                  "type": "SYMBOL",
5807                  "name": "_expression"
5808                }
5809              }
5810            ]
5811          }
5812        },
5813        {
5814          "type": "PREC_LEFT",
5815          "value": 12,
5816          "content": {
5817            "type": "SEQ",
5818            "members": [
5819              {
5820                "type": "FIELD",
5821                "name": "left",
5822                "content": {
5823                  "type": "SYMBOL",
5824                  "name": "_expression"
5825                }
5826              },
5827              {
5828                "type": "FIELD",
5829                "name": "operator",
5830                "content": {
5831                  "type": "STRING",
5832                  "value": "!="
5833                }
5834              },
5835              {
5836                "type": "FIELD",
5837                "name": "right",
5838                "content": {
5839                  "type": "SYMBOL",
5840                  "name": "_expression"
5841                }
5842              }
5843            ]
5844          }
5845        },
5846        {
5847          "type": "PREC_LEFT",
5848          "value": 12,
5849          "content": {
5850            "type": "SEQ",
5851            "members": [
5852              {
5853                "type": "FIELD",
5854                "name": "left",
5855                "content": {
5856                  "type": "SYMBOL",
5857                  "name": "_expression"
5858                }
5859              },
5860              {
5861                "type": "FIELD",
5862                "name": "operator",
5863                "content": {
5864                  "type": "STRING",
5865                  "value": "<>"
5866                }
5867              },
5868              {
5869                "type": "FIELD",
5870                "name": "right",
5871                "content": {
5872                  "type": "SYMBOL",
5873                  "name": "_expression"
5874                }
5875              }
5876            ]
5877          }
5878        },
5879        {
5880          "type": "PREC_LEFT",
5881          "value": 12,
5882          "content": {
5883            "type": "SEQ",
5884            "members": [
5885              {
5886                "type": "FIELD",
5887                "name": "left",
5888                "content": {
5889                  "type": "SYMBOL",
5890                  "name": "_expression"
5891                }
5892              },
5893              {
5894                "type": "FIELD",
5895                "name": "operator",
5896                "content": {
5897                  "type": "STRING",
5898                  "value": "==="
5899                }
5900              },
5901              {
5902                "type": "FIELD",
5903                "name": "right",
5904                "content": {
5905                  "type": "SYMBOL",
5906                  "name": "_expression"
5907                }
5908              }
5909            ]
5910          }
5911        },
5912        {
5913          "type": "PREC_LEFT",
5914          "value": 12,
5915          "content": {
5916            "type": "SEQ",
5917            "members": [
5918              {
5919                "type": "FIELD",
5920                "name": "left",
5921                "content": {
5922                  "type": "SYMBOL",
5923                  "name": "_expression"
5924                }
5925              },
5926              {
5927                "type": "FIELD",
5928                "name": "operator",
5929                "content": {
5930                  "type": "STRING",
5931                  "value": "!=="
5932                }
5933              },
5934              {
5935                "type": "FIELD",
5936                "name": "right",
5937                "content": {
5938                  "type": "SYMBOL",
5939                  "name": "_expression"
5940                }
5941              }
5942            ]
5943          }
5944        },
5945        {
5946          "type": "PREC_LEFT",
5947          "value": 13,
5948          "content": {
5949            "type": "SEQ",
5950            "members": [
5951              {
5952                "type": "FIELD",
5953                "name": "left",
5954                "content": {
5955                  "type": "SYMBOL",
5956                  "name": "_expression"
5957                }
5958              },
5959              {
5960                "type": "FIELD",
5961                "name": "operator",
5962                "content": {
5963                  "type": "STRING",
5964                  "value": "<"
5965                }
5966              },
5967              {
5968                "type": "FIELD",
5969                "name": "right",
5970                "content": {
5971                  "type": "SYMBOL",
5972                  "name": "_expression"
5973                }
5974              }
5975            ]
5976          }
5977        },
5978        {
5979          "type": "PREC_LEFT",
5980          "value": 13,
5981          "content": {
5982            "type": "SEQ",
5983            "members": [
5984              {
5985                "type": "FIELD",
5986                "name": "left",
5987                "content": {
5988                  "type": "SYMBOL",
5989                  "name": "_expression"
5990                }
5991              },
5992              {
5993                "type": "FIELD",
5994                "name": "operator",
5995                "content": {
5996                  "type": "STRING",
5997                  "value": ">"
5998                }
5999              },
6000              {
6001                "type": "FIELD",
6002                "name": "right",
6003                "content": {
6004                  "type": "SYMBOL",
6005                  "name": "_expression"
6006                }
6007              }
6008            ]
6009          }
6010        },
6011        {
6012          "type": "PREC_LEFT",
6013          "value": 13,
6014          "content": {
6015            "type": "SEQ",
6016            "members": [
6017              {
6018                "type": "FIELD",
6019                "name": "left",
6020                "content": {
6021                  "type": "SYMBOL",
6022                  "name": "_expression"
6023                }
6024              },
6025              {
6026                "type": "FIELD",
6027                "name": "operator",
6028                "content": {
6029                  "type": "STRING",
6030                  "value": "<="
6031                }
6032              },
6033              {
6034                "type": "FIELD",
6035                "name": "right",
6036                "content": {
6037                  "type": "SYMBOL",
6038                  "name": "_expression"
6039                }
6040              }
6041            ]
6042          }
6043        },
6044        {
6045          "type": "PREC_LEFT",
6046          "value": 13,
6047          "content": {
6048            "type": "SEQ",
6049            "members": [
6050              {
6051                "type": "FIELD",
6052                "name": "left",
6053                "content": {
6054                  "type": "SYMBOL",
6055                  "name": "_expression"
6056                }
6057              },
6058              {
6059                "type": "FIELD",
6060                "name": "operator",
6061                "content": {
6062                  "type": "STRING",
6063                  "value": ">="
6064                }
6065              },
6066              {
6067                "type": "FIELD",
6068                "name": "right",
6069                "content": {
6070                  "type": "SYMBOL",
6071                  "name": "_expression"
6072                }
6073              }
6074            ]
6075          }
6076        },
6077        {
6078          "type": "PREC_LEFT",
6079          "value": 12,
6080          "content": {
6081            "type": "SEQ",
6082            "members": [
6083              {
6084                "type": "FIELD",
6085                "name": "left",
6086                "content": {
6087                  "type": "SYMBOL",
6088                  "name": "_expression"
6089                }
6090              },
6091              {
6092                "type": "FIELD",
6093                "name": "operator",
6094                "content": {
6095                  "type": "STRING",
6096                  "value": "<=>"
6097                }
6098              },
6099              {
6100                "type": "FIELD",
6101                "name": "right",
6102                "content": {
6103                  "type": "SYMBOL",
6104                  "name": "_expression"
6105                }
6106              }
6107            ]
6108          }
6109        },
6110        {
6111          "type": "PREC_LEFT",
6112          "value": 14,
6113          "content": {
6114            "type": "SEQ",
6115            "members": [
6116              {
6117                "type": "FIELD",
6118                "name": "left",
6119                "content": {
6120                  "type": "SYMBOL",
6121                  "name": "_expression"
6122                }
6123              },
6124              {
6125                "type": "FIELD",
6126                "name": "operator",
6127                "content": {
6128                  "type": "STRING",
6129                  "value": "<<"
6130                }
6131              },
6132              {
6133                "type": "FIELD",
6134                "name": "right",
6135                "content": {
6136                  "type": "SYMBOL",
6137                  "name": "_expression"
6138                }
6139              }
6140            ]
6141          }
6142        },
6143        {
6144          "type": "PREC_LEFT",
6145          "value": 14,
6146          "content": {
6147            "type": "SEQ",
6148            "members": [
6149              {
6150                "type": "FIELD",
6151                "name": "left",
6152                "content": {
6153                  "type": "SYMBOL",
6154                  "name": "_expression"
6155                }
6156              },
6157              {
6158                "type": "FIELD",
6159                "name": "operator",
6160                "content": {
6161                  "type": "STRING",
6162                  "value": ">>"
6163                }
6164              },
6165              {
6166                "type": "FIELD",
6167                "name": "right",
6168                "content": {
6169                  "type": "SYMBOL",
6170                  "name": "_expression"
6171                }
6172              }
6173            ]
6174          }
6175        },
6176        {
6177          "type": "PREC_LEFT",
6178          "value": 15,
6179          "content": {
6180            "type": "SEQ",
6181            "members": [
6182              {
6183                "type": "FIELD",
6184                "name": "left",
6185                "content": {
6186                  "type": "SYMBOL",
6187                  "name": "_expression"
6188                }
6189              },
6190              {
6191                "type": "FIELD",
6192                "name": "operator",
6193                "content": {
6194                  "type": "STRING",
6195                  "value": "+"
6196                }
6197              },
6198              {
6199                "type": "FIELD",
6200                "name": "right",
6201                "content": {
6202                  "type": "SYMBOL",
6203                  "name": "_expression"
6204                }
6205              }
6206            ]
6207          }
6208        },
6209        {
6210          "type": "PREC_LEFT",
6211          "value": 15,
6212          "content": {
6213            "type": "SEQ",
6214            "members": [
6215              {
6216                "type": "FIELD",
6217                "name": "left",
6218                "content": {
6219                  "type": "SYMBOL",
6220                  "name": "_expression"
6221                }
6222              },
6223              {
6224                "type": "FIELD",
6225                "name": "operator",
6226                "content": {
6227                  "type": "STRING",
6228                  "value": "-"
6229                }
6230              },
6231              {
6232                "type": "FIELD",
6233                "name": "right",
6234                "content": {
6235                  "type": "SYMBOL",
6236                  "name": "_expression"
6237                }
6238              }
6239            ]
6240          }
6241        },
6242        {
6243          "type": "PREC_LEFT",
6244          "value": 15,
6245          "content": {
6246            "type": "SEQ",
6247            "members": [
6248              {
6249                "type": "FIELD",
6250                "name": "left",
6251                "content": {
6252                  "type": "SYMBOL",
6253                  "name": "_expression"
6254                }
6255              },
6256              {
6257                "type": "FIELD",
6258                "name": "operator",
6259                "content": {
6260                  "type": "STRING",
6261                  "value": "."
6262                }
6263              },
6264              {
6265                "type": "FIELD",
6266                "name": "right",
6267                "content": {
6268                  "type": "SYMBOL",
6269                  "name": "_expression"
6270                }
6271              }
6272            ]
6273          }
6274        },
6275        {
6276          "type": "PREC_LEFT",
6277          "value": 16,
6278          "content": {
6279            "type": "SEQ",
6280            "members": [
6281              {
6282                "type": "FIELD",
6283                "name": "left",
6284                "content": {
6285                  "type": "SYMBOL",
6286                  "name": "_expression"
6287                }
6288              },
6289              {
6290                "type": "FIELD",
6291                "name": "operator",
6292                "content": {
6293                  "type": "STRING",
6294                  "value": "*"
6295                }
6296              },
6297              {
6298                "type": "FIELD",
6299                "name": "right",
6300                "content": {
6301                  "type": "SYMBOL",
6302                  "name": "_expression"
6303                }
6304              }
6305            ]
6306          }
6307        },
6308        {
6309          "type": "PREC_LEFT",
6310          "value": 16,
6311          "content": {
6312            "type": "SEQ",
6313            "members": [
6314              {
6315                "type": "FIELD",
6316                "name": "left",
6317                "content": {
6318                  "type": "SYMBOL",
6319                  "name": "_expression"
6320                }
6321              },
6322              {
6323                "type": "FIELD",
6324                "name": "operator",
6325                "content": {
6326                  "type": "STRING",
6327                  "value": "/"
6328                }
6329              },
6330              {
6331                "type": "FIELD",
6332                "name": "right",
6333                "content": {
6334                  "type": "SYMBOL",
6335                  "name": "_expression"
6336                }
6337              }
6338            ]
6339          }
6340        },
6341        {
6342          "type": "PREC_LEFT",
6343          "value": 16,
6344          "content": {
6345            "type": "SEQ",
6346            "members": [
6347              {
6348                "type": "FIELD",
6349                "name": "left",
6350                "content": {
6351                  "type": "SYMBOL",
6352                  "name": "_expression"
6353                }
6354              },
6355              {
6356                "type": "FIELD",
6357                "name": "operator",
6358                "content": {
6359                  "type": "STRING",
6360                  "value": "%"
6361                }
6362              },
6363              {
6364                "type": "FIELD",
6365                "name": "right",
6366                "content": {
6367                  "type": "SYMBOL",
6368                  "name": "_expression"
6369                }
6370              }
6371            ]
6372          }
6373        }
6374      ]
6375    },
6376    "include_expression": {
6377      "type": "SEQ",
6378      "members": [
6379        {
6380          "type": "ALIAS",
6381          "content": {
6382            "type": "PATTERN",
6383            "value": "[iI][nN][cC][lL][uU][dD][eE]"
6384          },
6385          "named": false,
6386          "value": "include"
6387        },
6388        {
6389          "type": "SYMBOL",
6390          "name": "_expression"
6391        }
6392      ]
6393    },
6394    "include_once_expression": {
6395      "type": "SEQ",
6396      "members": [
6397        {
6398          "type": "ALIAS",
6399          "content": {
6400            "type": "PATTERN",
6401            "value": "[iI][nN][cC][lL][uU][dD][eE][__][oO][nN][cC][eE]"
6402          },
6403          "named": false,
6404          "value": "include_once"
6405        },
6406        {
6407          "type": "SYMBOL",
6408          "name": "_expression"
6409        }
6410      ]
6411    },
6412    "require_expression": {
6413      "type": "SEQ",
6414      "members": [
6415        {
6416          "type": "ALIAS",
6417          "content": {
6418            "type": "PATTERN",
6419            "value": "[rR][eE][qQ][uU][iI][rR][eE]"
6420          },
6421          "named": false,
6422          "value": "require"
6423        },
6424        {
6425          "type": "SYMBOL",
6426          "name": "_expression"
6427        }
6428      ]
6429    },
6430    "require_once_expression": {
6431      "type": "SEQ",
6432      "members": [
6433        {
6434          "type": "ALIAS",
6435          "content": {
6436            "type": "PATTERN",
6437            "value": "[rR][eE][qQ][uU][iI][rR][eE][__][oO][nN][cC][eE]"
6438          },
6439          "named": false,
6440          "value": "require_once"
6441        },
6442        {
6443          "type": "SYMBOL",
6444          "name": "_expression"
6445        }
6446      ]
6447    },
6448    "name": {
6449      "type": "PATTERN",
6450      "value": "[_a-zA-Z\\u00A1-\\u00ff][_a-zA-Z\\u00A1-\\u00ff\\d]*"
6451    },
6452    "_reserved_identifier": {
6453      "type": "CHOICE",
6454      "members": [
6455        {
6456          "type": "STRING",
6457          "value": "self"
6458        },
6459        {
6460          "type": "STRING",
6461          "value": "parent"
6462        },
6463        {
6464          "type": "ALIAS",
6465          "content": {
6466            "type": "PATTERN",
6467            "value": "[sS][tT][aA][tT][iI][cC]"
6468          },
6469          "named": false,
6470          "value": "static"
6471        }
6472      ]
6473    },
6474    "comment": {
6475      "type": "TOKEN",
6476      "content": {
6477        "type": "CHOICE",
6478        "members": [
6479          {
6480            "type": "SEQ",
6481            "members": [
6482              {
6483                "type": "CHOICE",
6484                "members": [
6485                  {
6486                    "type": "STRING",
6487                    "value": "//"
6488                  },
6489                  {
6490                    "type": "STRING",
6491                    "value": "#"
6492                  }
6493                ]
6494              },
6495              {
6496                "type": "REPEAT",
6497                "content": {
6498                  "type": "PATTERN",
6499                  "value": "[^?\\r?\\n]|\\?[^>\\r\\n]"
6500                }
6501              },
6502              {
6503                "type": "CHOICE",
6504                "members": [
6505                  {
6506                    "type": "PATTERN",
6507                    "value": "\\?\\r?\\n"
6508                  },
6509                  {
6510                    "type": "BLANK"
6511                  }
6512                ]
6513              }
6514            ]
6515          },
6516          {
6517            "type": "SEQ",
6518            "members": [
6519              {
6520                "type": "STRING",
6521                "value": "/*"
6522              },
6523              {
6524                "type": "PATTERN",
6525                "value": "[^*]*\\*+([^\\/*][^*]*\\*+)*"
6526              },
6527              {
6528                "type": "STRING",
6529                "value": "/"
6530              }
6531            ]
6532          }
6533        ]
6534      }
6535    },
6536    "_semicolon": {
6537      "type": "CHOICE",
6538      "members": [
6539        {
6540          "type": "SYMBOL",
6541          "name": "_automatic_semicolon"
6542        },
6543        {
6544          "type": "STRING",
6545          "value": ";"
6546        }
6547      ]
6548    }
6549  },
6550  "extras": [
6551    {
6552      "type": "SYMBOL",
6553      "name": "comment"
6554    },
6555    {
6556      "type": "PATTERN",
6557      "value": "[\\s\\uFEFF\\u2060\\u200B\\u00A0]"
6558    },
6559    {
6560      "type": "SYMBOL",
6561      "name": "text_interpolation"
6562    }
6563  ],
6564  "conflicts": [
6565    [
6566      "simple_parameter",
6567      "name"
6568    ],
6569    [
6570      "variadic_parameter",
6571      "name"
6572    ],
6573    [
6574      "static_modifier",
6575      "_reserved_identifier"
6576    ],
6577    [
6578      "qualified_name",
6579      "namespace_name"
6580    ],
6581    [
6582      "namespace_name"
6583    ],
6584    [
6585      "namespace_aliasing_clause",
6586      "name"
6587    ],
6588    [
6589      "namespace_name_as_prefix"
6590    ],
6591    [
6592      "namespace_use_declaration",
6593      "namespace_name_as_prefix"
6594    ]
6595  ],
6596  "precedences": [],
6597  "externals": [
6598    {
6599      "type": "SYMBOL",
6600      "name": "_automatic_semicolon"
6601    },
6602    {
6603      "type": "SYMBOL",
6604      "name": "heredoc"
6605    },
6606    {
6607      "type": "SYMBOL",
6608      "name": "_eof"
6609    }
6610  ],
6611  "inline": [
6612    "_statement",
6613    "_semicolon",
6614    "_member_name",
6615    "_variable",
6616    "_callable_variable",
6617    "_callable_expression",
6618    "_foreach_value",
6619    "_literal",
6620    "ReferenceError",
6621    "_class_type_designator",
6622    "_variable_name",
6623    "_type_name"
6624  ],
6625  "supertypes": [
6626    "_statement",
6627    "_expression",
6628    "_primary_expression",
6629    "_type",
6630    "_literal"
6631  ]
6632}
6633
6634