Changeset 50c5cf3
- Timestamp:
- Sep 14, 2016, 2:14:43 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 101e0bd, 1eba452
- Parents:
- cb2b15c (diff), 4c1403c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 1 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
rcb2b15c r50c5cf3 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 2.5"47 #define YYBISON_VERSION "3.0.2" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */62 #define YYLSP_NEEDED 063 61 64 62 65 63 66 64 /* Copy the first part of user declarations. */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 65 #line 42 "parser.yy" /* yacc.c:339 */ 70 66 71 67 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 94 90 } // appendStr 95 91 96 97 /* Line 268 of yacc.c */ 98 #line 99 "Parser/parser.cc" 99 100 /* Enabling traces. */ 101 #ifndef YYDEBUG 102 # define YYDEBUG 1 103 #endif 92 #line 93 "Parser/parser.cc" /* yacc.c:339 */ 93 94 # ifndef YY_NULLPTR 95 # if defined __cplusplus && 201103L <= __cplusplus 96 # define YY_NULLPTR nullptr 97 # else 98 # define YY_NULLPTR 0 99 # endif 100 # endif 104 101 105 102 /* Enabling verbose error messages. */ … … 111 108 #endif 112 109 113 /* Enabling the token table. */ 114 #ifndef YYTOKEN_TABLE 115 # define YYTOKEN_TABLE 0 110 /* In a future release of Bison, this section will be replaced 111 by #include "y.tab.h". */ 112 #ifndef YY_YY_Y_TAB_H_INCLUDED 113 # define YY_YY_Y_TAB_H_INCLUDED 114 /* Debug traces. */ 115 #ifndef YYDEBUG 116 # define YYDEBUG 1 116 117 #endif 117 118 119 /* Tokens. */ 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 120 123 #ifndef YYTOKENTYPE 121 124 # define YYTOKENTYPE 122 /* Put the tokens into the symbol table, so that GDB and other debuggers 123 know about them. */ 124 enum yytokentype { 125 TYPEDEF = 258, 126 AUTO = 259, 127 EXTERN = 260, 128 REGISTER = 261, 129 STATIC = 262, 130 INLINE = 263, 131 FORTRAN = 264, 132 CONST = 265, 133 VOLATILE = 266, 134 RESTRICT = 267, 135 FORALL = 268, 136 LVALUE = 269, 137 VOID = 270, 138 CHAR = 271, 139 SHORT = 272, 140 INT = 273, 141 LONG = 274, 142 FLOAT = 275, 143 DOUBLE = 276, 144 SIGNED = 277, 145 UNSIGNED = 278, 146 VALIST = 279, 147 BOOL = 280, 148 COMPLEX = 281, 149 IMAGINARY = 282, 150 TYPEOF = 283, 151 LABEL = 284, 152 ENUM = 285, 153 STRUCT = 286, 154 UNION = 287, 155 OTYPE = 288, 156 FTYPE = 289, 157 DTYPE = 290, 158 TRAIT = 291, 159 SIZEOF = 292, 160 OFFSETOF = 293, 161 ATTRIBUTE = 294, 162 EXTENSION = 295, 163 IF = 296, 164 ELSE = 297, 165 SWITCH = 298, 166 CASE = 299, 167 DEFAULT = 300, 168 DO = 301, 169 WHILE = 302, 170 FOR = 303, 171 BREAK = 304, 172 CONTINUE = 305, 173 GOTO = 306, 174 RETURN = 307, 175 CHOOSE = 308, 176 DISABLE = 309, 177 ENABLE = 310, 178 FALLTHRU = 311, 179 TRY = 312, 180 CATCH = 313, 181 CATCHRESUME = 314, 182 FINALLY = 315, 183 THROW = 316, 184 THROWRESUME = 317, 185 AT = 318, 186 ASM = 319, 187 ALIGNAS = 320, 188 ALIGNOF = 321, 189 ATOMIC = 322, 190 GENERIC = 323, 191 NORETURN = 324, 192 STATICASSERT = 325, 193 THREADLOCAL = 326, 194 IDENTIFIER = 327, 195 QUOTED_IDENTIFIER = 328, 196 TYPEDEFname = 329, 197 TYPEGENname = 330, 198 ATTR_IDENTIFIER = 331, 199 ATTR_TYPEDEFname = 332, 200 ATTR_TYPEGENname = 333, 201 INTEGERconstant = 334, 202 FLOATINGconstant = 335, 203 CHARACTERconstant = 336, 204 STRINGliteral = 337, 205 ZERO = 338, 206 ONE = 339, 207 ARROW = 340, 208 ICR = 341, 209 DECR = 342, 210 LS = 343, 211 RS = 344, 212 LE = 345, 213 GE = 346, 214 EQ = 347, 215 NE = 348, 216 ANDAND = 349, 217 OROR = 350, 218 ELLIPSIS = 351, 219 MULTassign = 352, 220 DIVassign = 353, 221 MODassign = 354, 222 PLUSassign = 355, 223 MINUSassign = 356, 224 LSassign = 357, 225 RSassign = 358, 226 ANDassign = 359, 227 ERassign = 360, 228 ORassign = 361, 229 ATassign = 362, 230 THEN = 363 231 }; 125 enum yytokentype 126 { 127 TYPEDEF = 258, 128 AUTO = 259, 129 EXTERN = 260, 130 REGISTER = 261, 131 STATIC = 262, 132 INLINE = 263, 133 FORTRAN = 264, 134 CONST = 265, 135 VOLATILE = 266, 136 RESTRICT = 267, 137 FORALL = 268, 138 LVALUE = 269, 139 VOID = 270, 140 CHAR = 271, 141 SHORT = 272, 142 INT = 273, 143 LONG = 274, 144 FLOAT = 275, 145 DOUBLE = 276, 146 SIGNED = 277, 147 UNSIGNED = 278, 148 VALIST = 279, 149 BOOL = 280, 150 COMPLEX = 281, 151 IMAGINARY = 282, 152 TYPEOF = 283, 153 LABEL = 284, 154 ENUM = 285, 155 STRUCT = 286, 156 UNION = 287, 157 OTYPE = 288, 158 FTYPE = 289, 159 DTYPE = 290, 160 TRAIT = 291, 161 SIZEOF = 292, 162 OFFSETOF = 293, 163 ATTRIBUTE = 294, 164 EXTENSION = 295, 165 IF = 296, 166 ELSE = 297, 167 SWITCH = 298, 168 CASE = 299, 169 DEFAULT = 300, 170 DO = 301, 171 WHILE = 302, 172 FOR = 303, 173 BREAK = 304, 174 CONTINUE = 305, 175 GOTO = 306, 176 RETURN = 307, 177 CHOOSE = 308, 178 DISABLE = 309, 179 ENABLE = 310, 180 FALLTHRU = 311, 181 TRY = 312, 182 CATCH = 313, 183 CATCHRESUME = 314, 184 FINALLY = 315, 185 THROW = 316, 186 THROWRESUME = 317, 187 AT = 318, 188 ASM = 319, 189 ALIGNAS = 320, 190 ALIGNOF = 321, 191 ATOMIC = 322, 192 GENERIC = 323, 193 NORETURN = 324, 194 STATICASSERT = 325, 195 THREADLOCAL = 326, 196 IDENTIFIER = 327, 197 QUOTED_IDENTIFIER = 328, 198 TYPEDEFname = 329, 199 TYPEGENname = 330, 200 ATTR_IDENTIFIER = 331, 201 ATTR_TYPEDEFname = 332, 202 ATTR_TYPEGENname = 333, 203 INTEGERconstant = 334, 204 FLOATINGconstant = 335, 205 CHARACTERconstant = 336, 206 STRINGliteral = 337, 207 ZERO = 338, 208 ONE = 339, 209 ARROW = 340, 210 ICR = 341, 211 DECR = 342, 212 LS = 343, 213 RS = 344, 214 LE = 345, 215 GE = 346, 216 EQ = 347, 217 NE = 348, 218 ANDAND = 349, 219 OROR = 350, 220 ELLIPSIS = 351, 221 MULTassign = 352, 222 DIVassign = 353, 223 MODassign = 354, 224 PLUSassign = 355, 225 MINUSassign = 356, 226 LSassign = 357, 227 RSassign = 358, 228 ANDassign = 359, 229 ERassign = 360, 230 ORassign = 361, 231 ATassign = 362, 232 THEN = 363 233 }; 232 234 #endif 233 235 /* Tokens. */ … … 339 341 #define THEN 363 340 342 341 342 343 343 /* Value type. */ 344 344 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 346 347 { 347 348 /* Line 293 of yacc.c */ 349 #line 115 "parser.yy" 348 #line 115 "parser.yy" /* yacc.c:355 */ 350 349 351 350 Token tok; … … 364 363 bool flag; 365 364 366 367 368 /* Line 293 of yacc.c */ 369 #line 370 "Parser/parser.cc" 370 } YYSTYPE; 365 #line 366 "Parser/parser.cc" /* yacc.c:355 */ 366 }; 371 367 # define YYSTYPE_IS_TRIVIAL 1 372 # define yystype YYSTYPE /* obsolescent; will be withdrawn */373 368 # define YYSTYPE_IS_DECLARED 1 374 369 #endif 375 370 376 371 372 extern YYSTYPE yylval; 373 374 int yyparse (void); 375 376 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 377 377 378 /* Copy the second part of user declarations. */ 378 379 379 380 /* Line 343 of yacc.c */ 381 #line 382 "Parser/parser.cc" 380 #line 381 "Parser/parser.cc" /* yacc.c:358 */ 382 381 383 382 #ifdef short … … 393 392 #ifdef YYTYPE_INT8 394 393 typedef YYTYPE_INT8 yytype_int8; 395 #elif (defined __STDC__ || defined __C99__FUNC__ \ 396 || defined __cplusplus || defined _MSC_VER) 394 #else 397 395 typedef signed char yytype_int8; 398 #else399 typedef short int yytype_int8;400 396 #endif 401 397 … … 417 413 # elif defined size_t 418 414 # define YYSIZE_T size_t 419 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 420 || defined __cplusplus || defined _MSC_VER) 415 # elif ! defined YYSIZE_T 421 416 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 422 417 # define YYSIZE_T size_t … … 432 427 # if ENABLE_NLS 433 428 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 434 # define YY_( msgid) dgettext ("bison-runtime", msgid)429 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 435 430 # endif 436 431 # endif 437 432 # ifndef YY_ 438 # define YY_( msgid) msgid433 # define YY_(Msgid) Msgid 439 434 # endif 440 435 #endif 441 436 437 #ifndef YY_ATTRIBUTE 438 # if (defined __GNUC__ \ 439 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 440 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 441 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 442 # else 443 # define YY_ATTRIBUTE(Spec) /* empty */ 444 # endif 445 #endif 446 447 #ifndef YY_ATTRIBUTE_PURE 448 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 449 #endif 450 451 #ifndef YY_ATTRIBUTE_UNUSED 452 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 453 #endif 454 455 #if !defined _Noreturn \ 456 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 457 # if defined _MSC_VER && 1200 <= _MSC_VER 458 # define _Noreturn __declspec (noreturn) 459 # else 460 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 461 # endif 462 #endif 463 442 464 /* Suppress unused-variable warnings by "using" E. */ 443 465 #if ! defined lint || defined __GNUC__ 444 # define YYUSE( e) ((void) (e))466 # define YYUSE(E) ((void) (E)) 445 467 #else 446 # define YYUSE( e) /* empty */468 # define YYUSE(E) /* empty */ 447 469 #endif 448 470 449 /* Identity function, used to suppress warnings about constant conditions. */ 450 #ifndef lint 451 # define YYID(n) (n) 471 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 472 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 473 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 474 _Pragma ("GCC diagnostic push") \ 475 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 476 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 477 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 478 _Pragma ("GCC diagnostic pop") 452 479 #else 453 #if (defined __STDC__ || defined __C99__FUNC__ \ 454 || defined __cplusplus || defined _MSC_VER) 455 static int 456 YYID (int yyi) 457 #else 458 static int 459 YYID (yyi) 460 int yyi; 480 # define YY_INITIAL_VALUE(Value) Value 461 481 #endif 462 { 463 return yyi; 464 } 482 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 484 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 465 485 #endif 486 #ifndef YY_INITIAL_VALUE 487 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 488 #endif 489 466 490 467 491 #if ! defined yyoverflow || YYERROR_VERBOSE … … 482 506 # else 483 507 # define YYSTACK_ALLOC alloca 484 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 485 || defined __cplusplus || defined _MSC_VER) 508 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 486 509 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 510 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 487 511 # ifndef EXIT_SUCCESS 488 512 # define EXIT_SUCCESS 0 … … 494 518 495 519 # ifdef YYSTACK_ALLOC 496 /* Pacify GCC's `empty if-body' warning. */497 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))520 /* Pacify GCC's 'empty if-body' warning. */ 521 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 498 522 # ifndef YYSTACK_ALLOC_MAXIMUM 499 523 /* The OS might guarantee only one guard page at the bottom of the stack, … … 511 535 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 512 536 && ! ((defined YYMALLOC || defined malloc) \ 513 537 && (defined YYFREE || defined free))) 514 538 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 515 539 # ifndef EXIT_SUCCESS … … 519 543 # ifndef YYMALLOC 520 544 # define YYMALLOC malloc 521 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 522 || defined __cplusplus || defined _MSC_VER) 545 # if ! defined malloc && ! defined EXIT_SUCCESS 523 546 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 524 547 # endif … … 526 549 # ifndef YYFREE 527 550 # define YYFREE free 528 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 529 || defined __cplusplus || defined _MSC_VER) 551 # if ! defined free && ! defined EXIT_SUCCESS 530 552 void free (void *); /* INFRINGES ON USER NAME SPACE */ 531 553 # endif … … 537 559 #if (! defined yyoverflow \ 538 560 && (! defined __cplusplus \ 539 561 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 540 562 541 563 /* A type that is properly aligned for any stack member. */ … … 562 584 stack. Advance YYPTR to a properly aligned location for the next 563 585 stack. */ 564 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 565 do 566 { 567 YYSIZE_T yynewbytes;\568 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\569 Stack = &yyptr->Stack_alloc;\570 571 yyptr += yynewbytes / sizeof (*yyptr);\572 } 573 while ( YYID (0))586 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 587 do \ 588 { \ 589 YYSIZE_T yynewbytes; \ 590 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 591 Stack = &yyptr->Stack_alloc; \ 592 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 593 yyptr += yynewbytes / sizeof (*yyptr); \ 594 } \ 595 while (0) 574 596 575 597 #endif 576 598 577 599 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 578 /* Copy COUNT objects from FROM to TO. The source and destination do600 /* Copy COUNT objects from SRC to DST. The source and destination do 579 601 not overlap. */ 580 602 # ifndef YYCOPY 581 603 # if defined __GNUC__ && 1 < __GNUC__ 582 # define YYCOPY( To, From, Count) \583 __builtin_memcpy ( To, From, (Count) * sizeof (*(From)))604 # define YYCOPY(Dst, Src, Count) \ 605 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 584 606 # else 585 # define YYCOPY( To, From, Count)\586 do 587 {\588 YYSIZE_T yyi;\589 for (yyi = 0; yyi < (Count); yyi++)\590 (To)[yyi] = (From)[yyi];\591 }\592 while ( YYID (0))607 # define YYCOPY(Dst, Src, Count) \ 608 do \ 609 { \ 610 YYSIZE_T yyi; \ 611 for (yyi = 0; yyi < (Count); yyi++) \ 612 (Dst)[yyi] = (Src)[yyi]; \ 613 } \ 614 while (0) 593 615 # endif 594 616 # endif … … 606 628 /* YYNRULES -- Number of rules. */ 607 629 #define YYNRULES 751 608 /* YYN RULES -- Number of states. */630 /* YYNSTATES -- Number of states. */ 609 631 #define YYNSTATES 1555 610 632 611 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 633 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 634 by yylex, with out-of-bounds checking. */ 612 635 #define YYUNDEFTOK 2 613 636 #define YYMAXUTOK 363 614 637 615 #define YYTRANSLATE(YYX) 638 #define YYTRANSLATE(YYX) \ 616 639 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 617 640 618 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 641 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 642 as returned by yylex, without out-of-bounds checking. */ 619 643 static const yytype_uint8 yytranslate[] = 620 644 { … … 659 683 660 684 #if YYDEBUG 661 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 662 YYRHS. */ 663 static const yytype_uint16 yyprhs[] = 664 { 665 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 666 17, 19, 21, 23, 25, 27, 29, 31, 33, 36, 667 38, 40, 44, 48, 50, 57, 62, 66, 74, 78, 668 86, 89, 92, 100, 105, 107, 111, 112, 114, 116, 669 120, 122, 126, 134, 138, 146, 148, 150, 152, 155, 670 158, 161, 164, 167, 170, 175, 178, 183, 190, 192, 671 197, 202, 204, 206, 208, 210, 212, 214, 216, 221, 672 226, 228, 232, 236, 240, 242, 246, 250, 252, 256, 673 260, 262, 266, 270, 274, 278, 280, 284, 288, 290, 674 294, 296, 300, 302, 306, 308, 312, 314, 318, 320, 675 326, 331, 337, 339, 341, 345, 348, 349, 351, 353, 676 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 677 375, 378, 384, 391, 399, 401, 405, 407, 411, 412, 678 414, 416, 418, 420, 422, 424, 426, 428, 430, 437, 679 442, 445, 453, 455, 459, 461, 464, 466, 469, 471, 680 474, 477, 483, 491, 497, 507, 513, 523, 525, 529, 681 531, 533, 537, 541, 544, 546, 549, 552, 553, 555, 682 558, 562, 563, 565, 568, 572, 576, 581, 582, 584, 683 586, 589, 595, 603, 610, 617, 622, 626, 631, 634, 684 638, 641, 645, 649, 653, 657, 663, 667, 671, 676, 685 678, 684, 691, 697, 704, 714, 725, 735, 746, 749, 686 751, 754, 757, 760, 762, 769, 778, 789, 802, 817, 687 818, 820, 821, 823, 825, 829, 834, 842, 843, 845, 688 849, 851, 855, 857, 859, 861, 865, 867, 869, 871, 689 875, 876, 878, 882, 887, 889, 893, 895, 897, 901, 690 905, 909, 913, 917, 920, 924, 931, 935, 939, 944, 691 946, 949, 952, 956, 962, 971, 979, 987, 993, 1003, 692 1006, 1009, 1015, 1019, 1025, 1030, 1034, 1039, 1044, 1052, 693 1056, 1060, 1064, 1068, 1073, 1080, 1082, 1084, 1086, 1088, 694 1090, 1092, 1094, 1096, 1097, 1099, 1101, 1104, 1106, 1108, 695 1110, 1112, 1114, 1116, 1118, 1119, 1125, 1127, 1130, 1134, 696 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 697 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 698 1177, 1179, 1181, 1183, 1186, 1189, 1193, 1197, 1199, 1203, 699 1205, 1208, 1211, 1214, 1219, 1224, 1229, 1234, 1236, 1239, 700 1242, 1246, 1248, 1251, 1254, 1256, 1259, 1262, 1266, 1268, 701 1271, 1274, 1276, 1278, 1283, 1286, 1287, 1294, 1302, 1305, 702 1308, 1311, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334, 703 1338, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361, 704 1363, 1366, 1369, 1375, 1378, 1379, 1387, 1390, 1395, 1396, 705 1399, 1400, 1402, 1404, 1406, 1412, 1418, 1424, 1426, 1432, 706 1438, 1448, 1450, 1456, 1457, 1459, 1461, 1467, 1469, 1471, 707 1477, 1483, 1485, 1489, 1493, 1498, 1500, 1502, 1504, 1506, 708 1509, 1511, 1515, 1519, 1521, 1524, 1526, 1530, 1532, 1534, 709 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1555, 710 1557, 1559, 1561, 1564, 1565, 1568, 1571, 1573, 1578, 1579, 711 1581, 1584, 1588, 1593, 1596, 1599, 1601, 1604, 1607, 1613, 712 1619, 1627, 1634, 1636, 1639, 1642, 1646, 1648, 1651, 1654, 713 1659, 1662, 1667, 1668, 1673, 1676, 1678, 1680, 1682, 1683, 714 1686, 1692, 1698, 1712, 1714, 1716, 1720, 1724, 1727, 1731, 715 1735, 1738, 1743, 1745, 1752, 1762, 1763, 1775, 1777, 1781, 716 1785, 1789, 1791, 1793, 1799, 1802, 1808, 1809, 1811, 1813, 717 1817, 1818, 1820, 1822, 1824, 1826, 1827, 1834, 1837, 1839, 718 1842, 1847, 1850, 1854, 1858, 1862, 1867, 1873, 1879, 1885, 719 1892, 1894, 1896, 1898, 1902, 1903, 1909, 1910, 1912, 1914, 720 1917, 1924, 1926, 1930, 1931, 1933, 1938, 1940, 1942, 1944, 721 1946, 1949, 1951, 1954, 1957, 1959, 1963, 1966, 1970, 1974, 722 1977, 1982, 1987, 1991, 2000, 2004, 2007, 2009, 2012, 2019, 723 2028, 2032, 2035, 2039, 2043, 2048, 2053, 2057, 2059, 2061, 724 2063, 2068, 2075, 2079, 2082, 2086, 2090, 2095, 2100, 2104, 725 2107, 2109, 2112, 2115, 2117, 2121, 2124, 2128, 2132, 2135, 726 2140, 2145, 2149, 2156, 2165, 2169, 2172, 2174, 2177, 2180, 727 2183, 2187, 2191, 2194, 2199, 2204, 2208, 2215, 2224, 2228, 728 2231, 2233, 2236, 2239, 2241, 2243, 2246, 2250, 2254, 2257, 729 2262, 2269, 2278, 2280, 2283, 2286, 2288, 2291, 2294, 2298, 730 2302, 2304, 2309, 2314, 2318, 2324, 2333, 2337, 2340, 2344, 731 2346, 2352, 2358, 2365, 2372, 2374, 2377, 2380, 2382, 2385, 732 2388, 2392, 2396, 2398, 2403, 2408, 2412, 2418, 2427, 2431, 733 2433, 2436, 2438, 2441, 2448, 2454, 2461, 2469, 2477, 2479, 734 2482, 2485, 2487, 2490, 2493, 2497, 2501, 2503, 2508, 2513, 735 2517, 2526, 2530, 2532, 2534, 2537, 2539, 2541, 2544, 2548, 736 2551, 2555, 2558, 2562, 2566, 2569, 2574, 2578, 2581, 2585, 737 2588, 2593, 2597, 2600, 2607, 2614, 2621, 2629, 2631, 2634, 738 2636, 2638, 2640, 2643, 2647, 2650, 2654, 2657, 2661, 2665, 739 2670, 2673, 2677, 2682, 2685, 2691, 2697, 2704, 2711, 2712, 740 2714, 2715 741 }; 742 743 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 744 static const yytype_int16 yyrhs[] = 745 { 746 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 747 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 748 -1, 72, -1, 140, -1, 83, -1, 84, -1, 142, 749 -1, 82, -1, 142, 82, -1, 72, -1, 140, -1, 750 109, 170, 110, -1, 109, 174, 110, -1, 143, -1, 751 144, 111, 134, 165, 135, 112, -1, 144, 109, 145, 752 110, -1, 144, 113, 139, -1, 144, 113, 111, 134, 753 147, 135, 112, -1, 144, 85, 139, -1, 144, 85, 754 111, 134, 147, 135, 112, -1, 144, 86, -1, 144, 755 87, -1, 109, 275, 110, 114, 279, 372, 115, -1, 756 144, 114, 145, 115, -1, 146, -1, 145, 116, 146, 757 -1, -1, 165, -1, 148, -1, 147, 116, 148, -1, 758 139, -1, 139, 113, 148, -1, 139, 113, 111, 134, 759 147, 135, 112, -1, 139, 85, 148, -1, 139, 85, 760 111, 134, 147, 135, 112, -1, 144, -1, 136, -1, 761 141, -1, 40, 152, -1, 150, 152, -1, 151, 152, 762 -1, 86, 149, -1, 87, 149, -1, 37, 149, -1, 763 37, 109, 275, 110, -1, 66, 149, -1, 66, 109, 764 275, 110, -1, 38, 109, 275, 116, 139, 110, -1, 765 76, -1, 76, 109, 146, 110, -1, 76, 109, 276, 766 110, -1, 117, -1, 118, -1, 119, -1, 120, -1, 767 121, -1, 122, -1, 149, -1, 109, 275, 110, 152, 768 -1, 109, 275, 110, 168, -1, 152, -1, 153, 117, 769 152, -1, 153, 123, 152, -1, 153, 124, 152, -1, 770 153, -1, 154, 119, 153, -1, 154, 120, 153, -1, 771 154, -1, 155, 88, 154, -1, 155, 89, 154, -1, 772 155, -1, 156, 125, 155, -1, 156, 126, 155, -1, 773 156, 90, 155, -1, 156, 91, 155, -1, 156, -1, 774 157, 92, 156, -1, 157, 93, 156, -1, 157, -1, 775 158, 118, 157, -1, 158, -1, 159, 127, 158, -1, 776 159, -1, 160, 128, 159, -1, 160, -1, 161, 94, 777 160, -1, 161, -1, 162, 95, 161, -1, 162, -1, 778 162, 129, 170, 130, 163, -1, 162, 129, 130, 163, 779 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 780 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 781 -1, 131, -1, 107, -1, 97, -1, 98, -1, 99, 782 -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, 783 -1, 105, -1, 106, -1, 111, 112, -1, 111, 134, 784 165, 135, 112, -1, 111, 134, 116, 169, 135, 112, 785 -1, 111, 134, 165, 116, 169, 135, 112, -1, 166, 786 -1, 169, 116, 166, -1, 165, -1, 170, 116, 165, 787 -1, -1, 170, -1, 173, -1, 174, -1, 178, -1, 788 179, -1, 191, -1, 193, -1, 194, -1, 199, -1, 789 127, 144, 114, 145, 115, 132, -1, 72, 130, 312, 790 172, -1, 114, 115, -1, 114, 134, 134, 210, 175, 791 135, 115, -1, 176, -1, 175, 134, 176, -1, 213, 792 -1, 40, 213, -1, 308, -1, 172, 135, -1, 172, 793 -1, 177, 172, -1, 171, 132, -1, 41, 109, 170, 794 110, 172, -1, 41, 109, 170, 110, 172, 42, 172, 795 -1, 43, 109, 170, 110, 184, -1, 43, 109, 170, 796 110, 114, 134, 206, 185, 115, -1, 53, 109, 170, 797 110, 184, -1, 53, 109, 170, 110, 114, 134, 206, 798 187, 115, -1, 164, -1, 164, 96, 164, -1, 310, 799 -1, 180, -1, 181, 116, 180, -1, 44, 181, 130, 800 -1, 45, 130, -1, 182, -1, 183, 182, -1, 183, 801 172, -1, -1, 186, -1, 183, 177, -1, 186, 183, 802 177, -1, -1, 188, -1, 183, 190, -1, 183, 177, 803 189, -1, 188, 183, 190, -1, 188, 183, 177, 189, 804 -1, -1, 190, -1, 56, -1, 56, 132, -1, 47, 805 109, 170, 110, 172, -1, 46, 172, 47, 109, 170, 806 110, 132, -1, 48, 109, 134, 192, 110, 172, -1, 807 171, 135, 132, 171, 132, 171, -1, 213, 171, 132, 808 171, -1, 51, 72, 132, -1, 51, 117, 170, 132, 809 -1, 50, 132, -1, 50, 72, 132, -1, 49, 132, 810 -1, 49, 72, 132, -1, 52, 171, 132, -1, 61, 811 166, 132, -1, 62, 166, 132, -1, 62, 166, 63, 812 165, 132, -1, 57, 174, 195, -1, 57, 174, 197, 813 -1, 57, 174, 195, 197, -1, 196, -1, 58, 109, 814 96, 110, 174, -1, 196, 58, 109, 96, 110, 174, 815 -1, 59, 109, 96, 110, 174, -1, 196, 59, 109, 816 96, 110, 174, -1, 58, 109, 134, 134, 198, 135, 817 110, 174, 135, -1, 196, 58, 109, 134, 134, 198, 818 135, 110, 174, 135, -1, 59, 109, 134, 134, 198, 819 135, 110, 174, 135, -1, 196, 59, 109, 134, 134, 820 198, 135, 110, 174, 135, -1, 60, 174, -1, 226, 821 -1, 226, 309, -1, 226, 357, -1, 366, 139, -1, 822 366, -1, 64, 200, 109, 141, 110, 132, -1, 64, 823 200, 109, 141, 130, 201, 110, 132, -1, 64, 200, 824 109, 141, 130, 201, 130, 201, 110, 132, -1, 64, 825 200, 109, 141, 130, 201, 130, 201, 130, 204, 110, 826 132, -1, 64, 200, 51, 109, 141, 130, 130, 201, 827 130, 204, 130, 205, 110, 132, -1, -1, 11, -1, 828 -1, 202, -1, 203, -1, 202, 116, 203, -1, 141, 829 109, 164, 110, -1, 111, 164, 112, 141, 109, 164, 830 110, -1, -1, 141, -1, 204, 116, 141, -1, 139, 831 -1, 205, 116, 139, -1, 135, -1, 207, -1, 213, 832 -1, 207, 134, 213, -1, 135, -1, 209, -1, 223, 833 -1, 209, 134, 223, -1, -1, 211, -1, 29, 212, 834 132, -1, 211, 29, 212, 132, -1, 274, -1, 212, 835 116, 274, -1, 214, -1, 223, -1, 215, 135, 132, 836 -1, 220, 135, 132, -1, 217, 135, 132, -1, 293, 837 135, 132, -1, 296, 135, 132, -1, 216, 277, -1, 838 232, 216, 277, -1, 215, 135, 116, 134, 272, 277, 839 -1, 367, 272, 311, -1, 370, 272, 311, -1, 228, 840 370, 272, 311, -1, 218, -1, 228, 218, -1, 232, 841 218, -1, 232, 228, 218, -1, 217, 135, 116, 134, 842 272, -1, 111, 112, 272, 109, 134, 260, 135, 110, 843 -1, 370, 272, 109, 134, 260, 135, 110, -1, 219, 844 272, 109, 134, 260, 135, 110, -1, 111, 134, 262, 845 135, 112, -1, 111, 134, 262, 135, 116, 134, 263, 846 135, 112, -1, 3, 216, -1, 3, 218, -1, 220, 847 135, 116, 134, 139, -1, 3, 226, 309, -1, 221, 848 135, 116, 134, 309, -1, 228, 3, 226, 309, -1, 849 226, 3, 309, -1, 226, 3, 228, 309, -1, 3, 850 139, 131, 165, -1, 222, 135, 116, 134, 139, 131, 851 165, -1, 224, 135, 132, -1, 221, 135, 132, -1, 852 222, 135, 132, -1, 240, 135, 132, -1, 225, 309, 853 311, 277, -1, 224, 116, 312, 309, 311, 277, -1, 854 236, -1, 240, -1, 242, -1, 283, -1, 237, -1, 855 241, -1, 243, -1, 284, -1, -1, 228, -1, 229, 856 -1, 228, 229, -1, 230, -1, 314, -1, 10, -1, 857 12, -1, 11, -1, 14, -1, 67, -1, -1, 13, 858 109, 231, 286, 110, -1, 233, -1, 228, 233, -1, 859 232, 228, 233, -1, 234, -1, 233, 234, -1, 5, 860 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 861 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 862 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 863 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 864 -1, 237, -1, 232, 237, -1, 236, 234, -1, 236, 865 234, 228, -1, 236, 234, 237, -1, 238, -1, 227, 866 239, 227, -1, 235, -1, 228, 235, -1, 238, 229, 867 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 868 109, 170, 110, -1, 78, 109, 276, 110, -1, 78, 869 109, 170, 110, -1, 241, -1, 232, 241, -1, 240, 870 234, -1, 240, 234, 228, -1, 244, -1, 228, 244, 871 -1, 241, 229, -1, 243, -1, 232, 243, -1, 242, 872 234, -1, 242, 234, 228, -1, 74, -1, 228, 74, 873 -1, 243, 229, -1, 245, -1, 256, -1, 247, 114, 874 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 875 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 876 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 877 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 878 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 879 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 880 -1, 226, 252, -1, 251, 116, 312, 252, -1, -1, 881 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 882 -1, 254, -1, 130, 164, -1, 30, 312, -1, 255, 883 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 884 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 885 258, 116, 274, 259, -1, -1, 131, 164, -1, -1, 886 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 887 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 888 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 889 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 890 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 891 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 892 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 893 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 894 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 895 272, 373, -1, 228, 370, 272, 373, -1, 218, -1, 896 270, -1, 362, -1, 370, -1, 228, 370, -1, 371, 897 -1, 225, 336, 373, -1, 225, 340, 373, -1, 225, 898 -1, 225, 351, -1, 139, -1, 271, 116, 139, -1, 899 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 900 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 901 226, -1, 226, 357, -1, 366, -1, 371, -1, 226, 902 -1, 226, 345, -1, -1, 131, 278, -1, 107, 278, 903 -1, 165, -1, 114, 279, 372, 115, -1, -1, 278, 904 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 905 280, 278, -1, 281, 130, -1, 274, 130, -1, 282, 906 -1, 281, 282, -1, 113, 274, -1, 111, 134, 165, 907 135, 112, -1, 111, 134, 310, 135, 112, -1, 111, 908 134, 164, 96, 164, 135, 112, -1, 113, 111, 134, 909 147, 135, 112, -1, 284, -1, 232, 284, -1, 283, 910 234, -1, 283, 234, 228, -1, 285, -1, 228, 285, 911 -1, 284, 229, -1, 75, 109, 292, 110, -1, 287, 912 373, -1, 286, 116, 287, 373, -1, -1, 289, 274, 913 288, 290, -1, 226, 336, -1, 33, -1, 35, -1, 914 34, -1, -1, 290, 291, -1, 128, 274, 109, 292, 915 110, -1, 128, 114, 134, 298, 115, -1, 128, 109, 916 134, 286, 135, 110, 114, 134, 298, 115, 109, 292, 917 110, -1, 276, -1, 165, -1, 292, 116, 276, -1, 918 292, 116, 165, -1, 33, 294, -1, 233, 33, 294, 919 -1, 293, 116, 294, -1, 295, 290, -1, 295, 290, 920 131, 276, -1, 274, -1, 273, 109, 134, 286, 135, 921 110, -1, 36, 274, 109, 134, 286, 135, 110, 114, 922 115, -1, -1, 36, 274, 109, 134, 286, 135, 110, 923 114, 297, 298, 115, -1, 299, -1, 298, 134, 299, 924 -1, 300, 135, 132, -1, 301, 135, 132, -1, 216, 925 -1, 218, -1, 300, 135, 116, 134, 272, -1, 226, 926 309, -1, 301, 135, 116, 134, 309, -1, -1, 303, 927 -1, 305, -1, 303, 134, 305, -1, -1, 303, -1, 928 213, -1, 307, -1, 199, -1, -1, 5, 82, 306, 929 114, 304, 115, -1, 40, 305, -1, 308, -1, 323, 930 174, -1, 327, 134, 208, 174, -1, 217, 174, -1, 931 225, 323, 174, -1, 228, 323, 174, -1, 232, 323, 932 174, -1, 232, 228, 323, 174, -1, 225, 327, 134, 933 208, 174, -1, 228, 327, 134, 208, 174, -1, 232, 934 327, 134, 208, 174, -1, 232, 228, 327, 134, 208, 935 174, -1, 318, -1, 331, -1, 323, -1, 164, 122, 936 164, -1, -1, 64, 109, 142, 110, 312, -1, -1, 937 313, -1, 314, -1, 313, 314, -1, 39, 109, 109, 938 315, 110, 110, -1, 316, -1, 315, 116, 316, -1, 939 -1, 317, -1, 317, 109, 171, 110, -1, 272, -1, 940 234, -1, 235, -1, 229, -1, 319, 312, -1, 320, 941 -1, 321, 312, -1, 322, 312, -1, 137, -1, 109, 942 319, 110, -1, 150, 318, -1, 150, 228, 318, -1, 943 109, 320, 110, -1, 319, 349, -1, 109, 320, 110, 944 349, -1, 109, 321, 110, 350, -1, 109, 321, 110, 945 -1, 109, 320, 110, 109, 134, 264, 135, 110, -1, 946 109, 322, 110, -1, 324, 312, -1, 325, -1, 326, 947 312, -1, 319, 109, 134, 264, 135, 110, -1, 109, 948 325, 110, 109, 134, 264, 135, 110, -1, 109, 324, 949 110, -1, 150, 323, -1, 150, 228, 323, -1, 109, 950 325, 110, -1, 109, 325, 110, 349, -1, 109, 326, 951 110, 350, -1, 109, 326, 110, -1, 328, -1, 329, 952 -1, 330, -1, 319, 109, 271, 110, -1, 109, 329, 953 110, 109, 271, 110, -1, 109, 328, 110, -1, 150, 954 327, -1, 150, 228, 327, -1, 109, 329, 110, -1, 955 109, 329, 110, 349, -1, 109, 330, 110, 350, -1, 956 109, 330, 110, -1, 332, 312, -1, 333, -1, 334, 957 312, -1, 335, 312, -1, 341, -1, 109, 332, 110, 958 -1, 150, 331, -1, 150, 228, 331, -1, 109, 333, 959 110, -1, 332, 349, -1, 109, 333, 110, 349, -1, 960 109, 334, 110, 350, -1, 109, 334, 110, -1, 332, 961 109, 134, 264, 135, 110, -1, 109, 333, 110, 109, 962 134, 264, 135, 110, -1, 109, 335, 110, -1, 319, 963 312, -1, 337, -1, 338, 312, -1, 339, 312, -1, 964 150, 336, -1, 150, 228, 336, -1, 109, 337, 110, 965 -1, 319, 355, -1, 109, 337, 110, 349, -1, 109, 966 338, 110, 350, -1, 109, 338, 110, -1, 319, 109, 967 134, 264, 135, 110, -1, 109, 337, 110, 109, 134, 968 264, 135, 110, -1, 109, 339, 110, -1, 341, 312, 969 -1, 342, -1, 343, 312, -1, 344, 312, -1, 74, 970 -1, 75, -1, 150, 340, -1, 150, 228, 340, -1, 971 109, 342, 110, -1, 341, 355, -1, 109, 342, 110, 972 355, -1, 341, 109, 134, 264, 135, 110, -1, 109, 973 342, 110, 109, 134, 264, 135, 110, -1, 346, -1, 974 347, 312, -1, 348, 312, -1, 150, -1, 150, 228, 975 -1, 150, 345, -1, 150, 228, 345, -1, 109, 346, 976 110, -1, 349, -1, 109, 346, 110, 349, -1, 109, 977 347, 110, 350, -1, 109, 347, 110, -1, 109, 134, 978 264, 135, 110, -1, 109, 346, 110, 109, 134, 264, 979 135, 110, -1, 109, 348, 110, -1, 111, 112, -1, 980 111, 112, 350, -1, 350, -1, 111, 134, 165, 135, 981 112, -1, 111, 134, 117, 135, 112, -1, 350, 111, 982 134, 165, 135, 112, -1, 350, 111, 134, 117, 135, 983 112, -1, 352, -1, 353, 312, -1, 354, 312, -1, 984 150, -1, 150, 228, -1, 150, 351, -1, 150, 228, 985 351, -1, 109, 352, 110, -1, 355, -1, 109, 352, 986 110, 355, -1, 109, 353, 110, 350, -1, 109, 353, 987 110, -1, 109, 134, 264, 135, 110, -1, 109, 352, 988 110, 109, 134, 264, 135, 110, -1, 109, 354, 110, 989 -1, 356, -1, 356, 350, -1, 350, -1, 111, 112, 990 -1, 111, 134, 228, 117, 135, 112, -1, 111, 134, 991 228, 135, 112, -1, 111, 134, 228, 165, 135, 112, 992 -1, 111, 134, 7, 227, 165, 135, 112, -1, 111, 993 134, 228, 7, 165, 135, 112, -1, 358, -1, 359, 994 312, -1, 360, 312, -1, 150, -1, 150, 228, -1, 995 150, 357, -1, 150, 228, 357, -1, 109, 358, 110, 996 -1, 349, -1, 109, 358, 110, 349, -1, 109, 359, 997 110, 350, -1, 109, 359, 110, -1, 109, 358, 110, 998 109, 134, 264, 135, 110, -1, 109, 360, 110, -1, 999 362, -1, 370, -1, 228, 370, -1, 363, -1, 364, 1000 -1, 150, 226, -1, 228, 150, 226, -1, 150, 371, 1001 -1, 228, 150, 371, -1, 150, 361, -1, 228, 150, 1002 361, -1, 111, 112, 226, -1, 365, 226, -1, 111, 1003 112, 350, 226, -1, 365, 350, 226, -1, 350, 226, 1004 -1, 111, 112, 363, -1, 365, 363, -1, 111, 112, 1005 350, 363, -1, 365, 350, 363, -1, 350, 363, -1, 1006 111, 134, 228, 117, 135, 112, -1, 111, 134, 228, 1007 165, 135, 112, -1, 111, 134, 232, 165, 135, 112, 1008 -1, 111, 134, 232, 228, 165, 135, 112, -1, 370, 1009 -1, 228, 370, -1, 367, -1, 368, -1, 369, -1, 1010 150, 226, -1, 228, 150, 226, -1, 150, 371, -1, 1011 228, 150, 371, -1, 150, 366, -1, 228, 150, 366, 1012 -1, 111, 112, 226, -1, 111, 112, 350, 226, -1, 1013 350, 226, -1, 111, 112, 368, -1, 111, 112, 350, 1014 368, -1, 350, 368, -1, 111, 134, 263, 135, 112, 1015 -1, 111, 112, 109, 260, 110, -1, 370, 109, 134, 1016 260, 135, 110, -1, 219, 109, 134, 260, 135, 110, 1017 -1, -1, 116, -1, -1, 131, 165, -1 1018 }; 1019 1020 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 685 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 1021 686 static const yytype_uint16 yyrline[] = 1022 687 { … … 1100 765 #endif 1101 766 1102 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE767 #if YYDEBUG || YYERROR_VERBOSE || 0 1103 768 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1104 769 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 1209 874 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 1210 875 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 1211 "comma_opt", "assignment_opt", 0876 "comma_opt", "assignment_opt", YY_NULLPTR 1212 877 }; 1213 878 #endif 1214 879 1215 880 # ifdef YYPRINT 1216 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to1217 token YYLEX-NUM. */881 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 882 (internal) symbol number NUM (which must be that of a token). */ 1218 883 static const yytype_uint16 yytoknum[] = 1219 884 { … … 1235 900 # endif 1236 901 1237 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1238 static const yytype_uint16 yyr1[] = 902 #define YYPACT_NINF -1323 903 904 #define yypact_value_is_default(Yystate) \ 905 (!!((Yystate) == (-1323))) 906 907 #define YYTABLE_NINF -522 908 909 #define yytable_value_is_error(Yytable_value) \ 910 0 911 912 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 913 STATE-NUM. */ 914 static const yytype_int16 yypact[] = 1239 915 { 1240 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 1241 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 1242 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 1243 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 1244 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 1245 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 1246 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 1247 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 1248 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 1249 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 1250 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 1251 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 1252 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 1253 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 1254 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 1255 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 1256 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 1257 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 1258 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 1259 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 1260 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 1261 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 1262 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 1263 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1264 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 1265 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 1266 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 1267 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 1268 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 1269 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 1270 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 1271 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 1272 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1273 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 1274 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 1275 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 1276 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 1277 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 1278 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 1279 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 1280 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 1281 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 1282 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 1283 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 1284 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1285 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 1286 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 1287 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 1288 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 1289 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 1290 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 1291 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 1292 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 1293 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1294 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 1295 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 1296 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 1297 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 1298 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1299 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1300 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 1301 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 1302 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 1303 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 1304 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 1305 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 1306 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 1307 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 1308 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 1309 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 1310 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 1311 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 1312 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 1313 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 1314 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 1315 373, 373 916 7329, 8828, -1323, 37, -1323, -1323, -1323, -1323, -1323, -1323, 917 -1323, 109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 918 -1323, -1323, -1323, -1323, -1323, -1323, 85, 85, 85, 873, 919 733, 178, 7561, 370, -1323, -1323, -1323, -1323, -1323, 191, 920 -1323, -1323, -1323, 614, 225, -1323, -1323, -1323, -1323, 4615, 921 -1323, -1323, -1323, -1323, 229, 285, -1323, 934, -1323, -1323, 922 -1323, -1323, 435, 1196, 579, 110, 7677, -1323, -1323, 4858, 923 1038, -1323, -1323, 580, 596, 6761, 1021, 875, 580, 1103, 924 -1323, -1323, 1317, 308, -1323, 580, 1224, -1323, 495, -1323, 925 616, 623, -1323, -1323, -1323, -1323, 547, 285, 85, -1323, 926 85, -1323, -1323, -1323, -1323, 9174, 934, -1323, -1323, 934, 927 -1323, 551, -1323, 9403, -1323, -1323, 1899, 9436, -1323, 844, 928 844, 844, -1323, -1323, -1323, 85, -1323, -1323, -1323, 584, 929 608, 632, -1323, -1323, -1323, 646, -1323, -1323, -1323, -1323, 930 -1323, 664, 687, -1323, -1323, -28, 8797, 2908, 117, 701, 931 717, 726, 771, 786, 799, 8715, 6849, 731, 757, -1323, 932 5600, -1323, -1323, -1323, -1323, 804, -1323, 223, 5225, 5225, 933 -1323, 802, 365, -1323, -1323, -1323, -1323, 816, 443, 480, 934 534, 85, 827, -1323, -1323, 1196, 4341, 868, -1323, 50, 935 -1323, 85, 85, 285, -1323, -1323, 61, -1323, 85, 85, 936 -1323, 4647, 857, 864, 844, 6523, -1323, -1323, 869, 4615, 937 -1323, -1323, 580, -1323, -1323, -1323, 285, -1323, 934, 229, 938 -1323, 7868, -1323, 844, 844, 844, 285, -1323, 873, -1323, 939 5676, -1323, -1323, 852, 844, -1323, 844, -1323, 191, 8797, 940 -1323, 884, -1323, 733, 890, 844, -1323, 873, 888, 892, 941 -1323, 7561, 631, -1323, -1323, -1323, 9256, -1323, -1323, 9621, 942 -1323, 868, 151, 10214, 9436, 1899, 4647, -1323, 88, -1323, 943 -1323, 9403, 934, 891, 7708, -1323, -1323, 347, -1323, 10561, 944 922, 956, 10347, 945, 10366, 10423, -1323, 954, -1323, -1323, 945 -1323, -1323, 10442, 10442, 8571, 952, -1323, -1323, -1323, -1323, 946 -1323, -1323, -1323, 988, -1323, 966, 1946, 8910, 10366, -1323, 947 756, 338, 485, 411, 635, 955, 947, 957, 984, 237, 948 -1323, -1323, 962, 647, -1323, 302, -1323, -1323, 2908, -1323, 949 -1323, 235, 985, -1323, 312, 985, 989, 191, -1323, -1323, 950 990, 9174, -1323, 999, 1006, 9023, -1323, -1323, 1335, 2030, 951 8286, 6523, 580, -1323, 580, 844, 844, -1323, -1323, -1323, 952 -1323, -1323, -1323, 844, 9174, 934, -1323, -1323, 9474, 1575, 953 -1323, 8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 954 5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 955 -1323, -1323, -1323, -1323, -1323, -1323, 1899, -1323, 973, 991, 956 992, 1012, 978, 1017, 1018, 1020, 4341, -1323, -1323, 1029, 957 229, 1031, -1323, -1323, 1033, -1323, -1323, -1323, 9256, -1323, 958 -1323, -1323, -1323, -1323, 4647, -1323, 8797, 8797, -1323, 844, 959 1899, 6642, 934, 8359, -1323, -1323, -1323, -1323, 9256, 151, 960 -1323, -1323, 580, 285, -1323, -1323, 9256, -1323, 5770, -1323, 961 -1323, 844, 844, 337, 8204, 1032, 1036, 1023, 1042, 844, 962 -1323, -1323, -1323, -1323, 9660, -1323, 367, 6404, -1323, 285, 963 1044, -1323, 1899, 10643, 10271, -1323, -1323, -1323, -1323, 1015, 964 4647, -1323, 8432, 868, 7445, -1323, -1323, -1323, 843, 436, 965 962, 733, 7708, 1341, 9403, -1323, 7708, -1323, -1323, -1323, 966 -1323, 508, -1323, 1051, 956, 248, 8571, -1323, 9512, -1323, 967 -1323, 8571, -1323, 8684, 8571, -1323, -1323, 1049, -1323, 606, 968 1057, 682, 1059, -1323, -1323, 3527, 6492, -1323, 362, -1323, 969 -1323, 10214, -1323, 368, 10214, -1323, -1323, -1323, -1323, -1323, 970 -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323, 971 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 972 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 3593, 10214, 973 -1323, 647, 1677, -1323, -1323, 85, 85, -1323, -1323, 8797, 974 -1323, -1323, 1033, 631, -1323, 1033, 10290, -1323, -1323, -1323, 975 5046, 6492, 1060, 1063, -1323, 9436, -1323, -1323, 804, -1323, 976 1067, 750, 1068, 2627, 125, 962, -1323, 85, 85, 962, 977 132, -1323, 85, 85, 1033, -1323, -1323, 85, 85, -1323, 978 985, 9545, 934, 10788, 532, 656, 9545, -1323, 9621, -1323, 979 962, -1323, 9174, -1323, 238, 7983, 7983, 7983, 934, -1323, 980 5791, 1047, 1008, 493, 1058, 1061, -1323, 1076, 5225, 528, 981 -1323, 1165, 934, 7983, 631, 1899, 631, 868, 430, 985, 982 -1323, -1323, 536, 985, -1323, -1323, -1323, 956, -1323, 985, 983 285, 9660, -1323, 619, 1086, 633, 1088, -1323, 1087, 285, 984 -1323, -1323, 9256, 285, 1089, 9512, 1092, -1323, 1065, -1323, 985 538, 552, 733, -1323, 733, 1085, 10366, -1323, 733, 10788, 986 -1323, -1323, 1096, -1323, -1323, -1323, 631, -1323, 10716, 1006, 987 -1323, 7983, 703, 8286, -1323, -1323, 804, 1095, 1098, 843, 988 5016, -1323, -1323, 7708, -1323, -1323, 1091, -1323, -1323, 1102, 989 -1323, 1091, 1104, 10561, 10214, 1090, 1093, 94, 1109, 1107, 990 1111, 1114, -1323, 1118, 1129, 9365, 6611, -1323, 10214, -1323, 991 682, 1717, -1323, -1323, -1323, 85, 85, 10157, 10214, 1125, 992 -1323, -1323, 653, -1323, 10214, -1323, -1323, 736, -1323, -1323, 993 -1323, -1323, 756, 756, 338, 338, 485, 485, 485, 485, 994 411, 411, 635, 955, 947, 957, 984, 10366, 260, -1323, 995 9660, 1132, 1136, 1137, 1677, -1323, -1323, -1323, -1323, -1323, 996 9660, 708, 7983, -1323, 9174, -1323, 6968, 9136, -1323, 8017, 997 6849, -1323, -1323, 750, 9660, 1022, 1140, 1141, 1142, 1143, 998 1146, 1149, 1154, -1323, 3715, 2627, -1323, -1323, -1323, -1323, 999 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1000 -1323, -1323, -1323, 1033, -1323, -1323, -1323, 962, -1323, -1323, 1001 -1323, -1323, -1323, -1323, -1323, -1323, 1155, -1323, 1157, 1159, 1002 -1323, -1323, 229, 1125, 5791, -1323, -1323, -1323, 5958, 1158, 1003 -1323, -1323, -1323, -1323, 733, 6174, 1248, -1323, -1323, -1323, 1004 -1323, 1151, 229, -1323, -1323, 1033, -1323, -1323, 1033, 84, 1005 1033, -1323, -1323, -1323, -1323, -1323, -1323, 9327, -1323, 285, 1006 -1323, -1323, 559, 562, 9474, 7087, 2137, 10366, 3114, -1323, 1007 -1323, 1156, 51, 1156, -1323, 733, -1323, 85, -1323, -1323, 1008 8941, 1023, -1323, -1323, -1323, 1036, 1175, 1171, -1323, -1323, 1009 1178, 1181, -1323, 703, 1901, -1323, 672, -1323, 5016, 962, 1010 -1323, 1184, 7708, 9583, 8797, 1185, -1323, -1323, 1180, 1187, 1011 1170, -1323, 10366, 1197, 326, 1194, -1323, 1202, 631, 1202, 1012 -1323, -1323, 1202, 1199, -1323, 1208, 1210, 1211, 1717, -1323, 1013 -1323, -1323, 5958, -1323, -1323, -1323, -1323, 1209, 10214, 1212, 1014 631, -1323, 10214, -1323, 631, -1323, -1323, 10214, -1323, 558, 1015 985, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1006, 1016 9023, -1323, -1323, 7206, 1218, -1323, 674, 985, -1323, 813, 1017 861, 985, -1323, 844, 4029, -1323, -1323, -1323, 9660, 9660, 1018 -1323, 8359, 8359, -1323, 1215, 1216, 1225, 1230, -1323, 1232, 1019 685, 82, 1125, -1323, 631, -1323, 5225, -1323, 10214, 564, 1020 -1323, 6373, 1236, 1240, 10100, 1242, 1243, 70, 79, 96, 1021 10214, 1244, 285, 10214, 10214, 1227, 1249, 522, 1222, -1323, 1022 -1323, -1323, 1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1023 -1323, -1323, 733, 1254, 10214, -1323, 9660, 9660, 85, 1257, 1024 -1323, 9054, -1323, -1323, 752, -1323, 3114, -1323, -1323, -1323, 1025 -1323, 1065, -1323, -1323, 1255, -1323, -1323, -1323, -1323, 1258, 1026 1901, -1323, -1323, 1245, -1323, 1091, -1323, -1323, 1899, 1260, 1027 -1323, -1323, -1323, 713, 1264, -1323, 94, 1269, 10366, 1252, 1028 94, 94, 1262, 3527, 879, 985, -1323, -1323, 1076, 10214, 1029 1273, 1209, 358, 204, 1270, -1323, -1323, 1275, 1270, -1323, 1030 -1323, 1278, -1323, -1323, 1033, 1280, 1284, 6730, 1285, 1290, 1031 1291, -1323, -1323, 1286, -1323, -1323, 1033, -1323, -1323, -1323, 1032 -1323, 1033, 10214, 10214, 1006, 1294, -1323, -1323, -1323, -1323, 1033 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366, 1034 1300, 1302, 1270, -1323, -1323, 733, -1323, -1323, -1323, 5213, 1035 9583, 10214, 10214, 1374, 10214, -1323, 1295, -1323, 1296, -1323, 1036 1297, 10214, 1301, 10214, 1105, 1304, 12, 85, 9289, 1625, 1037 -1323, -1323, 6174, 1322, 573, -1323, -1323, -1323, -1323, -1323, 1038 -1323, -1323, -1323, -1323, 9920, -1323, 8432, 1330, -1323, -1323, 1039 9583, 576, 602, -1323, 1331, 1315, 956, 1337, -1323, 329, 1040 -1323, -1323, -1323, -1323, 1033, 1339, -1323, -1323, 1320, 486, 1041 509, 631, 1340, -1323, 1344, -1323, 9660, -1323, -1323, -1323, 1042 -1323, -1323, 1347, -1323, 9660, 9660, 9660, -1323, -1323, 1348, 1043 -1323, 1351, 1354, 1355, 716, 8056, 8171, -1323, -1323, 529, 1044 -1323, 1357, 1362, -1323, 8505, 721, 730, 1358, 761, 3837, 1045 -1323, -1323, -1323, 605, -1323, 766, 1366, 1367, 285, 1419, 1046 834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323, 1047 1370, 1375, -1323, -1323, -1323, 1372, -1323, -1323, -1323, -1323, 1048 -1323, -1323, 9583, 956, 1379, -1323, 1352, 956, 9660, -1323, 1049 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1050 -1323, -1323, -1323, 1378, 1382, -1323, -1323, -1323, -1323, -1323, 1051 -1323, -1323, 1387, -1323, 1386, -1323, -1323, 10100, 289, 10214, 1052 10100, -1323, 1389, 10214, -1323, 318, 1405, 1406, -1323, -1323, 1053 1399, 1400, 1380, -1323, 821, -1323, -1323, -1323, 934, 1899, 1054 1396, -1323, 402, 10366, -1323, 785, -1323, 631, 631, 1407, 1055 1408, 1413, 1415, -1323, -1323, 8359, 1414, -1323, 1490, 10366, 1056 1385, -1323, -1323, 10012, -1323, 800, -1323, 1402, 10100, 1403, 1057 -1323, -1323, 1426, -1323, 1427, -1323, 1445, 1446, -1323, 1411, 1058 9583, -1323, -1323, -1323, 956, 631, 1434, 1417, 1435, 1270, 1059 1270, -1323, -1323, -1323, -1323, -1323, 10100, 107, -1323, 433, 1060 -1323, -1323, 7793, -1323, -1323, 1418, 10214, -1323, 10214, 7793, 1061 285, 9512, 285, 9512, 1436, -1323, 1442, -1323, -1323, 1440, 1062 -1323, -1323, 825, -1323, -1323, -1323, 1444, 1449, -1323, 10366, 1063 10366, -1323, -1323, 909, 211, -1323, -1323, 1425, -1323, 909, 1064 -1323, -1323, 2166, 631, -1323, -1323, 285, 9512, 285, 9512, 1065 1453, 1431, 631, -1323, -1323, -1323, -1323, 10012, 1443, 909, 1066 6091, 10214, 9924, 1452, 909, 1454, 2166, 3344, -1323, -1323, 1067 -1323, 1458, -1323, -1323, -1323, -1323, 8797, -1323, -1323, -1323, 1068 9791, -1323, 10012, -1323, -1323, 1438, 9703, -1323, -1323, 9924, 1069 285, 3344, 285, 1464, 1466, 853, -1323, 9791, -1323, -1323, 1070 -1323, 9703, -1323, -1323, -1323, 285, 285, -1323, -1323, -1323, 1071 -1323, -1323, -1323, -1323, -1323 1316 1072 }; 1317 1073 1318 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1319 static const yytype_uint8 yyr2[] = 1320 { 1321 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1322 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1323 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 1324 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 1325 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 1326 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 1327 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1328 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1329 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1331 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 1332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 1334 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 1335 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 1336 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 1337 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 1338 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 1339 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 1340 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 1341 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 1342 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 1343 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 1344 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1345 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 1346 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 1347 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 1348 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 1349 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 1350 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1351 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 1352 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1354 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 1355 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 1356 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 1357 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 1358 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 1359 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 1360 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 1361 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1362 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1363 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1364 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1366 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 1367 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 1368 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 1369 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 1370 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 1371 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 1372 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 1373 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 1374 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 1375 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 1376 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 1377 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 1378 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 1379 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 1380 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 1381 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1382 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 1383 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1384 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 1385 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 1386 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 1387 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 1388 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 1389 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 1390 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1391 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 1392 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 1393 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 1394 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 1395 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 1396 0, 2 1397 }; 1398 1399 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1400 Performed when YYTABLE doesn't specify something else to do. Zero 1401 means the default is an error. */ 1074 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1075 Performed when YYTABLE does not specify something else to do. Zero 1076 means the default is an error. */ 1402 1077 static const yytype_uint16 yydefact[] = 1403 1078 { … … 1560 1235 }; 1561 1236 1562 /* YYDEFGOTO[NTERM-NUM]. */ 1237 /* YYPGOTO[NTERM-NUM]. */ 1238 static const yytype_int16 yypgoto[] = 1239 { 1240 -1323, 4572, 3263, -1323, 197, -1323, 601, 950, -251, 910, 1241 -1323, 521, -520, -467, -853, -64, 3183, 0, -1323, -150, 1242 423, 446, 477, 450, 1016, 1025, 1019, 1026, 1028, -1323, 1243 -622, -408, 5012, -745, -1323, -735, 604, 472, -656, 413, 1244 -1323, 1279, -1323, 374, -1058, -1323, -1323, 126, -1323, -823, 1245 -1106, 222, -1323, -1323, -1323, -1323, 58, -1209, -1323, -1323, 1246 -1323, -1323, -1323, -1323, 301, -1149, 35, -1323, -933, -1323, 1247 482, 274, -1323, 159, -1323, -303, -1323, -1323, -1323, 535, 1248 -827, -1323, -1323, 15, -1007, 71, 28, -1323, -1323, -1323, 1249 -21, -1323, 357, 1253, -198, 1636, 4113, -1323, -1323, 80, 1250 54, 422, 1473, -1323, 1886, -1323, -1323, 192, 2183, -1323, 1251 2495, 898, -1323, -1323, -1323, -638, -1323, 924, 925, 524, 1252 699, 83, -1323, -1323, -1323, 915, 695, -339, -1323, -106, 1253 34, 1281, -1323, -1323, -847, -986, 1046, 1127, 1039, 5, 1254 -1323, 1536, 481, -165, -210, -124, 651, 758, -1323, 979, 1255 -1323, 2789, 1548, -413, 904, -1323, -1323, 689, -1323, -235, 1256 -1323, 158, -1323, -1323, -1323, -1257, 401, -1323, -1323, -1323, 1257 1148, -1323, 21, -1323, -1323, -858, -105, -1322, -129, 2267, 1258 -1323, 2391, -1323, 906, -1323, -184, 59, -180, -173, -170, 1259 7, -40, -35, -33, 60, -6, 25, 93, -168, -164, 1260 -158, -147, -144, -292, -471, -462, -452, -551, -302, -537, 1261 -1323, -1323, -511, 1069, 1072, 1074, 2608, 4844, -578, -514, 1262 -502, -495, -500, -1323, -508, -724, -717, -708, -590, -305, 1263 -195, -1323, -1323, 246, 19, 36, -1323, 3865, 104, -623, 1264 -397 1265 }; 1266 1267 /* YYDEFGOTO[NTERM-NUM]. */ 1563 1268 static const yytype_int16 yydefgoto[] = 1564 1269 { … … 1590 1295 }; 1591 1296 1592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1593 STATE-NUM. */ 1594 #define YYPACT_NINF -1323 1595 static const yytype_int16 yypact[] = 1596 { 1597 7329, 8828, -1323, 37, -1323, -1323, -1323, -1323, -1323, -1323, 1598 -1323, 109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1599 -1323, -1323, -1323, -1323, -1323, -1323, 85, 85, 85, 873, 1600 733, 178, 7561, 370, -1323, -1323, -1323, -1323, -1323, 191, 1601 -1323, -1323, -1323, 614, 225, -1323, -1323, -1323, -1323, 4615, 1602 -1323, -1323, -1323, -1323, 229, 285, -1323, 934, -1323, -1323, 1603 -1323, -1323, 435, 1196, 579, 110, 7677, -1323, -1323, 4858, 1604 1038, -1323, -1323, 580, 596, 6761, 1021, 875, 580, 1103, 1605 -1323, -1323, 1317, 308, -1323, 580, 1224, -1323, 495, -1323, 1606 616, 623, -1323, -1323, -1323, -1323, 547, 285, 85, -1323, 1607 85, -1323, -1323, -1323, -1323, 9174, 934, -1323, -1323, 934, 1608 -1323, 551, -1323, 9403, -1323, -1323, 1899, 9436, -1323, 844, 1609 844, 844, -1323, -1323, -1323, 85, -1323, -1323, -1323, 584, 1610 608, 632, -1323, -1323, -1323, 646, -1323, -1323, -1323, -1323, 1611 -1323, 664, 687, -1323, -1323, -28, 8797, 2908, 117, 701, 1612 717, 726, 771, 786, 799, 8715, 6849, 731, 757, -1323, 1613 5600, -1323, -1323, -1323, -1323, 804, -1323, 223, 5225, 5225, 1614 -1323, 802, 365, -1323, -1323, -1323, -1323, 816, 443, 480, 1615 534, 85, 827, -1323, -1323, 1196, 4341, 868, -1323, 50, 1616 -1323, 85, 85, 285, -1323, -1323, 61, -1323, 85, 85, 1617 -1323, 4647, 857, 864, 844, 6523, -1323, -1323, 869, 4615, 1618 -1323, -1323, 580, -1323, -1323, -1323, 285, -1323, 934, 229, 1619 -1323, 7868, -1323, 844, 844, 844, 285, -1323, 873, -1323, 1620 5676, -1323, -1323, 852, 844, -1323, 844, -1323, 191, 8797, 1621 -1323, 884, -1323, 733, 890, 844, -1323, 873, 888, 892, 1622 -1323, 7561, 631, -1323, -1323, -1323, 9256, -1323, -1323, 9621, 1623 -1323, 868, 151, 10214, 9436, 1899, 4647, -1323, 88, -1323, 1624 -1323, 9403, 934, 891, 7708, -1323, -1323, 347, -1323, 10561, 1625 922, 956, 10347, 945, 10366, 10423, -1323, 954, -1323, -1323, 1626 -1323, -1323, 10442, 10442, 8571, 952, -1323, -1323, -1323, -1323, 1627 -1323, -1323, -1323, 988, -1323, 966, 1946, 8910, 10366, -1323, 1628 756, 338, 485, 411, 635, 955, 947, 957, 984, 237, 1629 -1323, -1323, 962, 647, -1323, 302, -1323, -1323, 2908, -1323, 1630 -1323, 235, 985, -1323, 312, 985, 989, 191, -1323, -1323, 1631 990, 9174, -1323, 999, 1006, 9023, -1323, -1323, 1335, 2030, 1632 8286, 6523, 580, -1323, 580, 844, 844, -1323, -1323, -1323, 1633 -1323, -1323, -1323, 844, 9174, 934, -1323, -1323, 9474, 1575, 1634 -1323, 8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1635 5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1636 -1323, -1323, -1323, -1323, -1323, -1323, 1899, -1323, 973, 991, 1637 992, 1012, 978, 1017, 1018, 1020, 4341, -1323, -1323, 1029, 1638 229, 1031, -1323, -1323, 1033, -1323, -1323, -1323, 9256, -1323, 1639 -1323, -1323, -1323, -1323, 4647, -1323, 8797, 8797, -1323, 844, 1640 1899, 6642, 934, 8359, -1323, -1323, -1323, -1323, 9256, 151, 1641 -1323, -1323, 580, 285, -1323, -1323, 9256, -1323, 5770, -1323, 1642 -1323, 844, 844, 337, 8204, 1032, 1036, 1023, 1042, 844, 1643 -1323, -1323, -1323, -1323, 9660, -1323, 367, 6404, -1323, 285, 1644 1044, -1323, 1899, 10643, 10271, -1323, -1323, -1323, -1323, 1015, 1645 4647, -1323, 8432, 868, 7445, -1323, -1323, -1323, 843, 436, 1646 962, 733, 7708, 1341, 9403, -1323, 7708, -1323, -1323, -1323, 1647 -1323, 508, -1323, 1051, 956, 248, 8571, -1323, 9512, -1323, 1648 -1323, 8571, -1323, 8684, 8571, -1323, -1323, 1049, -1323, 606, 1649 1057, 682, 1059, -1323, -1323, 3527, 6492, -1323, 362, -1323, 1650 -1323, 10214, -1323, 368, 10214, -1323, -1323, -1323, -1323, -1323, 1651 -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323, 1652 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 1653 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 3593, 10214, 1654 -1323, 647, 1677, -1323, -1323, 85, 85, -1323, -1323, 8797, 1655 -1323, -1323, 1033, 631, -1323, 1033, 10290, -1323, -1323, -1323, 1656 5046, 6492, 1060, 1063, -1323, 9436, -1323, -1323, 804, -1323, 1657 1067, 750, 1068, 2627, 125, 962, -1323, 85, 85, 962, 1658 132, -1323, 85, 85, 1033, -1323, -1323, 85, 85, -1323, 1659 985, 9545, 934, 10788, 532, 656, 9545, -1323, 9621, -1323, 1660 962, -1323, 9174, -1323, 238, 7983, 7983, 7983, 934, -1323, 1661 5791, 1047, 1008, 493, 1058, 1061, -1323, 1076, 5225, 528, 1662 -1323, 1165, 934, 7983, 631, 1899, 631, 868, 430, 985, 1663 -1323, -1323, 536, 985, -1323, -1323, -1323, 956, -1323, 985, 1664 285, 9660, -1323, 619, 1086, 633, 1088, -1323, 1087, 285, 1665 -1323, -1323, 9256, 285, 1089, 9512, 1092, -1323, 1065, -1323, 1666 538, 552, 733, -1323, 733, 1085, 10366, -1323, 733, 10788, 1667 -1323, -1323, 1096, -1323, -1323, -1323, 631, -1323, 10716, 1006, 1668 -1323, 7983, 703, 8286, -1323, -1323, 804, 1095, 1098, 843, 1669 5016, -1323, -1323, 7708, -1323, -1323, 1091, -1323, -1323, 1102, 1670 -1323, 1091, 1104, 10561, 10214, 1090, 1093, 94, 1109, 1107, 1671 1111, 1114, -1323, 1118, 1129, 9365, 6611, -1323, 10214, -1323, 1672 682, 1717, -1323, -1323, -1323, 85, 85, 10157, 10214, 1125, 1673 -1323, -1323, 653, -1323, 10214, -1323, -1323, 736, -1323, -1323, 1674 -1323, -1323, 756, 756, 338, 338, 485, 485, 485, 485, 1675 411, 411, 635, 955, 947, 957, 984, 10366, 260, -1323, 1676 9660, 1132, 1136, 1137, 1677, -1323, -1323, -1323, -1323, -1323, 1677 9660, 708, 7983, -1323, 9174, -1323, 6968, 9136, -1323, 8017, 1678 6849, -1323, -1323, 750, 9660, 1022, 1140, 1141, 1142, 1143, 1679 1146, 1149, 1154, -1323, 3715, 2627, -1323, -1323, -1323, -1323, 1680 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1681 -1323, -1323, -1323, 1033, -1323, -1323, -1323, 962, -1323, -1323, 1682 -1323, -1323, -1323, -1323, -1323, -1323, 1155, -1323, 1157, 1159, 1683 -1323, -1323, 229, 1125, 5791, -1323, -1323, -1323, 5958, 1158, 1684 -1323, -1323, -1323, -1323, 733, 6174, 1248, -1323, -1323, -1323, 1685 -1323, 1151, 229, -1323, -1323, 1033, -1323, -1323, 1033, 84, 1686 1033, -1323, -1323, -1323, -1323, -1323, -1323, 9327, -1323, 285, 1687 -1323, -1323, 559, 562, 9474, 7087, 2137, 10366, 3114, -1323, 1688 -1323, 1156, 51, 1156, -1323, 733, -1323, 85, -1323, -1323, 1689 8941, 1023, -1323, -1323, -1323, 1036, 1175, 1171, -1323, -1323, 1690 1178, 1181, -1323, 703, 1901, -1323, 672, -1323, 5016, 962, 1691 -1323, 1184, 7708, 9583, 8797, 1185, -1323, -1323, 1180, 1187, 1692 1170, -1323, 10366, 1197, 326, 1194, -1323, 1202, 631, 1202, 1693 -1323, -1323, 1202, 1199, -1323, 1208, 1210, 1211, 1717, -1323, 1694 -1323, -1323, 5958, -1323, -1323, -1323, -1323, 1209, 10214, 1212, 1695 631, -1323, 10214, -1323, 631, -1323, -1323, 10214, -1323, 558, 1696 985, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1006, 1697 9023, -1323, -1323, 7206, 1218, -1323, 674, 985, -1323, 813, 1698 861, 985, -1323, 844, 4029, -1323, -1323, -1323, 9660, 9660, 1699 -1323, 8359, 8359, -1323, 1215, 1216, 1225, 1230, -1323, 1232, 1700 685, 82, 1125, -1323, 631, -1323, 5225, -1323, 10214, 564, 1701 -1323, 6373, 1236, 1240, 10100, 1242, 1243, 70, 79, 96, 1702 10214, 1244, 285, 10214, 10214, 1227, 1249, 522, 1222, -1323, 1703 -1323, -1323, 1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1704 -1323, -1323, 733, 1254, 10214, -1323, 9660, 9660, 85, 1257, 1705 -1323, 9054, -1323, -1323, 752, -1323, 3114, -1323, -1323, -1323, 1706 -1323, 1065, -1323, -1323, 1255, -1323, -1323, -1323, -1323, 1258, 1707 1901, -1323, -1323, 1245, -1323, 1091, -1323, -1323, 1899, 1260, 1708 -1323, -1323, -1323, 713, 1264, -1323, 94, 1269, 10366, 1252, 1709 94, 94, 1262, 3527, 879, 985, -1323, -1323, 1076, 10214, 1710 1273, 1209, 358, 204, 1270, -1323, -1323, 1275, 1270, -1323, 1711 -1323, 1278, -1323, -1323, 1033, 1280, 1284, 6730, 1285, 1290, 1712 1291, -1323, -1323, 1286, -1323, -1323, 1033, -1323, -1323, -1323, 1713 -1323, 1033, 10214, 10214, 1006, 1294, -1323, -1323, -1323, -1323, 1714 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366, 1715 1300, 1302, 1270, -1323, -1323, 733, -1323, -1323, -1323, 5213, 1716 9583, 10214, 10214, 1374, 10214, -1323, 1295, -1323, 1296, -1323, 1717 1297, 10214, 1301, 10214, 1105, 1304, 12, 85, 9289, 1625, 1718 -1323, -1323, 6174, 1322, 573, -1323, -1323, -1323, -1323, -1323, 1719 -1323, -1323, -1323, -1323, 9920, -1323, 8432, 1330, -1323, -1323, 1720 9583, 576, 602, -1323, 1331, 1315, 956, 1337, -1323, 329, 1721 -1323, -1323, -1323, -1323, 1033, 1339, -1323, -1323, 1320, 486, 1722 509, 631, 1340, -1323, 1344, -1323, 9660, -1323, -1323, -1323, 1723 -1323, -1323, 1347, -1323, 9660, 9660, 9660, -1323, -1323, 1348, 1724 -1323, 1351, 1354, 1355, 716, 8056, 8171, -1323, -1323, 529, 1725 -1323, 1357, 1362, -1323, 8505, 721, 730, 1358, 761, 3837, 1726 -1323, -1323, -1323, 605, -1323, 766, 1366, 1367, 285, 1419, 1727 834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323, 1728 1370, 1375, -1323, -1323, -1323, 1372, -1323, -1323, -1323, -1323, 1729 -1323, -1323, 9583, 956, 1379, -1323, 1352, 956, 9660, -1323, 1730 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1731 -1323, -1323, -1323, 1378, 1382, -1323, -1323, -1323, -1323, -1323, 1732 -1323, -1323, 1387, -1323, 1386, -1323, -1323, 10100, 289, 10214, 1733 10100, -1323, 1389, 10214, -1323, 318, 1405, 1406, -1323, -1323, 1734 1399, 1400, 1380, -1323, 821, -1323, -1323, -1323, 934, 1899, 1735 1396, -1323, 402, 10366, -1323, 785, -1323, 631, 631, 1407, 1736 1408, 1413, 1415, -1323, -1323, 8359, 1414, -1323, 1490, 10366, 1737 1385, -1323, -1323, 10012, -1323, 800, -1323, 1402, 10100, 1403, 1738 -1323, -1323, 1426, -1323, 1427, -1323, 1445, 1446, -1323, 1411, 1739 9583, -1323, -1323, -1323, 956, 631, 1434, 1417, 1435, 1270, 1740 1270, -1323, -1323, -1323, -1323, -1323, 10100, 107, -1323, 433, 1741 -1323, -1323, 7793, -1323, -1323, 1418, 10214, -1323, 10214, 7793, 1742 285, 9512, 285, 9512, 1436, -1323, 1442, -1323, -1323, 1440, 1743 -1323, -1323, 825, -1323, -1323, -1323, 1444, 1449, -1323, 10366, 1744 10366, -1323, -1323, 909, 211, -1323, -1323, 1425, -1323, 909, 1745 -1323, -1323, 2166, 631, -1323, -1323, 285, 9512, 285, 9512, 1746 1453, 1431, 631, -1323, -1323, -1323, -1323, 10012, 1443, 909, 1747 6091, 10214, 9924, 1452, 909, 1454, 2166, 3344, -1323, -1323, 1748 -1323, 1458, -1323, -1323, -1323, -1323, 8797, -1323, -1323, -1323, 1749 9791, -1323, 10012, -1323, -1323, 1438, 9703, -1323, -1323, 9924, 1750 285, 3344, 285, 1464, 1466, 853, -1323, 9791, -1323, -1323, 1751 -1323, 9703, -1323, -1323, -1323, 285, 285, -1323, -1323, -1323, 1752 -1323, -1323, -1323, -1323, -1323 1753 }; 1754 1755 /* YYPGOTO[NTERM-NUM]. */ 1756 static const yytype_int16 yypgoto[] = 1757 { 1758 -1323, 4572, 3263, -1323, 197, -1323, 601, 950, -251, 910, 1759 -1323, 521, -520, -467, -853, -64, 3183, 0, -1323, -150, 1760 423, 446, 477, 450, 1016, 1025, 1019, 1026, 1028, -1323, 1761 -622, -408, 5012, -745, -1323, -735, 604, 472, -656, 413, 1762 -1323, 1279, -1323, 374, -1058, -1323, -1323, 126, -1323, -823, 1763 -1106, 222, -1323, -1323, -1323, -1323, 58, -1209, -1323, -1323, 1764 -1323, -1323, -1323, -1323, 301, -1149, 35, -1323, -933, -1323, 1765 482, 274, -1323, 159, -1323, -303, -1323, -1323, -1323, 535, 1766 -827, -1323, -1323, 15, -1007, 71, 28, -1323, -1323, -1323, 1767 -21, -1323, 357, 1253, -198, 1636, 4113, -1323, -1323, 80, 1768 54, 422, 1473, -1323, 1886, -1323, -1323, 192, 2183, -1323, 1769 2495, 898, -1323, -1323, -1323, -638, -1323, 924, 925, 524, 1770 699, 83, -1323, -1323, -1323, 915, 695, -339, -1323, -106, 1771 34, 1281, -1323, -1323, -847, -986, 1046, 1127, 1039, 5, 1772 -1323, 1536, 481, -165, -210, -124, 651, 758, -1323, 979, 1773 -1323, 2789, 1548, -413, 904, -1323, -1323, 689, -1323, -235, 1774 -1323, 158, -1323, -1323, -1323, -1257, 401, -1323, -1323, -1323, 1775 1148, -1323, 21, -1323, -1323, -858, -105, -1322, -129, 2267, 1776 -1323, 2391, -1323, 906, -1323, -184, 59, -180, -173, -170, 1777 7, -40, -35, -33, 60, -6, 25, 93, -168, -164, 1778 -158, -147, -144, -292, -471, -462, -452, -551, -302, -537, 1779 -1323, -1323, -511, 1069, 1072, 1074, 2608, 4844, -578, -514, 1780 -502, -495, -500, -1323, -508, -724, -717, -708, -590, -305, 1781 -195, -1323, -1323, 246, 19, 36, -1323, 3865, 104, -623, 1782 -397 1783 }; 1784 1785 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1786 positive, shift that token. If negative, reduce the rule which 1787 number is the opposite. If YYTABLE_NINF, syntax error. */ 1788 #define YYTABLE_NINF -522 1297 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1298 positive, shift that token. If negative, reduce the rule whose 1299 number is the opposite. If YYTABLE_NINF, syntax error. */ 1789 1300 static const yytype_int16 yytable[] = 1790 1301 { … … 2878 2389 }; 2879 2390 2880 #define yypact_value_is_default(yystate) \2881 ((yystate) == (-1323))2882 2883 #define yytable_value_is_error(yytable_value) \2884 YYID (0)2885 2886 2391 static const yytype_int16 yycheck[] = 2887 2392 { … … 3975 3480 }; 3976 3481 3977 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing3978 symbol of state STATE-NUM. */3482 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3483 symbol of state STATE-NUM. */ 3979 3484 static const yytype_uint16 yystos[] = 3980 3485 { … … 4137 3642 }; 4138 3643 4139 #define yyerrok (yyerrstatus = 0) 4140 #define yyclearin (yychar = YYEMPTY) 4141 #define YYEMPTY (-2) 4142 #define YYEOF 0 4143 4144 #define YYACCEPT goto yyacceptlab 4145 #define YYABORT goto yyabortlab 4146 #define YYERROR goto yyerrorlab 4147 4148 4149 /* Like YYERROR except do call yyerror. This remains here temporarily 4150 to ease the transition to the new meaning of YYERROR, for GCC. 4151 Once GCC version 2 has supplanted version 1, this can go. However, 4152 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4153 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4154 discussed. */ 4155 4156 #define YYFAIL goto yyerrlab 4157 #if defined YYFAIL 4158 /* This is here to suppress warnings from the GCC cpp's 4159 -Wunused-macros. Normally we don't worry about that warning, but 4160 some users do, and we want to make it easy for users to remove 4161 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4162 #endif 3644 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3645 static const yytype_uint16 yyr1[] = 3646 { 3647 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 3648 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 3649 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 3650 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 3651 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 3652 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 3653 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 3654 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 3655 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 3656 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 3657 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 3658 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 3659 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 3660 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 3661 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 3662 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 3663 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 3664 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 3665 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 3666 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 3667 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 3668 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 3669 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 3670 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 3671 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 3672 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 3673 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 3674 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 3675 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 3676 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 3677 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 3678 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 3679 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 3680 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 3681 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 3682 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 3683 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 3684 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 3685 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 3686 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 3687 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 3688 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 3689 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 3690 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 3691 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 3692 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 3693 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 3694 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 3695 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 3696 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 3697 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 3698 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 3699 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 3700 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 3701 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 3702 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 3703 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 3704 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 3705 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 3706 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 3707 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 3708 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 3709 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 3710 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 3711 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 3712 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 3713 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 3714 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 3715 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 3716 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 3717 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 3718 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 3719 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 3720 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 3721 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 3722 373, 373 3723 }; 3724 3725 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3726 static const yytype_uint8 yyr2[] = 3727 { 3728 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3729 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3730 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 3731 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 3732 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 3733 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 3734 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 3735 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3736 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3737 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 3738 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 3739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3740 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 3741 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 3742 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 3743 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 3744 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 3745 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 3746 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 3747 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 3748 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 3749 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 3750 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 3751 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3752 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 3753 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 3754 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 3755 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 3756 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 3757 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 3758 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 3759 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3761 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 3762 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 3763 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 3764 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 3765 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 3766 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 3767 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 3768 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 3769 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 3770 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 3771 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 3772 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3773 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 3774 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 3775 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 3776 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 3777 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 3778 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 3779 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 3780 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 3781 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 3782 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 3783 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 3784 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 3785 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 3786 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 3787 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 3788 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 3789 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 3790 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 3791 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 3792 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 3793 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 3794 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 3795 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 3796 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 3797 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 3798 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 3799 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 3800 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 3801 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 3802 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 3803 0, 2 3804 }; 3805 3806 3807 #define yyerrok (yyerrstatus = 0) 3808 #define yyclearin (yychar = YYEMPTY) 3809 #define YYEMPTY (-2) 3810 #define YYEOF 0 3811 3812 #define YYACCEPT goto yyacceptlab 3813 #define YYABORT goto yyabortlab 3814 #define YYERROR goto yyerrorlab 3815 4163 3816 4164 3817 #define YYRECOVERING() (!!yyerrstatus) 4165 3818 4166 #define YYBACKUP(Token, Value) \ 4167 do \ 4168 if (yychar == YYEMPTY && yylen == 1) \ 4169 { \ 4170 yychar = (Token); \ 4171 yylval = (Value); \ 4172 YYPOPSTACK (1); \ 4173 goto yybackup; \ 4174 } \ 4175 else \ 4176 { \ 3819 #define YYBACKUP(Token, Value) \ 3820 do \ 3821 if (yychar == YYEMPTY) \ 3822 { \ 3823 yychar = (Token); \ 3824 yylval = (Value); \ 3825 YYPOPSTACK (yylen); \ 3826 yystate = *yyssp; \ 3827 goto yybackup; \ 3828 } \ 3829 else \ 3830 { \ 4177 3831 yyerror (YY_("syntax error: cannot back up")); \ 4178 YYERROR; \ 4179 } \ 4180 while (YYID (0)) 4181 4182 4183 #define YYTERROR 1 4184 #define YYERRCODE 256 4185 4186 4187 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4188 If N is 0, then set CURRENT to the empty location which ends 4189 the previous symbol: RHS[0] (always defined). */ 4190 4191 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4192 #ifndef YYLLOC_DEFAULT 4193 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4194 do \ 4195 if (YYID (N)) \ 4196 { \ 4197 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4198 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4199 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4200 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4201 } \ 4202 else \ 4203 { \ 4204 (Current).first_line = (Current).last_line = \ 4205 YYRHSLOC (Rhs, 0).last_line; \ 4206 (Current).first_column = (Current).last_column = \ 4207 YYRHSLOC (Rhs, 0).last_column; \ 4208 } \ 4209 while (YYID (0)) 4210 #endif 4211 4212 4213 /* This macro is provided for backward compatibility. */ 4214 4215 #ifndef YY_LOCATION_PRINT 4216 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4217 #endif 4218 4219 4220 /* YYLEX -- calling `yylex' with the right arguments. */ 4221 4222 #ifdef YYLEX_PARAM 4223 # define YYLEX yylex (YYLEX_PARAM) 4224 #else 4225 # define YYLEX yylex () 4226 #endif 3832 YYERROR; \ 3833 } \ 3834 while (0) 3835 3836 /* Error token number */ 3837 #define YYTERROR 1 3838 #define YYERRCODE 256 3839 3840 4227 3841 4228 3842 /* Enable debugging if requested. */ … … 4234 3848 # endif 4235 3849 4236 # define YYDPRINTF(Args) \ 4237 do { \ 4238 if (yydebug) \ 4239 YYFPRINTF Args; \ 4240 } while (YYID (0)) 4241 4242 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4243 do { \ 4244 if (yydebug) \ 4245 { \ 4246 YYFPRINTF (stderr, "%s ", Title); \ 4247 yy_symbol_print (stderr, \ 4248 Type, Value); \ 4249 YYFPRINTF (stderr, "\n"); \ 4250 } \ 4251 } while (YYID (0)) 4252 4253 4254 /*--------------------------------. 4255 | Print this symbol on YYOUTPUT. | 4256 `--------------------------------*/ 4257 4258 /*ARGSUSED*/ 4259 #if (defined __STDC__ || defined __C99__FUNC__ \ 4260 || defined __cplusplus || defined _MSC_VER) 3850 # define YYDPRINTF(Args) \ 3851 do { \ 3852 if (yydebug) \ 3853 YYFPRINTF Args; \ 3854 } while (0) 3855 3856 /* This macro is provided for backward compatibility. */ 3857 #ifndef YY_LOCATION_PRINT 3858 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3859 #endif 3860 3861 3862 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3863 do { \ 3864 if (yydebug) \ 3865 { \ 3866 YYFPRINTF (stderr, "%s ", Title); \ 3867 yy_symbol_print (stderr, \ 3868 Type, Value); \ 3869 YYFPRINTF (stderr, "\n"); \ 3870 } \ 3871 } while (0) 3872 3873 3874 /*----------------------------------------. 3875 | Print this symbol's value on YYOUTPUT. | 3876 `----------------------------------------*/ 3877 4261 3878 static void 4262 3879 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4263 #else4264 static void4265 yy_symbol_value_print (yyoutput, yytype, yyvaluep)4266 FILE *yyoutput;4267 int yytype;4268 YYSTYPE const * const yyvaluep;4269 #endif4270 3880 { 3881 FILE *yyo = yyoutput; 3882 YYUSE (yyo); 4271 3883 if (!yyvaluep) 4272 3884 return; … … 4274 3886 if (yytype < YYNTOKENS) 4275 3887 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4276 # else4277 YYUSE (yyoutput);4278 3888 # endif 4279 switch (yytype) 4280 { 4281 default: 4282 break; 4283 } 3889 YYUSE (yytype); 4284 3890 } 4285 3891 … … 4289 3895 `--------------------------------*/ 4290 3896 4291 #if (defined __STDC__ || defined __C99__FUNC__ \4292 || defined __cplusplus || defined _MSC_VER)4293 3897 static void 4294 3898 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4295 #else4296 static void4297 yy_symbol_print (yyoutput, yytype, yyvaluep)4298 FILE *yyoutput;4299 int yytype;4300 YYSTYPE const * const yyvaluep;4301 #endif4302 3899 { 4303 if (yytype < YYNTOKENS) 4304 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4305 else 4306 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3900 YYFPRINTF (yyoutput, "%s %s (", 3901 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4307 3902 4308 3903 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 4315 3910 `------------------------------------------------------------------*/ 4316 3911 4317 #if (defined __STDC__ || defined __C99__FUNC__ \4318 || defined __cplusplus || defined _MSC_VER)4319 3912 static void 4320 3913 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4321 #else4322 static void4323 yy_stack_print (yybottom, yytop)4324 yytype_int16 *yybottom;4325 yytype_int16 *yytop;4326 #endif4327 3914 { 4328 3915 YYFPRINTF (stderr, "Stack now"); … … 4335 3922 } 4336 3923 4337 # define YY_STACK_PRINT(Bottom, Top) 4338 do { 4339 if (yydebug) 4340 yy_stack_print ((Bottom), (Top)); 4341 } while ( YYID (0))3924 # define YY_STACK_PRINT(Bottom, Top) \ 3925 do { \ 3926 if (yydebug) \ 3927 yy_stack_print ((Bottom), (Top)); \ 3928 } while (0) 4342 3929 4343 3930 … … 4346 3933 `------------------------------------------------*/ 4347 3934 4348 #if (defined __STDC__ || defined __C99__FUNC__ \4349 || defined __cplusplus || defined _MSC_VER)4350 3935 static void 4351 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4352 #else 4353 static void 4354 yy_reduce_print (yyvsp, yyrule) 4355 YYSTYPE *yyvsp; 4356 int yyrule; 4357 #endif 3936 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4358 3937 { 3938 unsigned long int yylno = yyrline[yyrule]; 4359 3939 int yynrhs = yyr2[yyrule]; 4360 3940 int yyi; 4361 unsigned long int yylno = yyrline[yyrule];4362 3941 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 4363 3942 yyrule - 1, yylno); 4364 3943 /* The symbols being reduced. */ 4365 3944 for (yyi = 0; yyi < yynrhs; yyi++) 4366 3945 { 4367 3946 YYFPRINTF (stderr, " $%d = ", yyi + 1); 4368 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4369 &(yyvsp[(yyi + 1) - (yynrhs)]) 4370 ); 3947 yy_symbol_print (stderr, 3948 yystos[yyssp[yyi + 1 - yynrhs]], 3949 &(yyvsp[(yyi + 1) - (yynrhs)]) 3950 ); 4371 3951 YYFPRINTF (stderr, "\n"); 4372 3952 } 4373 3953 } 4374 3954 4375 # define YY_REDUCE_PRINT(Rule) 4376 do { 4377 if (yydebug) 4378 yy_reduce_print (yy vsp, Rule); \4379 } while ( YYID (0))3955 # define YY_REDUCE_PRINT(Rule) \ 3956 do { \ 3957 if (yydebug) \ 3958 yy_reduce_print (yyssp, yyvsp, Rule); \ 3959 } while (0) 4380 3960 4381 3961 /* Nonzero means print parse trace. It is left uninitialized so that … … 4391 3971 4392 3972 /* YYINITDEPTH -- initial size of the parser's stacks. */ 4393 #ifndef 3973 #ifndef YYINITDEPTH 4394 3974 # define YYINITDEPTH 200 4395 3975 #endif … … 4414 3994 # else 4415 3995 /* Return the length of YYSTR. */ 4416 #if (defined __STDC__ || defined __C99__FUNC__ \4417 || defined __cplusplus || defined _MSC_VER)4418 3996 static YYSIZE_T 4419 3997 yystrlen (const char *yystr) 4420 #else4421 static YYSIZE_T4422 yystrlen (yystr)4423 const char *yystr;4424 #endif4425 3998 { 4426 3999 YYSIZE_T yylen; … … 4438 4011 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4439 4012 YYDEST. */ 4440 #if (defined __STDC__ || defined __C99__FUNC__ \4441 || defined __cplusplus || defined _MSC_VER)4442 4013 static char * 4443 4014 yystpcpy (char *yydest, const char *yysrc) 4444 #else4445 static char *4446 yystpcpy (yydest, yysrc)4447 char *yydest;4448 const char *yysrc;4449 #endif4450 4015 { 4451 4016 char *yyd = yydest; … … 4477 4042 4478 4043 for (;;) 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4044 switch (*++yyp) 4045 { 4046 case '\'': 4047 case ',': 4048 goto do_not_strip_quotes; 4049 4050 case '\\': 4051 if (*++yyp != '\\') 4052 goto do_not_strip_quotes; 4053 /* Fall through. */ 4054 default: 4055 if (yyres) 4056 yyres[yyn] = *yyp; 4057 yyn++; 4058 break; 4059 4060 case '"': 4061 if (yyres) 4062 yyres[yyn] = '\0'; 4063 return yyn; 4064 } 4500 4065 do_not_strip_quotes: ; 4501 4066 } … … 4520 4085 yytype_int16 *yyssp, int yytoken) 4521 4086 { 4522 YYSIZE_T yysize0 = yytnamerr ( 0, yytname[yytoken]);4087 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 4523 4088 YYSIZE_T yysize = yysize0; 4524 YYSIZE_T yysize1;4525 4089 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4526 4090 /* Internationalized format string. */ 4527 const char *yyformat = 0;4091 const char *yyformat = YY_NULLPTR; 4528 4092 /* Arguments of yyformat. */ 4529 4093 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4533 4097 4534 4098 /* There are many possibilities here to consider: 4535 - Assume YYFAIL is not used. It's too flawed to consider. See4536 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>4537 for details. YYERROR is fine as it does not invoke this4538 function.4539 4099 - If this state is a consistent state with a default action, then 4540 4100 the only way this function was invoked is if the default action … … 4585 4145 } 4586 4146 yyarg[yycount++] = yytname[yyx]; 4587 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4588 if (! (yysize <= yysize1 4589 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4590 return 2; 4591 yysize = yysize1; 4147 { 4148 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4149 if (! (yysize <= yysize1 4150 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4151 return 2; 4152 yysize = yysize1; 4153 } 4592 4154 } 4593 4155 } … … 4609 4171 } 4610 4172 4611 yysize1 = yysize + yystrlen (yyformat); 4612 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4613 return 2; 4614 yysize = yysize1; 4173 { 4174 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4175 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4176 return 2; 4177 yysize = yysize1; 4178 } 4615 4179 4616 4180 if (*yymsg_alloc < yysize) … … 4649 4213 `-----------------------------------------------*/ 4650 4214 4651 /*ARGSUSED*/4652 #if (defined __STDC__ || defined __C99__FUNC__ \4653 || defined __cplusplus || defined _MSC_VER)4654 4215 static void 4655 4216 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4656 #else4657 static void4658 yydestruct (yymsg, yytype, yyvaluep)4659 const char *yymsg;4660 int yytype;4661 YYSTYPE *yyvaluep;4662 #endif4663 4217 { 4664 4218 YYUSE (yyvaluep); 4665 4666 4219 if (!yymsg) 4667 4220 yymsg = "Deleting"; 4668 4221 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4669 4222 4670 switch (yytype) 4671 { 4672 4673 default: 4674 break; 4675 } 4223 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4224 YYUSE (yytype); 4225 YY_IGNORE_MAYBE_UNINITIALIZED_END 4676 4226 } 4677 4227 4678 4228 4679 /* Prevent warnings from -Wmissing-prototypes. */4680 #ifdef YYPARSE_PARAM4681 #if defined __STDC__ || defined __cplusplus4682 int yyparse (void *YYPARSE_PARAM);4683 #else4684 int yyparse ();4685 #endif4686 #else /* ! YYPARSE_PARAM */4687 #if defined __STDC__ || defined __cplusplus4688 int yyparse (void);4689 #else4690 int yyparse ();4691 #endif4692 #endif /* ! YYPARSE_PARAM */4693 4229 4694 4230 … … 4698 4234 /* The semantic value of the lookahead symbol. */ 4699 4235 YYSTYPE yylval; 4700 4701 4236 /* Number of syntax errors so far. */ 4702 4237 int yynerrs; … … 4707 4242 `----------*/ 4708 4243 4709 #ifdef YYPARSE_PARAM4710 #if (defined __STDC__ || defined __C99__FUNC__ \4711 || defined __cplusplus || defined _MSC_VER)4712 int4713 yyparse (void *YYPARSE_PARAM)4714 #else4715 int4716 yyparse (YYPARSE_PARAM)4717 void *YYPARSE_PARAM;4718 #endif4719 #else /* ! YYPARSE_PARAM */4720 #if (defined __STDC__ || defined __C99__FUNC__ \4721 || defined __cplusplus || defined _MSC_VER)4722 4244 int 4723 4245 yyparse (void) 4724 #else4725 int4726 yyparse ()4727 4728 #endif4729 #endif4730 4246 { 4731 4247 int yystate; … … 4734 4250 4735 4251 /* The stacks and their tools: 4736 `yyss': related to states.4737 `yyvs': related to semantic values.4738 4739 Refer to the stacks thr useparate pointers, to allow yyoverflow4252 'yyss': related to states. 4253 'yyvs': related to semantic values. 4254 4255 Refer to the stacks through separate pointers, to allow yyoverflow 4740 4256 to reallocate them elsewhere. */ 4741 4257 … … 4755 4271 int yyresult; 4756 4272 /* Lookahead token as an internal (translated) token number. */ 4757 int yytoken ;4273 int yytoken = 0; 4758 4274 /* The variables used to return semantic value and location from the 4759 4275 action routines. */ … … 4773 4289 int yylen = 0; 4774 4290 4775 yytoken = 0; 4776 yyss = yyssa; 4777 yyvs = yyvsa; 4291 yyssp = yyss = yyssa; 4292 yyvsp = yyvs = yyvsa; 4778 4293 yystacksize = YYINITDEPTH; 4779 4294 … … 4784 4299 yynerrs = 0; 4785 4300 yychar = YYEMPTY; /* Cause a token to be read. */ 4786 4787 /* Initialize stack pointers.4788 Waste one element of value and location stack4789 so that they stay on the same level as the state stack.4790 The wasted elements are never initialized. */4791 yyssp = yyss;4792 yyvsp = yyvs;4793 4794 4301 goto yysetstate; 4795 4302 … … 4812 4319 #ifdef yyoverflow 4813 4320 { 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4321 /* Give user a chance to reallocate the stack. Use copies of 4322 these so that the &'s don't force the real ones into 4323 memory. */ 4324 YYSTYPE *yyvs1 = yyvs; 4325 yytype_int16 *yyss1 = yyss; 4326 4327 /* Each stack pointer address is followed by the size of the 4328 data in use in that stack, in bytes. This used to be a 4329 conditional around just the two extra args, but that might 4330 be undefined if yyoverflow is a macro. */ 4331 yyoverflow (YY_("memory exhausted"), 4332 &yyss1, yysize * sizeof (*yyssp), 4333 &yyvs1, yysize * sizeof (*yyvsp), 4334 &yystacksize); 4335 4336 yyss = yyss1; 4337 yyvs = yyvs1; 4831 4338 } 4832 4339 #else /* no yyoverflow */ … … 4836 4343 /* Extend the stack our own way. */ 4837 4344 if (YYMAXDEPTH <= yystacksize) 4838 4345 goto yyexhaustedlab; 4839 4346 yystacksize *= 2; 4840 4347 if (YYMAXDEPTH < yystacksize) 4841 4348 yystacksize = YYMAXDEPTH; 4842 4349 4843 4350 { 4844 4845 4846 4847 4848 4849 4850 4351 yytype_int16 *yyss1 = yyss; 4352 union yyalloc *yyptr = 4353 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4354 if (! yyptr) 4355 goto yyexhaustedlab; 4356 YYSTACK_RELOCATE (yyss_alloc, yyss); 4357 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4851 4358 # undef YYSTACK_RELOCATE 4852 4853 4359 if (yyss1 != yyssa) 4360 YYSTACK_FREE (yyss1); 4854 4361 } 4855 4362 # endif … … 4860 4367 4861 4368 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4862 4369 (unsigned long int) yystacksize)); 4863 4370 4864 4371 if (yyss + yystacksize - 1 <= yyssp) 4865 4372 YYABORT; 4866 4373 } 4867 4374 … … 4892 4399 { 4893 4400 YYDPRINTF ((stderr, "Reading a token: ")); 4894 yychar = YYLEX;4401 yychar = yylex (); 4895 4402 } 4896 4403 … … 4932 4439 4933 4440 yystate = yyn; 4441 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4934 4442 *++yyvsp = yylval; 4443 YY_IGNORE_MAYBE_UNINITIALIZED_END 4935 4444 4936 4445 goto yynewstate; … … 4955 4464 4956 4465 /* If YYLEN is nonzero, implement the default value of the action: 4957 `$$ = $1'.4466 '$$ = $1'. 4958 4467 4959 4468 Otherwise, the following line sets YYVAL to garbage. … … 4969 4478 { 4970 4479 case 2: 4971 4972 /* Line 1806 of yacc.c */ 4973 #line 300 "parser.yy" 4480 #line 300 "parser.yy" /* yacc.c:1646 */ 4974 4481 { typedefTable.enterScope(); } 4482 #line 4483 "Parser/parser.cc" /* yacc.c:1646 */ 4975 4483 break; 4976 4484 4977 4485 case 3: 4978 4979 /* Line 1806 of yacc.c */ 4980 #line 304 "parser.yy" 4486 #line 304 "parser.yy" /* yacc.c:1646 */ 4981 4487 { typedefTable.leaveScope(); } 4488 #line 4489 "Parser/parser.cc" /* yacc.c:1646 */ 4982 4489 break; 4983 4490 4984 4491 case 4: 4985 4986 /* Line 1806 of yacc.c */ 4987 #line 311 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4492 #line 311 "parser.yy" /* yacc.c:1646 */ 4493 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); } 4494 #line 4495 "Parser/parser.cc" /* yacc.c:1646 */ 4989 4495 break; 4990 4496 4991 4497 case 5: 4992 4993 /* Line 1806 of yacc.c */ 4994 #line 312 "parser.yy" 4995 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4498 #line 312 "parser.yy" /* yacc.c:1646 */ 4499 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4500 #line 4501 "Parser/parser.cc" /* yacc.c:1646 */ 4996 4501 break; 4997 4502 4998 4503 case 6: 4999 5000 /* Line 1806 of yacc.c */ 5001 #line 313 "parser.yy" 5002 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4504 #line 313 "parser.yy" /* yacc.c:1646 */ 4505 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); } 4506 #line 4507 "Parser/parser.cc" /* yacc.c:1646 */ 5003 4507 break; 5004 4508 5005 4509 case 16: 5006 5007 /* Line 1806 of yacc.c */ 5008 #line 338 "parser.yy" 5009 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4510 #line 338 "parser.yy" /* yacc.c:1646 */ 4511 { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); } 4512 #line 4513 "Parser/parser.cc" /* yacc.c:1646 */ 5010 4513 break; 5011 4514 5012 4515 case 17: 5013 5014 /* Line 1806 of yacc.c */ 5015 #line 342 "parser.yy" 5016 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4516 #line 342 "parser.yy" /* yacc.c:1646 */ 4517 { (yyval.str) = (yyvsp[0].tok); } 4518 #line 4519 "Parser/parser.cc" /* yacc.c:1646 */ 5017 4519 break; 5018 4520 5019 4521 case 18: 5020 5021 /* Line 1806 of yacc.c */ 5022 #line 344 "parser.yy" 5023 { 5024 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st 5025 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5026 (yyval.str) = (yyvsp[(1) - (2)].str); // conversion from tok to str 4522 #line 344 "parser.yy" /* yacc.c:1646 */ 4523 { 4524 appendStr( (yyvsp[-1].str), (yyvsp[0].tok) ); // append 2nd juxtaposed string to 1st 4525 delete (yyvsp[0].tok); // allocated by lexer 4526 (yyval.str) = (yyvsp[-1].str); // conversion from tok to str 5027 4527 } 4528 #line 4529 "Parser/parser.cc" /* yacc.c:1646 */ 5028 4529 break; 5029 4530 5030 4531 case 19: 5031 5032 /* Line 1806 of yacc.c */ 5033 #line 355 "parser.yy" 5034 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4532 #line 355 "parser.yy" /* yacc.c:1646 */ 4533 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4534 #line 4535 "Parser/parser.cc" /* yacc.c:1646 */ 5035 4535 break; 5036 4536 5037 4537 case 20: 5038 5039 /* Line 1806 of yacc.c */ 5040 #line 357 "parser.yy" 5041 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4538 #line 357 "parser.yy" /* yacc.c:1646 */ 4539 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4540 #line 4541 "Parser/parser.cc" /* yacc.c:1646 */ 5042 4541 break; 5043 4542 5044 4543 case 21: 5045 5046 /* Line 1806 of yacc.c */ 5047 #line 359 "parser.yy" 5048 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4544 #line 359 "parser.yy" /* yacc.c:1646 */ 4545 { (yyval.en) = (yyvsp[-1].en); } 4546 #line 4547 "Parser/parser.cc" /* yacc.c:1646 */ 5049 4547 break; 5050 4548 5051 4549 case 22: 5052 5053 /* Line 1806 of yacc.c */ 5054 #line 361 "parser.yy" 5055 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4550 #line 361 "parser.yy" /* yacc.c:1646 */ 4551 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4552 #line 4553 "Parser/parser.cc" /* yacc.c:1646 */ 5056 4553 break; 5057 4554 5058 4555 case 24: 5059 5060 /* Line 1806 of yacc.c */ 5061 #line 371 "parser.yy" 5062 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4556 #line 371 "parser.yy" /* yacc.c:1646 */ 4557 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4558 #line 4559 "Parser/parser.cc" /* yacc.c:1646 */ 5063 4559 break; 5064 4560 5065 4561 case 25: 5066 5067 /* Line 1806 of yacc.c */ 5068 #line 373 "parser.yy" 5069 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4562 #line 373 "parser.yy" /* yacc.c:1646 */ 4563 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4564 #line 4565 "Parser/parser.cc" /* yacc.c:1646 */ 5070 4565 break; 5071 4566 5072 4567 case 26: 5073 5074 /* Line 1806 of yacc.c */ 5075 #line 377 "parser.yy" 5076 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4568 #line 377 "parser.yy" /* yacc.c:1646 */ 4569 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4570 #line 4571 "Parser/parser.cc" /* yacc.c:1646 */ 5077 4571 break; 5078 4572 5079 4573 case 28: 5080 5081 /* Line 1806 of yacc.c */ 5082 #line 380 "parser.yy" 5083 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4574 #line 380 "parser.yy" /* yacc.c:1646 */ 4575 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4576 #line 4577 "Parser/parser.cc" /* yacc.c:1646 */ 5084 4577 break; 5085 4578 5086 4579 case 30: 5087 5088 /* Line 1806 of yacc.c */ 5089 #line 383 "parser.yy" 5090 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4580 #line 383 "parser.yy" /* yacc.c:1646 */ 4581 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4582 #line 4583 "Parser/parser.cc" /* yacc.c:1646 */ 5091 4583 break; 5092 4584 5093 4585 case 31: 5094 5095 /* Line 1806 of yacc.c */ 5096 #line 385 "parser.yy" 5097 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4586 #line 385 "parser.yy" /* yacc.c:1646 */ 4587 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4588 #line 4589 "Parser/parser.cc" /* yacc.c:1646 */ 5098 4589 break; 5099 4590 5100 4591 case 32: 5101 5102 /* Line 1806 of yacc.c */ 5103 #line 387 "parser.yy" 5104 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4592 #line 387 "parser.yy" /* yacc.c:1646 */ 4593 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4594 #line 4595 "Parser/parser.cc" /* yacc.c:1646 */ 5105 4595 break; 5106 4596 5107 4597 case 33: 5108 5109 /* Line 1806 of yacc.c */ 5110 #line 389 "parser.yy" 4598 #line 389 "parser.yy" /* yacc.c:1646 */ 5111 4599 { 5112 4600 Token fn; 5113 4601 fn.str = new std::string( "?{}" ); // location undefined 5114 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );4602 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) ); 5115 4603 } 4604 #line 4605 "Parser/parser.cc" /* yacc.c:1646 */ 5116 4605 break; 5117 4606 5118 4607 case 35: 5119 5120 /* Line 1806 of yacc.c */ 5121 #line 399 "parser.yy" 5122 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4608 #line 399 "parser.yy" /* yacc.c:1646 */ 4609 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4610 #line 4611 "Parser/parser.cc" /* yacc.c:1646 */ 5123 4611 break; 5124 4612 5125 4613 case 36: 5126 5127 /* Line 1806 of yacc.c */ 5128 #line 404 "parser.yy" 4614 #line 404 "parser.yy" /* yacc.c:1646 */ 5129 4615 { (yyval.en) = 0; } 4616 #line 4617 "Parser/parser.cc" /* yacc.c:1646 */ 5130 4617 break; 5131 4618 5132 4619 case 39: 5133 5134 /* Line 1806 of yacc.c */ 5135 #line 410 "parser.yy" 5136 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4620 #line 410 "parser.yy" /* yacc.c:1646 */ 4621 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4622 #line 4623 "Parser/parser.cc" /* yacc.c:1646 */ 5137 4623 break; 5138 4624 5139 4625 case 40: 5140 5141 /* Line 1806 of yacc.c */ 5142 #line 415 "parser.yy" 5143 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4626 #line 415 "parser.yy" /* yacc.c:1646 */ 4627 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4628 #line 4629 "Parser/parser.cc" /* yacc.c:1646 */ 5144 4629 break; 5145 4630 5146 4631 case 41: 5147 5148 /* Line 1806 of yacc.c */ 5149 #line 419 "parser.yy" 5150 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4632 #line 419 "parser.yy" /* yacc.c:1646 */ 4633 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4634 #line 4635 "Parser/parser.cc" /* yacc.c:1646 */ 5151 4635 break; 5152 4636 5153 4637 case 42: 5154 5155 /* Line 1806 of yacc.c */ 5156 #line 421 "parser.yy" 5157 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4638 #line 421 "parser.yy" /* yacc.c:1646 */ 4639 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4640 #line 4641 "Parser/parser.cc" /* yacc.c:1646 */ 5158 4641 break; 5159 4642 5160 4643 case 43: 5161 5162 /* Line 1806 of yacc.c */ 5163 #line 423 "parser.yy" 5164 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4644 #line 423 "parser.yy" /* yacc.c:1646 */ 4645 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4646 #line 4647 "Parser/parser.cc" /* yacc.c:1646 */ 5165 4647 break; 5166 4648 5167 4649 case 44: 5168 5169 /* Line 1806 of yacc.c */ 5170 #line 425 "parser.yy" 5171 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4650 #line 425 "parser.yy" /* yacc.c:1646 */ 4651 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4652 #line 4653 "Parser/parser.cc" /* yacc.c:1646 */ 5172 4653 break; 5173 4654 5174 4655 case 46: 5175 5176 /* Line 1806 of yacc.c */ 5177 #line 433 "parser.yy" 5178 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4656 #line 433 "parser.yy" /* yacc.c:1646 */ 4657 { (yyval.en) = (yyvsp[0].en); } 4658 #line 4659 "Parser/parser.cc" /* yacc.c:1646 */ 5179 4659 break; 5180 4660 5181 4661 case 47: 5182 5183 /* Line 1806 of yacc.c */ 5184 #line 435 "parser.yy" 5185 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4662 #line 435 "parser.yy" /* yacc.c:1646 */ 4663 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4664 #line 4665 "Parser/parser.cc" /* yacc.c:1646 */ 5186 4665 break; 5187 4666 5188 4667 case 48: 5189 5190 /* Line 1806 of yacc.c */ 5191 #line 437 "parser.yy" 5192 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4668 #line 437 "parser.yy" /* yacc.c:1646 */ 4669 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4670 #line 4671 "Parser/parser.cc" /* yacc.c:1646 */ 5193 4671 break; 5194 4672 5195 4673 case 49: 5196 5197 /* Line 1806 of yacc.c */ 5198 #line 442 "parser.yy" 5199 { 5200 switch ( (yyvsp[(1) - (2)].op) ) { 4674 #line 442 "parser.yy" /* yacc.c:1646 */ 4675 { 4676 switch ( (yyvsp[-1].op) ) { 5201 4677 case OperKinds::AddressOf: 5202 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ (2) - (2)].en) ) );4678 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) ); 5203 4679 break; 5204 4680 case OperKinds::PointTo: 5205 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ (1) - (2)].op), (yyvsp[(2) - (2)].en) ) );4681 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); 5206 4682 break; 5207 4683 default: … … 5209 4685 } 5210 4686 } 4687 #line 4688 "Parser/parser.cc" /* yacc.c:1646 */ 5211 4688 break; 5212 4689 5213 4690 case 50: 5214 5215 /* Line 1806 of yacc.c */ 5216 #line 455 "parser.yy" 5217 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4691 #line 455 "parser.yy" /* yacc.c:1646 */ 4692 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4693 #line 4694 "Parser/parser.cc" /* yacc.c:1646 */ 5218 4694 break; 5219 4695 5220 4696 case 51: 5221 5222 /* Line 1806 of yacc.c */ 5223 #line 457 "parser.yy" 5224 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4697 #line 457 "parser.yy" /* yacc.c:1646 */ 4698 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4699 #line 4700 "Parser/parser.cc" /* yacc.c:1646 */ 5225 4700 break; 5226 4701 5227 4702 case 52: 5228 5229 /* Line 1806 of yacc.c */ 5230 #line 459 "parser.yy" 5231 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4703 #line 459 "parser.yy" /* yacc.c:1646 */ 4704 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4705 #line 4706 "Parser/parser.cc" /* yacc.c:1646 */ 5232 4706 break; 5233 4707 5234 4708 case 53: 5235 5236 /* Line 1806 of yacc.c */ 5237 #line 461 "parser.yy" 5238 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4709 #line 461 "parser.yy" /* yacc.c:1646 */ 4710 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4711 #line 4712 "Parser/parser.cc" /* yacc.c:1646 */ 5239 4712 break; 5240 4713 5241 4714 case 54: 5242 5243 /* Line 1806 of yacc.c */ 5244 #line 463 "parser.yy" 5245 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4715 #line 463 "parser.yy" /* yacc.c:1646 */ 4716 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4717 #line 4718 "Parser/parser.cc" /* yacc.c:1646 */ 5246 4718 break; 5247 4719 5248 4720 case 55: 5249 5250 /* Line 1806 of yacc.c */ 5251 #line 465 "parser.yy" 5252 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4721 #line 465 "parser.yy" /* yacc.c:1646 */ 4722 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4723 #line 4724 "Parser/parser.cc" /* yacc.c:1646 */ 5253 4724 break; 5254 4725 5255 4726 case 56: 5256 5257 /* Line 1806 of yacc.c */ 5258 #line 467 "parser.yy" 5259 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4727 #line 467 "parser.yy" /* yacc.c:1646 */ 4728 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4729 #line 4730 "Parser/parser.cc" /* yacc.c:1646 */ 5260 4730 break; 5261 4731 5262 4732 case 57: 5263 5264 /* Line 1806 of yacc.c */ 5265 #line 469 "parser.yy" 5266 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4733 #line 469 "parser.yy" /* yacc.c:1646 */ 4734 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4735 #line 4736 "Parser/parser.cc" /* yacc.c:1646 */ 5267 4736 break; 5268 4737 5269 4738 case 58: 5270 5271 /* Line 1806 of yacc.c */ 5272 #line 471 "parser.yy" 5273 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4739 #line 471 "parser.yy" /* yacc.c:1646 */ 4740 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4741 #line 4742 "Parser/parser.cc" /* yacc.c:1646 */ 5274 4742 break; 5275 4743 5276 4744 case 59: 5277 5278 /* Line 1806 of yacc.c */ 5279 #line 473 "parser.yy" 5280 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4745 #line 473 "parser.yy" /* yacc.c:1646 */ 4746 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4747 #line 4748 "Parser/parser.cc" /* yacc.c:1646 */ 5281 4748 break; 5282 4749 5283 4750 case 60: 5284 5285 /* Line 1806 of yacc.c */ 5286 #line 475 "parser.yy" 5287 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4751 #line 475 "parser.yy" /* yacc.c:1646 */ 4752 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4753 #line 4754 "Parser/parser.cc" /* yacc.c:1646 */ 5288 4754 break; 5289 4755 5290 4756 case 61: 5291 5292 /* Line 1806 of yacc.c */ 5293 #line 481 "parser.yy" 4757 #line 481 "parser.yy" /* yacc.c:1646 */ 5294 4758 { (yyval.op) = OperKinds::PointTo; } 4759 #line 4760 "Parser/parser.cc" /* yacc.c:1646 */ 5295 4760 break; 5296 4761 5297 4762 case 62: 5298 5299 /* Line 1806 of yacc.c */ 5300 #line 482 "parser.yy" 4763 #line 482 "parser.yy" /* yacc.c:1646 */ 5301 4764 { (yyval.op) = OperKinds::AddressOf; } 4765 #line 4766 "Parser/parser.cc" /* yacc.c:1646 */ 5302 4766 break; 5303 4767 5304 4768 case 63: 5305 5306 /* Line 1806 of yacc.c */ 5307 #line 488 "parser.yy" 4769 #line 488 "parser.yy" /* yacc.c:1646 */ 5308 4770 { (yyval.op) = OperKinds::UnPlus; } 4771 #line 4772 "Parser/parser.cc" /* yacc.c:1646 */ 5309 4772 break; 5310 4773 5311 4774 case 64: 5312 5313 /* Line 1806 of yacc.c */ 5314 #line 489 "parser.yy" 4775 #line 489 "parser.yy" /* yacc.c:1646 */ 5315 4776 { (yyval.op) = OperKinds::UnMinus; } 4777 #line 4778 "Parser/parser.cc" /* yacc.c:1646 */ 5316 4778 break; 5317 4779 5318 4780 case 65: 5319 5320 /* Line 1806 of yacc.c */ 5321 #line 490 "parser.yy" 4781 #line 490 "parser.yy" /* yacc.c:1646 */ 5322 4782 { (yyval.op) = OperKinds::Neg; } 4783 #line 4784 "Parser/parser.cc" /* yacc.c:1646 */ 5323 4784 break; 5324 4785 5325 4786 case 66: 5326 5327 /* Line 1806 of yacc.c */ 5328 #line 491 "parser.yy" 4787 #line 491 "parser.yy" /* yacc.c:1646 */ 5329 4788 { (yyval.op) = OperKinds::BitNeg; } 4789 #line 4790 "Parser/parser.cc" /* yacc.c:1646 */ 5330 4790 break; 5331 4791 5332 4792 case 68: 5333 5334 /* Line 1806 of yacc.c */ 5335 #line 497 "parser.yy" 5336 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4793 #line 497 "parser.yy" /* yacc.c:1646 */ 4794 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4795 #line 4796 "Parser/parser.cc" /* yacc.c:1646 */ 5337 4796 break; 5338 4797 5339 4798 case 69: 5340 5341 /* Line 1806 of yacc.c */ 5342 #line 499 "parser.yy" 5343 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4799 #line 499 "parser.yy" /* yacc.c:1646 */ 4800 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4801 #line 4802 "Parser/parser.cc" /* yacc.c:1646 */ 5344 4802 break; 5345 4803 5346 4804 case 71: 5347 5348 /* Line 1806 of yacc.c */ 5349 #line 505 "parser.yy" 5350 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4805 #line 505 "parser.yy" /* yacc.c:1646 */ 4806 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4807 #line 4808 "Parser/parser.cc" /* yacc.c:1646 */ 5351 4808 break; 5352 4809 5353 4810 case 72: 5354 5355 /* Line 1806 of yacc.c */ 5356 #line 507 "parser.yy" 5357 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4811 #line 507 "parser.yy" /* yacc.c:1646 */ 4812 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4813 #line 4814 "Parser/parser.cc" /* yacc.c:1646 */ 5358 4814 break; 5359 4815 5360 4816 case 73: 5361 5362 /* Line 1806 of yacc.c */ 5363 #line 509 "parser.yy" 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4817 #line 509 "parser.yy" /* yacc.c:1646 */ 4818 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4819 #line 4820 "Parser/parser.cc" /* yacc.c:1646 */ 5365 4820 break; 5366 4821 5367 4822 case 75: 5368 5369 /* Line 1806 of yacc.c */ 5370 #line 515 "parser.yy" 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4823 #line 515 "parser.yy" /* yacc.c:1646 */ 4824 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4825 #line 4826 "Parser/parser.cc" /* yacc.c:1646 */ 5372 4826 break; 5373 4827 5374 4828 case 76: 5375 5376 /* Line 1806 of yacc.c */ 5377 #line 517 "parser.yy" 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4829 #line 517 "parser.yy" /* yacc.c:1646 */ 4830 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4831 #line 4832 "Parser/parser.cc" /* yacc.c:1646 */ 5379 4832 break; 5380 4833 5381 4834 case 78: 5382 5383 /* Line 1806 of yacc.c */ 5384 #line 523 "parser.yy" 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4835 #line 523 "parser.yy" /* yacc.c:1646 */ 4836 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4837 #line 4838 "Parser/parser.cc" /* yacc.c:1646 */ 5386 4838 break; 5387 4839 5388 4840 case 79: 5389 5390 /* Line 1806 of yacc.c */ 5391 #line 525 "parser.yy" 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4841 #line 525 "parser.yy" /* yacc.c:1646 */ 4842 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4843 #line 4844 "Parser/parser.cc" /* yacc.c:1646 */ 5393 4844 break; 5394 4845 5395 4846 case 81: 5396 5397 /* Line 1806 of yacc.c */ 5398 #line 531 "parser.yy" 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4847 #line 531 "parser.yy" /* yacc.c:1646 */ 4848 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4849 #line 4850 "Parser/parser.cc" /* yacc.c:1646 */ 5400 4850 break; 5401 4851 5402 4852 case 82: 5403 5404 /* Line 1806 of yacc.c */ 5405 #line 533 "parser.yy" 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4853 #line 533 "parser.yy" /* yacc.c:1646 */ 4854 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4855 #line 4856 "Parser/parser.cc" /* yacc.c:1646 */ 5407 4856 break; 5408 4857 5409 4858 case 83: 5410 5411 /* Line 1806 of yacc.c */ 5412 #line 535 "parser.yy" 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4859 #line 535 "parser.yy" /* yacc.c:1646 */ 4860 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4861 #line 4862 "Parser/parser.cc" /* yacc.c:1646 */ 5414 4862 break; 5415 4863 5416 4864 case 84: 5417 5418 /* Line 1806 of yacc.c */ 5419 #line 537 "parser.yy" 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4865 #line 537 "parser.yy" /* yacc.c:1646 */ 4866 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4867 #line 4868 "Parser/parser.cc" /* yacc.c:1646 */ 5421 4868 break; 5422 4869 5423 4870 case 86: 5424 5425 /* Line 1806 of yacc.c */ 5426 #line 543 "parser.yy" 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4871 #line 543 "parser.yy" /* yacc.c:1646 */ 4872 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4873 #line 4874 "Parser/parser.cc" /* yacc.c:1646 */ 5428 4874 break; 5429 4875 5430 4876 case 87: 5431 5432 /* Line 1806 of yacc.c */ 5433 #line 545 "parser.yy" 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4877 #line 545 "parser.yy" /* yacc.c:1646 */ 4878 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4879 #line 4880 "Parser/parser.cc" /* yacc.c:1646 */ 5435 4880 break; 5436 4881 5437 4882 case 89: 5438 5439 /* Line 1806 of yacc.c */ 5440 #line 551 "parser.yy" 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4883 #line 551 "parser.yy" /* yacc.c:1646 */ 4884 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4885 #line 4886 "Parser/parser.cc" /* yacc.c:1646 */ 5442 4886 break; 5443 4887 5444 4888 case 91: 5445 5446 /* Line 1806 of yacc.c */ 5447 #line 557 "parser.yy" 5448 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4889 #line 557 "parser.yy" /* yacc.c:1646 */ 4890 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4891 #line 4892 "Parser/parser.cc" /* yacc.c:1646 */ 5449 4892 break; 5450 4893 5451 4894 case 93: 5452 5453 /* Line 1806 of yacc.c */ 5454 #line 563 "parser.yy" 5455 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4895 #line 563 "parser.yy" /* yacc.c:1646 */ 4896 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4897 #line 4898 "Parser/parser.cc" /* yacc.c:1646 */ 5456 4898 break; 5457 4899 5458 4900 case 95: 5459 5460 /* Line 1806 of yacc.c */ 5461 #line 569 "parser.yy" 5462 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4901 #line 569 "parser.yy" /* yacc.c:1646 */ 4902 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4903 #line 4904 "Parser/parser.cc" /* yacc.c:1646 */ 5463 4904 break; 5464 4905 5465 4906 case 97: 5466 5467 /* Line 1806 of yacc.c */ 5468 #line 575 "parser.yy" 5469 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4907 #line 575 "parser.yy" /* yacc.c:1646 */ 4908 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4909 #line 4910 "Parser/parser.cc" /* yacc.c:1646 */ 5470 4910 break; 5471 4911 5472 4912 case 99: 5473 5474 /* Line 1806 of yacc.c */ 5475 #line 581 "parser.yy" 5476 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4913 #line 581 "parser.yy" /* yacc.c:1646 */ 4914 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4915 #line 4916 "Parser/parser.cc" /* yacc.c:1646 */ 5477 4916 break; 5478 4917 5479 4918 case 100: 5480 5481 /* Line 1806 of yacc.c */ 5482 #line 584 "parser.yy" 5483 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4919 #line 584 "parser.yy" /* yacc.c:1646 */ 4920 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4921 #line 4922 "Parser/parser.cc" /* yacc.c:1646 */ 5484 4922 break; 5485 4923 5486 4924 case 101: 5487 5488 /* Line 1806 of yacc.c */ 5489 #line 586 "parser.yy" 5490 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4925 #line 586 "parser.yy" /* yacc.c:1646 */ 4926 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4927 #line 4928 "Parser/parser.cc" /* yacc.c:1646 */ 5491 4928 break; 5492 4929 5493 4930 case 104: 5494 5495 /* Line 1806 of yacc.c */ 5496 #line 597 "parser.yy" 5497 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4931 #line 597 "parser.yy" /* yacc.c:1646 */ 4932 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4933 #line 4934 "Parser/parser.cc" /* yacc.c:1646 */ 5498 4934 break; 5499 4935 5500 4936 case 105: 5501 5502 /* Line 1806 of yacc.c */ 5503 #line 599 "parser.yy" 5504 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 4937 #line 599 "parser.yy" /* yacc.c:1646 */ 4938 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4939 #line 4940 "Parser/parser.cc" /* yacc.c:1646 */ 5505 4940 break; 5506 4941 5507 4942 case 106: 5508 5509 /* Line 1806 of yacc.c */ 5510 #line 604 "parser.yy" 4943 #line 604 "parser.yy" /* yacc.c:1646 */ 5511 4944 { (yyval.en) = nullptr; } 4945 #line 4946 "Parser/parser.cc" /* yacc.c:1646 */ 5512 4946 break; 5513 4947 5514 4948 case 108: 5515 5516 /* Line 1806 of yacc.c */ 5517 #line 609 "parser.yy" 4949 #line 609 "parser.yy" /* yacc.c:1646 */ 5518 4950 { (yyval.op) = OperKinds::Assign; } 4951 #line 4952 "Parser/parser.cc" /* yacc.c:1646 */ 5519 4952 break; 5520 4953 5521 4954 case 109: 5522 5523 /* Line 1806 of yacc.c */ 5524 #line 610 "parser.yy" 4955 #line 610 "parser.yy" /* yacc.c:1646 */ 5525 4956 { (yyval.op) = OperKinds::AtAssn; } 4957 #line 4958 "Parser/parser.cc" /* yacc.c:1646 */ 5526 4958 break; 5527 4959 5528 4960 case 110: 5529 5530 /* Line 1806 of yacc.c */ 5531 #line 611 "parser.yy" 4961 #line 611 "parser.yy" /* yacc.c:1646 */ 5532 4962 { (yyval.op) = OperKinds::MulAssn; } 4963 #line 4964 "Parser/parser.cc" /* yacc.c:1646 */ 5533 4964 break; 5534 4965 5535 4966 case 111: 5536 5537 /* Line 1806 of yacc.c */ 5538 #line 612 "parser.yy" 4967 #line 612 "parser.yy" /* yacc.c:1646 */ 5539 4968 { (yyval.op) = OperKinds::DivAssn; } 4969 #line 4970 "Parser/parser.cc" /* yacc.c:1646 */ 5540 4970 break; 5541 4971 5542 4972 case 112: 5543 5544 /* Line 1806 of yacc.c */ 5545 #line 613 "parser.yy" 4973 #line 613 "parser.yy" /* yacc.c:1646 */ 5546 4974 { (yyval.op) = OperKinds::ModAssn; } 4975 #line 4976 "Parser/parser.cc" /* yacc.c:1646 */ 5547 4976 break; 5548 4977 5549 4978 case 113: 5550 5551 /* Line 1806 of yacc.c */ 5552 #line 614 "parser.yy" 4979 #line 614 "parser.yy" /* yacc.c:1646 */ 5553 4980 { (yyval.op) = OperKinds::PlusAssn; } 4981 #line 4982 "Parser/parser.cc" /* yacc.c:1646 */ 5554 4982 break; 5555 4983 5556 4984 case 114: 5557 5558 /* Line 1806 of yacc.c */ 5559 #line 615 "parser.yy" 4985 #line 615 "parser.yy" /* yacc.c:1646 */ 5560 4986 { (yyval.op) = OperKinds::MinusAssn; } 4987 #line 4988 "Parser/parser.cc" /* yacc.c:1646 */ 5561 4988 break; 5562 4989 5563 4990 case 115: 5564 5565 /* Line 1806 of yacc.c */ 5566 #line 616 "parser.yy" 4991 #line 616 "parser.yy" /* yacc.c:1646 */ 5567 4992 { (yyval.op) = OperKinds::LSAssn; } 4993 #line 4994 "Parser/parser.cc" /* yacc.c:1646 */ 5568 4994 break; 5569 4995 5570 4996 case 116: 5571 5572 /* Line 1806 of yacc.c */ 5573 #line 617 "parser.yy" 4997 #line 617 "parser.yy" /* yacc.c:1646 */ 5574 4998 { (yyval.op) = OperKinds::RSAssn; } 4999 #line 5000 "Parser/parser.cc" /* yacc.c:1646 */ 5575 5000 break; 5576 5001 5577 5002 case 117: 5578 5579 /* Line 1806 of yacc.c */ 5580 #line 618 "parser.yy" 5003 #line 618 "parser.yy" /* yacc.c:1646 */ 5581 5004 { (yyval.op) = OperKinds::AndAssn; } 5005 #line 5006 "Parser/parser.cc" /* yacc.c:1646 */ 5582 5006 break; 5583 5007 5584 5008 case 118: 5585 5586 /* Line 1806 of yacc.c */ 5587 #line 619 "parser.yy" 5009 #line 619 "parser.yy" /* yacc.c:1646 */ 5588 5010 { (yyval.op) = OperKinds::ERAssn; } 5011 #line 5012 "Parser/parser.cc" /* yacc.c:1646 */ 5589 5012 break; 5590 5013 5591 5014 case 119: 5592 5593 /* Line 1806 of yacc.c */ 5594 #line 620 "parser.yy" 5015 #line 620 "parser.yy" /* yacc.c:1646 */ 5595 5016 { (yyval.op) = OperKinds::OrAssn; } 5017 #line 5018 "Parser/parser.cc" /* yacc.c:1646 */ 5596 5018 break; 5597 5019 5598 5020 case 120: 5599 5600 /* Line 1806 of yacc.c */ 5601 #line 627 "parser.yy" 5021 #line 627 "parser.yy" /* yacc.c:1646 */ 5602 5022 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5023 #line 5024 "Parser/parser.cc" /* yacc.c:1646 */ 5603 5024 break; 5604 5025 5605 5026 case 121: 5606 5607 /* Line 1806 of yacc.c */ 5608 #line 629 "parser.yy" 5609 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5027 #line 629 "parser.yy" /* yacc.c:1646 */ 5028 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5029 #line 5030 "Parser/parser.cc" /* yacc.c:1646 */ 5610 5030 break; 5611 5031 5612 5032 case 122: 5613 5614 /* Line 1806 of yacc.c */ 5615 #line 631 "parser.yy" 5616 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5033 #line 631 "parser.yy" /* yacc.c:1646 */ 5034 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5035 #line 5036 "Parser/parser.cc" /* yacc.c:1646 */ 5617 5036 break; 5618 5037 5619 5038 case 123: 5620 5621 /* Line 1806 of yacc.c */ 5622 #line 633 "parser.yy" 5623 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5039 #line 633 "parser.yy" /* yacc.c:1646 */ 5040 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5041 #line 5042 "Parser/parser.cc" /* yacc.c:1646 */ 5624 5042 break; 5625 5043 5626 5044 case 125: 5627 5628 /* Line 1806 of yacc.c */ 5629 #line 639 "parser.yy" 5630 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5045 #line 639 "parser.yy" /* yacc.c:1646 */ 5046 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5047 #line 5048 "Parser/parser.cc" /* yacc.c:1646 */ 5631 5048 break; 5632 5049 5633 5050 case 127: 5634 5635 /* Line 1806 of yacc.c */ 5636 #line 645 "parser.yy" 5637 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5051 #line 645 "parser.yy" /* yacc.c:1646 */ 5052 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5053 #line 5054 "Parser/parser.cc" /* yacc.c:1646 */ 5638 5054 break; 5639 5055 5640 5056 case 128: 5641 5642 /* Line 1806 of yacc.c */ 5643 #line 650 "parser.yy" 5057 #line 650 "parser.yy" /* yacc.c:1646 */ 5644 5058 { (yyval.en) = 0; } 5059 #line 5060 "Parser/parser.cc" /* yacc.c:1646 */ 5645 5060 break; 5646 5061 5647 5062 case 132: 5648 5649 /* Line 1806 of yacc.c */ 5650 #line 659 "parser.yy" 5651 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5063 #line 659 "parser.yy" /* yacc.c:1646 */ 5064 { (yyval.sn) = (yyvsp[0].sn); } 5065 #line 5066 "Parser/parser.cc" /* yacc.c:1646 */ 5652 5066 break; 5653 5067 5654 5068 case 138: 5655 5656 /* Line 1806 of yacc.c */ 5657 #line 666 "parser.yy" 5069 #line 666 "parser.yy" /* yacc.c:1646 */ 5658 5070 { 5659 5071 Token fn; 5660 5072 fn.str = new std::string( "^?{}" ); // location undefined 5661 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );5073 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) ); 5662 5074 } 5075 #line 5076 "Parser/parser.cc" /* yacc.c:1646 */ 5663 5076 break; 5664 5077 5665 5078 case 139: 5666 5667 /* Line 1806 of yacc.c */ 5668 #line 676 "parser.yy" 5669 { 5670 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5079 #line 676 "parser.yy" /* yacc.c:1646 */ 5080 { 5081 (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) ); 5671 5082 } 5083 #line 5084 "Parser/parser.cc" /* yacc.c:1646 */ 5672 5084 break; 5673 5085 5674 5086 case 140: 5675 5676 /* Line 1806 of yacc.c */ 5677 #line 683 "parser.yy" 5087 #line 683 "parser.yy" /* yacc.c:1646 */ 5678 5088 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5089 #line 5090 "Parser/parser.cc" /* yacc.c:1646 */ 5679 5090 break; 5680 5091 5681 5092 case 141: 5682 5683 /* Line 1806 of yacc.c */ 5684 #line 690 "parser.yy" 5685 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5093 #line 690 "parser.yy" /* yacc.c:1646 */ 5094 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5095 #line 5096 "Parser/parser.cc" /* yacc.c:1646 */ 5686 5096 break; 5687 5097 5688 5098 case 143: 5689 5690 /* Line 1806 of yacc.c */ 5691 #line 696 "parser.yy" 5692 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5099 #line 696 "parser.yy" /* yacc.c:1646 */ 5100 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5101 #line 5102 "Parser/parser.cc" /* yacc.c:1646 */ 5693 5102 break; 5694 5103 5695 5104 case 144: 5696 5697 /* Line 1806 of yacc.c */ 5698 #line 701 "parser.yy" 5699 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5105 #line 701 "parser.yy" /* yacc.c:1646 */ 5106 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5107 #line 5108 "Parser/parser.cc" /* yacc.c:1646 */ 5700 5108 break; 5701 5109 5702 5110 case 145: 5703 5704 /* Line 1806 of yacc.c */ 5705 #line 703 "parser.yy" 5111 #line 703 "parser.yy" /* yacc.c:1646 */ 5706 5112 { // mark all fields in list 5707 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5113 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5708 5114 iter->set_extension( true ); 5709 (yyval.sn) = new StatementNode( (yyvsp[ (2) - (2)].decl) );5115 (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); 5710 5116 } 5117 #line 5118 "Parser/parser.cc" /* yacc.c:1646 */ 5711 5118 break; 5712 5119 5713 5120 case 146: 5714 5715 /* Line 1806 of yacc.c */ 5716 #line 709 "parser.yy" 5717 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5121 #line 709 "parser.yy" /* yacc.c:1646 */ 5122 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5123 #line 5124 "Parser/parser.cc" /* yacc.c:1646 */ 5718 5124 break; 5719 5125 5720 5126 case 149: 5721 5722 /* Line 1806 of yacc.c */ 5723 #line 716 "parser.yy" 5724 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5127 #line 716 "parser.yy" /* yacc.c:1646 */ 5128 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5129 #line 5130 "Parser/parser.cc" /* yacc.c:1646 */ 5725 5130 break; 5726 5131 5727 5132 case 150: 5728 5729 /* Line 1806 of yacc.c */ 5730 #line 721 "parser.yy" 5731 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5133 #line 721 "parser.yy" /* yacc.c:1646 */ 5134 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5135 #line 5136 "Parser/parser.cc" /* yacc.c:1646 */ 5732 5136 break; 5733 5137 5734 5138 case 151: 5735 5736 /* Line 1806 of yacc.c */ 5737 #line 727 "parser.yy" 5738 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5139 #line 727 "parser.yy" /* yacc.c:1646 */ 5140 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5141 #line 5142 "Parser/parser.cc" /* yacc.c:1646 */ 5739 5142 break; 5740 5143 5741 5144 case 152: 5742 5743 /* Line 1806 of yacc.c */ 5744 #line 729 "parser.yy" 5745 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5145 #line 729 "parser.yy" /* yacc.c:1646 */ 5146 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5147 #line 5148 "Parser/parser.cc" /* yacc.c:1646 */ 5746 5148 break; 5747 5149 5748 5150 case 153: 5749 5750 /* Line 1806 of yacc.c */ 5751 #line 731 "parser.yy" 5752 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5151 #line 731 "parser.yy" /* yacc.c:1646 */ 5152 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5153 #line 5154 "Parser/parser.cc" /* yacc.c:1646 */ 5753 5154 break; 5754 5155 5755 5156 case 154: 5756 5757 /* Line 1806 of yacc.c */ 5758 #line 733 "parser.yy" 5759 { 5760 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5157 #line 733 "parser.yy" /* yacc.c:1646 */ 5158 { 5159 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5761 5160 // The semantics of the declaration list is changed to include associated initialization, which is performed 5762 5161 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5764 5163 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5765 5164 // statement. 5766 (yyval.sn) = (yyvsp[ (7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5165 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5767 5166 } 5167 #line 5168 "Parser/parser.cc" /* yacc.c:1646 */ 5768 5168 break; 5769 5169 5770 5170 case 155: 5771 5772 /* Line 1806 of yacc.c */ 5773 #line 743 "parser.yy" 5774 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5171 #line 743 "parser.yy" /* yacc.c:1646 */ 5172 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5173 #line 5174 "Parser/parser.cc" /* yacc.c:1646 */ 5775 5174 break; 5776 5175 5777 5176 case 156: 5778 5779 /* Line 1806 of yacc.c */ 5780 #line 745 "parser.yy" 5781 { 5782 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5783 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5177 #line 745 "parser.yy" /* yacc.c:1646 */ 5178 { 5179 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5180 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5784 5181 } 5182 #line 5183 "Parser/parser.cc" /* yacc.c:1646 */ 5785 5183 break; 5786 5184 5787 5185 case 157: 5788 5789 /* Line 1806 of yacc.c */ 5790 #line 755 "parser.yy" 5791 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5186 #line 755 "parser.yy" /* yacc.c:1646 */ 5187 { (yyval.en) = (yyvsp[0].en); } 5188 #line 5189 "Parser/parser.cc" /* yacc.c:1646 */ 5792 5189 break; 5793 5190 5794 5191 case 158: 5795 5796 /* Line 1806 of yacc.c */ 5797 #line 757 "parser.yy" 5798 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5192 #line 757 "parser.yy" /* yacc.c:1646 */ 5193 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5194 #line 5195 "Parser/parser.cc" /* yacc.c:1646 */ 5799 5195 break; 5800 5196 5801 5197 case 160: 5802 5803 /* Line 1806 of yacc.c */ 5804 #line 762 "parser.yy" 5805 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5198 #line 762 "parser.yy" /* yacc.c:1646 */ 5199 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5200 #line 5201 "Parser/parser.cc" /* yacc.c:1646 */ 5806 5201 break; 5807 5202 5808 5203 case 161: 5809 5810 /* Line 1806 of yacc.c */ 5811 #line 764 "parser.yy" 5812 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5204 #line 764 "parser.yy" /* yacc.c:1646 */ 5205 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5206 #line 5207 "Parser/parser.cc" /* yacc.c:1646 */ 5813 5207 break; 5814 5208 5815 5209 case 162: 5816 5817 /* Line 1806 of yacc.c */ 5818 #line 768 "parser.yy" 5819 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5210 #line 768 "parser.yy" /* yacc.c:1646 */ 5211 { (yyval.sn) = (yyvsp[-1].sn); } 5212 #line 5213 "Parser/parser.cc" /* yacc.c:1646 */ 5820 5213 break; 5821 5214 5822 5215 case 163: 5823 5824 /* Line 1806 of yacc.c */ 5825 #line 769 "parser.yy" 5216 #line 769 "parser.yy" /* yacc.c:1646 */ 5826 5217 { (yyval.sn) = new StatementNode( build_default() ); } 5218 #line 5219 "Parser/parser.cc" /* yacc.c:1646 */ 5827 5219 break; 5828 5220 5829 5221 case 165: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 775 "parser.yy" 5833 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5222 #line 775 "parser.yy" /* yacc.c:1646 */ 5223 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5224 #line 5225 "Parser/parser.cc" /* yacc.c:1646 */ 5834 5225 break; 5835 5226 5836 5227 case 166: 5837 5838 /* Line 1806 of yacc.c */ 5839 #line 779 "parser.yy" 5840 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5228 #line 779 "parser.yy" /* yacc.c:1646 */ 5229 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5230 #line 5231 "Parser/parser.cc" /* yacc.c:1646 */ 5841 5231 break; 5842 5232 5843 5233 case 167: 5844 5845 /* Line 1806 of yacc.c */ 5846 #line 784 "parser.yy" 5234 #line 784 "parser.yy" /* yacc.c:1646 */ 5847 5235 { (yyval.sn) = 0; } 5236 #line 5237 "Parser/parser.cc" /* yacc.c:1646 */ 5848 5237 break; 5849 5238 5850 5239 case 169: 5851 5852 /* Line 1806 of yacc.c */ 5853 #line 790 "parser.yy" 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5240 #line 790 "parser.yy" /* yacc.c:1646 */ 5241 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5242 #line 5243 "Parser/parser.cc" /* yacc.c:1646 */ 5855 5243 break; 5856 5244 5857 5245 case 170: 5858 5859 /* Line 1806 of yacc.c */ 5860 #line 792 "parser.yy" 5861 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5246 #line 792 "parser.yy" /* yacc.c:1646 */ 5247 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5248 #line 5249 "Parser/parser.cc" /* yacc.c:1646 */ 5862 5249 break; 5863 5250 5864 5251 case 171: 5865 5866 /* Line 1806 of yacc.c */ 5867 #line 797 "parser.yy" 5252 #line 797 "parser.yy" /* yacc.c:1646 */ 5868 5253 { (yyval.sn) = 0; } 5254 #line 5255 "Parser/parser.cc" /* yacc.c:1646 */ 5869 5255 break; 5870 5256 5871 5257 case 173: 5872 5873 /* Line 1806 of yacc.c */ 5874 #line 803 "parser.yy" 5875 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5258 #line 803 "parser.yy" /* yacc.c:1646 */ 5259 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5260 #line 5261 "Parser/parser.cc" /* yacc.c:1646 */ 5876 5261 break; 5877 5262 5878 5263 case 174: 5879 5880 /* Line 1806 of yacc.c */ 5881 #line 805 "parser.yy" 5882 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5264 #line 805 "parser.yy" /* yacc.c:1646 */ 5265 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5266 #line 5267 "Parser/parser.cc" /* yacc.c:1646 */ 5883 5267 break; 5884 5268 5885 5269 case 175: 5886 5887 /* Line 1806 of yacc.c */ 5888 #line 807 "parser.yy" 5889 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5270 #line 807 "parser.yy" /* yacc.c:1646 */ 5271 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5272 #line 5273 "Parser/parser.cc" /* yacc.c:1646 */ 5890 5273 break; 5891 5274 5892 5275 case 176: 5893 5894 /* Line 1806 of yacc.c */ 5895 #line 809 "parser.yy" 5896 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5276 #line 809 "parser.yy" /* yacc.c:1646 */ 5277 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5278 #line 5279 "Parser/parser.cc" /* yacc.c:1646 */ 5897 5279 break; 5898 5280 5899 5281 case 177: 5900 5901 /* Line 1806 of yacc.c */ 5902 #line 814 "parser.yy" 5282 #line 814 "parser.yy" /* yacc.c:1646 */ 5903 5283 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5284 #line 5285 "Parser/parser.cc" /* yacc.c:1646 */ 5904 5285 break; 5905 5286 5906 5287 case 179: 5907 5908 /* Line 1806 of yacc.c */ 5909 #line 820 "parser.yy" 5288 #line 820 "parser.yy" /* yacc.c:1646 */ 5910 5289 { (yyval.sn) = 0; } 5290 #line 5291 "Parser/parser.cc" /* yacc.c:1646 */ 5911 5291 break; 5912 5292 5913 5293 case 180: 5914 5915 /* Line 1806 of yacc.c */ 5916 #line 822 "parser.yy" 5294 #line 822 "parser.yy" /* yacc.c:1646 */ 5917 5295 { (yyval.sn) = 0; } 5296 #line 5297 "Parser/parser.cc" /* yacc.c:1646 */ 5918 5297 break; 5919 5298 5920 5299 case 181: 5921 5922 /* Line 1806 of yacc.c */ 5923 #line 827 "parser.yy" 5924 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5300 #line 827 "parser.yy" /* yacc.c:1646 */ 5301 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5302 #line 5303 "Parser/parser.cc" /* yacc.c:1646 */ 5925 5303 break; 5926 5304 5927 5305 case 182: 5928 5929 /* Line 1806 of yacc.c */ 5930 #line 829 "parser.yy" 5931 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5306 #line 829 "parser.yy" /* yacc.c:1646 */ 5307 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5308 #line 5309 "Parser/parser.cc" /* yacc.c:1646 */ 5932 5309 break; 5933 5310 5934 5311 case 183: 5935 5936 /* Line 1806 of yacc.c */ 5937 #line 831 "parser.yy" 5938 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5312 #line 831 "parser.yy" /* yacc.c:1646 */ 5313 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5314 #line 5315 "Parser/parser.cc" /* yacc.c:1646 */ 5939 5315 break; 5940 5316 5941 5317 case 184: 5942 5943 /* Line 1806 of yacc.c */ 5944 #line 836 "parser.yy" 5945 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5318 #line 836 "parser.yy" /* yacc.c:1646 */ 5319 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5320 #line 5321 "Parser/parser.cc" /* yacc.c:1646 */ 5946 5321 break; 5947 5322 5948 5323 case 185: 5949 5950 /* Line 1806 of yacc.c */ 5951 #line 838 "parser.yy" 5952 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5324 #line 838 "parser.yy" /* yacc.c:1646 */ 5325 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5326 #line 5327 "Parser/parser.cc" /* yacc.c:1646 */ 5953 5327 break; 5954 5328 5955 5329 case 186: 5956 5957 /* Line 1806 of yacc.c */ 5958 #line 843 "parser.yy" 5959 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5330 #line 843 "parser.yy" /* yacc.c:1646 */ 5331 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5332 #line 5333 "Parser/parser.cc" /* yacc.c:1646 */ 5960 5333 break; 5961 5334 5962 5335 case 187: 5963 5964 /* Line 1806 of yacc.c */ 5965 #line 847 "parser.yy" 5966 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5336 #line 847 "parser.yy" /* yacc.c:1646 */ 5337 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5338 #line 5339 "Parser/parser.cc" /* yacc.c:1646 */ 5967 5339 break; 5968 5340 5969 5341 case 188: 5970 5971 /* Line 1806 of yacc.c */ 5972 #line 850 "parser.yy" 5342 #line 850 "parser.yy" /* yacc.c:1646 */ 5973 5343 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5344 #line 5345 "Parser/parser.cc" /* yacc.c:1646 */ 5974 5345 break; 5975 5346 5976 5347 case 189: 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 854 "parser.yy" 5980 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5348 #line 854 "parser.yy" /* yacc.c:1646 */ 5349 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5350 #line 5351 "Parser/parser.cc" /* yacc.c:1646 */ 5981 5351 break; 5982 5352 5983 5353 case 190: 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 857 "parser.yy" 5354 #line 857 "parser.yy" /* yacc.c:1646 */ 5987 5355 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5356 #line 5357 "Parser/parser.cc" /* yacc.c:1646 */ 5988 5357 break; 5989 5358 5990 5359 case 191: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 861 "parser.yy" 5994 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5360 #line 861 "parser.yy" /* yacc.c:1646 */ 5361 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5362 #line 5363 "Parser/parser.cc" /* yacc.c:1646 */ 5995 5363 break; 5996 5364 5997 5365 case 192: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 863 "parser.yy" 6001 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5366 #line 863 "parser.yy" /* yacc.c:1646 */ 5367 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5368 #line 5369 "Parser/parser.cc" /* yacc.c:1646 */ 6002 5369 break; 6003 5370 6004 5371 case 193: 6005 6006 /* Line 1806 of yacc.c */ 6007 #line 865 "parser.yy" 6008 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5372 #line 865 "parser.yy" /* yacc.c:1646 */ 5373 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5374 #line 5375 "Parser/parser.cc" /* yacc.c:1646 */ 6009 5375 break; 6010 5376 6011 5377 case 194: 6012 6013 /* Line 1806 of yacc.c */ 6014 #line 867 "parser.yy" 6015 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5378 #line 867 "parser.yy" /* yacc.c:1646 */ 5379 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5380 #line 5381 "Parser/parser.cc" /* yacc.c:1646 */ 6016 5381 break; 6017 5382 6018 5383 case 195: 6019 6020 /* Line 1806 of yacc.c */ 6021 #line 869 "parser.yy" 6022 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5384 #line 869 "parser.yy" /* yacc.c:1646 */ 5385 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5386 #line 5387 "Parser/parser.cc" /* yacc.c:1646 */ 6023 5387 break; 6024 5388 6025 5389 case 196: 6026 6027 /* Line 1806 of yacc.c */ 6028 #line 874 "parser.yy" 6029 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5390 #line 874 "parser.yy" /* yacc.c:1646 */ 5391 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5392 #line 5393 "Parser/parser.cc" /* yacc.c:1646 */ 6030 5393 break; 6031 5394 6032 5395 case 197: 6033 6034 /* Line 1806 of yacc.c */ 6035 #line 876 "parser.yy" 6036 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5396 #line 876 "parser.yy" /* yacc.c:1646 */ 5397 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5398 #line 5399 "Parser/parser.cc" /* yacc.c:1646 */ 6037 5399 break; 6038 5400 6039 5401 case 198: 6040 6041 /* Line 1806 of yacc.c */ 6042 #line 878 "parser.yy" 6043 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5402 #line 878 "parser.yy" /* yacc.c:1646 */ 5403 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5404 #line 5405 "Parser/parser.cc" /* yacc.c:1646 */ 6044 5405 break; 6045 5406 6046 5407 case 200: 6047 6048 /* Line 1806 of yacc.c */ 6049 #line 885 "parser.yy" 6050 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5408 #line 885 "parser.yy" /* yacc.c:1646 */ 5409 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5410 #line 5411 "Parser/parser.cc" /* yacc.c:1646 */ 6051 5411 break; 6052 5412 6053 5413 case 201: 6054 6055 /* Line 1806 of yacc.c */ 6056 #line 887 "parser.yy" 6057 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5414 #line 887 "parser.yy" /* yacc.c:1646 */ 5415 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5416 #line 5417 "Parser/parser.cc" /* yacc.c:1646 */ 6058 5417 break; 6059 5418 6060 5419 case 202: 6061 6062 /* Line 1806 of yacc.c */ 6063 #line 889 "parser.yy" 6064 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5420 #line 889 "parser.yy" /* yacc.c:1646 */ 5421 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5422 #line 5423 "Parser/parser.cc" /* yacc.c:1646 */ 6065 5423 break; 6066 5424 6067 5425 case 203: 6068 6069 /* Line 1806 of yacc.c */ 6070 #line 891 "parser.yy" 6071 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5426 #line 891 "parser.yy" /* yacc.c:1646 */ 5427 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5428 #line 5429 "Parser/parser.cc" /* yacc.c:1646 */ 6072 5429 break; 6073 5430 6074 5431 case 204: 6075 6076 /* Line 1806 of yacc.c */ 6077 #line 896 "parser.yy" 6078 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5432 #line 896 "parser.yy" /* yacc.c:1646 */ 5433 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5434 #line 5435 "Parser/parser.cc" /* yacc.c:1646 */ 6079 5435 break; 6080 5436 6081 5437 case 205: 6082 6083 /* Line 1806 of yacc.c */ 6084 #line 898 "parser.yy" 6085 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5438 #line 898 "parser.yy" /* yacc.c:1646 */ 5439 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5440 #line 5441 "Parser/parser.cc" /* yacc.c:1646 */ 6086 5441 break; 6087 5442 6088 5443 case 206: 6089 6090 /* Line 1806 of yacc.c */ 6091 #line 900 "parser.yy" 6092 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5444 #line 900 "parser.yy" /* yacc.c:1646 */ 5445 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5446 #line 5447 "Parser/parser.cc" /* yacc.c:1646 */ 6093 5447 break; 6094 5448 6095 5449 case 207: 6096 6097 /* Line 1806 of yacc.c */ 6098 #line 902 "parser.yy" 6099 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5450 #line 902 "parser.yy" /* yacc.c:1646 */ 5451 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5452 #line 5453 "Parser/parser.cc" /* yacc.c:1646 */ 6100 5453 break; 6101 5454 6102 5455 case 208: 6103 6104 /* Line 1806 of yacc.c */ 6105 #line 907 "parser.yy" 6106 { 6107 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5456 #line 907 "parser.yy" /* yacc.c:1646 */ 5457 { 5458 (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) ); 6108 5459 } 5460 #line 5461 "Parser/parser.cc" /* yacc.c:1646 */ 6109 5461 break; 6110 5462 6111 5463 case 210: 6112 6113 /* Line 1806 of yacc.c */ 6114 #line 920 "parser.yy" 5464 #line 920 "parser.yy" /* yacc.c:1646 */ 6115 5465 { 6116 5466 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6117 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );5467 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 6118 5468 } 5469 #line 5470 "Parser/parser.cc" /* yacc.c:1646 */ 6119 5470 break; 6120 5471 6121 5472 case 211: 6122 6123 /* Line 1806 of yacc.c */ 6124 #line 925 "parser.yy" 6125 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5473 #line 925 "parser.yy" /* yacc.c:1646 */ 5474 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5475 #line 5476 "Parser/parser.cc" /* yacc.c:1646 */ 6126 5476 break; 6127 5477 6128 5478 case 212: 6129 6130 /* Line 1806 of yacc.c */ 6131 #line 927 "parser.yy" 5479 #line 927 "parser.yy" /* yacc.c:1646 */ 6132 5480 { 6133 5481 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6134 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );5482 (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); 6135 5483 } 5484 #line 5485 "Parser/parser.cc" /* yacc.c:1646 */ 6136 5485 break; 6137 5486 6138 5487 case 214: 6139 6140 /* Line 1806 of yacc.c */ 6141 #line 936 "parser.yy" 6142 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5488 #line 936 "parser.yy" /* yacc.c:1646 */ 5489 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5490 #line 5491 "Parser/parser.cc" /* yacc.c:1646 */ 6143 5491 break; 6144 5492 6145 5493 case 215: 6146 6147 /* Line 1806 of yacc.c */ 6148 #line 938 "parser.yy" 6149 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5494 #line 938 "parser.yy" /* yacc.c:1646 */ 5495 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5496 #line 5497 "Parser/parser.cc" /* yacc.c:1646 */ 6150 5497 break; 6151 5498 6152 5499 case 216: 6153 6154 /* Line 1806 of yacc.c */ 6155 #line 940 "parser.yy" 6156 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5500 #line 940 "parser.yy" /* yacc.c:1646 */ 5501 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5502 #line 5503 "Parser/parser.cc" /* yacc.c:1646 */ 6157 5503 break; 6158 5504 6159 5505 case 217: 6160 6161 /* Line 1806 of yacc.c */ 6162 #line 942 "parser.yy" 6163 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 5506 #line 942 "parser.yy" /* yacc.c:1646 */ 5507 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5508 #line 5509 "Parser/parser.cc" /* yacc.c:1646 */ 6164 5509 break; 6165 5510 6166 5511 case 218: 6167 6168 /* Line 1806 of yacc.c */ 6169 #line 944 "parser.yy" 6170 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 5512 #line 944 "parser.yy" /* yacc.c:1646 */ 5513 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5514 #line 5515 "Parser/parser.cc" /* yacc.c:1646 */ 6171 5515 break; 6172 5516 6173 5517 case 219: 6174 6175 /* Line 1806 of yacc.c */ 6176 #line 949 "parser.yy" 5518 #line 949 "parser.yy" /* yacc.c:1646 */ 6177 5519 { (yyval.flag) = false; } 5520 #line 5521 "Parser/parser.cc" /* yacc.c:1646 */ 6178 5521 break; 6179 5522 6180 5523 case 220: 6181 6182 /* Line 1806 of yacc.c */ 6183 #line 951 "parser.yy" 5524 #line 951 "parser.yy" /* yacc.c:1646 */ 6184 5525 { (yyval.flag) = true; } 5526 #line 5527 "Parser/parser.cc" /* yacc.c:1646 */ 6185 5527 break; 6186 5528 6187 5529 case 221: 6188 6189 /* Line 1806 of yacc.c */ 6190 #line 956 "parser.yy" 5530 #line 956 "parser.yy" /* yacc.c:1646 */ 6191 5531 { (yyval.en) = 0; } 5532 #line 5533 "Parser/parser.cc" /* yacc.c:1646 */ 6192 5533 break; 6193 5534 6194 5535 case 224: 6195 6196 /* Line 1806 of yacc.c */ 6197 #line 963 "parser.yy" 6198 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5536 #line 963 "parser.yy" /* yacc.c:1646 */ 5537 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5538 #line 5539 "Parser/parser.cc" /* yacc.c:1646 */ 6199 5539 break; 6200 5540 6201 5541 case 225: 6202 6203 /* Line 1806 of yacc.c */ 6204 #line 968 "parser.yy" 6205 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5542 #line 968 "parser.yy" /* yacc.c:1646 */ 5543 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5544 #line 5545 "Parser/parser.cc" /* yacc.c:1646 */ 6206 5545 break; 6207 5546 6208 5547 case 226: 6209 6210 /* Line 1806 of yacc.c */ 6211 #line 970 "parser.yy" 6212 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5548 #line 970 "parser.yy" /* yacc.c:1646 */ 5549 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5550 #line 5551 "Parser/parser.cc" /* yacc.c:1646 */ 6213 5551 break; 6214 5552 6215 5553 case 227: 6216 6217 /* Line 1806 of yacc.c */ 6218 #line 975 "parser.yy" 5554 #line 975 "parser.yy" /* yacc.c:1646 */ 6219 5555 { (yyval.en) = 0; } 5556 #line 5557 "Parser/parser.cc" /* yacc.c:1646 */ 6220 5557 break; 6221 5558 6222 5559 case 228: 6223 6224 /* Line 1806 of yacc.c */ 6225 #line 977 "parser.yy" 6226 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5560 #line 977 "parser.yy" /* yacc.c:1646 */ 5561 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5562 #line 5563 "Parser/parser.cc" /* yacc.c:1646 */ 6227 5563 break; 6228 5564 6229 5565 case 229: 6230 6231 /* Line 1806 of yacc.c */ 6232 #line 979 "parser.yy" 6233 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5566 #line 979 "parser.yy" /* yacc.c:1646 */ 5567 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5568 #line 5569 "Parser/parser.cc" /* yacc.c:1646 */ 6234 5569 break; 6235 5570 6236 5571 case 230: 6237 6238 /* Line 1806 of yacc.c */ 6239 #line 984 "parser.yy" 6240 { 6241 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); 6242 delete (yyvsp[(1) - (1)].tok); // allocated by lexer 5572 #line 984 "parser.yy" /* yacc.c:1646 */ 5573 { 5574 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) ); 5575 delete (yyvsp[0].tok); // allocated by lexer 6243 5576 } 5577 #line 5578 "Parser/parser.cc" /* yacc.c:1646 */ 6244 5578 break; 6245 5579 6246 5580 case 231: 6247 6248 /* Line 1806 of yacc.c */ 6249 #line 989 "parser.yy" 6250 { 6251 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); 6252 delete (yyvsp[(3) - (3)].tok); // allocated by lexer 5581 #line 989 "parser.yy" /* yacc.c:1646 */ 5582 { 5583 (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) ); 5584 delete (yyvsp[0].tok); // allocated by lexer 6253 5585 } 5586 #line 5587 "Parser/parser.cc" /* yacc.c:1646 */ 6254 5587 break; 6255 5588 6256 5589 case 232: 6257 6258 /* Line 1806 of yacc.c */ 6259 #line 999 "parser.yy" 5590 #line 999 "parser.yy" /* yacc.c:1646 */ 6260 5591 { (yyval.decl) = 0; } 5592 #line 5593 "Parser/parser.cc" /* yacc.c:1646 */ 6261 5593 break; 6262 5594 6263 5595 case 235: 6264 6265 /* Line 1806 of yacc.c */ 6266 #line 1006 "parser.yy" 6267 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5596 #line 1006 "parser.yy" /* yacc.c:1646 */ 5597 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5598 #line 5599 "Parser/parser.cc" /* yacc.c:1646 */ 6268 5599 break; 6269 5600 6270 5601 case 236: 6271 6272 /* Line 1806 of yacc.c */ 6273 #line 1011 "parser.yy" 5602 #line 1011 "parser.yy" /* yacc.c:1646 */ 6274 5603 { (yyval.decl) = 0; } 5604 #line 5605 "Parser/parser.cc" /* yacc.c:1646 */ 6275 5605 break; 6276 5606 6277 5607 case 239: 6278 6279 /* Line 1806 of yacc.c */ 6280 #line 1018 "parser.yy" 6281 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5608 #line 1018 "parser.yy" /* yacc.c:1646 */ 5609 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5610 #line 5611 "Parser/parser.cc" /* yacc.c:1646 */ 6282 5611 break; 6283 5612 6284 5613 case 244: 6285 6286 /* Line 1806 of yacc.c */ 6287 #line 1032 "parser.yy" 5614 #line 1032 "parser.yy" /* yacc.c:1646 */ 6288 5615 {} 5616 #line 5617 "Parser/parser.cc" /* yacc.c:1646 */ 6289 5617 break; 6290 5618 6291 5619 case 245: 6292 6293 /* Line 1806 of yacc.c */ 6294 #line 1033 "parser.yy" 5620 #line 1033 "parser.yy" /* yacc.c:1646 */ 6295 5621 {} 5622 #line 5623 "Parser/parser.cc" /* yacc.c:1646 */ 6296 5623 break; 6297 5624 6298 5625 case 253: 6299 6300 /* Line 1806 of yacc.c */ 6301 #line 1062 "parser.yy" 5626 #line 1062 "parser.yy" /* yacc.c:1646 */ 6302 5627 { 6303 5628 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6304 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );5629 (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) ); 6305 5630 } 5631 #line 5632 "Parser/parser.cc" /* yacc.c:1646 */ 6306 5632 break; 6307 5633 6308 5634 case 254: 6309 6310 /* Line 1806 of yacc.c */ 6311 #line 1069 "parser.yy" 5635 #line 1069 "parser.yy" /* yacc.c:1646 */ 6312 5636 { 6313 5637 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6314 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;5638 (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );; 6315 5639 } 5640 #line 5641 "Parser/parser.cc" /* yacc.c:1646 */ 6316 5641 break; 6317 5642 6318 5643 case 255: 6319 6320 /* Line 1806 of yacc.c */ 6321 #line 1074 "parser.yy" 6322 { 6323 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6324 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5644 #line 1074 "parser.yy" /* yacc.c:1646 */ 5645 { 5646 typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID ); 5647 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) ); 6325 5648 } 5649 #line 5650 "Parser/parser.cc" /* yacc.c:1646 */ 6326 5650 break; 6327 5651 6328 5652 case 256: 6329 6330 /* Line 1806 of yacc.c */ 6331 #line 1084 "parser.yy" 6332 { 6333 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6334 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5653 #line 1084 "parser.yy" /* yacc.c:1646 */ 5654 { 5655 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5656 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6335 5657 } 5658 #line 5659 "Parser/parser.cc" /* yacc.c:1646 */ 6336 5659 break; 6337 5660 6338 5661 case 257: 6339 6340 /* Line 1806 of yacc.c */ 6341 #line 1089 "parser.yy" 6342 { 6343 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6344 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5662 #line 1089 "parser.yy" /* yacc.c:1646 */ 5663 { 5664 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5665 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6345 5666 } 5667 #line 5668 "Parser/parser.cc" /* yacc.c:1646 */ 6346 5668 break; 6347 5669 6348 5670 case 258: 6349 6350 /* Line 1806 of yacc.c */ 6351 #line 1094 "parser.yy" 6352 { 6353 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6354 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5671 #line 1094 "parser.yy" /* yacc.c:1646 */ 5672 { 5673 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5674 (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) ); 6355 5675 } 5676 #line 5677 "Parser/parser.cc" /* yacc.c:1646 */ 6356 5677 break; 6357 5678 6358 5679 case 259: 6359 6360 /* Line 1806 of yacc.c */ 6361 #line 1102 "parser.yy" 5680 #line 1102 "parser.yy" /* yacc.c:1646 */ 6362 5681 { 6363 5682 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6364 (yyval.decl) = (yyvsp[ (1) - (1)].decl);5683 (yyval.decl) = (yyvsp[0].decl); 6365 5684 } 5685 #line 5686 "Parser/parser.cc" /* yacc.c:1646 */ 6366 5686 break; 6367 5687 6368 5688 case 260: 6369 6370 /* Line 1806 of yacc.c */ 6371 #line 1107 "parser.yy" 5689 #line 1107 "parser.yy" /* yacc.c:1646 */ 6372 5690 { 6373 5691 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6374 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5692 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6375 5693 } 5694 #line 5695 "Parser/parser.cc" /* yacc.c:1646 */ 6376 5695 break; 6377 5696 6378 5697 case 261: 6379 6380 /* Line 1806 of yacc.c */ 6381 #line 1112 "parser.yy" 5698 #line 1112 "parser.yy" /* yacc.c:1646 */ 6382 5699 { 6383 5700 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6384 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5701 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6385 5702 } 5703 #line 5704 "Parser/parser.cc" /* yacc.c:1646 */ 6386 5704 break; 6387 5705 6388 5706 case 262: 6389 6390 /* Line 1806 of yacc.c */ 6391 #line 1117 "parser.yy" 5707 #line 1117 "parser.yy" /* yacc.c:1646 */ 6392 5708 { 6393 5709 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6394 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );5710 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) ); 6395 5711 } 5712 #line 5713 "Parser/parser.cc" /* yacc.c:1646 */ 6396 5713 break; 6397 5714 6398 5715 case 263: 6399 6400 /* Line 1806 of yacc.c */ 6401 #line 1122 "parser.yy" 6402 { 6403 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6404 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5716 #line 1122 "parser.yy" /* yacc.c:1646 */ 5717 { 5718 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID ); 5719 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6405 5720 } 5721 #line 5722 "Parser/parser.cc" /* yacc.c:1646 */ 6406 5722 break; 6407 5723 6408 5724 case 264: 6409 6410 /* Line 1806 of yacc.c */ 6411 #line 1130 "parser.yy" 6412 { 6413 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5725 #line 1130 "parser.yy" /* yacc.c:1646 */ 5726 { 5727 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true ); 6414 5728 } 5729 #line 5730 "Parser/parser.cc" /* yacc.c:1646 */ 6415 5730 break; 6416 5731 6417 5732 case 265: 6418 6419 /* Line 1806 of yacc.c */ 6420 #line 1153 "parser.yy" 6421 { 6422 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5733 #line 1153 "parser.yy" /* yacc.c:1646 */ 5734 { 5735 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6423 5736 } 5737 #line 5738 "Parser/parser.cc" /* yacc.c:1646 */ 6424 5738 break; 6425 5739 6426 5740 case 266: 6427 6428 /* Line 1806 of yacc.c */ 6429 #line 1157 "parser.yy" 6430 { 6431 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5741 #line 1157 "parser.yy" /* yacc.c:1646 */ 5742 { 5743 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6432 5744 } 5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */ 6433 5746 break; 6434 5747 6435 5748 case 267: 6436 6437 /* Line 1806 of yacc.c */ 6438 #line 1164 "parser.yy" 6439 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5749 #line 1164 "parser.yy" /* yacc.c:1646 */ 5750 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646 */ 6440 5752 break; 6441 5753 6442 5754 case 268: 6443 6444 /* Line 1806 of yacc.c */ 6445 #line 1168 "parser.yy" 6446 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5755 #line 1168 "parser.yy" /* yacc.c:1646 */ 5756 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5757 #line 5758 "Parser/parser.cc" /* yacc.c:1646 */ 6447 5758 break; 6448 5759 6449 5760 case 269: 6450 6451 /* Line 1806 of yacc.c */ 6452 #line 1173 "parser.yy" 5761 #line 1173 "parser.yy" /* yacc.c:1646 */ 6453 5762 { 6454 5763 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6455 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5764 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6456 5765 } 5766 #line 5767 "Parser/parser.cc" /* yacc.c:1646 */ 6457 5767 break; 6458 5768 6459 5769 case 270: 6460 6461 /* Line 1806 of yacc.c */ 6462 #line 1178 "parser.yy" 5770 #line 1178 "parser.yy" /* yacc.c:1646 */ 6463 5771 { 6464 5772 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6465 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5773 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6466 5774 } 5775 #line 5776 "Parser/parser.cc" /* yacc.c:1646 */ 6467 5776 break; 6468 5777 6469 5778 case 271: 6470 6471 /* Line 1806 of yacc.c */ 6472 #line 1183 "parser.yy" 6473 { 6474 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6475 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5779 #line 1183 "parser.yy" /* yacc.c:1646 */ 5780 { 5781 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 5782 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6476 5783 } 5784 #line 5785 "Parser/parser.cc" /* yacc.c:1646 */ 6477 5785 break; 6478 5786 6479 5787 case 272: 6480 6481 /* Line 1806 of yacc.c */ 6482 #line 1194 "parser.yy" 5788 #line 1194 "parser.yy" /* yacc.c:1646 */ 6483 5789 { 6484 5790 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6485 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();5791 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef(); 6486 5792 } 5793 #line 5794 "Parser/parser.cc" /* yacc.c:1646 */ 6487 5794 break; 6488 5795 6489 5796 case 273: 6490 6491 /* Line 1806 of yacc.c */ 6492 #line 1199 "parser.yy" 5797 #line 1199 "parser.yy" /* yacc.c:1646 */ 6493 5798 { 6494 5799 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6495 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );5800 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() ); 6496 5801 } 5802 #line 5803 "Parser/parser.cc" /* yacc.c:1646 */ 6497 5803 break; 6498 5804 6499 5805 case 274: 6500 6501 /* Line 1806 of yacc.c */ 6502 #line 1204 "parser.yy" 5806 #line 1204 "parser.yy" /* yacc.c:1646 */ 6503 5807 { 6504 5808 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6505 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();5809 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef(); 6506 5810 } 5811 #line 5812 "Parser/parser.cc" /* yacc.c:1646 */ 6507 5812 break; 6508 5813 6509 5814 case 275: 6510 6511 /* Line 1806 of yacc.c */ 6512 #line 1209 "parser.yy" 5815 #line 1209 "parser.yy" /* yacc.c:1646 */ 6513 5816 { 6514 5817 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6515 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();5818 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef(); 6516 5819 } 5820 #line 5821 "Parser/parser.cc" /* yacc.c:1646 */ 6517 5821 break; 6518 5822 6519 5823 case 276: 6520 6521 /* Line 1806 of yacc.c */ 6522 #line 1214 "parser.yy" 5824 #line 1214 "parser.yy" /* yacc.c:1646 */ 6523 5825 { 6524 5826 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6525 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );5827 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) ); 6526 5828 } 5829 #line 5830 "Parser/parser.cc" /* yacc.c:1646 */ 6527 5830 break; 6528 5831 6529 5832 case 277: 6530 6531 /* Line 1806 of yacc.c */ 6532 #line 1223 "parser.yy" 6533 { 6534 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5833 #line 1223 "parser.yy" /* yacc.c:1646 */ 5834 { 5835 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6535 5836 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6536 5837 } 5838 #line 5839 "Parser/parser.cc" /* yacc.c:1646 */ 6537 5839 break; 6538 5840 6539 5841 case 278: 6540 6541 /* Line 1806 of yacc.c */ 6542 #line 1228 "parser.yy" 6543 { 6544 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5842 #line 1228 "parser.yy" /* yacc.c:1646 */ 5843 { 5844 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6545 5845 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6546 5846 } 5847 #line 5848 "Parser/parser.cc" /* yacc.c:1646 */ 6547 5848 break; 6548 5849 6549 5850 case 283: 6550 6551 /* Line 1806 of yacc.c */ 6552 #line 1245 "parser.yy" 5851 #line 1245 "parser.yy" /* yacc.c:1646 */ 6553 5852 { 6554 5853 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6555 (yyval.decl) = ( (yyvsp[ (2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );5854 (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) ); 6556 5855 } 5856 #line 5857 "Parser/parser.cc" /* yacc.c:1646 */ 6557 5857 break; 6558 5858 6559 5859 case 284: 6560 6561 /* Line 1806 of yacc.c */ 6562 #line 1250 "parser.yy" 5860 #line 1250 "parser.yy" /* yacc.c:1646 */ 6563 5861 { 6564 5862 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6565 (yyval.decl) = (yyvsp[ (1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );5863 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) ); 6566 5864 } 5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */ 6567 5866 break; 6568 5867 6569 5868 case 293: 6570 6571 /* Line 1806 of yacc.c */ 6572 #line 1272 "parser.yy" 5869 #line 1272 "parser.yy" /* yacc.c:1646 */ 6573 5870 { (yyval.decl) = 0; } 5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */ 6574 5872 break; 6575 5873 6576 5874 case 296: 6577 6578 /* Line 1806 of yacc.c */ 6579 #line 1284 "parser.yy" 6580 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5875 #line 1284 "parser.yy" /* yacc.c:1646 */ 5876 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */ 6581 5878 break; 6582 5879 6583 5880 case 299: 6584 6585 /* Line 1806 of yacc.c */ 6586 #line 1295 "parser.yy" 5881 #line 1295 "parser.yy" /* yacc.c:1646 */ 6587 5882 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */ 6588 5884 break; 6589 5885 6590 5886 case 300: 6591 6592 /* Line 1806 of yacc.c */ 6593 #line 1297 "parser.yy" 5887 #line 1297 "parser.yy" /* yacc.c:1646 */ 6594 5888 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */ 6595 5890 break; 6596 5891 6597 5892 case 301: 6598 6599 /* Line 1806 of yacc.c */ 6600 #line 1299 "parser.yy" 5893 #line 1299 "parser.yy" /* yacc.c:1646 */ 6601 5894 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */ 6602 5896 break; 6603 5897 6604 5898 case 302: 6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1301 "parser.yy" 5899 #line 1301 "parser.yy" /* yacc.c:1646 */ 6608 5900 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646 */ 6609 5902 break; 6610 5903 6611 5904 case 303: 6612 6613 /* Line 1806 of yacc.c */ 6614 #line 1303 "parser.yy" 5905 #line 1303 "parser.yy" /* yacc.c:1646 */ 6615 5906 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5907 #line 5908 "Parser/parser.cc" /* yacc.c:1646 */ 6616 5908 break; 6617 5909 6618 5910 case 304: 6619 6620 /* Line 1806 of yacc.c */ 6621 #line 1305 "parser.yy" 5911 #line 1305 "parser.yy" /* yacc.c:1646 */ 6622 5912 { 6623 5913 typedefTable.enterScope(); 6624 5914 } 5915 #line 5916 "Parser/parser.cc" /* yacc.c:1646 */ 6625 5916 break; 6626 5917 6627 5918 case 305: 6628 6629 /* Line 1806 of yacc.c */ 6630 #line 1309 "parser.yy" 5919 #line 1309 "parser.yy" /* yacc.c:1646 */ 6631 5920 { 6632 5921 typedefTable.leaveScope(); 6633 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ (4) - (5)].decl) );5922 (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) ); 6634 5923 } 5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */ 6635 5925 break; 6636 5926 6637 5927 case 307: 6638 6639 /* Line 1806 of yacc.c */ 6640 #line 1318 "parser.yy" 6641 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5928 #line 1318 "parser.yy" /* yacc.c:1646 */ 5929 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 6642 5931 break; 6643 5932 6644 5933 case 308: 6645 6646 /* Line 1806 of yacc.c */ 6647 #line 1320 "parser.yy" 6648 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5934 #line 1320 "parser.yy" /* yacc.c:1646 */ 5935 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 6649 5937 break; 6650 5938 6651 5939 case 310: 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1331 "parser.yy" 6655 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5940 #line 1331 "parser.yy" /* yacc.c:1646 */ 5941 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */ 6656 5943 break; 6657 5944 6658 5945 case 311: 6659 6660 /* Line 1806 of yacc.c */ 6661 #line 1336 "parser.yy" 5946 #line 1336 "parser.yy" /* yacc.c:1646 */ 6662 5947 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */ 6663 5949 break; 6664 5950 6665 5951 case 312: 6666 6667 /* Line 1806 of yacc.c */ 6668 #line 1338 "parser.yy" 5952 #line 1338 "parser.yy" /* yacc.c:1646 */ 6669 5953 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */ 6670 5955 break; 6671 5956 6672 5957 case 313: 6673 6674 /* Line 1806 of yacc.c */ 6675 #line 1340 "parser.yy" 5958 #line 1340 "parser.yy" /* yacc.c:1646 */ 6676 5959 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */ 6677 5961 break; 6678 5962 6679 5963 case 314: 6680 6681 /* Line 1806 of yacc.c */ 6682 #line 1342 "parser.yy" 5964 #line 1342 "parser.yy" /* yacc.c:1646 */ 6683 5965 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */ 6684 5967 break; 6685 5968 6686 5969 case 315: 6687 6688 /* Line 1806 of yacc.c */ 6689 #line 1345 "parser.yy" 5970 #line 1345 "parser.yy" /* yacc.c:1646 */ 6690 5971 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */ 6691 5973 break; 6692 5974 6693 5975 case 316: 6694 6695 /* Line 1806 of yacc.c */ 6696 #line 1347 "parser.yy" 5976 #line 1347 "parser.yy" /* yacc.c:1646 */ 6697 5977 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */ 6698 5979 break; 6699 5980 6700 5981 case 317: 6701 6702 /* Line 1806 of yacc.c */ 6703 #line 1350 "parser.yy" 5982 #line 1350 "parser.yy" /* yacc.c:1646 */ 6704 5983 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */ 6705 5985 break; 6706 5986 6707 5987 case 318: 6708 6709 /* Line 1806 of yacc.c */ 6710 #line 1352 "parser.yy" 5988 #line 1352 "parser.yy" /* yacc.c:1646 */ 6711 5989 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */ 6712 5991 break; 6713 5992 6714 5993 case 319: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1357 "parser.yy" 5994 #line 1357 "parser.yy" /* yacc.c:1646 */ 6718 5995 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */ 6719 5997 break; 6720 5998 6721 5999 case 320: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1359 "parser.yy" 6000 #line 1359 "parser.yy" /* yacc.c:1646 */ 6725 6001 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */ 6726 6003 break; 6727 6004 6728 6005 case 321: 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1361 "parser.yy" 6006 #line 1361 "parser.yy" /* yacc.c:1646 */ 6732 6007 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */ 6733 6009 break; 6734 6010 6735 6011 case 322: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1363 "parser.yy" 6012 #line 1363 "parser.yy" /* yacc.c:1646 */ 6739 6013 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */ 6740 6015 break; 6741 6016 6742 6017 case 323: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1365 "parser.yy" 6018 #line 1365 "parser.yy" /* yacc.c:1646 */ 6746 6019 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */ 6747 6021 break; 6748 6022 6749 6023 case 324: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1367 "parser.yy" 6024 #line 1367 "parser.yy" /* yacc.c:1646 */ 6753 6025 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */ 6754 6027 break; 6755 6028 6756 6029 case 325: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1369 "parser.yy" 6030 #line 1369 "parser.yy" /* yacc.c:1646 */ 6760 6031 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */ 6761 6033 break; 6762 6034 6763 6035 case 326: 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1371 "parser.yy" 6036 #line 1371 "parser.yy" /* yacc.c:1646 */ 6767 6037 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */ 6768 6039 break; 6769 6040 6770 6041 case 327: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1373 "parser.yy" 6042 #line 1373 "parser.yy" /* yacc.c:1646 */ 6774 6043 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */ 6775 6045 break; 6776 6046 6777 6047 case 328: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1375 "parser.yy" 6048 #line 1375 "parser.yy" /* yacc.c:1646 */ 6781 6049 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */ 6782 6051 break; 6783 6052 6784 6053 case 329: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1377 "parser.yy" 6054 #line 1377 "parser.yy" /* yacc.c:1646 */ 6788 6055 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */ 6789 6057 break; 6790 6058 6791 6059 case 330: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1379 "parser.yy" 6060 #line 1379 "parser.yy" /* yacc.c:1646 */ 6795 6061 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */ 6796 6063 break; 6797 6064 6798 6065 case 331: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1381 "parser.yy" 6066 #line 1381 "parser.yy" /* yacc.c:1646 */ 6802 6067 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */ 6803 6069 break; 6804 6070 6805 6071 case 333: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1388 "parser.yy" 6809 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6072 #line 1388 "parser.yy" /* yacc.c:1646 */ 6073 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */ 6810 6075 break; 6811 6076 6812 6077 case 334: 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1390 "parser.yy" 6816 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6078 #line 1390 "parser.yy" /* yacc.c:1646 */ 6079 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6817 6081 break; 6818 6082 6819 6083 case 335: 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1392 "parser.yy" 6823 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6084 #line 1392 "parser.yy" /* yacc.c:1646 */ 6085 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646 */ 6824 6087 break; 6825 6088 6826 6089 case 336: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1394 "parser.yy" 6830 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6090 #line 1394 "parser.yy" /* yacc.c:1646 */ 6091 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646 */ 6831 6093 break; 6832 6094 6833 6095 case 338: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1400 "parser.yy" 6837 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6096 #line 1400 "parser.yy" /* yacc.c:1646 */ 6097 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646 */ 6838 6099 break; 6839 6100 6840 6101 case 340: 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1407 "parser.yy" 6844 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6102 #line 1407 "parser.yy" /* yacc.c:1646 */ 6103 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6845 6105 break; 6846 6106 6847 6107 case 341: 6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1409 "parser.yy" 6851 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6108 #line 1409 "parser.yy" /* yacc.c:1646 */ 6109 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6852 6111 break; 6853 6112 6854 6113 case 342: 6855 6856 /* Line 1806 of yacc.c */ 6857 #line 1411 "parser.yy" 6858 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6114 #line 1411 "parser.yy" /* yacc.c:1646 */ 6115 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6859 6117 break; 6860 6118 6861 6119 case 343: 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1416 "parser.yy" 6865 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6120 #line 1416 "parser.yy" /* yacc.c:1646 */ 6121 { (yyval.decl) = (yyvsp[-1].decl); } 6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6866 6123 break; 6867 6124 6868 6125 case 344: 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1418 "parser.yy" 6872 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6126 #line 1418 "parser.yy" /* yacc.c:1646 */ 6127 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6873 6129 break; 6874 6130 6875 6131 case 345: 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1420 "parser.yy" 6879 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6132 #line 1420 "parser.yy" /* yacc.c:1646 */ 6133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646 */ 6880 6135 break; 6881 6136 6882 6137 case 346: 6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1422 "parser.yy" 6886 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6138 #line 1422 "parser.yy" /* yacc.c:1646 */ 6139 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646 */ 6887 6141 break; 6888 6142 6889 6143 case 348: 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1428 "parser.yy" 6893 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6144 #line 1428 "parser.yy" /* yacc.c:1646 */ 6145 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6894 6147 break; 6895 6148 6896 6149 case 349: 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1430 "parser.yy" 6900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6150 #line 1430 "parser.yy" /* yacc.c:1646 */ 6151 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6901 6153 break; 6902 6154 6903 6155 case 350: 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1432 "parser.yy" 6907 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6156 #line 1432 "parser.yy" /* yacc.c:1646 */ 6157 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646 */ 6908 6159 break; 6909 6160 6910 6161 case 352: 6911 6912 /* Line 1806 of yacc.c */ 6913 #line 1438 "parser.yy" 6914 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6162 #line 1438 "parser.yy" /* yacc.c:1646 */ 6163 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6915 6165 break; 6916 6166 6917 6167 case 353: 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1440 "parser.yy" 6921 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6168 #line 1440 "parser.yy" /* yacc.c:1646 */ 6169 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6922 6171 break; 6923 6172 6924 6173 case 355: 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1446 "parser.yy" 6928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6174 #line 1446 "parser.yy" /* yacc.c:1646 */ 6175 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6929 6177 bre