Changes in / [50c5cf3:1eba452]
- Location:
- src
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/FixInit.cc
r50c5cf3 r1eba452 33 33 #include "SymTab/Autogen.h" 34 34 #include "GenPoly/PolyMutator.h" 35 #include "GenPoly/DeclMutator.h" 35 36 #include "SynTree/AddStmtVisitor.h" 36 37 #include "CodeGen/GenType.h" // for warnings … … 216 217 SymTab::Indexer & indexer; 217 218 }; 219 220 class FixCtorExprs : public GenPoly::DeclMutator { 221 public: 222 /// expands ConstructorExpr nodes into comma expressions, using a temporary for the first argument 223 static void fix( std::list< Declaration * > & translationUnit ); 224 225 virtual Expression * mutate( ConstructorExpr * ctorExpr ); 226 }; 218 227 } // namespace 219 228 … … 221 230 // fixes ConstructorInit for global variables. should happen before fixInitializers. 222 231 InitTweak::fixGlobalInit( translationUnit, filename, inLibrary ); 232 223 233 224 234 InsertImplicitCalls::insert( translationUnit ); … … 231 241 232 242 GenStructMemberCalls::generate( translationUnit ); 243 // xxx - ctor expansion currently has to be after FixCopyCtors, because there is currently a 244 // hack in the way untyped assignments are generated, where the first argument cannot have 245 // its address taken because of the way codegeneration handles UntypedExpr vs. ApplicationExpr. 246 // Thus such assignment exprs must never pushed through expression resolution (and thus should 247 // not go through the FixCopyCtors pass), otherwise they will fail -- guaranteed. 248 // Also needs to happen after GenStructMemberCalls, since otherwise member constructors exprs 249 // don't look right, and a member can be constructed more than once. 250 FixCtorExprs::fix( translationUnit ); 233 251 } 234 252 … … 283 301 throw warner.errors; 284 302 } 303 } 304 305 void FixCtorExprs::fix( std::list< Declaration * > & translationUnit ) { 306 FixCtorExprs fixer; 307 fixer.mutateDeclarationList( translationUnit ); 285 308 } 286 309 … … 480 503 retExpr = deref; 481 504 } // if 482 // xxx - might need to set env on retExpr... 483 // retExpr->set_env( env->clone() ); 505 retExpr->set_env( env->clone() ); 484 506 return retExpr; 485 507 } else { … … 914 936 return safe_dynamic_cast< ApplicationExpr * >( ResolvExpr::findVoidExpression( untypedExpr, indexer ) ); 915 937 } 938 939 Expression * FixCtorExprs::mutate( ConstructorExpr * ctorExpr ) { 940 static UniqueName tempNamer( "_tmp_ctor_expr" ); 941 assert( ctorExpr->get_results().size() == 1 ); 942 ObjectDecl * tmp = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, nullptr, ctorExpr->get_results().front()->clone(), nullptr ); 943 addDeclaration( tmp ); 944 945 ApplicationExpr * callExpr = safe_dynamic_cast< ApplicationExpr * > ( ctorExpr->get_callExpr() ); 946 TypeSubstitution * env = ctorExpr->get_env(); 947 ctorExpr->set_callExpr( nullptr ); 948 ctorExpr->set_env( nullptr ); 949 950 Expression *& firstArg = callExpr->get_args().front(); 951 UntypedExpr * assign = new UntypedExpr( new NameExpr( "?=?" ) ); 952 assign->get_args().push_back( new VariableExpr( tmp ) ); 953 assign->get_args().push_back( firstArg ); 954 cloneAll( ctorExpr->get_results(), assign->get_results() ); 955 firstArg = assign; 956 957 CommaExpr * commaExpr = new CommaExpr( callExpr, new VariableExpr( tmp ) ); 958 commaExpr->set_env( env ); 959 delete ctorExpr; 960 return commaExpr; 961 } 916 962 } // namespace 917 963 } // namespace InitTweak -
src/InitTweak/InitTweak.cc
r50c5cf3 r1eba452 358 358 template<typename CallExpr> 359 359 Expression *& callArg( CallExpr * callExpr, unsigned int pos ) { 360 if ( pos >= callExpr->get_args().size() ) assert ( false &&"asking for argument that doesn't exist. Return NULL/throw exception?" );360 if ( pos >= callExpr->get_args().size() ) assertf( false, "asking for argument that doesn't exist. Return NULL/throw exception?" ); 361 361 for ( Expression *& arg : callExpr->get_args() ) { 362 362 if ( pos == 0 ) return arg; … … 373 373 return callArg( untypedExpr, pos ); 374 374 } else { 375 assert ( false &&"Unexpected expression type passed to getCallArg" );375 assertf( false, "Unexpected expression type passed to getCallArg" ); 376 376 } 377 377 } … … 387 387 } else if ( MemberExpr * memberExpr = dynamic_cast< MemberExpr * >( func ) ) { 388 388 return memberExpr->get_member()->get_name(); 389 } else if ( UntypedMemberExpr * memberExpr = dynamic_cast< UntypedMemberExpr * > ( func ) ) { 390 return memberExpr->get_member(); 389 391 } else { 390 assert ( false &&"Unexpected expression type being called as a function in call expression" );392 assertf( false, "Unexpected expression type being called as a function in call expression" ); 391 393 } 392 394 } … … 400 402 } else { 401 403 std::cerr << expr << std::endl; 402 assert ( false &&"Unexpected expression type passed to getFunctionName" );404 assertf( false, "Unexpected expression type passed to getFunctionName" ); 403 405 } 404 406 } -
src/Parser/parser.cc
r50c5cf3 r1eba452 1 /* A Bison parser, made by GNU Bison 3.0.2. */1 /* A Bison parser, made by GNU Bison 2.5. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2013Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 3.0.2"47 #define YYBISON_VERSION "2.5" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */ 62 #define YYLSP_NEEDED 0 61 63 62 64 63 65 64 66 /* Copy the first part of user declarations. */ 65 #line 42 "parser.yy" /* yacc.c:339 */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 66 70 67 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 90 94 } // appendStr 91 95 92 #line 93 "Parser/parser.cc" /* yacc.c:339 */ 93 94 # ifndef YY_NULLPTR 95 # if defined __cplusplus && 201103L <= __cplusplus 96 # define YY_NULLPTR nullptr 97 # else 98 # define YY_NULLPTR 0 99 # endif 100 # endif 96 97 /* Line 268 of yacc.c */ 98 #line 99 "Parser/parser.cc" 99 100 /* Enabling traces. */ 101 #ifndef YYDEBUG 102 # define YYDEBUG 1 103 #endif 101 104 102 105 /* Enabling verbose error messages. */ … … 108 111 #endif 109 112 110 /* In a future release of Bison, this section will be replaced 111 by #include "y.tab.h". */ 112 #ifndef YY_YY_Y_TAB_H_INCLUDED 113 # define YY_YY_Y_TAB_H_INCLUDED 114 /* Debug traces. */ 115 #ifndef YYDEBUG 116 # define YYDEBUG 1 113 /* Enabling the token table. */ 114 #ifndef YYTOKEN_TABLE 115 # define YYTOKEN_TABLE 0 117 116 #endif 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 117 118 119 /* Tokens. */ 123 120 #ifndef YYTOKENTYPE 124 121 # define YYTOKENTYPE 125 enum yytokentype 126 { 127 TYPEDEF = 258, 128 AUTO = 259, 129 EXTERN = 260, 130 REGISTER = 261, 131 STATIC = 262, 132 INLINE = 263, 133 FORTRAN = 264, 134 CONST = 265, 135 VOLATILE = 266, 136 RESTRICT = 267, 137 FORALL = 268, 138 LVALUE = 269, 139 VOID = 270, 140 CHAR = 271, 141 SHORT = 272, 142 INT = 273, 143 LONG = 274, 144 FLOAT = 275, 145 DOUBLE = 276, 146 SIGNED = 277, 147 UNSIGNED = 278, 148 VALIST = 279, 149 BOOL = 280, 150 COMPLEX = 281, 151 IMAGINARY = 282, 152 TYPEOF = 283, 153 LABEL = 284, 154 ENUM = 285, 155 STRUCT = 286, 156 UNION = 287, 157 OTYPE = 288, 158 FTYPE = 289, 159 DTYPE = 290, 160 TRAIT = 291, 161 SIZEOF = 292, 162 OFFSETOF = 293, 163 ATTRIBUTE = 294, 164 EXTENSION = 295, 165 IF = 296, 166 ELSE = 297, 167 SWITCH = 298, 168 CASE = 299, 169 DEFAULT = 300, 170 DO = 301, 171 WHILE = 302, 172 FOR = 303, 173 BREAK = 304, 174 CONTINUE = 305, 175 GOTO = 306, 176 RETURN = 307, 177 CHOOSE = 308, 178 DISABLE = 309, 179 ENABLE = 310, 180 FALLTHRU = 311, 181 TRY = 312, 182 CATCH = 313, 183 CATCHRESUME = 314, 184 FINALLY = 315, 185 THROW = 316, 186 THROWRESUME = 317, 187 AT = 318, 188 ASM = 319, 189 ALIGNAS = 320, 190 ALIGNOF = 321, 191 ATOMIC = 322, 192 GENERIC = 323, 193 NORETURN = 324, 194 STATICASSERT = 325, 195 THREADLOCAL = 326, 196 IDENTIFIER = 327, 197 QUOTED_IDENTIFIER = 328, 198 TYPEDEFname = 329, 199 TYPEGENname = 330, 200 ATTR_IDENTIFIER = 331, 201 ATTR_TYPEDEFname = 332, 202 ATTR_TYPEGENname = 333, 203 INTEGERconstant = 334, 204 FLOATINGconstant = 335, 205 CHARACTERconstant = 336, 206 STRINGliteral = 337, 207 ZERO = 338, 208 ONE = 339, 209 ARROW = 340, 210 ICR = 341, 211 DECR = 342, 212 LS = 343, 213 RS = 344, 214 LE = 345, 215 GE = 346, 216 EQ = 347, 217 NE = 348, 218 ANDAND = 349, 219 OROR = 350, 220 ELLIPSIS = 351, 221 MULTassign = 352, 222 DIVassign = 353, 223 MODassign = 354, 224 PLUSassign = 355, 225 MINUSassign = 356, 226 LSassign = 357, 227 RSassign = 358, 228 ANDassign = 359, 229 ERassign = 360, 230 ORassign = 361, 231 ATassign = 362, 232 THEN = 363 233 }; 122 /* Put the tokens into the symbol table, so that GDB and other debuggers 123 know about them. */ 124 enum yytokentype { 125 TYPEDEF = 258, 126 AUTO = 259, 127 EXTERN = 260, 128 REGISTER = 261, 129 STATIC = 262, 130 INLINE = 263, 131 FORTRAN = 264, 132 CONST = 265, 133 VOLATILE = 266, 134 RESTRICT = 267, 135 FORALL = 268, 136 LVALUE = 269, 137 VOID = 270, 138 CHAR = 271, 139 SHORT = 272, 140 INT = 273, 141 LONG = 274, 142 FLOAT = 275, 143 DOUBLE = 276, 144 SIGNED = 277, 145 UNSIGNED = 278, 146 VALIST = 279, 147 BOOL = 280, 148 COMPLEX = 281, 149 IMAGINARY = 282, 150 TYPEOF = 283, 151 LABEL = 284, 152 ENUM = 285, 153 STRUCT = 286, 154 UNION = 287, 155 OTYPE = 288, 156 FTYPE = 289, 157 DTYPE = 290, 158 TRAIT = 291, 159 SIZEOF = 292, 160 OFFSETOF = 293, 161 ATTRIBUTE = 294, 162 EXTENSION = 295, 163 IF = 296, 164 ELSE = 297, 165 SWITCH = 298, 166 CASE = 299, 167 DEFAULT = 300, 168 DO = 301, 169 WHILE = 302, 170 FOR = 303, 171 BREAK = 304, 172 CONTINUE = 305, 173 GOTO = 306, 174 RETURN = 307, 175 CHOOSE = 308, 176 DISABLE = 309, 177 ENABLE = 310, 178 FALLTHRU = 311, 179 TRY = 312, 180 CATCH = 313, 181 CATCHRESUME = 314, 182 FINALLY = 315, 183 THROW = 316, 184 THROWRESUME = 317, 185 AT = 318, 186 ASM = 319, 187 ALIGNAS = 320, 188 ALIGNOF = 321, 189 ATOMIC = 322, 190 GENERIC = 323, 191 NORETURN = 324, 192 STATICASSERT = 325, 193 THREADLOCAL = 326, 194 IDENTIFIER = 327, 195 QUOTED_IDENTIFIER = 328, 196 TYPEDEFname = 329, 197 TYPEGENname = 330, 198 ATTR_IDENTIFIER = 331, 199 ATTR_TYPEDEFname = 332, 200 ATTR_TYPEGENname = 333, 201 INTEGERconstant = 334, 202 FLOATINGconstant = 335, 203 CHARACTERconstant = 336, 204 STRINGliteral = 337, 205 ZERO = 338, 206 ONE = 339, 207 ARROW = 340, 208 ICR = 341, 209 DECR = 342, 210 LS = 343, 211 RS = 344, 212 LE = 345, 213 GE = 346, 214 EQ = 347, 215 NE = 348, 216 ANDAND = 349, 217 OROR = 350, 218 ELLIPSIS = 351, 219 MULTassign = 352, 220 DIVassign = 353, 221 MODassign = 354, 222 PLUSassign = 355, 223 MINUSassign = 356, 224 LSassign = 357, 225 RSassign = 358, 226 ANDassign = 359, 227 ERassign = 360, 228 ORassign = 361, 229 ATassign = 362, 230 THEN = 363 231 }; 234 232 #endif 235 233 /* Tokens. */ … … 341 339 #define THEN 363 342 340 343 /* Value type. */ 341 342 343 344 344 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 345 typedef union YYSTYPE 347 346 { 348 #line 115 "parser.yy" /* yacc.c:355 */ 347 348 /* Line 293 of yacc.c */ 349 #line 115 "parser.yy" 349 350 350 351 Token tok; … … 363 364 bool flag; 364 365 365 #line 366 "Parser/parser.cc" /* yacc.c:355 */ 366 }; 366 367 368 /* Line 293 of yacc.c */ 369 #line 370 "Parser/parser.cc" 370 } YYSTYPE; 367 371 # define YYSTYPE_IS_TRIVIAL 1 372 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 368 373 # define YYSTYPE_IS_DECLARED 1 369 374 #endif 370 375 371 376 372 extern YYSTYPE yylval;373 374 int yyparse (void);375 376 #endif /* !YY_YY_Y_TAB_H_INCLUDED */377 378 377 /* Copy the second part of user declarations. */ 379 378 380 #line 381 "Parser/parser.cc" /* yacc.c:358 */ 379 380 /* Line 343 of yacc.c */ 381 #line 382 "Parser/parser.cc" 381 382 382 383 #ifdef short … … 392 393 #ifdef YYTYPE_INT8 393 394 typedef YYTYPE_INT8 yytype_int8; 395 #elif (defined __STDC__ || defined __C99__FUNC__ \ 396 || defined __cplusplus || defined _MSC_VER) 397 typedef signed char yytype_int8; 394 398 #else 395 typedef s igned charyytype_int8;399 typedef short int yytype_int8; 396 400 #endif 397 401 … … 413 417 # elif defined size_t 414 418 # define YYSIZE_T size_t 415 # elif ! defined YYSIZE_T 419 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 420 || defined __cplusplus || defined _MSC_VER) 416 421 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 417 422 # define YYSIZE_T size_t … … 427 432 # if ENABLE_NLS 428 433 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 429 # define YY_( Msgid) dgettext ("bison-runtime", Msgid)434 # define YY_(msgid) dgettext ("bison-runtime", msgid) 430 435 # endif 431 436 # endif 432 437 # ifndef YY_ 433 # define YY_( Msgid) Msgid438 # define YY_(msgid) msgid 434 439 # endif 435 440 #endif 436 441 437 #ifndef YY_ATTRIBUTE438 # if (defined __GNUC__ \439 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \440 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C441 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)442 # else443 # define YY_ATTRIBUTE(Spec) /* empty */444 # endif445 #endif446 447 #ifndef YY_ATTRIBUTE_PURE448 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))449 #endif450 451 #ifndef YY_ATTRIBUTE_UNUSED452 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))453 #endif454 455 #if !defined _Noreturn \456 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)457 # if defined _MSC_VER && 1200 <= _MSC_VER458 # define _Noreturn __declspec (noreturn)459 # else460 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))461 # endif462 #endif463 464 442 /* Suppress unused-variable warnings by "using" E. */ 465 443 #if ! defined lint || defined __GNUC__ 466 # define YYUSE( E) ((void) (E))444 # define YYUSE(e) ((void) (e)) 467 445 #else 468 # define YYUSE( E) /* empty */446 # define YYUSE(e) /* empty */ 469 447 #endif 470 448 471 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 472 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 473 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 474 _Pragma ("GCC diagnostic push") \ 475 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 476 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 477 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 478 _Pragma ("GCC diagnostic pop") 449 /* Identity function, used to suppress warnings about constant conditions. */ 450 #ifndef lint 451 # define YYID(n) (n) 479 452 #else 480 # define YY_INITIAL_VALUE(Value) Value 453 #if (defined __STDC__ || defined __C99__FUNC__ \ 454 || defined __cplusplus || defined _MSC_VER) 455 static int 456 YYID (int yyi) 457 #else 458 static int 459 YYID (yyi) 460 int yyi; 481 461 #endif 482 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 484 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 462 { 463 return yyi; 464 } 485 465 #endif 486 #ifndef YY_INITIAL_VALUE487 # define YY_INITIAL_VALUE(Value) /* Nothing. */488 #endif489 490 466 491 467 #if ! defined yyoverflow || YYERROR_VERBOSE … … 506 482 # else 507 483 # define YYSTACK_ALLOC alloca 508 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 484 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 485 || defined __cplusplus || defined _MSC_VER) 509 486 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 510 /* Use EXIT_SUCCESS as a witness for stdlib.h. */511 487 # ifndef EXIT_SUCCESS 512 488 # define EXIT_SUCCESS 0 … … 518 494 519 495 # ifdef YYSTACK_ALLOC 520 /* Pacify GCC's 'empty if-body' warning. */521 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( 0)496 /* Pacify GCC's `empty if-body' warning. */ 497 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 522 498 # ifndef YYSTACK_ALLOC_MAXIMUM 523 499 /* The OS might guarantee only one guard page at the bottom of the stack, … … 535 511 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 536 512 && ! ((defined YYMALLOC || defined malloc) \ 537 513 && (defined YYFREE || defined free))) 538 514 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 539 515 # ifndef EXIT_SUCCESS … … 543 519 # ifndef YYMALLOC 544 520 # define YYMALLOC malloc 545 # if ! defined malloc && ! defined EXIT_SUCCESS 521 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 522 || defined __cplusplus || defined _MSC_VER) 546 523 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 547 524 # endif … … 549 526 # ifndef YYFREE 550 527 # define YYFREE free 551 # if ! defined free && ! defined EXIT_SUCCESS 528 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 529 || defined __cplusplus || defined _MSC_VER) 552 530 void free (void *); /* INFRINGES ON USER NAME SPACE */ 553 531 # endif … … 559 537 #if (! defined yyoverflow \ 560 538 && (! defined __cplusplus \ 561 539 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 562 540 563 541 /* A type that is properly aligned for any stack member. */ … … 584 562 stack. Advance YYPTR to a properly aligned location for the next 585 563 stack. */ 586 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 587 do 588 { 589 YYSIZE_T yynewbytes;\590 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\591 Stack = &yyptr->Stack_alloc;\592 593 yyptr += yynewbytes / sizeof (*yyptr);\594 } 595 while ( 0)564 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 565 do \ 566 { \ 567 YYSIZE_T yynewbytes; \ 568 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 569 Stack = &yyptr->Stack_alloc; \ 570 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 571 yyptr += yynewbytes / sizeof (*yyptr); \ 572 } \ 573 while (YYID (0)) 596 574 597 575 #endif 598 576 599 577 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 600 /* Copy COUNT objects from SRC to DST. The source and destination do578 /* Copy COUNT objects from FROM to TO. The source and destination do 601 579 not overlap. */ 602 580 # ifndef YYCOPY 603 581 # if defined __GNUC__ && 1 < __GNUC__ 604 # define YYCOPY( Dst, Src, Count) \605 __builtin_memcpy ( Dst, Src, (Count) * sizeof (*(Src)))582 # define YYCOPY(To, From, Count) \ 583 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 606 584 # else 607 # define YYCOPY( Dst, Src, Count)\608 do 609 {\610 YYSIZE_T yyi;\611 for (yyi = 0; yyi < (Count); yyi++)\612 (Dst)[yyi] = (Src)[yyi];\613 }\614 while ( 0)585 # define YYCOPY(To, From, Count) \ 586 do \ 587 { \ 588 YYSIZE_T yyi; \ 589 for (yyi = 0; yyi < (Count); yyi++) \ 590 (To)[yyi] = (From)[yyi]; \ 591 } \ 592 while (YYID (0)) 615 593 # endif 616 594 # endif … … 628 606 /* YYNRULES -- Number of rules. */ 629 607 #define YYNRULES 751 630 /* YYN STATES -- Number of states. */608 /* YYNRULES -- Number of states. */ 631 609 #define YYNSTATES 1555 632 610 633 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 634 by yylex, with out-of-bounds checking. */ 611 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 635 612 #define YYUNDEFTOK 2 636 613 #define YYMAXUTOK 363 637 614 638 #define YYTRANSLATE(YYX) 615 #define YYTRANSLATE(YYX) \ 639 616 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 640 617 641 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 642 as returned by yylex, without out-of-bounds checking. */ 618 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 643 619 static const yytype_uint8 yytranslate[] = 644 620 { … … 683 659 684 660 #if YYDEBUG 685 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 661 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 662 YYRHS. */ 663 static const yytype_uint16 yyprhs[] = 664 { 665 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 666 17, 19, 21, 23, 25, 27, 29, 31, 33, 36, 667 38, 40, 44, 48, 50, 57, 62, 66, 74, 78, 668 86, 89, 92, 100, 105, 107, 111, 112, 114, 116, 669 120, 122, 126, 134, 138, 146, 148, 150, 152, 155, 670 158, 161, 164, 167, 170, 175, 178, 183, 190, 192, 671 197, 202, 204, 206, 208, 210, 212, 214, 216, 221, 672 226, 228, 232, 236, 240, 242, 246, 250, 252, 256, 673 260, 262, 266, 270, 274, 278, 280, 284, 288, 290, 674 294, 296, 300, 302, 306, 308, 312, 314, 318, 320, 675 326, 331, 337, 339, 341, 345, 348, 349, 351, 353, 676 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 677 375, 378, 384, 391, 399, 401, 405, 407, 411, 412, 678 414, 416, 418, 420, 422, 424, 426, 428, 430, 437, 679 442, 445, 453, 455, 459, 461, 464, 466, 469, 471, 680 474, 477, 483, 491, 497, 507, 513, 523, 525, 529, 681 531, 533, 537, 541, 544, 546, 549, 552, 553, 555, 682 558, 562, 563, 565, 568, 572, 576, 581, 582, 584, 683 586, 589, 595, 603, 610, 617, 622, 626, 631, 634, 684 638, 641, 645, 649, 653, 657, 663, 667, 671, 676, 685 678, 684, 691, 697, 704, 714, 725, 735, 746, 749, 686 751, 754, 757, 760, 762, 769, 778, 789, 802, 817, 687 818, 820, 821, 823, 825, 829, 834, 842, 843, 845, 688 849, 851, 855, 857, 859, 861, 865, 867, 869, 871, 689 875, 876, 878, 882, 887, 889, 893, 895, 897, 901, 690 905, 909, 913, 917, 920, 924, 931, 935, 939, 944, 691 946, 949, 952, 956, 962, 971, 979, 987, 993, 1003, 692 1006, 1009, 1015, 1019, 1025, 1030, 1034, 1039, 1044, 1052, 693 1056, 1060, 1064, 1068, 1073, 1080, 1082, 1084, 1086, 1088, 694 1090, 1092, 1094, 1096, 1097, 1099, 1101, 1104, 1106, 1108, 695 1110, 1112, 1114, 1116, 1118, 1119, 1125, 1127, 1130, 1134, 696 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 697 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 698 1177, 1179, 1181, 1183, 1186, 1189, 1193, 1197, 1199, 1203, 699 1205, 1208, 1211, 1214, 1219, 1224, 1229, 1234, 1236, 1239, 700 1242, 1246, 1248, 1251, 1254, 1256, 1259, 1262, 1266, 1268, 701 1271, 1274, 1276, 1278, 1283, 1286, 1287, 1294, 1302, 1305, 702 1308, 1311, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334, 703 1338, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361, 704 1363, 1366, 1369, 1375, 1378, 1379, 1387, 1390, 1395, 1396, 705 1399, 1400, 1402, 1404, 1406, 1412, 1418, 1424, 1426, 1432, 706 1438, 1448, 1450, 1456, 1457, 1459, 1461, 1467, 1469, 1471, 707 1477, 1483, 1485, 1489, 1493, 1498, 1500, 1502, 1504, 1506, 708 1509, 1511, 1515, 1519, 1521, 1524, 1526, 1530, 1532, 1534, 709 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1555, 710 1557, 1559, 1561, 1564, 1565, 1568, 1571, 1573, 1578, 1579, 711 1581, 1584, 1588, 1593, 1596, 1599, 1601, 1604, 1607, 1613, 712 1619, 1627, 1634, 1636, 1639, 1642, 1646, 1648, 1651, 1654, 713 1659, 1662, 1667, 1668, 1673, 1676, 1678, 1680, 1682, 1683, 714 1686, 1692, 1698, 1712, 1714, 1716, 1720, 1724, 1727, 1731, 715 1735, 1738, 1743, 1745, 1752, 1762, 1763, 1775, 1777, 1781, 716 1785, 1789, 1791, 1793, 1799, 1802, 1808, 1809, 1811, 1813, 717 1817, 1818, 1820, 1822, 1824, 1826, 1827, 1834, 1837, 1839, 718 1842, 1847, 1850, 1854, 1858, 1862, 1867, 1873, 1879, 1885, 719 1892, 1894, 1896, 1898, 1902, 1903, 1909, 1910, 1912, 1914, 720 1917, 1924, 1926, 1930, 1931, 1933, 1938, 1940, 1942, 1944, 721 1946, 1949, 1951, 1954, 1957, 1959, 1963, 1966, 1970, 1974, 722 1977, 1982, 1987, 1991, 2000, 2004, 2007, 2009, 2012, 2019, 723 2028, 2032, 2035, 2039, 2043, 2048, 2053, 2057, 2059, 2061, 724 2063, 2068, 2075, 2079, 2082, 2086, 2090, 2095, 2100, 2104, 725 2107, 2109, 2112, 2115, 2117, 2121, 2124, 2128, 2132, 2135, 726 2140, 2145, 2149, 2156, 2165, 2169, 2172, 2174, 2177, 2180, 727 2183, 2187, 2191, 2194, 2199, 2204, 2208, 2215, 2224, 2228, 728 2231, 2233, 2236, 2239, 2241, 2243, 2246, 2250, 2254, 2257, 729 2262, 2269, 2278, 2280, 2283, 2286, 2288, 2291, 2294, 2298, 730 2302, 2304, 2309, 2314, 2318, 2324, 2333, 2337, 2340, 2344, 731 2346, 2352, 2358, 2365, 2372, 2374, 2377, 2380, 2382, 2385, 732 2388, 2392, 2396, 2398, 2403, 2408, 2412, 2418, 2427, 2431, 733 2433, 2436, 2438, 2441, 2448, 2454, 2461, 2469, 2477, 2479, 734 2482, 2485, 2487, 2490, 2493, 2497, 2501, 2503, 2508, 2513, 735 2517, 2526, 2530, 2532, 2534, 2537, 2539, 2541, 2544, 2548, 736 2551, 2555, 2558, 2562, 2566, 2569, 2574, 2578, 2581, 2585, 737 2588, 2593, 2597, 2600, 2607, 2614, 2621, 2629, 2631, 2634, 738 2636, 2638, 2640, 2643, 2647, 2650, 2654, 2657, 2661, 2665, 739 2670, 2673, 2677, 2682, 2685, 2691, 2697, 2704, 2711, 2712, 740 2714, 2715 741 }; 742 743 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 744 static const yytype_int16 yyrhs[] = 745 { 746 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 747 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 748 -1, 72, -1, 140, -1, 83, -1, 84, -1, 142, 749 -1, 82, -1, 142, 82, -1, 72, -1, 140, -1, 750 109, 170, 110, -1, 109, 174, 110, -1, 143, -1, 751 144, 111, 134, 165, 135, 112, -1, 144, 109, 145, 752 110, -1, 144, 113, 139, -1, 144, 113, 111, 134, 753 147, 135, 112, -1, 144, 85, 139, -1, 144, 85, 754 111, 134, 147, 135, 112, -1, 144, 86, -1, 144, 755 87, -1, 109, 275, 110, 114, 279, 372, 115, -1, 756 144, 114, 145, 115, -1, 146, -1, 145, 116, 146, 757 -1, -1, 165, -1, 148, -1, 147, 116, 148, -1, 758 139, -1, 139, 113, 148, -1, 139, 113, 111, 134, 759 147, 135, 112, -1, 139, 85, 148, -1, 139, 85, 760 111, 134, 147, 135, 112, -1, 144, -1, 136, -1, 761 141, -1, 40, 152, -1, 150, 152, -1, 151, 152, 762 -1, 86, 149, -1, 87, 149, -1, 37, 149, -1, 763 37, 109, 275, 110, -1, 66, 149, -1, 66, 109, 764 275, 110, -1, 38, 109, 275, 116, 139, 110, -1, 765 76, -1, 76, 109, 146, 110, -1, 76, 109, 276, 766 110, -1, 117, -1, 118, -1, 119, -1, 120, -1, 767 121, -1, 122, -1, 149, -1, 109, 275, 110, 152, 768 -1, 109, 275, 110, 168, -1, 152, -1, 153, 117, 769 152, -1, 153, 123, 152, -1, 153, 124, 152, -1, 770 153, -1, 154, 119, 153, -1, 154, 120, 153, -1, 771 154, -1, 155, 88, 154, -1, 155, 89, 154, -1, 772 155, -1, 156, 125, 155, -1, 156, 126, 155, -1, 773 156, 90, 155, -1, 156, 91, 155, -1, 156, -1, 774 157, 92, 156, -1, 157, 93, 156, -1, 157, -1, 775 158, 118, 157, -1, 158, -1, 159, 127, 158, -1, 776 159, -1, 160, 128, 159, -1, 160, -1, 161, 94, 777 160, -1, 161, -1, 162, 95, 161, -1, 162, -1, 778 162, 129, 170, 130, 163, -1, 162, 129, 130, 163, 779 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 780 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 781 -1, 131, -1, 107, -1, 97, -1, 98, -1, 99, 782 -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, 783 -1, 105, -1, 106, -1, 111, 112, -1, 111, 134, 784 165, 135, 112, -1, 111, 134, 116, 169, 135, 112, 785 -1, 111, 134, 165, 116, 169, 135, 112, -1, 166, 786 -1, 169, 116, 166, -1, 165, -1, 170, 116, 165, 787 -1, -1, 170, -1, 173, -1, 174, -1, 178, -1, 788 179, -1, 191, -1, 193, -1, 194, -1, 199, -1, 789 127, 144, 114, 145, 115, 132, -1, 72, 130, 312, 790 172, -1, 114, 115, -1, 114, 134, 134, 210, 175, 791 135, 115, -1, 176, -1, 175, 134, 176, -1, 213, 792 -1, 40, 213, -1, 308, -1, 172, 135, -1, 172, 793 -1, 177, 172, -1, 171, 132, -1, 41, 109, 170, 794 110, 172, -1, 41, 109, 170, 110, 172, 42, 172, 795 -1, 43, 109, 170, 110, 184, -1, 43, 109, 170, 796 110, 114, 134, 206, 185, 115, -1, 53, 109, 170, 797 110, 184, -1, 53, 109, 170, 110, 114, 134, 206, 798 187, 115, -1, 164, -1, 164, 96, 164, -1, 310, 799 -1, 180, -1, 181, 116, 180, -1, 44, 181, 130, 800 -1, 45, 130, -1, 182, -1, 183, 182, -1, 183, 801 172, -1, -1, 186, -1, 183, 177, -1, 186, 183, 802 177, -1, -1, 188, -1, 183, 190, -1, 183, 177, 803 189, -1, 188, 183, 190, -1, 188, 183, 177, 189, 804 -1, -1, 190, -1, 56, -1, 56, 132, -1, 47, 805 109, 170, 110, 172, -1, 46, 172, 47, 109, 170, 806 110, 132, -1, 48, 109, 134, 192, 110, 172, -1, 807 171, 135, 132, 171, 132, 171, -1, 213, 171, 132, 808 171, -1, 51, 72, 132, -1, 51, 117, 170, 132, 809 -1, 50, 132, -1, 50, 72, 132, -1, 49, 132, 810 -1, 49, 72, 132, -1, 52, 171, 132, -1, 61, 811 166, 132, -1, 62, 166, 132, -1, 62, 166, 63, 812 165, 132, -1, 57, 174, 195, -1, 57, 174, 197, 813 -1, 57, 174, 195, 197, -1, 196, -1, 58, 109, 814 96, 110, 174, -1, 196, 58, 109, 96, 110, 174, 815 -1, 59, 109, 96, 110, 174, -1, 196, 59, 109, 816 96, 110, 174, -1, 58, 109, 134, 134, 198, 135, 817 110, 174, 135, -1, 196, 58, 109, 134, 134, 198, 818 135, 110, 174, 135, -1, 59, 109, 134, 134, 198, 819 135, 110, 174, 135, -1, 196, 59, 109, 134, 134, 820 198, 135, 110, 174, 135, -1, 60, 174, -1, 226, 821 -1, 226, 309, -1, 226, 357, -1, 366, 139, -1, 822 366, -1, 64, 200, 109, 141, 110, 132, -1, 64, 823 200, 109, 141, 130, 201, 110, 132, -1, 64, 200, 824 109, 141, 130, 201, 130, 201, 110, 132, -1, 64, 825 200, 109, 141, 130, 201, 130, 201, 130, 204, 110, 826 132, -1, 64, 200, 51, 109, 141, 130, 130, 201, 827 130, 204, 130, 205, 110, 132, -1, -1, 11, -1, 828 -1, 202, -1, 203, -1, 202, 116, 203, -1, 141, 829 109, 164, 110, -1, 111, 164, 112, 141, 109, 164, 830 110, -1, -1, 141, -1, 204, 116, 141, -1, 139, 831 -1, 205, 116, 139, -1, 135, -1, 207, -1, 213, 832 -1, 207, 134, 213, -1, 135, -1, 209, -1, 223, 833 -1, 209, 134, 223, -1, -1, 211, -1, 29, 212, 834 132, -1, 211, 29, 212, 132, -1, 274, -1, 212, 835 116, 274, -1, 214, -1, 223, -1, 215, 135, 132, 836 -1, 220, 135, 132, -1, 217, 135, 132, -1, 293, 837 135, 132, -1, 296, 135, 132, -1, 216, 277, -1, 838 232, 216, 277, -1, 215, 135, 116, 134, 272, 277, 839 -1, 367, 272, 311, -1, 370, 272, 311, -1, 228, 840 370, 272, 311, -1, 218, -1, 228, 218, -1, 232, 841 218, -1, 232, 228, 218, -1, 217, 135, 116, 134, 842 272, -1, 111, 112, 272, 109, 134, 260, 135, 110, 843 -1, 370, 272, 109, 134, 260, 135, 110, -1, 219, 844 272, 109, 134, 260, 135, 110, -1, 111, 134, 262, 845 135, 112, -1, 111, 134, 262, 135, 116, 134, 263, 846 135, 112, -1, 3, 216, -1, 3, 218, -1, 220, 847 135, 116, 134, 139, -1, 3, 226, 309, -1, 221, 848 135, 116, 134, 309, -1, 228, 3, 226, 309, -1, 849 226, 3, 309, -1, 226, 3, 228, 309, -1, 3, 850 139, 131, 165, -1, 222, 135, 116, 134, 139, 131, 851 165, -1, 224, 135, 132, -1, 221, 135, 132, -1, 852 222, 135, 132, -1, 240, 135, 132, -1, 225, 309, 853 311, 277, -1, 224, 116, 312, 309, 311, 277, -1, 854 236, -1, 240, -1, 242, -1, 283, -1, 237, -1, 855 241, -1, 243, -1, 284, -1, -1, 228, -1, 229, 856 -1, 228, 229, -1, 230, -1, 314, -1, 10, -1, 857 12, -1, 11, -1, 14, -1, 67, -1, -1, 13, 858 109, 231, 286, 110, -1, 233, -1, 228, 233, -1, 859 232, 228, 233, -1, 234, -1, 233, 234, -1, 5, 860 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 861 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 862 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 863 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 864 -1, 237, -1, 232, 237, -1, 236, 234, -1, 236, 865 234, 228, -1, 236, 234, 237, -1, 238, -1, 227, 866 239, 227, -1, 235, -1, 228, 235, -1, 238, 229, 867 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 868 109, 170, 110, -1, 78, 109, 276, 110, -1, 78, 869 109, 170, 110, -1, 241, -1, 232, 241, -1, 240, 870 234, -1, 240, 234, 228, -1, 244, -1, 228, 244, 871 -1, 241, 229, -1, 243, -1, 232, 243, -1, 242, 872 234, -1, 242, 234, 228, -1, 74, -1, 228, 74, 873 -1, 243, 229, -1, 245, -1, 256, -1, 247, 114, 874 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 875 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 876 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 877 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 878 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 879 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 880 -1, 226, 252, -1, 251, 116, 312, 252, -1, -1, 881 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 882 -1, 254, -1, 130, 164, -1, 30, 312, -1, 255, 883 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 884 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 885 258, 116, 274, 259, -1, -1, 131, 164, -1, -1, 886 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 887 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 888 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 889 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 890 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 891 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 892 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 893 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 894 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 895 272, 373, -1, 228, 370, 272, 373, -1, 218, -1, 896 270, -1, 362, -1, 370, -1, 228, 370, -1, 371, 897 -1, 225, 336, 373, -1, 225, 340, 373, -1, 225, 898 -1, 225, 351, -1, 139, -1, 271, 116, 139, -1, 899 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 900 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 901 226, -1, 226, 357, -1, 366, -1, 371, -1, 226, 902 -1, 226, 345, -1, -1, 131, 278, -1, 107, 278, 903 -1, 165, -1, 114, 279, 372, 115, -1, -1, 278, 904 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 905 280, 278, -1, 281, 130, -1, 274, 130, -1, 282, 906 -1, 281, 282, -1, 113, 274, -1, 111, 134, 165, 907 135, 112, -1, 111, 134, 310, 135, 112, -1, 111, 908 134, 164, 96, 164, 135, 112, -1, 113, 111, 134, 909 147, 135, 112, -1, 284, -1, 232, 284, -1, 283, 910 234, -1, 283, 234, 228, -1, 285, -1, 228, 285, 911 -1, 284, 229, -1, 75, 109, 292, 110, -1, 287, 912 373, -1, 286, 116, 287, 373, -1, -1, 289, 274, 913 288, 290, -1, 226, 336, -1, 33, -1, 35, -1, 914 34, -1, -1, 290, 291, -1, 128, 274, 109, 292, 915 110, -1, 128, 114, 134, 298, 115, -1, 128, 109, 916 134, 286, 135, 110, 114, 134, 298, 115, 109, 292, 917 110, -1, 276, -1, 165, -1, 292, 116, 276, -1, 918 292, 116, 165, -1, 33, 294, -1, 233, 33, 294, 919 -1, 293, 116, 294, -1, 295, 290, -1, 295, 290, 920 131, 276, -1, 274, -1, 273, 109, 134, 286, 135, 921 110, -1, 36, 274, 109, 134, 286, 135, 110, 114, 922 115, -1, -1, 36, 274, 109, 134, 286, 135, 110, 923 114, 297, 298, 115, -1, 299, -1, 298, 134, 299, 924 -1, 300, 135, 132, -1, 301, 135, 132, -1, 216, 925 -1, 218, -1, 300, 135, 116, 134, 272, -1, 226, 926 309, -1, 301, 135, 116, 134, 309, -1, -1, 303, 927 -1, 305, -1, 303, 134, 305, -1, -1, 303, -1, 928 213, -1, 307, -1, 199, -1, -1, 5, 82, 306, 929 114, 304, 115, -1, 40, 305, -1, 308, -1, 323, 930 174, -1, 327, 134, 208, 174, -1, 217, 174, -1, 931 225, 323, 174, -1, 228, 323, 174, -1, 232, 323, 932 174, -1, 232, 228, 323, 174, -1, 225, 327, 134, 933 208, 174, -1, 228, 327, 134, 208, 174, -1, 232, 934 327, 134, 208, 174, -1, 232, 228, 327, 134, 208, 935 174, -1, 318, -1, 331, -1, 323, -1, 164, 122, 936 164, -1, -1, 64, 109, 142, 110, 312, -1, -1, 937 313, -1, 314, -1, 313, 314, -1, 39, 109, 109, 938 315, 110, 110, -1, 316, -1, 315, 116, 316, -1, 939 -1, 317, -1, 317, 109, 171, 110, -1, 272, -1, 940 234, -1, 235, -1, 229, -1, 319, 312, -1, 320, 941 -1, 321, 312, -1, 322, 312, -1, 137, -1, 109, 942 319, 110, -1, 150, 318, -1, 150, 228, 318, -1, 943 109, 320, 110, -1, 319, 349, -1, 109, 320, 110, 944 349, -1, 109, 321, 110, 350, -1, 109, 321, 110, 945 -1, 109, 320, 110, 109, 134, 264, 135, 110, -1, 946 109, 322, 110, -1, 324, 312, -1, 325, -1, 326, 947 312, -1, 319, 109, 134, 264, 135, 110, -1, 109, 948 325, 110, 109, 134, 264, 135, 110, -1, 109, 324, 949 110, -1, 150, 323, -1, 150, 228, 323, -1, 109, 950 325, 110, -1, 109, 325, 110, 349, -1, 109, 326, 951 110, 350, -1, 109, 326, 110, -1, 328, -1, 329, 952 -1, 330, -1, 319, 109, 271, 110, -1, 109, 329, 953 110, 109, 271, 110, -1, 109, 328, 110, -1, 150, 954 327, -1, 150, 228, 327, -1, 109, 329, 110, -1, 955 109, 329, 110, 349, -1, 109, 330, 110, 350, -1, 956 109, 330, 110, -1, 332, 312, -1, 333, -1, 334, 957 312, -1, 335, 312, -1, 341, -1, 109, 332, 110, 958 -1, 150, 331, -1, 150, 228, 331, -1, 109, 333, 959 110, -1, 332, 349, -1, 109, 333, 110, 349, -1, 960 109, 334, 110, 350, -1, 109, 334, 110, -1, 332, 961 109, 134, 264, 135, 110, -1, 109, 333, 110, 109, 962 134, 264, 135, 110, -1, 109, 335, 110, -1, 319, 963 312, -1, 337, -1, 338, 312, -1, 339, 312, -1, 964 150, 336, -1, 150, 228, 336, -1, 109, 337, 110, 965 -1, 319, 355, -1, 109, 337, 110, 349, -1, 109, 966 338, 110, 350, -1, 109, 338, 110, -1, 319, 109, 967 134, 264, 135, 110, -1, 109, 337, 110, 109, 134, 968 264, 135, 110, -1, 109, 339, 110, -1, 341, 312, 969 -1, 342, -1, 343, 312, -1, 344, 312, -1, 74, 970 -1, 75, -1, 150, 340, -1, 150, 228, 340, -1, 971 109, 342, 110, -1, 341, 355, -1, 109, 342, 110, 972 355, -1, 341, 109, 134, 264, 135, 110, -1, 109, 973 342, 110, 109, 134, 264, 135, 110, -1, 346, -1, 974 347, 312, -1, 348, 312, -1, 150, -1, 150, 228, 975 -1, 150, 345, -1, 150, 228, 345, -1, 109, 346, 976 110, -1, 349, -1, 109, 346, 110, 349, -1, 109, 977 347, 110, 350, -1, 109, 347, 110, -1, 109, 134, 978 264, 135, 110, -1, 109, 346, 110, 109, 134, 264, 979 135, 110, -1, 109, 348, 110, -1, 111, 112, -1, 980 111, 112, 350, -1, 350, -1, 111, 134, 165, 135, 981 112, -1, 111, 134, 117, 135, 112, -1, 350, 111, 982 134, 165, 135, 112, -1, 350, 111, 134, 117, 135, 983 112, -1, 352, -1, 353, 312, -1, 354, 312, -1, 984 150, -1, 150, 228, -1, 150, 351, -1, 150, 228, 985 351, -1, 109, 352, 110, -1, 355, -1, 109, 352, 986 110, 355, -1, 109, 353, 110, 350, -1, 109, 353, 987 110, -1, 109, 134, 264, 135, 110, -1, 109, 352, 988 110, 109, 134, 264, 135, 110, -1, 109, 354, 110, 989 -1, 356, -1, 356, 350, -1, 350, -1, 111, 112, 990 -1, 111, 134, 228, 117, 135, 112, -1, 111, 134, 991 228, 135, 112, -1, 111, 134, 228, 165, 135, 112, 992 -1, 111, 134, 7, 227, 165, 135, 112, -1, 111, 993 134, 228, 7, 165, 135, 112, -1, 358, -1, 359, 994 312, -1, 360, 312, -1, 150, -1, 150, 228, -1, 995 150, 357, -1, 150, 228, 357, -1, 109, 358, 110, 996 -1, 349, -1, 109, 358, 110, 349, -1, 109, 359, 997 110, 350, -1, 109, 359, 110, -1, 109, 358, 110, 998 109, 134, 264, 135, 110, -1, 109, 360, 110, -1, 999 362, -1, 370, -1, 228, 370, -1, 363, -1, 364, 1000 -1, 150, 226, -1, 228, 150, 226, -1, 150, 371, 1001 -1, 228, 150, 371, -1, 150, 361, -1, 228, 150, 1002 361, -1, 111, 112, 226, -1, 365, 226, -1, 111, 1003 112, 350, 226, -1, 365, 350, 226, -1, 350, 226, 1004 -1, 111, 112, 363, -1, 365, 363, -1, 111, 112, 1005 350, 363, -1, 365, 350, 363, -1, 350, 363, -1, 1006 111, 134, 228, 117, 135, 112, -1, 111, 134, 228, 1007 165, 135, 112, -1, 111, 134, 232, 165, 135, 112, 1008 -1, 111, 134, 232, 228, 165, 135, 112, -1, 370, 1009 -1, 228, 370, -1, 367, -1, 368, -1, 369, -1, 1010 150, 226, -1, 228, 150, 226, -1, 150, 371, -1, 1011 228, 150, 371, -1, 150, 366, -1, 228, 150, 366, 1012 -1, 111, 112, 226, -1, 111, 112, 350, 226, -1, 1013 350, 226, -1, 111, 112, 368, -1, 111, 112, 350, 1014 368, -1, 350, 368, -1, 111, 134, 263, 135, 112, 1015 -1, 111, 112, 109, 260, 110, -1, 370, 109, 134, 1016 260, 135, 110, -1, 219, 109, 134, 260, 135, 110, 1017 -1, -1, 116, -1, -1, 131, 165, -1 1018 }; 1019 1020 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 686 1021 static const yytype_uint16 yyrline[] = 687 1022 { … … 765 1100 #endif 766 1101 767 #if YYDEBUG || YYERROR_VERBOSE || 01102 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 768 1103 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 769 1104 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 874 1209 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 875 1210 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 876 "comma_opt", "assignment_opt", YY_NULLPTR1211 "comma_opt", "assignment_opt", 0 877 1212 }; 878 1213 #endif 879 1214 880 1215 # ifdef YYPRINT 881 /* YYTOKNUM[ NUM] -- (External) token number corresponding to the882 (internal) symbol number NUM (which must be that of a token). */1216 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 1217 token YYLEX-NUM. */ 883 1218 static const yytype_uint16 yytoknum[] = 884 1219 { … … 900 1235 # endif 901 1236 1237 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1238 static const yytype_uint16 yyr1[] = 1239 { 1240 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 1241 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 1242 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 1243 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 1244 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 1245 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 1246 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 1247 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 1248 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 1249 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 1250 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 1251 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 1252 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 1253 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 1254 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 1255 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 1256 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 1257 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 1258 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 1259 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 1260 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 1261 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 1262 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 1263 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1264 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 1265 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 1266 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 1267 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 1268 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 1269 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 1270 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 1271 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 1272 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1273 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 1274 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 1275 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 1276 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 1277 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 1278 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 1279 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 1280 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 1281 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 1282 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 1283 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 1284 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1285 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 1286 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 1287 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 1288 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 1289 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 1290 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 1291 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 1292 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 1293 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1294 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 1295 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 1296 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 1297 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 1298 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1299 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1300 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 1301 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 1302 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 1303 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 1304 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 1305 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 1306 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 1307 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 1308 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 1309 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 1310 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 1311 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 1312 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 1313 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 1314 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 1315 373, 373 1316 }; 1317 1318 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1319 static const yytype_uint8 yyr2[] = 1320 { 1321 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1322 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1323 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 1324 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 1325 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 1326 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 1327 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1328 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1329 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1331 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 1332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 1334 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 1335 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 1336 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 1337 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 1338 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 1339 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 1340 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 1341 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 1342 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 1343 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 1344 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1345 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 1346 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 1347 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 1348 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 1349 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 1350 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1351 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 1352 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1354 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 1355 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 1356 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 1357 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 1358 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 1359 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 1360 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 1361 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1362 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1363 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1364 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1366 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 1367 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 1368 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 1369 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 1370 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 1371 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 1372 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 1373 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 1374 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 1375 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 1376 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 1377 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 1378 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 1379 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 1380 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 1381 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1382 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 1383 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1384 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 1385 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 1386 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 1387 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 1388 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 1389 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 1390 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1391 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 1392 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 1393 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 1394 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 1395 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 1396 0, 2 1397 }; 1398 1399 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1400 Performed when YYTABLE doesn't specify something else to do. Zero 1401 means the default is an error. */ 1402 static const yytype_uint16 yydefact[] = 1403 { 1404 293, 293, 313, 311, 314, 312, 315, 316, 299, 301, 1405 300, 0, 302, 327, 319, 324, 322, 323, 321, 320, 1406 325, 326, 331, 328, 329, 330, 546, 546, 546, 0, 1407 0, 0, 293, 219, 303, 317, 318, 7, 358, 0, 1408 8, 14, 15, 0, 2, 61, 62, 564, 9, 293, 1409 524, 522, 246, 3, 453, 3, 259, 0, 3, 3, 1410 3, 247, 3, 0, 0, 0, 294, 295, 297, 293, 1411 306, 309, 339, 285, 332, 337, 286, 347, 287, 354, 1412 351, 361, 0, 0, 362, 288, 472, 476, 3, 3, 1413 0, 2, 518, 523, 528, 298, 0, 0, 546, 576, 1414 546, 2, 587, 588, 589, 293, 0, 730, 731, 0, 1415 12, 0, 13, 293, 269, 270, 0, 294, 289, 290, 1416 291, 292, 525, 304, 391, 547, 548, 369, 370, 12, 1417 444, 445, 11, 440, 443, 0, 502, 497, 488, 444, 1418 445, 0, 0, 527, 220, 0, 293, 0, 0, 0, 1419 0, 0, 0, 0, 0, 293, 293, 2, 0, 732, 1420 294, 581, 593, 736, 729, 727, 734, 0, 0, 0, 1421 253, 2, 0, 531, 438, 439, 437, 0, 0, 0, 1422 0, 546, 0, 633, 634, 0, 0, 544, 540, 546, 1423 561, 546, 546, 542, 2, 541, 546, 600, 546, 546, 1424 603, 0, 0, 0, 293, 293, 311, 359, 2, 293, 1425 260, 296, 307, 340, 352, 477, 0, 2, 0, 453, 1426 261, 294, 333, 348, 355, 473, 0, 2, 0, 310, 1427 334, 341, 342, 0, 349, 353, 356, 360, 445, 293, 1428 371, 364, 368, 0, 393, 474, 478, 0, 0, 0, 1429 1, 293, 2, 529, 575, 577, 293, 2, 740, 294, 1430 743, 544, 544, 0, 294, 0, 0, 272, 546, 542, 1431 2, 293, 0, 0, 293, 549, 2, 500, 2, 553, 1432 0, 0, 0, 0, 0, 0, 19, 58, 4, 5, 1433 6, 17, 0, 0, 293, 2, 63, 64, 65, 66, 1434 46, 20, 47, 16, 23, 45, 67, 293, 0, 70, 1435 74, 77, 80, 85, 88, 90, 92, 94, 96, 98, 1436 103, 494, 750, 451, 493, 0, 449, 450, 0, 565, 1437 580, 583, 586, 592, 595, 598, 358, 0, 2, 738, 1438 0, 293, 741, 2, 61, 293, 3, 425, 0, 433, 1439 294, 293, 306, 332, 286, 347, 354, 3, 3, 407, 1440 411, 421, 426, 472, 293, 427, 705, 706, 293, 428, 1441 430, 293, 2, 582, 594, 728, 2, 2, 248, 2, 1442 458, 0, 456, 455, 454, 140, 2, 2, 250, 2, 1443 2, 249, 2, 280, 2, 281, 0, 279, 0, 0, 1444 0, 0, 0, 0, 0, 0, 0, 566, 605, 0, 1445 453, 2, 560, 569, 659, 562, 563, 532, 293, 2, 1446 599, 608, 601, 602, 0, 275, 293, 293, 338, 294, 1447 0, 294, 0, 293, 733, 737, 735, 533, 293, 544, 1448 254, 262, 308, 0, 2, 534, 293, 498, 335, 336, 1449 282, 350, 357, 0, 293, 0, 748, 398, 0, 475, 1450 499, 251, 252, 519, 293, 435, 0, 293, 236, 0, 1451 2, 238, 0, 294, 0, 256, 2, 257, 277, 0, 1452 0, 2, 293, 544, 293, 485, 487, 486, 0, 0, 1453 750, 0, 293, 0, 293, 489, 293, 559, 557, 558, 1454 556, 0, 551, 554, 0, 0, 293, 53, 293, 67, 1455 48, 293, 55, 293, 293, 51, 52, 2, 126, 0, 1456 0, 447, 0, 446, 727, 120, 293, 18, 0, 30, 1457 31, 36, 2, 0, 36, 110, 111, 112, 113, 114, 1458 115, 116, 117, 118, 119, 109, 108, 0, 49, 50, 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1461 105, 2, 645, 452, 642, 546, 546, 650, 479, 293, 1462 2, 584, 585, 0, 596, 597, 0, 2, 739, 742, 1463 120, 293, 0, 2, 707, 294, 711, 702, 703, 709, 1464 0, 2, 2, 667, 546, 750, 616, 546, 546, 750, 1465 546, 630, 546, 546, 681, 434, 664, 546, 546, 672, 1466 679, 293, 429, 294, 0, 0, 293, 717, 294, 722, 1467 750, 714, 293, 719, 750, 293, 293, 293, 0, 120, 1468 0, 19, 2, 0, 20, 0, 459, 748, 0, 0, 1469 465, 240, 0, 293, 0, 0, 0, 544, 568, 572, 1470 574, 604, 607, 611, 614, 567, 606, 0, 283, 657, 1471 0, 293, 276, 0, 0, 0, 0, 274, 2, 0, 1472 258, 535, 293, 0, 0, 293, 2, 363, 383, 372, 1473 0, 0, 377, 371, 749, 0, 0, 396, 0, 294, 1474 3, 414, 3, 418, 417, 590, 0, 530, 293, 61, 1475 3, 293, 433, 294, 3, 427, 428, 2, 0, 0, 1476 0, 484, 305, 293, 480, 482, 3, 2, 2, 0, 1477 501, 3, 0, 553, 128, 0, 0, 221, 0, 0, 1478 0, 0, 37, 0, 0, 120, 293, 21, 0, 22, 1479 0, 691, 696, 448, 688, 546, 546, 0, 106, 3, 1480 2, 28, 0, 34, 0, 2, 26, 0, 104, 71, 1481 72, 73, 75, 76, 78, 79, 83, 84, 81, 82, 1482 86, 87, 89, 91, 93, 95, 97, 0, 0, 751, 1483 293, 0, 0, 0, 646, 647, 643, 644, 496, 495, 1484 293, 0, 293, 713, 293, 718, 294, 293, 661, 293, 1485 293, 704, 660, 2, 293, 0, 0, 0, 0, 0, 1486 0, 0, 0, 682, 0, 668, 619, 635, 669, 2, 1487 615, 622, 431, 617, 618, 432, 2, 629, 638, 631, 1488 632, 665, 666, 680, 708, 712, 710, 750, 267, 2, 1489 744, 2, 422, 716, 721, 423, 0, 401, 3, 3, 1490 3, 3, 453, 3, 0, 2, 467, 464, 749, 0, 1491 460, 2, 463, 466, 0, 293, 241, 263, 3, 271, 1492 273, 0, 453, 2, 570, 571, 2, 609, 610, 0, 1493 658, 536, 3, 344, 343, 346, 345, 293, 537, 0, 1494 538, 371, 0, 0, 293, 293, 0, 0, 691, 381, 1495 384, 388, 546, 388, 387, 380, 373, 546, 375, 378, 1496 293, 398, 392, 102, 399, 748, 0, 0, 436, 239, 1497 0, 0, 3, 2, 667, 429, 0, 526, 0, 750, 1498 488, 0, 293, 293, 293, 0, 550, 552, 129, 0, 1499 0, 214, 0, 0, 0, 222, 223, 54, 0, 56, 1500 59, 60, 0, 2, 127, 0, 0, 0, 692, 693, 1501 689, 690, 458, 68, 69, 107, 124, 3, 106, 0, 1502 0, 25, 36, 3, 0, 33, 100, 0, 3, 649, 1503 653, 656, 648, 3, 591, 3, 715, 720, 2, 61, 1504 293, 3, 3, 294, 0, 3, 621, 625, 628, 637, 1505 671, 675, 678, 293, 3, 620, 636, 670, 293, 293, 1506 424, 293, 293, 745, 0, 0, 0, 0, 255, 0, 1507 102, 0, 3, 3, 0, 461, 0, 457, 0, 0, 1508 244, 293, 0, 0, 128, 0, 0, 0, 0, 0, 1509 128, 0, 0, 106, 106, 19, 2, 0, 0, 3, 1510 130, 131, 2, 142, 132, 133, 134, 135, 136, 137, 1511 144, 146, 0, 0, 0, 284, 293, 293, 546, 0, 1512 539, 293, 374, 376, 0, 390, 692, 385, 389, 386, 1513 379, 383, 366, 397, 0, 578, 2, 663, 662, 0, 1514 668, 2, 481, 483, 503, 3, 511, 512, 0, 2, 1515 507, 3, 3, 0, 0, 555, 221, 0, 0, 0, 1516 221, 0, 0, 120, 695, 699, 701, 694, 748, 106, 1517 0, 3, 660, 40, 3, 38, 35, 0, 3, 99, 1518 101, 0, 2, 651, 652, 0, 0, 293, 0, 0, 1519 0, 3, 637, 0, 2, 623, 624, 2, 639, 2, 1520 673, 674, 0, 0, 61, 0, 3, 3, 3, 3, 1521 409, 408, 412, 2, 2, 747, 746, 121, 0, 0, 1522 0, 0, 3, 462, 3, 0, 242, 145, 3, 294, 1523 293, 0, 0, 0, 0, 2, 0, 190, 0, 188, 1524 0, 0, 0, 0, 0, 0, 0, 546, 120, 0, 1525 150, 147, 293, 0, 0, 266, 278, 3, 3, 545, 1526 612, 367, 382, 395, 293, 265, 293, 0, 514, 491, 1527 293, 0, 0, 490, 505, 0, 0, 0, 215, 0, 1528 224, 57, 2, 697, 698, 0, 125, 122, 0, 0, 1529 0, 0, 0, 24, 0, 654, 293, 579, 264, 723, 1530 724, 725, 0, 676, 293, 293, 293, 3, 3, 0, 1531 684, 0, 0, 0, 0, 293, 293, 3, 543, 121, 1532 469, 0, 0, 245, 294, 0, 0, 0, 0, 293, 1533 191, 189, 186, 0, 192, 0, 0, 0, 0, 196, 1534 199, 197, 193, 0, 194, 128, 36, 143, 141, 243, 1535 0, 0, 416, 420, 419, 0, 508, 2, 509, 2, 1536 510, 504, 293, 227, 0, 225, 0, 227, 293, 32, 1537 123, 2, 43, 2, 41, 39, 29, 27, 3, 726, 1538 3, 3, 3, 0, 0, 683, 685, 626, 640, 268, 1539 2, 406, 3, 405, 0, 471, 468, 128, 0, 0, 1540 128, 3, 0, 128, 187, 0, 2, 2, 208, 198, 1541 0, 0, 0, 139, 0, 573, 613, 2, 0, 0, 1542 2, 228, 0, 0, 216, 0, 3, 0, 0, 0, 1543 0, 0, 0, 686, 687, 293, 0, 470, 151, 0, 1544 0, 2, 164, 128, 153, 0, 181, 0, 128, 0, 1545 2, 155, 0, 2, 0, 2, 2, 2, 195, 33, 1546 293, 513, 515, 506, 0, 0, 0, 0, 0, 3, 1547 3, 655, 627, 641, 677, 410, 128, 157, 160, 0, 1548 159, 163, 3, 166, 165, 0, 128, 183, 128, 3, 1549 0, 293, 0, 293, 0, 2, 0, 2, 138, 2, 1550 229, 230, 0, 226, 217, 700, 0, 0, 152, 0, 1551 0, 162, 232, 167, 2, 234, 182, 0, 185, 171, 1552 200, 3, 209, 213, 202, 3, 0, 293, 0, 293, 1553 0, 0, 0, 44, 42, 158, 161, 128, 0, 168, 1554 293, 128, 128, 0, 172, 0, 0, 691, 210, 211, 1555 212, 0, 201, 3, 203, 3, 293, 218, 231, 148, 1556 169, 154, 128, 235, 184, 179, 177, 173, 156, 128, 1557 0, 692, 0, 0, 0, 0, 149, 170, 180, 174, 1558 178, 177, 175, 3, 3, 0, 0, 492, 176, 204, 1559 206, 3, 3, 205, 207 1560 }; 1561 1562 /* YYDEFGOTO[NTERM-NUM]. */ 1563 static const yytype_int16 yydefgoto[] = 1564 { 1565 -1, 814, 468, 300, 47, 133, 134, 301, 302, 303, 1566 304, 305, 762, 763, 1134, 1135, 306, 381, 308, 309, 1567 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1568 320, 1031, 518, 976, 547, 322, 977, 948, 1058, 1519, 1569 1060, 1061, 1062, 1063, 1520, 1064, 1065, 1438, 1439, 1402, 1570 1403, 1404, 1498, 1499, 1503, 1504, 1539, 1540, 1066, 1362, 1571 1067, 1068, 1299, 1300, 1301, 1481, 1069, 145, 954, 955, 1572 956, 1382, 1462, 1473, 1474, 469, 470, 875, 876, 1039, 1573 51, 52, 53, 54, 55, 347, 158, 58, 59, 60, 1574 61, 62, 349, 64, 65, 264, 67, 68, 274, 351, 1575 352, 71, 72, 73, 118, 75, 204, 354, 119, 78, 1576 120, 80, 81, 455, 82, 454, 689, 690, 691, 909, 1577 1087, 910, 83, 84, 458, 456, 697, 856, 857, 858, 1578 859, 700, 701, 702, 359, 360, 361, 362, 466, 340, 1579 135, 136, 522, 324, 170, 646, 647, 648, 649, 650, 1580 85, 121, 87, 489, 490, 940, 491, 277, 495, 325, 1581 88, 137, 138, 89, 1322, 1109, 1110, 1111, 1112, 90, 1582 91, 718, 92, 273, 93, 94, 187, 1033, 680, 412, 1583 125, 95, 501, 502, 503, 188, 268, 190, 191, 192, 1584 269, 98, 99, 100, 101, 102, 103, 104, 195, 196, 1585 197, 198, 199, 826, 606, 607, 608, 609, 200, 611, 1586 612, 613, 573, 574, 575, 576, 752, 105, 615, 616, 1587 617, 618, 619, 620, 969, 754, 755, 756, 596, 365, 1588 366, 367, 368, 326, 164, 107, 108, 109, 370, 695, 1589 570 1590 }; 1591 1592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1593 STATE-NUM. */ 902 1594 #define YYPACT_NINF -1323 903 904 #define yypact_value_is_default(Yystate) \905 (!!((Yystate) == (-1323)))906 907 #define YYTABLE_NINF -522908 909 #define yytable_value_is_error(Yytable_value) \910 0911 912 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing913 STATE-NUM. */914 1595 static const yytype_int16 yypact[] = 915 1596 { … … 1072 1753 }; 1073 1754 1074 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1075 Performed when YYTABLE does not specify something else to do. Zero 1076 means the default is an error. */ 1077 static const yytype_uint16 yydefact[] = 1078 { 1079 293, 293, 313, 311, 314, 312, 315, 316, 299, 301, 1080 300, 0, 302, 327, 319, 324, 322, 323, 321, 320, 1081 325, 326, 331, 328, 329, 330, 546, 546, 546, 0, 1082 0, 0, 293, 219, 303, 317, 318, 7, 358, 0, 1083 8, 14, 15, 0, 2, 61, 62, 564, 9, 293, 1084 524, 522, 246, 3, 453, 3, 259, 0, 3, 3, 1085 3, 247, 3, 0, 0, 0, 294, 295, 297, 293, 1086 306, 309, 339, 285, 332, 337, 286, 347, 287, 354, 1087 351, 361, 0, 0, 362, 288, 472, 476, 3, 3, 1088 0, 2, 518, 523, 528, 298, 0, 0, 546, 576, 1089 546, 2, 587, 588, 589, 293, 0, 730, 731, 0, 1090 12, 0, 13, 293, 269, 270, 0, 294, 289, 290, 1091 291, 292, 525, 304, 391, 547, 548, 369, 370, 12, 1092 444, 445, 11, 440, 443, 0, 502, 497, 488, 444, 1093 445, 0, 0, 527, 220, 0, 293, 0, 0, 0, 1094 0, 0, 0, 0, 0, 293, 293, 2, 0, 732, 1095 294, 581, 593, 736, 729, 727, 734, 0, 0, 0, 1096 253, 2, 0, 531, 438, 439, 437, 0, 0, 0, 1097 0, 546, 0, 633, 634, 0, 0, 544, 540, 546, 1098 561, 546, 546, 542, 2, 541, 546, 600, 546, 546, 1099 603, 0, 0, 0, 293, 293, 311, 359, 2, 293, 1100 260, 296, 307, 340, 352, 477, 0, 2, 0, 453, 1101 261, 294, 333, 348, 355, 473, 0, 2, 0, 310, 1102 334, 341, 342, 0, 349, 353, 356, 360, 445, 293, 1103 371, 364, 368, 0, 393, 474, 478, 0, 0, 0, 1104 1, 293, 2, 529, 575, 577, 293, 2, 740, 294, 1105 743, 544, 544, 0, 294, 0, 0, 272, 546, 542, 1106 2, 293, 0, 0, 293, 549, 2, 500, 2, 553, 1107 0, 0, 0, 0, 0, 0, 19, 58, 4, 5, 1108 6, 17, 0, 0, 293, 2, 63, 64, 65, 66, 1109 46, 20, 47, 16, 23, 45, 67, 293, 0, 70, 1110 74, 77, 80, 85, 88, 90, 92, 94, 96, 98, 1111 103, 494, 750, 451, 493, 0, 449, 450, 0, 565, 1112 580, 583, 586, 592, 595, 598, 358, 0, 2, 738, 1113 0, 293, 741, 2, 61, 293, 3, 425, 0, 433, 1114 294, 293, 306, 332, 286, 347, 354, 3, 3, 407, 1115 411, 421, 426, 472, 293, 427, 705, 706, 293, 428, 1116 430, 293, 2, 582, 594, 728, 2, 2, 248, 2, 1117 458, 0, 456, 455, 454, 140, 2, 2, 250, 2, 1118 2, 249, 2, 280, 2, 281, 0, 279, 0, 0, 1119 0, 0, 0, 0, 0, 0, 0, 566, 605, 0, 1120 453, 2, 560, 569, 659, 562, 563, 532, 293, 2, 1121 599, 608, 601, 602, 0, 275, 293, 293, 338, 294, 1122 0, 294, 0, 293, 733, 737, 735, 533, 293, 544, 1123 254, 262, 308, 0, 2, 534, 293, 498, 335, 336, 1124 282, 350, 357, 0, 293, 0, 748, 398, 0, 475, 1125 499, 251, 252, 519, 293, 435, 0, 293, 236, 0, 1126 2, 238, 0, 294, 0, 256, 2, 257, 277, 0, 1127 0, 2, 293, 544, 293, 485, 487, 486, 0, 0, 1128 750, 0, 293, 0, 293, 489, 293, 559, 557, 558, 1129 556, 0, 551, 554, 0, 0, 293, 53, 293, 67, 1130 48, 293, 55, 293, 293, 51, 52, 2, 126, 0, 1131 0, 447, 0, 446, 727, 120, 293, 18, 0, 30, 1132 31, 36, 2, 0, 36, 110, 111, 112, 113, 114, 1133 115, 116, 117, 118, 119, 109, 108, 0, 49, 50, 1134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1136 105, 2, 645, 452, 642, 546, 546, 650, 479, 293, 1137 2, 584, 585, 0, 596, 597, 0, 2, 739, 742, 1138 120, 293, 0, 2, 707, 294, 711, 702, 703, 709, 1139 0, 2, 2, 667, 546, 750, 616, 546, 546, 750, 1140 546, 630, 546, 546, 681, 434, 664, 546, 546, 672, 1141 679, 293, 429, 294, 0, 0, 293, 717, 294, 722, 1142 750, 714, 293, 719, 750, 293, 293, 293, 0, 120, 1143 0, 19, 2, 0, 20, 0, 459, 748, 0, 0, 1144 465, 240, 0, 293, 0, 0, 0, 544, 568, 572, 1145 574, 604, 607, 611, 614, 567, 606, 0, 283, 657, 1146 0, 293, 276, 0, 0, 0, 0, 274, 2, 0, 1147 258, 535, 293, 0, 0, 293, 2, 363, 383, 372, 1148 0, 0, 377, 371, 749, 0, 0, 396, 0, 294, 1149 3, 414, 3, 418, 417, 590, 0, 530, 293, 61, 1150 3, 293, 433, 294, 3, 427, 428, 2, 0, 0, 1151 0, 484, 305, 293, 480, 482, 3, 2, 2, 0, 1152 501, 3, 0, 553, 128, 0, 0, 221, 0, 0, 1153 0, 0, 37, 0, 0, 120, 293, 21, 0, 22, 1154 0, 691, 696, 448, 688, 546, 546, 0, 106, 3, 1155 2, 28, 0, 34, 0, 2, 26, 0, 104, 71, 1156 72, 73, 75, 76, 78, 79, 83, 84, 81, 82, 1157 86, 87, 89, 91, 93, 95, 97, 0, 0, 751, 1158 293, 0, 0, 0, 646, 647, 643, 644, 496, 495, 1159 293, 0, 293, 713, 293, 718, 294, 293, 661, 293, 1160 293, 704, 660, 2, 293, 0, 0, 0, 0, 0, 1161 0, 0, 0, 682, 0, 668, 619, 635, 669, 2, 1162 615, 622, 431, 617, 618, 432, 2, 629, 638, 631, 1163 632, 665, 666, 680, 708, 712, 710, 750, 267, 2, 1164 744, 2, 422, 716, 721, 423, 0, 401, 3, 3, 1165 3, 3, 453, 3, 0, 2, 467, 464, 749, 0, 1166 460, 2, 463, 466, 0, 293, 241, 263, 3, 271, 1167 273, 0, 453, 2, 570, 571, 2, 609, 610, 0, 1168 658, 536, 3, 344, 343, 346, 345, 293, 537, 0, 1169 538, 371, 0, 0, 293, 293, 0, 0, 691, 381, 1170 384, 388, 546, 388, 387, 380, 373, 546, 375, 378, 1171 293, 398, 392, 102, 399, 748, 0, 0, 436, 239, 1172 0, 0, 3, 2, 667, 429, 0, 526, 0, 750, 1173 488, 0, 293, 293, 293, 0, 550, 552, 129, 0, 1174 0, 214, 0, 0, 0, 222, 223, 54, 0, 56, 1175 59, 60, 0, 2, 127, 0, 0, 0, 692, 693, 1176 689, 690, 458, 68, 69, 107, 124, 3, 106, 0, 1177 0, 25, 36, 3, 0, 33, 100, 0, 3, 649, 1178 653, 656, 648, 3, 591, 3, 715, 720, 2, 61, 1179 293, 3, 3, 294, 0, 3, 621, 625, 628, 637, 1180 671, 675, 678, 293, 3, 620, 636, 670, 293, 293, 1181 424, 293, 293, 745, 0, 0, 0, 0, 255, 0, 1182 102, 0, 3, 3, 0, 461, 0, 457, 0, 0, 1183 244, 293, 0, 0, 128, 0, 0, 0, 0, 0, 1184 128, 0, 0, 106, 106, 19, 2, 0, 0, 3, 1185 130, 131, 2, 142, 132, 133, 134, 135, 136, 137, 1186 144, 146, 0, 0, 0, 284, 293, 293, 546, 0, 1187 539, 293, 374, 376, 0, 390, 692, 385, 389, 386, 1188 379, 383, 366, 397, 0, 578, 2, 663, 662, 0, 1189 668, 2, 481, 483, 503, 3, 511, 512, 0, 2, 1190 507, 3, 3, 0, 0, 555, 221, 0, 0, 0, 1191 221, 0, 0, 120, 695, 699, 701, 694, 748, 106, 1192 0, 3, 660, 40, 3, 38, 35, 0, 3, 99, 1193 101, 0, 2, 651, 652, 0, 0, 293, 0, 0, 1194 0, 3, 637, 0, 2, 623, 624, 2, 639, 2, 1195 673, 674, 0, 0, 61, 0, 3, 3, 3, 3, 1196 409, 408, 412, 2, 2, 747, 746, 121, 0, 0, 1197 0, 0, 3, 462, 3, 0, 242, 145, 3, 294, 1198 293, 0, 0, 0, 0, 2, 0, 190, 0, 188, 1199 0, 0, 0, 0, 0, 0, 0, 546, 120, 0, 1200 150, 147, 293, 0, 0, 266, 278, 3, 3, 545, 1201 612, 367, 382, 395, 293, 265, 293, 0, 514, 491, 1202 293, 0, 0, 490, 505, 0, 0, 0, 215, 0, 1203 224, 57, 2, 697, 698, 0, 125, 122, 0, 0, 1204 0, 0, 0, 24, 0, 654, 293, 579, 264, 723, 1205 724, 725, 0, 676, 293, 293, 293, 3, 3, 0, 1206 684, 0, 0, 0, 0, 293, 293, 3, 543, 121, 1207 469, 0, 0, 245, 294, 0, 0, 0, 0, 293, 1208 191, 189, 186, 0, 192, 0, 0, 0, 0, 196, 1209 199, 197, 193, 0, 194, 128, 36, 143, 141, 243, 1210 0, 0, 416, 420, 419, 0, 508, 2, 509, 2, 1211 510, 504, 293, 227, 0, 225, 0, 227, 293, 32, 1212 123, 2, 43, 2, 41, 39, 29, 27, 3, 726, 1213 3, 3, 3, 0, 0, 683, 685, 626, 640, 268, 1214 2, 406, 3, 405, 0, 471, 468, 128, 0, 0, 1215 128, 3, 0, 128, 187, 0, 2, 2, 208, 198, 1216 0, 0, 0, 139, 0, 573, 613, 2, 0, 0, 1217 2, 228, 0, 0, 216, 0, 3, 0, 0, 0, 1218 0, 0, 0, 686, 687, 293, 0, 470, 151, 0, 1219 0, 2, 164, 128, 153, 0, 181, 0, 128, 0, 1220 2, 155, 0, 2, 0, 2, 2, 2, 195, 33, 1221 293, 513, 515, 506, 0, 0, 0, 0, 0, 3, 1222 3, 655, 627, 641, 677, 410, 128, 157, 160, 0, 1223 159, 163, 3, 166, 165, 0, 128, 183, 128, 3, 1224 0, 293, 0, 293, 0, 2, 0, 2, 138, 2, 1225 229, 230, 0, 226, 217, 700, 0, 0, 152, 0, 1226 0, 162, 232, 167, 2, 234, 182, 0, 185, 171, 1227 200, 3, 209, 213, 202, 3, 0, 293, 0, 293, 1228 0, 0, 0, 44, 42, 158, 161, 128, 0, 168, 1229 293, 128, 128, 0, 172, 0, 0, 691, 210, 211, 1230 212, 0, 201, 3, 203, 3, 293, 218, 231, 148, 1231 169, 154, 128, 235, 184, 179, 177, 173, 156, 128, 1232 0, 692, 0, 0, 0, 0, 149, 170, 180, 174, 1233 178, 177, 175, 3, 3, 0, 0, 492, 176, 204, 1234 206, 3, 3, 205, 207 1235 }; 1236 1237 /* YYPGOTO[NTERM-NUM]. */ 1755 /* YYPGOTO[NTERM-NUM]. */ 1238 1756 static const yytype_int16 yypgoto[] = 1239 1757 { … … 1265 1783 }; 1266 1784 1267 /* YYDEFGOTO[NTERM-NUM]. */ 1268 static const yytype_int16 yydefgoto[] = 1269 { 1270 -1, 814, 468, 300, 47, 133, 134, 301, 302, 303, 1271 304, 305, 762, 763, 1134, 1135, 306, 381, 308, 309, 1272 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1273 320, 1031, 518, 976, 547, 322, 977, 948, 1058, 1519, 1274 1060, 1061, 1062, 1063, 1520, 1064, 1065, 1438, 1439, 1402, 1275 1403, 1404, 1498, 1499, 1503, 1504, 1539, 1540, 1066, 1362, 1276 1067, 1068, 1299, 1300, 1301, 1481, 1069, 145, 954, 955, 1277 956, 1382, 1462, 1473, 1474, 469, 470, 875, 876, 1039, 1278 51, 52, 53, 54, 55, 347, 158, 58, 59, 60, 1279 61, 62, 349, 64, 65, 264, 67, 68, 274, 351, 1280 352, 71, 72, 73, 118, 75, 204, 354, 119, 78, 1281 120, 80, 81, 455, 82, 454, 689, 690, 691, 909, 1282 1087, 910, 83, 84, 458, 456, 697, 856, 857, 858, 1283 859, 700, 701, 702, 359, 360, 361, 362, 466, 340, 1284 135, 136, 522, 324, 170, 646, 647, 648, 649, 650, 1285 85, 121, 87, 489, 490, 940, 491, 277, 495, 325, 1286 88, 137, 138, 89, 1322, 1109, 1110, 1111, 1112, 90, 1287 91, 718, 92, 273, 93, 94, 187, 1033, 680, 412, 1288 125, 95, 501, 502, 503, 188, 268, 190, 191, 192, 1289 269, 98, 99, 100, 101, 102, 103, 104, 195, 196, 1290 197, 198, 199, 826, 606, 607, 608, 609, 200, 611, 1291 612, 613, 573, 574, 575, 576, 752, 105, 615, 616, 1292 617, 618, 619, 620, 969, 754, 755, 756, 596, 365, 1293 366, 367, 368, 326, 164, 107, 108, 109, 370, 695, 1294 570 1295 }; 1296 1297 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1298 positive, shift that token. If negative, reduce the rule whose 1299 number is the opposite. If YYTABLE_NINF, syntax error. */ 1785 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1786 positive, shift that token. If negative, reduce the rule which 1787 number is the opposite. If YYTABLE_NINF, syntax error. */ 1788 #define YYTABLE_NINF -522 1300 1789 static const yytype_int16 yytable[] = 1301 1790 { … … 2389 2878 }; 2390 2879 2880 #define yypact_value_is_default(yystate) \ 2881 ((yystate) == (-1323)) 2882 2883 #define yytable_value_is_error(yytable_value) \ 2884 YYID (0) 2885 2391 2886 static const yytype_int16 yycheck[] = 2392 2887 { … … 3480 3975 }; 3481 3976 3482 3483 3977 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3978 symbol of state STATE-NUM. */ 3484 3979 static const yytype_uint16 yystos[] = 3485 3980 { … … 3642 4137 }; 3643 4138 3644 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3645 static const yytype_uint16 yyr1[] = 3646 { 3647 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 3648 138, 138, 139, 139, 140, 140, 141, 142, 142, 143, 3649 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 3650 144, 144, 144, 144, 145, 145, 146, 146, 147, 147, 3651 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 3652 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 3653 149, 150, 150, 151, 151, 151, 151, 152, 152, 152, 3654 153, 153, 153, 153, 154, 154, 154, 155, 155, 155, 3655 156, 156, 156, 156, 156, 157, 157, 157, 158, 158, 3656 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 3657 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 3658 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 3659 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 3660 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 3661 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 3662 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 3663 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 3664 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 3665 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 3666 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 3667 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 3668 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 3669 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 3670 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 3671 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 3672 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 3673 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 3674 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 3675 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 3676 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 3677 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 3678 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 3679 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 3680 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 3681 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 3682 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 3683 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 3684 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 3685 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 3686 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 3687 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 3688 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 3689 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 3690 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 3691 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 3692 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 3693 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 3694 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 3695 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 3696 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 3697 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 3698 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 3699 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 3700 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 3701 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 3702 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 3703 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 3704 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 3705 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 3706 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 3707 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 3708 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 3709 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 3710 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 3711 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 3712 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 3713 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 3714 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 3715 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 3716 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 3717 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 3718 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 3719 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 3720 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 3721 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 3722 373, 373 3723 }; 3724 3725 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3726 static const yytype_uint8 yyr2[] = 3727 { 3728 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3729 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3730 1, 3, 3, 1, 6, 4, 3, 7, 3, 7, 3731 2, 2, 7, 4, 1, 3, 0, 1, 1, 3, 3732 1, 3, 7, 3, 7, 1, 1, 1, 2, 2, 3733 2, 2, 2, 2, 4, 2, 4, 6, 1, 4, 3734 4, 1, 1, 1, 1, 1, 1, 1, 4, 4, 3735 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3736 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3737 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 3738 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 3739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3740 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 3741 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 3742 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 3743 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 3744 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 3745 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 3746 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 3747 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 3748 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 3749 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 3750 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 3751 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 3752 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 3753 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 3754 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 3755 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 3756 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 3757 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 3758 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 3759 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3760 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3761 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 3762 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 3763 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 3764 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 3765 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 3766 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 3767 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 3768 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 3769 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 3770 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 3771 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 3772 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3773 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 3774 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 3775 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 3776 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 3777 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 3778 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 3779 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 3780 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 3781 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 3782 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 3783 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 3784 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 3785 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 3786 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 3787 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 3788 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 3789 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 3790 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 3791 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 3792 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 3793 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 3794 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 3795 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 3796 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 3797 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 3798 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 3799 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 3800 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 3801 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 3802 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 3803 0, 2 3804 }; 3805 3806 3807 #define yyerrok (yyerrstatus = 0) 3808 #define yyclearin (yychar = YYEMPTY) 3809 #define YYEMPTY (-2) 3810 #define YYEOF 0 3811 3812 #define YYACCEPT goto yyacceptlab 3813 #define YYABORT goto yyabortlab 3814 #define YYERROR goto yyerrorlab 3815 4139 #define yyerrok (yyerrstatus = 0) 4140 #define yyclearin (yychar = YYEMPTY) 4141 #define YYEMPTY (-2) 4142 #define YYEOF 0 4143 4144 #define YYACCEPT goto yyacceptlab 4145 #define YYABORT goto yyabortlab 4146 #define YYERROR goto yyerrorlab 4147 4148 4149 /* Like YYERROR except do call yyerror. This remains here temporarily 4150 to ease the transition to the new meaning of YYERROR, for GCC. 4151 Once GCC version 2 has supplanted version 1, this can go. However, 4152 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4153 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4154 discussed. */ 4155 4156 #define YYFAIL goto yyerrlab 4157 #if defined YYFAIL 4158 /* This is here to suppress warnings from the GCC cpp's 4159 -Wunused-macros. Normally we don't worry about that warning, but 4160 some users do, and we want to make it easy for users to remove 4161 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4162 #endif 3816 4163 3817 4164 #define YYRECOVERING() (!!yyerrstatus) 3818 4165 3819 #define YYBACKUP(Token, Value) \ 3820 do \ 3821 if (yychar == YYEMPTY) \ 3822 { \ 3823 yychar = (Token); \ 3824 yylval = (Value); \ 3825 YYPOPSTACK (yylen); \ 3826 yystate = *yyssp; \ 3827 goto yybackup; \ 3828 } \ 3829 else \ 3830 { \ 4166 #define YYBACKUP(Token, Value) \ 4167 do \ 4168 if (yychar == YYEMPTY && yylen == 1) \ 4169 { \ 4170 yychar = (Token); \ 4171 yylval = (Value); \ 4172 YYPOPSTACK (1); \ 4173 goto yybackup; \ 4174 } \ 4175 else \ 4176 { \ 3831 4177 yyerror (YY_("syntax error: cannot back up")); \ 3832 YYERROR; \ 3833 } \ 3834 while (0) 3835 3836 /* Error token number */ 3837 #define YYTERROR 1 3838 #define YYERRCODE 256 3839 3840 4178 YYERROR; \ 4179 } \ 4180 while (YYID (0)) 4181 4182 4183 #define YYTERROR 1 4184 #define YYERRCODE 256 4185 4186 4187 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4188 If N is 0, then set CURRENT to the empty location which ends 4189 the previous symbol: RHS[0] (always defined). */ 4190 4191 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4192 #ifndef YYLLOC_DEFAULT 4193 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4194 do \ 4195 if (YYID (N)) \ 4196 { \ 4197 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4198 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4199 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4200 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4201 } \ 4202 else \ 4203 { \ 4204 (Current).first_line = (Current).last_line = \ 4205 YYRHSLOC (Rhs, 0).last_line; \ 4206 (Current).first_column = (Current).last_column = \ 4207 YYRHSLOC (Rhs, 0).last_column; \ 4208 } \ 4209 while (YYID (0)) 4210 #endif 4211 4212 4213 /* This macro is provided for backward compatibility. */ 4214 4215 #ifndef YY_LOCATION_PRINT 4216 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4217 #endif 4218 4219 4220 /* YYLEX -- calling `yylex' with the right arguments. */ 4221 4222 #ifdef YYLEX_PARAM 4223 # define YYLEX yylex (YYLEX_PARAM) 4224 #else 4225 # define YYLEX yylex () 4226 #endif 3841 4227 3842 4228 /* Enable debugging if requested. */ … … 3848 4234 # endif 3849 4235 3850 # define YYDPRINTF(Args) \ 3851 do { \ 3852 if (yydebug) \ 3853 YYFPRINTF Args; \ 3854 } while (0) 3855 3856 /* This macro is provided for backward compatibility. */ 3857 #ifndef YY_LOCATION_PRINT 3858 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3859 #endif 3860 3861 3862 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3863 do { \ 3864 if (yydebug) \ 3865 { \ 3866 YYFPRINTF (stderr, "%s ", Title); \ 3867 yy_symbol_print (stderr, \ 3868 Type, Value); \ 3869 YYFPRINTF (stderr, "\n"); \ 3870 } \ 3871 } while (0) 3872 3873 3874 /*----------------------------------------. 3875 | Print this symbol's value on YYOUTPUT. | 3876 `----------------------------------------*/ 3877 4236 # define YYDPRINTF(Args) \ 4237 do { \ 4238 if (yydebug) \ 4239 YYFPRINTF Args; \ 4240 } while (YYID (0)) 4241 4242 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4243 do { \ 4244 if (yydebug) \ 4245 { \ 4246 YYFPRINTF (stderr, "%s ", Title); \ 4247 yy_symbol_print (stderr, \ 4248 Type, Value); \ 4249 YYFPRINTF (stderr, "\n"); \ 4250 } \ 4251 } while (YYID (0)) 4252 4253 4254 /*--------------------------------. 4255 | Print this symbol on YYOUTPUT. | 4256 `--------------------------------*/ 4257 4258 /*ARGSUSED*/ 4259 #if (defined __STDC__ || defined __C99__FUNC__ \ 4260 || defined __cplusplus || defined _MSC_VER) 3878 4261 static void 3879 4262 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4263 #else 4264 static void 4265 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 4266 FILE *yyoutput; 4267 int yytype; 4268 YYSTYPE const * const yyvaluep; 4269 #endif 3880 4270 { 3881 FILE *yyo = yyoutput;3882 YYUSE (yyo);3883 4271 if (!yyvaluep) 3884 4272 return; … … 3886 4274 if (yytype < YYNTOKENS) 3887 4275 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4276 # else 4277 YYUSE (yyoutput); 3888 4278 # endif 3889 YYUSE (yytype); 4279 switch (yytype) 4280 { 4281 default: 4282 break; 4283 } 3890 4284 } 3891 4285 … … 3895 4289 `--------------------------------*/ 3896 4290 4291 #if (defined __STDC__ || defined __C99__FUNC__ \ 4292 || defined __cplusplus || defined _MSC_VER) 3897 4293 static void 3898 4294 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4295 #else 4296 static void 4297 yy_symbol_print (yyoutput, yytype, yyvaluep) 4298 FILE *yyoutput; 4299 int yytype; 4300 YYSTYPE const * const yyvaluep; 4301 #endif 3899 4302 { 3900 YYFPRINTF (yyoutput, "%s %s (", 3901 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4303 if (yytype < YYNTOKENS) 4304 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4305 else 4306 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3902 4307 3903 4308 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 3910 4315 `------------------------------------------------------------------*/ 3911 4316 4317 #if (defined __STDC__ || defined __C99__FUNC__ \ 4318 || defined __cplusplus || defined _MSC_VER) 3912 4319 static void 3913 4320 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4321 #else 4322 static void 4323 yy_stack_print (yybottom, yytop) 4324 yytype_int16 *yybottom; 4325 yytype_int16 *yytop; 4326 #endif 3914 4327 { 3915 4328 YYFPRINTF (stderr, "Stack now"); … … 3922 4335 } 3923 4336 3924 # define YY_STACK_PRINT(Bottom, Top) 3925 do { 3926 if (yydebug) 3927 yy_stack_print ((Bottom), (Top)); 3928 } while ( 0)4337 # define YY_STACK_PRINT(Bottom, Top) \ 4338 do { \ 4339 if (yydebug) \ 4340 yy_stack_print ((Bottom), (Top)); \ 4341 } while (YYID (0)) 3929 4342 3930 4343 … … 3933 4346 `------------------------------------------------*/ 3934 4347 4348 #if (defined __STDC__ || defined __C99__FUNC__ \ 4349 || defined __cplusplus || defined _MSC_VER) 3935 4350 static void 3936 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4351 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4352 #else 4353 static void 4354 yy_reduce_print (yyvsp, yyrule) 4355 YYSTYPE *yyvsp; 4356 int yyrule; 4357 #endif 3937 4358 { 3938 unsigned long int yylno = yyrline[yyrule];3939 4359 int yynrhs = yyr2[yyrule]; 3940 4360 int yyi; 4361 unsigned long int yylno = yyrline[yyrule]; 3941 4362 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 3942 4363 yyrule - 1, yylno); 3943 4364 /* The symbols being reduced. */ 3944 4365 for (yyi = 0; yyi < yynrhs; yyi++) 3945 4366 { 3946 4367 YYFPRINTF (stderr, " $%d = ", yyi + 1); 3947 yy_symbol_print (stderr, 3948 yystos[yyssp[yyi + 1 - yynrhs]], 3949 &(yyvsp[(yyi + 1) - (yynrhs)]) 3950 ); 4368 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4369 &(yyvsp[(yyi + 1) - (yynrhs)]) 4370 ); 3951 4371 YYFPRINTF (stderr, "\n"); 3952 4372 } 3953 4373 } 3954 4374 3955 # define YY_REDUCE_PRINT(Rule) 3956 do { 3957 if (yydebug) 3958 yy_reduce_print (yy ssp, yyvsp, Rule); \3959 } while ( 0)4375 # define YY_REDUCE_PRINT(Rule) \ 4376 do { \ 4377 if (yydebug) \ 4378 yy_reduce_print (yyvsp, Rule); \ 4379 } while (YYID (0)) 3960 4380 3961 4381 /* Nonzero means print parse trace. It is left uninitialized so that … … 3971 4391 3972 4392 /* YYINITDEPTH -- initial size of the parser's stacks. */ 3973 #ifndef 4393 #ifndef YYINITDEPTH 3974 4394 # define YYINITDEPTH 200 3975 4395 #endif … … 3994 4414 # else 3995 4415 /* Return the length of YYSTR. */ 4416 #if (defined __STDC__ || defined __C99__FUNC__ \ 4417 || defined __cplusplus || defined _MSC_VER) 3996 4418 static YYSIZE_T 3997 4419 yystrlen (const char *yystr) 4420 #else 4421 static YYSIZE_T 4422 yystrlen (yystr) 4423 const char *yystr; 4424 #endif 3998 4425 { 3999 4426 YYSIZE_T yylen; … … 4011 4438 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4012 4439 YYDEST. */ 4440 #if (defined __STDC__ || defined __C99__FUNC__ \ 4441 || defined __cplusplus || defined _MSC_VER) 4013 4442 static char * 4014 4443 yystpcpy (char *yydest, const char *yysrc) 4444 #else 4445 static char * 4446 yystpcpy (yydest, yysrc) 4447 char *yydest; 4448 const char *yysrc; 4449 #endif 4015 4450 { 4016 4451 char *yyd = yydest; … … 4042 4477 4043 4478 for (;;) 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4479 switch (*++yyp) 4480 { 4481 case '\'': 4482 case ',': 4483 goto do_not_strip_quotes; 4484 4485 case '\\': 4486 if (*++yyp != '\\') 4487 goto do_not_strip_quotes; 4488 /* Fall through. */ 4489 default: 4490 if (yyres) 4491 yyres[yyn] = *yyp; 4492 yyn++; 4493 break; 4494 4495 case '"': 4496 if (yyres) 4497 yyres[yyn] = '\0'; 4498 return yyn; 4499 } 4065 4500 do_not_strip_quotes: ; 4066 4501 } … … 4085 4520 yytype_int16 *yyssp, int yytoken) 4086 4521 { 4087 YYSIZE_T yysize0 = yytnamerr ( YY_NULLPTR, yytname[yytoken]);4522 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); 4088 4523 YYSIZE_T yysize = yysize0; 4524 YYSIZE_T yysize1; 4089 4525 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4090 4526 /* Internationalized format string. */ 4091 const char *yyformat = YY_NULLPTR;4527 const char *yyformat = 0; 4092 4528 /* Arguments of yyformat. */ 4093 4529 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4097 4533 4098 4534 /* There are many possibilities here to consider: 4535 - Assume YYFAIL is not used. It's too flawed to consider. See 4536 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 4537 for details. YYERROR is fine as it does not invoke this 4538 function. 4099 4539 - If this state is a consistent state with a default action, then 4100 4540 the only way this function was invoked is if the default action … … 4145 4585 } 4146 4586 yyarg[yycount++] = yytname[yyx]; 4147 { 4148 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4149 if (! (yysize <= yysize1 4150 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4151 return 2; 4152 yysize = yysize1; 4153 } 4587 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4588 if (! (yysize <= yysize1 4589 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4590 return 2; 4591 yysize = yysize1; 4154 4592 } 4155 4593 } … … 4171 4609 } 4172 4610 4173 { 4174 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4175 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4176 return 2; 4177 yysize = yysize1; 4178 } 4611 yysize1 = yysize + yystrlen (yyformat); 4612 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4613 return 2; 4614 yysize = yysize1; 4179 4615 4180 4616 if (*yymsg_alloc < yysize) … … 4213 4649 `-----------------------------------------------*/ 4214 4650 4651 /*ARGSUSED*/ 4652 #if (defined __STDC__ || defined __C99__FUNC__ \ 4653 || defined __cplusplus || defined _MSC_VER) 4215 4654 static void 4216 4655 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4656 #else 4657 static void 4658 yydestruct (yymsg, yytype, yyvaluep) 4659 const char *yymsg; 4660 int yytype; 4661 YYSTYPE *yyvaluep; 4662 #endif 4217 4663 { 4218 4664 YYUSE (yyvaluep); 4665 4219 4666 if (!yymsg) 4220 4667 yymsg = "Deleting"; 4221 4668 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4222 4669 4223 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4224 YYUSE (yytype); 4225 YY_IGNORE_MAYBE_UNINITIALIZED_END 4670 switch (yytype) 4671 { 4672 4673 default: 4674 break; 4675 } 4226 4676 } 4227 4677 4228 4678 4679 /* Prevent warnings from -Wmissing-prototypes. */ 4680 #ifdef YYPARSE_PARAM 4681 #if defined __STDC__ || defined __cplusplus 4682 int yyparse (void *YYPARSE_PARAM); 4683 #else 4684 int yyparse (); 4685 #endif 4686 #else /* ! YYPARSE_PARAM */ 4687 #if defined __STDC__ || defined __cplusplus 4688 int yyparse (void); 4689 #else 4690 int yyparse (); 4691 #endif 4692 #endif /* ! YYPARSE_PARAM */ 4229 4693 4230 4694 … … 4234 4698 /* The semantic value of the lookahead symbol. */ 4235 4699 YYSTYPE yylval; 4700 4236 4701 /* Number of syntax errors so far. */ 4237 4702 int yynerrs; … … 4242 4707 `----------*/ 4243 4708 4709 #ifdef YYPARSE_PARAM 4710 #if (defined __STDC__ || defined __C99__FUNC__ \ 4711 || defined __cplusplus || defined _MSC_VER) 4712 int 4713 yyparse (void *YYPARSE_PARAM) 4714 #else 4715 int 4716 yyparse (YYPARSE_PARAM) 4717 void *YYPARSE_PARAM; 4718 #endif 4719 #else /* ! YYPARSE_PARAM */ 4720 #if (defined __STDC__ || defined __C99__FUNC__ \ 4721 || defined __cplusplus || defined _MSC_VER) 4244 4722 int 4245 4723 yyparse (void) 4724 #else 4725 int 4726 yyparse () 4727 4728 #endif 4729 #endif 4246 4730 { 4247 4731 int yystate; … … 4250 4734 4251 4735 /* The stacks and their tools: 4252 'yyss': related to states.4253 'yyvs': related to semantic values.4254 4255 Refer to the stacks thr oughseparate pointers, to allow yyoverflow4736 `yyss': related to states. 4737 `yyvs': related to semantic values. 4738 4739 Refer to the stacks thru separate pointers, to allow yyoverflow 4256 4740 to reallocate them elsewhere. */ 4257 4741 … … 4271 4755 int yyresult; 4272 4756 /* Lookahead token as an internal (translated) token number. */ 4273 int yytoken = 0;4757 int yytoken; 4274 4758 /* The variables used to return semantic value and location from the 4275 4759 action routines. */ … … 4289 4773 int yylen = 0; 4290 4774 4291 yyssp = yyss = yyssa; 4292 yyvsp = yyvs = yyvsa; 4775 yytoken = 0; 4776 yyss = yyssa; 4777 yyvs = yyvsa; 4293 4778 yystacksize = YYINITDEPTH; 4294 4779 … … 4299 4784 yynerrs = 0; 4300 4785 yychar = YYEMPTY; /* Cause a token to be read. */ 4786 4787 /* Initialize stack pointers. 4788 Waste one element of value and location stack 4789 so that they stay on the same level as the state stack. 4790 The wasted elements are never initialized. */ 4791 yyssp = yyss; 4792 yyvsp = yyvs; 4793 4301 4794 goto yysetstate; 4302 4795 … … 4319 4812 #ifdef yyoverflow 4320 4813 { 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4814 /* Give user a chance to reallocate the stack. Use copies of 4815 these so that the &'s don't force the real ones into 4816 memory. */ 4817 YYSTYPE *yyvs1 = yyvs; 4818 yytype_int16 *yyss1 = yyss; 4819 4820 /* Each stack pointer address is followed by the size of the 4821 data in use in that stack, in bytes. This used to be a 4822 conditional around just the two extra args, but that might 4823 be undefined if yyoverflow is a macro. */ 4824 yyoverflow (YY_("memory exhausted"), 4825 &yyss1, yysize * sizeof (*yyssp), 4826 &yyvs1, yysize * sizeof (*yyvsp), 4827 &yystacksize); 4828 4829 yyss = yyss1; 4830 yyvs = yyvs1; 4338 4831 } 4339 4832 #else /* no yyoverflow */ … … 4343 4836 /* Extend the stack our own way. */ 4344 4837 if (YYMAXDEPTH <= yystacksize) 4345 4838 goto yyexhaustedlab; 4346 4839 yystacksize *= 2; 4347 4840 if (YYMAXDEPTH < yystacksize) 4348 4841 yystacksize = YYMAXDEPTH; 4349 4842 4350 4843 { 4351 4352 4353 4354 4355 4356 4357 4844 yytype_int16 *yyss1 = yyss; 4845 union yyalloc *yyptr = 4846 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4847 if (! yyptr) 4848 goto yyexhaustedlab; 4849 YYSTACK_RELOCATE (yyss_alloc, yyss); 4850 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4358 4851 # undef YYSTACK_RELOCATE 4359 4360 4852 if (yyss1 != yyssa) 4853 YYSTACK_FREE (yyss1); 4361 4854 } 4362 4855 # endif … … 4367 4860 4368 4861 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4369 4862 (unsigned long int) yystacksize)); 4370 4863 4371 4864 if (yyss + yystacksize - 1 <= yyssp) 4372 4865 YYABORT; 4373 4866 } 4374 4867 … … 4399 4892 { 4400 4893 YYDPRINTF ((stderr, "Reading a token: ")); 4401 yychar = yylex ();4894 yychar = YYLEX; 4402 4895 } 4403 4896 … … 4439 4932 4440 4933 yystate = yyn; 4441 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN4442 4934 *++yyvsp = yylval; 4443 YY_IGNORE_MAYBE_UNINITIALIZED_END4444 4935 4445 4936 goto yynewstate; … … 4464 4955 4465 4956 /* If YYLEN is nonzero, implement the default value of the action: 4466 '$$ = $1'.4957 `$$ = $1'. 4467 4958 4468 4959 Otherwise, the following line sets YYVAL to garbage. … … 4478 4969 { 4479 4970 case 2: 4480 #line 300 "parser.yy" /* yacc.c:1646 */ 4971 4972 /* Line 1806 of yacc.c */ 4973 #line 300 "parser.yy" 4481 4974 { typedefTable.enterScope(); } 4482 #line 4483 "Parser/parser.cc" /* yacc.c:1646 */4483 4975 break; 4484 4976 4485 4977 case 3: 4486 #line 304 "parser.yy" /* yacc.c:1646 */ 4978 4979 /* Line 1806 of yacc.c */ 4980 #line 304 "parser.yy" 4487 4981 { typedefTable.leaveScope(); } 4488 #line 4489 "Parser/parser.cc" /* yacc.c:1646 */4489 4982 break; 4490 4983 4491 4984 case 4: 4492 #line 311 "parser.yy" /* yacc.c:1646 */ 4493 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); } 4494 #line 4495 "Parser/parser.cc" /* yacc.c:1646 */ 4985 4986 /* Line 1806 of yacc.c */ 4987 #line 311 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4495 4989 break; 4496 4990 4497 4991 case 5: 4498 #line 312 "parser.yy" /* yacc.c:1646 */ 4499 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4500 #line 4501 "Parser/parser.cc" /* yacc.c:1646 */ 4992 4993 /* Line 1806 of yacc.c */ 4994 #line 312 "parser.yy" 4995 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4501 4996 break; 4502 4997 4503 4998 case 6: 4504 #line 313 "parser.yy" /* yacc.c:1646 */ 4505 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); } 4506 #line 4507 "Parser/parser.cc" /* yacc.c:1646 */ 4999 5000 /* Line 1806 of yacc.c */ 5001 #line 313 "parser.yy" 5002 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4507 5003 break; 4508 5004 4509 5005 case 16: 4510 #line 338 "parser.yy" /* yacc.c:1646 */ 4511 { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); } 4512 #line 4513 "Parser/parser.cc" /* yacc.c:1646 */ 5006 5007 /* Line 1806 of yacc.c */ 5008 #line 338 "parser.yy" 5009 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4513 5010 break; 4514 5011 4515 5012 case 17: 4516 #line 342 "parser.yy" /* yacc.c:1646 */ 4517 { (yyval.str) = (yyvsp[0].tok); } 4518 #line 4519 "Parser/parser.cc" /* yacc.c:1646 */ 5013 5014 /* Line 1806 of yacc.c */ 5015 #line 342 "parser.yy" 5016 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4519 5017 break; 4520 5018 4521 5019 case 18: 4522 #line 344 "parser.yy" /* yacc.c:1646 */ 5020 5021 /* Line 1806 of yacc.c */ 5022 #line 344 "parser.yy" 4523 5023 { 4524 appendStr( (yyvsp[ -1].str), (yyvsp[0].tok) ); // append 2nd juxtaposed string to 1st4525 delete (yyvsp[ 0].tok); // allocated by lexer4526 (yyval.str) = (yyvsp[ -1].str); // conversion from tok to str5024 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st 5025 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5026 (yyval.str) = (yyvsp[(1) - (2)].str); // conversion from tok to str 4527 5027 } 4528 #line 4529 "Parser/parser.cc" /* yacc.c:1646 */4529 5028 break; 4530 5029 4531 5030 case 19: 4532 #line 355 "parser.yy" /* yacc.c:1646 */ 4533 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4534 #line 4535 "Parser/parser.cc" /* yacc.c:1646 */ 5031 5032 /* Line 1806 of yacc.c */ 5033 #line 355 "parser.yy" 5034 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4535 5035 break; 4536 5036 4537 5037 case 20: 4538 #line 357 "parser.yy" /* yacc.c:1646 */ 4539 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4540 #line 4541 "Parser/parser.cc" /* yacc.c:1646 */ 5038 5039 /* Line 1806 of yacc.c */ 5040 #line 357 "parser.yy" 5041 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4541 5042 break; 4542 5043 4543 5044 case 21: 4544 #line 359 "parser.yy" /* yacc.c:1646 */ 4545 { (yyval.en) = (yyvsp[-1].en); } 4546 #line 4547 "Parser/parser.cc" /* yacc.c:1646 */ 5045 5046 /* Line 1806 of yacc.c */ 5047 #line 359 "parser.yy" 5048 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4547 5049 break; 4548 5050 4549 5051 case 22: 4550 #line 361 "parser.yy" /* yacc.c:1646 */ 4551 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4552 #line 4553 "Parser/parser.cc" /* yacc.c:1646 */ 5052 5053 /* Line 1806 of yacc.c */ 5054 #line 361 "parser.yy" 5055 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4553 5056 break; 4554 5057 4555 5058 case 24: 4556 #line 371 "parser.yy" /* yacc.c:1646 */ 4557 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4558 #line 4559 "Parser/parser.cc" /* yacc.c:1646 */ 5059 5060 /* Line 1806 of yacc.c */ 5061 #line 371 "parser.yy" 5062 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4559 5063 break; 4560 5064 4561 5065 case 25: 4562 #line 373 "parser.yy" /* yacc.c:1646 */ 4563 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4564 #line 4565 "Parser/parser.cc" /* yacc.c:1646 */ 5066 5067 /* Line 1806 of yacc.c */ 5068 #line 373 "parser.yy" 5069 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4565 5070 break; 4566 5071 4567 5072 case 26: 4568 #line 377 "parser.yy" /* yacc.c:1646 */ 4569 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4570 #line 4571 "Parser/parser.cc" /* yacc.c:1646 */ 5073 5074 /* Line 1806 of yacc.c */ 5075 #line 377 "parser.yy" 5076 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4571 5077 break; 4572 5078 4573 5079 case 28: 4574 #line 380 "parser.yy" /* yacc.c:1646 */ 4575 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4576 #line 4577 "Parser/parser.cc" /* yacc.c:1646 */ 5080 5081 /* Line 1806 of yacc.c */ 5082 #line 380 "parser.yy" 5083 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4577 5084 break; 4578 5085 4579 5086 case 30: 4580 #line 383 "parser.yy" /* yacc.c:1646 */ 4581 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4582 #line 4583 "Parser/parser.cc" /* yacc.c:1646 */ 5087 5088 /* Line 1806 of yacc.c */ 5089 #line 383 "parser.yy" 5090 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4583 5091 break; 4584 5092 4585 5093 case 31: 4586 #line 385 "parser.yy" /* yacc.c:1646 */ 4587 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4588 #line 4589 "Parser/parser.cc" /* yacc.c:1646 */ 5094 5095 /* Line 1806 of yacc.c */ 5096 #line 385 "parser.yy" 5097 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4589 5098 break; 4590 5099 4591 5100 case 32: 4592 #line 387 "parser.yy" /* yacc.c:1646 */ 4593 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4594 #line 4595 "Parser/parser.cc" /* yacc.c:1646 */ 5101 5102 /* Line 1806 of yacc.c */ 5103 #line 387 "parser.yy" 5104 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4595 5105 break; 4596 5106 4597 5107 case 33: 4598 #line 389 "parser.yy" /* yacc.c:1646 */ 5108 5109 /* Line 1806 of yacc.c */ 5110 #line 389 "parser.yy" 4599 5111 { 4600 5112 Token fn; 4601 fn.str = new std::string( "?{}" ); // location undefined 4602 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) );5113 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 5114 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) ); 4603 5115 } 4604 #line 4605 "Parser/parser.cc" /* yacc.c:1646 */4605 5116 break; 4606 5117 4607 5118 case 35: 4608 #line 399 "parser.yy" /* yacc.c:1646 */ 4609 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4610 #line 4611 "Parser/parser.cc" /* yacc.c:1646 */ 5119 5120 /* Line 1806 of yacc.c */ 5121 #line 399 "parser.yy" 5122 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4611 5123 break; 4612 5124 4613 5125 case 36: 4614 #line 404 "parser.yy" /* yacc.c:1646 */ 5126 5127 /* Line 1806 of yacc.c */ 5128 #line 404 "parser.yy" 4615 5129 { (yyval.en) = 0; } 4616 #line 4617 "Parser/parser.cc" /* yacc.c:1646 */4617 5130 break; 4618 5131 4619 5132 case 39: 4620 #line 410 "parser.yy" /* yacc.c:1646 */ 4621 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4622 #line 4623 "Parser/parser.cc" /* yacc.c:1646 */ 5133 5134 /* Line 1806 of yacc.c */ 5135 #line 410 "parser.yy" 5136 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4623 5137 break; 4624 5138 4625 5139 case 40: 4626 #line 415 "parser.yy" /* yacc.c:1646 */ 4627 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4628 #line 4629 "Parser/parser.cc" /* yacc.c:1646 */ 5140 5141 /* Line 1806 of yacc.c */ 5142 #line 415 "parser.yy" 5143 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4629 5144 break; 4630 5145 4631 5146 case 41: 4632 #line 419 "parser.yy" /* yacc.c:1646 */ 4633 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4634 #line 4635 "Parser/parser.cc" /* yacc.c:1646 */ 5147 5148 /* Line 1806 of yacc.c */ 5149 #line 419 "parser.yy" 5150 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4635 5151 break; 4636 5152 4637 5153 case 42: 4638 #line 421 "parser.yy" /* yacc.c:1646 */ 4639 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4640 #line 4641 "Parser/parser.cc" /* yacc.c:1646 */ 5154 5155 /* Line 1806 of yacc.c */ 5156 #line 421 "parser.yy" 5157 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4641 5158 break; 4642 5159 4643 5160 case 43: 4644 #line 423 "parser.yy" /* yacc.c:1646 */ 4645 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4646 #line 4647 "Parser/parser.cc" /* yacc.c:1646 */ 5161 5162 /* Line 1806 of yacc.c */ 5163 #line 423 "parser.yy" 5164 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4647 5165 break; 4648 5166 4649 5167 case 44: 4650 #line 425 "parser.yy" /* yacc.c:1646 */ 4651 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4652 #line 4653 "Parser/parser.cc" /* yacc.c:1646 */ 5168 5169 /* Line 1806 of yacc.c */ 5170 #line 425 "parser.yy" 5171 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4653 5172 break; 4654 5173 4655 5174 case 46: 4656 #line 433 "parser.yy" /* yacc.c:1646 */ 4657 { (yyval.en) = (yyvsp[0].en); } 4658 #line 4659 "Parser/parser.cc" /* yacc.c:1646 */ 5175 5176 /* Line 1806 of yacc.c */ 5177 #line 433 "parser.yy" 5178 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4659 5179 break; 4660 5180 4661 5181 case 47: 4662 #line 435 "parser.yy" /* yacc.c:1646 */ 4663 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4664 #line 4665 "Parser/parser.cc" /* yacc.c:1646 */ 5182 5183 /* Line 1806 of yacc.c */ 5184 #line 435 "parser.yy" 5185 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4665 5186 break; 4666 5187 4667 5188 case 48: 4668 #line 437 "parser.yy" /* yacc.c:1646 */ 4669 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4670 #line 4671 "Parser/parser.cc" /* yacc.c:1646 */ 5189 5190 /* Line 1806 of yacc.c */ 5191 #line 437 "parser.yy" 5192 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4671 5193 break; 4672 5194 4673 5195 case 49: 4674 #line 442 "parser.yy" /* yacc.c:1646 */ 5196 5197 /* Line 1806 of yacc.c */ 5198 #line 442 "parser.yy" 4675 5199 { 4676 switch ( (yyvsp[ -1].op) ) {5200 switch ( (yyvsp[(1) - (2)].op) ) { 4677 5201 case OperKinds::AddressOf: 4678 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ 0].en) ) );5202 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) ); 4679 5203 break; 4680 5204 case OperKinds::PointTo: 4681 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ -1].op), (yyvsp[0].en) ) );5205 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); 4682 5206 break; 4683 5207 default: … … 4685 5209 } 4686 5210 } 4687 #line 4688 "Parser/parser.cc" /* yacc.c:1646 */4688 5211 break; 4689 5212 4690 5213 case 50: 4691 #line 455 "parser.yy" /* yacc.c:1646 */ 4692 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4693 #line 4694 "Parser/parser.cc" /* yacc.c:1646 */ 5214 5215 /* Line 1806 of yacc.c */ 5216 #line 455 "parser.yy" 5217 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4694 5218 break; 4695 5219 4696 5220 case 51: 4697 #line 457 "parser.yy" /* yacc.c:1646 */ 4698 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4699 #line 4700 "Parser/parser.cc" /* yacc.c:1646 */ 5221 5222 /* Line 1806 of yacc.c */ 5223 #line 457 "parser.yy" 5224 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4700 5225 break; 4701 5226 4702 5227 case 52: 4703 #line 459 "parser.yy" /* yacc.c:1646 */ 4704 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4705 #line 4706 "Parser/parser.cc" /* yacc.c:1646 */ 5228 5229 /* Line 1806 of yacc.c */ 5230 #line 459 "parser.yy" 5231 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4706 5232 break; 4707 5233 4708 5234 case 53: 4709 #line 461 "parser.yy" /* yacc.c:1646 */ 4710 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4711 #line 4712 "Parser/parser.cc" /* yacc.c:1646 */ 5235 5236 /* Line 1806 of yacc.c */ 5237 #line 461 "parser.yy" 5238 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4712 5239 break; 4713 5240 4714 5241 case 54: 4715 #line 463 "parser.yy" /* yacc.c:1646 */ 4716 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4717 #line 4718 "Parser/parser.cc" /* yacc.c:1646 */ 5242 5243 /* Line 1806 of yacc.c */ 5244 #line 463 "parser.yy" 5245 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4718 5246 break; 4719 5247 4720 5248 case 55: 4721 #line 465 "parser.yy" /* yacc.c:1646 */ 4722 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4723 #line 4724 "Parser/parser.cc" /* yacc.c:1646 */ 5249 5250 /* Line 1806 of yacc.c */ 5251 #line 465 "parser.yy" 5252 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4724 5253 break; 4725 5254 4726 5255 case 56: 4727 #line 467 "parser.yy" /* yacc.c:1646 */ 4728 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4729 #line 4730 "Parser/parser.cc" /* yacc.c:1646 */ 5256 5257 /* Line 1806 of yacc.c */ 5258 #line 467 "parser.yy" 5259 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4730 5260 break; 4731 5261 4732 5262 case 57: 4733 #line 469 "parser.yy" /* yacc.c:1646 */ 4734 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4735 #line 4736 "Parser/parser.cc" /* yacc.c:1646 */ 5263 5264 /* Line 1806 of yacc.c */ 5265 #line 469 "parser.yy" 5266 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4736 5267 break; 4737 5268 4738 5269 case 58: 4739 #line 471 "parser.yy" /* yacc.c:1646 */ 4740 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4741 #line 4742 "Parser/parser.cc" /* yacc.c:1646 */ 5270 5271 /* Line 1806 of yacc.c */ 5272 #line 471 "parser.yy" 5273 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4742 5274 break; 4743 5275 4744 5276 case 59: 4745 #line 473 "parser.yy" /* yacc.c:1646 */ 4746 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4747 #line 4748 "Parser/parser.cc" /* yacc.c:1646 */ 5277 5278 /* Line 1806 of yacc.c */ 5279 #line 473 "parser.yy" 5280 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4748 5281 break; 4749 5282 4750 5283 case 60: 4751 #line 475 "parser.yy" /* yacc.c:1646 */ 4752 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4753 #line 4754 "Parser/parser.cc" /* yacc.c:1646 */ 5284 5285 /* Line 1806 of yacc.c */ 5286 #line 475 "parser.yy" 5287 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4754 5288 break; 4755 5289 4756 5290 case 61: 4757 #line 481 "parser.yy" /* yacc.c:1646 */ 5291 5292 /* Line 1806 of yacc.c */ 5293 #line 481 "parser.yy" 4758 5294 { (yyval.op) = OperKinds::PointTo; } 4759 #line 4760 "Parser/parser.cc" /* yacc.c:1646 */4760 5295 break; 4761 5296 4762 5297 case 62: 4763 #line 482 "parser.yy" /* yacc.c:1646 */ 5298 5299 /* Line 1806 of yacc.c */ 5300 #line 482 "parser.yy" 4764 5301 { (yyval.op) = OperKinds::AddressOf; } 4765 #line 4766 "Parser/parser.cc" /* yacc.c:1646 */4766 5302 break; 4767 5303 4768 5304 case 63: 4769 #line 488 "parser.yy" /* yacc.c:1646 */ 5305 5306 /* Line 1806 of yacc.c */ 5307 #line 488 "parser.yy" 4770 5308 { (yyval.op) = OperKinds::UnPlus; } 4771 #line 4772 "Parser/parser.cc" /* yacc.c:1646 */4772 5309 break; 4773 5310 4774 5311 case 64: 4775 #line 489 "parser.yy" /* yacc.c:1646 */ 5312 5313 /* Line 1806 of yacc.c */ 5314 #line 489 "parser.yy" 4776 5315 { (yyval.op) = OperKinds::UnMinus; } 4777 #line 4778 "Parser/parser.cc" /* yacc.c:1646 */4778 5316 break; 4779 5317 4780 5318 case 65: 4781 #line 490 "parser.yy" /* yacc.c:1646 */ 5319 5320 /* Line 1806 of yacc.c */ 5321 #line 490 "parser.yy" 4782 5322 { (yyval.op) = OperKinds::Neg; } 4783 #line 4784 "Parser/parser.cc" /* yacc.c:1646 */4784 5323 break; 4785 5324 4786 5325 case 66: 4787 #line 491 "parser.yy" /* yacc.c:1646 */ 5326 5327 /* Line 1806 of yacc.c */ 5328 #line 491 "parser.yy" 4788 5329 { (yyval.op) = OperKinds::BitNeg; } 4789 #line 4790 "Parser/parser.cc" /* yacc.c:1646 */4790 5330 break; 4791 5331 4792 5332 case 68: 4793 #line 497 "parser.yy" /* yacc.c:1646 */ 4794 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4795 #line 4796 "Parser/parser.cc" /* yacc.c:1646 */ 5333 5334 /* Line 1806 of yacc.c */ 5335 #line 497 "parser.yy" 5336 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4796 5337 break; 4797 5338 4798 5339 case 69: 4799 #line 499 "parser.yy" /* yacc.c:1646 */ 4800 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4801 #line 4802 "Parser/parser.cc" /* yacc.c:1646 */ 5340 5341 /* Line 1806 of yacc.c */ 5342 #line 499 "parser.yy" 5343 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4802 5344 break; 4803 5345 4804 5346 case 71: 4805 #line 505 "parser.yy" /* yacc.c:1646 */ 4806 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4807 #line 4808 "Parser/parser.cc" /* yacc.c:1646 */ 5347 5348 /* Line 1806 of yacc.c */ 5349 #line 505 "parser.yy" 5350 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4808 5351 break; 4809 5352 4810 5353 case 72: 4811 #line 507 "parser.yy" /* yacc.c:1646 */ 4812 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4813 #line 4814 "Parser/parser.cc" /* yacc.c:1646 */ 5354 5355 /* Line 1806 of yacc.c */ 5356 #line 507 "parser.yy" 5357 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4814 5358 break; 4815 5359 4816 5360 case 73: 4817 #line 509 "parser.yy" /* yacc.c:1646 */ 4818 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4819 #line 4820 "Parser/parser.cc" /* yacc.c:1646 */ 5361 5362 /* Line 1806 of yacc.c */ 5363 #line 509 "parser.yy" 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4820 5365 break; 4821 5366 4822 5367 case 75: 4823 #line 515 "parser.yy" /* yacc.c:1646 */ 4824 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4825 #line 4826 "Parser/parser.cc" /* yacc.c:1646 */ 5368 5369 /* Line 1806 of yacc.c */ 5370 #line 515 "parser.yy" 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4826 5372 break; 4827 5373 4828 5374 case 76: 4829 #line 517 "parser.yy" /* yacc.c:1646 */ 4830 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4831 #line 4832 "Parser/parser.cc" /* yacc.c:1646 */ 5375 5376 /* Line 1806 of yacc.c */ 5377 #line 517 "parser.yy" 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4832 5379 break; 4833 5380 4834 5381 case 78: 4835 #line 523 "parser.yy" /* yacc.c:1646 */ 4836 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4837 #line 4838 "Parser/parser.cc" /* yacc.c:1646 */ 5382 5383 /* Line 1806 of yacc.c */ 5384 #line 523 "parser.yy" 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4838 5386 break; 4839 5387 4840 5388 case 79: 4841 #line 525 "parser.yy" /* yacc.c:1646 */ 4842 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4843 #line 4844 "Parser/parser.cc" /* yacc.c:1646 */ 5389 5390 /* Line 1806 of yacc.c */ 5391 #line 525 "parser.yy" 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4844 5393 break; 4845 5394 4846 5395 case 81: 4847 #line 531 "parser.yy" /* yacc.c:1646 */ 4848 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4849 #line 4850 "Parser/parser.cc" /* yacc.c:1646 */ 5396 5397 /* Line 1806 of yacc.c */ 5398 #line 531 "parser.yy" 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4850 5400 break; 4851 5401 4852 5402 case 82: 4853 #line 533 "parser.yy" /* yacc.c:1646 */ 4854 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4855 #line 4856 "Parser/parser.cc" /* yacc.c:1646 */ 5403 5404 /* Line 1806 of yacc.c */ 5405 #line 533 "parser.yy" 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4856 5407 break; 4857 5408 4858 5409 case 83: 4859 #line 535 "parser.yy" /* yacc.c:1646 */ 4860 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4861 #line 4862 "Parser/parser.cc" /* yacc.c:1646 */ 5410 5411 /* Line 1806 of yacc.c */ 5412 #line 535 "parser.yy" 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4862 5414 break; 4863 5415 4864 5416 case 84: 4865 #line 537 "parser.yy" /* yacc.c:1646 */ 4866 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4867 #line 4868 "Parser/parser.cc" /* yacc.c:1646 */ 5417 5418 /* Line 1806 of yacc.c */ 5419 #line 537 "parser.yy" 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4868 5421 break; 4869 5422 4870 5423 case 86: 4871 #line 543 "parser.yy" /* yacc.c:1646 */ 4872 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4873 #line 4874 "Parser/parser.cc" /* yacc.c:1646 */ 5424 5425 /* Line 1806 of yacc.c */ 5426 #line 543 "parser.yy" 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4874 5428 break; 4875 5429 4876 5430 case 87: 4877 #line 545 "parser.yy" /* yacc.c:1646 */ 4878 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4879 #line 4880 "Parser/parser.cc" /* yacc.c:1646 */ 5431 5432 /* Line 1806 of yacc.c */ 5433 #line 545 "parser.yy" 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4880 5435 break; 4881 5436 4882 5437 case 89: 4883 #line 551 "parser.yy" /* yacc.c:1646 */ 4884 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4885 #line 4886 "Parser/parser.cc" /* yacc.c:1646 */ 5438 5439 /* Line 1806 of yacc.c */ 5440 #line 551 "parser.yy" 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4886 5442 break; 4887 5443 4888 5444 case 91: 4889 #line 557 "parser.yy" /* yacc.c:1646 */ 4890 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4891 #line 4892 "Parser/parser.cc" /* yacc.c:1646 */ 5445 5446 /* Line 1806 of yacc.c */ 5447 #line 557 "parser.yy" 5448 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4892 5449 break; 4893 5450 4894 5451 case 93: 4895 #line 563 "parser.yy" /* yacc.c:1646 */ 4896 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4897 #line 4898 "Parser/parser.cc" /* yacc.c:1646 */ 5452 5453 /* Line 1806 of yacc.c */ 5454 #line 563 "parser.yy" 5455 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4898 5456 break; 4899 5457 4900 5458 case 95: 4901 #line 569 "parser.yy" /* yacc.c:1646 */ 4902 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4903 #line 4904 "Parser/parser.cc" /* yacc.c:1646 */ 5459 5460 /* Line 1806 of yacc.c */ 5461 #line 569 "parser.yy" 5462 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4904 5463 break; 4905 5464 4906 5465 case 97: 4907 #line 575 "parser.yy" /* yacc.c:1646 */ 4908 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4909 #line 4910 "Parser/parser.cc" /* yacc.c:1646 */ 5466 5467 /* Line 1806 of yacc.c */ 5468 #line 575 "parser.yy" 5469 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4910 5470 break; 4911 5471 4912 5472 case 99: 4913 #line 581 "parser.yy" /* yacc.c:1646 */ 4914 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4915 #line 4916 "Parser/parser.cc" /* yacc.c:1646 */ 5473 5474 /* Line 1806 of yacc.c */ 5475 #line 581 "parser.yy" 5476 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4916 5477 break; 4917 5478 4918 5479 case 100: 4919 #line 584 "parser.yy" /* yacc.c:1646 */ 4920 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4921 #line 4922 "Parser/parser.cc" /* yacc.c:1646 */ 5480 5481 /* Line 1806 of yacc.c */ 5482 #line 584 "parser.yy" 5483 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4922 5484 break; 4923 5485 4924 5486 case 101: 4925 #line 586 "parser.yy" /* yacc.c:1646 */ 4926 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4927 #line 4928 "Parser/parser.cc" /* yacc.c:1646 */ 5487 5488 /* Line 1806 of yacc.c */ 5489 #line 586 "parser.yy" 5490 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4928 5491 break; 4929 5492 4930 5493 case 104: 4931 #line 597 "parser.yy" /* yacc.c:1646 */ 4932 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4933 #line 4934 "Parser/parser.cc" /* yacc.c:1646 */ 5494 5495 /* Line 1806 of yacc.c */ 5496 #line 597 "parser.yy" 5497 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4934 5498 break; 4935 5499 4936 5500 case 105: 4937 #line 599 "parser.yy" /* yacc.c:1646 */ 4938 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4939 #line 4940 "Parser/parser.cc" /* yacc.c:1646 */ 5501 5502 /* Line 1806 of yacc.c */ 5503 #line 599 "parser.yy" 5504 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 4940 5505 break; 4941 5506 4942 5507 case 106: 4943 #line 604 "parser.yy" /* yacc.c:1646 */ 5508 5509 /* Line 1806 of yacc.c */ 5510 #line 604 "parser.yy" 4944 5511 { (yyval.en) = nullptr; } 4945 #line 4946 "Parser/parser.cc" /* yacc.c:1646 */4946 5512 break; 4947 5513 4948 5514 case 108: 4949 #line 609 "parser.yy" /* yacc.c:1646 */ 5515 5516 /* Line 1806 of yacc.c */ 5517 #line 609 "parser.yy" 4950 5518 { (yyval.op) = OperKinds::Assign; } 4951 #line 4952 "Parser/parser.cc" /* yacc.c:1646 */4952 5519 break; 4953 5520 4954 5521 case 109: 4955 #line 610 "parser.yy" /* yacc.c:1646 */ 5522 5523 /* Line 1806 of yacc.c */ 5524 #line 610 "parser.yy" 4956 5525 { (yyval.op) = OperKinds::AtAssn; } 4957 #line 4958 "Parser/parser.cc" /* yacc.c:1646 */4958 5526 break; 4959 5527 4960 5528 case 110: 4961 #line 611 "parser.yy" /* yacc.c:1646 */ 5529 5530 /* Line 1806 of yacc.c */ 5531 #line 611 "parser.yy" 4962 5532 { (yyval.op) = OperKinds::MulAssn; } 4963 #line 4964 "Parser/parser.cc" /* yacc.c:1646 */4964 5533 break; 4965 5534 4966 5535 case 111: 4967 #line 612 "parser.yy" /* yacc.c:1646 */ 5536 5537 /* Line 1806 of yacc.c */ 5538 #line 612 "parser.yy" 4968 5539 { (yyval.op) = OperKinds::DivAssn; } 4969 #line 4970 "Parser/parser.cc" /* yacc.c:1646 */4970 5540 break; 4971 5541 4972 5542 case 112: 4973 #line 613 "parser.yy" /* yacc.c:1646 */ 5543 5544 /* Line 1806 of yacc.c */ 5545 #line 613 "parser.yy" 4974 5546 { (yyval.op) = OperKinds::ModAssn; } 4975 #line 4976 "Parser/parser.cc" /* yacc.c:1646 */4976 5547 break; 4977 5548 4978 5549 case 113: 4979 #line 614 "parser.yy" /* yacc.c:1646 */ 5550 5551 /* Line 1806 of yacc.c */ 5552 #line 614 "parser.yy" 4980 5553 { (yyval.op) = OperKinds::PlusAssn; } 4981 #line 4982 "Parser/parser.cc" /* yacc.c:1646 */4982 5554 break; 4983 5555 4984 5556 case 114: 4985 #line 615 "parser.yy" /* yacc.c:1646 */ 5557 5558 /* Line 1806 of yacc.c */ 5559 #line 615 "parser.yy" 4986 5560 { (yyval.op) = OperKinds::MinusAssn; } 4987 #line 4988 "Parser/parser.cc" /* yacc.c:1646 */4988 5561 break; 4989 5562 4990 5563 case 115: 4991 #line 616 "parser.yy" /* yacc.c:1646 */ 5564 5565 /* Line 1806 of yacc.c */ 5566 #line 616 "parser.yy" 4992 5567 { (yyval.op) = OperKinds::LSAssn; } 4993 #line 4994 "Parser/parser.cc" /* yacc.c:1646 */4994 5568 break; 4995 5569 4996 5570 case 116: 4997 #line 617 "parser.yy" /* yacc.c:1646 */ 5571 5572 /* Line 1806 of yacc.c */ 5573 #line 617 "parser.yy" 4998 5574 { (yyval.op) = OperKinds::RSAssn; } 4999 #line 5000 "Parser/parser.cc" /* yacc.c:1646 */5000 5575 break; 5001 5576 5002 5577 case 117: 5003 #line 618 "parser.yy" /* yacc.c:1646 */ 5578 5579 /* Line 1806 of yacc.c */ 5580 #line 618 "parser.yy" 5004 5581 { (yyval.op) = OperKinds::AndAssn; } 5005 #line 5006 "Parser/parser.cc" /* yacc.c:1646 */5006 5582 break; 5007 5583 5008 5584 case 118: 5009 #line 619 "parser.yy" /* yacc.c:1646 */ 5585 5586 /* Line 1806 of yacc.c */ 5587 #line 619 "parser.yy" 5010 5588 { (yyval.op) = OperKinds::ERAssn; } 5011 #line 5012 "Parser/parser.cc" /* yacc.c:1646 */5012 5589 break; 5013 5590 5014 5591 case 119: 5015 #line 620 "parser.yy" /* yacc.c:1646 */ 5592 5593 /* Line 1806 of yacc.c */ 5594 #line 620 "parser.yy" 5016 5595 { (yyval.op) = OperKinds::OrAssn; } 5017 #line 5018 "Parser/parser.cc" /* yacc.c:1646 */5018 5596 break; 5019 5597 5020 5598 case 120: 5021 #line 627 "parser.yy" /* yacc.c:1646 */ 5599 5600 /* Line 1806 of yacc.c */ 5601 #line 627 "parser.yy" 5022 5602 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5023 #line 5024 "Parser/parser.cc" /* yacc.c:1646 */5024 5603 break; 5025 5604 5026 5605 case 121: 5027 #line 629 "parser.yy" /* yacc.c:1646 */ 5028 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5029 #line 5030 "Parser/parser.cc" /* yacc.c:1646 */ 5606 5607 /* Line 1806 of yacc.c */ 5608 #line 629 "parser.yy" 5609 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5030 5610 break; 5031 5611 5032 5612 case 122: 5033 #line 631 "parser.yy" /* yacc.c:1646 */ 5034 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5035 #line 5036 "Parser/parser.cc" /* yacc.c:1646 */ 5613 5614 /* Line 1806 of yacc.c */ 5615 #line 631 "parser.yy" 5616 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5036 5617 break; 5037 5618 5038 5619 case 123: 5039 #line 633 "parser.yy" /* yacc.c:1646 */ 5040 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5041 #line 5042 "Parser/parser.cc" /* yacc.c:1646 */ 5620 5621 /* Line 1806 of yacc.c */ 5622 #line 633 "parser.yy" 5623 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5042 5624 break; 5043 5625 5044 5626 case 125: 5045 #line 639 "parser.yy" /* yacc.c:1646 */ 5046 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5047 #line 5048 "Parser/parser.cc" /* yacc.c:1646 */ 5627 5628 /* Line 1806 of yacc.c */ 5629 #line 639 "parser.yy" 5630 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5048 5631 break; 5049 5632 5050 5633 case 127: 5051 #line 645 "parser.yy" /* yacc.c:1646 */ 5052 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5053 #line 5054 "Parser/parser.cc" /* yacc.c:1646 */ 5634 5635 /* Line 1806 of yacc.c */ 5636 #line 645 "parser.yy" 5637 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5054 5638 break; 5055 5639 5056 5640 case 128: 5057 #line 650 "parser.yy" /* yacc.c:1646 */ 5641 5642 /* Line 1806 of yacc.c */ 5643 #line 650 "parser.yy" 5058 5644 { (yyval.en) = 0; } 5059 #line 5060 "Parser/parser.cc" /* yacc.c:1646 */5060 5645 break; 5061 5646 5062 5647 case 132: 5063 #line 659 "parser.yy" /* yacc.c:1646 */ 5064 { (yyval.sn) = (yyvsp[0].sn); } 5065 #line 5066 "Parser/parser.cc" /* yacc.c:1646 */ 5648 5649 /* Line 1806 of yacc.c */ 5650 #line 659 "parser.yy" 5651 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5066 5652 break; 5067 5653 5068 5654 case 138: 5069 #line 666 "parser.yy" /* yacc.c:1646 */ 5655 5656 /* Line 1806 of yacc.c */ 5657 #line 666 "parser.yy" 5070 5658 { 5071 5659 Token fn; 5072 5660 fn.str = new std::string( "^?{}" ); // location undefined 5073 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ -4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );5661 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) ); 5074 5662 } 5075 #line 5076 "Parser/parser.cc" /* yacc.c:1646 */5076 5663 break; 5077 5664 5078 5665 case 139: 5079 #line 676 "parser.yy" /* yacc.c:1646 */ 5666 5667 /* Line 1806 of yacc.c */ 5668 #line 676 "parser.yy" 5080 5669 { 5081 (yyval.sn) = (yyvsp[ 0].sn)->add_label( (yyvsp[-3].tok) );5670 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5082 5671 } 5083 #line 5084 "Parser/parser.cc" /* yacc.c:1646 */5084 5672 break; 5085 5673 5086 5674 case 140: 5087 #line 683 "parser.yy" /* yacc.c:1646 */ 5675 5676 /* Line 1806 of yacc.c */ 5677 #line 683 "parser.yy" 5088 5678 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5089 #line 5090 "Parser/parser.cc" /* yacc.c:1646 */5090 5679 break; 5091 5680 5092 5681 case 141: 5093 #line 690 "parser.yy" /* yacc.c:1646 */ 5094 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5095 #line 5096 "Parser/parser.cc" /* yacc.c:1646 */ 5682 5683 /* Line 1806 of yacc.c */ 5684 #line 690 "parser.yy" 5685 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5096 5686 break; 5097 5687 5098 5688 case 143: 5099 #line 696 "parser.yy" /* yacc.c:1646 */ 5100 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5101 #line 5102 "Parser/parser.cc" /* yacc.c:1646 */ 5689 5690 /* Line 1806 of yacc.c */ 5691 #line 696 "parser.yy" 5692 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5102 5693 break; 5103 5694 5104 5695 case 144: 5105 #line 701 "parser.yy" /* yacc.c:1646 */ 5106 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5107 #line 5108 "Parser/parser.cc" /* yacc.c:1646 */ 5696 5697 /* Line 1806 of yacc.c */ 5698 #line 701 "parser.yy" 5699 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5108 5700 break; 5109 5701 5110 5702 case 145: 5111 #line 703 "parser.yy" /* yacc.c:1646 */ 5703 5704 /* Line 1806 of yacc.c */ 5705 #line 703 "parser.yy" 5112 5706 { // mark all fields in list 5113 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5707 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5114 5708 iter->set_extension( true ); 5115 (yyval.sn) = new StatementNode( (yyvsp[ 0].decl) );5709 (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); 5116 5710 } 5117 #line 5118 "Parser/parser.cc" /* yacc.c:1646 */5118 5711 break; 5119 5712 5120 5713 case 146: 5121 #line 709 "parser.yy" /* yacc.c:1646 */ 5122 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5123 #line 5124 "Parser/parser.cc" /* yacc.c:1646 */ 5714 5715 /* Line 1806 of yacc.c */ 5716 #line 709 "parser.yy" 5717 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5124 5718 break; 5125 5719 5126 5720 case 149: 5127 #line 716 "parser.yy" /* yacc.c:1646 */ 5128 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5129 #line 5130 "Parser/parser.cc" /* yacc.c:1646 */ 5721 5722 /* Line 1806 of yacc.c */ 5723 #line 716 "parser.yy" 5724 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5130 5725 break; 5131 5726 5132 5727 case 150: 5133 #line 721 "parser.yy" /* yacc.c:1646 */ 5134 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5135 #line 5136 "Parser/parser.cc" /* yacc.c:1646 */ 5728 5729 /* Line 1806 of yacc.c */ 5730 #line 721 "parser.yy" 5731 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5136 5732 break; 5137 5733 5138 5734 case 151: 5139 #line 727 "parser.yy" /* yacc.c:1646 */ 5140 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5141 #line 5142 "Parser/parser.cc" /* yacc.c:1646 */ 5735 5736 /* Line 1806 of yacc.c */ 5737 #line 727 "parser.yy" 5738 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5142 5739 break; 5143 5740 5144 5741 case 152: 5145 #line 729 "parser.yy" /* yacc.c:1646 */ 5146 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5147 #line 5148 "Parser/parser.cc" /* yacc.c:1646 */ 5742 5743 /* Line 1806 of yacc.c */ 5744 #line 729 "parser.yy" 5745 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5148 5746 break; 5149 5747 5150 5748 case 153: 5151 #line 731 "parser.yy" /* yacc.c:1646 */ 5152 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5153 #line 5154 "Parser/parser.cc" /* yacc.c:1646 */ 5749 5750 /* Line 1806 of yacc.c */ 5751 #line 731 "parser.yy" 5752 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5154 5753 break; 5155 5754 5156 5755 case 154: 5157 #line 733 "parser.yy" /* yacc.c:1646 */ 5756 5757 /* Line 1806 of yacc.c */ 5758 #line 733 "parser.yy" 5158 5759 { 5159 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5760 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5160 5761 // The semantics of the declaration list is changed to include associated initialization, which is performed 5161 5762 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5163 5764 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5164 5765 // statement. 5165 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5766 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5166 5767 } 5167 #line 5168 "Parser/parser.cc" /* yacc.c:1646 */5168 5768 break; 5169 5769 5170 5770 case 155: 5171 #line 743 "parser.yy" /* yacc.c:1646 */ 5172 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5173 #line 5174 "Parser/parser.cc" /* yacc.c:1646 */ 5771 5772 /* Line 1806 of yacc.c */ 5773 #line 743 "parser.yy" 5774 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5174 5775 break; 5175 5776 5176 5777 case 156: 5177 #line 745 "parser.yy" /* yacc.c:1646 */ 5778 5779 /* Line 1806 of yacc.c */ 5780 #line 745 "parser.yy" 5178 5781 { 5179 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5180 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5782 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5783 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5181 5784 } 5182 #line 5183 "Parser/parser.cc" /* yacc.c:1646 */5183 5785 break; 5184 5786 5185 5787 case 157: 5186 #line 755 "parser.yy" /* yacc.c:1646 */ 5187 { (yyval.en) = (yyvsp[0].en); } 5188 #line 5189 "Parser/parser.cc" /* yacc.c:1646 */ 5788 5789 /* Line 1806 of yacc.c */ 5790 #line 755 "parser.yy" 5791 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5189 5792 break; 5190 5793 5191 5794 case 158: 5192 #line 757 "parser.yy" /* yacc.c:1646 */ 5193 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5194 #line 5195 "Parser/parser.cc" /* yacc.c:1646 */ 5795 5796 /* Line 1806 of yacc.c */ 5797 #line 757 "parser.yy" 5798 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5195 5799 break; 5196 5800 5197 5801 case 160: 5198 #line 762 "parser.yy" /* yacc.c:1646 */ 5199 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5200 #line 5201 "Parser/parser.cc" /* yacc.c:1646 */ 5802 5803 /* Line 1806 of yacc.c */ 5804 #line 762 "parser.yy" 5805 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5201 5806 break; 5202 5807 5203 5808 case 161: 5204 #line 764 "parser.yy" /* yacc.c:1646 */ 5205 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5206 #line 5207 "Parser/parser.cc" /* yacc.c:1646 */ 5809 5810 /* Line 1806 of yacc.c */ 5811 #line 764 "parser.yy" 5812 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5207 5813 break; 5208 5814 5209 5815 case 162: 5210 #line 768 "parser.yy" /* yacc.c:1646 */ 5211 { (yyval.sn) = (yyvsp[-1].sn); } 5212 #line 5213 "Parser/parser.cc" /* yacc.c:1646 */ 5816 5817 /* Line 1806 of yacc.c */ 5818 #line 768 "parser.yy" 5819 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5213 5820 break; 5214 5821 5215 5822 case 163: 5216 #line 769 "parser.yy" /* yacc.c:1646 */ 5823 5824 /* Line 1806 of yacc.c */ 5825 #line 769 "parser.yy" 5217 5826 { (yyval.sn) = new StatementNode( build_default() ); } 5218 #line 5219 "Parser/parser.cc" /* yacc.c:1646 */5219 5827 break; 5220 5828 5221 5829 case 165: 5222 #line 775 "parser.yy" /* yacc.c:1646 */ 5223 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5224 #line 5225 "Parser/parser.cc" /* yacc.c:1646 */ 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 775 "parser.yy" 5833 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5225 5834 break; 5226 5835 5227 5836 case 166: 5228 #line 779 "parser.yy" /* yacc.c:1646 */ 5229 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5230 #line 5231 "Parser/parser.cc" /* yacc.c:1646 */ 5837 5838 /* Line 1806 of yacc.c */ 5839 #line 779 "parser.yy" 5840 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5231 5841 break; 5232 5842 5233 5843 case 167: 5234 #line 784 "parser.yy" /* yacc.c:1646 */ 5844 5845 /* Line 1806 of yacc.c */ 5846 #line 784 "parser.yy" 5235 5847 { (yyval.sn) = 0; } 5236 #line 5237 "Parser/parser.cc" /* yacc.c:1646 */5237 5848 break; 5238 5849 5239 5850 case 169: 5240 #line 790 "parser.yy" /* yacc.c:1646 */ 5241 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5242 #line 5243 "Parser/parser.cc" /* yacc.c:1646 */ 5851 5852 /* Line 1806 of yacc.c */ 5853 #line 790 "parser.yy" 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5243 5855 break; 5244 5856 5245 5857 case 170: 5246 #line 792 "parser.yy" /* yacc.c:1646 */ 5247 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5248 #line 5249 "Parser/parser.cc" /* yacc.c:1646 */ 5858 5859 /* Line 1806 of yacc.c */ 5860 #line 792 "parser.yy" 5861 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5249 5862 break; 5250 5863 5251 5864 case 171: 5252 #line 797 "parser.yy" /* yacc.c:1646 */ 5865 5866 /* Line 1806 of yacc.c */ 5867 #line 797 "parser.yy" 5253 5868 { (yyval.sn) = 0; } 5254 #line 5255 "Parser/parser.cc" /* yacc.c:1646 */5255 5869 break; 5256 5870 5257 5871 case 173: 5258 #line 803 "parser.yy" /* yacc.c:1646 */ 5259 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5260 #line 5261 "Parser/parser.cc" /* yacc.c:1646 */ 5872 5873 /* Line 1806 of yacc.c */ 5874 #line 803 "parser.yy" 5875 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5261 5876 break; 5262 5877 5263 5878 case 174: 5264 #line 805 "parser.yy" /* yacc.c:1646 */ 5265 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5266 #line 5267 "Parser/parser.cc" /* yacc.c:1646 */ 5879 5880 /* Line 1806 of yacc.c */ 5881 #line 805 "parser.yy" 5882 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5267 5883 break; 5268 5884 5269 5885 case 175: 5270 #line 807 "parser.yy" /* yacc.c:1646 */ 5271 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5272 #line 5273 "Parser/parser.cc" /* yacc.c:1646 */ 5886 5887 /* Line 1806 of yacc.c */ 5888 #line 807 "parser.yy" 5889 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5273 5890 break; 5274 5891 5275 5892 case 176: 5276 #line 809 "parser.yy" /* yacc.c:1646 */ 5277 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5278 #line 5279 "Parser/parser.cc" /* yacc.c:1646 */ 5893 5894 /* Line 1806 of yacc.c */ 5895 #line 809 "parser.yy" 5896 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5279 5897 break; 5280 5898 5281 5899 case 177: 5282 #line 814 "parser.yy" /* yacc.c:1646 */ 5900 5901 /* Line 1806 of yacc.c */ 5902 #line 814 "parser.yy" 5283 5903 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5284 #line 5285 "Parser/parser.cc" /* yacc.c:1646 */5285 5904 break; 5286 5905 5287 5906 case 179: 5288 #line 820 "parser.yy" /* yacc.c:1646 */ 5907 5908 /* Line 1806 of yacc.c */ 5909 #line 820 "parser.yy" 5289 5910 { (yyval.sn) = 0; } 5290 #line 5291 "Parser/parser.cc" /* yacc.c:1646 */5291 5911 break; 5292 5912 5293 5913 case 180: 5294 #line 822 "parser.yy" /* yacc.c:1646 */ 5914 5915 /* Line 1806 of yacc.c */ 5916 #line 822 "parser.yy" 5295 5917 { (yyval.sn) = 0; } 5296 #line 5297 "Parser/parser.cc" /* yacc.c:1646 */5297 5918 break; 5298 5919 5299 5920 case 181: 5300 #line 827 "parser.yy" /* yacc.c:1646 */ 5301 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5302 #line 5303 "Parser/parser.cc" /* yacc.c:1646 */ 5921 5922 /* Line 1806 of yacc.c */ 5923 #line 827 "parser.yy" 5924 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5303 5925 break; 5304 5926 5305 5927 case 182: 5306 #line 829 "parser.yy" /* yacc.c:1646 */ 5307 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5308 #line 5309 "Parser/parser.cc" /* yacc.c:1646 */ 5928 5929 /* Line 1806 of yacc.c */ 5930 #line 829 "parser.yy" 5931 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5309 5932 break; 5310 5933 5311 5934 case 183: 5312 #line 831 "parser.yy" /* yacc.c:1646 */ 5313 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5314 #line 5315 "Parser/parser.cc" /* yacc.c:1646 */ 5935 5936 /* Line 1806 of yacc.c */ 5937 #line 831 "parser.yy" 5938 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5315 5939 break; 5316 5940 5317 5941 case 184: 5318 #line 836 "parser.yy" /* yacc.c:1646 */ 5319 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5320 #line 5321 "Parser/parser.cc" /* yacc.c:1646 */ 5942 5943 /* Line 1806 of yacc.c */ 5944 #line 836 "parser.yy" 5945 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5321 5946 break; 5322 5947 5323 5948 case 185: 5324 #line 838 "parser.yy" /* yacc.c:1646 */ 5325 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5326 #line 5327 "Parser/parser.cc" /* yacc.c:1646 */ 5949 5950 /* Line 1806 of yacc.c */ 5951 #line 838 "parser.yy" 5952 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5327 5953 break; 5328 5954 5329 5955 case 186: 5330 #line 843 "parser.yy" /* yacc.c:1646 */ 5331 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5332 #line 5333 "Parser/parser.cc" /* yacc.c:1646 */ 5956 5957 /* Line 1806 of yacc.c */ 5958 #line 843 "parser.yy" 5959 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5333 5960 break; 5334 5961 5335 5962 case 187: 5336 #line 847 "parser.yy" /* yacc.c:1646 */ 5337 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5338 #line 5339 "Parser/parser.cc" /* yacc.c:1646 */ 5963 5964 /* Line 1806 of yacc.c */ 5965 #line 847 "parser.yy" 5966 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5339 5967 break; 5340 5968 5341 5969 case 188: 5342 #line 850 "parser.yy" /* yacc.c:1646 */ 5970 5971 /* Line 1806 of yacc.c */ 5972 #line 850 "parser.yy" 5343 5973 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5344 #line 5345 "Parser/parser.cc" /* yacc.c:1646 */5345 5974 break; 5346 5975 5347 5976 case 189: 5348 #line 854 "parser.yy" /* yacc.c:1646 */ 5349 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5350 #line 5351 "Parser/parser.cc" /* yacc.c:1646 */ 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 854 "parser.yy" 5980 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5351 5981 break; 5352 5982 5353 5983 case 190: 5354 #line 857 "parser.yy" /* yacc.c:1646 */ 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 857 "parser.yy" 5355 5987 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5356 #line 5357 "Parser/parser.cc" /* yacc.c:1646 */5357 5988 break; 5358 5989 5359 5990 case 191: 5360 #line 861 "parser.yy" /* yacc.c:1646 */ 5361 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5362 #line 5363 "Parser/parser.cc" /* yacc.c:1646 */ 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 861 "parser.yy" 5994 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5363 5995 break; 5364 5996 5365 5997 case 192: 5366 #line 863 "parser.yy" /* yacc.c:1646 */ 5367 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5368 #line 5369 "Parser/parser.cc" /* yacc.c:1646 */ 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 863 "parser.yy" 6001 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5369 6002 break; 5370 6003 5371 6004 case 193: 5372 #line 865 "parser.yy" /* yacc.c:1646 */ 5373 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5374 #line 5375 "Parser/parser.cc" /* yacc.c:1646 */ 6005 6006 /* Line 1806 of yacc.c */ 6007 #line 865 "parser.yy" 6008 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5375 6009 break; 5376 6010 5377 6011 case 194: 5378 #line 867 "parser.yy" /* yacc.c:1646 */ 5379 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5380 #line 5381 "Parser/parser.cc" /* yacc.c:1646 */ 6012 6013 /* Line 1806 of yacc.c */ 6014 #line 867 "parser.yy" 6015 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5381 6016 break; 5382 6017 5383 6018 case 195: 5384 #line 869 "parser.yy" /* yacc.c:1646 */ 5385 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5386 #line 5387 "Parser/parser.cc" /* yacc.c:1646 */ 6019 6020 /* Line 1806 of yacc.c */ 6021 #line 869 "parser.yy" 6022 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5387 6023 break; 5388 6024 5389 6025 case 196: 5390 #line 874 "parser.yy" /* yacc.c:1646 */ 5391 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5392 #line 5393 "Parser/parser.cc" /* yacc.c:1646 */ 6026 6027 /* Line 1806 of yacc.c */ 6028 #line 874 "parser.yy" 6029 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5393 6030 break; 5394 6031 5395 6032 case 197: 5396 #line 876 "parser.yy" /* yacc.c:1646 */ 5397 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5398 #line 5399 "Parser/parser.cc" /* yacc.c:1646 */ 6033 6034 /* Line 1806 of yacc.c */ 6035 #line 876 "parser.yy" 6036 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5399 6037 break; 5400 6038 5401 6039 case 198: 5402 #line 878 "parser.yy" /* yacc.c:1646 */ 5403 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5404 #line 5405 "Parser/parser.cc" /* yacc.c:1646 */ 6040 6041 /* Line 1806 of yacc.c */ 6042 #line 878 "parser.yy" 6043 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5405 6044 break; 5406 6045 5407 6046 case 200: 5408 #line 885 "parser.yy" /* yacc.c:1646 */ 5409 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5410 #line 5411 "Parser/parser.cc" /* yacc.c:1646 */ 6047 6048 /* Line 1806 of yacc.c */ 6049 #line 885 "parser.yy" 6050 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5411 6051 break; 5412 6052 5413 6053 case 201: 5414 #line 887 "parser.yy" /* yacc.c:1646 */ 5415 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5416 #line 5417 "Parser/parser.cc" /* yacc.c:1646 */ 6054 6055 /* Line 1806 of yacc.c */ 6056 #line 887 "parser.yy" 6057 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5417 6058 break; 5418 6059 5419 6060 case 202: 5420 #line 889 "parser.yy" /* yacc.c:1646 */ 5421 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5422 #line 5423 "Parser/parser.cc" /* yacc.c:1646 */ 6061 6062 /* Line 1806 of yacc.c */ 6063 #line 889 "parser.yy" 6064 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5423 6065 break; 5424 6066 5425 6067 case 203: 5426 #line 891 "parser.yy" /* yacc.c:1646 */ 5427 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5428 #line 5429 "Parser/parser.cc" /* yacc.c:1646 */ 6068 6069 /* Line 1806 of yacc.c */ 6070 #line 891 "parser.yy" 6071 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5429 6072 break; 5430 6073 5431 6074 case 204: 5432 #line 896 "parser.yy" /* yacc.c:1646 */ 5433 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5434 #line 5435 "Parser/parser.cc" /* yacc.c:1646 */ 6075 6076 /* Line 1806 of yacc.c */ 6077 #line 896 "parser.yy" 6078 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5435 6079 break; 5436 6080 5437 6081 case 205: 5438 #line 898 "parser.yy" /* yacc.c:1646 */ 5439 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5440 #line 5441 "Parser/parser.cc" /* yacc.c:1646 */ 6082 6083 /* Line 1806 of yacc.c */ 6084 #line 898 "parser.yy" 6085 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5441 6086 break; 5442 6087 5443 6088 case 206: 5444 #line 900 "parser.yy" /* yacc.c:1646 */ 5445 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5446 #line 5447 "Parser/parser.cc" /* yacc.c:1646 */ 6089 6090 /* Line 1806 of yacc.c */ 6091 #line 900 "parser.yy" 6092 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5447 6093 break; 5448 6094 5449 6095 case 207: 5450 #line 902 "parser.yy" /* yacc.c:1646 */ 5451 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5452 #line 5453 "Parser/parser.cc" /* yacc.c:1646 */ 6096 6097 /* Line 1806 of yacc.c */ 6098 #line 902 "parser.yy" 6099 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5453 6100 break; 5454 6101 5455 6102 case 208: 5456 #line 907 "parser.yy" /* yacc.c:1646 */ 6103 6104 /* Line 1806 of yacc.c */ 6105 #line 907 "parser.yy" 5457 6106 { 5458 (yyval.sn) = new StatementNode( build_finally( (yyvsp[ 0].sn) ) );6107 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5459 6108 } 5460 #line 5461 "Parser/parser.cc" /* yacc.c:1646 */5461 6109 break; 5462 6110 5463 6111 case 210: 5464 #line 920 "parser.yy" /* yacc.c:1646 */ 6112 6113 /* Line 1806 of yacc.c */ 6114 #line 920 "parser.yy" 5465 6115 { 5466 6116 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5467 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );6117 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 5468 6118 } 5469 #line 5470 "Parser/parser.cc" /* yacc.c:1646 */5470 6119 break; 5471 6120 5472 6121 case 211: 5473 #line 925 "parser.yy" /* yacc.c:1646 */ 5474 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5475 #line 5476 "Parser/parser.cc" /* yacc.c:1646 */ 6122 6123 /* Line 1806 of yacc.c */ 6124 #line 925 "parser.yy" 6125 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5476 6126 break; 5477 6127 5478 6128 case 212: 5479 #line 927 "parser.yy" /* yacc.c:1646 */ 6129 6130 /* Line 1806 of yacc.c */ 6131 #line 927 "parser.yy" 5480 6132 { 5481 6133 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5482 (yyval.decl) = (yyvsp[ -1].decl)->addName( (yyvsp[0].tok) );6134 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); 5483 6135 } 5484 #line 5485 "Parser/parser.cc" /* yacc.c:1646 */5485 6136 break; 5486 6137 5487 6138 case 214: 5488 #line 936 "parser.yy" /* yacc.c:1646 */ 5489 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5490 #line 5491 "Parser/parser.cc" /* yacc.c:1646 */ 6139 6140 /* Line 1806 of yacc.c */ 6141 #line 936 "parser.yy" 6142 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5491 6143 break; 5492 6144 5493 6145 case 215: 5494 #line 938 "parser.yy" /* yacc.c:1646 */ 5495 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5496 #line 5497 "Parser/parser.cc" /* yacc.c:1646 */ 6146 6147 /* Line 1806 of yacc.c */ 6148 #line 938 "parser.yy" 6149 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5497 6150 break; 5498 6151 5499 6152 case 216: 5500 #line 940 "parser.yy" /* yacc.c:1646 */ 5501 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5502 #line 5503 "Parser/parser.cc" /* yacc.c:1646 */ 6153 6154 /* Line 1806 of yacc.c */ 6155 #line 940 "parser.yy" 6156 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5503 6157 break; 5504 6158 5505 6159 case 217: 5506 #line 942 "parser.yy" /* yacc.c:1646 */ 5507 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5508 #line 5509 "Parser/parser.cc" /* yacc.c:1646 */ 6160 6161 /* Line 1806 of yacc.c */ 6162 #line 942 "parser.yy" 6163 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 5509 6164 break; 5510 6165 5511 6166 case 218: 5512 #line 944 "parser.yy" /* yacc.c:1646 */ 5513 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5514 #line 5515 "Parser/parser.cc" /* yacc.c:1646 */ 6167 6168 /* Line 1806 of yacc.c */ 6169 #line 944 "parser.yy" 6170 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 5515 6171 break; 5516 6172 5517 6173 case 219: 5518 #line 949 "parser.yy" /* yacc.c:1646 */ 6174 6175 /* Line 1806 of yacc.c */ 6176 #line 949 "parser.yy" 5519 6177 { (yyval.flag) = false; } 5520 #line 5521 "Parser/parser.cc" /* yacc.c:1646 */5521 6178 break; 5522 6179 5523 6180 case 220: 5524 #line 951 "parser.yy" /* yacc.c:1646 */ 6181 6182 /* Line 1806 of yacc.c */ 6183 #line 951 "parser.yy" 5525 6184 { (yyval.flag) = true; } 5526 #line 5527 "Parser/parser.cc" /* yacc.c:1646 */5527 6185 break; 5528 6186 5529 6187 case 221: 5530 #line 956 "parser.yy" /* yacc.c:1646 */ 6188 6189 /* Line 1806 of yacc.c */ 6190 #line 956 "parser.yy" 5531 6191 { (yyval.en) = 0; } 5532 #line 5533 "Parser/parser.cc" /* yacc.c:1646 */5533 6192 break; 5534 6193 5535 6194 case 224: 5536 #line 963 "parser.yy" /* yacc.c:1646 */ 5537 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5538 #line 5539 "Parser/parser.cc" /* yacc.c:1646 */ 6195 6196 /* Line 1806 of yacc.c */ 6197 #line 963 "parser.yy" 6198 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5539 6199 break; 5540 6200 5541 6201 case 225: 5542 #line 968 "parser.yy" /* yacc.c:1646 */ 5543 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5544 #line 5545 "Parser/parser.cc" /* yacc.c:1646 */ 6202 6203 /* Line 1806 of yacc.c */ 6204 #line 968 "parser.yy" 6205 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5545 6206 break; 5546 6207 5547 6208 case 226: 5548 #line 970 "parser.yy" /* yacc.c:1646 */ 5549 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5550 #line 5551 "Parser/parser.cc" /* yacc.c:1646 */ 6209 6210 /* Line 1806 of yacc.c */ 6211 #line 970 "parser.yy" 6212 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5551 6213 break; 5552 6214 5553 6215 case 227: 5554 #line 975 "parser.yy" /* yacc.c:1646 */ 6216 6217 /* Line 1806 of yacc.c */ 6218 #line 975 "parser.yy" 5555 6219 { (yyval.en) = 0; } 5556 #line 5557 "Parser/parser.cc" /* yacc.c:1646 */5557 6220 break; 5558 6221 5559 6222 case 228: 5560 #line 977 "parser.yy" /* yacc.c:1646 */ 5561 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5562 #line 5563 "Parser/parser.cc" /* yacc.c:1646 */ 6223 6224 /* Line 1806 of yacc.c */ 6225 #line 977 "parser.yy" 6226 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5563 6227 break; 5564 6228 5565 6229 case 229: 5566 #line 979 "parser.yy" /* yacc.c:1646 */ 5567 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5568 #line 5569 "Parser/parser.cc" /* yacc.c:1646 */ 6230 6231 /* Line 1806 of yacc.c */ 6232 #line 979 "parser.yy" 6233 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5569 6234 break; 5570 6235 5571 6236 case 230: 5572 #line 984 "parser.yy" /* yacc.c:1646 */ 6237 6238 /* Line 1806 of yacc.c */ 6239 #line 984 "parser.yy" 5573 6240 { 5574 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[ 0].tok) );5575 delete (yyvsp[ 0].tok); // allocated by lexer6241 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); 6242 delete (yyvsp[(1) - (1)].tok); // allocated by lexer 5576 6243 } 5577 #line 5578 "Parser/parser.cc" /* yacc.c:1646 */5578 6244 break; 5579 6245 5580 6246 case 231: 5581 #line 989 "parser.yy" /* yacc.c:1646 */ 6247 6248 /* Line 1806 of yacc.c */ 6249 #line 989 "parser.yy" 5582 6250 { 5583 (yyval.label) = (yyvsp[ -2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );5584 delete (yyvsp[ 0].tok); // allocated by lexer6251 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); 6252 delete (yyvsp[(3) - (3)].tok); // allocated by lexer 5585 6253 } 5586 #line 5587 "Parser/parser.cc" /* yacc.c:1646 */5587 6254 break; 5588 6255 5589 6256 case 232: 5590 #line 999 "parser.yy" /* yacc.c:1646 */ 6257 6258 /* Line 1806 of yacc.c */ 6259 #line 999 "parser.yy" 5591 6260 { (yyval.decl) = 0; } 5592 #line 5593 "Parser/parser.cc" /* yacc.c:1646 */5593 6261 break; 5594 6262 5595 6263 case 235: 5596 #line 1006 "parser.yy" /* yacc.c:1646 */ 5597 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5598 #line 5599 "Parser/parser.cc" /* yacc.c:1646 */ 6264 6265 /* Line 1806 of yacc.c */ 6266 #line 1006 "parser.yy" 6267 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5599 6268 break; 5600 6269 5601 6270 case 236: 5602 #line 1011 "parser.yy" /* yacc.c:1646 */ 6271 6272 /* Line 1806 of yacc.c */ 6273 #line 1011 "parser.yy" 5603 6274 { (yyval.decl) = 0; } 5604 #line 5605 "Parser/parser.cc" /* yacc.c:1646 */5605 6275 break; 5606 6276 5607 6277 case 239: 5608 #line 1018 "parser.yy" /* yacc.c:1646 */ 5609 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5610 #line 5611 "Parser/parser.cc" /* yacc.c:1646 */ 6278 6279 /* Line 1806 of yacc.c */ 6280 #line 1018 "parser.yy" 6281 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5611 6282 break; 5612 6283 5613 6284 case 244: 5614 #line 1032 "parser.yy" /* yacc.c:1646 */ 6285 6286 /* Line 1806 of yacc.c */ 6287 #line 1032 "parser.yy" 5615 6288 {} 5616 #line 5617 "Parser/parser.cc" /* yacc.c:1646 */5617 6289 break; 5618 6290 5619 6291 case 245: 5620 #line 1033 "parser.yy" /* yacc.c:1646 */ 6292 6293 /* Line 1806 of yacc.c */ 6294 #line 1033 "parser.yy" 5621 6295 {} 5622 #line 5623 "Parser/parser.cc" /* yacc.c:1646 */5623 6296 break; 5624 6297 5625 6298 case 253: 5626 #line 1062 "parser.yy" /* yacc.c:1646 */ 6299 6300 /* Line 1806 of yacc.c */ 6301 #line 1062 "parser.yy" 5627 6302 { 5628 6303 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5629 (yyval.decl) = (yyvsp[ -1].decl)->addInitializer( (yyvsp[0].in) );6304 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) ); 5630 6305 } 5631 #line 5632 "Parser/parser.cc" /* yacc.c:1646 */5632 6306 break; 5633 6307 5634 6308 case 254: 5635 #line 1069 "parser.yy" /* yacc.c:1646 */ 6309 6310 /* Line 1806 of yacc.c */ 6311 #line 1069 "parser.yy" 5636 6312 { 5637 6313 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5638 (yyval.decl) = (yyvsp[ -1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;6314 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );; 5639 6315 } 5640 #line 5641 "Parser/parser.cc" /* yacc.c:1646 */5641 6316 break; 5642 6317 5643 6318 case 255: 5644 #line 1074 "parser.yy" /* yacc.c:1646 */ 6319 6320 /* Line 1806 of yacc.c */ 6321 #line 1074 "parser.yy" 5645 6322 { 5646 typedefTable.addToEnclosingScope( *(yyvsp[ -1].tok), TypedefTable::ID );5647 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );6323 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6324 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5648 6325 } 5649 #line 5650 "Parser/parser.cc" /* yacc.c:1646 */5650 6326 break; 5651 6327 5652 6328 case 256: 5653 #line 1084 "parser.yy" /* yacc.c:1646 */ 6329 6330 /* Line 1806 of yacc.c */ 6331 #line 1084 "parser.yy" 5654 6332 { 5655 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5656 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6333 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6334 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5657 6335 } 5658 #line 5659 "Parser/parser.cc" /* yacc.c:1646 */5659 6336 break; 5660 6337 5661 6338 case 257: 5662 #line 1089 "parser.yy" /* yacc.c:1646 */ 6339 6340 /* Line 1806 of yacc.c */ 6341 #line 1089 "parser.yy" 5663 6342 { 5664 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5665 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6343 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6344 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5666 6345 } 5667 #line 5668 "Parser/parser.cc" /* yacc.c:1646 */5668 6346 break; 5669 6347 5670 6348 case 258: 5671 #line 1094 "parser.yy" /* yacc.c:1646 */ 6349 6350 /* Line 1806 of yacc.c */ 6351 #line 1094 "parser.yy" 5672 6352 { 5673 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5674 (yyval.decl) = (yyvsp[ -2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );6353 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6354 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5675 6355 } 5676 #line 5677 "Parser/parser.cc" /* yacc.c:1646 */5677 6356 break; 5678 6357 5679 6358 case 259: 5680 #line 1102 "parser.yy" /* yacc.c:1646 */ 6359 6360 /* Line 1806 of yacc.c */ 6361 #line 1102 "parser.yy" 5681 6362 { 5682 6363 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5683 (yyval.decl) = (yyvsp[ 0].decl);6364 (yyval.decl) = (yyvsp[(1) - (1)].decl); 5684 6365 } 5685 #line 5686 "Parser/parser.cc" /* yacc.c:1646 */5686 6366 break; 5687 6367 5688 6368 case 260: 5689 #line 1107 "parser.yy" /* yacc.c:1646 */ 6369 6370 /* Line 1806 of yacc.c */ 6371 #line 1107 "parser.yy" 5690 6372 { 5691 6373 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5692 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6374 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5693 6375 } 5694 #line 5695 "Parser/parser.cc" /* yacc.c:1646 */5695 6376 break; 5696 6377 5697 6378 case 261: 5698 #line 1112 "parser.yy" /* yacc.c:1646 */ 6379 6380 /* Line 1806 of yacc.c */ 6381 #line 1112 "parser.yy" 5699 6382 { 5700 6383 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5701 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6384 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5702 6385 } 5703 #line 5704 "Parser/parser.cc" /* yacc.c:1646 */5704 6386 break; 5705 6387 5706 6388 case 262: 5707 #line 1117 "parser.yy" /* yacc.c:1646 */ 6389 6390 /* Line 1806 of yacc.c */ 6391 #line 1117 "parser.yy" 5708 6392 { 5709 6393 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5710 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );6394 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) ); 5711 6395 } 5712 #line 5713 "Parser/parser.cc" /* yacc.c:1646 */5713 6396 break; 5714 6397 5715 6398 case 263: 5716 #line 1122 "parser.yy" /* yacc.c:1646 */ 6399 6400 /* Line 1806 of yacc.c */ 6401 #line 1122 "parser.yy" 5717 6402 { 5718 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::ID );5719 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6403 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6404 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5720 6405 } 5721 #line 5722 "Parser/parser.cc" /* yacc.c:1646 */5722 6406 break; 5723 6407 5724 6408 case 264: 5725 #line 1130 "parser.yy" /* yacc.c:1646 */ 6409 6410 /* Line 1806 of yacc.c */ 6411 #line 1130 "parser.yy" 5726 6412 { 5727 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true );6413 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5728 6414 } 5729 #line 5730 "Parser/parser.cc" /* yacc.c:1646 */5730 6415 break; 5731 6416 5732 6417 case 265: 5733 #line 1153 "parser.yy" /* yacc.c:1646 */ 6418 6419 /* Line 1806 of yacc.c */ 6420 #line 1153 "parser.yy" 5734 6421 { 5735 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6422 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5736 6423 } 5737 #line 5738 "Parser/parser.cc" /* yacc.c:1646 */5738 6424 break; 5739 6425 5740 6426 case 266: 5741 #line 1157 "parser.yy" /* yacc.c:1646 */ 6427 6428 /* Line 1806 of yacc.c */ 6429 #line 1157 "parser.yy" 5742 6430 { 5743 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6431 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5744 6432 } 5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */5746 6433 break; 5747 6434 5748 6435 case 267: 5749 #line 1164 "parser.yy" /* yacc.c:1646 */ 5750 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646 */ 6436 6437 /* Line 1806 of yacc.c */ 6438 #line 1164 "parser.yy" 6439 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5752 6440 break; 5753 6441 5754 6442 case 268: 5755 #line 1168 "parser.yy" /* yacc.c:1646 */ 5756 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5757 #line 5758 "Parser/parser.cc" /* yacc.c:1646 */ 6443 6444 /* Line 1806 of yacc.c */ 6445 #line 1168 "parser.yy" 6446 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5758 6447 break; 5759 6448 5760 6449 case 269: 5761 #line 1173 "parser.yy" /* yacc.c:1646 */ 6450 6451 /* Line 1806 of yacc.c */ 6452 #line 1173 "parser.yy" 5762 6453 { 5763 6454 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5764 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6455 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5765 6456 } 5766 #line 5767 "Parser/parser.cc" /* yacc.c:1646 */5767 6457 break; 5768 6458 5769 6459 case 270: 5770 #line 1178 "parser.yy" /* yacc.c:1646 */ 6460 6461 /* Line 1806 of yacc.c */ 6462 #line 1178 "parser.yy" 5771 6463 { 5772 6464 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5773 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6465 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5774 6466 } 5775 #line 5776 "Parser/parser.cc" /* yacc.c:1646 */5776 6467 break; 5777 6468 5778 6469 case 271: 5779 #line 1183 "parser.yy" /* yacc.c:1646 */ 6470 6471 /* Line 1806 of yacc.c */ 6472 #line 1183 "parser.yy" 5780 6473 { 5781 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );5782 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6474 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6475 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5783 6476 } 5784 #line 5785 "Parser/parser.cc" /* yacc.c:1646 */5785 6477 break; 5786 6478 5787 6479 case 272: 5788 #line 1194 "parser.yy" /* yacc.c:1646 */ 6480 6481 /* Line 1806 of yacc.c */ 6482 #line 1194 "parser.yy" 5789 6483 { 5790 6484 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5791 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();6485 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef(); 5792 6486 } 5793 #line 5794 "Parser/parser.cc" /* yacc.c:1646 */5794 6487 break; 5795 6488 5796 6489 case 273: 5797 #line 1199 "parser.yy" /* yacc.c:1646 */ 6490 6491 /* Line 1806 of yacc.c */ 6492 #line 1199 "parser.yy" 5798 6493 { 5799 6494 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5800 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );6495 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() ); 5801 6496 } 5802 #line 5803 "Parser/parser.cc" /* yacc.c:1646 */5803 6497 break; 5804 6498 5805 6499 case 274: 5806 #line 1204 "parser.yy" /* yacc.c:1646 */ 6500 6501 /* Line 1806 of yacc.c */ 6502 #line 1204 "parser.yy" 5807 6503 { 5808 6504 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5809 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();6505 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef(); 5810 6506 } 5811 #line 5812 "Parser/parser.cc" /* yacc.c:1646 */5812 6507 break; 5813 6508 5814 6509 case 275: 5815 #line 1209 "parser.yy" /* yacc.c:1646 */ 6510 6511 /* Line 1806 of yacc.c */ 6512 #line 1209 "parser.yy" 5816 6513 { 5817 6514 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5818 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();6515 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef(); 5819 6516 } 5820 #line 5821 "Parser/parser.cc" /* yacc.c:1646 */5821 6517 break; 5822 6518 5823 6519 case 276: 5824 #line 1214 "parser.yy" /* yacc.c:1646 */ 6520 6521 /* Line 1806 of yacc.c */ 6522 #line 1214 "parser.yy" 5825 6523 { 5826 6524 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5827 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );6525 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) ); 5828 6526 } 5829 #line 5830 "Parser/parser.cc" /* yacc.c:1646 */5830 6527 break; 5831 6528 5832 6529 case 277: 5833 #line 1223 "parser.yy" /* yacc.c:1646 */ 6530 6531 /* Line 1806 of yacc.c */ 6532 #line 1223 "parser.yy" 5834 6533 { 5835 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6534 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5836 6535 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5837 6536 } 5838 #line 5839 "Parser/parser.cc" /* yacc.c:1646 */5839 6537 break; 5840 6538 5841 6539 case 278: 5842 #line 1228 "parser.yy" /* yacc.c:1646 */ 6540 6541 /* Line 1806 of yacc.c */ 6542 #line 1228 "parser.yy" 5843 6543 { 5844 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6544 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5845 6545 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5846 6546 } 5847 #line 5848 "Parser/parser.cc" /* yacc.c:1646 */5848 6547 break; 5849 6548 5850 6549 case 283: 5851 #line 1245 "parser.yy" /* yacc.c:1646 */ 6550 6551 /* Line 1806 of yacc.c */ 6552 #line 1245 "parser.yy" 5852 6553 { 5853 6554 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5854 (yyval.decl) = ( (yyvsp[ -2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );6555 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) ); 5855 6556 } 5856 #line 5857 "Parser/parser.cc" /* yacc.c:1646 */5857 6557 break; 5858 6558 5859 6559 case 284: 5860 #line 1250 "parser.yy" /* yacc.c:1646 */ 6560 6561 /* Line 1806 of yacc.c */ 6562 #line 1250 "parser.yy" 5861 6563 { 5862 6564 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5863 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );6565 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) ); 5864 6566 } 5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */5866 6567 break; 5867 6568 5868 6569 case 293: 5869 #line 1272 "parser.yy" /* yacc.c:1646 */ 6570 6571 /* Line 1806 of yacc.c */ 6572 #line 1272 "parser.yy" 5870 6573 { (yyval.decl) = 0; } 5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */5872 6574 break; 5873 6575 5874 6576 case 296: 5875 #line 1284 "parser.yy" /* yacc.c:1646 */ 5876 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */ 6577 6578 /* Line 1806 of yacc.c */ 6579 #line 1284 "parser.yy" 6580 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5878 6581 break; 5879 6582 5880 6583 case 299: 5881 #line 1295 "parser.yy" /* yacc.c:1646 */ 6584 6585 /* Line 1806 of yacc.c */ 6586 #line 1295 "parser.yy" 5882 6587 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */5884 6588 break; 5885 6589 5886 6590 case 300: 5887 #line 1297 "parser.yy" /* yacc.c:1646 */ 6591 6592 /* Line 1806 of yacc.c */ 6593 #line 1297 "parser.yy" 5888 6594 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */5890 6595 break; 5891 6596 5892 6597 case 301: 5893 #line 1299 "parser.yy" /* yacc.c:1646 */ 6598 6599 /* Line 1806 of yacc.c */ 6600 #line 1299 "parser.yy" 5894 6601 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */5896 6602 break; 5897 6603 5898 6604 case 302: 5899 #line 1301 "parser.yy" /* yacc.c:1646 */ 6605 6606 /* Line 1806 of yacc.c */ 6607 #line 1301 "parser.yy" 5900 6608 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646 */5902 6609 break; 5903 6610 5904 6611 case 303: 5905 #line 1303 "parser.yy" /* yacc.c:1646 */ 6612 6613 /* Line 1806 of yacc.c */ 6614 #line 1303 "parser.yy" 5906 6615 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5907 #line 5908 "Parser/parser.cc" /* yacc.c:1646 */5908 6616 break; 5909 6617 5910 6618 case 304: 5911 #line 1305 "parser.yy" /* yacc.c:1646 */ 6619 6620 /* Line 1806 of yacc.c */ 6621 #line 1305 "parser.yy" 5912 6622 { 5913 6623 typedefTable.enterScope(); 5914 6624 } 5915 #line 5916 "Parser/parser.cc" /* yacc.c:1646 */5916 6625 break; 5917 6626 5918 6627 case 305: 5919 #line 1309 "parser.yy" /* yacc.c:1646 */ 6628 6629 /* Line 1806 of yacc.c */ 6630 #line 1309 "parser.yy" 5920 6631 { 5921 6632 typedefTable.leaveScope(); 5922 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ -1].decl) );6633 (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) ); 5923 6634 } 5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */5925 6635 break; 5926 6636 5927 6637 case 307: 5928 #line 1318 "parser.yy" /* yacc.c:1646 */ 5929 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 6638 6639 /* Line 1806 of yacc.c */ 6640 #line 1318 "parser.yy" 6641 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5931 6642 break; 5932 6643 5933 6644 case 308: 5934 #line 1320 "parser.yy" /* yacc.c:1646 */ 5935 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 6645 6646 /* Line 1806 of yacc.c */ 6647 #line 1320 "parser.yy" 6648 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5937 6649 break; 5938 6650 5939 6651 case 310: 5940 #line 1331 "parser.yy" /* yacc.c:1646 */ 5941 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */ 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1331 "parser.yy" 6655 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5943 6656 break; 5944 6657 5945 6658 case 311: 5946 #line 1336 "parser.yy" /* yacc.c:1646 */ 6659 6660 /* Line 1806 of yacc.c */ 6661 #line 1336 "parser.yy" 5947 6662 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */5949 6663 break; 5950 6664 5951 6665 case 312: 5952 #line 1338 "parser.yy" /* yacc.c:1646 */ 6666 6667 /* Line 1806 of yacc.c */ 6668 #line 1338 "parser.yy" 5953 6669 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */5955 6670 break; 5956 6671 5957 6672 case 313: 5958 #line 1340 "parser.yy" /* yacc.c:1646 */ 6673 6674 /* Line 1806 of yacc.c */ 6675 #line 1340 "parser.yy" 5959 6676 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */5961 6677 break; 5962 6678 5963 6679 case 314: 5964 #line 1342 "parser.yy" /* yacc.c:1646 */ 6680 6681 /* Line 1806 of yacc.c */ 6682 #line 1342 "parser.yy" 5965 6683 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */5967 6684 break; 5968 6685 5969 6686 case 315: 5970 #line 1345 "parser.yy" /* yacc.c:1646 */ 6687 6688 /* Line 1806 of yacc.c */ 6689 #line 1345 "parser.yy" 5971 6690 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */5973 6691 break; 5974 6692 5975 6693 case 316: 5976 #line 1347 "parser.yy" /* yacc.c:1646 */ 6694 6695 /* Line 1806 of yacc.c */ 6696 #line 1347 "parser.yy" 5977 6697 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */5979 6698 break; 5980 6699 5981 6700 case 317: 5982 #line 1350 "parser.yy" /* yacc.c:1646 */ 6701 6702 /* Line 1806 of yacc.c */ 6703 #line 1350 "parser.yy" 5983 6704 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */5985 6705 break; 5986 6706 5987 6707 case 318: 5988 #line 1352 "parser.yy" /* yacc.c:1646 */ 6708 6709 /* Line 1806 of yacc.c */ 6710 #line 1352 "parser.yy" 5989 6711 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */5991 6712 break; 5992 6713 5993 6714 case 319: 5994 #line 1357 "parser.yy" /* yacc.c:1646 */ 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1357 "parser.yy" 5995 6718 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */5997 6719 break; 5998 6720 5999 6721 case 320: 6000 #line 1359 "parser.yy" /* yacc.c:1646 */ 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1359 "parser.yy" 6001 6725 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */6003 6726 break; 6004 6727 6005 6728 case 321: 6006 #line 1361 "parser.yy" /* yacc.c:1646 */ 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1361 "parser.yy" 6007 6732 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */6009 6733 break; 6010 6734 6011 6735 case 322: 6012 #line 1363 "parser.yy" /* yacc.c:1646 */ 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1363 "parser.yy" 6013 6739 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */6015 6740 break; 6016 6741 6017 6742 case 323: 6018 #line 1365 "parser.yy" /* yacc.c:1646 */ 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1365 "parser.yy" 6019 6746 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */6021 6747 break; 6022 6748 6023 6749 case 324: 6024 #line 1367 "parser.yy" /* yacc.c:1646 */ 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1367 "parser.yy" 6025 6753 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */6027 6754 break; 6028 6755 6029 6756 case 325: 6030 #line 1369 "parser.yy" /* yacc.c:1646 */ 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1369 "parser.yy" 6031 6760 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */6033 6761 break; 6034 6762 6035 6763 case 326: 6036 #line 1371 "parser.yy" /* yacc.c:1646 */ 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1371 "parser.yy" 6037 6767 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */6039 6768 break; 6040 6769 6041 6770 case 327: 6042 #line 1373 "parser.yy" /* yacc.c:1646 */ 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1373 "parser.yy" 6043 6774 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */6045 6775 break; 6046 6776 6047 6777 case 328: 6048 #line 1375 "parser.yy" /* yacc.c:1646 */ 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1375 "parser.yy" 6049 6781 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */6051 6782 break; 6052 6783 6053 6784 case 329: 6054 #line 1377 "parser.yy" /* yacc.c:1646 */ 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1377 "parser.yy" 6055 6788 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */6057 6789 break; 6058 6790 6059 6791 case 330: 6060 #line 1379 "parser.yy" /* yacc.c:1646 */ 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1379 "parser.yy" 6061 6795 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */6063 6796 break; 6064 6797 6065 6798 case 331: 6066 #line 1381 "parser.yy" /* yacc.c:1646 */ 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1381 "parser.yy" 6067 6802 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */6069 6803 break; 6070 6804 6071 6805 case 333: 6072 #line 1388 "parser.yy" /* yacc.c:1646 */ 6073 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */ 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1388 "parser.yy" 6809 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6075 6810 break; 6076 6811 6077 6812 case 334: 6078 #line 1390 "parser.yy" /* yacc.c:1646 */ 6079 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1390 "parser.yy" 6816 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6081 6817 break; 6082 6818 6083 6819 case 335: 6084 #line 1392 "parser.yy" /* yacc.c:1646 */ 6085 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646 */ 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1392 "parser.yy" 6823 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6087 6824 break; 6088 6825 6089 6826 case 336: 6090 #line 1394 "parser.yy" /* yacc.c:1646 */ 6091 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646 */ 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1394 "parser.yy" 6830 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6093 6831 break; 6094 6832 6095 6833 case 338: 6096 #line 1400 "parser.yy" /* yacc.c:1646 */ 6097 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646 */ 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1400 "parser.yy" 6837 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6099 6838 break; 6100 6839 6101 6840 case 340: 6102 #line 1407 "parser.yy" /* yacc.c:1646 */ 6103 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1407 "parser.yy" 6844 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6105 6845 break; 6106 6846 6107 6847 case 341: 6108 #line 1409 "parser.yy" /* yacc.c:1646 */ 6109 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1409 "parser.yy" 6851 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6111 6852 break; 6112 6853 6113 6854 case 342: 6114 #line 1411 "parser.yy" /* yacc.c:1646 */ 6115 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6855 6856 /* Line 1806 of yacc.c */ 6857 #line 1411 "parser.yy" 6858 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6117 6859 break; 6118 6860 6119 6861 case 343: 6120 #line 1416 "parser.yy" /* yacc.c:1646 */ 6121 { (yyval.decl) = (yyvsp[-1].decl); } 6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1416 "parser.yy" 6865 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6123 6866 break; 6124 6867 6125 6868 case 344: 6126 #line 1418 "parser.yy" /* yacc.c:1646 */ 6127 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1418 "parser.yy" 6872 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6129 6873 break; 6130 6874 6131 6875 case 345: 6132 #line 1420 "parser.yy" /* yacc.c:1646 */ 6133 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646 */ 6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1420 "parser.yy" 6879 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6135 6880 break; 6136 6881 6137 6882 case 346: 6138 #line 1422 "parser.yy" /* yacc.c:1646 */ 6139 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646 */ 6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1422 "parser.yy" 6886 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6141 6887 break; 6142 6888 6143 6889 case 348: 6144 #line 1428 "parser.yy" /* yacc.c:1646 */ 6145 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1428 "parser.yy" 6893 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6147 6894 break; 6148 6895 6149 6896 case 349: 6150 #line 1430 "parser.yy" /* yacc.c:1646 */ 6151 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1430 "parser.yy" 6900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6153 6901 break; 6154 6902 6155 6903 case 350: 6156 #line 1432 "parser.yy" /* yacc.c:1646 */ 6157 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646 */ 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1432 "parser.yy" 6907 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6159 6908 break; 6160 6909 6161 6910 case 352: 6162 #line 1438 "parser.yy" /* yacc.c:1646 */ 6163 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6911 6912 /* Line 1806 of yacc.c */ 6913 #line 1438 "parser.yy" 6914 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6165 6915 break; 6166 6916 6167 6917 case 353: 6168 #line 1440 "parser.yy" /* yacc.c:1646 */ 6169 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1440 "parser.yy" 6921 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6171 6922 break; 6172 6923 6173 6924 case 355: 6174 #line 1446 "parser.yy" /* yacc.c:1646 */ 6175 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1446 "parser.yy" 6928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6177 6929 break; 6178 6930 6179 6931 case 356: 6180 #line 1448 "parser.yy" /* yacc.c:1646 */ 6181 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6182 #line 6183 "Parser/parser.cc" /* yacc.c:1646 */ 6932 6933 /* Line 1806 of yacc.c */ 6934 #line 1448 "parser.yy" 6935 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6183 6936 break; 6184 6937 6185 6938 case 357: 6186 #line 1450 "parser.yy" /* yacc.c:1646 */ 6187 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6188 #line 6189 "Parser/parser.cc" /* yacc.c:1646 */ 6939 6940 /* Line 1806 of yacc.c */ 6941 #line 1450 "parser.yy" 6942 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6189 6943 break; 6190 6944 6191 6945 case 358: 6192 #line 1455 "parser.yy" /* yacc.c:1646 */ 6193 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6194 #line 6195 "Parser/parser.cc" /* yacc.c:1646 */ 6946 6947 /* Line 1806 of yacc.c */ 6948 #line 1455 "parser.yy" 6949 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6195 6950 break; 6196 6951 6197 6952 case 359: 6198 #line 1457 "parser.yy" /* yacc.c:1646 */ 6199 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6200 #line 6201 "Parser/parser.cc" /* yacc.c:1646 */ 6953 6954 /* Line 1806 of yacc.c */ 6955 #line 1457 "parser.yy" 6956 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6201 6957 break; 6202 6958 6203 6959 case 360: 6204 #line 1459 "parser.yy" /* yacc.c:1646 */ 6205 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6206 #line 6207 "Parser/parser.cc" /* yacc.c:1646 */ 6960 6961 /* Line 1806 of yacc.c */ 6962 #line 1459 "parser.yy" 6963 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6207 6964 break; 6208 6965 6209 6966 case 363: 6210 #line 1469 "parser.yy" /* yacc.c:1646 */ 6211 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); } 6212 #line 6213 "Parser/parser.cc" /* yacc.c:1646 */ 6967 6968 /* Line 1806 of yacc.c */ 6969 #line 1469 "parser.yy" 6970 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6213 6971 break; 6214 6972 6215 6973 case 364: 6216 #line 1471 "parser.yy" /* yacc.c:1646 */ 6974 6975 /* Line 1806 of yacc.c */ 6976 #line 1471 "parser.yy" 6217 6977 { 6218 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6219 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[ -1].aggKey), (yyvsp[0].tok), 0, 0, false );6978 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6979 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false ); 6220 6980 } 6221 #line 6222 "Parser/parser.cc" /* yacc.c:1646 */6222 6981 break; 6223 6982 6224 6983 case 365: 6225 #line 1476 "parser.yy" /* yacc.c:1646 */ 6226 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646 */ 6984 6985 /* Line 1806 of yacc.c */ 6986 #line 1476 "parser.yy" 6987 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6228 6988 break; 6229 6989 6230 6990 case 366: 6231 #line 1478 "parser.yy" /* yacc.c:1646 */ 6232 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); } 6233 #line 6234 "Parser/parser.cc" /* yacc.c:1646 */ 6991 6992 /* Line 1806 of yacc.c */ 6993 #line 1478 "parser.yy" 6994 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6234 6995 break; 6235 6996 6236 6997 case 367: 6237 #line 1480 "parser.yy" /* yacc.c:1646 */ 6238 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6239 #line 6240 "Parser/parser.cc" /* yacc.c:1646 */ 6998 6999 /* Line 1806 of yacc.c */ 7000 #line 1480 "parser.yy" 7001 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6240 7002 break; 6241 7003 6242 7004 case 368: 6243 #line 1482 "parser.yy" /* yacc.c:1646 */ 6244 { (yyval.decl) = (yyvsp[0].decl); } 6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646 */ 7005 7006 /* Line 1806 of yacc.c */ 7007 #line 1482 "parser.yy" 7008 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6246 7009 break; 6247 7010 6248 7011 case 369: 6249 #line 1487 "parser.yy" /* yacc.c:1646 */ 7012 7013 /* Line 1806 of yacc.c */ 7014 #line 1487 "parser.yy" 6250 7015 { (yyval.aggKey) = DeclarationNode::Struct; } 6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646 */6252 7016 break; 6253 7017 6254 7018 case 370: 6255 #line 1489 "parser.yy" /* yacc.c:1646 */ 7019 7020 /* Line 1806 of yacc.c */ 7021 #line 1489 "parser.yy" 6256 7022 { (yyval.aggKey) = DeclarationNode::Union; } 6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646 */6258 7023 break; 6259 7024 6260 7025 case 371: 6261 #line 1494 "parser.yy" /* yacc.c:1646 */ 7026 7027 /* Line 1806 of yacc.c */ 7028 #line 1494 "parser.yy" 6262 7029 { (yyval.decl) = 0; } 6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646 */6264 7030 break; 6265 7031 6266 7032 case 372: 6267 #line 1496 "parser.yy" /* yacc.c:1646 */ 6268 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6269 #line 6270 "Parser/parser.cc" /* yacc.c:1646 */ 7033 7034 /* Line 1806 of yacc.c */ 7035 #line 1496 "parser.yy" 7036 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6270 7037 break; 6271 7038 6272 7039 case 374: 6273 #line 1502 "parser.yy" /* yacc.c:1646 */ 6274 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6275 #line 6276 "Parser/parser.cc" /* yacc.c:1646 */ 7040 7041 /* Line 1806 of yacc.c */ 7042 #line 1502 "parser.yy" 7043 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6276 7044 break; 6277 7045 6278 7046 case 376: 6279 #line 1505 "parser.yy" /* yacc.c:1646 */ 7047 7048 /* Line 1806 of yacc.c */ 7049 #line 1505 "parser.yy" 6280 7050 { // mark all fields in list 6281 for ( DeclarationNode *iter = (yyvsp[ -1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7051 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6282 7052 iter->set_extension( true ); 6283 (yyval.decl) = (yyvsp[ -1].decl);7053 (yyval.decl) = (yyvsp[(2) - (3)].decl); 6284 7054 } 6285 #line 6286 "Parser/parser.cc" /* yacc.c:1646 */6286 7055 break; 6287 7056 6288 7057 case 378: 6289 #line 1515 "parser.yy" /* yacc.c:1646 */ 6290 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6291 #line 6292 "Parser/parser.cc" /* yacc.c:1646 */ 7058 7059 /* Line 1806 of yacc.c */ 7060 #line 1515 "parser.yy" 7061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6292 7062 break; 6293 7063 6294 7064 case 379: 6295 #line 1517 "parser.yy" /* yacc.c:1646 */ 6296 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6297 #line 6298 "Parser/parser.cc" /* yacc.c:1646 */ 7065 7066 /* Line 1806 of yacc.c */ 7067 #line 1517 "parser.yy" 7068 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6298 7069 break; 6299 7070 6300 7071 case 380: 6301 #line 1519 "parser.yy" /* yacc.c:1646 */ 6302 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6303 #line 6304 "Parser/parser.cc" /* yacc.c:1646 */ 7072 7073 /* Line 1806 of yacc.c */ 7074 #line 1519 "parser.yy" 7075 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6304 7076 break; 6305 7077 6306 7078 case 381: 6307 #line 1524 "parser.yy" /* yacc.c:1646 */ 6308 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6309 #line 6310 "Parser/parser.cc" /* yacc.c:1646 */ 7079 7080 /* Line 1806 of yacc.c */ 7081 #line 1524 "parser.yy" 7082 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6310 7083 break; 6311 7084 6312 7085 case 382: 6313 #line 1526 "parser.yy" /* yacc.c:1646 */ 6314 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6315 #line 6316 "Parser/parser.cc" /* yacc.c:1646 */ 7086 7087 /* Line 1806 of yacc.c */ 7088 #line 1526 "parser.yy" 7089 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6316 7090 break; 6317 7091 6318 7092 case 383: 6319 #line 1531 "parser.yy" /* yacc.c:1646 */ 7093 7094 /* Line 1806 of yacc.c */ 7095 #line 1531 "parser.yy" 6320 7096 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646 */6322 7097 break; 6323 7098 6324 7099 case 384: 6325 #line 1533 "parser.yy" /* yacc.c:1646 */ 6326 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6327 #line 6328 "Parser/parser.cc" /* yacc.c:1646 */ 7100 7101 /* Line 1806 of yacc.c */ 7102 #line 1533 "parser.yy" 7103 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6328 7104 break; 6329 7105 6330 7106 case 385: 6331 #line 1536 "parser.yy" /* yacc.c:1646 */ 6332 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646 */ 7107 7108 /* Line 1806 of yacc.c */ 7109 #line 1536 "parser.yy" 7110 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6334 7111 break; 6335 7112 6336 7113 case 386: 6337 #line 1539 "parser.yy" /* yacc.c:1646 */ 6338 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6339 #line 6340 "Parser/parser.cc" /* yacc.c:1646 */ 7114 7115 /* Line 1806 of yacc.c */ 7116 #line 1539 "parser.yy" 7117 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6340 7118 break; 6341 7119 6342 7120 case 388: 6343 #line 1545 "parser.yy" /* yacc.c:1646 */ 7121 7122 /* Line 1806 of yacc.c */ 7123 #line 1545 "parser.yy" 6344 7124 { (yyval.en) = 0; } 6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646 */6346 7125 break; 6347 7126 6348 7127 case 389: 6349 #line 1547 "parser.yy" /* yacc.c:1646 */ 6350 { (yyval.en) = (yyvsp[0].en); } 6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 7128 7129 /* Line 1806 of yacc.c */ 7130 #line 1547 "parser.yy" 7131 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6352 7132 break; 6353 7133 6354 7134 case 390: 6355 #line 1552 "parser.yy" /* yacc.c:1646 */ 6356 { (yyval.en) = (yyvsp[0].en); } 6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646 */ 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1552 "parser.yy" 7138 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6358 7139 break; 6359 7140 6360 7141 case 392: 6361 #line 1561 "parser.yy" /* yacc.c:1646 */ 6362 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); } 6363 #line 6364 "Parser/parser.cc" /* yacc.c:1646 */ 7142 7143 /* Line 1806 of yacc.c */ 7144 #line 1561 "parser.yy" 7145 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 6364 7146 break; 6365 7147 6366 7148 case 393: 6367 #line 1563 "parser.yy" /* yacc.c:1646 */ 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1563 "parser.yy" 6368 7152 { 6369 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6370 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[ 0].tok), 0 );7153 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7154 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6371 7155 } 6372 #line 6373 "Parser/parser.cc" /* yacc.c:1646 */6373 7156 break; 6374 7157 6375 7158 case 394: 6376 #line 1568 "parser.yy" /* yacc.c:1646 */ 6377 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646 */ 7159 7160 /* Line 1806 of yacc.c */ 7161 #line 1568 "parser.yy" 7162 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6379 7163 break; 6380 7164 6381 7165 case 395: 6382 #line 1570 "parser.yy" /* yacc.c:1646 */ 6383 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6384 #line 6385 "Parser/parser.cc" /* yacc.c:1646 */ 7166 7167 /* Line 1806 of yacc.c */ 7168 #line 1570 "parser.yy" 7169 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 6385 7170 break; 6386 7171 6387 7172 case 396: 6388 #line 1575 "parser.yy" /* yacc.c:1646 */ 6389 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6390 #line 6391 "Parser/parser.cc" /* yacc.c:1646 */ 7173 7174 /* Line 1806 of yacc.c */ 7175 #line 1575 "parser.yy" 7176 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 6391 7177 break; 6392 7178 6393 7179 case 397: 6394 #line 1577 "parser.yy" /* yacc.c:1646 */ 6395 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6396 #line 6397 "Parser/parser.cc" /* yacc.c:1646 */ 7180 7181 /* Line 1806 of yacc.c */ 7182 #line 1577 "parser.yy" 7183 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 6397 7184 break; 6398 7185 6399 7186 case 398: 6400 #line 1582 "parser.yy" /* yacc.c:1646 */ 7187 7188 /* Line 1806 of yacc.c */ 7189 #line 1582 "parser.yy" 6401 7190 { (yyval.en) = 0; } 6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646 */6403 7191 break; 6404 7192 6405 7193 case 399: 6406 #line 1584 "parser.yy" /* yacc.c:1646 */ 6407 { (yyval.en) = (yyvsp[0].en); } 6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646 */ 7194 7195 /* Line 1806 of yacc.c */ 7196 #line 1584 "parser.yy" 7197 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6409 7198 break; 6410 7199 6411 7200 case 400: 6412 #line 1591 "parser.yy" /* yacc.c:1646 */ 7201 7202 /* Line 1806 of yacc.c */ 7203 #line 1591 "parser.yy" 6413 7204 { (yyval.decl) = 0; } 6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646 */6415 7205 break; 6416 7206 6417 7207 case 404: 6418 #line 1599 "parser.yy" /* yacc.c:1646 */ 6419 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6420 #line 6421 "Parser/parser.cc" /* yacc.c:1646 */ 7208 7209 /* Line 1806 of yacc.c */ 7210 #line 1599 "parser.yy" 7211 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6421 7212 break; 6422 7213 6423 7214 case 405: 6424 #line 1601 "parser.yy" /* yacc.c:1646 */ 6425 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 7215 7216 /* Line 1806 of yacc.c */ 7217 #line 1601 "parser.yy" 7218 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6427 7219 break; 6428 7220 6429 7221 case 406: 6430 #line 1603 "parser.yy" /* yacc.c:1646 */ 6431 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646 */ 7222 7223 /* Line 1806 of yacc.c */ 7224 #line 1603 "parser.yy" 7225 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6433 7226 break; 6434 7227 6435 7228 case 408: 6436 #line 1611 "parser.yy" /* yacc.c:1646 */ 6437 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646 */ 7229 7230 /* Line 1806 of yacc.c */ 7231 #line 1611 "parser.yy" 7232 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6439 7233 break; 6440 7234 6441 7235 case 409: 6442 #line 1613 "parser.yy" /* yacc.c:1646 */ 6443 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6444 #line 6445 "Parser/parser.cc" /* yacc.c:1646 */ 7236 7237 /* Line 1806 of yacc.c */ 7238 #line 1613 "parser.yy" 7239 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6445 7240 break; 6446 7241 6447 7242 case 410: 6448 #line 1615 "parser.yy" /* yacc.c:1646 */ 6449 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6450 #line 6451 "Parser/parser.cc" /* yacc.c:1646 */ 7243 7244 /* Line 1806 of yacc.c */ 7245 #line 1615 "parser.yy" 7246 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 6451 7247 break; 6452 7248 6453 7249 case 412: 6454 #line 1621 "parser.yy" /* yacc.c:1646 */ 6455 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6456 #line 6457 "Parser/parser.cc" /* yacc.c:1646 */ 7250 7251 /* Line 1806 of yacc.c */ 7252 #line 1621 "parser.yy" 7253 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6457 7254 break; 6458 7255 6459 7256 case 413: 6460 #line 1626 "parser.yy" /* yacc.c:1646 */ 7257 7258 /* Line 1806 of yacc.c */ 7259 #line 1626 "parser.yy" 6461 7260 { (yyval.decl) = 0; } 6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646 */6463 7261 break; 6464 7262 6465 7263 case 416: 6466 #line 1633 "parser.yy" /* yacc.c:1646 */ 6467 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646 */ 7264 7265 /* Line 1806 of yacc.c */ 7266 #line 1633 "parser.yy" 7267 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6469 7268 break; 6470 7269 6471 7270 case 419: 6472 #line 1640 "parser.yy" /* yacc.c:1646 */ 6473 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646 */ 7271 7272 /* Line 1806 of yacc.c */ 7273 #line 1640 "parser.yy" 7274 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6475 7275 break; 6476 7276 6477 7277 case 420: 6478 #line 1642 "parser.yy" /* yacc.c:1646 */ 6479 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6480 #line 6481 "Parser/parser.cc" /* yacc.c:1646 */ 7278 7279 /* Line 1806 of yacc.c */ 7280 #line 1642 "parser.yy" 7281 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6481 7282 break; 6482 7283 6483 7284 case 422: 6484 #line 1651 "parser.yy" /* yacc.c:1646 */ 6485 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646 */ 7285 7286 /* Line 1806 of yacc.c */ 7287 #line 1651 "parser.yy" 7288 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6487 7289 break; 6488 7290 6489 7291 case 423: 6490 #line 1654 "parser.yy" /* yacc.c:1646 */ 6491 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6492 #line 6493 "Parser/parser.cc" /* yacc.c:1646 */ 7292 7293 /* Line 1806 of yacc.c */ 7294 #line 1654 "parser.yy" 7295 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6493 7296 break; 6494 7297 6495 7298 case 424: 6496 #line 1656 "parser.yy" /* yacc.c:1646 */ 6497 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6498 #line 6499 "Parser/parser.cc" /* yacc.c:1646 */ 7299 7300 /* Line 1806 of yacc.c */ 7301 #line 1656 "parser.yy" 7302 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 6499 7303 break; 6500 7304 6501 7305 case 429: 6502 #line 1666 "parser.yy" /* yacc.c:1646 */ 6503 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6504 #line 6505 "Parser/parser.cc" /* yacc.c:1646 */ 7306 7307 /* Line 1806 of yacc.c */ 7308 #line 1666 "parser.yy" 7309 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6505 7310 break; 6506 7311 6507 7312 case 431: 6508 #line 1672 "parser.yy" /* yacc.c:1646 */ 7313 7314 /* Line 1806 of yacc.c */ 7315 #line 1672 "parser.yy" 6509 7316 { 6510 7317 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6511 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7318 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6512 7319 } 6513 #line 6514 "Parser/parser.cc" /* yacc.c:1646 */6514 7320 break; 6515 7321 6516 7322 case 432: 6517 #line 1677 "parser.yy" /* yacc.c:1646 */ 7323 7324 /* Line 1806 of yacc.c */ 7325 #line 1677 "parser.yy" 6518 7326 { 6519 7327 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6520 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7328 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6521 7329 } 6522 #line 6523 "Parser/parser.cc" /* yacc.c:1646 */6523 7330 break; 6524 7331 6525 7332 case 434: 6526 #line 1686 "parser.yy" /* yacc.c:1646 */ 6527 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6528 #line 6529 "Parser/parser.cc" /* yacc.c:1646 */ 7333 7334 /* Line 1806 of yacc.c */ 7335 #line 1686 "parser.yy" 7336 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6529 7337 break; 6530 7338 6531 7339 case 435: 6532 #line 1695 "parser.yy" /* yacc.c:1646 */ 6533 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6534 #line 6535 "Parser/parser.cc" /* yacc.c:1646 */ 7340 7341 /* Line 1806 of yacc.c */ 7342 #line 1695 "parser.yy" 7343 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 6535 7344 break; 6536 7345 6537 7346 case 436: 6538 #line 1697 "parser.yy" /* yacc.c:1646 */ 6539 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6540 #line 6541 "Parser/parser.cc" /* yacc.c:1646 */ 7347 7348 /* Line 1806 of yacc.c */ 7349 #line 1697 "parser.yy" 7350 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 6541 7351 break; 6542 7352 6543 7353 case 448: 6544 #line 1722 "parser.yy" /* yacc.c:1646 */ 6545 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646 */ 7354 7355 /* Line 1806 of yacc.c */ 7356 #line 1722 "parser.yy" 7357 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6547 7358 break; 6548 7359 6549 7360 case 452: 6550 #line 1730 "parser.yy" /* yacc.c:1646 */ 6551 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6552 #line 6553 "Parser/parser.cc" /* yacc.c:1646 */ 7361 7362 /* Line 1806 of yacc.c */ 7363 #line 1730 "parser.yy" 7364 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6553 7365 break; 6554 7366 6555 7367 case 453: 6556 #line 1735 "parser.yy" /* yacc.c:1646 */ 7368 7369 /* Line 1806 of yacc.c */ 7370 #line 1735 "parser.yy" 6557 7371 { (yyval.in) = 0; } 6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646 */6559 7372 break; 6560 7373 6561 7374 case 454: 6562 #line 1737 "parser.yy" /* yacc.c:1646 */ 6563 { (yyval.in) = (yyvsp[0].in); } 6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646 */ 7375 7376 /* Line 1806 of yacc.c */ 7377 #line 1737 "parser.yy" 7378 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6565 7379 break; 6566 7380 6567 7381 case 455: 6568 #line 1739 "parser.yy" /* yacc.c:1646 */ 6569 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6570 #line 6571 "Parser/parser.cc" /* yacc.c:1646 */ 7382 7383 /* Line 1806 of yacc.c */ 7384 #line 1739 "parser.yy" 7385 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 6571 7386 break; 6572 7387 6573 7388 case 456: 6574 #line 1743 "parser.yy" /* yacc.c:1646 */ 6575 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6576 #line 6577 "Parser/parser.cc" /* yacc.c:1646 */ 7389 7390 /* Line 1806 of yacc.c */ 7391 #line 1743 "parser.yy" 7392 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 6577 7393 break; 6578 7394 6579 7395 case 457: 6580 #line 1744 "parser.yy" /* yacc.c:1646 */ 6581 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6582 #line 6583 "Parser/parser.cc" /* yacc.c:1646 */ 7396 7397 /* Line 1806 of yacc.c */ 7398 #line 1744 "parser.yy" 7399 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 6583 7400 break; 6584 7401 6585 7402 case 458: 6586 #line 1749 "parser.yy" /* yacc.c:1646 */ 7403 7404 /* Line 1806 of yacc.c */ 7405 #line 1749 "parser.yy" 6587 7406 { (yyval.in) = 0; } 6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646 */6589 7407 break; 6590 7408 6591 7409 case 460: 6592 #line 1751 "parser.yy" /* yacc.c:1646 */ 6593 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6594 #line 6595 "Parser/parser.cc" /* yacc.c:1646 */ 7410 7411 /* Line 1806 of yacc.c */ 7412 #line 1751 "parser.yy" 7413 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 6595 7414 break; 6596 7415 6597 7416 case 461: 6598 #line 1752 "parser.yy" /* yacc.c:1646 */ 6599 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6600 #line 6601 "Parser/parser.cc" /* yacc.c:1646 */ 7417 7418 /* Line 1806 of yacc.c */ 7419 #line 1752 "parser.yy" 7420 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 6601 7421 break; 6602 7422 6603 7423 case 462: 6604 #line 1754 "parser.yy" /* yacc.c:1646 */ 6605 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6606 #line 6607 "Parser/parser.cc" /* yacc.c:1646 */ 7424 7425 /* Line 1806 of yacc.c */ 7426 #line 1754 "parser.yy" 7427 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 6607 7428 break; 6608 7429 6609 7430 case 464: 6610 #line 1770 "parser.yy" /* yacc.c:1646 */ 6611 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6612 #line 6613 "Parser/parser.cc" /* yacc.c:1646 */ 7431 7432 /* Line 1806 of yacc.c */ 7433 #line 1770 "parser.yy" 7434 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 6613 7435 break; 6614 7436 6615 7437 case 466: 6616 #line 1776 "parser.yy" /* yacc.c:1646 */ 6617 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6618 #line 6619 "Parser/parser.cc" /* yacc.c:1646 */ 7438 7439 /* Line 1806 of yacc.c */ 7440 #line 1776 "parser.yy" 7441 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 6619 7442 break; 6620 7443 6621 7444 case 467: 6622 #line 1782 "parser.yy" /* yacc.c:1646 */ 6623 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6624 #line 6625 "Parser/parser.cc" /* yacc.c:1646 */ 7445 7446 /* Line 1806 of yacc.c */ 7447 #line 1782 "parser.yy" 7448 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 6625 7449 break; 6626 7450 6627 7451 case 468: 6628 #line 1785 "parser.yy" /* yacc.c:1646 */ 6629 { (yyval.en) = (yyvsp[-2].en); } 6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 7452 7453 /* Line 1806 of yacc.c */ 7454 #line 1785 "parser.yy" 7455 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6631 7456 break; 6632 7457 6633 7458 case 469: 6634 #line 1787 "parser.yy" /* yacc.c:1646 */ 6635 { (yyval.en) = (yyvsp[-2].en); } 6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646 */ 7459 7460 /* Line 1806 of yacc.c */ 7461 #line 1787 "parser.yy" 7462 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6637 7463 break; 6638 7464 6639 7465 case 470: 6640 #line 1789 "parser.yy" /* yacc.c:1646 */ 6641 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6642 #line 6643 "Parser/parser.cc" /* yacc.c:1646 */ 7466 7467 /* Line 1806 of yacc.c */ 7468 #line 1789 "parser.yy" 7469 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 6643 7470 break; 6644 7471 6645 7472 case 471: 6646 #line 1791 "parser.yy" /* yacc.c:1646 */ 6647 { (yyval.en) = (yyvsp[-2].en); } 6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646 */ 7473 7474 /* Line 1806 of yacc.c */ 7475 #line 1791 "parser.yy" 7476 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6649 7477 break; 6650 7478 6651 7479 case 473: 6652 #line 1815 "parser.yy" /* yacc.c:1646 */ 6653 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6654 #line 6655 "Parser/parser.cc" /* yacc.c:1646 */ 7480 7481 /* Line 1806 of yacc.c */ 7482 #line 1815 "parser.yy" 7483 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6655 7484 break; 6656 7485 6657 7486 case 474: 6658 #line 1817 "parser.yy" /* yacc.c:1646 */ 6659 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6660 #line 6661 "Parser/parser.cc" /* yacc.c:1646 */ 7487 7488 /* Line 1806 of yacc.c */ 7489 #line 1817 "parser.yy" 7490 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6661 7491 break; 6662 7492 6663 7493 case 475: 6664 #line 1819 "parser.yy" /* yacc.c:1646 */ 6665 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6666 #line 6667 "Parser/parser.cc" /* yacc.c:1646 */ 7494 7495 /* Line 1806 of yacc.c */ 7496 #line 1819 "parser.yy" 7497 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6667 7498 break; 6668 7499 6669 7500 case 477: 6670 #line 1825 "parser.yy" /* yacc.c:1646 */ 6671 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6672 #line 6673 "Parser/parser.cc" /* yacc.c:1646 */ 7501 7502 /* Line 1806 of yacc.c */ 7503 #line 1825 "parser.yy" 7504 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6673 7505 break; 6674 7506 6675 7507 case 478: 6676 #line 1827 "parser.yy" /* yacc.c:1646 */ 6677 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6678 #line 6679 "Parser/parser.cc" /* yacc.c:1646 */ 7508 7509 /* Line 1806 of yacc.c */ 7510 #line 1827 "parser.yy" 7511 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6679 7512 break; 6680 7513 6681 7514 case 479: 6682 #line 1832 "parser.yy" /* yacc.c:1646 */ 6683 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6684 #line 6685 "Parser/parser.cc" /* yacc.c:1646 */ 7515 7516 /* Line 1806 of yacc.c */ 7517 #line 1832 "parser.yy" 7518 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6685 7519 break; 6686 7520 6687 7521 case 481: 6688 #line 1838 "parser.yy" /* yacc.c:1646 */ 6689 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6690 #line 6691 "Parser/parser.cc" /* yacc.c:1646 */ 7522 7523 /* Line 1806 of yacc.c */ 7524 #line 1838 "parser.yy" 7525 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 6691 7526 break; 6692 7527 6693 7528 case 482: 6694 #line 1843 "parser.yy" /* yacc.c:1646 */ 6695 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6696 #line 6697 "Parser/parser.cc" /* yacc.c:1646 */ 7529 7530 /* Line 1806 of yacc.c */ 7531 #line 1843 "parser.yy" 7532 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 6697 7533 break; 6698 7534 6699 7535 case 483: 6700 #line 1845 "parser.yy" /* yacc.c:1646 */ 6701 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6702 #line 6703 "Parser/parser.cc" /* yacc.c:1646 */ 7536 7537 /* Line 1806 of yacc.c */ 7538 #line 1845 "parser.yy" 7539 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 6703 7540 break; 6704 7541 6705 7542 case 485: 6706 #line 1851 "parser.yy" /* yacc.c:1646 */ 7543 7544 /* Line 1806 of yacc.c */ 7545 #line 1851 "parser.yy" 6707 7546 { (yyval.tclass) = DeclarationNode::Type; } 6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646 */6709 7547 break; 6710 7548 6711 7549 case 486: 6712 #line 1853 "parser.yy" /* yacc.c:1646 */ 7550 7551 /* Line 1806 of yacc.c */ 7552 #line 1853 "parser.yy" 6713 7553 { (yyval.tclass) = DeclarationNode::Ftype; } 6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646 */6715 7554 break; 6716 7555 6717 7556 case 487: 6718 #line 1855 "parser.yy" /* yacc.c:1646 */ 7557 7558 /* Line 1806 of yacc.c */ 7559 #line 1855 "parser.yy" 6719 7560 { (yyval.tclass) = DeclarationNode::Dtype; } 6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646 */6721 7561 break; 6722 7562 6723 7563 case 488: 6724 #line 1860 "parser.yy" /* yacc.c:1646 */ 7564 7565 /* Line 1806 of yacc.c */ 7566 #line 1860 "parser.yy" 6725 7567 { (yyval.decl) = 0; } 6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646 */6727 7568 break; 6728 7569 6729 7570 case 489: 6730 #line 1862 "parser.yy" /* yacc.c:1646 */ 6731 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6732 #line 6733 "Parser/parser.cc" /* yacc.c:1646 */ 7571 7572 /* Line 1806 of yacc.c */ 7573 #line 1862 "parser.yy" 7574 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6733 7575 break; 6734 7576 6735 7577 case 490: 6736 #line 1867 "parser.yy" /* yacc.c:1646 */ 7578 7579 /* Line 1806 of yacc.c */ 7580 #line 1867 "parser.yy" 6737 7581 { 6738 typedefTable.openTrait( *(yyvsp[ -3].tok) );6739 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[ -3].tok), (yyvsp[-1].en) );7582 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7583 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6740 7584 } 6741 #line 6742 "Parser/parser.cc" /* yacc.c:1646 */6742 7585 break; 6743 7586 6744 7587 case 491: 6745 #line 1872 "parser.yy" /* yacc.c:1646 */ 6746 { (yyval.decl) = (yyvsp[-1].decl); } 6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646 */ 7588 7589 /* Line 1806 of yacc.c */ 7590 #line 1872 "parser.yy" 7591 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6748 7592 break; 6749 7593 6750 7594 case 492: 6751 #line 1874 "parser.yy" /* yacc.c:1646 */ 7595 7596 /* Line 1806 of yacc.c */ 7597 #line 1874 "parser.yy" 6752 7598 { (yyval.decl) = 0; } 6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646 */6754 7599 break; 6755 7600 6756 7601 case 493: 6757 #line 1879 "parser.yy" /* yacc.c:1646 */ 6758 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6759 #line 6760 "Parser/parser.cc" /* yacc.c:1646 */ 7602 7603 /* Line 1806 of yacc.c */ 7604 #line 1879 "parser.yy" 7605 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 6760 7606 break; 6761 7607 6762 7608 case 495: 6763 #line 1882 "parser.yy" /* yacc.c:1646 */ 6764 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6765 #line 6766 "Parser/parser.cc" /* yacc.c:1646 */ 7609 7610 /* Line 1806 of yacc.c */ 7611 #line 1882 "parser.yy" 7612 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 6766 7613 break; 6767 7614 6768 7615 case 496: 6769 #line 1884 "parser.yy" /* yacc.c:1646 */ 6770 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6771 #line 6772 "Parser/parser.cc" /* yacc.c:1646 */ 7616 7617 /* Line 1806 of yacc.c */ 7618 #line 1884 "parser.yy" 7619 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 6772 7620 break; 6773 7621 6774 7622 case 497: 6775 #line 1889 "parser.yy" /* yacc.c:1646 */ 6776 { (yyval.decl) = (yyvsp[0].decl); } 6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646 */ 7623 7624 /* Line 1806 of yacc.c */ 7625 #line 1889 "parser.yy" 7626 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6778 7627 break; 6779 7628 6780 7629 case 498: 6781 #line 1891 "parser.yy" /* yacc.c:1646 */ 6782 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6783 #line 6784 "Parser/parser.cc" /* yacc.c:1646 */ 7630 7631 /* Line 1806 of yacc.c */ 7632 #line 1891 "parser.yy" 7633 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 6784 7634 break; 6785 7635 6786 7636 case 499: 6787 #line 1893 "parser.yy" /* yacc.c:1646 */ 6788 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6789 #line 6790 "Parser/parser.cc" /* yacc.c:1646 */ 7637 7638 /* Line 1806 of yacc.c */ 7639 #line 1893 "parser.yy" 7640 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 6790 7641 break; 6791 7642 6792 7643 case 500: 6793 #line 1898 "parser.yy" /* yacc.c:1646 */ 6794 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6795 #line 6796 "Parser/parser.cc" /* yacc.c:1646 */ 7644 7645 /* Line 1806 of yacc.c */ 7646 #line 1898 "parser.yy" 7647 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 6796 7648 break; 6797 7649 6798 7650 case 501: 6799 #line 1900 "parser.yy" /* yacc.c:1646 */ 6800 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6801 #line 6802 "Parser/parser.cc" /* yacc.c:1646 */ 7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1900 "parser.yy" 7654 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 6802 7655 break; 6803 7656 6804 7657 case 502: 6805 #line 1905 "parser.yy" /* yacc.c:1646 */ 7658 7659 /* Line 1806 of yacc.c */ 7660 #line 1905 "parser.yy" 6806 7661 { 6807 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );6808 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ 0].tok), 0 );7662 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7663 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6809 7664 } 6810 #line 6811 "Parser/parser.cc" /* yacc.c:1646 */6811 7665 break; 6812 7666 6813 7667 case 503: 6814 #line 1910 "parser.yy" /* yacc.c:1646 */ 7668 7669 /* Line 1806 of yacc.c */ 7670 #line 1910 "parser.yy" 6815 7671 { 6816 typedefTable.addToEnclosingScope( *(yyvsp[ -5].tok), TypedefTable::TG );6817 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ -5].tok), (yyvsp[-2].decl) );7672 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7673 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6818 7674 } 6819 #line 6820 "Parser/parser.cc" /* yacc.c:1646 */6820 7675 break; 6821 7676 6822 7677 case 504: 6823 #line 1918 "parser.yy" /* yacc.c:1646 */ 7678 7679 /* Line 1806 of yacc.c */ 7680 #line 1918 "parser.yy" 6824 7681 { 6825 typedefTable.addToEnclosingScope( *(yyvsp[ -7].tok), TypedefTable::ID );6826 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -7].tok), (yyvsp[-4].decl), 0 );7682 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7683 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6827 7684 } 6828 #line 6829 "Parser/parser.cc" /* yacc.c:1646 */6829 7685 break; 6830 7686 6831 7687 case 505: 6832 #line 1923 "parser.yy" /* yacc.c:1646 */ 7688 7689 /* Line 1806 of yacc.c */ 7690 #line 1923 "parser.yy" 6833 7691 { 6834 typedefTable.enterTrait( *(yyvsp[ -6].tok) );7692 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6835 7693 typedefTable.enterScope(); 6836 7694 } 6837 #line 6838 "Parser/parser.cc" /* yacc.c:1646 */6838 7695 break; 6839 7696 6840 7697 case 506: 6841 #line 1928 "parser.yy" /* yacc.c:1646 */ 7698 7699 /* Line 1806 of yacc.c */ 7700 #line 1928 "parser.yy" 6842 7701 { 6843 7702 typedefTable.leaveTrait(); 6844 typedefTable.addToEnclosingScope( *(yyvsp[ -9].tok), TypedefTable::ID );6845 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );7703 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID ); 7704 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) ); 6846 7705 } 6847 #line 6848 "Parser/parser.cc" /* yacc.c:1646 */6848 7706 break; 6849 7707 6850 7708 case 508: 6851 #line 1938 "parser.yy" /* yacc.c:1646 */ 6852 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6853 #line 6854 "Parser/parser.cc" /* yacc.c:1646 */ 7709 7710 /* Line 1806 of yacc.c */ 7711 #line 1938 "parser.yy" 7712 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6854 7713 break; 6855 7714 6856 7715 case 511: 6857 #line 1948 "parser.yy" /* yacc.c:1646 */ 7716 7717 /* Line 1806 of yacc.c */ 7718 #line 1948 "parser.yy" 6858 7719 { 6859 7720 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6860 (yyval.decl) = (yyvsp[ 0].decl);7721 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6861 7722 } 6862 #line 6863 "Parser/parser.cc" /* yacc.c:1646 */6863 7723 break; 6864 7724 6865 7725 case 512: 6866 #line 1953 "parser.yy" /* yacc.c:1646 */ 7726 7727 /* Line 1806 of yacc.c */ 7728 #line 1953 "parser.yy" 6867 7729 { 6868 7730 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6869 (yyval.decl) = (yyvsp[ 0].decl);7731 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6870 7732 } 6871 #line 6872 "Parser/parser.cc" /* yacc.c:1646 */6872 7733 break; 6873 7734 6874 7735 case 513: 6875 #line 1958 "parser.yy" /* yacc.c:1646 */ 7736 7737 /* Line 1806 of yacc.c */ 7738 #line 1958 "parser.yy" 6876 7739 { 6877 typedefTable.addToEnclosingScope2( *(yyvsp[ 0].tok), TypedefTable::ID );6878 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );7740 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7741 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6879 7742 } 6880 #line 6881 "Parser/parser.cc" /* yacc.c:1646 */6881 7743 break; 6882 7744 6883 7745 case 514: 6884 #line 1966 "parser.yy" /* yacc.c:1646 */ 7746 7747 /* Line 1806 of yacc.c */ 7748 #line 1966 "parser.yy" 6885 7749 { 6886 7750 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6887 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );7751 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 6888 7752 } 6889 #line 6890 "Parser/parser.cc" /* yacc.c:1646 */6890 7753 break; 6891 7754 6892 7755 case 515: 6893 #line 1971 "parser.yy" /* yacc.c:1646 */ 7756 7757 /* Line 1806 of yacc.c */ 7758 #line 1971 "parser.yy" 6894 7759 { 6895 7760 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6896 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );7761 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) ); 6897 7762 } 6898 #line 6899 "Parser/parser.cc" /* yacc.c:1646 */6899 7763 break; 6900 7764 6901 7765 case 516: 6902 #line 1981 "parser.yy" /* yacc.c:1646 */ 7766 7767 /* Line 1806 of yacc.c */ 7768 #line 1981 "parser.yy" 6903 7769 {} 6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646 */6905 7770 break; 6906 7771 6907 7772 case 517: 6908 #line 1983 "parser.yy" /* yacc.c:1646 */ 6909 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6910 #line 6911 "Parser/parser.cc" /* yacc.c:1646 */ 7773 7774 /* Line 1806 of yacc.c */ 7775 #line 1983 "parser.yy" 7776 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 6911 7777 break; 6912 7778 6913 7779 case 519: 6914 #line 1989 "parser.yy" /* yacc.c:1646 */ 6915 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6916 #line 6917 "Parser/parser.cc" /* yacc.c:1646 */ 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 1989 "parser.yy" 7783 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 6917 7784 break; 6918 7785 6919 7786 case 520: 6920 #line 1994 "parser.yy" /* yacc.c:1646 */ 7787 7788 /* Line 1806 of yacc.c */ 7789 #line 1994 "parser.yy" 6921 7790 { (yyval.decl) = 0; } 6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646 */6923 7791 break; 6924 7792 6925 7793 case 524: 6926 #line 2002 "parser.yy" /* yacc.c:1646 */ 7794 7795 /* Line 1806 of yacc.c */ 7796 #line 2002 "parser.yy" 6927 7797 {} 6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646 */6929 7798 break; 6930 7799 6931 7800 case 525: 6932 #line 2004 "parser.yy" /* yacc.c:1646 */ 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 2004 "parser.yy" 6933 7804 { 6934 7805 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 6935 linkage = LinkageSpec::fromString( *(yyvsp[ 0].tok) );7806 linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) ); 6936 7807 } 6937 #line 6938 "Parser/parser.cc" /* yacc.c:1646 */6938 7808 break; 6939 7809 6940 7810 case 526: 6941 #line 2009 "parser.yy" /* yacc.c:1646 */ 7811 7812 /* Line 1806 of yacc.c */ 7813 #line 2009 "parser.yy" 6942 7814 { 6943 7815 linkage = linkageStack.top(); 6944 7816 linkageStack.pop(); 6945 (yyval.decl) = (yyvsp[ -1].decl);7817 (yyval.decl) = (yyvsp[(5) - (6)].decl); 6946 7818 } 6947 #line 6948 "Parser/parser.cc" /* yacc.c:1646 */6948 7819 break; 6949 7820 6950 7821 case 527: 6951 #line 2015 "parser.yy" /* yacc.c:1646 */ 7822 7823 /* Line 1806 of yacc.c */ 7824 #line 2015 "parser.yy" 6952 7825 { // mark all fields in list 6953 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7826 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6954 7827 iter->set_extension( true ); 6955 (yyval.decl) = (yyvsp[ 0].decl);7828 (yyval.decl) = (yyvsp[(2) - (2)].decl); 6956 7829 } 6957 #line 6958 "Parser/parser.cc" /* yacc.c:1646 */6958 7830 break; 6959 7831 6960 7832 case 529: 6961 #line 2030 "parser.yy" /* yacc.c:1646 */ 7833 7834 /* Line 1806 of yacc.c */ 7835 #line 2030 "parser.yy" 6962 7836 { 6963 7837 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6964 7838 typedefTable.leaveScope(); 6965 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7839 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6966 7840 } 6967 #line 6968 "Parser/parser.cc" /* yacc.c:1646 */6968 7841 break; 6969 7842 6970 7843 case 530: 6971 #line 2036 "parser.yy" /* yacc.c:1646 */ 7844 7845 /* Line 1806 of yacc.c */ 7846 #line 2036 "parser.yy" 6972 7847 { 6973 7848 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6974 7849 typedefTable.leaveScope(); 6975 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );7850 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) ); 6976 7851 } 6977 #line 6978 "Parser/parser.cc" /* yacc.c:1646 */6978 7852 break; 6979 7853 6980 7854 case 531: 6981 #line 2045 "parser.yy" /* yacc.c:1646 */ 7855 7856 /* Line 1806 of yacc.c */ 7857 #line 2045 "parser.yy" 6982 7858 { 6983 7859 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6984 7860 typedefTable.leaveScope(); 6985 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7861 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6986 7862 } 6987 #line 6988 "Parser/parser.cc" /* yacc.c:1646 */6988 7863 break; 6989 7864 6990 7865 case 532: 6991 #line 2051 "parser.yy" /* yacc.c:1646 */ 7866 7867 /* Line 1806 of yacc.c */ 7868 #line 2051 "parser.yy" 6992 7869 { 6993 7870 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6994 7871 typedefTable.leaveScope(); 6995 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );7872 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) ); 6996 7873 } 6997 #line 6998 "Parser/parser.cc" /* yacc.c:1646 */6998 7874 break; 6999 7875 7000 7876 case 533: 7001 #line 2057 "parser.yy" /* yacc.c:1646 */ 7877 7878 /* Line 1806 of yacc.c */ 7879 #line 2057 "parser.yy" 7002 7880 { 7003 7881 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7004 7882 typedefTable.leaveScope(); 7005 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7883 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7006 7884 } 7007 #line 7008 "Parser/parser.cc" /* yacc.c:1646 */7008 7885 break; 7009 7886 7010 7887 case 534: 7011 #line 2063 "parser.yy" /* yacc.c:1646 */ 7888 7889 /* Line 1806 of yacc.c */ 7890 #line 2063 "parser.yy" 7012 7891 { 7013 7892 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7014 7893 typedefTable.leaveScope(); 7015 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7894 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7016 7895 } 7017 #line 7018 "Parser/parser.cc" /* yacc.c:1646 */7018 7896 break; 7019 7897 7020 7898 case 535: 7021 #line 2069 "parser.yy" /* yacc.c:1646 */ 7899 7900 /* Line 1806 of yacc.c */ 7901 #line 2069 "parser.yy" 7022 7902 { 7023 7903 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7024 7904 typedefTable.leaveScope(); 7025 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );7905 (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); 7026 7906 } 7027 #line 7028 "Parser/parser.cc" /* yacc.c:1646 */7028 7907 break; 7029 7908 7030 7909 case 536: 7031 #line 2077 "parser.yy" /* yacc.c:1646 */ 7910 7911 /* Line 1806 of yacc.c */ 7912 #line 2077 "parser.yy" 7032 7913 { 7033 7914 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7034 7915 typedefTable.leaveScope(); 7035 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );7916 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) ); 7036 7917 } 7037 #line 7038 "Parser/parser.cc" /* yacc.c:1646 */7038 7918 break; 7039 7919 7040 7920 case 537: 7041 #line 2083 "parser.yy" /* yacc.c:1646 */ 7921 7922 /* Line 1806 of yacc.c */ 7923 #line 2083 "parser.yy" 7042 7924 { 7043 7925 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7044 7926 typedefTable.leaveScope(); 7045 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7927 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7046 7928 } 7047 #line 7048 "Parser/parser.cc" /* yacc.c:1646 */7048 7929 break; 7049 7930 7050 7931 case 538: 7051 #line 2091 "parser.yy" /* yacc.c:1646 */ 7932 7933 /* Line 1806 of yacc.c */ 7934 #line 2091 "parser.yy" 7052 7935 { 7053 7936 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7054 7937 typedefTable.leaveScope(); 7055 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7938 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7056 7939 } 7057 #line 7058 "Parser/parser.cc" /* yacc.c:1646 */7058 7940 break; 7059 7941 7060 7942 case 539: 7061 #line 2097 "parser.yy" /* yacc.c:1646 */ 7943 7944 /* Line 1806 of yacc.c */ 7945 #line 2097 "parser.yy" 7062 7946 { 7063 7947 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7064 7948 typedefTable.leaveScope(); 7065 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );7949 (yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) ); 7066 7950 } 7067 #line 7068 "Parser/parser.cc" /* yacc.c:1646 */7068 7951 break; 7069 7952 7070 7953 case 543: 7071 #line 2112 "parser.yy" /* yacc.c:1646 */ 7072 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7073 #line 7074 "Parser/parser.cc" /* yacc.c:1646 */ 7954 7955 /* Line 1806 of yacc.c */ 7956 #line 2112 "parser.yy" 7957 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7074 7958 break; 7075 7959 7076 7960 case 545: 7077 #line 2117 "parser.yy" /* yacc.c:1646 */ 7078 { delete (yyvsp[-2].str); } 7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646 */ 7961 7962 /* Line 1806 of yacc.c */ 7963 #line 2117 "parser.yy" 7964 { delete (yyvsp[(3) - (5)].str); } 7080 7965 break; 7081 7966 7082 7967 case 546: 7083 #line 2122 "parser.yy" /* yacc.c:1646 */ 7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2122 "parser.yy" 7084 7971 { (yyval.decl) = 0; } 7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646 */7086 7972 break; 7087 7973 7088 7974 case 549: 7089 #line 2129 "parser.yy" /* yacc.c:1646 */ 7090 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7091 #line 7092 "Parser/parser.cc" /* yacc.c:1646 */ 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2129 "parser.yy" 7978 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7092 7979 break; 7093 7980 7094 7981 case 550: 7095 #line 2135 "parser.yy" /* yacc.c:1646 */ 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2135 "parser.yy" 7096 7985 { (yyval.decl) = 0; } 7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646 */7098 7986 break; 7099 7987 7100 7988 case 555: 7101 #line 2146 "parser.yy" /* yacc.c:1646 */ 7102 { delete (yyvsp[-1].en); } 7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646 */ 7989 7990 /* Line 1806 of yacc.c */ 7991 #line 2146 "parser.yy" 7992 { delete (yyvsp[(3) - (4)].en); } 7104 7993 break; 7105 7994 7106 7995 case 556: 7107 #line 2150 "parser.yy" /* yacc.c:1646 */ 7108 { delete (yyvsp[0].tok); } 7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646 */ 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2150 "parser.yy" 7999 { delete (yyvsp[(1) - (1)].tok); } 7110 8000 break; 7111 8001 7112 8002 case 557: 7113 #line 2151 "parser.yy" /* yacc.c:1646 */ 7114 { delete (yyvsp[0].decl); } 7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2151 "parser.yy" 8006 { delete (yyvsp[(1) - (1)].decl); } 7116 8007 break; 7117 8008 7118 8009 case 558: 7119 #line 2152 "parser.yy" /* yacc.c:1646 */ 7120 { delete (yyvsp[0].decl); } 7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646 */ 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2152 "parser.yy" 8013 { delete (yyvsp[(1) - (1)].decl); } 7122 8014 break; 7123 8015 7124 8016 case 559: 7125 #line 2153 "parser.yy" /* yacc.c:1646 */ 7126 { delete (yyvsp[0].decl); } 7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646 */ 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2153 "parser.yy" 8020 { delete (yyvsp[(1) - (1)].decl); } 7128 8021 break; 7129 8022 7130 8023 case 560: 7131 #line 2188 "parser.yy" /* yacc.c:1646 */ 7132 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646 */ 8024 8025 /* Line 1806 of yacc.c */ 8026 #line 2188 "parser.yy" 8027 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7134 8028 break; 7135 8029 7136 8030 case 562: 7137 #line 2191 "parser.yy" /* yacc.c:1646 */ 7138 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7139 #line 7140 "Parser/parser.cc" /* yacc.c:1646 */ 8031 8032 /* Line 1806 of yacc.c */ 8033 #line 2191 "parser.yy" 8034 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7140 8035 break; 7141 8036 7142 8037 case 563: 7143 #line 2193 "parser.yy" /* yacc.c:1646 */ 7144 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7145 #line 7146 "Parser/parser.cc" /* yacc.c:1646 */ 8038 8039 /* Line 1806 of yacc.c */ 8040 #line 2193 "parser.yy" 8041 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7146 8042 break; 7147 8043 7148 8044 case 564: 7149 #line 2198 "parser.yy" /* yacc.c:1646 */ 8045 8046 /* Line 1806 of yacc.c */ 8047 #line 2198 "parser.yy" 7150 8048 { 7151 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7152 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8049 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8050 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7153 8051 } 7154 #line 7155 "Parser/parser.cc" /* yacc.c:1646 */7155 8052 break; 7156 8053 7157 8054 case 565: 7158 #line 2203 "parser.yy" /* yacc.c:1646 */ 7159 { (yyval.decl) = (yyvsp[-1].decl); } 7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646 */ 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2203 "parser.yy" 8058 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7161 8059 break; 7162 8060 7163 8061 case 566: 7164 #line 2208 "parser.yy" /* yacc.c:1646 */ 7165 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7166 #line 7167 "Parser/parser.cc" /* yacc.c:1646 */ 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2208 "parser.yy" 8065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7167 8066 break; 7168 8067 7169 8068 case 567: 7170 #line 2210 "parser.yy" /* yacc.c:1646 */ 7171 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7172 #line 7173 "Parser/parser.cc" /* yacc.c:1646 */ 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2210 "parser.yy" 8072 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7173 8073 break; 7174 8074 7175 8075 case 568: 7176 #line 2212 "parser.yy" /* yacc.c:1646 */ 7177 { (yyval.decl) = (yyvsp[-1].decl); } 7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646 */ 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2212 "parser.yy" 8079 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7179 8080 break; 7180 8081 7181 8082 case 569: 7182 #line 2217 "parser.yy" /* yacc.c:1646 */ 7183 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7184 #line 7185 "Parser/parser.cc" /* yacc.c:1646 */ 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2217 "parser.yy" 8086 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7185 8087 break; 7186 8088 7187 8089 case 570: 7188 #line 2219 "parser.yy" /* yacc.c:1646 */ 7189 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646 */ 8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2219 "parser.yy" 8093 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7191 8094 break; 7192 8095 7193 8096 case 571: 7194 #line 2221 "parser.yy" /* yacc.c:1646 */ 7195 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7196 #line 7197 "Parser/parser.cc" /* yacc.c:1646 */ 8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2221 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7197 8101 break; 7198 8102 7199 8103 case 572: 7200 #line 2223 "parser.yy" /* yacc.c:1646 */ 7201 { (yyval.decl) = (yyvsp[-1].decl); } 7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646 */ 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2223 "parser.yy" 8107 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7203 8108 break; 7204 8109 7205 8110 case 573: 7206 #line 2228 "parser.yy" /* yacc.c:1646 */ 7207 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7208 #line 7209 "Parser/parser.cc" /* yacc.c:1646 */ 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2228 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7209 8115 break; 7210 8116 7211 8117 case 574: 7212 #line 2230 "parser.yy" /* yacc.c:1646 */ 7213 { (yyval.decl) = (yyvsp[-1].decl); } 7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646 */ 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2230 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7215 8122 break; 7216 8123 7217 8124 case 575: 7218 #line 2239 "parser.yy" /* yacc.c:1646 */ 7219 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646 */ 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2239 "parser.yy" 8128 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7221 8129 break; 7222 8130 7223 8131 case 577: 7224 #line 2242 "parser.yy" /* yacc.c:1646 */ 7225 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7226 #line 7227 "Parser/parser.cc" /* yacc.c:1646 */ 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2242 "parser.yy" 8135 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7227 8136 break; 7228 8137 7229 8138 case 578: 7230 #line 2247 "parser.yy" /* yacc.c:1646 */ 7231 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7232 #line 7233 "Parser/parser.cc" /* yacc.c:1646 */ 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2247 "parser.yy" 8142 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7233 8143 break; 7234 8144 7235 8145 case 579: 7236 #line 2249 "parser.yy" /* yacc.c:1646 */ 7237 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7238 #line 7239 "Parser/parser.cc" /* yacc.c:1646 */ 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2249 "parser.yy" 8149 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7239 8150 break; 7240 8151 7241 8152 case 580: 7242 #line 2251 "parser.yy" /* yacc.c:1646 */ 7243 { (yyval.decl) = (yyvsp[-1].decl); } 7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646 */ 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2251 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7245 8157 break; 7246 8158 7247 8159 case 581: 7248 #line 2256 "parser.yy" /* yacc.c:1646 */ 7249 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7250 #line 7251 "Parser/parser.cc" /* yacc.c:1646 */ 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2256 "parser.yy" 8163 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7251 8164 break; 7252 8165 7253 8166 case 582: 7254 #line 2258 "parser.yy" /* yacc.c:1646 */ 7255 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7256 #line 7257 "Parser/parser.cc" /* yacc.c:1646 */ 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2258 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7257 8171 break; 7258 8172 7259 8173 case 583: 7260 #line 2260 "parser.yy" /* yacc.c:1646 */ 7261 { (yyval.decl) = (yyvsp[-1].decl); } 7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646 */ 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2260 "parser.yy" 8177 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7263 8178 break; 7264 8179 7265 8180 case 584: 7266 #line 2265 "parser.yy" /* yacc.c:1646 */ 7267 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646 */ 8181 8182 /* Line 1806 of yacc.c */ 8183 #line 2265 "parser.yy" 8184 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7269 8185 break; 7270 8186 7271 8187 case 585: 7272 #line 2267 "parser.yy" /* yacc.c:1646 */ 7273 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7274 #line 7275 "Parser/parser.cc" /* yacc.c:1646 */ 8188 8189 /* Line 1806 of yacc.c */ 8190 #line 2267 "parser.yy" 8191 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7275 8192 break; 7276 8193 7277 8194 case 586: 7278 #line 2269 "parser.yy" /* yacc.c:1646 */ 7279 { (yyval.decl) = (yyvsp[-1].decl); } 7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646 */ 8195 8196 /* Line 1806 of yacc.c */ 8197 #line 2269 "parser.yy" 8198 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7281 8199 break; 7282 8200 7283 8201 case 590: 7284 #line 2284 "parser.yy" /* yacc.c:1646 */ 7285 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7286 #line 7287 "Parser/parser.cc" /* yacc.c:1646 */ 8202 8203 /* Line 1806 of yacc.c */ 8204 #line 2284 "parser.yy" 8205 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7287 8206 break; 7288 8207 7289 8208 case 591: 7290 #line 2286 "parser.yy" /* yacc.c:1646 */ 7291 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7292 #line 7293 "Parser/parser.cc" /* yacc.c:1646 */ 8209 8210 /* Line 1806 of yacc.c */ 8211 #line 2286 "parser.yy" 8212 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7293 8213 break; 7294 8214 7295 8215 case 592: 7296 #line 2288 "parser.yy" /* yacc.c:1646 */ 7297 { (yyval.decl) = (yyvsp[-1].decl); } 7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646 */ 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2288 "parser.yy" 8219 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7299 8220 break; 7300 8221 7301 8222 case 593: 7302 #line 2293 "parser.yy" /* yacc.c:1646 */ 7303 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7304 #line 7305 "Parser/parser.cc" /* yacc.c:1646 */ 8223 8224 /* Line 1806 of yacc.c */ 8225 #line 2293 "parser.yy" 8226 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7305 8227 break; 7306 8228 7307 8229 case 594: 7308 #line 2295 "parser.yy" /* yacc.c:1646 */ 7309 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7310 #line 7311 "Parser/parser.cc" /* yacc.c:1646 */ 8230 8231 /* Line 1806 of yacc.c */ 8232 #line 2295 "parser.yy" 8233 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7311 8234 break; 7312 8235 7313 8236 case 595: 7314 #line 2297 "parser.yy" /* yacc.c:1646 */ 7315 { (yyval.decl) = (yyvsp[-1].decl); } 7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646 */ 8237 8238 /* Line 1806 of yacc.c */ 8239 #line 2297 "parser.yy" 8240 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7317 8241 break; 7318 8242 7319 8243 case 596: 7320 #line 2302 "parser.yy" /* yacc.c:1646 */ 7321 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646 */ 8244 8245 /* Line 1806 of yacc.c */ 8246 #line 2302 "parser.yy" 8247 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7323 8248 break; 7324 8249 7325 8250 case 597: 7326 #line 2304 "parser.yy" /* yacc.c:1646 */ 7327 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7328 #line 7329 "Parser/parser.cc" /* yacc.c:1646 */ 8251 8252 /* Line 1806 of yacc.c */ 8253 #line 2304 "parser.yy" 8254 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7329 8255 break; 7330 8256 7331 8257 case 598: 7332 #line 2306 "parser.yy" /* yacc.c:1646 */ 7333 { (yyval.decl) = (yyvsp[-1].decl); } 7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646 */ 8258 8259 /* Line 1806 of yacc.c */ 8260 #line 2306 "parser.yy" 8261 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7335 8262 break; 7336 8263 7337 8264 case 599: 7338 #line 2321 "parser.yy" /* yacc.c:1646 */ 7339 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646 */ 8265 8266 /* Line 1806 of yacc.c */ 8267 #line 2321 "parser.yy" 8268 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7341 8269 break; 7342 8270 7343 8271 case 601: 7344 #line 2324 "parser.yy" /* yacc.c:1646 */ 7345 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7346 #line 7347 "Parser/parser.cc" /* yacc.c:1646 */ 8272 8273 /* Line 1806 of yacc.c */ 8274 #line 2324 "parser.yy" 8275 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7347 8276 break; 7348 8277 7349 8278 case 602: 7350 #line 2326 "parser.yy" /* yacc.c:1646 */ 7351 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7352 #line 7353 "Parser/parser.cc" /* yacc.c:1646 */ 8279 8280 /* Line 1806 of yacc.c */ 8281 #line 2326 "parser.yy" 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7353 8283 break; 7354 8284 7355 8285 case 604: 7356 #line 2332 "parser.yy" /* yacc.c:1646 */ 7357 { (yyval.decl) = (yyvsp[-1].decl); } 7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646 */ 8286 8287 /* Line 1806 of yacc.c */ 8288 #line 2332 "parser.yy" 8289 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7359 8290 break; 7360 8291 7361 8292 case 605: 7362 #line 2337 "parser.yy" /* yacc.c:1646 */ 7363 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7364 #line 7365 "Parser/parser.cc" /* yacc.c:1646 */ 8293 8294 /* Line 1806 of yacc.c */ 8295 #line 2337 "parser.yy" 8296 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7365 8297 break; 7366 8298 7367 8299 case 606: 7368 #line 2339 "parser.yy" /* yacc.c:1646 */ 7369 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7370 #line 7371 "Parser/parser.cc" /* yacc.c:1646 */ 8300 8301 /* Line 1806 of yacc.c */ 8302 #line 2339 "parser.yy" 8303 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7371 8304 break; 7372 8305 7373 8306 case 607: 7374 #line 2341 "parser.yy" /* yacc.c:1646 */ 7375 { (yyval.decl) = (yyvsp[-1].decl); } 7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646 */ 8307 8308 /* Line 1806 of yacc.c */ 8309 #line 2341 "parser.yy" 8310 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7377 8311 break; 7378 8312 7379 8313 case 608: 7380 #line 2346 "parser.yy" /* yacc.c:1646 */ 7381 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7382 #line 7383 "Parser/parser.cc" /* yacc.c:1646 */ 8314 8315 /* Line 1806 of yacc.c */ 8316 #line 2346 "parser.yy" 8317 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7383 8318 break; 7384 8319 7385 8320 case 609: 7386 #line 2348 "parser.yy" /* yacc.c:1646 */ 7387 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646 */ 8321 8322 /* Line 1806 of yacc.c */ 8323 #line 2348 "parser.yy" 8324 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7389 8325 break; 7390 8326 7391 8327 case 610: 7392 #line 2350 "parser.yy" /* yacc.c:1646 */ 7393 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7394 #line 7395 "Parser/parser.cc" /* yacc.c:1646 */ 8328 8329 /* Line 1806 of yacc.c */ 8330 #line 2350 "parser.yy" 8331 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7395 8332 break; 7396 8333 7397 8334 case 611: 7398 #line 2352 "parser.yy" /* yacc.c:1646 */ 7399 { (yyval.decl) = (yyvsp[-1].decl); } 7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646 */ 8335 8336 /* Line 1806 of yacc.c */ 8337 #line 2352 "parser.yy" 8338 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7401 8339 break; 7402 8340 7403 8341 case 612: 7404 #line 2357 "parser.yy" /* yacc.c:1646 */ 7405 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7406 #line 7407 "Parser/parser.cc" /* yacc.c:1646 */ 8342 8343 /* Line 1806 of yacc.c */ 8344 #line 2357 "parser.yy" 8345 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7407 8346 break; 7408 8347 7409 8348 case 613: 7410 #line 2359 "parser.yy" /* yacc.c:1646 */ 7411 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7412 #line 7413 "Parser/parser.cc" /* yacc.c:1646 */ 8349 8350 /* Line 1806 of yacc.c */ 8351 #line 2359 "parser.yy" 8352 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7413 8353 break; 7414 8354 7415 8355 case 614: 7416 #line 2361 "parser.yy" /* yacc.c:1646 */ 7417 { (yyval.decl) = (yyvsp[-1].decl); } 7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646 */ 8356 8357 /* Line 1806 of yacc.c */ 8358 #line 2361 "parser.yy" 8359 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7419 8360 break; 7420 8361 7421 8362 case 615: 7422 #line 2371 "parser.yy" /* yacc.c:1646 */ 7423 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646 */ 8363 8364 /* Line 1806 of yacc.c */ 8365 #line 2371 "parser.yy" 8366 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7425 8367 break; 7426 8368 7427 8369 case 617: 7428 #line 2374 "parser.yy" /* yacc.c:1646 */ 7429 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7430 #line 7431 "Parser/parser.cc" /* yacc.c:1646 */ 8370 8371 /* Line 1806 of yacc.c */ 8372 #line 2374 "parser.yy" 8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7431 8374 break; 7432 8375 7433 8376 case 618: 7434 #line 2376 "parser.yy" /* yacc.c:1646 */ 7435 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7436 #line 7437 "Parser/parser.cc" /* yacc.c:1646 */ 8377 8378 /* Line 1806 of yacc.c */ 8379 #line 2376 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7437 8381 break; 7438 8382 7439 8383 case 619: 7440 #line 2381 "parser.yy" /* yacc.c:1646 */ 7441 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7442 #line 7443 "Parser/parser.cc" /* yacc.c:1646 */ 8384 8385 /* Line 1806 of yacc.c */ 8386 #line 2381 "parser.yy" 8387 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7443 8388 break; 7444 8389 7445 8390 case 620: 7446 #line 2383 "parser.yy" /* yacc.c:1646 */ 7447 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7448 #line 7449 "Parser/parser.cc" /* yacc.c:1646 */ 8391 8392 /* Line 1806 of yacc.c */ 8393 #line 2383 "parser.yy" 8394 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7449 8395 break; 7450 8396 7451 8397 case 621: 7452 #line 2385 "parser.yy" /* yacc.c:1646 */ 7453 { (yyval.decl) = (yyvsp[-1].decl); } 7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646 */ 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2385 "parser.yy" 8401 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7455 8402 break; 7456 8403 7457 8404 case 622: 7458 #line 2390 "parser.yy" /* yacc.c:1646 */ 7459 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7460 #line 7461 "Parser/parser.cc" /* yacc.c:1646 */ 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2390 "parser.yy" 8408 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7461 8409 break; 7462 8410 7463 8411 case 623: 7464 #line 2392 "parser.yy" /* yacc.c:1646 */ 7465 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646 */ 8412 8413 /* Line 1806 of yacc.c */ 8414 #line 2392 "parser.yy" 8415 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7467 8416 break; 7468 8417 7469 8418 case 624: 7470 #line 2394 "parser.yy" /* yacc.c:1646 */ 7471 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7472 #line 7473 "Parser/parser.cc" /* yacc.c:1646 */ 8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2394 "parser.yy" 8422 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7473 8423 break; 7474 8424 7475 8425 case 625: 7476 #line 2396 "parser.yy" /* yacc.c:1646 */ 7477 { (yyval.decl) = (yyvsp[-1].decl); } 7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646 */ 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2396 "parser.yy" 8429 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7479 8430 break; 7480 8431 7481 8432 case 626: 7482 #line 2401 "parser.yy" /* yacc.c:1646 */ 7483 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7484 #line 7485 "Parser/parser.cc" /* yacc.c:1646 */ 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2401 "parser.yy" 8436 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7485 8437 break; 7486 8438 7487 8439 case 627: 7488 #line 2403 "parser.yy" /* yacc.c:1646 */ 7489 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7490 #line 7491 "Parser/parser.cc" /* yacc.c:1646 */ 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2403 "parser.yy" 8443 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7491 8444 break; 7492 8445 7493 8446 case 628: 7494 #line 2405 "parser.yy" /* yacc.c:1646 */ 7495 { (yyval.decl) = (yyvsp[-1].decl); } 7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646 */ 8447 8448 /* Line 1806 of yacc.c */ 8449 #line 2405 "parser.yy" 8450 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7497 8451 break; 7498 8452 7499 8453 case 629: 7500 #line 2436 "parser.yy" /* yacc.c:1646 */ 7501 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646 */ 8454 8455 /* Line 1806 of yacc.c */ 8456 #line 2436 "parser.yy" 8457 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7503 8458 break; 7504 8459 7505 8460 case 631: 7506 #line 2439 "parser.yy" /* yacc.c:1646 */ 7507 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7508 #line 7509 "Parser/parser.cc" /* yacc.c:1646 */ 8461 8462 /* Line 1806 of yacc.c */ 8463 #line 2439 "parser.yy" 8464 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7509 8465 break; 7510 8466 7511 8467 case 632: 7512 #line 2441 "parser.yy" /* yacc.c:1646 */ 7513 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7514 #line 7515 "Parser/parser.cc" /* yacc.c:1646 */ 8468 8469 /* Line 1806 of yacc.c */ 8470 #line 2441 "parser.yy" 8471 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7515 8472 break; 7516 8473 7517 8474 case 633: 7518 #line 2446 "parser.yy" /* yacc.c:1646 */ 8475 8476 /* Line 1806 of yacc.c */ 8477 #line 2446 "parser.yy" 7519 8478 { 7520 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7521 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8479 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8480 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7522 8481 } 7523 #line 7524 "Parser/parser.cc" /* yacc.c:1646 */7524 8482 break; 7525 8483 7526 8484 case 634: 7527 #line 2451 "parser.yy" /* yacc.c:1646 */ 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2451 "parser.yy" 7528 8488 { 7529 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7530 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8489 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8490 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7531 8491 } 7532 #line 7533 "Parser/parser.cc" /* yacc.c:1646 */7533 8492 break; 7534 8493 7535 8494 case 635: 7536 #line 2459 "parser.yy" /* yacc.c:1646 */ 7537 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7538 #line 7539 "Parser/parser.cc" /* yacc.c:1646 */ 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2459 "parser.yy" 8498 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7539 8499 break; 7540 8500 7541 8501 case 636: 7542 #line 2461 "parser.yy" /* yacc.c:1646 */ 7543 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7544 #line 7545 "Parser/parser.cc" /* yacc.c:1646 */ 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2461 "parser.yy" 8505 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7545 8506 break; 7546 8507 7547 8508 case 637: 7548 #line 2463 "parser.yy" /* yacc.c:1646 */ 7549 { (yyval.decl) = (yyvsp[-1].decl); } 7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646 */ 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2463 "parser.yy" 8512 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7551 8513 break; 7552 8514 7553 8515 case 638: 7554 #line 2468 "parser.yy" /* yacc.c:1646 */ 7555 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7556 #line 7557 "Parser/parser.cc" /* yacc.c:1646 */ 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2468 "parser.yy" 8519 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7557 8520 break; 7558 8521 7559 8522 case 639: 7560 #line 2470 "parser.yy" /* yacc.c:1646 */ 7561 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7562 #line 7563 "Parser/parser.cc" /* yacc.c:1646 */ 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2470 "parser.yy" 8526 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7563 8527 break; 7564 8528 7565 8529 case 640: 7566 #line 2475 "parser.yy" /* yacc.c:1646 */ 7567 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7568 #line 7569 "Parser/parser.cc" /* yacc.c:1646 */ 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2475 "parser.yy" 8533 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7569 8534 break; 7570 8535 7571 8536 case 641: 7572 #line 2477 "parser.yy" /* yacc.c:1646 */ 7573 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7574 #line 7575 "Parser/parser.cc" /* yacc.c:1646 */ 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2477 "parser.yy" 8540 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7575 8541 break; 7576 8542 7577 8543 case 643: 7578 #line 2492 "parser.yy" /* yacc.c:1646 */ 7579 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646 */ 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2492 "parser.yy" 8547 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7581 8548 break; 7582 8549 7583 8550 case 644: 7584 #line 2494 "parser.yy" /* yacc.c:1646 */ 7585 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7586 #line 7587 "Parser/parser.cc" /* yacc.c:1646 */ 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2494 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7587 8555 break; 7588 8556 7589 8557 case 645: 7590 #line 2499 "parser.yy" /* yacc.c:1646 */ 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2499 "parser.yy" 7591 8561 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646 */7593 8562 break; 7594 8563 7595 8564 case 646: 7596 #line 2501 "parser.yy" /* yacc.c:1646 */ 7597 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7598 #line 7599 "Parser/parser.cc" /* yacc.c:1646 */ 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2501 "parser.yy" 8568 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7599 8569 break; 7600 8570 7601 8571 case 647: 7602 #line 2503 "parser.yy" /* yacc.c:1646 */ 7603 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7604 #line 7605 "Parser/parser.cc" /* yacc.c:1646 */ 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2503 "parser.yy" 8575 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7605 8576 break; 7606 8577 7607 8578 case 648: 7608 #line 2505 "parser.yy" /* yacc.c:1646 */ 7609 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7610 #line 7611 "Parser/parser.cc" /* yacc.c:1646 */ 8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2505 "parser.yy" 8582 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7611 8583 break; 7612 8584 7613 8585 case 649: 7614 #line 2507 "parser.yy" /* yacc.c:1646 */ 7615 { (yyval.decl) = (yyvsp[-1].decl); } 7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646 */ 8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2507 "parser.yy" 8589 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7617 8590 break; 7618 8591 7619 8592 case 651: 7620 #line 2513 "parser.yy" /* yacc.c:1646 */ 7621 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646 */ 8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2513 "parser.yy" 8596 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7623 8597 break; 7624 8598 7625 8599 case 652: 7626 #line 2515 "parser.yy" /* yacc.c:1646 */ 7627 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7628 #line 7629 "Parser/parser.cc" /* yacc.c:1646 */ 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2515 "parser.yy" 8603 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7629 8604 break; 7630 8605 7631 8606 case 653: 7632 #line 2517 "parser.yy" /* yacc.c:1646 */ 7633 { (yyval.decl) = (yyvsp[-1].decl); } 7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646 */ 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2517 "parser.yy" 8610 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7635 8611 break; 7636 8612 7637 8613 case 654: 7638 #line 2522 "parser.yy" /* yacc.c:1646 */ 7639 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7640 #line 7641 "Parser/parser.cc" /* yacc.c:1646 */ 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2522 "parser.yy" 8617 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 7641 8618 break; 7642 8619 7643 8620 case 655: 7644 #line 2524 "parser.yy" /* yacc.c:1646 */ 7645 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7646 #line 7647 "Parser/parser.cc" /* yacc.c:1646 */ 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2524 "parser.yy" 8624 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7647 8625 break; 7648 8626 7649 8627 case 656: 7650 #line 2526 "parser.yy" /* yacc.c:1646 */ 7651 { (yyval.decl) = (yyvsp[-1].decl); } 7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646 */ 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2526 "parser.yy" 8631 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7653 8632 break; 7654 8633 7655 8634 case 657: 7656 #line 2532 "parser.yy" /* yacc.c:1646 */ 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2532 "parser.yy" 7657 8638 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646 */7659 8639 break; 7660 8640 7661 8641 case 658: 7662 #line 2534 "parser.yy" /* yacc.c:1646 */ 7663 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7664 #line 7665 "Parser/parser.cc" /* yacc.c:1646 */ 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2534 "parser.yy" 8645 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 7665 8646 break; 7666 8647 7667 8648 case 660: 7668 #line 2540 "parser.yy" /* yacc.c:1646 */ 7669 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7670 #line 7671 "Parser/parser.cc" /* yacc.c:1646 */ 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2540 "parser.yy" 8652 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 7671 8653 break; 7672 8654 7673 8655 case 661: 7674 #line 2542 "parser.yy" /* yacc.c:1646 */ 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2542 "parser.yy" 7675 8659 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646 */7677 8660 break; 7678 8661 7679 8662 case 662: 7680 #line 2544 "parser.yy" /* yacc.c:1646 */ 7681 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7682 #line 7683 "Parser/parser.cc" /* yacc.c:1646 */ 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2544 "parser.yy" 8666 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 7683 8667 break; 7684 8668 7685 8669 case 663: 7686 #line 2546 "parser.yy" /* yacc.c:1646 */ 7687 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7688 #line 7689 "Parser/parser.cc" /* yacc.c:1646 */ 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2546 "parser.yy" 8673 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7689 8674 break; 7690 8675 7691 8676 case 665: 7692 #line 2561 "parser.yy" /* yacc.c:1646 */ 7693 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646 */ 8677 8678 /* Line 1806 of yacc.c */ 8679 #line 2561 "parser.yy" 8680 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7695 8681 break; 7696 8682 7697 8683 case 666: 7698 #line 2563 "parser.yy" /* yacc.c:1646 */ 7699 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7700 #line 7701 "Parser/parser.cc" /* yacc.c:1646 */ 8684 8685 /* Line 1806 of yacc.c */ 8686 #line 2563 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7701 8688 break; 7702 8689 7703 8690 case 667: 7704 #line 2568 "parser.yy" /* yacc.c:1646 */ 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2568 "parser.yy" 7705 8694 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646 */7707 8695 break; 7708 8696 7709 8697 case 668: 7710 #line 2570 "parser.yy" /* yacc.c:1646 */ 7711 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7712 #line 7713 "Parser/parser.cc" /* yacc.c:1646 */ 8698 8699 /* Line 1806 of yacc.c */ 8700 #line 2570 "parser.yy" 8701 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7713 8702 break; 7714 8703 7715 8704 case 669: 7716 #line 2572 "parser.yy" /* yacc.c:1646 */ 7717 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7718 #line 7719 "Parser/parser.cc" /* yacc.c:1646 */ 8705 8706 /* Line 1806 of yacc.c */ 8707 #line 2572 "parser.yy" 8708 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7719 8709 break; 7720 8710 7721 8711 case 670: 7722 #line 2574 "parser.yy" /* yacc.c:1646 */ 7723 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7724 #line 7725 "Parser/parser.cc" /* yacc.c:1646 */ 8712 8713 /* Line 1806 of yacc.c */ 8714 #line 2574 "parser.yy" 8715 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7725 8716 break; 7726 8717 7727 8718 case 671: 7728 #line 2576 "parser.yy" /* yacc.c:1646 */ 7729 { (yyval.decl) = (yyvsp[-1].decl); } 7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646 */ 8719 8720 /* Line 1806 of yacc.c */ 8721 #line 2576 "parser.yy" 8722 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7731 8723 break; 7732 8724 7733 8725 case 673: 7734 #line 2582 "parser.yy" /* yacc.c:1646 */ 7735 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646 */ 8726 8727 /* Line 1806 of yacc.c */ 8728 #line 2582 "parser.yy" 8729 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7737 8730 break; 7738 8731 7739 8732 case 674: 7740 #line 2584 "parser.yy" /* yacc.c:1646 */ 7741 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7742 #line 7743 "Parser/parser.cc" /* yacc.c:1646 */ 8733 8734 /* Line 1806 of yacc.c */ 8735 #line 2584 "parser.yy" 8736 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7743 8737 break; 7744 8738 7745 8739 case 675: 7746 #line 2586 "parser.yy" /* yacc.c:1646 */ 7747 { (yyval.decl) = (yyvsp[-1].decl); } 7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646 */ 8740 8741 /* Line 1806 of yacc.c */ 8742 #line 2586 "parser.yy" 8743 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7749 8744 break; 7750 8745 7751 8746 case 676: 7752 #line 2591 "parser.yy" /* yacc.c:1646 */ 7753 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7754 #line 7755 "Parser/parser.cc" /* yacc.c:1646 */ 8747 8748 /* Line 1806 of yacc.c */ 8749 #line 2591 "parser.yy" 8750 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 7755 8751 break; 7756 8752 7757 8753 case 677: 7758 #line 2593 "parser.yy" /* yacc.c:1646 */ 7759 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7760 #line 7761 "Parser/parser.cc" /* yacc.c:1646 */ 8754 8755 /* Line 1806 of yacc.c */ 8756 #line 2593 "parser.yy" 8757 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7761 8758 break; 7762 8759 7763 8760 case 678: 7764 #line 2595 "parser.yy" /* yacc.c:1646 */ 7765 { (yyval.decl) = (yyvsp[-1].decl); } 7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646 */ 8761 8762 /* Line 1806 of yacc.c */ 8763 #line 2595 "parser.yy" 8764 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7767 8765 break; 7768 8766 7769 8767 case 680: 7770 #line 2602 "parser.yy" /* yacc.c:1646 */ 7771 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7772 #line 7773 "Parser/parser.cc" /* yacc.c:1646 */ 8768 8769 /* Line 1806 of yacc.c */ 8770 #line 2602 "parser.yy" 8771 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7773 8772 break; 7774 8773 7775 8774 case 682: 7776 #line 2613 "parser.yy" /* yacc.c:1646 */ 8775 8776 /* Line 1806 of yacc.c */ 8777 #line 2613 "parser.yy" 7777 8778 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646 */7779 8779 break; 7780 8780 7781 8781 case 683: 7782 #line 2616 "parser.yy" /* yacc.c:1646 */ 7783 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7784 #line 7785 "Parser/parser.cc" /* yacc.c:1646 */ 8782 8783 /* Line 1806 of yacc.c */ 8784 #line 2616 "parser.yy" 8785 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7785 8786 break; 7786 8787 7787 8788 case 684: 7788 #line 2618 "parser.yy" /* yacc.c:1646 */ 7789 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7790 #line 7791 "Parser/parser.cc" /* yacc.c:1646 */ 8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2618 "parser.yy" 8792 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 7791 8793 break; 7792 8794 7793 8795 case 685: 7794 #line 2621 "parser.yy" /* yacc.c:1646 */ 7795 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7796 #line 7797 "Parser/parser.cc" /* yacc.c:1646 */ 8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2621 "parser.yy" 8799 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7797 8800 break; 7798 8801 7799 8802 case 686: 7800 #line 2623 "parser.yy" /* yacc.c:1646 */ 7801 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7802 #line 7803 "Parser/parser.cc" /* yacc.c:1646 */ 8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2623 "parser.yy" 8806 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 7803 8807 break; 7804 8808 7805 8809 case 687: 7806 #line 2625 "parser.yy" /* yacc.c:1646 */ 7807 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7808 #line 7809 "Parser/parser.cc" /* yacc.c:1646 */ 8810 8811 /* Line 1806 of yacc.c */ 8812 #line 2625 "parser.yy" 8813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 7809 8814 break; 7810 8815 7811 8816 case 689: 7812 #line 2639 "parser.yy" /* yacc.c:1646 */ 7813 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646 */ 8817 8818 /* Line 1806 of yacc.c */ 8819 #line 2639 "parser.yy" 8820 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7815 8821 break; 7816 8822 7817 8823 case 690: 7818 #line 2641 "parser.yy" /* yacc.c:1646 */ 7819 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7820 #line 7821 "Parser/parser.cc" /* yacc.c:1646 */ 8824 8825 /* Line 1806 of yacc.c */ 8826 #line 2641 "parser.yy" 8827 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7821 8828 break; 7822 8829 7823 8830 case 691: 7824 #line 2646 "parser.yy" /* yacc.c:1646 */ 8831 8832 /* Line 1806 of yacc.c */ 8833 #line 2646 "parser.yy" 7825 8834 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646 */7827 8835 break; 7828 8836 7829 8837 case 692: 7830 #line 2648 "parser.yy" /* yacc.c:1646 */ 7831 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7832 #line 7833 "Parser/parser.cc" /* yacc.c:1646 */ 8838 8839 /* Line 1806 of yacc.c */ 8840 #line 2648 "parser.yy" 8841 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7833 8842 break; 7834 8843 7835 8844 case 693: 7836 #line 2650 "parser.yy" /* yacc.c:1646 */ 7837 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7838 #line 7839 "Parser/parser.cc" /* yacc.c:1646 */ 8845 8846 /* Line 1806 of yacc.c */ 8847 #line 2650 "parser.yy" 8848 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7839 8849 break; 7840 8850 7841 8851 case 694: 7842 #line 2652 "parser.yy" /* yacc.c:1646 */ 7843 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7844 #line 7845 "Parser/parser.cc" /* yacc.c:1646 */ 8852 8853 /* Line 1806 of yacc.c */ 8854 #line 2652 "parser.yy" 8855 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7845 8856 break; 7846 8857 7847 8858 case 695: 7848 #line 2654 "parser.yy" /* yacc.c:1646 */ 7849 { (yyval.decl) = (yyvsp[-1].decl); } 7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646 */ 8859 8860 /* Line 1806 of yacc.c */ 8861 #line 2654 "parser.yy" 8862 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7851 8863 break; 7852 8864 7853 8865 case 697: 7854 #line 2660 "parser.yy" /* yacc.c:1646 */ 7855 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646 */ 8866 8867 /* Line 1806 of yacc.c */ 8868 #line 2660 "parser.yy" 8869 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7857 8870 break; 7858 8871 7859 8872 case 698: 7860 #line 2662 "parser.yy" /* yacc.c:1646 */ 7861 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7862 #line 7863 "Parser/parser.cc" /* yacc.c:1646 */ 8873 8874 /* Line 1806 of yacc.c */ 8875 #line 2662 "parser.yy" 8876 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7863 8877 break; 7864 8878 7865 8879 case 699: 7866 #line 2664 "parser.yy" /* yacc.c:1646 */ 7867 { (yyval.decl) = (yyvsp[-1].decl); } 7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646 */ 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2664 "parser.yy" 8883 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7869 8884 break; 7870 8885 7871 8886 case 700: 7872 #line 2669 "parser.yy" /* yacc.c:1646 */ 7873 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7874 #line 7875 "Parser/parser.cc" /* yacc.c:1646 */ 8887 8888 /* Line 1806 of yacc.c */ 8889 #line 2669 "parser.yy" 8890 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7875 8891 break; 7876 8892 7877 8893 case 701: 7878 #line 2671 "parser.yy" /* yacc.c:1646 */ 7879 { (yyval.decl) = (yyvsp[-1].decl); } 7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646 */ 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2671 "parser.yy" 8897 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7881 8898 break; 7882 8899 7883 8900 case 704: 7884 #line 2681 "parser.yy" /* yacc.c:1646 */ 7885 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7886 #line 7887 "Parser/parser.cc" /* yacc.c:1646 */ 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2681 "parser.yy" 8904 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7887 8905 break; 7888 8906 7889 8907 case 707: 7890 #line 2691 "parser.yy" /* yacc.c:1646 */ 7891 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7892 #line 7893 "Parser/parser.cc" /* yacc.c:1646 */ 8908 8909 /* Line 1806 of yacc.c */ 8910 #line 2691 "parser.yy" 8911 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7893 8912 break; 7894 8913 7895 8914 case 708: 7896 #line 2693 "parser.yy" /* yacc.c:1646 */ 7897 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7898 #line 7899 "Parser/parser.cc" /* yacc.c:1646 */ 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2693 "parser.yy" 8918 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7899 8919 break; 7900 8920 7901 8921 case 709: 7902 #line 2695 "parser.yy" /* yacc.c:1646 */ 7903 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7904 #line 7905 "Parser/parser.cc" /* yacc.c:1646 */ 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2695 "parser.yy" 8925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7905 8926 break; 7906 8927 7907 8928 case 710: 7908 #line 2697 "parser.yy" /* yacc.c:1646 */ 7909 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7910 #line 7911 "Parser/parser.cc" /* yacc.c:1646 */ 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2697 "parser.yy" 8932 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7911 8933 break; 7912 8934 7913 8935 case 711: 7914 #line 2699 "parser.yy" /* yacc.c:1646 */ 7915 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7916 #line 7917 "Parser/parser.cc" /* yacc.c:1646 */ 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2699 "parser.yy" 8939 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7917 8940 break; 7918 8941 7919 8942 case 712: 7920 #line 2701 "parser.yy" /* yacc.c:1646 */ 7921 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7922 #line 7923 "Parser/parser.cc" /* yacc.c:1646 */ 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2701 "parser.yy" 8946 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7923 8947 break; 7924 8948 7925 8949 case 713: 7926 #line 2708 "parser.yy" /* yacc.c:1646 */ 7927 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7928 #line 7929 "Parser/parser.cc" /* yacc.c:1646 */ 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2708 "parser.yy" 8953 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7929 8954 break; 7930 8955 7931 8956 case 714: 7932 #line 2710 "parser.yy" /* yacc.c:1646 */ 7933 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646 */ 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2710 "parser.yy" 8960 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7935 8961 break; 7936 8962 7937 8963 case 715: 7938 #line 2712 "parser.yy" /* yacc.c:1646 */ 7939 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7940 #line 7941 "Parser/parser.cc" /* yacc.c:1646 */ 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2712 "parser.yy" 8967 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7941 8968 break; 7942 8969 7943 8970 case 716: 7944 #line 2714 "parser.yy" /* yacc.c:1646 */ 7945 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7946 #line 7947 "Parser/parser.cc" /* yacc.c:1646 */ 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2714 "parser.yy" 8974 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7947 8975 break; 7948 8976 7949 8977 case 717: 7950 #line 2716 "parser.yy" /* yacc.c:1646 */ 7951 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7952 #line 7953 "Parser/parser.cc" /* yacc.c:1646 */ 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2716 "parser.yy" 8981 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7953 8982 break; 7954 8983 7955 8984 case 718: 7956 #line 2718 "parser.yy" /* yacc.c:1646 */ 7957 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7958 #line 7959 "Parser/parser.cc" /* yacc.c:1646 */ 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2718 "parser.yy" 8988 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7959 8989 break; 7960 8990 7961 8991 case 719: 7962 #line 2720 "parser.yy" /* yacc.c:1646 */ 7963 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646 */ 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2720 "parser.yy" 8995 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7965 8996 break; 7966 8997 7967 8998 case 720: 7968 #line 2722 "parser.yy" /* yacc.c:1646 */ 7969 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7970 #line 7971 "Parser/parser.cc" /* yacc.c:1646 */ 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2722 "parser.yy" 9002 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7971 9003 break; 7972 9004 7973 9005 case 721: 7974 #line 2724 "parser.yy" /* yacc.c:1646 */ 7975 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7976 #line 7977 "Parser/parser.cc" /* yacc.c:1646 */ 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2724 "parser.yy" 9009 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7977 9010 break; 7978 9011 7979 9012 case 722: 7980 #line 2726 "parser.yy" /* yacc.c:1646 */ 7981 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7982 #line 7983 "Parser/parser.cc" /* yacc.c:1646 */ 9013 9014 /* Line 1806 of yacc.c */ 9015 #line 2726 "parser.yy" 9016 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7983 9017 break; 7984 9018 7985 9019 case 723: 7986 #line 2731 "parser.yy" /* yacc.c:1646 */ 7987 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7988 #line 7989 "Parser/parser.cc" /* yacc.c:1646 */ 9020 9021 /* Line 1806 of yacc.c */ 9022 #line 2731 "parser.yy" 9023 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7989 9024 break; 7990 9025 7991 9026 case 724: 7992 #line 2733 "parser.yy" /* yacc.c:1646 */ 7993 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7994 #line 7995 "Parser/parser.cc" /* yacc.c:1646 */ 9027 9028 /* Line 1806 of yacc.c */ 9029 #line 2733 "parser.yy" 9030 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7995 9031 break; 7996 9032 7997 9033 case 725: 7998 #line 2738 "parser.yy" /* yacc.c:1646 */ 7999 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 8000 #line 8001 "Parser/parser.cc" /* yacc.c:1646 */ 9034 9035 /* Line 1806 of yacc.c */ 9036 #line 2738 "parser.yy" 9037 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8001 9038 break; 8002 9039 8003 9040 case 726: 8004 #line 2740 "parser.yy" /* yacc.c:1646 */ 8005 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 8006 #line 8007 "Parser/parser.cc" /* yacc.c:1646 */ 9041 9042 /* Line 1806 of yacc.c */ 9043 #line 2740 "parser.yy" 9044 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8007 9045 break; 8008 9046 8009 9047 case 728: 8010 #line 2767 "parser.yy" /* yacc.c:1646 */ 8011 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8012 #line 8013 "Parser/parser.cc" /* yacc.c:1646 */ 9048 9049 /* Line 1806 of yacc.c */ 9050 #line 2767 "parser.yy" 9051 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8013 9052 break; 8014 9053 8015 9054 case 732: 8016 #line 2778 "parser.yy" /* yacc.c:1646 */ 8017 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8018 #line 8019 "Parser/parser.cc" /* yacc.c:1646 */ 9055 9056 /* Line 1806 of yacc.c */ 9057 #line 2778 "parser.yy" 9058 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8019 9059 break; 8020 9060 8021 9061 case 733: 8022 #line 2780 "parser.yy" /* yacc.c:1646 */ 8023 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8024 #line 8025 "Parser/parser.cc" /* yacc.c:1646 */ 9062 9063 /* Line 1806 of yacc.c */ 9064 #line 2780 "parser.yy" 9065 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8025 9066 break; 8026 9067 8027 9068 case 734: 8028 #line 2782 "parser.yy" /* yacc.c:1646 */ 8029 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8030 #line 8031 "Parser/parser.cc" /* yacc.c:1646 */ 9069 9070 /* Line 1806 of yacc.c */ 9071 #line 2782 "parser.yy" 9072 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8031 9073 break; 8032 9074 8033 9075 case 735: 8034 #line 2784 "parser.yy" /* yacc.c:1646 */ 8035 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8036 #line 8037 "Parser/parser.cc" /* yacc.c:1646 */ 9076 9077 /* Line 1806 of yacc.c */ 9078 #line 2784 "parser.yy" 9079 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8037 9080 break; 8038 9081 8039 9082 case 736: 8040 #line 2786 "parser.yy" /* yacc.c:1646 */ 8041 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8042 #line 8043 "Parser/parser.cc" /* yacc.c:1646 */ 9083 9084 /* Line 1806 of yacc.c */ 9085 #line 2786 "parser.yy" 9086 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8043 9087 break; 8044 9088 8045 9089 case 737: 8046 #line 2788 "parser.yy" /* yacc.c:1646 */ 8047 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8048 #line 8049 "Parser/parser.cc" /* yacc.c:1646 */ 9090 9091 /* Line 1806 of yacc.c */ 9092 #line 2788 "parser.yy" 9093 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8049 9094 break; 8050 9095 8051 9096 case 738: 8052 #line 2795 "parser.yy" /* yacc.c:1646 */ 8053 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646 */ 9097 9098 /* Line 1806 of yacc.c */ 9099 #line 2795 "parser.yy" 9100 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8055 9101 break; 8056 9102 8057 9103 case 739: 8058 #line 2797 "parser.yy" /* yacc.c:1646 */ 8059 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646 */ 9104 9105 /* Line 1806 of yacc.c */ 9106 #line 2797 "parser.yy" 9107 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8061 9108 break; 8062 9109 8063 9110 case 740: 8064 #line 2799 "parser.yy" /* yacc.c:1646 */ 8065 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646 */ 9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2799 "parser.yy" 9114 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8067 9115 break; 8068 9116 8069 9117 case 741: 8070 #line 2801 "parser.yy" /* yacc.c:1646 */ 8071 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8072 #line 8073 "Parser/parser.cc" /* yacc.c:1646 */ 9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2801 "parser.yy" 9121 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8073 9122 break; 8074 9123 8075 9124 case 742: 8076 #line 2803 "parser.yy" /* yacc.c:1646 */ 8077 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8078 #line 8079 "Parser/parser.cc" /* yacc.c:1646 */ 9125 9126 /* Line 1806 of yacc.c */ 9127 #line 2803 "parser.yy" 9128 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8079 9129 break; 8080 9130 8081 9131 case 743: 8082 #line 2805 "parser.yy" /* yacc.c:1646 */ 8083 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8084 #line 8085 "Parser/parser.cc" /* yacc.c:1646 */ 9132 9133 /* Line 1806 of yacc.c */ 9134 #line 2805 "parser.yy" 9135 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8085 9136 break; 8086 9137 8087 9138 case 744: 8088 #line 2810 "parser.yy" /* yacc.c:1646 */ 8089 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8090 #line 8091 "Parser/parser.cc" /* yacc.c:1646 */ 9139 9140 /* Line 1806 of yacc.c */ 9141 #line 2810 "parser.yy" 9142 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8091 9143 break; 8092 9144 8093 9145 case 745: 8094 #line 2815 "parser.yy" /* yacc.c:1646 */ 8095 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); } 8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646 */ 9146 9147 /* Line 1806 of yacc.c */ 9148 #line 2815 "parser.yy" 9149 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 8097 9150 break; 8098 9151 8099 9152 case 746: 8100 #line 2817 "parser.yy" /* yacc.c:1646 */ 8101 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8102 #line 8103 "Parser/parser.cc" /* yacc.c:1646 */ 9153 9154 /* Line 1806 of yacc.c */ 9155 #line 2817 "parser.yy" 9156 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8103 9157 break; 8104 9158 8105 9159 case 747: 8106 #line 2819 "parser.yy" /* yacc.c:1646 */ 8107 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8108 #line 8109 "Parser/parser.cc" /* yacc.c:1646 */ 9160 9161 /* Line 1806 of yacc.c */ 9162 #line 2819 "parser.yy" 9163 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8109 9164 break; 8110 9165 8111 9166 case 750: 8112 #line 2843 "parser.yy" /* yacc.c:1646 */ 9167 9168 /* Line 1806 of yacc.c */ 9169 #line 2843 "parser.yy" 8113 9170 { (yyval.en) = 0; } 8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646 */8115 9171 break; 8116 9172 8117 9173 case 751: 8118 #line 2845 "parser.yy" /* yacc.c:1646 */ 8119 { (yyval.en) = (yyvsp[0].en); } 8120 #line 8121 "Parser/parser.cc" /* yacc.c:1646 */ 8121 break; 8122 8123 8124 #line 8125 "Parser/parser.cc" /* yacc.c:1646 */ 9174 9175 /* Line 1806 of yacc.c */ 9176 #line 2845 "parser.yy" 9177 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9178 break; 9179 9180 9181 9182 /* Line 1806 of yacc.c */ 9183 #line 9184 "Parser/parser.cc" 8125 9184 default: break; 8126 9185 } … … 8144 9203 *++yyvsp = yyval; 8145 9204 8146 /* Now 'shift' the result of the reduction. Determine what state9205 /* Now `shift' the result of the reduction. Determine what state 8147 9206 that goes to, based on the state we popped back to and the rule 8148 9207 number reduced by. */ … … 8159 9218 8160 9219 8161 /*------------------------------------ --.8162 | yyerrlab -- here on detecting error .|8163 `------------------------------------ --*/9220 /*------------------------------------. 9221 | yyerrlab -- here on detecting error | 9222 `------------------------------------*/ 8164 9223 yyerrlab: 8165 9224 /* Make sure we have latest lookahead translation. See comments at … … 8212 9271 { 8213 9272 /* If just tried and failed to reuse lookahead token after an 8214 9273 error, discard it. */ 8215 9274 8216 9275 if (yychar <= YYEOF) 8217 8218 8219 8220 8221 9276 { 9277 /* Return failure if at end of input. */ 9278 if (yychar == YYEOF) 9279 YYABORT; 9280 } 8222 9281 else 8223 8224 8225 8226 8227 9282 { 9283 yydestruct ("Error: discarding", 9284 yytoken, &yylval); 9285 yychar = YYEMPTY; 9286 } 8228 9287 } 8229 9288 … … 8244 9303 goto yyerrorlab; 8245 9304 8246 /* Do not reclaim the symbols of the rule wh oseaction triggered9305 /* Do not reclaim the symbols of the rule which action triggered 8247 9306 this YYERROR. */ 8248 9307 YYPOPSTACK (yylen); … … 8257 9316 `-------------------------------------------------------------*/ 8258 9317 yyerrlab1: 8259 yyerrstatus = 3; 9318 yyerrstatus = 3; /* Each real token shifted decrements this. */ 8260 9319 8261 9320 for (;;) … … 8263 9322 yyn = yypact[yystate]; 8264 9323 if (!yypact_value_is_default (yyn)) 8265 8266 8267 8268 8269 8270 8271 8272 8273 9324 { 9325 yyn += YYTERROR; 9326 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 9327 { 9328 yyn = yytable[yyn]; 9329 if (0 < yyn) 9330 break; 9331 } 9332 } 8274 9333 8275 9334 /* Pop the current state because it cannot handle the error token. */ 8276 9335 if (yyssp == yyss) 8277 9336 YYABORT; 8278 9337 8279 9338 8280 9339 yydestruct ("Error: popping", 8281 9340 yystos[yystate], yyvsp); 8282 9341 YYPOPSTACK (1); 8283 9342 yystate = *yyssp; … … 8285 9344 } 8286 9345 8287 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN8288 9346 *++yyvsp = yylval; 8289 YY_IGNORE_MAYBE_UNINITIALIZED_END8290 9347 8291 9348 … … 8311 9368 goto yyreturn; 8312 9369 8313 #if !defined yyoverflow|| YYERROR_VERBOSE9370 #if !defined(yyoverflow) || YYERROR_VERBOSE 8314 9371 /*-------------------------------------------------. 8315 9372 | yyexhaustedlab -- memory exhaustion comes here. | … … 8330 9387 yytoken, &yylval); 8331 9388 } 8332 /* Do not reclaim the symbols of the rule wh oseaction triggered9389 /* Do not reclaim the symbols of the rule which action triggered 8333 9390 this YYABORT or YYACCEPT. */ 8334 9391 YYPOPSTACK (yylen); … … 8337 9394 { 8338 9395 yydestruct ("Cleanup: popping", 8339 9396 yystos[*yyssp], yyvsp); 8340 9397 YYPOPSTACK (1); 8341 9398 } … … 8348 9405 YYSTACK_FREE (yymsg); 8349 9406 #endif 8350 return yyresult; 9407 /* Make sure YYID is used. */ 9408 return YYID (yyresult); 8351 9409 } 8352 #line 2848 "parser.yy" /* yacc.c:1906 */ 9410 9411 9412 9413 /* Line 2067 of yacc.c */ 9414 #line 2848 "parser.yy" 8353 9415 8354 9416 // ----end of grammar---- … … 8369 9431 // compile-command: "make install" // 8370 9432 // End: // 9433 -
src/Parser/parser.yy
r50c5cf3 r1eba452 389 389 { 390 390 Token fn; 391 fn.str = new std::string( "?{}" ); // location undefined 392 $$ = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3) ) );391 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 392 $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) ); 393 393 } 394 394 ; -
src/ResolvExpr/AlternativeFinder.cc
r50c5cf3 r1eba452 197 197 } 198 198 199 void AlternativeFinder::find( Expression *expr, bool adjust ) {199 void AlternativeFinder::find( Expression *expr, bool adjust, bool prune ) { 200 200 expr->accept( *this ); 201 201 if ( alternatives.empty() ) { … … 207 207 } 208 208 } 209 PRINT( 210 std::cerr << "alternatives before prune:" << std::endl; 211 printAlts( alternatives, std::cerr ); 212 ) 213 AltList::iterator oldBegin = alternatives.begin(); 214 pruneAlternatives( alternatives.begin(), alternatives.end(), front_inserter( alternatives ), indexer ); 215 if ( alternatives.begin() == oldBegin ) { 216 std::ostringstream stream; 217 stream << "Can't choose between alternatives for expression "; 218 expr->print( stream ); 219 stream << "Alternatives are:"; 220 AltList winners; 221 findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) ); 222 printAlts( winners, stream, 8 ); 223 throw SemanticError( stream.str() ); 224 } 225 alternatives.erase( oldBegin, alternatives.end() ); 226 PRINT( 227 std::cerr << "there are " << alternatives.size() << " alternatives after elimination" << std::endl; 228 ) 209 if ( prune ) { 210 PRINT( 211 std::cerr << "alternatives before prune:" << std::endl; 212 printAlts( alternatives, std::cerr ); 213 ) 214 AltList::iterator oldBegin = alternatives.begin(); 215 pruneAlternatives( alternatives.begin(), alternatives.end(), front_inserter( alternatives ), indexer ); 216 if ( alternatives.begin() == oldBegin ) { 217 std::ostringstream stream; 218 stream << "Can't choose between alternatives for expression "; 219 expr->print( stream ); 220 stream << "Alternatives are:"; 221 AltList winners; 222 findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) ); 223 printAlts( winners, stream, 8 ); 224 throw SemanticError( stream.str() ); 225 } 226 alternatives.erase( oldBegin, alternatives.end() ); 227 PRINT( 228 std::cerr << "there are " << alternatives.size() << " alternatives after elimination" << std::endl; 229 ) 230 } 229 231 230 232 // Central location to handle gcc extension keyword for all expression types. … … 234 236 } 235 237 236 void AlternativeFinder::findWithAdjustment( Expression *expr ) {237 find( expr, true );238 void AlternativeFinder::findWithAdjustment( Expression *expr, bool prune ) { 239 find( expr, true, prune ); 238 240 } 239 241 240 242 template< typename StructOrUnionType > 241 void AlternativeFinder::addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const std::string &name ) {243 void AlternativeFinder::addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, const std::string &name ) { 242 244 std::list< Declaration* > members; 243 245 aggInst->lookup( name, members ); … … 760 762 if ( agg->expr->get_results().size() == 1 ) { 761 763 if ( StructInstType *structInst = dynamic_cast< StructInstType* >( agg->expr->get_results().front() ) ) { 762 addAggMembers( structInst, agg->expr, agg->cost, memberExpr->get_member() );764 addAggMembers( structInst, agg->expr, agg->cost, agg->env, memberExpr->get_member() ); 763 765 } else if ( UnionInstType *unionInst = dynamic_cast< UnionInstType* >( agg->expr->get_results().front() ) ) { 764 addAggMembers( unionInst, agg->expr, agg->cost, memberExpr->get_member() );766 addAggMembers( unionInst, agg->expr, agg->cost, agg->env, memberExpr->get_member() ); 765 767 } // if 766 768 } // if … … 789 791 renameTypes( alternatives.back().expr ); 790 792 if ( StructInstType *structInst = dynamic_cast< StructInstType* >( (*i)->get_type() ) ) { 791 addAggMembers( structInst, &newExpr, Cost( 0, 0, 1 ), "" );793 addAggMembers( structInst, &newExpr, Cost( 0, 0, 1 ), env, "" ); 792 794 } else if ( UnionInstType *unionInst = dynamic_cast< UnionInstType* >( (*i)->get_type() ) ) { 793 addAggMembers( unionInst, &newExpr, Cost( 0, 0, 1 ), "" );795 addAggMembers( unionInst, &newExpr, Cost( 0, 0, 1 ), env, "" ); 794 796 } // if 795 797 } // for … … 1012 1014 alternatives.push_back( Alternative( impCpCtorExpr->clone(), env, Cost::zero ) ); 1013 1015 } 1016 1017 void AlternativeFinder::visit( ConstructorExpr * ctorExpr ) { 1018 AlternativeFinder finder( indexer, env ); 1019 // don't prune here, since it's guaranteed all alternatives will have the same type 1020 // (giving the alternatives different types is half of the point of ConstructorExpr nodes) 1021 finder.findWithAdjustment( ctorExpr->get_callExpr(), false ); 1022 for ( Alternative & alt : finder.alternatives ) { 1023 alternatives.push_back( Alternative( new ConstructorExpr( alt.expr->clone() ), alt.env, alt.cost ) ); 1024 } 1025 } 1014 1026 } // namespace ResolvExpr 1015 1027 -
src/ResolvExpr/AlternativeFinder.h
r50c5cf3 r1eba452 29 29 public: 30 30 AlternativeFinder( const SymTab::Indexer &indexer, const TypeEnvironment &env ); 31 void find( Expression *expr, bool adjust = false );31 void find( Expression *expr, bool adjust = false, bool prune = true ); 32 32 /// Calls find with the adjust flag set; adjustment turns array and function types into equivalent pointer types 33 void findWithAdjustment( Expression *expr );33 void findWithAdjustment( Expression *expr, bool prune = true ); 34 34 AltList &get_alternatives() { return alternatives; } 35 35 … … 66 66 virtual void visit( TupleExpr *tupleExpr ); 67 67 virtual void visit( ImplicitCopyCtorExpr * impCpCtorExpr ); 68 virtual void visit( ConstructorExpr * ctorExpr ); 68 69 public: // xxx - temporary hack - should make Tuples::TupleAssignment a friend 69 70 template< typename InputIterator, typename OutputIterator > … … 72 73 private: 73 74 /// Adds alternatives for member expressions, given the aggregate, conversion cost for that aggregate, and name of the member 74 template< typename StructOrUnionType > void addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const std::string &name );75 template< typename StructOrUnionType > void addAggMembers( StructOrUnionType *aggInst, Expression *expr, const Cost &newCost, const TypeEnvironment & env, const std::string &name ); 75 76 /// Adds alternatives for offsetof expressions, given the base type and name of the member 76 77 template< typename StructOrUnionType > void addOffsetof( StructOrUnionType *aggInst, const std::string &name ); -
src/SymTab/Validate.cc
r50c5cf3 r1eba452 60 60 #include "ResolvExpr/typeops.h" 61 61 #include <algorithm> 62 #include "InitTweak/InitTweak.h" 62 63 63 64 #define debugPrint( x ) if ( doDebug ) { std::cout << x; } … … 171 172 }; 172 173 173 class VerifyCtorDtor : public Visitor {174 class VerifyCtorDtorAssign : public Visitor { 174 175 public: 175 /// ensure that constructors and destructorshave at least one176 /// parameter, the first of which must be a pointer, and no176 /// ensure that constructors, destructors, and assignment have at least one 177 /// parameter, the first of which must be a pointer, and that ctor/dtors have no 177 178 /// return values. 178 179 static void verify( std::list< Declaration * > &translationUnit ); … … 202 203 compoundliteral.mutateDeclarationList( translationUnit ); 203 204 acceptAll( translationUnit, pass3 ); 204 VerifyCtorDtor ::verify( translationUnit );205 VerifyCtorDtorAssign::verify( translationUnit ); 205 206 } 206 207 … … 687 688 } 688 689 689 void VerifyCtorDtor ::verify( std::list< Declaration * > & translationUnit ) {690 VerifyCtorDtor verifier;690 void VerifyCtorDtorAssign::verify( std::list< Declaration * > & translationUnit ) { 691 VerifyCtorDtorAssign verifier; 691 692 acceptAll( translationUnit, verifier ); 692 693 } 693 694 694 void VerifyCtorDtor ::visit( FunctionDecl * funcDecl ) {695 void VerifyCtorDtorAssign::visit( FunctionDecl * funcDecl ) { 695 696 FunctionType * funcType = funcDecl->get_functionType(); 696 697 std::list< DeclarationWithType * > &returnVals = funcType->get_returnVals(); 697 698 std::list< DeclarationWithType * > ¶ms = funcType->get_parameters(); 698 699 699 if ( funcDecl->get_name() == "?{}" || funcDecl->get_name() == "^?{}") {700 if ( InitTweak::isCtorDtorAssign( funcDecl->get_name() ) ) { 700 701 if ( params.size() == 0 ) { 701 throw SemanticError( "Constructors and destructors require at least one parameter ", funcDecl );702 throw SemanticError( "Constructors, destructors, and assignment functions require at least one parameter ", funcDecl ); 702 703 } 703 704 if ( ! dynamic_cast< PointerType * >( params.front()->get_type() ) ) { 704 throw SemanticError( "First parameter of a constructor or destructormust be a pointer ", funcDecl );705 throw SemanticError( "First parameter of a constructor, destructor, or assignment function must be a pointer ", funcDecl ); 705 706 } 706 if ( returnVals.size() != 0 ) {707 if ( InitTweak::isCtorDtor( funcDecl->get_name() ) && returnVals.size() != 0 ) { 707 708 throw SemanticError( "Constructors and destructors cannot have explicit return values ", funcDecl ); 708 709 } -
src/SynTree/Expression.cc
r50c5cf3 r1eba452 28 28 #include "TypeSubstitution.h" 29 29 #include "Common/utility.h" 30 #include "InitTweak/InitTweak.h" 30 31 31 32 … … 493 494 494 495 void ImplicitCopyCtorExpr::print( std::ostream &os, int indent ) const { 495 os << std::string( indent, ' ' ) <<"Implicit Copy Constructor Expression: " << std::endl;496 os << "Implicit Copy Constructor Expression: " << std::endl; 496 497 assert( callExpr ); 497 498 callExpr->print( os, indent + 2 ); … … 503 504 } 504 505 506 507 ConstructorExpr::ConstructorExpr( Expression * callExpr ) : callExpr( callExpr ) { 508 // allow resolver to type a constructor used as an expression as if it has the same type as its first argument 509 assert( callExpr ); 510 Expression * arg = InitTweak::getCallArg( callExpr, 0 ); 511 assert( arg ); 512 cloneAll( arg->get_results(), results ); 513 } 514 515 ConstructorExpr::ConstructorExpr( const ConstructorExpr & other ) : Expression( other ), callExpr( maybeClone( other.callExpr ) ) { 516 } 517 518 ConstructorExpr::~ConstructorExpr() { 519 delete callExpr; 520 } 521 522 void ConstructorExpr::print( std::ostream &os, int indent ) const { 523 os << "Constructor Expression: " << std::endl; 524 assert( callExpr ); 525 os << std::string( indent+2, ' ' ); 526 callExpr->print( os, indent + 2 ); 527 Expression::print( os, indent ); 528 } 529 530 531 CompoundLiteralExpr::CompoundLiteralExpr( Type * type, Initializer * initializer ) : type( type ), initializer( initializer ) { 532 add_result( type->clone() ); 533 } 534 535 CompoundLiteralExpr::CompoundLiteralExpr( const CompoundLiteralExpr &other ) : Expression( other ), type( maybeClone( other.type ) ), initializer( maybeClone( other.initializer ) ) {} 536 537 CompoundLiteralExpr::~CompoundLiteralExpr() { 538 delete initializer; 539 delete type; 540 } 541 542 void CompoundLiteralExpr::print( std::ostream &os, int indent ) const { 543 os << "Compound Literal Expression: " << std::endl; 544 if ( type ) type->print( os, indent + 2 ); 545 if ( initializer ) initializer->print( os, indent + 2 ); 546 } 547 505 548 UntypedValofExpr::UntypedValofExpr( const UntypedValofExpr & other ) : Expression( other ), body ( maybeClone( other.body ) ) {} 506 549 … … 511 554 if ( get_body() != 0 ) 512 555 get_body()->print( os, indent + 2 ); 513 }514 515 516 CompoundLiteralExpr::CompoundLiteralExpr( Type * type, Initializer * initializer ) : type( type ), initializer( initializer ) {517 add_result( type->clone() );518 }519 520 CompoundLiteralExpr::CompoundLiteralExpr( const CompoundLiteralExpr &other ) : Expression( other ), type( maybeClone( other.type ) ), initializer( maybeClone( other.initializer ) ) {}521 522 CompoundLiteralExpr::~CompoundLiteralExpr() {523 delete initializer;524 delete type;525 }526 527 void CompoundLiteralExpr::print( std::ostream &os, int indent ) const {528 os << "Compound Literal Expression: " << std::endl;529 if ( type ) type->print( os, indent + 2 );530 if ( initializer ) initializer->print( os, indent + 2 );531 556 } 532 557 -
src/SynTree/Expression.h
r50c5cf3 r1eba452 595 595 }; 596 596 597 /// ConstructorExpr represents the use of a constructor in an expression context, e.g. int * x = malloc() { 5 }; 598 class ConstructorExpr : public Expression { 599 public: 600 ConstructorExpr( Expression * callExpr ); 601 ConstructorExpr( const ConstructorExpr & other ); 602 ~ConstructorExpr(); 603 604 Expression *get_callExpr() const { return callExpr; } 605 void set_callExpr( Expression *newValue ) { callExpr = newValue; } 606 607 virtual ConstructorExpr *clone() const { return new ConstructorExpr( *this ); } 608 virtual void accept( Visitor &v ) { v.visit( this ); } 609 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 610 virtual void print( std::ostream &os, int indent = 0 ) const; 611 private: 612 Expression * callExpr; 613 }; 614 615 /// CompoundLiteralExpr represents a C99 'compound literal' 616 class CompoundLiteralExpr : public Expression { 617 public: 618 CompoundLiteralExpr( Type * type, Initializer * initializer ); 619 CompoundLiteralExpr( const CompoundLiteralExpr &other ); 620 ~CompoundLiteralExpr(); 621 622 Type * get_type() const { return type; } 623 void set_type( Type * t ) { type = t; } 624 625 Initializer * get_initializer() const { return initializer; } 626 void set_initializer( Initializer * i ) { initializer = i; } 627 628 virtual CompoundLiteralExpr *clone() const { return new CompoundLiteralExpr( *this ); } 629 virtual void accept( Visitor &v ) { v.visit( this ); } 630 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 631 virtual void print( std::ostream &os, int indent = 0 ) const; 632 private: 633 Type * type; 634 Initializer * initializer; 635 }; 636 597 637 /// ValofExpr represents a GCC 'lambda expression' 598 638 class UntypedValofExpr : public Expression { … … 613 653 }; 614 654 615 /// CompoundLiteralExpr represents a C99 'compound literal' 616 class CompoundLiteralExpr : public Expression { 617 public: 618 CompoundLiteralExpr( Type * type, Initializer * initializer ); 619 CompoundLiteralExpr( const CompoundLiteralExpr &other ); 620 ~CompoundLiteralExpr(); 621 622 Type * get_type() const { return type; } 623 void set_type( Type * t ) { type = t; } 624 625 Initializer * get_initializer() const { return initializer; } 626 void set_initializer( Initializer * i ) { initializer = i; } 627 628 virtual CompoundLiteralExpr *clone() const { return new CompoundLiteralExpr( *this ); } 629 virtual void accept( Visitor &v ) { v.visit( this ); } 630 virtual Expression *acceptMutator( Mutator &m ) { return m.mutate( this ); } 631 virtual void print( std::ostream &os, int indent = 0 ) const; 632 private: 633 Type * type; 634 Initializer * initializer; 635 }; 636 655 /// RangeExpr represents a range e.g. '3 ... 5' or '1~10' 637 656 class RangeExpr : public Expression { 638 657 public: -
src/SynTree/Mutator.cc
r50c5cf3 r1eba452 339 339 } 340 340 341 Expression *Mutator::mutate( UntypedValofExpr *valofExpr ) { 342 mutateAll( valofExpr->get_results(), *this ); 343 return valofExpr; 341 Expression* Mutator::mutate( ConstructorExpr *ctorExpr ) { 342 mutateAll( ctorExpr->get_results(), *this ); 343 ctorExpr->set_callExpr( maybeMutate( ctorExpr->get_callExpr(), *this ) ); 344 return ctorExpr; 344 345 } 345 346 … … 349 350 compLitExpr->set_initializer( maybeMutate( compLitExpr->get_initializer(), *this ) ); 350 351 return compLitExpr; 352 } 353 354 Expression *Mutator::mutate( UntypedValofExpr *valofExpr ) { 355 mutateAll( valofExpr->get_results(), *this ); 356 return valofExpr; 351 357 } 352 358 -
src/SynTree/Mutator.h
r50c5cf3 r1eba452 76 76 virtual Expression* mutate( AsmExpr *asmExpr ); 77 77 virtual Expression* mutate( ImplicitCopyCtorExpr *impCpCtorExpr ); 78 virtual Expression* mutate( ConstructorExpr *ctorExpr ); 79 virtual Expression* mutate( CompoundLiteralExpr *compLitExpr ); 78 80 virtual Expression* mutate( UntypedValofExpr *valofExpr ); 79 virtual Expression* mutate( CompoundLiteralExpr *compLitExpr );80 81 virtual Expression* mutate( RangeExpr *rangeExpr ); 81 82 -
src/SynTree/SynTree.h
r50c5cf3 r1eba452 81 81 class AsmExpr; 82 82 class ImplicitCopyCtorExpr; 83 class ConstructorExpr; 84 class CompoundLiteralExpr; 83 85 class UntypedValofExpr; 84 class CompoundLiteralExpr;85 86 class RangeExpr; 86 87 -
src/SynTree/Visitor.cc
r50c5cf3 r1eba452 287 287 } 288 288 289 void Visitor::visit( UntypedValofExpr *valofExpr ) {290 acceptAll( valofExpr->get_results(), *this );291 maybeAccept( valofExpr->get_body(), *this );289 void Visitor::visit( ConstructorExpr * ctorExpr ) { 290 acceptAll( ctorExpr->get_results(), *this ); 291 maybeAccept( ctorExpr->get_callExpr(), *this ); 292 292 } 293 293 … … 296 296 maybeAccept( compLitExpr->get_type(), *this ); 297 297 maybeAccept( compLitExpr->get_initializer(), *this ); 298 } 299 300 void Visitor::visit( UntypedValofExpr *valofExpr ) { 301 acceptAll( valofExpr->get_results(), *this ); 302 maybeAccept( valofExpr->get_body(), *this ); 298 303 } 299 304 -
src/SynTree/Visitor.h
r50c5cf3 r1eba452 76 76 virtual void visit( AsmExpr *asmExpr ); 77 77 virtual void visit( ImplicitCopyCtorExpr *impCpCtorExpr ); 78 virtual void visit( ConstructorExpr * ctorExpr ); 79 virtual void visit( CompoundLiteralExpr *compLitExpr ); 78 80 virtual void visit( UntypedValofExpr *valofExpr ); 79 virtual void visit( CompoundLiteralExpr *compLitExpr );80 81 virtual void visit( RangeExpr *rangeExpr ); 81 82 -
src/include/assert.h
r50c5cf3 r1eba452 22 22 #define assertf(expr, fmt, ...) ((expr) ? static_cast<void>(0) : __assert_fail_f(__VSTRINGIFY__(expr), __FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, ## __VA_ARGS__ )) 23 23 24 void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... ) ;24 void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... ) __attribute__((noreturn)); 25 25 26 26 template<typename T, typename U> -
src/libcfa/prelude.cf
r50c5cf3 r1eba452 636 636 637 637 // default ctor 638 void ?{}( _Bool * ) , ?{}( volatile _Bool * );639 void ?{}( char * ) , ?{}( volatile char * );640 void ?{}( unsigned char * ) , ?{}( volatile unsigned char * );641 void ?{}( char signed * ) , ?{}( volatile char signed * );642 void ?{}( int short * ) , ?{}( volatile int short * );643 void ?{}( int short unsigned * ) , ?{}( volatile int short unsigned * );644 void ?{}( signed int * ) , ?{}( volatile signed int * );645 void ?{}( unsigned int * ) , ?{}( volatile unsigned int * );646 void ?{}( signed long int * ) , ?{}( volatile signed long int * );647 void ?{}( unsigned long int * ) , ?{}( volatile unsigned long int * );648 void ?{}( signed long long int * ) , ?{}( volatile signed long long int * );649 void ?{}( unsigned long long int * ) , ?{}( volatile unsigned long long int * );650 void ?{}( float * ) , ?{}( volatile float * );651 void ?{}( double * ) , ?{}( volatile double * );652 void ?{}( long double * ) , ?{}( volatile long double * );653 void ?{}( float _Complex * ) , ?{}( volatile float _Complex * );654 void ?{}( double _Complex * ) , ?{}( volatile double _Complex * );655 void ?{}( long double _Complex * ) , ?{}( volatile long double _Complex * );638 void ?{}( _Bool * ); 639 void ?{}( char * ); 640 void ?{}( unsigned char * ); 641 void ?{}( char signed * ); 642 void ?{}( int short * ); 643 void ?{}( int short unsigned * ); 644 void ?{}( signed int * ); 645 void ?{}( unsigned int * ); 646 void ?{}( signed long int * ); 647 void ?{}( unsigned long int * ); 648 void ?{}( signed long long int * ); 649 void ?{}( unsigned long long int * ); 650 void ?{}( float * ); 651 void ?{}( double * ); 652 void ?{}( long double * ); 653 void ?{}( float _Complex * ); 654 void ?{}( double _Complex * ); 655 void ?{}( long double _Complex * ); 656 656 657 657 // copy ctor 658 void ?{}( _Bool *, _Bool ) , ?{}( volatile _Bool *, _Bool );659 void ?{}( char *, char ) , ?{}( volatile char *, char );660 void ?{}( unsigned char *, unsigned char ) , ?{}( volatile unsigned char *, unsigned char );661 void ?{}( char signed *, char signed ) , ?{}( volatile char signed *, char signed );662 void ?{}( int short *, int short ) , ?{}( volatile int short *, int short );663 void ?{}( int short unsigned *, int short unsigned ) , ?{}( volatile int short unsigned *, int short unsigned );664 void ?{}( signed int *, signed int) , ?{}( volatile signed int *, signed int );665 void ?{}( unsigned int *, unsigned int) , ?{}( volatile unsigned int *, unsigned int );666 void ?{}( signed long int *, signed long int) , ?{}( volatile signed long int *, signed long int );667 void ?{}( unsigned long int *, unsigned long int) , ?{}( volatile unsigned long int *, unsigned long int );668 void ?{}( signed long long int *, signed long long int) , ?{}( volatile signed long long int *, signed long long int );669 void ?{}( unsigned long long int *, unsigned long long int) , ?{}( volatile unsigned long long int *, unsigned long long int );670 void ?{}( float *, float) , ?{}( volatile float *, float );671 void ?{}( double *, double) , ?{}( volatile double *, double );672 void ?{}( long double *, long double) , ?{}( volatile long double *, long double );673 void ?{}( float _Complex *, float _Complex) , ?{}( volatile float _Complex *, float _Complex );674 void ?{}( double _Complex *, double _Complex) , ?{}( volatile double _Complex *, double _Complex );675 void ?{}( long double _Complex *, long double _Complex) , ?{}( volatile long double _Complex *, long double _Complex );658 void ?{}( _Bool *, _Bool ); 659 void ?{}( char *, char ); 660 void ?{}( unsigned char *, unsigned char ); 661 void ?{}( char signed *, char signed ); 662 void ?{}( int short *, int short ); 663 void ?{}( int short unsigned *, int short unsigned ); 664 void ?{}( signed int *, signed int); 665 void ?{}( unsigned int *, unsigned int); 666 void ?{}( signed long int *, signed long int); 667 void ?{}( unsigned long int *, unsigned long int); 668 void ?{}( signed long long int *, signed long long int); 669 void ?{}( unsigned long long int *, unsigned long long int); 670 void ?{}( float *, float); 671 void ?{}( double *, double); 672 void ?{}( long double *, long double); 673 void ?{}( float _Complex *, float _Complex); 674 void ?{}( double _Complex *, double _Complex); 675 void ?{}( long double _Complex *, long double _Complex); 676 676 677 677 // dtor 678 void ^?{}( _Bool * ) , ^?{}( volatile _Bool * );679 void ^?{}( char * ) , ^?{}( volatile char * );680 void ^?{}( char unsigned * ) , ^?{}( volatile char unsigned * );681 void ^?{}( char signed * ) , ^?{}( volatile char signed * );682 void ^?{}( int short * ) , ^?{}( volatile int short * );683 void ^?{}( int short unsigned * ) , ^?{}( volatile int short unsigned * );684 void ^?{}( signed int * ) , ^?{}( volatile signed int * );685 void ^?{}( unsigned int * ) , ^?{}( volatile unsigned int * );686 void ^?{}( signed long int * ) , ^?{}( volatile signed long int * );687 void ^?{}( unsigned long int * ) , ^?{}( volatile unsigned long int * );688 void ^?{}( signed long long int * ) , ^?{}( volatile signed long long int * );689 void ^?{}( unsigned long long int * ) , ^?{}( volatile unsigned long long int * );690 void ^?{}( float * ) , ^?{}( volatile float * );691 void ^?{}( double * ) , ^?{}( volatile double * );692 void ^?{}( long double * ) , ^?{}( volatile long double * );693 void ^?{}( float _Complex * ) , ^?{}( volatile float _Complex * );694 void ^?{}( double _Complex * ) , ^?{}( volatile double _Complex * );695 void ^?{}( long double _Complex * ) , ^?{}( volatile long double _Complex * );678 void ^?{}( _Bool * ); 679 void ^?{}( char * ); 680 void ^?{}( char unsigned * ); 681 void ^?{}( char signed * ); 682 void ^?{}( int short * ); 683 void ^?{}( int short unsigned * ); 684 void ^?{}( signed int * ); 685 void ^?{}( unsigned int * ); 686 void ^?{}( signed long int * ); 687 void ^?{}( unsigned long int * ); 688 void ^?{}( signed long long int * ); 689 void ^?{}( unsigned long long int * ); 690 void ^?{}( float * ); 691 void ^?{}( double * ); 692 void ^?{}( long double * ); 693 void ^?{}( float _Complex * ); 694 void ^?{}( double _Complex * ); 695 void ^?{}( long double _Complex * ); 696 696 697 697 // // default ctor … … 719 719 720 720 forall( dtype DT ) void ?{}( DT * *, DT * ); 721 forall( dtype DT ) void ?{}( DT * volatile *, DT * );722 721 forall( dtype DT ) void ?{}( const DT * *, DT * ); 723 forall( dtype DT ) void ?{}( const DT * volatile *, DT * );724 722 forall( dtype DT ) void ?{}( const DT * *, const DT * ); 725 forall( dtype DT ) void ?{}( const DT * volatile *, const DT * );726 723 forall( dtype DT ) void ?{}( volatile DT * *, DT * ); 727 forall( dtype DT ) void ?{}( volatile DT * volatile *, DT * );728 724 forall( dtype DT ) void ?{}( volatile DT * *, volatile DT * ); 729 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile DT * );730 725 731 726 forall( dtype DT ) void ?{}( const volatile DT * *, DT * ); 732 forall( dtype DT ) void ?{}( const volatile DT * volatile *, DT * );733 727 forall( dtype DT ) void ?{}( const volatile DT * *, const DT * ); 734 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const DT * );735 728 forall( dtype DT ) void ?{}( const volatile DT * *, volatile DT * ); 736 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile DT * );737 729 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile DT * ); 738 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile DT * );739 730 740 731 forall( dtype DT ) void ?{}( DT * *, void * ); 741 forall( dtype DT ) void ?{}( DT * volatile *, void * );742 732 forall( dtype DT ) void ?{}( const DT * *, void * ); 743 forall( dtype DT ) void ?{}( const DT * volatile *, void * );744 733 forall( dtype DT ) void ?{}( const DT * *, const void * ); 745 forall( dtype DT ) void ?{}( const DT * volatile *, const void * );746 734 forall( dtype DT ) void ?{}( volatile DT * *, void * ); 747 forall( dtype DT ) void ?{}( volatile DT * volatile *, void * );748 735 forall( dtype DT ) void ?{}( volatile DT * *, volatile void * ); 749 forall( dtype DT ) void ?{}( volatile DT * volatile *, volatile void * );750 736 751 737 forall( dtype DT ) void ?{}( const volatile DT * *, void * ); 752 forall( dtype DT ) void ?{}( const volatile DT * volatile *, void * );753 738 forall( dtype DT ) void ?{}( const volatile DT * *, const void * ); 754 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const void * );755 739 forall( dtype DT ) void ?{}( const volatile DT * *, volatile void * ); 756 forall( dtype DT ) void ?{}( const volatile DT * volatile *, volatile void * );757 740 forall( dtype DT ) void ?{}( const volatile DT * *, const volatile void * ); 758 forall( dtype DT ) void ?{}( const volatile DT * volatile *, const volatile void * );759 741 760 742 forall( dtype DT ) void ?{}( void * *, DT * ); 761 forall( dtype DT ) void ?{}( void * volatile *, DT * );762 743 forall( dtype DT ) void ?{}( const void * *, DT * ); 763 forall( dtype DT ) void ?{}( const void * volatile *, DT * );764 744 forall( dtype DT ) void ?{}( const void * *, const DT * ); 765 forall( dtype DT ) void ?{}( const void * volatile *, const DT * );766 745 forall( dtype DT ) void ?{}( volatile void * *, DT * ); 767 forall( dtype DT ) void ?{}( volatile void * volatile *, DT * );768 746 forall( dtype DT ) void ?{}( volatile void * *, volatile DT * ); 769 forall( dtype DT ) void ?{}( volatile void * volatile *, volatile DT * );770 747 forall( dtype DT ) void ?{}( const volatile void * *, DT * ); 771 forall( dtype DT ) void ?{}( const volatile void * volatile *, DT * );772 748 forall( dtype DT ) void ?{}( const volatile void * *, const DT * ); 773 forall( dtype DT ) void ?{}( const volatile void * volatile *, const DT * );774 749 forall( dtype DT ) void ?{}( const volatile void * *, volatile DT * ); 775 forall( dtype DT ) void ?{}( const volatile void * volatile *, volatile DT * );776 750 forall( dtype DT ) void ?{}( const volatile void * *, const volatile DT * ); 777 forall( dtype DT ) void ?{}( const volatile void * volatile *, const volatile DT * );778 751 779 752 void ?{}( void * *, void * ); 780 void ?{}( void * volatile *, void * );781 753 void ?{}( const void * *, void * ); 782 void ?{}( const void * volatile *, void * );783 754 void ?{}( const void * *, const void * ); 784 void ?{}( const void * volatile *, const void * );785 755 void ?{}( volatile void * *, void * ); 786 void ?{}( volatile void * volatile *, void * );787 756 void ?{}( volatile void * *, volatile void * ); 788 void ?{}( volatile void * volatile *, volatile void * );789 757 void ?{}( const volatile void * *, void * ); 790 void ?{}( const volatile void * volatile *, void * );791 758 void ?{}( const volatile void * *, const void * ); 792 void ?{}( const volatile void * volatile *, const void * );793 759 void ?{}( const volatile void * *, volatile void * ); 794 void ?{}( const volatile void * volatile *, volatile void * );795 760 void ?{}( const volatile void * *, const volatile void * ); 796 void ?{}( const volatile void * volatile *, const volatile void * );797 761 798 762 //forall( dtype DT ) void ?{}( DT * *, forall( dtype DT2 ) const DT2 * ); 799 763 //forall( dtype DT ) void ?{}( DT * volatile *, forall( dtype DT2 ) const DT2 * ); 800 764 forall( dtype DT ) void ?{}( const DT * *, forall( dtype DT2 ) const DT2 * ); 801 forall( dtype DT ) void ?{}( const DT * volatile *, forall( dtype DT2 ) const DT2 * );802 765 //forall( dtype DT ) void ?{}( volatile DT * *, forall( dtype DT2 ) const DT2 * ); 803 766 //forall( dtype DT ) void ?{}( volatile DT * volatile *, forall( dtype DT2 ) const DT2 * ); 804 767 forall( dtype DT ) void ?{}( const volatile DT * *, forall( dtype DT2 ) const DT2 * ); 805 forall( dtype DT ) void ?{}( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );806 768 807 769 forall( ftype FT ) void ?{}( FT * *, forall( ftype FT2 ) FT2 * ); 808 forall( ftype FT ) void ?{}( FT * volatile *, forall( ftype FT2 ) FT2 * );809 770 810 771 // default ctors 811 772 forall( ftype FT ) void ?{}( FT * * ); 812 forall( ftype FT ) void ?{}( FT * volatile * );813 773 814 774 forall( dtype DT ) void ?{}( DT * *); 815 forall( dtype DT ) void ?{}( DT * volatile *);816 775 forall( dtype DT ) void ?{}( const DT * *); 817 forall( dtype DT ) void ?{}( const DT * volatile *);818 776 forall( dtype DT ) void ?{}( volatile DT * *); 819 forall( dtype DT ) void ?{}( volatile DT * volatile *);820 777 forall( dtype DT ) void ?{}( const volatile DT * *); 821 forall( dtype DT ) void ?{}( const volatile DT * volatile *);822 778 823 779 void ?{}( void * *); 824 void ?{}( void * volatile *);825 780 void ?{}( const void * *); 826 void ?{}( const void * volatile *);827 781 void ?{}( volatile void * *); 828 void ?{}( volatile void * volatile *);829 782 void ?{}( const volatile void * *); 830 void ?{}( const volatile void * volatile *);831 783 832 784 // dtors 833 785 forall( ftype FT ) void ^?{}( FT * * ); 834 forall( ftype FT ) void ^?{}( FT * volatile * );835 786 836 787 forall( dtype DT ) void ^?{}( DT * *); 837 forall( dtype DT ) void ^?{}( DT * volatile *);838 788 forall( dtype DT ) void ^?{}( const DT * *); 839 forall( dtype DT ) void ^?{}( const DT * volatile *);840 789 forall( dtype DT ) void ^?{}( volatile DT * *); 841 forall( dtype DT ) void ^?{}( volatile DT * volatile *);842 790 forall( dtype DT ) void ^?{}( const volatile DT * *); 843 forall( dtype DT ) void ^?{}( const volatile DT * volatile *);844 791 845 792 void ^?{}( void * *); 846 void ^?{}( void * volatile *);847 793 void ^?{}( const void * *); 848 void ^?{}( const void * volatile *);849 794 void ^?{}( volatile void * *); 850 void ^?{}( volatile void * volatile *);851 795 void ^?{}( const volatile void * *); 852 void ^?{}( const volatile void * volatile *);853 796 854 797 // Local Variables: //
Note:
See TracChangeset
for help on using the changeset viewer.