Changes in src/Parser/parser.cc [2037f82:8b7ee09]
- File:
-
- 1 edited
-
src/Parser/parser.cc (modified) (70 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
r2037f82 r8b7ee09 1 /* A Bison parser, made by GNU Bison 3.0.2. */1 /* A Bison parser, made by GNU Bison 2.5. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2013Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2011 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 " 3.0.2"47 #define YYBISON_VERSION "2.5" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */ 62 #define YYLSP_NEEDED 0 61 63 62 64 63 65 64 66 /* Copy the first part of user declarations. */ 65 #line 42 "parser.yy" /* yacc.c:339 */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 66 70 67 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 90 94 } // appendStr 91 95 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 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 101 104 102 105 /* Enabling verbose error messages. */ … … 108 111 #endif 109 112 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 113 /* Enabling the token table. */ 114 #ifndef YYTOKEN_TABLE 115 # define YYTOKEN_TABLE 0 117 116 #endif 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 117 118 119 /* Tokens. */ 123 120 #ifndef YYTOKENTYPE 124 121 # define YYTOKENTYPE 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 }; 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 }; 234 232 #endif 235 233 /* Tokens. */ … … 341 339 #define THEN 363 342 340 343 /* Value type. */ 341 342 343 344 344 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 345 typedef union YYSTYPE 347 346 { 348 #line 115 "parser.yy" /* yacc.c:355 */ 347 348 /* Line 293 of yacc.c */ 349 #line 115 "parser.yy" 349 350 350 351 Token tok; … … 362 363 bool flag; 363 364 364 #line 365 "Parser/parser.cc" /* yacc.c:355 */ 365 }; 365 366 367 /* Line 293 of yacc.c */ 368 #line 369 "Parser/parser.cc" 369 } YYSTYPE; 366 370 # define YYSTYPE_IS_TRIVIAL 1 371 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 367 372 # define YYSTYPE_IS_DECLARED 1 368 373 #endif 369 374 370 375 371 extern YYSTYPE yylval;372 373 int yyparse (void);374 375 #endif /* !YY_YY_Y_TAB_H_INCLUDED */376 377 376 /* Copy the second part of user declarations. */ 378 377 379 #line 380 "Parser/parser.cc" /* yacc.c:358 */ 378 379 /* Line 343 of yacc.c */ 380 #line 381 "Parser/parser.cc" 380 381 381 382 #ifdef short … … 391 392 #ifdef YYTYPE_INT8 392 393 typedef YYTYPE_INT8 yytype_int8; 394 #elif (defined __STDC__ || defined __C99__FUNC__ \ 395 || defined __cplusplus || defined _MSC_VER) 396 typedef signed char yytype_int8; 393 397 #else 394 typedef s igned charyytype_int8;398 typedef short int yytype_int8; 395 399 #endif 396 400 … … 412 416 # elif defined size_t 413 417 # define YYSIZE_T size_t 414 # elif ! defined YYSIZE_T 418 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 419 || defined __cplusplus || defined _MSC_VER) 415 420 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 416 421 # define YYSIZE_T size_t … … 426 431 # if ENABLE_NLS 427 432 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 428 # define YY_( Msgid) dgettext ("bison-runtime", Msgid)433 # define YY_(msgid) dgettext ("bison-runtime", msgid) 429 434 # endif 430 435 # endif 431 436 # ifndef YY_ 432 # define YY_( Msgid) Msgid437 # define YY_(msgid) msgid 433 438 # endif 434 439 #endif 435 440 436 #ifndef YY_ATTRIBUTE437 # if (defined __GNUC__ \438 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \439 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C440 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)441 # else442 # define YY_ATTRIBUTE(Spec) /* empty */443 # endif444 #endif445 446 #ifndef YY_ATTRIBUTE_PURE447 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))448 #endif449 450 #ifndef YY_ATTRIBUTE_UNUSED451 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))452 #endif453 454 #if !defined _Noreturn \455 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)456 # if defined _MSC_VER && 1200 <= _MSC_VER457 # define _Noreturn __declspec (noreturn)458 # else459 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))460 # endif461 #endif462 463 441 /* Suppress unused-variable warnings by "using" E. */ 464 442 #if ! defined lint || defined __GNUC__ 465 # define YYUSE( E) ((void) (E))443 # define YYUSE(e) ((void) (e)) 466 444 #else 467 # define YYUSE( E) /* empty */445 # define YYUSE(e) /* empty */ 468 446 #endif 469 447 470 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 471 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 472 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 473 _Pragma ("GCC diagnostic push") \ 474 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 475 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 476 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 477 _Pragma ("GCC diagnostic pop") 448 /* Identity function, used to suppress warnings about constant conditions. */ 449 #ifndef lint 450 # define YYID(n) (n) 478 451 #else 479 # define YY_INITIAL_VALUE(Value) Value 452 #if (defined __STDC__ || defined __C99__FUNC__ \ 453 || defined __cplusplus || defined _MSC_VER) 454 static int 455 YYID (int yyi) 456 #else 457 static int 458 YYID (yyi) 459 int yyi; 480 460 #endif 481 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 461 { 462 return yyi; 463 } 484 464 #endif 485 #ifndef YY_INITIAL_VALUE486 # define YY_INITIAL_VALUE(Value) /* Nothing. */487 #endif488 489 465 490 466 #if ! defined yyoverflow || YYERROR_VERBOSE … … 505 481 # else 506 482 # define YYSTACK_ALLOC alloca 507 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 483 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 484 || defined __cplusplus || defined _MSC_VER) 508 485 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 509 /* Use EXIT_SUCCESS as a witness for stdlib.h. */510 486 # ifndef EXIT_SUCCESS 511 487 # define EXIT_SUCCESS 0 … … 517 493 518 494 # ifdef YYSTACK_ALLOC 519 /* Pacify GCC's 'empty if-body' warning. */520 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( 0)495 /* Pacify GCC's `empty if-body' warning. */ 496 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 521 497 # ifndef YYSTACK_ALLOC_MAXIMUM 522 498 /* The OS might guarantee only one guard page at the bottom of the stack, … … 534 510 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 535 511 && ! ((defined YYMALLOC || defined malloc) \ 536 && (defined YYFREE || defined free)))512 && (defined YYFREE || defined free))) 537 513 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 538 514 # ifndef EXIT_SUCCESS … … 542 518 # ifndef YYMALLOC 543 519 # define YYMALLOC malloc 544 # if ! defined malloc && ! defined EXIT_SUCCESS 520 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 521 || defined __cplusplus || defined _MSC_VER) 545 522 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 546 523 # endif … … 548 525 # ifndef YYFREE 549 526 # define YYFREE free 550 # if ! defined free && ! defined EXIT_SUCCESS 527 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 528 || defined __cplusplus || defined _MSC_VER) 551 529 void free (void *); /* INFRINGES ON USER NAME SPACE */ 552 530 # endif … … 558 536 #if (! defined yyoverflow \ 559 537 && (! defined __cplusplus \ 560 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))538 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 561 539 562 540 /* A type that is properly aligned for any stack member. */ … … 583 561 stack. Advance YYPTR to a properly aligned location for the next 584 562 stack. */ 585 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \586 do \587 { \588 YYSIZE_T yynewbytes;\589 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\590 Stack = &yyptr->Stack_alloc;\591 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \592 yyptr += yynewbytes / sizeof (*yyptr);\593 } \594 while ( 0)563 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 564 do \ 565 { \ 566 YYSIZE_T yynewbytes; \ 567 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 568 Stack = &yyptr->Stack_alloc; \ 569 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 570 yyptr += yynewbytes / sizeof (*yyptr); \ 571 } \ 572 while (YYID (0)) 595 573 596 574 #endif 597 575 598 576 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 599 /* Copy COUNT objects from SRC to DST. The source and destination do577 /* Copy COUNT objects from FROM to TO. The source and destination do 600 578 not overlap. */ 601 579 # ifndef YYCOPY 602 580 # if defined __GNUC__ && 1 < __GNUC__ 603 # define YYCOPY( Dst, Src, Count) \604 __builtin_memcpy ( Dst, Src, (Count) * sizeof (*(Src)))581 # define YYCOPY(To, From, Count) \ 582 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 605 583 # else 606 # define YYCOPY( Dst, Src, Count)\607 do \608 {\609 YYSIZE_T yyi;\610 for (yyi = 0; yyi < (Count); yyi++)\611 (Dst)[yyi] = (Src)[yyi];\612 }\613 while ( 0)584 # define YYCOPY(To, From, Count) \ 585 do \ 586 { \ 587 YYSIZE_T yyi; \ 588 for (yyi = 0; yyi < (Count); yyi++) \ 589 (To)[yyi] = (From)[yyi]; \ 590 } \ 591 while (YYID (0)) 614 592 # endif 615 593 # endif … … 627 605 /* YYNRULES -- Number of rules. */ 628 606 #define YYNRULES 749 629 /* YYN STATES -- Number of states. */607 /* YYNRULES -- Number of states. */ 630 608 #define YYNSTATES 1553 631 609 632 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 633 by yylex, with out-of-bounds checking. */ 610 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 634 611 #define YYUNDEFTOK 2 635 612 #define YYMAXUTOK 363 636 613 637 #define YYTRANSLATE(YYX) \614 #define YYTRANSLATE(YYX) \ 638 615 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 639 616 640 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 641 as returned by yylex, without out-of-bounds checking. */ 617 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 642 618 static const yytype_uint8 yytranslate[] = 643 619 { … … 682 658 683 659 #if YYDEBUG 684 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 660 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 661 YYRHS. */ 662 static const yytype_uint16 yyprhs[] = 663 { 664 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 665 17, 19, 21, 23, 25, 27, 29, 31, 34, 36, 666 38, 42, 46, 48, 55, 60, 64, 72, 76, 84, 667 87, 90, 98, 103, 105, 109, 110, 112, 114, 118, 668 120, 124, 132, 136, 144, 146, 148, 150, 153, 156, 669 159, 162, 165, 168, 173, 176, 181, 188, 190, 195, 670 200, 202, 204, 206, 208, 210, 212, 214, 219, 224, 671 226, 230, 234, 238, 240, 244, 248, 250, 254, 258, 672 260, 264, 268, 272, 276, 278, 282, 286, 288, 292, 673 294, 298, 300, 304, 306, 310, 312, 316, 318, 324, 674 329, 335, 337, 339, 343, 346, 347, 349, 351, 353, 675 355, 357, 359, 361, 363, 365, 367, 369, 371, 374, 676 380, 387, 395, 397, 401, 403, 407, 408, 410, 412, 677 414, 416, 418, 420, 422, 424, 426, 433, 438, 441, 678 449, 451, 455, 457, 460, 462, 465, 467, 470, 473, 679 479, 487, 493, 503, 509, 519, 521, 525, 527, 529, 680 533, 537, 540, 542, 545, 548, 549, 551, 554, 558, 681 559, 561, 564, 568, 572, 577, 578, 580, 582, 585, 682 591, 599, 606, 613, 618, 622, 627, 630, 634, 637, 683 641, 645, 649, 653, 659, 663, 667, 672, 674, 680, 684 687, 693, 700, 710, 721, 731, 742, 745, 747, 750, 685 753, 756, 758, 765, 774, 785, 798, 813, 814, 816, 686 817, 819, 821, 825, 830, 838, 839, 841, 845, 847, 687 851, 853, 855, 857, 861, 863, 865, 867, 871, 872, 688 874, 878, 883, 885, 889, 891, 893, 897, 901, 905, 689 909, 913, 916, 920, 927, 931, 935, 940, 942, 945, 690 948, 952, 958, 967, 975, 983, 989, 999, 1002, 1005, 691 1011, 1015, 1021, 1026, 1030, 1035, 1040, 1048, 1052, 1056, 692 1060, 1064, 1069, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 693 1090, 1092, 1093, 1095, 1097, 1100, 1102, 1104, 1106, 1108, 694 1110, 1112, 1114, 1115, 1121, 1123, 1126, 1130, 1132, 1135, 695 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 696 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 697 1177, 1179, 1182, 1185, 1189, 1193, 1195, 1199, 1201, 1204, 698 1207, 1210, 1215, 1220, 1225, 1230, 1232, 1235, 1238, 1242, 699 1244, 1247, 1250, 1252, 1255, 1258, 1262, 1264, 1267, 1270, 700 1272, 1274, 1279, 1282, 1283, 1290, 1298, 1301, 1304, 1307, 701 1308, 1311, 1314, 1318, 1321, 1325, 1327, 1330, 1334, 1337, 702 1340, 1345, 1346, 1348, 1351, 1354, 1356, 1357, 1359, 1362, 703 1365, 1371, 1374, 1375, 1383, 1386, 1391, 1392, 1395, 1396, 704 1398, 1400, 1402, 1408, 1414, 1420, 1422, 1428, 1434, 1444, 705 1446, 1452, 1453, 1455, 1457, 1463, 1465, 1467, 1473, 1479, 706 1481, 1485, 1489, 1494, 1496, 1498, 1500, 1502, 1505, 1507, 707 1511, 1515, 1517, 1520, 1522, 1526, 1528, 1530, 1532, 1534, 708 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1551, 1553, 1555, 709 1557, 1560, 1561, 1564, 1567, 1569, 1574, 1575, 1577, 1580, 710 1584, 1589, 1592, 1595, 1597, 1600, 1603, 1609, 1615, 1623, 711 1630, 1632, 1635, 1638, 1642, 1644, 1647, 1650, 1655, 1658, 712 1663, 1664, 1669, 1672, 1674, 1676, 1678, 1679, 1682, 1688, 713 1694, 1708, 1710, 1712, 1716, 1720, 1723, 1727, 1731, 1734, 714 1739, 1741, 1748, 1758, 1759, 1771, 1773, 1777, 1781, 1785, 715 1787, 1789, 1795, 1798, 1804, 1805, 1807, 1809, 1813, 1814, 716 1816, 1818, 1820, 1822, 1823, 1830, 1833, 1835, 1838, 1843, 717 1846, 1850, 1854, 1858, 1863, 1869, 1875, 1881, 1888, 1890, 718 1892, 1894, 1898, 1899, 1905, 1906, 1908, 1910, 1913, 1920, 719 1922, 1926, 1927, 1929, 1934, 1936, 1938, 1940, 1942, 1945, 720 1947, 1950, 1953, 1955, 1959, 1962, 1966, 1970, 1973, 1978, 721 1983, 1987, 1996, 2000, 2003, 2005, 2008, 2015, 2024, 2028, 722 2031, 2035, 2039, 2044, 2049, 2053, 2055, 2057, 2059, 2064, 723 2071, 2075, 2078, 2082, 2086, 2091, 2096, 2100, 2103, 2105, 724 2108, 2111, 2113, 2117, 2120, 2124, 2128, 2131, 2136, 2141, 725 2145, 2152, 2161, 2165, 2168, 2170, 2173, 2176, 2179, 2183, 726 2187, 2190, 2195, 2200, 2204, 2211, 2220, 2224, 2227, 2229, 727 2232, 2235, 2237, 2239, 2242, 2246, 2250, 2253, 2258, 2265, 728 2274, 2276, 2279, 2282, 2284, 2287, 2290, 2294, 2298, 2300, 729 2305, 2310, 2314, 2320, 2329, 2333, 2336, 2340, 2342, 2348, 730 2354, 2361, 2368, 2370, 2373, 2376, 2378, 2381, 2384, 2388, 731 2392, 2394, 2399, 2404, 2408, 2414, 2423, 2427, 2429, 2432, 732 2434, 2437, 2444, 2450, 2457, 2465, 2473, 2475, 2478, 2481, 733 2483, 2486, 2489, 2493, 2497, 2499, 2504, 2509, 2513, 2522, 734 2526, 2528, 2530, 2533, 2535, 2537, 2540, 2544, 2547, 2551, 735 2554, 2558, 2562, 2565, 2570, 2574, 2577, 2581, 2584, 2589, 736 2593, 2596, 2603, 2610, 2617, 2625, 2627, 2630, 2632, 2634, 737 2636, 2639, 2643, 2646, 2650, 2653, 2657, 2661, 2666, 2669, 738 2673, 2678, 2681, 2687, 2693, 2700, 2707, 2708, 2710, 2711 739 }; 740 741 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 742 static const yytype_int16 yyrhs[] = 743 { 744 301, 0, -1, -1, -1, 79, -1, 80, -1, 81, 745 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 746 -1, 72, -1, 140, -1, 83, -1, 84, -1, 82, 747 -1, 141, 82, -1, 72, -1, 140, -1, 109, 169, 748 110, -1, 109, 173, 110, -1, 142, -1, 143, 111, 749 134, 164, 135, 112, -1, 143, 109, 144, 110, -1, 750 143, 113, 139, -1, 143, 113, 111, 134, 146, 135, 751 112, -1, 143, 85, 139, -1, 143, 85, 111, 134, 752 146, 135, 112, -1, 143, 86, -1, 143, 87, -1, 753 109, 274, 110, 114, 278, 371, 115, -1, 143, 114, 754 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 755 164, -1, 147, -1, 146, 116, 147, -1, 139, -1, 756 139, 113, 147, -1, 139, 113, 111, 134, 146, 135, 757 112, -1, 139, 85, 147, -1, 139, 85, 111, 134, 758 146, 135, 112, -1, 143, -1, 136, -1, 141, -1, 759 40, 151, -1, 149, 151, -1, 150, 151, -1, 86, 760 148, -1, 87, 148, -1, 37, 148, -1, 37, 109, 761 274, 110, -1, 66, 148, -1, 66, 109, 274, 110, 762 -1, 38, 109, 274, 116, 139, 110, -1, 76, -1, 763 76, 109, 145, 110, -1, 76, 109, 275, 110, -1, 764 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 765 122, -1, 148, -1, 109, 274, 110, 151, -1, 109, 766 274, 110, 167, -1, 151, -1, 152, 117, 151, -1, 767 152, 123, 151, -1, 152, 124, 151, -1, 152, -1, 768 153, 119, 152, -1, 153, 120, 152, -1, 153, -1, 769 154, 88, 153, -1, 154, 89, 153, -1, 154, -1, 770 155, 125, 154, -1, 155, 126, 154, -1, 155, 90, 771 154, -1, 155, 91, 154, -1, 155, -1, 156, 92, 772 155, -1, 156, 93, 155, -1, 156, -1, 157, 118, 773 156, -1, 157, -1, 158, 127, 157, -1, 158, -1, 774 159, 128, 158, -1, 159, -1, 160, 94, 159, -1, 775 160, -1, 161, 95, 160, -1, 161, -1, 161, 129, 776 169, 130, 162, -1, 161, 129, 130, 162, -1, 161, 777 129, 169, 130, 167, -1, 162, -1, 162, -1, 148, 778 166, 164, -1, 167, 372, -1, -1, 164, -1, 131, 779 -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, 780 -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, 781 -1, 111, 112, -1, 111, 134, 164, 135, 112, -1, 782 111, 134, 116, 168, 135, 112, -1, 111, 134, 164, 783 116, 168, 135, 112, -1, 165, -1, 168, 116, 165, 784 -1, 164, -1, 169, 116, 164, -1, -1, 169, -1, 785 172, -1, 173, -1, 177, -1, 178, -1, 190, -1, 786 192, -1, 193, -1, 198, -1, 127, 143, 114, 144, 787 115, 132, -1, 72, 130, 311, 171, -1, 114, 115, 788 -1, 114, 134, 134, 209, 174, 135, 115, -1, 175, 789 -1, 174, 134, 175, -1, 212, -1, 40, 212, -1, 790 307, -1, 171, 135, -1, 171, -1, 176, 171, -1, 791 170, 132, -1, 41, 109, 169, 110, 171, -1, 41, 792 109, 169, 110, 171, 42, 171, -1, 43, 109, 169, 793 110, 183, -1, 43, 109, 169, 110, 114, 134, 205, 794 184, 115, -1, 53, 109, 169, 110, 183, -1, 53, 795 109, 169, 110, 114, 134, 205, 186, 115, -1, 163, 796 -1, 163, 96, 163, -1, 309, -1, 179, -1, 180, 797 116, 179, -1, 44, 180, 130, -1, 45, 130, -1, 798 181, -1, 182, 181, -1, 182, 171, -1, -1, 185, 799 -1, 182, 176, -1, 185, 182, 176, -1, -1, 187, 800 -1, 182, 189, -1, 182, 176, 188, -1, 187, 182, 801 189, -1, 187, 182, 176, 188, -1, -1, 189, -1, 802 56, -1, 56, 132, -1, 47, 109, 169, 110, 171, 803 -1, 46, 171, 47, 109, 169, 110, 132, -1, 48, 804 109, 134, 191, 110, 171, -1, 170, 135, 132, 170, 805 132, 170, -1, 212, 170, 132, 170, -1, 51, 72, 806 132, -1, 51, 117, 169, 132, -1, 50, 132, -1, 807 50, 72, 132, -1, 49, 132, -1, 49, 72, 132, 808 -1, 52, 170, 132, -1, 61, 165, 132, -1, 62, 809 165, 132, -1, 62, 165, 63, 164, 132, -1, 57, 810 173, 194, -1, 57, 173, 196, -1, 57, 173, 194, 811 196, -1, 195, -1, 58, 109, 96, 110, 173, -1, 812 195, 58, 109, 96, 110, 173, -1, 59, 109, 96, 813 110, 173, -1, 195, 59, 109, 96, 110, 173, -1, 814 58, 109, 134, 134, 197, 135, 110, 173, 135, -1, 815 195, 58, 109, 134, 134, 197, 135, 110, 173, 135, 816 -1, 59, 109, 134, 134, 197, 135, 110, 173, 135, 817 -1, 195, 59, 109, 134, 134, 197, 135, 110, 173, 818 135, -1, 60, 173, -1, 225, -1, 225, 308, -1, 819 225, 356, -1, 365, 139, -1, 365, -1, 64, 199, 820 109, 141, 110, 132, -1, 64, 199, 109, 141, 130, 821 200, 110, 132, -1, 64, 199, 109, 141, 130, 200, 822 130, 200, 110, 132, -1, 64, 199, 109, 141, 130, 823 200, 130, 200, 130, 203, 110, 132, -1, 64, 199, 824 51, 109, 141, 130, 130, 200, 130, 203, 130, 204, 825 110, 132, -1, -1, 11, -1, -1, 201, -1, 202, 826 -1, 201, 116, 202, -1, 141, 109, 163, 110, -1, 827 111, 163, 112, 141, 109, 163, 110, -1, -1, 141, 828 -1, 203, 116, 141, -1, 139, -1, 204, 116, 139, 829 -1, 135, -1, 206, -1, 212, -1, 206, 134, 212, 830 -1, 135, -1, 208, -1, 222, -1, 208, 134, 222, 831 -1, -1, 210, -1, 29, 211, 132, -1, 210, 29, 832 211, 132, -1, 273, -1, 211, 116, 273, -1, 213, 833 -1, 222, -1, 214, 135, 132, -1, 219, 135, 132, 834 -1, 216, 135, 132, -1, 292, 135, 132, -1, 295, 835 135, 132, -1, 215, 276, -1, 231, 215, 276, -1, 836 214, 135, 116, 134, 271, 276, -1, 366, 271, 310, 837 -1, 369, 271, 310, -1, 227, 369, 271, 310, -1, 838 217, -1, 227, 217, -1, 231, 217, -1, 231, 227, 839 217, -1, 216, 135, 116, 134, 271, -1, 111, 112, 840 271, 109, 134, 259, 135, 110, -1, 369, 271, 109, 841 134, 259, 135, 110, -1, 218, 271, 109, 134, 259, 842 135, 110, -1, 111, 134, 261, 135, 112, -1, 111, 843 134, 261, 135, 116, 134, 262, 135, 112, -1, 3, 844 215, -1, 3, 217, -1, 219, 135, 116, 134, 139, 845 -1, 3, 225, 308, -1, 220, 135, 116, 134, 308, 846 -1, 227, 3, 225, 308, -1, 225, 3, 308, -1, 847 225, 3, 227, 308, -1, 3, 139, 131, 164, -1, 848 221, 135, 116, 134, 139, 131, 164, -1, 223, 135, 849 132, -1, 220, 135, 132, -1, 221, 135, 132, -1, 850 239, 135, 132, -1, 224, 308, 310, 276, -1, 223, 851 116, 311, 308, 310, 276, -1, 235, -1, 239, -1, 852 241, -1, 282, -1, 236, -1, 240, -1, 242, -1, 853 283, -1, -1, 227, -1, 228, -1, 227, 228, -1, 854 229, -1, 313, -1, 10, -1, 12, -1, 11, -1, 855 14, -1, 67, -1, -1, 13, 109, 230, 285, 110, 856 -1, 232, -1, 227, 232, -1, 231, 227, 232, -1, 857 233, -1, 232, 233, -1, 5, -1, 7, -1, 4, 858 -1, 6, -1, 8, -1, 9, -1, 69, -1, 71, 859 -1, 16, -1, 21, -1, 20, -1, 18, -1, 19, 860 -1, 17, -1, 22, -1, 23, -1, 15, -1, 25, 861 -1, 26, -1, 27, -1, 24, -1, 236, -1, 231, 862 236, -1, 235, 233, -1, 235, 233, 227, -1, 235, 863 233, 236, -1, 237, -1, 226, 238, 226, -1, 234, 864 -1, 227, 234, -1, 237, 228, -1, 237, 234, -1, 865 28, 109, 275, 110, -1, 28, 109, 169, 110, -1, 866 78, 109, 275, 110, -1, 78, 109, 169, 110, -1, 867 240, -1, 231, 240, -1, 239, 233, -1, 239, 233, 868 227, -1, 243, -1, 227, 243, -1, 240, 228, -1, 869 242, -1, 231, 242, -1, 241, 233, -1, 241, 233, 870 227, -1, 74, -1, 227, 74, -1, 242, 228, -1, 871 244, -1, 255, -1, 246, 114, 247, 115, -1, 246, 872 273, -1, -1, 246, 273, 245, 114, 247, 115, -1, 873 246, 109, 291, 110, 114, 247, 115, -1, 246, 284, 874 -1, 31, 311, -1, 32, 311, -1, -1, 247, 248, 875 -1, 249, 132, -1, 40, 249, 132, -1, 250, 132, 876 -1, 40, 250, 132, -1, 365, -1, 365, 273, -1, 877 249, 116, 273, -1, 249, 116, -1, 225, 251, -1, 878 250, 116, 311, 251, -1, -1, 253, -1, 317, 252, 879 -1, 330, 252, -1, 356, -1, -1, 253, -1, 130, 880 163, -1, 30, 311, -1, 254, 114, 257, 371, 115, 881 -1, 254, 273, -1, -1, 254, 273, 256, 114, 257, 882 371, 115, -1, 273, 258, -1, 257, 116, 273, 258, 883 -1, -1, 131, 163, -1, -1, 260, -1, 262, -1, 884 261, -1, 261, 135, 116, 134, 262, -1, 262, 135, 885 116, 134, 96, -1, 261, 135, 116, 134, 96, -1, 886 266, -1, 262, 135, 116, 134, 266, -1, 261, 135, 887 116, 134, 266, -1, 261, 135, 116, 134, 262, 135, 888 116, 134, 266, -1, 267, -1, 262, 135, 116, 134, 889 267, -1, -1, 264, -1, 265, -1, 265, 135, 116, 890 134, 96, -1, 269, -1, 268, -1, 265, 135, 116, 891 134, 269, -1, 265, 135, 116, 134, 268, -1, 268, 892 -1, 361, 271, 372, -1, 369, 271, 372, -1, 227, 893 369, 271, 372, -1, 217, -1, 269, -1, 361, -1, 894 369, -1, 227, 369, -1, 370, -1, 224, 335, 372, 895 -1, 224, 339, 372, -1, 224, -1, 224, 350, -1, 896 139, -1, 270, 116, 139, -1, 137, -1, 74, -1, 897 75, -1, 138, -1, 74, -1, 75, -1, 139, -1, 898 74, -1, 75, -1, 365, -1, 225, -1, 225, 356, 899 -1, 365, -1, 370, -1, 225, -1, 225, 344, -1, 900 -1, 131, 277, -1, 107, 277, -1, 164, -1, 114, 901 278, 371, 115, -1, -1, 277, -1, 279, 277, -1, 902 278, 116, 277, -1, 278, 116, 279, 277, -1, 280, 903 130, -1, 273, 130, -1, 281, -1, 280, 281, -1, 904 113, 273, -1, 111, 134, 164, 135, 112, -1, 111, 905 134, 309, 135, 112, -1, 111, 134, 163, 96, 163, 906 135, 112, -1, 113, 111, 134, 146, 135, 112, -1, 907 283, -1, 231, 283, -1, 282, 233, -1, 282, 233, 908 227, -1, 284, -1, 227, 284, -1, 283, 228, -1, 909 75, 109, 291, 110, -1, 286, 372, -1, 285, 116, 910 286, 372, -1, -1, 288, 273, 287, 289, -1, 225, 911 335, -1, 33, -1, 35, -1, 34, -1, -1, 289, 912 290, -1, 128, 273, 109, 291, 110, -1, 128, 114, 913 134, 297, 115, -1, 128, 109, 134, 285, 135, 110, 914 114, 134, 297, 115, 109, 291, 110, -1, 275, -1, 915 164, -1, 291, 116, 275, -1, 291, 116, 164, -1, 916 33, 293, -1, 232, 33, 293, -1, 292, 116, 293, 917 -1, 294, 289, -1, 294, 289, 131, 275, -1, 273, 918 -1, 272, 109, 134, 285, 135, 110, -1, 36, 273, 919 109, 134, 285, 135, 110, 114, 115, -1, -1, 36, 920 273, 109, 134, 285, 135, 110, 114, 296, 297, 115, 921 -1, 298, -1, 297, 134, 298, -1, 299, 135, 132, 922 -1, 300, 135, 132, -1, 215, -1, 217, -1, 299, 923 135, 116, 134, 271, -1, 225, 308, -1, 300, 135, 924 116, 134, 308, -1, -1, 302, -1, 304, -1, 302, 925 134, 304, -1, -1, 302, -1, 212, -1, 306, -1, 926 198, -1, -1, 5, 82, 305, 114, 303, 115, -1, 927 40, 304, -1, 307, -1, 322, 173, -1, 326, 134, 928 207, 173, -1, 216, 173, -1, 224, 322, 173, -1, 929 227, 322, 173, -1, 231, 322, 173, -1, 231, 227, 930 322, 173, -1, 224, 326, 134, 207, 173, -1, 227, 931 326, 134, 207, 173, -1, 231, 326, 134, 207, 173, 932 -1, 231, 227, 326, 134, 207, 173, -1, 317, -1, 933 330, -1, 322, -1, 163, 122, 163, -1, -1, 64, 934 109, 141, 110, 311, -1, -1, 312, -1, 313, -1, 935 312, 313, -1, 39, 109, 109, 314, 110, 110, -1, 936 315, -1, 314, 116, 315, -1, -1, 316, -1, 316, 937 109, 170, 110, -1, 271, -1, 233, -1, 234, -1, 938 228, -1, 318, 311, -1, 319, -1, 320, 311, -1, 939 321, 311, -1, 137, -1, 109, 318, 110, -1, 149, 940 317, -1, 149, 227, 317, -1, 109, 319, 110, -1, 941 318, 348, -1, 109, 319, 110, 348, -1, 109, 320, 942 110, 349, -1, 109, 320, 110, -1, 109, 319, 110, 943 109, 134, 263, 135, 110, -1, 109, 321, 110, -1, 944 323, 311, -1, 324, -1, 325, 311, -1, 318, 109, 945 134, 263, 135, 110, -1, 109, 324, 110, 109, 134, 946 263, 135, 110, -1, 109, 323, 110, -1, 149, 322, 947 -1, 149, 227, 322, -1, 109, 324, 110, -1, 109, 948 324, 110, 348, -1, 109, 325, 110, 349, -1, 109, 949 325, 110, -1, 327, -1, 328, -1, 329, -1, 318, 950 109, 270, 110, -1, 109, 328, 110, 109, 270, 110, 951 -1, 109, 327, 110, -1, 149, 326, -1, 149, 227, 952 326, -1, 109, 328, 110, -1, 109, 328, 110, 348, 953 -1, 109, 329, 110, 349, -1, 109, 329, 110, -1, 954 331, 311, -1, 332, -1, 333, 311, -1, 334, 311, 955 -1, 340, -1, 109, 331, 110, -1, 149, 330, -1, 956 149, 227, 330, -1, 109, 332, 110, -1, 331, 348, 957 -1, 109, 332, 110, 348, -1, 109, 333, 110, 349, 958 -1, 109, 333, 110, -1, 331, 109, 134, 263, 135, 959 110, -1, 109, 332, 110, 109, 134, 263, 135, 110, 960 -1, 109, 334, 110, -1, 318, 311, -1, 336, -1, 961 337, 311, -1, 338, 311, -1, 149, 335, -1, 149, 962 227, 335, -1, 109, 336, 110, -1, 318, 354, -1, 963 109, 336, 110, 348, -1, 109, 337, 110, 349, -1, 964 109, 337, 110, -1, 318, 109, 134, 263, 135, 110, 965 -1, 109, 336, 110, 109, 134, 263, 135, 110, -1, 966 109, 338, 110, -1, 340, 311, -1, 341, -1, 342, 967 311, -1, 343, 311, -1, 74, -1, 75, -1, 149, 968 339, -1, 149, 227, 339, -1, 109, 341, 110, -1, 969 340, 354, -1, 109, 341, 110, 354, -1, 340, 109, 970 134, 263, 135, 110, -1, 109, 341, 110, 109, 134, 971 263, 135, 110, -1, 345, -1, 346, 311, -1, 347, 972 311, -1, 149, -1, 149, 227, -1, 149, 344, -1, 973 149, 227, 344, -1, 109, 345, 110, -1, 348, -1, 974 109, 345, 110, 348, -1, 109, 346, 110, 349, -1, 975 109, 346, 110, -1, 109, 134, 263, 135, 110, -1, 976 109, 345, 110, 109, 134, 263, 135, 110, -1, 109, 977 347, 110, -1, 111, 112, -1, 111, 112, 349, -1, 978 349, -1, 111, 134, 164, 135, 112, -1, 111, 134, 979 117, 135, 112, -1, 349, 111, 134, 164, 135, 112, 980 -1, 349, 111, 134, 117, 135, 112, -1, 351, -1, 981 352, 311, -1, 353, 311, -1, 149, -1, 149, 227, 982 -1, 149, 350, -1, 149, 227, 350, -1, 109, 351, 983 110, -1, 354, -1, 109, 351, 110, 354, -1, 109, 984 352, 110, 349, -1, 109, 352, 110, -1, 109, 134, 985 263, 135, 110, -1, 109, 351, 110, 109, 134, 263, 986 135, 110, -1, 109, 353, 110, -1, 355, -1, 355, 987 349, -1, 349, -1, 111, 112, -1, 111, 134, 227, 988 117, 135, 112, -1, 111, 134, 227, 135, 112, -1, 989 111, 134, 227, 164, 135, 112, -1, 111, 134, 7, 990 226, 164, 135, 112, -1, 111, 134, 227, 7, 164, 991 135, 112, -1, 357, -1, 358, 311, -1, 359, 311, 992 -1, 149, -1, 149, 227, -1, 149, 356, -1, 149, 993 227, 356, -1, 109, 357, 110, -1, 348, -1, 109, 994 357, 110, 348, -1, 109, 358, 110, 349, -1, 109, 995 358, 110, -1, 109, 357, 110, 109, 134, 263, 135, 996 110, -1, 109, 359, 110, -1, 361, -1, 369, -1, 997 227, 369, -1, 362, -1, 363, -1, 149, 225, -1, 998 227, 149, 225, -1, 149, 370, -1, 227, 149, 370, 999 -1, 149, 360, -1, 227, 149, 360, -1, 111, 112, 1000 225, -1, 364, 225, -1, 111, 112, 349, 225, -1, 1001 364, 349, 225, -1, 349, 225, -1, 111, 112, 362, 1002 -1, 364, 362, -1, 111, 112, 349, 362, -1, 364, 1003 349, 362, -1, 349, 362, -1, 111, 134, 227, 117, 1004 135, 112, -1, 111, 134, 227, 164, 135, 112, -1, 1005 111, 134, 231, 164, 135, 112, -1, 111, 134, 231, 1006 227, 164, 135, 112, -1, 369, -1, 227, 369, -1, 1007 366, -1, 367, -1, 368, -1, 149, 225, -1, 227, 1008 149, 225, -1, 149, 370, -1, 227, 149, 370, -1, 1009 149, 365, -1, 227, 149, 365, -1, 111, 112, 225, 1010 -1, 111, 112, 349, 225, -1, 349, 225, -1, 111, 1011 112, 367, -1, 111, 112, 349, 367, -1, 349, 367, 1012 -1, 111, 134, 262, 135, 112, -1, 111, 112, 109, 1013 259, 110, -1, 369, 109, 134, 259, 135, 110, -1, 1014 218, 109, 134, 259, 135, 110, -1, -1, 116, -1, 1015 -1, 131, 164, -1 1016 }; 1017 1018 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 685 1019 static const yytype_uint16 yyrline[] = 686 1020 { … … 763 1097 #endif 764 1098 765 #if YYDEBUG || YYERROR_VERBOSE || 01099 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 766 1100 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 767 1101 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 871 1205 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 872 1206 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 873 "comma_opt", "assignment_opt", YY_NULLPTR1207 "comma_opt", "assignment_opt", 0 874 1208 }; 875 1209 #endif 876 1210 877 1211 # ifdef YYPRINT 878 /* YYTOKNUM[ NUM] -- (External) token number corresponding to the879 (internal) symbol number NUM (which must be that of a token). */1212 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 1213 token YYLEX-NUM. */ 880 1214 static const yytype_uint16 yytoknum[] = 881 1215 { … … 897 1231 # endif 898 1232 1233 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1234 static const yytype_uint16 yyr1[] = 1235 { 1236 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 1237 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 1238 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 1239 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 1240 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 1241 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 1242 149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 1243 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 1244 155, 155, 155, 155, 156, 156, 156, 157, 157, 158, 1245 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 1246 162, 163, 164, 164, 164, 165, 165, 166, 166, 166, 1247 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 1248 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 1249 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, 1250 174, 174, 175, 175, 175, 175, 176, 176, 177, 178, 1251 178, 178, 178, 178, 178, 179, 179, 179, 180, 180, 1252 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 1253 186, 187, 187, 187, 187, 188, 188, 189, 189, 190, 1254 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 1255 192, 192, 192, 192, 193, 193, 193, 194, 194, 194, 1256 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, 1257 197, 197, 198, 198, 198, 198, 198, 199, 199, 200, 1258 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, 1259 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1260 210, 210, 211, 211, 212, 212, 213, 213, 213, 213, 1261 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 1262 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 1263 220, 220, 220, 220, 220, 221, 221, 222, 222, 222, 1264 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, 1265 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 1266 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 1267 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 1268 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 1269 235, 235, 235, 235, 235, 236, 236, 237, 237, 237, 1270 237, 238, 238, 238, 238, 239, 239, 239, 239, 240, 1271 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 1272 243, 244, 244, 245, 244, 244, 244, 246, 246, 247, 1273 247, 248, 248, 248, 248, 249, 249, 249, 249, 250, 1274 250, 251, 251, 251, 251, 251, 252, 252, 253, 254, 1275 255, 255, 256, 255, 257, 257, 258, 258, 259, 259, 1276 260, 260, 260, 260, 260, 261, 261, 261, 261, 262, 1277 262, 263, 263, 264, 264, 265, 265, 265, 265, 266, 1278 266, 266, 266, 266, 267, 267, 267, 267, 267, 268, 1279 268, 269, 269, 270, 270, 271, 271, 271, 272, 272, 1280 272, 273, 273, 273, 274, 274, 274, 275, 275, 275, 1281 275, 276, 276, 276, 277, 277, 278, 278, 278, 278, 1282 278, 279, 279, 280, 280, 281, 281, 281, 281, 281, 1283 282, 282, 282, 282, 283, 283, 283, 284, 285, 285, 1284 287, 286, 286, 288, 288, 288, 289, 289, 290, 290, 1285 290, 291, 291, 291, 291, 292, 292, 292, 293, 293, 1286 294, 294, 295, 296, 295, 297, 297, 298, 298, 299, 1287 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, 1288 304, 304, 304, 305, 304, 304, 306, 306, 306, 307, 1289 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 1290 308, 309, 310, 310, 311, 311, 312, 312, 313, 314, 1291 314, 315, 315, 315, 316, 316, 316, 316, 317, 317, 1292 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 1293 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 1294 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 1295 327, 328, 328, 328, 329, 329, 329, 330, 330, 330, 1296 330, 331, 331, 332, 332, 332, 333, 333, 333, 333, 1297 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 1298 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 1299 339, 340, 340, 341, 341, 341, 342, 342, 343, 343, 1300 344, 344, 344, 345, 345, 345, 345, 345, 346, 346, 1301 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 1302 349, 349, 350, 350, 350, 351, 351, 351, 351, 351, 1303 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 1304 355, 355, 355, 355, 355, 355, 356, 356, 356, 357, 1305 357, 357, 357, 357, 358, 358, 358, 358, 359, 359, 1306 360, 360, 360, 361, 361, 362, 362, 362, 362, 362, 1307 362, 363, 363, 363, 363, 363, 363, 363, 363, 363, 1308 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, 1309 367, 367, 367, 367, 367, 367, 368, 368, 368, 368, 1310 368, 368, 369, 370, 370, 370, 371, 371, 372, 372 1311 }; 1312 1313 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1314 static const yytype_uint8 yyr2[] = 1315 { 1316 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1317 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1318 3, 3, 1, 6, 4, 3, 7, 3, 7, 2, 1319 2, 7, 4, 1, 3, 0, 1, 1, 3, 1, 1320 3, 7, 3, 7, 1, 1, 1, 2, 2, 2, 1321 2, 2, 2, 4, 2, 4, 6, 1, 4, 4, 1322 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1323 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1324 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1325 3, 1, 3, 1, 3, 1, 3, 1, 5, 4, 1326 5, 1, 1, 3, 2, 0, 1, 1, 1, 1, 1327 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1328 6, 7, 1, 3, 1, 3, 0, 1, 1, 1, 1329 1, 1, 1, 1, 1, 1, 6, 4, 2, 7, 1330 1, 3, 1, 2, 1, 2, 1, 2, 2, 5, 1331 7, 5, 9, 5, 9, 1, 3, 1, 1, 3, 1332 3, 2, 1, 2, 2, 0, 1, 2, 3, 0, 1333 1, 2, 3, 3, 4, 0, 1, 1, 2, 5, 1334 7, 6, 6, 4, 3, 4, 2, 3, 2, 3, 1335 3, 3, 3, 5, 3, 3, 4, 1, 5, 6, 1336 5, 6, 9, 10, 9, 10, 2, 1, 2, 2, 1337 2, 1, 6, 8, 10, 12, 14, 0, 1, 0, 1338 1, 1, 3, 4, 7, 0, 1, 3, 1, 3, 1339 1, 1, 1, 3, 1, 1, 1, 3, 0, 1, 1340 3, 4, 1, 3, 1, 1, 3, 3, 3, 3, 1341 3, 2, 3, 6, 3, 3, 4, 1, 2, 2, 1342 3, 5, 8, 7, 7, 5, 9, 2, 2, 5, 1343 3, 5, 4, 3, 4, 4, 7, 3, 3, 3, 1344 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 1345 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1346 1, 1, 0, 5, 1, 2, 3, 1, 2, 1, 1347 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1348 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1349 1, 2, 2, 3, 3, 1, 3, 1, 2, 2, 1350 2, 4, 4, 4, 4, 1, 2, 2, 3, 1, 1351 2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 1352 1, 4, 2, 0, 6, 7, 2, 2, 2, 0, 1353 2, 2, 3, 2, 3, 1, 2, 3, 2, 2, 1354 4, 0, 1, 2, 2, 1, 0, 1, 2, 2, 1355 5, 2, 0, 7, 2, 4, 0, 2, 0, 1, 1356 1, 1, 5, 5, 5, 1, 5, 5, 9, 1, 1357 5, 0, 1, 1, 5, 1, 1, 5, 5, 1, 1358 3, 3, 4, 1, 1, 1, 1, 2, 1, 3, 1359 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1360 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1361 2, 0, 2, 2, 1, 4, 0, 1, 2, 3, 1362 4, 2, 2, 1, 2, 2, 5, 5, 7, 6, 1363 1, 2, 2, 3, 1, 2, 2, 4, 2, 4, 1364 0, 4, 2, 1, 1, 1, 0, 2, 5, 5, 1365 13, 1, 1, 3, 3, 2, 3, 3, 2, 4, 1366 1, 6, 9, 0, 11, 1, 3, 3, 3, 1, 1367 1, 5, 2, 5, 0, 1, 1, 3, 0, 1, 1368 1, 1, 1, 0, 6, 2, 1, 2, 4, 2, 1369 3, 3, 3, 4, 5, 5, 5, 6, 1, 1, 1370 1, 3, 0, 5, 0, 1, 1, 2, 6, 1, 1371 3, 0, 1, 4, 1, 1, 1, 1, 2, 1, 1372 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1373 3, 8, 3, 2, 1, 2, 6, 8, 3, 2, 1374 3, 3, 4, 4, 3, 1, 1, 1, 4, 6, 1375 3, 2, 3, 3, 4, 4, 3, 2, 1, 2, 1376 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 1377 6, 8, 3, 2, 1, 2, 2, 2, 3, 3, 1378 2, 4, 4, 3, 6, 8, 3, 2, 1, 2, 1379 2, 1, 1, 2, 3, 3, 2, 4, 6, 8, 1380 1, 2, 2, 1, 2, 2, 3, 3, 1, 4, 1381 4, 3, 5, 8, 3, 2, 3, 1, 5, 5, 1382 6, 6, 1, 2, 2, 1, 2, 2, 3, 3, 1383 1, 4, 4, 3, 5, 8, 3, 1, 2, 1, 1384 2, 6, 5, 6, 7, 7, 1, 2, 2, 1, 1385 2, 2, 3, 3, 1, 4, 4, 3, 8, 3, 1386 1, 1, 2, 1, 1, 2, 3, 2, 3, 2, 1387 3, 3, 2, 4, 3, 2, 3, 2, 4, 3, 1388 2, 6, 6, 6, 7, 1, 2, 1, 1, 1, 1389 2, 3, 2, 3, 2, 3, 3, 4, 2, 3, 1390 4, 2, 5, 5, 6, 6, 0, 1, 0, 2 1391 }; 1392 1393 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1394 Performed when YYTABLE doesn't specify something else to do. Zero 1395 means the default is an error. */ 1396 static const yytype_uint16 yydefact[] = 1397 { 1398 291, 291, 311, 309, 312, 310, 313, 314, 297, 299, 1399 298, 0, 300, 325, 317, 322, 320, 321, 319, 318, 1400 323, 324, 329, 326, 327, 328, 544, 544, 544, 0, 1401 0, 0, 291, 217, 301, 315, 316, 7, 356, 0, 1402 8, 14, 15, 0, 2, 60, 61, 562, 9, 291, 1403 522, 520, 244, 3, 451, 3, 257, 0, 3, 3, 1404 3, 245, 3, 0, 0, 0, 292, 293, 295, 291, 1405 304, 307, 337, 283, 330, 335, 284, 345, 285, 352, 1406 349, 359, 0, 0, 360, 286, 470, 474, 3, 3, 1407 0, 2, 516, 521, 526, 296, 0, 0, 544, 574, 1408 544, 2, 585, 586, 587, 291, 0, 728, 729, 0, 1409 12, 0, 13, 291, 267, 268, 0, 292, 287, 288, 1410 289, 290, 523, 302, 389, 545, 546, 367, 368, 12, 1411 442, 443, 11, 438, 441, 0, 500, 495, 486, 442, 1412 443, 0, 0, 525, 218, 0, 291, 0, 0, 0, 1413 0, 0, 0, 0, 0, 291, 291, 2, 0, 730, 1414 292, 579, 591, 734, 727, 725, 732, 0, 0, 0, 1415 251, 2, 0, 529, 436, 437, 435, 0, 0, 0, 1416 0, 544, 0, 631, 632, 0, 0, 542, 538, 544, 1417 559, 544, 544, 540, 2, 539, 544, 598, 544, 544, 1418 601, 0, 0, 0, 291, 291, 309, 357, 2, 291, 1419 258, 294, 305, 338, 350, 475, 0, 2, 0, 451, 1420 259, 292, 331, 346, 353, 471, 0, 2, 0, 308, 1421 332, 339, 340, 0, 347, 351, 354, 358, 443, 291, 1422 369, 362, 366, 0, 391, 472, 476, 0, 0, 0, 1423 1, 291, 2, 527, 573, 575, 291, 2, 738, 292, 1424 741, 542, 542, 0, 292, 0, 0, 270, 544, 540, 1425 2, 291, 0, 0, 291, 547, 2, 498, 2, 551, 1426 0, 0, 0, 0, 0, 0, 18, 57, 4, 5, 1427 6, 16, 0, 0, 291, 2, 62, 63, 64, 65, 1428 45, 19, 46, 22, 44, 66, 291, 0, 69, 73, 1429 76, 79, 84, 87, 89, 91, 93, 95, 97, 102, 1430 492, 748, 449, 491, 0, 447, 448, 0, 563, 578, 1431 581, 584, 590, 593, 596, 356, 0, 2, 736, 0, 1432 291, 739, 2, 60, 291, 3, 423, 0, 431, 292, 1433 291, 304, 330, 284, 345, 352, 3, 3, 405, 409, 1434 419, 424, 470, 291, 425, 703, 704, 291, 426, 428, 1435 291, 2, 580, 592, 726, 2, 2, 246, 2, 456, 1436 0, 454, 453, 452, 138, 2, 2, 248, 2, 2, 1437 247, 2, 278, 2, 279, 0, 277, 0, 0, 0, 1438 0, 0, 0, 0, 0, 0, 564, 603, 0, 451, 1439 2, 558, 567, 657, 560, 561, 530, 291, 2, 597, 1440 606, 599, 600, 0, 273, 291, 291, 336, 292, 0, 1441 292, 0, 291, 731, 735, 733, 531, 291, 542, 252, 1442 260, 306, 0, 2, 532, 291, 496, 333, 334, 280, 1443 348, 355, 0, 291, 0, 746, 396, 0, 473, 497, 1444 249, 250, 517, 291, 433, 0, 291, 234, 0, 2, 1445 236, 0, 292, 0, 254, 2, 255, 275, 0, 0, 1446 2, 291, 542, 291, 483, 485, 484, 0, 0, 748, 1447 0, 291, 0, 291, 487, 291, 557, 555, 556, 554, 1448 0, 549, 552, 0, 0, 291, 52, 291, 66, 47, 1449 291, 54, 291, 291, 50, 51, 2, 124, 0, 0, 1450 445, 0, 444, 725, 118, 291, 17, 0, 29, 30, 1451 35, 2, 0, 35, 108, 109, 110, 111, 112, 113, 1452 114, 115, 116, 117, 107, 0, 48, 49, 0, 0, 1453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1454 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 1455 643, 450, 640, 544, 544, 648, 477, 291, 2, 582, 1456 583, 0, 594, 595, 0, 2, 737, 740, 118, 291, 1457 0, 2, 705, 292, 709, 700, 701, 707, 0, 2, 1458 2, 665, 544, 748, 614, 544, 544, 748, 544, 628, 1459 544, 544, 679, 432, 662, 544, 544, 670, 677, 291, 1460 427, 292, 0, 0, 291, 715, 292, 720, 748, 712, 1461 291, 717, 748, 291, 291, 291, 0, 118, 0, 18, 1462 2, 0, 19, 0, 457, 746, 0, 0, 463, 238, 1463 0, 291, 0, 0, 0, 542, 566, 570, 572, 602, 1464 605, 609, 612, 565, 604, 0, 281, 655, 0, 291, 1465 274, 0, 0, 0, 0, 272, 2, 0, 256, 533, 1466 291, 0, 0, 291, 2, 361, 381, 370, 0, 0, 1467 375, 369, 747, 0, 0, 394, 0, 292, 3, 412, 1468 3, 416, 415, 588, 0, 528, 291, 60, 3, 291, 1469 431, 292, 3, 425, 426, 2, 0, 0, 0, 482, 1470 303, 291, 478, 480, 3, 2, 2, 0, 499, 3, 1471 0, 551, 126, 0, 0, 219, 0, 0, 0, 0, 1472 36, 0, 0, 118, 291, 20, 0, 21, 0, 689, 1473 694, 446, 686, 544, 544, 0, 105, 3, 2, 27, 1474 0, 33, 0, 2, 25, 0, 103, 70, 71, 72, 1475 74, 75, 77, 78, 82, 83, 80, 81, 85, 86, 1476 88, 90, 92, 94, 96, 0, 0, 749, 291, 0, 1477 0, 0, 644, 645, 641, 642, 494, 493, 291, 0, 1478 291, 711, 291, 716, 292, 291, 659, 291, 291, 702, 1479 658, 2, 291, 0, 0, 0, 0, 0, 0, 0, 1480 0, 680, 0, 666, 617, 633, 667, 2, 613, 620, 1481 429, 615, 616, 430, 2, 627, 636, 629, 630, 663, 1482 664, 678, 706, 710, 708, 748, 265, 2, 742, 2, 1483 420, 714, 719, 421, 0, 399, 3, 3, 3, 3, 1484 451, 3, 0, 2, 465, 462, 747, 0, 458, 2, 1485 461, 464, 0, 291, 239, 261, 3, 269, 271, 0, 1486 451, 2, 568, 569, 2, 607, 608, 0, 656, 534, 1487 3, 342, 341, 344, 343, 291, 535, 0, 536, 369, 1488 0, 0, 291, 291, 0, 0, 689, 379, 382, 386, 1489 544, 386, 385, 378, 371, 544, 373, 376, 291, 396, 1490 390, 101, 397, 746, 0, 0, 434, 237, 0, 0, 1491 3, 2, 665, 427, 0, 524, 0, 748, 486, 0, 1492 291, 291, 291, 0, 548, 550, 127, 0, 0, 212, 1493 0, 0, 0, 220, 221, 53, 0, 55, 58, 59, 1494 0, 2, 125, 0, 0, 0, 690, 691, 687, 688, 1495 456, 67, 68, 106, 122, 3, 105, 0, 0, 24, 1496 35, 3, 0, 32, 99, 0, 3, 647, 651, 654, 1497 646, 3, 589, 3, 713, 718, 2, 60, 291, 3, 1498 3, 292, 0, 3, 619, 623, 626, 635, 669, 673, 1499 676, 291, 3, 618, 634, 668, 291, 291, 422, 291, 1500 291, 743, 0, 0, 0, 0, 253, 0, 101, 0, 1501 3, 3, 0, 459, 0, 455, 0, 0, 242, 291, 1502 0, 0, 126, 0, 0, 0, 0, 0, 126, 0, 1503 0, 105, 105, 18, 2, 0, 0, 3, 128, 129, 1504 2, 140, 130, 131, 132, 133, 134, 135, 142, 144, 1505 0, 0, 0, 282, 291, 291, 544, 0, 537, 291, 1506 372, 374, 0, 388, 690, 383, 387, 384, 377, 381, 1507 364, 395, 0, 576, 2, 661, 660, 0, 666, 2, 1508 479, 481, 501, 3, 509, 510, 0, 2, 505, 3, 1509 3, 0, 0, 553, 219, 0, 0, 0, 219, 0, 1510 0, 118, 693, 697, 699, 692, 746, 105, 0, 3, 1511 658, 39, 3, 37, 34, 0, 3, 98, 100, 0, 1512 2, 649, 650, 0, 0, 291, 0, 0, 0, 3, 1513 635, 0, 2, 621, 622, 2, 637, 2, 671, 672, 1514 0, 0, 60, 0, 3, 3, 3, 3, 407, 406, 1515 410, 2, 2, 745, 744, 119, 0, 0, 0, 0, 1516 3, 460, 3, 0, 240, 143, 3, 292, 291, 0, 1517 0, 0, 0, 2, 0, 188, 0, 186, 0, 0, 1518 0, 0, 0, 0, 0, 544, 118, 0, 148, 145, 1519 291, 0, 0, 264, 276, 3, 3, 543, 610, 365, 1520 380, 393, 291, 263, 291, 0, 512, 489, 291, 0, 1521 0, 488, 503, 0, 0, 0, 213, 0, 222, 56, 1522 2, 695, 696, 0, 123, 120, 0, 0, 0, 0, 1523 0, 23, 0, 652, 291, 577, 262, 721, 722, 723, 1524 0, 674, 291, 291, 291, 3, 3, 0, 682, 0, 1525 0, 0, 0, 291, 291, 3, 541, 119, 467, 0, 1526 0, 243, 292, 0, 0, 0, 0, 291, 189, 187, 1527 184, 0, 190, 0, 0, 0, 0, 194, 197, 195, 1528 191, 0, 192, 126, 35, 141, 139, 241, 0, 0, 1529 414, 418, 417, 0, 506, 2, 507, 2, 508, 502, 1530 291, 225, 0, 223, 0, 225, 291, 31, 121, 2, 1531 42, 2, 40, 38, 28, 26, 3, 724, 3, 3, 1532 3, 0, 0, 681, 683, 624, 638, 266, 2, 404, 1533 3, 403, 0, 469, 466, 126, 0, 0, 126, 3, 1534 0, 126, 185, 0, 2, 2, 206, 196, 0, 0, 1535 0, 137, 0, 571, 611, 2, 0, 0, 2, 226, 1536 0, 0, 214, 0, 3, 0, 0, 0, 0, 0, 1537 0, 684, 685, 291, 0, 468, 149, 0, 0, 2, 1538 162, 126, 151, 0, 179, 0, 126, 0, 2, 153, 1539 0, 2, 0, 2, 2, 2, 193, 32, 291, 511, 1540 513, 504, 0, 0, 0, 0, 0, 3, 3, 653, 1541 625, 639, 675, 408, 126, 155, 158, 0, 157, 161, 1542 3, 164, 163, 0, 126, 181, 126, 3, 0, 291, 1543 0, 291, 0, 2, 0, 2, 136, 2, 227, 228, 1544 0, 224, 215, 698, 0, 0, 150, 0, 0, 160, 1545 230, 165, 2, 232, 180, 0, 183, 169, 198, 3, 1546 207, 211, 200, 3, 0, 291, 0, 291, 0, 0, 1547 0, 43, 41, 156, 159, 126, 0, 166, 291, 126, 1548 126, 0, 170, 0, 0, 689, 208, 209, 210, 0, 1549 199, 3, 201, 3, 291, 216, 229, 146, 167, 152, 1550 126, 233, 182, 177, 175, 171, 154, 126, 0, 690, 1551 0, 0, 0, 0, 147, 168, 178, 172, 176, 175, 1552 173, 3, 3, 0, 0, 490, 174, 202, 204, 3, 1553 3, 203, 205 1554 }; 1555 1556 /* YYDEFGOTO[NTERM-NUM]. */ 1557 static const yytype_int16 yydefgoto[] = 1558 { 1559 -1, 812, 467, 300, 47, 133, 134, 301, 302, 303, 1560 304, 760, 761, 1132, 1133, 305, 380, 307, 308, 309, 1561 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1562 1029, 517, 974, 545, 321, 975, 946, 1056, 1517, 1058, 1563 1059, 1060, 1061, 1518, 1062, 1063, 1436, 1437, 1400, 1401, 1564 1402, 1496, 1497, 1501, 1502, 1537, 1538, 1064, 1360, 1065, 1565 1066, 1297, 1298, 1299, 1479, 1067, 145, 952, 953, 954, 1566 1380, 1460, 1471, 1472, 468, 469, 873, 874, 1037, 51, 1567 52, 53, 54, 55, 346, 158, 58, 59, 60, 61, 1568 62, 348, 64, 65, 264, 67, 68, 274, 350, 351, 1569 71, 72, 73, 118, 75, 204, 353, 119, 78, 120, 1570 80, 81, 454, 82, 453, 687, 688, 689, 907, 1085, 1571 908, 83, 84, 457, 455, 695, 854, 855, 856, 857, 1572 698, 699, 700, 358, 359, 360, 361, 465, 339, 135, 1573 136, 521, 323, 170, 644, 645, 646, 647, 648, 85, 1574 121, 87, 488, 489, 938, 490, 277, 494, 324, 88, 1575 137, 138, 89, 1320, 1107, 1108, 1109, 1110, 90, 91, 1576 716, 92, 273, 93, 94, 187, 1031, 678, 411, 125, 1577 95, 500, 501, 502, 188, 268, 190, 191, 192, 269, 1578 98, 99, 100, 101, 102, 103, 104, 195, 196, 197, 1579 198, 199, 824, 604, 605, 606, 607, 200, 609, 610, 1580 611, 571, 572, 573, 574, 750, 105, 613, 614, 615, 1581 616, 617, 618, 967, 752, 753, 754, 594, 364, 365, 1582 366, 367, 325, 164, 107, 108, 109, 369, 693, 568 1583 }; 1584 1585 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1586 STATE-NUM. */ 899 1587 #define YYPACT_NINF -1317 900 901 #define yypact_value_is_default(Yystate) \902 (!!((Yystate) == (-1317)))903 904 #define YYTABLE_NINF -520905 906 #define yytable_value_is_error(Yytable_value) \907 0908 909 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing910 STATE-NUM. */911 1588 static const yytype_int16 yypact[] = 912 1589 { … … 1069 1746 }; 1070 1747 1071 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1072 Performed when YYTABLE does not specify something else to do. Zero 1073 means the default is an error. */ 1074 static const yytype_uint16 yydefact[] = 1075 { 1076 291, 291, 311, 309, 312, 310, 313, 314, 297, 299, 1077 298, 0, 300, 325, 317, 322, 320, 321, 319, 318, 1078 323, 324, 329, 326, 327, 328, 544, 544, 544, 0, 1079 0, 0, 291, 217, 301, 315, 316, 7, 356, 0, 1080 8, 14, 15, 0, 2, 60, 61, 562, 9, 291, 1081 522, 520, 244, 3, 451, 3, 257, 0, 3, 3, 1082 3, 245, 3, 0, 0, 0, 292, 293, 295, 291, 1083 304, 307, 337, 283, 330, 335, 284, 345, 285, 352, 1084 349, 359, 0, 0, 360, 286, 470, 474, 3, 3, 1085 0, 2, 516, 521, 526, 296, 0, 0, 544, 574, 1086 544, 2, 585, 586, 587, 291, 0, 728, 729, 0, 1087 12, 0, 13, 291, 267, 268, 0, 292, 287, 288, 1088 289, 290, 523, 302, 389, 545, 546, 367, 368, 12, 1089 442, 443, 11, 438, 441, 0, 500, 495, 486, 442, 1090 443, 0, 0, 525, 218, 0, 291, 0, 0, 0, 1091 0, 0, 0, 0, 0, 291, 291, 2, 0, 730, 1092 292, 579, 591, 734, 727, 725, 732, 0, 0, 0, 1093 251, 2, 0, 529, 436, 437, 435, 0, 0, 0, 1094 0, 544, 0, 631, 632, 0, 0, 542, 538, 544, 1095 559, 544, 544, 540, 2, 539, 544, 598, 544, 544, 1096 601, 0, 0, 0, 291, 291, 309, 357, 2, 291, 1097 258, 294, 305, 338, 350, 475, 0, 2, 0, 451, 1098 259, 292, 331, 346, 353, 471, 0, 2, 0, 308, 1099 332, 339, 340, 0, 347, 351, 354, 358, 443, 291, 1100 369, 362, 366, 0, 391, 472, 476, 0, 0, 0, 1101 1, 291, 2, 527, 573, 575, 291, 2, 738, 292, 1102 741, 542, 542, 0, 292, 0, 0, 270, 544, 540, 1103 2, 291, 0, 0, 291, 547, 2, 498, 2, 551, 1104 0, 0, 0, 0, 0, 0, 18, 57, 4, 5, 1105 6, 16, 0, 0, 291, 2, 62, 63, 64, 65, 1106 45, 19, 46, 22, 44, 66, 291, 0, 69, 73, 1107 76, 79, 84, 87, 89, 91, 93, 95, 97, 102, 1108 492, 748, 449, 491, 0, 447, 448, 0, 563, 578, 1109 581, 584, 590, 593, 596, 356, 0, 2, 736, 0, 1110 291, 739, 2, 60, 291, 3, 423, 0, 431, 292, 1111 291, 304, 330, 284, 345, 352, 3, 3, 405, 409, 1112 419, 424, 470, 291, 425, 703, 704, 291, 426, 428, 1113 291, 2, 580, 592, 726, 2, 2, 246, 2, 456, 1114 0, 454, 453, 452, 138, 2, 2, 248, 2, 2, 1115 247, 2, 278, 2, 279, 0, 277, 0, 0, 0, 1116 0, 0, 0, 0, 0, 0, 564, 603, 0, 451, 1117 2, 558, 567, 657, 560, 561, 530, 291, 2, 597, 1118 606, 599, 600, 0, 273, 291, 291, 336, 292, 0, 1119 292, 0, 291, 731, 735, 733, 531, 291, 542, 252, 1120 260, 306, 0, 2, 532, 291, 496, 333, 334, 280, 1121 348, 355, 0, 291, 0, 746, 396, 0, 473, 497, 1122 249, 250, 517, 291, 433, 0, 291, 234, 0, 2, 1123 236, 0, 292, 0, 254, 2, 255, 275, 0, 0, 1124 2, 291, 542, 291, 483, 485, 484, 0, 0, 748, 1125 0, 291, 0, 291, 487, 291, 557, 555, 556, 554, 1126 0, 549, 552, 0, 0, 291, 52, 291, 66, 47, 1127 291, 54, 291, 291, 50, 51, 2, 124, 0, 0, 1128 445, 0, 444, 725, 118, 291, 17, 0, 29, 30, 1129 35, 2, 0, 35, 108, 109, 110, 111, 112, 113, 1130 114, 115, 116, 117, 107, 0, 48, 49, 0, 0, 1131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 1133 643, 450, 640, 544, 544, 648, 477, 291, 2, 582, 1134 583, 0, 594, 595, 0, 2, 737, 740, 118, 291, 1135 0, 2, 705, 292, 709, 700, 701, 707, 0, 2, 1136 2, 665, 544, 748, 614, 544, 544, 748, 544, 628, 1137 544, 544, 679, 432, 662, 544, 544, 670, 677, 291, 1138 427, 292, 0, 0, 291, 715, 292, 720, 748, 712, 1139 291, 717, 748, 291, 291, 291, 0, 118, 0, 18, 1140 2, 0, 19, 0, 457, 746, 0, 0, 463, 238, 1141 0, 291, 0, 0, 0, 542, 566, 570, 572, 602, 1142 605, 609, 612, 565, 604, 0, 281, 655, 0, 291, 1143 274, 0, 0, 0, 0, 272, 2, 0, 256, 533, 1144 291, 0, 0, 291, 2, 361, 381, 370, 0, 0, 1145 375, 369, 747, 0, 0, 394, 0, 292, 3, 412, 1146 3, 416, 415, 588, 0, 528, 291, 60, 3, 291, 1147 431, 292, 3, 425, 426, 2, 0, 0, 0, 482, 1148 303, 291, 478, 480, 3, 2, 2, 0, 499, 3, 1149 0, 551, 126, 0, 0, 219, 0, 0, 0, 0, 1150 36, 0, 0, 118, 291, 20, 0, 21, 0, 689, 1151 694, 446, 686, 544, 544, 0, 105, 3, 2, 27, 1152 0, 33, 0, 2, 25, 0, 103, 70, 71, 72, 1153 74, 75, 77, 78, 82, 83, 80, 81, 85, 86, 1154 88, 90, 92, 94, 96, 0, 0, 749, 291, 0, 1155 0, 0, 644, 645, 641, 642, 494, 493, 291, 0, 1156 291, 711, 291, 716, 292, 291, 659, 291, 291, 702, 1157 658, 2, 291, 0, 0, 0, 0, 0, 0, 0, 1158 0, 680, 0, 666, 617, 633, 667, 2, 613, 620, 1159 429, 615, 616, 430, 2, 627, 636, 629, 630, 663, 1160 664, 678, 706, 710, 708, 748, 265, 2, 742, 2, 1161 420, 714, 719, 421, 0, 399, 3, 3, 3, 3, 1162 451, 3, 0, 2, 465, 462, 747, 0, 458, 2, 1163 461, 464, 0, 291, 239, 261, 3, 269, 271, 0, 1164 451, 2, 568, 569, 2, 607, 608, 0, 656, 534, 1165 3, 342, 341, 344, 343, 291, 535, 0, 536, 369, 1166 0, 0, 291, 291, 0, 0, 689, 379, 382, 386, 1167 544, 386, 385, 378, 371, 544, 373, 376, 291, 396, 1168 390, 101, 397, 746, 0, 0, 434, 237, 0, 0, 1169 3, 2, 665, 427, 0, 524, 0, 748, 486, 0, 1170 291, 291, 291, 0, 548, 550, 127, 0, 0, 212, 1171 0, 0, 0, 220, 221, 53, 0, 55, 58, 59, 1172 0, 2, 125, 0, 0, 0, 690, 691, 687, 688, 1173 456, 67, 68, 106, 122, 3, 105, 0, 0, 24, 1174 35, 3, 0, 32, 99, 0, 3, 647, 651, 654, 1175 646, 3, 589, 3, 713, 718, 2, 60, 291, 3, 1176 3, 292, 0, 3, 619, 623, 626, 635, 669, 673, 1177 676, 291, 3, 618, 634, 668, 291, 291, 422, 291, 1178 291, 743, 0, 0, 0, 0, 253, 0, 101, 0, 1179 3, 3, 0, 459, 0, 455, 0, 0, 242, 291, 1180 0, 0, 126, 0, 0, 0, 0, 0, 126, 0, 1181 0, 105, 105, 18, 2, 0, 0, 3, 128, 129, 1182 2, 140, 130, 131, 132, 133, 134, 135, 142, 144, 1183 0, 0, 0, 282, 291, 291, 544, 0, 537, 291, 1184 372, 374, 0, 388, 690, 383, 387, 384, 377, 381, 1185 364, 395, 0, 576, 2, 661, 660, 0, 666, 2, 1186 479, 481, 501, 3, 509, 510, 0, 2, 505, 3, 1187 3, 0, 0, 553, 219, 0, 0, 0, 219, 0, 1188 0, 118, 693, 697, 699, 692, 746, 105, 0, 3, 1189 658, 39, 3, 37, 34, 0, 3, 98, 100, 0, 1190 2, 649, 650, 0, 0, 291, 0, 0, 0, 3, 1191 635, 0, 2, 621, 622, 2, 637, 2, 671, 672, 1192 0, 0, 60, 0, 3, 3, 3, 3, 407, 406, 1193 410, 2, 2, 745, 744, 119, 0, 0, 0, 0, 1194 3, 460, 3, 0, 240, 143, 3, 292, 291, 0, 1195 0, 0, 0, 2, 0, 188, 0, 186, 0, 0, 1196 0, 0, 0, 0, 0, 544, 118, 0, 148, 145, 1197 291, 0, 0, 264, 276, 3, 3, 543, 610, 365, 1198 380, 393, 291, 263, 291, 0, 512, 489, 291, 0, 1199 0, 488, 503, 0, 0, 0, 213, 0, 222, 56, 1200 2, 695, 696, 0, 123, 120, 0, 0, 0, 0, 1201 0, 23, 0, 652, 291, 577, 262, 721, 722, 723, 1202 0, 674, 291, 291, 291, 3, 3, 0, 682, 0, 1203 0, 0, 0, 291, 291, 3, 541, 119, 467, 0, 1204 0, 243, 292, 0, 0, 0, 0, 291, 189, 187, 1205 184, 0, 190, 0, 0, 0, 0, 194, 197, 195, 1206 191, 0, 192, 126, 35, 141, 139, 241, 0, 0, 1207 414, 418, 417, 0, 506, 2, 507, 2, 508, 502, 1208 291, 225, 0, 223, 0, 225, 291, 31, 121, 2, 1209 42, 2, 40, 38, 28, 26, 3, 724, 3, 3, 1210 3, 0, 0, 681, 683, 624, 638, 266, 2, 404, 1211 3, 403, 0, 469, 466, 126, 0, 0, 126, 3, 1212 0, 126, 185, 0, 2, 2, 206, 196, 0, 0, 1213 0, 137, 0, 571, 611, 2, 0, 0, 2, 226, 1214 0, 0, 214, 0, 3, 0, 0, 0, 0, 0, 1215 0, 684, 685, 291, 0, 468, 149, 0, 0, 2, 1216 162, 126, 151, 0, 179, 0, 126, 0, 2, 153, 1217 0, 2, 0, 2, 2, 2, 193, 32, 291, 511, 1218 513, 504, 0, 0, 0, 0, 0, 3, 3, 653, 1219 625, 639, 675, 408, 126, 155, 158, 0, 157, 161, 1220 3, 164, 163, 0, 126, 181, 126, 3, 0, 291, 1221 0, 291, 0, 2, 0, 2, 136, 2, 227, 228, 1222 0, 224, 215, 698, 0, 0, 150, 0, 0, 160, 1223 230, 165, 2, 232, 180, 0, 183, 169, 198, 3, 1224 207, 211, 200, 3, 0, 291, 0, 291, 0, 0, 1225 0, 43, 41, 156, 159, 126, 0, 166, 291, 126, 1226 126, 0, 170, 0, 0, 689, 208, 209, 210, 0, 1227 199, 3, 201, 3, 291, 216, 229, 146, 167, 152, 1228 126, 233, 182, 177, 175, 171, 154, 126, 0, 690, 1229 0, 0, 0, 0, 147, 168, 178, 172, 176, 175, 1230 173, 3, 3, 0, 0, 490, 174, 202, 204, 3, 1231 3, 203, 205 1232 }; 1233 1234 /* YYPGOTO[NTERM-NUM]. */ 1748 /* YYPGOTO[NTERM-NUM]. */ 1235 1749 static const yytype_int16 yypgoto[] = 1236 1750 { … … 1261 1775 }; 1262 1776 1263 /* YYDEFGOTO[NTERM-NUM]. */ 1264 static const yytype_int16 yydefgoto[] = 1265 { 1266 -1, 812, 467, 300, 47, 133, 134, 301, 302, 303, 1267 304, 760, 761, 1132, 1133, 305, 380, 307, 308, 309, 1268 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1269 1029, 517, 974, 545, 321, 975, 946, 1056, 1517, 1058, 1270 1059, 1060, 1061, 1518, 1062, 1063, 1436, 1437, 1400, 1401, 1271 1402, 1496, 1497, 1501, 1502, 1537, 1538, 1064, 1360, 1065, 1272 1066, 1297, 1298, 1299, 1479, 1067, 145, 952, 953, 954, 1273 1380, 1460, 1471, 1472, 468, 469, 873, 874, 1037, 51, 1274 52, 53, 54, 55, 346, 158, 58, 59, 60, 61, 1275 62, 348, 64, 65, 264, 67, 68, 274, 350, 351, 1276 71, 72, 73, 118, 75, 204, 353, 119, 78, 120, 1277 80, 81, 454, 82, 453, 687, 688, 689, 907, 1085, 1278 908, 83, 84, 457, 455, 695, 854, 855, 856, 857, 1279 698, 699, 700, 358, 359, 360, 361, 465, 339, 135, 1280 136, 521, 323, 170, 644, 645, 646, 647, 648, 85, 1281 121, 87, 488, 489, 938, 490, 277, 494, 324, 88, 1282 137, 138, 89, 1320, 1107, 1108, 1109, 1110, 90, 91, 1283 716, 92, 273, 93, 94, 187, 1031, 678, 411, 125, 1284 95, 500, 501, 502, 188, 268, 190, 191, 192, 269, 1285 98, 99, 100, 101, 102, 103, 104, 195, 196, 197, 1286 198, 199, 824, 604, 605, 606, 607, 200, 609, 610, 1287 611, 571, 572, 573, 574, 750, 105, 613, 614, 615, 1288 616, 617, 618, 967, 752, 753, 754, 594, 364, 365, 1289 366, 367, 325, 164, 107, 108, 109, 369, 693, 568 1290 }; 1291 1292 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1293 positive, shift that token. If negative, reduce the rule whose 1294 number is the opposite. If YYTABLE_NINF, syntax error. */ 1777 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1778 positive, shift that token. If negative, reduce the rule which 1779 number is the opposite. If YYTABLE_NINF, syntax error. */ 1780 #define YYTABLE_NINF -520 1295 1781 static const yytype_int16 yytable[] = 1296 1782 { … … 2395 2881 }; 2396 2882 2883 #define yypact_value_is_default(yystate) \ 2884 ((yystate) == (-1317)) 2885 2886 #define yytable_value_is_error(yytable_value) \ 2887 YYID (0) 2888 2397 2889 static const yytype_int16 yycheck[] = 2398 2890 { … … 3497 3989 }; 3498 3990 3499 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing3500 symbol of state STATE-NUM. */3991 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3992 symbol of state STATE-NUM. */ 3501 3993 static const yytype_uint16 yystos[] = 3502 3994 { … … 3659 4151 }; 3660 4152 3661 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3662 static const yytype_uint16 yyr1[] = 3663 { 3664 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 3665 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 3666 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 3667 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 3668 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 3669 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 3670 149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 3671 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 3672 155, 155, 155, 155, 156, 156, 156, 157, 157, 158, 3673 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 3674 162, 163, 164, 164, 164, 165, 165, 166, 166, 166, 3675 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 3676 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 3677 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, 3678 174, 174, 175, 175, 175, 175, 176, 176, 177, 178, 3679 178, 178, 178, 178, 178, 179, 179, 179, 180, 180, 3680 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 3681 186, 187, 187, 187, 187, 188, 188, 189, 189, 190, 3682 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 3683 192, 192, 192, 192, 193, 193, 193, 194, 194, 194, 3684 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, 3685 197, 197, 198, 198, 198, 198, 198, 199, 199, 200, 3686 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, 3687 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 3688 210, 210, 211, 211, 212, 212, 213, 213, 213, 213, 3689 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 3690 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 3691 220, 220, 220, 220, 220, 221, 221, 222, 222, 222, 3692 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, 3693 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 3694 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 3695 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 3696 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 3697 235, 235, 235, 235, 235, 236, 236, 237, 237, 237, 3698 237, 238, 238, 238, 238, 239, 239, 239, 239, 240, 3699 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 3700 243, 244, 244, 245, 244, 244, 244, 246, 246, 247, 3701 247, 248, 248, 248, 248, 249, 249, 249, 249, 250, 3702 250, 251, 251, 251, 251, 251, 252, 252, 253, 254, 3703 255, 255, 256, 255, 257, 257, 258, 258, 259, 259, 3704 260, 260, 260, 260, 260, 261, 261, 261, 261, 262, 3705 262, 263, 263, 264, 264, 265, 265, 265, 265, 266, 3706 266, 266, 266, 266, 267, 267, 267, 267, 267, 268, 3707 268, 269, 269, 270, 270, 271, 271, 271, 272, 272, 3708 272, 273, 273, 273, 274, 274, 274, 275, 275, 275, 3709 275, 276, 276, 276, 277, 277, 278, 278, 278, 278, 3710 278, 279, 279, 280, 280, 281, 281, 281, 281, 281, 3711 282, 282, 282, 282, 283, 283, 283, 284, 285, 285, 3712 287, 286, 286, 288, 288, 288, 289, 289, 290, 290, 3713 290, 291, 291, 291, 291, 292, 292, 292, 293, 293, 3714 294, 294, 295, 296, 295, 297, 297, 298, 298, 299, 3715 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, 3716 304, 304, 304, 305, 304, 304, 306, 306, 306, 307, 3717 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 3718 308, 309, 310, 310, 311, 311, 312, 312, 313, 314, 3719 314, 315, 315, 315, 316, 316, 316, 316, 317, 317, 3720 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 3721 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 3722 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 3723 327, 328, 328, 328, 329, 329, 329, 330, 330, 330, 3724 330, 331, 331, 332, 332, 332, 333, 333, 333, 333, 3725 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 3726 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 3727 339, 340, 340, 341, 341, 341, 342, 342, 343, 343, 3728 344, 344, 344, 345, 345, 345, 345, 345, 346, 346, 3729 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 3730 349, 349, 350, 350, 350, 351, 351, 351, 351, 351, 3731 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 3732 355, 355, 355, 355, 355, 355, 356, 356, 356, 357, 3733 357, 357, 357, 357, 358, 358, 358, 358, 359, 359, 3734 360, 360, 360, 361, 361, 362, 362, 362, 362, 362, 3735 362, 363, 363, 363, 363, 363, 363, 363, 363, 363, 3736 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, 3737 367, 367, 367, 367, 367, 367, 368, 368, 368, 368, 3738 368, 368, 369, 370, 370, 370, 371, 371, 372, 372 3739 }; 3740 3741 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3742 static const yytype_uint8 yyr2[] = 3743 { 3744 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3745 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3746 3, 3, 1, 6, 4, 3, 7, 3, 7, 2, 3747 2, 7, 4, 1, 3, 0, 1, 1, 3, 1, 3748 3, 7, 3, 7, 1, 1, 1, 2, 2, 2, 3749 2, 2, 2, 4, 2, 4, 6, 1, 4, 4, 3750 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 3751 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3752 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3753 3, 1, 3, 1, 3, 1, 3, 1, 5, 4, 3754 5, 1, 1, 3, 2, 0, 1, 1, 1, 1, 3755 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 3756 6, 7, 1, 3, 1, 3, 0, 1, 1, 1, 3757 1, 1, 1, 1, 1, 1, 6, 4, 2, 7, 3758 1, 3, 1, 2, 1, 2, 1, 2, 2, 5, 3759 7, 5, 9, 5, 9, 1, 3, 1, 1, 3, 3760 3, 2, 1, 2, 2, 0, 1, 2, 3, 0, 3761 1, 2, 3, 3, 4, 0, 1, 1, 2, 5, 3762 7, 6, 6, 4, 3, 4, 2, 3, 2, 3, 3763 3, 3, 3, 5, 3, 3, 4, 1, 5, 6, 3764 5, 6, 9, 10, 9, 10, 2, 1, 2, 2, 3765 2, 1, 6, 8, 10, 12, 14, 0, 1, 0, 3766 1, 1, 3, 4, 7, 0, 1, 3, 1, 3, 3767 1, 1, 1, 3, 1, 1, 1, 3, 0, 1, 3768 3, 4, 1, 3, 1, 1, 3, 3, 3, 3, 3769 3, 2, 3, 6, 3, 3, 4, 1, 2, 2, 3770 3, 5, 8, 7, 7, 5, 9, 2, 2, 5, 3771 3, 5, 4, 3, 4, 4, 7, 3, 3, 3, 3772 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 3773 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 3774 1, 1, 0, 5, 1, 2, 3, 1, 2, 1, 3775 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3776 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3777 1, 2, 2, 3, 3, 1, 3, 1, 2, 2, 3778 2, 4, 4, 4, 4, 1, 2, 2, 3, 1, 3779 2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 3780 1, 4, 2, 0, 6, 7, 2, 2, 2, 0, 3781 2, 2, 3, 2, 3, 1, 2, 3, 2, 2, 3782 4, 0, 1, 2, 2, 1, 0, 1, 2, 2, 3783 5, 2, 0, 7, 2, 4, 0, 2, 0, 1, 3784 1, 1, 5, 5, 5, 1, 5, 5, 9, 1, 3785 5, 0, 1, 1, 5, 1, 1, 5, 5, 1, 3786 3, 3, 4, 1, 1, 1, 1, 2, 1, 3, 3787 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 3788 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3789 2, 0, 2, 2, 1, 4, 0, 1, 2, 3, 3790 4, 2, 2, 1, 2, 2, 5, 5, 7, 6, 3791 1, 2, 2, 3, 1, 2, 2, 4, 2, 4, 3792 0, 4, 2, 1, 1, 1, 0, 2, 5, 5, 3793 13, 1, 1, 3, 3, 2, 3, 3, 2, 4, 3794 1, 6, 9, 0, 11, 1, 3, 3, 3, 1, 3795 1, 5, 2, 5, 0, 1, 1, 3, 0, 1, 3796 1, 1, 1, 0, 6, 2, 1, 2, 4, 2, 3797 3, 3, 3, 4, 5, 5, 5, 6, 1, 1, 3798 1, 3, 0, 5, 0, 1, 1, 2, 6, 1, 3799 3, 0, 1, 4, 1, 1, 1, 1, 2, 1, 3800 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 3801 3, 8, 3, 2, 1, 2, 6, 8, 3, 2, 3802 3, 3, 4, 4, 3, 1, 1, 1, 4, 6, 3803 3, 2, 3, 3, 4, 4, 3, 2, 1, 2, 3804 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 3805 6, 8, 3, 2, 1, 2, 2, 2, 3, 3, 3806 2, 4, 4, 3, 6, 8, 3, 2, 1, 2, 3807 2, 1, 1, 2, 3, 3, 2, 4, 6, 8, 3808 1, 2, 2, 1, 2, 2, 3, 3, 1, 4, 3809 4, 3, 5, 8, 3, 2, 3, 1, 5, 5, 3810 6, 6, 1, 2, 2, 1, 2, 2, 3, 3, 3811 1, 4, 4, 3, 5, 8, 3, 1, 2, 1, 3812 2, 6, 5, 6, 7, 7, 1, 2, 2, 1, 3813 2, 2, 3, 3, 1, 4, 4, 3, 8, 3, 3814 1, 1, 2, 1, 1, 2, 3, 2, 3, 2, 3815 3, 3, 2, 4, 3, 2, 3, 2, 4, 3, 3816 2, 6, 6, 6, 7, 1, 2, 1, 1, 1, 3817 2, 3, 2, 3, 2, 3, 3, 4, 2, 3, 3818 4, 2, 5, 5, 6, 6, 0, 1, 0, 2 3819 }; 3820 3821 3822 #define yyerrok (yyerrstatus = 0) 3823 #define yyclearin (yychar = YYEMPTY) 3824 #define YYEMPTY (-2) 3825 #define YYEOF 0 3826 3827 #define YYACCEPT goto yyacceptlab 3828 #define YYABORT goto yyabortlab 3829 #define YYERROR goto yyerrorlab 3830 4153 #define yyerrok (yyerrstatus = 0) 4154 #define yyclearin (yychar = YYEMPTY) 4155 #define YYEMPTY (-2) 4156 #define YYEOF 0 4157 4158 #define YYACCEPT goto yyacceptlab 4159 #define YYABORT goto yyabortlab 4160 #define YYERROR goto yyerrorlab 4161 4162 4163 /* Like YYERROR except do call yyerror. This remains here temporarily 4164 to ease the transition to the new meaning of YYERROR, for GCC. 4165 Once GCC version 2 has supplanted version 1, this can go. However, 4166 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4167 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4168 discussed. */ 4169 4170 #define YYFAIL goto yyerrlab 4171 #if defined YYFAIL 4172 /* This is here to suppress warnings from the GCC cpp's 4173 -Wunused-macros. Normally we don't worry about that warning, but 4174 some users do, and we want to make it easy for users to remove 4175 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4176 #endif 3831 4177 3832 4178 #define YYRECOVERING() (!!yyerrstatus) 3833 4179 3834 #define YYBACKUP(Token, Value) \ 3835 do \ 3836 if (yychar == YYEMPTY) \ 3837 { \ 3838 yychar = (Token); \ 3839 yylval = (Value); \ 3840 YYPOPSTACK (yylen); \ 3841 yystate = *yyssp; \ 3842 goto yybackup; \ 3843 } \ 3844 else \ 3845 { \ 4180 #define YYBACKUP(Token, Value) \ 4181 do \ 4182 if (yychar == YYEMPTY && yylen == 1) \ 4183 { \ 4184 yychar = (Token); \ 4185 yylval = (Value); \ 4186 YYPOPSTACK (1); \ 4187 goto yybackup; \ 4188 } \ 4189 else \ 4190 { \ 3846 4191 yyerror (YY_("syntax error: cannot back up")); \ 3847 YYERROR; \ 3848 } \ 3849 while (0) 3850 3851 /* Error token number */ 3852 #define YYTERROR 1 3853 #define YYERRCODE 256 3854 3855 4192 YYERROR; \ 4193 } \ 4194 while (YYID (0)) 4195 4196 4197 #define YYTERROR 1 4198 #define YYERRCODE 256 4199 4200 4201 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4202 If N is 0, then set CURRENT to the empty location which ends 4203 the previous symbol: RHS[0] (always defined). */ 4204 4205 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4206 #ifndef YYLLOC_DEFAULT 4207 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4208 do \ 4209 if (YYID (N)) \ 4210 { \ 4211 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4212 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4213 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4214 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4215 } \ 4216 else \ 4217 { \ 4218 (Current).first_line = (Current).last_line = \ 4219 YYRHSLOC (Rhs, 0).last_line; \ 4220 (Current).first_column = (Current).last_column = \ 4221 YYRHSLOC (Rhs, 0).last_column; \ 4222 } \ 4223 while (YYID (0)) 4224 #endif 4225 4226 4227 /* This macro is provided for backward compatibility. */ 4228 4229 #ifndef YY_LOCATION_PRINT 4230 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4231 #endif 4232 4233 4234 /* YYLEX -- calling `yylex' with the right arguments. */ 4235 4236 #ifdef YYLEX_PARAM 4237 # define YYLEX yylex (YYLEX_PARAM) 4238 #else 4239 # define YYLEX yylex () 4240 #endif 3856 4241 3857 4242 /* Enable debugging if requested. */ … … 3863 4248 # endif 3864 4249 3865 # define YYDPRINTF(Args) \ 3866 do { \ 3867 if (yydebug) \ 3868 YYFPRINTF Args; \ 3869 } while (0) 3870 3871 /* This macro is provided for backward compatibility. */ 3872 #ifndef YY_LOCATION_PRINT 3873 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3874 #endif 3875 3876 3877 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3878 do { \ 3879 if (yydebug) \ 3880 { \ 3881 YYFPRINTF (stderr, "%s ", Title); \ 3882 yy_symbol_print (stderr, \ 3883 Type, Value); \ 3884 YYFPRINTF (stderr, "\n"); \ 3885 } \ 3886 } while (0) 3887 3888 3889 /*----------------------------------------. 3890 | Print this symbol's value on YYOUTPUT. | 3891 `----------------------------------------*/ 3892 4250 # define YYDPRINTF(Args) \ 4251 do { \ 4252 if (yydebug) \ 4253 YYFPRINTF Args; \ 4254 } while (YYID (0)) 4255 4256 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4257 do { \ 4258 if (yydebug) \ 4259 { \ 4260 YYFPRINTF (stderr, "%s ", Title); \ 4261 yy_symbol_print (stderr, \ 4262 Type, Value); \ 4263 YYFPRINTF (stderr, "\n"); \ 4264 } \ 4265 } while (YYID (0)) 4266 4267 4268 /*--------------------------------. 4269 | Print this symbol on YYOUTPUT. | 4270 `--------------------------------*/ 4271 4272 /*ARGSUSED*/ 4273 #if (defined __STDC__ || defined __C99__FUNC__ \ 4274 || defined __cplusplus || defined _MSC_VER) 3893 4275 static void 3894 4276 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4277 #else 4278 static void 4279 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 4280 FILE *yyoutput; 4281 int yytype; 4282 YYSTYPE const * const yyvaluep; 4283 #endif 3895 4284 { 3896 FILE *yyo = yyoutput;3897 YYUSE (yyo);3898 4285 if (!yyvaluep) 3899 4286 return; … … 3901 4288 if (yytype < YYNTOKENS) 3902 4289 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4290 # else 4291 YYUSE (yyoutput); 3903 4292 # endif 3904 YYUSE (yytype); 4293 switch (yytype) 4294 { 4295 default: 4296 break; 4297 } 3905 4298 } 3906 4299 … … 3910 4303 `--------------------------------*/ 3911 4304 4305 #if (defined __STDC__ || defined __C99__FUNC__ \ 4306 || defined __cplusplus || defined _MSC_VER) 3912 4307 static void 3913 4308 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4309 #else 4310 static void 4311 yy_symbol_print (yyoutput, yytype, yyvaluep) 4312 FILE *yyoutput; 4313 int yytype; 4314 YYSTYPE const * const yyvaluep; 4315 #endif 3914 4316 { 3915 YYFPRINTF (yyoutput, "%s %s (", 3916 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4317 if (yytype < YYNTOKENS) 4318 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4319 else 4320 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3917 4321 3918 4322 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 3925 4329 `------------------------------------------------------------------*/ 3926 4330 4331 #if (defined __STDC__ || defined __C99__FUNC__ \ 4332 || defined __cplusplus || defined _MSC_VER) 3927 4333 static void 3928 4334 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4335 #else 4336 static void 4337 yy_stack_print (yybottom, yytop) 4338 yytype_int16 *yybottom; 4339 yytype_int16 *yytop; 4340 #endif 3929 4341 { 3930 4342 YYFPRINTF (stderr, "Stack now"); … … 3937 4349 } 3938 4350 3939 # define YY_STACK_PRINT(Bottom, Top) \3940 do { \3941 if (yydebug) \3942 yy_stack_print ((Bottom), (Top)); \3943 } while ( 0)4351 # define YY_STACK_PRINT(Bottom, Top) \ 4352 do { \ 4353 if (yydebug) \ 4354 yy_stack_print ((Bottom), (Top)); \ 4355 } while (YYID (0)) 3944 4356 3945 4357 … … 3948 4360 `------------------------------------------------*/ 3949 4361 4362 #if (defined __STDC__ || defined __C99__FUNC__ \ 4363 || defined __cplusplus || defined _MSC_VER) 3950 4364 static void 3951 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4365 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4366 #else 4367 static void 4368 yy_reduce_print (yyvsp, yyrule) 4369 YYSTYPE *yyvsp; 4370 int yyrule; 4371 #endif 3952 4372 { 3953 unsigned long int yylno = yyrline[yyrule];3954 4373 int yynrhs = yyr2[yyrule]; 3955 4374 int yyi; 4375 unsigned long int yylno = yyrline[yyrule]; 3956 4376 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 3957 yyrule - 1, yylno);4377 yyrule - 1, yylno); 3958 4378 /* The symbols being reduced. */ 3959 4379 for (yyi = 0; yyi < yynrhs; yyi++) 3960 4380 { 3961 4381 YYFPRINTF (stderr, " $%d = ", yyi + 1); 3962 yy_symbol_print (stderr, 3963 yystos[yyssp[yyi + 1 - yynrhs]], 3964 &(yyvsp[(yyi + 1) - (yynrhs)]) 3965 ); 4382 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4383 &(yyvsp[(yyi + 1) - (yynrhs)]) 4384 ); 3966 4385 YYFPRINTF (stderr, "\n"); 3967 4386 } 3968 4387 } 3969 4388 3970 # define YY_REDUCE_PRINT(Rule) \3971 do { \3972 if (yydebug) \3973 yy_reduce_print (yy ssp, yyvsp, Rule); \3974 } while ( 0)4389 # define YY_REDUCE_PRINT(Rule) \ 4390 do { \ 4391 if (yydebug) \ 4392 yy_reduce_print (yyvsp, Rule); \ 4393 } while (YYID (0)) 3975 4394 3976 4395 /* Nonzero means print parse trace. It is left uninitialized so that … … 3986 4405 3987 4406 /* YYINITDEPTH -- initial size of the parser's stacks. */ 3988 #ifndef YYINITDEPTH4407 #ifndef YYINITDEPTH 3989 4408 # define YYINITDEPTH 200 3990 4409 #endif … … 4009 4428 # else 4010 4429 /* Return the length of YYSTR. */ 4430 #if (defined __STDC__ || defined __C99__FUNC__ \ 4431 || defined __cplusplus || defined _MSC_VER) 4011 4432 static YYSIZE_T 4012 4433 yystrlen (const char *yystr) 4434 #else 4435 static YYSIZE_T 4436 yystrlen (yystr) 4437 const char *yystr; 4438 #endif 4013 4439 { 4014 4440 YYSIZE_T yylen; … … 4026 4452 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4027 4453 YYDEST. */ 4454 #if (defined __STDC__ || defined __C99__FUNC__ \ 4455 || defined __cplusplus || defined _MSC_VER) 4028 4456 static char * 4029 4457 yystpcpy (char *yydest, const char *yysrc) 4458 #else 4459 static char * 4460 yystpcpy (yydest, yysrc) 4461 char *yydest; 4462 const char *yysrc; 4463 #endif 4030 4464 { 4031 4465 char *yyd = yydest; … … 4057 4491 4058 4492 for (;;) 4059 switch (*++yyp)4060 {4061 case '\'':4062 case ',':4063 goto do_not_strip_quotes;4064 4065 case '\\':4066 if (*++yyp != '\\')4067 goto do_not_strip_quotes;4068 /* Fall through. */4069 default:4070 if (yyres)4071 yyres[yyn] = *yyp;4072 yyn++;4073 break;4074 4075 case '"':4076 if (yyres)4077 yyres[yyn] = '\0';4078 return yyn;4079 }4493 switch (*++yyp) 4494 { 4495 case '\'': 4496 case ',': 4497 goto do_not_strip_quotes; 4498 4499 case '\\': 4500 if (*++yyp != '\\') 4501 goto do_not_strip_quotes; 4502 /* Fall through. */ 4503 default: 4504 if (yyres) 4505 yyres[yyn] = *yyp; 4506 yyn++; 4507 break; 4508 4509 case '"': 4510 if (yyres) 4511 yyres[yyn] = '\0'; 4512 return yyn; 4513 } 4080 4514 do_not_strip_quotes: ; 4081 4515 } … … 4100 4534 yytype_int16 *yyssp, int yytoken) 4101 4535 { 4102 YYSIZE_T yysize0 = yytnamerr ( YY_NULLPTR, yytname[yytoken]);4536 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); 4103 4537 YYSIZE_T yysize = yysize0; 4538 YYSIZE_T yysize1; 4104 4539 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4105 4540 /* Internationalized format string. */ 4106 const char *yyformat = YY_NULLPTR;4541 const char *yyformat = 0; 4107 4542 /* Arguments of yyformat. */ 4108 4543 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4112 4547 4113 4548 /* There are many possibilities here to consider: 4549 - Assume YYFAIL is not used. It's too flawed to consider. See 4550 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 4551 for details. YYERROR is fine as it does not invoke this 4552 function. 4114 4553 - If this state is a consistent state with a default action, then 4115 4554 the only way this function was invoked is if the default action … … 4160 4599 } 4161 4600 yyarg[yycount++] = yytname[yyx]; 4162 { 4163 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4164 if (! (yysize <= yysize1 4165 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4166 return 2; 4167 yysize = yysize1; 4168 } 4601 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4602 if (! (yysize <= yysize1 4603 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4604 return 2; 4605 yysize = yysize1; 4169 4606 } 4170 4607 } … … 4186 4623 } 4187 4624 4188 { 4189 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4190 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4191 return 2; 4192 yysize = yysize1; 4193 } 4625 yysize1 = yysize + yystrlen (yyformat); 4626 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4627 return 2; 4628 yysize = yysize1; 4194 4629 4195 4630 if (*yymsg_alloc < yysize) … … 4228 4663 `-----------------------------------------------*/ 4229 4664 4665 /*ARGSUSED*/ 4666 #if (defined __STDC__ || defined __C99__FUNC__ \ 4667 || defined __cplusplus || defined _MSC_VER) 4230 4668 static void 4231 4669 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4670 #else 4671 static void 4672 yydestruct (yymsg, yytype, yyvaluep) 4673 const char *yymsg; 4674 int yytype; 4675 YYSTYPE *yyvaluep; 4676 #endif 4232 4677 { 4233 4678 YYUSE (yyvaluep); 4679 4234 4680 if (!yymsg) 4235 4681 yymsg = "Deleting"; 4236 4682 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4237 4683 4238 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4239 YYUSE (yytype); 4240 YY_IGNORE_MAYBE_UNINITIALIZED_END 4684 switch (yytype) 4685 { 4686 4687 default: 4688 break; 4689 } 4241 4690 } 4242 4691 4243 4692 4693 /* Prevent warnings from -Wmissing-prototypes. */ 4694 #ifdef YYPARSE_PARAM 4695 #if defined __STDC__ || defined __cplusplus 4696 int yyparse (void *YYPARSE_PARAM); 4697 #else 4698 int yyparse (); 4699 #endif 4700 #else /* ! YYPARSE_PARAM */ 4701 #if defined __STDC__ || defined __cplusplus 4702 int yyparse (void); 4703 #else 4704 int yyparse (); 4705 #endif 4706 #endif /* ! YYPARSE_PARAM */ 4244 4707 4245 4708 … … 4249 4712 /* The semantic value of the lookahead symbol. */ 4250 4713 YYSTYPE yylval; 4714 4251 4715 /* Number of syntax errors so far. */ 4252 4716 int yynerrs; … … 4257 4721 `----------*/ 4258 4722 4723 #ifdef YYPARSE_PARAM 4724 #if (defined __STDC__ || defined __C99__FUNC__ \ 4725 || defined __cplusplus || defined _MSC_VER) 4726 int 4727 yyparse (void *YYPARSE_PARAM) 4728 #else 4729 int 4730 yyparse (YYPARSE_PARAM) 4731 void *YYPARSE_PARAM; 4732 #endif 4733 #else /* ! YYPARSE_PARAM */ 4734 #if (defined __STDC__ || defined __C99__FUNC__ \ 4735 || defined __cplusplus || defined _MSC_VER) 4259 4736 int 4260 4737 yyparse (void) 4738 #else 4739 int 4740 yyparse () 4741 4742 #endif 4743 #endif 4261 4744 { 4262 4745 int yystate; … … 4265 4748 4266 4749 /* The stacks and their tools: 4267 'yyss': related to states.4268 'yyvs': related to semantic values.4269 4270 Refer to the stacks thr oughseparate pointers, to allow yyoverflow4750 `yyss': related to states. 4751 `yyvs': related to semantic values. 4752 4753 Refer to the stacks thru separate pointers, to allow yyoverflow 4271 4754 to reallocate them elsewhere. */ 4272 4755 … … 4286 4769 int yyresult; 4287 4770 /* Lookahead token as an internal (translated) token number. */ 4288 int yytoken = 0;4771 int yytoken; 4289 4772 /* The variables used to return semantic value and location from the 4290 4773 action routines. */ … … 4304 4787 int yylen = 0; 4305 4788 4306 yyssp = yyss = yyssa; 4307 yyvsp = yyvs = yyvsa; 4789 yytoken = 0; 4790 yyss = yyssa; 4791 yyvs = yyvsa; 4308 4792 yystacksize = YYINITDEPTH; 4309 4793 … … 4314 4798 yynerrs = 0; 4315 4799 yychar = YYEMPTY; /* Cause a token to be read. */ 4800 4801 /* Initialize stack pointers. 4802 Waste one element of value and location stack 4803 so that they stay on the same level as the state stack. 4804 The wasted elements are never initialized. */ 4805 yyssp = yyss; 4806 yyvsp = yyvs; 4807 4316 4808 goto yysetstate; 4317 4809 … … 4334 4826 #ifdef yyoverflow 4335 4827 { 4336 /* Give user a chance to reallocate the stack. Use copies of4337 these so that the &'s don't force the real ones into4338 memory. */4339 YYSTYPE *yyvs1 = yyvs;4340 yytype_int16 *yyss1 = yyss;4341 4342 /* Each stack pointer address is followed by the size of the4343 data in use in that stack, in bytes. This used to be a4344 conditional around just the two extra args, but that might4345 be undefined if yyoverflow is a macro. */4346 yyoverflow (YY_("memory exhausted"),4347 &yyss1, yysize * sizeof (*yyssp),4348 &yyvs1, yysize * sizeof (*yyvsp),4349 &yystacksize);4350 4351 yyss = yyss1;4352 yyvs = yyvs1;4828 /* Give user a chance to reallocate the stack. Use copies of 4829 these so that the &'s don't force the real ones into 4830 memory. */ 4831 YYSTYPE *yyvs1 = yyvs; 4832 yytype_int16 *yyss1 = yyss; 4833 4834 /* Each stack pointer address is followed by the size of the 4835 data in use in that stack, in bytes. This used to be a 4836 conditional around just the two extra args, but that might 4837 be undefined if yyoverflow is a macro. */ 4838 yyoverflow (YY_("memory exhausted"), 4839 &yyss1, yysize * sizeof (*yyssp), 4840 &yyvs1, yysize * sizeof (*yyvsp), 4841 &yystacksize); 4842 4843 yyss = yyss1; 4844 yyvs = yyvs1; 4353 4845 } 4354 4846 #else /* no yyoverflow */ … … 4358 4850 /* Extend the stack our own way. */ 4359 4851 if (YYMAXDEPTH <= yystacksize) 4360 goto yyexhaustedlab;4852 goto yyexhaustedlab; 4361 4853 yystacksize *= 2; 4362 4854 if (YYMAXDEPTH < yystacksize) 4363 yystacksize = YYMAXDEPTH;4855 yystacksize = YYMAXDEPTH; 4364 4856 4365 4857 { 4366 yytype_int16 *yyss1 = yyss;4367 union yyalloc *yyptr =4368 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));4369 if (! yyptr)4370 goto yyexhaustedlab;4371 YYSTACK_RELOCATE (yyss_alloc, yyss);4372 YYSTACK_RELOCATE (yyvs_alloc, yyvs);4858 yytype_int16 *yyss1 = yyss; 4859 union yyalloc *yyptr = 4860 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4861 if (! yyptr) 4862 goto yyexhaustedlab; 4863 YYSTACK_RELOCATE (yyss_alloc, yyss); 4864 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4373 4865 # undef YYSTACK_RELOCATE 4374 if (yyss1 != yyssa)4375 YYSTACK_FREE (yyss1);4866 if (yyss1 != yyssa) 4867 YYSTACK_FREE (yyss1); 4376 4868 } 4377 4869 # endif … … 4382 4874 4383 4875 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4384 (unsigned long int) yystacksize));4876 (unsigned long int) yystacksize)); 4385 4877 4386 4878 if (yyss + yystacksize - 1 <= yyssp) 4387 YYABORT;4879 YYABORT; 4388 4880 } 4389 4881 … … 4414 4906 { 4415 4907 YYDPRINTF ((stderr, "Reading a token: ")); 4416 yychar = yylex ();4908 yychar = YYLEX; 4417 4909 } 4418 4910 … … 4454 4946 4455 4947 yystate = yyn; 4456 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN4457 4948 *++yyvsp = yylval; 4458 YY_IGNORE_MAYBE_UNINITIALIZED_END4459 4949 4460 4950 goto yynewstate; … … 4479 4969 4480 4970 /* If YYLEN is nonzero, implement the default value of the action: 4481 '$$ = $1'.4971 `$$ = $1'. 4482 4972 4483 4973 Otherwise, the following line sets YYVAL to garbage. … … 4493 4983 { 4494 4984 case 2: 4495 #line 298 "parser.yy" /* yacc.c:1646 */ 4985 4986 /* Line 1806 of yacc.c */ 4987 #line 298 "parser.yy" 4496 4988 { 4497 4989 typedefTable.enterScope(); 4498 4990 } 4499 #line 4500 "Parser/parser.cc" /* yacc.c:1646 */4500 4991 break; 4501 4992 4502 4993 case 3: 4503 #line 304 "parser.yy" /* yacc.c:1646 */ 4994 4995 /* Line 1806 of yacc.c */ 4996 #line 304 "parser.yy" 4504 4997 { 4505 4998 typedefTable.leaveScope(); 4506 4999 } 4507 #line 4508 "Parser/parser.cc" /* yacc.c:1646 */4508 5000 break; 4509 5001 4510 5002 case 4: 4511 #line 313 "parser.yy" /* yacc.c:1646 */ 4512 { (yyval.en) = new ExpressionNode( build_constantInteger( assign_strptr((yyvsp[0].tok)) ) ); } 4513 #line 4514 "Parser/parser.cc" /* yacc.c:1646 */ 5003 5004 /* Line 1806 of yacc.c */ 5005 #line 313 "parser.yy" 5006 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4514 5007 break; 4515 5008 4516 5009 case 5: 4517 #line 314 "parser.yy" /* yacc.c:1646 */ 4518 { (yyval.en) = new ExpressionNode( build_constantFloat( assign_strptr((yyvsp[0].tok)) ) ); } 4519 #line 4520 "Parser/parser.cc" /* yacc.c:1646 */ 5010 5011 /* Line 1806 of yacc.c */ 5012 #line 314 "parser.yy" 5013 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4520 5014 break; 4521 5015 4522 5016 case 6: 4523 #line 315 "parser.yy" /* yacc.c:1646 */ 4524 { (yyval.en) = new ExpressionNode( build_constantChar( assign_strptr((yyvsp[0].tok)) ) ); } 4525 #line 4526 "Parser/parser.cc" /* yacc.c:1646 */ 5017 5018 /* Line 1806 of yacc.c */ 5019 #line 315 "parser.yy" 5020 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4526 5021 break; 4527 5022 4528 5023 case 16: 4529 #line 340 "parser.yy" /* yacc.c:1646 */ 4530 { (yyval.constant) = build_constantStr( assign_strptr((yyvsp[0].tok)) ); } 4531 #line 4532 "Parser/parser.cc" /* yacc.c:1646 */ 5024 5025 /* Line 1806 of yacc.c */ 5026 #line 340 "parser.yy" 5027 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); } 4532 5028 break; 4533 5029 4534 5030 case 17: 4535 #line 342 "parser.yy" /* yacc.c:1646 */ 5031 5032 /* Line 1806 of yacc.c */ 5033 #line 342 "parser.yy" 4536 5034 { 4537 appendStr( (yyvsp[ -1].constant)->get_constant()->get_value(), (yyvsp[0].tok) );4538 delete (yyvsp[ 0].tok); // allocated by lexer4539 (yyval.constant) = (yyvsp[ -1].constant);5035 appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) ); 5036 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5037 (yyval.constant) = (yyvsp[(1) - (2)].constant); 4540 5038 } 4541 #line 4542 "Parser/parser.cc" /* yacc.c:1646 */4542 5039 break; 4543 5040 4544 5041 case 18: 4545 #line 353 "parser.yy" /* yacc.c:1646 */ 4546 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4547 #line 4548 "Parser/parser.cc" /* yacc.c:1646 */ 5042 5043 /* Line 1806 of yacc.c */ 5044 #line 353 "parser.yy" 5045 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4548 5046 break; 4549 5047 4550 5048 case 19: 4551 #line 355 "parser.yy" /* yacc.c:1646 */ 4552 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4553 #line 4554 "Parser/parser.cc" /* yacc.c:1646 */ 5049 5050 /* Line 1806 of yacc.c */ 5051 #line 355 "parser.yy" 5052 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4554 5053 break; 4555 5054 4556 5055 case 20: 4557 #line 357 "parser.yy" /* yacc.c:1646 */ 4558 { (yyval.en) = (yyvsp[-1].en); } 4559 #line 4560 "Parser/parser.cc" /* yacc.c:1646 */ 5056 5057 /* Line 1806 of yacc.c */ 5058 #line 357 "parser.yy" 5059 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4560 5060 break; 4561 5061 4562 5062 case 21: 4563 #line 359 "parser.yy" /* yacc.c:1646 */ 4564 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4565 #line 4566 "Parser/parser.cc" /* yacc.c:1646 */ 5063 5064 /* Line 1806 of yacc.c */ 5065 #line 359 "parser.yy" 5066 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4566 5067 break; 4567 5068 4568 5069 case 23: 4569 #line 369 "parser.yy" /* yacc.c:1646 */ 4570 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4571 #line 4572 "Parser/parser.cc" /* yacc.c:1646 */ 5070 5071 /* Line 1806 of yacc.c */ 5072 #line 369 "parser.yy" 5073 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4572 5074 break; 4573 5075 4574 5076 case 24: 4575 #line 371 "parser.yy" /* yacc.c:1646 */ 4576 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4577 #line 4578 "Parser/parser.cc" /* yacc.c:1646 */ 5077 5078 /* Line 1806 of yacc.c */ 5079 #line 371 "parser.yy" 5080 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4578 5081 break; 4579 5082 4580 5083 case 25: 4581 #line 375 "parser.yy" /* yacc.c:1646 */ 4582 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4583 #line 4584 "Parser/parser.cc" /* yacc.c:1646 */ 5084 5085 /* Line 1806 of yacc.c */ 5086 #line 375 "parser.yy" 5087 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4584 5088 break; 4585 5089 4586 5090 case 27: 4587 #line 378 "parser.yy" /* yacc.c:1646 */ 4588 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4589 #line 4590 "Parser/parser.cc" /* yacc.c:1646 */ 5091 5092 /* Line 1806 of yacc.c */ 5093 #line 378 "parser.yy" 5094 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4590 5095 break; 4591 5096 4592 5097 case 29: 4593 #line 381 "parser.yy" /* yacc.c:1646 */ 4594 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4595 #line 4596 "Parser/parser.cc" /* yacc.c:1646 */ 5098 5099 /* Line 1806 of yacc.c */ 5100 #line 381 "parser.yy" 5101 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4596 5102 break; 4597 5103 4598 5104 case 30: 4599 #line 383 "parser.yy" /* yacc.c:1646 */ 4600 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4601 #line 4602 "Parser/parser.cc" /* yacc.c:1646 */ 5105 5106 /* Line 1806 of yacc.c */ 5107 #line 383 "parser.yy" 5108 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4602 5109 break; 4603 5110 4604 5111 case 31: 4605 #line 385 "parser.yy" /* yacc.c:1646 */ 4606 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4607 #line 4608 "Parser/parser.cc" /* yacc.c:1646 */ 5112 5113 /* Line 1806 of yacc.c */ 5114 #line 385 "parser.yy" 5115 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4608 5116 break; 4609 5117 4610 5118 case 32: 4611 #line 387 "parser.yy" /* yacc.c:1646 */ 5119 5120 /* Line 1806 of yacc.c */ 5121 #line 387 "parser.yy" 4612 5122 { 4613 5123 Token fn; 4614 5124 fn.str = new std::string( "?{}" ); // location undefined 4615 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ -3].en) )->set_last( (yyvsp[-1].en) ) ) );5125 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ); 4616 5126 } 4617 #line 4618 "Parser/parser.cc" /* yacc.c:1646 */4618 5127 break; 4619 5128 4620 5129 case 34: 4621 #line 397 "parser.yy" /* yacc.c:1646 */ 4622 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4623 #line 4624 "Parser/parser.cc" /* yacc.c:1646 */ 5130 5131 /* Line 1806 of yacc.c */ 5132 #line 397 "parser.yy" 5133 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4624 5134 break; 4625 5135 4626 5136 case 35: 4627 #line 402 "parser.yy" /* yacc.c:1646 */ 5137 5138 /* Line 1806 of yacc.c */ 5139 #line 402 "parser.yy" 4628 5140 { (yyval.en) = 0; } 4629 #line 4630 "Parser/parser.cc" /* yacc.c:1646 */4630 5141 break; 4631 5142 4632 5143 case 38: 4633 #line 408 "parser.yy" /* yacc.c:1646 */ 4634 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4635 #line 4636 "Parser/parser.cc" /* yacc.c:1646 */ 5144 5145 /* Line 1806 of yacc.c */ 5146 #line 408 "parser.yy" 5147 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4636 5148 break; 4637 5149 4638 5150 case 39: 4639 #line 413 "parser.yy" /* yacc.c:1646 */ 4640 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4641 #line 4642 "Parser/parser.cc" /* yacc.c:1646 */ 5151 5152 /* Line 1806 of yacc.c */ 5153 #line 413 "parser.yy" 5154 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4642 5155 break; 4643 5156 4644 5157 case 40: 4645 #line 417 "parser.yy" /* yacc.c:1646 */ 4646 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4647 #line 4648 "Parser/parser.cc" /* yacc.c:1646 */ 5158 5159 /* Line 1806 of yacc.c */ 5160 #line 417 "parser.yy" 5161 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4648 5162 break; 4649 5163 4650 5164 case 41: 4651 #line 419 "parser.yy" /* yacc.c:1646 */ 4652 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4653 #line 4654 "Parser/parser.cc" /* yacc.c:1646 */ 5165 5166 /* Line 1806 of yacc.c */ 5167 #line 419 "parser.yy" 5168 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4654 5169 break; 4655 5170 4656 5171 case 42: 4657 #line 421 "parser.yy" /* yacc.c:1646 */ 4658 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4659 #line 4660 "Parser/parser.cc" /* yacc.c:1646 */ 5172 5173 /* Line 1806 of yacc.c */ 5174 #line 421 "parser.yy" 5175 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4660 5176 break; 4661 5177 4662 5178 case 43: 4663 #line 423 "parser.yy" /* yacc.c:1646 */ 4664 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4665 #line 4666 "Parser/parser.cc" /* yacc.c:1646 */ 5179 5180 /* Line 1806 of yacc.c */ 5181 #line 423 "parser.yy" 5182 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4666 5183 break; 4667 5184 4668 5185 case 45: 4669 #line 431 "parser.yy" /* yacc.c:1646 */ 4670 { (yyval.en) = (yyvsp[0].en); } 4671 #line 4672 "Parser/parser.cc" /* yacc.c:1646 */ 5186 5187 /* Line 1806 of yacc.c */ 5188 #line 431 "parser.yy" 5189 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4672 5190 break; 4673 5191 4674 5192 case 46: 4675 #line 433 "parser.yy" /* yacc.c:1646 */ 4676 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4677 #line 4678 "Parser/parser.cc" /* yacc.c:1646 */ 5193 5194 /* Line 1806 of yacc.c */ 5195 #line 433 "parser.yy" 5196 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4678 5197 break; 4679 5198 4680 5199 case 47: 4681 #line 435 "parser.yy" /* yacc.c:1646 */ 4682 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4683 #line 4684 "Parser/parser.cc" /* yacc.c:1646 */ 5200 5201 /* Line 1806 of yacc.c */ 5202 #line 435 "parser.yy" 5203 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4684 5204 break; 4685 5205 4686 5206 case 48: 4687 #line 440 "parser.yy" /* yacc.c:1646 */ 5207 5208 /* Line 1806 of yacc.c */ 5209 #line 440 "parser.yy" 4688 5210 { 4689 switch ( (yyvsp[ -1].op) ) {5211 switch ( (yyvsp[(1) - (2)].op) ) { 4690 5212 case OperKinds::AddressOf: 4691 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ 0].en) ) );5213 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) ); 4692 5214 break; 4693 5215 case OperKinds::PointTo: 4694 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ -1].op), (yyvsp[0].en) ) );5216 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); 4695 5217 break; 4696 5218 default: … … 4698 5220 } 4699 5221 } 4700 #line 4701 "Parser/parser.cc" /* yacc.c:1646 */4701 5222 break; 4702 5223 4703 5224 case 49: 4704 #line 453 "parser.yy" /* yacc.c:1646 */ 4705 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4706 #line 4707 "Parser/parser.cc" /* yacc.c:1646 */ 5225 5226 /* Line 1806 of yacc.c */ 5227 #line 453 "parser.yy" 5228 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4707 5229 break; 4708 5230 4709 5231 case 50: 4710 #line 455 "parser.yy" /* yacc.c:1646 */ 4711 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4712 #line 4713 "Parser/parser.cc" /* yacc.c:1646 */ 5232 5233 /* Line 1806 of yacc.c */ 5234 #line 455 "parser.yy" 5235 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4713 5236 break; 4714 5237 4715 5238 case 51: 4716 #line 457 "parser.yy" /* yacc.c:1646 */ 4717 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4718 #line 4719 "Parser/parser.cc" /* yacc.c:1646 */ 5239 5240 /* Line 1806 of yacc.c */ 5241 #line 457 "parser.yy" 5242 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4719 5243 break; 4720 5244 4721 5245 case 52: 4722 #line 459 "parser.yy" /* yacc.c:1646 */ 4723 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4724 #line 4725 "Parser/parser.cc" /* yacc.c:1646 */ 5246 5247 /* Line 1806 of yacc.c */ 5248 #line 459 "parser.yy" 5249 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4725 5250 break; 4726 5251 4727 5252 case 53: 4728 #line 461 "parser.yy" /* yacc.c:1646 */ 4729 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4730 #line 4731 "Parser/parser.cc" /* yacc.c:1646 */ 5253 5254 /* Line 1806 of yacc.c */ 5255 #line 461 "parser.yy" 5256 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4731 5257 break; 4732 5258 4733 5259 case 54: 4734 #line 463 "parser.yy" /* yacc.c:1646 */ 4735 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4736 #line 4737 "Parser/parser.cc" /* yacc.c:1646 */ 5260 5261 /* Line 1806 of yacc.c */ 5262 #line 463 "parser.yy" 5263 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4737 5264 break; 4738 5265 4739 5266 case 55: 4740 #line 465 "parser.yy" /* yacc.c:1646 */ 4741 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4742 #line 4743 "Parser/parser.cc" /* yacc.c:1646 */ 5267 5268 /* Line 1806 of yacc.c */ 5269 #line 465 "parser.yy" 5270 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4743 5271 break; 4744 5272 4745 5273 case 56: 4746 #line 467 "parser.yy" /* yacc.c:1646 */ 4747 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4748 #line 4749 "Parser/parser.cc" /* yacc.c:1646 */ 5274 5275 /* Line 1806 of yacc.c */ 5276 #line 467 "parser.yy" 5277 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4749 5278 break; 4750 5279 4751 5280 case 57: 4752 #line 469 "parser.yy" /* yacc.c:1646 */ 4753 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4754 #line 4755 "Parser/parser.cc" /* yacc.c:1646 */ 5281 5282 /* Line 1806 of yacc.c */ 5283 #line 469 "parser.yy" 5284 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4755 5285 break; 4756 5286 4757 5287 case 58: 4758 #line 471 "parser.yy" /* yacc.c:1646 */ 4759 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4760 #line 4761 "Parser/parser.cc" /* yacc.c:1646 */ 5288 5289 /* Line 1806 of yacc.c */ 5290 #line 471 "parser.yy" 5291 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4761 5292 break; 4762 5293 4763 5294 case 59: 4764 #line 473 "parser.yy" /* yacc.c:1646 */ 4765 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4766 #line 4767 "Parser/parser.cc" /* yacc.c:1646 */ 5295 5296 /* Line 1806 of yacc.c */ 5297 #line 473 "parser.yy" 5298 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4767 5299 break; 4768 5300 4769 5301 case 60: 4770 #line 479 "parser.yy" /* yacc.c:1646 */ 5302 5303 /* Line 1806 of yacc.c */ 5304 #line 479 "parser.yy" 4771 5305 { (yyval.op) = OperKinds::PointTo; } 4772 #line 4773 "Parser/parser.cc" /* yacc.c:1646 */4773 5306 break; 4774 5307 4775 5308 case 61: 4776 #line 480 "parser.yy" /* yacc.c:1646 */ 5309 5310 /* Line 1806 of yacc.c */ 5311 #line 480 "parser.yy" 4777 5312 { (yyval.op) = OperKinds::AddressOf; } 4778 #line 4779 "Parser/parser.cc" /* yacc.c:1646 */4779 5313 break; 4780 5314 4781 5315 case 62: 4782 #line 486 "parser.yy" /* yacc.c:1646 */ 5316 5317 /* Line 1806 of yacc.c */ 5318 #line 486 "parser.yy" 4783 5319 { (yyval.op) = OperKinds::UnPlus; } 4784 #line 4785 "Parser/parser.cc" /* yacc.c:1646 */4785 5320 break; 4786 5321 4787 5322 case 63: 4788 #line 487 "parser.yy" /* yacc.c:1646 */ 5323 5324 /* Line 1806 of yacc.c */ 5325 #line 487 "parser.yy" 4789 5326 { (yyval.op) = OperKinds::UnMinus; } 4790 #line 4791 "Parser/parser.cc" /* yacc.c:1646 */4791 5327 break; 4792 5328 4793 5329 case 64: 4794 #line 488 "parser.yy" /* yacc.c:1646 */ 5330 5331 /* Line 1806 of yacc.c */ 5332 #line 488 "parser.yy" 4795 5333 { (yyval.op) = OperKinds::Neg; } 4796 #line 4797 "Parser/parser.cc" /* yacc.c:1646 */4797 5334 break; 4798 5335 4799 5336 case 65: 4800 #line 489 "parser.yy" /* yacc.c:1646 */ 5337 5338 /* Line 1806 of yacc.c */ 5339 #line 489 "parser.yy" 4801 5340 { (yyval.op) = OperKinds::BitNeg; } 4802 #line 4803 "Parser/parser.cc" /* yacc.c:1646 */4803 5341 break; 4804 5342 4805 5343 case 67: 4806 #line 495 "parser.yy" /* yacc.c:1646 */ 4807 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4808 #line 4809 "Parser/parser.cc" /* yacc.c:1646 */ 5344 5345 /* Line 1806 of yacc.c */ 5346 #line 495 "parser.yy" 5347 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4809 5348 break; 4810 5349 4811 5350 case 68: 4812 #line 497 "parser.yy" /* yacc.c:1646 */ 4813 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4814 #line 4815 "Parser/parser.cc" /* yacc.c:1646 */ 5351 5352 /* Line 1806 of yacc.c */ 5353 #line 497 "parser.yy" 5354 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4815 5355 break; 4816 5356 4817 5357 case 70: 4818 #line 503 "parser.yy" /* yacc.c:1646 */ 4819 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4820 #line 4821 "Parser/parser.cc" /* yacc.c:1646 */ 5358 5359 /* Line 1806 of yacc.c */ 5360 #line 503 "parser.yy" 5361 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4821 5362 break; 4822 5363 4823 5364 case 71: 4824 #line 505 "parser.yy" /* yacc.c:1646 */ 4825 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4826 #line 4827 "Parser/parser.cc" /* yacc.c:1646 */ 5365 5366 /* Line 1806 of yacc.c */ 5367 #line 505 "parser.yy" 5368 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4827 5369 break; 4828 5370 4829 5371 case 72: 4830 #line 507 "parser.yy" /* yacc.c:1646 */ 4831 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4832 #line 4833 "Parser/parser.cc" /* yacc.c:1646 */ 5372 5373 /* Line 1806 of yacc.c */ 5374 #line 507 "parser.yy" 5375 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4833 5376 break; 4834 5377 4835 5378 case 74: 4836 #line 513 "parser.yy" /* yacc.c:1646 */ 4837 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4838 #line 4839 "Parser/parser.cc" /* yacc.c:1646 */ 5379 5380 /* Line 1806 of yacc.c */ 5381 #line 513 "parser.yy" 5382 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4839 5383 break; 4840 5384 4841 5385 case 75: 4842 #line 515 "parser.yy" /* yacc.c:1646 */ 4843 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4844 #line 4845 "Parser/parser.cc" /* yacc.c:1646 */ 5386 5387 /* Line 1806 of yacc.c */ 5388 #line 515 "parser.yy" 5389 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4845 5390 break; 4846 5391 4847 5392 case 77: 4848 #line 521 "parser.yy" /* yacc.c:1646 */ 4849 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4850 #line 4851 "Parser/parser.cc" /* yacc.c:1646 */ 5393 5394 /* Line 1806 of yacc.c */ 5395 #line 521 "parser.yy" 5396 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4851 5397 break; 4852 5398 4853 5399 case 78: 4854 #line 523 "parser.yy" /* yacc.c:1646 */ 4855 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4856 #line 4857 "Parser/parser.cc" /* yacc.c:1646 */ 5400 5401 /* Line 1806 of yacc.c */ 5402 #line 523 "parser.yy" 5403 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4857 5404 break; 4858 5405 4859 5406 case 80: 4860 #line 529 "parser.yy" /* yacc.c:1646 */ 4861 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4862 #line 4863 "Parser/parser.cc" /* yacc.c:1646 */ 5407 5408 /* Line 1806 of yacc.c */ 5409 #line 529 "parser.yy" 5410 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4863 5411 break; 4864 5412 4865 5413 case 81: 4866 #line 531 "parser.yy" /* yacc.c:1646 */ 4867 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4868 #line 4869 "Parser/parser.cc" /* yacc.c:1646 */ 5414 5415 /* Line 1806 of yacc.c */ 5416 #line 531 "parser.yy" 5417 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4869 5418 break; 4870 5419 4871 5420 case 82: 4872 #line 533 "parser.yy" /* yacc.c:1646 */ 4873 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4874 #line 4875 "Parser/parser.cc" /* yacc.c:1646 */ 5421 5422 /* Line 1806 of yacc.c */ 5423 #line 533 "parser.yy" 5424 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4875 5425 break; 4876 5426 4877 5427 case 83: 4878 #line 535 "parser.yy" /* yacc.c:1646 */ 4879 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4880 #line 4881 "Parser/parser.cc" /* yacc.c:1646 */ 5428 5429 /* Line 1806 of yacc.c */ 5430 #line 535 "parser.yy" 5431 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4881 5432 break; 4882 5433 4883 5434 case 85: 4884 #line 541 "parser.yy" /* yacc.c:1646 */ 4885 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4886 #line 4887 "Parser/parser.cc" /* yacc.c:1646 */ 5435 5436 /* Line 1806 of yacc.c */ 5437 #line 541 "parser.yy" 5438 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4887 5439 break; 4888 5440 4889 5441 case 86: 4890 #line 543 "parser.yy" /* yacc.c:1646 */ 4891 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4892 #line 4893 "Parser/parser.cc" /* yacc.c:1646 */ 5442 5443 /* Line 1806 of yacc.c */ 5444 #line 543 "parser.yy" 5445 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4893 5446 break; 4894 5447 4895 5448 case 88: 4896 #line 549 "parser.yy" /* yacc.c:1646 */ 4897 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4898 #line 4899 "Parser/parser.cc" /* yacc.c:1646 */ 5449 5450 /* Line 1806 of yacc.c */ 5451 #line 549 "parser.yy" 5452 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4899 5453 break; 4900 5454 4901 5455 case 90: 4902 #line 555 "parser.yy" /* yacc.c:1646 */ 4903 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4904 #line 4905 "Parser/parser.cc" /* yacc.c:1646 */ 5456 5457 /* Line 1806 of yacc.c */ 5458 #line 555 "parser.yy" 5459 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4905 5460 break; 4906 5461 4907 5462 case 92: 4908 #line 561 "parser.yy" /* yacc.c:1646 */ 4909 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4910 #line 4911 "Parser/parser.cc" /* yacc.c:1646 */ 5463 5464 /* Line 1806 of yacc.c */ 5465 #line 561 "parser.yy" 5466 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4911 5467 break; 4912 5468 4913 5469 case 94: 4914 #line 567 "parser.yy" /* yacc.c:1646 */ 4915 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4916 #line 4917 "Parser/parser.cc" /* yacc.c:1646 */ 5470 5471 /* Line 1806 of yacc.c */ 5472 #line 567 "parser.yy" 5473 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4917 5474 break; 4918 5475 4919 5476 case 96: 4920 #line 573 "parser.yy" /* yacc.c:1646 */ 4921 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4922 #line 4923 "Parser/parser.cc" /* yacc.c:1646 */ 5477 5478 /* Line 1806 of yacc.c */ 5479 #line 573 "parser.yy" 5480 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4923 5481 break; 4924 5482 4925 5483 case 98: 4926 #line 579 "parser.yy" /* yacc.c:1646 */ 4927 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4928 #line 4929 "Parser/parser.cc" /* yacc.c:1646 */ 5484 5485 /* Line 1806 of yacc.c */ 5486 #line 579 "parser.yy" 5487 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4929 5488 break; 4930 5489 4931 5490 case 99: 4932 #line 582 "parser.yy" /* yacc.c:1646 */ 4933 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4934 #line 4935 "Parser/parser.cc" /* yacc.c:1646 */ 5491 5492 /* Line 1806 of yacc.c */ 5493 #line 582 "parser.yy" 5494 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4935 5495 break; 4936 5496 4937 5497 case 100: 4938 #line 584 "parser.yy" /* yacc.c:1646 */ 4939 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4940 #line 4941 "Parser/parser.cc" /* yacc.c:1646 */ 5498 5499 /* Line 1806 of yacc.c */ 5500 #line 584 "parser.yy" 5501 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4941 5502 break; 4942 5503 4943 5504 case 103: 4944 #line 595 "parser.yy" /* yacc.c:1646 */ 4945 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4946 #line 4947 "Parser/parser.cc" /* yacc.c:1646 */ 5505 5506 /* Line 1806 of yacc.c */ 5507 #line 595 "parser.yy" 5508 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4947 5509 break; 4948 5510 4949 5511 case 104: 4950 #line 597 "parser.yy" /* yacc.c:1646 */ 4951 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4952 #line 4953 "Parser/parser.cc" /* yacc.c:1646 */ 5512 5513 /* Line 1806 of yacc.c */ 5514 #line 597 "parser.yy" 5515 { (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) ) ); } 4953 5516 break; 4954 5517 4955 5518 case 105: 4956 #line 602 "parser.yy" /* yacc.c:1646 */ 5519 5520 /* Line 1806 of yacc.c */ 5521 #line 602 "parser.yy" 4957 5522 { (yyval.en) = nullptr; } 4958 #line 4959 "Parser/parser.cc" /* yacc.c:1646 */4959 5523 break; 4960 5524 4961 5525 case 107: 4962 #line 607 "parser.yy" /* yacc.c:1646 */ 5526 5527 /* Line 1806 of yacc.c */ 5528 #line 607 "parser.yy" 4963 5529 { (yyval.op) = OperKinds::Assign; } 4964 #line 4965 "Parser/parser.cc" /* yacc.c:1646 */4965 5530 break; 4966 5531 4967 5532 case 108: 4968 #line 608 "parser.yy" /* yacc.c:1646 */ 5533 5534 /* Line 1806 of yacc.c */ 5535 #line 608 "parser.yy" 4969 5536 { (yyval.op) = OperKinds::MulAssn; } 4970 #line 4971 "Parser/parser.cc" /* yacc.c:1646 */4971 5537 break; 4972 5538 4973 5539 case 109: 4974 #line 609 "parser.yy" /* yacc.c:1646 */ 5540 5541 /* Line 1806 of yacc.c */ 5542 #line 609 "parser.yy" 4975 5543 { (yyval.op) = OperKinds::DivAssn; } 4976 #line 4977 "Parser/parser.cc" /* yacc.c:1646 */4977 5544 break; 4978 5545 4979 5546 case 110: 4980 #line 610 "parser.yy" /* yacc.c:1646 */ 5547 5548 /* Line 1806 of yacc.c */ 5549 #line 610 "parser.yy" 4981 5550 { (yyval.op) = OperKinds::ModAssn; } 4982 #line 4983 "Parser/parser.cc" /* yacc.c:1646 */4983 5551 break; 4984 5552 4985 5553 case 111: 4986 #line 611 "parser.yy" /* yacc.c:1646 */ 5554 5555 /* Line 1806 of yacc.c */ 5556 #line 611 "parser.yy" 4987 5557 { (yyval.op) = OperKinds::PlusAssn; } 4988 #line 4989 "Parser/parser.cc" /* yacc.c:1646 */4989 5558 break; 4990 5559 4991 5560 case 112: 4992 #line 612 "parser.yy" /* yacc.c:1646 */ 5561 5562 /* Line 1806 of yacc.c */ 5563 #line 612 "parser.yy" 4993 5564 { (yyval.op) = OperKinds::MinusAssn; } 4994 #line 4995 "Parser/parser.cc" /* yacc.c:1646 */4995 5565 break; 4996 5566 4997 5567 case 113: 4998 #line 613 "parser.yy" /* yacc.c:1646 */ 5568 5569 /* Line 1806 of yacc.c */ 5570 #line 613 "parser.yy" 4999 5571 { (yyval.op) = OperKinds::LSAssn; } 5000 #line 5001 "Parser/parser.cc" /* yacc.c:1646 */5001 5572 break; 5002 5573 5003 5574 case 114: 5004 #line 614 "parser.yy" /* yacc.c:1646 */ 5575 5576 /* Line 1806 of yacc.c */ 5577 #line 614 "parser.yy" 5005 5578 { (yyval.op) = OperKinds::RSAssn; } 5006 #line 5007 "Parser/parser.cc" /* yacc.c:1646 */5007 5579 break; 5008 5580 5009 5581 case 115: 5010 #line 615 "parser.yy" /* yacc.c:1646 */ 5582 5583 /* Line 1806 of yacc.c */ 5584 #line 615 "parser.yy" 5011 5585 { (yyval.op) = OperKinds::AndAssn; } 5012 #line 5013 "Parser/parser.cc" /* yacc.c:1646 */5013 5586 break; 5014 5587 5015 5588 case 116: 5016 #line 616 "parser.yy" /* yacc.c:1646 */ 5589 5590 /* Line 1806 of yacc.c */ 5591 #line 616 "parser.yy" 5017 5592 { (yyval.op) = OperKinds::ERAssn; } 5018 #line 5019 "Parser/parser.cc" /* yacc.c:1646 */5019 5593 break; 5020 5594 5021 5595 case 117: 5022 #line 617 "parser.yy" /* yacc.c:1646 */ 5596 5597 /* Line 1806 of yacc.c */ 5598 #line 617 "parser.yy" 5023 5599 { (yyval.op) = OperKinds::OrAssn; } 5024 #line 5025 "Parser/parser.cc" /* yacc.c:1646 */5025 5600 break; 5026 5601 5027 5602 case 118: 5028 #line 624 "parser.yy" /* yacc.c:1646 */ 5603 5604 /* Line 1806 of yacc.c */ 5605 #line 624 "parser.yy" 5029 5606 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5030 #line 5031 "Parser/parser.cc" /* yacc.c:1646 */5031 5607 break; 5032 5608 5033 5609 case 119: 5034 #line 626 "parser.yy" /* yacc.c:1646 */ 5035 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5036 #line 5037 "Parser/parser.cc" /* yacc.c:1646 */ 5610 5611 /* Line 1806 of yacc.c */ 5612 #line 626 "parser.yy" 5613 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5037 5614 break; 5038 5615 5039 5616 case 120: 5040 #line 628 "parser.yy" /* yacc.c:1646 */ 5041 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5042 #line 5043 "Parser/parser.cc" /* yacc.c:1646 */ 5617 5618 /* Line 1806 of yacc.c */ 5619 #line 628 "parser.yy" 5620 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5043 5621 break; 5044 5622 5045 5623 case 121: 5046 #line 630 "parser.yy" /* yacc.c:1646 */ 5047 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5048 #line 5049 "Parser/parser.cc" /* yacc.c:1646 */ 5624 5625 /* Line 1806 of yacc.c */ 5626 #line 630 "parser.yy" 5627 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5049 5628 break; 5050 5629 5051 5630 case 123: 5052 #line 636 "parser.yy" /* yacc.c:1646 */ 5053 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5054 #line 5055 "Parser/parser.cc" /* yacc.c:1646 */ 5631 5632 /* Line 1806 of yacc.c */ 5633 #line 636 "parser.yy" 5634 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5055 5635 break; 5056 5636 5057 5637 case 125: 5058 #line 642 "parser.yy" /* yacc.c:1646 */ 5059 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5060 #line 5061 "Parser/parser.cc" /* yacc.c:1646 */ 5638 5639 /* Line 1806 of yacc.c */ 5640 #line 642 "parser.yy" 5641 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5061 5642 break; 5062 5643 5063 5644 case 126: 5064 #line 647 "parser.yy" /* yacc.c:1646 */ 5645 5646 /* Line 1806 of yacc.c */ 5647 #line 647 "parser.yy" 5065 5648 { (yyval.en) = 0; } 5066 #line 5067 "Parser/parser.cc" /* yacc.c:1646 */5067 5649 break; 5068 5650 5069 5651 case 130: 5070 #line 656 "parser.yy" /* yacc.c:1646 */ 5071 { (yyval.sn) = (yyvsp[0].sn); } 5072 #line 5073 "Parser/parser.cc" /* yacc.c:1646 */ 5652 5653 /* Line 1806 of yacc.c */ 5654 #line 656 "parser.yy" 5655 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5073 5656 break; 5074 5657 5075 5658 case 136: 5076 #line 663 "parser.yy" /* yacc.c:1646 */ 5659 5660 /* Line 1806 of yacc.c */ 5661 #line 663 "parser.yy" 5077 5662 { 5078 5663 Token fn; 5079 5664 fn.str = new std::string( "^?{}" ); // location undefined 5080 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ -4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );5665 (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) ) ) ) ) ); 5081 5666 } 5082 #line 5083 "Parser/parser.cc" /* yacc.c:1646 */5083 5667 break; 5084 5668 5085 5669 case 137: 5086 #line 673 "parser.yy" /* yacc.c:1646 */ 5670 5671 /* Line 1806 of yacc.c */ 5672 #line 673 "parser.yy" 5087 5673 { 5088 (yyval.sn) = (yyvsp[ 0].sn)->add_label( (yyvsp[-3].tok) );5674 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5089 5675 } 5090 #line 5091 "Parser/parser.cc" /* yacc.c:1646 */5091 5676 break; 5092 5677 5093 5678 case 138: 5094 #line 680 "parser.yy" /* yacc.c:1646 */ 5679 5680 /* Line 1806 of yacc.c */ 5681 #line 680 "parser.yy" 5095 5682 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5096 #line 5097 "Parser/parser.cc" /* yacc.c:1646 */5097 5683 break; 5098 5684 5099 5685 case 139: 5100 #line 687 "parser.yy" /* yacc.c:1646 */ 5101 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5102 #line 5103 "Parser/parser.cc" /* yacc.c:1646 */ 5686 5687 /* Line 1806 of yacc.c */ 5688 #line 687 "parser.yy" 5689 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5103 5690 break; 5104 5691 5105 5692 case 141: 5106 #line 693 "parser.yy" /* yacc.c:1646 */ 5107 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5108 #line 5109 "Parser/parser.cc" /* yacc.c:1646 */ 5693 5694 /* Line 1806 of yacc.c */ 5695 #line 693 "parser.yy" 5696 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5109 5697 break; 5110 5698 5111 5699 case 142: 5112 #line 698 "parser.yy" /* yacc.c:1646 */ 5113 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5114 #line 5115 "Parser/parser.cc" /* yacc.c:1646 */ 5700 5701 /* Line 1806 of yacc.c */ 5702 #line 698 "parser.yy" 5703 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5115 5704 break; 5116 5705 5117 5706 case 143: 5118 #line 700 "parser.yy" /* yacc.c:1646 */ 5707 5708 /* Line 1806 of yacc.c */ 5709 #line 700 "parser.yy" 5119 5710 { // mark all fields in list 5120 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5711 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5121 5712 iter->set_extension( true ); 5122 (yyval.sn) = new StatementNode( (yyvsp[ 0].decl) );5713 (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); 5123 5714 } 5124 #line 5125 "Parser/parser.cc" /* yacc.c:1646 */5125 5715 break; 5126 5716 5127 5717 case 144: 5128 #line 706 "parser.yy" /* yacc.c:1646 */ 5129 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5130 #line 5131 "Parser/parser.cc" /* yacc.c:1646 */ 5718 5719 /* Line 1806 of yacc.c */ 5720 #line 706 "parser.yy" 5721 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5131 5722 break; 5132 5723 5133 5724 case 147: 5134 #line 713 "parser.yy" /* yacc.c:1646 */ 5135 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5136 #line 5137 "Parser/parser.cc" /* yacc.c:1646 */ 5725 5726 /* Line 1806 of yacc.c */ 5727 #line 713 "parser.yy" 5728 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5137 5729 break; 5138 5730 5139 5731 case 148: 5140 #line 718 "parser.yy" /* yacc.c:1646 */ 5141 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5142 #line 5143 "Parser/parser.cc" /* yacc.c:1646 */ 5732 5733 /* Line 1806 of yacc.c */ 5734 #line 718 "parser.yy" 5735 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5143 5736 break; 5144 5737 5145 5738 case 149: 5146 #line 724 "parser.yy" /* yacc.c:1646 */ 5147 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5148 #line 5149 "Parser/parser.cc" /* yacc.c:1646 */ 5739 5740 /* Line 1806 of yacc.c */ 5741 #line 724 "parser.yy" 5742 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5149 5743 break; 5150 5744 5151 5745 case 150: 5152 #line 726 "parser.yy" /* yacc.c:1646 */ 5153 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5154 #line 5155 "Parser/parser.cc" /* yacc.c:1646 */ 5746 5747 /* Line 1806 of yacc.c */ 5748 #line 726 "parser.yy" 5749 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5155 5750 break; 5156 5751 5157 5752 case 151: 5158 #line 728 "parser.yy" /* yacc.c:1646 */ 5159 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5160 #line 5161 "Parser/parser.cc" /* yacc.c:1646 */ 5753 5754 /* Line 1806 of yacc.c */ 5755 #line 728 "parser.yy" 5756 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5161 5757 break; 5162 5758 5163 5759 case 152: 5164 #line 730 "parser.yy" /* yacc.c:1646 */ 5760 5761 /* Line 1806 of yacc.c */ 5762 #line 730 "parser.yy" 5165 5763 { 5166 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5764 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5167 5765 // The semantics of the declaration list is changed to include associated initialization, which is performed 5168 5766 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5170 5768 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5171 5769 // statement. 5172 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5770 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5173 5771 } 5174 #line 5175 "Parser/parser.cc" /* yacc.c:1646 */5175 5772 break; 5176 5773 5177 5774 case 153: 5178 #line 740 "parser.yy" /* yacc.c:1646 */ 5179 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5180 #line 5181 "Parser/parser.cc" /* yacc.c:1646 */ 5775 5776 /* Line 1806 of yacc.c */ 5777 #line 740 "parser.yy" 5778 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5181 5779 break; 5182 5780 5183 5781 case 154: 5184 #line 742 "parser.yy" /* yacc.c:1646 */ 5782 5783 /* Line 1806 of yacc.c */ 5784 #line 742 "parser.yy" 5185 5785 { 5186 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5187 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5786 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5787 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5188 5788 } 5189 #line 5190 "Parser/parser.cc" /* yacc.c:1646 */5190 5789 break; 5191 5790 5192 5791 case 155: 5193 #line 752 "parser.yy" /* yacc.c:1646 */ 5194 { (yyval.en) = (yyvsp[0].en); } 5195 #line 5196 "Parser/parser.cc" /* yacc.c:1646 */ 5792 5793 /* Line 1806 of yacc.c */ 5794 #line 752 "parser.yy" 5795 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5196 5796 break; 5197 5797 5198 5798 case 156: 5199 #line 754 "parser.yy" /* yacc.c:1646 */ 5200 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5201 #line 5202 "Parser/parser.cc" /* yacc.c:1646 */ 5799 5800 /* Line 1806 of yacc.c */ 5801 #line 754 "parser.yy" 5802 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5202 5803 break; 5203 5804 5204 5805 case 158: 5205 #line 759 "parser.yy" /* yacc.c:1646 */ 5206 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5207 #line 5208 "Parser/parser.cc" /* yacc.c:1646 */ 5806 5807 /* Line 1806 of yacc.c */ 5808 #line 759 "parser.yy" 5809 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5208 5810 break; 5209 5811 5210 5812 case 159: 5211 #line 761 "parser.yy" /* yacc.c:1646 */ 5212 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5213 #line 5214 "Parser/parser.cc" /* yacc.c:1646 */ 5813 5814 /* Line 1806 of yacc.c */ 5815 #line 761 "parser.yy" 5816 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5214 5817 break; 5215 5818 5216 5819 case 160: 5217 #line 765 "parser.yy" /* yacc.c:1646 */ 5218 { (yyval.sn) = (yyvsp[-1].sn); } 5219 #line 5220 "Parser/parser.cc" /* yacc.c:1646 */ 5820 5821 /* Line 1806 of yacc.c */ 5822 #line 765 "parser.yy" 5823 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5220 5824 break; 5221 5825 5222 5826 case 161: 5223 #line 766 "parser.yy" /* yacc.c:1646 */ 5827 5828 /* Line 1806 of yacc.c */ 5829 #line 766 "parser.yy" 5224 5830 { (yyval.sn) = new StatementNode( build_default() ); } 5225 #line 5226 "Parser/parser.cc" /* yacc.c:1646 */5226 5831 break; 5227 5832 5228 5833 case 163: 5229 #line 772 "parser.yy" /* yacc.c:1646 */ 5230 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5231 #line 5232 "Parser/parser.cc" /* yacc.c:1646 */ 5834 5835 /* Line 1806 of yacc.c */ 5836 #line 772 "parser.yy" 5837 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5232 5838 break; 5233 5839 5234 5840 case 164: 5235 #line 776 "parser.yy" /* yacc.c:1646 */ 5236 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5237 #line 5238 "Parser/parser.cc" /* yacc.c:1646 */ 5841 5842 /* Line 1806 of yacc.c */ 5843 #line 776 "parser.yy" 5844 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5238 5845 break; 5239 5846 5240 5847 case 165: 5241 #line 781 "parser.yy" /* yacc.c:1646 */ 5848 5849 /* Line 1806 of yacc.c */ 5850 #line 781 "parser.yy" 5242 5851 { (yyval.sn) = 0; } 5243 #line 5244 "Parser/parser.cc" /* yacc.c:1646 */5244 5852 break; 5245 5853 5246 5854 case 167: 5247 #line 787 "parser.yy" /* yacc.c:1646 */ 5248 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5249 #line 5250 "Parser/parser.cc" /* yacc.c:1646 */ 5855 5856 /* Line 1806 of yacc.c */ 5857 #line 787 "parser.yy" 5858 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5250 5859 break; 5251 5860 5252 5861 case 168: 5253 #line 789 "parser.yy" /* yacc.c:1646 */ 5254 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5255 #line 5256 "Parser/parser.cc" /* yacc.c:1646 */ 5862 5863 /* Line 1806 of yacc.c */ 5864 #line 789 "parser.yy" 5865 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5256 5866 break; 5257 5867 5258 5868 case 169: 5259 #line 794 "parser.yy" /* yacc.c:1646 */ 5869 5870 /* Line 1806 of yacc.c */ 5871 #line 794 "parser.yy" 5260 5872 { (yyval.sn) = 0; } 5261 #line 5262 "Parser/parser.cc" /* yacc.c:1646 */5262 5873 break; 5263 5874 5264 5875 case 171: 5265 #line 800 "parser.yy" /* yacc.c:1646 */ 5266 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5267 #line 5268 "Parser/parser.cc" /* yacc.c:1646 */ 5876 5877 /* Line 1806 of yacc.c */ 5878 #line 800 "parser.yy" 5879 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5268 5880 break; 5269 5881 5270 5882 case 172: 5271 #line 802 "parser.yy" /* yacc.c:1646 */ 5272 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5273 #line 5274 "Parser/parser.cc" /* yacc.c:1646 */ 5883 5884 /* Line 1806 of yacc.c */ 5885 #line 802 "parser.yy" 5886 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5274 5887 break; 5275 5888 5276 5889 case 173: 5277 #line 804 "parser.yy" /* yacc.c:1646 */ 5278 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5279 #line 5280 "Parser/parser.cc" /* yacc.c:1646 */ 5890 5891 /* Line 1806 of yacc.c */ 5892 #line 804 "parser.yy" 5893 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5280 5894 break; 5281 5895 5282 5896 case 174: 5283 #line 806 "parser.yy" /* yacc.c:1646 */ 5284 { (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) ) ) ) ) ) ); } 5285 #line 5286 "Parser/parser.cc" /* yacc.c:1646 */ 5897 5898 /* Line 1806 of yacc.c */ 5899 #line 806 "parser.yy" 5900 { (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) ) ) ) ) ) ); } 5286 5901 break; 5287 5902 5288 5903 case 175: 5289 #line 811 "parser.yy" /* yacc.c:1646 */ 5904 5905 /* Line 1806 of yacc.c */ 5906 #line 811 "parser.yy" 5290 5907 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); } 5291 #line 5292 "Parser/parser.cc" /* yacc.c:1646 */5292 5908 break; 5293 5909 5294 5910 case 177: 5295 #line 817 "parser.yy" /* yacc.c:1646 */ 5911 5912 /* Line 1806 of yacc.c */ 5913 #line 817 "parser.yy" 5296 5914 { (yyval.sn) = 0; } 5297 #line 5298 "Parser/parser.cc" /* yacc.c:1646 */5298 5915 break; 5299 5916 5300 5917 case 178: 5301 #line 819 "parser.yy" /* yacc.c:1646 */ 5918 5919 /* Line 1806 of yacc.c */ 5920 #line 819 "parser.yy" 5302 5921 { (yyval.sn) = 0; } 5303 #line 5304 "Parser/parser.cc" /* yacc.c:1646 */5304 5922 break; 5305 5923 5306 5924 case 179: 5307 #line 824 "parser.yy" /* yacc.c:1646 */ 5308 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5309 #line 5310 "Parser/parser.cc" /* yacc.c:1646 */ 5925 5926 /* Line 1806 of yacc.c */ 5927 #line 824 "parser.yy" 5928 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5310 5929 break; 5311 5930 5312 5931 case 180: 5313 #line 826 "parser.yy" /* yacc.c:1646 */ 5314 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn) ) ); } 5315 #line 5316 "Parser/parser.cc" /* yacc.c:1646 */ 5932 5933 /* Line 1806 of yacc.c */ 5934 #line 826 "parser.yy" 5935 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5316 5936 break; 5317 5937 5318 5938 case 181: 5319 #line 828 "parser.yy" /* yacc.c:1646 */ 5320 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5321 #line 5322 "Parser/parser.cc" /* yacc.c:1646 */ 5939 5940 /* Line 1806 of yacc.c */ 5941 #line 828 "parser.yy" 5942 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5322 5943 break; 5323 5944 5324 5945 case 182: 5325 #line 833 "parser.yy" /* yacc.c:1646 */ 5326 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5327 #line 5328 "Parser/parser.cc" /* yacc.c:1646 */ 5946 5947 /* Line 1806 of yacc.c */ 5948 #line 833 "parser.yy" 5949 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5328 5950 break; 5329 5951 5330 5952 case 183: 5331 #line 835 "parser.yy" /* yacc.c:1646 */ 5332 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5333 #line 5334 "Parser/parser.cc" /* yacc.c:1646 */ 5953 5954 /* Line 1806 of yacc.c */ 5955 #line 835 "parser.yy" 5956 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5334 5957 break; 5335 5958 5336 5959 case 184: 5337 #line 840 "parser.yy" /* yacc.c:1646 */ 5338 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Goto ) ); } 5339 #line 5340 "Parser/parser.cc" /* yacc.c:1646 */ 5960 5961 /* Line 1806 of yacc.c */ 5962 #line 840 "parser.yy" 5963 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5340 5964 break; 5341 5965 5342 5966 case 185: 5343 #line 844 "parser.yy" /* yacc.c:1646 */ 5344 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5345 #line 5346 "Parser/parser.cc" /* yacc.c:1646 */ 5967 5968 /* Line 1806 of yacc.c */ 5969 #line 844 "parser.yy" 5970 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5346 5971 break; 5347 5972 5348 5973 case 186: 5349 #line 847 "parser.yy" /* yacc.c:1646 */ 5974 5975 /* Line 1806 of yacc.c */ 5976 #line 847 "parser.yy" 5350 5977 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); } 5351 #line 5352 "Parser/parser.cc" /* yacc.c:1646 */5352 5978 break; 5353 5979 5354 5980 case 187: 5355 #line 851 "parser.yy" /* yacc.c:1646 */ 5356 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Continue ) ); } 5357 #line 5358 "Parser/parser.cc" /* yacc.c:1646 */ 5981 5982 /* Line 1806 of yacc.c */ 5983 #line 851 "parser.yy" 5984 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); } 5358 5985 break; 5359 5986 5360 5987 case 188: 5361 #line 854 "parser.yy" /* yacc.c:1646 */ 5988 5989 /* Line 1806 of yacc.c */ 5990 #line 854 "parser.yy" 5362 5991 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); } 5363 #line 5364 "Parser/parser.cc" /* yacc.c:1646 */5364 5992 break; 5365 5993 5366 5994 case 189: 5367 #line 858 "parser.yy" /* yacc.c:1646 */ 5368 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Break ) ); } 5369 #line 5370 "Parser/parser.cc" /* yacc.c:1646 */ 5995 5996 /* Line 1806 of yacc.c */ 5997 #line 858 "parser.yy" 5998 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); } 5370 5999 break; 5371 6000 5372 6001 case 190: 5373 #line 860 "parser.yy" /* yacc.c:1646 */ 5374 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5375 #line 5376 "Parser/parser.cc" /* yacc.c:1646 */ 6002 6003 /* Line 1806 of yacc.c */ 6004 #line 860 "parser.yy" 6005 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5376 6006 break; 5377 6007 5378 6008 case 191: 5379 #line 862 "parser.yy" /* yacc.c:1646 */ 5380 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5381 #line 5382 "Parser/parser.cc" /* yacc.c:1646 */ 6009 6010 /* Line 1806 of yacc.c */ 6011 #line 862 "parser.yy" 6012 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5382 6013 break; 5383 6014 5384 6015 case 192: 5385 #line 864 "parser.yy" /* yacc.c:1646 */ 5386 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5387 #line 5388 "Parser/parser.cc" /* yacc.c:1646 */ 6016 6017 /* Line 1806 of yacc.c */ 6018 #line 864 "parser.yy" 6019 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5388 6020 break; 5389 6021 5390 6022 case 193: 5391 #line 866 "parser.yy" /* yacc.c:1646 */ 5392 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5393 #line 5394 "Parser/parser.cc" /* yacc.c:1646 */ 6023 6024 /* Line 1806 of yacc.c */ 6025 #line 866 "parser.yy" 6026 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5394 6027 break; 5395 6028 5396 6029 case 194: 5397 #line 871 "parser.yy" /* yacc.c:1646 */ 5398 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5399 #line 5400 "Parser/parser.cc" /* yacc.c:1646 */ 6030 6031 /* Line 1806 of yacc.c */ 6032 #line 871 "parser.yy" 6033 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5400 6034 break; 5401 6035 5402 6036 case 195: 5403 #line 873 "parser.yy" /* yacc.c:1646 */ 5404 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5405 #line 5406 "Parser/parser.cc" /* yacc.c:1646 */ 6037 6038 /* Line 1806 of yacc.c */ 6039 #line 873 "parser.yy" 6040 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5406 6041 break; 5407 6042 5408 6043 case 196: 5409 #line 875 "parser.yy" /* yacc.c:1646 */ 5410 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5411 #line 5412 "Parser/parser.cc" /* yacc.c:1646 */ 6044 6045 /* Line 1806 of yacc.c */ 6046 #line 875 "parser.yy" 6047 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5412 6048 break; 5413 6049 5414 6050 case 198: 5415 #line 882 "parser.yy" /* yacc.c:1646 */ 5416 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5417 #line 5418 "Parser/parser.cc" /* yacc.c:1646 */ 6051 6052 /* Line 1806 of yacc.c */ 6053 #line 882 "parser.yy" 6054 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5418 6055 break; 5419 6056 5420 6057 case 199: 5421 #line 884 "parser.yy" /* yacc.c:1646 */ 5422 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5423 #line 5424 "Parser/parser.cc" /* yacc.c:1646 */ 6058 6059 /* Line 1806 of yacc.c */ 6060 #line 884 "parser.yy" 6061 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5424 6062 break; 5425 6063 5426 6064 case 200: 5427 #line 886 "parser.yy" /* yacc.c:1646 */ 5428 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5429 #line 5430 "Parser/parser.cc" /* yacc.c:1646 */ 6065 6066 /* Line 1806 of yacc.c */ 6067 #line 886 "parser.yy" 6068 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5430 6069 break; 5431 6070 5432 6071 case 201: 5433 #line 888 "parser.yy" /* yacc.c:1646 */ 5434 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5435 #line 5436 "Parser/parser.cc" /* yacc.c:1646 */ 6072 6073 /* Line 1806 of yacc.c */ 6074 #line 888 "parser.yy" 6075 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5436 6076 break; 5437 6077 5438 6078 case 202: 5439 #line 893 "parser.yy" /* yacc.c:1646 */ 5440 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5441 #line 5442 "Parser/parser.cc" /* yacc.c:1646 */ 6079 6080 /* Line 1806 of yacc.c */ 6081 #line 893 "parser.yy" 6082 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5442 6083 break; 5443 6084 5444 6085 case 203: 5445 #line 895 "parser.yy" /* yacc.c:1646 */ 5446 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5447 #line 5448 "Parser/parser.cc" /* yacc.c:1646 */ 6086 6087 /* Line 1806 of yacc.c */ 6088 #line 895 "parser.yy" 6089 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5448 6090 break; 5449 6091 5450 6092 case 204: 5451 #line 897 "parser.yy" /* yacc.c:1646 */ 5452 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5453 #line 5454 "Parser/parser.cc" /* yacc.c:1646 */ 6093 6094 /* Line 1806 of yacc.c */ 6095 #line 897 "parser.yy" 6096 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5454 6097 break; 5455 6098 5456 6099 case 205: 5457 #line 899 "parser.yy" /* yacc.c:1646 */ 5458 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5459 #line 5460 "Parser/parser.cc" /* yacc.c:1646 */ 6100 6101 /* Line 1806 of yacc.c */ 6102 #line 899 "parser.yy" 6103 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5460 6104 break; 5461 6105 5462 6106 case 206: 5463 #line 904 "parser.yy" /* yacc.c:1646 */ 6107 6108 /* Line 1806 of yacc.c */ 6109 #line 904 "parser.yy" 5464 6110 { 5465 (yyval.sn) = new StatementNode( build_finally( (yyvsp[ 0].sn) ) );6111 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5466 6112 } 5467 #line 5468 "Parser/parser.cc" /* yacc.c:1646 */5468 6113 break; 5469 6114 5470 6115 case 208: 5471 #line 917 "parser.yy" /* yacc.c:1646 */ 6116 6117 /* Line 1806 of yacc.c */ 6118 #line 917 "parser.yy" 5472 6119 { 5473 6120 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5474 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );6121 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 5475 6122 } 5476 #line 5477 "Parser/parser.cc" /* yacc.c:1646 */5477 6123 break; 5478 6124 5479 6125 case 209: 5480 #line 922 "parser.yy" /* yacc.c:1646 */ 5481 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5482 #line 5483 "Parser/parser.cc" /* yacc.c:1646 */ 6126 6127 /* Line 1806 of yacc.c */ 6128 #line 922 "parser.yy" 6129 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5483 6130 break; 5484 6131 5485 6132 case 210: 5486 #line 924 "parser.yy" /* yacc.c:1646 */ 6133 6134 /* Line 1806 of yacc.c */ 6135 #line 924 "parser.yy" 5487 6136 { 5488 6137 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5489 (yyval.decl) = (yyvsp[ -1].decl)->addName( (yyvsp[0].tok) );6138 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); 5490 6139 } 5491 #line 5492 "Parser/parser.cc" /* yacc.c:1646 */5492 6140 break; 5493 6141 5494 6142 case 212: 5495 #line 933 "parser.yy" /* yacc.c:1646 */ 5496 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5497 #line 5498 "Parser/parser.cc" /* yacc.c:1646 */ 6143 6144 /* Line 1806 of yacc.c */ 6145 #line 933 "parser.yy" 6146 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5498 6147 break; 5499 6148 5500 6149 case 213: 5501 #line 935 "parser.yy" /* yacc.c:1646 */ 5502 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5503 #line 5504 "Parser/parser.cc" /* yacc.c:1646 */ 6150 6151 /* Line 1806 of yacc.c */ 6152 #line 935 "parser.yy" 6153 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5504 6154 break; 5505 6155 5506 6156 case 214: 5507 #line 937 "parser.yy" /* yacc.c:1646 */ 5508 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5509 #line 5510 "Parser/parser.cc" /* yacc.c:1646 */ 6157 6158 /* Line 1806 of yacc.c */ 6159 #line 937 "parser.yy" 6160 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5510 6161 break; 5511 6162 5512 6163 case 215: 5513 #line 939 "parser.yy" /* yacc.c:1646 */ 5514 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5515 #line 5516 "Parser/parser.cc" /* yacc.c:1646 */ 6164 6165 /* Line 1806 of yacc.c */ 6166 #line 939 "parser.yy" 6167 { (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) ) ); } 5516 6168 break; 5517 6169 5518 6170 case 216: 5519 #line 941 "parser.yy" /* yacc.c:1646 */ 5520 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5521 #line 5522 "Parser/parser.cc" /* yacc.c:1646 */ 6171 6172 /* Line 1806 of yacc.c */ 6173 #line 941 "parser.yy" 6174 { (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) ) ); } 5522 6175 break; 5523 6176 5524 6177 case 217: 5525 #line 946 "parser.yy" /* yacc.c:1646 */ 6178 6179 /* Line 1806 of yacc.c */ 6180 #line 946 "parser.yy" 5526 6181 { (yyval.flag) = false; } 5527 #line 5528 "Parser/parser.cc" /* yacc.c:1646 */5528 6182 break; 5529 6183 5530 6184 case 218: 5531 #line 948 "parser.yy" /* yacc.c:1646 */ 6185 6186 /* Line 1806 of yacc.c */ 6187 #line 948 "parser.yy" 5532 6188 { (yyval.flag) = true; } 5533 #line 5534 "Parser/parser.cc" /* yacc.c:1646 */5534 6189 break; 5535 6190 5536 6191 case 219: 5537 #line 953 "parser.yy" /* yacc.c:1646 */ 6192 6193 /* Line 1806 of yacc.c */ 6194 #line 953 "parser.yy" 5538 6195 { (yyval.en) = 0; } 5539 #line 5540 "Parser/parser.cc" /* yacc.c:1646 */5540 6196 break; 5541 6197 5542 6198 case 222: 5543 #line 960 "parser.yy" /* yacc.c:1646 */ 5544 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5545 #line 5546 "Parser/parser.cc" /* yacc.c:1646 */ 6199 6200 /* Line 1806 of yacc.c */ 6201 #line 960 "parser.yy" 6202 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5546 6203 break; 5547 6204 5548 6205 case 223: 5549 #line 965 "parser.yy" /* yacc.c:1646 */ 5550 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5551 #line 5552 "Parser/parser.cc" /* yacc.c:1646 */ 6206 6207 /* Line 1806 of yacc.c */ 6208 #line 965 "parser.yy" 6209 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5552 6210 break; 5553 6211 5554 6212 case 224: 5555 #line 967 "parser.yy" /* yacc.c:1646 */ 5556 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5557 #line 5558 "Parser/parser.cc" /* yacc.c:1646 */ 6213 6214 /* Line 1806 of yacc.c */ 6215 #line 967 "parser.yy" 6216 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5558 6217 break; 5559 6218 5560 6219 case 225: 5561 #line 972 "parser.yy" /* yacc.c:1646 */ 6220 6221 /* Line 1806 of yacc.c */ 6222 #line 972 "parser.yy" 5562 6223 { (yyval.en) = 0; } 5563 #line 5564 "Parser/parser.cc" /* yacc.c:1646 */5564 6224 break; 5565 6225 5566 6226 case 226: 5567 #line 974 "parser.yy" /* yacc.c:1646 */ 5568 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5569 #line 5570 "Parser/parser.cc" /* yacc.c:1646 */ 6227 6228 /* Line 1806 of yacc.c */ 6229 #line 974 "parser.yy" 6230 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5570 6231 break; 5571 6232 5572 6233 case 227: 5573 #line 976 "parser.yy" /* yacc.c:1646 */ 5574 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5575 #line 5576 "Parser/parser.cc" /* yacc.c:1646 */ 6234 6235 /* Line 1806 of yacc.c */ 6236 #line 976 "parser.yy" 6237 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5576 6238 break; 5577 6239 5578 6240 case 228: 5579 #line 981 "parser.yy" /* yacc.c:1646 */ 5580 { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); } 5581 #line 5582 "Parser/parser.cc" /* yacc.c:1646 */ 6241 6242 /* Line 1806 of yacc.c */ 6243 #line 981 "parser.yy" 6244 { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); } 5582 6245 break; 5583 6246 5584 6247 case 229: 5585 #line 983 "parser.yy" /* yacc.c:1646 */ 5586 { (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); } 5587 #line 5588 "Parser/parser.cc" /* yacc.c:1646 */ 6248 6249 /* Line 1806 of yacc.c */ 6250 #line 983 "parser.yy" 6251 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); } 5588 6252 break; 5589 6253 5590 6254 case 230: 5591 #line 990 "parser.yy" /* yacc.c:1646 */ 6255 6256 /* Line 1806 of yacc.c */ 6257 #line 990 "parser.yy" 5592 6258 { (yyval.decl) = 0; } 5593 #line 5594 "Parser/parser.cc" /* yacc.c:1646 */5594 6259 break; 5595 6260 5596 6261 case 233: 5597 #line 997 "parser.yy" /* yacc.c:1646 */ 5598 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5599 #line 5600 "Parser/parser.cc" /* yacc.c:1646 */ 6262 6263 /* Line 1806 of yacc.c */ 6264 #line 997 "parser.yy" 6265 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5600 6266 break; 5601 6267 5602 6268 case 234: 5603 #line 1002 "parser.yy" /* yacc.c:1646 */ 6269 6270 /* Line 1806 of yacc.c */ 6271 #line 1002 "parser.yy" 5604 6272 { (yyval.decl) = 0; } 5605 #line 5606 "Parser/parser.cc" /* yacc.c:1646 */5606 6273 break; 5607 6274 5608 6275 case 237: 5609 #line 1009 "parser.yy" /* yacc.c:1646 */ 5610 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5611 #line 5612 "Parser/parser.cc" /* yacc.c:1646 */ 6276 6277 /* Line 1806 of yacc.c */ 6278 #line 1009 "parser.yy" 6279 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5612 6280 break; 5613 6281 5614 6282 case 242: 5615 #line 1023 "parser.yy" /* yacc.c:1646 */ 6283 6284 /* Line 1806 of yacc.c */ 6285 #line 1023 "parser.yy" 5616 6286 {} 5617 #line 5618 "Parser/parser.cc" /* yacc.c:1646 */5618 6287 break; 5619 6288 5620 6289 case 243: 5621 #line 1024 "parser.yy" /* yacc.c:1646 */ 6290 6291 /* Line 1806 of yacc.c */ 6292 #line 1024 "parser.yy" 5622 6293 {} 5623 #line 5624 "Parser/parser.cc" /* yacc.c:1646 */5624 6294 break; 5625 6295 5626 6296 case 251: 5627 #line 1053 "parser.yy" /* yacc.c:1646 */ 6297 6298 /* Line 1806 of yacc.c */ 6299 #line 1053 "parser.yy" 5628 6300 { 5629 6301 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5630 (yyval.decl) = (yyvsp[ -1].decl)->addInitializer( (yyvsp[0].in) );6302 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) ); 5631 6303 } 5632 #line 5633 "Parser/parser.cc" /* yacc.c:1646 */5633 6304 break; 5634 6305 5635 6306 case 252: 5636 #line 1060 "parser.yy" /* yacc.c:1646 */ 6307 6308 /* Line 1806 of yacc.c */ 6309 #line 1060 "parser.yy" 5637 6310 { 5638 6311 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5639 (yyval.decl) = (yyvsp[ -1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;6312 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );; 5640 6313 } 5641 #line 5642 "Parser/parser.cc" /* yacc.c:1646 */5642 6314 break; 5643 6315 5644 6316 case 253: 5645 #line 1065 "parser.yy" /* yacc.c:1646 */ 6317 6318 /* Line 1806 of yacc.c */ 6319 #line 1065 "parser.yy" 5646 6320 { 5647 typedefTable.addToEnclosingScope( *(yyvsp[ -1].tok), TypedefTable::ID );5648 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );6321 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6322 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5649 6323 } 5650 #line 5651 "Parser/parser.cc" /* yacc.c:1646 */5651 6324 break; 5652 6325 5653 6326 case 254: 5654 #line 1075 "parser.yy" /* yacc.c:1646 */ 6327 6328 /* Line 1806 of yacc.c */ 6329 #line 1075 "parser.yy" 5655 6330 { 5656 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5657 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6331 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6332 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5658 6333 } 5659 #line 5660 "Parser/parser.cc" /* yacc.c:1646 */5660 6334 break; 5661 6335 5662 6336 case 255: 5663 #line 1080 "parser.yy" /* yacc.c:1646 */ 6337 6338 /* Line 1806 of yacc.c */ 6339 #line 1080 "parser.yy" 5664 6340 { 5665 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5666 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6341 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6342 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5667 6343 } 5668 #line 5669 "Parser/parser.cc" /* yacc.c:1646 */5669 6344 break; 5670 6345 5671 6346 case 256: 5672 #line 1085 "parser.yy" /* yacc.c:1646 */ 6347 6348 /* Line 1806 of yacc.c */ 6349 #line 1085 "parser.yy" 5673 6350 { 5674 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5675 (yyval.decl) = (yyvsp[ -2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );6351 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6352 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5676 6353 } 5677 #line 5678 "Parser/parser.cc" /* yacc.c:1646 */5678 6354 break; 5679 6355 5680 6356 case 257: 5681 #line 1093 "parser.yy" /* yacc.c:1646 */ 6357 6358 /* Line 1806 of yacc.c */ 6359 #line 1093 "parser.yy" 5682 6360 { 5683 6361 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5684 (yyval.decl) = (yyvsp[ 0].decl);6362 (yyval.decl) = (yyvsp[(1) - (1)].decl); 5685 6363 } 5686 #line 5687 "Parser/parser.cc" /* yacc.c:1646 */5687 6364 break; 5688 6365 5689 6366 case 258: 5690 #line 1098 "parser.yy" /* yacc.c:1646 */ 6367 6368 /* Line 1806 of yacc.c */ 6369 #line 1098 "parser.yy" 5691 6370 { 5692 6371 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5693 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6372 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5694 6373 } 5695 #line 5696 "Parser/parser.cc" /* yacc.c:1646 */5696 6374 break; 5697 6375 5698 6376 case 259: 5699 #line 1103 "parser.yy" /* yacc.c:1646 */ 6377 6378 /* Line 1806 of yacc.c */ 6379 #line 1103 "parser.yy" 5700 6380 { 5701 6381 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5702 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6382 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5703 6383 } 5704 #line 5705 "Parser/parser.cc" /* yacc.c:1646 */5705 6384 break; 5706 6385 5707 6386 case 260: 5708 #line 1108 "parser.yy" /* yacc.c:1646 */ 6387 6388 /* Line 1806 of yacc.c */ 6389 #line 1108 "parser.yy" 5709 6390 { 5710 6391 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5711 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );6392 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) ); 5712 6393 } 5713 #line 5714 "Parser/parser.cc" /* yacc.c:1646 */5714 6394 break; 5715 6395 5716 6396 case 261: 5717 #line 1113 "parser.yy" /* yacc.c:1646 */ 6397 6398 /* Line 1806 of yacc.c */ 6399 #line 1113 "parser.yy" 5718 6400 { 5719 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::ID );5720 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6401 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6402 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5721 6403 } 5722 #line 5723 "Parser/parser.cc" /* yacc.c:1646 */5723 6404 break; 5724 6405 5725 6406 case 262: 5726 #line 1121 "parser.yy" /* yacc.c:1646 */ 6407 6408 /* Line 1806 of yacc.c */ 6409 #line 1121 "parser.yy" 5727 6410 { 5728 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );6411 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5729 6412 } 5730 #line 5731 "Parser/parser.cc" /* yacc.c:1646 */5731 6413 break; 5732 6414 5733 6415 case 263: 5734 #line 1144 "parser.yy" /* yacc.c:1646 */ 6416 6417 /* Line 1806 of yacc.c */ 6418 #line 1144 "parser.yy" 5735 6419 { 5736 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6420 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5737 6421 } 5738 #line 5739 "Parser/parser.cc" /* yacc.c:1646 */5739 6422 break; 5740 6423 5741 6424 case 264: 5742 #line 1148 "parser.yy" /* yacc.c:1646 */ 6425 6426 /* Line 1806 of yacc.c */ 6427 #line 1148 "parser.yy" 5743 6428 { 5744 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6429 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5745 6430 } 5746 #line 5747 "Parser/parser.cc" /* yacc.c:1646 */5747 6431 break; 5748 6432 5749 6433 case 265: 5750 #line 1155 "parser.yy" /* yacc.c:1646 */ 5751 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5752 #line 5753 "Parser/parser.cc" /* yacc.c:1646 */ 6434 6435 /* Line 1806 of yacc.c */ 6436 #line 1155 "parser.yy" 6437 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5753 6438 break; 5754 6439 5755 6440 case 266: 5756 #line 1159 "parser.yy" /* yacc.c:1646 */ 5757 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5758 #line 5759 "Parser/parser.cc" /* yacc.c:1646 */ 6441 6442 /* Line 1806 of yacc.c */ 6443 #line 1159 "parser.yy" 6444 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5759 6445 break; 5760 6446 5761 6447 case 267: 5762 #line 1164 "parser.yy" /* yacc.c:1646 */ 6448 6449 /* Line 1806 of yacc.c */ 6450 #line 1164 "parser.yy" 5763 6451 { 5764 6452 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5765 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6453 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5766 6454 } 5767 #line 5768 "Parser/parser.cc" /* yacc.c:1646 */5768 6455 break; 5769 6456 5770 6457 case 268: 5771 #line 1169 "parser.yy" /* yacc.c:1646 */ 6458 6459 /* Line 1806 of yacc.c */ 6460 #line 1169 "parser.yy" 5772 6461 { 5773 6462 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5774 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6463 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5775 6464 } 5776 #line 5777 "Parser/parser.cc" /* yacc.c:1646 */5777 6465 break; 5778 6466 5779 6467 case 269: 5780 #line 1174 "parser.yy" /* yacc.c:1646 */ 6468 6469 /* Line 1806 of yacc.c */ 6470 #line 1174 "parser.yy" 5781 6471 { 5782 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );5783 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6472 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6473 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5784 6474 } 5785 #line 5786 "Parser/parser.cc" /* yacc.c:1646 */5786 6475 break; 5787 6476 5788 6477 case 270: 5789 #line 1185 "parser.yy" /* yacc.c:1646 */ 6478 6479 /* Line 1806 of yacc.c */ 6480 #line 1185 "parser.yy" 5790 6481 { 5791 6482 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5792 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();6483 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef(); 5793 6484 } 5794 #line 5795 "Parser/parser.cc" /* yacc.c:1646 */5795 6485 break; 5796 6486 5797 6487 case 271: 5798 #line 1190 "parser.yy" /* yacc.c:1646 */ 6488 6489 /* Line 1806 of yacc.c */ 6490 #line 1190 "parser.yy" 5799 6491 { 5800 6492 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5801 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );6493 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() ); 5802 6494 } 5803 #line 5804 "Parser/parser.cc" /* yacc.c:1646 */5804 6495 break; 5805 6496 5806 6497 case 272: 5807 #line 1195 "parser.yy" /* yacc.c:1646 */ 6498 6499 /* Line 1806 of yacc.c */ 6500 #line 1195 "parser.yy" 5808 6501 { 5809 6502 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5810 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();6503 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef(); 5811 6504 } 5812 #line 5813 "Parser/parser.cc" /* yacc.c:1646 */5813 6505 break; 5814 6506 5815 6507 case 273: 5816 #line 1200 "parser.yy" /* yacc.c:1646 */ 6508 6509 /* Line 1806 of yacc.c */ 6510 #line 1200 "parser.yy" 5817 6511 { 5818 6512 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5819 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();6513 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef(); 5820 6514 } 5821 #line 5822 "Parser/parser.cc" /* yacc.c:1646 */5822 6515 break; 5823 6516 5824 6517 case 274: 5825 #line 1205 "parser.yy" /* yacc.c:1646 */ 6518 6519 /* Line 1806 of yacc.c */ 6520 #line 1205 "parser.yy" 5826 6521 { 5827 6522 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5828 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );6523 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) ); 5829 6524 } 5830 #line 5831 "Parser/parser.cc" /* yacc.c:1646 */5831 6525 break; 5832 6526 5833 6527 case 275: 5834 #line 1214 "parser.yy" /* yacc.c:1646 */ 6528 6529 /* Line 1806 of yacc.c */ 6530 #line 1214 "parser.yy" 5835 6531 { 5836 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6532 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5837 6533 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5838 6534 } 5839 #line 5840 "Parser/parser.cc" /* yacc.c:1646 */5840 6535 break; 5841 6536 5842 6537 case 276: 5843 #line 1219 "parser.yy" /* yacc.c:1646 */ 6538 6539 /* Line 1806 of yacc.c */ 6540 #line 1219 "parser.yy" 5844 6541 { 5845 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6542 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5846 6543 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5847 6544 } 5848 #line 5849 "Parser/parser.cc" /* yacc.c:1646 */5849 6545 break; 5850 6546 5851 6547 case 281: 5852 #line 1236 "parser.yy" /* yacc.c:1646 */ 6548 6549 /* Line 1806 of yacc.c */ 6550 #line 1236 "parser.yy" 5853 6551 { 5854 6552 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5855 (yyval.decl) = ( (yyvsp[ -2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );6553 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) ); 5856 6554 } 5857 #line 5858 "Parser/parser.cc" /* yacc.c:1646 */5858 6555 break; 5859 6556 5860 6557 case 282: 5861 #line 1241 "parser.yy" /* yacc.c:1646 */ 6558 6559 /* Line 1806 of yacc.c */ 6560 #line 1241 "parser.yy" 5862 6561 { 5863 6562 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5864 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );6563 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) ); 5865 6564 } 5866 #line 5867 "Parser/parser.cc" /* yacc.c:1646 */5867 6565 break; 5868 6566 5869 6567 case 291: 5870 #line 1263 "parser.yy" /* yacc.c:1646 */ 6568 6569 /* Line 1806 of yacc.c */ 6570 #line 1263 "parser.yy" 5871 6571 { (yyval.decl) = 0; } 5872 #line 5873 "Parser/parser.cc" /* yacc.c:1646 */5873 6572 break; 5874 6573 5875 6574 case 294: 5876 #line 1275 "parser.yy" /* yacc.c:1646 */ 5877 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5878 #line 5879 "Parser/parser.cc" /* yacc.c:1646 */ 6575 6576 /* Line 1806 of yacc.c */ 6577 #line 1275 "parser.yy" 6578 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5879 6579 break; 5880 6580 5881 6581 case 297: 5882 #line 1286 "parser.yy" /* yacc.c:1646 */ 6582 6583 /* Line 1806 of yacc.c */ 6584 #line 1286 "parser.yy" 5883 6585 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5884 #line 5885 "Parser/parser.cc" /* yacc.c:1646 */5885 6586 break; 5886 6587 5887 6588 case 298: 5888 #line 1288 "parser.yy" /* yacc.c:1646 */ 6589 6590 /* Line 1806 of yacc.c */ 6591 #line 1288 "parser.yy" 5889 6592 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5890 #line 5891 "Parser/parser.cc" /* yacc.c:1646 */5891 6593 break; 5892 6594 5893 6595 case 299: 5894 #line 1290 "parser.yy" /* yacc.c:1646 */ 6596 6597 /* Line 1806 of yacc.c */ 6598 #line 1290 "parser.yy" 5895 6599 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5896 #line 5897 "Parser/parser.cc" /* yacc.c:1646 */5897 6600 break; 5898 6601 5899 6602 case 300: 5900 #line 1292 "parser.yy" /* yacc.c:1646 */ 6603 6604 /* Line 1806 of yacc.c */ 6605 #line 1292 "parser.yy" 5901 6606 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5902 #line 5903 "Parser/parser.cc" /* yacc.c:1646 */5903 6607 break; 5904 6608 5905 6609 case 301: 5906 #line 1294 "parser.yy" /* yacc.c:1646 */ 6610 6611 /* Line 1806 of yacc.c */ 6612 #line 1294 "parser.yy" 5907 6613 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5908 #line 5909 "Parser/parser.cc" /* yacc.c:1646 */5909 6614 break; 5910 6615 5911 6616 case 302: 5912 #line 1296 "parser.yy" /* yacc.c:1646 */ 6617 6618 /* Line 1806 of yacc.c */ 6619 #line 1296 "parser.yy" 5913 6620 { 5914 6621 typedefTable.enterScope(); 5915 6622 } 5916 #line 5917 "Parser/parser.cc" /* yacc.c:1646 */5917 6623 break; 5918 6624 5919 6625 case 303: 5920 #line 1300 "parser.yy" /* yacc.c:1646 */ 6626 6627 /* Line 1806 of yacc.c */ 6628 #line 1300 "parser.yy" 5921 6629 { 5922 6630 typedefTable.leaveScope(); 5923 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ -1].decl) );6631 (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) ); 5924 6632 } 5925 #line 5926 "Parser/parser.cc" /* yacc.c:1646 */5926 6633 break; 5927 6634 5928 6635 case 305: 5929 #line 1309 "parser.yy" /* yacc.c:1646 */ 5930 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5931 #line 5932 "Parser/parser.cc" /* yacc.c:1646 */ 6636 6637 /* Line 1806 of yacc.c */ 6638 #line 1309 "parser.yy" 6639 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5932 6640 break; 5933 6641 5934 6642 case 306: 5935 #line 1311 "parser.yy" /* yacc.c:1646 */ 5936 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5937 #line 5938 "Parser/parser.cc" /* yacc.c:1646 */ 6643 6644 /* Line 1806 of yacc.c */ 6645 #line 1311 "parser.yy" 6646 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5938 6647 break; 5939 6648 5940 6649 case 308: 5941 #line 1322 "parser.yy" /* yacc.c:1646 */ 5942 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5943 #line 5944 "Parser/parser.cc" /* yacc.c:1646 */ 6650 6651 /* Line 1806 of yacc.c */ 6652 #line 1322 "parser.yy" 6653 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5944 6654 break; 5945 6655 5946 6656 case 309: 5947 #line 1327 "parser.yy" /* yacc.c:1646 */ 6657 6658 /* Line 1806 of yacc.c */ 6659 #line 1327 "parser.yy" 5948 6660 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5949 #line 5950 "Parser/parser.cc" /* yacc.c:1646 */5950 6661 break; 5951 6662 5952 6663 case 310: 5953 #line 1329 "parser.yy" /* yacc.c:1646 */ 6664 6665 /* Line 1806 of yacc.c */ 6666 #line 1329 "parser.yy" 5954 6667 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5955 #line 5956 "Parser/parser.cc" /* yacc.c:1646 */5956 6668 break; 5957 6669 5958 6670 case 311: 5959 #line 1331 "parser.yy" /* yacc.c:1646 */ 6671 6672 /* Line 1806 of yacc.c */ 6673 #line 1331 "parser.yy" 5960 6674 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5961 #line 5962 "Parser/parser.cc" /* yacc.c:1646 */5962 6675 break; 5963 6676 5964 6677 case 312: 5965 #line 1333 "parser.yy" /* yacc.c:1646 */ 6678 6679 /* Line 1806 of yacc.c */ 6680 #line 1333 "parser.yy" 5966 6681 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5967 #line 5968 "Parser/parser.cc" /* yacc.c:1646 */5968 6682 break; 5969 6683 5970 6684 case 313: 5971 #line 1335 "parser.yy" /* yacc.c:1646 */ 6685 6686 /* Line 1806 of yacc.c */ 6687 #line 1335 "parser.yy" 5972 6688 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 5973 #line 5974 "Parser/parser.cc" /* yacc.c:1646 */5974 6689 break; 5975 6690 5976 6691 case 314: 5977 #line 1337 "parser.yy" /* yacc.c:1646 */ 6692 6693 /* Line 1806 of yacc.c */ 6694 #line 1337 "parser.yy" 5978 6695 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5979 #line 5980 "Parser/parser.cc" /* yacc.c:1646 */5980 6696 break; 5981 6697 5982 6698 case 315: 5983 #line 1339 "parser.yy" /* yacc.c:1646 */ 6699 6700 /* Line 1806 of yacc.c */ 6701 #line 1339 "parser.yy" 5984 6702 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 5985 #line 5986 "Parser/parser.cc" /* yacc.c:1646 */5986 6703 break; 5987 6704 5988 6705 case 316: 5989 #line 1341 "parser.yy" /* yacc.c:1646 */ 6706 6707 /* Line 1806 of yacc.c */ 6708 #line 1341 "parser.yy" 5990 6709 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5991 #line 5992 "Parser/parser.cc" /* yacc.c:1646 */5992 6710 break; 5993 6711 5994 6712 case 317: 5995 #line 1346 "parser.yy" /* yacc.c:1646 */ 6713 6714 /* Line 1806 of yacc.c */ 6715 #line 1346 "parser.yy" 5996 6716 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5997 #line 5998 "Parser/parser.cc" /* yacc.c:1646 */5998 6717 break; 5999 6718 6000 6719 case 318: 6001 #line 1348 "parser.yy" /* yacc.c:1646 */ 6720 6721 /* Line 1806 of yacc.c */ 6722 #line 1348 "parser.yy" 6002 6723 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6003 #line 6004 "Parser/parser.cc" /* yacc.c:1646 */6004 6724 break; 6005 6725 6006 6726 case 319: 6007 #line 1350 "parser.yy" /* yacc.c:1646 */ 6727 6728 /* Line 1806 of yacc.c */ 6729 #line 1350 "parser.yy" 6008 6730 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6009 #line 6010 "Parser/parser.cc" /* yacc.c:1646 */6010 6731 break; 6011 6732 6012 6733 case 320: 6013 #line 1352 "parser.yy" /* yacc.c:1646 */ 6734 6735 /* Line 1806 of yacc.c */ 6736 #line 1352 "parser.yy" 6014 6737 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6015 #line 6016 "Parser/parser.cc" /* yacc.c:1646 */6016 6738 break; 6017 6739 6018 6740 case 321: 6019 #line 1354 "parser.yy" /* yacc.c:1646 */ 6741 6742 /* Line 1806 of yacc.c */ 6743 #line 1354 "parser.yy" 6020 6744 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6021 #line 6022 "Parser/parser.cc" /* yacc.c:1646 */6022 6745 break; 6023 6746 6024 6747 case 322: 6025 #line 1356 "parser.yy" /* yacc.c:1646 */ 6748 6749 /* Line 1806 of yacc.c */ 6750 #line 1356 "parser.yy" 6026 6751 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6027 #line 6028 "Parser/parser.cc" /* yacc.c:1646 */6028 6752 break; 6029 6753 6030 6754 case 323: 6031 #line 1358 "parser.yy" /* yacc.c:1646 */ 6755 6756 /* Line 1806 of yacc.c */ 6757 #line 1358 "parser.yy" 6032 6758 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6033 #line 6034 "Parser/parser.cc" /* yacc.c:1646 */6034 6759 break; 6035 6760 6036 6761 case 324: 6037 #line 1360 "parser.yy" /* yacc.c:1646 */ 6762 6763 /* Line 1806 of yacc.c */ 6764 #line 1360 "parser.yy" 6038 6765 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6039 #line 6040 "Parser/parser.cc" /* yacc.c:1646 */6040 6766 break; 6041 6767 6042 6768 case 325: 6043 #line 1362 "parser.yy" /* yacc.c:1646 */ 6769 6770 /* Line 1806 of yacc.c */ 6771 #line 1362 "parser.yy" 6044 6772 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6045 #line 6046 "Parser/parser.cc" /* yacc.c:1646 */6046 6773 break; 6047 6774 6048 6775 case 326: 6049 #line 1364 "parser.yy" /* yacc.c:1646 */ 6776 6777 /* Line 1806 of yacc.c */ 6778 #line 1364 "parser.yy" 6050 6779 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6051 #line 6052 "Parser/parser.cc" /* yacc.c:1646 */6052 6780 break; 6053 6781 6054 6782 case 327: 6055 #line 1366 "parser.yy" /* yacc.c:1646 */ 6783 6784 /* Line 1806 of yacc.c */ 6785 #line 1366 "parser.yy" 6056 6786 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6057 #line 6058 "Parser/parser.cc" /* yacc.c:1646 */6058 6787 break; 6059 6788 6060 6789 case 328: 6061 #line 1368 "parser.yy" /* yacc.c:1646 */ 6790 6791 /* Line 1806 of yacc.c */ 6792 #line 1368 "parser.yy" 6062 6793 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6063 #line 6064 "Parser/parser.cc" /* yacc.c:1646 */6064 6794 break; 6065 6795 6066 6796 case 329: 6067 #line 1370 "parser.yy" /* yacc.c:1646 */ 6797 6798 /* Line 1806 of yacc.c */ 6799 #line 1370 "parser.yy" 6068 6800 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6069 #line 6070 "Parser/parser.cc" /* yacc.c:1646 */6070 6801 break; 6071 6802 6072 6803 case 331: 6073 #line 1377 "parser.yy" /* yacc.c:1646 */ 6074 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6075 #line 6076 "Parser/parser.cc" /* yacc.c:1646 */ 6804 6805 /* Line 1806 of yacc.c */ 6806 #line 1377 "parser.yy" 6807 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6076 6808 break; 6077 6809 6078 6810 case 332: 6079 #line 1379 "parser.yy" /* yacc.c:1646 */ 6080 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6081 #line 6082 "Parser/parser.cc" /* yacc.c:1646 */ 6811 6812 /* Line 1806 of yacc.c */ 6813 #line 1379 "parser.yy" 6814 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6082 6815 break; 6083 6816 6084 6817 case 333: 6085 #line 1381 "parser.yy" /* yacc.c:1646 */ 6086 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6087 #line 6088 "Parser/parser.cc" /* yacc.c:1646 */ 6818 6819 /* Line 1806 of yacc.c */ 6820 #line 1381 "parser.yy" 6821 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6088 6822 break; 6089 6823 6090 6824 case 334: 6091 #line 1383 "parser.yy" /* yacc.c:1646 */ 6092 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6093 #line 6094 "Parser/parser.cc" /* yacc.c:1646 */ 6825 6826 /* Line 1806 of yacc.c */ 6827 #line 1383 "parser.yy" 6828 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6094 6829 break; 6095 6830 6096 6831 case 336: 6097 #line 1389 "parser.yy" /* yacc.c:1646 */ 6098 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6099 #line 6100 "Parser/parser.cc" /* yacc.c:1646 */ 6832 6833 /* Line 1806 of yacc.c */ 6834 #line 1389 "parser.yy" 6835 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6100 6836 break; 6101 6837 6102 6838 case 338: 6103 #line 1396 "parser.yy" /* yacc.c:1646 */ 6104 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6105 #line 6106 "Parser/parser.cc" /* yacc.c:1646 */ 6839 6840 /* Line 1806 of yacc.c */ 6841 #line 1396 "parser.yy" 6842 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6106 6843 break; 6107 6844 6108 6845 case 339: 6109 #line 1398 "parser.yy" /* yacc.c:1646 */ 6110 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6111 #line 6112 "Parser/parser.cc" /* yacc.c:1646 */ 6846 6847 /* Line 1806 of yacc.c */ 6848 #line 1398 "parser.yy" 6849 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6112 6850 break; 6113 6851 6114 6852 case 340: 6115 #line 1400 "parser.yy" /* yacc.c:1646 */ 6116 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6117 #line 6118 "Parser/parser.cc" /* yacc.c:1646 */ 6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1400 "parser.yy" 6856 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6118 6857 break; 6119 6858 6120 6859 case 341: 6121 #line 1405 "parser.yy" /* yacc.c:1646 */ 6122 { (yyval.decl) = (yyvsp[-1].decl); } 6123 #line 6124 "Parser/parser.cc" /* yacc.c:1646 */ 6860 6861 /* Line 1806 of yacc.c */ 6862 #line 1405 "parser.yy" 6863 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6124 6864 break; 6125 6865 6126 6866 case 342: 6127 #line 1407 "parser.yy" /* yacc.c:1646 */ 6128 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6129 #line 6130 "Parser/parser.cc" /* yacc.c:1646 */ 6867 6868 /* Line 1806 of yacc.c */ 6869 #line 1407 "parser.yy" 6870 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6130 6871 break; 6131 6872 6132 6873 case 343: 6133 #line 1409 "parser.yy" /* yacc.c:1646 */ 6134 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6135 #line 6136 "Parser/parser.cc" /* yacc.c:1646 */ 6874 6875 /* Line 1806 of yacc.c */ 6876 #line 1409 "parser.yy" 6877 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6136 6878 break; 6137 6879 6138 6880 case 344: 6139 #line 1411 "parser.yy" /* yacc.c:1646 */ 6140 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6141 #line 6142 "Parser/parser.cc" /* yacc.c:1646 */ 6881 6882 /* Line 1806 of yacc.c */ 6883 #line 1411 "parser.yy" 6884 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6142 6885 break; 6143 6886 6144 6887 case 346: 6145 #line 1417 "parser.yy" /* yacc.c:1646 */ 6146 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6147 #line 6148 "Parser/parser.cc" /* yacc.c:1646 */ 6888 6889 /* Line 1806 of yacc.c */ 6890 #line 1417 "parser.yy" 6891 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6148 6892 break; 6149 6893 6150 6894 case 347: 6151 #line 1419 "parser.yy" /* yacc.c:1646 */ 6152 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6153 #line 6154 "Parser/parser.cc" /* yacc.c:1646 */ 6895 6896 /* Line 1806 of yacc.c */ 6897 #line 1419 "parser.yy" 6898 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6154 6899 break; 6155 6900 6156 6901 case 348: 6157 #line 1421 "parser.yy" /* yacc.c:1646 */ 6158 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6159 #line 6160 "Parser/parser.cc" /* yacc.c:1646 */ 6902 6903 /* Line 1806 of yacc.c */ 6904 #line 1421 "parser.yy" 6905 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6160 6906 break; 6161 6907 6162 6908 case 350: 6163 #line 1427 "parser.yy" /* yacc.c:1646 */ 6164 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6165 #line 6166 "Parser/parser.cc" /* yacc.c:1646 */ 6909 6910 /* Line 1806 of yacc.c */ 6911 #line 1427 "parser.yy" 6912 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6166 6913 break; 6167 6914 6168 6915 case 351: 6169 #line 1429 "parser.yy" /* yacc.c:1646 */ 6170 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6171 #line 6172 "Parser/parser.cc" /* yacc.c:1646 */ 6916 6917 /* Line 1806 of yacc.c */ 6918 #line 1429 "parser.yy" 6919 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6172 6920 break; 6173 6921 6174 6922 case 353: 6175 #line 1435 "parser.yy" /* yacc.c:1646 */ 6176 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6177 #line 6178 "Parser/parser.cc" /* yacc.c:1646 */ 6923 6924 /* Line 1806 of yacc.c */ 6925 #line 1435 "parser.yy" 6926 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6178 6927 break; 6179 6928 6180 6929 case 354: 6181 #line 1437 "parser.yy" /* yacc.c:1646 */ 6182 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6183 #line 6184 "Parser/parser.cc" /* yacc.c:1646 */ 6930 6931 /* Line 1806 of yacc.c */ 6932 #line 1437 "parser.yy" 6933 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6184 6934 break; 6185 6935 6186 6936 case 355: 6187 #line 1439 "parser.yy" /* yacc.c:1646 */ 6188 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6189 #line 6190 "Parser/parser.cc" /* yacc.c:1646 */ 6937 6938 /* Line 1806 of yacc.c */ 6939 #line 1439 "parser.yy" 6940 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6190 6941 break; 6191 6942 6192 6943 case 356: 6193 #line 1444 "parser.yy" /* yacc.c:1646 */ 6194 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6195 #line 6196 "Parser/parser.cc" /* yacc.c:1646 */ 6944 6945 /* Line 1806 of yacc.c */ 6946 #line 1444 "parser.yy" 6947 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6196 6948 break; 6197 6949 6198 6950 case 357: 6199 #line 1446 "parser.yy" /* yacc.c:1646 */ 6200 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6201 #line 6202 "Parser/parser.cc" /* yacc.c:1646 */ 6951 6952 /* Line 1806 of yacc.c */ 6953 #line 1446 "parser.yy" 6954 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6202 6955 break; 6203 6956 6204 6957 case 358: 6205 #line 1448 "parser.yy" /* yacc.c:1646 */ 6206 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6207 #line 6208 "Parser/parser.cc" /* yacc.c:1646 */ 6958 6959 /* Line 1806 of yacc.c */ 6960 #line 1448 "parser.yy" 6961 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6208 6962 break; 6209 6963 6210 6964 case 361: 6211 #line 1458 "parser.yy" /* yacc.c:1646 */ 6212 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); } 6213 #line 6214 "Parser/parser.cc" /* yacc.c:1646 */ 6965 6966 /* Line 1806 of yacc.c */ 6967 #line 1458 "parser.yy" 6968 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6214 6969 break; 6215 6970 6216 6971 case 362: 6217 #line 1460 "parser.yy" /* yacc.c:1646 */ 6972 6973 /* Line 1806 of yacc.c */ 6974 #line 1460 "parser.yy" 6218 6975 { 6219 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6220 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[ -1].aggKey), (yyvsp[0].tok), 0, 0, false );6976 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6977 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false ); 6221 6978 } 6222 #line 6223 "Parser/parser.cc" /* yacc.c:1646 */6223 6979 break; 6224 6980 6225 6981 case 363: 6226 #line 1465 "parser.yy" /* yacc.c:1646 */ 6227 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6228 #line 6229 "Parser/parser.cc" /* yacc.c:1646 */ 6982 6983 /* Line 1806 of yacc.c */ 6984 #line 1465 "parser.yy" 6985 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6229 6986 break; 6230 6987 6231 6988 case 364: 6232 #line 1467 "parser.yy" /* yacc.c:1646 */ 6233 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); } 6234 #line 6235 "Parser/parser.cc" /* yacc.c:1646 */ 6989 6990 /* Line 1806 of yacc.c */ 6991 #line 1467 "parser.yy" 6992 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6235 6993 break; 6236 6994 6237 6995 case 365: 6238 #line 1469 "parser.yy" /* yacc.c:1646 */ 6239 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6240 #line 6241 "Parser/parser.cc" /* yacc.c:1646 */ 6996 6997 /* Line 1806 of yacc.c */ 6998 #line 1469 "parser.yy" 6999 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6241 7000 break; 6242 7001 6243 7002 case 366: 6244 #line 1471 "parser.yy" /* yacc.c:1646 */ 6245 { (yyval.decl) = (yyvsp[0].decl); } 6246 #line 6247 "Parser/parser.cc" /* yacc.c:1646 */ 7003 7004 /* Line 1806 of yacc.c */ 7005 #line 1471 "parser.yy" 7006 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6247 7007 break; 6248 7008 6249 7009 case 367: 6250 #line 1476 "parser.yy" /* yacc.c:1646 */ 7010 7011 /* Line 1806 of yacc.c */ 7012 #line 1476 "parser.yy" 6251 7013 { (yyval.aggKey) = DeclarationNode::Struct; } 6252 #line 6253 "Parser/parser.cc" /* yacc.c:1646 */6253 7014 break; 6254 7015 6255 7016 case 368: 6256 #line 1478 "parser.yy" /* yacc.c:1646 */ 7017 7018 /* Line 1806 of yacc.c */ 7019 #line 1478 "parser.yy" 6257 7020 { (yyval.aggKey) = DeclarationNode::Union; } 6258 #line 6259 "Parser/parser.cc" /* yacc.c:1646 */6259 7021 break; 6260 7022 6261 7023 case 369: 6262 #line 1483 "parser.yy" /* yacc.c:1646 */ 7024 7025 /* Line 1806 of yacc.c */ 7026 #line 1483 "parser.yy" 6263 7027 { (yyval.decl) = 0; } 6264 #line 6265 "Parser/parser.cc" /* yacc.c:1646 */6265 7028 break; 6266 7029 6267 7030 case 370: 6268 #line 1485 "parser.yy" /* yacc.c:1646 */ 6269 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6270 #line 6271 "Parser/parser.cc" /* yacc.c:1646 */ 7031 7032 /* Line 1806 of yacc.c */ 7033 #line 1485 "parser.yy" 7034 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6271 7035 break; 6272 7036 6273 7037 case 372: 6274 #line 1491 "parser.yy" /* yacc.c:1646 */ 6275 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6276 #line 6277 "Parser/parser.cc" /* yacc.c:1646 */ 7038 7039 /* Line 1806 of yacc.c */ 7040 #line 1491 "parser.yy" 7041 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6277 7042 break; 6278 7043 6279 7044 case 374: 6280 #line 1494 "parser.yy" /* yacc.c:1646 */ 7045 7046 /* Line 1806 of yacc.c */ 7047 #line 1494 "parser.yy" 6281 7048 { // mark all fields in list 6282 for ( DeclarationNode *iter = (yyvsp[ -1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7049 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6283 7050 iter->set_extension( true ); 6284 (yyval.decl) = (yyvsp[ -1].decl);7051 (yyval.decl) = (yyvsp[(2) - (3)].decl); 6285 7052 } 6286 #line 6287 "Parser/parser.cc" /* yacc.c:1646 */6287 7053 break; 6288 7054 6289 7055 case 376: 6290 #line 1504 "parser.yy" /* yacc.c:1646 */ 6291 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6292 #line 6293 "Parser/parser.cc" /* yacc.c:1646 */ 7056 7057 /* Line 1806 of yacc.c */ 7058 #line 1504 "parser.yy" 7059 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6293 7060 break; 6294 7061 6295 7062 case 377: 6296 #line 1506 "parser.yy" /* yacc.c:1646 */ 6297 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6298 #line 6299 "Parser/parser.cc" /* yacc.c:1646 */ 7063 7064 /* Line 1806 of yacc.c */ 7065 #line 1506 "parser.yy" 7066 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6299 7067 break; 6300 7068 6301 7069 case 378: 6302 #line 1508 "parser.yy" /* yacc.c:1646 */ 6303 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6304 #line 6305 "Parser/parser.cc" /* yacc.c:1646 */ 7070 7071 /* Line 1806 of yacc.c */ 7072 #line 1508 "parser.yy" 7073 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6305 7074 break; 6306 7075 6307 7076 case 379: 6308 #line 1513 "parser.yy" /* yacc.c:1646 */ 6309 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6310 #line 6311 "Parser/parser.cc" /* yacc.c:1646 */ 7077 7078 /* Line 1806 of yacc.c */ 7079 #line 1513 "parser.yy" 7080 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6311 7081 break; 6312 7082 6313 7083 case 380: 6314 #line 1515 "parser.yy" /* yacc.c:1646 */ 6315 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6316 #line 6317 "Parser/parser.cc" /* yacc.c:1646 */ 7084 7085 /* Line 1806 of yacc.c */ 7086 #line 1515 "parser.yy" 7087 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6317 7088 break; 6318 7089 6319 7090 case 381: 6320 #line 1520 "parser.yy" /* yacc.c:1646 */ 7091 7092 /* Line 1806 of yacc.c */ 7093 #line 1520 "parser.yy" 6321 7094 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6322 #line 6323 "Parser/parser.cc" /* yacc.c:1646 */6323 7095 break; 6324 7096 6325 7097 case 382: 6326 #line 1522 "parser.yy" /* yacc.c:1646 */ 6327 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6328 #line 6329 "Parser/parser.cc" /* yacc.c:1646 */ 7098 7099 /* Line 1806 of yacc.c */ 7100 #line 1522 "parser.yy" 7101 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6329 7102 break; 6330 7103 6331 7104 case 383: 6332 #line 1525 "parser.yy" /* yacc.c:1646 */ 6333 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6334 #line 6335 "Parser/parser.cc" /* yacc.c:1646 */ 7105 7106 /* Line 1806 of yacc.c */ 7107 #line 1525 "parser.yy" 7108 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6335 7109 break; 6336 7110 6337 7111 case 384: 6338 #line 1528 "parser.yy" /* yacc.c:1646 */ 6339 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6340 #line 6341 "Parser/parser.cc" /* yacc.c:1646 */ 7112 7113 /* Line 1806 of yacc.c */ 7114 #line 1528 "parser.yy" 7115 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6341 7116 break; 6342 7117 6343 7118 case 386: 6344 #line 1534 "parser.yy" /* yacc.c:1646 */ 7119 7120 /* Line 1806 of yacc.c */ 7121 #line 1534 "parser.yy" 6345 7122 { (yyval.en) = 0; } 6346 #line 6347 "Parser/parser.cc" /* yacc.c:1646 */6347 7123 break; 6348 7124 6349 7125 case 387: 6350 #line 1536 "parser.yy" /* yacc.c:1646 */ 6351 { (yyval.en) = (yyvsp[0].en); } 6352 #line 6353 "Parser/parser.cc" /* yacc.c:1646 */ 7126 7127 /* Line 1806 of yacc.c */ 7128 #line 1536 "parser.yy" 7129 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6353 7130 break; 6354 7131 6355 7132 case 388: 6356 #line 1541 "parser.yy" /* yacc.c:1646 */ 6357 { (yyval.en) = (yyvsp[0].en); } 6358 #line 6359 "Parser/parser.cc" /* yacc.c:1646 */ 7133 7134 /* Line 1806 of yacc.c */ 7135 #line 1541 "parser.yy" 7136 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6359 7137 break; 6360 7138 6361 7139 case 390: 6362 #line 1550 "parser.yy" /* yacc.c:1646 */ 6363 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); } 6364 #line 6365 "Parser/parser.cc" /* yacc.c:1646 */ 7140 7141 /* Line 1806 of yacc.c */ 7142 #line 1550 "parser.yy" 7143 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 6365 7144 break; 6366 7145 6367 7146 case 391: 6368 #line 1552 "parser.yy" /* yacc.c:1646 */ 7147 7148 /* Line 1806 of yacc.c */ 7149 #line 1552 "parser.yy" 6369 7150 { 6370 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6371 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[ 0].tok), 0 );7151 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7152 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6372 7153 } 6373 #line 6374 "Parser/parser.cc" /* yacc.c:1646 */6374 7154 break; 6375 7155 6376 7156 case 392: 6377 #line 1557 "parser.yy" /* yacc.c:1646 */ 6378 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6379 #line 6380 "Parser/parser.cc" /* yacc.c:1646 */ 7157 7158 /* Line 1806 of yacc.c */ 7159 #line 1557 "parser.yy" 7160 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6380 7161 break; 6381 7162 6382 7163 case 393: 6383 #line 1559 "parser.yy" /* yacc.c:1646 */ 6384 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6385 #line 6386 "Parser/parser.cc" /* yacc.c:1646 */ 7164 7165 /* Line 1806 of yacc.c */ 7166 #line 1559 "parser.yy" 7167 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 6386 7168 break; 6387 7169 6388 7170 case 394: 6389 #line 1564 "parser.yy" /* yacc.c:1646 */ 6390 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6391 #line 6392 "Parser/parser.cc" /* yacc.c:1646 */ 7171 7172 /* Line 1806 of yacc.c */ 7173 #line 1564 "parser.yy" 7174 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 6392 7175 break; 6393 7176 6394 7177 case 395: 6395 #line 1566 "parser.yy" /* yacc.c:1646 */ 6396 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6397 #line 6398 "Parser/parser.cc" /* yacc.c:1646 */ 7178 7179 /* Line 1806 of yacc.c */ 7180 #line 1566 "parser.yy" 7181 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 6398 7182 break; 6399 7183 6400 7184 case 396: 6401 #line 1571 "parser.yy" /* yacc.c:1646 */ 7185 7186 /* Line 1806 of yacc.c */ 7187 #line 1571 "parser.yy" 6402 7188 { (yyval.en) = 0; } 6403 #line 6404 "Parser/parser.cc" /* yacc.c:1646 */6404 7189 break; 6405 7190 6406 7191 case 397: 6407 #line 1573 "parser.yy" /* yacc.c:1646 */ 6408 { (yyval.en) = (yyvsp[0].en); } 6409 #line 6410 "Parser/parser.cc" /* yacc.c:1646 */ 7192 7193 /* Line 1806 of yacc.c */ 7194 #line 1573 "parser.yy" 7195 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6410 7196 break; 6411 7197 6412 7198 case 398: 6413 #line 1580 "parser.yy" /* yacc.c:1646 */ 7199 7200 /* Line 1806 of yacc.c */ 7201 #line 1580 "parser.yy" 6414 7202 { (yyval.decl) = 0; } 6415 #line 6416 "Parser/parser.cc" /* yacc.c:1646 */6416 7203 break; 6417 7204 6418 7205 case 402: 6419 #line 1588 "parser.yy" /* yacc.c:1646 */ 6420 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6421 #line 6422 "Parser/parser.cc" /* yacc.c:1646 */ 7206 7207 /* Line 1806 of yacc.c */ 7208 #line 1588 "parser.yy" 7209 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6422 7210 break; 6423 7211 6424 7212 case 403: 6425 #line 1590 "parser.yy" /* yacc.c:1646 */ 6426 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6427 #line 6428 "Parser/parser.cc" /* yacc.c:1646 */ 7213 7214 /* Line 1806 of yacc.c */ 7215 #line 1590 "parser.yy" 7216 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6428 7217 break; 6429 7218 6430 7219 case 404: 6431 #line 1592 "parser.yy" /* yacc.c:1646 */ 6432 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6433 #line 6434 "Parser/parser.cc" /* yacc.c:1646 */ 7220 7221 /* Line 1806 of yacc.c */ 7222 #line 1592 "parser.yy" 7223 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6434 7224 break; 6435 7225 6436 7226 case 406: 6437 #line 1600 "parser.yy" /* yacc.c:1646 */ 6438 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6439 #line 6440 "Parser/parser.cc" /* yacc.c:1646 */ 7227 7228 /* Line 1806 of yacc.c */ 7229 #line 1600 "parser.yy" 7230 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6440 7231 break; 6441 7232 6442 7233 case 407: 6443 #line 1602 "parser.yy" /* yacc.c:1646 */ 6444 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6445 #line 6446 "Parser/parser.cc" /* yacc.c:1646 */ 7234 7235 /* Line 1806 of yacc.c */ 7236 #line 1602 "parser.yy" 7237 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6446 7238 break; 6447 7239 6448 7240 case 408: 6449 #line 1604 "parser.yy" /* yacc.c:1646 */ 6450 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6451 #line 6452 "Parser/parser.cc" /* yacc.c:1646 */ 7241 7242 /* Line 1806 of yacc.c */ 7243 #line 1604 "parser.yy" 7244 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 6452 7245 break; 6453 7246 6454 7247 case 410: 6455 #line 1610 "parser.yy" /* yacc.c:1646 */ 6456 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6457 #line 6458 "Parser/parser.cc" /* yacc.c:1646 */ 7248 7249 /* Line 1806 of yacc.c */ 7250 #line 1610 "parser.yy" 7251 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6458 7252 break; 6459 7253 6460 7254 case 411: 6461 #line 1615 "parser.yy" /* yacc.c:1646 */ 7255 7256 /* Line 1806 of yacc.c */ 7257 #line 1615 "parser.yy" 6462 7258 { (yyval.decl) = 0; } 6463 #line 6464 "Parser/parser.cc" /* yacc.c:1646 */6464 7259 break; 6465 7260 6466 7261 case 414: 6467 #line 1622 "parser.yy" /* yacc.c:1646 */ 6468 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6469 #line 6470 "Parser/parser.cc" /* yacc.c:1646 */ 7262 7263 /* Line 1806 of yacc.c */ 7264 #line 1622 "parser.yy" 7265 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6470 7266 break; 6471 7267 6472 7268 case 417: 6473 #line 1629 "parser.yy" /* yacc.c:1646 */ 6474 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6475 #line 6476 "Parser/parser.cc" /* yacc.c:1646 */ 7269 7270 /* Line 1806 of yacc.c */ 7271 #line 1629 "parser.yy" 7272 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6476 7273 break; 6477 7274 6478 7275 case 418: 6479 #line 1631 "parser.yy" /* yacc.c:1646 */ 6480 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6481 #line 6482 "Parser/parser.cc" /* yacc.c:1646 */ 7276 7277 /* Line 1806 of yacc.c */ 7278 #line 1631 "parser.yy" 7279 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6482 7280 break; 6483 7281 6484 7282 case 420: 6485 #line 1640 "parser.yy" /* yacc.c:1646 */ 6486 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6487 #line 6488 "Parser/parser.cc" /* yacc.c:1646 */ 7283 7284 /* Line 1806 of yacc.c */ 7285 #line 1640 "parser.yy" 7286 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6488 7287 break; 6489 7288 6490 7289 case 421: 6491 #line 1643 "parser.yy" /* yacc.c:1646 */ 6492 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6493 #line 6494 "Parser/parser.cc" /* yacc.c:1646 */ 7290 7291 /* Line 1806 of yacc.c */ 7292 #line 1643 "parser.yy" 7293 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6494 7294 break; 6495 7295 6496 7296 case 422: 6497 #line 1645 "parser.yy" /* yacc.c:1646 */ 6498 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6499 #line 6500 "Parser/parser.cc" /* yacc.c:1646 */ 7297 7298 /* Line 1806 of yacc.c */ 7299 #line 1645 "parser.yy" 7300 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 6500 7301 break; 6501 7302 6502 7303 case 427: 6503 #line 1655 "parser.yy" /* yacc.c:1646 */ 6504 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6505 #line 6506 "Parser/parser.cc" /* yacc.c:1646 */ 7304 7305 /* Line 1806 of yacc.c */ 7306 #line 1655 "parser.yy" 7307 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6506 7308 break; 6507 7309 6508 7310 case 429: 6509 #line 1661 "parser.yy" /* yacc.c:1646 */ 7311 7312 /* Line 1806 of yacc.c */ 7313 #line 1661 "parser.yy" 6510 7314 { 6511 7315 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6512 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7316 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6513 7317 } 6514 #line 6515 "Parser/parser.cc" /* yacc.c:1646 */6515 7318 break; 6516 7319 6517 7320 case 430: 6518 #line 1666 "parser.yy" /* yacc.c:1646 */ 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1666 "parser.yy" 6519 7324 { 6520 7325 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6521 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7326 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6522 7327 } 6523 #line 6524 "Parser/parser.cc" /* yacc.c:1646 */6524 7328 break; 6525 7329 6526 7330 case 432: 6527 #line 1675 "parser.yy" /* yacc.c:1646 */ 6528 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6529 #line 6530 "Parser/parser.cc" /* yacc.c:1646 */ 7331 7332 /* Line 1806 of yacc.c */ 7333 #line 1675 "parser.yy" 7334 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6530 7335 break; 6531 7336 6532 7337 case 433: 6533 #line 1684 "parser.yy" /* yacc.c:1646 */ 6534 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6535 #line 6536 "Parser/parser.cc" /* yacc.c:1646 */ 7338 7339 /* Line 1806 of yacc.c */ 7340 #line 1684 "parser.yy" 7341 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 6536 7342 break; 6537 7343 6538 7344 case 434: 6539 #line 1686 "parser.yy" /* yacc.c:1646 */ 6540 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6541 #line 6542 "Parser/parser.cc" /* yacc.c:1646 */ 7345 7346 /* Line 1806 of yacc.c */ 7347 #line 1686 "parser.yy" 7348 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 6542 7349 break; 6543 7350 6544 7351 case 446: 6545 #line 1711 "parser.yy" /* yacc.c:1646 */ 6546 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6547 #line 6548 "Parser/parser.cc" /* yacc.c:1646 */ 7352 7353 /* Line 1806 of yacc.c */ 7354 #line 1711 "parser.yy" 7355 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6548 7356 break; 6549 7357 6550 7358 case 450: 6551 #line 1719 "parser.yy" /* yacc.c:1646 */ 6552 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6553 #line 6554 "Parser/parser.cc" /* yacc.c:1646 */ 7359 7360 /* Line 1806 of yacc.c */ 7361 #line 1719 "parser.yy" 7362 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6554 7363 break; 6555 7364 6556 7365 case 451: 6557 #line 1724 "parser.yy" /* yacc.c:1646 */ 7366 7367 /* Line 1806 of yacc.c */ 7368 #line 1724 "parser.yy" 6558 7369 { (yyval.in) = 0; } 6559 #line 6560 "Parser/parser.cc" /* yacc.c:1646 */6560 7370 break; 6561 7371 6562 7372 case 452: 6563 #line 1726 "parser.yy" /* yacc.c:1646 */ 6564 { (yyval.in) = (yyvsp[0].in); } 6565 #line 6566 "Parser/parser.cc" /* yacc.c:1646 */ 7373 7374 /* Line 1806 of yacc.c */ 7375 #line 1726 "parser.yy" 7376 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6566 7377 break; 6567 7378 6568 7379 case 453: 6569 #line 1728 "parser.yy" /* yacc.c:1646 */ 6570 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6571 #line 6572 "Parser/parser.cc" /* yacc.c:1646 */ 7380 7381 /* Line 1806 of yacc.c */ 7382 #line 1728 "parser.yy" 7383 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 6572 7384 break; 6573 7385 6574 7386 case 454: 6575 #line 1732 "parser.yy" /* yacc.c:1646 */ 6576 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6577 #line 6578 "Parser/parser.cc" /* yacc.c:1646 */ 7387 7388 /* Line 1806 of yacc.c */ 7389 #line 1732 "parser.yy" 7390 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 6578 7391 break; 6579 7392 6580 7393 case 455: 6581 #line 1733 "parser.yy" /* yacc.c:1646 */ 6582 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6583 #line 6584 "Parser/parser.cc" /* yacc.c:1646 */ 7394 7395 /* Line 1806 of yacc.c */ 7396 #line 1733 "parser.yy" 7397 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 6584 7398 break; 6585 7399 6586 7400 case 456: 6587 #line 1738 "parser.yy" /* yacc.c:1646 */ 7401 7402 /* Line 1806 of yacc.c */ 7403 #line 1738 "parser.yy" 6588 7404 { (yyval.in) = 0; } 6589 #line 6590 "Parser/parser.cc" /* yacc.c:1646 */6590 7405 break; 6591 7406 6592 7407 case 458: 6593 #line 1740 "parser.yy" /* yacc.c:1646 */ 6594 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6595 #line 6596 "Parser/parser.cc" /* yacc.c:1646 */ 7408 7409 /* Line 1806 of yacc.c */ 7410 #line 1740 "parser.yy" 7411 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 6596 7412 break; 6597 7413 6598 7414 case 459: 6599 #line 1741 "parser.yy" /* yacc.c:1646 */ 6600 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6601 #line 6602 "Parser/parser.cc" /* yacc.c:1646 */ 7415 7416 /* Line 1806 of yacc.c */ 7417 #line 1741 "parser.yy" 7418 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 6602 7419 break; 6603 7420 6604 7421 case 460: 6605 #line 1743 "parser.yy" /* yacc.c:1646 */ 6606 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6607 #line 6608 "Parser/parser.cc" /* yacc.c:1646 */ 7422 7423 /* Line 1806 of yacc.c */ 7424 #line 1743 "parser.yy" 7425 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 6608 7426 break; 6609 7427 6610 7428 case 462: 6611 #line 1759 "parser.yy" /* yacc.c:1646 */ 6612 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6613 #line 6614 "Parser/parser.cc" /* yacc.c:1646 */ 7429 7430 /* Line 1806 of yacc.c */ 7431 #line 1759 "parser.yy" 7432 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 6614 7433 break; 6615 7434 6616 7435 case 464: 6617 #line 1765 "parser.yy" /* yacc.c:1646 */ 6618 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6619 #line 6620 "Parser/parser.cc" /* yacc.c:1646 */ 7436 7437 /* Line 1806 of yacc.c */ 7438 #line 1765 "parser.yy" 7439 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 6620 7440 break; 6621 7441 6622 7442 case 465: 6623 #line 1771 "parser.yy" /* yacc.c:1646 */ 6624 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6625 #line 6626 "Parser/parser.cc" /* yacc.c:1646 */ 7443 7444 /* Line 1806 of yacc.c */ 7445 #line 1771 "parser.yy" 7446 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 6626 7447 break; 6627 7448 6628 7449 case 466: 6629 #line 1774 "parser.yy" /* yacc.c:1646 */ 6630 { (yyval.en) = (yyvsp[-2].en); } 6631 #line 6632 "Parser/parser.cc" /* yacc.c:1646 */ 7450 7451 /* Line 1806 of yacc.c */ 7452 #line 1774 "parser.yy" 7453 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6632 7454 break; 6633 7455 6634 7456 case 467: 6635 #line 1776 "parser.yy" /* yacc.c:1646 */ 6636 { (yyval.en) = (yyvsp[-2].en); } 6637 #line 6638 "Parser/parser.cc" /* yacc.c:1646 */ 7457 7458 /* Line 1806 of yacc.c */ 7459 #line 1776 "parser.yy" 7460 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6638 7461 break; 6639 7462 6640 7463 case 468: 6641 #line 1778 "parser.yy" /* yacc.c:1646 */ 6642 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6643 #line 6644 "Parser/parser.cc" /* yacc.c:1646 */ 7464 7465 /* Line 1806 of yacc.c */ 7466 #line 1778 "parser.yy" 7467 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 6644 7468 break; 6645 7469 6646 7470 case 469: 6647 #line 1780 "parser.yy" /* yacc.c:1646 */ 6648 { (yyval.en) = (yyvsp[-2].en); } 6649 #line 6650 "Parser/parser.cc" /* yacc.c:1646 */ 7471 7472 /* Line 1806 of yacc.c */ 7473 #line 1780 "parser.yy" 7474 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6650 7475 break; 6651 7476 6652 7477 case 471: 6653 #line 1804 "parser.yy" /* yacc.c:1646 */ 6654 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6655 #line 6656 "Parser/parser.cc" /* yacc.c:1646 */ 7478 7479 /* Line 1806 of yacc.c */ 7480 #line 1804 "parser.yy" 7481 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6656 7482 break; 6657 7483 6658 7484 case 472: 6659 #line 1806 "parser.yy" /* yacc.c:1646 */ 6660 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6661 #line 6662 "Parser/parser.cc" /* yacc.c:1646 */ 7485 7486 /* Line 1806 of yacc.c */ 7487 #line 1806 "parser.yy" 7488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6662 7489 break; 6663 7490 6664 7491 case 473: 6665 #line 1808 "parser.yy" /* yacc.c:1646 */ 6666 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6667 #line 6668 "Parser/parser.cc" /* yacc.c:1646 */ 7492 7493 /* Line 1806 of yacc.c */ 7494 #line 1808 "parser.yy" 7495 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6668 7496 break; 6669 7497 6670 7498 case 475: 6671 #line 1814 "parser.yy" /* yacc.c:1646 */ 6672 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6673 #line 6674 "Parser/parser.cc" /* yacc.c:1646 */ 7499 7500 /* Line 1806 of yacc.c */ 7501 #line 1814 "parser.yy" 7502 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6674 7503 break; 6675 7504 6676 7505 case 476: 6677 #line 1816 "parser.yy" /* yacc.c:1646 */ 6678 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6679 #line 6680 "Parser/parser.cc" /* yacc.c:1646 */ 7506 7507 /* Line 1806 of yacc.c */ 7508 #line 1816 "parser.yy" 7509 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6680 7510 break; 6681 7511 6682 7512 case 477: 6683 #line 1821 "parser.yy" /* yacc.c:1646 */ 6684 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6685 #line 6686 "Parser/parser.cc" /* yacc.c:1646 */ 7513 7514 /* Line 1806 of yacc.c */ 7515 #line 1821 "parser.yy" 7516 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6686 7517 break; 6687 7518 6688 7519 case 479: 6689 #line 1827 "parser.yy" /* yacc.c:1646 */ 6690 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6691 #line 6692 "Parser/parser.cc" /* yacc.c:1646 */ 7520 7521 /* Line 1806 of yacc.c */ 7522 #line 1827 "parser.yy" 7523 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 6692 7524 break; 6693 7525 6694 7526 case 480: 6695 #line 1832 "parser.yy" /* yacc.c:1646 */ 6696 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6697 #line 6698 "Parser/parser.cc" /* yacc.c:1646 */ 7527 7528 /* Line 1806 of yacc.c */ 7529 #line 1832 "parser.yy" 7530 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 6698 7531 break; 6699 7532 6700 7533 case 481: 6701 #line 1834 "parser.yy" /* yacc.c:1646 */ 6702 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6703 #line 6704 "Parser/parser.cc" /* yacc.c:1646 */ 7534 7535 /* Line 1806 of yacc.c */ 7536 #line 1834 "parser.yy" 7537 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 6704 7538 break; 6705 7539 6706 7540 case 483: 6707 #line 1840 "parser.yy" /* yacc.c:1646 */ 7541 7542 /* Line 1806 of yacc.c */ 7543 #line 1840 "parser.yy" 6708 7544 { (yyval.tclass) = DeclarationNode::Type; } 6709 #line 6710 "Parser/parser.cc" /* yacc.c:1646 */6710 7545 break; 6711 7546 6712 7547 case 484: 6713 #line 1842 "parser.yy" /* yacc.c:1646 */ 7548 7549 /* Line 1806 of yacc.c */ 7550 #line 1842 "parser.yy" 6714 7551 { (yyval.tclass) = DeclarationNode::Ftype; } 6715 #line 6716 "Parser/parser.cc" /* yacc.c:1646 */6716 7552 break; 6717 7553 6718 7554 case 485: 6719 #line 1844 "parser.yy" /* yacc.c:1646 */ 7555 7556 /* Line 1806 of yacc.c */ 7557 #line 1844 "parser.yy" 6720 7558 { (yyval.tclass) = DeclarationNode::Dtype; } 6721 #line 6722 "Parser/parser.cc" /* yacc.c:1646 */6722 7559 break; 6723 7560 6724 7561 case 486: 6725 #line 1849 "parser.yy" /* yacc.c:1646 */ 7562 7563 /* Line 1806 of yacc.c */ 7564 #line 1849 "parser.yy" 6726 7565 { (yyval.decl) = 0; } 6727 #line 6728 "Parser/parser.cc" /* yacc.c:1646 */6728 7566 break; 6729 7567 6730 7568 case 487: 6731 #line 1851 "parser.yy" /* yacc.c:1646 */ 6732 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6733 #line 6734 "Parser/parser.cc" /* yacc.c:1646 */ 7569 7570 /* Line 1806 of yacc.c */ 7571 #line 1851 "parser.yy" 7572 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6734 7573 break; 6735 7574 6736 7575 case 488: 6737 #line 1856 "parser.yy" /* yacc.c:1646 */ 7576 7577 /* Line 1806 of yacc.c */ 7578 #line 1856 "parser.yy" 6738 7579 { 6739 typedefTable.openTrait( *(yyvsp[ -3].tok) );6740 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[ -3].tok), (yyvsp[-1].en) );7580 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7581 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6741 7582 } 6742 #line 6743 "Parser/parser.cc" /* yacc.c:1646 */6743 7583 break; 6744 7584 6745 7585 case 489: 6746 #line 1861 "parser.yy" /* yacc.c:1646 */ 6747 { (yyval.decl) = (yyvsp[-1].decl); } 6748 #line 6749 "Parser/parser.cc" /* yacc.c:1646 */ 7586 7587 /* Line 1806 of yacc.c */ 7588 #line 1861 "parser.yy" 7589 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6749 7590 break; 6750 7591 6751 7592 case 490: 6752 #line 1863 "parser.yy" /* yacc.c:1646 */ 7593 7594 /* Line 1806 of yacc.c */ 7595 #line 1863 "parser.yy" 6753 7596 { (yyval.decl) = 0; } 6754 #line 6755 "Parser/parser.cc" /* yacc.c:1646 */6755 7597 break; 6756 7598 6757 7599 case 491: 6758 #line 1868 "parser.yy" /* yacc.c:1646 */ 6759 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6760 #line 6761 "Parser/parser.cc" /* yacc.c:1646 */ 7600 7601 /* Line 1806 of yacc.c */ 7602 #line 1868 "parser.yy" 7603 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 6761 7604 break; 6762 7605 6763 7606 case 493: 6764 #line 1871 "parser.yy" /* yacc.c:1646 */ 6765 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6766 #line 6767 "Parser/parser.cc" /* yacc.c:1646 */ 7607 7608 /* Line 1806 of yacc.c */ 7609 #line 1871 "parser.yy" 7610 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 6767 7611 break; 6768 7612 6769 7613 case 494: 6770 #line 1873 "parser.yy" /* yacc.c:1646 */ 6771 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6772 #line 6773 "Parser/parser.cc" /* yacc.c:1646 */ 7614 7615 /* Line 1806 of yacc.c */ 7616 #line 1873 "parser.yy" 7617 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 6773 7618 break; 6774 7619 6775 7620 case 495: 6776 #line 1878 "parser.yy" /* yacc.c:1646 */ 6777 { (yyval.decl) = (yyvsp[0].decl); } 6778 #line 6779 "Parser/parser.cc" /* yacc.c:1646 */ 7621 7622 /* Line 1806 of yacc.c */ 7623 #line 1878 "parser.yy" 7624 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6779 7625 break; 6780 7626 6781 7627 case 496: 6782 #line 1880 "parser.yy" /* yacc.c:1646 */ 6783 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6784 #line 6785 "Parser/parser.cc" /* yacc.c:1646 */ 7628 7629 /* Line 1806 of yacc.c */ 7630 #line 1880 "parser.yy" 7631 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 6785 7632 break; 6786 7633 6787 7634 case 497: 6788 #line 1882 "parser.yy" /* yacc.c:1646 */ 6789 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6790 #line 6791 "Parser/parser.cc" /* yacc.c:1646 */ 7635 7636 /* Line 1806 of yacc.c */ 7637 #line 1882 "parser.yy" 7638 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 6791 7639 break; 6792 7640 6793 7641 case 498: 6794 #line 1887 "parser.yy" /* yacc.c:1646 */ 6795 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6796 #line 6797 "Parser/parser.cc" /* yacc.c:1646 */ 7642 7643 /* Line 1806 of yacc.c */ 7644 #line 1887 "parser.yy" 7645 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 6797 7646 break; 6798 7647 6799 7648 case 499: 6800 #line 1889 "parser.yy" /* yacc.c:1646 */ 6801 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6802 #line 6803 "Parser/parser.cc" /* yacc.c:1646 */ 7649 7650 /* Line 1806 of yacc.c */ 7651 #line 1889 "parser.yy" 7652 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 6803 7653 break; 6804 7654 6805 7655 case 500: 6806 #line 1894 "parser.yy" /* yacc.c:1646 */ 7656 7657 /* Line 1806 of yacc.c */ 7658 #line 1894 "parser.yy" 6807 7659 { 6808 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );6809 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ 0].tok), 0 );7660 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7661 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6810 7662 } 6811 #line 6812 "Parser/parser.cc" /* yacc.c:1646 */6812 7663 break; 6813 7664 6814 7665 case 501: 6815 #line 1899 "parser.yy" /* yacc.c:1646 */ 7666 7667 /* Line 1806 of yacc.c */ 7668 #line 1899 "parser.yy" 6816 7669 { 6817 typedefTable.addToEnclosingScope( *(yyvsp[ -5].tok), TypedefTable::TG );6818 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ -5].tok), (yyvsp[-2].decl) );7670 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7671 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6819 7672 } 6820 #line 6821 "Parser/parser.cc" /* yacc.c:1646 */6821 7673 break; 6822 7674 6823 7675 case 502: 6824 #line 1907 "parser.yy" /* yacc.c:1646 */ 7676 7677 /* Line 1806 of yacc.c */ 7678 #line 1907 "parser.yy" 6825 7679 { 6826 typedefTable.addToEnclosingScope( *(yyvsp[ -7].tok), TypedefTable::ID );6827 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -7].tok), (yyvsp[-4].decl), 0 );7680 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7681 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6828 7682 } 6829 #line 6830 "Parser/parser.cc" /* yacc.c:1646 */6830 7683 break; 6831 7684 6832 7685 case 503: 6833 #line 1912 "parser.yy" /* yacc.c:1646 */ 7686 7687 /* Line 1806 of yacc.c */ 7688 #line 1912 "parser.yy" 6834 7689 { 6835 typedefTable.enterTrait( *(yyvsp[ -6].tok) );7690 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6836 7691 typedefTable.enterScope(); 6837 7692 } 6838 #line 6839 "Parser/parser.cc" /* yacc.c:1646 */6839 7693 break; 6840 7694 6841 7695 case 504: 6842 #line 1917 "parser.yy" /* yacc.c:1646 */ 7696 7697 /* Line 1806 of yacc.c */ 7698 #line 1917 "parser.yy" 6843 7699 { 6844 7700 typedefTable.leaveTrait(); 6845 typedefTable.addToEnclosingScope( *(yyvsp[ -9].tok), TypedefTable::ID );6846 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );7701 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID ); 7702 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) ); 6847 7703 } 6848 #line 6849 "Parser/parser.cc" /* yacc.c:1646 */6849 7704 break; 6850 7705 6851 7706 case 506: 6852 #line 1927 "parser.yy" /* yacc.c:1646 */ 6853 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6854 #line 6855 "Parser/parser.cc" /* yacc.c:1646 */ 7707 7708 /* Line 1806 of yacc.c */ 7709 #line 1927 "parser.yy" 7710 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6855 7711 break; 6856 7712 6857 7713 case 509: 6858 #line 1937 "parser.yy" /* yacc.c:1646 */ 7714 7715 /* Line 1806 of yacc.c */ 7716 #line 1937 "parser.yy" 6859 7717 { 6860 7718 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6861 (yyval.decl) = (yyvsp[ 0].decl);7719 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6862 7720 } 6863 #line 6864 "Parser/parser.cc" /* yacc.c:1646 */6864 7721 break; 6865 7722 6866 7723 case 510: 6867 #line 1942 "parser.yy" /* yacc.c:1646 */ 7724 7725 /* Line 1806 of yacc.c */ 7726 #line 1942 "parser.yy" 6868 7727 { 6869 7728 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6870 (yyval.decl) = (yyvsp[ 0].decl);7729 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6871 7730 } 6872 #line 6873 "Parser/parser.cc" /* yacc.c:1646 */6873 7731 break; 6874 7732 6875 7733 case 511: 6876 #line 1947 "parser.yy" /* yacc.c:1646 */ 7734 7735 /* Line 1806 of yacc.c */ 7736 #line 1947 "parser.yy" 6877 7737 { 6878 typedefTable.addToEnclosingScope2( *(yyvsp[ 0].tok), TypedefTable::ID );6879 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );7738 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7739 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6880 7740 } 6881 #line 6882 "Parser/parser.cc" /* yacc.c:1646 */6882 7741 break; 6883 7742 6884 7743 case 512: 6885 #line 1955 "parser.yy" /* yacc.c:1646 */ 7744 7745 /* Line 1806 of yacc.c */ 7746 #line 1955 "parser.yy" 6886 7747 { 6887 7748 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6888 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );7749 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 6889 7750 } 6890 #line 6891 "Parser/parser.cc" /* yacc.c:1646 */6891 7751 break; 6892 7752 6893 7753 case 513: 6894 #line 1960 "parser.yy" /* yacc.c:1646 */ 7754 7755 /* Line 1806 of yacc.c */ 7756 #line 1960 "parser.yy" 6895 7757 { 6896 7758 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6897 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );7759 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) ); 6898 7760 } 6899 #line 6900 "Parser/parser.cc" /* yacc.c:1646 */6900 7761 break; 6901 7762 6902 7763 case 514: 6903 #line 1970 "parser.yy" /* yacc.c:1646 */ 7764 7765 /* Line 1806 of yacc.c */ 7766 #line 1970 "parser.yy" 6904 7767 {} 6905 #line 6906 "Parser/parser.cc" /* yacc.c:1646 */6906 7768 break; 6907 7769 6908 7770 case 515: 6909 #line 1972 "parser.yy" /* yacc.c:1646 */ 6910 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6911 #line 6912 "Parser/parser.cc" /* yacc.c:1646 */ 7771 7772 /* Line 1806 of yacc.c */ 7773 #line 1972 "parser.yy" 7774 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 6912 7775 break; 6913 7776 6914 7777 case 517: 6915 #line 1978 "parser.yy" /* yacc.c:1646 */ 6916 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6917 #line 6918 "Parser/parser.cc" /* yacc.c:1646 */ 7778 7779 /* Line 1806 of yacc.c */ 7780 #line 1978 "parser.yy" 7781 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 6918 7782 break; 6919 7783 6920 7784 case 518: 6921 #line 1983 "parser.yy" /* yacc.c:1646 */ 7785 7786 /* Line 1806 of yacc.c */ 7787 #line 1983 "parser.yy" 6922 7788 { (yyval.decl) = 0; } 6923 #line 6924 "Parser/parser.cc" /* yacc.c:1646 */6924 7789 break; 6925 7790 6926 7791 case 522: 6927 #line 1991 "parser.yy" /* yacc.c:1646 */ 7792 7793 /* Line 1806 of yacc.c */ 7794 #line 1991 "parser.yy" 6928 7795 {} 6929 #line 6930 "Parser/parser.cc" /* yacc.c:1646 */6930 7796 break; 6931 7797 6932 7798 case 523: 6933 #line 1993 "parser.yy" /* yacc.c:1646 */ 7799 7800 /* Line 1806 of yacc.c */ 7801 #line 1993 "parser.yy" 6934 7802 { 6935 7803 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 6936 linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) );7804 linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) ); 6937 7805 } 6938 #line 6939 "Parser/parser.cc" /* yacc.c:1646 */6939 7806 break; 6940 7807 6941 7808 case 524: 6942 #line 1998 "parser.yy" /* yacc.c:1646 */ 7809 7810 /* Line 1806 of yacc.c */ 7811 #line 1998 "parser.yy" 6943 7812 { 6944 7813 linkage = linkageStack.top(); 6945 7814 linkageStack.pop(); 6946 (yyval.decl) = (yyvsp[ -1].decl);7815 (yyval.decl) = (yyvsp[(5) - (6)].decl); 6947 7816 } 6948 #line 6949 "Parser/parser.cc" /* yacc.c:1646 */6949 7817 break; 6950 7818 6951 7819 case 525: 6952 #line 2004 "parser.yy" /* yacc.c:1646 */ 7820 7821 /* Line 1806 of yacc.c */ 7822 #line 2004 "parser.yy" 6953 7823 { // mark all fields in list 6954 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7824 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6955 7825 iter->set_extension( true ); 6956 (yyval.decl) = (yyvsp[ 0].decl);7826 (yyval.decl) = (yyvsp[(2) - (2)].decl); 6957 7827 } 6958 #line 6959 "Parser/parser.cc" /* yacc.c:1646 */6959 7828 break; 6960 7829 6961 7830 case 527: 6962 #line 2019 "parser.yy" /* yacc.c:1646 */ 7831 7832 /* Line 1806 of yacc.c */ 7833 #line 2019 "parser.yy" 6963 7834 { 6964 7835 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6965 7836 typedefTable.leaveScope(); 6966 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7837 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6967 7838 } 6968 #line 6969 "Parser/parser.cc" /* yacc.c:1646 */6969 7839 break; 6970 7840 6971 7841 case 528: 6972 #line 2025 "parser.yy" /* yacc.c:1646 */ 7842 7843 /* Line 1806 of yacc.c */ 7844 #line 2025 "parser.yy" 6973 7845 { 6974 7846 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6975 7847 typedefTable.leaveScope(); 6976 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );7848 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) ); 6977 7849 } 6978 #line 6979 "Parser/parser.cc" /* yacc.c:1646 */6979 7850 break; 6980 7851 6981 7852 case 529: 6982 #line 2034 "parser.yy" /* yacc.c:1646 */ 7853 7854 /* Line 1806 of yacc.c */ 7855 #line 2034 "parser.yy" 6983 7856 { 6984 7857 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6985 7858 typedefTable.leaveScope(); 6986 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7859 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6987 7860 } 6988 #line 6989 "Parser/parser.cc" /* yacc.c:1646 */6989 7861 break; 6990 7862 6991 7863 case 530: 6992 #line 2040 "parser.yy" /* yacc.c:1646 */ 7864 7865 /* Line 1806 of yacc.c */ 7866 #line 2040 "parser.yy" 6993 7867 { 6994 7868 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6995 7869 typedefTable.leaveScope(); 6996 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );7870 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) ); 6997 7871 } 6998 #line 6999 "Parser/parser.cc" /* yacc.c:1646 */6999 7872 break; 7000 7873 7001 7874 case 531: 7002 #line 2046 "parser.yy" /* yacc.c:1646 */ 7875 7876 /* Line 1806 of yacc.c */ 7877 #line 2046 "parser.yy" 7003 7878 { 7004 7879 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7005 7880 typedefTable.leaveScope(); 7006 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7881 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7007 7882 } 7008 #line 7009 "Parser/parser.cc" /* yacc.c:1646 */7009 7883 break; 7010 7884 7011 7885 case 532: 7012 #line 2052 "parser.yy" /* yacc.c:1646 */ 7886 7887 /* Line 1806 of yacc.c */ 7888 #line 2052 "parser.yy" 7013 7889 { 7014 7890 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7015 7891 typedefTable.leaveScope(); 7016 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7892 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7017 7893 } 7018 #line 7019 "Parser/parser.cc" /* yacc.c:1646 */7019 7894 break; 7020 7895 7021 7896 case 533: 7022 #line 2058 "parser.yy" /* yacc.c:1646 */ 7897 7898 /* Line 1806 of yacc.c */ 7899 #line 2058 "parser.yy" 7023 7900 { 7024 7901 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7025 7902 typedefTable.leaveScope(); 7026 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );7903 (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); 7027 7904 } 7028 #line 7029 "Parser/parser.cc" /* yacc.c:1646 */7029 7905 break; 7030 7906 7031 7907 case 534: 7032 #line 2066 "parser.yy" /* yacc.c:1646 */ 7908 7909 /* Line 1806 of yacc.c */ 7910 #line 2066 "parser.yy" 7033 7911 { 7034 7912 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7035 7913 typedefTable.leaveScope(); 7036 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );7914 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) ); 7037 7915 } 7038 #line 7039 "Parser/parser.cc" /* yacc.c:1646 */7039 7916 break; 7040 7917 7041 7918 case 535: 7042 #line 2072 "parser.yy" /* yacc.c:1646 */ 7919 7920 /* Line 1806 of yacc.c */ 7921 #line 2072 "parser.yy" 7043 7922 { 7044 7923 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7045 7924 typedefTable.leaveScope(); 7046 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7925 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7047 7926 } 7048 #line 7049 "Parser/parser.cc" /* yacc.c:1646 */7049 7927 break; 7050 7928 7051 7929 case 536: 7052 #line 2080 "parser.yy" /* yacc.c:1646 */ 7930 7931 /* Line 1806 of yacc.c */ 7932 #line 2080 "parser.yy" 7053 7933 { 7054 7934 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7055 7935 typedefTable.leaveScope(); 7056 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7936 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7057 7937 } 7058 #line 7059 "Parser/parser.cc" /* yacc.c:1646 */7059 7938 break; 7060 7939 7061 7940 case 537: 7062 #line 2086 "parser.yy" /* yacc.c:1646 */ 7941 7942 /* Line 1806 of yacc.c */ 7943 #line 2086 "parser.yy" 7063 7944 { 7064 7945 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7065 7946 typedefTable.leaveScope(); 7066 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );7947 (yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) ); 7067 7948 } 7068 #line 7069 "Parser/parser.cc" /* yacc.c:1646 */7069 7949 break; 7070 7950 7071 7951 case 541: 7072 #line 2101 "parser.yy" /* yacc.c:1646 */ 7073 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7074 #line 7075 "Parser/parser.cc" /* yacc.c:1646 */ 7952 7953 /* Line 1806 of yacc.c */ 7954 #line 2101 "parser.yy" 7955 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7075 7956 break; 7076 7957 7077 7958 case 544: 7078 #line 2111 "parser.yy" /* yacc.c:1646 */ 7959 7960 /* Line 1806 of yacc.c */ 7961 #line 2111 "parser.yy" 7079 7962 { (yyval.decl) = 0; } 7080 #line 7081 "Parser/parser.cc" /* yacc.c:1646 */7081 7963 break; 7082 7964 7083 7965 case 547: 7084 #line 2118 "parser.yy" /* yacc.c:1646 */ 7085 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7086 #line 7087 "Parser/parser.cc" /* yacc.c:1646 */ 7966 7967 /* Line 1806 of yacc.c */ 7968 #line 2118 "parser.yy" 7969 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7087 7970 break; 7088 7971 7089 7972 case 548: 7090 #line 2124 "parser.yy" /* yacc.c:1646 */ 7973 7974 /* Line 1806 of yacc.c */ 7975 #line 2124 "parser.yy" 7091 7976 { (yyval.decl) = 0; } 7092 #line 7093 "Parser/parser.cc" /* yacc.c:1646 */7093 7977 break; 7094 7978 7095 7979 case 554: 7096 #line 2139 "parser.yy" /* yacc.c:1646 */ 7097 { delete (yyvsp[0].tok); } 7098 #line 7099 "Parser/parser.cc" /* yacc.c:1646 */ 7980 7981 /* Line 1806 of yacc.c */ 7982 #line 2139 "parser.yy" 7983 {} 7099 7984 break; 7100 7985 7101 7986 case 555: 7102 #line 2140 "parser.yy" /* yacc.c:1646 */ 7103 { delete (yyvsp[0].decl); } 7104 #line 7105 "Parser/parser.cc" /* yacc.c:1646 */ 7987 7988 /* Line 1806 of yacc.c */ 7989 #line 2140 "parser.yy" 7990 {} 7105 7991 break; 7106 7992 7107 7993 case 556: 7108 #line 2141 "parser.yy" /* yacc.c:1646 */ 7109 { delete (yyvsp[0].decl); } 7110 #line 7111 "Parser/parser.cc" /* yacc.c:1646 */ 7994 7995 /* Line 1806 of yacc.c */ 7996 #line 2141 "parser.yy" 7997 {} 7111 7998 break; 7112 7999 7113 8000 case 557: 7114 #line 2142 "parser.yy" /* yacc.c:1646 */ 7115 { delete (yyvsp[0].decl); } 7116 #line 7117 "Parser/parser.cc" /* yacc.c:1646 */ 8001 8002 /* Line 1806 of yacc.c */ 8003 #line 2142 "parser.yy" 8004 {} 7117 8005 break; 7118 8006 7119 8007 case 558: 7120 #line 2177 "parser.yy" /* yacc.c:1646 */ 7121 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7122 #line 7123 "Parser/parser.cc" /* yacc.c:1646 */ 8008 8009 /* Line 1806 of yacc.c */ 8010 #line 2177 "parser.yy" 8011 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7123 8012 break; 7124 8013 7125 8014 case 560: 7126 #line 2180 "parser.yy" /* yacc.c:1646 */ 7127 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7128 #line 7129 "Parser/parser.cc" /* yacc.c:1646 */ 8015 8016 /* Line 1806 of yacc.c */ 8017 #line 2180 "parser.yy" 8018 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7129 8019 break; 7130 8020 7131 8021 case 561: 7132 #line 2182 "parser.yy" /* yacc.c:1646 */ 7133 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7134 #line 7135 "Parser/parser.cc" /* yacc.c:1646 */ 8022 8023 /* Line 1806 of yacc.c */ 8024 #line 2182 "parser.yy" 8025 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7135 8026 break; 7136 8027 7137 8028 case 562: 7138 #line 2187 "parser.yy" /* yacc.c:1646 */ 8029 8030 /* Line 1806 of yacc.c */ 8031 #line 2187 "parser.yy" 7139 8032 { 7140 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7141 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8033 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8034 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7142 8035 } 7143 #line 7144 "Parser/parser.cc" /* yacc.c:1646 */7144 8036 break; 7145 8037 7146 8038 case 563: 7147 #line 2192 "parser.yy" /* yacc.c:1646 */ 7148 { (yyval.decl) = (yyvsp[-1].decl); } 7149 #line 7150 "Parser/parser.cc" /* yacc.c:1646 */ 8039 8040 /* Line 1806 of yacc.c */ 8041 #line 2192 "parser.yy" 8042 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7150 8043 break; 7151 8044 7152 8045 case 564: 7153 #line 2197 "parser.yy" /* yacc.c:1646 */ 7154 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7155 #line 7156 "Parser/parser.cc" /* yacc.c:1646 */ 8046 8047 /* Line 1806 of yacc.c */ 8048 #line 2197 "parser.yy" 8049 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7156 8050 break; 7157 8051 7158 8052 case 565: 7159 #line 2199 "parser.yy" /* yacc.c:1646 */ 7160 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7161 #line 7162 "Parser/parser.cc" /* yacc.c:1646 */ 8053 8054 /* Line 1806 of yacc.c */ 8055 #line 2199 "parser.yy" 8056 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7162 8057 break; 7163 8058 7164 8059 case 566: 7165 #line 2201 "parser.yy" /* yacc.c:1646 */ 7166 { (yyval.decl) = (yyvsp[-1].decl); } 7167 #line 7168 "Parser/parser.cc" /* yacc.c:1646 */ 8060 8061 /* Line 1806 of yacc.c */ 8062 #line 2201 "parser.yy" 8063 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7168 8064 break; 7169 8065 7170 8066 case 567: 7171 #line 2206 "parser.yy" /* yacc.c:1646 */ 7172 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7173 #line 7174 "Parser/parser.cc" /* yacc.c:1646 */ 8067 8068 /* Line 1806 of yacc.c */ 8069 #line 2206 "parser.yy" 8070 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7174 8071 break; 7175 8072 7176 8073 case 568: 7177 #line 2208 "parser.yy" /* yacc.c:1646 */ 7178 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7179 #line 7180 "Parser/parser.cc" /* yacc.c:1646 */ 8074 8075 /* Line 1806 of yacc.c */ 8076 #line 2208 "parser.yy" 8077 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7180 8078 break; 7181 8079 7182 8080 case 569: 7183 #line 2210 "parser.yy" /* yacc.c:1646 */ 7184 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7185 #line 7186 "Parser/parser.cc" /* yacc.c:1646 */ 8081 8082 /* Line 1806 of yacc.c */ 8083 #line 2210 "parser.yy" 8084 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7186 8085 break; 7187 8086 7188 8087 case 570: 7189 #line 2212 "parser.yy" /* yacc.c:1646 */ 7190 { (yyval.decl) = (yyvsp[-1].decl); } 7191 #line 7192 "Parser/parser.cc" /* yacc.c:1646 */ 8088 8089 /* Line 1806 of yacc.c */ 8090 #line 2212 "parser.yy" 8091 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7192 8092 break; 7193 8093 7194 8094 case 571: 7195 #line 2217 "parser.yy" /* yacc.c:1646 */ 7196 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7197 #line 7198 "Parser/parser.cc" /* yacc.c:1646 */ 8095 8096 /* Line 1806 of yacc.c */ 8097 #line 2217 "parser.yy" 8098 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7198 8099 break; 7199 8100 7200 8101 case 572: 7201 #line 2219 "parser.yy" /* yacc.c:1646 */ 7202 { (yyval.decl) = (yyvsp[-1].decl); } 7203 #line 7204 "Parser/parser.cc" /* yacc.c:1646 */ 8102 8103 /* Line 1806 of yacc.c */ 8104 #line 2219 "parser.yy" 8105 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7204 8106 break; 7205 8107 7206 8108 case 573: 7207 #line 2228 "parser.yy" /* yacc.c:1646 */ 7208 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7209 #line 7210 "Parser/parser.cc" /* yacc.c:1646 */ 8109 8110 /* Line 1806 of yacc.c */ 8111 #line 2228 "parser.yy" 8112 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7210 8113 break; 7211 8114 7212 8115 case 575: 7213 #line 2231 "parser.yy" /* yacc.c:1646 */ 7214 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7215 #line 7216 "Parser/parser.cc" /* yacc.c:1646 */ 8116 8117 /* Line 1806 of yacc.c */ 8118 #line 2231 "parser.yy" 8119 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7216 8120 break; 7217 8121 7218 8122 case 576: 7219 #line 2236 "parser.yy" /* yacc.c:1646 */ 7220 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7221 #line 7222 "Parser/parser.cc" /* yacc.c:1646 */ 8123 8124 /* Line 1806 of yacc.c */ 8125 #line 2236 "parser.yy" 8126 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7222 8127 break; 7223 8128 7224 8129 case 577: 7225 #line 2238 "parser.yy" /* yacc.c:1646 */ 7226 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7227 #line 7228 "Parser/parser.cc" /* yacc.c:1646 */ 8130 8131 /* Line 1806 of yacc.c */ 8132 #line 2238 "parser.yy" 8133 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7228 8134 break; 7229 8135 7230 8136 case 578: 7231 #line 2240 "parser.yy" /* yacc.c:1646 */ 7232 { (yyval.decl) = (yyvsp[-1].decl); } 7233 #line 7234 "Parser/parser.cc" /* yacc.c:1646 */ 8137 8138 /* Line 1806 of yacc.c */ 8139 #line 2240 "parser.yy" 8140 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7234 8141 break; 7235 8142 7236 8143 case 579: 7237 #line 2245 "parser.yy" /* yacc.c:1646 */ 7238 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7239 #line 7240 "Parser/parser.cc" /* yacc.c:1646 */ 8144 8145 /* Line 1806 of yacc.c */ 8146 #line 2245 "parser.yy" 8147 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7240 8148 break; 7241 8149 7242 8150 case 580: 7243 #line 2247 "parser.yy" /* yacc.c:1646 */ 7244 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7245 #line 7246 "Parser/parser.cc" /* yacc.c:1646 */ 8151 8152 /* Line 1806 of yacc.c */ 8153 #line 2247 "parser.yy" 8154 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7246 8155 break; 7247 8156 7248 8157 case 581: 7249 #line 2249 "parser.yy" /* yacc.c:1646 */ 7250 { (yyval.decl) = (yyvsp[-1].decl); } 7251 #line 7252 "Parser/parser.cc" /* yacc.c:1646 */ 8158 8159 /* Line 1806 of yacc.c */ 8160 #line 2249 "parser.yy" 8161 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7252 8162 break; 7253 8163 7254 8164 case 582: 7255 #line 2254 "parser.yy" /* yacc.c:1646 */ 7256 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7257 #line 7258 "Parser/parser.cc" /* yacc.c:1646 */ 8165 8166 /* Line 1806 of yacc.c */ 8167 #line 2254 "parser.yy" 8168 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7258 8169 break; 7259 8170 7260 8171 case 583: 7261 #line 2256 "parser.yy" /* yacc.c:1646 */ 7262 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7263 #line 7264 "Parser/parser.cc" /* yacc.c:1646 */ 8172 8173 /* Line 1806 of yacc.c */ 8174 #line 2256 "parser.yy" 8175 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7264 8176 break; 7265 8177 7266 8178 case 584: 7267 #line 2258 "parser.yy" /* yacc.c:1646 */ 7268 { (yyval.decl) = (yyvsp[-1].decl); } 7269 #line 7270 "Parser/parser.cc" /* yacc.c:1646 */ 8179 8180 /* Line 1806 of yacc.c */ 8181 #line 2258 "parser.yy" 8182 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7270 8183 break; 7271 8184 7272 8185 case 588: 7273 #line 2273 "parser.yy" /* yacc.c:1646 */ 7274 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7275 #line 7276 "Parser/parser.cc" /* yacc.c:1646 */ 8186 8187 /* Line 1806 of yacc.c */ 8188 #line 2273 "parser.yy" 8189 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7276 8190 break; 7277 8191 7278 8192 case 589: 7279 #line 2275 "parser.yy" /* yacc.c:1646 */ 7280 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7281 #line 7282 "Parser/parser.cc" /* yacc.c:1646 */ 8193 8194 /* Line 1806 of yacc.c */ 8195 #line 2275 "parser.yy" 8196 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7282 8197 break; 7283 8198 7284 8199 case 590: 7285 #line 2277 "parser.yy" /* yacc.c:1646 */ 7286 { (yyval.decl) = (yyvsp[-1].decl); } 7287 #line 7288 "Parser/parser.cc" /* yacc.c:1646 */ 8200 8201 /* Line 1806 of yacc.c */ 8202 #line 2277 "parser.yy" 8203 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7288 8204 break; 7289 8205 7290 8206 case 591: 7291 #line 2282 "parser.yy" /* yacc.c:1646 */ 7292 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7293 #line 7294 "Parser/parser.cc" /* yacc.c:1646 */ 8207 8208 /* Line 1806 of yacc.c */ 8209 #line 2282 "parser.yy" 8210 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7294 8211 break; 7295 8212 7296 8213 case 592: 7297 #line 2284 "parser.yy" /* yacc.c:1646 */ 7298 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7299 #line 7300 "Parser/parser.cc" /* yacc.c:1646 */ 8214 8215 /* Line 1806 of yacc.c */ 8216 #line 2284 "parser.yy" 8217 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7300 8218 break; 7301 8219 7302 8220 case 593: 7303 #line 2286 "parser.yy" /* yacc.c:1646 */ 7304 { (yyval.decl) = (yyvsp[-1].decl); } 7305 #line 7306 "Parser/parser.cc" /* yacc.c:1646 */ 8221 8222 /* Line 1806 of yacc.c */ 8223 #line 2286 "parser.yy" 8224 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7306 8225 break; 7307 8226 7308 8227 case 594: 7309 #line 2291 "parser.yy" /* yacc.c:1646 */ 7310 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7311 #line 7312 "Parser/parser.cc" /* yacc.c:1646 */ 8228 8229 /* Line 1806 of yacc.c */ 8230 #line 2291 "parser.yy" 8231 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7312 8232 break; 7313 8233 7314 8234 case 595: 7315 #line 2293 "parser.yy" /* yacc.c:1646 */ 7316 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7317 #line 7318 "Parser/parser.cc" /* yacc.c:1646 */ 8235 8236 /* Line 1806 of yacc.c */ 8237 #line 2293 "parser.yy" 8238 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7318 8239 break; 7319 8240 7320 8241 case 596: 7321 #line 2295 "parser.yy" /* yacc.c:1646 */ 7322 { (yyval.decl) = (yyvsp[-1].decl); } 7323 #line 7324 "Parser/parser.cc" /* yacc.c:1646 */ 8242 8243 /* Line 1806 of yacc.c */ 8244 #line 2295 "parser.yy" 8245 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7324 8246 break; 7325 8247 7326 8248 case 597: 7327 #line 2310 "parser.yy" /* yacc.c:1646 */ 7328 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7329 #line 7330 "Parser/parser.cc" /* yacc.c:1646 */ 8249 8250 /* Line 1806 of yacc.c */ 8251 #line 2310 "parser.yy" 8252 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7330 8253 break; 7331 8254 7332 8255 case 599: 7333 #line 2313 "parser.yy" /* yacc.c:1646 */ 7334 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7335 #line 7336 "Parser/parser.cc" /* yacc.c:1646 */ 8256 8257 /* Line 1806 of yacc.c */ 8258 #line 2313 "parser.yy" 8259 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7336 8260 break; 7337 8261 7338 8262 case 600: 7339 #line 2315 "parser.yy" /* yacc.c:1646 */ 7340 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7341 #line 7342 "Parser/parser.cc" /* yacc.c:1646 */ 8263 8264 /* Line 1806 of yacc.c */ 8265 #line 2315 "parser.yy" 8266 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7342 8267 break; 7343 8268 7344 8269 case 602: 7345 #line 2321 "parser.yy" /* yacc.c:1646 */ 7346 { (yyval.decl) = (yyvsp[-1].decl); } 7347 #line 7348 "Parser/parser.cc" /* yacc.c:1646 */ 8270 8271 /* Line 1806 of yacc.c */ 8272 #line 2321 "parser.yy" 8273 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7348 8274 break; 7349 8275 7350 8276 case 603: 7351 #line 2326 "parser.yy" /* yacc.c:1646 */ 7352 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7353 #line 7354 "Parser/parser.cc" /* yacc.c:1646 */ 8277 8278 /* Line 1806 of yacc.c */ 8279 #line 2326 "parser.yy" 8280 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7354 8281 break; 7355 8282 7356 8283 case 604: 7357 #line 2328 "parser.yy" /* yacc.c:1646 */ 7358 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7359 #line 7360 "Parser/parser.cc" /* yacc.c:1646 */ 8284 8285 /* Line 1806 of yacc.c */ 8286 #line 2328 "parser.yy" 8287 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7360 8288 break; 7361 8289 7362 8290 case 605: 7363 #line 2330 "parser.yy" /* yacc.c:1646 */ 7364 { (yyval.decl) = (yyvsp[-1].decl); } 7365 #line 7366 "Parser/parser.cc" /* yacc.c:1646 */ 8291 8292 /* Line 1806 of yacc.c */ 8293 #line 2330 "parser.yy" 8294 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7366 8295 break; 7367 8296 7368 8297 case 606: 7369 #line 2335 "parser.yy" /* yacc.c:1646 */ 7370 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7371 #line 7372 "Parser/parser.cc" /* yacc.c:1646 */ 8298 8299 /* Line 1806 of yacc.c */ 8300 #line 2335 "parser.yy" 8301 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7372 8302 break; 7373 8303 7374 8304 case 607: 7375 #line 2337 "parser.yy" /* yacc.c:1646 */ 7376 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7377 #line 7378 "Parser/parser.cc" /* yacc.c:1646 */ 8305 8306 /* Line 1806 of yacc.c */ 8307 #line 2337 "parser.yy" 8308 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7378 8309 break; 7379 8310 7380 8311 case 608: 7381 #line 2339 "parser.yy" /* yacc.c:1646 */ 7382 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7383 #line 7384 "Parser/parser.cc" /* yacc.c:1646 */ 8312 8313 /* Line 1806 of yacc.c */ 8314 #line 2339 "parser.yy" 8315 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7384 8316 break; 7385 8317 7386 8318 case 609: 7387 #line 2341 "parser.yy" /* yacc.c:1646 */ 7388 { (yyval.decl) = (yyvsp[-1].decl); } 7389 #line 7390 "Parser/parser.cc" /* yacc.c:1646 */ 8319 8320 /* Line 1806 of yacc.c */ 8321 #line 2341 "parser.yy" 8322 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7390 8323 break; 7391 8324 7392 8325 case 610: 7393 #line 2346 "parser.yy" /* yacc.c:1646 */ 7394 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7395 #line 7396 "Parser/parser.cc" /* yacc.c:1646 */ 8326 8327 /* Line 1806 of yacc.c */ 8328 #line 2346 "parser.yy" 8329 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7396 8330 break; 7397 8331 7398 8332 case 611: 7399 #line 2348 "parser.yy" /* yacc.c:1646 */ 7400 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7401 #line 7402 "Parser/parser.cc" /* yacc.c:1646 */ 8333 8334 /* Line 1806 of yacc.c */ 8335 #line 2348 "parser.yy" 8336 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7402 8337 break; 7403 8338 7404 8339 case 612: 7405 #line 2350 "parser.yy" /* yacc.c:1646 */ 7406 { (yyval.decl) = (yyvsp[-1].decl); } 7407 #line 7408 "Parser/parser.cc" /* yacc.c:1646 */ 8340 8341 /* Line 1806 of yacc.c */ 8342 #line 2350 "parser.yy" 8343 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7408 8344 break; 7409 8345 7410 8346 case 613: 7411 #line 2360 "parser.yy" /* yacc.c:1646 */ 7412 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7413 #line 7414 "Parser/parser.cc" /* yacc.c:1646 */ 8347 8348 /* Line 1806 of yacc.c */ 8349 #line 2360 "parser.yy" 8350 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7414 8351 break; 7415 8352 7416 8353 case 615: 7417 #line 2363 "parser.yy" /* yacc.c:1646 */ 7418 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7419 #line 7420 "Parser/parser.cc" /* yacc.c:1646 */ 8354 8355 /* Line 1806 of yacc.c */ 8356 #line 2363 "parser.yy" 8357 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7420 8358 break; 7421 8359 7422 8360 case 616: 7423 #line 2365 "parser.yy" /* yacc.c:1646 */ 7424 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7425 #line 7426 "Parser/parser.cc" /* yacc.c:1646 */ 8361 8362 /* Line 1806 of yacc.c */ 8363 #line 2365 "parser.yy" 8364 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7426 8365 break; 7427 8366 7428 8367 case 617: 7429 #line 2370 "parser.yy" /* yacc.c:1646 */ 7430 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7431 #line 7432 "Parser/parser.cc" /* yacc.c:1646 */ 8368 8369 /* Line 1806 of yacc.c */ 8370 #line 2370 "parser.yy" 8371 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7432 8372 break; 7433 8373 7434 8374 case 618: 7435 #line 2372 "parser.yy" /* yacc.c:1646 */ 7436 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7437 #line 7438 "Parser/parser.cc" /* yacc.c:1646 */ 8375 8376 /* Line 1806 of yacc.c */ 8377 #line 2372 "parser.yy" 8378 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7438 8379 break; 7439 8380 7440 8381 case 619: 7441 #line 2374 "parser.yy" /* yacc.c:1646 */ 7442 { (yyval.decl) = (yyvsp[-1].decl); } 7443 #line 7444 "Parser/parser.cc" /* yacc.c:1646 */ 8382 8383 /* Line 1806 of yacc.c */ 8384 #line 2374 "parser.yy" 8385 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7444 8386 break; 7445 8387 7446 8388 case 620: 7447 #line 2379 "parser.yy" /* yacc.c:1646 */ 7448 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7449 #line 7450 "Parser/parser.cc" /* yacc.c:1646 */ 8389 8390 /* Line 1806 of yacc.c */ 8391 #line 2379 "parser.yy" 8392 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7450 8393 break; 7451 8394 7452 8395 case 621: 7453 #line 2381 "parser.yy" /* yacc.c:1646 */ 7454 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7455 #line 7456 "Parser/parser.cc" /* yacc.c:1646 */ 8396 8397 /* Line 1806 of yacc.c */ 8398 #line 2381 "parser.yy" 8399 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7456 8400 break; 7457 8401 7458 8402 case 622: 7459 #line 2383 "parser.yy" /* yacc.c:1646 */ 7460 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7461 #line 7462 "Parser/parser.cc" /* yacc.c:1646 */ 8403 8404 /* Line 1806 of yacc.c */ 8405 #line 2383 "parser.yy" 8406 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7462 8407 break; 7463 8408 7464 8409 case 623: 7465 #line 2385 "parser.yy" /* yacc.c:1646 */ 7466 { (yyval.decl) = (yyvsp[-1].decl); } 7467 #line 7468 "Parser/parser.cc" /* yacc.c:1646 */ 8410 8411 /* Line 1806 of yacc.c */ 8412 #line 2385 "parser.yy" 8413 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7468 8414 break; 7469 8415 7470 8416 case 624: 7471 #line 2390 "parser.yy" /* yacc.c:1646 */ 7472 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7473 #line 7474 "Parser/parser.cc" /* yacc.c:1646 */ 8417 8418 /* Line 1806 of yacc.c */ 8419 #line 2390 "parser.yy" 8420 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7474 8421 break; 7475 8422 7476 8423 case 625: 7477 #line 2392 "parser.yy" /* yacc.c:1646 */ 7478 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7479 #line 7480 "Parser/parser.cc" /* yacc.c:1646 */ 8424 8425 /* Line 1806 of yacc.c */ 8426 #line 2392 "parser.yy" 8427 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7480 8428 break; 7481 8429 7482 8430 case 626: 7483 #line 2394 "parser.yy" /* yacc.c:1646 */ 7484 { (yyval.decl) = (yyvsp[-1].decl); } 7485 #line 7486 "Parser/parser.cc" /* yacc.c:1646 */ 8431 8432 /* Line 1806 of yacc.c */ 8433 #line 2394 "parser.yy" 8434 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7486 8435 break; 7487 8436 7488 8437 case 627: 7489 #line 2425 "parser.yy" /* yacc.c:1646 */ 7490 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7491 #line 7492 "Parser/parser.cc" /* yacc.c:1646 */ 8438 8439 /* Line 1806 of yacc.c */ 8440 #line 2425 "parser.yy" 8441 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7492 8442 break; 7493 8443 7494 8444 case 629: 7495 #line 2428 "parser.yy" /* yacc.c:1646 */ 7496 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7497 #line 7498 "Parser/parser.cc" /* yacc.c:1646 */ 8445 8446 /* Line 1806 of yacc.c */ 8447 #line 2428 "parser.yy" 8448 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7498 8449 break; 7499 8450 7500 8451 case 630: 7501 #line 2430 "parser.yy" /* yacc.c:1646 */ 7502 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7503 #line 7504 "Parser/parser.cc" /* yacc.c:1646 */ 8452 8453 /* Line 1806 of yacc.c */ 8454 #line 2430 "parser.yy" 8455 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7504 8456 break; 7505 8457 7506 8458 case 631: 7507 #line 2435 "parser.yy" /* yacc.c:1646 */ 8459 8460 /* Line 1806 of yacc.c */ 8461 #line 2435 "parser.yy" 7508 8462 { 7509 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7510 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8463 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8464 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7511 8465 } 7512 #line 7513 "Parser/parser.cc" /* yacc.c:1646 */7513 8466 break; 7514 8467 7515 8468 case 632: 7516 #line 2440 "parser.yy" /* yacc.c:1646 */ 8469 8470 /* Line 1806 of yacc.c */ 8471 #line 2440 "parser.yy" 7517 8472 { 7518 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7519 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8473 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8474 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7520 8475 } 7521 #line 7522 "Parser/parser.cc" /* yacc.c:1646 */7522 8476 break; 7523 8477 7524 8478 case 633: 7525 #line 2448 "parser.yy" /* yacc.c:1646 */ 7526 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7527 #line 7528 "Parser/parser.cc" /* yacc.c:1646 */ 8479 8480 /* Line 1806 of yacc.c */ 8481 #line 2448 "parser.yy" 8482 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7528 8483 break; 7529 8484 7530 8485 case 634: 7531 #line 2450 "parser.yy" /* yacc.c:1646 */ 7532 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7533 #line 7534 "Parser/parser.cc" /* yacc.c:1646 */ 8486 8487 /* Line 1806 of yacc.c */ 8488 #line 2450 "parser.yy" 8489 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7534 8490 break; 7535 8491 7536 8492 case 635: 7537 #line 2452 "parser.yy" /* yacc.c:1646 */ 7538 { (yyval.decl) = (yyvsp[-1].decl); } 7539 #line 7540 "Parser/parser.cc" /* yacc.c:1646 */ 8493 8494 /* Line 1806 of yacc.c */ 8495 #line 2452 "parser.yy" 8496 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7540 8497 break; 7541 8498 7542 8499 case 636: 7543 #line 2457 "parser.yy" /* yacc.c:1646 */ 7544 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7545 #line 7546 "Parser/parser.cc" /* yacc.c:1646 */ 8500 8501 /* Line 1806 of yacc.c */ 8502 #line 2457 "parser.yy" 8503 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7546 8504 break; 7547 8505 7548 8506 case 637: 7549 #line 2459 "parser.yy" /* yacc.c:1646 */ 7550 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7551 #line 7552 "Parser/parser.cc" /* yacc.c:1646 */ 8507 8508 /* Line 1806 of yacc.c */ 8509 #line 2459 "parser.yy" 8510 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7552 8511 break; 7553 8512 7554 8513 case 638: 7555 #line 2464 "parser.yy" /* yacc.c:1646 */ 7556 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7557 #line 7558 "Parser/parser.cc" /* yacc.c:1646 */ 8514 8515 /* Line 1806 of yacc.c */ 8516 #line 2464 "parser.yy" 8517 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7558 8518 break; 7559 8519 7560 8520 case 639: 7561 #line 2466 "parser.yy" /* yacc.c:1646 */ 7562 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7563 #line 7564 "Parser/parser.cc" /* yacc.c:1646 */ 8521 8522 /* Line 1806 of yacc.c */ 8523 #line 2466 "parser.yy" 8524 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7564 8525 break; 7565 8526 7566 8527 case 641: 7567 #line 2481 "parser.yy" /* yacc.c:1646 */ 7568 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7569 #line 7570 "Parser/parser.cc" /* yacc.c:1646 */ 8528 8529 /* Line 1806 of yacc.c */ 8530 #line 2481 "parser.yy" 8531 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7570 8532 break; 7571 8533 7572 8534 case 642: 7573 #line 2483 "parser.yy" /* yacc.c:1646 */ 7574 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7575 #line 7576 "Parser/parser.cc" /* yacc.c:1646 */ 8535 8536 /* Line 1806 of yacc.c */ 8537 #line 2483 "parser.yy" 8538 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7576 8539 break; 7577 8540 7578 8541 case 643: 7579 #line 2488 "parser.yy" /* yacc.c:1646 */ 8542 8543 /* Line 1806 of yacc.c */ 8544 #line 2488 "parser.yy" 7580 8545 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7581 #line 7582 "Parser/parser.cc" /* yacc.c:1646 */7582 8546 break; 7583 8547 7584 8548 case 644: 7585 #line 2490 "parser.yy" /* yacc.c:1646 */ 7586 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7587 #line 7588 "Parser/parser.cc" /* yacc.c:1646 */ 8549 8550 /* Line 1806 of yacc.c */ 8551 #line 2490 "parser.yy" 8552 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7588 8553 break; 7589 8554 7590 8555 case 645: 7591 #line 2492 "parser.yy" /* yacc.c:1646 */ 7592 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7593 #line 7594 "Parser/parser.cc" /* yacc.c:1646 */ 8556 8557 /* Line 1806 of yacc.c */ 8558 #line 2492 "parser.yy" 8559 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7594 8560 break; 7595 8561 7596 8562 case 646: 7597 #line 2494 "parser.yy" /* yacc.c:1646 */ 7598 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7599 #line 7600 "Parser/parser.cc" /* yacc.c:1646 */ 8563 8564 /* Line 1806 of yacc.c */ 8565 #line 2494 "parser.yy" 8566 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7600 8567 break; 7601 8568 7602 8569 case 647: 7603 #line 2496 "parser.yy" /* yacc.c:1646 */ 7604 { (yyval.decl) = (yyvsp[-1].decl); } 7605 #line 7606 "Parser/parser.cc" /* yacc.c:1646 */ 8570 8571 /* Line 1806 of yacc.c */ 8572 #line 2496 "parser.yy" 8573 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7606 8574 break; 7607 8575 7608 8576 case 649: 7609 #line 2502 "parser.yy" /* yacc.c:1646 */ 7610 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7611 #line 7612 "Parser/parser.cc" /* yacc.c:1646 */ 8577 8578 /* Line 1806 of yacc.c */ 8579 #line 2502 "parser.yy" 8580 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7612 8581 break; 7613 8582 7614 8583 case 650: 7615 #line 2504 "parser.yy" /* yacc.c:1646 */ 7616 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7617 #line 7618 "Parser/parser.cc" /* yacc.c:1646 */ 8584 8585 /* Line 1806 of yacc.c */ 8586 #line 2504 "parser.yy" 8587 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7618 8588 break; 7619 8589 7620 8590 case 651: 7621 #line 2506 "parser.yy" /* yacc.c:1646 */ 7622 { (yyval.decl) = (yyvsp[-1].decl); } 7623 #line 7624 "Parser/parser.cc" /* yacc.c:1646 */ 8591 8592 /* Line 1806 of yacc.c */ 8593 #line 2506 "parser.yy" 8594 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7624 8595 break; 7625 8596 7626 8597 case 652: 7627 #line 2511 "parser.yy" /* yacc.c:1646 */ 7628 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7629 #line 7630 "Parser/parser.cc" /* yacc.c:1646 */ 8598 8599 /* Line 1806 of yacc.c */ 8600 #line 2511 "parser.yy" 8601 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 7630 8602 break; 7631 8603 7632 8604 case 653: 7633 #line 2513 "parser.yy" /* yacc.c:1646 */ 7634 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7635 #line 7636 "Parser/parser.cc" /* yacc.c:1646 */ 8605 8606 /* Line 1806 of yacc.c */ 8607 #line 2513 "parser.yy" 8608 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7636 8609 break; 7637 8610 7638 8611 case 654: 7639 #line 2515 "parser.yy" /* yacc.c:1646 */ 7640 { (yyval.decl) = (yyvsp[-1].decl); } 7641 #line 7642 "Parser/parser.cc" /* yacc.c:1646 */ 8612 8613 /* Line 1806 of yacc.c */ 8614 #line 2515 "parser.yy" 8615 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7642 8616 break; 7643 8617 7644 8618 case 655: 7645 #line 2521 "parser.yy" /* yacc.c:1646 */ 8619 8620 /* Line 1806 of yacc.c */ 8621 #line 2521 "parser.yy" 7646 8622 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7647 #line 7648 "Parser/parser.cc" /* yacc.c:1646 */7648 8623 break; 7649 8624 7650 8625 case 656: 7651 #line 2523 "parser.yy" /* yacc.c:1646 */ 7652 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7653 #line 7654 "Parser/parser.cc" /* yacc.c:1646 */ 8626 8627 /* Line 1806 of yacc.c */ 8628 #line 2523 "parser.yy" 8629 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 7654 8630 break; 7655 8631 7656 8632 case 658: 7657 #line 2529 "parser.yy" /* yacc.c:1646 */ 7658 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7659 #line 7660 "Parser/parser.cc" /* yacc.c:1646 */ 8633 8634 /* Line 1806 of yacc.c */ 8635 #line 2529 "parser.yy" 8636 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 7660 8637 break; 7661 8638 7662 8639 case 659: 7663 #line 2531 "parser.yy" /* yacc.c:1646 */ 8640 8641 /* Line 1806 of yacc.c */ 8642 #line 2531 "parser.yy" 7664 8643 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7665 #line 7666 "Parser/parser.cc" /* yacc.c:1646 */7666 8644 break; 7667 8645 7668 8646 case 660: 7669 #line 2533 "parser.yy" /* yacc.c:1646 */ 7670 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7671 #line 7672 "Parser/parser.cc" /* yacc.c:1646 */ 8647 8648 /* Line 1806 of yacc.c */ 8649 #line 2533 "parser.yy" 8650 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 7672 8651 break; 7673 8652 7674 8653 case 661: 7675 #line 2535 "parser.yy" /* yacc.c:1646 */ 7676 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7677 #line 7678 "Parser/parser.cc" /* yacc.c:1646 */ 8654 8655 /* Line 1806 of yacc.c */ 8656 #line 2535 "parser.yy" 8657 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7678 8658 break; 7679 8659 7680 8660 case 663: 7681 #line 2550 "parser.yy" /* yacc.c:1646 */ 7682 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7683 #line 7684 "Parser/parser.cc" /* yacc.c:1646 */ 8661 8662 /* Line 1806 of yacc.c */ 8663 #line 2550 "parser.yy" 8664 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7684 8665 break; 7685 8666 7686 8667 case 664: 7687 #line 2552 "parser.yy" /* yacc.c:1646 */ 7688 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7689 #line 7690 "Parser/parser.cc" /* yacc.c:1646 */ 8668 8669 /* Line 1806 of yacc.c */ 8670 #line 2552 "parser.yy" 8671 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7690 8672 break; 7691 8673 7692 8674 case 665: 7693 #line 2557 "parser.yy" /* yacc.c:1646 */ 8675 8676 /* Line 1806 of yacc.c */ 8677 #line 2557 "parser.yy" 7694 8678 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7695 #line 7696 "Parser/parser.cc" /* yacc.c:1646 */7696 8679 break; 7697 8680 7698 8681 case 666: 7699 #line 2559 "parser.yy" /* yacc.c:1646 */ 7700 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7701 #line 7702 "Parser/parser.cc" /* yacc.c:1646 */ 8682 8683 /* Line 1806 of yacc.c */ 8684 #line 2559 "parser.yy" 8685 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7702 8686 break; 7703 8687 7704 8688 case 667: 7705 #line 2561 "parser.yy" /* yacc.c:1646 */ 7706 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7707 #line 7708 "Parser/parser.cc" /* yacc.c:1646 */ 8689 8690 /* Line 1806 of yacc.c */ 8691 #line 2561 "parser.yy" 8692 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7708 8693 break; 7709 8694 7710 8695 case 668: 7711 #line 2563 "parser.yy" /* yacc.c:1646 */ 7712 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7713 #line 7714 "Parser/parser.cc" /* yacc.c:1646 */ 8696 8697 /* Line 1806 of yacc.c */ 8698 #line 2563 "parser.yy" 8699 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7714 8700 break; 7715 8701 7716 8702 case 669: 7717 #line 2565 "parser.yy" /* yacc.c:1646 */ 7718 { (yyval.decl) = (yyvsp[-1].decl); } 7719 #line 7720 "Parser/parser.cc" /* yacc.c:1646 */ 8703 8704 /* Line 1806 of yacc.c */ 8705 #line 2565 "parser.yy" 8706 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7720 8707 break; 7721 8708 7722 8709 case 671: 7723 #line 2571 "parser.yy" /* yacc.c:1646 */ 7724 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7725 #line 7726 "Parser/parser.cc" /* yacc.c:1646 */ 8710 8711 /* Line 1806 of yacc.c */ 8712 #line 2571 "parser.yy" 8713 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7726 8714 break; 7727 8715 7728 8716 case 672: 7729 #line 2573 "parser.yy" /* yacc.c:1646 */ 7730 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7731 #line 7732 "Parser/parser.cc" /* yacc.c:1646 */ 8717 8718 /* Line 1806 of yacc.c */ 8719 #line 2573 "parser.yy" 8720 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7732 8721 break; 7733 8722 7734 8723 case 673: 7735 #line 2575 "parser.yy" /* yacc.c:1646 */ 7736 { (yyval.decl) = (yyvsp[-1].decl); } 7737 #line 7738 "Parser/parser.cc" /* yacc.c:1646 */ 8724 8725 /* Line 1806 of yacc.c */ 8726 #line 2575 "parser.yy" 8727 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7738 8728 break; 7739 8729 7740 8730 case 674: 7741 #line 2580 "parser.yy" /* yacc.c:1646 */ 7742 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7743 #line 7744 "Parser/parser.cc" /* yacc.c:1646 */ 8731 8732 /* Line 1806 of yacc.c */ 8733 #line 2580 "parser.yy" 8734 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 7744 8735 break; 7745 8736 7746 8737 case 675: 7747 #line 2582 "parser.yy" /* yacc.c:1646 */ 7748 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7749 #line 7750 "Parser/parser.cc" /* yacc.c:1646 */ 8738 8739 /* Line 1806 of yacc.c */ 8740 #line 2582 "parser.yy" 8741 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7750 8742 break; 7751 8743 7752 8744 case 676: 7753 #line 2584 "parser.yy" /* yacc.c:1646 */ 7754 { (yyval.decl) = (yyvsp[-1].decl); } 7755 #line 7756 "Parser/parser.cc" /* yacc.c:1646 */ 8745 8746 /* Line 1806 of yacc.c */ 8747 #line 2584 "parser.yy" 8748 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7756 8749 break; 7757 8750 7758 8751 case 678: 7759 #line 2591 "parser.yy" /* yacc.c:1646 */ 7760 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7761 #line 7762 "Parser/parser.cc" /* yacc.c:1646 */ 8752 8753 /* Line 1806 of yacc.c */ 8754 #line 2591 "parser.yy" 8755 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7762 8756 break; 7763 8757 7764 8758 case 680: 7765 #line 2602 "parser.yy" /* yacc.c:1646 */ 8759 8760 /* Line 1806 of yacc.c */ 8761 #line 2602 "parser.yy" 7766 8762 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7767 #line 7768 "Parser/parser.cc" /* yacc.c:1646 */7768 8763 break; 7769 8764 7770 8765 case 681: 7771 #line 2605 "parser.yy" /* yacc.c:1646 */ 7772 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7773 #line 7774 "Parser/parser.cc" /* yacc.c:1646 */ 8766 8767 /* Line 1806 of yacc.c */ 8768 #line 2605 "parser.yy" 8769 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7774 8770 break; 7775 8771 7776 8772 case 682: 7777 #line 2607 "parser.yy" /* yacc.c:1646 */ 7778 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7779 #line 7780 "Parser/parser.cc" /* yacc.c:1646 */ 8773 8774 /* Line 1806 of yacc.c */ 8775 #line 2607 "parser.yy" 8776 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 7780 8777 break; 7781 8778 7782 8779 case 683: 7783 #line 2610 "parser.yy" /* yacc.c:1646 */ 7784 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7785 #line 7786 "Parser/parser.cc" /* yacc.c:1646 */ 8780 8781 /* Line 1806 of yacc.c */ 8782 #line 2610 "parser.yy" 8783 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7786 8784 break; 7787 8785 7788 8786 case 684: 7789 #line 2612 "parser.yy" /* yacc.c:1646 */ 7790 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7791 #line 7792 "Parser/parser.cc" /* yacc.c:1646 */ 8787 8788 /* Line 1806 of yacc.c */ 8789 #line 2612 "parser.yy" 8790 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 7792 8791 break; 7793 8792 7794 8793 case 685: 7795 #line 2614 "parser.yy" /* yacc.c:1646 */ 7796 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7797 #line 7798 "Parser/parser.cc" /* yacc.c:1646 */ 8794 8795 /* Line 1806 of yacc.c */ 8796 #line 2614 "parser.yy" 8797 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 7798 8798 break; 7799 8799 7800 8800 case 687: 7801 #line 2628 "parser.yy" /* yacc.c:1646 */ 7802 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7803 #line 7804 "Parser/parser.cc" /* yacc.c:1646 */ 8801 8802 /* Line 1806 of yacc.c */ 8803 #line 2628 "parser.yy" 8804 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7804 8805 break; 7805 8806 7806 8807 case 688: 7807 #line 2630 "parser.yy" /* yacc.c:1646 */ 7808 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7809 #line 7810 "Parser/parser.cc" /* yacc.c:1646 */ 8808 8809 /* Line 1806 of yacc.c */ 8810 #line 2630 "parser.yy" 8811 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7810 8812 break; 7811 8813 7812 8814 case 689: 7813 #line 2635 "parser.yy" /* yacc.c:1646 */ 8815 8816 /* Line 1806 of yacc.c */ 8817 #line 2635 "parser.yy" 7814 8818 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7815 #line 7816 "Parser/parser.cc" /* yacc.c:1646 */7816 8819 break; 7817 8820 7818 8821 case 690: 7819 #line 2637 "parser.yy" /* yacc.c:1646 */ 7820 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7821 #line 7822 "Parser/parser.cc" /* yacc.c:1646 */ 8822 8823 /* Line 1806 of yacc.c */ 8824 #line 2637 "parser.yy" 8825 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7822 8826 break; 7823 8827 7824 8828 case 691: 7825 #line 2639 "parser.yy" /* yacc.c:1646 */ 7826 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7827 #line 7828 "Parser/parser.cc" /* yacc.c:1646 */ 8829 8830 /* Line 1806 of yacc.c */ 8831 #line 2639 "parser.yy" 8832 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7828 8833 break; 7829 8834 7830 8835 case 692: 7831 #line 2641 "parser.yy" /* yacc.c:1646 */ 7832 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7833 #line 7834 "Parser/parser.cc" /* yacc.c:1646 */ 8836 8837 /* Line 1806 of yacc.c */ 8838 #line 2641 "parser.yy" 8839 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7834 8840 break; 7835 8841 7836 8842 case 693: 7837 #line 2643 "parser.yy" /* yacc.c:1646 */ 7838 { (yyval.decl) = (yyvsp[-1].decl); } 7839 #line 7840 "Parser/parser.cc" /* yacc.c:1646 */ 8843 8844 /* Line 1806 of yacc.c */ 8845 #line 2643 "parser.yy" 8846 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7840 8847 break; 7841 8848 7842 8849 case 695: 7843 #line 2649 "parser.yy" /* yacc.c:1646 */ 7844 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7845 #line 7846 "Parser/parser.cc" /* yacc.c:1646 */ 8850 8851 /* Line 1806 of yacc.c */ 8852 #line 2649 "parser.yy" 8853 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7846 8854 break; 7847 8855 7848 8856 case 696: 7849 #line 2651 "parser.yy" /* yacc.c:1646 */ 7850 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7851 #line 7852 "Parser/parser.cc" /* yacc.c:1646 */ 8857 8858 /* Line 1806 of yacc.c */ 8859 #line 2651 "parser.yy" 8860 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7852 8861 break; 7853 8862 7854 8863 case 697: 7855 #line 2653 "parser.yy" /* yacc.c:1646 */ 7856 { (yyval.decl) = (yyvsp[-1].decl); } 7857 #line 7858 "Parser/parser.cc" /* yacc.c:1646 */ 8864 8865 /* Line 1806 of yacc.c */ 8866 #line 2653 "parser.yy" 8867 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7858 8868 break; 7859 8869 7860 8870 case 698: 7861 #line 2658 "parser.yy" /* yacc.c:1646 */ 7862 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7863 #line 7864 "Parser/parser.cc" /* yacc.c:1646 */ 8871 8872 /* Line 1806 of yacc.c */ 8873 #line 2658 "parser.yy" 8874 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7864 8875 break; 7865 8876 7866 8877 case 699: 7867 #line 2660 "parser.yy" /* yacc.c:1646 */ 7868 { (yyval.decl) = (yyvsp[-1].decl); } 7869 #line 7870 "Parser/parser.cc" /* yacc.c:1646 */ 8878 8879 /* Line 1806 of yacc.c */ 8880 #line 2660 "parser.yy" 8881 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7870 8882 break; 7871 8883 7872 8884 case 702: 7873 #line 2670 "parser.yy" /* yacc.c:1646 */ 7874 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7875 #line 7876 "Parser/parser.cc" /* yacc.c:1646 */ 8885 8886 /* Line 1806 of yacc.c */ 8887 #line 2670 "parser.yy" 8888 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7876 8889 break; 7877 8890 7878 8891 case 705: 7879 #line 2680 "parser.yy" /* yacc.c:1646 */ 7880 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7881 #line 7882 "Parser/parser.cc" /* yacc.c:1646 */ 8892 8893 /* Line 1806 of yacc.c */ 8894 #line 2680 "parser.yy" 8895 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7882 8896 break; 7883 8897 7884 8898 case 706: 7885 #line 2682 "parser.yy" /* yacc.c:1646 */ 7886 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7887 #line 7888 "Parser/parser.cc" /* yacc.c:1646 */ 8899 8900 /* Line 1806 of yacc.c */ 8901 #line 2682 "parser.yy" 8902 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7888 8903 break; 7889 8904 7890 8905 case 707: 7891 #line 2684 "parser.yy" /* yacc.c:1646 */ 7892 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7893 #line 7894 "Parser/parser.cc" /* yacc.c:1646 */ 8906 8907 /* Line 1806 of yacc.c */ 8908 #line 2684 "parser.yy" 8909 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7894 8910 break; 7895 8911 7896 8912 case 708: 7897 #line 2686 "parser.yy" /* yacc.c:1646 */ 7898 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7899 #line 7900 "Parser/parser.cc" /* yacc.c:1646 */ 8913 8914 /* Line 1806 of yacc.c */ 8915 #line 2686 "parser.yy" 8916 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7900 8917 break; 7901 8918 7902 8919 case 709: 7903 #line 2688 "parser.yy" /* yacc.c:1646 */ 7904 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7905 #line 7906 "Parser/parser.cc" /* yacc.c:1646 */ 8920 8921 /* Line 1806 of yacc.c */ 8922 #line 2688 "parser.yy" 8923 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7906 8924 break; 7907 8925 7908 8926 case 710: 7909 #line 2690 "parser.yy" /* yacc.c:1646 */ 7910 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7911 #line 7912 "Parser/parser.cc" /* yacc.c:1646 */ 8927 8928 /* Line 1806 of yacc.c */ 8929 #line 2690 "parser.yy" 8930 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7912 8931 break; 7913 8932 7914 8933 case 711: 7915 #line 2697 "parser.yy" /* yacc.c:1646 */ 7916 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7917 #line 7918 "Parser/parser.cc" /* yacc.c:1646 */ 8934 8935 /* Line 1806 of yacc.c */ 8936 #line 2697 "parser.yy" 8937 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7918 8938 break; 7919 8939 7920 8940 case 712: 7921 #line 2699 "parser.yy" /* yacc.c:1646 */ 7922 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7923 #line 7924 "Parser/parser.cc" /* yacc.c:1646 */ 8941 8942 /* Line 1806 of yacc.c */ 8943 #line 2699 "parser.yy" 8944 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7924 8945 break; 7925 8946 7926 8947 case 713: 7927 #line 2701 "parser.yy" /* yacc.c:1646 */ 7928 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7929 #line 7930 "Parser/parser.cc" /* yacc.c:1646 */ 8948 8949 /* Line 1806 of yacc.c */ 8950 #line 2701 "parser.yy" 8951 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7930 8952 break; 7931 8953 7932 8954 case 714: 7933 #line 2703 "parser.yy" /* yacc.c:1646 */ 7934 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7935 #line 7936 "Parser/parser.cc" /* yacc.c:1646 */ 8955 8956 /* Line 1806 of yacc.c */ 8957 #line 2703 "parser.yy" 8958 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7936 8959 break; 7937 8960 7938 8961 case 715: 7939 #line 2705 "parser.yy" /* yacc.c:1646 */ 7940 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7941 #line 7942 "Parser/parser.cc" /* yacc.c:1646 */ 8962 8963 /* Line 1806 of yacc.c */ 8964 #line 2705 "parser.yy" 8965 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7942 8966 break; 7943 8967 7944 8968 case 716: 7945 #line 2707 "parser.yy" /* yacc.c:1646 */ 7946 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7947 #line 7948 "Parser/parser.cc" /* yacc.c:1646 */ 8969 8970 /* Line 1806 of yacc.c */ 8971 #line 2707 "parser.yy" 8972 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7948 8973 break; 7949 8974 7950 8975 case 717: 7951 #line 2709 "parser.yy" /* yacc.c:1646 */ 7952 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7953 #line 7954 "Parser/parser.cc" /* yacc.c:1646 */ 8976 8977 /* Line 1806 of yacc.c */ 8978 #line 2709 "parser.yy" 8979 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7954 8980 break; 7955 8981 7956 8982 case 718: 7957 #line 2711 "parser.yy" /* yacc.c:1646 */ 7958 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7959 #line 7960 "Parser/parser.cc" /* yacc.c:1646 */ 8983 8984 /* Line 1806 of yacc.c */ 8985 #line 2711 "parser.yy" 8986 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7960 8987 break; 7961 8988 7962 8989 case 719: 7963 #line 2713 "parser.yy" /* yacc.c:1646 */ 7964 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7965 #line 7966 "Parser/parser.cc" /* yacc.c:1646 */ 8990 8991 /* Line 1806 of yacc.c */ 8992 #line 2713 "parser.yy" 8993 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7966 8994 break; 7967 8995 7968 8996 case 720: 7969 #line 2715 "parser.yy" /* yacc.c:1646 */ 7970 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7971 #line 7972 "Parser/parser.cc" /* yacc.c:1646 */ 8997 8998 /* Line 1806 of yacc.c */ 8999 #line 2715 "parser.yy" 9000 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7972 9001 break; 7973 9002 7974 9003 case 721: 7975 #line 2720 "parser.yy" /* yacc.c:1646 */ 7976 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7977 #line 7978 "Parser/parser.cc" /* yacc.c:1646 */ 9004 9005 /* Line 1806 of yacc.c */ 9006 #line 2720 "parser.yy" 9007 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7978 9008 break; 7979 9009 7980 9010 case 722: 7981 #line 2722 "parser.yy" /* yacc.c:1646 */ 7982 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7983 #line 7984 "Parser/parser.cc" /* yacc.c:1646 */ 9011 9012 /* Line 1806 of yacc.c */ 9013 #line 2722 "parser.yy" 9014 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7984 9015 break; 7985 9016 7986 9017 case 723: 7987 #line 2727 "parser.yy" /* yacc.c:1646 */ 7988 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7989 #line 7990 "Parser/parser.cc" /* yacc.c:1646 */ 9018 9019 /* Line 1806 of yacc.c */ 9020 #line 2727 "parser.yy" 9021 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 7990 9022 break; 7991 9023 7992 9024 case 724: 7993 #line 2729 "parser.yy" /* yacc.c:1646 */ 7994 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 7995 #line 7996 "Parser/parser.cc" /* yacc.c:1646 */ 9025 9026 /* Line 1806 of yacc.c */ 9027 #line 2729 "parser.yy" 9028 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 7996 9029 break; 7997 9030 7998 9031 case 726: 7999 #line 2756 "parser.yy" /* yacc.c:1646 */ 8000 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8001 #line 8002 "Parser/parser.cc" /* yacc.c:1646 */ 9032 9033 /* Line 1806 of yacc.c */ 9034 #line 2756 "parser.yy" 9035 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8002 9036 break; 8003 9037 8004 9038 case 730: 8005 #line 2767 "parser.yy" /* yacc.c:1646 */ 8006 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8007 #line 8008 "Parser/parser.cc" /* yacc.c:1646 */ 9039 9040 /* Line 1806 of yacc.c */ 9041 #line 2767 "parser.yy" 9042 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8008 9043 break; 8009 9044 8010 9045 case 731: 8011 #line 2769 "parser.yy" /* yacc.c:1646 */ 8012 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8013 #line 8014 "Parser/parser.cc" /* yacc.c:1646 */ 9046 9047 /* Line 1806 of yacc.c */ 9048 #line 2769 "parser.yy" 9049 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8014 9050 break; 8015 9051 8016 9052 case 732: 8017 #line 2771 "parser.yy" /* yacc.c:1646 */ 8018 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8019 #line 8020 "Parser/parser.cc" /* yacc.c:1646 */ 9053 9054 /* Line 1806 of yacc.c */ 9055 #line 2771 "parser.yy" 9056 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8020 9057 break; 8021 9058 8022 9059 case 733: 8023 #line 2773 "parser.yy" /* yacc.c:1646 */ 8024 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8025 #line 8026 "Parser/parser.cc" /* yacc.c:1646 */ 9060 9061 /* Line 1806 of yacc.c */ 9062 #line 2773 "parser.yy" 9063 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8026 9064 break; 8027 9065 8028 9066 case 734: 8029 #line 2775 "parser.yy" /* yacc.c:1646 */ 8030 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8031 #line 8032 "Parser/parser.cc" /* yacc.c:1646 */ 9067 9068 /* Line 1806 of yacc.c */ 9069 #line 2775 "parser.yy" 9070 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8032 9071 break; 8033 9072 8034 9073 case 735: 8035 #line 2777 "parser.yy" /* yacc.c:1646 */ 8036 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8037 #line 8038 "Parser/parser.cc" /* yacc.c:1646 */ 9074 9075 /* Line 1806 of yacc.c */ 9076 #line 2777 "parser.yy" 9077 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8038 9078 break; 8039 9079 8040 9080 case 736: 8041 #line 2784 "parser.yy" /* yacc.c:1646 */ 8042 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8043 #line 8044 "Parser/parser.cc" /* yacc.c:1646 */ 9081 9082 /* Line 1806 of yacc.c */ 9083 #line 2784 "parser.yy" 9084 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8044 9085 break; 8045 9086 8046 9087 case 737: 8047 #line 2786 "parser.yy" /* yacc.c:1646 */ 8048 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8049 #line 8050 "Parser/parser.cc" /* yacc.c:1646 */ 9088 9089 /* Line 1806 of yacc.c */ 9090 #line 2786 "parser.yy" 9091 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8050 9092 break; 8051 9093 8052 9094 case 738: 8053 #line 2788 "parser.yy" /* yacc.c:1646 */ 8054 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8055 #line 8056 "Parser/parser.cc" /* yacc.c:1646 */ 9095 9096 /* Line 1806 of yacc.c */ 9097 #line 2788 "parser.yy" 9098 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8056 9099 break; 8057 9100 8058 9101 case 739: 8059 #line 2790 "parser.yy" /* yacc.c:1646 */ 8060 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8061 #line 8062 "Parser/parser.cc" /* yacc.c:1646 */ 9102 9103 /* Line 1806 of yacc.c */ 9104 #line 2790 "parser.yy" 9105 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8062 9106 break; 8063 9107 8064 9108 case 740: 8065 #line 2792 "parser.yy" /* yacc.c:1646 */ 8066 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8067 #line 8068 "Parser/parser.cc" /* yacc.c:1646 */ 9109 9110 /* Line 1806 of yacc.c */ 9111 #line 2792 "parser.yy" 9112 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8068 9113 break; 8069 9114 8070 9115 case 741: 8071 #line 2794 "parser.yy" /* yacc.c:1646 */ 8072 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8073 #line 8074 "Parser/parser.cc" /* yacc.c:1646 */ 9116 9117 /* Line 1806 of yacc.c */ 9118 #line 2794 "parser.yy" 9119 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8074 9120 break; 8075 9121 8076 9122 case 742: 8077 #line 2799 "parser.yy" /* yacc.c:1646 */ 8078 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8079 #line 8080 "Parser/parser.cc" /* yacc.c:1646 */ 9123 9124 /* Line 1806 of yacc.c */ 9125 #line 2799 "parser.yy" 9126 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8080 9127 break; 8081 9128 8082 9129 case 743: 8083 #line 2804 "parser.yy" /* yacc.c:1646 */ 8084 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); } 8085 #line 8086 "Parser/parser.cc" /* yacc.c:1646 */ 9130 9131 /* Line 1806 of yacc.c */ 9132 #line 2804 "parser.yy" 9133 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 8086 9134 break; 8087 9135 8088 9136 case 744: 8089 #line 2806 "parser.yy" /* yacc.c:1646 */ 8090 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8091 #line 8092 "Parser/parser.cc" /* yacc.c:1646 */ 9137 9138 /* Line 1806 of yacc.c */ 9139 #line 2806 "parser.yy" 9140 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8092 9141 break; 8093 9142 8094 9143 case 745: 8095 #line 2808 "parser.yy" /* yacc.c:1646 */ 8096 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8097 #line 8098 "Parser/parser.cc" /* yacc.c:1646 */ 9144 9145 /* Line 1806 of yacc.c */ 9146 #line 2808 "parser.yy" 9147 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8098 9148 break; 8099 9149 8100 9150 case 748: 8101 #line 2832 "parser.yy" /* yacc.c:1646 */ 9151 9152 /* Line 1806 of yacc.c */ 9153 #line 2832 "parser.yy" 8102 9154 { (yyval.en) = 0; } 8103 #line 8104 "Parser/parser.cc" /* yacc.c:1646 */8104 9155 break; 8105 9156 8106 9157 case 749: 8107 #line 2834 "parser.yy" /* yacc.c:1646 */ 8108 { (yyval.en) = (yyvsp[0].en); } 8109 #line 8110 "Parser/parser.cc" /* yacc.c:1646 */ 8110 break; 8111 8112 8113 #line 8114 "Parser/parser.cc" /* yacc.c:1646 */ 9158 9159 /* Line 1806 of yacc.c */ 9160 #line 2834 "parser.yy" 9161 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9162 break; 9163 9164 9165 9166 /* Line 1806 of yacc.c */ 9167 #line 9168 "Parser/parser.cc" 8114 9168 default: break; 8115 9169 } … … 8133 9187 *++yyvsp = yyval; 8134 9188 8135 /* Now 'shift' the result of the reduction. Determine what state9189 /* Now `shift' the result of the reduction. Determine what state 8136 9190 that goes to, based on the state we popped back to and the rule 8137 9191 number reduced by. */ … … 8148 9202 8149 9203 8150 /*------------------------------------ --.8151 | yyerrlab -- here on detecting error .|8152 `------------------------------------ --*/9204 /*------------------------------------. 9205 | yyerrlab -- here on detecting error | 9206 `------------------------------------*/ 8153 9207 yyerrlab: 8154 9208 /* Make sure we have latest lookahead translation. See comments at … … 8201 9255 { 8202 9256 /* If just tried and failed to reuse lookahead token after an 8203 error, discard it. */9257 error, discard it. */ 8204 9258 8205 9259 if (yychar <= YYEOF) 8206 {8207 /* Return failure if at end of input. */8208 if (yychar == YYEOF)8209 YYABORT;8210 }9260 { 9261 /* Return failure if at end of input. */ 9262 if (yychar == YYEOF) 9263 YYABORT; 9264 } 8211 9265 else 8212 {8213 yydestruct ("Error: discarding",8214 yytoken, &yylval);8215 yychar = YYEMPTY;8216 }9266 { 9267 yydestruct ("Error: discarding", 9268 yytoken, &yylval); 9269 yychar = YYEMPTY; 9270 } 8217 9271 } 8218 9272 … … 8233 9287 goto yyerrorlab; 8234 9288 8235 /* Do not reclaim the symbols of the rule wh oseaction triggered9289 /* Do not reclaim the symbols of the rule which action triggered 8236 9290 this YYERROR. */ 8237 9291 YYPOPSTACK (yylen); … … 8246 9300 `-------------------------------------------------------------*/ 8247 9301 yyerrlab1: 8248 yyerrstatus = 3; /* Each real token shifted decrements this. */9302 yyerrstatus = 3; /* Each real token shifted decrements this. */ 8249 9303 8250 9304 for (;;) … … 8252 9306 yyn = yypact[yystate]; 8253 9307 if (!yypact_value_is_default (yyn)) 8254 {8255 yyn += YYTERROR;8256 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)8257 {8258 yyn = yytable[yyn];8259 if (0 < yyn)8260 break;8261 }8262 }9308 { 9309 yyn += YYTERROR; 9310 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 9311 { 9312 yyn = yytable[yyn]; 9313 if (0 < yyn) 9314 break; 9315 } 9316 } 8263 9317 8264 9318 /* Pop the current state because it cannot handle the error token. */ 8265 9319 if (yyssp == yyss) 8266 YYABORT;9320 YYABORT; 8267 9321 8268 9322 8269 9323 yydestruct ("Error: popping", 8270 yystos[yystate], yyvsp);9324 yystos[yystate], yyvsp); 8271 9325 YYPOPSTACK (1); 8272 9326 yystate = *yyssp; … … 8274 9328 } 8275 9329 8276 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN8277 9330 *++yyvsp = yylval; 8278 YY_IGNORE_MAYBE_UNINITIALIZED_END8279 9331 8280 9332 … … 8300 9352 goto yyreturn; 8301 9353 8302 #if !defined yyoverflow|| YYERROR_VERBOSE9354 #if !defined(yyoverflow) || YYERROR_VERBOSE 8303 9355 /*-------------------------------------------------. 8304 9356 | yyexhaustedlab -- memory exhaustion comes here. | … … 8319 9371 yytoken, &yylval); 8320 9372 } 8321 /* Do not reclaim the symbols of the rule wh oseaction triggered9373 /* Do not reclaim the symbols of the rule which action triggered 8322 9374 this YYABORT or YYACCEPT. */ 8323 9375 YYPOPSTACK (yylen); … … 8326 9378 { 8327 9379 yydestruct ("Cleanup: popping", 8328 yystos[*yyssp], yyvsp);9380 yystos[*yyssp], yyvsp); 8329 9381 YYPOPSTACK (1); 8330 9382 } … … 8337 9389 YYSTACK_FREE (yymsg); 8338 9390 #endif 8339 return yyresult; 9391 /* Make sure YYID is used. */ 9392 return YYID (yyresult); 8340 9393 } 8341 #line 2837 "parser.yy" /* yacc.c:1906 */ 9394 9395 9396 9397 /* Line 2067 of yacc.c */ 9398 #line 2837 "parser.yy" 8342 9399 8343 9400 // ----end of grammar---- … … 8358 9415 // compile-command: "make install" // 8359 9416 // End: // 9417
Note:
See TracChangeset
for help on using the changeset viewer.