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