Changeset 148f7290
- Timestamp:
- Nov 30, 2016, 10:46:41 AM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 4cb935e
- Parents:
- 8e5724e
- Location:
- src
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r8e5724e r148f7290 283 283 DeclarationNode * newnode = new DeclarationNode; 284 284 newnode->type = nullptr; 285 assert( ! newnode->name ); 285 assert( ! newnode->name ); 286 286 // newnode->variable.name = name; 287 287 newnode->name = name; … … 372 372 newnode->type = new TypeData( TypeData::Builtin ); 373 373 newnode->builtin = bt; 374 newnode->type->builtintype = newnode->builtin; 374 375 return newnode; 375 376 } // DeclarationNode::newBuiltinType -
src/Parser/ParseNode.h
r8e5724e r148f7290 204 204 enum Aggregate { Struct, Union, Trait, NoAggregate }; 205 205 enum TypeClass { Otype, Dtype, Ftype, NoTypeClass }; 206 enum BuiltinType { Valist };206 enum BuiltinType { Valist, Zero, One, NoBuiltinType }; 207 207 208 208 static const char * storageName[]; -
src/Parser/TypeData.cc
r8e5724e r148f7290 444 444 return buildTypeof( td ); 445 445 case TypeData::Builtin: 446 return new VarArgsType( buildQualifiers( td ) ); 446 if(td->builtintype == DeclarationNode::Zero) { 447 return new ZeroType( buildQualifiers( td ) ); 448 } 449 else if(td->builtintype == DeclarationNode::One) { 450 return new OneType( buildQualifiers( td ) ); 451 } 452 else { 453 return new VarArgsType( buildQualifiers( td ) ); 454 } 447 455 case TypeData::Symbolic: 448 456 case TypeData::Enum: -
src/Parser/TypeData.h
r8e5724e r148f7290 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeData.h -- 7 // TypeData.h -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 74 74 DeclarationNode::Signedness signedness = DeclarationNode::NoSignedness; 75 75 DeclarationNode::Length length = DeclarationNode::NoLength; 76 DeclarationNode::BuiltinType builtintype = DeclarationNode::NoBuiltinType; 76 77 typedef std::bitset< DeclarationNode::NoQualifier > Qualifiers; 77 78 Qualifiers qualifiers; -
src/Parser/parser.cc
r8e5724e r148f7290 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 … … 95 91 } // appendStr 96 92 97 98 /* Line 268 of yacc.c */ 99 #line 100 "Parser/parser.cc" 100 101 /* Enabling traces. */ 102 #ifndef YYDEBUG 103 # define YYDEBUG 1 104 #endif 93 #line 94 "Parser/parser.cc" /* yacc.c:339 */ 94 95 # ifndef YY_NULLPTR 96 # if defined __cplusplus && 201103L <= __cplusplus 97 # define YY_NULLPTR nullptr 98 # else 99 # define YY_NULLPTR 0 100 # endif 101 # endif 105 102 106 103 /* Enabling verbose error messages. */ … … 112 109 #endif 113 110 114 /* Enabling the token table. */ 115 #ifndef YYTOKEN_TABLE 116 # define YYTOKEN_TABLE 0 111 /* In a future release of Bison, this section will be replaced 112 by #include "y.tab.h". */ 113 #ifndef YY_YY_Y_TAB_H_INCLUDED 114 # define YY_YY_Y_TAB_H_INCLUDED 115 /* Debug traces. */ 116 #ifndef YYDEBUG 117 # define YYDEBUG 1 117 118 #endif 118 119 120 /* Tokens. */ 119 #if YYDEBUG 120 extern int yydebug; 121 #endif 122 123 /* Token type. */ 121 124 #ifndef YYTOKENTYPE 122 125 # define YYTOKENTYPE 123 /* Put the tokens into the symbol table, so that GDB and other debuggers 124 know about them. */ 125 enum yytokentype { 126 TYPEDEF = 258, 127 AUTO = 259, 128 EXTERN = 260, 129 REGISTER = 261, 130 STATIC = 262, 131 INLINE = 263, 132 FORTRAN = 264, 133 CONST = 265, 134 VOLATILE = 266, 135 RESTRICT = 267, 136 FORALL = 268, 137 LVALUE = 269, 138 VOID = 270, 139 CHAR = 271, 140 SHORT = 272, 141 INT = 273, 142 LONG = 274, 143 FLOAT = 275, 144 DOUBLE = 276, 145 SIGNED = 277, 146 UNSIGNED = 278, 147 ZERO_T = 279, 148 ONE_T = 280, 149 VALIST = 281, 150 BOOL = 282, 151 COMPLEX = 283, 152 IMAGINARY = 284, 153 TYPEOF = 285, 154 LABEL = 286, 155 ENUM = 287, 156 STRUCT = 288, 157 UNION = 289, 158 OTYPE = 290, 159 FTYPE = 291, 160 DTYPE = 292, 161 TRAIT = 293, 162 SIZEOF = 294, 163 OFFSETOF = 295, 164 ATTRIBUTE = 296, 165 EXTENSION = 297, 166 IF = 298, 167 ELSE = 299, 168 SWITCH = 300, 169 CASE = 301, 170 DEFAULT = 302, 171 DO = 303, 172 WHILE = 304, 173 FOR = 305, 174 BREAK = 306, 175 CONTINUE = 307, 176 GOTO = 308, 177 RETURN = 309, 178 CHOOSE = 310, 179 DISABLE = 311, 180 ENABLE = 312, 181 FALLTHRU = 313, 182 TRY = 314, 183 CATCH = 315, 184 CATCHRESUME = 316, 185 FINALLY = 317, 186 THROW = 318, 187 THROWRESUME = 319, 188 AT = 320, 189 ASM = 321, 190 ALIGNAS = 322, 191 ALIGNOF = 323, 192 ATOMIC = 324, 193 GENERIC = 325, 194 NORETURN = 326, 195 STATICASSERT = 327, 196 THREADLOCAL = 328, 197 IDENTIFIER = 329, 198 QUOTED_IDENTIFIER = 330, 199 TYPEDEFname = 331, 200 TYPEGENname = 332, 201 ATTR_IDENTIFIER = 333, 202 ATTR_TYPEDEFname = 334, 203 ATTR_TYPEGENname = 335, 204 INTEGERconstant = 336, 205 CHARACTERconstant = 337, 206 STRINGliteral = 338, 207 REALDECIMALconstant = 339, 208 REALFRACTIONconstant = 340, 209 FLOATINGconstant = 341, 210 ZERO = 342, 211 ONE = 343, 212 ARROW = 344, 213 ICR = 345, 214 DECR = 346, 215 LS = 347, 216 RS = 348, 217 LE = 349, 218 GE = 350, 219 EQ = 351, 220 NE = 352, 221 ANDAND = 353, 222 OROR = 354, 223 ELLIPSIS = 355, 224 MULTassign = 356, 225 DIVassign = 357, 226 MODassign = 358, 227 PLUSassign = 359, 228 MINUSassign = 360, 229 LSassign = 361, 230 RSassign = 362, 231 ANDassign = 363, 232 ERassign = 364, 233 ORassign = 365, 234 ATassign = 366, 235 THEN = 367 236 }; 126 enum yytokentype 127 { 128 TYPEDEF = 258, 129 AUTO = 259, 130 EXTERN = 260, 131 REGISTER = 261, 132 STATIC = 262, 133 INLINE = 263, 134 FORTRAN = 264, 135 CONST = 265, 136 VOLATILE = 266, 137 RESTRICT = 267, 138 FORALL = 268, 139 LVALUE = 269, 140 VOID = 270, 141 CHAR = 271, 142 SHORT = 272, 143 INT = 273, 144 LONG = 274, 145 FLOAT = 275, 146 DOUBLE = 276, 147 SIGNED = 277, 148 UNSIGNED = 278, 149 ZERO_T = 279, 150 ONE_T = 280, 151 VALIST = 281, 152 BOOL = 282, 153 COMPLEX = 283, 154 IMAGINARY = 284, 155 TYPEOF = 285, 156 LABEL = 286, 157 ENUM = 287, 158 STRUCT = 288, 159 UNION = 289, 160 OTYPE = 290, 161 FTYPE = 291, 162 DTYPE = 292, 163 TRAIT = 293, 164 SIZEOF = 294, 165 OFFSETOF = 295, 166 ATTRIBUTE = 296, 167 EXTENSION = 297, 168 IF = 298, 169 ELSE = 299, 170 SWITCH = 300, 171 CASE = 301, 172 DEFAULT = 302, 173 DO = 303, 174 WHILE = 304, 175 FOR = 305, 176 BREAK = 306, 177 CONTINUE = 307, 178 GOTO = 308, 179 RETURN = 309, 180 CHOOSE = 310, 181 DISABLE = 311, 182 ENABLE = 312, 183 FALLTHRU = 313, 184 TRY = 314, 185 CATCH = 315, 186 CATCHRESUME = 316, 187 FINALLY = 317, 188 THROW = 318, 189 THROWRESUME = 319, 190 AT = 320, 191 ASM = 321, 192 ALIGNAS = 322, 193 ALIGNOF = 323, 194 ATOMIC = 324, 195 GENERIC = 325, 196 NORETURN = 326, 197 STATICASSERT = 327, 198 THREADLOCAL = 328, 199 IDENTIFIER = 329, 200 QUOTED_IDENTIFIER = 330, 201 TYPEDEFname = 331, 202 TYPEGENname = 332, 203 ATTR_IDENTIFIER = 333, 204 ATTR_TYPEDEFname = 334, 205 ATTR_TYPEGENname = 335, 206 INTEGERconstant = 336, 207 CHARACTERconstant = 337, 208 STRINGliteral = 338, 209 REALDECIMALconstant = 339, 210 REALFRACTIONconstant = 340, 211 FLOATINGconstant = 341, 212 ZERO = 342, 213 ONE = 343, 214 ARROW = 344, 215 ICR = 345, 216 DECR = 346, 217 LS = 347, 218 RS = 348, 219 LE = 349, 220 GE = 350, 221 EQ = 351, 222 NE = 352, 223 ANDAND = 353, 224 OROR = 354, 225 ELLIPSIS = 355, 226 MULTassign = 356, 227 DIVassign = 357, 228 MODassign = 358, 229 PLUSassign = 359, 230 MINUSassign = 360, 231 LSassign = 361, 232 RSassign = 362, 233 ANDassign = 363, 234 ERassign = 364, 235 ORassign = 365, 236 ATassign = 366, 237 THEN = 367 238 }; 237 239 #endif 238 240 /* Tokens. */ … … 348 350 #define THEN 367 349 351 350 351 352 352 /* Value type. */ 353 353 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 354 typedef union YYSTYPE 354 typedef union YYSTYPE YYSTYPE; 355 union YYSTYPE 355 356 { 356 357 /* Line 293 of yacc.c */ 358 #line 120 "parser.yy" 357 #line 120 "parser.yy" /* yacc.c:355 */ 359 358 360 359 Token tok; … … 373 372 bool flag; 374 373 375 376 377 /* Line 293 of yacc.c */ 378 #line 379 "Parser/parser.cc" 379 } YYSTYPE; 374 #line 375 "Parser/parser.cc" /* yacc.c:355 */ 375 }; 380 376 # define YYSTYPE_IS_TRIVIAL 1 381 # define yystype YYSTYPE /* obsolescent; will be withdrawn */382 377 # define YYSTYPE_IS_DECLARED 1 383 378 #endif 384 379 385 380 381 extern YYSTYPE yylval; 382 383 int yyparse (void); 384 385 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 386 386 387 /* Copy the second part of user declarations. */ 387 388 388 389 /* Line 343 of yacc.c */ 390 #line 391 "Parser/parser.cc" 389 #line 390 "Parser/parser.cc" /* yacc.c:358 */ 391 390 392 391 #ifdef short … … 402 401 #ifdef YYTYPE_INT8 403 402 typedef YYTYPE_INT8 yytype_int8; 404 #elif (defined __STDC__ || defined __C99__FUNC__ \ 405 || defined __cplusplus || defined _MSC_VER) 403 #else 406 404 typedef signed char yytype_int8; 407 #else408 typedef short int yytype_int8;409 405 #endif 410 406 … … 426 422 # elif defined size_t 427 423 # define YYSIZE_T size_t 428 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 429 || defined __cplusplus || defined _MSC_VER) 424 # elif ! defined YYSIZE_T 430 425 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 431 426 # define YYSIZE_T size_t … … 441 436 # if ENABLE_NLS 442 437 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 443 # define YY_( msgid) dgettext ("bison-runtime", msgid)438 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 444 439 # endif 445 440 # endif 446 441 # ifndef YY_ 447 # define YY_( msgid) msgid442 # define YY_(Msgid) Msgid 448 443 # endif 449 444 #endif 450 445 446 #ifndef YY_ATTRIBUTE 447 # if (defined __GNUC__ \ 448 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 449 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 450 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 451 # else 452 # define YY_ATTRIBUTE(Spec) /* empty */ 453 # endif 454 #endif 455 456 #ifndef YY_ATTRIBUTE_PURE 457 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 458 #endif 459 460 #ifndef YY_ATTRIBUTE_UNUSED 461 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 462 #endif 463 464 #if !defined _Noreturn \ 465 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 466 # if defined _MSC_VER && 1200 <= _MSC_VER 467 # define _Noreturn __declspec (noreturn) 468 # else 469 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 470 # endif 471 #endif 472 451 473 /* Suppress unused-variable warnings by "using" E. */ 452 474 #if ! defined lint || defined __GNUC__ 453 # define YYUSE( e) ((void) (e))475 # define YYUSE(E) ((void) (E)) 454 476 #else 455 # define YYUSE( e) /* empty */477 # define YYUSE(E) /* empty */ 456 478 #endif 457 479 458 /* Identity function, used to suppress warnings about constant conditions. */ 459 #ifndef lint 460 # define YYID(n) (n) 480 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 481 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 483 _Pragma ("GCC diagnostic push") \ 484 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 485 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 486 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 487 _Pragma ("GCC diagnostic pop") 461 488 #else 462 #if (defined __STDC__ || defined __C99__FUNC__ \ 463 || defined __cplusplus || defined _MSC_VER) 464 static int 465 YYID (int yyi) 466 #else 467 static int 468 YYID (yyi) 469 int yyi; 489 # define YY_INITIAL_VALUE(Value) Value 470 490 #endif 471 { 472 return yyi; 473 } 491 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 492 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 493 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 474 494 #endif 495 #ifndef YY_INITIAL_VALUE 496 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 497 #endif 498 475 499 476 500 #if ! defined yyoverflow || YYERROR_VERBOSE … … 491 515 # else 492 516 # define YYSTACK_ALLOC alloca 493 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 494 || defined __cplusplus || defined _MSC_VER) 517 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 495 518 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 519 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 496 520 # ifndef EXIT_SUCCESS 497 521 # define EXIT_SUCCESS 0 … … 503 527 504 528 # ifdef YYSTACK_ALLOC 505 /* Pacify GCC's `empty if-body' warning. */506 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))529 /* Pacify GCC's 'empty if-body' warning. */ 530 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 507 531 # ifndef YYSTACK_ALLOC_MAXIMUM 508 532 /* The OS might guarantee only one guard page at the bottom of the stack, … … 520 544 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 521 545 && ! ((defined YYMALLOC || defined malloc) \ 522 546 && (defined YYFREE || defined free))) 523 547 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 524 548 # ifndef EXIT_SUCCESS … … 528 552 # ifndef YYMALLOC 529 553 # define YYMALLOC malloc 530 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 531 || defined __cplusplus || defined _MSC_VER) 554 # if ! defined malloc && ! defined EXIT_SUCCESS 532 555 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 533 556 # endif … … 535 558 # ifndef YYFREE 536 559 # define YYFREE free 537 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 538 || defined __cplusplus || defined _MSC_VER) 560 # if ! defined free && ! defined EXIT_SUCCESS 539 561 void free (void *); /* INFRINGES ON USER NAME SPACE */ 540 562 # endif … … 546 568 #if (! defined yyoverflow \ 547 569 && (! defined __cplusplus \ 548 570 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 549 571 550 572 /* A type that is properly aligned for any stack member. */ … … 571 593 stack. Advance YYPTR to a properly aligned location for the next 572 594 stack. */ 573 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 574 do 575 { 576 YYSIZE_T yynewbytes;\577 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\578 Stack = &yyptr->Stack_alloc;\579 580 yyptr += yynewbytes / sizeof (*yyptr);\581 } 582 while ( YYID (0))595 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 596 do \ 597 { \ 598 YYSIZE_T yynewbytes; \ 599 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 600 Stack = &yyptr->Stack_alloc; \ 601 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 602 yyptr += yynewbytes / sizeof (*yyptr); \ 603 } \ 604 while (0) 583 605 584 606 #endif 585 607 586 608 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 587 /* Copy COUNT objects from FROM to TO. The source and destination do609 /* Copy COUNT objects from SRC to DST. The source and destination do 588 610 not overlap. */ 589 611 # ifndef YYCOPY 590 612 # if defined __GNUC__ && 1 < __GNUC__ 591 # define YYCOPY( To, From, Count) \592 __builtin_memcpy ( To, From, (Count) * sizeof (*(From)))613 # define YYCOPY(Dst, Src, Count) \ 614 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 593 615 # else 594 # define YYCOPY( To, From, Count)\595 do 596 {\597 YYSIZE_T yyi;\598 for (yyi = 0; yyi < (Count); yyi++)\599 (To)[yyi] = (From)[yyi];\600 }\601 while ( YYID (0))616 # define YYCOPY(Dst, Src, Count) \ 617 do \ 618 { \ 619 YYSIZE_T yyi; \ 620 for (yyi = 0; yyi < (Count); yyi++) \ 621 (Dst)[yyi] = (Src)[yyi]; \ 622 } \ 623 while (0) 602 624 # endif 603 625 # endif … … 615 637 /* YYNRULES -- Number of rules. */ 616 638 #define YYNRULES 757 617 /* YYN RULES -- Number of states. */639 /* YYNSTATES -- Number of states. */ 618 640 #define YYNSTATES 1540 619 641 620 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 642 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 643 by yylex, with out-of-bounds checking. */ 621 644 #define YYUNDEFTOK 2 622 645 #define YYMAXUTOK 367 623 646 624 #define YYTRANSLATE(YYX) 647 #define YYTRANSLATE(YYX) \ 625 648 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 626 649 627 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 650 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 651 as returned by yylex, without out-of-bounds checking. */ 628 652 static const yytype_uint8 yytranslate[] = 629 653 { … … 668 692 669 693 #if YYDEBUG 670 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 671 YYRHS. */ 672 static const yytype_uint16 yyprhs[] = 673 { 674 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 675 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 676 37, 40, 42, 44, 46, 50, 54, 56, 63, 68, 677 72, 80, 83, 87, 95, 98, 101, 109, 114, 116, 678 120, 121, 123, 125, 129, 131, 134, 141, 145, 153, 679 157, 165, 168, 171, 174, 175, 178, 180, 182, 184, 680 187, 190, 193, 196, 199, 202, 207, 210, 215, 222, 681 224, 229, 234, 236, 238, 240, 242, 244, 246, 248, 682 253, 255, 259, 263, 267, 269, 273, 277, 279, 283, 683 287, 289, 293, 297, 301, 305, 307, 311, 315, 317, 684 321, 323, 327, 329, 333, 335, 339, 341, 345, 347, 685 353, 358, 360, 362, 366, 367, 369, 371, 373, 375, 686 377, 379, 381, 383, 385, 387, 389, 391, 393, 400, 687 408, 410, 414, 416, 420, 421, 423, 425, 427, 429, 688 431, 433, 435, 437, 439, 446, 451, 454, 462, 464, 689 468, 470, 473, 475, 478, 480, 483, 486, 492, 500, 690 506, 516, 522, 532, 534, 538, 540, 542, 546, 550, 691 553, 555, 558, 561, 562, 564, 567, 571, 572, 574, 692 577, 581, 585, 590, 591, 593, 595, 598, 604, 612, 693 619, 626, 631, 635, 640, 643, 647, 650, 654, 658, 694 662, 666, 672, 676, 680, 685, 687, 693, 700, 706, 695 713, 723, 734, 744, 755, 758, 760, 763, 766, 769, 696 771, 778, 787, 798, 811, 826, 827, 829, 830, 832, 697 834, 838, 843, 851, 852, 854, 858, 860, 864, 866, 698 868, 870, 874, 876, 878, 880, 884, 885, 887, 891, 699 896, 898, 902, 904, 906, 910, 914, 918, 922, 926, 700 929, 933, 940, 944, 948, 953, 955, 958, 961, 965, 701 971, 979, 987, 993, 1003, 1006, 1009, 1015, 1019, 1025, 702 1030, 1034, 1039, 1044, 1052, 1056, 1060, 1064, 1068, 1073, 703 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1097, 704 1099, 1101, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 705 1119, 1125, 1127, 1130, 1134, 1136, 1139, 1141, 1143, 1145, 706 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165, 707 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1185, 708 1187, 1190, 1193, 1197, 1201, 1203, 1207, 1209, 1212, 1215, 709 1218, 1223, 1228, 1233, 1238, 1240, 1243, 1246, 1250, 1252, 710 1255, 1258, 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 711 1282, 1287, 1290, 1291, 1298, 1306, 1309, 1312, 1315, 1316, 712 1319, 1322, 1326, 1329, 1333, 1335, 1338, 1342, 1345, 1348, 713 1353, 1354, 1356, 1359, 1362, 1364, 1365, 1367, 1370, 1373, 714 1379, 1382, 1383, 1391, 1394, 1399, 1400, 1403, 1404, 1406, 715 1408, 1410, 1416, 1422, 1428, 1430, 1436, 1442, 1452, 1454, 716 1460, 1461, 1463, 1465, 1471, 1473, 1475, 1481, 1487, 1489, 717 1493, 1497, 1502, 1504, 1506, 1508, 1510, 1513, 1515, 1519, 718 1523, 1525, 1528, 1530, 1534, 1536, 1538, 1540, 1542, 1544, 719 1546, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565, 720 1568, 1569, 1572, 1575, 1577, 1582, 1583, 1585, 1588, 1592, 721 1597, 1600, 1603, 1605, 1608, 1611, 1617, 1623, 1631, 1638, 722 1640, 1643, 1646, 1650, 1652, 1655, 1658, 1663, 1666, 1671, 723 1672, 1677, 1680, 1682, 1684, 1686, 1687, 1690, 1696, 1702, 724 1716, 1718, 1720, 1724, 1728, 1731, 1735, 1739, 1742, 1747, 725 1749, 1756, 1766, 1767, 1779, 1781, 1785, 1789, 1793, 1795, 726 1797, 1803, 1806, 1812, 1813, 1815, 1817, 1821, 1822, 1824, 727 1826, 1828, 1830, 1831, 1838, 1841, 1843, 1846, 1851, 1854, 728 1858, 1862, 1866, 1871, 1877, 1883, 1889, 1896, 1898, 1900, 729 1902, 1906, 1907, 1913, 1914, 1916, 1918, 1921, 1928, 1930, 730 1934, 1935, 1937, 1942, 1944, 1946, 1948, 1950, 1953, 1955, 731 1958, 1961, 1963, 1967, 1970, 1974, 1978, 1981, 1986, 1991, 732 1995, 2004, 2008, 2011, 2013, 2016, 2023, 2032, 2036, 2039, 733 2043, 2047, 2052, 2057, 2061, 2063, 2065, 2067, 2072, 2079, 734 2083, 2086, 2090, 2094, 2099, 2104, 2108, 2111, 2113, 2116, 735 2119, 2121, 2125, 2128, 2132, 2136, 2139, 2144, 2149, 2153, 736 2160, 2169, 2173, 2176, 2178, 2181, 2184, 2187, 2191, 2195, 737 2198, 2203, 2208, 2212, 2219, 2228, 2232, 2235, 2237, 2240, 738 2243, 2245, 2247, 2250, 2254, 2258, 2261, 2266, 2273, 2282, 739 2284, 2287, 2290, 2292, 2295, 2298, 2302, 2306, 2308, 2313, 740 2318, 2322, 2328, 2337, 2341, 2344, 2348, 2350, 2356, 2362, 741 2369, 2376, 2378, 2381, 2384, 2386, 2389, 2392, 2396, 2400, 742 2402, 2407, 2412, 2416, 2422, 2431, 2435, 2437, 2440, 2442, 743 2445, 2452, 2458, 2465, 2473, 2481, 2483, 2486, 2489, 2491, 744 2494, 2497, 2501, 2505, 2507, 2512, 2517, 2521, 2530, 2534, 745 2536, 2538, 2541, 2543, 2545, 2548, 2552, 2555, 2559, 2562, 746 2566, 2570, 2573, 2578, 2582, 2585, 2589, 2592, 2597, 2601, 747 2604, 2611, 2618, 2625, 2633, 2635, 2638, 2640, 2642, 2644, 748 2647, 2651, 2654, 2658, 2661, 2665, 2669, 2674, 2677, 2681, 749 2686, 2689, 2695, 2702, 2709, 2710, 2712, 2713 750 }; 751 752 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 753 static const yytype_int16 yyrhs[] = 754 { 755 308, 0, -1, -1, -1, 81, -1, 84, -1, 85, 756 -1, 86, -1, 82, -1, 74, -1, 78, -1, 144, 757 -1, 74, -1, 78, -1, 74, -1, 144, -1, 87, 758 -1, 88, -1, 146, -1, 83, -1, 146, 83, -1, 759 74, -1, 144, -1, 174, -1, 113, 176, 114, -1, 760 113, 180, 114, -1, 147, -1, 148, 115, 138, 171, 761 139, 116, -1, 148, 113, 149, 114, -1, 148, 117, 762 143, -1, 148, 117, 115, 138, 151, 139, 116, -1, 763 148, 85, -1, 148, 89, 143, -1, 148, 89, 115, 764 138, 151, 139, 116, -1, 148, 90, -1, 148, 91, 765 -1, 113, 281, 114, 118, 285, 378, 119, -1, 148, 766 118, 149, 119, -1, 150, -1, 149, 120, 150, -1, 767 -1, 171, -1, 152, -1, 151, 120, 152, -1, 153, 768 -1, 84, 152, -1, 84, 115, 138, 151, 139, 116, 769 -1, 153, 117, 152, -1, 153, 117, 115, 138, 151, 770 139, 116, -1, 153, 89, 152, -1, 153, 89, 115, 771 138, 151, 139, 116, -1, 81, 154, -1, 86, 154, 772 -1, 143, 154, -1, -1, 154, 85, -1, 148, -1, 773 140, -1, 145, -1, 42, 158, -1, 156, 158, -1, 774 157, 158, -1, 90, 155, -1, 91, 155, -1, 39, 775 155, -1, 39, 113, 281, 114, -1, 68, 155, -1, 776 68, 113, 281, 114, -1, 40, 113, 281, 120, 143, 777 114, -1, 78, -1, 78, 113, 150, 114, -1, 78, 778 113, 282, 114, -1, 121, -1, 122, -1, 123, -1, 779 124, -1, 125, -1, 126, -1, 155, -1, 113, 281, 780 114, 158, -1, 158, -1, 159, 121, 158, -1, 159, 781 127, 158, -1, 159, 128, 158, -1, 159, -1, 160, 782 123, 159, -1, 160, 124, 159, -1, 160, -1, 161, 783 92, 160, -1, 161, 93, 160, -1, 161, -1, 162, 784 129, 161, -1, 162, 130, 161, -1, 162, 94, 161, 785 -1, 162, 95, 161, -1, 162, -1, 163, 96, 162, 786 -1, 163, 97, 162, -1, 163, -1, 164, 122, 163, 787 -1, 164, -1, 165, 131, 164, -1, 165, -1, 166, 788 132, 165, -1, 166, -1, 167, 98, 166, -1, 167, 789 -1, 168, 99, 167, -1, 168, -1, 168, 133, 176, 790 134, 169, -1, 168, 133, 134, 169, -1, 169, -1, 791 169, -1, 155, 173, 171, -1, -1, 171, -1, 135, 792 -1, 111, -1, 101, -1, 102, -1, 103, -1, 104, 793 -1, 105, -1, 106, -1, 107, -1, 108, -1, 109, 794 -1, 110, -1, 115, 138, 120, 175, 139, 116, -1, 795 115, 138, 171, 120, 175, 139, 116, -1, 172, -1, 796 175, 120, 172, -1, 171, -1, 176, 120, 171, -1, 797 -1, 176, -1, 179, -1, 180, -1, 184, -1, 185, 798 -1, 197, -1, 199, -1, 200, -1, 205, -1, 131, 799 148, 118, 149, 119, 136, -1, 74, 134, 318, 178, 800 -1, 118, 119, -1, 118, 138, 138, 216, 181, 139, 801 119, -1, 182, -1, 181, 138, 182, -1, 219, -1, 802 42, 219, -1, 314, -1, 178, 139, -1, 178, -1, 803 183, 178, -1, 177, 136, -1, 43, 113, 176, 114, 804 178, -1, 43, 113, 176, 114, 178, 44, 178, -1, 805 45, 113, 176, 114, 190, -1, 45, 113, 176, 114, 806 118, 138, 212, 191, 119, -1, 55, 113, 176, 114, 807 190, -1, 55, 113, 176, 114, 118, 138, 212, 193, 808 119, -1, 170, -1, 170, 100, 170, -1, 316, -1, 809 186, -1, 187, 120, 186, -1, 46, 187, 134, -1, 810 47, 134, -1, 188, -1, 189, 188, -1, 189, 178, 811 -1, -1, 192, -1, 189, 183, -1, 192, 189, 183, 812 -1, -1, 194, -1, 189, 196, -1, 189, 183, 195, 813 -1, 194, 189, 196, -1, 194, 189, 183, 195, -1, 814 -1, 196, -1, 58, -1, 58, 136, -1, 49, 113, 815 176, 114, 178, -1, 48, 178, 49, 113, 176, 114, 816 136, -1, 50, 113, 138, 198, 114, 178, -1, 177, 817 139, 136, 177, 136, 177, -1, 219, 177, 136, 177, 818 -1, 53, 74, 136, -1, 53, 121, 176, 136, -1, 819 52, 136, -1, 52, 74, 136, -1, 51, 136, -1, 820 51, 74, 136, -1, 54, 177, 136, -1, 63, 172, 821 136, -1, 64, 172, 136, -1, 64, 172, 65, 171, 822 136, -1, 59, 180, 201, -1, 59, 180, 203, -1, 823 59, 180, 201, 203, -1, 202, -1, 60, 113, 100, 824 114, 180, -1, 202, 60, 113, 100, 114, 180, -1, 825 61, 113, 100, 114, 180, -1, 202, 61, 113, 100, 826 114, 180, -1, 60, 113, 138, 138, 204, 139, 114, 827 180, 139, -1, 202, 60, 113, 138, 138, 204, 139, 828 114, 180, 139, -1, 61, 113, 138, 138, 204, 139, 829 114, 180, 139, -1, 202, 61, 113, 138, 138, 204, 830 139, 114, 180, 139, -1, 62, 180, -1, 232, -1, 831 232, 315, -1, 232, 363, -1, 372, 143, -1, 372, 832 -1, 66, 206, 113, 145, 114, 136, -1, 66, 206, 833 113, 145, 134, 207, 114, 136, -1, 66, 206, 113, 834 145, 134, 207, 134, 207, 114, 136, -1, 66, 206, 835 113, 145, 134, 207, 134, 207, 134, 210, 114, 136, 836 -1, 66, 206, 53, 113, 145, 134, 134, 207, 134, 837 210, 134, 211, 114, 136, -1, -1, 11, -1, -1, 838 208, -1, 209, -1, 208, 120, 209, -1, 145, 113, 839 170, 114, -1, 115, 170, 116, 145, 113, 170, 114, 840 -1, -1, 145, -1, 210, 120, 145, -1, 143, -1, 841 211, 120, 143, -1, 139, -1, 213, -1, 219, -1, 842 213, 138, 219, -1, 139, -1, 215, -1, 229, -1, 843 215, 138, 229, -1, -1, 217, -1, 31, 218, 136, 844 -1, 217, 31, 218, 136, -1, 280, -1, 218, 120, 845 280, -1, 220, -1, 229, -1, 221, 139, 136, -1, 846 226, 139, 136, -1, 223, 139, 136, -1, 299, 139, 847 136, -1, 302, 139, 136, -1, 222, 283, -1, 238, 848 222, 283, -1, 221, 139, 120, 138, 278, 283, -1, 849 373, 278, 317, -1, 376, 278, 317, -1, 234, 376, 850 278, 317, -1, 224, -1, 234, 224, -1, 238, 224, 851 -1, 238, 234, 224, -1, 223, 139, 120, 138, 278, 852 -1, 376, 278, 113, 138, 266, 139, 114, -1, 225, 853 278, 113, 138, 266, 139, 114, -1, 115, 138, 268, 854 139, 116, -1, 115, 138, 268, 139, 120, 138, 269, 855 139, 116, -1, 3, 222, -1, 3, 224, -1, 226, 856 139, 120, 138, 143, -1, 3, 232, 315, -1, 227, 857 139, 120, 138, 315, -1, 234, 3, 232, 315, -1, 858 232, 3, 315, -1, 232, 3, 234, 315, -1, 3, 859 143, 135, 171, -1, 228, 139, 120, 138, 143, 135, 860 171, -1, 230, 139, 136, -1, 227, 139, 136, -1, 861 228, 139, 136, -1, 246, 139, 136, -1, 231, 315, 862 317, 283, -1, 230, 120, 318, 315, 317, 283, -1, 863 242, -1, 246, -1, 248, -1, 289, -1, 243, -1, 864 247, -1, 249, -1, 290, -1, -1, 234, -1, 235, 865 -1, 234, 235, -1, 236, -1, 320, -1, 10, -1, 866 12, -1, 11, -1, 14, -1, 69, -1, -1, 13, 867 113, 237, 292, 114, -1, 239, -1, 234, 239, -1, 868 238, 234, 239, -1, 240, -1, 239, 240, -1, 5, 869 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 870 -1, 71, -1, 73, -1, 16, -1, 21, -1, 20, 871 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 872 -1, 15, -1, 27, -1, 28, -1, 29, -1, 26, 873 -1, 24, -1, 25, -1, 243, -1, 238, 243, -1, 874 242, 240, -1, 242, 240, 234, -1, 242, 240, 243, 875 -1, 244, -1, 233, 245, 233, -1, 241, -1, 234, 876 241, -1, 244, 235, -1, 244, 241, -1, 30, 113, 877 282, 114, -1, 30, 113, 176, 114, -1, 80, 113, 878 282, 114, -1, 80, 113, 176, 114, -1, 247, -1, 879 238, 247, -1, 246, 240, -1, 246, 240, 234, -1, 880 250, -1, 234, 250, -1, 247, 235, -1, 249, -1, 881 238, 249, -1, 248, 240, -1, 248, 240, 234, -1, 882 76, -1, 234, 76, -1, 249, 235, -1, 251, -1, 883 262, -1, 253, 118, 254, 119, -1, 253, 280, -1, 884 -1, 253, 280, 252, 118, 254, 119, -1, 253, 113, 885 298, 114, 118, 254, 119, -1, 253, 291, -1, 33, 886 318, -1, 34, 318, -1, -1, 254, 255, -1, 256, 887 136, -1, 42, 256, 136, -1, 257, 136, -1, 42, 888 257, 136, -1, 372, -1, 372, 280, -1, 256, 120, 889 280, -1, 256, 120, -1, 232, 258, -1, 257, 120, 890 318, 258, -1, -1, 260, -1, 324, 259, -1, 337, 891 259, -1, 363, -1, -1, 260, -1, 134, 170, -1, 892 32, 318, -1, 261, 118, 264, 378, 119, -1, 261, 893 280, -1, -1, 261, 280, 263, 118, 264, 378, 119, 894 -1, 280, 265, -1, 264, 120, 280, 265, -1, -1, 895 135, 170, -1, -1, 267, -1, 269, -1, 268, -1, 896 268, 139, 120, 138, 269, -1, 269, 139, 120, 138, 897 100, -1, 268, 139, 120, 138, 100, -1, 273, -1, 898 269, 139, 120, 138, 273, -1, 268, 139, 120, 138, 899 273, -1, 268, 139, 120, 138, 269, 139, 120, 138, 900 273, -1, 274, -1, 269, 139, 120, 138, 274, -1, 901 -1, 271, -1, 272, -1, 272, 139, 120, 138, 100, 902 -1, 276, -1, 275, -1, 272, 139, 120, 138, 276, 903 -1, 272, 139, 120, 138, 275, -1, 275, -1, 368, 904 278, 379, -1, 376, 278, 379, -1, 234, 376, 278, 905 379, -1, 224, -1, 276, -1, 368, -1, 376, -1, 906 234, 376, -1, 377, -1, 231, 342, 379, -1, 231, 907 346, 379, -1, 231, -1, 231, 357, -1, 143, -1, 908 277, 120, 143, -1, 141, -1, 76, -1, 77, -1, 909 142, -1, 76, -1, 77, -1, 143, -1, 76, -1, 910 77, -1, 372, -1, 232, -1, 232, 363, -1, 372, 911 -1, 377, -1, 232, -1, 232, 351, -1, -1, 135, 912 284, -1, 111, 284, -1, 171, -1, 118, 285, 378, 913 119, -1, -1, 284, -1, 286, 284, -1, 285, 120, 914 284, -1, 285, 120, 286, 284, -1, 287, 134, -1, 915 280, 134, -1, 288, -1, 287, 288, -1, 117, 280, 916 -1, 115, 138, 171, 139, 116, -1, 115, 138, 316, 917 139, 116, -1, 115, 138, 170, 100, 170, 139, 116, 918 -1, 117, 115, 138, 151, 139, 116, -1, 290, -1, 919 238, 290, -1, 289, 240, -1, 289, 240, 234, -1, 920 291, -1, 234, 291, -1, 290, 235, -1, 77, 113, 921 298, 114, -1, 293, 379, -1, 292, 120, 293, 379, 922 -1, -1, 295, 280, 294, 296, -1, 232, 342, -1, 923 35, -1, 37, -1, 36, -1, -1, 296, 297, -1, 924 132, 280, 113, 298, 114, -1, 132, 118, 138, 304, 925 119, -1, 132, 113, 138, 292, 139, 114, 118, 138, 926 304, 119, 113, 298, 114, -1, 282, -1, 171, -1, 927 298, 120, 282, -1, 298, 120, 171, -1, 35, 300, 928 -1, 239, 35, 300, -1, 299, 120, 300, -1, 301, 929 296, -1, 301, 296, 135, 282, -1, 280, -1, 279, 930 113, 138, 292, 139, 114, -1, 38, 280, 113, 138, 931 292, 139, 114, 118, 119, -1, -1, 38, 280, 113, 932 138, 292, 139, 114, 118, 303, 304, 119, -1, 305, 933 -1, 304, 138, 305, -1, 306, 139, 136, -1, 307, 934 139, 136, -1, 222, -1, 224, -1, 306, 139, 120, 935 138, 278, -1, 232, 315, -1, 307, 139, 120, 138, 936 315, -1, -1, 309, -1, 311, -1, 309, 138, 311, 937 -1, -1, 309, -1, 219, -1, 313, -1, 205, -1, 938 -1, 5, 83, 312, 118, 310, 119, -1, 42, 311, 939 -1, 314, -1, 329, 180, -1, 333, 138, 214, 180, 940 -1, 223, 180, -1, 231, 329, 180, -1, 234, 329, 941 180, -1, 238, 329, 180, -1, 238, 234, 329, 180, 942 -1, 231, 333, 138, 214, 180, -1, 234, 333, 138, 943 214, 180, -1, 238, 333, 138, 214, 180, -1, 238, 944 234, 333, 138, 214, 180, -1, 324, -1, 337, -1, 945 329, -1, 170, 126, 170, -1, -1, 66, 113, 146, 946 114, 318, -1, -1, 319, -1, 320, -1, 319, 320, 947 -1, 41, 113, 113, 321, 114, 114, -1, 322, -1, 948 321, 120, 322, -1, -1, 323, -1, 323, 113, 177, 949 114, -1, 278, -1, 240, -1, 241, -1, 235, -1, 950 325, 318, -1, 326, -1, 327, 318, -1, 328, 318, 951 -1, 141, -1, 113, 325, 114, -1, 156, 324, -1, 952 156, 234, 324, -1, 113, 326, 114, -1, 325, 355, 953 -1, 113, 326, 114, 355, -1, 113, 327, 114, 356, 954 -1, 113, 327, 114, -1, 113, 326, 114, 113, 138, 955 270, 139, 114, -1, 113, 328, 114, -1, 330, 318, 956 -1, 331, -1, 332, 318, -1, 325, 113, 138, 270, 957 139, 114, -1, 113, 331, 114, 113, 138, 270, 139, 958 114, -1, 113, 330, 114, -1, 156, 329, -1, 156, 959 234, 329, -1, 113, 331, 114, -1, 113, 331, 114, 960 355, -1, 113, 332, 114, 356, -1, 113, 332, 114, 961 -1, 334, -1, 335, -1, 336, -1, 325, 113, 277, 962 114, -1, 113, 335, 114, 113, 277, 114, -1, 113, 963 334, 114, -1, 156, 333, -1, 156, 234, 333, -1, 964 113, 335, 114, -1, 113, 335, 114, 355, -1, 113, 965 336, 114, 356, -1, 113, 336, 114, -1, 338, 318, 966 -1, 339, -1, 340, 318, -1, 341, 318, -1, 347, 967 -1, 113, 338, 114, -1, 156, 337, -1, 156, 234, 968 337, -1, 113, 339, 114, -1, 338, 355, -1, 113, 969 339, 114, 355, -1, 113, 340, 114, 356, -1, 113, 970 340, 114, -1, 338, 113, 138, 270, 139, 114, -1, 971 113, 339, 114, 113, 138, 270, 139, 114, -1, 113, 972 341, 114, -1, 325, 318, -1, 343, -1, 344, 318, 973 -1, 345, 318, -1, 156, 342, -1, 156, 234, 342, 974 -1, 113, 343, 114, -1, 325, 361, -1, 113, 343, 975 114, 355, -1, 113, 344, 114, 356, -1, 113, 344, 976 114, -1, 325, 113, 138, 270, 139, 114, -1, 113, 977 343, 114, 113, 138, 270, 139, 114, -1, 113, 345, 978 114, -1, 347, 318, -1, 348, -1, 349, 318, -1, 979 350, 318, -1, 76, -1, 77, -1, 156, 346, -1, 980 156, 234, 346, -1, 113, 348, 114, -1, 347, 361, 981 -1, 113, 348, 114, 361, -1, 347, 113, 138, 270, 982 139, 114, -1, 113, 348, 114, 113, 138, 270, 139, 983 114, -1, 352, -1, 353, 318, -1, 354, 318, -1, 984 156, -1, 156, 234, -1, 156, 351, -1, 156, 234, 985 351, -1, 113, 352, 114, -1, 355, -1, 113, 352, 986 114, 355, -1, 113, 353, 114, 356, -1, 113, 353, 987 114, -1, 113, 138, 270, 139, 114, -1, 113, 352, 988 114, 113, 138, 270, 139, 114, -1, 113, 354, 114, 989 -1, 115, 116, -1, 115, 116, 356, -1, 356, -1, 990 115, 138, 171, 139, 116, -1, 115, 138, 121, 139, 991 116, -1, 356, 115, 138, 171, 139, 116, -1, 356, 992 115, 138, 121, 139, 116, -1, 358, -1, 359, 318, 993 -1, 360, 318, -1, 156, -1, 156, 234, -1, 156, 994 357, -1, 156, 234, 357, -1, 113, 358, 114, -1, 995 361, -1, 113, 358, 114, 361, -1, 113, 359, 114, 996 356, -1, 113, 359, 114, -1, 113, 138, 270, 139, 997 114, -1, 113, 358, 114, 113, 138, 270, 139, 114, 998 -1, 113, 360, 114, -1, 362, -1, 362, 356, -1, 999 356, -1, 115, 116, -1, 115, 138, 234, 121, 139, 1000 116, -1, 115, 138, 234, 139, 116, -1, 115, 138, 1001 234, 171, 139, 116, -1, 115, 138, 7, 233, 171, 1002 139, 116, -1, 115, 138, 234, 7, 171, 139, 116, 1003 -1, 364, -1, 365, 318, -1, 366, 318, -1, 156, 1004 -1, 156, 234, -1, 156, 363, -1, 156, 234, 363, 1005 -1, 113, 364, 114, -1, 355, -1, 113, 364, 114, 1006 355, -1, 113, 365, 114, 356, -1, 113, 365, 114, 1007 -1, 113, 364, 114, 113, 138, 270, 139, 114, -1, 1008 113, 366, 114, -1, 368, -1, 376, -1, 234, 376, 1009 -1, 369, -1, 370, -1, 156, 232, -1, 234, 156, 1010 232, -1, 156, 377, -1, 234, 156, 377, -1, 156, 1011 367, -1, 234, 156, 367, -1, 115, 116, 232, -1, 1012 371, 232, -1, 115, 116, 356, 232, -1, 371, 356, 1013 232, -1, 356, 232, -1, 115, 116, 369, -1, 371, 1014 369, -1, 115, 116, 356, 369, -1, 371, 356, 369, 1015 -1, 356, 369, -1, 115, 138, 234, 121, 139, 116, 1016 -1, 115, 138, 234, 171, 139, 116, -1, 115, 138, 1017 238, 171, 139, 116, -1, 115, 138, 238, 234, 171, 1018 139, 116, -1, 376, -1, 234, 376, -1, 373, -1, 1019 374, -1, 375, -1, 156, 232, -1, 234, 156, 232, 1020 -1, 156, 377, -1, 234, 156, 377, -1, 156, 372, 1021 -1, 234, 156, 372, -1, 115, 116, 232, -1, 115, 1022 116, 356, 232, -1, 356, 232, -1, 115, 116, 374, 1023 -1, 115, 116, 356, 374, -1, 356, 374, -1, 115, 1024 138, 269, 139, 116, -1, 376, 113, 138, 266, 139, 1025 114, -1, 225, 113, 138, 266, 139, 114, -1, -1, 1026 120, -1, -1, 135, 171, -1 1027 }; 1028 1029 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 694 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 1030 695 static const yytype_uint16 yyrline[] = 1031 696 { … … 1109 774 #endif 1110 775 1111 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE776 #if YYDEBUG || YYERROR_VERBOSE || 0 1112 777 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1113 778 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 1220 885 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 1221 886 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 1222 "comma_opt", "assignment_opt", 0887 "comma_opt", "assignment_opt", YY_NULLPTR 1223 888 }; 1224 889 #endif 1225 890 1226 891 # ifdef YYPRINT 1227 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to1228 token YYLEX-NUM. */892 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 893 (internal) symbol number NUM (which must be that of a token). */ 1229 894 static const yytype_uint16 yytoknum[] = 1230 895 { … … 1246 911 # endif 1247 912 1248 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */1249 static const yytype_uint16 yyr1[] =1250 {1251 0, 137, 138, 139, 140, 140, 140, 140, 140, 141,1252 141, 141, 142, 142, 143, 143, 144, 144, 145, 146,1253 146, 147, 147, 147, 147, 147, 148, 148, 148, 148,1254 148, 148, 148, 148, 148, 148, 148, 148, 149, 149,1255 150, 150, 151, 151, 152, 152, 152, 152, 152, 152,1256 152, 153, 153, 153, 154, 154, 155, 155, 155, 155,1257 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,1258 155, 155, 156, 156, 157, 157, 157, 157, 158, 158,1259 159, 159, 159, 159, 160, 160, 160, 161, 161, 161,1260 162, 162, 162, 162, 162, 163, 163, 163, 164, 164,1261 165, 165, 166, 166, 167, 167, 168, 168, 169, 169,1262 169, 170, 171, 171, 172, 172, 173, 173, 173, 173,1263 173, 173, 173, 173, 173, 173, 173, 173, 174, 174,1264 175, 175, 176, 176, 177, 177, 178, 178, 178, 178,1265 178, 178, 178, 178, 178, 179, 180, 180, 181, 181,1266 182, 182, 182, 182, 183, 183, 184, 185, 185, 185,1267 185, 185, 185, 186, 186, 186, 187, 187, 188, 188,1268 189, 189, 190, 191, 191, 192, 192, 193, 193, 194,1269 194, 194, 194, 195, 195, 196, 196, 197, 197, 197,1270 198, 198, 199, 199, 199, 199, 199, 199, 199, 199,1271 199, 199, 200, 200, 200, 201, 201, 201, 201, 201,1272 202, 202, 202, 202, 203, 204, 204, 204, 204, 204,1273 205, 205, 205, 205, 205, 206, 206, 207, 207, 208,1274 208, 209, 209, 210, 210, 210, 211, 211, 212, 212,1275 213, 213, 214, 214, 215, 215, 216, 216, 217, 217,1276 218, 218, 219, 219, 220, 220, 220, 220, 220, 221,1277 221, 221, 222, 222, 222, 223, 223, 223, 223, 223,1278 224, 224, 225, 225, 226, 226, 226, 227, 227, 227,1279 227, 227, 228, 228, 229, 229, 229, 229, 230, 230,1280 231, 231, 231, 231, 232, 232, 232, 232, 233, 233,1281 234, 234, 235, 235, 236, 236, 236, 236, 236, 237,1282 236, 238, 238, 238, 239, 239, 240, 240, 240, 240,1283 240, 240, 240, 240, 241, 241, 241, 241, 241, 241,1284 241, 241, 241, 241, 241, 241, 241, 241, 241, 242,1285 242, 242, 242, 242, 243, 243, 244, 244, 244, 244,1286 245, 245, 245, 245, 246, 246, 246, 246, 247, 247,1287 247, 248, 248, 248, 248, 249, 249, 249, 250, 250,1288 251, 251, 252, 251, 251, 251, 253, 253, 254, 254,1289 255, 255, 255, 255, 256, 256, 256, 256, 257, 257,1290 258, 258, 258, 258, 258, 259, 259, 260, 261, 262,1291 262, 263, 262, 264, 264, 265, 265, 266, 266, 267,1292 267, 267, 267, 267, 268, 268, 268, 268, 269, 269,1293 270, 270, 271, 271, 272, 272, 272, 272, 273, 273,1294 273, 273, 273, 274, 274, 274, 274, 274, 275, 275,1295 276, 276, 277, 277, 278, 278, 278, 279, 279, 279,1296 280, 280, 280, 281, 281, 281, 282, 282, 282, 282,1297 283, 283, 283, 284, 284, 285, 285, 285, 285, 285,1298 286, 286, 287, 287, 288, 288, 288, 288, 288, 289,1299 289, 289, 289, 290, 290, 290, 291, 292, 292, 294,1300 293, 293, 295, 295, 295, 296, 296, 297, 297, 297,1301 298, 298, 298, 298, 299, 299, 299, 300, 300, 301,1302 301, 302, 303, 302, 304, 304, 305, 305, 306, 306,1303 306, 307, 307, 308, 308, 309, 309, 310, 310, 311,1304 311, 311, 312, 311, 311, 313, 313, 313, 314, 314,1305 314, 314, 314, 314, 314, 314, 314, 315, 315, 315,1306 316, 317, 317, 318, 318, 319, 319, 320, 321, 321,1307 322, 322, 322, 323, 323, 323, 323, 324, 324, 324,1308 324, 325, 325, 326, 326, 326, 327, 327, 327, 327,1309 328, 328, 329, 329, 329, 330, 330, 330, 331, 331,1310 331, 332, 332, 332, 333, 333, 333, 334, 334, 334,1311 335, 335, 335, 336, 336, 336, 337, 337, 337, 337,1312 338, 338, 339, 339, 339, 340, 340, 340, 340, 341,1313 341, 341, 342, 342, 342, 342, 343, 343, 343, 344,1314 344, 344, 344, 345, 345, 345, 346, 346, 346, 346,1315 347, 347, 348, 348, 348, 349, 349, 350, 350, 351,1316 351, 351, 352, 352, 352, 352, 352, 353, 353, 353,1317 353, 354, 354, 354, 355, 355, 355, 356, 356, 356,1318 356, 357, 357, 357, 358, 358, 358, 358, 358, 359,1319 359, 359, 359, 360, 360, 360, 361, 361, 361, 362,1320 362, 362, 362, 362, 362, 363, 363, 363, 364, 364,1321 364, 364, 364, 365, 365, 365, 365, 366, 366, 367,1322 367, 367, 368, 368, 369, 369, 369, 369, 369, 369,1323 370, 370, 370, 370, 370, 370, 370, 370, 370, 370,1324 371, 371, 371, 371, 372, 372, 372, 373, 373, 374,1325 374, 374, 374, 374, 374, 375, 375, 375, 375, 375,1326 375, 376, 377, 377, 378, 378, 379, 3791327 };1328 1329 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */1330 static const yytype_uint8 yyr2[] =1331 {1332 0, 2, 0, 0, 1, 1, 1, 1, 1, 1,1333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1334 2, 1, 1, 1, 3, 3, 1, 6, 4, 3,1335 7, 2, 3, 7, 2, 2, 7, 4, 1, 3,1336 0, 1, 1, 3, 1, 2, 6, 3, 7, 3,1337 7, 2, 2, 2, 0, 2, 1, 1, 1, 2,1338 2, 2, 2, 2, 2, 4, 2, 4, 6, 1,1339 4, 4, 1, 1, 1, 1, 1, 1, 1, 4,1340 1, 3, 3, 3, 1, 3, 3, 1, 3, 3,1341 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,1342 1, 3, 1, 3, 1, 3, 1, 3, 1, 5,1343 4, 1, 1, 3, 0, 1, 1, 1, 1, 1,1344 1, 1, 1, 1, 1, 1, 1, 1, 6, 7,1345 1, 3, 1, 3, 0, 1, 1, 1, 1, 1,1346 1, 1, 1, 1, 6, 4, 2, 7, 1, 3,1347 1, 2, 1, 2, 1, 2, 2, 5, 7, 5,1348 9, 5, 9, 1, 3, 1, 1, 3, 3, 2,1349 1, 2, 2, 0, 1, 2, 3, 0, 1, 2,1350 3, 3, 4, 0, 1, 1, 2, 5, 7, 6,1351 6, 4, 3, 4, 2, 3, 2, 3, 3, 3,1352 3, 5, 3, 3, 4, 1, 5, 6, 5, 6,1353 9, 10, 9, 10, 2, 1, 2, 2, 2, 1,1354 6, 8, 10, 12, 14, 0, 1, 0, 1, 1,1355 3, 4, 7, 0, 1, 3, 1, 3, 1, 1,1356 1, 3, 1, 1, 1, 3, 0, 1, 3, 4,1357 1, 3, 1, 1, 3, 3, 3, 3, 3, 2,1358 3, 6, 3, 3, 4, 1, 2, 2, 3, 5,1359 7, 7, 5, 9, 2, 2, 5, 3, 5, 4,1360 3, 4, 4, 7, 3, 3, 3, 3, 4, 6,1361 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,1362 1, 2, 1, 1, 1, 1, 1, 1, 1, 0,1363 5, 1, 2, 3, 1, 2, 1, 1, 1, 1,1364 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1366 2, 2, 3, 3, 1, 3, 1, 2, 2, 2,1367 4, 4, 4, 4, 1, 2, 2, 3, 1, 2,1368 2, 1, 2, 2, 3, 1, 2, 2, 1, 1,1369 4, 2, 0, 6, 7, 2, 2, 2, 0, 2,1370 2, 3, 2, 3, 1, 2, 3, 2, 2, 4,1371 0, 1, 2, 2, 1, 0, 1, 2, 2, 5,1372 2, 0, 7, 2, 4, 0, 2, 0, 1, 1,1373 1, 5, 5, 5, 1, 5, 5, 9, 1, 5,1374 0, 1, 1, 5, 1, 1, 5, 5, 1, 3,1375 3, 4, 1, 1, 1, 1, 2, 1, 3, 3,1376 1, 2, 1, 3, 1, 1, 1, 1, 1, 1,1377 1, 1, 1, 1, 1, 2, 1, 1, 1, 2,1378 0, 2, 2, 1, 4, 0, 1, 2, 3, 4,1379 2, 2, 1, 2, 2, 5, 5, 7, 6, 1,1380 2, 2, 3, 1, 2, 2, 4, 2, 4, 0,1381 4, 2, 1, 1, 1, 0, 2, 5, 5, 13,1382 1, 1, 3, 3, 2, 3, 3, 2, 4, 1,1383 6, 9, 0, 11, 1, 3, 3, 3, 1, 1,1384 5, 2, 5, 0, 1, 1, 3, 0, 1, 1,1385 1, 1, 0, 6, 2, 1, 2, 4, 2, 3,1386 3, 3, 4, 5, 5, 5, 6, 1, 1, 1,1387 3, 0, 5, 0, 1, 1, 2, 6, 1, 3,1388 0, 1, 4, 1, 1, 1, 1, 2, 1, 2,1389 2, 1, 3, 2, 3, 3, 2, 4, 4, 3,1390 8, 3, 2, 1, 2, 6, 8, 3, 2, 3,1391 3, 4, 4, 3, 1, 1, 1, 4, 6, 3,1392 2, 3, 3, 4, 4, 3, 2, 1, 2, 2,1393 1, 3, 2, 3, 3, 2, 4, 4, 3, 6,1394 8, 3, 2, 1, 2, 2, 2, 3, 3, 2,1395 4, 4, 3, 6, 8, 3, 2, 1, 2, 2,1396 1, 1, 2, 3, 3, 2, 4, 6, 8, 1,1397 2, 2, 1, 2, 2, 3, 3, 1, 4, 4,1398 3, 5, 8, 3, 2, 3, 1, 5, 5, 6,1399 6, 1, 2, 2, 1, 2, 2, 3, 3, 1,1400 4, 4, 3, 5, 8, 3, 1, 2, 1, 2,1401 6, 5, 6, 7, 7, 1, 2, 2, 1, 2,1402 2, 3, 3, 1, 4, 4, 3, 8, 3, 1,1403 1, 2, 1, 1, 2, 3, 2, 3, 2, 3,1404 3, 2, 4, 3, 2, 3, 2, 4, 3, 2,1405 6, 6, 6, 7, 1, 2, 1, 1, 1, 2,1406 3, 2, 3, 2, 3, 3, 4, 2, 3, 4,1407 2, 5, 6, 6, 0, 1, 0, 21408 };1409 1410 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.1411 Performed when YYTABLE doesn't specify something else to do. Zero1412 means the default is an error. */1413 static const yytype_uint16 yydefact[] =1414 {1415 298, 298, 318, 316, 319, 317, 320, 321, 304, 306,1416 305, 0, 307, 332, 324, 329, 327, 328, 326, 325,1417 330, 331, 337, 338, 336, 333, 334, 335, 553, 553,1418 553, 0, 0, 0, 298, 225, 308, 322, 323, 9,1419 365, 0, 10, 16, 17, 0, 2, 72, 73, 571,1420 11, 298, 531, 529, 252, 3, 460, 3, 265, 0,1421 3, 3, 3, 253, 3, 0, 0, 0, 299, 300,1422 302, 298, 311, 314, 346, 290, 339, 344, 291, 354,1423 292, 361, 358, 368, 0, 0, 369, 293, 479, 483,1424 3, 3, 0, 2, 525, 530, 535, 303, 0, 0,1425 553, 583, 553, 2, 594, 595, 596, 298, 0, 737,1426 738, 0, 14, 0, 15, 298, 274, 275, 0, 299,1427 294, 295, 296, 297, 532, 309, 398, 554, 555, 376,1428 377, 14, 451, 452, 13, 447, 450, 0, 509, 504,1429 495, 451, 452, 0, 0, 534, 226, 0, 298, 0,1430 0, 0, 0, 0, 0, 0, 0, 298, 298, 0,1431 739, 299, 588, 600, 743, 736, 734, 741, 0, 0,1432 0, 259, 2, 0, 538, 445, 446, 444, 0, 0,1433 0, 0, 553, 0, 640, 641, 0, 0, 551, 547,1434 553, 568, 553, 553, 549, 2, 548, 553, 607, 553,1435 553, 610, 0, 0, 0, 298, 298, 316, 366, 2,1436 298, 266, 301, 312, 347, 359, 484, 0, 2, 0,1437 460, 267, 299, 340, 355, 362, 480, 0, 2, 0,1438 315, 341, 348, 349, 0, 356, 360, 363, 367, 452,1439 298, 378, 371, 375, 0, 400, 481, 485, 0, 0,1440 0, 1, 298, 2, 536, 582, 584, 298, 2, 747,1441 299, 750, 551, 551, 0, 299, 0, 0, 277, 553,1442 549, 2, 298, 0, 0, 298, 556, 2, 507, 2,1443 560, 0, 0, 0, 0, 0, 0, 21, 69, 4,1444 8, 19, 5, 6, 7, 0, 0, 298, 2, 74,1445 75, 76, 77, 57, 22, 58, 18, 26, 56, 78,1446 298, 0, 80, 84, 87, 90, 95, 98, 100, 102,1447 104, 106, 108, 112, 501, 23, 458, 500, 0, 456,1448 457, 0, 572, 587, 590, 593, 599, 602, 605, 2,1449 745, 298, 748, 2, 72, 298, 3, 432, 0, 440,1450 299, 298, 311, 339, 291, 354, 361, 3, 3, 414,1451 418, 428, 433, 479, 298, 434, 712, 713, 298, 435,1452 437, 2, 589, 601, 735, 2, 2, 254, 2, 465,1453 0, 463, 462, 461, 146, 2, 2, 256, 2, 2,1454 255, 2, 285, 2, 286, 0, 284, 0, 0, 0,1455 0, 0, 0, 0, 0, 0, 573, 612, 0, 460,1456 2, 567, 576, 666, 569, 570, 539, 298, 2, 606,1457 615, 608, 609, 0, 280, 298, 298, 345, 299, 0,1458 299, 298, 740, 744, 742, 540, 298, 551, 260, 268,1459 313, 0, 2, 541, 298, 505, 342, 343, 287, 357,1460 364, 0, 298, 0, 754, 405, 0, 482, 506, 257,1461 258, 526, 298, 442, 0, 298, 242, 0, 2, 244,1462 0, 299, 0, 262, 2, 263, 282, 0, 0, 2,1463 298, 551, 298, 492, 494, 493, 0, 0, 756, 0,1464 298, 0, 298, 496, 298, 566, 564, 565, 563, 0,1465 558, 561, 0, 0, 298, 64, 298, 78, 59, 298,1466 66, 298, 298, 62, 63, 2, 132, 0, 0, 454,1467 0, 453, 734, 298, 20, 31, 0, 34, 35, 40,1468 2, 0, 40, 118, 119, 120, 121, 122, 123, 124,1469 125, 126, 127, 117, 116, 0, 60, 61, 0, 0,1470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1471 0, 0, 0, 0, 0, 0, 0, 2, 652, 459,1472 649, 553, 553, 657, 486, 298, 2, 591, 592, 0,1473 603, 604, 0, 746, 749, 298, 298, 0, 714, 299,1474 718, 709, 710, 716, 0, 2, 2, 674, 553, 756,1475 623, 553, 553, 756, 553, 637, 553, 553, 688, 441,1476 671, 553, 553, 679, 686, 298, 436, 299, 0, 0,1477 298, 724, 299, 729, 756, 721, 298, 726, 756, 298,1478 298, 0, 0, 21, 2, 0, 22, 0, 466, 754,1479 0, 0, 472, 246, 0, 298, 0, 0, 0, 551,1480 575, 579, 581, 611, 614, 618, 621, 574, 613, 0,1481 288, 664, 0, 298, 281, 0, 0, 0, 0, 279,1482 2, 0, 264, 542, 298, 0, 0, 298, 2, 370,1483 390, 379, 0, 0, 384, 378, 755, 0, 0, 403,1484 0, 299, 3, 421, 3, 425, 424, 597, 0, 537,1485 298, 72, 3, 298, 440, 299, 3, 434, 435, 2,1486 0, 0, 0, 491, 310, 298, 0, 487, 489, 3,1487 2, 2, 0, 508, 3, 0, 560, 134, 0, 0,1488 227, 0, 0, 0, 0, 41, 0, 0, 298, 24,1489 0, 25, 0, 698, 703, 455, 695, 553, 553, 0,1490 114, 3, 2, 32, 0, 38, 0, 2, 29, 0,1491 113, 81, 82, 83, 85, 86, 88, 89, 93, 94,1492 91, 92, 96, 97, 99, 101, 103, 105, 107, 0,1493 0, 298, 0, 0, 0, 653, 654, 650, 651, 503,1494 502, 298, 0, 720, 298, 725, 299, 298, 668, 711,1495 667, 2, 298, 0, 0, 0, 0, 0, 0, 0,1496 0, 689, 0, 675, 626, 642, 676, 2, 622, 629,1497 438, 624, 625, 439, 2, 636, 645, 638, 639, 672,1498 673, 687, 715, 719, 717, 756, 272, 2, 751, 2,1499 429, 723, 728, 430, 3, 408, 3, 3, 3, 460,1500 0, 0, 2, 474, 471, 755, 0, 467, 2, 470,1501 473, 0, 298, 247, 269, 3, 276, 278, 0, 460,1502 2, 577, 578, 2, 616, 617, 0, 665, 543, 3,1503 351, 350, 353, 352, 298, 544, 0, 545, 378, 0,1504 0, 298, 0, 0, 698, 388, 391, 395, 553, 395,1505 394, 387, 380, 553, 382, 385, 298, 405, 399, 111,1506 406, 754, 0, 0, 443, 245, 0, 0, 3, 2,1507 674, 436, 0, 533, 0, 756, 757, 495, 0, 298,1508 298, 298, 0, 557, 559, 135, 0, 0, 220, 0,1509 0, 0, 228, 229, 65, 0, 67, 70, 71, 0,1510 133, 0, 0, 0, 699, 700, 696, 697, 465, 79,1511 115, 130, 3, 114, 0, 28, 40, 3, 0, 37,1512 110, 0, 3, 656, 660, 663, 655, 3, 598, 722,1513 727, 2, 72, 298, 3, 3, 299, 0, 3, 628,1514 632, 635, 644, 678, 682, 685, 298, 3, 627, 643,1515 677, 298, 298, 431, 298, 298, 0, 0, 0, 0,1516 261, 111, 0, 3, 3, 0, 468, 0, 464, 0,1517 0, 250, 298, 0, 0, 134, 0, 0, 0, 0,1518 0, 134, 0, 0, 114, 114, 21, 0, 0, 3,1519 136, 137, 2, 148, 138, 139, 140, 141, 142, 143,1520 150, 152, 0, 0, 0, 289, 298, 298, 553, 0,1521 546, 298, 381, 383, 0, 397, 699, 392, 396, 393,1522 386, 390, 373, 404, 0, 585, 2, 670, 669, 0,1523 675, 2, 488, 490, 510, 3, 518, 519, 0, 2,1524 514, 3, 3, 0, 0, 562, 227, 0, 0, 0,1525 227, 0, 0, 702, 706, 708, 701, 754, 114, 0,1526 3, 54, 0, 54, 54, 3, 42, 44, 39, 0,1527 3, 109, 0, 2, 658, 659, 0, 298, 0, 0,1528 0, 3, 644, 0, 2, 630, 631, 2, 646, 2,1529 680, 681, 0, 0, 72, 0, 3, 3, 3, 3,1530 416, 415, 419, 753, 2, 2, 752, 0, 0, 0,1531 0, 3, 469, 3, 0, 248, 151, 3, 299, 298,1532 0, 0, 0, 0, 2, 0, 196, 0, 194, 0,1533 0, 0, 0, 0, 0, 0, 553, 0, 156, 153,1534 298, 0, 0, 271, 283, 3, 3, 552, 619, 374,1535 389, 402, 298, 270, 298, 0, 521, 498, 298, 0,1536 0, 497, 512, 0, 0, 0, 221, 0, 230, 68,1537 2, 704, 705, 0, 131, 128, 0, 51, 2, 45,1538 52, 53, 0, 0, 0, 0, 27, 0, 661, 298,1539 586, 730, 731, 732, 0, 683, 298, 298, 298, 3,1540 3, 0, 691, 0, 0, 0, 0, 298, 298, 3,1541 550, 475, 476, 0, 251, 299, 0, 0, 0, 0,1542 298, 197, 195, 192, 0, 198, 0, 0, 0, 0,1543 202, 205, 203, 199, 0, 200, 134, 40, 149, 147,1544 249, 0, 0, 423, 427, 426, 0, 515, 2, 516,1545 2, 517, 511, 298, 233, 0, 231, 0, 233, 298,1546 36, 129, 55, 0, 43, 33, 2, 49, 2, 47,1547 30, 3, 733, 3, 3, 3, 0, 0, 690, 692,1548 633, 647, 273, 2, 413, 3, 412, 0, 478, 134,1549 0, 0, 134, 3, 0, 134, 193, 0, 2, 2,1550 214, 204, 0, 0, 0, 145, 0, 580, 620, 2,1551 0, 0, 2, 234, 0, 0, 222, 0, 3, 3,1552 0, 0, 0, 0, 0, 0, 693, 694, 298, 0,1553 477, 157, 0, 0, 2, 170, 134, 159, 0, 187,1554 0, 134, 0, 2, 161, 0, 2, 0, 2, 2,1555 2, 201, 37, 298, 520, 522, 513, 0, 0, 0,1556 0, 0, 0, 3, 3, 662, 634, 648, 684, 417,1557 134, 163, 166, 0, 165, 169, 3, 172, 171, 0,1558 134, 189, 134, 3, 0, 298, 0, 298, 0, 2,1559 0, 2, 144, 2, 235, 236, 0, 232, 223, 707,1560 46, 0, 0, 158, 0, 0, 168, 238, 173, 2,1561 240, 188, 0, 191, 177, 206, 3, 215, 219, 208,1562 3, 0, 298, 0, 298, 0, 0, 0, 50, 48,1563 164, 167, 134, 0, 174, 298, 134, 134, 0, 178,1564 0, 0, 698, 216, 217, 218, 0, 207, 3, 209,1565 3, 298, 224, 237, 154, 175, 160, 134, 241, 190,1566 185, 183, 179, 162, 134, 0, 699, 0, 0, 0,1567 0, 155, 176, 186, 180, 184, 183, 181, 3, 3,1568 0, 0, 499, 182, 210, 212, 3, 3, 211, 2131569 };1570 1571 /* YYDEFGOTO[NTERM-NUM]. */1572 static const yytype_int16 yydefgoto[] =1573 {1574 -1, 802, 466, 303, 49, 135, 136, 304, 305, 306,1575 307, 308, 754, 755, 1115, 1116, 1117, 1227, 309, 380,1576 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,1577 321, 322, 323, 1012, 516, 961, 545, 325, 962, 935,1578 1038, 1504, 1040, 1041, 1042, 1043, 1505, 1044, 1045, 1422,1579 1423, 1385, 1386, 1387, 1483, 1484, 1488, 1489, 1524, 1525,1580 1046, 1344, 1047, 1048, 1280, 1281, 1282, 1466, 1049, 147,1581 941, 942, 943, 1364, 1446, 1458, 1459, 467, 468, 862,1582 863, 1020, 53, 54, 55, 56, 57, 347, 159, 60,1583 61, 62, 63, 64, 349, 66, 67, 265, 69, 70,1584 275, 351, 352, 73, 74, 75, 120, 77, 205, 354,1585 121, 80, 122, 82, 83, 453, 84, 452, 681, 682,1586 683, 895, 1067, 896, 85, 86, 456, 454, 689, 844,1587 845, 357, 358, 692, 693, 694, 359, 360, 361, 362,1588 464, 178, 137, 138, 520, 327, 171, 638, 639, 640,1589 641, 642, 87, 123, 89, 487, 488, 927, 489, 278,1590 493, 328, 90, 139, 140, 91, 1303, 1089, 1090, 1091,1591 1092, 92, 93, 710, 94, 274, 95, 96, 188, 1014,1592 672, 411, 127, 97, 499, 500, 501, 189, 269, 191,1593 192, 193, 270, 100, 101, 102, 103, 104, 105, 106,1594 196, 197, 198, 199, 200, 814, 600, 601, 602, 603,1595 201, 605, 606, 607, 569, 570, 571, 572, 744, 107,1596 609, 610, 611, 612, 613, 614, 955, 746, 747, 748,1597 590, 365, 366, 367, 368, 329, 165, 109, 110, 111,1598 370, 687, 7171599 };1600 1601 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing1602 STATE-NUM. */1603 913 #define YYPACT_NINF -1267 914 915 #define yypact_value_is_default(Yystate) \ 916 (!!((Yystate) == (-1267))) 917 918 #define YYTABLE_NINF -529 919 920 #define yytable_value_is_error(Yytable_value) \ 921 0 922 923 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 924 STATE-NUM. */ 1604 925 static const yytype_int16 yypact[] = 1605 926 { … … 1760 1081 }; 1761 1082 1762 /* YYPGOTO[NTERM-NUM]. */ 1083 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1084 Performed when YYTABLE does not specify something else to do. Zero 1085 means the default is an error. */ 1086 static const yytype_uint16 yydefact[] = 1087 { 1088 298, 298, 318, 316, 319, 317, 320, 321, 304, 306, 1089 305, 0, 307, 332, 324, 329, 327, 328, 326, 325, 1090 330, 331, 337, 338, 336, 333, 334, 335, 553, 553, 1091 553, 0, 0, 0, 298, 225, 308, 322, 323, 9, 1092 365, 0, 10, 16, 17, 0, 2, 72, 73, 571, 1093 11, 298, 531, 529, 252, 3, 460, 3, 265, 0, 1094 3, 3, 3, 253, 3, 0, 0, 0, 299, 300, 1095 302, 298, 311, 314, 346, 290, 339, 344, 291, 354, 1096 292, 361, 358, 368, 0, 0, 369, 293, 479, 483, 1097 3, 3, 0, 2, 525, 530, 535, 303, 0, 0, 1098 553, 583, 553, 2, 594, 595, 596, 298, 0, 737, 1099 738, 0, 14, 0, 15, 298, 274, 275, 0, 299, 1100 294, 295, 296, 297, 532, 309, 398, 554, 555, 376, 1101 377, 14, 451, 452, 13, 447, 450, 0, 509, 504, 1102 495, 451, 452, 0, 0, 534, 226, 0, 298, 0, 1103 0, 0, 0, 0, 0, 0, 0, 298, 298, 0, 1104 739, 299, 588, 600, 743, 736, 734, 741, 0, 0, 1105 0, 259, 2, 0, 538, 445, 446, 444, 0, 0, 1106 0, 0, 553, 0, 640, 641, 0, 0, 551, 547, 1107 553, 568, 553, 553, 549, 2, 548, 553, 607, 553, 1108 553, 610, 0, 0, 0, 298, 298, 316, 366, 2, 1109 298, 266, 301, 312, 347, 359, 484, 0, 2, 0, 1110 460, 267, 299, 340, 355, 362, 480, 0, 2, 0, 1111 315, 341, 348, 349, 0, 356, 360, 363, 367, 452, 1112 298, 378, 371, 375, 0, 400, 481, 485, 0, 0, 1113 0, 1, 298, 2, 536, 582, 584, 298, 2, 747, 1114 299, 750, 551, 551, 0, 299, 0, 0, 277, 553, 1115 549, 2, 298, 0, 0, 298, 556, 2, 507, 2, 1116 560, 0, 0, 0, 0, 0, 0, 21, 69, 4, 1117 8, 19, 5, 6, 7, 0, 0, 298, 2, 74, 1118 75, 76, 77, 57, 22, 58, 18, 26, 56, 78, 1119 298, 0, 80, 84, 87, 90, 95, 98, 100, 102, 1120 104, 106, 108, 112, 501, 23, 458, 500, 0, 456, 1121 457, 0, 572, 587, 590, 593, 599, 602, 605, 2, 1122 745, 298, 748, 2, 72, 298, 3, 432, 0, 440, 1123 299, 298, 311, 339, 291, 354, 361, 3, 3, 414, 1124 418, 428, 433, 479, 298, 434, 712, 713, 298, 435, 1125 437, 2, 589, 601, 735, 2, 2, 254, 2, 465, 1126 0, 463, 462, 461, 146, 2, 2, 256, 2, 2, 1127 255, 2, 285, 2, 286, 0, 284, 0, 0, 0, 1128 0, 0, 0, 0, 0, 0, 573, 612, 0, 460, 1129 2, 567, 576, 666, 569, 570, 539, 298, 2, 606, 1130 615, 608, 609, 0, 280, 298, 298, 345, 299, 0, 1131 299, 298, 740, 744, 742, 540, 298, 551, 260, 268, 1132 313, 0, 2, 541, 298, 505, 342, 343, 287, 357, 1133 364, 0, 298, 0, 754, 405, 0, 482, 506, 257, 1134 258, 526, 298, 442, 0, 298, 242, 0, 2, 244, 1135 0, 299, 0, 262, 2, 263, 282, 0, 0, 2, 1136 298, 551, 298, 492, 494, 493, 0, 0, 756, 0, 1137 298, 0, 298, 496, 298, 566, 564, 565, 563, 0, 1138 558, 561, 0, 0, 298, 64, 298, 78, 59, 298, 1139 66, 298, 298, 62, 63, 2, 132, 0, 0, 454, 1140 0, 453, 734, 298, 20, 31, 0, 34, 35, 40, 1141 2, 0, 40, 118, 119, 120, 121, 122, 123, 124, 1142 125, 126, 127, 117, 116, 0, 60, 61, 0, 0, 1143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144 0, 0, 0, 0, 0, 0, 0, 2, 652, 459, 1145 649, 553, 553, 657, 486, 298, 2, 591, 592, 0, 1146 603, 604, 0, 746, 749, 298, 298, 0, 714, 299, 1147 718, 709, 710, 716, 0, 2, 2, 674, 553, 756, 1148 623, 553, 553, 756, 553, 637, 553, 553, 688, 441, 1149 671, 553, 553, 679, 686, 298, 436, 299, 0, 0, 1150 298, 724, 299, 729, 756, 721, 298, 726, 756, 298, 1151 298, 0, 0, 21, 2, 0, 22, 0, 466, 754, 1152 0, 0, 472, 246, 0, 298, 0, 0, 0, 551, 1153 575, 579, 581, 611, 614, 618, 621, 574, 613, 0, 1154 288, 664, 0, 298, 281, 0, 0, 0, 0, 279, 1155 2, 0, 264, 542, 298, 0, 0, 298, 2, 370, 1156 390, 379, 0, 0, 384, 378, 755, 0, 0, 403, 1157 0, 299, 3, 421, 3, 425, 424, 597, 0, 537, 1158 298, 72, 3, 298, 440, 299, 3, 434, 435, 2, 1159 0, 0, 0, 491, 310, 298, 0, 487, 489, 3, 1160 2, 2, 0, 508, 3, 0, 560, 134, 0, 0, 1161 227, 0, 0, 0, 0, 41, 0, 0, 298, 24, 1162 0, 25, 0, 698, 703, 455, 695, 553, 553, 0, 1163 114, 3, 2, 32, 0, 38, 0, 2, 29, 0, 1164 113, 81, 82, 83, 85, 86, 88, 89, 93, 94, 1165 91, 92, 96, 97, 99, 101, 103, 105, 107, 0, 1166 0, 298, 0, 0, 0, 653, 654, 650, 651, 503, 1167 502, 298, 0, 720, 298, 725, 299, 298, 668, 711, 1168 667, 2, 298, 0, 0, 0, 0, 0, 0, 0, 1169 0, 689, 0, 675, 626, 642, 676, 2, 622, 629, 1170 438, 624, 625, 439, 2, 636, 645, 638, 639, 672, 1171 673, 687, 715, 719, 717, 756, 272, 2, 751, 2, 1172 429, 723, 728, 430, 3, 408, 3, 3, 3, 460, 1173 0, 0, 2, 474, 471, 755, 0, 467, 2, 470, 1174 473, 0, 298, 247, 269, 3, 276, 278, 0, 460, 1175 2, 577, 578, 2, 616, 617, 0, 665, 543, 3, 1176 351, 350, 353, 352, 298, 544, 0, 545, 378, 0, 1177 0, 298, 0, 0, 698, 388, 391, 395, 553, 395, 1178 394, 387, 380, 553, 382, 385, 298, 405, 399, 111, 1179 406, 754, 0, 0, 443, 245, 0, 0, 3, 2, 1180 674, 436, 0, 533, 0, 756, 757, 495, 0, 298, 1181 298, 298, 0, 557, 559, 135, 0, 0, 220, 0, 1182 0, 0, 228, 229, 65, 0, 67, 70, 71, 0, 1183 133, 0, 0, 0, 699, 700, 696, 697, 465, 79, 1184 115, 130, 3, 114, 0, 28, 40, 3, 0, 37, 1185 110, 0, 3, 656, 660, 663, 655, 3, 598, 722, 1186 727, 2, 72, 298, 3, 3, 299, 0, 3, 628, 1187 632, 635, 644, 678, 682, 685, 298, 3, 627, 643, 1188 677, 298, 298, 431, 298, 298, 0, 0, 0, 0, 1189 261, 111, 0, 3, 3, 0, 468, 0, 464, 0, 1190 0, 250, 298, 0, 0, 134, 0, 0, 0, 0, 1191 0, 134, 0, 0, 114, 114, 21, 0, 0, 3, 1192 136, 137, 2, 148, 138, 139, 140, 141, 142, 143, 1193 150, 152, 0, 0, 0, 289, 298, 298, 553, 0, 1194 546, 298, 381, 383, 0, 397, 699, 392, 396, 393, 1195 386, 390, 373, 404, 0, 585, 2, 670, 669, 0, 1196 675, 2, 488, 490, 510, 3, 518, 519, 0, 2, 1197 514, 3, 3, 0, 0, 562, 227, 0, 0, 0, 1198 227, 0, 0, 702, 706, 708, 701, 754, 114, 0, 1199 3, 54, 0, 54, 54, 3, 42, 44, 39, 0, 1200 3, 109, 0, 2, 658, 659, 0, 298, 0, 0, 1201 0, 3, 644, 0, 2, 630, 631, 2, 646, 2, 1202 680, 681, 0, 0, 72, 0, 3, 3, 3, 3, 1203 416, 415, 419, 753, 2, 2, 752, 0, 0, 0, 1204 0, 3, 469, 3, 0, 248, 151, 3, 299, 298, 1205 0, 0, 0, 0, 2, 0, 196, 0, 194, 0, 1206 0, 0, 0, 0, 0, 0, 553, 0, 156, 153, 1207 298, 0, 0, 271, 283, 3, 3, 552, 619, 374, 1208 389, 402, 298, 270, 298, 0, 521, 498, 298, 0, 1209 0, 497, 512, 0, 0, 0, 221, 0, 230, 68, 1210 2, 704, 705, 0, 131, 128, 0, 51, 2, 45, 1211 52, 53, 0, 0, 0, 0, 27, 0, 661, 298, 1212 586, 730, 731, 732, 0, 683, 298, 298, 298, 3, 1213 3, 0, 691, 0, 0, 0, 0, 298, 298, 3, 1214 550, 475, 476, 0, 251, 299, 0, 0, 0, 0, 1215 298, 197, 195, 192, 0, 198, 0, 0, 0, 0, 1216 202, 205, 203, 199, 0, 200, 134, 40, 149, 147, 1217 249, 0, 0, 423, 427, 426, 0, 515, 2, 516, 1218 2, 517, 511, 298, 233, 0, 231, 0, 233, 298, 1219 36, 129, 55, 0, 43, 33, 2, 49, 2, 47, 1220 30, 3, 733, 3, 3, 3, 0, 0, 690, 692, 1221 633, 647, 273, 2, 413, 3, 412, 0, 478, 134, 1222 0, 0, 134, 3, 0, 134, 193, 0, 2, 2, 1223 214, 204, 0, 0, 0, 145, 0, 580, 620, 2, 1224 0, 0, 2, 234, 0, 0, 222, 0, 3, 3, 1225 0, 0, 0, 0, 0, 0, 693, 694, 298, 0, 1226 477, 157, 0, 0, 2, 170, 134, 159, 0, 187, 1227 0, 134, 0, 2, 161, 0, 2, 0, 2, 2, 1228 2, 201, 37, 298, 520, 522, 513, 0, 0, 0, 1229 0, 0, 0, 3, 3, 662, 634, 648, 684, 417, 1230 134, 163, 166, 0, 165, 169, 3, 172, 171, 0, 1231 134, 189, 134, 3, 0, 298, 0, 298, 0, 2, 1232 0, 2, 144, 2, 235, 236, 0, 232, 223, 707, 1233 46, 0, 0, 158, 0, 0, 168, 238, 173, 2, 1234 240, 188, 0, 191, 177, 206, 3, 215, 219, 208, 1235 3, 0, 298, 0, 298, 0, 0, 0, 50, 48, 1236 164, 167, 134, 0, 174, 298, 134, 134, 0, 178, 1237 0, 0, 698, 216, 217, 218, 0, 207, 3, 209, 1238 3, 298, 224, 237, 154, 175, 160, 134, 241, 190, 1239 185, 183, 179, 162, 134, 0, 699, 0, 0, 0, 1240 0, 155, 176, 186, 180, 184, 183, 181, 3, 3, 1241 0, 0, 499, 182, 210, 212, 3, 3, 211, 213 1242 }; 1243 1244 /* YYPGOTO[NTERM-NUM]. */ 1763 1245 static const yytype_int16 yypgoto[] = 1764 1246 { … … 1790 1272 }; 1791 1273 1792 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1793 positive, shift that token. If negative, reduce the rule which 1794 number is the opposite. If YYTABLE_NINF, syntax error. */ 1795 #define YYTABLE_NINF -529 1274 /* YYDEFGOTO[NTERM-NUM]. */ 1275 static const yytype_int16 yydefgoto[] = 1276 { 1277 -1, 802, 466, 303, 49, 135, 136, 304, 305, 306, 1278 307, 308, 754, 755, 1115, 1116, 1117, 1227, 309, 380, 1279 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 1280 321, 322, 323, 1012, 516, 961, 545, 325, 962, 935, 1281 1038, 1504, 1040, 1041, 1042, 1043, 1505, 1044, 1045, 1422, 1282 1423, 1385, 1386, 1387, 1483, 1484, 1488, 1489, 1524, 1525, 1283 1046, 1344, 1047, 1048, 1280, 1281, 1282, 1466, 1049, 147, 1284 941, 942, 943, 1364, 1446, 1458, 1459, 467, 468, 862, 1285 863, 1020, 53, 54, 55, 56, 57, 347, 159, 60, 1286 61, 62, 63, 64, 349, 66, 67, 265, 69, 70, 1287 275, 351, 352, 73, 74, 75, 120, 77, 205, 354, 1288 121, 80, 122, 82, 83, 453, 84, 452, 681, 682, 1289 683, 895, 1067, 896, 85, 86, 456, 454, 689, 844, 1290 845, 357, 358, 692, 693, 694, 359, 360, 361, 362, 1291 464, 178, 137, 138, 520, 327, 171, 638, 639, 640, 1292 641, 642, 87, 123, 89, 487, 488, 927, 489, 278, 1293 493, 328, 90, 139, 140, 91, 1303, 1089, 1090, 1091, 1294 1092, 92, 93, 710, 94, 274, 95, 96, 188, 1014, 1295 672, 411, 127, 97, 499, 500, 501, 189, 269, 191, 1296 192, 193, 270, 100, 101, 102, 103, 104, 105, 106, 1297 196, 197, 198, 199, 200, 814, 600, 601, 602, 603, 1298 201, 605, 606, 607, 569, 570, 571, 572, 744, 107, 1299 609, 610, 611, 612, 613, 614, 955, 746, 747, 748, 1300 590, 365, 366, 367, 368, 329, 165, 109, 110, 111, 1301 370, 687, 717 1302 }; 1303 1304 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1305 positive, shift that token. If negative, reduce the rule whose 1306 number is the opposite. If YYTABLE_NINF, syntax error. */ 1796 1307 static const yytype_int16 yytable[] = 1797 1308 { … … 2861 2372 }; 2862 2373 2863 #define yypact_value_is_default(yystate) \2864 ((yystate) == (-1267))2865 2866 #define yytable_value_is_error(yytable_value) \2867 YYID (0)2868 2869 2374 static const yytype_int16 yycheck[] = 2870 2375 { … … 3934 3439 }; 3935 3440 3936 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing3937 symbol of state STATE-NUM. */3441 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3442 symbol of state STATE-NUM. */ 3938 3443 static const yytype_uint16 yystos[] = 3939 3444 { … … 4094 3599 }; 4095 3600 4096 #define yyerrok (yyerrstatus = 0) 4097 #define yyclearin (yychar = YYEMPTY) 4098 #define YYEMPTY (-2) 4099 #define YYEOF 0 4100 4101 #define YYACCEPT goto yyacceptlab 4102 #define YYABORT goto yyabortlab 4103 #define YYERROR goto yyerrorlab 4104 4105 4106 /* Like YYERROR except do call yyerror. This remains here temporarily 4107 to ease the transition to the new meaning of YYERROR, for GCC. 4108 Once GCC version 2 has supplanted version 1, this can go. However, 4109 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4110 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4111 discussed. */ 4112 4113 #define YYFAIL goto yyerrlab 4114 #if defined YYFAIL 4115 /* This is here to suppress warnings from the GCC cpp's 4116 -Wunused-macros. Normally we don't worry about that warning, but 4117 some users do, and we want to make it easy for users to remove 4118 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4119 #endif 3601 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3602 static const yytype_uint16 yyr1[] = 3603 { 3604 0, 137, 138, 139, 140, 140, 140, 140, 140, 141, 3605 141, 141, 142, 142, 143, 143, 144, 144, 145, 146, 3606 146, 147, 147, 147, 147, 147, 148, 148, 148, 148, 3607 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, 3608 150, 150, 151, 151, 152, 152, 152, 152, 152, 152, 3609 152, 153, 153, 153, 154, 154, 155, 155, 155, 155, 3610 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 3611 155, 155, 156, 156, 157, 157, 157, 157, 158, 158, 3612 159, 159, 159, 159, 160, 160, 160, 161, 161, 161, 3613 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, 3614 165, 165, 166, 166, 167, 167, 168, 168, 169, 169, 3615 169, 170, 171, 171, 172, 172, 173, 173, 173, 173, 3616 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 3617 175, 175, 176, 176, 177, 177, 178, 178, 178, 178, 3618 178, 178, 178, 178, 178, 179, 180, 180, 181, 181, 3619 182, 182, 182, 182, 183, 183, 184, 185, 185, 185, 3620 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 3621 189, 189, 190, 191, 191, 192, 192, 193, 193, 194, 3622 194, 194, 194, 195, 195, 196, 196, 197, 197, 197, 3623 198, 198, 199, 199, 199, 199, 199, 199, 199, 199, 3624 199, 199, 200, 200, 200, 201, 201, 201, 201, 201, 3625 202, 202, 202, 202, 203, 204, 204, 204, 204, 204, 3626 205, 205, 205, 205, 205, 206, 206, 207, 207, 208, 3627 208, 209, 209, 210, 210, 210, 211, 211, 212, 212, 3628 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 3629 218, 218, 219, 219, 220, 220, 220, 220, 220, 221, 3630 221, 221, 222, 222, 222, 223, 223, 223, 223, 223, 3631 224, 224, 225, 225, 226, 226, 226, 227, 227, 227, 3632 227, 227, 228, 228, 229, 229, 229, 229, 230, 230, 3633 231, 231, 231, 231, 232, 232, 232, 232, 233, 233, 3634 234, 234, 235, 235, 236, 236, 236, 236, 236, 237, 3635 236, 238, 238, 238, 239, 239, 240, 240, 240, 240, 3636 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 3637 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 3638 242, 242, 242, 242, 243, 243, 244, 244, 244, 244, 3639 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 3640 247, 248, 248, 248, 248, 249, 249, 249, 250, 250, 3641 251, 251, 252, 251, 251, 251, 253, 253, 254, 254, 3642 255, 255, 255, 255, 256, 256, 256, 256, 257, 257, 3643 258, 258, 258, 258, 258, 259, 259, 260, 261, 262, 3644 262, 263, 262, 264, 264, 265, 265, 266, 266, 267, 3645 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, 3646 270, 270, 271, 271, 272, 272, 272, 272, 273, 273, 3647 273, 273, 273, 274, 274, 274, 274, 274, 275, 275, 3648 276, 276, 277, 277, 278, 278, 278, 279, 279, 279, 3649 280, 280, 280, 281, 281, 281, 282, 282, 282, 282, 3650 283, 283, 283, 284, 284, 285, 285, 285, 285, 285, 3651 286, 286, 287, 287, 288, 288, 288, 288, 288, 289, 3652 289, 289, 289, 290, 290, 290, 291, 292, 292, 294, 3653 293, 293, 295, 295, 295, 296, 296, 297, 297, 297, 3654 298, 298, 298, 298, 299, 299, 299, 300, 300, 301, 3655 301, 302, 303, 302, 304, 304, 305, 305, 306, 306, 3656 306, 307, 307, 308, 308, 309, 309, 310, 310, 311, 3657 311, 311, 312, 311, 311, 313, 313, 313, 314, 314, 3658 314, 314, 314, 314, 314, 314, 314, 315, 315, 315, 3659 316, 317, 317, 318, 318, 319, 319, 320, 321, 321, 3660 322, 322, 322, 323, 323, 323, 323, 324, 324, 324, 3661 324, 325, 325, 326, 326, 326, 327, 327, 327, 327, 3662 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 3663 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 3664 335, 335, 335, 336, 336, 336, 337, 337, 337, 337, 3665 338, 338, 339, 339, 339, 340, 340, 340, 340, 341, 3666 341, 341, 342, 342, 342, 342, 343, 343, 343, 344, 3667 344, 344, 344, 345, 345, 345, 346, 346, 346, 346, 3668 347, 347, 348, 348, 348, 349, 349, 350, 350, 351, 3669 351, 351, 352, 352, 352, 352, 352, 353, 353, 353, 3670 353, 354, 354, 354, 355, 355, 355, 356, 356, 356, 3671 356, 357, 357, 357, 358, 358, 358, 358, 358, 359, 3672 359, 359, 359, 360, 360, 360, 361, 361, 361, 362, 3673 362, 362, 362, 362, 362, 363, 363, 363, 364, 364, 3674 364, 364, 364, 365, 365, 365, 365, 366, 366, 367, 3675 367, 367, 368, 368, 369, 369, 369, 369, 369, 369, 3676 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 3677 371, 371, 371, 371, 372, 372, 372, 373, 373, 374, 3678 374, 374, 374, 374, 374, 375, 375, 375, 375, 375, 3679 375, 376, 377, 377, 378, 378, 379, 379 3680 }; 3681 3682 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3683 static const yytype_uint8 yyr2[] = 3684 { 3685 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3686 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3687 2, 1, 1, 1, 3, 3, 1, 6, 4, 3, 3688 7, 2, 3, 7, 2, 2, 7, 4, 1, 3, 3689 0, 1, 1, 3, 1, 2, 6, 3, 7, 3, 3690 7, 2, 2, 2, 0, 2, 1, 1, 1, 2, 3691 2, 2, 2, 2, 2, 4, 2, 4, 6, 1, 3692 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, 3693 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3694 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3695 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 3696 4, 1, 1, 3, 0, 1, 1, 1, 1, 1, 3697 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 3698 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, 3699 1, 1, 1, 1, 6, 4, 2, 7, 1, 3, 3700 1, 2, 1, 2, 1, 2, 2, 5, 7, 5, 3701 9, 5, 9, 1, 3, 1, 1, 3, 3, 2, 3702 1, 2, 2, 0, 1, 2, 3, 0, 1, 2, 3703 3, 3, 4, 0, 1, 1, 2, 5, 7, 6, 3704 6, 4, 3, 4, 2, 3, 2, 3, 3, 3, 3705 3, 5, 3, 3, 4, 1, 5, 6, 5, 6, 3706 9, 10, 9, 10, 2, 1, 2, 2, 2, 1, 3707 6, 8, 10, 12, 14, 0, 1, 0, 1, 1, 3708 3, 4, 7, 0, 1, 3, 1, 3, 1, 1, 3709 1, 3, 1, 1, 1, 3, 0, 1, 3, 4, 3710 1, 3, 1, 1, 3, 3, 3, 3, 3, 2, 3711 3, 6, 3, 3, 4, 1, 2, 2, 3, 5, 3712 7, 7, 5, 9, 2, 2, 5, 3, 5, 4, 3713 3, 4, 4, 7, 3, 3, 3, 3, 4, 6, 3714 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 3715 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 3716 5, 1, 2, 3, 1, 2, 1, 1, 1, 1, 3717 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3718 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3719 2, 2, 3, 3, 1, 3, 1, 2, 2, 2, 3720 4, 4, 4, 4, 1, 2, 2, 3, 1, 2, 3721 2, 1, 2, 2, 3, 1, 2, 2, 1, 1, 3722 4, 2, 0, 6, 7, 2, 2, 2, 0, 2, 3723 2, 3, 2, 3, 1, 2, 3, 2, 2, 4, 3724 0, 1, 2, 2, 1, 0, 1, 2, 2, 5, 3725 2, 0, 7, 2, 4, 0, 2, 0, 1, 1, 3726 1, 5, 5, 5, 1, 5, 5, 9, 1, 5, 3727 0, 1, 1, 5, 1, 1, 5, 5, 1, 3, 3728 3, 4, 1, 1, 1, 1, 2, 1, 3, 3, 3729 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3730 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 3731 0, 2, 2, 1, 4, 0, 1, 2, 3, 4, 3732 2, 2, 1, 2, 2, 5, 5, 7, 6, 1, 3733 2, 2, 3, 1, 2, 2, 4, 2, 4, 0, 3734 4, 2, 1, 1, 1, 0, 2, 5, 5, 13, 3735 1, 1, 3, 3, 2, 3, 3, 2, 4, 1, 3736 6, 9, 0, 11, 1, 3, 3, 3, 1, 1, 3737 5, 2, 5, 0, 1, 1, 3, 0, 1, 1, 3738 1, 1, 0, 6, 2, 1, 2, 4, 2, 3, 3739 3, 3, 4, 5, 5, 5, 6, 1, 1, 1, 3740 3, 0, 5, 0, 1, 1, 2, 6, 1, 3, 3741 0, 1, 4, 1, 1, 1, 1, 2, 1, 2, 3742 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 3743 8, 3, 2, 1, 2, 6, 8, 3, 2, 3, 3744 3, 4, 4, 3, 1, 1, 1, 4, 6, 3, 3745 2, 3, 3, 4, 4, 3, 2, 1, 2, 2, 3746 1, 3, 2, 3, 3, 2, 4, 4, 3, 6, 3747 8, 3, 2, 1, 2, 2, 2, 3, 3, 2, 3748 4, 4, 3, 6, 8, 3, 2, 1, 2, 2, 3749 1, 1, 2, 3, 3, 2, 4, 6, 8, 1, 3750 2, 2, 1, 2, 2, 3, 3, 1, 4, 4, 3751 3, 5, 8, 3, 2, 3, 1, 5, 5, 6, 3752 6, 1, 2, 2, 1, 2, 2, 3, 3, 1, 3753 4, 4, 3, 5, 8, 3, 1, 2, 1, 2, 3754 6, 5, 6, 7, 7, 1, 2, 2, 1, 2, 3755 2, 3, 3, 1, 4, 4, 3, 8, 3, 1, 3756 1, 2, 1, 1, 2, 3, 2, 3, 2, 3, 3757 3, 2, 4, 3, 2, 3, 2, 4, 3, 2, 3758 6, 6, 6, 7, 1, 2, 1, 1, 1, 2, 3759 3, 2, 3, 2, 3, 3, 4, 2, 3, 4, 3760 2, 5, 6, 6, 0, 1, 0, 2 3761 }; 3762 3763 3764 #define yyerrok (yyerrstatus = 0) 3765 #define yyclearin (yychar = YYEMPTY) 3766 #define YYEMPTY (-2) 3767 #define YYEOF 0 3768 3769 #define YYACCEPT goto yyacceptlab 3770 #define YYABORT goto yyabortlab 3771 #define YYERROR goto yyerrorlab 3772 4120 3773 4121 3774 #define YYRECOVERING() (!!yyerrstatus) 4122 3775 4123 #define YYBACKUP(Token, Value) \ 4124 do \ 4125 if (yychar == YYEMPTY && yylen == 1) \ 4126 { \ 4127 yychar = (Token); \ 4128 yylval = (Value); \ 4129 YYPOPSTACK (1); \ 4130 goto yybackup; \ 4131 } \ 4132 else \ 4133 { \ 3776 #define YYBACKUP(Token, Value) \ 3777 do \ 3778 if (yychar == YYEMPTY) \ 3779 { \ 3780 yychar = (Token); \ 3781 yylval = (Value); \ 3782 YYPOPSTACK (yylen); \ 3783 yystate = *yyssp; \ 3784 goto yybackup; \ 3785 } \ 3786 else \ 3787 { \ 4134 3788 yyerror (YY_("syntax error: cannot back up")); \ 4135 YYERROR; \ 4136 } \ 4137 while (YYID (0)) 4138 4139 4140 #define YYTERROR 1 4141 #define YYERRCODE 256 4142 4143 4144 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4145 If N is 0, then set CURRENT to the empty location which ends 4146 the previous symbol: RHS[0] (always defined). */ 4147 4148 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4149 #ifndef YYLLOC_DEFAULT 4150 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4151 do \ 4152 if (YYID (N)) \ 4153 { \ 4154 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4155 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4156 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4157 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4158 } \ 4159 else \ 4160 { \ 4161 (Current).first_line = (Current).last_line = \ 4162 YYRHSLOC (Rhs, 0).last_line; \ 4163 (Current).first_column = (Current).last_column = \ 4164 YYRHSLOC (Rhs, 0).last_column; \ 4165 } \ 4166 while (YYID (0)) 4167 #endif 4168 4169 4170 /* This macro is provided for backward compatibility. */ 4171 4172 #ifndef YY_LOCATION_PRINT 4173 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4174 #endif 4175 4176 4177 /* YYLEX -- calling `yylex' with the right arguments. */ 4178 4179 #ifdef YYLEX_PARAM 4180 # define YYLEX yylex (YYLEX_PARAM) 4181 #else 4182 # define YYLEX yylex () 4183 #endif 3789 YYERROR; \ 3790 } \ 3791 while (0) 3792 3793 /* Error token number */ 3794 #define YYTERROR 1 3795 #define YYERRCODE 256 3796 3797 4184 3798 4185 3799 /* Enable debugging if requested. */ … … 4191 3805 # endif 4192 3806 4193 # define YYDPRINTF(Args) \ 4194 do { \ 4195 if (yydebug) \ 4196 YYFPRINTF Args; \ 4197 } while (YYID (0)) 4198 4199 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4200 do { \ 4201 if (yydebug) \ 4202 { \ 4203 YYFPRINTF (stderr, "%s ", Title); \ 4204 yy_symbol_print (stderr, \ 4205 Type, Value); \ 4206 YYFPRINTF (stderr, "\n"); \ 4207 } \ 4208 } while (YYID (0)) 4209 4210 4211 /*--------------------------------. 4212 | Print this symbol on YYOUTPUT. | 4213 `--------------------------------*/ 4214 4215 /*ARGSUSED*/ 4216 #if (defined __STDC__ || defined __C99__FUNC__ \ 4217 || defined __cplusplus || defined _MSC_VER) 3807 # define YYDPRINTF(Args) \ 3808 do { \ 3809 if (yydebug) \ 3810 YYFPRINTF Args; \ 3811 } while (0) 3812 3813 /* This macro is provided for backward compatibility. */ 3814 #ifndef YY_LOCATION_PRINT 3815 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3816 #endif 3817 3818 3819 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3820 do { \ 3821 if (yydebug) \ 3822 { \ 3823 YYFPRINTF (stderr, "%s ", Title); \ 3824 yy_symbol_print (stderr, \ 3825 Type, Value); \ 3826 YYFPRINTF (stderr, "\n"); \ 3827 } \ 3828 } while (0) 3829 3830 3831 /*----------------------------------------. 3832 | Print this symbol's value on YYOUTPUT. | 3833 `----------------------------------------*/ 3834 4218 3835 static void 4219 3836 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4220 #else4221 static void4222 yy_symbol_value_print (yyoutput, yytype, yyvaluep)4223 FILE *yyoutput;4224 int yytype;4225 YYSTYPE const * const yyvaluep;4226 #endif4227 3837 { 3838 FILE *yyo = yyoutput; 3839 YYUSE (yyo); 4228 3840 if (!yyvaluep) 4229 3841 return; … … 4231 3843 if (yytype < YYNTOKENS) 4232 3844 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4233 # else4234 YYUSE (yyoutput);4235 3845 # endif 4236 switch (yytype) 4237 { 4238 default: 4239 break; 4240 } 3846 YYUSE (yytype); 4241 3847 } 4242 3848 … … 4246 3852 `--------------------------------*/ 4247 3853 4248 #if (defined __STDC__ || defined __C99__FUNC__ \4249 || defined __cplusplus || defined _MSC_VER)4250 3854 static void 4251 3855 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4252 #else4253 static void4254 yy_symbol_print (yyoutput, yytype, yyvaluep)4255 FILE *yyoutput;4256 int yytype;4257 YYSTYPE const * const yyvaluep;4258 #endif4259 3856 { 4260 if (yytype < YYNTOKENS) 4261 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4262 else 4263 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3857 YYFPRINTF (yyoutput, "%s %s (", 3858 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4264 3859 4265 3860 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 4272 3867 `------------------------------------------------------------------*/ 4273 3868 4274 #if (defined __STDC__ || defined __C99__FUNC__ \4275 || defined __cplusplus || defined _MSC_VER)4276 3869 static void 4277 3870 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4278 #else4279 static void4280 yy_stack_print (yybottom, yytop)4281 yytype_int16 *yybottom;4282 yytype_int16 *yytop;4283 #endif4284 3871 { 4285 3872 YYFPRINTF (stderr, "Stack now"); … … 4292 3879 } 4293 3880 4294 # define YY_STACK_PRINT(Bottom, Top) 4295 do { 4296 if (yydebug) 4297 yy_stack_print ((Bottom), (Top)); 4298 } while ( YYID (0))3881 # define YY_STACK_PRINT(Bottom, Top) \ 3882 do { \ 3883 if (yydebug) \ 3884 yy_stack_print ((Bottom), (Top)); \ 3885 } while (0) 4299 3886 4300 3887 … … 4303 3890 `------------------------------------------------*/ 4304 3891 4305 #if (defined __STDC__ || defined __C99__FUNC__ \4306 || defined __cplusplus || defined _MSC_VER)4307 3892 static void 4308 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4309 #else 4310 static void 4311 yy_reduce_print (yyvsp, yyrule) 4312 YYSTYPE *yyvsp; 4313 int yyrule; 4314 #endif 3893 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4315 3894 { 3895 unsigned long int yylno = yyrline[yyrule]; 4316 3896 int yynrhs = yyr2[yyrule]; 4317 3897 int yyi; 4318 unsigned long int yylno = yyrline[yyrule];4319 3898 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 4320 3899 yyrule - 1, yylno); 4321 3900 /* The symbols being reduced. */ 4322 3901 for (yyi = 0; yyi < yynrhs; yyi++) 4323 3902 { 4324 3903 YYFPRINTF (stderr, " $%d = ", yyi + 1); 4325 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4326 &(yyvsp[(yyi + 1) - (yynrhs)]) 4327 ); 3904 yy_symbol_print (stderr, 3905 yystos[yyssp[yyi + 1 - yynrhs]], 3906 &(yyvsp[(yyi + 1) - (yynrhs)]) 3907 ); 4328 3908 YYFPRINTF (stderr, "\n"); 4329 3909 } 4330 3910 } 4331 3911 4332 # define YY_REDUCE_PRINT(Rule) 4333 do { 4334 if (yydebug) 4335 yy_reduce_print (yy vsp, Rule); \4336 } while ( YYID (0))3912 # define YY_REDUCE_PRINT(Rule) \ 3913 do { \ 3914 if (yydebug) \ 3915 yy_reduce_print (yyssp, yyvsp, Rule); \ 3916 } while (0) 4337 3917 4338 3918 /* Nonzero means print parse trace. It is left uninitialized so that … … 4348 3928 4349 3929 /* YYINITDEPTH -- initial size of the parser's stacks. */ 4350 #ifndef 3930 #ifndef YYINITDEPTH 4351 3931 # define YYINITDEPTH 200 4352 3932 #endif … … 4371 3951 # else 4372 3952 /* Return the length of YYSTR. */ 4373 #if (defined __STDC__ || defined __C99__FUNC__ \4374 || defined __cplusplus || defined _MSC_VER)4375 3953 static YYSIZE_T 4376 3954 yystrlen (const char *yystr) 4377 #else4378 static YYSIZE_T4379 yystrlen (yystr)4380 const char *yystr;4381 #endif4382 3955 { 4383 3956 YYSIZE_T yylen; … … 4395 3968 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4396 3969 YYDEST. */ 4397 #if (defined __STDC__ || defined __C99__FUNC__ \4398 || defined __cplusplus || defined _MSC_VER)4399 3970 static char * 4400 3971 yystpcpy (char *yydest, const char *yysrc) 4401 #else4402 static char *4403 yystpcpy (yydest, yysrc)4404 char *yydest;4405 const char *yysrc;4406 #endif4407 3972 { 4408 3973 char *yyd = yydest; … … 4434 3999 4435 4000 for (;;) 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4001 switch (*++yyp) 4002 { 4003 case '\'': 4004 case ',': 4005 goto do_not_strip_quotes; 4006 4007 case '\\': 4008 if (*++yyp != '\\') 4009 goto do_not_strip_quotes; 4010 /* Fall through. */ 4011 default: 4012 if (yyres) 4013 yyres[yyn] = *yyp; 4014 yyn++; 4015 break; 4016 4017 case '"': 4018 if (yyres) 4019 yyres[yyn] = '\0'; 4020 return yyn; 4021 } 4457 4022 do_not_strip_quotes: ; 4458 4023 } … … 4477 4042 yytype_int16 *yyssp, int yytoken) 4478 4043 { 4479 YYSIZE_T yysize0 = yytnamerr ( 0, yytname[yytoken]);4044 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 4480 4045 YYSIZE_T yysize = yysize0; 4481 YYSIZE_T yysize1;4482 4046 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4483 4047 /* Internationalized format string. */ 4484 const char *yyformat = 0;4048 const char *yyformat = YY_NULLPTR; 4485 4049 /* Arguments of yyformat. */ 4486 4050 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4490 4054 4491 4055 /* There are many possibilities here to consider: 4492 - Assume YYFAIL is not used. It's too flawed to consider. See4493 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>4494 for details. YYERROR is fine as it does not invoke this4495 function.4496 4056 - If this state is a consistent state with a default action, then 4497 4057 the only way this function was invoked is if the default action … … 4542 4102 } 4543 4103 yyarg[yycount++] = yytname[yyx]; 4544 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4545 if (! (yysize <= yysize1 4546 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4547 return 2; 4548 yysize = yysize1; 4104 { 4105 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4106 if (! (yysize <= yysize1 4107 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4108 return 2; 4109 yysize = yysize1; 4110 } 4549 4111 } 4550 4112 } … … 4566 4128 } 4567 4129 4568 yysize1 = yysize + yystrlen (yyformat); 4569 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4570 return 2; 4571 yysize = yysize1; 4130 { 4131 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4132 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4133 return 2; 4134 yysize = yysize1; 4135 } 4572 4136 4573 4137 if (*yymsg_alloc < yysize) … … 4606 4170 `-----------------------------------------------*/ 4607 4171 4608 /*ARGSUSED*/4609 #if (defined __STDC__ || defined __C99__FUNC__ \4610 || defined __cplusplus || defined _MSC_VER)4611 4172 static void 4612 4173 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4613 #else4614 static void4615 yydestruct (yymsg, yytype, yyvaluep)4616 const char *yymsg;4617 int yytype;4618 YYSTYPE *yyvaluep;4619 #endif4620 4174 { 4621 4175 YYUSE (yyvaluep); 4622 4623 4176 if (!yymsg) 4624 4177 yymsg = "Deleting"; 4625 4178 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4626 4179 4627 switch (yytype) 4628 { 4629 4630 default: 4631 break; 4632 } 4180 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4181 YYUSE (yytype); 4182 YY_IGNORE_MAYBE_UNINITIALIZED_END 4633 4183 } 4634 4184 4635 4185 4636 /* Prevent warnings from -Wmissing-prototypes. */4637 #ifdef YYPARSE_PARAM4638 #if defined __STDC__ || defined __cplusplus4639 int yyparse (void *YYPARSE_PARAM);4640 #else4641 int yyparse ();4642 #endif4643 #else /* ! YYPARSE_PARAM */4644 #if defined __STDC__ || defined __cplusplus4645 int yyparse (void);4646 #else4647 int yyparse ();4648 #endif4649 #endif /* ! YYPARSE_PARAM */4650 4186 4651 4187 … … 4655 4191 /* The semantic value of the lookahead symbol. */ 4656 4192 YYSTYPE yylval; 4657 4658 4193 /* Number of syntax errors so far. */ 4659 4194 int yynerrs; … … 4664 4199 `----------*/ 4665 4200 4666 #ifdef YYPARSE_PARAM4667 #if (defined __STDC__ || defined __C99__FUNC__ \4668 || defined __cplusplus || defined _MSC_VER)4669 int4670 yyparse (void *YYPARSE_PARAM)4671 #else4672 int4673 yyparse (YYPARSE_PARAM)4674 void *YYPARSE_PARAM;4675 #endif4676 #else /* ! YYPARSE_PARAM */4677 #if (defined __STDC__ || defined __C99__FUNC__ \4678 || defined __cplusplus || defined _MSC_VER)4679 4201 int 4680 4202 yyparse (void) 4681 #else4682 int4683 yyparse ()4684 4685 #endif4686 #endif4687 4203 { 4688 4204 int yystate; … … 4691 4207 4692 4208 /* The stacks and their tools: 4693 `yyss': related to states.4694 `yyvs': related to semantic values.4695 4696 Refer to the stacks thr useparate pointers, to allow yyoverflow4209 'yyss': related to states. 4210 'yyvs': related to semantic values. 4211 4212 Refer to the stacks through separate pointers, to allow yyoverflow 4697 4213 to reallocate them elsewhere. */ 4698 4214 … … 4712 4228 int yyresult; 4713 4229 /* Lookahead token as an internal (translated) token number. */ 4714 int yytoken ;4230 int yytoken = 0; 4715 4231 /* The variables used to return semantic value and location from the 4716 4232 action routines. */ … … 4730 4246 int yylen = 0; 4731 4247 4732 yytoken = 0; 4733 yyss = yyssa; 4734 yyvs = yyvsa; 4248 yyssp = yyss = yyssa; 4249 yyvsp = yyvs = yyvsa; 4735 4250 yystacksize = YYINITDEPTH; 4736 4251 … … 4741 4256 yynerrs = 0; 4742 4257 yychar = YYEMPTY; /* Cause a token to be read. */ 4743 4744 /* Initialize stack pointers.4745 Waste one element of value and location stack4746 so that they stay on the same level as the state stack.4747 The wasted elements are never initialized. */4748 yyssp = yyss;4749 yyvsp = yyvs;4750 4751 4258 goto yysetstate; 4752 4259 … … 4769 4276 #ifdef yyoverflow 4770 4277 { 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4278 /* Give user a chance to reallocate the stack. Use copies of 4279 these so that the &'s don't force the real ones into 4280 memory. */ 4281 YYSTYPE *yyvs1 = yyvs; 4282 yytype_int16 *yyss1 = yyss; 4283 4284 /* Each stack pointer address is followed by the size of the 4285 data in use in that stack, in bytes. This used to be a 4286 conditional around just the two extra args, but that might 4287 be undefined if yyoverflow is a macro. */ 4288 yyoverflow (YY_("memory exhausted"), 4289 &yyss1, yysize * sizeof (*yyssp), 4290 &yyvs1, yysize * sizeof (*yyvsp), 4291 &yystacksize); 4292 4293 yyss = yyss1; 4294 yyvs = yyvs1; 4788 4295 } 4789 4296 #else /* no yyoverflow */ … … 4793 4300 /* Extend the stack our own way. */ 4794 4301 if (YYMAXDEPTH <= yystacksize) 4795 4302 goto yyexhaustedlab; 4796 4303 yystacksize *= 2; 4797 4304 if (YYMAXDEPTH < yystacksize) 4798 4305 yystacksize = YYMAXDEPTH; 4799 4306 4800 4307 { 4801 4802 4803 4804 4805 4806 4807 4308 yytype_int16 *yyss1 = yyss; 4309 union yyalloc *yyptr = 4310 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4311 if (! yyptr) 4312 goto yyexhaustedlab; 4313 YYSTACK_RELOCATE (yyss_alloc, yyss); 4314 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4808 4315 # undef YYSTACK_RELOCATE 4809 4810 4316 if (yyss1 != yyssa) 4317 YYSTACK_FREE (yyss1); 4811 4318 } 4812 4319 # endif … … 4817 4324 4818 4325 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4819 4326 (unsigned long int) yystacksize)); 4820 4327 4821 4328 if (yyss + yystacksize - 1 <= yyssp) 4822 4329 YYABORT; 4823 4330 } 4824 4331 … … 4849 4356 { 4850 4357 YYDPRINTF ((stderr, "Reading a token: ")); 4851 yychar = YYLEX;4358 yychar = yylex (); 4852 4359 } 4853 4360 … … 4889 4396 4890 4397 yystate = yyn; 4398 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4891 4399 *++yyvsp = yylval; 4400 YY_IGNORE_MAYBE_UNINITIALIZED_END 4892 4401 4893 4402 goto yynewstate; … … 4912 4421 4913 4422 /* If YYLEN is nonzero, implement the default value of the action: 4914 `$$ = $1'.4423 '$$ = $1'. 4915 4424 4916 4425 Otherwise, the following line sets YYVAL to garbage. … … 4926 4435 { 4927 4436 case 2: 4928 4929 /* Line 1806 of yacc.c */ 4930 #line 305 "parser.yy" 4437 #line 305 "parser.yy" /* yacc.c:1646 */ 4931 4438 { typedefTable.enterScope(); } 4439 #line 4440 "Parser/parser.cc" /* yacc.c:1646 */ 4932 4440 break; 4933 4441 4934 4442 case 3: 4935 4936 /* Line 1806 of yacc.c */ 4937 #line 309 "parser.yy" 4443 #line 309 "parser.yy" /* yacc.c:1646 */ 4938 4444 { typedefTable.leaveScope(); } 4445 #line 4446 "Parser/parser.cc" /* yacc.c:1646 */ 4939 4446 break; 4940 4447 4941 4448 case 4: 4942 4943 /* Line 1806 of yacc.c */ 4944 #line 316 "parser.yy" 4945 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4449 #line 316 "parser.yy" /* yacc.c:1646 */ 4450 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); } 4451 #line 4452 "Parser/parser.cc" /* yacc.c:1646 */ 4946 4452 break; 4947 4453 4948 4454 case 5: 4949 4950 /* Line 1806 of yacc.c */ 4951 #line 317 "parser.yy" 4952 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4455 #line 317 "parser.yy" /* yacc.c:1646 */ 4456 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4457 #line 4458 "Parser/parser.cc" /* yacc.c:1646 */ 4953 4458 break; 4954 4459 4955 4460 case 6: 4956 4957 /* Line 1806 of yacc.c */ 4958 #line 318 "parser.yy" 4959 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4461 #line 318 "parser.yy" /* yacc.c:1646 */ 4462 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4463 #line 4464 "Parser/parser.cc" /* yacc.c:1646 */ 4960 4464 break; 4961 4465 4962 4466 case 7: 4963 4964 /* Line 1806 of yacc.c */ 4965 #line 319 "parser.yy" 4966 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4467 #line 319 "parser.yy" /* yacc.c:1646 */ 4468 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4469 #line 4470 "Parser/parser.cc" /* yacc.c:1646 */ 4967 4470 break; 4968 4471 4969 4472 case 8: 4970 4971 /* Line 1806 of yacc.c */ 4972 #line 320 "parser.yy" 4973 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4473 #line 320 "parser.yy" /* yacc.c:1646 */ 4474 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); } 4475 #line 4476 "Parser/parser.cc" /* yacc.c:1646 */ 4974 4476 break; 4975 4477 4976 4478 case 18: 4977 4978 /* Line 1806 of yacc.c */ 4979 #line 345 "parser.yy" 4980 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4479 #line 345 "parser.yy" /* yacc.c:1646 */ 4480 { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); } 4481 #line 4482 "Parser/parser.cc" /* yacc.c:1646 */ 4981 4482 break; 4982 4483 4983 4484 case 19: 4984 4985 /* Line 1806 of yacc.c */ 4986 #line 349 "parser.yy" 4987 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4485 #line 349 "parser.yy" /* yacc.c:1646 */ 4486 { (yyval.str) = (yyvsp[0].tok); } 4487 #line 4488 "Parser/parser.cc" /* yacc.c:1646 */ 4988 4488 break; 4989 4489 4990 4490 case 20: 4991 4992 /* Line 1806 of yacc.c */ 4993 #line 351 "parser.yy" 4994 { 4995 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st 4996 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 4997 (yyval.str) = (yyvsp[(1) - (2)].str); // conversion from tok to str 4491 #line 351 "parser.yy" /* yacc.c:1646 */ 4492 { 4493 appendStr( (yyvsp[-1].str), (yyvsp[0].tok) ); // append 2nd juxtaposed string to 1st 4494 delete (yyvsp[0].tok); // allocated by lexer 4495 (yyval.str) = (yyvsp[-1].str); // conversion from tok to str 4998 4496 } 4497 #line 4498 "Parser/parser.cc" /* yacc.c:1646 */ 4999 4498 break; 5000 4499 5001 4500 case 21: 5002 5003 /* Line 1806 of yacc.c */ 5004 #line 362 "parser.yy" 5005 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4501 #line 362 "parser.yy" /* yacc.c:1646 */ 4502 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4503 #line 4504 "Parser/parser.cc" /* yacc.c:1646 */ 5006 4504 break; 5007 4505 5008 4506 case 22: 5009 5010 /* Line 1806 of yacc.c */ 5011 #line 364 "parser.yy" 5012 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4507 #line 364 "parser.yy" /* yacc.c:1646 */ 4508 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4509 #line 4510 "Parser/parser.cc" /* yacc.c:1646 */ 5013 4510 break; 5014 4511 5015 4512 case 24: 5016 5017 /* Line 1806 of yacc.c */ 5018 #line 367 "parser.yy" 5019 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4513 #line 367 "parser.yy" /* yacc.c:1646 */ 4514 { (yyval.en) = (yyvsp[-1].en); } 4515 #line 4516 "Parser/parser.cc" /* yacc.c:1646 */ 5020 4516 break; 5021 4517 5022 4518 case 25: 5023 5024 /* Line 1806 of yacc.c */ 5025 #line 369 "parser.yy" 5026 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4519 #line 369 "parser.yy" /* yacc.c:1646 */ 4520 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4521 #line 4522 "Parser/parser.cc" /* yacc.c:1646 */ 5027 4522 break; 5028 4523 5029 4524 case 27: 5030 5031 /* Line 1806 of yacc.c */ 5032 #line 379 "parser.yy" 5033 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4525 #line 379 "parser.yy" /* yacc.c:1646 */ 4526 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4527 #line 4528 "Parser/parser.cc" /* yacc.c:1646 */ 5034 4528 break; 5035 4529 5036 4530 case 28: 5037 5038 /* Line 1806 of yacc.c */ 5039 #line 381 "parser.yy" 5040 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4531 #line 381 "parser.yy" /* yacc.c:1646 */ 4532 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4533 #line 4534 "Parser/parser.cc" /* yacc.c:1646 */ 5041 4534 break; 5042 4535 5043 4536 case 29: 5044 5045 /* Line 1806 of yacc.c */ 5046 #line 383 "parser.yy" 5047 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4537 #line 383 "parser.yy" /* yacc.c:1646 */ 4538 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4539 #line 4540 "Parser/parser.cc" /* yacc.c:1646 */ 5048 4540 break; 5049 4541 5050 4542 case 30: 5051 5052 /* Line 1806 of yacc.c */ 5053 #line 385 "parser.yy" 5054 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4543 #line 385 "parser.yy" /* yacc.c:1646 */ 4544 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4545 #line 4546 "Parser/parser.cc" /* yacc.c:1646 */ 5055 4546 break; 5056 4547 5057 4548 case 31: 5058 5059 /* Line 1806 of yacc.c */ 5060 #line 387 "parser.yy" 5061 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); } 4549 #line 387 "parser.yy" /* yacc.c:1646 */ 4550 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-1].en), build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) ) ) ); } 4551 #line 4552 "Parser/parser.cc" /* yacc.c:1646 */ 5062 4552 break; 5063 4553 5064 4554 case 32: 5065 5066 /* Line 1806 of yacc.c */ 5067 #line 389 "parser.yy" 5068 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4555 #line 389 "parser.yy" /* yacc.c:1646 */ 4556 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4557 #line 4558 "Parser/parser.cc" /* yacc.c:1646 */ 5069 4558 break; 5070 4559 5071 4560 case 33: 5072 5073 /* Line 1806 of yacc.c */ 5074 #line 391 "parser.yy" 5075 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4561 #line 391 "parser.yy" /* yacc.c:1646 */ 4562 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4563 #line 4564 "Parser/parser.cc" /* yacc.c:1646 */ 5076 4564 break; 5077 4565 5078 4566 case 34: 5079 5080 /* Line 1806 of yacc.c */ 5081 #line 393 "parser.yy" 5082 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4567 #line 393 "parser.yy" /* yacc.c:1646 */ 4568 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4569 #line 4570 "Parser/parser.cc" /* yacc.c:1646 */ 5083 4570 break; 5084 4571 5085 4572 case 35: 5086 5087 /* Line 1806 of yacc.c */ 5088 #line 395 "parser.yy" 5089 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4573 #line 395 "parser.yy" /* yacc.c:1646 */ 4574 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4575 #line 4576 "Parser/parser.cc" /* yacc.c:1646 */ 5090 4576 break; 5091 4577 5092 4578 case 36: 5093 5094 /* Line 1806 of yacc.c */ 5095 #line 397 "parser.yy" 5096 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4579 #line 397 "parser.yy" /* yacc.c:1646 */ 4580 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4581 #line 4582 "Parser/parser.cc" /* yacc.c:1646 */ 5097 4582 break; 5098 4583 5099 4584 case 37: 5100 5101 /* Line 1806 of yacc.c */ 5102 #line 399 "parser.yy" 4585 #line 399 "parser.yy" /* yacc.c:1646 */ 5103 4586 { 5104 4587 Token fn; 5105 4588 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 5106 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) );4589 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) ) ); 5107 4590 } 4591 #line 4592 "Parser/parser.cc" /* yacc.c:1646 */ 5108 4592 break; 5109 4593 5110 4594 case 39: 5111 5112 /* Line 1806 of yacc.c */ 5113 #line 409 "parser.yy" 5114 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4595 #line 409 "parser.yy" /* yacc.c:1646 */ 4596 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4597 #line 4598 "Parser/parser.cc" /* yacc.c:1646 */ 5115 4598 break; 5116 4599 5117 4600 case 40: 5118 5119 /* Line 1806 of yacc.c */ 5120 #line 414 "parser.yy" 4601 #line 414 "parser.yy" /* yacc.c:1646 */ 5121 4602 { (yyval.en) = 0; } 4603 #line 4604 "Parser/parser.cc" /* yacc.c:1646 */ 5122 4604 break; 5123 4605 5124 4606 case 43: 5125 5126 /* Line 1806 of yacc.c */ 5127 #line 420 "parser.yy" 5128 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4607 #line 420 "parser.yy" /* yacc.c:1646 */ 4608 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4609 #line 4610 "Parser/parser.cc" /* yacc.c:1646 */ 5129 4610 break; 5130 4611 5131 4612 case 45: 5132 5133 /* Line 1806 of yacc.c */ 5134 #line 426 "parser.yy" 5135 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); } 4613 #line 426 "parser.yy" /* yacc.c:1646 */ 4614 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[-1].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); } 4615 #line 4616 "Parser/parser.cc" /* yacc.c:1646 */ 5136 4616 break; 5137 4617 5138 4618 case 46: 5139 5140 /* Line 1806 of yacc.c */ 5141 #line 428 "parser.yy" 5142 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); } 4619 #line 428 "parser.yy" /* yacc.c:1646 */ 4620 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[-5].tok) ) ), build_tuple( (yyvsp[-2].en) ) ) ); } 4621 #line 4622 "Parser/parser.cc" /* yacc.c:1646 */ 5143 4622 break; 5144 4623 5145 4624 case 47: 5146 5147 /* Line 1806 of yacc.c */ 5148 #line 430 "parser.yy" 5149 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 4625 #line 430 "parser.yy" /* yacc.c:1646 */ 4626 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); } 4627 #line 4628 "Parser/parser.cc" /* yacc.c:1646 */ 5150 4628 break; 5151 4629 5152 4630 case 48: 5153 5154 /* Line 1806 of yacc.c */ 5155 #line 432 "parser.yy" 5156 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4631 #line 432 "parser.yy" /* yacc.c:1646 */ 4632 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4633 #line 4634 "Parser/parser.cc" /* yacc.c:1646 */ 5157 4634 break; 5158 4635 5159 4636 case 49: 5160 5161 /* Line 1806 of yacc.c */ 5162 #line 434 "parser.yy" 5163 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 4637 #line 434 "parser.yy" /* yacc.c:1646 */ 4638 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); } 4639 #line 4640 "Parser/parser.cc" /* yacc.c:1646 */ 5164 4640 break; 5165 4641 5166 4642 case 50: 5167 5168 /* Line 1806 of yacc.c */ 5169 #line 436 "parser.yy" 5170 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4643 #line 436 "parser.yy" /* yacc.c:1646 */ 4644 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4645 #line 4646 "Parser/parser.cc" /* yacc.c:1646 */ 5171 4646 break; 5172 4647 5173 4648 case 51: 5174 5175 /* Line 1806 of yacc.c */ 5176 #line 441 "parser.yy" 5177 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 4649 #line 441 "parser.yy" /* yacc.c:1646 */ 4650 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); } 4651 #line 4652 "Parser/parser.cc" /* yacc.c:1646 */ 5178 4652 break; 5179 4653 5180 4654 case 52: 5181 5182 /* Line 1806 of yacc.c */ 5183 #line 443 "parser.yy" 5184 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 4655 #line 443 "parser.yy" /* yacc.c:1646 */ 4656 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); } 4657 #line 4658 "Parser/parser.cc" /* yacc.c:1646 */ 5185 4658 break; 5186 4659 5187 4660 case 53: 5188 5189 /* Line 1806 of yacc.c */ 5190 #line 445 "parser.yy" 5191 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 4661 #line 445 "parser.yy" /* yacc.c:1646 */ 4662 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[-1].tok) ), (yyvsp[0].en) ) ); } 4663 #line 4664 "Parser/parser.cc" /* yacc.c:1646 */ 5192 4664 break; 5193 4665 5194 4666 case 54: 5195 5196 /* Line 1806 of yacc.c */ 5197 #line 450 "parser.yy" 4667 #line 450 "parser.yy" /* yacc.c:1646 */ 5198 4668 { (yyval.en) = nullptr; } 4669 #line 4670 "Parser/parser.cc" /* yacc.c:1646 */ 5199 4670 break; 5200 4671 5201 4672 case 55: 5202 5203 /* Line 1806 of yacc.c */ 5204 #line 452 "parser.yy" 5205 { 5206 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ); 5207 (yyval.en) = (yyvsp[(1) - (2)].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), constant ) ) : new ExpressionNode( constant ); 4673 #line 452 "parser.yy" /* yacc.c:1646 */ 4674 { 4675 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) ); 4676 (yyval.en) = (yyvsp[-1].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[-1].en), constant ) ) : new ExpressionNode( constant ); 5208 4677 } 4678 #line 4679 "Parser/parser.cc" /* yacc.c:1646 */ 5209 4679 break; 5210 4680 5211 4681 case 57: 5212 5213 /* Line 1806 of yacc.c */ 5214 #line 463 "parser.yy" 5215 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4682 #line 463 "parser.yy" /* yacc.c:1646 */ 4683 { (yyval.en) = (yyvsp[0].en); } 4684 #line 4685 "Parser/parser.cc" /* yacc.c:1646 */ 5216 4685 break; 5217 4686 5218 4687 case 58: 5219 5220 /* Line 1806 of yacc.c */ 5221 #line 465 "parser.yy" 5222 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4688 #line 465 "parser.yy" /* yacc.c:1646 */ 4689 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4690 #line 4691 "Parser/parser.cc" /* yacc.c:1646 */ 5223 4691 break; 5224 4692 5225 4693 case 59: 5226 5227 /* Line 1806 of yacc.c */ 5228 #line 467 "parser.yy" 5229 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4694 #line 467 "parser.yy" /* yacc.c:1646 */ 4695 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4696 #line 4697 "Parser/parser.cc" /* yacc.c:1646 */ 5230 4697 break; 5231 4698 5232 4699 case 60: 5233 5234 /* Line 1806 of yacc.c */ 5235 #line 472 "parser.yy" 5236 { 5237 switch ( (yyvsp[(1) - (2)].op) ) { 4700 #line 472 "parser.yy" /* yacc.c:1646 */ 4701 { 4702 switch ( (yyvsp[-1].op) ) { 5238 4703 case OperKinds::AddressOf: 5239 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ (2) - (2)].en) ) );4704 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) ); 5240 4705 break; 5241 4706 case OperKinds::PointTo: 5242 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ (1) - (2)].op), (yyvsp[(2) - (2)].en) ) );4707 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); 5243 4708 break; 5244 4709 default: … … 5246 4711 } 5247 4712 } 4713 #line 4714 "Parser/parser.cc" /* yacc.c:1646 */ 5248 4714 break; 5249 4715 5250 4716 case 61: 5251 5252 /* Line 1806 of yacc.c */ 5253 #line 485 "parser.yy" 5254 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4717 #line 485 "parser.yy" /* yacc.c:1646 */ 4718 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4719 #line 4720 "Parser/parser.cc" /* yacc.c:1646 */ 5255 4720 break; 5256 4721 5257 4722 case 62: 5258 5259 /* Line 1806 of yacc.c */ 5260 #line 487 "parser.yy" 5261 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4723 #line 487 "parser.yy" /* yacc.c:1646 */ 4724 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4725 #line 4726 "Parser/parser.cc" /* yacc.c:1646 */ 5262 4726 break; 5263 4727 5264 4728 case 63: 5265 5266 /* Line 1806 of yacc.c */ 5267 #line 489 "parser.yy" 5268 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4729 #line 489 "parser.yy" /* yacc.c:1646 */ 4730 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4731 #line 4732 "Parser/parser.cc" /* yacc.c:1646 */ 5269 4732 break; 5270 4733 5271 4734 case 64: 5272 5273 /* Line 1806 of yacc.c */ 5274 #line 491 "parser.yy" 5275 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4735 #line 491 "parser.yy" /* yacc.c:1646 */ 4736 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4737 #line 4738 "Parser/parser.cc" /* yacc.c:1646 */ 5276 4738 break; 5277 4739 5278 4740 case 65: 5279 5280 /* Line 1806 of yacc.c */ 5281 #line 493 "parser.yy" 5282 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4741 #line 493 "parser.yy" /* yacc.c:1646 */ 4742 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4743 #line 4744 "Parser/parser.cc" /* yacc.c:1646 */ 5283 4744 break; 5284 4745 5285 4746 case 66: 5286 5287 /* Line 1806 of yacc.c */ 5288 #line 495 "parser.yy" 5289 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4747 #line 495 "parser.yy" /* yacc.c:1646 */ 4748 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4749 #line 4750 "Parser/parser.cc" /* yacc.c:1646 */ 5290 4750 break; 5291 4751 5292 4752 case 67: 5293 5294 /* Line 1806 of yacc.c */ 5295 #line 497 "parser.yy" 5296 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4753 #line 497 "parser.yy" /* yacc.c:1646 */ 4754 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4755 #line 4756 "Parser/parser.cc" /* yacc.c:1646 */ 5297 4756 break; 5298 4757 5299 4758 case 68: 5300 5301 /* Line 1806 of yacc.c */ 5302 #line 499 "parser.yy" 5303 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4759 #line 499 "parser.yy" /* yacc.c:1646 */ 4760 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4761 #line 4762 "Parser/parser.cc" /* yacc.c:1646 */ 5304 4762 break; 5305 4763 5306 4764 case 69: 5307 5308 /* Line 1806 of yacc.c */ 5309 #line 501 "parser.yy" 5310 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4765 #line 501 "parser.yy" /* yacc.c:1646 */ 4766 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4767 #line 4768 "Parser/parser.cc" /* yacc.c:1646 */ 5311 4768 break; 5312 4769 5313 4770 case 70: 5314 5315 /* Line 1806 of yacc.c */ 5316 #line 503 "parser.yy" 5317 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4771 #line 503 "parser.yy" /* yacc.c:1646 */ 4772 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4773 #line 4774 "Parser/parser.cc" /* yacc.c:1646 */ 5318 4774 break; 5319 4775 5320 4776 case 71: 5321 5322 /* Line 1806 of yacc.c */ 5323 #line 505 "parser.yy" 5324 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4777 #line 505 "parser.yy" /* yacc.c:1646 */ 4778 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4779 #line 4780 "Parser/parser.cc" /* yacc.c:1646 */ 5325 4780 break; 5326 4781 5327 4782 case 72: 5328 5329 /* Line 1806 of yacc.c */ 5330 #line 511 "parser.yy" 4783 #line 511 "parser.yy" /* yacc.c:1646 */ 5331 4784 { (yyval.op) = OperKinds::PointTo; } 4785 #line 4786 "Parser/parser.cc" /* yacc.c:1646 */ 5332 4786 break; 5333 4787 5334 4788 case 73: 5335 5336 /* Line 1806 of yacc.c */ 5337 #line 512 "parser.yy" 4789 #line 512 "parser.yy" /* yacc.c:1646 */ 5338 4790 { (yyval.op) = OperKinds::AddressOf; } 4791 #line 4792 "Parser/parser.cc" /* yacc.c:1646 */ 5339 4792 break; 5340 4793 5341 4794 case 74: 5342 5343 /* Line 1806 of yacc.c */ 5344 #line 518 "parser.yy" 4795 #line 518 "parser.yy" /* yacc.c:1646 */ 5345 4796 { (yyval.op) = OperKinds::UnPlus; } 4797 #line 4798 "Parser/parser.cc" /* yacc.c:1646 */ 5346 4798 break; 5347 4799 5348 4800 case 75: 5349 5350 /* Line 1806 of yacc.c */ 5351 #line 519 "parser.yy" 4801 #line 519 "parser.yy" /* yacc.c:1646 */ 5352 4802 { (yyval.op) = OperKinds::UnMinus; } 4803 #line 4804 "Parser/parser.cc" /* yacc.c:1646 */ 5353 4804 break; 5354 4805 5355 4806 case 76: 5356 5357 /* Line 1806 of yacc.c */ 5358 #line 520 "parser.yy" 4807 #line 520 "parser.yy" /* yacc.c:1646 */ 5359 4808 { (yyval.op) = OperKinds::Neg; } 4809 #line 4810 "Parser/parser.cc" /* yacc.c:1646 */ 5360 4810 break; 5361 4811 5362 4812 case 77: 5363 5364 /* Line 1806 of yacc.c */ 5365 #line 521 "parser.yy" 4813 #line 521 "parser.yy" /* yacc.c:1646 */ 5366 4814 { (yyval.op) = OperKinds::BitNeg; } 4815 #line 4816 "Parser/parser.cc" /* yacc.c:1646 */ 5367 4816 break; 5368 4817 5369 4818 case 79: 5370 5371 /* Line 1806 of yacc.c */ 5372 #line 527 "parser.yy" 5373 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4819 #line 527 "parser.yy" /* yacc.c:1646 */ 4820 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4821 #line 4822 "Parser/parser.cc" /* yacc.c:1646 */ 5374 4822 break; 5375 4823 5376 4824 case 81: 5377 5378 /* Line 1806 of yacc.c */ 5379 #line 535 "parser.yy" 5380 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4825 #line 535 "parser.yy" /* yacc.c:1646 */ 4826 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4827 #line 4828 "Parser/parser.cc" /* yacc.c:1646 */ 5381 4828 break; 5382 4829 5383 4830 case 82: 5384 5385 /* Line 1806 of yacc.c */ 5386 #line 537 "parser.yy" 5387 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4831 #line 537 "parser.yy" /* yacc.c:1646 */ 4832 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4833 #line 4834 "Parser/parser.cc" /* yacc.c:1646 */ 5388 4834 break; 5389 4835 5390 4836 case 83: 5391 5392 /* Line 1806 of yacc.c */ 5393 #line 539 "parser.yy" 5394 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4837 #line 539 "parser.yy" /* yacc.c:1646 */ 4838 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4839 #line 4840 "Parser/parser.cc" /* yacc.c:1646 */ 5395 4840 break; 5396 4841 5397 4842 case 85: 5398 5399 /* Line 1806 of yacc.c */ 5400 #line 545 "parser.yy" 5401 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4843 #line 545 "parser.yy" /* yacc.c:1646 */ 4844 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4845 #line 4846 "Parser/parser.cc" /* yacc.c:1646 */ 5402 4846 break; 5403 4847 5404 4848 case 86: 5405 5406 /* Line 1806 of yacc.c */ 5407 #line 547 "parser.yy" 5408 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4849 #line 547 "parser.yy" /* yacc.c:1646 */ 4850 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4851 #line 4852 "Parser/parser.cc" /* yacc.c:1646 */ 5409 4852 break; 5410 4853 5411 4854 case 88: 5412 5413 /* Line 1806 of yacc.c */ 5414 #line 553 "parser.yy" 5415 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4855 #line 553 "parser.yy" /* yacc.c:1646 */ 4856 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4857 #line 4858 "Parser/parser.cc" /* yacc.c:1646 */ 5416 4858 break; 5417 4859 5418 4860 case 89: 5419 5420 /* Line 1806 of yacc.c */ 5421 #line 555 "parser.yy" 5422 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4861 #line 555 "parser.yy" /* yacc.c:1646 */ 4862 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4863 #line 4864 "Parser/parser.cc" /* yacc.c:1646 */ 5423 4864 break; 5424 4865 5425 4866 case 91: 5426 5427 /* Line 1806 of yacc.c */ 5428 #line 561 "parser.yy" 5429 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4867 #line 561 "parser.yy" /* yacc.c:1646 */ 4868 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4869 #line 4870 "Parser/parser.cc" /* yacc.c:1646 */ 5430 4870 break; 5431 4871 5432 4872 case 92: 5433 5434 /* Line 1806 of yacc.c */ 5435 #line 563 "parser.yy" 5436 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4873 #line 563 "parser.yy" /* yacc.c:1646 */ 4874 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4875 #line 4876 "Parser/parser.cc" /* yacc.c:1646 */ 5437 4876 break; 5438 4877 5439 4878 case 93: 5440 5441 /* Line 1806 of yacc.c */ 5442 #line 565 "parser.yy" 5443 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4879 #line 565 "parser.yy" /* yacc.c:1646 */ 4880 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4881 #line 4882 "Parser/parser.cc" /* yacc.c:1646 */ 5444 4882 break; 5445 4883 5446 4884 case 94: 5447 5448 /* Line 1806 of yacc.c */ 5449 #line 567 "parser.yy" 5450 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4885 #line 567 "parser.yy" /* yacc.c:1646 */ 4886 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4887 #line 4888 "Parser/parser.cc" /* yacc.c:1646 */ 5451 4888 break; 5452 4889 5453 4890 case 96: 5454 5455 /* Line 1806 of yacc.c */ 5456 #line 573 "parser.yy" 5457 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4891 #line 573 "parser.yy" /* yacc.c:1646 */ 4892 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4893 #line 4894 "Parser/parser.cc" /* yacc.c:1646 */ 5458 4894 break; 5459 4895 5460 4896 case 97: 5461 5462 /* Line 1806 of yacc.c */ 5463 #line 575 "parser.yy" 5464 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4897 #line 575 "parser.yy" /* yacc.c:1646 */ 4898 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4899 #line 4900 "Parser/parser.cc" /* yacc.c:1646 */ 5465 4900 break; 5466 4901 5467 4902 case 99: 5468 5469 /* Line 1806 of yacc.c */ 5470 #line 581 "parser.yy" 5471 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4903 #line 581 "parser.yy" /* yacc.c:1646 */ 4904 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4905 #line 4906 "Parser/parser.cc" /* yacc.c:1646 */ 5472 4906 break; 5473 4907 5474 4908 case 101: 5475 5476 /* Line 1806 of yacc.c */ 5477 #line 587 "parser.yy" 5478 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4909 #line 587 "parser.yy" /* yacc.c:1646 */ 4910 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4911 #line 4912 "Parser/parser.cc" /* yacc.c:1646 */ 5479 4912 break; 5480 4913 5481 4914 case 103: 5482 5483 /* Line 1806 of yacc.c */ 5484 #line 593 "parser.yy" 5485 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4915 #line 593 "parser.yy" /* yacc.c:1646 */ 4916 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4917 #line 4918 "Parser/parser.cc" /* yacc.c:1646 */ 5486 4918 break; 5487 4919 5488 4920 case 105: 5489 5490 /* Line 1806 of yacc.c */ 5491 #line 599 "parser.yy" 5492 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4921 #line 599 "parser.yy" /* yacc.c:1646 */ 4922 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4923 #line 4924 "Parser/parser.cc" /* yacc.c:1646 */ 5493 4924 break; 5494 4925 5495 4926 case 107: 5496 5497 /* Line 1806 of yacc.c */ 5498 #line 605 "parser.yy" 5499 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4927 #line 605 "parser.yy" /* yacc.c:1646 */ 4928 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4929 #line 4930 "Parser/parser.cc" /* yacc.c:1646 */ 5500 4930 break; 5501 4931 5502 4932 case 109: 5503 5504 /* Line 1806 of yacc.c */ 5505 #line 611 "parser.yy" 5506 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4933 #line 611 "parser.yy" /* yacc.c:1646 */ 4934 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4935 #line 4936 "Parser/parser.cc" /* yacc.c:1646 */ 5507 4936 break; 5508 4937 5509 4938 case 110: 5510 5511 /* Line 1806 of yacc.c */ 5512 #line 614 "parser.yy" 5513 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4939 #line 614 "parser.yy" /* yacc.c:1646 */ 4940 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4941 #line 4942 "Parser/parser.cc" /* yacc.c:1646 */ 5514 4942 break; 5515 4943 5516 4944 case 113: 5517 5518 /* Line 1806 of yacc.c */ 5519 #line 627 "parser.yy" 5520 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4945 #line 627 "parser.yy" /* yacc.c:1646 */ 4946 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4947 #line 4948 "Parser/parser.cc" /* yacc.c:1646 */ 5521 4948 break; 5522 4949 5523 4950 case 114: 5524 5525 /* Line 1806 of yacc.c */ 5526 #line 634 "parser.yy" 4951 #line 634 "parser.yy" /* yacc.c:1646 */ 5527 4952 { (yyval.en) = nullptr; } 4953 #line 4954 "Parser/parser.cc" /* yacc.c:1646 */ 5528 4954 break; 5529 4955 5530 4956 case 116: 5531 5532 /* Line 1806 of yacc.c */ 5533 #line 639 "parser.yy" 4957 #line 639 "parser.yy" /* yacc.c:1646 */ 5534 4958 { (yyval.op) = OperKinds::Assign; } 4959 #line 4960 "Parser/parser.cc" /* yacc.c:1646 */ 5535 4960 break; 5536 4961 5537 4962 case 117: 5538 5539 /* Line 1806 of yacc.c */ 5540 #line 640 "parser.yy" 4963 #line 640 "parser.yy" /* yacc.c:1646 */ 5541 4964 { (yyval.op) = OperKinds::AtAssn; } 4965 #line 4966 "Parser/parser.cc" /* yacc.c:1646 */ 5542 4966 break; 5543 4967 5544 4968 case 118: 5545 5546 /* Line 1806 of yacc.c */ 5547 #line 641 "parser.yy" 4969 #line 641 "parser.yy" /* yacc.c:1646 */ 5548 4970 { (yyval.op) = OperKinds::MulAssn; } 4971 #line 4972 "Parser/parser.cc" /* yacc.c:1646 */ 5549 4972 break; 5550 4973 5551 4974 case 119: 5552 5553 /* Line 1806 of yacc.c */ 5554 #line 642 "parser.yy" 4975 #line 642 "parser.yy" /* yacc.c:1646 */ 5555 4976 { (yyval.op) = OperKinds::DivAssn; } 4977 #line 4978 "Parser/parser.cc" /* yacc.c:1646 */ 5556 4978 break; 5557 4979 5558 4980 case 120: 5559 5560 /* Line 1806 of yacc.c */ 5561 #line 643 "parser.yy" 4981 #line 643 "parser.yy" /* yacc.c:1646 */ 5562 4982 { (yyval.op) = OperKinds::ModAssn; } 4983 #line 4984 "Parser/parser.cc" /* yacc.c:1646 */ 5563 4984 break; 5564 4985 5565 4986 case 121: 5566 5567 /* Line 1806 of yacc.c */ 5568 #line 644 "parser.yy" 4987 #line 644 "parser.yy" /* yacc.c:1646 */ 5569 4988 { (yyval.op) = OperKinds::PlusAssn; } 4989 #line 4990 "Parser/parser.cc" /* yacc.c:1646 */ 5570 4990 break; 5571 4991 5572 4992 case 122: 5573 5574 /* Line 1806 of yacc.c */ 5575 #line 645 "parser.yy" 4993 #line 645 "parser.yy" /* yacc.c:1646 */ 5576 4994 { (yyval.op) = OperKinds::MinusAssn; } 4995 #line 4996 "Parser/parser.cc" /* yacc.c:1646 */ 5577 4996 break; 5578 4997 5579 4998 case 123: 5580 5581 /* Line 1806 of yacc.c */ 5582 #line 646 "parser.yy" 4999 #line 646 "parser.yy" /* yacc.c:1646 */ 5583 5000 { (yyval.op) = OperKinds::LSAssn; } 5001 #line 5002 "Parser/parser.cc" /* yacc.c:1646 */ 5584 5002 break; 5585 5003 5586 5004 case 124: 5587 5588 /* Line 1806 of yacc.c */ 5589 #line 647 "parser.yy" 5005 #line 647 "parser.yy" /* yacc.c:1646 */ 5590 5006 { (yyval.op) = OperKinds::RSAssn; } 5007 #line 5008 "Parser/parser.cc" /* yacc.c:1646 */ 5591 5008 break; 5592 5009 5593 5010 case 125: 5594 5595 /* Line 1806 of yacc.c */ 5596 #line 648 "parser.yy" 5011 #line 648 "parser.yy" /* yacc.c:1646 */ 5597 5012 { (yyval.op) = OperKinds::AndAssn; } 5013 #line 5014 "Parser/parser.cc" /* yacc.c:1646 */ 5598 5014 break; 5599 5015 5600 5016 case 126: 5601 5602 /* Line 1806 of yacc.c */ 5603 #line 649 "parser.yy" 5017 #line 649 "parser.yy" /* yacc.c:1646 */ 5604 5018 { (yyval.op) = OperKinds::ERAssn; } 5019 #line 5020 "Parser/parser.cc" /* yacc.c:1646 */ 5605 5020 break; 5606 5021 5607 5022 case 127: 5608 5609 /* Line 1806 of yacc.c */ 5610 #line 650 "parser.yy" 5023 #line 650 "parser.yy" /* yacc.c:1646 */ 5611 5024 { (yyval.op) = OperKinds::OrAssn; } 5025 #line 5026 "Parser/parser.cc" /* yacc.c:1646 */ 5612 5026 break; 5613 5027 5614 5028 case 128: 5615 5616 /* Line 1806 of yacc.c */ 5617 #line 661 "parser.yy" 5618 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5029 #line 661 "parser.yy" /* yacc.c:1646 */ 5030 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5031 #line 5032 "Parser/parser.cc" /* yacc.c:1646 */ 5619 5032 break; 5620 5033 5621 5034 case 129: 5622 5623 /* Line 1806 of yacc.c */ 5624 #line 663 "parser.yy" 5625 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5035 #line 663 "parser.yy" /* yacc.c:1646 */ 5036 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5037 #line 5038 "Parser/parser.cc" /* yacc.c:1646 */ 5626 5038 break; 5627 5039 5628 5040 case 131: 5629 5630 /* Line 1806 of yacc.c */ 5631 #line 669 "parser.yy" 5632 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5041 #line 669 "parser.yy" /* yacc.c:1646 */ 5042 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5043 #line 5044 "Parser/parser.cc" /* yacc.c:1646 */ 5633 5044 break; 5634 5045 5635 5046 case 133: 5636 5637 /* Line 1806 of yacc.c */ 5638 #line 675 "parser.yy" 5639 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5047 #line 675 "parser.yy" /* yacc.c:1646 */ 5048 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5049 #line 5050 "Parser/parser.cc" /* yacc.c:1646 */ 5640 5050 break; 5641 5051 5642 5052 case 134: 5643 5644 /* Line 1806 of yacc.c */ 5645 #line 680 "parser.yy" 5053 #line 680 "parser.yy" /* yacc.c:1646 */ 5646 5054 { (yyval.en) = 0; } 5055 #line 5056 "Parser/parser.cc" /* yacc.c:1646 */ 5647 5056 break; 5648 5057 5649 5058 case 138: 5650 5651 /* Line 1806 of yacc.c */ 5652 #line 689 "parser.yy" 5653 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5059 #line 689 "parser.yy" /* yacc.c:1646 */ 5060 { (yyval.sn) = (yyvsp[0].sn); } 5061 #line 5062 "Parser/parser.cc" /* yacc.c:1646 */ 5654 5062 break; 5655 5063 5656 5064 case 144: 5657 5658 /* Line 1806 of yacc.c */ 5659 #line 696 "parser.yy" 5065 #line 696 "parser.yy" /* yacc.c:1646 */ 5660 5066 { 5661 5067 Token fn; 5662 5068 fn.str = new string( "^?{}" ); // location undefined 5663 (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) ) ) ) ) );5069 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) ); 5664 5070 } 5071 #line 5072 "Parser/parser.cc" /* yacc.c:1646 */ 5665 5072 break; 5666 5073 5667 5074 case 145: 5668 5669 /* Line 1806 of yacc.c */ 5670 #line 706 "parser.yy" 5671 { 5672 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5075 #line 706 "parser.yy" /* yacc.c:1646 */ 5076 { 5077 (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) ); 5673 5078 } 5079 #line 5080 "Parser/parser.cc" /* yacc.c:1646 */ 5674 5080 break; 5675 5081 5676 5082 case 146: 5677 5678 /* Line 1806 of yacc.c */ 5679 #line 713 "parser.yy" 5083 #line 713 "parser.yy" /* yacc.c:1646 */ 5680 5084 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5085 #line 5086 "Parser/parser.cc" /* yacc.c:1646 */ 5681 5086 break; 5682 5087 5683 5088 case 147: 5684 5685 /* Line 1806 of yacc.c */ 5686 #line 720 "parser.yy" 5687 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5089 #line 720 "parser.yy" /* yacc.c:1646 */ 5090 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5091 #line 5092 "Parser/parser.cc" /* yacc.c:1646 */ 5688 5092 break; 5689 5093 5690 5094 case 149: 5691 5692 /* Line 1806 of yacc.c */ 5693 #line 726 "parser.yy" 5694 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5095 #line 726 "parser.yy" /* yacc.c:1646 */ 5096 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5097 #line 5098 "Parser/parser.cc" /* yacc.c:1646 */ 5695 5098 break; 5696 5099 5697 5100 case 150: 5698 5699 /* Line 1806 of yacc.c */ 5700 #line 731 "parser.yy" 5701 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5101 #line 731 "parser.yy" /* yacc.c:1646 */ 5102 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5103 #line 5104 "Parser/parser.cc" /* yacc.c:1646 */ 5702 5104 break; 5703 5105 5704 5106 case 151: 5705 5706 /* Line 1806 of yacc.c */ 5707 #line 733 "parser.yy" 5107 #line 733 "parser.yy" /* yacc.c:1646 */ 5708 5108 { // mark all fields in list 5709 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5109 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5710 5110 iter->set_extension( true ); 5711 (yyval.sn) = new StatementNode( (yyvsp[ (2) - (2)].decl) );5111 (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); 5712 5112 } 5113 #line 5114 "Parser/parser.cc" /* yacc.c:1646 */ 5713 5114 break; 5714 5115 5715 5116 case 152: 5716 5717 /* Line 1806 of yacc.c */ 5718 #line 739 "parser.yy" 5719 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5117 #line 739 "parser.yy" /* yacc.c:1646 */ 5118 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5119 #line 5120 "Parser/parser.cc" /* yacc.c:1646 */ 5720 5120 break; 5721 5121 5722 5122 case 155: 5723 5724 /* Line 1806 of yacc.c */ 5725 #line 746 "parser.yy" 5726 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5123 #line 746 "parser.yy" /* yacc.c:1646 */ 5124 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5125 #line 5126 "Parser/parser.cc" /* yacc.c:1646 */ 5727 5126 break; 5728 5127 5729 5128 case 156: 5730 5731 /* Line 1806 of yacc.c */ 5732 #line 751 "parser.yy" 5733 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5129 #line 751 "parser.yy" /* yacc.c:1646 */ 5130 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5131 #line 5132 "Parser/parser.cc" /* yacc.c:1646 */ 5734 5132 break; 5735 5133 5736 5134 case 157: 5737 5738 /* Line 1806 of yacc.c */ 5739 #line 757 "parser.yy" 5740 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5135 #line 757 "parser.yy" /* yacc.c:1646 */ 5136 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5137 #line 5138 "Parser/parser.cc" /* yacc.c:1646 */ 5741 5138 break; 5742 5139 5743 5140 case 158: 5744 5745 /* Line 1806 of yacc.c */ 5746 #line 759 "parser.yy" 5747 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5141 #line 759 "parser.yy" /* yacc.c:1646 */ 5142 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5143 #line 5144 "Parser/parser.cc" /* yacc.c:1646 */ 5748 5144 break; 5749 5145 5750 5146 case 159: 5751 5752 /* Line 1806 of yacc.c */ 5753 #line 761 "parser.yy" 5754 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5147 #line 761 "parser.yy" /* yacc.c:1646 */ 5148 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5149 #line 5150 "Parser/parser.cc" /* yacc.c:1646 */ 5755 5150 break; 5756 5151 5757 5152 case 160: 5758 5759 /* Line 1806 of yacc.c */ 5760 #line 763 "parser.yy" 5761 { 5762 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5153 #line 763 "parser.yy" /* yacc.c:1646 */ 5154 { 5155 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5763 5156 // The semantics of the declaration list is changed to include associated initialization, which is performed 5764 5157 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5766 5159 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5767 5160 // statement. 5768 (yyval.sn) = (yyvsp[ (7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5161 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5769 5162 } 5163 #line 5164 "Parser/parser.cc" /* yacc.c:1646 */ 5770 5164 break; 5771 5165 5772 5166 case 161: 5773 5774 /* Line 1806 of yacc.c */ 5775 #line 773 "parser.yy" 5776 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5167 #line 773 "parser.yy" /* yacc.c:1646 */ 5168 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5169 #line 5170 "Parser/parser.cc" /* yacc.c:1646 */ 5777 5170 break; 5778 5171 5779 5172 case 162: 5780 5781 /* Line 1806 of yacc.c */ 5782 #line 775 "parser.yy" 5783 { 5784 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5785 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5173 #line 775 "parser.yy" /* yacc.c:1646 */ 5174 { 5175 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5176 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5786 5177 } 5178 #line 5179 "Parser/parser.cc" /* yacc.c:1646 */ 5787 5179 break; 5788 5180 5789 5181 case 163: 5790 5791 /* Line 1806 of yacc.c */ 5792 #line 785 "parser.yy" 5793 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5182 #line 785 "parser.yy" /* yacc.c:1646 */ 5183 { (yyval.en) = (yyvsp[0].en); } 5184 #line 5185 "Parser/parser.cc" /* yacc.c:1646 */ 5794 5185 break; 5795 5186 5796 5187 case 164: 5797 5798 /* Line 1806 of yacc.c */ 5799 #line 787 "parser.yy" 5800 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5188 #line 787 "parser.yy" /* yacc.c:1646 */ 5189 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5190 #line 5191 "Parser/parser.cc" /* yacc.c:1646 */ 5801 5191 break; 5802 5192 5803 5193 case 166: 5804 5805 /* Line 1806 of yacc.c */ 5806 #line 792 "parser.yy" 5807 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5194 #line 792 "parser.yy" /* yacc.c:1646 */ 5195 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5196 #line 5197 "Parser/parser.cc" /* yacc.c:1646 */ 5808 5197 break; 5809 5198 5810 5199 case 167: 5811 5812 /* Line 1806 of yacc.c */ 5813 #line 794 "parser.yy" 5814 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5200 #line 794 "parser.yy" /* yacc.c:1646 */ 5201 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5202 #line 5203 "Parser/parser.cc" /* yacc.c:1646 */ 5815 5203 break; 5816 5204 5817 5205 case 168: 5818 5819 /* Line 1806 of yacc.c */ 5820 #line 798 "parser.yy" 5821 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5206 #line 798 "parser.yy" /* yacc.c:1646 */ 5207 { (yyval.sn) = (yyvsp[-1].sn); } 5208 #line 5209 "Parser/parser.cc" /* yacc.c:1646 */ 5822 5209 break; 5823 5210 5824 5211 case 169: 5825 5826 /* Line 1806 of yacc.c */ 5827 #line 799 "parser.yy" 5212 #line 799 "parser.yy" /* yacc.c:1646 */ 5828 5213 { (yyval.sn) = new StatementNode( build_default() ); } 5214 #line 5215 "Parser/parser.cc" /* yacc.c:1646 */ 5829 5215 break; 5830 5216 5831 5217 case 171: 5832 5833 /* Line 1806 of yacc.c */ 5834 #line 805 "parser.yy" 5835 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5218 #line 805 "parser.yy" /* yacc.c:1646 */ 5219 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5220 #line 5221 "Parser/parser.cc" /* yacc.c:1646 */ 5836 5221 break; 5837 5222 5838 5223 case 172: 5839 5840 /* Line 1806 of yacc.c */ 5841 #line 809 "parser.yy" 5842 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5224 #line 809 "parser.yy" /* yacc.c:1646 */ 5225 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5226 #line 5227 "Parser/parser.cc" /* yacc.c:1646 */ 5843 5227 break; 5844 5228 5845 5229 case 173: 5846 5847 /* Line 1806 of yacc.c */ 5848 #line 814 "parser.yy" 5230 #line 814 "parser.yy" /* yacc.c:1646 */ 5849 5231 { (yyval.sn) = 0; } 5232 #line 5233 "Parser/parser.cc" /* yacc.c:1646 */ 5850 5233 break; 5851 5234 5852 5235 case 175: 5853 5854 /* Line 1806 of yacc.c */ 5855 #line 820 "parser.yy" 5856 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5236 #line 820 "parser.yy" /* yacc.c:1646 */ 5237 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5238 #line 5239 "Parser/parser.cc" /* yacc.c:1646 */ 5857 5239 break; 5858 5240 5859 5241 case 176: 5860 5861 /* Line 1806 of yacc.c */ 5862 #line 822 "parser.yy" 5863 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5242 #line 822 "parser.yy" /* yacc.c:1646 */ 5243 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5244 #line 5245 "Parser/parser.cc" /* yacc.c:1646 */ 5864 5245 break; 5865 5246 5866 5247 case 177: 5867 5868 /* Line 1806 of yacc.c */ 5869 #line 827 "parser.yy" 5248 #line 827 "parser.yy" /* yacc.c:1646 */ 5870 5249 { (yyval.sn) = 0; } 5250 #line 5251 "Parser/parser.cc" /* yacc.c:1646 */ 5871 5251 break; 5872 5252 5873 5253 case 179: 5874 5875 /* Line 1806 of yacc.c */ 5876 #line 833 "parser.yy" 5877 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5254 #line 833 "parser.yy" /* yacc.c:1646 */ 5255 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5256 #line 5257 "Parser/parser.cc" /* yacc.c:1646 */ 5878 5257 break; 5879 5258 5880 5259 case 180: 5881 5882 /* Line 1806 of yacc.c */ 5883 #line 835 "parser.yy" 5884 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5260 #line 835 "parser.yy" /* yacc.c:1646 */ 5261 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5262 #line 5263 "Parser/parser.cc" /* yacc.c:1646 */ 5885 5263 break; 5886 5264 5887 5265 case 181: 5888 5889 /* Line 1806 of yacc.c */ 5890 #line 837 "parser.yy" 5891 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5266 #line 837 "parser.yy" /* yacc.c:1646 */ 5267 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5268 #line 5269 "Parser/parser.cc" /* yacc.c:1646 */ 5892 5269 break; 5893 5270 5894 5271 case 182: 5895 5896 /* Line 1806 of yacc.c */ 5897 #line 839 "parser.yy" 5898 { (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) ) ) ) ) ) ); } 5272 #line 839 "parser.yy" /* yacc.c:1646 */ 5273 { (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) ) ) ) ) ) ); } 5274 #line 5275 "Parser/parser.cc" /* yacc.c:1646 */ 5899 5275 break; 5900 5276 5901 5277 case 183: 5902 5903 /* Line 1806 of yacc.c */ 5904 #line 844 "parser.yy" 5278 #line 844 "parser.yy" /* yacc.c:1646 */ 5905 5279 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5280 #line 5281 "Parser/parser.cc" /* yacc.c:1646 */ 5906 5281 break; 5907 5282 5908 5283 case 185: 5909 5910 /* Line 1806 of yacc.c */ 5911 #line 850 "parser.yy" 5284 #line 850 "parser.yy" /* yacc.c:1646 */ 5912 5285 { (yyval.sn) = 0; } 5286 #line 5287 "Parser/parser.cc" /* yacc.c:1646 */ 5913 5287 break; 5914 5288 5915 5289 case 186: 5916 5917 /* Line 1806 of yacc.c */ 5918 #line 852 "parser.yy" 5290 #line 852 "parser.yy" /* yacc.c:1646 */ 5919 5291 { (yyval.sn) = 0; } 5292 #line 5293 "Parser/parser.cc" /* yacc.c:1646 */ 5920 5293 break; 5921 5294 5922 5295 case 187: 5923 5924 /* Line 1806 of yacc.c */ 5925 #line 857 "parser.yy" 5926 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5296 #line 857 "parser.yy" /* yacc.c:1646 */ 5297 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5298 #line 5299 "Parser/parser.cc" /* yacc.c:1646 */ 5927 5299 break; 5928 5300 5929 5301 case 188: 5930 5931 /* Line 1806 of yacc.c */ 5932 #line 859 "parser.yy" 5933 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5302 #line 859 "parser.yy" /* yacc.c:1646 */ 5303 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5304 #line 5305 "Parser/parser.cc" /* yacc.c:1646 */ 5934 5305 break; 5935 5306 5936 5307 case 189: 5937 5938 /* Line 1806 of yacc.c */ 5939 #line 861 "parser.yy" 5940 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5308 #line 861 "parser.yy" /* yacc.c:1646 */ 5309 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5310 #line 5311 "Parser/parser.cc" /* yacc.c:1646 */ 5941 5311 break; 5942 5312 5943 5313 case 190: 5944 5945 /* Line 1806 of yacc.c */ 5946 #line 866 "parser.yy" 5947 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5314 #line 866 "parser.yy" /* yacc.c:1646 */ 5315 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5316 #line 5317 "Parser/parser.cc" /* yacc.c:1646 */ 5948 5317 break; 5949 5318 5950 5319 case 191: 5951 5952 /* Line 1806 of yacc.c */ 5953 #line 868 "parser.yy" 5954 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5320 #line 868 "parser.yy" /* yacc.c:1646 */ 5321 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5322 #line 5323 "Parser/parser.cc" /* yacc.c:1646 */ 5955 5323 break; 5956 5324 5957 5325 case 192: 5958 5959 /* Line 1806 of yacc.c */ 5960 #line 873 "parser.yy" 5961 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5326 #line 873 "parser.yy" /* yacc.c:1646 */ 5327 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5328 #line 5329 "Parser/parser.cc" /* yacc.c:1646 */ 5962 5329 break; 5963 5330 5964 5331 case 193: 5965 5966 /* Line 1806 of yacc.c */ 5967 #line 877 "parser.yy" 5968 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5332 #line 877 "parser.yy" /* yacc.c:1646 */ 5333 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5334 #line 5335 "Parser/parser.cc" /* yacc.c:1646 */ 5969 5335 break; 5970 5336 5971 5337 case 194: 5972 5973 /* Line 1806 of yacc.c */ 5974 #line 880 "parser.yy" 5338 #line 880 "parser.yy" /* yacc.c:1646 */ 5975 5339 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5340 #line 5341 "Parser/parser.cc" /* yacc.c:1646 */ 5976 5341 break; 5977 5342 5978 5343 case 195: 5979 5980 /* Line 1806 of yacc.c */ 5981 #line 884 "parser.yy" 5982 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5344 #line 884 "parser.yy" /* yacc.c:1646 */ 5345 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5346 #line 5347 "Parser/parser.cc" /* yacc.c:1646 */ 5983 5347 break; 5984 5348 5985 5349 case 196: 5986 5987 /* Line 1806 of yacc.c */ 5988 #line 887 "parser.yy" 5350 #line 887 "parser.yy" /* yacc.c:1646 */ 5989 5351 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5352 #line 5353 "Parser/parser.cc" /* yacc.c:1646 */ 5990 5353 break; 5991 5354 5992 5355 case 197: 5993 5994 /* Line 1806 of yacc.c */ 5995 #line 891 "parser.yy" 5996 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5356 #line 891 "parser.yy" /* yacc.c:1646 */ 5357 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5358 #line 5359 "Parser/parser.cc" /* yacc.c:1646 */ 5997 5359 break; 5998 5360 5999 5361 case 198: 6000 6001 /* Line 1806 of yacc.c */ 6002 #line 893 "parser.yy" 6003 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5362 #line 893 "parser.yy" /* yacc.c:1646 */ 5363 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5364 #line 5365 "Parser/parser.cc" /* yacc.c:1646 */ 6004 5365 break; 6005 5366 6006 5367 case 199: 6007 6008 /* Line 1806 of yacc.c */ 6009 #line 895 "parser.yy" 6010 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5368 #line 895 "parser.yy" /* yacc.c:1646 */ 5369 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5370 #line 5371 "Parser/parser.cc" /* yacc.c:1646 */ 6011 5371 break; 6012 5372 6013 5373 case 200: 6014 6015 /* Line 1806 of yacc.c */ 6016 #line 897 "parser.yy" 6017 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5374 #line 897 "parser.yy" /* yacc.c:1646 */ 5375 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5376 #line 5377 "Parser/parser.cc" /* yacc.c:1646 */ 6018 5377 break; 6019 5378 6020 5379 case 201: 6021 6022 /* Line 1806 of yacc.c */ 6023 #line 899 "parser.yy" 6024 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5380 #line 899 "parser.yy" /* yacc.c:1646 */ 5381 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5382 #line 5383 "Parser/parser.cc" /* yacc.c:1646 */ 6025 5383 break; 6026 5384 6027 5385 case 202: 6028 6029 /* Line 1806 of yacc.c */ 6030 #line 904 "parser.yy" 6031 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5386 #line 904 "parser.yy" /* yacc.c:1646 */ 5387 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5388 #line 5389 "Parser/parser.cc" /* yacc.c:1646 */ 6032 5389 break; 6033 5390 6034 5391 case 203: 6035 6036 /* Line 1806 of yacc.c */ 6037 #line 906 "parser.yy" 6038 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5392 #line 906 "parser.yy" /* yacc.c:1646 */ 5393 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5394 #line 5395 "Parser/parser.cc" /* yacc.c:1646 */ 6039 5395 break; 6040 5396 6041 5397 case 204: 6042 6043 /* Line 1806 of yacc.c */ 6044 #line 908 "parser.yy" 6045 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5398 #line 908 "parser.yy" /* yacc.c:1646 */ 5399 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5400 #line 5401 "Parser/parser.cc" /* yacc.c:1646 */ 6046 5401 break; 6047 5402 6048 5403 case 206: 6049 6050 /* Line 1806 of yacc.c */ 6051 #line 915 "parser.yy" 6052 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5404 #line 915 "parser.yy" /* yacc.c:1646 */ 5405 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5406 #line 5407 "Parser/parser.cc" /* yacc.c:1646 */ 6053 5407 break; 6054 5408 6055 5409 case 207: 6056 6057 /* Line 1806 of yacc.c */ 6058 #line 917 "parser.yy" 6059 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5410 #line 917 "parser.yy" /* yacc.c:1646 */ 5411 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5412 #line 5413 "Parser/parser.cc" /* yacc.c:1646 */ 6060 5413 break; 6061 5414 6062 5415 case 208: 6063 6064 /* Line 1806 of yacc.c */ 6065 #line 919 "parser.yy" 6066 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5416 #line 919 "parser.yy" /* yacc.c:1646 */ 5417 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5418 #line 5419 "Parser/parser.cc" /* yacc.c:1646 */ 6067 5419 break; 6068 5420 6069 5421 case 209: 6070 6071 /* Line 1806 of yacc.c */ 6072 #line 921 "parser.yy" 6073 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5422 #line 921 "parser.yy" /* yacc.c:1646 */ 5423 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5424 #line 5425 "Parser/parser.cc" /* yacc.c:1646 */ 6074 5425 break; 6075 5426 6076 5427 case 210: 6077 6078 /* Line 1806 of yacc.c */ 6079 #line 926 "parser.yy" 6080 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5428 #line 926 "parser.yy" /* yacc.c:1646 */ 5429 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5430 #line 5431 "Parser/parser.cc" /* yacc.c:1646 */ 6081 5431 break; 6082 5432 6083 5433 case 211: 6084 6085 /* Line 1806 of yacc.c */ 6086 #line 928 "parser.yy" 6087 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5434 #line 928 "parser.yy" /* yacc.c:1646 */ 5435 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5436 #line 5437 "Parser/parser.cc" /* yacc.c:1646 */ 6088 5437 break; 6089 5438 6090 5439 case 212: 6091 6092 /* Line 1806 of yacc.c */ 6093 #line 930 "parser.yy" 6094 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5440 #line 930 "parser.yy" /* yacc.c:1646 */ 5441 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5442 #line 5443 "Parser/parser.cc" /* yacc.c:1646 */ 6095 5443 break; 6096 5444 6097 5445 case 213: 6098 6099 /* Line 1806 of yacc.c */ 6100 #line 932 "parser.yy" 6101 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5446 #line 932 "parser.yy" /* yacc.c:1646 */ 5447 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5448 #line 5449 "Parser/parser.cc" /* yacc.c:1646 */ 6102 5449 break; 6103 5450 6104 5451 case 214: 6105 6106 /* Line 1806 of yacc.c */ 6107 #line 937 "parser.yy" 6108 { 6109 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5452 #line 937 "parser.yy" /* yacc.c:1646 */ 5453 { 5454 (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) ); 6110 5455 } 5456 #line 5457 "Parser/parser.cc" /* yacc.c:1646 */ 6111 5457 break; 6112 5458 6113 5459 case 216: 6114 6115 /* Line 1806 of yacc.c */ 6116 #line 950 "parser.yy" 5460 #line 950 "parser.yy" /* yacc.c:1646 */ 6117 5461 { 6118 5462 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6119 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );5463 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 6120 5464 } 5465 #line 5466 "Parser/parser.cc" /* yacc.c:1646 */ 6121 5466 break; 6122 5467 6123 5468 case 217: 6124 6125 /* Line 1806 of yacc.c */ 6126 #line 955 "parser.yy" 6127 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5469 #line 955 "parser.yy" /* yacc.c:1646 */ 5470 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5471 #line 5472 "Parser/parser.cc" /* yacc.c:1646 */ 6128 5472 break; 6129 5473 6130 5474 case 218: 6131 6132 /* Line 1806 of yacc.c */ 6133 #line 957 "parser.yy" 5475 #line 957 "parser.yy" /* yacc.c:1646 */ 6134 5476 { 6135 5477 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6136 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );5478 (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); 6137 5479 } 5480 #line 5481 "Parser/parser.cc" /* yacc.c:1646 */ 6138 5481 break; 6139 5482 6140 5483 case 220: 6141 6142 /* Line 1806 of yacc.c */ 6143 #line 966 "parser.yy" 6144 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5484 #line 966 "parser.yy" /* yacc.c:1646 */ 5485 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5486 #line 5487 "Parser/parser.cc" /* yacc.c:1646 */ 6145 5487 break; 6146 5488 6147 5489 case 221: 6148 6149 /* Line 1806 of yacc.c */ 6150 #line 968 "parser.yy" 6151 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5490 #line 968 "parser.yy" /* yacc.c:1646 */ 5491 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5492 #line 5493 "Parser/parser.cc" /* yacc.c:1646 */ 6152 5493 break; 6153 5494 6154 5495 case 222: 6155 6156 /* Line 1806 of yacc.c */ 6157 #line 970 "parser.yy" 6158 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5496 #line 970 "parser.yy" /* yacc.c:1646 */ 5497 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5498 #line 5499 "Parser/parser.cc" /* yacc.c:1646 */ 6159 5499 break; 6160 5500 6161 5501 case 223: 6162 6163 /* Line 1806 of yacc.c */ 6164 #line 972 "parser.yy" 6165 { (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) ) ); } 5502 #line 972 "parser.yy" /* yacc.c:1646 */ 5503 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5504 #line 5505 "Parser/parser.cc" /* yacc.c:1646 */ 6166 5505 break; 6167 5506 6168 5507 case 224: 6169 6170 /* Line 1806 of yacc.c */ 6171 #line 974 "parser.yy" 6172 { (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) ) ); } 5508 #line 974 "parser.yy" /* yacc.c:1646 */ 5509 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5510 #line 5511 "Parser/parser.cc" /* yacc.c:1646 */ 6173 5511 break; 6174 5512 6175 5513 case 225: 6176 6177 /* Line 1806 of yacc.c */ 6178 #line 979 "parser.yy" 5514 #line 979 "parser.yy" /* yacc.c:1646 */ 6179 5515 { (yyval.flag) = false; } 5516 #line 5517 "Parser/parser.cc" /* yacc.c:1646 */ 6180 5517 break; 6181 5518 6182 5519 case 226: 6183 6184 /* Line 1806 of yacc.c */ 6185 #line 981 "parser.yy" 5520 #line 981 "parser.yy" /* yacc.c:1646 */ 6186 5521 { (yyval.flag) = true; } 5522 #line 5523 "Parser/parser.cc" /* yacc.c:1646 */ 6187 5523 break; 6188 5524 6189 5525 case 227: 6190 6191 /* Line 1806 of yacc.c */ 6192 #line 986 "parser.yy" 5526 #line 986 "parser.yy" /* yacc.c:1646 */ 6193 5527 { (yyval.en) = 0; } 5528 #line 5529 "Parser/parser.cc" /* yacc.c:1646 */ 6194 5529 break; 6195 5530 6196 5531 case 230: 6197 6198 /* Line 1806 of yacc.c */ 6199 #line 993 "parser.yy" 6200 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5532 #line 993 "parser.yy" /* yacc.c:1646 */ 5533 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5534 #line 5535 "Parser/parser.cc" /* yacc.c:1646 */ 6201 5535 break; 6202 5536 6203 5537 case 231: 6204 6205 /* Line 1806 of yacc.c */ 6206 #line 998 "parser.yy" 6207 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5538 #line 998 "parser.yy" /* yacc.c:1646 */ 5539 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5540 #line 5541 "Parser/parser.cc" /* yacc.c:1646 */ 6208 5541 break; 6209 5542 6210 5543 case 232: 6211 6212 /* Line 1806 of yacc.c */ 6213 #line 1000 "parser.yy" 6214 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5544 #line 1000 "parser.yy" /* yacc.c:1646 */ 5545 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5546 #line 5547 "Parser/parser.cc" /* yacc.c:1646 */ 6215 5547 break; 6216 5548 6217 5549 case 233: 6218 6219 /* Line 1806 of yacc.c */ 6220 #line 1005 "parser.yy" 5550 #line 1005 "parser.yy" /* yacc.c:1646 */ 6221 5551 { (yyval.en) = 0; } 5552 #line 5553 "Parser/parser.cc" /* yacc.c:1646 */ 6222 5553 break; 6223 5554 6224 5555 case 234: 6225 6226 /* Line 1806 of yacc.c */ 6227 #line 1007 "parser.yy" 6228 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5556 #line 1007 "parser.yy" /* yacc.c:1646 */ 5557 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5558 #line 5559 "Parser/parser.cc" /* yacc.c:1646 */ 6229 5559 break; 6230 5560 6231 5561 case 235: 6232 6233 /* Line 1806 of yacc.c */ 6234 #line 1009 "parser.yy" 6235 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5562 #line 1009 "parser.yy" /* yacc.c:1646 */ 5563 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5564 #line 5565 "Parser/parser.cc" /* yacc.c:1646 */ 6236 5565 break; 6237 5566 6238 5567 case 236: 6239 6240 /* Line 1806 of yacc.c */ 6241 #line 1014 "parser.yy" 6242 { 6243 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); 6244 delete (yyvsp[(1) - (1)].tok); // allocated by lexer 5568 #line 1014 "parser.yy" /* yacc.c:1646 */ 5569 { 5570 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[0].tok) ); 5571 delete (yyvsp[0].tok); // allocated by lexer 6245 5572 } 5573 #line 5574 "Parser/parser.cc" /* yacc.c:1646 */ 6246 5574 break; 6247 5575 6248 5576 case 237: 6249 6250 /* Line 1806 of yacc.c */ 6251 #line 1019 "parser.yy" 6252 { 6253 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); 6254 delete (yyvsp[(3) - (3)].tok); // allocated by lexer 5577 #line 1019 "parser.yy" /* yacc.c:1646 */ 5578 { 5579 (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) ); 5580 delete (yyvsp[0].tok); // allocated by lexer 6255 5581 } 5582 #line 5583 "Parser/parser.cc" /* yacc.c:1646 */ 6256 5583 break; 6257 5584 6258 5585 case 238: 6259 6260 /* Line 1806 of yacc.c */ 6261 #line 1029 "parser.yy" 5586 #line 1029 "parser.yy" /* yacc.c:1646 */ 6262 5587 { (yyval.decl) = 0; } 5588 #line 5589 "Parser/parser.cc" /* yacc.c:1646 */ 6263 5589 break; 6264 5590 6265 5591 case 241: 6266 6267 /* Line 1806 of yacc.c */ 6268 #line 1036 "parser.yy" 6269 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5592 #line 1036 "parser.yy" /* yacc.c:1646 */ 5593 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5594 #line 5595 "Parser/parser.cc" /* yacc.c:1646 */ 6270 5595 break; 6271 5596 6272 5597 case 242: 6273 6274 /* Line 1806 of yacc.c */ 6275 #line 1041 "parser.yy" 5598 #line 1041 "parser.yy" /* yacc.c:1646 */ 6276 5599 { (yyval.decl) = 0; } 5600 #line 5601 "Parser/parser.cc" /* yacc.c:1646 */ 6277 5601 break; 6278 5602 6279 5603 case 245: 6280 6281 /* Line 1806 of yacc.c */ 6282 #line 1048 "parser.yy" 6283 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5604 #line 1048 "parser.yy" /* yacc.c:1646 */ 5605 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5606 #line 5607 "Parser/parser.cc" /* yacc.c:1646 */ 6284 5607 break; 6285 5608 6286 5609 case 250: 6287 6288 /* Line 1806 of yacc.c */ 6289 #line 1062 "parser.yy" 5610 #line 1062 "parser.yy" /* yacc.c:1646 */ 6290 5611 {} 5612 #line 5613 "Parser/parser.cc" /* yacc.c:1646 */ 6291 5613 break; 6292 5614 6293 5615 case 251: 6294 6295 /* Line 1806 of yacc.c */ 6296 #line 1063 "parser.yy" 5616 #line 1063 "parser.yy" /* yacc.c:1646 */ 6297 5617 {} 5618 #line 5619 "Parser/parser.cc" /* yacc.c:1646 */ 6298 5619 break; 6299 5620 6300 5621 case 259: 6301 6302 /* Line 1806 of yacc.c */ 6303 #line 1092 "parser.yy" 5622 #line 1092 "parser.yy" /* yacc.c:1646 */ 6304 5623 { 6305 5624 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6306 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );5625 (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) ); 6307 5626 } 5627 #line 5628 "Parser/parser.cc" /* yacc.c:1646 */ 6308 5628 break; 6309 5629 6310 5630 case 260: 6311 6312 /* Line 1806 of yacc.c */ 6313 #line 1099 "parser.yy" 5631 #line 1099 "parser.yy" /* yacc.c:1646 */ 6314 5632 { 6315 5633 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6316 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;5634 (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );; 6317 5635 } 5636 #line 5637 "Parser/parser.cc" /* yacc.c:1646 */ 6318 5637 break; 6319 5638 6320 5639 case 261: 6321 6322 /* Line 1806 of yacc.c */ 6323 #line 1104 "parser.yy" 6324 { 6325 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6326 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5640 #line 1104 "parser.yy" /* yacc.c:1646 */ 5641 { 5642 typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID ); 5643 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) ); 6327 5644 } 5645 #line 5646 "Parser/parser.cc" /* yacc.c:1646 */ 6328 5646 break; 6329 5647 6330 5648 case 262: 6331 6332 /* Line 1806 of yacc.c */ 6333 #line 1114 "parser.yy" 6334 { 6335 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6336 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5649 #line 1114 "parser.yy" /* yacc.c:1646 */ 5650 { 5651 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5652 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6337 5653 } 5654 #line 5655 "Parser/parser.cc" /* yacc.c:1646 */ 6338 5655 break; 6339 5656 6340 5657 case 263: 6341 6342 /* Line 1806 of yacc.c */ 6343 #line 1119 "parser.yy" 6344 { 6345 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6346 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5658 #line 1119 "parser.yy" /* yacc.c:1646 */ 5659 { 5660 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5661 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6347 5662 } 5663 #line 5664 "Parser/parser.cc" /* yacc.c:1646 */ 6348 5664 break; 6349 5665 6350 5666 case 264: 6351 6352 /* Line 1806 of yacc.c */ 6353 #line 1124 "parser.yy" 6354 { 6355 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6356 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5667 #line 1124 "parser.yy" /* yacc.c:1646 */ 5668 { 5669 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5670 (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) ); 6357 5671 } 5672 #line 5673 "Parser/parser.cc" /* yacc.c:1646 */ 6358 5673 break; 6359 5674 6360 5675 case 265: 6361 6362 /* Line 1806 of yacc.c */ 6363 #line 1132 "parser.yy" 5676 #line 1132 "parser.yy" /* yacc.c:1646 */ 6364 5677 { 6365 5678 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6366 (yyval.decl) = (yyvsp[ (1) - (1)].decl);5679 (yyval.decl) = (yyvsp[0].decl); 6367 5680 } 5681 #line 5682 "Parser/parser.cc" /* yacc.c:1646 */ 6368 5682 break; 6369 5683 6370 5684 case 266: 6371 6372 /* Line 1806 of yacc.c */ 6373 #line 1137 "parser.yy" 5685 #line 1137 "parser.yy" /* yacc.c:1646 */ 6374 5686 { 6375 5687 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6376 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5688 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6377 5689 } 5690 #line 5691 "Parser/parser.cc" /* yacc.c:1646 */ 6378 5691 break; 6379 5692 6380 5693 case 267: 6381 6382 /* Line 1806 of yacc.c */ 6383 #line 1142 "parser.yy" 5694 #line 1142 "parser.yy" /* yacc.c:1646 */ 6384 5695 { 6385 5696 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6386 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5697 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6387 5698 } 5699 #line 5700 "Parser/parser.cc" /* yacc.c:1646 */ 6388 5700 break; 6389 5701 6390 5702 case 268: 6391 6392 /* Line 1806 of yacc.c */ 6393 #line 1147 "parser.yy" 5703 #line 1147 "parser.yy" /* yacc.c:1646 */ 6394 5704 { 6395 5705 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6396 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );5706 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) ); 6397 5707 } 5708 #line 5709 "Parser/parser.cc" /* yacc.c:1646 */ 6398 5709 break; 6399 5710 6400 5711 case 269: 6401 6402 /* Line 1806 of yacc.c */ 6403 #line 1152 "parser.yy" 6404 { 6405 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6406 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5712 #line 1152 "parser.yy" /* yacc.c:1646 */ 5713 { 5714 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID ); 5715 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6407 5716 } 5717 #line 5718 "Parser/parser.cc" /* yacc.c:1646 */ 6408 5718 break; 6409 5719 6410 5720 case 270: 6411 6412 /* Line 1806 of yacc.c */ 6413 #line 1183 "parser.yy" 6414 { 6415 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5721 #line 1183 "parser.yy" /* yacc.c:1646 */ 5722 { 5723 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6416 5724 } 5725 #line 5726 "Parser/parser.cc" /* yacc.c:1646 */ 6417 5726 break; 6418 5727 6419 5728 case 271: 6420 6421 /* Line 1806 of yacc.c */ 6422 #line 1187 "parser.yy" 6423 { 6424 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5729 #line 1187 "parser.yy" /* yacc.c:1646 */ 5730 { 5731 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6425 5732 } 5733 #line 5734 "Parser/parser.cc" /* yacc.c:1646 */ 6426 5734 break; 6427 5735 6428 5736 case 272: 6429 6430 /* Line 1806 of yacc.c */ 6431 #line 1194 "parser.yy" 6432 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5737 #line 1194 "parser.yy" /* yacc.c:1646 */ 5738 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5739 #line 5740 "Parser/parser.cc" /* yacc.c:1646 */ 6433 5740 break; 6434 5741 6435 5742 case 273: 6436 6437 /* Line 1806 of yacc.c */ 6438 #line 1198 "parser.yy" 6439 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5743 #line 1198 "parser.yy" /* yacc.c:1646 */ 5744 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */ 6440 5746 break; 6441 5747 6442 5748 case 274: 6443 6444 /* Line 1806 of yacc.c */ 6445 #line 1203 "parser.yy" 5749 #line 1203 "parser.yy" /* yacc.c:1646 */ 6446 5750 { 6447 5751 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6448 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5752 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6449 5753 } 5754 #line 5755 "Parser/parser.cc" /* yacc.c:1646 */ 6450 5755 break; 6451 5756 6452 5757 case 275: 6453 6454 /* Line 1806 of yacc.c */ 6455 #line 1208 "parser.yy" 5758 #line 1208 "parser.yy" /* yacc.c:1646 */ 6456 5759 { 6457 5760 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6458 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5761 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6459 5762 } 5763 #line 5764 "Parser/parser.cc" /* yacc.c:1646 */ 6460 5764 break; 6461 5765 6462 5766 case 276: 6463 6464 /* Line 1806 of yacc.c */ 6465 #line 1213 "parser.yy" 6466 { 6467 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6468 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5767 #line 1213 "parser.yy" /* yacc.c:1646 */ 5768 { 5769 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 5770 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6469 5771 } 5772 #line 5773 "Parser/parser.cc" /* yacc.c:1646 */ 6470 5773 break; 6471 5774 6472 5775 case 277: 6473 6474 /* Line 1806 of yacc.c */ 6475 #line 1224 "parser.yy" 5776 #line 1224 "parser.yy" /* yacc.c:1646 */ 6476 5777 { 6477 5778 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6478 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();5779 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef(); 6479 5780 } 5781 #line 5782 "Parser/parser.cc" /* yacc.c:1646 */ 6480 5782 break; 6481 5783 6482 5784 case 278: 6483 6484 /* Line 1806 of yacc.c */ 6485 #line 1229 "parser.yy" 5785 #line 1229 "parser.yy" /* yacc.c:1646 */ 6486 5786 { 6487 5787 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6488 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );5788 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() ); 6489 5789 } 5790 #line 5791 "Parser/parser.cc" /* yacc.c:1646 */ 6490 5791 break; 6491 5792 6492 5793 case 279: 6493 6494 /* Line 1806 of yacc.c */ 6495 #line 1234 "parser.yy" 5794 #line 1234 "parser.yy" /* yacc.c:1646 */ 6496 5795 { 6497 5796 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6498 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();5797 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef(); 6499 5798 } 5799 #line 5800 "Parser/parser.cc" /* yacc.c:1646 */ 6500 5800 break; 6501 5801 6502 5802 case 280: 6503 6504 /* Line 1806 of yacc.c */ 6505 #line 1239 "parser.yy" 5803 #line 1239 "parser.yy" /* yacc.c:1646 */ 6506 5804 { 6507 5805 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6508 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();5806 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef(); 6509 5807 } 5808 #line 5809 "Parser/parser.cc" /* yacc.c:1646 */ 6510 5809 break; 6511 5810 6512 5811 case 281: 6513 6514 /* Line 1806 of yacc.c */ 6515 #line 1244 "parser.yy" 5812 #line 1244 "parser.yy" /* yacc.c:1646 */ 6516 5813 { 6517 5814 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6518 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );5815 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) ); 6519 5816 } 5817 #line 5818 "Parser/parser.cc" /* yacc.c:1646 */ 6520 5818 break; 6521 5819 6522 5820 case 282: 6523 6524 /* Line 1806 of yacc.c */ 6525 #line 1253 "parser.yy" 6526 { 6527 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5821 #line 1253 "parser.yy" /* yacc.c:1646 */ 5822 { 5823 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6528 5824 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6529 5825 } 5826 #line 5827 "Parser/parser.cc" /* yacc.c:1646 */ 6530 5827 break; 6531 5828 6532 5829 case 283: 6533 6534 /* Line 1806 of yacc.c */ 6535 #line 1258 "parser.yy" 6536 { 6537 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5830 #line 1258 "parser.yy" /* yacc.c:1646 */ 5831 { 5832 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6538 5833 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6539 5834 } 5835 #line 5836 "Parser/parser.cc" /* yacc.c:1646 */ 6540 5836 break; 6541 5837 6542 5838 case 288: 6543 6544 /* Line 1806 of yacc.c */ 6545 #line 1275 "parser.yy" 5839 #line 1275 "parser.yy" /* yacc.c:1646 */ 6546 5840 { 6547 5841 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6548 (yyval.decl) = ( (yyvsp[ (2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );5842 (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) ); 6549 5843 } 5844 #line 5845 "Parser/parser.cc" /* yacc.c:1646 */ 6550 5845 break; 6551 5846 6552 5847 case 289: 6553 6554 /* Line 1806 of yacc.c */ 6555 #line 1280 "parser.yy" 5848 #line 1280 "parser.yy" /* yacc.c:1646 */ 6556 5849 { 6557 5850 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6558 (yyval.decl) = (yyvsp[ (1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );5851 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) ); 6559 5852 } 5853 #line 5854 "Parser/parser.cc" /* yacc.c:1646 */ 6560 5854 break; 6561 5855 6562 5856 case 298: 6563 6564 /* Line 1806 of yacc.c */ 6565 #line 1302 "parser.yy" 5857 #line 1302 "parser.yy" /* yacc.c:1646 */ 6566 5858 { (yyval.decl) = 0; } 5859 #line 5860 "Parser/parser.cc" /* yacc.c:1646 */ 6567 5860 break; 6568 5861 6569 5862 case 301: 6570 6571 /* Line 1806 of yacc.c */ 6572 #line 1314 "parser.yy" 6573 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5863 #line 1314 "parser.yy" /* yacc.c:1646 */ 5864 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */ 6574 5866 break; 6575 5867 6576 5868 case 304: 6577 6578 /* Line 1806 of yacc.c */ 6579 #line 1325 "parser.yy" 5869 #line 1325 "parser.yy" /* yacc.c:1646 */ 6580 5870 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */ 6581 5872 break; 6582 5873 6583 5874 case 305: 6584 6585 /* Line 1806 of yacc.c */ 6586 #line 1327 "parser.yy" 5875 #line 1327 "parser.yy" /* yacc.c:1646 */ 6587 5876 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */ 6588 5878 break; 6589 5879 6590 5880 case 306: 6591 6592 /* Line 1806 of yacc.c */ 6593 #line 1329 "parser.yy" 5881 #line 1329 "parser.yy" /* yacc.c:1646 */ 6594 5882 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */ 6595 5884 break; 6596 5885 6597 5886 case 307: 6598 6599 /* Line 1806 of yacc.c */ 6600 #line 1331 "parser.yy" 5887 #line 1331 "parser.yy" /* yacc.c:1646 */ 6601 5888 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */ 6602 5890 break; 6603 5891 6604 5892 case 308: 6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1333 "parser.yy" 5893 #line 1333 "parser.yy" /* yacc.c:1646 */ 6608 5894 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */ 6609 5896 break; 6610 5897 6611 5898 case 309: 6612 6613 /* Line 1806 of yacc.c */ 6614 #line 1335 "parser.yy" 5899 #line 1335 "parser.yy" /* yacc.c:1646 */ 6615 5900 { 6616 5901 typedefTable.enterScope(); 6617 5902 } 5903 #line 5904 "Parser/parser.cc" /* yacc.c:1646 */ 6618 5904 break; 6619 5905 6620 5906 case 310: 6621 6622 /* Line 1806 of yacc.c */ 6623 #line 1339 "parser.yy" 5907 #line 1339 "parser.yy" /* yacc.c:1646 */ 6624 5908 { 6625 5909 typedefTable.leaveScope(); 6626 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ (4) - (5)].decl) );5910 (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) ); 6627 5911 } 5912 #line 5913 "Parser/parser.cc" /* yacc.c:1646 */ 6628 5913 break; 6629 5914 6630 5915 case 312: 6631 6632 /* Line 1806 of yacc.c */ 6633 #line 1348 "parser.yy" 6634 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5916 #line 1348 "parser.yy" /* yacc.c:1646 */ 5917 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5918 #line 5919 "Parser/parser.cc" /* yacc.c:1646 */ 6635 5919 break; 6636 5920 6637 5921 case 313: 6638 6639 /* Line 1806 of yacc.c */ 6640 #line 1350 "parser.yy" 6641 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5922 #line 1350 "parser.yy" /* yacc.c:1646 */ 5923 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */ 6642 5925 break; 6643 5926 6644 5927 case 315: 6645 6646 /* Line 1806 of yacc.c */ 6647 #line 1361 "parser.yy" 6648 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5928 #line 1361 "parser.yy" /* yacc.c:1646 */ 5929 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 6649 5931 break; 6650 5932 6651 5933 case 316: 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1366 "parser.yy" 5934 #line 1366 "parser.yy" /* yacc.c:1646 */ 6655 5935 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 6656 5937 break; 6657 5938 6658 5939 case 317: 6659 6660 /* Line 1806 of yacc.c */ 6661 #line 1368 "parser.yy" 5940 #line 1368 "parser.yy" /* yacc.c:1646 */ 6662 5941 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */ 6663 5943 break; 6664 5944 6665 5945 case 318: 6666 6667 /* Line 1806 of yacc.c */ 6668 #line 1370 "parser.yy" 5946 #line 1370 "parser.yy" /* yacc.c:1646 */ 6669 5947 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */ 6670 5949 break; 6671 5950 6672 5951 case 319: 6673 6674 /* Line 1806 of yacc.c */ 6675 #line 1372 "parser.yy" 5952 #line 1372 "parser.yy" /* yacc.c:1646 */ 6676 5953 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */ 6677 5955 break; 6678 5956 6679 5957 case 320: 6680 6681 /* Line 1806 of yacc.c */ 6682 #line 1375 "parser.yy" 5958 #line 1375 "parser.yy" /* yacc.c:1646 */ 6683 5959 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */ 6684 5961 break; 6685 5962 6686 5963 case 321: 6687 6688 /* Line 1806 of yacc.c */ 6689 #line 1377 "parser.yy" 5964 #line 1377 "parser.yy" /* yacc.c:1646 */ 6690 5965 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */ 6691 5967 break; 6692 5968 6693 5969 case 322: 6694 6695 /* Line 1806 of yacc.c */ 6696 #line 1380 "parser.yy" 5970 #line 1380 "parser.yy" /* yacc.c:1646 */ 6697 5971 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */ 6698 5973 break; 6699 5974 6700 5975 case 323: 6701 6702 /* Line 1806 of yacc.c */ 6703 #line 1382 "parser.yy" 5976 #line 1382 "parser.yy" /* yacc.c:1646 */ 6704 5977 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */ 6705 5979 break; 6706 5980 6707 5981 case 324: 6708 6709 /* Line 1806 of yacc.c */ 6710 #line 1387 "parser.yy" 5982 #line 1387 "parser.yy" /* yacc.c:1646 */ 6711 5983 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */ 6712 5985 break; 6713 5986 6714 5987 case 325: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1389 "parser.yy" 5988 #line 1389 "parser.yy" /* yacc.c:1646 */ 6718 5989 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */ 6719 5991 break; 6720 5992 6721 5993 case 326: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1391 "parser.yy" 5994 #line 1391 "parser.yy" /* yacc.c:1646 */ 6725 5995 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */ 6726 5997 break; 6727 5998 6728 5999 case 327: 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1393 "parser.yy" 6000 #line 1393 "parser.yy" /* yacc.c:1646 */ 6732 6001 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */ 6733 6003 break; 6734 6004 6735 6005 case 328: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1395 "parser.yy" 6006 #line 1395 "parser.yy" /* yacc.c:1646 */ 6739 6007 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */ 6740 6009 break; 6741 6010 6742 6011 case 329: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1397 "parser.yy" 6012 #line 1397 "parser.yy" /* yacc.c:1646 */ 6746 6013 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */ 6747 6015 break; 6748 6016 6749 6017 case 330: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1399 "parser.yy" 6018 #line 1399 "parser.yy" /* yacc.c:1646 */ 6753 6019 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */ 6754 6021 break; 6755 6022 6756 6023 case 331: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1401 "parser.yy" 6024 #line 1401 "parser.yy" /* yacc.c:1646 */ 6760 6025 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */ 6761 6027 break; 6762 6028 6763 6029 case 332: 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1403 "parser.yy" 6030 #line 1403 "parser.yy" /* yacc.c:1646 */ 6767 6031 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */ 6768 6033 break; 6769 6034 6770 6035 case 333: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1405 "parser.yy" 6036 #line 1405 "parser.yy" /* yacc.c:1646 */ 6774 6037 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */ 6775 6039 break; 6776 6040 6777 6041 case 334: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1407 "parser.yy" 6042 #line 1407 "parser.yy" /* yacc.c:1646 */ 6781 6043 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */ 6782 6045 break; 6783 6046 6784 6047 case 335: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1409 "parser.yy" 6048 #line 1409 "parser.yy" /* yacc.c:1646 */ 6788 6049 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */ 6789 6051 break; 6790 6052 6791 6053 case 336: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1411 "parser.yy" 6054 #line 1411 "parser.yy" /* yacc.c:1646 */ 6795 6055 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */ 6796 6057 break; 6797 6058 6798 6059 case 337: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1413 "parser.yy" 6802 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6060 #line 1413 "parser.yy" /* yacc.c:1646 */ 6061 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */ 6803 6063 break; 6804 6064 6805 6065 case 338: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1415 "parser.yy" 6809 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6066 #line 1415 "parser.yy" /* yacc.c:1646 */ 6067 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */ 6810 6069 break; 6811 6070 6812 6071 case 340: 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1422 "parser.yy" 6816 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6072 #line 1422 "parser.yy" /* yacc.c:1646 */ 6073 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */ 6817 6075 break; 6818 6076 6819 6077 case 341: 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1424 "parser.yy" 6823 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6078 #line 1424 "parser.yy" /* yacc.c:1646 */ 6079 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6824 6081 break; 6825 6082 6826 6083 case 342: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1426 "parser.yy" 6830 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6084 #line 1426 "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 */ 6831 6087 break; 6832 6088 6833 6089 case 343: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1428 "parser.yy" 6837 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6090 #line 1428 "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 */ 6838 6093 break; 6839 6094 6840 6095 case 345: 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1434 "parser.yy" 6844 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6096 #line 1434 "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 */ 6845 6099 break; 6846 6100 6847 6101 case 347: 6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1441 "parser.yy" 6851 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6102 #line 1441 "parser.yy" /* yacc.c:1646 */ 6103 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6852 6105 break; 6853 6106 6854 6107 case 348: 6855 6856 /* Line 1806 of yacc.c */ 6857 #line 1443 "parser.yy" 6858 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6108 #line 1443 "parser.yy" /* yacc.c:1646 */ 6109 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6859 6111 break; 6860 6112 6861 6113 case 349: 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1445 "parser.yy" 6865 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6114 #line 1445 "parser.yy" /* yacc.c:1646 */ 6115 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6866 6117 break; 6867 6118 6868 6119 case 350: 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1450 "parser.yy" 6872 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6120 #line 1450 "parser.yy" /* yacc.c:1646 */ 6121 { (yyval.decl) = (yyvsp[-1].decl); } 6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6873 6123 break; 6874 6124 6875 6125 case 351: 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1452 "parser.yy" 6879 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6126 #line 1452 "parser.yy" /* yacc.c:1646 */ 6127 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6880 6129 break; 6881 6130 6882 6131 case 352: 6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1454 "parser.yy" 6886 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6132 #line 1454 "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 */ 6887 6135 break; 6888 6136 6889 6137 case 353: 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1456 "parser.yy" 6893 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6138 #line 1456 "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 */ 6894 6141 break; 6895 6142 6896 6143 case 355: 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1462 "parser.yy" 6900 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6144 #line 1462 "parser.yy" /* yacc.c:1646 */ 6145 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6901 6147 break; 6902 6148 6903 6149 case 356: 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1464 "parser.yy" 6907 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6150 #line 1464 "parser.yy" /* yacc.c:1646 */ 6151 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6908 6153 break; 6909 6154 6910 6155 case 357: 6911 6912 /* Line 1806 of yacc.c */ 6913 #line 1466 "parser.yy" 6914 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6156 #line 1466 "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 */ 6915 6159 break; 6916 6160 6917 6161 case 359: 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1472 "parser.yy" 6921 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6162 #line 1472 "parser.yy" /* yacc.c:1646 */ 6163 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6922 6165 break; 6923 6166 6924 6167 case 360: 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1474 "parser.yy" 6928 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6168 #line 1474 "parser.yy" /* yacc.c:1646 */ 6169 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6929 6171 break; 6930 6172 6931 6173 case 362: 6932 6933 /* Line 1806 of yacc.c */ 6934 #line 1480 "parser.yy" 6935 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6174 #line 1480 "parser.yy" /* yacc.c:1646 */ 6175 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6936 6177 break; 6937 6178 6938 6179 case 363: 6939 6940 /* Line 1806 of yacc.c */ 6941 #line 1482 "parser.yy" 6942 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6180 #line 1482 "parser.yy" /* yacc.c:1646 */ 6181 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6182 #line 6183 "Parser/parser.cc" /* yacc.c:1646 */ 6943 6183 break; 6944 6184 6945 6185 case 364: 6946 6947 /* Line 1806 of yacc.c */ 6948 #line 1484 "parser.yy" 6949 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6186 #line 1484 "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 */ 6950 6189 break; 6951 6190 6952 6191 case 365: 6953 6954 /* Line 1806 of yacc.c */ 6955 #line 1489 "parser.yy" 6956 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6192 #line 1489 "parser.yy" /* yacc.c:1646 */ 6193 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6194 #line 6195 "Parser/parser.cc" /* yacc.c:1646 */ 6957 6195 break; 6958 6196 6959 6197 case 366: 6960 6961 /* Line 1806 of yacc.c */ 6962 #line 1491 "parser.yy" 6963 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6198 #line 1491 "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 */ 6964 6201 break; 6965 6202 6966 6203 case 367: 6967 6968 /* Line 1806 of yacc.c */ 6969 #line 1493 "parser.yy" 6970 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6204 #line 1493 "parser.yy" /* yacc.c:1646 */ 6205 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6206 #line 6207 "Parser/parser.cc" /* yacc.c:1646 */ 6971 6207 break; 6972 6208 6973 6209 case 370: 6974 6975 /* Line 1806 of yacc.c */ 6976 #line 1503 "parser.yy" 6977 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6210 #line 1503 "parser.yy" /* yacc.c:1646 */ 6211 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), nullptr, nullptr, (yyvsp[-1].decl), true ); } 6212 #line 6213 "Parser/parser.cc" /* yacc.c:1646 */ 6978 6213 break; 6979 6214 6980 6215 case 371: 6981 6982 /* Line 1806 of yacc.c */ 6983 #line 1505 "parser.yy" 6984 { 6985 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6986 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false ); 6216 #line 1505 "parser.yy" /* yacc.c:1646 */ 6217 { 6218 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6219 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), nullptr, nullptr, false ); 6987 6220 } 6221 #line 6222 "Parser/parser.cc" /* yacc.c:1646 */ 6988 6222 break; 6989 6223 6990 6224 case 372: 6991 6992 /* Line 1806 of yacc.c */ 6993 #line 1510 "parser.yy" 6994 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6225 #line 1510 "parser.yy" /* yacc.c:1646 */ 6226 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646 */ 6995 6228 break; 6996 6229 6997 6230 case 373: 6998 6999 /* Line 1806 of yacc.c */ 7000 #line 1512 "parser.yy" 7001 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 6231 #line 1512 "parser.yy" /* yacc.c:1646 */ 6232 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), nullptr, (yyvsp[-1].decl), true ); } 6233 #line 6234 "Parser/parser.cc" /* yacc.c:1646 */ 7002 6234 break; 7003 6235 7004 6236 case 374: 7005 7006 /* Line 1806 of yacc.c */ 7007 #line 1514 "parser.yy" 7008 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6237 #line 1514 "parser.yy" /* yacc.c:1646 */ 6238 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), nullptr, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6239 #line 6240 "Parser/parser.cc" /* yacc.c:1646 */ 7009 6240 break; 7010 6241 7011 6242 case 375: 7012 7013 /* Line 1806 of yacc.c */ 7014 #line 1516 "parser.yy" 7015 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6243 #line 1516 "parser.yy" /* yacc.c:1646 */ 6244 { (yyval.decl) = (yyvsp[0].decl); } 6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646 */ 7016 6246 break; 7017 6247 7018 6248 case 376: 7019 7020 /* Line 1806 of yacc.c */ 7021 #line 1521 "parser.yy" 6249 #line 1521 "parser.yy" /* yacc.c:1646 */ 7022 6250 { (yyval.aggKey) = DeclarationNode::Struct; } 6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646 */ 7023 6252 break; 7024 6253 7025 6254 case 377: 7026 7027 /* Line 1806 of yacc.c */ 7028 #line 1523 "parser.yy" 6255 #line 1523 "parser.yy" /* yacc.c:1646 */ 7029 6256 { (yyval.aggKey) = DeclarationNode::Union; } 6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646 */ 7030 6258 break; 7031 6259 7032 6260 case 378: 7033 7034 /* Line 1806 of yacc.c */ 7035 #line 1528 "parser.yy" 6261 #line 1528 "parser.yy" /* yacc.c:1646 */ 7036 6262 { (yyval.decl) = 0; } 6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646 */ 7037 6264 break; 7038 6265 7039 6266 case 379: 7040 7041 /* Line 1806 of yacc.c */ 7042 #line 1530 "parser.yy" 7043 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6267 #line 1530 "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 */ 7044 6270 break; 7045 6271 7046 6272 case 381: 7047 7048 /* Line 1806 of yacc.c */ 7049 #line 1536 "parser.yy" 7050 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6273 #line 1536 "parser.yy" /* yacc.c:1646 */ 6274 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6275 #line 6276 "Parser/parser.cc" /* yacc.c:1646 */ 7051 6276 break; 7052 6277 7053 6278 case 383: 7054 7055 /* Line 1806 of yacc.c */ 7056 #line 1539 "parser.yy" 6279 #line 1539 "parser.yy" /* yacc.c:1646 */ 7057 6280 { // mark all fields in list 7058 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() ) 7059 6282 iter->set_extension( true ); 7060 (yyval.decl) = (yyvsp[ (2) - (3)].decl);6283 (yyval.decl) = (yyvsp[-1].decl); 7061 6284 } 6285 #line 6286 "Parser/parser.cc" /* yacc.c:1646 */ 7062 6286 break; 7063 6287 7064 6288 case 385: 7065 7066 /* Line 1806 of yacc.c */ 7067 #line 1549 "parser.yy" 7068 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6289 #line 1549 "parser.yy" /* yacc.c:1646 */ 6290 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6291 #line 6292 "Parser/parser.cc" /* yacc.c:1646 */ 7069 6292 break; 7070 6293 7071 6294 case 386: 7072 7073 /* Line 1806 of yacc.c */ 7074 #line 1551 "parser.yy" 7075 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6295 #line 1551 "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 */ 7076 6298 break; 7077 6299 7078 6300 case 387: 7079 7080 /* Line 1806 of yacc.c */ 7081 #line 1553 "parser.yy" 7082 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6301 #line 1553 "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 */ 7083 6304 break; 7084 6305 7085 6306 case 388: 7086 7087 /* Line 1806 of yacc.c */ 7088 #line 1558 "parser.yy" 7089 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6307 #line 1558 "parser.yy" /* yacc.c:1646 */ 6308 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6309 #line 6310 "Parser/parser.cc" /* yacc.c:1646 */ 7090 6310 break; 7091 6311 7092 6312 case 389: 7093 7094 /* Line 1806 of yacc.c */ 7095 #line 1560 "parser.yy" 7096 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6313 #line 1560 "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 */ 7097 6316 break; 7098 6317 7099 6318 case 390: 7100 7101 /* Line 1806 of yacc.c */ 7102 #line 1565 "parser.yy" 6319 #line 1565 "parser.yy" /* yacc.c:1646 */ 7103 6320 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646 */ 7104 6322 break; 7105 6323 7106 6324 case 391: 7107 7108 /* Line 1806 of yacc.c */ 7109 #line 1567 "parser.yy" 7110 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6325 #line 1567 "parser.yy" /* yacc.c:1646 */ 6326 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6327 #line 6328 "Parser/parser.cc" /* yacc.c:1646 */ 7111 6328 break; 7112 6329 7113 6330 case 392: 7114 7115 /* Line 1806 of yacc.c */ 7116 #line 1570 "parser.yy" 7117 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6331 #line 1570 "parser.yy" /* yacc.c:1646 */ 6332 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646 */ 7118 6334 break; 7119 6335 7120 6336 case 393: 7121 7122 /* Line 1806 of yacc.c */ 7123 #line 1573 "parser.yy" 7124 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6337 #line 1573 "parser.yy" /* yacc.c:1646 */ 6338 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6339 #line 6340 "Parser/parser.cc" /* yacc.c:1646 */ 7125 6340 break; 7126 6341 7127 6342 case 395: 7128 7129 /* Line 1806 of yacc.c */ 7130 #line 1579 "parser.yy" 6343 #line 1579 "parser.yy" /* yacc.c:1646 */ 7131 6344 { (yyval.en) = 0; } 6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646 */ 7132 6346 break; 7133 6347 7134 6348 case 396: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1581 "parser.yy" 7138 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6349 #line 1581 "parser.yy" /* yacc.c:1646 */ 6350 { (yyval.en) = (yyvsp[0].en); } 6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 7139 6352 break; 7140 6353 7141 6354 case 397: 7142 7143 /* Line 1806 of yacc.c */ 7144 #line 1586 "parser.yy" 7145 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6355 #line 1586 "parser.yy" /* yacc.c:1646 */ 6356 { (yyval.en) = (yyvsp[0].en); } 6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646 */ 7146 6358 break; 7147 6359 7148 6360 case 399: 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1595 "parser.yy" 7152 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 6361 #line 1595 "parser.yy" /* yacc.c:1646 */ 6362 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[-2].decl) ); } 6363 #line 6364 "Parser/parser.cc" /* yacc.c:1646 */ 7153 6364 break; 7154 6365 7155 6366 case 400: 7156 7157 /* Line 1806 of yacc.c */ 7158 #line 1597 "parser.yy" 7159 { 7160 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7161 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6367 #line 1597 "parser.yy" /* yacc.c:1646 */ 6368 { 6369 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6370 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 ); 7162 6371 } 6372 #line 6373 "Parser/parser.cc" /* yacc.c:1646 */ 7163 6373 break; 7164 6374 7165 6375 case 401: 7166 7167 /* Line 1806 of yacc.c */ 7168 #line 1602 "parser.yy" 7169 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6376 #line 1602 "parser.yy" /* yacc.c:1646 */ 6377 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646 */ 7170 6379 break; 7171 6380 7172 6381 case 402: 7173 7174 /* Line 1806 of yacc.c */ 7175 #line 1604 "parser.yy" 7176 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 6382 #line 1604 "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 */ 7177 6385 break; 7178 6386 7179 6387 case 403: 7180 7181 /* Line 1806 of yacc.c */ 7182 #line 1609 "parser.yy" 7183 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 6388 #line 1609 "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 */ 7184 6391 break; 7185 6392 7186 6393 case 404: 7187 7188 /* Line 1806 of yacc.c */ 7189 #line 1611 "parser.yy" 7190 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 6394 #line 1611 "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 */ 7191 6397 break; 7192 6398 7193 6399 case 405: 7194 7195 /* Line 1806 of yacc.c */ 7196 #line 1616 "parser.yy" 6400 #line 1616 "parser.yy" /* yacc.c:1646 */ 7197 6401 { (yyval.en) = 0; } 6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646 */ 7198 6403 break; 7199 6404 7200 6405 case 406: 7201 7202 /* Line 1806 of yacc.c */ 7203 #line 1618 "parser.yy" 7204 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6406 #line 1618 "parser.yy" /* yacc.c:1646 */ 6407 { (yyval.en) = (yyvsp[0].en); } 6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646 */ 7205 6409 break; 7206 6410 7207 6411 case 407: 7208 7209 /* Line 1806 of yacc.c */ 7210 #line 1625 "parser.yy" 6412 #line 1625 "parser.yy" /* yacc.c:1646 */ 7211 6413 { (yyval.decl) = 0; } 6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646 */ 7212 6415 break; 7213 6416 7214 6417 case 411: 7215 7216 /* Line 1806 of yacc.c */ 7217 #line 1633 "parser.yy" 7218 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6418 #line 1633 "parser.yy" /* yacc.c:1646 */ 6419 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6420 #line 6421 "Parser/parser.cc" /* yacc.c:1646 */ 7219 6421 break; 7220 6422 7221 6423 case 412: 7222 7223 /* Line 1806 of yacc.c */ 7224 #line 1635 "parser.yy" 7225 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6424 #line 1635 "parser.yy" /* yacc.c:1646 */ 6425 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 7226 6427 break; 7227 6428 7228 6429 case 413: 7229 7230 /* Line 1806 of yacc.c */ 7231 #line 1637 "parser.yy" 7232 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6430 #line 1637 "parser.yy" /* yacc.c:1646 */ 6431 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646 */ 7233 6433 break; 7234 6434 7235 6435 case 415: 7236 7237 /* Line 1806 of yacc.c */ 7238 #line 1645 "parser.yy" 7239 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6436 #line 1645 "parser.yy" /* yacc.c:1646 */ 6437 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646 */ 7240 6439 break; 7241 6440 7242 6441 case 416: 7243 7244 /* Line 1806 of yacc.c */ 7245 #line 1647 "parser.yy" 7246 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6442 #line 1647 "parser.yy" /* yacc.c:1646 */ 6443 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6444 #line 6445 "Parser/parser.cc" /* yacc.c:1646 */ 7247 6445 break; 7248 6446 7249 6447 case 417: 7250 7251 /* Line 1806 of yacc.c */ 7252 #line 1649 "parser.yy" 7253 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 6448 #line 1649 "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 */ 7254 6451 break; 7255 6452 7256 6453 case 419: 7257 7258 /* Line 1806 of yacc.c */ 7259 #line 1655 "parser.yy" 7260 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6454 #line 1655 "parser.yy" /* yacc.c:1646 */ 6455 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6456 #line 6457 "Parser/parser.cc" /* yacc.c:1646 */ 7261 6457 break; 7262 6458 7263 6459 case 420: 7264 7265 /* Line 1806 of yacc.c */ 7266 #line 1660 "parser.yy" 6460 #line 1660 "parser.yy" /* yacc.c:1646 */ 7267 6461 { (yyval.decl) = 0; } 6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646 */ 7268 6463 break; 7269 6464 7270 6465 case 423: 7271 7272 /* Line 1806 of yacc.c */ 7273 #line 1667 "parser.yy" 7274 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6466 #line 1667 "parser.yy" /* yacc.c:1646 */ 6467 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646 */ 7275 6469 break; 7276 6470 7277 6471 case 426: 7278 7279 /* Line 1806 of yacc.c */ 7280 #line 1674 "parser.yy" 7281 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6472 #line 1674 "parser.yy" /* yacc.c:1646 */ 6473 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646 */ 7282 6475 break; 7283 6476 7284 6477 case 427: 7285 7286 /* Line 1806 of yacc.c */ 7287 #line 1676 "parser.yy" 7288 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6478 #line 1676 "parser.yy" /* yacc.c:1646 */ 6479 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6480 #line 6481 "Parser/parser.cc" /* yacc.c:1646 */ 7289 6481 break; 7290 6482 7291 6483 case 429: 7292 7293 /* Line 1806 of yacc.c */ 7294 #line 1685 "parser.yy" 7295 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6484 #line 1685 "parser.yy" /* yacc.c:1646 */ 6485 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646 */ 7296 6487 break; 7297 6488 7298 6489 case 430: 7299 7300 /* Line 1806 of yacc.c */ 7301 #line 1688 "parser.yy" 7302 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6490 #line 1688 "parser.yy" /* yacc.c:1646 */ 6491 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6492 #line 6493 "Parser/parser.cc" /* yacc.c:1646 */ 7303 6493 break; 7304 6494 7305 6495 case 431: 7306 7307 /* Line 1806 of yacc.c */ 7308 #line 1690 "parser.yy" 7309 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 6496 #line 1690 "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 */ 7310 6499 break; 7311 6500 7312 6501 case 436: 7313 7314 /* Line 1806 of yacc.c */ 7315 #line 1700 "parser.yy" 7316 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6502 #line 1700 "parser.yy" /* yacc.c:1646 */ 6503 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6504 #line 6505 "Parser/parser.cc" /* yacc.c:1646 */ 7317 6505 break; 7318 6506 7319 6507 case 438: 7320 7321 /* Line 1806 of yacc.c */ 7322 #line 1706 "parser.yy" 6508 #line 1706 "parser.yy" /* yacc.c:1646 */ 7323 6509 { 7324 6510 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7325 (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) ) ); 7326 6512 } 6513 #line 6514 "Parser/parser.cc" /* yacc.c:1646 */ 7327 6514 break; 7328 6515 7329 6516 case 439: 7330 7331 /* Line 1806 of yacc.c */ 7332 #line 1711 "parser.yy" 6517 #line 1711 "parser.yy" /* yacc.c:1646 */ 7333 6518 { 7334 6519 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7335 (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) ) ); 7336 6521 } 6522 #line 6523 "Parser/parser.cc" /* yacc.c:1646 */ 7337 6523 break; 7338 6524 7339 6525 case 441: 7340 7341 /* Line 1806 of yacc.c */ 7342 #line 1720 "parser.yy" 7343 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6526 #line 1720 "parser.yy" /* yacc.c:1646 */ 6527 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6528 #line 6529 "Parser/parser.cc" /* yacc.c:1646 */ 7344 6529 break; 7345 6530 7346 6531 case 442: 7347 7348 /* Line 1806 of yacc.c */ 7349 #line 1729 "parser.yy" 7350 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 6532 #line 1729 "parser.yy" /* yacc.c:1646 */ 6533 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6534 #line 6535 "Parser/parser.cc" /* yacc.c:1646 */ 7351 6535 break; 7352 6536 7353 6537 case 443: 7354 7355 /* Line 1806 of yacc.c */ 7356 #line 1731 "parser.yy" 7357 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 6538 #line 1731 "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 */ 7358 6541 break; 7359 6542 7360 6543 case 455: 7361 7362 /* Line 1806 of yacc.c */ 7363 #line 1756 "parser.yy" 7364 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6544 #line 1756 "parser.yy" /* yacc.c:1646 */ 6545 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646 */ 7365 6547 break; 7366 6548 7367 6549 case 459: 7368 7369 /* Line 1806 of yacc.c */ 7370 #line 1764 "parser.yy" 7371 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6550 #line 1764 "parser.yy" /* yacc.c:1646 */ 6551 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6552 #line 6553 "Parser/parser.cc" /* yacc.c:1646 */ 7372 6553 break; 7373 6554 7374 6555 case 460: 7375 7376 /* Line 1806 of yacc.c */ 7377 #line 1769 "parser.yy" 6556 #line 1769 "parser.yy" /* yacc.c:1646 */ 7378 6557 { (yyval.in) = 0; } 6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646 */ 7379 6559 break; 7380 6560 7381 6561 case 461: 7382 7383 /* Line 1806 of yacc.c */ 7384 #line 1771 "parser.yy" 7385 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6562 #line 1771 "parser.yy" /* yacc.c:1646 */ 6563 { (yyval.in) = (yyvsp[0].in); } 6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646 */ 7386 6565 break; 7387 6566 7388 6567 case 462: 7389 7390 /* Line 1806 of yacc.c */ 7391 #line 1773 "parser.yy" 7392 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 6568 #line 1773 "parser.yy" /* yacc.c:1646 */ 6569 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6570 #line 6571 "Parser/parser.cc" /* yacc.c:1646 */ 7393 6571 break; 7394 6572 7395 6573 case 463: 7396 7397 /* Line 1806 of yacc.c */ 7398 #line 1777 "parser.yy" 7399 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 6574 #line 1777 "parser.yy" /* yacc.c:1646 */ 6575 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6576 #line 6577 "Parser/parser.cc" /* yacc.c:1646 */ 7400 6577 break; 7401 6578 7402 6579 case 464: 7403 7404 /* Line 1806 of yacc.c */ 7405 #line 1778 "parser.yy" 7406 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 6580 #line 1778 "parser.yy" /* yacc.c:1646 */ 6581 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6582 #line 6583 "Parser/parser.cc" /* yacc.c:1646 */ 7407 6583 break; 7408 6584 7409 6585 case 465: 7410 7411 /* Line 1806 of yacc.c */ 7412 #line 1783 "parser.yy" 6586 #line 1783 "parser.yy" /* yacc.c:1646 */ 7413 6587 { (yyval.in) = 0; } 6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646 */ 7414 6589 break; 7415 6590 7416 6591 case 467: 7417 7418 /* Line 1806 of yacc.c */ 7419 #line 1785 "parser.yy" 7420 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 6592 #line 1785 "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 */ 7421 6595 break; 7422 6596 7423 6597 case 468: 7424 7425 /* Line 1806 of yacc.c */ 7426 #line 1786 "parser.yy" 7427 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 6598 #line 1786 "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 */ 7428 6601 break; 7429 6602 7430 6603 case 469: 7431 7432 /* Line 1806 of yacc.c */ 7433 #line 1788 "parser.yy" 7434 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 6604 #line 1788 "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 */ 7435 6607 break; 7436 6608 7437 6609 case 471: 7438 7439 /* Line 1806 of yacc.c */ 7440 #line 1804 "parser.yy" 7441 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 6610 #line 1804 "parser.yy" /* yacc.c:1646 */ 6611 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6612 #line 6613 "Parser/parser.cc" /* yacc.c:1646 */ 7442 6613 break; 7443 6614 7444 6615 case 473: 7445 7446 /* Line 1806 of yacc.c */ 7447 #line 1810 "parser.yy" 7448 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 6616 #line 1810 "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 */ 7449 6619 break; 7450 6620 7451 6621 case 474: 7452 7453 /* Line 1806 of yacc.c */ 7454 #line 1816 "parser.yy" 7455 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 6622 #line 1816 "parser.yy" /* yacc.c:1646 */ 6623 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6624 #line 6625 "Parser/parser.cc" /* yacc.c:1646 */ 7456 6625 break; 7457 6626 7458 6627 case 475: 7459 7460 /* Line 1806 of yacc.c */ 7461 #line 1819 "parser.yy" 7462 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6628 #line 1819 "parser.yy" /* yacc.c:1646 */ 6629 { (yyval.en) = (yyvsp[-2].en); } 6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 7463 6631 break; 7464 6632 7465 6633 case 476: 7466 7467 /* Line 1806 of yacc.c */ 7468 #line 1821 "parser.yy" 7469 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6634 #line 1821 "parser.yy" /* yacc.c:1646 */ 6635 { (yyval.en) = (yyvsp[-2].en); } 6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646 */ 7470 6637 break; 7471 6638 7472 6639 case 477: 7473 7474 /* Line 1806 of yacc.c */ 7475 #line 1823 "parser.yy" 7476 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 6640 #line 1823 "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 */ 7477 6643 break; 7478 6644 7479 6645 case 478: 7480 7481 /* Line 1806 of yacc.c */ 7482 #line 1825 "parser.yy" 7483 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6646 #line 1825 "parser.yy" /* yacc.c:1646 */ 6647 { (yyval.en) = (yyvsp[-2].en); } 6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646 */ 7484 6649 break; 7485 6650 7486 6651 case 480: 7487 7488 /* Line 1806 of yacc.c */ 7489 #line 1849 "parser.yy" 7490 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6652 #line 1849 "parser.yy" /* yacc.c:1646 */ 6653 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6654 #line 6655 "Parser/parser.cc" /* yacc.c:1646 */ 7491 6655 break; 7492 6656 7493 6657 case 481: 7494 7495 /* Line 1806 of yacc.c */ 7496 #line 1851 "parser.yy" 7497 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6658 #line 1851 "parser.yy" /* yacc.c:1646 */ 6659 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6660 #line 6661 "Parser/parser.cc" /* yacc.c:1646 */ 7498 6661 break; 7499 6662 7500 6663 case 482: 7501 7502 /* Line 1806 of yacc.c */ 7503 #line 1853 "parser.yy" 7504 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6664 #line 1853 "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 */ 7505 6667 break; 7506 6668 7507 6669 case 484: 7508 7509 /* Line 1806 of yacc.c */ 7510 #line 1859 "parser.yy" 7511 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6670 #line 1859 "parser.yy" /* yacc.c:1646 */ 6671 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6672 #line 6673 "Parser/parser.cc" /* yacc.c:1646 */ 7512 6673 break; 7513 6674 7514 6675 case 485: 7515 7516 /* Line 1806 of yacc.c */ 7517 #line 1861 "parser.yy" 7518 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6676 #line 1861 "parser.yy" /* yacc.c:1646 */ 6677 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6678 #line 6679 "Parser/parser.cc" /* yacc.c:1646 */ 7519 6679 break; 7520 6680 7521 6681 case 486: 7522 7523 /* Line 1806 of yacc.c */ 7524 #line 1866 "parser.yy" 7525 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6682 #line 1866 "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 */ 7526 6685 break; 7527 6686 7528 6687 case 488: 7529 7530 /* Line 1806 of yacc.c */ 7531 #line 1872 "parser.yy" 7532 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 6688 #line 1872 "parser.yy" /* yacc.c:1646 */ 6689 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6690 #line 6691 "Parser/parser.cc" /* yacc.c:1646 */ 7533 6691 break; 7534 6692 7535 6693 case 489: 7536 7537 /* Line 1806 of yacc.c */ 7538 #line 1877 "parser.yy" 7539 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 6694 #line 1877 "parser.yy" /* yacc.c:1646 */ 6695 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6696 #line 6697 "Parser/parser.cc" /* yacc.c:1646 */ 7540 6697 break; 7541 6698 7542 6699 case 490: 7543 7544 /* Line 1806 of yacc.c */ 7545 #line 1879 "parser.yy" 7546 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 6700 #line 1879 "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 */ 7547 6703 break; 7548 6704 7549 6705 case 492: 7550 7551 /* Line 1806 of yacc.c */ 7552 #line 1885 "parser.yy" 6706 #line 1885 "parser.yy" /* yacc.c:1646 */ 7553 6707 { (yyval.tclass) = DeclarationNode::Otype; } 6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646 */ 7554 6709 break; 7555 6710 7556 6711 case 493: 7557 7558 /* Line 1806 of yacc.c */ 7559 #line 1887 "parser.yy" 6712 #line 1887 "parser.yy" /* yacc.c:1646 */ 7560 6713 { (yyval.tclass) = DeclarationNode::Ftype; } 6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646 */ 7561 6715 break; 7562 6716 7563 6717 case 494: 7564 7565 /* Line 1806 of yacc.c */ 7566 #line 1889 "parser.yy" 6718 #line 1889 "parser.yy" /* yacc.c:1646 */ 7567 6719 { (yyval.tclass) = DeclarationNode::Dtype; } 6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646 */ 7568 6721 break; 7569 6722 7570 6723 case 495: 7571 7572 /* Line 1806 of yacc.c */ 7573 #line 1894 "parser.yy" 6724 #line 1894 "parser.yy" /* yacc.c:1646 */ 7574 6725 { (yyval.decl) = 0; } 6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646 */ 7575 6727 break; 7576 6728 7577 6729 case 496: 7578 7579 /* Line 1806 of yacc.c */ 7580 #line 1896 "parser.yy" 7581 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6730 #line 1896 "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 */ 7582 6733 break; 7583 6734 7584 6735 case 497: 7585 7586 /* Line 1806 of yacc.c */ 7587 #line 1901 "parser.yy" 7588 { 7589 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7590 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6736 #line 1901 "parser.yy" /* yacc.c:1646 */ 6737 { 6738 typedefTable.openTrait( *(yyvsp[-3].tok) ); 6739 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) ); 7591 6740 } 6741 #line 6742 "Parser/parser.cc" /* yacc.c:1646 */ 7592 6742 break; 7593 6743 7594 6744 case 498: 7595 7596 /* Line 1806 of yacc.c */ 7597 #line 1906 "parser.yy" 7598 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6745 #line 1906 "parser.yy" /* yacc.c:1646 */ 6746 { (yyval.decl) = (yyvsp[-1].decl); } 6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646 */ 7599 6748 break; 7600 6749 7601 6750 case 499: 7602 7603 /* Line 1806 of yacc.c */ 7604 #line 1908 "parser.yy" 6751 #line 1908 "parser.yy" /* yacc.c:1646 */ 7605 6752 { (yyval.decl) = 0; } 6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646 */ 7606 6754 break; 7607 6755 7608 6756 case 500: 7609 7610 /* Line 1806 of yacc.c */ 7611 #line 1913 "parser.yy" 7612 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 6757 #line 1913 "parser.yy" /* yacc.c:1646 */ 6758 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6759 #line 6760 "Parser/parser.cc" /* yacc.c:1646 */ 7613 6760 break; 7614 6761 7615 6762 case 502: 7616 7617 /* Line 1806 of yacc.c */ 7618 #line 1916 "parser.yy" 7619 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 6763 #line 1916 "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 */ 7620 6766 break; 7621 6767 7622 6768 case 503: 7623 7624 /* Line 1806 of yacc.c */ 7625 #line 1918 "parser.yy" 7626 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 6769 #line 1918 "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 */ 7627 6772 break; 7628 6773 7629 6774 case 504: 7630 7631 /* Line 1806 of yacc.c */ 7632 #line 1923 "parser.yy" 7633 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6775 #line 1923 "parser.yy" /* yacc.c:1646 */ 6776 { (yyval.decl) = (yyvsp[0].decl); } 6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646 */ 7634 6778 break; 7635 6779 7636 6780 case 505: 7637 7638 /* Line 1806 of yacc.c */ 7639 #line 1925 "parser.yy" 7640 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 6781 #line 1925 "parser.yy" /* yacc.c:1646 */ 6782 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6783 #line 6784 "Parser/parser.cc" /* yacc.c:1646 */ 7641 6784 break; 7642 6785 7643 6786 case 506: 7644 7645 /* Line 1806 of yacc.c */ 7646 #line 1927 "parser.yy" 7647 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 6787 #line 1927 "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 */ 7648 6790 break; 7649 6791 7650 6792 case 507: 7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1932 "parser.yy" 7654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 6793 #line 1932 "parser.yy" /* yacc.c:1646 */ 6794 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6795 #line 6796 "Parser/parser.cc" /* yacc.c:1646 */ 7655 6796 break; 7656 6797 7657 6798 case 508: 7658 7659 /* Line 1806 of yacc.c */ 7660 #line 1934 "parser.yy" 7661 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 6799 #line 1934 "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 */ 7662 6802 break; 7663 6803 7664 6804 case 509: 7665 7666 /* Line 1806 of yacc.c */ 7667 #line 1939 "parser.yy" 7668 { 7669 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7670 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6805 #line 1939 "parser.yy" /* yacc.c:1646 */ 6806 { 6807 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 6808 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 ); 7671 6809 } 6810 #line 6811 "Parser/parser.cc" /* yacc.c:1646 */ 7672 6811 break; 7673 6812 7674 6813 case 510: 7675 7676 /* Line 1806 of yacc.c */ 7677 #line 1944 "parser.yy" 7678 { 7679 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7680 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6814 #line 1944 "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) ); 7681 6818 } 6819 #line 6820 "Parser/parser.cc" /* yacc.c:1646 */ 7682 6820 break; 7683 6821 7684 6822 case 511: 7685 7686 /* Line 1806 of yacc.c */ 7687 #line 1952 "parser.yy" 7688 { 7689 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7690 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6823 #line 1952 "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 ); 7691 6827 } 6828 #line 6829 "Parser/parser.cc" /* yacc.c:1646 */ 7692 6829 break; 7693 6830 7694 6831 case 512: 7695 7696 /* Line 1806 of yacc.c */ 7697 #line 1957 "parser.yy" 7698 { 7699 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6832 #line 1957 "parser.yy" /* yacc.c:1646 */ 6833 { 6834 typedefTable.enterTrait( *(yyvsp[-6].tok) ); 7700 6835 typedefTable.enterScope(); 7701 6836 } 6837 #line 6838 "Parser/parser.cc" /* yacc.c:1646 */ 7702 6838 break; 7703 6839 7704 6840 case 513: 7705 7706 /* Line 1806 of yacc.c */ 7707 #line 1962 "parser.yy" 6841 #line 1962 "parser.yy" /* yacc.c:1646 */ 7708 6842 { 7709 6843 typedefTable.leaveTrait(); 7710 typedefTable.addToEnclosingScope( *(yyvsp[ (2) - (11)].tok), TypedefTable::ID );7711 (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) ); 7712 6846 } 6847 #line 6848 "Parser/parser.cc" /* yacc.c:1646 */ 7713 6848 break; 7714 6849 7715 6850 case 515: 7716 7717 /* Line 1806 of yacc.c */ 7718 #line 1972 "parser.yy" 7719 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6851 #line 1972 "parser.yy" /* yacc.c:1646 */ 6852 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6853 #line 6854 "Parser/parser.cc" /* yacc.c:1646 */ 7720 6854 break; 7721 6855 7722 6856 case 518: 7723 7724 /* Line 1806 of yacc.c */ 7725 #line 1982 "parser.yy" 6857 #line 1982 "parser.yy" /* yacc.c:1646 */ 7726 6858 { 7727 6859 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7728 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6860 (yyval.decl) = (yyvsp[0].decl); 7729 6861 } 6862 #line 6863 "Parser/parser.cc" /* yacc.c:1646 */ 7730 6863 break; 7731 6864 7732 6865 case 519: 7733 7734 /* Line 1806 of yacc.c */ 7735 #line 1987 "parser.yy" 6866 #line 1987 "parser.yy" /* yacc.c:1646 */ 7736 6867 { 7737 6868 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7738 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6869 (yyval.decl) = (yyvsp[0].decl); 7739 6870 } 6871 #line 6872 "Parser/parser.cc" /* yacc.c:1646 */ 7740 6872 break; 7741 6873 7742 6874 case 520: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1992 "parser.yy" 7746 { 7747 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7748 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6875 #line 1992 "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) ) ); 7749 6879 } 6880 #line 6881 "Parser/parser.cc" /* yacc.c:1646 */ 7750 6881 break; 7751 6882 7752 6883 case 521: 7753 7754 /* Line 1806 of yacc.c */ 7755 #line 2000 "parser.yy" 6884 #line 2000 "parser.yy" /* yacc.c:1646 */ 7756 6885 { 7757 6886 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7758 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );6887 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 7759 6888 } 6889 #line 6890 "Parser/parser.cc" /* yacc.c:1646 */ 7760 6890 break; 7761 6891 7762 6892 case 522: 7763 7764 /* Line 1806 of yacc.c */ 7765 #line 2005 "parser.yy" 6893 #line 2005 "parser.yy" /* yacc.c:1646 */ 7766 6894 { 7767 6895 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7768 (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) ) ); 7769 6897 } 6898 #line 6899 "Parser/parser.cc" /* yacc.c:1646 */ 7770 6899 break; 7771 6900 7772 6901 case 523: 7773 7774 /* Line 1806 of yacc.c */ 7775 #line 2015 "parser.yy" 6902 #line 2015 "parser.yy" /* yacc.c:1646 */ 7776 6903 {} 6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646 */ 7777 6905 break; 7778 6906 7779 6907 case 524: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 2017 "parser.yy" 7783 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 6908 #line 2017 "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 */ 7784 6911 break; 7785 6912 7786 6913 case 526: 7787 7788 /* Line 1806 of yacc.c */ 7789 #line 2023 "parser.yy" 7790 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 6914 #line 2023 "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 */ 7791 6917 break; 7792 6918 7793 6919 case 527: 7794 7795 /* Line 1806 of yacc.c */ 7796 #line 2028 "parser.yy" 6920 #line 2028 "parser.yy" /* yacc.c:1646 */ 7797 6921 { (yyval.decl) = 0; } 6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646 */ 7798 6923 break; 7799 6924 7800 6925 case 531: 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 2036 "parser.yy" 6926 #line 2036 "parser.yy" /* yacc.c:1646 */ 7804 6927 {} 6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646 */ 7805 6929 break; 7806 6930 7807 6931 case 532: 7808 7809 /* Line 1806 of yacc.c */ 7810 #line 2038 "parser.yy" 6932 #line 2038 "parser.yy" /* yacc.c:1646 */ 7811 6933 { 7812 6934 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 7813 linkage = LinkageSpec::linkageCheck( (yyvsp[ (2) - (2)].tok) );6935 linkage = LinkageSpec::linkageCheck( (yyvsp[0].tok) ); 7814 6936 } 6937 #line 6938 "Parser/parser.cc" /* yacc.c:1646 */ 7815 6938 break; 7816 6939 7817 6940 case 533: 7818 7819 /* Line 1806 of yacc.c */ 7820 #line 2043 "parser.yy" 6941 #line 2043 "parser.yy" /* yacc.c:1646 */ 7821 6942 { 7822 6943 linkage = linkageStack.top(); 7823 6944 linkageStack.pop(); 7824 (yyval.decl) = (yyvsp[ (5) - (6)].decl);6945 (yyval.decl) = (yyvsp[-1].decl); 7825 6946 } 6947 #line 6948 "Parser/parser.cc" /* yacc.c:1646 */ 7826 6948 break; 7827 6949 7828 6950 case 534: 7829 7830 /* Line 1806 of yacc.c */ 7831 #line 2049 "parser.yy" 6951 #line 2049 "parser.yy" /* yacc.c:1646 */ 7832 6952 { // mark all fields in list 7833 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() ) 7834 6954 iter->set_extension( true ); 7835 (yyval.decl) = (yyvsp[ (2) - (2)].decl);6955 (yyval.decl) = (yyvsp[0].decl); 7836 6956 } 6957 #line 6958 "Parser/parser.cc" /* yacc.c:1646 */ 7837 6958 break; 7838 6959 7839 6960 case 536: 7840 7841 /* Line 1806 of yacc.c */ 7842 #line 2064 "parser.yy" 6961 #line 2064 "parser.yy" /* yacc.c:1646 */ 7843 6962 { 7844 6963 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7845 6964 typedefTable.leaveScope(); 7846 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6965 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7847 6966 } 6967 #line 6968 "Parser/parser.cc" /* yacc.c:1646 */ 7848 6968 break; 7849 6969 7850 6970 case 537: 7851 7852 /* Line 1806 of yacc.c */ 7853 #line 2070 "parser.yy" 6971 #line 2070 "parser.yy" /* yacc.c:1646 */ 7854 6972 { 7855 6973 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7856 6974 typedefTable.leaveScope(); 7857 (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) ); 7858 6976 } 6977 #line 6978 "Parser/parser.cc" /* yacc.c:1646 */ 7859 6978 break; 7860 6979 7861 6980 case 538: 7862 7863 /* Line 1806 of yacc.c */ 7864 #line 2079 "parser.yy" 6981 #line 2079 "parser.yy" /* yacc.c:1646 */ 7865 6982 { 7866 6983 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7867 6984 typedefTable.leaveScope(); 7868 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6985 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7869 6986 } 6987 #line 6988 "Parser/parser.cc" /* yacc.c:1646 */ 7870 6988 break; 7871 6989 7872 6990 case 539: 7873 7874 /* Line 1806 of yacc.c */ 7875 #line 2085 "parser.yy" 6991 #line 2085 "parser.yy" /* yacc.c:1646 */ 7876 6992 { 7877 6993 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7878 6994 typedefTable.leaveScope(); 7879 (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) ); 7880 6996 } 6997 #line 6998 "Parser/parser.cc" /* yacc.c:1646 */ 7881 6998 break; 7882 6999 7883 7000 case 540: 7884 7885 /* Line 1806 of yacc.c */ 7886 #line 2091 "parser.yy" 7001 #line 2091 "parser.yy" /* yacc.c:1646 */ 7887 7002 { 7888 7003 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7889 7004 typedefTable.leaveScope(); 7890 (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) ); 7891 7006 } 7007 #line 7008 "Parser/parser.cc" /* yacc.c:1646 */ 7892 7008 break; 7893 7009 7894 7010 case 541: 7895 7896 /* Line 1806 of yacc.c */ 7897 #line 2097 "parser.yy" 7011 #line 2097 "parser.yy" /* yacc.c:1646 */ 7898 7012 { 7899 7013 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7900 7014 typedefTable.leaveScope(); 7901 (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) ); 7902 7016 } 7017 #line 7018 "Parser/parser.cc" /* yacc.c:1646 */ 7903 7018 break; 7904 7019 7905 7020 case 542: 7906 7907 /* Line 1806 of yacc.c */ 7908 #line 2103 "parser.yy" 7021 #line 2103 "parser.yy" /* yacc.c:1646 */ 7909 7022 { 7910 7023 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7911 7024 typedefTable.leaveScope(); 7912 (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) ); 7913 7026 } 7027 #line 7028 "Parser/parser.cc" /* yacc.c:1646 */ 7914 7028 break; 7915 7029 7916 7030 case 543: 7917 7918 /* Line 1806 of yacc.c */ 7919 #line 2111 "parser.yy" 7031 #line 2111 "parser.yy" /* yacc.c:1646 */ 7920 7032 { 7921 7033 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7922 7034 typedefTable.leaveScope(); 7923 (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) ); 7924 7036 } 7037 #line 7038 "Parser/parser.cc" /* yacc.c:1646 */ 7925 7038 break; 7926 7039 7927 7040 case 544: 7928 7929 /* Line 1806 of yacc.c */ 7930 #line 2117 "parser.yy" 7041 #line 2117 "parser.yy" /* yacc.c:1646 */ 7931 7042 { 7932 7043 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7933 7044 typedefTable.leaveScope(); 7934 (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) ); 7935 7046 } 7047 #line 7048 "Parser/parser.cc" /* yacc.c:1646 */ 7936 7048 break; 7937 7049 7938 7050 case 545: 7939 7940 /* Line 1806 of yacc.c */ 7941 #line 2125 "parser.yy" 7051 #line 2125 "parser.yy" /* yacc.c:1646 */ 7942 7052 { 7943 7053 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7944 7054 typedefTable.leaveScope(); 7945 (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) ); 7946 7056 } 7057 #line 7058 "Parser/parser.cc" /* yacc.c:1646 */ 7947 7058 break; 7948 7059 7949 7060 case 546: 7950 7951 /* Line 1806 of yacc.c */ 7952 #line 2131 "parser.yy" 7061 #line 2131 "parser.yy" /* yacc.c:1646 */ 7953 7062 { 7954 7063 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7955 7064 typedefTable.leaveScope(); 7956 (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) ); 7957 7066 } 7067 #line 7068 "Parser/parser.cc" /* yacc.c:1646 */ 7958 7068 break; 7959 7069 7960 7070 case 550: 7961 7962 /* Line 1806 of yacc.c */ 7963 #line 2146 "parser.yy" 7964 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7071 #line 2146 "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 */ 7965 7074 break; 7966 7075 7967 7076 case 552: 7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2151 "parser.yy" 7971 { delete (yyvsp[(3) - (5)].str); } 7077 #line 2151 "parser.yy" /* yacc.c:1646 */ 7078 { delete (yyvsp[-2].str); } 7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646 */ 7972 7080 break; 7973 7081 7974 7082 case 553: 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2156 "parser.yy" 7083 #line 2156 "parser.yy" /* yacc.c:1646 */ 7978 7084 { (yyval.decl) = 0; } 7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646 */ 7979 7086 break; 7980 7087 7981 7088 case 556: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2163 "parser.yy" 7985 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7089 #line 2163 "parser.yy" /* yacc.c:1646 */ 7090 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7091 #line 7092 "Parser/parser.cc" /* yacc.c:1646 */ 7986 7092 break; 7987 7093 7988 7094 case 557: 7989 7990 /* Line 1806 of yacc.c */ 7991 #line 2169 "parser.yy" 7095 #line 2169 "parser.yy" /* yacc.c:1646 */ 7992 7096 { (yyval.decl) = 0; } 7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646 */ 7993 7098 break; 7994 7099 7995 7100 case 562: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2180 "parser.yy" 7999 { delete (yyvsp[(3) - (4)].en); } 7101 #line 2180 "parser.yy" /* yacc.c:1646 */ 7102 { delete (yyvsp[-1].en); } 7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646 */ 8000 7104 break; 8001 7105 8002 7106 case 563: 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2184 "parser.yy" 8006 { delete (yyvsp[(1) - (1)].tok); } 7107 #line 2184 "parser.yy" /* yacc.c:1646 */ 7108 { delete (yyvsp[0].tok); } 7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646 */ 8007 7110 break; 8008 7111 8009 7112 case 564: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2185 "parser.yy" 8013 { delete (yyvsp[(1) - (1)].decl); } 7113 #line 2185 "parser.yy" /* yacc.c:1646 */ 7114 { delete (yyvsp[0].decl); } 7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 8014 7116 break; 8015 7117 8016 7118 case 565: 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2186 "parser.yy" 8020 { delete (yyvsp[(1) - (1)].decl); } 7119 #line 2186 "parser.yy" /* yacc.c:1646 */ 7120 { delete (yyvsp[0].decl); } 7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646 */ 8021 7122 break; 8022 7123 8023 7124 case 566: 8024 8025 /* Line 1806 of yacc.c */ 8026 #line 2187 "parser.yy" 8027 { delete (yyvsp[(1) - (1)].decl); } 7125 #line 2187 "parser.yy" /* yacc.c:1646 */ 7126 { delete (yyvsp[0].decl); } 7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646 */ 8028 7128 break; 8029 7129 8030 7130 case 567: 8031 8032 /* Line 1806 of yacc.c */ 8033 #line 2222 "parser.yy" 8034 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7131 #line 2222 "parser.yy" /* yacc.c:1646 */ 7132 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646 */ 8035 7134 break; 8036 7135 8037 7136 case 569: 8038 8039 /* Line 1806 of yacc.c */ 8040 #line 2225 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7137 #line 2225 "parser.yy" /* yacc.c:1646 */ 7138 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7139 #line 7140 "Parser/parser.cc" /* yacc.c:1646 */ 8042 7140 break; 8043 7141 8044 7142 case 570: 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2227 "parser.yy" 8048 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7143 #line 2227 "parser.yy" /* yacc.c:1646 */ 7144 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7145 #line 7146 "Parser/parser.cc" /* yacc.c:1646 */ 8049 7146 break; 8050 7147 8051 7148 case 571: 8052 8053 /* Line 1806 of yacc.c */ 8054 #line 2232 "parser.yy" 8055 { 8056 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8057 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7149 #line 2232 "parser.yy" /* yacc.c:1646 */ 7150 { 7151 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7152 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8058 7153 } 7154 #line 7155 "Parser/parser.cc" /* yacc.c:1646 */ 8059 7155 break; 8060 7156 8061 7157 case 572: 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2237 "parser.yy" 8065 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7158 #line 2237 "parser.yy" /* yacc.c:1646 */ 7159 { (yyval.decl) = (yyvsp[-1].decl); } 7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646 */ 8066 7161 break; 8067 7162 8068 7163 case 573: 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2242 "parser.yy" 8072 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7164 #line 2242 "parser.yy" /* yacc.c:1646 */ 7165 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7166 #line 7167 "Parser/parser.cc" /* yacc.c:1646 */ 8073 7167 break; 8074 7168 8075 7169 case 574: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2244 "parser.yy" 8079 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7170 #line 2244 "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 */ 8080 7173 break; 8081 7174 8082 7175 case 575: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2246 "parser.yy" 8086 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7176 #line 2246 "parser.yy" /* yacc.c:1646 */ 7177 { (yyval.decl) = (yyvsp[-1].decl); } 7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646 */ 8087 7179 break; 8088 7180 8089 7181 case 576: 8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2251 "parser.yy" 8093 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7182 #line 2251 "parser.yy" /* yacc.c:1646 */ 7183 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7184 #line 7185 "Parser/parser.cc" /* yacc.c:1646 */ 8094 7185 break; 8095 7186 8096 7187 case 577: 8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2253 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7188 #line 2253 "parser.yy" /* yacc.c:1646 */ 7189 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646 */ 8101 7191 break; 8102 7192 8103 7193 case 578: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2255 "parser.yy" 8107 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7194 #line 2255 "parser.yy" /* yacc.c:1646 */ 7195 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7196 #line 7197 "Parser/parser.cc" /* yacc.c:1646 */ 8108 7197 break; 8109 7198 8110 7199 case 579: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2257 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7200 #line 2257 "parser.yy" /* yacc.c:1646 */ 7201 { (yyval.decl) = (yyvsp[-1].decl); } 7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646 */ 8115 7203 break; 8116 7204 8117 7205 case 580: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2262 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7206 #line 2262 "parser.yy" /* yacc.c:1646 */ 7207 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7208 #line 7209 "Parser/parser.cc" /* yacc.c:1646 */ 8122 7209 break; 8123 7210 8124 7211 case 581: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2264 "parser.yy" 8128 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7212 #line 2264 "parser.yy" /* yacc.c:1646 */ 7213 { (yyval.decl) = (yyvsp[-1].decl); } 7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646 */ 8129 7215 break; 8130 7216 8131 7217 case 582: 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2273 "parser.yy" 8135 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7218 #line 2273 "parser.yy" /* yacc.c:1646 */ 7219 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646 */ 8136 7221 break; 8137 7222 8138 7223 case 584: 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2276 "parser.yy" 8142 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7224 #line 2276 "parser.yy" /* yacc.c:1646 */ 7225 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7226 #line 7227 "Parser/parser.cc" /* yacc.c:1646 */ 8143 7227 break; 8144 7228 8145 7229 case 585: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2281 "parser.yy" 8149 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7230 #line 2281 "parser.yy" /* yacc.c:1646 */ 7231 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7232 #line 7233 "Parser/parser.cc" /* yacc.c:1646 */ 8150 7233 break; 8151 7234 8152 7235 case 586: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2283 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7236 #line 2283 "parser.yy" /* yacc.c:1646 */ 7237 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7238 #line 7239 "Parser/parser.cc" /* yacc.c:1646 */ 8157 7239 break; 8158 7240 8159 7241 case 587: 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2285 "parser.yy" 8163 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7242 #line 2285 "parser.yy" /* yacc.c:1646 */ 7243 { (yyval.decl) = (yyvsp[-1].decl); } 7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646 */ 8164 7245 break; 8165 7246 8166 7247 case 588: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2290 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7248 #line 2290 "parser.yy" /* yacc.c:1646 */ 7249 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7250 #line 7251 "Parser/parser.cc" /* yacc.c:1646 */ 8171 7251 break; 8172 7252 8173 7253 case 589: 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2292 "parser.yy" 8177 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7254 #line 2292 "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 */ 8178 7257 break; 8179 7258 8180 7259 case 590: 8181 8182 /* Line 1806 of yacc.c */ 8183 #line 2294 "parser.yy" 8184 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7260 #line 2294 "parser.yy" /* yacc.c:1646 */ 7261 { (yyval.decl) = (yyvsp[-1].decl); } 7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646 */ 8185 7263 break; 8186 7264 8187 7265 case 591: 8188 8189 /* Line 1806 of yacc.c */ 8190 #line 2299 "parser.yy" 8191 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7266 #line 2299 "parser.yy" /* yacc.c:1646 */ 7267 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646 */ 8192 7269 break; 8193 7270 8194 7271 case 592: 8195 8196 /* Line 1806 of yacc.c */ 8197 #line 2301 "parser.yy" 8198 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7272 #line 2301 "parser.yy" /* yacc.c:1646 */ 7273 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7274 #line 7275 "Parser/parser.cc" /* yacc.c:1646 */ 8199 7275 break; 8200 7276 8201 7277 case 593: 8202 8203 /* Line 1806 of yacc.c */ 8204 #line 2303 "parser.yy" 8205 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7278 #line 2303 "parser.yy" /* yacc.c:1646 */ 7279 { (yyval.decl) = (yyvsp[-1].decl); } 7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646 */ 8206 7281 break; 8207 7282 8208 7283 case 597: 8209 8210 /* Line 1806 of yacc.c */ 8211 #line 2318 "parser.yy" 8212 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7284 #line 2318 "parser.yy" /* yacc.c:1646 */ 7285 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7286 #line 7287 "Parser/parser.cc" /* yacc.c:1646 */ 8213 7287 break; 8214 7288 8215 7289 case 598: 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2320 "parser.yy" 8219 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7290 #line 2320 "parser.yy" /* yacc.c:1646 */ 7291 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7292 #line 7293 "Parser/parser.cc" /* yacc.c:1646 */ 8220 7293 break; 8221 7294 8222 7295 case 599: 8223 8224 /* Line 1806 of yacc.c */ 8225 #line 2322 "parser.yy" 8226 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7296 #line 2322 "parser.yy" /* yacc.c:1646 */ 7297 { (yyval.decl) = (yyvsp[-1].decl); } 7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646 */ 8227 7299 break; 8228 7300 8229 7301 case 600: 8230 8231 /* Line 1806 of yacc.c */ 8232 #line 2327 "parser.yy" 8233 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7302 #line 2327 "parser.yy" /* yacc.c:1646 */ 7303 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7304 #line 7305 "Parser/parser.cc" /* yacc.c:1646 */ 8234 7305 break; 8235 7306 8236 7307 case 601: 8237 8238 /* Line 1806 of yacc.c */ 8239 #line 2329 "parser.yy" 8240 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7308 #line 2329 "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 */ 8241 7311 break; 8242 7312 8243 7313 case 602: 8244 8245 /* Line 1806 of yacc.c */ 8246 #line 2331 "parser.yy" 8247 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7314 #line 2331 "parser.yy" /* yacc.c:1646 */ 7315 { (yyval.decl) = (yyvsp[-1].decl); } 7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646 */ 8248 7317 break; 8249 7318 8250 7319 case 603: 8251 8252 /* Line 1806 of yacc.c */ 8253 #line 2336 "parser.yy" 8254 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7320 #line 2336 "parser.yy" /* yacc.c:1646 */ 7321 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646 */ 8255 7323 break; 8256 7324 8257 7325 case 604: 8258 8259 /* Line 1806 of yacc.c */ 8260 #line 2338 "parser.yy" 8261 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7326 #line 2338 "parser.yy" /* yacc.c:1646 */ 7327 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7328 #line 7329 "Parser/parser.cc" /* yacc.c:1646 */ 8262 7329 break; 8263 7330 8264 7331 case 605: 8265 8266 /* Line 1806 of yacc.c */ 8267 #line 2340 "parser.yy" 8268 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7332 #line 2340 "parser.yy" /* yacc.c:1646 */ 7333 { (yyval.decl) = (yyvsp[-1].decl); } 7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646 */ 8269 7335 break; 8270 7336 8271 7337 case 606: 8272 8273 /* Line 1806 of yacc.c */ 8274 #line 2355 "parser.yy" 8275 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7338 #line 2355 "parser.yy" /* yacc.c:1646 */ 7339 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646 */ 8276 7341 break; 8277 7342 8278 7343 case 608: 8279 8280 /* Line 1806 of yacc.c */ 8281 #line 2358 "parser.yy" 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7344 #line 2358 "parser.yy" /* yacc.c:1646 */ 7345 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7346 #line 7347 "Parser/parser.cc" /* yacc.c:1646 */ 8283 7347 break; 8284 7348 8285 7349 case 609: 8286 8287 /* Line 1806 of yacc.c */ 8288 #line 2360 "parser.yy" 8289 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7350 #line 2360 "parser.yy" /* yacc.c:1646 */ 7351 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7352 #line 7353 "Parser/parser.cc" /* yacc.c:1646 */ 8290 7353 break; 8291 7354 8292 7355 case 611: 8293 8294 /* Line 1806 of yacc.c */ 8295 #line 2366 "parser.yy" 8296 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7356 #line 2366 "parser.yy" /* yacc.c:1646 */ 7357 { (yyval.decl) = (yyvsp[-1].decl); } 7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646 */ 8297 7359 break; 8298 7360 8299 7361 case 612: 8300 8301 /* Line 1806 of yacc.c */ 8302 #line 2371 "parser.yy" 8303 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7362 #line 2371 "parser.yy" /* yacc.c:1646 */ 7363 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7364 #line 7365 "Parser/parser.cc" /* yacc.c:1646 */ 8304 7365 break; 8305 7366 8306 7367 case 613: 8307 8308 /* Line 1806 of yacc.c */ 8309 #line 2373 "parser.yy" 8310 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7368 #line 2373 "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 */ 8311 7371 break; 8312 7372 8313 7373 case 614: 8314 8315 /* Line 1806 of yacc.c */ 8316 #line 2375 "parser.yy" 8317 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7374 #line 2375 "parser.yy" /* yacc.c:1646 */ 7375 { (yyval.decl) = (yyvsp[-1].decl); } 7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646 */ 8318 7377 break; 8319 7378 8320 7379 case 615: 8321 8322 /* Line 1806 of yacc.c */ 8323 #line 2380 "parser.yy" 8324 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7380 #line 2380 "parser.yy" /* yacc.c:1646 */ 7381 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7382 #line 7383 "Parser/parser.cc" /* yacc.c:1646 */ 8325 7383 break; 8326 7384 8327 7385 case 616: 8328 8329 /* Line 1806 of yacc.c */ 8330 #line 2382 "parser.yy" 8331 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7386 #line 2382 "parser.yy" /* yacc.c:1646 */ 7387 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646 */ 8332 7389 break; 8333 7390 8334 7391 case 617: 8335 8336 /* Line 1806 of yacc.c */ 8337 #line 2384 "parser.yy" 8338 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7392 #line 2384 "parser.yy" /* yacc.c:1646 */ 7393 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7394 #line 7395 "Parser/parser.cc" /* yacc.c:1646 */ 8339 7395 break; 8340 7396 8341 7397 case 618: 8342 8343 /* Line 1806 of yacc.c */ 8344 #line 2386 "parser.yy" 8345 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7398 #line 2386 "parser.yy" /* yacc.c:1646 */ 7399 { (yyval.decl) = (yyvsp[-1].decl); } 7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646 */ 8346 7401 break; 8347 7402 8348 7403 case 619: 8349 8350 /* Line 1806 of yacc.c */ 8351 #line 2391 "parser.yy" 8352 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7404 #line 2391 "parser.yy" /* yacc.c:1646 */ 7405 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7406 #line 7407 "Parser/parser.cc" /* yacc.c:1646 */ 8353 7407 break; 8354 7408 8355 7409 case 620: 8356 8357 /* Line 1806 of yacc.c */ 8358 #line 2393 "parser.yy" 8359 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7410 #line 2393 "parser.yy" /* yacc.c:1646 */ 7411 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7412 #line 7413 "Parser/parser.cc" /* yacc.c:1646 */ 8360 7413 break; 8361 7414 8362 7415 case 621: 8363 8364 /* Line 1806 of yacc.c */ 8365 #line 2395 "parser.yy" 8366 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7416 #line 2395 "parser.yy" /* yacc.c:1646 */ 7417 { (yyval.decl) = (yyvsp[-1].decl); } 7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646 */ 8367 7419 break; 8368 7420 8369 7421 case 622: 8370 8371 /* Line 1806 of yacc.c */ 8372 #line 2405 "parser.yy" 8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7422 #line 2405 "parser.yy" /* yacc.c:1646 */ 7423 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646 */ 8374 7425 break; 8375 7426 8376 7427 case 624: 8377 8378 /* Line 1806 of yacc.c */ 8379 #line 2408 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7428 #line 2408 "parser.yy" /* yacc.c:1646 */ 7429 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7430 #line 7431 "Parser/parser.cc" /* yacc.c:1646 */ 8381 7431 break; 8382 7432 8383 7433 case 625: 8384 8385 /* Line 1806 of yacc.c */ 8386 #line 2410 "parser.yy" 8387 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7434 #line 2410 "parser.yy" /* yacc.c:1646 */ 7435 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7436 #line 7437 "Parser/parser.cc" /* yacc.c:1646 */ 8388 7437 break; 8389 7438 8390 7439 case 626: 8391 8392 /* Line 1806 of yacc.c */ 8393 #line 2415 "parser.yy" 8394 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7440 #line 2415 "parser.yy" /* yacc.c:1646 */ 7441 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7442 #line 7443 "Parser/parser.cc" /* yacc.c:1646 */ 8395 7443 break; 8396 7444 8397 7445 case 627: 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2417 "parser.yy" 8401 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7446 #line 2417 "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 */ 8402 7449 break; 8403 7450 8404 7451 case 628: 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2419 "parser.yy" 8408 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7452 #line 2419 "parser.yy" /* yacc.c:1646 */ 7453 { (yyval.decl) = (yyvsp[-1].decl); } 7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646 */ 8409 7455 break; 8410 7456 8411 7457 case 629: 8412 8413 /* Line 1806 of yacc.c */ 8414 #line 2424 "parser.yy" 8415 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7458 #line 2424 "parser.yy" /* yacc.c:1646 */ 7459 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7460 #line 7461 "Parser/parser.cc" /* yacc.c:1646 */ 8416 7461 break; 8417 7462 8418 7463 case 630: 8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2426 "parser.yy" 8422 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7464 #line 2426 "parser.yy" /* yacc.c:1646 */ 7465 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646 */ 8423 7467 break; 8424 7468 8425 7469 case 631: 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2428 "parser.yy" 8429 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7470 #line 2428 "parser.yy" /* yacc.c:1646 */ 7471 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7472 #line 7473 "Parser/parser.cc" /* yacc.c:1646 */ 8430 7473 break; 8431 7474 8432 7475 case 632: 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2430 "parser.yy" 8436 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7476 #line 2430 "parser.yy" /* yacc.c:1646 */ 7477 { (yyval.decl) = (yyvsp[-1].decl); } 7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646 */ 8437 7479 break; 8438 7480 8439 7481 case 633: 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2435 "parser.yy" 8443 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7482 #line 2435 "parser.yy" /* yacc.c:1646 */ 7483 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7484 #line 7485 "Parser/parser.cc" /* yacc.c:1646 */ 8444 7485 break; 8445 7486 8446 7487 case 634: 8447 8448 /* Line 1806 of yacc.c */ 8449 #line 2437 "parser.yy" 8450 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7488 #line 2437 "parser.yy" /* yacc.c:1646 */ 7489 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7490 #line 7491 "Parser/parser.cc" /* yacc.c:1646 */ 8451 7491 break; 8452 7492 8453 7493 case 635: 8454 8455 /* Line 1806 of yacc.c */ 8456 #line 2439 "parser.yy" 8457 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7494 #line 2439 "parser.yy" /* yacc.c:1646 */ 7495 { (yyval.decl) = (yyvsp[-1].decl); } 7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646 */ 8458 7497 break; 8459 7498 8460 7499 case 636: 8461 8462 /* Line 1806 of yacc.c */ 8463 #line 2470 "parser.yy" 8464 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7500 #line 2470 "parser.yy" /* yacc.c:1646 */ 7501 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646 */ 8465 7503 break; 8466 7504 8467 7505 case 638: 8468 8469 /* Line 1806 of yacc.c */ 8470 #line 2473 "parser.yy" 8471 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7506 #line 2473 "parser.yy" /* yacc.c:1646 */ 7507 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7508 #line 7509 "Parser/parser.cc" /* yacc.c:1646 */ 8472 7509 break; 8473 7510 8474 7511 case 639: 8475 8476 /* Line 1806 of yacc.c */ 8477 #line 2475 "parser.yy" 8478 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7512 #line 2475 "parser.yy" /* yacc.c:1646 */ 7513 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7514 #line 7515 "Parser/parser.cc" /* yacc.c:1646 */ 8479 7515 break; 8480 7516 8481 7517 case 640: 8482 8483 /* Line 1806 of yacc.c */ 8484 #line 2480 "parser.yy" 8485 { 8486 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8487 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7518 #line 2480 "parser.yy" /* yacc.c:1646 */ 7519 { 7520 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7521 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8488 7522 } 7523 #line 7524 "Parser/parser.cc" /* yacc.c:1646 */ 8489 7524 break; 8490 7525 8491 7526 case 641: 8492 8493 /* Line 1806 of yacc.c */ 8494 #line 2485 "parser.yy" 8495 { 8496 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8497 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7527 #line 2485 "parser.yy" /* yacc.c:1646 */ 7528 { 7529 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7530 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8498 7531 } 7532 #line 7533 "Parser/parser.cc" /* yacc.c:1646 */ 8499 7533 break; 8500 7534 8501 7535 case 642: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2493 "parser.yy" 8505 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7536 #line 2493 "parser.yy" /* yacc.c:1646 */ 7537 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7538 #line 7539 "Parser/parser.cc" /* yacc.c:1646 */ 8506 7539 break; 8507 7540 8508 7541 case 643: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2495 "parser.yy" 8512 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7542 #line 2495 "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 */ 8513 7545 break; 8514 7546 8515 7547 case 644: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2497 "parser.yy" 8519 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7548 #line 2497 "parser.yy" /* yacc.c:1646 */ 7549 { (yyval.decl) = (yyvsp[-1].decl); } 7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646 */ 8520 7551 break; 8521 7552 8522 7553 case 645: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2502 "parser.yy" 8526 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7554 #line 2502 "parser.yy" /* yacc.c:1646 */ 7555 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7556 #line 7557 "Parser/parser.cc" /* yacc.c:1646 */ 8527 7557 break; 8528 7558 8529 7559 case 646: 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2504 "parser.yy" 8533 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7560 #line 2504 "parser.yy" /* yacc.c:1646 */ 7561 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7562 #line 7563 "Parser/parser.cc" /* yacc.c:1646 */ 8534 7563 break; 8535 7564 8536 7565 case 647: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2509 "parser.yy" 8540 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7566 #line 2509 "parser.yy" /* yacc.c:1646 */ 7567 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7568 #line 7569 "Parser/parser.cc" /* yacc.c:1646 */ 8541 7569 break; 8542 7570 8543 7571 case 648: 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2511 "parser.yy" 8547 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7572 #line 2511 "parser.yy" /* yacc.c:1646 */ 7573 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7574 #line 7575 "Parser/parser.cc" /* yacc.c:1646 */ 8548 7575 break; 8549 7576 8550 7577 case 650: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2526 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7578 #line 2526 "parser.yy" /* yacc.c:1646 */ 7579 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646 */ 8555 7581 break; 8556 7582 8557 7583 case 651: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2528 "parser.yy" 8561 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7584 #line 2528 "parser.yy" /* yacc.c:1646 */ 7585 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7586 #line 7587 "Parser/parser.cc" /* yacc.c:1646 */ 8562 7587 break; 8563 7588 8564 7589 case 652: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2533 "parser.yy" 7590 #line 2533 "parser.yy" /* yacc.c:1646 */ 8568 7591 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646 */ 8569 7593 break; 8570 7594 8571 7595 case 653: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2535 "parser.yy" 8575 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7596 #line 2535 "parser.yy" /* yacc.c:1646 */ 7597 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7598 #line 7599 "Parser/parser.cc" /* yacc.c:1646 */ 8576 7599 break; 8577 7600 8578 7601 case 654: 8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2537 "parser.yy" 8582 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7602 #line 2537 "parser.yy" /* yacc.c:1646 */ 7603 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7604 #line 7605 "Parser/parser.cc" /* yacc.c:1646 */ 8583 7605 break; 8584 7606 8585 7607 case 655: 8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2539 "parser.yy" 8589 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7608 #line 2539 "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 */ 8590 7611 break; 8591 7612 8592 7613 case 656: 8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2541 "parser.yy" 8596 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7614 #line 2541 "parser.yy" /* yacc.c:1646 */ 7615 { (yyval.decl) = (yyvsp[-1].decl); } 7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646 */ 8597 7617 break; 8598 7618 8599 7619 case 658: 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2547 "parser.yy" 8603 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7620 #line 2547 "parser.yy" /* yacc.c:1646 */ 7621 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646 */ 8604 7623 break; 8605 7624 8606 7625 case 659: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2549 "parser.yy" 8610 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7626 #line 2549 "parser.yy" /* yacc.c:1646 */ 7627 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7628 #line 7629 "Parser/parser.cc" /* yacc.c:1646 */ 8611 7629 break; 8612 7630 8613 7631 case 660: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2551 "parser.yy" 8617 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7632 #line 2551 "parser.yy" /* yacc.c:1646 */ 7633 { (yyval.decl) = (yyvsp[-1].decl); } 7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646 */ 8618 7635 break; 8619 7636 8620 7637 case 661: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2556 "parser.yy" 8624 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 7638 #line 2556 "parser.yy" /* yacc.c:1646 */ 7639 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); } 7640 #line 7641 "Parser/parser.cc" /* yacc.c:1646 */ 8625 7641 break; 8626 7642 8627 7643 case 662: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2558 "parser.yy" 8631 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7644 #line 2558 "parser.yy" /* yacc.c:1646 */ 7645 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7646 #line 7647 "Parser/parser.cc" /* yacc.c:1646 */ 8632 7647 break; 8633 7648 8634 7649 case 663: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2560 "parser.yy" 8638 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7650 #line 2560 "parser.yy" /* yacc.c:1646 */ 7651 { (yyval.decl) = (yyvsp[-1].decl); } 7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646 */ 8639 7653 break; 8640 7654 8641 7655 case 664: 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2566 "parser.yy" 7656 #line 2566 "parser.yy" /* yacc.c:1646 */ 8645 7657 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646 */ 8646 7659 break; 8647 7660 8648 7661 case 665: 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2568 "parser.yy" 8652 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 7662 #line 2568 "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 */ 8653 7665 break; 8654 7666 8655 7667 case 667: 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2574 "parser.yy" 8659 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 7668 #line 2574 "parser.yy" /* yacc.c:1646 */ 7669 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7670 #line 7671 "Parser/parser.cc" /* yacc.c:1646 */ 8660 7671 break; 8661 7672 8662 7673 case 668: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2576 "parser.yy" 7674 #line 2576 "parser.yy" /* yacc.c:1646 */ 8666 7675 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646 */ 8667 7677 break; 8668 7678 8669 7679 case 669: 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2578 "parser.yy" 8673 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 7680 #line 2578 "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 */ 8674 7683 break; 8675 7684 8676 7685 case 670: 8677 8678 /* Line 1806 of yacc.c */ 8679 #line 2580 "parser.yy" 8680 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7686 #line 2580 "parser.yy" /* yacc.c:1646 */ 7687 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7688 #line 7689 "Parser/parser.cc" /* yacc.c:1646 */ 8681 7689 break; 8682 7690 8683 7691 case 672: 8684 8685 /* Line 1806 of yacc.c */ 8686 #line 2595 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7692 #line 2595 "parser.yy" /* yacc.c:1646 */ 7693 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646 */ 8688 7695 break; 8689 7696 8690 7697 case 673: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2597 "parser.yy" 8694 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7698 #line 2597 "parser.yy" /* yacc.c:1646 */ 7699 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7700 #line 7701 "Parser/parser.cc" /* yacc.c:1646 */ 8695 7701 break; 8696 7702 8697 7703 case 674: 8698 8699 /* Line 1806 of yacc.c */ 8700 #line 2602 "parser.yy" 7704 #line 2602 "parser.yy" /* yacc.c:1646 */ 8701 7705 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646 */ 8702 7707 break; 8703 7708 8704 7709 case 675: 8705 8706 /* Line 1806 of yacc.c */ 8707 #line 2604 "parser.yy" 8708 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7710 #line 2604 "parser.yy" /* yacc.c:1646 */ 7711 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7712 #line 7713 "Parser/parser.cc" /* yacc.c:1646 */ 8709 7713 break; 8710 7714 8711 7715 case 676: 8712 8713 /* Line 1806 of yacc.c */ 8714 #line 2606 "parser.yy" 8715 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7716 #line 2606 "parser.yy" /* yacc.c:1646 */ 7717 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7718 #line 7719 "Parser/parser.cc" /* yacc.c:1646 */ 8716 7719 break; 8717 7720 8718 7721 case 677: 8719 8720 /* Line 1806 of yacc.c */ 8721 #line 2608 "parser.yy" 8722 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7722 #line 2608 "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 */ 8723 7725 break; 8724 7726 8725 7727 case 678: 8726 8727 /* Line 1806 of yacc.c */ 8728 #line 2610 "parser.yy" 8729 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7728 #line 2610 "parser.yy" /* yacc.c:1646 */ 7729 { (yyval.decl) = (yyvsp[-1].decl); } 7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646 */ 8730 7731 break; 8731 7732 8732 7733 case 680: 8733 8734 /* Line 1806 of yacc.c */ 8735 #line 2616 "parser.yy" 8736 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7734 #line 2616 "parser.yy" /* yacc.c:1646 */ 7735 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646 */ 8737 7737 break; 8738 7738 8739 7739 case 681: 8740 8741 /* Line 1806 of yacc.c */ 8742 #line 2618 "parser.yy" 8743 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7740 #line 2618 "parser.yy" /* yacc.c:1646 */ 7741 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7742 #line 7743 "Parser/parser.cc" /* yacc.c:1646 */ 8744 7743 break; 8745 7744 8746 7745 case 682: 8747 8748 /* Line 1806 of yacc.c */ 8749 #line 2620 "parser.yy" 8750 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7746 #line 2620 "parser.yy" /* yacc.c:1646 */ 7747 { (yyval.decl) = (yyvsp[-1].decl); } 7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646 */ 8751 7749 break; 8752 7750 8753 7751 case 683: 8754 8755 /* Line 1806 of yacc.c */ 8756 #line 2625 "parser.yy" 8757 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 7752 #line 2625 "parser.yy" /* yacc.c:1646 */ 7753 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); } 7754 #line 7755 "Parser/parser.cc" /* yacc.c:1646 */ 8758 7755 break; 8759 7756 8760 7757 case 684: 8761 8762 /* Line 1806 of yacc.c */ 8763 #line 2627 "parser.yy" 8764 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7758 #line 2627 "parser.yy" /* yacc.c:1646 */ 7759 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7760 #line 7761 "Parser/parser.cc" /* yacc.c:1646 */ 8765 7761 break; 8766 7762 8767 7763 case 685: 8768 8769 /* Line 1806 of yacc.c */ 8770 #line 2629 "parser.yy" 8771 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7764 #line 2629 "parser.yy" /* yacc.c:1646 */ 7765 { (yyval.decl) = (yyvsp[-1].decl); } 7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646 */ 8772 7767 break; 8773 7768 8774 7769 case 687: 8775 8776 /* Line 1806 of yacc.c */ 8777 #line 2636 "parser.yy" 8778 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7770 #line 2636 "parser.yy" /* yacc.c:1646 */ 7771 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7772 #line 7773 "Parser/parser.cc" /* yacc.c:1646 */ 8779 7773 break; 8780 7774 8781 7775 case 689: 8782 8783 /* Line 1806 of yacc.c */ 8784 #line 2647 "parser.yy" 7776 #line 2647 "parser.yy" /* yacc.c:1646 */ 8785 7777 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646 */ 8786 7779 break; 8787 7780 8788 7781 case 690: 8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2650 "parser.yy" 8792 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7782 #line 2650 "parser.yy" /* yacc.c:1646 */ 7783 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7784 #line 7785 "Parser/parser.cc" /* yacc.c:1646 */ 8793 7785 break; 8794 7786 8795 7787 case 691: 8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2652 "parser.yy" 8799 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 7788 #line 2652 "parser.yy" /* yacc.c:1646 */ 7789 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7790 #line 7791 "Parser/parser.cc" /* yacc.c:1646 */ 8800 7791 break; 8801 7792 8802 7793 case 692: 8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2655 "parser.yy" 8806 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7794 #line 2655 "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 */ 8807 7797 break; 8808 7798 8809 7799 case 693: 8810 8811 /* Line 1806 of yacc.c */ 8812 #line 2657 "parser.yy" 8813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 7800 #line 2657 "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 */ 8814 7803 break; 8815 7804 8816 7805 case 694: 8817 8818 /* Line 1806 of yacc.c */ 8819 #line 2659 "parser.yy" 8820 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 7806 #line 2659 "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 */ 8821 7809 break; 8822 7810 8823 7811 case 696: 8824 8825 /* Line 1806 of yacc.c */ 8826 #line 2673 "parser.yy" 8827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7812 #line 2673 "parser.yy" /* yacc.c:1646 */ 7813 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646 */ 8828 7815 break; 8829 7816 8830 7817 case 697: 8831 8832 /* Line 1806 of yacc.c */ 8833 #line 2675 "parser.yy" 8834 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7818 #line 2675 "parser.yy" /* yacc.c:1646 */ 7819 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7820 #line 7821 "Parser/parser.cc" /* yacc.c:1646 */ 8835 7821 break; 8836 7822 8837 7823 case 698: 8838 8839 /* Line 1806 of yacc.c */ 8840 #line 2680 "parser.yy" 7824 #line 2680 "parser.yy" /* yacc.c:1646 */ 8841 7825 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646 */ 8842 7827 break; 8843 7828 8844 7829 case 699: 8845 8846 /* Line 1806 of yacc.c */ 8847 #line 2682 "parser.yy" 8848 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7830 #line 2682 "parser.yy" /* yacc.c:1646 */ 7831 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7832 #line 7833 "Parser/parser.cc" /* yacc.c:1646 */ 8849 7833 break; 8850 7834 8851 7835 case 700: 8852 8853 /* Line 1806 of yacc.c */ 8854 #line 2684 "parser.yy" 8855 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7836 #line 2684 "parser.yy" /* yacc.c:1646 */ 7837 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7838 #line 7839 "Parser/parser.cc" /* yacc.c:1646 */ 8856 7839 break; 8857 7840 8858 7841 case 701: 8859 8860 /* Line 1806 of yacc.c */ 8861 #line 2686 "parser.yy" 8862 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7842 #line 2686 "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 */ 8863 7845 break; 8864 7846 8865 7847 case 702: 8866 8867 /* Line 1806 of yacc.c */ 8868 #line 2688 "parser.yy" 8869 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7848 #line 2688 "parser.yy" /* yacc.c:1646 */ 7849 { (yyval.decl) = (yyvsp[-1].decl); } 7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646 */ 8870 7851 break; 8871 7852 8872 7853 case 704: 8873 8874 /* Line 1806 of yacc.c */ 8875 #line 2694 "parser.yy" 8876 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7854 #line 2694 "parser.yy" /* yacc.c:1646 */ 7855 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646 */ 8877 7857 break; 8878 7858 8879 7859 case 705: 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2696 "parser.yy" 8883 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7860 #line 2696 "parser.yy" /* yacc.c:1646 */ 7861 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7862 #line 7863 "Parser/parser.cc" /* yacc.c:1646 */ 8884 7863 break; 8885 7864 8886 7865 case 706: 8887 8888 /* Line 1806 of yacc.c */ 8889 #line 2698 "parser.yy" 8890 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7866 #line 2698 "parser.yy" /* yacc.c:1646 */ 7867 { (yyval.decl) = (yyvsp[-1].decl); } 7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646 */ 8891 7869 break; 8892 7870 8893 7871 case 707: 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2703 "parser.yy" 8897 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7872 #line 2703 "parser.yy" /* yacc.c:1646 */ 7873 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7874 #line 7875 "Parser/parser.cc" /* yacc.c:1646 */ 8898 7875 break; 8899 7876 8900 7877 case 708: 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2705 "parser.yy" 8904 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7878 #line 2705 "parser.yy" /* yacc.c:1646 */ 7879 { (yyval.decl) = (yyvsp[-1].decl); } 7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646 */ 8905 7881 break; 8906 7882 8907 7883 case 711: 8908 8909 /* Line 1806 of yacc.c */ 8910 #line 2715 "parser.yy" 8911 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7884 #line 2715 "parser.yy" /* yacc.c:1646 */ 7885 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7886 #line 7887 "Parser/parser.cc" /* yacc.c:1646 */ 8912 7887 break; 8913 7888 8914 7889 case 714: 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2725 "parser.yy" 8918 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7890 #line 2725 "parser.yy" /* yacc.c:1646 */ 7891 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7892 #line 7893 "Parser/parser.cc" /* yacc.c:1646 */ 8919 7893 break; 8920 7894 8921 7895 case 715: 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2727 "parser.yy" 8925 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7896 #line 2727 "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 */ 8926 7899 break; 8927 7900 8928 7901 case 716: 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2729 "parser.yy" 8932 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7902 #line 2729 "parser.yy" /* yacc.c:1646 */ 7903 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7904 #line 7905 "Parser/parser.cc" /* yacc.c:1646 */ 8933 7905 break; 8934 7906 8935 7907 case 717: 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2731 "parser.yy" 8939 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7908 #line 2731 "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 */ 8940 7911 break; 8941 7912 8942 7913 case 718: 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2733 "parser.yy" 8946 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7914 #line 2733 "parser.yy" /* yacc.c:1646 */ 7915 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7916 #line 7917 "Parser/parser.cc" /* yacc.c:1646 */ 8947 7917 break; 8948 7918 8949 7919 case 719: 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2735 "parser.yy" 8953 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7920 #line 2735 "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 */ 8954 7923 break; 8955 7924 8956 7925 case 720: 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2742 "parser.yy" 8960 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7926 #line 2742 "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 */ 8961 7929 break; 8962 7930 8963 7931 case 721: 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2744 "parser.yy" 8967 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7932 #line 2744 "parser.yy" /* yacc.c:1646 */ 7933 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646 */ 8968 7935 break; 8969 7936 8970 7937 case 722: 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2746 "parser.yy" 8974 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7938 #line 2746 "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 */ 8975 7941 break; 8976 7942 8977 7943 case 723: 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2748 "parser.yy" 8981 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7944 #line 2748 "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 */ 8982 7947 break; 8983 7948 8984 7949 case 724: 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2750 "parser.yy" 8988 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7950 #line 2750 "parser.yy" /* yacc.c:1646 */ 7951 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7952 #line 7953 "Parser/parser.cc" /* yacc.c:1646 */ 8989 7953 break; 8990 7954 8991 7955 case 725: 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2753 "parser.yy" 8995 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7956 #line 2753 "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 */ 8996 7959 break; 8997 7960 8998 7961 case 726: 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2755 "parser.yy" 9002 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7962 #line 2755 "parser.yy" /* yacc.c:1646 */ 7963 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646 */ 9003 7965 break; 9004 7966 9005 7967 case 727: 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2757 "parser.yy" 9009 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7968 #line 2757 "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 */ 9010 7971 break; 9011 7972 9012 7973 case 728: 9013 9014 /* Line 1806 of yacc.c */ 9015 #line 2759 "parser.yy" 9016 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7974 #line 2759 "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 */ 9017 7977 break; 9018 7978 9019 7979 case 729: 9020 9021 /* Line 1806 of yacc.c */ 9022 #line 2761 "parser.yy" 9023 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7980 #line 2761 "parser.yy" /* yacc.c:1646 */ 7981 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7982 #line 7983 "Parser/parser.cc" /* yacc.c:1646 */ 9024 7983 break; 9025 7984 9026 7985 case 730: 9027 9028 /* Line 1806 of yacc.c */ 9029 #line 2766 "parser.yy" 9030 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7986 #line 2766 "parser.yy" /* yacc.c:1646 */ 7987 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7988 #line 7989 "Parser/parser.cc" /* yacc.c:1646 */ 9031 7989 break; 9032 7990 9033 7991 case 731: 9034 9035 /* Line 1806 of yacc.c */ 9036 #line 2768 "parser.yy" 9037 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7992 #line 2768 "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 */ 9038 7995 break; 9039 7996 9040 7997 case 732: 9041 9042 /* Line 1806 of yacc.c */ 9043 #line 2773 "parser.yy" 9044 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 7998 #line 2773 "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 */ 9045 8001 break; 9046 8002 9047 8003 case 733: 9048 9049 /* Line 1806 of yacc.c */ 9050 #line 2775 "parser.yy" 9051 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8004 #line 2775 "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 */ 9052 8007 break; 9053 8008 9054 8009 case 735: 9055 9056 /* Line 1806 of yacc.c */ 9057 #line 2802 "parser.yy" 9058 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8010 #line 2802 "parser.yy" /* yacc.c:1646 */ 8011 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8012 #line 8013 "Parser/parser.cc" /* yacc.c:1646 */ 9059 8013 break; 9060 8014 9061 8015 case 739: 9062 9063 /* Line 1806 of yacc.c */ 9064 #line 2813 "parser.yy" 9065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8016 #line 2813 "parser.yy" /* yacc.c:1646 */ 8017 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8018 #line 8019 "Parser/parser.cc" /* yacc.c:1646 */ 9066 8019 break; 9067 8020 9068 8021 case 740: 9069 9070 /* Line 1806 of yacc.c */ 9071 #line 2815 "parser.yy" 9072 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8022 #line 2815 "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 */ 9073 8025 break; 9074 8026 9075 8027 case 741: 9076 9077 /* Line 1806 of yacc.c */ 9078 #line 2817 "parser.yy" 9079 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8028 #line 2817 "parser.yy" /* yacc.c:1646 */ 8029 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8030 #line 8031 "Parser/parser.cc" /* yacc.c:1646 */ 9080 8031 break; 9081 8032 9082 8033 case 742: 9083 9084 /* Line 1806 of yacc.c */ 9085 #line 2819 "parser.yy" 9086 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8034 #line 2819 "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 */ 9087 8037 break; 9088 8038 9089 8039 case 743: 9090 9091 /* Line 1806 of yacc.c */ 9092 #line 2821 "parser.yy" 9093 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8040 #line 2821 "parser.yy" /* yacc.c:1646 */ 8041 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8042 #line 8043 "Parser/parser.cc" /* yacc.c:1646 */ 9094 8043 break; 9095 8044 9096 8045 case 744: 9097 9098 /* Line 1806 of yacc.c */ 9099 #line 2823 "parser.yy" 9100 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8046 #line 2823 "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 */ 9101 8049 break; 9102 8050 9103 8051 case 745: 9104 9105 /* Line 1806 of yacc.c */ 9106 #line 2830 "parser.yy" 9107 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8052 #line 2830 "parser.yy" /* yacc.c:1646 */ 8053 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646 */ 9108 8055 break; 9109 8056 9110 8057 case 746: 9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2832 "parser.yy" 9114 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8058 #line 2832 "parser.yy" /* yacc.c:1646 */ 8059 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646 */ 9115 8061 break; 9116 8062 9117 8063 case 747: 9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2834 "parser.yy" 9121 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8064 #line 2834 "parser.yy" /* yacc.c:1646 */ 8065 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646 */ 9122 8067 break; 9123 8068 9124 8069 case 748: 9125 9126 /* Line 1806 of yacc.c */ 9127 #line 2836 "parser.yy" 9128 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8070 #line 2836 "parser.yy" /* yacc.c:1646 */ 8071 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8072 #line 8073 "Parser/parser.cc" /* yacc.c:1646 */ 9129 8073 break; 9130 8074 9131 8075 case 749: 9132 9133 /* Line 1806 of yacc.c */ 9134 #line 2838 "parser.yy" 9135 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8076 #line 2838 "parser.yy" /* yacc.c:1646 */ 8077 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8078 #line 8079 "Parser/parser.cc" /* yacc.c:1646 */ 9136 8079 break; 9137 8080 9138 8081 case 750: 9139 9140 /* Line 1806 of yacc.c */ 9141 #line 2840 "parser.yy" 9142 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8082 #line 2840 "parser.yy" /* yacc.c:1646 */ 8083 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8084 #line 8085 "Parser/parser.cc" /* yacc.c:1646 */ 9143 8085 break; 9144 8086 9145 8087 case 751: 9146 9147 /* Line 1806 of yacc.c */ 9148 #line 2845 "parser.yy" 9149 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8088 #line 2845 "parser.yy" /* yacc.c:1646 */ 8089 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8090 #line 8091 "Parser/parser.cc" /* yacc.c:1646 */ 9150 8091 break; 9151 8092 9152 8093 case 752: 9153 9154 /* Line 1806 of yacc.c */ 9155 #line 2852 "parser.yy" 9156 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 8094 #line 2852 "parser.yy" /* yacc.c:1646 */ 8095 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646 */ 9157 8097 break; 9158 8098 9159 8099 case 753: 9160 9161 /* Line 1806 of yacc.c */ 9162 #line 2854 "parser.yy" 9163 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 8100 #line 2854 "parser.yy" /* yacc.c:1646 */ 8101 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8102 #line 8103 "Parser/parser.cc" /* yacc.c:1646 */ 9164 8103 break; 9165 8104 9166 8105 case 756: 9167 9168 /* Line 1806 of yacc.c */ 9169 #line 2878 "parser.yy" 8106 #line 2878 "parser.yy" /* yacc.c:1646 */ 9170 8107 { (yyval.en) = 0; } 8108 #line 8109 "Parser/parser.cc" /* yacc.c:1646 */ 9171 8109 break; 9172 8110 9173 8111 case 757: 9174 9175 /* Line 1806 of yacc.c */ 9176 #line 2880 "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" 8112 #line 2880 "parser.yy" /* yacc.c:1646 */ 8113 { (yyval.en) = (yyvsp[0].en); } 8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646 */ 8115 break; 8116 8117 8118 #line 8119 "Parser/parser.cc" /* yacc.c:1646 */ 9184 8119 default: break; 9185 8120 } … … 9203 8138 *++yyvsp = yyval; 9204 8139 9205 /* Now `shift' the result of the reduction. Determine what state8140 /* Now 'shift' the result of the reduction. Determine what state 9206 8141 that goes to, based on the state we popped back to and the rule 9207 8142 number reduced by. */ … … 9218 8153 9219 8154 9220 /*------------------------------------ .9221 | yyerrlab -- here on detecting error |9222 `------------------------------------ */8155 /*--------------------------------------. 8156 | yyerrlab -- here on detecting error. | 8157 `--------------------------------------*/ 9223 8158 yyerrlab: 9224 8159 /* Make sure we have latest lookahead translation. See comments at … … 9271 8206 { 9272 8207 /* If just tried and failed to reuse lookahead token after an 9273 8208 error, discard it. */ 9274 8209 9275 8210 if (yychar <= YYEOF) 9276 9277 9278 9279 9280 8211 { 8212 /* Return failure if at end of input. */ 8213 if (yychar == YYEOF) 8214 YYABORT; 8215 } 9281 8216 else 9282 9283 9284 9285 9286 8217 { 8218 yydestruct ("Error: discarding", 8219 yytoken, &yylval); 8220 yychar = YYEMPTY; 8221 } 9287 8222 } 9288 8223 … … 9303 8238 goto yyerrorlab; 9304 8239 9305 /* Do not reclaim the symbols of the rule wh ichaction triggered8240 /* Do not reclaim the symbols of the rule whose action triggered 9306 8241 this YYERROR. */ 9307 8242 YYPOPSTACK (yylen); … … 9316 8251 `-------------------------------------------------------------*/ 9317 8252 yyerrlab1: 9318 yyerrstatus = 3; 8253 yyerrstatus = 3; /* Each real token shifted decrements this. */ 9319 8254 9320 8255 for (;;) … … 9322 8257 yyn = yypact[yystate]; 9323 8258 if (!yypact_value_is_default (yyn)) 9324 9325 9326 9327 9328 9329 9330 9331 9332 8259 { 8260 yyn += YYTERROR; 8261 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 8262 { 8263 yyn = yytable[yyn]; 8264 if (0 < yyn) 8265 break; 8266 } 8267 } 9333 8268 9334 8269 /* Pop the current state because it cannot handle the error token. */ 9335 8270 if (yyssp == yyss) 9336 8271 YYABORT; 9337 8272 9338 8273 9339 8274 yydestruct ("Error: popping", 9340 8275 yystos[yystate], yyvsp); 9341 8276 YYPOPSTACK (1); 9342 8277 yystate = *yyssp; … … 9344 8279 } 9345 8280 8281 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 9346 8282 *++yyvsp = yylval; 8283 YY_IGNORE_MAYBE_UNINITIALIZED_END 9347 8284 9348 8285 … … 9368 8305 goto yyreturn; 9369 8306 9370 #if !defined (yyoverflow)|| YYERROR_VERBOSE8307 #if !defined yyoverflow || YYERROR_VERBOSE 9371 8308 /*-------------------------------------------------. 9372 8309 | yyexhaustedlab -- memory exhaustion comes here. | … … 9387 8324 yytoken, &yylval); 9388 8325 } 9389 /* Do not reclaim the symbols of the rule wh ichaction triggered8326 /* Do not reclaim the symbols of the rule whose action triggered 9390 8327 this YYABORT or YYACCEPT. */ 9391 8328 YYPOPSTACK (yylen); … … 9394 8331 { 9395 8332 yydestruct ("Cleanup: popping", 9396 8333 yystos[*yyssp], yyvsp); 9397 8334 YYPOPSTACK (1); 9398 8335 } … … 9405 8342 YYSTACK_FREE (yymsg); 9406 8343 #endif 9407 /* Make sure YYID is used. */ 9408 return YYID (yyresult); 8344 return yyresult; 9409 8345 } 9410 9411 9412 9413 /* Line 2067 of yacc.c */ 9414 #line 2883 "parser.yy" 8346 #line 2883 "parser.yy" /* yacc.c:1906 */ 9415 8347 9416 8348 // ----end of grammar---- … … 9431 8363 // compile-command: "make install" // 9432 8364 // End: // 9433 -
src/Parser/parser.h
r8e5724e r148f7290 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 ZERO_T = 279, 62 ONE_T = 280, 63 VALIST = 281, 64 BOOL = 282, 65 COMPLEX = 283, 66 IMAGINARY = 284, 67 TYPEOF = 285, 68 LABEL = 286, 69 ENUM = 287, 70 STRUCT = 288, 71 UNION = 289, 72 OTYPE = 290, 73 FTYPE = 291, 74 DTYPE = 292, 75 TRAIT = 293, 76 SIZEOF = 294, 77 OFFSETOF = 295, 78 ATTRIBUTE = 296, 79 EXTENSION = 297, 80 IF = 298, 81 ELSE = 299, 82 SWITCH = 300, 83 CASE = 301, 84 DEFAULT = 302, 85 DO = 303, 86 WHILE = 304, 87 FOR = 305, 88 BREAK = 306, 89 CONTINUE = 307, 90 GOTO = 308, 91 RETURN = 309, 92 CHOOSE = 310, 93 DISABLE = 311, 94 ENABLE = 312, 95 FALLTHRU = 313, 96 TRY = 314, 97 CATCH = 315, 98 CATCHRESUME = 316, 99 FINALLY = 317, 100 THROW = 318, 101 THROWRESUME = 319, 102 AT = 320, 103 ASM = 321, 104 ALIGNAS = 322, 105 ALIGNOF = 323, 106 ATOMIC = 324, 107 GENERIC = 325, 108 NORETURN = 326, 109 STATICASSERT = 327, 110 THREADLOCAL = 328, 111 IDENTIFIER = 329, 112 QUOTED_IDENTIFIER = 330, 113 TYPEDEFname = 331, 114 TYPEGENname = 332, 115 ATTR_IDENTIFIER = 333, 116 ATTR_TYPEDEFname = 334, 117 ATTR_TYPEGENname = 335, 118 INTEGERconstant = 336, 119 CHARACTERconstant = 337, 120 STRINGliteral = 338, 121 REALDECIMALconstant = 339, 122 REALFRACTIONconstant = 340, 123 FLOATINGconstant = 341, 124 ZERO = 342, 125 ONE = 343, 126 ARROW = 344, 127 ICR = 345, 128 DECR = 346, 129 LS = 347, 130 RS = 348, 131 LE = 349, 132 GE = 350, 133 EQ = 351, 134 NE = 352, 135 ANDAND = 353, 136 OROR = 354, 137 ELLIPSIS = 355, 138 MULTassign = 356, 139 DIVassign = 357, 140 MODassign = 358, 141 PLUSassign = 359, 142 MINUSassign = 360, 143 LSassign = 361, 144 RSassign = 362, 145 ANDassign = 363, 146 ERassign = 364, 147 ORassign = 365, 148 ATassign = 366, 149 THEN = 367 150 }; 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 ZERO_T = 279, 70 ONE_T = 280, 71 VALIST = 281, 72 BOOL = 282, 73 COMPLEX = 283, 74 IMAGINARY = 284, 75 TYPEOF = 285, 76 LABEL = 286, 77 ENUM = 287, 78 STRUCT = 288, 79 UNION = 289, 80 OTYPE = 290, 81 FTYPE = 291, 82 DTYPE = 292, 83 TRAIT = 293, 84 SIZEOF = 294, 85 OFFSETOF = 295, 86 ATTRIBUTE = 296, 87 EXTENSION = 297, 88 IF = 298, 89 ELSE = 299, 90 SWITCH = 300, 91 CASE = 301, 92 DEFAULT = 302, 93 DO = 303, 94 WHILE = 304, 95 FOR = 305, 96 BREAK = 306, 97 CONTINUE = 307, 98 GOTO = 308, 99 RETURN = 309, 100 CHOOSE = 310, 101 DISABLE = 311, 102 ENABLE = 312, 103 FALLTHRU = 313, 104 TRY = 314, 105 CATCH = 315, 106 CATCHRESUME = 316, 107 FINALLY = 317, 108 THROW = 318, 109 THROWRESUME = 319, 110 AT = 320, 111 ASM = 321, 112 ALIGNAS = 322, 113 ALIGNOF = 323, 114 ATOMIC = 324, 115 GENERIC = 325, 116 NORETURN = 326, 117 STATICASSERT = 327, 118 THREADLOCAL = 328, 119 IDENTIFIER = 329, 120 QUOTED_IDENTIFIER = 330, 121 TYPEDEFname = 331, 122 TYPEGENname = 332, 123 ATTR_IDENTIFIER = 333, 124 ATTR_TYPEDEFname = 334, 125 ATTR_TYPEGENname = 335, 126 INTEGERconstant = 336, 127 CHARACTERconstant = 337, 128 STRINGliteral = 338, 129 REALDECIMALconstant = 339, 130 REALFRACTIONconstant = 340, 131 FLOATINGconstant = 341, 132 ZERO = 342, 133 ONE = 343, 134 ARROW = 344, 135 ICR = 345, 136 DECR = 346, 137 LS = 347, 138 RS = 348, 139 LE = 349, 140 GE = 350, 141 EQ = 351, 142 NE = 352, 143 ANDAND = 353, 144 OROR = 354, 145 ELLIPSIS = 355, 146 MULTassign = 356, 147 DIVassign = 357, 148 MODassign = 358, 149 PLUSassign = 359, 150 MINUSassign = 360, 151 LSassign = 361, 152 RSassign = 362, 153 ANDassign = 363, 154 ERassign = 364, 155 ORassign = 365, 156 ATassign = 366, 157 THEN = 367 158 }; 151 159 #endif 152 160 /* Tokens. */ … … 262 270 #define THEN 367 263 271 264 265 266 272 /* Value type. */ 267 273 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 268 typedef union YYSTYPE 274 typedef union YYSTYPE YYSTYPE; 275 union YYSTYPE 269 276 { 270 271 /* Line 2068 of yacc.c */ 272 #line 120 "parser.yy" 277 #line 120 "parser.yy" /* yacc.c:1909 */ 273 278 274 279 Token tok; … … 287 292 bool flag; 288 293 289 290 291 /* Line 2068 of yacc.c */ 292 #line 293 "Parser/parser.h" 293 } YYSTYPE; 294 #line 295 "Parser/parser.h" /* yacc.c:1909 */ 295 }; 294 296 # define YYSTYPE_IS_TRIVIAL 1 295 # define yystype YYSTYPE /* obsolescent; will be withdrawn */296 297 # define YYSTYPE_IS_DECLARED 1 297 298 #endif 298 299 300 299 301 extern YYSTYPE yylval; 300 302 301 303 int yyparse (void); 304 305 #endif /* !YY_YY_PARSER_PARSER_H_INCLUDED */ -
src/Parser/parser.yy
r8e5724e r148f7290 1411 1411 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 1412 1412 | ZERO_T 1413 { $$ = DeclarationNode::newB asicType( DeclarationNode::Char); }1413 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 1414 1414 | ONE_T 1415 { $$ = DeclarationNode::newB asicType( DeclarationNode::Char); }1415 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 1416 1416 ; 1417 1417
Note: See TracChangeset
for help on using the changeset viewer.