pippijn.exp 106 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634
Grammar has 209 nonterminal symbols, among which 6 start symbols.
Grammar has 233 terminal symbols.
Grammar has 622 productions.
nullable(unary_prefix_operator) = false
nullable(unary_operator) = false
nullable(unary_identifier_declarator) = false
nullable(unary_expression) = false
nullable(unary_abstract_declarator) = false
nullable(typeof_type_specifier) = false
nullable(typeof_type_name) = false
nullable(typeof_declaration_specifier) = false
nullable(typedef_type_specifier) = false
nullable(typedef_declaration_specifier) = false
nullable(type_specifier_nosue) = false
nullable(type_specifier) = false
nullable(type_qualifier) = false
nullable(type_name_noattr) = false
nullable(type_name) = false
nullable(test) = false
nullable(sue_type_specifier) = false
nullable(sue_declaration_specifier) = false
nullable(struct_or_union_specifier) = false
nullable(struct_or_union) = false
nullable(struct_identifier_declarator) = false
nullable(struct_default_declaring_list) = false
nullable(struct_declaring_list) = false
nullable(struct_declarator) = false
nullable(struct_declaration_list_opt) = true
nullable(struct_declaration_list) = false
nullable(struct_declaration) = false
nullable(string_literal) = false
nullable(storage_class) = false
nullable(std_function_declaration) = false
nullable(statement_or_declaration) = false
nullable(statement_noexpr) = false
nullable(statement_expression) = false
nullable(statement) = false
nullable(simple_typedef_declarator) = false
nullable(simple_string_literal) = false
nullable(simple_paren_typedef_declarator) = false
nullable(simple_identifier_declarator) = false
nullable(shift_operator) = false
nullable(shift_expression) = false
nullable(sep_rev(TK_SEMICOLON,parameter_type_list)) = false
nullable(sep_rev(TK_PIPE,datatype_declarator)) = false
nullable(sep_rev(TK_COMMA,simple_identifier_declarator)) = false
nullable(sep_rev(TK_COMMA,parameter_declaration)) = false
nullable(sep_rev(TK_COMMA,numeric_literal)) = false
nullable(sep_rev(TK_COMMA,initialiser)) = false
nullable(sep_rev(TK_COMMA,enumerator)) = false
nullable(sep_rev(TK_COMMA,datatype_member)) = false
nullable(sep_rev(TK_COMMA,attrib)) = false
nullable(sep_rev(TK_COMMA,assignment_expression)) = false
nullable(sep_rev(TK_COMMA,asm_clobbered)) = false
nullable(sep_rev(TK_COMMA,asm_argument)) = false
nullable(sep_rev(TK_COMMA,TK_IDENTIFIER)) = false
nullable(sep(TK_PIPE,datatype_declarator)) = false
nullable(sep(TK_COMMA,simple_identifier_declarator)) = false
nullable(sep(TK_COMMA,numeric_literal)) = false
nullable(sep(TK_COMMA,datatype_member)) = false
nullable(sep(TK_COMMA,attrib)) = false
nullable(sep(TK_COMMA,assignment_expression)) = false
nullable(sep(TK_COMMA,asm_clobbered)) = false
nullable(sep(TK_COMMA,asm_argument)) = false
nullable(sep(TK_COMMA,TK_IDENTIFIER)) = false
nullable(selection_statement) = false
nullable(relational_operator) = false
nullable(relational_expression) = false
nullable(range_expression) = false
nullable(push_scope) = true
nullable(primary_expression) = false
nullable(postfixing_abstract_declarator) = false
nullable(postfix_old_function_declarator) = false
nullable(postfix_identifier_declarator) = false
nullable(postfix_expression) = false
nullable(postfix_abstract_declarator) = false
nullable(pop_scope) = true
nullable(pointer_type_qualifier) = false
nullable(parse_unit) = false
nullable(parse_type) = false
nullable(parse_stmt) = false
nullable(parse_expr) = false
nullable(parse_decl) = false
nullable(paren_typedef_declarator) = false
nullable(paren_postfix_typedef_declarator) = false
nullable(paren_identifier_declarator) = false
nullable(paren(string_literal)) = false
nullable(paren(sep(TK_COMMA,numeric_literal))) = false
nullable(paren(numeric_literal)) = false
nullable(paren(identifier)) = false
nullable(parameter_typedef_declarator) = false
nullable(parameter_type_list) = false
nullable(parameter_declaration_noattr) = false
nullable(parameter_declaration) = false
nullable(option(sep(TK_COMMA,attrib))) = true
nullable(option(sep(TK_COMMA,assignment_expression))) = true
nullable(option(sep(TK_COMMA,asm_clobbered))) = true
nullable(option(paren(numeric_literal))) = true
nullable(option(forward_parameter_type_list)) = true
nullable(option(expression)) = true
nullable(option(enumerator_value)) = true
nullable(option(decl_initialiser)) = true
nullable(option(constant_expression)) = true
nullable(option(bit_field_size)) = true
nullable(option(asm_declaration_specifier)) = true
nullable(option(asm_argument_list)) = true
nullable(option(TK_EQUALS)) = true
nullable(option(TK_COMMA)) = true
nullable(option(KW_EXTENSION)) = true
nullable(old_function_declarator) = false
nullable(old_function_declaration) = false
nullable(numeric_literal) = false
nullable(nonempty_list_rev(type_qualifier)) = false
nullable(nonempty_list_rev(simple_string_literal)) = false
nullable(nonempty_list_rev(pointer_type_qualifier)) = false
nullable(nonempty_list_rev(member_designator)) = false
nullable(nonempty_list_rev(attribute)) = false
nullable(nonempty_list_rev(array_abstract_declarator)) = false
nullable(nonempty_list_rev(TK_STRING_LITERAL)) = false
nullable(nonempty_list(type_qualifier)) = false
nullable(nonempty_list(simple_string_literal)) = false
nullable(nonempty_list(pointer_type_qualifier)) = false
nullable(nonempty_list(member_designator)) = false
nullable(nonempty_list(attribute)) = false
nullable(nonempty_list(array_abstract_declarator)) = false
nullable(nonempty_list(TK_STRING_LITERAL)) = false
nullable(multiplicative_operator) = false
nullable(multiplicative_expression) = false
nullable(member_designators) = false
nullable(member_designator) = false
nullable(logical_or_operator) = false
nullable(logical_or_expression) = false
nullable(logical_and_operator) = false
nullable(logical_and_expression) = false
nullable(list_rev(statement_or_declaration)) = true
nullable(list_rev(declaration)) = true
nullable(list_rev(attribute)) = true
nullable(list(statement_or_declaration)) = true
nullable(list(declaration)) = true
nullable(list(attribute)) = true
nullable(labelled_statement) = false
nullable(jump_statement) = false
nullable(iteration_statement) = false
nullable(initialiser) = false
nullable(inclusive_or_operator) = false
nullable(inclusive_or_expression) = false
nullable(identifier_or_typedef_name) = false
nullable(identifier_declarator) = false
nullable(identifier) = false
nullable(function_definition) = false
nullable(function_declaration) = false
nullable(forward_parameter_type_list) = false
nullable(external_definitions) = false
nullable(external_definition) = false
nullable(expression_statement) = false
nullable(expression) = false
nullable(exclusive_or_operator) = false
nullable(exclusive_or_expression) = false
nullable(equality_operator) = false
nullable(equality_expression) = false
nullable(enumerator_value) = false
nullable(enumerator) = false
nullable(enum_specifier) = false
nullable(elaborated_type_name) = false
nullable(default_toplevel_declaring_list) = false
nullable(default_int) = true
nullable(default_declaring_list) = false
nullable(declaring_list) = false
nullable(declarator) = false
nullable(declaration_specifier_nosue) = false
nullable(declaration_specifier) = false
nullable(declaration_qualifier_list) = false
nullable(declaration_qualifier) = false
nullable(declaration) = false
nullable(decl_initialiser) = false
nullable(datatype_specifier) = false
nullable(datatype_name) = false
nullable(datatype_member_list) = false
nullable(datatype_member) = false
nullable(datatype_declaring_list) = false
nullable(datatype_declarator) = false
nullable(constant_expression) = false
nullable(conditional_expression) = false
nullable(compound_statement) = false
nullable(clean_typedef_declarator) = false
nullable(clean_postfix_typedef_declarator) = false
nullable(cast_expression) = false
nullable(bracketed_initialiser_list) = false
nullable(boption(KW_VOLATILE)) = true
nullable(bit_field_size) = false
nullable(basic_type_specifier) = false
nullable(basic_type_name) = false
nullable(basic_initialiser) = false
nullable(basic_declaration_specifier) = false
nullable(attribute) = false
nullable(attrib) = false
nullable(attr_function_declarator_) = false
nullable(attr_function_declarator) = false
nullable(attr_function_declaration) = false
nullable(assignment_operator) = false
nullable(assignment_expression) = false
nullable(asm_statement) = false
nullable(asm_declaration_specifier) = false
nullable(asm_clobbered) = false
nullable(asm_argument_list) = false
nullable(asm_argument) = false
nullable(array_abstract_declarator) = false
nullable(and_operator) = false
nullable(and_expression) = false
nullable(additive_operator) = false
nullable(additive_expression) = false
nullable(abstract_declarator) = false
first(unary_prefix_operator) = TK_INC TK_DEC
first(unary_operator) = TK_TILDE TK_STAR TK_PLUS TK_MINUS TK_EXMARK TK_ANDAND TK_AND KW_REAL KW_IMAG
first(unary_identifier_declarator) = WC_DECL TK_STAR TK_LBRACK TK_IDENTIFIER
first(unary_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(unary_abstract_declarator) = TK_STAR
first(typeof_type_specifier) = KW_VOLATILE KW_TYPEOF KW_RESTRICT KW_CONST KW_COMPLEX
first(typeof_type_name) = KW_TYPEOF
first(typeof_declaration_specifier) = KW_VOLATILE KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_CONST KW_COMPLEX KW_AUTO
first(typedef_type_specifier) = TK_TYPEDEF_NAME KW_VOLATILE KW_RESTRICT KW_CONST KW_COMPLEX
first(typedef_declaration_specifier) = TK_TYPEDEF_NAME KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_CONST KW_COMPLEX KW_AUTO
first(type_specifier_nosue) = TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_TYPEOF KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_DOUBLE KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL
first(type_specifier) = TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL
first(type_qualifier) = KW_VOLATILE KW_RESTRICT KW_CONST KW_COMPLEX
first(type_name_noattr) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL
first(type_name) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_FASTCALL KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_ATTRIBUTE
first(test) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
first(sue_type_specifier) = KW_VOLATILE KW_UNION KW_STRUCT KW_RESTRICT KW_ENUM KW_DATATYPE KW_CONST KW_COMPLEX
first(sue_declaration_specifier) = KW_VOLATILE KW_UNION KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_ENUM KW_DATATYPE KW_CONST KW_COMPLEX KW_AUTO
first(struct_or_union_specifier) = KW_UNION KW_STRUCT
first(struct_or_union) = KW_UNION KW_STRUCT
first(struct_identifier_declarator) = WC_DECL TK_STAR TK_LBRACK TK_IDENTIFIER
first(struct_default_declaring_list) = KW_VOLATILE KW_RESTRICT KW_CONST KW_COMPLEX
first(struct_declaring_list) = TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL
first(struct_declarator) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER TK_COLON KW_EXTENSION
first(struct_declaration_list_opt) = TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_ATTRIBUTE
first(struct_declaration_list) = TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_ATTRIBUTE
first(struct_declaration) = TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL
first(string_literal) = TK_WSTRING_LITERAL TK_STRING_LITERAL
first(storage_class) = KW_TYPEDEF KW_THREAD KW_STATIC KW_REGISTER KW_INLINE KW_EXTERN KW_AUTO
first(std_function_declaration) = WC_DECL TK_STAR TK_LBRACK TK_IDENTIFIER KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_CONST KW_COMPLEX KW_AUTO
first(statement_or_declaration) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF
first(statement_noexpr) = TK_LBRACE TK_IDENTIFIER KW_WHILE KW_SWITCH KW_RETURN KW_LABEL KW_IF KW_GOTO KW_FOR KW_EXTENSION KW_DO KW_DEFAULT KW_CONTINUE KW_CASE KW_BREAK KW_ASM
first(statement_expression) = TK_LBRACK
first(statement) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SWITCH KW_SIZEOF KW_RETURN KW_REAL KW_OFFSETOF KW_LABEL KW_IMAG KW_IF KW_GOTO KW_FOR KW_EXTENSION KW_DO KW_DEFAULT KW_CONTINUE KW_CASE KW_BREAK KW_ASM KW_ALIGNOF
first(simple_typedef_declarator) = TK_TYPEDEF_NAME
first(simple_string_literal) = TK_WSTRING_LITERAL TK_STRING_LITERAL
first(simple_paren_typedef_declarator) = TK_TYPEDEF_NAME TK_LBRACK
first(simple_identifier_declarator) = TK_IDENTIFIER
first(shift_operator) = TK_LTLT TK_GTGT
first(shift_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(sep_rev(TK_SEMICOLON,parameter_type_list)) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
first(sep_rev(TK_PIPE,datatype_declarator)) = TK_IDENTIFIER
first(sep_rev(TK_COMMA,simple_identifier_declarator)) = TK_IDENTIFIER
first(sep_rev(TK_COMMA,parameter_declaration)) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
first(sep_rev(TK_COMMA,numeric_literal)) = TK_WCHAR_CONSTANT TK_OCTAL_CONSTANT TK_INTEGER_CONSTANT TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_CHAR_CONSTANT TK_BIN_CONSTANT
first(sep_rev(TK_COMMA,initialiser)) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_PERIOD TK_OCTAL_CONSTANT TK_MINUS TK_LSQBRACK TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(sep_rev(TK_COMMA,enumerator)) = TK_IDENTIFIER
first(sep_rev(TK_COMMA,datatype_member)) = TK_IDENTIFIER
first(sep_rev(TK_COMMA,attrib)) = KW_ATTR_WEAKREF KW_ATTR_WEAK KW_ATTR_WARN_UNUSED_RESULT KW_ATTR_VLIW KW_ATTR_VISIBILITY KW_ATTR_VERSION_ID KW_ATTR_VECTOR_SIZE KW_ATTR_USED KW_ATTR_UNUSED KW_ATTR_TRAP_EXIT KW_ATTR_TRANSPARENT_UNION KW_ATTR_TLS_MODEL KW_ATTR_TINY_DATA KW_ATTR_TINY KW_ATTR_THISCALL KW_ATTR_TARGET KW_ATTR_SYSV_ABI KW_ATTR_SYSCALL_LINKAGE KW_ATTR_STDCALL KW_ATTR_SSEREGPARM KW_ATTR_SP_SWITCH KW_ATTR_SPU_VECTOR KW_ATTR_SIGNAL KW_ATTR_SHORT_CALL KW_ATTR_SHORTCALL KW_ATTR_SHARED KW_ATTR_SENTINEL KW_ATTR_SELECTANY KW_ATTR_SECTION KW_ATTR_SAVE_VOLATILES KW_ATTR_SAVEALL KW_ATTR_RETURNS_TWICE KW_ATTR_RESBANK KW_ATTR_REGPARM KW_ATTR_PURE KW_ATTR_PROGMEM KW_ATTR_PCS KW_ATTR_PACKED KW_ATTR_OS_TASK KW_ATTR_OS_MAIN KW_ATTR_OPTIMIZE KW_ATTR_NO_SPLIT_STACK KW_ATTR_NO_INSTRUMENT_FUNCTION KW_ATTR_NOTSHARED KW_ATTR_NOTHROW KW_ATTR_NORETURN KW_ATTR_NONNULL KW_ATTR_NOMIPS16 KW_ATTR_NOINLINE KW_ATTR_NOCOMMON KW_ATTR_NOCLONE KW_ATTR_NMI_HANDLER KW_ATTR_NESTING KW_ATTR_NEAR KW_ATTR_NAKED KW_ATTR_MS_STRUCT KW_ATTR_MS_HOOK_PROLOGUE KW_ATTR_MS_ABI KW_ATTR_MODEL KW_ATTR_MODE KW_ATTR_MIPS16 KW_ATTR_MAY_ALIAS KW_ATTR_MALLOC KW_ATTR_LONG_CALL KW_ATTR_LONGCALL KW_ATTR_LEAF KW_ATTR_L2 KW_ATTR_L1_TEXT KW_ATTR_L1_DATA_B KW_ATTR_L1_DATA_A KW_ATTR_L1_DATA KW_ATTR_KSPISUSP KW_ATTR_ISR KW_ATTR_IO KW_ATTR_INTERRUPT_THREAD KW_ATTR_INTERRUPT_HANDLER KW_ATTR_INTERRUPT KW_ATTR_IFUNC KW_ATTR_HOT KW_ATTR_GNU_INLINE KW_ATTR_GCC_STRUCT KW_ATTR_FUNCTION_VECTOR KW_ATTR_FORMAT_ARG KW_ATTR_FORMAT KW_ATTR_FORCE_ALIGN_ARG_POINTER KW_ATTR_FLATTEN KW_ATTR_FAST_INTERRUPT KW_ATTR_FASTCALL KW_ATTR_FAR KW_ATTR_EXTERNALLY_VISIBLE KW_ATTR_EXCEPTION_HANDLER KW_ATTR_EIGHTBIT_DATA KW_ATTR_DLLIMPORT KW_ATTR_DLLEXPORT KW_ATTR_DISINTERRUPT KW_ATTR_DESTRUCTOR KW_ATTR_DEPRECATED KW_ATTR_CONSTRUCTOR KW_ATTR_CONST KW_ATTR_COMMON KW_ATTR_COLD KW_ATTR_CLEANUP KW_ATTR_CDECL KW_ATTR_CB KW_ATTR_CALLEE_POP_AGGREGATE_RETURN KW_ATTR_BELOW100 KW_ATTR_BASED KW_ATTR_BACK_SWITCH KW_ATTR_ARTIFICIAL KW_ATTR_ALWAYS_INLINE KW_ATTR_ALTIVEC KW_ATTR_ALLOC_SIZE KW_ATTR_ALIGNED KW_ATTR_ALIAS
first(sep_rev(TK_COMMA,assignment_expression)) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(sep_rev(TK_COMMA,asm_clobbered)) = TK_STRING_LITERAL
first(sep_rev(TK_COMMA,asm_argument)) = TK_STRING_LITERAL
first(sep_rev(TK_COMMA,TK_IDENTIFIER)) = TK_IDENTIFIER
first(sep(TK_PIPE,datatype_declarator)) = TK_IDENTIFIER
first(sep(TK_COMMA,simple_identifier_declarator)) = TK_IDENTIFIER
first(sep(TK_COMMA,numeric_literal)) = TK_WCHAR_CONSTANT TK_OCTAL_CONSTANT TK_INTEGER_CONSTANT TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_CHAR_CONSTANT TK_BIN_CONSTANT
first(sep(TK_COMMA,datatype_member)) = TK_IDENTIFIER
first(sep(TK_COMMA,attrib)) = KW_ATTR_WEAKREF KW_ATTR_WEAK KW_ATTR_WARN_UNUSED_RESULT KW_ATTR_VLIW KW_ATTR_VISIBILITY KW_ATTR_VERSION_ID KW_ATTR_VECTOR_SIZE KW_ATTR_USED KW_ATTR_UNUSED KW_ATTR_TRAP_EXIT KW_ATTR_TRANSPARENT_UNION KW_ATTR_TLS_MODEL KW_ATTR_TINY_DATA KW_ATTR_TINY KW_ATTR_THISCALL KW_ATTR_TARGET KW_ATTR_SYSV_ABI KW_ATTR_SYSCALL_LINKAGE KW_ATTR_STDCALL KW_ATTR_SSEREGPARM KW_ATTR_SP_SWITCH KW_ATTR_SPU_VECTOR KW_ATTR_SIGNAL KW_ATTR_SHORT_CALL KW_ATTR_SHORTCALL KW_ATTR_SHARED KW_ATTR_SENTINEL KW_ATTR_SELECTANY KW_ATTR_SECTION KW_ATTR_SAVE_VOLATILES KW_ATTR_SAVEALL KW_ATTR_RETURNS_TWICE KW_ATTR_RESBANK KW_ATTR_REGPARM KW_ATTR_PURE KW_ATTR_PROGMEM KW_ATTR_PCS KW_ATTR_PACKED KW_ATTR_OS_TASK KW_ATTR_OS_MAIN KW_ATTR_OPTIMIZE KW_ATTR_NO_SPLIT_STACK KW_ATTR_NO_INSTRUMENT_FUNCTION KW_ATTR_NOTSHARED KW_ATTR_NOTHROW KW_ATTR_NORETURN KW_ATTR_NONNULL KW_ATTR_NOMIPS16 KW_ATTR_NOINLINE KW_ATTR_NOCOMMON KW_ATTR_NOCLONE KW_ATTR_NMI_HANDLER KW_ATTR_NESTING KW_ATTR_NEAR KW_ATTR_NAKED KW_ATTR_MS_STRUCT KW_ATTR_MS_HOOK_PROLOGUE KW_ATTR_MS_ABI KW_ATTR_MODEL KW_ATTR_MODE KW_ATTR_MIPS16 KW_ATTR_MAY_ALIAS KW_ATTR_MALLOC KW_ATTR_LONG_CALL KW_ATTR_LONGCALL KW_ATTR_LEAF KW_ATTR_L2 KW_ATTR_L1_TEXT KW_ATTR_L1_DATA_B KW_ATTR_L1_DATA_A KW_ATTR_L1_DATA KW_ATTR_KSPISUSP KW_ATTR_ISR KW_ATTR_IO KW_ATTR_INTERRUPT_THREAD KW_ATTR_INTERRUPT_HANDLER KW_ATTR_INTERRUPT KW_ATTR_IFUNC KW_ATTR_HOT KW_ATTR_GNU_INLINE KW_ATTR_GCC_STRUCT KW_ATTR_FUNCTION_VECTOR KW_ATTR_FORMAT_ARG KW_ATTR_FORMAT KW_ATTR_FORCE_ALIGN_ARG_POINTER KW_ATTR_FLATTEN KW_ATTR_FAST_INTERRUPT KW_ATTR_FASTCALL KW_ATTR_FAR KW_ATTR_EXTERNALLY_VISIBLE KW_ATTR_EXCEPTION_HANDLER KW_ATTR_EIGHTBIT_DATA KW_ATTR_DLLIMPORT KW_ATTR_DLLEXPORT KW_ATTR_DISINTERRUPT KW_ATTR_DESTRUCTOR KW_ATTR_DEPRECATED KW_ATTR_CONSTRUCTOR KW_ATTR_CONST KW_ATTR_COMMON KW_ATTR_COLD KW_ATTR_CLEANUP KW_ATTR_CDECL KW_ATTR_CB KW_ATTR_CALLEE_POP_AGGREGATE_RETURN KW_ATTR_BELOW100 KW_ATTR_BASED KW_ATTR_BACK_SWITCH KW_ATTR_ARTIFICIAL KW_ATTR_ALWAYS_INLINE KW_ATTR_ALTIVEC KW_ATTR_ALLOC_SIZE KW_ATTR_ALIGNED KW_ATTR_ALIAS
first(sep(TK_COMMA,assignment_expression)) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(sep(TK_COMMA,asm_clobbered)) = TK_STRING_LITERAL
first(sep(TK_COMMA,asm_argument)) = TK_STRING_LITERAL
first(sep(TK_COMMA,TK_IDENTIFIER)) = TK_IDENTIFIER
first(selection_statement) = KW_SWITCH KW_IF
first(relational_operator) = TK_LESS_EQ TK_LESS TK_GREATER_EQ TK_GREATER
first(relational_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(range_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(push_scope) = 
first(primary_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_STRING_LITERAL TK_OCTAL_CONSTANT TK_LBRACK TK_INTEGER_CONSTANT TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_CHAR_CONSTANT TK_BIN_CONSTANT
first(postfixing_abstract_declarator) = TK_LSQBRACK TK_LBRACK
first(postfix_old_function_declarator) = WC_DECL TK_LBRACK TK_IDENTIFIER
first(postfix_identifier_declarator) = WC_DECL TK_LBRACK TK_IDENTIFIER
first(postfix_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_STRING_LITERAL TK_OCTAL_CONSTANT TK_LBRACK TK_INTEGER_CONSTANT TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_CHAR_CONSTANT TK_BIN_CONSTANT KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_OFFSETOF
first(postfix_abstract_declarator) = TK_LBRACK
first(pop_scope) = 
first(pointer_type_qualifier) = KW_VOLATILE KW_RESTRICT KW_CONST
first(parse_unit) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
first(parse_type) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_FASTCALL KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_ATTRIBUTE
first(parse_stmt) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SWITCH KW_SIZEOF KW_RETURN KW_REAL KW_OFFSETOF KW_LABEL KW_IMAG KW_IF KW_GOTO KW_FOR KW_EXTENSION KW_DO KW_DEFAULT KW_CONTINUE KW_CASE KW_BREAK KW_ASM KW_ALIGNOF
first(parse_expr) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(parse_decl) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(paren_typedef_declarator) = TK_STAR TK_LBRACK
first(paren_postfix_typedef_declarator) = TK_LBRACK
first(paren_identifier_declarator) = WC_DECL TK_LBRACK TK_IDENTIFIER
first(paren(string_literal)) = TK_LBRACK
first(paren(sep(TK_COMMA,numeric_literal))) = TK_LBRACK
first(paren(numeric_literal)) = TK_LBRACK
first(paren(identifier)) = TK_LBRACK
first(parameter_typedef_declarator) = TK_TYPEDEF_NAME TK_STAR TK_LBRACK
first(parameter_type_list) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
first(parameter_declaration_noattr) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(parameter_declaration) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
first(option(sep(TK_COMMA,attrib))) = KW_ATTR_WEAKREF KW_ATTR_WEAK KW_ATTR_WARN_UNUSED_RESULT KW_ATTR_VLIW KW_ATTR_VISIBILITY KW_ATTR_VERSION_ID KW_ATTR_VECTOR_SIZE KW_ATTR_USED KW_ATTR_UNUSED KW_ATTR_TRAP_EXIT KW_ATTR_TRANSPARENT_UNION KW_ATTR_TLS_MODEL KW_ATTR_TINY_DATA KW_ATTR_TINY KW_ATTR_THISCALL KW_ATTR_TARGET KW_ATTR_SYSV_ABI KW_ATTR_SYSCALL_LINKAGE KW_ATTR_STDCALL KW_ATTR_SSEREGPARM KW_ATTR_SP_SWITCH KW_ATTR_SPU_VECTOR KW_ATTR_SIGNAL KW_ATTR_SHORT_CALL KW_ATTR_SHORTCALL KW_ATTR_SHARED KW_ATTR_SENTINEL KW_ATTR_SELECTANY KW_ATTR_SECTION KW_ATTR_SAVE_VOLATILES KW_ATTR_SAVEALL KW_ATTR_RETURNS_TWICE KW_ATTR_RESBANK KW_ATTR_REGPARM KW_ATTR_PURE KW_ATTR_PROGMEM KW_ATTR_PCS KW_ATTR_PACKED KW_ATTR_OS_TASK KW_ATTR_OS_MAIN KW_ATTR_OPTIMIZE KW_ATTR_NO_SPLIT_STACK KW_ATTR_NO_INSTRUMENT_FUNCTION KW_ATTR_NOTSHARED KW_ATTR_NOTHROW KW_ATTR_NORETURN KW_ATTR_NONNULL KW_ATTR_NOMIPS16 KW_ATTR_NOINLINE KW_ATTR_NOCOMMON KW_ATTR_NOCLONE KW_ATTR_NMI_HANDLER KW_ATTR_NESTING KW_ATTR_NEAR KW_ATTR_NAKED KW_ATTR_MS_STRUCT KW_ATTR_MS_HOOK_PROLOGUE KW_ATTR_MS_ABI KW_ATTR_MODEL KW_ATTR_MODE KW_ATTR_MIPS16 KW_ATTR_MAY_ALIAS KW_ATTR_MALLOC KW_ATTR_LONG_CALL KW_ATTR_LONGCALL KW_ATTR_LEAF KW_ATTR_L2 KW_ATTR_L1_TEXT KW_ATTR_L1_DATA_B KW_ATTR_L1_DATA_A KW_ATTR_L1_DATA KW_ATTR_KSPISUSP KW_ATTR_ISR KW_ATTR_IO KW_ATTR_INTERRUPT_THREAD KW_ATTR_INTERRUPT_HANDLER KW_ATTR_INTERRUPT KW_ATTR_IFUNC KW_ATTR_HOT KW_ATTR_GNU_INLINE KW_ATTR_GCC_STRUCT KW_ATTR_FUNCTION_VECTOR KW_ATTR_FORMAT_ARG KW_ATTR_FORMAT KW_ATTR_FORCE_ALIGN_ARG_POINTER KW_ATTR_FLATTEN KW_ATTR_FAST_INTERRUPT KW_ATTR_FASTCALL KW_ATTR_FAR KW_ATTR_EXTERNALLY_VISIBLE KW_ATTR_EXCEPTION_HANDLER KW_ATTR_EIGHTBIT_DATA KW_ATTR_DLLIMPORT KW_ATTR_DLLEXPORT KW_ATTR_DISINTERRUPT KW_ATTR_DESTRUCTOR KW_ATTR_DEPRECATED KW_ATTR_CONSTRUCTOR KW_ATTR_CONST KW_ATTR_COMMON KW_ATTR_COLD KW_ATTR_CLEANUP KW_ATTR_CDECL KW_ATTR_CB KW_ATTR_CALLEE_POP_AGGREGATE_RETURN KW_ATTR_BELOW100 KW_ATTR_BASED KW_ATTR_BACK_SWITCH KW_ATTR_ARTIFICIAL KW_ATTR_ALWAYS_INLINE KW_ATTR_ALTIVEC KW_ATTR_ALLOC_SIZE KW_ATTR_ALIGNED KW_ATTR_ALIAS
first(option(sep(TK_COMMA,assignment_expression))) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(option(sep(TK_COMMA,asm_clobbered))) = TK_STRING_LITERAL
first(option(paren(numeric_literal))) = TK_LBRACK
first(option(forward_parameter_type_list)) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
first(option(expression)) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(option(enumerator_value)) = TK_EQUALS
first(option(decl_initialiser)) = TK_EQUALS
first(option(constant_expression)) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(option(bit_field_size)) = TK_COLON
first(option(asm_declaration_specifier)) = KW_ASM
first(option(asm_argument_list)) = TK_STRING_LITERAL
first(option(TK_EQUALS)) = TK_EQUALS
first(option(TK_COMMA)) = TK_COMMA
first(option(KW_EXTENSION)) = KW_EXTENSION
first(old_function_declarator) = WC_DECL TK_STAR TK_LBRACK TK_IDENTIFIER
first(old_function_declaration) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(numeric_literal) = TK_WCHAR_CONSTANT TK_OCTAL_CONSTANT TK_INTEGER_CONSTANT TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_CHAR_CONSTANT TK_BIN_CONSTANT
first(nonempty_list_rev(type_qualifier)) = KW_VOLATILE KW_RESTRICT KW_CONST KW_COMPLEX
first(nonempty_list_rev(simple_string_literal)) = TK_WSTRING_LITERAL TK_STRING_LITERAL
first(nonempty_list_rev(pointer_type_qualifier)) = KW_VOLATILE KW_RESTRICT KW_CONST
first(nonempty_list_rev(member_designator)) = TK_PERIOD
first(nonempty_list_rev(attribute)) = KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
first(nonempty_list_rev(array_abstract_declarator)) = TK_LSQBRACK
first(nonempty_list_rev(TK_STRING_LITERAL)) = TK_STRING_LITERAL
first(nonempty_list(type_qualifier)) = KW_VOLATILE KW_RESTRICT KW_CONST KW_COMPLEX
first(nonempty_list(simple_string_literal)) = TK_WSTRING_LITERAL TK_STRING_LITERAL
first(nonempty_list(pointer_type_qualifier)) = KW_VOLATILE KW_RESTRICT KW_CONST
first(nonempty_list(member_designator)) = TK_PERIOD
first(nonempty_list(attribute)) = KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
first(nonempty_list(array_abstract_declarator)) = TK_LSQBRACK
first(nonempty_list(TK_STRING_LITERAL)) = TK_STRING_LITERAL
first(multiplicative_operator) = TK_STAR TK_SLASH TK_PERCENT
first(multiplicative_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(member_designators) = TK_PERIOD TK_IDENTIFIER
first(member_designator) = TK_PERIOD
first(logical_or_operator) = TK_PIPEPIPE
first(logical_or_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(logical_and_operator) = TK_ANDAND
first(logical_and_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(list_rev(statement_or_declaration)) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF
first(list_rev(declaration)) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(list_rev(attribute)) = KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
first(list(statement_or_declaration)) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF
first(list(declaration)) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(list(attribute)) = KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
first(labelled_statement) = TK_IDENTIFIER KW_LABEL KW_DEFAULT KW_CASE
first(jump_statement) = KW_RETURN KW_GOTO KW_CONTINUE KW_BREAK
first(iteration_statement) = KW_WHILE KW_FOR KW_DO
first(initialiser) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_PERIOD TK_OCTAL_CONSTANT TK_MINUS TK_LSQBRACK TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(inclusive_or_operator) = TK_PIPE
first(inclusive_or_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(identifier_or_typedef_name) = TK_TYPEDEF_NAME TK_IDENTIFIER
first(identifier_declarator) = WC_DECL TK_STAR TK_LBRACK TK_IDENTIFIER
first(identifier) = TK_IDENTIFIER
first(function_definition) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(function_declaration) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(forward_parameter_type_list) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
first(external_definitions) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM
first(external_definition) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM
first(expression_statement) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(exclusive_or_operator) = TK_CARET
first(exclusive_or_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(equality_operator) = TK_NE TK_EQEQ
first(equality_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(enumerator_value) = TK_EQUALS
first(enumerator) = TK_IDENTIFIER
first(enum_specifier) = KW_ENUM
first(elaborated_type_name) = KW_UNION KW_STRUCT KW_ENUM KW_DATATYPE
first(default_toplevel_declaring_list) = WC_DECL TK_STAR TK_LBRACK TK_IDENTIFIER
first(default_int) = 
first(default_declaring_list) = KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_CONST KW_COMPLEX KW_AUTO
first(declaring_list) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(declarator) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER KW_EXTENSION
first(declaration_specifier_nosue) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_DOUBLE KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(declaration_specifier) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(declaration_qualifier_list) = KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_CONST KW_COMPLEX KW_AUTO
first(declaration_qualifier) = KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_CONST KW_COMPLEX KW_AUTO
first(declaration) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(decl_initialiser) = TK_EQUALS
first(datatype_specifier) = KW_DATATYPE
first(datatype_name) = TK_TYPEDEF_NAME TK_IDENTIFIER
first(datatype_member_list) = TK_LBRACK
first(datatype_member) = TK_IDENTIFIER
first(datatype_declaring_list) = TK_PIPE
first(datatype_declarator) = TK_IDENTIFIER
first(constant_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(conditional_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(compound_statement) = TK_LBRACE
first(clean_typedef_declarator) = TK_STAR TK_LBRACK
first(clean_postfix_typedef_declarator) = TK_LBRACK
first(cast_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(bracketed_initialiser_list) = TK_LBRACE
first(boption(KW_VOLATILE)) = KW_VOLATILE
first(bit_field_size) = TK_COLON
first(basic_type_specifier) = KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_DOUBLE KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL
first(basic_type_name) = KW_WCHAR_T KW_VOID KW_VA_LIST KW_UNSIGNED KW_SIGNED KW_SHORT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_DOUBLE KW_DECIMALN KW_CHAR KW_BOOL
first(basic_initialiser) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(basic_declaration_specifier) = KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_TYPEDEF KW_THREAD KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_DOUBLE KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(attribute) = KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
first(attrib) = KW_ATTR_WEAKREF KW_ATTR_WEAK KW_ATTR_WARN_UNUSED_RESULT KW_ATTR_VLIW KW_ATTR_VISIBILITY KW_ATTR_VERSION_ID KW_ATTR_VECTOR_SIZE KW_ATTR_USED KW_ATTR_UNUSED KW_ATTR_TRAP_EXIT KW_ATTR_TRANSPARENT_UNION KW_ATTR_TLS_MODEL KW_ATTR_TINY_DATA KW_ATTR_TINY KW_ATTR_THISCALL KW_ATTR_TARGET KW_ATTR_SYSV_ABI KW_ATTR_SYSCALL_LINKAGE KW_ATTR_STDCALL KW_ATTR_SSEREGPARM KW_ATTR_SP_SWITCH KW_ATTR_SPU_VECTOR KW_ATTR_SIGNAL KW_ATTR_SHORT_CALL KW_ATTR_SHORTCALL KW_ATTR_SHARED KW_ATTR_SENTINEL KW_ATTR_SELECTANY KW_ATTR_SECTION KW_ATTR_SAVE_VOLATILES KW_ATTR_SAVEALL KW_ATTR_RETURNS_TWICE KW_ATTR_RESBANK KW_ATTR_REGPARM KW_ATTR_PURE KW_ATTR_PROGMEM KW_ATTR_PCS KW_ATTR_PACKED KW_ATTR_OS_TASK KW_ATTR_OS_MAIN KW_ATTR_OPTIMIZE KW_ATTR_NO_SPLIT_STACK KW_ATTR_NO_INSTRUMENT_FUNCTION KW_ATTR_NOTSHARED KW_ATTR_NOTHROW KW_ATTR_NORETURN KW_ATTR_NONNULL KW_ATTR_NOMIPS16 KW_ATTR_NOINLINE KW_ATTR_NOCOMMON KW_ATTR_NOCLONE KW_ATTR_NMI_HANDLER KW_ATTR_NESTING KW_ATTR_NEAR KW_ATTR_NAKED KW_ATTR_MS_STRUCT KW_ATTR_MS_HOOK_PROLOGUE KW_ATTR_MS_ABI KW_ATTR_MODEL KW_ATTR_MODE KW_ATTR_MIPS16 KW_ATTR_MAY_ALIAS KW_ATTR_MALLOC KW_ATTR_LONG_CALL KW_ATTR_LONGCALL KW_ATTR_LEAF KW_ATTR_L2 KW_ATTR_L1_TEXT KW_ATTR_L1_DATA_B KW_ATTR_L1_DATA_A KW_ATTR_L1_DATA KW_ATTR_KSPISUSP KW_ATTR_ISR KW_ATTR_IO KW_ATTR_INTERRUPT_THREAD KW_ATTR_INTERRUPT_HANDLER KW_ATTR_INTERRUPT KW_ATTR_IFUNC KW_ATTR_HOT KW_ATTR_GNU_INLINE KW_ATTR_GCC_STRUCT KW_ATTR_FUNCTION_VECTOR KW_ATTR_FORMAT_ARG KW_ATTR_FORMAT KW_ATTR_FORCE_ALIGN_ARG_POINTER KW_ATTR_FLATTEN KW_ATTR_FAST_INTERRUPT KW_ATTR_FASTCALL KW_ATTR_FAR KW_ATTR_EXTERNALLY_VISIBLE KW_ATTR_EXCEPTION_HANDLER KW_ATTR_EIGHTBIT_DATA KW_ATTR_DLLIMPORT KW_ATTR_DLLEXPORT KW_ATTR_DISINTERRUPT KW_ATTR_DESTRUCTOR KW_ATTR_DEPRECATED KW_ATTR_CONSTRUCTOR KW_ATTR_CONST KW_ATTR_COMMON KW_ATTR_COLD KW_ATTR_CLEANUP KW_ATTR_CDECL KW_ATTR_CB KW_ATTR_CALLEE_POP_AGGREGATE_RETURN KW_ATTR_BELOW100 KW_ATTR_BASED KW_ATTR_BACK_SWITCH KW_ATTR_ARTIFICIAL KW_ATTR_ALWAYS_INLINE KW_ATTR_ALTIVEC KW_ATTR_ALLOC_SIZE KW_ATTR_ALIGNED KW_ATTR_ALIAS
first(attr_function_declarator_) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(attr_function_declarator) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(attr_function_declaration) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
first(assignment_operator) = TK_STAR_EQ TK_SLASH_EQ TK_PLUS_EQ TK_PIPE_EQ TK_PERCENT_EQ TK_MINUS_EQ TK_LTLT_EQ TK_GTGT_EQ TK_EQUALS TK_CARET_EQ TK_AND_EQ
first(assignment_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(asm_statement) = KW_ASM
first(asm_declaration_specifier) = KW_ASM
first(asm_clobbered) = TK_STRING_LITERAL
first(asm_argument_list) = TK_STRING_LITERAL
first(asm_argument) = TK_STRING_LITERAL
first(array_abstract_declarator) = TK_LSQBRACK
first(and_operator) = TK_AND
first(and_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(additive_operator) = TK_PLUS TK_MINUS
first(additive_expression) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
first(abstract_declarator) = TK_STAR TK_LSQBRACK TK_LBRACK
follow(unary_prefix_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(unary_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(unary_identifier_declarator) = TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(unary_expression) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LESS_EQ TK_LESS TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(unary_abstract_declarator) = TK_SEMICOLON TK_RBRACK TK_COMMA EOF
follow(typeof_type_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE EOF
follow(typeof_type_name) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE EOF
follow(typeof_declaration_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE
follow(typedef_type_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE EOF
follow(typedef_declaration_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE
follow(type_specifier_nosue) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_FASTCALL KW_EXTENSION KW_DECLSPEC KW_ATTRIBUTE EOF
follow(type_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_EXTENSION EOF
follow(type_qualifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(type_name_noattr) = TK_RBRACK TK_COMMA EOF
follow(type_name) = TK_RBRACK TK_COMMA EOF
follow(test) = #
follow(sue_type_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(sue_declaration_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO
follow(struct_or_union_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(struct_or_union) = TK_TYPEDEF_NAME TK_LBRACE TK_IDENTIFIER KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
follow(struct_identifier_declarator) = TK_SEMICOLON TK_COMMA
follow(struct_default_declaring_list) = TK_SEMICOLON TK_COMMA
follow(struct_declaring_list) = TK_SEMICOLON TK_COMMA
follow(struct_declarator) = TK_SEMICOLON TK_COMMA
follow(struct_declaration_list_opt) = TK_RBRACE
follow(struct_declaration_list) = TK_TYPEDEF_NAME TK_RBRACE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_ATTRIBUTE
follow(struct_declaration) = TK_TYPEDEF_NAME TK_RBRACE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_STRUCT KW_SIGNED KW_SHORT KW_RESTRICT KW_LONG KW_INTN KW_INT KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_ATTRIBUTE
follow(string_literal) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(storage_class) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
follow(std_function_declaration) = TK_LBRACE
follow(statement_or_declaration) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF
follow(statement_noexpr) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(statement_expression) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(simple_typedef_declarator) = TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(simple_string_literal) = TK_WSTRING_LITERAL TK_STRING_LITERAL TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(simple_paren_typedef_declarator) = TK_RBRACK TK_LSQBRACK TK_LBRACK
follow(simple_identifier_declarator) = TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(shift_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(shift_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_PIPE TK_NE TK_LTLT TK_LESS_EQ TK_LESS TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(sep_rev(TK_SEMICOLON,parameter_type_list)) = TK_SEMICOLON TK_RBRACK
follow(sep_rev(TK_PIPE,datatype_declarator)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_PIPE TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(sep_rev(TK_COMMA,simple_identifier_declarator)) = TK_RBRACK TK_COMMA
follow(sep_rev(TK_COMMA,parameter_declaration)) = TK_SEMICOLON TK_RBRACK TK_COMMA
follow(sep_rev(TK_COMMA,numeric_literal)) = TK_RBRACK TK_COMMA
follow(sep_rev(TK_COMMA,initialiser)) = TK_RBRACE TK_COMMA
follow(sep_rev(TK_COMMA,enumerator)) = TK_RBRACE TK_COMMA
follow(sep_rev(TK_COMMA,datatype_member)) = TK_RBRACK TK_COMMA
follow(sep_rev(TK_COMMA,attrib)) = TK_RBRACK TK_COMMA
follow(sep_rev(TK_COMMA,assignment_expression)) = TK_RBRACK TK_COMMA
follow(sep_rev(TK_COMMA,asm_clobbered)) = TK_RBRACK TK_COMMA TK_COLON
follow(sep_rev(TK_COMMA,asm_argument)) = TK_RBRACK TK_COMMA TK_COLON
follow(sep_rev(TK_COMMA,TK_IDENTIFIER)) = TK_SEMICOLON TK_RBRACK TK_COMMA
follow(sep(TK_PIPE,datatype_declarator)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(sep(TK_COMMA,simple_identifier_declarator)) = TK_RBRACK
follow(sep(TK_COMMA,numeric_literal)) = TK_RBRACK
follow(sep(TK_COMMA,datatype_member)) = TK_RBRACK
follow(sep(TK_COMMA,attrib)) = TK_RBRACK
follow(sep(TK_COMMA,assignment_expression)) = TK_RBRACK
follow(sep(TK_COMMA,asm_clobbered)) = TK_RBRACK TK_COLON
follow(sep(TK_COMMA,asm_argument)) = TK_RBRACK TK_COLON
follow(sep(TK_COMMA,TK_IDENTIFIER)) = TK_SEMICOLON TK_RBRACK
follow(selection_statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(relational_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(relational_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_PIPE TK_NE TK_LESS_EQ TK_LESS TK_GREATER_EQ TK_GREATER TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(range_expression) = TK_RSQBRACK TK_COLON
follow(push_scope) = WC_TYPE WC_EXPR WC_DECL TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INCLUDE TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF
follow(primary_expression) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(postfixing_abstract_declarator) = WC_TYPE TK_TYPEDEF_NAME TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(postfix_old_function_declarator) = WC_TYPE TK_TYPEDEF_NAME TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM
follow(postfix_identifier_declarator) = TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(postfix_expression) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(postfix_abstract_declarator) = TK_SEMICOLON TK_RBRACK TK_COMMA EOF
follow(pop_scope) = TK_RBRACE EOF
follow(pointer_type_qualifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_VOLATILE KW_RESTRICT KW_CONST EOF
follow(parse_unit) = #
follow(parse_type) = #
follow(parse_stmt) = #
follow(parse_expr) = #
follow(parse_decl) = #
follow(paren_typedef_declarator) = TK_SEMICOLON TK_RBRACK TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(paren_postfix_typedef_declarator) = TK_SEMICOLON TK_RBRACK TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(paren_identifier_declarator) = TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(paren(string_literal)) = TK_RBRACK TK_COMMA
follow(paren(sep(TK_COMMA,numeric_literal))) = TK_RBRACK TK_COMMA
follow(paren(numeric_literal)) = TK_RBRACK TK_COMMA
follow(paren(identifier)) = TK_RBRACK TK_COMMA
follow(parameter_typedef_declarator) = TK_SEMICOLON TK_RBRACK TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(parameter_type_list) = TK_SEMICOLON TK_RBRACK
follow(parameter_declaration_noattr) = TK_SEMICOLON TK_RBRACK TK_COMMA
follow(parameter_declaration) = TK_SEMICOLON TK_RBRACK TK_COMMA
follow(option(sep(TK_COMMA,attrib))) = TK_RBRACK
follow(option(sep(TK_COMMA,assignment_expression))) = TK_RBRACK
follow(option(sep(TK_COMMA,asm_clobbered))) = TK_RBRACK TK_COLON
follow(option(paren(numeric_literal))) = TK_RBRACK TK_COMMA
follow(option(forward_parameter_type_list)) = TK_RBRACK
follow(option(expression)) = TK_SEMICOLON TK_RBRACK TK_COLON
follow(option(enumerator_value)) = TK_RBRACE TK_COMMA
follow(option(decl_initialiser)) = TK_SEMICOLON TK_COMMA
follow(option(constant_expression)) = TK_RSQBRACK
follow(option(bit_field_size)) = TK_SEMICOLON TK_COMMA KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
follow(option(asm_declaration_specifier)) = TK_SEMICOLON TK_EQUALS TK_COMMA KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
follow(option(asm_argument_list)) = TK_RBRACK TK_COLON
follow(option(TK_EQUALS)) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(option(TK_COMMA)) = TK_RBRACE
follow(option(KW_EXTENSION)) = WC_TYPE TK_TYPEDEF_NAME KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
follow(old_function_declarator) = WC_TYPE TK_TYPEDEF_NAME TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM
follow(old_function_declaration) = TK_LBRACE
follow(numeric_literal) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(nonempty_list_rev(type_qualifier)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(nonempty_list_rev(simple_string_literal)) = TK_WSTRING_LITERAL TK_STRING_LITERAL TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(nonempty_list_rev(pointer_type_qualifier)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_VOLATILE KW_RESTRICT KW_CONST EOF
follow(nonempty_list_rev(member_designator)) = TK_PERIOD TK_EQUALS
follow(nonempty_list_rev(attribute)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER TK_COLON KW_FASTCALL KW_EXTENSION KW_DECLSPEC KW_ATTRIBUTE
follow(nonempty_list_rev(array_abstract_declarator)) = WC_TYPE TK_TYPEDEF_NAME TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(nonempty_list_rev(TK_STRING_LITERAL)) = TK_STRING_LITERAL TK_RBRACK TK_LBRACK TK_COMMA TK_COLON
follow(nonempty_list(type_qualifier)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_WCHAR_T KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(nonempty_list(simple_string_literal)) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(nonempty_list(pointer_type_qualifier)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA EOF
follow(nonempty_list(member_designator)) = TK_EQUALS
follow(nonempty_list(attribute)) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_LBRACK TK_IDENTIFIER TK_COLON KW_EXTENSION
follow(nonempty_list(array_abstract_declarator)) = WC_TYPE TK_TYPEDEF_NAME TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(nonempty_list(TK_STRING_LITERAL)) = TK_RBRACK TK_LBRACK TK_COMMA TK_COLON
follow(multiplicative_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(multiplicative_expression) = TK_STAR TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS TK_PIPEPIPE TK_PIPE TK_PERCENT TK_NE TK_MINUS TK_LTLT TK_LESS_EQ TK_LESS TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(member_designators) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(member_designator) = TK_PERIOD TK_EQUALS
follow(logical_or_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(logical_or_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_ELLIPSIS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(logical_and_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(logical_and_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_ELLIPSIS TK_COMMA TK_COLON TK_ANDAND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(list_rev(statement_or_declaration)) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF
follow(list_rev(declaration)) = WC_TYPE TK_TYPEDEF_NAME TK_LBRACE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
follow(list_rev(attribute)) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_LBRACE TK_IDENTIFIER TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(list(statement_or_declaration)) = TK_RBRACE
follow(list(declaration)) = TK_LBRACE
follow(list(attribute)) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_LBRACE TK_IDENTIFIER TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO EOF
follow(labelled_statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(jump_statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(iteration_statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(initialiser) = TK_RBRACE TK_COMMA
follow(inclusive_or_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(inclusive_or_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_PIPE TK_ELLIPSIS TK_COMMA TK_COLON TK_ANDAND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(identifier_or_typedef_name) = WC_DECL TK_TYPEDEF_NAME TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_LBRACE TK_INC TK_IDENTIFIER TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE EOF
follow(identifier_declarator) = TK_SEMICOLON TK_RBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(identifier) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(function_definition) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(function_declaration) = TK_LBRACE
follow(forward_parameter_type_list) = TK_RBRACK
follow(external_definitions) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(external_definition) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_LBRACK TK_INCLUDE TK_IDENTIFIER KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(expression_statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_COMMA TK_COLON EOF
follow(exclusive_or_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(exclusive_or_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_PIPE TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(equality_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(equality_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_PIPE TK_NE TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(enumerator_value) = TK_RBRACE TK_COMMA
follow(enumerator) = TK_RBRACE TK_COMMA
follow(enum_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DECLSPEC KW_CONST KW_COMPLEX KW_AUTO KW_ATTRIBUTE EOF
follow(elaborated_type_name) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(default_toplevel_declaring_list) = TK_SEMICOLON TK_COMMA
follow(default_int) = WC_DECL TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA EOF
follow(default_declaring_list) = TK_SEMICOLON TK_COMMA
follow(declaring_list) = TK_SEMICOLON TK_COMMA
follow(declarator) = TK_SEMICOLON TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(declaration_specifier_nosue) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_FASTCALL KW_EXTENSION KW_DECLSPEC KW_ATTRIBUTE
follow(declaration_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_EXTENSION
follow(declaration_qualifier_list) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_EXTERN KW_ENUM KW_DOUBLE KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO
follow(declaration_qualifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
follow(declaration) = WC_TYPE WC_EXPR WC_DECL TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INCLUDE TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(decl_initialiser) = TK_SEMICOLON TK_COMMA
follow(datatype_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(datatype_name) = TK_EQUALS
follow(datatype_member_list) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_PIPE TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(datatype_member) = TK_RBRACK TK_COMMA
follow(datatype_declaring_list) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(datatype_declarator) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_PIPE TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_VOLATILE KW_TYPEDEF KW_THREAD KW_STATIC KW_RESTRICT KW_REGISTER KW_INLINE KW_EXTERN KW_EXTENSION KW_CONST KW_COMPLEX KW_AUTO EOF
follow(constant_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACE TK_COMMA KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
follow(conditional_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_ELLIPSIS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(compound_statement) = WC_TYPE WC_EXPR WC_DECL TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACK TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INCLUDE TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(clean_typedef_declarator) = TK_SEMICOLON TK_RBRACK TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(clean_postfix_typedef_declarator) = TK_SEMICOLON TK_RBRACK TK_EQUALS TK_COMMA TK_COLON KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE KW_ASM
follow(cast_expression) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LESS_EQ TK_LESS TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(bracketed_initialiser_list) = TK_STAR_EQ TK_STAR TK_SLASH_EQ TK_SLASH TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS_EQ TK_PLUS TK_PIPE_EQ TK_PIPEPIPE TK_PIPE TK_PERIOD TK_PERCENT_EQ TK_PERCENT TK_NE TK_MINUS_EQ TK_MINUS TK_LTLT_EQ TK_LTLT TK_LSQBRACK TK_LESS_EQ TK_LESS TK_LBRACK TK_INC TK_GTGT_EQ TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQUALS TK_EQEQ TK_ELLIPSIS TK_DEC TK_COMMA TK_COLON TK_CARET_EQ TK_CARET TK_ARROW TK_AND_EQ TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(boption(KW_VOLATILE)) = TK_LBRACK KW_GOTO
follow(bit_field_size) = TK_SEMICOLON TK_COMMA KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
follow(basic_type_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_TYPEDEF KW_THREAD KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(basic_type_name) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_TYPEDEF KW_THREAD KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(basic_initialiser) = TK_SEMICOLON TK_RBRACE TK_COMMA
follow(basic_declaration_specifier) = WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_IDENTIFIER TK_COMMA KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_TYPEDEF KW_THREAD KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE
follow(attribute) = WC_TYPE WC_DECL TK_TYPEDEF_NAME TK_STAR TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACK TK_LBRACE TK_IDENTIFIER TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE EOF
follow(attrib) = TK_RBRACK TK_COMMA
follow(attr_function_declarator_) = TK_LBRACE
follow(attr_function_declarator) = TK_LBRACE
follow(attr_function_declaration) = WC_TYPE WC_EXPR WC_DECL TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INCLUDE TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(assignment_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(assignment_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_ELLIPSIS TK_COMMA TK_COLON EOF
follow(asm_statement) = WC_TYPE WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TYPEDEF_NAME TK_TILDE TK_STRING_LITERAL TK_STAR TK_SEMICOLON TK_RBRACE TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_LBRACE TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_WHILE KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_VA_ARG KW_UNSIGNED KW_UNION KW_TYPES_COMPATIBLE_P KW_TYPEOF KW_TYPEDEF KW_THREAD KW_SWITCH KW_STRUCT KW_STATIC KW_SIZEOF KW_SIGNED KW_SHORT KW_RETURN KW_RESTRICT KW_REGISTER KW_REAL KW_OFFSETOF KW_LONG KW_LABEL KW_INTN KW_INT KW_INLINE KW_IMAG KW_IF KW_GOTO KW_FOR KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_EXTENSION KW_ENUM KW_ELSE KW_DOUBLE KW_DO KW_DEFAULT KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONTINUE KW_CONST KW_COMPLEX KW_CHAR KW_CASE KW_BREAK KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM KW_ALIGNOF EOF
follow(asm_declaration_specifier) = TK_SEMICOLON TK_EQUALS TK_COMMA KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE
follow(asm_clobbered) = TK_RBRACK TK_COMMA TK_COLON
follow(asm_argument_list) = TK_RBRACK TK_COLON
follow(asm_argument) = TK_RBRACK TK_COMMA TK_COLON
follow(array_abstract_declarator) = WC_TYPE TK_TYPEDEF_NAME TK_SEMICOLON TK_RBRACK TK_LSQBRACK TK_LBRACE TK_EQUALS TK_COMMA TK_COLON KW_WCHAR_T KW_VOLATILE KW_VOID KW_VA_LIST KW_UNSIGNED KW_UNION KW_TYPEOF KW_TYPEDEF KW_THREAD KW_STRUCT KW_STATIC KW_SIGNED KW_SHORT KW_RESTRICT KW_REGISTER KW_LONG KW_INTN KW_INT KW_INLINE KW_FLOATN KW_FLOAT KW_FASTCALL KW_EXTERN KW_ENUM KW_DOUBLE KW_DECLSPEC KW_DECIMALN KW_DATATYPE KW_CONST KW_COMPLEX KW_CHAR KW_BOOL KW_AUTO KW_ATTRIBUTE KW_ASM EOF
follow(and_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(and_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PIPEPIPE TK_PIPE TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(additive_operator) = WC_EXPR TK_WSTRING_LITERAL TK_WCHAR_CONSTANT TK_TILDE TK_STRING_LITERAL TK_STAR TK_PLUS TK_OCTAL_CONSTANT TK_MINUS TK_LBRACK TK_INTEGER_CONSTANT TK_INC TK_IDENTIFIER TK_HEX_FLOATING_CONSTANT TK_HEX_CONSTANT TK_FLOATING_CONSTANT TK_EXMARK TK_DEC TK_CHAR_CONSTANT TK_BIN_CONSTANT TK_ANDAND TK_AND KW_VA_ARG KW_TYPES_COMPATIBLE_P KW_SIZEOF KW_REAL KW_OFFSETOF KW_IMAG KW_EXTENSION KW_ALIGNOF
follow(additive_expression) = TK_SEMICOLON TK_RSQBRACK TK_RBRACK TK_RBRACE TK_QMARK TK_PLUS TK_PIPEPIPE TK_PIPE TK_NE TK_MINUS TK_LTLT TK_LESS_EQ TK_LESS TK_GTGT TK_GREATER_EQ TK_GREATER TK_EQEQ TK_ELLIPSIS TK_COMMA TK_COLON TK_CARET TK_ANDAND TK_AND KW_FASTCALL KW_DECLSPEC KW_ATTRIBUTE EOF
follow(abstract_declarator) = TK_SEMICOLON TK_RBRACK TK_COMMA EOF
Built an LR(0) automaton with 1031 states.
The grammar is not SLR(1) -- 21 states have a conflict.
Built an LR(1) automaton with 1031 states.
One shift/reduce conflict was silently solved.
635
588 out of 1031 states have a default reduction.
636 637 638 639 640 641
340 out of 1031 states are represented.
170 out of 450 symbols keep track of their start position.
178 out of 450 symbols keep track of their end position.
419 out of 628 productions exploit shiftreduce optimization.
0 out of 1031 states can peek at an error.
2910 functions before inlining, 457 functions after inlining.