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