1{
   2  "name": "c",
   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": "ALIAS",
  21          "content": {
  22            "type": "SYMBOL",
  23            "name": "_old_style_function_definition"
  24          },
  25          "named": true,
  26          "value": "function_definition"
  27        },
  28        {
  29          "type": "SYMBOL",
  30          "name": "linkage_specification"
  31        },
  32        {
  33          "type": "SYMBOL",
  34          "name": "declaration"
  35        },
  36        {
  37          "type": "SYMBOL",
  38          "name": "_top_level_statement"
  39        },
  40        {
  41          "type": "SYMBOL",
  42          "name": "attributed_statement"
  43        },
  44        {
  45          "type": "SYMBOL",
  46          "name": "type_definition"
  47        },
  48        {
  49          "type": "SYMBOL",
  50          "name": "_empty_declaration"
  51        },
  52        {
  53          "type": "SYMBOL",
  54          "name": "preproc_if"
  55        },
  56        {
  57          "type": "SYMBOL",
  58          "name": "preproc_ifdef"
  59        },
  60        {
  61          "type": "SYMBOL",
  62          "name": "preproc_include"
  63        },
  64        {
  65          "type": "SYMBOL",
  66          "name": "preproc_def"
  67        },
  68        {
  69          "type": "SYMBOL",
  70          "name": "preproc_function_def"
  71        },
  72        {
  73          "type": "SYMBOL",
  74          "name": "preproc_call"
  75        }
  76      ]
  77    },
  78    "_block_item": {
  79      "type": "CHOICE",
  80      "members": [
  81        {
  82          "type": "SYMBOL",
  83          "name": "function_definition"
  84        },
  85        {
  86          "type": "ALIAS",
  87          "content": {
  88            "type": "SYMBOL",
  89            "name": "_old_style_function_definition"
  90          },
  91          "named": true,
  92          "value": "function_definition"
  93        },
  94        {
  95          "type": "SYMBOL",
  96          "name": "linkage_specification"
  97        },
  98        {
  99          "type": "SYMBOL",
 100          "name": "declaration"
 101        },
 102        {
 103          "type": "SYMBOL",
 104          "name": "_statement"
 105        },
 106        {
 107          "type": "SYMBOL",
 108          "name": "attributed_statement"
 109        },
 110        {
 111          "type": "SYMBOL",
 112          "name": "type_definition"
 113        },
 114        {
 115          "type": "SYMBOL",
 116          "name": "_empty_declaration"
 117        },
 118        {
 119          "type": "SYMBOL",
 120          "name": "preproc_if"
 121        },
 122        {
 123          "type": "SYMBOL",
 124          "name": "preproc_ifdef"
 125        },
 126        {
 127          "type": "SYMBOL",
 128          "name": "preproc_include"
 129        },
 130        {
 131          "type": "SYMBOL",
 132          "name": "preproc_def"
 133        },
 134        {
 135          "type": "SYMBOL",
 136          "name": "preproc_function_def"
 137        },
 138        {
 139          "type": "SYMBOL",
 140          "name": "preproc_call"
 141        }
 142      ]
 143    },
 144    "preproc_include": {
 145      "type": "SEQ",
 146      "members": [
 147        {
 148          "type": "ALIAS",
 149          "content": {
 150            "type": "PATTERN",
 151            "value": "#[ \t]*include"
 152          },
 153          "named": false,
 154          "value": "#include"
 155        },
 156        {
 157          "type": "FIELD",
 158          "name": "path",
 159          "content": {
 160            "type": "CHOICE",
 161            "members": [
 162              {
 163                "type": "SYMBOL",
 164                "name": "string_literal"
 165              },
 166              {
 167                "type": "SYMBOL",
 168                "name": "system_lib_string"
 169              },
 170              {
 171                "type": "SYMBOL",
 172                "name": "identifier"
 173              },
 174              {
 175                "type": "ALIAS",
 176                "content": {
 177                  "type": "SYMBOL",
 178                  "name": "preproc_call_expression"
 179                },
 180                "named": true,
 181                "value": "call_expression"
 182              }
 183            ]
 184          }
 185        },
 186        {
 187          "type": "IMMEDIATE_TOKEN",
 188          "content": {
 189            "type": "PATTERN",
 190            "value": "\\r?\\n"
 191          }
 192        }
 193      ]
 194    },
 195    "preproc_def": {
 196      "type": "SEQ",
 197      "members": [
 198        {
 199          "type": "ALIAS",
 200          "content": {
 201            "type": "PATTERN",
 202            "value": "#[ \t]*define"
 203          },
 204          "named": false,
 205          "value": "#define"
 206        },
 207        {
 208          "type": "FIELD",
 209          "name": "name",
 210          "content": {
 211            "type": "SYMBOL",
 212            "name": "identifier"
 213          }
 214        },
 215        {
 216          "type": "FIELD",
 217          "name": "value",
 218          "content": {
 219            "type": "CHOICE",
 220            "members": [
 221              {
 222                "type": "SYMBOL",
 223                "name": "preproc_arg"
 224              },
 225              {
 226                "type": "BLANK"
 227              }
 228            ]
 229          }
 230        },
 231        {
 232          "type": "IMMEDIATE_TOKEN",
 233          "content": {
 234            "type": "PATTERN",
 235            "value": "\\r?\\n"
 236          }
 237        }
 238      ]
 239    },
 240    "preproc_function_def": {
 241      "type": "SEQ",
 242      "members": [
 243        {
 244          "type": "ALIAS",
 245          "content": {
 246            "type": "PATTERN",
 247            "value": "#[ \t]*define"
 248          },
 249          "named": false,
 250          "value": "#define"
 251        },
 252        {
 253          "type": "FIELD",
 254          "name": "name",
 255          "content": {
 256            "type": "SYMBOL",
 257            "name": "identifier"
 258          }
 259        },
 260        {
 261          "type": "FIELD",
 262          "name": "parameters",
 263          "content": {
 264            "type": "SYMBOL",
 265            "name": "preproc_params"
 266          }
 267        },
 268        {
 269          "type": "FIELD",
 270          "name": "value",
 271          "content": {
 272            "type": "CHOICE",
 273            "members": [
 274              {
 275                "type": "SYMBOL",
 276                "name": "preproc_arg"
 277              },
 278              {
 279                "type": "BLANK"
 280              }
 281            ]
 282          }
 283        },
 284        {
 285          "type": "IMMEDIATE_TOKEN",
 286          "content": {
 287            "type": "PATTERN",
 288            "value": "\\r?\\n"
 289          }
 290        }
 291      ]
 292    },
 293    "preproc_params": {
 294      "type": "SEQ",
 295      "members": [
 296        {
 297          "type": "IMMEDIATE_TOKEN",
 298          "content": {
 299            "type": "STRING",
 300            "value": "("
 301          }
 302        },
 303        {
 304          "type": "CHOICE",
 305          "members": [
 306            {
 307              "type": "SEQ",
 308              "members": [
 309                {
 310                  "type": "CHOICE",
 311                  "members": [
 312                    {
 313                      "type": "SYMBOL",
 314                      "name": "identifier"
 315                    },
 316                    {
 317                      "type": "STRING",
 318                      "value": "..."
 319                    }
 320                  ]
 321                },
 322                {
 323                  "type": "REPEAT",
 324                  "content": {
 325                    "type": "SEQ",
 326                    "members": [
 327                      {
 328                        "type": "STRING",
 329                        "value": ","
 330                      },
 331                      {
 332                        "type": "CHOICE",
 333                        "members": [
 334                          {
 335                            "type": "SYMBOL",
 336                            "name": "identifier"
 337                          },
 338                          {
 339                            "type": "STRING",
 340                            "value": "..."
 341                          }
 342                        ]
 343                      }
 344                    ]
 345                  }
 346                }
 347              ]
 348            },
 349            {
 350              "type": "BLANK"
 351            }
 352          ]
 353        },
 354        {
 355          "type": "STRING",
 356          "value": ")"
 357        }
 358      ]
 359    },
 360    "preproc_call": {
 361      "type": "SEQ",
 362      "members": [
 363        {
 364          "type": "FIELD",
 365          "name": "directive",
 366          "content": {
 367            "type": "SYMBOL",
 368            "name": "preproc_directive"
 369          }
 370        },
 371        {
 372          "type": "FIELD",
 373          "name": "argument",
 374          "content": {
 375            "type": "CHOICE",
 376            "members": [
 377              {
 378                "type": "SYMBOL",
 379                "name": "preproc_arg"
 380              },
 381              {
 382                "type": "BLANK"
 383              }
 384            ]
 385          }
 386        },
 387        {
 388          "type": "IMMEDIATE_TOKEN",
 389          "content": {
 390            "type": "PATTERN",
 391            "value": "\\r?\\n"
 392          }
 393        }
 394      ]
 395    },
 396    "preproc_if": {
 397      "type": "SEQ",
 398      "members": [
 399        {
 400          "type": "ALIAS",
 401          "content": {
 402            "type": "PATTERN",
 403            "value": "#[ \t]*if"
 404          },
 405          "named": false,
 406          "value": "#if"
 407        },
 408        {
 409          "type": "FIELD",
 410          "name": "condition",
 411          "content": {
 412            "type": "SYMBOL",
 413            "name": "_preproc_expression"
 414          }
 415        },
 416        {
 417          "type": "STRING",
 418          "value": "\n"
 419        },
 420        {
 421          "type": "REPEAT",
 422          "content": {
 423            "type": "SYMBOL",
 424            "name": "_block_item"
 425          }
 426        },
 427        {
 428          "type": "FIELD",
 429          "name": "alternative",
 430          "content": {
 431            "type": "CHOICE",
 432            "members": [
 433              {
 434                "type": "CHOICE",
 435                "members": [
 436                  {
 437                    "type": "SYMBOL",
 438                    "name": "preproc_else"
 439                  },
 440                  {
 441                    "type": "SYMBOL",
 442                    "name": "preproc_elif"
 443                  }
 444                ]
 445              },
 446              {
 447                "type": "BLANK"
 448              }
 449            ]
 450          }
 451        },
 452        {
 453          "type": "ALIAS",
 454          "content": {
 455            "type": "PATTERN",
 456            "value": "#[ \t]*endif"
 457          },
 458          "named": false,
 459          "value": "#endif"
 460        }
 461      ]
 462    },
 463    "preproc_ifdef": {
 464      "type": "SEQ",
 465      "members": [
 466        {
 467          "type": "CHOICE",
 468          "members": [
 469            {
 470              "type": "ALIAS",
 471              "content": {
 472                "type": "PATTERN",
 473                "value": "#[ \t]*ifdef"
 474              },
 475              "named": false,
 476              "value": "#ifdef"
 477            },
 478            {
 479              "type": "ALIAS",
 480              "content": {
 481                "type": "PATTERN",
 482                "value": "#[ \t]*ifndef"
 483              },
 484              "named": false,
 485              "value": "#ifndef"
 486            }
 487          ]
 488        },
 489        {
 490          "type": "FIELD",
 491          "name": "name",
 492          "content": {
 493            "type": "SYMBOL",
 494            "name": "identifier"
 495          }
 496        },
 497        {
 498          "type": "REPEAT",
 499          "content": {
 500            "type": "SYMBOL",
 501            "name": "_block_item"
 502          }
 503        },
 504        {
 505          "type": "FIELD",
 506          "name": "alternative",
 507          "content": {
 508            "type": "CHOICE",
 509            "members": [
 510              {
 511                "type": "CHOICE",
 512                "members": [
 513                  {
 514                    "type": "CHOICE",
 515                    "members": [
 516                      {
 517                        "type": "SYMBOL",
 518                        "name": "preproc_else"
 519                      },
 520                      {
 521                        "type": "SYMBOL",
 522                        "name": "preproc_elif"
 523                      }
 524                    ]
 525                  },
 526                  {
 527                    "type": "SYMBOL",
 528                    "name": "preproc_elifdef"
 529                  }
 530                ]
 531              },
 532              {
 533                "type": "BLANK"
 534              }
 535            ]
 536          }
 537        },
 538        {
 539          "type": "ALIAS",
 540          "content": {
 541            "type": "PATTERN",
 542            "value": "#[ \t]*endif"
 543          },
 544          "named": false,
 545          "value": "#endif"
 546        }
 547      ]
 548    },
 549    "preproc_else": {
 550      "type": "SEQ",
 551      "members": [
 552        {
 553          "type": "ALIAS",
 554          "content": {
 555            "type": "PATTERN",
 556            "value": "#[ \t]*else"
 557          },
 558          "named": false,
 559          "value": "#else"
 560        },
 561        {
 562          "type": "REPEAT",
 563          "content": {
 564            "type": "SYMBOL",
 565            "name": "_block_item"
 566          }
 567        }
 568      ]
 569    },
 570    "preproc_elif": {
 571      "type": "SEQ",
 572      "members": [
 573        {
 574          "type": "ALIAS",
 575          "content": {
 576            "type": "PATTERN",
 577            "value": "#[ \t]*elif"
 578          },
 579          "named": false,
 580          "value": "#elif"
 581        },
 582        {
 583          "type": "FIELD",
 584          "name": "condition",
 585          "content": {
 586            "type": "SYMBOL",
 587            "name": "_preproc_expression"
 588          }
 589        },
 590        {
 591          "type": "STRING",
 592          "value": "\n"
 593        },
 594        {
 595          "type": "REPEAT",
 596          "content": {
 597            "type": "SYMBOL",
 598            "name": "_block_item"
 599          }
 600        },
 601        {
 602          "type": "FIELD",
 603          "name": "alternative",
 604          "content": {
 605            "type": "CHOICE",
 606            "members": [
 607              {
 608                "type": "CHOICE",
 609                "members": [
 610                  {
 611                    "type": "SYMBOL",
 612                    "name": "preproc_else"
 613                  },
 614                  {
 615                    "type": "SYMBOL",
 616                    "name": "preproc_elif"
 617                  }
 618                ]
 619              },
 620              {
 621                "type": "BLANK"
 622              }
 623            ]
 624          }
 625        }
 626      ]
 627    },
 628    "preproc_elifdef": {
 629      "type": "SEQ",
 630      "members": [
 631        {
 632          "type": "CHOICE",
 633          "members": [
 634            {
 635              "type": "ALIAS",
 636              "content": {
 637                "type": "PATTERN",
 638                "value": "#[ \t]*elifdef"
 639              },
 640              "named": false,
 641              "value": "#elifdef"
 642            },
 643            {
 644              "type": "ALIAS",
 645              "content": {
 646                "type": "PATTERN",
 647                "value": "#[ \t]*elifndef"
 648              },
 649              "named": false,
 650              "value": "#elifndef"
 651            }
 652          ]
 653        },
 654        {
 655          "type": "FIELD",
 656          "name": "name",
 657          "content": {
 658            "type": "SYMBOL",
 659            "name": "identifier"
 660          }
 661        },
 662        {
 663          "type": "REPEAT",
 664          "content": {
 665            "type": "SYMBOL",
 666            "name": "_block_item"
 667          }
 668        },
 669        {
 670          "type": "FIELD",
 671          "name": "alternative",
 672          "content": {
 673            "type": "CHOICE",
 674            "members": [
 675              {
 676                "type": "CHOICE",
 677                "members": [
 678                  {
 679                    "type": "SYMBOL",
 680                    "name": "preproc_else"
 681                  },
 682                  {
 683                    "type": "SYMBOL",
 684                    "name": "preproc_elif"
 685                  }
 686                ]
 687              },
 688              {
 689                "type": "BLANK"
 690              }
 691            ]
 692          }
 693        }
 694      ]
 695    },
 696    "preproc_if_in_field_declaration_list": {
 697      "type": "SEQ",
 698      "members": [
 699        {
 700          "type": "ALIAS",
 701          "content": {
 702            "type": "PATTERN",
 703            "value": "#[ \t]*if"
 704          },
 705          "named": false,
 706          "value": "#if"
 707        },
 708        {
 709          "type": "FIELD",
 710          "name": "condition",
 711          "content": {
 712            "type": "SYMBOL",
 713            "name": "_preproc_expression"
 714          }
 715        },
 716        {
 717          "type": "STRING",
 718          "value": "\n"
 719        },
 720        {
 721          "type": "REPEAT",
 722          "content": {
 723            "type": "SYMBOL",
 724            "name": "_field_declaration_list_item"
 725          }
 726        },
 727        {
 728          "type": "FIELD",
 729          "name": "alternative",
 730          "content": {
 731            "type": "CHOICE",
 732            "members": [
 733              {
 734                "type": "CHOICE",
 735                "members": [
 736                  {
 737                    "type": "ALIAS",
 738                    "content": {
 739                      "type": "SYMBOL",
 740                      "name": "preproc_else_in_field_declaration_list"
 741                    },
 742                    "named": true,
 743                    "value": "preproc_else"
 744                  },
 745                  {
 746                    "type": "ALIAS",
 747                    "content": {
 748                      "type": "SYMBOL",
 749                      "name": "preproc_elif_in_field_declaration_list"
 750                    },
 751                    "named": true,
 752                    "value": "preproc_elif"
 753                  }
 754                ]
 755              },
 756              {
 757                "type": "BLANK"
 758              }
 759            ]
 760          }
 761        },
 762        {
 763          "type": "ALIAS",
 764          "content": {
 765            "type": "PATTERN",
 766            "value": "#[ \t]*endif"
 767          },
 768          "named": false,
 769          "value": "#endif"
 770        }
 771      ]
 772    },
 773    "preproc_ifdef_in_field_declaration_list": {
 774      "type": "SEQ",
 775      "members": [
 776        {
 777          "type": "CHOICE",
 778          "members": [
 779            {
 780              "type": "ALIAS",
 781              "content": {
 782                "type": "PATTERN",
 783                "value": "#[ \t]*ifdef"
 784              },
 785              "named": false,
 786              "value": "#ifdef"
 787            },
 788            {
 789              "type": "ALIAS",
 790              "content": {
 791                "type": "PATTERN",
 792                "value": "#[ \t]*ifndef"
 793              },
 794              "named": false,
 795              "value": "#ifndef"
 796            }
 797          ]
 798        },
 799        {
 800          "type": "FIELD",
 801          "name": "name",
 802          "content": {
 803            "type": "SYMBOL",
 804            "name": "identifier"
 805          }
 806        },
 807        {
 808          "type": "REPEAT",
 809          "content": {
 810            "type": "SYMBOL",
 811            "name": "_field_declaration_list_item"
 812          }
 813        },
 814        {
 815          "type": "FIELD",
 816          "name": "alternative",
 817          "content": {
 818            "type": "CHOICE",
 819            "members": [
 820              {
 821                "type": "CHOICE",
 822                "members": [
 823                  {
 824                    "type": "CHOICE",
 825                    "members": [
 826                      {
 827                        "type": "ALIAS",
 828                        "content": {
 829                          "type": "SYMBOL",
 830                          "name": "preproc_else_in_field_declaration_list"
 831                        },
 832                        "named": true,
 833                        "value": "preproc_else"
 834                      },
 835                      {
 836                        "type": "ALIAS",
 837                        "content": {
 838                          "type": "SYMBOL",
 839                          "name": "preproc_elif_in_field_declaration_list"
 840                        },
 841                        "named": true,
 842                        "value": "preproc_elif"
 843                      }
 844                    ]
 845                  },
 846                  {
 847                    "type": "SYMBOL",
 848                    "name": "preproc_elifdef"
 849                  }
 850                ]
 851              },
 852              {
 853                "type": "BLANK"
 854              }
 855            ]
 856          }
 857        },
 858        {
 859          "type": "ALIAS",
 860          "content": {
 861            "type": "PATTERN",
 862            "value": "#[ \t]*endif"
 863          },
 864          "named": false,
 865          "value": "#endif"
 866        }
 867      ]
 868    },
 869    "preproc_else_in_field_declaration_list": {
 870      "type": "SEQ",
 871      "members": [
 872        {
 873          "type": "ALIAS",
 874          "content": {
 875            "type": "PATTERN",
 876            "value": "#[ \t]*else"
 877          },
 878          "named": false,
 879          "value": "#else"
 880        },
 881        {
 882          "type": "REPEAT",
 883          "content": {
 884            "type": "SYMBOL",
 885            "name": "_field_declaration_list_item"
 886          }
 887        }
 888      ]
 889    },
 890    "preproc_elif_in_field_declaration_list": {
 891      "type": "SEQ",
 892      "members": [
 893        {
 894          "type": "ALIAS",
 895          "content": {
 896            "type": "PATTERN",
 897            "value": "#[ \t]*elif"
 898          },
 899          "named": false,
 900          "value": "#elif"
 901        },
 902        {
 903          "type": "FIELD",
 904          "name": "condition",
 905          "content": {
 906            "type": "SYMBOL",
 907            "name": "_preproc_expression"
 908          }
 909        },
 910        {
 911          "type": "STRING",
 912          "value": "\n"
 913        },
 914        {
 915          "type": "REPEAT",
 916          "content": {
 917            "type": "SYMBOL",
 918            "name": "_field_declaration_list_item"
 919          }
 920        },
 921        {
 922          "type": "FIELD",
 923          "name": "alternative",
 924          "content": {
 925            "type": "CHOICE",
 926            "members": [
 927              {
 928                "type": "CHOICE",
 929                "members": [
 930                  {
 931                    "type": "ALIAS",
 932                    "content": {
 933                      "type": "SYMBOL",
 934                      "name": "preproc_else_in_field_declaration_list"
 935                    },
 936                    "named": true,
 937                    "value": "preproc_else"
 938                  },
 939                  {
 940                    "type": "ALIAS",
 941                    "content": {
 942                      "type": "SYMBOL",
 943                      "name": "preproc_elif_in_field_declaration_list"
 944                    },
 945                    "named": true,
 946                    "value": "preproc_elif"
 947                  }
 948                ]
 949              },
 950              {
 951                "type": "BLANK"
 952              }
 953            ]
 954          }
 955        }
 956      ]
 957    },
 958    "preproc_elifdef_in_field_declaration_list": {
 959      "type": "SEQ",
 960      "members": [
 961        {
 962          "type": "CHOICE",
 963          "members": [
 964            {
 965              "type": "ALIAS",
 966              "content": {
 967                "type": "PATTERN",
 968                "value": "#[ \t]*elifdef"
 969              },
 970              "named": false,
 971              "value": "#elifdef"
 972            },
 973            {
 974              "type": "ALIAS",
 975              "content": {
 976                "type": "PATTERN",
 977                "value": "#[ \t]*elifndef"
 978              },
 979              "named": false,
 980              "value": "#elifndef"
 981            }
 982          ]
 983        },
 984        {
 985          "type": "FIELD",
 986          "name": "name",
 987          "content": {
 988            "type": "SYMBOL",
 989            "name": "identifier"
 990          }
 991        },
 992        {
 993          "type": "REPEAT",
 994          "content": {
 995            "type": "SYMBOL",
 996            "name": "_field_declaration_list_item"
 997          }
 998        },
 999        {
1000          "type": "FIELD",
1001          "name": "alternative",
1002          "content": {
1003            "type": "CHOICE",
1004            "members": [
1005              {
1006                "type": "CHOICE",
1007                "members": [
1008                  {
1009                    "type": "ALIAS",
1010                    "content": {
1011                      "type": "SYMBOL",
1012                      "name": "preproc_else_in_field_declaration_list"
1013                    },
1014                    "named": true,
1015                    "value": "preproc_else"
1016                  },
1017                  {
1018                    "type": "ALIAS",
1019                    "content": {
1020                      "type": "SYMBOL",
1021                      "name": "preproc_elif_in_field_declaration_list"
1022                    },
1023                    "named": true,
1024                    "value": "preproc_elif"
1025                  }
1026                ]
1027              },
1028              {
1029                "type": "BLANK"
1030              }
1031            ]
1032          }
1033        }
1034      ]
1035    },
1036    "preproc_arg": {
1037      "type": "TOKEN",
1038      "content": {
1039        "type": "PREC",
1040        "value": -1,
1041        "content": {
1042          "type": "PATTERN",
1043          "value": "\\S([^/\\n]|\\/[^*]|\\\\\\r?\\n)*"
1044        }
1045      }
1046    },
1047    "preproc_directive": {
1048      "type": "PATTERN",
1049      "value": "#[ \\t]*[a-zA-Z0-9]\\w*"
1050    },
1051    "_preproc_expression": {
1052      "type": "CHOICE",
1053      "members": [
1054        {
1055          "type": "SYMBOL",
1056          "name": "identifier"
1057        },
1058        {
1059          "type": "ALIAS",
1060          "content": {
1061            "type": "SYMBOL",
1062            "name": "preproc_call_expression"
1063          },
1064          "named": true,
1065          "value": "call_expression"
1066        },
1067        {
1068          "type": "SYMBOL",
1069          "name": "number_literal"
1070        },
1071        {
1072          "type": "SYMBOL",
1073          "name": "char_literal"
1074        },
1075        {
1076          "type": "SYMBOL",
1077          "name": "preproc_defined"
1078        },
1079        {
1080          "type": "ALIAS",
1081          "content": {
1082            "type": "SYMBOL",
1083            "name": "preproc_unary_expression"
1084          },
1085          "named": true,
1086          "value": "unary_expression"
1087        },
1088        {
1089          "type": "ALIAS",
1090          "content": {
1091            "type": "SYMBOL",
1092            "name": "preproc_binary_expression"
1093          },
1094          "named": true,
1095          "value": "binary_expression"
1096        },
1097        {
1098          "type": "ALIAS",
1099          "content": {
1100            "type": "SYMBOL",
1101            "name": "preproc_parenthesized_expression"
1102          },
1103          "named": true,
1104          "value": "parenthesized_expression"
1105        }
1106      ]
1107    },
1108    "preproc_parenthesized_expression": {
1109      "type": "SEQ",
1110      "members": [
1111        {
1112          "type": "STRING",
1113          "value": "("
1114        },
1115        {
1116          "type": "SYMBOL",
1117          "name": "_preproc_expression"
1118        },
1119        {
1120          "type": "STRING",
1121          "value": ")"
1122        }
1123      ]
1124    },
1125    "preproc_defined": {
1126      "type": "CHOICE",
1127      "members": [
1128        {
1129          "type": "PREC",
1130          "value": 15,
1131          "content": {
1132            "type": "SEQ",
1133            "members": [
1134              {
1135                "type": "STRING",
1136                "value": "defined"
1137              },
1138              {
1139                "type": "STRING",
1140                "value": "("
1141              },
1142              {
1143                "type": "SYMBOL",
1144                "name": "identifier"
1145              },
1146              {
1147                "type": "STRING",
1148                "value": ")"
1149              }
1150            ]
1151          }
1152        },
1153        {
1154          "type": "SEQ",
1155          "members": [
1156            {
1157              "type": "STRING",
1158              "value": "defined"
1159            },
1160            {
1161              "type": "SYMBOL",
1162              "name": "identifier"
1163            }
1164          ]
1165        }
1166      ]
1167    },
1168    "preproc_unary_expression": {
1169      "type": "PREC_LEFT",
1170      "value": 14,
1171      "content": {
1172        "type": "SEQ",
1173        "members": [
1174          {
1175            "type": "FIELD",
1176            "name": "operator",
1177            "content": {
1178              "type": "CHOICE",
1179              "members": [
1180                {
1181                  "type": "STRING",
1182                  "value": "!"
1183                },
1184                {
1185                  "type": "STRING",
1186                  "value": "~"
1187                },
1188                {
1189                  "type": "STRING",
1190                  "value": "-"
1191                },
1192                {
1193                  "type": "STRING",
1194                  "value": "+"
1195                }
1196              ]
1197            }
1198          },
1199          {
1200            "type": "FIELD",
1201            "name": "argument",
1202            "content": {
1203              "type": "SYMBOL",
1204              "name": "_preproc_expression"
1205            }
1206          }
1207        ]
1208      }
1209    },
1210    "preproc_call_expression": {
1211      "type": "PREC",
1212      "value": 15,
1213      "content": {
1214        "type": "SEQ",
1215        "members": [
1216          {
1217            "type": "FIELD",
1218            "name": "function",
1219            "content": {
1220              "type": "SYMBOL",
1221              "name": "identifier"
1222            }
1223          },
1224          {
1225            "type": "FIELD",
1226            "name": "arguments",
1227            "content": {
1228              "type": "ALIAS",
1229              "content": {
1230                "type": "SYMBOL",
1231                "name": "preproc_argument_list"
1232              },
1233              "named": true,
1234              "value": "argument_list"
1235            }
1236          }
1237        ]
1238      }
1239    },
1240    "preproc_argument_list": {
1241      "type": "SEQ",
1242      "members": [
1243        {
1244          "type": "STRING",
1245          "value": "("
1246        },
1247        {
1248          "type": "CHOICE",
1249          "members": [
1250            {
1251              "type": "SEQ",
1252              "members": [
1253                {
1254                  "type": "SYMBOL",
1255                  "name": "_preproc_expression"
1256                },
1257                {
1258                  "type": "REPEAT",
1259                  "content": {
1260                    "type": "SEQ",
1261                    "members": [
1262                      {
1263                        "type": "STRING",
1264                        "value": ","
1265                      },
1266                      {
1267                        "type": "SYMBOL",
1268                        "name": "_preproc_expression"
1269                      }
1270                    ]
1271                  }
1272                }
1273              ]
1274            },
1275            {
1276              "type": "BLANK"
1277            }
1278          ]
1279        },
1280        {
1281          "type": "STRING",
1282          "value": ")"
1283        }
1284      ]
1285    },
1286    "preproc_binary_expression": {
1287      "type": "CHOICE",
1288      "members": [
1289        {
1290          "type": "PREC_LEFT",
1291          "value": 10,
1292          "content": {
1293            "type": "SEQ",
1294            "members": [
1295              {
1296                "type": "FIELD",
1297                "name": "left",
1298                "content": {
1299                  "type": "SYMBOL",
1300                  "name": "_preproc_expression"
1301                }
1302              },
1303              {
1304                "type": "FIELD",
1305                "name": "operator",
1306                "content": {
1307                  "type": "STRING",
1308                  "value": "+"
1309                }
1310              },
1311              {
1312                "type": "FIELD",
1313                "name": "right",
1314                "content": {
1315                  "type": "SYMBOL",
1316                  "name": "_preproc_expression"
1317                }
1318              }
1319            ]
1320          }
1321        },
1322        {
1323          "type": "PREC_LEFT",
1324          "value": 10,
1325          "content": {
1326            "type": "SEQ",
1327            "members": [
1328              {
1329                "type": "FIELD",
1330                "name": "left",
1331                "content": {
1332                  "type": "SYMBOL",
1333                  "name": "_preproc_expression"
1334                }
1335              },
1336              {
1337                "type": "FIELD",
1338                "name": "operator",
1339                "content": {
1340                  "type": "STRING",
1341                  "value": "-"
1342                }
1343              },
1344              {
1345                "type": "FIELD",
1346                "name": "right",
1347                "content": {
1348                  "type": "SYMBOL",
1349                  "name": "_preproc_expression"
1350                }
1351              }
1352            ]
1353          }
1354        },
1355        {
1356          "type": "PREC_LEFT",
1357          "value": 11,
1358          "content": {
1359            "type": "SEQ",
1360            "members": [
1361              {
1362                "type": "FIELD",
1363                "name": "left",
1364                "content": {
1365                  "type": "SYMBOL",
1366                  "name": "_preproc_expression"
1367                }
1368              },
1369              {
1370                "type": "FIELD",
1371                "name": "operator",
1372                "content": {
1373                  "type": "STRING",
1374                  "value": "*"
1375                }
1376              },
1377              {
1378                "type": "FIELD",
1379                "name": "right",
1380                "content": {
1381                  "type": "SYMBOL",
1382                  "name": "_preproc_expression"
1383                }
1384              }
1385            ]
1386          }
1387        },
1388        {
1389          "type": "PREC_LEFT",
1390          "value": 11,
1391          "content": {
1392            "type": "SEQ",
1393            "members": [
1394              {
1395                "type": "FIELD",
1396                "name": "left",
1397                "content": {
1398                  "type": "SYMBOL",
1399                  "name": "_preproc_expression"
1400                }
1401              },
1402              {
1403                "type": "FIELD",
1404                "name": "operator",
1405                "content": {
1406                  "type": "STRING",
1407                  "value": "/"
1408                }
1409              },
1410              {
1411                "type": "FIELD",
1412                "name": "right",
1413                "content": {
1414                  "type": "SYMBOL",
1415                  "name": "_preproc_expression"
1416                }
1417              }
1418            ]
1419          }
1420        },
1421        {
1422          "type": "PREC_LEFT",
1423          "value": 11,
1424          "content": {
1425            "type": "SEQ",
1426            "members": [
1427              {
1428                "type": "FIELD",
1429                "name": "left",
1430                "content": {
1431                  "type": "SYMBOL",
1432                  "name": "_preproc_expression"
1433                }
1434              },
1435              {
1436                "type": "FIELD",
1437                "name": "operator",
1438                "content": {
1439                  "type": "STRING",
1440                  "value": "%"
1441                }
1442              },
1443              {
1444                "type": "FIELD",
1445                "name": "right",
1446                "content": {
1447                  "type": "SYMBOL",
1448                  "name": "_preproc_expression"
1449                }
1450              }
1451            ]
1452          }
1453        },
1454        {
1455          "type": "PREC_LEFT",
1456          "value": 1,
1457          "content": {
1458            "type": "SEQ",
1459            "members": [
1460              {
1461                "type": "FIELD",
1462                "name": "left",
1463                "content": {
1464                  "type": "SYMBOL",
1465                  "name": "_preproc_expression"
1466                }
1467              },
1468              {
1469                "type": "FIELD",
1470                "name": "operator",
1471                "content": {
1472                  "type": "STRING",
1473                  "value": "||"
1474                }
1475              },
1476              {
1477                "type": "FIELD",
1478                "name": "right",
1479                "content": {
1480                  "type": "SYMBOL",
1481                  "name": "_preproc_expression"
1482                }
1483              }
1484            ]
1485          }
1486        },
1487        {
1488          "type": "PREC_LEFT",
1489          "value": 2,
1490          "content": {
1491            "type": "SEQ",
1492            "members": [
1493              {
1494                "type": "FIELD",
1495                "name": "left",
1496                "content": {
1497                  "type": "SYMBOL",
1498                  "name": "_preproc_expression"
1499                }
1500              },
1501              {
1502                "type": "FIELD",
1503                "name": "operator",
1504                "content": {
1505                  "type": "STRING",
1506                  "value": "&&"
1507                }
1508              },
1509              {
1510                "type": "FIELD",
1511                "name": "right",
1512                "content": {
1513                  "type": "SYMBOL",
1514                  "name": "_preproc_expression"
1515                }
1516              }
1517            ]
1518          }
1519        },
1520        {
1521          "type": "PREC_LEFT",
1522          "value": 3,
1523          "content": {
1524            "type": "SEQ",
1525            "members": [
1526              {
1527                "type": "FIELD",
1528                "name": "left",
1529                "content": {
1530                  "type": "SYMBOL",
1531                  "name": "_preproc_expression"
1532                }
1533              },
1534              {
1535                "type": "FIELD",
1536                "name": "operator",
1537                "content": {
1538                  "type": "STRING",
1539                  "value": "|"
1540                }
1541              },
1542              {
1543                "type": "FIELD",
1544                "name": "right",
1545                "content": {
1546                  "type": "SYMBOL",
1547                  "name": "_preproc_expression"
1548                }
1549              }
1550            ]
1551          }
1552        },
1553        {
1554          "type": "PREC_LEFT",
1555          "value": 4,
1556          "content": {
1557            "type": "SEQ",
1558            "members": [
1559              {
1560                "type": "FIELD",
1561                "name": "left",
1562                "content": {
1563                  "type": "SYMBOL",
1564                  "name": "_preproc_expression"
1565                }
1566              },
1567              {
1568                "type": "FIELD",
1569                "name": "operator",
1570                "content": {
1571                  "type": "STRING",
1572                  "value": "^"
1573                }
1574              },
1575              {
1576                "type": "FIELD",
1577                "name": "right",
1578                "content": {
1579                  "type": "SYMBOL",
1580                  "name": "_preproc_expression"
1581                }
1582              }
1583            ]
1584          }
1585        },
1586        {
1587          "type": "PREC_LEFT",
1588          "value": 5,
1589          "content": {
1590            "type": "SEQ",
1591            "members": [
1592              {
1593                "type": "FIELD",
1594                "name": "left",
1595                "content": {
1596                  "type": "SYMBOL",
1597                  "name": "_preproc_expression"
1598                }
1599              },
1600              {
1601                "type": "FIELD",
1602                "name": "operator",
1603                "content": {
1604                  "type": "STRING",
1605                  "value": "&"
1606                }
1607              },
1608              {
1609                "type": "FIELD",
1610                "name": "right",
1611                "content": {
1612                  "type": "SYMBOL",
1613                  "name": "_preproc_expression"
1614                }
1615              }
1616            ]
1617          }
1618        },
1619        {
1620          "type": "PREC_LEFT",
1621          "value": 6,
1622          "content": {
1623            "type": "SEQ",
1624            "members": [
1625              {
1626                "type": "FIELD",
1627                "name": "left",
1628                "content": {
1629                  "type": "SYMBOL",
1630                  "name": "_preproc_expression"
1631                }
1632              },
1633              {
1634                "type": "FIELD",
1635                "name": "operator",
1636                "content": {
1637                  "type": "STRING",
1638                  "value": "=="
1639                }
1640              },
1641              {
1642                "type": "FIELD",
1643                "name": "right",
1644                "content": {
1645                  "type": "SYMBOL",
1646                  "name": "_preproc_expression"
1647                }
1648              }
1649            ]
1650          }
1651        },
1652        {
1653          "type": "PREC_LEFT",
1654          "value": 6,
1655          "content": {
1656            "type": "SEQ",
1657            "members": [
1658              {
1659                "type": "FIELD",
1660                "name": "left",
1661                "content": {
1662                  "type": "SYMBOL",
1663                  "name": "_preproc_expression"
1664                }
1665              },
1666              {
1667                "type": "FIELD",
1668                "name": "operator",
1669                "content": {
1670                  "type": "STRING",
1671                  "value": "!="
1672                }
1673              },
1674              {
1675                "type": "FIELD",
1676                "name": "right",
1677                "content": {
1678                  "type": "SYMBOL",
1679                  "name": "_preproc_expression"
1680                }
1681              }
1682            ]
1683          }
1684        },
1685        {
1686          "type": "PREC_LEFT",
1687          "value": 7,
1688          "content": {
1689            "type": "SEQ",
1690            "members": [
1691              {
1692                "type": "FIELD",
1693                "name": "left",
1694                "content": {
1695                  "type": "SYMBOL",
1696                  "name": "_preproc_expression"
1697                }
1698              },
1699              {
1700                "type": "FIELD",
1701                "name": "operator",
1702                "content": {
1703                  "type": "STRING",
1704                  "value": ">"
1705                }
1706              },
1707              {
1708                "type": "FIELD",
1709                "name": "right",
1710                "content": {
1711                  "type": "SYMBOL",
1712                  "name": "_preproc_expression"
1713                }
1714              }
1715            ]
1716          }
1717        },
1718        {
1719          "type": "PREC_LEFT",
1720          "value": 7,
1721          "content": {
1722            "type": "SEQ",
1723            "members": [
1724              {
1725                "type": "FIELD",
1726                "name": "left",
1727                "content": {
1728                  "type": "SYMBOL",
1729                  "name": "_preproc_expression"
1730                }
1731              },
1732              {
1733                "type": "FIELD",
1734                "name": "operator",
1735                "content": {
1736                  "type": "STRING",
1737                  "value": ">="
1738                }
1739              },
1740              {
1741                "type": "FIELD",
1742                "name": "right",
1743                "content": {
1744                  "type": "SYMBOL",
1745                  "name": "_preproc_expression"
1746                }
1747              }
1748            ]
1749          }
1750        },
1751        {
1752          "type": "PREC_LEFT",
1753          "value": 7,
1754          "content": {
1755            "type": "SEQ",
1756            "members": [
1757              {
1758                "type": "FIELD",
1759                "name": "left",
1760                "content": {
1761                  "type": "SYMBOL",
1762                  "name": "_preproc_expression"
1763                }
1764              },
1765              {
1766                "type": "FIELD",
1767                "name": "operator",
1768                "content": {
1769                  "type": "STRING",
1770                  "value": "<="
1771                }
1772              },
1773              {
1774                "type": "FIELD",
1775                "name": "right",
1776                "content": {
1777                  "type": "SYMBOL",
1778                  "name": "_preproc_expression"
1779                }
1780              }
1781            ]
1782          }
1783        },
1784        {
1785          "type": "PREC_LEFT",
1786          "value": 7,
1787          "content": {
1788            "type": "SEQ",
1789            "members": [
1790              {
1791                "type": "FIELD",
1792                "name": "left",
1793                "content": {
1794                  "type": "SYMBOL",
1795                  "name": "_preproc_expression"
1796                }
1797              },
1798              {
1799                "type": "FIELD",
1800                "name": "operator",
1801                "content": {
1802                  "type": "STRING",
1803                  "value": "<"
1804                }
1805              },
1806              {
1807                "type": "FIELD",
1808                "name": "right",
1809                "content": {
1810                  "type": "SYMBOL",
1811                  "name": "_preproc_expression"
1812                }
1813              }
1814            ]
1815          }
1816        },
1817        {
1818          "type": "PREC_LEFT",
1819          "value": 9,
1820          "content": {
1821            "type": "SEQ",
1822            "members": [
1823              {
1824                "type": "FIELD",
1825                "name": "left",
1826                "content": {
1827                  "type": "SYMBOL",
1828                  "name": "_preproc_expression"
1829                }
1830              },
1831              {
1832                "type": "FIELD",
1833                "name": "operator",
1834                "content": {
1835                  "type": "STRING",
1836                  "value": "<<"
1837                }
1838              },
1839              {
1840                "type": "FIELD",
1841                "name": "right",
1842                "content": {
1843                  "type": "SYMBOL",
1844                  "name": "_preproc_expression"
1845                }
1846              }
1847            ]
1848          }
1849        },
1850        {
1851          "type": "PREC_LEFT",
1852          "value": 9,
1853          "content": {
1854            "type": "SEQ",
1855            "members": [
1856              {
1857                "type": "FIELD",
1858                "name": "left",
1859                "content": {
1860                  "type": "SYMBOL",
1861                  "name": "_preproc_expression"
1862                }
1863              },
1864              {
1865                "type": "FIELD",
1866                "name": "operator",
1867                "content": {
1868                  "type": "STRING",
1869                  "value": ">>"
1870                }
1871              },
1872              {
1873                "type": "FIELD",
1874                "name": "right",
1875                "content": {
1876                  "type": "SYMBOL",
1877                  "name": "_preproc_expression"
1878                }
1879              }
1880            ]
1881          }
1882        }
1883      ]
1884    },
1885    "function_definition": {
1886      "type": "SEQ",
1887      "members": [
1888        {
1889          "type": "CHOICE",
1890          "members": [
1891            {
1892              "type": "SYMBOL",
1893              "name": "ms_call_modifier"
1894            },
1895            {
1896              "type": "BLANK"
1897            }
1898          ]
1899        },
1900        {
1901          "type": "SYMBOL",
1902          "name": "_declaration_specifiers"
1903        },
1904        {
1905          "type": "FIELD",
1906          "name": "declarator",
1907          "content": {
1908            "type": "SYMBOL",
1909            "name": "_declarator"
1910          }
1911        },
1912        {
1913          "type": "FIELD",
1914          "name": "body",
1915          "content": {
1916            "type": "SYMBOL",
1917            "name": "compound_statement"
1918          }
1919        }
1920      ]
1921    },
1922    "_old_style_function_definition": {
1923      "type": "SEQ",
1924      "members": [
1925        {
1926          "type": "CHOICE",
1927          "members": [
1928            {
1929              "type": "SYMBOL",
1930              "name": "ms_call_modifier"
1931            },
1932            {
1933              "type": "BLANK"
1934            }
1935          ]
1936        },
1937        {
1938          "type": "SYMBOL",
1939          "name": "_declaration_specifiers"
1940        },
1941        {
1942          "type": "FIELD",
1943          "name": "declarator",
1944          "content": {
1945            "type": "ALIAS",
1946            "content": {
1947              "type": "SYMBOL",
1948              "name": "_old_style_function_declarator"
1949            },
1950            "named": true,
1951            "value": "function_declarator"
1952          }
1953        },
1954        {
1955          "type": "REPEAT",
1956          "content": {
1957            "type": "SYMBOL",
1958            "name": "declaration"
1959          }
1960        },
1961        {
1962          "type": "FIELD",
1963          "name": "body",
1964          "content": {
1965            "type": "SYMBOL",
1966            "name": "compound_statement"
1967          }
1968        }
1969      ]
1970    },
1971    "declaration": {
1972      "type": "SEQ",
1973      "members": [
1974        {
1975          "type": "SYMBOL",
1976          "name": "_declaration_specifiers"
1977        },
1978        {
1979          "type": "SYMBOL",
1980          "name": "_declaration_declarator"
1981        },
1982        {
1983          "type": "STRING",
1984          "value": ";"
1985        }
1986      ]
1987    },
1988    "_declaration_declarator": {
1989      "type": "SEQ",
1990      "members": [
1991        {
1992          "type": "FIELD",
1993          "name": "declarator",
1994          "content": {
1995            "type": "CHOICE",
1996            "members": [
1997              {
1998                "type": "SEQ",
1999                "members": [
2000                  {
2001                    "type": "SYMBOL",
2002                    "name": "_declarator"
2003                  },
2004                  {
2005                    "type": "CHOICE",
2006                    "members": [
2007                      {
2008                        "type": "SYMBOL",
2009                        "name": "gnu_asm_expression"
2010                      },
2011                      {
2012                        "type": "BLANK"
2013                      }
2014                    ]
2015                  }
2016                ]
2017              },
2018              {
2019                "type": "SYMBOL",
2020                "name": "init_declarator"
2021              }
2022            ]
2023          }
2024        },
2025        {
2026          "type": "REPEAT",
2027          "content": {
2028            "type": "SEQ",
2029            "members": [
2030              {
2031                "type": "STRING",
2032                "value": ","
2033              },
2034              {
2035                "type": "FIELD",
2036                "name": "declarator",
2037                "content": {
2038                  "type": "CHOICE",
2039                  "members": [
2040                    {
2041                      "type": "SEQ",
2042                      "members": [
2043                        {
2044                          "type": "SYMBOL",
2045                          "name": "_declarator"
2046                        },
2047                        {
2048                          "type": "CHOICE",
2049                          "members": [
2050                            {
2051                              "type": "SYMBOL",
2052                              "name": "gnu_asm_expression"
2053                            },
2054                            {
2055                              "type": "BLANK"
2056                            }
2057                          ]
2058                        }
2059                      ]
2060                    },
2061                    {
2062                      "type": "SYMBOL",
2063                      "name": "init_declarator"
2064                    }
2065                  ]
2066                }
2067              }
2068            ]
2069          }
2070        }
2071      ]
2072    },
2073    "type_definition": {
2074      "type": "SEQ",
2075      "members": [
2076        {
2077          "type": "CHOICE",
2078          "members": [
2079            {
2080              "type": "STRING",
2081              "value": "__extension__"
2082            },
2083            {
2084              "type": "BLANK"
2085            }
2086          ]
2087        },
2088        {
2089          "type": "STRING",
2090          "value": "typedef"
2091        },
2092        {
2093          "type": "SYMBOL",
2094          "name": "_type_definition_type"
2095        },
2096        {
2097          "type": "SYMBOL",
2098          "name": "_type_definition_declarators"
2099        },
2100        {
2101          "type": "REPEAT",
2102          "content": {
2103            "type": "SYMBOL",
2104            "name": "attribute_specifier"
2105          }
2106        },
2107        {
2108          "type": "STRING",
2109          "value": ";"
2110        }
2111      ]
2112    },
2113    "_type_definition_type": {
2114      "type": "SEQ",
2115      "members": [
2116        {
2117          "type": "REPEAT",
2118          "content": {
2119            "type": "SYMBOL",
2120            "name": "type_qualifier"
2121          }
2122        },
2123        {
2124          "type": "FIELD",
2125          "name": "type",
2126          "content": {
2127            "type": "SYMBOL",
2128            "name": "_type_specifier"
2129          }
2130        },
2131        {
2132          "type": "REPEAT",
2133          "content": {
2134            "type": "SYMBOL",
2135            "name": "type_qualifier"
2136          }
2137        }
2138      ]
2139    },
2140    "_type_definition_declarators": {
2141      "type": "SEQ",
2142      "members": [
2143        {
2144          "type": "FIELD",
2145          "name": "declarator",
2146          "content": {
2147            "type": "SYMBOL",
2148            "name": "_type_declarator"
2149          }
2150        },
2151        {
2152          "type": "REPEAT",
2153          "content": {
2154            "type": "SEQ",
2155            "members": [
2156              {
2157                "type": "STRING",
2158                "value": ","
2159              },
2160              {
2161                "type": "FIELD",
2162                "name": "declarator",
2163                "content": {
2164                  "type": "SYMBOL",
2165                  "name": "_type_declarator"
2166                }
2167              }
2168            ]
2169          }
2170        }
2171      ]
2172    },
2173    "_declaration_modifiers": {
2174      "type": "CHOICE",
2175      "members": [
2176        {
2177          "type": "SYMBOL",
2178          "name": "storage_class_specifier"
2179        },
2180        {
2181          "type": "SYMBOL",
2182          "name": "type_qualifier"
2183        },
2184        {
2185          "type": "SYMBOL",
2186          "name": "attribute_specifier"
2187        },
2188        {
2189          "type": "SYMBOL",
2190          "name": "attribute_declaration"
2191        },
2192        {
2193          "type": "SYMBOL",
2194          "name": "ms_declspec_modifier"
2195        }
2196      ]
2197    },
2198    "_declaration_specifiers": {
2199      "type": "PREC_RIGHT",
2200      "value": 0,
2201      "content": {
2202        "type": "SEQ",
2203        "members": [
2204          {
2205            "type": "REPEAT",
2206            "content": {
2207              "type": "SYMBOL",
2208              "name": "_declaration_modifiers"
2209            }
2210          },
2211          {
2212            "type": "FIELD",
2213            "name": "type",
2214            "content": {
2215              "type": "SYMBOL",
2216              "name": "_type_specifier"
2217            }
2218          },
2219          {
2220            "type": "REPEAT",
2221            "content": {
2222              "type": "SYMBOL",
2223              "name": "_declaration_modifiers"
2224            }
2225          }
2226        ]
2227      }
2228    },
2229    "linkage_specification": {
2230      "type": "SEQ",
2231      "members": [
2232        {
2233          "type": "STRING",
2234          "value": "extern"
2235        },
2236        {
2237          "type": "FIELD",
2238          "name": "value",
2239          "content": {
2240            "type": "SYMBOL",
2241            "name": "string_literal"
2242          }
2243        },
2244        {
2245          "type": "FIELD",
2246          "name": "body",
2247          "content": {
2248            "type": "CHOICE",
2249            "members": [
2250              {
2251                "type": "SYMBOL",
2252                "name": "function_definition"
2253              },
2254              {
2255                "type": "SYMBOL",
2256                "name": "declaration"
2257              },
2258              {
2259                "type": "SYMBOL",
2260                "name": "declaration_list"
2261              }
2262            ]
2263          }
2264        }
2265      ]
2266    },
2267    "attribute_specifier": {
2268      "type": "SEQ",
2269      "members": [
2270        {
2271          "type": "STRING",
2272          "value": "__attribute__"
2273        },
2274        {
2275          "type": "STRING",
2276          "value": "("
2277        },
2278        {
2279          "type": "SYMBOL",
2280          "name": "argument_list"
2281        },
2282        {
2283          "type": "STRING",
2284          "value": ")"
2285        }
2286      ]
2287    },
2288    "attribute": {
2289      "type": "SEQ",
2290      "members": [
2291        {
2292          "type": "CHOICE",
2293          "members": [
2294            {
2295              "type": "SEQ",
2296              "members": [
2297                {
2298                  "type": "FIELD",
2299                  "name": "prefix",
2300                  "content": {
2301                    "type": "SYMBOL",
2302                    "name": "identifier"
2303                  }
2304                },
2305                {
2306                  "type": "STRING",
2307                  "value": "::"
2308                }
2309              ]
2310            },
2311            {
2312              "type": "BLANK"
2313            }
2314          ]
2315        },
2316        {
2317          "type": "FIELD",
2318          "name": "name",
2319          "content": {
2320            "type": "SYMBOL",
2321            "name": "identifier"
2322          }
2323        },
2324        {
2325          "type": "CHOICE",
2326          "members": [
2327            {
2328              "type": "SYMBOL",
2329              "name": "argument_list"
2330            },
2331            {
2332              "type": "BLANK"
2333            }
2334          ]
2335        }
2336      ]
2337    },
2338    "attribute_declaration": {
2339      "type": "SEQ",
2340      "members": [
2341        {
2342          "type": "STRING",
2343          "value": "[["
2344        },
2345        {
2346          "type": "SEQ",
2347          "members": [
2348            {
2349              "type": "SYMBOL",
2350              "name": "attribute"
2351            },
2352            {
2353              "type": "REPEAT",
2354              "content": {
2355                "type": "SEQ",
2356                "members": [
2357                  {
2358                    "type": "STRING",
2359                    "value": ","
2360                  },
2361                  {
2362                    "type": "SYMBOL",
2363                    "name": "attribute"
2364                  }
2365                ]
2366              }
2367            }
2368          ]
2369        },
2370        {
2371          "type": "STRING",
2372          "value": "]]"
2373        }
2374      ]
2375    },
2376    "ms_declspec_modifier": {
2377      "type": "SEQ",
2378      "members": [
2379        {
2380          "type": "STRING",
2381          "value": "__declspec"
2382        },
2383        {
2384          "type": "STRING",
2385          "value": "("
2386        },
2387        {
2388          "type": "SYMBOL",
2389          "name": "identifier"
2390        },
2391        {
2392          "type": "STRING",
2393          "value": ")"
2394        }
2395      ]
2396    },
2397    "ms_based_modifier": {
2398      "type": "SEQ",
2399      "members": [
2400        {
2401          "type": "STRING",
2402          "value": "__based"
2403        },
2404        {
2405          "type": "SYMBOL",
2406          "name": "argument_list"
2407        }
2408      ]
2409    },
2410    "ms_call_modifier": {
2411      "type": "CHOICE",
2412      "members": [
2413        {
2414          "type": "STRING",
2415          "value": "__cdecl"
2416        },
2417        {
2418          "type": "STRING",
2419          "value": "__clrcall"
2420        },
2421        {
2422          "type": "STRING",
2423          "value": "__stdcall"
2424        },
2425        {
2426          "type": "STRING",
2427          "value": "__fastcall"
2428        },
2429        {
2430          "type": "STRING",
2431          "value": "__thiscall"
2432        },
2433        {
2434          "type": "STRING",
2435          "value": "__vectorcall"
2436        }
2437      ]
2438    },
2439    "ms_restrict_modifier": {
2440      "type": "STRING",
2441      "value": "__restrict"
2442    },
2443    "ms_unsigned_ptr_modifier": {
2444      "type": "STRING",
2445      "value": "__uptr"
2446    },
2447    "ms_signed_ptr_modifier": {
2448      "type": "STRING",
2449      "value": "__sptr"
2450    },
2451    "ms_unaligned_ptr_modifier": {
2452      "type": "CHOICE",
2453      "members": [
2454        {
2455          "type": "STRING",
2456          "value": "_unaligned"
2457        },
2458        {
2459          "type": "STRING",
2460          "value": "__unaligned"
2461        }
2462      ]
2463    },
2464    "ms_pointer_modifier": {
2465      "type": "CHOICE",
2466      "members": [
2467        {
2468          "type": "SYMBOL",
2469          "name": "ms_unaligned_ptr_modifier"
2470        },
2471        {
2472          "type": "SYMBOL",
2473          "name": "ms_restrict_modifier"
2474        },
2475        {
2476          "type": "SYMBOL",
2477          "name": "ms_unsigned_ptr_modifier"
2478        },
2479        {
2480          "type": "SYMBOL",
2481          "name": "ms_signed_ptr_modifier"
2482        }
2483      ]
2484    },
2485    "declaration_list": {
2486      "type": "SEQ",
2487      "members": [
2488        {
2489          "type": "STRING",
2490          "value": "{"
2491        },
2492        {
2493          "type": "REPEAT",
2494          "content": {
2495            "type": "SYMBOL",
2496            "name": "_block_item"
2497          }
2498        },
2499        {
2500          "type": "STRING",
2501          "value": "}"
2502        }
2503      ]
2504    },
2505    "_declarator": {
2506      "type": "CHOICE",
2507      "members": [
2508        {
2509          "type": "SYMBOL",
2510          "name": "attributed_declarator"
2511        },
2512        {
2513          "type": "SYMBOL",
2514          "name": "pointer_declarator"
2515        },
2516        {
2517          "type": "SYMBOL",
2518          "name": "function_declarator"
2519        },
2520        {
2521          "type": "SYMBOL",
2522          "name": "array_declarator"
2523        },
2524        {
2525          "type": "SYMBOL",
2526          "name": "parenthesized_declarator"
2527        },
2528        {
2529          "type": "SYMBOL",
2530          "name": "identifier"
2531        }
2532      ]
2533    },
2534    "_field_declarator": {
2535      "type": "CHOICE",
2536      "members": [
2537        {
2538          "type": "ALIAS",
2539          "content": {
2540            "type": "SYMBOL",
2541            "name": "attributed_field_declarator"
2542          },
2543          "named": true,
2544          "value": "attributed_declarator"
2545        },
2546        {
2547          "type": "ALIAS",
2548          "content": {
2549            "type": "SYMBOL",
2550            "name": "pointer_field_declarator"
2551          },
2552          "named": true,
2553          "value": "pointer_declarator"
2554        },
2555        {
2556          "type": "ALIAS",
2557          "content": {
2558            "type": "SYMBOL",
2559            "name": "function_field_declarator"
2560          },
2561          "named": true,
2562          "value": "function_declarator"
2563        },
2564        {
2565          "type": "ALIAS",
2566          "content": {
2567            "type": "SYMBOL",
2568            "name": "array_field_declarator"
2569          },
2570          "named": true,
2571          "value": "array_declarator"
2572        },
2573        {
2574          "type": "ALIAS",
2575          "content": {
2576            "type": "SYMBOL",
2577            "name": "parenthesized_field_declarator"
2578          },
2579          "named": true,
2580          "value": "parenthesized_declarator"
2581        },
2582        {
2583          "type": "SYMBOL",
2584          "name": "_field_identifier"
2585        }
2586      ]
2587    },
2588    "_type_declarator": {
2589      "type": "CHOICE",
2590      "members": [
2591        {
2592          "type": "ALIAS",
2593          "content": {
2594            "type": "SYMBOL",
2595            "name": "attributed_type_declarator"
2596          },
2597          "named": true,
2598          "value": "attributed_declarator"
2599        },
2600        {
2601          "type": "ALIAS",
2602          "content": {
2603            "type": "SYMBOL",
2604            "name": "pointer_type_declarator"
2605          },
2606          "named": true,
2607          "value": "pointer_declarator"
2608        },
2609        {
2610          "type": "ALIAS",
2611          "content": {
2612            "type": "SYMBOL",
2613            "name": "function_type_declarator"
2614          },
2615          "named": true,
2616          "value": "function_declarator"
2617        },
2618        {
2619          "type": "ALIAS",
2620          "content": {
2621            "type": "SYMBOL",
2622            "name": "array_type_declarator"
2623          },
2624          "named": true,
2625          "value": "array_declarator"
2626        },
2627        {
2628          "type": "ALIAS",
2629          "content": {
2630            "type": "SYMBOL",
2631            "name": "parenthesized_type_declarator"
2632          },
2633          "named": true,
2634          "value": "parenthesized_declarator"
2635        },
2636        {
2637          "type": "SYMBOL",
2638          "name": "_type_identifier"
2639        },
2640        {
2641          "type": "ALIAS",
2642          "content": {
2643            "type": "CHOICE",
2644            "members": [
2645              {
2646                "type": "STRING",
2647                "value": "signed"
2648              },
2649              {
2650                "type": "STRING",
2651                "value": "unsigned"
2652              },
2653              {
2654                "type": "STRING",
2655                "value": "long"
2656              },
2657              {
2658                "type": "STRING",
2659                "value": "short"
2660              }
2661            ]
2662          },
2663          "named": true,
2664          "value": "primitive_type"
2665        },
2666        {
2667          "type": "SYMBOL",
2668          "name": "primitive_type"
2669        }
2670      ]
2671    },
2672    "_abstract_declarator": {
2673      "type": "CHOICE",
2674      "members": [
2675        {
2676          "type": "SYMBOL",
2677          "name": "abstract_pointer_declarator"
2678        },
2679        {
2680          "type": "SYMBOL",
2681          "name": "abstract_function_declarator"
2682        },
2683        {
2684          "type": "SYMBOL",
2685          "name": "abstract_array_declarator"
2686        },
2687        {
2688          "type": "SYMBOL",
2689          "name": "abstract_parenthesized_declarator"
2690        }
2691      ]
2692    },
2693    "parenthesized_declarator": {
2694      "type": "PREC_DYNAMIC",
2695      "value": -10,
2696      "content": {
2697        "type": "SEQ",
2698        "members": [
2699          {
2700            "type": "STRING",
2701            "value": "("
2702          },
2703          {
2704            "type": "SYMBOL",
2705            "name": "_declarator"
2706          },
2707          {
2708            "type": "STRING",
2709            "value": ")"
2710          }
2711        ]
2712      }
2713    },
2714    "parenthesized_field_declarator": {
2715      "type": "PREC_DYNAMIC",
2716      "value": -10,
2717      "content": {
2718        "type": "SEQ",
2719        "members": [
2720          {
2721            "type": "STRING",
2722            "value": "("
2723          },
2724          {
2725            "type": "SYMBOL",
2726            "name": "_field_declarator"
2727          },
2728          {
2729            "type": "STRING",
2730            "value": ")"
2731          }
2732        ]
2733      }
2734    },
2735    "parenthesized_type_declarator": {
2736      "type": "PREC_DYNAMIC",
2737      "value": -10,
2738      "content": {
2739        "type": "SEQ",
2740        "members": [
2741          {
2742            "type": "STRING",
2743            "value": "("
2744          },
2745          {
2746            "type": "SYMBOL",
2747            "name": "_type_declarator"
2748          },
2749          {
2750            "type": "STRING",
2751            "value": ")"
2752          }
2753        ]
2754      }
2755    },
2756    "abstract_parenthesized_declarator": {
2757      "type": "PREC",
2758      "value": 1,
2759      "content": {
2760        "type": "SEQ",
2761        "members": [
2762          {
2763            "type": "STRING",
2764            "value": "("
2765          },
2766          {
2767            "type": "SYMBOL",
2768            "name": "_abstract_declarator"
2769          },
2770          {
2771            "type": "STRING",
2772            "value": ")"
2773          }
2774        ]
2775      }
2776    },
2777    "attributed_declarator": {
2778      "type": "PREC_RIGHT",
2779      "value": 0,
2780      "content": {
2781        "type": "SEQ",
2782        "members": [
2783          {
2784            "type": "SYMBOL",
2785            "name": "_declarator"
2786          },
2787          {
2788            "type": "REPEAT1",
2789            "content": {
2790              "type": "SYMBOL",
2791              "name": "attribute_declaration"
2792            }
2793          }
2794        ]
2795      }
2796    },
2797    "attributed_field_declarator": {
2798      "type": "PREC_RIGHT",
2799      "value": 0,
2800      "content": {
2801        "type": "SEQ",
2802        "members": [
2803          {
2804            "type": "SYMBOL",
2805            "name": "_field_declarator"
2806          },
2807          {
2808            "type": "REPEAT1",
2809            "content": {
2810              "type": "SYMBOL",
2811              "name": "attribute_declaration"
2812            }
2813          }
2814        ]
2815      }
2816    },
2817    "attributed_type_declarator": {
2818      "type": "PREC_RIGHT",
2819      "value": 0,
2820      "content": {
2821        "type": "SEQ",
2822        "members": [
2823          {
2824            "type": "SYMBOL",
2825            "name": "_type_declarator"
2826          },
2827          {
2828            "type": "REPEAT1",
2829            "content": {
2830              "type": "SYMBOL",
2831              "name": "attribute_declaration"
2832            }
2833          }
2834        ]
2835      }
2836    },
2837    "pointer_declarator": {
2838      "type": "PREC_DYNAMIC",
2839      "value": 1,
2840      "content": {
2841        "type": "PREC_RIGHT",
2842        "value": 0,
2843        "content": {
2844          "type": "SEQ",
2845          "members": [
2846            {
2847              "type": "CHOICE",
2848              "members": [
2849                {
2850                  "type": "SYMBOL",
2851                  "name": "ms_based_modifier"
2852                },
2853                {
2854                  "type": "BLANK"
2855                }
2856              ]
2857            },
2858            {
2859              "type": "STRING",
2860              "value": "*"
2861            },
2862            {
2863              "type": "REPEAT",
2864              "content": {
2865                "type": "SYMBOL",
2866                "name": "ms_pointer_modifier"
2867              }
2868            },
2869            {
2870              "type": "REPEAT",
2871              "content": {
2872                "type": "SYMBOL",
2873                "name": "type_qualifier"
2874              }
2875            },
2876            {
2877              "type": "FIELD",
2878              "name": "declarator",
2879              "content": {
2880                "type": "SYMBOL",
2881                "name": "_declarator"
2882              }
2883            }
2884          ]
2885        }
2886      }
2887    },
2888    "pointer_field_declarator": {
2889      "type": "PREC_DYNAMIC",
2890      "value": 1,
2891      "content": {
2892        "type": "PREC_RIGHT",
2893        "value": 0,
2894        "content": {
2895          "type": "SEQ",
2896          "members": [
2897            {
2898              "type": "CHOICE",
2899              "members": [
2900                {
2901                  "type": "SYMBOL",
2902                  "name": "ms_based_modifier"
2903                },
2904                {
2905                  "type": "BLANK"
2906                }
2907              ]
2908            },
2909            {
2910              "type": "STRING",
2911              "value": "*"
2912            },
2913            {
2914              "type": "REPEAT",
2915              "content": {
2916                "type": "SYMBOL",
2917                "name": "ms_pointer_modifier"
2918              }
2919            },
2920            {
2921              "type": "REPEAT",
2922              "content": {
2923                "type": "SYMBOL",
2924                "name": "type_qualifier"
2925              }
2926            },
2927            {
2928              "type": "FIELD",
2929              "name": "declarator",
2930              "content": {
2931                "type": "SYMBOL",
2932                "name": "_field_declarator"
2933              }
2934            }
2935          ]
2936        }
2937      }
2938    },
2939    "pointer_type_declarator": {
2940      "type": "PREC_DYNAMIC",
2941      "value": 1,
2942      "content": {
2943        "type": "PREC_RIGHT",
2944        "value": 0,
2945        "content": {
2946          "type": "SEQ",
2947          "members": [
2948            {
2949              "type": "CHOICE",
2950              "members": [
2951                {
2952                  "type": "SYMBOL",
2953                  "name": "ms_based_modifier"
2954                },
2955                {
2956                  "type": "BLANK"
2957                }
2958              ]
2959            },
2960            {
2961              "type": "STRING",
2962              "value": "*"
2963            },
2964            {
2965              "type": "REPEAT",
2966              "content": {
2967                "type": "SYMBOL",
2968                "name": "ms_pointer_modifier"
2969              }
2970            },
2971            {
2972              "type": "REPEAT",
2973              "content": {
2974                "type": "SYMBOL",
2975                "name": "type_qualifier"
2976              }
2977            },
2978            {
2979              "type": "FIELD",
2980              "name": "declarator",
2981              "content": {
2982                "type": "SYMBOL",
2983                "name": "_type_declarator"
2984              }
2985            }
2986          ]
2987        }
2988      }
2989    },
2990    "abstract_pointer_declarator": {
2991      "type": "PREC_DYNAMIC",
2992      "value": 1,
2993      "content": {
2994        "type": "PREC_RIGHT",
2995        "value": 0,
2996        "content": {
2997          "type": "SEQ",
2998          "members": [
2999            {
3000              "type": "STRING",
3001              "value": "*"
3002            },
3003            {
3004              "type": "REPEAT",
3005              "content": {
3006                "type": "SYMBOL",
3007                "name": "type_qualifier"
3008              }
3009            },
3010            {
3011              "type": "FIELD",
3012              "name": "declarator",
3013              "content": {
3014                "type": "CHOICE",
3015                "members": [
3016                  {
3017                    "type": "SYMBOL",
3018                    "name": "_abstract_declarator"
3019                  },
3020                  {
3021                    "type": "BLANK"
3022                  }
3023                ]
3024              }
3025            }
3026          ]
3027        }
3028      }
3029    },
3030    "function_declarator": {
3031      "type": "PREC_RIGHT",
3032      "value": 1,
3033      "content": {
3034        "type": "SEQ",
3035        "members": [
3036          {
3037            "type": "FIELD",
3038            "name": "declarator",
3039            "content": {
3040              "type": "SYMBOL",
3041              "name": "_declarator"
3042            }
3043          },
3044          {
3045            "type": "FIELD",
3046            "name": "parameters",
3047            "content": {
3048              "type": "SYMBOL",
3049              "name": "parameter_list"
3050            }
3051          },
3052          {
3053            "type": "CHOICE",
3054            "members": [
3055              {
3056                "type": "SYMBOL",
3057                "name": "gnu_asm_expression"
3058              },
3059              {
3060                "type": "BLANK"
3061              }
3062            ]
3063          },
3064          {
3065            "type": "REPEAT",
3066            "content": {
3067              "type": "SYMBOL",
3068              "name": "attribute_specifier"
3069            }
3070          }
3071        ]
3072      }
3073    },
3074    "function_field_declarator": {
3075      "type": "PREC",
3076      "value": 1,
3077      "content": {
3078        "type": "SEQ",
3079        "members": [
3080          {
3081            "type": "FIELD",
3082            "name": "declarator",
3083            "content": {
3084              "type": "SYMBOL",
3085              "name": "_field_declarator"
3086            }
3087          },
3088          {
3089            "type": "FIELD",
3090            "name": "parameters",
3091            "content": {
3092              "type": "SYMBOL",
3093              "name": "parameter_list"
3094            }
3095          }
3096        ]
3097      }
3098    },
3099    "function_type_declarator": {
3100      "type": "PREC",
3101      "value": 1,
3102      "content": {
3103        "type": "SEQ",
3104        "members": [
3105          {
3106            "type": "FIELD",
3107            "name": "declarator",
3108            "content": {
3109              "type": "SYMBOL",
3110              "name": "_type_declarator"
3111            }
3112          },
3113          {
3114            "type": "FIELD",
3115            "name": "parameters",
3116            "content": {
3117              "type": "SYMBOL",
3118              "name": "parameter_list"
3119            }
3120          }
3121        ]
3122      }
3123    },
3124    "abstract_function_declarator": {
3125      "type": "PREC",
3126      "value": 1,
3127      "content": {
3128        "type": "SEQ",
3129        "members": [
3130          {
3131            "type": "FIELD",
3132            "name": "declarator",
3133            "content": {
3134              "type": "CHOICE",
3135              "members": [
3136                {
3137                  "type": "SYMBOL",
3138                  "name": "_abstract_declarator"
3139                },
3140                {
3141                  "type": "BLANK"
3142                }
3143              ]
3144            }
3145          },
3146          {
3147            "type": "FIELD",
3148            "name": "parameters",
3149            "content": {
3150              "type": "SYMBOL",
3151              "name": "parameter_list"
3152            }
3153          }
3154        ]
3155      }
3156    },
3157    "_old_style_function_declarator": {
3158      "type": "SEQ",
3159      "members": [
3160        {
3161          "type": "FIELD",
3162          "name": "declarator",
3163          "content": {
3164            "type": "SYMBOL",
3165            "name": "_declarator"
3166          }
3167        },
3168        {
3169          "type": "FIELD",
3170          "name": "parameters",
3171          "content": {
3172            "type": "ALIAS",
3173            "content": {
3174              "type": "SYMBOL",
3175              "name": "_old_style_parameter_list"
3176            },
3177            "named": true,
3178            "value": "parameter_list"
3179          }
3180        }
3181      ]
3182    },
3183    "array_declarator": {
3184      "type": "PREC",
3185      "value": 1,
3186      "content": {
3187        "type": "SEQ",
3188        "members": [
3189          {
3190            "type": "FIELD",
3191            "name": "declarator",
3192            "content": {
3193              "type": "SYMBOL",
3194              "name": "_declarator"
3195            }
3196          },
3197          {
3198            "type": "STRING",
3199            "value": "["
3200          },
3201          {
3202            "type": "REPEAT",
3203            "content": {
3204              "type": "SYMBOL",
3205              "name": "type_qualifier"
3206            }
3207          },
3208          {
3209            "type": "FIELD",
3210            "name": "size",
3211            "content": {
3212              "type": "CHOICE",
3213              "members": [
3214                {
3215                  "type": "CHOICE",
3216                  "members": [
3217                    {
3218                      "type": "SYMBOL",
3219                      "name": "_expression"
3220                    },
3221                    {
3222                      "type": "STRING",
3223                      "value": "*"
3224                    }
3225                  ]
3226                },
3227                {
3228                  "type": "BLANK"
3229                }
3230              ]
3231            }
3232          },
3233          {
3234            "type": "STRING",
3235            "value": "]"
3236          }
3237        ]
3238      }
3239    },
3240    "array_field_declarator": {
3241      "type": "PREC",
3242      "value": 1,
3243      "content": {
3244        "type": "SEQ",
3245        "members": [
3246          {
3247            "type": "FIELD",
3248            "name": "declarator",
3249            "content": {
3250              "type": "SYMBOL",
3251              "name": "_field_declarator"
3252            }
3253          },
3254          {
3255            "type": "STRING",
3256            "value": "["
3257          },
3258          {
3259            "type": "REPEAT",
3260            "content": {
3261              "type": "SYMBOL",
3262              "name": "type_qualifier"
3263            }
3264          },
3265          {
3266            "type": "FIELD",
3267            "name": "size",
3268            "content": {
3269              "type": "CHOICE",
3270              "members": [
3271                {
3272                  "type": "CHOICE",
3273                  "members": [
3274                    {
3275                      "type": "SYMBOL",
3276                      "name": "_expression"
3277                    },
3278                    {
3279                      "type": "STRING",
3280                      "value": "*"
3281                    }
3282                  ]
3283                },
3284                {
3285                  "type": "BLANK"
3286                }
3287              ]
3288            }
3289          },
3290          {
3291            "type": "STRING",
3292            "value": "]"
3293          }
3294        ]
3295      }
3296    },
3297    "array_type_declarator": {
3298      "type": "PREC",
3299      "value": 1,
3300      "content": {
3301        "type": "SEQ",
3302        "members": [
3303          {
3304            "type": "FIELD",
3305            "name": "declarator",
3306            "content": {
3307              "type": "SYMBOL",
3308              "name": "_type_declarator"
3309            }
3310          },
3311          {
3312            "type": "STRING",
3313            "value": "["
3314          },
3315          {
3316            "type": "REPEAT",
3317            "content": {
3318              "type": "SYMBOL",
3319              "name": "type_qualifier"
3320            }
3321          },
3322          {
3323            "type": "FIELD",
3324            "name": "size",
3325            "content": {
3326              "type": "CHOICE",
3327              "members": [
3328                {
3329                  "type": "CHOICE",
3330                  "members": [
3331                    {
3332                      "type": "SYMBOL",
3333                      "name": "_expression"
3334                    },
3335                    {
3336                      "type": "STRING",
3337                      "value": "*"
3338                    }
3339                  ]
3340                },
3341                {
3342                  "type": "BLANK"
3343                }
3344              ]
3345            }
3346          },
3347          {
3348            "type": "STRING",
3349            "value": "]"
3350          }
3351        ]
3352      }
3353    },
3354    "abstract_array_declarator": {
3355      "type": "PREC",
3356      "value": 1,
3357      "content": {
3358        "type": "SEQ",
3359        "members": [
3360          {
3361            "type": "FIELD",
3362            "name": "declarator",
3363            "content": {
3364              "type": "CHOICE",
3365              "members": [
3366                {
3367                  "type": "SYMBOL",
3368                  "name": "_abstract_declarator"
3369                },
3370                {
3371                  "type": "BLANK"
3372                }
3373              ]
3374            }
3375          },
3376          {
3377            "type": "STRING",
3378            "value": "["
3379          },
3380          {
3381            "type": "REPEAT",
3382            "content": {
3383              "type": "SYMBOL",
3384              "name": "type_qualifier"
3385            }
3386          },
3387          {
3388            "type": "FIELD",
3389            "name": "size",
3390            "content": {
3391              "type": "CHOICE",
3392              "members": [
3393                {
3394                  "type": "CHOICE",
3395                  "members": [
3396                    {
3397                      "type": "SYMBOL",
3398                      "name": "_expression"
3399                    },
3400                    {
3401                      "type": "STRING",
3402                      "value": "*"
3403                    }
3404                  ]
3405                },
3406                {
3407                  "type": "BLANK"
3408                }
3409              ]
3410            }
3411          },
3412          {
3413            "type": "STRING",
3414            "value": "]"
3415          }
3416        ]
3417      }
3418    },
3419    "init_declarator": {
3420      "type": "SEQ",
3421      "members": [
3422        {
3423          "type": "FIELD",
3424          "name": "declarator",
3425          "content": {
3426            "type": "SYMBOL",
3427            "name": "_declarator"
3428          }
3429        },
3430        {
3431          "type": "STRING",
3432          "value": "="
3433        },
3434        {
3435          "type": "FIELD",
3436          "name": "value",
3437          "content": {
3438            "type": "CHOICE",
3439            "members": [
3440              {
3441                "type": "SYMBOL",
3442                "name": "initializer_list"
3443              },
3444              {
3445                "type": "SYMBOL",
3446                "name": "_expression"
3447              }
3448            ]
3449          }
3450        }
3451      ]
3452    },
3453    "compound_statement": {
3454      "type": "SEQ",
3455      "members": [
3456        {
3457          "type": "STRING",
3458          "value": "{"
3459        },
3460        {
3461          "type": "REPEAT",
3462          "content": {
3463            "type": "SYMBOL",
3464            "name": "_block_item"
3465          }
3466        },
3467        {
3468          "type": "STRING",
3469          "value": "}"
3470        }
3471      ]
3472    },
3473    "storage_class_specifier": {
3474      "type": "CHOICE",
3475      "members": [
3476        {
3477          "type": "STRING",
3478          "value": "extern"
3479        },
3480        {
3481          "type": "STRING",
3482          "value": "static"
3483        },
3484        {
3485          "type": "STRING",
3486          "value": "auto"
3487        },
3488        {
3489          "type": "STRING",
3490          "value": "register"
3491        },
3492        {
3493          "type": "STRING",
3494          "value": "inline"
3495        },
3496        {
3497          "type": "STRING",
3498          "value": "__inline"
3499        },
3500        {
3501          "type": "STRING",
3502          "value": "__inline__"
3503        },
3504        {
3505          "type": "STRING",
3506          "value": "__forceinline"
3507        },
3508        {
3509          "type": "STRING",
3510          "value": "thread_local"
3511        },
3512        {
3513          "type": "STRING",
3514          "value": "__thread"
3515        }
3516      ]
3517    },
3518    "type_qualifier": {
3519      "type": "CHOICE",
3520      "members": [
3521        {
3522          "type": "STRING",
3523          "value": "const"
3524        },
3525        {
3526          "type": "STRING",
3527          "value": "constexpr"
3528        },
3529        {
3530          "type": "STRING",
3531          "value": "volatile"
3532        },
3533        {
3534          "type": "STRING",
3535          "value": "restrict"
3536        },
3537        {
3538          "type": "STRING",
3539          "value": "__restrict__"
3540        },
3541        {
3542          "type": "STRING",
3543          "value": "__extension__"
3544        },
3545        {
3546          "type": "STRING",
3547          "value": "_Atomic"
3548        },
3549        {
3550          "type": "STRING",
3551          "value": "_Noreturn"
3552        },
3553        {
3554          "type": "STRING",
3555          "value": "noreturn"
3556        }
3557      ]
3558    },
3559    "_type_specifier": {
3560      "type": "CHOICE",
3561      "members": [
3562        {
3563          "type": "SYMBOL",
3564          "name": "struct_specifier"
3565        },
3566        {
3567          "type": "SYMBOL",
3568          "name": "union_specifier"
3569        },
3570        {
3571          "type": "SYMBOL",
3572          "name": "enum_specifier"
3573        },
3574        {
3575          "type": "SYMBOL",
3576          "name": "macro_type_specifier"
3577        },
3578        {
3579          "type": "SYMBOL",
3580          "name": "sized_type_specifier"
3581        },
3582        {
3583          "type": "SYMBOL",
3584          "name": "primitive_type"
3585        },
3586        {
3587          "type": "SYMBOL",
3588          "name": "_type_identifier"
3589        }
3590      ]
3591    },
3592    "sized_type_specifier": {
3593      "type": "SEQ",
3594      "members": [
3595        {
3596          "type": "REPEAT1",
3597          "content": {
3598            "type": "CHOICE",
3599            "members": [
3600              {
3601                "type": "STRING",
3602                "value": "signed"
3603              },
3604              {
3605                "type": "STRING",
3606                "value": "unsigned"
3607              },
3608              {
3609                "type": "STRING",
3610                "value": "long"
3611              },
3612              {
3613                "type": "STRING",
3614                "value": "short"
3615              }
3616            ]
3617          }
3618        },
3619        {
3620          "type": "FIELD",
3621          "name": "type",
3622          "content": {
3623            "type": "CHOICE",
3624            "members": [
3625              {
3626                "type": "CHOICE",
3627                "members": [
3628                  {
3629                    "type": "PREC_DYNAMIC",
3630                    "value": -1,
3631                    "content": {
3632                      "type": "SYMBOL",
3633                      "name": "_type_identifier"
3634                    }
3635                  },
3636                  {
3637                    "type": "SYMBOL",
3638                    "name": "primitive_type"
3639                  }
3640                ]
3641              },
3642              {
3643                "type": "BLANK"
3644              }
3645            ]
3646          }
3647        }
3648      ]
3649    },
3650    "primitive_type": {
3651      "type": "TOKEN",
3652      "content": {
3653        "type": "CHOICE",
3654        "members": [
3655          {
3656            "type": "STRING",
3657            "value": "bool"
3658          },
3659          {
3660            "type": "STRING",
3661            "value": "char"
3662          },
3663          {
3664            "type": "STRING",
3665            "value": "int"
3666          },
3667          {
3668            "type": "STRING",
3669            "value": "float"
3670          },
3671          {
3672            "type": "STRING",
3673            "value": "double"
3674          },
3675          {
3676            "type": "STRING",
3677            "value": "void"
3678          },
3679          {
3680            "type": "STRING",
3681            "value": "size_t"
3682          },
3683          {
3684            "type": "STRING",
3685            "value": "ssize_t"
3686          },
3687          {
3688            "type": "STRING",
3689            "value": "ptrdiff_t"
3690          },
3691          {
3692            "type": "STRING",
3693            "value": "intptr_t"
3694          },
3695          {
3696            "type": "STRING",
3697            "value": "uintptr_t"
3698          },
3699          {
3700            "type": "STRING",
3701            "value": "charptr_t"
3702          },
3703          {
3704            "type": "STRING",
3705            "value": "nullptr_t"
3706          },
3707          {
3708            "type": "STRING",
3709            "value": "max_align_t"
3710          },
3711          {
3712            "type": "STRING",
3713            "value": "int8_t"
3714          },
3715          {
3716            "type": "STRING",
3717            "value": "int16_t"
3718          },
3719          {
3720            "type": "STRING",
3721            "value": "int32_t"
3722          },
3723          {
3724            "type": "STRING",
3725            "value": "int64_t"
3726          },
3727          {
3728            "type": "STRING",
3729            "value": "uint8_t"
3730          },
3731          {
3732            "type": "STRING",
3733            "value": "uint16_t"
3734          },
3735          {
3736            "type": "STRING",
3737            "value": "uint32_t"
3738          },
3739          {
3740            "type": "STRING",
3741            "value": "uint64_t"
3742          },
3743          {
3744            "type": "STRING",
3745            "value": "char8_t"
3746          },
3747          {
3748            "type": "STRING",
3749            "value": "char16_t"
3750          },
3751          {
3752            "type": "STRING",
3753            "value": "char32_t"
3754          },
3755          {
3756            "type": "STRING",
3757            "value": "char64_t"
3758          }
3759        ]
3760      }
3761    },
3762    "enum_specifier": {
3763      "type": "SEQ",
3764      "members": [
3765        {
3766          "type": "STRING",
3767          "value": "enum"
3768        },
3769        {
3770          "type": "CHOICE",
3771          "members": [
3772            {
3773              "type": "SEQ",
3774              "members": [
3775                {
3776                  "type": "FIELD",
3777                  "name": "name",
3778                  "content": {
3779                    "type": "SYMBOL",
3780                    "name": "_type_identifier"
3781                  }
3782                },
3783                {
3784                  "type": "CHOICE",
3785                  "members": [
3786                    {
3787                      "type": "SEQ",
3788                      "members": [
3789                        {
3790                          "type": "STRING",
3791                          "value": ":"
3792                        },
3793                        {
3794                          "type": "FIELD",
3795                          "name": "underlying_type",
3796                          "content": {
3797                            "type": "SYMBOL",
3798                            "name": "primitive_type"
3799                          }
3800                        }
3801                      ]
3802                    },
3803                    {
3804                      "type": "BLANK"
3805                    }
3806                  ]
3807                },
3808                {
3809                  "type": "FIELD",
3810                  "name": "body",
3811                  "content": {
3812                    "type": "CHOICE",
3813                    "members": [
3814                      {
3815                        "type": "SYMBOL",
3816                        "name": "enumerator_list"
3817                      },
3818                      {
3819                        "type": "BLANK"
3820                      }
3821                    ]
3822                  }
3823                }
3824              ]
3825            },
3826            {
3827              "type": "FIELD",
3828              "name": "body",
3829              "content": {
3830                "type": "SYMBOL",
3831                "name": "enumerator_list"
3832              }
3833            }
3834          ]
3835        },
3836        {
3837          "type": "CHOICE",
3838          "members": [
3839            {
3840              "type": "SYMBOL",
3841              "name": "attribute_specifier"
3842            },
3843            {
3844              "type": "BLANK"
3845            }
3846          ]
3847        }
3848      ]
3849    },
3850    "enumerator_list": {
3851      "type": "SEQ",
3852      "members": [
3853        {
3854          "type": "STRING",
3855          "value": "{"
3856        },
3857        {
3858          "type": "CHOICE",
3859          "members": [
3860            {
3861              "type": "SEQ",
3862              "members": [
3863                {
3864                  "type": "SYMBOL",
3865                  "name": "enumerator"
3866                },
3867                {
3868                  "type": "REPEAT",
3869                  "content": {
3870                    "type": "SEQ",
3871                    "members": [
3872                      {
3873                        "type": "STRING",
3874                        "value": ","
3875                      },
3876                      {
3877                        "type": "SYMBOL",
3878                        "name": "enumerator"
3879                      }
3880                    ]
3881                  }
3882                }
3883              ]
3884            },
3885            {
3886              "type": "BLANK"
3887            }
3888          ]
3889        },
3890        {
3891          "type": "CHOICE",
3892          "members": [
3893            {
3894              "type": "STRING",
3895              "value": ","
3896            },
3897            {
3898              "type": "BLANK"
3899            }
3900          ]
3901        },
3902        {
3903          "type": "STRING",
3904          "value": "}"
3905        }
3906      ]
3907    },
3908    "struct_specifier": {
3909      "type": "PREC_RIGHT",
3910      "value": 0,
3911      "content": {
3912        "type": "SEQ",
3913        "members": [
3914          {
3915            "type": "STRING",
3916            "value": "struct"
3917          },
3918          {
3919            "type": "CHOICE",
3920            "members": [
3921              {
3922                "type": "SYMBOL",
3923                "name": "attribute_specifier"
3924              },
3925              {
3926                "type": "BLANK"
3927              }
3928            ]
3929          },
3930          {
3931            "type": "CHOICE",
3932            "members": [
3933              {
3934                "type": "SYMBOL",
3935                "name": "ms_declspec_modifier"
3936              },
3937              {
3938                "type": "BLANK"
3939              }
3940            ]
3941          },
3942          {
3943            "type": "CHOICE",
3944            "members": [
3945              {
3946                "type": "SEQ",
3947                "members": [
3948                  {
3949                    "type": "FIELD",
3950                    "name": "name",
3951                    "content": {
3952                      "type": "SYMBOL",
3953                      "name": "_type_identifier"
3954                    }
3955                  },
3956                  {
3957                    "type": "FIELD",
3958                    "name": "body",
3959                    "content": {
3960                      "type": "CHOICE",
3961                      "members": [
3962                        {
3963                          "type": "SYMBOL",
3964                          "name": "field_declaration_list"
3965                        },
3966                        {
3967                          "type": "BLANK"
3968                        }
3969                      ]
3970                    }
3971                  }
3972                ]
3973              },
3974              {
3975                "type": "FIELD",
3976                "name": "body",
3977                "content": {
3978                  "type": "SYMBOL",
3979                  "name": "field_declaration_list"
3980                }
3981              }
3982            ]
3983          },
3984          {
3985            "type": "CHOICE",
3986            "members": [
3987              {
3988                "type": "SYMBOL",
3989                "name": "attribute_specifier"
3990              },
3991              {
3992                "type": "BLANK"
3993              }
3994            ]
3995          }
3996        ]
3997      }
3998    },
3999    "union_specifier": {
4000      "type": "PREC_RIGHT",
4001      "value": 0,
4002      "content": {
4003        "type": "SEQ",
4004        "members": [
4005          {
4006            "type": "STRING",
4007            "value": "union"
4008          },
4009          {
4010            "type": "CHOICE",
4011            "members": [
4012              {
4013                "type": "SYMBOL",
4014                "name": "ms_declspec_modifier"
4015              },
4016              {
4017                "type": "BLANK"
4018              }
4019            ]
4020          },
4021          {
4022            "type": "CHOICE",
4023            "members": [
4024              {
4025                "type": "SEQ",
4026                "members": [
4027                  {
4028                    "type": "FIELD",
4029                    "name": "name",
4030                    "content": {
4031                      "type": "SYMBOL",
4032                      "name": "_type_identifier"
4033                    }
4034                  },
4035                  {
4036                    "type": "FIELD",
4037                    "name": "body",
4038                    "content": {
4039                      "type": "CHOICE",
4040                      "members": [
4041                        {
4042                          "type": "SYMBOL",
4043                          "name": "field_declaration_list"
4044                        },
4045                        {
4046                          "type": "BLANK"
4047                        }
4048                      ]
4049                    }
4050                  }
4051                ]
4052              },
4053              {
4054                "type": "FIELD",
4055                "name": "body",
4056                "content": {
4057                  "type": "SYMBOL",
4058                  "name": "field_declaration_list"
4059                }
4060              }
4061            ]
4062          },
4063          {
4064            "type": "CHOICE",
4065            "members": [
4066              {
4067                "type": "SYMBOL",
4068                "name": "attribute_specifier"
4069              },
4070              {
4071                "type": "BLANK"
4072              }
4073            ]
4074          }
4075        ]
4076      }
4077    },
4078    "field_declaration_list": {
4079      "type": "SEQ",
4080      "members": [
4081        {
4082          "type": "STRING",
4083          "value": "{"
4084        },
4085        {
4086          "type": "REPEAT",
4087          "content": {
4088            "type": "SYMBOL",
4089            "name": "_field_declaration_list_item"
4090          }
4091        },
4092        {
4093          "type": "STRING",
4094          "value": "}"
4095        }
4096      ]
4097    },
4098    "_field_declaration_list_item": {
4099      "type": "CHOICE",
4100      "members": [
4101        {
4102          "type": "SYMBOL",
4103          "name": "field_declaration"
4104        },
4105        {
4106          "type": "SYMBOL",
4107          "name": "preproc_def"
4108        },
4109        {
4110          "type": "SYMBOL",
4111          "name": "preproc_function_def"
4112        },
4113        {
4114          "type": "SYMBOL",
4115          "name": "preproc_call"
4116        },
4117        {
4118          "type": "ALIAS",
4119          "content": {
4120            "type": "SYMBOL",
4121            "name": "preproc_if_in_field_declaration_list"
4122          },
4123          "named": true,
4124          "value": "preproc_if"
4125        },
4126        {
4127          "type": "ALIAS",
4128          "content": {
4129            "type": "SYMBOL",
4130            "name": "preproc_ifdef_in_field_declaration_list"
4131          },
4132          "named": true,
4133          "value": "preproc_ifdef"
4134        }
4135      ]
4136    },
4137    "field_declaration": {
4138      "type": "SEQ",
4139      "members": [
4140        {
4141          "type": "SYMBOL",
4142          "name": "_declaration_specifiers"
4143        },
4144        {
4145          "type": "CHOICE",
4146          "members": [
4147            {
4148              "type": "SYMBOL",
4149              "name": "_field_declaration_declarator"
4150            },
4151            {
4152              "type": "BLANK"
4153            }
4154          ]
4155        },
4156        {
4157          "type": "CHOICE",
4158          "members": [
4159            {
4160              "type": "SYMBOL",
4161              "name": "attribute_specifier"
4162            },
4163            {
4164              "type": "BLANK"
4165            }
4166          ]
4167        },
4168        {
4169          "type": "STRING",
4170          "value": ";"
4171        }
4172      ]
4173    },
4174    "_field_declaration_declarator": {
4175      "type": "SEQ",
4176      "members": [
4177        {
4178          "type": "SEQ",
4179          "members": [
4180            {
4181              "type": "FIELD",
4182              "name": "declarator",
4183              "content": {
4184                "type": "SYMBOL",
4185                "name": "_field_declarator"
4186              }
4187            },
4188            {
4189              "type": "CHOICE",
4190              "members": [
4191                {
4192                  "type": "SYMBOL",
4193                  "name": "bitfield_clause"
4194                },
4195                {
4196                  "type": "BLANK"
4197                }
4198              ]
4199            }
4200          ]
4201        },
4202        {
4203          "type": "REPEAT",
4204          "content": {
4205            "type": "SEQ",
4206            "members": [
4207              {
4208                "type": "STRING",
4209                "value": ","
4210              },
4211              {
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": "CHOICE",
4224                    "members": [
4225                      {
4226                        "type": "SYMBOL",
4227                        "name": "bitfield_clause"
4228                      },
4229                      {
4230                        "type": "BLANK"
4231                      }
4232                    ]
4233                  }
4234                ]
4235              }
4236            ]
4237          }
4238        }
4239      ]
4240    },
4241    "bitfield_clause": {
4242      "type": "SEQ",
4243      "members": [
4244        {
4245          "type": "STRING",
4246          "value": ":"
4247        },
4248        {
4249          "type": "SYMBOL",
4250          "name": "_expression"
4251        }
4252      ]
4253    },
4254    "enumerator": {
4255      "type": "SEQ",
4256      "members": [
4257        {
4258          "type": "FIELD",
4259          "name": "name",
4260          "content": {
4261            "type": "SYMBOL",
4262            "name": "identifier"
4263          }
4264        },
4265        {
4266          "type": "CHOICE",
4267          "members": [
4268            {
4269              "type": "SEQ",
4270              "members": [
4271                {
4272                  "type": "STRING",
4273                  "value": "="
4274                },
4275                {
4276                  "type": "FIELD",
4277                  "name": "value",
4278                  "content": {
4279                    "type": "SYMBOL",
4280                    "name": "_expression"
4281                  }
4282                }
4283              ]
4284            },
4285            {
4286              "type": "BLANK"
4287            }
4288          ]
4289        }
4290      ]
4291    },
4292    "variadic_parameter": {
4293      "type": "SEQ",
4294      "members": [
4295        {
4296          "type": "STRING",
4297          "value": "..."
4298        }
4299      ]
4300    },
4301    "parameter_list": {
4302      "type": "SEQ",
4303      "members": [
4304        {
4305          "type": "STRING",
4306          "value": "("
4307        },
4308        {
4309          "type": "CHOICE",
4310          "members": [
4311            {
4312              "type": "SEQ",
4313              "members": [
4314                {
4315                  "type": "CHOICE",
4316                  "members": [
4317                    {
4318                      "type": "SYMBOL",
4319                      "name": "parameter_declaration"
4320                    },
4321                    {
4322                      "type": "SYMBOL",
4323                      "name": "variadic_parameter"
4324                    }
4325                  ]
4326                },
4327                {
4328                  "type": "REPEAT",
4329                  "content": {
4330                    "type": "SEQ",
4331                    "members": [
4332                      {
4333                        "type": "STRING",
4334                        "value": ","
4335                      },
4336                      {
4337                        "type": "CHOICE",
4338                        "members": [
4339                          {
4340                            "type": "SYMBOL",
4341                            "name": "parameter_declaration"
4342                          },
4343                          {
4344                            "type": "SYMBOL",
4345                            "name": "variadic_parameter"
4346                          }
4347                        ]
4348                      }
4349                    ]
4350                  }
4351                }
4352              ]
4353            },
4354            {
4355              "type": "BLANK"
4356            }
4357          ]
4358        },
4359        {
4360          "type": "STRING",
4361          "value": ")"
4362        }
4363      ]
4364    },
4365    "_old_style_parameter_list": {
4366      "type": "SEQ",
4367      "members": [
4368        {
4369          "type": "STRING",
4370          "value": "("
4371        },
4372        {
4373          "type": "CHOICE",
4374          "members": [
4375            {
4376              "type": "SEQ",
4377              "members": [
4378                {
4379                  "type": "CHOICE",
4380                  "members": [
4381                    {
4382                      "type": "SYMBOL",
4383                      "name": "identifier"
4384                    },
4385                    {
4386                      "type": "SYMBOL",
4387                      "name": "variadic_parameter"
4388                    }
4389                  ]
4390                },
4391                {
4392                  "type": "REPEAT",
4393                  "content": {
4394                    "type": "SEQ",
4395                    "members": [
4396                      {
4397                        "type": "STRING",
4398                        "value": ","
4399                      },
4400                      {
4401                        "type": "CHOICE",
4402                        "members": [
4403                          {
4404                            "type": "SYMBOL",
4405                            "name": "identifier"
4406                          },
4407                          {
4408                            "type": "SYMBOL",
4409                            "name": "variadic_parameter"
4410                          }
4411                        ]
4412                      }
4413                    ]
4414                  }
4415                }
4416              ]
4417            },
4418            {
4419              "type": "BLANK"
4420            }
4421          ]
4422        },
4423        {
4424          "type": "STRING",
4425          "value": ")"
4426        }
4427      ]
4428    },
4429    "parameter_declaration": {
4430      "type": "SEQ",
4431      "members": [
4432        {
4433          "type": "SYMBOL",
4434          "name": "_declaration_specifiers"
4435        },
4436        {
4437          "type": "CHOICE",
4438          "members": [
4439            {
4440              "type": "FIELD",
4441              "name": "declarator",
4442              "content": {
4443                "type": "CHOICE",
4444                "members": [
4445                  {
4446                    "type": "SYMBOL",
4447                    "name": "_declarator"
4448                  },
4449                  {
4450                    "type": "SYMBOL",
4451                    "name": "_abstract_declarator"
4452                  }
4453                ]
4454              }
4455            },
4456            {
4457              "type": "BLANK"
4458            }
4459          ]
4460        }
4461      ]
4462    },
4463    "attributed_statement": {
4464      "type": "SEQ",
4465      "members": [
4466        {
4467          "type": "REPEAT1",
4468          "content": {
4469            "type": "SYMBOL",
4470            "name": "attribute_declaration"
4471          }
4472        },
4473        {
4474          "type": "SYMBOL",
4475          "name": "_statement"
4476        }
4477      ]
4478    },
4479    "_statement": {
4480      "type": "CHOICE",
4481      "members": [
4482        {
4483          "type": "SYMBOL",
4484          "name": "case_statement"
4485        },
4486        {
4487          "type": "SYMBOL",
4488          "name": "_non_case_statement"
4489        }
4490      ]
4491    },
4492    "_non_case_statement": {
4493      "type": "CHOICE",
4494      "members": [
4495        {
4496          "type": "SYMBOL",
4497          "name": "attributed_statement"
4498        },
4499        {
4500          "type": "SYMBOL",
4501          "name": "labeled_statement"
4502        },
4503        {
4504          "type": "SYMBOL",
4505          "name": "compound_statement"
4506        },
4507        {
4508          "type": "SYMBOL",
4509          "name": "expression_statement"
4510        },
4511        {
4512          "type": "SYMBOL",
4513          "name": "if_statement"
4514        },
4515        {
4516          "type": "SYMBOL",
4517          "name": "switch_statement"
4518        },
4519        {
4520          "type": "SYMBOL",
4521          "name": "do_statement"
4522        },
4523        {
4524          "type": "SYMBOL",
4525          "name": "while_statement"
4526        },
4527        {
4528          "type": "SYMBOL",
4529          "name": "for_statement"
4530        },
4531        {
4532          "type": "SYMBOL",
4533          "name": "return_statement"
4534        },
4535        {
4536          "type": "SYMBOL",
4537          "name": "break_statement"
4538        },
4539        {
4540          "type": "SYMBOL",
4541          "name": "continue_statement"
4542        },
4543        {
4544          "type": "SYMBOL",
4545          "name": "goto_statement"
4546        },
4547        {
4548          "type": "SYMBOL",
4549          "name": "seh_try_statement"
4550        },
4551        {
4552          "type": "SYMBOL",
4553          "name": "seh_leave_statement"
4554        }
4555      ]
4556    },
4557    "_top_level_statement": {
4558      "type": "CHOICE",
4559      "members": [
4560        {
4561          "type": "SYMBOL",
4562          "name": "case_statement"
4563        },
4564        {
4565          "type": "SYMBOL",
4566          "name": "attributed_statement"
4567        },
4568        {
4569          "type": "SYMBOL",
4570          "name": "labeled_statement"
4571        },
4572        {
4573          "type": "SYMBOL",
4574          "name": "compound_statement"
4575        },
4576        {
4577          "type": "ALIAS",
4578          "content": {
4579            "type": "SYMBOL",
4580            "name": "_top_level_expression_statement"
4581          },
4582          "named": true,
4583          "value": "expression_statement"
4584        },
4585        {
4586          "type": "SYMBOL",
4587          "name": "if_statement"
4588        },
4589        {
4590          "type": "SYMBOL",
4591          "name": "switch_statement"
4592        },
4593        {
4594          "type": "SYMBOL",
4595          "name": "do_statement"
4596        },
4597        {
4598          "type": "SYMBOL",
4599          "name": "while_statement"
4600        },
4601        {
4602          "type": "SYMBOL",
4603          "name": "for_statement"
4604        },
4605        {
4606          "type": "SYMBOL",
4607          "name": "return_statement"
4608        },
4609        {
4610          "type": "SYMBOL",
4611          "name": "break_statement"
4612        },
4613        {
4614          "type": "SYMBOL",
4615          "name": "continue_statement"
4616        },
4617        {
4618          "type": "SYMBOL",
4619          "name": "goto_statement"
4620        }
4621      ]
4622    },
4623    "labeled_statement": {
4624      "type": "SEQ",
4625      "members": [
4626        {
4627          "type": "FIELD",
4628          "name": "label",
4629          "content": {
4630            "type": "SYMBOL",
4631            "name": "_statement_identifier"
4632          }
4633        },
4634        {
4635          "type": "STRING",
4636          "value": ":"
4637        },
4638        {
4639          "type": "SYMBOL",
4640          "name": "_statement"
4641        }
4642      ]
4643    },
4644    "_top_level_expression_statement": {
4645      "type": "SEQ",
4646      "members": [
4647        {
4648          "type": "SYMBOL",
4649          "name": "_expression_not_binary"
4650        },
4651        {
4652          "type": "STRING",
4653          "value": ";"
4654        }
4655      ]
4656    },
4657    "expression_statement": {
4658      "type": "SEQ",
4659      "members": [
4660        {
4661          "type": "CHOICE",
4662          "members": [
4663            {
4664              "type": "CHOICE",
4665              "members": [
4666                {
4667                  "type": "SYMBOL",
4668                  "name": "_expression"
4669                },
4670                {
4671                  "type": "SYMBOL",
4672                  "name": "comma_expression"
4673                }
4674              ]
4675            },
4676            {
4677              "type": "BLANK"
4678            }
4679          ]
4680        },
4681        {
4682          "type": "STRING",
4683          "value": ";"
4684        }
4685      ]
4686    },
4687    "if_statement": {
4688      "type": "PREC_RIGHT",
4689      "value": 0,
4690      "content": {
4691        "type": "SEQ",
4692        "members": [
4693          {
4694            "type": "STRING",
4695            "value": "if"
4696          },
4697          {
4698            "type": "FIELD",
4699            "name": "condition",
4700            "content": {
4701              "type": "SYMBOL",
4702              "name": "parenthesized_expression"
4703            }
4704          },
4705          {
4706            "type": "FIELD",
4707            "name": "consequence",
4708            "content": {
4709              "type": "SYMBOL",
4710              "name": "_statement"
4711            }
4712          },
4713          {
4714            "type": "CHOICE",
4715            "members": [
4716              {
4717                "type": "FIELD",
4718                "name": "alternative",
4719                "content": {
4720                  "type": "SYMBOL",
4721                  "name": "else_clause"
4722                }
4723              },
4724              {
4725                "type": "BLANK"
4726              }
4727            ]
4728          }
4729        ]
4730      }
4731    },
4732    "else_clause": {
4733      "type": "SEQ",
4734      "members": [
4735        {
4736          "type": "STRING",
4737          "value": "else"
4738        },
4739        {
4740          "type": "SYMBOL",
4741          "name": "_statement"
4742        }
4743      ]
4744    },
4745    "switch_statement": {
4746      "type": "SEQ",
4747      "members": [
4748        {
4749          "type": "STRING",
4750          "value": "switch"
4751        },
4752        {
4753          "type": "FIELD",
4754          "name": "condition",
4755          "content": {
4756            "type": "SYMBOL",
4757            "name": "parenthesized_expression"
4758          }
4759        },
4760        {
4761          "type": "FIELD",
4762          "name": "body",
4763          "content": {
4764            "type": "SYMBOL",
4765            "name": "compound_statement"
4766          }
4767        }
4768      ]
4769    },
4770    "case_statement": {
4771      "type": "PREC_RIGHT",
4772      "value": 0,
4773      "content": {
4774        "type": "SEQ",
4775        "members": [
4776          {
4777            "type": "CHOICE",
4778            "members": [
4779              {
4780                "type": "SEQ",
4781                "members": [
4782                  {
4783                    "type": "STRING",
4784                    "value": "case"
4785                  },
4786                  {
4787                    "type": "FIELD",
4788                    "name": "value",
4789                    "content": {
4790                      "type": "SYMBOL",
4791                      "name": "_expression"
4792                    }
4793                  }
4794                ]
4795              },
4796              {
4797                "type": "STRING",
4798                "value": "default"
4799              }
4800            ]
4801          },
4802          {
4803            "type": "STRING",
4804            "value": ":"
4805          },
4806          {
4807            "type": "REPEAT",
4808            "content": {
4809              "type": "CHOICE",
4810              "members": [
4811                {
4812                  "type": "SYMBOL",
4813                  "name": "_non_case_statement"
4814                },
4815                {
4816                  "type": "SYMBOL",
4817                  "name": "declaration"
4818                },
4819                {
4820                  "type": "SYMBOL",
4821                  "name": "type_definition"
4822                }
4823              ]
4824            }
4825          }
4826        ]
4827      }
4828    },
4829    "while_statement": {
4830      "type": "SEQ",
4831      "members": [
4832        {
4833          "type": "STRING",
4834          "value": "while"
4835        },
4836        {
4837          "type": "FIELD",
4838          "name": "condition",
4839          "content": {
4840            "type": "SYMBOL",
4841            "name": "parenthesized_expression"
4842          }
4843        },
4844        {
4845          "type": "FIELD",
4846          "name": "body",
4847          "content": {
4848            "type": "SYMBOL",
4849            "name": "_statement"
4850          }
4851        }
4852      ]
4853    },
4854    "do_statement": {
4855      "type": "SEQ",
4856      "members": [
4857        {
4858          "type": "STRING",
4859          "value": "do"
4860        },
4861        {
4862          "type": "FIELD",
4863          "name": "body",
4864          "content": {
4865            "type": "SYMBOL",
4866            "name": "_statement"
4867          }
4868        },
4869        {
4870          "type": "STRING",
4871          "value": "while"
4872        },
4873        {
4874          "type": "FIELD",
4875          "name": "condition",
4876          "content": {
4877            "type": "SYMBOL",
4878            "name": "parenthesized_expression"
4879          }
4880        },
4881        {
4882          "type": "STRING",
4883          "value": ";"
4884        }
4885      ]
4886    },
4887    "for_statement": {
4888      "type": "SEQ",
4889      "members": [
4890        {
4891          "type": "STRING",
4892          "value": "for"
4893        },
4894        {
4895          "type": "STRING",
4896          "value": "("
4897        },
4898        {
4899          "type": "SYMBOL",
4900          "name": "_for_statement_body"
4901        },
4902        {
4903          "type": "STRING",
4904          "value": ")"
4905        },
4906        {
4907          "type": "FIELD",
4908          "name": "body",
4909          "content": {
4910            "type": "SYMBOL",
4911            "name": "_statement"
4912          }
4913        }
4914      ]
4915    },
4916    "_for_statement_body": {
4917      "type": "SEQ",
4918      "members": [
4919        {
4920          "type": "CHOICE",
4921          "members": [
4922            {
4923              "type": "FIELD",
4924              "name": "initializer",
4925              "content": {
4926                "type": "SYMBOL",
4927                "name": "declaration"
4928              }
4929            },
4930            {
4931              "type": "SEQ",
4932              "members": [
4933                {
4934                  "type": "FIELD",
4935                  "name": "initializer",
4936                  "content": {
4937                    "type": "CHOICE",
4938                    "members": [
4939                      {
4940                        "type": "CHOICE",
4941                        "members": [
4942                          {
4943                            "type": "SYMBOL",
4944                            "name": "_expression"
4945                          },
4946                          {
4947                            "type": "SYMBOL",
4948                            "name": "comma_expression"
4949                          }
4950                        ]
4951                      },
4952                      {
4953                        "type": "BLANK"
4954                      }
4955                    ]
4956                  }
4957                },
4958                {
4959                  "type": "STRING",
4960                  "value": ";"
4961                }
4962              ]
4963            }
4964          ]
4965        },
4966        {
4967          "type": "FIELD",
4968          "name": "condition",
4969          "content": {
4970            "type": "CHOICE",
4971            "members": [
4972              {
4973                "type": "CHOICE",
4974                "members": [
4975                  {
4976                    "type": "SYMBOL",
4977                    "name": "_expression"
4978                  },
4979                  {
4980                    "type": "SYMBOL",
4981                    "name": "comma_expression"
4982                  }
4983                ]
4984              },
4985              {
4986                "type": "BLANK"
4987              }
4988            ]
4989          }
4990        },
4991        {
4992          "type": "STRING",
4993          "value": ";"
4994        },
4995        {
4996          "type": "FIELD",
4997          "name": "update",
4998          "content": {
4999            "type": "CHOICE",
5000            "members": [
5001              {
5002                "type": "CHOICE",
5003                "members": [
5004                  {
5005                    "type": "SYMBOL",
5006                    "name": "_expression"
5007                  },
5008                  {
5009                    "type": "SYMBOL",
5010                    "name": "comma_expression"
5011                  }
5012                ]
5013              },
5014              {
5015                "type": "BLANK"
5016              }
5017            ]
5018          }
5019        }
5020      ]
5021    },
5022    "return_statement": {
5023      "type": "SEQ",
5024      "members": [
5025        {
5026          "type": "STRING",
5027          "value": "return"
5028        },
5029        {
5030          "type": "CHOICE",
5031          "members": [
5032            {
5033              "type": "CHOICE",
5034              "members": [
5035                {
5036                  "type": "SYMBOL",
5037                  "name": "_expression"
5038                },
5039                {
5040                  "type": "SYMBOL",
5041                  "name": "comma_expression"
5042                }
5043              ]
5044            },
5045            {
5046              "type": "BLANK"
5047            }
5048          ]
5049        },
5050        {
5051          "type": "STRING",
5052          "value": ";"
5053        }
5054      ]
5055    },
5056    "break_statement": {
5057      "type": "SEQ",
5058      "members": [
5059        {
5060          "type": "STRING",
5061          "value": "break"
5062        },
5063        {
5064          "type": "STRING",
5065          "value": ";"
5066        }
5067      ]
5068    },
5069    "continue_statement": {
5070      "type": "SEQ",
5071      "members": [
5072        {
5073          "type": "STRING",
5074          "value": "continue"
5075        },
5076        {
5077          "type": "STRING",
5078          "value": ";"
5079        }
5080      ]
5081    },
5082    "goto_statement": {
5083      "type": "SEQ",
5084      "members": [
5085        {
5086          "type": "STRING",
5087          "value": "goto"
5088        },
5089        {
5090          "type": "FIELD",
5091          "name": "label",
5092          "content": {
5093            "type": "SYMBOL",
5094            "name": "_statement_identifier"
5095          }
5096        },
5097        {
5098          "type": "STRING",
5099          "value": ";"
5100        }
5101      ]
5102    },
5103    "seh_try_statement": {
5104      "type": "SEQ",
5105      "members": [
5106        {
5107          "type": "STRING",
5108          "value": "__try"
5109        },
5110        {
5111          "type": "FIELD",
5112          "name": "body",
5113          "content": {
5114            "type": "SYMBOL",
5115            "name": "compound_statement"
5116          }
5117        },
5118        {
5119          "type": "CHOICE",
5120          "members": [
5121            {
5122              "type": "SYMBOL",
5123              "name": "seh_except_clause"
5124            },
5125            {
5126              "type": "SYMBOL",
5127              "name": "seh_finally_clause"
5128            }
5129          ]
5130        }
5131      ]
5132    },
5133    "seh_except_clause": {
5134      "type": "SEQ",
5135      "members": [
5136        {
5137          "type": "STRING",
5138          "value": "__except"
5139        },
5140        {
5141          "type": "FIELD",
5142          "name": "filter",
5143          "content": {
5144            "type": "SYMBOL",
5145            "name": "parenthesized_expression"
5146          }
5147        },
5148        {
5149          "type": "FIELD",
5150          "name": "body",
5151          "content": {
5152            "type": "SYMBOL",
5153            "name": "compound_statement"
5154          }
5155        }
5156      ]
5157    },
5158    "seh_finally_clause": {
5159      "type": "SEQ",
5160      "members": [
5161        {
5162          "type": "STRING",
5163          "value": "__finally"
5164        },
5165        {
5166          "type": "FIELD",
5167          "name": "body",
5168          "content": {
5169            "type": "SYMBOL",
5170            "name": "compound_statement"
5171          }
5172        }
5173      ]
5174    },
5175    "seh_leave_statement": {
5176      "type": "SEQ",
5177      "members": [
5178        {
5179          "type": "STRING",
5180          "value": "__leave"
5181        },
5182        {
5183          "type": "STRING",
5184          "value": ";"
5185        }
5186      ]
5187    },
5188    "_expression": {
5189      "type": "CHOICE",
5190      "members": [
5191        {
5192          "type": "SYMBOL",
5193          "name": "_expression_not_binary"
5194        },
5195        {
5196          "type": "SYMBOL",
5197          "name": "binary_expression"
5198        }
5199      ]
5200    },
5201    "_expression_not_binary": {
5202      "type": "CHOICE",
5203      "members": [
5204        {
5205          "type": "SYMBOL",
5206          "name": "conditional_expression"
5207        },
5208        {
5209          "type": "SYMBOL",
5210          "name": "assignment_expression"
5211        },
5212        {
5213          "type": "SYMBOL",
5214          "name": "unary_expression"
5215        },
5216        {
5217          "type": "SYMBOL",
5218          "name": "update_expression"
5219        },
5220        {
5221          "type": "SYMBOL",
5222          "name": "cast_expression"
5223        },
5224        {
5225          "type": "SYMBOL",
5226          "name": "pointer_expression"
5227        },
5228        {
5229          "type": "SYMBOL",
5230          "name": "sizeof_expression"
5231        },
5232        {
5233          "type": "SYMBOL",
5234          "name": "alignof_expression"
5235        },
5236        {
5237          "type": "SYMBOL",
5238          "name": "offsetof_expression"
5239        },
5240        {
5241          "type": "SYMBOL",
5242          "name": "generic_expression"
5243        },
5244        {
5245          "type": "SYMBOL",
5246          "name": "subscript_expression"
5247        },
5248        {
5249          "type": "SYMBOL",
5250          "name": "call_expression"
5251        },
5252        {
5253          "type": "SYMBOL",
5254          "name": "field_expression"
5255        },
5256        {
5257          "type": "SYMBOL",
5258          "name": "compound_literal_expression"
5259        },
5260        {
5261          "type": "SYMBOL",
5262          "name": "identifier"
5263        },
5264        {
5265          "type": "SYMBOL",
5266          "name": "number_literal"
5267        },
5268        {
5269          "type": "SYMBOL",
5270          "name": "string_literal"
5271        },
5272        {
5273          "type": "SYMBOL",
5274          "name": "true"
5275        },
5276        {
5277          "type": "SYMBOL",
5278          "name": "false"
5279        },
5280        {
5281          "type": "SYMBOL",
5282          "name": "null"
5283        },
5284        {
5285          "type": "SYMBOL",
5286          "name": "concatenated_string"
5287        },
5288        {
5289          "type": "SYMBOL",
5290          "name": "char_literal"
5291        },
5292        {
5293          "type": "SYMBOL",
5294          "name": "parenthesized_expression"
5295        },
5296        {
5297          "type": "SYMBOL",
5298          "name": "gnu_asm_expression"
5299        }
5300      ]
5301    },
5302    "comma_expression": {
5303      "type": "SEQ",
5304      "members": [
5305        {
5306          "type": "FIELD",
5307          "name": "left",
5308          "content": {
5309            "type": "SYMBOL",
5310            "name": "_expression"
5311          }
5312        },
5313        {
5314          "type": "STRING",
5315          "value": ","
5316        },
5317        {
5318          "type": "FIELD",
5319          "name": "right",
5320          "content": {
5321            "type": "CHOICE",
5322            "members": [
5323              {
5324                "type": "SYMBOL",
5325                "name": "_expression"
5326              },
5327              {
5328                "type": "SYMBOL",
5329                "name": "comma_expression"
5330              }
5331            ]
5332          }
5333        }
5334      ]
5335    },
5336    "conditional_expression": {
5337      "type": "PREC_RIGHT",
5338      "value": -1,
5339      "content": {
5340        "type": "SEQ",
5341        "members": [
5342          {
5343            "type": "FIELD",
5344            "name": "condition",
5345            "content": {
5346              "type": "SYMBOL",
5347              "name": "_expression"
5348            }
5349          },
5350          {
5351            "type": "STRING",
5352            "value": "?"
5353          },
5354          {
5355            "type": "CHOICE",
5356            "members": [
5357              {
5358                "type": "FIELD",
5359                "name": "consequence",
5360                "content": {
5361                  "type": "SYMBOL",
5362                  "name": "_expression"
5363                }
5364              },
5365              {
5366                "type": "BLANK"
5367              }
5368            ]
5369          },
5370          {
5371            "type": "STRING",
5372            "value": ":"
5373          },
5374          {
5375            "type": "FIELD",
5376            "name": "alternative",
5377            "content": {
5378              "type": "SYMBOL",
5379              "name": "_expression"
5380            }
5381          }
5382        ]
5383      }
5384    },
5385    "_assignment_left_expression": {
5386      "type": "CHOICE",
5387      "members": [
5388        {
5389          "type": "SYMBOL",
5390          "name": "identifier"
5391        },
5392        {
5393          "type": "SYMBOL",
5394          "name": "call_expression"
5395        },
5396        {
5397          "type": "SYMBOL",
5398          "name": "field_expression"
5399        },
5400        {
5401          "type": "SYMBOL",
5402          "name": "pointer_expression"
5403        },
5404        {
5405          "type": "SYMBOL",
5406          "name": "subscript_expression"
5407        },
5408        {
5409          "type": "SYMBOL",
5410          "name": "parenthesized_expression"
5411        }
5412      ]
5413    },
5414    "assignment_expression": {
5415      "type": "PREC_RIGHT",
5416      "value": -2,
5417      "content": {
5418        "type": "SEQ",
5419        "members": [
5420          {
5421            "type": "FIELD",
5422            "name": "left",
5423            "content": {
5424              "type": "SYMBOL",
5425              "name": "_assignment_left_expression"
5426            }
5427          },
5428          {
5429            "type": "FIELD",
5430            "name": "operator",
5431            "content": {
5432              "type": "CHOICE",
5433              "members": [
5434                {
5435                  "type": "STRING",
5436                  "value": "="
5437                },
5438                {
5439                  "type": "STRING",
5440                  "value": "*="
5441                },
5442                {
5443                  "type": "STRING",
5444                  "value": "/="
5445                },
5446                {
5447                  "type": "STRING",
5448                  "value": "%="
5449                },
5450                {
5451                  "type": "STRING",
5452                  "value": "+="
5453                },
5454                {
5455                  "type": "STRING",
5456                  "value": "-="
5457                },
5458                {
5459                  "type": "STRING",
5460                  "value": "<<="
5461                },
5462                {
5463                  "type": "STRING",
5464                  "value": ">>="
5465                },
5466                {
5467                  "type": "STRING",
5468                  "value": "&="
5469                },
5470                {
5471                  "type": "STRING",
5472                  "value": "^="
5473                },
5474                {
5475                  "type": "STRING",
5476                  "value": "|="
5477                }
5478              ]
5479            }
5480          },
5481          {
5482            "type": "FIELD",
5483            "name": "right",
5484            "content": {
5485              "type": "SYMBOL",
5486              "name": "_expression"
5487            }
5488          }
5489        ]
5490      }
5491    },
5492    "pointer_expression": {
5493      "type": "PREC_LEFT",
5494      "value": 12,
5495      "content": {
5496        "type": "SEQ",
5497        "members": [
5498          {
5499            "type": "FIELD",
5500            "name": "operator",
5501            "content": {
5502              "type": "CHOICE",
5503              "members": [
5504                {
5505                  "type": "STRING",
5506                  "value": "*"
5507                },
5508                {
5509                  "type": "STRING",
5510                  "value": "&"
5511                }
5512              ]
5513            }
5514          },
5515          {
5516            "type": "FIELD",
5517            "name": "argument",
5518            "content": {
5519              "type": "SYMBOL",
5520              "name": "_expression"
5521            }
5522          }
5523        ]
5524      }
5525    },
5526    "unary_expression": {
5527      "type": "PREC_LEFT",
5528      "value": 14,
5529      "content": {
5530        "type": "SEQ",
5531        "members": [
5532          {
5533            "type": "FIELD",
5534            "name": "operator",
5535            "content": {
5536              "type": "CHOICE",
5537              "members": [
5538                {
5539                  "type": "STRING",
5540                  "value": "!"
5541                },
5542                {
5543                  "type": "STRING",
5544                  "value": "~"
5545                },
5546                {
5547                  "type": "STRING",
5548                  "value": "-"
5549                },
5550                {
5551                  "type": "STRING",
5552                  "value": "+"
5553                }
5554              ]
5555            }
5556          },
5557          {
5558            "type": "FIELD",
5559            "name": "argument",
5560            "content": {
5561              "type": "SYMBOL",
5562              "name": "_expression"
5563            }
5564          }
5565        ]
5566      }
5567    },
5568    "binary_expression": {
5569      "type": "CHOICE",
5570      "members": [
5571        {
5572          "type": "PREC_LEFT",
5573          "value": 10,
5574          "content": {
5575            "type": "SEQ",
5576            "members": [
5577              {
5578                "type": "FIELD",
5579                "name": "left",
5580                "content": {
5581                  "type": "SYMBOL",
5582                  "name": "_expression"
5583                }
5584              },
5585              {
5586                "type": "FIELD",
5587                "name": "operator",
5588                "content": {
5589                  "type": "STRING",
5590                  "value": "+"
5591                }
5592              },
5593              {
5594                "type": "FIELD",
5595                "name": "right",
5596                "content": {
5597                  "type": "SYMBOL",
5598                  "name": "_expression"
5599                }
5600              }
5601            ]
5602          }
5603        },
5604        {
5605          "type": "PREC_LEFT",
5606          "value": 10,
5607          "content": {
5608            "type": "SEQ",
5609            "members": [
5610              {
5611                "type": "FIELD",
5612                "name": "left",
5613                "content": {
5614                  "type": "SYMBOL",
5615                  "name": "_expression"
5616                }
5617              },
5618              {
5619                "type": "FIELD",
5620                "name": "operator",
5621                "content": {
5622                  "type": "STRING",
5623                  "value": "-"
5624                }
5625              },
5626              {
5627                "type": "FIELD",
5628                "name": "right",
5629                "content": {
5630                  "type": "SYMBOL",
5631                  "name": "_expression"
5632                }
5633              }
5634            ]
5635          }
5636        },
5637        {
5638          "type": "PREC_LEFT",
5639          "value": 11,
5640          "content": {
5641            "type": "SEQ",
5642            "members": [
5643              {
5644                "type": "FIELD",
5645                "name": "left",
5646                "content": {
5647                  "type": "SYMBOL",
5648                  "name": "_expression"
5649                }
5650              },
5651              {
5652                "type": "FIELD",
5653                "name": "operator",
5654                "content": {
5655                  "type": "STRING",
5656                  "value": "*"
5657                }
5658              },
5659              {
5660                "type": "FIELD",
5661                "name": "right",
5662                "content": {
5663                  "type": "SYMBOL",
5664                  "name": "_expression"
5665                }
5666              }
5667            ]
5668          }
5669        },
5670        {
5671          "type": "PREC_LEFT",
5672          "value": 11,
5673          "content": {
5674            "type": "SEQ",
5675            "members": [
5676              {
5677                "type": "FIELD",
5678                "name": "left",
5679                "content": {
5680                  "type": "SYMBOL",
5681                  "name": "_expression"
5682                }
5683              },
5684              {
5685                "type": "FIELD",
5686                "name": "operator",
5687                "content": {
5688                  "type": "STRING",
5689                  "value": "/"
5690                }
5691              },
5692              {
5693                "type": "FIELD",
5694                "name": "right",
5695                "content": {
5696                  "type": "SYMBOL",
5697                  "name": "_expression"
5698                }
5699              }
5700            ]
5701          }
5702        },
5703        {
5704          "type": "PREC_LEFT",
5705          "value": 11,
5706          "content": {
5707            "type": "SEQ",
5708            "members": [
5709              {
5710                "type": "FIELD",
5711                "name": "left",
5712                "content": {
5713                  "type": "SYMBOL",
5714                  "name": "_expression"
5715                }
5716              },
5717              {
5718                "type": "FIELD",
5719                "name": "operator",
5720                "content": {
5721                  "type": "STRING",
5722                  "value": "%"
5723                }
5724              },
5725              {
5726                "type": "FIELD",
5727                "name": "right",
5728                "content": {
5729                  "type": "SYMBOL",
5730                  "name": "_expression"
5731                }
5732              }
5733            ]
5734          }
5735        },
5736        {
5737          "type": "PREC_LEFT",
5738          "value": 1,
5739          "content": {
5740            "type": "SEQ",
5741            "members": [
5742              {
5743                "type": "FIELD",
5744                "name": "left",
5745                "content": {
5746                  "type": "SYMBOL",
5747                  "name": "_expression"
5748                }
5749              },
5750              {
5751                "type": "FIELD",
5752                "name": "operator",
5753                "content": {
5754                  "type": "STRING",
5755                  "value": "||"
5756                }
5757              },
5758              {
5759                "type": "FIELD",
5760                "name": "right",
5761                "content": {
5762                  "type": "SYMBOL",
5763                  "name": "_expression"
5764                }
5765              }
5766            ]
5767          }
5768        },
5769        {
5770          "type": "PREC_LEFT",
5771          "value": 2,
5772          "content": {
5773            "type": "SEQ",
5774            "members": [
5775              {
5776                "type": "FIELD",
5777                "name": "left",
5778                "content": {
5779                  "type": "SYMBOL",
5780                  "name": "_expression"
5781                }
5782              },
5783              {
5784                "type": "FIELD",
5785                "name": "operator",
5786                "content": {
5787                  "type": "STRING",
5788                  "value": "&&"
5789                }
5790              },
5791              {
5792                "type": "FIELD",
5793                "name": "right",
5794                "content": {
5795                  "type": "SYMBOL",
5796                  "name": "_expression"
5797                }
5798              }
5799            ]
5800          }
5801        },
5802        {
5803          "type": "PREC_LEFT",
5804          "value": 3,
5805          "content": {
5806            "type": "SEQ",
5807            "members": [
5808              {
5809                "type": "FIELD",
5810                "name": "left",
5811                "content": {
5812                  "type": "SYMBOL",
5813                  "name": "_expression"
5814                }
5815              },
5816              {
5817                "type": "FIELD",
5818                "name": "operator",
5819                "content": {
5820                  "type": "STRING",
5821                  "value": "|"
5822                }
5823              },
5824              {
5825                "type": "FIELD",
5826                "name": "right",
5827                "content": {
5828                  "type": "SYMBOL",
5829                  "name": "_expression"
5830                }
5831              }
5832            ]
5833          }
5834        },
5835        {
5836          "type": "PREC_LEFT",
5837          "value": 4,
5838          "content": {
5839            "type": "SEQ",
5840            "members": [
5841              {
5842                "type": "FIELD",
5843                "name": "left",
5844                "content": {
5845                  "type": "SYMBOL",
5846                  "name": "_expression"
5847                }
5848              },
5849              {
5850                "type": "FIELD",
5851                "name": "operator",
5852                "content": {
5853                  "type": "STRING",
5854                  "value": "^"
5855                }
5856              },
5857              {
5858                "type": "FIELD",
5859                "name": "right",
5860                "content": {
5861                  "type": "SYMBOL",
5862                  "name": "_expression"
5863                }
5864              }
5865            ]
5866          }
5867        },
5868        {
5869          "type": "PREC_LEFT",
5870          "value": 5,
5871          "content": {
5872            "type": "SEQ",
5873            "members": [
5874              {
5875                "type": "FIELD",
5876                "name": "left",
5877                "content": {
5878                  "type": "SYMBOL",
5879                  "name": "_expression"
5880                }
5881              },
5882              {
5883                "type": "FIELD",
5884                "name": "operator",
5885                "content": {
5886                  "type": "STRING",
5887                  "value": "&"
5888                }
5889              },
5890              {
5891                "type": "FIELD",
5892                "name": "right",
5893                "content": {
5894                  "type": "SYMBOL",
5895                  "name": "_expression"
5896                }
5897              }
5898            ]
5899          }
5900        },
5901        {
5902          "type": "PREC_LEFT",
5903          "value": 6,
5904          "content": {
5905            "type": "SEQ",
5906            "members": [
5907              {
5908                "type": "FIELD",
5909                "name": "left",
5910                "content": {
5911                  "type": "SYMBOL",
5912                  "name": "_expression"
5913                }
5914              },
5915              {
5916                "type": "FIELD",
5917                "name": "operator",
5918                "content": {
5919                  "type": "STRING",
5920                  "value": "=="
5921                }
5922              },
5923              {
5924                "type": "FIELD",
5925                "name": "right",
5926                "content": {
5927                  "type": "SYMBOL",
5928                  "name": "_expression"
5929                }
5930              }
5931            ]
5932          }
5933        },
5934        {
5935          "type": "PREC_LEFT",
5936          "value": 6,
5937          "content": {
5938            "type": "SEQ",
5939            "members": [
5940              {
5941                "type": "FIELD",
5942                "name": "left",
5943                "content": {
5944                  "type": "SYMBOL",
5945                  "name": "_expression"
5946                }
5947              },
5948              {
5949                "type": "FIELD",
5950                "name": "operator",
5951                "content": {
5952                  "type": "STRING",
5953                  "value": "!="
5954                }
5955              },
5956              {
5957                "type": "FIELD",
5958                "name": "right",
5959                "content": {
5960                  "type": "SYMBOL",
5961                  "name": "_expression"
5962                }
5963              }
5964            ]
5965          }
5966        },
5967        {
5968          "type": "PREC_LEFT",
5969          "value": 7,
5970          "content": {
5971            "type": "SEQ",
5972            "members": [
5973              {
5974                "type": "FIELD",
5975                "name": "left",
5976                "content": {
5977                  "type": "SYMBOL",
5978                  "name": "_expression"
5979                }
5980              },
5981              {
5982                "type": "FIELD",
5983                "name": "operator",
5984                "content": {
5985                  "type": "STRING",
5986                  "value": ">"
5987                }
5988              },
5989              {
5990                "type": "FIELD",
5991                "name": "right",
5992                "content": {
5993                  "type": "SYMBOL",
5994                  "name": "_expression"
5995                }
5996              }
5997            ]
5998          }
5999        },
6000        {
6001          "type": "PREC_LEFT",
6002          "value": 7,
6003          "content": {
6004            "type": "SEQ",
6005            "members": [
6006              {
6007                "type": "FIELD",
6008                "name": "left",
6009                "content": {
6010                  "type": "SYMBOL",
6011                  "name": "_expression"
6012                }
6013              },
6014              {
6015                "type": "FIELD",
6016                "name": "operator",
6017                "content": {
6018                  "type": "STRING",
6019                  "value": ">="
6020                }
6021              },
6022              {
6023                "type": "FIELD",
6024                "name": "right",
6025                "content": {
6026                  "type": "SYMBOL",
6027                  "name": "_expression"
6028                }
6029              }
6030            ]
6031          }
6032        },
6033        {
6034          "type": "PREC_LEFT",
6035          "value": 7,
6036          "content": {
6037            "type": "SEQ",
6038            "members": [
6039              {
6040                "type": "FIELD",
6041                "name": "left",
6042                "content": {
6043                  "type": "SYMBOL",
6044                  "name": "_expression"
6045                }
6046              },
6047              {
6048                "type": "FIELD",
6049                "name": "operator",
6050                "content": {
6051                  "type": "STRING",
6052                  "value": "<="
6053                }
6054              },
6055              {
6056                "type": "FIELD",
6057                "name": "right",
6058                "content": {
6059                  "type": "SYMBOL",
6060                  "name": "_expression"
6061                }
6062              }
6063            ]
6064          }
6065        },
6066        {
6067          "type": "PREC_LEFT",
6068          "value": 7,
6069          "content": {
6070            "type": "SEQ",
6071            "members": [
6072              {
6073                "type": "FIELD",
6074                "name": "left",
6075                "content": {
6076                  "type": "SYMBOL",
6077                  "name": "_expression"
6078                }
6079              },
6080              {
6081                "type": "FIELD",
6082                "name": "operator",
6083                "content": {
6084                  "type": "STRING",
6085                  "value": "<"
6086                }
6087              },
6088              {
6089                "type": "FIELD",
6090                "name": "right",
6091                "content": {
6092                  "type": "SYMBOL",
6093                  "name": "_expression"
6094                }
6095              }
6096            ]
6097          }
6098        },
6099        {
6100          "type": "PREC_LEFT",
6101          "value": 9,
6102          "content": {
6103            "type": "SEQ",
6104            "members": [
6105              {
6106                "type": "FIELD",
6107                "name": "left",
6108                "content": {
6109                  "type": "SYMBOL",
6110                  "name": "_expression"
6111                }
6112              },
6113              {
6114                "type": "FIELD",
6115                "name": "operator",
6116                "content": {
6117                  "type": "STRING",
6118                  "value": "<<"
6119                }
6120              },
6121              {
6122                "type": "FIELD",
6123                "name": "right",
6124                "content": {
6125                  "type": "SYMBOL",
6126                  "name": "_expression"
6127                }
6128              }
6129            ]
6130          }
6131        },
6132        {
6133          "type": "PREC_LEFT",
6134          "value": 9,
6135          "content": {
6136            "type": "SEQ",
6137            "members": [
6138              {
6139                "type": "FIELD",
6140                "name": "left",
6141                "content": {
6142                  "type": "SYMBOL",
6143                  "name": "_expression"
6144                }
6145              },
6146              {
6147                "type": "FIELD",
6148                "name": "operator",
6149                "content": {
6150                  "type": "STRING",
6151                  "value": ">>"
6152                }
6153              },
6154              {
6155                "type": "FIELD",
6156                "name": "right",
6157                "content": {
6158                  "type": "SYMBOL",
6159                  "name": "_expression"
6160                }
6161              }
6162            ]
6163          }
6164        }
6165      ]
6166    },
6167    "update_expression": {
6168      "type": "PREC_RIGHT",
6169      "value": 14,
6170      "content": {
6171        "type": "CHOICE",
6172        "members": [
6173          {
6174            "type": "SEQ",
6175            "members": [
6176              {
6177                "type": "FIELD",
6178                "name": "operator",
6179                "content": {
6180                  "type": "CHOICE",
6181                  "members": [
6182                    {
6183                      "type": "STRING",
6184                      "value": "--"
6185                    },
6186                    {
6187                      "type": "STRING",
6188                      "value": "++"
6189                    }
6190                  ]
6191                }
6192              },
6193              {
6194                "type": "FIELD",
6195                "name": "argument",
6196                "content": {
6197                  "type": "SYMBOL",
6198                  "name": "_expression"
6199                }
6200              }
6201            ]
6202          },
6203          {
6204            "type": "SEQ",
6205            "members": [
6206              {
6207                "type": "FIELD",
6208                "name": "argument",
6209                "content": {
6210                  "type": "SYMBOL",
6211                  "name": "_expression"
6212                }
6213              },
6214              {
6215                "type": "FIELD",
6216                "name": "operator",
6217                "content": {
6218                  "type": "CHOICE",
6219                  "members": [
6220                    {
6221                      "type": "STRING",
6222                      "value": "--"
6223                    },
6224                    {
6225                      "type": "STRING",
6226                      "value": "++"
6227                    }
6228                  ]
6229                }
6230              }
6231            ]
6232          }
6233        ]
6234      }
6235    },
6236    "cast_expression": {
6237      "type": "PREC",
6238      "value": 12,
6239      "content": {
6240        "type": "SEQ",
6241        "members": [
6242          {
6243            "type": "STRING",
6244            "value": "("
6245          },
6246          {
6247            "type": "FIELD",
6248            "name": "type",
6249            "content": {
6250              "type": "SYMBOL",
6251              "name": "type_descriptor"
6252            }
6253          },
6254          {
6255            "type": "STRING",
6256            "value": ")"
6257          },
6258          {
6259            "type": "FIELD",
6260            "name": "value",
6261            "content": {
6262              "type": "SYMBOL",
6263              "name": "_expression"
6264            }
6265          }
6266        ]
6267      }
6268    },
6269    "type_descriptor": {
6270      "type": "SEQ",
6271      "members": [
6272        {
6273          "type": "REPEAT",
6274          "content": {
6275            "type": "SYMBOL",
6276            "name": "type_qualifier"
6277          }
6278        },
6279        {
6280          "type": "FIELD",
6281          "name": "type",
6282          "content": {
6283            "type": "SYMBOL",
6284            "name": "_type_specifier"
6285          }
6286        },
6287        {
6288          "type": "REPEAT",
6289          "content": {
6290            "type": "SYMBOL",
6291            "name": "type_qualifier"
6292          }
6293        },
6294        {
6295          "type": "FIELD",
6296          "name": "declarator",
6297          "content": {
6298            "type": "CHOICE",
6299            "members": [
6300              {
6301                "type": "SYMBOL",
6302                "name": "_abstract_declarator"
6303              },
6304              {
6305                "type": "BLANK"
6306              }
6307            ]
6308          }
6309        }
6310      ]
6311    },
6312    "sizeof_expression": {
6313      "type": "PREC",
6314      "value": 13,
6315      "content": {
6316        "type": "SEQ",
6317        "members": [
6318          {
6319            "type": "STRING",
6320            "value": "sizeof"
6321          },
6322          {
6323            "type": "CHOICE",
6324            "members": [
6325              {
6326                "type": "FIELD",
6327                "name": "value",
6328                "content": {
6329                  "type": "SYMBOL",
6330                  "name": "_expression"
6331                }
6332              },
6333              {
6334                "type": "SEQ",
6335                "members": [
6336                  {
6337                    "type": "STRING",
6338                    "value": "("
6339                  },
6340                  {
6341                    "type": "FIELD",
6342                    "name": "type",
6343                    "content": {
6344                      "type": "SYMBOL",
6345                      "name": "type_descriptor"
6346                    }
6347                  },
6348                  {
6349                    "type": "STRING",
6350                    "value": ")"
6351                  }
6352                ]
6353              }
6354            ]
6355          }
6356        ]
6357      }
6358    },
6359    "alignof_expression": {
6360      "type": "PREC",
6361      "value": 13,
6362      "content": {
6363        "type": "SEQ",
6364        "members": [
6365          {
6366            "type": "CHOICE",
6367            "members": [
6368              {
6369                "type": "STRING",
6370                "value": "__alignof__"
6371              },
6372              {
6373                "type": "STRING",
6374                "value": "__alignof"
6375              },
6376              {
6377                "type": "STRING",
6378                "value": "_alignof"
6379              },
6380              {
6381                "type": "STRING",
6382                "value": "alignof"
6383              },
6384              {
6385                "type": "STRING",
6386                "value": "_Alignof"
6387              }
6388            ]
6389          },
6390          {
6391            "type": "SEQ",
6392            "members": [
6393              {
6394                "type": "STRING",
6395                "value": "("
6396              },
6397              {
6398                "type": "FIELD",
6399                "name": "type",
6400                "content": {
6401                  "type": "SYMBOL",
6402                  "name": "type_descriptor"
6403                }
6404              },
6405              {
6406                "type": "STRING",
6407                "value": ")"
6408              }
6409            ]
6410          }
6411        ]
6412      }
6413    },
6414    "offsetof_expression": {
6415      "type": "PREC",
6416      "value": 8,
6417      "content": {
6418        "type": "SEQ",
6419        "members": [
6420          {
6421            "type": "STRING",
6422            "value": "offsetof"
6423          },
6424          {
6425            "type": "SEQ",
6426            "members": [
6427              {
6428                "type": "STRING",
6429                "value": "("
6430              },
6431              {
6432                "type": "FIELD",
6433                "name": "type",
6434                "content": {
6435                  "type": "SYMBOL",
6436                  "name": "type_descriptor"
6437                }
6438              },
6439              {
6440                "type": "STRING",
6441                "value": ","
6442              },
6443              {
6444                "type": "FIELD",
6445                "name": "member",
6446                "content": {
6447                  "type": "SYMBOL",
6448                  "name": "_field_identifier"
6449                }
6450              },
6451              {
6452                "type": "STRING",
6453                "value": ")"
6454              }
6455            ]
6456          }
6457        ]
6458      }
6459    },
6460    "generic_expression": {
6461      "type": "PREC",
6462      "value": 15,
6463      "content": {
6464        "type": "SEQ",
6465        "members": [
6466          {
6467            "type": "STRING",
6468            "value": "_Generic"
6469          },
6470          {
6471            "type": "STRING",
6472            "value": "("
6473          },
6474          {
6475            "type": "SYMBOL",
6476            "name": "_expression"
6477          },
6478          {
6479            "type": "STRING",
6480            "value": ","
6481          },
6482          {
6483            "type": "SEQ",
6484            "members": [
6485              {
6486                "type": "SEQ",
6487                "members": [
6488                  {
6489                    "type": "SYMBOL",
6490                    "name": "type_descriptor"
6491                  },
6492                  {
6493                    "type": "STRING",
6494                    "value": ":"
6495                  },
6496                  {
6497                    "type": "SYMBOL",
6498                    "name": "_expression"
6499                  }
6500                ]
6501              },
6502              {
6503                "type": "REPEAT",
6504                "content": {
6505                  "type": "SEQ",
6506                  "members": [
6507                    {
6508                      "type": "STRING",
6509                      "value": ","
6510                    },
6511                    {
6512                      "type": "SEQ",
6513                      "members": [
6514                        {
6515                          "type": "SYMBOL",
6516                          "name": "type_descriptor"
6517                        },
6518                        {
6519                          "type": "STRING",
6520                          "value": ":"
6521                        },
6522                        {
6523                          "type": "SYMBOL",
6524                          "name": "_expression"
6525                        }
6526                      ]
6527                    }
6528                  ]
6529                }
6530              }
6531            ]
6532          },
6533          {
6534            "type": "STRING",
6535            "value": ")"
6536          }
6537        ]
6538      }
6539    },
6540    "subscript_expression": {
6541      "type": "PREC",
6542      "value": 17,
6543      "content": {
6544        "type": "SEQ",
6545        "members": [
6546          {
6547            "type": "FIELD",
6548            "name": "argument",
6549            "content": {
6550              "type": "SYMBOL",
6551              "name": "_expression"
6552            }
6553          },
6554          {
6555            "type": "STRING",
6556            "value": "["
6557          },
6558          {
6559            "type": "FIELD",
6560            "name": "index",
6561            "content": {
6562              "type": "SYMBOL",
6563              "name": "_expression"
6564            }
6565          },
6566          {
6567            "type": "STRING",
6568            "value": "]"
6569          }
6570        ]
6571      }
6572    },
6573    "call_expression": {
6574      "type": "PREC",
6575      "value": 15,
6576      "content": {
6577        "type": "SEQ",
6578        "members": [
6579          {
6580            "type": "FIELD",
6581            "name": "function",
6582            "content": {
6583              "type": "SYMBOL",
6584              "name": "_expression"
6585            }
6586          },
6587          {
6588            "type": "FIELD",
6589            "name": "arguments",
6590            "content": {
6591              "type": "SYMBOL",
6592              "name": "argument_list"
6593            }
6594          }
6595        ]
6596      }
6597    },
6598    "gnu_asm_expression": {
6599      "type": "PREC",
6600      "value": 15,
6601      "content": {
6602        "type": "SEQ",
6603        "members": [
6604          {
6605            "type": "CHOICE",
6606            "members": [
6607              {
6608                "type": "STRING",
6609                "value": "asm"
6610              },
6611              {
6612                "type": "STRING",
6613                "value": "__asm__"
6614              }
6615            ]
6616          },
6617          {
6618            "type": "REPEAT",
6619            "content": {
6620              "type": "SYMBOL",
6621              "name": "gnu_asm_qualifier"
6622            }
6623          },
6624          {
6625            "type": "STRING",
6626            "value": "("
6627          },
6628          {
6629            "type": "FIELD",
6630            "name": "assembly_code",
6631            "content": {
6632              "type": "CHOICE",
6633              "members": [
6634                {
6635                  "type": "SYMBOL",
6636                  "name": "string_literal"
6637                },
6638                {
6639                  "type": "SYMBOL",
6640                  "name": "concatenated_string"
6641                }
6642              ]
6643            }
6644          },
6645          {
6646            "type": "CHOICE",
6647            "members": [
6648              {
6649                "type": "SEQ",
6650                "members": [
6651                  {
6652                    "type": "FIELD",
6653                    "name": "output_operands",
6654                    "content": {
6655                      "type": "SYMBOL",
6656                      "name": "gnu_asm_output_operand_list"
6657                    }
6658                  },
6659                  {
6660                    "type": "CHOICE",
6661                    "members": [
6662                      {
6663                        "type": "SEQ",
6664                        "members": [
6665                          {
6666                            "type": "FIELD",
6667                            "name": "input_operands",
6668                            "content": {
6669                              "type": "SYMBOL",
6670                              "name": "gnu_asm_input_operand_list"
6671                            }
6672                          },
6673                          {
6674                            "type": "CHOICE",
6675                            "members": [
6676                              {
6677                                "type": "SEQ",
6678                                "members": [
6679                                  {
6680                                    "type": "FIELD",
6681                                    "name": "clobbers",
6682                                    "content": {
6683                                      "type": "SYMBOL",
6684                                      "name": "gnu_asm_clobber_list"
6685                                    }
6686                                  },
6687                                  {
6688                                    "type": "CHOICE",
6689                                    "members": [
6690                                      {
6691                                        "type": "FIELD",
6692                                        "name": "goto_labels",
6693                                        "content": {
6694                                          "type": "SYMBOL",
6695                                          "name": "gnu_asm_goto_list"
6696                                        }
6697                                      },
6698                                      {
6699                                        "type": "BLANK"
6700                                      }
6701                                    ]
6702                                  }
6703                                ]
6704                              },
6705                              {
6706                                "type": "BLANK"
6707                              }
6708                            ]
6709                          }
6710                        ]
6711                      },
6712                      {
6713                        "type": "BLANK"
6714                      }
6715                    ]
6716                  }
6717                ]
6718              },
6719              {
6720                "type": "BLANK"
6721              }
6722            ]
6723          },
6724          {
6725            "type": "STRING",
6726            "value": ")"
6727          }
6728        ]
6729      }
6730    },
6731    "gnu_asm_qualifier": {
6732      "type": "CHOICE",
6733      "members": [
6734        {
6735          "type": "STRING",
6736          "value": "volatile"
6737        },
6738        {
6739          "type": "STRING",
6740          "value": "inline"
6741        },
6742        {
6743          "type": "STRING",
6744          "value": "goto"
6745        }
6746      ]
6747    },
6748    "gnu_asm_output_operand_list": {
6749      "type": "SEQ",
6750      "members": [
6751        {
6752          "type": "STRING",
6753          "value": ":"
6754        },
6755        {
6756          "type": "CHOICE",
6757          "members": [
6758            {
6759              "type": "SEQ",
6760              "members": [
6761                {
6762                  "type": "FIELD",
6763                  "name": "operand",
6764                  "content": {
6765                    "type": "SYMBOL",
6766                    "name": "gnu_asm_output_operand"
6767                  }
6768                },
6769                {
6770                  "type": "REPEAT",
6771                  "content": {
6772                    "type": "SEQ",
6773                    "members": [
6774                      {
6775                        "type": "STRING",
6776                        "value": ","
6777                      },
6778                      {
6779                        "type": "FIELD",
6780                        "name": "operand",
6781                        "content": {
6782                          "type": "SYMBOL",
6783                          "name": "gnu_asm_output_operand"
6784                        }
6785                      }
6786                    ]
6787                  }
6788                }
6789              ]
6790            },
6791            {
6792              "type": "BLANK"
6793            }
6794          ]
6795        }
6796      ]
6797    },
6798    "gnu_asm_output_operand": {
6799      "type": "SEQ",
6800      "members": [
6801        {
6802          "type": "CHOICE",
6803          "members": [
6804            {
6805              "type": "SEQ",
6806              "members": [
6807                {
6808                  "type": "STRING",
6809                  "value": "["
6810                },
6811                {
6812                  "type": "FIELD",
6813                  "name": "symbol",
6814                  "content": {
6815                    "type": "SYMBOL",
6816                    "name": "identifier"
6817                  }
6818                },
6819                {
6820                  "type": "STRING",
6821                  "value": "]"
6822                }
6823              ]
6824            },
6825            {
6826              "type": "BLANK"
6827            }
6828          ]
6829        },
6830        {
6831          "type": "FIELD",
6832          "name": "constraint",
6833          "content": {
6834            "type": "SYMBOL",
6835            "name": "string_literal"
6836          }
6837        },
6838        {
6839          "type": "STRING",
6840          "value": "("
6841        },
6842        {
6843          "type": "FIELD",
6844          "name": "value",
6845          "content": {
6846            "type": "SYMBOL",
6847            "name": "identifier"
6848          }
6849        },
6850        {
6851          "type": "STRING",
6852          "value": ")"
6853        }
6854      ]
6855    },
6856    "gnu_asm_input_operand_list": {
6857      "type": "SEQ",
6858      "members": [
6859        {
6860          "type": "STRING",
6861          "value": ":"
6862        },
6863        {
6864          "type": "CHOICE",
6865          "members": [
6866            {
6867              "type": "SEQ",
6868              "members": [
6869                {
6870                  "type": "FIELD",
6871                  "name": "operand",
6872                  "content": {
6873                    "type": "SYMBOL",
6874                    "name": "gnu_asm_input_operand"
6875                  }
6876                },
6877                {
6878                  "type": "REPEAT",
6879                  "content": {
6880                    "type": "SEQ",
6881                    "members": [
6882                      {
6883                        "type": "STRING",
6884                        "value": ","
6885                      },
6886                      {
6887                        "type": "FIELD",
6888                        "name": "operand",
6889                        "content": {
6890                          "type": "SYMBOL",
6891                          "name": "gnu_asm_input_operand"
6892                        }
6893                      }
6894                    ]
6895                  }
6896                }
6897              ]
6898            },
6899            {
6900              "type": "BLANK"
6901            }
6902          ]
6903        }
6904      ]
6905    },
6906    "gnu_asm_input_operand": {
6907      "type": "SEQ",
6908      "members": [
6909        {
6910          "type": "CHOICE",
6911          "members": [
6912            {
6913              "type": "SEQ",
6914              "members": [
6915                {
6916                  "type": "STRING",
6917                  "value": "["
6918                },
6919                {
6920                  "type": "FIELD",
6921                  "name": "symbol",
6922                  "content": {
6923                    "type": "SYMBOL",
6924                    "name": "identifier"
6925                  }
6926                },
6927                {
6928                  "type": "STRING",
6929                  "value": "]"
6930                }
6931              ]
6932            },
6933            {
6934              "type": "BLANK"
6935            }
6936          ]
6937        },
6938        {
6939          "type": "FIELD",
6940          "name": "constraint",
6941          "content": {
6942            "type": "SYMBOL",
6943            "name": "string_literal"
6944          }
6945        },
6946        {
6947          "type": "STRING",
6948          "value": "("
6949        },
6950        {
6951          "type": "FIELD",
6952          "name": "value",
6953          "content": {
6954            "type": "SYMBOL",
6955            "name": "_expression"
6956          }
6957        },
6958        {
6959          "type": "STRING",
6960          "value": ")"
6961        }
6962      ]
6963    },
6964    "gnu_asm_clobber_list": {
6965      "type": "SEQ",
6966      "members": [
6967        {
6968          "type": "STRING",
6969          "value": ":"
6970        },
6971        {
6972          "type": "CHOICE",
6973          "members": [
6974            {
6975              "type": "SEQ",
6976              "members": [
6977                {
6978                  "type": "FIELD",
6979                  "name": "register",
6980                  "content": {
6981                    "type": "SYMBOL",
6982                    "name": "string_literal"
6983                  }
6984                },
6985                {
6986                  "type": "REPEAT",
6987                  "content": {
6988                    "type": "SEQ",
6989                    "members": [
6990                      {
6991                        "type": "STRING",
6992                        "value": ","
6993                      },
6994                      {
6995                        "type": "FIELD",
6996                        "name": "register",
6997                        "content": {
6998                          "type": "SYMBOL",
6999                          "name": "string_literal"
7000                        }
7001                      }
7002                    ]
7003                  }
7004                }
7005              ]
7006            },
7007            {
7008              "type": "BLANK"
7009            }
7010          ]
7011        }
7012      ]
7013    },
7014    "gnu_asm_goto_list": {
7015      "type": "SEQ",
7016      "members": [
7017        {
7018          "type": "STRING",
7019          "value": ":"
7020        },
7021        {
7022          "type": "CHOICE",
7023          "members": [
7024            {
7025              "type": "SEQ",
7026              "members": [
7027                {
7028                  "type": "FIELD",
7029                  "name": "label",
7030                  "content": {
7031                    "type": "SYMBOL",
7032                    "name": "identifier"
7033                  }
7034                },
7035                {
7036                  "type": "REPEAT",
7037                  "content": {
7038                    "type": "SEQ",
7039                    "members": [
7040                      {
7041                        "type": "STRING",
7042                        "value": ","
7043                      },
7044                      {
7045                        "type": "FIELD",
7046                        "name": "label",
7047                        "content": {
7048                          "type": "SYMBOL",
7049                          "name": "identifier"
7050                        }
7051                      }
7052                    ]
7053                  }
7054                }
7055              ]
7056            },
7057            {
7058              "type": "BLANK"
7059            }
7060          ]
7061        }
7062      ]
7063    },
7064    "argument_list": {
7065      "type": "SEQ",
7066      "members": [
7067        {
7068          "type": "STRING",
7069          "value": "("
7070        },
7071        {
7072          "type": "CHOICE",
7073          "members": [
7074            {
7075              "type": "SEQ",
7076              "members": [
7077                {
7078                  "type": "CHOICE",
7079                  "members": [
7080                    {
7081                      "type": "SEQ",
7082                      "members": [
7083                        {
7084                          "type": "CHOICE",
7085                          "members": [
7086                            {
7087                              "type": "STRING",
7088                              "value": "__extension__"
7089                            },
7090                            {
7091                              "type": "BLANK"
7092                            }
7093                          ]
7094                        },
7095                        {
7096                          "type": "SYMBOL",
7097                          "name": "_expression"
7098                        }
7099                      ]
7100                    },
7101                    {
7102                      "type": "SYMBOL",
7103                      "name": "compound_statement"
7104                    }
7105                  ]
7106                },
7107                {
7108                  "type": "REPEAT",
7109                  "content": {
7110                    "type": "SEQ",
7111                    "members": [
7112                      {
7113                        "type": "STRING",
7114                        "value": ","
7115                      },
7116                      {
7117                        "type": "CHOICE",
7118                        "members": [
7119                          {
7120                            "type": "SEQ",
7121                            "members": [
7122                              {
7123                                "type": "CHOICE",
7124                                "members": [
7125                                  {
7126                                    "type": "STRING",
7127                                    "value": "__extension__"
7128                                  },
7129                                  {
7130                                    "type": "BLANK"
7131                                  }
7132                                ]
7133                              },
7134                              {
7135                                "type": "SYMBOL",
7136                                "name": "_expression"
7137                              }
7138                            ]
7139                          },
7140                          {
7141                            "type": "SYMBOL",
7142                            "name": "compound_statement"
7143                          }
7144                        ]
7145                      }
7146                    ]
7147                  }
7148                }
7149              ]
7150            },
7151            {
7152              "type": "BLANK"
7153            }
7154          ]
7155        },
7156        {
7157          "type": "STRING",
7158          "value": ")"
7159        }
7160      ]
7161    },
7162    "field_expression": {
7163      "type": "SEQ",
7164      "members": [
7165        {
7166          "type": "PREC",
7167          "value": 16,
7168          "content": {
7169            "type": "SEQ",
7170            "members": [
7171              {
7172                "type": "FIELD",
7173                "name": "argument",
7174                "content": {
7175                  "type": "SYMBOL",
7176                  "name": "_expression"
7177                }
7178              },
7179              {
7180                "type": "FIELD",
7181                "name": "operator",
7182                "content": {
7183                  "type": "CHOICE",
7184                  "members": [
7185                    {
7186                      "type": "STRING",
7187                      "value": "."
7188                    },
7189                    {
7190                      "type": "STRING",
7191                      "value": "->"
7192                    }
7193                  ]
7194                }
7195              }
7196            ]
7197          }
7198        },
7199        {
7200          "type": "FIELD",
7201          "name": "field",
7202          "content": {
7203            "type": "SYMBOL",
7204            "name": "_field_identifier"
7205          }
7206        }
7207      ]
7208    },
7209    "compound_literal_expression": {
7210      "type": "SEQ",
7211      "members": [
7212        {
7213          "type": "STRING",
7214          "value": "("
7215        },
7216        {
7217          "type": "FIELD",
7218          "name": "type",
7219          "content": {
7220            "type": "SYMBOL",
7221            "name": "type_descriptor"
7222          }
7223        },
7224        {
7225          "type": "STRING",
7226          "value": ")"
7227        },
7228        {
7229          "type": "FIELD",
7230          "name": "value",
7231          "content": {
7232            "type": "SYMBOL",
7233            "name": "initializer_list"
7234          }
7235        }
7236      ]
7237    },
7238    "parenthesized_expression": {
7239      "type": "SEQ",
7240      "members": [
7241        {
7242          "type": "STRING",
7243          "value": "("
7244        },
7245        {
7246          "type": "CHOICE",
7247          "members": [
7248            {
7249              "type": "SYMBOL",
7250              "name": "_expression"
7251            },
7252            {
7253              "type": "SYMBOL",
7254              "name": "comma_expression"
7255            }
7256          ]
7257        },
7258        {
7259          "type": "STRING",
7260          "value": ")"
7261        }
7262      ]
7263    },
7264    "initializer_list": {
7265      "type": "SEQ",
7266      "members": [
7267        {
7268          "type": "STRING",
7269          "value": "{"
7270        },
7271        {
7272          "type": "CHOICE",
7273          "members": [
7274            {
7275              "type": "SEQ",
7276              "members": [
7277                {
7278                  "type": "CHOICE",
7279                  "members": [
7280                    {
7281                      "type": "SYMBOL",
7282                      "name": "initializer_pair"
7283                    },
7284                    {
7285                      "type": "SYMBOL",
7286                      "name": "_expression"
7287                    },
7288                    {
7289                      "type": "SYMBOL",
7290                      "name": "initializer_list"
7291                    }
7292                  ]
7293                },
7294                {
7295                  "type": "REPEAT",
7296                  "content": {
7297                    "type": "SEQ",
7298                    "members": [
7299                      {
7300                        "type": "STRING",
7301                        "value": ","
7302                      },
7303                      {
7304                        "type": "CHOICE",
7305                        "members": [
7306                          {
7307                            "type": "SYMBOL",
7308                            "name": "initializer_pair"
7309                          },
7310                          {
7311                            "type": "SYMBOL",
7312                            "name": "_expression"
7313                          },
7314                          {
7315                            "type": "SYMBOL",
7316                            "name": "initializer_list"
7317                          }
7318                        ]
7319                      }
7320                    ]
7321                  }
7322                }
7323              ]
7324            },
7325            {
7326              "type": "BLANK"
7327            }
7328          ]
7329        },
7330        {
7331          "type": "CHOICE",
7332          "members": [
7333            {
7334              "type": "STRING",
7335              "value": ","
7336            },
7337            {
7338              "type": "BLANK"
7339            }
7340          ]
7341        },
7342        {
7343          "type": "STRING",
7344          "value": "}"
7345        }
7346      ]
7347    },
7348    "initializer_pair": {
7349      "type": "SEQ",
7350      "members": [
7351        {
7352          "type": "FIELD",
7353          "name": "designator",
7354          "content": {
7355            "type": "REPEAT1",
7356            "content": {
7357              "type": "CHOICE",
7358              "members": [
7359                {
7360                  "type": "SYMBOL",
7361                  "name": "subscript_designator"
7362                },
7363                {
7364                  "type": "SYMBOL",
7365                  "name": "field_designator"
7366                }
7367              ]
7368            }
7369          }
7370        },
7371        {
7372          "type": "STRING",
7373          "value": "="
7374        },
7375        {
7376          "type": "FIELD",
7377          "name": "value",
7378          "content": {
7379            "type": "CHOICE",
7380            "members": [
7381              {
7382                "type": "SYMBOL",
7383                "name": "_expression"
7384              },
7385              {
7386                "type": "SYMBOL",
7387                "name": "initializer_list"
7388              }
7389            ]
7390          }
7391        }
7392      ]
7393    },
7394    "subscript_designator": {
7395      "type": "SEQ",
7396      "members": [
7397        {
7398          "type": "STRING",
7399          "value": "["
7400        },
7401        {
7402          "type": "SYMBOL",
7403          "name": "_expression"
7404        },
7405        {
7406          "type": "STRING",
7407          "value": "]"
7408        }
7409      ]
7410    },
7411    "field_designator": {
7412      "type": "SEQ",
7413      "members": [
7414        {
7415          "type": "STRING",
7416          "value": "."
7417        },
7418        {
7419          "type": "SYMBOL",
7420          "name": "_field_identifier"
7421        }
7422      ]
7423    },
7424    "number_literal": {
7425      "type": "TOKEN",
7426      "content": {
7427        "type": "SEQ",
7428        "members": [
7429          {
7430            "type": "CHOICE",
7431            "members": [
7432              {
7433                "type": "PATTERN",
7434                "value": "[-\\+]"
7435              },
7436              {
7437                "type": "BLANK"
7438              }
7439            ]
7440          },
7441          {
7442            "type": "CHOICE",
7443            "members": [
7444              {
7445                "type": "CHOICE",
7446                "members": [
7447                  {
7448                    "type": "PATTERN",
7449                    "value": "0[xX]"
7450                  },
7451                  {
7452                    "type": "PATTERN",
7453                    "value": "0[bB]"
7454                  }
7455                ]
7456              },
7457              {
7458                "type": "BLANK"
7459              }
7460            ]
7461          },
7462          {
7463            "type": "CHOICE",
7464            "members": [
7465              {
7466                "type": "SEQ",
7467                "members": [
7468                  {
7469                    "type": "CHOICE",
7470                    "members": [
7471                      {
7472                        "type": "SEQ",
7473                        "members": [
7474                          {
7475                            "type": "REPEAT1",
7476                            "content": {
7477                              "type": "PATTERN",
7478                              "value": "[0-9]"
7479                            }
7480                          },
7481                          {
7482                            "type": "REPEAT",
7483                            "content": {
7484                              "type": "SEQ",
7485                              "members": [
7486                                {
7487                                  "type": "STRING",
7488                                  "value": "'"
7489                                },
7490                                {
7491                                  "type": "REPEAT1",
7492                                  "content": {
7493                                    "type": "PATTERN",
7494                                    "value": "[0-9]"
7495                                  }
7496                                }
7497                              ]
7498                            }
7499                          }
7500                        ]
7501                      },
7502                      {
7503                        "type": "SEQ",
7504                        "members": [
7505                          {
7506                            "type": "PATTERN",
7507                            "value": "0[bB]"
7508                          },
7509                          {
7510                            "type": "SEQ",
7511                            "members": [
7512                              {
7513                                "type": "REPEAT1",
7514                                "content": {
7515                                  "type": "PATTERN",
7516                                  "value": "[0-9]"
7517                                }
7518                              },
7519                              {
7520                                "type": "REPEAT",
7521                                "content": {
7522                                  "type": "SEQ",
7523                                  "members": [
7524                                    {
7525                                      "type": "STRING",
7526                                      "value": "'"
7527                                    },
7528                                    {
7529                                      "type": "REPEAT1",
7530                                      "content": {
7531                                        "type": "PATTERN",
7532                                        "value": "[0-9]"
7533                                      }
7534                                    }
7535                                  ]
7536                                }
7537                              }
7538                            ]
7539                          }
7540                        ]
7541                      },
7542                      {
7543                        "type": "SEQ",
7544                        "members": [
7545                          {
7546                            "type": "PATTERN",
7547                            "value": "0[xX]"
7548                          },
7549                          {
7550                            "type": "SEQ",
7551                            "members": [
7552                              {
7553                                "type": "REPEAT1",
7554                                "content": {
7555                                  "type": "PATTERN",
7556                                  "value": "[0-9a-fA-F]"
7557                                }
7558                              },
7559                              {
7560                                "type": "REPEAT",
7561                                "content": {
7562                                  "type": "SEQ",
7563                                  "members": [
7564                                    {
7565                                      "type": "STRING",
7566                                      "value": "'"
7567                                    },
7568                                    {
7569                                      "type": "REPEAT1",
7570                                      "content": {
7571                                        "type": "PATTERN",
7572                                        "value": "[0-9a-fA-F]"
7573                                      }
7574                                    }
7575                                  ]
7576                                }
7577                              }
7578                            ]
7579                          }
7580                        ]
7581                      }
7582                    ]
7583                  },
7584                  {
7585                    "type": "CHOICE",
7586                    "members": [
7587                      {
7588                        "type": "SEQ",
7589                        "members": [
7590                          {
7591                            "type": "STRING",
7592                            "value": "."
7593                          },
7594                          {
7595                            "type": "CHOICE",
7596                            "members": [
7597                              {
7598                                "type": "SEQ",
7599                                "members": [
7600                                  {
7601                                    "type": "REPEAT1",
7602                                    "content": {
7603                                      "type": "PATTERN",
7604                                      "value": "[0-9a-fA-F]"
7605                                    }
7606                                  },
7607                                  {
7608                                    "type": "REPEAT",
7609                                    "content": {
7610                                      "type": "SEQ",
7611                                      "members": [
7612                                        {
7613                                          "type": "STRING",
7614                                          "value": "'"
7615                                        },
7616                                        {
7617                                          "type": "REPEAT1",
7618                                          "content": {
7619                                            "type": "PATTERN",
7620                                            "value": "[0-9a-fA-F]"
7621                                          }
7622                                        }
7623                                      ]
7624                                    }
7625                                  }
7626                                ]
7627                              },
7628                              {
7629                                "type": "BLANK"
7630                              }
7631                            ]
7632                          }
7633                        ]
7634                      },
7635                      {
7636                        "type": "BLANK"
7637                      }
7638                    ]
7639                  }
7640                ]
7641              },
7642              {
7643                "type": "SEQ",
7644                "members": [
7645                  {
7646                    "type": "STRING",
7647                    "value": "."
7648                  },
7649                  {
7650                    "type": "SEQ",
7651                    "members": [
7652                      {
7653                        "type": "REPEAT1",
7654                        "content": {
7655                          "type": "PATTERN",
7656                          "value": "[0-9]"
7657                        }
7658                      },
7659                      {
7660                        "type": "REPEAT",
7661                        "content": {
7662                          "type": "SEQ",
7663                          "members": [
7664                            {
7665                              "type": "STRING",
7666                              "value": "'"
7667                            },
7668                            {
7669                              "type": "REPEAT1",
7670                              "content": {
7671                                "type": "PATTERN",
7672                                "value": "[0-9]"
7673                              }
7674                            }
7675                          ]
7676                        }
7677                      }
7678                    ]
7679                  }
7680                ]
7681              }
7682            ]
7683          },
7684          {
7685            "type": "CHOICE",
7686            "members": [
7687              {
7688                "type": "SEQ",
7689                "members": [
7690                  {
7691                    "type": "PATTERN",
7692                    "value": "[eEpP]"
7693                  },
7694                  {
7695                    "type": "CHOICE",
7696                    "members": [
7697                      {
7698                        "type": "SEQ",
7699                        "members": [
7700                          {
7701                            "type": "CHOICE",
7702                            "members": [
7703                              {
7704                                "type": "PATTERN",
7705                                "value": "[-\\+]"
7706                              },
7707                              {
7708                                "type": "BLANK"
7709                              }
7710                            ]
7711                          },
7712                          {
7713                            "type": "SEQ",
7714                            "members": [
7715                              {
7716                                "type": "REPEAT1",
7717                                "content": {
7718                                  "type": "PATTERN",
7719                                  "value": "[0-9a-fA-F]"
7720                                }
7721                              },
7722                              {
7723                                "type": "REPEAT",
7724                                "content": {
7725                                  "type": "SEQ",
7726                                  "members": [
7727                                    {
7728                                      "type": "STRING",
7729                                      "value": "'"
7730                                    },
7731                                    {
7732                                      "type": "REPEAT1",
7733                                      "content": {
7734                                        "type": "PATTERN",
7735                                        "value": "[0-9a-fA-F]"
7736                                      }
7737                                    }
7738                                  ]
7739                                }
7740                              }
7741                            ]
7742                          }
7743                        ]
7744                      },
7745                      {
7746                        "type": "BLANK"
7747                      }
7748                    ]
7749                  }
7750                ]
7751              },
7752              {
7753                "type": "BLANK"
7754              }
7755            ]
7756          },
7757          {
7758            "type": "PATTERN",
7759            "value": "[uUlLwWfFbBdD]*"
7760          }
7761        ]
7762      }
7763    },
7764    "char_literal": {
7765      "type": "SEQ",
7766      "members": [
7767        {
7768          "type": "CHOICE",
7769          "members": [
7770            {
7771              "type": "STRING",
7772              "value": "L'"
7773            },
7774            {
7775              "type": "STRING",
7776              "value": "u'"
7777            },
7778            {
7779              "type": "STRING",
7780              "value": "U'"
7781            },
7782            {
7783              "type": "STRING",
7784              "value": "u8'"
7785            },
7786            {
7787              "type": "STRING",
7788              "value": "'"
7789            }
7790          ]
7791        },
7792        {
7793          "type": "CHOICE",
7794          "members": [
7795            {
7796              "type": "SYMBOL",
7797              "name": "escape_sequence"
7798            },
7799            {
7800              "type": "ALIAS",
7801              "content": {
7802                "type": "IMMEDIATE_TOKEN",
7803                "content": {
7804                  "type": "PATTERN",
7805                  "value": "[^\\n']"
7806                }
7807              },
7808              "named": true,
7809              "value": "character"
7810            }
7811          ]
7812        },
7813        {
7814          "type": "STRING",
7815          "value": "'"
7816        }
7817      ]
7818    },
7819    "concatenated_string": {
7820      "type": "SEQ",
7821      "members": [
7822        {
7823          "type": "CHOICE",
7824          "members": [
7825            {
7826              "type": "SYMBOL",
7827              "name": "identifier"
7828            },
7829            {
7830              "type": "SYMBOL",
7831              "name": "string_literal"
7832            }
7833          ]
7834        },
7835        {
7836          "type": "SYMBOL",
7837          "name": "string_literal"
7838        },
7839        {
7840          "type": "REPEAT",
7841          "content": {
7842            "type": "CHOICE",
7843            "members": [
7844              {
7845                "type": "SYMBOL",
7846                "name": "string_literal"
7847              },
7848              {
7849                "type": "SYMBOL",
7850                "name": "identifier"
7851              }
7852            ]
7853          }
7854        }
7855      ]
7856    },
7857    "string_literal": {
7858      "type": "SEQ",
7859      "members": [
7860        {
7861          "type": "CHOICE",
7862          "members": [
7863            {
7864              "type": "STRING",
7865              "value": "L\""
7866            },
7867            {
7868              "type": "STRING",
7869              "value": "u\""
7870            },
7871            {
7872              "type": "STRING",
7873              "value": "U\""
7874            },
7875            {
7876              "type": "STRING",
7877              "value": "u8\""
7878            },
7879            {
7880              "type": "STRING",
7881              "value": "\""
7882            }
7883          ]
7884        },
7885        {
7886          "type": "REPEAT",
7887          "content": {
7888            "type": "CHOICE",
7889            "members": [
7890              {
7891                "type": "ALIAS",
7892                "content": {
7893                  "type": "IMMEDIATE_TOKEN",
7894                  "content": {
7895                    "type": "PREC",
7896                    "value": 1,
7897                    "content": {
7898                      "type": "PATTERN",
7899                      "value": "[^\\\\\"\\n]+"
7900                    }
7901                  }
7902                },
7903                "named": true,
7904                "value": "string_content"
7905              },
7906              {
7907                "type": "SYMBOL",
7908                "name": "escape_sequence"
7909              }
7910            ]
7911          }
7912        },
7913        {
7914          "type": "STRING",
7915          "value": "\""
7916        }
7917      ]
7918    },
7919    "escape_sequence": {
7920      "type": "TOKEN",
7921      "content": {
7922        "type": "PREC",
7923        "value": 1,
7924        "content": {
7925          "type": "SEQ",
7926          "members": [
7927            {
7928              "type": "STRING",
7929              "value": "\\"
7930            },
7931            {
7932              "type": "CHOICE",
7933              "members": [
7934                {
7935                  "type": "PATTERN",
7936                  "value": "[^xuU]"
7937                },
7938                {
7939                  "type": "PATTERN",
7940                  "value": "\\d{2,3}"
7941                },
7942                {
7943                  "type": "PATTERN",
7944                  "value": "x[0-9a-fA-F]{2,}"
7945                },
7946                {
7947                  "type": "PATTERN",
7948                  "value": "u[0-9a-fA-F]{4}"
7949                },
7950                {
7951                  "type": "PATTERN",
7952                  "value": "U[0-9a-fA-F]{8}"
7953                }
7954              ]
7955            }
7956          ]
7957        }
7958      }
7959    },
7960    "system_lib_string": {
7961      "type": "TOKEN",
7962      "content": {
7963        "type": "SEQ",
7964        "members": [
7965          {
7966            "type": "STRING",
7967            "value": "<"
7968          },
7969          {
7970            "type": "REPEAT",
7971            "content": {
7972              "type": "CHOICE",
7973              "members": [
7974                {
7975                  "type": "PATTERN",
7976                  "value": "[^>\\n]"
7977                },
7978                {
7979                  "type": "STRING",
7980                  "value": "\\>"
7981                }
7982              ]
7983            }
7984          },
7985          {
7986            "type": "STRING",
7987            "value": ">"
7988          }
7989        ]
7990      }
7991    },
7992    "true": {
7993      "type": "TOKEN",
7994      "content": {
7995        "type": "CHOICE",
7996        "members": [
7997          {
7998            "type": "STRING",
7999            "value": "TRUE"
8000          },
8001          {
8002            "type": "STRING",
8003            "value": "true"
8004          }
8005        ]
8006      }
8007    },
8008    "false": {
8009      "type": "TOKEN",
8010      "content": {
8011        "type": "CHOICE",
8012        "members": [
8013          {
8014            "type": "STRING",
8015            "value": "FALSE"
8016          },
8017          {
8018            "type": "STRING",
8019            "value": "false"
8020          }
8021        ]
8022      }
8023    },
8024    "null": {
8025      "type": "CHOICE",
8026      "members": [
8027        {
8028          "type": "STRING",
8029          "value": "NULL"
8030        },
8031        {
8032          "type": "STRING",
8033          "value": "nullptr"
8034        }
8035      ]
8036    },
8037    "identifier": {
8038      "type": "PATTERN",
8039      "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})*"
8040    },
8041    "_type_identifier": {
8042      "type": "ALIAS",
8043      "content": {
8044        "type": "SYMBOL",
8045        "name": "identifier"
8046      },
8047      "named": true,
8048      "value": "type_identifier"
8049    },
8050    "_field_identifier": {
8051      "type": "ALIAS",
8052      "content": {
8053        "type": "SYMBOL",
8054        "name": "identifier"
8055      },
8056      "named": true,
8057      "value": "field_identifier"
8058    },
8059    "_statement_identifier": {
8060      "type": "ALIAS",
8061      "content": {
8062        "type": "SYMBOL",
8063        "name": "identifier"
8064      },
8065      "named": true,
8066      "value": "statement_identifier"
8067    },
8068    "_empty_declaration": {
8069      "type": "SEQ",
8070      "members": [
8071        {
8072          "type": "SYMBOL",
8073          "name": "_type_specifier"
8074        },
8075        {
8076          "type": "STRING",
8077          "value": ";"
8078        }
8079      ]
8080    },
8081    "macro_type_specifier": {
8082      "type": "PREC_DYNAMIC",
8083      "value": -1,
8084      "content": {
8085        "type": "SEQ",
8086        "members": [
8087          {
8088            "type": "FIELD",
8089            "name": "name",
8090            "content": {
8091              "type": "SYMBOL",
8092              "name": "identifier"
8093            }
8094          },
8095          {
8096            "type": "STRING",
8097            "value": "("
8098          },
8099          {
8100            "type": "FIELD",
8101            "name": "type",
8102            "content": {
8103              "type": "SYMBOL",
8104              "name": "type_descriptor"
8105            }
8106          },
8107          {
8108            "type": "STRING",
8109            "value": ")"
8110          }
8111        ]
8112      }
8113    },
8114    "comment": {
8115      "type": "TOKEN",
8116      "content": {
8117        "type": "CHOICE",
8118        "members": [
8119          {
8120            "type": "SEQ",
8121            "members": [
8122              {
8123                "type": "STRING",
8124                "value": "//"
8125              },
8126              {
8127                "type": "PATTERN",
8128                "value": "(\\\\+(.|\\r?\\n)|[^\\\\\\n])*"
8129              }
8130            ]
8131          },
8132          {
8133            "type": "SEQ",
8134            "members": [
8135              {
8136                "type": "STRING",
8137                "value": "/*"
8138              },
8139              {
8140                "type": "PATTERN",
8141                "value": "[^*]*\\*+([^/*][^*]*\\*+)*"
8142              },
8143              {
8144                "type": "STRING",
8145                "value": "/"
8146              }
8147            ]
8148          }
8149        ]
8150      }
8151    }
8152  },
8153  "extras": [
8154    {
8155      "type": "PATTERN",
8156      "value": "\\s|\\\\\\r?\\n"
8157    },
8158    {
8159      "type": "SYMBOL",
8160      "name": "comment"
8161    }
8162  ],
8163  "conflicts": [
8164    [
8165      "_type_specifier",
8166      "_declarator"
8167    ],
8168    [
8169      "_type_specifier",
8170      "_declarator",
8171      "macro_type_specifier"
8172    ],
8173    [
8174      "_type_specifier",
8175      "_expression_not_binary"
8176    ],
8177    [
8178      "_type_specifier",
8179      "_expression_not_binary",
8180      "macro_type_specifier"
8181    ],
8182    [
8183      "_type_specifier",
8184      "macro_type_specifier"
8185    ],
8186    [
8187      "sized_type_specifier"
8188    ],
8189    [
8190      "attributed_statement"
8191    ],
8192    [
8193      "_declaration_modifiers",
8194      "attributed_statement"
8195    ],
8196    [
8197      "enum_specifier"
8198    ],
8199    [
8200      "_type_specifier",
8201      "_old_style_parameter_list"
8202    ],
8203    [
8204      "parameter_list",
8205      "_old_style_parameter_list"
8206    ]
8207  ],
8208  "precedences": [],
8209  "externals": [],
8210  "inline": [
8211    "_statement",
8212    "_block_item",
8213    "_top_level_item",
8214    "_top_level_statement",
8215    "_type_identifier",
8216    "_field_identifier",
8217    "_statement_identifier",
8218    "_non_case_statement",
8219    "_assignment_left_expression"
8220  ],
8221  "supertypes": [
8222    "_expression",
8223    "_statement",
8224    "_type_specifier",
8225    "_declarator",
8226    "_field_declarator",
8227    "_type_declarator",
8228    "_abstract_declarator"
8229  ],
8230  "PREC": {
8231    "PAREN_DECLARATOR": -10,
8232    "ASSIGNMENT": -2,
8233    "CONDITIONAL": -1,
8234    "DEFAULT": 0,
8235    "LOGICAL_OR": 1,
8236    "LOGICAL_AND": 2,
8237    "INCLUSIVE_OR": 3,
8238    "EXCLUSIVE_OR": 4,
8239    "BITWISE_AND": 5,
8240    "EQUAL": 6,
8241    "RELATIONAL": 7,
8242    "OFFSETOF": 8,
8243    "SHIFT": 9,
8244    "ADD": 10,
8245    "MULTIPLY": 11,
8246    "CAST": 12,
8247    "SIZEOF": 13,
8248    "UNARY": 14,
8249    "CALL": 15,
8250    "FIELD": 16,
8251    "SUBSCRIPT": 17
8252  }
8253}
8254