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