- Timestamp:
- Sep 14, 2016, 2:14:43 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 101e0bd, 1eba452
- Parents:
- cb2b15c (diff), 4c1403c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src
- Files:
-
- 1 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.cc
rcb2b15c r50c5cf3 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 2.5"47 #define YYBISON_VERSION "3.0.2" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */62 #define YYLSP_NEEDED 063 61 64 62 65 63 66 64 /* Copy the first part of user declarations. */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 65 #line 42 "parser.yy" /* yacc.c:339 */ 70 66 71 67 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 94 90 } // appendStr 95 91 96 97 /* Line 268 of yacc.c */ 98 #line 99 "Parser/parser.cc" 99 100 /* Enabling traces. */ 101 #ifndef YYDEBUG 102 # define YYDEBUG 1 103 #endif 92 #line 93 "Parser/parser.cc" /* yacc.c:339 */ 93 94 # ifndef YY_NULLPTR 95 # if defined __cplusplus && 201103L <= __cplusplus 96 # define YY_NULLPTR nullptr 97 # else 98 # define YY_NULLPTR 0 99 # endif 100 # endif 104 101 105 102 /* Enabling verbose error messages. */ … … 111 108 #endif 112 109 113 /* Enabling the token table. */ 114 #ifndef YYTOKEN_TABLE 115 # define YYTOKEN_TABLE 0 110 /* In a future release of Bison, this section will be replaced 111 by #include "y.tab.h". */ 112 #ifndef YY_YY_Y_TAB_H_INCLUDED 113 # define YY_YY_Y_TAB_H_INCLUDED 114 /* Debug traces. */ 115 #ifndef YYDEBUG 116 # define YYDEBUG 1 116 117 #endif 117 118 119 /* Tokens. */ 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 120 123 #ifndef YYTOKENTYPE 121 124 # define YYTOKENTYPE 122 /* Put the tokens into the symbol table, so that GDB and other debuggers 123 know about them. */ 124 enum yytokentype { 125 TYPEDEF = 258, 126 AUTO = 259, 127 EXTERN = 260, 128 REGISTER = 261, 129 STATIC = 262, 130 INLINE = 263, 131 FORTRAN = 264, 132 CONST = 265, 133 VOLATILE = 266, 134 RESTRICT = 267, 135 FORALL = 268, 136 LVALUE = 269, 137 VOID = 270, 138 CHAR = 271, 139 SHORT = 272, 140 INT = 273, 141 LONG = 274, 142 FLOAT = 275, 143 DOUBLE = 276, 144 SIGNED = 277, 145 UNSIGNED = 278, 146 VALIST = 279, 147 BOOL = 280, 148 COMPLEX = 281, 149 IMAGINARY = 282, 150 TYPEOF = 283, 151 LABEL = 284, 152 ENUM = 285, 153 STRUCT = 286, 154 UNION = 287, 155 OTYPE = 288, 156 FTYPE = 289, 157 DTYPE = 290, 158 TRAIT = 291, 159 SIZEOF = 292, 160 OFFSETOF = 293, 161 ATTRIBUTE = 294, 162 EXTENSION = 295, 163 IF = 296, 164 ELSE = 297, 165 SWITCH = 298, 166 CASE = 299, 167 DEFAULT = 300, 168 DO = 301, 169 WHILE = 302, 170 FOR = 303, 171 BREAK = 304, 172 CONTINUE = 305, 173 GOTO = 306, 174 RETURN = 307, 175 CHOOSE = 308, 176 DISABLE = 309, 177 ENABLE = 310, 178 FALLTHRU = 311, 179 TRY = 312, 180 CATCH = 313, 181 CATCHRESUME = 314, 182 FINALLY = 315, 183 THROW = 316, 184 THROWRESUME = 317, 185 AT = 318, 186 ASM = 319, 187 ALIGNAS = 320, 188 ALIGNOF = 321, 189 ATOMIC = 322, 190 GENERIC = 323, 191 NORETURN = 324, 192 STATICASSERT = 325, 193 THREADLOCAL = 326, 194 IDENTIFIER = 327, 195 QUOTED_IDENTIFIER = 328, 196 TYPEDEFname = 329, 197 TYPEGENname = 330, 198 ATTR_IDENTIFIER = 331, 199 ATTR_TYPEDEFname = 332, 200 ATTR_TYPEGENname = 333, 201 INTEGERconstant = 334, 202 FLOATINGconstant = 335, 203 CHARACTERconstant = 336, 204 STRINGliteral = 337, 205 ZERO = 338, 206 ONE = 339, 207 ARROW = 340, 208 ICR = 341, 209 DECR = 342, 210 LS = 343, 211 RS = 344, 212 LE = 345, 213 GE = 346, 214 EQ = 347, 215 NE = 348, 216 ANDAND = 349, 217 OROR = 350, 218 ELLIPSIS = 351, 219 MULTassign = 352, 220 DIVassign = 353, 221 MODassign = 354, 222 PLUSassign = 355, 223 MINUSassign = 356, 224 LSassign = 357, 225 RSassign = 358, 226 ANDassign = 359, 227 ERassign = 360, 228 ORassign = 361, 229 ATassign = 362, 230 THEN = 363 231 }; 125 enum yytokentype 126 { 127 TYPEDEF = 258, 128 AUTO = 259, 129 EXTERN = 260, 130 REGISTER = 261, 131 STATIC = 262, 132 INLINE = 263, 133 FORTRAN = 264, 134 CONST = 265, 135 VOLATILE = 266, 136 RESTRICT = 267, 137 FORALL = 268, 138 LVALUE = 269, 139 VOID = 270, 140 CHAR = 271, 141 SHORT = 272, 142 INT = 273, 143 LONG = 274, 144 FLOAT = 275, 145 DOUBLE = 276, 146 SIGNED = 277, 147 UNSIGNED = 278, 148 VALIST = 279, 149 BOOL = 280, 150 COMPLEX = 281, 151 IMAGINARY = 282, 152 TYPEOF = 283, 153 LABEL = 284, 154 ENUM = 285, 155 STRUCT = 286, 156 UNION = 287, 157 OTYPE = 288, 158 FTYPE = 289, 159 DTYPE = 290, 160 TRAIT = 291, 161 SIZEOF = 292, 162 OFFSETOF = 293, 163 ATTRIBUTE = 294, 164 EXTENSION = 295, 165 IF = 296, 166 ELSE = 297, 167 SWITCH = 298, 168 CASE = 299, 169 DEFAULT = 300, 170 DO = 301, 171 WHILE = 302, 172 FOR = 303, 173 BREAK = 304, 174 CONTINUE = 305, 175 GOTO = 306, 176 RETURN = 307, 177 CHOOSE = 308, 178 DISABLE = 309, 179 ENABLE = 310, 180 FALLTHRU = 311, 181 TRY = 312, 182 CATCH = 313, 183 CATCHRESUME = 314, 184 FINALLY = 315, 185 THROW = 316, 186 THROWRESUME = 317, 187 AT = 318, 188 ASM = 319, 189 ALIGNAS = 320, 190 ALIGNOF = 321, 191 ATOMIC = 322, 192 GENERIC = 323, 193 NORETURN = 324, 194 STATICASSERT = 325, 195 THREADLOCAL = 326, 196 IDENTIFIER = 327, 197 QUOTED_IDENTIFIER = 328, 198 TYPEDEFname = 329, 199 TYPEGENname = 330, 200 ATTR_IDENTIFIER = 331, 201 ATTR_TYPEDEFname = 332, 202 ATTR_TYPEGENname = 333, 203 INTEGERconstant = 334, 204 FLOATINGconstant = 335, 205 CHARACTERconstant = 336, 206 STRINGliteral = 337, 207 ZERO = 338, 208 ONE = 339, 209 ARROW = 340, 210 ICR = 341, 211 DECR = 342, 212 LS = 343, 213 RS = 344, 214 LE = 345, 215 GE = 346, 216 EQ = 347, 217 NE = 348, 218 ANDAND = 349, 219 OROR = 350, 220 ELLIPSIS = 351, 221 MULTassign = 352, 222 DIVassign = 353, 223 MODassign = 354, 224 PLUSassign = 355, 225 MINUSassign = 356, 226 LSassign = 357, 227 RSassign = 358, 228 ANDassign = 359, 229 ERassign = 360, 230 ORassign = 361, 231 ATassign = 362, 232 THEN = 363 233 }; 232 234 #endif 233 235 /* Tokens. */ … … 339 341 #define THEN 363 340 342 341 342 343 343 /* Value type. */ 344 344 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 346 347 { 347 348 /* Line 293 of yacc.c */ 349 #line 115 "parser.yy" 348 #line 115 "parser.yy" /* yacc.c:355 */ 350 349 351 350 Token tok; … … 364 363 bool flag; 365 364 366 367 368 /* Line 293 of yacc.c */ 369 #line 370 "Parser/parser.cc" 370 } YYSTYPE; 365 #line 366 "Parser/parser.cc" /* yacc.c:355 */ 366 }; 371 367 # define YYSTYPE_IS_TRIVIAL 1 372 # define yystype YYSTYPE /* obsolescent; will be withdrawn */373 368 # define YYSTYPE_IS_DECLARED 1 374 369 #endif 375 370 376 371 372 extern YYSTYPE yylval; 373 374 int yyparse (void); 375 376 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 377 377 378 /* Copy the second part of user declarations. */ 378 379 379 380 /* Line 343 of yacc.c */ 381 #line 382 "Parser/parser.cc" 380 #line 381 "Parser/parser.cc" /* yacc.c:358 */ 382 381 383 382 #ifdef short … … 393 392 #ifdef YYTYPE_INT8 394 393 typedef YYTYPE_INT8 yytype_int8; 395 #elif (defined __STDC__ || defined __C99__FUNC__ \ 396 || defined __cplusplus || defined _MSC_VER) 394 #else 397 395 typedef signed char yytype_int8; 398 #else399 typedef short int yytype_int8;400 396 #endif 401 397 … … 417 413 # elif defined size_t 418 414 # define YYSIZE_T size_t 419 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 420 || defined __cplusplus || defined _MSC_VER) 415 # elif ! defined YYSIZE_T 421 416 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 422 417 # define YYSIZE_T size_t … … 432 427 # if ENABLE_NLS 433 428 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 434 # define YY_( msgid) dgettext ("bison-runtime", msgid)429 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 435 430 # endif 436 431 # endif 437 432 # ifndef YY_ 438 # define YY_( msgid) msgid433 # define YY_(Msgid) Msgid 439 434 # endif 440 435 #endif 441 436 437 #ifndef YY_ATTRIBUTE 438 # if (defined __GNUC__ \ 439 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 440 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 441 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 442 # else 443 # define YY_ATTRIBUTE(Spec) /* empty */ 444 # endif 445 #endif 446 447 #ifndef YY_ATTRIBUTE_PURE 448 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 449 #endif 450 451 #ifndef YY_ATTRIBUTE_UNUSED 452 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 453 #endif 454 455 #if !defined _Noreturn \ 456 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 457 # if defined _MSC_VER && 1200 <= _MSC_VER 458 # define _Noreturn __declspec (noreturn) 459 # else 460 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 461 # endif 462 #endif 463 442 464 /* Suppress unused-variable warnings by "using" E. */ 443 465 #if ! defined lint || defined __GNUC__ 444 # define YYUSE( e) ((void) (e))466 # define YYUSE(E) ((void) (E)) 445 467 #else 446 # define YYUSE( e) /* empty */468 # define YYUSE(E) /* empty */ 447 469 #endif 448 470 449 /* Identity function, used to suppress warnings about constant conditions. */ 450 #ifndef lint 451 # define YYID(n) (n) 471 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 472 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 473 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 474 _Pragma ("GCC diagnostic push") \ 475 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 476 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 477 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 478 _Pragma ("GCC diagnostic pop") 452 479 #else 453 #if (defined __STDC__ || defined __C99__FUNC__ \ 454 || defined __cplusplus || defined _MSC_VER) 455 static int 456 YYID (int yyi) 457 #else 458 static int 459 YYID (yyi) 460 int yyi; 480 # define YY_INITIAL_VALUE(Value) Value 461 481 #endif 462 { 463 return yyi; 464 } 482 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 484 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 465 485 #endif 486 #ifndef YY_INITIAL_VALUE 487 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 488 #endif 489 466 490 467 491 #if ! defined yyoverflow || YYERROR_VERBOSE … … 482 506 # else 483 507 # define YYSTACK_ALLOC alloca 484 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 485 || defined __cplusplus || defined _MSC_VER) 508 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 486 509 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 510 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 487 511 # ifndef EXIT_SUCCESS 488 512 # define EXIT_SUCCESS 0 … … 494 518 495 519 # ifdef YYSTACK_ALLOC 496 /* Pacify GCC's `empty if-body' warning. */497 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))520 /* Pacify GCC's 'empty if-body' warning. */ 521 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 498 522 # ifndef YYSTACK_ALLOC_MAXIMUM 499 523 /* The OS might guarantee only one guard page at the bottom of the stack, … … 511 535 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 512 536 && ! ((defined YYMALLOC || defined malloc) \ 513 537 && (defined YYFREE || defined free))) 514 538 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 515 539 # ifndef EXIT_SUCCESS … … 519 543 # ifndef YYMALLOC 520 544 # define YYMALLOC malloc 521 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 522 || defined __cplusplus || defined _MSC_VER) 545 # if ! defined malloc && ! defined EXIT_SUCCESS 523 546 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 524 547 # endif … … 526 549 # ifndef YYFREE 527 550 # define YYFREE free 528 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 529 || defined __cplusplus || defined _MSC_VER) 551 # if ! defined free && ! defined EXIT_SUCCESS 530 552 void free (void *); /* INFRINGES ON USER NAME SPACE */ 531 553 # endif … … 537 559 #if (! defined yyoverflow \ 538 560 && (! defined __cplusplus \ 539 561 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 540 562 541 563 /* A type that is properly aligned for any stack member. */ … … 562 584 stack. Advance YYPTR to a properly aligned location for the next 563 585 stack. */ 564 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 565 do 566 { 567 YYSIZE_T yynewbytes;\568 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\569 Stack = &yyptr->Stack_alloc;\570 571 yyptr += yynewbytes / sizeof (*yyptr);\572 } 573 while ( YYID (0))586 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 587 do \ 588 { \ 589 YYSIZE_T yynewbytes; \ 590 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 591 Stack = &yyptr->Stack_alloc; \ 592 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 593 yyptr += yynewbytes / sizeof (*yyptr); \ 594 } \ 595 while (0) 574 596 575 597 #endif 576 598 577 599 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 578 /* Copy COUNT objects from FROM to TO. The source and destination do600 /* Copy COUNT objects from SRC to DST. The source and destination do 579 601 not overlap. */ 580 602 # ifndef YYCOPY 581 603 # if defined __GNUC__ && 1 < __GNUC__ 582 # define YYCOPY( To, From, Count) \583 __builtin_memcpy ( To, From, (Count) * sizeof (*(From)))604 # define YYCOPY(Dst, Src, Count) \ 605 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 584 606 # else 585 # define YYCOPY( To, From, Count)\586 do 587 {\588 YYSIZE_T yyi;\589 for (yyi = 0; yyi < (Count); yyi++)\590 (To)[yyi] = (From)[yyi];\591 }\592 while ( YYID (0))607 # define YYCOPY(Dst, Src, Count) \ 608 do \ 609 { \ 610 YYSIZE_T yyi; \ 611 for (yyi = 0; yyi < (Count); yyi++) \ 612 (Dst)[yyi] = (Src)[yyi]; \ 613 } \ 614 while (0) 593 615 # endif 594 616 # endif … … 606 628 /* YYNRULES -- Number of rules. */ 607 629 #define YYNRULES 751 608 /* YYN RULES -- Number of states. */630 /* YYNSTATES -- Number of states. */ 609 631 #define YYNSTATES 1555 610 632 611 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 633 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 634 by yylex, with out-of-bounds checking. */ 612 635 #define YYUNDEFTOK 2 613 636 #define YYMAXUTOK 363 614 637 615 #define YYTRANSLATE(YYX) 638 #define YYTRANSLATE(YYX) \ 616 639 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 617 640 618 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 641 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 642 as returned by yylex, without out-of-bounds checking. */ 619 643 static const yytype_uint8 yytranslate[] = 620 644 { … … 659 683 660 684 #if YYDEBUG 661 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 662 YYRHS. */ 663 static const yytype_uint16 yyprhs[] = 664 { 665 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 666 17, 19, 21, 23, 25, 27, 29, 31, 33, 36, 667 38, 40, 44, 48, 50, 57, 62, 66, 74, 78, 668 86, 89, 92, 100, 105, 107, 111, 112, 114, 116, 669 120, 122, 126, 134, 138, 146, 148, 150, 152, 155, 670 158, 161, 164, 167, 170, 175, 178, 183, 190, 192, 671 197, 202, 204, 206, 208, 210, 212, 214, 216, 221, 672 226, 228, 232, 236, 240, 242, 246, 250, 252, 256, 673 260, 262, 266, 270, 274, 278, 280, 284, 288, 290, 674 294, 296, 300, 302, 306, 308, 312, 314, 318, 320, 675 326, 331, 337, 339, 341, 345, 348, 349, 351, 353, 676 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 677 375, 378, 384, 391, 399, 401, 405, 407, 411, 412, 678 414, 416, 418, 420, 422, 424, 426, 428, 430, 437, 679 442, 445, 453, 455, 459, 461, 464, 466, 469, 471, 680 474, 477, 483, 491, 497, 507, 513, 523, 525, 529, 681 531, 533, 537, 541, 544, 546, 549, 552, 553, 555, 682 558, 562, 563, 565, 568, 572, 576, 581, 582, 584, 683 586, 589, 595, 603, 610, 617, 622, 626, 631, 634, 684 638, 641, 645, 649, 653, 657, 663, 667, 671, 676, 685 678, 684, 691, 697, 704, 714, 725, 735, 746, 749, 686 751, 754, 757, 760, 762, 769, 778, 789, 802, 817, 687 818, 820, 821, 823, 825, 829, 834, 842, 843, 845, 688 849, 851, 855, 857, 859, 861, 865, 867, 869, 871, 689 875, 876, 878, 882, 887, 889, 893, 895, 897, 901, 690 905, 909, 913, 917, 920, 924, 931, 935, 939, 944, 691 946, 949, 952, 956, 962, 971, 979, 987, 993, 1003, 692 1006, 1009, 1015, 1019, 1025, 1030, 1034, 1039, 1044, 1052, 693 1056, 1060, 1064, 1068, 1073, 1080, 1082, 1084, 1086, 1088, 694 1090, 1092, 1094, 1096, 1097, 1099, 1101, 1104, 1106, 1108, 695 1110, 1112, 1114, 1116, 1118, 1119, 1125, 1127, 1130, 1134, 696 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 697 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 698 1177, 1179, 1181, 1183, 1186, 1189, 1193, 1197, 1199, 1203, 699 1205, 1208, 1211, 1214, 1219, 1224, 1229, 1234, 1236, 1239, 700 1242, 1246, 1248, 1251, 1254, 1256, 1259, 1262, 1266, 1268, 701 1271, 1274, 1276, 1278, 1283, 1286, 1287, 1294, 1302, 1305, 702 1308, 1311, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334, 703 1338, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361, 704 1363, 1366, 1369, 1375, 1378, 1379, 1387, 1390, 1395, 1396, 705 1399, 1400, 1402, 1404, 1406, 1412, 1418, 1424, 1426, 1432, 706 1438, 1448, 1450, 1456, 1457, 1459, 1461, 1467, 1469, 1471, 707 1477, 1483, 1485, 1489, 1493, 1498, 1500, 1502, 1504, 1506, 708 1509, 1511, 1515, 1519, 1521, 1524, 1526, 1530, 1532, 1534, 709 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1555, 710 1557, 1559, 1561, 1564, 1565, 1568, 1571, 1573, 1578, 1579, 711 1581, 1584, 1588, 1593, 1596, 1599, 1601, 1604, 1607, 1613, 712 1619, 1627, 1634, 1636, 1639, 1642, 1646, 1648, 1651, 1654, 713 1659, 1662, 1667, 1668, 1673, 1676, 1678, 1680, 1682, 1683, 714 1686, 1692, 1698, 1712, 1714, 1716, 1720, 1724, 1727, 1731, 715 1735, 1738, 1743, 1745, 1752, 1762, 1763, 1775, 1777, 1781, 716 1785, 1789, 1791, 1793, 1799, 1802, 1808, 1809, 1811, 1813, 717 1817, 1818, 1820, 1822, 1824, 1826, 1827, 1834, 1837, 1839, 718 1842, 1847, 1850, 1854, 1858, 1862, 1867, 1873, 1879, 1885, 719 1892, 1894, 1896, 1898, 1902, 1903, 1909, 1910, 1912, 1914, 720 1917, 1924, 1926, 1930, 1931, 1933, 1938, 1940, 1942, 1944, 721 1946, 1949, 1951, 1954, 1957, 1959, 1963, 1966, 1970, 1974, 722 1977, 1982, 1987, 1991, 2000, 2004, 2007, 2009, 2012, 2019, 723 2028, 2032, 2035, 2039, 2043, 2048, 2053, 2057, 2059, 2061, 724 2063, 2068, 2075, 2079, 2082, 2086, 2090, 2095, 2100, 2104, 725 2107, 2109, 2112, 2115, 2117, 2121, 2124, 2128, 2132, 2135, 726 2140, 2145, 2149, 2156, 2165, 2169, 2172, 2174, 2177, 2180, 727 2183, 2187, 2191, 2194, 2199, 2204, 2208, 2215, 2224, 2228, 728 2231, 2233, 2236, 2239, 2241, 2243, 2246, 2250, 2254, 2257, 729 2262, 2269, 2278, 2280, 2283, 2286, 2288, 2291, 2294, 2298, 730 2302, 2304, 2309, 2314, 2318, 2324, 2333, 2337, 2340, 2344, 731 2346, 2352, 2358, 2365, 2372, 2374, 2377, 2380, 2382, 2385, 732 2388, 2392, 2396, 2398, 2403, 2408, 2412, 2418, 2427, 2431, 733 2433, 2436, 2438, 2441, 2448, 2454, 2461, 2469, 2477, 2479, 734 2482, 2485, 2487, 2490, 2493, 2497, 2501, 2503, 2508, 2513, 735 2517, 2526, 2530, 2532, 2534, 2537, 2539, 2541, 2544, 2548, 736 2551, 2555, 2558, 2562, 2566, 2569, 2574, 2578, 2581, 2585, 737 2588, 2593, 2597, 2600, 2607, 2614, 2621, 2629, 2631, 2634, 738 2636, 2638, 2640, 2643, 2647, 2650, 2654, 2657, 2661, 2665, 739 2670, 2673, 2677, 2682, 2685, 2691, 2697, 2704, 2711, 2712, 740 2714, 2715 741 }; 742 743 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 744 static const yytype_int16 yyrhs[] = 745 { 746 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 747 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 748 -1, 72, -1, 140, -1, 83, -1, 84, -1, 142, 749 -1, 82, -1, 142, 82, -1, 72, -1, 140, -1, 750 109, 170, 110, -1, 109, 174, 110, -1, 143, -1, 751 144, 111, 134, 165, 135, 112, -1, 144, 109, 145, 752 110, -1, 144, 113, 139, -1, 144, 113, 111, 134, 753 147, 135, 112, -1, 144, 85, 139, -1, 144, 85, 754 111, 134, 147, 135, 112, -1, 144, 86, -1, 144, 755 87, -1, 109, 275, 110, 114, 279, 372, 115, -1, 756 144, 114, 145, 115, -1, 146, -1, 145, 116, 146, 757 -1, -1, 165, -1, 148, -1, 147, 116, 148, -1, 758 139, -1, 139, 113, 148, -1, 139, 113, 111, 134, 759 147, 135, 112, -1, 139, 85, 148, -1, 139, 85, 760 111, 134, 147, 135, 112, -1, 144, -1, 136, -1, 761 141, -1, 40, 152, -1, 150, 152, -1, 151, 152, 762 -1, 86, 149, -1, 87, 149, -1, 37, 149, -1, 763 37, 109, 275, 110, -1, 66, 149, -1, 66, 109, 764 275, 110, -1, 38, 109, 275, 116, 139, 110, -1, 765 76, -1, 76, 109, 146, 110, -1, 76, 109, 276, 766 110, -1, 117, -1, 118, -1, 119, -1, 120, -1, 767 121, -1, 122, -1, 149, -1, 109, 275, 110, 152, 768 -1, 109, 275, 110, 168, -1, 152, -1, 153, 117, 769 152, -1, 153, 123, 152, -1, 153, 124, 152, -1, 770 153, -1, 154, 119, 153, -1, 154, 120, 153, -1, 771 154, -1, 155, 88, 154, -1, 155, 89, 154, -1, 772 155, -1, 156, 125, 155, -1, 156, 126, 155, -1, 773 156, 90, 155, -1, 156, 91, 155, -1, 156, -1, 774 157, 92, 156, -1, 157, 93, 156, -1, 157, -1, 775 158, 118, 157, -1, 158, -1, 159, 127, 158, -1, 776 159, -1, 160, 128, 159, -1, 160, -1, 161, 94, 777 160, -1, 161, -1, 162, 95, 161, -1, 162, -1, 778 162, 129, 170, 130, 163, -1, 162, 129, 130, 163, 779 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 780 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 781 -1, 131, -1, 107, -1, 97, -1, 98, -1, 99, 782 -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, 783 -1, 105, -1, 106, -1, 111, 112, -1, 111, 134, 784 165, 135, 112, -1, 111, 134, 116, 169, 135, 112, 785 -1, 111, 134, 165, 116, 169, 135, 112, -1, 166, 786 -1, 169, 116, 166, -1, 165, -1, 170, 116, 165, 787 -1, -1, 170, -1, 173, -1, 174, -1, 178, -1, 788 179, -1, 191, -1, 193, -1, 194, -1, 199, -1, 789 127, 144, 114, 145, 115, 132, -1, 72, 130, 312, 790 172, -1, 114, 115, -1, 114, 134, 134, 210, 175, 791 135, 115, -1, 176, -1, 175, 134, 176, -1, 213, 792 -1, 40, 213, -1, 308, -1, 172, 135, -1, 172, 793 -1, 177, 172, -1, 171, 132, -1, 41, 109, 170, 794 110, 172, -1, 41, 109, 170, 110, 172, 42, 172, 795 -1, 43, 109, 170, 110, 184, -1, 43, 109, 170, 796 110, 114, 134, 206, 185, 115, -1, 53, 109, 170, 797 110, 184, -1, 53, 109, 170, 110, 114, 134, 206, 798 187, 115, -1, 164, -1, 164, 96, 164, -1, 310, 799 -1, 180, -1, 181, 116, 180, -1, 44, 181, 130, 800 -1, 45, 130, -1, 182, -1, 183, 182, -1, 183, 801 172, -1, -1, 186, -1, 183, 177, -1, 186, 183, 802 177, -1, -1, 188, -1, 183, 190, -1, 183, 177, 803 189, -1, 188, 183, 190, -1, 188, 183, 177, 189, 804 -1, -1, 190, -1, 56, -1, 56, 132, -1, 47, 805 109, 170, 110, 172, -1, 46, 172, 47, 109, 170, 806 110, 132, -1, 48, 109, 134, 192, 110, 172, -1, 807 171, 135, 132, 171, 132, 171, -1, 213, 171, 132, 808 171, -1, 51, 72, 132, -1, 51, 117, 170, 132, 809 -1, 50, 132, -1, 50, 72, 132, -1, 49, 132, 810 -1, 49, 72, 132, -1, 52, 171, 132, -1, 61, 811 166, 132, -1, 62, 166, 132, -1, 62, 166, 63, 812 165, 132, -1, 57, 174, 195, -1, 57, 174, 197, 813 -1, 57, 174, 195, 197, -1, 196, -1, 58, 109, 814 96, 110, 174, -1, 196, 58, 109, 96, 110, 174, 815 -1, 59, 109, 96, 110, 174, -1, 196, 59, 109, 816 96, 110, 174, -1, 58, 109, 134, 134, 198, 135, 817 110, 174, 135, -1, 196, 58, 109, 134, 134, 198, 818 135, 110, 174, 135, -1, 59, 109, 134, 134, 198, 819 135, 110, 174, 135, -1, 196, 59, 109, 134, 134, 820 198, 135, 110, 174, 135, -1, 60, 174, -1, 226, 821 -1, 226, 309, -1, 226, 357, -1, 366, 139, -1, 822 366, -1, 64, 200, 109, 141, 110, 132, -1, 64, 823 200, 109, 141, 130, 201, 110, 132, -1, 64, 200, 824 109, 141, 130, 201, 130, 201, 110, 132, -1, 64, 825 200, 109, 141, 130, 201, 130, 201, 130, 204, 110, 826 132, -1, 64, 200, 51, 109, 141, 130, 130, 201, 827 130, 204, 130, 205, 110, 132, -1, -1, 11, -1, 828 -1, 202, -1, 203, -1, 202, 116, 203, -1, 141, 829 109, 164, 110, -1, 111, 164, 112, 141, 109, 164, 830 110, -1, -1, 141, -1, 204, 116, 141, -1, 139, 831 -1, 205, 116, 139, -1, 135, -1, 207, -1, 213, 832 -1, 207, 134, 213, -1, 135, -1, 209, -1, 223, 833 -1, 209, 134, 223, -1, -1, 211, -1, 29, 212, 834 132, -1, 211, 29, 212, 132, -1, 274, -1, 212, 835 116, 274, -1, 214, -1, 223, -1, 215, 135, 132, 836 -1, 220, 135, 132, -1, 217, 135, 132, -1, 293, 837 135, 132, -1, 296, 135, 132, -1, 216, 277, -1, 838 232, 216, 277, -1, 215, 135, 116, 134, 272, 277, 839 -1, 367, 272, 311, -1, 370, 272, 311, -1, 228, 840 370, 272, 311, -1, 218, -1, 228, 218, -1, 232, 841 218, -1, 232, 228, 218, -1, 217, 135, 116, 134, 842 272, -1, 111, 112, 272, 109, 134, 260, 135, 110, 843 -1, 370, 272, 109, 134, 260, 135, 110, -1, 219, 844 272, 109, 134, 260, 135, 110, -1, 111, 134, 262, 845 135, 112, -1, 111, 134, 262, 135, 116, 134, 263, 846 135, 112, -1, 3, 216, -1, 3, 218, -1, 220, 847 135, 116, 134, 139, -1, 3, 226, 309, -1, 221, 848 135, 116, 134, 309, -1, 228, 3, 226, 309, -1, 849 226, 3, 309, -1, 226, 3, 228, 309, -1, 3, 850 139, 131, 165, -1, 222, 135, 116, 134, 139, 131, 851 165, -1, 224, 135, 132, -1, 221, 135, 132, -1, 852 222, 135, 132, -1, 240, 135, 132, -1, 225, 309, 853 311, 277, -1, 224, 116, 312, 309, 311, 277, -1, 854 236, -1, 240, -1, 242, -1, 283, -1, 237, -1, 855 241, -1, 243, -1, 284, -1, -1, 228, -1, 229, 856 -1, 228, 229, -1, 230, -1, 314, -1, 10, -1, 857 12, -1, 11, -1, 14, -1, 67, -1, -1, 13, 858 109, 231, 286, 110, -1, 233, -1, 228, 233, -1, 859 232, 228, 233, -1, 234, -1, 233, 234, -1, 5, 860 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 861 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 862 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 863 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 864 -1, 237, -1, 232, 237, -1, 236, 234, -1, 236, 865 234, 228, -1, 236, 234, 237, -1, 238, -1, 227, 866 239, 227, -1, 235, -1, 228, 235, -1, 238, 229, 867 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 868 109, 170, 110, -1, 78, 109, 276, 110, -1, 78, 869 109, 170, 110, -1, 241, -1, 232, 241, -1, 240, 870 234, -1, 240, 234, 228, -1, 244, -1, 228, 244, 871 -1, 241, 229, -1, 243, -1, 232, 243, -1, 242, 872 234, -1, 242, 234, 228, -1, 74, -1, 228, 74, 873 -1, 243, 229, -1, 245, -1, 256, -1, 247, 114, 874 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 875 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 876 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 877 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 878 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 879 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 880 -1, 226, 252, -1, 251, 116, 312, 252, -1, -1, 881 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 882 -1, 254, -1, 130, 164, -1, 30, 312, -1, 255, 883 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 884 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 885 258, 116, 274, 259, -1, -1, 131, 164, -1, -1, 886 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 887 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 888 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 889 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 890 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 891 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 892 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 893 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 894 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 895 272, 373, -1, 228, 370, 272, 373, -1, 218, -1, 896 270, -1, 362, -1, 370, -1, 228, 370, -1, 371, 897 -1, 225, 336, 373, -1, 225, 340, 373, -1, 225, 898 -1, 225, 351, -1, 139, -1, 271, 116, 139, -1, 899 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 900 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 901 226, -1, 226, 357, -1, 366, -1, 371, -1, 226, 902 -1, 226, 345, -1, -1, 131, 278, -1, 107, 278, 903 -1, 165, -1, 114, 279, 372, 115, -1, -1, 278, 904 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 905 280, 278, -1, 281, 130, -1, 274, 130, -1, 282, 906 -1, 281, 282, -1, 113, 274, -1, 111, 134, 165, 907 135, 112, -1, 111, 134, 310, 135, 112, -1, 111, 908 134, 164, 96, 164, 135, 112, -1, 113, 111, 134, 909 147, 135, 112, -1, 284, -1, 232, 284, -1, 283, 910 234, -1, 283, 234, 228, -1, 285, -1, 228, 285, 911 -1, 284, 229, -1, 75, 109, 292, 110, -1, 287, 912 373, -1, 286, 116, 287, 373, -1, -1, 289, 274, 913 288, 290, -1, 226, 336, -1, 33, -1, 35, -1, 914 34, -1, -1, 290, 291, -1, 128, 274, 109, 292, 915 110, -1, 128, 114, 134, 298, 115, -1, 128, 109, 916 134, 286, 135, 110, 114, 134, 298, 115, 109, 292, 917 110, -1, 276, -1, 165, -1, 292, 116, 276, -1, 918 292, 116, 165, -1, 33, 294, -1, 233, 33, 294, 919 -1, 293, 116, 294, -1, 295, 290, -1, 295, 290, 920 131, 276, -1, 274, -1, 273, 109, 134, 286, 135, 921 110, -1, 36, 274, 109, 134, 286, 135, 110, 114, 922 115, -1, -1, 36, 274, 109, 134, 286, 135, 110, 923 114, 297, 298, 115, -1, 299, -1, 298, 134, 299, 924 -1, 300, 135, 132, -1, 301, 135, 132, -1, 216, 925 -1, 218, -1, 300, 135, 116, 134, 272, -1, 226, 926 309, -1, 301, 135, 116, 134, 309, -1, -1, 303, 927 -1, 305, -1, 303, 134, 305, -1, -1, 303, -1, 928 213, -1, 307, -1, 199, -1, -1, 5, 82, 306, 929 114, 304, 115, -1, 40, 305, -1, 308, -1, 323, 930 174, -1, 327, 134, 208, 174, -1, 217, 174, -1, 931 225, 323, 174, -1, 228, 323, 174, -1, 232, 323, 932 174, -1, 232, 228, 323, 174, -1, 225, 327, 134, 933 208, 174, -1, 228, 327, 134, 208, 174, -1, 232, 934 327, 134, 208, 174, -1, 232, 228, 327, 134, 208, 935 174, -1, 318, -1, 331, -1, 323, -1, 164, 122, 936 164, -1, -1, 64, 109, 142, 110, 312, -1, -1, 937 313, -1, 314, -1, 313, 314, -1, 39, 109, 109, 938 315, 110, 110, -1, 316, -1, 315, 116, 316, -1, 939 -1, 317, -1, 317, 109, 171, 110, -1, 272, -1, 940 234, -1, 235, -1, 229, -1, 319, 312, -1, 320, 941 -1, 321, 312, -1, 322, 312, -1, 137, -1, 109, 942 319, 110, -1, 150, 318, -1, 150, 228, 318, -1, 943 109, 320, 110, -1, 319, 349, -1, 109, 320, 110, 944 349, -1, 109, 321, 110, 350, -1, 109, 321, 110, 945 -1, 109, 320, 110, 109, 134, 264, 135, 110, -1, 946 109, 322, 110, -1, 324, 312, -1, 325, -1, 326, 947 312, -1, 319, 109, 134, 264, 135, 110, -1, 109, 948 325, 110, 109, 134, 264, 135, 110, -1, 109, 324, 949 110, -1, 150, 323, -1, 150, 228, 323, -1, 109, 950 325, 110, -1, 109, 325, 110, 349, -1, 109, 326, 951 110, 350, -1, 109, 326, 110, -1, 328, -1, 329, 952 -1, 330, -1, 319, 109, 271, 110, -1, 109, 329, 953 110, 109, 271, 110, -1, 109, 328, 110, -1, 150, 954 327, -1, 150, 228, 327, -1, 109, 329, 110, -1, 955 109, 329, 110, 349, -1, 109, 330, 110, 350, -1, 956 109, 330, 110, -1, 332, 312, -1, 333, -1, 334, 957 312, -1, 335, 312, -1, 341, -1, 109, 332, 110, 958 -1, 150, 331, -1, 150, 228, 331, -1, 109, 333, 959 110, -1, 332, 349, -1, 109, 333, 110, 349, -1, 960 109, 334, 110, 350, -1, 109, 334, 110, -1, 332, 961 109, 134, 264, 135, 110, -1, 109, 333, 110, 109, 962 134, 264, 135, 110, -1, 109, 335, 110, -1, 319, 963 312, -1, 337, -1, 338, 312, -1, 339, 312, -1, 964 150, 336, -1, 150, 228, 336, -1, 109, 337, 110, 965 -1, 319, 355, -1, 109, 337, 110, 349, -1, 109, 966 338, 110, 350, -1, 109, 338, 110, -1, 319, 109, 967 134, 264, 135, 110, -1, 109, 337, 110, 109, 134, 968 264, 135, 110, -1, 109, 339, 110, -1, 341, 312, 969 -1, 342, -1, 343, 312, -1, 344, 312, -1, 74, 970 -1, 75, -1, 150, 340, -1, 150, 228, 340, -1, 971 109, 342, 110, -1, 341, 355, -1, 109, 342, 110, 972 355, -1, 341, 109, 134, 264, 135, 110, -1, 109, 973 342, 110, 109, 134, 264, 135, 110, -1, 346, -1, 974 347, 312, -1, 348, 312, -1, 150, -1, 150, 228, 975 -1, 150, 345, -1, 150, 228, 345, -1, 109, 346, 976 110, -1, 349, -1, 109, 346, 110, 349, -1, 109, 977 347, 110, 350, -1, 109, 347, 110, -1, 109, 134, 978 264, 135, 110, -1, 109, 346, 110, 109, 134, 264, 979 135, 110, -1, 109, 348, 110, -1, 111, 112, -1, 980 111, 112, 350, -1, 350, -1, 111, 134, 165, 135, 981 112, -1, 111, 134, 117, 135, 112, -1, 350, 111, 982 134, 165, 135, 112, -1, 350, 111, 134, 117, 135, 983 112, -1, 352, -1, 353, 312, -1, 354, 312, -1, 984 150, -1, 150, 228, -1, 150, 351, -1, 150, 228, 985 351, -1, 109, 352, 110, -1, 355, -1, 109, 352, 986 110, 355, -1, 109, 353, 110, 350, -1, 109, 353, 987 110, -1, 109, 134, 264, 135, 110, -1, 109, 352, 988 110, 109, 134, 264, 135, 110, -1, 109, 354, 110, 989 -1, 356, -1, 356, 350, -1, 350, -1, 111, 112, 990 -1, 111, 134, 228, 117, 135, 112, -1, 111, 134, 991 228, 135, 112, -1, 111, 134, 228, 165, 135, 112, 992 -1, 111, 134, 7, 227, 165, 135, 112, -1, 111, 993 134, 228, 7, 165, 135, 112, -1, 358, -1, 359, 994 312, -1, 360, 312, -1, 150, -1, 150, 228, -1, 995 150, 357, -1, 150, 228, 357, -1, 109, 358, 110, 996 -1, 349, -1, 109, 358, 110, 349, -1, 109, 359, 997 110, 350, -1, 109, 359, 110, -1, 109, 358, 110, 998 109, 134, 264, 135, 110, -1, 109, 360, 110, -1, 999 362, -1, 370, -1, 228, 370, -1, 363, -1, 364, 1000 -1, 150, 226, -1, 228, 150, 226, -1, 150, 371, 1001 -1, 228, 150, 371, -1, 150, 361, -1, 228, 150, 1002 361, -1, 111, 112, 226, -1, 365, 226, -1, 111, 1003 112, 350, 226, -1, 365, 350, 226, -1, 350, 226, 1004 -1, 111, 112, 363, -1, 365, 363, -1, 111, 112, 1005 350, 363, -1, 365, 350, 363, -1, 350, 363, -1, 1006 111, 134, 228, 117, 135, 112, -1, 111, 134, 228, 1007 165, 135, 112, -1, 111, 134, 232, 165, 135, 112, 1008 -1, 111, 134, 232, 228, 165, 135, 112, -1, 370, 1009 -1, 228, 370, -1, 367, -1, 368, -1, 369, -1, 1010 150, 226, -1, 228, 150, 226, -1, 150, 371, -1, 1011 228, 150, 371, -1, 150, 366, -1, 228, 150, 366, 1012 -1, 111, 112, 226, -1, 111, 112, 350, 226, -1, 1013 350, 226, -1, 111, 112, 368, -1, 111, 112, 350, 1014 368, -1, 350, 368, -1, 111, 134, 263, 135, 112, 1015 -1, 111, 112, 109, 260, 110, -1, 370, 109, 134, 1016 260, 135, 110, -1, 219, 109, 134, 260, 135, 110, 1017 -1, -1, 116, -1, -1, 131, 165, -1 1018 }; 1019 1020 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 685 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 1021 686 static const yytype_uint16 yyrline[] = 1022 687 { … … 1100 765 #endif 1101 766 1102 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE767 #if YYDEBUG || YYERROR_VERBOSE || 0 1103 768 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1104 769 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 1209 874 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 1210 875 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 1211 "comma_opt", "assignment_opt", 0876 "comma_opt", "assignment_opt", YY_NULLPTR 1212 877 }; 1213 878 #endif 1214 879 1215 880 # ifdef YYPRINT 1216 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to1217 token YYLEX-NUM. */881 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 882 (internal) symbol number NUM (which must be that of a token). */ 1218 883 static const yytype_uint16 yytoknum[] = 1219 884 { … … 1235 900 # endif 1236 901 1237 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1238 static const yytype_uint16 yyr1[] = 902 #define YYPACT_NINF -1323 903 904 #define yypact_value_is_default(Yystate) \ 905 (!!((Yystate) == (-1323))) 906 907 #define YYTABLE_NINF -522 908 909 #define yytable_value_is_error(Yytable_value) \ 910 0 911 912 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 913 STATE-NUM. */ 914 static const yytype_int16 yypact[] = 1239 915 { 1240 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 1241 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 1242 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 1243 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 1244 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 1245 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 1246 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 1247 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 1248 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 1249 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 1250 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 1251 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 1252 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 1253 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 1254 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 1255 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 1256 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 1257 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 1258 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 1259 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 1260 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 1261 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 1262 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 1263 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1264 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 1265 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 1266 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 1267 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 1268 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 1269 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 1270 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 1271 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 1272 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1273 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 1274 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 1275 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 1276 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 1277 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 1278 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 1279 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 1280 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 1281 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 1282 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 1283 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 1284 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1285 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 1286 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 1287 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 1288 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 1289 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 1290 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 1291 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 1292 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 1293 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1294 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 1295 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 1296 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 1297 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 1298 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1299 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1300 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 1301 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 1302 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 1303 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 1304 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 1305 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 1306 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 1307 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 1308 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 1309 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 1310 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 1311 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 1312 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 1313 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 1314 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 1315 373, 373 916 7329, 8828, -1323, 37, -1323, -1323, -1323, -1323, -1323, -1323, 917 -1323, 109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 918 -1323, -1323, -1323, -1323, -1323, -1323, 85, 85, 85, 873, 919 733, 178, 7561, 370, -1323, -1323, -1323, -1323, -1323, 191, 920 -1323, -1323, -1323, 614, 225, -1323, -1323, -1323, -1323, 4615, 921 -1323, -1323, -1323, -1323, 229, 285, -1323, 934, -1323, -1323, 922 -1323, -1323, 435, 1196, 579, 110, 7677, -1323, -1323, 4858, 923 1038, -1323, -1323, 580, 596, 6761, 1021, 875, 580, 1103, 924 -1323, -1323, 1317, 308, -1323, 580, 1224, -1323, 495, -1323, 925 616, 623, -1323, -1323, -1323, -1323, 547, 285, 85, -1323, 926 85, -1323, -1323, -1323, -1323, 9174, 934, -1323, -1323, 934, 927 -1323, 551, -1323, 9403, -1323, -1323, 1899, 9436, -1323, 844, 928 844, 844, -1323, -1323, -1323, 85, -1323, -1323, -1323, 584, 929 608, 632, -1323, -1323, -1323, 646, -1323, -1323, -1323, -1323, 930 -1323, 664, 687, -1323, -1323, -28, 8797, 2908, 117, 701, 931 717, 726, 771, 786, 799, 8715, 6849, 731, 757, -1323, 932 5600, -1323, -1323, -1323, -1323, 804, -1323, 223, 5225, 5225, 933 -1323, 802, 365, -1323, -1323, -1323, -1323, 816, 443, 480, 934 534, 85, 827, -1323, -1323, 1196, 4341, 868, -1323, 50, 935 -1323, 85, 85, 285, -1323, -1323, 61, -1323, 85, 85, 936 -1323, 4647, 857, 864, 844, 6523, -1323, -1323, 869, 4615, 937 -1323, -1323, 580, -1323, -1323, -1323, 285, -1323, 934, 229, 938 -1323, 7868, -1323, 844, 844, 844, 285, -1323, 873, -1323, 939 5676, -1323, -1323, 852, 844, -1323, 844, -1323, 191, 8797, 940 -1323, 884, -1323, 733, 890, 844, -1323, 873, 888, 892, 941 -1323, 7561, 631, -1323, -1323, -1323, 9256, -1323, -1323, 9621, 942 -1323, 868, 151, 10214, 9436, 1899, 4647, -1323, 88, -1323, 943 -1323, 9403, 934, 891, 7708, -1323, -1323, 347, -1323, 10561, 944 922, 956, 10347, 945, 10366, 10423, -1323, 954, -1323, -1323, 945 -1323, -1323, 10442, 10442, 8571, 952, -1323, -1323, -1323, -1323, 946 -1323, -1323, -1323, 988, -1323, 966, 1946, 8910, 10366, -1323, 947 756, 338, 485, 411, 635, 955, 947, 957, 984, 237, 948 -1323, -1323, 962, 647, -1323, 302, -1323, -1323, 2908, -1323, 949 -1323, 235, 985, -1323, 312, 985, 989, 191, -1323, -1323, 950 990, 9174, -1323, 999, 1006, 9023, -1323, -1323, 1335, 2030, 951 8286, 6523, 580, -1323, 580, 844, 844, -1323, -1323, -1323, 952 -1323, -1323, -1323, 844, 9174, 934, -1323, -1323, 9474, 1575, 953 -1323, 8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 954 5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 955 -1323, -1323, -1323, -1323, -1323, -1323, 1899, -1323, 973, 991, 956 992, 1012, 978, 1017, 1018, 1020, 4341, -1323, -1323, 1029, 957 229, 1031, -1323, -1323, 1033, -1323, -1323, -1323, 9256, -1323, 958 -1323, -1323, -1323, -1323, 4647, -1323, 8797, 8797, -1323, 844, 959 1899, 6642, 934, 8359, -1323, -1323, -1323, -1323, 9256, 151, 960 -1323, -1323, 580, 285, -1323, -1323, 9256, -1323, 5770, -1323, 961 -1323, 844, 844, 337, 8204, 1032, 1036, 1023, 1042, 844, 962 -1323, -1323, -1323, -1323, 9660, -1323, 367, 6404, -1323, 285, 963 1044, -1323, 1899, 10643, 10271, -1323, -1323, -1323, -1323, 1015, 964 4647, -1323, 8432, 868, 7445, -1323, -1323, -1323, 843, 436, 965 962, 733, 7708, 1341, 9403, -1323, 7708, -1323, -1323, -1323, 966 -1323, 508, -1323, 1051, 956, 248, 8571, -1323, 9512, -1323, 967 -1323, 8571, -1323, 8684, 8571, -1323, -1323, 1049, -1323, 606, 968 1057, 682, 1059, -1323, -1323, 3527, 6492, -1323, 362, -1323, 969 -1323, 10214, -1323, 368, 10214, -1323, -1323, -1323, -1323, -1323, 970 -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323, 971 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 972 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 3593, 10214, 973 -1323, 647, 1677, -1323, -1323, 85, 85, -1323, -1323, 8797, 974 -1323, -1323, 1033, 631, -1323, 1033, 10290, -1323, -1323, -1323, 975 5046, 6492, 1060, 1063, -1323, 9436, -1323, -1323, 804, -1323, 976 1067, 750, 1068, 2627, 125, 962, -1323, 85, 85, 962, 977 132, -1323, 85, 85, 1033, -1323, -1323, 85, 85, -1323, 978 985, 9545, 934, 10788, 532, 656, 9545, -1323, 9621, -1323, 979 962, -1323, 9174, -1323, 238, 7983, 7983, 7983, 934, -1323, 980 5791, 1047, 1008, 493, 1058, 1061, -1323, 1076, 5225, 528, 981 -1323, 1165, 934, 7983, 631, 1899, 631, 868, 430, 985, 982 -1323, -1323, 536, 985, -1323, -1323, -1323, 956, -1323, 985, 983 285, 9660, -1323, 619, 1086, 633, 1088, -1323, 1087, 285, 984 -1323, -1323, 9256, 285, 1089, 9512, 1092, -1323, 1065, -1323, 985 538, 552, 733, -1323, 733, 1085, 10366, -1323, 733, 10788, 986 -1323, -1323, 1096, -1323, -1323, -1323, 631, -1323, 10716, 1006, 987 -1323, 7983, 703, 8286, -1323, -1323, 804, 1095, 1098, 843, 988 5016, -1323, -1323, 7708, -1323, -1323, 1091, -1323, -1323, 1102, 989 -1323, 1091, 1104, 10561, 10214, 1090, 1093, 94, 1109, 1107, 990 1111, 1114, -1323, 1118, 1129, 9365, 6611, -1323, 10214, -1323, 991 682, 1717, -1323, -1323, -1323, 85, 85, 10157, 10214, 1125, 992 -1323, -1323, 653, -1323, 10214, -1323, -1323, 736, -1323, -1323, 993 -1323, -1323, 756, 756, 338, 338, 485, 485, 485, 485, 994 411, 411, 635, 955, 947, 957, 984, 10366, 260, -1323, 995 9660, 1132, 1136, 1137, 1677, -1323, -1323, -1323, -1323, -1323, 996 9660, 708, 7983, -1323, 9174, -1323, 6968, 9136, -1323, 8017, 997 6849, -1323, -1323, 750, 9660, 1022, 1140, 1141, 1142, 1143, 998 1146, 1149, 1154, -1323, 3715, 2627, -1323, -1323, -1323, -1323, 999 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1000 -1323, -1323, -1323, 1033, -1323, -1323, -1323, 962, -1323, -1323, 1001 -1323, -1323, -1323, -1323, -1323, -1323, 1155, -1323, 1157, 1159, 1002 -1323, -1323, 229, 1125, 5791, -1323, -1323, -1323, 5958, 1158, 1003 -1323, -1323, -1323, -1323, 733, 6174, 1248, -1323, -1323, -1323, 1004 -1323, 1151, 229, -1323, -1323, 1033, -1323, -1323, 1033, 84, 1005 1033, -1323, -1323, -1323, -1323, -1323, -1323, 9327, -1323, 285, 1006 -1323, -1323, 559, 562, 9474, 7087, 2137, 10366, 3114, -1323, 1007 -1323, 1156, 51, 1156, -1323, 733, -1323, 85, -1323, -1323, 1008 8941, 1023, -1323, -1323, -1323, 1036, 1175, 1171, -1323, -1323, 1009 1178, 1181, -1323, 703, 1901, -1323, 672, -1323, 5016, 962, 1010 -1323, 1184, 7708, 9583, 8797, 1185, -1323, -1323, 1180, 1187, 1011 1170, -1323, 10366, 1197, 326, 1194, -1323, 1202, 631, 1202, 1012 -1323, -1323, 1202, 1199, -1323, 1208, 1210, 1211, 1717, -1323, 1013 -1323, -1323, 5958, -1323, -1323, -1323, -1323, 1209, 10214, 1212, 1014 631, -1323, 10214, -1323, 631, -1323, -1323, 10214, -1323, 558, 1015 985, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1006, 1016 9023, -1323, -1323, 7206, 1218, -1323, 674, 985, -1323, 813, 1017 861, 985, -1323, 844, 4029, -1323, -1323, -1323, 9660, 9660, 1018 -1323, 8359, 8359, -1323, 1215, 1216, 1225, 1230, -1323, 1232, 1019 685, 82, 1125, -1323, 631, -1323, 5225, -1323, 10214, 564, 1020 -1323, 6373, 1236, 1240, 10100, 1242, 1243, 70, 79, 96, 1021 10214, 1244, 285, 10214, 10214, 1227, 1249, 522, 1222, -1323, 1022 -1323, -1323, 1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1023 -1323, -1323, 733, 1254, 10214, -1323, 9660, 9660, 85, 1257, 1024 -1323, 9054, -1323, -1323, 752, -1323, 3114, -1323, -1323, -1323, 1025 -1323, 1065, -1323, -1323, 1255, -1323, -1323, -1323, -1323, 1258, 1026 1901, -1323, -1323, 1245, -1323, 1091, -1323, -1323, 1899, 1260, 1027 -1323, -1323, -1323, 713, 1264, -1323, 94, 1269, 10366, 1252, 1028 94, 94, 1262, 3527, 879, 985, -1323, -1323, 1076, 10214, 1029 1273, 1209, 358, 204, 1270, -1323, -1323, 1275, 1270, -1323, 1030 -1323, 1278, -1323, -1323, 1033, 1280, 1284, 6730, 1285, 1290, 1031 1291, -1323, -1323, 1286, -1323, -1323, 1033, -1323, -1323, -1323, 1032 -1323, 1033, 10214, 10214, 1006, 1294, -1323, -1323, -1323, -1323, 1033 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366, 1034 1300, 1302, 1270, -1323, -1323, 733, -1323, -1323, -1323, 5213, 1035 9583, 10214, 10214, 1374, 10214, -1323, 1295, -1323, 1296, -1323, 1036 1297, 10214, 1301, 10214, 1105, 1304, 12, 85, 9289, 1625, 1037 -1323, -1323, 6174, 1322, 573, -1323, -1323, -1323, -1323, -1323, 1038 -1323, -1323, -1323, -1323, 9920, -1323, 8432, 1330, -1323, -1323, 1039 9583, 576, 602, -1323, 1331, 1315, 956, 1337, -1323, 329, 1040 -1323, -1323, -1323, -1323, 1033, 1339, -1323, -1323, 1320, 486, 1041 509, 631, 1340, -1323, 1344, -1323, 9660, -1323, -1323, -1323, 1042 -1323, -1323, 1347, -1323, 9660, 9660, 9660, -1323, -1323, 1348, 1043 -1323, 1351, 1354, 1355, 716, 8056, 8171, -1323, -1323, 529, 1044 -1323, 1357, 1362, -1323, 8505, 721, 730, 1358, 761, 3837, 1045 -1323, -1323, -1323, 605, -1323, 766, 1366, 1367, 285, 1419, 1046 834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323, 1047 1370, 1375, -1323, -1323, -1323, 1372, -1323, -1323, -1323, -1323, 1048 -1323, -1323, 9583, 956, 1379, -1323, 1352, 956, 9660, -1323, 1049 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1050 -1323, -1323, -1323, 1378, 1382, -1323, -1323, -1323, -1323, -1323, 1051 -1323, -1323, 1387, -1323, 1386, -1323, -1323, 10100, 289, 10214, 1052 10100, -1323, 1389, 10214, -1323, 318, 1405, 1406, -1323, -1323, 1053 1399, 1400, 1380, -1323, 821, -1323, -1323, -1323, 934, 1899, 1054 1396, -1323, 402, 10366, -1323, 785, -1323, 631, 631, 1407, 1055 1408, 1413, 1415, -1323, -1323, 8359, 1414, -1323, 1490, 10366, 1056 1385, -1323, -1323, 10012, -1323, 800, -1323, 1402, 10100, 1403, 1057 -1323, -1323, 1426, -1323, 1427, -1323, 1445, 1446, -1323, 1411, 1058 9583, -1323, -1323, -1323, 956, 631, 1434, 1417, 1435, 1270, 1059 1270, -1323, -1323, -1323, -1323, -1323, 10100, 107, -1323, 433, 1060 -1323, -1323, 7793, -1323, -1323, 1418, 10214, -1323, 10214, 7793, 1061 285, 9512, 285, 9512, 1436, -1323, 1442, -1323, -1323, 1440, 1062 -1323, -1323, 825, -1323, -1323, -1323, 1444, 1449, -1323, 10366, 1063 10366, -1323, -1323, 909, 211, -1323, -1323, 1425, -1323, 909, 1064 -1323, -1323, 2166, 631, -1323, -1323, 285, 9512, 285, 9512, 1065 1453, 1431, 631, -1323, -1323, -1323, -1323, 10012, 1443, 909, 1066 6091, 10214, 9924, 1452, 909, 1454, 2166, 3344, -1323, -1323, 1067 -1323, 1458, -1323, -1323, -1323, -1323, 8797, -1323, -1323, -1323, 1068 9791, -1323, 10012, -1323, -1323, 1438, 9703, -1323, -1323, 9924, 1069 285, 3344, 285, 1464, 1466, 853, -1323, 9791, -1323, -1323, 1070 -1323, 9703, -1323, -1323, -1323, 285, 285, -1323, -1323, -1323, 1071 -1323, -1323, -1323, -1323, -1323 1316 1072 }; 1317 1073 1318 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1319 static const yytype_uint8 yyr2[] = 1320 { 1321 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1322 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1323 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 1324 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 1325 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 1326 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 1327 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1328 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1329 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1331 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 1332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 1334 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 1335 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 1336 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 1337 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 1338 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 1339 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 1340 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 1341 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 1342 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 1343 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 1344 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1345 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 1346 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 1347 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 1348 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 1349 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 1350 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1351 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 1352 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1354 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 1355 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 1356 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 1357 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 1358 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 1359 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 1360 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 1361 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1362 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1363 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1364 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1366 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 1367 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 1368 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 1369 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 1370 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 1371 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 1372 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 1373 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 1374 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 1375 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 1376 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 1377 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 1378 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 1379 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 1380 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 1381 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1382 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 1383 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1384 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 1385 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 1386 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 1387 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 1388 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 1389 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 1390 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1391 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 1392 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 1393 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 1394 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 1395 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 1396 0, 2 1397 }; 1398 1399 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1400 Performed when YYTABLE doesn't specify something else to do. Zero 1401 means the default is an error. */ 1074 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1075 Performed when YYTABLE does not specify something else to do. Zero 1076 means the default is an error. */ 1402 1077 static const yytype_uint16 yydefact[] = 1403 1078 { … … 1560 1235 }; 1561 1236 1562 /* YYDEFGOTO[NTERM-NUM]. */ 1237 /* YYPGOTO[NTERM-NUM]. */ 1238 static const yytype_int16 yypgoto[] = 1239 { 1240 -1323, 4572, 3263, -1323, 197, -1323, 601, 950, -251, 910, 1241 -1323, 521, -520, -467, -853, -64, 3183, 0, -1323, -150, 1242 423, 446, 477, 450, 1016, 1025, 1019, 1026, 1028, -1323, 1243 -622, -408, 5012, -745, -1323, -735, 604, 472, -656, 413, 1244 -1323, 1279, -1323, 374, -1058, -1323, -1323, 126, -1323, -823, 1245 -1106, 222, -1323, -1323, -1323, -1323, 58, -1209, -1323, -1323, 1246 -1323, -1323, -1323, -1323, 301, -1149, 35, -1323, -933, -1323, 1247 482, 274, -1323, 159, -1323, -303, -1323, -1323, -1323, 535, 1248 -827, -1323, -1323, 15, -1007, 71, 28, -1323, -1323, -1323, 1249 -21, -1323, 357, 1253, -198, 1636, 4113, -1323, -1323, 80, 1250 54, 422, 1473, -1323, 1886, -1323, -1323, 192, 2183, -1323, 1251 2495, 898, -1323, -1323, -1323, -638, -1323, 924, 925, 524, 1252 699, 83, -1323, -1323, -1323, 915, 695, -339, -1323, -106, 1253 34, 1281, -1323, -1323, -847, -986, 1046, 1127, 1039, 5, 1254 -1323, 1536, 481, -165, -210, -124, 651, 758, -1323, 979, 1255 -1323, 2789, 1548, -413, 904, -1323, -1323, 689, -1323, -235, 1256 -1323, 158, -1323, -1323, -1323, -1257, 401, -1323, -1323, -1323, 1257 1148, -1323, 21, -1323, -1323, -858, -105, -1322, -129, 2267, 1258 -1323, 2391, -1323, 906, -1323, -184, 59, -180, -173, -170, 1259 7, -40, -35, -33, 60, -6, 25, 93, -168, -164, 1260 -158, -147, -144, -292, -471, -462, -452, -551, -302, -537, 1261 -1323, -1323, -511, 1069, 1072, 1074, 2608, 4844, -578, -514, 1262 -502, -495, -500, -1323, -508, -724, -717, -708, -590, -305, 1263 -195, -1323, -1323, 246, 19, 36, -1323, 3865, 104, -623, 1264 -397 1265 }; 1266 1267 /* YYDEFGOTO[NTERM-NUM]. */ 1563 1268 static const yytype_int16 yydefgoto[] = 1564 1269 { … … 1590 1295 }; 1591 1296 1592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1593 STATE-NUM. */ 1594 #define YYPACT_NINF -1323 1595 static const yytype_int16 yypact[] = 1596 { 1597 7329, 8828, -1323, 37, -1323, -1323, -1323, -1323, -1323, -1323, 1598 -1323, 109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1599 -1323, -1323, -1323, -1323, -1323, -1323, 85, 85, 85, 873, 1600 733, 178, 7561, 370, -1323, -1323, -1323, -1323, -1323, 191, 1601 -1323, -1323, -1323, 614, 225, -1323, -1323, -1323, -1323, 4615, 1602 -1323, -1323, -1323, -1323, 229, 285, -1323, 934, -1323, -1323, 1603 -1323, -1323, 435, 1196, 579, 110, 7677, -1323, -1323, 4858, 1604 1038, -1323, -1323, 580, 596, 6761, 1021, 875, 580, 1103, 1605 -1323, -1323, 1317, 308, -1323, 580, 1224, -1323, 495, -1323, 1606 616, 623, -1323, -1323, -1323, -1323, 547, 285, 85, -1323, 1607 85, -1323, -1323, -1323, -1323, 9174, 934, -1323, -1323, 934, 1608 -1323, 551, -1323, 9403, -1323, -1323, 1899, 9436, -1323, 844, 1609 844, 844, -1323, -1323, -1323, 85, -1323, -1323, -1323, 584, 1610 608, 632, -1323, -1323, -1323, 646, -1323, -1323, -1323, -1323, 1611 -1323, 664, 687, -1323, -1323, -28, 8797, 2908, 117, 701, 1612 717, 726, 771, 786, 799, 8715, 6849, 731, 757, -1323, 1613 5600, -1323, -1323, -1323, -1323, 804, -1323, 223, 5225, 5225, 1614 -1323, 802, 365, -1323, -1323, -1323, -1323, 816, 443, 480, 1615 534, 85, 827, -1323, -1323, 1196, 4341, 868, -1323, 50, 1616 -1323, 85, 85, 285, -1323, -1323, 61, -1323, 85, 85, 1617 -1323, 4647, 857, 864, 844, 6523, -1323, -1323, 869, 4615, 1618 -1323, -1323, 580, -1323, -1323, -1323, 285, -1323, 934, 229, 1619 -1323, 7868, -1323, 844, 844, 844, 285, -1323, 873, -1323, 1620 5676, -1323, -1323, 852, 844, -1323, 844, -1323, 191, 8797, 1621 -1323, 884, -1323, 733, 890, 844, -1323, 873, 888, 892, 1622 -1323, 7561, 631, -1323, -1323, -1323, 9256, -1323, -1323, 9621, 1623 -1323, 868, 151, 10214, 9436, 1899, 4647, -1323, 88, -1323, 1624 -1323, 9403, 934, 891, 7708, -1323, -1323, 347, -1323, 10561, 1625 922, 956, 10347, 945, 10366, 10423, -1323, 954, -1323, -1323, 1626 -1323, -1323, 10442, 10442, 8571, 952, -1323, -1323, -1323, -1323, 1627 -1323, -1323, -1323, 988, -1323, 966, 1946, 8910, 10366, -1323, 1628 756, 338, 485, 411, 635, 955, 947, 957, 984, 237, 1629 -1323, -1323, 962, 647, -1323, 302, -1323, -1323, 2908, -1323, 1630 -1323, 235, 985, -1323, 312, 985, 989, 191, -1323, -1323, 1631 990, 9174, -1323, 999, 1006, 9023, -1323, -1323, 1335, 2030, 1632 8286, 6523, 580, -1323, 580, 844, 844, -1323, -1323, -1323, 1633 -1323, -1323, -1323, 844, 9174, 934, -1323, -1323, 9474, 1575, 1634 -1323, 8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1635 5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1636 -1323, -1323, -1323, -1323, -1323, -1323, 1899, -1323, 973, 991, 1637 992, 1012, 978, 1017, 1018, 1020, 4341, -1323, -1323, 1029, 1638 229, 1031, -1323, -1323, 1033, -1323, -1323, -1323, 9256, -1323, 1639 -1323, -1323, -1323, -1323, 4647, -1323, 8797, 8797, -1323, 844, 1640 1899, 6642, 934, 8359, -1323, -1323, -1323, -1323, 9256, 151, 1641 -1323, -1323, 580, 285, -1323, -1323, 9256, -1323, 5770, -1323, 1642 -1323, 844, 844, 337, 8204, 1032, 1036, 1023, 1042, 844, 1643 -1323, -1323, -1323, -1323, 9660, -1323, 367, 6404, -1323, 285, 1644 1044, -1323, 1899, 10643, 10271, -1323, -1323, -1323, -1323, 1015, 1645 4647, -1323, 8432, 868, 7445, -1323, -1323, -1323, 843, 436, 1646 962, 733, 7708, 1341, 9403, -1323, 7708, -1323, -1323, -1323, 1647 -1323, 508, -1323, 1051, 956, 248, 8571, -1323, 9512, -1323, 1648 -1323, 8571, -1323, 8684, 8571, -1323, -1323, 1049, -1323, 606, 1649 1057, 682, 1059, -1323, -1323, 3527, 6492, -1323, 362, -1323, 1650 -1323, 10214, -1323, 368, 10214, -1323, -1323, -1323, -1323, -1323, 1651 -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323, 1652 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 1653 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 3593, 10214, 1654 -1323, 647, 1677, -1323, -1323, 85, 85, -1323, -1323, 8797, 1655 -1323, -1323, 1033, 631, -1323, 1033, 10290, -1323, -1323, -1323, 1656 5046, 6492, 1060, 1063, -1323, 9436, -1323, -1323, 804, -1323, 1657 1067, 750, 1068, 2627, 125, 962, -1323, 85, 85, 962, 1658 132, -1323, 85, 85, 1033, -1323, -1323, 85, 85, -1323, 1659 985, 9545, 934, 10788, 532, 656, 9545, -1323, 9621, -1323, 1660 962, -1323, 9174, -1323, 238, 7983, 7983, 7983, 934, -1323, 1661 5791, 1047, 1008, 493, 1058, 1061, -1323, 1076, 5225, 528, 1662 -1323, 1165, 934, 7983, 631, 1899, 631, 868, 430, 985, 1663 -1323, -1323, 536, 985, -1323, -1323, -1323, 956, -1323, 985, 1664 285, 9660, -1323, 619, 1086, 633, 1088, -1323, 1087, 285, 1665 -1323, -1323, 9256, 285, 1089, 9512, 1092, -1323, 1065, -1323, 1666 538, 552, 733, -1323, 733, 1085, 10366, -1323, 733, 10788, 1667 -1323, -1323, 1096, -1323, -1323, -1323, 631, -1323, 10716, 1006, 1668 -1323, 7983, 703, 8286, -1323, -1323, 804, 1095, 1098, 843, 1669 5016, -1323, -1323, 7708, -1323, -1323, 1091, -1323, -1323, 1102, 1670 -1323, 1091, 1104, 10561, 10214, 1090, 1093, 94, 1109, 1107, 1671 1111, 1114, -1323, 1118, 1129, 9365, 6611, -1323, 10214, -1323, 1672 682, 1717, -1323, -1323, -1323, 85, 85, 10157, 10214, 1125, 1673 -1323, -1323, 653, -1323, 10214, -1323, -1323, 736, -1323, -1323, 1674 -1323, -1323, 756, 756, 338, 338, 485, 485, 485, 485, 1675 411, 411, 635, 955, 947, 957, 984, 10366, 260, -1323, 1676 9660, 1132, 1136, 1137, 1677, -1323, -1323, -1323, -1323, -1323, 1677 9660, 708, 7983, -1323, 9174, -1323, 6968, 9136, -1323, 8017, 1678 6849, -1323, -1323, 750, 9660, 1022, 1140, 1141, 1142, 1143, 1679 1146, 1149, 1154, -1323, 3715, 2627, -1323, -1323, -1323, -1323, 1680 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1681 -1323, -1323, -1323, 1033, -1323, -1323, -1323, 962, -1323, -1323, 1682 -1323, -1323, -1323, -1323, -1323, -1323, 1155, -1323, 1157, 1159, 1683 -1323, -1323, 229, 1125, 5791, -1323, -1323, -1323, 5958, 1158, 1684 -1323, -1323, -1323, -1323, 733, 6174, 1248, -1323, -1323, -1323, 1685 -1323, 1151, 229, -1323, -1323, 1033, -1323, -1323, 1033, 84, 1686 1033, -1323, -1323, -1323, -1323, -1323, -1323, 9327, -1323, 285, 1687 -1323, -1323, 559, 562, 9474, 7087, 2137, 10366, 3114, -1323, 1688 -1323, 1156, 51, 1156, -1323, 733, -1323, 85, -1323, -1323, 1689 8941, 1023, -1323, -1323, -1323, 1036, 1175, 1171, -1323, -1323, 1690 1178, 1181, -1323, 703, 1901, -1323, 672, -1323, 5016, 962, 1691 -1323, 1184, 7708, 9583, 8797, 1185, -1323, -1323, 1180, 1187, 1692 1170, -1323, 10366, 1197, 326, 1194, -1323, 1202, 631, 1202, 1693 -1323, -1323, 1202, 1199, -1323, 1208, 1210, 1211, 1717, -1323, 1694 -1323, -1323, 5958, -1323, -1323, -1323, -1323, 1209, 10214, 1212, 1695 631, -1323, 10214, -1323, 631, -1323, -1323, 10214, -1323, 558, 1696 985, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1006, 1697 9023, -1323, -1323, 7206, 1218, -1323, 674, 985, -1323, 813, 1698 861, 985, -1323, 844, 4029, -1323, -1323, -1323, 9660, 9660, 1699 -1323, 8359, 8359, -1323, 1215, 1216, 1225, 1230, -1323, 1232, 1700 685, 82, 1125, -1323, 631, -1323, 5225, -1323, 10214, 564, 1701 -1323, 6373, 1236, 1240, 10100, 1242, 1243, 70, 79, 96, 1702 10214, 1244, 285, 10214, 10214, 1227, 1249, 522, 1222, -1323, 1703 -1323, -1323, 1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1704 -1323, -1323, 733, 1254, 10214, -1323, 9660, 9660, 85, 1257, 1705 -1323, 9054, -1323, -1323, 752, -1323, 3114, -1323, -1323, -1323, 1706 -1323, 1065, -1323, -1323, 1255, -1323, -1323, -1323, -1323, 1258, 1707 1901, -1323, -1323, 1245, -1323, 1091, -1323, -1323, 1899, 1260, 1708 -1323, -1323, -1323, 713, 1264, -1323, 94, 1269, 10366, 1252, 1709 94, 94, 1262, 3527, 879, 985, -1323, -1323, 1076, 10214, 1710 1273, 1209, 358, 204, 1270, -1323, -1323, 1275, 1270, -1323, 1711 -1323, 1278, -1323, -1323, 1033, 1280, 1284, 6730, 1285, 1290, 1712 1291, -1323, -1323, 1286, -1323, -1323, 1033, -1323, -1323, -1323, 1713 -1323, 1033, 10214, 10214, 1006, 1294, -1323, -1323, -1323, -1323, 1714 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366, 1715 1300, 1302, 1270, -1323, -1323, 733, -1323, -1323, -1323, 5213, 1716 9583, 10214, 10214, 1374, 10214, -1323, 1295, -1323, 1296, -1323, 1717 1297, 10214, 1301, 10214, 1105, 1304, 12, 85, 9289, 1625, 1718 -1323, -1323, 6174, 1322, 573, -1323, -1323, -1323, -1323, -1323, 1719 -1323, -1323, -1323, -1323, 9920, -1323, 8432, 1330, -1323, -1323, 1720 9583, 576, 602, -1323, 1331, 1315, 956, 1337, -1323, 329, 1721 -1323, -1323, -1323, -1323, 1033, 1339, -1323, -1323, 1320, 486, 1722 509, 631, 1340, -1323, 1344, -1323, 9660, -1323, -1323, -1323, 1723 -1323, -1323, 1347, -1323, 9660, 9660, 9660, -1323, -1323, 1348, 1724 -1323, 1351, 1354, 1355, 716, 8056, 8171, -1323, -1323, 529, 1725 -1323, 1357, 1362, -1323, 8505, 721, 730, 1358, 761, 3837, 1726 -1323, -1323, -1323, 605, -1323, 766, 1366, 1367, 285, 1419, 1727 834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323, 1728 1370, 1375, -1323, -1323, -1323, 1372, -1323, -1323, -1323, -1323, 1729 -1323, -1323, 9583, 956, 1379, -1323, 1352, 956, 9660, -1323, 1730 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1731 -1323, -1323, -1323, 1378, 1382, -1323, -1323, -1323, -1323, -1323, 1732 -1323, -1323, 1387, -1323, 1386, -1323, -1323, 10100, 289, 10214, 1733 10100, -1323, 1389, 10214, -1323, 318, 1405, 1406, -1323, -1323, 1734 1399, 1400, 1380, -1323, 821, -1323, -1323, -1323, 934, 1899, 1735 1396, -1323, 402, 10366, -1323, 785, -1323, 631, 631, 1407, 1736 1408, 1413, 1415, -1323, -1323, 8359, 1414, -1323, 1490, 10366, 1737 1385, -1323, -1323, 10012, -1323, 800, -1323, 1402, 10100, 1403, 1738 -1323, -1323, 1426, -1323, 1427, -1323, 1445, 1446, -1323, 1411, 1739 9583, -1323, -1323, -1323, 956, 631, 1434, 1417, 1435, 1270, 1740 1270, -1323, -1323, -1323, -1323, -1323, 10100, 107, -1323, 433, 1741 -1323, -1323, 7793, -1323, -1323, 1418, 10214, -1323, 10214, 7793, 1742 285, 9512, 285, 9512, 1436, -1323, 1442, -1323, -1323, 1440, 1743 -1323, -1323, 825, -1323, -1323, -1323, 1444, 1449, -1323, 10366, 1744 10366, -1323, -1323, 909, 211, -1323, -1323, 1425, -1323, 909, 1745 -1323, -1323, 2166, 631, -1323, -1323, 285, 9512, 285, 9512, 1746 1453, 1431, 631, -1323, -1323, -1323, -1323, 10012, 1443, 909, 1747 6091, 10214, 9924, 1452, 909, 1454, 2166, 3344, -1323, -1323, 1748 -1323, 1458, -1323, -1323, -1323, -1323, 8797, -1323, -1323, -1323, 1749 9791, -1323, 10012, -1323, -1323, 1438, 9703, -1323, -1323, 9924, 1750 285, 3344, 285, 1464, 1466, 853, -1323, 9791, -1323, -1323, 1751 -1323, 9703, -1323, -1323, -1323, 285, 285, -1323, -1323, -1323, 1752 -1323, -1323, -1323, -1323, -1323 1753 }; 1754 1755 /* YYPGOTO[NTERM-NUM]. */ 1756 static const yytype_int16 yypgoto[] = 1757 { 1758 -1323, 4572, 3263, -1323, 197, -1323, 601, 950, -251, 910, 1759 -1323, 521, -520, -467, -853, -64, 3183, 0, -1323, -150, 1760 423, 446, 477, 450, 1016, 1025, 1019, 1026, 1028, -1323, 1761 -622, -408, 5012, -745, -1323, -735, 604, 472, -656, 413, 1762 -1323, 1279, -1323, 374, -1058, -1323, -1323, 126, -1323, -823, 1763 -1106, 222, -1323, -1323, -1323, -1323, 58, -1209, -1323, -1323, 1764 -1323, -1323, -1323, -1323, 301, -1149, 35, -1323, -933, -1323, 1765 482, 274, -1323, 159, -1323, -303, -1323, -1323, -1323, 535, 1766 -827, -1323, -1323, 15, -1007, 71, 28, -1323, -1323, -1323, 1767 -21, -1323, 357, 1253, -198, 1636, 4113, -1323, -1323, 80, 1768 54, 422, 1473, -1323, 1886, -1323, -1323, 192, 2183, -1323, 1769 2495, 898, -1323, -1323, -1323, -638, -1323, 924, 925, 524, 1770 699, 83, -1323, -1323, -1323, 915, 695, -339, -1323, -106, 1771 34, 1281, -1323, -1323, -847, -986, 1046, 1127, 1039, 5, 1772 -1323, 1536, 481, -165, -210, -124, 651, 758, -1323, 979, 1773 -1323, 2789, 1548, -413, 904, -1323, -1323, 689, -1323, -235, 1774 -1323, 158, -1323, -1323, -1323, -1257, 401, -1323, -1323, -1323, 1775 1148, -1323, 21, -1323, -1323, -858, -105, -1322, -129, 2267, 1776 -1323, 2391, -1323, 906, -1323, -184, 59, -180, -173, -170, 1777 7, -40, -35, -33, 60, -6, 25, 93, -168, -164, 1778 -158, -147, -144, -292, -471, -462, -452, -551, -302, -537, 1779 -1323, -1323, -511, 1069, 1072, 1074, 2608, 4844, -578, -514, 1780 -502, -495, -500, -1323, -508, -724, -717, -708, -590, -305, 1781 -195, -1323, -1323, 246, 19, 36, -1323, 3865, 104, -623, 1782 -397 1783 }; 1784 1785 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1786 positive, shift that token. If negative, reduce the rule which 1787 number is the opposite. If YYTABLE_NINF, syntax error. */ 1788 #define YYTABLE_NINF -522 1297 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1298 positive, shift that token. If negative, reduce the rule whose 1299 number is the opposite. If YYTABLE_NINF, syntax error. */ 1789 1300 static const yytype_int16 yytable[] = 1790 1301 { … … 2878 2389 }; 2879 2390 2880 #define yypact_value_is_default(yystate) \2881 ((yystate) == (-1323))2882 2883 #define yytable_value_is_error(yytable_value) \2884 YYID (0)2885 2886 2391 static const yytype_int16 yycheck[] = 2887 2392 { … … 3975 3480 }; 3976 3481 3977 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing3978 symbol of state STATE-NUM. */3482 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3483 symbol of state STATE-NUM. */ 3979 3484 static const yytype_uint16 yystos[] = 3980 3485 { … … 4137 3642 }; 4138 3643 4139 #define yyerrok (yyerrstatus = 0) 4140 #define yyclearin (yychar = YYEMPTY) 4141 #define YYEMPTY (-2) 4142 #define YYEOF 0 4143 4144 #define YYACCEPT goto yyacceptlab 4145 #define YYABORT goto yyabortlab 4146 #define YYERROR goto yyerrorlab 4147 4148 4149 /* Like YYERROR except do call yyerror. This remains here temporarily 4150 to ease the transition to the new meaning of YYERROR, for GCC. 4151 Once GCC version 2 has supplanted version 1, this can go. However, 4152 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4153 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4154 discussed. */ 4155 4156 #define YYFAIL goto yyerrlab 4157 #if defined YYFAIL 4158 /* This is here to suppress warnings from the GCC cpp's 4159 -Wunused-macros. Normally we don't worry about that warning, but 4160 some users do, and we want to make it easy for users to remove 4161 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4162 #endif 3644 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3645 static const yytype_uint16 yyr1[] = 3646 { 3647 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 3648 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 3649 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 3650 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 3651 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 3652 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 3653 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 3654 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 3655 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 3656 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 3657 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 3658 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 3659 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 3660 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 3661 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 3662 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 3663 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 3664 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 3665 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 3666 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 3667 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 3668 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 3669 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 3670 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 3671 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 3672 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 3673 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 3674 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 3675 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 3676 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 3677 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 3678 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 3679 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 3680 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 3681 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 3682 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 3683 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 3684 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 3685 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 3686 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 3687 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 3688 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 3689 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 3690 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 3691 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 3692 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 3693 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 3694 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 3695 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 3696 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 3697 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 3698 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 3699 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 3700 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 3701 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 3702 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 3703 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 3704 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 3705 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 3706 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 3707 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 3708 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 3709 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 3710 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 3711 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 3712 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 3713 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 3714 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 3715 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 3716 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 3717 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 3718 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 3719 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 3720 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 3721 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 3722 373, 373 3723 }; 3724 3725 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3726 static const yytype_uint8 yyr2[] = 3727 { 3728 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3729 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3730 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 3731 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 3732 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 3733 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 3734 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 3735 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3736 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3737 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 3738 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 3739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3740 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 3741 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 3742 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 3743 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 3744 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 3745 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 3746 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 3747 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 3748 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 3749 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 3750 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 3751 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3752 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 3753 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 3754 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 3755 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 3756 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 3757 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 3758 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 3759 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3761 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 3762 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 3763 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 3764 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 3765 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 3766 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 3767 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 3768 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 3769 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 3770 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 3771 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 3772 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3773 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 3774 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 3775 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 3776 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 3777 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 3778 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 3779 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 3780 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 3781 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 3782 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 3783 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 3784 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 3785 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 3786 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 3787 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 3788 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 3789 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 3790 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 3791 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 3792 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 3793 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 3794 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 3795 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 3796 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 3797 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 3798 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 3799 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 3800 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 3801 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 3802 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 3803 0, 2 3804 }; 3805 3806 3807 #define yyerrok (yyerrstatus = 0) 3808 #define yyclearin (yychar = YYEMPTY) 3809 #define YYEMPTY (-2) 3810 #define YYEOF 0 3811 3812 #define YYACCEPT goto yyacceptlab 3813 #define YYABORT goto yyabortlab 3814 #define YYERROR goto yyerrorlab 3815 4163 3816 4164 3817 #define YYRECOVERING() (!!yyerrstatus) 4165 3818 4166 #define YYBACKUP(Token, Value) \ 4167 do \ 4168 if (yychar == YYEMPTY && yylen == 1) \ 4169 { \ 4170 yychar = (Token); \ 4171 yylval = (Value); \ 4172 YYPOPSTACK (1); \ 4173 goto yybackup; \ 4174 } \ 4175 else \ 4176 { \ 3819 #define YYBACKUP(Token, Value) \ 3820 do \ 3821 if (yychar == YYEMPTY) \ 3822 { \ 3823 yychar = (Token); \ 3824 yylval = (Value); \ 3825 YYPOPSTACK (yylen); \ 3826 yystate = *yyssp; \ 3827 goto yybackup; \ 3828 } \ 3829 else \ 3830 { \ 4177 3831 yyerror (YY_("syntax error: cannot back up")); \ 4178 YYERROR; \ 4179 } \ 4180 while (YYID (0)) 4181 4182 4183 #define YYTERROR 1 4184 #define YYERRCODE 256 4185 4186 4187 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4188 If N is 0, then set CURRENT to the empty location which ends 4189 the previous symbol: RHS[0] (always defined). */ 4190 4191 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4192 #ifndef YYLLOC_DEFAULT 4193 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4194 do \ 4195 if (YYID (N)) \ 4196 { \ 4197 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4198 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4199 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4200 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4201 } \ 4202 else \ 4203 { \ 4204 (Current).first_line = (Current).last_line = \ 4205 YYRHSLOC (Rhs, 0).last_line; \ 4206 (Current).first_column = (Current).last_column = \ 4207 YYRHSLOC (Rhs, 0).last_column; \ 4208 } \ 4209 while (YYID (0)) 4210 #endif 4211 4212 4213 /* This macro is provided for backward compatibility. */ 4214 4215 #ifndef YY_LOCATION_PRINT 4216 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4217 #endif 4218 4219 4220 /* YYLEX -- calling `yylex' with the right arguments. */ 4221 4222 #ifdef YYLEX_PARAM 4223 # define YYLEX yylex (YYLEX_PARAM) 4224 #else 4225 # define YYLEX yylex () 4226 #endif 3832 YYERROR; \ 3833 } \ 3834 while (0) 3835 3836 /* Error token number */ 3837 #define YYTERROR 1 3838 #define YYERRCODE 256 3839 3840 4227 3841 4228 3842 /* Enable debugging if requested. */ … … 4234 3848 # endif 4235 3849 4236 # define YYDPRINTF(Args) \ 4237 do { \ 4238 if (yydebug) \ 4239 YYFPRINTF Args; \ 4240 } while (YYID (0)) 4241 4242 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4243 do { \ 4244 if (yydebug) \ 4245 { \ 4246 YYFPRINTF (stderr, "%s ", Title); \ 4247 yy_symbol_print (stderr, \ 4248 Type, Value); \ 4249 YYFPRINTF (stderr, "\n"); \ 4250 } \ 4251 } while (YYID (0)) 4252 4253 4254 /*--------------------------------. 4255 | Print this symbol on YYOUTPUT. | 4256 `--------------------------------*/ 4257 4258 /*ARGSUSED*/ 4259 #if (defined __STDC__ || defined __C99__FUNC__ \ 4260 || defined __cplusplus || defined _MSC_VER) 3850 # define YYDPRINTF(Args) \ 3851 do { \ 3852 if (yydebug) \ 3853 YYFPRINTF Args; \ 3854 } while (0) 3855 3856 /* This macro is provided for backward compatibility. */ 3857 #ifndef YY_LOCATION_PRINT 3858 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3859 #endif 3860 3861 3862 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3863 do { \ 3864 if (yydebug) \ 3865 { \ 3866 YYFPRINTF (stderr, "%s ", Title); \ 3867 yy_symbol_print (stderr, \ 3868 Type, Value); \ 3869 YYFPRINTF (stderr, "\n"); \ 3870 } \ 3871 } while (0) 3872 3873 3874 /*----------------------------------------. 3875 | Print this symbol's value on YYOUTPUT. | 3876 `----------------------------------------*/ 3877 4261 3878 static void 4262 3879 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4263 #else4264 static void4265 yy_symbol_value_print (yyoutput, yytype, yyvaluep)4266 FILE *yyoutput;4267 int yytype;4268 YYSTYPE const * const yyvaluep;4269 #endif4270 3880 { 3881 FILE *yyo = yyoutput; 3882 YYUSE (yyo); 4271 3883 if (!yyvaluep) 4272 3884 return; … … 4274 3886 if (yytype < YYNTOKENS) 4275 3887 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4276 # else4277 YYUSE (yyoutput);4278 3888 # endif 4279 switch (yytype) 4280 { 4281 default: 4282 break; 4283 } 3889 YYUSE (yytype); 4284 3890 } 4285 3891 … … 4289 3895 `--------------------------------*/ 4290 3896 4291 #if (defined __STDC__ || defined __C99__FUNC__ \4292 || defined __cplusplus || defined _MSC_VER)4293 3897 static void 4294 3898 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4295 #else4296 static void4297 yy_symbol_print (yyoutput, yytype, yyvaluep)4298 FILE *yyoutput;4299 int yytype;4300 YYSTYPE const * const yyvaluep;4301 #endif4302 3899 { 4303 if (yytype < YYNTOKENS) 4304 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4305 else 4306 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3900 YYFPRINTF (yyoutput, "%s %s (", 3901 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4307 3902 4308 3903 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 4315 3910 `------------------------------------------------------------------*/ 4316 3911 4317 #if (defined __STDC__ || defined __C99__FUNC__ \4318 || defined __cplusplus || defined _MSC_VER)4319 3912 static void 4320 3913 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4321 #else4322 static void4323 yy_stack_print (yybottom, yytop)4324 yytype_int16 *yybottom;4325 yytype_int16 *yytop;4326 #endif4327 3914 { 4328 3915 YYFPRINTF (stderr, "Stack now"); … … 4335 3922 } 4336 3923 4337 # define YY_STACK_PRINT(Bottom, Top) 4338 do { 4339 if (yydebug) 4340 yy_stack_print ((Bottom), (Top)); 4341 } while ( YYID (0))3924 # define YY_STACK_PRINT(Bottom, Top) \ 3925 do { \ 3926 if (yydebug) \ 3927 yy_stack_print ((Bottom), (Top)); \ 3928 } while (0) 4342 3929 4343 3930 … … 4346 3933 `------------------------------------------------*/ 4347 3934 4348 #if (defined __STDC__ || defined __C99__FUNC__ \4349 || defined __cplusplus || defined _MSC_VER)4350 3935 static void 4351 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4352 #else 4353 static void 4354 yy_reduce_print (yyvsp, yyrule) 4355 YYSTYPE *yyvsp; 4356 int yyrule; 4357 #endif 3936 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4358 3937 { 3938 unsigned long int yylno = yyrline[yyrule]; 4359 3939 int yynrhs = yyr2[yyrule]; 4360 3940 int yyi; 4361 unsigned long int yylno = yyrline[yyrule];4362 3941 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 4363 3942 yyrule - 1, yylno); 4364 3943 /* The symbols being reduced. */ 4365 3944 for (yyi = 0; yyi < yynrhs; yyi++) 4366 3945 { 4367 3946 YYFPRINTF (stderr, " $%d = ", yyi + 1); 4368 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4369 &(yyvsp[(yyi + 1) - (yynrhs)]) 4370 ); 3947 yy_symbol_print (stderr, 3948 yystos[yyssp[yyi + 1 - yynrhs]], 3949 &(yyvsp[(yyi + 1) - (yynrhs)]) 3950 ); 4371 3951 YYFPRINTF (stderr, "\n"); 4372 3952 } 4373 3953 } 4374 3954 4375 # define YY_REDUCE_PRINT(Rule) 4376 do { 4377 if (yydebug) 4378 yy_reduce_print (yy vsp, Rule); \4379 } while ( YYID (0))3955 # define YY_REDUCE_PRINT(Rule) \ 3956 do { \ 3957 if (yydebug) \ 3958 yy_reduce_print (yyssp, yyvsp, Rule); \ 3959 } while (0) 4380 3960 4381 3961 /* Nonzero means print parse trace. It is left uninitialized so that … … 4391 3971 4392 3972 /* YYINITDEPTH -- initial size of the parser's stacks. */ 4393 #ifndef 3973 #ifndef YYINITDEPTH 4394 3974 # define YYINITDEPTH 200 4395 3975 #endif … … 4414 3994 # else 4415 3995 /* Return the length of YYSTR. */ 4416 #if (defined __STDC__ || defined __C99__FUNC__ \4417 || defined __cplusplus || defined _MSC_VER)4418 3996 static YYSIZE_T 4419 3997 yystrlen (const char *yystr) 4420 #else4421 static YYSIZE_T4422 yystrlen (yystr)4423 const char *yystr;4424 #endif4425 3998 { 4426 3999 YYSIZE_T yylen; … … 4438 4011 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4439 4012 YYDEST. */ 4440 #if (defined __STDC__ || defined __C99__FUNC__ \4441 || defined __cplusplus || defined _MSC_VER)4442 4013 static char * 4443 4014 yystpcpy (char *yydest, const char *yysrc) 4444 #else4445 static char *4446 yystpcpy (yydest, yysrc)4447 char *yydest;4448 const char *yysrc;4449 #endif4450 4015 { 4451 4016 char *yyd = yydest; … … 4477 4042 4478 4043 for (;;) 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4044 switch (*++yyp) 4045 { 4046 case '\'': 4047 case ',': 4048 goto do_not_strip_quotes; 4049 4050 case '\\': 4051 if (*++yyp != '\\') 4052 goto do_not_strip_quotes; 4053 /* Fall through. */ 4054 default: 4055 if (yyres) 4056 yyres[yyn] = *yyp; 4057 yyn++; 4058 break; 4059 4060 case '"': 4061 if (yyres) 4062 yyres[yyn] = '\0'; 4063 return yyn; 4064 } 4500 4065 do_not_strip_quotes: ; 4501 4066 } … … 4520 4085 yytype_int16 *yyssp, int yytoken) 4521 4086 { 4522 YYSIZE_T yysize0 = yytnamerr ( 0, yytname[yytoken]);4087 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 4523 4088 YYSIZE_T yysize = yysize0; 4524 YYSIZE_T yysize1;4525 4089 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4526 4090 /* Internationalized format string. */ 4527 const char *yyformat = 0;4091 const char *yyformat = YY_NULLPTR; 4528 4092 /* Arguments of yyformat. */ 4529 4093 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4533 4097 4534 4098 /* There are many possibilities here to consider: 4535 - Assume YYFAIL is not used. It's too flawed to consider. See4536 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>4537 for details. YYERROR is fine as it does not invoke this4538 function.4539 4099 - If this state is a consistent state with a default action, then 4540 4100 the only way this function was invoked is if the default action … … 4585 4145 } 4586 4146 yyarg[yycount++] = yytname[yyx]; 4587 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4588 if (! (yysize <= yysize1 4589 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4590 return 2; 4591 yysize = yysize1; 4147 { 4148 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4149 if (! (yysize <= yysize1 4150 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4151 return 2; 4152 yysize = yysize1; 4153 } 4592 4154 } 4593 4155 } … … 4609 4171 } 4610 4172 4611 yysize1 = yysize + yystrlen (yyformat); 4612 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4613 return 2; 4614 yysize = yysize1; 4173 { 4174 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4175 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4176 return 2; 4177 yysize = yysize1; 4178 } 4615 4179 4616 4180 if (*yymsg_alloc < yysize) … … 4649 4213 `-----------------------------------------------*/ 4650 4214 4651 /*ARGSUSED*/4652 #if (defined __STDC__ || defined __C99__FUNC__ \4653 || defined __cplusplus || defined _MSC_VER)4654 4215 static void 4655 4216 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4656 #else4657 static void4658 yydestruct (yymsg, yytype, yyvaluep)4659 const char *yymsg;4660 int yytype;4661 YYSTYPE *yyvaluep;4662 #endif4663 4217 { 4664 4218 YYUSE (yyvaluep); 4665 4666 4219 if (!yymsg) 4667 4220 yymsg = "Deleting"; 4668 4221 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4669 4222 4670 switch (yytype) 4671 { 4672 4673 default: 4674 break; 4675 } 4223 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4224 YYUSE (yytype); 4225 YY_IGNORE_MAYBE_UNINITIALIZED_END 4676 4226 } 4677 4227 4678 4228 4679 /* Prevent warnings from -Wmissing-prototypes. */4680 #ifdef YYPARSE_PARAM4681 #if defined __STDC__ || defined __cplusplus4682 int yyparse (void *YYPARSE_PARAM);4683 #else4684 int yyparse ();4685 #endif4686 #else /* ! YYPARSE_PARAM */4687 #if defined __STDC__ || defined __cplusplus4688 int yyparse (void);4689 #else4690 int yyparse ();4691 #endif4692 #endif /* ! YYPARSE_PARAM */4693 4229 4694 4230 … … 4698 4234 /* The semantic value of the lookahead symbol. */ 4699 4235 YYSTYPE yylval; 4700 4701 4236 /* Number of syntax errors so far. */ 4702 4237 int yynerrs; … … 4707 4242 `----------*/ 4708 4243 4709 #ifdef YYPARSE_PARAM4710 #if (defined __STDC__ || defined __C99__FUNC__ \4711 || defined __cplusplus || defined _MSC_VER)4712 int4713 yyparse (void *YYPARSE_PARAM)4714 #else4715 int4716 yyparse (YYPARSE_PARAM)4717 void *YYPARSE_PARAM;4718 #endif4719 #else /* ! YYPARSE_PARAM */4720 #if (defined __STDC__ || defined __C99__FUNC__ \4721 || defined __cplusplus || defined _MSC_VER)4722 4244 int 4723 4245 yyparse (void) 4724 #else4725 int4726 yyparse ()4727 4728 #endif4729 #endif4730 4246 { 4731 4247 int yystate; … … 4734 4250 4735 4251 /* The stacks and their tools: 4736 `yyss': related to states.4737 `yyvs': related to semantic values.4738 4739 Refer to the stacks thr useparate pointers, to allow yyoverflow4252 'yyss': related to states. 4253 'yyvs': related to semantic values. 4254 4255 Refer to the stacks through separate pointers, to allow yyoverflow 4740 4256 to reallocate them elsewhere. */ 4741 4257 … … 4755 4271 int yyresult; 4756 4272 /* Lookahead token as an internal (translated) token number. */ 4757 int yytoken ;4273 int yytoken = 0; 4758 4274 /* The variables used to return semantic value and location from the 4759 4275 action routines. */ … … 4773 4289 int yylen = 0; 4774 4290 4775 yytoken = 0; 4776 yyss = yyssa; 4777 yyvs = yyvsa; 4291 yyssp = yyss = yyssa; 4292 yyvsp = yyvs = yyvsa; 4778 4293 yystacksize = YYINITDEPTH; 4779 4294 … … 4784 4299 yynerrs = 0; 4785 4300 yychar = YYEMPTY; /* Cause a token to be read. */ 4786 4787 /* Initialize stack pointers.4788 Waste one element of value and location stack4789 so that they stay on the same level as the state stack.4790 The wasted elements are never initialized. */4791 yyssp = yyss;4792 yyvsp = yyvs;4793 4794 4301 goto yysetstate; 4795 4302 … … 4812 4319 #ifdef yyoverflow 4813 4320 { 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4321 /* Give user a chance to reallocate the stack. Use copies of 4322 these so that the &'s don't force the real ones into 4323 memory. */ 4324 YYSTYPE *yyvs1 = yyvs; 4325 yytype_int16 *yyss1 = yyss; 4326 4327 /* Each stack pointer address is followed by the size of the 4328 data in use in that stack, in bytes. This used to be a 4329 conditional around just the two extra args, but that might 4330 be undefined if yyoverflow is a macro. */ 4331 yyoverflow (YY_("memory exhausted"), 4332 &yyss1, yysize * sizeof (*yyssp), 4333 &yyvs1, yysize * sizeof (*yyvsp), 4334 &yystacksize); 4335 4336 yyss = yyss1; 4337 yyvs = yyvs1; 4831 4338 } 4832 4339 #else /* no yyoverflow */ … … 4836 4343 /* Extend the stack our own way. */ 4837 4344 if (YYMAXDEPTH <= yystacksize) 4838 4345 goto yyexhaustedlab; 4839 4346 yystacksize *= 2; 4840 4347 if (YYMAXDEPTH < yystacksize) 4841 4348 yystacksize = YYMAXDEPTH; 4842 4349 4843 4350 { 4844 4845 4846 4847 4848 4849 4850 4351 yytype_int16 *yyss1 = yyss; 4352 union yyalloc *yyptr = 4353 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4354 if (! yyptr) 4355 goto yyexhaustedlab; 4356 YYSTACK_RELOCATE (yyss_alloc, yyss); 4357 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4851 4358 # undef YYSTACK_RELOCATE 4852 4853 4359 if (yyss1 != yyssa) 4360 YYSTACK_FREE (yyss1); 4854 4361 } 4855 4362 # endif … … 4860 4367 4861 4368 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4862 4369 (unsigned long int) yystacksize)); 4863 4370 4864 4371 if (yyss + yystacksize - 1 <= yyssp) 4865 4372 YYABORT; 4866 4373 } 4867 4374 … … 4892 4399 { 4893 4400 YYDPRINTF ((stderr, "Reading a token: ")); 4894 yychar = YYLEX;4401 yychar = yylex (); 4895 4402 } 4896 4403 … … 4932 4439 4933 4440 yystate = yyn; 4441 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4934 4442 *++yyvsp = yylval; 4443 YY_IGNORE_MAYBE_UNINITIALIZED_END 4935 4444 4936 4445 goto yynewstate; … … 4955 4464 4956 4465 /* If YYLEN is nonzero, implement the default value of the action: 4957 `$$ = $1'.4466 '$$ = $1'. 4958 4467 4959 4468 Otherwise, the following line sets YYVAL to garbage. … … 4969 4478 { 4970 4479 case 2: 4971 4972 /* Line 1806 of yacc.c */ 4973 #line 300 "parser.yy" 4480 #line 300 "parser.yy" /* yacc.c:1646 */ 4974 4481 { typedefTable.enterScope(); } 4482 #line 4483 "Parser/parser.cc" /* yacc.c:1646 */ 4975 4483 break; 4976 4484 4977 4485 case 3: 4978 4979 /* Line 1806 of yacc.c */ 4980 #line 304 "parser.yy" 4486 #line 304 "parser.yy" /* yacc.c:1646 */ 4981 4487 { typedefTable.leaveScope(); } 4488 #line 4489 "Parser/parser.cc" /* yacc.c:1646 */ 4982 4489 break; 4983 4490 4984 4491 case 4: 4985 4986 /* Line 1806 of yacc.c */ 4987 #line 311 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4492 #line 311 "parser.yy" /* yacc.c:1646 */ 4493 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); } 4494 #line 4495 "Parser/parser.cc" /* yacc.c:1646 */ 4989 4495 break; 4990 4496 4991 4497 case 5: 4992 4993 /* Line 1806 of yacc.c */ 4994 #line 312 "parser.yy" 4995 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4498 #line 312 "parser.yy" /* yacc.c:1646 */ 4499 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4500 #line 4501 "Parser/parser.cc" /* yacc.c:1646 */ 4996 4501 break; 4997 4502 4998 4503 case 6: 4999 5000 /* Line 1806 of yacc.c */ 5001 #line 313 "parser.yy" 5002 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4504 #line 313 "parser.yy" /* yacc.c:1646 */ 4505 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); } 4506 #line 4507 "Parser/parser.cc" /* yacc.c:1646 */ 5003 4507 break; 5004 4508 5005 4509 case 16: 5006 5007 /* Line 1806 of yacc.c */ 5008 #line 338 "parser.yy" 5009 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4510 #line 338 "parser.yy" /* yacc.c:1646 */ 4511 { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); } 4512 #line 4513 "Parser/parser.cc" /* yacc.c:1646 */ 5010 4513 break; 5011 4514 5012 4515 case 17: 5013 5014 /* Line 1806 of yacc.c */ 5015 #line 342 "parser.yy" 5016 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4516 #line 342 "parser.yy" /* yacc.c:1646 */ 4517 { (yyval.str) = (yyvsp[0].tok); } 4518 #line 4519 "Parser/parser.cc" /* yacc.c:1646 */ 5017 4519 break; 5018 4520 5019 4521 case 18: 5020 5021 /* Line 1806 of yacc.c */ 5022 #line 344 "parser.yy" 5023 { 5024 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st 5025 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5026 (yyval.str) = (yyvsp[(1) - (2)].str); // conversion from tok to str 4522 #line 344 "parser.yy" /* yacc.c:1646 */ 4523 { 4524 appendStr( (yyvsp[-1].str), (yyvsp[0].tok) ); // append 2nd juxtaposed string to 1st 4525 delete (yyvsp[0].tok); // allocated by lexer 4526 (yyval.str) = (yyvsp[-1].str); // conversion from tok to str 5027 4527 } 4528 #line 4529 "Parser/parser.cc" /* yacc.c:1646 */ 5028 4529 break; 5029 4530 5030 4531 case 19: 5031 5032 /* Line 1806 of yacc.c */ 5033 #line 355 "parser.yy" 5034 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4532 #line 355 "parser.yy" /* yacc.c:1646 */ 4533 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4534 #line 4535 "Parser/parser.cc" /* yacc.c:1646 */ 5035 4535 break; 5036 4536 5037 4537 case 20: 5038 5039 /* Line 1806 of yacc.c */ 5040 #line 357 "parser.yy" 5041 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4538 #line 357 "parser.yy" /* yacc.c:1646 */ 4539 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4540 #line 4541 "Parser/parser.cc" /* yacc.c:1646 */ 5042 4541 break; 5043 4542 5044 4543 case 21: 5045 5046 /* Line 1806 of yacc.c */ 5047 #line 359 "parser.yy" 5048 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4544 #line 359 "parser.yy" /* yacc.c:1646 */ 4545 { (yyval.en) = (yyvsp[-1].en); } 4546 #line 4547 "Parser/parser.cc" /* yacc.c:1646 */ 5049 4547 break; 5050 4548 5051 4549 case 22: 5052 5053 /* Line 1806 of yacc.c */ 5054 #line 361 "parser.yy" 5055 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4550 #line 361 "parser.yy" /* yacc.c:1646 */ 4551 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4552 #line 4553 "Parser/parser.cc" /* yacc.c:1646 */ 5056 4553 break; 5057 4554 5058 4555 case 24: 5059 5060 /* Line 1806 of yacc.c */ 5061 #line 371 "parser.yy" 5062 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4556 #line 371 "parser.yy" /* yacc.c:1646 */ 4557 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4558 #line 4559 "Parser/parser.cc" /* yacc.c:1646 */ 5063 4559 break; 5064 4560 5065 4561 case 25: 5066 5067 /* Line 1806 of yacc.c */ 5068 #line 373 "parser.yy" 5069 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4562 #line 373 "parser.yy" /* yacc.c:1646 */ 4563 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4564 #line 4565 "Parser/parser.cc" /* yacc.c:1646 */ 5070 4565 break; 5071 4566 5072 4567 case 26: 5073 5074 /* Line 1806 of yacc.c */ 5075 #line 377 "parser.yy" 5076 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4568 #line 377 "parser.yy" /* yacc.c:1646 */ 4569 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4570 #line 4571 "Parser/parser.cc" /* yacc.c:1646 */ 5077 4571 break; 5078 4572 5079 4573 case 28: 5080 5081 /* Line 1806 of yacc.c */ 5082 #line 380 "parser.yy" 5083 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4574 #line 380 "parser.yy" /* yacc.c:1646 */ 4575 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4576 #line 4577 "Parser/parser.cc" /* yacc.c:1646 */ 5084 4577 break; 5085 4578 5086 4579 case 30: 5087 5088 /* Line 1806 of yacc.c */ 5089 #line 383 "parser.yy" 5090 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4580 #line 383 "parser.yy" /* yacc.c:1646 */ 4581 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4582 #line 4583 "Parser/parser.cc" /* yacc.c:1646 */ 5091 4583 break; 5092 4584 5093 4585 case 31: 5094 5095 /* Line 1806 of yacc.c */ 5096 #line 385 "parser.yy" 5097 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4586 #line 385 "parser.yy" /* yacc.c:1646 */ 4587 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4588 #line 4589 "Parser/parser.cc" /* yacc.c:1646 */ 5098 4589 break; 5099 4590 5100 4591 case 32: 5101 5102 /* Line 1806 of yacc.c */ 5103 #line 387 "parser.yy" 5104 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4592 #line 387 "parser.yy" /* yacc.c:1646 */ 4593 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4594 #line 4595 "Parser/parser.cc" /* yacc.c:1646 */ 5105 4595 break; 5106 4596 5107 4597 case 33: 5108 5109 /* Line 1806 of yacc.c */ 5110 #line 389 "parser.yy" 4598 #line 389 "parser.yy" /* yacc.c:1646 */ 5111 4599 { 5112 4600 Token fn; 5113 4601 fn.str = new std::string( "?{}" ); // location undefined 5114 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );4602 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) ); 5115 4603 } 4604 #line 4605 "Parser/parser.cc" /* yacc.c:1646 */ 5116 4605 break; 5117 4606 5118 4607 case 35: 5119 5120 /* Line 1806 of yacc.c */ 5121 #line 399 "parser.yy" 5122 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4608 #line 399 "parser.yy" /* yacc.c:1646 */ 4609 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4610 #line 4611 "Parser/parser.cc" /* yacc.c:1646 */ 5123 4611 break; 5124 4612 5125 4613 case 36: 5126 5127 /* Line 1806 of yacc.c */ 5128 #line 404 "parser.yy" 4614 #line 404 "parser.yy" /* yacc.c:1646 */ 5129 4615 { (yyval.en) = 0; } 4616 #line 4617 "Parser/parser.cc" /* yacc.c:1646 */ 5130 4617 break; 5131 4618 5132 4619 case 39: 5133 5134 /* Line 1806 of yacc.c */ 5135 #line 410 "parser.yy" 5136 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4620 #line 410 "parser.yy" /* yacc.c:1646 */ 4621 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4622 #line 4623 "Parser/parser.cc" /* yacc.c:1646 */ 5137 4623 break; 5138 4624 5139 4625 case 40: 5140 5141 /* Line 1806 of yacc.c */ 5142 #line 415 "parser.yy" 5143 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4626 #line 415 "parser.yy" /* yacc.c:1646 */ 4627 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4628 #line 4629 "Parser/parser.cc" /* yacc.c:1646 */ 5144 4629 break; 5145 4630 5146 4631 case 41: 5147 5148 /* Line 1806 of yacc.c */ 5149 #line 419 "parser.yy" 5150 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4632 #line 419 "parser.yy" /* yacc.c:1646 */ 4633 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4634 #line 4635 "Parser/parser.cc" /* yacc.c:1646 */ 5151 4635 break; 5152 4636 5153 4637 case 42: 5154 5155 /* Line 1806 of yacc.c */ 5156 #line 421 "parser.yy" 5157 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4638 #line 421 "parser.yy" /* yacc.c:1646 */ 4639 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4640 #line 4641 "Parser/parser.cc" /* yacc.c:1646 */ 5158 4641 break; 5159 4642 5160 4643 case 43: 5161 5162 /* Line 1806 of yacc.c */ 5163 #line 423 "parser.yy" 5164 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4644 #line 423 "parser.yy" /* yacc.c:1646 */ 4645 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4646 #line 4647 "Parser/parser.cc" /* yacc.c:1646 */ 5165 4647 break; 5166 4648 5167 4649 case 44: 5168 5169 /* Line 1806 of yacc.c */ 5170 #line 425 "parser.yy" 5171 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4650 #line 425 "parser.yy" /* yacc.c:1646 */ 4651 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4652 #line 4653 "Parser/parser.cc" /* yacc.c:1646 */ 5172 4653 break; 5173 4654 5174 4655 case 46: 5175 5176 /* Line 1806 of yacc.c */ 5177 #line 433 "parser.yy" 5178 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4656 #line 433 "parser.yy" /* yacc.c:1646 */ 4657 { (yyval.en) = (yyvsp[0].en); } 4658 #line 4659 "Parser/parser.cc" /* yacc.c:1646 */ 5179 4659 break; 5180 4660 5181 4661 case 47: 5182 5183 /* Line 1806 of yacc.c */ 5184 #line 435 "parser.yy" 5185 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4662 #line 435 "parser.yy" /* yacc.c:1646 */ 4663 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4664 #line 4665 "Parser/parser.cc" /* yacc.c:1646 */ 5186 4665 break; 5187 4666 5188 4667 case 48: 5189 5190 /* Line 1806 of yacc.c */ 5191 #line 437 "parser.yy" 5192 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4668 #line 437 "parser.yy" /* yacc.c:1646 */ 4669 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4670 #line 4671 "Parser/parser.cc" /* yacc.c:1646 */ 5193 4671 break; 5194 4672 5195 4673 case 49: 5196 5197 /* Line 1806 of yacc.c */ 5198 #line 442 "parser.yy" 5199 { 5200 switch ( (yyvsp[(1) - (2)].op) ) { 4674 #line 442 "parser.yy" /* yacc.c:1646 */ 4675 { 4676 switch ( (yyvsp[-1].op) ) { 5201 4677 case OperKinds::AddressOf: 5202 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ (2) - (2)].en) ) );4678 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) ); 5203 4679 break; 5204 4680 case OperKinds::PointTo: 5205 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ (1) - (2)].op), (yyvsp[(2) - (2)].en) ) );4681 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); 5206 4682 break; 5207 4683 default: … … 5209 4685 } 5210 4686 } 4687 #line 4688 "Parser/parser.cc" /* yacc.c:1646 */ 5211 4688 break; 5212 4689 5213 4690 case 50: 5214 5215 /* Line 1806 of yacc.c */ 5216 #line 455 "parser.yy" 5217 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4691 #line 455 "parser.yy" /* yacc.c:1646 */ 4692 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4693 #line 4694 "Parser/parser.cc" /* yacc.c:1646 */ 5218 4694 break; 5219 4695 5220 4696 case 51: 5221 5222 /* Line 1806 of yacc.c */ 5223 #line 457 "parser.yy" 5224 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4697 #line 457 "parser.yy" /* yacc.c:1646 */ 4698 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4699 #line 4700 "Parser/parser.cc" /* yacc.c:1646 */ 5225 4700 break; 5226 4701 5227 4702 case 52: 5228 5229 /* Line 1806 of yacc.c */ 5230 #line 459 "parser.yy" 5231 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4703 #line 459 "parser.yy" /* yacc.c:1646 */ 4704 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4705 #line 4706 "Parser/parser.cc" /* yacc.c:1646 */ 5232 4706 break; 5233 4707 5234 4708 case 53: 5235 5236 /* Line 1806 of yacc.c */ 5237 #line 461 "parser.yy" 5238 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4709 #line 461 "parser.yy" /* yacc.c:1646 */ 4710 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4711 #line 4712 "Parser/parser.cc" /* yacc.c:1646 */ 5239 4712 break; 5240 4713 5241 4714 case 54: 5242 5243 /* Line 1806 of yacc.c */ 5244 #line 463 "parser.yy" 5245 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4715 #line 463 "parser.yy" /* yacc.c:1646 */ 4716 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4717 #line 4718 "Parser/parser.cc" /* yacc.c:1646 */ 5246 4718 break; 5247 4719 5248 4720 case 55: 5249 5250 /* Line 1806 of yacc.c */ 5251 #line 465 "parser.yy" 5252 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4721 #line 465 "parser.yy" /* yacc.c:1646 */ 4722 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4723 #line 4724 "Parser/parser.cc" /* yacc.c:1646 */ 5253 4724 break; 5254 4725 5255 4726 case 56: 5256 5257 /* Line 1806 of yacc.c */ 5258 #line 467 "parser.yy" 5259 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4727 #line 467 "parser.yy" /* yacc.c:1646 */ 4728 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4729 #line 4730 "Parser/parser.cc" /* yacc.c:1646 */ 5260 4730 break; 5261 4731 5262 4732 case 57: 5263 5264 /* Line 1806 of yacc.c */ 5265 #line 469 "parser.yy" 5266 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4733 #line 469 "parser.yy" /* yacc.c:1646 */ 4734 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4735 #line 4736 "Parser/parser.cc" /* yacc.c:1646 */ 5267 4736 break; 5268 4737 5269 4738 case 58: 5270 5271 /* Line 1806 of yacc.c */ 5272 #line 471 "parser.yy" 5273 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4739 #line 471 "parser.yy" /* yacc.c:1646 */ 4740 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4741 #line 4742 "Parser/parser.cc" /* yacc.c:1646 */ 5274 4742 break; 5275 4743 5276 4744 case 59: 5277 5278 /* Line 1806 of yacc.c */ 5279 #line 473 "parser.yy" 5280 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4745 #line 473 "parser.yy" /* yacc.c:1646 */ 4746 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4747 #line 4748 "Parser/parser.cc" /* yacc.c:1646 */ 5281 4748 break; 5282 4749 5283 4750 case 60: 5284 5285 /* Line 1806 of yacc.c */ 5286 #line 475 "parser.yy" 5287 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4751 #line 475 "parser.yy" /* yacc.c:1646 */ 4752 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4753 #line 4754 "Parser/parser.cc" /* yacc.c:1646 */ 5288 4754 break; 5289 4755 5290 4756 case 61: 5291 5292 /* Line 1806 of yacc.c */ 5293 #line 481 "parser.yy" 4757 #line 481 "parser.yy" /* yacc.c:1646 */ 5294 4758 { (yyval.op) = OperKinds::PointTo; } 4759 #line 4760 "Parser/parser.cc" /* yacc.c:1646 */ 5295 4760 break; 5296 4761 5297 4762 case 62: 5298 5299 /* Line 1806 of yacc.c */ 5300 #line 482 "parser.yy" 4763 #line 482 "parser.yy" /* yacc.c:1646 */ 5301 4764 { (yyval.op) = OperKinds::AddressOf; } 4765 #line 4766 "Parser/parser.cc" /* yacc.c:1646 */ 5302 4766 break; 5303 4767 5304 4768 case 63: 5305 5306 /* Line 1806 of yacc.c */ 5307 #line 488 "parser.yy" 4769 #line 488 "parser.yy" /* yacc.c:1646 */ 5308 4770 { (yyval.op) = OperKinds::UnPlus; } 4771 #line 4772 "Parser/parser.cc" /* yacc.c:1646 */ 5309 4772 break; 5310 4773 5311 4774 case 64: 5312 5313 /* Line 1806 of yacc.c */ 5314 #line 489 "parser.yy" 4775 #line 489 "parser.yy" /* yacc.c:1646 */ 5315 4776 { (yyval.op) = OperKinds::UnMinus; } 4777 #line 4778 "Parser/parser.cc" /* yacc.c:1646 */ 5316 4778 break; 5317 4779 5318 4780 case 65: 5319 5320 /* Line 1806 of yacc.c */ 5321 #line 490 "parser.yy" 4781 #line 490 "parser.yy" /* yacc.c:1646 */ 5322 4782 { (yyval.op) = OperKinds::Neg; } 4783 #line 4784 "Parser/parser.cc" /* yacc.c:1646 */ 5323 4784 break; 5324 4785 5325 4786 case 66: 5326 5327 /* Line 1806 of yacc.c */ 5328 #line 491 "parser.yy" 4787 #line 491 "parser.yy" /* yacc.c:1646 */ 5329 4788 { (yyval.op) = OperKinds::BitNeg; } 4789 #line 4790 "Parser/parser.cc" /* yacc.c:1646 */ 5330 4790 break; 5331 4791 5332 4792 case 68: 5333 5334 /* Line 1806 of yacc.c */ 5335 #line 497 "parser.yy" 5336 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4793 #line 497 "parser.yy" /* yacc.c:1646 */ 4794 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4795 #line 4796 "Parser/parser.cc" /* yacc.c:1646 */ 5337 4796 break; 5338 4797 5339 4798 case 69: 5340 5341 /* Line 1806 of yacc.c */ 5342 #line 499 "parser.yy" 5343 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4799 #line 499 "parser.yy" /* yacc.c:1646 */ 4800 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4801 #line 4802 "Parser/parser.cc" /* yacc.c:1646 */ 5344 4802 break; 5345 4803 5346 4804 case 71: 5347 5348 /* Line 1806 of yacc.c */ 5349 #line 505 "parser.yy" 5350 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4805 #line 505 "parser.yy" /* yacc.c:1646 */ 4806 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4807 #line 4808 "Parser/parser.cc" /* yacc.c:1646 */ 5351 4808 break; 5352 4809 5353 4810 case 72: 5354 5355 /* Line 1806 of yacc.c */ 5356 #line 507 "parser.yy" 5357 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4811 #line 507 "parser.yy" /* yacc.c:1646 */ 4812 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4813 #line 4814 "Parser/parser.cc" /* yacc.c:1646 */ 5358 4814 break; 5359 4815 5360 4816 case 73: 5361 5362 /* Line 1806 of yacc.c */ 5363 #line 509 "parser.yy" 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4817 #line 509 "parser.yy" /* yacc.c:1646 */ 4818 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4819 #line 4820 "Parser/parser.cc" /* yacc.c:1646 */ 5365 4820 break; 5366 4821 5367 4822 case 75: 5368 5369 /* Line 1806 of yacc.c */ 5370 #line 515 "parser.yy" 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4823 #line 515 "parser.yy" /* yacc.c:1646 */ 4824 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4825 #line 4826 "Parser/parser.cc" /* yacc.c:1646 */ 5372 4826 break; 5373 4827 5374 4828 case 76: 5375 5376 /* Line 1806 of yacc.c */ 5377 #line 517 "parser.yy" 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4829 #line 517 "parser.yy" /* yacc.c:1646 */ 4830 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4831 #line 4832 "Parser/parser.cc" /* yacc.c:1646 */ 5379 4832 break; 5380 4833 5381 4834 case 78: 5382 5383 /* Line 1806 of yacc.c */ 5384 #line 523 "parser.yy" 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4835 #line 523 "parser.yy" /* yacc.c:1646 */ 4836 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4837 #line 4838 "Parser/parser.cc" /* yacc.c:1646 */ 5386 4838 break; 5387 4839 5388 4840 case 79: 5389 5390 /* Line 1806 of yacc.c */ 5391 #line 525 "parser.yy" 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4841 #line 525 "parser.yy" /* yacc.c:1646 */ 4842 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4843 #line 4844 "Parser/parser.cc" /* yacc.c:1646 */ 5393 4844 break; 5394 4845 5395 4846 case 81: 5396 5397 /* Line 1806 of yacc.c */ 5398 #line 531 "parser.yy" 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4847 #line 531 "parser.yy" /* yacc.c:1646 */ 4848 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4849 #line 4850 "Parser/parser.cc" /* yacc.c:1646 */ 5400 4850 break; 5401 4851 5402 4852 case 82: 5403 5404 /* Line 1806 of yacc.c */ 5405 #line 533 "parser.yy" 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4853 #line 533 "parser.yy" /* yacc.c:1646 */ 4854 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4855 #line 4856 "Parser/parser.cc" /* yacc.c:1646 */ 5407 4856 break; 5408 4857 5409 4858 case 83: 5410 5411 /* Line 1806 of yacc.c */ 5412 #line 535 "parser.yy" 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4859 #line 535 "parser.yy" /* yacc.c:1646 */ 4860 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4861 #line 4862 "Parser/parser.cc" /* yacc.c:1646 */ 5414 4862 break; 5415 4863 5416 4864 case 84: 5417 5418 /* Line 1806 of yacc.c */ 5419 #line 537 "parser.yy" 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4865 #line 537 "parser.yy" /* yacc.c:1646 */ 4866 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4867 #line 4868 "Parser/parser.cc" /* yacc.c:1646 */ 5421 4868 break; 5422 4869 5423 4870 case 86: 5424 5425 /* Line 1806 of yacc.c */ 5426 #line 543 "parser.yy" 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4871 #line 543 "parser.yy" /* yacc.c:1646 */ 4872 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4873 #line 4874 "Parser/parser.cc" /* yacc.c:1646 */ 5428 4874 break; 5429 4875 5430 4876 case 87: 5431 5432 /* Line 1806 of yacc.c */ 5433 #line 545 "parser.yy" 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4877 #line 545 "parser.yy" /* yacc.c:1646 */ 4878 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4879 #line 4880 "Parser/parser.cc" /* yacc.c:1646 */ 5435 4880 break; 5436 4881 5437 4882 case 89: 5438 5439 /* Line 1806 of yacc.c */ 5440 #line 551 "parser.yy" 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4883 #line 551 "parser.yy" /* yacc.c:1646 */ 4884 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4885 #line 4886 "Parser/parser.cc" /* yacc.c:1646 */ 5442 4886 break; 5443 4887 5444 4888 case 91: 5445 5446 /* Line 1806 of yacc.c */ 5447 #line 557 "parser.yy" 5448 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4889 #line 557 "parser.yy" /* yacc.c:1646 */ 4890 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4891 #line 4892 "Parser/parser.cc" /* yacc.c:1646 */ 5449 4892 break; 5450 4893 5451 4894 case 93: 5452 5453 /* Line 1806 of yacc.c */ 5454 #line 563 "parser.yy" 5455 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4895 #line 563 "parser.yy" /* yacc.c:1646 */ 4896 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4897 #line 4898 "Parser/parser.cc" /* yacc.c:1646 */ 5456 4898 break; 5457 4899 5458 4900 case 95: 5459 5460 /* Line 1806 of yacc.c */ 5461 #line 569 "parser.yy" 5462 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4901 #line 569 "parser.yy" /* yacc.c:1646 */ 4902 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4903 #line 4904 "Parser/parser.cc" /* yacc.c:1646 */ 5463 4904 break; 5464 4905 5465 4906 case 97: 5466 5467 /* Line 1806 of yacc.c */ 5468 #line 575 "parser.yy" 5469 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4907 #line 575 "parser.yy" /* yacc.c:1646 */ 4908 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4909 #line 4910 "Parser/parser.cc" /* yacc.c:1646 */ 5470 4910 break; 5471 4911 5472 4912 case 99: 5473 5474 /* Line 1806 of yacc.c */ 5475 #line 581 "parser.yy" 5476 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4913 #line 581 "parser.yy" /* yacc.c:1646 */ 4914 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4915 #line 4916 "Parser/parser.cc" /* yacc.c:1646 */ 5477 4916 break; 5478 4917 5479 4918 case 100: 5480 5481 /* Line 1806 of yacc.c */ 5482 #line 584 "parser.yy" 5483 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4919 #line 584 "parser.yy" /* yacc.c:1646 */ 4920 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4921 #line 4922 "Parser/parser.cc" /* yacc.c:1646 */ 5484 4922 break; 5485 4923 5486 4924 case 101: 5487 5488 /* Line 1806 of yacc.c */ 5489 #line 586 "parser.yy" 5490 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4925 #line 586 "parser.yy" /* yacc.c:1646 */ 4926 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4927 #line 4928 "Parser/parser.cc" /* yacc.c:1646 */ 5491 4928 break; 5492 4929 5493 4930 case 104: 5494 5495 /* Line 1806 of yacc.c */ 5496 #line 597 "parser.yy" 5497 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4931 #line 597 "parser.yy" /* yacc.c:1646 */ 4932 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4933 #line 4934 "Parser/parser.cc" /* yacc.c:1646 */ 5498 4934 break; 5499 4935 5500 4936 case 105: 5501 5502 /* Line 1806 of yacc.c */ 5503 #line 599 "parser.yy" 5504 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 4937 #line 599 "parser.yy" /* yacc.c:1646 */ 4938 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4939 #line 4940 "Parser/parser.cc" /* yacc.c:1646 */ 5505 4940 break; 5506 4941 5507 4942 case 106: 5508 5509 /* Line 1806 of yacc.c */ 5510 #line 604 "parser.yy" 4943 #line 604 "parser.yy" /* yacc.c:1646 */ 5511 4944 { (yyval.en) = nullptr; } 4945 #line 4946 "Parser/parser.cc" /* yacc.c:1646 */ 5512 4946 break; 5513 4947 5514 4948 case 108: 5515 5516 /* Line 1806 of yacc.c */ 5517 #line 609 "parser.yy" 4949 #line 609 "parser.yy" /* yacc.c:1646 */ 5518 4950 { (yyval.op) = OperKinds::Assign; } 4951 #line 4952 "Parser/parser.cc" /* yacc.c:1646 */ 5519 4952 break; 5520 4953 5521 4954 case 109: 5522 5523 /* Line 1806 of yacc.c */ 5524 #line 610 "parser.yy" 4955 #line 610 "parser.yy" /* yacc.c:1646 */ 5525 4956 { (yyval.op) = OperKinds::AtAssn; } 4957 #line 4958 "Parser/parser.cc" /* yacc.c:1646 */ 5526 4958 break; 5527 4959 5528 4960 case 110: 5529 5530 /* Line 1806 of yacc.c */ 5531 #line 611 "parser.yy" 4961 #line 611 "parser.yy" /* yacc.c:1646 */ 5532 4962 { (yyval.op) = OperKinds::MulAssn; } 4963 #line 4964 "Parser/parser.cc" /* yacc.c:1646 */ 5533 4964 break; 5534 4965 5535 4966 case 111: 5536 5537 /* Line 1806 of yacc.c */ 5538 #line 612 "parser.yy" 4967 #line 612 "parser.yy" /* yacc.c:1646 */ 5539 4968 { (yyval.op) = OperKinds::DivAssn; } 4969 #line 4970 "Parser/parser.cc" /* yacc.c:1646 */ 5540 4970 break; 5541 4971 5542 4972 case 112: 5543 5544 /* Line 1806 of yacc.c */ 5545 #line 613 "parser.yy" 4973 #line 613 "parser.yy" /* yacc.c:1646 */ 5546 4974 { (yyval.op) = OperKinds::ModAssn; } 4975 #line 4976 "Parser/parser.cc" /* yacc.c:1646 */ 5547 4976 break; 5548 4977 5549 4978 case 113: 5550 5551 /* Line 1806 of yacc.c */ 5552 #line 614 "parser.yy" 4979 #line 614 "parser.yy" /* yacc.c:1646 */ 5553 4980 { (yyval.op) = OperKinds::PlusAssn; } 4981 #line 4982 "Parser/parser.cc" /* yacc.c:1646 */ 5554 4982 break; 5555 4983 5556 4984 case 114: 5557 5558 /* Line 1806 of yacc.c */ 5559 #line 615 "parser.yy" 4985 #line 615 "parser.yy" /* yacc.c:1646 */ 5560 4986 { (yyval.op) = OperKinds::MinusAssn; } 4987 #line 4988 "Parser/parser.cc" /* yacc.c:1646 */ 5561 4988 break; 5562 4989 5563 4990 case 115: 5564 5565 /* Line 1806 of yacc.c */ 5566 #line 616 "parser.yy" 4991 #line 616 "parser.yy" /* yacc.c:1646 */ 5567 4992 { (yyval.op) = OperKinds::LSAssn; } 4993 #line 4994 "Parser/parser.cc" /* yacc.c:1646 */ 5568 4994 break; 5569 4995 5570 4996 case 116: 5571 5572 /* Line 1806 of yacc.c */ 5573 #line 617 "parser.yy" 4997 #line 617 "parser.yy" /* yacc.c:1646 */ 5574 4998 { (yyval.op) = OperKinds::RSAssn; } 4999 #line 5000 "Parser/parser.cc" /* yacc.c:1646 */ 5575 5000 break; 5576 5001 5577 5002 case 117: 5578 5579 /* Line 1806 of yacc.c */ 5580 #line 618 "parser.yy" 5003 #line 618 "parser.yy" /* yacc.c:1646 */ 5581 5004 { (yyval.op) = OperKinds::AndAssn; } 5005 #line 5006 "Parser/parser.cc" /* yacc.c:1646 */ 5582 5006 break; 5583 5007 5584 5008 case 118: 5585 5586 /* Line 1806 of yacc.c */ 5587 #line 619 "parser.yy" 5009 #line 619 "parser.yy" /* yacc.c:1646 */ 5588 5010 { (yyval.op) = OperKinds::ERAssn; } 5011 #line 5012 "Parser/parser.cc" /* yacc.c:1646 */ 5589 5012 break; 5590 5013 5591 5014 case 119: 5592 5593 /* Line 1806 of yacc.c */ 5594 #line 620 "parser.yy" 5015 #line 620 "parser.yy" /* yacc.c:1646 */ 5595 5016 { (yyval.op) = OperKinds::OrAssn; } 5017 #line 5018 "Parser/parser.cc" /* yacc.c:1646 */ 5596 5018 break; 5597 5019 5598 5020 case 120: 5599 5600 /* Line 1806 of yacc.c */ 5601 #line 627 "parser.yy" 5021 #line 627 "parser.yy" /* yacc.c:1646 */ 5602 5022 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5023 #line 5024 "Parser/parser.cc" /* yacc.c:1646 */ 5603 5024 break; 5604 5025 5605 5026 case 121: 5606 5607 /* Line 1806 of yacc.c */ 5608 #line 629 "parser.yy" 5609 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5027 #line 629 "parser.yy" /* yacc.c:1646 */ 5028 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5029 #line 5030 "Parser/parser.cc" /* yacc.c:1646 */ 5610 5030 break; 5611 5031 5612 5032 case 122: 5613 5614 /* Line 1806 of yacc.c */ 5615 #line 631 "parser.yy" 5616 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5033 #line 631 "parser.yy" /* yacc.c:1646 */ 5034 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5035 #line 5036 "Parser/parser.cc" /* yacc.c:1646 */ 5617 5036 break; 5618 5037 5619 5038 case 123: 5620 5621 /* Line 1806 of yacc.c */ 5622 #line 633 "parser.yy" 5623 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5039 #line 633 "parser.yy" /* yacc.c:1646 */ 5040 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5041 #line 5042 "Parser/parser.cc" /* yacc.c:1646 */ 5624 5042 break; 5625 5043 5626 5044 case 125: 5627 5628 /* Line 1806 of yacc.c */ 5629 #line 639 "parser.yy" 5630 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5045 #line 639 "parser.yy" /* yacc.c:1646 */ 5046 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5047 #line 5048 "Parser/parser.cc" /* yacc.c:1646 */ 5631 5048 break; 5632 5049 5633 5050 case 127: 5634 5635 /* Line 1806 of yacc.c */ 5636 #line 645 "parser.yy" 5637 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5051 #line 645 "parser.yy" /* yacc.c:1646 */ 5052 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5053 #line 5054 "Parser/parser.cc" /* yacc.c:1646 */ 5638 5054 break; 5639 5055 5640 5056 case 128: 5641 5642 /* Line 1806 of yacc.c */ 5643 #line 650 "parser.yy" 5057 #line 650 "parser.yy" /* yacc.c:1646 */ 5644 5058 { (yyval.en) = 0; } 5059 #line 5060 "Parser/parser.cc" /* yacc.c:1646 */ 5645 5060 break; 5646 5061 5647 5062 case 132: 5648 5649 /* Line 1806 of yacc.c */ 5650 #line 659 "parser.yy" 5651 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5063 #line 659 "parser.yy" /* yacc.c:1646 */ 5064 { (yyval.sn) = (yyvsp[0].sn); } 5065 #line 5066 "Parser/parser.cc" /* yacc.c:1646 */ 5652 5066 break; 5653 5067 5654 5068 case 138: 5655 5656 /* Line 1806 of yacc.c */ 5657 #line 666 "parser.yy" 5069 #line 666 "parser.yy" /* yacc.c:1646 */ 5658 5070 { 5659 5071 Token fn; 5660 5072 fn.str = new std::string( "^?{}" ); // location undefined 5661 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );5073 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) ); 5662 5074 } 5075 #line 5076 "Parser/parser.cc" /* yacc.c:1646 */ 5663 5076 break; 5664 5077 5665 5078 case 139: 5666 5667 /* Line 1806 of yacc.c */ 5668 #line 676 "parser.yy" 5669 { 5670 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5079 #line 676 "parser.yy" /* yacc.c:1646 */ 5080 { 5081 (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) ); 5671 5082 } 5083 #line 5084 "Parser/parser.cc" /* yacc.c:1646 */ 5672 5084 break; 5673 5085 5674 5086 case 140: 5675 5676 /* Line 1806 of yacc.c */ 5677 #line 683 "parser.yy" 5087 #line 683 "parser.yy" /* yacc.c:1646 */ 5678 5088 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5089 #line 5090 "Parser/parser.cc" /* yacc.c:1646 */ 5679 5090 break; 5680 5091 5681 5092 case 141: 5682 5683 /* Line 1806 of yacc.c */ 5684 #line 690 "parser.yy" 5685 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5093 #line 690 "parser.yy" /* yacc.c:1646 */ 5094 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5095 #line 5096 "Parser/parser.cc" /* yacc.c:1646 */ 5686 5096 break; 5687 5097 5688 5098 case 143: 5689 5690 /* Line 1806 of yacc.c */ 5691 #line 696 "parser.yy" 5692 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5099 #line 696 "parser.yy" /* yacc.c:1646 */ 5100 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5101 #line 5102 "Parser/parser.cc" /* yacc.c:1646 */ 5693 5102 break; 5694 5103 5695 5104 case 144: 5696 5697 /* Line 1806 of yacc.c */ 5698 #line 701 "parser.yy" 5699 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5105 #line 701 "parser.yy" /* yacc.c:1646 */ 5106 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5107 #line 5108 "Parser/parser.cc" /* yacc.c:1646 */ 5700 5108 break; 5701 5109 5702 5110 case 145: 5703 5704 /* Line 1806 of yacc.c */ 5705 #line 703 "parser.yy" 5111 #line 703 "parser.yy" /* yacc.c:1646 */ 5706 5112 { // mark all fields in list 5707 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5113 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5708 5114 iter->set_extension( true ); 5709 (yyval.sn) = new StatementNode( (yyvsp[ (2) - (2)].decl) );5115 (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); 5710 5116 } 5117 #line 5118 "Parser/parser.cc" /* yacc.c:1646 */ 5711 5118 break; 5712 5119 5713 5120 case 146: 5714 5715 /* Line 1806 of yacc.c */ 5716 #line 709 "parser.yy" 5717 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5121 #line 709 "parser.yy" /* yacc.c:1646 */ 5122 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5123 #line 5124 "Parser/parser.cc" /* yacc.c:1646 */ 5718 5124 break; 5719 5125 5720 5126 case 149: 5721 5722 /* Line 1806 of yacc.c */ 5723 #line 716 "parser.yy" 5724 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5127 #line 716 "parser.yy" /* yacc.c:1646 */ 5128 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5129 #line 5130 "Parser/parser.cc" /* yacc.c:1646 */ 5725 5130 break; 5726 5131 5727 5132 case 150: 5728 5729 /* Line 1806 of yacc.c */ 5730 #line 721 "parser.yy" 5731 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5133 #line 721 "parser.yy" /* yacc.c:1646 */ 5134 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5135 #line 5136 "Parser/parser.cc" /* yacc.c:1646 */ 5732 5136 break; 5733 5137 5734 5138 case 151: 5735 5736 /* Line 1806 of yacc.c */ 5737 #line 727 "parser.yy" 5738 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5139 #line 727 "parser.yy" /* yacc.c:1646 */ 5140 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5141 #line 5142 "Parser/parser.cc" /* yacc.c:1646 */ 5739 5142 break; 5740 5143 5741 5144 case 152: 5742 5743 /* Line 1806 of yacc.c */ 5744 #line 729 "parser.yy" 5745 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5145 #line 729 "parser.yy" /* yacc.c:1646 */ 5146 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5147 #line 5148 "Parser/parser.cc" /* yacc.c:1646 */ 5746 5148 break; 5747 5149 5748 5150 case 153: 5749 5750 /* Line 1806 of yacc.c */ 5751 #line 731 "parser.yy" 5752 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5151 #line 731 "parser.yy" /* yacc.c:1646 */ 5152 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5153 #line 5154 "Parser/parser.cc" /* yacc.c:1646 */ 5753 5154 break; 5754 5155 5755 5156 case 154: 5756 5757 /* Line 1806 of yacc.c */ 5758 #line 733 "parser.yy" 5759 { 5760 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5157 #line 733 "parser.yy" /* yacc.c:1646 */ 5158 { 5159 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5761 5160 // The semantics of the declaration list is changed to include associated initialization, which is performed 5762 5161 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5764 5163 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5765 5164 // statement. 5766 (yyval.sn) = (yyvsp[ (7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5165 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5767 5166 } 5167 #line 5168 "Parser/parser.cc" /* yacc.c:1646 */ 5768 5168 break; 5769 5169 5770 5170 case 155: 5771 5772 /* Line 1806 of yacc.c */ 5773 #line 743 "parser.yy" 5774 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5171 #line 743 "parser.yy" /* yacc.c:1646 */ 5172 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5173 #line 5174 "Parser/parser.cc" /* yacc.c:1646 */ 5775 5174 break; 5776 5175 5777 5176 case 156: 5778 5779 /* Line 1806 of yacc.c */ 5780 #line 745 "parser.yy" 5781 { 5782 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5783 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5177 #line 745 "parser.yy" /* yacc.c:1646 */ 5178 { 5179 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5180 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5784 5181 } 5182 #line 5183 "Parser/parser.cc" /* yacc.c:1646 */ 5785 5183 break; 5786 5184 5787 5185 case 157: 5788 5789 /* Line 1806 of yacc.c */ 5790 #line 755 "parser.yy" 5791 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5186 #line 755 "parser.yy" /* yacc.c:1646 */ 5187 { (yyval.en) = (yyvsp[0].en); } 5188 #line 5189 "Parser/parser.cc" /* yacc.c:1646 */ 5792 5189 break; 5793 5190 5794 5191 case 158: 5795 5796 /* Line 1806 of yacc.c */ 5797 #line 757 "parser.yy" 5798 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5192 #line 757 "parser.yy" /* yacc.c:1646 */ 5193 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5194 #line 5195 "Parser/parser.cc" /* yacc.c:1646 */ 5799 5195 break; 5800 5196 5801 5197 case 160: 5802 5803 /* Line 1806 of yacc.c */ 5804 #line 762 "parser.yy" 5805 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5198 #line 762 "parser.yy" /* yacc.c:1646 */ 5199 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5200 #line 5201 "Parser/parser.cc" /* yacc.c:1646 */ 5806 5201 break; 5807 5202 5808 5203 case 161: 5809 5810 /* Line 1806 of yacc.c */ 5811 #line 764 "parser.yy" 5812 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5204 #line 764 "parser.yy" /* yacc.c:1646 */ 5205 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5206 #line 5207 "Parser/parser.cc" /* yacc.c:1646 */ 5813 5207 break; 5814 5208 5815 5209 case 162: 5816 5817 /* Line 1806 of yacc.c */ 5818 #line 768 "parser.yy" 5819 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5210 #line 768 "parser.yy" /* yacc.c:1646 */ 5211 { (yyval.sn) = (yyvsp[-1].sn); } 5212 #line 5213 "Parser/parser.cc" /* yacc.c:1646 */ 5820 5213 break; 5821 5214 5822 5215 case 163: 5823 5824 /* Line 1806 of yacc.c */ 5825 #line 769 "parser.yy" 5216 #line 769 "parser.yy" /* yacc.c:1646 */ 5826 5217 { (yyval.sn) = new StatementNode( build_default() ); } 5218 #line 5219 "Parser/parser.cc" /* yacc.c:1646 */ 5827 5219 break; 5828 5220 5829 5221 case 165: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 775 "parser.yy" 5833 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5222 #line 775 "parser.yy" /* yacc.c:1646 */ 5223 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5224 #line 5225 "Parser/parser.cc" /* yacc.c:1646 */ 5834 5225 break; 5835 5226 5836 5227 case 166: 5837 5838 /* Line 1806 of yacc.c */ 5839 #line 779 "parser.yy" 5840 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5228 #line 779 "parser.yy" /* yacc.c:1646 */ 5229 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5230 #line 5231 "Parser/parser.cc" /* yacc.c:1646 */ 5841 5231 break; 5842 5232 5843 5233 case 167: 5844 5845 /* Line 1806 of yacc.c */ 5846 #line 784 "parser.yy" 5234 #line 784 "parser.yy" /* yacc.c:1646 */ 5847 5235 { (yyval.sn) = 0; } 5236 #line 5237 "Parser/parser.cc" /* yacc.c:1646 */ 5848 5237 break; 5849 5238 5850 5239 case 169: 5851 5852 /* Line 1806 of yacc.c */ 5853 #line 790 "parser.yy" 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5240 #line 790 "parser.yy" /* yacc.c:1646 */ 5241 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5242 #line 5243 "Parser/parser.cc" /* yacc.c:1646 */ 5855 5243 break; 5856 5244 5857 5245 case 170: 5858 5859 /* Line 1806 of yacc.c */ 5860 #line 792 "parser.yy" 5861 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5246 #line 792 "parser.yy" /* yacc.c:1646 */ 5247 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5248 #line 5249 "Parser/parser.cc" /* yacc.c:1646 */ 5862 5249 break; 5863 5250 5864 5251 case 171: 5865 5866 /* Line 1806 of yacc.c */ 5867 #line 797 "parser.yy" 5252 #line 797 "parser.yy" /* yacc.c:1646 */ 5868 5253 { (yyval.sn) = 0; } 5254 #line 5255 "Parser/parser.cc" /* yacc.c:1646 */ 5869 5255 break; 5870 5256 5871 5257 case 173: 5872 5873 /* Line 1806 of yacc.c */ 5874 #line 803 "parser.yy" 5875 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5258 #line 803 "parser.yy" /* yacc.c:1646 */ 5259 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5260 #line 5261 "Parser/parser.cc" /* yacc.c:1646 */ 5876 5261 break; 5877 5262 5878 5263 case 174: 5879 5880 /* Line 1806 of yacc.c */ 5881 #line 805 "parser.yy" 5882 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5264 #line 805 "parser.yy" /* yacc.c:1646 */ 5265 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5266 #line 5267 "Parser/parser.cc" /* yacc.c:1646 */ 5883 5267 break; 5884 5268 5885 5269 case 175: 5886 5887 /* Line 1806 of yacc.c */ 5888 #line 807 "parser.yy" 5889 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5270 #line 807 "parser.yy" /* yacc.c:1646 */ 5271 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5272 #line 5273 "Parser/parser.cc" /* yacc.c:1646 */ 5890 5273 break; 5891 5274 5892 5275 case 176: 5893 5894 /* Line 1806 of yacc.c */ 5895 #line 809 "parser.yy" 5896 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5276 #line 809 "parser.yy" /* yacc.c:1646 */ 5277 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5278 #line 5279 "Parser/parser.cc" /* yacc.c:1646 */ 5897 5279 break; 5898 5280 5899 5281 case 177: 5900 5901 /* Line 1806 of yacc.c */ 5902 #line 814 "parser.yy" 5282 #line 814 "parser.yy" /* yacc.c:1646 */ 5903 5283 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5284 #line 5285 "Parser/parser.cc" /* yacc.c:1646 */ 5904 5285 break; 5905 5286 5906 5287 case 179: 5907 5908 /* Line 1806 of yacc.c */ 5909 #line 820 "parser.yy" 5288 #line 820 "parser.yy" /* yacc.c:1646 */ 5910 5289 { (yyval.sn) = 0; } 5290 #line 5291 "Parser/parser.cc" /* yacc.c:1646 */ 5911 5291 break; 5912 5292 5913 5293 case 180: 5914 5915 /* Line 1806 of yacc.c */ 5916 #line 822 "parser.yy" 5294 #line 822 "parser.yy" /* yacc.c:1646 */ 5917 5295 { (yyval.sn) = 0; } 5296 #line 5297 "Parser/parser.cc" /* yacc.c:1646 */ 5918 5297 break; 5919 5298 5920 5299 case 181: 5921 5922 /* Line 1806 of yacc.c */ 5923 #line 827 "parser.yy" 5924 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5300 #line 827 "parser.yy" /* yacc.c:1646 */ 5301 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5302 #line 5303 "Parser/parser.cc" /* yacc.c:1646 */ 5925 5303 break; 5926 5304 5927 5305 case 182: 5928 5929 /* Line 1806 of yacc.c */ 5930 #line 829 "parser.yy" 5931 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5306 #line 829 "parser.yy" /* yacc.c:1646 */ 5307 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5308 #line 5309 "Parser/parser.cc" /* yacc.c:1646 */ 5932 5309 break; 5933 5310 5934 5311 case 183: 5935 5936 /* Line 1806 of yacc.c */ 5937 #line 831 "parser.yy" 5938 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5312 #line 831 "parser.yy" /* yacc.c:1646 */ 5313 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5314 #line 5315 "Parser/parser.cc" /* yacc.c:1646 */ 5939 5315 break; 5940 5316 5941 5317 case 184: 5942 5943 /* Line 1806 of yacc.c */ 5944 #line 836 "parser.yy" 5945 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5318 #line 836 "parser.yy" /* yacc.c:1646 */ 5319 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5320 #line 5321 "Parser/parser.cc" /* yacc.c:1646 */ 5946 5321 break; 5947 5322 5948 5323 case 185: 5949 5950 /* Line 1806 of yacc.c */ 5951 #line 838 "parser.yy" 5952 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5324 #line 838 "parser.yy" /* yacc.c:1646 */ 5325 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5326 #line 5327 "Parser/parser.cc" /* yacc.c:1646 */ 5953 5327 break; 5954 5328 5955 5329 case 186: 5956 5957 /* Line 1806 of yacc.c */ 5958 #line 843 "parser.yy" 5959 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5330 #line 843 "parser.yy" /* yacc.c:1646 */ 5331 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5332 #line 5333 "Parser/parser.cc" /* yacc.c:1646 */ 5960 5333 break; 5961 5334 5962 5335 case 187: 5963 5964 /* Line 1806 of yacc.c */ 5965 #line 847 "parser.yy" 5966 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5336 #line 847 "parser.yy" /* yacc.c:1646 */ 5337 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5338 #line 5339 "Parser/parser.cc" /* yacc.c:1646 */ 5967 5339 break; 5968 5340 5969 5341 case 188: 5970 5971 /* Line 1806 of yacc.c */ 5972 #line 850 "parser.yy" 5342 #line 850 "parser.yy" /* yacc.c:1646 */ 5973 5343 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5344 #line 5345 "Parser/parser.cc" /* yacc.c:1646 */ 5974 5345 break; 5975 5346 5976 5347 case 189: 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 854 "parser.yy" 5980 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5348 #line 854 "parser.yy" /* yacc.c:1646 */ 5349 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5350 #line 5351 "Parser/parser.cc" /* yacc.c:1646 */ 5981 5351 break; 5982 5352 5983 5353 case 190: 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 857 "parser.yy" 5354 #line 857 "parser.yy" /* yacc.c:1646 */ 5987 5355 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5356 #line 5357 "Parser/parser.cc" /* yacc.c:1646 */ 5988 5357 break; 5989 5358 5990 5359 case 191: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 861 "parser.yy" 5994 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5360 #line 861 "parser.yy" /* yacc.c:1646 */ 5361 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5362 #line 5363 "Parser/parser.cc" /* yacc.c:1646 */ 5995 5363 break; 5996 5364 5997 5365 case 192: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 863 "parser.yy" 6001 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5366 #line 863 "parser.yy" /* yacc.c:1646 */ 5367 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5368 #line 5369 "Parser/parser.cc" /* yacc.c:1646 */ 6002 5369 break; 6003 5370 6004 5371 case 193: 6005 6006 /* Line 1806 of yacc.c */ 6007 #line 865 "parser.yy" 6008 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5372 #line 865 "parser.yy" /* yacc.c:1646 */ 5373 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5374 #line 5375 "Parser/parser.cc" /* yacc.c:1646 */ 6009 5375 break; 6010 5376 6011 5377 case 194: 6012 6013 /* Line 1806 of yacc.c */ 6014 #line 867 "parser.yy" 6015 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5378 #line 867 "parser.yy" /* yacc.c:1646 */ 5379 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5380 #line 5381 "Parser/parser.cc" /* yacc.c:1646 */ 6016 5381 break; 6017 5382 6018 5383 case 195: 6019 6020 /* Line 1806 of yacc.c */ 6021 #line 869 "parser.yy" 6022 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5384 #line 869 "parser.yy" /* yacc.c:1646 */ 5385 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5386 #line 5387 "Parser/parser.cc" /* yacc.c:1646 */ 6023 5387 break; 6024 5388 6025 5389 case 196: 6026 6027 /* Line 1806 of yacc.c */ 6028 #line 874 "parser.yy" 6029 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5390 #line 874 "parser.yy" /* yacc.c:1646 */ 5391 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5392 #line 5393 "Parser/parser.cc" /* yacc.c:1646 */ 6030 5393 break; 6031 5394 6032 5395 case 197: 6033 6034 /* Line 1806 of yacc.c */ 6035 #line 876 "parser.yy" 6036 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5396 #line 876 "parser.yy" /* yacc.c:1646 */ 5397 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5398 #line 5399 "Parser/parser.cc" /* yacc.c:1646 */ 6037 5399 break; 6038 5400 6039 5401 case 198: 6040 6041 /* Line 1806 of yacc.c */ 6042 #line 878 "parser.yy" 6043 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5402 #line 878 "parser.yy" /* yacc.c:1646 */ 5403 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5404 #line 5405 "Parser/parser.cc" /* yacc.c:1646 */ 6044 5405 break; 6045 5406 6046 5407 case 200: 6047 6048 /* Line 1806 of yacc.c */ 6049 #line 885 "parser.yy" 6050 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5408 #line 885 "parser.yy" /* yacc.c:1646 */ 5409 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5410 #line 5411 "Parser/parser.cc" /* yacc.c:1646 */ 6051 5411 break; 6052 5412 6053 5413 case 201: 6054 6055 /* Line 1806 of yacc.c */ 6056 #line 887 "parser.yy" 6057 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5414 #line 887 "parser.yy" /* yacc.c:1646 */ 5415 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5416 #line 5417 "Parser/parser.cc" /* yacc.c:1646 */ 6058 5417 break; 6059 5418 6060 5419 case 202: 6061 6062 /* Line 1806 of yacc.c */ 6063 #line 889 "parser.yy" 6064 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5420 #line 889 "parser.yy" /* yacc.c:1646 */ 5421 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5422 #line 5423 "Parser/parser.cc" /* yacc.c:1646 */ 6065 5423 break; 6066 5424 6067 5425 case 203: 6068 6069 /* Line 1806 of yacc.c */ 6070 #line 891 "parser.yy" 6071 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5426 #line 891 "parser.yy" /* yacc.c:1646 */ 5427 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5428 #line 5429 "Parser/parser.cc" /* yacc.c:1646 */ 6072 5429 break; 6073 5430 6074 5431 case 204: 6075 6076 /* Line 1806 of yacc.c */ 6077 #line 896 "parser.yy" 6078 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5432 #line 896 "parser.yy" /* yacc.c:1646 */ 5433 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5434 #line 5435 "Parser/parser.cc" /* yacc.c:1646 */ 6079 5435 break; 6080 5436 6081 5437 case 205: 6082 6083 /* Line 1806 of yacc.c */ 6084 #line 898 "parser.yy" 6085 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5438 #line 898 "parser.yy" /* yacc.c:1646 */ 5439 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5440 #line 5441 "Parser/parser.cc" /* yacc.c:1646 */ 6086 5441 break; 6087 5442 6088 5443 case 206: 6089 6090 /* Line 1806 of yacc.c */ 6091 #line 900 "parser.yy" 6092 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5444 #line 900 "parser.yy" /* yacc.c:1646 */ 5445 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5446 #line 5447 "Parser/parser.cc" /* yacc.c:1646 */ 6093 5447 break; 6094 5448 6095 5449 case 207: 6096 6097 /* Line 1806 of yacc.c */ 6098 #line 902 "parser.yy" 6099 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5450 #line 902 "parser.yy" /* yacc.c:1646 */ 5451 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5452 #line 5453 "Parser/parser.cc" /* yacc.c:1646 */ 6100 5453 break; 6101 5454 6102 5455 case 208: 6103 6104 /* Line 1806 of yacc.c */ 6105 #line 907 "parser.yy" 6106 { 6107 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5456 #line 907 "parser.yy" /* yacc.c:1646 */ 5457 { 5458 (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) ); 6108 5459 } 5460 #line 5461 "Parser/parser.cc" /* yacc.c:1646 */ 6109 5461 break; 6110 5462 6111 5463 case 210: 6112 6113 /* Line 1806 of yacc.c */ 6114 #line 920 "parser.yy" 5464 #line 920 "parser.yy" /* yacc.c:1646 */ 6115 5465 { 6116 5466 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6117 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );5467 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 6118 5468 } 5469 #line 5470 "Parser/parser.cc" /* yacc.c:1646 */ 6119 5470 break; 6120 5471 6121 5472 case 211: 6122 6123 /* Line 1806 of yacc.c */ 6124 #line 925 "parser.yy" 6125 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5473 #line 925 "parser.yy" /* yacc.c:1646 */ 5474 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5475 #line 5476 "Parser/parser.cc" /* yacc.c:1646 */ 6126 5476 break; 6127 5477 6128 5478 case 212: 6129 6130 /* Line 1806 of yacc.c */ 6131 #line 927 "parser.yy" 5479 #line 927 "parser.yy" /* yacc.c:1646 */ 6132 5480 { 6133 5481 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6134 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );5482 (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); 6135 5483 } 5484 #line 5485 "Parser/parser.cc" /* yacc.c:1646 */ 6136 5485 break; 6137 5486 6138 5487 case 214: 6139 6140 /* Line 1806 of yacc.c */ 6141 #line 936 "parser.yy" 6142 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5488 #line 936 "parser.yy" /* yacc.c:1646 */ 5489 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5490 #line 5491 "Parser/parser.cc" /* yacc.c:1646 */ 6143 5491 break; 6144 5492 6145 5493 case 215: 6146 6147 /* Line 1806 of yacc.c */ 6148 #line 938 "parser.yy" 6149 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5494 #line 938 "parser.yy" /* yacc.c:1646 */ 5495 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5496 #line 5497 "Parser/parser.cc" /* yacc.c:1646 */ 6150 5497 break; 6151 5498 6152 5499 case 216: 6153 6154 /* Line 1806 of yacc.c */ 6155 #line 940 "parser.yy" 6156 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5500 #line 940 "parser.yy" /* yacc.c:1646 */ 5501 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5502 #line 5503 "Parser/parser.cc" /* yacc.c:1646 */ 6157 5503 break; 6158 5504 6159 5505 case 217: 6160 6161 /* Line 1806 of yacc.c */ 6162 #line 942 "parser.yy" 6163 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 5506 #line 942 "parser.yy" /* yacc.c:1646 */ 5507 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5508 #line 5509 "Parser/parser.cc" /* yacc.c:1646 */ 6164 5509 break; 6165 5510 6166 5511 case 218: 6167 6168 /* Line 1806 of yacc.c */ 6169 #line 944 "parser.yy" 6170 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 5512 #line 944 "parser.yy" /* yacc.c:1646 */ 5513 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5514 #line 5515 "Parser/parser.cc" /* yacc.c:1646 */ 6171 5515 break; 6172 5516 6173 5517 case 219: 6174 6175 /* Line 1806 of yacc.c */ 6176 #line 949 "parser.yy" 5518 #line 949 "parser.yy" /* yacc.c:1646 */ 6177 5519 { (yyval.flag) = false; } 5520 #line 5521 "Parser/parser.cc" /* yacc.c:1646 */ 6178 5521 break; 6179 5522 6180 5523 case 220: 6181 6182 /* Line 1806 of yacc.c */ 6183 #line 951 "parser.yy" 5524 #line 951 "parser.yy" /* yacc.c:1646 */ 6184 5525 { (yyval.flag) = true; } 5526 #line 5527 "Parser/parser.cc" /* yacc.c:1646 */ 6185 5527 break; 6186 5528 6187 5529 case 221: 6188 6189 /* Line 1806 of yacc.c */ 6190 #line 956 "parser.yy" 5530 #line 956 "parser.yy" /* yacc.c:1646 */ 6191 5531 { (yyval.en) = 0; } 5532 #line 5533 "Parser/parser.cc" /* yacc.c:1646 */ 6192 5533 break; 6193 5534 6194 5535 case 224: 6195 6196 /* Line 1806 of yacc.c */ 6197 #line 963 "parser.yy" 6198 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5536 #line 963 "parser.yy" /* yacc.c:1646 */ 5537 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5538 #line 5539 "Parser/parser.cc" /* yacc.c:1646 */ 6199 5539 break; 6200 5540 6201 5541 case 225: 6202 6203 /* Line 1806 of yacc.c */ 6204 #line 968 "parser.yy" 6205 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5542 #line 968 "parser.yy" /* yacc.c:1646 */ 5543 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5544 #line 5545 "Parser/parser.cc" /* yacc.c:1646 */ 6206 5545 break; 6207 5546 6208 5547 case 226: 6209 6210 /* Line 1806 of yacc.c */ 6211 #line 970 "parser.yy" 6212 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5548 #line 970 "parser.yy" /* yacc.c:1646 */ 5549 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5550 #line 5551 "Parser/parser.cc" /* yacc.c:1646 */ 6213 5551 break; 6214 5552 6215 5553 case 227: 6216 6217 /* Line 1806 of yacc.c */ 6218 #line 975 "parser.yy" 5554 #line 975 "parser.yy" /* yacc.c:1646 */ 6219 5555 { (yyval.en) = 0; } 5556 #line 5557 "Parser/parser.cc" /* yacc.c:1646 */ 6220 5557 break; 6221 5558 6222 5559 case 228: 6223 6224 /* Line 1806 of yacc.c */ 6225 #line 977 "parser.yy" 6226 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5560 #line 977 "parser.yy" /* yacc.c:1646 */ 5561 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5562 #line 5563 "Parser/parser.cc" /* yacc.c:1646 */ 6227 5563 break; 6228 5564 6229 5565 case 229: 6230 6231 /* Line 1806 of yacc.c */ 6232 #line 979 "parser.yy" 6233 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5566 #line 979 "parser.yy" /* yacc.c:1646 */ 5567 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5568 #line 5569 "Parser/parser.cc" /* yacc.c:1646 */ 6234 5569 break; 6235 5570 6236 5571 case 230: 6237 6238 /* Line 1806 of yacc.c */ 6239 #line 984 "parser.yy" 6240 { 6241 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); 6242 delete (yyvsp[(1) - (1)].tok); // allocated by lexer 5572 #line 984 "parser.yy" /* yacc.c:1646 */ 5573 { 5574 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) ); 5575 delete (yyvsp[0].tok); // allocated by lexer 6243 5576 } 5577 #line 5578 "Parser/parser.cc" /* yacc.c:1646 */ 6244 5578 break; 6245 5579 6246 5580 case 231: 6247 6248 /* Line 1806 of yacc.c */ 6249 #line 989 "parser.yy" 6250 { 6251 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); 6252 delete (yyvsp[(3) - (3)].tok); // allocated by lexer 5581 #line 989 "parser.yy" /* yacc.c:1646 */ 5582 { 5583 (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) ); 5584 delete (yyvsp[0].tok); // allocated by lexer 6253 5585 } 5586 #line 5587 "Parser/parser.cc" /* yacc.c:1646 */ 6254 5587 break; 6255 5588 6256 5589 case 232: 6257 6258 /* Line 1806 of yacc.c */ 6259 #line 999 "parser.yy" 5590 #line 999 "parser.yy" /* yacc.c:1646 */ 6260 5591 { (yyval.decl) = 0; } 5592 #line 5593 "Parser/parser.cc" /* yacc.c:1646 */ 6261 5593 break; 6262 5594 6263 5595 case 235: 6264 6265 /* Line 1806 of yacc.c */ 6266 #line 1006 "parser.yy" 6267 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5596 #line 1006 "parser.yy" /* yacc.c:1646 */ 5597 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5598 #line 5599 "Parser/parser.cc" /* yacc.c:1646 */ 6268 5599 break; 6269 5600 6270 5601 case 236: 6271 6272 /* Line 1806 of yacc.c */ 6273 #line 1011 "parser.yy" 5602 #line 1011 "parser.yy" /* yacc.c:1646 */ 6274 5603 { (yyval.decl) = 0; } 5604 #line 5605 "Parser/parser.cc" /* yacc.c:1646 */ 6275 5605 break; 6276 5606 6277 5607 case 239: 6278 6279 /* Line 1806 of yacc.c */ 6280 #line 1018 "parser.yy" 6281 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5608 #line 1018 "parser.yy" /* yacc.c:1646 */ 5609 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5610 #line 5611 "Parser/parser.cc" /* yacc.c:1646 */ 6282 5611 break; 6283 5612 6284 5613 case 244: 6285 6286 /* Line 1806 of yacc.c */ 6287 #line 1032 "parser.yy" 5614 #line 1032 "parser.yy" /* yacc.c:1646 */ 6288 5615 {} 5616 #line 5617 "Parser/parser.cc" /* yacc.c:1646 */ 6289 5617 break; 6290 5618 6291 5619 case 245: 6292 6293 /* Line 1806 of yacc.c */ 6294 #line 1033 "parser.yy" 5620 #line 1033 "parser.yy" /* yacc.c:1646 */ 6295 5621 {} 5622 #line 5623 "Parser/parser.cc" /* yacc.c:1646 */ 6296 5623 break; 6297 5624 6298 5625 case 253: 6299 6300 /* Line 1806 of yacc.c */ 6301 #line 1062 "parser.yy" 5626 #line 1062 "parser.yy" /* yacc.c:1646 */ 6302 5627 { 6303 5628 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6304 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );5629 (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) ); 6305 5630 } 5631 #line 5632 "Parser/parser.cc" /* yacc.c:1646 */ 6306 5632 break; 6307 5633 6308 5634 case 254: 6309 6310 /* Line 1806 of yacc.c */ 6311 #line 1069 "parser.yy" 5635 #line 1069 "parser.yy" /* yacc.c:1646 */ 6312 5636 { 6313 5637 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6314 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;5638 (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );; 6315 5639 } 5640 #line 5641 "Parser/parser.cc" /* yacc.c:1646 */ 6316 5641 break; 6317 5642 6318 5643 case 255: 6319 6320 /* Line 1806 of yacc.c */ 6321 #line 1074 "parser.yy" 6322 { 6323 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6324 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5644 #line 1074 "parser.yy" /* yacc.c:1646 */ 5645 { 5646 typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID ); 5647 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) ); 6325 5648 } 5649 #line 5650 "Parser/parser.cc" /* yacc.c:1646 */ 6326 5650 break; 6327 5651 6328 5652 case 256: 6329 6330 /* Line 1806 of yacc.c */ 6331 #line 1084 "parser.yy" 6332 { 6333 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6334 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5653 #line 1084 "parser.yy" /* yacc.c:1646 */ 5654 { 5655 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5656 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6335 5657 } 5658 #line 5659 "Parser/parser.cc" /* yacc.c:1646 */ 6336 5659 break; 6337 5660 6338 5661 case 257: 6339 6340 /* Line 1806 of yacc.c */ 6341 #line 1089 "parser.yy" 6342 { 6343 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6344 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5662 #line 1089 "parser.yy" /* yacc.c:1646 */ 5663 { 5664 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5665 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6345 5666 } 5667 #line 5668 "Parser/parser.cc" /* yacc.c:1646 */ 6346 5668 break; 6347 5669 6348 5670 case 258: 6349 6350 /* Line 1806 of yacc.c */ 6351 #line 1094 "parser.yy" 6352 { 6353 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6354 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5671 #line 1094 "parser.yy" /* yacc.c:1646 */ 5672 { 5673 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5674 (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) ); 6355 5675 } 5676 #line 5677 "Parser/parser.cc" /* yacc.c:1646 */ 6356 5677 break; 6357 5678 6358 5679 case 259: 6359 6360 /* Line 1806 of yacc.c */ 6361 #line 1102 "parser.yy" 5680 #line 1102 "parser.yy" /* yacc.c:1646 */ 6362 5681 { 6363 5682 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6364 (yyval.decl) = (yyvsp[ (1) - (1)].decl);5683 (yyval.decl) = (yyvsp[0].decl); 6365 5684 } 5685 #line 5686 "Parser/parser.cc" /* yacc.c:1646 */ 6366 5686 break; 6367 5687 6368 5688 case 260: 6369 6370 /* Line 1806 of yacc.c */ 6371 #line 1107 "parser.yy" 5689 #line 1107 "parser.yy" /* yacc.c:1646 */ 6372 5690 { 6373 5691 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6374 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5692 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6375 5693 } 5694 #line 5695 "Parser/parser.cc" /* yacc.c:1646 */ 6376 5695 break; 6377 5696 6378 5697 case 261: 6379 6380 /* Line 1806 of yacc.c */ 6381 #line 1112 "parser.yy" 5698 #line 1112 "parser.yy" /* yacc.c:1646 */ 6382 5699 { 6383 5700 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6384 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5701 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6385 5702 } 5703 #line 5704 "Parser/parser.cc" /* yacc.c:1646 */ 6386 5704 break; 6387 5705 6388 5706 case 262: 6389 6390 /* Line 1806 of yacc.c */ 6391 #line 1117 "parser.yy" 5707 #line 1117 "parser.yy" /* yacc.c:1646 */ 6392 5708 { 6393 5709 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6394 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );5710 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) ); 6395 5711 } 5712 #line 5713 "Parser/parser.cc" /* yacc.c:1646 */ 6396 5713 break; 6397 5714 6398 5715 case 263: 6399 6400 /* Line 1806 of yacc.c */ 6401 #line 1122 "parser.yy" 6402 { 6403 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6404 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5716 #line 1122 "parser.yy" /* yacc.c:1646 */ 5717 { 5718 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID ); 5719 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6405 5720 } 5721 #line 5722 "Parser/parser.cc" /* yacc.c:1646 */ 6406 5722 break; 6407 5723 6408 5724 case 264: 6409 6410 /* Line 1806 of yacc.c */ 6411 #line 1130 "parser.yy" 6412 { 6413 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5725 #line 1130 "parser.yy" /* yacc.c:1646 */ 5726 { 5727 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true ); 6414 5728 } 5729 #line 5730 "Parser/parser.cc" /* yacc.c:1646 */ 6415 5730 break; 6416 5731 6417 5732 case 265: 6418 6419 /* Line 1806 of yacc.c */ 6420 #line 1153 "parser.yy" 6421 { 6422 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5733 #line 1153 "parser.yy" /* yacc.c:1646 */ 5734 { 5735 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6423 5736 } 5737 #line 5738 "Parser/parser.cc" /* yacc.c:1646 */ 6424 5738 break; 6425 5739 6426 5740 case 266: 6427 6428 /* Line 1806 of yacc.c */ 6429 #line 1157 "parser.yy" 6430 { 6431 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5741 #line 1157 "parser.yy" /* yacc.c:1646 */ 5742 { 5743 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6432 5744 } 5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */ 6433 5746 break; 6434 5747 6435 5748 case 267: 6436 6437 /* Line 1806 of yacc.c */ 6438 #line 1164 "parser.yy" 6439 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5749 #line 1164 "parser.yy" /* yacc.c:1646 */ 5750 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646 */ 6440 5752 break; 6441 5753 6442 5754 case 268: 6443 6444 /* Line 1806 of yacc.c */ 6445 #line 1168 "parser.yy" 6446 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5755 #line 1168 "parser.yy" /* yacc.c:1646 */ 5756 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5757 #line 5758 "Parser/parser.cc" /* yacc.c:1646 */ 6447 5758 break; 6448 5759 6449 5760 case 269: 6450 6451 /* Line 1806 of yacc.c */ 6452 #line 1173 "parser.yy" 5761 #line 1173 "parser.yy" /* yacc.c:1646 */ 6453 5762 { 6454 5763 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6455 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5764 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6456 5765 } 5766 #line 5767 "Parser/parser.cc" /* yacc.c:1646 */ 6457 5767 break; 6458 5768 6459 5769 case 270: 6460 6461 /* Line 1806 of yacc.c */ 6462 #line 1178 "parser.yy" 5770 #line 1178 "parser.yy" /* yacc.c:1646 */ 6463 5771 { 6464 5772 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6465 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5773 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6466 5774 } 5775 #line 5776 "Parser/parser.cc" /* yacc.c:1646 */ 6467 5776 break; 6468 5777 6469 5778 case 271: 6470 6471 /* Line 1806 of yacc.c */ 6472 #line 1183 "parser.yy" 6473 { 6474 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6475 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5779 #line 1183 "parser.yy" /* yacc.c:1646 */ 5780 { 5781 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 5782 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6476 5783 } 5784 #line 5785 "Parser/parser.cc" /* yacc.c:1646 */ 6477 5785 break; 6478 5786 6479 5787 case 272: 6480 6481 /* Line 1806 of yacc.c */ 6482 #line 1194 "parser.yy" 5788 #line 1194 "parser.yy" /* yacc.c:1646 */ 6483 5789 { 6484 5790 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6485 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();5791 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef(); 6486 5792 } 5793 #line 5794 "Parser/parser.cc" /* yacc.c:1646 */ 6487 5794 break; 6488 5795 6489 5796 case 273: 6490 6491 /* Line 1806 of yacc.c */ 6492 #line 1199 "parser.yy" 5797 #line 1199 "parser.yy" /* yacc.c:1646 */ 6493 5798 { 6494 5799 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6495 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );5800 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() ); 6496 5801 } 5802 #line 5803 "Parser/parser.cc" /* yacc.c:1646 */ 6497 5803 break; 6498 5804 6499 5805 case 274: 6500 6501 /* Line 1806 of yacc.c */ 6502 #line 1204 "parser.yy" 5806 #line 1204 "parser.yy" /* yacc.c:1646 */ 6503 5807 { 6504 5808 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6505 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();5809 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef(); 6506 5810 } 5811 #line 5812 "Parser/parser.cc" /* yacc.c:1646 */ 6507 5812 break; 6508 5813 6509 5814 case 275: 6510 6511 /* Line 1806 of yacc.c */ 6512 #line 1209 "parser.yy" 5815 #line 1209 "parser.yy" /* yacc.c:1646 */ 6513 5816 { 6514 5817 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6515 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();5818 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef(); 6516 5819 } 5820 #line 5821 "Parser/parser.cc" /* yacc.c:1646 */ 6517 5821 break; 6518 5822 6519 5823 case 276: 6520 6521 /* Line 1806 of yacc.c */ 6522 #line 1214 "parser.yy" 5824 #line 1214 "parser.yy" /* yacc.c:1646 */ 6523 5825 { 6524 5826 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6525 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );5827 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) ); 6526 5828 } 5829 #line 5830 "Parser/parser.cc" /* yacc.c:1646 */ 6527 5830 break; 6528 5831 6529 5832 case 277: 6530 6531 /* Line 1806 of yacc.c */ 6532 #line 1223 "parser.yy" 6533 { 6534 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5833 #line 1223 "parser.yy" /* yacc.c:1646 */ 5834 { 5835 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6535 5836 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6536 5837 } 5838 #line 5839 "Parser/parser.cc" /* yacc.c:1646 */ 6537 5839 break; 6538 5840 6539 5841 case 278: 6540 6541 /* Line 1806 of yacc.c */ 6542 #line 1228 "parser.yy" 6543 { 6544 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5842 #line 1228 "parser.yy" /* yacc.c:1646 */ 5843 { 5844 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6545 5845 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6546 5846 } 5847 #line 5848 "Parser/parser.cc" /* yacc.c:1646 */ 6547 5848 break; 6548 5849 6549 5850 case 283: 6550 6551 /* Line 1806 of yacc.c */ 6552 #line 1245 "parser.yy" 5851 #line 1245 "parser.yy" /* yacc.c:1646 */ 6553 5852 { 6554 5853 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6555 (yyval.decl) = ( (yyvsp[ (2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );5854 (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) ); 6556 5855 } 5856 #line 5857 "Parser/parser.cc" /* yacc.c:1646 */ 6557 5857 break; 6558 5858 6559 5859 case 284: 6560 6561 /* Line 1806 of yacc.c */ 6562 #line 1250 "parser.yy" 5860 #line 1250 "parser.yy" /* yacc.c:1646 */ 6563 5861 { 6564 5862 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6565 (yyval.decl) = (yyvsp[ (1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );5863 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) ); 6566 5864 } 5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */ 6567 5866 break; 6568 5867 6569 5868 case 293: 6570 6571 /* Line 1806 of yacc.c */ 6572 #line 1272 "parser.yy" 5869 #line 1272 "parser.yy" /* yacc.c:1646 */ 6573 5870 { (yyval.decl) = 0; } 5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */ 6574 5872 break; 6575 5873 6576 5874 case 296: 6577 6578 /* Line 1806 of yacc.c */ 6579 #line 1284 "parser.yy" 6580 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5875 #line 1284 "parser.yy" /* yacc.c:1646 */ 5876 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */ 6581 5878 break; 6582 5879 6583 5880 case 299: 6584 6585 /* Line 1806 of yacc.c */ 6586 #line 1295 "parser.yy" 5881 #line 1295 "parser.yy" /* yacc.c:1646 */ 6587 5882 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */ 6588 5884 break; 6589 5885 6590 5886 case 300: 6591 6592 /* Line 1806 of yacc.c */ 6593 #line 1297 "parser.yy" 5887 #line 1297 "parser.yy" /* yacc.c:1646 */ 6594 5888 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */ 6595 5890 break; 6596 5891 6597 5892 case 301: 6598 6599 /* Line 1806 of yacc.c */ 6600 #line 1299 "parser.yy" 5893 #line 1299 "parser.yy" /* yacc.c:1646 */ 6601 5894 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */ 6602 5896 break; 6603 5897 6604 5898 case 302: 6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1301 "parser.yy" 5899 #line 1301 "parser.yy" /* yacc.c:1646 */ 6608 5900 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646 */ 6609 5902 break; 6610 5903 6611 5904 case 303: 6612 6613 /* Line 1806 of yacc.c */ 6614 #line 1303 "parser.yy" 5905 #line 1303 "parser.yy" /* yacc.c:1646 */ 6615 5906 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5907 #line 5908 "Parser/parser.cc" /* yacc.c:1646 */ 6616 5908 break; 6617 5909 6618 5910 case 304: 6619 6620 /* Line 1806 of yacc.c */ 6621 #line 1305 "parser.yy" 5911 #line 1305 "parser.yy" /* yacc.c:1646 */ 6622 5912 { 6623 5913 typedefTable.enterScope(); 6624 5914 } 5915 #line 5916 "Parser/parser.cc" /* yacc.c:1646 */ 6625 5916 break; 6626 5917 6627 5918 case 305: 6628 6629 /* Line 1806 of yacc.c */ 6630 #line 1309 "parser.yy" 5919 #line 1309 "parser.yy" /* yacc.c:1646 */ 6631 5920 { 6632 5921 typedefTable.leaveScope(); 6633 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ (4) - (5)].decl) );5922 (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) ); 6634 5923 } 5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */ 6635 5925 break; 6636 5926 6637 5927 case 307: 6638 6639 /* Line 1806 of yacc.c */ 6640 #line 1318 "parser.yy" 6641 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5928 #line 1318 "parser.yy" /* yacc.c:1646 */ 5929 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 6642 5931 break; 6643 5932 6644 5933 case 308: 6645 6646 /* Line 1806 of yacc.c */ 6647 #line 1320 "parser.yy" 6648 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5934 #line 1320 "parser.yy" /* yacc.c:1646 */ 5935 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 6649 5937 break; 6650 5938 6651 5939 case 310: 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1331 "parser.yy" 6655 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5940 #line 1331 "parser.yy" /* yacc.c:1646 */ 5941 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */ 6656 5943 break; 6657 5944 6658 5945 case 311: 6659 6660 /* Line 1806 of yacc.c */ 6661 #line 1336 "parser.yy" 5946 #line 1336 "parser.yy" /* yacc.c:1646 */ 6662 5947 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */ 6663 5949 break; 6664 5950 6665 5951 case 312: 6666 6667 /* Line 1806 of yacc.c */ 6668 #line 1338 "parser.yy" 5952 #line 1338 "parser.yy" /* yacc.c:1646 */ 6669 5953 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */ 6670 5955 break; 6671 5956 6672 5957 case 313: 6673 6674 /* Line 1806 of yacc.c */ 6675 #line 1340 "parser.yy" 5958 #line 1340 "parser.yy" /* yacc.c:1646 */ 6676 5959 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */ 6677 5961 break; 6678 5962 6679 5963 case 314: 6680 6681 /* Line 1806 of yacc.c */ 6682 #line 1342 "parser.yy" 5964 #line 1342 "parser.yy" /* yacc.c:1646 */ 6683 5965 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */ 6684 5967 break; 6685 5968 6686 5969 case 315: 6687 6688 /* Line 1806 of yacc.c */ 6689 #line 1345 "parser.yy" 5970 #line 1345 "parser.yy" /* yacc.c:1646 */ 6690 5971 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */ 6691 5973 break; 6692 5974 6693 5975 case 316: 6694 6695 /* Line 1806 of yacc.c */ 6696 #line 1347 "parser.yy" 5976 #line 1347 "parser.yy" /* yacc.c:1646 */ 6697 5977 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */ 6698 5979 break; 6699 5980 6700 5981 case 317: 6701 6702 /* Line 1806 of yacc.c */ 6703 #line 1350 "parser.yy" 5982 #line 1350 "parser.yy" /* yacc.c:1646 */ 6704 5983 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */ 6705 5985 break; 6706 5986 6707 5987 case 318: 6708 6709 /* Line 1806 of yacc.c */ 6710 #line 1352 "parser.yy" 5988 #line 1352 "parser.yy" /* yacc.c:1646 */ 6711 5989 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */ 6712 5991 break; 6713 5992 6714 5993 case 319: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1357 "parser.yy" 5994 #line 1357 "parser.yy" /* yacc.c:1646 */ 6718 5995 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */ 6719 5997 break; 6720 5998 6721 5999 case 320: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1359 "parser.yy" 6000 #line 1359 "parser.yy" /* yacc.c:1646 */ 6725 6001 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */ 6726 6003 break; 6727 6004 6728 6005 case 321: 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1361 "parser.yy" 6006 #line 1361 "parser.yy" /* yacc.c:1646 */ 6732 6007 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */ 6733 6009 break; 6734 6010 6735 6011 case 322: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1363 "parser.yy" 6012 #line 1363 "parser.yy" /* yacc.c:1646 */ 6739 6013 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */ 6740 6015 break; 6741 6016 6742 6017 case 323: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1365 "parser.yy" 6018 #line 1365 "parser.yy" /* yacc.c:1646 */ 6746 6019 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */ 6747 6021 break; 6748 6022 6749 6023 case 324: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1367 "parser.yy" 6024 #line 1367 "parser.yy" /* yacc.c:1646 */ 6753 6025 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */ 6754 6027 break; 6755 6028 6756 6029 case 325: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1369 "parser.yy" 6030 #line 1369 "parser.yy" /* yacc.c:1646 */ 6760 6031 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */ 6761 6033 break; 6762 6034 6763 6035 case 326: 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1371 "parser.yy" 6036 #line 1371 "parser.yy" /* yacc.c:1646 */ 6767 6037 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */ 6768 6039 break; 6769 6040 6770 6041 case 327: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1373 "parser.yy" 6042 #line 1373 "parser.yy" /* yacc.c:1646 */ 6774 6043 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */ 6775 6045 break; 6776 6046 6777 6047 case 328: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1375 "parser.yy" 6048 #line 1375 "parser.yy" /* yacc.c:1646 */ 6781 6049 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */ 6782 6051 break; 6783 6052 6784 6053 case 329: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1377 "parser.yy" 6054 #line 1377 "parser.yy" /* yacc.c:1646 */ 6788 6055 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */ 6789 6057 break; 6790 6058 6791 6059 case 330: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1379 "parser.yy" 6060 #line 1379 "parser.yy" /* yacc.c:1646 */ 6795 6061 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */ 6796 6063 break; 6797 6064 6798 6065 case 331: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1381 "parser.yy" 6066 #line 1381 "parser.yy" /* yacc.c:1646 */ 6802 6067 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */ 6803 6069 break; 6804 6070 6805 6071 case 333: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1388 "parser.yy" 6809 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6072 #line 1388 "parser.yy" /* yacc.c:1646 */ 6073 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */ 6810 6075 break; 6811 6076 6812 6077 case 334: 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1390 "parser.yy" 6816 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6078 #line 1390 "parser.yy" /* yacc.c:1646 */ 6079 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6817 6081 break; 6818 6082 6819 6083 case 335: 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1392 "parser.yy" 6823 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6084 #line 1392 "parser.yy" /* yacc.c:1646 */ 6085 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646 */ 6824 6087 break; 6825 6088 6826 6089 case 336: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1394 "parser.yy" 6830 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6090 #line 1394 "parser.yy" /* yacc.c:1646 */ 6091 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646 */ 6831 6093 break; 6832 6094 6833 6095 case 338: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1400 "parser.yy" 6837 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6096 #line 1400 "parser.yy" /* yacc.c:1646 */ 6097 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646 */ 6838 6099 break; 6839 6100 6840 6101 case 340: 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1407 "parser.yy" 6844 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6102 #line 1407 "parser.yy" /* yacc.c:1646 */ 6103 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6845 6105 break; 6846 6106 6847 6107 case 341: 6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1409 "parser.yy" 6851 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6108 #line 1409 "parser.yy" /* yacc.c:1646 */ 6109 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6852 6111 break; 6853 6112 6854 6113 case 342: 6855 6856 /* Line 1806 of yacc.c */ 6857 #line 1411 "parser.yy" 6858 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6114 #line 1411 "parser.yy" /* yacc.c:1646 */ 6115 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6859 6117 break; 6860 6118 6861 6119 case 343: 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1416 "parser.yy" 6865 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6120 #line 1416 "parser.yy" /* yacc.c:1646 */ 6121 { (yyval.decl) = (yyvsp[-1].decl); } 6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6866 6123 break; 6867 6124 6868 6125 case 344: 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1418 "parser.yy" 6872 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6126 #line 1418 "parser.yy" /* yacc.c:1646 */ 6127 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6873 6129 break; 6874 6130 6875 6131 case 345: 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1420 "parser.yy" 6879 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6132 #line 1420 "parser.yy" /* yacc.c:1646 */ 6133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646 */ 6880 6135 break; 6881 6136 6882 6137 case 346: 6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1422 "parser.yy" 6886 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6138 #line 1422 "parser.yy" /* yacc.c:1646 */ 6139 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646 */ 6887 6141 break; 6888 6142 6889 6143 case 348: 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1428 "parser.yy" 6893 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6144 #line 1428 "parser.yy" /* yacc.c:1646 */ 6145 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6894 6147 break; 6895 6148 6896 6149 case 349: 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1430 "parser.yy" 6900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6150 #line 1430 "parser.yy" /* yacc.c:1646 */ 6151 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6901 6153 break; 6902 6154 6903 6155 case 350: 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1432 "parser.yy" 6907 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6156 #line 1432 "parser.yy" /* yacc.c:1646 */ 6157 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646 */ 6908 6159 break; 6909 6160 6910 6161 case 352: 6911 6912 /* Line 1806 of yacc.c */ 6913 #line 1438 "parser.yy" 6914 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6162 #line 1438 "parser.yy" /* yacc.c:1646 */ 6163 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6915 6165 break; 6916 6166 6917 6167 case 353: 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1440 "parser.yy" 6921 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6168 #line 1440 "parser.yy" /* yacc.c:1646 */ 6169 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6922 6171 break; 6923 6172 6924 6173 case 355: 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1446 "parser.yy" 6928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6174 #line 1446 "parser.yy" /* yacc.c:1646 */ 6175 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6929 6177 break; 6930 6178 6931 6179 case 356: 6932 6933 /* Line 1806 of yacc.c */ 6934 #line 1448 "parser.yy" 6935 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 6936 6183 break; 6937 6184 6938 6185 case 357: 6939 6940 /* Line 1806 of yacc.c */ 6941 #line 1450 "parser.yy" 6942 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 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 */ 6943 6189 break; 6944 6190 6945 6191 case 358: 6946 6947 /* Line 1806 of yacc.c */ 6948 #line 1455 "parser.yy" 6949 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 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 */ 6950 6195 break; 6951 6196 6952 6197 case 359: 6953 6954 /* Line 1806 of yacc.c */ 6955 #line 1457 "parser.yy" 6956 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 6957 6201 break; 6958 6202 6959 6203 case 360: 6960 6961 /* Line 1806 of yacc.c */ 6962 #line 1459 "parser.yy" 6963 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 6964 6207 break; 6965 6208 6966 6209 case 363: 6967 6968 /* Line 1806 of yacc.c */ 6969 #line 1469 "parser.yy" 6970 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 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 */ 6971 6213 break; 6972 6214 6973 6215 case 364: 6974 6975 /* Line 1806 of yacc.c */ 6976 #line 1471 "parser.yy" 6977 { 6978 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6979 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false ); 6216 #line 1471 "parser.yy" /* yacc.c:1646 */ 6217 { 6218 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6219 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false ); 6980 6220 } 6221 #line 6222 "Parser/parser.cc" /* yacc.c:1646 */ 6981 6222 break; 6982 6223 6983 6224 case 365: 6984 6985 /* Line 1806 of yacc.c */ 6986 #line 1476 "parser.yy" 6987 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6225 #line 1476 "parser.yy" /* yacc.c:1646 */ 6226 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646 */ 6988 6228 break; 6989 6229 6990 6230 case 366: 6991 6992 /* Line 1806 of yacc.c */ 6993 #line 1478 "parser.yy" 6994 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 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 */ 6995 6234 break; 6996 6235 6997 6236 case 367: 6998 6999 /* Line 1806 of yacc.c */ 7000 #line 1480 "parser.yy" 7001 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 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 */ 7002 6240 break; 7003 6241 7004 6242 case 368: 7005 7006 /* Line 1806 of yacc.c */ 7007 #line 1482 "parser.yy" 7008 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6243 #line 1482 "parser.yy" /* yacc.c:1646 */ 6244 { (yyval.decl) = (yyvsp[0].decl); } 6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646 */ 7009 6246 break; 7010 6247 7011 6248 case 369: 7012 7013 /* Line 1806 of yacc.c */ 7014 #line 1487 "parser.yy" 6249 #line 1487 "parser.yy" /* yacc.c:1646 */ 7015 6250 { (yyval.aggKey) = DeclarationNode::Struct; } 6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646 */ 7016 6252 break; 7017 6253 7018 6254 case 370: 7019 7020 /* Line 1806 of yacc.c */ 7021 #line 1489 "parser.yy" 6255 #line 1489 "parser.yy" /* yacc.c:1646 */ 7022 6256 { (yyval.aggKey) = DeclarationNode::Union; } 6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646 */ 7023 6258 break; 7024 6259 7025 6260 case 371: 7026 7027 /* Line 1806 of yacc.c */ 7028 #line 1494 "parser.yy" 6261 #line 1494 "parser.yy" /* yacc.c:1646 */ 7029 6262 { (yyval.decl) = 0; } 6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646 */ 7030 6264 break; 7031 6265 7032 6266 case 372: 7033 7034 /* Line 1806 of yacc.c */ 7035 #line 1496 "parser.yy" 7036 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 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 */ 7037 6270 break; 7038 6271 7039 6272 case 374: 7040 7041 /* Line 1806 of yacc.c */ 7042 #line 1502 "parser.yy" 7043 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 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 */ 7044 6276 break; 7045 6277 7046 6278 case 376: 7047 7048 /* Line 1806 of yacc.c */ 7049 #line 1505 "parser.yy" 6279 #line 1505 "parser.yy" /* yacc.c:1646 */ 7050 6280 { // mark all fields in list 7051 for ( DeclarationNode *iter = (yyvsp[ (2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )6281 for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7052 6282 iter->set_extension( true ); 7053 (yyval.decl) = (yyvsp[ (2) - (3)].decl);6283 (yyval.decl) = (yyvsp[-1].decl); 7054 6284 } 6285 #line 6286 "Parser/parser.cc" /* yacc.c:1646 */ 7055 6286 break; 7056 6287 7057 6288 case 378: 7058 7059 /* Line 1806 of yacc.c */ 7060 #line 1515 "parser.yy" 7061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 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 */ 7062 6292 break; 7063 6293 7064 6294 case 379: 7065 7066 /* Line 1806 of yacc.c */ 7067 #line 1517 "parser.yy" 7068 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 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 */ 7069 6298 break; 7070 6299 7071 6300 case 380: 7072 7073 /* Line 1806 of yacc.c */ 7074 #line 1519 "parser.yy" 7075 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 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 */ 7076 6304 break; 7077 6305 7078 6306 case 381: 7079 7080 /* Line 1806 of yacc.c */ 7081 #line 1524 "parser.yy" 7082 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 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 */ 7083 6310 break; 7084 6311 7085 6312 case 382: 7086 7087 /* Line 1806 of yacc.c */ 7088 #line 1526 "parser.yy" 7089 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 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 */ 7090 6316 break; 7091 6317 7092 6318 case 383: 7093 7094 /* Line 1806 of yacc.c */ 7095 #line 1531 "parser.yy" 6319 #line 1531 "parser.yy" /* yacc.c:1646 */ 7096 6320 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646 */ 7097 6322 break; 7098 6323 7099 6324 case 384: 7100 7101 /* Line 1806 of yacc.c */ 7102 #line 1533 "parser.yy" 7103 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 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 */ 7104 6328 break; 7105 6329 7106 6330 case 385: 7107 7108 /* Line 1806 of yacc.c */ 7109 #line 1536 "parser.yy" 7110 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 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 */ 7111 6334 break; 7112 6335 7113 6336 case 386: 7114 7115 /* Line 1806 of yacc.c */ 7116 #line 1539 "parser.yy" 7117 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 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 */ 7118 6340 break; 7119 6341 7120 6342 case 388: 7121 7122 /* Line 1806 of yacc.c */ 7123 #line 1545 "parser.yy" 6343 #line 1545 "parser.yy" /* yacc.c:1646 */ 7124 6344 { (yyval.en) = 0; } 6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646 */ 7125 6346 break; 7126 6347 7127 6348 case 389: 7128 7129 /* Line 1806 of yacc.c */ 7130 #line 1547 "parser.yy" 7131 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6349 #line 1547 "parser.yy" /* yacc.c:1646 */ 6350 { (yyval.en) = (yyvsp[0].en); } 6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 7132 6352 break; 7133 6353 7134 6354 case 390: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1552 "parser.yy" 7138 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6355 #line 1552 "parser.yy" /* yacc.c:1646 */ 6356 { (yyval.en) = (yyvsp[0].en); } 6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646 */ 7139 6358 break; 7140 6359 7141 6360 case 392: 7142 7143 /* Line 1806 of yacc.c */ 7144 #line 1561 "parser.yy" 7145 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 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 */ 7146 6364 break; 7147 6365 7148 6366 case 393: 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1563 "parser.yy" 7152 { 7153 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7154 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6367 #line 1563 "parser.yy" /* yacc.c:1646 */ 6368 { 6369 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6370 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 ); 7155 6371 } 6372 #line 6373 "Parser/parser.cc" /* yacc.c:1646 */ 7156 6373 break; 7157 6374 7158 6375 case 394: 7159 7160 /* Line 1806 of yacc.c */ 7161 #line 1568 "parser.yy" 7162 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6376 #line 1568 "parser.yy" /* yacc.c:1646 */ 6377 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646 */ 7163 6379 break; 7164 6380 7165 6381 case 395: 7166 7167 /* Line 1806 of yacc.c */ 7168 #line 1570 "parser.yy" 7169 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 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 */ 7170 6385 break; 7171 6386 7172 6387 case 396: 7173 7174 /* Line 1806 of yacc.c */ 7175 #line 1575 "parser.yy" 7176 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 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 */ 7177 6391 break; 7178 6392 7179 6393 case 397: 7180 7181 /* Line 1806 of yacc.c */ 7182 #line 1577 "parser.yy" 7183 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 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 */ 7184 6397 break; 7185 6398 7186 6399 case 398: 7187 7188 /* Line 1806 of yacc.c */ 7189 #line 1582 "parser.yy" 6400 #line 1582 "parser.yy" /* yacc.c:1646 */ 7190 6401 { (yyval.en) = 0; } 6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646 */ 7191 6403 break; 7192 6404 7193 6405 case 399: 7194 7195 /* Line 1806 of yacc.c */ 7196 #line 1584 "parser.yy" 7197 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6406 #line 1584 "parser.yy" /* yacc.c:1646 */ 6407 { (yyval.en) = (yyvsp[0].en); } 6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646 */ 7198 6409 break; 7199 6410 7200 6411 case 400: 7201 7202 /* Line 1806 of yacc.c */ 7203 #line 1591 "parser.yy" 6412 #line 1591 "parser.yy" /* yacc.c:1646 */ 7204 6413 { (yyval.decl) = 0; } 6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646 */ 7205 6415 break; 7206 6416 7207 6417 case 404: 7208 7209 /* Line 1806 of yacc.c */ 7210 #line 1599 "parser.yy" 7211 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 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 */ 7212 6421 break; 7213 6422 7214 6423 case 405: 7215 7216 /* Line 1806 of yacc.c */ 7217 #line 1601 "parser.yy" 7218 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6424 #line 1601 "parser.yy" /* yacc.c:1646 */ 6425 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 7219 6427 break; 7220 6428 7221 6429 case 406: 7222 7223 /* Line 1806 of yacc.c */ 7224 #line 1603 "parser.yy" 7225 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6430 #line 1603 "parser.yy" /* yacc.c:1646 */ 6431 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646 */ 7226 6433 break; 7227 6434 7228 6435 case 408: 7229 7230 /* Line 1806 of yacc.c */ 7231 #line 1611 "parser.yy" 7232 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 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 */ 7233 6439 break; 7234 6440 7235 6441 case 409: 7236 7237 /* Line 1806 of yacc.c */ 7238 #line 1613 "parser.yy" 7239 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 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 */ 7240 6445 break; 7241 6446 7242 6447 case 410: 7243 7244 /* Line 1806 of yacc.c */ 7245 #line 1615 "parser.yy" 7246 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 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 */ 7247 6451 break; 7248 6452 7249 6453 case 412: 7250 7251 /* Line 1806 of yacc.c */ 7252 #line 1621 "parser.yy" 7253 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 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 */ 7254 6457 break; 7255 6458 7256 6459 case 413: 7257 7258 /* Line 1806 of yacc.c */ 7259 #line 1626 "parser.yy" 6460 #line 1626 "parser.yy" /* yacc.c:1646 */ 7260 6461 { (yyval.decl) = 0; } 6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646 */ 7261 6463 break; 7262 6464 7263 6465 case 416: 7264 7265 /* Line 1806 of yacc.c */ 7266 #line 1633 "parser.yy" 7267 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6466 #line 1633 "parser.yy" /* yacc.c:1646 */ 6467 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646 */ 7268 6469 break; 7269 6470 7270 6471 case 419: 7271 7272 /* Line 1806 of yacc.c */ 7273 #line 1640 "parser.yy" 7274 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 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 */ 7275 6475 break; 7276 6476 7277 6477 case 420: 7278 7279 /* Line 1806 of yacc.c */ 7280 #line 1642 "parser.yy" 7281 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 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 */ 7282 6481 break; 7283 6482 7284 6483 case 422: 7285 7286 /* Line 1806 of yacc.c */ 7287 #line 1651 "parser.yy" 7288 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 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 */ 7289 6487 break; 7290 6488 7291 6489 case 423: 7292 7293 /* Line 1806 of yacc.c */ 7294 #line 1654 "parser.yy" 7295 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 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 */ 7296 6493 break; 7297 6494 7298 6495 case 424: 7299 7300 /* Line 1806 of yacc.c */ 7301 #line 1656 "parser.yy" 7302 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 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 */ 7303 6499 break; 7304 6500 7305 6501 case 429: 7306 7307 /* Line 1806 of yacc.c */ 7308 #line 1666 "parser.yy" 7309 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 7310 6505 break; 7311 6506 7312 6507 case 431: 7313 7314 /* Line 1806 of yacc.c */ 7315 #line 1672 "parser.yy" 6508 #line 1672 "parser.yy" /* yacc.c:1646 */ 7316 6509 { 7317 6510 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7318 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );6511 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 7319 6512 } 6513 #line 6514 "Parser/parser.cc" /* yacc.c:1646 */ 7320 6514 break; 7321 6515 7322 6516 case 432: 7323 7324 /* Line 1806 of yacc.c */ 7325 #line 1677 "parser.yy" 6517 #line 1677 "parser.yy" /* yacc.c:1646 */ 7326 6518 { 7327 6519 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7328 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );6520 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 7329 6521 } 6522 #line 6523 "Parser/parser.cc" /* yacc.c:1646 */ 7330 6523 break; 7331 6524 7332 6525 case 434: 7333 7334 /* Line 1806 of yacc.c */ 7335 #line 1686 "parser.yy" 7336 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 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 */ 7337 6529 break; 7338 6530 7339 6531 case 435: 7340 7341 /* Line 1806 of yacc.c */ 7342 #line 1695 "parser.yy" 7343 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 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 */ 7344 6535 break; 7345 6536 7346 6537 case 436: 7347 7348 /* Line 1806 of yacc.c */ 7349 #line 1697 "parser.yy" 7350 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 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 */ 7351 6541 break; 7352 6542 7353 6543 case 448: 7354 7355 /* Line 1806 of yacc.c */ 7356 #line 1722 "parser.yy" 7357 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 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 */ 7358 6547 break; 7359 6548 7360 6549 case 452: 7361 7362 /* Line 1806 of yacc.c */ 7363 #line 1730 "parser.yy" 7364 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 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 */ 7365 6553 break; 7366 6554 7367 6555 case 453: 7368 7369 /* Line 1806 of yacc.c */ 7370 #line 1735 "parser.yy" 6556 #line 1735 "parser.yy" /* yacc.c:1646 */ 7371 6557 { (yyval.in) = 0; } 6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646 */ 7372 6559 break; 7373 6560 7374 6561 case 454: 7375 7376 /* Line 1806 of yacc.c */ 7377 #line 1737 "parser.yy" 7378 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6562 #line 1737 "parser.yy" /* yacc.c:1646 */ 6563 { (yyval.in) = (yyvsp[0].in); } 6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646 */ 7379 6565 break; 7380 6566 7381 6567 case 455: 7382 7383 /* Line 1806 of yacc.c */ 7384 #line 1739 "parser.yy" 7385 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 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 */ 7386 6571 break; 7387 6572 7388 6573 case 456: 7389 7390 /* Line 1806 of yacc.c */ 7391 #line 1743 "parser.yy" 7392 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 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 */ 7393 6577 break; 7394 6578 7395 6579 case 457: 7396 7397 /* Line 1806 of yacc.c */ 7398 #line 1744 "parser.yy" 7399 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 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 */ 7400 6583 break; 7401 6584 7402 6585 case 458: 7403 7404 /* Line 1806 of yacc.c */ 7405 #line 1749 "parser.yy" 6586 #line 1749 "parser.yy" /* yacc.c:1646 */ 7406 6587 { (yyval.in) = 0; } 6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646 */ 7407 6589 break; 7408 6590 7409 6591 case 460: 7410 7411 /* Line 1806 of yacc.c */ 7412 #line 1751 "parser.yy" 7413 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 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 */ 7414 6595 break; 7415 6596 7416 6597 case 461: 7417 7418 /* Line 1806 of yacc.c */ 7419 #line 1752 "parser.yy" 7420 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 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 */ 7421 6601 break; 7422 6602 7423 6603 case 462: 7424 7425 /* Line 1806 of yacc.c */ 7426 #line 1754 "parser.yy" 7427 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 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 */ 7428 6607 break; 7429 6608 7430 6609 case 464: 7431 7432 /* Line 1806 of yacc.c */ 7433 #line 1770 "parser.yy" 7434 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 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 */ 7435 6613 break; 7436 6614 7437 6615 case 466: 7438 7439 /* Line 1806 of yacc.c */ 7440 #line 1776 "parser.yy" 7441 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 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 */ 7442 6619 break; 7443 6620 7444 6621 case 467: 7445 7446 /* Line 1806 of yacc.c */ 7447 #line 1782 "parser.yy" 7448 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 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 */ 7449 6625 break; 7450 6626 7451 6627 case 468: 7452 7453 /* Line 1806 of yacc.c */ 7454 #line 1785 "parser.yy" 7455 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6628 #line 1785 "parser.yy" /* yacc.c:1646 */ 6629 { (yyval.en) = (yyvsp[-2].en); } 6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 7456 6631 break; 7457 6632 7458 6633 case 469: 7459 7460 /* Line 1806 of yacc.c */ 7461 #line 1787 "parser.yy" 7462 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6634 #line 1787 "parser.yy" /* yacc.c:1646 */ 6635 { (yyval.en) = (yyvsp[-2].en); } 6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646 */ 7463 6637 break; 7464 6638 7465 6639 case 470: 7466 7467 /* Line 1806 of yacc.c */ 7468 #line 1789 "parser.yy" 7469 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 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 */ 7470 6643 break; 7471 6644 7472 6645 case 471: 7473 7474 /* Line 1806 of yacc.c */ 7475 #line 1791 "parser.yy" 7476 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6646 #line 1791 "parser.yy" /* yacc.c:1646 */ 6647 { (yyval.en) = (yyvsp[-2].en); } 6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646 */ 7477 6649 break; 7478 6650 7479 6651 case 473: 7480 7481 /* Line 1806 of yacc.c */ 7482 #line 1815 "parser.yy" 7483 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 7484 6655 break; 7485 6656 7486 6657 case 474: 7487 7488 /* Line 1806 of yacc.c */ 7489 #line 1817 "parser.yy" 7490 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 7491 6661 break; 7492 6662 7493 6663 case 475: 7494 7495 /* Line 1806 of yacc.c */ 7496 #line 1819 "parser.yy" 7497 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 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 */ 7498 6667 break; 7499 6668 7500 6669 case 477: 7501 7502 /* Line 1806 of yacc.c */ 7503 #line 1825 "parser.yy" 7504 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 7505 6673 break; 7506 6674 7507 6675 case 478: 7508 7509 /* Line 1806 of yacc.c */ 7510 #line 1827 "parser.yy" 7511 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 7512 6679 break; 7513 6680 7514 6681 case 479: 7515 7516 /* Line 1806 of yacc.c */ 7517 #line 1832 "parser.yy" 7518 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 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 */ 7519 6685 break; 7520 6686 7521 6687 case 481: 7522 7523 /* Line 1806 of yacc.c */ 7524 #line 1838 "parser.yy" 7525 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 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 */ 7526 6691 break; 7527 6692 7528 6693 case 482: 7529 7530 /* Line 1806 of yacc.c */ 7531 #line 1843 "parser.yy" 7532 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 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 */ 7533 6697 break; 7534 6698 7535 6699 case 483: 7536 7537 /* Line 1806 of yacc.c */ 7538 #line 1845 "parser.yy" 7539 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 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 */ 7540 6703 break; 7541 6704 7542 6705 case 485: 7543 7544 /* Line 1806 of yacc.c */ 7545 #line 1851 "parser.yy" 6706 #line 1851 "parser.yy" /* yacc.c:1646 */ 7546 6707 { (yyval.tclass) = DeclarationNode::Type; } 6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646 */ 7547 6709 break; 7548 6710 7549 6711 case 486: 7550 7551 /* Line 1806 of yacc.c */ 7552 #line 1853 "parser.yy" 6712 #line 1853 "parser.yy" /* yacc.c:1646 */ 7553 6713 { (yyval.tclass) = DeclarationNode::Ftype; } 6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646 */ 7554 6715 break; 7555 6716 7556 6717 case 487: 7557 7558 /* Line 1806 of yacc.c */ 7559 #line 1855 "parser.yy" 6718 #line 1855 "parser.yy" /* yacc.c:1646 */ 7560 6719 { (yyval.tclass) = DeclarationNode::Dtype; } 6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646 */ 7561 6721 break; 7562 6722 7563 6723 case 488: 7564 7565 /* Line 1806 of yacc.c */ 7566 #line 1860 "parser.yy" 6724 #line 1860 "parser.yy" /* yacc.c:1646 */ 7567 6725 { (yyval.decl) = 0; } 6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646 */ 7568 6727 break; 7569 6728 7570 6729 case 489: 7571 7572 /* Line 1806 of yacc.c */ 7573 #line 1862 "parser.yy" 7574 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 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 */ 7575 6733 break; 7576 6734 7577 6735 case 490: 7578 7579 /* Line 1806 of yacc.c */ 7580 #line 1867 "parser.yy" 7581 { 7582 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7583 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6736 #line 1867 "parser.yy" /* yacc.c:1646 */ 6737 { 6738 typedefTable.openTrait( *(yyvsp[-3].tok) ); 6739 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) ); 7584 6740 } 6741 #line 6742 "Parser/parser.cc" /* yacc.c:1646 */ 7585 6742 break; 7586 6743 7587 6744 case 491: 7588 7589 /* Line 1806 of yacc.c */ 7590 #line 1872 "parser.yy" 7591 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6745 #line 1872 "parser.yy" /* yacc.c:1646 */ 6746 { (yyval.decl) = (yyvsp[-1].decl); } 6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646 */ 7592 6748 break; 7593 6749 7594 6750 case 492: 7595 7596 /* Line 1806 of yacc.c */ 7597 #line 1874 "parser.yy" 6751 #line 1874 "parser.yy" /* yacc.c:1646 */ 7598 6752 { (yyval.decl) = 0; } 6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646 */ 7599 6754 break; 7600 6755 7601 6756 case 493: 7602 7603 /* Line 1806 of yacc.c */ 7604 #line 1879 "parser.yy" 7605 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 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 */ 7606 6760 break; 7607 6761 7608 6762 case 495: 7609 7610 /* Line 1806 of yacc.c */ 7611 #line 1882 "parser.yy" 7612 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 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 */ 7613 6766 break; 7614 6767 7615 6768 case 496: 7616 7617 /* Line 1806 of yacc.c */ 7618 #line 1884 "parser.yy" 7619 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 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 */ 7620 6772 break; 7621 6773 7622 6774 case 497: 7623 7624 /* Line 1806 of yacc.c */ 7625 #line 1889 "parser.yy" 7626 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6775 #line 1889 "parser.yy" /* yacc.c:1646 */ 6776 { (yyval.decl) = (yyvsp[0].decl); } 6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646 */ 7627 6778 break; 7628 6779 7629 6780 case 498: 7630 7631 /* Line 1806 of yacc.c */ 7632 #line 1891 "parser.yy" 7633 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 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 */ 7634 6784 break; 7635 6785 7636 6786 case 499: 7637 7638 /* Line 1806 of yacc.c */ 7639 #line 1893 "parser.yy" 7640 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 7641 6790 break; 7642 6791 7643 6792 case 500: 7644 7645 /* Line 1806 of yacc.c */ 7646 #line 1898 "parser.yy" 7647 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 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 */ 7648 6796 break; 7649 6797 7650 6798 case 501: 7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1900 "parser.yy" 7654 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 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 */ 7655 6802 break; 7656 6803 7657 6804 case 502: 7658 7659 /* Line 1806 of yacc.c */ 7660 #line 1905 "parser.yy" 7661 { 7662 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7663 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6805 #line 1905 "parser.yy" /* yacc.c:1646 */ 6806 { 6807 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 6808 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 ); 7664 6809 } 6810 #line 6811 "Parser/parser.cc" /* yacc.c:1646 */ 7665 6811 break; 7666 6812 7667 6813 case 503: 7668 7669 /* Line 1806 of yacc.c */ 7670 #line 1910 "parser.yy" 7671 { 7672 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7673 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6814 #line 1910 "parser.yy" /* yacc.c:1646 */ 6815 { 6816 typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG ); 6817 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) ); 7674 6818 } 6819 #line 6820 "Parser/parser.cc" /* yacc.c:1646 */ 7675 6820 break; 7676 6821 7677 6822 case 504: 7678 7679 /* Line 1806 of yacc.c */ 7680 #line 1918 "parser.yy" 7681 { 7682 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7683 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6823 #line 1918 "parser.yy" /* yacc.c:1646 */ 6824 { 6825 typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID ); 6826 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 ); 7684 6827 } 6828 #line 6829 "Parser/parser.cc" /* yacc.c:1646 */ 7685 6829 break; 7686 6830 7687 6831 case 505: 7688 7689 /* Line 1806 of yacc.c */ 7690 #line 1923 "parser.yy" 7691 { 7692 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6832 #line 1923 "parser.yy" /* yacc.c:1646 */ 6833 { 6834 typedefTable.enterTrait( *(yyvsp[-6].tok) ); 7693 6835 typedefTable.enterScope(); 7694 6836 } 6837 #line 6838 "Parser/parser.cc" /* yacc.c:1646 */ 7695 6838 break; 7696 6839 7697 6840 case 506: 7698 7699 /* Line 1806 of yacc.c */ 7700 #line 1928 "parser.yy" 6841 #line 1928 "parser.yy" /* yacc.c:1646 */ 7701 6842 { 7702 6843 typedefTable.leaveTrait(); 7703 typedefTable.addToEnclosingScope( *(yyvsp[ (2) - (11)].tok), TypedefTable::ID );7704 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ (2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );6844 typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID ); 6845 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) ); 7705 6846 } 6847 #line 6848 "Parser/parser.cc" /* yacc.c:1646 */ 7706 6848 break; 7707 6849 7708 6850 case 508: 7709 7710 /* Line 1806 of yacc.c */ 7711 #line 1938 "parser.yy" 7712 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 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 */ 7713 6854 break; 7714 6855 7715 6856 case 511: 7716 7717 /* Line 1806 of yacc.c */ 7718 #line 1948 "parser.yy" 6857 #line 1948 "parser.yy" /* yacc.c:1646 */ 7719 6858 { 7720 6859 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7721 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6860 (yyval.decl) = (yyvsp[0].decl); 7722 6861 } 6862 #line 6863 "Parser/parser.cc" /* yacc.c:1646 */ 7723 6863 break; 7724 6864 7725 6865 case 512: 7726 7727 /* Line 1806 of yacc.c */ 7728 #line 1953 "parser.yy" 6866 #line 1953 "parser.yy" /* yacc.c:1646 */ 7729 6867 { 7730 6868 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7731 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6869 (yyval.decl) = (yyvsp[0].decl); 7732 6870 } 6871 #line 6872 "Parser/parser.cc" /* yacc.c:1646 */ 7733 6872 break; 7734 6873 7735 6874 case 513: 7736 7737 /* Line 1806 of yacc.c */ 7738 #line 1958 "parser.yy" 7739 { 7740 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7741 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6875 #line 1958 "parser.yy" /* yacc.c:1646 */ 6876 { 6877 typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID ); 6878 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 7742 6879 } 6880 #line 6881 "Parser/parser.cc" /* yacc.c:1646 */ 7743 6881 break; 7744 6882 7745 6883 case 514: 7746 7747 /* Line 1806 of yacc.c */ 7748 #line 1966 "parser.yy" 6884 #line 1966 "parser.yy" /* yacc.c:1646 */ 7749 6885 { 7750 6886 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7751 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );6887 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 7752 6888 } 6889 #line 6890 "Parser/parser.cc" /* yacc.c:1646 */ 7753 6890 break; 7754 6891 7755 6892 case 515: 7756 7757 /* Line 1806 of yacc.c */ 7758 #line 1971 "parser.yy" 6893 #line 1971 "parser.yy" /* yacc.c:1646 */ 7759 6894 { 7760 6895 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7761 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );6896 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) ); 7762 6897 } 6898 #line 6899 "Parser/parser.cc" /* yacc.c:1646 */ 7763 6899 break; 7764 6900 7765 6901 case 516: 7766 7767 /* Line 1806 of yacc.c */ 7768 #line 1981 "parser.yy" 6902 #line 1981 "parser.yy" /* yacc.c:1646 */ 7769 6903 {} 6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646 */ 7770 6905 break; 7771 6906 7772 6907 case 517: 7773 7774 /* Line 1806 of yacc.c */ 7775 #line 1983 "parser.yy" 7776 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 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 */ 7777 6911 break; 7778 6912 7779 6913 case 519: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 1989 "parser.yy" 7783 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 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 */ 7784 6917 break; 7785 6918 7786 6919 case 520: 7787 7788 /* Line 1806 of yacc.c */ 7789 #line 1994 "parser.yy" 6920 #line 1994 "parser.yy" /* yacc.c:1646 */ 7790 6921 { (yyval.decl) = 0; } 6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646 */ 7791 6923 break; 7792 6924 7793 6925 case 524: 7794 7795 /* Line 1806 of yacc.c */ 7796 #line 2002 "parser.yy" 6926 #line 2002 "parser.yy" /* yacc.c:1646 */ 7797 6927 {} 6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646 */ 7798 6929 break; 7799 6930 7800 6931 case 525: 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 2004 "parser.yy" 6932 #line 2004 "parser.yy" /* yacc.c:1646 */ 7804 6933 { 7805 6934 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 7806 linkage = LinkageSpec::fromString( *(yyvsp[ (2) - (2)].tok) );6935 linkage = LinkageSpec::fromString( *(yyvsp[0].tok) ); 7807 6936 } 6937 #line 6938 "Parser/parser.cc" /* yacc.c:1646 */ 7808 6938 break; 7809 6939 7810 6940 case 526: 7811 7812 /* Line 1806 of yacc.c */ 7813 #line 2009 "parser.yy" 6941 #line 2009 "parser.yy" /* yacc.c:1646 */ 7814 6942 { 7815 6943 linkage = linkageStack.top(); 7816 6944 linkageStack.pop(); 7817 (yyval.decl) = (yyvsp[ (5) - (6)].decl);6945 (yyval.decl) = (yyvsp[-1].decl); 7818 6946 } 6947 #line 6948 "Parser/parser.cc" /* yacc.c:1646 */ 7819 6948 break; 7820 6949 7821 6950 case 527: 7822 7823 /* Line 1806 of yacc.c */ 7824 #line 2015 "parser.yy" 6951 #line 2015 "parser.yy" /* yacc.c:1646 */ 7825 6952 { // mark all fields in list 7826 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )6953 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7827 6954 iter->set_extension( true ); 7828 (yyval.decl) = (yyvsp[ (2) - (2)].decl);6955 (yyval.decl) = (yyvsp[0].decl); 7829 6956 } 6957 #line 6958 "Parser/parser.cc" /* yacc.c:1646 */ 7830 6958 break; 7831 6959 7832 6960 case 529: 7833 7834 /* Line 1806 of yacc.c */ 7835 #line 2030 "parser.yy" 6961 #line 2030 "parser.yy" /* yacc.c:1646 */ 7836 6962 { 7837 6963 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7838 6964 typedefTable.leaveScope(); 7839 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6965 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7840 6966 } 6967 #line 6968 "Parser/parser.cc" /* yacc.c:1646 */ 7841 6968 break; 7842 6969 7843 6970 case 530: 7844 7845 /* Line 1806 of yacc.c */ 7846 #line 2036 "parser.yy" 6971 #line 2036 "parser.yy" /* yacc.c:1646 */ 7847 6972 { 7848 6973 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7849 6974 typedefTable.leaveScope(); 7850 (yyval.decl) = (yyvsp[ (1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );6975 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) ); 7851 6976 } 6977 #line 6978 "Parser/parser.cc" /* yacc.c:1646 */ 7852 6978 break; 7853 6979 7854 6980 case 531: 7855 7856 /* Line 1806 of yacc.c */ 7857 #line 2045 "parser.yy" 6981 #line 2045 "parser.yy" /* yacc.c:1646 */ 7858 6982 { 7859 6983 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7860 6984 typedefTable.leaveScope(); 7861 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6985 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7862 6986 } 6987 #line 6988 "Parser/parser.cc" /* yacc.c:1646 */ 7863 6988 break; 7864 6989 7865 6990 case 532: 7866 7867 /* Line 1806 of yacc.c */ 7868 #line 2051 "parser.yy" 6991 #line 2051 "parser.yy" /* yacc.c:1646 */ 7869 6992 { 7870 6993 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7871 6994 typedefTable.leaveScope(); 7872 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );6995 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) ); 7873 6996 } 6997 #line 6998 "Parser/parser.cc" /* yacc.c:1646 */ 7874 6998 break; 7875 6999 7876 7000 case 533: 7877 7878 /* Line 1806 of yacc.c */ 7879 #line 2057 "parser.yy" 7001 #line 2057 "parser.yy" /* yacc.c:1646 */ 7880 7002 { 7881 7003 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7882 7004 typedefTable.leaveScope(); 7883 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7005 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7884 7006 } 7007 #line 7008 "Parser/parser.cc" /* yacc.c:1646 */ 7885 7008 break; 7886 7009 7887 7010 case 534: 7888 7889 /* Line 1806 of yacc.c */ 7890 #line 2063 "parser.yy" 7011 #line 2063 "parser.yy" /* yacc.c:1646 */ 7891 7012 { 7892 7013 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7893 7014 typedefTable.leaveScope(); 7894 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7015 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7895 7016 } 7017 #line 7018 "Parser/parser.cc" /* yacc.c:1646 */ 7896 7018 break; 7897 7019 7898 7020 case 535: 7899 7900 /* Line 1806 of yacc.c */ 7901 #line 2069 "parser.yy" 7021 #line 2069 "parser.yy" /* yacc.c:1646 */ 7902 7022 { 7903 7023 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7904 7024 typedefTable.leaveScope(); 7905 (yyval.decl) = (yyvsp[ (3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );7025 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) ); 7906 7026 } 7027 #line 7028 "Parser/parser.cc" /* yacc.c:1646 */ 7907 7028 break; 7908 7029 7909 7030 case 536: 7910 7911 /* Line 1806 of yacc.c */ 7912 #line 2077 "parser.yy" 7031 #line 2077 "parser.yy" /* yacc.c:1646 */ 7913 7032 { 7914 7033 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7915 7034 typedefTable.leaveScope(); 7916 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );7035 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) ); 7917 7036 } 7037 #line 7038 "Parser/parser.cc" /* yacc.c:1646 */ 7918 7038 break; 7919 7039 7920 7040 case 537: 7921 7922 /* Line 1806 of yacc.c */ 7923 #line 2083 "parser.yy" 7041 #line 2083 "parser.yy" /* yacc.c:1646 */ 7924 7042 { 7925 7043 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7926 7044 typedefTable.leaveScope(); 7927 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );7045 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7928 7046 } 7047 #line 7048 "Parser/parser.cc" /* yacc.c:1646 */ 7929 7048 break; 7930 7049 7931 7050 case 538: 7932 7933 /* Line 1806 of yacc.c */ 7934 #line 2091 "parser.yy" 7051 #line 2091 "parser.yy" /* yacc.c:1646 */ 7935 7052 { 7936 7053 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7937 7054 typedefTable.leaveScope(); 7938 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );7055 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7939 7056 } 7057 #line 7058 "Parser/parser.cc" /* yacc.c:1646 */ 7940 7058 break; 7941 7059 7942 7060 case 539: 7943 7944 /* Line 1806 of yacc.c */ 7945 #line 2097 "parser.yy" 7061 #line 2097 "parser.yy" /* yacc.c:1646 */ 7946 7062 { 7947 7063 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7948 7064 typedefTable.leaveScope(); 7949 (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) );7065 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) ); 7950 7066 } 7067 #line 7068 "Parser/parser.cc" /* yacc.c:1646 */ 7951 7068 break; 7952 7069 7953 7070 case 543: 7954 7955 /* Line 1806 of yacc.c */ 7956 #line 2112 "parser.yy" 7957 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 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 */ 7958 7074 break; 7959 7075 7960 7076 case 545: 7961 7962 /* Line 1806 of yacc.c */ 7963 #line 2117 "parser.yy" 7964 { delete (yyvsp[(3) - (5)].str); } 7077 #line 2117 "parser.yy" /* yacc.c:1646 */ 7078 { delete (yyvsp[-2].str); } 7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646 */ 7965 7080 break; 7966 7081 7967 7082 case 546: 7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2122 "parser.yy" 7083 #line 2122 "parser.yy" /* yacc.c:1646 */ 7971 7084 { (yyval.decl) = 0; } 7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646 */ 7972 7086 break; 7973 7087 7974 7088 case 549: 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2129 "parser.yy" 7978 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 7979 7092 break; 7980 7093 7981 7094 case 550: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2135 "parser.yy" 7095 #line 2135 "parser.yy" /* yacc.c:1646 */ 7985 7096 { (yyval.decl) = 0; } 7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646 */ 7986 7098 break; 7987 7099 7988 7100 case 555: 7989 7990 /* Line 1806 of yacc.c */ 7991 #line 2146 "parser.yy" 7992 { delete (yyvsp[(3) - (4)].en); } 7101 #line 2146 "parser.yy" /* yacc.c:1646 */ 7102 { delete (yyvsp[-1].en); } 7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646 */ 7993 7104 break; 7994 7105 7995 7106 case 556: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2150 "parser.yy" 7999 { delete (yyvsp[(1) - (1)].tok); } 7107 #line 2150 "parser.yy" /* yacc.c:1646 */ 7108 { delete (yyvsp[0].tok); } 7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646 */ 8000 7110 break; 8001 7111 8002 7112 case 557: 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2151 "parser.yy" 8006 { delete (yyvsp[(1) - (1)].decl); } 7113 #line 2151 "parser.yy" /* yacc.c:1646 */ 7114 { delete (yyvsp[0].decl); } 7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 8007 7116 break; 8008 7117 8009 7118 case 558: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2152 "parser.yy" 8013 { delete (yyvsp[(1) - (1)].decl); } 7119 #line 2152 "parser.yy" /* yacc.c:1646 */ 7120 { delete (yyvsp[0].decl); } 7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646 */ 8014 7122 break; 8015 7123 8016 7124 case 559: 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2153 "parser.yy" 8020 { delete (yyvsp[(1) - (1)].decl); } 7125 #line 2153 "parser.yy" /* yacc.c:1646 */ 7126 { delete (yyvsp[0].decl); } 7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646 */ 8021 7128 break; 8022 7129 8023 7130 case 560: 8024 8025 /* Line 1806 of yacc.c */ 8026 #line 2188 "parser.yy" 8027 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8028 7134 break; 8029 7135 8030 7136 case 562: 8031 8032 /* Line 1806 of yacc.c */ 8033 #line 2191 "parser.yy" 8034 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8035 7140 break; 8036 7141 8037 7142 case 563: 8038 8039 /* Line 1806 of yacc.c */ 8040 #line 2193 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8042 7146 break; 8043 7147 8044 7148 case 564: 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2198 "parser.yy" 8048 { 8049 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8050 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7149 #line 2198 "parser.yy" /* yacc.c:1646 */ 7150 { 7151 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7152 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8051 7153 } 7154 #line 7155 "Parser/parser.cc" /* yacc.c:1646 */ 8052 7155 break; 8053 7156 8054 7157 case 565: 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2203 "parser.yy" 8058 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7158 #line 2203 "parser.yy" /* yacc.c:1646 */ 7159 { (yyval.decl) = (yyvsp[-1].decl); } 7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646 */ 8059 7161 break; 8060 7162 8061 7163 case 566: 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2208 "parser.yy" 8065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8066 7167 break; 8067 7168 8068 7169 case 567: 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2210 "parser.yy" 8072 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8073 7173 break; 8074 7174 8075 7175 case 568: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2212 "parser.yy" 8079 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7176 #line 2212 "parser.yy" /* yacc.c:1646 */ 7177 { (yyval.decl) = (yyvsp[-1].decl); } 7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646 */ 8080 7179 break; 8081 7180 8082 7181 case 569: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2217 "parser.yy" 8086 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 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 */ 8087 7185 break; 8088 7186 8089 7187 case 570: 8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2219 "parser.yy" 8093 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8094 7191 break; 8095 7192 8096 7193 case 571: 8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2221 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8101 7197 break; 8102 7198 8103 7199 case 572: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2223 "parser.yy" 8107 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7200 #line 2223 "parser.yy" /* yacc.c:1646 */ 7201 { (yyval.decl) = (yyvsp[-1].decl); } 7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646 */ 8108 7203 break; 8109 7204 8110 7205 case 573: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2228 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8115 7209 break; 8116 7210 8117 7211 case 574: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2230 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7212 #line 2230 "parser.yy" /* yacc.c:1646 */ 7213 { (yyval.decl) = (yyvsp[-1].decl); } 7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646 */ 8122 7215 break; 8123 7216 8124 7217 case 575: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2239 "parser.yy" 8128 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8129 7221 break; 8130 7222 8131 7223 case 577: 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2242 "parser.yy" 8135 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8136 7227 break; 8137 7228 8138 7229 case 578: 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2247 "parser.yy" 8142 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 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 */ 8143 7233 break; 8144 7234 8145 7235 case 579: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2249 "parser.yy" 8149 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8150 7239 break; 8151 7240 8152 7241 case 580: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2251 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7242 #line 2251 "parser.yy" /* yacc.c:1646 */ 7243 { (yyval.decl) = (yyvsp[-1].decl); } 7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646 */ 8157 7245 break; 8158 7246 8159 7247 case 581: 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2256 "parser.yy" 8163 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8164 7251 break; 8165 7252 8166 7253 case 582: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2258 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8171 7257 break; 8172 7258 8173 7259 case 583: 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2260 "parser.yy" 8177 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7260 #line 2260 "parser.yy" /* yacc.c:1646 */ 7261 { (yyval.decl) = (yyvsp[-1].decl); } 7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646 */ 8178 7263 break; 8179 7264 8180 7265 case 584: 8181 8182 /* Line 1806 of yacc.c */ 8183 #line 2265 "parser.yy" 8184 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8185 7269 break; 8186 7270 8187 7271 case 585: 8188 8189 /* Line 1806 of yacc.c */ 8190 #line 2267 "parser.yy" 8191 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8192 7275 break; 8193 7276 8194 7277 case 586: 8195 8196 /* Line 1806 of yacc.c */ 8197 #line 2269 "parser.yy" 8198 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7278 #line 2269 "parser.yy" /* yacc.c:1646 */ 7279 { (yyval.decl) = (yyvsp[-1].decl); } 7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646 */ 8199 7281 break; 8200 7282 8201 7283 case 590: 8202 8203 /* Line 1806 of yacc.c */ 8204 #line 2284 "parser.yy" 8205 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 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 */ 8206 7287 break; 8207 7288 8208 7289 case 591: 8209 8210 /* Line 1806 of yacc.c */ 8211 #line 2286 "parser.yy" 8212 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 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 */ 8213 7293 break; 8214 7294 8215 7295 case 592: 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2288 "parser.yy" 8219 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7296 #line 2288 "parser.yy" /* yacc.c:1646 */ 7297 { (yyval.decl) = (yyvsp[-1].decl); } 7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646 */ 8220 7299 break; 8221 7300 8222 7301 case 593: 8223 8224 /* Line 1806 of yacc.c */ 8225 #line 2293 "parser.yy" 8226 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8227 7305 break; 8228 7306 8229 7307 case 594: 8230 8231 /* Line 1806 of yacc.c */ 8232 #line 2295 "parser.yy" 8233 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8234 7311 break; 8235 7312 8236 7313 case 595: 8237 8238 /* Line 1806 of yacc.c */ 8239 #line 2297 "parser.yy" 8240 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7314 #line 2297 "parser.yy" /* yacc.c:1646 */ 7315 { (yyval.decl) = (yyvsp[-1].decl); } 7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646 */ 8241 7317 break; 8242 7318 8243 7319 case 596: 8244 8245 /* Line 1806 of yacc.c */ 8246 #line 2302 "parser.yy" 8247 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8248 7323 break; 8249 7324 8250 7325 case 597: 8251 8252 /* Line 1806 of yacc.c */ 8253 #line 2304 "parser.yy" 8254 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8255 7329 break; 8256 7330 8257 7331 case 598: 8258 8259 /* Line 1806 of yacc.c */ 8260 #line 2306 "parser.yy" 8261 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7332 #line 2306 "parser.yy" /* yacc.c:1646 */ 7333 { (yyval.decl) = (yyvsp[-1].decl); } 7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646 */ 8262 7335 break; 8263 7336 8264 7337 case 599: 8265 8266 /* Line 1806 of yacc.c */ 8267 #line 2321 "parser.yy" 8268 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8269 7341 break; 8270 7342 8271 7343 case 601: 8272 8273 /* Line 1806 of yacc.c */ 8274 #line 2324 "parser.yy" 8275 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8276 7347 break; 8277 7348 8278 7349 case 602: 8279 8280 /* Line 1806 of yacc.c */ 8281 #line 2326 "parser.yy" 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8283 7353 break; 8284 7354 8285 7355 case 604: 8286 8287 /* Line 1806 of yacc.c */ 8288 #line 2332 "parser.yy" 8289 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7356 #line 2332 "parser.yy" /* yacc.c:1646 */ 7357 { (yyval.decl) = (yyvsp[-1].decl); } 7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646 */ 8290 7359 break; 8291 7360 8292 7361 case 605: 8293 8294 /* Line 1806 of yacc.c */ 8295 #line 2337 "parser.yy" 8296 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8297 7365 break; 8298 7366 8299 7367 case 606: 8300 8301 /* Line 1806 of yacc.c */ 8302 #line 2339 "parser.yy" 8303 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8304 7371 break; 8305 7372 8306 7373 case 607: 8307 8308 /* Line 1806 of yacc.c */ 8309 #line 2341 "parser.yy" 8310 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7374 #line 2341 "parser.yy" /* yacc.c:1646 */ 7375 { (yyval.decl) = (yyvsp[-1].decl); } 7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646 */ 8311 7377 break; 8312 7378 8313 7379 case 608: 8314 8315 /* Line 1806 of yacc.c */ 8316 #line 2346 "parser.yy" 8317 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 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 */ 8318 7383 break; 8319 7384 8320 7385 case 609: 8321 8322 /* Line 1806 of yacc.c */ 8323 #line 2348 "parser.yy" 8324 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8325 7389 break; 8326 7390 8327 7391 case 610: 8328 8329 /* Line 1806 of yacc.c */ 8330 #line 2350 "parser.yy" 8331 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8332 7395 break; 8333 7396 8334 7397 case 611: 8335 8336 /* Line 1806 of yacc.c */ 8337 #line 2352 "parser.yy" 8338 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7398 #line 2352 "parser.yy" /* yacc.c:1646 */ 7399 { (yyval.decl) = (yyvsp[-1].decl); } 7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646 */ 8339 7401 break; 8340 7402 8341 7403 case 612: 8342 8343 /* Line 1806 of yacc.c */ 8344 #line 2357 "parser.yy" 8345 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 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 */ 8346 7407 break; 8347 7408 8348 7409 case 613: 8349 8350 /* Line 1806 of yacc.c */ 8351 #line 2359 "parser.yy" 8352 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8353 7413 break; 8354 7414 8355 7415 case 614: 8356 8357 /* Line 1806 of yacc.c */ 8358 #line 2361 "parser.yy" 8359 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7416 #line 2361 "parser.yy" /* yacc.c:1646 */ 7417 { (yyval.decl) = (yyvsp[-1].decl); } 7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646 */ 8360 7419 break; 8361 7420 8362 7421 case 615: 8363 8364 /* Line 1806 of yacc.c */ 8365 #line 2371 "parser.yy" 8366 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8367 7425 break; 8368 7426 8369 7427 case 617: 8370 8371 /* Line 1806 of yacc.c */ 8372 #line 2374 "parser.yy" 8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8374 7431 break; 8375 7432 8376 7433 case 618: 8377 8378 /* Line 1806 of yacc.c */ 8379 #line 2376 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8381 7437 break; 8382 7438 8383 7439 case 619: 8384 8385 /* Line 1806 of yacc.c */ 8386 #line 2381 "parser.yy" 8387 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8388 7443 break; 8389 7444 8390 7445 case 620: 8391 8392 /* Line 1806 of yacc.c */ 8393 #line 2383 "parser.yy" 8394 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8395 7449 break; 8396 7450 8397 7451 case 621: 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2385 "parser.yy" 8401 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7452 #line 2385 "parser.yy" /* yacc.c:1646 */ 7453 { (yyval.decl) = (yyvsp[-1].decl); } 7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646 */ 8402 7455 break; 8403 7456 8404 7457 case 622: 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2390 "parser.yy" 8408 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 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 */ 8409 7461 break; 8410 7462 8411 7463 case 623: 8412 8413 /* Line 1806 of yacc.c */ 8414 #line 2392 "parser.yy" 8415 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8416 7467 break; 8417 7468 8418 7469 case 624: 8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2394 "parser.yy" 8422 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8423 7473 break; 8424 7474 8425 7475 case 625: 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2396 "parser.yy" 8429 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7476 #line 2396 "parser.yy" /* yacc.c:1646 */ 7477 { (yyval.decl) = (yyvsp[-1].decl); } 7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646 */ 8430 7479 break; 8431 7480 8432 7481 case 626: 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2401 "parser.yy" 8436 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 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 */ 8437 7485 break; 8438 7486 8439 7487 case 627: 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2403 "parser.yy" 8443 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8444 7491 break; 8445 7492 8446 7493 case 628: 8447 8448 /* Line 1806 of yacc.c */ 8449 #line 2405 "parser.yy" 8450 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7494 #line 2405 "parser.yy" /* yacc.c:1646 */ 7495 { (yyval.decl) = (yyvsp[-1].decl); } 7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646 */ 8451 7497 break; 8452 7498 8453 7499 case 629: 8454 8455 /* Line 1806 of yacc.c */ 8456 #line 2436 "parser.yy" 8457 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8458 7503 break; 8459 7504 8460 7505 case 631: 8461 8462 /* Line 1806 of yacc.c */ 8463 #line 2439 "parser.yy" 8464 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8465 7509 break; 8466 7510 8467 7511 case 632: 8468 8469 /* Line 1806 of yacc.c */ 8470 #line 2441 "parser.yy" 8471 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8472 7515 break; 8473 7516 8474 7517 case 633: 8475 8476 /* Line 1806 of yacc.c */ 8477 #line 2446 "parser.yy" 8478 { 8479 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8480 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7518 #line 2446 "parser.yy" /* yacc.c:1646 */ 7519 { 7520 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7521 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8481 7522 } 7523 #line 7524 "Parser/parser.cc" /* yacc.c:1646 */ 8482 7524 break; 8483 7525 8484 7526 case 634: 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2451 "parser.yy" 8488 { 8489 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8490 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7527 #line 2451 "parser.yy" /* yacc.c:1646 */ 7528 { 7529 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7530 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8491 7531 } 7532 #line 7533 "Parser/parser.cc" /* yacc.c:1646 */ 8492 7533 break; 8493 7534 8494 7535 case 635: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2459 "parser.yy" 8498 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8499 7539 break; 8500 7540 8501 7541 case 636: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2461 "parser.yy" 8505 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8506 7545 break; 8507 7546 8508 7547 case 637: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2463 "parser.yy" 8512 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7548 #line 2463 "parser.yy" /* yacc.c:1646 */ 7549 { (yyval.decl) = (yyvsp[-1].decl); } 7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646 */ 8513 7551 break; 8514 7552 8515 7553 case 638: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2468 "parser.yy" 8519 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 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 */ 8520 7557 break; 8521 7558 8522 7559 case 639: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2470 "parser.yy" 8526 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8527 7563 break; 8528 7564 8529 7565 case 640: 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2475 "parser.yy" 8533 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 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 */ 8534 7569 break; 8535 7570 8536 7571 case 641: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2477 "parser.yy" 8540 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8541 7575 break; 8542 7576 8543 7577 case 643: 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2492 "parser.yy" 8547 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8548 7581 break; 8549 7582 8550 7583 case 644: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2494 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8555 7587 break; 8556 7588 8557 7589 case 645: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2499 "parser.yy" 7590 #line 2499 "parser.yy" /* yacc.c:1646 */ 8561 7591 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646 */ 8562 7593 break; 8563 7594 8564 7595 case 646: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2501 "parser.yy" 8568 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 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 */ 8569 7599 break; 8570 7600 8571 7601 case 647: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2503 "parser.yy" 8575 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8576 7605 break; 8577 7606 8578 7607 case 648: 8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2505 "parser.yy" 8582 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8583 7611 break; 8584 7612 8585 7613 case 649: 8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2507 "parser.yy" 8589 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7614 #line 2507 "parser.yy" /* yacc.c:1646 */ 7615 { (yyval.decl) = (yyvsp[-1].decl); } 7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646 */ 8590 7617 break; 8591 7618 8592 7619 case 651: 8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2513 "parser.yy" 8596 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8597 7623 break; 8598 7624 8599 7625 case 652: 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2515 "parser.yy" 8603 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8604 7629 break; 8605 7630 8606 7631 case 653: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2517 "parser.yy" 8610 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7632 #line 2517 "parser.yy" /* yacc.c:1646 */ 7633 { (yyval.decl) = (yyvsp[-1].decl); } 7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646 */ 8611 7635 break; 8612 7636 8613 7637 case 654: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2522 "parser.yy" 8617 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 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 */ 8618 7641 break; 8619 7642 8620 7643 case 655: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2524 "parser.yy" 8624 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8625 7647 break; 8626 7648 8627 7649 case 656: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2526 "parser.yy" 8631 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7650 #line 2526 "parser.yy" /* yacc.c:1646 */ 7651 { (yyval.decl) = (yyvsp[-1].decl); } 7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646 */ 8632 7653 break; 8633 7654 8634 7655 case 657: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2532 "parser.yy" 7656 #line 2532 "parser.yy" /* yacc.c:1646 */ 8638 7657 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646 */ 8639 7659 break; 8640 7660 8641 7661 case 658: 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2534 "parser.yy" 8645 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 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 */ 8646 7665 break; 8647 7666 8648 7667 case 660: 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2540 "parser.yy" 8652 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 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 */ 8653 7671 break; 8654 7672 8655 7673 case 661: 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2542 "parser.yy" 7674 #line 2542 "parser.yy" /* yacc.c:1646 */ 8659 7675 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646 */ 8660 7677 break; 8661 7678 8662 7679 case 662: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2544 "parser.yy" 8666 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 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 */ 8667 7683 break; 8668 7684 8669 7685 case 663: 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2546 "parser.yy" 8673 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 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 */ 8674 7689 break; 8675 7690 8676 7691 case 665: 8677 8678 /* Line 1806 of yacc.c */ 8679 #line 2561 "parser.yy" 8680 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8681 7695 break; 8682 7696 8683 7697 case 666: 8684 8685 /* Line 1806 of yacc.c */ 8686 #line 2563 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8688 7701 break; 8689 7702 8690 7703 case 667: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2568 "parser.yy" 7704 #line 2568 "parser.yy" /* yacc.c:1646 */ 8694 7705 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646 */ 8695 7707 break; 8696 7708 8697 7709 case 668: 8698 8699 /* Line 1806 of yacc.c */ 8700 #line 2570 "parser.yy" 8701 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 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 */ 8702 7713 break; 8703 7714 8704 7715 case 669: 8705 8706 /* Line 1806 of yacc.c */ 8707 #line 2572 "parser.yy" 8708 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8709 7719 break; 8710 7720 8711 7721 case 670: 8712 8713 /* Line 1806 of yacc.c */ 8714 #line 2574 "parser.yy" 8715 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8716 7725 break; 8717 7726 8718 7727 case 671: 8719 8720 /* Line 1806 of yacc.c */ 8721 #line 2576 "parser.yy" 8722 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7728 #line 2576 "parser.yy" /* yacc.c:1646 */ 7729 { (yyval.decl) = (yyvsp[-1].decl); } 7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646 */ 8723 7731 break; 8724 7732 8725 7733 case 673: 8726 8727 /* Line 1806 of yacc.c */ 8728 #line 2582 "parser.yy" 8729 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8730 7737 break; 8731 7738 8732 7739 case 674: 8733 8734 /* Line 1806 of yacc.c */ 8735 #line 2584 "parser.yy" 8736 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8737 7743 break; 8738 7744 8739 7745 case 675: 8740 8741 /* Line 1806 of yacc.c */ 8742 #line 2586 "parser.yy" 8743 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7746 #line 2586 "parser.yy" /* yacc.c:1646 */ 7747 { (yyval.decl) = (yyvsp[-1].decl); } 7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646 */ 8744 7749 break; 8745 7750 8746 7751 case 676: 8747 8748 /* Line 1806 of yacc.c */ 8749 #line 2591 "parser.yy" 8750 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 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 */ 8751 7755 break; 8752 7756 8753 7757 case 677: 8754 8755 /* Line 1806 of yacc.c */ 8756 #line 2593 "parser.yy" 8757 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8758 7761 break; 8759 7762 8760 7763 case 678: 8761 8762 /* Line 1806 of yacc.c */ 8763 #line 2595 "parser.yy" 8764 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7764 #line 2595 "parser.yy" /* yacc.c:1646 */ 7765 { (yyval.decl) = (yyvsp[-1].decl); } 7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646 */ 8765 7767 break; 8766 7768 8767 7769 case 680: 8768 8769 /* Line 1806 of yacc.c */ 8770 #line 2602 "parser.yy" 8771 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 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 */ 8772 7773 break; 8773 7774 8774 7775 case 682: 8775 8776 /* Line 1806 of yacc.c */ 8777 #line 2613 "parser.yy" 7776 #line 2613 "parser.yy" /* yacc.c:1646 */ 8778 7777 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646 */ 8779 7779 break; 8780 7780 8781 7781 case 683: 8782 8783 /* Line 1806 of yacc.c */ 8784 #line 2616 "parser.yy" 8785 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 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 */ 8786 7785 break; 8787 7786 8788 7787 case 684: 8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2618 "parser.yy" 8792 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 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 */ 8793 7791 break; 8794 7792 8795 7793 case 685: 8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2621 "parser.yy" 8799 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 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 */ 8800 7797 break; 8801 7798 8802 7799 case 686: 8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2623 "parser.yy" 8806 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 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 */ 8807 7803 break; 8808 7804 8809 7805 case 687: 8810 8811 /* Line 1806 of yacc.c */ 8812 #line 2625 "parser.yy" 8813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 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 */ 8814 7809 break; 8815 7810 8816 7811 case 689: 8817 8818 /* Line 1806 of yacc.c */ 8819 #line 2639 "parser.yy" 8820 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8821 7815 break; 8822 7816 8823 7817 case 690: 8824 8825 /* Line 1806 of yacc.c */ 8826 #line 2641 "parser.yy" 8827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 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 */ 8828 7821 break; 8829 7822 8830 7823 case 691: 8831 8832 /* Line 1806 of yacc.c */ 8833 #line 2646 "parser.yy" 7824 #line 2646 "parser.yy" /* yacc.c:1646 */ 8834 7825 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646 */ 8835 7827 break; 8836 7828 8837 7829 case 692: 8838 8839 /* Line 1806 of yacc.c */ 8840 #line 2648 "parser.yy" 8841 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 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 */ 8842 7833 break; 8843 7834 8844 7835 case 693: 8845 8846 /* Line 1806 of yacc.c */ 8847 #line 2650 "parser.yy" 8848 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8849 7839 break; 8850 7840 8851 7841 case 694: 8852 8853 /* Line 1806 of yacc.c */ 8854 #line 2652 "parser.yy" 8855 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 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 */ 8856 7845 break; 8857 7846 8858 7847 case 695: 8859 8860 /* Line 1806 of yacc.c */ 8861 #line 2654 "parser.yy" 8862 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7848 #line 2654 "parser.yy" /* yacc.c:1646 */ 7849 { (yyval.decl) = (yyvsp[-1].decl); } 7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646 */ 8863 7851 break; 8864 7852 8865 7853 case 697: 8866 8867 /* Line 1806 of yacc.c */ 8868 #line 2660 "parser.yy" 8869 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8870 7857 break; 8871 7858 8872 7859 case 698: 8873 8874 /* Line 1806 of yacc.c */ 8875 #line 2662 "parser.yy" 8876 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 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 */ 8877 7863 break; 8878 7864 8879 7865 case 699: 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2664 "parser.yy" 8883 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7866 #line 2664 "parser.yy" /* yacc.c:1646 */ 7867 { (yyval.decl) = (yyvsp[-1].decl); } 7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646 */ 8884 7869 break; 8885 7870 8886 7871 case 700: 8887 8888 /* Line 1806 of yacc.c */ 8889 #line 2669 "parser.yy" 8890 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 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 */ 8891 7875 break; 8892 7876 8893 7877 case 701: 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2671 "parser.yy" 8897 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7878 #line 2671 "parser.yy" /* yacc.c:1646 */ 7879 { (yyval.decl) = (yyvsp[-1].decl); } 7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646 */ 8898 7881 break; 8899 7882 8900 7883 case 704: 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2681 "parser.yy" 8904 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 8905 7887 break; 8906 7888 8907 7889 case 707: 8908 8909 /* Line 1806 of yacc.c */ 8910 #line 2691 "parser.yy" 8911 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8912 7893 break; 8913 7894 8914 7895 case 708: 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2693 "parser.yy" 8918 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 8919 7899 break; 8920 7900 8921 7901 case 709: 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2695 "parser.yy" 8925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8926 7905 break; 8927 7906 8928 7907 case 710: 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2697 "parser.yy" 8932 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 8933 7911 break; 8934 7912 8935 7913 case 711: 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2699 "parser.yy" 8939 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 8940 7917 break; 8941 7918 8942 7919 case 712: 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2701 "parser.yy" 8946 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 8947 7923 break; 8948 7924 8949 7925 case 713: 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2708 "parser.yy" 8953 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 8954 7929 break; 8955 7930 8956 7931 case 714: 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2710 "parser.yy" 8960 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 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 */ 8961 7935 break; 8962 7936 8963 7937 case 715: 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2712 "parser.yy" 8967 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 8968 7941 break; 8969 7942 8970 7943 case 716: 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2714 "parser.yy" 8974 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 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 */ 8975 7947 break; 8976 7948 8977 7949 case 717: 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2716 "parser.yy" 8981 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 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 */ 8982 7953 break; 8983 7954 8984 7955 case 718: 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2718 "parser.yy" 8988 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 8989 7959 break; 8990 7960 8991 7961 case 719: 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2720 "parser.yy" 8995 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 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 */ 8996 7965 break; 8997 7966 8998 7967 case 720: 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2722 "parser.yy" 9002 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 9003 7971 break; 9004 7972 9005 7973 case 721: 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2724 "parser.yy" 9009 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 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 */ 9010 7977 break; 9011 7978 9012 7979 case 722: 9013 9014 /* Line 1806 of yacc.c */ 9015 #line 2726 "parser.yy" 9016 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 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 */ 9017 7983 break; 9018 7984 9019 7985 case 723: 9020 9021 /* Line 1806 of yacc.c */ 9022 #line 2731 "parser.yy" 9023 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 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 */ 9024 7989 break; 9025 7990 9026 7991 case 724: 9027 9028 /* Line 1806 of yacc.c */ 9029 #line 2733 "parser.yy" 9030 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 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 */ 9031 7995 break; 9032 7996 9033 7997 case 725: 9034 9035 /* Line 1806 of yacc.c */ 9036 #line 2738 "parser.yy" 9037 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 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 */ 9038 8001 break; 9039 8002 9040 8003 case 726: 9041 9042 /* Line 1806 of yacc.c */ 9043 #line 2740 "parser.yy" 9044 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 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 */ 9045 8007 break; 9046 8008 9047 8009 case 728: 9048 9049 /* Line 1806 of yacc.c */ 9050 #line 2767 "parser.yy" 9051 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 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 */ 9052 8013 break; 9053 8014 9054 8015 case 732: 9055 9056 /* Line 1806 of yacc.c */ 9057 #line 2778 "parser.yy" 9058 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 9059 8019 break; 9060 8020 9061 8021 case 733: 9062 9063 /* Line 1806 of yacc.c */ 9064 #line 2780 "parser.yy" 9065 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 9066 8025 break; 9067 8026 9068 8027 case 734: 9069 9070 /* Line 1806 of yacc.c */ 9071 #line 2782 "parser.yy" 9072 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 9073 8031 break; 9074 8032 9075 8033 case 735: 9076 9077 /* Line 1806 of yacc.c */ 9078 #line 2784 "parser.yy" 9079 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 9080 8037 break; 9081 8038 9082 8039 case 736: 9083 9084 /* Line 1806 of yacc.c */ 9085 #line 2786 "parser.yy" 9086 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 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 */ 9087 8043 break; 9088 8044 9089 8045 case 737: 9090 9091 /* Line 1806 of yacc.c */ 9092 #line 2788 "parser.yy" 9093 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 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 */ 9094 8049 break; 9095 8050 9096 8051 case 738: 9097 9098 /* Line 1806 of yacc.c */ 9099 #line 2795 "parser.yy" 9100 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 9101 8055 break; 9102 8056 9103 8057 case 739: 9104 9105 /* Line 1806 of yacc.c */ 9106 #line 2797 "parser.yy" 9107 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 9108 8061 break; 9109 8062 9110 8063 case 740: 9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2799 "parser.yy" 9114 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 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 */ 9115 8067 break; 9116 8068 9117 8069 case 741: 9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2801 "parser.yy" 9121 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 9122 8073 break; 9123 8074 9124 8075 case 742: 9125 9126 /* Line 1806 of yacc.c */ 9127 #line 2803 "parser.yy" 9128 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 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 */ 9129 8079 break; 9130 8080 9131 8081 case 743: 9132 9133 /* Line 1806 of yacc.c */ 9134 #line 2805 "parser.yy" 9135 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 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 */ 9136 8085 break; 9137 8086 9138 8087 case 744: 9139 9140 /* Line 1806 of yacc.c */ 9141 #line 2810 "parser.yy" 9142 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 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 */ 9143 8091 break; 9144 8092 9145 8093 case 745: 9146 9147 /* Line 1806 of yacc.c */ 9148 #line 2815 "parser.yy" 9149 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 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 */ 9150 8097 break; 9151 8098 9152 8099 case 746: 9153 9154 /* Line 1806 of yacc.c */ 9155 #line 2817 "parser.yy" 9156 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 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 */ 9157 8103 break; 9158 8104 9159 8105 case 747: 9160 9161 /* Line 1806 of yacc.c */ 9162 #line 2819 "parser.yy" 9163 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 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 */ 9164 8109 break; 9165 8110 9166 8111 case 750: 9167 9168 /* Line 1806 of yacc.c */ 9169 #line 2843 "parser.yy" 8112 #line 2843 "parser.yy" /* yacc.c:1646 */ 9170 8113 { (yyval.en) = 0; } 8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646 */ 9171 8115 break; 9172 8116 9173 8117 case 751: 9174 9175 /* Line 1806 of yacc.c */ 9176 #line 2845 "parser.yy" 9177 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9178 break; 9179 9180 9181 9182 /* Line 1806 of yacc.c */ 9183 #line 9184 "Parser/parser.cc" 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 */ 9184 8125 default: break; 9185 8126 } … … 9203 8144 *++yyvsp = yyval; 9204 8145 9205 /* Now `shift' the result of the reduction. Determine what state8146 /* Now 'shift' the result of the reduction. Determine what state 9206 8147 that goes to, based on the state we popped back to and the rule 9207 8148 number reduced by. */ … … 9218 8159 9219 8160 9220 /*------------------------------------ .9221 | yyerrlab -- here on detecting error |9222 `------------------------------------ */8161 /*--------------------------------------. 8162 | yyerrlab -- here on detecting error. | 8163 `--------------------------------------*/ 9223 8164 yyerrlab: 9224 8165 /* Make sure we have latest lookahead translation. See comments at … … 9271 8212 { 9272 8213 /* If just tried and failed to reuse lookahead token after an 9273 8214 error, discard it. */ 9274 8215 9275 8216 if (yychar <= YYEOF) 9276 9277 9278 9279 9280 8217 { 8218 /* Return failure if at end of input. */ 8219 if (yychar == YYEOF) 8220 YYABORT; 8221 } 9281 8222 else 9282 9283 9284 9285 9286 8223 { 8224 yydestruct ("Error: discarding", 8225 yytoken, &yylval); 8226 yychar = YYEMPTY; 8227 } 9287 8228 } 9288 8229 … … 9303 8244 goto yyerrorlab; 9304 8245 9305 /* Do not reclaim the symbols of the rule wh ichaction triggered8246 /* Do not reclaim the symbols of the rule whose action triggered 9306 8247 this YYERROR. */ 9307 8248 YYPOPSTACK (yylen); … … 9316 8257 `-------------------------------------------------------------*/ 9317 8258 yyerrlab1: 9318 yyerrstatus = 3; 8259 yyerrstatus = 3; /* Each real token shifted decrements this. */ 9319 8260 9320 8261 for (;;) … … 9322 8263 yyn = yypact[yystate]; 9323 8264 if (!yypact_value_is_default (yyn)) 9324 9325 9326 9327 9328 9329 9330 9331 9332 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 } 9333 8274 9334 8275 /* Pop the current state because it cannot handle the error token. */ 9335 8276 if (yyssp == yyss) 9336 8277 YYABORT; 9337 8278 9338 8279 9339 8280 yydestruct ("Error: popping", 9340 8281 yystos[yystate], yyvsp); 9341 8282 YYPOPSTACK (1); 9342 8283 yystate = *yyssp; … … 9344 8285 } 9345 8286 8287 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 9346 8288 *++yyvsp = yylval; 8289 YY_IGNORE_MAYBE_UNINITIALIZED_END 9347 8290 9348 8291 … … 9368 8311 goto yyreturn; 9369 8312 9370 #if !defined (yyoverflow)|| YYERROR_VERBOSE8313 #if !defined yyoverflow || YYERROR_VERBOSE 9371 8314 /*-------------------------------------------------. 9372 8315 | yyexhaustedlab -- memory exhaustion comes here. | … … 9387 8330 yytoken, &yylval); 9388 8331 } 9389 /* Do not reclaim the symbols of the rule wh ichaction triggered8332 /* Do not reclaim the symbols of the rule whose action triggered 9390 8333 this YYABORT or YYACCEPT. */ 9391 8334 YYPOPSTACK (yylen); … … 9394 8337 { 9395 8338 yydestruct ("Cleanup: popping", 9396 8339 yystos[*yyssp], yyvsp); 9397 8340 YYPOPSTACK (1); 9398 8341 } … … 9405 8348 YYSTACK_FREE (yymsg); 9406 8349 #endif 9407 /* Make sure YYID is used. */ 9408 return YYID (yyresult); 8350 return yyresult; 9409 8351 } 9410 9411 9412 9413 /* Line 2067 of yacc.c */ 9414 #line 2848 "parser.yy" 8352 #line 2848 "parser.yy" /* yacc.c:1906 */ 9415 8353 9416 8354 // ----end of grammar---- … … 9431 8369 // compile-command: "make install" // 9432 8370 // End: // 9433 -
src/Parser/parser.h
rcb2b15c r50c5cf3 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ 32 32 33 34 /* Tokens. */ 33 #ifndef YY_YY_PARSER_PARSER_H_INCLUDED 34 # define YY_YY_PARSER_PARSER_H_INCLUDED 35 /* Debug traces. */ 36 #ifndef YYDEBUG 37 # define YYDEBUG 1 38 #endif 39 #if YYDEBUG 40 extern int yydebug; 41 #endif 42 43 /* Token type. */ 35 44 #ifndef YYTOKENTYPE 36 45 # define YYTOKENTYPE 37 /* Put the tokens into the symbol table, so that GDB and other debuggers 38 know about them. */ 39 enum yytokentype { 40 TYPEDEF = 258, 41 AUTO = 259, 42 EXTERN = 260, 43 REGISTER = 261, 44 STATIC = 262, 45 INLINE = 263, 46 FORTRAN = 264, 47 CONST = 265, 48 VOLATILE = 266, 49 RESTRICT = 267, 50 FORALL = 268, 51 LVALUE = 269, 52 VOID = 270, 53 CHAR = 271, 54 SHORT = 272, 55 INT = 273, 56 LONG = 274, 57 FLOAT = 275, 58 DOUBLE = 276, 59 SIGNED = 277, 60 UNSIGNED = 278, 61 VALIST = 279, 62 BOOL = 280, 63 COMPLEX = 281, 64 IMAGINARY = 282, 65 TYPEOF = 283, 66 LABEL = 284, 67 ENUM = 285, 68 STRUCT = 286, 69 UNION = 287, 70 OTYPE = 288, 71 FTYPE = 289, 72 DTYPE = 290, 73 TRAIT = 291, 74 SIZEOF = 292, 75 OFFSETOF = 293, 76 ATTRIBUTE = 294, 77 EXTENSION = 295, 78 IF = 296, 79 ELSE = 297, 80 SWITCH = 298, 81 CASE = 299, 82 DEFAULT = 300, 83 DO = 301, 84 WHILE = 302, 85 FOR = 303, 86 BREAK = 304, 87 CONTINUE = 305, 88 GOTO = 306, 89 RETURN = 307, 90 CHOOSE = 308, 91 DISABLE = 309, 92 ENABLE = 310, 93 FALLTHRU = 311, 94 TRY = 312, 95 CATCH = 313, 96 CATCHRESUME = 314, 97 FINALLY = 315, 98 THROW = 316, 99 THROWRESUME = 317, 100 AT = 318, 101 ASM = 319, 102 ALIGNAS = 320, 103 ALIGNOF = 321, 104 ATOMIC = 322, 105 GENERIC = 323, 106 NORETURN = 324, 107 STATICASSERT = 325, 108 THREADLOCAL = 326, 109 IDENTIFIER = 327, 110 QUOTED_IDENTIFIER = 328, 111 TYPEDEFname = 329, 112 TYPEGENname = 330, 113 ATTR_IDENTIFIER = 331, 114 ATTR_TYPEDEFname = 332, 115 ATTR_TYPEGENname = 333, 116 INTEGERconstant = 334, 117 FLOATINGconstant = 335, 118 CHARACTERconstant = 336, 119 STRINGliteral = 337, 120 ZERO = 338, 121 ONE = 339, 122 ARROW = 340, 123 ICR = 341, 124 DECR = 342, 125 LS = 343, 126 RS = 344, 127 LE = 345, 128 GE = 346, 129 EQ = 347, 130 NE = 348, 131 ANDAND = 349, 132 OROR = 350, 133 ELLIPSIS = 351, 134 MULTassign = 352, 135 DIVassign = 353, 136 MODassign = 354, 137 PLUSassign = 355, 138 MINUSassign = 356, 139 LSassign = 357, 140 RSassign = 358, 141 ANDassign = 359, 142 ERassign = 360, 143 ORassign = 361, 144 ATassign = 362, 145 THEN = 363 146 }; 46 enum yytokentype 47 { 48 TYPEDEF = 258, 49 AUTO = 259, 50 EXTERN = 260, 51 REGISTER = 261, 52 STATIC = 262, 53 INLINE = 263, 54 FORTRAN = 264, 55 CONST = 265, 56 VOLATILE = 266, 57 RESTRICT = 267, 58 FORALL = 268, 59 LVALUE = 269, 60 VOID = 270, 61 CHAR = 271, 62 SHORT = 272, 63 INT = 273, 64 LONG = 274, 65 FLOAT = 275, 66 DOUBLE = 276, 67 SIGNED = 277, 68 UNSIGNED = 278, 69 VALIST = 279, 70 BOOL = 280, 71 COMPLEX = 281, 72 IMAGINARY = 282, 73 TYPEOF = 283, 74 LABEL = 284, 75 ENUM = 285, 76 STRUCT = 286, 77 UNION = 287, 78 OTYPE = 288, 79 FTYPE = 289, 80 DTYPE = 290, 81 TRAIT = 291, 82 SIZEOF = 292, 83 OFFSETOF = 293, 84 ATTRIBUTE = 294, 85 EXTENSION = 295, 86 IF = 296, 87 ELSE = 297, 88 SWITCH = 298, 89 CASE = 299, 90 DEFAULT = 300, 91 DO = 301, 92 WHILE = 302, 93 FOR = 303, 94 BREAK = 304, 95 CONTINUE = 305, 96 GOTO = 306, 97 RETURN = 307, 98 CHOOSE = 308, 99 DISABLE = 309, 100 ENABLE = 310, 101 FALLTHRU = 311, 102 TRY = 312, 103 CATCH = 313, 104 CATCHRESUME = 314, 105 FINALLY = 315, 106 THROW = 316, 107 THROWRESUME = 317, 108 AT = 318, 109 ASM = 319, 110 ALIGNAS = 320, 111 ALIGNOF = 321, 112 ATOMIC = 322, 113 GENERIC = 323, 114 NORETURN = 324, 115 STATICASSERT = 325, 116 THREADLOCAL = 326, 117 IDENTIFIER = 327, 118 QUOTED_IDENTIFIER = 328, 119 TYPEDEFname = 329, 120 TYPEGENname = 330, 121 ATTR_IDENTIFIER = 331, 122 ATTR_TYPEDEFname = 332, 123 ATTR_TYPEGENname = 333, 124 INTEGERconstant = 334, 125 FLOATINGconstant = 335, 126 CHARACTERconstant = 336, 127 STRINGliteral = 337, 128 ZERO = 338, 129 ONE = 339, 130 ARROW = 340, 131 ICR = 341, 132 DECR = 342, 133 LS = 343, 134 RS = 344, 135 LE = 345, 136 GE = 346, 137 EQ = 347, 138 NE = 348, 139 ANDAND = 349, 140 OROR = 350, 141 ELLIPSIS = 351, 142 MULTassign = 352, 143 DIVassign = 353, 144 MODassign = 354, 145 PLUSassign = 355, 146 MINUSassign = 356, 147 LSassign = 357, 148 RSassign = 358, 149 ANDassign = 359, 150 ERassign = 360, 151 ORassign = 361, 152 ATassign = 362, 153 THEN = 363 154 }; 147 155 #endif 148 156 /* Tokens. */ … … 254 262 #define THEN 363 255 263 256 257 258 264 /* Value type. */ 259 265 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 260 typedef union YYSTYPE 266 typedef union YYSTYPE YYSTYPE; 267 union YYSTYPE 261 268 { 262 263 /* Line 2068 of yacc.c */ 264 #line 115 "parser.yy" 269 #line 115 "parser.yy" /* yacc.c:1909 */ 265 270 266 271 Token tok; … … 279 284 bool flag; 280 285 281 282 283 /* Line 2068 of yacc.c */ 284 #line 285 "Parser/parser.h" 285 } YYSTYPE; 286 #line 287 "Parser/parser.h" /* yacc.c:1909 */ 287 }; 286 288 # define YYSTYPE_IS_TRIVIAL 1 287 # define yystype YYSTYPE /* obsolescent; will be withdrawn */288 289 # define YYSTYPE_IS_DECLARED 1 289 290 #endif 290 291 292 291 293 extern YYSTYPE yylval; 292 294 293 295 int yyparse (void); 296 297 #endif /* !YY_YY_PARSER_PARSER_H_INCLUDED */ -
src/Parser/parser.yy
rcb2b15c r50c5cf3 827 827 { $$ = new StatementNode( build_while( $3, $5 ) ); } 828 828 | DO statement WHILE '(' comma_expression ')' ';' 829 { $$ = new StatementNode( build_while( $5, $2 ) ); }829 { $$ = new StatementNode( build_while( $5, $2, true ) ); } 830 830 | FOR '(' push for_control_expression ')' statement 831 831 { $$ = new StatementNode( build_for( $4, $6 ) ); } -
src/examples/gc_no_raii/bug-repro/field.c
rcb2b15c r50c5cf3 62 62 { 63 63 struct gc_object_header* object; 64 #if _DEBUG64 #ifndef NDEBUG 65 65 intptr_t lower_limit; 66 66 intptr_t upper_limit; … … 71 71 gc_pool_object_iterator* const this, 72 72 void* start_object 73 #if _DEBUG73 #ifndef NDEBUG 74 74 , intptr_t pool_start 75 75 , intptr_t pool_end -
src/examples/gc_no_raii/src/gcpointers.c
rcb2b15c r50c5cf3 14 14 gc_object_header* obj = gc_get_object_for_ref(gc_get_state(), (void*)this); 15 15 check(obj); 16 check( gc_obj_is_valide(obj));17 check(gc_is_managed(this) == gc_is_managed(obj->type_chain) || obj->type_chain == NULL);16 check(is_valid(obj)); 17 check(gc_is_managed(this) == gc_is_managed(obj->type_chain) || !obj->type_chain); 18 18 this->next = obj->type_chain; 19 19 obj->type_chain = this; 20 check( obj->is_valide());20 check(is_valid(obj)); 21 21 } 22 22 else … … 24 24 gc_object_header* obj = gc_get_object_ptr((void*)this->ptr); 25 25 check(obj); 26 check(gc_obj_is_valide(obj)); 27 check(gc_is_managed(this) == gc_is_managed(obj->root_chain) || obj->root_chain == NULL); 26 check(is_valid(obj)); 27 check(!obj->root_chain || this->ptr == obj->root_chain->ptr); 28 check(!obj->root_chain || gc_is_managed(this) == gc_is_managed(obj->root_chain)); 28 29 this->next = obj->root_chain; 29 30 obj->root_chain = this; 30 check( gc_obj_is_valide(obj));31 check(is_valid(obj)); 31 32 } 32 33 } … … 69 70 } 70 71 71 gcpointer_t * gcpointer_assign(gcpointer_t* this, gcpointer_t*rhs)72 gcpointer_t ?=?(gcpointer_t* this, gcpointer_t rhs) 72 73 { 73 if(this != rhs)74 {75 unregister_ptr(this);74 unregister_ptr(this); 75 this->ptr = rhs.ptr; 76 register_ptr(this); 76 77 77 this->ptr = rhs->ptr; 78 79 register_ptr(this); 80 } 81 82 return this; 78 return *this; 83 79 } 84 80 85 81 //Logical operators 86 bool gcpointer_equal( gcpointer_t* this,gcpointer_t* rhs)82 bool gcpointer_equal(const gcpointer_t* this, const gcpointer_t* rhs) 87 83 { 88 84 return this->ptr == rhs->ptr; 89 85 } 90 86 91 bool gcpointer_not_equal( gcpointer_t* this,gcpointer_t* rhs)87 bool gcpointer_not_equal(const gcpointer_t* this, const gcpointer_t* rhs) 92 88 { 93 89 return this->ptr != rhs->ptr; 94 90 } 95 91 96 bool gcpointer_null( gcpointer_t* this)92 bool gcpointer_null(const gcpointer_t* this) 97 93 { 98 94 return this->ptr == (intptr_t)NULL; 99 95 } 96 97 #ifndef NDEBUG 98 bool is_valid(const gcpointer_t* this) { 99 if(gcpointer_null(this)) return true; 100 101 gc_object_header* obj = gc_get_object_ptr((void*)this->ptr); 102 check(obj); 103 check(is_valid(obj)); 104 check(!obj->root_chain || this->ptr == obj->root_chain->ptr); 105 106 if( !gc_is_managed(this)) 107 { 108 check( !(this->next) || this->ptr == this->next->ptr ); 109 } 110 111 return true; 112 } 113 #endif 100 114 101 115 forall(otype T) void ?{}(gcpointer(T)* this) { … … 107 121 } 108 122 109 forall(otype T) void ?{}(gcpointer(T)* this, gcpointer(T) *other) {110 (&this->internal) { other ->internal };123 forall(otype T) void ?{}(gcpointer(T)* this, gcpointer(T) other) { 124 (&this->internal) { other.internal }; 111 125 } 112 126 … … 115 129 } 116 130 117 // forall(otype T) gcpointer(T) ?=?(gcpointer(T) this, gcpointer(T) rhs); 131 forall(otype T) gcpointer(T) ?=?(gcpointer(T)* this, gcpointer(T) rhs) { 132 this->internal = rhs.internal; 133 return *this; 134 } 118 135 // 119 136 // forall(otype T) T *?(gcpointer(T) this); … … 124 141 // 125 142 // //Logical operators 143 forall(otype T) int ?!=?(gcpointer(T) this, int zero) { 144 return this.internal.ptr != 0; 145 } 126 146 // forall(otype T) int ?!=?(gcpointer(T) this, gcpointer(T) rhs); 127 147 // forall(otype T) int ?==?(gcpointer(T) this, gcpointer(T) rhs); -
src/examples/gc_no_raii/src/gcpointers.h
rcb2b15c r50c5cf3 3 3 #include <stdbool.h> 4 4 #include <stdint.h> 5 6 forall(dtype T) 7 struct gcpointer; 5 8 6 9 struct gcpointer_t … … 14 17 void ?{}(gcpointer_t* this, gcpointer_t other); 15 18 void ^?{}(gcpointer_t* this); 16 gcpointer_t * ?=?(gcpointer_tthis, gcpointer_t rhs);19 gcpointer_t ?=?(gcpointer_t* this, gcpointer_t rhs); 17 20 18 21 //Logical operators 19 22 bool gcpointer_equal(gcpointer_t* this, gcpointer_t* rhs); 20 23 bool gcpointer_not_equal(gcpointer_t* this, gcpointer_t* rhs); 21 bool gcpointer_null( gcpointer_t* this);24 bool gcpointer_null(const gcpointer_t* this); 22 25 23 forall(otype T) 26 27 #ifndef NDEBUG 28 bool is_valid(const gcpointer_t* this); 29 #endif 30 31 forall(dtype T) 24 32 struct gcpointer 25 33 { … … 30 38 forall(otype T) void ?{}(gcpointer(T)* this); 31 39 forall(otype T) void ?{}(gcpointer(T)* this, void* address); 32 forall(otype T) void ?{}(gcpointer(T)* this, gcpointer(T) *other);40 forall(otype T) void ?{}(gcpointer(T)* this, gcpointer(T) other); 33 41 forall(otype T) void ^?{}(gcpointer(T)* this); 34 forall(otype T) gcpointer(T) ?=?(gcpointer(T) this, gcpointer(T) rhs);42 forall(otype T) gcpointer(T) ?=?(gcpointer(T)* this, gcpointer(T) rhs); 35 43 36 44 37 forall(otype T) T *?(gcpointer(T) this);45 // forall(otype T) T *?(gcpointer(T) this); 38 46 forall(otype T) T* get(gcpointer(T)* this); 39 47 40 48 //Logical operators 49 forall(otype T) int ?!=?(gcpointer(T) this, int zero); 41 50 forall(otype T) int ?!=?(gcpointer(T) this, gcpointer(T) rhs); 42 51 forall(otype T) int ?==?(gcpointer(T) this, gcpointer(T) rhs); -
src/examples/gc_no_raii/src/internal/card_table.h
rcb2b15c r50c5cf3 1 1 #pragma once 2 3 #include <stdlib>4 2 5 3 #include "globals.h" … … 9 7 { 10 8 size_t card = ( ((intptr_t)address) & CARDS_OFFSET_MASK ) >> CARDS_SIZE_EXP; 9 checkf(card < CARDS_COUNT, (const char*)"%lu %lu = (%lx & %lx) >> %lu\n", (size_t)CARDS_COUNT, (size_t)card, (size_t)address, (size_t)CARDS_OFFSET_MASK, (size_t)CARDS_SIZE_EXP); 11 10 check(card < CARDS_COUNT); 12 11 return card; … … 19 18 }; 20 19 21 static inline void ctor (card_table_t* const this)20 static inline void ctor_card(card_table_t* const this) 22 21 { 23 22 this->count = 0; 24 23 } 25 24 26 static inline void dtor (card_table_t* const this)25 static inline void dtor_card(card_table_t* const this) 27 26 { 28 27 … … 48 47 else 49 48 { 50 check(card == count);49 check(card == this->count); 51 50 this->count++; 52 51 this->cards_start[card] = object; -
src/examples/gc_no_raii/src/internal/collector.c
rcb2b15c r50c5cf3 25 25 gc_object_header* obj = gc_get_object_ptr((void*)target->ptr); 26 26 27 check( gc_is_valide(obj));27 check(is_valid(obj)); 28 28 29 29 gcpointer_t** prev_next_ptr = managed ? &obj->type_chain : &obj->root_chain; … … 38 38 void* gc_allocate(size_t target_size) 39 39 { 40 sout | "Allocating " | target_size | " bytes" | endl;40 // sout | "Allocating " | target_size | " bytes" | endl; 41 41 42 42 size_t size = gc_compute_size(target_size + sizeof(gc_object_header)); 43 43 44 sout | "Object header size: " | sizeof(gc_object_header) | " bytes" | endl;45 sout | "Actual allocation size: " | size | " bytes" | endl;44 // sout | "Object header size: " | sizeof(gc_object_header) | " bytes" | endl; 45 // sout | "Actual allocation size: " | size | " bytes" | endl; 46 46 47 47 check(size < POOL_SIZE_BYTES); … … 60 60 if((intptr_t)(block = gc_try_allocate(gc, size))) return gc_finish_alloc_block(block, size, target_size); 61 61 62 checkf( false, "ERROR: allocation in new pool failed");62 checkf( (int) 0, "ERROR: allocation in new pool failed"); 63 63 64 64 return NULL; … … 67 67 void* gc_finish_alloc_block(void* block, size_t actual_size, size_t target_size) 68 68 { 69 void* data = (void*)(((intptr_t)block) + sizeof(gc_object_header));69 intptr_t data = ((intptr_t)block) + sizeof(gc_object_header); 70 70 void* header = block; 71 71 72 check( ((intptr_t)data)> ((intptr_t)block));73 check( ((intptr_t)data)>= ((intptr_t)header));74 check( is_aligned(data));75 check( ((intptr_t)data) + target_size <= ((intptr_t)block) + actual_size);72 check( data > ((intptr_t)block)); 73 check( data >= ((intptr_t)header)); 74 check( gc_is_aligned( (void*)data ) ); 75 check( data + target_size <= ((intptr_t)block) + actual_size ); 76 76 77 77 gc_object_header* obj = placement_ctor(header, actual_size); 78 78 79 79 (void)obj; //remove unsused warning since this is for debug 80 check(obj == g et_object_ptr(data));80 check(obj == gc_get_object_ptr( (void*)data )); 81 81 82 82 gc_register_allocation(gc_get_state(), actual_size); 83 83 84 return data;84 return (void*)data; 85 85 } 86 86 … … 119 119 check(!ptr->forward); 120 120 check(!ptr->is_forwarded); 121 check(gc_ is_from_space(gc_pool_of(ptr)));121 check(gc_pool_is_from_space(gc_pool_of(ptr))); 122 122 123 123 gc_memory_pool* pool = gc_pool_of(ptr)->mirror; … … 143 143 check(((intptr_t)field) < ((intptr_t)((intptr_t)object) + object->size)); 144 144 145 check(gc_is_in_to_space(gc_get_state(), & type->ptr));145 check(gc_is_in_to_space(gc_get_state(), &field->ptr)); 146 146 147 147 intptr_t* ref = &field->ptr; -
src/examples/gc_no_raii/src/internal/collector.h
rcb2b15c r50c5cf3 1 1 #pragma once 2 2 3 #include <stdlib >3 #include <stdlib.h> 4 4 5 5 #include "tools.h" -
src/examples/gc_no_raii/src/internal/memory_pool.c
rcb2b15c r50c5cf3 1 1 #include "memory_pool.h" 2 2 3 #include <stdlib> 3 extern "C" { 4 #include <stdlib.h> 5 #include <string.h> 6 } 4 7 8 #include "collector.h" 5 9 #include "object_header.h" 6 10 … … 15 19 card_table_t* new = (card_table_t*)malloc(sizeof(card_table_t)); 16 20 this->cards = new; 17 ctor (this->cards);21 ctor_card(this->cards); 18 22 19 23 this->end_p = ((uint8_t*)this) + size; 20 24 this->free_p = this->start_p; 21 25 22 check( gc_pool_of(this) == this);26 check( gc_pool_of( (void*)this ) == this); 23 27 check(this->cards); 24 28 gc_reset_pool(this); … … 27 31 void dtor(gc_memory_pool *const this) 28 32 { 29 dtor (this->cards);33 dtor_card(this->cards); 30 34 free(this->cards); 31 35 } … … 34 38 { 35 39 this->free_p = this->start_p; 36 #if _DEBUG37 memset(this->start_p, 0xCD, gc_pool_ total_size(this));40 #ifndef NDEBUG 41 memset(this->start_p, 0xCD, gc_pool_size_total(this)); 38 42 #endif 39 43 … … 41 45 reset(this->cards); 42 46 43 check(gc_pool_size_left(this) == gc_pool_ total_size(this));47 check(gc_pool_size_left(this) == gc_pool_size_total(this)); 44 48 } 45 49 … … 58 62 } 59 63 60 void ctor( 61 gc_pool_object_iterator* const this, 64 void ?{}( gc_pool_object_iterator* this, 62 65 struct gc_object_header* start_object 63 #if _DEBUG66 #ifndef NDEBUG 64 67 , intptr_t pool_start 65 68 , intptr_t pool_end … … 68 71 { 69 72 this->object = start_object; 70 #if _DEBUG73 #ifndef NDEBUG 71 74 this->lower_limit = pool_start; 72 75 this->upper_limit = pool_end; 73 76 #endif 74 77 75 check( ((intptr_t)start_object) >= lower_limit );76 check( ((intptr_t)start_object) <= upper_limit );78 check( ((intptr_t)start_object) >= this->lower_limit ); 79 check( ((intptr_t)start_object) <= this->upper_limit ); 77 80 } 81 82 void ^?{}( gc_pool_object_iterator* this ) {} 78 83 79 84 gc_pool_object_iterator gc_pool_iterator_for(gc_memory_pool* const this, void* member) … … 81 86 size_t card = card_of(member); 82 87 intptr_t member_add = (intptr_t)member; 83 void* start_obj; 84 intptr_t start_obj_add; 88 intptr_t start_obj; 85 89 86 90 do 87 91 { 88 92 check(card < CARDS_COUNT); 89 start_obj = object_at(this->cards, card);93 start_obj = (intptr_t)object_at(this->cards, card); 90 94 check(card != 0 || start_obj); 91 95 card--; 92 start_obj_add = (intptr_t)start_obj;93 96 } 94 while(start_obj _add > member_add || start_obj_add != 0);97 while(start_obj > member_add || !(start_obj)); 95 98 96 check( start_obj);97 99 check( start_obj ); 100 98 101 struct gc_object_header* start_obj_typed = (struct gc_object_header*)start_obj; 99 102 100 gc_pool_object_iterator it; 101 ctor( &it, 102 start_obj_typed, 103 #if _DEBUG 103 return (gc_pool_object_iterator) { 104 start_obj_typed 105 #ifndef NDEBUG 104 106 , (intptr_t)this->start_p 105 107 , (intptr_t)this->free_p 106 108 #endif 107 ); 108 return it; 109 }; 109 110 } 110 111 … … 117 118 { 118 119 struct gc_object_header* start_obj = (struct gc_object_header*)this->start_p; 119 gc_pool_object_iterator it; 120 ctor( &it, 121 start_obj, 122 #if _DEBUG 120 return (gc_pool_object_iterator) { 121 start_obj 122 #ifndef NDEBUG 123 123 , (intptr_t)this->start_p 124 124 , (intptr_t)this->free_p 125 125 #endif 126 ); 127 return it; 126 }; 128 127 } 129 128 130 129 gc_pool_object_iterator end(gc_memory_pool* const this) 131 130 { 132 gc_pool_object_iterator it; 133 ctor( &it, 134 (struct gc_object_header*)this->free_p, 135 #if _DEBUG 131 return (gc_pool_object_iterator) { 132 (struct gc_object_header*)this->free_p 133 #ifndef NDEBUG 136 134 , (intptr_t)this->start_p 137 135 , (intptr_t)this->free_p 138 136 #endif 139 ); 140 return it; 137 }; 141 138 } 142 139 … … 145 142 struct gc_object_header* object = it->object; 146 143 intptr_t next_ptr = ((intptr_t)object) + object->size; 147 check(next_ptr > lower_limit);148 check(next_ptr <= upper_limit);144 check(next_ptr > it->lower_limit); 145 check(next_ptr <= it->upper_limit); 149 146 150 147 struct gc_object_header* next_obj = ((struct gc_object_header*)next_ptr); 151 check(next_ptr == upper_limit || is_valide(next_obj));148 check(next_ptr == it->upper_limit || is_valid(next_obj)); 152 149 153 150 it->object = next_obj; -
src/examples/gc_no_raii/src/internal/memory_pool.h
rcb2b15c r50c5cf3 39 39 { 40 40 struct gc_object_header* object; 41 #if _DEBUG41 #ifndef NDEBUG 42 42 intptr_t lower_limit; 43 43 intptr_t upper_limit; … … 46 46 47 47 48 void ctor( 49 gc_pool_object_iterator* const this, 48 void ?{}( gc_pool_object_iterator* this, 50 49 struct gc_object_header* start_object 51 #if _DEBUG50 #ifndef NDEBUG 52 51 , intptr_t pool_start 53 52 , intptr_t pool_end 54 53 #endif 55 54 ); 55 56 void ^?{}( gc_pool_object_iterator* this ); 56 57 57 58 bool ?!=?(const gc_pool_object_iterator lhs, const gc_pool_object_iterator rhs); -
src/examples/gc_no_raii/src/internal/object_header.c
rcb2b15c r50c5cf3 3 3 #include <stdint.h> 4 4 5 #include "collector.h" 5 6 #include "globals.h" 6 7 #include "gcpointers.h" … … 8 9 void ctor(gc_object_header* const this, size_t inSize) 9 10 { 10 #if _DEBUG11 #ifndef NDEBUG 11 12 this->canary_start = CANARY_VALUE; 12 13 #endif … … 18 19 this->is_forwarded = false; 19 20 20 #if _DEBUG21 #ifndef NDEBUG 21 22 this->canary_end = CANARY_VALUE; 22 23 #endif … … 25 26 void copy_ctor(gc_object_header* const this, const gc_object_header* const other) 26 27 { 27 #if _DEBUG28 #ifndef NDEBUG 28 29 this->canary_start = CANARY_VALUE; 29 30 #endif … … 35 36 this->is_forwarded = false; 36 37 37 #if _DEBUG38 #ifndef NDEBUG 38 39 this->canary_end = CANARY_VALUE; 39 40 #endif … … 42 43 while(root) 43 44 { 44 check(g et_object_ptr(root->ptr) == other);45 check(gc_get_object_ptr( (void*)root->ptr ) == other); 45 46 root->ptr = ((intptr_t)this) + sizeof(gc_object_header); 46 47 47 check(g et_object_ptr(root->ptr) == this);48 check(gc_get_object_ptr( (void*)root->ptr ) == this); 48 49 root = root->next; 49 50 } … … 56 57 57 58 size_t offset = (intptr_t)type - (intptr_t)other; 58 check(offset < size);59 check(offset < this->size); 59 60 60 61 gcpointer_t* member_ptr = (gcpointer_t*)( (intptr_t)this + offset ); … … 63 64 64 65 size_t next_offset = type->next ? (intptr_t)type->next - (intptr_t)other : 0; 65 check(next_offset < size);66 check(next_offset < this->size); 66 67 67 68 gcpointer_t* next_ptr = type->next ? (gcpointer_t*)((intptr_t)this + next_offset) : NULL; … … 73 74 } 74 75 75 check(is_valid e(this));76 check(is_valid(this)); 76 77 } 77 78 78 #if _DEBUG79 bool is_valid e(const gc_object_header* const this)79 #ifndef NDEBUG 80 bool is_valid(const gc_object_header* const this) 80 81 { 81 check( this->canary_start ==CANARY_VALUE);82 check( this->canary_end ==CANARY_VALUE);82 check((intptr_t)this->canary_start == (intptr_t)CANARY_VALUE); 83 check((intptr_t)this->canary_end == (intptr_t)CANARY_VALUE); 83 84 84 check(this->is_forwarded == ( this->forward != nullptr));85 check(this->is_forwarded == ( (intptr_t)this->forward != (intptr_t)NULL)); 85 86 86 87 check(this->size < POOL_SIZE_BYTES); … … 89 90 while(root) 90 91 { 91 check (get_object_ptr(root->ptr) ==this);92 checkf(gc_get_object_ptr( (void*)root->ptr ) == this, (const char*)"Expected %lX got %lX\n", gc_get_object_ptr( (void*)root->ptr ), this); 92 93 93 94 root = root->next; 94 95 } 95 96 96 gcpointer_t* type = t ype_chain;97 gcpointer_t* type = this->type_chain; 97 98 while(type) 98 99 { 99 100 check((intptr_t)type > (intptr_t)this); 100 check((intptr_t)type < (intptr_t)(( intptr_t)this +size));101 check((intptr_t)type < (intptr_t)(((intptr_t)this) + this->size)); 101 102 102 103 type = type->next; … … 105 106 return true; 106 107 } 108 #else 109 #error blarg 107 110 #endif -
src/examples/gc_no_raii/src/internal/object_header.h
rcb2b15c r50c5cf3 7 7 #include "tools.h" 8 8 9 #if 10 static const long unsigned int CANARY_VALUE =0xCAFEBABACAFEBABA;9 #ifndef NDEBUG 10 static void* const CANARY_VALUE = (void*)0xCAFEBABACAFEBABA; 11 11 #endif 12 12 … … 16 16 struct gc_object_header 17 17 { 18 #if 18 #ifndef NDEBUG 19 19 void* canary_start; 20 20 #endif … … 26 26 bool is_forwarded; 27 27 28 #if 28 #ifndef NDEBUG 29 29 void* canary_end; 30 30 #endif … … 47 47 return this; 48 48 } 49 50 #ifndef NDEBUG 51 bool is_valid(const gc_object_header* const this); 52 #endif -
src/examples/gc_no_raii/src/internal/state.c
rcb2b15c r50c5cf3 21 21 void gc_state_calc_usage(gc_state *const this); 22 22 23 #if 23 #ifndef NDEBUG 24 24 bool gc_state_roots_match(gc_state *const this); 25 25 bool gc_state_no_from_space_ref(gc_state *const this); … … 76 76 gc_object_header* gc_get_object_for_ref(gc_state* state, void* member) 77 77 { 78 volatile int stage = 0; 78 79 intptr_t target = ((intptr_t)member); 79 80 if(!gc_is_in_heap(state, member)) return NULL; 81 stage++; 80 82 81 83 gc_memory_pool* pool = gc_pool_of(member); 84 stage++; 82 85 gc_pool_object_iterator it = gc_pool_iterator_for(pool, member); 86 stage++; 83 87 gc_pool_object_iterator end = end(pool); 88 stage++; 84 89 85 90 while(it != end) 86 91 { 87 92 gc_object_header* object = *it; 93 check(object); 94 check( is_valid(object) ); 88 95 { 89 96 intptr_t start = ((intptr_t)object); … … 94 101 } 95 102 } 103 stage++; 96 104 ++it; 97 105 } 98 106 99 checkf( false, "is_in_heap() and iterator_for() return inconsistent data");107 checkf( (int) 0, "is_in_heap() and iterator_for() return inconsistent data"); 100 108 abort(); 101 109 return NULL; … … 176 184 this->from_code = (~this->from_code) & 0x01; 177 185 178 #if _DEBUG186 #ifndef NDEBUG 179 187 { 180 188 gc_memory_pool* pool = this->from_space; … … 251 259 } 252 260 253 #if _DEBUG261 #ifndef NDEBUG 254 262 bool gc_state_roots_match(gc_state* const this) 255 263 { … … 265 273 size += object->size; 266 274 267 gcpointer_ base* ptr = object->root_chain;275 gcpointer_t* ptr = object->root_chain; 268 276 while(ptr) 269 277 { 270 check(g et_object_ptr(ptr->m_ptr) == object);271 ptr = ptr-> m_next;278 check(gc_get_object_ptr( (void*)ptr->ptr ) == object); 279 ptr = ptr->next; 272 280 } 273 281 } 274 282 275 check(size + gc_pool_size_used(pool) == gc_pool_size_total(pool)); 283 checkf(size + gc_pool_size_left(pool) == gc_pool_size_total(pool), 284 (const char*)"expected %lu + %lu == %lu\n", 285 (size_t)size, 286 (size_t)gc_pool_size_left(pool), 287 (size_t)gc_pool_size_total(pool)); 276 288 277 289 pool = pool->next; … … 286 298 while(pool) 287 299 { 288 void** potential_ref = (void**)pool-> m_start;289 while(potential_ref < (void**)pool-> m_free)300 void** potential_ref = (void**)pool->start_p; 301 while(potential_ref < (void**)pool->free_p) 290 302 { 291 303 check(!gc_is_in_heap(this, *potential_ref)); -
src/examples/gc_no_raii/src/internal/state.h
rcb2b15c r50c5cf3 38 38 static inline bool gc_needs_collect(gc_state* state) 39 39 { 40 sout | "Used Space: " | state->used_space | " bytes" | endl;40 // sout | "Used Space: " | state->used_space | " bytes" | endl; 41 41 return state->used_space * 2 > state->total_space; 42 42 } -
src/examples/gc_no_raii/src/tools/checks.h
rcb2b15c r50c5cf3 1 1 #pragma once 2 2 3 #if _DEBUG 3 #ifdef NDEBUG 4 5 #define check(x) 6 7 #define checkf(x, format, ...) 8 9 #warning no debug checks 10 11 #else 4 12 5 13 #include <stdlib.h> … … 10 18 printf("CHECK failed : %s at %s:%i\n", #x, __FILE__, __LINE__);\ 11 19 abort();\ 12 }}while( 0)\20 }}while( (int)0 )\ 13 21 14 22 #define checkf(x, ...) do {\ … … 17 25 printf(__VA_ARGS__);\ 18 26 abort();\ 19 }}while(0)\ 20 21 #else 22 23 #define check(x) 24 25 #define checkf(x, format, ...) 27 }}while( (int)0 )\ 26 28 27 29 #endif //NO_CHECKS -
src/examples/gc_no_raii/src/tools/print.c
rcb2b15c r50c5cf3 1 1 #include "tools.h" 2 2 3 #if _DEBUG4 ofstream *sout = ofstream_stdout();3 #ifndef NDEBUG 4 // ofstream *sout = ofstream_stdout(); 5 5 #endif -
src/examples/gc_no_raii/src/tools/print.h
rcb2b15c r50c5cf3 1 1 #pragma once 2 2 3 #if _DEBUG4 5 #include <fstream>6 7 #define DEBUG_OUT(x) sout | x | endl;8 9 #else3 // #ifndef NDEBUG 4 // 5 // #include <fstream> 6 // 7 // #define DEBUG_OUT(x) sout | x | endl; 8 // 9 // #else 10 10 11 11 #define DEBUG_OUT(x) 12 12 13 #endif //NO_CHECKS13 // #endif //NO_CHECKS -
src/examples/gc_no_raii/test/badlll.c
rcb2b15c r50c5cf3 1 1 #include "gc.h" 2 3 #include <stdio.h> 2 4 3 5 struct List_t … … 7 9 }; 8 10 9 void ?{}(List_t* this);10 List_t* ?=?(List_t* this, List_t* rhs);11 12 11 typedef gcpointer(List_t) LLL; 13 12 14 #define MAX (1024 * 1 024)13 #define MAX (1024 * 1) 15 14 16 // LLL buildLLL(int sz) 17 void bla() 15 LLL buildLLL(int sz) 18 16 { 19 int i; 20 // LLL ll0;//, lll, llc; 21 // 22 // ll0 = gcmalloc(); 23 // ll0->val = 0; 24 // lll = ll0; 25 // 26 // for (i = 1; i < sz; i++) 27 // { 28 // llc = gcmalloc(); 29 // llc->val = i; 30 // lll->next = llc; 31 // lll = llc; 32 // } 33 // 34 // return ll0; 17 int i = 0; 18 LLL ll0; 19 20 gcmalloc( &ll0 ); 21 List_t* ll0_ptr = get( &ll0 ); 22 ll0_ptr->val = i; 23 LLL lll = ll0; 24 25 for (i = 1; i < sz; i++) 26 { 27 LLL llc; 28 gcmalloc( &llc ); 29 List_t* llc_ptr = get( &llc ); 30 llc_ptr->val = i; 31 List_t* lll_ptr = get( &lll ); 32 lll_ptr->next = llc; 33 34 lll = llc; 35 } 36 37 check(is_valid( &ll0.internal )); 38 39 return ll0; 35 40 } 36 // 37 // void testLLL(LLL lll) 38 // { 39 // unsigned char *counted; 40 // 41 // counted = (unsigned char *) calloc(MAX, sizeof(unsigned char)); 42 // while (lll) 43 // { 44 // counted[lll->val]++; 45 // if (counted[lll->val] > 1) 46 // { 47 // fprintf(stderr, "ERROR! Encountered %d twice!\n", lll->val); 48 // exit(1); 49 // } 50 // lll = lll->next; 51 // } 52 // 53 // return; 54 // } 41 42 void testLLL(LLL lll) 43 { 44 unsigned char *counted; 45 46 counted = (unsigned char *) calloc(MAX, sizeof(unsigned char)); 47 while (lll) 48 { 49 List_t* lll_ptr = get( &lll ); 50 counted[lll_ptr->val]++; 51 if (counted[lll_ptr->val] > 1) 52 { 53 fprintf(stderr, "ERROR! Encountered %d twice!\n", lll_ptr->val); 54 exit(1); 55 } 56 lll = lll_ptr->next; 57 } 58 59 return; 60 } 55 61 56 62 int main(void) … … 58 64 LLL mylll; 59 65 60 //mylll = buildLLL(MAX);61 // 62 //testLLL(mylll);66 mylll = buildLLL(MAX); 67 68 testLLL(mylll); 63 69 64 70 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.