1{
    2  "0": "c",
    3  "1": "p",
    4  "2": "p",
    5  "name": "cuda",
    6  "word": "identifier",
    7  "rules": {
    8    "translation_unit": {
    9      "type": "REPEAT",
   10      "content": {
   11        "type": "SYMBOL",
   12        "name": "_top_level_item"
   13      }
   14    },
   15    "_top_level_item": {
   16      "type": "CHOICE",
   17      "members": [
   18        {
   19          "type": "SYMBOL",
   20          "name": "function_definition"
   21        },
   22        {
   23          "type": "SYMBOL",
   24          "name": "linkage_specification"
   25        },
   26        {
   27          "type": "SYMBOL",
   28          "name": "declaration"
   29        },
   30        {
   31          "type": "SYMBOL",
   32          "name": "_top_level_statement"
   33        },
   34        {
   35          "type": "SYMBOL",
   36          "name": "attributed_statement"
   37        },
   38        {
   39          "type": "SYMBOL",
   40          "name": "type_definition"
   41        },
   42        {
   43          "type": "SYMBOL",
   44          "name": "_empty_declaration"
   45        },
   46        {
   47          "type": "SYMBOL",
   48          "name": "preproc_if"
   49        },
   50        {
   51          "type": "SYMBOL",
   52          "name": "preproc_ifdef"
   53        },
   54        {
   55          "type": "SYMBOL",
   56          "name": "preproc_include"
   57        },
   58        {
   59          "type": "SYMBOL",
   60          "name": "preproc_def"
   61        },
   62        {
   63          "type": "SYMBOL",
   64          "name": "preproc_function_def"
   65        },
   66        {
   67          "type": "SYMBOL",
   68          "name": "preproc_call"
   69        },
   70        {
   71          "type": "SYMBOL",
   72          "name": "namespace_definition"
   73        },
   74        {
   75          "type": "SYMBOL",
   76          "name": "concept_definition"
   77        },
   78        {
   79          "type": "SYMBOL",
   80          "name": "namespace_alias_definition"
   81        },
   82        {
   83          "type": "SYMBOL",
   84          "name": "using_declaration"
   85        },
   86        {
   87          "type": "SYMBOL",
   88          "name": "alias_declaration"
   89        },
   90        {
   91          "type": "SYMBOL",
   92          "name": "static_assert_declaration"
   93        },
   94        {
   95          "type": "SYMBOL",
   96          "name": "template_declaration"
   97        },
   98        {
   99          "type": "SYMBOL",
  100          "name": "template_instantiation"
  101        },
  102        {
  103          "type": "ALIAS",
  104          "content": {
  105            "type": "SYMBOL",
  106            "name": "constructor_or_destructor_definition"
  107          },
  108          "named": true,
  109          "value": "function_definition"
  110        },
  111        {
  112          "type": "ALIAS",
  113          "content": {
  114            "type": "SYMBOL",
  115            "name": "operator_cast_definition"
  116          },
  117          "named": true,
  118          "value": "function_definition"
  119        },
  120        {
  121          "type": "ALIAS",
  122          "content": {
  123            "type": "SYMBOL",
  124            "name": "operator_cast_declaration"
  125          },
  126          "named": true,
  127          "value": "declaration"
  128        }
  129      ]
  130    },
  131    "_block_item": {
  132      "type": "CHOICE",
  133      "members": [
  134        {
  135          "type": "SYMBOL",
  136          "name": "function_definition"
  137        },
  138        {
  139          "type": "SYMBOL",
  140          "name": "linkage_specification"
  141        },
  142        {
  143          "type": "SYMBOL",
  144          "name": "declaration"
  145        },
  146        {
  147          "type": "SYMBOL",
  148          "name": "statement"
  149        },
  150        {
  151          "type": "SYMBOL",
  152          "name": "attributed_statement"
  153        },
  154        {
  155          "type": "SYMBOL",
  156          "name": "type_definition"
  157        },
  158        {
  159          "type": "SYMBOL",
  160          "name": "_empty_declaration"
  161        },
  162        {
  163          "type": "SYMBOL",
  164          "name": "preproc_if"
  165        },
  166        {
  167          "type": "SYMBOL",
  168          "name": "preproc_ifdef"
  169        },
  170        {
  171          "type": "SYMBOL",
  172          "name": "preproc_include"
  173        },
  174        {
  175          "type": "SYMBOL",
  176          "name": "preproc_def"
  177        },
  178        {
  179          "type": "SYMBOL",
  180          "name": "preproc_function_def"
  181        },
  182        {
  183          "type": "SYMBOL",
  184          "name": "preproc_call"
  185        },
  186        {
  187          "type": "SYMBOL",
  188          "name": "namespace_definition"
  189        },
  190        {
  191          "type": "SYMBOL",
  192          "name": "concept_definition"
  193        },
  194        {
  195          "type": "SYMBOL",
  196          "name": "namespace_alias_definition"
  197        },
  198        {
  199          "type": "SYMBOL",
  200          "name": "using_declaration"
  201        },
  202        {
  203          "type": "SYMBOL",
  204          "name": "alias_declaration"
  205        },
  206        {
  207          "type": "SYMBOL",
  208          "name": "static_assert_declaration"
  209        },
  210        {
  211          "type": "SYMBOL",
  212          "name": "template_declaration"
  213        },
  214        {
  215          "type": "SYMBOL",
  216          "name": "template_instantiation"
  217        },
  218        {
  219          "type": "ALIAS",
  220          "content": {
  221            "type": "SYMBOL",
  222            "name": "constructor_or_destructor_definition"
  223          },
  224          "named": true,
  225          "value": "function_definition"
  226        },
  227        {
  228          "type": "ALIAS",
  229          "content": {
  230            "type": "SYMBOL",
  231            "name": "operator_cast_definition"
  232          },
  233          "named": true,
  234          "value": "function_definition"
  235        },
  236        {
  237          "type": "ALIAS",
  238          "content": {
  239            "type": "SYMBOL",
  240            "name": "operator_cast_declaration"
  241          },
  242          "named": true,
  243          "value": "declaration"
  244        }
  245      ]
  246    },
  247    "preproc_include": {
  248      "type": "SEQ",
  249      "members": [
  250        {
  251          "type": "ALIAS",
  252          "content": {
  253            "type": "PATTERN",
  254            "value": "#[ \t]*include"
  255          },
  256          "named": false,
  257          "value": "#include"
  258        },
  259        {
  260          "type": "FIELD",
  261          "name": "path",
  262          "content": {
  263            "type": "CHOICE",
  264            "members": [
  265              {
  266                "type": "SYMBOL",
  267                "name": "string_literal"
  268              },
  269              {
  270                "type": "SYMBOL",
  271                "name": "system_lib_string"
  272              },
  273              {
  274                "type": "SYMBOL",
  275                "name": "identifier"
  276              },
  277              {
  278                "type": "ALIAS",
  279                "content": {
  280                  "type": "SYMBOL",
  281                  "name": "preproc_call_expression"
  282                },
  283                "named": true,
  284                "value": "call_expression"
  285              }
  286            ]
  287          }
  288        },
  289        {
  290          "type": "IMMEDIATE_TOKEN",
  291          "content": {
  292            "type": "PATTERN",
  293            "value": "\\r?\\n"
  294          }
  295        }
  296      ]
  297    },
  298    "preproc_def": {
  299      "type": "SEQ",
  300      "members": [
  301        {
  302          "type": "ALIAS",
  303          "content": {
  304            "type": "PATTERN",
  305            "value": "#[ \t]*define"
  306          },
  307          "named": false,
  308          "value": "#define"
  309        },
  310        {
  311          "type": "FIELD",
  312          "name": "name",
  313          "content": {
  314            "type": "SYMBOL",
  315            "name": "identifier"
  316          }
  317        },
  318        {
  319          "type": "FIELD",
  320          "name": "value",
  321          "content": {
  322            "type": "CHOICE",
  323            "members": [
  324              {
  325                "type": "SYMBOL",
  326                "name": "preproc_arg"
  327              },
  328              {
  329                "type": "BLANK"
  330              }
  331            ]
  332          }
  333        },
  334        {
  335          "type": "IMMEDIATE_TOKEN",
  336          "content": {
  337            "type": "PATTERN",
  338            "value": "\\r?\\n"
  339          }
  340        }
  341      ]
  342    },
  343    "preproc_function_def": {
  344      "type": "SEQ",
  345      "members": [
  346        {
  347          "type": "ALIAS",
  348          "content": {
  349            "type": "PATTERN",
  350            "value": "#[ \t]*define"
  351          },
  352          "named": false,
  353          "value": "#define"
  354        },
  355        {
  356          "type": "FIELD",
  357          "name": "name",
  358          "content": {
  359            "type": "SYMBOL",
  360            "name": "identifier"
  361          }
  362        },
  363        {
  364          "type": "FIELD",
  365          "name": "parameters",
  366          "content": {
  367            "type": "SYMBOL",
  368            "name": "preproc_params"
  369          }
  370        },
  371        {
  372          "type": "FIELD",
  373          "name": "value",
  374          "content": {
  375            "type": "CHOICE",
  376            "members": [
  377              {
  378                "type": "SYMBOL",
  379                "name": "preproc_arg"
  380              },
  381              {
  382                "type": "BLANK"
  383              }
  384            ]
  385          }
  386        },
  387        {
  388          "type": "IMMEDIATE_TOKEN",
  389          "content": {
  390            "type": "PATTERN",
  391            "value": "\\r?\\n"
  392          }
  393        }
  394      ]
  395    },
  396    "preproc_params": {
  397      "type": "SEQ",
  398      "members": [
  399        {
  400          "type": "IMMEDIATE_TOKEN",
  401          "content": {
  402            "type": "STRING",
  403            "value": "("
  404          }
  405        },
  406        {
  407          "type": "CHOICE",
  408          "members": [
  409            {
  410              "type": "SEQ",
  411              "members": [
  412                {
  413                  "type": "CHOICE",
  414                  "members": [
  415                    {
  416                      "type": "SYMBOL",
  417                      "name": "identifier"
  418                    },
  419                    {
  420                      "type": "STRING",
  421                      "value": "..."
  422                    }
  423                  ]
  424                },
  425                {
  426                  "type": "REPEAT",
  427                  "content": {
  428                    "type": "SEQ",
  429                    "members": [
  430                      {
  431                        "type": "STRING",
  432                        "value": ","
  433                      },
  434                      {
  435                        "type": "CHOICE",
  436                        "members": [
  437                          {
  438                            "type": "SYMBOL",
  439                            "name": "identifier"
  440                          },
  441                          {
  442                            "type": "STRING",
  443                            "value": "..."
  444                          }
  445                        ]
  446                      }
  447                    ]
  448                  }
  449                }
  450              ]
  451            },
  452            {
  453              "type": "BLANK"
  454            }
  455          ]
  456        },
  457        {
  458          "type": "STRING",
  459          "value": ")"
  460        }
  461      ]
  462    },
  463    "preproc_call": {
  464      "type": "SEQ",
  465      "members": [
  466        {
  467          "type": "FIELD",
  468          "name": "directive",
  469          "content": {
  470            "type": "SYMBOL",
  471            "name": "preproc_directive"
  472          }
  473        },
  474        {
  475          "type": "FIELD",
  476          "name": "argument",
  477          "content": {
  478            "type": "CHOICE",
  479            "members": [
  480              {
  481                "type": "SYMBOL",
  482                "name": "preproc_arg"
  483              },
  484              {
  485                "type": "BLANK"
  486              }
  487            ]
  488          }
  489        },
  490        {
  491          "type": "IMMEDIATE_TOKEN",
  492          "content": {
  493            "type": "PATTERN",
  494            "value": "\\r?\\n"
  495          }
  496        }
  497      ]
  498    },
  499    "preproc_if": {
  500      "type": "PREC",
  501      "value": 0,
  502      "content": {
  503        "type": "SEQ",
  504        "members": [
  505          {
  506            "type": "ALIAS",
  507            "content": {
  508              "type": "PATTERN",
  509              "value": "#[ \t]*if"
  510            },
  511            "named": false,
  512            "value": "#if"
  513          },
  514          {
  515            "type": "FIELD",
  516            "name": "condition",
  517            "content": {
  518              "type": "SYMBOL",
  519              "name": "_preproc_expression"
  520            }
  521          },
  522          {
  523            "type": "STRING",
  524            "value": "\n"
  525          },
  526          {
  527            "type": "REPEAT",
  528            "content": {
  529              "type": "SYMBOL",
  530              "name": "_block_item"
  531            }
  532          },
  533          {
  534            "type": "FIELD",
  535            "name": "alternative",
  536            "content": {
  537              "type": "CHOICE",
  538              "members": [
  539                {
  540                  "type": "CHOICE",
  541                  "members": [
  542                    {
  543                      "type": "SYMBOL",
  544                      "name": "preproc_else"
  545                    },
  546                    {
  547                      "type": "SYMBOL",
  548                      "name": "preproc_elif"
  549                    },
  550                    {
  551                      "type": "SYMBOL",
  552                      "name": "preproc_elifdef"
  553                    }
  554                  ]
  555                },
  556                {
  557                  "type": "BLANK"
  558                }
  559              ]
  560            }
  561          },
  562          {
  563            "type": "ALIAS",
  564            "content": {
  565              "type": "PATTERN",
  566              "value": "#[ \t]*endif"
  567            },
  568            "named": false,
  569            "value": "#endif"
  570          }
  571        ]
  572      }
  573    },
  574    "preproc_ifdef": {
  575      "type": "PREC",
  576      "value": 0,
  577      "content": {
  578        "type": "SEQ",
  579        "members": [
  580          {
  581            "type": "CHOICE",
  582            "members": [
  583              {
  584                "type": "ALIAS",
  585                "content": {
  586                  "type": "PATTERN",
  587                  "value": "#[ \t]*ifdef"
  588                },
  589                "named": false,
  590                "value": "#ifdef"
  591              },
  592              {
  593                "type": "ALIAS",
  594                "content": {
  595                  "type": "PATTERN",
  596                  "value": "#[ \t]*ifndef"
  597                },
  598                "named": false,
  599                "value": "#ifndef"
  600              }
  601            ]
  602          },
  603          {
  604            "type": "FIELD",
  605            "name": "name",
  606            "content": {
  607              "type": "SYMBOL",
  608              "name": "identifier"
  609            }
  610          },
  611          {
  612            "type": "REPEAT",
  613            "content": {
  614              "type": "SYMBOL",
  615              "name": "_block_item"
  616            }
  617          },
  618          {
  619            "type": "FIELD",
  620            "name": "alternative",
  621            "content": {
  622              "type": "CHOICE",
  623              "members": [
  624                {
  625                  "type": "CHOICE",
  626                  "members": [
  627                    {
  628                      "type": "SYMBOL",
  629                      "name": "preproc_else"
  630                    },
  631                    {
  632                      "type": "SYMBOL",
  633                      "name": "preproc_elif"
  634                    },
  635                    {
  636                      "type": "SYMBOL",
  637                      "name": "preproc_elifdef"
  638                    }
  639                  ]
  640                },
  641                {
  642                  "type": "BLANK"
  643                }
  644              ]
  645            }
  646          },
  647          {
  648            "type": "ALIAS",
  649            "content": {
  650              "type": "PATTERN",
  651              "value": "#[ \t]*endif"
  652            },
  653            "named": false,
  654            "value": "#endif"
  655          }
  656        ]
  657      }
  658    },
  659    "preproc_else": {
  660      "type": "PREC",
  661      "value": 0,
  662      "content": {
  663        "type": "SEQ",
  664        "members": [
  665          {
  666            "type": "ALIAS",
  667            "content": {
  668              "type": "PATTERN",
  669              "value": "#[ \t]*else"
  670            },
  671            "named": false,
  672            "value": "#else"
  673          },
  674          {
  675            "type": "REPEAT",
  676            "content": {
  677              "type": "SYMBOL",
  678              "name": "_block_item"
  679            }
  680          }
  681        ]
  682      }
  683    },
  684    "preproc_elif": {
  685      "type": "PREC",
  686      "value": 0,
  687      "content": {
  688        "type": "SEQ",
  689        "members": [
  690          {
  691            "type": "ALIAS",
  692            "content": {
  693              "type": "PATTERN",
  694              "value": "#[ \t]*elif"
  695            },
  696            "named": false,
  697            "value": "#elif"
  698          },
  699          {
  700            "type": "FIELD",
  701            "name": "condition",
  702            "content": {
  703              "type": "SYMBOL",
  704              "name": "_preproc_expression"
  705            }
  706          },
  707          {
  708            "type": "STRING",
  709            "value": "\n"
  710          },
  711          {
  712            "type": "REPEAT",
  713            "content": {
  714              "type": "SYMBOL",
  715              "name": "_block_item"
  716            }
  717          },
  718          {
  719            "type": "FIELD",
  720            "name": "alternative",
  721            "content": {
  722              "type": "CHOICE",
  723              "members": [
  724                {
  725                  "type": "CHOICE",
  726                  "members": [
  727                    {
  728                      "type": "SYMBOL",
  729                      "name": "preproc_else"
  730                    },
  731                    {
  732                      "type": "SYMBOL",
  733                      "name": "preproc_elif"
  734                    },
  735                    {
  736                      "type": "SYMBOL",
  737                      "name": "preproc_elifdef"
  738                    }
  739                  ]
  740                },
  741                {
  742                  "type": "BLANK"
  743                }
  744              ]
  745            }
  746          }
  747        ]
  748      }
  749    },
  750    "preproc_elifdef": {
  751      "type": "PREC",
  752      "value": 0,
  753      "content": {
  754        "type": "SEQ",
  755        "members": [
  756          {
  757            "type": "CHOICE",
  758            "members": [
  759              {
  760                "type": "ALIAS",
  761                "content": {
  762                  "type": "PATTERN",
  763                  "value": "#[ \t]*elifdef"
  764                },
  765                "named": false,
  766                "value": "#elifdef"
  767              },
  768              {
  769                "type": "ALIAS",
  770                "content": {
  771                  "type": "PATTERN",
  772                  "value": "#[ \t]*elifndef"
  773                },
  774                "named": false,
  775                "value": "#elifndef"
  776              }
  777            ]
  778          },
  779          {
  780            "type": "FIELD",
  781            "name": "name",
  782            "content": {
  783              "type": "SYMBOL",
  784              "name": "identifier"
  785            }
  786          },
  787          {
  788            "type": "REPEAT",
  789            "content": {
  790              "type": "SYMBOL",
  791              "name": "_block_item"
  792            }
  793          },
  794          {
  795            "type": "FIELD",
  796            "name": "alternative",
  797            "content": {
  798              "type": "CHOICE",
  799              "members": [
  800                {
  801                  "type": "CHOICE",
  802                  "members": [
  803                    {
  804                      "type": "SYMBOL",
  805                      "name": "preproc_else"
  806                    },
  807                    {
  808                      "type": "SYMBOL",
  809                      "name": "preproc_elif"
  810                    },
  811                    {
  812                      "type": "SYMBOL",
  813                      "name": "preproc_elifdef"
  814                    }
  815                  ]
  816                },
  817                {
  818                  "type": "BLANK"
  819                }
  820              ]
  821            }
  822          }
  823        ]
  824      }
  825    },
  826    "preproc_if_in_field_declaration_list": {
  827      "type": "PREC",
  828      "value": 0,
  829      "content": {
  830        "type": "SEQ",
  831        "members": [
  832          {
  833            "type": "ALIAS",
  834            "content": {
  835              "type": "PATTERN",
  836              "value": "#[ \t]*if"
  837            },
  838            "named": false,
  839            "value": "#if"
  840          },
  841          {
  842            "type": "FIELD",
  843            "name": "condition",
  844            "content": {
  845              "type": "SYMBOL",
  846              "name": "_preproc_expression"
  847            }
  848          },
  849          {
  850            "type": "STRING",
  851            "value": "\n"
  852          },
  853          {
  854            "type": "REPEAT",
  855            "content": {
  856              "type": "SYMBOL",
  857              "name": "_field_declaration_list_item"
  858            }
  859          },
  860          {
  861            "type": "FIELD",
  862            "name": "alternative",
  863            "content": {
  864              "type": "CHOICE",
  865              "members": [
  866                {
  867                  "type": "CHOICE",
  868                  "members": [
  869                    {
  870                      "type": "ALIAS",
  871                      "content": {
  872                        "type": "SYMBOL",
  873                        "name": "preproc_else_in_field_declaration_list"
  874                      },
  875                      "named": true,
  876                      "value": "preproc_else"
  877                    },
  878                    {
  879                      "type": "ALIAS",
  880                      "content": {
  881                        "type": "SYMBOL",
  882                        "name": "preproc_elif_in_field_declaration_list"
  883                      },
  884                      "named": true,
  885                      "value": "preproc_elif"
  886                    },
  887                    {
  888                      "type": "ALIAS",
  889                      "content": {
  890                        "type": "SYMBOL",
  891                        "name": "preproc_elifdef_in_field_declaration_list"
  892                      },
  893                      "named": true,
  894                      "value": "preproc_elifdef"
  895                    }
  896                  ]
  897                },
  898                {
  899                  "type": "BLANK"
  900                }
  901              ]
  902            }
  903          },
  904          {
  905            "type": "ALIAS",
  906            "content": {
  907              "type": "PATTERN",
  908              "value": "#[ \t]*endif"
  909            },
  910            "named": false,
  911            "value": "#endif"
  912          }
  913        ]
  914      }
  915    },
  916    "preproc_ifdef_in_field_declaration_list": {
  917      "type": "PREC",
  918      "value": 0,
  919      "content": {
  920        "type": "SEQ",
  921        "members": [
  922          {
  923            "type": "CHOICE",
  924            "members": [
  925              {
  926                "type": "ALIAS",
  927                "content": {
  928                  "type": "PATTERN",
  929                  "value": "#[ \t]*ifdef"
  930                },
  931                "named": false,
  932                "value": "#ifdef"
  933              },
  934              {
  935                "type": "ALIAS",
  936                "content": {
  937                  "type": "PATTERN",
  938                  "value": "#[ \t]*ifndef"
  939                },
  940                "named": false,
  941                "value": "#ifndef"
  942              }
  943            ]
  944          },
  945          {
  946            "type": "FIELD",
  947            "name": "name",
  948            "content": {
  949              "type": "SYMBOL",
  950              "name": "identifier"
  951            }
  952          },
  953          {
  954            "type": "REPEAT",
  955            "content": {
  956              "type": "SYMBOL",
  957              "name": "_field_declaration_list_item"
  958            }
  959          },
  960          {
  961            "type": "FIELD",
  962            "name": "alternative",
  963            "content": {
  964              "type": "CHOICE",
  965              "members": [
  966                {
  967                  "type": "CHOICE",
  968                  "members": [
  969                    {
  970                      "type": "ALIAS",
  971                      "content": {
  972                        "type": "SYMBOL",
  973                        "name": "preproc_else_in_field_declaration_list"
  974                      },
  975                      "named": true,
  976                      "value": "preproc_else"
  977                    },
  978                    {
  979                      "type": "ALIAS",
  980                      "content": {
  981                        "type": "SYMBOL",
  982                        "name": "preproc_elif_in_field_declaration_list"
  983                      },
  984                      "named": true,
  985                      "value": "preproc_elif"
  986                    },
  987                    {
  988                      "type": "ALIAS",
  989                      "content": {
  990                        "type": "SYMBOL",
  991                        "name": "preproc_elifdef_in_field_declaration_list"
  992                      },
  993                      "named": true,
  994                      "value": "preproc_elifdef"
  995                    }
  996                  ]
  997                },
  998                {
  999                  "type": "BLANK"
 1000                }
 1001              ]
 1002            }
 1003          },
 1004          {
 1005            "type": "ALIAS",
 1006            "content": {
 1007              "type": "PATTERN",
 1008              "value": "#[ \t]*endif"
 1009            },
 1010            "named": false,
 1011            "value": "#endif"
 1012          }
 1013        ]
 1014      }
 1015    },
 1016    "preproc_else_in_field_declaration_list": {
 1017      "type": "PREC",
 1018      "value": 0,
 1019      "content": {
 1020        "type": "SEQ",
 1021        "members": [
 1022          {
 1023            "type": "ALIAS",
 1024            "content": {
 1025              "type": "PATTERN",
 1026              "value": "#[ \t]*else"
 1027            },
 1028            "named": false,
 1029            "value": "#else"
 1030          },
 1031          {
 1032            "type": "REPEAT",
 1033            "content": {
 1034              "type": "SYMBOL",
 1035              "name": "_field_declaration_list_item"
 1036            }
 1037          }
 1038        ]
 1039      }
 1040    },
 1041    "preproc_elif_in_field_declaration_list": {
 1042      "type": "PREC",
 1043      "value": 0,
 1044      "content": {
 1045        "type": "SEQ",
 1046        "members": [
 1047          {
 1048            "type": "ALIAS",
 1049            "content": {
 1050              "type": "PATTERN",
 1051              "value": "#[ \t]*elif"
 1052            },
 1053            "named": false,
 1054            "value": "#elif"
 1055          },
 1056          {
 1057            "type": "FIELD",
 1058            "name": "condition",
 1059            "content": {
 1060              "type": "SYMBOL",
 1061              "name": "_preproc_expression"
 1062            }
 1063          },
 1064          {
 1065            "type": "STRING",
 1066            "value": "\n"
 1067          },
 1068          {
 1069            "type": "REPEAT",
 1070            "content": {
 1071              "type": "SYMBOL",
 1072              "name": "_field_declaration_list_item"
 1073            }
 1074          },
 1075          {
 1076            "type": "FIELD",
 1077            "name": "alternative",
 1078            "content": {
 1079              "type": "CHOICE",
 1080              "members": [
 1081                {
 1082                  "type": "CHOICE",
 1083                  "members": [
 1084                    {
 1085                      "type": "ALIAS",
 1086                      "content": {
 1087                        "type": "SYMBOL",
 1088                        "name": "preproc_else_in_field_declaration_list"
 1089                      },
 1090                      "named": true,
 1091                      "value": "preproc_else"
 1092                    },
 1093                    {
 1094                      "type": "ALIAS",
 1095                      "content": {
 1096                        "type": "SYMBOL",
 1097                        "name": "preproc_elif_in_field_declaration_list"
 1098                      },
 1099                      "named": true,
 1100                      "value": "preproc_elif"
 1101                    },
 1102                    {
 1103                      "type": "ALIAS",
 1104                      "content": {
 1105                        "type": "SYMBOL",
 1106                        "name": "preproc_elifdef_in_field_declaration_list"
 1107                      },
 1108                      "named": true,
 1109                      "value": "preproc_elifdef"
 1110                    }
 1111                  ]
 1112                },
 1113                {
 1114                  "type": "BLANK"
 1115                }
 1116              ]
 1117            }
 1118          }
 1119        ]
 1120      }
 1121    },
 1122    "preproc_elifdef_in_field_declaration_list": {
 1123      "type": "PREC",
 1124      "value": 0,
 1125      "content": {
 1126        "type": "SEQ",
 1127        "members": [
 1128          {
 1129            "type": "CHOICE",
 1130            "members": [
 1131              {
 1132                "type": "ALIAS",
 1133                "content": {
 1134                  "type": "PATTERN",
 1135                  "value": "#[ \t]*elifdef"
 1136                },
 1137                "named": false,
 1138                "value": "#elifdef"
 1139              },
 1140              {
 1141                "type": "ALIAS",
 1142                "content": {
 1143                  "type": "PATTERN",
 1144                  "value": "#[ \t]*elifndef"
 1145                },
 1146                "named": false,
 1147                "value": "#elifndef"
 1148              }
 1149            ]
 1150          },
 1151          {
 1152            "type": "FIELD",
 1153            "name": "name",
 1154            "content": {
 1155              "type": "SYMBOL",
 1156              "name": "identifier"
 1157            }
 1158          },
 1159          {
 1160            "type": "REPEAT",
 1161            "content": {
 1162              "type": "SYMBOL",
 1163              "name": "_field_declaration_list_item"
 1164            }
 1165          },
 1166          {
 1167            "type": "FIELD",
 1168            "name": "alternative",
 1169            "content": {
 1170              "type": "CHOICE",
 1171              "members": [
 1172                {
 1173                  "type": "CHOICE",
 1174                  "members": [
 1175                    {
 1176                      "type": "ALIAS",
 1177                      "content": {
 1178                        "type": "SYMBOL",
 1179                        "name": "preproc_else_in_field_declaration_list"
 1180                      },
 1181                      "named": true,
 1182                      "value": "preproc_else"
 1183                    },
 1184                    {
 1185                      "type": "ALIAS",
 1186                      "content": {
 1187                        "type": "SYMBOL",
 1188                        "name": "preproc_elif_in_field_declaration_list"
 1189                      },
 1190                      "named": true,
 1191                      "value": "preproc_elif"
 1192                    },
 1193                    {
 1194                      "type": "ALIAS",
 1195                      "content": {
 1196                        "type": "SYMBOL",
 1197                        "name": "preproc_elifdef_in_field_declaration_list"
 1198                      },
 1199                      "named": true,
 1200                      "value": "preproc_elifdef"
 1201                    }
 1202                  ]
 1203                },
 1204                {
 1205                  "type": "BLANK"
 1206                }
 1207              ]
 1208            }
 1209          }
 1210        ]
 1211      }
 1212    },
 1213    "preproc_if_in_enumerator_list": {
 1214      "type": "PREC",
 1215      "value": 0,
 1216      "content": {
 1217        "type": "SEQ",
 1218        "members": [
 1219          {
 1220            "type": "ALIAS",
 1221            "content": {
 1222              "type": "PATTERN",
 1223              "value": "#[ \t]*if"
 1224            },
 1225            "named": false,
 1226            "value": "#if"
 1227          },
 1228          {
 1229            "type": "FIELD",
 1230            "name": "condition",
 1231            "content": {
 1232              "type": "SYMBOL",
 1233              "name": "_preproc_expression"
 1234            }
 1235          },
 1236          {
 1237            "type": "STRING",
 1238            "value": "\n"
 1239          },
 1240          {
 1241            "type": "REPEAT",
 1242            "content": {
 1243              "type": "SEQ",
 1244              "members": [
 1245                {
 1246                  "type": "SYMBOL",
 1247                  "name": "enumerator"
 1248                },
 1249                {
 1250                  "type": "STRING",
 1251                  "value": ","
 1252                }
 1253              ]
 1254            }
 1255          },
 1256          {
 1257            "type": "FIELD",
 1258            "name": "alternative",
 1259            "content": {
 1260              "type": "CHOICE",
 1261              "members": [
 1262                {
 1263                  "type": "CHOICE",
 1264                  "members": [
 1265                    {
 1266                      "type": "ALIAS",
 1267                      "content": {
 1268                        "type": "SYMBOL",
 1269                        "name": "preproc_else_in_enumerator_list"
 1270                      },
 1271                      "named": true,
 1272                      "value": "preproc_else"
 1273                    },
 1274                    {
 1275                      "type": "ALIAS",
 1276                      "content": {
 1277                        "type": "SYMBOL",
 1278                        "name": "preproc_elif_in_enumerator_list"
 1279                      },
 1280                      "named": true,
 1281                      "value": "preproc_elif"
 1282                    },
 1283                    {
 1284                      "type": "ALIAS",
 1285                      "content": {
 1286                        "type": "SYMBOL",
 1287                        "name": "preproc_elifdef_in_enumerator_list"
 1288                      },
 1289                      "named": true,
 1290                      "value": "preproc_elifdef"
 1291                    }
 1292                  ]
 1293                },
 1294                {
 1295                  "type": "BLANK"
 1296                }
 1297              ]
 1298            }
 1299          },
 1300          {
 1301            "type": "ALIAS",
 1302            "content": {
 1303              "type": "PATTERN",
 1304              "value": "#[ \t]*endif"
 1305            },
 1306            "named": false,
 1307            "value": "#endif"
 1308          }
 1309        ]
 1310      }
 1311    },
 1312    "preproc_ifdef_in_enumerator_list": {
 1313      "type": "PREC",
 1314      "value": 0,
 1315      "content": {
 1316        "type": "SEQ",
 1317        "members": [
 1318          {
 1319            "type": "CHOICE",
 1320            "members": [
 1321              {
 1322                "type": "ALIAS",
 1323                "content": {
 1324                  "type": "PATTERN",
 1325                  "value": "#[ \t]*ifdef"
 1326                },
 1327                "named": false,
 1328                "value": "#ifdef"
 1329              },
 1330              {
 1331                "type": "ALIAS",
 1332                "content": {
 1333                  "type": "PATTERN",
 1334                  "value": "#[ \t]*ifndef"
 1335                },
 1336                "named": false,
 1337                "value": "#ifndef"
 1338              }
 1339            ]
 1340          },
 1341          {
 1342            "type": "FIELD",
 1343            "name": "name",
 1344            "content": {
 1345              "type": "SYMBOL",
 1346              "name": "identifier"
 1347            }
 1348          },
 1349          {
 1350            "type": "REPEAT",
 1351            "content": {
 1352              "type": "SEQ",
 1353              "members": [
 1354                {
 1355                  "type": "SYMBOL",
 1356                  "name": "enumerator"
 1357                },
 1358                {
 1359                  "type": "STRING",
 1360                  "value": ","
 1361                }
 1362              ]
 1363            }
 1364          },
 1365          {
 1366            "type": "FIELD",
 1367            "name": "alternative",
 1368            "content": {
 1369              "type": "CHOICE",
 1370              "members": [
 1371                {
 1372                  "type": "CHOICE",
 1373                  "members": [
 1374                    {
 1375                      "type": "ALIAS",
 1376                      "content": {
 1377                        "type": "SYMBOL",
 1378                        "name": "preproc_else_in_enumerator_list"
 1379                      },
 1380                      "named": true,
 1381                      "value": "preproc_else"
 1382                    },
 1383                    {
 1384                      "type": "ALIAS",
 1385                      "content": {
 1386                        "type": "SYMBOL",
 1387                        "name": "preproc_elif_in_enumerator_list"
 1388                      },
 1389                      "named": true,
 1390                      "value": "preproc_elif"
 1391                    },
 1392                    {
 1393                      "type": "ALIAS",
 1394                      "content": {
 1395                        "type": "SYMBOL",
 1396                        "name": "preproc_elifdef_in_enumerator_list"
 1397                      },
 1398                      "named": true,
 1399                      "value": "preproc_elifdef"
 1400                    }
 1401                  ]
 1402                },
 1403                {
 1404                  "type": "BLANK"
 1405                }
 1406              ]
 1407            }
 1408          },
 1409          {
 1410            "type": "ALIAS",
 1411            "content": {
 1412              "type": "PATTERN",
 1413              "value": "#[ \t]*endif"
 1414            },
 1415            "named": false,
 1416            "value": "#endif"
 1417          }
 1418        ]
 1419      }
 1420    },
 1421    "preproc_else_in_enumerator_list": {
 1422      "type": "PREC",
 1423      "value": 0,
 1424      "content": {
 1425        "type": "SEQ",
 1426        "members": [
 1427          {
 1428            "type": "ALIAS",
 1429            "content": {
 1430              "type": "PATTERN",
 1431              "value": "#[ \t]*else"
 1432            },
 1433            "named": false,
 1434            "value": "#else"
 1435          },
 1436          {
 1437            "type": "REPEAT",
 1438            "content": {
 1439              "type": "SEQ",
 1440              "members": [
 1441                {
 1442                  "type": "SYMBOL",
 1443                  "name": "enumerator"
 1444                },
 1445                {
 1446                  "type": "STRING",
 1447                  "value": ","
 1448                }
 1449              ]
 1450            }
 1451          }
 1452        ]
 1453      }
 1454    },
 1455    "preproc_elif_in_enumerator_list": {
 1456      "type": "PREC",
 1457      "value": 0,
 1458      "content": {
 1459        "type": "SEQ",
 1460        "members": [
 1461          {
 1462            "type": "ALIAS",
 1463            "content": {
 1464              "type": "PATTERN",
 1465              "value": "#[ \t]*elif"
 1466            },
 1467            "named": false,
 1468            "value": "#elif"
 1469          },
 1470          {
 1471            "type": "FIELD",
 1472            "name": "condition",
 1473            "content": {
 1474              "type": "SYMBOL",
 1475              "name": "_preproc_expression"
 1476            }
 1477          },
 1478          {
 1479            "type": "STRING",
 1480            "value": "\n"
 1481          },
 1482          {
 1483            "type": "REPEAT",
 1484            "content": {
 1485              "type": "SEQ",
 1486              "members": [
 1487                {
 1488                  "type": "SYMBOL",
 1489                  "name": "enumerator"
 1490                },
 1491                {
 1492                  "type": "STRING",
 1493                  "value": ","
 1494                }
 1495              ]
 1496            }
 1497          },
 1498          {
 1499            "type": "FIELD",
 1500            "name": "alternative",
 1501            "content": {
 1502              "type": "CHOICE",
 1503              "members": [
 1504                {
 1505                  "type": "CHOICE",
 1506                  "members": [
 1507                    {
 1508                      "type": "ALIAS",
 1509                      "content": {
 1510                        "type": "SYMBOL",
 1511                        "name": "preproc_else_in_enumerator_list"
 1512                      },
 1513                      "named": true,
 1514                      "value": "preproc_else"
 1515                    },
 1516                    {
 1517                      "type": "ALIAS",
 1518                      "content": {
 1519                        "type": "SYMBOL",
 1520                        "name": "preproc_elif_in_enumerator_list"
 1521                      },
 1522                      "named": true,
 1523                      "value": "preproc_elif"
 1524                    },
 1525                    {
 1526                      "type": "ALIAS",
 1527                      "content": {
 1528                        "type": "SYMBOL",
 1529                        "name": "preproc_elifdef_in_enumerator_list"
 1530                      },
 1531                      "named": true,
 1532                      "value": "preproc_elifdef"
 1533                    }
 1534                  ]
 1535                },
 1536                {
 1537                  "type": "BLANK"
 1538                }
 1539              ]
 1540            }
 1541          }
 1542        ]
 1543      }
 1544    },
 1545    "preproc_elifdef_in_enumerator_list": {
 1546      "type": "PREC",
 1547      "value": 0,
 1548      "content": {
 1549        "type": "SEQ",
 1550        "members": [
 1551          {
 1552            "type": "CHOICE",
 1553            "members": [
 1554              {
 1555                "type": "ALIAS",
 1556                "content": {
 1557                  "type": "PATTERN",
 1558                  "value": "#[ \t]*elifdef"
 1559                },
 1560                "named": false,
 1561                "value": "#elifdef"
 1562              },
 1563              {
 1564                "type": "ALIAS",
 1565                "content": {
 1566                  "type": "PATTERN",
 1567                  "value": "#[ \t]*elifndef"
 1568                },
 1569                "named": false,
 1570                "value": "#elifndef"
 1571              }
 1572            ]
 1573          },
 1574          {
 1575            "type": "FIELD",
 1576            "name": "name",
 1577            "content": {
 1578              "type": "SYMBOL",
 1579              "name": "identifier"
 1580            }
 1581          },
 1582          {
 1583            "type": "REPEAT",
 1584            "content": {
 1585              "type": "SEQ",
 1586              "members": [
 1587                {
 1588                  "type": "SYMBOL",
 1589                  "name": "enumerator"
 1590                },
 1591                {
 1592                  "type": "STRING",
 1593                  "value": ","
 1594                }
 1595              ]
 1596            }
 1597          },
 1598          {
 1599            "type": "FIELD",
 1600            "name": "alternative",
 1601            "content": {
 1602              "type": "CHOICE",
 1603              "members": [
 1604                {
 1605                  "type": "CHOICE",
 1606                  "members": [
 1607                    {
 1608                      "type": "ALIAS",
 1609                      "content": {
 1610                        "type": "SYMBOL",
 1611                        "name": "preproc_else_in_enumerator_list"
 1612                      },
 1613                      "named": true,
 1614                      "value": "preproc_else"
 1615                    },
 1616                    {
 1617                      "type": "ALIAS",
 1618                      "content": {
 1619                        "type": "SYMBOL",
 1620                        "name": "preproc_elif_in_enumerator_list"
 1621                      },
 1622                      "named": true,
 1623                      "value": "preproc_elif"
 1624                    },
 1625                    {
 1626                      "type": "ALIAS",
 1627                      "content": {
 1628                        "type": "SYMBOL",
 1629                        "name": "preproc_elifdef_in_enumerator_list"
 1630                      },
 1631                      "named": true,
 1632                      "value": "preproc_elifdef"
 1633                    }
 1634                  ]
 1635                },
 1636                {
 1637                  "type": "BLANK"
 1638                }
 1639              ]
 1640            }
 1641          }
 1642        ]
 1643      }
 1644    },
 1645    "preproc_if_in_enumerator_list_no_comma": {
 1646      "type": "PREC",
 1647      "value": -1,
 1648      "content": {
 1649        "type": "SEQ",
 1650        "members": [
 1651          {
 1652            "type": "ALIAS",
 1653            "content": {
 1654              "type": "PATTERN",
 1655              "value": "#[ \t]*if"
 1656            },
 1657            "named": false,
 1658            "value": "#if"
 1659          },
 1660          {
 1661            "type": "FIELD",
 1662            "name": "condition",
 1663            "content": {
 1664              "type": "SYMBOL",
 1665              "name": "_preproc_expression"
 1666            }
 1667          },
 1668          {
 1669            "type": "STRING",
 1670            "value": "\n"
 1671          },
 1672          {
 1673            "type": "REPEAT",
 1674            "content": {
 1675              "type": "SYMBOL",
 1676              "name": "enumerator"
 1677            }
 1678          },
 1679          {
 1680            "type": "FIELD",
 1681            "name": "alternative",
 1682            "content": {
 1683              "type": "CHOICE",
 1684              "members": [
 1685                {
 1686                  "type": "CHOICE",
 1687                  "members": [
 1688                    {
 1689                      "type": "ALIAS",
 1690                      "content": {
 1691                        "type": "SYMBOL",
 1692                        "name": "preproc_else_in_enumerator_list_no_comma"
 1693                      },
 1694                      "named": true,
 1695                      "value": "preproc_else"
 1696                    },
 1697                    {
 1698                      "type": "ALIAS",
 1699                      "content": {
 1700                        "type": "SYMBOL",
 1701                        "name": "preproc_elif_in_enumerator_list_no_comma"
 1702                      },
 1703                      "named": true,
 1704                      "value": "preproc_elif"
 1705                    },
 1706                    {
 1707                      "type": "ALIAS",
 1708                      "content": {
 1709                        "type": "SYMBOL",
 1710                        "name": "preproc_elifdef_in_enumerator_list_no_comma"
 1711                      },
 1712                      "named": true,
 1713                      "value": "preproc_elifdef"
 1714                    }
 1715                  ]
 1716                },
 1717                {
 1718                  "type": "BLANK"
 1719                }
 1720              ]
 1721            }
 1722          },
 1723          {
 1724            "type": "ALIAS",
 1725            "content": {
 1726              "type": "PATTERN",
 1727              "value": "#[ \t]*endif"
 1728            },
 1729            "named": false,
 1730            "value": "#endif"
 1731          }
 1732        ]
 1733      }
 1734    },
 1735    "preproc_ifdef_in_enumerator_list_no_comma": {
 1736      "type": "PREC",
 1737      "value": -1,
 1738      "content": {
 1739        "type": "SEQ",
 1740        "members": [
 1741          {
 1742            "type": "CHOICE",
 1743            "members": [
 1744              {
 1745                "type": "ALIAS",
 1746                "content": {
 1747                  "type": "PATTERN",
 1748                  "value": "#[ \t]*ifdef"
 1749                },
 1750                "named": false,
 1751                "value": "#ifdef"
 1752              },
 1753              {
 1754                "type": "ALIAS",
 1755                "content": {
 1756                  "type": "PATTERN",
 1757                  "value": "#[ \t]*ifndef"
 1758                },
 1759                "named": false,
 1760                "value": "#ifndef"
 1761              }
 1762            ]
 1763          },
 1764          {
 1765            "type": "FIELD",
 1766            "name": "name",
 1767            "content": {
 1768              "type": "SYMBOL",
 1769              "name": "identifier"
 1770            }
 1771          },
 1772          {
 1773            "type": "REPEAT",
 1774            "content": {
 1775              "type": "SYMBOL",
 1776              "name": "enumerator"
 1777            }
 1778          },
 1779          {
 1780            "type": "FIELD",
 1781            "name": "alternative",
 1782            "content": {
 1783              "type": "CHOICE",
 1784              "members": [
 1785                {
 1786                  "type": "CHOICE",
 1787                  "members": [
 1788                    {
 1789                      "type": "ALIAS",
 1790                      "content": {
 1791                        "type": "SYMBOL",
 1792                        "name": "preproc_else_in_enumerator_list_no_comma"
 1793                      },
 1794                      "named": true,
 1795                      "value": "preproc_else"
 1796                    },
 1797                    {
 1798                      "type": "ALIAS",
 1799                      "content": {
 1800                        "type": "SYMBOL",
 1801                        "name": "preproc_elif_in_enumerator_list_no_comma"
 1802                      },
 1803                      "named": true,
 1804                      "value": "preproc_elif"
 1805                    },
 1806                    {
 1807                      "type": "ALIAS",
 1808                      "content": {
 1809                        "type": "SYMBOL",
 1810                        "name": "preproc_elifdef_in_enumerator_list_no_comma"
 1811                      },
 1812                      "named": true,
 1813                      "value": "preproc_elifdef"
 1814                    }
 1815                  ]
 1816                },
 1817                {
 1818                  "type": "BLANK"
 1819                }
 1820              ]
 1821            }
 1822          },
 1823          {
 1824            "type": "ALIAS",
 1825            "content": {
 1826              "type": "PATTERN",
 1827              "value": "#[ \t]*endif"
 1828            },
 1829            "named": false,
 1830            "value": "#endif"
 1831          }
 1832        ]
 1833      }
 1834    },
 1835    "preproc_else_in_enumerator_list_no_comma": {
 1836      "type": "PREC",
 1837      "value": -1,
 1838      "content": {
 1839        "type": "SEQ",
 1840        "members": [
 1841          {
 1842            "type": "ALIAS",
 1843            "content": {
 1844              "type": "PATTERN",
 1845              "value": "#[ \t]*else"
 1846            },
 1847            "named": false,
 1848            "value": "#else"
 1849          },
 1850          {
 1851            "type": "REPEAT",
 1852            "content": {
 1853              "type": "SYMBOL",
 1854              "name": "enumerator"
 1855            }
 1856          }
 1857        ]
 1858      }
 1859    },
 1860    "preproc_elif_in_enumerator_list_no_comma": {
 1861      "type": "PREC",
 1862      "value": -1,
 1863      "content": {
 1864        "type": "SEQ",
 1865        "members": [
 1866          {
 1867            "type": "ALIAS",
 1868            "content": {
 1869              "type": "PATTERN",
 1870              "value": "#[ \t]*elif"
 1871            },
 1872            "named": false,
 1873            "value": "#elif"
 1874          },
 1875          {
 1876            "type": "FIELD",
 1877            "name": "condition",
 1878            "content": {
 1879              "type": "SYMBOL",
 1880              "name": "_preproc_expression"
 1881            }
 1882          },
 1883          {
 1884            "type": "STRING",
 1885            "value": "\n"
 1886          },
 1887          {
 1888            "type": "REPEAT",
 1889            "content": {
 1890              "type": "SYMBOL",
 1891              "name": "enumerator"
 1892            }
 1893          },
 1894          {
 1895            "type": "FIELD",
 1896            "name": "alternative",
 1897            "content": {
 1898              "type": "CHOICE",
 1899              "members": [
 1900                {
 1901                  "type": "CHOICE",
 1902                  "members": [
 1903                    {
 1904                      "type": "ALIAS",
 1905                      "content": {
 1906                        "type": "SYMBOL",
 1907                        "name": "preproc_else_in_enumerator_list_no_comma"
 1908                      },
 1909                      "named": true,
 1910                      "value": "preproc_else"
 1911                    },
 1912                    {
 1913                      "type": "ALIAS",
 1914                      "content": {
 1915                        "type": "SYMBOL",
 1916                        "name": "preproc_elif_in_enumerator_list_no_comma"
 1917                      },
 1918                      "named": true,
 1919                      "value": "preproc_elif"
 1920                    },
 1921                    {
 1922                      "type": "ALIAS",
 1923                      "content": {
 1924                        "type": "SYMBOL",
 1925                        "name": "preproc_elifdef_in_enumerator_list_no_comma"
 1926                      },
 1927                      "named": true,
 1928                      "value": "preproc_elifdef"
 1929                    }
 1930                  ]
 1931                },
 1932                {
 1933                  "type": "BLANK"
 1934                }
 1935              ]
 1936            }
 1937          }
 1938        ]
 1939      }
 1940    },
 1941    "preproc_elifdef_in_enumerator_list_no_comma": {
 1942      "type": "PREC",
 1943      "value": -1,
 1944      "content": {
 1945        "type": "SEQ",
 1946        "members": [
 1947          {
 1948            "type": "CHOICE",
 1949            "members": [
 1950              {
 1951                "type": "ALIAS",
 1952                "content": {
 1953                  "type": "PATTERN",
 1954                  "value": "#[ \t]*elifdef"
 1955                },
 1956                "named": false,
 1957                "value": "#elifdef"
 1958              },
 1959              {
 1960                "type": "ALIAS",
 1961                "content": {
 1962                  "type": "PATTERN",
 1963                  "value": "#[ \t]*elifndef"
 1964                },
 1965                "named": false,
 1966                "value": "#elifndef"
 1967              }
 1968            ]
 1969          },
 1970          {
 1971            "type": "FIELD",
 1972            "name": "name",
 1973            "content": {
 1974              "type": "SYMBOL",
 1975              "name": "identifier"
 1976            }
 1977          },
 1978          {
 1979            "type": "REPEAT",
 1980            "content": {
 1981              "type": "SYMBOL",
 1982              "name": "enumerator"
 1983            }
 1984          },
 1985          {
 1986            "type": "FIELD",
 1987            "name": "alternative",
 1988            "content": {
 1989              "type": "CHOICE",
 1990              "members": [
 1991                {
 1992                  "type": "CHOICE",
 1993                  "members": [
 1994                    {
 1995                      "type": "ALIAS",
 1996                      "content": {
 1997                        "type": "SYMBOL",
 1998                        "name": "preproc_else_in_enumerator_list_no_comma"
 1999                      },
 2000                      "named": true,
 2001                      "value": "preproc_else"
 2002                    },
 2003                    {
 2004                      "type": "ALIAS",
 2005                      "content": {
 2006                        "type": "SYMBOL",
 2007                        "name": "preproc_elif_in_enumerator_list_no_comma"
 2008                      },
 2009                      "named": true,
 2010                      "value": "preproc_elif"
 2011                    },
 2012                    {
 2013                      "type": "ALIAS",
 2014                      "content": {
 2015                        "type": "SYMBOL",
 2016                        "name": "preproc_elifdef_in_enumerator_list_no_comma"
 2017                      },
 2018                      "named": true,
 2019                      "value": "preproc_elifdef"
 2020                    }
 2021                  ]
 2022                },
 2023                {
 2024                  "type": "BLANK"
 2025                }
 2026              ]
 2027            }
 2028          }
 2029        ]
 2030      }
 2031    },
 2032    "preproc_arg": {
 2033      "type": "TOKEN",
 2034      "content": {
 2035        "type": "PREC",
 2036        "value": -1,
 2037        "content": {
 2038          "type": "PATTERN",
 2039          "value": "\\S([^/\\n]|\\/[^*]|\\\\\\r?\\n)*"
 2040        }
 2041      }
 2042    },
 2043    "preproc_directive": {
 2044      "type": "PATTERN",
 2045      "value": "#[ \\t]*[a-zA-Z0-9]\\w*"
 2046    },
 2047    "_preproc_expression": {
 2048      "type": "CHOICE",
 2049      "members": [
 2050        {
 2051          "type": "SYMBOL",
 2052          "name": "identifier"
 2053        },
 2054        {
 2055          "type": "ALIAS",
 2056          "content": {
 2057            "type": "SYMBOL",
 2058            "name": "preproc_call_expression"
 2059          },
 2060          "named": true,
 2061          "value": "call_expression"
 2062        },
 2063        {
 2064          "type": "SYMBOL",
 2065          "name": "number_literal"
 2066        },
 2067        {
 2068          "type": "SYMBOL",
 2069          "name": "char_literal"
 2070        },
 2071        {
 2072          "type": "SYMBOL",
 2073          "name": "preproc_defined"
 2074        },
 2075        {
 2076          "type": "ALIAS",
 2077          "content": {
 2078            "type": "SYMBOL",
 2079            "name": "preproc_unary_expression"
 2080          },
 2081          "named": true,
 2082          "value": "unary_expression"
 2083        },
 2084        {
 2085          "type": "ALIAS",
 2086          "content": {
 2087            "type": "SYMBOL",
 2088            "name": "preproc_binary_expression"
 2089          },
 2090          "named": true,
 2091          "value": "binary_expression"
 2092        },
 2093        {
 2094          "type": "ALIAS",
 2095          "content": {
 2096            "type": "SYMBOL",
 2097            "name": "preproc_parenthesized_expression"
 2098          },
 2099          "named": true,
 2100          "value": "parenthesized_expression"
 2101        }
 2102      ]
 2103    },
 2104    "preproc_parenthesized_expression": {
 2105      "type": "SEQ",
 2106      "members": [
 2107        {
 2108          "type": "STRING",
 2109          "value": "("
 2110        },
 2111        {
 2112          "type": "SYMBOL",
 2113          "name": "_preproc_expression"
 2114        },
 2115        {
 2116          "type": "STRING",
 2117          "value": ")"
 2118        }
 2119      ]
 2120    },
 2121    "preproc_defined": {
 2122      "type": "CHOICE",
 2123      "members": [
 2124        {
 2125          "type": "PREC",
 2126          "value": 15,
 2127          "content": {
 2128            "type": "SEQ",
 2129            "members": [
 2130              {
 2131                "type": "STRING",
 2132                "value": "defined"
 2133              },
 2134              {
 2135                "type": "STRING",
 2136                "value": "("
 2137              },
 2138              {
 2139                "type": "SYMBOL",
 2140                "name": "identifier"
 2141              },
 2142              {
 2143                "type": "STRING",
 2144                "value": ")"
 2145              }
 2146            ]
 2147          }
 2148        },
 2149        {
 2150          "type": "SEQ",
 2151          "members": [
 2152            {
 2153              "type": "STRING",
 2154              "value": "defined"
 2155            },
 2156            {
 2157              "type": "SYMBOL",
 2158              "name": "identifier"
 2159            }
 2160          ]
 2161        }
 2162      ]
 2163    },
 2164    "preproc_unary_expression": {
 2165      "type": "PREC_LEFT",
 2166      "value": 14,
 2167      "content": {
 2168        "type": "SEQ",
 2169        "members": [
 2170          {
 2171            "type": "FIELD",
 2172            "name": "operator",
 2173            "content": {
 2174              "type": "CHOICE",
 2175              "members": [
 2176                {
 2177                  "type": "STRING",
 2178                  "value": "!"
 2179                },
 2180                {
 2181                  "type": "STRING",
 2182                  "value": "~"
 2183                },
 2184                {
 2185                  "type": "STRING",
 2186                  "value": "-"
 2187                },
 2188                {
 2189                  "type": "STRING",
 2190                  "value": "+"
 2191                }
 2192              ]
 2193            }
 2194          },
 2195          {
 2196            "type": "FIELD",
 2197            "name": "argument",
 2198            "content": {
 2199              "type": "SYMBOL",
 2200              "name": "_preproc_expression"
 2201            }
 2202          }
 2203        ]
 2204      }
 2205    },
 2206    "preproc_call_expression": {
 2207      "type": "PREC",
 2208      "value": 15,
 2209      "content": {
 2210        "type": "SEQ",
 2211        "members": [
 2212          {
 2213            "type": "FIELD",
 2214            "name": "function",
 2215            "content": {
 2216              "type": "SYMBOL",
 2217              "name": "identifier"
 2218            }
 2219          },
 2220          {
 2221            "type": "FIELD",
 2222            "name": "arguments",
 2223            "content": {
 2224              "type": "ALIAS",
 2225              "content": {
 2226                "type": "SYMBOL",
 2227                "name": "preproc_argument_list"
 2228              },
 2229              "named": true,
 2230              "value": "argument_list"
 2231            }
 2232          }
 2233        ]
 2234      }
 2235    },
 2236    "preproc_argument_list": {
 2237      "type": "SEQ",
 2238      "members": [
 2239        {
 2240          "type": "STRING",
 2241          "value": "("
 2242        },
 2243        {
 2244          "type": "CHOICE",
 2245          "members": [
 2246            {
 2247              "type": "SEQ",
 2248              "members": [
 2249                {
 2250                  "type": "SYMBOL",
 2251                  "name": "_preproc_expression"
 2252                },
 2253                {
 2254                  "type": "REPEAT",
 2255                  "content": {
 2256                    "type": "SEQ",
 2257                    "members": [
 2258                      {
 2259                        "type": "STRING",
 2260                        "value": ","
 2261                      },
 2262                      {
 2263                        "type": "SYMBOL",
 2264                        "name": "_preproc_expression"
 2265                      }
 2266                    ]
 2267                  }
 2268                }
 2269              ]
 2270            },
 2271            {
 2272              "type": "BLANK"
 2273            }
 2274          ]
 2275        },
 2276        {
 2277          "type": "STRING",
 2278          "value": ")"
 2279        }
 2280      ]
 2281    },
 2282    "preproc_binary_expression": {
 2283      "type": "CHOICE",
 2284      "members": [
 2285        {
 2286          "type": "PREC_LEFT",
 2287          "value": 10,
 2288          "content": {
 2289            "type": "SEQ",
 2290            "members": [
 2291              {
 2292                "type": "FIELD",
 2293                "name": "left",
 2294                "content": {
 2295                  "type": "SYMBOL",
 2296                  "name": "_preproc_expression"
 2297                }
 2298              },
 2299              {
 2300                "type": "FIELD",
 2301                "name": "operator",
 2302                "content": {
 2303                  "type": "STRING",
 2304                  "value": "+"
 2305                }
 2306              },
 2307              {
 2308                "type": "FIELD",
 2309                "name": "right",
 2310                "content": {
 2311                  "type": "SYMBOL",
 2312                  "name": "_preproc_expression"
 2313                }
 2314              }
 2315            ]
 2316          }
 2317        },
 2318        {
 2319          "type": "PREC_LEFT",
 2320          "value": 10,
 2321          "content": {
 2322            "type": "SEQ",
 2323            "members": [
 2324              {
 2325                "type": "FIELD",
 2326                "name": "left",
 2327                "content": {
 2328                  "type": "SYMBOL",
 2329                  "name": "_preproc_expression"
 2330                }
 2331              },
 2332              {
 2333                "type": "FIELD",
 2334                "name": "operator",
 2335                "content": {
 2336                  "type": "STRING",
 2337                  "value": "-"
 2338                }
 2339              },
 2340              {
 2341                "type": "FIELD",
 2342                "name": "right",
 2343                "content": {
 2344                  "type": "SYMBOL",
 2345                  "name": "_preproc_expression"
 2346                }
 2347              }
 2348            ]
 2349          }
 2350        },
 2351        {
 2352          "type": "PREC_LEFT",
 2353          "value": 11,
 2354          "content": {
 2355            "type": "SEQ",
 2356            "members": [
 2357              {
 2358                "type": "FIELD",
 2359                "name": "left",
 2360                "content": {
 2361                  "type": "SYMBOL",
 2362                  "name": "_preproc_expression"
 2363                }
 2364              },
 2365              {
 2366                "type": "FIELD",
 2367                "name": "operator",
 2368                "content": {
 2369                  "type": "STRING",
 2370                  "value": "*"
 2371                }
 2372              },
 2373              {
 2374                "type": "FIELD",
 2375                "name": "right",
 2376                "content": {
 2377                  "type": "SYMBOL",
 2378                  "name": "_preproc_expression"
 2379                }
 2380              }
 2381            ]
 2382          }
 2383        },
 2384        {
 2385          "type": "PREC_LEFT",
 2386          "value": 11,
 2387          "content": {
 2388            "type": "SEQ",
 2389            "members": [
 2390              {
 2391                "type": "FIELD",
 2392                "name": "left",
 2393                "content": {
 2394                  "type": "SYMBOL",
 2395                  "name": "_preproc_expression"
 2396                }
 2397              },
 2398              {
 2399                "type": "FIELD",
 2400                "name": "operator",
 2401                "content": {
 2402                  "type": "STRING",
 2403                  "value": "/"
 2404                }
 2405              },
 2406              {
 2407                "type": "FIELD",
 2408                "name": "right",
 2409                "content": {
 2410                  "type": "SYMBOL",
 2411                  "name": "_preproc_expression"
 2412                }
 2413              }
 2414            ]
 2415          }
 2416        },
 2417        {
 2418          "type": "PREC_LEFT",
 2419          "value": 11,
 2420          "content": {
 2421            "type": "SEQ",
 2422            "members": [
 2423              {
 2424                "type": "FIELD",
 2425                "name": "left",
 2426                "content": {
 2427                  "type": "SYMBOL",
 2428                  "name": "_preproc_expression"
 2429                }
 2430              },
 2431              {
 2432                "type": "FIELD",
 2433                "name": "operator",
 2434                "content": {
 2435                  "type": "STRING",
 2436                  "value": "%"
 2437                }
 2438              },
 2439              {
 2440                "type": "FIELD",
 2441                "name": "right",
 2442                "content": {
 2443                  "type": "SYMBOL",
 2444                  "name": "_preproc_expression"
 2445                }
 2446              }
 2447            ]
 2448          }
 2449        },
 2450        {
 2451          "type": "PREC_LEFT",
 2452          "value": 1,
 2453          "content": {
 2454            "type": "SEQ",
 2455            "members": [
 2456              {
 2457                "type": "FIELD",
 2458                "name": "left",
 2459                "content": {
 2460                  "type": "SYMBOL",
 2461                  "name": "_preproc_expression"
 2462                }
 2463              },
 2464              {
 2465                "type": "FIELD",
 2466                "name": "operator",
 2467                "content": {
 2468                  "type": "STRING",
 2469                  "value": "||"
 2470                }
 2471              },
 2472              {
 2473                "type": "FIELD",
 2474                "name": "right",
 2475                "content": {
 2476                  "type": "SYMBOL",
 2477                  "name": "_preproc_expression"
 2478                }
 2479              }
 2480            ]
 2481          }
 2482        },
 2483        {
 2484          "type": "PREC_LEFT",
 2485          "value": 2,
 2486          "content": {
 2487            "type": "SEQ",
 2488            "members": [
 2489              {
 2490                "type": "FIELD",
 2491                "name": "left",
 2492                "content": {
 2493                  "type": "SYMBOL",
 2494                  "name": "_preproc_expression"
 2495                }
 2496              },
 2497              {
 2498                "type": "FIELD",
 2499                "name": "operator",
 2500                "content": {
 2501                  "type": "STRING",
 2502                  "value": "&&"
 2503                }
 2504              },
 2505              {
 2506                "type": "FIELD",
 2507                "name": "right",
 2508                "content": {
 2509                  "type": "SYMBOL",
 2510                  "name": "_preproc_expression"
 2511                }
 2512              }
 2513            ]
 2514          }
 2515        },
 2516        {
 2517          "type": "PREC_LEFT",
 2518          "value": 3,
 2519          "content": {
 2520            "type": "SEQ",
 2521            "members": [
 2522              {
 2523                "type": "FIELD",
 2524                "name": "left",
 2525                "content": {
 2526                  "type": "SYMBOL",
 2527                  "name": "_preproc_expression"
 2528                }
 2529              },
 2530              {
 2531                "type": "FIELD",
 2532                "name": "operator",
 2533                "content": {
 2534                  "type": "STRING",
 2535                  "value": "|"
 2536                }
 2537              },
 2538              {
 2539                "type": "FIELD",
 2540                "name": "right",
 2541                "content": {
 2542                  "type": "SYMBOL",
 2543                  "name": "_preproc_expression"
 2544                }
 2545              }
 2546            ]
 2547          }
 2548        },
 2549        {
 2550          "type": "PREC_LEFT",
 2551          "value": 4,
 2552          "content": {
 2553            "type": "SEQ",
 2554            "members": [
 2555              {
 2556                "type": "FIELD",
 2557                "name": "left",
 2558                "content": {
 2559                  "type": "SYMBOL",
 2560                  "name": "_preproc_expression"
 2561                }
 2562              },
 2563              {
 2564                "type": "FIELD",
 2565                "name": "operator",
 2566                "content": {
 2567                  "type": "STRING",
 2568                  "value": "^"
 2569                }
 2570              },
 2571              {
 2572                "type": "FIELD",
 2573                "name": "right",
 2574                "content": {
 2575                  "type": "SYMBOL",
 2576                  "name": "_preproc_expression"
 2577                }
 2578              }
 2579            ]
 2580          }
 2581        },
 2582        {
 2583          "type": "PREC_LEFT",
 2584          "value": 5,
 2585          "content": {
 2586            "type": "SEQ",
 2587            "members": [
 2588              {
 2589                "type": "FIELD",
 2590                "name": "left",
 2591                "content": {
 2592                  "type": "SYMBOL",
 2593                  "name": "_preproc_expression"
 2594                }
 2595              },
 2596              {
 2597                "type": "FIELD",
 2598                "name": "operator",
 2599                "content": {
 2600                  "type": "STRING",
 2601                  "value": "&"
 2602                }
 2603              },
 2604              {
 2605                "type": "FIELD",
 2606                "name": "right",
 2607                "content": {
 2608                  "type": "SYMBOL",
 2609                  "name": "_preproc_expression"
 2610                }
 2611              }
 2612            ]
 2613          }
 2614        },
 2615        {
 2616          "type": "PREC_LEFT",
 2617          "value": 6,
 2618          "content": {
 2619            "type": "SEQ",
 2620            "members": [
 2621              {
 2622                "type": "FIELD",
 2623                "name": "left",
 2624                "content": {
 2625                  "type": "SYMBOL",
 2626                  "name": "_preproc_expression"
 2627                }
 2628              },
 2629              {
 2630                "type": "FIELD",
 2631                "name": "operator",
 2632                "content": {
 2633                  "type": "STRING",
 2634                  "value": "=="
 2635                }
 2636              },
 2637              {
 2638                "type": "FIELD",
 2639                "name": "right",
 2640                "content": {
 2641                  "type": "SYMBOL",
 2642                  "name": "_preproc_expression"
 2643                }
 2644              }
 2645            ]
 2646          }
 2647        },
 2648        {
 2649          "type": "PREC_LEFT",
 2650          "value": 6,
 2651          "content": {
 2652            "type": "SEQ",
 2653            "members": [
 2654              {
 2655                "type": "FIELD",
 2656                "name": "left",
 2657                "content": {
 2658                  "type": "SYMBOL",
 2659                  "name": "_preproc_expression"
 2660                }
 2661              },
 2662              {
 2663                "type": "FIELD",
 2664                "name": "operator",
 2665                "content": {
 2666                  "type": "STRING",
 2667                  "value": "!="
 2668                }
 2669              },
 2670              {
 2671                "type": "FIELD",
 2672                "name": "right",
 2673                "content": {
 2674                  "type": "SYMBOL",
 2675                  "name": "_preproc_expression"
 2676                }
 2677              }
 2678            ]
 2679          }
 2680        },
 2681        {
 2682          "type": "PREC_LEFT",
 2683          "value": 7,
 2684          "content": {
 2685            "type": "SEQ",
 2686            "members": [
 2687              {
 2688                "type": "FIELD",
 2689                "name": "left",
 2690                "content": {
 2691                  "type": "SYMBOL",
 2692                  "name": "_preproc_expression"
 2693                }
 2694              },
 2695              {
 2696                "type": "FIELD",
 2697                "name": "operator",
 2698                "content": {
 2699                  "type": "STRING",
 2700                  "value": ">"
 2701                }
 2702              },
 2703              {
 2704                "type": "FIELD",
 2705                "name": "right",
 2706                "content": {
 2707                  "type": "SYMBOL",
 2708                  "name": "_preproc_expression"
 2709                }
 2710              }
 2711            ]
 2712          }
 2713        },
 2714        {
 2715          "type": "PREC_LEFT",
 2716          "value": 7,
 2717          "content": {
 2718            "type": "SEQ",
 2719            "members": [
 2720              {
 2721                "type": "FIELD",
 2722                "name": "left",
 2723                "content": {
 2724                  "type": "SYMBOL",
 2725                  "name": "_preproc_expression"
 2726                }
 2727              },
 2728              {
 2729                "type": "FIELD",
 2730                "name": "operator",
 2731                "content": {
 2732                  "type": "STRING",
 2733                  "value": ">="
 2734                }
 2735              },
 2736              {
 2737                "type": "FIELD",
 2738                "name": "right",
 2739                "content": {
 2740                  "type": "SYMBOL",
 2741                  "name": "_preproc_expression"
 2742                }
 2743              }
 2744            ]
 2745          }
 2746        },
 2747        {
 2748          "type": "PREC_LEFT",
 2749          "value": 7,
 2750          "content": {
 2751            "type": "SEQ",
 2752            "members": [
 2753              {
 2754                "type": "FIELD",
 2755                "name": "left",
 2756                "content": {
 2757                  "type": "SYMBOL",
 2758                  "name": "_preproc_expression"
 2759                }
 2760              },
 2761              {
 2762                "type": "FIELD",
 2763                "name": "operator",
 2764                "content": {
 2765                  "type": "STRING",
 2766                  "value": "<="
 2767                }
 2768              },
 2769              {
 2770                "type": "FIELD",
 2771                "name": "right",
 2772                "content": {
 2773                  "type": "SYMBOL",
 2774                  "name": "_preproc_expression"
 2775                }
 2776              }
 2777            ]
 2778          }
 2779        },
 2780        {
 2781          "type": "PREC_LEFT",
 2782          "value": 7,
 2783          "content": {
 2784            "type": "SEQ",
 2785            "members": [
 2786              {
 2787                "type": "FIELD",
 2788                "name": "left",
 2789                "content": {
 2790                  "type": "SYMBOL",
 2791                  "name": "_preproc_expression"
 2792                }
 2793              },
 2794              {
 2795                "type": "FIELD",
 2796                "name": "operator",
 2797                "content": {
 2798                  "type": "STRING",
 2799                  "value": "<"
 2800                }
 2801              },
 2802              {
 2803                "type": "FIELD",
 2804                "name": "right",
 2805                "content": {
 2806                  "type": "SYMBOL",
 2807                  "name": "_preproc_expression"
 2808                }
 2809              }
 2810            ]
 2811          }
 2812        },
 2813        {
 2814          "type": "PREC_LEFT",
 2815          "value": 9,
 2816          "content": {
 2817            "type": "SEQ",
 2818            "members": [
 2819              {
 2820                "type": "FIELD",
 2821                "name": "left",
 2822                "content": {
 2823                  "type": "SYMBOL",
 2824                  "name": "_preproc_expression"
 2825                }
 2826              },
 2827              {
 2828                "type": "FIELD",
 2829                "name": "operator",
 2830                "content": {
 2831                  "type": "STRING",
 2832                  "value": "<<"
 2833                }
 2834              },
 2835              {
 2836                "type": "FIELD",
 2837                "name": "right",
 2838                "content": {
 2839                  "type": "SYMBOL",
 2840                  "name": "_preproc_expression"
 2841                }
 2842              }
 2843            ]
 2844          }
 2845        },
 2846        {
 2847          "type": "PREC_LEFT",
 2848          "value": 9,
 2849          "content": {
 2850            "type": "SEQ",
 2851            "members": [
 2852              {
 2853                "type": "FIELD",
 2854                "name": "left",
 2855                "content": {
 2856                  "type": "SYMBOL",
 2857                  "name": "_preproc_expression"
 2858                }
 2859              },
 2860              {
 2861                "type": "FIELD",
 2862                "name": "operator",
 2863                "content": {
 2864                  "type": "STRING",
 2865                  "value": ">>"
 2866                }
 2867              },
 2868              {
 2869                "type": "FIELD",
 2870                "name": "right",
 2871                "content": {
 2872                  "type": "SYMBOL",
 2873                  "name": "_preproc_expression"
 2874                }
 2875              }
 2876            ]
 2877          }
 2878        }
 2879      ]
 2880    },
 2881    "function_definition": {
 2882      "type": "SEQ",
 2883      "members": [
 2884        {
 2885          "type": "CHOICE",
 2886          "members": [
 2887            {
 2888              "type": "SYMBOL",
 2889              "name": "ms_call_modifier"
 2890            },
 2891            {
 2892              "type": "BLANK"
 2893            }
 2894          ]
 2895        },
 2896        {
 2897          "type": "SYMBOL",
 2898          "name": "_declaration_specifiers"
 2899        },
 2900        {
 2901          "type": "CHOICE",
 2902          "members": [
 2903            {
 2904              "type": "SYMBOL",
 2905              "name": "ms_call_modifier"
 2906            },
 2907            {
 2908              "type": "BLANK"
 2909            }
 2910          ]
 2911        },
 2912        {
 2913          "type": "FIELD",
 2914          "name": "declarator",
 2915          "content": {
 2916            "type": "SYMBOL",
 2917            "name": "_declarator"
 2918          }
 2919        },
 2920        {
 2921          "type": "FIELD",
 2922          "name": "body",
 2923          "content": {
 2924            "type": "CHOICE",
 2925            "members": [
 2926              {
 2927                "type": "SYMBOL",
 2928                "name": "compound_statement"
 2929              },
 2930              {
 2931                "type": "SYMBOL",
 2932                "name": "try_statement"
 2933              }
 2934            ]
 2935          }
 2936        }
 2937      ]
 2938    },
 2939    "_old_style_function_definition": {
 2940      "type": "SEQ",
 2941      "members": [
 2942        {
 2943          "type": "CHOICE",
 2944          "members": [
 2945            {
 2946              "type": "SYMBOL",
 2947              "name": "ms_call_modifier"
 2948            },
 2949            {
 2950              "type": "BLANK"
 2951            }
 2952          ]
 2953        },
 2954        {
 2955          "type": "SYMBOL",
 2956          "name": "_declaration_specifiers"
 2957        },
 2958        {
 2959          "type": "FIELD",
 2960          "name": "declarator",
 2961          "content": {
 2962            "type": "ALIAS",
 2963            "content": {
 2964              "type": "SYMBOL",
 2965              "name": "_old_style_function_declarator"
 2966            },
 2967            "named": true,
 2968            "value": "function_declarator"
 2969          }
 2970        },
 2971        {
 2972          "type": "REPEAT",
 2973          "content": {
 2974            "type": "SYMBOL",
 2975            "name": "declaration"
 2976          }
 2977        },
 2978        {
 2979          "type": "FIELD",
 2980          "name": "body",
 2981          "content": {
 2982            "type": "SYMBOL",
 2983            "name": "compound_statement"
 2984          }
 2985        }
 2986      ]
 2987    },
 2988    "declaration": {
 2989      "type": "SEQ",
 2990      "members": [
 2991        {
 2992          "type": "SYMBOL",
 2993          "name": "_declaration_specifiers"
 2994        },
 2995        {
 2996          "type": "SEQ",
 2997          "members": [
 2998            {
 2999              "type": "FIELD",
 3000              "name": "declarator",
 3001              "content": {
 3002                "type": "CHOICE",
 3003                "members": [
 3004                  {
 3005                    "type": "SEQ",
 3006                    "members": [
 3007                      {
 3008                        "type": "SYMBOL",
 3009                        "name": "_declarator"
 3010                      },
 3011                      {
 3012                        "type": "CHOICE",
 3013                        "members": [
 3014                          {
 3015                            "type": "SYMBOL",
 3016                            "name": "gnu_asm_expression"
 3017                          },
 3018                          {
 3019                            "type": "BLANK"
 3020                          }
 3021                        ]
 3022                      }
 3023                    ]
 3024                  },
 3025                  {
 3026                    "type": "SYMBOL",
 3027                    "name": "init_declarator"
 3028                  }
 3029                ]
 3030              }
 3031            },
 3032            {
 3033              "type": "REPEAT",
 3034              "content": {
 3035                "type": "SEQ",
 3036                "members": [
 3037                  {
 3038                    "type": "STRING",
 3039                    "value": ","
 3040                  },
 3041                  {
 3042                    "type": "FIELD",
 3043                    "name": "declarator",
 3044                    "content": {
 3045                      "type": "CHOICE",
 3046                      "members": [
 3047                        {
 3048                          "type": "SEQ",
 3049                          "members": [
 3050                            {
 3051                              "type": "SYMBOL",
 3052                              "name": "_declarator"
 3053                            },
 3054                            {
 3055                              "type": "CHOICE",
 3056                              "members": [
 3057                                {
 3058                                  "type": "SYMBOL",
 3059                                  "name": "gnu_asm_expression"
 3060                                },
 3061                                {
 3062                                  "type": "BLANK"
 3063                                }
 3064                              ]
 3065                            }
 3066                          ]
 3067                        },
 3068                        {
 3069                          "type": "SYMBOL",
 3070                          "name": "init_declarator"
 3071                        }
 3072                      ]
 3073                    }
 3074                  }
 3075                ]
 3076              }
 3077            }
 3078          ]
 3079        },
 3080        {
 3081          "type": "STRING",
 3082          "value": ";"
 3083        }
 3084      ]
 3085    },
 3086    "type_definition": {
 3087      "type": "SEQ",
 3088      "members": [
 3089        {
 3090          "type": "CHOICE",
 3091          "members": [
 3092            {
 3093              "type": "STRING",
 3094              "value": "__extension__"
 3095            },
 3096            {
 3097              "type": "BLANK"
 3098            }
 3099          ]
 3100        },
 3101        {
 3102          "type": "STRING",
 3103          "value": "typedef"
 3104        },
 3105        {
 3106          "type": "SYMBOL",
 3107          "name": "_type_definition_type"
 3108        },
 3109        {
 3110          "type": "SYMBOL",
 3111          "name": "_type_definition_declarators"
 3112        },
 3113        {
 3114          "type": "REPEAT",
 3115          "content": {
 3116            "type": "SYMBOL",
 3117            "name": "attribute_specifier"
 3118          }
 3119        },
 3120        {
 3121          "type": "STRING",
 3122          "value": ";"
 3123        }
 3124      ]
 3125    },
 3126    "_type_definition_type": {
 3127      "type": "SEQ",
 3128      "members": [
 3129        {
 3130          "type": "REPEAT",
 3131          "content": {
 3132            "type": "SYMBOL",
 3133            "name": "type_qualifier"
 3134          }
 3135        },
 3136        {
 3137          "type": "FIELD",
 3138          "name": "type",
 3139          "content": {
 3140            "type": "SYMBOL",
 3141            "name": "type_specifier"
 3142          }
 3143        },
 3144        {
 3145          "type": "REPEAT",
 3146          "content": {
 3147            "type": "SYMBOL",
 3148            "name": "type_qualifier"
 3149          }
 3150        }
 3151      ]
 3152    },
 3153    "_type_definition_declarators": {
 3154      "type": "SEQ",
 3155      "members": [
 3156        {
 3157          "type": "FIELD",
 3158          "name": "declarator",
 3159          "content": {
 3160            "type": "SYMBOL",
 3161            "name": "_type_declarator"
 3162          }
 3163        },
 3164        {
 3165          "type": "REPEAT",
 3166          "content": {
 3167            "type": "SEQ",
 3168            "members": [
 3169              {
 3170                "type": "STRING",
 3171                "value": ","
 3172              },
 3173              {
 3174                "type": "FIELD",
 3175                "name": "declarator",
 3176                "content": {
 3177                  "type": "SYMBOL",
 3178                  "name": "_type_declarator"
 3179                }
 3180              }
 3181            ]
 3182          }
 3183        }
 3184      ]
 3185    },
 3186    "_declaration_modifiers": {
 3187      "type": "CHOICE",
 3188      "members": [
 3189        {
 3190          "type": "SYMBOL",
 3191          "name": "launch_bounds"
 3192        },
 3193        {
 3194          "type": "STRING",
 3195          "value": "__device__"
 3196        },
 3197        {
 3198          "type": "STRING",
 3199          "value": "__host__"
 3200        },
 3201        {
 3202          "type": "PREC",
 3203          "value": 10,
 3204          "content": {
 3205            "type": "STRING",
 3206            "value": "__global__"
 3207          }
 3208        },
 3209        {
 3210          "type": "STRING",
 3211          "value": "__forceinline__"
 3212        },
 3213        {
 3214          "type": "STRING",
 3215          "value": "__noinline__"
 3216        },
 3217        {
 3218          "type": "CHOICE",
 3219          "members": [
 3220            {
 3221              "type": "CHOICE",
 3222              "members": [
 3223                {
 3224                  "type": "SYMBOL",
 3225                  "name": "storage_class_specifier"
 3226                },
 3227                {
 3228                  "type": "SYMBOL",
 3229                  "name": "type_qualifier"
 3230                },
 3231                {
 3232                  "type": "SYMBOL",
 3233                  "name": "attribute_specifier"
 3234                },
 3235                {
 3236                  "type": "SYMBOL",
 3237                  "name": "attribute_declaration"
 3238                },
 3239                {
 3240                  "type": "SYMBOL",
 3241                  "name": "ms_declspec_modifier"
 3242                }
 3243              ]
 3244            },
 3245            {
 3246              "type": "SYMBOL",
 3247              "name": "virtual"
 3248            }
 3249          ]
 3250        }
 3251      ]
 3252    },
 3253    "_declaration_specifiers": {
 3254      "type": "PREC_RIGHT",
 3255      "value": 0,
 3256      "content": {
 3257        "type": "SEQ",
 3258        "members": [
 3259          {
 3260            "type": "REPEAT",
 3261            "content": {
 3262              "type": "SYMBOL",
 3263              "name": "_declaration_modifiers"
 3264            }
 3265          },
 3266          {
 3267            "type": "FIELD",
 3268            "name": "type",
 3269            "content": {
 3270              "type": "SYMBOL",
 3271              "name": "type_specifier"
 3272            }
 3273          },
 3274          {
 3275            "type": "REPEAT",
 3276            "content": {
 3277              "type": "SYMBOL",
 3278              "name": "_declaration_modifiers"
 3279            }
 3280          }
 3281        ]
 3282      }
 3283    },
 3284    "linkage_specification": {
 3285      "type": "SEQ",
 3286      "members": [
 3287        {
 3288          "type": "STRING",
 3289          "value": "extern"
 3290        },
 3291        {
 3292          "type": "FIELD",
 3293          "name": "value",
 3294          "content": {
 3295            "type": "SYMBOL",
 3296            "name": "string_literal"
 3297          }
 3298        },
 3299        {
 3300          "type": "FIELD",
 3301          "name": "body",
 3302          "content": {
 3303            "type": "CHOICE",
 3304            "members": [
 3305              {
 3306                "type": "SYMBOL",
 3307                "name": "function_definition"
 3308              },
 3309              {
 3310                "type": "SYMBOL",
 3311                "name": "declaration"
 3312              },
 3313              {
 3314                "type": "SYMBOL",
 3315                "name": "declaration_list"
 3316              }
 3317            ]
 3318          }
 3319        }
 3320      ]
 3321    },
 3322    "attribute_specifier": {
 3323      "type": "SEQ",
 3324      "members": [
 3325        {
 3326          "type": "STRING",
 3327          "value": "__attribute__"
 3328        },
 3329        {
 3330          "type": "STRING",
 3331          "value": "("
 3332        },
 3333        {
 3334          "type": "SYMBOL",
 3335          "name": "argument_list"
 3336        },
 3337        {
 3338          "type": "STRING",
 3339          "value": ")"
 3340        }
 3341      ]
 3342    },
 3343    "attribute": {
 3344      "type": "SEQ",
 3345      "members": [
 3346        {
 3347          "type": "CHOICE",
 3348          "members": [
 3349            {
 3350              "type": "SEQ",
 3351              "members": [
 3352                {
 3353                  "type": "FIELD",
 3354                  "name": "prefix",
 3355                  "content": {
 3356                    "type": "SYMBOL",
 3357                    "name": "identifier"
 3358                  }
 3359                },
 3360                {
 3361                  "type": "STRING",
 3362                  "value": "::"
 3363                }
 3364              ]
 3365            },
 3366            {
 3367              "type": "BLANK"
 3368            }
 3369          ]
 3370        },
 3371        {
 3372          "type": "FIELD",
 3373          "name": "name",
 3374          "content": {
 3375            "type": "SYMBOL",
 3376            "name": "identifier"
 3377          }
 3378        },
 3379        {
 3380          "type": "CHOICE",
 3381          "members": [
 3382            {
 3383              "type": "SYMBOL",
 3384              "name": "argument_list"
 3385            },
 3386            {
 3387              "type": "BLANK"
 3388            }
 3389          ]
 3390        }
 3391      ]
 3392    },
 3393    "attribute_declaration": {
 3394      "type": "SEQ",
 3395      "members": [
 3396        {
 3397          "type": "STRING",
 3398          "value": "[["
 3399        },
 3400        {
 3401          "type": "SEQ",
 3402          "members": [
 3403            {
 3404              "type": "SYMBOL",
 3405              "name": "attribute"
 3406            },
 3407            {
 3408              "type": "REPEAT",
 3409              "content": {
 3410                "type": "SEQ",
 3411                "members": [
 3412                  {
 3413                    "type": "STRING",
 3414                    "value": ","
 3415                  },
 3416                  {
 3417                    "type": "SYMBOL",
 3418                    "name": "attribute"
 3419                  }
 3420                ]
 3421              }
 3422            }
 3423          ]
 3424        },
 3425        {
 3426          "type": "STRING",
 3427          "value": "]]"
 3428        }
 3429      ]
 3430    },
 3431    "ms_declspec_modifier": {
 3432      "type": "SEQ",
 3433      "members": [
 3434        {
 3435          "type": "STRING",
 3436          "value": "__declspec"
 3437        },
 3438        {
 3439          "type": "STRING",
 3440          "value": "("
 3441        },
 3442        {
 3443          "type": "SYMBOL",
 3444          "name": "identifier"
 3445        },
 3446        {
 3447          "type": "STRING",
 3448          "value": ")"
 3449        }
 3450      ]
 3451    },
 3452    "ms_based_modifier": {
 3453      "type": "SEQ",
 3454      "members": [
 3455        {
 3456          "type": "STRING",
 3457          "value": "__based"
 3458        },
 3459        {
 3460          "type": "SYMBOL",
 3461          "name": "argument_list"
 3462        }
 3463      ]
 3464    },
 3465    "ms_call_modifier": {
 3466      "type": "CHOICE",
 3467      "members": [
 3468        {
 3469          "type": "STRING",
 3470          "value": "__cdecl"
 3471        },
 3472        {
 3473          "type": "STRING",
 3474          "value": "__clrcall"
 3475        },
 3476        {
 3477          "type": "STRING",
 3478          "value": "__stdcall"
 3479        },
 3480        {
 3481          "type": "STRING",
 3482          "value": "__fastcall"
 3483        },
 3484        {
 3485          "type": "STRING",
 3486          "value": "__thiscall"
 3487        },
 3488        {
 3489          "type": "STRING",
 3490          "value": "__vectorcall"
 3491        }
 3492      ]
 3493    },
 3494    "ms_restrict_modifier": {
 3495      "type": "STRING",
 3496      "value": "__restrict"
 3497    },
 3498    "ms_unsigned_ptr_modifier": {
 3499      "type": "STRING",
 3500      "value": "__uptr"
 3501    },
 3502    "ms_signed_ptr_modifier": {
 3503      "type": "STRING",
 3504      "value": "__sptr"
 3505    },
 3506    "ms_unaligned_ptr_modifier": {
 3507      "type": "CHOICE",
 3508      "members": [
 3509        {
 3510          "type": "STRING",
 3511          "value": "_unaligned"
 3512        },
 3513        {
 3514          "type": "STRING",
 3515          "value": "__unaligned"
 3516        }
 3517      ]
 3518    },
 3519    "ms_pointer_modifier": {
 3520      "type": "CHOICE",
 3521      "members": [
 3522        {
 3523          "type": "SYMBOL",
 3524          "name": "ms_unaligned_ptr_modifier"
 3525        },
 3526        {
 3527          "type": "SYMBOL",
 3528          "name": "ms_restrict_modifier"
 3529        },
 3530        {
 3531          "type": "SYMBOL",
 3532          "name": "ms_unsigned_ptr_modifier"
 3533        },
 3534        {
 3535          "type": "SYMBOL",
 3536          "name": "ms_signed_ptr_modifier"
 3537        }
 3538      ]
 3539    },
 3540    "declaration_list": {
 3541      "type": "SEQ",
 3542      "members": [
 3543        {
 3544          "type": "STRING",
 3545          "value": "{"
 3546        },
 3547        {
 3548          "type": "REPEAT",
 3549          "content": {
 3550            "type": "SYMBOL",
 3551            "name": "_block_item"
 3552          }
 3553        },
 3554        {
 3555          "type": "STRING",
 3556          "value": "}"
 3557        }
 3558      ]
 3559    },
 3560    "_declarator": {
 3561      "type": "CHOICE",
 3562      "members": [
 3563        {
 3564          "type": "CHOICE",
 3565          "members": [
 3566            {
 3567              "type": "SYMBOL",
 3568              "name": "attributed_declarator"
 3569            },
 3570            {
 3571              "type": "SYMBOL",
 3572              "name": "pointer_declarator"
 3573            },
 3574            {
 3575              "type": "SYMBOL",
 3576              "name": "function_declarator"
 3577            },
 3578            {
 3579              "type": "SYMBOL",
 3580              "name": "array_declarator"
 3581            },
 3582            {
 3583              "type": "SYMBOL",
 3584              "name": "parenthesized_declarator"
 3585            },
 3586            {
 3587              "type": "SYMBOL",
 3588              "name": "identifier"
 3589            }
 3590          ]
 3591        },
 3592        {
 3593          "type": "SYMBOL",
 3594          "name": "reference_declarator"
 3595        },
 3596        {
 3597          "type": "SYMBOL",
 3598          "name": "qualified_identifier"
 3599        },
 3600        {
 3601          "type": "SYMBOL",
 3602          "name": "template_function"
 3603        },
 3604        {
 3605          "type": "SYMBOL",
 3606          "name": "operator_name"
 3607        },
 3608        {
 3609          "type": "SYMBOL",
 3610          "name": "destructor_name"
 3611        },
 3612        {
 3613          "type": "SYMBOL",
 3614          "name": "structured_binding_declarator"
 3615        }
 3616      ]
 3617    },
 3618    "_declaration_declarator": {
 3619      "type": "CHOICE",
 3620      "members": [
 3621        {
 3622          "type": "SYMBOL",
 3623          "name": "attributed_declarator"
 3624        },
 3625        {
 3626          "type": "SYMBOL",
 3627          "name": "pointer_declarator"
 3628        },
 3629        {
 3630          "type": "ALIAS",
 3631          "content": {
 3632            "type": "SYMBOL",
 3633            "name": "_function_declaration_declarator"
 3634          },
 3635          "named": true,
 3636          "value": "function_declarator"
 3637        },
 3638        {
 3639          "type": "SYMBOL",
 3640          "name": "array_declarator"
 3641        },
 3642        {
 3643          "type": "SYMBOL",
 3644          "name": "parenthesized_declarator"
 3645        },
 3646        {
 3647          "type": "SYMBOL",
 3648          "name": "identifier"
 3649        }
 3650      ]
 3651    },
 3652    "_field_declarator": {
 3653      "type": "CHOICE",
 3654      "members": [
 3655        {
 3656          "type": "CHOICE",
 3657          "members": [
 3658            {
 3659              "type": "ALIAS",
 3660              "content": {
 3661                "type": "SYMBOL",
 3662                "name": "attributed_field_declarator"
 3663              },
 3664              "named": true,
 3665              "value": "attributed_declarator"
 3666            },
 3667            {
 3668              "type": "ALIAS",
 3669              "content": {
 3670                "type": "SYMBOL",
 3671                "name": "pointer_field_declarator"
 3672              },
 3673              "named": true,
 3674              "value": "pointer_declarator"
 3675            },
 3676            {
 3677              "type": "ALIAS",
 3678              "content": {
 3679                "type": "SYMBOL",
 3680                "name": "function_field_declarator"
 3681              },
 3682              "named": true,
 3683              "value": "function_declarator"
 3684            },
 3685            {
 3686              "type": "ALIAS",
 3687              "content": {
 3688                "type": "SYMBOL",
 3689                "name": "array_field_declarator"
 3690              },
 3691              "named": true,
 3692              "value": "array_declarator"
 3693            },
 3694            {
 3695              "type": "ALIAS",
 3696              "content": {
 3697                "type": "SYMBOL",
 3698                "name": "parenthesized_field_declarator"
 3699              },
 3700              "named": true,
 3701              "value": "parenthesized_declarator"
 3702            },
 3703            {
 3704              "type": "SYMBOL",
 3705              "name": "_field_identifier"
 3706            }
 3707          ]
 3708        },
 3709        {
 3710          "type": "ALIAS",
 3711          "content": {
 3712            "type": "SYMBOL",
 3713            "name": "reference_field_declarator"
 3714          },
 3715          "named": true,
 3716          "value": "reference_declarator"
 3717        },
 3718        {
 3719          "type": "SYMBOL",
 3720          "name": "template_method"
 3721        },
 3722        {
 3723          "type": "SYMBOL",
 3724          "name": "operator_name"
 3725        }
 3726      ]
 3727    },
 3728    "_type_declarator": {
 3729      "type": "CHOICE",
 3730      "members": [
 3731        {
 3732          "type": "CHOICE",
 3733          "members": [
 3734            {
 3735              "type": "ALIAS",
 3736              "content": {
 3737                "type": "SYMBOL",
 3738                "name": "attributed_type_declarator"
 3739              },
 3740              "named": true,
 3741              "value": "attributed_declarator"
 3742            },
 3743            {
 3744              "type": "ALIAS",
 3745              "content": {
 3746                "type": "SYMBOL",
 3747                "name": "pointer_type_declarator"
 3748              },
 3749              "named": true,
 3750              "value": "pointer_declarator"
 3751            },
 3752            {
 3753              "type": "ALIAS",
 3754              "content": {
 3755                "type": "SYMBOL",
 3756                "name": "function_type_declarator"
 3757              },
 3758              "named": true,
 3759              "value": "function_declarator"
 3760            },
 3761            {
 3762              "type": "ALIAS",
 3763              "content": {
 3764                "type": "SYMBOL",
 3765                "name": "array_type_declarator"
 3766              },
 3767              "named": true,
 3768              "value": "array_declarator"
 3769            },
 3770            {
 3771              "type": "ALIAS",
 3772              "content": {
 3773                "type": "SYMBOL",
 3774                "name": "parenthesized_type_declarator"
 3775              },
 3776              "named": true,
 3777              "value": "parenthesized_declarator"
 3778            },
 3779            {
 3780              "type": "SYMBOL",
 3781              "name": "_type_identifier"
 3782            },
 3783            {
 3784              "type": "ALIAS",
 3785              "content": {
 3786                "type": "CHOICE",
 3787                "members": [
 3788                  {
 3789                    "type": "STRING",
 3790                    "value": "signed"
 3791                  },
 3792                  {
 3793                    "type": "STRING",
 3794                    "value": "unsigned"
 3795                  },
 3796                  {
 3797                    "type": "STRING",
 3798                    "value": "long"
 3799                  },
 3800                  {
 3801                    "type": "STRING",
 3802                    "value": "short"
 3803                  }
 3804                ]
 3805              },
 3806              "named": true,
 3807              "value": "primitive_type"
 3808            },
 3809            {
 3810              "type": "SYMBOL",
 3811              "name": "primitive_type"
 3812            }
 3813          ]
 3814        },
 3815        {
 3816          "type": "ALIAS",
 3817          "content": {
 3818            "type": "SYMBOL",
 3819            "name": "reference_type_declarator"
 3820          },
 3821          "named": true,
 3822          "value": "reference_declarator"
 3823        }
 3824      ]
 3825    },
 3826    "_abstract_declarator": {
 3827      "type": "CHOICE",
 3828      "members": [
 3829        {
 3830          "type": "CHOICE",
 3831          "members": [
 3832            {
 3833              "type": "SYMBOL",
 3834              "name": "abstract_pointer_declarator"
 3835            },
 3836            {
 3837              "type": "SYMBOL",
 3838              "name": "abstract_function_declarator"
 3839            },
 3840            {
 3841              "type": "SYMBOL",
 3842              "name": "abstract_array_declarator"
 3843            },
 3844            {
 3845              "type": "SYMBOL",
 3846              "name": "abstract_parenthesized_declarator"
 3847            }
 3848          ]
 3849        },
 3850        {
 3851          "type": "SYMBOL",
 3852          "name": "abstract_reference_declarator"
 3853        }
 3854      ]
 3855    },
 3856    "parenthesized_declarator": {
 3857      "type": "PREC_DYNAMIC",
 3858      "value": -10,
 3859      "content": {
 3860        "type": "SEQ",
 3861        "members": [
 3862          {
 3863            "type": "STRING",
 3864            "value": "("
 3865          },
 3866          {
 3867            "type": "CHOICE",
 3868            "members": [
 3869              {
 3870                "type": "SYMBOL",
 3871                "name": "ms_call_modifier"
 3872              },
 3873              {
 3874                "type": "BLANK"
 3875              }
 3876            ]
 3877          },
 3878          {
 3879            "type": "SYMBOL",
 3880            "name": "_declarator"
 3881          },
 3882          {
 3883            "type": "STRING",
 3884            "value": ")"
 3885          }
 3886        ]
 3887      }
 3888    },
 3889    "parenthesized_field_declarator": {
 3890      "type": "PREC_DYNAMIC",
 3891      "value": -10,
 3892      "content": {
 3893        "type": "SEQ",
 3894        "members": [
 3895          {
 3896            "type": "STRING",
 3897            "value": "("
 3898          },
 3899          {
 3900            "type": "CHOICE",
 3901            "members": [
 3902              {
 3903                "type": "SYMBOL",
 3904                "name": "ms_call_modifier"
 3905              },
 3906              {
 3907                "type": "BLANK"
 3908              }
 3909            ]
 3910          },
 3911          {
 3912            "type": "SYMBOL",
 3913            "name": "_field_declarator"
 3914          },
 3915          {
 3916            "type": "STRING",
 3917            "value": ")"
 3918          }
 3919        ]
 3920      }
 3921    },
 3922    "parenthesized_type_declarator": {
 3923      "type": "PREC_DYNAMIC",
 3924      "value": -10,
 3925      "content": {
 3926        "type": "SEQ",
 3927        "members": [
 3928          {
 3929            "type": "STRING",
 3930            "value": "("
 3931          },
 3932          {
 3933            "type": "CHOICE",
 3934            "members": [
 3935              {
 3936                "type": "SYMBOL",
 3937                "name": "ms_call_modifier"
 3938              },
 3939              {
 3940                "type": "BLANK"
 3941              }
 3942            ]
 3943          },
 3944          {
 3945            "type": "SYMBOL",
 3946            "name": "_type_declarator"
 3947          },
 3948          {
 3949            "type": "STRING",
 3950            "value": ")"
 3951          }
 3952        ]
 3953      }
 3954    },
 3955    "abstract_parenthesized_declarator": {
 3956      "type": "PREC",
 3957      "value": 1,
 3958      "content": {
 3959        "type": "SEQ",
 3960        "members": [
 3961          {
 3962            "type": "STRING",
 3963            "value": "("
 3964          },
 3965          {
 3966            "type": "CHOICE",
 3967            "members": [
 3968              {
 3969                "type": "SYMBOL",
 3970                "name": "ms_call_modifier"
 3971              },
 3972              {
 3973                "type": "BLANK"
 3974              }
 3975            ]
 3976          },
 3977          {
 3978            "type": "SYMBOL",
 3979            "name": "_abstract_declarator"
 3980          },
 3981          {
 3982            "type": "STRING",
 3983            "value": ")"
 3984          }
 3985        ]
 3986      }
 3987    },
 3988    "attributed_declarator": {
 3989      "type": "PREC_RIGHT",
 3990      "value": 0,
 3991      "content": {
 3992        "type": "SEQ",
 3993        "members": [
 3994          {
 3995            "type": "SYMBOL",
 3996            "name": "_declarator"
 3997          },
 3998          {
 3999            "type": "REPEAT1",
 4000            "content": {
 4001              "type": "SYMBOL",
 4002              "name": "attribute_declaration"
 4003            }
 4004          }
 4005        ]
 4006      }
 4007    },
 4008    "attributed_field_declarator": {
 4009      "type": "PREC_RIGHT",
 4010      "value": 0,
 4011      "content": {
 4012        "type": "SEQ",
 4013        "members": [
 4014          {
 4015            "type": "SYMBOL",
 4016            "name": "_field_declarator"
 4017          },
 4018          {
 4019            "type": "REPEAT1",
 4020            "content": {
 4021              "type": "SYMBOL",
 4022              "name": "attribute_declaration"
 4023            }
 4024          }
 4025        ]
 4026      }
 4027    },
 4028    "attributed_type_declarator": {
 4029      "type": "PREC_RIGHT",
 4030      "value": 0,
 4031      "content": {
 4032        "type": "SEQ",
 4033        "members": [
 4034          {
 4035            "type": "SYMBOL",
 4036            "name": "_type_declarator"
 4037          },
 4038          {
 4039            "type": "REPEAT1",
 4040            "content": {
 4041              "type": "SYMBOL",
 4042              "name": "attribute_declaration"
 4043            }
 4044          }
 4045        ]
 4046      }
 4047    },
 4048    "pointer_declarator": {
 4049      "type": "PREC_DYNAMIC",
 4050      "value": 1,
 4051      "content": {
 4052        "type": "PREC_RIGHT",
 4053        "value": 0,
 4054        "content": {
 4055          "type": "SEQ",
 4056          "members": [
 4057            {
 4058              "type": "CHOICE",
 4059              "members": [
 4060                {
 4061                  "type": "SYMBOL",
 4062                  "name": "ms_based_modifier"
 4063                },
 4064                {
 4065                  "type": "BLANK"
 4066                }
 4067              ]
 4068            },
 4069            {
 4070              "type": "STRING",
 4071              "value": "*"
 4072            },
 4073            {
 4074              "type": "REPEAT",
 4075              "content": {
 4076                "type": "SYMBOL",
 4077                "name": "ms_pointer_modifier"
 4078              }
 4079            },
 4080            {
 4081              "type": "REPEAT",
 4082              "content": {
 4083                "type": "SYMBOL",
 4084                "name": "type_qualifier"
 4085              }
 4086            },
 4087            {
 4088              "type": "FIELD",
 4089              "name": "declarator",
 4090              "content": {
 4091                "type": "SYMBOL",
 4092                "name": "_declarator"
 4093              }
 4094            }
 4095          ]
 4096        }
 4097      }
 4098    },
 4099    "pointer_field_declarator": {
 4100      "type": "PREC_DYNAMIC",
 4101      "value": 1,
 4102      "content": {
 4103        "type": "PREC_RIGHT",
 4104        "value": 0,
 4105        "content": {
 4106          "type": "SEQ",
 4107          "members": [
 4108            {
 4109              "type": "CHOICE",
 4110              "members": [
 4111                {
 4112                  "type": "SYMBOL",
 4113                  "name": "ms_based_modifier"
 4114                },
 4115                {
 4116                  "type": "BLANK"
 4117                }
 4118              ]
 4119            },
 4120            {
 4121              "type": "STRING",
 4122              "value": "*"
 4123            },
 4124            {
 4125              "type": "REPEAT",
 4126              "content": {
 4127                "type": "SYMBOL",
 4128                "name": "ms_pointer_modifier"
 4129              }
 4130            },
 4131            {
 4132              "type": "REPEAT",
 4133              "content": {
 4134                "type": "SYMBOL",
 4135                "name": "type_qualifier"
 4136              }
 4137            },
 4138            {
 4139              "type": "FIELD",
 4140              "name": "declarator",
 4141              "content": {
 4142                "type": "SYMBOL",
 4143                "name": "_field_declarator"
 4144              }
 4145            }
 4146          ]
 4147        }
 4148      }
 4149    },
 4150    "pointer_type_declarator": {
 4151      "type": "PREC_DYNAMIC",
 4152      "value": 1,
 4153      "content": {
 4154        "type": "PREC_RIGHT",
 4155        "value": 0,
 4156        "content": {
 4157          "type": "SEQ",
 4158          "members": [
 4159            {
 4160              "type": "CHOICE",
 4161              "members": [
 4162                {
 4163                  "type": "SYMBOL",
 4164                  "name": "ms_based_modifier"
 4165                },
 4166                {
 4167                  "type": "BLANK"
 4168                }
 4169              ]
 4170            },
 4171            {
 4172              "type": "STRING",
 4173              "value": "*"
 4174            },
 4175            {
 4176              "type": "REPEAT",
 4177              "content": {
 4178                "type": "SYMBOL",
 4179                "name": "ms_pointer_modifier"
 4180              }
 4181            },
 4182            {
 4183              "type": "REPEAT",
 4184              "content": {
 4185                "type": "SYMBOL",
 4186                "name": "type_qualifier"
 4187              }
 4188            },
 4189            {
 4190              "type": "FIELD",
 4191              "name": "declarator",
 4192              "content": {
 4193                "type": "SYMBOL",
 4194                "name": "_type_declarator"
 4195              }
 4196            }
 4197          ]
 4198        }
 4199      }
 4200    },
 4201    "abstract_pointer_declarator": {
 4202      "type": "PREC_DYNAMIC",
 4203      "value": 1,
 4204      "content": {
 4205        "type": "PREC_RIGHT",
 4206        "value": 0,
 4207        "content": {
 4208          "type": "SEQ",
 4209          "members": [
 4210            {
 4211              "type": "STRING",
 4212              "value": "*"
 4213            },
 4214            {
 4215              "type": "REPEAT",
 4216              "content": {
 4217                "type": "SYMBOL",
 4218                "name": "ms_pointer_modifier"
 4219              }
 4220            },
 4221            {
 4222              "type": "REPEAT",
 4223              "content": {
 4224                "type": "SYMBOL",
 4225                "name": "type_qualifier"
 4226              }
 4227            },
 4228            {
 4229              "type": "FIELD",
 4230              "name": "declarator",
 4231              "content": {
 4232                "type": "CHOICE",
 4233                "members": [
 4234                  {
 4235                    "type": "SYMBOL",
 4236                    "name": "_abstract_declarator"
 4237                  },
 4238                  {
 4239                    "type": "BLANK"
 4240                  }
 4241                ]
 4242              }
 4243            }
 4244          ]
 4245        }
 4246      }
 4247    },
 4248    "function_declarator": {
 4249      "type": "PREC_DYNAMIC",
 4250      "value": 1,
 4251      "content": {
 4252        "type": "SEQ",
 4253        "members": [
 4254          {
 4255            "type": "FIELD",
 4256            "name": "declarator",
 4257            "content": {
 4258              "type": "SYMBOL",
 4259              "name": "_declarator"
 4260            }
 4261          },
 4262          {
 4263            "type": "SYMBOL",
 4264            "name": "_function_declarator_seq"
 4265          }
 4266        ]
 4267      }
 4268    },
 4269    "_function_declaration_declarator": {
 4270      "type": "PREC_RIGHT",
 4271      "value": 1,
 4272      "content": {
 4273        "type": "SEQ",
 4274        "members": [
 4275          {
 4276            "type": "FIELD",
 4277            "name": "declarator",
 4278            "content": {
 4279              "type": "SYMBOL",
 4280              "name": "_declarator"
 4281            }
 4282          },
 4283          {
 4284            "type": "FIELD",
 4285            "name": "parameters",
 4286            "content": {
 4287              "type": "SYMBOL",
 4288              "name": "parameter_list"
 4289            }
 4290          },
 4291          {
 4292            "type": "CHOICE",
 4293            "members": [
 4294              {
 4295                "type": "SYMBOL",
 4296                "name": "gnu_asm_expression"
 4297              },
 4298              {
 4299                "type": "BLANK"
 4300              }
 4301            ]
 4302          },
 4303          {
 4304            "type": "REPEAT",
 4305            "content": {
 4306              "type": "SYMBOL",
 4307              "name": "attribute_specifier"
 4308            }
 4309          }
 4310        ]
 4311      }
 4312    },
 4313    "function_field_declarator": {
 4314      "type": "PREC_DYNAMIC",
 4315      "value": 1,
 4316      "content": {
 4317        "type": "SEQ",
 4318        "members": [
 4319          {
 4320            "type": "FIELD",
 4321            "name": "declarator",
 4322            "content": {
 4323              "type": "SYMBOL",
 4324              "name": "_field_declarator"
 4325            }
 4326          },
 4327          {
 4328            "type": "SYMBOL",
 4329            "name": "_function_declarator_seq"
 4330          }
 4331        ]
 4332      }
 4333    },
 4334    "function_type_declarator": {
 4335      "type": "PREC",
 4336      "value": 1,
 4337      "content": {
 4338        "type": "SEQ",
 4339        "members": [
 4340          {
 4341            "type": "FIELD",
 4342            "name": "declarator",
 4343            "content": {
 4344              "type": "SYMBOL",
 4345              "name": "_type_declarator"
 4346            }
 4347          },
 4348          {
 4349            "type": "FIELD",
 4350            "name": "parameters",
 4351            "content": {
 4352              "type": "SYMBOL",
 4353              "name": "parameter_list"
 4354            }
 4355          }
 4356        ]
 4357      }
 4358    },
 4359    "abstract_function_declarator": {
 4360      "type": "SEQ",
 4361      "members": [
 4362        {
 4363          "type": "FIELD",
 4364          "name": "declarator",
 4365          "content": {
 4366            "type": "CHOICE",
 4367            "members": [
 4368              {
 4369                "type": "SYMBOL",
 4370                "name": "_abstract_declarator"
 4371              },
 4372              {
 4373                "type": "BLANK"
 4374              }
 4375            ]
 4376          }
 4377        },
 4378        {
 4379          "type": "SYMBOL",
 4380          "name": "_function_declarator_seq"
 4381        }
 4382      ]
 4383    },
 4384    "_old_style_function_declarator": {
 4385      "type": "SEQ",
 4386      "members": [
 4387        {
 4388          "type": "FIELD",
 4389          "name": "declarator",
 4390          "content": {
 4391            "type": "SYMBOL",
 4392            "name": "_declarator"
 4393          }
 4394        },
 4395        {
 4396          "type": "FIELD",
 4397          "name": "parameters",
 4398          "content": {
 4399            "type": "ALIAS",
 4400            "content": {
 4401              "type": "SYMBOL",
 4402              "name": "_old_style_parameter_list"
 4403            },
 4404            "named": true,
 4405            "value": "parameter_list"
 4406          }
 4407        }
 4408      ]
 4409    },
 4410    "array_declarator": {
 4411      "type": "PREC",
 4412      "value": 1,
 4413      "content": {
 4414        "type": "SEQ",
 4415        "members": [
 4416          {
 4417            "type": "FIELD",
 4418            "name": "declarator",
 4419            "content": {
 4420              "type": "SYMBOL",
 4421              "name": "_declarator"
 4422            }
 4423          },
 4424          {
 4425            "type": "STRING",
 4426            "value": "["
 4427          },
 4428          {
 4429            "type": "REPEAT",
 4430            "content": {
 4431              "type": "CHOICE",
 4432              "members": [
 4433                {
 4434                  "type": "SYMBOL",
 4435                  "name": "type_qualifier"
 4436                },
 4437                {
 4438                  "type": "STRING",
 4439                  "value": "static"
 4440                }
 4441              ]
 4442            }
 4443          },
 4444          {
 4445            "type": "FIELD",
 4446            "name": "size",
 4447            "content": {
 4448              "type": "CHOICE",
 4449              "members": [
 4450                {
 4451                  "type": "CHOICE",
 4452                  "members": [
 4453                    {
 4454                      "type": "SYMBOL",
 4455                      "name": "expression"
 4456                    },
 4457                    {
 4458                      "type": "STRING",
 4459                      "value": "*"
 4460                    }
 4461                  ]
 4462                },
 4463                {
 4464                  "type": "BLANK"
 4465                }
 4466              ]
 4467            }
 4468          },
 4469          {
 4470            "type": "STRING",
 4471            "value": "]"
 4472          }
 4473        ]
 4474      }
 4475    },
 4476    "array_field_declarator": {
 4477      "type": "PREC",
 4478      "value": 1,
 4479      "content": {
 4480        "type": "SEQ",
 4481        "members": [
 4482          {
 4483            "type": "FIELD",
 4484            "name": "declarator",
 4485            "content": {
 4486              "type": "SYMBOL",
 4487              "name": "_field_declarator"
 4488            }
 4489          },
 4490          {
 4491            "type": "STRING",
 4492            "value": "["
 4493          },
 4494          {
 4495            "type": "REPEAT",
 4496            "content": {
 4497              "type": "CHOICE",
 4498              "members": [
 4499                {
 4500                  "type": "SYMBOL",
 4501                  "name": "type_qualifier"
 4502                },
 4503                {
 4504                  "type": "STRING",
 4505                  "value": "static"
 4506                }
 4507              ]
 4508            }
 4509          },
 4510          {
 4511            "type": "FIELD",
 4512            "name": "size",
 4513            "content": {
 4514              "type": "CHOICE",
 4515              "members": [
 4516                {
 4517                  "type": "CHOICE",
 4518                  "members": [
 4519                    {
 4520                      "type": "SYMBOL",
 4521                      "name": "expression"
 4522                    },
 4523                    {
 4524                      "type": "STRING",
 4525                      "value": "*"
 4526                    }
 4527                  ]
 4528                },
 4529                {
 4530                  "type": "BLANK"
 4531                }
 4532              ]
 4533            }
 4534          },
 4535          {
 4536            "type": "STRING",
 4537            "value": "]"
 4538          }
 4539        ]
 4540      }
 4541    },
 4542    "array_type_declarator": {
 4543      "type": "PREC",
 4544      "value": 1,
 4545      "content": {
 4546        "type": "SEQ",
 4547        "members": [
 4548          {
 4549            "type": "FIELD",
 4550            "name": "declarator",
 4551            "content": {
 4552              "type": "SYMBOL",
 4553              "name": "_type_declarator"
 4554            }
 4555          },
 4556          {
 4557            "type": "STRING",
 4558            "value": "["
 4559          },
 4560          {
 4561            "type": "REPEAT",
 4562            "content": {
 4563              "type": "CHOICE",
 4564              "members": [
 4565                {
 4566                  "type": "SYMBOL",
 4567                  "name": "type_qualifier"
 4568                },
 4569                {
 4570                  "type": "STRING",
 4571                  "value": "static"
 4572                }
 4573              ]
 4574            }
 4575          },
 4576          {
 4577            "type": "FIELD",
 4578            "name": "size",
 4579            "content": {
 4580              "type": "CHOICE",
 4581              "members": [
 4582                {
 4583                  "type": "CHOICE",
 4584                  "members": [
 4585                    {
 4586                      "type": "SYMBOL",
 4587                      "name": "expression"
 4588                    },
 4589                    {
 4590                      "type": "STRING",
 4591                      "value": "*"
 4592                    }
 4593                  ]
 4594                },
 4595                {
 4596                  "type": "BLANK"
 4597                }
 4598              ]
 4599            }
 4600          },
 4601          {
 4602            "type": "STRING",
 4603            "value": "]"
 4604          }
 4605        ]
 4606      }
 4607    },
 4608    "abstract_array_declarator": {
 4609      "type": "PREC",
 4610      "value": 1,
 4611      "content": {
 4612        "type": "SEQ",
 4613        "members": [
 4614          {
 4615            "type": "FIELD",
 4616            "name": "declarator",
 4617            "content": {
 4618              "type": "CHOICE",
 4619              "members": [
 4620                {
 4621                  "type": "SYMBOL",
 4622                  "name": "_abstract_declarator"
 4623                },
 4624                {
 4625                  "type": "BLANK"
 4626                }
 4627              ]
 4628            }
 4629          },
 4630          {
 4631            "type": "STRING",
 4632            "value": "["
 4633          },
 4634          {
 4635            "type": "REPEAT",
 4636            "content": {
 4637              "type": "CHOICE",
 4638              "members": [
 4639                {
 4640                  "type": "SYMBOL",
 4641                  "name": "type_qualifier"
 4642                },
 4643                {
 4644                  "type": "STRING",
 4645                  "value": "static"
 4646                }
 4647              ]
 4648            }
 4649          },
 4650          {
 4651            "type": "FIELD",
 4652            "name": "size",
 4653            "content": {
 4654              "type": "CHOICE",
 4655              "members": [
 4656                {
 4657                  "type": "CHOICE",
 4658                  "members": [
 4659                    {
 4660                      "type": "SYMBOL",
 4661                      "name": "expression"
 4662                    },
 4663                    {
 4664                      "type": "STRING",
 4665                      "value": "*"
 4666                    }
 4667                  ]
 4668                },
 4669                {
 4670                  "type": "BLANK"
 4671                }
 4672              ]
 4673            }
 4674          },
 4675          {
 4676            "type": "STRING",
 4677            "value": "]"
 4678          }
 4679        ]
 4680      }
 4681    },
 4682    "init_declarator": {
 4683      "type": "CHOICE",
 4684      "members": [
 4685        {
 4686          "type": "SEQ",
 4687          "members": [
 4688            {
 4689              "type": "FIELD",
 4690              "name": "declarator",
 4691              "content": {
 4692                "type": "SYMBOL",
 4693                "name": "_declarator"
 4694              }
 4695            },
 4696            {
 4697              "type": "STRING",
 4698              "value": "="
 4699            },
 4700            {
 4701              "type": "FIELD",
 4702              "name": "value",
 4703              "content": {
 4704                "type": "CHOICE",
 4705                "members": [
 4706                  {
 4707                    "type": "SYMBOL",
 4708                    "name": "initializer_list"
 4709                  },
 4710                  {
 4711                    "type": "SYMBOL",
 4712                    "name": "expression"
 4713                  }
 4714                ]
 4715              }
 4716            }
 4717          ]
 4718        },
 4719        {
 4720          "type": "SEQ",
 4721          "members": [
 4722            {
 4723              "type": "FIELD",
 4724              "name": "declarator",
 4725              "content": {
 4726                "type": "SYMBOL",
 4727                "name": "_declarator"
 4728              }
 4729            },
 4730            {
 4731              "type": "FIELD",
 4732              "name": "value",
 4733              "content": {
 4734                "type": "CHOICE",
 4735                "members": [
 4736                  {
 4737                    "type": "SYMBOL",
 4738                    "name": "argument_list"
 4739                  },
 4740                  {
 4741                    "type": "SYMBOL",
 4742                    "name": "initializer_list"
 4743                  }
 4744                ]
 4745              }
 4746            }
 4747          ]
 4748        }
 4749      ]
 4750    },
 4751    "compound_statement": {
 4752      "type": "PREC",
 4753      "value": -1,
 4754      "content": {
 4755        "type": "SEQ",
 4756        "members": [
 4757          {
 4758            "type": "STRING",
 4759            "value": "{"
 4760          },
 4761          {
 4762            "type": "REPEAT",
 4763            "content": {
 4764              "type": "SYMBOL",
 4765              "name": "_block_item"
 4766            }
 4767          },
 4768          {
 4769            "type": "STRING",
 4770            "value": "}"
 4771          }
 4772        ]
 4773      }
 4774    },
 4775    "storage_class_specifier": {
 4776      "type": "CHOICE",
 4777      "members": [
 4778        {
 4779          "type": "STRING",
 4780          "value": "extern"
 4781        },
 4782        {
 4783          "type": "STRING",
 4784          "value": "static"
 4785        },
 4786        {
 4787          "type": "STRING",
 4788          "value": "register"
 4789        },
 4790        {
 4791          "type": "STRING",
 4792          "value": "inline"
 4793        },
 4794        {
 4795          "type": "STRING",
 4796          "value": "__inline"
 4797        },
 4798        {
 4799          "type": "STRING",
 4800          "value": "__inline__"
 4801        },
 4802        {
 4803          "type": "STRING",
 4804          "value": "__forceinline"
 4805        },
 4806        {
 4807          "type": "STRING",
 4808          "value": "thread_local"
 4809        },
 4810        {
 4811          "type": "STRING",
 4812          "value": "__thread"
 4813        },
 4814        {
 4815          "type": "STRING",
 4816          "value": "thread_local"
 4817        }
 4818      ]
 4819    },
 4820    "type_qualifier": {
 4821      "type": "CHOICE",
 4822      "members": [
 4823        {
 4824          "type": "CHOICE",
 4825          "members": [
 4826            {
 4827              "type": "CHOICE",
 4828              "members": [
 4829                {
 4830                  "type": "STRING",
 4831                  "value": "const"
 4832                },
 4833                {
 4834                  "type": "STRING",
 4835                  "value": "constexpr"
 4836                },
 4837                {
 4838                  "type": "STRING",
 4839                  "value": "volatile"
 4840                },
 4841                {
 4842                  "type": "STRING",
 4843                  "value": "restrict"
 4844                },
 4845                {
 4846                  "type": "STRING",
 4847                  "value": "__restrict__"
 4848                },
 4849                {
 4850                  "type": "STRING",
 4851                  "value": "__extension__"
 4852                },
 4853                {
 4854                  "type": "STRING",
 4855                  "value": "_Atomic"
 4856                },
 4857                {
 4858                  "type": "STRING",
 4859                  "value": "_Noreturn"
 4860                },
 4861                {
 4862                  "type": "STRING",
 4863                  "value": "noreturn"
 4864                },
 4865                {
 4866                  "type": "SYMBOL",
 4867                  "name": "alignas_qualifier"
 4868                }
 4869              ]
 4870            },
 4871            {
 4872              "type": "STRING",
 4873              "value": "mutable"
 4874            },
 4875            {
 4876              "type": "STRING",
 4877              "value": "constinit"
 4878            },
 4879            {
 4880              "type": "STRING",
 4881              "value": "consteval"
 4882            }
 4883          ]
 4884        },
 4885        {
 4886          "type": "STRING",
 4887          "value": "__shared__"
 4888        },
 4889        {
 4890          "type": "STRING",
 4891          "value": "__global__"
 4892        },
 4893        {
 4894          "type": "STRING",
 4895          "value": "__local__"
 4896        },
 4897        {
 4898          "type": "STRING",
 4899          "value": "__constant__"
 4900        },
 4901        {
 4902          "type": "STRING",
 4903          "value": "__managed__"
 4904        },
 4905        {
 4906          "type": "STRING",
 4907          "value": "__grid_constant__"
 4908        }
 4909      ]
 4910    },
 4911    "alignas_qualifier": {
 4912      "type": "SEQ",
 4913      "members": [
 4914        {
 4915          "type": "CHOICE",
 4916          "members": [
 4917            {
 4918              "type": "STRING",
 4919              "value": "alignas"
 4920            },
 4921            {
 4922              "type": "STRING",
 4923              "value": "_Alignas"
 4924            }
 4925          ]
 4926        },
 4927        {
 4928          "type": "STRING",
 4929          "value": "("
 4930        },
 4931        {
 4932          "type": "CHOICE",
 4933          "members": [
 4934            {
 4935              "type": "SYMBOL",
 4936              "name": "expression"
 4937            },
 4938            {
 4939              "type": "SYMBOL",
 4940              "name": "type_descriptor"
 4941            }
 4942          ]
 4943        },
 4944        {
 4945          "type": "STRING",
 4946          "value": ")"
 4947        }
 4948      ]
 4949    },
 4950    "type_specifier": {
 4951      "type": "CHOICE",
 4952      "members": [
 4953        {
 4954          "type": "SYMBOL",
 4955          "name": "struct_specifier"
 4956        },
 4957        {
 4958          "type": "SYMBOL",
 4959          "name": "union_specifier"
 4960        },
 4961        {
 4962          "type": "SYMBOL",
 4963          "name": "enum_specifier"
 4964        },
 4965        {
 4966          "type": "SYMBOL",
 4967          "name": "class_specifier"
 4968        },
 4969        {
 4970          "type": "SYMBOL",
 4971          "name": "sized_type_specifier"
 4972        },
 4973        {
 4974          "type": "SYMBOL",
 4975          "name": "primitive_type"
 4976        },
 4977        {
 4978          "type": "SYMBOL",
 4979          "name": "template_type"
 4980        },
 4981        {
 4982          "type": "SYMBOL",
 4983          "name": "dependent_type"
 4984        },
 4985        {
 4986          "type": "SYMBOL",
 4987          "name": "placeholder_type_specifier"
 4988        },
 4989        {
 4990          "type": "SYMBOL",
 4991          "name": "decltype"
 4992        },
 4993        {
 4994          "type": "PREC_RIGHT",
 4995          "value": 0,
 4996          "content": {
 4997            "type": "CHOICE",
 4998            "members": [
 4999              {
 5000                "type": "ALIAS",
 5001                "content": {
 5002                  "type": "SYMBOL",
 5003                  "name": "qualified_type_identifier"
 5004                },
 5005                "named": true,
 5006                "value": "qualified_identifier"
 5007              },
 5008              {
 5009                "type": "SYMBOL",
 5010                "name": "_type_identifier"
 5011              }
 5012            ]
 5013          }
 5014        }
 5015      ]
 5016    },
 5017    "sized_type_specifier": {
 5018      "type": "CHOICE",
 5019      "members": [
 5020        {
 5021          "type": "SEQ",
 5022          "members": [
 5023            {
 5024              "type": "REPEAT",
 5025              "content": {
 5026                "type": "CHOICE",
 5027                "members": [
 5028                  {
 5029                    "type": "STRING",
 5030                    "value": "signed"
 5031                  },
 5032                  {
 5033                    "type": "STRING",
 5034                    "value": "unsigned"
 5035                  },
 5036                  {
 5037                    "type": "STRING",
 5038                    "value": "long"
 5039                  },
 5040                  {
 5041                    "type": "STRING",
 5042                    "value": "short"
 5043                  }
 5044                ]
 5045              }
 5046            },
 5047            {
 5048              "type": "FIELD",
 5049              "name": "type",
 5050              "content": {
 5051                "type": "CHOICE",
 5052                "members": [
 5053                  {
 5054                    "type": "CHOICE",
 5055                    "members": [
 5056                      {
 5057                        "type": "PREC_DYNAMIC",
 5058                        "value": -1,
 5059                        "content": {
 5060                          "type": "SYMBOL",
 5061                          "name": "_type_identifier"
 5062                        }
 5063                      },
 5064                      {
 5065                        "type": "SYMBOL",
 5066                        "name": "primitive_type"
 5067                      }
 5068                    ]
 5069                  },
 5070                  {
 5071                    "type": "BLANK"
 5072                  }
 5073                ]
 5074              }
 5075            },
 5076            {
 5077              "type": "REPEAT1",
 5078              "content": {
 5079                "type": "CHOICE",
 5080                "members": [
 5081                  {
 5082                    "type": "STRING",
 5083                    "value": "signed"
 5084                  },
 5085                  {
 5086                    "type": "STRING",
 5087                    "value": "unsigned"
 5088                  },
 5089                  {
 5090                    "type": "STRING",
 5091                    "value": "long"
 5092                  },
 5093                  {
 5094                    "type": "STRING",
 5095                    "value": "short"
 5096                  }
 5097                ]
 5098              }
 5099            }
 5100          ]
 5101        },
 5102        {
 5103          "type": "SEQ",
 5104          "members": [
 5105            {
 5106              "type": "REPEAT1",
 5107              "content": {
 5108                "type": "CHOICE",
 5109                "members": [
 5110                  {
 5111                    "type": "STRING",
 5112                    "value": "signed"
 5113                  },
 5114                  {
 5115                    "type": "STRING",
 5116                    "value": "unsigned"
 5117                  },
 5118                  {
 5119                    "type": "STRING",
 5120                    "value": "long"
 5121                  },
 5122                  {
 5123                    "type": "STRING",
 5124                    "value": "short"
 5125                  }
 5126                ]
 5127              }
 5128            },
 5129            {
 5130              "type": "FIELD",
 5131              "name": "type",
 5132              "content": {
 5133                "type": "CHOICE",
 5134                "members": [
 5135                  {
 5136                    "type": "CHOICE",
 5137                    "members": [
 5138                      {
 5139                        "type": "PREC_DYNAMIC",
 5140                        "value": -1,
 5141                        "content": {
 5142                          "type": "SYMBOL",
 5143                          "name": "_type_identifier"
 5144                        }
 5145                      },
 5146                      {
 5147                        "type": "SYMBOL",
 5148                        "name": "primitive_type"
 5149                      }
 5150                    ]
 5151                  },
 5152                  {
 5153                    "type": "BLANK"
 5154                  }
 5155                ]
 5156              }
 5157            },
 5158            {
 5159              "type": "REPEAT",
 5160              "content": {
 5161                "type": "CHOICE",
 5162                "members": [
 5163                  {
 5164                    "type": "STRING",
 5165                    "value": "signed"
 5166                  },
 5167                  {
 5168                    "type": "STRING",
 5169                    "value": "unsigned"
 5170                  },
 5171                  {
 5172                    "type": "STRING",
 5173                    "value": "long"
 5174                  },
 5175                  {
 5176                    "type": "STRING",
 5177                    "value": "short"
 5178                  }
 5179                ]
 5180              }
 5181            }
 5182          ]
 5183        }
 5184      ]
 5185    },
 5186    "primitive_type": {
 5187      "type": "TOKEN",
 5188      "content": {
 5189        "type": "CHOICE",
 5190        "members": [
 5191          {
 5192            "type": "STRING",
 5193            "value": "bool"
 5194          },
 5195          {
 5196            "type": "STRING",
 5197            "value": "char"
 5198          },
 5199          {
 5200            "type": "STRING",
 5201            "value": "int"
 5202          },
 5203          {
 5204            "type": "STRING",
 5205            "value": "float"
 5206          },
 5207          {
 5208            "type": "STRING",
 5209            "value": "double"
 5210          },
 5211          {
 5212            "type": "STRING",
 5213            "value": "void"
 5214          },
 5215          {
 5216            "type": "STRING",
 5217            "value": "size_t"
 5218          },
 5219          {
 5220            "type": "STRING",
 5221            "value": "ssize_t"
 5222          },
 5223          {
 5224            "type": "STRING",
 5225            "value": "ptrdiff_t"
 5226          },
 5227          {
 5228            "type": "STRING",
 5229            "value": "intptr_t"
 5230          },
 5231          {
 5232            "type": "STRING",
 5233            "value": "uintptr_t"
 5234          },
 5235          {
 5236            "type": "STRING",
 5237            "value": "charptr_t"
 5238          },
 5239          {
 5240            "type": "STRING",
 5241            "value": "nullptr_t"
 5242          },
 5243          {
 5244            "type": "STRING",
 5245            "value": "max_align_t"
 5246          },
 5247          {
 5248            "type": "STRING",
 5249            "value": "int8_t"
 5250          },
 5251          {
 5252            "type": "STRING",
 5253            "value": "int16_t"
 5254          },
 5255          {
 5256            "type": "STRING",
 5257            "value": "int32_t"
 5258          },
 5259          {
 5260            "type": "STRING",
 5261            "value": "int64_t"
 5262          },
 5263          {
 5264            "type": "STRING",
 5265            "value": "uint8_t"
 5266          },
 5267          {
 5268            "type": "STRING",
 5269            "value": "uint16_t"
 5270          },
 5271          {
 5272            "type": "STRING",
 5273            "value": "uint32_t"
 5274          },
 5275          {
 5276            "type": "STRING",
 5277            "value": "uint64_t"
 5278          },
 5279          {
 5280            "type": "STRING",
 5281            "value": "char8_t"
 5282          },
 5283          {
 5284            "type": "STRING",
 5285            "value": "char16_t"
 5286          },
 5287          {
 5288            "type": "STRING",
 5289            "value": "char32_t"
 5290          },
 5291          {
 5292            "type": "STRING",
 5293            "value": "char64_t"
 5294          }
 5295        ]
 5296      }
 5297    },
 5298    "enum_specifier": {
 5299      "type": "PREC_RIGHT",
 5300      "value": 0,
 5301      "content": {
 5302        "type": "SEQ",
 5303        "members": [
 5304          {
 5305            "type": "STRING",
 5306            "value": "enum"
 5307          },
 5308          {
 5309            "type": "CHOICE",
 5310            "members": [
 5311              {
 5312                "type": "CHOICE",
 5313                "members": [
 5314                  {
 5315                    "type": "STRING",
 5316                    "value": "class"
 5317                  },
 5318                  {
 5319                    "type": "STRING",
 5320                    "value": "struct"
 5321                  }
 5322                ]
 5323              },
 5324              {
 5325                "type": "BLANK"
 5326              }
 5327            ]
 5328          },
 5329          {
 5330            "type": "CHOICE",
 5331            "members": [
 5332              {
 5333                "type": "SEQ",
 5334                "members": [
 5335                  {
 5336                    "type": "FIELD",
 5337                    "name": "name",
 5338                    "content": {
 5339                      "type": "SYMBOL",
 5340                      "name": "_class_name"
 5341                    }
 5342                  },
 5343                  {
 5344                    "type": "CHOICE",
 5345                    "members": [
 5346                      {
 5347                        "type": "SYMBOL",
 5348                        "name": "_enum_base_clause"
 5349                      },
 5350                      {
 5351                        "type": "BLANK"
 5352                      }
 5353                    ]
 5354                  },
 5355                  {
 5356                    "type": "CHOICE",
 5357                    "members": [
 5358                      {
 5359                        "type": "FIELD",
 5360                        "name": "body",
 5361                        "content": {
 5362                          "type": "SYMBOL",
 5363                          "name": "enumerator_list"
 5364                        }
 5365                      },
 5366                      {
 5367                        "type": "BLANK"
 5368                      }
 5369                    ]
 5370                  }
 5371                ]
 5372              },
 5373              {
 5374                "type": "FIELD",
 5375                "name": "body",
 5376                "content": {
 5377                  "type": "SYMBOL",
 5378                  "name": "enumerator_list"
 5379                }
 5380              }
 5381            ]
 5382          },
 5383          {
 5384            "type": "CHOICE",
 5385            "members": [
 5386              {
 5387                "type": "SYMBOL",
 5388                "name": "attribute_specifier"
 5389              },
 5390              {
 5391                "type": "BLANK"
 5392              }
 5393            ]
 5394          }
 5395        ]
 5396      }
 5397    },
 5398    "enumerator_list": {
 5399      "type": "SEQ",
 5400      "members": [
 5401        {
 5402          "type": "STRING",
 5403          "value": "{"
 5404        },
 5405        {
 5406          "type": "REPEAT",
 5407          "content": {
 5408            "type": "CHOICE",
 5409            "members": [
 5410              {
 5411                "type": "SEQ",
 5412                "members": [
 5413                  {
 5414                    "type": "SYMBOL",
 5415                    "name": "enumerator"
 5416                  },
 5417                  {
 5418                    "type": "STRING",
 5419                    "value": ","
 5420                  }
 5421                ]
 5422              },
 5423              {
 5424                "type": "ALIAS",
 5425                "content": {
 5426                  "type": "SYMBOL",
 5427                  "name": "preproc_if_in_enumerator_list"
 5428                },
 5429                "named": true,
 5430                "value": "preproc_if"
 5431              },
 5432              {
 5433                "type": "ALIAS",
 5434                "content": {
 5435                  "type": "SYMBOL",
 5436                  "name": "preproc_ifdef_in_enumerator_list"
 5437                },
 5438                "named": true,
 5439                "value": "preproc_ifdef"
 5440              },
 5441              {
 5442                "type": "SEQ",
 5443                "members": [
 5444                  {
 5445                    "type": "SYMBOL",
 5446                    "name": "preproc_call"
 5447                  },
 5448                  {
 5449                    "type": "STRING",
 5450                    "value": ","
 5451                  }
 5452                ]
 5453              }
 5454            ]
 5455          }
 5456        },
 5457        {
 5458          "type": "CHOICE",
 5459          "members": [
 5460            {
 5461              "type": "SEQ",
 5462              "members": [
 5463                {
 5464                  "type": "CHOICE",
 5465                  "members": [
 5466                    {
 5467                      "type": "SYMBOL",
 5468                      "name": "enumerator"
 5469                    },
 5470                    {
 5471                      "type": "ALIAS",
 5472                      "content": {
 5473                        "type": "SYMBOL",
 5474                        "name": "preproc_if_in_enumerator_list_no_comma"
 5475                      },
 5476                      "named": true,
 5477                      "value": "preproc_if"
 5478                    },
 5479                    {
 5480                      "type": "ALIAS",
 5481                      "content": {
 5482                        "type": "SYMBOL",
 5483                        "name": "preproc_ifdef_in_enumerator_list_no_comma"
 5484                      },
 5485                      "named": true,
 5486                      "value": "preproc_ifdef"
 5487                    },
 5488                    {
 5489                      "type": "SYMBOL",
 5490                      "name": "preproc_call"
 5491                    }
 5492                  ]
 5493                }
 5494              ]
 5495            },
 5496            {
 5497              "type": "BLANK"
 5498            }
 5499          ]
 5500        },
 5501        {
 5502          "type": "STRING",
 5503          "value": "}"
 5504        }
 5505      ]
 5506    },
 5507    "struct_specifier": {
 5508      "type": "SEQ",
 5509      "members": [
 5510        {
 5511          "type": "STRING",
 5512          "value": "struct"
 5513        },
 5514        {
 5515          "type": "SYMBOL",
 5516          "name": "_class_declaration"
 5517        }
 5518      ]
 5519    },
 5520    "union_specifier": {
 5521      "type": "SEQ",
 5522      "members": [
 5523        {
 5524          "type": "STRING",
 5525          "value": "union"
 5526        },
 5527        {
 5528          "type": "SYMBOL",
 5529          "name": "_class_declaration"
 5530        }
 5531      ]
 5532    },
 5533    "field_declaration_list": {
 5534      "type": "SEQ",
 5535      "members": [
 5536        {
 5537          "type": "STRING",
 5538          "value": "{"
 5539        },
 5540        {
 5541          "type": "REPEAT",
 5542          "content": {
 5543            "type": "SYMBOL",
 5544            "name": "_field_declaration_list_item"
 5545          }
 5546        },
 5547        {
 5548          "type": "STRING",
 5549          "value": "}"
 5550        }
 5551      ]
 5552    },
 5553    "_field_declaration_list_item": {
 5554      "type": "CHOICE",
 5555      "members": [
 5556        {
 5557          "type": "CHOICE",
 5558          "members": [
 5559            {
 5560              "type": "SYMBOL",
 5561              "name": "field_declaration"
 5562            },
 5563            {
 5564              "type": "SYMBOL",
 5565              "name": "preproc_def"
 5566            },
 5567            {
 5568              "type": "SYMBOL",
 5569              "name": "preproc_function_def"
 5570            },
 5571            {
 5572              "type": "SYMBOL",
 5573              "name": "preproc_call"
 5574            },
 5575            {
 5576              "type": "ALIAS",
 5577              "content": {
 5578                "type": "SYMBOL",
 5579                "name": "preproc_if_in_field_declaration_list"
 5580              },
 5581              "named": true,
 5582              "value": "preproc_if"
 5583            },
 5584            {
 5585              "type": "ALIAS",
 5586              "content": {
 5587                "type": "SYMBOL",
 5588                "name": "preproc_ifdef_in_field_declaration_list"
 5589              },
 5590              "named": true,
 5591              "value": "preproc_ifdef"
 5592            }
 5593          ]
 5594        },
 5595        {
 5596          "type": "SYMBOL",
 5597          "name": "template_declaration"
 5598        },
 5599        {
 5600          "type": "ALIAS",
 5601          "content": {
 5602            "type": "SYMBOL",
 5603            "name": "inline_method_definition"
 5604          },
 5605          "named": true,
 5606          "value": "function_definition"
 5607        },
 5608        {
 5609          "type": "ALIAS",
 5610          "content": {
 5611            "type": "SYMBOL",
 5612            "name": "constructor_or_destructor_definition"
 5613          },
 5614          "named": true,
 5615          "value": "function_definition"
 5616        },
 5617        {
 5618          "type": "ALIAS",
 5619          "content": {
 5620            "type": "SYMBOL",
 5621            "name": "constructor_or_destructor_declaration"
 5622          },
 5623          "named": true,
 5624          "value": "declaration"
 5625        },
 5626        {
 5627          "type": "ALIAS",
 5628          "content": {
 5629            "type": "SYMBOL",
 5630            "name": "operator_cast_definition"
 5631          },
 5632          "named": true,
 5633          "value": "function_definition"
 5634        },
 5635        {
 5636          "type": "ALIAS",
 5637          "content": {
 5638            "type": "SYMBOL",
 5639            "name": "operator_cast_declaration"
 5640          },
 5641          "named": true,
 5642          "value": "declaration"
 5643        },
 5644        {
 5645          "type": "SYMBOL",
 5646          "name": "friend_declaration"
 5647        },
 5648        {
 5649          "type": "SEQ",
 5650          "members": [
 5651            {
 5652              "type": "SYMBOL",
 5653              "name": "access_specifier"
 5654            },
 5655            {
 5656              "type": "STRING",
 5657              "value": ":"
 5658            }
 5659          ]
 5660        },
 5661        {
 5662          "type": "SYMBOL",
 5663          "name": "alias_declaration"
 5664        },
 5665        {
 5666          "type": "SYMBOL",
 5667          "name": "using_declaration"
 5668        },
 5669        {
 5670          "type": "SYMBOL",
 5671          "name": "type_definition"
 5672        },
 5673        {
 5674          "type": "SYMBOL",
 5675          "name": "static_assert_declaration"
 5676        }
 5677      ]
 5678    },
 5679    "field_declaration": {
 5680      "type": "SEQ",
 5681      "members": [
 5682        {
 5683          "type": "SYMBOL",
 5684          "name": "_declaration_specifiers"
 5685        },
 5686        {
 5687          "type": "CHOICE",
 5688          "members": [
 5689            {
 5690              "type": "SEQ",
 5691              "members": [
 5692                {
 5693                  "type": "SEQ",
 5694                  "members": [
 5695                    {
 5696                      "type": "FIELD",
 5697                      "name": "declarator",
 5698                      "content": {
 5699                        "type": "SYMBOL",
 5700                        "name": "_field_declarator"
 5701                      }
 5702                    },
 5703                    {
 5704                      "type": "CHOICE",
 5705                      "members": [
 5706                        {
 5707                          "type": "CHOICE",
 5708                          "members": [
 5709                            {
 5710                              "type": "SYMBOL",
 5711                              "name": "bitfield_clause"
 5712                            },
 5713                            {
 5714                              "type": "FIELD",
 5715                              "name": "default_value",
 5716                              "content": {
 5717                                "type": "SYMBOL",
 5718                                "name": "initializer_list"
 5719                              }
 5720                            },
 5721                            {
 5722                              "type": "SEQ",
 5723                              "members": [
 5724                                {
 5725                                  "type": "STRING",
 5726                                  "value": "="
 5727                                },
 5728                                {
 5729                                  "type": "FIELD",
 5730                                  "name": "default_value",
 5731                                  "content": {
 5732                                    "type": "CHOICE",
 5733                                    "members": [
 5734                                      {
 5735                                        "type": "SYMBOL",
 5736                                        "name": "expression"
 5737                                      },
 5738                                      {
 5739                                        "type": "SYMBOL",
 5740                                        "name": "initializer_list"
 5741                                      }
 5742                                    ]
 5743                                  }
 5744                                }
 5745                              ]
 5746                            }
 5747                          ]
 5748                        },
 5749                        {
 5750                          "type": "BLANK"
 5751                        }
 5752                      ]
 5753                    }
 5754                  ]
 5755                },
 5756                {
 5757                  "type": "REPEAT",
 5758                  "content": {
 5759                    "type": "SEQ",
 5760                    "members": [
 5761                      {
 5762                        "type": "STRING",
 5763                        "value": ","
 5764                      },
 5765                      {
 5766                        "type": "SEQ",
 5767                        "members": [
 5768                          {
 5769                            "type": "FIELD",
 5770                            "name": "declarator",
 5771                            "content": {
 5772                              "type": "SYMBOL",
 5773                              "name": "_field_declarator"
 5774                            }
 5775                          },
 5776                          {
 5777                            "type": "CHOICE",
 5778                            "members": [
 5779                              {
 5780                                "type": "CHOICE",
 5781                                "members": [
 5782                                  {
 5783                                    "type": "SYMBOL",
 5784                                    "name": "bitfield_clause"
 5785                                  },
 5786                                  {
 5787                                    "type": "FIELD",
 5788                                    "name": "default_value",
 5789                                    "content": {
 5790                                      "type": "SYMBOL",
 5791                                      "name": "initializer_list"
 5792                                    }
 5793                                  },
 5794                                  {
 5795                                    "type": "SEQ",
 5796                                    "members": [
 5797                                      {
 5798                                        "type": "STRING",
 5799                                        "value": "="
 5800                                      },
 5801                                      {
 5802                                        "type": "FIELD",
 5803                                        "name": "default_value",
 5804                                        "content": {
 5805                                          "type": "CHOICE",
 5806                                          "members": [
 5807                                            {
 5808                                              "type": "SYMBOL",
 5809                                              "name": "expression"
 5810                                            },
 5811                                            {
 5812                                              "type": "SYMBOL",
 5813                                              "name": "initializer_list"
 5814                                            }
 5815                                          ]
 5816                                        }
 5817                                      }
 5818                                    ]
 5819                                  }
 5820                                ]
 5821                              },
 5822                              {
 5823                                "type": "BLANK"
 5824                              }
 5825                            ]
 5826                          }
 5827                        ]
 5828                      }
 5829                    ]
 5830                  }
 5831                }
 5832              ]
 5833            },
 5834            {
 5835              "type": "BLANK"
 5836            }
 5837          ]
 5838        },
 5839        {
 5840          "type": "CHOICE",
 5841          "members": [
 5842            {
 5843              "type": "SYMBOL",
 5844              "name": "attribute_specifier"
 5845            },
 5846            {
 5847              "type": "BLANK"
 5848            }
 5849          ]
 5850        },
 5851        {
 5852          "type": "STRING",
 5853          "value": ";"
 5854        }
 5855      ]
 5856    },
 5857    "_field_declaration_declarator": {
 5858      "type": "SEQ",
 5859      "members": [
 5860        {
 5861          "type": "SEQ",
 5862          "members": [
 5863            {
 5864              "type": "FIELD",
 5865              "name": "declarator",
 5866              "content": {
 5867                "type": "SYMBOL",
 5868                "name": "_field_declarator"
 5869              }
 5870            },
 5871            {
 5872              "type": "CHOICE",
 5873              "members": [
 5874                {
 5875                  "type": "SYMBOL",
 5876                  "name": "bitfield_clause"
 5877                },
 5878                {
 5879                  "type": "BLANK"
 5880                }
 5881              ]
 5882            }
 5883          ]
 5884        },
 5885        {
 5886          "type": "REPEAT",
 5887          "content": {
 5888            "type": "SEQ",
 5889            "members": [
 5890              {
 5891                "type": "STRING",
 5892                "value": ","
 5893              },
 5894              {
 5895                "type": "SEQ",
 5896                "members": [
 5897                  {
 5898                    "type": "FIELD",
 5899                    "name": "declarator",
 5900                    "content": {
 5901                      "type": "SYMBOL",
 5902                      "name": "_field_declarator"
 5903                    }
 5904                  },
 5905                  {
 5906                    "type": "CHOICE",
 5907                    "members": [
 5908                      {
 5909                        "type": "SYMBOL",
 5910                        "name": "bitfield_clause"
 5911                      },
 5912                      {
 5913                        "type": "BLANK"
 5914                      }
 5915                    ]
 5916                  }
 5917                ]
 5918              }
 5919            ]
 5920          }
 5921        }
 5922      ]
 5923    },
 5924    "bitfield_clause": {
 5925      "type": "SEQ",
 5926      "members": [
 5927        {
 5928          "type": "STRING",
 5929          "value": ":"
 5930        },
 5931        {
 5932          "type": "SYMBOL",
 5933          "name": "expression"
 5934        }
 5935      ]
 5936    },
 5937    "enumerator": {
 5938      "type": "SEQ",
 5939      "members": [
 5940        {
 5941          "type": "FIELD",
 5942          "name": "name",
 5943          "content": {
 5944            "type": "SYMBOL",
 5945            "name": "identifier"
 5946          }
 5947        },
 5948        {
 5949          "type": "CHOICE",
 5950          "members": [
 5951            {
 5952              "type": "SEQ",
 5953              "members": [
 5954                {
 5955                  "type": "STRING",
 5956                  "value": "="
 5957                },
 5958                {
 5959                  "type": "FIELD",
 5960                  "name": "value",
 5961                  "content": {
 5962                    "type": "SYMBOL",
 5963                    "name": "expression"
 5964                  }
 5965                }
 5966              ]
 5967            },
 5968            {
 5969              "type": "BLANK"
 5970            }
 5971          ]
 5972        }
 5973      ]
 5974    },
 5975    "variadic_parameter": {
 5976      "type": "STRING",
 5977      "value": "..."
 5978    },
 5979    "parameter_list": {
 5980      "type": "SEQ",
 5981      "members": [
 5982        {
 5983          "type": "STRING",
 5984          "value": "("
 5985        },
 5986        {
 5987          "type": "CHOICE",
 5988          "members": [
 5989            {
 5990              "type": "SEQ",
 5991              "members": [
 5992                {
 5993                  "type": "CHOICE",
 5994                  "members": [
 5995                    {
 5996                      "type": "SYMBOL",
 5997                      "name": "parameter_declaration"
 5998                    },
 5999                    {
 6000                      "type": "SYMBOL",
 6001                      "name": "optional_parameter_declaration"
 6002                    },
 6003                    {
 6004                      "type": "SYMBOL",
 6005                      "name": "variadic_parameter_declaration"
 6006                    },
 6007                    {
 6008                      "type": "STRING",
 6009                      "value": "..."
 6010                    }
 6011                  ]
 6012                },
 6013                {
 6014                  "type": "REPEAT",
 6015                  "content": {
 6016                    "type": "SEQ",
 6017                    "members": [
 6018                      {
 6019                        "type": "STRING",
 6020                        "value": ","
 6021                      },
 6022                      {
 6023                        "type": "CHOICE",
 6024                        "members": [
 6025                          {
 6026                            "type": "SYMBOL",
 6027                            "name": "parameter_declaration"
 6028                          },
 6029                          {
 6030                            "type": "SYMBOL",
 6031                            "name": "optional_parameter_declaration"
 6032                          },
 6033                          {
 6034                            "type": "SYMBOL",
 6035                            "name": "variadic_parameter_declaration"
 6036                          },
 6037                          {
 6038                            "type": "STRING",
 6039                            "value": "..."
 6040                          }
 6041                        ]
 6042                      }
 6043                    ]
 6044                  }
 6045                }
 6046              ]
 6047            },
 6048            {
 6049              "type": "BLANK"
 6050            }
 6051          ]
 6052        },
 6053        {
 6054          "type": "STRING",
 6055          "value": ")"
 6056        }
 6057      ]
 6058    },
 6059    "_old_style_parameter_list": {
 6060      "type": "SEQ",
 6061      "members": [
 6062        {
 6063          "type": "STRING",
 6064          "value": "("
 6065        },
 6066        {
 6067          "type": "CHOICE",
 6068          "members": [
 6069            {
 6070              "type": "SEQ",
 6071              "members": [
 6072                {
 6073                  "type": "CHOICE",
 6074                  "members": [
 6075                    {
 6076                      "type": "SYMBOL",
 6077                      "name": "identifier"
 6078                    },
 6079                    {
 6080                      "type": "SYMBOL",
 6081                      "name": "variadic_parameter"
 6082                    }
 6083                  ]
 6084                },
 6085                {
 6086                  "type": "REPEAT",
 6087                  "content": {
 6088                    "type": "SEQ",
 6089                    "members": [
 6090                      {
 6091                        "type": "STRING",
 6092                        "value": ","
 6093                      },
 6094                      {
 6095                        "type": "CHOICE",
 6096                        "members": [
 6097                          {
 6098                            "type": "SYMBOL",
 6099                            "name": "identifier"
 6100                          },
 6101                          {
 6102                            "type": "SYMBOL",
 6103                            "name": "variadic_parameter"
 6104                          }
 6105                        ]
 6106                      }
 6107                    ]
 6108                  }
 6109                }
 6110              ]
 6111            },
 6112            {
 6113              "type": "BLANK"
 6114            }
 6115          ]
 6116        },
 6117        {
 6118          "type": "STRING",
 6119          "value": ")"
 6120        }
 6121      ]
 6122    },
 6123    "parameter_declaration": {
 6124      "type": "SEQ",
 6125      "members": [
 6126        {
 6127          "type": "SYMBOL",
 6128          "name": "_declaration_specifiers"
 6129        },
 6130        {
 6131          "type": "CHOICE",
 6132          "members": [
 6133            {
 6134              "type": "FIELD",
 6135              "name": "declarator",
 6136              "content": {
 6137                "type": "CHOICE",
 6138                "members": [
 6139                  {
 6140                    "type": "SYMBOL",
 6141                    "name": "_declarator"
 6142                  },
 6143                  {
 6144                    "type": "SYMBOL",
 6145                    "name": "_abstract_declarator"
 6146                  }
 6147                ]
 6148              }
 6149            },
 6150            {
 6151              "type": "BLANK"
 6152            }
 6153          ]
 6154        }
 6155      ]
 6156    },
 6157    "attributed_statement": {
 6158      "type": "SEQ",
 6159      "members": [
 6160        {
 6161          "type": "REPEAT1",
 6162          "content": {
 6163            "type": "SYMBOL",
 6164            "name": "attribute_declaration"
 6165          }
 6166        },
 6167        {
 6168          "type": "SYMBOL",
 6169          "name": "statement"
 6170        }
 6171      ]
 6172    },
 6173    "statement": {
 6174      "type": "CHOICE",
 6175      "members": [
 6176        {
 6177          "type": "SYMBOL",
 6178          "name": "case_statement"
 6179        },
 6180        {
 6181          "type": "SYMBOL",
 6182          "name": "_non_case_statement"
 6183        }
 6184      ]
 6185    },
 6186    "_non_case_statement": {
 6187      "type": "CHOICE",
 6188      "members": [
 6189        {
 6190          "type": "CHOICE",
 6191          "members": [
 6192            {
 6193              "type": "SYMBOL",
 6194              "name": "attributed_statement"
 6195            },
 6196            {
 6197              "type": "SYMBOL",
 6198              "name": "labeled_statement"
 6199            },
 6200            {
 6201              "type": "SYMBOL",
 6202              "name": "compound_statement"
 6203            },
 6204            {
 6205              "type": "SYMBOL",
 6206              "name": "expression_statement"
 6207            },
 6208            {
 6209              "type": "SYMBOL",
 6210              "name": "if_statement"
 6211            },
 6212            {
 6213              "type": "SYMBOL",
 6214              "name": "switch_statement"
 6215            },
 6216            {
 6217              "type": "SYMBOL",
 6218              "name": "do_statement"
 6219            },
 6220            {
 6221              "type": "SYMBOL",
 6222              "name": "while_statement"
 6223            },
 6224            {
 6225              "type": "SYMBOL",
 6226              "name": "for_statement"
 6227            },
 6228            {
 6229              "type": "SYMBOL",
 6230              "name": "return_statement"
 6231            },
 6232            {
 6233              "type": "SYMBOL",
 6234              "name": "break_statement"
 6235            },
 6236            {
 6237              "type": "SYMBOL",
 6238              "name": "continue_statement"
 6239            },
 6240            {
 6241              "type": "SYMBOL",
 6242              "name": "goto_statement"
 6243            },
 6244            {
 6245              "type": "SYMBOL",
 6246              "name": "seh_try_statement"
 6247            },
 6248            {
 6249              "type": "SYMBOL",
 6250              "name": "seh_leave_statement"
 6251            }
 6252          ]
 6253        },
 6254        {
 6255          "type": "SYMBOL",
 6256          "name": "co_return_statement"
 6257        },
 6258        {
 6259          "type": "SYMBOL",
 6260          "name": "co_yield_statement"
 6261        },
 6262        {
 6263          "type": "SYMBOL",
 6264          "name": "for_range_loop"
 6265        },
 6266        {
 6267          "type": "SYMBOL",
 6268          "name": "try_statement"
 6269        },
 6270        {
 6271          "type": "SYMBOL",
 6272          "name": "throw_statement"
 6273        }
 6274      ]
 6275    },
 6276    "_top_level_statement": {
 6277      "type": "CHOICE",
 6278      "members": [
 6279        {
 6280          "type": "CHOICE",
 6281          "members": [
 6282            {
 6283              "type": "SYMBOL",
 6284              "name": "case_statement"
 6285            },
 6286            {
 6287              "type": "SYMBOL",
 6288              "name": "attributed_statement"
 6289            },
 6290            {
 6291              "type": "SYMBOL",
 6292              "name": "labeled_statement"
 6293            },
 6294            {
 6295              "type": "SYMBOL",
 6296              "name": "compound_statement"
 6297            },
 6298            {
 6299              "type": "ALIAS",
 6300              "content": {
 6301                "type": "SYMBOL",
 6302                "name": "_top_level_expression_statement"
 6303              },
 6304              "named": true,
 6305              "value": "expression_statement"
 6306            },
 6307            {
 6308              "type": "SYMBOL",
 6309              "name": "if_statement"
 6310            },
 6311            {
 6312              "type": "SYMBOL",
 6313              "name": "switch_statement"
 6314            },
 6315            {
 6316              "type": "SYMBOL",
 6317              "name": "do_statement"
 6318            },
 6319            {
 6320              "type": "SYMBOL",
 6321              "name": "while_statement"
 6322            },
 6323            {
 6324              "type": "SYMBOL",
 6325              "name": "for_statement"
 6326            },
 6327            {
 6328              "type": "SYMBOL",
 6329              "name": "return_statement"
 6330            },
 6331            {
 6332              "type": "SYMBOL",
 6333              "name": "break_statement"
 6334            },
 6335            {
 6336              "type": "SYMBOL",
 6337              "name": "continue_statement"
 6338            },
 6339            {
 6340              "type": "SYMBOL",
 6341              "name": "goto_statement"
 6342            }
 6343          ]
 6344        },
 6345        {
 6346          "type": "SYMBOL",
 6347          "name": "co_return_statement"
 6348        },
 6349        {
 6350          "type": "SYMBOL",
 6351          "name": "co_yield_statement"
 6352        },
 6353        {
 6354          "type": "SYMBOL",
 6355          "name": "for_range_loop"
 6356        },
 6357        {
 6358          "type": "SYMBOL",
 6359          "name": "try_statement"
 6360        },
 6361        {
 6362          "type": "SYMBOL",
 6363          "name": "throw_statement"
 6364        }
 6365      ]
 6366    },
 6367    "labeled_statement": {
 6368      "type": "SEQ",
 6369      "members": [
 6370        {
 6371          "type": "FIELD",
 6372          "name": "label",
 6373          "content": {
 6374            "type": "SYMBOL",
 6375            "name": "_statement_identifier"
 6376          }
 6377        },
 6378        {
 6379          "type": "STRING",
 6380          "value": ":"
 6381        },
 6382        {
 6383          "type": "SYMBOL",
 6384          "name": "statement"
 6385        }
 6386      ]
 6387    },
 6388    "_top_level_expression_statement": {
 6389      "type": "SEQ",
 6390      "members": [
 6391        {
 6392          "type": "SYMBOL",
 6393          "name": "_expression_not_binary"
 6394        },
 6395        {
 6396          "type": "STRING",
 6397          "value": ";"
 6398        }
 6399      ]
 6400    },
 6401    "expression_statement": {
 6402      "type": "SEQ",
 6403      "members": [
 6404        {
 6405          "type": "CHOICE",
 6406          "members": [
 6407            {
 6408              "type": "CHOICE",
 6409              "members": [
 6410                {
 6411                  "type": "SYMBOL",
 6412                  "name": "expression"
 6413                },
 6414                {
 6415                  "type": "SYMBOL",
 6416                  "name": "comma_expression"
 6417                }
 6418              ]
 6419            },
 6420            {
 6421              "type": "BLANK"
 6422            }
 6423          ]
 6424        },
 6425        {
 6426          "type": "STRING",
 6427          "value": ";"
 6428        }
 6429      ]
 6430    },
 6431    "if_statement": {
 6432      "type": "PREC_RIGHT",
 6433      "value": 0,
 6434      "content": {
 6435        "type": "SEQ",
 6436        "members": [
 6437          {
 6438            "type": "STRING",
 6439            "value": "if"
 6440          },
 6441          {
 6442            "type": "CHOICE",
 6443            "members": [
 6444              {
 6445                "type": "STRING",
 6446                "value": "constexpr"
 6447              },
 6448              {
 6449                "type": "BLANK"
 6450              }
 6451            ]
 6452          },
 6453          {
 6454            "type": "FIELD",
 6455            "name": "condition",
 6456            "content": {
 6457              "type": "SYMBOL",
 6458              "name": "condition_clause"
 6459            }
 6460          },
 6461          {
 6462            "type": "FIELD",
 6463            "name": "consequence",
 6464            "content": {
 6465              "type": "SYMBOL",
 6466              "name": "statement"
 6467            }
 6468          },
 6469          {
 6470            "type": "CHOICE",
 6471            "members": [
 6472              {
 6473                "type": "FIELD",
 6474                "name": "alternative",
 6475                "content": {
 6476                  "type": "SYMBOL",
 6477                  "name": "else_clause"
 6478                }
 6479              },
 6480              {
 6481                "type": "BLANK"
 6482              }
 6483            ]
 6484          }
 6485        ]
 6486      }
 6487    },
 6488    "else_clause": {
 6489      "type": "SEQ",
 6490      "members": [
 6491        {
 6492          "type": "STRING",
 6493          "value": "else"
 6494        },
 6495        {
 6496          "type": "SYMBOL",
 6497          "name": "statement"
 6498        }
 6499      ]
 6500    },
 6501    "switch_statement": {
 6502      "type": "SEQ",
 6503      "members": [
 6504        {
 6505          "type": "STRING",
 6506          "value": "switch"
 6507        },
 6508        {
 6509          "type": "FIELD",
 6510          "name": "condition",
 6511          "content": {
 6512            "type": "SYMBOL",
 6513            "name": "condition_clause"
 6514          }
 6515        },
 6516        {
 6517          "type": "FIELD",
 6518          "name": "body",
 6519          "content": {
 6520            "type": "SYMBOL",
 6521            "name": "compound_statement"
 6522          }
 6523        }
 6524      ]
 6525    },
 6526    "case_statement": {
 6527      "type": "PREC_RIGHT",
 6528      "value": 0,
 6529      "content": {
 6530        "type": "SEQ",
 6531        "members": [
 6532          {
 6533            "type": "CHOICE",
 6534            "members": [
 6535              {
 6536                "type": "SEQ",
 6537                "members": [
 6538                  {
 6539                    "type": "STRING",
 6540                    "value": "case"
 6541                  },
 6542                  {
 6543                    "type": "FIELD",
 6544                    "name": "value",
 6545                    "content": {
 6546                      "type": "SYMBOL",
 6547                      "name": "expression"
 6548                    }
 6549                  }
 6550                ]
 6551              },
 6552              {
 6553                "type": "STRING",
 6554                "value": "default"
 6555              }
 6556            ]
 6557          },
 6558          {
 6559            "type": "STRING",
 6560            "value": ":"
 6561          },
 6562          {
 6563            "type": "REPEAT",
 6564            "content": {
 6565              "type": "CHOICE",
 6566              "members": [
 6567                {
 6568                  "type": "SYMBOL",
 6569                  "name": "_non_case_statement"
 6570                },
 6571                {
 6572                  "type": "SYMBOL",
 6573                  "name": "declaration"
 6574                },
 6575                {
 6576                  "type": "SYMBOL",
 6577                  "name": "type_definition"
 6578                }
 6579              ]
 6580            }
 6581          }
 6582        ]
 6583      }
 6584    },
 6585    "while_statement": {
 6586      "type": "SEQ",
 6587      "members": [
 6588        {
 6589          "type": "STRING",
 6590          "value": "while"
 6591        },
 6592        {
 6593          "type": "FIELD",
 6594          "name": "condition",
 6595          "content": {
 6596            "type": "SYMBOL",
 6597            "name": "condition_clause"
 6598          }
 6599        },
 6600        {
 6601          "type": "FIELD",
 6602          "name": "body",
 6603          "content": {
 6604            "type": "SYMBOL",
 6605            "name": "statement"
 6606          }
 6607        }
 6608      ]
 6609    },
 6610    "do_statement": {
 6611      "type": "SEQ",
 6612      "members": [
 6613        {
 6614          "type": "STRING",
 6615          "value": "do"
 6616        },
 6617        {
 6618          "type": "FIELD",
 6619          "name": "body",
 6620          "content": {
 6621            "type": "SYMBOL",
 6622            "name": "statement"
 6623          }
 6624        },
 6625        {
 6626          "type": "STRING",
 6627          "value": "while"
 6628        },
 6629        {
 6630          "type": "FIELD",
 6631          "name": "condition",
 6632          "content": {
 6633            "type": "SYMBOL",
 6634            "name": "parenthesized_expression"
 6635          }
 6636        },
 6637        {
 6638          "type": "STRING",
 6639          "value": ";"
 6640        }
 6641      ]
 6642    },
 6643    "for_statement": {
 6644      "type": "SEQ",
 6645      "members": [
 6646        {
 6647          "type": "STRING",
 6648          "value": "for"
 6649        },
 6650        {
 6651          "type": "STRING",
 6652          "value": "("
 6653        },
 6654        {
 6655          "type": "SYMBOL",
 6656          "name": "_for_statement_body"
 6657        },
 6658        {
 6659          "type": "STRING",
 6660          "value": ")"
 6661        },
 6662        {
 6663          "type": "FIELD",
 6664          "name": "body",
 6665          "content": {
 6666            "type": "SYMBOL",
 6667            "name": "statement"
 6668          }
 6669        }
 6670      ]
 6671    },
 6672    "_for_statement_body": {
 6673      "type": "PREC_DYNAMIC",
 6674      "value": 1,
 6675      "content": {
 6676        "type": "SEQ",
 6677        "members": [
 6678          {
 6679            "type": "CHOICE",
 6680            "members": [
 6681              {
 6682                "type": "FIELD",
 6683                "name": "initializer",
 6684                "content": {
 6685                  "type": "SYMBOL",
 6686                  "name": "declaration"
 6687                }
 6688              },
 6689              {
 6690                "type": "SEQ",
 6691                "members": [
 6692                  {
 6693                    "type": "FIELD",
 6694                    "name": "initializer",
 6695                    "content": {
 6696                      "type": "CHOICE",
 6697                      "members": [
 6698                        {
 6699                          "type": "CHOICE",
 6700                          "members": [
 6701                            {
 6702                              "type": "SYMBOL",
 6703                              "name": "expression"
 6704                            },
 6705                            {
 6706                              "type": "SYMBOL",
 6707                              "name": "comma_expression"
 6708                            }
 6709                          ]
 6710                        },
 6711                        {
 6712                          "type": "BLANK"
 6713                        }
 6714                      ]
 6715                    }
 6716                  },
 6717                  {
 6718                    "type": "STRING",
 6719                    "value": ";"
 6720                  }
 6721                ]
 6722              }
 6723            ]
 6724          },
 6725          {
 6726            "type": "FIELD",
 6727            "name": "condition",
 6728            "content": {
 6729              "type": "CHOICE",
 6730              "members": [
 6731                {
 6732                  "type": "CHOICE",
 6733                  "members": [
 6734                    {
 6735                      "type": "SYMBOL",
 6736                      "name": "expression"
 6737                    },
 6738                    {
 6739                      "type": "SYMBOL",
 6740                      "name": "comma_expression"
 6741                    }
 6742                  ]
 6743                },
 6744                {
 6745                  "type": "BLANK"
 6746                }
 6747              ]
 6748            }
 6749          },
 6750          {
 6751            "type": "STRING",
 6752            "value": ";"
 6753          },
 6754          {
 6755            "type": "FIELD",
 6756            "name": "update",
 6757            "content": {
 6758              "type": "CHOICE",
 6759              "members": [
 6760                {
 6761                  "type": "CHOICE",
 6762                  "members": [
 6763                    {
 6764                      "type": "SYMBOL",
 6765                      "name": "expression"
 6766                    },
 6767                    {
 6768                      "type": "SYMBOL",
 6769                      "name": "comma_expression"
 6770                    }
 6771                  ]
 6772                },
 6773                {
 6774                  "type": "BLANK"
 6775                }
 6776              ]
 6777            }
 6778          }
 6779        ]
 6780      }
 6781    },
 6782    "return_statement": {
 6783      "type": "SEQ",
 6784      "members": [
 6785        {
 6786          "type": "CHOICE",
 6787          "members": [
 6788            {
 6789              "type": "SEQ",
 6790              "members": [
 6791                {
 6792                  "type": "STRING",
 6793                  "value": "return"
 6794                },
 6795                {
 6796                  "type": "CHOICE",
 6797                  "members": [
 6798                    {
 6799                      "type": "CHOICE",
 6800                      "members": [
 6801                        {
 6802                          "type": "SYMBOL",
 6803                          "name": "expression"
 6804                        },
 6805                        {
 6806                          "type": "SYMBOL",
 6807                          "name": "comma_expression"
 6808                        }
 6809                      ]
 6810                    },
 6811                    {
 6812                      "type": "BLANK"
 6813                    }
 6814                  ]
 6815                },
 6816                {
 6817                  "type": "STRING",
 6818                  "value": ";"
 6819                }
 6820              ]
 6821            },
 6822            {
 6823              "type": "SEQ",
 6824              "members": [
 6825                {
 6826                  "type": "STRING",
 6827                  "value": "return"
 6828                },
 6829                {
 6830                  "type": "SYMBOL",
 6831                  "name": "initializer_list"
 6832                },
 6833                {
 6834                  "type": "STRING",
 6835                  "value": ";"
 6836                }
 6837              ]
 6838            }
 6839          ]
 6840        }
 6841      ]
 6842    },
 6843    "break_statement": {
 6844      "type": "SEQ",
 6845      "members": [
 6846        {
 6847          "type": "STRING",
 6848          "value": "break"
 6849        },
 6850        {
 6851          "type": "STRING",
 6852          "value": ";"
 6853        }
 6854      ]
 6855    },
 6856    "continue_statement": {
 6857      "type": "SEQ",
 6858      "members": [
 6859        {
 6860          "type": "STRING",
 6861          "value": "continue"
 6862        },
 6863        {
 6864          "type": "STRING",
 6865          "value": ";"
 6866        }
 6867      ]
 6868    },
 6869    "goto_statement": {
 6870      "type": "SEQ",
 6871      "members": [
 6872        {
 6873          "type": "STRING",
 6874          "value": "goto"
 6875        },
 6876        {
 6877          "type": "FIELD",
 6878          "name": "label",
 6879          "content": {
 6880            "type": "SYMBOL",
 6881            "name": "_statement_identifier"
 6882          }
 6883        },
 6884        {
 6885          "type": "STRING",
 6886          "value": ";"
 6887        }
 6888      ]
 6889    },
 6890    "seh_try_statement": {
 6891      "type": "SEQ",
 6892      "members": [
 6893        {
 6894          "type": "STRING",
 6895          "value": "__try"
 6896        },
 6897        {
 6898          "type": "FIELD",
 6899          "name": "body",
 6900          "content": {
 6901            "type": "SYMBOL",
 6902            "name": "compound_statement"
 6903          }
 6904        },
 6905        {
 6906          "type": "CHOICE",
 6907          "members": [
 6908            {
 6909              "type": "SYMBOL",
 6910              "name": "seh_except_clause"
 6911            },
 6912            {
 6913              "type": "SYMBOL",
 6914              "name": "seh_finally_clause"
 6915            }
 6916          ]
 6917        }
 6918      ]
 6919    },
 6920    "seh_except_clause": {
 6921      "type": "SEQ",
 6922      "members": [
 6923        {
 6924          "type": "STRING",
 6925          "value": "__except"
 6926        },
 6927        {
 6928          "type": "FIELD",
 6929          "name": "filter",
 6930          "content": {
 6931            "type": "SYMBOL",
 6932            "name": "parenthesized_expression"
 6933          }
 6934        },
 6935        {
 6936          "type": "FIELD",
 6937          "name": "body",
 6938          "content": {
 6939            "type": "SYMBOL",
 6940            "name": "compound_statement"
 6941          }
 6942        }
 6943      ]
 6944    },
 6945    "seh_finally_clause": {
 6946      "type": "SEQ",
 6947      "members": [
 6948        {
 6949          "type": "STRING",
 6950          "value": "__finally"
 6951        },
 6952        {
 6953          "type": "FIELD",
 6954          "name": "body",
 6955          "content": {
 6956            "type": "SYMBOL",
 6957            "name": "compound_statement"
 6958          }
 6959        }
 6960      ]
 6961    },
 6962    "seh_leave_statement": {
 6963      "type": "SEQ",
 6964      "members": [
 6965        {
 6966          "type": "STRING",
 6967          "value": "__leave"
 6968        },
 6969        {
 6970          "type": "STRING",
 6971          "value": ";"
 6972        }
 6973      ]
 6974    },
 6975    "expression": {
 6976      "type": "CHOICE",
 6977      "members": [
 6978        {
 6979          "type": "CHOICE",
 6980          "members": [
 6981            {
 6982              "type": "SYMBOL",
 6983              "name": "_expression_not_binary"
 6984            },
 6985            {
 6986              "type": "SYMBOL",
 6987              "name": "binary_expression"
 6988            }
 6989          ]
 6990        },
 6991        {
 6992          "type": "ALIAS",
 6993          "content": {
 6994            "type": "PREC",
 6995            "value": 10,
 6996            "content": {
 6997              "type": "SYMBOL",
 6998              "name": "kernel_call_expression"
 6999            }
 7000          },
 7001          "named": true,
 7002          "value": "call_expression"
 7003        }
 7004      ]
 7005    },
 7006    "_expression_not_binary": {
 7007      "type": "CHOICE",
 7008      "members": [
 7009        {
 7010          "type": "CHOICE",
 7011          "members": [
 7012            {
 7013              "type": "SYMBOL",
 7014              "name": "conditional_expression"
 7015            },
 7016            {
 7017              "type": "SYMBOL",
 7018              "name": "assignment_expression"
 7019            },
 7020            {
 7021              "type": "SYMBOL",
 7022              "name": "unary_expression"
 7023            },
 7024            {
 7025              "type": "SYMBOL",
 7026              "name": "update_expression"
 7027            },
 7028            {
 7029              "type": "SYMBOL",
 7030              "name": "cast_expression"
 7031            },
 7032            {
 7033              "type": "SYMBOL",
 7034              "name": "pointer_expression"
 7035            },
 7036            {
 7037              "type": "SYMBOL",
 7038              "name": "sizeof_expression"
 7039            },
 7040            {
 7041              "type": "SYMBOL",
 7042              "name": "alignof_expression"
 7043            },
 7044            {
 7045              "type": "SYMBOL",
 7046              "name": "offsetof_expression"
 7047            },
 7048            {
 7049              "type": "SYMBOL",
 7050              "name": "generic_expression"
 7051            },
 7052            {
 7053              "type": "SYMBOL",
 7054              "name": "subscript_expression"
 7055            },
 7056            {
 7057              "type": "SYMBOL",
 7058              "name": "call_expression"
 7059            },
 7060            {
 7061              "type": "SYMBOL",
 7062              "name": "field_expression"
 7063            },
 7064            {
 7065              "type": "SYMBOL",
 7066              "name": "compound_literal_expression"
 7067            },
 7068            {
 7069              "type": "SYMBOL",
 7070              "name": "identifier"
 7071            },
 7072            {
 7073              "type": "SYMBOL",
 7074              "name": "number_literal"
 7075            },
 7076            {
 7077              "type": "SYMBOL",
 7078              "name": "_string"
 7079            },
 7080            {
 7081              "type": "SYMBOL",
 7082              "name": "true"
 7083            },
 7084            {
 7085              "type": "SYMBOL",
 7086              "name": "false"
 7087            },
 7088            {
 7089              "type": "SYMBOL",
 7090              "name": "null"
 7091            },
 7092            {
 7093              "type": "SYMBOL",
 7094              "name": "char_literal"
 7095            },
 7096            {
 7097              "type": "SYMBOL",
 7098              "name": "parenthesized_expression"
 7099            },
 7100            {
 7101              "type": "SYMBOL",
 7102              "name": "gnu_asm_expression"
 7103            }
 7104          ]
 7105        },
 7106        {
 7107          "type": "SYMBOL",
 7108          "name": "co_await_expression"
 7109        },
 7110        {
 7111          "type": "SYMBOL",
 7112          "name": "requires_expression"
 7113        },
 7114        {
 7115          "type": "SYMBOL",
 7116          "name": "requires_clause"
 7117        },
 7118        {
 7119          "type": "SYMBOL",
 7120          "name": "template_function"
 7121        },
 7122        {
 7123          "type": "SYMBOL",
 7124          "name": "qualified_identifier"
 7125        },
 7126        {
 7127          "type": "SYMBOL",
 7128          "name": "new_expression"
 7129        },
 7130        {
 7131          "type": "SYMBOL",
 7132          "name": "delete_expression"
 7133        },
 7134        {
 7135          "type": "SYMBOL",
 7136          "name": "lambda_expression"
 7137        },
 7138        {
 7139          "type": "SYMBOL",
 7140          "name": "parameter_pack_expansion"
 7141        },
 7142        {
 7143          "type": "SYMBOL",
 7144          "name": "this"
 7145        },
 7146        {
 7147          "type": "SYMBOL",
 7148          "name": "raw_string_literal"
 7149        },
 7150        {
 7151          "type": "SYMBOL",
 7152          "name": "user_defined_literal"
 7153        },
 7154        {
 7155          "type": "SYMBOL",
 7156          "name": "fold_expression"
 7157        }
 7158      ]
 7159    },
 7160    "_string": {
 7161      "type": "PREC_LEFT",
 7162      "value": 0,
 7163      "content": {
 7164        "type": "CHOICE",
 7165        "members": [
 7166          {
 7167            "type": "SYMBOL",
 7168            "name": "string_literal"
 7169          },
 7170          {
 7171            "type": "SYMBOL",
 7172            "name": "concatenated_string"
 7173          }
 7174        ]
 7175      }
 7176    },
 7177    "comma_expression": {
 7178      "type": "SEQ",
 7179      "members": [
 7180        {
 7181          "type": "FIELD",
 7182          "name": "left",
 7183          "content": {
 7184            "type": "SYMBOL",
 7185            "name": "expression"
 7186          }
 7187        },
 7188        {
 7189          "type": "STRING",
 7190          "value": ","
 7191        },
 7192        {
 7193          "type": "FIELD",
 7194          "name": "right",
 7195          "content": {
 7196            "type": "CHOICE",
 7197            "members": [
 7198              {
 7199                "type": "SYMBOL",
 7200                "name": "expression"
 7201              },
 7202              {
 7203                "type": "SYMBOL",
 7204                "name": "comma_expression"
 7205              }
 7206            ]
 7207          }
 7208        }
 7209      ]
 7210    },
 7211    "conditional_expression": {
 7212      "type": "PREC_RIGHT",
 7213      "value": -1,
 7214      "content": {
 7215        "type": "SEQ",
 7216        "members": [
 7217          {
 7218            "type": "FIELD",
 7219            "name": "condition",
 7220            "content": {
 7221              "type": "SYMBOL",
 7222              "name": "expression"
 7223            }
 7224          },
 7225          {
 7226            "type": "STRING",
 7227            "value": "?"
 7228          },
 7229          {
 7230            "type": "CHOICE",
 7231            "members": [
 7232              {
 7233                "type": "FIELD",
 7234                "name": "consequence",
 7235                "content": {
 7236                  "type": "CHOICE",
 7237                  "members": [
 7238                    {
 7239                      "type": "SYMBOL",
 7240                      "name": "expression"
 7241                    },
 7242                    {
 7243                      "type": "SYMBOL",
 7244                      "name": "comma_expression"
 7245                    }
 7246                  ]
 7247                }
 7248              },
 7249              {
 7250                "type": "BLANK"
 7251              }
 7252            ]
 7253          },
 7254          {
 7255            "type": "STRING",
 7256            "value": ":"
 7257          },
 7258          {
 7259            "type": "FIELD",
 7260            "name": "alternative",
 7261            "content": {
 7262              "type": "SYMBOL",
 7263              "name": "expression"
 7264            }
 7265          }
 7266        ]
 7267      }
 7268    },
 7269    "_assignment_left_expression": {
 7270      "type": "CHOICE",
 7271      "members": [
 7272        {
 7273          "type": "CHOICE",
 7274          "members": [
 7275            {
 7276              "type": "SYMBOL",
 7277              "name": "identifier"
 7278            },
 7279            {
 7280              "type": "SYMBOL",
 7281              "name": "call_expression"
 7282            },
 7283            {
 7284              "type": "SYMBOL",
 7285              "name": "field_expression"
 7286            },
 7287            {
 7288              "type": "SYMBOL",
 7289              "name": "pointer_expression"
 7290            },
 7291            {
 7292              "type": "SYMBOL",
 7293              "name": "subscript_expression"
 7294            },
 7295            {
 7296              "type": "SYMBOL",
 7297              "name": "parenthesized_expression"
 7298            }
 7299          ]
 7300        },
 7301        {
 7302          "type": "SYMBOL",
 7303          "name": "qualified_identifier"
 7304        },
 7305        {
 7306          "type": "SYMBOL",
 7307          "name": "user_defined_literal"
 7308        }
 7309      ]
 7310    },
 7311    "assignment_expression": {
 7312      "type": "PREC_RIGHT",
 7313      "value": -2,
 7314      "content": {
 7315        "type": "SEQ",
 7316        "members": [
 7317          {
 7318            "type": "FIELD",
 7319            "name": "left",
 7320            "content": {
 7321              "type": "SYMBOL",
 7322              "name": "_assignment_left_expression"
 7323            }
 7324          },
 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                  "type": "STRING",
 7349                  "value": "+="
 7350                },
 7351                {
 7352                  "type": "STRING",
 7353                  "value": "-="
 7354                },
 7355                {
 7356                  "type": "STRING",
 7357                  "value": "<<="
 7358                },
 7359                {
 7360                  "type": "STRING",
 7361                  "value": ">>="
 7362                },
 7363                {
 7364                  "type": "STRING",
 7365                  "value": "&="
 7366                },
 7367                {
 7368                  "type": "STRING",
 7369                  "value": "^="
 7370                },
 7371                {
 7372                  "type": "STRING",
 7373                  "value": "|="
 7374                },
 7375                {
 7376                  "type": "STRING",
 7377                  "value": "and_eq"
 7378                },
 7379                {
 7380                  "type": "STRING",
 7381                  "value": "or_eq"
 7382                },
 7383                {
 7384                  "type": "STRING",
 7385                  "value": "xor_eq"
 7386                }
 7387              ]
 7388            }
 7389          },
 7390          {
 7391            "type": "FIELD",
 7392            "name": "right",
 7393            "content": {
 7394              "type": "CHOICE",
 7395              "members": [
 7396                {
 7397                  "type": "SYMBOL",
 7398                  "name": "expression"
 7399                },
 7400                {
 7401                  "type": "SYMBOL",
 7402                  "name": "initializer_list"
 7403                }
 7404              ]
 7405            }
 7406          }
 7407        ]
 7408      }
 7409    },
 7410    "pointer_expression": {
 7411      "type": "PREC_LEFT",
 7412      "value": 12,
 7413      "content": {
 7414        "type": "SEQ",
 7415        "members": [
 7416          {
 7417            "type": "FIELD",
 7418            "name": "operator",
 7419            "content": {
 7420              "type": "CHOICE",
 7421              "members": [
 7422                {
 7423                  "type": "STRING",
 7424                  "value": "*"
 7425                },
 7426                {
 7427                  "type": "STRING",
 7428                  "value": "&"
 7429                }
 7430              ]
 7431            }
 7432          },
 7433          {
 7434            "type": "FIELD",
 7435            "name": "argument",
 7436            "content": {
 7437              "type": "SYMBOL",
 7438              "name": "expression"
 7439            }
 7440          }
 7441        ]
 7442      }
 7443    },
 7444    "unary_expression": {
 7445      "type": "CHOICE",
 7446      "members": [
 7447        {
 7448          "type": "PREC_LEFT",
 7449          "value": 14,
 7450          "content": {
 7451            "type": "SEQ",
 7452            "members": [
 7453              {
 7454                "type": "FIELD",
 7455                "name": "operator",
 7456                "content": {
 7457                  "type": "CHOICE",
 7458                  "members": [
 7459                    {
 7460                      "type": "STRING",
 7461                      "value": "!"
 7462                    },
 7463                    {
 7464                      "type": "STRING",
 7465                      "value": "~"
 7466                    },
 7467                    {
 7468                      "type": "STRING",
 7469                      "value": "-"
 7470                    },
 7471                    {
 7472                      "type": "STRING",
 7473                      "value": "+"
 7474                    }
 7475                  ]
 7476                }
 7477              },
 7478              {
 7479                "type": "FIELD",
 7480                "name": "argument",
 7481                "content": {
 7482                  "type": "SYMBOL",
 7483                  "name": "expression"
 7484                }
 7485              }
 7486            ]
 7487          }
 7488        },
 7489        {
 7490          "type": "PREC_LEFT",
 7491          "value": 14,
 7492          "content": {
 7493            "type": "SEQ",
 7494            "members": [
 7495              {
 7496                "type": "FIELD",
 7497                "name": "operator",
 7498                "content": {
 7499                  "type": "CHOICE",
 7500                  "members": [
 7501                    {
 7502                      "type": "STRING",
 7503                      "value": "not"
 7504                    },
 7505                    {
 7506                      "type": "STRING",
 7507                      "value": "compl"
 7508                    }
 7509                  ]
 7510                }
 7511              },
 7512              {
 7513                "type": "FIELD",
 7514                "name": "argument",
 7515                "content": {
 7516                  "type": "SYMBOL",
 7517                  "name": "expression"
 7518                }
 7519              }
 7520            ]
 7521          }
 7522        }
 7523      ]
 7524    },
 7525    "binary_expression": {
 7526      "type": "CHOICE",
 7527      "members": [
 7528        {
 7529          "type": "CHOICE",
 7530          "members": [
 7531            {
 7532              "type": "PREC_LEFT",
 7533              "value": 10,
 7534              "content": {
 7535                "type": "SEQ",
 7536                "members": [
 7537                  {
 7538                    "type": "FIELD",
 7539                    "name": "left",
 7540                    "content": {
 7541                      "type": "SYMBOL",
 7542                      "name": "expression"
 7543                    }
 7544                  },
 7545                  {
 7546                    "type": "FIELD",
 7547                    "name": "operator",
 7548                    "content": {
 7549                      "type": "STRING",
 7550                      "value": "+"
 7551                    }
 7552                  },
 7553                  {
 7554                    "type": "FIELD",
 7555                    "name": "right",
 7556                    "content": {
 7557                      "type": "SYMBOL",
 7558                      "name": "expression"
 7559                    }
 7560                  }
 7561                ]
 7562              }
 7563            },
 7564            {
 7565              "type": "PREC_LEFT",
 7566              "value": 10,
 7567              "content": {
 7568                "type": "SEQ",
 7569                "members": [
 7570                  {
 7571                    "type": "FIELD",
 7572                    "name": "left",
 7573                    "content": {
 7574                      "type": "SYMBOL",
 7575                      "name": "expression"
 7576                    }
 7577                  },
 7578                  {
 7579                    "type": "FIELD",
 7580                    "name": "operator",
 7581                    "content": {
 7582                      "type": "STRING",
 7583                      "value": "-"
 7584                    }
 7585                  },
 7586                  {
 7587                    "type": "FIELD",
 7588                    "name": "right",
 7589                    "content": {
 7590                      "type": "SYMBOL",
 7591                      "name": "expression"
 7592                    }
 7593                  }
 7594                ]
 7595              }
 7596            },
 7597            {
 7598              "type": "PREC_LEFT",
 7599              "value": 11,
 7600              "content": {
 7601                "type": "SEQ",
 7602                "members": [
 7603                  {
 7604                    "type": "FIELD",
 7605                    "name": "left",
 7606                    "content": {
 7607                      "type": "SYMBOL",
 7608                      "name": "expression"
 7609                    }
 7610                  },
 7611                  {
 7612                    "type": "FIELD",
 7613                    "name": "operator",
 7614                    "content": {
 7615                      "type": "STRING",
 7616                      "value": "*"
 7617                    }
 7618                  },
 7619                  {
 7620                    "type": "FIELD",
 7621                    "name": "right",
 7622                    "content": {
 7623                      "type": "SYMBOL",
 7624                      "name": "expression"
 7625                    }
 7626                  }
 7627                ]
 7628              }
 7629            },
 7630            {
 7631              "type": "PREC_LEFT",
 7632              "value": 11,
 7633              "content": {
 7634                "type": "SEQ",
 7635                "members": [
 7636                  {
 7637                    "type": "FIELD",
 7638                    "name": "left",
 7639                    "content": {
 7640                      "type": "SYMBOL",
 7641                      "name": "expression"
 7642                    }
 7643                  },
 7644                  {
 7645                    "type": "FIELD",
 7646                    "name": "operator",
 7647                    "content": {
 7648                      "type": "STRING",
 7649                      "value": "/"
 7650                    }
 7651                  },
 7652                  {
 7653                    "type": "FIELD",
 7654                    "name": "right",
 7655                    "content": {
 7656                      "type": "SYMBOL",
 7657                      "name": "expression"
 7658                    }
 7659                  }
 7660                ]
 7661              }
 7662            },
 7663            {
 7664              "type": "PREC_LEFT",
 7665              "value": 11,
 7666              "content": {
 7667                "type": "SEQ",
 7668                "members": [
 7669                  {
 7670                    "type": "FIELD",
 7671                    "name": "left",
 7672                    "content": {
 7673                      "type": "SYMBOL",
 7674                      "name": "expression"
 7675                    }
 7676                  },
 7677                  {
 7678                    "type": "FIELD",
 7679                    "name": "operator",
 7680                    "content": {
 7681                      "type": "STRING",
 7682                      "value": "%"
 7683                    }
 7684                  },
 7685                  {
 7686                    "type": "FIELD",
 7687                    "name": "right",
 7688                    "content": {
 7689                      "type": "SYMBOL",
 7690                      "name": "expression"
 7691                    }
 7692                  }
 7693                ]
 7694              }
 7695            },
 7696            {
 7697              "type": "PREC_LEFT",
 7698              "value": 1,
 7699              "content": {
 7700                "type": "SEQ",
 7701                "members": [
 7702                  {
 7703                    "type": "FIELD",
 7704                    "name": "left",
 7705                    "content": {
 7706                      "type": "SYMBOL",
 7707                      "name": "expression"
 7708                    }
 7709                  },
 7710                  {
 7711                    "type": "FIELD",
 7712                    "name": "operator",
 7713                    "content": {
 7714                      "type": "STRING",
 7715                      "value": "||"
 7716                    }
 7717                  },
 7718                  {
 7719                    "type": "FIELD",
 7720                    "name": "right",
 7721                    "content": {
 7722                      "type": "SYMBOL",
 7723                      "name": "expression"
 7724                    }
 7725                  }
 7726                ]
 7727              }
 7728            },
 7729            {
 7730              "type": "PREC_LEFT",
 7731              "value": 2,
 7732              "content": {
 7733                "type": "SEQ",
 7734                "members": [
 7735                  {
 7736                    "type": "FIELD",
 7737                    "name": "left",
 7738                    "content": {
 7739                      "type": "SYMBOL",
 7740                      "name": "expression"
 7741                    }
 7742                  },
 7743                  {
 7744                    "type": "FIELD",
 7745                    "name": "operator",
 7746                    "content": {
 7747                      "type": "STRING",
 7748                      "value": "&&"
 7749                    }
 7750                  },
 7751                  {
 7752                    "type": "FIELD",
 7753                    "name": "right",
 7754                    "content": {
 7755                      "type": "SYMBOL",
 7756                      "name": "expression"
 7757                    }
 7758                  }
 7759                ]
 7760              }
 7761            },
 7762            {
 7763              "type": "PREC_LEFT",
 7764              "value": 3,
 7765              "content": {
 7766                "type": "SEQ",
 7767                "members": [
 7768                  {
 7769                    "type": "FIELD",
 7770                    "name": "left",
 7771                    "content": {
 7772                      "type": "SYMBOL",
 7773                      "name": "expression"
 7774                    }
 7775                  },
 7776                  {
 7777                    "type": "FIELD",
 7778                    "name": "operator",
 7779                    "content": {
 7780                      "type": "STRING",
 7781                      "value": "|"
 7782                    }
 7783                  },
 7784                  {
 7785                    "type": "FIELD",
 7786                    "name": "right",
 7787                    "content": {
 7788                      "type": "SYMBOL",
 7789                      "name": "expression"
 7790                    }
 7791                  }
 7792                ]
 7793              }
 7794            },
 7795            {
 7796              "type": "PREC_LEFT",
 7797              "value": 4,
 7798              "content": {
 7799                "type": "SEQ",
 7800                "members": [
 7801                  {
 7802                    "type": "FIELD",
 7803                    "name": "left",
 7804                    "content": {
 7805                      "type": "SYMBOL",
 7806                      "name": "expression"
 7807                    }
 7808                  },
 7809                  {
 7810                    "type": "FIELD",
 7811                    "name": "operator",
 7812                    "content": {
 7813                      "type": "STRING",
 7814                      "value": "^"
 7815                    }
 7816                  },
 7817                  {
 7818                    "type": "FIELD",
 7819                    "name": "right",
 7820                    "content": {
 7821                      "type": "SYMBOL",
 7822                      "name": "expression"
 7823                    }
 7824                  }
 7825                ]
 7826              }
 7827            },
 7828            {
 7829              "type": "PREC_LEFT",
 7830              "value": 5,
 7831              "content": {
 7832                "type": "SEQ",
 7833                "members": [
 7834                  {
 7835                    "type": "FIELD",
 7836                    "name": "left",
 7837                    "content": {
 7838                      "type": "SYMBOL",
 7839                      "name": "expression"
 7840                    }
 7841                  },
 7842                  {
 7843                    "type": "FIELD",
 7844                    "name": "operator",
 7845                    "content": {
 7846                      "type": "STRING",
 7847                      "value": "&"
 7848                    }
 7849                  },
 7850                  {
 7851                    "type": "FIELD",
 7852                    "name": "right",
 7853                    "content": {
 7854                      "type": "SYMBOL",
 7855                      "name": "expression"
 7856                    }
 7857                  }
 7858                ]
 7859              }
 7860            },
 7861            {
 7862              "type": "PREC_LEFT",
 7863              "value": 6,
 7864              "content": {
 7865                "type": "SEQ",
 7866                "members": [
 7867                  {
 7868                    "type": "FIELD",
 7869                    "name": "left",
 7870                    "content": {
 7871                      "type": "SYMBOL",
 7872                      "name": "expression"
 7873                    }
 7874                  },
 7875                  {
 7876                    "type": "FIELD",
 7877                    "name": "operator",
 7878                    "content": {
 7879                      "type": "STRING",
 7880                      "value": "=="
 7881                    }
 7882                  },
 7883                  {
 7884                    "type": "FIELD",
 7885                    "name": "right",
 7886                    "content": {
 7887                      "type": "SYMBOL",
 7888                      "name": "expression"
 7889                    }
 7890                  }
 7891                ]
 7892              }
 7893            },
 7894            {
 7895              "type": "PREC_LEFT",
 7896              "value": 6,
 7897              "content": {
 7898                "type": "SEQ",
 7899                "members": [
 7900                  {
 7901                    "type": "FIELD",
 7902                    "name": "left",
 7903                    "content": {
 7904                      "type": "SYMBOL",
 7905                      "name": "expression"
 7906                    }
 7907                  },
 7908                  {
 7909                    "type": "FIELD",
 7910                    "name": "operator",
 7911                    "content": {
 7912                      "type": "STRING",
 7913                      "value": "!="
 7914                    }
 7915                  },
 7916                  {
 7917                    "type": "FIELD",
 7918                    "name": "right",
 7919                    "content": {
 7920                      "type": "SYMBOL",
 7921                      "name": "expression"
 7922                    }
 7923                  }
 7924                ]
 7925              }
 7926            },
 7927            {
 7928              "type": "PREC_LEFT",
 7929              "value": 7,
 7930              "content": {
 7931                "type": "SEQ",
 7932                "members": [
 7933                  {
 7934                    "type": "FIELD",
 7935                    "name": "left",
 7936                    "content": {
 7937                      "type": "SYMBOL",
 7938                      "name": "expression"
 7939                    }
 7940                  },
 7941                  {
 7942                    "type": "FIELD",
 7943                    "name": "operator",
 7944                    "content": {
 7945                      "type": "STRING",
 7946                      "value": ">"
 7947                    }
 7948                  },
 7949                  {
 7950                    "type": "FIELD",
 7951                    "name": "right",
 7952                    "content": {
 7953                      "type": "SYMBOL",
 7954                      "name": "expression"
 7955                    }
 7956                  }
 7957                ]
 7958              }
 7959            },
 7960            {
 7961              "type": "PREC_LEFT",
 7962              "value": 7,
 7963              "content": {
 7964                "type": "SEQ",
 7965                "members": [
 7966                  {
 7967                    "type": "FIELD",
 7968                    "name": "left",
 7969                    "content": {
 7970                      "type": "SYMBOL",
 7971                      "name": "expression"
 7972                    }
 7973                  },
 7974                  {
 7975                    "type": "FIELD",
 7976                    "name": "operator",
 7977                    "content": {
 7978                      "type": "STRING",
 7979                      "value": ">="
 7980                    }
 7981                  },
 7982                  {
 7983                    "type": "FIELD",
 7984                    "name": "right",
 7985                    "content": {
 7986                      "type": "SYMBOL",
 7987                      "name": "expression"
 7988                    }
 7989                  }
 7990                ]
 7991              }
 7992            },
 7993            {
 7994              "type": "PREC_LEFT",
 7995              "value": 7,
 7996              "content": {
 7997                "type": "SEQ",
 7998                "members": [
 7999                  {
 8000                    "type": "FIELD",
 8001                    "name": "left",
 8002                    "content": {
 8003                      "type": "SYMBOL",
 8004                      "name": "expression"
 8005                    }
 8006                  },
 8007                  {
 8008                    "type": "FIELD",
 8009                    "name": "operator",
 8010                    "content": {
 8011                      "type": "STRING",
 8012                      "value": "<="
 8013                    }
 8014                  },
 8015                  {
 8016                    "type": "FIELD",
 8017                    "name": "right",
 8018                    "content": {
 8019                      "type": "SYMBOL",
 8020                      "name": "expression"
 8021                    }
 8022                  }
 8023                ]
 8024              }
 8025            },
 8026            {
 8027              "type": "PREC_LEFT",
 8028              "value": 7,
 8029              "content": {
 8030                "type": "SEQ",
 8031                "members": [
 8032                  {
 8033                    "type": "FIELD",
 8034                    "name": "left",
 8035                    "content": {
 8036                      "type": "SYMBOL",
 8037                      "name": "expression"
 8038                    }
 8039                  },
 8040                  {
 8041                    "type": "FIELD",
 8042                    "name": "operator",
 8043                    "content": {
 8044                      "type": "STRING",
 8045                      "value": "<"
 8046                    }
 8047                  },
 8048                  {
 8049                    "type": "FIELD",
 8050                    "name": "right",
 8051                    "content": {
 8052                      "type": "SYMBOL",
 8053                      "name": "expression"
 8054                    }
 8055                  }
 8056                ]
 8057              }
 8058            },
 8059            {
 8060              "type": "PREC_LEFT",
 8061              "value": 9,
 8062              "content": {
 8063                "type": "SEQ",
 8064                "members": [
 8065                  {
 8066                    "type": "FIELD",
 8067                    "name": "left",
 8068                    "content": {
 8069                      "type": "SYMBOL",
 8070                      "name": "expression"
 8071                    }
 8072                  },
 8073                  {
 8074                    "type": "FIELD",
 8075                    "name": "operator",
 8076                    "content": {
 8077                      "type": "STRING",
 8078                      "value": "<<"
 8079                    }
 8080                  },
 8081                  {
 8082                    "type": "FIELD",
 8083                    "name": "right",
 8084                    "content": {
 8085                      "type": "SYMBOL",
 8086                      "name": "expression"
 8087                    }
 8088                  }
 8089                ]
 8090              }
 8091            },
 8092            {
 8093              "type": "PREC_LEFT",
 8094              "value": 9,
 8095              "content": {
 8096                "type": "SEQ",
 8097                "members": [
 8098                  {
 8099                    "type": "FIELD",
 8100                    "name": "left",
 8101                    "content": {
 8102                      "type": "SYMBOL",
 8103                      "name": "expression"
 8104                    }
 8105                  },
 8106                  {
 8107                    "type": "FIELD",
 8108                    "name": "operator",
 8109                    "content": {
 8110                      "type": "STRING",
 8111                      "value": ">>"
 8112                    }
 8113                  },
 8114                  {
 8115                    "type": "FIELD",
 8116                    "name": "right",
 8117                    "content": {
 8118                      "type": "SYMBOL",
 8119                      "name": "expression"
 8120                    }
 8121                  }
 8122                ]
 8123              }
 8124            }
 8125          ]
 8126        },
 8127        {
 8128          "type": "PREC_LEFT",
 8129          "value": 8,
 8130          "content": {
 8131            "type": "SEQ",
 8132            "members": [
 8133              {
 8134                "type": "FIELD",
 8135                "name": "left",
 8136                "content": {
 8137                  "type": "SYMBOL",
 8138                  "name": "expression"
 8139                }
 8140              },
 8141              {
 8142                "type": "FIELD",
 8143                "name": "operator",
 8144                "content": {
 8145                  "type": "STRING",
 8146                  "value": "<=>"
 8147                }
 8148              },
 8149              {
 8150                "type": "FIELD",
 8151                "name": "right",
 8152                "content": {
 8153                  "type": "SYMBOL",
 8154                  "name": "expression"
 8155                }
 8156              }
 8157            ]
 8158          }
 8159        },
 8160        {
 8161          "type": "PREC_LEFT",
 8162          "value": 1,
 8163          "content": {
 8164            "type": "SEQ",
 8165            "members": [
 8166              {
 8167                "type": "FIELD",
 8168                "name": "left",
 8169                "content": {
 8170                  "type": "SYMBOL",
 8171                  "name": "expression"
 8172                }
 8173              },
 8174              {
 8175                "type": "FIELD",
 8176                "name": "operator",
 8177                "content": {
 8178                  "type": "STRING",
 8179                  "value": "or"
 8180                }
 8181              },
 8182              {
 8183                "type": "FIELD",
 8184                "name": "right",
 8185                "content": {
 8186                  "type": "SYMBOL",
 8187                  "name": "expression"
 8188                }
 8189              }
 8190            ]
 8191          }
 8192        },
 8193        {
 8194          "type": "PREC_LEFT",
 8195          "value": 2,
 8196          "content": {
 8197            "type": "SEQ",
 8198            "members": [
 8199              {
 8200                "type": "FIELD",
 8201                "name": "left",
 8202                "content": {
 8203                  "type": "SYMBOL",
 8204                  "name": "expression"
 8205                }
 8206              },
 8207              {
 8208                "type": "FIELD",
 8209                "name": "operator",
 8210                "content": {
 8211                  "type": "STRING",
 8212                  "value": "and"
 8213                }
 8214              },
 8215              {
 8216                "type": "FIELD",
 8217                "name": "right",
 8218                "content": {
 8219                  "type": "SYMBOL",
 8220                  "name": "expression"
 8221                }
 8222              }
 8223            ]
 8224          }
 8225        },
 8226        {
 8227          "type": "PREC_LEFT",
 8228          "value": 3,
 8229          "content": {
 8230            "type": "SEQ",
 8231            "members": [
 8232              {
 8233                "type": "FIELD",
 8234                "name": "left",
 8235                "content": {
 8236                  "type": "SYMBOL",
 8237                  "name": "expression"
 8238                }
 8239              },
 8240              {
 8241                "type": "FIELD",
 8242                "name": "operator",
 8243                "content": {
 8244                  "type": "STRING",
 8245                  "value": "bitor"
 8246                }
 8247              },
 8248              {
 8249                "type": "FIELD",
 8250                "name": "right",
 8251                "content": {
 8252                  "type": "SYMBOL",
 8253                  "name": "expression"
 8254                }
 8255              }
 8256            ]
 8257          }
 8258        },
 8259        {
 8260          "type": "PREC_LEFT",
 8261          "value": 4,
 8262          "content": {
 8263            "type": "SEQ",
 8264            "members": [
 8265              {
 8266                "type": "FIELD",
 8267                "name": "left",
 8268                "content": {
 8269                  "type": "SYMBOL",
 8270                  "name": "expression"
 8271                }
 8272              },
 8273              {
 8274                "type": "FIELD",
 8275                "name": "operator",
 8276                "content": {
 8277                  "type": "STRING",
 8278                  "value": "xor"
 8279                }
 8280              },
 8281              {
 8282                "type": "FIELD",
 8283                "name": "right",
 8284                "content": {
 8285                  "type": "SYMBOL",
 8286                  "name": "expression"
 8287                }
 8288              }
 8289            ]
 8290          }
 8291        },
 8292        {
 8293          "type": "PREC_LEFT",
 8294          "value": 5,
 8295          "content": {
 8296            "type": "SEQ",
 8297            "members": [
 8298              {
 8299                "type": "FIELD",
 8300                "name": "left",
 8301                "content": {
 8302                  "type": "SYMBOL",
 8303                  "name": "expression"
 8304                }
 8305              },
 8306              {
 8307                "type": "FIELD",
 8308                "name": "operator",
 8309                "content": {
 8310                  "type": "STRING",
 8311                  "value": "bitand"
 8312                }
 8313              },
 8314              {
 8315                "type": "FIELD",
 8316                "name": "right",
 8317                "content": {
 8318                  "type": "SYMBOL",
 8319                  "name": "expression"
 8320                }
 8321              }
 8322            ]
 8323          }
 8324        },
 8325        {
 8326          "type": "PREC_LEFT",
 8327          "value": 6,
 8328          "content": {
 8329            "type": "SEQ",
 8330            "members": [
 8331              {
 8332                "type": "FIELD",
 8333                "name": "left",
 8334                "content": {
 8335                  "type": "SYMBOL",
 8336                  "name": "expression"
 8337                }
 8338              },
 8339              {
 8340                "type": "FIELD",
 8341                "name": "operator",
 8342                "content": {
 8343                  "type": "STRING",
 8344                  "value": "not_eq"
 8345                }
 8346              },
 8347              {
 8348                "type": "FIELD",
 8349                "name": "right",
 8350                "content": {
 8351                  "type": "SYMBOL",
 8352                  "name": "expression"
 8353                }
 8354              }
 8355            ]
 8356          }
 8357        }
 8358      ]
 8359    },
 8360    "update_expression": {
 8361      "type": "PREC_RIGHT",
 8362      "value": 14,
 8363      "content": {
 8364        "type": "CHOICE",
 8365        "members": [
 8366          {
 8367            "type": "SEQ",
 8368            "members": [
 8369              {
 8370                "type": "FIELD",
 8371                "name": "operator",
 8372                "content": {
 8373                  "type": "CHOICE",
 8374                  "members": [
 8375                    {
 8376                      "type": "STRING",
 8377                      "value": "--"
 8378                    },
 8379                    {
 8380                      "type": "STRING",
 8381                      "value": "++"
 8382                    }
 8383                  ]
 8384                }
 8385              },
 8386              {
 8387                "type": "FIELD",
 8388                "name": "argument",
 8389                "content": {
 8390                  "type": "SYMBOL",
 8391                  "name": "expression"
 8392                }
 8393              }
 8394            ]
 8395          },
 8396          {
 8397            "type": "SEQ",
 8398            "members": [
 8399              {
 8400                "type": "FIELD",
 8401                "name": "argument",
 8402                "content": {
 8403                  "type": "SYMBOL",
 8404                  "name": "expression"
 8405                }
 8406              },
 8407              {
 8408                "type": "FIELD",
 8409                "name": "operator",
 8410                "content": {
 8411                  "type": "CHOICE",
 8412                  "members": [
 8413                    {
 8414                      "type": "STRING",
 8415                      "value": "--"
 8416                    },
 8417                    {
 8418                      "type": "STRING",
 8419                      "value": "++"
 8420                    }
 8421                  ]
 8422                }
 8423              }
 8424            ]
 8425          }
 8426        ]
 8427      }
 8428    },
 8429    "cast_expression": {
 8430      "type": "PREC",
 8431      "value": 12,
 8432      "content": {
 8433        "type": "SEQ",
 8434        "members": [
 8435          {
 8436            "type": "STRING",
 8437            "value": "("
 8438          },
 8439          {
 8440            "type": "FIELD",
 8441            "name": "type",
 8442            "content": {
 8443              "type": "SYMBOL",
 8444              "name": "type_descriptor"
 8445            }
 8446          },
 8447          {
 8448            "type": "STRING",
 8449            "value": ")"
 8450          },
 8451          {
 8452            "type": "FIELD",
 8453            "name": "value",
 8454            "content": {
 8455              "type": "SYMBOL",
 8456              "name": "expression"
 8457            }
 8458          }
 8459        ]
 8460      }
 8461    },
 8462    "type_descriptor": {
 8463      "type": "PREC_RIGHT",
 8464      "value": 0,
 8465      "content": {
 8466        "type": "SEQ",
 8467        "members": [
 8468          {
 8469            "type": "REPEAT",
 8470            "content": {
 8471              "type": "SYMBOL",
 8472              "name": "type_qualifier"
 8473            }
 8474          },
 8475          {
 8476            "type": "FIELD",
 8477            "name": "type",
 8478            "content": {
 8479              "type": "SYMBOL",
 8480              "name": "type_specifier"
 8481            }
 8482          },
 8483          {
 8484            "type": "REPEAT",
 8485            "content": {
 8486              "type": "SYMBOL",
 8487              "name": "type_qualifier"
 8488            }
 8489          },
 8490          {
 8491            "type": "FIELD",
 8492            "name": "declarator",
 8493            "content": {
 8494              "type": "CHOICE",
 8495              "members": [
 8496                {
 8497                  "type": "SYMBOL",
 8498                  "name": "_abstract_declarator"
 8499                },
 8500                {
 8501                  "type": "BLANK"
 8502                }
 8503              ]
 8504            }
 8505          }
 8506        ]
 8507      }
 8508    },
 8509    "sizeof_expression": {
 8510      "type": "PREC_RIGHT",
 8511      "value": 13,
 8512      "content": {
 8513        "type": "CHOICE",
 8514        "members": [
 8515          {
 8516            "type": "PREC",
 8517            "value": 13,
 8518            "content": {
 8519              "type": "SEQ",
 8520              "members": [
 8521                {
 8522                  "type": "STRING",
 8523                  "value": "sizeof"
 8524                },
 8525                {
 8526                  "type": "CHOICE",
 8527                  "members": [
 8528                    {
 8529                      "type": "FIELD",
 8530                      "name": "value",
 8531                      "content": {
 8532                        "type": "SYMBOL",
 8533                        "name": "expression"
 8534                      }
 8535                    },
 8536                    {
 8537                      "type": "SEQ",
 8538                      "members": [
 8539                        {
 8540                          "type": "STRING",
 8541                          "value": "("
 8542                        },
 8543                        {
 8544                          "type": "FIELD",
 8545                          "name": "type",
 8546                          "content": {
 8547                            "type": "SYMBOL",
 8548                            "name": "type_descriptor"
 8549                          }
 8550                        },
 8551                        {
 8552                          "type": "STRING",
 8553                          "value": ")"
 8554                        }
 8555                      ]
 8556                    }
 8557                  ]
 8558                }
 8559              ]
 8560            }
 8561          },
 8562          {
 8563            "type": "SEQ",
 8564            "members": [
 8565              {
 8566                "type": "STRING",
 8567                "value": "sizeof"
 8568              },
 8569              {
 8570                "type": "STRING",
 8571                "value": "..."
 8572              },
 8573              {
 8574                "type": "STRING",
 8575                "value": "("
 8576              },
 8577              {
 8578                "type": "FIELD",
 8579                "name": "value",
 8580                "content": {
 8581                  "type": "SYMBOL",
 8582                  "name": "identifier"
 8583                }
 8584              },
 8585              {
 8586                "type": "STRING",
 8587                "value": ")"
 8588              }
 8589            ]
 8590          }
 8591        ]
 8592      }
 8593    },
 8594    "alignof_expression": {
 8595      "type": "PREC",
 8596      "value": 13,
 8597      "content": {
 8598        "type": "SEQ",
 8599        "members": [
 8600          {
 8601            "type": "CHOICE",
 8602            "members": [
 8603              {
 8604                "type": "STRING",
 8605                "value": "__alignof__"
 8606              },
 8607              {
 8608                "type": "STRING",
 8609                "value": "__alignof"
 8610              },
 8611              {
 8612                "type": "STRING",
 8613                "value": "_alignof"
 8614              },
 8615              {
 8616                "type": "STRING",
 8617                "value": "alignof"
 8618              },
 8619              {
 8620                "type": "STRING",
 8621                "value": "_Alignof"
 8622              }
 8623            ]
 8624          },
 8625          {
 8626            "type": "SEQ",
 8627            "members": [
 8628              {
 8629                "type": "STRING",
 8630                "value": "("
 8631              },
 8632              {
 8633                "type": "FIELD",
 8634                "name": "type",
 8635                "content": {
 8636                  "type": "SYMBOL",
 8637                  "name": "type_descriptor"
 8638                }
 8639              },
 8640              {
 8641                "type": "STRING",
 8642                "value": ")"
 8643              }
 8644            ]
 8645          }
 8646        ]
 8647      }
 8648    },
 8649    "offsetof_expression": {
 8650      "type": "PREC",
 8651      "value": 8,
 8652      "content": {
 8653        "type": "SEQ",
 8654        "members": [
 8655          {
 8656            "type": "STRING",
 8657            "value": "offsetof"
 8658          },
 8659          {
 8660            "type": "SEQ",
 8661            "members": [
 8662              {
 8663                "type": "STRING",
 8664                "value": "("
 8665              },
 8666              {
 8667                "type": "FIELD",
 8668                "name": "type",
 8669                "content": {
 8670                  "type": "SYMBOL",
 8671                  "name": "type_descriptor"
 8672                }
 8673              },
 8674              {
 8675                "type": "STRING",
 8676                "value": ","
 8677              },
 8678              {
 8679                "type": "FIELD",
 8680                "name": "member",
 8681                "content": {
 8682                  "type": "SYMBOL",
 8683                  "name": "_field_identifier"
 8684                }
 8685              },
 8686              {
 8687                "type": "STRING",
 8688                "value": ")"
 8689              }
 8690            ]
 8691          }
 8692        ]
 8693      }
 8694    },
 8695    "generic_expression": {
 8696      "type": "PREC",
 8697      "value": 15,
 8698      "content": {
 8699        "type": "SEQ",
 8700        "members": [
 8701          {
 8702            "type": "STRING",
 8703            "value": "_Generic"
 8704          },
 8705          {
 8706            "type": "STRING",
 8707            "value": "("
 8708          },
 8709          {
 8710            "type": "SYMBOL",
 8711            "name": "expression"
 8712          },
 8713          {
 8714            "type": "STRING",
 8715            "value": ","
 8716          },
 8717          {
 8718            "type": "SEQ",
 8719            "members": [
 8720              {
 8721                "type": "SEQ",
 8722                "members": [
 8723                  {
 8724                    "type": "SYMBOL",
 8725                    "name": "type_descriptor"
 8726                  },
 8727                  {
 8728                    "type": "STRING",
 8729                    "value": ":"
 8730                  },
 8731                  {
 8732                    "type": "SYMBOL",
 8733                    "name": "expression"
 8734                  }
 8735                ]
 8736              },
 8737              {
 8738                "type": "REPEAT",
 8739                "content": {
 8740                  "type": "SEQ",
 8741                  "members": [
 8742                    {
 8743                      "type": "STRING",
 8744                      "value": ","
 8745                    },
 8746                    {
 8747                      "type": "SEQ",
 8748                      "members": [
 8749                        {
 8750                          "type": "SYMBOL",
 8751                          "name": "type_descriptor"
 8752                        },
 8753                        {
 8754                          "type": "STRING",
 8755                          "value": ":"
 8756                        },
 8757                        {
 8758                          "type": "SYMBOL",
 8759                          "name": "expression"
 8760                        }
 8761                      ]
 8762                    }
 8763                  ]
 8764                }
 8765              }
 8766            ]
 8767          },
 8768          {
 8769            "type": "STRING",
 8770            "value": ")"
 8771          }
 8772        ]
 8773      }
 8774    },
 8775    "subscript_expression": {
 8776      "type": "PREC",
 8777      "value": 17,
 8778      "content": {
 8779        "type": "SEQ",
 8780        "members": [
 8781          {
 8782            "type": "FIELD",
 8783            "name": "argument",
 8784            "content": {
 8785              "type": "SYMBOL",
 8786              "name": "expression"
 8787            }
 8788          },
 8789          {
 8790            "type": "FIELD",
 8791            "name": "indices",
 8792            "content": {
 8793              "type": "SYMBOL",
 8794              "name": "subscript_argument_list"
 8795            }
 8796          }
 8797        ]
 8798      }
 8799    },
 8800    "call_expression": {
 8801      "type": "CHOICE",
 8802      "members": [
 8803        {
 8804          "type": "PREC",
 8805          "value": 15,
 8806          "content": {
 8807            "type": "SEQ",
 8808            "members": [
 8809              {
 8810                "type": "FIELD",
 8811                "name": "function",
 8812                "content": {
 8813                  "type": "SYMBOL",
 8814                  "name": "expression"
 8815                }
 8816              },
 8817              {
 8818                "type": "FIELD",
 8819                "name": "arguments",
 8820                "content": {
 8821                  "type": "SYMBOL",
 8822                  "name": "argument_list"
 8823                }
 8824              }
 8825            ]
 8826          }
 8827        },
 8828        {
 8829          "type": "SEQ",
 8830          "members": [
 8831            {
 8832              "type": "FIELD",
 8833              "name": "function",
 8834              "content": {
 8835                "type": "SYMBOL",
 8836                "name": "primitive_type"
 8837              }
 8838            },
 8839            {
 8840              "type": "FIELD",
 8841              "name": "arguments",
 8842              "content": {
 8843                "type": "SYMBOL",
 8844                "name": "argument_list"
 8845              }
 8846            }
 8847          ]
 8848        }
 8849      ]
 8850    },
 8851    "gnu_asm_expression": {
 8852      "type": "PREC",
 8853      "value": 15,
 8854      "content": {
 8855        "type": "SEQ",
 8856        "members": [
 8857          {
 8858            "type": "CHOICE",
 8859            "members": [
 8860              {
 8861                "type": "STRING",
 8862                "value": "asm"
 8863              },
 8864              {
 8865                "type": "STRING",
 8866                "value": "__asm__"
 8867              }
 8868            ]
 8869          },
 8870          {
 8871            "type": "REPEAT",
 8872            "content": {
 8873              "type": "SYMBOL",
 8874              "name": "gnu_asm_qualifier"
 8875            }
 8876          },
 8877          {
 8878            "type": "STRING",
 8879            "value": "("
 8880          },
 8881          {
 8882            "type": "FIELD",
 8883            "name": "assembly_code",
 8884            "content": {
 8885              "type": "SYMBOL",
 8886              "name": "_string"
 8887            }
 8888          },
 8889          {
 8890            "type": "CHOICE",
 8891            "members": [
 8892              {
 8893                "type": "SEQ",
 8894                "members": [
 8895                  {
 8896                    "type": "FIELD",
 8897                    "name": "output_operands",
 8898                    "content": {
 8899                      "type": "SYMBOL",
 8900                      "name": "gnu_asm_output_operand_list"
 8901                    }
 8902                  },
 8903                  {
 8904                    "type": "CHOICE",
 8905                    "members": [
 8906                      {
 8907                        "type": "SEQ",
 8908                        "members": [
 8909                          {
 8910                            "type": "FIELD",
 8911                            "name": "input_operands",
 8912                            "content": {
 8913                              "type": "SYMBOL",
 8914                              "name": "gnu_asm_input_operand_list"
 8915                            }
 8916                          },
 8917                          {
 8918                            "type": "CHOICE",
 8919                            "members": [
 8920                              {
 8921                                "type": "SEQ",
 8922                                "members": [
 8923                                  {
 8924                                    "type": "FIELD",
 8925                                    "name": "clobbers",
 8926                                    "content": {
 8927                                      "type": "SYMBOL",
 8928                                      "name": "gnu_asm_clobber_list"
 8929                                    }
 8930                                  },
 8931                                  {
 8932                                    "type": "CHOICE",
 8933                                    "members": [
 8934                                      {
 8935                                        "type": "FIELD",
 8936                                        "name": "goto_labels",
 8937                                        "content": {
 8938                                          "type": "SYMBOL",
 8939                                          "name": "gnu_asm_goto_list"
 8940                                        }
 8941                                      },
 8942                                      {
 8943                                        "type": "BLANK"
 8944                                      }
 8945                                    ]
 8946                                  }
 8947                                ]
 8948                              },
 8949                              {
 8950                                "type": "BLANK"
 8951                              }
 8952                            ]
 8953                          }
 8954                        ]
 8955                      },
 8956                      {
 8957                        "type": "BLANK"
 8958                      }
 8959                    ]
 8960                  }
 8961                ]
 8962              },
 8963              {
 8964                "type": "BLANK"
 8965              }
 8966            ]
 8967          },
 8968          {
 8969            "type": "STRING",
 8970            "value": ")"
 8971          }
 8972        ]
 8973      }
 8974    },
 8975    "gnu_asm_qualifier": {
 8976      "type": "CHOICE",
 8977      "members": [
 8978        {
 8979          "type": "STRING",
 8980          "value": "volatile"
 8981        },
 8982        {
 8983          "type": "STRING",
 8984          "value": "inline"
 8985        },
 8986        {
 8987          "type": "STRING",
 8988          "value": "goto"
 8989        }
 8990      ]
 8991    },
 8992    "gnu_asm_output_operand_list": {
 8993      "type": "SEQ",
 8994      "members": [
 8995        {
 8996          "type": "STRING",
 8997          "value": ":"
 8998        },
 8999        {
 9000          "type": "CHOICE",
 9001          "members": [
 9002            {
 9003              "type": "SEQ",
 9004              "members": [
 9005                {
 9006                  "type": "FIELD",
 9007                  "name": "operand",
 9008                  "content": {
 9009                    "type": "SYMBOL",
 9010                    "name": "gnu_asm_output_operand"
 9011                  }
 9012                },
 9013                {
 9014                  "type": "REPEAT",
 9015                  "content": {
 9016                    "type": "SEQ",
 9017                    "members": [
 9018                      {
 9019                        "type": "STRING",
 9020                        "value": ","
 9021                      },
 9022                      {
 9023                        "type": "FIELD",
 9024                        "name": "operand",
 9025                        "content": {
 9026                          "type": "SYMBOL",
 9027                          "name": "gnu_asm_output_operand"
 9028                        }
 9029                      }
 9030                    ]
 9031                  }
 9032                }
 9033              ]
 9034            },
 9035            {
 9036              "type": "BLANK"
 9037            }
 9038          ]
 9039        }
 9040      ]
 9041    },
 9042    "gnu_asm_output_operand": {
 9043      "type": "SEQ",
 9044      "members": [
 9045        {
 9046          "type": "CHOICE",
 9047          "members": [
 9048            {
 9049              "type": "SEQ",
 9050              "members": [
 9051                {
 9052                  "type": "STRING",
 9053                  "value": "["
 9054                },
 9055                {
 9056                  "type": "FIELD",
 9057                  "name": "symbol",
 9058                  "content": {
 9059                    "type": "SYMBOL",
 9060                    "name": "identifier"
 9061                  }
 9062                },
 9063                {
 9064                  "type": "STRING",
 9065                  "value": "]"
 9066                }
 9067              ]
 9068            },
 9069            {
 9070              "type": "BLANK"
 9071            }
 9072          ]
 9073        },
 9074        {
 9075          "type": "FIELD",
 9076          "name": "constraint",
 9077          "content": {
 9078            "type": "SYMBOL",
 9079            "name": "string_literal"
 9080          }
 9081        },
 9082        {
 9083          "type": "STRING",
 9084          "value": "("
 9085        },
 9086        {
 9087          "type": "FIELD",
 9088          "name": "value",
 9089          "content": {
 9090            "type": "SYMBOL",
 9091            "name": "identifier"
 9092          }
 9093        },
 9094        {
 9095          "type": "STRING",
 9096          "value": ")"
 9097        }
 9098      ]
 9099    },
 9100    "gnu_asm_input_operand_list": {
 9101      "type": "SEQ",
 9102      "members": [
 9103        {
 9104          "type": "STRING",
 9105          "value": ":"
 9106        },
 9107        {
 9108          "type": "CHOICE",
 9109          "members": [
 9110            {
 9111              "type": "SEQ",
 9112              "members": [
 9113                {
 9114                  "type": "FIELD",
 9115                  "name": "operand",
 9116                  "content": {
 9117                    "type": "SYMBOL",
 9118                    "name": "gnu_asm_input_operand"
 9119                  }
 9120                },
 9121                {
 9122                  "type": "REPEAT",
 9123                  "content": {
 9124                    "type": "SEQ",
 9125                    "members": [
 9126                      {
 9127                        "type": "STRING",
 9128                        "value": ","
 9129                      },
 9130                      {
 9131                        "type": "FIELD",
 9132                        "name": "operand",
 9133                        "content": {
 9134                          "type": "SYMBOL",
 9135                          "name": "gnu_asm_input_operand"
 9136                        }
 9137                      }
 9138                    ]
 9139                  }
 9140                }
 9141              ]
 9142            },
 9143            {
 9144              "type": "BLANK"
 9145            }
 9146          ]
 9147        }
 9148      ]
 9149    },
 9150    "gnu_asm_input_operand": {
 9151      "type": "SEQ",
 9152      "members": [
 9153        {
 9154          "type": "CHOICE",
 9155          "members": [
 9156            {
 9157              "type": "SEQ",
 9158              "members": [
 9159                {
 9160                  "type": "STRING",
 9161                  "value": "["
 9162                },
 9163                {
 9164                  "type": "FIELD",
 9165                  "name": "symbol",
 9166                  "content": {
 9167                    "type": "SYMBOL",
 9168                    "name": "identifier"
 9169                  }
 9170                },
 9171                {
 9172                  "type": "STRING",
 9173                  "value": "]"
 9174                }
 9175              ]
 9176            },
 9177            {
 9178              "type": "BLANK"
 9179            }
 9180          ]
 9181        },
 9182        {
 9183          "type": "FIELD",
 9184          "name": "constraint",
 9185          "content": {
 9186            "type": "SYMBOL",
 9187            "name": "string_literal"
 9188          }
 9189        },
 9190        {
 9191          "type": "STRING",
 9192          "value": "("
 9193        },
 9194        {
 9195          "type": "FIELD",
 9196          "name": "value",
 9197          "content": {
 9198            "type": "SYMBOL",
 9199            "name": "expression"
 9200          }
 9201        },
 9202        {
 9203          "type": "STRING",
 9204          "value": ")"
 9205        }
 9206      ]
 9207    },
 9208    "gnu_asm_clobber_list": {
 9209      "type": "SEQ",
 9210      "members": [
 9211        {
 9212          "type": "STRING",
 9213          "value": ":"
 9214        },
 9215        {
 9216          "type": "CHOICE",
 9217          "members": [
 9218            {
 9219              "type": "SEQ",
 9220              "members": [
 9221                {
 9222                  "type": "FIELD",
 9223                  "name": "register",
 9224                  "content": {
 9225                    "type": "SYMBOL",
 9226                    "name": "_string"
 9227                  }
 9228                },
 9229                {
 9230                  "type": "REPEAT",
 9231                  "content": {
 9232                    "type": "SEQ",
 9233                    "members": [
 9234                      {
 9235                        "type": "STRING",
 9236                        "value": ","
 9237                      },
 9238                      {
 9239                        "type": "FIELD",
 9240                        "name": "register",
 9241                        "content": {
 9242                          "type": "SYMBOL",
 9243                          "name": "_string"
 9244                        }
 9245                      }
 9246                    ]
 9247                  }
 9248                }
 9249              ]
 9250            },
 9251            {
 9252              "type": "BLANK"
 9253            }
 9254          ]
 9255        }
 9256      ]
 9257    },
 9258    "gnu_asm_goto_list": {
 9259      "type": "SEQ",
 9260      "members": [
 9261        {
 9262          "type": "STRING",
 9263          "value": ":"
 9264        },
 9265        {
 9266          "type": "CHOICE",
 9267          "members": [
 9268            {
 9269              "type": "SEQ",
 9270              "members": [
 9271                {
 9272                  "type": "FIELD",
 9273                  "name": "label",
 9274                  "content": {
 9275                    "type": "SYMBOL",
 9276                    "name": "identifier"
 9277                  }
 9278                },
 9279                {
 9280                  "type": "REPEAT",
 9281                  "content": {
 9282                    "type": "SEQ",
 9283                    "members": [
 9284                      {
 9285                        "type": "STRING",
 9286                        "value": ","
 9287                      },
 9288                      {
 9289                        "type": "FIELD",
 9290                        "name": "label",
 9291                        "content": {
 9292                          "type": "SYMBOL",
 9293                          "name": "identifier"
 9294                        }
 9295                      }
 9296                    ]
 9297                  }
 9298                }
 9299              ]
 9300            },
 9301            {
 9302              "type": "BLANK"
 9303            }
 9304          ]
 9305        }
 9306      ]
 9307    },
 9308    "argument_list": {
 9309      "type": "SEQ",
 9310      "members": [
 9311        {
 9312          "type": "STRING",
 9313          "value": "("
 9314        },
 9315        {
 9316          "type": "CHOICE",
 9317          "members": [
 9318            {
 9319              "type": "SEQ",
 9320              "members": [
 9321                {
 9322                  "type": "CHOICE",
 9323                  "members": [
 9324                    {
 9325                      "type": "SEQ",
 9326                      "members": [
 9327                        {
 9328                          "type": "CHOICE",
 9329                          "members": [
 9330                            {
 9331                              "type": "STRING",
 9332                              "value": "__extension__"
 9333                            },
 9334                            {
 9335                              "type": "BLANK"
 9336                            }
 9337                          ]
 9338                        },
 9339                        {
 9340                          "type": "SYMBOL",
 9341                          "name": "expression"
 9342                        }
 9343                      ]
 9344                    },
 9345                    {
 9346                      "type": "SYMBOL",
 9347                      "name": "initializer_list"
 9348                    },
 9349                    {
 9350                      "type": "SYMBOL",
 9351                      "name": "compound_statement"
 9352                    }
 9353                  ]
 9354                },
 9355                {
 9356                  "type": "REPEAT",
 9357                  "content": {
 9358                    "type": "SEQ",
 9359                    "members": [
 9360                      {
 9361                        "type": "STRING",
 9362                        "value": ","
 9363                      },
 9364                      {
 9365                        "type": "CHOICE",
 9366                        "members": [
 9367                          {
 9368                            "type": "SEQ",
 9369                            "members": [
 9370                              {
 9371                                "type": "CHOICE",
 9372                                "members": [
 9373                                  {
 9374                                    "type": "STRING",
 9375                                    "value": "__extension__"
 9376                                  },
 9377                                  {
 9378                                    "type": "BLANK"
 9379                                  }
 9380                                ]
 9381                              },
 9382                              {
 9383                                "type": "SYMBOL",
 9384                                "name": "expression"
 9385                              }
 9386                            ]
 9387                          },
 9388                          {
 9389                            "type": "SYMBOL",
 9390                            "name": "initializer_list"
 9391                          },
 9392                          {
 9393                            "type": "SYMBOL",
 9394                            "name": "compound_statement"
 9395                          }
 9396                        ]
 9397                      }
 9398                    ]
 9399                  }
 9400                }
 9401              ]
 9402            },
 9403            {
 9404              "type": "BLANK"
 9405            }
 9406          ]
 9407        },
 9408        {
 9409          "type": "STRING",
 9410          "value": ")"
 9411        }
 9412      ]
 9413    },
 9414    "field_expression": {
 9415      "type": "SEQ",
 9416      "members": [
 9417        {
 9418          "type": "PREC",
 9419          "value": 16,
 9420          "content": {
 9421            "type": "SEQ",
 9422            "members": [
 9423              {
 9424                "type": "FIELD",
 9425                "name": "argument",
 9426                "content": {
 9427                  "type": "SYMBOL",
 9428                  "name": "expression"
 9429                }
 9430              },
 9431              {
 9432                "type": "FIELD",
 9433                "name": "operator",
 9434                "content": {
 9435                  "type": "CHOICE",
 9436                  "members": [
 9437                    {
 9438                      "type": "STRING",
 9439                      "value": "."
 9440                    },
 9441                    {
 9442                      "type": "STRING",
 9443                      "value": ".*"
 9444                    },
 9445                    {
 9446                      "type": "STRING",
 9447                      "value": "->"
 9448                    }
 9449                  ]
 9450                }
 9451              }
 9452            ]
 9453          }
 9454        },
 9455        {
 9456          "type": "FIELD",
 9457          "name": "field",
 9458          "content": {
 9459            "type": "CHOICE",
 9460            "members": [
 9461              {
 9462                "type": "PREC_DYNAMIC",
 9463                "value": 1,
 9464                "content": {
 9465                  "type": "SYMBOL",
 9466                  "name": "_field_identifier"
 9467                }
 9468              },
 9469              {
 9470                "type": "ALIAS",
 9471                "content": {
 9472                  "type": "SYMBOL",
 9473                  "name": "qualified_field_identifier"
 9474                },
 9475                "named": true,
 9476                "value": "qualified_identifier"
 9477              },
 9478              {
 9479                "type": "SYMBOL",
 9480                "name": "destructor_name"
 9481              },
 9482              {
 9483                "type": "SYMBOL",
 9484                "name": "template_method"
 9485              },
 9486              {
 9487                "type": "ALIAS",
 9488                "content": {
 9489                  "type": "SYMBOL",
 9490                  "name": "dependent_field_identifier"
 9491                },
 9492                "named": true,
 9493                "value": "dependent_name"
 9494              }
 9495            ]
 9496          }
 9497        }
 9498      ]
 9499    },
 9500    "compound_literal_expression": {
 9501      "type": "CHOICE",
 9502      "members": [
 9503        {
 9504          "type": "SEQ",
 9505          "members": [
 9506            {
 9507              "type": "STRING",
 9508              "value": "("
 9509            },
 9510            {
 9511              "type": "FIELD",
 9512              "name": "type",
 9513              "content": {
 9514                "type": "SYMBOL",
 9515                "name": "type_descriptor"
 9516              }
 9517            },
 9518            {
 9519              "type": "STRING",
 9520              "value": ")"
 9521            },
 9522            {
 9523              "type": "FIELD",
 9524              "name": "value",
 9525              "content": {
 9526                "type": "SYMBOL",
 9527                "name": "initializer_list"
 9528              }
 9529            }
 9530          ]
 9531        },
 9532        {
 9533          "type": "SEQ",
 9534          "members": [
 9535            {
 9536              "type": "FIELD",
 9537              "name": "type",
 9538              "content": {
 9539                "type": "CHOICE",
 9540                "members": [
 9541                  {
 9542                    "type": "SYMBOL",
 9543                    "name": "_class_name"
 9544                  },
 9545                  {
 9546                    "type": "SYMBOL",
 9547                    "name": "primitive_type"
 9548                  }
 9549                ]
 9550              }
 9551            },
 9552            {
 9553              "type": "FIELD",
 9554              "name": "value",
 9555              "content": {
 9556                "type": "SYMBOL",
 9557                "name": "initializer_list"
 9558              }
 9559            }
 9560          ]
 9561        }
 9562      ]
 9563    },
 9564    "parenthesized_expression": {
 9565      "type": "CHOICE",
 9566      "members": [
 9567        {
 9568          "type": "SEQ",
 9569          "members": [
 9570            {
 9571              "type": "STRING",
 9572              "value": "("
 9573            },
 9574            {
 9575              "type": "CHOICE",
 9576              "members": [
 9577                {
 9578                  "type": "SYMBOL",
 9579                  "name": "expression"
 9580                },
 9581                {
 9582                  "type": "SYMBOL",
 9583                  "name": "comma_expression"
 9584                }
 9585              ]
 9586            },
 9587            {
 9588              "type": "STRING",
 9589              "value": ")"
 9590            }
 9591          ]
 9592        },
 9593        {
 9594          "type": "SEQ",
 9595          "members": [
 9596            {
 9597              "type": "STRING",
 9598              "value": "("
 9599            },
 9600            {
 9601              "type": "ALIAS",
 9602              "content": {
 9603                "type": "SYMBOL",
 9604                "name": "_assignment_expression_lhs"
 9605              },
 9606              "named": true,
 9607              "value": "assignment_expression"
 9608            },
 9609            {
 9610              "type": "STRING",
 9611              "value": ")"
 9612            }
 9613          ]
 9614        }
 9615      ]
 9616    },
 9617    "initializer_list": {
 9618      "type": "SEQ",
 9619      "members": [
 9620        {
 9621          "type": "STRING",
 9622          "value": "{"
 9623        },
 9624        {
 9625          "type": "CHOICE",
 9626          "members": [
 9627            {
 9628              "type": "SEQ",
 9629              "members": [
 9630                {
 9631                  "type": "CHOICE",
 9632                  "members": [
 9633                    {
 9634                      "type": "SYMBOL",
 9635                      "name": "initializer_pair"
 9636                    },
 9637                    {
 9638                      "type": "SYMBOL",
 9639                      "name": "expression"
 9640                    },
 9641                    {
 9642                      "type": "SYMBOL",
 9643                      "name": "initializer_list"
 9644                    }
 9645                  ]
 9646                },
 9647                {
 9648                  "type": "REPEAT",
 9649                  "content": {
 9650                    "type": "SEQ",
 9651                    "members": [
 9652                      {
 9653                        "type": "STRING",
 9654                        "value": ","
 9655                      },
 9656                      {
 9657                        "type": "CHOICE",
 9658                        "members": [
 9659                          {
 9660                            "type": "SYMBOL",
 9661                            "name": "initializer_pair"
 9662                          },
 9663                          {
 9664                            "type": "SYMBOL",
 9665                            "name": "expression"
 9666                          },
 9667                          {
 9668                            "type": "SYMBOL",
 9669                            "name": "initializer_list"
 9670                          }
 9671                        ]
 9672                      }
 9673                    ]
 9674                  }
 9675                }
 9676              ]
 9677            },
 9678            {
 9679              "type": "BLANK"
 9680            }
 9681          ]
 9682        },
 9683        {
 9684          "type": "CHOICE",
 9685          "members": [
 9686            {
 9687              "type": "STRING",
 9688              "value": ","
 9689            },
 9690            {
 9691              "type": "BLANK"
 9692            }
 9693          ]
 9694        },
 9695        {
 9696          "type": "STRING",
 9697          "value": "}"
 9698        }
 9699      ]
 9700    },
 9701    "initializer_pair": {
 9702      "type": "CHOICE",
 9703      "members": [
 9704        {
 9705          "type": "SEQ",
 9706          "members": [
 9707            {
 9708              "type": "FIELD",
 9709              "name": "designator",
 9710              "content": {
 9711                "type": "REPEAT1",
 9712                "content": {
 9713                  "type": "CHOICE",
 9714                  "members": [
 9715                    {
 9716                      "type": "SYMBOL",
 9717                      "name": "subscript_designator"
 9718                    },
 9719                    {
 9720                      "type": "SYMBOL",
 9721                      "name": "field_designator"
 9722                    },
 9723                    {
 9724                      "type": "SYMBOL",
 9725                      "name": "subscript_range_designator"
 9726                    }
 9727                  ]
 9728                }
 9729              }
 9730            },
 9731            {
 9732              "type": "STRING",
 9733              "value": "="
 9734            },
 9735            {
 9736              "type": "FIELD",
 9737              "name": "value",
 9738              "content": {
 9739                "type": "CHOICE",
 9740                "members": [
 9741                  {
 9742                    "type": "SYMBOL",
 9743                    "name": "expression"
 9744                  },
 9745                  {
 9746                    "type": "SYMBOL",
 9747                    "name": "initializer_list"
 9748                  }
 9749                ]
 9750              }
 9751            }
 9752          ]
 9753        },
 9754        {
 9755          "type": "SEQ",
 9756          "members": [
 9757            {
 9758              "type": "FIELD",
 9759              "name": "designator",
 9760              "content": {
 9761                "type": "SYMBOL",
 9762                "name": "_field_identifier"
 9763              }
 9764            },
 9765            {
 9766              "type": "STRING",
 9767              "value": ":"
 9768            },
 9769            {
 9770              "type": "FIELD",
 9771              "name": "value",
 9772              "content": {
 9773                "type": "CHOICE",
 9774                "members": [
 9775                  {
 9776                    "type": "SYMBOL",
 9777                    "name": "expression"
 9778                  },
 9779                  {
 9780                    "type": "SYMBOL",
 9781                    "name": "initializer_list"
 9782                  }
 9783                ]
 9784              }
 9785            }
 9786          ]
 9787        }
 9788      ]
 9789    },
 9790    "subscript_designator": {
 9791      "type": "SEQ",
 9792      "members": [
 9793        {
 9794          "type": "STRING",
 9795          "value": "["
 9796        },
 9797        {
 9798          "type": "SYMBOL",
 9799          "name": "expression"
 9800        },
 9801        {
 9802          "type": "STRING",
 9803          "value": "]"
 9804        }
 9805      ]
 9806    },
 9807    "subscript_range_designator": {
 9808      "type": "SEQ",
 9809      "members": [
 9810        {
 9811          "type": "STRING",
 9812          "value": "["
 9813        },
 9814        {
 9815          "type": "FIELD",
 9816          "name": "start",
 9817          "content": {
 9818            "type": "SYMBOL",
 9819            "name": "expression"
 9820          }
 9821        },
 9822        {
 9823          "type": "STRING",
 9824          "value": "..."
 9825        },
 9826        {
 9827          "type": "FIELD",
 9828          "name": "end",
 9829          "content": {
 9830            "type": "SYMBOL",
 9831            "name": "expression"
 9832          }
 9833        },
 9834        {
 9835          "type": "STRING",
 9836          "value": "]"
 9837        }
 9838      ]
 9839    },
 9840    "field_designator": {
 9841      "type": "SEQ",
 9842      "members": [
 9843        {
 9844          "type": "STRING",
 9845          "value": "."
 9846        },
 9847        {
 9848          "type": "SYMBOL",
 9849          "name": "_field_identifier"
 9850        }
 9851      ]
 9852    },
 9853    "number_literal": {
 9854      "type": "TOKEN",
 9855      "content": {
 9856        "type": "SEQ",
 9857        "members": [
 9858          {
 9859            "type": "CHOICE",
 9860            "members": [
 9861              {
 9862                "type": "PATTERN",
 9863                "value": "[-\\+]"
 9864              },
 9865              {
 9866                "type": "BLANK"
 9867              }
 9868            ]
 9869          },
 9870          {
 9871            "type": "CHOICE",
 9872            "members": [
 9873              {
 9874                "type": "SEQ",
 9875                "members": [
 9876                  {
 9877                    "type": "CHOICE",
 9878                    "members": [
 9879                      {
 9880                        "type": "SEQ",
 9881                        "members": [
 9882                          {
 9883                            "type": "CHOICE",
 9884                            "members": [
 9885                              {
 9886                                "type": "STRING",
 9887                                "value": "0b"
 9888                              },
 9889                              {
 9890                                "type": "STRING",
 9891                                "value": "0B"
 9892                              }
 9893                            ]
 9894                          },
 9895                          {
 9896                            "type": "SEQ",
 9897                            "members": [
 9898                              {
 9899                                "type": "REPEAT1",
 9900                                "content": {
 9901                                  "type": "PATTERN",
 9902                                  "value": "[01]"
 9903                                }
 9904                              },
 9905                              {
 9906                                "type": "REPEAT",
 9907                                "content": {
 9908                                  "type": "SEQ",
 9909                                  "members": [
 9910                                    {
 9911                                      "type": "STRING",
 9912                                      "value": "'"
 9913                                    },
 9914                                    {
 9915                                      "type": "REPEAT1",
 9916                                      "content": {
 9917                                        "type": "PATTERN",
 9918                                        "value": "[01]"
 9919                                      }
 9920                                    }
 9921                                  ]
 9922                                }
 9923                              }
 9924                            ]
 9925                          }
 9926                        ]
 9927                      },
 9928                      {
 9929                        "type": "SEQ",
 9930                        "members": [
 9931                          {
 9932                            "type": "PATTERN",
 9933                            "value": "[1-9]"
 9934                          },
 9935                          {
 9936                            "type": "REPEAT",
 9937                            "content": {
 9938                              "type": "PATTERN",
 9939                              "value": "[0-9]"
 9940                            }
 9941                          },
 9942                          {
 9943                            "type": "REPEAT",
 9944                            "content": {
 9945                              "type": "SEQ",
 9946                              "members": [
 9947                                {
 9948                                  "type": "STRING",
 9949                                  "value": "'"
 9950                                },
 9951                                {
 9952                                  "type": "REPEAT1",
 9953                                  "content": {
 9954                                    "type": "PATTERN",
 9955                                    "value": "[0-9]"
 9956                                  }
 9957                                }
 9958                              ]
 9959                            }
 9960                          }
 9961                        ]
 9962                      },
 9963                      {
 9964                        "type": "SEQ",
 9965                        "members": [
 9966                          {
 9967                            "type": "CHOICE",
 9968                            "members": [
 9969                              {
 9970                                "type": "STRING",
 9971                                "value": "0x"
 9972                              },
 9973                              {
 9974                                "type": "STRING",
 9975                                "value": "0X"
 9976                              }
 9977                            ]
 9978                          },
 9979                          {
 9980                            "type": "SEQ",
 9981                            "members": [
 9982                              {
 9983                                "type": "REPEAT1",
 9984                                "content": {
 9985                                  "type": "PATTERN",
 9986                                  "value": "[0-9a-fA-F]"
 9987                                }
 9988                              },
 9989                              {
 9990                                "type": "REPEAT",
 9991                                "content": {
 9992                                  "type": "SEQ",
 9993                                  "members": [
 9994                                    {
 9995                                      "type": "STRING",
 9996                                      "value": "'"
 9997                                    },
 9998                                    {
 9999                                      "type": "REPEAT1",
10000                                      "content": {
10001                                        "type": "PATTERN",
10002                                        "value": "[0-9a-fA-F]"
10003                                      }
10004                                    }
10005                                  ]
10006                                }
10007                              }
10008                            ]
10009                          }
10010                        ]
10011                      },
10012                      {
10013                        "type": "SEQ",
10014                        "members": [
10015                          {
10016                            "type": "STRING",
10017                            "value": "0"
10018                          },
10019                          {
10020                            "type": "REPEAT",
10021                            "content": {
10022                              "type": "PATTERN",
10023                              "value": "[0-7]"
10024                            }
10025                          },
10026                          {
10027                            "type": "REPEAT",
10028                            "content": {
10029                              "type": "SEQ",
10030                              "members": [
10031                                {
10032                                  "type": "STRING",
10033                                  "value": "'"
10034                                },
10035                                {
10036                                  "type": "REPEAT1",
10037                                  "content": {
10038                                    "type": "PATTERN",
10039                                    "value": "[0-7]"
10040                                  }
10041                                }
10042                              ]
10043                            }
10044                          }
10045                        ]
10046                      }
10047                    ]
10048                  },
10049                  {
10050                    "type": "CHOICE",
10051                    "members": [
10052                      {
10053                        "type": "PATTERN",
10054                        "value": "(ll|LL)[uU]?|[uU](ll|LL)?|[uU][lL]?|[uU][zZ]?|[lL][uU]?|[zZ][uU]?"
10055                      },
10056                      {
10057                        "type": "BLANK"
10058                      }
10059                    ]
10060                  }
10061                ]
10062              },
10063              {
10064                "type": "SEQ",
10065                "members": [
10066                  {
10067                    "type": "CHOICE",
10068                    "members": [
10069                      {
10070                        "type": "SEQ",
10071                        "members": [
10072                          {
10073                            "type": "SEQ",
10074                            "members": [
10075                              {
10076                                "type": "REPEAT1",
10077                                "content": {
10078                                  "type": "PATTERN",
10079                                  "value": "[0-9]"
10080                                }
10081                              },
10082                              {
10083                                "type": "REPEAT",
10084                                "content": {
10085                                  "type": "SEQ",
10086                                  "members": [
10087                                    {
10088                                      "type": "STRING",
10089                                      "value": "'"
10090                                    },
10091                                    {
10092                                      "type": "REPEAT1",
10093                                      "content": {
10094                                        "type": "PATTERN",
10095                                        "value": "[0-9]"
10096                                      }
10097                                    }
10098                                  ]
10099                                }
10100                              }
10101                            ]
10102                          },
10103                          {
10104                            "type": "SEQ",
10105                            "members": [
10106                              {
10107                                "type": "PATTERN",
10108                                "value": "[eE]"
10109                              },
10110                              {
10111                                "type": "CHOICE",
10112                                "members": [
10113                                  {
10114                                    "type": "PATTERN",
10115                                    "value": "[-\\+]"
10116                                  },
10117                                  {
10118                                    "type": "BLANK"
10119                                  }
10120                                ]
10121                              },
10122                              {
10123                                "type": "SEQ",
10124                                "members": [
10125                                  {
10126                                    "type": "REPEAT1",
10127                                    "content": {
10128                                      "type": "PATTERN",
10129                                      "value": "[0-9]"
10130                                    }
10131                                  },
10132                                  {
10133                                    "type": "REPEAT",
10134                                    "content": {
10135                                      "type": "SEQ",
10136                                      "members": [
10137                                        {
10138                                          "type": "STRING",
10139                                          "value": "'"
10140                                        },
10141                                        {
10142                                          "type": "REPEAT1",
10143                                          "content": {
10144                                            "type": "PATTERN",
10145                                            "value": "[0-9]"
10146                                          }
10147                                        }
10148                                      ]
10149                                    }
10150                                  }
10151                                ]
10152                              }
10153                            ]
10154                          }
10155                        ]
10156                      },
10157                      {
10158                        "type": "SEQ",
10159                        "members": [
10160                          {
10161                            "type": "SEQ",
10162                            "members": [
10163                              {
10164                                "type": "REPEAT1",
10165                                "content": {
10166                                  "type": "PATTERN",
10167                                  "value": "[0-9]"
10168                                }
10169                              },
10170                              {
10171                                "type": "REPEAT",
10172                                "content": {
10173                                  "type": "SEQ",
10174                                  "members": [
10175                                    {
10176                                      "type": "STRING",
10177                                      "value": "'"
10178                                    },
10179                                    {
10180                                      "type": "REPEAT1",
10181                                      "content": {
10182                                        "type": "PATTERN",
10183                                        "value": "[0-9]"
10184                                      }
10185                                    }
10186                                  ]
10187                                }
10188                              }
10189                            ]
10190                          },
10191                          {
10192                            "type": "STRING",
10193                            "value": "."
10194                          },
10195                          {
10196                            "type": "CHOICE",
10197                            "members": [
10198                              {
10199                                "type": "SEQ",
10200                                "members": [
10201                                  {
10202                                    "type": "REPEAT1",
10203                                    "content": {
10204                                      "type": "PATTERN",
10205                                      "value": "[0-9]"
10206                                    }
10207                                  },
10208                                  {
10209                                    "type": "REPEAT",
10210                                    "content": {
10211                                      "type": "SEQ",
10212                                      "members": [
10213                                        {
10214                                          "type": "STRING",
10215                                          "value": "'"
10216                                        },
10217                                        {
10218                                          "type": "REPEAT1",
10219                                          "content": {
10220                                            "type": "PATTERN",
10221                                            "value": "[0-9]"
10222                                          }
10223                                        }
10224                                      ]
10225                                    }
10226                                  }
10227                                ]
10228                              },
10229                              {
10230                                "type": "BLANK"
10231                              }
10232                            ]
10233                          },
10234                          {
10235                            "type": "CHOICE",
10236                            "members": [
10237                              {
10238                                "type": "SEQ",
10239                                "members": [
10240                                  {
10241                                    "type": "PATTERN",
10242                                    "value": "[eE]"
10243                                  },
10244                                  {
10245                                    "type": "CHOICE",
10246                                    "members": [
10247                                      {
10248                                        "type": "PATTERN",
10249                                        "value": "[-\\+]"
10250                                      },
10251                                      {
10252                                        "type": "BLANK"
10253                                      }
10254                                    ]
10255                                  },
10256                                  {
10257                                    "type": "SEQ",
10258                                    "members": [
10259                                      {
10260                                        "type": "REPEAT1",
10261                                        "content": {
10262                                          "type": "PATTERN",
10263                                          "value": "[0-9]"
10264                                        }
10265                                      },
10266                                      {
10267                                        "type": "REPEAT",
10268                                        "content": {
10269                                          "type": "SEQ",
10270                                          "members": [
10271                                            {
10272                                              "type": "STRING",
10273                                              "value": "'"
10274                                            },
10275                                            {
10276                                              "type": "REPEAT1",
10277                                              "content": {
10278                                                "type": "PATTERN",
10279                                                "value": "[0-9]"
10280                                              }
10281                                            }
10282                                          ]
10283                                        }
10284                                      }
10285                                    ]
10286                                  }
10287                                ]
10288                              },
10289                              {
10290                                "type": "BLANK"
10291                              }
10292                            ]
10293                          }
10294                        ]
10295                      },
10296                      {
10297                        "type": "SEQ",
10298                        "members": [
10299                          {
10300                            "type": "STRING",
10301                            "value": "."
10302                          },
10303                          {
10304                            "type": "SEQ",
10305                            "members": [
10306                              {
10307                                "type": "REPEAT1",
10308                                "content": {
10309                                  "type": "PATTERN",
10310                                  "value": "[0-9]"
10311                                }
10312                              },
10313                              {
10314                                "type": "REPEAT",
10315                                "content": {
10316                                  "type": "SEQ",
10317                                  "members": [
10318                                    {
10319                                      "type": "STRING",
10320                                      "value": "'"
10321                                    },
10322                                    {
10323                                      "type": "REPEAT1",
10324                                      "content": {
10325                                        "type": "PATTERN",
10326                                        "value": "[0-9]"
10327                                      }
10328                                    }
10329                                  ]
10330                                }
10331                              }
10332                            ]
10333                          },
10334                          {
10335                            "type": "CHOICE",
10336                            "members": [
10337                              {
10338                                "type": "SEQ",
10339                                "members": [
10340                                  {
10341                                    "type": "PATTERN",
10342                                    "value": "[eE]"
10343                                  },
10344                                  {
10345                                    "type": "CHOICE",
10346                                    "members": [
10347                                      {
10348                                        "type": "PATTERN",
10349                                        "value": "[-\\+]"
10350                                      },
10351                                      {
10352                                        "type": "BLANK"
10353                                      }
10354                                    ]
10355                                  },
10356                                  {
10357                                    "type": "SEQ",
10358                                    "members": [
10359                                      {
10360                                        "type": "REPEAT1",
10361                                        "content": {
10362                                          "type": "PATTERN",
10363                                          "value": "[0-9]"
10364                                        }
10365                                      },
10366                                      {
10367                                        "type": "REPEAT",
10368                                        "content": {
10369                                          "type": "SEQ",
10370                                          "members": [
10371                                            {
10372                                              "type": "STRING",
10373                                              "value": "'"
10374                                            },
10375                                            {
10376                                              "type": "REPEAT1",
10377                                              "content": {
10378                                                "type": "PATTERN",
10379                                                "value": "[0-9]"
10380                                              }
10381                                            }
10382                                          ]
10383                                        }
10384                                      }
10385                                    ]
10386                                  }
10387                                ]
10388                              },
10389                              {
10390                                "type": "BLANK"
10391                              }
10392                            ]
10393                          }
10394                        ]
10395                      },
10396                      {
10397                        "type": "SEQ",
10398                        "members": [
10399                          {
10400                            "type": "CHOICE",
10401                            "members": [
10402                              {
10403                                "type": "STRING",
10404                                "value": "0x"
10405                              },
10406                              {
10407                                "type": "STRING",
10408                                "value": "0X"
10409                              }
10410                            ]
10411                          },
10412                          {
10413                            "type": "CHOICE",
10414                            "members": [
10415                              {
10416                                "type": "SEQ",
10417                                "members": [
10418                                  {
10419                                    "type": "REPEAT1",
10420                                    "content": {
10421                                      "type": "PATTERN",
10422                                      "value": "[0-9a-fA-F]"
10423                                    }
10424                                  },
10425                                  {
10426                                    "type": "REPEAT",
10427                                    "content": {
10428                                      "type": "SEQ",
10429                                      "members": [
10430                                        {
10431                                          "type": "STRING",
10432                                          "value": "'"
10433                                        },
10434                                        {
10435                                          "type": "REPEAT1",
10436                                          "content": {
10437                                            "type": "PATTERN",
10438                                            "value": "[0-9a-fA-F]"
10439                                          }
10440                                        }
10441                                      ]
10442                                    }
10443                                  }
10444                                ]
10445                              },
10446                              {
10447                                "type": "SEQ",
10448                                "members": [
10449                                  {
10450                                    "type": "SEQ",
10451                                    "members": [
10452                                      {
10453                                        "type": "REPEAT1",
10454                                        "content": {
10455                                          "type": "PATTERN",
10456                                          "value": "[0-9a-fA-F]"
10457                                        }
10458                                      },
10459                                      {
10460                                        "type": "REPEAT",
10461                                        "content": {
10462                                          "type": "SEQ",
10463                                          "members": [
10464                                            {
10465                                              "type": "STRING",
10466                                              "value": "'"
10467                                            },
10468                                            {
10469                                              "type": "REPEAT1",
10470                                              "content": {
10471                                                "type": "PATTERN",
10472                                                "value": "[0-9a-fA-F]"
10473                                              }
10474                                            }
10475                                          ]
10476                                        }
10477                                      }
10478                                    ]
10479                                  },
10480                                  {
10481                                    "type": "STRING",
10482                                    "value": "."
10483                                  },
10484                                  {
10485                                    "type": "CHOICE",
10486                                    "members": [
10487                                      {
10488                                        "type": "SEQ",
10489                                        "members": [
10490                                          {
10491                                            "type": "REPEAT1",
10492                                            "content": {
10493                                              "type": "PATTERN",
10494                                              "value": "[0-9a-fA-F]"
10495                                            }
10496                                          },
10497                                          {
10498                                            "type": "REPEAT",
10499                                            "content": {
10500                                              "type": "SEQ",
10501                                              "members": [
10502                                                {
10503                                                  "type": "STRING",
10504                                                  "value": "'"
10505                                                },
10506                                                {
10507                                                  "type": "REPEAT1",
10508                                                  "content": {
10509                                                    "type": "PATTERN",
10510                                                    "value": "[0-9a-fA-F]"
10511                                                  }
10512                                                }
10513                                              ]
10514                                            }
10515                                          }
10516                                        ]
10517                                      },
10518                                      {
10519                                        "type": "BLANK"
10520                                      }
10521                                    ]
10522                                  }
10523                                ]
10524                              },
10525                              {
10526                                "type": "SEQ",
10527                                "members": [
10528                                  {
10529                                    "type": "STRING",
10530                                    "value": "."
10531                                  },
10532                                  {
10533                                    "type": "SEQ",
10534                                    "members": [
10535                                      {
10536                                        "type": "REPEAT1",
10537                                        "content": {
10538                                          "type": "PATTERN",
10539                                          "value": "[0-9a-fA-F]"
10540                                        }
10541                                      },
10542                                      {
10543                                        "type": "REPEAT",
10544                                        "content": {
10545                                          "type": "SEQ",
10546                                          "members": [
10547                                            {
10548                                              "type": "STRING",
10549                                              "value": "'"
10550                                            },
10551                                            {
10552                                              "type": "REPEAT1",
10553                                              "content": {
10554                                                "type": "PATTERN",
10555                                                "value": "[0-9a-fA-F]"
10556                                              }
10557                                            }
10558                                          ]
10559                                        }
10560                                      }
10561                                    ]
10562                                  }
10563                                ]
10564                              }
10565                            ]
10566                          },
10567                          {
10568                            "type": "SEQ",
10569                            "members": [
10570                              {
10571                                "type": "PATTERN",
10572                                "value": "[pP]"
10573                              },
10574                              {
10575                                "type": "CHOICE",
10576                                "members": [
10577                                  {
10578                                    "type": "PATTERN",
10579                                    "value": "[-\\+]"
10580                                  },
10581                                  {
10582                                    "type": "BLANK"
10583                                  }
10584                                ]
10585                              },
10586                              {
10587                                "type": "SEQ",
10588                                "members": [
10589                                  {
10590                                    "type": "REPEAT1",
10591                                    "content": {
10592                                      "type": "PATTERN",
10593                                      "value": "[0-9]"
10594                                    }
10595                                  },
10596                                  {
10597                                    "type": "REPEAT",
10598                                    "content": {
10599                                      "type": "SEQ",
10600                                      "members": [
10601                                        {
10602                                          "type": "STRING",
10603                                          "value": "'"
10604                                        },
10605                                        {
10606                                          "type": "REPEAT1",
10607                                          "content": {
10608                                            "type": "PATTERN",
10609                                            "value": "[0-9]"
10610                                          }
10611                                        }
10612                                      ]
10613                                    }
10614                                  }
10615                                ]
10616                              }
10617                            ]
10618                          }
10619                        ]
10620                      }
10621                    ]
10622                  },
10623                  {
10624                    "type": "CHOICE",
10625                    "members": [
10626                      {
10627                        "type": "PATTERN",
10628                        "value": "([fF](16|32|64|128)?)|[lL]|(bf16|BF16)"
10629                      },
10630                      {
10631                        "type": "BLANK"
10632                      }
10633                    ]
10634                  }
10635                ]
10636              }
10637            ]
10638          }
10639        ]
10640      }
10641    },
10642    "char_literal": {
10643      "type": "SEQ",
10644      "members": [
10645        {
10646          "type": "CHOICE",
10647          "members": [
10648            {
10649              "type": "STRING",
10650              "value": "L'"
10651            },
10652            {
10653              "type": "STRING",
10654              "value": "u'"
10655            },
10656            {
10657              "type": "STRING",
10658              "value": "U'"
10659            },
10660            {
10661              "type": "STRING",
10662              "value": "u8'"
10663            },
10664            {
10665              "type": "STRING",
10666              "value": "'"
10667            }
10668          ]
10669        },
10670        {
10671          "type": "REPEAT1",
10672          "content": {
10673            "type": "CHOICE",
10674            "members": [
10675              {
10676                "type": "SYMBOL",
10677                "name": "escape_sequence"
10678              },
10679              {
10680                "type": "ALIAS",
10681                "content": {
10682                  "type": "IMMEDIATE_TOKEN",
10683                  "content": {
10684                    "type": "PATTERN",
10685                    "value": "[^\\n']"
10686                  }
10687                },
10688                "named": true,
10689                "value": "character"
10690              }
10691            ]
10692          }
10693        },
10694        {
10695          "type": "STRING",
10696          "value": "'"
10697        }
10698      ]
10699    },
10700    "concatenated_string": {
10701      "type": "PREC_RIGHT",
10702      "value": 0,
10703      "content": {
10704        "type": "SEQ",
10705        "members": [
10706          {
10707            "type": "CHOICE",
10708            "members": [
10709              {
10710                "type": "SYMBOL",
10711                "name": "identifier"
10712              },
10713              {
10714                "type": "SYMBOL",
10715                "name": "string_literal"
10716              },
10717              {
10718                "type": "SYMBOL",
10719                "name": "raw_string_literal"
10720              }
10721            ]
10722          },
10723          {
10724            "type": "CHOICE",
10725            "members": [
10726              {
10727                "type": "SYMBOL",
10728                "name": "string_literal"
10729              },
10730              {
10731                "type": "SYMBOL",
10732                "name": "raw_string_literal"
10733              }
10734            ]
10735          },
10736          {
10737            "type": "REPEAT",
10738            "content": {
10739              "type": "CHOICE",
10740              "members": [
10741                {
10742                  "type": "SYMBOL",
10743                  "name": "identifier"
10744                },
10745                {
10746                  "type": "SYMBOL",
10747                  "name": "string_literal"
10748                },
10749                {
10750                  "type": "SYMBOL",
10751                  "name": "raw_string_literal"
10752                }
10753              ]
10754            }
10755          }
10756        ]
10757      }
10758    },
10759    "string_literal": {
10760      "type": "SEQ",
10761      "members": [
10762        {
10763          "type": "CHOICE",
10764          "members": [
10765            {
10766              "type": "STRING",
10767              "value": "L\""
10768            },
10769            {
10770              "type": "STRING",
10771              "value": "u\""
10772            },
10773            {
10774              "type": "STRING",
10775              "value": "U\""
10776            },
10777            {
10778              "type": "STRING",
10779              "value": "u8\""
10780            },
10781            {
10782              "type": "STRING",
10783              "value": "\""
10784            }
10785          ]
10786        },
10787        {
10788          "type": "REPEAT",
10789          "content": {
10790            "type": "CHOICE",
10791            "members": [
10792              {
10793                "type": "ALIAS",
10794                "content": {
10795                  "type": "IMMEDIATE_TOKEN",
10796                  "content": {
10797                    "type": "PREC",
10798                    "value": 1,
10799                    "content": {
10800                      "type": "PATTERN",
10801                      "value": "[^\\\\\"\\n]+"
10802                    }
10803                  }
10804                },
10805                "named": true,
10806                "value": "string_content"
10807              },
10808              {
10809                "type": "SYMBOL",
10810                "name": "escape_sequence"
10811              }
10812            ]
10813          }
10814        },
10815        {
10816          "type": "STRING",
10817          "value": "\""
10818        }
10819      ]
10820    },
10821    "escape_sequence": {
10822      "type": "TOKEN",
10823      "content": {
10824        "type": "PREC",
10825        "value": 1,
10826        "content": {
10827          "type": "SEQ",
10828          "members": [
10829            {
10830              "type": "STRING",
10831              "value": "\\"
10832            },
10833            {
10834              "type": "CHOICE",
10835              "members": [
10836                {
10837                  "type": "PATTERN",
10838                  "value": "[^xuU]"
10839                },
10840                {
10841                  "type": "PATTERN",
10842                  "value": "\\d{2,3}"
10843                },
10844                {
10845                  "type": "PATTERN",
10846                  "value": "x[0-9a-fA-F]{2,}"
10847                },
10848                {
10849                  "type": "PATTERN",
10850                  "value": "u[0-9a-fA-F]{4}"
10851                },
10852                {
10853                  "type": "PATTERN",
10854                  "value": "U[0-9a-fA-F]{8}"
10855                }
10856              ]
10857            }
10858          ]
10859        }
10860      }
10861    },
10862    "system_lib_string": {
10863      "type": "TOKEN",
10864      "content": {
10865        "type": "SEQ",
10866        "members": [
10867          {
10868            "type": "STRING",
10869            "value": "<"
10870          },
10871          {
10872            "type": "REPEAT",
10873            "content": {
10874              "type": "CHOICE",
10875              "members": [
10876                {
10877                  "type": "PATTERN",
10878                  "value": "[^>\\n]"
10879                },
10880                {
10881                  "type": "STRING",
10882                  "value": "\\>"
10883                }
10884              ]
10885            }
10886          },
10887          {
10888            "type": "STRING",
10889            "value": ">"
10890          }
10891        ]
10892      }
10893    },
10894    "true": {
10895      "type": "TOKEN",
10896      "content": {
10897        "type": "CHOICE",
10898        "members": [
10899          {
10900            "type": "STRING",
10901            "value": "TRUE"
10902          },
10903          {
10904            "type": "STRING",
10905            "value": "true"
10906          }
10907        ]
10908      }
10909    },
10910    "false": {
10911      "type": "TOKEN",
10912      "content": {
10913        "type": "CHOICE",
10914        "members": [
10915          {
10916            "type": "STRING",
10917            "value": "FALSE"
10918          },
10919          {
10920            "type": "STRING",
10921            "value": "false"
10922          }
10923        ]
10924      }
10925    },
10926    "null": {
10927      "type": "CHOICE",
10928      "members": [
10929        {
10930          "type": "STRING",
10931          "value": "NULL"
10932        },
10933        {
10934          "type": "STRING",
10935          "value": "nullptr"
10936        }
10937      ]
10938    },
10939    "identifier": {
10940      "type": "PATTERN",
10941      "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})*"
10942    },
10943    "_type_identifier": {
10944      "type": "ALIAS",
10945      "content": {
10946        "type": "SYMBOL",
10947        "name": "identifier"
10948      },
10949      "named": true,
10950      "value": "type_identifier"
10951    },
10952    "_field_identifier": {
10953      "type": "ALIAS",
10954      "content": {
10955        "type": "SYMBOL",
10956        "name": "identifier"
10957      },
10958      "named": true,
10959      "value": "field_identifier"
10960    },
10961    "_statement_identifier": {
10962      "type": "ALIAS",
10963      "content": {
10964        "type": "SYMBOL",
10965        "name": "identifier"
10966      },
10967      "named": true,
10968      "value": "statement_identifier"
10969    },
10970    "_empty_declaration": {
10971      "type": "SEQ",
10972      "members": [
10973        {
10974          "type": "SYMBOL",
10975          "name": "type_specifier"
10976        },
10977        {
10978          "type": "STRING",
10979          "value": ";"
10980        }
10981      ]
10982    },
10983    "macro_type_specifier": {
10984      "type": "PREC_DYNAMIC",
10985      "value": -1,
10986      "content": {
10987        "type": "SEQ",
10988        "members": [
10989          {
10990            "type": "FIELD",
10991            "name": "name",
10992            "content": {
10993              "type": "SYMBOL",
10994              "name": "identifier"
10995            }
10996          },
10997          {
10998            "type": "STRING",
10999            "value": "("
11000          },
11001          {
11002            "type": "FIELD",
11003            "name": "type",
11004            "content": {
11005              "type": "SYMBOL",
11006              "name": "type_descriptor"
11007            }
11008          },
11009          {
11010            "type": "STRING",
11011            "value": ")"
11012          }
11013        ]
11014      }
11015    },
11016    "comment": {
11017      "type": "TOKEN",
11018      "content": {
11019        "type": "CHOICE",
11020        "members": [
11021          {
11022            "type": "SEQ",
11023            "members": [
11024              {
11025                "type": "STRING",
11026                "value": "//"
11027              },
11028              {
11029                "type": "PATTERN",
11030                "value": "(\\\\+(.|\\r?\\n)|[^\\\\\\n])*"
11031              }
11032            ]
11033          },
11034          {
11035            "type": "SEQ",
11036            "members": [
11037              {
11038                "type": "STRING",
11039                "value": "/*"
11040              },
11041              {
11042                "type": "PATTERN",
11043                "value": "[^*]*\\*+([^/*][^*]*\\*+)*"
11044              },
11045              {
11046                "type": "STRING",
11047                "value": "/"
11048              }
11049            ]
11050          }
11051        ]
11052      }
11053    },
11054    "placeholder_type_specifier": {
11055      "type": "PREC",
11056      "value": 1,
11057      "content": {
11058        "type": "SEQ",
11059        "members": [
11060          {
11061            "type": "FIELD",
11062            "name": "constraint",
11063            "content": {
11064              "type": "CHOICE",
11065              "members": [
11066                {
11067                  "type": "SYMBOL",
11068                  "name": "type_specifier"
11069                },
11070                {
11071                  "type": "BLANK"
11072                }
11073              ]
11074            }
11075          },
11076          {
11077            "type": "CHOICE",
11078            "members": [
11079              {
11080                "type": "SYMBOL",
11081                "name": "auto"
11082              },
11083              {
11084                "type": "ALIAS",
11085                "content": {
11086                  "type": "SYMBOL",
11087                  "name": "decltype_auto"
11088                },
11089                "named": true,
11090                "value": "decltype"
11091              }
11092            ]
11093          }
11094        ]
11095      }
11096    },
11097    "auto": {
11098      "type": "STRING",
11099      "value": "auto"
11100    },
11101    "decltype_auto": {
11102      "type": "SEQ",
11103      "members": [
11104        {
11105          "type": "STRING",
11106          "value": "decltype"
11107        },
11108        {
11109          "type": "STRING",
11110          "value": "("
11111        },
11112        {
11113          "type": "SYMBOL",
11114          "name": "auto"
11115        },
11116        {
11117          "type": "STRING",
11118          "value": ")"
11119        }
11120      ]
11121    },
11122    "decltype": {
11123      "type": "SEQ",
11124      "members": [
11125        {
11126          "type": "STRING",
11127          "value": "decltype"
11128        },
11129        {
11130          "type": "STRING",
11131          "value": "("
11132        },
11133        {
11134          "type": "SYMBOL",
11135          "name": "expression"
11136        },
11137        {
11138          "type": "STRING",
11139          "value": ")"
11140        }
11141      ]
11142    },
11143    "_class_declaration": {
11144      "type": "SEQ",
11145      "members": [
11146        {
11147          "type": "REPEAT",
11148          "content": {
11149            "type": "CHOICE",
11150            "members": [
11151              {
11152                "type": "SYMBOL",
11153                "name": "attribute_specifier"
11154              },
11155              {
11156                "type": "SYMBOL",
11157                "name": "alignas_qualifier"
11158              }
11159            ]
11160          }
11161        },
11162        {
11163          "type": "CHOICE",
11164          "members": [
11165            {
11166              "type": "SYMBOL",
11167              "name": "ms_declspec_modifier"
11168            },
11169            {
11170              "type": "BLANK"
11171            }
11172          ]
11173        },
11174        {
11175          "type": "REPEAT",
11176          "content": {
11177            "type": "SYMBOL",
11178            "name": "attribute_declaration"
11179          }
11180        },
11181        {
11182          "type": "SYMBOL",
11183          "name": "_class_declaration_item"
11184        }
11185      ]
11186    },
11187    "_class_declaration_item": {
11188      "type": "PREC_RIGHT",
11189      "value": 0,
11190      "content": {
11191        "type": "SEQ",
11192        "members": [
11193          {
11194            "type": "CHOICE",
11195            "members": [
11196              {
11197                "type": "FIELD",
11198                "name": "name",
11199                "content": {
11200                  "type": "SYMBOL",
11201                  "name": "_class_name"
11202                }
11203              },
11204              {
11205                "type": "SEQ",
11206                "members": [
11207                  {
11208                    "type": "CHOICE",
11209                    "members": [
11210                      {
11211                        "type": "FIELD",
11212                        "name": "name",
11213                        "content": {
11214                          "type": "SYMBOL",
11215                          "name": "_class_name"
11216                        }
11217                      },
11218                      {
11219                        "type": "BLANK"
11220                      }
11221                    ]
11222                  },
11223                  {
11224                    "type": "CHOICE",
11225                    "members": [
11226                      {
11227                        "type": "SYMBOL",
11228                        "name": "virtual_specifier"
11229                      },
11230                      {
11231                        "type": "BLANK"
11232                      }
11233                    ]
11234                  },
11235                  {
11236                    "type": "CHOICE",
11237                    "members": [
11238                      {
11239                        "type": "SYMBOL",
11240                        "name": "base_class_clause"
11241                      },
11242                      {
11243                        "type": "BLANK"
11244                      }
11245                    ]
11246                  },
11247                  {
11248                    "type": "FIELD",
11249                    "name": "body",
11250                    "content": {
11251                      "type": "SYMBOL",
11252                      "name": "field_declaration_list"
11253                    }
11254                  }
11255                ]
11256              }
11257            ]
11258          },
11259          {
11260            "type": "CHOICE",
11261            "members": [
11262              {
11263                "type": "SYMBOL",
11264                "name": "attribute_specifier"
11265              },
11266              {
11267                "type": "BLANK"
11268              }
11269            ]
11270          }
11271        ]
11272      }
11273    },
11274    "class_specifier": {
11275      "type": "SEQ",
11276      "members": [
11277        {
11278          "type": "STRING",
11279          "value": "class"
11280        },
11281        {
11282          "type": "SYMBOL",
11283          "name": "_class_declaration"
11284        }
11285      ]
11286    },
11287    "_class_name": {
11288      "type": "PREC_RIGHT",
11289      "value": 0,
11290      "content": {
11291        "type": "CHOICE",
11292        "members": [
11293          {
11294            "type": "SYMBOL",
11295            "name": "_type_identifier"
11296          },
11297          {
11298            "type": "SYMBOL",
11299            "name": "template_type"
11300          },
11301          {
11302            "type": "ALIAS",
11303            "content": {
11304              "type": "SYMBOL",
11305              "name": "qualified_type_identifier"
11306            },
11307            "named": true,
11308            "value": "qualified_identifier"
11309          }
11310        ]
11311      }
11312    },
11313    "virtual_specifier": {
11314      "type": "CHOICE",
11315      "members": [
11316        {
11317          "type": "STRING",
11318          "value": "final"
11319        },
11320        {
11321          "type": "STRING",
11322          "value": "override"
11323        }
11324      ]
11325    },
11326    "virtual": {
11327      "type": "STRING",
11328      "value": "virtual"
11329    },
11330    "explicit_function_specifier": {
11331      "type": "CHOICE",
11332      "members": [
11333        {
11334          "type": "STRING",
11335          "value": "explicit"
11336        },
11337        {
11338          "type": "PREC",
11339          "value": 15,
11340          "content": {
11341            "type": "SEQ",
11342            "members": [
11343              {
11344                "type": "STRING",
11345                "value": "explicit"
11346              },
11347              {
11348                "type": "STRING",
11349                "value": "("
11350              },
11351              {
11352                "type": "SYMBOL",
11353                "name": "expression"
11354              },
11355              {
11356                "type": "STRING",
11357                "value": ")"
11358              }
11359            ]
11360          }
11361        }
11362      ]
11363    },
11364    "base_class_clause": {
11365      "type": "SEQ",
11366      "members": [
11367        {
11368          "type": "STRING",
11369          "value": ":"
11370        },
11371        {
11372          "type": "SEQ",
11373          "members": [
11374            {
11375              "type": "SEQ",
11376              "members": [
11377                {
11378                  "type": "REPEAT",
11379                  "content": {
11380                    "type": "SYMBOL",
11381                    "name": "attribute_declaration"
11382                  }
11383                },
11384                {
11385                  "type": "CHOICE",
11386                  "members": [
11387                    {
11388                      "type": "CHOICE",
11389                      "members": [
11390                        {
11391                          "type": "SYMBOL",
11392                          "name": "access_specifier"
11393                        },
11394                        {
11395                          "type": "SEQ",
11396                          "members": [
11397                            {
11398                              "type": "SYMBOL",
11399                              "name": "access_specifier"
11400                            },
11401                            {
11402                              "type": "CHOICE",
11403                              "members": [
11404                                {
11405                                  "type": "SYMBOL",
11406                                  "name": "virtual"
11407                                },
11408                                {
11409                                  "type": "BLANK"
11410                                }
11411                              ]
11412                            }
11413                          ]
11414                        },
11415                        {
11416                          "type": "SEQ",
11417                          "members": [
11418                            {
11419                              "type": "SYMBOL",
11420                              "name": "virtual"
11421                            },
11422                            {
11423                              "type": "CHOICE",
11424                              "members": [
11425                                {
11426                                  "type": "SYMBOL",
11427                                  "name": "access_specifier"
11428                                },
11429                                {
11430                                  "type": "BLANK"
11431                                }
11432                              ]
11433                            }
11434                          ]
11435                        }
11436                      ]
11437                    },
11438                    {
11439                      "type": "BLANK"
11440                    }
11441                  ]
11442                },
11443                {
11444                  "type": "SYMBOL",
11445                  "name": "_class_name"
11446                },
11447                {
11448                  "type": "CHOICE",
11449                  "members": [
11450                    {
11451                      "type": "STRING",
11452                      "value": "..."
11453                    },
11454                    {
11455                      "type": "BLANK"
11456                    }
11457                  ]
11458                }
11459              ]
11460            },
11461            {
11462              "type": "REPEAT",
11463              "content": {
11464                "type": "SEQ",
11465                "members": [
11466                  {
11467                    "type": "STRING",
11468                    "value": ","
11469                  },
11470                  {
11471                    "type": "SEQ",
11472                    "members": [
11473                      {
11474                        "type": "REPEAT",
11475                        "content": {
11476                          "type": "SYMBOL",
11477                          "name": "attribute_declaration"
11478                        }
11479                      },
11480                      {
11481                        "type": "CHOICE",
11482                        "members": [
11483                          {
11484                            "type": "CHOICE",
11485                            "members": [
11486                              {
11487                                "type": "SYMBOL",
11488                                "name": "access_specifier"
11489                              },
11490                              {
11491                                "type": "SEQ",
11492                                "members": [
11493                                  {
11494                                    "type": "SYMBOL",
11495                                    "name": "access_specifier"
11496                                  },
11497                                  {
11498                                    "type": "CHOICE",
11499                                    "members": [
11500                                      {
11501                                        "type": "SYMBOL",
11502                                        "name": "virtual"
11503                                      },
11504                                      {
11505                                        "type": "BLANK"
11506                                      }
11507                                    ]
11508                                  }
11509                                ]
11510                              },
11511                              {
11512                                "type": "SEQ",
11513                                "members": [
11514                                  {
11515                                    "type": "SYMBOL",
11516                                    "name": "virtual"
11517                                  },
11518                                  {
11519                                    "type": "CHOICE",
11520                                    "members": [
11521                                      {
11522                                        "type": "SYMBOL",
11523                                        "name": "access_specifier"
11524                                      },
11525                                      {
11526                                        "type": "BLANK"
11527                                      }
11528                                    ]
11529                                  }
11530                                ]
11531                              }
11532                            ]
11533                          },
11534                          {
11535                            "type": "BLANK"
11536                          }
11537                        ]
11538                      },
11539                      {
11540                        "type": "SYMBOL",
11541                        "name": "_class_name"
11542                      },
11543                      {
11544                        "type": "CHOICE",
11545                        "members": [
11546                          {
11547                            "type": "STRING",
11548                            "value": "..."
11549                          },
11550                          {
11551                            "type": "BLANK"
11552                          }
11553                        ]
11554                      }
11555                    ]
11556                  }
11557                ]
11558              }
11559            }
11560          ]
11561        }
11562      ]
11563    },
11564    "_enum_base_clause": {
11565      "type": "PREC_LEFT",
11566      "value": 0,
11567      "content": {
11568        "type": "SEQ",
11569        "members": [
11570          {
11571            "type": "STRING",
11572            "value": ":"
11573          },
11574          {
11575            "type": "FIELD",
11576            "name": "base",
11577            "content": {
11578              "type": "CHOICE",
11579              "members": [
11580                {
11581                  "type": "ALIAS",
11582                  "content": {
11583                    "type": "SYMBOL",
11584                    "name": "qualified_type_identifier"
11585                  },
11586                  "named": true,
11587                  "value": "qualified_identifier"
11588                },
11589                {
11590                  "type": "SYMBOL",
11591                  "name": "_type_identifier"
11592                },
11593                {
11594                  "type": "SYMBOL",
11595                  "name": "primitive_type"
11596                },
11597                {
11598                  "type": "SYMBOL",
11599                  "name": "sized_type_specifier"
11600                }
11601              ]
11602            }
11603          }
11604        ]
11605      }
11606    },
11607    "dependent_type": {
11608      "type": "PREC_DYNAMIC",
11609      "value": -1,
11610      "content": {
11611        "type": "PREC_RIGHT",
11612        "value": 0,
11613        "content": {
11614          "type": "SEQ",
11615          "members": [
11616            {
11617              "type": "STRING",
11618              "value": "typename"
11619            },
11620            {
11621              "type": "SYMBOL",
11622              "name": "type_specifier"
11623            }
11624          ]
11625        }
11626      }
11627    },
11628    "template_declaration": {
11629      "type": "SEQ",
11630      "members": [
11631        {
11632          "type": "STRING",
11633          "value": "template"
11634        },
11635        {
11636          "type": "FIELD",
11637          "name": "parameters",
11638          "content": {
11639            "type": "SYMBOL",
11640            "name": "template_parameter_list"
11641          }
11642        },
11643        {
11644          "type": "CHOICE",
11645          "members": [
11646            {
11647              "type": "SYMBOL",
11648              "name": "requires_clause"
11649            },
11650            {
11651              "type": "BLANK"
11652            }
11653          ]
11654        },
11655        {
11656          "type": "CHOICE",
11657          "members": [
11658            {
11659              "type": "SYMBOL",
11660              "name": "_empty_declaration"
11661            },
11662            {
11663              "type": "SYMBOL",
11664              "name": "alias_declaration"
11665            },
11666            {
11667              "type": "SYMBOL",
11668              "name": "declaration"
11669            },
11670            {
11671              "type": "SYMBOL",
11672              "name": "template_declaration"
11673            },
11674            {
11675              "type": "SYMBOL",
11676              "name": "function_definition"
11677            },
11678            {
11679              "type": "SYMBOL",
11680              "name": "concept_definition"
11681            },
11682            {
11683              "type": "SYMBOL",
11684              "name": "friend_declaration"
11685            },
11686            {
11687              "type": "ALIAS",
11688              "content": {
11689                "type": "SYMBOL",
11690                "name": "constructor_or_destructor_declaration"
11691              },
11692              "named": true,
11693              "value": "declaration"
11694            },
11695            {
11696              "type": "ALIAS",
11697              "content": {
11698                "type": "SYMBOL",
11699                "name": "constructor_or_destructor_definition"
11700              },
11701              "named": true,
11702              "value": "function_definition"
11703            },
11704            {
11705              "type": "ALIAS",
11706              "content": {
11707                "type": "SYMBOL",
11708                "name": "operator_cast_declaration"
11709              },
11710              "named": true,
11711              "value": "declaration"
11712            },
11713            {
11714              "type": "ALIAS",
11715              "content": {
11716                "type": "SYMBOL",
11717                "name": "operator_cast_definition"
11718              },
11719              "named": true,
11720              "value": "function_definition"
11721            }
11722          ]
11723        }
11724      ]
11725    },
11726    "template_instantiation": {
11727      "type": "SEQ",
11728      "members": [
11729        {
11730          "type": "STRING",
11731          "value": "template"
11732        },
11733        {
11734          "type": "CHOICE",
11735          "members": [
11736            {
11737              "type": "SYMBOL",
11738              "name": "_declaration_specifiers"
11739            },
11740            {
11741              "type": "BLANK"
11742            }
11743          ]
11744        },
11745        {
11746          "type": "FIELD",
11747          "name": "declarator",
11748          "content": {
11749            "type": "SYMBOL",
11750            "name": "_declarator"
11751          }
11752        },
11753        {
11754          "type": "STRING",
11755          "value": ";"
11756        }
11757      ]
11758    },
11759    "template_parameter_list": {
11760      "type": "SEQ",
11761      "members": [
11762        {
11763          "type": "STRING",
11764          "value": "<"
11765        },
11766        {
11767          "type": "CHOICE",
11768          "members": [
11769            {
11770              "type": "SEQ",
11771              "members": [
11772                {
11773                  "type": "CHOICE",
11774                  "members": [
11775                    {
11776                      "type": "SYMBOL",
11777                      "name": "parameter_declaration"
11778                    },
11779                    {
11780                      "type": "SYMBOL",
11781                      "name": "optional_parameter_declaration"
11782                    },
11783                    {
11784                      "type": "SYMBOL",
11785                      "name": "type_parameter_declaration"
11786                    },
11787                    {
11788                      "type": "SYMBOL",
11789                      "name": "variadic_parameter_declaration"
11790                    },
11791                    {
11792                      "type": "SYMBOL",
11793                      "name": "variadic_type_parameter_declaration"
11794                    },
11795                    {
11796                      "type": "SYMBOL",
11797                      "name": "optional_type_parameter_declaration"
11798                    },
11799                    {
11800                      "type": "SYMBOL",
11801                      "name": "template_template_parameter_declaration"
11802                    }
11803                  ]
11804                },
11805                {
11806                  "type": "REPEAT",
11807                  "content": {
11808                    "type": "SEQ",
11809                    "members": [
11810                      {
11811                        "type": "STRING",
11812                        "value": ","
11813                      },
11814                      {
11815                        "type": "CHOICE",
11816                        "members": [
11817                          {
11818                            "type": "SYMBOL",
11819                            "name": "parameter_declaration"
11820                          },
11821                          {
11822                            "type": "SYMBOL",
11823                            "name": "optional_parameter_declaration"
11824                          },
11825                          {
11826                            "type": "SYMBOL",
11827                            "name": "type_parameter_declaration"
11828                          },
11829                          {
11830                            "type": "SYMBOL",
11831                            "name": "variadic_parameter_declaration"
11832                          },
11833                          {
11834                            "type": "SYMBOL",
11835                            "name": "variadic_type_parameter_declaration"
11836                          },
11837                          {
11838                            "type": "SYMBOL",
11839                            "name": "optional_type_parameter_declaration"
11840                          },
11841                          {
11842                            "type": "SYMBOL",
11843                            "name": "template_template_parameter_declaration"
11844                          }
11845                        ]
11846                      }
11847                    ]
11848                  }
11849                }
11850              ]
11851            },
11852            {
11853              "type": "BLANK"
11854            }
11855          ]
11856        },
11857        {
11858          "type": "ALIAS",
11859          "content": {
11860            "type": "TOKEN",
11861            "content": {
11862              "type": "PREC",
11863              "value": 1,
11864              "content": {
11865                "type": "STRING",
11866                "value": ">"
11867              }
11868            }
11869          },
11870          "named": false,
11871          "value": ">"
11872        }
11873      ]
11874    },
11875    "type_parameter_declaration": {
11876      "type": "PREC",
11877      "value": 1,
11878      "content": {
11879        "type": "SEQ",
11880        "members": [
11881          {
11882            "type": "CHOICE",
11883            "members": [
11884              {
11885                "type": "STRING",
11886                "value": "typename"
11887              },
11888              {
11889                "type": "STRING",
11890                "value": "class"
11891              }
11892            ]
11893          },
11894          {
11895            "type": "CHOICE",
11896            "members": [
11897              {
11898                "type": "SYMBOL",
11899                "name": "_type_identifier"
11900              },
11901              {
11902                "type": "BLANK"
11903              }
11904            ]
11905          }
11906        ]
11907      }
11908    },
11909    "variadic_type_parameter_declaration": {
11910      "type": "PREC",
11911      "value": 1,
11912      "content": {
11913        "type": "SEQ",
11914        "members": [
11915          {
11916            "type": "CHOICE",
11917            "members": [
11918              {
11919                "type": "STRING",
11920                "value": "typename"
11921              },
11922              {
11923                "type": "STRING",
11924                "value": "class"
11925              }
11926            ]
11927          },
11928          {
11929            "type": "STRING",
11930            "value": "..."
11931          },
11932          {
11933            "type": "CHOICE",
11934            "members": [
11935              {
11936                "type": "SYMBOL",
11937                "name": "_type_identifier"
11938              },
11939              {
11940                "type": "BLANK"
11941              }
11942            ]
11943          }
11944        ]
11945      }
11946    },
11947    "optional_type_parameter_declaration": {
11948      "type": "SEQ",
11949      "members": [
11950        {
11951          "type": "CHOICE",
11952          "members": [
11953            {
11954              "type": "STRING",
11955              "value": "typename"
11956            },
11957            {
11958              "type": "STRING",
11959              "value": "class"
11960            }
11961          ]
11962        },
11963        {
11964          "type": "CHOICE",
11965          "members": [
11966            {
11967              "type": "FIELD",
11968              "name": "name",
11969              "content": {
11970                "type": "SYMBOL",
11971                "name": "_type_identifier"
11972              }
11973            },
11974            {
11975              "type": "BLANK"
11976            }
11977          ]
11978        },
11979        {
11980          "type": "STRING",
11981          "value": "="
11982        },
11983        {
11984          "type": "FIELD",
11985          "name": "default_type",
11986          "content": {
11987            "type": "SYMBOL",
11988            "name": "type_specifier"
11989          }
11990        }
11991      ]
11992    },
11993    "template_template_parameter_declaration": {
11994      "type": "SEQ",
11995      "members": [
11996        {
11997          "type": "STRING",
11998          "value": "template"
11999        },
12000        {
12001          "type": "FIELD",
12002          "name": "parameters",
12003          "content": {
12004            "type": "SYMBOL",
12005            "name": "template_parameter_list"
12006          }
12007        },
12008        {
12009          "type": "CHOICE",
12010          "members": [
12011            {
12012              "type": "SYMBOL",
12013              "name": "type_parameter_declaration"
12014            },
12015            {
12016              "type": "SYMBOL",
12017              "name": "variadic_type_parameter_declaration"
12018            },
12019            {
12020              "type": "SYMBOL",
12021              "name": "optional_type_parameter_declaration"
12022            }
12023          ]
12024        }
12025      ]
12026    },
12027    "optional_parameter_declaration": {
12028      "type": "SEQ",
12029      "members": [
12030        {
12031          "type": "SYMBOL",
12032          "name": "_declaration_specifiers"
12033        },
12034        {
12035          "type": "FIELD",
12036          "name": "declarator",
12037          "content": {
12038            "type": "CHOICE",
12039            "members": [
12040              {
12041                "type": "CHOICE",
12042                "members": [
12043                  {
12044                    "type": "SYMBOL",
12045                    "name": "_declarator"
12046                  },
12047                  {
12048                    "type": "SYMBOL",
12049                    "name": "abstract_reference_declarator"
12050                  }
12051                ]
12052              },
12053              {
12054                "type": "BLANK"
12055              }
12056            ]
12057          }
12058        },
12059        {
12060          "type": "STRING",
12061          "value": "="
12062        },
12063        {
12064          "type": "FIELD",
12065          "name": "default_value",
12066          "content": {
12067            "type": "SYMBOL",
12068            "name": "expression"
12069          }
12070        }
12071      ]
12072    },
12073    "variadic_parameter_declaration": {
12074      "type": "SEQ",
12075      "members": [
12076        {
12077          "type": "SYMBOL",
12078          "name": "_declaration_specifiers"
12079        },
12080        {
12081          "type": "FIELD",
12082          "name": "declarator",
12083          "content": {
12084            "type": "CHOICE",
12085            "members": [
12086              {
12087                "type": "SYMBOL",
12088                "name": "variadic_declarator"
12089              },
12090              {
12091                "type": "ALIAS",
12092                "content": {
12093                  "type": "SYMBOL",
12094                  "name": "variadic_reference_declarator"
12095                },
12096                "named": true,
12097                "value": "reference_declarator"
12098              }
12099            ]
12100          }
12101        }
12102      ]
12103    },
12104    "variadic_declarator": {
12105      "type": "SEQ",
12106      "members": [
12107        {
12108          "type": "STRING",
12109          "value": "..."
12110        },
12111        {
12112          "type": "CHOICE",
12113          "members": [
12114            {
12115              "type": "SYMBOL",
12116              "name": "identifier"
12117            },
12118            {
12119              "type": "BLANK"
12120            }
12121          ]
12122        }
12123      ]
12124    },
12125    "variadic_reference_declarator": {
12126      "type": "SEQ",
12127      "members": [
12128        {
12129          "type": "CHOICE",
12130          "members": [
12131            {
12132              "type": "STRING",
12133              "value": "&&"
12134            },
12135            {
12136              "type": "STRING",
12137              "value": "&"
12138            }
12139          ]
12140        },
12141        {
12142          "type": "SYMBOL",
12143          "name": "variadic_declarator"
12144        }
12145      ]
12146    },
12147    "operator_cast": {
12148      "type": "PREC_RIGHT",
12149      "value": 1,
12150      "content": {
12151        "type": "SEQ",
12152        "members": [
12153          {
12154            "type": "STRING",
12155            "value": "operator"
12156          },
12157          {
12158            "type": "SYMBOL",
12159            "name": "_declaration_specifiers"
12160          },
12161          {
12162            "type": "FIELD",
12163            "name": "declarator",
12164            "content": {
12165              "type": "SYMBOL",
12166              "name": "_abstract_declarator"
12167            }
12168          }
12169        ]
12170      }
12171    },
12172    "field_initializer_list": {
12173      "type": "SEQ",
12174      "members": [
12175        {
12176          "type": "STRING",
12177          "value": ":"
12178        },
12179        {
12180          "type": "SEQ",
12181          "members": [
12182            {
12183              "type": "SYMBOL",
12184              "name": "field_initializer"
12185            },
12186            {
12187              "type": "REPEAT",
12188              "content": {
12189                "type": "SEQ",
12190                "members": [
12191                  {
12192                    "type": "STRING",
12193                    "value": ","
12194                  },
12195                  {
12196                    "type": "SYMBOL",
12197                    "name": "field_initializer"
12198                  }
12199                ]
12200              }
12201            }
12202          ]
12203        }
12204      ]
12205    },
12206    "field_initializer": {
12207      "type": "PREC",
12208      "value": 1,
12209      "content": {
12210        "type": "SEQ",
12211        "members": [
12212          {
12213            "type": "CHOICE",
12214            "members": [
12215              {
12216                "type": "SYMBOL",
12217                "name": "_field_identifier"
12218              },
12219              {
12220                "type": "SYMBOL",
12221                "name": "template_method"
12222              },
12223              {
12224                "type": "ALIAS",
12225                "content": {
12226                  "type": "SYMBOL",
12227                  "name": "qualified_field_identifier"
12228                },
12229                "named": true,
12230                "value": "qualified_identifier"
12231              }
12232            ]
12233          },
12234          {
12235            "type": "CHOICE",
12236            "members": [
12237              {
12238                "type": "SYMBOL",
12239                "name": "initializer_list"
12240              },
12241              {
12242                "type": "SYMBOL",
12243                "name": "argument_list"
12244              }
12245            ]
12246          },
12247          {
12248            "type": "CHOICE",
12249            "members": [
12250              {
12251                "type": "STRING",
12252                "value": "..."
12253              },
12254              {
12255                "type": "BLANK"
12256              }
12257            ]
12258          }
12259        ]
12260      }
12261    },
12262    "inline_method_definition": {
12263      "type": "SEQ",
12264      "members": [
12265        {
12266          "type": "SYMBOL",
12267          "name": "_declaration_specifiers"
12268        },
12269        {
12270          "type": "FIELD",
12271          "name": "declarator",
12272          "content": {
12273            "type": "SYMBOL",
12274            "name": "_field_declarator"
12275          }
12276        },
12277        {
12278          "type": "CHOICE",
12279          "members": [
12280            {
12281              "type": "FIELD",
12282              "name": "body",
12283              "content": {
12284                "type": "CHOICE",
12285                "members": [
12286                  {
12287                    "type": "SYMBOL",
12288                    "name": "compound_statement"
12289                  },
12290                  {
12291                    "type": "SYMBOL",
12292                    "name": "try_statement"
12293                  }
12294                ]
12295              }
12296            },
12297            {
12298              "type": "SYMBOL",
12299              "name": "default_method_clause"
12300            },
12301            {
12302              "type": "SYMBOL",
12303              "name": "delete_method_clause"
12304            },
12305            {
12306              "type": "SYMBOL",
12307              "name": "pure_virtual_clause"
12308            }
12309          ]
12310        }
12311      ]
12312    },
12313    "_constructor_specifiers": {
12314      "type": "CHOICE",
12315      "members": [
12316        {
12317          "type": "SYMBOL",
12318          "name": "_declaration_modifiers"
12319        },
12320        {
12321          "type": "SYMBOL",
12322          "name": "explicit_function_specifier"
12323        }
12324      ]
12325    },
12326    "operator_cast_definition": {
12327      "type": "SEQ",
12328      "members": [
12329        {
12330          "type": "REPEAT",
12331          "content": {
12332            "type": "SYMBOL",
12333            "name": "_constructor_specifiers"
12334          }
12335        },
12336        {
12337          "type": "FIELD",
12338          "name": "declarator",
12339          "content": {
12340            "type": "CHOICE",
12341            "members": [
12342              {
12343                "type": "SYMBOL",
12344                "name": "operator_cast"
12345              },
12346              {
12347                "type": "ALIAS",
12348                "content": {
12349                  "type": "SYMBOL",
12350                  "name": "qualified_operator_cast_identifier"
12351                },
12352                "named": true,
12353                "value": "qualified_identifier"
12354              }
12355            ]
12356          }
12357        },
12358        {
12359          "type": "FIELD",
12360          "name": "body",
12361          "content": {
12362            "type": "CHOICE",
12363            "members": [
12364              {
12365                "type": "SYMBOL",
12366                "name": "compound_statement"
12367              },
12368              {
12369                "type": "SYMBOL",
12370                "name": "try_statement"
12371              }
12372            ]
12373          }
12374        }
12375      ]
12376    },
12377    "operator_cast_declaration": {
12378      "type": "PREC",
12379      "value": 1,
12380      "content": {
12381        "type": "SEQ",
12382        "members": [
12383          {
12384            "type": "REPEAT",
12385            "content": {
12386              "type": "SYMBOL",
12387              "name": "_constructor_specifiers"
12388            }
12389          },
12390          {
12391            "type": "FIELD",
12392            "name": "declarator",
12393            "content": {
12394              "type": "CHOICE",
12395              "members": [
12396                {
12397                  "type": "SYMBOL",
12398                  "name": "operator_cast"
12399                },
12400                {
12401                  "type": "ALIAS",
12402                  "content": {
12403                    "type": "SYMBOL",
12404                    "name": "qualified_operator_cast_identifier"
12405                  },
12406                  "named": true,
12407                  "value": "qualified_identifier"
12408                }
12409              ]
12410            }
12411          },
12412          {
12413            "type": "CHOICE",
12414            "members": [
12415              {
12416                "type": "SEQ",
12417                "members": [
12418                  {
12419                    "type": "STRING",
12420                    "value": "="
12421                  },
12422                  {
12423                    "type": "FIELD",
12424                    "name": "default_value",
12425                    "content": {
12426                      "type": "SYMBOL",
12427                      "name": "expression"
12428                    }
12429                  }
12430                ]
12431              },
12432              {
12433                "type": "BLANK"
12434              }
12435            ]
12436          },
12437          {
12438            "type": "STRING",
12439            "value": ";"
12440          }
12441        ]
12442      }
12443    },
12444    "constructor_try_statement": {
12445      "type": "SEQ",
12446      "members": [
12447        {
12448          "type": "STRING",
12449          "value": "try"
12450        },
12451        {
12452          "type": "CHOICE",
12453          "members": [
12454            {
12455              "type": "SYMBOL",
12456              "name": "field_initializer_list"
12457            },
12458            {
12459              "type": "BLANK"
12460            }
12461          ]
12462        },
12463        {
12464          "type": "FIELD",
12465          "name": "body",
12466          "content": {
12467            "type": "SYMBOL",
12468            "name": "compound_statement"
12469          }
12470        },
12471        {
12472          "type": "REPEAT1",
12473          "content": {
12474            "type": "SYMBOL",
12475            "name": "catch_clause"
12476          }
12477        }
12478      ]
12479    },
12480    "constructor_or_destructor_definition": {
12481      "type": "SEQ",
12482      "members": [
12483        {
12484          "type": "REPEAT",
12485          "content": {
12486            "type": "SYMBOL",
12487            "name": "_constructor_specifiers"
12488          }
12489        },
12490        {
12491          "type": "FIELD",
12492          "name": "declarator",
12493          "content": {
12494            "type": "SYMBOL",
12495            "name": "function_declarator"
12496          }
12497        },
12498        {
12499          "type": "CHOICE",
12500          "members": [
12501            {
12502              "type": "SEQ",
12503              "members": [
12504                {
12505                  "type": "CHOICE",
12506                  "members": [
12507                    {
12508                      "type": "SYMBOL",
12509                      "name": "field_initializer_list"
12510                    },
12511                    {
12512                      "type": "BLANK"
12513                    }
12514                  ]
12515                },
12516                {
12517                  "type": "FIELD",
12518                  "name": "body",
12519                  "content": {
12520                    "type": "SYMBOL",
12521                    "name": "compound_statement"
12522                  }
12523                }
12524              ]
12525            },
12526            {
12527              "type": "ALIAS",
12528              "content": {
12529                "type": "SYMBOL",
12530                "name": "constructor_try_statement"
12531              },
12532              "named": true,
12533              "value": "try_statement"
12534            },
12535            {
12536              "type": "SYMBOL",
12537              "name": "default_method_clause"
12538            },
12539            {
12540              "type": "SYMBOL",
12541              "name": "delete_method_clause"
12542            },
12543            {
12544              "type": "SYMBOL",
12545              "name": "pure_virtual_clause"
12546            }
12547          ]
12548        }
12549      ]
12550    },
12551    "constructor_or_destructor_declaration": {
12552      "type": "SEQ",
12553      "members": [
12554        {
12555          "type": "REPEAT",
12556          "content": {
12557            "type": "SYMBOL",
12558            "name": "_constructor_specifiers"
12559          }
12560        },
12561        {
12562          "type": "FIELD",
12563          "name": "declarator",
12564          "content": {
12565            "type": "SYMBOL",
12566            "name": "function_declarator"
12567          }
12568        },
12569        {
12570          "type": "STRING",
12571          "value": ";"
12572        }
12573      ]
12574    },
12575    "default_method_clause": {
12576      "type": "SEQ",
12577      "members": [
12578        {
12579          "type": "STRING",
12580          "value": "="
12581        },
12582        {
12583          "type": "STRING",
12584          "value": "default"
12585        },
12586        {
12587          "type": "STRING",
12588          "value": ";"
12589        }
12590      ]
12591    },
12592    "delete_method_clause": {
12593      "type": "SEQ",
12594      "members": [
12595        {
12596          "type": "STRING",
12597          "value": "="
12598        },
12599        {
12600          "type": "STRING",
12601          "value": "delete"
12602        },
12603        {
12604          "type": "STRING",
12605          "value": ";"
12606        }
12607      ]
12608    },
12609    "pure_virtual_clause": {
12610      "type": "SEQ",
12611      "members": [
12612        {
12613          "type": "STRING",
12614          "value": "="
12615        },
12616        {
12617          "type": "STRING",
12618          "value": "0"
12619        },
12620        {
12621          "type": "STRING",
12622          "value": ";"
12623        }
12624      ]
12625    },
12626    "friend_declaration": {
12627      "type": "SEQ",
12628      "members": [
12629        {
12630          "type": "STRING",
12631          "value": "friend"
12632        },
12633        {
12634          "type": "CHOICE",
12635          "members": [
12636            {
12637              "type": "SYMBOL",
12638              "name": "declaration"
12639            },
12640            {
12641              "type": "SYMBOL",
12642              "name": "function_definition"
12643            },
12644            {
12645              "type": "SEQ",
12646              "members": [
12647                {
12648                  "type": "CHOICE",
12649                  "members": [
12650                    {
12651                      "type": "CHOICE",
12652                      "members": [
12653                        {
12654                          "type": "STRING",
12655                          "value": "class"
12656                        },
12657                        {
12658                          "type": "STRING",
12659                          "value": "struct"
12660                        },
12661                        {
12662                          "type": "STRING",
12663                          "value": "union"
12664                        }
12665                      ]
12666                    },
12667                    {
12668                      "type": "BLANK"
12669                    }
12670                  ]
12671                },
12672                {
12673                  "type": "SYMBOL",
12674                  "name": "_class_name"
12675                },
12676                {
12677                  "type": "STRING",
12678                  "value": ";"
12679                }
12680              ]
12681            }
12682          ]
12683        }
12684      ]
12685    },
12686    "access_specifier": {
12687      "type": "CHOICE",
12688      "members": [
12689        {
12690          "type": "STRING",
12691          "value": "public"
12692        },
12693        {
12694          "type": "STRING",
12695          "value": "private"
12696        },
12697        {
12698          "type": "STRING",
12699          "value": "protected"
12700        }
12701      ]
12702    },
12703    "reference_declarator": {
12704      "type": "PREC_DYNAMIC",
12705      "value": 1,
12706      "content": {
12707        "type": "PREC_RIGHT",
12708        "value": 0,
12709        "content": {
12710          "type": "SEQ",
12711          "members": [
12712            {
12713              "type": "CHOICE",
12714              "members": [
12715                {
12716                  "type": "STRING",
12717                  "value": "&"
12718                },
12719                {
12720                  "type": "STRING",
12721                  "value": "&&"
12722                }
12723              ]
12724            },
12725            {
12726              "type": "SYMBOL",
12727              "name": "_declarator"
12728            }
12729          ]
12730        }
12731      }
12732    },
12733    "reference_field_declarator": {
12734      "type": "PREC_DYNAMIC",
12735      "value": 1,
12736      "content": {
12737        "type": "PREC_RIGHT",
12738        "value": 0,
12739        "content": {
12740          "type": "SEQ",
12741          "members": [
12742            {
12743              "type": "CHOICE",
12744              "members": [
12745                {
12746                  "type": "STRING",
12747                  "value": "&"
12748                },
12749                {
12750                  "type": "STRING",
12751                  "value": "&&"
12752                }
12753              ]
12754            },
12755            {
12756              "type": "SYMBOL",
12757              "name": "_field_declarator"
12758            }
12759          ]
12760        }
12761      }
12762    },
12763    "reference_type_declarator": {
12764      "type": "PREC_DYNAMIC",
12765      "value": 1,
12766      "content": {
12767        "type": "PREC_RIGHT",
12768        "value": 0,
12769        "content": {
12770          "type": "SEQ",
12771          "members": [
12772            {
12773              "type": "CHOICE",
12774              "members": [
12775                {
12776                  "type": "STRING",
12777                  "value": "&"
12778                },
12779                {
12780                  "type": "STRING",
12781                  "value": "&&"
12782                }
12783              ]
12784            },
12785            {
12786              "type": "SYMBOL",
12787              "name": "_type_declarator"
12788            }
12789          ]
12790        }
12791      }
12792    },
12793    "abstract_reference_declarator": {
12794      "type": "PREC_RIGHT",
12795      "value": 0,
12796      "content": {
12797        "type": "SEQ",
12798        "members": [
12799          {
12800            "type": "CHOICE",
12801            "members": [
12802              {
12803                "type": "STRING",
12804                "value": "&"
12805              },
12806              {
12807                "type": "STRING",
12808                "value": "&&"
12809              }
12810            ]
12811          },
12812          {
12813            "type": "CHOICE",
12814            "members": [
12815              {
12816                "type": "SYMBOL",
12817                "name": "_abstract_declarator"
12818              },
12819              {
12820                "type": "BLANK"
12821              }
12822            ]
12823          }
12824        ]
12825      }
12826    },
12827    "structured_binding_declarator": {
12828      "type": "PREC_DYNAMIC",
12829      "value": -1,
12830      "content": {
12831        "type": "SEQ",
12832        "members": [
12833          {
12834            "type": "STRING",
12835            "value": "["
12836          },
12837          {
12838            "type": "SEQ",
12839            "members": [
12840              {
12841                "type": "SYMBOL",
12842                "name": "identifier"
12843              },
12844              {
12845                "type": "REPEAT",
12846                "content": {
12847                  "type": "SEQ",
12848                  "members": [
12849                    {
12850                      "type": "STRING",
12851                      "value": ","
12852                    },
12853                    {
12854                      "type": "SYMBOL",
12855                      "name": "identifier"
12856                    }
12857                  ]
12858                }
12859              }
12860            ]
12861          },
12862          {
12863            "type": "STRING",
12864            "value": "]"
12865          }
12866        ]
12867      }
12868    },
12869    "ref_qualifier": {
12870      "type": "CHOICE",
12871      "members": [
12872        {
12873          "type": "STRING",
12874          "value": "&"
12875        },
12876        {
12877          "type": "STRING",
12878          "value": "&&"
12879        }
12880      ]
12881    },
12882    "_function_declarator_seq": {
12883      "type": "SEQ",
12884      "members": [
12885        {
12886          "type": "FIELD",
12887          "name": "parameters",
12888          "content": {
12889            "type": "SYMBOL",
12890            "name": "parameter_list"
12891          }
12892        },
12893        {
12894          "type": "CHOICE",
12895          "members": [
12896            {
12897              "type": "SYMBOL",
12898              "name": "_function_attributes_start"
12899            },
12900            {
12901              "type": "BLANK"
12902            }
12903          ]
12904        },
12905        {
12906          "type": "CHOICE",
12907          "members": [
12908            {
12909              "type": "SYMBOL",
12910              "name": "ref_qualifier"
12911            },
12912            {
12913              "type": "BLANK"
12914            }
12915          ]
12916        },
12917        {
12918          "type": "CHOICE",
12919          "members": [
12920            {
12921              "type": "SYMBOL",
12922              "name": "_function_exception_specification"
12923            },
12924            {
12925              "type": "BLANK"
12926            }
12927          ]
12928        },
12929        {
12930          "type": "CHOICE",
12931          "members": [
12932            {
12933              "type": "SYMBOL",
12934              "name": "_function_attributes_end"
12935            },
12936            {
12937              "type": "BLANK"
12938            }
12939          ]
12940        },
12941        {
12942          "type": "CHOICE",
12943          "members": [
12944            {
12945              "type": "SYMBOL",
12946              "name": "trailing_return_type"
12947            },
12948            {
12949              "type": "BLANK"
12950            }
12951          ]
12952        },
12953        {
12954          "type": "CHOICE",
12955          "members": [
12956            {
12957              "type": "SYMBOL",
12958              "name": "_function_postfix"
12959            },
12960            {
12961              "type": "BLANK"
12962            }
12963          ]
12964        }
12965      ]
12966    },
12967    "_function_attributes_start": {
12968      "type": "PREC",
12969      "value": 1,
12970      "content": {
12971        "type": "CHOICE",
12972        "members": [
12973          {
12974            "type": "SEQ",
12975            "members": [
12976              {
12977                "type": "REPEAT1",
12978                "content": {
12979                  "type": "SYMBOL",
12980                  "name": "attribute_specifier"
12981                }
12982              },
12983              {
12984                "type": "REPEAT",
12985                "content": {
12986                  "type": "SYMBOL",
12987                  "name": "type_qualifier"
12988                }
12989              }
12990            ]
12991          },
12992          {
12993            "type": "SEQ",
12994            "members": [
12995              {
12996                "type": "REPEAT",
12997                "content": {
12998                  "type": "SYMBOL",
12999                  "name": "attribute_specifier"
13000                }
13001              },
13002              {
13003                "type": "REPEAT1",
13004                "content": {
13005                  "type": "SYMBOL",
13006                  "name": "type_qualifier"
13007                }
13008              }
13009            ]
13010          }
13011        ]
13012      }
13013    },
13014    "_function_exception_specification": {
13015      "type": "CHOICE",
13016      "members": [
13017        {
13018          "type": "SYMBOL",
13019          "name": "noexcept"
13020        },
13021        {
13022          "type": "SYMBOL",
13023          "name": "throw_specifier"
13024        }
13025      ]
13026    },
13027    "_function_attributes_end": {
13028      "type": "PREC_RIGHT",
13029      "value": 0,
13030      "content": {
13031        "type": "SEQ",
13032        "members": [
13033          {
13034            "type": "CHOICE",
13035            "members": [
13036              {
13037                "type": "SYMBOL",
13038                "name": "gnu_asm_expression"
13039              },
13040              {
13041                "type": "BLANK"
13042              }
13043            ]
13044          },
13045          {
13046            "type": "CHOICE",
13047            "members": [
13048              {
13049                "type": "SEQ",
13050                "members": [
13051                  {
13052                    "type": "REPEAT1",
13053                    "content": {
13054                      "type": "SYMBOL",
13055                      "name": "attribute_specifier"
13056                    }
13057                  },
13058                  {
13059                    "type": "REPEAT",
13060                    "content": {
13061                      "type": "SYMBOL",
13062                      "name": "attribute_declaration"
13063                    }
13064                  }
13065                ]
13066              },
13067              {
13068                "type": "SEQ",
13069                "members": [
13070                  {
13071                    "type": "REPEAT",
13072                    "content": {
13073                      "type": "SYMBOL",
13074                      "name": "attribute_specifier"
13075                    }
13076                  },
13077                  {
13078                    "type": "REPEAT1",
13079                    "content": {
13080                      "type": "SYMBOL",
13081                      "name": "attribute_declaration"
13082                    }
13083                  }
13084                ]
13085              }
13086            ]
13087          }
13088        ]
13089      }
13090    },
13091    "_function_postfix": {
13092      "type": "PREC_RIGHT",
13093      "value": 0,
13094      "content": {
13095        "type": "CHOICE",
13096        "members": [
13097          {
13098            "type": "REPEAT1",
13099            "content": {
13100              "type": "SYMBOL",
13101              "name": "virtual_specifier"
13102            }
13103          },
13104          {
13105            "type": "SYMBOL",
13106            "name": "requires_clause"
13107          }
13108        ]
13109      }
13110    },
13111    "trailing_return_type": {
13112      "type": "SEQ",
13113      "members": [
13114        {
13115          "type": "STRING",
13116          "value": "->"
13117        },
13118        {
13119          "type": "SYMBOL",
13120          "name": "type_descriptor"
13121        }
13122      ]
13123    },
13124    "noexcept": {
13125      "type": "PREC_RIGHT",
13126      "value": 0,
13127      "content": {
13128        "type": "SEQ",
13129        "members": [
13130          {
13131            "type": "STRING",
13132            "value": "noexcept"
13133          },
13134          {
13135            "type": "CHOICE",
13136            "members": [
13137              {
13138                "type": "SEQ",
13139                "members": [
13140                  {
13141                    "type": "STRING",
13142                    "value": "("
13143                  },
13144                  {
13145                    "type": "CHOICE",
13146                    "members": [
13147                      {
13148                        "type": "SYMBOL",
13149                        "name": "expression"
13150                      },
13151                      {
13152                        "type": "BLANK"
13153                      }
13154                    ]
13155                  },
13156                  {
13157                    "type": "STRING",
13158                    "value": ")"
13159                  }
13160                ]
13161              },
13162              {
13163                "type": "BLANK"
13164              }
13165            ]
13166          }
13167        ]
13168      }
13169    },
13170    "throw_specifier": {
13171      "type": "SEQ",
13172      "members": [
13173        {
13174          "type": "STRING",
13175          "value": "throw"
13176        },
13177        {
13178          "type": "SEQ",
13179          "members": [
13180            {
13181              "type": "STRING",
13182              "value": "("
13183            },
13184            {
13185              "type": "CHOICE",
13186              "members": [
13187                {
13188                  "type": "SEQ",
13189                  "members": [
13190                    {
13191                      "type": "SYMBOL",
13192                      "name": "type_descriptor"
13193                    },
13194                    {
13195                      "type": "REPEAT",
13196                      "content": {
13197                        "type": "SEQ",
13198                        "members": [
13199                          {
13200                            "type": "STRING",
13201                            "value": ","
13202                          },
13203                          {
13204                            "type": "SYMBOL",
13205                            "name": "type_descriptor"
13206                          }
13207                        ]
13208                      }
13209                    }
13210                  ]
13211                },
13212                {
13213                  "type": "BLANK"
13214                }
13215              ]
13216            },
13217            {
13218              "type": "STRING",
13219              "value": ")"
13220            }
13221          ]
13222        }
13223      ]
13224    },
13225    "template_type": {
13226      "type": "SEQ",
13227      "members": [
13228        {
13229          "type": "FIELD",
13230          "name": "name",
13231          "content": {
13232            "type": "SYMBOL",
13233            "name": "_type_identifier"
13234          }
13235        },
13236        {
13237          "type": "FIELD",
13238          "name": "arguments",
13239          "content": {
13240            "type": "SYMBOL",
13241            "name": "template_argument_list"
13242          }
13243        }
13244      ]
13245    },
13246    "template_method": {
13247      "type": "SEQ",
13248      "members": [
13249        {
13250          "type": "FIELD",
13251          "name": "name",
13252          "content": {
13253            "type": "CHOICE",
13254            "members": [
13255              {
13256                "type": "SYMBOL",
13257                "name": "_field_identifier"
13258              },
13259              {
13260                "type": "SYMBOL",
13261                "name": "operator_name"
13262              }
13263            ]
13264          }
13265        },
13266        {
13267          "type": "FIELD",
13268          "name": "arguments",
13269          "content": {
13270            "type": "SYMBOL",
13271            "name": "template_argument_list"
13272          }
13273        }
13274      ]
13275    },
13276    "template_function": {
13277      "type": "SEQ",
13278      "members": [
13279        {
13280          "type": "FIELD",
13281          "name": "name",
13282          "content": {
13283            "type": "SYMBOL",
13284            "name": "identifier"
13285          }
13286        },
13287        {
13288          "type": "FIELD",
13289          "name": "arguments",
13290          "content": {
13291            "type": "SYMBOL",
13292            "name": "template_argument_list"
13293          }
13294        }
13295      ]
13296    },
13297    "template_argument_list": {
13298      "type": "SEQ",
13299      "members": [
13300        {
13301          "type": "STRING",
13302          "value": "<"
13303        },
13304        {
13305          "type": "CHOICE",
13306          "members": [
13307            {
13308              "type": "SEQ",
13309              "members": [
13310                {
13311                  "type": "CHOICE",
13312                  "members": [
13313                    {
13314                      "type": "PREC_DYNAMIC",
13315                      "value": 3,
13316                      "content": {
13317                        "type": "SYMBOL",
13318                        "name": "type_descriptor"
13319                      }
13320                    },
13321                    {
13322                      "type": "PREC_DYNAMIC",
13323                      "value": 2,
13324                      "content": {
13325                        "type": "ALIAS",
13326                        "content": {
13327                          "type": "SYMBOL",
13328                          "name": "type_parameter_pack_expansion"
13329                        },
13330                        "named": true,
13331                        "value": "parameter_pack_expansion"
13332                      }
13333                    },
13334                    {
13335                      "type": "PREC_DYNAMIC",
13336                      "value": 1,
13337                      "content": {
13338                        "type": "SYMBOL",
13339                        "name": "expression"
13340                      }
13341                    }
13342                  ]
13343                },
13344                {
13345                  "type": "REPEAT",
13346                  "content": {
13347                    "type": "SEQ",
13348                    "members": [
13349                      {
13350                        "type": "STRING",
13351                        "value": ","
13352                      },
13353                      {
13354                        "type": "CHOICE",
13355                        "members": [
13356                          {
13357                            "type": "PREC_DYNAMIC",
13358                            "value": 3,
13359                            "content": {
13360                              "type": "SYMBOL",
13361                              "name": "type_descriptor"
13362                            }
13363                          },
13364                          {
13365                            "type": "PREC_DYNAMIC",
13366                            "value": 2,
13367                            "content": {
13368                              "type": "ALIAS",
13369                              "content": {
13370                                "type": "SYMBOL",
13371                                "name": "type_parameter_pack_expansion"
13372                              },
13373                              "named": true,
13374                              "value": "parameter_pack_expansion"
13375                            }
13376                          },
13377                          {
13378                            "type": "PREC_DYNAMIC",
13379                            "value": 1,
13380                            "content": {
13381                              "type": "SYMBOL",
13382                              "name": "expression"
13383                            }
13384                          }
13385                        ]
13386                      }
13387                    ]
13388                  }
13389                }
13390              ]
13391            },
13392            {
13393              "type": "BLANK"
13394            }
13395          ]
13396        },
13397        {
13398          "type": "ALIAS",
13399          "content": {
13400            "type": "TOKEN",
13401            "content": {
13402              "type": "PREC",
13403              "value": 1,
13404              "content": {
13405                "type": "STRING",
13406                "value": ">"
13407              }
13408            }
13409          },
13410          "named": false,
13411          "value": ">"
13412        }
13413      ]
13414    },
13415    "namespace_definition": {
13416      "type": "SEQ",
13417      "members": [
13418        {
13419          "type": "CHOICE",
13420          "members": [
13421            {
13422              "type": "STRING",
13423              "value": "inline"
13424            },
13425            {
13426              "type": "BLANK"
13427            }
13428          ]
13429        },
13430        {
13431          "type": "STRING",
13432          "value": "namespace"
13433        },
13434        {
13435          "type": "CHOICE",
13436          "members": [
13437            {
13438              "type": "SYMBOL",
13439              "name": "attribute_declaration"
13440            },
13441            {
13442              "type": "BLANK"
13443            }
13444          ]
13445        },
13446        {
13447          "type": "FIELD",
13448          "name": "name",
13449          "content": {
13450            "type": "CHOICE",
13451            "members": [
13452              {
13453                "type": "CHOICE",
13454                "members": [
13455                  {
13456                    "type": "SYMBOL",
13457                    "name": "_namespace_identifier"
13458                  },
13459                  {
13460                    "type": "SYMBOL",
13461                    "name": "nested_namespace_specifier"
13462                  }
13463                ]
13464              },
13465              {
13466                "type": "BLANK"
13467              }
13468            ]
13469          }
13470        },
13471        {
13472          "type": "FIELD",
13473          "name": "body",
13474          "content": {
13475            "type": "SYMBOL",
13476            "name": "declaration_list"
13477          }
13478        }
13479      ]
13480    },
13481    "namespace_alias_definition": {
13482      "type": "SEQ",
13483      "members": [
13484        {
13485          "type": "STRING",
13486          "value": "namespace"
13487        },
13488        {
13489          "type": "FIELD",
13490          "name": "name",
13491          "content": {
13492            "type": "SYMBOL",
13493            "name": "_namespace_identifier"
13494          }
13495        },
13496        {
13497          "type": "STRING",
13498          "value": "="
13499        },
13500        {
13501          "type": "CHOICE",
13502          "members": [
13503            {
13504              "type": "SYMBOL",
13505              "name": "_namespace_identifier"
13506            },
13507            {
13508              "type": "SYMBOL",
13509              "name": "nested_namespace_specifier"
13510            }
13511          ]
13512        },
13513        {
13514          "type": "STRING",
13515          "value": ";"
13516        }
13517      ]
13518    },
13519    "_namespace_specifier": {
13520      "type": "SEQ",
13521      "members": [
13522        {
13523          "type": "CHOICE",
13524          "members": [
13525            {
13526              "type": "STRING",
13527              "value": "inline"
13528            },
13529            {
13530              "type": "BLANK"
13531            }
13532          ]
13533        },
13534        {
13535          "type": "SYMBOL",
13536          "name": "_namespace_identifier"
13537        }
13538      ]
13539    },
13540    "nested_namespace_specifier": {
13541      "type": "PREC",
13542      "value": 1,
13543      "content": {
13544        "type": "SEQ",
13545        "members": [
13546          {
13547            "type": "CHOICE",
13548            "members": [
13549              {
13550                "type": "SYMBOL",
13551                "name": "_namespace_specifier"
13552              },
13553              {
13554                "type": "BLANK"
13555              }
13556            ]
13557          },
13558          {
13559            "type": "STRING",
13560            "value": "::"
13561          },
13562          {
13563            "type": "CHOICE",
13564            "members": [
13565              {
13566                "type": "SYMBOL",
13567                "name": "nested_namespace_specifier"
13568              },
13569              {
13570                "type": "SYMBOL",
13571                "name": "_namespace_specifier"
13572              }
13573            ]
13574          }
13575        ]
13576      }
13577    },
13578    "using_declaration": {
13579      "type": "SEQ",
13580      "members": [
13581        {
13582          "type": "STRING",
13583          "value": "using"
13584        },
13585        {
13586          "type": "CHOICE",
13587          "members": [
13588            {
13589              "type": "CHOICE",
13590              "members": [
13591                {
13592                  "type": "STRING",
13593                  "value": "namespace"
13594                },
13595                {
13596                  "type": "STRING",
13597                  "value": "enum"
13598                }
13599              ]
13600            },
13601            {
13602              "type": "BLANK"
13603            }
13604          ]
13605        },
13606        {
13607          "type": "CHOICE",
13608          "members": [
13609            {
13610              "type": "SYMBOL",
13611              "name": "identifier"
13612            },
13613            {
13614              "type": "SYMBOL",
13615              "name": "qualified_identifier"
13616            }
13617          ]
13618        },
13619        {
13620          "type": "STRING",
13621          "value": ";"
13622        }
13623      ]
13624    },
13625    "alias_declaration": {
13626      "type": "SEQ",
13627      "members": [
13628        {
13629          "type": "STRING",
13630          "value": "using"
13631        },
13632        {
13633          "type": "FIELD",
13634          "name": "name",
13635          "content": {
13636            "type": "SYMBOL",
13637            "name": "_type_identifier"
13638          }
13639        },
13640        {
13641          "type": "REPEAT",
13642          "content": {
13643            "type": "SYMBOL",
13644            "name": "attribute_declaration"
13645          }
13646        },
13647        {
13648          "type": "STRING",
13649          "value": "="
13650        },
13651        {
13652          "type": "FIELD",
13653          "name": "type",
13654          "content": {
13655            "type": "SYMBOL",
13656            "name": "type_descriptor"
13657          }
13658        },
13659        {
13660          "type": "STRING",
13661          "value": ";"
13662        }
13663      ]
13664    },
13665    "static_assert_declaration": {
13666      "type": "SEQ",
13667      "members": [
13668        {
13669          "type": "STRING",
13670          "value": "static_assert"
13671        },
13672        {
13673          "type": "STRING",
13674          "value": "("
13675        },
13676        {
13677          "type": "FIELD",
13678          "name": "condition",
13679          "content": {
13680            "type": "SYMBOL",
13681            "name": "expression"
13682          }
13683        },
13684        {
13685          "type": "CHOICE",
13686          "members": [
13687            {
13688              "type": "SEQ",
13689              "members": [
13690                {
13691                  "type": "STRING",
13692                  "value": ","
13693                },
13694                {
13695                  "type": "FIELD",
13696                  "name": "message",
13697                  "content": {
13698                    "type": "CHOICE",
13699                    "members": [
13700                      {
13701                        "type": "SYMBOL",
13702                        "name": "string_literal"
13703                      },
13704                      {
13705                        "type": "SYMBOL",
13706                        "name": "raw_string_literal"
13707                      },
13708                      {
13709                        "type": "SYMBOL",
13710                        "name": "concatenated_string"
13711                      }
13712                    ]
13713                  }
13714                }
13715              ]
13716            },
13717            {
13718              "type": "BLANK"
13719            }
13720          ]
13721        },
13722        {
13723          "type": "STRING",
13724          "value": ")"
13725        },
13726        {
13727          "type": "STRING",
13728          "value": ";"
13729        }
13730      ]
13731    },
13732    "concept_definition": {
13733      "type": "SEQ",
13734      "members": [
13735        {
13736          "type": "STRING",
13737          "value": "concept"
13738        },
13739        {
13740          "type": "FIELD",
13741          "name": "name",
13742          "content": {
13743            "type": "SYMBOL",
13744            "name": "identifier"
13745          }
13746        },
13747        {
13748          "type": "STRING",
13749          "value": "="
13750        },
13751        {
13752          "type": "SYMBOL",
13753          "name": "expression"
13754        },
13755        {
13756          "type": "STRING",
13757          "value": ";"
13758        }
13759      ]
13760    },
13761    "for_range_loop": {
13762      "type": "SEQ",
13763      "members": [
13764        {
13765          "type": "STRING",
13766          "value": "for"
13767        },
13768        {
13769          "type": "STRING",
13770          "value": "("
13771        },
13772        {
13773          "type": "SYMBOL",
13774          "name": "_for_range_loop_body"
13775        },
13776        {
13777          "type": "STRING",
13778          "value": ")"
13779        },
13780        {
13781          "type": "FIELD",
13782          "name": "body",
13783          "content": {
13784            "type": "SYMBOL",
13785            "name": "statement"
13786          }
13787        }
13788      ]
13789    },
13790    "_for_range_loop_body": {
13791      "type": "SEQ",
13792      "members": [
13793        {
13794          "type": "FIELD",
13795          "name": "initializer",
13796          "content": {
13797            "type": "CHOICE",
13798            "members": [
13799              {
13800                "type": "SYMBOL",
13801                "name": "init_statement"
13802              },
13803              {
13804                "type": "BLANK"
13805              }
13806            ]
13807          }
13808        },
13809        {
13810          "type": "SYMBOL",
13811          "name": "_declaration_specifiers"
13812        },
13813        {
13814          "type": "FIELD",
13815          "name": "declarator",
13816          "content": {
13817            "type": "SYMBOL",
13818            "name": "_declarator"
13819          }
13820        },
13821        {
13822          "type": "STRING",
13823          "value": ":"
13824        },
13825        {
13826          "type": "FIELD",
13827          "name": "right",
13828          "content": {
13829            "type": "CHOICE",
13830            "members": [
13831              {
13832                "type": "SYMBOL",
13833                "name": "expression"
13834              },
13835              {
13836                "type": "SYMBOL",
13837                "name": "initializer_list"
13838              }
13839            ]
13840          }
13841        }
13842      ]
13843    },
13844    "init_statement": {
13845      "type": "CHOICE",
13846      "members": [
13847        {
13848          "type": "SYMBOL",
13849          "name": "alias_declaration"
13850        },
13851        {
13852          "type": "SYMBOL",
13853          "name": "type_definition"
13854        },
13855        {
13856          "type": "SYMBOL",
13857          "name": "declaration"
13858        },
13859        {
13860          "type": "SYMBOL",
13861          "name": "expression_statement"
13862        }
13863      ]
13864    },
13865    "condition_clause": {
13866      "type": "SEQ",
13867      "members": [
13868        {
13869          "type": "STRING",
13870          "value": "("
13871        },
13872        {
13873          "type": "FIELD",
13874          "name": "initializer",
13875          "content": {
13876            "type": "CHOICE",
13877            "members": [
13878              {
13879                "type": "SYMBOL",
13880                "name": "init_statement"
13881              },
13882              {
13883                "type": "BLANK"
13884              }
13885            ]
13886          }
13887        },
13888        {
13889          "type": "FIELD",
13890          "name": "value",
13891          "content": {
13892            "type": "CHOICE",
13893            "members": [
13894              {
13895                "type": "SYMBOL",
13896                "name": "expression"
13897              },
13898              {
13899                "type": "SYMBOL",
13900                "name": "comma_expression"
13901              },
13902              {
13903                "type": "ALIAS",
13904                "content": {
13905                  "type": "SYMBOL",
13906                  "name": "condition_declaration"
13907                },
13908                "named": true,
13909                "value": "declaration"
13910              }
13911            ]
13912          }
13913        },
13914        {
13915          "type": "STRING",
13916          "value": ")"
13917        }
13918      ]
13919    },
13920    "condition_declaration": {
13921      "type": "SEQ",
13922      "members": [
13923        {
13924          "type": "SYMBOL",
13925          "name": "_declaration_specifiers"
13926        },
13927        {
13928          "type": "FIELD",
13929          "name": "declarator",
13930          "content": {
13931            "type": "SYMBOL",
13932            "name": "_declarator"
13933          }
13934        },
13935        {
13936          "type": "CHOICE",
13937          "members": [
13938            {
13939              "type": "SEQ",
13940              "members": [
13941                {
13942                  "type": "STRING",
13943                  "value": "="
13944                },
13945                {
13946                  "type": "FIELD",
13947                  "name": "value",
13948                  "content": {
13949                    "type": "SYMBOL",
13950                    "name": "expression"
13951                  }
13952                }
13953              ]
13954            },
13955            {
13956              "type": "FIELD",
13957              "name": "value",
13958              "content": {
13959                "type": "SYMBOL",
13960                "name": "initializer_list"
13961              }
13962            }
13963          ]
13964        }
13965      ]
13966    },
13967    "co_return_statement": {
13968      "type": "SEQ",
13969      "members": [
13970        {
13971          "type": "STRING",
13972          "value": "co_return"
13973        },
13974        {
13975          "type": "CHOICE",
13976          "members": [
13977            {
13978              "type": "SYMBOL",
13979              "name": "expression"
13980            },
13981            {
13982              "type": "BLANK"
13983            }
13984          ]
13985        },
13986        {
13987          "type": "STRING",
13988          "value": ";"
13989        }
13990      ]
13991    },
13992    "co_yield_statement": {
13993      "type": "SEQ",
13994      "members": [
13995        {
13996          "type": "STRING",
13997          "value": "co_yield"
13998        },
13999        {
14000          "type": "SYMBOL",
14001          "name": "expression"
14002        },
14003        {
14004          "type": "STRING",
14005          "value": ";"
14006        }
14007      ]
14008    },
14009    "throw_statement": {
14010      "type": "SEQ",
14011      "members": [
14012        {
14013          "type": "STRING",
14014          "value": "throw"
14015        },
14016        {
14017          "type": "CHOICE",
14018          "members": [
14019            {
14020              "type": "SYMBOL",
14021              "name": "expression"
14022            },
14023            {
14024              "type": "BLANK"
14025            }
14026          ]
14027        },
14028        {
14029          "type": "STRING",
14030          "value": ";"
14031        }
14032      ]
14033    },
14034    "try_statement": {
14035      "type": "SEQ",
14036      "members": [
14037        {
14038          "type": "STRING",
14039          "value": "try"
14040        },
14041        {
14042          "type": "FIELD",
14043          "name": "body",
14044          "content": {
14045            "type": "SYMBOL",
14046            "name": "compound_statement"
14047          }
14048        },
14049        {
14050          "type": "REPEAT1",
14051          "content": {
14052            "type": "SYMBOL",
14053            "name": "catch_clause"
14054          }
14055        }
14056      ]
14057    },
14058    "catch_clause": {
14059      "type": "SEQ",
14060      "members": [
14061        {
14062          "type": "STRING",
14063          "value": "catch"
14064        },
14065        {
14066          "type": "FIELD",
14067          "name": "parameters",
14068          "content": {
14069            "type": "SYMBOL",
14070            "name": "parameter_list"
14071          }
14072        },
14073        {
14074          "type": "FIELD",
14075          "name": "body",
14076          "content": {
14077            "type": "SYMBOL",
14078            "name": "compound_statement"
14079          }
14080        }
14081      ]
14082    },
14083    "raw_string_literal": {
14084      "type": "SEQ",
14085      "members": [
14086        {
14087          "type": "CHOICE",
14088          "members": [
14089            {
14090              "type": "STRING",
14091              "value": "R\""
14092            },
14093            {
14094              "type": "STRING",
14095              "value": "LR\""
14096            },
14097            {
14098              "type": "STRING",
14099              "value": "uR\""
14100            },
14101            {
14102              "type": "STRING",
14103              "value": "UR\""
14104            },
14105            {
14106              "type": "STRING",
14107              "value": "u8R\""
14108            }
14109          ]
14110        },
14111        {
14112          "type": "CHOICE",
14113          "members": [
14114            {
14115              "type": "SEQ",
14116              "members": [
14117                {
14118                  "type": "FIELD",
14119                  "name": "delimiter",
14120                  "content": {
14121                    "type": "SYMBOL",
14122                    "name": "raw_string_delimiter"
14123                  }
14124                },
14125                {
14126                  "type": "STRING",
14127                  "value": "("
14128                },
14129                {
14130                  "type": "SYMBOL",
14131                  "name": "raw_string_content"
14132                },
14133                {
14134                  "type": "STRING",
14135                  "value": ")"
14136                },
14137                {
14138                  "type": "SYMBOL",
14139                  "name": "raw_string_delimiter"
14140                }
14141              ]
14142            },
14143            {
14144              "type": "SEQ",
14145              "members": [
14146                {
14147                  "type": "STRING",
14148                  "value": "("
14149                },
14150                {
14151                  "type": "SYMBOL",
14152                  "name": "raw_string_content"
14153                },
14154                {
14155                  "type": "STRING",
14156                  "value": ")"
14157                }
14158              ]
14159            }
14160          ]
14161        },
14162        {
14163          "type": "STRING",
14164          "value": "\""
14165        }
14166      ]
14167    },
14168    "subscript_argument_list": {
14169      "type": "SEQ",
14170      "members": [
14171        {
14172          "type": "STRING",
14173          "value": "["
14174        },
14175        {
14176          "type": "CHOICE",
14177          "members": [
14178            {
14179              "type": "SEQ",
14180              "members": [
14181                {
14182                  "type": "CHOICE",
14183                  "members": [
14184                    {
14185                      "type": "SYMBOL",
14186                      "name": "expression"
14187                    },
14188                    {
14189                      "type": "SYMBOL",
14190                      "name": "initializer_list"
14191                    }
14192                  ]
14193                },
14194                {
14195                  "type": "REPEAT",
14196                  "content": {
14197                    "type": "SEQ",
14198                    "members": [
14199                      {
14200                        "type": "STRING",
14201                        "value": ","
14202                      },
14203                      {
14204                        "type": "CHOICE",
14205                        "members": [
14206                          {
14207                            "type": "SYMBOL",
14208                            "name": "expression"
14209                          },
14210                          {
14211                            "type": "SYMBOL",
14212                            "name": "initializer_list"
14213                          }
14214                        ]
14215                      }
14216                    ]
14217                  }
14218                }
14219              ]
14220            },
14221            {
14222              "type": "BLANK"
14223            }
14224          ]
14225        },
14226        {
14227          "type": "STRING",
14228          "value": "]"
14229        }
14230      ]
14231    },
14232    "co_await_expression": {
14233      "type": "PREC_LEFT",
14234      "value": 14,
14235      "content": {
14236        "type": "SEQ",
14237        "members": [
14238          {
14239            "type": "FIELD",
14240            "name": "operator",
14241            "content": {
14242              "type": "STRING",
14243              "value": "co_await"
14244            }
14245          },
14246          {
14247            "type": "FIELD",
14248            "name": "argument",
14249            "content": {
14250              "type": "SYMBOL",
14251              "name": "expression"
14252            }
14253          }
14254        ]
14255      }
14256    },
14257    "new_expression": {
14258      "type": "PREC_RIGHT",
14259      "value": 16,
14260      "content": {
14261        "type": "SEQ",
14262        "members": [
14263          {
14264            "type": "CHOICE",
14265            "members": [
14266              {
14267                "type": "STRING",
14268                "value": "::"
14269              },
14270              {
14271                "type": "BLANK"
14272              }
14273            ]
14274          },
14275          {
14276            "type": "STRING",
14277            "value": "new"
14278          },
14279          {
14280            "type": "FIELD",
14281            "name": "placement",
14282            "content": {
14283              "type": "CHOICE",
14284              "members": [
14285                {
14286                  "type": "SYMBOL",
14287                  "name": "argument_list"
14288                },
14289                {
14290                  "type": "BLANK"
14291                }
14292              ]
14293            }
14294          },
14295          {
14296            "type": "FIELD",
14297            "name": "type",
14298            "content": {
14299              "type": "SYMBOL",
14300              "name": "type_specifier"
14301            }
14302          },
14303          {
14304            "type": "FIELD",
14305            "name": "declarator",
14306            "content": {
14307              "type": "CHOICE",
14308              "members": [
14309                {
14310                  "type": "SYMBOL",
14311                  "name": "new_declarator"
14312                },
14313                {
14314                  "type": "BLANK"
14315                }
14316              ]
14317            }
14318          },
14319          {
14320            "type": "FIELD",
14321            "name": "arguments",
14322            "content": {
14323              "type": "CHOICE",
14324              "members": [
14325                {
14326                  "type": "CHOICE",
14327                  "members": [
14328                    {
14329                      "type": "SYMBOL",
14330                      "name": "argument_list"
14331                    },
14332                    {
14333                      "type": "SYMBOL",
14334                      "name": "initializer_list"
14335                    }
14336                  ]
14337                },
14338                {
14339                  "type": "BLANK"
14340                }
14341              ]
14342            }
14343          }
14344        ]
14345      }
14346    },
14347    "new_declarator": {
14348      "type": "PREC_RIGHT",
14349      "value": 0,
14350      "content": {
14351        "type": "SEQ",
14352        "members": [
14353          {
14354            "type": "STRING",
14355            "value": "["
14356          },
14357          {
14358            "type": "FIELD",
14359            "name": "length",
14360            "content": {
14361              "type": "SYMBOL",
14362              "name": "expression"
14363            }
14364          },
14365          {
14366            "type": "STRING",
14367            "value": "]"
14368          },
14369          {
14370            "type": "CHOICE",
14371            "members": [
14372              {
14373                "type": "SYMBOL",
14374                "name": "new_declarator"
14375              },
14376              {
14377                "type": "BLANK"
14378              }
14379            ]
14380          }
14381        ]
14382      }
14383    },
14384    "delete_expression": {
14385      "type": "PREC_LEFT",
14386      "value": 0,
14387      "content": {
14388        "type": "SEQ",
14389        "members": [
14390          {
14391            "type": "CHOICE",
14392            "members": [
14393              {
14394                "type": "STRING",
14395                "value": "::"
14396              },
14397              {
14398                "type": "BLANK"
14399              }
14400            ]
14401          },
14402          {
14403            "type": "STRING",
14404            "value": "delete"
14405          },
14406          {
14407            "type": "CHOICE",
14408            "members": [
14409              {
14410                "type": "SEQ",
14411                "members": [
14412                  {
14413                    "type": "STRING",
14414                    "value": "["
14415                  },
14416                  {
14417                    "type": "STRING",
14418                    "value": "]"
14419                  }
14420                ]
14421              },
14422              {
14423                "type": "BLANK"
14424              }
14425            ]
14426          },
14427          {
14428            "type": "SYMBOL",
14429            "name": "expression"
14430          }
14431        ]
14432      }
14433    },
14434    "type_requirement": {
14435      "type": "SEQ",
14436      "members": [
14437        {
14438          "type": "STRING",
14439          "value": "typename"
14440        },
14441        {
14442          "type": "SYMBOL",
14443          "name": "_class_name"
14444        }
14445      ]
14446    },
14447    "compound_requirement": {
14448      "type": "SEQ",
14449      "members": [
14450        {
14451          "type": "STRING",
14452          "value": "{"
14453        },
14454        {
14455          "type": "SYMBOL",
14456          "name": "expression"
14457        },
14458        {
14459          "type": "STRING",
14460          "value": "}"
14461        },
14462        {
14463          "type": "CHOICE",
14464          "members": [
14465            {
14466              "type": "STRING",
14467              "value": "noexcept"
14468            },
14469            {
14470              "type": "BLANK"
14471            }
14472          ]
14473        },
14474        {
14475          "type": "CHOICE",
14476          "members": [
14477            {
14478              "type": "SYMBOL",
14479              "name": "trailing_return_type"
14480            },
14481            {
14482              "type": "BLANK"
14483            }
14484          ]
14485        },
14486        {
14487          "type": "STRING",
14488          "value": ";"
14489        }
14490      ]
14491    },
14492    "_requirement": {
14493      "type": "CHOICE",
14494      "members": [
14495        {
14496          "type": "ALIAS",
14497          "content": {
14498            "type": "SYMBOL",
14499            "name": "expression_statement"
14500          },
14501          "named": true,
14502          "value": "simple_requirement"
14503        },
14504        {
14505          "type": "SYMBOL",
14506          "name": "type_requirement"
14507        },
14508        {
14509          "type": "SYMBOL",
14510          "name": "compound_requirement"
14511        }
14512      ]
14513    },
14514    "requirement_seq": {
14515      "type": "SEQ",
14516      "members": [
14517        {
14518          "type": "STRING",
14519          "value": "{"
14520        },
14521        {
14522          "type": "REPEAT",
14523          "content": {
14524            "type": "SYMBOL",
14525            "name": "_requirement"
14526          }
14527        },
14528        {
14529          "type": "STRING",
14530          "value": "}"
14531        }
14532      ]
14533    },
14534    "constraint_conjunction": {
14535      "type": "PREC_LEFT",
14536      "value": 2,
14537      "content": {
14538        "type": "SEQ",
14539        "members": [
14540          {
14541            "type": "FIELD",
14542            "name": "left",
14543            "content": {
14544              "type": "SYMBOL",
14545              "name": "_requirement_clause_constraint"
14546            }
14547          },
14548          {
14549            "type": "FIELD",
14550            "name": "operator",
14551            "content": {
14552              "type": "CHOICE",
14553              "members": [
14554                {
14555                  "type": "STRING",
14556                  "value": "&&"
14557                },
14558                {
14559                  "type": "STRING",
14560                  "value": "and"
14561                }
14562              ]
14563            }
14564          },
14565          {
14566            "type": "FIELD",
14567            "name": "right",
14568            "content": {
14569              "type": "SYMBOL",
14570              "name": "_requirement_clause_constraint"
14571            }
14572          }
14573        ]
14574      }
14575    },
14576    "constraint_disjunction": {
14577      "type": "PREC_LEFT",
14578      "value": 1,
14579      "content": {
14580        "type": "SEQ",
14581        "members": [
14582          {
14583            "type": "FIELD",
14584            "name": "left",
14585            "content": {
14586              "type": "SYMBOL",
14587              "name": "_requirement_clause_constraint"
14588            }
14589          },
14590          {
14591            "type": "FIELD",
14592            "name": "operator",
14593            "content": {
14594              "type": "CHOICE",
14595              "members": [
14596                {
14597                  "type": "STRING",
14598                  "value": "||"
14599                },
14600                {
14601                  "type": "STRING",
14602                  "value": "or"
14603                }
14604              ]
14605            }
14606          },
14607          {
14608            "type": "FIELD",
14609            "name": "right",
14610            "content": {
14611              "type": "SYMBOL",
14612              "name": "_requirement_clause_constraint"
14613            }
14614          }
14615        ]
14616      }
14617    },
14618    "_requirement_clause_constraint": {
14619      "type": "CHOICE",
14620      "members": [
14621        {
14622          "type": "SYMBOL",
14623          "name": "true"
14624        },
14625        {
14626          "type": "SYMBOL",
14627          "name": "false"
14628        },
14629        {
14630          "type": "SYMBOL",
14631          "name": "_class_name"
14632        },
14633        {
14634          "type": "SYMBOL",
14635          "name": "fold_expression"
14636        },
14637        {
14638          "type": "SYMBOL",
14639          "name": "lambda_expression"
14640        },
14641        {
14642          "type": "SYMBOL",
14643          "name": "requires_expression"
14644        },
14645        {
14646          "type": "SEQ",
14647          "members": [
14648            {
14649              "type": "STRING",
14650              "value": "("
14651            },
14652            {
14653              "type": "SYMBOL",
14654              "name": "expression"
14655            },
14656            {
14657              "type": "STRING",
14658              "value": ")"
14659            }
14660          ]
14661        },
14662        {
14663          "type": "SYMBOL",
14664          "name": "constraint_conjunction"
14665        },
14666        {
14667          "type": "SYMBOL",
14668          "name": "constraint_disjunction"
14669        }
14670      ]
14671    },
14672    "requires_clause": {
14673      "type": "SEQ",
14674      "members": [
14675        {
14676          "type": "STRING",
14677          "value": "requires"
14678        },
14679        {
14680          "type": "FIELD",
14681          "name": "constraint",
14682          "content": {
14683            "type": "SYMBOL",
14684            "name": "_requirement_clause_constraint"
14685          }
14686        }
14687      ]
14688    },
14689    "requires_parameter_list": {
14690      "type": "SEQ",
14691      "members": [
14692        {
14693          "type": "STRING",
14694          "value": "("
14695        },
14696        {
14697          "type": "CHOICE",
14698          "members": [
14699            {
14700              "type": "SEQ",
14701              "members": [
14702                {
14703                  "type": "CHOICE",
14704                  "members": [
14705                    {
14706                      "type": "SYMBOL",
14707                      "name": "parameter_declaration"
14708                    },
14709                    {
14710                      "type": "SYMBOL",
14711                      "name": "optional_parameter_declaration"
14712                    },
14713                    {
14714                      "type": "SYMBOL",
14715                      "name": "variadic_parameter_declaration"
14716                    }
14717                  ]
14718                },
14719                {
14720                  "type": "REPEAT",
14721                  "content": {
14722                    "type": "SEQ",
14723                    "members": [
14724                      {
14725                        "type": "STRING",
14726                        "value": ","
14727                      },
14728                      {
14729                        "type": "CHOICE",
14730                        "members": [
14731                          {
14732                            "type": "SYMBOL",
14733                            "name": "parameter_declaration"
14734                          },
14735                          {
14736                            "type": "SYMBOL",
14737                            "name": "optional_parameter_declaration"
14738                          },
14739                          {
14740                            "type": "SYMBOL",
14741                            "name": "variadic_parameter_declaration"
14742                          }
14743                        ]
14744                      }
14745                    ]
14746                  }
14747                }
14748              ]
14749            },
14750            {
14751              "type": "BLANK"
14752            }
14753          ]
14754        },
14755        {
14756          "type": "STRING",
14757          "value": ")"
14758        }
14759      ]
14760    },
14761    "requires_expression": {
14762      "type": "SEQ",
14763      "members": [
14764        {
14765          "type": "STRING",
14766          "value": "requires"
14767        },
14768        {
14769          "type": "FIELD",
14770          "name": "parameters",
14771          "content": {
14772            "type": "CHOICE",
14773            "members": [
14774              {
14775                "type": "ALIAS",
14776                "content": {
14777                  "type": "SYMBOL",
14778                  "name": "requires_parameter_list"
14779                },
14780                "named": true,
14781                "value": "parameter_list"
14782              },
14783              {
14784                "type": "BLANK"
14785              }
14786            ]
14787          }
14788        },
14789        {
14790          "type": "FIELD",
14791          "name": "requirements",
14792          "content": {
14793            "type": "SYMBOL",
14794            "name": "requirement_seq"
14795          }
14796        }
14797      ]
14798    },
14799    "lambda_expression": {
14800      "type": "SEQ",
14801      "members": [
14802        {
14803          "type": "FIELD",
14804          "name": "captures",
14805          "content": {
14806            "type": "SYMBOL",
14807            "name": "lambda_capture_specifier"
14808          }
14809        },
14810        {
14811          "type": "CHOICE",
14812          "members": [
14813            {
14814              "type": "SEQ",
14815              "members": [
14816                {
14817                  "type": "FIELD",
14818                  "name": "template_parameters",
14819                  "content": {
14820                    "type": "SYMBOL",
14821                    "name": "template_parameter_list"
14822                  }
14823                },
14824                {
14825                  "type": "CHOICE",
14826                  "members": [
14827                    {
14828                      "type": "FIELD",
14829                      "name": "constraint",
14830                      "content": {
14831                        "type": "SYMBOL",
14832                        "name": "requires_clause"
14833                      }
14834                    },
14835                    {
14836                      "type": "BLANK"
14837                    }
14838                  ]
14839                }
14840              ]
14841            },
14842            {
14843              "type": "BLANK"
14844            }
14845          ]
14846        },
14847        {
14848          "type": "CHOICE",
14849          "members": [
14850            {
14851              "type": "FIELD",
14852              "name": "declarator",
14853              "content": {
14854                "type": "SYMBOL",
14855                "name": "abstract_function_declarator"
14856              }
14857            },
14858            {
14859              "type": "BLANK"
14860            }
14861          ]
14862        },
14863        {
14864          "type": "FIELD",
14865          "name": "body",
14866          "content": {
14867            "type": "SYMBOL",
14868            "name": "compound_statement"
14869          }
14870        }
14871      ]
14872    },
14873    "lambda_capture_specifier": {
14874      "type": "PREC",
14875      "value": 18,
14876      "content": {
14877        "type": "SEQ",
14878        "members": [
14879          {
14880            "type": "STRING",
14881            "value": "["
14882          },
14883          {
14884            "type": "CHOICE",
14885            "members": [
14886              {
14887                "type": "SYMBOL",
14888                "name": "lambda_default_capture"
14889              },
14890              {
14891                "type": "CHOICE",
14892                "members": [
14893                  {
14894                    "type": "SEQ",
14895                    "members": [
14896                      {
14897                        "type": "SYMBOL",
14898                        "name": "expression"
14899                      },
14900                      {
14901                        "type": "REPEAT",
14902                        "content": {
14903                          "type": "SEQ",
14904                          "members": [
14905                            {
14906                              "type": "STRING",
14907                              "value": ","
14908                            },
14909                            {
14910                              "type": "SYMBOL",
14911                              "name": "expression"
14912                            }
14913                          ]
14914                        }
14915                      }
14916                    ]
14917                  },
14918                  {
14919                    "type": "BLANK"
14920                  }
14921                ]
14922              },
14923              {
14924                "type": "SEQ",
14925                "members": [
14926                  {
14927                    "type": "SYMBOL",
14928                    "name": "lambda_default_capture"
14929                  },
14930                  {
14931                    "type": "STRING",
14932                    "value": ","
14933                  },
14934                  {
14935                    "type": "SEQ",
14936                    "members": [
14937                      {
14938                        "type": "SYMBOL",
14939                        "name": "expression"
14940                      },
14941                      {
14942                        "type": "REPEAT",
14943                        "content": {
14944                          "type": "SEQ",
14945                          "members": [
14946                            {
14947                              "type": "STRING",
14948                              "value": ","
14949                            },
14950                            {
14951                              "type": "SYMBOL",
14952                              "name": "expression"
14953                            }
14954                          ]
14955                        }
14956                      }
14957                    ]
14958                  }
14959                ]
14960              }
14961            ]
14962          },
14963          {
14964            "type": "STRING",
14965            "value": "]"
14966          }
14967        ]
14968      }
14969    },
14970    "lambda_default_capture": {
14971      "type": "CHOICE",
14972      "members": [
14973        {
14974          "type": "STRING",
14975          "value": "="
14976        },
14977        {
14978          "type": "STRING",
14979          "value": "&"
14980        }
14981      ]
14982    },
14983    "_fold_operator": {
14984      "type": "CHOICE",
14985      "members": [
14986        {
14987          "type": "STRING",
14988          "value": "+"
14989        },
14990        {
14991          "type": "STRING",
14992          "value": "-"
14993        },
14994        {
14995          "type": "STRING",
14996          "value": "*"
14997        },
14998        {
14999          "type": "STRING",
15000          "value": "/"
15001        },
15002        {
15003          "type": "STRING",
15004          "value": "%"
15005        },
15006        {
15007          "type": "STRING",
15008          "value": "^"
15009        },
15010        {
15011          "type": "STRING",
15012          "value": "&"
15013        },
15014        {
15015          "type": "STRING",
15016          "value": "|"
15017        },
15018        {
15019          "type": "STRING",
15020          "value": "="
15021        },
15022        {
15023          "type": "STRING",
15024          "value": "<"
15025        },
15026        {
15027          "type": "STRING",
15028          "value": ">"
15029        },
15030        {
15031          "type": "STRING",
15032          "value": "<<"
15033        },
15034        {
15035          "type": "STRING",
15036          "value": ">>"
15037        },
15038        {
15039          "type": "STRING",
15040          "value": "+="
15041        },
15042        {
15043          "type": "STRING",
15044          "value": "-="
15045        },
15046        {
15047          "type": "STRING",
15048          "value": "*="
15049        },
15050        {
15051          "type": "STRING",
15052          "value": "/="
15053        },
15054        {
15055          "type": "STRING",
15056          "value": "%="
15057        },
15058        {
15059          "type": "STRING",
15060          "value": "^="
15061        },
15062        {
15063          "type": "STRING",
15064          "value": "&="
15065        },
15066        {
15067          "type": "STRING",
15068          "value": "|="
15069        },
15070        {
15071          "type": "STRING",
15072          "value": ">>="
15073        },
15074        {
15075          "type": "STRING",
15076          "value": "<<="
15077        },
15078        {
15079          "type": "STRING",
15080          "value": "=="
15081        },
15082        {
15083          "type": "STRING",
15084          "value": "!="
15085        },
15086        {
15087          "type": "STRING",
15088          "value": "<="
15089        },
15090        {
15091          "type": "STRING",
15092          "value": ">="
15093        },
15094        {
15095          "type": "STRING",
15096          "value": "&&"
15097        },
15098        {
15099          "type": "STRING",
15100          "value": "||"
15101        },
15102        {
15103          "type": "STRING",
15104          "value": ","
15105        },
15106        {
15107          "type": "STRING",
15108          "value": ".*"
15109        },
15110        {
15111          "type": "STRING",
15112          "value": "->*"
15113        },
15114        {
15115          "type": "STRING",
15116          "value": "or"
15117        },
15118        {
15119          "type": "STRING",
15120          "value": "and"
15121        },
15122        {
15123          "type": "STRING",
15124          "value": "bitor"
15125        },
15126        {
15127          "type": "STRING",
15128          "value": "xor"
15129        },
15130        {
15131          "type": "STRING",
15132          "value": "bitand"
15133        },
15134        {
15135          "type": "STRING",
15136          "value": "not_eq"
15137        }
15138      ]
15139    },
15140    "_binary_fold_operator": {
15141      "type": "CHOICE",
15142      "members": [
15143        {
15144          "type": "SEQ",
15145          "members": [
15146            {
15147              "type": "FIELD",
15148              "name": "operator",
15149              "content": {
15150                "type": "STRING",
15151                "value": "+"
15152              }
15153            },
15154            {
15155              "type": "STRING",
15156              "value": "..."
15157            },
15158            {
15159              "type": "STRING",
15160              "value": "+"
15161            }
15162          ]
15163        },
15164        {
15165          "type": "SEQ",
15166          "members": [
15167            {
15168              "type": "FIELD",
15169              "name": "operator",
15170              "content": {
15171                "type": "STRING",
15172                "value": "-"
15173              }
15174            },
15175            {
15176              "type": "STRING",
15177              "value": "..."
15178            },
15179            {
15180              "type": "STRING",
15181              "value": "-"
15182            }
15183          ]
15184        },
15185        {
15186          "type": "SEQ",
15187          "members": [
15188            {
15189              "type": "FIELD",
15190              "name": "operator",
15191              "content": {
15192                "type": "STRING",
15193                "value": "*"
15194              }
15195            },
15196            {
15197              "type": "STRING",
15198              "value": "..."
15199            },
15200            {
15201              "type": "STRING",
15202              "value": "*"
15203            }
15204          ]
15205        },
15206        {
15207          "type": "SEQ",
15208          "members": [
15209            {
15210              "type": "FIELD",
15211              "name": "operator",
15212              "content": {
15213                "type": "STRING",
15214                "value": "/"
15215              }
15216            },
15217            {
15218              "type": "STRING",
15219              "value": "..."
15220            },
15221            {
15222              "type": "STRING",
15223              "value": "/"
15224            }
15225          ]
15226        },
15227        {
15228          "type": "SEQ",
15229          "members": [
15230            {
15231              "type": "FIELD",
15232              "name": "operator",
15233              "content": {
15234                "type": "STRING",
15235                "value": "%"
15236              }
15237            },
15238            {
15239              "type": "STRING",
15240              "value": "..."
15241            },
15242            {
15243              "type": "STRING",
15244              "value": "%"
15245            }
15246          ]
15247        },
15248        {
15249          "type": "SEQ",
15250          "members": [
15251            {
15252              "type": "FIELD",
15253              "name": "operator",
15254              "content": {
15255                "type": "STRING",
15256                "value": "^"
15257              }
15258            },
15259            {
15260              "type": "STRING",
15261              "value": "..."
15262            },
15263            {
15264              "type": "STRING",
15265              "value": "^"
15266            }
15267          ]
15268        },
15269        {
15270          "type": "SEQ",
15271          "members": [
15272            {
15273              "type": "FIELD",
15274              "name": "operator",
15275              "content": {
15276                "type": "STRING",
15277                "value": "&"
15278              }
15279            },
15280            {
15281              "type": "STRING",
15282              "value": "..."
15283            },
15284            {
15285              "type": "STRING",
15286              "value": "&"
15287            }
15288          ]
15289        },
15290        {
15291          "type": "SEQ",
15292          "members": [
15293            {
15294              "type": "FIELD",
15295              "name": "operator",
15296              "content": {
15297                "type": "STRING",
15298                "value": "|"
15299              }
15300            },
15301            {
15302              "type": "STRING",
15303              "value": "..."
15304            },
15305            {
15306              "type": "STRING",
15307              "value": "|"
15308            }
15309          ]
15310        },
15311        {
15312          "type": "SEQ",
15313          "members": [
15314            {
15315              "type": "FIELD",
15316              "name": "operator",
15317              "content": {
15318                "type": "STRING",
15319                "value": "="
15320              }
15321            },
15322            {
15323              "type": "STRING",
15324              "value": "..."
15325            },
15326            {
15327              "type": "STRING",
15328              "value": "="
15329            }
15330          ]
15331        },
15332        {
15333          "type": "SEQ",
15334          "members": [
15335            {
15336              "type": "FIELD",
15337              "name": "operator",
15338              "content": {
15339                "type": "STRING",
15340                "value": "<"
15341              }
15342            },
15343            {
15344              "type": "STRING",
15345              "value": "..."
15346            },
15347            {
15348              "type": "STRING",
15349              "value": "<"
15350            }
15351          ]
15352        },
15353        {
15354          "type": "SEQ",
15355          "members": [
15356            {
15357              "type": "FIELD",
15358              "name": "operator",
15359              "content": {
15360                "type": "STRING",
15361                "value": ">"
15362              }
15363            },
15364            {
15365              "type": "STRING",
15366              "value": "..."
15367            },
15368            {
15369              "type": "STRING",
15370              "value": ">"
15371            }
15372          ]
15373        },
15374        {
15375          "type": "SEQ",
15376          "members": [
15377            {
15378              "type": "FIELD",
15379              "name": "operator",
15380              "content": {
15381                "type": "STRING",
15382                "value": "<<"
15383              }
15384            },
15385            {
15386              "type": "STRING",
15387              "value": "..."
15388            },
15389            {
15390              "type": "STRING",
15391              "value": "<<"
15392            }
15393          ]
15394        },
15395        {
15396          "type": "SEQ",
15397          "members": [
15398            {
15399              "type": "FIELD",
15400              "name": "operator",
15401              "content": {
15402                "type": "STRING",
15403                "value": ">>"
15404              }
15405            },
15406            {
15407              "type": "STRING",
15408              "value": "..."
15409            },
15410            {
15411              "type": "STRING",
15412              "value": ">>"
15413            }
15414          ]
15415        },
15416        {
15417          "type": "SEQ",
15418          "members": [
15419            {
15420              "type": "FIELD",
15421              "name": "operator",
15422              "content": {
15423                "type": "STRING",
15424                "value": "+="
15425              }
15426            },
15427            {
15428              "type": "STRING",
15429              "value": "..."
15430            },
15431            {
15432              "type": "STRING",
15433              "value": "+="
15434            }
15435          ]
15436        },
15437        {
15438          "type": "SEQ",
15439          "members": [
15440            {
15441              "type": "FIELD",
15442              "name": "operator",
15443              "content": {
15444                "type": "STRING",
15445                "value": "-="
15446              }
15447            },
15448            {
15449              "type": "STRING",
15450              "value": "..."
15451            },
15452            {
15453              "type": "STRING",
15454              "value": "-="
15455            }
15456          ]
15457        },
15458        {
15459          "type": "SEQ",
15460          "members": [
15461            {
15462              "type": "FIELD",
15463              "name": "operator",
15464              "content": {
15465                "type": "STRING",
15466                "value": "*="
15467              }
15468            },
15469            {
15470              "type": "STRING",
15471              "value": "..."
15472            },
15473            {
15474              "type": "STRING",
15475              "value": "*="
15476            }
15477          ]
15478        },
15479        {
15480          "type": "SEQ",
15481          "members": [
15482            {
15483              "type": "FIELD",
15484              "name": "operator",
15485              "content": {
15486                "type": "STRING",
15487                "value": "/="
15488              }
15489            },
15490            {
15491              "type": "STRING",
15492              "value": "..."
15493            },
15494            {
15495              "type": "STRING",
15496              "value": "/="
15497            }
15498          ]
15499        },
15500        {
15501          "type": "SEQ",
15502          "members": [
15503            {
15504              "type": "FIELD",
15505              "name": "operator",
15506              "content": {
15507                "type": "STRING",
15508                "value": "%="
15509              }
15510            },
15511            {
15512              "type": "STRING",
15513              "value": "..."
15514            },
15515            {
15516              "type": "STRING",
15517              "value": "%="
15518            }
15519          ]
15520        },
15521        {
15522          "type": "SEQ",
15523          "members": [
15524            {
15525              "type": "FIELD",
15526              "name": "operator",
15527              "content": {
15528                "type": "STRING",
15529                "value": "^="
15530              }
15531            },
15532            {
15533              "type": "STRING",
15534              "value": "..."
15535            },
15536            {
15537              "type": "STRING",
15538              "value": "^="
15539            }
15540          ]
15541        },
15542        {
15543          "type": "SEQ",
15544          "members": [
15545            {
15546              "type": "FIELD",
15547              "name": "operator",
15548              "content": {
15549                "type": "STRING",
15550                "value": "&="
15551              }
15552            },
15553            {
15554              "type": "STRING",
15555              "value": "..."
15556            },
15557            {
15558              "type": "STRING",
15559              "value": "&="
15560            }
15561          ]
15562        },
15563        {
15564          "type": "SEQ",
15565          "members": [
15566            {
15567              "type": "FIELD",
15568              "name": "operator",
15569              "content": {
15570                "type": "STRING",
15571                "value": "|="
15572              }
15573            },
15574            {
15575              "type": "STRING",
15576              "value": "..."
15577            },
15578            {
15579              "type": "STRING",
15580              "value": "|="
15581            }
15582          ]
15583        },
15584        {
15585          "type": "SEQ",
15586          "members": [
15587            {
15588              "type": "FIELD",
15589              "name": "operator",
15590              "content": {
15591                "type": "STRING",
15592                "value": ">>="
15593              }
15594            },
15595            {
15596              "type": "STRING",
15597              "value": "..."
15598            },
15599            {
15600              "type": "STRING",
15601              "value": ">>="
15602            }
15603          ]
15604        },
15605        {
15606          "type": "SEQ",
15607          "members": [
15608            {
15609              "type": "FIELD",
15610              "name": "operator",
15611              "content": {
15612                "type": "STRING",
15613                "value": "<<="
15614              }
15615            },
15616            {
15617              "type": "STRING",
15618              "value": "..."
15619            },
15620            {
15621              "type": "STRING",
15622              "value": "<<="
15623            }
15624          ]
15625        },
15626        {
15627          "type": "SEQ",
15628          "members": [
15629            {
15630              "type": "FIELD",
15631              "name": "operator",
15632              "content": {
15633                "type": "STRING",
15634                "value": "=="
15635              }
15636            },
15637            {
15638              "type": "STRING",
15639              "value": "..."
15640            },
15641            {
15642              "type": "STRING",
15643              "value": "=="
15644            }
15645          ]
15646        },
15647        {
15648          "type": "SEQ",
15649          "members": [
15650            {
15651              "type": "FIELD",
15652              "name": "operator",
15653              "content": {
15654                "type": "STRING",
15655                "value": "!="
15656              }
15657            },
15658            {
15659              "type": "STRING",
15660              "value": "..."
15661            },
15662            {
15663              "type": "STRING",
15664              "value": "!="
15665            }
15666          ]
15667        },
15668        {
15669          "type": "SEQ",
15670          "members": [
15671            {
15672              "type": "FIELD",
15673              "name": "operator",
15674              "content": {
15675                "type": "STRING",
15676                "value": "<="
15677              }
15678            },
15679            {
15680              "type": "STRING",
15681              "value": "..."
15682            },
15683            {
15684              "type": "STRING",
15685              "value": "<="
15686            }
15687          ]
15688        },
15689        {
15690          "type": "SEQ",
15691          "members": [
15692            {
15693              "type": "FIELD",
15694              "name": "operator",
15695              "content": {
15696                "type": "STRING",
15697                "value": ">="
15698              }
15699            },
15700            {
15701              "type": "STRING",
15702              "value": "..."
15703            },
15704            {
15705              "type": "STRING",
15706              "value": ">="
15707            }
15708          ]
15709        },
15710        {
15711          "type": "SEQ",
15712          "members": [
15713            {
15714              "type": "FIELD",
15715              "name": "operator",
15716              "content": {
15717                "type": "STRING",
15718                "value": "&&"
15719              }
15720            },
15721            {
15722              "type": "STRING",
15723              "value": "..."
15724            },
15725            {
15726              "type": "STRING",
15727              "value": "&&"
15728            }
15729          ]
15730        },
15731        {
15732          "type": "SEQ",
15733          "members": [
15734            {
15735              "type": "FIELD",
15736              "name": "operator",
15737              "content": {
15738                "type": "STRING",
15739                "value": "||"
15740              }
15741            },
15742            {
15743              "type": "STRING",
15744              "value": "..."
15745            },
15746            {
15747              "type": "STRING",
15748              "value": "||"
15749            }
15750          ]
15751        },
15752        {
15753          "type": "SEQ",
15754          "members": [
15755            {
15756              "type": "FIELD",
15757              "name": "operator",
15758              "content": {
15759                "type": "STRING",
15760                "value": ","
15761              }
15762            },
15763            {
15764              "type": "STRING",
15765              "value": "..."
15766            },
15767            {
15768              "type": "STRING",
15769              "value": ","
15770            }
15771          ]
15772        },
15773        {
15774          "type": "SEQ",
15775          "members": [
15776            {
15777              "type": "FIELD",
15778              "name": "operator",
15779              "content": {
15780                "type": "STRING",
15781                "value": ".*"
15782              }
15783            },
15784            {
15785              "type": "STRING",
15786              "value": "..."
15787            },
15788            {
15789              "type": "STRING",
15790              "value": ".*"
15791            }
15792          ]
15793        },
15794        {
15795          "type": "SEQ",
15796          "members": [
15797            {
15798              "type": "FIELD",
15799              "name": "operator",
15800              "content": {
15801                "type": "STRING",
15802                "value": "->*"
15803              }
15804            },
15805            {
15806              "type": "STRING",
15807              "value": "..."
15808            },
15809            {
15810              "type": "STRING",
15811              "value": "->*"
15812            }
15813          ]
15814        },
15815        {
15816          "type": "SEQ",
15817          "members": [
15818            {
15819              "type": "FIELD",
15820              "name": "operator",
15821              "content": {
15822                "type": "STRING",
15823                "value": "or"
15824              }
15825            },
15826            {
15827              "type": "STRING",
15828              "value": "..."
15829            },
15830            {
15831              "type": "STRING",
15832              "value": "or"
15833            }
15834          ]
15835        },
15836        {
15837          "type": "SEQ",
15838          "members": [
15839            {
15840              "type": "FIELD",
15841              "name": "operator",
15842              "content": {
15843                "type": "STRING",
15844                "value": "and"
15845              }
15846            },
15847            {
15848              "type": "STRING",
15849              "value": "..."
15850            },
15851            {
15852              "type": "STRING",
15853              "value": "and"
15854            }
15855          ]
15856        },
15857        {
15858          "type": "SEQ",
15859          "members": [
15860            {
15861              "type": "FIELD",
15862              "name": "operator",
15863              "content": {
15864                "type": "STRING",
15865                "value": "bitor"
15866              }
15867            },
15868            {
15869              "type": "STRING",
15870              "value": "..."
15871            },
15872            {
15873              "type": "STRING",
15874              "value": "bitor"
15875            }
15876          ]
15877        },
15878        {
15879          "type": "SEQ",
15880          "members": [
15881            {
15882              "type": "FIELD",
15883              "name": "operator",
15884              "content": {
15885                "type": "STRING",
15886                "value": "xor"
15887              }
15888            },
15889            {
15890              "type": "STRING",
15891              "value": "..."
15892            },
15893            {
15894              "type": "STRING",
15895              "value": "xor"
15896            }
15897          ]
15898        },
15899        {
15900          "type": "SEQ",
15901          "members": [
15902            {
15903              "type": "FIELD",
15904              "name": "operator",
15905              "content": {
15906                "type": "STRING",
15907                "value": "bitand"
15908              }
15909            },
15910            {
15911              "type": "STRING",
15912              "value": "..."
15913            },
15914            {
15915              "type": "STRING",
15916              "value": "bitand"
15917            }
15918          ]
15919        },
15920        {
15921          "type": "SEQ",
15922          "members": [
15923            {
15924              "type": "FIELD",
15925              "name": "operator",
15926              "content": {
15927                "type": "STRING",
15928                "value": "not_eq"
15929              }
15930            },
15931            {
15932              "type": "STRING",
15933              "value": "..."
15934            },
15935            {
15936              "type": "STRING",
15937              "value": "not_eq"
15938            }
15939          ]
15940        }
15941      ]
15942    },
15943    "_unary_left_fold": {
15944      "type": "SEQ",
15945      "members": [
15946        {
15947          "type": "FIELD",
15948          "name": "left",
15949          "content": {
15950            "type": "STRING",
15951            "value": "..."
15952          }
15953        },
15954        {
15955          "type": "FIELD",
15956          "name": "operator",
15957          "content": {
15958            "type": "SYMBOL",
15959            "name": "_fold_operator"
15960          }
15961        },
15962        {
15963          "type": "FIELD",
15964          "name": "right",
15965          "content": {
15966            "type": "SYMBOL",
15967            "name": "expression"
15968          }
15969        }
15970      ]
15971    },
15972    "_unary_right_fold": {
15973      "type": "SEQ",
15974      "members": [
15975        {
15976          "type": "FIELD",
15977          "name": "left",
15978          "content": {
15979            "type": "SYMBOL",
15980            "name": "expression"
15981          }
15982        },
15983        {
15984          "type": "FIELD",
15985          "name": "operator",
15986          "content": {
15987            "type": "SYMBOL",
15988            "name": "_fold_operator"
15989          }
15990        },
15991        {
15992          "type": "FIELD",
15993          "name": "right",
15994          "content": {
15995            "type": "STRING",
15996            "value": "..."
15997          }
15998        }
15999      ]
16000    },
16001    "_binary_fold": {
16002      "type": "SEQ",
16003      "members": [
16004        {
16005          "type": "FIELD",
16006          "name": "left",
16007          "content": {
16008            "type": "SYMBOL",
16009            "name": "expression"
16010          }
16011        },
16012        {
16013          "type": "SYMBOL",
16014          "name": "_binary_fold_operator"
16015        },
16016        {
16017          "type": "FIELD",
16018          "name": "right",
16019          "content": {
16020            "type": "SYMBOL",
16021            "name": "expression"
16022          }
16023        }
16024      ]
16025    },
16026    "fold_expression": {
16027      "type": "SEQ",
16028      "members": [
16029        {
16030          "type": "STRING",
16031          "value": "("
16032        },
16033        {
16034          "type": "CHOICE",
16035          "members": [
16036            {
16037              "type": "SYMBOL",
16038              "name": "_unary_right_fold"
16039            },
16040            {
16041              "type": "SYMBOL",
16042              "name": "_unary_left_fold"
16043            },
16044            {
16045              "type": "SYMBOL",
16046              "name": "_binary_fold"
16047            }
16048          ]
16049        },
16050        {
16051          "type": "STRING",
16052          "value": ")"
16053        }
16054      ]
16055    },
16056    "parameter_pack_expansion": {
16057      "type": "PREC",
16058      "value": -1,
16059      "content": {
16060        "type": "SEQ",
16061        "members": [
16062          {
16063            "type": "FIELD",
16064            "name": "pattern",
16065            "content": {
16066              "type": "SYMBOL",
16067              "name": "expression"
16068            }
16069          },
16070          {
16071            "type": "STRING",
16072            "value": "..."
16073          }
16074        ]
16075      }
16076    },
16077    "type_parameter_pack_expansion": {
16078      "type": "SEQ",
16079      "members": [
16080        {
16081          "type": "FIELD",
16082          "name": "pattern",
16083          "content": {
16084            "type": "SYMBOL",
16085            "name": "type_descriptor"
16086          }
16087        },
16088        {
16089          "type": "STRING",
16090          "value": "..."
16091        }
16092      ]
16093    },
16094    "destructor_name": {
16095      "type": "PREC",
16096      "value": 1,
16097      "content": {
16098        "type": "SEQ",
16099        "members": [
16100          {
16101            "type": "STRING",
16102            "value": "~"
16103          },
16104          {
16105            "type": "SYMBOL",
16106            "name": "identifier"
16107          }
16108        ]
16109      }
16110    },
16111    "dependent_identifier": {
16112      "type": "SEQ",
16113      "members": [
16114        {
16115          "type": "STRING",
16116          "value": "template"
16117        },
16118        {
16119          "type": "SYMBOL",
16120          "name": "template_function"
16121        }
16122      ]
16123    },
16124    "dependent_field_identifier": {
16125      "type": "SEQ",
16126      "members": [
16127        {
16128          "type": "STRING",
16129          "value": "template"
16130        },
16131        {
16132          "type": "SYMBOL",
16133          "name": "template_method"
16134        }
16135      ]
16136    },
16137    "dependent_type_identifier": {
16138      "type": "SEQ",
16139      "members": [
16140        {
16141          "type": "STRING",
16142          "value": "template"
16143        },
16144        {
16145          "type": "SYMBOL",
16146          "name": "template_type"
16147        }
16148      ]
16149    },
16150    "_scope_resolution": {
16151      "type": "PREC",
16152      "value": 1,
16153      "content": {
16154        "type": "SEQ",
16155        "members": [
16156          {
16157            "type": "FIELD",
16158            "name": "scope",
16159            "content": {
16160              "type": "CHOICE",
16161              "members": [
16162                {
16163                  "type": "CHOICE",
16164                  "members": [
16165                    {
16166                      "type": "SYMBOL",
16167                      "name": "_namespace_identifier"
16168                    },
16169                    {
16170                      "type": "SYMBOL",
16171                      "name": "template_type"
16172                    },
16173                    {
16174                      "type": "SYMBOL",
16175                      "name": "decltype"
16176                    },
16177                    {
16178                      "type": "ALIAS",
16179                      "content": {
16180                        "type": "SYMBOL",
16181                        "name": "dependent_type_identifier"
16182                      },
16183                      "named": true,
16184                      "value": "dependent_name"
16185                    }
16186                  ]
16187                },
16188                {
16189                  "type": "BLANK"
16190                }
16191              ]
16192            }
16193          },
16194          {
16195            "type": "STRING",
16196            "value": "::"
16197          }
16198        ]
16199      }
16200    },
16201    "qualified_field_identifier": {
16202      "type": "SEQ",
16203      "members": [
16204        {
16205          "type": "SYMBOL",
16206          "name": "_scope_resolution"
16207        },
16208        {
16209          "type": "FIELD",
16210          "name": "name",
16211          "content": {
16212            "type": "CHOICE",
16213            "members": [
16214              {
16215                "type": "ALIAS",
16216                "content": {
16217                  "type": "SYMBOL",
16218                  "name": "dependent_field_identifier"
16219                },
16220                "named": true,
16221                "value": "dependent_name"
16222              },
16223              {
16224                "type": "ALIAS",
16225                "content": {
16226                  "type": "SYMBOL",
16227                  "name": "qualified_field_identifier"
16228                },
16229                "named": true,
16230                "value": "qualified_identifier"
16231              },
16232              {
16233                "type": "SYMBOL",
16234                "name": "template_method"
16235              },
16236              {
16237                "type": "PREC_DYNAMIC",
16238                "value": 1,
16239                "content": {
16240                  "type": "SYMBOL",
16241                  "name": "_field_identifier"
16242                }
16243              }
16244            ]
16245          }
16246        }
16247      ]
16248    },
16249    "qualified_identifier": {
16250      "type": "SEQ",
16251      "members": [
16252        {
16253          "type": "SYMBOL",
16254          "name": "_scope_resolution"
16255        },
16256        {
16257          "type": "FIELD",
16258          "name": "name",
16259          "content": {
16260            "type": "CHOICE",
16261            "members": [
16262              {
16263                "type": "ALIAS",
16264                "content": {
16265                  "type": "SYMBOL",
16266                  "name": "dependent_identifier"
16267                },
16268                "named": true,
16269                "value": "dependent_name"
16270              },
16271              {
16272                "type": "SYMBOL",
16273                "name": "qualified_identifier"
16274              },
16275              {
16276                "type": "SYMBOL",
16277                "name": "template_function"
16278              },
16279              {
16280                "type": "SEQ",
16281                "members": [
16282                  {
16283                    "type": "CHOICE",
16284                    "members": [
16285                      {
16286                        "type": "STRING",
16287                        "value": "template"
16288                      },
16289                      {
16290                        "type": "BLANK"
16291                      }
16292                    ]
16293                  },
16294                  {
16295                    "type": "SYMBOL",
16296                    "name": "identifier"
16297                  }
16298                ]
16299              },
16300              {
16301                "type": "SYMBOL",
16302                "name": "operator_name"
16303              },
16304              {
16305                "type": "SYMBOL",
16306                "name": "destructor_name"
16307              },
16308              {
16309                "type": "SYMBOL",
16310                "name": "pointer_type_declarator"
16311              }
16312            ]
16313          }
16314        }
16315      ]
16316    },
16317    "qualified_type_identifier": {
16318      "type": "SEQ",
16319      "members": [
16320        {
16321          "type": "SYMBOL",
16322          "name": "_scope_resolution"
16323        },
16324        {
16325          "type": "FIELD",
16326          "name": "name",
16327          "content": {
16328            "type": "CHOICE",
16329            "members": [
16330              {
16331                "type": "ALIAS",
16332                "content": {
16333                  "type": "SYMBOL",
16334                  "name": "dependent_type_identifier"
16335                },
16336                "named": true,
16337                "value": "dependent_name"
16338              },
16339              {
16340                "type": "ALIAS",
16341                "content": {
16342                  "type": "SYMBOL",
16343                  "name": "qualified_type_identifier"
16344                },
16345                "named": true,
16346                "value": "qualified_identifier"
16347              },
16348              {
16349                "type": "SYMBOL",
16350                "name": "template_type"
16351              },
16352              {
16353                "type": "SYMBOL",
16354                "name": "_type_identifier"
16355              }
16356            ]
16357          }
16358        }
16359      ]
16360    },
16361    "qualified_operator_cast_identifier": {
16362      "type": "SEQ",
16363      "members": [
16364        {
16365          "type": "SYMBOL",
16366          "name": "_scope_resolution"
16367        },
16368        {
16369          "type": "FIELD",
16370          "name": "name",
16371          "content": {
16372            "type": "CHOICE",
16373            "members": [
16374              {
16375                "type": "ALIAS",
16376                "content": {
16377                  "type": "SYMBOL",
16378                  "name": "qualified_operator_cast_identifier"
16379                },
16380                "named": true,
16381                "value": "qualified_identifier"
16382              },
16383              {
16384                "type": "SYMBOL",
16385                "name": "operator_cast"
16386              }
16387            ]
16388          }
16389        }
16390      ]
16391    },
16392    "_assignment_expression_lhs": {
16393      "type": "SEQ",
16394      "members": [
16395        {
16396          "type": "FIELD",
16397          "name": "left",
16398          "content": {
16399            "type": "SYMBOL",
16400            "name": "expression"
16401          }
16402        },
16403        {
16404          "type": "FIELD",
16405          "name": "operator",
16406          "content": {
16407            "type": "CHOICE",
16408            "members": [
16409              {
16410                "type": "STRING",
16411                "value": "="
16412              },
16413              {
16414                "type": "STRING",
16415                "value": "*="
16416              },
16417              {
16418                "type": "STRING",
16419                "value": "/="
16420              },
16421              {
16422                "type": "STRING",
16423                "value": "%="
16424              },
16425              {
16426                "type": "STRING",
16427                "value": "+="
16428              },
16429              {
16430                "type": "STRING",
16431                "value": "-="
16432              },
16433              {
16434                "type": "STRING",
16435                "value": "<<="
16436              },
16437              {
16438                "type": "STRING",
16439                "value": ">>="
16440              },
16441              {
16442                "type": "STRING",
16443                "value": "&="
16444              },
16445              {
16446                "type": "STRING",
16447                "value": "^="
16448              },
16449              {
16450                "type": "STRING",
16451                "value": "|="
16452              },
16453              {
16454                "type": "STRING",
16455                "value": "and_eq"
16456              },
16457              {
16458                "type": "STRING",
16459                "value": "or_eq"
16460              },
16461              {
16462                "type": "STRING",
16463                "value": "xor_eq"
16464              }
16465            ]
16466          }
16467        },
16468        {
16469          "type": "FIELD",
16470          "name": "right",
16471          "content": {
16472            "type": "CHOICE",
16473            "members": [
16474              {
16475                "type": "SYMBOL",
16476                "name": "expression"
16477              },
16478              {
16479                "type": "SYMBOL",
16480                "name": "initializer_list"
16481              }
16482            ]
16483          }
16484        }
16485      ]
16486    },
16487    "operator_name": {
16488      "type": "PREC",
16489      "value": 1,
16490      "content": {
16491        "type": "SEQ",
16492        "members": [
16493          {
16494            "type": "STRING",
16495            "value": "operator"
16496          },
16497          {
16498            "type": "CHOICE",
16499            "members": [
16500              {
16501                "type": "STRING",
16502                "value": "co_await"
16503              },
16504              {
16505                "type": "STRING",
16506                "value": "+"
16507              },
16508              {
16509                "type": "STRING",
16510                "value": "-"
16511              },
16512              {
16513                "type": "STRING",
16514                "value": "*"
16515              },
16516              {
16517                "type": "STRING",
16518                "value": "/"
16519              },
16520              {
16521                "type": "STRING",
16522                "value": "%"
16523              },
16524              {
16525                "type": "STRING",
16526                "value": "^"
16527              },
16528              {
16529                "type": "STRING",
16530                "value": "&"
16531              },
16532              {
16533                "type": "STRING",
16534                "value": "|"
16535              },
16536              {
16537                "type": "STRING",
16538                "value": "~"
16539              },
16540              {
16541                "type": "STRING",
16542                "value": "!"
16543              },
16544              {
16545                "type": "STRING",
16546                "value": "="
16547              },
16548              {
16549                "type": "STRING",
16550                "value": "<"
16551              },
16552              {
16553                "type": "STRING",
16554                "value": ">"
16555              },
16556              {
16557                "type": "STRING",
16558                "value": "+="
16559              },
16560              {
16561                "type": "STRING",
16562                "value": "-="
16563              },
16564              {
16565                "type": "STRING",
16566                "value": "*="
16567              },
16568              {
16569                "type": "STRING",
16570                "value": "/="
16571              },
16572              {
16573                "type": "STRING",
16574                "value": "%="
16575              },
16576              {
16577                "type": "STRING",
16578                "value": "^="
16579              },
16580              {
16581                "type": "STRING",
16582                "value": "&="
16583              },
16584              {
16585                "type": "STRING",
16586                "value": "|="
16587              },
16588              {
16589                "type": "STRING",
16590                "value": "<<"
16591              },
16592              {
16593                "type": "STRING",
16594                "value": ">>"
16595              },
16596              {
16597                "type": "STRING",
16598                "value": ">>="
16599              },
16600              {
16601                "type": "STRING",
16602                "value": "<<="
16603              },
16604              {
16605                "type": "STRING",
16606                "value": "=="
16607              },
16608              {
16609                "type": "STRING",
16610                "value": "!="
16611              },
16612              {
16613                "type": "STRING",
16614                "value": "<="
16615              },
16616              {
16617                "type": "STRING",
16618                "value": ">="
16619              },
16620              {
16621                "type": "STRING",
16622                "value": "<=>"
16623              },
16624              {
16625                "type": "STRING",
16626                "value": "&&"
16627              },
16628              {
16629                "type": "STRING",
16630                "value": "||"
16631              },
16632              {
16633                "type": "STRING",
16634                "value": "++"
16635              },
16636              {
16637                "type": "STRING",
16638                "value": "--"
16639              },
16640              {
16641                "type": "STRING",
16642                "value": ","
16643              },
16644              {
16645                "type": "STRING",
16646                "value": "->*"
16647              },
16648              {
16649                "type": "STRING",
16650                "value": "->"
16651              },
16652              {
16653                "type": "STRING",
16654                "value": "()"
16655              },
16656              {
16657                "type": "STRING",
16658                "value": "[]"
16659              },
16660              {
16661                "type": "STRING",
16662                "value": "xor"
16663              },
16664              {
16665                "type": "STRING",
16666                "value": "bitand"
16667              },
16668              {
16669                "type": "STRING",
16670                "value": "bitor"
16671              },
16672              {
16673                "type": "STRING",
16674                "value": "compl"
16675              },
16676              {
16677                "type": "STRING",
16678                "value": "not"
16679              },
16680              {
16681                "type": "STRING",
16682                "value": "xor_eq"
16683              },
16684              {
16685                "type": "STRING",
16686                "value": "and_eq"
16687              },
16688              {
16689                "type": "STRING",
16690                "value": "or_eq"
16691              },
16692              {
16693                "type": "STRING",
16694                "value": "not_eq"
16695              },
16696              {
16697                "type": "STRING",
16698                "value": "and"
16699              },
16700              {
16701                "type": "STRING",
16702                "value": "or"
16703              },
16704              {
16705                "type": "SEQ",
16706                "members": [
16707                  {
16708                    "type": "CHOICE",
16709                    "members": [
16710                      {
16711                        "type": "STRING",
16712                        "value": "new"
16713                      },
16714                      {
16715                        "type": "STRING",
16716                        "value": "delete"
16717                      }
16718                    ]
16719                  },
16720                  {
16721                    "type": "CHOICE",
16722                    "members": [
16723                      {
16724                        "type": "STRING",
16725                        "value": "[]"
16726                      },
16727                      {
16728                        "type": "BLANK"
16729                      }
16730                    ]
16731                  }
16732                ]
16733              },
16734              {
16735                "type": "SEQ",
16736                "members": [
16737                  {
16738                    "type": "STRING",
16739                    "value": "\"\""
16740                  },
16741                  {
16742                    "type": "SYMBOL",
16743                    "name": "identifier"
16744                  }
16745                ]
16746              }
16747            ]
16748          }
16749        ]
16750      }
16751    },
16752    "this": {
16753      "type": "STRING",
16754      "value": "this"
16755    },
16756    "literal_suffix": {
16757      "type": "IMMEDIATE_TOKEN",
16758      "content": {
16759        "type": "PATTERN",
16760        "value": "[a-zA-Z_]\\w*"
16761      }
16762    },
16763    "user_defined_literal": {
16764      "type": "SEQ",
16765      "members": [
16766        {
16767          "type": "CHOICE",
16768          "members": [
16769            {
16770              "type": "SYMBOL",
16771              "name": "number_literal"
16772            },
16773            {
16774              "type": "SYMBOL",
16775              "name": "char_literal"
16776            },
16777            {
16778              "type": "SYMBOL",
16779              "name": "string_literal"
16780            },
16781            {
16782              "type": "SYMBOL",
16783              "name": "raw_string_literal"
16784            },
16785            {
16786              "type": "SYMBOL",
16787              "name": "concatenated_string"
16788            }
16789          ]
16790        },
16791        {
16792          "type": "SYMBOL",
16793          "name": "literal_suffix"
16794        }
16795      ]
16796    },
16797    "_namespace_identifier": {
16798      "type": "ALIAS",
16799      "content": {
16800        "type": "SYMBOL",
16801        "name": "identifier"
16802      },
16803      "named": true,
16804      "value": "namespace_identifier"
16805    },
16806    "kernel_call_expression": {
16807      "type": "SEQ",
16808      "members": [
16809        {
16810          "type": "FIELD",
16811          "name": "function",
16812          "content": {
16813            "type": "SYMBOL",
16814            "name": "expression"
16815          }
16816        },
16817        {
16818          "type": "SYMBOL",
16819          "name": "kernel_call_syntax"
16820        },
16821        {
16822          "type": "FIELD",
16823          "name": "arguments",
16824          "content": {
16825            "type": "SYMBOL",
16826            "name": "argument_list"
16827          }
16828        }
16829      ]
16830    },
16831    "kernel_call_syntax": {
16832      "type": "SEQ",
16833      "members": [
16834        {
16835          "type": "ALIAS",
16836          "content": {
16837            "type": "TOKEN",
16838            "content": {
16839              "type": "SEQ",
16840              "members": [
16841                {
16842                  "type": "STRING",
16843                  "value": "<"
16844                },
16845                {
16846                  "type": "PATTERN",
16847                  "value": "\\s*"
16848                },
16849                {
16850                  "type": "STRING",
16851                  "value": "<"
16852                },
16853                {
16854                  "type": "PATTERN",
16855                  "value": "\\s*"
16856                },
16857                {
16858                  "type": "STRING",
16859                  "value": "<"
16860                }
16861              ]
16862            }
16863          },
16864          "named": false,
16865          "value": "<<<"
16866        },
16867        {
16868          "type": "SYMBOL",
16869          "name": "expression"
16870        },
16871        {
16872          "type": "REPEAT",
16873          "content": {
16874            "type": "SEQ",
16875            "members": [
16876              {
16877                "type": "STRING",
16878                "value": ","
16879              },
16880              {
16881                "type": "SYMBOL",
16882                "name": "expression"
16883              }
16884            ]
16885          }
16886        },
16887        {
16888          "type": "ALIAS",
16889          "content": {
16890            "type": "TOKEN",
16891            "content": {
16892              "type": "SEQ",
16893              "members": [
16894                {
16895                  "type": "STRING",
16896                  "value": ">"
16897                },
16898                {
16899                  "type": "PATTERN",
16900                  "value": "\\s*"
16901                },
16902                {
16903                  "type": "STRING",
16904                  "value": ">"
16905                },
16906                {
16907                  "type": "PATTERN",
16908                  "value": "\\s*"
16909                },
16910                {
16911                  "type": "STRING",
16912                  "value": ">"
16913                }
16914              ]
16915            }
16916          },
16917          "named": false,
16918          "value": ">>>"
16919        }
16920      ]
16921    },
16922    "launch_bounds": {
16923      "type": "SEQ",
16924      "members": [
16925        {
16926          "type": "STRING",
16927          "value": "__launch_bounds__"
16928        },
16929        {
16930          "type": "STRING",
16931          "value": "("
16932        },
16933        {
16934          "type": "SYMBOL",
16935          "name": "expression"
16936        },
16937        {
16938          "type": "CHOICE",
16939          "members": [
16940            {
16941              "type": "SEQ",
16942              "members": [
16943                {
16944                  "type": "STRING",
16945                  "value": ","
16946                },
16947                {
16948                  "type": "SYMBOL",
16949                  "name": "expression"
16950                }
16951              ]
16952            },
16953            {
16954              "type": "BLANK"
16955            }
16956          ]
16957        },
16958        {
16959          "type": "STRING",
16960          "value": ")"
16961        }
16962      ]
16963    }
16964  },
16965  "extras": [
16966    {
16967      "type": "PATTERN",
16968      "value": "\\s|\\\\\\r?\\n"
16969    },
16970    {
16971      "type": "SYMBOL",
16972      "name": "comment"
16973    }
16974  ],
16975  "conflicts": [
16976    [
16977      "type_specifier",
16978      "_declarator"
16979    ],
16980    [
16981      "type_specifier",
16982      "expression"
16983    ],
16984    [
16985      "sized_type_specifier"
16986    ],
16987    [
16988      "attributed_statement"
16989    ],
16990    [
16991      "_declaration_modifiers",
16992      "attributed_statement"
16993    ],
16994    [
16995      "_top_level_item",
16996      "_top_level_statement"
16997    ],
16998    [
16999      "_block_item",
17000      "statement"
17001    ],
17002    [
17003      "template_function",
17004      "template_type"
17005    ],
17006    [
17007      "template_function",
17008      "template_type",
17009      "expression"
17010    ],
17011    [
17012      "template_function",
17013      "template_type",
17014      "qualified_identifier"
17015    ],
17016    [
17017      "template_type",
17018      "qualified_type_identifier"
17019    ],
17020    [
17021      "qualified_type_identifier",
17022      "qualified_identifier"
17023    ],
17024    [
17025      "comma_expression",
17026      "initializer_list"
17027    ],
17028    [
17029      "expression",
17030      "_declarator"
17031    ],
17032    [
17033      "expression",
17034      "structured_binding_declarator"
17035    ],
17036    [
17037      "expression",
17038      "_declarator",
17039      "type_specifier"
17040    ],
17041    [
17042      "parameter_list",
17043      "argument_list"
17044    ],
17045    [
17046      "type_specifier",
17047      "call_expression"
17048    ],
17049    [
17050      "_declaration_specifiers",
17051      "_constructor_specifiers"
17052    ],
17053    [
17054      "_binary_fold_operator",
17055      "_fold_operator"
17056    ],
17057    [
17058      "_function_declarator_seq"
17059    ],
17060    [
17061      "type_specifier",
17062      "sized_type_specifier"
17063    ],
17064    [
17065      "initializer_pair",
17066      "comma_expression"
17067    ],
17068    [
17069      "expression_statement",
17070      "_for_statement_body"
17071    ],
17072    [
17073      "init_statement",
17074      "_for_statement_body"
17075    ],
17076    [
17077      "field_expression",
17078      "template_method",
17079      "template_type"
17080    ],
17081    [
17082      "qualified_field_identifier",
17083      "template_method",
17084      "template_type"
17085    ]
17086  ],
17087  "precedences": [
17088    [
17089      {
17090        "type": "SYMBOL",
17091        "name": "argument_list"
17092      },
17093      {
17094        "type": "SYMBOL",
17095        "name": "type_qualifier"
17096      }
17097    ],
17098    [
17099      {
17100        "type": "SYMBOL",
17101        "name": "_expression_not_binary"
17102      },
17103      {
17104        "type": "SYMBOL",
17105        "name": "_class_name"
17106      }
17107    ]
17108  ],
17109  "externals": [
17110    {
17111      "type": "SYMBOL",
17112      "name": "raw_string_delimiter"
17113    },
17114    {
17115      "type": "SYMBOL",
17116      "name": "raw_string_content"
17117    }
17118  ],
17119  "inline": [
17120    "_type_identifier",
17121    "_field_identifier",
17122    "_statement_identifier",
17123    "_non_case_statement",
17124    "_assignment_left_expression",
17125    "_expression_not_binary",
17126    "_namespace_identifier"
17127  ],
17128  "supertypes": [
17129    "expression",
17130    "statement",
17131    "type_specifier",
17132    "_declarator",
17133    "_field_declarator",
17134    "_type_declarator",
17135    "_abstract_declarator"
17136  ]
17137}