Changes in src/Parser/parser.cc [4ed70597:3b5e3aa]
- File:
-
- 1 edited
-
src/Parser/parser.cc (modified) (71 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
r4ed70597 r3b5e3aa 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 … … 78 82 #include "TypeData.h" 79 83 #include "LinkageSpec.h" 84 using namespace std; 80 85 81 86 extern DeclarationNode * parseTree; … … 83 88 extern TypedefTable typedefTable; 84 89 85 st d::stack< LinkageSpec::Spec > linkageStack;86 87 void appendStr( st d::string *to, std::string *from ) {90 stack< LinkageSpec::Spec > linkageStack; 91 92 void appendStr( string *to, string *from ) { 88 93 // "abc" "def" "ghi" => "abcdefghi", remove new text from quotes and insert before last quote in old string. 89 94 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); 90 95 } // appendStr 91 96 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 97 98 /* Line 268 of yacc.c */ 99 #line 100 "Parser/parser.cc" 100 101 /* Enabling traces. */ 102 #ifndef YYDEBUG 103 # define YYDEBUG 1 104 #endif 101 105 102 106 /* Enabling verbose error messages. */ … … 108 112 #endif 109 113 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 114 /* Enabling the token table. */ 115 #ifndef YYTOKEN_TABLE 116 # define YYTOKEN_TABLE 0 117 117 #endif 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 118 119 120 /* Tokens. */ 123 121 #ifndef YYTOKENTYPE 124 122 # 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 }; 123 /* Put the tokens into the symbol table, so that GDB and other debuggers 124 know about them. */ 125 enum yytokentype { 126 TYPEDEF = 258, 127 AUTO = 259, 128 EXTERN = 260, 129 REGISTER = 261, 130 STATIC = 262, 131 INLINE = 263, 132 FORTRAN = 264, 133 CONST = 265, 134 VOLATILE = 266, 135 RESTRICT = 267, 136 FORALL = 268, 137 LVALUE = 269, 138 VOID = 270, 139 CHAR = 271, 140 SHORT = 272, 141 INT = 273, 142 LONG = 274, 143 FLOAT = 275, 144 DOUBLE = 276, 145 SIGNED = 277, 146 UNSIGNED = 278, 147 VALIST = 279, 148 BOOL = 280, 149 COMPLEX = 281, 150 IMAGINARY = 282, 151 TYPEOF = 283, 152 LABEL = 284, 153 ENUM = 285, 154 STRUCT = 286, 155 UNION = 287, 156 OTYPE = 288, 157 FTYPE = 289, 158 DTYPE = 290, 159 TRAIT = 291, 160 SIZEOF = 292, 161 OFFSETOF = 293, 162 ATTRIBUTE = 294, 163 EXTENSION = 295, 164 IF = 296, 165 ELSE = 297, 166 SWITCH = 298, 167 CASE = 299, 168 DEFAULT = 300, 169 DO = 301, 170 WHILE = 302, 171 FOR = 303, 172 BREAK = 304, 173 CONTINUE = 305, 174 GOTO = 306, 175 RETURN = 307, 176 CHOOSE = 308, 177 DISABLE = 309, 178 ENABLE = 310, 179 FALLTHRU = 311, 180 TRY = 312, 181 CATCH = 313, 182 CATCHRESUME = 314, 183 FINALLY = 315, 184 THROW = 316, 185 THROWRESUME = 317, 186 AT = 318, 187 ASM = 319, 188 ALIGNAS = 320, 189 ALIGNOF = 321, 190 ATOMIC = 322, 191 GENERIC = 323, 192 NORETURN = 324, 193 STATICASSERT = 325, 194 THREADLOCAL = 326, 195 IDENTIFIER = 327, 196 QUOTED_IDENTIFIER = 328, 197 TYPEDEFname = 329, 198 TYPEGENname = 330, 199 ATTR_IDENTIFIER = 331, 200 ATTR_TYPEDEFname = 332, 201 ATTR_TYPEGENname = 333, 202 INTEGERconstant = 334, 203 FLOATINGconstant = 335, 204 CHARACTERconstant = 336, 205 STRINGliteral = 337, 206 ZERO = 338, 207 ONE = 339, 208 ARROW = 340, 209 ICR = 341, 210 DECR = 342, 211 LS = 343, 212 RS = 344, 213 LE = 345, 214 GE = 346, 215 EQ = 347, 216 NE = 348, 217 ANDAND = 349, 218 OROR = 350, 219 ELLIPSIS = 351, 220 MULTassign = 352, 221 DIVassign = 353, 222 MODassign = 354, 223 PLUSassign = 355, 224 MINUSassign = 356, 225 LSassign = 357, 226 RSassign = 358, 227 ANDassign = 359, 228 ERassign = 360, 229 ORassign = 361, 230 ATassign = 362, 231 THEN = 363 232 }; 234 233 #endif 235 234 /* Tokens. */ … … 341 340 #define THEN 363 342 341 343 /* Value type. */ 342 343 344 344 345 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 346 typedef union YYSTYPE 347 347 { 348 #line 115 "parser.yy" /* yacc.c:355 */ 348 349 /* Line 293 of yacc.c */ 350 #line 116 "parser.yy" 349 351 350 352 Token tok; … … 363 365 bool flag; 364 366 365 #line 366 "Parser/parser.cc" /* yacc.c:355 */ 366 }; 367 368 369 /* Line 293 of yacc.c */ 370 #line 371 "Parser/parser.cc" 371 } YYSTYPE; 367 372 # define YYSTYPE_IS_TRIVIAL 1 373 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 368 374 # define YYSTYPE_IS_DECLARED 1 369 375 #endif 370 376 371 377 372 extern YYSTYPE yylval;373 374 int yyparse (void);375 376 #endif /* !YY_YY_Y_TAB_H_INCLUDED */377 378 378 /* Copy the second part of user declarations. */ 379 379 380 #line 381 "Parser/parser.cc" /* yacc.c:358 */ 380 381 /* Line 343 of yacc.c */ 382 #line 383 "Parser/parser.cc" 381 383 382 384 #ifdef short … … 392 394 #ifdef YYTYPE_INT8 393 395 typedef YYTYPE_INT8 yytype_int8; 396 #elif (defined __STDC__ || defined __C99__FUNC__ \ 397 || defined __cplusplus || defined _MSC_VER) 398 typedef signed char yytype_int8; 394 399 #else 395 typedef s igned charyytype_int8;400 typedef short int yytype_int8; 396 401 #endif 397 402 … … 413 418 # elif defined size_t 414 419 # define YYSIZE_T size_t 415 # elif ! defined YYSIZE_T 420 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 421 || defined __cplusplus || defined _MSC_VER) 416 422 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 417 423 # define YYSIZE_T size_t … … 427 433 # if ENABLE_NLS 428 434 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 429 # define YY_( Msgid) dgettext ("bison-runtime", Msgid)435 # define YY_(msgid) dgettext ("bison-runtime", msgid) 430 436 # endif 431 437 # endif 432 438 # ifndef YY_ 433 # define YY_( Msgid) Msgid439 # define YY_(msgid) msgid 434 440 # endif 435 441 #endif 436 442 437 #ifndef YY_ATTRIBUTE438 # if (defined __GNUC__ \439 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \440 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C441 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)442 # else443 # define YY_ATTRIBUTE(Spec) /* empty */444 # endif445 #endif446 447 #ifndef YY_ATTRIBUTE_PURE448 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))449 #endif450 451 #ifndef YY_ATTRIBUTE_UNUSED452 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))453 #endif454 455 #if !defined _Noreturn \456 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)457 # if defined _MSC_VER && 1200 <= _MSC_VER458 # define _Noreturn __declspec (noreturn)459 # else460 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))461 # endif462 #endif463 464 443 /* Suppress unused-variable warnings by "using" E. */ 465 444 #if ! defined lint || defined __GNUC__ 466 # define YYUSE( E) ((void) (E))445 # define YYUSE(e) ((void) (e)) 467 446 #else 468 # define YYUSE( E) /* empty */447 # define YYUSE(e) /* empty */ 469 448 #endif 470 449 471 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 472 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 473 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 474 _Pragma ("GCC diagnostic push") \ 475 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 476 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 477 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 478 _Pragma ("GCC diagnostic pop") 450 /* Identity function, used to suppress warnings about constant conditions. */ 451 #ifndef lint 452 # define YYID(n) (n) 479 453 #else 480 # define YY_INITIAL_VALUE(Value) Value 454 #if (defined __STDC__ || defined __C99__FUNC__ \ 455 || defined __cplusplus || defined _MSC_VER) 456 static int 457 YYID (int yyi) 458 #else 459 static int 460 YYID (yyi) 461 int yyi; 481 462 #endif 482 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 484 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 463 { 464 return yyi; 465 } 485 466 #endif 486 #ifndef YY_INITIAL_VALUE487 # define YY_INITIAL_VALUE(Value) /* Nothing. */488 #endif489 490 467 491 468 #if ! defined yyoverflow || YYERROR_VERBOSE … … 506 483 # else 507 484 # define YYSTACK_ALLOC alloca 508 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 485 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 486 || defined __cplusplus || defined _MSC_VER) 509 487 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 510 /* Use EXIT_SUCCESS as a witness for stdlib.h. */511 488 # ifndef EXIT_SUCCESS 512 489 # define EXIT_SUCCESS 0 … … 518 495 519 496 # ifdef YYSTACK_ALLOC 520 /* Pacify GCC's 'empty if-body' warning. */521 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( 0)497 /* Pacify GCC's `empty if-body' warning. */ 498 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 522 499 # ifndef YYSTACK_ALLOC_MAXIMUM 523 500 /* The OS might guarantee only one guard page at the bottom of the stack, … … 535 512 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 536 513 && ! ((defined YYMALLOC || defined malloc) \ 537 && (defined YYFREE || defined free)))514 && (defined YYFREE || defined free))) 538 515 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 539 516 # ifndef EXIT_SUCCESS … … 543 520 # ifndef YYMALLOC 544 521 # define YYMALLOC malloc 545 # if ! defined malloc && ! defined EXIT_SUCCESS 522 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 523 || defined __cplusplus || defined _MSC_VER) 546 524 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 547 525 # endif … … 549 527 # ifndef YYFREE 550 528 # define YYFREE free 551 # if ! defined free && ! defined EXIT_SUCCESS 529 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 530 || defined __cplusplus || defined _MSC_VER) 552 531 void free (void *); /* INFRINGES ON USER NAME SPACE */ 553 532 # endif … … 559 538 #if (! defined yyoverflow \ 560 539 && (! defined __cplusplus \ 561 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))540 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 562 541 563 542 /* A type that is properly aligned for any stack member. */ … … 584 563 stack. Advance YYPTR to a properly aligned location for the next 585 564 stack. */ 586 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \587 do \588 { \589 YYSIZE_T yynewbytes;\590 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\591 Stack = &yyptr->Stack_alloc;\592 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \593 yyptr += yynewbytes / sizeof (*yyptr);\594 } \595 while ( 0)565 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 566 do \ 567 { \ 568 YYSIZE_T yynewbytes; \ 569 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 570 Stack = &yyptr->Stack_alloc; \ 571 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 572 yyptr += yynewbytes / sizeof (*yyptr); \ 573 } \ 574 while (YYID (0)) 596 575 597 576 #endif 598 577 599 578 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 600 /* Copy COUNT objects from SRC to DST. The source and destination do579 /* Copy COUNT objects from FROM to TO. The source and destination do 601 580 not overlap. */ 602 581 # ifndef YYCOPY 603 582 # if defined __GNUC__ && 1 < __GNUC__ 604 # define YYCOPY( Dst, Src, Count) \605 __builtin_memcpy ( Dst, Src, (Count) * sizeof (*(Src)))583 # define YYCOPY(To, From, Count) \ 584 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 606 585 # else 607 # define YYCOPY( Dst, Src, Count)\608 do \609 {\610 YYSIZE_T yyi;\611 for (yyi = 0; yyi < (Count); yyi++)\612 (Dst)[yyi] = (Src)[yyi];\613 }\614 while ( 0)586 # define YYCOPY(To, From, Count) \ 587 do \ 588 { \ 589 YYSIZE_T yyi; \ 590 for (yyi = 0; yyi < (Count); yyi++) \ 591 (To)[yyi] = (From)[yyi]; \ 592 } \ 593 while (YYID (0)) 615 594 # endif 616 595 # endif … … 628 607 /* YYNRULES -- Number of rules. */ 629 608 #define YYNRULES 751 630 /* YYN STATES -- Number of states. */609 /* YYNRULES -- Number of states. */ 631 610 #define YYNSTATES 1555 632 611 633 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 634 by yylex, with out-of-bounds checking. */ 612 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 635 613 #define YYUNDEFTOK 2 636 614 #define YYMAXUTOK 363 637 615 638 #define YYTRANSLATE(YYX) \616 #define YYTRANSLATE(YYX) \ 639 617 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 640 618 641 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 642 as returned by yylex, without out-of-bounds checking. */ 619 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 643 620 static const yytype_uint8 yytranslate[] = 644 621 { … … 683 660 684 661 #if YYDEBUG 685 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 662 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 663 YYRHS. */ 664 static const yytype_uint16 yyprhs[] = 665 { 666 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 667 17, 19, 21, 23, 25, 27, 29, 31, 33, 36, 668 38, 40, 44, 48, 50, 57, 62, 66, 74, 78, 669 86, 89, 92, 100, 105, 107, 111, 112, 114, 116, 670 120, 122, 126, 134, 138, 146, 148, 150, 152, 155, 671 158, 161, 164, 167, 170, 175, 178, 183, 190, 192, 672 197, 202, 204, 206, 208, 210, 212, 214, 216, 221, 673 226, 228, 232, 236, 240, 242, 246, 250, 252, 256, 674 260, 262, 266, 270, 274, 278, 280, 284, 288, 290, 675 294, 296, 300, 302, 306, 308, 312, 314, 318, 320, 676 326, 331, 337, 339, 341, 345, 348, 349, 351, 353, 677 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 678 375, 378, 384, 391, 399, 401, 405, 407, 411, 412, 679 414, 416, 418, 420, 422, 424, 426, 428, 430, 437, 680 442, 445, 453, 455, 459, 461, 464, 466, 469, 471, 681 474, 477, 483, 491, 497, 507, 513, 523, 525, 529, 682 531, 533, 537, 541, 544, 546, 549, 552, 553, 555, 683 558, 562, 563, 565, 568, 572, 576, 581, 582, 584, 684 586, 589, 595, 603, 610, 617, 622, 626, 631, 634, 685 638, 641, 645, 649, 653, 657, 663, 667, 671, 676, 686 678, 684, 691, 697, 704, 714, 725, 735, 746, 749, 687 751, 754, 757, 760, 762, 769, 778, 789, 802, 817, 688 818, 820, 821, 823, 825, 829, 834, 842, 843, 845, 689 849, 851, 855, 857, 859, 861, 865, 867, 869, 871, 690 875, 876, 878, 882, 887, 889, 893, 895, 897, 901, 691 905, 909, 913, 917, 920, 924, 931, 935, 939, 944, 692 946, 949, 952, 956, 962, 971, 979, 987, 993, 1003, 693 1006, 1009, 1015, 1019, 1025, 1030, 1034, 1039, 1044, 1052, 694 1056, 1060, 1064, 1068, 1073, 1080, 1082, 1084, 1086, 1088, 695 1090, 1092, 1094, 1096, 1097, 1099, 1101, 1104, 1106, 1108, 696 1110, 1112, 1114, 1116, 1118, 1119, 1125, 1127, 1130, 1134, 697 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 698 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 699 1177, 1179, 1181, 1183, 1186, 1189, 1193, 1197, 1199, 1203, 700 1205, 1208, 1211, 1214, 1219, 1224, 1229, 1234, 1236, 1239, 701 1242, 1246, 1248, 1251, 1254, 1256, 1259, 1262, 1266, 1268, 702 1271, 1274, 1276, 1278, 1283, 1286, 1287, 1294, 1302, 1305, 703 1308, 1311, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334, 704 1338, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361, 705 1363, 1366, 1369, 1375, 1378, 1379, 1387, 1390, 1395, 1396, 706 1399, 1400, 1402, 1404, 1406, 1412, 1418, 1424, 1426, 1432, 707 1438, 1448, 1450, 1456, 1457, 1459, 1461, 1467, 1469, 1471, 708 1477, 1483, 1485, 1489, 1493, 1498, 1500, 1502, 1504, 1506, 709 1509, 1511, 1515, 1519, 1521, 1524, 1526, 1530, 1532, 1534, 710 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1555, 711 1557, 1559, 1561, 1564, 1565, 1568, 1571, 1573, 1578, 1579, 712 1581, 1584, 1588, 1593, 1596, 1599, 1601, 1604, 1607, 1613, 713 1619, 1627, 1634, 1636, 1639, 1642, 1646, 1648, 1651, 1654, 714 1659, 1662, 1667, 1668, 1673, 1676, 1678, 1680, 1682, 1683, 715 1686, 1692, 1698, 1712, 1714, 1716, 1720, 1724, 1727, 1731, 716 1735, 1738, 1743, 1745, 1752, 1762, 1763, 1775, 1777, 1781, 717 1785, 1789, 1791, 1793, 1799, 1802, 1808, 1809, 1811, 1813, 718 1817, 1818, 1820, 1822, 1824, 1826, 1827, 1834, 1837, 1839, 719 1842, 1847, 1850, 1854, 1858, 1862, 1867, 1873, 1879, 1885, 720 1892, 1894, 1896, 1898, 1902, 1903, 1909, 1910, 1912, 1914, 721 1917, 1924, 1926, 1930, 1931, 1933, 1938, 1940, 1942, 1944, 722 1946, 1949, 1951, 1954, 1957, 1959, 1963, 1966, 1970, 1974, 723 1977, 1982, 1987, 1991, 2000, 2004, 2007, 2009, 2012, 2019, 724 2028, 2032, 2035, 2039, 2043, 2048, 2053, 2057, 2059, 2061, 725 2063, 2068, 2075, 2079, 2082, 2086, 2090, 2095, 2100, 2104, 726 2107, 2109, 2112, 2115, 2117, 2121, 2124, 2128, 2132, 2135, 727 2140, 2145, 2149, 2156, 2165, 2169, 2172, 2174, 2177, 2180, 728 2183, 2187, 2191, 2194, 2199, 2204, 2208, 2215, 2224, 2228, 729 2231, 2233, 2236, 2239, 2241, 2243, 2246, 2250, 2254, 2257, 730 2262, 2269, 2278, 2280, 2283, 2286, 2288, 2291, 2294, 2298, 731 2302, 2304, 2309, 2314, 2318, 2324, 2333, 2337, 2340, 2344, 732 2346, 2352, 2358, 2365, 2372, 2374, 2377, 2380, 2382, 2385, 733 2388, 2392, 2396, 2398, 2403, 2408, 2412, 2418, 2427, 2431, 734 2433, 2436, 2438, 2441, 2448, 2454, 2461, 2469, 2477, 2479, 735 2482, 2485, 2487, 2490, 2493, 2497, 2501, 2503, 2508, 2513, 736 2517, 2526, 2530, 2532, 2534, 2537, 2539, 2541, 2544, 2548, 737 2551, 2555, 2558, 2562, 2566, 2569, 2574, 2578, 2581, 2585, 738 2588, 2593, 2597, 2600, 2607, 2614, 2621, 2629, 2631, 2634, 739 2636, 2638, 2640, 2643, 2647, 2650, 2654, 2657, 2661, 2665, 740 2670, 2673, 2677, 2682, 2685, 2691, 2697, 2704, 2711, 2712, 741 2714, 2715 742 }; 743 744 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 745 static const yytype_int16 yyrhs[] = 746 { 747 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 748 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 749 -1, 72, -1, 140, -1, 83, -1, 84, -1, 142, 750 -1, 82, -1, 142, 82, -1, 72, -1, 140, -1, 751 109, 170, 110, -1, 109, 174, 110, -1, 143, -1, 752 144, 111, 134, 165, 135, 112, -1, 144, 109, 145, 753 110, -1, 144, 113, 139, -1, 144, 113, 111, 134, 754 147, 135, 112, -1, 144, 85, 139, -1, 144, 85, 755 111, 134, 147, 135, 112, -1, 144, 86, -1, 144, 756 87, -1, 109, 275, 110, 114, 279, 372, 115, -1, 757 144, 114, 145, 115, -1, 146, -1, 145, 116, 146, 758 -1, -1, 165, -1, 148, -1, 147, 116, 148, -1, 759 139, -1, 139, 113, 148, -1, 139, 113, 111, 134, 760 147, 135, 112, -1, 139, 85, 148, -1, 139, 85, 761 111, 134, 147, 135, 112, -1, 144, -1, 136, -1, 762 141, -1, 40, 152, -1, 150, 152, -1, 151, 152, 763 -1, 86, 149, -1, 87, 149, -1, 37, 149, -1, 764 37, 109, 275, 110, -1, 66, 149, -1, 66, 109, 765 275, 110, -1, 38, 109, 275, 116, 139, 110, -1, 766 76, -1, 76, 109, 146, 110, -1, 76, 109, 276, 767 110, -1, 117, -1, 118, -1, 119, -1, 120, -1, 768 121, -1, 122, -1, 149, -1, 109, 275, 110, 152, 769 -1, 109, 275, 110, 168, -1, 152, -1, 153, 117, 770 152, -1, 153, 123, 152, -1, 153, 124, 152, -1, 771 153, -1, 154, 119, 153, -1, 154, 120, 153, -1, 772 154, -1, 155, 88, 154, -1, 155, 89, 154, -1, 773 155, -1, 156, 125, 155, -1, 156, 126, 155, -1, 774 156, 90, 155, -1, 156, 91, 155, -1, 156, -1, 775 157, 92, 156, -1, 157, 93, 156, -1, 157, -1, 776 158, 118, 157, -1, 158, -1, 159, 127, 158, -1, 777 159, -1, 160, 128, 159, -1, 160, -1, 161, 94, 778 160, -1, 161, -1, 162, 95, 161, -1, 162, -1, 779 162, 129, 170, 130, 163, -1, 162, 129, 130, 163, 780 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 781 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 782 -1, 131, -1, 107, -1, 97, -1, 98, -1, 99, 783 -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, 784 -1, 105, -1, 106, -1, 111, 112, -1, 111, 134, 785 165, 135, 112, -1, 111, 134, 116, 169, 135, 112, 786 -1, 111, 134, 165, 116, 169, 135, 112, -1, 166, 787 -1, 169, 116, 166, -1, 165, -1, 170, 116, 165, 788 -1, -1, 170, -1, 173, -1, 174, -1, 178, -1, 789 179, -1, 191, -1, 193, -1, 194, -1, 199, -1, 790 127, 144, 114, 145, 115, 132, -1, 72, 130, 312, 791 172, -1, 114, 115, -1, 114, 134, 134, 210, 175, 792 135, 115, -1, 176, -1, 175, 134, 176, -1, 213, 793 -1, 40, 213, -1, 308, -1, 172, 135, -1, 172, 794 -1, 177, 172, -1, 171, 132, -1, 41, 109, 170, 795 110, 172, -1, 41, 109, 170, 110, 172, 42, 172, 796 -1, 43, 109, 170, 110, 184, -1, 43, 109, 170, 797 110, 114, 134, 206, 185, 115, -1, 53, 109, 170, 798 110, 184, -1, 53, 109, 170, 110, 114, 134, 206, 799 187, 115, -1, 164, -1, 164, 96, 164, -1, 310, 800 -1, 180, -1, 181, 116, 180, -1, 44, 181, 130, 801 -1, 45, 130, -1, 182, -1, 183, 182, -1, 183, 802 172, -1, -1, 186, -1, 183, 177, -1, 186, 183, 803 177, -1, -1, 188, -1, 183, 190, -1, 183, 177, 804 189, -1, 188, 183, 190, -1, 188, 183, 177, 189, 805 -1, -1, 190, -1, 56, -1, 56, 132, -1, 47, 806 109, 170, 110, 172, -1, 46, 172, 47, 109, 170, 807 110, 132, -1, 48, 109, 134, 192, 110, 172, -1, 808 171, 135, 132, 171, 132, 171, -1, 213, 171, 132, 809 171, -1, 51, 72, 132, -1, 51, 117, 170, 132, 810 -1, 50, 132, -1, 50, 72, 132, -1, 49, 132, 811 -1, 49, 72, 132, -1, 52, 171, 132, -1, 61, 812 166, 132, -1, 62, 166, 132, -1, 62, 166, 63, 813 165, 132, -1, 57, 174, 195, -1, 57, 174, 197, 814 -1, 57, 174, 195, 197, -1, 196, -1, 58, 109, 815 96, 110, 174, -1, 196, 58, 109, 96, 110, 174, 816 -1, 59, 109, 96, 110, 174, -1, 196, 59, 109, 817 96, 110, 174, -1, 58, 109, 134, 134, 198, 135, 818 110, 174, 135, -1, 196, 58, 109, 134, 134, 198, 819 135, 110, 174, 135, -1, 59, 109, 134, 134, 198, 820 135, 110, 174, 135, -1, 196, 59, 109, 134, 134, 821 198, 135, 110, 174, 135, -1, 60, 174, -1, 226, 822 -1, 226, 309, -1, 226, 357, -1, 366, 139, -1, 823 366, -1, 64, 200, 109, 141, 110, 132, -1, 64, 824 200, 109, 141, 130, 201, 110, 132, -1, 64, 200, 825 109, 141, 130, 201, 130, 201, 110, 132, -1, 64, 826 200, 109, 141, 130, 201, 130, 201, 130, 204, 110, 827 132, -1, 64, 200, 51, 109, 141, 130, 130, 201, 828 130, 204, 130, 205, 110, 132, -1, -1, 11, -1, 829 -1, 202, -1, 203, -1, 202, 116, 203, -1, 141, 830 109, 164, 110, -1, 111, 164, 112, 141, 109, 164, 831 110, -1, -1, 141, -1, 204, 116, 141, -1, 139, 832 -1, 205, 116, 139, -1, 135, -1, 207, -1, 213, 833 -1, 207, 134, 213, -1, 135, -1, 209, -1, 223, 834 -1, 209, 134, 223, -1, -1, 211, -1, 29, 212, 835 132, -1, 211, 29, 212, 132, -1, 274, -1, 212, 836 116, 274, -1, 214, -1, 223, -1, 215, 135, 132, 837 -1, 220, 135, 132, -1, 217, 135, 132, -1, 293, 838 135, 132, -1, 296, 135, 132, -1, 216, 277, -1, 839 232, 216, 277, -1, 215, 135, 116, 134, 272, 277, 840 -1, 367, 272, 311, -1, 370, 272, 311, -1, 228, 841 370, 272, 311, -1, 218, -1, 228, 218, -1, 232, 842 218, -1, 232, 228, 218, -1, 217, 135, 116, 134, 843 272, -1, 111, 112, 272, 109, 134, 260, 135, 110, 844 -1, 370, 272, 109, 134, 260, 135, 110, -1, 219, 845 272, 109, 134, 260, 135, 110, -1, 111, 134, 262, 846 135, 112, -1, 111, 134, 262, 135, 116, 134, 263, 847 135, 112, -1, 3, 216, -1, 3, 218, -1, 220, 848 135, 116, 134, 139, -1, 3, 226, 309, -1, 221, 849 135, 116, 134, 309, -1, 228, 3, 226, 309, -1, 850 226, 3, 309, -1, 226, 3, 228, 309, -1, 3, 851 139, 131, 165, -1, 222, 135, 116, 134, 139, 131, 852 165, -1, 224, 135, 132, -1, 221, 135, 132, -1, 853 222, 135, 132, -1, 240, 135, 132, -1, 225, 309, 854 311, 277, -1, 224, 116, 312, 309, 311, 277, -1, 855 236, -1, 240, -1, 242, -1, 283, -1, 237, -1, 856 241, -1, 243, -1, 284, -1, -1, 228, -1, 229, 857 -1, 228, 229, -1, 230, -1, 314, -1, 10, -1, 858 12, -1, 11, -1, 14, -1, 67, -1, -1, 13, 859 109, 231, 286, 110, -1, 233, -1, 228, 233, -1, 860 232, 228, 233, -1, 234, -1, 233, 234, -1, 5, 861 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 862 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 863 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 864 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 865 -1, 237, -1, 232, 237, -1, 236, 234, -1, 236, 866 234, 228, -1, 236, 234, 237, -1, 238, -1, 227, 867 239, 227, -1, 235, -1, 228, 235, -1, 238, 229, 868 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 869 109, 170, 110, -1, 78, 109, 276, 110, -1, 78, 870 109, 170, 110, -1, 241, -1, 232, 241, -1, 240, 871 234, -1, 240, 234, 228, -1, 244, -1, 228, 244, 872 -1, 241, 229, -1, 243, -1, 232, 243, -1, 242, 873 234, -1, 242, 234, 228, -1, 74, -1, 228, 74, 874 -1, 243, 229, -1, 245, -1, 256, -1, 247, 114, 875 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 876 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 877 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 878 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 879 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 880 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 881 -1, 226, 252, -1, 251, 116, 312, 252, -1, -1, 882 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 883 -1, 254, -1, 130, 164, -1, 30, 312, -1, 255, 884 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 885 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 886 258, 116, 274, 259, -1, -1, 131, 164, -1, -1, 887 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 888 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 889 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 890 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 891 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 892 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 893 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 894 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 895 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 896 272, 373, -1, 228, 370, 272, 373, -1, 218, -1, 897 270, -1, 362, -1, 370, -1, 228, 370, -1, 371, 898 -1, 225, 336, 373, -1, 225, 340, 373, -1, 225, 899 -1, 225, 351, -1, 139, -1, 271, 116, 139, -1, 900 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 901 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 902 226, -1, 226, 357, -1, 366, -1, 371, -1, 226, 903 -1, 226, 345, -1, -1, 131, 278, -1, 107, 278, 904 -1, 165, -1, 114, 279, 372, 115, -1, -1, 278, 905 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 906 280, 278, -1, 281, 130, -1, 274, 130, -1, 282, 907 -1, 281, 282, -1, 113, 274, -1, 111, 134, 165, 908 135, 112, -1, 111, 134, 310, 135, 112, -1, 111, 909 134, 164, 96, 164, 135, 112, -1, 113, 111, 134, 910 147, 135, 112, -1, 284, -1, 232, 284, -1, 283, 911 234, -1, 283, 234, 228, -1, 285, -1, 228, 285, 912 -1, 284, 229, -1, 75, 109, 292, 110, -1, 287, 913 373, -1, 286, 116, 287, 373, -1, -1, 289, 274, 914 288, 290, -1, 226, 336, -1, 33, -1, 35, -1, 915 34, -1, -1, 290, 291, -1, 128, 274, 109, 292, 916 110, -1, 128, 114, 134, 298, 115, -1, 128, 109, 917 134, 286, 135, 110, 114, 134, 298, 115, 109, 292, 918 110, -1, 276, -1, 165, -1, 292, 116, 276, -1, 919 292, 116, 165, -1, 33, 294, -1, 233, 33, 294, 920 -1, 293, 116, 294, -1, 295, 290, -1, 295, 290, 921 131, 276, -1, 274, -1, 273, 109, 134, 286, 135, 922 110, -1, 36, 274, 109, 134, 286, 135, 110, 114, 923 115, -1, -1, 36, 274, 109, 134, 286, 135, 110, 924 114, 297, 298, 115, -1, 299, -1, 298, 134, 299, 925 -1, 300, 135, 132, -1, 301, 135, 132, -1, 216, 926 -1, 218, -1, 300, 135, 116, 134, 272, -1, 226, 927 309, -1, 301, 135, 116, 134, 309, -1, -1, 303, 928 -1, 305, -1, 303, 134, 305, -1, -1, 303, -1, 929 213, -1, 307, -1, 199, -1, -1, 5, 82, 306, 930 114, 304, 115, -1, 40, 305, -1, 308, -1, 323, 931 174, -1, 327, 134, 208, 174, -1, 217, 174, -1, 932 225, 323, 174, -1, 228, 323, 174, -1, 232, 323, 933 174, -1, 232, 228, 323, 174, -1, 225, 327, 134, 934 208, 174, -1, 228, 327, 134, 208, 174, -1, 232, 935 327, 134, 208, 174, -1, 232, 228, 327, 134, 208, 936 174, -1, 318, -1, 331, -1, 323, -1, 164, 122, 937 164, -1, -1, 64, 109, 142, 110, 312, -1, -1, 938 313, -1, 314, -1, 313, 314, -1, 39, 109, 109, 939 315, 110, 110, -1, 316, -1, 315, 116, 316, -1, 940 -1, 317, -1, 317, 109, 171, 110, -1, 272, -1, 941 234, -1, 235, -1, 229, -1, 319, 312, -1, 320, 942 -1, 321, 312, -1, 322, 312, -1, 137, -1, 109, 943 319, 110, -1, 150, 318, -1, 150, 228, 318, -1, 944 109, 320, 110, -1, 319, 349, -1, 109, 320, 110, 945 349, -1, 109, 321, 110, 350, -1, 109, 321, 110, 946 -1, 109, 320, 110, 109, 134, 264, 135, 110, -1, 947 109, 322, 110, -1, 324, 312, -1, 325, -1, 326, 948 312, -1, 319, 109, 134, 264, 135, 110, -1, 109, 949 325, 110, 109, 134, 264, 135, 110, -1, 109, 324, 950 110, -1, 150, 323, -1, 150, 228, 323, -1, 109, 951 325, 110, -1, 109, 325, 110, 349, -1, 109, 326, 952 110, 350, -1, 109, 326, 110, -1, 328, -1, 329, 953 -1, 330, -1, 319, 109, 271, 110, -1, 109, 329, 954 110, 109, 271, 110, -1, 109, 328, 110, -1, 150, 955 327, -1, 150, 228, 327, -1, 109, 329, 110, -1, 956 109, 329, 110, 349, -1, 109, 330, 110, 350, -1, 957 109, 330, 110, -1, 332, 312, -1, 333, -1, 334, 958 312, -1, 335, 312, -1, 341, -1, 109, 332, 110, 959 -1, 150, 331, -1, 150, 228, 331, -1, 109, 333, 960 110, -1, 332, 349, -1, 109, 333, 110, 349, -1, 961 109, 334, 110, 350, -1, 109, 334, 110, -1, 332, 962 109, 134, 264, 135, 110, -1, 109, 333, 110, 109, 963 134, 264, 135, 110, -1, 109, 335, 110, -1, 319, 964 312, -1, 337, -1, 338, 312, -1, 339, 312, -1, 965 150, 336, -1, 150, 228, 336, -1, 109, 337, 110, 966 -1, 319, 355, -1, 109, 337, 110, 349, -1, 109, 967 338, 110, 350, -1, 109, 338, 110, -1, 319, 109, 968 134, 264, 135, 110, -1, 109, 337, 110, 109, 134, 969 264, 135, 110, -1, 109, 339, 110, -1, 341, 312, 970 -1, 342, -1, 343, 312, -1, 344, 312, -1, 74, 971 -1, 75, -1, 150, 340, -1, 150, 228, 340, -1, 972 109, 342, 110, -1, 341, 355, -1, 109, 342, 110, 973 355, -1, 341, 109, 134, 264, 135, 110, -1, 109, 974 342, 110, 109, 134, 264, 135, 110, -1, 346, -1, 975 347, 312, -1, 348, 312, -1, 150, -1, 150, 228, 976 -1, 150, 345, -1, 150, 228, 345, -1, 109, 346, 977 110, -1, 349, -1, 109, 346, 110, 349, -1, 109, 978 347, 110, 350, -1, 109, 347, 110, -1, 109, 134, 979 264, 135, 110, -1, 109, 346, 110, 109, 134, 264, 980 135, 110, -1, 109, 348, 110, -1, 111, 112, -1, 981 111, 112, 350, -1, 350, -1, 111, 134, 165, 135, 982 112, -1, 111, 134, 117, 135, 112, -1, 350, 111, 983 134, 165, 135, 112, -1, 350, 111, 134, 117, 135, 984 112, -1, 352, -1, 353, 312, -1, 354, 312, -1, 985 150, -1, 150, 228, -1, 150, 351, -1, 150, 228, 986 351, -1, 109, 352, 110, -1, 355, -1, 109, 352, 987 110, 355, -1, 109, 353, 110, 350, -1, 109, 353, 988 110, -1, 109, 134, 264, 135, 110, -1, 109, 352, 989 110, 109, 134, 264, 135, 110, -1, 109, 354, 110, 990 -1, 356, -1, 356, 350, -1, 350, -1, 111, 112, 991 -1, 111, 134, 228, 117, 135, 112, -1, 111, 134, 992 228, 135, 112, -1, 111, 134, 228, 165, 135, 112, 993 -1, 111, 134, 7, 227, 165, 135, 112, -1, 111, 994 134, 228, 7, 165, 135, 112, -1, 358, -1, 359, 995 312, -1, 360, 312, -1, 150, -1, 150, 228, -1, 996 150, 357, -1, 150, 228, 357, -1, 109, 358, 110, 997 -1, 349, -1, 109, 358, 110, 349, -1, 109, 359, 998 110, 350, -1, 109, 359, 110, -1, 109, 358, 110, 999 109, 134, 264, 135, 110, -1, 109, 360, 110, -1, 1000 362, -1, 370, -1, 228, 370, -1, 363, -1, 364, 1001 -1, 150, 226, -1, 228, 150, 226, -1, 150, 371, 1002 -1, 228, 150, 371, -1, 150, 361, -1, 228, 150, 1003 361, -1, 111, 112, 226, -1, 365, 226, -1, 111, 1004 112, 350, 226, -1, 365, 350, 226, -1, 350, 226, 1005 -1, 111, 112, 363, -1, 365, 363, -1, 111, 112, 1006 350, 363, -1, 365, 350, 363, -1, 350, 363, -1, 1007 111, 134, 228, 117, 135, 112, -1, 111, 134, 228, 1008 165, 135, 112, -1, 111, 134, 232, 165, 135, 112, 1009 -1, 111, 134, 232, 228, 165, 135, 112, -1, 370, 1010 -1, 228, 370, -1, 367, -1, 368, -1, 369, -1, 1011 150, 226, -1, 228, 150, 226, -1, 150, 371, -1, 1012 228, 150, 371, -1, 150, 366, -1, 228, 150, 366, 1013 -1, 111, 112, 226, -1, 111, 112, 350, 226, -1, 1014 350, 226, -1, 111, 112, 368, -1, 111, 112, 350, 1015 368, -1, 350, 368, -1, 111, 134, 263, 135, 112, 1016 -1, 111, 112, 109, 260, 110, -1, 370, 109, 134, 1017 260, 135, 110, -1, 219, 109, 134, 260, 135, 110, 1018 -1, -1, 116, -1, -1, 131, 165, -1 1019 }; 1020 1021 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 686 1022 static const yytype_uint16 yyrline[] = 687 1023 { 688 0, 30 0, 300, 304, 311, 312, 313, 317, 318, 319,689 32 3, 324, 328, 329, 333, 334, 338, 342, 343, 354,690 35 6, 358, 360, 365, 366, 372, 376, 378, 379, 381,691 38 2, 384, 386, 388, 397, 398, 404, 405, 409, 410,692 41 4, 418, 420, 422, 424, 429, 432, 434, 436, 441,693 45 4, 456, 458, 460, 462, 464, 466, 468, 470, 472,694 47 4, 481, 482, 488, 489, 490, 491, 495, 496, 498,695 50 3, 504, 506, 508, 513, 514, 516, 521, 522, 524,696 5 29, 530, 532, 534, 536, 541, 542, 544, 549, 550,697 55 5, 556, 561, 562, 567, 568, 573, 574, 579, 580,698 58 3, 585, 590, 595, 596, 598, 604, 605, 609, 610,699 61 1, 612, 613, 614, 615, 616, 617, 618, 619, 620,700 62 6, 628, 630, 632, 637, 638, 643, 644, 650, 651,701 65 7, 658, 659, 660, 661, 662, 663, 664, 665, 675,702 68 2, 684, 694, 695, 700, 702, 708, 710, 714, 715,703 72 0, 725, 728, 730, 732, 742, 744, 755, 756, 758,704 76 2, 764, 768, 769, 774, 775, 779, 784, 785, 789,705 79 1, 797, 798, 802, 804, 806, 808, 814, 815, 819,706 82 1, 826, 828, 830, 835, 837, 842, 844, 848, 851,707 85 5, 858, 862, 864, 866, 868, 873, 875, 877, 882,708 88 4, 886, 888, 890, 895, 897, 899, 901, 906, 918,709 9 19, 924, 926, 931, 935, 937, 939, 941, 943, 949,710 95 0, 956, 957, 961, 962, 967, 969, 975, 976, 978,711 98 3, 988, 998, 1000, 1004, 1005, 1010, 1012, 1016, 1017,712 102 1, 1023, 1027, 1028, 1032, 1033, 1037, 1038, 1053, 1054,713 105 5, 1056, 1057, 1061, 1066, 1073, 1083, 1088, 1093, 1101,714 110 6, 1111, 1116, 1121, 1129, 1151, 1156, 1163, 1165, 1172,715 117 7, 1182, 1193, 1198, 1203, 1208, 1213, 1222, 1227, 1235,716 123 6, 1237, 1238, 1244, 1249, 1257, 1258, 1259, 1260, 1264,717 126 5, 1266, 1267, 1272, 1273, 1282, 1283, 1288, 1289, 1294,718 129 6, 1298, 1300, 1302, 1305, 1304, 1316, 1317, 1319, 1329,719 133 0, 1335, 1337, 1339, 1341, 1343, 1346, 1348, 1351, 1356,720 135 8, 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1374, 1376,721 137 8, 1380, 1386, 1387, 1389, 1391, 1393, 1398, 1399, 1405,722 140 6, 1408, 1410, 1415, 1417, 1419, 1421, 1426, 1427, 1429,723 143 1, 1436, 1437, 1439, 1444, 1445, 1447, 1449, 1454, 1456,724 145 8, 1463, 1464, 1468, 1470, 1476, 1475, 1479, 1481, 1486,725 148 8, 1494, 1495, 1500, 1501, 1503, 1504, 1513, 1514, 1516,726 151 8, 1523, 1525, 1531, 1532, 1534, 1537, 1540, 1545, 1546,727 155 1, 1556, 1560, 1562, 1568, 1567, 1574, 1576, 1582, 1583,728 159 1, 1592, 1596, 1597, 1598, 1600, 1602, 1609, 1610, 1612,729 161 4, 1619, 1620, 1626, 1627, 1631, 1632, 1637, 1638, 1639,730 164 1, 1649, 1650, 1652, 1655, 1657, 1661, 1662, 1663, 1665,731 166 7, 1671, 1676, 1684, 1685, 1694, 1696, 1701, 1702, 1703,732 170 7, 1708, 1709, 1713, 1714, 1715, 1719, 1720, 1721, 1726,733 172 7, 1728, 1729, 1735, 1736, 1738, 1743, 1744, 1749, 1750,734 175 1, 1752, 1753, 1768, 1769, 1774, 1775, 1781, 1783, 1786,735 178 8, 1790, 1813, 1814, 1816, 1818, 1823, 1824, 1826, 1831,736 183 6, 1837, 1843, 1842, 1846, 1850, 1852, 1854, 1860, 1861,737 186 6, 1871, 1873, 1878, 1880, 1881, 1883, 1888, 1890, 1892,738 189 7, 1899, 1904, 1909, 1917, 1923, 1922, 1936, 1937, 1942,739 194 3, 1947, 1952, 1957, 1965, 1970, 1981, 1982, 1987, 1988,740 199 4, 1995, 1999, 2000, 2001, 2004, 2003, 2014, 2023, 2029,741 203 5, 2044, 2050, 2056, 2062, 2068, 2076, 2082, 2090, 2096,742 210 5, 2106, 2107, 2111, 2115, 2117, 2122, 2123, 2127, 2128,743 213 3, 2139, 2140, 2143, 2145, 2146, 2150, 2151, 2152, 2153,744 218 7, 2189, 2190, 2192, 2197, 2202, 2207, 2209, 2211, 2216,745 221 8, 2220, 2222, 2227, 2229, 2238, 2240, 2241, 2246, 2248,746 225 0, 2255, 2257, 2259, 2264, 2266, 2268, 2277, 2278, 2279,747 228 3, 2285, 2287, 2292, 2294, 2296, 2301, 2303, 2305, 2320,748 232 2, 2323, 2325, 2330, 2331, 2336, 2338, 2340, 2345, 2347,749 23 49, 2351, 2356, 2358, 2360, 2370, 2372, 2373, 2375, 2380,750 238 2, 2384, 2389, 2391, 2393, 2395, 2400, 2402, 2404, 2435,751 243 7, 2438, 2440, 2445, 2450, 2458, 2460, 2462, 2467, 2469,752 247 4, 2476, 2490, 2491, 2493, 2498, 2500, 2502, 2504, 2506,753 251 1, 2512, 2514, 2516, 2521, 2523, 2525, 2531, 2533, 2535,754 25 39, 2541, 2543, 2545, 2559, 2560, 2562, 2567, 2569, 2571,755 257 3, 2575, 2580, 2581, 2583, 2585, 2590, 2592, 2594, 2600,756 260 1, 2603, 2612, 2615, 2617, 2620, 2622, 2624, 2637, 2638,757 264 0, 2645, 2647, 2649, 2651, 2653, 2658, 2659, 2661, 2663,758 266 8, 2670, 2678, 2679, 2680, 2685, 2686, 2690, 2692, 2694,759 269 6, 2698, 2700, 2707, 2709, 2711, 2713, 2715, 2717, 2719,760 272 1, 2723, 2725, 2730, 2732, 2734, 2739, 2765, 2766, 2768,761 277 2, 2773, 2777, 2779, 2781, 2783, 2785, 2787, 2794, 2796,762 279 8, 2800, 2802, 2804, 2809, 2814, 2816, 2818, 2836, 2838,763 284 3, 28441024 0, 301, 301, 305, 312, 313, 314, 318, 319, 320, 1025 324, 325, 329, 330, 334, 335, 339, 343, 344, 355, 1026 357, 359, 361, 366, 367, 373, 377, 379, 380, 382, 1027 383, 385, 387, 389, 398, 399, 405, 406, 410, 411, 1028 415, 419, 421, 423, 425, 430, 433, 435, 437, 442, 1029 455, 457, 459, 461, 463, 465, 467, 469, 471, 473, 1030 475, 482, 483, 489, 490, 491, 492, 496, 497, 499, 1031 504, 505, 507, 509, 514, 515, 517, 522, 523, 525, 1032 530, 531, 533, 535, 537, 542, 543, 545, 550, 551, 1033 556, 557, 562, 563, 568, 569, 574, 575, 580, 581, 1034 584, 586, 591, 596, 597, 599, 605, 606, 610, 611, 1035 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 1036 627, 629, 631, 633, 638, 639, 644, 645, 651, 652, 1037 658, 659, 660, 661, 662, 663, 664, 665, 666, 676, 1038 683, 685, 695, 696, 701, 703, 709, 711, 715, 716, 1039 721, 726, 729, 731, 733, 743, 745, 756, 757, 759, 1040 763, 765, 769, 770, 775, 776, 780, 785, 786, 790, 1041 792, 798, 799, 803, 805, 807, 809, 815, 816, 820, 1042 822, 827, 829, 831, 836, 838, 843, 845, 849, 852, 1043 856, 859, 863, 865, 867, 869, 874, 876, 878, 883, 1044 885, 887, 889, 891, 896, 898, 900, 902, 907, 919, 1045 920, 925, 927, 932, 936, 938, 940, 942, 944, 950, 1046 951, 957, 958, 962, 963, 968, 970, 976, 977, 979, 1047 984, 989, 999, 1001, 1005, 1006, 1011, 1013, 1017, 1018, 1048 1022, 1024, 1028, 1029, 1033, 1034, 1038, 1039, 1054, 1055, 1049 1056, 1057, 1058, 1062, 1067, 1074, 1084, 1089, 1094, 1102, 1050 1107, 1112, 1117, 1122, 1130, 1152, 1157, 1164, 1166, 1173, 1051 1178, 1183, 1194, 1199, 1204, 1209, 1214, 1223, 1228, 1236, 1052 1237, 1238, 1239, 1245, 1250, 1258, 1259, 1260, 1261, 1265, 1053 1266, 1267, 1268, 1273, 1274, 1283, 1284, 1289, 1290, 1295, 1054 1297, 1299, 1301, 1303, 1306, 1305, 1317, 1318, 1320, 1330, 1055 1331, 1336, 1338, 1340, 1342, 1344, 1347, 1349, 1352, 1357, 1056 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1373, 1375, 1377, 1057 1379, 1381, 1387, 1388, 1390, 1392, 1394, 1399, 1400, 1406, 1058 1407, 1409, 1411, 1416, 1418, 1420, 1422, 1427, 1428, 1430, 1059 1432, 1437, 1438, 1440, 1445, 1446, 1448, 1450, 1455, 1457, 1060 1459, 1464, 1465, 1469, 1471, 1477, 1476, 1480, 1482, 1487, 1061 1489, 1495, 1496, 1501, 1502, 1504, 1505, 1514, 1515, 1517, 1062 1519, 1524, 1526, 1532, 1533, 1535, 1538, 1541, 1546, 1547, 1063 1552, 1557, 1561, 1563, 1569, 1568, 1575, 1577, 1583, 1584, 1064 1592, 1593, 1597, 1598, 1599, 1601, 1603, 1610, 1611, 1613, 1065 1615, 1620, 1621, 1627, 1628, 1632, 1633, 1638, 1639, 1640, 1066 1642, 1650, 1651, 1653, 1656, 1658, 1662, 1663, 1664, 1666, 1067 1668, 1672, 1677, 1685, 1686, 1695, 1697, 1702, 1703, 1704, 1068 1708, 1709, 1710, 1714, 1715, 1716, 1720, 1721, 1722, 1727, 1069 1728, 1729, 1730, 1736, 1737, 1739, 1744, 1745, 1750, 1751, 1070 1752, 1753, 1754, 1769, 1770, 1775, 1776, 1782, 1784, 1787, 1071 1789, 1791, 1814, 1815, 1817, 1819, 1824, 1825, 1827, 1832, 1072 1837, 1838, 1844, 1843, 1847, 1851, 1853, 1855, 1861, 1862, 1073 1867, 1872, 1874, 1879, 1881, 1882, 1884, 1889, 1891, 1893, 1074 1898, 1900, 1905, 1910, 1918, 1924, 1923, 1937, 1938, 1943, 1075 1944, 1948, 1953, 1958, 1966, 1971, 1982, 1983, 1988, 1989, 1076 1995, 1996, 2000, 2001, 2002, 2005, 2004, 2015, 2024, 2030, 1077 2036, 2045, 2051, 2057, 2063, 2069, 2077, 2083, 2091, 2097, 1078 2106, 2107, 2108, 2112, 2116, 2118, 2123, 2124, 2128, 2129, 1079 2134, 2140, 2141, 2144, 2146, 2147, 2151, 2152, 2153, 2154, 1080 2188, 2190, 2191, 2193, 2198, 2203, 2208, 2210, 2212, 2217, 1081 2219, 2221, 2223, 2228, 2230, 2239, 2241, 2242, 2247, 2249, 1082 2251, 2256, 2258, 2260, 2265, 2267, 2269, 2278, 2279, 2280, 1083 2284, 2286, 2288, 2293, 2295, 2297, 2302, 2304, 2306, 2321, 1084 2323, 2324, 2326, 2331, 2332, 2337, 2339, 2341, 2346, 2348, 1085 2350, 2352, 2357, 2359, 2361, 2371, 2373, 2374, 2376, 2381, 1086 2383, 2385, 2390, 2392, 2394, 2396, 2401, 2403, 2405, 2436, 1087 2438, 2439, 2441, 2446, 2451, 2459, 2461, 2463, 2468, 2470, 1088 2475, 2477, 2491, 2492, 2494, 2499, 2501, 2503, 2505, 2507, 1089 2512, 2513, 2515, 2517, 2522, 2524, 2526, 2532, 2534, 2536, 1090 2540, 2542, 2544, 2546, 2560, 2561, 2563, 2568, 2570, 2572, 1091 2574, 2576, 2581, 2582, 2584, 2586, 2591, 2593, 2595, 2601, 1092 2602, 2604, 2613, 2616, 2618, 2621, 2623, 2625, 2638, 2639, 1093 2641, 2646, 2648, 2650, 2652, 2654, 2659, 2660, 2662, 2664, 1094 2669, 2671, 2679, 2680, 2681, 2686, 2687, 2691, 2693, 2695, 1095 2697, 2699, 2701, 2708, 2710, 2712, 2714, 2716, 2718, 2720, 1096 2722, 2724, 2726, 2731, 2733, 2735, 2740, 2766, 2767, 2769, 1097 2773, 2774, 2778, 2780, 2782, 2784, 2786, 2788, 2795, 2797, 1098 2799, 2801, 2803, 2805, 2810, 2815, 2817, 2819, 2837, 2839, 1099 2844, 2845 764 1100 }; 765 1101 #endif 766 1102 767 #if YYDEBUG || YYERROR_VERBOSE || 01103 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 768 1104 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 769 1105 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 874 1210 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 875 1211 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 876 "comma_opt", "assignment_opt", YY_NULLPTR1212 "comma_opt", "assignment_opt", 0 877 1213 }; 878 1214 #endif 879 1215 880 1216 # ifdef YYPRINT 881 /* YYTOKNUM[ NUM] -- (External) token number corresponding to the882 (internal) symbol number NUM (which must be that of a token). */1217 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 1218 token YYLEX-NUM. */ 883 1219 static const yytype_uint16 yytoknum[] = 884 1220 { … … 900 1236 # endif 901 1237 1238 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1239 static const yytype_uint16 yyr1[] = 1240 { 1241 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 1242 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 1243 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 1244 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 1245 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 1246 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 1247 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 1248 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 1249 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 1250 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 1251 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 1252 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 1253 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 1254 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 1255 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 1256 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 1257 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 1258 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 1259 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 1260 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 1261 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 1262 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 1263 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 1264 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1265 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 1266 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 1267 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 1268 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 1269 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 1270 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 1271 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 1272 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 1273 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1274 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 1275 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 1276 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 1277 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 1278 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 1279 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 1280 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 1281 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 1282 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 1283 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 1284 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 1285 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1286 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 1287 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 1288 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 1289 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 1290 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 1291 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 1292 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 1293 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 1294 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1295 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 1296 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 1297 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 1298 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 1299 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1300 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1301 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 1302 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 1303 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 1304 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 1305 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 1306 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 1307 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 1308 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 1309 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 1310 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 1311 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 1312 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 1313 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 1314 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 1315 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 1316 373, 373 1317 }; 1318 1319 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1320 static const yytype_uint8 yyr2[] = 1321 { 1322 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1323 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1324 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 1325 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 1326 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 1327 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 1328 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1329 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1330 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1331 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1332 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 1333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1334 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 1335 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 1336 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 1337 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 1338 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 1339 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 1340 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 1341 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 1342 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 1343 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 1344 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 1345 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1346 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 1347 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 1348 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 1349 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 1350 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 1351 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1352 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 1353 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1354 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1355 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 1356 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 1357 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 1358 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 1359 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 1360 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 1361 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 1362 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1363 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1364 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1365 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1366 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1367 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 1368 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 1369 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 1370 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 1371 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 1372 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 1373 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 1374 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 1375 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 1376 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 1377 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 1378 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 1379 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 1380 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 1381 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 1382 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1383 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 1384 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1385 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 1386 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 1387 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 1388 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 1389 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 1390 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 1391 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1392 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 1393 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 1394 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 1395 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 1396 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 1397 0, 2 1398 }; 1399 1400 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1401 Performed when YYTABLE doesn't specify something else to do. Zero 1402 means the default is an error. */ 1403 static const yytype_uint16 yydefact[] = 1404 { 1405 293, 293, 313, 311, 314, 312, 315, 316, 299, 301, 1406 300, 0, 302, 327, 319, 324, 322, 323, 321, 320, 1407 325, 326, 331, 328, 329, 330, 546, 546, 546, 0, 1408 0, 0, 293, 219, 303, 317, 318, 7, 358, 0, 1409 8, 14, 15, 0, 2, 61, 62, 564, 9, 293, 1410 524, 522, 246, 3, 453, 3, 259, 0, 3, 3, 1411 3, 247, 3, 0, 0, 0, 294, 295, 297, 293, 1412 306, 309, 339, 285, 332, 337, 286, 347, 287, 354, 1413 351, 361, 0, 0, 362, 288, 472, 476, 3, 3, 1414 0, 2, 518, 523, 528, 298, 0, 0, 546, 576, 1415 546, 2, 587, 588, 589, 293, 0, 730, 731, 0, 1416 12, 0, 13, 293, 269, 270, 0, 294, 289, 290, 1417 291, 292, 525, 304, 391, 547, 548, 369, 370, 12, 1418 444, 445, 11, 440, 443, 0, 502, 497, 488, 444, 1419 445, 0, 0, 527, 220, 0, 293, 0, 0, 0, 1420 0, 0, 0, 0, 0, 293, 293, 2, 0, 732, 1421 294, 581, 593, 736, 729, 727, 734, 0, 0, 0, 1422 253, 2, 0, 531, 438, 439, 437, 0, 0, 0, 1423 0, 546, 0, 633, 634, 0, 0, 544, 540, 546, 1424 561, 546, 546, 542, 2, 541, 546, 600, 546, 546, 1425 603, 0, 0, 0, 293, 293, 311, 359, 2, 293, 1426 260, 296, 307, 340, 352, 477, 0, 2, 0, 453, 1427 261, 294, 333, 348, 355, 473, 0, 2, 0, 310, 1428 334, 341, 342, 0, 349, 353, 356, 360, 445, 293, 1429 371, 364, 368, 0, 393, 474, 478, 0, 0, 0, 1430 1, 293, 2, 529, 575, 577, 293, 2, 740, 294, 1431 743, 544, 544, 0, 294, 0, 0, 272, 546, 542, 1432 2, 293, 0, 0, 293, 549, 2, 500, 2, 553, 1433 0, 0, 0, 0, 0, 0, 19, 58, 4, 5, 1434 6, 17, 0, 0, 293, 2, 63, 64, 65, 66, 1435 46, 20, 47, 16, 23, 45, 67, 293, 0, 70, 1436 74, 77, 80, 85, 88, 90, 92, 94, 96, 98, 1437 103, 494, 750, 451, 493, 0, 449, 450, 0, 565, 1438 580, 583, 586, 592, 595, 598, 358, 0, 2, 738, 1439 0, 293, 741, 2, 61, 293, 3, 425, 0, 433, 1440 294, 293, 306, 332, 286, 347, 354, 3, 3, 407, 1441 411, 421, 426, 472, 293, 427, 705, 706, 293, 428, 1442 430, 293, 2, 582, 594, 728, 2, 2, 248, 2, 1443 458, 0, 456, 455, 454, 140, 2, 2, 250, 2, 1444 2, 249, 2, 280, 2, 281, 0, 279, 0, 0, 1445 0, 0, 0, 0, 0, 0, 0, 566, 605, 0, 1446 453, 2, 560, 569, 659, 562, 563, 532, 293, 2, 1447 599, 608, 601, 602, 0, 275, 293, 293, 338, 294, 1448 0, 294, 0, 293, 733, 737, 735, 533, 293, 544, 1449 254, 262, 308, 0, 2, 534, 293, 498, 335, 336, 1450 282, 350, 357, 0, 293, 0, 748, 398, 0, 475, 1451 499, 251, 252, 519, 293, 435, 0, 293, 236, 0, 1452 2, 238, 0, 294, 0, 256, 2, 257, 277, 0, 1453 0, 2, 293, 544, 293, 485, 487, 486, 0, 0, 1454 750, 0, 293, 0, 293, 489, 293, 559, 557, 558, 1455 556, 0, 551, 554, 0, 0, 293, 53, 293, 67, 1456 48, 293, 55, 293, 293, 51, 52, 2, 126, 0, 1457 0, 447, 0, 446, 727, 120, 293, 18, 0, 30, 1458 31, 36, 2, 0, 36, 110, 111, 112, 113, 114, 1459 115, 116, 117, 118, 119, 109, 108, 0, 49, 50, 1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1462 105, 2, 645, 452, 642, 546, 546, 650, 479, 293, 1463 2, 584, 585, 0, 596, 597, 0, 2, 739, 742, 1464 120, 293, 0, 2, 707, 294, 711, 702, 703, 709, 1465 0, 2, 2, 667, 546, 750, 616, 546, 546, 750, 1466 546, 630, 546, 546, 681, 434, 664, 546, 546, 672, 1467 679, 293, 429, 294, 0, 0, 293, 717, 294, 722, 1468 750, 714, 293, 719, 750, 293, 293, 293, 0, 120, 1469 0, 19, 2, 0, 20, 0, 459, 748, 0, 0, 1470 465, 240, 0, 293, 0, 0, 0, 544, 568, 572, 1471 574, 604, 607, 611, 614, 567, 606, 0, 283, 657, 1472 0, 293, 276, 0, 0, 0, 0, 274, 2, 0, 1473 258, 535, 293, 0, 0, 293, 2, 363, 383, 372, 1474 0, 0, 377, 371, 749, 0, 0, 396, 0, 294, 1475 3, 414, 3, 418, 417, 590, 0, 530, 293, 61, 1476 3, 293, 433, 294, 3, 427, 428, 2, 0, 0, 1477 0, 484, 305, 293, 480, 482, 3, 2, 2, 0, 1478 501, 3, 0, 553, 128, 0, 0, 221, 0, 0, 1479 0, 0, 37, 0, 0, 120, 293, 21, 0, 22, 1480 0, 691, 696, 448, 688, 546, 546, 0, 106, 3, 1481 2, 28, 0, 34, 0, 2, 26, 0, 104, 71, 1482 72, 73, 75, 76, 78, 79, 83, 84, 81, 82, 1483 86, 87, 89, 91, 93, 95, 97, 0, 0, 751, 1484 293, 0, 0, 0, 646, 647, 643, 644, 496, 495, 1485 293, 0, 293, 713, 293, 718, 294, 293, 661, 293, 1486 293, 704, 660, 2, 293, 0, 0, 0, 0, 0, 1487 0, 0, 0, 682, 0, 668, 619, 635, 669, 2, 1488 615, 622, 431, 617, 618, 432, 2, 629, 638, 631, 1489 632, 665, 666, 680, 708, 712, 710, 750, 267, 2, 1490 744, 2, 422, 716, 721, 423, 0, 401, 3, 3, 1491 3, 3, 453, 3, 0, 2, 467, 464, 749, 0, 1492 460, 2, 463, 466, 0, 293, 241, 263, 3, 271, 1493 273, 0, 453, 2, 570, 571, 2, 609, 610, 0, 1494 658, 536, 3, 344, 343, 346, 345, 293, 537, 0, 1495 538, 371, 0, 0, 293, 293, 0, 0, 691, 381, 1496 384, 388, 546, 388, 387, 380, 373, 546, 375, 378, 1497 293, 398, 392, 102, 399, 748, 0, 0, 436, 239, 1498 0, 0, 3, 2, 667, 429, 0, 526, 0, 750, 1499 488, 0, 293, 293, 293, 0, 550, 552, 129, 0, 1500 0, 214, 0, 0, 0, 222, 223, 54, 0, 56, 1501 59, 60, 0, 2, 127, 0, 0, 0, 692, 693, 1502 689, 690, 458, 68, 69, 107, 124, 3, 106, 0, 1503 0, 25, 36, 3, 0, 33, 100, 0, 3, 649, 1504 653, 656, 648, 3, 591, 3, 715, 720, 2, 61, 1505 293, 3, 3, 294, 0, 3, 621, 625, 628, 637, 1506 671, 675, 678, 293, 3, 620, 636, 670, 293, 293, 1507 424, 293, 293, 745, 0, 0, 0, 0, 255, 0, 1508 102, 0, 3, 3, 0, 461, 0, 457, 0, 0, 1509 244, 293, 0, 0, 128, 0, 0, 0, 0, 0, 1510 128, 0, 0, 106, 106, 19, 2, 0, 0, 3, 1511 130, 131, 2, 142, 132, 133, 134, 135, 136, 137, 1512 144, 146, 0, 0, 0, 284, 293, 293, 546, 0, 1513 539, 293, 374, 376, 0, 390, 692, 385, 389, 386, 1514 379, 383, 366, 397, 0, 578, 2, 663, 662, 0, 1515 668, 2, 481, 483, 503, 3, 511, 512, 0, 2, 1516 507, 3, 3, 0, 0, 555, 221, 0, 0, 0, 1517 221, 0, 0, 120, 695, 699, 701, 694, 748, 106, 1518 0, 3, 660, 40, 3, 38, 35, 0, 3, 99, 1519 101, 0, 2, 651, 652, 0, 0, 293, 0, 0, 1520 0, 3, 637, 0, 2, 623, 624, 2, 639, 2, 1521 673, 674, 0, 0, 61, 0, 3, 3, 3, 3, 1522 409, 408, 412, 2, 2, 747, 746, 121, 0, 0, 1523 0, 0, 3, 462, 3, 0, 242, 145, 3, 294, 1524 293, 0, 0, 0, 0, 2, 0, 190, 0, 188, 1525 0, 0, 0, 0, 0, 0, 0, 546, 120, 0, 1526 150, 147, 293, 0, 0, 266, 278, 3, 3, 545, 1527 612, 367, 382, 395, 293, 265, 293, 0, 514, 491, 1528 293, 0, 0, 490, 505, 0, 0, 0, 215, 0, 1529 224, 57, 2, 697, 698, 0, 125, 122, 0, 0, 1530 0, 0, 0, 24, 0, 654, 293, 579, 264, 723, 1531 724, 725, 0, 676, 293, 293, 293, 3, 3, 0, 1532 684, 0, 0, 0, 0, 293, 293, 3, 543, 121, 1533 469, 0, 0, 245, 294, 0, 0, 0, 0, 293, 1534 191, 189, 186, 0, 192, 0, 0, 0, 0, 196, 1535 199, 197, 193, 0, 194, 128, 36, 143, 141, 243, 1536 0, 0, 416, 420, 419, 0, 508, 2, 509, 2, 1537 510, 504, 293, 227, 0, 225, 0, 227, 293, 32, 1538 123, 2, 43, 2, 41, 39, 29, 27, 3, 726, 1539 3, 3, 3, 0, 0, 683, 685, 626, 640, 268, 1540 2, 406, 3, 405, 0, 471, 468, 128, 0, 0, 1541 128, 3, 0, 128, 187, 0, 2, 2, 208, 198, 1542 0, 0, 0, 139, 0, 573, 613, 2, 0, 0, 1543 2, 228, 0, 0, 216, 0, 3, 0, 0, 0, 1544 0, 0, 0, 686, 687, 293, 0, 470, 151, 0, 1545 0, 2, 164, 128, 153, 0, 181, 0, 128, 0, 1546 2, 155, 0, 2, 0, 2, 2, 2, 195, 33, 1547 293, 513, 515, 506, 0, 0, 0, 0, 0, 3, 1548 3, 655, 627, 641, 677, 410, 128, 157, 160, 0, 1549 159, 163, 3, 166, 165, 0, 128, 183, 128, 3, 1550 0, 293, 0, 293, 0, 2, 0, 2, 138, 2, 1551 229, 230, 0, 226, 217, 700, 0, 0, 152, 0, 1552 0, 162, 232, 167, 2, 234, 182, 0, 185, 171, 1553 200, 3, 209, 213, 202, 3, 0, 293, 0, 293, 1554 0, 0, 0, 44, 42, 158, 161, 128, 0, 168, 1555 293, 128, 128, 0, 172, 0, 0, 691, 210, 211, 1556 212, 0, 201, 3, 203, 3, 293, 218, 231, 148, 1557 169, 154, 128, 235, 184, 179, 177, 173, 156, 128, 1558 0, 692, 0, 0, 0, 0, 149, 170, 180, 174, 1559 178, 177, 175, 3, 3, 0, 0, 492, 176, 204, 1560 206, 3, 3, 205, 207 1561 }; 1562 1563 /* YYDEFGOTO[NTERM-NUM]. */ 1564 static const yytype_int16 yydefgoto[] = 1565 { 1566 -1, 814, 468, 300, 47, 133, 134, 301, 302, 303, 1567 304, 305, 762, 763, 1134, 1135, 306, 381, 308, 309, 1568 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1569 320, 1031, 518, 976, 547, 322, 977, 948, 1058, 1519, 1570 1060, 1061, 1062, 1063, 1520, 1064, 1065, 1438, 1439, 1402, 1571 1403, 1404, 1498, 1499, 1503, 1504, 1539, 1540, 1066, 1362, 1572 1067, 1068, 1299, 1300, 1301, 1481, 1069, 145, 954, 955, 1573 956, 1382, 1462, 1473, 1474, 469, 470, 875, 876, 1039, 1574 51, 52, 53, 54, 55, 347, 158, 58, 59, 60, 1575 61, 62, 349, 64, 65, 264, 67, 68, 274, 351, 1576 352, 71, 72, 73, 118, 75, 204, 354, 119, 78, 1577 120, 80, 81, 455, 82, 454, 689, 690, 691, 909, 1578 1087, 910, 83, 84, 458, 456, 697, 856, 857, 858, 1579 859, 700, 701, 702, 359, 360, 361, 362, 466, 340, 1580 135, 136, 522, 324, 170, 646, 647, 648, 649, 650, 1581 85, 121, 87, 489, 490, 940, 491, 277, 495, 325, 1582 88, 137, 138, 89, 1322, 1109, 1110, 1111, 1112, 90, 1583 91, 718, 92, 273, 93, 94, 187, 1033, 680, 412, 1584 125, 95, 501, 502, 503, 188, 268, 190, 191, 192, 1585 269, 98, 99, 100, 101, 102, 103, 104, 195, 196, 1586 197, 198, 199, 826, 606, 607, 608, 609, 200, 611, 1587 612, 613, 573, 574, 575, 576, 752, 105, 615, 616, 1588 617, 618, 619, 620, 969, 754, 755, 756, 596, 365, 1589 366, 367, 368, 326, 164, 107, 108, 109, 370, 695, 1590 570 1591 }; 1592 1593 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1594 STATE-NUM. */ 902 1595 #define YYPACT_NINF -1323 903 904 #define yypact_value_is_default(Yystate) \905 (!!((Yystate) == (-1323)))906 907 #define YYTABLE_NINF -522908 909 #define yytable_value_is_error(Yytable_value) \910 0911 912 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing913 STATE-NUM. */914 1596 static const yytype_int16 yypact[] = 915 1597 { … … 1072 1754 }; 1073 1755 1074 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1075 Performed when YYTABLE does not specify something else to do. Zero 1076 means the default is an error. */ 1077 static const yytype_uint16 yydefact[] = 1078 { 1079 293, 293, 313, 311, 314, 312, 315, 316, 299, 301, 1080 300, 0, 302, 327, 319, 324, 322, 323, 321, 320, 1081 325, 326, 331, 328, 329, 330, 546, 546, 546, 0, 1082 0, 0, 293, 219, 303, 317, 318, 7, 358, 0, 1083 8, 14, 15, 0, 2, 61, 62, 564, 9, 293, 1084 524, 522, 246, 3, 453, 3, 259, 0, 3, 3, 1085 3, 247, 3, 0, 0, 0, 294, 295, 297, 293, 1086 306, 309, 339, 285, 332, 337, 286, 347, 287, 354, 1087 351, 361, 0, 0, 362, 288, 472, 476, 3, 3, 1088 0, 2, 518, 523, 528, 298, 0, 0, 546, 576, 1089 546, 2, 587, 588, 589, 293, 0, 730, 731, 0, 1090 12, 0, 13, 293, 269, 270, 0, 294, 289, 290, 1091 291, 292, 525, 304, 391, 547, 548, 369, 370, 12, 1092 444, 445, 11, 440, 443, 0, 502, 497, 488, 444, 1093 445, 0, 0, 527, 220, 0, 293, 0, 0, 0, 1094 0, 0, 0, 0, 0, 293, 293, 2, 0, 732, 1095 294, 581, 593, 736, 729, 727, 734, 0, 0, 0, 1096 253, 2, 0, 531, 438, 439, 437, 0, 0, 0, 1097 0, 546, 0, 633, 634, 0, 0, 544, 540, 546, 1098 561, 546, 546, 542, 2, 541, 546, 600, 546, 546, 1099 603, 0, 0, 0, 293, 293, 311, 359, 2, 293, 1100 260, 296, 307, 340, 352, 477, 0, 2, 0, 453, 1101 261, 294, 333, 348, 355, 473, 0, 2, 0, 310, 1102 334, 341, 342, 0, 349, 353, 356, 360, 445, 293, 1103 371, 364, 368, 0, 393, 474, 478, 0, 0, 0, 1104 1, 293, 2, 529, 575, 577, 293, 2, 740, 294, 1105 743, 544, 544, 0, 294, 0, 0, 272, 546, 542, 1106 2, 293, 0, 0, 293, 549, 2, 500, 2, 553, 1107 0, 0, 0, 0, 0, 0, 19, 58, 4, 5, 1108 6, 17, 0, 0, 293, 2, 63, 64, 65, 66, 1109 46, 20, 47, 16, 23, 45, 67, 293, 0, 70, 1110 74, 77, 80, 85, 88, 90, 92, 94, 96, 98, 1111 103, 494, 750, 451, 493, 0, 449, 450, 0, 565, 1112 580, 583, 586, 592, 595, 598, 358, 0, 2, 738, 1113 0, 293, 741, 2, 61, 293, 3, 425, 0, 433, 1114 294, 293, 306, 332, 286, 347, 354, 3, 3, 407, 1115 411, 421, 426, 472, 293, 427, 705, 706, 293, 428, 1116 430, 293, 2, 582, 594, 728, 2, 2, 248, 2, 1117 458, 0, 456, 455, 454, 140, 2, 2, 250, 2, 1118 2, 249, 2, 280, 2, 281, 0, 279, 0, 0, 1119 0, 0, 0, 0, 0, 0, 0, 566, 605, 0, 1120 453, 2, 560, 569, 659, 562, 563, 532, 293, 2, 1121 599, 608, 601, 602, 0, 275, 293, 293, 338, 294, 1122 0, 294, 0, 293, 733, 737, 735, 533, 293, 544, 1123 254, 262, 308, 0, 2, 534, 293, 498, 335, 336, 1124 282, 350, 357, 0, 293, 0, 748, 398, 0, 475, 1125 499, 251, 252, 519, 293, 435, 0, 293, 236, 0, 1126 2, 238, 0, 294, 0, 256, 2, 257, 277, 0, 1127 0, 2, 293, 544, 293, 485, 487, 486, 0, 0, 1128 750, 0, 293, 0, 293, 489, 293, 559, 557, 558, 1129 556, 0, 551, 554, 0, 0, 293, 53, 293, 67, 1130 48, 293, 55, 293, 293, 51, 52, 2, 126, 0, 1131 0, 447, 0, 446, 727, 120, 293, 18, 0, 30, 1132 31, 36, 2, 0, 36, 110, 111, 112, 113, 114, 1133 115, 116, 117, 118, 119, 109, 108, 0, 49, 50, 1134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1136 105, 2, 645, 452, 642, 546, 546, 650, 479, 293, 1137 2, 584, 585, 0, 596, 597, 0, 2, 739, 742, 1138 120, 293, 0, 2, 707, 294, 711, 702, 703, 709, 1139 0, 2, 2, 667, 546, 750, 616, 546, 546, 750, 1140 546, 630, 546, 546, 681, 434, 664, 546, 546, 672, 1141 679, 293, 429, 294, 0, 0, 293, 717, 294, 722, 1142 750, 714, 293, 719, 750, 293, 293, 293, 0, 120, 1143 0, 19, 2, 0, 20, 0, 459, 748, 0, 0, 1144 465, 240, 0, 293, 0, 0, 0, 544, 568, 572, 1145 574, 604, 607, 611, 614, 567, 606, 0, 283, 657, 1146 0, 293, 276, 0, 0, 0, 0, 274, 2, 0, 1147 258, 535, 293, 0, 0, 293, 2, 363, 383, 372, 1148 0, 0, 377, 371, 749, 0, 0, 396, 0, 294, 1149 3, 414, 3, 418, 417, 590, 0, 530, 293, 61, 1150 3, 293, 433, 294, 3, 427, 428, 2, 0, 0, 1151 0, 484, 305, 293, 480, 482, 3, 2, 2, 0, 1152 501, 3, 0, 553, 128, 0, 0, 221, 0, 0, 1153 0, 0, 37, 0, 0, 120, 293, 21, 0, 22, 1154 0, 691, 696, 448, 688, 546, 546, 0, 106, 3, 1155 2, 28, 0, 34, 0, 2, 26, 0, 104, 71, 1156 72, 73, 75, 76, 78, 79, 83, 84, 81, 82, 1157 86, 87, 89, 91, 93, 95, 97, 0, 0, 751, 1158 293, 0, 0, 0, 646, 647, 643, 644, 496, 495, 1159 293, 0, 293, 713, 293, 718, 294, 293, 661, 293, 1160 293, 704, 660, 2, 293, 0, 0, 0, 0, 0, 1161 0, 0, 0, 682, 0, 668, 619, 635, 669, 2, 1162 615, 622, 431, 617, 618, 432, 2, 629, 638, 631, 1163 632, 665, 666, 680, 708, 712, 710, 750, 267, 2, 1164 744, 2, 422, 716, 721, 423, 0, 401, 3, 3, 1165 3, 3, 453, 3, 0, 2, 467, 464, 749, 0, 1166 460, 2, 463, 466, 0, 293, 241, 263, 3, 271, 1167 273, 0, 453, 2, 570, 571, 2, 609, 610, 0, 1168 658, 536, 3, 344, 343, 346, 345, 293, 537, 0, 1169 538, 371, 0, 0, 293, 293, 0, 0, 691, 381, 1170 384, 388, 546, 388, 387, 380, 373, 546, 375, 378, 1171 293, 398, 392, 102, 399, 748, 0, 0, 436, 239, 1172 0, 0, 3, 2, 667, 429, 0, 526, 0, 750, 1173 488, 0, 293, 293, 293, 0, 550, 552, 129, 0, 1174 0, 214, 0, 0, 0, 222, 223, 54, 0, 56, 1175 59, 60, 0, 2, 127, 0, 0, 0, 692, 693, 1176 689, 690, 458, 68, 69, 107, 124, 3, 106, 0, 1177 0, 25, 36, 3, 0, 33, 100, 0, 3, 649, 1178 653, 656, 648, 3, 591, 3, 715, 720, 2, 61, 1179 293, 3, 3, 294, 0, 3, 621, 625, 628, 637, 1180 671, 675, 678, 293, 3, 620, 636, 670, 293, 293, 1181 424, 293, 293, 745, 0, 0, 0, 0, 255, 0, 1182 102, 0, 3, 3, 0, 461, 0, 457, 0, 0, 1183 244, 293, 0, 0, 128, 0, 0, 0, 0, 0, 1184 128, 0, 0, 106, 106, 19, 2, 0, 0, 3, 1185 130, 131, 2, 142, 132, 133, 134, 135, 136, 137, 1186 144, 146, 0, 0, 0, 284, 293, 293, 546, 0, 1187 539, 293, 374, 376, 0, 390, 692, 385, 389, 386, 1188 379, 383, 366, 397, 0, 578, 2, 663, 662, 0, 1189 668, 2, 481, 483, 503, 3, 511, 512, 0, 2, 1190 507, 3, 3, 0, 0, 555, 221, 0, 0, 0, 1191 221, 0, 0, 120, 695, 699, 701, 694, 748, 106, 1192 0, 3, 660, 40, 3, 38, 35, 0, 3, 99, 1193 101, 0, 2, 651, 652, 0, 0, 293, 0, 0, 1194 0, 3, 637, 0, 2, 623, 624, 2, 639, 2, 1195 673, 674, 0, 0, 61, 0, 3, 3, 3, 3, 1196 409, 408, 412, 2, 2, 747, 746, 121, 0, 0, 1197 0, 0, 3, 462, 3, 0, 242, 145, 3, 294, 1198 293, 0, 0, 0, 0, 2, 0, 190, 0, 188, 1199 0, 0, 0, 0, 0, 0, 0, 546, 120, 0, 1200 150, 147, 293, 0, 0, 266, 278, 3, 3, 545, 1201 612, 367, 382, 395, 293, 265, 293, 0, 514, 491, 1202 293, 0, 0, 490, 505, 0, 0, 0, 215, 0, 1203 224, 57, 2, 697, 698, 0, 125, 122, 0, 0, 1204 0, 0, 0, 24, 0, 654, 293, 579, 264, 723, 1205 724, 725, 0, 676, 293, 293, 293, 3, 3, 0, 1206 684, 0, 0, 0, 0, 293, 293, 3, 543, 121, 1207 469, 0, 0, 245, 294, 0, 0, 0, 0, 293, 1208 191, 189, 186, 0, 192, 0, 0, 0, 0, 196, 1209 199, 197, 193, 0, 194, 128, 36, 143, 141, 243, 1210 0, 0, 416, 420, 419, 0, 508, 2, 509, 2, 1211 510, 504, 293, 227, 0, 225, 0, 227, 293, 32, 1212 123, 2, 43, 2, 41, 39, 29, 27, 3, 726, 1213 3, 3, 3, 0, 0, 683, 685, 626, 640, 268, 1214 2, 406, 3, 405, 0, 471, 468, 128, 0, 0, 1215 128, 3, 0, 128, 187, 0, 2, 2, 208, 198, 1216 0, 0, 0, 139, 0, 573, 613, 2, 0, 0, 1217 2, 228, 0, 0, 216, 0, 3, 0, 0, 0, 1218 0, 0, 0, 686, 687, 293, 0, 470, 151, 0, 1219 0, 2, 164, 128, 153, 0, 181, 0, 128, 0, 1220 2, 155, 0, 2, 0, 2, 2, 2, 195, 33, 1221 293, 513, 515, 506, 0, 0, 0, 0, 0, 3, 1222 3, 655, 627, 641, 677, 410, 128, 157, 160, 0, 1223 159, 163, 3, 166, 165, 0, 128, 183, 128, 3, 1224 0, 293, 0, 293, 0, 2, 0, 2, 138, 2, 1225 229, 230, 0, 226, 217, 700, 0, 0, 152, 0, 1226 0, 162, 232, 167, 2, 234, 182, 0, 185, 171, 1227 200, 3, 209, 213, 202, 3, 0, 293, 0, 293, 1228 0, 0, 0, 44, 42, 158, 161, 128, 0, 168, 1229 293, 128, 128, 0, 172, 0, 0, 691, 210, 211, 1230 212, 0, 201, 3, 203, 3, 293, 218, 231, 148, 1231 169, 154, 128, 235, 184, 179, 177, 173, 156, 128, 1232 0, 692, 0, 0, 0, 0, 149, 170, 180, 174, 1233 178, 177, 175, 3, 3, 0, 0, 492, 176, 204, 1234 206, 3, 3, 205, 207 1235 }; 1236 1237 /* YYPGOTO[NTERM-NUM]. */ 1756 /* YYPGOTO[NTERM-NUM]. */ 1238 1757 static const yytype_int16 yypgoto[] = 1239 1758 { … … 1265 1784 }; 1266 1785 1267 /* YYDEFGOTO[NTERM-NUM]. */ 1268 static const yytype_int16 yydefgoto[] = 1269 { 1270 -1, 814, 468, 300, 47, 133, 134, 301, 302, 303, 1271 304, 305, 762, 763, 1134, 1135, 306, 381, 308, 309, 1272 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1273 320, 1031, 518, 976, 547, 322, 977, 948, 1058, 1519, 1274 1060, 1061, 1062, 1063, 1520, 1064, 1065, 1438, 1439, 1402, 1275 1403, 1404, 1498, 1499, 1503, 1504, 1539, 1540, 1066, 1362, 1276 1067, 1068, 1299, 1300, 1301, 1481, 1069, 145, 954, 955, 1277 956, 1382, 1462, 1473, 1474, 469, 470, 875, 876, 1039, 1278 51, 52, 53, 54, 55, 347, 158, 58, 59, 60, 1279 61, 62, 349, 64, 65, 264, 67, 68, 274, 351, 1280 352, 71, 72, 73, 118, 75, 204, 354, 119, 78, 1281 120, 80, 81, 455, 82, 454, 689, 690, 691, 909, 1282 1087, 910, 83, 84, 458, 456, 697, 856, 857, 858, 1283 859, 700, 701, 702, 359, 360, 361, 362, 466, 340, 1284 135, 136, 522, 324, 170, 646, 647, 648, 649, 650, 1285 85, 121, 87, 489, 490, 940, 491, 277, 495, 325, 1286 88, 137, 138, 89, 1322, 1109, 1110, 1111, 1112, 90, 1287 91, 718, 92, 273, 93, 94, 187, 1033, 680, 412, 1288 125, 95, 501, 502, 503, 188, 268, 190, 191, 192, 1289 269, 98, 99, 100, 101, 102, 103, 104, 195, 196, 1290 197, 198, 199, 826, 606, 607, 608, 609, 200, 611, 1291 612, 613, 573, 574, 575, 576, 752, 105, 615, 616, 1292 617, 618, 619, 620, 969, 754, 755, 756, 596, 365, 1293 366, 367, 368, 326, 164, 107, 108, 109, 370, 695, 1294 570 1295 }; 1296 1297 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1298 positive, shift that token. If negative, reduce the rule whose 1299 number is the opposite. If YYTABLE_NINF, syntax error. */ 1786 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1787 positive, shift that token. If negative, reduce the rule which 1788 number is the opposite. If YYTABLE_NINF, syntax error. */ 1789 #define YYTABLE_NINF -522 1300 1790 static const yytype_int16 yytable[] = 1301 1791 { … … 2389 2879 }; 2390 2880 2881 #define yypact_value_is_default(yystate) \ 2882 ((yystate) == (-1323)) 2883 2884 #define yytable_value_is_error(yytable_value) \ 2885 YYID (0) 2886 2391 2887 static const yytype_int16 yycheck[] = 2392 2888 { … … 3480 3976 }; 3481 3977 3482 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing3483 symbol of state STATE-NUM. */3978 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3979 symbol of state STATE-NUM. */ 3484 3980 static const yytype_uint16 yystos[] = 3485 3981 { … … 3642 4138 }; 3643 4139 3644 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3645 static const yytype_uint16 yyr1[] = 3646 { 3647 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 3648 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 3649 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 3650 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 3651 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 3652 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 3653 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 3654 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 3655 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 3656 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 3657 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 3658 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 3659 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 3660 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 3661 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 3662 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 3663 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 3664 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 3665 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 3666 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 3667 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 3668 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 3669 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 3670 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 3671 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 3672 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 3673 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 3674 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 3675 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 3676 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 3677 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 3678 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 3679 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 3680 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 3681 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 3682 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 3683 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 3684 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 3685 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 3686 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 3687 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 3688 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 3689 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 3690 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 3691 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 3692 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 3693 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 3694 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 3695 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 3696 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 3697 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 3698 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 3699 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 3700 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 3701 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 3702 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 3703 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 3704 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 3705 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 3706 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 3707 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 3708 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 3709 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 3710 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 3711 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 3712 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 3713 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 3714 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 3715 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 3716 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 3717 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 3718 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 3719 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 3720 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 3721 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 3722 373, 373 3723 }; 3724 3725 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3726 static const yytype_uint8 yyr2[] = 3727 { 3728 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3729 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3730 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 3731 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 3732 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 3733 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 3734 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 3735 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3736 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3737 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 3738 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 3739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3740 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 3741 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 3742 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 3743 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 3744 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 3745 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 3746 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 3747 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 3748 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 3749 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 3750 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 3751 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3752 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 3753 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 3754 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 3755 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 3756 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 3757 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 3758 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 3759 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3761 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 3762 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 3763 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 3764 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 3765 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 3766 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 3767 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 3768 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 3769 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 3770 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 3771 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 3772 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3773 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 3774 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 3775 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 3776 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 3777 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 3778 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 3779 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 3780 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 3781 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 3782 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 3783 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 3784 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 3785 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 3786 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 3787 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 3788 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 3789 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 3790 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 3791 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 3792 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 3793 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 3794 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 3795 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 3796 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 3797 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 3798 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 3799 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 3800 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 3801 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 3802 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 3803 0, 2 3804 }; 3805 3806 3807 #define yyerrok (yyerrstatus = 0) 3808 #define yyclearin (yychar = YYEMPTY) 3809 #define YYEMPTY (-2) 3810 #define YYEOF 0 3811 3812 #define YYACCEPT goto yyacceptlab 3813 #define YYABORT goto yyabortlab 3814 #define YYERROR goto yyerrorlab 3815 4140 #define yyerrok (yyerrstatus = 0) 4141 #define yyclearin (yychar = YYEMPTY) 4142 #define YYEMPTY (-2) 4143 #define YYEOF 0 4144 4145 #define YYACCEPT goto yyacceptlab 4146 #define YYABORT goto yyabortlab 4147 #define YYERROR goto yyerrorlab 4148 4149 4150 /* Like YYERROR except do call yyerror. This remains here temporarily 4151 to ease the transition to the new meaning of YYERROR, for GCC. 4152 Once GCC version 2 has supplanted version 1, this can go. However, 4153 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4154 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4155 discussed. */ 4156 4157 #define YYFAIL goto yyerrlab 4158 #if defined YYFAIL 4159 /* This is here to suppress warnings from the GCC cpp's 4160 -Wunused-macros. Normally we don't worry about that warning, but 4161 some users do, and we want to make it easy for users to remove 4162 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4163 #endif 3816 4164 3817 4165 #define YYRECOVERING() (!!yyerrstatus) 3818 4166 3819 #define YYBACKUP(Token, Value) \ 3820 do \ 3821 if (yychar == YYEMPTY) \ 3822 { \ 3823 yychar = (Token); \ 3824 yylval = (Value); \ 3825 YYPOPSTACK (yylen); \ 3826 yystate = *yyssp; \ 3827 goto yybackup; \ 3828 } \ 3829 else \ 3830 { \ 4167 #define YYBACKUP(Token, Value) \ 4168 do \ 4169 if (yychar == YYEMPTY && yylen == 1) \ 4170 { \ 4171 yychar = (Token); \ 4172 yylval = (Value); \ 4173 YYPOPSTACK (1); \ 4174 goto yybackup; \ 4175 } \ 4176 else \ 4177 { \ 3831 4178 yyerror (YY_("syntax error: cannot back up")); \ 3832 YYERROR; \ 3833 } \ 3834 while (0) 3835 3836 /* Error token number */ 3837 #define YYTERROR 1 3838 #define YYERRCODE 256 3839 3840 4179 YYERROR; \ 4180 } \ 4181 while (YYID (0)) 4182 4183 4184 #define YYTERROR 1 4185 #define YYERRCODE 256 4186 4187 4188 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4189 If N is 0, then set CURRENT to the empty location which ends 4190 the previous symbol: RHS[0] (always defined). */ 4191 4192 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4193 #ifndef YYLLOC_DEFAULT 4194 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4195 do \ 4196 if (YYID (N)) \ 4197 { \ 4198 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4199 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4200 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4201 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4202 } \ 4203 else \ 4204 { \ 4205 (Current).first_line = (Current).last_line = \ 4206 YYRHSLOC (Rhs, 0).last_line; \ 4207 (Current).first_column = (Current).last_column = \ 4208 YYRHSLOC (Rhs, 0).last_column; \ 4209 } \ 4210 while (YYID (0)) 4211 #endif 4212 4213 4214 /* This macro is provided for backward compatibility. */ 4215 4216 #ifndef YY_LOCATION_PRINT 4217 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4218 #endif 4219 4220 4221 /* YYLEX -- calling `yylex' with the right arguments. */ 4222 4223 #ifdef YYLEX_PARAM 4224 # define YYLEX yylex (YYLEX_PARAM) 4225 #else 4226 # define YYLEX yylex () 4227 #endif 3841 4228 3842 4229 /* Enable debugging if requested. */ … … 3848 4235 # endif 3849 4236 3850 # define YYDPRINTF(Args) \ 3851 do { \ 3852 if (yydebug) \ 3853 YYFPRINTF Args; \ 3854 } while (0) 3855 3856 /* This macro is provided for backward compatibility. */ 3857 #ifndef YY_LOCATION_PRINT 3858 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3859 #endif 3860 3861 3862 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3863 do { \ 3864 if (yydebug) \ 3865 { \ 3866 YYFPRINTF (stderr, "%s ", Title); \ 3867 yy_symbol_print (stderr, \ 3868 Type, Value); \ 3869 YYFPRINTF (stderr, "\n"); \ 3870 } \ 3871 } while (0) 3872 3873 3874 /*----------------------------------------. 3875 | Print this symbol's value on YYOUTPUT. | 3876 `----------------------------------------*/ 3877 4237 # define YYDPRINTF(Args) \ 4238 do { \ 4239 if (yydebug) \ 4240 YYFPRINTF Args; \ 4241 } while (YYID (0)) 4242 4243 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4244 do { \ 4245 if (yydebug) \ 4246 { \ 4247 YYFPRINTF (stderr, "%s ", Title); \ 4248 yy_symbol_print (stderr, \ 4249 Type, Value); \ 4250 YYFPRINTF (stderr, "\n"); \ 4251 } \ 4252 } while (YYID (0)) 4253 4254 4255 /*--------------------------------. 4256 | Print this symbol on YYOUTPUT. | 4257 `--------------------------------*/ 4258 4259 /*ARGSUSED*/ 4260 #if (defined __STDC__ || defined __C99__FUNC__ \ 4261 || defined __cplusplus || defined _MSC_VER) 3878 4262 static void 3879 4263 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4264 #else 4265 static void 4266 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 4267 FILE *yyoutput; 4268 int yytype; 4269 YYSTYPE const * const yyvaluep; 4270 #endif 3880 4271 { 3881 FILE *yyo = yyoutput;3882 YYUSE (yyo);3883 4272 if (!yyvaluep) 3884 4273 return; … … 3886 4275 if (yytype < YYNTOKENS) 3887 4276 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4277 # else 4278 YYUSE (yyoutput); 3888 4279 # endif 3889 YYUSE (yytype); 4280 switch (yytype) 4281 { 4282 default: 4283 break; 4284 } 3890 4285 } 3891 4286 … … 3895 4290 `--------------------------------*/ 3896 4291 4292 #if (defined __STDC__ || defined __C99__FUNC__ \ 4293 || defined __cplusplus || defined _MSC_VER) 3897 4294 static void 3898 4295 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4296 #else 4297 static void 4298 yy_symbol_print (yyoutput, yytype, yyvaluep) 4299 FILE *yyoutput; 4300 int yytype; 4301 YYSTYPE const * const yyvaluep; 4302 #endif 3899 4303 { 3900 YYFPRINTF (yyoutput, "%s %s (", 3901 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4304 if (yytype < YYNTOKENS) 4305 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4306 else 4307 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3902 4308 3903 4309 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 3910 4316 `------------------------------------------------------------------*/ 3911 4317 4318 #if (defined __STDC__ || defined __C99__FUNC__ \ 4319 || defined __cplusplus || defined _MSC_VER) 3912 4320 static void 3913 4321 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4322 #else 4323 static void 4324 yy_stack_print (yybottom, yytop) 4325 yytype_int16 *yybottom; 4326 yytype_int16 *yytop; 4327 #endif 3914 4328 { 3915 4329 YYFPRINTF (stderr, "Stack now"); … … 3922 4336 } 3923 4337 3924 # define YY_STACK_PRINT(Bottom, Top) \3925 do { \3926 if (yydebug) \3927 yy_stack_print ((Bottom), (Top)); \3928 } while ( 0)4338 # define YY_STACK_PRINT(Bottom, Top) \ 4339 do { \ 4340 if (yydebug) \ 4341 yy_stack_print ((Bottom), (Top)); \ 4342 } while (YYID (0)) 3929 4343 3930 4344 … … 3933 4347 `------------------------------------------------*/ 3934 4348 4349 #if (defined __STDC__ || defined __C99__FUNC__ \ 4350 || defined __cplusplus || defined _MSC_VER) 3935 4351 static void 3936 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4352 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4353 #else 4354 static void 4355 yy_reduce_print (yyvsp, yyrule) 4356 YYSTYPE *yyvsp; 4357 int yyrule; 4358 #endif 3937 4359 { 3938 unsigned long int yylno = yyrline[yyrule];3939 4360 int yynrhs = yyr2[yyrule]; 3940 4361 int yyi; 4362 unsigned long int yylno = yyrline[yyrule]; 3941 4363 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 3942 yyrule - 1, yylno);4364 yyrule - 1, yylno); 3943 4365 /* The symbols being reduced. */ 3944 4366 for (yyi = 0; yyi < yynrhs; yyi++) 3945 4367 { 3946 4368 YYFPRINTF (stderr, " $%d = ", yyi + 1); 3947 yy_symbol_print (stderr, 3948 yystos[yyssp[yyi + 1 - yynrhs]], 3949 &(yyvsp[(yyi + 1) - (yynrhs)]) 3950 ); 4369 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4370 &(yyvsp[(yyi + 1) - (yynrhs)]) 4371 ); 3951 4372 YYFPRINTF (stderr, "\n"); 3952 4373 } 3953 4374 } 3954 4375 3955 # define YY_REDUCE_PRINT(Rule) \3956 do { \3957 if (yydebug) \3958 yy_reduce_print (yy ssp, yyvsp, Rule); \3959 } while ( 0)4376 # define YY_REDUCE_PRINT(Rule) \ 4377 do { \ 4378 if (yydebug) \ 4379 yy_reduce_print (yyvsp, Rule); \ 4380 } while (YYID (0)) 3960 4381 3961 4382 /* Nonzero means print parse trace. It is left uninitialized so that … … 3971 4392 3972 4393 /* YYINITDEPTH -- initial size of the parser's stacks. */ 3973 #ifndef YYINITDEPTH4394 #ifndef YYINITDEPTH 3974 4395 # define YYINITDEPTH 200 3975 4396 #endif … … 3994 4415 # else 3995 4416 /* Return the length of YYSTR. */ 4417 #if (defined __STDC__ || defined __C99__FUNC__ \ 4418 || defined __cplusplus || defined _MSC_VER) 3996 4419 static YYSIZE_T 3997 4420 yystrlen (const char *yystr) 4421 #else 4422 static YYSIZE_T 4423 yystrlen (yystr) 4424 const char *yystr; 4425 #endif 3998 4426 { 3999 4427 YYSIZE_T yylen; … … 4011 4439 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4012 4440 YYDEST. */ 4441 #if (defined __STDC__ || defined __C99__FUNC__ \ 4442 || defined __cplusplus || defined _MSC_VER) 4013 4443 static char * 4014 4444 yystpcpy (char *yydest, const char *yysrc) 4445 #else 4446 static char * 4447 yystpcpy (yydest, yysrc) 4448 char *yydest; 4449 const char *yysrc; 4450 #endif 4015 4451 { 4016 4452 char *yyd = yydest; … … 4042 4478 4043 4479 for (;;) 4044 switch (*++yyp)4045 {4046 case '\'':4047 case ',':4048 goto do_not_strip_quotes;4049 4050 case '\\':4051 if (*++yyp != '\\')4052 goto do_not_strip_quotes;4053 /* Fall through. */4054 default:4055 if (yyres)4056 yyres[yyn] = *yyp;4057 yyn++;4058 break;4059 4060 case '"':4061 if (yyres)4062 yyres[yyn] = '\0';4063 return yyn;4064 }4480 switch (*++yyp) 4481 { 4482 case '\'': 4483 case ',': 4484 goto do_not_strip_quotes; 4485 4486 case '\\': 4487 if (*++yyp != '\\') 4488 goto do_not_strip_quotes; 4489 /* Fall through. */ 4490 default: 4491 if (yyres) 4492 yyres[yyn] = *yyp; 4493 yyn++; 4494 break; 4495 4496 case '"': 4497 if (yyres) 4498 yyres[yyn] = '\0'; 4499 return yyn; 4500 } 4065 4501 do_not_strip_quotes: ; 4066 4502 } … … 4085 4521 yytype_int16 *yyssp, int yytoken) 4086 4522 { 4087 YYSIZE_T yysize0 = yytnamerr ( YY_NULLPTR, yytname[yytoken]);4523 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); 4088 4524 YYSIZE_T yysize = yysize0; 4525 YYSIZE_T yysize1; 4089 4526 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4090 4527 /* Internationalized format string. */ 4091 const char *yyformat = YY_NULLPTR;4528 const char *yyformat = 0; 4092 4529 /* Arguments of yyformat. */ 4093 4530 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4097 4534 4098 4535 /* There are many possibilities here to consider: 4536 - Assume YYFAIL is not used. It's too flawed to consider. See 4537 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 4538 for details. YYERROR is fine as it does not invoke this 4539 function. 4099 4540 - If this state is a consistent state with a default action, then 4100 4541 the only way this function was invoked is if the default action … … 4145 4586 } 4146 4587 yyarg[yycount++] = yytname[yyx]; 4147 { 4148 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4149 if (! (yysize <= yysize1 4150 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4151 return 2; 4152 yysize = yysize1; 4153 } 4588 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4589 if (! (yysize <= yysize1 4590 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4591 return 2; 4592 yysize = yysize1; 4154 4593 } 4155 4594 } … … 4171 4610 } 4172 4611 4173 { 4174 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4175 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4176 return 2; 4177 yysize = yysize1; 4178 } 4612 yysize1 = yysize + yystrlen (yyformat); 4613 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4614 return 2; 4615 yysize = yysize1; 4179 4616 4180 4617 if (*yymsg_alloc < yysize) … … 4213 4650 `-----------------------------------------------*/ 4214 4651 4652 /*ARGSUSED*/ 4653 #if (defined __STDC__ || defined __C99__FUNC__ \ 4654 || defined __cplusplus || defined _MSC_VER) 4215 4655 static void 4216 4656 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4657 #else 4658 static void 4659 yydestruct (yymsg, yytype, yyvaluep) 4660 const char *yymsg; 4661 int yytype; 4662 YYSTYPE *yyvaluep; 4663 #endif 4217 4664 { 4218 4665 YYUSE (yyvaluep); 4666 4219 4667 if (!yymsg) 4220 4668 yymsg = "Deleting"; 4221 4669 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4222 4670 4223 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4224 YYUSE (yytype); 4225 YY_IGNORE_MAYBE_UNINITIALIZED_END 4671 switch (yytype) 4672 { 4673 4674 default: 4675 break; 4676 } 4226 4677 } 4227 4678 4228 4679 4680 /* Prevent warnings from -Wmissing-prototypes. */ 4681 #ifdef YYPARSE_PARAM 4682 #if defined __STDC__ || defined __cplusplus 4683 int yyparse (void *YYPARSE_PARAM); 4684 #else 4685 int yyparse (); 4686 #endif 4687 #else /* ! YYPARSE_PARAM */ 4688 #if defined __STDC__ || defined __cplusplus 4689 int yyparse (void); 4690 #else 4691 int yyparse (); 4692 #endif 4693 #endif /* ! YYPARSE_PARAM */ 4229 4694 4230 4695 … … 4234 4699 /* The semantic value of the lookahead symbol. */ 4235 4700 YYSTYPE yylval; 4701 4236 4702 /* Number of syntax errors so far. */ 4237 4703 int yynerrs; … … 4242 4708 `----------*/ 4243 4709 4710 #ifdef YYPARSE_PARAM 4711 #if (defined __STDC__ || defined __C99__FUNC__ \ 4712 || defined __cplusplus || defined _MSC_VER) 4713 int 4714 yyparse (void *YYPARSE_PARAM) 4715 #else 4716 int 4717 yyparse (YYPARSE_PARAM) 4718 void *YYPARSE_PARAM; 4719 #endif 4720 #else /* ! YYPARSE_PARAM */ 4721 #if (defined __STDC__ || defined __C99__FUNC__ \ 4722 || defined __cplusplus || defined _MSC_VER) 4244 4723 int 4245 4724 yyparse (void) 4725 #else 4726 int 4727 yyparse () 4728 4729 #endif 4730 #endif 4246 4731 { 4247 4732 int yystate; … … 4250 4735 4251 4736 /* The stacks and their tools: 4252 'yyss': related to states.4253 'yyvs': related to semantic values.4254 4255 Refer to the stacks thr oughseparate pointers, to allow yyoverflow4737 `yyss': related to states. 4738 `yyvs': related to semantic values. 4739 4740 Refer to the stacks thru separate pointers, to allow yyoverflow 4256 4741 to reallocate them elsewhere. */ 4257 4742 … … 4271 4756 int yyresult; 4272 4757 /* Lookahead token as an internal (translated) token number. */ 4273 int yytoken = 0;4758 int yytoken; 4274 4759 /* The variables used to return semantic value and location from the 4275 4760 action routines. */ … … 4289 4774 int yylen = 0; 4290 4775 4291 yyssp = yyss = yyssa; 4292 yyvsp = yyvs = yyvsa; 4776 yytoken = 0; 4777 yyss = yyssa; 4778 yyvs = yyvsa; 4293 4779 yystacksize = YYINITDEPTH; 4294 4780 … … 4299 4785 yynerrs = 0; 4300 4786 yychar = YYEMPTY; /* Cause a token to be read. */ 4787 4788 /* Initialize stack pointers. 4789 Waste one element of value and location stack 4790 so that they stay on the same level as the state stack. 4791 The wasted elements are never initialized. */ 4792 yyssp = yyss; 4793 yyvsp = yyvs; 4794 4301 4795 goto yysetstate; 4302 4796 … … 4319 4813 #ifdef yyoverflow 4320 4814 { 4321 /* Give user a chance to reallocate the stack. Use copies of4322 these so that the &'s don't force the real ones into4323 memory. */4324 YYSTYPE *yyvs1 = yyvs;4325 yytype_int16 *yyss1 = yyss;4326 4327 /* Each stack pointer address is followed by the size of the4328 data in use in that stack, in bytes. This used to be a4329 conditional around just the two extra args, but that might4330 be undefined if yyoverflow is a macro. */4331 yyoverflow (YY_("memory exhausted"),4332 &yyss1, yysize * sizeof (*yyssp),4333 &yyvs1, yysize * sizeof (*yyvsp),4334 &yystacksize);4335 4336 yyss = yyss1;4337 yyvs = yyvs1;4815 /* Give user a chance to reallocate the stack. Use copies of 4816 these so that the &'s don't force the real ones into 4817 memory. */ 4818 YYSTYPE *yyvs1 = yyvs; 4819 yytype_int16 *yyss1 = yyss; 4820 4821 /* Each stack pointer address is followed by the size of the 4822 data in use in that stack, in bytes. This used to be a 4823 conditional around just the two extra args, but that might 4824 be undefined if yyoverflow is a macro. */ 4825 yyoverflow (YY_("memory exhausted"), 4826 &yyss1, yysize * sizeof (*yyssp), 4827 &yyvs1, yysize * sizeof (*yyvsp), 4828 &yystacksize); 4829 4830 yyss = yyss1; 4831 yyvs = yyvs1; 4338 4832 } 4339 4833 #else /* no yyoverflow */ … … 4343 4837 /* Extend the stack our own way. */ 4344 4838 if (YYMAXDEPTH <= yystacksize) 4345 goto yyexhaustedlab;4839 goto yyexhaustedlab; 4346 4840 yystacksize *= 2; 4347 4841 if (YYMAXDEPTH < yystacksize) 4348 yystacksize = YYMAXDEPTH;4842 yystacksize = YYMAXDEPTH; 4349 4843 4350 4844 { 4351 yytype_int16 *yyss1 = yyss;4352 union yyalloc *yyptr =4353 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));4354 if (! yyptr)4355 goto yyexhaustedlab;4356 YYSTACK_RELOCATE (yyss_alloc, yyss);4357 YYSTACK_RELOCATE (yyvs_alloc, yyvs);4845 yytype_int16 *yyss1 = yyss; 4846 union yyalloc *yyptr = 4847 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4848 if (! yyptr) 4849 goto yyexhaustedlab; 4850 YYSTACK_RELOCATE (yyss_alloc, yyss); 4851 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4358 4852 # undef YYSTACK_RELOCATE 4359 if (yyss1 != yyssa)4360 YYSTACK_FREE (yyss1);4853 if (yyss1 != yyssa) 4854 YYSTACK_FREE (yyss1); 4361 4855 } 4362 4856 # endif … … 4367 4861 4368 4862 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4369 (unsigned long int) yystacksize));4863 (unsigned long int) yystacksize)); 4370 4864 4371 4865 if (yyss + yystacksize - 1 <= yyssp) 4372 YYABORT;4866 YYABORT; 4373 4867 } 4374 4868 … … 4399 4893 { 4400 4894 YYDPRINTF ((stderr, "Reading a token: ")); 4401 yychar = yylex ();4895 yychar = YYLEX; 4402 4896 } 4403 4897 … … 4439 4933 4440 4934 yystate = yyn; 4441 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN4442 4935 *++yyvsp = yylval; 4443 YY_IGNORE_MAYBE_UNINITIALIZED_END4444 4936 4445 4937 goto yynewstate; … … 4464 4956 4465 4957 /* If YYLEN is nonzero, implement the default value of the action: 4466 '$$ = $1'.4958 `$$ = $1'. 4467 4959 4468 4960 Otherwise, the following line sets YYVAL to garbage. … … 4478 4970 { 4479 4971 case 2: 4480 #line 300 "parser.yy" /* yacc.c:1646 */ 4972 4973 /* Line 1806 of yacc.c */ 4974 #line 301 "parser.yy" 4481 4975 { typedefTable.enterScope(); } 4482 #line 4483 "Parser/parser.cc" /* yacc.c:1646 */4483 4976 break; 4484 4977 4485 4978 case 3: 4486 #line 304 "parser.yy" /* yacc.c:1646 */ 4979 4980 /* Line 1806 of yacc.c */ 4981 #line 305 "parser.yy" 4487 4982 { typedefTable.leaveScope(); } 4488 #line 4489 "Parser/parser.cc" /* yacc.c:1646 */4489 4983 break; 4490 4984 4491 4985 case 4: 4492 #line 311 "parser.yy" /* yacc.c:1646 */ 4493 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); } 4494 #line 4495 "Parser/parser.cc" /* yacc.c:1646 */ 4986 4987 /* Line 1806 of yacc.c */ 4988 #line 312 "parser.yy" 4989 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4495 4990 break; 4496 4991 4497 4992 case 5: 4498 #line 312 "parser.yy" /* yacc.c:1646 */ 4499 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4500 #line 4501 "Parser/parser.cc" /* yacc.c:1646 */ 4993 4994 /* Line 1806 of yacc.c */ 4995 #line 313 "parser.yy" 4996 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4501 4997 break; 4502 4998 4503 4999 case 6: 4504 #line 313 "parser.yy" /* yacc.c:1646 */ 4505 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); } 4506 #line 4507 "Parser/parser.cc" /* yacc.c:1646 */ 5000 5001 /* Line 1806 of yacc.c */ 5002 #line 314 "parser.yy" 5003 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4507 5004 break; 4508 5005 4509 5006 case 16: 4510 #line 338 "parser.yy" /* yacc.c:1646 */ 4511 { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); } 4512 #line 4513 "Parser/parser.cc" /* yacc.c:1646 */ 5007 5008 /* Line 1806 of yacc.c */ 5009 #line 339 "parser.yy" 5010 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4513 5011 break; 4514 5012 4515 5013 case 17: 4516 #line 342 "parser.yy" /* yacc.c:1646 */ 4517 { (yyval.str) = (yyvsp[0].tok); } 4518 #line 4519 "Parser/parser.cc" /* yacc.c:1646 */ 5014 5015 /* Line 1806 of yacc.c */ 5016 #line 343 "parser.yy" 5017 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4519 5018 break; 4520 5019 4521 5020 case 18: 4522 #line 344 "parser.yy" /* yacc.c:1646 */ 5021 5022 /* Line 1806 of yacc.c */ 5023 #line 345 "parser.yy" 4523 5024 { 4524 appendStr( (yyvsp[ -1].str), (yyvsp[0].tok) ); // append 2nd juxtaposed string to 1st4525 delete (yyvsp[ 0].tok); // allocated by lexer4526 (yyval.str) = (yyvsp[ -1].str); // conversion from tok to str5025 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st 5026 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5027 (yyval.str) = (yyvsp[(1) - (2)].str); // conversion from tok to str 4527 5028 } 4528 #line 4529 "Parser/parser.cc" /* yacc.c:1646 */4529 5029 break; 4530 5030 4531 5031 case 19: 4532 #line 355 "parser.yy" /* yacc.c:1646 */ 4533 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4534 #line 4535 "Parser/parser.cc" /* yacc.c:1646 */ 5032 5033 /* Line 1806 of yacc.c */ 5034 #line 356 "parser.yy" 5035 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4535 5036 break; 4536 5037 4537 5038 case 20: 4538 #line 357 "parser.yy" /* yacc.c:1646 */ 4539 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4540 #line 4541 "Parser/parser.cc" /* yacc.c:1646 */ 5039 5040 /* Line 1806 of yacc.c */ 5041 #line 358 "parser.yy" 5042 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4541 5043 break; 4542 5044 4543 5045 case 21: 4544 #line 359 "parser.yy" /* yacc.c:1646 */ 4545 { (yyval.en) = (yyvsp[-1].en); } 4546 #line 4547 "Parser/parser.cc" /* yacc.c:1646 */ 5046 5047 /* Line 1806 of yacc.c */ 5048 #line 360 "parser.yy" 5049 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4547 5050 break; 4548 5051 4549 5052 case 22: 4550 #line 361 "parser.yy" /* yacc.c:1646 */ 4551 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4552 #line 4553 "Parser/parser.cc" /* yacc.c:1646 */ 5053 5054 /* Line 1806 of yacc.c */ 5055 #line 362 "parser.yy" 5056 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4553 5057 break; 4554 5058 4555 5059 case 24: 4556 #line 371 "parser.yy" /* yacc.c:1646 */ 4557 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4558 #line 4559 "Parser/parser.cc" /* yacc.c:1646 */ 5060 5061 /* Line 1806 of yacc.c */ 5062 #line 372 "parser.yy" 5063 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4559 5064 break; 4560 5065 4561 5066 case 25: 4562 #line 373 "parser.yy" /* yacc.c:1646 */ 4563 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4564 #line 4565 "Parser/parser.cc" /* yacc.c:1646 */ 5067 5068 /* Line 1806 of yacc.c */ 5069 #line 374 "parser.yy" 5070 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4565 5071 break; 4566 5072 4567 5073 case 26: 4568 #line 377 "parser.yy" /* yacc.c:1646 */ 4569 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4570 #line 4571 "Parser/parser.cc" /* yacc.c:1646 */ 5074 5075 /* Line 1806 of yacc.c */ 5076 #line 378 "parser.yy" 5077 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4571 5078 break; 4572 5079 4573 5080 case 28: 4574 #line 380 "parser.yy" /* yacc.c:1646 */ 4575 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4576 #line 4577 "Parser/parser.cc" /* yacc.c:1646 */ 5081 5082 /* Line 1806 of yacc.c */ 5083 #line 381 "parser.yy" 5084 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4577 5085 break; 4578 5086 4579 5087 case 30: 4580 #line 383 "parser.yy" /* yacc.c:1646 */ 4581 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4582 #line 4583 "Parser/parser.cc" /* yacc.c:1646 */ 5088 5089 /* Line 1806 of yacc.c */ 5090 #line 384 "parser.yy" 5091 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4583 5092 break; 4584 5093 4585 5094 case 31: 4586 #line 385 "parser.yy" /* yacc.c:1646 */ 4587 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4588 #line 4589 "Parser/parser.cc" /* yacc.c:1646 */ 5095 5096 /* Line 1806 of yacc.c */ 5097 #line 386 "parser.yy" 5098 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4589 5099 break; 4590 5100 4591 5101 case 32: 4592 #line 387 "parser.yy" /* yacc.c:1646 */ 4593 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4594 #line 4595 "Parser/parser.cc" /* yacc.c:1646 */ 5102 5103 /* Line 1806 of yacc.c */ 5104 #line 388 "parser.yy" 5105 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4595 5106 break; 4596 5107 4597 5108 case 33: 4598 #line 389 "parser.yy" /* yacc.c:1646 */ 5109 5110 /* Line 1806 of yacc.c */ 5111 #line 390 "parser.yy" 4599 5112 { 4600 5113 Token fn; 4601 fn.str = new std::string( "?{}" ); // location undefined4602 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );5114 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 5115 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) ); 4603 5116 } 4604 #line 4605 "Parser/parser.cc" /* yacc.c:1646 */4605 5117 break; 4606 5118 4607 5119 case 35: 4608 #line 399 "parser.yy" /* yacc.c:1646 */ 4609 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4610 #line 4611 "Parser/parser.cc" /* yacc.c:1646 */ 5120 5121 /* Line 1806 of yacc.c */ 5122 #line 400 "parser.yy" 5123 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4611 5124 break; 4612 5125 4613 5126 case 36: 4614 #line 404 "parser.yy" /* yacc.c:1646 */ 5127 5128 /* Line 1806 of yacc.c */ 5129 #line 405 "parser.yy" 4615 5130 { (yyval.en) = 0; } 4616 #line 4617 "Parser/parser.cc" /* yacc.c:1646 */4617 5131 break; 4618 5132 4619 5133 case 39: 4620 #line 410 "parser.yy" /* yacc.c:1646 */ 4621 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4622 #line 4623 "Parser/parser.cc" /* yacc.c:1646 */ 5134 5135 /* Line 1806 of yacc.c */ 5136 #line 411 "parser.yy" 5137 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4623 5138 break; 4624 5139 4625 5140 case 40: 4626 #line 415 "parser.yy" /* yacc.c:1646 */ 4627 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4628 #line 4629 "Parser/parser.cc" /* yacc.c:1646 */ 5141 5142 /* Line 1806 of yacc.c */ 5143 #line 416 "parser.yy" 5144 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4629 5145 break; 4630 5146 4631 5147 case 41: 4632 #line 419 "parser.yy" /* yacc.c:1646 */ 4633 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4634 #line 4635 "Parser/parser.cc" /* yacc.c:1646 */ 5148 5149 /* Line 1806 of yacc.c */ 5150 #line 420 "parser.yy" 5151 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4635 5152 break; 4636 5153 4637 5154 case 42: 4638 #line 421 "parser.yy" /* yacc.c:1646 */ 4639 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4640 #line 4641 "Parser/parser.cc" /* yacc.c:1646 */ 5155 5156 /* Line 1806 of yacc.c */ 5157 #line 422 "parser.yy" 5158 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4641 5159 break; 4642 5160 4643 5161 case 43: 4644 #line 423 "parser.yy" /* yacc.c:1646 */ 4645 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4646 #line 4647 "Parser/parser.cc" /* yacc.c:1646 */ 5162 5163 /* Line 1806 of yacc.c */ 5164 #line 424 "parser.yy" 5165 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4647 5166 break; 4648 5167 4649 5168 case 44: 4650 #line 425 "parser.yy" /* yacc.c:1646 */ 4651 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4652 #line 4653 "Parser/parser.cc" /* yacc.c:1646 */ 5169 5170 /* Line 1806 of yacc.c */ 5171 #line 426 "parser.yy" 5172 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4653 5173 break; 4654 5174 4655 5175 case 46: 4656 #line 433 "parser.yy" /* yacc.c:1646 */ 4657 { (yyval.en) = (yyvsp[0].en); } 4658 #line 4659 "Parser/parser.cc" /* yacc.c:1646 */ 5176 5177 /* Line 1806 of yacc.c */ 5178 #line 434 "parser.yy" 5179 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4659 5180 break; 4660 5181 4661 5182 case 47: 4662 #line 435 "parser.yy" /* yacc.c:1646 */ 4663 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4664 #line 4665 "Parser/parser.cc" /* yacc.c:1646 */ 5183 5184 /* Line 1806 of yacc.c */ 5185 #line 436 "parser.yy" 5186 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4665 5187 break; 4666 5188 4667 5189 case 48: 4668 #line 437 "parser.yy" /* yacc.c:1646 */ 4669 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4670 #line 4671 "Parser/parser.cc" /* yacc.c:1646 */ 5190 5191 /* Line 1806 of yacc.c */ 5192 #line 438 "parser.yy" 5193 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4671 5194 break; 4672 5195 4673 5196 case 49: 4674 #line 442 "parser.yy" /* yacc.c:1646 */ 5197 5198 /* Line 1806 of yacc.c */ 5199 #line 443 "parser.yy" 4675 5200 { 4676 switch ( (yyvsp[ -1].op) ) {5201 switch ( (yyvsp[(1) - (2)].op) ) { 4677 5202 case OperKinds::AddressOf: 4678 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ 0].en) ) );5203 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) ); 4679 5204 break; 4680 5205 case OperKinds::PointTo: 4681 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ -1].op), (yyvsp[0].en) ) );5206 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); 4682 5207 break; 4683 5208 default: … … 4685 5210 } 4686 5211 } 4687 #line 4688 "Parser/parser.cc" /* yacc.c:1646 */4688 5212 break; 4689 5213 4690 5214 case 50: 4691 #line 455 "parser.yy" /* yacc.c:1646 */ 4692 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4693 #line 4694 "Parser/parser.cc" /* yacc.c:1646 */ 5215 5216 /* Line 1806 of yacc.c */ 5217 #line 456 "parser.yy" 5218 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4694 5219 break; 4695 5220 4696 5221 case 51: 4697 #line 457 "parser.yy" /* yacc.c:1646 */ 4698 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4699 #line 4700 "Parser/parser.cc" /* yacc.c:1646 */ 5222 5223 /* Line 1806 of yacc.c */ 5224 #line 458 "parser.yy" 5225 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4700 5226 break; 4701 5227 4702 5228 case 52: 4703 #line 459 "parser.yy" /* yacc.c:1646 */ 4704 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4705 #line 4706 "Parser/parser.cc" /* yacc.c:1646 */ 5229 5230 /* Line 1806 of yacc.c */ 5231 #line 460 "parser.yy" 5232 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4706 5233 break; 4707 5234 4708 5235 case 53: 4709 #line 461 "parser.yy" /* yacc.c:1646 */ 4710 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4711 #line 4712 "Parser/parser.cc" /* yacc.c:1646 */ 5236 5237 /* Line 1806 of yacc.c */ 5238 #line 462 "parser.yy" 5239 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4712 5240 break; 4713 5241 4714 5242 case 54: 4715 #line 463 "parser.yy" /* yacc.c:1646 */ 4716 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4717 #line 4718 "Parser/parser.cc" /* yacc.c:1646 */ 5243 5244 /* Line 1806 of yacc.c */ 5245 #line 464 "parser.yy" 5246 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4718 5247 break; 4719 5248 4720 5249 case 55: 4721 #line 465 "parser.yy" /* yacc.c:1646 */ 4722 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4723 #line 4724 "Parser/parser.cc" /* yacc.c:1646 */ 5250 5251 /* Line 1806 of yacc.c */ 5252 #line 466 "parser.yy" 5253 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4724 5254 break; 4725 5255 4726 5256 case 56: 4727 #line 467 "parser.yy" /* yacc.c:1646 */ 4728 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4729 #line 4730 "Parser/parser.cc" /* yacc.c:1646 */ 5257 5258 /* Line 1806 of yacc.c */ 5259 #line 468 "parser.yy" 5260 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4730 5261 break; 4731 5262 4732 5263 case 57: 4733 #line 469 "parser.yy" /* yacc.c:1646 */ 4734 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4735 #line 4736 "Parser/parser.cc" /* yacc.c:1646 */ 5264 5265 /* Line 1806 of yacc.c */ 5266 #line 470 "parser.yy" 5267 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4736 5268 break; 4737 5269 4738 5270 case 58: 4739 #line 471 "parser.yy" /* yacc.c:1646 */ 4740 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4741 #line 4742 "Parser/parser.cc" /* yacc.c:1646 */ 5271 5272 /* Line 1806 of yacc.c */ 5273 #line 472 "parser.yy" 5274 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4742 5275 break; 4743 5276 4744 5277 case 59: 4745 #line 473 "parser.yy" /* yacc.c:1646 */ 4746 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4747 #line 4748 "Parser/parser.cc" /* yacc.c:1646 */ 5278 5279 /* Line 1806 of yacc.c */ 5280 #line 474 "parser.yy" 5281 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4748 5282 break; 4749 5283 4750 5284 case 60: 4751 #line 475 "parser.yy" /* yacc.c:1646 */ 4752 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4753 #line 4754 "Parser/parser.cc" /* yacc.c:1646 */ 5285 5286 /* Line 1806 of yacc.c */ 5287 #line 476 "parser.yy" 5288 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4754 5289 break; 4755 5290 4756 5291 case 61: 4757 #line 481 "parser.yy" /* yacc.c:1646 */ 5292 5293 /* Line 1806 of yacc.c */ 5294 #line 482 "parser.yy" 4758 5295 { (yyval.op) = OperKinds::PointTo; } 4759 #line 4760 "Parser/parser.cc" /* yacc.c:1646 */4760 5296 break; 4761 5297 4762 5298 case 62: 4763 #line 482 "parser.yy" /* yacc.c:1646 */ 5299 5300 /* Line 1806 of yacc.c */ 5301 #line 483 "parser.yy" 4764 5302 { (yyval.op) = OperKinds::AddressOf; } 4765 #line 4766 "Parser/parser.cc" /* yacc.c:1646 */4766 5303 break; 4767 5304 4768 5305 case 63: 4769 #line 488 "parser.yy" /* yacc.c:1646 */ 5306 5307 /* Line 1806 of yacc.c */ 5308 #line 489 "parser.yy" 4770 5309 { (yyval.op) = OperKinds::UnPlus; } 4771 #line 4772 "Parser/parser.cc" /* yacc.c:1646 */4772 5310 break; 4773 5311 4774 5312 case 64: 4775 #line 489 "parser.yy" /* yacc.c:1646 */ 5313 5314 /* Line 1806 of yacc.c */ 5315 #line 490 "parser.yy" 4776 5316 { (yyval.op) = OperKinds::UnMinus; } 4777 #line 4778 "Parser/parser.cc" /* yacc.c:1646 */4778 5317 break; 4779 5318 4780 5319 case 65: 4781 #line 490 "parser.yy" /* yacc.c:1646 */ 5320 5321 /* Line 1806 of yacc.c */ 5322 #line 491 "parser.yy" 4782 5323 { (yyval.op) = OperKinds::Neg; } 4783 #line 4784 "Parser/parser.cc" /* yacc.c:1646 */4784 5324 break; 4785 5325 4786 5326 case 66: 4787 #line 491 "parser.yy" /* yacc.c:1646 */ 5327 5328 /* Line 1806 of yacc.c */ 5329 #line 492 "parser.yy" 4788 5330 { (yyval.op) = OperKinds::BitNeg; } 4789 #line 4790 "Parser/parser.cc" /* yacc.c:1646 */4790 5331 break; 4791 5332 4792 5333 case 68: 4793 #line 497 "parser.yy" /* yacc.c:1646 */ 4794 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4795 #line 4796 "Parser/parser.cc" /* yacc.c:1646 */ 5334 5335 /* Line 1806 of yacc.c */ 5336 #line 498 "parser.yy" 5337 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4796 5338 break; 4797 5339 4798 5340 case 69: 4799 #line 499 "parser.yy" /* yacc.c:1646 */ 4800 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4801 #line 4802 "Parser/parser.cc" /* yacc.c:1646 */ 5341 5342 /* Line 1806 of yacc.c */ 5343 #line 500 "parser.yy" 5344 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4802 5345 break; 4803 5346 4804 5347 case 71: 4805 #line 505 "parser.yy" /* yacc.c:1646 */ 4806 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4807 #line 4808 "Parser/parser.cc" /* yacc.c:1646 */ 5348 5349 /* Line 1806 of yacc.c */ 5350 #line 506 "parser.yy" 5351 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4808 5352 break; 4809 5353 4810 5354 case 72: 4811 #line 507 "parser.yy" /* yacc.c:1646 */ 4812 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4813 #line 4814 "Parser/parser.cc" /* yacc.c:1646 */ 5355 5356 /* Line 1806 of yacc.c */ 5357 #line 508 "parser.yy" 5358 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4814 5359 break; 4815 5360 4816 5361 case 73: 4817 #line 509 "parser.yy" /* yacc.c:1646 */ 4818 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4819 #line 4820 "Parser/parser.cc" /* yacc.c:1646 */ 5362 5363 /* Line 1806 of yacc.c */ 5364 #line 510 "parser.yy" 5365 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4820 5366 break; 4821 5367 4822 5368 case 75: 4823 #line 515 "parser.yy" /* yacc.c:1646 */ 4824 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4825 #line 4826 "Parser/parser.cc" /* yacc.c:1646 */ 5369 5370 /* Line 1806 of yacc.c */ 5371 #line 516 "parser.yy" 5372 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4826 5373 break; 4827 5374 4828 5375 case 76: 4829 #line 517 "parser.yy" /* yacc.c:1646 */ 4830 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4831 #line 4832 "Parser/parser.cc" /* yacc.c:1646 */ 5376 5377 /* Line 1806 of yacc.c */ 5378 #line 518 "parser.yy" 5379 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4832 5380 break; 4833 5381 4834 5382 case 78: 4835 #line 523 "parser.yy" /* yacc.c:1646 */ 4836 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4837 #line 4838 "Parser/parser.cc" /* yacc.c:1646 */ 5383 5384 /* Line 1806 of yacc.c */ 5385 #line 524 "parser.yy" 5386 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4838 5387 break; 4839 5388 4840 5389 case 79: 4841 #line 525 "parser.yy" /* yacc.c:1646 */ 4842 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4843 #line 4844 "Parser/parser.cc" /* yacc.c:1646 */ 5390 5391 /* Line 1806 of yacc.c */ 5392 #line 526 "parser.yy" 5393 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4844 5394 break; 4845 5395 4846 5396 case 81: 4847 #line 531 "parser.yy" /* yacc.c:1646 */ 4848 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4849 #line 4850 "Parser/parser.cc" /* yacc.c:1646 */ 5397 5398 /* Line 1806 of yacc.c */ 5399 #line 532 "parser.yy" 5400 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4850 5401 break; 4851 5402 4852 5403 case 82: 4853 #line 533 "parser.yy" /* yacc.c:1646 */ 4854 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4855 #line 4856 "Parser/parser.cc" /* yacc.c:1646 */ 5404 5405 /* Line 1806 of yacc.c */ 5406 #line 534 "parser.yy" 5407 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4856 5408 break; 4857 5409 4858 5410 case 83: 4859 #line 535 "parser.yy" /* yacc.c:1646 */ 4860 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4861 #line 4862 "Parser/parser.cc" /* yacc.c:1646 */ 5411 5412 /* Line 1806 of yacc.c */ 5413 #line 536 "parser.yy" 5414 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4862 5415 break; 4863 5416 4864 5417 case 84: 4865 #line 537 "parser.yy" /* yacc.c:1646 */ 4866 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4867 #line 4868 "Parser/parser.cc" /* yacc.c:1646 */ 5418 5419 /* Line 1806 of yacc.c */ 5420 #line 538 "parser.yy" 5421 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4868 5422 break; 4869 5423 4870 5424 case 86: 4871 #line 543 "parser.yy" /* yacc.c:1646 */ 4872 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4873 #line 4874 "Parser/parser.cc" /* yacc.c:1646 */ 5425 5426 /* Line 1806 of yacc.c */ 5427 #line 544 "parser.yy" 5428 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4874 5429 break; 4875 5430 4876 5431 case 87: 4877 #line 545 "parser.yy" /* yacc.c:1646 */ 4878 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4879 #line 4880 "Parser/parser.cc" /* yacc.c:1646 */ 5432 5433 /* Line 1806 of yacc.c */ 5434 #line 546 "parser.yy" 5435 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4880 5436 break; 4881 5437 4882 5438 case 89: 4883 #line 551 "parser.yy" /* yacc.c:1646 */ 4884 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4885 #line 4886 "Parser/parser.cc" /* yacc.c:1646 */ 5439 5440 /* Line 1806 of yacc.c */ 5441 #line 552 "parser.yy" 5442 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4886 5443 break; 4887 5444 4888 5445 case 91: 4889 #line 557 "parser.yy" /* yacc.c:1646 */ 4890 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4891 #line 4892 "Parser/parser.cc" /* yacc.c:1646 */ 5446 5447 /* Line 1806 of yacc.c */ 5448 #line 558 "parser.yy" 5449 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4892 5450 break; 4893 5451 4894 5452 case 93: 4895 #line 563 "parser.yy" /* yacc.c:1646 */ 4896 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4897 #line 4898 "Parser/parser.cc" /* yacc.c:1646 */ 5453 5454 /* Line 1806 of yacc.c */ 5455 #line 564 "parser.yy" 5456 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4898 5457 break; 4899 5458 4900 5459 case 95: 4901 #line 569 "parser.yy" /* yacc.c:1646 */ 4902 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4903 #line 4904 "Parser/parser.cc" /* yacc.c:1646 */ 5460 5461 /* Line 1806 of yacc.c */ 5462 #line 570 "parser.yy" 5463 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4904 5464 break; 4905 5465 4906 5466 case 97: 4907 #line 575 "parser.yy" /* yacc.c:1646 */ 4908 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4909 #line 4910 "Parser/parser.cc" /* yacc.c:1646 */ 5467 5468 /* Line 1806 of yacc.c */ 5469 #line 576 "parser.yy" 5470 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4910 5471 break; 4911 5472 4912 5473 case 99: 4913 #line 581 "parser.yy" /* yacc.c:1646 */ 4914 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4915 #line 4916 "Parser/parser.cc" /* yacc.c:1646 */ 5474 5475 /* Line 1806 of yacc.c */ 5476 #line 582 "parser.yy" 5477 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4916 5478 break; 4917 5479 4918 5480 case 100: 4919 #line 584 "parser.yy" /* yacc.c:1646 */ 4920 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4921 #line 4922 "Parser/parser.cc" /* yacc.c:1646 */ 5481 5482 /* Line 1806 of yacc.c */ 5483 #line 585 "parser.yy" 5484 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4922 5485 break; 4923 5486 4924 5487 case 101: 4925 #line 586 "parser.yy" /* yacc.c:1646 */ 4926 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4927 #line 4928 "Parser/parser.cc" /* yacc.c:1646 */ 5488 5489 /* Line 1806 of yacc.c */ 5490 #line 587 "parser.yy" 5491 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4928 5492 break; 4929 5493 4930 5494 case 104: 4931 #line 597 "parser.yy" /* yacc.c:1646 */ 4932 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4933 #line 4934 "Parser/parser.cc" /* yacc.c:1646 */ 5495 5496 /* Line 1806 of yacc.c */ 5497 #line 598 "parser.yy" 5498 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4934 5499 break; 4935 5500 4936 5501 case 105: 4937 #line 599 "parser.yy" /* yacc.c:1646 */ 4938 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4939 #line 4940 "Parser/parser.cc" /* yacc.c:1646 */ 5502 5503 /* Line 1806 of yacc.c */ 5504 #line 600 "parser.yy" 5505 { (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) ) ); } 4940 5506 break; 4941 5507 4942 5508 case 106: 4943 #line 604 "parser.yy" /* yacc.c:1646 */ 5509 5510 /* Line 1806 of yacc.c */ 5511 #line 605 "parser.yy" 4944 5512 { (yyval.en) = nullptr; } 4945 #line 4946 "Parser/parser.cc" /* yacc.c:1646 */4946 5513 break; 4947 5514 4948 5515 case 108: 4949 #line 609 "parser.yy" /* yacc.c:1646 */ 5516 5517 /* Line 1806 of yacc.c */ 5518 #line 610 "parser.yy" 4950 5519 { (yyval.op) = OperKinds::Assign; } 4951 #line 4952 "Parser/parser.cc" /* yacc.c:1646 */4952 5520 break; 4953 5521 4954 5522 case 109: 4955 #line 610 "parser.yy" /* yacc.c:1646 */ 5523 5524 /* Line 1806 of yacc.c */ 5525 #line 611 "parser.yy" 4956 5526 { (yyval.op) = OperKinds::AtAssn; } 4957 #line 4958 "Parser/parser.cc" /* yacc.c:1646 */4958 5527 break; 4959 5528 4960 5529 case 110: 4961 #line 611 "parser.yy" /* yacc.c:1646 */ 5530 5531 /* Line 1806 of yacc.c */ 5532 #line 612 "parser.yy" 4962 5533 { (yyval.op) = OperKinds::MulAssn; } 4963 #line 4964 "Parser/parser.cc" /* yacc.c:1646 */4964 5534 break; 4965 5535 4966 5536 case 111: 4967 #line 612 "parser.yy" /* yacc.c:1646 */ 5537 5538 /* Line 1806 of yacc.c */ 5539 #line 613 "parser.yy" 4968 5540 { (yyval.op) = OperKinds::DivAssn; } 4969 #line 4970 "Parser/parser.cc" /* yacc.c:1646 */4970 5541 break; 4971 5542 4972 5543 case 112: 4973 #line 613 "parser.yy" /* yacc.c:1646 */ 5544 5545 /* Line 1806 of yacc.c */ 5546 #line 614 "parser.yy" 4974 5547 { (yyval.op) = OperKinds::ModAssn; } 4975 #line 4976 "Parser/parser.cc" /* yacc.c:1646 */4976 5548 break; 4977 5549 4978 5550 case 113: 4979 #line 614 "parser.yy" /* yacc.c:1646 */ 5551 5552 /* Line 1806 of yacc.c */ 5553 #line 615 "parser.yy" 4980 5554 { (yyval.op) = OperKinds::PlusAssn; } 4981 #line 4982 "Parser/parser.cc" /* yacc.c:1646 */4982 5555 break; 4983 5556 4984 5557 case 114: 4985 #line 615 "parser.yy" /* yacc.c:1646 */ 5558 5559 /* Line 1806 of yacc.c */ 5560 #line 616 "parser.yy" 4986 5561 { (yyval.op) = OperKinds::MinusAssn; } 4987 #line 4988 "Parser/parser.cc" /* yacc.c:1646 */4988 5562 break; 4989 5563 4990 5564 case 115: 4991 #line 616 "parser.yy" /* yacc.c:1646 */ 5565 5566 /* Line 1806 of yacc.c */ 5567 #line 617 "parser.yy" 4992 5568 { (yyval.op) = OperKinds::LSAssn; } 4993 #line 4994 "Parser/parser.cc" /* yacc.c:1646 */4994 5569 break; 4995 5570 4996 5571 case 116: 4997 #line 617 "parser.yy" /* yacc.c:1646 */ 5572 5573 /* Line 1806 of yacc.c */ 5574 #line 618 "parser.yy" 4998 5575 { (yyval.op) = OperKinds::RSAssn; } 4999 #line 5000 "Parser/parser.cc" /* yacc.c:1646 */5000 5576 break; 5001 5577 5002 5578 case 117: 5003 #line 618 "parser.yy" /* yacc.c:1646 */ 5579 5580 /* Line 1806 of yacc.c */ 5581 #line 619 "parser.yy" 5004 5582 { (yyval.op) = OperKinds::AndAssn; } 5005 #line 5006 "Parser/parser.cc" /* yacc.c:1646 */5006 5583 break; 5007 5584 5008 5585 case 118: 5009 #line 619 "parser.yy" /* yacc.c:1646 */ 5586 5587 /* Line 1806 of yacc.c */ 5588 #line 620 "parser.yy" 5010 5589 { (yyval.op) = OperKinds::ERAssn; } 5011 #line 5012 "Parser/parser.cc" /* yacc.c:1646 */5012 5590 break; 5013 5591 5014 5592 case 119: 5015 #line 620 "parser.yy" /* yacc.c:1646 */ 5593 5594 /* Line 1806 of yacc.c */ 5595 #line 621 "parser.yy" 5016 5596 { (yyval.op) = OperKinds::OrAssn; } 5017 #line 5018 "Parser/parser.cc" /* yacc.c:1646 */5018 5597 break; 5019 5598 5020 5599 case 120: 5021 #line 627 "parser.yy" /* yacc.c:1646 */ 5600 5601 /* Line 1806 of yacc.c */ 5602 #line 628 "parser.yy" 5022 5603 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5023 #line 5024 "Parser/parser.cc" /* yacc.c:1646 */5024 5604 break; 5025 5605 5026 5606 case 121: 5027 #line 629 "parser.yy" /* yacc.c:1646 */ 5028 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5029 #line 5030 "Parser/parser.cc" /* yacc.c:1646 */ 5607 5608 /* Line 1806 of yacc.c */ 5609 #line 630 "parser.yy" 5610 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5030 5611 break; 5031 5612 5032 5613 case 122: 5033 #line 631 "parser.yy" /* yacc.c:1646 */ 5034 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5035 #line 5036 "Parser/parser.cc" /* yacc.c:1646 */ 5614 5615 /* Line 1806 of yacc.c */ 5616 #line 632 "parser.yy" 5617 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5036 5618 break; 5037 5619 5038 5620 case 123: 5039 #line 633 "parser.yy" /* yacc.c:1646 */ 5040 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5041 #line 5042 "Parser/parser.cc" /* yacc.c:1646 */ 5621 5622 /* Line 1806 of yacc.c */ 5623 #line 634 "parser.yy" 5624 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5042 5625 break; 5043 5626 5044 5627 case 125: 5045 #line 639 "parser.yy" /* yacc.c:1646 */ 5046 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5047 #line 5048 "Parser/parser.cc" /* yacc.c:1646 */ 5628 5629 /* Line 1806 of yacc.c */ 5630 #line 640 "parser.yy" 5631 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5048 5632 break; 5049 5633 5050 5634 case 127: 5051 #line 645 "parser.yy" /* yacc.c:1646 */ 5052 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5053 #line 5054 "Parser/parser.cc" /* yacc.c:1646 */ 5635 5636 /* Line 1806 of yacc.c */ 5637 #line 646 "parser.yy" 5638 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5054 5639 break; 5055 5640 5056 5641 case 128: 5057 #line 650 "parser.yy" /* yacc.c:1646 */ 5642 5643 /* Line 1806 of yacc.c */ 5644 #line 651 "parser.yy" 5058 5645 { (yyval.en) = 0; } 5059 #line 5060 "Parser/parser.cc" /* yacc.c:1646 */5060 5646 break; 5061 5647 5062 5648 case 132: 5063 #line 659 "parser.yy" /* yacc.c:1646 */ 5064 { (yyval.sn) = (yyvsp[0].sn); } 5065 #line 5066 "Parser/parser.cc" /* yacc.c:1646 */ 5649 5650 /* Line 1806 of yacc.c */ 5651 #line 660 "parser.yy" 5652 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5066 5653 break; 5067 5654 5068 5655 case 138: 5069 #line 666 "parser.yy" /* yacc.c:1646 */ 5656 5657 /* Line 1806 of yacc.c */ 5658 #line 667 "parser.yy" 5070 5659 { 5071 5660 Token fn; 5072 fn.str = new st d::string( "^?{}" );// location undefined5073 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ -4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );5661 fn.str = new string( "^?{}" ); // location undefined 5662 (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) ) ) ) ) ); 5074 5663 } 5075 #line 5076 "Parser/parser.cc" /* yacc.c:1646 */5076 5664 break; 5077 5665 5078 5666 case 139: 5079 #line 676 "parser.yy" /* yacc.c:1646 */ 5667 5668 /* Line 1806 of yacc.c */ 5669 #line 677 "parser.yy" 5080 5670 { 5081 (yyval.sn) = (yyvsp[ 0].sn)->add_label( (yyvsp[-3].tok) );5671 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5082 5672 } 5083 #line 5084 "Parser/parser.cc" /* yacc.c:1646 */5084 5673 break; 5085 5674 5086 5675 case 140: 5087 #line 683 "parser.yy" /* yacc.c:1646 */ 5676 5677 /* Line 1806 of yacc.c */ 5678 #line 684 "parser.yy" 5088 5679 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5089 #line 5090 "Parser/parser.cc" /* yacc.c:1646 */5090 5680 break; 5091 5681 5092 5682 case 141: 5093 #line 690 "parser.yy" /* yacc.c:1646 */ 5094 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5095 #line 5096 "Parser/parser.cc" /* yacc.c:1646 */ 5683 5684 /* Line 1806 of yacc.c */ 5685 #line 691 "parser.yy" 5686 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5096 5687 break; 5097 5688 5098 5689 case 143: 5099 #line 696 "parser.yy" /* yacc.c:1646 */ 5100 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5101 #line 5102 "Parser/parser.cc" /* yacc.c:1646 */ 5690 5691 /* Line 1806 of yacc.c */ 5692 #line 697 "parser.yy" 5693 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5102 5694 break; 5103 5695 5104 5696 case 144: 5105 #line 701 "parser.yy" /* yacc.c:1646 */ 5106 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5107 #line 5108 "Parser/parser.cc" /* yacc.c:1646 */ 5697 5698 /* Line 1806 of yacc.c */ 5699 #line 702 "parser.yy" 5700 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5108 5701 break; 5109 5702 5110 5703 case 145: 5111 #line 703 "parser.yy" /* yacc.c:1646 */ 5704 5705 /* Line 1806 of yacc.c */ 5706 #line 704 "parser.yy" 5112 5707 { // mark all fields in list 5113 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5708 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5114 5709 iter->set_extension( true ); 5115 (yyval.sn) = new StatementNode( (yyvsp[ 0].decl) );5710 (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); 5116 5711 } 5117 #line 5118 "Parser/parser.cc" /* yacc.c:1646 */5118 5712 break; 5119 5713 5120 5714 case 146: 5121 #line 709 "parser.yy" /* yacc.c:1646 */ 5122 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5123 #line 5124 "Parser/parser.cc" /* yacc.c:1646 */ 5715 5716 /* Line 1806 of yacc.c */ 5717 #line 710 "parser.yy" 5718 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5124 5719 break; 5125 5720 5126 5721 case 149: 5127 #line 716 "parser.yy" /* yacc.c:1646 */ 5128 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5129 #line 5130 "Parser/parser.cc" /* yacc.c:1646 */ 5722 5723 /* Line 1806 of yacc.c */ 5724 #line 717 "parser.yy" 5725 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5130 5726 break; 5131 5727 5132 5728 case 150: 5133 #line 721 "parser.yy" /* yacc.c:1646 */ 5134 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5135 #line 5136 "Parser/parser.cc" /* yacc.c:1646 */ 5729 5730 /* Line 1806 of yacc.c */ 5731 #line 722 "parser.yy" 5732 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5136 5733 break; 5137 5734 5138 5735 case 151: 5139 #line 727 "parser.yy" /* yacc.c:1646 */ 5140 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5141 #line 5142 "Parser/parser.cc" /* yacc.c:1646 */ 5736 5737 /* Line 1806 of yacc.c */ 5738 #line 728 "parser.yy" 5739 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5142 5740 break; 5143 5741 5144 5742 case 152: 5145 #line 729 "parser.yy" /* yacc.c:1646 */ 5146 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5147 #line 5148 "Parser/parser.cc" /* yacc.c:1646 */ 5743 5744 /* Line 1806 of yacc.c */ 5745 #line 730 "parser.yy" 5746 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5148 5747 break; 5149 5748 5150 5749 case 153: 5151 #line 731 "parser.yy" /* yacc.c:1646 */ 5152 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5153 #line 5154 "Parser/parser.cc" /* yacc.c:1646 */ 5750 5751 /* Line 1806 of yacc.c */ 5752 #line 732 "parser.yy" 5753 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5154 5754 break; 5155 5755 5156 5756 case 154: 5157 #line 733 "parser.yy" /* yacc.c:1646 */ 5757 5758 /* Line 1806 of yacc.c */ 5759 #line 734 "parser.yy" 5158 5760 { 5159 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5761 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5160 5762 // The semantics of the declaration list is changed to include associated initialization, which is performed 5161 5763 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5163 5765 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5164 5766 // statement. 5165 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5767 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5166 5768 } 5167 #line 5168 "Parser/parser.cc" /* yacc.c:1646 */5168 5769 break; 5169 5770 5170 5771 case 155: 5171 #line 743 "parser.yy" /* yacc.c:1646 */ 5172 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5173 #line 5174 "Parser/parser.cc" /* yacc.c:1646 */ 5772 5773 /* Line 1806 of yacc.c */ 5774 #line 744 "parser.yy" 5775 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5174 5776 break; 5175 5777 5176 5778 case 156: 5177 #line 745 "parser.yy" /* yacc.c:1646 */ 5779 5780 /* Line 1806 of yacc.c */ 5781 #line 746 "parser.yy" 5178 5782 { 5179 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5180 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5783 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5784 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5181 5785 } 5182 #line 5183 "Parser/parser.cc" /* yacc.c:1646 */5183 5786 break; 5184 5787 5185 5788 case 157: 5186 #line 755 "parser.yy" /* yacc.c:1646 */ 5187 { (yyval.en) = (yyvsp[0].en); } 5188 #line 5189 "Parser/parser.cc" /* yacc.c:1646 */ 5789 5790 /* Line 1806 of yacc.c */ 5791 #line 756 "parser.yy" 5792 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5189 5793 break; 5190 5794 5191 5795 case 158: 5192 #line 757 "parser.yy" /* yacc.c:1646 */ 5193 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5194 #line 5195 "Parser/parser.cc" /* yacc.c:1646 */ 5796 5797 /* Line 1806 of yacc.c */ 5798 #line 758 "parser.yy" 5799 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5195 5800 break; 5196 5801 5197 5802 case 160: 5198 #line 762 "parser.yy" /* yacc.c:1646 */ 5199 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5200 #line 5201 "Parser/parser.cc" /* yacc.c:1646 */ 5803 5804 /* Line 1806 of yacc.c */ 5805 #line 763 "parser.yy" 5806 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5201 5807 break; 5202 5808 5203 5809 case 161: 5204 #line 764 "parser.yy" /* yacc.c:1646 */ 5205 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5206 #line 5207 "Parser/parser.cc" /* yacc.c:1646 */ 5810 5811 /* Line 1806 of yacc.c */ 5812 #line 765 "parser.yy" 5813 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5207 5814 break; 5208 5815 5209 5816 case 162: 5210 #line 768 "parser.yy" /* yacc.c:1646 */ 5211 { (yyval.sn) = (yyvsp[-1].sn); } 5212 #line 5213 "Parser/parser.cc" /* yacc.c:1646 */ 5817 5818 /* Line 1806 of yacc.c */ 5819 #line 769 "parser.yy" 5820 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5213 5821 break; 5214 5822 5215 5823 case 163: 5216 #line 769 "parser.yy" /* yacc.c:1646 */ 5824 5825 /* Line 1806 of yacc.c */ 5826 #line 770 "parser.yy" 5217 5827 { (yyval.sn) = new StatementNode( build_default() ); } 5218 #line 5219 "Parser/parser.cc" /* yacc.c:1646 */5219 5828 break; 5220 5829 5221 5830 case 165: 5222 #line 775 "parser.yy" /* yacc.c:1646 */ 5223 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5224 #line 5225 "Parser/parser.cc" /* yacc.c:1646 */ 5831 5832 /* Line 1806 of yacc.c */ 5833 #line 776 "parser.yy" 5834 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5225 5835 break; 5226 5836 5227 5837 case 166: 5228 #line 779 "parser.yy" /* yacc.c:1646 */ 5229 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5230 #line 5231 "Parser/parser.cc" /* yacc.c:1646 */ 5838 5839 /* Line 1806 of yacc.c */ 5840 #line 780 "parser.yy" 5841 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5231 5842 break; 5232 5843 5233 5844 case 167: 5234 #line 784 "parser.yy" /* yacc.c:1646 */ 5845 5846 /* Line 1806 of yacc.c */ 5847 #line 785 "parser.yy" 5235 5848 { (yyval.sn) = 0; } 5236 #line 5237 "Parser/parser.cc" /* yacc.c:1646 */5237 5849 break; 5238 5850 5239 5851 case 169: 5240 #line 790 "parser.yy" /* yacc.c:1646 */ 5241 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5242 #line 5243 "Parser/parser.cc" /* yacc.c:1646 */ 5852 5853 /* Line 1806 of yacc.c */ 5854 #line 791 "parser.yy" 5855 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5243 5856 break; 5244 5857 5245 5858 case 170: 5246 #line 792 "parser.yy" /* yacc.c:1646 */ 5247 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5248 #line 5249 "Parser/parser.cc" /* yacc.c:1646 */ 5859 5860 /* Line 1806 of yacc.c */ 5861 #line 793 "parser.yy" 5862 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5249 5863 break; 5250 5864 5251 5865 case 171: 5252 #line 797 "parser.yy" /* yacc.c:1646 */ 5866 5867 /* Line 1806 of yacc.c */ 5868 #line 798 "parser.yy" 5253 5869 { (yyval.sn) = 0; } 5254 #line 5255 "Parser/parser.cc" /* yacc.c:1646 */5255 5870 break; 5256 5871 5257 5872 case 173: 5258 #line 803 "parser.yy" /* yacc.c:1646 */ 5259 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5260 #line 5261 "Parser/parser.cc" /* yacc.c:1646 */ 5873 5874 /* Line 1806 of yacc.c */ 5875 #line 804 "parser.yy" 5876 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5261 5877 break; 5262 5878 5263 5879 case 174: 5264 #line 805 "parser.yy" /* yacc.c:1646 */ 5265 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5266 #line 5267 "Parser/parser.cc" /* yacc.c:1646 */ 5880 5881 /* Line 1806 of yacc.c */ 5882 #line 806 "parser.yy" 5883 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5267 5884 break; 5268 5885 5269 5886 case 175: 5270 #line 807 "parser.yy" /* yacc.c:1646 */ 5271 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5272 #line 5273 "Parser/parser.cc" /* yacc.c:1646 */ 5887 5888 /* Line 1806 of yacc.c */ 5889 #line 808 "parser.yy" 5890 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5273 5891 break; 5274 5892 5275 5893 case 176: 5276 #line 809 "parser.yy" /* yacc.c:1646 */ 5277 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5278 #line 5279 "Parser/parser.cc" /* yacc.c:1646 */ 5894 5895 /* Line 1806 of yacc.c */ 5896 #line 810 "parser.yy" 5897 { (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) ) ) ) ) ) ); } 5279 5898 break; 5280 5899 5281 5900 case 177: 5282 #line 814 "parser.yy" /* yacc.c:1646 */ 5901 5902 /* Line 1806 of yacc.c */ 5903 #line 815 "parser.yy" 5283 5904 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5284 #line 5285 "Parser/parser.cc" /* yacc.c:1646 */5285 5905 break; 5286 5906 5287 5907 case 179: 5288 #line 820 "parser.yy" /* yacc.c:1646 */ 5908 5909 /* Line 1806 of yacc.c */ 5910 #line 821 "parser.yy" 5289 5911 { (yyval.sn) = 0; } 5290 #line 5291 "Parser/parser.cc" /* yacc.c:1646 */5291 5912 break; 5292 5913 5293 5914 case 180: 5294 #line 822 "parser.yy" /* yacc.c:1646 */ 5915 5916 /* Line 1806 of yacc.c */ 5917 #line 823 "parser.yy" 5295 5918 { (yyval.sn) = 0; } 5296 #line 5297 "Parser/parser.cc" /* yacc.c:1646 */5297 5919 break; 5298 5920 5299 5921 case 181: 5300 #line 827 "parser.yy" /* yacc.c:1646 */ 5301 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5302 #line 5303 "Parser/parser.cc" /* yacc.c:1646 */ 5922 5923 /* Line 1806 of yacc.c */ 5924 #line 828 "parser.yy" 5925 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5303 5926 break; 5304 5927 5305 5928 case 182: 5306 #line 829 "parser.yy" /* yacc.c:1646 */ 5307 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5308 #line 5309 "Parser/parser.cc" /* yacc.c:1646 */ 5929 5930 /* Line 1806 of yacc.c */ 5931 #line 830 "parser.yy" 5932 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5309 5933 break; 5310 5934 5311 5935 case 183: 5312 #line 831 "parser.yy" /* yacc.c:1646 */ 5313 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5314 #line 5315 "Parser/parser.cc" /* yacc.c:1646 */ 5936 5937 /* Line 1806 of yacc.c */ 5938 #line 832 "parser.yy" 5939 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5315 5940 break; 5316 5941 5317 5942 case 184: 5318 #line 836 "parser.yy" /* yacc.c:1646 */ 5319 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5320 #line 5321 "Parser/parser.cc" /* yacc.c:1646 */ 5943 5944 /* Line 1806 of yacc.c */ 5945 #line 837 "parser.yy" 5946 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5321 5947 break; 5322 5948 5323 5949 case 185: 5324 #line 838 "parser.yy" /* yacc.c:1646 */ 5325 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5326 #line 5327 "Parser/parser.cc" /* yacc.c:1646 */ 5950 5951 /* Line 1806 of yacc.c */ 5952 #line 839 "parser.yy" 5953 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5327 5954 break; 5328 5955 5329 5956 case 186: 5330 #line 843 "parser.yy" /* yacc.c:1646 */ 5331 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5332 #line 5333 "Parser/parser.cc" /* yacc.c:1646 */ 5957 5958 /* Line 1806 of yacc.c */ 5959 #line 844 "parser.yy" 5960 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5333 5961 break; 5334 5962 5335 5963 case 187: 5336 #line 847 "parser.yy" /* yacc.c:1646 */ 5337 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5338 #line 5339 "Parser/parser.cc" /* yacc.c:1646 */ 5964 5965 /* Line 1806 of yacc.c */ 5966 #line 848 "parser.yy" 5967 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5339 5968 break; 5340 5969 5341 5970 case 188: 5342 #line 850 "parser.yy" /* yacc.c:1646 */ 5971 5972 /* Line 1806 of yacc.c */ 5973 #line 851 "parser.yy" 5343 5974 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5344 #line 5345 "Parser/parser.cc" /* yacc.c:1646 */5345 5975 break; 5346 5976 5347 5977 case 189: 5348 #line 854 "parser.yy" /* yacc.c:1646 */ 5349 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5350 #line 5351 "Parser/parser.cc" /* yacc.c:1646 */ 5978 5979 /* Line 1806 of yacc.c */ 5980 #line 855 "parser.yy" 5981 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5351 5982 break; 5352 5983 5353 5984 case 190: 5354 #line 857 "parser.yy" /* yacc.c:1646 */ 5985 5986 /* Line 1806 of yacc.c */ 5987 #line 858 "parser.yy" 5355 5988 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5356 #line 5357 "Parser/parser.cc" /* yacc.c:1646 */5357 5989 break; 5358 5990 5359 5991 case 191: 5360 #line 861 "parser.yy" /* yacc.c:1646 */ 5361 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5362 #line 5363 "Parser/parser.cc" /* yacc.c:1646 */ 5992 5993 /* Line 1806 of yacc.c */ 5994 #line 862 "parser.yy" 5995 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5363 5996 break; 5364 5997 5365 5998 case 192: 5366 #line 863 "parser.yy" /* yacc.c:1646 */ 5367 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5368 #line 5369 "Parser/parser.cc" /* yacc.c:1646 */ 5999 6000 /* Line 1806 of yacc.c */ 6001 #line 864 "parser.yy" 6002 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5369 6003 break; 5370 6004 5371 6005 case 193: 5372 #line 865 "parser.yy" /* yacc.c:1646 */ 5373 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5374 #line 5375 "Parser/parser.cc" /* yacc.c:1646 */ 6006 6007 /* Line 1806 of yacc.c */ 6008 #line 866 "parser.yy" 6009 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5375 6010 break; 5376 6011 5377 6012 case 194: 5378 #line 867 "parser.yy" /* yacc.c:1646 */ 5379 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5380 #line 5381 "Parser/parser.cc" /* yacc.c:1646 */ 6013 6014 /* Line 1806 of yacc.c */ 6015 #line 868 "parser.yy" 6016 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5381 6017 break; 5382 6018 5383 6019 case 195: 5384 #line 869 "parser.yy" /* yacc.c:1646 */ 5385 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5386 #line 5387 "Parser/parser.cc" /* yacc.c:1646 */ 6020 6021 /* Line 1806 of yacc.c */ 6022 #line 870 "parser.yy" 6023 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5387 6024 break; 5388 6025 5389 6026 case 196: 5390 #line 874 "parser.yy" /* yacc.c:1646 */ 5391 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5392 #line 5393 "Parser/parser.cc" /* yacc.c:1646 */ 6027 6028 /* Line 1806 of yacc.c */ 6029 #line 875 "parser.yy" 6030 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5393 6031 break; 5394 6032 5395 6033 case 197: 5396 #line 876 "parser.yy" /* yacc.c:1646 */ 5397 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5398 #line 5399 "Parser/parser.cc" /* yacc.c:1646 */ 6034 6035 /* Line 1806 of yacc.c */ 6036 #line 877 "parser.yy" 6037 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5399 6038 break; 5400 6039 5401 6040 case 198: 5402 #line 878 "parser.yy" /* yacc.c:1646 */ 5403 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5404 #line 5405 "Parser/parser.cc" /* yacc.c:1646 */ 6041 6042 /* Line 1806 of yacc.c */ 6043 #line 879 "parser.yy" 6044 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5405 6045 break; 5406 6046 5407 6047 case 200: 5408 #line 885 "parser.yy" /* yacc.c:1646 */ 5409 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5410 #line 5411 "Parser/parser.cc" /* yacc.c:1646 */ 6048 6049 /* Line 1806 of yacc.c */ 6050 #line 886 "parser.yy" 6051 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5411 6052 break; 5412 6053 5413 6054 case 201: 5414 #line 887 "parser.yy" /* yacc.c:1646 */ 5415 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5416 #line 5417 "Parser/parser.cc" /* yacc.c:1646 */ 6055 6056 /* Line 1806 of yacc.c */ 6057 #line 888 "parser.yy" 6058 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5417 6059 break; 5418 6060 5419 6061 case 202: 5420 #line 889 "parser.yy" /* yacc.c:1646 */ 5421 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5422 #line 5423 "Parser/parser.cc" /* yacc.c:1646 */ 6062 6063 /* Line 1806 of yacc.c */ 6064 #line 890 "parser.yy" 6065 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5423 6066 break; 5424 6067 5425 6068 case 203: 5426 #line 891 "parser.yy" /* yacc.c:1646 */ 5427 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5428 #line 5429 "Parser/parser.cc" /* yacc.c:1646 */ 6069 6070 /* Line 1806 of yacc.c */ 6071 #line 892 "parser.yy" 6072 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5429 6073 break; 5430 6074 5431 6075 case 204: 5432 #line 896 "parser.yy" /* yacc.c:1646 */ 5433 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5434 #line 5435 "Parser/parser.cc" /* yacc.c:1646 */ 6076 6077 /* Line 1806 of yacc.c */ 6078 #line 897 "parser.yy" 6079 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5435 6080 break; 5436 6081 5437 6082 case 205: 5438 #line 898 "parser.yy" /* yacc.c:1646 */ 5439 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5440 #line 5441 "Parser/parser.cc" /* yacc.c:1646 */ 6083 6084 /* Line 1806 of yacc.c */ 6085 #line 899 "parser.yy" 6086 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5441 6087 break; 5442 6088 5443 6089 case 206: 5444 #line 900 "parser.yy" /* yacc.c:1646 */ 5445 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5446 #line 5447 "Parser/parser.cc" /* yacc.c:1646 */ 6090 6091 /* Line 1806 of yacc.c */ 6092 #line 901 "parser.yy" 6093 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5447 6094 break; 5448 6095 5449 6096 case 207: 5450 #line 902 "parser.yy" /* yacc.c:1646 */ 5451 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5452 #line 5453 "Parser/parser.cc" /* yacc.c:1646 */ 6097 6098 /* Line 1806 of yacc.c */ 6099 #line 903 "parser.yy" 6100 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5453 6101 break; 5454 6102 5455 6103 case 208: 5456 #line 907 "parser.yy" /* yacc.c:1646 */ 6104 6105 /* Line 1806 of yacc.c */ 6106 #line 908 "parser.yy" 5457 6107 { 5458 (yyval.sn) = new StatementNode( build_finally( (yyvsp[ 0].sn) ) );6108 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5459 6109 } 5460 #line 5461 "Parser/parser.cc" /* yacc.c:1646 */5461 6110 break; 5462 6111 5463 6112 case 210: 5464 #line 920 "parser.yy" /* yacc.c:1646 */ 6113 6114 /* Line 1806 of yacc.c */ 6115 #line 921 "parser.yy" 5465 6116 { 5466 6117 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5467 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );6118 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 5468 6119 } 5469 #line 5470 "Parser/parser.cc" /* yacc.c:1646 */5470 6120 break; 5471 6121 5472 6122 case 211: 5473 #line 925 "parser.yy" /* yacc.c:1646 */ 5474 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5475 #line 5476 "Parser/parser.cc" /* yacc.c:1646 */ 6123 6124 /* Line 1806 of yacc.c */ 6125 #line 926 "parser.yy" 6126 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5476 6127 break; 5477 6128 5478 6129 case 212: 5479 #line 927 "parser.yy" /* yacc.c:1646 */ 6130 6131 /* Line 1806 of yacc.c */ 6132 #line 928 "parser.yy" 5480 6133 { 5481 6134 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5482 (yyval.decl) = (yyvsp[ -1].decl)->addName( (yyvsp[0].tok) );6135 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); 5483 6136 } 5484 #line 5485 "Parser/parser.cc" /* yacc.c:1646 */5485 6137 break; 5486 6138 5487 6139 case 214: 5488 #line 936 "parser.yy" /* yacc.c:1646 */ 5489 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5490 #line 5491 "Parser/parser.cc" /* yacc.c:1646 */ 6140 6141 /* Line 1806 of yacc.c */ 6142 #line 937 "parser.yy" 6143 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5491 6144 break; 5492 6145 5493 6146 case 215: 5494 #line 938 "parser.yy" /* yacc.c:1646 */ 5495 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5496 #line 5497 "Parser/parser.cc" /* yacc.c:1646 */ 6147 6148 /* Line 1806 of yacc.c */ 6149 #line 939 "parser.yy" 6150 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5497 6151 break; 5498 6152 5499 6153 case 216: 5500 #line 940 "parser.yy" /* yacc.c:1646 */ 5501 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5502 #line 5503 "Parser/parser.cc" /* yacc.c:1646 */ 6154 6155 /* Line 1806 of yacc.c */ 6156 #line 941 "parser.yy" 6157 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5503 6158 break; 5504 6159 5505 6160 case 217: 5506 #line 942 "parser.yy" /* yacc.c:1646 */ 5507 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5508 #line 5509 "Parser/parser.cc" /* yacc.c:1646 */ 6161 6162 /* Line 1806 of yacc.c */ 6163 #line 943 "parser.yy" 6164 { (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) ) ); } 5509 6165 break; 5510 6166 5511 6167 case 218: 5512 #line 944 "parser.yy" /* yacc.c:1646 */ 5513 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5514 #line 5515 "Parser/parser.cc" /* yacc.c:1646 */ 6168 6169 /* Line 1806 of yacc.c */ 6170 #line 945 "parser.yy" 6171 { (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) ) ); } 5515 6172 break; 5516 6173 5517 6174 case 219: 5518 #line 949 "parser.yy" /* yacc.c:1646 */ 6175 6176 /* Line 1806 of yacc.c */ 6177 #line 950 "parser.yy" 5519 6178 { (yyval.flag) = false; } 5520 #line 5521 "Parser/parser.cc" /* yacc.c:1646 */5521 6179 break; 5522 6180 5523 6181 case 220: 5524 #line 951 "parser.yy" /* yacc.c:1646 */ 6182 6183 /* Line 1806 of yacc.c */ 6184 #line 952 "parser.yy" 5525 6185 { (yyval.flag) = true; } 5526 #line 5527 "Parser/parser.cc" /* yacc.c:1646 */5527 6186 break; 5528 6187 5529 6188 case 221: 5530 #line 956 "parser.yy" /* yacc.c:1646 */ 6189 6190 /* Line 1806 of yacc.c */ 6191 #line 957 "parser.yy" 5531 6192 { (yyval.en) = 0; } 5532 #line 5533 "Parser/parser.cc" /* yacc.c:1646 */5533 6193 break; 5534 6194 5535 6195 case 224: 5536 #line 963 "parser.yy" /* yacc.c:1646 */ 5537 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5538 #line 5539 "Parser/parser.cc" /* yacc.c:1646 */ 6196 6197 /* Line 1806 of yacc.c */ 6198 #line 964 "parser.yy" 6199 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5539 6200 break; 5540 6201 5541 6202 case 225: 5542 #line 968 "parser.yy" /* yacc.c:1646 */ 5543 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5544 #line 5545 "Parser/parser.cc" /* yacc.c:1646 */ 6203 6204 /* Line 1806 of yacc.c */ 6205 #line 969 "parser.yy" 6206 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5545 6207 break; 5546 6208 5547 6209 case 226: 5548 #line 970 "parser.yy" /* yacc.c:1646 */ 5549 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5550 #line 5551 "Parser/parser.cc" /* yacc.c:1646 */ 6210 6211 /* Line 1806 of yacc.c */ 6212 #line 971 "parser.yy" 6213 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5551 6214 break; 5552 6215 5553 6216 case 227: 5554 #line 975 "parser.yy" /* yacc.c:1646 */ 6217 6218 /* Line 1806 of yacc.c */ 6219 #line 976 "parser.yy" 5555 6220 { (yyval.en) = 0; } 5556 #line 5557 "Parser/parser.cc" /* yacc.c:1646 */5557 6221 break; 5558 6222 5559 6223 case 228: 5560 #line 977 "parser.yy" /* yacc.c:1646 */ 5561 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5562 #line 5563 "Parser/parser.cc" /* yacc.c:1646 */ 6224 6225 /* Line 1806 of yacc.c */ 6226 #line 978 "parser.yy" 6227 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5563 6228 break; 5564 6229 5565 6230 case 229: 5566 #line 979 "parser.yy" /* yacc.c:1646 */ 5567 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5568 #line 5569 "Parser/parser.cc" /* yacc.c:1646 */ 6231 6232 /* Line 1806 of yacc.c */ 6233 #line 980 "parser.yy" 6234 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5569 6235 break; 5570 6236 5571 6237 case 230: 5572 #line 984 "parser.yy" /* yacc.c:1646 */ 6238 6239 /* Line 1806 of yacc.c */ 6240 #line 985 "parser.yy" 5573 6241 { 5574 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[ 0].tok) );5575 delete (yyvsp[ 0].tok); // allocated by lexer6242 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); 6243 delete (yyvsp[(1) - (1)].tok); // allocated by lexer 5576 6244 } 5577 #line 5578 "Parser/parser.cc" /* yacc.c:1646 */5578 6245 break; 5579 6246 5580 6247 case 231: 5581 #line 989 "parser.yy" /* yacc.c:1646 */ 6248 6249 /* Line 1806 of yacc.c */ 6250 #line 990 "parser.yy" 5582 6251 { 5583 (yyval.label) = (yyvsp[ -2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );5584 delete (yyvsp[ 0].tok); // allocated by lexer6252 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); 6253 delete (yyvsp[(3) - (3)].tok); // allocated by lexer 5585 6254 } 5586 #line 5587 "Parser/parser.cc" /* yacc.c:1646 */5587 6255 break; 5588 6256 5589 6257 case 232: 5590 #line 999 "parser.yy" /* yacc.c:1646 */ 6258 6259 /* Line 1806 of yacc.c */ 6260 #line 1000 "parser.yy" 5591 6261 { (yyval.decl) = 0; } 5592 #line 5593 "Parser/parser.cc" /* yacc.c:1646 */5593 6262 break; 5594 6263 5595 6264 case 235: 5596 #line 1006 "parser.yy" /* yacc.c:1646 */ 5597 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5598 #line 5599 "Parser/parser.cc" /* yacc.c:1646 */ 6265 6266 /* Line 1806 of yacc.c */ 6267 #line 1007 "parser.yy" 6268 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5599 6269 break; 5600 6270 5601 6271 case 236: 5602 #line 1011 "parser.yy" /* yacc.c:1646 */ 6272 6273 /* Line 1806 of yacc.c */ 6274 #line 1012 "parser.yy" 5603 6275 { (yyval.decl) = 0; } 5604 #line 5605 "Parser/parser.cc" /* yacc.c:1646 */5605 6276 break; 5606 6277 5607 6278 case 239: 5608 #line 1018 "parser.yy" /* yacc.c:1646 */ 5609 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5610 #line 5611 "Parser/parser.cc" /* yacc.c:1646 */ 6279 6280 /* Line 1806 of yacc.c */ 6281 #line 1019 "parser.yy" 6282 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5611 6283 break; 5612 6284 5613 6285 case 244: 5614 #line 1032 "parser.yy" /* yacc.c:1646 */ 6286 6287 /* Line 1806 of yacc.c */ 6288 #line 1033 "parser.yy" 5615 6289 {} 5616 #line 5617 "Parser/parser.cc" /* yacc.c:1646 */5617 6290 break; 5618 6291 5619 6292 case 245: 5620 #line 1033 "parser.yy" /* yacc.c:1646 */ 6293 6294 /* Line 1806 of yacc.c */ 6295 #line 1034 "parser.yy" 5621 6296 {} 5622 #line 5623 "Parser/parser.cc" /* yacc.c:1646 */5623 6297 break; 5624 6298 5625 6299 case 253: 5626 #line 1062 "parser.yy" /* yacc.c:1646 */ 6300 6301 /* Line 1806 of yacc.c */ 6302 #line 1063 "parser.yy" 5627 6303 { 5628 6304 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5629 (yyval.decl) = (yyvsp[ -1].decl)->addInitializer( (yyvsp[0].in) );6305 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) ); 5630 6306 } 5631 #line 5632 "Parser/parser.cc" /* yacc.c:1646 */5632 6307 break; 5633 6308 5634 6309 case 254: 5635 #line 1069 "parser.yy" /* yacc.c:1646 */ 6310 6311 /* Line 1806 of yacc.c */ 6312 #line 1070 "parser.yy" 5636 6313 { 5637 6314 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5638 (yyval.decl) = (yyvsp[ -1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;6315 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );; 5639 6316 } 5640 #line 5641 "Parser/parser.cc" /* yacc.c:1646 */5641 6317 break; 5642 6318 5643 6319 case 255: 5644 #line 1074 "parser.yy" /* yacc.c:1646 */ 6320 6321 /* Line 1806 of yacc.c */ 6322 #line 1075 "parser.yy" 5645 6323 { 5646 typedefTable.addToEnclosingScope( *(yyvsp[ -1].tok), TypedefTable::ID );5647 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );6324 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6325 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5648 6326 } 5649 #line 5650 "Parser/parser.cc" /* yacc.c:1646 */5650 6327 break; 5651 6328 5652 6329 case 256: 5653 #line 1084 "parser.yy" /* yacc.c:1646 */ 6330 6331 /* Line 1806 of yacc.c */ 6332 #line 1085 "parser.yy" 5654 6333 { 5655 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5656 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6334 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6335 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5657 6336 } 5658 #line 5659 "Parser/parser.cc" /* yacc.c:1646 */5659 6337 break; 5660 6338 5661 6339 case 257: 5662 #line 1089 "parser.yy" /* yacc.c:1646 */ 6340 6341 /* Line 1806 of yacc.c */ 6342 #line 1090 "parser.yy" 5663 6343 { 5664 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5665 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6344 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6345 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5666 6346 } 5667 #line 5668 "Parser/parser.cc" /* yacc.c:1646 */5668 6347 break; 5669 6348 5670 6349 case 258: 5671 #line 1094 "parser.yy" /* yacc.c:1646 */ 6350 6351 /* Line 1806 of yacc.c */ 6352 #line 1095 "parser.yy" 5672 6353 { 5673 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5674 (yyval.decl) = (yyvsp[ -2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );6354 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6355 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5675 6356 } 5676 #line 5677 "Parser/parser.cc" /* yacc.c:1646 */5677 6357 break; 5678 6358 5679 6359 case 259: 5680 #line 1102 "parser.yy" /* yacc.c:1646 */ 6360 6361 /* Line 1806 of yacc.c */ 6362 #line 1103 "parser.yy" 5681 6363 { 5682 6364 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5683 (yyval.decl) = (yyvsp[ 0].decl);6365 (yyval.decl) = (yyvsp[(1) - (1)].decl); 5684 6366 } 5685 #line 5686 "Parser/parser.cc" /* yacc.c:1646 */5686 6367 break; 5687 6368 5688 6369 case 260: 5689 #line 1107 "parser.yy" /* yacc.c:1646 */ 6370 6371 /* Line 1806 of yacc.c */ 6372 #line 1108 "parser.yy" 5690 6373 { 5691 6374 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5692 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6375 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5693 6376 } 5694 #line 5695 "Parser/parser.cc" /* yacc.c:1646 */5695 6377 break; 5696 6378 5697 6379 case 261: 5698 #line 1112 "parser.yy" /* yacc.c:1646 */ 6380 6381 /* Line 1806 of yacc.c */ 6382 #line 1113 "parser.yy" 5699 6383 { 5700 6384 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5701 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6385 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5702 6386 } 5703 #line 5704 "Parser/parser.cc" /* yacc.c:1646 */5704 6387 break; 5705 6388 5706 6389 case 262: 5707 #line 1117 "parser.yy" /* yacc.c:1646 */ 6390 6391 /* Line 1806 of yacc.c */ 6392 #line 1118 "parser.yy" 5708 6393 { 5709 6394 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5710 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );6395 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) ); 5711 6396 } 5712 #line 5713 "Parser/parser.cc" /* yacc.c:1646 */5713 6397 break; 5714 6398 5715 6399 case 263: 5716 #line 1122 "parser.yy" /* yacc.c:1646 */ 6400 6401 /* Line 1806 of yacc.c */ 6402 #line 1123 "parser.yy" 5717 6403 { 5718 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::ID );5719 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6404 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6405 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5720 6406 } 5721 #line 5722 "Parser/parser.cc" /* yacc.c:1646 */5722 6407 break; 5723 6408 5724 6409 case 264: 5725 #line 1130 "parser.yy" /* yacc.c:1646 */ 6410 6411 /* Line 1806 of yacc.c */ 6412 #line 1131 "parser.yy" 5726 6413 { 5727 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );6414 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5728 6415 } 5729 #line 5730 "Parser/parser.cc" /* yacc.c:1646 */5730 6416 break; 5731 6417 5732 6418 case 265: 5733 #line 1153 "parser.yy" /* yacc.c:1646 */ 6419 6420 /* Line 1806 of yacc.c */ 6421 #line 1154 "parser.yy" 5734 6422 { 5735 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6423 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5736 6424 } 5737 #line 5738 "Parser/parser.cc" /* yacc.c:1646 */5738 6425 break; 5739 6426 5740 6427 case 266: 5741 #line 1157 "parser.yy" /* yacc.c:1646 */ 6428 6429 /* Line 1806 of yacc.c */ 6430 #line 1158 "parser.yy" 5742 6431 { 5743 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6432 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5744 6433 } 5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */5746 6434 break; 5747 6435 5748 6436 case 267: 5749 #line 1164 "parser.yy" /* yacc.c:1646 */ 5750 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646 */ 6437 6438 /* Line 1806 of yacc.c */ 6439 #line 1165 "parser.yy" 6440 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5752 6441 break; 5753 6442 5754 6443 case 268: 5755 #line 1168 "parser.yy" /* yacc.c:1646 */ 5756 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5757 #line 5758 "Parser/parser.cc" /* yacc.c:1646 */ 6444 6445 /* Line 1806 of yacc.c */ 6446 #line 1169 "parser.yy" 6447 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5758 6448 break; 5759 6449 5760 6450 case 269: 5761 #line 1173 "parser.yy" /* yacc.c:1646 */ 6451 6452 /* Line 1806 of yacc.c */ 6453 #line 1174 "parser.yy" 5762 6454 { 5763 6455 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5764 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6456 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5765 6457 } 5766 #line 5767 "Parser/parser.cc" /* yacc.c:1646 */5767 6458 break; 5768 6459 5769 6460 case 270: 5770 #line 1178 "parser.yy" /* yacc.c:1646 */ 6461 6462 /* Line 1806 of yacc.c */ 6463 #line 1179 "parser.yy" 5771 6464 { 5772 6465 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5773 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6466 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5774 6467 } 5775 #line 5776 "Parser/parser.cc" /* yacc.c:1646 */5776 6468 break; 5777 6469 5778 6470 case 271: 5779 #line 1183 "parser.yy" /* yacc.c:1646 */ 6471 6472 /* Line 1806 of yacc.c */ 6473 #line 1184 "parser.yy" 5780 6474 { 5781 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );5782 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6475 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6476 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5783 6477 } 5784 #line 5785 "Parser/parser.cc" /* yacc.c:1646 */5785 6478 break; 5786 6479 5787 6480 case 272: 5788 #line 1194 "parser.yy" /* yacc.c:1646 */ 6481 6482 /* Line 1806 of yacc.c */ 6483 #line 1195 "parser.yy" 5789 6484 { 5790 6485 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5791 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();6486 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef(); 5792 6487 } 5793 #line 5794 "Parser/parser.cc" /* yacc.c:1646 */5794 6488 break; 5795 6489 5796 6490 case 273: 5797 #line 1199 "parser.yy" /* yacc.c:1646 */ 6491 6492 /* Line 1806 of yacc.c */ 6493 #line 1200 "parser.yy" 5798 6494 { 5799 6495 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5800 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );6496 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() ); 5801 6497 } 5802 #line 5803 "Parser/parser.cc" /* yacc.c:1646 */5803 6498 break; 5804 6499 5805 6500 case 274: 5806 #line 1204 "parser.yy" /* yacc.c:1646 */ 6501 6502 /* Line 1806 of yacc.c */ 6503 #line 1205 "parser.yy" 5807 6504 { 5808 6505 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5809 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();6506 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef(); 5810 6507 } 5811 #line 5812 "Parser/parser.cc" /* yacc.c:1646 */5812 6508 break; 5813 6509 5814 6510 case 275: 5815 #line 1209 "parser.yy" /* yacc.c:1646 */ 6511 6512 /* Line 1806 of yacc.c */ 6513 #line 1210 "parser.yy" 5816 6514 { 5817 6515 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5818 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();6516 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef(); 5819 6517 } 5820 #line 5821 "Parser/parser.cc" /* yacc.c:1646 */5821 6518 break; 5822 6519 5823 6520 case 276: 5824 #line 1214 "parser.yy" /* yacc.c:1646 */ 6521 6522 /* Line 1806 of yacc.c */ 6523 #line 1215 "parser.yy" 5825 6524 { 5826 6525 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5827 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );6526 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) ); 5828 6527 } 5829 #line 5830 "Parser/parser.cc" /* yacc.c:1646 */5830 6528 break; 5831 6529 5832 6530 case 277: 5833 #line 1223 "parser.yy" /* yacc.c:1646 */ 6531 6532 /* Line 1806 of yacc.c */ 6533 #line 1224 "parser.yy" 5834 6534 { 5835 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6535 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5836 6536 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5837 6537 } 5838 #line 5839 "Parser/parser.cc" /* yacc.c:1646 */5839 6538 break; 5840 6539 5841 6540 case 278: 5842 #line 1228 "parser.yy" /* yacc.c:1646 */ 6541 6542 /* Line 1806 of yacc.c */ 6543 #line 1229 "parser.yy" 5843 6544 { 5844 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6545 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5845 6546 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5846 6547 } 5847 #line 5848 "Parser/parser.cc" /* yacc.c:1646 */5848 6548 break; 5849 6549 5850 6550 case 283: 5851 #line 1245 "parser.yy" /* yacc.c:1646 */ 6551 6552 /* Line 1806 of yacc.c */ 6553 #line 1246 "parser.yy" 5852 6554 { 5853 6555 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5854 (yyval.decl) = ( (yyvsp[ -2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );6556 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) ); 5855 6557 } 5856 #line 5857 "Parser/parser.cc" /* yacc.c:1646 */5857 6558 break; 5858 6559 5859 6560 case 284: 5860 #line 1250 "parser.yy" /* yacc.c:1646 */ 6561 6562 /* Line 1806 of yacc.c */ 6563 #line 1251 "parser.yy" 5861 6564 { 5862 6565 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5863 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );6566 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) ); 5864 6567 } 5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */5866 6568 break; 5867 6569 5868 6570 case 293: 5869 #line 1272 "parser.yy" /* yacc.c:1646 */ 6571 6572 /* Line 1806 of yacc.c */ 6573 #line 1273 "parser.yy" 5870 6574 { (yyval.decl) = 0; } 5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */5872 6575 break; 5873 6576 5874 6577 case 296: 5875 #line 1284 "parser.yy" /* yacc.c:1646 */ 5876 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */ 6578 6579 /* Line 1806 of yacc.c */ 6580 #line 1285 "parser.yy" 6581 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5878 6582 break; 5879 6583 5880 6584 case 299: 5881 #line 1295 "parser.yy" /* yacc.c:1646 */ 6585 6586 /* Line 1806 of yacc.c */ 6587 #line 1296 "parser.yy" 5882 6588 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */5884 6589 break; 5885 6590 5886 6591 case 300: 5887 #line 1297 "parser.yy" /* yacc.c:1646 */ 6592 6593 /* Line 1806 of yacc.c */ 6594 #line 1298 "parser.yy" 5888 6595 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */5890 6596 break; 5891 6597 5892 6598 case 301: 5893 #line 1299 "parser.yy" /* yacc.c:1646 */ 6599 6600 /* Line 1806 of yacc.c */ 6601 #line 1300 "parser.yy" 5894 6602 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */5896 6603 break; 5897 6604 5898 6605 case 302: 5899 #line 1301 "parser.yy" /* yacc.c:1646 */ 6606 6607 /* Line 1806 of yacc.c */ 6608 #line 1302 "parser.yy" 5900 6609 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646 */5902 6610 break; 5903 6611 5904 6612 case 303: 5905 #line 1303 "parser.yy" /* yacc.c:1646 */ 6613 6614 /* Line 1806 of yacc.c */ 6615 #line 1304 "parser.yy" 5906 6616 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5907 #line 5908 "Parser/parser.cc" /* yacc.c:1646 */5908 6617 break; 5909 6618 5910 6619 case 304: 5911 #line 1305 "parser.yy" /* yacc.c:1646 */ 6620 6621 /* Line 1806 of yacc.c */ 6622 #line 1306 "parser.yy" 5912 6623 { 5913 6624 typedefTable.enterScope(); 5914 6625 } 5915 #line 5916 "Parser/parser.cc" /* yacc.c:1646 */5916 6626 break; 5917 6627 5918 6628 case 305: 5919 #line 1309 "parser.yy" /* yacc.c:1646 */ 6629 6630 /* Line 1806 of yacc.c */ 6631 #line 1310 "parser.yy" 5920 6632 { 5921 6633 typedefTable.leaveScope(); 5922 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ -1].decl) );6634 (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) ); 5923 6635 } 5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */5925 6636 break; 5926 6637 5927 6638 case 307: 5928 #line 1318 "parser.yy" /* yacc.c:1646 */ 5929 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 6639 6640 /* Line 1806 of yacc.c */ 6641 #line 1319 "parser.yy" 6642 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5931 6643 break; 5932 6644 5933 6645 case 308: 5934 #line 1320 "parser.yy" /* yacc.c:1646 */ 5935 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 6646 6647 /* Line 1806 of yacc.c */ 6648 #line 1321 "parser.yy" 6649 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5937 6650 break; 5938 6651 5939 6652 case 310: 5940 #line 1331 "parser.yy" /* yacc.c:1646 */ 5941 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */ 6653 6654 /* Line 1806 of yacc.c */ 6655 #line 1332 "parser.yy" 6656 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5943 6657 break; 5944 6658 5945 6659 case 311: 5946 #line 1336 "parser.yy" /* yacc.c:1646 */ 6660 6661 /* Line 1806 of yacc.c */ 6662 #line 1337 "parser.yy" 5947 6663 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */5949 6664 break; 5950 6665 5951 6666 case 312: 5952 #line 1338 "parser.yy" /* yacc.c:1646 */ 6667 6668 /* Line 1806 of yacc.c */ 6669 #line 1339 "parser.yy" 5953 6670 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */5955 6671 break; 5956 6672 5957 6673 case 313: 5958 #line 1340 "parser.yy" /* yacc.c:1646 */ 6674 6675 /* Line 1806 of yacc.c */ 6676 #line 1341 "parser.yy" 5959 6677 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */5961 6678 break; 5962 6679 5963 6680 case 314: 5964 #line 1342 "parser.yy" /* yacc.c:1646 */ 6681 6682 /* Line 1806 of yacc.c */ 6683 #line 1343 "parser.yy" 5965 6684 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */5967 6685 break; 5968 6686 5969 6687 case 315: 5970 #line 1345 "parser.yy" /* yacc.c:1646 */ 6688 6689 /* Line 1806 of yacc.c */ 6690 #line 1346 "parser.yy" 5971 6691 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */5973 6692 break; 5974 6693 5975 6694 case 316: 5976 #line 1347 "parser.yy" /* yacc.c:1646 */ 6695 6696 /* Line 1806 of yacc.c */ 6697 #line 1348 "parser.yy" 5977 6698 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */5979 6699 break; 5980 6700 5981 6701 case 317: 5982 #line 1350 "parser.yy" /* yacc.c:1646 */ 6702 6703 /* Line 1806 of yacc.c */ 6704 #line 1351 "parser.yy" 5983 6705 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */5985 6706 break; 5986 6707 5987 6708 case 318: 5988 #line 1352 "parser.yy" /* yacc.c:1646 */ 6709 6710 /* Line 1806 of yacc.c */ 6711 #line 1353 "parser.yy" 5989 6712 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */5991 6713 break; 5992 6714 5993 6715 case 319: 5994 #line 1357 "parser.yy" /* yacc.c:1646 */ 6716 6717 /* Line 1806 of yacc.c */ 6718 #line 1358 "parser.yy" 5995 6719 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */5997 6720 break; 5998 6721 5999 6722 case 320: 6000 #line 1359 "parser.yy" /* yacc.c:1646 */ 6723 6724 /* Line 1806 of yacc.c */ 6725 #line 1360 "parser.yy" 6001 6726 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */6003 6727 break; 6004 6728 6005 6729 case 321: 6006 #line 1361 "parser.yy" /* yacc.c:1646 */ 6730 6731 /* Line 1806 of yacc.c */ 6732 #line 1362 "parser.yy" 6007 6733 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */6009 6734 break; 6010 6735 6011 6736 case 322: 6012 #line 1363 "parser.yy" /* yacc.c:1646 */ 6737 6738 /* Line 1806 of yacc.c */ 6739 #line 1364 "parser.yy" 6013 6740 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */6015 6741 break; 6016 6742 6017 6743 case 323: 6018 #line 1365 "parser.yy" /* yacc.c:1646 */ 6019 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */ 6744 6745 /* Line 1806 of yacc.c */ 6746 #line 1366 "parser.yy" 6747 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6021 6748 break; 6022 6749 6023 6750 case 324: 6024 #line 1367 "parser.yy" /* yacc.c:1646 */ 6025 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */ 6751 6752 /* Line 1806 of yacc.c */ 6753 #line 1368 "parser.yy" 6754 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6027 6755 break; 6028 6756 6029 6757 case 325: 6030 #line 1369 "parser.yy" /* yacc.c:1646 */ 6031 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */ 6758 6759 /* Line 1806 of yacc.c */ 6760 #line 1370 "parser.yy" 6761 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6033 6762 break; 6034 6763 6035 6764 case 326: 6036 #line 1371 "parser.yy" /* yacc.c:1646 */ 6037 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */ 6765 6766 /* Line 1806 of yacc.c */ 6767 #line 1372 "parser.yy" 6768 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6039 6769 break; 6040 6770 6041 6771 case 327: 6042 #line 1373 "parser.yy" /* yacc.c:1646 */ 6772 6773 /* Line 1806 of yacc.c */ 6774 #line 1374 "parser.yy" 6043 6775 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */6045 6776 break; 6046 6777 6047 6778 case 328: 6048 #line 1375 "parser.yy" /* yacc.c:1646 */ 6779 6780 /* Line 1806 of yacc.c */ 6781 #line 1376 "parser.yy" 6049 6782 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */6051 6783 break; 6052 6784 6053 6785 case 329: 6054 #line 1377 "parser.yy" /* yacc.c:1646 */ 6055 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */ 6786 6787 /* Line 1806 of yacc.c */ 6788 #line 1378 "parser.yy" 6789 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6057 6790 break; 6058 6791 6059 6792 case 330: 6060 #line 1379 "parser.yy" /* yacc.c:1646 */ 6061 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */ 6793 6794 /* Line 1806 of yacc.c */ 6795 #line 1380 "parser.yy" 6796 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6063 6797 break; 6064 6798 6065 6799 case 331: 6066 #line 1381 "parser.yy" /* yacc.c:1646 */ 6800 6801 /* Line 1806 of yacc.c */ 6802 #line 1382 "parser.yy" 6067 6803 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */6069 6804 break; 6070 6805 6071 6806 case 333: 6072 #line 1388 "parser.yy" /* yacc.c:1646 */ 6073 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */ 6807 6808 /* Line 1806 of yacc.c */ 6809 #line 1389 "parser.yy" 6810 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6075 6811 break; 6076 6812 6077 6813 case 334: 6078 #line 1390 "parser.yy" /* yacc.c:1646 */ 6079 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6814 6815 /* Line 1806 of yacc.c */ 6816 #line 1391 "parser.yy" 6817 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6081 6818 break; 6082 6819 6083 6820 case 335: 6084 #line 1392 "parser.yy" /* yacc.c:1646 */ 6085 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646 */ 6821 6822 /* Line 1806 of yacc.c */ 6823 #line 1393 "parser.yy" 6824 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6087 6825 break; 6088 6826 6089 6827 case 336: 6090 #line 1394 "parser.yy" /* yacc.c:1646 */ 6091 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646 */ 6828 6829 /* Line 1806 of yacc.c */ 6830 #line 1395 "parser.yy" 6831 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6093 6832 break; 6094 6833 6095 6834 case 338: 6096 #line 1400 "parser.yy" /* yacc.c:1646 */ 6097 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646 */ 6835 6836 /* Line 1806 of yacc.c */ 6837 #line 1401 "parser.yy" 6838 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6099 6839 break; 6100 6840 6101 6841 case 340: 6102 #line 1407 "parser.yy" /* yacc.c:1646 */ 6103 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6842 6843 /* Line 1806 of yacc.c */ 6844 #line 1408 "parser.yy" 6845 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6105 6846 break; 6106 6847 6107 6848 case 341: 6108 #line 1409 "parser.yy" /* yacc.c:1646 */ 6109 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6849 6850 /* Line 1806 of yacc.c */ 6851 #line 1410 "parser.yy" 6852 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6111 6853 break; 6112 6854 6113 6855 case 342: 6114 #line 1411 "parser.yy" /* yacc.c:1646 */ 6115 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6856 6857 /* Line 1806 of yacc.c */ 6858 #line 1412 "parser.yy" 6859 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6117 6860 break; 6118 6861 6119 6862 case 343: 6120 #line 1416 "parser.yy" /* yacc.c:1646 */ 6121 { (yyval.decl) = (yyvsp[-1].decl); } 6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6863 6864 /* Line 1806 of yacc.c */ 6865 #line 1417 "parser.yy" 6866 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6123 6867 break; 6124 6868 6125 6869 case 344: 6126 #line 1418 "parser.yy" /* yacc.c:1646 */ 6127 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6870 6871 /* Line 1806 of yacc.c */ 6872 #line 1419 "parser.yy" 6873 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6129 6874 break; 6130 6875 6131 6876 case 345: 6132 #line 1420 "parser.yy" /* yacc.c:1646 */ 6133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646 */ 6877 6878 /* Line 1806 of yacc.c */ 6879 #line 1421 "parser.yy" 6880 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6135 6881 break; 6136 6882 6137 6883 case 346: 6138 #line 1422 "parser.yy" /* yacc.c:1646 */ 6139 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646 */ 6884 6885 /* Line 1806 of yacc.c */ 6886 #line 1423 "parser.yy" 6887 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6141 6888 break; 6142 6889 6143 6890 case 348: 6144 #line 1428 "parser.yy" /* yacc.c:1646 */ 6145 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6891 6892 /* Line 1806 of yacc.c */ 6893 #line 1429 "parser.yy" 6894 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6147 6895 break; 6148 6896 6149 6897 case 349: 6150 #line 1430 "parser.yy" /* yacc.c:1646 */ 6151 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6898 6899 /* Line 1806 of yacc.c */ 6900 #line 1431 "parser.yy" 6901 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6153 6902 break; 6154 6903 6155 6904 case 350: 6156 #line 1432 "parser.yy" /* yacc.c:1646 */ 6157 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646 */ 6905 6906 /* Line 1806 of yacc.c */ 6907 #line 1433 "parser.yy" 6908 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6159 6909 break; 6160 6910 6161 6911 case 352: 6162 #line 1438 "parser.yy" /* yacc.c:1646 */ 6163 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6912 6913 /* Line 1806 of yacc.c */ 6914 #line 1439 "parser.yy" 6915 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6165 6916 break; 6166 6917 6167 6918 case 353: 6168 #line 1440 "parser.yy" /* yacc.c:1646 */ 6169 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6919 6920 /* Line 1806 of yacc.c */ 6921 #line 1441 "parser.yy" 6922 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6171 6923 break; 6172 6924 6173 6925 case 355: 6174 #line 1446 "parser.yy" /* yacc.c:1646 */ 6175 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6926 6927 /* Line 1806 of yacc.c */ 6928 #line 1447 "parser.yy" 6929 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6177 6930 break; 6178 6931 6179 6932 case 356: 6180 #line 1448 "parser.yy" /* yacc.c:1646 */ 6181 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6182 #line 6183 "Parser/parser.cc" /* yacc.c:1646 */ 6933 6934 /* Line 1806 of yacc.c */ 6935 #line 1449 "parser.yy" 6936 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6183 6937 break; 6184 6938 6185 6939 case 357: 6186 #line 1450 "parser.yy" /* yacc.c:1646 */ 6187 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6188 #line 6189 "Parser/parser.cc" /* yacc.c:1646 */ 6940 6941 /* Line 1806 of yacc.c */ 6942 #line 1451 "parser.yy" 6943 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6189 6944 break; 6190 6945 6191 6946 case 358: 6192 #line 1455 "parser.yy" /* yacc.c:1646 */ 6193 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6194 #line 6195 "Parser/parser.cc" /* yacc.c:1646 */ 6947 6948 /* Line 1806 of yacc.c */ 6949 #line 1456 "parser.yy" 6950 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6195 6951 break; 6196 6952 6197 6953 case 359: 6198 #line 1457 "parser.yy" /* yacc.c:1646 */ 6199 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6200 #line 6201 "Parser/parser.cc" /* yacc.c:1646 */ 6954 6955 /* Line 1806 of yacc.c */ 6956 #line 1458 "parser.yy" 6957 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6201 6958 break; 6202 6959 6203 6960 case 360: 6204 #line 1459 "parser.yy" /* yacc.c:1646 */ 6205 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6206 #line 6207 "Parser/parser.cc" /* yacc.c:1646 */ 6961 6962 /* Line 1806 of yacc.c */ 6963 #line 1460 "parser.yy" 6964 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6207 6965 break; 6208 6966 6209 6967 case 363: 6210 #line 1469 "parser.yy" /* yacc.c:1646 */ 6211 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); } 6212 #line 6213 "Parser/parser.cc" /* yacc.c:1646 */ 6968 6969 /* Line 1806 of yacc.c */ 6970 #line 1470 "parser.yy" 6971 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6213 6972 break; 6214 6973 6215 6974 case 364: 6216 #line 1471 "parser.yy" /* yacc.c:1646 */ 6975 6976 /* Line 1806 of yacc.c */ 6977 #line 1472 "parser.yy" 6217 6978 { 6218 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6219 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[ -1].aggKey), (yyvsp[0].tok), 0, 0, false );6979 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6980 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false ); 6220 6981 } 6221 #line 6222 "Parser/parser.cc" /* yacc.c:1646 */6222 6982 break; 6223 6983 6224 6984 case 365: 6225 #line 1476 "parser.yy" /* yacc.c:1646 */ 6226 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646 */ 6985 6986 /* Line 1806 of yacc.c */ 6987 #line 1477 "parser.yy" 6988 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6228 6989 break; 6229 6990 6230 6991 case 366: 6231 #line 1478 "parser.yy" /* yacc.c:1646 */ 6232 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); } 6233 #line 6234 "Parser/parser.cc" /* yacc.c:1646 */ 6992 6993 /* Line 1806 of yacc.c */ 6994 #line 1479 "parser.yy" 6995 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 6234 6996 break; 6235 6997 6236 6998 case 367: 6237 #line 1480 "parser.yy" /* yacc.c:1646 */ 6238 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6239 #line 6240 "Parser/parser.cc" /* yacc.c:1646 */ 6999 7000 /* Line 1806 of yacc.c */ 7001 #line 1481 "parser.yy" 7002 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6240 7003 break; 6241 7004 6242 7005 case 368: 6243 #line 1482 "parser.yy" /* yacc.c:1646 */ 6244 { (yyval.decl) = (yyvsp[0].decl); } 6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646 */ 7006 7007 /* Line 1806 of yacc.c */ 7008 #line 1483 "parser.yy" 7009 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6246 7010 break; 6247 7011 6248 7012 case 369: 6249 #line 1487 "parser.yy" /* yacc.c:1646 */ 7013 7014 /* Line 1806 of yacc.c */ 7015 #line 1488 "parser.yy" 6250 7016 { (yyval.aggKey) = DeclarationNode::Struct; } 6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646 */6252 7017 break; 6253 7018 6254 7019 case 370: 6255 #line 1489 "parser.yy" /* yacc.c:1646 */ 7020 7021 /* Line 1806 of yacc.c */ 7022 #line 1490 "parser.yy" 6256 7023 { (yyval.aggKey) = DeclarationNode::Union; } 6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646 */6258 7024 break; 6259 7025 6260 7026 case 371: 6261 #line 1494 "parser.yy" /* yacc.c:1646 */ 7027 7028 /* Line 1806 of yacc.c */ 7029 #line 1495 "parser.yy" 6262 7030 { (yyval.decl) = 0; } 6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646 */6264 7031 break; 6265 7032 6266 7033 case 372: 6267 #line 1496 "parser.yy" /* yacc.c:1646 */ 6268 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6269 #line 6270 "Parser/parser.cc" /* yacc.c:1646 */ 7034 7035 /* Line 1806 of yacc.c */ 7036 #line 1497 "parser.yy" 7037 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6270 7038 break; 6271 7039 6272 7040 case 374: 6273 #line 1502 "parser.yy" /* yacc.c:1646 */ 6274 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6275 #line 6276 "Parser/parser.cc" /* yacc.c:1646 */ 7041 7042 /* Line 1806 of yacc.c */ 7043 #line 1503 "parser.yy" 7044 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6276 7045 break; 6277 7046 6278 7047 case 376: 6279 #line 1505 "parser.yy" /* yacc.c:1646 */ 7048 7049 /* Line 1806 of yacc.c */ 7050 #line 1506 "parser.yy" 6280 7051 { // mark all fields in list 6281 for ( DeclarationNode *iter = (yyvsp[ -1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7052 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6282 7053 iter->set_extension( true ); 6283 (yyval.decl) = (yyvsp[ -1].decl);7054 (yyval.decl) = (yyvsp[(2) - (3)].decl); 6284 7055 } 6285 #line 6286 "Parser/parser.cc" /* yacc.c:1646 */6286 7056 break; 6287 7057 6288 7058 case 378: 6289 #line 1515 "parser.yy" /* yacc.c:1646 */ 6290 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6291 #line 6292 "Parser/parser.cc" /* yacc.c:1646 */ 7059 7060 /* Line 1806 of yacc.c */ 7061 #line 1516 "parser.yy" 7062 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6292 7063 break; 6293 7064 6294 7065 case 379: 6295 #line 1517 "parser.yy" /* yacc.c:1646 */ 6296 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6297 #line 6298 "Parser/parser.cc" /* yacc.c:1646 */ 7066 7067 /* Line 1806 of yacc.c */ 7068 #line 1518 "parser.yy" 7069 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6298 7070 break; 6299 7071 6300 7072 case 380: 6301 #line 1519 "parser.yy" /* yacc.c:1646 */ 6302 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6303 #line 6304 "Parser/parser.cc" /* yacc.c:1646 */ 7073 7074 /* Line 1806 of yacc.c */ 7075 #line 1520 "parser.yy" 7076 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6304 7077 break; 6305 7078 6306 7079 case 381: 6307 #line 1524 "parser.yy" /* yacc.c:1646 */ 6308 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6309 #line 6310 "Parser/parser.cc" /* yacc.c:1646 */ 7080 7081 /* Line 1806 of yacc.c */ 7082 #line 1525 "parser.yy" 7083 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6310 7084 break; 6311 7085 6312 7086 case 382: 6313 #line 1526 "parser.yy" /* yacc.c:1646 */ 6314 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6315 #line 6316 "Parser/parser.cc" /* yacc.c:1646 */ 7087 7088 /* Line 1806 of yacc.c */ 7089 #line 1527 "parser.yy" 7090 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6316 7091 break; 6317 7092 6318 7093 case 383: 6319 #line 1531 "parser.yy" /* yacc.c:1646 */ 7094 7095 /* Line 1806 of yacc.c */ 7096 #line 1532 "parser.yy" 6320 7097 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646 */6322 7098 break; 6323 7099 6324 7100 case 384: 6325 #line 1533 "parser.yy" /* yacc.c:1646 */ 6326 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6327 #line 6328 "Parser/parser.cc" /* yacc.c:1646 */ 7101 7102 /* Line 1806 of yacc.c */ 7103 #line 1534 "parser.yy" 7104 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6328 7105 break; 6329 7106 6330 7107 case 385: 6331 #line 1536 "parser.yy" /* yacc.c:1646 */ 6332 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646 */ 7108 7109 /* Line 1806 of yacc.c */ 7110 #line 1537 "parser.yy" 7111 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6334 7112 break; 6335 7113 6336 7114 case 386: 6337 #line 1539 "parser.yy" /* yacc.c:1646 */ 6338 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6339 #line 6340 "Parser/parser.cc" /* yacc.c:1646 */ 7115 7116 /* Line 1806 of yacc.c */ 7117 #line 1540 "parser.yy" 7118 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6340 7119 break; 6341 7120 6342 7121 case 388: 6343 #line 1545 "parser.yy" /* yacc.c:1646 */ 7122 7123 /* Line 1806 of yacc.c */ 7124 #line 1546 "parser.yy" 6344 7125 { (yyval.en) = 0; } 6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646 */6346 7126 break; 6347 7127 6348 7128 case 389: 6349 #line 1547 "parser.yy" /* yacc.c:1646 */ 6350 { (yyval.en) = (yyvsp[0].en); } 6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 7129 7130 /* Line 1806 of yacc.c */ 7131 #line 1548 "parser.yy" 7132 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6352 7133 break; 6353 7134 6354 7135 case 390: 6355 #line 1552 "parser.yy" /* yacc.c:1646 */ 6356 { (yyval.en) = (yyvsp[0].en); } 6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646 */ 7136 7137 /* Line 1806 of yacc.c */ 7138 #line 1553 "parser.yy" 7139 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6358 7140 break; 6359 7141 6360 7142 case 392: 6361 #line 1561 "parser.yy" /* yacc.c:1646 */ 6362 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); } 6363 #line 6364 "Parser/parser.cc" /* yacc.c:1646 */ 7143 7144 /* Line 1806 of yacc.c */ 7145 #line 1562 "parser.yy" 7146 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 6364 7147 break; 6365 7148 6366 7149 case 393: 6367 #line 1563 "parser.yy" /* yacc.c:1646 */ 7150 7151 /* Line 1806 of yacc.c */ 7152 #line 1564 "parser.yy" 6368 7153 { 6369 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6370 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[ 0].tok), 0 );7154 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7155 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6371 7156 } 6372 #line 6373 "Parser/parser.cc" /* yacc.c:1646 */6373 7157 break; 6374 7158 6375 7159 case 394: 6376 #line 1568 "parser.yy" /* yacc.c:1646 */ 6377 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646 */ 7160 7161 /* Line 1806 of yacc.c */ 7162 #line 1569 "parser.yy" 7163 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6379 7164 break; 6380 7165 6381 7166 case 395: 6382 #line 1570 "parser.yy" /* yacc.c:1646 */ 6383 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6384 #line 6385 "Parser/parser.cc" /* yacc.c:1646 */ 7167 7168 /* Line 1806 of yacc.c */ 7169 #line 1571 "parser.yy" 7170 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 6385 7171 break; 6386 7172 6387 7173 case 396: 6388 #line 1575 "parser.yy" /* yacc.c:1646 */ 6389 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6390 #line 6391 "Parser/parser.cc" /* yacc.c:1646 */ 7174 7175 /* Line 1806 of yacc.c */ 7176 #line 1576 "parser.yy" 7177 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 6391 7178 break; 6392 7179 6393 7180 case 397: 6394 #line 1577 "parser.yy" /* yacc.c:1646 */ 6395 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6396 #line 6397 "Parser/parser.cc" /* yacc.c:1646 */ 7181 7182 /* Line 1806 of yacc.c */ 7183 #line 1578 "parser.yy" 7184 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 6397 7185 break; 6398 7186 6399 7187 case 398: 6400 #line 1582 "parser.yy" /* yacc.c:1646 */ 7188 7189 /* Line 1806 of yacc.c */ 7190 #line 1583 "parser.yy" 6401 7191 { (yyval.en) = 0; } 6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646 */6403 7192 break; 6404 7193 6405 7194 case 399: 6406 #line 1584 "parser.yy" /* yacc.c:1646 */ 6407 { (yyval.en) = (yyvsp[0].en); } 6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646 */ 7195 7196 /* Line 1806 of yacc.c */ 7197 #line 1585 "parser.yy" 7198 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6409 7199 break; 6410 7200 6411 7201 case 400: 6412 #line 1591 "parser.yy" /* yacc.c:1646 */ 7202 7203 /* Line 1806 of yacc.c */ 7204 #line 1592 "parser.yy" 6413 7205 { (yyval.decl) = 0; } 6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646 */6415 7206 break; 6416 7207 6417 7208 case 404: 6418 #line 1599 "parser.yy" /* yacc.c:1646 */ 6419 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6420 #line 6421 "Parser/parser.cc" /* yacc.c:1646 */ 7209 7210 /* Line 1806 of yacc.c */ 7211 #line 1600 "parser.yy" 7212 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6421 7213 break; 6422 7214 6423 7215 case 405: 6424 #line 1601 "parser.yy" /* yacc.c:1646 */ 6425 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 7216 7217 /* Line 1806 of yacc.c */ 7218 #line 1602 "parser.yy" 7219 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6427 7220 break; 6428 7221 6429 7222 case 406: 6430 #line 1603 "parser.yy" /* yacc.c:1646 */ 6431 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646 */ 7223 7224 /* Line 1806 of yacc.c */ 7225 #line 1604 "parser.yy" 7226 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6433 7227 break; 6434 7228 6435 7229 case 408: 6436 #line 1611 "parser.yy" /* yacc.c:1646 */ 6437 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646 */ 7230 7231 /* Line 1806 of yacc.c */ 7232 #line 1612 "parser.yy" 7233 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6439 7234 break; 6440 7235 6441 7236 case 409: 6442 #line 1613 "parser.yy" /* yacc.c:1646 */ 6443 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6444 #line 6445 "Parser/parser.cc" /* yacc.c:1646 */ 7237 7238 /* Line 1806 of yacc.c */ 7239 #line 1614 "parser.yy" 7240 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6445 7241 break; 6446 7242 6447 7243 case 410: 6448 #line 1615 "parser.yy" /* yacc.c:1646 */ 6449 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6450 #line 6451 "Parser/parser.cc" /* yacc.c:1646 */ 7244 7245 /* Line 1806 of yacc.c */ 7246 #line 1616 "parser.yy" 7247 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 6451 7248 break; 6452 7249 6453 7250 case 412: 6454 #line 1621 "parser.yy" /* yacc.c:1646 */ 6455 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6456 #line 6457 "Parser/parser.cc" /* yacc.c:1646 */ 7251 7252 /* Line 1806 of yacc.c */ 7253 #line 1622 "parser.yy" 7254 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6457 7255 break; 6458 7256 6459 7257 case 413: 6460 #line 1626 "parser.yy" /* yacc.c:1646 */ 7258 7259 /* Line 1806 of yacc.c */ 7260 #line 1627 "parser.yy" 6461 7261 { (yyval.decl) = 0; } 6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646 */6463 7262 break; 6464 7263 6465 7264 case 416: 6466 #line 1633 "parser.yy" /* yacc.c:1646 */ 6467 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646 */ 7265 7266 /* Line 1806 of yacc.c */ 7267 #line 1634 "parser.yy" 7268 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6469 7269 break; 6470 7270 6471 7271 case 419: 6472 #line 1640 "parser.yy" /* yacc.c:1646 */ 6473 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646 */ 7272 7273 /* Line 1806 of yacc.c */ 7274 #line 1641 "parser.yy" 7275 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6475 7276 break; 6476 7277 6477 7278 case 420: 6478 #line 1642 "parser.yy" /* yacc.c:1646 */ 6479 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6480 #line 6481 "Parser/parser.cc" /* yacc.c:1646 */ 7279 7280 /* Line 1806 of yacc.c */ 7281 #line 1643 "parser.yy" 7282 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6481 7283 break; 6482 7284 6483 7285 case 422: 6484 #line 1651 "parser.yy" /* yacc.c:1646 */ 6485 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646 */ 7286 7287 /* Line 1806 of yacc.c */ 7288 #line 1652 "parser.yy" 7289 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6487 7290 break; 6488 7291 6489 7292 case 423: 6490 #line 1654 "parser.yy" /* yacc.c:1646 */ 6491 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6492 #line 6493 "Parser/parser.cc" /* yacc.c:1646 */ 7293 7294 /* Line 1806 of yacc.c */ 7295 #line 1655 "parser.yy" 7296 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6493 7297 break; 6494 7298 6495 7299 case 424: 6496 #line 1656 "parser.yy" /* yacc.c:1646 */ 6497 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6498 #line 6499 "Parser/parser.cc" /* yacc.c:1646 */ 7300 7301 /* Line 1806 of yacc.c */ 7302 #line 1657 "parser.yy" 7303 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 6499 7304 break; 6500 7305 6501 7306 case 429: 6502 #line 1666 "parser.yy" /* yacc.c:1646 */ 6503 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6504 #line 6505 "Parser/parser.cc" /* yacc.c:1646 */ 7307 7308 /* Line 1806 of yacc.c */ 7309 #line 1667 "parser.yy" 7310 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6505 7311 break; 6506 7312 6507 7313 case 431: 6508 #line 1672 "parser.yy" /* yacc.c:1646 */ 7314 7315 /* Line 1806 of yacc.c */ 7316 #line 1673 "parser.yy" 6509 7317 { 6510 7318 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6511 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7319 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6512 7320 } 6513 #line 6514 "Parser/parser.cc" /* yacc.c:1646 */6514 7321 break; 6515 7322 6516 7323 case 432: 6517 #line 1677 "parser.yy" /* yacc.c:1646 */ 7324 7325 /* Line 1806 of yacc.c */ 7326 #line 1678 "parser.yy" 6518 7327 { 6519 7328 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6520 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7329 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6521 7330 } 6522 #line 6523 "Parser/parser.cc" /* yacc.c:1646 */6523 7331 break; 6524 7332 6525 7333 case 434: 6526 #line 1686 "parser.yy" /* yacc.c:1646 */ 6527 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6528 #line 6529 "Parser/parser.cc" /* yacc.c:1646 */ 7334 7335 /* Line 1806 of yacc.c */ 7336 #line 1687 "parser.yy" 7337 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6529 7338 break; 6530 7339 6531 7340 case 435: 6532 #line 1695 "parser.yy" /* yacc.c:1646 */ 6533 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6534 #line 6535 "Parser/parser.cc" /* yacc.c:1646 */ 7341 7342 /* Line 1806 of yacc.c */ 7343 #line 1696 "parser.yy" 7344 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 6535 7345 break; 6536 7346 6537 7347 case 436: 6538 #line 1697 "parser.yy" /* yacc.c:1646 */ 6539 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6540 #line 6541 "Parser/parser.cc" /* yacc.c:1646 */ 7348 7349 /* Line 1806 of yacc.c */ 7350 #line 1698 "parser.yy" 7351 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 6541 7352 break; 6542 7353 6543 7354 case 448: 6544 #line 1722 "parser.yy" /* yacc.c:1646 */ 6545 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646 */ 7355 7356 /* Line 1806 of yacc.c */ 7357 #line 1723 "parser.yy" 7358 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6547 7359 break; 6548 7360 6549 7361 case 452: 6550 #line 1730 "parser.yy" /* yacc.c:1646 */ 6551 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6552 #line 6553 "Parser/parser.cc" /* yacc.c:1646 */ 7362 7363 /* Line 1806 of yacc.c */ 7364 #line 1731 "parser.yy" 7365 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6553 7366 break; 6554 7367 6555 7368 case 453: 6556 #line 1735 "parser.yy" /* yacc.c:1646 */ 7369 7370 /* Line 1806 of yacc.c */ 7371 #line 1736 "parser.yy" 6557 7372 { (yyval.in) = 0; } 6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646 */6559 7373 break; 6560 7374 6561 7375 case 454: 6562 #line 1737 "parser.yy" /* yacc.c:1646 */ 6563 { (yyval.in) = (yyvsp[0].in); } 6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646 */ 7376 7377 /* Line 1806 of yacc.c */ 7378 #line 1738 "parser.yy" 7379 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6565 7380 break; 6566 7381 6567 7382 case 455: 6568 #line 1739 "parser.yy" /* yacc.c:1646 */ 6569 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6570 #line 6571 "Parser/parser.cc" /* yacc.c:1646 */ 7383 7384 /* Line 1806 of yacc.c */ 7385 #line 1740 "parser.yy" 7386 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 6571 7387 break; 6572 7388 6573 7389 case 456: 6574 #line 1743 "parser.yy" /* yacc.c:1646 */ 6575 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6576 #line 6577 "Parser/parser.cc" /* yacc.c:1646 */ 7390 7391 /* Line 1806 of yacc.c */ 7392 #line 1744 "parser.yy" 7393 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 6577 7394 break; 6578 7395 6579 7396 case 457: 6580 #line 1744 "parser.yy" /* yacc.c:1646 */ 6581 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6582 #line 6583 "Parser/parser.cc" /* yacc.c:1646 */ 7397 7398 /* Line 1806 of yacc.c */ 7399 #line 1745 "parser.yy" 7400 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 6583 7401 break; 6584 7402 6585 7403 case 458: 6586 #line 1749 "parser.yy" /* yacc.c:1646 */ 7404 7405 /* Line 1806 of yacc.c */ 7406 #line 1750 "parser.yy" 6587 7407 { (yyval.in) = 0; } 6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646 */6589 7408 break; 6590 7409 6591 7410 case 460: 6592 #line 1751 "parser.yy" /* yacc.c:1646 */ 6593 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6594 #line 6595 "Parser/parser.cc" /* yacc.c:1646 */ 7411 7412 /* Line 1806 of yacc.c */ 7413 #line 1752 "parser.yy" 7414 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 6595 7415 break; 6596 7416 6597 7417 case 461: 6598 #line 1752 "parser.yy" /* yacc.c:1646 */ 6599 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6600 #line 6601 "Parser/parser.cc" /* yacc.c:1646 */ 7418 7419 /* Line 1806 of yacc.c */ 7420 #line 1753 "parser.yy" 7421 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 6601 7422 break; 6602 7423 6603 7424 case 462: 6604 #line 1754 "parser.yy" /* yacc.c:1646 */ 6605 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6606 #line 6607 "Parser/parser.cc" /* yacc.c:1646 */ 7425 7426 /* Line 1806 of yacc.c */ 7427 #line 1755 "parser.yy" 7428 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 6607 7429 break; 6608 7430 6609 7431 case 464: 6610 #line 1770 "parser.yy" /* yacc.c:1646 */ 6611 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6612 #line 6613 "Parser/parser.cc" /* yacc.c:1646 */ 7432 7433 /* Line 1806 of yacc.c */ 7434 #line 1771 "parser.yy" 7435 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 6613 7436 break; 6614 7437 6615 7438 case 466: 6616 #line 1776 "parser.yy" /* yacc.c:1646 */ 6617 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6618 #line 6619 "Parser/parser.cc" /* yacc.c:1646 */ 7439 7440 /* Line 1806 of yacc.c */ 7441 #line 1777 "parser.yy" 7442 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 6619 7443 break; 6620 7444 6621 7445 case 467: 6622 #line 1782 "parser.yy" /* yacc.c:1646 */ 6623 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6624 #line 6625 "Parser/parser.cc" /* yacc.c:1646 */ 7446 7447 /* Line 1806 of yacc.c */ 7448 #line 1783 "parser.yy" 7449 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 6625 7450 break; 6626 7451 6627 7452 case 468: 6628 #line 1785 "parser.yy" /* yacc.c:1646 */ 6629 { (yyval.en) = (yyvsp[-2].en); } 6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 7453 7454 /* Line 1806 of yacc.c */ 7455 #line 1786 "parser.yy" 7456 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6631 7457 break; 6632 7458 6633 7459 case 469: 6634 #line 1787 "parser.yy" /* yacc.c:1646 */ 6635 { (yyval.en) = (yyvsp[-2].en); } 6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646 */ 7460 7461 /* Line 1806 of yacc.c */ 7462 #line 1788 "parser.yy" 7463 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6637 7464 break; 6638 7465 6639 7466 case 470: 6640 #line 1789 "parser.yy" /* yacc.c:1646 */ 6641 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6642 #line 6643 "Parser/parser.cc" /* yacc.c:1646 */ 7467 7468 /* Line 1806 of yacc.c */ 7469 #line 1790 "parser.yy" 7470 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 6643 7471 break; 6644 7472 6645 7473 case 471: 6646 #line 1791 "parser.yy" /* yacc.c:1646 */ 6647 { (yyval.en) = (yyvsp[-2].en); } 6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646 */ 7474 7475 /* Line 1806 of yacc.c */ 7476 #line 1792 "parser.yy" 7477 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6649 7478 break; 6650 7479 6651 7480 case 473: 6652 #line 1815 "parser.yy" /* yacc.c:1646 */ 6653 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6654 #line 6655 "Parser/parser.cc" /* yacc.c:1646 */ 7481 7482 /* Line 1806 of yacc.c */ 7483 #line 1816 "parser.yy" 7484 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6655 7485 break; 6656 7486 6657 7487 case 474: 6658 #line 1817 "parser.yy" /* yacc.c:1646 */ 6659 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6660 #line 6661 "Parser/parser.cc" /* yacc.c:1646 */ 7488 7489 /* Line 1806 of yacc.c */ 7490 #line 1818 "parser.yy" 7491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6661 7492 break; 6662 7493 6663 7494 case 475: 6664 #line 1819 "parser.yy" /* yacc.c:1646 */ 6665 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6666 #line 6667 "Parser/parser.cc" /* yacc.c:1646 */ 7495 7496 /* Line 1806 of yacc.c */ 7497 #line 1820 "parser.yy" 7498 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6667 7499 break; 6668 7500 6669 7501 case 477: 6670 #line 1825 "parser.yy" /* yacc.c:1646 */ 6671 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6672 #line 6673 "Parser/parser.cc" /* yacc.c:1646 */ 7502 7503 /* Line 1806 of yacc.c */ 7504 #line 1826 "parser.yy" 7505 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6673 7506 break; 6674 7507 6675 7508 case 478: 6676 #line 1827 "parser.yy" /* yacc.c:1646 */ 6677 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6678 #line 6679 "Parser/parser.cc" /* yacc.c:1646 */ 7509 7510 /* Line 1806 of yacc.c */ 7511 #line 1828 "parser.yy" 7512 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6679 7513 break; 6680 7514 6681 7515 case 479: 6682 #line 1832 "parser.yy" /* yacc.c:1646 */ 6683 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6684 #line 6685 "Parser/parser.cc" /* yacc.c:1646 */ 7516 7517 /* Line 1806 of yacc.c */ 7518 #line 1833 "parser.yy" 7519 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6685 7520 break; 6686 7521 6687 7522 case 481: 6688 #line 1838 "parser.yy" /* yacc.c:1646 */ 6689 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6690 #line 6691 "Parser/parser.cc" /* yacc.c:1646 */ 7523 7524 /* Line 1806 of yacc.c */ 7525 #line 1839 "parser.yy" 7526 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 6691 7527 break; 6692 7528 6693 7529 case 482: 6694 #line 1843 "parser.yy" /* yacc.c:1646 */ 6695 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6696 #line 6697 "Parser/parser.cc" /* yacc.c:1646 */ 7530 7531 /* Line 1806 of yacc.c */ 7532 #line 1844 "parser.yy" 7533 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 6697 7534 break; 6698 7535 6699 7536 case 483: 6700 #line 1845 "parser.yy" /* yacc.c:1646 */ 6701 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6702 #line 6703 "Parser/parser.cc" /* yacc.c:1646 */ 7537 7538 /* Line 1806 of yacc.c */ 7539 #line 1846 "parser.yy" 7540 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 6703 7541 break; 6704 7542 6705 7543 case 485: 6706 #line 1851 "parser.yy" /* yacc.c:1646 */ 6707 { (yyval.tclass) = DeclarationNode::Type; } 6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646 */ 7544 7545 /* Line 1806 of yacc.c */ 7546 #line 1852 "parser.yy" 7547 { (yyval.tclass) = DeclarationNode::Otype; } 6709 7548 break; 6710 7549 6711 7550 case 486: 6712 #line 1853 "parser.yy" /* yacc.c:1646 */ 7551 7552 /* Line 1806 of yacc.c */ 7553 #line 1854 "parser.yy" 6713 7554 { (yyval.tclass) = DeclarationNode::Ftype; } 6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646 */6715 7555 break; 6716 7556 6717 7557 case 487: 6718 #line 1855 "parser.yy" /* yacc.c:1646 */ 7558 7559 /* Line 1806 of yacc.c */ 7560 #line 1856 "parser.yy" 6719 7561 { (yyval.tclass) = DeclarationNode::Dtype; } 6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646 */6721 7562 break; 6722 7563 6723 7564 case 488: 6724 #line 1860 "parser.yy" /* yacc.c:1646 */ 7565 7566 /* Line 1806 of yacc.c */ 7567 #line 1861 "parser.yy" 6725 7568 { (yyval.decl) = 0; } 6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646 */6727 7569 break; 6728 7570 6729 7571 case 489: 6730 #line 1862 "parser.yy" /* yacc.c:1646 */ 6731 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6732 #line 6733 "Parser/parser.cc" /* yacc.c:1646 */ 7572 7573 /* Line 1806 of yacc.c */ 7574 #line 1863 "parser.yy" 7575 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6733 7576 break; 6734 7577 6735 7578 case 490: 6736 #line 1867 "parser.yy" /* yacc.c:1646 */ 7579 7580 /* Line 1806 of yacc.c */ 7581 #line 1868 "parser.yy" 6737 7582 { 6738 typedefTable.openTrait( *(yyvsp[ -3].tok) );6739 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[ -3].tok), (yyvsp[-1].en) );7583 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7584 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6740 7585 } 6741 #line 6742 "Parser/parser.cc" /* yacc.c:1646 */6742 7586 break; 6743 7587 6744 7588 case 491: 6745 #line 1872 "parser.yy" /* yacc.c:1646 */ 6746 { (yyval.decl) = (yyvsp[-1].decl); } 6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646 */ 7589 7590 /* Line 1806 of yacc.c */ 7591 #line 1873 "parser.yy" 7592 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6748 7593 break; 6749 7594 6750 7595 case 492: 6751 #line 1874 "parser.yy" /* yacc.c:1646 */ 7596 7597 /* Line 1806 of yacc.c */ 7598 #line 1875 "parser.yy" 6752 7599 { (yyval.decl) = 0; } 6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646 */6754 7600 break; 6755 7601 6756 7602 case 493: 6757 #line 1879 "parser.yy" /* yacc.c:1646 */ 6758 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6759 #line 6760 "Parser/parser.cc" /* yacc.c:1646 */ 7603 7604 /* Line 1806 of yacc.c */ 7605 #line 1880 "parser.yy" 7606 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 6760 7607 break; 6761 7608 6762 7609 case 495: 6763 #line 1882 "parser.yy" /* yacc.c:1646 */ 6764 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6765 #line 6766 "Parser/parser.cc" /* yacc.c:1646 */ 7610 7611 /* Line 1806 of yacc.c */ 7612 #line 1883 "parser.yy" 7613 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 6766 7614 break; 6767 7615 6768 7616 case 496: 6769 #line 1884 "parser.yy" /* yacc.c:1646 */ 6770 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6771 #line 6772 "Parser/parser.cc" /* yacc.c:1646 */ 7617 7618 /* Line 1806 of yacc.c */ 7619 #line 1885 "parser.yy" 7620 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 6772 7621 break; 6773 7622 6774 7623 case 497: 6775 #line 1889 "parser.yy" /* yacc.c:1646 */ 6776 { (yyval.decl) = (yyvsp[0].decl); } 6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646 */ 7624 7625 /* Line 1806 of yacc.c */ 7626 #line 1890 "parser.yy" 7627 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6778 7628 break; 6779 7629 6780 7630 case 498: 6781 #line 1891 "parser.yy" /* yacc.c:1646 */ 6782 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6783 #line 6784 "Parser/parser.cc" /* yacc.c:1646 */ 7631 7632 /* Line 1806 of yacc.c */ 7633 #line 1892 "parser.yy" 7634 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 6784 7635 break; 6785 7636 6786 7637 case 499: 6787 #line 1893 "parser.yy" /* yacc.c:1646 */ 6788 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6789 #line 6790 "Parser/parser.cc" /* yacc.c:1646 */ 7638 7639 /* Line 1806 of yacc.c */ 7640 #line 1894 "parser.yy" 7641 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 6790 7642 break; 6791 7643 6792 7644 case 500: 6793 #line 1898 "parser.yy" /* yacc.c:1646 */ 6794 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6795 #line 6796 "Parser/parser.cc" /* yacc.c:1646 */ 7645 7646 /* Line 1806 of yacc.c */ 7647 #line 1899 "parser.yy" 7648 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 6796 7649 break; 6797 7650 6798 7651 case 501: 6799 #line 1900 "parser.yy" /* yacc.c:1646 */ 6800 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6801 #line 6802 "Parser/parser.cc" /* yacc.c:1646 */ 7652 7653 /* Line 1806 of yacc.c */ 7654 #line 1901 "parser.yy" 7655 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 6802 7656 break; 6803 7657 6804 7658 case 502: 6805 #line 1905 "parser.yy" /* yacc.c:1646 */ 7659 7660 /* Line 1806 of yacc.c */ 7661 #line 1906 "parser.yy" 6806 7662 { 6807 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );6808 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ 0].tok), 0 );7663 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7664 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6809 7665 } 6810 #line 6811 "Parser/parser.cc" /* yacc.c:1646 */6811 7666 break; 6812 7667 6813 7668 case 503: 6814 #line 1910 "parser.yy" /* yacc.c:1646 */ 7669 7670 /* Line 1806 of yacc.c */ 7671 #line 1911 "parser.yy" 6815 7672 { 6816 typedefTable.addToEnclosingScope( *(yyvsp[ -5].tok), TypedefTable::TG );6817 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ -5].tok), (yyvsp[-2].decl) );7673 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7674 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6818 7675 } 6819 #line 6820 "Parser/parser.cc" /* yacc.c:1646 */6820 7676 break; 6821 7677 6822 7678 case 504: 6823 #line 1918 "parser.yy" /* yacc.c:1646 */ 7679 7680 /* Line 1806 of yacc.c */ 7681 #line 1919 "parser.yy" 6824 7682 { 6825 typedefTable.addToEnclosingScope( *(yyvsp[ -7].tok), TypedefTable::ID );6826 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -7].tok), (yyvsp[-4].decl), 0 );7683 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7684 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6827 7685 } 6828 #line 6829 "Parser/parser.cc" /* yacc.c:1646 */6829 7686 break; 6830 7687 6831 7688 case 505: 6832 #line 1923 "parser.yy" /* yacc.c:1646 */ 7689 7690 /* Line 1806 of yacc.c */ 7691 #line 1924 "parser.yy" 6833 7692 { 6834 typedefTable.enterTrait( *(yyvsp[ -6].tok) );7693 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6835 7694 typedefTable.enterScope(); 6836 7695 } 6837 #line 6838 "Parser/parser.cc" /* yacc.c:1646 */6838 7696 break; 6839 7697 6840 7698 case 506: 6841 #line 1928 "parser.yy" /* yacc.c:1646 */ 7699 7700 /* Line 1806 of yacc.c */ 7701 #line 1929 "parser.yy" 6842 7702 { 6843 7703 typedefTable.leaveTrait(); 6844 typedefTable.addToEnclosingScope( *(yyvsp[ -9].tok), TypedefTable::ID );6845 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );7704 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID ); 7705 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) ); 6846 7706 } 6847 #line 6848 "Parser/parser.cc" /* yacc.c:1646 */6848 7707 break; 6849 7708 6850 7709 case 508: 6851 #line 1938 "parser.yy" /* yacc.c:1646 */ 6852 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6853 #line 6854 "Parser/parser.cc" /* yacc.c:1646 */ 7710 7711 /* Line 1806 of yacc.c */ 7712 #line 1939 "parser.yy" 7713 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6854 7714 break; 6855 7715 6856 7716 case 511: 6857 #line 1948 "parser.yy" /* yacc.c:1646 */ 7717 7718 /* Line 1806 of yacc.c */ 7719 #line 1949 "parser.yy" 6858 7720 { 6859 7721 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6860 (yyval.decl) = (yyvsp[ 0].decl);7722 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6861 7723 } 6862 #line 6863 "Parser/parser.cc" /* yacc.c:1646 */6863 7724 break; 6864 7725 6865 7726 case 512: 6866 #line 1953 "parser.yy" /* yacc.c:1646 */ 7727 7728 /* Line 1806 of yacc.c */ 7729 #line 1954 "parser.yy" 6867 7730 { 6868 7731 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6869 (yyval.decl) = (yyvsp[ 0].decl);7732 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6870 7733 } 6871 #line 6872 "Parser/parser.cc" /* yacc.c:1646 */6872 7734 break; 6873 7735 6874 7736 case 513: 6875 #line 1958 "parser.yy" /* yacc.c:1646 */ 7737 7738 /* Line 1806 of yacc.c */ 7739 #line 1959 "parser.yy" 6876 7740 { 6877 typedefTable.addToEnclosingScope2( *(yyvsp[ 0].tok), TypedefTable::ID );6878 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );7741 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7742 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6879 7743 } 6880 #line 6881 "Parser/parser.cc" /* yacc.c:1646 */6881 7744 break; 6882 7745 6883 7746 case 514: 6884 #line 1966 "parser.yy" /* yacc.c:1646 */ 7747 7748 /* Line 1806 of yacc.c */ 7749 #line 1967 "parser.yy" 6885 7750 { 6886 7751 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6887 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );7752 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 6888 7753 } 6889 #line 6890 "Parser/parser.cc" /* yacc.c:1646 */6890 7754 break; 6891 7755 6892 7756 case 515: 6893 #line 1971 "parser.yy" /* yacc.c:1646 */ 7757 7758 /* Line 1806 of yacc.c */ 7759 #line 1972 "parser.yy" 6894 7760 { 6895 7761 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6896 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );7762 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) ); 6897 7763 } 6898 #line 6899 "Parser/parser.cc" /* yacc.c:1646 */6899 7764 break; 6900 7765 6901 7766 case 516: 6902 #line 1981 "parser.yy" /* yacc.c:1646 */ 7767 7768 /* Line 1806 of yacc.c */ 7769 #line 1982 "parser.yy" 6903 7770 {} 6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646 */6905 7771 break; 6906 7772 6907 7773 case 517: 6908 #line 1983 "parser.yy" /* yacc.c:1646 */ 6909 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6910 #line 6911 "Parser/parser.cc" /* yacc.c:1646 */ 7774 7775 /* Line 1806 of yacc.c */ 7776 #line 1984 "parser.yy" 7777 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 6911 7778 break; 6912 7779 6913 7780 case 519: 6914 #line 1989 "parser.yy" /* yacc.c:1646 */ 6915 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6916 #line 6917 "Parser/parser.cc" /* yacc.c:1646 */ 7781 7782 /* Line 1806 of yacc.c */ 7783 #line 1990 "parser.yy" 7784 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 6917 7785 break; 6918 7786 6919 7787 case 520: 6920 #line 1994 "parser.yy" /* yacc.c:1646 */ 7788 7789 /* Line 1806 of yacc.c */ 7790 #line 1995 "parser.yy" 6921 7791 { (yyval.decl) = 0; } 6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646 */6923 7792 break; 6924 7793 6925 7794 case 524: 6926 #line 2002 "parser.yy" /* yacc.c:1646 */ 7795 7796 /* Line 1806 of yacc.c */ 7797 #line 2003 "parser.yy" 6927 7798 {} 6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646 */6929 7799 break; 6930 7800 6931 7801 case 525: 6932 #line 2004 "parser.yy" /* yacc.c:1646 */ 7802 7803 /* Line 1806 of yacc.c */ 7804 #line 2005 "parser.yy" 6933 7805 { 6934 7806 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 6935 linkage = LinkageSpec::fromString( *(yyvsp[ 0].tok) );7807 linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) ); 6936 7808 } 6937 #line 6938 "Parser/parser.cc" /* yacc.c:1646 */6938 7809 break; 6939 7810 6940 7811 case 526: 6941 #line 2009 "parser.yy" /* yacc.c:1646 */ 7812 7813 /* Line 1806 of yacc.c */ 7814 #line 2010 "parser.yy" 6942 7815 { 6943 7816 linkage = linkageStack.top(); 6944 7817 linkageStack.pop(); 6945 (yyval.decl) = (yyvsp[ -1].decl);7818 (yyval.decl) = (yyvsp[(5) - (6)].decl); 6946 7819 } 6947 #line 6948 "Parser/parser.cc" /* yacc.c:1646 */6948 7820 break; 6949 7821 6950 7822 case 527: 6951 #line 2015 "parser.yy" /* yacc.c:1646 */ 7823 7824 /* Line 1806 of yacc.c */ 7825 #line 2016 "parser.yy" 6952 7826 { // mark all fields in list 6953 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7827 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6954 7828 iter->set_extension( true ); 6955 (yyval.decl) = (yyvsp[ 0].decl);7829 (yyval.decl) = (yyvsp[(2) - (2)].decl); 6956 7830 } 6957 #line 6958 "Parser/parser.cc" /* yacc.c:1646 */6958 7831 break; 6959 7832 6960 7833 case 529: 6961 #line 2030 "parser.yy" /* yacc.c:1646 */ 7834 7835 /* Line 1806 of yacc.c */ 7836 #line 2031 "parser.yy" 6962 7837 { 6963 7838 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6964 7839 typedefTable.leaveScope(); 6965 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7840 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6966 7841 } 6967 #line 6968 "Parser/parser.cc" /* yacc.c:1646 */6968 7842 break; 6969 7843 6970 7844 case 530: 6971 #line 2036 "parser.yy" /* yacc.c:1646 */ 7845 7846 /* Line 1806 of yacc.c */ 7847 #line 2037 "parser.yy" 6972 7848 { 6973 7849 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6974 7850 typedefTable.leaveScope(); 6975 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );7851 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) ); 6976 7852 } 6977 #line 6978 "Parser/parser.cc" /* yacc.c:1646 */6978 7853 break; 6979 7854 6980 7855 case 531: 6981 #line 2045 "parser.yy" /* yacc.c:1646 */ 7856 7857 /* Line 1806 of yacc.c */ 7858 #line 2046 "parser.yy" 6982 7859 { 6983 7860 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6984 7861 typedefTable.leaveScope(); 6985 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7862 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6986 7863 } 6987 #line 6988 "Parser/parser.cc" /* yacc.c:1646 */6988 7864 break; 6989 7865 6990 7866 case 532: 6991 #line 2051 "parser.yy" /* yacc.c:1646 */ 7867 7868 /* Line 1806 of yacc.c */ 7869 #line 2052 "parser.yy" 6992 7870 { 6993 7871 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6994 7872 typedefTable.leaveScope(); 6995 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );7873 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) ); 6996 7874 } 6997 #line 6998 "Parser/parser.cc" /* yacc.c:1646 */6998 7875 break; 6999 7876 7000 7877 case 533: 7001 #line 2057 "parser.yy" /* yacc.c:1646 */ 7878 7879 /* Line 1806 of yacc.c */ 7880 #line 2058 "parser.yy" 7002 7881 { 7003 7882 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7004 7883 typedefTable.leaveScope(); 7005 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7884 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7006 7885 } 7007 #line 7008 "Parser/parser.cc" /* yacc.c:1646 */7008 7886 break; 7009 7887 7010 7888 case 534: 7011 #line 2063 "parser.yy" /* yacc.c:1646 */ 7889 7890 /* Line 1806 of yacc.c */ 7891 #line 2064 "parser.yy" 7012 7892 { 7013 7893 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7014 7894 typedefTable.leaveScope(); 7015 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7895 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7016 7896 } 7017 #line 7018 "Parser/parser.cc" /* yacc.c:1646 */7018 7897 break; 7019 7898 7020 7899 case 535: 7021 #line 2069 "parser.yy" /* yacc.c:1646 */ 7900 7901 /* Line 1806 of yacc.c */ 7902 #line 2070 "parser.yy" 7022 7903 { 7023 7904 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7024 7905 typedefTable.leaveScope(); 7025 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );7906 (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); 7026 7907 } 7027 #line 7028 "Parser/parser.cc" /* yacc.c:1646 */7028 7908 break; 7029 7909 7030 7910 case 536: 7031 #line 2077 "parser.yy" /* yacc.c:1646 */ 7911 7912 /* Line 1806 of yacc.c */ 7913 #line 2078 "parser.yy" 7032 7914 { 7033 7915 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7034 7916 typedefTable.leaveScope(); 7035 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );7917 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) ); 7036 7918 } 7037 #line 7038 "Parser/parser.cc" /* yacc.c:1646 */7038 7919 break; 7039 7920 7040 7921 case 537: 7041 #line 2083 "parser.yy" /* yacc.c:1646 */ 7922 7923 /* Line 1806 of yacc.c */ 7924 #line 2084 "parser.yy" 7042 7925 { 7043 7926 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7044 7927 typedefTable.leaveScope(); 7045 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7928 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7046 7929 } 7047 #line 7048 "Parser/parser.cc" /* yacc.c:1646 */7048 7930 break; 7049 7931 7050 7932 case 538: 7051 #line 2091 "parser.yy" /* yacc.c:1646 */ 7933 7934 /* Line 1806 of yacc.c */ 7935 #line 2092 "parser.yy" 7052 7936 { 7053 7937 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7054 7938 typedefTable.leaveScope(); 7055 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7939 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7056 7940 } 7057 #line 7058 "Parser/parser.cc" /* yacc.c:1646 */7058 7941 break; 7059 7942 7060 7943 case 539: 7061 #line 2097 "parser.yy" /* yacc.c:1646 */ 7944 7945 /* Line 1806 of yacc.c */ 7946 #line 2098 "parser.yy" 7062 7947 { 7063 7948 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7064 7949 typedefTable.leaveScope(); 7065 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );7950 (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) ); 7066 7951 } 7067 #line 7068 "Parser/parser.cc" /* yacc.c:1646 */7068 7952 break; 7069 7953 7070 7954 case 543: 7071 #line 2112 "parser.yy" /* yacc.c:1646 */ 7072 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7073 #line 7074 "Parser/parser.cc" /* yacc.c:1646 */ 7955 7956 /* Line 1806 of yacc.c */ 7957 #line 2113 "parser.yy" 7958 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7074 7959 break; 7075 7960 7076 7961 case 545: 7077 #line 2117 "parser.yy" /* yacc.c:1646 */ 7078 { delete (yyvsp[-2].str); } 7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646 */ 7962 7963 /* Line 1806 of yacc.c */ 7964 #line 2118 "parser.yy" 7965 { delete (yyvsp[(3) - (5)].str); } 7080 7966 break; 7081 7967 7082 7968 case 546: 7083 #line 2122 "parser.yy" /* yacc.c:1646 */ 7969 7970 /* Line 1806 of yacc.c */ 7971 #line 2123 "parser.yy" 7084 7972 { (yyval.decl) = 0; } 7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646 */7086 7973 break; 7087 7974 7088 7975 case 549: 7089 #line 2129 "parser.yy" /* yacc.c:1646 */ 7090 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7091 #line 7092 "Parser/parser.cc" /* yacc.c:1646 */ 7976 7977 /* Line 1806 of yacc.c */ 7978 #line 2130 "parser.yy" 7979 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7092 7980 break; 7093 7981 7094 7982 case 550: 7095 #line 2135 "parser.yy" /* yacc.c:1646 */ 7983 7984 /* Line 1806 of yacc.c */ 7985 #line 2136 "parser.yy" 7096 7986 { (yyval.decl) = 0; } 7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646 */7098 7987 break; 7099 7988 7100 7989 case 555: 7101 #line 2146 "parser.yy" /* yacc.c:1646 */ 7102 { delete (yyvsp[-1].en); } 7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646 */ 7990 7991 /* Line 1806 of yacc.c */ 7992 #line 2147 "parser.yy" 7993 { delete (yyvsp[(3) - (4)].en); } 7104 7994 break; 7105 7995 7106 7996 case 556: 7107 #line 2150 "parser.yy" /* yacc.c:1646 */ 7108 { delete (yyvsp[0].tok); } 7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646 */ 7997 7998 /* Line 1806 of yacc.c */ 7999 #line 2151 "parser.yy" 8000 { delete (yyvsp[(1) - (1)].tok); } 7110 8001 break; 7111 8002 7112 8003 case 557: 7113 #line 2151 "parser.yy" /* yacc.c:1646 */ 7114 { delete (yyvsp[0].decl); } 7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 8004 8005 /* Line 1806 of yacc.c */ 8006 #line 2152 "parser.yy" 8007 { delete (yyvsp[(1) - (1)].decl); } 7116 8008 break; 7117 8009 7118 8010 case 558: 7119 #line 2152 "parser.yy" /* yacc.c:1646 */ 7120 { delete (yyvsp[0].decl); } 7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646 */ 8011 8012 /* Line 1806 of yacc.c */ 8013 #line 2153 "parser.yy" 8014 { delete (yyvsp[(1) - (1)].decl); } 7122 8015 break; 7123 8016 7124 8017 case 559: 7125 #line 2153 "parser.yy" /* yacc.c:1646 */ 7126 { delete (yyvsp[0].decl); } 7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646 */ 8018 8019 /* Line 1806 of yacc.c */ 8020 #line 2154 "parser.yy" 8021 { delete (yyvsp[(1) - (1)].decl); } 7128 8022 break; 7129 8023 7130 8024 case 560: 7131 #line 2188 "parser.yy" /* yacc.c:1646 */ 7132 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646 */ 8025 8026 /* Line 1806 of yacc.c */ 8027 #line 2189 "parser.yy" 8028 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7134 8029 break; 7135 8030 7136 8031 case 562: 7137 #line 2191 "parser.yy" /* yacc.c:1646 */ 7138 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7139 #line 7140 "Parser/parser.cc" /* yacc.c:1646 */ 8032 8033 /* Line 1806 of yacc.c */ 8034 #line 2192 "parser.yy" 8035 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7140 8036 break; 7141 8037 7142 8038 case 563: 7143 #line 2193 "parser.yy" /* yacc.c:1646 */ 7144 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7145 #line 7146 "Parser/parser.cc" /* yacc.c:1646 */ 8039 8040 /* Line 1806 of yacc.c */ 8041 #line 2194 "parser.yy" 8042 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7146 8043 break; 7147 8044 7148 8045 case 564: 7149 #line 2198 "parser.yy" /* yacc.c:1646 */ 8046 8047 /* Line 1806 of yacc.c */ 8048 #line 2199 "parser.yy" 7150 8049 { 7151 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7152 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8050 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8051 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7153 8052 } 7154 #line 7155 "Parser/parser.cc" /* yacc.c:1646 */7155 8053 break; 7156 8054 7157 8055 case 565: 7158 #line 2203 "parser.yy" /* yacc.c:1646 */ 7159 { (yyval.decl) = (yyvsp[-1].decl); } 7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646 */ 8056 8057 /* Line 1806 of yacc.c */ 8058 #line 2204 "parser.yy" 8059 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7161 8060 break; 7162 8061 7163 8062 case 566: 7164 #line 2208 "parser.yy" /* yacc.c:1646 */ 7165 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7166 #line 7167 "Parser/parser.cc" /* yacc.c:1646 */ 8063 8064 /* Line 1806 of yacc.c */ 8065 #line 2209 "parser.yy" 8066 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7167 8067 break; 7168 8068 7169 8069 case 567: 7170 #line 2210 "parser.yy" /* yacc.c:1646 */ 7171 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7172 #line 7173 "Parser/parser.cc" /* yacc.c:1646 */ 8070 8071 /* Line 1806 of yacc.c */ 8072 #line 2211 "parser.yy" 8073 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7173 8074 break; 7174 8075 7175 8076 case 568: 7176 #line 2212 "parser.yy" /* yacc.c:1646 */ 7177 { (yyval.decl) = (yyvsp[-1].decl); } 7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646 */ 8077 8078 /* Line 1806 of yacc.c */ 8079 #line 2213 "parser.yy" 8080 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7179 8081 break; 7180 8082 7181 8083 case 569: 7182 #line 2217 "parser.yy" /* yacc.c:1646 */ 7183 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7184 #line 7185 "Parser/parser.cc" /* yacc.c:1646 */ 8084 8085 /* Line 1806 of yacc.c */ 8086 #line 2218 "parser.yy" 8087 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7185 8088 break; 7186 8089 7187 8090 case 570: 7188 #line 2219 "parser.yy" /* yacc.c:1646 */ 7189 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646 */ 8091 8092 /* Line 1806 of yacc.c */ 8093 #line 2220 "parser.yy" 8094 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7191 8095 break; 7192 8096 7193 8097 case 571: 7194 #line 2221 "parser.yy" /* yacc.c:1646 */ 7195 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7196 #line 7197 "Parser/parser.cc" /* yacc.c:1646 */ 8098 8099 /* Line 1806 of yacc.c */ 8100 #line 2222 "parser.yy" 8101 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7197 8102 break; 7198 8103 7199 8104 case 572: 7200 #line 2223 "parser.yy" /* yacc.c:1646 */ 7201 { (yyval.decl) = (yyvsp[-1].decl); } 7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646 */ 8105 8106 /* Line 1806 of yacc.c */ 8107 #line 2224 "parser.yy" 8108 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7203 8109 break; 7204 8110 7205 8111 case 573: 7206 #line 2228 "parser.yy" /* yacc.c:1646 */ 7207 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7208 #line 7209 "Parser/parser.cc" /* yacc.c:1646 */ 8112 8113 /* Line 1806 of yacc.c */ 8114 #line 2229 "parser.yy" 8115 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7209 8116 break; 7210 8117 7211 8118 case 574: 7212 #line 2230 "parser.yy" /* yacc.c:1646 */ 7213 { (yyval.decl) = (yyvsp[-1].decl); } 7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646 */ 8119 8120 /* Line 1806 of yacc.c */ 8121 #line 2231 "parser.yy" 8122 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7215 8123 break; 7216 8124 7217 8125 case 575: 7218 #line 2239 "parser.yy" /* yacc.c:1646 */ 7219 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646 */ 8126 8127 /* Line 1806 of yacc.c */ 8128 #line 2240 "parser.yy" 8129 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7221 8130 break; 7222 8131 7223 8132 case 577: 7224 #line 2242 "parser.yy" /* yacc.c:1646 */ 7225 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7226 #line 7227 "Parser/parser.cc" /* yacc.c:1646 */ 8133 8134 /* Line 1806 of yacc.c */ 8135 #line 2243 "parser.yy" 8136 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7227 8137 break; 7228 8138 7229 8139 case 578: 7230 #line 2247 "parser.yy" /* yacc.c:1646 */ 7231 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7232 #line 7233 "Parser/parser.cc" /* yacc.c:1646 */ 8140 8141 /* Line 1806 of yacc.c */ 8142 #line 2248 "parser.yy" 8143 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7233 8144 break; 7234 8145 7235 8146 case 579: 7236 #line 2249 "parser.yy" /* yacc.c:1646 */ 7237 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7238 #line 7239 "Parser/parser.cc" /* yacc.c:1646 */ 8147 8148 /* Line 1806 of yacc.c */ 8149 #line 2250 "parser.yy" 8150 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7239 8151 break; 7240 8152 7241 8153 case 580: 7242 #line 2251 "parser.yy" /* yacc.c:1646 */ 7243 { (yyval.decl) = (yyvsp[-1].decl); } 7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646 */ 8154 8155 /* Line 1806 of yacc.c */ 8156 #line 2252 "parser.yy" 8157 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7245 8158 break; 7246 8159 7247 8160 case 581: 7248 #line 2256 "parser.yy" /* yacc.c:1646 */ 7249 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7250 #line 7251 "Parser/parser.cc" /* yacc.c:1646 */ 8161 8162 /* Line 1806 of yacc.c */ 8163 #line 2257 "parser.yy" 8164 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7251 8165 break; 7252 8166 7253 8167 case 582: 7254 #line 2258 "parser.yy" /* yacc.c:1646 */ 7255 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7256 #line 7257 "Parser/parser.cc" /* yacc.c:1646 */ 8168 8169 /* Line 1806 of yacc.c */ 8170 #line 2259 "parser.yy" 8171 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7257 8172 break; 7258 8173 7259 8174 case 583: 7260 #line 2260 "parser.yy" /* yacc.c:1646 */ 7261 { (yyval.decl) = (yyvsp[-1].decl); } 7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646 */ 8175 8176 /* Line 1806 of yacc.c */ 8177 #line 2261 "parser.yy" 8178 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7263 8179 break; 7264 8180 7265 8181 case 584: 7266 #line 2265 "parser.yy" /* yacc.c:1646 */ 7267 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646 */ 8182 8183 /* Line 1806 of yacc.c */ 8184 #line 2266 "parser.yy" 8185 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7269 8186 break; 7270 8187 7271 8188 case 585: 7272 #line 2267 "parser.yy" /* yacc.c:1646 */ 7273 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7274 #line 7275 "Parser/parser.cc" /* yacc.c:1646 */ 8189 8190 /* Line 1806 of yacc.c */ 8191 #line 2268 "parser.yy" 8192 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7275 8193 break; 7276 8194 7277 8195 case 586: 7278 #line 2269 "parser.yy" /* yacc.c:1646 */ 7279 { (yyval.decl) = (yyvsp[-1].decl); } 7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646 */ 8196 8197 /* Line 1806 of yacc.c */ 8198 #line 2270 "parser.yy" 8199 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7281 8200 break; 7282 8201 7283 8202 case 590: 7284 #line 2284 "parser.yy" /* yacc.c:1646 */ 7285 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7286 #line 7287 "Parser/parser.cc" /* yacc.c:1646 */ 8203 8204 /* Line 1806 of yacc.c */ 8205 #line 2285 "parser.yy" 8206 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7287 8207 break; 7288 8208 7289 8209 case 591: 7290 #line 2286 "parser.yy" /* yacc.c:1646 */ 7291 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7292 #line 7293 "Parser/parser.cc" /* yacc.c:1646 */ 8210 8211 /* Line 1806 of yacc.c */ 8212 #line 2287 "parser.yy" 8213 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7293 8214 break; 7294 8215 7295 8216 case 592: 7296 #line 2288 "parser.yy" /* yacc.c:1646 */ 7297 { (yyval.decl) = (yyvsp[-1].decl); } 7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646 */ 8217 8218 /* Line 1806 of yacc.c */ 8219 #line 2289 "parser.yy" 8220 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7299 8221 break; 7300 8222 7301 8223 case 593: 7302 #line 2293 "parser.yy" /* yacc.c:1646 */ 7303 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7304 #line 7305 "Parser/parser.cc" /* yacc.c:1646 */ 8224 8225 /* Line 1806 of yacc.c */ 8226 #line 2294 "parser.yy" 8227 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7305 8228 break; 7306 8229 7307 8230 case 594: 7308 #line 2295 "parser.yy" /* yacc.c:1646 */ 7309 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7310 #line 7311 "Parser/parser.cc" /* yacc.c:1646 */ 8231 8232 /* Line 1806 of yacc.c */ 8233 #line 2296 "parser.yy" 8234 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7311 8235 break; 7312 8236 7313 8237 case 595: 7314 #line 2297 "parser.yy" /* yacc.c:1646 */ 7315 { (yyval.decl) = (yyvsp[-1].decl); } 7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646 */ 8238 8239 /* Line 1806 of yacc.c */ 8240 #line 2298 "parser.yy" 8241 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7317 8242 break; 7318 8243 7319 8244 case 596: 7320 #line 2302 "parser.yy" /* yacc.c:1646 */ 7321 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646 */ 8245 8246 /* Line 1806 of yacc.c */ 8247 #line 2303 "parser.yy" 8248 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7323 8249 break; 7324 8250 7325 8251 case 597: 7326 #line 2304 "parser.yy" /* yacc.c:1646 */ 7327 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7328 #line 7329 "Parser/parser.cc" /* yacc.c:1646 */ 8252 8253 /* Line 1806 of yacc.c */ 8254 #line 2305 "parser.yy" 8255 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7329 8256 break; 7330 8257 7331 8258 case 598: 7332 #line 2306 "parser.yy" /* yacc.c:1646 */ 7333 { (yyval.decl) = (yyvsp[-1].decl); } 7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646 */ 8259 8260 /* Line 1806 of yacc.c */ 8261 #line 2307 "parser.yy" 8262 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7335 8263 break; 7336 8264 7337 8265 case 599: 7338 #line 2321 "parser.yy" /* yacc.c:1646 */ 7339 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646 */ 8266 8267 /* Line 1806 of yacc.c */ 8268 #line 2322 "parser.yy" 8269 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7341 8270 break; 7342 8271 7343 8272 case 601: 7344 #line 2324 "parser.yy" /* yacc.c:1646 */ 7345 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7346 #line 7347 "Parser/parser.cc" /* yacc.c:1646 */ 8273 8274 /* Line 1806 of yacc.c */ 8275 #line 2325 "parser.yy" 8276 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7347 8277 break; 7348 8278 7349 8279 case 602: 7350 #line 2326 "parser.yy" /* yacc.c:1646 */ 7351 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7352 #line 7353 "Parser/parser.cc" /* yacc.c:1646 */ 8280 8281 /* Line 1806 of yacc.c */ 8282 #line 2327 "parser.yy" 8283 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7353 8284 break; 7354 8285 7355 8286 case 604: 7356 #line 2332 "parser.yy" /* yacc.c:1646 */ 7357 { (yyval.decl) = (yyvsp[-1].decl); } 7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646 */ 8287 8288 /* Line 1806 of yacc.c */ 8289 #line 2333 "parser.yy" 8290 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7359 8291 break; 7360 8292 7361 8293 case 605: 7362 #line 2337 "parser.yy" /* yacc.c:1646 */ 7363 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7364 #line 7365 "Parser/parser.cc" /* yacc.c:1646 */ 8294 8295 /* Line 1806 of yacc.c */ 8296 #line 2338 "parser.yy" 8297 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7365 8298 break; 7366 8299 7367 8300 case 606: 7368 #line 2339 "parser.yy" /* yacc.c:1646 */ 7369 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7370 #line 7371 "Parser/parser.cc" /* yacc.c:1646 */ 8301 8302 /* Line 1806 of yacc.c */ 8303 #line 2340 "parser.yy" 8304 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7371 8305 break; 7372 8306 7373 8307 case 607: 7374 #line 2341 "parser.yy" /* yacc.c:1646 */ 7375 { (yyval.decl) = (yyvsp[-1].decl); } 7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646 */ 8308 8309 /* Line 1806 of yacc.c */ 8310 #line 2342 "parser.yy" 8311 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7377 8312 break; 7378 8313 7379 8314 case 608: 7380 #line 2346 "parser.yy" /* yacc.c:1646 */ 7381 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7382 #line 7383 "Parser/parser.cc" /* yacc.c:1646 */ 8315 8316 /* Line 1806 of yacc.c */ 8317 #line 2347 "parser.yy" 8318 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7383 8319 break; 7384 8320 7385 8321 case 609: 7386 #line 2348 "parser.yy" /* yacc.c:1646 */ 7387 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646 */ 8322 8323 /* Line 1806 of yacc.c */ 8324 #line 2349 "parser.yy" 8325 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7389 8326 break; 7390 8327 7391 8328 case 610: 7392 #line 2350 "parser.yy" /* yacc.c:1646 */ 7393 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7394 #line 7395 "Parser/parser.cc" /* yacc.c:1646 */ 8329 8330 /* Line 1806 of yacc.c */ 8331 #line 2351 "parser.yy" 8332 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7395 8333 break; 7396 8334 7397 8335 case 611: 7398 #line 2352 "parser.yy" /* yacc.c:1646 */ 7399 { (yyval.decl) = (yyvsp[-1].decl); } 7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646 */ 8336 8337 /* Line 1806 of yacc.c */ 8338 #line 2353 "parser.yy" 8339 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7401 8340 break; 7402 8341 7403 8342 case 612: 7404 #line 2357 "parser.yy" /* yacc.c:1646 */ 7405 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7406 #line 7407 "Parser/parser.cc" /* yacc.c:1646 */ 8343 8344 /* Line 1806 of yacc.c */ 8345 #line 2358 "parser.yy" 8346 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7407 8347 break; 7408 8348 7409 8349 case 613: 7410 #line 2359 "parser.yy" /* yacc.c:1646 */ 7411 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7412 #line 7413 "Parser/parser.cc" /* yacc.c:1646 */ 8350 8351 /* Line 1806 of yacc.c */ 8352 #line 2360 "parser.yy" 8353 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7413 8354 break; 7414 8355 7415 8356 case 614: 7416 #line 2361 "parser.yy" /* yacc.c:1646 */ 7417 { (yyval.decl) = (yyvsp[-1].decl); } 7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646 */ 8357 8358 /* Line 1806 of yacc.c */ 8359 #line 2362 "parser.yy" 8360 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7419 8361 break; 7420 8362 7421 8363 case 615: 7422 #line 2371 "parser.yy" /* yacc.c:1646 */ 7423 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646 */ 8364 8365 /* Line 1806 of yacc.c */ 8366 #line 2372 "parser.yy" 8367 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7425 8368 break; 7426 8369 7427 8370 case 617: 7428 #line 2374 "parser.yy" /* yacc.c:1646 */ 7429 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7430 #line 7431 "Parser/parser.cc" /* yacc.c:1646 */ 8371 8372 /* Line 1806 of yacc.c */ 8373 #line 2375 "parser.yy" 8374 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7431 8375 break; 7432 8376 7433 8377 case 618: 7434 #line 2376 "parser.yy" /* yacc.c:1646 */ 7435 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7436 #line 7437 "Parser/parser.cc" /* yacc.c:1646 */ 8378 8379 /* Line 1806 of yacc.c */ 8380 #line 2377 "parser.yy" 8381 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7437 8382 break; 7438 8383 7439 8384 case 619: 7440 #line 2381 "parser.yy" /* yacc.c:1646 */ 7441 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7442 #line 7443 "Parser/parser.cc" /* yacc.c:1646 */ 8385 8386 /* Line 1806 of yacc.c */ 8387 #line 2382 "parser.yy" 8388 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7443 8389 break; 7444 8390 7445 8391 case 620: 7446 #line 2383 "parser.yy" /* yacc.c:1646 */ 7447 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7448 #line 7449 "Parser/parser.cc" /* yacc.c:1646 */ 8392 8393 /* Line 1806 of yacc.c */ 8394 #line 2384 "parser.yy" 8395 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7449 8396 break; 7450 8397 7451 8398 case 621: 7452 #line 2385 "parser.yy" /* yacc.c:1646 */ 7453 { (yyval.decl) = (yyvsp[-1].decl); } 7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646 */ 8399 8400 /* Line 1806 of yacc.c */ 8401 #line 2386 "parser.yy" 8402 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7455 8403 break; 7456 8404 7457 8405 case 622: 7458 #line 2390 "parser.yy" /* yacc.c:1646 */ 7459 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7460 #line 7461 "Parser/parser.cc" /* yacc.c:1646 */ 8406 8407 /* Line 1806 of yacc.c */ 8408 #line 2391 "parser.yy" 8409 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7461 8410 break; 7462 8411 7463 8412 case 623: 7464 #line 2392 "parser.yy" /* yacc.c:1646 */ 7465 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646 */ 8413 8414 /* Line 1806 of yacc.c */ 8415 #line 2393 "parser.yy" 8416 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7467 8417 break; 7468 8418 7469 8419 case 624: 7470 #line 2394 "parser.yy" /* yacc.c:1646 */ 7471 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7472 #line 7473 "Parser/parser.cc" /* yacc.c:1646 */ 8420 8421 /* Line 1806 of yacc.c */ 8422 #line 2395 "parser.yy" 8423 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7473 8424 break; 7474 8425 7475 8426 case 625: 7476 #line 2396 "parser.yy" /* yacc.c:1646 */ 7477 { (yyval.decl) = (yyvsp[-1].decl); } 7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646 */ 8427 8428 /* Line 1806 of yacc.c */ 8429 #line 2397 "parser.yy" 8430 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7479 8431 break; 7480 8432 7481 8433 case 626: 7482 #line 2401 "parser.yy" /* yacc.c:1646 */ 7483 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7484 #line 7485 "Parser/parser.cc" /* yacc.c:1646 */ 8434 8435 /* Line 1806 of yacc.c */ 8436 #line 2402 "parser.yy" 8437 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7485 8438 break; 7486 8439 7487 8440 case 627: 7488 #line 2403 "parser.yy" /* yacc.c:1646 */ 7489 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7490 #line 7491 "Parser/parser.cc" /* yacc.c:1646 */ 8441 8442 /* Line 1806 of yacc.c */ 8443 #line 2404 "parser.yy" 8444 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7491 8445 break; 7492 8446 7493 8447 case 628: 7494 #line 2405 "parser.yy" /* yacc.c:1646 */ 7495 { (yyval.decl) = (yyvsp[-1].decl); } 7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646 */ 8448 8449 /* Line 1806 of yacc.c */ 8450 #line 2406 "parser.yy" 8451 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7497 8452 break; 7498 8453 7499 8454 case 629: 7500 #line 2436 "parser.yy" /* yacc.c:1646 */ 7501 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646 */ 8455 8456 /* Line 1806 of yacc.c */ 8457 #line 2437 "parser.yy" 8458 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7503 8459 break; 7504 8460 7505 8461 case 631: 7506 #line 2439 "parser.yy" /* yacc.c:1646 */ 7507 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7508 #line 7509 "Parser/parser.cc" /* yacc.c:1646 */ 8462 8463 /* Line 1806 of yacc.c */ 8464 #line 2440 "parser.yy" 8465 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7509 8466 break; 7510 8467 7511 8468 case 632: 7512 #line 2441 "parser.yy" /* yacc.c:1646 */ 7513 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7514 #line 7515 "Parser/parser.cc" /* yacc.c:1646 */ 8469 8470 /* Line 1806 of yacc.c */ 8471 #line 2442 "parser.yy" 8472 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7515 8473 break; 7516 8474 7517 8475 case 633: 7518 #line 2446 "parser.yy" /* yacc.c:1646 */ 8476 8477 /* Line 1806 of yacc.c */ 8478 #line 2447 "parser.yy" 7519 8479 { 7520 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7521 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8480 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8481 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7522 8482 } 7523 #line 7524 "Parser/parser.cc" /* yacc.c:1646 */7524 8483 break; 7525 8484 7526 8485 case 634: 7527 #line 2451 "parser.yy" /* yacc.c:1646 */ 8486 8487 /* Line 1806 of yacc.c */ 8488 #line 2452 "parser.yy" 7528 8489 { 7529 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7530 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8490 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8491 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7531 8492 } 7532 #line 7533 "Parser/parser.cc" /* yacc.c:1646 */7533 8493 break; 7534 8494 7535 8495 case 635: 7536 #line 2459 "parser.yy" /* yacc.c:1646 */ 7537 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7538 #line 7539 "Parser/parser.cc" /* yacc.c:1646 */ 8496 8497 /* Line 1806 of yacc.c */ 8498 #line 2460 "parser.yy" 8499 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7539 8500 break; 7540 8501 7541 8502 case 636: 7542 #line 2461 "parser.yy" /* yacc.c:1646 */ 7543 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7544 #line 7545 "Parser/parser.cc" /* yacc.c:1646 */ 8503 8504 /* Line 1806 of yacc.c */ 8505 #line 2462 "parser.yy" 8506 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7545 8507 break; 7546 8508 7547 8509 case 637: 7548 #line 2463 "parser.yy" /* yacc.c:1646 */ 7549 { (yyval.decl) = (yyvsp[-1].decl); } 7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646 */ 8510 8511 /* Line 1806 of yacc.c */ 8512 #line 2464 "parser.yy" 8513 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7551 8514 break; 7552 8515 7553 8516 case 638: 7554 #line 2468 "parser.yy" /* yacc.c:1646 */ 7555 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7556 #line 7557 "Parser/parser.cc" /* yacc.c:1646 */ 8517 8518 /* Line 1806 of yacc.c */ 8519 #line 2469 "parser.yy" 8520 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7557 8521 break; 7558 8522 7559 8523 case 639: 7560 #line 2470 "parser.yy" /* yacc.c:1646 */ 7561 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7562 #line 7563 "Parser/parser.cc" /* yacc.c:1646 */ 8524 8525 /* Line 1806 of yacc.c */ 8526 #line 2471 "parser.yy" 8527 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7563 8528 break; 7564 8529 7565 8530 case 640: 7566 #line 2475 "parser.yy" /* yacc.c:1646 */ 7567 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7568 #line 7569 "Parser/parser.cc" /* yacc.c:1646 */ 8531 8532 /* Line 1806 of yacc.c */ 8533 #line 2476 "parser.yy" 8534 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7569 8535 break; 7570 8536 7571 8537 case 641: 7572 #line 2477 "parser.yy" /* yacc.c:1646 */ 7573 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7574 #line 7575 "Parser/parser.cc" /* yacc.c:1646 */ 8538 8539 /* Line 1806 of yacc.c */ 8540 #line 2478 "parser.yy" 8541 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7575 8542 break; 7576 8543 7577 8544 case 643: 7578 #line 2492 "parser.yy" /* yacc.c:1646 */ 7579 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646 */ 8545 8546 /* Line 1806 of yacc.c */ 8547 #line 2493 "parser.yy" 8548 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7581 8549 break; 7582 8550 7583 8551 case 644: 7584 #line 2494 "parser.yy" /* yacc.c:1646 */ 7585 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7586 #line 7587 "Parser/parser.cc" /* yacc.c:1646 */ 8552 8553 /* Line 1806 of yacc.c */ 8554 #line 2495 "parser.yy" 8555 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7587 8556 break; 7588 8557 7589 8558 case 645: 7590 #line 2499 "parser.yy" /* yacc.c:1646 */ 8559 8560 /* Line 1806 of yacc.c */ 8561 #line 2500 "parser.yy" 7591 8562 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646 */7593 8563 break; 7594 8564 7595 8565 case 646: 7596 #line 2501 "parser.yy" /* yacc.c:1646 */ 7597 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7598 #line 7599 "Parser/parser.cc" /* yacc.c:1646 */ 8566 8567 /* Line 1806 of yacc.c */ 8568 #line 2502 "parser.yy" 8569 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7599 8570 break; 7600 8571 7601 8572 case 647: 7602 #line 2503 "parser.yy" /* yacc.c:1646 */ 7603 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7604 #line 7605 "Parser/parser.cc" /* yacc.c:1646 */ 8573 8574 /* Line 1806 of yacc.c */ 8575 #line 2504 "parser.yy" 8576 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7605 8577 break; 7606 8578 7607 8579 case 648: 7608 #line 2505 "parser.yy" /* yacc.c:1646 */ 7609 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7610 #line 7611 "Parser/parser.cc" /* yacc.c:1646 */ 8580 8581 /* Line 1806 of yacc.c */ 8582 #line 2506 "parser.yy" 8583 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7611 8584 break; 7612 8585 7613 8586 case 649: 7614 #line 2507 "parser.yy" /* yacc.c:1646 */ 7615 { (yyval.decl) = (yyvsp[-1].decl); } 7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646 */ 8587 8588 /* Line 1806 of yacc.c */ 8589 #line 2508 "parser.yy" 8590 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7617 8591 break; 7618 8592 7619 8593 case 651: 7620 #line 2513 "parser.yy" /* yacc.c:1646 */ 7621 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646 */ 8594 8595 /* Line 1806 of yacc.c */ 8596 #line 2514 "parser.yy" 8597 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7623 8598 break; 7624 8599 7625 8600 case 652: 7626 #line 2515 "parser.yy" /* yacc.c:1646 */ 7627 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7628 #line 7629 "Parser/parser.cc" /* yacc.c:1646 */ 8601 8602 /* Line 1806 of yacc.c */ 8603 #line 2516 "parser.yy" 8604 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7629 8605 break; 7630 8606 7631 8607 case 653: 7632 #line 2517 "parser.yy" /* yacc.c:1646 */ 7633 { (yyval.decl) = (yyvsp[-1].decl); } 7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646 */ 8608 8609 /* Line 1806 of yacc.c */ 8610 #line 2518 "parser.yy" 8611 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7635 8612 break; 7636 8613 7637 8614 case 654: 7638 #line 2522 "parser.yy" /* yacc.c:1646 */ 7639 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7640 #line 7641 "Parser/parser.cc" /* yacc.c:1646 */ 8615 8616 /* Line 1806 of yacc.c */ 8617 #line 2523 "parser.yy" 8618 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 7641 8619 break; 7642 8620 7643 8621 case 655: 7644 #line 2524 "parser.yy" /* yacc.c:1646 */ 7645 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7646 #line 7647 "Parser/parser.cc" /* yacc.c:1646 */ 8622 8623 /* Line 1806 of yacc.c */ 8624 #line 2525 "parser.yy" 8625 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7647 8626 break; 7648 8627 7649 8628 case 656: 7650 #line 2526 "parser.yy" /* yacc.c:1646 */ 7651 { (yyval.decl) = (yyvsp[-1].decl); } 7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646 */ 8629 8630 /* Line 1806 of yacc.c */ 8631 #line 2527 "parser.yy" 8632 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7653 8633 break; 7654 8634 7655 8635 case 657: 7656 #line 2532 "parser.yy" /* yacc.c:1646 */ 8636 8637 /* Line 1806 of yacc.c */ 8638 #line 2533 "parser.yy" 7657 8639 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646 */7659 8640 break; 7660 8641 7661 8642 case 658: 7662 #line 2534 "parser.yy" /* yacc.c:1646 */ 7663 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7664 #line 7665 "Parser/parser.cc" /* yacc.c:1646 */ 8643 8644 /* Line 1806 of yacc.c */ 8645 #line 2535 "parser.yy" 8646 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 7665 8647 break; 7666 8648 7667 8649 case 660: 7668 #line 2540 "parser.yy" /* yacc.c:1646 */ 7669 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7670 #line 7671 "Parser/parser.cc" /* yacc.c:1646 */ 8650 8651 /* Line 1806 of yacc.c */ 8652 #line 2541 "parser.yy" 8653 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 7671 8654 break; 7672 8655 7673 8656 case 661: 7674 #line 2542 "parser.yy" /* yacc.c:1646 */ 8657 8658 /* Line 1806 of yacc.c */ 8659 #line 2543 "parser.yy" 7675 8660 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646 */7677 8661 break; 7678 8662 7679 8663 case 662: 7680 #line 2544 "parser.yy" /* yacc.c:1646 */ 7681 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7682 #line 7683 "Parser/parser.cc" /* yacc.c:1646 */ 8664 8665 /* Line 1806 of yacc.c */ 8666 #line 2545 "parser.yy" 8667 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 7683 8668 break; 7684 8669 7685 8670 case 663: 7686 #line 2546 "parser.yy" /* yacc.c:1646 */ 7687 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7688 #line 7689 "Parser/parser.cc" /* yacc.c:1646 */ 8671 8672 /* Line 1806 of yacc.c */ 8673 #line 2547 "parser.yy" 8674 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7689 8675 break; 7690 8676 7691 8677 case 665: 7692 #line 2561 "parser.yy" /* yacc.c:1646 */ 7693 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646 */ 8678 8679 /* Line 1806 of yacc.c */ 8680 #line 2562 "parser.yy" 8681 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7695 8682 break; 7696 8683 7697 8684 case 666: 7698 #line 2563 "parser.yy" /* yacc.c:1646 */ 7699 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7700 #line 7701 "Parser/parser.cc" /* yacc.c:1646 */ 8685 8686 /* Line 1806 of yacc.c */ 8687 #line 2564 "parser.yy" 8688 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7701 8689 break; 7702 8690 7703 8691 case 667: 7704 #line 2568 "parser.yy" /* yacc.c:1646 */ 8692 8693 /* Line 1806 of yacc.c */ 8694 #line 2569 "parser.yy" 7705 8695 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646 */7707 8696 break; 7708 8697 7709 8698 case 668: 7710 #line 2570 "parser.yy" /* yacc.c:1646 */ 7711 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7712 #line 7713 "Parser/parser.cc" /* yacc.c:1646 */ 8699 8700 /* Line 1806 of yacc.c */ 8701 #line 2571 "parser.yy" 8702 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7713 8703 break; 7714 8704 7715 8705 case 669: 7716 #line 2572 "parser.yy" /* yacc.c:1646 */ 7717 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7718 #line 7719 "Parser/parser.cc" /* yacc.c:1646 */ 8706 8707 /* Line 1806 of yacc.c */ 8708 #line 2573 "parser.yy" 8709 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7719 8710 break; 7720 8711 7721 8712 case 670: 7722 #line 2574 "parser.yy" /* yacc.c:1646 */ 7723 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7724 #line 7725 "Parser/parser.cc" /* yacc.c:1646 */ 8713 8714 /* Line 1806 of yacc.c */ 8715 #line 2575 "parser.yy" 8716 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7725 8717 break; 7726 8718 7727 8719 case 671: 7728 #line 2576 "parser.yy" /* yacc.c:1646 */ 7729 { (yyval.decl) = (yyvsp[-1].decl); } 7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646 */ 8720 8721 /* Line 1806 of yacc.c */ 8722 #line 2577 "parser.yy" 8723 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7731 8724 break; 7732 8725 7733 8726 case 673: 7734 #line 2582 "parser.yy" /* yacc.c:1646 */ 7735 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646 */ 8727 8728 /* Line 1806 of yacc.c */ 8729 #line 2583 "parser.yy" 8730 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7737 8731 break; 7738 8732 7739 8733 case 674: 7740 #line 2584 "parser.yy" /* yacc.c:1646 */ 7741 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7742 #line 7743 "Parser/parser.cc" /* yacc.c:1646 */ 8734 8735 /* Line 1806 of yacc.c */ 8736 #line 2585 "parser.yy" 8737 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7743 8738 break; 7744 8739 7745 8740 case 675: 7746 #line 2586 "parser.yy" /* yacc.c:1646 */ 7747 { (yyval.decl) = (yyvsp[-1].decl); } 7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646 */ 8741 8742 /* Line 1806 of yacc.c */ 8743 #line 2587 "parser.yy" 8744 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7749 8745 break; 7750 8746 7751 8747 case 676: 7752 #line 2591 "parser.yy" /* yacc.c:1646 */ 7753 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7754 #line 7755 "Parser/parser.cc" /* yacc.c:1646 */ 8748 8749 /* Line 1806 of yacc.c */ 8750 #line 2592 "parser.yy" 8751 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 7755 8752 break; 7756 8753 7757 8754 case 677: 7758 #line 2593 "parser.yy" /* yacc.c:1646 */ 7759 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7760 #line 7761 "Parser/parser.cc" /* yacc.c:1646 */ 8755 8756 /* Line 1806 of yacc.c */ 8757 #line 2594 "parser.yy" 8758 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7761 8759 break; 7762 8760 7763 8761 case 678: 7764 #line 2595 "parser.yy" /* yacc.c:1646 */ 7765 { (yyval.decl) = (yyvsp[-1].decl); } 7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646 */ 8762 8763 /* Line 1806 of yacc.c */ 8764 #line 2596 "parser.yy" 8765 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7767 8766 break; 7768 8767 7769 8768 case 680: 7770 #line 2602 "parser.yy" /* yacc.c:1646 */ 7771 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7772 #line 7773 "Parser/parser.cc" /* yacc.c:1646 */ 8769 8770 /* Line 1806 of yacc.c */ 8771 #line 2603 "parser.yy" 8772 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7773 8773 break; 7774 8774 7775 8775 case 682: 7776 #line 2613 "parser.yy" /* yacc.c:1646 */ 8776 8777 /* Line 1806 of yacc.c */ 8778 #line 2614 "parser.yy" 7777 8779 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646 */7779 8780 break; 7780 8781 7781 8782 case 683: 7782 #line 2616 "parser.yy" /* yacc.c:1646 */ 7783 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7784 #line 7785 "Parser/parser.cc" /* yacc.c:1646 */ 8783 8784 /* Line 1806 of yacc.c */ 8785 #line 2617 "parser.yy" 8786 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7785 8787 break; 7786 8788 7787 8789 case 684: 7788 #line 2618 "parser.yy" /* yacc.c:1646 */ 7789 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7790 #line 7791 "Parser/parser.cc" /* yacc.c:1646 */ 8790 8791 /* Line 1806 of yacc.c */ 8792 #line 2619 "parser.yy" 8793 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 7791 8794 break; 7792 8795 7793 8796 case 685: 7794 #line 2621 "parser.yy" /* yacc.c:1646 */ 7795 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7796 #line 7797 "Parser/parser.cc" /* yacc.c:1646 */ 8797 8798 /* Line 1806 of yacc.c */ 8799 #line 2622 "parser.yy" 8800 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7797 8801 break; 7798 8802 7799 8803 case 686: 7800 #line 2623 "parser.yy" /* yacc.c:1646 */ 7801 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7802 #line 7803 "Parser/parser.cc" /* yacc.c:1646 */ 8804 8805 /* Line 1806 of yacc.c */ 8806 #line 2624 "parser.yy" 8807 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 7803 8808 break; 7804 8809 7805 8810 case 687: 7806 #line 2625 "parser.yy" /* yacc.c:1646 */ 7807 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7808 #line 7809 "Parser/parser.cc" /* yacc.c:1646 */ 8811 8812 /* Line 1806 of yacc.c */ 8813 #line 2626 "parser.yy" 8814 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 7809 8815 break; 7810 8816 7811 8817 case 689: 7812 #line 2639 "parser.yy" /* yacc.c:1646 */ 7813 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646 */ 8818 8819 /* Line 1806 of yacc.c */ 8820 #line 2640 "parser.yy" 8821 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7815 8822 break; 7816 8823 7817 8824 case 690: 7818 #line 2641 "parser.yy" /* yacc.c:1646 */ 7819 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7820 #line 7821 "Parser/parser.cc" /* yacc.c:1646 */ 8825 8826 /* Line 1806 of yacc.c */ 8827 #line 2642 "parser.yy" 8828 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7821 8829 break; 7822 8830 7823 8831 case 691: 7824 #line 2646 "parser.yy" /* yacc.c:1646 */ 8832 8833 /* Line 1806 of yacc.c */ 8834 #line 2647 "parser.yy" 7825 8835 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646 */7827 8836 break; 7828 8837 7829 8838 case 692: 7830 #line 2648 "parser.yy" /* yacc.c:1646 */ 7831 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7832 #line 7833 "Parser/parser.cc" /* yacc.c:1646 */ 8839 8840 /* Line 1806 of yacc.c */ 8841 #line 2649 "parser.yy" 8842 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7833 8843 break; 7834 8844 7835 8845 case 693: 7836 #line 2650 "parser.yy" /* yacc.c:1646 */ 7837 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7838 #line 7839 "Parser/parser.cc" /* yacc.c:1646 */ 8846 8847 /* Line 1806 of yacc.c */ 8848 #line 2651 "parser.yy" 8849 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7839 8850 break; 7840 8851 7841 8852 case 694: 7842 #line 2652 "parser.yy" /* yacc.c:1646 */ 7843 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7844 #line 7845 "Parser/parser.cc" /* yacc.c:1646 */ 8853 8854 /* Line 1806 of yacc.c */ 8855 #line 2653 "parser.yy" 8856 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7845 8857 break; 7846 8858 7847 8859 case 695: 7848 #line 2654 "parser.yy" /* yacc.c:1646 */ 7849 { (yyval.decl) = (yyvsp[-1].decl); } 7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646 */ 8860 8861 /* Line 1806 of yacc.c */ 8862 #line 2655 "parser.yy" 8863 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7851 8864 break; 7852 8865 7853 8866 case 697: 7854 #line 2660 "parser.yy" /* yacc.c:1646 */ 7855 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646 */ 8867 8868 /* Line 1806 of yacc.c */ 8869 #line 2661 "parser.yy" 8870 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7857 8871 break; 7858 8872 7859 8873 case 698: 7860 #line 2662 "parser.yy" /* yacc.c:1646 */ 7861 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7862 #line 7863 "Parser/parser.cc" /* yacc.c:1646 */ 8874 8875 /* Line 1806 of yacc.c */ 8876 #line 2663 "parser.yy" 8877 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7863 8878 break; 7864 8879 7865 8880 case 699: 7866 #line 2664 "parser.yy" /* yacc.c:1646 */ 7867 { (yyval.decl) = (yyvsp[-1].decl); } 7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646 */ 8881 8882 /* Line 1806 of yacc.c */ 8883 #line 2665 "parser.yy" 8884 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7869 8885 break; 7870 8886 7871 8887 case 700: 7872 #line 2669 "parser.yy" /* yacc.c:1646 */ 7873 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7874 #line 7875 "Parser/parser.cc" /* yacc.c:1646 */ 8888 8889 /* Line 1806 of yacc.c */ 8890 #line 2670 "parser.yy" 8891 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7875 8892 break; 7876 8893 7877 8894 case 701: 7878 #line 2671 "parser.yy" /* yacc.c:1646 */ 7879 { (yyval.decl) = (yyvsp[-1].decl); } 7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646 */ 8895 8896 /* Line 1806 of yacc.c */ 8897 #line 2672 "parser.yy" 8898 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7881 8899 break; 7882 8900 7883 8901 case 704: 7884 #line 2681 "parser.yy" /* yacc.c:1646 */ 7885 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7886 #line 7887 "Parser/parser.cc" /* yacc.c:1646 */ 8902 8903 /* Line 1806 of yacc.c */ 8904 #line 2682 "parser.yy" 8905 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7887 8906 break; 7888 8907 7889 8908 case 707: 7890 #line 2691 "parser.yy" /* yacc.c:1646 */ 7891 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7892 #line 7893 "Parser/parser.cc" /* yacc.c:1646 */ 8909 8910 /* Line 1806 of yacc.c */ 8911 #line 2692 "parser.yy" 8912 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7893 8913 break; 7894 8914 7895 8915 case 708: 7896 #line 2693 "parser.yy" /* yacc.c:1646 */ 7897 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7898 #line 7899 "Parser/parser.cc" /* yacc.c:1646 */ 8916 8917 /* Line 1806 of yacc.c */ 8918 #line 2694 "parser.yy" 8919 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7899 8920 break; 7900 8921 7901 8922 case 709: 7902 #line 2695 "parser.yy" /* yacc.c:1646 */ 7903 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7904 #line 7905 "Parser/parser.cc" /* yacc.c:1646 */ 8923 8924 /* Line 1806 of yacc.c */ 8925 #line 2696 "parser.yy" 8926 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7905 8927 break; 7906 8928 7907 8929 case 710: 7908 #line 2697 "parser.yy" /* yacc.c:1646 */ 7909 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7910 #line 7911 "Parser/parser.cc" /* yacc.c:1646 */ 8930 8931 /* Line 1806 of yacc.c */ 8932 #line 2698 "parser.yy" 8933 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7911 8934 break; 7912 8935 7913 8936 case 711: 7914 #line 2699 "parser.yy" /* yacc.c:1646 */ 7915 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7916 #line 7917 "Parser/parser.cc" /* yacc.c:1646 */ 8937 8938 /* Line 1806 of yacc.c */ 8939 #line 2700 "parser.yy" 8940 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7917 8941 break; 7918 8942 7919 8943 case 712: 7920 #line 2701 "parser.yy" /* yacc.c:1646 */ 7921 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7922 #line 7923 "Parser/parser.cc" /* yacc.c:1646 */ 8944 8945 /* Line 1806 of yacc.c */ 8946 #line 2702 "parser.yy" 8947 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7923 8948 break; 7924 8949 7925 8950 case 713: 7926 #line 2708 "parser.yy" /* yacc.c:1646 */ 7927 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7928 #line 7929 "Parser/parser.cc" /* yacc.c:1646 */ 8951 8952 /* Line 1806 of yacc.c */ 8953 #line 2709 "parser.yy" 8954 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7929 8955 break; 7930 8956 7931 8957 case 714: 7932 #line 2710 "parser.yy" /* yacc.c:1646 */ 7933 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646 */ 8958 8959 /* Line 1806 of yacc.c */ 8960 #line 2711 "parser.yy" 8961 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7935 8962 break; 7936 8963 7937 8964 case 715: 7938 #line 2712 "parser.yy" /* yacc.c:1646 */ 7939 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7940 #line 7941 "Parser/parser.cc" /* yacc.c:1646 */ 8965 8966 /* Line 1806 of yacc.c */ 8967 #line 2713 "parser.yy" 8968 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7941 8969 break; 7942 8970 7943 8971 case 716: 7944 #line 2714 "parser.yy" /* yacc.c:1646 */ 7945 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7946 #line 7947 "Parser/parser.cc" /* yacc.c:1646 */ 8972 8973 /* Line 1806 of yacc.c */ 8974 #line 2715 "parser.yy" 8975 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7947 8976 break; 7948 8977 7949 8978 case 717: 7950 #line 2716 "parser.yy" /* yacc.c:1646 */ 7951 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7952 #line 7953 "Parser/parser.cc" /* yacc.c:1646 */ 8979 8980 /* Line 1806 of yacc.c */ 8981 #line 2717 "parser.yy" 8982 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7953 8983 break; 7954 8984 7955 8985 case 718: 7956 #line 2718 "parser.yy" /* yacc.c:1646 */ 7957 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7958 #line 7959 "Parser/parser.cc" /* yacc.c:1646 */ 8986 8987 /* Line 1806 of yacc.c */ 8988 #line 2719 "parser.yy" 8989 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7959 8990 break; 7960 8991 7961 8992 case 719: 7962 #line 2720 "parser.yy" /* yacc.c:1646 */ 7963 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646 */ 8993 8994 /* Line 1806 of yacc.c */ 8995 #line 2721 "parser.yy" 8996 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7965 8997 break; 7966 8998 7967 8999 case 720: 7968 #line 2722 "parser.yy" /* yacc.c:1646 */ 7969 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7970 #line 7971 "Parser/parser.cc" /* yacc.c:1646 */ 9000 9001 /* Line 1806 of yacc.c */ 9002 #line 2723 "parser.yy" 9003 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7971 9004 break; 7972 9005 7973 9006 case 721: 7974 #line 2724 "parser.yy" /* yacc.c:1646 */ 7975 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7976 #line 7977 "Parser/parser.cc" /* yacc.c:1646 */ 9007 9008 /* Line 1806 of yacc.c */ 9009 #line 2725 "parser.yy" 9010 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7977 9011 break; 7978 9012 7979 9013 case 722: 7980 #line 2726 "parser.yy" /* yacc.c:1646 */ 7981 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7982 #line 7983 "Parser/parser.cc" /* yacc.c:1646 */ 9014 9015 /* Line 1806 of yacc.c */ 9016 #line 2727 "parser.yy" 9017 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7983 9018 break; 7984 9019 7985 9020 case 723: 7986 #line 2731 "parser.yy" /* yacc.c:1646 */ 7987 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7988 #line 7989 "Parser/parser.cc" /* yacc.c:1646 */ 9021 9022 /* Line 1806 of yacc.c */ 9023 #line 2732 "parser.yy" 9024 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7989 9025 break; 7990 9026 7991 9027 case 724: 7992 #line 2733 "parser.yy" /* yacc.c:1646 */ 7993 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7994 #line 7995 "Parser/parser.cc" /* yacc.c:1646 */ 9028 9029 /* Line 1806 of yacc.c */ 9030 #line 2734 "parser.yy" 9031 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7995 9032 break; 7996 9033 7997 9034 case 725: 7998 #line 2738 "parser.yy" /* yacc.c:1646 */ 7999 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 8000 #line 8001 "Parser/parser.cc" /* yacc.c:1646 */ 9035 9036 /* Line 1806 of yacc.c */ 9037 #line 2739 "parser.yy" 9038 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8001 9039 break; 8002 9040 8003 9041 case 726: 8004 #line 2740 "parser.yy" /* yacc.c:1646 */ 8005 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 8006 #line 8007 "Parser/parser.cc" /* yacc.c:1646 */ 9042 9043 /* Line 1806 of yacc.c */ 9044 #line 2741 "parser.yy" 9045 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8007 9046 break; 8008 9047 8009 9048 case 728: 8010 #line 2767 "parser.yy" /* yacc.c:1646 */ 8011 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8012 #line 8013 "Parser/parser.cc" /* yacc.c:1646 */ 9049 9050 /* Line 1806 of yacc.c */ 9051 #line 2768 "parser.yy" 9052 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8013 9053 break; 8014 9054 8015 9055 case 732: 8016 #line 2778 "parser.yy" /* yacc.c:1646 */ 8017 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8018 #line 8019 "Parser/parser.cc" /* yacc.c:1646 */ 9056 9057 /* Line 1806 of yacc.c */ 9058 #line 2779 "parser.yy" 9059 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8019 9060 break; 8020 9061 8021 9062 case 733: 8022 #line 2780 "parser.yy" /* yacc.c:1646 */ 8023 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8024 #line 8025 "Parser/parser.cc" /* yacc.c:1646 */ 9063 9064 /* Line 1806 of yacc.c */ 9065 #line 2781 "parser.yy" 9066 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8025 9067 break; 8026 9068 8027 9069 case 734: 8028 #line 2782 "parser.yy" /* yacc.c:1646 */ 8029 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8030 #line 8031 "Parser/parser.cc" /* yacc.c:1646 */ 9070 9071 /* Line 1806 of yacc.c */ 9072 #line 2783 "parser.yy" 9073 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8031 9074 break; 8032 9075 8033 9076 case 735: 8034 #line 2784 "parser.yy" /* yacc.c:1646 */ 8035 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8036 #line 8037 "Parser/parser.cc" /* yacc.c:1646 */ 9077 9078 /* Line 1806 of yacc.c */ 9079 #line 2785 "parser.yy" 9080 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8037 9081 break; 8038 9082 8039 9083 case 736: 8040 #line 2786 "parser.yy" /* yacc.c:1646 */ 8041 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8042 #line 8043 "Parser/parser.cc" /* yacc.c:1646 */ 9084 9085 /* Line 1806 of yacc.c */ 9086 #line 2787 "parser.yy" 9087 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8043 9088 break; 8044 9089 8045 9090 case 737: 8046 #line 2788 "parser.yy" /* yacc.c:1646 */ 8047 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8048 #line 8049 "Parser/parser.cc" /* yacc.c:1646 */ 9091 9092 /* Line 1806 of yacc.c */ 9093 #line 2789 "parser.yy" 9094 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8049 9095 break; 8050 9096 8051 9097 case 738: 8052 #line 2795 "parser.yy" /* yacc.c:1646 */ 8053 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646 */ 9098 9099 /* Line 1806 of yacc.c */ 9100 #line 2796 "parser.yy" 9101 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8055 9102 break; 8056 9103 8057 9104 case 739: 8058 #line 2797 "parser.yy" /* yacc.c:1646 */ 8059 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646 */ 9105 9106 /* Line 1806 of yacc.c */ 9107 #line 2798 "parser.yy" 9108 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8061 9109 break; 8062 9110 8063 9111 case 740: 8064 #line 2799 "parser.yy" /* yacc.c:1646 */ 8065 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646 */ 9112 9113 /* Line 1806 of yacc.c */ 9114 #line 2800 "parser.yy" 9115 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8067 9116 break; 8068 9117 8069 9118 case 741: 8070 #line 2801 "parser.yy" /* yacc.c:1646 */ 8071 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8072 #line 8073 "Parser/parser.cc" /* yacc.c:1646 */ 9119 9120 /* Line 1806 of yacc.c */ 9121 #line 2802 "parser.yy" 9122 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8073 9123 break; 8074 9124 8075 9125 case 742: 8076 #line 2803 "parser.yy" /* yacc.c:1646 */ 8077 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8078 #line 8079 "Parser/parser.cc" /* yacc.c:1646 */ 9126 9127 /* Line 1806 of yacc.c */ 9128 #line 2804 "parser.yy" 9129 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8079 9130 break; 8080 9131 8081 9132 case 743: 8082 #line 2805 "parser.yy" /* yacc.c:1646 */ 8083 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8084 #line 8085 "Parser/parser.cc" /* yacc.c:1646 */ 9133 9134 /* Line 1806 of yacc.c */ 9135 #line 2806 "parser.yy" 9136 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8085 9137 break; 8086 9138 8087 9139 case 744: 8088 #line 2810 "parser.yy" /* yacc.c:1646 */ 8089 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8090 #line 8091 "Parser/parser.cc" /* yacc.c:1646 */ 9140 9141 /* Line 1806 of yacc.c */ 9142 #line 2811 "parser.yy" 9143 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8091 9144 break; 8092 9145 8093 9146 case 745: 8094 #line 2815 "parser.yy" /* yacc.c:1646 */ 8095 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); } 8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646 */ 9147 9148 /* Line 1806 of yacc.c */ 9149 #line 2816 "parser.yy" 9150 { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); } 8097 9151 break; 8098 9152 8099 9153 case 746: 8100 #line 2817 "parser.yy" /* yacc.c:1646 */ 8101 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8102 #line 8103 "Parser/parser.cc" /* yacc.c:1646 */ 9154 9155 /* Line 1806 of yacc.c */ 9156 #line 2818 "parser.yy" 9157 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 8103 9158 break; 8104 9159 8105 9160 case 747: 8106 #line 2819 "parser.yy" /* yacc.c:1646 */ 8107 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8108 #line 8109 "Parser/parser.cc" /* yacc.c:1646 */ 9161 9162 /* Line 1806 of yacc.c */ 9163 #line 2820 "parser.yy" 9164 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 8109 9165 break; 8110 9166 8111 9167 case 750: 8112 #line 2843 "parser.yy" /* yacc.c:1646 */ 9168 9169 /* Line 1806 of yacc.c */ 9170 #line 2844 "parser.yy" 8113 9171 { (yyval.en) = 0; } 8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646 */8115 9172 break; 8116 9173 8117 9174 case 751: 8118 #line 2845 "parser.yy" /* yacc.c:1646 */ 8119 { (yyval.en) = (yyvsp[0].en); } 8120 #line 8121 "Parser/parser.cc" /* yacc.c:1646 */ 8121 break; 8122 8123 8124 #line 8125 "Parser/parser.cc" /* yacc.c:1646 */ 9175 9176 /* Line 1806 of yacc.c */ 9177 #line 2846 "parser.yy" 9178 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9179 break; 9180 9181 9182 9183 /* Line 1806 of yacc.c */ 9184 #line 9185 "Parser/parser.cc" 8125 9185 default: break; 8126 9186 } … … 8144 9204 *++yyvsp = yyval; 8145 9205 8146 /* Now 'shift' the result of the reduction. Determine what state9206 /* Now `shift' the result of the reduction. Determine what state 8147 9207 that goes to, based on the state we popped back to and the rule 8148 9208 number reduced by. */ … … 8159 9219 8160 9220 8161 /*------------------------------------ --.8162 | yyerrlab -- here on detecting error .|8163 `------------------------------------ --*/9221 /*------------------------------------. 9222 | yyerrlab -- here on detecting error | 9223 `------------------------------------*/ 8164 9224 yyerrlab: 8165 9225 /* Make sure we have latest lookahead translation. See comments at … … 8212 9272 { 8213 9273 /* If just tried and failed to reuse lookahead token after an 8214 error, discard it. */9274 error, discard it. */ 8215 9275 8216 9276 if (yychar <= YYEOF) 8217 {8218 /* Return failure if at end of input. */8219 if (yychar == YYEOF)8220 YYABORT;8221 }9277 { 9278 /* Return failure if at end of input. */ 9279 if (yychar == YYEOF) 9280 YYABORT; 9281 } 8222 9282 else 8223 {8224 yydestruct ("Error: discarding",8225 yytoken, &yylval);8226 yychar = YYEMPTY;8227 }9283 { 9284 yydestruct ("Error: discarding", 9285 yytoken, &yylval); 9286 yychar = YYEMPTY; 9287 } 8228 9288 } 8229 9289 … … 8244 9304 goto yyerrorlab; 8245 9305 8246 /* Do not reclaim the symbols of the rule wh oseaction triggered9306 /* Do not reclaim the symbols of the rule which action triggered 8247 9307 this YYERROR. */ 8248 9308 YYPOPSTACK (yylen); … … 8257 9317 `-------------------------------------------------------------*/ 8258 9318 yyerrlab1: 8259 yyerrstatus = 3; /* Each real token shifted decrements this. */9319 yyerrstatus = 3; /* Each real token shifted decrements this. */ 8260 9320 8261 9321 for (;;) … … 8263 9323 yyn = yypact[yystate]; 8264 9324 if (!yypact_value_is_default (yyn)) 8265 {8266 yyn += YYTERROR;8267 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)8268 {8269 yyn = yytable[yyn];8270 if (0 < yyn)8271 break;8272 }8273 }9325 { 9326 yyn += YYTERROR; 9327 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 9328 { 9329 yyn = yytable[yyn]; 9330 if (0 < yyn) 9331 break; 9332 } 9333 } 8274 9334 8275 9335 /* Pop the current state because it cannot handle the error token. */ 8276 9336 if (yyssp == yyss) 8277 YYABORT;9337 YYABORT; 8278 9338 8279 9339 8280 9340 yydestruct ("Error: popping", 8281 yystos[yystate], yyvsp);9341 yystos[yystate], yyvsp); 8282 9342 YYPOPSTACK (1); 8283 9343 yystate = *yyssp; … … 8285 9345 } 8286 9346 8287 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN8288 9347 *++yyvsp = yylval; 8289 YY_IGNORE_MAYBE_UNINITIALIZED_END8290 9348 8291 9349 … … 8311 9369 goto yyreturn; 8312 9370 8313 #if !defined yyoverflow|| YYERROR_VERBOSE9371 #if !defined(yyoverflow) || YYERROR_VERBOSE 8314 9372 /*-------------------------------------------------. 8315 9373 | yyexhaustedlab -- memory exhaustion comes here. | … … 8330 9388 yytoken, &yylval); 8331 9389 } 8332 /* Do not reclaim the symbols of the rule wh oseaction triggered9390 /* Do not reclaim the symbols of the rule which action triggered 8333 9391 this YYABORT or YYACCEPT. */ 8334 9392 YYPOPSTACK (yylen); … … 8337 9395 { 8338 9396 yydestruct ("Cleanup: popping", 8339 yystos[*yyssp], yyvsp);9397 yystos[*yyssp], yyvsp); 8340 9398 YYPOPSTACK (1); 8341 9399 } … … 8348 9406 YYSTACK_FREE (yymsg); 8349 9407 #endif 8350 return yyresult; 9408 /* Make sure YYID is used. */ 9409 return YYID (yyresult); 8351 9410 } 8352 #line 2848 "parser.yy" /* yacc.c:1906 */ 9411 9412 9413 9414 /* Line 2067 of yacc.c */ 9415 #line 2849 "parser.yy" 8353 9416 8354 9417 // ----end of grammar---- … … 8357 9420 8358 9421 void yyerror( const char * ) { 8359 std::cout << "Error ";9422 cout << "Error "; 8360 9423 if ( yyfilename ) { 8361 std::cout << "in file " << yyfilename << " ";9424 cout << "in file " << yyfilename << " "; 8362 9425 } // if 8363 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl;9426 cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << endl; 8364 9427 } 8365 9428 … … 8369 9432 // compile-command: "make install" // 8370 9433 // End: // 9434
Note:
See TracChangeset
for help on using the changeset viewer.