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