Changeset ac71a86
- Timestamp:
- Aug 19, 2016, 12:57:05 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 04cdd9b, 2037f82
- Parents:
- 8b7ee09
- Location:
- src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r8b7ee09 rac71a86 300 300 newnode->type->array->dimension = size; 301 301 newnode->type->array->isStatic = isStatic; 302 if ( newnode->type->array->dimension == 0 || dynamic_cast< ConstantExpr * >( newnode->type->array->dimension->build()) ) {302 if ( newnode->type->array->dimension == 0 || newnode->type->array->dimension->isExpressionType<ConstantExpr *>() ) { 303 303 newnode->type->array->isVarLen = false; 304 304 } else { -
src/Parser/ExpressionNode.cc
r8b7ee09 rac71a86 57 57 static inline bool checkX( char c ) { return c == 'x' || c == 'X'; } 58 58 59 Expression *build_constantInteger( std::string & str ) {59 Expression *build_constantInteger( const std::string & str ) { 60 60 static const BasicType::Kind kind[2][3] = { 61 61 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, … … 123 123 } // build_constantInteger 124 124 125 Expression *build_constantFloat( std::string & str ) {125 Expression *build_constantFloat( const std::string & str ) { 126 126 static const BasicType::Kind kind[2][3] = { 127 127 { BasicType::Float, BasicType::Double, BasicType::LongDouble }, … … 153 153 } // build_constantFloat 154 154 155 Expression *build_constantChar( std::string & str ) {155 Expression *build_constantChar( const std::string & str ) { 156 156 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) ); 157 157 } // build_constantChar 158 158 159 ConstantExpr *build_constantStr( std::string & str ) {159 ConstantExpr *build_constantStr( const std::string & str ) { 160 160 // string should probably be a primitive type 161 161 ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ), … … 213 213 } 214 214 Expression *build_sizeOftype( DeclarationNode *decl_node ) { 215 return new SizeofExpr( decl_node->buildType() ); 215 Expression* ret = new SizeofExpr( decl_node->buildType() ); 216 delete decl_node; 217 return ret; 216 218 } 217 219 Expression *build_alignOfexpr( ExpressionNode *expr_node ) { … … 222 224 } 223 225 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) { 224 return new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 226 Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 227 delete decl_node; 228 delete member; 229 return ret; 225 230 } 226 231 -
src/Parser/ParseNode.h
r8b7ee09 rac71a86 103 103 //############################################################################## 104 104 105 class ExpressionNode : public ParseNode {105 class ExpressionNode final : public ParseNode { 106 106 public: 107 107 ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {} … … 114 114 ExpressionNode *set_extension( bool exten ) { extension = exten; return this; } 115 115 116 virtual void print( std::ostream &os, int indent = 0 ) const {} 117 virtual void printOneLine( std::ostream &os, int indent = 0 ) const {} 118 119 virtual Expression *build() const { return expr; } 116 void print( std::ostream &os, int indent = 0 ) const {} 117 void printOneLine( std::ostream &os, int indent = 0 ) const {} 118 119 template<typename T> 120 bool isExpressionType() const { 121 return nullptr != dynamic_cast<T>(expr.get()); 122 } 123 124 Expression *build() const { return const_cast<ExpressionNode*>(this)->expr.release(); } 120 125 private: 121 126 bool extension = false; 122 Expression *expr;127 std::unique_ptr<Expression> expr; 123 128 }; 124 129 … … 151 156 }; 152 157 153 Expression *build_constantInteger( std::string &str );154 Expression *build_constantFloat( std::string &str );155 Expression *build_constantChar( std::string &str );156 ConstantExpr *build_constantStr( std::string &str );158 Expression *build_constantInteger( const std::string &str ); 159 Expression *build_constantFloat( const std::string &str ); 160 Expression *build_constantChar( const std::string &str ); 161 ConstantExpr *build_constantStr( const std::string &str ); 157 162 158 163 NameExpr *build_varref( const std::string *name, bool labelp = false ); … … 304 309 //############################################################################## 305 310 306 class StatementNode : public ParseNode {311 class StatementNode final : public ParseNode { 307 312 public: 308 313 StatementNode() { stmt = nullptr; } … … 311 316 virtual ~StatementNode() {} 312 317 313 virtual StatementNode *clone() const { assert( false ); return nullptr; }314 virtual Statement *build() const { return stmt; }318 virtual StatementNode *clone() const final { assert( false ); return nullptr; } 319 Statement *build() const { return const_cast<StatementNode*>(this)->stmt.release(); } 315 320 316 321 virtual StatementNode *add_label( const std::string * name ) { 317 322 stmt->get_labels().emplace_back( *name ); 323 delete name; 318 324 return this; 319 325 } … … 324 330 virtual void printList( std::ostream &os, int indent = 0 ) {} 325 331 private: 326 Statement *stmt;332 std::unique_ptr<Statement> stmt; 327 333 }; // StatementNode 328 334 -
src/Parser/StatementNode.cc
r8b7ee09 rac71a86 44 44 agg = decl; 45 45 } // if 46 stmt = new DeclStmt( noLabels, maybeBuild< Declaration >(agg) );46 stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) ); 47 47 } else { 48 48 assert( false ); … … 56 56 StatementNode *node = dynamic_cast< StatementNode * >(curr); 57 57 assert( node ); 58 assert( dynamic_cast< CaseStmt * >(node->stmt ) );58 assert( dynamic_cast< CaseStmt * >(node->stmt.get()) ); 59 59 prev = curr; 60 60 } // for … … 64 64 buildMoveList( stmt, stmts ); 65 65 // splice any new Statements to end of current Statements 66 CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt );66 CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt.get()); 67 67 caseStmt->get_statements().splice( caseStmt->get_statements().end(), stmts ); 68 68 return this; … … 153 153 std::list< Expression * > exps; 154 154 buildMoveList( ctl, exps ); 155 return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr, true ); 155 assertf( exps.size() < 2, "This means we are leaking memory"); 156 return new ReturnStmt( noLabels, !exps.empty() ? exps.back() : nullptr, true ); 156 157 } 157 158 -
src/Parser/parser.cc
r8b7ee09 rac71a86 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 2.5"47 #define YYBISON_VERSION "3.0.2" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */62 #define YYLSP_NEEDED 063 61 64 62 65 63 66 64 /* Copy the first part of user declarations. */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 65 #line 42 "parser.yy" /* yacc.c:339 */ 70 66 71 67 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 94 90 } // appendStr 95 91 96 97 /* Line 268 of yacc.c */ 98 #line 99 "Parser/parser.cc" 99 100 /* Enabling traces. */ 101 #ifndef YYDEBUG 102 # define YYDEBUG 1 103 #endif 92 #line 93 "Parser/parser.cc" /* yacc.c:339 */ 93 94 # ifndef YY_NULLPTR 95 # if defined __cplusplus && 201103L <= __cplusplus 96 # define YY_NULLPTR nullptr 97 # else 98 # define YY_NULLPTR 0 99 # endif 100 # endif 104 101 105 102 /* Enabling verbose error messages. */ … … 111 108 #endif 112 109 113 /* Enabling the token table. */ 114 #ifndef YYTOKEN_TABLE 115 # define YYTOKEN_TABLE 0 110 /* In a future release of Bison, this section will be replaced 111 by #include "y.tab.h". */ 112 #ifndef YY_YY_Y_TAB_H_INCLUDED 113 # define YY_YY_Y_TAB_H_INCLUDED 114 /* Debug traces. */ 115 #ifndef YYDEBUG 116 # define YYDEBUG 1 116 117 #endif 117 118 119 /* Tokens. */ 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 120 123 #ifndef YYTOKENTYPE 121 124 # define YYTOKENTYPE 122 /* Put the tokens into the symbol table, so that GDB and other debuggers 123 know about them. */ 124 enum yytokentype { 125 TYPEDEF = 258, 126 AUTO = 259, 127 EXTERN = 260, 128 REGISTER = 261, 129 STATIC = 262, 130 INLINE = 263, 131 FORTRAN = 264, 132 CONST = 265, 133 VOLATILE = 266, 134 RESTRICT = 267, 135 FORALL = 268, 136 LVALUE = 269, 137 VOID = 270, 138 CHAR = 271, 139 SHORT = 272, 140 INT = 273, 141 LONG = 274, 142 FLOAT = 275, 143 DOUBLE = 276, 144 SIGNED = 277, 145 UNSIGNED = 278, 146 VALIST = 279, 147 BOOL = 280, 148 COMPLEX = 281, 149 IMAGINARY = 282, 150 TYPEOF = 283, 151 LABEL = 284, 152 ENUM = 285, 153 STRUCT = 286, 154 UNION = 287, 155 OTYPE = 288, 156 FTYPE = 289, 157 DTYPE = 290, 158 TRAIT = 291, 159 SIZEOF = 292, 160 OFFSETOF = 293, 161 ATTRIBUTE = 294, 162 EXTENSION = 295, 163 IF = 296, 164 ELSE = 297, 165 SWITCH = 298, 166 CASE = 299, 167 DEFAULT = 300, 168 DO = 301, 169 WHILE = 302, 170 FOR = 303, 171 BREAK = 304, 172 CONTINUE = 305, 173 GOTO = 306, 174 RETURN = 307, 175 CHOOSE = 308, 176 DISABLE = 309, 177 ENABLE = 310, 178 FALLTHRU = 311, 179 TRY = 312, 180 CATCH = 313, 181 CATCHRESUME = 314, 182 FINALLY = 315, 183 THROW = 316, 184 THROWRESUME = 317, 185 AT = 318, 186 ASM = 319, 187 ALIGNAS = 320, 188 ALIGNOF = 321, 189 ATOMIC = 322, 190 GENERIC = 323, 191 NORETURN = 324, 192 STATICASSERT = 325, 193 THREADLOCAL = 326, 194 IDENTIFIER = 327, 195 QUOTED_IDENTIFIER = 328, 196 TYPEDEFname = 329, 197 TYPEGENname = 330, 198 ATTR_IDENTIFIER = 331, 199 ATTR_TYPEDEFname = 332, 200 ATTR_TYPEGENname = 333, 201 INTEGERconstant = 334, 202 FLOATINGconstant = 335, 203 CHARACTERconstant = 336, 204 STRINGliteral = 337, 205 ZERO = 338, 206 ONE = 339, 207 ARROW = 340, 208 ICR = 341, 209 DECR = 342, 210 LS = 343, 211 RS = 344, 212 LE = 345, 213 GE = 346, 214 EQ = 347, 215 NE = 348, 216 ANDAND = 349, 217 OROR = 350, 218 ELLIPSIS = 351, 219 MULTassign = 352, 220 DIVassign = 353, 221 MODassign = 354, 222 PLUSassign = 355, 223 MINUSassign = 356, 224 LSassign = 357, 225 RSassign = 358, 226 ANDassign = 359, 227 ERassign = 360, 228 ORassign = 361, 229 ATassign = 362, 230 THEN = 363 231 }; 125 enum yytokentype 126 { 127 TYPEDEF = 258, 128 AUTO = 259, 129 EXTERN = 260, 130 REGISTER = 261, 131 STATIC = 262, 132 INLINE = 263, 133 FORTRAN = 264, 134 CONST = 265, 135 VOLATILE = 266, 136 RESTRICT = 267, 137 FORALL = 268, 138 LVALUE = 269, 139 VOID = 270, 140 CHAR = 271, 141 SHORT = 272, 142 INT = 273, 143 LONG = 274, 144 FLOAT = 275, 145 DOUBLE = 276, 146 SIGNED = 277, 147 UNSIGNED = 278, 148 VALIST = 279, 149 BOOL = 280, 150 COMPLEX = 281, 151 IMAGINARY = 282, 152 TYPEOF = 283, 153 LABEL = 284, 154 ENUM = 285, 155 STRUCT = 286, 156 UNION = 287, 157 OTYPE = 288, 158 FTYPE = 289, 159 DTYPE = 290, 160 TRAIT = 291, 161 SIZEOF = 292, 162 OFFSETOF = 293, 163 ATTRIBUTE = 294, 164 EXTENSION = 295, 165 IF = 296, 166 ELSE = 297, 167 SWITCH = 298, 168 CASE = 299, 169 DEFAULT = 300, 170 DO = 301, 171 WHILE = 302, 172 FOR = 303, 173 BREAK = 304, 174 CONTINUE = 305, 175 GOTO = 306, 176 RETURN = 307, 177 CHOOSE = 308, 178 DISABLE = 309, 179 ENABLE = 310, 180 FALLTHRU = 311, 181 TRY = 312, 182 CATCH = 313, 183 CATCHRESUME = 314, 184 FINALLY = 315, 185 THROW = 316, 186 THROWRESUME = 317, 187 AT = 318, 188 ASM = 319, 189 ALIGNAS = 320, 190 ALIGNOF = 321, 191 ATOMIC = 322, 192 GENERIC = 323, 193 NORETURN = 324, 194 STATICASSERT = 325, 195 THREADLOCAL = 326, 196 IDENTIFIER = 327, 197 QUOTED_IDENTIFIER = 328, 198 TYPEDEFname = 329, 199 TYPEGENname = 330, 200 ATTR_IDENTIFIER = 331, 201 ATTR_TYPEDEFname = 332, 202 ATTR_TYPEGENname = 333, 203 INTEGERconstant = 334, 204 FLOATINGconstant = 335, 205 CHARACTERconstant = 336, 206 STRINGliteral = 337, 207 ZERO = 338, 208 ONE = 339, 209 ARROW = 340, 210 ICR = 341, 211 DECR = 342, 212 LS = 343, 213 RS = 344, 214 LE = 345, 215 GE = 346, 216 EQ = 347, 217 NE = 348, 218 ANDAND = 349, 219 OROR = 350, 220 ELLIPSIS = 351, 221 MULTassign = 352, 222 DIVassign = 353, 223 MODassign = 354, 224 PLUSassign = 355, 225 MINUSassign = 356, 226 LSassign = 357, 227 RSassign = 358, 228 ANDassign = 359, 229 ERassign = 360, 230 ORassign = 361, 231 ATassign = 362, 232 THEN = 363 233 }; 232 234 #endif 233 235 /* Tokens. */ … … 339 341 #define THEN 363 340 342 341 342 343 343 /* Value type. */ 344 344 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 346 347 { 347 348 /* Line 293 of yacc.c */ 349 #line 115 "parser.yy" 348 #line 115 "parser.yy" /* yacc.c:355 */ 350 349 351 350 Token tok; … … 363 362 bool flag; 364 363 365 366 367 /* Line 293 of yacc.c */ 368 #line 369 "Parser/parser.cc" 369 } YYSTYPE; 364 #line 365 "Parser/parser.cc" /* yacc.c:355 */ 365 }; 370 366 # define YYSTYPE_IS_TRIVIAL 1 371 # define yystype YYSTYPE /* obsolescent; will be withdrawn */372 367 # define YYSTYPE_IS_DECLARED 1 373 368 #endif 374 369 375 370 371 extern YYSTYPE yylval; 372 373 int yyparse (void); 374 375 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 376 376 377 /* Copy the second part of user declarations. */ 377 378 378 379 /* Line 343 of yacc.c */ 380 #line 381 "Parser/parser.cc" 379 #line 380 "Parser/parser.cc" /* yacc.c:358 */ 381 380 382 381 #ifdef short … … 392 391 #ifdef YYTYPE_INT8 393 392 typedef YYTYPE_INT8 yytype_int8; 394 #elif (defined __STDC__ || defined __C99__FUNC__ \ 395 || defined __cplusplus || defined _MSC_VER) 393 #else 396 394 typedef signed char yytype_int8; 397 #else398 typedef short int yytype_int8;399 395 #endif 400 396 … … 416 412 # elif defined size_t 417 413 # define YYSIZE_T size_t 418 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 419 || defined __cplusplus || defined _MSC_VER) 414 # elif ! defined YYSIZE_T 420 415 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 421 416 # define YYSIZE_T size_t … … 431 426 # if ENABLE_NLS 432 427 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 433 # define YY_( msgid) dgettext ("bison-runtime", msgid)428 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 434 429 # endif 435 430 # endif 436 431 # ifndef YY_ 437 # define YY_( msgid) msgid432 # define YY_(Msgid) Msgid 438 433 # endif 439 434 #endif 440 435 436 #ifndef YY_ATTRIBUTE 437 # if (defined __GNUC__ \ 438 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 439 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 440 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 441 # else 442 # define YY_ATTRIBUTE(Spec) /* empty */ 443 # endif 444 #endif 445 446 #ifndef YY_ATTRIBUTE_PURE 447 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 448 #endif 449 450 #ifndef YY_ATTRIBUTE_UNUSED 451 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 452 #endif 453 454 #if !defined _Noreturn \ 455 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 456 # if defined _MSC_VER && 1200 <= _MSC_VER 457 # define _Noreturn __declspec (noreturn) 458 # else 459 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 460 # endif 461 #endif 462 441 463 /* Suppress unused-variable warnings by "using" E. */ 442 464 #if ! defined lint || defined __GNUC__ 443 # define YYUSE( e) ((void) (e))465 # define YYUSE(E) ((void) (E)) 444 466 #else 445 # define YYUSE( e) /* empty */467 # define YYUSE(E) /* empty */ 446 468 #endif 447 469 448 /* Identity function, used to suppress warnings about constant conditions. */ 449 #ifndef lint 450 # define YYID(n) (n) 470 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 471 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 472 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 473 _Pragma ("GCC diagnostic push") \ 474 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 475 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 476 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 477 _Pragma ("GCC diagnostic pop") 451 478 #else 452 #if (defined __STDC__ || defined __C99__FUNC__ \ 453 || defined __cplusplus || defined _MSC_VER) 454 static int 455 YYID (int yyi) 456 #else 457 static int 458 YYID (yyi) 459 int yyi; 479 # define YY_INITIAL_VALUE(Value) Value 460 480 #endif 461 { 462 return yyi; 463 } 481 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 464 484 #endif 485 #ifndef YY_INITIAL_VALUE 486 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 487 #endif 488 465 489 466 490 #if ! defined yyoverflow || YYERROR_VERBOSE … … 481 505 # else 482 506 # define YYSTACK_ALLOC alloca 483 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 484 || defined __cplusplus || defined _MSC_VER) 507 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 485 508 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 509 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 486 510 # ifndef EXIT_SUCCESS 487 511 # define EXIT_SUCCESS 0 … … 493 517 494 518 # ifdef YYSTACK_ALLOC 495 /* Pacify GCC's `empty if-body' warning. */496 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))519 /* Pacify GCC's 'empty if-body' warning. */ 520 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 497 521 # ifndef YYSTACK_ALLOC_MAXIMUM 498 522 /* The OS might guarantee only one guard page at the bottom of the stack, … … 510 534 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 511 535 && ! ((defined YYMALLOC || defined malloc) \ 512 536 && (defined YYFREE || defined free))) 513 537 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 514 538 # ifndef EXIT_SUCCESS … … 518 542 # ifndef YYMALLOC 519 543 # define YYMALLOC malloc 520 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 521 || defined __cplusplus || defined _MSC_VER) 544 # if ! defined malloc && ! defined EXIT_SUCCESS 522 545 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 523 546 # endif … … 525 548 # ifndef YYFREE 526 549 # define YYFREE free 527 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 528 || defined __cplusplus || defined _MSC_VER) 550 # if ! defined free && ! defined EXIT_SUCCESS 529 551 void free (void *); /* INFRINGES ON USER NAME SPACE */ 530 552 # endif … … 536 558 #if (! defined yyoverflow \ 537 559 && (! defined __cplusplus \ 538 560 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 539 561 540 562 /* A type that is properly aligned for any stack member. */ … … 561 583 stack. Advance YYPTR to a properly aligned location for the next 562 584 stack. */ 563 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 564 do 565 { 566 YYSIZE_T yynewbytes;\567 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\568 Stack = &yyptr->Stack_alloc;\569 570 yyptr += yynewbytes / sizeof (*yyptr);\571 } 572 while ( YYID (0))585 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 586 do \ 587 { \ 588 YYSIZE_T yynewbytes; \ 589 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 590 Stack = &yyptr->Stack_alloc; \ 591 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 592 yyptr += yynewbytes / sizeof (*yyptr); \ 593 } \ 594 while (0) 573 595 574 596 #endif 575 597 576 598 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 577 /* Copy COUNT objects from FROM to TO. The source and destination do599 /* Copy COUNT objects from SRC to DST. The source and destination do 578 600 not overlap. */ 579 601 # ifndef YYCOPY 580 602 # if defined __GNUC__ && 1 < __GNUC__ 581 # define YYCOPY( To, From, Count) \582 __builtin_memcpy ( To, From, (Count) * sizeof (*(From)))603 # define YYCOPY(Dst, Src, Count) \ 604 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 583 605 # else 584 # define YYCOPY( To, From, Count)\585 do 586 {\587 YYSIZE_T yyi;\588 for (yyi = 0; yyi < (Count); yyi++)\589 (To)[yyi] = (From)[yyi];\590 }\591 while ( YYID (0))606 # define YYCOPY(Dst, Src, Count) \ 607 do \ 608 { \ 609 YYSIZE_T yyi; \ 610 for (yyi = 0; yyi < (Count); yyi++) \ 611 (Dst)[yyi] = (Src)[yyi]; \ 612 } \ 613 while (0) 592 614 # endif 593 615 # endif … … 605 627 /* YYNRULES -- Number of rules. */ 606 628 #define YYNRULES 749 607 /* YYN RULES -- Number of states. */629 /* YYNSTATES -- Number of states. */ 608 630 #define YYNSTATES 1553 609 631 610 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 632 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 633 by yylex, with out-of-bounds checking. */ 611 634 #define YYUNDEFTOK 2 612 635 #define YYMAXUTOK 363 613 636 614 #define YYTRANSLATE(YYX) 637 #define YYTRANSLATE(YYX) \ 615 638 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 616 639 617 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 640 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 641 as returned by yylex, without out-of-bounds checking. */ 618 642 static const yytype_uint8 yytranslate[] = 619 643 { … … 658 682 659 683 #if YYDEBUG 660 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 661 YYRHS. */ 662 static const yytype_uint16 yyprhs[] = 663 { 664 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 665 17, 19, 21, 23, 25, 27, 29, 31, 34, 36, 666 38, 42, 46, 48, 55, 60, 64, 72, 76, 84, 667 87, 90, 98, 103, 105, 109, 110, 112, 114, 118, 668 120, 124, 132, 136, 144, 146, 148, 150, 153, 156, 669 159, 162, 165, 168, 173, 176, 181, 188, 190, 195, 670 200, 202, 204, 206, 208, 210, 212, 214, 219, 224, 671 226, 230, 234, 238, 240, 244, 248, 250, 254, 258, 672 260, 264, 268, 272, 276, 278, 282, 286, 288, 292, 673 294, 298, 300, 304, 306, 310, 312, 316, 318, 324, 674 329, 335, 337, 339, 343, 346, 347, 349, 351, 353, 675 355, 357, 359, 361, 363, 365, 367, 369, 371, 374, 676 380, 387, 395, 397, 401, 403, 407, 408, 410, 412, 677 414, 416, 418, 420, 422, 424, 426, 433, 438, 441, 678 449, 451, 455, 457, 460, 462, 465, 467, 470, 473, 679 479, 487, 493, 503, 509, 519, 521, 525, 527, 529, 680 533, 537, 540, 542, 545, 548, 549, 551, 554, 558, 681 559, 561, 564, 568, 572, 577, 578, 580, 582, 585, 682 591, 599, 606, 613, 618, 622, 627, 630, 634, 637, 683 641, 645, 649, 653, 659, 663, 667, 672, 674, 680, 684 687, 693, 700, 710, 721, 731, 742, 745, 747, 750, 685 753, 756, 758, 765, 774, 785, 798, 813, 814, 816, 686 817, 819, 821, 825, 830, 838, 839, 841, 845, 847, 687 851, 853, 855, 857, 861, 863, 865, 867, 871, 872, 688 874, 878, 883, 885, 889, 891, 893, 897, 901, 905, 689 909, 913, 916, 920, 927, 931, 935, 940, 942, 945, 690 948, 952, 958, 967, 975, 983, 989, 999, 1002, 1005, 691 1011, 1015, 1021, 1026, 1030, 1035, 1040, 1048, 1052, 1056, 692 1060, 1064, 1069, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 693 1090, 1092, 1093, 1095, 1097, 1100, 1102, 1104, 1106, 1108, 694 1110, 1112, 1114, 1115, 1121, 1123, 1126, 1130, 1132, 1135, 695 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 696 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 697 1177, 1179, 1182, 1185, 1189, 1193, 1195, 1199, 1201, 1204, 698 1207, 1210, 1215, 1220, 1225, 1230, 1232, 1235, 1238, 1242, 699 1244, 1247, 1250, 1252, 1255, 1258, 1262, 1264, 1267, 1270, 700 1272, 1274, 1279, 1282, 1283, 1290, 1298, 1301, 1304, 1307, 701 1308, 1311, 1314, 1318, 1321, 1325, 1327, 1330, 1334, 1337, 702 1340, 1345, 1346, 1348, 1351, 1354, 1356, 1357, 1359, 1362, 703 1365, 1371, 1374, 1375, 1383, 1386, 1391, 1392, 1395, 1396, 704 1398, 1400, 1402, 1408, 1414, 1420, 1422, 1428, 1434, 1444, 705 1446, 1452, 1453, 1455, 1457, 1463, 1465, 1467, 1473, 1479, 706 1481, 1485, 1489, 1494, 1496, 1498, 1500, 1502, 1505, 1507, 707 1511, 1515, 1517, 1520, 1522, 1526, 1528, 1530, 1532, 1534, 708 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1551, 1553, 1555, 709 1557, 1560, 1561, 1564, 1567, 1569, 1574, 1575, 1577, 1580, 710 1584, 1589, 1592, 1595, 1597, 1600, 1603, 1609, 1615, 1623, 711 1630, 1632, 1635, 1638, 1642, 1644, 1647, 1650, 1655, 1658, 712 1663, 1664, 1669, 1672, 1674, 1676, 1678, 1679, 1682, 1688, 713 1694, 1708, 1710, 1712, 1716, 1720, 1723, 1727, 1731, 1734, 714 1739, 1741, 1748, 1758, 1759, 1771, 1773, 1777, 1781, 1785, 715 1787, 1789, 1795, 1798, 1804, 1805, 1807, 1809, 1813, 1814, 716 1816, 1818, 1820, 1822, 1823, 1830, 1833, 1835, 1838, 1843, 717 1846, 1850, 1854, 1858, 1863, 1869, 1875, 1881, 1888, 1890, 718 1892, 1894, 1898, 1899, 1905, 1906, 1908, 1910, 1913, 1920, 719 1922, 1926, 1927, 1929, 1934, 1936, 1938, 1940, 1942, 1945, 720 1947, 1950, 1953, 1955, 1959, 1962, 1966, 1970, 1973, 1978, 721 1983, 1987, 1996, 2000, 2003, 2005, 2008, 2015, 2024, 2028, 722 2031, 2035, 2039, 2044, 2049, 2053, 2055, 2057, 2059, 2064, 723 2071, 2075, 2078, 2082, 2086, 2091, 2096, 2100, 2103, 2105, 724 2108, 2111, 2113, 2117, 2120, 2124, 2128, 2131, 2136, 2141, 725 2145, 2152, 2161, 2165, 2168, 2170, 2173, 2176, 2179, 2183, 726 2187, 2190, 2195, 2200, 2204, 2211, 2220, 2224, 2227, 2229, 727 2232, 2235, 2237, 2239, 2242, 2246, 2250, 2253, 2258, 2265, 728 2274, 2276, 2279, 2282, 2284, 2287, 2290, 2294, 2298, 2300, 729 2305, 2310, 2314, 2320, 2329, 2333, 2336, 2340, 2342, 2348, 730 2354, 2361, 2368, 2370, 2373, 2376, 2378, 2381, 2384, 2388, 731 2392, 2394, 2399, 2404, 2408, 2414, 2423, 2427, 2429, 2432, 732 2434, 2437, 2444, 2450, 2457, 2465, 2473, 2475, 2478, 2481, 733 2483, 2486, 2489, 2493, 2497, 2499, 2504, 2509, 2513, 2522, 734 2526, 2528, 2530, 2533, 2535, 2537, 2540, 2544, 2547, 2551, 735 2554, 2558, 2562, 2565, 2570, 2574, 2577, 2581, 2584, 2589, 736 2593, 2596, 2603, 2610, 2617, 2625, 2627, 2630, 2632, 2634, 737 2636, 2639, 2643, 2646, 2650, 2653, 2657, 2661, 2666, 2669, 738 2673, 2678, 2681, 2687, 2693, 2700, 2707, 2708, 2710, 2711 739 }; 740 741 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 742 static const yytype_int16 yyrhs[] = 743 { 744 301, 0, -1, -1, -1, 79, -1, 80, -1, 81, 745 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 746 -1, 72, -1, 140, -1, 83, -1, 84, -1, 82, 747 -1, 141, 82, -1, 72, -1, 140, -1, 109, 169, 748 110, -1, 109, 173, 110, -1, 142, -1, 143, 111, 749 134, 164, 135, 112, -1, 143, 109, 144, 110, -1, 750 143, 113, 139, -1, 143, 113, 111, 134, 146, 135, 751 112, -1, 143, 85, 139, -1, 143, 85, 111, 134, 752 146, 135, 112, -1, 143, 86, -1, 143, 87, -1, 753 109, 274, 110, 114, 278, 371, 115, -1, 143, 114, 754 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 755 164, -1, 147, -1, 146, 116, 147, -1, 139, -1, 756 139, 113, 147, -1, 139, 113, 111, 134, 146, 135, 757 112, -1, 139, 85, 147, -1, 139, 85, 111, 134, 758 146, 135, 112, -1, 143, -1, 136, -1, 141, -1, 759 40, 151, -1, 149, 151, -1, 150, 151, -1, 86, 760 148, -1, 87, 148, -1, 37, 148, -1, 37, 109, 761 274, 110, -1, 66, 148, -1, 66, 109, 274, 110, 762 -1, 38, 109, 274, 116, 139, 110, -1, 76, -1, 763 76, 109, 145, 110, -1, 76, 109, 275, 110, -1, 764 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 765 122, -1, 148, -1, 109, 274, 110, 151, -1, 109, 766 274, 110, 167, -1, 151, -1, 152, 117, 151, -1, 767 152, 123, 151, -1, 152, 124, 151, -1, 152, -1, 768 153, 119, 152, -1, 153, 120, 152, -1, 153, -1, 769 154, 88, 153, -1, 154, 89, 153, -1, 154, -1, 770 155, 125, 154, -1, 155, 126, 154, -1, 155, 90, 771 154, -1, 155, 91, 154, -1, 155, -1, 156, 92, 772 155, -1, 156, 93, 155, -1, 156, -1, 157, 118, 773 156, -1, 157, -1, 158, 127, 157, -1, 158, -1, 774 159, 128, 158, -1, 159, -1, 160, 94, 159, -1, 775 160, -1, 161, 95, 160, -1, 161, -1, 161, 129, 776 169, 130, 162, -1, 161, 129, 130, 162, -1, 161, 777 129, 169, 130, 167, -1, 162, -1, 162, -1, 148, 778 166, 164, -1, 167, 372, -1, -1, 164, -1, 131, 779 -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, 780 -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, 781 -1, 111, 112, -1, 111, 134, 164, 135, 112, -1, 782 111, 134, 116, 168, 135, 112, -1, 111, 134, 164, 783 116, 168, 135, 112, -1, 165, -1, 168, 116, 165, 784 -1, 164, -1, 169, 116, 164, -1, -1, 169, -1, 785 172, -1, 173, -1, 177, -1, 178, -1, 190, -1, 786 192, -1, 193, -1, 198, -1, 127, 143, 114, 144, 787 115, 132, -1, 72, 130, 311, 171, -1, 114, 115, 788 -1, 114, 134, 134, 209, 174, 135, 115, -1, 175, 789 -1, 174, 134, 175, -1, 212, -1, 40, 212, -1, 790 307, -1, 171, 135, -1, 171, -1, 176, 171, -1, 791 170, 132, -1, 41, 109, 169, 110, 171, -1, 41, 792 109, 169, 110, 171, 42, 171, -1, 43, 109, 169, 793 110, 183, -1, 43, 109, 169, 110, 114, 134, 205, 794 184, 115, -1, 53, 109, 169, 110, 183, -1, 53, 795 109, 169, 110, 114, 134, 205, 186, 115, -1, 163, 796 -1, 163, 96, 163, -1, 309, -1, 179, -1, 180, 797 116, 179, -1, 44, 180, 130, -1, 45, 130, -1, 798 181, -1, 182, 181, -1, 182, 171, -1, -1, 185, 799 -1, 182, 176, -1, 185, 182, 176, -1, -1, 187, 800 -1, 182, 189, -1, 182, 176, 188, -1, 187, 182, 801 189, -1, 187, 182, 176, 188, -1, -1, 189, -1, 802 56, -1, 56, 132, -1, 47, 109, 169, 110, 171, 803 -1, 46, 171, 47, 109, 169, 110, 132, -1, 48, 804 109, 134, 191, 110, 171, -1, 170, 135, 132, 170, 805 132, 170, -1, 212, 170, 132, 170, -1, 51, 72, 806 132, -1, 51, 117, 169, 132, -1, 50, 132, -1, 807 50, 72, 132, -1, 49, 132, -1, 49, 72, 132, 808 -1, 52, 170, 132, -1, 61, 165, 132, -1, 62, 809 165, 132, -1, 62, 165, 63, 164, 132, -1, 57, 810 173, 194, -1, 57, 173, 196, -1, 57, 173, 194, 811 196, -1, 195, -1, 58, 109, 96, 110, 173, -1, 812 195, 58, 109, 96, 110, 173, -1, 59, 109, 96, 813 110, 173, -1, 195, 59, 109, 96, 110, 173, -1, 814 58, 109, 134, 134, 197, 135, 110, 173, 135, -1, 815 195, 58, 109, 134, 134, 197, 135, 110, 173, 135, 816 -1, 59, 109, 134, 134, 197, 135, 110, 173, 135, 817 -1, 195, 59, 109, 134, 134, 197, 135, 110, 173, 818 135, -1, 60, 173, -1, 225, -1, 225, 308, -1, 819 225, 356, -1, 365, 139, -1, 365, -1, 64, 199, 820 109, 141, 110, 132, -1, 64, 199, 109, 141, 130, 821 200, 110, 132, -1, 64, 199, 109, 141, 130, 200, 822 130, 200, 110, 132, -1, 64, 199, 109, 141, 130, 823 200, 130, 200, 130, 203, 110, 132, -1, 64, 199, 824 51, 109, 141, 130, 130, 200, 130, 203, 130, 204, 825 110, 132, -1, -1, 11, -1, -1, 201, -1, 202, 826 -1, 201, 116, 202, -1, 141, 109, 163, 110, -1, 827 111, 163, 112, 141, 109, 163, 110, -1, -1, 141, 828 -1, 203, 116, 141, -1, 139, -1, 204, 116, 139, 829 -1, 135, -1, 206, -1, 212, -1, 206, 134, 212, 830 -1, 135, -1, 208, -1, 222, -1, 208, 134, 222, 831 -1, -1, 210, -1, 29, 211, 132, -1, 210, 29, 832 211, 132, -1, 273, -1, 211, 116, 273, -1, 213, 833 -1, 222, -1, 214, 135, 132, -1, 219, 135, 132, 834 -1, 216, 135, 132, -1, 292, 135, 132, -1, 295, 835 135, 132, -1, 215, 276, -1, 231, 215, 276, -1, 836 214, 135, 116, 134, 271, 276, -1, 366, 271, 310, 837 -1, 369, 271, 310, -1, 227, 369, 271, 310, -1, 838 217, -1, 227, 217, -1, 231, 217, -1, 231, 227, 839 217, -1, 216, 135, 116, 134, 271, -1, 111, 112, 840 271, 109, 134, 259, 135, 110, -1, 369, 271, 109, 841 134, 259, 135, 110, -1, 218, 271, 109, 134, 259, 842 135, 110, -1, 111, 134, 261, 135, 112, -1, 111, 843 134, 261, 135, 116, 134, 262, 135, 112, -1, 3, 844 215, -1, 3, 217, -1, 219, 135, 116, 134, 139, 845 -1, 3, 225, 308, -1, 220, 135, 116, 134, 308, 846 -1, 227, 3, 225, 308, -1, 225, 3, 308, -1, 847 225, 3, 227, 308, -1, 3, 139, 131, 164, -1, 848 221, 135, 116, 134, 139, 131, 164, -1, 223, 135, 849 132, -1, 220, 135, 132, -1, 221, 135, 132, -1, 850 239, 135, 132, -1, 224, 308, 310, 276, -1, 223, 851 116, 311, 308, 310, 276, -1, 235, -1, 239, -1, 852 241, -1, 282, -1, 236, -1, 240, -1, 242, -1, 853 283, -1, -1, 227, -1, 228, -1, 227, 228, -1, 854 229, -1, 313, -1, 10, -1, 12, -1, 11, -1, 855 14, -1, 67, -1, -1, 13, 109, 230, 285, 110, 856 -1, 232, -1, 227, 232, -1, 231, 227, 232, -1, 857 233, -1, 232, 233, -1, 5, -1, 7, -1, 4, 858 -1, 6, -1, 8, -1, 9, -1, 69, -1, 71, 859 -1, 16, -1, 21, -1, 20, -1, 18, -1, 19, 860 -1, 17, -1, 22, -1, 23, -1, 15, -1, 25, 861 -1, 26, -1, 27, -1, 24, -1, 236, -1, 231, 862 236, -1, 235, 233, -1, 235, 233, 227, -1, 235, 863 233, 236, -1, 237, -1, 226, 238, 226, -1, 234, 864 -1, 227, 234, -1, 237, 228, -1, 237, 234, -1, 865 28, 109, 275, 110, -1, 28, 109, 169, 110, -1, 866 78, 109, 275, 110, -1, 78, 109, 169, 110, -1, 867 240, -1, 231, 240, -1, 239, 233, -1, 239, 233, 868 227, -1, 243, -1, 227, 243, -1, 240, 228, -1, 869 242, -1, 231, 242, -1, 241, 233, -1, 241, 233, 870 227, -1, 74, -1, 227, 74, -1, 242, 228, -1, 871 244, -1, 255, -1, 246, 114, 247, 115, -1, 246, 872 273, -1, -1, 246, 273, 245, 114, 247, 115, -1, 873 246, 109, 291, 110, 114, 247, 115, -1, 246, 284, 874 -1, 31, 311, -1, 32, 311, -1, -1, 247, 248, 875 -1, 249, 132, -1, 40, 249, 132, -1, 250, 132, 876 -1, 40, 250, 132, -1, 365, -1, 365, 273, -1, 877 249, 116, 273, -1, 249, 116, -1, 225, 251, -1, 878 250, 116, 311, 251, -1, -1, 253, -1, 317, 252, 879 -1, 330, 252, -1, 356, -1, -1, 253, -1, 130, 880 163, -1, 30, 311, -1, 254, 114, 257, 371, 115, 881 -1, 254, 273, -1, -1, 254, 273, 256, 114, 257, 882 371, 115, -1, 273, 258, -1, 257, 116, 273, 258, 883 -1, -1, 131, 163, -1, -1, 260, -1, 262, -1, 884 261, -1, 261, 135, 116, 134, 262, -1, 262, 135, 885 116, 134, 96, -1, 261, 135, 116, 134, 96, -1, 886 266, -1, 262, 135, 116, 134, 266, -1, 261, 135, 887 116, 134, 266, -1, 261, 135, 116, 134, 262, 135, 888 116, 134, 266, -1, 267, -1, 262, 135, 116, 134, 889 267, -1, -1, 264, -1, 265, -1, 265, 135, 116, 890 134, 96, -1, 269, -1, 268, -1, 265, 135, 116, 891 134, 269, -1, 265, 135, 116, 134, 268, -1, 268, 892 -1, 361, 271, 372, -1, 369, 271, 372, -1, 227, 893 369, 271, 372, -1, 217, -1, 269, -1, 361, -1, 894 369, -1, 227, 369, -1, 370, -1, 224, 335, 372, 895 -1, 224, 339, 372, -1, 224, -1, 224, 350, -1, 896 139, -1, 270, 116, 139, -1, 137, -1, 74, -1, 897 75, -1, 138, -1, 74, -1, 75, -1, 139, -1, 898 74, -1, 75, -1, 365, -1, 225, -1, 225, 356, 899 -1, 365, -1, 370, -1, 225, -1, 225, 344, -1, 900 -1, 131, 277, -1, 107, 277, -1, 164, -1, 114, 901 278, 371, 115, -1, -1, 277, -1, 279, 277, -1, 902 278, 116, 277, -1, 278, 116, 279, 277, -1, 280, 903 130, -1, 273, 130, -1, 281, -1, 280, 281, -1, 904 113, 273, -1, 111, 134, 164, 135, 112, -1, 111, 905 134, 309, 135, 112, -1, 111, 134, 163, 96, 163, 906 135, 112, -1, 113, 111, 134, 146, 135, 112, -1, 907 283, -1, 231, 283, -1, 282, 233, -1, 282, 233, 908 227, -1, 284, -1, 227, 284, -1, 283, 228, -1, 909 75, 109, 291, 110, -1, 286, 372, -1, 285, 116, 910 286, 372, -1, -1, 288, 273, 287, 289, -1, 225, 911 335, -1, 33, -1, 35, -1, 34, -1, -1, 289, 912 290, -1, 128, 273, 109, 291, 110, -1, 128, 114, 913 134, 297, 115, -1, 128, 109, 134, 285, 135, 110, 914 114, 134, 297, 115, 109, 291, 110, -1, 275, -1, 915 164, -1, 291, 116, 275, -1, 291, 116, 164, -1, 916 33, 293, -1, 232, 33, 293, -1, 292, 116, 293, 917 -1, 294, 289, -1, 294, 289, 131, 275, -1, 273, 918 -1, 272, 109, 134, 285, 135, 110, -1, 36, 273, 919 109, 134, 285, 135, 110, 114, 115, -1, -1, 36, 920 273, 109, 134, 285, 135, 110, 114, 296, 297, 115, 921 -1, 298, -1, 297, 134, 298, -1, 299, 135, 132, 922 -1, 300, 135, 132, -1, 215, -1, 217, -1, 299, 923 135, 116, 134, 271, -1, 225, 308, -1, 300, 135, 924 116, 134, 308, -1, -1, 302, -1, 304, -1, 302, 925 134, 304, -1, -1, 302, -1, 212, -1, 306, -1, 926 198, -1, -1, 5, 82, 305, 114, 303, 115, -1, 927 40, 304, -1, 307, -1, 322, 173, -1, 326, 134, 928 207, 173, -1, 216, 173, -1, 224, 322, 173, -1, 929 227, 322, 173, -1, 231, 322, 173, -1, 231, 227, 930 322, 173, -1, 224, 326, 134, 207, 173, -1, 227, 931 326, 134, 207, 173, -1, 231, 326, 134, 207, 173, 932 -1, 231, 227, 326, 134, 207, 173, -1, 317, -1, 933 330, -1, 322, -1, 163, 122, 163, -1, -1, 64, 934 109, 141, 110, 311, -1, -1, 312, -1, 313, -1, 935 312, 313, -1, 39, 109, 109, 314, 110, 110, -1, 936 315, -1, 314, 116, 315, -1, -1, 316, -1, 316, 937 109, 170, 110, -1, 271, -1, 233, -1, 234, -1, 938 228, -1, 318, 311, -1, 319, -1, 320, 311, -1, 939 321, 311, -1, 137, -1, 109, 318, 110, -1, 149, 940 317, -1, 149, 227, 317, -1, 109, 319, 110, -1, 941 318, 348, -1, 109, 319, 110, 348, -1, 109, 320, 942 110, 349, -1, 109, 320, 110, -1, 109, 319, 110, 943 109, 134, 263, 135, 110, -1, 109, 321, 110, -1, 944 323, 311, -1, 324, -1, 325, 311, -1, 318, 109, 945 134, 263, 135, 110, -1, 109, 324, 110, 109, 134, 946 263, 135, 110, -1, 109, 323, 110, -1, 149, 322, 947 -1, 149, 227, 322, -1, 109, 324, 110, -1, 109, 948 324, 110, 348, -1, 109, 325, 110, 349, -1, 109, 949 325, 110, -1, 327, -1, 328, -1, 329, -1, 318, 950 109, 270, 110, -1, 109, 328, 110, 109, 270, 110, 951 -1, 109, 327, 110, -1, 149, 326, -1, 149, 227, 952 326, -1, 109, 328, 110, -1, 109, 328, 110, 348, 953 -1, 109, 329, 110, 349, -1, 109, 329, 110, -1, 954 331, 311, -1, 332, -1, 333, 311, -1, 334, 311, 955 -1, 340, -1, 109, 331, 110, -1, 149, 330, -1, 956 149, 227, 330, -1, 109, 332, 110, -1, 331, 348, 957 -1, 109, 332, 110, 348, -1, 109, 333, 110, 349, 958 -1, 109, 333, 110, -1, 331, 109, 134, 263, 135, 959 110, -1, 109, 332, 110, 109, 134, 263, 135, 110, 960 -1, 109, 334, 110, -1, 318, 311, -1, 336, -1, 961 337, 311, -1, 338, 311, -1, 149, 335, -1, 149, 962 227, 335, -1, 109, 336, 110, -1, 318, 354, -1, 963 109, 336, 110, 348, -1, 109, 337, 110, 349, -1, 964 109, 337, 110, -1, 318, 109, 134, 263, 135, 110, 965 -1, 109, 336, 110, 109, 134, 263, 135, 110, -1, 966 109, 338, 110, -1, 340, 311, -1, 341, -1, 342, 967 311, -1, 343, 311, -1, 74, -1, 75, -1, 149, 968 339, -1, 149, 227, 339, -1, 109, 341, 110, -1, 969 340, 354, -1, 109, 341, 110, 354, -1, 340, 109, 970 134, 263, 135, 110, -1, 109, 341, 110, 109, 134, 971 263, 135, 110, -1, 345, -1, 346, 311, -1, 347, 972 311, -1, 149, -1, 149, 227, -1, 149, 344, -1, 973 149, 227, 344, -1, 109, 345, 110, -1, 348, -1, 974 109, 345, 110, 348, -1, 109, 346, 110, 349, -1, 975 109, 346, 110, -1, 109, 134, 263, 135, 110, -1, 976 109, 345, 110, 109, 134, 263, 135, 110, -1, 109, 977 347, 110, -1, 111, 112, -1, 111, 112, 349, -1, 978 349, -1, 111, 134, 164, 135, 112, -1, 111, 134, 979 117, 135, 112, -1, 349, 111, 134, 164, 135, 112, 980 -1, 349, 111, 134, 117, 135, 112, -1, 351, -1, 981 352, 311, -1, 353, 311, -1, 149, -1, 149, 227, 982 -1, 149, 350, -1, 149, 227, 350, -1, 109, 351, 983 110, -1, 354, -1, 109, 351, 110, 354, -1, 109, 984 352, 110, 349, -1, 109, 352, 110, -1, 109, 134, 985 263, 135, 110, -1, 109, 351, 110, 109, 134, 263, 986 135, 110, -1, 109, 353, 110, -1, 355, -1, 355, 987 349, -1, 349, -1, 111, 112, -1, 111, 134, 227, 988 117, 135, 112, -1, 111, 134, 227, 135, 112, -1, 989 111, 134, 227, 164, 135, 112, -1, 111, 134, 7, 990 226, 164, 135, 112, -1, 111, 134, 227, 7, 164, 991 135, 112, -1, 357, -1, 358, 311, -1, 359, 311, 992 -1, 149, -1, 149, 227, -1, 149, 356, -1, 149, 993 227, 356, -1, 109, 357, 110, -1, 348, -1, 109, 994 357, 110, 348, -1, 109, 358, 110, 349, -1, 109, 995 358, 110, -1, 109, 357, 110, 109, 134, 263, 135, 996 110, -1, 109, 359, 110, -1, 361, -1, 369, -1, 997 227, 369, -1, 362, -1, 363, -1, 149, 225, -1, 998 227, 149, 225, -1, 149, 370, -1, 227, 149, 370, 999 -1, 149, 360, -1, 227, 149, 360, -1, 111, 112, 1000 225, -1, 364, 225, -1, 111, 112, 349, 225, -1, 1001 364, 349, 225, -1, 349, 225, -1, 111, 112, 362, 1002 -1, 364, 362, -1, 111, 112, 349, 362, -1, 364, 1003 349, 362, -1, 349, 362, -1, 111, 134, 227, 117, 1004 135, 112, -1, 111, 134, 227, 164, 135, 112, -1, 1005 111, 134, 231, 164, 135, 112, -1, 111, 134, 231, 1006 227, 164, 135, 112, -1, 369, -1, 227, 369, -1, 1007 366, -1, 367, -1, 368, -1, 149, 225, -1, 227, 1008 149, 225, -1, 149, 370, -1, 227, 149, 370, -1, 1009 149, 365, -1, 227, 149, 365, -1, 111, 112, 225, 1010 -1, 111, 112, 349, 225, -1, 349, 225, -1, 111, 1011 112, 367, -1, 111, 112, 349, 367, -1, 349, 367, 1012 -1, 111, 134, 262, 135, 112, -1, 111, 112, 109, 1013 259, 110, -1, 369, 109, 134, 259, 135, 110, -1, 1014 218, 109, 134, 259, 135, 110, -1, -1, 116, -1, 1015 -1, 131, 164, -1 1016 }; 1017 1018 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 684 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 1019 685 static const yytype_uint16 yyrline[] = 1020 686 { … … 1097 763 #endif 1098 764 1099 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE765 #if YYDEBUG || YYERROR_VERBOSE || 0 1100 766 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1101 767 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 1205 871 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 1206 872 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 1207 "comma_opt", "assignment_opt", 0873 "comma_opt", "assignment_opt", YY_NULLPTR 1208 874 }; 1209 875 #endif 1210 876 1211 877 # ifdef YYPRINT 1212 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to1213 token YYLEX-NUM. */878 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 879 (internal) symbol number NUM (which must be that of a token). */ 1214 880 static const yytype_uint16 yytoknum[] = 1215 881 { … … 1231 897 # endif 1232 898 1233 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1234 static const yytype_uint16 yyr1[] = 899 #define YYPACT_NINF -1317 900 901 #define yypact_value_is_default(Yystate) \ 902 (!!((Yystate) == (-1317))) 903 904 #define YYTABLE_NINF -520 905 906 #define yytable_value_is_error(Yytable_value) \ 907 0 908 909 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 910 STATE-NUM. */ 911 static const yytype_int16 yypact[] = 1235 912 { 1236 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 1237 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 1238 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 1239 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 1240 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 1241 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 1242 149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 1243 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 1244 155, 155, 155, 155, 156, 156, 156, 157, 157, 158, 1245 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 1246 162, 163, 164, 164, 164, 165, 165, 166, 166, 166, 1247 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 1248 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 1249 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, 1250 174, 174, 175, 175, 175, 175, 176, 176, 177, 178, 1251 178, 178, 178, 178, 178, 179, 179, 179, 180, 180, 1252 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 1253 186, 187, 187, 187, 187, 188, 188, 189, 189, 190, 1254 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 1255 192, 192, 192, 192, 193, 193, 193, 194, 194, 194, 1256 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, 1257 197, 197, 198, 198, 198, 198, 198, 199, 199, 200, 1258 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, 1259 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1260 210, 210, 211, 211, 212, 212, 213, 213, 213, 213, 1261 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 1262 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 1263 220, 220, 220, 220, 220, 221, 221, 222, 222, 222, 1264 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, 1265 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 1266 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 1267 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 1268 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 1269 235, 235, 235, 235, 235, 236, 236, 237, 237, 237, 1270 237, 238, 238, 238, 238, 239, 239, 239, 239, 240, 1271 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 1272 243, 244, 244, 245, 244, 244, 244, 246, 246, 247, 1273 247, 248, 248, 248, 248, 249, 249, 249, 249, 250, 1274 250, 251, 251, 251, 251, 251, 252, 252, 253, 254, 1275 255, 255, 256, 255, 257, 257, 258, 258, 259, 259, 1276 260, 260, 260, 260, 260, 261, 261, 261, 261, 262, 1277 262, 263, 263, 264, 264, 265, 265, 265, 265, 266, 1278 266, 266, 266, 266, 267, 267, 267, 267, 267, 268, 1279 268, 269, 269, 270, 270, 271, 271, 271, 272, 272, 1280 272, 273, 273, 273, 274, 274, 274, 275, 275, 275, 1281 275, 276, 276, 276, 277, 277, 278, 278, 278, 278, 1282 278, 279, 279, 280, 280, 281, 281, 281, 281, 281, 1283 282, 282, 282, 282, 283, 283, 283, 284, 285, 285, 1284 287, 286, 286, 288, 288, 288, 289, 289, 290, 290, 1285 290, 291, 291, 291, 291, 292, 292, 292, 293, 293, 1286 294, 294, 295, 296, 295, 297, 297, 298, 298, 299, 1287 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, 1288 304, 304, 304, 305, 304, 304, 306, 306, 306, 307, 1289 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 1290 308, 309, 310, 310, 311, 311, 312, 312, 313, 314, 1291 314, 315, 315, 315, 316, 316, 316, 316, 317, 317, 1292 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 1293 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 1294 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 1295 327, 328, 328, 328, 329, 329, 329, 330, 330, 330, 1296 330, 331, 331, 332, 332, 332, 333, 333, 333, 333, 1297 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 1298 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 1299 339, 340, 340, 341, 341, 341, 342, 342, 343, 343, 1300 344, 344, 344, 345, 345, 345, 345, 345, 346, 346, 1301 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 1302 349, 349, 350, 350, 350, 351, 351, 351, 351, 351, 1303 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 1304 355, 355, 355, 355, 355, 355, 356, 356, 356, 357, 1305 357, 357, 357, 357, 358, 358, 358, 358, 359, 359, 1306 360, 360, 360, 361, 361, 362, 362, 362, 362, 362, 1307 362, 363, 363, 363, 363, 363, 363, 363, 363, 363, 1308 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, 1309 367, 367, 367, 367, 367, 367, 368, 368, 368, 368, 1310 368, 368, 369, 370, 370, 370, 371, 371, 372, 372 913 7252, 8635, -1317, -3, -1317, -1317, -1317, -1317, -1317, -1317, 914 -1317, 23, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 915 -1317, -1317, -1317, -1317, -1317, -1317, 81, 81, 81, 1277, 916 970, 104, 7368, 277, -1317, -1317, -1317, -1317, -1317, 201, 917 -1317, -1317, -1317, 1047, 187, -1317, -1317, -1317, -1317, 5370, 918 -1317, -1317, -1317, -1317, 35, 48, -1317, 1328, -1317, -1317, 919 -1317, -1317, 235, 1663, 343, 98, 7484, -1317, -1317, 6174, 920 1066, -1317, -1317, 536, 376, 5540, 978, 1631, 536, 1775, 921 -1317, -1317, 477, 683, -1317, 536, 1892, -1317, 295, -1317, 922 422, 489, -1317, -1317, -1317, -1317, 346, 48, 81, -1317, 923 81, -1317, -1317, -1317, -1317, 9392, 1328, -1317, -1317, 1328, 924 -1317, 321, -1317, 9431, -1317, -1317, 2250, 9501, -1317, 668, 925 668, 668, -1317, -1317, -1317, 81, -1317, -1317, -1317, 373, 926 399, 410, -1317, -1317, -1317, 420, -1317, -1317, -1317, -1317, 927 -1317, 428, 450, -1317, -1317, 59, 8604, 2904, 144, 440, 928 493, 498, 531, 544, 560, 8522, 6772, 510, 580, -1317, 929 9114, -1317, -1317, -1317, -1317, 584, -1317, 153, 4280, 4280, 930 -1317, 570, 283, -1317, -1317, -1317, -1317, 596, 288, 303, 931 332, 81, 583, -1317, -1317, 1663, 2232, 648, -1317, 73, 932 -1317, 81, 81, 48, -1317, -1317, 80, -1317, 81, 81, 933 -1317, 3694, 599, 613, 668, 6565, -1317, -1317, 661, 5370, 934 -1317, -1317, 536, -1317, -1317, -1317, 48, -1317, 1328, 35, 935 -1317, 7675, -1317, 668, 668, 668, 48, -1317, 1277, -1317, 936 5446, -1317, -1317, 620, 668, -1317, 668, -1317, 201, 8604, 937 -1317, 673, -1317, 970, 692, 668, -1317, 1277, 697, 707, 938 -1317, 7368, 576, -1317, -1317, -1317, 4822, -1317, -1317, 9720, 939 -1317, 648, 165, 10347, 9501, 2250, 3694, -1317, 109, -1317, 940 -1317, 9431, 1328, 743, 7515, -1317, -1317, 306, -1317, 10675, 941 770, 800, 2676, 801, 10480, 10499, -1317, 813, -1317, -1317, 942 -1317, -1317, 10556, 10556, 8378, 795, -1317, -1317, -1317, -1317, 943 -1317, -1317, 842, -1317, 685, 1919, 8717, 10480, -1317, 652, 944 325, 507, 317, 581, 826, 820, 823, 861, 111, -1317, 945 -1317, 827, 703, -1317, 452, -1317, -1317, 2904, -1317, -1317, 946 278, 856, -1317, 636, 856, 866, 201, -1317, -1317, 872, 947 9392, -1317, 876, 887, 8830, -1317, -1317, 1020, 2049, 8093, 948 6565, 536, -1317, 536, 668, 668, -1317, -1317, -1317, -1317, 949 -1317, -1317, 668, 9392, 1328, -1317, -1317, 9540, 1233, -1317, 950 7824, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 891, 4627, 951 10480, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 952 -1317, -1317, -1317, -1317, -1317, 2250, -1317, 552, 901, 904, 953 912, 862, 920, 922, 924, 2232, -1317, -1317, 932, 35, 954 936, -1317, -1317, 939, -1317, -1317, -1317, 4822, -1317, -1317, 955 -1317, -1317, -1317, 3694, -1317, 8604, 8604, -1317, 668, 2250, 956 6684, 1328, 8166, -1317, -1317, -1317, -1317, 4822, 165, -1317, 957 -1317, 536, 48, -1317, -1317, 4822, -1317, 6449, -1317, -1317, 958 668, 668, 484, 8011, 938, 941, 931, 952, 668, -1317, 959 -1317, -1317, -1317, 9797, -1317, 578, 6327, -1317, 48, 955, 960 -1317, 2250, 10757, 10404, -1317, -1317, -1317, -1317, 881, 3694, 961 -1317, 8239, 648, 3545, -1317, -1317, -1317, 1641, 586, 827, 962 970, 7515, 592, 9431, -1317, 7515, -1317, -1317, -1317, -1317, 963 603, -1317, 967, 800, 215, 8378, -1317, 9570, -1317, -1317, 964 8378, -1317, 8491, 8378, -1317, -1317, 966, -1317, 617, 973, 965 839, 983, -1317, -1317, 9253, 6415, -1317, 247, -1317, -1317, 966 10347, -1317, 330, 10347, -1317, -1317, -1317, -1317, -1317, -1317, 967 -1317, -1317, -1317, -1317, -1317, 10347, -1317, -1317, 10480, 10480, 968 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 969 10480, 10480, 10480, 10480, 10480, 10480, 4526, 10347, -1317, 703, 970 751, -1317, -1317, 81, 81, -1317, -1317, 8604, -1317, -1317, 971 939, 576, -1317, 939, 10423, -1317, -1317, -1317, 8975, 6415, 972 968, 976, -1317, 9501, -1317, -1317, 584, -1317, 990, 769, 973 999, 3014, 124, 827, -1317, 81, 81, 827, 125, -1317, 974 81, 81, 939, -1317, -1317, 81, 81, -1317, 856, 9652, 975 1328, 10902, 151, 358, 9652, -1317, 9720, -1317, 827, -1317, 976 9392, -1317, 147, 7790, 7790, 7790, 1328, -1317, 5708, 982, 977 891, 1167, 995, 996, -1317, 1011, 4280, 230, -1317, 1103, 978 1328, 7790, 576, 2250, 576, 648, 671, 856, -1317, -1317, 979 694, 856, -1317, -1317, -1317, 800, -1317, 856, 48, 9797, 980 -1317, 621, 1024, 640, 1026, -1317, 1030, 48, -1317, -1317, 981 4822, 48, 1032, 9570, 1037, -1317, 1585, -1317, 335, 390, 982 970, -1317, 970, 1023, 10480, -1317, 970, 10902, -1317, -1317, 983 1034, -1317, -1317, -1317, 576, -1317, 10830, 887, -1317, 7790, 984 859, 8093, -1317, -1317, 584, 1025, 1036, 1641, 3247, -1317, 985 -1317, 7515, -1317, -1317, 1039, -1317, -1317, 1043, -1317, 1039, 986 1048, 10675, 10347, 67, 1027, 133, 1053, 1061, 1068, 1069, 987 -1317, 1072, 1074, 9362, 6534, -1317, 10347, -1317, 839, 2140, 988 -1317, -1317, -1317, 81, 81, 10290, 10347, 1070, -1317, -1317, 989 675, -1317, 10347, -1317, -1317, 644, -1317, -1317, -1317, -1317, 990 652, 652, 325, 325, 507, 507, 507, 507, 317, 317, 991 581, 826, 820, 823, 861, 10480, 333, -1317, 9797, 1079, 992 1080, 1081, 751, -1317, -1317, -1317, -1317, -1317, 9797, 700, 993 7790, -1317, 9392, -1317, 6891, 8943, -1317, 7824, 6772, -1317, 994 -1317, 769, 9797, 917, 1082, 1083, 1084, 1087, 1088, 1089, 995 1091, -1317, 4955, 3014, -1317, -1317, -1317, -1317, -1317, -1317, 996 -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 997 -1317, 939, -1317, -1317, -1317, 827, -1317, -1317, -1317, -1317, 998 -1317, -1317, -1317, -1317, 1098, -1317, 1099, 1101, -1317, -1317, 999 35, 1070, 5708, -1317, -1317, -1317, 4627, 1102, -1317, -1317, 1000 -1317, -1317, 970, 5944, 1191, -1317, -1317, -1317, -1317, 1094, 1001 35, -1317, -1317, 939, -1317, -1317, 939, 24, 939, -1317, 1002 -1317, -1317, -1317, -1317, -1317, 9223, -1317, 48, -1317, -1317, 1003 432, 441, 9540, 7010, 2348, 10480, 3377, -1317, -1317, 1092, 1004 94, 1092, -1317, 970, -1317, 81, -1317, -1317, 8748, 931, 1005 -1317, -1317, -1317, 941, 1116, 1111, -1317, -1317, 1118, 1119, 1006 -1317, 859, 2430, -1317, 455, -1317, 3247, 827, -1317, 1122, 1007 7515, 9682, 8604, 1125, -1317, -1317, 1130, 1135, 1124, -1317, 1008 10480, 166, 222, 1132, -1317, 1138, 576, 1138, -1317, -1317, 1009 1138, 1137, -1317, 1145, 1147, 1148, 2140, -1317, -1317, -1317, 1010 4627, -1317, -1317, -1317, -1317, 1143, 10347, 1149, 576, -1317, 1011 10347, -1317, 576, -1317, -1317, 10347, -1317, 721, 856, -1317, 1012 -1317, -1317, -1317, -1317, -1317, -1317, 891, 887, 8830, -1317, 1013 -1317, 7129, 1152, -1317, 731, 856, -1317, 745, 763, 856, 1014 -1317, 668, 5561, -1317, -1317, -1317, 9797, 9797, -1317, 8166, 1015 8166, -1317, 1154, 1156, 1153, 1155, -1317, 1168, 460, 196, 1016 1070, -1317, 576, -1317, 4280, -1317, 10347, 474, -1317, 6296, 1017 1159, 1170, 10233, 1172, 1175, -14, 3, 11, 10347, 1179, 1018 48, 10347, 10347, 1160, 1177, 282, 1161, -1317, -1317, -1317, 1019 1180, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1020 970, 1184, 10347, -1317, 9797, 9797, 81, 1188, -1317, 8861, 1021 -1317, -1317, 809, -1317, 3377, -1317, -1317, -1317, -1317, 1585, 1022 -1317, -1317, 1185, -1317, -1317, -1317, -1317, 1193, 2430, -1317, 1023 -1317, 1176, -1317, 1039, -1317, -1317, 2250, 1196, -1317, -1317, 1024 -1317, 709, 1198, -1317, 133, 1202, 10480, 1186, 133, 133, 1025 1211, 9253, 789, 856, -1317, -1317, 1011, 10347, 1214, 1143, 1026 505, 224, 1217, -1317, -1317, 1218, 1217, -1317, -1317, 1226, 1027 -1317, -1317, 939, 1228, 1230, 6653, 1231, 1232, 1243, -1317, 1028 -1317, 1246, -1317, -1317, 939, -1317, -1317, -1317, -1317, 939, 1029 10347, 10347, 887, 1245, -1317, -1317, -1317, -1317, -1317, -1317, 1030 -1317, -1317, -1317, -1317, -1317, -1317, 10480, 10480, 1247, 1251, 1031 1217, -1317, -1317, 970, -1317, -1317, -1317, 4468, 9682, 10347, 1032 10347, 1311, 10347, -1317, 1234, -1317, 1237, -1317, 1239, 10347, 1033 1241, 10347, 1049, 1244, 26, 81, 9084, 750, -1317, -1317, 1034 5944, 1267, 481, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1035 -1317, -1317, 10053, -1317, 8239, 1274, -1317, -1317, 9682, 482, 1036 512, -1317, 1272, 1259, 800, 1280, -1317, 245, -1317, -1317, 1037 -1317, -1317, 939, 1279, -1317, -1317, 1287, 385, 444, 576, 1038 1293, -1317, 1294, -1317, 9797, -1317, -1317, -1317, -1317, -1317, 1039 1295, -1317, 9797, 9797, 9797, -1317, -1317, 1297, -1317, 1298, 1040 1282, 1305, 511, 7863, 7978, -1317, -1317, 348, -1317, 1304, 1041 1310, -1317, 8312, 712, 734, 1308, 739, 6143, -1317, -1317, 1042 -1317, 515, -1317, 765, 1318, 1320, 48, 1371, 879, -1317, 1043 -1317, 10347, -1317, 10233, 10347, -1317, -1317, -1317, 1322, 1329, 1044 -1317, -1317, -1317, 1324, -1317, -1317, -1317, -1317, -1317, -1317, 1045 9682, 800, 265, -1317, 1309, 800, 9797, -1317, -1317, -1317, 1046 -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1047 -1317, 1330, 1331, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1048 1334, -1317, 1333, -1317, -1317, 10233, 143, 10347, 10233, -1317, 1049 1338, 10347, -1317, 259, 1354, 1356, -1317, -1317, 1346, 1347, 1050 1326, -1317, 880, -1317, -1317, -1317, 1328, 2250, 1345, 842, 1051 364, 10480, -1317, 774, -1317, 576, 576, 1352, 1355, 1357, 1052 1360, -1317, -1317, 8166, 1358, -1317, 1436, 10480, 1349, -1317, 1053 -1317, 10145, -1317, 783, -1317, 1350, 10233, 1359, -1317, -1317, 1054 1378, -1317, 1379, -1317, 1394, 1396, -1317, 1361, 9682, -1317, 1055 -1317, -1317, 800, 576, 1386, 1367, 1392, 1217, 1217, -1317, 1056 -1317, -1317, -1317, -1317, 10233, 275, -1317, 384, -1317, -1317, 1057 7600, -1317, -1317, 1375, 10347, -1317, 10347, 7600, 48, 9570, 1058 48, 9570, 1393, -1317, 1398, -1317, -1317, 1395, 842, -1317, 1059 798, -1317, -1317, -1317, 1399, 1401, -1317, 10480, 10480, -1317, 1060 -1317, 964, 167, -1317, -1317, 1388, -1317, 964, -1317, -1317, 1061 2461, 576, -1317, -1317, 48, 9570, 48, 9570, 1409, 1390, 1062 576, -1317, -1317, -1317, -1317, 10145, 1410, 964, 5861, 10347, 1063 10057, 1412, 964, 1414, 2461, 3613, -1317, -1317, -1317, 1420, 1064 -1317, -1317, -1317, -1317, 8604, -1317, -1317, -1317, 9924, -1317, 1065 10145, -1317, -1317, 1402, 9836, -1317, -1317, 10057, 48, 3613, 1066 48, 1421, 1429, 817, -1317, 9924, -1317, -1317, -1317, 9836, 1067 -1317, -1317, -1317, 48, 48, -1317, -1317, -1317, -1317, -1317, 1068 -1317, -1317, -1317 1311 1069 }; 1312 1070 1313 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1314 static const yytype_uint8 yyr2[] = 1315 { 1316 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1317 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1318 3, 3, 1, 6, 4, 3, 7, 3, 7, 2, 1319 2, 7, 4, 1, 3, 0, 1, 1, 3, 1, 1320 3, 7, 3, 7, 1, 1, 1, 2, 2, 2, 1321 2, 2, 2, 4, 2, 4, 6, 1, 4, 4, 1322 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1323 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 1324 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 1325 3, 1, 3, 1, 3, 1, 3, 1, 5, 4, 1326 5, 1, 1, 3, 2, 0, 1, 1, 1, 1, 1327 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1328 6, 7, 1, 3, 1, 3, 0, 1, 1, 1, 1329 1, 1, 1, 1, 1, 1, 6, 4, 2, 7, 1330 1, 3, 1, 2, 1, 2, 1, 2, 2, 5, 1331 7, 5, 9, 5, 9, 1, 3, 1, 1, 3, 1332 3, 2, 1, 2, 2, 0, 1, 2, 3, 0, 1333 1, 2, 3, 3, 4, 0, 1, 1, 2, 5, 1334 7, 6, 6, 4, 3, 4, 2, 3, 2, 3, 1335 3, 3, 3, 5, 3, 3, 4, 1, 5, 6, 1336 5, 6, 9, 10, 9, 10, 2, 1, 2, 2, 1337 2, 1, 6, 8, 10, 12, 14, 0, 1, 0, 1338 1, 1, 3, 4, 7, 0, 1, 3, 1, 3, 1339 1, 1, 1, 3, 1, 1, 1, 3, 0, 1, 1340 3, 4, 1, 3, 1, 1, 3, 3, 3, 3, 1341 3, 2, 3, 6, 3, 3, 4, 1, 2, 2, 1342 3, 5, 8, 7, 7, 5, 9, 2, 2, 5, 1343 3, 5, 4, 3, 4, 4, 7, 3, 3, 3, 1344 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 1345 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1346 1, 1, 0, 5, 1, 2, 3, 1, 2, 1, 1347 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1348 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1349 1, 2, 2, 3, 3, 1, 3, 1, 2, 2, 1350 2, 4, 4, 4, 4, 1, 2, 2, 3, 1, 1351 2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 1352 1, 4, 2, 0, 6, 7, 2, 2, 2, 0, 1353 2, 2, 3, 2, 3, 1, 2, 3, 2, 2, 1354 4, 0, 1, 2, 2, 1, 0, 1, 2, 2, 1355 5, 2, 0, 7, 2, 4, 0, 2, 0, 1, 1356 1, 1, 5, 5, 5, 1, 5, 5, 9, 1, 1357 5, 0, 1, 1, 5, 1, 1, 5, 5, 1, 1358 3, 3, 4, 1, 1, 1, 1, 2, 1, 3, 1359 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1360 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1361 2, 0, 2, 2, 1, 4, 0, 1, 2, 3, 1362 4, 2, 2, 1, 2, 2, 5, 5, 7, 6, 1363 1, 2, 2, 3, 1, 2, 2, 4, 2, 4, 1364 0, 4, 2, 1, 1, 1, 0, 2, 5, 5, 1365 13, 1, 1, 3, 3, 2, 3, 3, 2, 4, 1366 1, 6, 9, 0, 11, 1, 3, 3, 3, 1, 1367 1, 5, 2, 5, 0, 1, 1, 3, 0, 1, 1368 1, 1, 1, 0, 6, 2, 1, 2, 4, 2, 1369 3, 3, 3, 4, 5, 5, 5, 6, 1, 1, 1370 1, 3, 0, 5, 0, 1, 1, 2, 6, 1, 1371 3, 0, 1, 4, 1, 1, 1, 1, 2, 1, 1372 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1373 3, 8, 3, 2, 1, 2, 6, 8, 3, 2, 1374 3, 3, 4, 4, 3, 1, 1, 1, 4, 6, 1375 3, 2, 3, 3, 4, 4, 3, 2, 1, 2, 1376 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 1377 6, 8, 3, 2, 1, 2, 2, 2, 3, 3, 1378 2, 4, 4, 3, 6, 8, 3, 2, 1, 2, 1379 2, 1, 1, 2, 3, 3, 2, 4, 6, 8, 1380 1, 2, 2, 1, 2, 2, 3, 3, 1, 4, 1381 4, 3, 5, 8, 3, 2, 3, 1, 5, 5, 1382 6, 6, 1, 2, 2, 1, 2, 2, 3, 3, 1383 1, 4, 4, 3, 5, 8, 3, 1, 2, 1, 1384 2, 6, 5, 6, 7, 7, 1, 2, 2, 1, 1385 2, 2, 3, 3, 1, 4, 4, 3, 8, 3, 1386 1, 1, 2, 1, 1, 2, 3, 2, 3, 2, 1387 3, 3, 2, 4, 3, 2, 3, 2, 4, 3, 1388 2, 6, 6, 6, 7, 1, 2, 1, 1, 1, 1389 2, 3, 2, 3, 2, 3, 3, 4, 2, 3, 1390 4, 2, 5, 5, 6, 6, 0, 1, 0, 2 1391 }; 1392 1393 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1394 Performed when YYTABLE doesn't specify something else to do. Zero 1395 means the default is an error. */ 1071 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1072 Performed when YYTABLE does not specify something else to do. Zero 1073 means the default is an error. */ 1396 1074 static const yytype_uint16 yydefact[] = 1397 1075 { … … 1554 1232 }; 1555 1233 1556 /* YYDEFGOTO[NTERM-NUM]. */ 1234 /* YYPGOTO[NTERM-NUM]. */ 1235 static const yytype_int16 yypgoto[] = 1236 { 1237 -1317, 4344, 3244, -1317, 633, -1317, 172, 896, -203, -1317, 1238 487, -518, -482, -910, -211, 1511, 0, -1317, 1129, 534, 1239 537, 615, 556, 984, 981, 988, 980, 989, -1317, 4, 1240 -451, 4784, -913, -1317, -702, 571, 13, -706, 419, -1317, 1241 190, -1317, 345, -964, -1317, -1317, 85, -1317, -1099, -1138, 1242 197, -1317, -1317, -1317, -1317, 20, -1281, -1317, -1317, -1317, 1243 -1317, -1317, -1317, 266, -1095, 50, -1317, -472, -1317, 443, 1244 239, -1317, 118, -1317, -294, -1317, -1317, -1317, 496, -829, 1245 -1317, -1317, 8, -952, 28, 2894, -1317, -1317, -1317, -214, 1246 -1317, 121, 1028, -198, 1848, 3592, -1317, -1317, 127, 296, 1247 1545, 1505, -1317, 1929, -1317, -1317, 137, 2139, -1317, 2574, 1248 804, -1317, -1317, -1317, -637, -1317, 886, 889, 490, 670, 1249 52, -1317, -1317, -1317, 893, 666, -510, -1317, -116, 40, 1250 1073, -1317, -1317, -889, -983, 933, 1377, 1006, -11, -1317, 1251 1351, 508, -322, -183, -145, 623, 724, -1317, 944, -1317, 1252 2701, 574, -443, 875, -1317, -1317, 659, -1317, -228, -1317, 1253 -45, -1317, -1317, -1317, -1253, 370, -1317, -1317, -1317, 1120, 1254 -1317, 33, -1317, -1317, -828, -100, -1316, -170, 2264, -1317, 1255 1914, -1317, 868, -1317, -155, 129, -181, -180, -175, 7, 1256 -41, -40, -35, 1507, 37, 53, 57, -29, -172, -163, 1257 -158, -150, -293, -500, -490, -485, -542, -284, -525, -1317, 1258 -1317, -499, 1035, 1038, 1040, 1486, 4616, -563, -531, -513, 1259 -491, -561, -1317, -506, -730, -727, -723, -562, -311, -227, 1260 -1317, -1317, 378, 19, -93, -1317, 3633, 159, -611, -428 1261 }; 1262 1263 /* YYDEFGOTO[NTERM-NUM]. */ 1557 1264 static const yytype_int16 yydefgoto[] = 1558 1265 { … … 1583 1290 }; 1584 1291 1585 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1586 STATE-NUM. */ 1587 #define YYPACT_NINF -1317 1588 static const yytype_int16 yypact[] = 1589 { 1590 7252, 8635, -1317, -3, -1317, -1317, -1317, -1317, -1317, -1317, 1591 -1317, 23, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1592 -1317, -1317, -1317, -1317, -1317, -1317, 81, 81, 81, 1277, 1593 970, 104, 7368, 277, -1317, -1317, -1317, -1317, -1317, 201, 1594 -1317, -1317, -1317, 1047, 187, -1317, -1317, -1317, -1317, 5370, 1595 -1317, -1317, -1317, -1317, 35, 48, -1317, 1328, -1317, -1317, 1596 -1317, -1317, 235, 1663, 343, 98, 7484, -1317, -1317, 6174, 1597 1066, -1317, -1317, 536, 376, 5540, 978, 1631, 536, 1775, 1598 -1317, -1317, 477, 683, -1317, 536, 1892, -1317, 295, -1317, 1599 422, 489, -1317, -1317, -1317, -1317, 346, 48, 81, -1317, 1600 81, -1317, -1317, -1317, -1317, 9392, 1328, -1317, -1317, 1328, 1601 -1317, 321, -1317, 9431, -1317, -1317, 2250, 9501, -1317, 668, 1602 668, 668, -1317, -1317, -1317, 81, -1317, -1317, -1317, 373, 1603 399, 410, -1317, -1317, -1317, 420, -1317, -1317, -1317, -1317, 1604 -1317, 428, 450, -1317, -1317, 59, 8604, 2904, 144, 440, 1605 493, 498, 531, 544, 560, 8522, 6772, 510, 580, -1317, 1606 9114, -1317, -1317, -1317, -1317, 584, -1317, 153, 4280, 4280, 1607 -1317, 570, 283, -1317, -1317, -1317, -1317, 596, 288, 303, 1608 332, 81, 583, -1317, -1317, 1663, 2232, 648, -1317, 73, 1609 -1317, 81, 81, 48, -1317, -1317, 80, -1317, 81, 81, 1610 -1317, 3694, 599, 613, 668, 6565, -1317, -1317, 661, 5370, 1611 -1317, -1317, 536, -1317, -1317, -1317, 48, -1317, 1328, 35, 1612 -1317, 7675, -1317, 668, 668, 668, 48, -1317, 1277, -1317, 1613 5446, -1317, -1317, 620, 668, -1317, 668, -1317, 201, 8604, 1614 -1317, 673, -1317, 970, 692, 668, -1317, 1277, 697, 707, 1615 -1317, 7368, 576, -1317, -1317, -1317, 4822, -1317, -1317, 9720, 1616 -1317, 648, 165, 10347, 9501, 2250, 3694, -1317, 109, -1317, 1617 -1317, 9431, 1328, 743, 7515, -1317, -1317, 306, -1317, 10675, 1618 770, 800, 2676, 801, 10480, 10499, -1317, 813, -1317, -1317, 1619 -1317, -1317, 10556, 10556, 8378, 795, -1317, -1317, -1317, -1317, 1620 -1317, -1317, 842, -1317, 685, 1919, 8717, 10480, -1317, 652, 1621 325, 507, 317, 581, 826, 820, 823, 861, 111, -1317, 1622 -1317, 827, 703, -1317, 452, -1317, -1317, 2904, -1317, -1317, 1623 278, 856, -1317, 636, 856, 866, 201, -1317, -1317, 872, 1624 9392, -1317, 876, 887, 8830, -1317, -1317, 1020, 2049, 8093, 1625 6565, 536, -1317, 536, 668, 668, -1317, -1317, -1317, -1317, 1626 -1317, -1317, 668, 9392, 1328, -1317, -1317, 9540, 1233, -1317, 1627 7824, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 891, 4627, 1628 10480, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1629 -1317, -1317, -1317, -1317, -1317, 2250, -1317, 552, 901, 904, 1630 912, 862, 920, 922, 924, 2232, -1317, -1317, 932, 35, 1631 936, -1317, -1317, 939, -1317, -1317, -1317, 4822, -1317, -1317, 1632 -1317, -1317, -1317, 3694, -1317, 8604, 8604, -1317, 668, 2250, 1633 6684, 1328, 8166, -1317, -1317, -1317, -1317, 4822, 165, -1317, 1634 -1317, 536, 48, -1317, -1317, 4822, -1317, 6449, -1317, -1317, 1635 668, 668, 484, 8011, 938, 941, 931, 952, 668, -1317, 1636 -1317, -1317, -1317, 9797, -1317, 578, 6327, -1317, 48, 955, 1637 -1317, 2250, 10757, 10404, -1317, -1317, -1317, -1317, 881, 3694, 1638 -1317, 8239, 648, 3545, -1317, -1317, -1317, 1641, 586, 827, 1639 970, 7515, 592, 9431, -1317, 7515, -1317, -1317, -1317, -1317, 1640 603, -1317, 967, 800, 215, 8378, -1317, 9570, -1317, -1317, 1641 8378, -1317, 8491, 8378, -1317, -1317, 966, -1317, 617, 973, 1642 839, 983, -1317, -1317, 9253, 6415, -1317, 247, -1317, -1317, 1643 10347, -1317, 330, 10347, -1317, -1317, -1317, -1317, -1317, -1317, 1644 -1317, -1317, -1317, -1317, -1317, 10347, -1317, -1317, 10480, 10480, 1645 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 1646 10480, 10480, 10480, 10480, 10480, 10480, 4526, 10347, -1317, 703, 1647 751, -1317, -1317, 81, 81, -1317, -1317, 8604, -1317, -1317, 1648 939, 576, -1317, 939, 10423, -1317, -1317, -1317, 8975, 6415, 1649 968, 976, -1317, 9501, -1317, -1317, 584, -1317, 990, 769, 1650 999, 3014, 124, 827, -1317, 81, 81, 827, 125, -1317, 1651 81, 81, 939, -1317, -1317, 81, 81, -1317, 856, 9652, 1652 1328, 10902, 151, 358, 9652, -1317, 9720, -1317, 827, -1317, 1653 9392, -1317, 147, 7790, 7790, 7790, 1328, -1317, 5708, 982, 1654 891, 1167, 995, 996, -1317, 1011, 4280, 230, -1317, 1103, 1655 1328, 7790, 576, 2250, 576, 648, 671, 856, -1317, -1317, 1656 694, 856, -1317, -1317, -1317, 800, -1317, 856, 48, 9797, 1657 -1317, 621, 1024, 640, 1026, -1317, 1030, 48, -1317, -1317, 1658 4822, 48, 1032, 9570, 1037, -1317, 1585, -1317, 335, 390, 1659 970, -1317, 970, 1023, 10480, -1317, 970, 10902, -1317, -1317, 1660 1034, -1317, -1317, -1317, 576, -1317, 10830, 887, -1317, 7790, 1661 859, 8093, -1317, -1317, 584, 1025, 1036, 1641, 3247, -1317, 1662 -1317, 7515, -1317, -1317, 1039, -1317, -1317, 1043, -1317, 1039, 1663 1048, 10675, 10347, 67, 1027, 133, 1053, 1061, 1068, 1069, 1664 -1317, 1072, 1074, 9362, 6534, -1317, 10347, -1317, 839, 2140, 1665 -1317, -1317, -1317, 81, 81, 10290, 10347, 1070, -1317, -1317, 1666 675, -1317, 10347, -1317, -1317, 644, -1317, -1317, -1317, -1317, 1667 652, 652, 325, 325, 507, 507, 507, 507, 317, 317, 1668 581, 826, 820, 823, 861, 10480, 333, -1317, 9797, 1079, 1669 1080, 1081, 751, -1317, -1317, -1317, -1317, -1317, 9797, 700, 1670 7790, -1317, 9392, -1317, 6891, 8943, -1317, 7824, 6772, -1317, 1671 -1317, 769, 9797, 917, 1082, 1083, 1084, 1087, 1088, 1089, 1672 1091, -1317, 4955, 3014, -1317, -1317, -1317, -1317, -1317, -1317, 1673 -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1674 -1317, 939, -1317, -1317, -1317, 827, -1317, -1317, -1317, -1317, 1675 -1317, -1317, -1317, -1317, 1098, -1317, 1099, 1101, -1317, -1317, 1676 35, 1070, 5708, -1317, -1317, -1317, 4627, 1102, -1317, -1317, 1677 -1317, -1317, 970, 5944, 1191, -1317, -1317, -1317, -1317, 1094, 1678 35, -1317, -1317, 939, -1317, -1317, 939, 24, 939, -1317, 1679 -1317, -1317, -1317, -1317, -1317, 9223, -1317, 48, -1317, -1317, 1680 432, 441, 9540, 7010, 2348, 10480, 3377, -1317, -1317, 1092, 1681 94, 1092, -1317, 970, -1317, 81, -1317, -1317, 8748, 931, 1682 -1317, -1317, -1317, 941, 1116, 1111, -1317, -1317, 1118, 1119, 1683 -1317, 859, 2430, -1317, 455, -1317, 3247, 827, -1317, 1122, 1684 7515, 9682, 8604, 1125, -1317, -1317, 1130, 1135, 1124, -1317, 1685 10480, 166, 222, 1132, -1317, 1138, 576, 1138, -1317, -1317, 1686 1138, 1137, -1317, 1145, 1147, 1148, 2140, -1317, -1317, -1317, 1687 4627, -1317, -1317, -1317, -1317, 1143, 10347, 1149, 576, -1317, 1688 10347, -1317, 576, -1317, -1317, 10347, -1317, 721, 856, -1317, 1689 -1317, -1317, -1317, -1317, -1317, -1317, 891, 887, 8830, -1317, 1690 -1317, 7129, 1152, -1317, 731, 856, -1317, 745, 763, 856, 1691 -1317, 668, 5561, -1317, -1317, -1317, 9797, 9797, -1317, 8166, 1692 8166, -1317, 1154, 1156, 1153, 1155, -1317, 1168, 460, 196, 1693 1070, -1317, 576, -1317, 4280, -1317, 10347, 474, -1317, 6296, 1694 1159, 1170, 10233, 1172, 1175, -14, 3, 11, 10347, 1179, 1695 48, 10347, 10347, 1160, 1177, 282, 1161, -1317, -1317, -1317, 1696 1180, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1697 970, 1184, 10347, -1317, 9797, 9797, 81, 1188, -1317, 8861, 1698 -1317, -1317, 809, -1317, 3377, -1317, -1317, -1317, -1317, 1585, 1699 -1317, -1317, 1185, -1317, -1317, -1317, -1317, 1193, 2430, -1317, 1700 -1317, 1176, -1317, 1039, -1317, -1317, 2250, 1196, -1317, -1317, 1701 -1317, 709, 1198, -1317, 133, 1202, 10480, 1186, 133, 133, 1702 1211, 9253, 789, 856, -1317, -1317, 1011, 10347, 1214, 1143, 1703 505, 224, 1217, -1317, -1317, 1218, 1217, -1317, -1317, 1226, 1704 -1317, -1317, 939, 1228, 1230, 6653, 1231, 1232, 1243, -1317, 1705 -1317, 1246, -1317, -1317, 939, -1317, -1317, -1317, -1317, 939, 1706 10347, 10347, 887, 1245, -1317, -1317, -1317, -1317, -1317, -1317, 1707 -1317, -1317, -1317, -1317, -1317, -1317, 10480, 10480, 1247, 1251, 1708 1217, -1317, -1317, 970, -1317, -1317, -1317, 4468, 9682, 10347, 1709 10347, 1311, 10347, -1317, 1234, -1317, 1237, -1317, 1239, 10347, 1710 1241, 10347, 1049, 1244, 26, 81, 9084, 750, -1317, -1317, 1711 5944, 1267, 481, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1712 -1317, -1317, 10053, -1317, 8239, 1274, -1317, -1317, 9682, 482, 1713 512, -1317, 1272, 1259, 800, 1280, -1317, 245, -1317, -1317, 1714 -1317, -1317, 939, 1279, -1317, -1317, 1287, 385, 444, 576, 1715 1293, -1317, 1294, -1317, 9797, -1317, -1317, -1317, -1317, -1317, 1716 1295, -1317, 9797, 9797, 9797, -1317, -1317, 1297, -1317, 1298, 1717 1282, 1305, 511, 7863, 7978, -1317, -1317, 348, -1317, 1304, 1718 1310, -1317, 8312, 712, 734, 1308, 739, 6143, -1317, -1317, 1719 -1317, 515, -1317, 765, 1318, 1320, 48, 1371, 879, -1317, 1720 -1317, 10347, -1317, 10233, 10347, -1317, -1317, -1317, 1322, 1329, 1721 -1317, -1317, -1317, 1324, -1317, -1317, -1317, -1317, -1317, -1317, 1722 9682, 800, 265, -1317, 1309, 800, 9797, -1317, -1317, -1317, 1723 -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1724 -1317, 1330, 1331, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1725 1334, -1317, 1333, -1317, -1317, 10233, 143, 10347, 10233, -1317, 1726 1338, 10347, -1317, 259, 1354, 1356, -1317, -1317, 1346, 1347, 1727 1326, -1317, 880, -1317, -1317, -1317, 1328, 2250, 1345, 842, 1728 364, 10480, -1317, 774, -1317, 576, 576, 1352, 1355, 1357, 1729 1360, -1317, -1317, 8166, 1358, -1317, 1436, 10480, 1349, -1317, 1730 -1317, 10145, -1317, 783, -1317, 1350, 10233, 1359, -1317, -1317, 1731 1378, -1317, 1379, -1317, 1394, 1396, -1317, 1361, 9682, -1317, 1732 -1317, -1317, 800, 576, 1386, 1367, 1392, 1217, 1217, -1317, 1733 -1317, -1317, -1317, -1317, 10233, 275, -1317, 384, -1317, -1317, 1734 7600, -1317, -1317, 1375, 10347, -1317, 10347, 7600, 48, 9570, 1735 48, 9570, 1393, -1317, 1398, -1317, -1317, 1395, 842, -1317, 1736 798, -1317, -1317, -1317, 1399, 1401, -1317, 10480, 10480, -1317, 1737 -1317, 964, 167, -1317, -1317, 1388, -1317, 964, -1317, -1317, 1738 2461, 576, -1317, -1317, 48, 9570, 48, 9570, 1409, 1390, 1739 576, -1317, -1317, -1317, -1317, 10145, 1410, 964, 5861, 10347, 1740 10057, 1412, 964, 1414, 2461, 3613, -1317, -1317, -1317, 1420, 1741 -1317, -1317, -1317, -1317, 8604, -1317, -1317, -1317, 9924, -1317, 1742 10145, -1317, -1317, 1402, 9836, -1317, -1317, 10057, 48, 3613, 1743 48, 1421, 1429, 817, -1317, 9924, -1317, -1317, -1317, 9836, 1744 -1317, -1317, -1317, 48, 48, -1317, -1317, -1317, -1317, -1317, 1745 -1317, -1317, -1317 1746 }; 1747 1748 /* YYPGOTO[NTERM-NUM]. */ 1749 static const yytype_int16 yypgoto[] = 1750 { 1751 -1317, 4344, 3244, -1317, 633, -1317, 172, 896, -203, -1317, 1752 487, -518, -482, -910, -211, 1511, 0, -1317, 1129, 534, 1753 537, 615, 556, 984, 981, 988, 980, 989, -1317, 4, 1754 -451, 4784, -913, -1317, -702, 571, 13, -706, 419, -1317, 1755 190, -1317, 345, -964, -1317, -1317, 85, -1317, -1099, -1138, 1756 197, -1317, -1317, -1317, -1317, 20, -1281, -1317, -1317, -1317, 1757 -1317, -1317, -1317, 266, -1095, 50, -1317, -472, -1317, 443, 1758 239, -1317, 118, -1317, -294, -1317, -1317, -1317, 496, -829, 1759 -1317, -1317, 8, -952, 28, 2894, -1317, -1317, -1317, -214, 1760 -1317, 121, 1028, -198, 1848, 3592, -1317, -1317, 127, 296, 1761 1545, 1505, -1317, 1929, -1317, -1317, 137, 2139, -1317, 2574, 1762 804, -1317, -1317, -1317, -637, -1317, 886, 889, 490, 670, 1763 52, -1317, -1317, -1317, 893, 666, -510, -1317, -116, 40, 1764 1073, -1317, -1317, -889, -983, 933, 1377, 1006, -11, -1317, 1765 1351, 508, -322, -183, -145, 623, 724, -1317, 944, -1317, 1766 2701, 574, -443, 875, -1317, -1317, 659, -1317, -228, -1317, 1767 -45, -1317, -1317, -1317, -1253, 370, -1317, -1317, -1317, 1120, 1768 -1317, 33, -1317, -1317, -828, -100, -1316, -170, 2264, -1317, 1769 1914, -1317, 868, -1317, -155, 129, -181, -180, -175, 7, 1770 -41, -40, -35, 1507, 37, 53, 57, -29, -172, -163, 1771 -158, -150, -293, -500, -490, -485, -542, -284, -525, -1317, 1772 -1317, -499, 1035, 1038, 1040, 1486, 4616, -563, -531, -513, 1773 -491, -561, -1317, -506, -730, -727, -723, -562, -311, -227, 1774 -1317, -1317, 378, 19, -93, -1317, 3633, 159, -611, -428 1775 }; 1776 1777 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1778 positive, shift that token. If negative, reduce the rule which 1779 number is the opposite. If YYTABLE_NINF, syntax error. */ 1780 #define YYTABLE_NINF -520 1292 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1293 positive, shift that token. If negative, reduce the rule whose 1294 number is the opposite. If YYTABLE_NINF, syntax error. */ 1781 1295 static const yytype_int16 yytable[] = 1782 1296 { … … 2881 2395 }; 2882 2396 2883 #define yypact_value_is_default(yystate) \2884 ((yystate) == (-1317))2885 2886 #define yytable_value_is_error(yytable_value) \2887 YYID (0)2888 2889 2397 static const yytype_int16 yycheck[] = 2890 2398 { … … 3989 3497 }; 3990 3498 3991 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing3992 symbol of state STATE-NUM. */3499 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3500 symbol of state STATE-NUM. */ 3993 3501 static const yytype_uint16 yystos[] = 3994 3502 { … … 4151 3659 }; 4152 3660 4153 #define yyerrok (yyerrstatus = 0) 4154 #define yyclearin (yychar = YYEMPTY) 4155 #define YYEMPTY (-2) 4156 #define YYEOF 0 4157 4158 #define YYACCEPT goto yyacceptlab 4159 #define YYABORT goto yyabortlab 4160 #define YYERROR goto yyerrorlab 4161 4162 4163 /* Like YYERROR except do call yyerror. This remains here temporarily 4164 to ease the transition to the new meaning of YYERROR, for GCC. 4165 Once GCC version 2 has supplanted version 1, this can go. However, 4166 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4167 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4168 discussed. */ 4169 4170 #define YYFAIL goto yyerrlab 4171 #if defined YYFAIL 4172 /* This is here to suppress warnings from the GCC cpp's 4173 -Wunused-macros. Normally we don't worry about that warning, but 4174 some users do, and we want to make it easy for users to remove 4175 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4176 #endif 3661 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3662 static const yytype_uint16 yyr1[] = 3663 { 3664 0, 133, 134, 135, 136, 136, 136, 137, 137, 137, 3665 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 3666 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, 3667 143, 143, 143, 144, 144, 145, 145, 146, 146, 147, 3668 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 3669 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 3670 149, 149, 150, 150, 150, 150, 151, 151, 151, 152, 3671 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 3672 155, 155, 155, 155, 156, 156, 156, 157, 157, 158, 3673 158, 159, 159, 160, 160, 161, 161, 162, 162, 162, 3674 162, 163, 164, 164, 164, 165, 165, 166, 166, 166, 3675 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 3676 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 3677 171, 171, 171, 171, 171, 171, 171, 172, 173, 173, 3678 174, 174, 175, 175, 175, 175, 176, 176, 177, 178, 3679 178, 178, 178, 178, 178, 179, 179, 179, 180, 180, 3680 181, 181, 182, 182, 183, 184, 184, 185, 185, 186, 3681 186, 187, 187, 187, 187, 188, 188, 189, 189, 190, 3682 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 3683 192, 192, 192, 192, 193, 193, 193, 194, 194, 194, 3684 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, 3685 197, 197, 198, 198, 198, 198, 198, 199, 199, 200, 3686 200, 201, 201, 202, 202, 203, 203, 203, 204, 204, 3687 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 3688 210, 210, 211, 211, 212, 212, 213, 213, 213, 213, 3689 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 3690 216, 216, 217, 217, 217, 218, 218, 219, 219, 219, 3691 220, 220, 220, 220, 220, 221, 221, 222, 222, 222, 3692 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, 3693 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 3694 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 3695 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 3696 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 3697 235, 235, 235, 235, 235, 236, 236, 237, 237, 237, 3698 237, 238, 238, 238, 238, 239, 239, 239, 239, 240, 3699 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 3700 243, 244, 244, 245, 244, 244, 244, 246, 246, 247, 3701 247, 248, 248, 248, 248, 249, 249, 249, 249, 250, 3702 250, 251, 251, 251, 251, 251, 252, 252, 253, 254, 3703 255, 255, 256, 255, 257, 257, 258, 258, 259, 259, 3704 260, 260, 260, 260, 260, 261, 261, 261, 261, 262, 3705 262, 263, 263, 264, 264, 265, 265, 265, 265, 266, 3706 266, 266, 266, 266, 267, 267, 267, 267, 267, 268, 3707 268, 269, 269, 270, 270, 271, 271, 271, 272, 272, 3708 272, 273, 273, 273, 274, 274, 274, 275, 275, 275, 3709 275, 276, 276, 276, 277, 277, 278, 278, 278, 278, 3710 278, 279, 279, 280, 280, 281, 281, 281, 281, 281, 3711 282, 282, 282, 282, 283, 283, 283, 284, 285, 285, 3712 287, 286, 286, 288, 288, 288, 289, 289, 290, 290, 3713 290, 291, 291, 291, 291, 292, 292, 292, 293, 293, 3714 294, 294, 295, 296, 295, 297, 297, 298, 298, 299, 3715 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, 3716 304, 304, 304, 305, 304, 304, 306, 306, 306, 307, 3717 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 3718 308, 309, 310, 310, 311, 311, 312, 312, 313, 314, 3719 314, 315, 315, 315, 316, 316, 316, 316, 317, 317, 3720 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 3721 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 3722 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 3723 327, 328, 328, 328, 329, 329, 329, 330, 330, 330, 3724 330, 331, 331, 332, 332, 332, 333, 333, 333, 333, 3725 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 3726 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 3727 339, 340, 340, 341, 341, 341, 342, 342, 343, 343, 3728 344, 344, 344, 345, 345, 345, 345, 345, 346, 346, 3729 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 3730 349, 349, 350, 350, 350, 351, 351, 351, 351, 351, 3731 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 3732 355, 355, 355, 355, 355, 355, 356, 356, 356, 357, 3733 357, 357, 357, 357, 358, 358, 358, 358, 359, 359, 3734 360, 360, 360, 361, 361, 362, 362, 362, 362, 362, 3735 362, 363, 363, 363, 363, 363, 363, 363, 363, 363, 3736 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, 3737 367, 367, 367, 367, 367, 367, 368, 368, 368, 368, 3738 368, 368, 369, 370, 370, 370, 371, 371, 372, 372 3739 }; 3740 3741 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3742 static const yytype_uint8 yyr2[] = 3743 { 3744 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3745 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3746 3, 3, 1, 6, 4, 3, 7, 3, 7, 2, 3747 2, 7, 4, 1, 3, 0, 1, 1, 3, 1, 3748 3, 7, 3, 7, 1, 1, 1, 2, 2, 2, 3749 2, 2, 2, 4, 2, 4, 6, 1, 4, 4, 3750 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 3751 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 3752 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3753 3, 1, 3, 1, 3, 1, 3, 1, 5, 4, 3754 5, 1, 1, 3, 2, 0, 1, 1, 1, 1, 3755 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 3756 6, 7, 1, 3, 1, 3, 0, 1, 1, 1, 3757 1, 1, 1, 1, 1, 1, 6, 4, 2, 7, 3758 1, 3, 1, 2, 1, 2, 1, 2, 2, 5, 3759 7, 5, 9, 5, 9, 1, 3, 1, 1, 3, 3760 3, 2, 1, 2, 2, 0, 1, 2, 3, 0, 3761 1, 2, 3, 3, 4, 0, 1, 1, 2, 5, 3762 7, 6, 6, 4, 3, 4, 2, 3, 2, 3, 3763 3, 3, 3, 5, 3, 3, 4, 1, 5, 6, 3764 5, 6, 9, 10, 9, 10, 2, 1, 2, 2, 3765 2, 1, 6, 8, 10, 12, 14, 0, 1, 0, 3766 1, 1, 3, 4, 7, 0, 1, 3, 1, 3, 3767 1, 1, 1, 3, 1, 1, 1, 3, 0, 1, 3768 3, 4, 1, 3, 1, 1, 3, 3, 3, 3, 3769 3, 2, 3, 6, 3, 3, 4, 1, 2, 2, 3770 3, 5, 8, 7, 7, 5, 9, 2, 2, 5, 3771 3, 5, 4, 3, 4, 4, 7, 3, 3, 3, 3772 3, 4, 6, 1, 1, 1, 1, 1, 1, 1, 3773 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 3774 1, 1, 0, 5, 1, 2, 3, 1, 2, 1, 3775 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3776 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3777 1, 2, 2, 3, 3, 1, 3, 1, 2, 2, 3778 2, 4, 4, 4, 4, 1, 2, 2, 3, 1, 3779 2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 3780 1, 4, 2, 0, 6, 7, 2, 2, 2, 0, 3781 2, 2, 3, 2, 3, 1, 2, 3, 2, 2, 3782 4, 0, 1, 2, 2, 1, 0, 1, 2, 2, 3783 5, 2, 0, 7, 2, 4, 0, 2, 0, 1, 3784 1, 1, 5, 5, 5, 1, 5, 5, 9, 1, 3785 5, 0, 1, 1, 5, 1, 1, 5, 5, 1, 3786 3, 3, 4, 1, 1, 1, 1, 2, 1, 3, 3787 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 3788 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3789 2, 0, 2, 2, 1, 4, 0, 1, 2, 3, 3790 4, 2, 2, 1, 2, 2, 5, 5, 7, 6, 3791 1, 2, 2, 3, 1, 2, 2, 4, 2, 4, 3792 0, 4, 2, 1, 1, 1, 0, 2, 5, 5, 3793 13, 1, 1, 3, 3, 2, 3, 3, 2, 4, 3794 1, 6, 9, 0, 11, 1, 3, 3, 3, 1, 3795 1, 5, 2, 5, 0, 1, 1, 3, 0, 1, 3796 1, 1, 1, 0, 6, 2, 1, 2, 4, 2, 3797 3, 3, 3, 4, 5, 5, 5, 6, 1, 1, 3798 1, 3, 0, 5, 0, 1, 1, 2, 6, 1, 3799 3, 0, 1, 4, 1, 1, 1, 1, 2, 1, 3800 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 3801 3, 8, 3, 2, 1, 2, 6, 8, 3, 2, 3802 3, 3, 4, 4, 3, 1, 1, 1, 4, 6, 3803 3, 2, 3, 3, 4, 4, 3, 2, 1, 2, 3804 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 3805 6, 8, 3, 2, 1, 2, 2, 2, 3, 3, 3806 2, 4, 4, 3, 6, 8, 3, 2, 1, 2, 3807 2, 1, 1, 2, 3, 3, 2, 4, 6, 8, 3808 1, 2, 2, 1, 2, 2, 3, 3, 1, 4, 3809 4, 3, 5, 8, 3, 2, 3, 1, 5, 5, 3810 6, 6, 1, 2, 2, 1, 2, 2, 3, 3, 3811 1, 4, 4, 3, 5, 8, 3, 1, 2, 1, 3812 2, 6, 5, 6, 7, 7, 1, 2, 2, 1, 3813 2, 2, 3, 3, 1, 4, 4, 3, 8, 3, 3814 1, 1, 2, 1, 1, 2, 3, 2, 3, 2, 3815 3, 3, 2, 4, 3, 2, 3, 2, 4, 3, 3816 2, 6, 6, 6, 7, 1, 2, 1, 1, 1, 3817 2, 3, 2, 3, 2, 3, 3, 4, 2, 3, 3818 4, 2, 5, 5, 6, 6, 0, 1, 0, 2 3819 }; 3820 3821 3822 #define yyerrok (yyerrstatus = 0) 3823 #define yyclearin (yychar = YYEMPTY) 3824 #define YYEMPTY (-2) 3825 #define YYEOF 0 3826 3827 #define YYACCEPT goto yyacceptlab 3828 #define YYABORT goto yyabortlab 3829 #define YYERROR goto yyerrorlab 3830 4177 3831 4178 3832 #define YYRECOVERING() (!!yyerrstatus) 4179 3833 4180 #define YYBACKUP(Token, Value) \ 4181 do \ 4182 if (yychar == YYEMPTY && yylen == 1) \ 4183 { \ 4184 yychar = (Token); \ 4185 yylval = (Value); \ 4186 YYPOPSTACK (1); \ 4187 goto yybackup; \ 4188 } \ 4189 else \ 4190 { \ 3834 #define YYBACKUP(Token, Value) \ 3835 do \ 3836 if (yychar == YYEMPTY) \ 3837 { \ 3838 yychar = (Token); \ 3839 yylval = (Value); \ 3840 YYPOPSTACK (yylen); \ 3841 yystate = *yyssp; \ 3842 goto yybackup; \ 3843 } \ 3844 else \ 3845 { \ 4191 3846 yyerror (YY_("syntax error: cannot back up")); \ 4192 YYERROR; \ 4193 } \ 4194 while (YYID (0)) 4195 4196 4197 #define YYTERROR 1 4198 #define YYERRCODE 256 4199 4200 4201 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4202 If N is 0, then set CURRENT to the empty location which ends 4203 the previous symbol: RHS[0] (always defined). */ 4204 4205 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4206 #ifndef YYLLOC_DEFAULT 4207 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4208 do \ 4209 if (YYID (N)) \ 4210 { \ 4211 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4212 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4213 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4214 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4215 } \ 4216 else \ 4217 { \ 4218 (Current).first_line = (Current).last_line = \ 4219 YYRHSLOC (Rhs, 0).last_line; \ 4220 (Current).first_column = (Current).last_column = \ 4221 YYRHSLOC (Rhs, 0).last_column; \ 4222 } \ 4223 while (YYID (0)) 4224 #endif 4225 4226 4227 /* This macro is provided for backward compatibility. */ 4228 4229 #ifndef YY_LOCATION_PRINT 4230 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4231 #endif 4232 4233 4234 /* YYLEX -- calling `yylex' with the right arguments. */ 4235 4236 #ifdef YYLEX_PARAM 4237 # define YYLEX yylex (YYLEX_PARAM) 4238 #else 4239 # define YYLEX yylex () 4240 #endif 3847 YYERROR; \ 3848 } \ 3849 while (0) 3850 3851 /* Error token number */ 3852 #define YYTERROR 1 3853 #define YYERRCODE 256 3854 3855 4241 3856 4242 3857 /* Enable debugging if requested. */ … … 4248 3863 # endif 4249 3864 4250 # define YYDPRINTF(Args) \ 4251 do { \ 4252 if (yydebug) \ 4253 YYFPRINTF Args; \ 4254 } while (YYID (0)) 4255 4256 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4257 do { \ 4258 if (yydebug) \ 4259 { \ 4260 YYFPRINTF (stderr, "%s ", Title); \ 4261 yy_symbol_print (stderr, \ 4262 Type, Value); \ 4263 YYFPRINTF (stderr, "\n"); \ 4264 } \ 4265 } while (YYID (0)) 4266 4267 4268 /*--------------------------------. 4269 | Print this symbol on YYOUTPUT. | 4270 `--------------------------------*/ 4271 4272 /*ARGSUSED*/ 4273 #if (defined __STDC__ || defined __C99__FUNC__ \ 4274 || defined __cplusplus || defined _MSC_VER) 3865 # define YYDPRINTF(Args) \ 3866 do { \ 3867 if (yydebug) \ 3868 YYFPRINTF Args; \ 3869 } while (0) 3870 3871 /* This macro is provided for backward compatibility. */ 3872 #ifndef YY_LOCATION_PRINT 3873 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3874 #endif 3875 3876 3877 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3878 do { \ 3879 if (yydebug) \ 3880 { \ 3881 YYFPRINTF (stderr, "%s ", Title); \ 3882 yy_symbol_print (stderr, \ 3883 Type, Value); \ 3884 YYFPRINTF (stderr, "\n"); \ 3885 } \ 3886 } while (0) 3887 3888 3889 /*----------------------------------------. 3890 | Print this symbol's value on YYOUTPUT. | 3891 `----------------------------------------*/ 3892 4275 3893 static void 4276 3894 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4277 #else4278 static void4279 yy_symbol_value_print (yyoutput, yytype, yyvaluep)4280 FILE *yyoutput;4281 int yytype;4282 YYSTYPE const * const yyvaluep;4283 #endif4284 3895 { 3896 FILE *yyo = yyoutput; 3897 YYUSE (yyo); 4285 3898 if (!yyvaluep) 4286 3899 return; … … 4288 3901 if (yytype < YYNTOKENS) 4289 3902 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4290 # else4291 YYUSE (yyoutput);4292 3903 # endif 4293 switch (yytype) 4294 { 4295 default: 4296 break; 4297 } 3904 YYUSE (yytype); 4298 3905 } 4299 3906 … … 4303 3910 `--------------------------------*/ 4304 3911 4305 #if (defined __STDC__ || defined __C99__FUNC__ \4306 || defined __cplusplus || defined _MSC_VER)4307 3912 static void 4308 3913 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4309 #else4310 static void4311 yy_symbol_print (yyoutput, yytype, yyvaluep)4312 FILE *yyoutput;4313 int yytype;4314 YYSTYPE const * const yyvaluep;4315 #endif4316 3914 { 4317 if (yytype < YYNTOKENS) 4318 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4319 else 4320 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3915 YYFPRINTF (yyoutput, "%s %s (", 3916 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4321 3917 4322 3918 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 4329 3925 `------------------------------------------------------------------*/ 4330 3926 4331 #if (defined __STDC__ || defined __C99__FUNC__ \4332 || defined __cplusplus || defined _MSC_VER)4333 3927 static void 4334 3928 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4335 #else4336 static void4337 yy_stack_print (yybottom, yytop)4338 yytype_int16 *yybottom;4339 yytype_int16 *yytop;4340 #endif4341 3929 { 4342 3930 YYFPRINTF (stderr, "Stack now"); … … 4349 3937 } 4350 3938 4351 # define YY_STACK_PRINT(Bottom, Top) 4352 do { 4353 if (yydebug) 4354 yy_stack_print ((Bottom), (Top)); 4355 } while ( YYID (0))3939 # define YY_STACK_PRINT(Bottom, Top) \ 3940 do { \ 3941 if (yydebug) \ 3942 yy_stack_print ((Bottom), (Top)); \ 3943 } while (0) 4356 3944 4357 3945 … … 4360 3948 `------------------------------------------------*/ 4361 3949 4362 #if (defined __STDC__ || defined __C99__FUNC__ \4363 || defined __cplusplus || defined _MSC_VER)4364 3950 static void 4365 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4366 #else 4367 static void 4368 yy_reduce_print (yyvsp, yyrule) 4369 YYSTYPE *yyvsp; 4370 int yyrule; 4371 #endif 3951 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4372 3952 { 3953 unsigned long int yylno = yyrline[yyrule]; 4373 3954 int yynrhs = yyr2[yyrule]; 4374 3955 int yyi; 4375 unsigned long int yylno = yyrline[yyrule];4376 3956 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 4377 3957 yyrule - 1, yylno); 4378 3958 /* The symbols being reduced. */ 4379 3959 for (yyi = 0; yyi < yynrhs; yyi++) 4380 3960 { 4381 3961 YYFPRINTF (stderr, " $%d = ", yyi + 1); 4382 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4383 &(yyvsp[(yyi + 1) - (yynrhs)]) 4384 ); 3962 yy_symbol_print (stderr, 3963 yystos[yyssp[yyi + 1 - yynrhs]], 3964 &(yyvsp[(yyi + 1) - (yynrhs)]) 3965 ); 4385 3966 YYFPRINTF (stderr, "\n"); 4386 3967 } 4387 3968 } 4388 3969 4389 # define YY_REDUCE_PRINT(Rule) 4390 do { 4391 if (yydebug) 4392 yy_reduce_print (yy vsp, Rule); \4393 } while ( YYID (0))3970 # define YY_REDUCE_PRINT(Rule) \ 3971 do { \ 3972 if (yydebug) \ 3973 yy_reduce_print (yyssp, yyvsp, Rule); \ 3974 } while (0) 4394 3975 4395 3976 /* Nonzero means print parse trace. It is left uninitialized so that … … 4405 3986 4406 3987 /* YYINITDEPTH -- initial size of the parser's stacks. */ 4407 #ifndef 3988 #ifndef YYINITDEPTH 4408 3989 # define YYINITDEPTH 200 4409 3990 #endif … … 4428 4009 # else 4429 4010 /* Return the length of YYSTR. */ 4430 #if (defined __STDC__ || defined __C99__FUNC__ \4431 || defined __cplusplus || defined _MSC_VER)4432 4011 static YYSIZE_T 4433 4012 yystrlen (const char *yystr) 4434 #else4435 static YYSIZE_T4436 yystrlen (yystr)4437 const char *yystr;4438 #endif4439 4013 { 4440 4014 YYSIZE_T yylen; … … 4452 4026 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4453 4027 YYDEST. */ 4454 #if (defined __STDC__ || defined __C99__FUNC__ \4455 || defined __cplusplus || defined _MSC_VER)4456 4028 static char * 4457 4029 yystpcpy (char *yydest, const char *yysrc) 4458 #else4459 static char *4460 yystpcpy (yydest, yysrc)4461 char *yydest;4462 const char *yysrc;4463 #endif4464 4030 { 4465 4031 char *yyd = yydest; … … 4491 4057 4492 4058 for (;;) 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4059 switch (*++yyp) 4060 { 4061 case '\'': 4062 case ',': 4063 goto do_not_strip_quotes; 4064 4065 case '\\': 4066 if (*++yyp != '\\') 4067 goto do_not_strip_quotes; 4068 /* Fall through. */ 4069 default: 4070 if (yyres) 4071 yyres[yyn] = *yyp; 4072 yyn++; 4073 break; 4074 4075 case '"': 4076 if (yyres) 4077 yyres[yyn] = '\0'; 4078 return yyn; 4079 } 4514 4080 do_not_strip_quotes: ; 4515 4081 } … … 4534 4100 yytype_int16 *yyssp, int yytoken) 4535 4101 { 4536 YYSIZE_T yysize0 = yytnamerr ( 0, yytname[yytoken]);4102 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 4537 4103 YYSIZE_T yysize = yysize0; 4538 YYSIZE_T yysize1;4539 4104 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4540 4105 /* Internationalized format string. */ 4541 const char *yyformat = 0;4106 const char *yyformat = YY_NULLPTR; 4542 4107 /* Arguments of yyformat. */ 4543 4108 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4547 4112 4548 4113 /* There are many possibilities here to consider: 4549 - Assume YYFAIL is not used. It's too flawed to consider. See4550 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>4551 for details. YYERROR is fine as it does not invoke this4552 function.4553 4114 - If this state is a consistent state with a default action, then 4554 4115 the only way this function was invoked is if the default action … … 4599 4160 } 4600 4161 yyarg[yycount++] = yytname[yyx]; 4601 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4602 if (! (yysize <= yysize1 4603 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4604 return 2; 4605 yysize = yysize1; 4162 { 4163 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4164 if (! (yysize <= yysize1 4165 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4166 return 2; 4167 yysize = yysize1; 4168 } 4606 4169 } 4607 4170 } … … 4623 4186 } 4624 4187 4625 yysize1 = yysize + yystrlen (yyformat); 4626 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4627 return 2; 4628 yysize = yysize1; 4188 { 4189 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4190 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4191 return 2; 4192 yysize = yysize1; 4193 } 4629 4194 4630 4195 if (*yymsg_alloc < yysize) … … 4663 4228 `-----------------------------------------------*/ 4664 4229 4665 /*ARGSUSED*/4666 #if (defined __STDC__ || defined __C99__FUNC__ \4667 || defined __cplusplus || defined _MSC_VER)4668 4230 static void 4669 4231 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4670 #else4671 static void4672 yydestruct (yymsg, yytype, yyvaluep)4673 const char *yymsg;4674 int yytype;4675 YYSTYPE *yyvaluep;4676 #endif4677 4232 { 4678 4233 YYUSE (yyvaluep); 4679 4680 4234 if (!yymsg) 4681 4235 yymsg = "Deleting"; 4682 4236 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4683 4237 4684 switch (yytype) 4685 { 4686 4687 default: 4688 break; 4689 } 4238 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4239 YYUSE (yytype); 4240 YY_IGNORE_MAYBE_UNINITIALIZED_END 4690 4241 } 4691 4242 4692 4243 4693 /* Prevent warnings from -Wmissing-prototypes. */4694 #ifdef YYPARSE_PARAM4695 #if defined __STDC__ || defined __cplusplus4696 int yyparse (void *YYPARSE_PARAM);4697 #else4698 int yyparse ();4699 #endif4700 #else /* ! YYPARSE_PARAM */4701 #if defined __STDC__ || defined __cplusplus4702 int yyparse (void);4703 #else4704 int yyparse ();4705 #endif4706 #endif /* ! YYPARSE_PARAM */4707 4244 4708 4245 … … 4712 4249 /* The semantic value of the lookahead symbol. */ 4713 4250 YYSTYPE yylval; 4714 4715 4251 /* Number of syntax errors so far. */ 4716 4252 int yynerrs; … … 4721 4257 `----------*/ 4722 4258 4723 #ifdef YYPARSE_PARAM4724 #if (defined __STDC__ || defined __C99__FUNC__ \4725 || defined __cplusplus || defined _MSC_VER)4726 int4727 yyparse (void *YYPARSE_PARAM)4728 #else4729 int4730 yyparse (YYPARSE_PARAM)4731 void *YYPARSE_PARAM;4732 #endif4733 #else /* ! YYPARSE_PARAM */4734 #if (defined __STDC__ || defined __C99__FUNC__ \4735 || defined __cplusplus || defined _MSC_VER)4736 4259 int 4737 4260 yyparse (void) 4738 #else4739 int4740 yyparse ()4741 4742 #endif4743 #endif4744 4261 { 4745 4262 int yystate; … … 4748 4265 4749 4266 /* The stacks and their tools: 4750 `yyss': related to states.4751 `yyvs': related to semantic values.4752 4753 Refer to the stacks thr useparate pointers, to allow yyoverflow4267 'yyss': related to states. 4268 'yyvs': related to semantic values. 4269 4270 Refer to the stacks through separate pointers, to allow yyoverflow 4754 4271 to reallocate them elsewhere. */ 4755 4272 … … 4769 4286 int yyresult; 4770 4287 /* Lookahead token as an internal (translated) token number. */ 4771 int yytoken ;4288 int yytoken = 0; 4772 4289 /* The variables used to return semantic value and location from the 4773 4290 action routines. */ … … 4787 4304 int yylen = 0; 4788 4305 4789 yytoken = 0; 4790 yyss = yyssa; 4791 yyvs = yyvsa; 4306 yyssp = yyss = yyssa; 4307 yyvsp = yyvs = yyvsa; 4792 4308 yystacksize = YYINITDEPTH; 4793 4309 … … 4798 4314 yynerrs = 0; 4799 4315 yychar = YYEMPTY; /* Cause a token to be read. */ 4800 4801 /* Initialize stack pointers.4802 Waste one element of value and location stack4803 so that they stay on the same level as the state stack.4804 The wasted elements are never initialized. */4805 yyssp = yyss;4806 yyvsp = yyvs;4807 4808 4316 goto yysetstate; 4809 4317 … … 4826 4334 #ifdef yyoverflow 4827 4335 { 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4336 /* Give user a chance to reallocate the stack. Use copies of 4337 these so that the &'s don't force the real ones into 4338 memory. */ 4339 YYSTYPE *yyvs1 = yyvs; 4340 yytype_int16 *yyss1 = yyss; 4341 4342 /* Each stack pointer address is followed by the size of the 4343 data in use in that stack, in bytes. This used to be a 4344 conditional around just the two extra args, but that might 4345 be undefined if yyoverflow is a macro. */ 4346 yyoverflow (YY_("memory exhausted"), 4347 &yyss1, yysize * sizeof (*yyssp), 4348 &yyvs1, yysize * sizeof (*yyvsp), 4349 &yystacksize); 4350 4351 yyss = yyss1; 4352 yyvs = yyvs1; 4845 4353 } 4846 4354 #else /* no yyoverflow */ … … 4850 4358 /* Extend the stack our own way. */ 4851 4359 if (YYMAXDEPTH <= yystacksize) 4852 4360 goto yyexhaustedlab; 4853 4361 yystacksize *= 2; 4854 4362 if (YYMAXDEPTH < yystacksize) 4855 4363 yystacksize = YYMAXDEPTH; 4856 4364 4857 4365 { 4858 4859 4860 4861 4862 4863 4864 4366 yytype_int16 *yyss1 = yyss; 4367 union yyalloc *yyptr = 4368 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4369 if (! yyptr) 4370 goto yyexhaustedlab; 4371 YYSTACK_RELOCATE (yyss_alloc, yyss); 4372 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4865 4373 # undef YYSTACK_RELOCATE 4866 4867 4374 if (yyss1 != yyssa) 4375 YYSTACK_FREE (yyss1); 4868 4376 } 4869 4377 # endif … … 4874 4382 4875 4383 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4876 4384 (unsigned long int) yystacksize)); 4877 4385 4878 4386 if (yyss + yystacksize - 1 <= yyssp) 4879 4387 YYABORT; 4880 4388 } 4881 4389 … … 4906 4414 { 4907 4415 YYDPRINTF ((stderr, "Reading a token: ")); 4908 yychar = YYLEX;4416 yychar = yylex (); 4909 4417 } 4910 4418 … … 4946 4454 4947 4455 yystate = yyn; 4456 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4948 4457 *++yyvsp = yylval; 4458 YY_IGNORE_MAYBE_UNINITIALIZED_END 4949 4459 4950 4460 goto yynewstate; … … 4969 4479 4970 4480 /* If YYLEN is nonzero, implement the default value of the action: 4971 `$$ = $1'.4481 '$$ = $1'. 4972 4482 4973 4483 Otherwise, the following line sets YYVAL to garbage. … … 4983 4493 { 4984 4494 case 2: 4985 4986 /* Line 1806 of yacc.c */ 4987 #line 298 "parser.yy" 4495 #line 298 "parser.yy" /* yacc.c:1646 */ 4988 4496 { 4989 4497 typedefTable.enterScope(); 4990 4498 } 4499 #line 4500 "Parser/parser.cc" /* yacc.c:1646 */ 4991 4500 break; 4992 4501 4993 4502 case 3: 4994 4995 /* Line 1806 of yacc.c */ 4996 #line 304 "parser.yy" 4503 #line 304 "parser.yy" /* yacc.c:1646 */ 4997 4504 { 4998 4505 typedefTable.leaveScope(); 4999 4506 } 4507 #line 4508 "Parser/parser.cc" /* yacc.c:1646 */ 5000 4508 break; 5001 4509 5002 4510 case 4: 5003 5004 /* Line 1806 of yacc.c */ 5005 #line 313 "parser.yy" 5006 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4511 #line 313 "parser.yy" /* yacc.c:1646 */ 4512 { (yyval.en) = new ExpressionNode( build_constantInteger( assign_strptr((yyvsp[0].tok)) ) ); } 4513 #line 4514 "Parser/parser.cc" /* yacc.c:1646 */ 5007 4514 break; 5008 4515 5009 4516 case 5: 5010 5011 /* Line 1806 of yacc.c */ 5012 #line 314 "parser.yy" 5013 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4517 #line 314 "parser.yy" /* yacc.c:1646 */ 4518 { (yyval.en) = new ExpressionNode( build_constantFloat( assign_strptr((yyvsp[0].tok)) ) ); } 4519 #line 4520 "Parser/parser.cc" /* yacc.c:1646 */ 5014 4520 break; 5015 4521 5016 4522 case 6: 5017 5018 /* Line 1806 of yacc.c */ 5019 #line 315 "parser.yy" 5020 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4523 #line 315 "parser.yy" /* yacc.c:1646 */ 4524 { (yyval.en) = new ExpressionNode( build_constantChar( assign_strptr((yyvsp[0].tok)) ) ); } 4525 #line 4526 "Parser/parser.cc" /* yacc.c:1646 */ 5021 4526 break; 5022 4527 5023 4528 case 16: 5024 5025 /* Line 1806 of yacc.c */ 5026 #line 340 "parser.yy" 5027 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); } 4529 #line 340 "parser.yy" /* yacc.c:1646 */ 4530 { (yyval.constant) = build_constantStr( assign_strptr((yyvsp[0].tok)) ); } 4531 #line 4532 "Parser/parser.cc" /* yacc.c:1646 */ 5028 4532 break; 5029 4533 5030 4534 case 17: 5031 5032 /* Line 1806 of yacc.c */ 5033 #line 342 "parser.yy" 5034 { 5035 appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) ); 5036 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5037 (yyval.constant) = (yyvsp[(1) - (2)].constant); 4535 #line 342 "parser.yy" /* yacc.c:1646 */ 4536 { 4537 appendStr( (yyvsp[-1].constant)->get_constant()->get_value(), (yyvsp[0].tok) ); 4538 delete (yyvsp[0].tok); // allocated by lexer 4539 (yyval.constant) = (yyvsp[-1].constant); 5038 4540 } 4541 #line 4542 "Parser/parser.cc" /* yacc.c:1646 */ 5039 4542 break; 5040 4543 5041 4544 case 18: 5042 5043 /* Line 1806 of yacc.c */ 5044 #line 353 "parser.yy" 5045 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4545 #line 353 "parser.yy" /* yacc.c:1646 */ 4546 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4547 #line 4548 "Parser/parser.cc" /* yacc.c:1646 */ 5046 4548 break; 5047 4549 5048 4550 case 19: 5049 5050 /* Line 1806 of yacc.c */ 5051 #line 355 "parser.yy" 5052 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4551 #line 355 "parser.yy" /* yacc.c:1646 */ 4552 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4553 #line 4554 "Parser/parser.cc" /* yacc.c:1646 */ 5053 4554 break; 5054 4555 5055 4556 case 20: 5056 5057 /* Line 1806 of yacc.c */ 5058 #line 357 "parser.yy" 5059 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4557 #line 357 "parser.yy" /* yacc.c:1646 */ 4558 { (yyval.en) = (yyvsp[-1].en); } 4559 #line 4560 "Parser/parser.cc" /* yacc.c:1646 */ 5060 4560 break; 5061 4561 5062 4562 case 21: 5063 5064 /* Line 1806 of yacc.c */ 5065 #line 359 "parser.yy" 5066 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4563 #line 359 "parser.yy" /* yacc.c:1646 */ 4564 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4565 #line 4566 "Parser/parser.cc" /* yacc.c:1646 */ 5067 4566 break; 5068 4567 5069 4568 case 23: 5070 5071 /* Line 1806 of yacc.c */ 5072 #line 369 "parser.yy" 5073 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4569 #line 369 "parser.yy" /* yacc.c:1646 */ 4570 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4571 #line 4572 "Parser/parser.cc" /* yacc.c:1646 */ 5074 4572 break; 5075 4573 5076 4574 case 24: 5077 5078 /* Line 1806 of yacc.c */ 5079 #line 371 "parser.yy" 5080 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4575 #line 371 "parser.yy" /* yacc.c:1646 */ 4576 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4577 #line 4578 "Parser/parser.cc" /* yacc.c:1646 */ 5081 4578 break; 5082 4579 5083 4580 case 25: 5084 5085 /* Line 1806 of yacc.c */ 5086 #line 375 "parser.yy" 5087 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4581 #line 375 "parser.yy" /* yacc.c:1646 */ 4582 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4583 #line 4584 "Parser/parser.cc" /* yacc.c:1646 */ 5088 4584 break; 5089 4585 5090 4586 case 27: 5091 5092 /* Line 1806 of yacc.c */ 5093 #line 378 "parser.yy" 5094 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4587 #line 378 "parser.yy" /* yacc.c:1646 */ 4588 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4589 #line 4590 "Parser/parser.cc" /* yacc.c:1646 */ 5095 4590 break; 5096 4591 5097 4592 case 29: 5098 5099 /* Line 1806 of yacc.c */ 5100 #line 381 "parser.yy" 5101 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4593 #line 381 "parser.yy" /* yacc.c:1646 */ 4594 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4595 #line 4596 "Parser/parser.cc" /* yacc.c:1646 */ 5102 4596 break; 5103 4597 5104 4598 case 30: 5105 5106 /* Line 1806 of yacc.c */ 5107 #line 383 "parser.yy" 5108 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4599 #line 383 "parser.yy" /* yacc.c:1646 */ 4600 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4601 #line 4602 "Parser/parser.cc" /* yacc.c:1646 */ 5109 4602 break; 5110 4603 5111 4604 case 31: 5112 5113 /* Line 1806 of yacc.c */ 5114 #line 385 "parser.yy" 5115 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4605 #line 385 "parser.yy" /* yacc.c:1646 */ 4606 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4607 #line 4608 "Parser/parser.cc" /* yacc.c:1646 */ 5116 4608 break; 5117 4609 5118 4610 case 32: 5119 5120 /* Line 1806 of yacc.c */ 5121 #line 387 "parser.yy" 4611 #line 387 "parser.yy" /* yacc.c:1646 */ 5122 4612 { 5123 4613 Token fn; 5124 4614 fn.str = new std::string( "?{}" ); // location undefined 5125 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );4615 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) ); 5126 4616 } 4617 #line 4618 "Parser/parser.cc" /* yacc.c:1646 */ 5127 4618 break; 5128 4619 5129 4620 case 34: 5130 5131 /* Line 1806 of yacc.c */ 5132 #line 397 "parser.yy" 5133 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4621 #line 397 "parser.yy" /* yacc.c:1646 */ 4622 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4623 #line 4624 "Parser/parser.cc" /* yacc.c:1646 */ 5134 4624 break; 5135 4625 5136 4626 case 35: 5137 5138 /* Line 1806 of yacc.c */ 5139 #line 402 "parser.yy" 4627 #line 402 "parser.yy" /* yacc.c:1646 */ 5140 4628 { (yyval.en) = 0; } 4629 #line 4630 "Parser/parser.cc" /* yacc.c:1646 */ 5141 4630 break; 5142 4631 5143 4632 case 38: 5144 5145 /* Line 1806 of yacc.c */ 5146 #line 408 "parser.yy" 5147 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4633 #line 408 "parser.yy" /* yacc.c:1646 */ 4634 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4635 #line 4636 "Parser/parser.cc" /* yacc.c:1646 */ 5148 4636 break; 5149 4637 5150 4638 case 39: 5151 5152 /* Line 1806 of yacc.c */ 5153 #line 413 "parser.yy" 5154 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4639 #line 413 "parser.yy" /* yacc.c:1646 */ 4640 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4641 #line 4642 "Parser/parser.cc" /* yacc.c:1646 */ 5155 4642 break; 5156 4643 5157 4644 case 40: 5158 5159 /* Line 1806 of yacc.c */ 5160 #line 417 "parser.yy" 5161 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4645 #line 417 "parser.yy" /* yacc.c:1646 */ 4646 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4647 #line 4648 "Parser/parser.cc" /* yacc.c:1646 */ 5162 4648 break; 5163 4649 5164 4650 case 41: 5165 5166 /* Line 1806 of yacc.c */ 5167 #line 419 "parser.yy" 5168 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4651 #line 419 "parser.yy" /* yacc.c:1646 */ 4652 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4653 #line 4654 "Parser/parser.cc" /* yacc.c:1646 */ 5169 4654 break; 5170 4655 5171 4656 case 42: 5172 5173 /* Line 1806 of yacc.c */ 5174 #line 421 "parser.yy" 5175 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4657 #line 421 "parser.yy" /* yacc.c:1646 */ 4658 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4659 #line 4660 "Parser/parser.cc" /* yacc.c:1646 */ 5176 4660 break; 5177 4661 5178 4662 case 43: 5179 5180 /* Line 1806 of yacc.c */ 5181 #line 423 "parser.yy" 5182 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4663 #line 423 "parser.yy" /* yacc.c:1646 */ 4664 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4665 #line 4666 "Parser/parser.cc" /* yacc.c:1646 */ 5183 4666 break; 5184 4667 5185 4668 case 45: 5186 5187 /* Line 1806 of yacc.c */ 5188 #line 431 "parser.yy" 5189 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4669 #line 431 "parser.yy" /* yacc.c:1646 */ 4670 { (yyval.en) = (yyvsp[0].en); } 4671 #line 4672 "Parser/parser.cc" /* yacc.c:1646 */ 5190 4672 break; 5191 4673 5192 4674 case 46: 5193 5194 /* Line 1806 of yacc.c */ 5195 #line 433 "parser.yy" 5196 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4675 #line 433 "parser.yy" /* yacc.c:1646 */ 4676 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4677 #line 4678 "Parser/parser.cc" /* yacc.c:1646 */ 5197 4678 break; 5198 4679 5199 4680 case 47: 5200 5201 /* Line 1806 of yacc.c */ 5202 #line 435 "parser.yy" 5203 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4681 #line 435 "parser.yy" /* yacc.c:1646 */ 4682 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4683 #line 4684 "Parser/parser.cc" /* yacc.c:1646 */ 5204 4684 break; 5205 4685 5206 4686 case 48: 5207 5208 /* Line 1806 of yacc.c */ 5209 #line 440 "parser.yy" 5210 { 5211 switch ( (yyvsp[(1) - (2)].op) ) { 4687 #line 440 "parser.yy" /* yacc.c:1646 */ 4688 { 4689 switch ( (yyvsp[-1].op) ) { 5212 4690 case OperKinds::AddressOf: 5213 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ (2) - (2)].en) ) );4691 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) ); 5214 4692 break; 5215 4693 case OperKinds::PointTo: 5216 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ (1) - (2)].op), (yyvsp[(2) - (2)].en) ) );4694 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); 5217 4695 break; 5218 4696 default: … … 5220 4698 } 5221 4699 } 4700 #line 4701 "Parser/parser.cc" /* yacc.c:1646 */ 5222 4701 break; 5223 4702 5224 4703 case 49: 5225 5226 /* Line 1806 of yacc.c */ 5227 #line 453 "parser.yy" 5228 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4704 #line 453 "parser.yy" /* yacc.c:1646 */ 4705 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4706 #line 4707 "Parser/parser.cc" /* yacc.c:1646 */ 5229 4707 break; 5230 4708 5231 4709 case 50: 5232 5233 /* Line 1806 of yacc.c */ 5234 #line 455 "parser.yy" 5235 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4710 #line 455 "parser.yy" /* yacc.c:1646 */ 4711 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4712 #line 4713 "Parser/parser.cc" /* yacc.c:1646 */ 5236 4713 break; 5237 4714 5238 4715 case 51: 5239 5240 /* Line 1806 of yacc.c */ 5241 #line 457 "parser.yy" 5242 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4716 #line 457 "parser.yy" /* yacc.c:1646 */ 4717 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4718 #line 4719 "Parser/parser.cc" /* yacc.c:1646 */ 5243 4719 break; 5244 4720 5245 4721 case 52: 5246 5247 /* Line 1806 of yacc.c */ 5248 #line 459 "parser.yy" 5249 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4722 #line 459 "parser.yy" /* yacc.c:1646 */ 4723 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4724 #line 4725 "Parser/parser.cc" /* yacc.c:1646 */ 5250 4725 break; 5251 4726 5252 4727 case 53: 5253 5254 /* Line 1806 of yacc.c */ 5255 #line 461 "parser.yy" 5256 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4728 #line 461 "parser.yy" /* yacc.c:1646 */ 4729 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4730 #line 4731 "Parser/parser.cc" /* yacc.c:1646 */ 5257 4731 break; 5258 4732 5259 4733 case 54: 5260 5261 /* Line 1806 of yacc.c */ 5262 #line 463 "parser.yy" 5263 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4734 #line 463 "parser.yy" /* yacc.c:1646 */ 4735 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4736 #line 4737 "Parser/parser.cc" /* yacc.c:1646 */ 5264 4737 break; 5265 4738 5266 4739 case 55: 5267 5268 /* Line 1806 of yacc.c */ 5269 #line 465 "parser.yy" 5270 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4740 #line 465 "parser.yy" /* yacc.c:1646 */ 4741 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4742 #line 4743 "Parser/parser.cc" /* yacc.c:1646 */ 5271 4743 break; 5272 4744 5273 4745 case 56: 5274 5275 /* Line 1806 of yacc.c */ 5276 #line 467 "parser.yy" 5277 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4746 #line 467 "parser.yy" /* yacc.c:1646 */ 4747 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4748 #line 4749 "Parser/parser.cc" /* yacc.c:1646 */ 5278 4749 break; 5279 4750 5280 4751 case 57: 5281 5282 /* Line 1806 of yacc.c */ 5283 #line 469 "parser.yy" 5284 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4752 #line 469 "parser.yy" /* yacc.c:1646 */ 4753 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4754 #line 4755 "Parser/parser.cc" /* yacc.c:1646 */ 5285 4755 break; 5286 4756 5287 4757 case 58: 5288 5289 /* Line 1806 of yacc.c */ 5290 #line 471 "parser.yy" 5291 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4758 #line 471 "parser.yy" /* yacc.c:1646 */ 4759 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4760 #line 4761 "Parser/parser.cc" /* yacc.c:1646 */ 5292 4761 break; 5293 4762 5294 4763 case 59: 5295 5296 /* Line 1806 of yacc.c */ 5297 #line 473 "parser.yy" 5298 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4764 #line 473 "parser.yy" /* yacc.c:1646 */ 4765 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4766 #line 4767 "Parser/parser.cc" /* yacc.c:1646 */ 5299 4767 break; 5300 4768 5301 4769 case 60: 5302 5303 /* Line 1806 of yacc.c */ 5304 #line 479 "parser.yy" 4770 #line 479 "parser.yy" /* yacc.c:1646 */ 5305 4771 { (yyval.op) = OperKinds::PointTo; } 4772 #line 4773 "Parser/parser.cc" /* yacc.c:1646 */ 5306 4773 break; 5307 4774 5308 4775 case 61: 5309 5310 /* Line 1806 of yacc.c */ 5311 #line 480 "parser.yy" 4776 #line 480 "parser.yy" /* yacc.c:1646 */ 5312 4777 { (yyval.op) = OperKinds::AddressOf; } 4778 #line 4779 "Parser/parser.cc" /* yacc.c:1646 */ 5313 4779 break; 5314 4780 5315 4781 case 62: 5316 5317 /* Line 1806 of yacc.c */ 5318 #line 486 "parser.yy" 4782 #line 486 "parser.yy" /* yacc.c:1646 */ 5319 4783 { (yyval.op) = OperKinds::UnPlus; } 4784 #line 4785 "Parser/parser.cc" /* yacc.c:1646 */ 5320 4785 break; 5321 4786 5322 4787 case 63: 5323 5324 /* Line 1806 of yacc.c */ 5325 #line 487 "parser.yy" 4788 #line 487 "parser.yy" /* yacc.c:1646 */ 5326 4789 { (yyval.op) = OperKinds::UnMinus; } 4790 #line 4791 "Parser/parser.cc" /* yacc.c:1646 */ 5327 4791 break; 5328 4792 5329 4793 case 64: 5330 5331 /* Line 1806 of yacc.c */ 5332 #line 488 "parser.yy" 4794 #line 488 "parser.yy" /* yacc.c:1646 */ 5333 4795 { (yyval.op) = OperKinds::Neg; } 4796 #line 4797 "Parser/parser.cc" /* yacc.c:1646 */ 5334 4797 break; 5335 4798 5336 4799 case 65: 5337 5338 /* Line 1806 of yacc.c */ 5339 #line 489 "parser.yy" 4800 #line 489 "parser.yy" /* yacc.c:1646 */ 5340 4801 { (yyval.op) = OperKinds::BitNeg; } 4802 #line 4803 "Parser/parser.cc" /* yacc.c:1646 */ 5341 4803 break; 5342 4804 5343 4805 case 67: 5344 5345 /* Line 1806 of yacc.c */ 5346 #line 495 "parser.yy" 5347 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4806 #line 495 "parser.yy" /* yacc.c:1646 */ 4807 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4808 #line 4809 "Parser/parser.cc" /* yacc.c:1646 */ 5348 4809 break; 5349 4810 5350 4811 case 68: 5351 5352 /* Line 1806 of yacc.c */ 5353 #line 497 "parser.yy" 5354 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4812 #line 497 "parser.yy" /* yacc.c:1646 */ 4813 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4814 #line 4815 "Parser/parser.cc" /* yacc.c:1646 */ 5355 4815 break; 5356 4816 5357 4817 case 70: 5358 5359 /* Line 1806 of yacc.c */ 5360 #line 503 "parser.yy" 5361 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4818 #line 503 "parser.yy" /* yacc.c:1646 */ 4819 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4820 #line 4821 "Parser/parser.cc" /* yacc.c:1646 */ 5362 4821 break; 5363 4822 5364 4823 case 71: 5365 5366 /* Line 1806 of yacc.c */ 5367 #line 505 "parser.yy" 5368 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4824 #line 505 "parser.yy" /* yacc.c:1646 */ 4825 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4826 #line 4827 "Parser/parser.cc" /* yacc.c:1646 */ 5369 4827 break; 5370 4828 5371 4829 case 72: 5372 5373 /* Line 1806 of yacc.c */ 5374 #line 507 "parser.yy" 5375 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4830 #line 507 "parser.yy" /* yacc.c:1646 */ 4831 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4832 #line 4833 "Parser/parser.cc" /* yacc.c:1646 */ 5376 4833 break; 5377 4834 5378 4835 case 74: 5379 5380 /* Line 1806 of yacc.c */ 5381 #line 513 "parser.yy" 5382 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4836 #line 513 "parser.yy" /* yacc.c:1646 */ 4837 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4838 #line 4839 "Parser/parser.cc" /* yacc.c:1646 */ 5383 4839 break; 5384 4840 5385 4841 case 75: 5386 5387 /* Line 1806 of yacc.c */ 5388 #line 515 "parser.yy" 5389 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4842 #line 515 "parser.yy" /* yacc.c:1646 */ 4843 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4844 #line 4845 "Parser/parser.cc" /* yacc.c:1646 */ 5390 4845 break; 5391 4846 5392 4847 case 77: 5393 5394 /* Line 1806 of yacc.c */ 5395 #line 521 "parser.yy" 5396 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4848 #line 521 "parser.yy" /* yacc.c:1646 */ 4849 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4850 #line 4851 "Parser/parser.cc" /* yacc.c:1646 */ 5397 4851 break; 5398 4852 5399 4853 case 78: 5400 5401 /* Line 1806 of yacc.c */ 5402 #line 523 "parser.yy" 5403 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4854 #line 523 "parser.yy" /* yacc.c:1646 */ 4855 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4856 #line 4857 "Parser/parser.cc" /* yacc.c:1646 */ 5404 4857 break; 5405 4858 5406 4859 case 80: 5407 5408 /* Line 1806 of yacc.c */ 5409 #line 529 "parser.yy" 5410 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4860 #line 529 "parser.yy" /* yacc.c:1646 */ 4861 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4862 #line 4863 "Parser/parser.cc" /* yacc.c:1646 */ 5411 4863 break; 5412 4864 5413 4865 case 81: 5414 5415 /* Line 1806 of yacc.c */ 5416 #line 531 "parser.yy" 5417 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4866 #line 531 "parser.yy" /* yacc.c:1646 */ 4867 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4868 #line 4869 "Parser/parser.cc" /* yacc.c:1646 */ 5418 4869 break; 5419 4870 5420 4871 case 82: 5421 5422 /* Line 1806 of yacc.c */ 5423 #line 533 "parser.yy" 5424 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4872 #line 533 "parser.yy" /* yacc.c:1646 */ 4873 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4874 #line 4875 "Parser/parser.cc" /* yacc.c:1646 */ 5425 4875 break; 5426 4876 5427 4877 case 83: 5428 5429 /* Line 1806 of yacc.c */ 5430 #line 535 "parser.yy" 5431 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4878 #line 535 "parser.yy" /* yacc.c:1646 */ 4879 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4880 #line 4881 "Parser/parser.cc" /* yacc.c:1646 */ 5432 4881 break; 5433 4882 5434 4883 case 85: 5435 5436 /* Line 1806 of yacc.c */ 5437 #line 541 "parser.yy" 5438 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4884 #line 541 "parser.yy" /* yacc.c:1646 */ 4885 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4886 #line 4887 "Parser/parser.cc" /* yacc.c:1646 */ 5439 4887 break; 5440 4888 5441 4889 case 86: 5442 5443 /* Line 1806 of yacc.c */ 5444 #line 543 "parser.yy" 5445 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4890 #line 543 "parser.yy" /* yacc.c:1646 */ 4891 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4892 #line 4893 "Parser/parser.cc" /* yacc.c:1646 */ 5446 4893 break; 5447 4894 5448 4895 case 88: 5449 5450 /* Line 1806 of yacc.c */ 5451 #line 549 "parser.yy" 5452 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4896 #line 549 "parser.yy" /* yacc.c:1646 */ 4897 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4898 #line 4899 "Parser/parser.cc" /* yacc.c:1646 */ 5453 4899 break; 5454 4900 5455 4901 case 90: 5456 5457 /* Line 1806 of yacc.c */ 5458 #line 555 "parser.yy" 5459 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4902 #line 555 "parser.yy" /* yacc.c:1646 */ 4903 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4904 #line 4905 "Parser/parser.cc" /* yacc.c:1646 */ 5460 4905 break; 5461 4906 5462 4907 case 92: 5463 5464 /* Line 1806 of yacc.c */ 5465 #line 561 "parser.yy" 5466 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4908 #line 561 "parser.yy" /* yacc.c:1646 */ 4909 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4910 #line 4911 "Parser/parser.cc" /* yacc.c:1646 */ 5467 4911 break; 5468 4912 5469 4913 case 94: 5470 5471 /* Line 1806 of yacc.c */ 5472 #line 567 "parser.yy" 5473 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4914 #line 567 "parser.yy" /* yacc.c:1646 */ 4915 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4916 #line 4917 "Parser/parser.cc" /* yacc.c:1646 */ 5474 4917 break; 5475 4918 5476 4919 case 96: 5477 5478 /* Line 1806 of yacc.c */ 5479 #line 573 "parser.yy" 5480 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4920 #line 573 "parser.yy" /* yacc.c:1646 */ 4921 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4922 #line 4923 "Parser/parser.cc" /* yacc.c:1646 */ 5481 4923 break; 5482 4924 5483 4925 case 98: 5484 5485 /* Line 1806 of yacc.c */ 5486 #line 579 "parser.yy" 5487 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4926 #line 579 "parser.yy" /* yacc.c:1646 */ 4927 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4928 #line 4929 "Parser/parser.cc" /* yacc.c:1646 */ 5488 4929 break; 5489 4930 5490 4931 case 99: 5491 5492 /* Line 1806 of yacc.c */ 5493 #line 582 "parser.yy" 5494 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4932 #line 582 "parser.yy" /* yacc.c:1646 */ 4933 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4934 #line 4935 "Parser/parser.cc" /* yacc.c:1646 */ 5495 4935 break; 5496 4936 5497 4937 case 100: 5498 5499 /* Line 1806 of yacc.c */ 5500 #line 584 "parser.yy" 5501 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4938 #line 584 "parser.yy" /* yacc.c:1646 */ 4939 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4940 #line 4941 "Parser/parser.cc" /* yacc.c:1646 */ 5502 4941 break; 5503 4942 5504 4943 case 103: 5505 5506 /* Line 1806 of yacc.c */ 5507 #line 595 "parser.yy" 5508 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4944 #line 595 "parser.yy" /* yacc.c:1646 */ 4945 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4946 #line 4947 "Parser/parser.cc" /* yacc.c:1646 */ 5509 4947 break; 5510 4948 5511 4949 case 104: 5512 5513 /* Line 1806 of yacc.c */ 5514 #line 597 "parser.yy" 5515 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 4950 #line 597 "parser.yy" /* yacc.c:1646 */ 4951 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4952 #line 4953 "Parser/parser.cc" /* yacc.c:1646 */ 5516 4953 break; 5517 4954 5518 4955 case 105: 5519 5520 /* Line 1806 of yacc.c */ 5521 #line 602 "parser.yy" 4956 #line 602 "parser.yy" /* yacc.c:1646 */ 5522 4957 { (yyval.en) = nullptr; } 4958 #line 4959 "Parser/parser.cc" /* yacc.c:1646 */ 5523 4959 break; 5524 4960 5525 4961 case 107: 5526 5527 /* Line 1806 of yacc.c */ 5528 #line 607 "parser.yy" 4962 #line 607 "parser.yy" /* yacc.c:1646 */ 5529 4963 { (yyval.op) = OperKinds::Assign; } 4964 #line 4965 "Parser/parser.cc" /* yacc.c:1646 */ 5530 4965 break; 5531 4966 5532 4967 case 108: 5533 5534 /* Line 1806 of yacc.c */ 5535 #line 608 "parser.yy" 4968 #line 608 "parser.yy" /* yacc.c:1646 */ 5536 4969 { (yyval.op) = OperKinds::MulAssn; } 4970 #line 4971 "Parser/parser.cc" /* yacc.c:1646 */ 5537 4971 break; 5538 4972 5539 4973 case 109: 5540 5541 /* Line 1806 of yacc.c */ 5542 #line 609 "parser.yy" 4974 #line 609 "parser.yy" /* yacc.c:1646 */ 5543 4975 { (yyval.op) = OperKinds::DivAssn; } 4976 #line 4977 "Parser/parser.cc" /* yacc.c:1646 */ 5544 4977 break; 5545 4978 5546 4979 case 110: 5547 5548 /* Line 1806 of yacc.c */ 5549 #line 610 "parser.yy" 4980 #line 610 "parser.yy" /* yacc.c:1646 */ 5550 4981 { (yyval.op) = OperKinds::ModAssn; } 4982 #line 4983 "Parser/parser.cc" /* yacc.c:1646 */ 5551 4983 break; 5552 4984 5553 4985 case 111: 5554 5555 /* Line 1806 of yacc.c */ 5556 #line 611 "parser.yy" 4986 #line 611 "parser.yy" /* yacc.c:1646 */ 5557 4987 { (yyval.op) = OperKinds::PlusAssn; } 4988 #line 4989 "Parser/parser.cc" /* yacc.c:1646 */ 5558 4989 break; 5559 4990 5560 4991 case 112: 5561 5562 /* Line 1806 of yacc.c */ 5563 #line 612 "parser.yy" 4992 #line 612 "parser.yy" /* yacc.c:1646 */ 5564 4993 { (yyval.op) = OperKinds::MinusAssn; } 4994 #line 4995 "Parser/parser.cc" /* yacc.c:1646 */ 5565 4995 break; 5566 4996 5567 4997 case 113: 5568 5569 /* Line 1806 of yacc.c */ 5570 #line 613 "parser.yy" 4998 #line 613 "parser.yy" /* yacc.c:1646 */ 5571 4999 { (yyval.op) = OperKinds::LSAssn; } 5000 #line 5001 "Parser/parser.cc" /* yacc.c:1646 */ 5572 5001 break; 5573 5002 5574 5003 case 114: 5575 5576 /* Line 1806 of yacc.c */ 5577 #line 614 "parser.yy" 5004 #line 614 "parser.yy" /* yacc.c:1646 */ 5578 5005 { (yyval.op) = OperKinds::RSAssn; } 5006 #line 5007 "Parser/parser.cc" /* yacc.c:1646 */ 5579 5007 break; 5580 5008 5581 5009 case 115: 5582 5583 /* Line 1806 of yacc.c */ 5584 #line 615 "parser.yy" 5010 #line 615 "parser.yy" /* yacc.c:1646 */ 5585 5011 { (yyval.op) = OperKinds::AndAssn; } 5012 #line 5013 "Parser/parser.cc" /* yacc.c:1646 */ 5586 5013 break; 5587 5014 5588 5015 case 116: 5589 5590 /* Line 1806 of yacc.c */ 5591 #line 616 "parser.yy" 5016 #line 616 "parser.yy" /* yacc.c:1646 */ 5592 5017 { (yyval.op) = OperKinds::ERAssn; } 5018 #line 5019 "Parser/parser.cc" /* yacc.c:1646 */ 5593 5019 break; 5594 5020 5595 5021 case 117: 5596 5597 /* Line 1806 of yacc.c */ 5598 #line 617 "parser.yy" 5022 #line 617 "parser.yy" /* yacc.c:1646 */ 5599 5023 { (yyval.op) = OperKinds::OrAssn; } 5024 #line 5025 "Parser/parser.cc" /* yacc.c:1646 */ 5600 5025 break; 5601 5026 5602 5027 case 118: 5603 5604 /* Line 1806 of yacc.c */ 5605 #line 624 "parser.yy" 5028 #line 624 "parser.yy" /* yacc.c:1646 */ 5606 5029 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5030 #line 5031 "Parser/parser.cc" /* yacc.c:1646 */ 5607 5031 break; 5608 5032 5609 5033 case 119: 5610 5611 /* Line 1806 of yacc.c */ 5612 #line 626 "parser.yy" 5613 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5034 #line 626 "parser.yy" /* yacc.c:1646 */ 5035 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5036 #line 5037 "Parser/parser.cc" /* yacc.c:1646 */ 5614 5037 break; 5615 5038 5616 5039 case 120: 5617 5618 /* Line 1806 of yacc.c */ 5619 #line 628 "parser.yy" 5620 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5040 #line 628 "parser.yy" /* yacc.c:1646 */ 5041 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5042 #line 5043 "Parser/parser.cc" /* yacc.c:1646 */ 5621 5043 break; 5622 5044 5623 5045 case 121: 5624 5625 /* Line 1806 of yacc.c */ 5626 #line 630 "parser.yy" 5627 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5046 #line 630 "parser.yy" /* yacc.c:1646 */ 5047 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5048 #line 5049 "Parser/parser.cc" /* yacc.c:1646 */ 5628 5049 break; 5629 5050 5630 5051 case 123: 5631 5632 /* Line 1806 of yacc.c */ 5633 #line 636 "parser.yy" 5634 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5052 #line 636 "parser.yy" /* yacc.c:1646 */ 5053 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5054 #line 5055 "Parser/parser.cc" /* yacc.c:1646 */ 5635 5055 break; 5636 5056 5637 5057 case 125: 5638 5639 /* Line 1806 of yacc.c */ 5640 #line 642 "parser.yy" 5641 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5058 #line 642 "parser.yy" /* yacc.c:1646 */ 5059 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5060 #line 5061 "Parser/parser.cc" /* yacc.c:1646 */ 5642 5061 break; 5643 5062 5644 5063 case 126: 5645 5646 /* Line 1806 of yacc.c */ 5647 #line 647 "parser.yy" 5064 #line 647 "parser.yy" /* yacc.c:1646 */ 5648 5065 { (yyval.en) = 0; } 5066 #line 5067 "Parser/parser.cc" /* yacc.c:1646 */ 5649 5067 break; 5650 5068 5651 5069 case 130: 5652 5653 /* Line 1806 of yacc.c */ 5654 #line 656 "parser.yy" 5655 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5070 #line 656 "parser.yy" /* yacc.c:1646 */ 5071 { (yyval.sn) = (yyvsp[0].sn); } 5072 #line 5073 "Parser/parser.cc" /* yacc.c:1646 */ 5656 5073 break; 5657 5074 5658 5075 case 136: 5659 5660 /* Line 1806 of yacc.c */ 5661 #line 663 "parser.yy" 5076 #line 663 "parser.yy" /* yacc.c:1646 */ 5662 5077 { 5663 5078 Token fn; 5664 5079 fn.str = new std::string( "^?{}" ); // location undefined 5665 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );5080 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) ); 5666 5081 } 5082 #line 5083 "Parser/parser.cc" /* yacc.c:1646 */ 5667 5083 break; 5668 5084 5669 5085 case 137: 5670 5671 /* Line 1806 of yacc.c */ 5672 #line 673 "parser.yy" 5673 { 5674 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5086 #line 673 "parser.yy" /* yacc.c:1646 */ 5087 { 5088 (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) ); 5675 5089 } 5090 #line 5091 "Parser/parser.cc" /* yacc.c:1646 */ 5676 5091 break; 5677 5092 5678 5093 case 138: 5679 5680 /* Line 1806 of yacc.c */ 5681 #line 680 "parser.yy" 5094 #line 680 "parser.yy" /* yacc.c:1646 */ 5682 5095 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5096 #line 5097 "Parser/parser.cc" /* yacc.c:1646 */ 5683 5097 break; 5684 5098 5685 5099 case 139: 5686 5687 /* Line 1806 of yacc.c */ 5688 #line 687 "parser.yy" 5689 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5100 #line 687 "parser.yy" /* yacc.c:1646 */ 5101 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5102 #line 5103 "Parser/parser.cc" /* yacc.c:1646 */ 5690 5103 break; 5691 5104 5692 5105 case 141: 5693 5694 /* Line 1806 of yacc.c */ 5695 #line 693 "parser.yy" 5696 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5106 #line 693 "parser.yy" /* yacc.c:1646 */ 5107 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5108 #line 5109 "Parser/parser.cc" /* yacc.c:1646 */ 5697 5109 break; 5698 5110 5699 5111 case 142: 5700 5701 /* Line 1806 of yacc.c */ 5702 #line 698 "parser.yy" 5703 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5112 #line 698 "parser.yy" /* yacc.c:1646 */ 5113 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5114 #line 5115 "Parser/parser.cc" /* yacc.c:1646 */ 5704 5115 break; 5705 5116 5706 5117 case 143: 5707 5708 /* Line 1806 of yacc.c */ 5709 #line 700 "parser.yy" 5118 #line 700 "parser.yy" /* yacc.c:1646 */ 5710 5119 { // mark all fields in list 5711 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5120 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5712 5121 iter->set_extension( true ); 5713 (yyval.sn) = new StatementNode( (yyvsp[ (2) - (2)].decl) );5122 (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); 5714 5123 } 5124 #line 5125 "Parser/parser.cc" /* yacc.c:1646 */ 5715 5125 break; 5716 5126 5717 5127 case 144: 5718 5719 /* Line 1806 of yacc.c */ 5720 #line 706 "parser.yy" 5721 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5128 #line 706 "parser.yy" /* yacc.c:1646 */ 5129 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5130 #line 5131 "Parser/parser.cc" /* yacc.c:1646 */ 5722 5131 break; 5723 5132 5724 5133 case 147: 5725 5726 /* Line 1806 of yacc.c */ 5727 #line 713 "parser.yy" 5728 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5134 #line 713 "parser.yy" /* yacc.c:1646 */ 5135 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5136 #line 5137 "Parser/parser.cc" /* yacc.c:1646 */ 5729 5137 break; 5730 5138 5731 5139 case 148: 5732 5733 /* Line 1806 of yacc.c */ 5734 #line 718 "parser.yy" 5735 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5140 #line 718 "parser.yy" /* yacc.c:1646 */ 5141 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5142 #line 5143 "Parser/parser.cc" /* yacc.c:1646 */ 5736 5143 break; 5737 5144 5738 5145 case 149: 5739 5740 /* Line 1806 of yacc.c */ 5741 #line 724 "parser.yy" 5742 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5146 #line 724 "parser.yy" /* yacc.c:1646 */ 5147 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5148 #line 5149 "Parser/parser.cc" /* yacc.c:1646 */ 5743 5149 break; 5744 5150 5745 5151 case 150: 5746 5747 /* Line 1806 of yacc.c */ 5748 #line 726 "parser.yy" 5749 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5152 #line 726 "parser.yy" /* yacc.c:1646 */ 5153 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5154 #line 5155 "Parser/parser.cc" /* yacc.c:1646 */ 5750 5155 break; 5751 5156 5752 5157 case 151: 5753 5754 /* Line 1806 of yacc.c */ 5755 #line 728 "parser.yy" 5756 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5158 #line 728 "parser.yy" /* yacc.c:1646 */ 5159 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5160 #line 5161 "Parser/parser.cc" /* yacc.c:1646 */ 5757 5161 break; 5758 5162 5759 5163 case 152: 5760 5761 /* Line 1806 of yacc.c */ 5762 #line 730 "parser.yy" 5763 { 5764 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5164 #line 730 "parser.yy" /* yacc.c:1646 */ 5165 { 5166 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5765 5167 // The semantics of the declaration list is changed to include associated initialization, which is performed 5766 5168 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5768 5170 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5769 5171 // statement. 5770 (yyval.sn) = (yyvsp[ (7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5172 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5771 5173 } 5174 #line 5175 "Parser/parser.cc" /* yacc.c:1646 */ 5772 5175 break; 5773 5176 5774 5177 case 153: 5775 5776 /* Line 1806 of yacc.c */ 5777 #line 740 "parser.yy" 5778 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5178 #line 740 "parser.yy" /* yacc.c:1646 */ 5179 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5180 #line 5181 "Parser/parser.cc" /* yacc.c:1646 */ 5779 5181 break; 5780 5182 5781 5183 case 154: 5782 5783 /* Line 1806 of yacc.c */ 5784 #line 742 "parser.yy" 5785 { 5786 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5787 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5184 #line 742 "parser.yy" /* yacc.c:1646 */ 5185 { 5186 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5187 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5788 5188 } 5189 #line 5190 "Parser/parser.cc" /* yacc.c:1646 */ 5789 5190 break; 5790 5191 5791 5192 case 155: 5792 5793 /* Line 1806 of yacc.c */ 5794 #line 752 "parser.yy" 5795 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5193 #line 752 "parser.yy" /* yacc.c:1646 */ 5194 { (yyval.en) = (yyvsp[0].en); } 5195 #line 5196 "Parser/parser.cc" /* yacc.c:1646 */ 5796 5196 break; 5797 5197 5798 5198 case 156: 5799 5800 /* Line 1806 of yacc.c */ 5801 #line 754 "parser.yy" 5802 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5199 #line 754 "parser.yy" /* yacc.c:1646 */ 5200 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5201 #line 5202 "Parser/parser.cc" /* yacc.c:1646 */ 5803 5202 break; 5804 5203 5805 5204 case 158: 5806 5807 /* Line 1806 of yacc.c */ 5808 #line 759 "parser.yy" 5809 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5205 #line 759 "parser.yy" /* yacc.c:1646 */ 5206 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5207 #line 5208 "Parser/parser.cc" /* yacc.c:1646 */ 5810 5208 break; 5811 5209 5812 5210 case 159: 5813 5814 /* Line 1806 of yacc.c */ 5815 #line 761 "parser.yy" 5816 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5211 #line 761 "parser.yy" /* yacc.c:1646 */ 5212 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5213 #line 5214 "Parser/parser.cc" /* yacc.c:1646 */ 5817 5214 break; 5818 5215 5819 5216 case 160: 5820 5821 /* Line 1806 of yacc.c */ 5822 #line 765 "parser.yy" 5823 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5217 #line 765 "parser.yy" /* yacc.c:1646 */ 5218 { (yyval.sn) = (yyvsp[-1].sn); } 5219 #line 5220 "Parser/parser.cc" /* yacc.c:1646 */ 5824 5220 break; 5825 5221 5826 5222 case 161: 5827 5828 /* Line 1806 of yacc.c */ 5829 #line 766 "parser.yy" 5223 #line 766 "parser.yy" /* yacc.c:1646 */ 5830 5224 { (yyval.sn) = new StatementNode( build_default() ); } 5225 #line 5226 "Parser/parser.cc" /* yacc.c:1646 */ 5831 5226 break; 5832 5227 5833 5228 case 163: 5834 5835 /* Line 1806 of yacc.c */ 5836 #line 772 "parser.yy" 5837 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5229 #line 772 "parser.yy" /* yacc.c:1646 */ 5230 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5231 #line 5232 "Parser/parser.cc" /* yacc.c:1646 */ 5838 5232 break; 5839 5233 5840 5234 case 164: 5841 5842 /* Line 1806 of yacc.c */ 5843 #line 776 "parser.yy" 5844 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5235 #line 776 "parser.yy" /* yacc.c:1646 */ 5236 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5237 #line 5238 "Parser/parser.cc" /* yacc.c:1646 */ 5845 5238 break; 5846 5239 5847 5240 case 165: 5848 5849 /* Line 1806 of yacc.c */ 5850 #line 781 "parser.yy" 5241 #line 781 "parser.yy" /* yacc.c:1646 */ 5851 5242 { (yyval.sn) = 0; } 5243 #line 5244 "Parser/parser.cc" /* yacc.c:1646 */ 5852 5244 break; 5853 5245 5854 5246 case 167: 5855 5856 /* Line 1806 of yacc.c */ 5857 #line 787 "parser.yy" 5858 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5247 #line 787 "parser.yy" /* yacc.c:1646 */ 5248 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5249 #line 5250 "Parser/parser.cc" /* yacc.c:1646 */ 5859 5250 break; 5860 5251 5861 5252 case 168: 5862 5863 /* Line 1806 of yacc.c */ 5864 #line 789 "parser.yy" 5865 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5253 #line 789 "parser.yy" /* yacc.c:1646 */ 5254 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5255 #line 5256 "Parser/parser.cc" /* yacc.c:1646 */ 5866 5256 break; 5867 5257 5868 5258 case 169: 5869 5870 /* Line 1806 of yacc.c */ 5871 #line 794 "parser.yy" 5259 #line 794 "parser.yy" /* yacc.c:1646 */ 5872 5260 { (yyval.sn) = 0; } 5261 #line 5262 "Parser/parser.cc" /* yacc.c:1646 */ 5873 5262 break; 5874 5263 5875 5264 case 171: 5876 5877 /* Line 1806 of yacc.c */ 5878 #line 800 "parser.yy" 5879 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5265 #line 800 "parser.yy" /* yacc.c:1646 */ 5266 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5267 #line 5268 "Parser/parser.cc" /* yacc.c:1646 */ 5880 5268 break; 5881 5269 5882 5270 case 172: 5883 5884 /* Line 1806 of yacc.c */ 5885 #line 802 "parser.yy" 5886 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5271 #line 802 "parser.yy" /* yacc.c:1646 */ 5272 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5273 #line 5274 "Parser/parser.cc" /* yacc.c:1646 */ 5887 5274 break; 5888 5275 5889 5276 case 173: 5890 5891 /* Line 1806 of yacc.c */ 5892 #line 804 "parser.yy" 5893 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5277 #line 804 "parser.yy" /* yacc.c:1646 */ 5278 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5279 #line 5280 "Parser/parser.cc" /* yacc.c:1646 */ 5894 5280 break; 5895 5281 5896 5282 case 174: 5897 5898 /* Line 1806 of yacc.c */ 5899 #line 806 "parser.yy" 5900 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5283 #line 806 "parser.yy" /* yacc.c:1646 */ 5284 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5285 #line 5286 "Parser/parser.cc" /* yacc.c:1646 */ 5901 5286 break; 5902 5287 5903 5288 case 175: 5904 5905 /* Line 1806 of yacc.c */ 5906 #line 811 "parser.yy" 5289 #line 811 "parser.yy" /* yacc.c:1646 */ 5907 5290 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); } 5291 #line 5292 "Parser/parser.cc" /* yacc.c:1646 */ 5908 5292 break; 5909 5293 5910 5294 case 177: 5911 5912 /* Line 1806 of yacc.c */ 5913 #line 817 "parser.yy" 5295 #line 817 "parser.yy" /* yacc.c:1646 */ 5914 5296 { (yyval.sn) = 0; } 5297 #line 5298 "Parser/parser.cc" /* yacc.c:1646 */ 5915 5298 break; 5916 5299 5917 5300 case 178: 5918 5919 /* Line 1806 of yacc.c */ 5920 #line 819 "parser.yy" 5301 #line 819 "parser.yy" /* yacc.c:1646 */ 5921 5302 { (yyval.sn) = 0; } 5303 #line 5304 "Parser/parser.cc" /* yacc.c:1646 */ 5922 5304 break; 5923 5305 5924 5306 case 179: 5925 5926 /* Line 1806 of yacc.c */ 5927 #line 824 "parser.yy" 5928 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5307 #line 824 "parser.yy" /* yacc.c:1646 */ 5308 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5309 #line 5310 "Parser/parser.cc" /* yacc.c:1646 */ 5929 5310 break; 5930 5311 5931 5312 case 180: 5932 5933 /* Line 1806 of yacc.c */ 5934 #line 826 "parser.yy" 5935 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5313 #line 826 "parser.yy" /* yacc.c:1646 */ 5314 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn) ) ); } 5315 #line 5316 "Parser/parser.cc" /* yacc.c:1646 */ 5936 5316 break; 5937 5317 5938 5318 case 181: 5939 5940 /* Line 1806 of yacc.c */ 5941 #line 828 "parser.yy" 5942 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5319 #line 828 "parser.yy" /* yacc.c:1646 */ 5320 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5321 #line 5322 "Parser/parser.cc" /* yacc.c:1646 */ 5943 5322 break; 5944 5323 5945 5324 case 182: 5946 5947 /* Line 1806 of yacc.c */ 5948 #line 833 "parser.yy" 5949 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5325 #line 833 "parser.yy" /* yacc.c:1646 */ 5326 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5327 #line 5328 "Parser/parser.cc" /* yacc.c:1646 */ 5950 5328 break; 5951 5329 5952 5330 case 183: 5953 5954 /* Line 1806 of yacc.c */ 5955 #line 835 "parser.yy" 5956 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5331 #line 835 "parser.yy" /* yacc.c:1646 */ 5332 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5333 #line 5334 "Parser/parser.cc" /* yacc.c:1646 */ 5957 5334 break; 5958 5335 5959 5336 case 184: 5960 5961 /* Line 1806 of yacc.c */ 5962 #line 840 "parser.yy" 5963 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5337 #line 840 "parser.yy" /* yacc.c:1646 */ 5338 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Goto ) ); } 5339 #line 5340 "Parser/parser.cc" /* yacc.c:1646 */ 5964 5340 break; 5965 5341 5966 5342 case 185: 5967 5968 /* Line 1806 of yacc.c */ 5969 #line 844 "parser.yy" 5970 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5343 #line 844 "parser.yy" /* yacc.c:1646 */ 5344 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5345 #line 5346 "Parser/parser.cc" /* yacc.c:1646 */ 5971 5346 break; 5972 5347 5973 5348 case 186: 5974 5975 /* Line 1806 of yacc.c */ 5976 #line 847 "parser.yy" 5349 #line 847 "parser.yy" /* yacc.c:1646 */ 5977 5350 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); } 5351 #line 5352 "Parser/parser.cc" /* yacc.c:1646 */ 5978 5352 break; 5979 5353 5980 5354 case 187: 5981 5982 /* Line 1806 of yacc.c */ 5983 #line 851 "parser.yy" 5984 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); } 5355 #line 851 "parser.yy" /* yacc.c:1646 */ 5356 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Continue ) ); } 5357 #line 5358 "Parser/parser.cc" /* yacc.c:1646 */ 5985 5358 break; 5986 5359 5987 5360 case 188: 5988 5989 /* Line 1806 of yacc.c */ 5990 #line 854 "parser.yy" 5361 #line 854 "parser.yy" /* yacc.c:1646 */ 5991 5362 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); } 5363 #line 5364 "Parser/parser.cc" /* yacc.c:1646 */ 5992 5364 break; 5993 5365 5994 5366 case 189: 5995 5996 /* Line 1806 of yacc.c */ 5997 #line 858 "parser.yy" 5998 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); } 5367 #line 858 "parser.yy" /* yacc.c:1646 */ 5368 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Break ) ); } 5369 #line 5370 "Parser/parser.cc" /* yacc.c:1646 */ 5999 5370 break; 6000 5371 6001 5372 case 190: 6002 6003 /* Line 1806 of yacc.c */ 6004 #line 860 "parser.yy" 6005 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5373 #line 860 "parser.yy" /* yacc.c:1646 */ 5374 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5375 #line 5376 "Parser/parser.cc" /* yacc.c:1646 */ 6006 5376 break; 6007 5377 6008 5378 case 191: 6009 6010 /* Line 1806 of yacc.c */ 6011 #line 862 "parser.yy" 6012 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5379 #line 862 "parser.yy" /* yacc.c:1646 */ 5380 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5381 #line 5382 "Parser/parser.cc" /* yacc.c:1646 */ 6013 5382 break; 6014 5383 6015 5384 case 192: 6016 6017 /* Line 1806 of yacc.c */ 6018 #line 864 "parser.yy" 6019 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5385 #line 864 "parser.yy" /* yacc.c:1646 */ 5386 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5387 #line 5388 "Parser/parser.cc" /* yacc.c:1646 */ 6020 5388 break; 6021 5389 6022 5390 case 193: 6023 6024 /* Line 1806 of yacc.c */ 6025 #line 866 "parser.yy" 6026 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5391 #line 866 "parser.yy" /* yacc.c:1646 */ 5392 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5393 #line 5394 "Parser/parser.cc" /* yacc.c:1646 */ 6027 5394 break; 6028 5395 6029 5396 case 194: 6030 6031 /* Line 1806 of yacc.c */ 6032 #line 871 "parser.yy" 6033 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5397 #line 871 "parser.yy" /* yacc.c:1646 */ 5398 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5399 #line 5400 "Parser/parser.cc" /* yacc.c:1646 */ 6034 5400 break; 6035 5401 6036 5402 case 195: 6037 6038 /* Line 1806 of yacc.c */ 6039 #line 873 "parser.yy" 6040 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5403 #line 873 "parser.yy" /* yacc.c:1646 */ 5404 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5405 #line 5406 "Parser/parser.cc" /* yacc.c:1646 */ 6041 5406 break; 6042 5407 6043 5408 case 196: 6044 6045 /* Line 1806 of yacc.c */ 6046 #line 875 "parser.yy" 6047 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5409 #line 875 "parser.yy" /* yacc.c:1646 */ 5410 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5411 #line 5412 "Parser/parser.cc" /* yacc.c:1646 */ 6048 5412 break; 6049 5413 6050 5414 case 198: 6051 6052 /* Line 1806 of yacc.c */ 6053 #line 882 "parser.yy" 6054 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5415 #line 882 "parser.yy" /* yacc.c:1646 */ 5416 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5417 #line 5418 "Parser/parser.cc" /* yacc.c:1646 */ 6055 5418 break; 6056 5419 6057 5420 case 199: 6058 6059 /* Line 1806 of yacc.c */ 6060 #line 884 "parser.yy" 6061 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5421 #line 884 "parser.yy" /* yacc.c:1646 */ 5422 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5423 #line 5424 "Parser/parser.cc" /* yacc.c:1646 */ 6062 5424 break; 6063 5425 6064 5426 case 200: 6065 6066 /* Line 1806 of yacc.c */ 6067 #line 886 "parser.yy" 6068 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5427 #line 886 "parser.yy" /* yacc.c:1646 */ 5428 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5429 #line 5430 "Parser/parser.cc" /* yacc.c:1646 */ 6069 5430 break; 6070 5431 6071 5432 case 201: 6072 6073 /* Line 1806 of yacc.c */ 6074 #line 888 "parser.yy" 6075 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5433 #line 888 "parser.yy" /* yacc.c:1646 */ 5434 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5435 #line 5436 "Parser/parser.cc" /* yacc.c:1646 */ 6076 5436 break; 6077 5437 6078 5438 case 202: 6079 6080 /* Line 1806 of yacc.c */ 6081 #line 893 "parser.yy" 6082 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5439 #line 893 "parser.yy" /* yacc.c:1646 */ 5440 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5441 #line 5442 "Parser/parser.cc" /* yacc.c:1646 */ 6083 5442 break; 6084 5443 6085 5444 case 203: 6086 6087 /* Line 1806 of yacc.c */ 6088 #line 895 "parser.yy" 6089 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5445 #line 895 "parser.yy" /* yacc.c:1646 */ 5446 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5447 #line 5448 "Parser/parser.cc" /* yacc.c:1646 */ 6090 5448 break; 6091 5449 6092 5450 case 204: 6093 6094 /* Line 1806 of yacc.c */ 6095 #line 897 "parser.yy" 6096 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5451 #line 897 "parser.yy" /* yacc.c:1646 */ 5452 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5453 #line 5454 "Parser/parser.cc" /* yacc.c:1646 */ 6097 5454 break; 6098 5455 6099 5456 case 205: 6100 6101 /* Line 1806 of yacc.c */ 6102 #line 899 "parser.yy" 6103 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5457 #line 899 "parser.yy" /* yacc.c:1646 */ 5458 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5459 #line 5460 "Parser/parser.cc" /* yacc.c:1646 */ 6104 5460 break; 6105 5461 6106 5462 case 206: 6107 6108 /* Line 1806 of yacc.c */ 6109 #line 904 "parser.yy" 6110 { 6111 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5463 #line 904 "parser.yy" /* yacc.c:1646 */ 5464 { 5465 (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) ); 6112 5466 } 5467 #line 5468 "Parser/parser.cc" /* yacc.c:1646 */ 6113 5468 break; 6114 5469 6115 5470 case 208: 6116 6117 /* Line 1806 of yacc.c */ 6118 #line 917 "parser.yy" 5471 #line 917 "parser.yy" /* yacc.c:1646 */ 6119 5472 { 6120 5473 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6121 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );5474 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 6122 5475 } 5476 #line 5477 "Parser/parser.cc" /* yacc.c:1646 */ 6123 5477 break; 6124 5478 6125 5479 case 209: 6126 6127 /* Line 1806 of yacc.c */ 6128 #line 922 "parser.yy" 6129 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5480 #line 922 "parser.yy" /* yacc.c:1646 */ 5481 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5482 #line 5483 "Parser/parser.cc" /* yacc.c:1646 */ 6130 5483 break; 6131 5484 6132 5485 case 210: 6133 6134 /* Line 1806 of yacc.c */ 6135 #line 924 "parser.yy" 5486 #line 924 "parser.yy" /* yacc.c:1646 */ 6136 5487 { 6137 5488 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6138 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );5489 (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); 6139 5490 } 5491 #line 5492 "Parser/parser.cc" /* yacc.c:1646 */ 6140 5492 break; 6141 5493 6142 5494 case 212: 6143 6144 /* Line 1806 of yacc.c */ 6145 #line 933 "parser.yy" 6146 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5495 #line 933 "parser.yy" /* yacc.c:1646 */ 5496 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5497 #line 5498 "Parser/parser.cc" /* yacc.c:1646 */ 6147 5498 break; 6148 5499 6149 5500 case 213: 6150 6151 /* Line 1806 of yacc.c */ 6152 #line 935 "parser.yy" 6153 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5501 #line 935 "parser.yy" /* yacc.c:1646 */ 5502 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5503 #line 5504 "Parser/parser.cc" /* yacc.c:1646 */ 6154 5504 break; 6155 5505 6156 5506 case 214: 6157 6158 /* Line 1806 of yacc.c */ 6159 #line 937 "parser.yy" 6160 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5507 #line 937 "parser.yy" /* yacc.c:1646 */ 5508 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5509 #line 5510 "Parser/parser.cc" /* yacc.c:1646 */ 6161 5510 break; 6162 5511 6163 5512 case 215: 6164 6165 /* Line 1806 of yacc.c */ 6166 #line 939 "parser.yy" 6167 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 5513 #line 939 "parser.yy" /* yacc.c:1646 */ 5514 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5515 #line 5516 "Parser/parser.cc" /* yacc.c:1646 */ 6168 5516 break; 6169 5517 6170 5518 case 216: 6171 6172 /* Line 1806 of yacc.c */ 6173 #line 941 "parser.yy" 6174 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 5519 #line 941 "parser.yy" /* yacc.c:1646 */ 5520 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5521 #line 5522 "Parser/parser.cc" /* yacc.c:1646 */ 6175 5522 break; 6176 5523 6177 5524 case 217: 6178 6179 /* Line 1806 of yacc.c */ 6180 #line 946 "parser.yy" 5525 #line 946 "parser.yy" /* yacc.c:1646 */ 6181 5526 { (yyval.flag) = false; } 5527 #line 5528 "Parser/parser.cc" /* yacc.c:1646 */ 6182 5528 break; 6183 5529 6184 5530 case 218: 6185 6186 /* Line 1806 of yacc.c */ 6187 #line 948 "parser.yy" 5531 #line 948 "parser.yy" /* yacc.c:1646 */ 6188 5532 { (yyval.flag) = true; } 5533 #line 5534 "Parser/parser.cc" /* yacc.c:1646 */ 6189 5534 break; 6190 5535 6191 5536 case 219: 6192 6193 /* Line 1806 of yacc.c */ 6194 #line 953 "parser.yy" 5537 #line 953 "parser.yy" /* yacc.c:1646 */ 6195 5538 { (yyval.en) = 0; } 5539 #line 5540 "Parser/parser.cc" /* yacc.c:1646 */ 6196 5540 break; 6197 5541 6198 5542 case 222: 6199 6200 /* Line 1806 of yacc.c */ 6201 #line 960 "parser.yy" 6202 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5543 #line 960 "parser.yy" /* yacc.c:1646 */ 5544 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5545 #line 5546 "Parser/parser.cc" /* yacc.c:1646 */ 6203 5546 break; 6204 5547 6205 5548 case 223: 6206 6207 /* Line 1806 of yacc.c */ 6208 #line 965 "parser.yy" 6209 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5549 #line 965 "parser.yy" /* yacc.c:1646 */ 5550 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5551 #line 5552 "Parser/parser.cc" /* yacc.c:1646 */ 6210 5552 break; 6211 5553 6212 5554 case 224: 6213 6214 /* Line 1806 of yacc.c */ 6215 #line 967 "parser.yy" 6216 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5555 #line 967 "parser.yy" /* yacc.c:1646 */ 5556 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5557 #line 5558 "Parser/parser.cc" /* yacc.c:1646 */ 6217 5558 break; 6218 5559 6219 5560 case 225: 6220 6221 /* Line 1806 of yacc.c */ 6222 #line 972 "parser.yy" 5561 #line 972 "parser.yy" /* yacc.c:1646 */ 6223 5562 { (yyval.en) = 0; } 5563 #line 5564 "Parser/parser.cc" /* yacc.c:1646 */ 6224 5564 break; 6225 5565 6226 5566 case 226: 6227 6228 /* Line 1806 of yacc.c */ 6229 #line 974 "parser.yy" 6230 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5567 #line 974 "parser.yy" /* yacc.c:1646 */ 5568 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5569 #line 5570 "Parser/parser.cc" /* yacc.c:1646 */ 6231 5570 break; 6232 5571 6233 5572 case 227: 6234 6235 /* Line 1806 of yacc.c */ 6236 #line 976 "parser.yy" 6237 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5573 #line 976 "parser.yy" /* yacc.c:1646 */ 5574 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5575 #line 5576 "Parser/parser.cc" /* yacc.c:1646 */ 6238 5576 break; 6239 5577 6240 5578 case 228: 6241 6242 /* Line 1806 of yacc.c */ 6243 #line 981 "parser.yy" 6244 { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); } 5579 #line 981 "parser.yy" /* yacc.c:1646 */ 5580 { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); } 5581 #line 5582 "Parser/parser.cc" /* yacc.c:1646 */ 6245 5582 break; 6246 5583 6247 5584 case 229: 6248 6249 /* Line 1806 of yacc.c */ 6250 #line 983 "parser.yy" 6251 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); } 5585 #line 983 "parser.yy" /* yacc.c:1646 */ 5586 { (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); } 5587 #line 5588 "Parser/parser.cc" /* yacc.c:1646 */ 6252 5588 break; 6253 5589 6254 5590 case 230: 6255 6256 /* Line 1806 of yacc.c */ 6257 #line 990 "parser.yy" 5591 #line 990 "parser.yy" /* yacc.c:1646 */ 6258 5592 { (yyval.decl) = 0; } 5593 #line 5594 "Parser/parser.cc" /* yacc.c:1646 */ 6259 5594 break; 6260 5595 6261 5596 case 233: 6262 6263 /* Line 1806 of yacc.c */ 6264 #line 997 "parser.yy" 6265 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5597 #line 997 "parser.yy" /* yacc.c:1646 */ 5598 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5599 #line 5600 "Parser/parser.cc" /* yacc.c:1646 */ 6266 5600 break; 6267 5601 6268 5602 case 234: 6269 6270 /* Line 1806 of yacc.c */ 6271 #line 1002 "parser.yy" 5603 #line 1002 "parser.yy" /* yacc.c:1646 */ 6272 5604 { (yyval.decl) = 0; } 5605 #line 5606 "Parser/parser.cc" /* yacc.c:1646 */ 6273 5606 break; 6274 5607 6275 5608 case 237: 6276 6277 /* Line 1806 of yacc.c */ 6278 #line 1009 "parser.yy" 6279 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5609 #line 1009 "parser.yy" /* yacc.c:1646 */ 5610 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5611 #line 5612 "Parser/parser.cc" /* yacc.c:1646 */ 6280 5612 break; 6281 5613 6282 5614 case 242: 6283 6284 /* Line 1806 of yacc.c */ 6285 #line 1023 "parser.yy" 5615 #line 1023 "parser.yy" /* yacc.c:1646 */ 6286 5616 {} 5617 #line 5618 "Parser/parser.cc" /* yacc.c:1646 */ 6287 5618 break; 6288 5619 6289 5620 case 243: 6290 6291 /* Line 1806 of yacc.c */ 6292 #line 1024 "parser.yy" 5621 #line 1024 "parser.yy" /* yacc.c:1646 */ 6293 5622 {} 5623 #line 5624 "Parser/parser.cc" /* yacc.c:1646 */ 6294 5624 break; 6295 5625 6296 5626 case 251: 6297 6298 /* Line 1806 of yacc.c */ 6299 #line 1053 "parser.yy" 5627 #line 1053 "parser.yy" /* yacc.c:1646 */ 6300 5628 { 6301 5629 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6302 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );5630 (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) ); 6303 5631 } 5632 #line 5633 "Parser/parser.cc" /* yacc.c:1646 */ 6304 5633 break; 6305 5634 6306 5635 case 252: 6307 6308 /* Line 1806 of yacc.c */ 6309 #line 1060 "parser.yy" 5636 #line 1060 "parser.yy" /* yacc.c:1646 */ 6310 5637 { 6311 5638 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6312 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;5639 (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );; 6313 5640 } 5641 #line 5642 "Parser/parser.cc" /* yacc.c:1646 */ 6314 5642 break; 6315 5643 6316 5644 case 253: 6317 6318 /* Line 1806 of yacc.c */ 6319 #line 1065 "parser.yy" 6320 { 6321 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6322 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5645 #line 1065 "parser.yy" /* yacc.c:1646 */ 5646 { 5647 typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID ); 5648 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) ); 6323 5649 } 5650 #line 5651 "Parser/parser.cc" /* yacc.c:1646 */ 6324 5651 break; 6325 5652 6326 5653 case 254: 6327 6328 /* Line 1806 of yacc.c */ 6329 #line 1075 "parser.yy" 6330 { 6331 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6332 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5654 #line 1075 "parser.yy" /* yacc.c:1646 */ 5655 { 5656 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5657 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6333 5658 } 5659 #line 5660 "Parser/parser.cc" /* yacc.c:1646 */ 6334 5660 break; 6335 5661 6336 5662 case 255: 6337 6338 /* Line 1806 of yacc.c */ 6339 #line 1080 "parser.yy" 6340 { 6341 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6342 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5663 #line 1080 "parser.yy" /* yacc.c:1646 */ 5664 { 5665 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5666 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6343 5667 } 5668 #line 5669 "Parser/parser.cc" /* yacc.c:1646 */ 6344 5669 break; 6345 5670 6346 5671 case 256: 6347 6348 /* Line 1806 of yacc.c */ 6349 #line 1085 "parser.yy" 6350 { 6351 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6352 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5672 #line 1085 "parser.yy" /* yacc.c:1646 */ 5673 { 5674 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5675 (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) ); 6353 5676 } 5677 #line 5678 "Parser/parser.cc" /* yacc.c:1646 */ 6354 5678 break; 6355 5679 6356 5680 case 257: 6357 6358 /* Line 1806 of yacc.c */ 6359 #line 1093 "parser.yy" 5681 #line 1093 "parser.yy" /* yacc.c:1646 */ 6360 5682 { 6361 5683 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6362 (yyval.decl) = (yyvsp[ (1) - (1)].decl);5684 (yyval.decl) = (yyvsp[0].decl); 6363 5685 } 5686 #line 5687 "Parser/parser.cc" /* yacc.c:1646 */ 6364 5687 break; 6365 5688 6366 5689 case 258: 6367 6368 /* Line 1806 of yacc.c */ 6369 #line 1098 "parser.yy" 5690 #line 1098 "parser.yy" /* yacc.c:1646 */ 6370 5691 { 6371 5692 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6372 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5693 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6373 5694 } 5695 #line 5696 "Parser/parser.cc" /* yacc.c:1646 */ 6374 5696 break; 6375 5697 6376 5698 case 259: 6377 6378 /* Line 1806 of yacc.c */ 6379 #line 1103 "parser.yy" 5699 #line 1103 "parser.yy" /* yacc.c:1646 */ 6380 5700 { 6381 5701 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6382 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5702 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6383 5703 } 5704 #line 5705 "Parser/parser.cc" /* yacc.c:1646 */ 6384 5705 break; 6385 5706 6386 5707 case 260: 6387 6388 /* Line 1806 of yacc.c */ 6389 #line 1108 "parser.yy" 5708 #line 1108 "parser.yy" /* yacc.c:1646 */ 6390 5709 { 6391 5710 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6392 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );5711 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) ); 6393 5712 } 5713 #line 5714 "Parser/parser.cc" /* yacc.c:1646 */ 6394 5714 break; 6395 5715 6396 5716 case 261: 6397 6398 /* Line 1806 of yacc.c */ 6399 #line 1113 "parser.yy" 6400 { 6401 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6402 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5717 #line 1113 "parser.yy" /* yacc.c:1646 */ 5718 { 5719 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID ); 5720 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6403 5721 } 5722 #line 5723 "Parser/parser.cc" /* yacc.c:1646 */ 6404 5723 break; 6405 5724 6406 5725 case 262: 6407 6408 /* Line 1806 of yacc.c */ 6409 #line 1121 "parser.yy" 6410 { 6411 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5726 #line 1121 "parser.yy" /* yacc.c:1646 */ 5727 { 5728 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true ); 6412 5729 } 5730 #line 5731 "Parser/parser.cc" /* yacc.c:1646 */ 6413 5731 break; 6414 5732 6415 5733 case 263: 6416 6417 /* Line 1806 of yacc.c */ 6418 #line 1144 "parser.yy" 6419 { 6420 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5734 #line 1144 "parser.yy" /* yacc.c:1646 */ 5735 { 5736 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6421 5737 } 5738 #line 5739 "Parser/parser.cc" /* yacc.c:1646 */ 6422 5739 break; 6423 5740 6424 5741 case 264: 6425 6426 /* Line 1806 of yacc.c */ 6427 #line 1148 "parser.yy" 6428 { 6429 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5742 #line 1148 "parser.yy" /* yacc.c:1646 */ 5743 { 5744 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6430 5745 } 5746 #line 5747 "Parser/parser.cc" /* yacc.c:1646 */ 6431 5747 break; 6432 5748 6433 5749 case 265: 6434 6435 /* Line 1806 of yacc.c */ 6436 #line 1155 "parser.yy" 6437 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5750 #line 1155 "parser.yy" /* yacc.c:1646 */ 5751 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5752 #line 5753 "Parser/parser.cc" /* yacc.c:1646 */ 6438 5753 break; 6439 5754 6440 5755 case 266: 6441 6442 /* Line 1806 of yacc.c */ 6443 #line 1159 "parser.yy" 6444 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5756 #line 1159 "parser.yy" /* yacc.c:1646 */ 5757 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5758 #line 5759 "Parser/parser.cc" /* yacc.c:1646 */ 6445 5759 break; 6446 5760 6447 5761 case 267: 6448 6449 /* Line 1806 of yacc.c */ 6450 #line 1164 "parser.yy" 5762 #line 1164 "parser.yy" /* yacc.c:1646 */ 6451 5763 { 6452 5764 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6453 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5765 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6454 5766 } 5767 #line 5768 "Parser/parser.cc" /* yacc.c:1646 */ 6455 5768 break; 6456 5769 6457 5770 case 268: 6458 6459 /* Line 1806 of yacc.c */ 6460 #line 1169 "parser.yy" 5771 #line 1169 "parser.yy" /* yacc.c:1646 */ 6461 5772 { 6462 5773 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6463 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5774 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6464 5775 } 5776 #line 5777 "Parser/parser.cc" /* yacc.c:1646 */ 6465 5777 break; 6466 5778 6467 5779 case 269: 6468 6469 /* Line 1806 of yacc.c */ 6470 #line 1174 "parser.yy" 6471 { 6472 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6473 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5780 #line 1174 "parser.yy" /* yacc.c:1646 */ 5781 { 5782 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 5783 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6474 5784 } 5785 #line 5786 "Parser/parser.cc" /* yacc.c:1646 */ 6475 5786 break; 6476 5787 6477 5788 case 270: 6478 6479 /* Line 1806 of yacc.c */ 6480 #line 1185 "parser.yy" 5789 #line 1185 "parser.yy" /* yacc.c:1646 */ 6481 5790 { 6482 5791 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6483 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();5792 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef(); 6484 5793 } 5794 #line 5795 "Parser/parser.cc" /* yacc.c:1646 */ 6485 5795 break; 6486 5796 6487 5797 case 271: 6488 6489 /* Line 1806 of yacc.c */ 6490 #line 1190 "parser.yy" 5798 #line 1190 "parser.yy" /* yacc.c:1646 */ 6491 5799 { 6492 5800 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6493 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );5801 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() ); 6494 5802 } 5803 #line 5804 "Parser/parser.cc" /* yacc.c:1646 */ 6495 5804 break; 6496 5805 6497 5806 case 272: 6498 6499 /* Line 1806 of yacc.c */ 6500 #line 1195 "parser.yy" 5807 #line 1195 "parser.yy" /* yacc.c:1646 */ 6501 5808 { 6502 5809 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6503 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();5810 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef(); 6504 5811 } 5812 #line 5813 "Parser/parser.cc" /* yacc.c:1646 */ 6505 5813 break; 6506 5814 6507 5815 case 273: 6508 6509 /* Line 1806 of yacc.c */ 6510 #line 1200 "parser.yy" 5816 #line 1200 "parser.yy" /* yacc.c:1646 */ 6511 5817 { 6512 5818 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6513 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();5819 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef(); 6514 5820 } 5821 #line 5822 "Parser/parser.cc" /* yacc.c:1646 */ 6515 5822 break; 6516 5823 6517 5824 case 274: 6518 6519 /* Line 1806 of yacc.c */ 6520 #line 1205 "parser.yy" 5825 #line 1205 "parser.yy" /* yacc.c:1646 */ 6521 5826 { 6522 5827 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6523 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );5828 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) ); 6524 5829 } 5830 #line 5831 "Parser/parser.cc" /* yacc.c:1646 */ 6525 5831 break; 6526 5832 6527 5833 case 275: 6528 6529 /* Line 1806 of yacc.c */ 6530 #line 1214 "parser.yy" 6531 { 6532 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5834 #line 1214 "parser.yy" /* yacc.c:1646 */ 5835 { 5836 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6533 5837 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6534 5838 } 5839 #line 5840 "Parser/parser.cc" /* yacc.c:1646 */ 6535 5840 break; 6536 5841 6537 5842 case 276: 6538 6539 /* Line 1806 of yacc.c */ 6540 #line 1219 "parser.yy" 6541 { 6542 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5843 #line 1219 "parser.yy" /* yacc.c:1646 */ 5844 { 5845 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6543 5846 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6544 5847 } 5848 #line 5849 "Parser/parser.cc" /* yacc.c:1646 */ 6545 5849 break; 6546 5850 6547 5851 case 281: 6548 6549 /* Line 1806 of yacc.c */ 6550 #line 1236 "parser.yy" 5852 #line 1236 "parser.yy" /* yacc.c:1646 */ 6551 5853 { 6552 5854 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6553 (yyval.decl) = ( (yyvsp[ (2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );5855 (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) ); 6554 5856 } 5857 #line 5858 "Parser/parser.cc" /* yacc.c:1646 */ 6555 5858 break; 6556 5859 6557 5860 case 282: 6558 6559 /* Line 1806 of yacc.c */ 6560 #line 1241 "parser.yy" 5861 #line 1241 "parser.yy" /* yacc.c:1646 */ 6561 5862 { 6562 5863 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6563 (yyval.decl) = (yyvsp[ (1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );5864 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) ); 6564 5865 } 5866 #line 5867 "Parser/parser.cc" /* yacc.c:1646 */ 6565 5867 break; 6566 5868 6567 5869 case 291: 6568 6569 /* Line 1806 of yacc.c */ 6570 #line 1263 "parser.yy" 5870 #line 1263 "parser.yy" /* yacc.c:1646 */ 6571 5871 { (yyval.decl) = 0; } 5872 #line 5873 "Parser/parser.cc" /* yacc.c:1646 */ 6572 5873 break; 6573 5874 6574 5875 case 294: 6575 6576 /* Line 1806 of yacc.c */ 6577 #line 1275 "parser.yy" 6578 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5876 #line 1275 "parser.yy" /* yacc.c:1646 */ 5877 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5878 #line 5879 "Parser/parser.cc" /* yacc.c:1646 */ 6579 5879 break; 6580 5880 6581 5881 case 297: 6582 6583 /* Line 1806 of yacc.c */ 6584 #line 1286 "parser.yy" 5882 #line 1286 "parser.yy" /* yacc.c:1646 */ 6585 5883 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5884 #line 5885 "Parser/parser.cc" /* yacc.c:1646 */ 6586 5885 break; 6587 5886 6588 5887 case 298: 6589 6590 /* Line 1806 of yacc.c */ 6591 #line 1288 "parser.yy" 5888 #line 1288 "parser.yy" /* yacc.c:1646 */ 6592 5889 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5890 #line 5891 "Parser/parser.cc" /* yacc.c:1646 */ 6593 5891 break; 6594 5892 6595 5893 case 299: 6596 6597 /* Line 1806 of yacc.c */ 6598 #line 1290 "parser.yy" 5894 #line 1290 "parser.yy" /* yacc.c:1646 */ 6599 5895 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5896 #line 5897 "Parser/parser.cc" /* yacc.c:1646 */ 6600 5897 break; 6601 5898 6602 5899 case 300: 6603 6604 /* Line 1806 of yacc.c */ 6605 #line 1292 "parser.yy" 5900 #line 1292 "parser.yy" /* yacc.c:1646 */ 6606 5901 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5902 #line 5903 "Parser/parser.cc" /* yacc.c:1646 */ 6607 5903 break; 6608 5904 6609 5905 case 301: 6610 6611 /* Line 1806 of yacc.c */ 6612 #line 1294 "parser.yy" 5906 #line 1294 "parser.yy" /* yacc.c:1646 */ 6613 5907 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5908 #line 5909 "Parser/parser.cc" /* yacc.c:1646 */ 6614 5909 break; 6615 5910 6616 5911 case 302: 6617 6618 /* Line 1806 of yacc.c */ 6619 #line 1296 "parser.yy" 5912 #line 1296 "parser.yy" /* yacc.c:1646 */ 6620 5913 { 6621 5914 typedefTable.enterScope(); 6622 5915 } 5916 #line 5917 "Parser/parser.cc" /* yacc.c:1646 */ 6623 5917 break; 6624 5918 6625 5919 case 303: 6626 6627 /* Line 1806 of yacc.c */ 6628 #line 1300 "parser.yy" 5920 #line 1300 "parser.yy" /* yacc.c:1646 */ 6629 5921 { 6630 5922 typedefTable.leaveScope(); 6631 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ (4) - (5)].decl) );5923 (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) ); 6632 5924 } 5925 #line 5926 "Parser/parser.cc" /* yacc.c:1646 */ 6633 5926 break; 6634 5927 6635 5928 case 305: 6636 6637 /* Line 1806 of yacc.c */ 6638 #line 1309 "parser.yy" 6639 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5929 #line 1309 "parser.yy" /* yacc.c:1646 */ 5930 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5931 #line 5932 "Parser/parser.cc" /* yacc.c:1646 */ 6640 5932 break; 6641 5933 6642 5934 case 306: 6643 6644 /* Line 1806 of yacc.c */ 6645 #line 1311 "parser.yy" 6646 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5935 #line 1311 "parser.yy" /* yacc.c:1646 */ 5936 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5937 #line 5938 "Parser/parser.cc" /* yacc.c:1646 */ 6647 5938 break; 6648 5939 6649 5940 case 308: 6650 6651 /* Line 1806 of yacc.c */ 6652 #line 1322 "parser.yy" 6653 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5941 #line 1322 "parser.yy" /* yacc.c:1646 */ 5942 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5943 #line 5944 "Parser/parser.cc" /* yacc.c:1646 */ 6654 5944 break; 6655 5945 6656 5946 case 309: 6657 6658 /* Line 1806 of yacc.c */ 6659 #line 1327 "parser.yy" 5947 #line 1327 "parser.yy" /* yacc.c:1646 */ 6660 5948 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5949 #line 5950 "Parser/parser.cc" /* yacc.c:1646 */ 6661 5950 break; 6662 5951 6663 5952 case 310: 6664 6665 /* Line 1806 of yacc.c */ 6666 #line 1329 "parser.yy" 5953 #line 1329 "parser.yy" /* yacc.c:1646 */ 6667 5954 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5955 #line 5956 "Parser/parser.cc" /* yacc.c:1646 */ 6668 5956 break; 6669 5957 6670 5958 case 311: 6671 6672 /* Line 1806 of yacc.c */ 6673 #line 1331 "parser.yy" 5959 #line 1331 "parser.yy" /* yacc.c:1646 */ 6674 5960 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5961 #line 5962 "Parser/parser.cc" /* yacc.c:1646 */ 6675 5962 break; 6676 5963 6677 5964 case 312: 6678 6679 /* Line 1806 of yacc.c */ 6680 #line 1333 "parser.yy" 5965 #line 1333 "parser.yy" /* yacc.c:1646 */ 6681 5966 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5967 #line 5968 "Parser/parser.cc" /* yacc.c:1646 */ 6682 5968 break; 6683 5969 6684 5970 case 313: 6685 6686 /* Line 1806 of yacc.c */ 6687 #line 1335 "parser.yy" 5971 #line 1335 "parser.yy" /* yacc.c:1646 */ 6688 5972 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 5973 #line 5974 "Parser/parser.cc" /* yacc.c:1646 */ 6689 5974 break; 6690 5975 6691 5976 case 314: 6692 6693 /* Line 1806 of yacc.c */ 6694 #line 1337 "parser.yy" 5977 #line 1337 "parser.yy" /* yacc.c:1646 */ 6695 5978 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5979 #line 5980 "Parser/parser.cc" /* yacc.c:1646 */ 6696 5980 break; 6697 5981 6698 5982 case 315: 6699 6700 /* Line 1806 of yacc.c */ 6701 #line 1339 "parser.yy" 5983 #line 1339 "parser.yy" /* yacc.c:1646 */ 6702 5984 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 5985 #line 5986 "Parser/parser.cc" /* yacc.c:1646 */ 6703 5986 break; 6704 5987 6705 5988 case 316: 6706 6707 /* Line 1806 of yacc.c */ 6708 #line 1341 "parser.yy" 5989 #line 1341 "parser.yy" /* yacc.c:1646 */ 6709 5990 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5991 #line 5992 "Parser/parser.cc" /* yacc.c:1646 */ 6710 5992 break; 6711 5993 6712 5994 case 317: 6713 6714 /* Line 1806 of yacc.c */ 6715 #line 1346 "parser.yy" 5995 #line 1346 "parser.yy" /* yacc.c:1646 */ 6716 5996 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5997 #line 5998 "Parser/parser.cc" /* yacc.c:1646 */ 6717 5998 break; 6718 5999 6719 6000 case 318: 6720 6721 /* Line 1806 of yacc.c */ 6722 #line 1348 "parser.yy" 6001 #line 1348 "parser.yy" /* yacc.c:1646 */ 6723 6002 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6003 #line 6004 "Parser/parser.cc" /* yacc.c:1646 */ 6724 6004 break; 6725 6005 6726 6006 case 319: 6727 6728 /* Line 1806 of yacc.c */ 6729 #line 1350 "parser.yy" 6007 #line 1350 "parser.yy" /* yacc.c:1646 */ 6730 6008 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6009 #line 6010 "Parser/parser.cc" /* yacc.c:1646 */ 6731 6010 break; 6732 6011 6733 6012 case 320: 6734 6735 /* Line 1806 of yacc.c */ 6736 #line 1352 "parser.yy" 6013 #line 1352 "parser.yy" /* yacc.c:1646 */ 6737 6014 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6015 #line 6016 "Parser/parser.cc" /* yacc.c:1646 */ 6738 6016 break; 6739 6017 6740 6018 case 321: 6741 6742 /* Line 1806 of yacc.c */ 6743 #line 1354 "parser.yy" 6019 #line 1354 "parser.yy" /* yacc.c:1646 */ 6744 6020 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6021 #line 6022 "Parser/parser.cc" /* yacc.c:1646 */ 6745 6022 break; 6746 6023 6747 6024 case 322: 6748 6749 /* Line 1806 of yacc.c */ 6750 #line 1356 "parser.yy" 6025 #line 1356 "parser.yy" /* yacc.c:1646 */ 6751 6026 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6027 #line 6028 "Parser/parser.cc" /* yacc.c:1646 */ 6752 6028 break; 6753 6029 6754 6030 case 323: 6755 6756 /* Line 1806 of yacc.c */ 6757 #line 1358 "parser.yy" 6031 #line 1358 "parser.yy" /* yacc.c:1646 */ 6758 6032 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6033 #line 6034 "Parser/parser.cc" /* yacc.c:1646 */ 6759 6034 break; 6760 6035 6761 6036 case 324: 6762 6763 /* Line 1806 of yacc.c */ 6764 #line 1360 "parser.yy" 6037 #line 1360 "parser.yy" /* yacc.c:1646 */ 6765 6038 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6039 #line 6040 "Parser/parser.cc" /* yacc.c:1646 */ 6766 6040 break; 6767 6041 6768 6042 case 325: 6769 6770 /* Line 1806 of yacc.c */ 6771 #line 1362 "parser.yy" 6043 #line 1362 "parser.yy" /* yacc.c:1646 */ 6772 6044 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6045 #line 6046 "Parser/parser.cc" /* yacc.c:1646 */ 6773 6046 break; 6774 6047 6775 6048 case 326: 6776 6777 /* Line 1806 of yacc.c */ 6778 #line 1364 "parser.yy" 6049 #line 1364 "parser.yy" /* yacc.c:1646 */ 6779 6050 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6051 #line 6052 "Parser/parser.cc" /* yacc.c:1646 */ 6780 6052 break; 6781 6053 6782 6054 case 327: 6783 6784 /* Line 1806 of yacc.c */ 6785 #line 1366 "parser.yy" 6055 #line 1366 "parser.yy" /* yacc.c:1646 */ 6786 6056 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6057 #line 6058 "Parser/parser.cc" /* yacc.c:1646 */ 6787 6058 break; 6788 6059 6789 6060 case 328: 6790 6791 /* Line 1806 of yacc.c */ 6792 #line 1368 "parser.yy" 6061 #line 1368 "parser.yy" /* yacc.c:1646 */ 6793 6062 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6063 #line 6064 "Parser/parser.cc" /* yacc.c:1646 */ 6794 6064 break; 6795 6065 6796 6066 case 329: 6797 6798 /* Line 1806 of yacc.c */ 6799 #line 1370 "parser.yy" 6067 #line 1370 "parser.yy" /* yacc.c:1646 */ 6800 6068 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6069 #line 6070 "Parser/parser.cc" /* yacc.c:1646 */ 6801 6070 break; 6802 6071 6803 6072 case 331: 6804 6805 /* Line 1806 of yacc.c */ 6806 #line 1377 "parser.yy" 6807 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6073 #line 1377 "parser.yy" /* yacc.c:1646 */ 6074 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6075 #line 6076 "Parser/parser.cc" /* yacc.c:1646 */ 6808 6076 break; 6809 6077 6810 6078 case 332: 6811 6812 /* Line 1806 of yacc.c */ 6813 #line 1379 "parser.yy" 6814 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6079 #line 1379 "parser.yy" /* yacc.c:1646 */ 6080 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6081 #line 6082 "Parser/parser.cc" /* yacc.c:1646 */ 6815 6082 break; 6816 6083 6817 6084 case 333: 6818 6819 /* Line 1806 of yacc.c */ 6820 #line 1381 "parser.yy" 6821 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6085 #line 1381 "parser.yy" /* yacc.c:1646 */ 6086 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6087 #line 6088 "Parser/parser.cc" /* yacc.c:1646 */ 6822 6088 break; 6823 6089 6824 6090 case 334: 6825 6826 /* Line 1806 of yacc.c */ 6827 #line 1383 "parser.yy" 6828 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6091 #line 1383 "parser.yy" /* yacc.c:1646 */ 6092 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6093 #line 6094 "Parser/parser.cc" /* yacc.c:1646 */ 6829 6094 break; 6830 6095 6831 6096 case 336: 6832 6833 /* Line 1806 of yacc.c */ 6834 #line 1389 "parser.yy" 6835 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6097 #line 1389 "parser.yy" /* yacc.c:1646 */ 6098 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6099 #line 6100 "Parser/parser.cc" /* yacc.c:1646 */ 6836 6100 break; 6837 6101 6838 6102 case 338: 6839 6840 /* Line 1806 of yacc.c */ 6841 #line 1396 "parser.yy" 6842 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6103 #line 1396 "parser.yy" /* yacc.c:1646 */ 6104 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6105 #line 6106 "Parser/parser.cc" /* yacc.c:1646 */ 6843 6106 break; 6844 6107 6845 6108 case 339: 6846 6847 /* Line 1806 of yacc.c */ 6848 #line 1398 "parser.yy" 6849 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6109 #line 1398 "parser.yy" /* yacc.c:1646 */ 6110 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6111 #line 6112 "Parser/parser.cc" /* yacc.c:1646 */ 6850 6112 break; 6851 6113 6852 6114 case 340: 6853 6854 /* Line 1806 of yacc.c */ 6855 #line 1400 "parser.yy" 6856 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6115 #line 1400 "parser.yy" /* yacc.c:1646 */ 6116 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6117 #line 6118 "Parser/parser.cc" /* yacc.c:1646 */ 6857 6118 break; 6858 6119 6859 6120 case 341: 6860 6861 /* Line 1806 of yacc.c */ 6862 #line 1405 "parser.yy" 6863 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6121 #line 1405 "parser.yy" /* yacc.c:1646 */ 6122 { (yyval.decl) = (yyvsp[-1].decl); } 6123 #line 6124 "Parser/parser.cc" /* yacc.c:1646 */ 6864 6124 break; 6865 6125 6866 6126 case 342: 6867 6868 /* Line 1806 of yacc.c */ 6869 #line 1407 "parser.yy" 6870 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6127 #line 1407 "parser.yy" /* yacc.c:1646 */ 6128 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6129 #line 6130 "Parser/parser.cc" /* yacc.c:1646 */ 6871 6130 break; 6872 6131 6873 6132 case 343: 6874 6875 /* Line 1806 of yacc.c */ 6876 #line 1409 "parser.yy" 6877 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6133 #line 1409 "parser.yy" /* yacc.c:1646 */ 6134 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6135 #line 6136 "Parser/parser.cc" /* yacc.c:1646 */ 6878 6136 break; 6879 6137 6880 6138 case 344: 6881 6882 /* Line 1806 of yacc.c */ 6883 #line 1411 "parser.yy" 6884 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6139 #line 1411 "parser.yy" /* yacc.c:1646 */ 6140 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6141 #line 6142 "Parser/parser.cc" /* yacc.c:1646 */ 6885 6142 break; 6886 6143 6887 6144 case 346: 6888 6889 /* Line 1806 of yacc.c */ 6890 #line 1417 "parser.yy" 6891 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6145 #line 1417 "parser.yy" /* yacc.c:1646 */ 6146 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6147 #line 6148 "Parser/parser.cc" /* yacc.c:1646 */ 6892 6148 break; 6893 6149 6894 6150 case 347: 6895 6896 /* Line 1806 of yacc.c */ 6897 #line 1419 "parser.yy" 6898 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6151 #line 1419 "parser.yy" /* yacc.c:1646 */ 6152 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6153 #line 6154 "Parser/parser.cc" /* yacc.c:1646 */ 6899 6154 break; 6900 6155 6901 6156 case 348: 6902 6903 /* Line 1806 of yacc.c */ 6904 #line 1421 "parser.yy" 6905 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6157 #line 1421 "parser.yy" /* yacc.c:1646 */ 6158 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6159 #line 6160 "Parser/parser.cc" /* yacc.c:1646 */ 6906 6160 break; 6907 6161 6908 6162 case 350: 6909 6910 /* Line 1806 of yacc.c */ 6911 #line 1427 "parser.yy" 6912 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6163 #line 1427 "parser.yy" /* yacc.c:1646 */ 6164 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6165 #line 6166 "Parser/parser.cc" /* yacc.c:1646 */ 6913 6166 break; 6914 6167 6915 6168 case 351: 6916 6917 /* Line 1806 of yacc.c */ 6918 #line 1429 "parser.yy" 6919 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6169 #line 1429 "parser.yy" /* yacc.c:1646 */ 6170 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6171 #line 6172 "Parser/parser.cc" /* yacc.c:1646 */ 6920 6172 break; 6921 6173 6922 6174 case 353: 6923 6924 /* Line 1806 of yacc.c */ 6925 #line 1435 "parser.yy" 6926 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6175 #line 1435 "parser.yy" /* yacc.c:1646 */ 6176 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6177 #line 6178 "Parser/parser.cc" /* yacc.c:1646 */ 6927 6178 break; 6928 6179 6929 6180 case 354: 6930 6931 /* Line 1806 of yacc.c */ 6932 #line 1437 "parser.yy" 6933 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6181 #line 1437 "parser.yy" /* yacc.c:1646 */ 6182 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6183 #line 6184 "Parser/parser.cc" /* yacc.c:1646 */ 6934 6184 break; 6935 6185 6936 6186 case 355: 6937 6938 /* Line 1806 of yacc.c */ 6939 #line 1439 "parser.yy" 6940 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6187 #line 1439 "parser.yy" /* yacc.c:1646 */ 6188 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6189 #line 6190 "Parser/parser.cc" /* yacc.c:1646 */ 6941 6190 break; 6942 6191 6943 6192 case 356: 6944 6945 /* Line 1806 of yacc.c */ 6946 #line 1444 "parser.yy" 6947 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6193 #line 1444 "parser.yy" /* yacc.c:1646 */ 6194 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6195 #line 6196 "Parser/parser.cc" /* yacc.c:1646 */ 6948 6196 break; 6949 6197 6950 6198 case 357: 6951 6952 /* Line 1806 of yacc.c */ 6953 #line 1446 "parser.yy" 6954 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6199 #line 1446 "parser.yy" /* yacc.c:1646 */ 6200 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6201 #line 6202 "Parser/parser.cc" /* yacc.c:1646 */ 6955 6202 break; 6956 6203 6957 6204 case 358: 6958 6959 /* Line 1806 of yacc.c */ 6960 #line 1448 "parser.yy" 6961 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6205 #line 1448 "parser.yy" /* yacc.c:1646 */ 6206 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6207 #line 6208 "Parser/parser.cc" /* yacc.c:1646 */ 6962 6208 break; 6963 6209 6964 6210 case 361: 6965 6966 /* Line 1806 of yacc.c */ 6967 #line 1458 "parser.yy" 6968 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6211 #line 1458 "parser.yy" /* yacc.c:1646 */ 6212 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); } 6213 #line 6214 "Parser/parser.cc" /* yacc.c:1646 */ 6969 6214 break; 6970 6215 6971 6216 case 362: 6972 6973 /* Line 1806 of yacc.c */ 6974 #line 1460 "parser.yy" 6975 { 6976 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6977 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false ); 6217 #line 1460 "parser.yy" /* yacc.c:1646 */ 6218 { 6219 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6220 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false ); 6978 6221 } 6222 #line 6223 "Parser/parser.cc" /* yacc.c:1646 */ 6979 6223 break; 6980 6224 6981 6225 case 363: 6982 6983 /* Line 1806 of yacc.c */ 6984 #line 1465 "parser.yy" 6985 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6226 #line 1465 "parser.yy" /* yacc.c:1646 */ 6227 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6228 #line 6229 "Parser/parser.cc" /* yacc.c:1646 */ 6986 6229 break; 6987 6230 6988 6231 case 364: 6989 6990 /* Line 1806 of yacc.c */ 6991 #line 1467 "parser.yy" 6992 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6232 #line 1467 "parser.yy" /* yacc.c:1646 */ 6233 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); } 6234 #line 6235 "Parser/parser.cc" /* yacc.c:1646 */ 6993 6235 break; 6994 6236 6995 6237 case 365: 6996 6997 /* Line 1806 of yacc.c */ 6998 #line 1469 "parser.yy" 6999 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6238 #line 1469 "parser.yy" /* yacc.c:1646 */ 6239 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6240 #line 6241 "Parser/parser.cc" /* yacc.c:1646 */ 7000 6241 break; 7001 6242 7002 6243 case 366: 7003 7004 /* Line 1806 of yacc.c */ 7005 #line 1471 "parser.yy" 7006 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6244 #line 1471 "parser.yy" /* yacc.c:1646 */ 6245 { (yyval.decl) = (yyvsp[0].decl); } 6246 #line 6247 "Parser/parser.cc" /* yacc.c:1646 */ 7007 6247 break; 7008 6248 7009 6249 case 367: 7010 7011 /* Line 1806 of yacc.c */ 7012 #line 1476 "parser.yy" 6250 #line 1476 "parser.yy" /* yacc.c:1646 */ 7013 6251 { (yyval.aggKey) = DeclarationNode::Struct; } 6252 #line 6253 "Parser/parser.cc" /* yacc.c:1646 */ 7014 6253 break; 7015 6254 7016 6255 case 368: 7017 7018 /* Line 1806 of yacc.c */ 7019 #line 1478 "parser.yy" 6256 #line 1478 "parser.yy" /* yacc.c:1646 */ 7020 6257 { (yyval.aggKey) = DeclarationNode::Union; } 6258 #line 6259 "Parser/parser.cc" /* yacc.c:1646 */ 7021 6259 break; 7022 6260 7023 6261 case 369: 7024 7025 /* Line 1806 of yacc.c */ 7026 #line 1483 "parser.yy" 6262 #line 1483 "parser.yy" /* yacc.c:1646 */ 7027 6263 { (yyval.decl) = 0; } 6264 #line 6265 "Parser/parser.cc" /* yacc.c:1646 */ 7028 6265 break; 7029 6266 7030 6267 case 370: 7031 7032 /* Line 1806 of yacc.c */ 7033 #line 1485 "parser.yy" 7034 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6268 #line 1485 "parser.yy" /* yacc.c:1646 */ 6269 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6270 #line 6271 "Parser/parser.cc" /* yacc.c:1646 */ 7035 6271 break; 7036 6272 7037 6273 case 372: 7038 7039 /* Line 1806 of yacc.c */ 7040 #line 1491 "parser.yy" 7041 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6274 #line 1491 "parser.yy" /* yacc.c:1646 */ 6275 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6276 #line 6277 "Parser/parser.cc" /* yacc.c:1646 */ 7042 6277 break; 7043 6278 7044 6279 case 374: 7045 7046 /* Line 1806 of yacc.c */ 7047 #line 1494 "parser.yy" 6280 #line 1494 "parser.yy" /* yacc.c:1646 */ 7048 6281 { // mark all fields in list 7049 for ( DeclarationNode *iter = (yyvsp[ (2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )6282 for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7050 6283 iter->set_extension( true ); 7051 (yyval.decl) = (yyvsp[ (2) - (3)].decl);6284 (yyval.decl) = (yyvsp[-1].decl); 7052 6285 } 6286 #line 6287 "Parser/parser.cc" /* yacc.c:1646 */ 7053 6287 break; 7054 6288 7055 6289 case 376: 7056 7057 /* Line 1806 of yacc.c */ 7058 #line 1504 "parser.yy" 7059 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6290 #line 1504 "parser.yy" /* yacc.c:1646 */ 6291 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6292 #line 6293 "Parser/parser.cc" /* yacc.c:1646 */ 7060 6293 break; 7061 6294 7062 6295 case 377: 7063 7064 /* Line 1806 of yacc.c */ 7065 #line 1506 "parser.yy" 7066 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6296 #line 1506 "parser.yy" /* yacc.c:1646 */ 6297 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6298 #line 6299 "Parser/parser.cc" /* yacc.c:1646 */ 7067 6299 break; 7068 6300 7069 6301 case 378: 7070 7071 /* Line 1806 of yacc.c */ 7072 #line 1508 "parser.yy" 7073 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6302 #line 1508 "parser.yy" /* yacc.c:1646 */ 6303 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6304 #line 6305 "Parser/parser.cc" /* yacc.c:1646 */ 7074 6305 break; 7075 6306 7076 6307 case 379: 7077 7078 /* Line 1806 of yacc.c */ 7079 #line 1513 "parser.yy" 7080 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6308 #line 1513 "parser.yy" /* yacc.c:1646 */ 6309 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6310 #line 6311 "Parser/parser.cc" /* yacc.c:1646 */ 7081 6311 break; 7082 6312 7083 6313 case 380: 7084 7085 /* Line 1806 of yacc.c */ 7086 #line 1515 "parser.yy" 7087 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6314 #line 1515 "parser.yy" /* yacc.c:1646 */ 6315 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6316 #line 6317 "Parser/parser.cc" /* yacc.c:1646 */ 7088 6317 break; 7089 6318 7090 6319 case 381: 7091 7092 /* Line 1806 of yacc.c */ 7093 #line 1520 "parser.yy" 6320 #line 1520 "parser.yy" /* yacc.c:1646 */ 7094 6321 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6322 #line 6323 "Parser/parser.cc" /* yacc.c:1646 */ 7095 6323 break; 7096 6324 7097 6325 case 382: 7098 7099 /* Line 1806 of yacc.c */ 7100 #line 1522 "parser.yy" 7101 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6326 #line 1522 "parser.yy" /* yacc.c:1646 */ 6327 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6328 #line 6329 "Parser/parser.cc" /* yacc.c:1646 */ 7102 6329 break; 7103 6330 7104 6331 case 383: 7105 7106 /* Line 1806 of yacc.c */ 7107 #line 1525 "parser.yy" 7108 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6332 #line 1525 "parser.yy" /* yacc.c:1646 */ 6333 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6334 #line 6335 "Parser/parser.cc" /* yacc.c:1646 */ 7109 6335 break; 7110 6336 7111 6337 case 384: 7112 7113 /* Line 1806 of yacc.c */ 7114 #line 1528 "parser.yy" 7115 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6338 #line 1528 "parser.yy" /* yacc.c:1646 */ 6339 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6340 #line 6341 "Parser/parser.cc" /* yacc.c:1646 */ 7116 6341 break; 7117 6342 7118 6343 case 386: 7119 7120 /* Line 1806 of yacc.c */ 7121 #line 1534 "parser.yy" 6344 #line 1534 "parser.yy" /* yacc.c:1646 */ 7122 6345 { (yyval.en) = 0; } 6346 #line 6347 "Parser/parser.cc" /* yacc.c:1646 */ 7123 6347 break; 7124 6348 7125 6349 case 387: 7126 7127 /* Line 1806 of yacc.c */ 7128 #line 1536 "parser.yy" 7129 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6350 #line 1536 "parser.yy" /* yacc.c:1646 */ 6351 { (yyval.en) = (yyvsp[0].en); } 6352 #line 6353 "Parser/parser.cc" /* yacc.c:1646 */ 7130 6353 break; 7131 6354 7132 6355 case 388: 7133 7134 /* Line 1806 of yacc.c */ 7135 #line 1541 "parser.yy" 7136 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6356 #line 1541 "parser.yy" /* yacc.c:1646 */ 6357 { (yyval.en) = (yyvsp[0].en); } 6358 #line 6359 "Parser/parser.cc" /* yacc.c:1646 */ 7137 6359 break; 7138 6360 7139 6361 case 390: 7140 7141 /* Line 1806 of yacc.c */ 7142 #line 1550 "parser.yy" 7143 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 6362 #line 1550 "parser.yy" /* yacc.c:1646 */ 6363 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); } 6364 #line 6365 "Parser/parser.cc" /* yacc.c:1646 */ 7144 6365 break; 7145 6366 7146 6367 case 391: 7147 7148 /* Line 1806 of yacc.c */ 7149 #line 1552 "parser.yy" 7150 { 7151 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7152 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6368 #line 1552 "parser.yy" /* yacc.c:1646 */ 6369 { 6370 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6371 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 ); 7153 6372 } 6373 #line 6374 "Parser/parser.cc" /* yacc.c:1646 */ 7154 6374 break; 7155 6375 7156 6376 case 392: 7157 7158 /* Line 1806 of yacc.c */ 7159 #line 1557 "parser.yy" 7160 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6377 #line 1557 "parser.yy" /* yacc.c:1646 */ 6378 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6379 #line 6380 "Parser/parser.cc" /* yacc.c:1646 */ 7161 6380 break; 7162 6381 7163 6382 case 393: 7164 7165 /* Line 1806 of yacc.c */ 7166 #line 1559 "parser.yy" 7167 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 6383 #line 1559 "parser.yy" /* yacc.c:1646 */ 6384 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6385 #line 6386 "Parser/parser.cc" /* yacc.c:1646 */ 7168 6386 break; 7169 6387 7170 6388 case 394: 7171 7172 /* Line 1806 of yacc.c */ 7173 #line 1564 "parser.yy" 7174 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 6389 #line 1564 "parser.yy" /* yacc.c:1646 */ 6390 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6391 #line 6392 "Parser/parser.cc" /* yacc.c:1646 */ 7175 6392 break; 7176 6393 7177 6394 case 395: 7178 7179 /* Line 1806 of yacc.c */ 7180 #line 1566 "parser.yy" 7181 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 6395 #line 1566 "parser.yy" /* yacc.c:1646 */ 6396 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6397 #line 6398 "Parser/parser.cc" /* yacc.c:1646 */ 7182 6398 break; 7183 6399 7184 6400 case 396: 7185 7186 /* Line 1806 of yacc.c */ 7187 #line 1571 "parser.yy" 6401 #line 1571 "parser.yy" /* yacc.c:1646 */ 7188 6402 { (yyval.en) = 0; } 6403 #line 6404 "Parser/parser.cc" /* yacc.c:1646 */ 7189 6404 break; 7190 6405 7191 6406 case 397: 7192 7193 /* Line 1806 of yacc.c */ 7194 #line 1573 "parser.yy" 7195 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6407 #line 1573 "parser.yy" /* yacc.c:1646 */ 6408 { (yyval.en) = (yyvsp[0].en); } 6409 #line 6410 "Parser/parser.cc" /* yacc.c:1646 */ 7196 6410 break; 7197 6411 7198 6412 case 398: 7199 7200 /* Line 1806 of yacc.c */ 7201 #line 1580 "parser.yy" 6413 #line 1580 "parser.yy" /* yacc.c:1646 */ 7202 6414 { (yyval.decl) = 0; } 6415 #line 6416 "Parser/parser.cc" /* yacc.c:1646 */ 7203 6416 break; 7204 6417 7205 6418 case 402: 7206 7207 /* Line 1806 of yacc.c */ 7208 #line 1588 "parser.yy" 7209 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6419 #line 1588 "parser.yy" /* yacc.c:1646 */ 6420 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6421 #line 6422 "Parser/parser.cc" /* yacc.c:1646 */ 7210 6422 break; 7211 6423 7212 6424 case 403: 7213 7214 /* Line 1806 of yacc.c */ 7215 #line 1590 "parser.yy" 7216 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6425 #line 1590 "parser.yy" /* yacc.c:1646 */ 6426 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6427 #line 6428 "Parser/parser.cc" /* yacc.c:1646 */ 7217 6428 break; 7218 6429 7219 6430 case 404: 7220 7221 /* Line 1806 of yacc.c */ 7222 #line 1592 "parser.yy" 7223 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6431 #line 1592 "parser.yy" /* yacc.c:1646 */ 6432 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6433 #line 6434 "Parser/parser.cc" /* yacc.c:1646 */ 7224 6434 break; 7225 6435 7226 6436 case 406: 7227 7228 /* Line 1806 of yacc.c */ 7229 #line 1600 "parser.yy" 7230 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6437 #line 1600 "parser.yy" /* yacc.c:1646 */ 6438 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6439 #line 6440 "Parser/parser.cc" /* yacc.c:1646 */ 7231 6440 break; 7232 6441 7233 6442 case 407: 7234 7235 /* Line 1806 of yacc.c */ 7236 #line 1602 "parser.yy" 7237 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6443 #line 1602 "parser.yy" /* yacc.c:1646 */ 6444 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6445 #line 6446 "Parser/parser.cc" /* yacc.c:1646 */ 7238 6446 break; 7239 6447 7240 6448 case 408: 7241 7242 /* Line 1806 of yacc.c */ 7243 #line 1604 "parser.yy" 7244 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 6449 #line 1604 "parser.yy" /* yacc.c:1646 */ 6450 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6451 #line 6452 "Parser/parser.cc" /* yacc.c:1646 */ 7245 6452 break; 7246 6453 7247 6454 case 410: 7248 7249 /* Line 1806 of yacc.c */ 7250 #line 1610 "parser.yy" 7251 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6455 #line 1610 "parser.yy" /* yacc.c:1646 */ 6456 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6457 #line 6458 "Parser/parser.cc" /* yacc.c:1646 */ 7252 6458 break; 7253 6459 7254 6460 case 411: 7255 7256 /* Line 1806 of yacc.c */ 7257 #line 1615 "parser.yy" 6461 #line 1615 "parser.yy" /* yacc.c:1646 */ 7258 6462 { (yyval.decl) = 0; } 6463 #line 6464 "Parser/parser.cc" /* yacc.c:1646 */ 7259 6464 break; 7260 6465 7261 6466 case 414: 7262 7263 /* Line 1806 of yacc.c */ 7264 #line 1622 "parser.yy" 7265 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6467 #line 1622 "parser.yy" /* yacc.c:1646 */ 6468 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6469 #line 6470 "Parser/parser.cc" /* yacc.c:1646 */ 7266 6470 break; 7267 6471 7268 6472 case 417: 7269 7270 /* Line 1806 of yacc.c */ 7271 #line 1629 "parser.yy" 7272 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6473 #line 1629 "parser.yy" /* yacc.c:1646 */ 6474 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6475 #line 6476 "Parser/parser.cc" /* yacc.c:1646 */ 7273 6476 break; 7274 6477 7275 6478 case 418: 7276 7277 /* Line 1806 of yacc.c */ 7278 #line 1631 "parser.yy" 7279 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6479 #line 1631 "parser.yy" /* yacc.c:1646 */ 6480 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6481 #line 6482 "Parser/parser.cc" /* yacc.c:1646 */ 7280 6482 break; 7281 6483 7282 6484 case 420: 7283 7284 /* Line 1806 of yacc.c */ 7285 #line 1640 "parser.yy" 7286 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6485 #line 1640 "parser.yy" /* yacc.c:1646 */ 6486 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6487 #line 6488 "Parser/parser.cc" /* yacc.c:1646 */ 7287 6488 break; 7288 6489 7289 6490 case 421: 7290 7291 /* Line 1806 of yacc.c */ 7292 #line 1643 "parser.yy" 7293 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6491 #line 1643 "parser.yy" /* yacc.c:1646 */ 6492 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6493 #line 6494 "Parser/parser.cc" /* yacc.c:1646 */ 7294 6494 break; 7295 6495 7296 6496 case 422: 7297 7298 /* Line 1806 of yacc.c */ 7299 #line 1645 "parser.yy" 7300 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 6497 #line 1645 "parser.yy" /* yacc.c:1646 */ 6498 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6499 #line 6500 "Parser/parser.cc" /* yacc.c:1646 */ 7301 6500 break; 7302 6501 7303 6502 case 427: 7304 7305 /* Line 1806 of yacc.c */ 7306 #line 1655 "parser.yy" 7307 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6503 #line 1655 "parser.yy" /* yacc.c:1646 */ 6504 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6505 #line 6506 "Parser/parser.cc" /* yacc.c:1646 */ 7308 6506 break; 7309 6507 7310 6508 case 429: 7311 7312 /* Line 1806 of yacc.c */ 7313 #line 1661 "parser.yy" 6509 #line 1661 "parser.yy" /* yacc.c:1646 */ 7314 6510 { 7315 6511 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7316 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );6512 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 7317 6513 } 6514 #line 6515 "Parser/parser.cc" /* yacc.c:1646 */ 7318 6515 break; 7319 6516 7320 6517 case 430: 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1666 "parser.yy" 6518 #line 1666 "parser.yy" /* yacc.c:1646 */ 7324 6519 { 7325 6520 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7326 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) );6521 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 7327 6522 } 6523 #line 6524 "Parser/parser.cc" /* yacc.c:1646 */ 7328 6524 break; 7329 6525 7330 6526 case 432: 7331 7332 /* Line 1806 of yacc.c */ 7333 #line 1675 "parser.yy" 7334 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6527 #line 1675 "parser.yy" /* yacc.c:1646 */ 6528 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6529 #line 6530 "Parser/parser.cc" /* yacc.c:1646 */ 7335 6530 break; 7336 6531 7337 6532 case 433: 7338 7339 /* Line 1806 of yacc.c */ 7340 #line 1684 "parser.yy" 7341 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 6533 #line 1684 "parser.yy" /* yacc.c:1646 */ 6534 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6535 #line 6536 "Parser/parser.cc" /* yacc.c:1646 */ 7342 6536 break; 7343 6537 7344 6538 case 434: 7345 7346 /* Line 1806 of yacc.c */ 7347 #line 1686 "parser.yy" 7348 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 6539 #line 1686 "parser.yy" /* yacc.c:1646 */ 6540 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6541 #line 6542 "Parser/parser.cc" /* yacc.c:1646 */ 7349 6542 break; 7350 6543 7351 6544 case 446: 7352 7353 /* Line 1806 of yacc.c */ 7354 #line 1711 "parser.yy" 7355 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6545 #line 1711 "parser.yy" /* yacc.c:1646 */ 6546 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6547 #line 6548 "Parser/parser.cc" /* yacc.c:1646 */ 7356 6548 break; 7357 6549 7358 6550 case 450: 7359 7360 /* Line 1806 of yacc.c */ 7361 #line 1719 "parser.yy" 7362 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6551 #line 1719 "parser.yy" /* yacc.c:1646 */ 6552 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6553 #line 6554 "Parser/parser.cc" /* yacc.c:1646 */ 7363 6554 break; 7364 6555 7365 6556 case 451: 7366 7367 /* Line 1806 of yacc.c */ 7368 #line 1724 "parser.yy" 6557 #line 1724 "parser.yy" /* yacc.c:1646 */ 7369 6558 { (yyval.in) = 0; } 6559 #line 6560 "Parser/parser.cc" /* yacc.c:1646 */ 7370 6560 break; 7371 6561 7372 6562 case 452: 7373 7374 /* Line 1806 of yacc.c */ 7375 #line 1726 "parser.yy" 7376 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6563 #line 1726 "parser.yy" /* yacc.c:1646 */ 6564 { (yyval.in) = (yyvsp[0].in); } 6565 #line 6566 "Parser/parser.cc" /* yacc.c:1646 */ 7377 6566 break; 7378 6567 7379 6568 case 453: 7380 7381 /* Line 1806 of yacc.c */ 7382 #line 1728 "parser.yy" 7383 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 6569 #line 1728 "parser.yy" /* yacc.c:1646 */ 6570 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6571 #line 6572 "Parser/parser.cc" /* yacc.c:1646 */ 7384 6572 break; 7385 6573 7386 6574 case 454: 7387 7388 /* Line 1806 of yacc.c */ 7389 #line 1732 "parser.yy" 7390 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 6575 #line 1732 "parser.yy" /* yacc.c:1646 */ 6576 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6577 #line 6578 "Parser/parser.cc" /* yacc.c:1646 */ 7391 6578 break; 7392 6579 7393 6580 case 455: 7394 7395 /* Line 1806 of yacc.c */ 7396 #line 1733 "parser.yy" 7397 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 6581 #line 1733 "parser.yy" /* yacc.c:1646 */ 6582 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6583 #line 6584 "Parser/parser.cc" /* yacc.c:1646 */ 7398 6584 break; 7399 6585 7400 6586 case 456: 7401 7402 /* Line 1806 of yacc.c */ 7403 #line 1738 "parser.yy" 6587 #line 1738 "parser.yy" /* yacc.c:1646 */ 7404 6588 { (yyval.in) = 0; } 6589 #line 6590 "Parser/parser.cc" /* yacc.c:1646 */ 7405 6590 break; 7406 6591 7407 6592 case 458: 7408 7409 /* Line 1806 of yacc.c */ 7410 #line 1740 "parser.yy" 7411 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 6593 #line 1740 "parser.yy" /* yacc.c:1646 */ 6594 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6595 #line 6596 "Parser/parser.cc" /* yacc.c:1646 */ 7412 6596 break; 7413 6597 7414 6598 case 459: 7415 7416 /* Line 1806 of yacc.c */ 7417 #line 1741 "parser.yy" 7418 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 6599 #line 1741 "parser.yy" /* yacc.c:1646 */ 6600 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6601 #line 6602 "Parser/parser.cc" /* yacc.c:1646 */ 7419 6602 break; 7420 6603 7421 6604 case 460: 7422 7423 /* Line 1806 of yacc.c */ 7424 #line 1743 "parser.yy" 7425 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 6605 #line 1743 "parser.yy" /* yacc.c:1646 */ 6606 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6607 #line 6608 "Parser/parser.cc" /* yacc.c:1646 */ 7426 6608 break; 7427 6609 7428 6610 case 462: 7429 7430 /* Line 1806 of yacc.c */ 7431 #line 1759 "parser.yy" 7432 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 6611 #line 1759 "parser.yy" /* yacc.c:1646 */ 6612 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6613 #line 6614 "Parser/parser.cc" /* yacc.c:1646 */ 7433 6614 break; 7434 6615 7435 6616 case 464: 7436 7437 /* Line 1806 of yacc.c */ 7438 #line 1765 "parser.yy" 7439 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 6617 #line 1765 "parser.yy" /* yacc.c:1646 */ 6618 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6619 #line 6620 "Parser/parser.cc" /* yacc.c:1646 */ 7440 6620 break; 7441 6621 7442 6622 case 465: 7443 7444 /* Line 1806 of yacc.c */ 7445 #line 1771 "parser.yy" 7446 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 6623 #line 1771 "parser.yy" /* yacc.c:1646 */ 6624 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6625 #line 6626 "Parser/parser.cc" /* yacc.c:1646 */ 7447 6626 break; 7448 6627 7449 6628 case 466: 7450 7451 /* Line 1806 of yacc.c */ 7452 #line 1774 "parser.yy" 7453 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6629 #line 1774 "parser.yy" /* yacc.c:1646 */ 6630 { (yyval.en) = (yyvsp[-2].en); } 6631 #line 6632 "Parser/parser.cc" /* yacc.c:1646 */ 7454 6632 break; 7455 6633 7456 6634 case 467: 7457 7458 /* Line 1806 of yacc.c */ 7459 #line 1776 "parser.yy" 7460 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6635 #line 1776 "parser.yy" /* yacc.c:1646 */ 6636 { (yyval.en) = (yyvsp[-2].en); } 6637 #line 6638 "Parser/parser.cc" /* yacc.c:1646 */ 7461 6638 break; 7462 6639 7463 6640 case 468: 7464 7465 /* Line 1806 of yacc.c */ 7466 #line 1778 "parser.yy" 7467 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 6641 #line 1778 "parser.yy" /* yacc.c:1646 */ 6642 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6643 #line 6644 "Parser/parser.cc" /* yacc.c:1646 */ 7468 6644 break; 7469 6645 7470 6646 case 469: 7471 7472 /* Line 1806 of yacc.c */ 7473 #line 1780 "parser.yy" 7474 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6647 #line 1780 "parser.yy" /* yacc.c:1646 */ 6648 { (yyval.en) = (yyvsp[-2].en); } 6649 #line 6650 "Parser/parser.cc" /* yacc.c:1646 */ 7475 6650 break; 7476 6651 7477 6652 case 471: 7478 7479 /* Line 1806 of yacc.c */ 7480 #line 1804 "parser.yy" 7481 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6653 #line 1804 "parser.yy" /* yacc.c:1646 */ 6654 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6655 #line 6656 "Parser/parser.cc" /* yacc.c:1646 */ 7482 6656 break; 7483 6657 7484 6658 case 472: 7485 7486 /* Line 1806 of yacc.c */ 7487 #line 1806 "parser.yy" 7488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6659 #line 1806 "parser.yy" /* yacc.c:1646 */ 6660 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6661 #line 6662 "Parser/parser.cc" /* yacc.c:1646 */ 7489 6662 break; 7490 6663 7491 6664 case 473: 7492 7493 /* Line 1806 of yacc.c */ 7494 #line 1808 "parser.yy" 7495 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6665 #line 1808 "parser.yy" /* yacc.c:1646 */ 6666 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6667 #line 6668 "Parser/parser.cc" /* yacc.c:1646 */ 7496 6668 break; 7497 6669 7498 6670 case 475: 7499 7500 /* Line 1806 of yacc.c */ 7501 #line 1814 "parser.yy" 7502 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6671 #line 1814 "parser.yy" /* yacc.c:1646 */ 6672 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6673 #line 6674 "Parser/parser.cc" /* yacc.c:1646 */ 7503 6674 break; 7504 6675 7505 6676 case 476: 7506 7507 /* Line 1806 of yacc.c */ 7508 #line 1816 "parser.yy" 7509 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6677 #line 1816 "parser.yy" /* yacc.c:1646 */ 6678 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6679 #line 6680 "Parser/parser.cc" /* yacc.c:1646 */ 7510 6680 break; 7511 6681 7512 6682 case 477: 7513 7514 /* Line 1806 of yacc.c */ 7515 #line 1821 "parser.yy" 7516 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6683 #line 1821 "parser.yy" /* yacc.c:1646 */ 6684 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6685 #line 6686 "Parser/parser.cc" /* yacc.c:1646 */ 7517 6686 break; 7518 6687 7519 6688 case 479: 7520 7521 /* Line 1806 of yacc.c */ 7522 #line 1827 "parser.yy" 7523 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 6689 #line 1827 "parser.yy" /* yacc.c:1646 */ 6690 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6691 #line 6692 "Parser/parser.cc" /* yacc.c:1646 */ 7524 6692 break; 7525 6693 7526 6694 case 480: 7527 7528 /* Line 1806 of yacc.c */ 7529 #line 1832 "parser.yy" 7530 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 6695 #line 1832 "parser.yy" /* yacc.c:1646 */ 6696 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6697 #line 6698 "Parser/parser.cc" /* yacc.c:1646 */ 7531 6698 break; 7532 6699 7533 6700 case 481: 7534 7535 /* Line 1806 of yacc.c */ 7536 #line 1834 "parser.yy" 7537 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 6701 #line 1834 "parser.yy" /* yacc.c:1646 */ 6702 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6703 #line 6704 "Parser/parser.cc" /* yacc.c:1646 */ 7538 6704 break; 7539 6705 7540 6706 case 483: 7541 7542 /* Line 1806 of yacc.c */ 7543 #line 1840 "parser.yy" 6707 #line 1840 "parser.yy" /* yacc.c:1646 */ 7544 6708 { (yyval.tclass) = DeclarationNode::Type; } 6709 #line 6710 "Parser/parser.cc" /* yacc.c:1646 */ 7545 6710 break; 7546 6711 7547 6712 case 484: 7548 7549 /* Line 1806 of yacc.c */ 7550 #line 1842 "parser.yy" 6713 #line 1842 "parser.yy" /* yacc.c:1646 */ 7551 6714 { (yyval.tclass) = DeclarationNode::Ftype; } 6715 #line 6716 "Parser/parser.cc" /* yacc.c:1646 */ 7552 6716 break; 7553 6717 7554 6718 case 485: 7555 7556 /* Line 1806 of yacc.c */ 7557 #line 1844 "parser.yy" 6719 #line 1844 "parser.yy" /* yacc.c:1646 */ 7558 6720 { (yyval.tclass) = DeclarationNode::Dtype; } 6721 #line 6722 "Parser/parser.cc" /* yacc.c:1646 */ 7559 6722 break; 7560 6723 7561 6724 case 486: 7562 7563 /* Line 1806 of yacc.c */ 7564 #line 1849 "parser.yy" 6725 #line 1849 "parser.yy" /* yacc.c:1646 */ 7565 6726 { (yyval.decl) = 0; } 6727 #line 6728 "Parser/parser.cc" /* yacc.c:1646 */ 7566 6728 break; 7567 6729 7568 6730 case 487: 7569 7570 /* Line 1806 of yacc.c */ 7571 #line 1851 "parser.yy" 7572 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6731 #line 1851 "parser.yy" /* yacc.c:1646 */ 6732 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6733 #line 6734 "Parser/parser.cc" /* yacc.c:1646 */ 7573 6734 break; 7574 6735 7575 6736 case 488: 7576 7577 /* Line 1806 of yacc.c */ 7578 #line 1856 "parser.yy" 7579 { 7580 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7581 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6737 #line 1856 "parser.yy" /* yacc.c:1646 */ 6738 { 6739 typedefTable.openTrait( *(yyvsp[-3].tok) ); 6740 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) ); 7582 6741 } 6742 #line 6743 "Parser/parser.cc" /* yacc.c:1646 */ 7583 6743 break; 7584 6744 7585 6745 case 489: 7586 7587 /* Line 1806 of yacc.c */ 7588 #line 1861 "parser.yy" 7589 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6746 #line 1861 "parser.yy" /* yacc.c:1646 */ 6747 { (yyval.decl) = (yyvsp[-1].decl); } 6748 #line 6749 "Parser/parser.cc" /* yacc.c:1646 */ 7590 6749 break; 7591 6750 7592 6751 case 490: 7593 7594 /* Line 1806 of yacc.c */ 7595 #line 1863 "parser.yy" 6752 #line 1863 "parser.yy" /* yacc.c:1646 */ 7596 6753 { (yyval.decl) = 0; } 6754 #line 6755 "Parser/parser.cc" /* yacc.c:1646 */ 7597 6755 break; 7598 6756 7599 6757 case 491: 7600 7601 /* Line 1806 of yacc.c */ 7602 #line 1868 "parser.yy" 7603 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 6758 #line 1868 "parser.yy" /* yacc.c:1646 */ 6759 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6760 #line 6761 "Parser/parser.cc" /* yacc.c:1646 */ 7604 6761 break; 7605 6762 7606 6763 case 493: 7607 7608 /* Line 1806 of yacc.c */ 7609 #line 1871 "parser.yy" 7610 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 6764 #line 1871 "parser.yy" /* yacc.c:1646 */ 6765 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6766 #line 6767 "Parser/parser.cc" /* yacc.c:1646 */ 7611 6767 break; 7612 6768 7613 6769 case 494: 7614 7615 /* Line 1806 of yacc.c */ 7616 #line 1873 "parser.yy" 7617 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 6770 #line 1873 "parser.yy" /* yacc.c:1646 */ 6771 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6772 #line 6773 "Parser/parser.cc" /* yacc.c:1646 */ 7618 6773 break; 7619 6774 7620 6775 case 495: 7621 7622 /* Line 1806 of yacc.c */ 7623 #line 1878 "parser.yy" 7624 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6776 #line 1878 "parser.yy" /* yacc.c:1646 */ 6777 { (yyval.decl) = (yyvsp[0].decl); } 6778 #line 6779 "Parser/parser.cc" /* yacc.c:1646 */ 7625 6779 break; 7626 6780 7627 6781 case 496: 7628 7629 /* Line 1806 of yacc.c */ 7630 #line 1880 "parser.yy" 7631 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 6782 #line 1880 "parser.yy" /* yacc.c:1646 */ 6783 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6784 #line 6785 "Parser/parser.cc" /* yacc.c:1646 */ 7632 6785 break; 7633 6786 7634 6787 case 497: 7635 7636 /* Line 1806 of yacc.c */ 7637 #line 1882 "parser.yy" 7638 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 6788 #line 1882 "parser.yy" /* yacc.c:1646 */ 6789 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6790 #line 6791 "Parser/parser.cc" /* yacc.c:1646 */ 7639 6791 break; 7640 6792 7641 6793 case 498: 7642 7643 /* Line 1806 of yacc.c */ 7644 #line 1887 "parser.yy" 7645 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 6794 #line 1887 "parser.yy" /* yacc.c:1646 */ 6795 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6796 #line 6797 "Parser/parser.cc" /* yacc.c:1646 */ 7646 6797 break; 7647 6798 7648 6799 case 499: 7649 7650 /* Line 1806 of yacc.c */ 7651 #line 1889 "parser.yy" 7652 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 6800 #line 1889 "parser.yy" /* yacc.c:1646 */ 6801 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6802 #line 6803 "Parser/parser.cc" /* yacc.c:1646 */ 7653 6803 break; 7654 6804 7655 6805 case 500: 7656 7657 /* Line 1806 of yacc.c */ 7658 #line 1894 "parser.yy" 7659 { 7660 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7661 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6806 #line 1894 "parser.yy" /* yacc.c:1646 */ 6807 { 6808 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 6809 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 ); 7662 6810 } 6811 #line 6812 "Parser/parser.cc" /* yacc.c:1646 */ 7663 6812 break; 7664 6813 7665 6814 case 501: 7666 7667 /* Line 1806 of yacc.c */ 7668 #line 1899 "parser.yy" 7669 { 7670 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7671 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6815 #line 1899 "parser.yy" /* yacc.c:1646 */ 6816 { 6817 typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG ); 6818 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) ); 7672 6819 } 6820 #line 6821 "Parser/parser.cc" /* yacc.c:1646 */ 7673 6821 break; 7674 6822 7675 6823 case 502: 7676 7677 /* Line 1806 of yacc.c */ 7678 #line 1907 "parser.yy" 7679 { 7680 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7681 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6824 #line 1907 "parser.yy" /* yacc.c:1646 */ 6825 { 6826 typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID ); 6827 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 ); 7682 6828 } 6829 #line 6830 "Parser/parser.cc" /* yacc.c:1646 */ 7683 6830 break; 7684 6831 7685 6832 case 503: 7686 7687 /* Line 1806 of yacc.c */ 7688 #line 1912 "parser.yy" 7689 { 7690 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6833 #line 1912 "parser.yy" /* yacc.c:1646 */ 6834 { 6835 typedefTable.enterTrait( *(yyvsp[-6].tok) ); 7691 6836 typedefTable.enterScope(); 7692 6837 } 6838 #line 6839 "Parser/parser.cc" /* yacc.c:1646 */ 7693 6839 break; 7694 6840 7695 6841 case 504: 7696 7697 /* Line 1806 of yacc.c */ 7698 #line 1917 "parser.yy" 6842 #line 1917 "parser.yy" /* yacc.c:1646 */ 7699 6843 { 7700 6844 typedefTable.leaveTrait(); 7701 typedefTable.addToEnclosingScope( *(yyvsp[ (2) - (11)].tok), TypedefTable::ID );7702 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ (2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );6845 typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID ); 6846 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) ); 7703 6847 } 6848 #line 6849 "Parser/parser.cc" /* yacc.c:1646 */ 7704 6849 break; 7705 6850 7706 6851 case 506: 7707 7708 /* Line 1806 of yacc.c */ 7709 #line 1927 "parser.yy" 7710 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6852 #line 1927 "parser.yy" /* yacc.c:1646 */ 6853 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6854 #line 6855 "Parser/parser.cc" /* yacc.c:1646 */ 7711 6855 break; 7712 6856 7713 6857 case 509: 7714 7715 /* Line 1806 of yacc.c */ 7716 #line 1937 "parser.yy" 6858 #line 1937 "parser.yy" /* yacc.c:1646 */ 7717 6859 { 7718 6860 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7719 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6861 (yyval.decl) = (yyvsp[0].decl); 7720 6862 } 6863 #line 6864 "Parser/parser.cc" /* yacc.c:1646 */ 7721 6864 break; 7722 6865 7723 6866 case 510: 7724 7725 /* Line 1806 of yacc.c */ 7726 #line 1942 "parser.yy" 6867 #line 1942 "parser.yy" /* yacc.c:1646 */ 7727 6868 { 7728 6869 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7729 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6870 (yyval.decl) = (yyvsp[0].decl); 7730 6871 } 6872 #line 6873 "Parser/parser.cc" /* yacc.c:1646 */ 7731 6873 break; 7732 6874 7733 6875 case 511: 7734 7735 /* Line 1806 of yacc.c */ 7736 #line 1947 "parser.yy" 7737 { 7738 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7739 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6876 #line 1947 "parser.yy" /* yacc.c:1646 */ 6877 { 6878 typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID ); 6879 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 7740 6880 } 6881 #line 6882 "Parser/parser.cc" /* yacc.c:1646 */ 7741 6882 break; 7742 6883 7743 6884 case 512: 7744 7745 /* Line 1806 of yacc.c */ 7746 #line 1955 "parser.yy" 6885 #line 1955 "parser.yy" /* yacc.c:1646 */ 7747 6886 { 7748 6887 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7749 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );6888 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 7750 6889 } 6890 #line 6891 "Parser/parser.cc" /* yacc.c:1646 */ 7751 6891 break; 7752 6892 7753 6893 case 513: 7754 7755 /* Line 1806 of yacc.c */ 7756 #line 1960 "parser.yy" 6894 #line 1960 "parser.yy" /* yacc.c:1646 */ 7757 6895 { 7758 6896 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7759 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) );6897 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) ); 7760 6898 } 6899 #line 6900 "Parser/parser.cc" /* yacc.c:1646 */ 7761 6900 break; 7762 6901 7763 6902 case 514: 7764 7765 /* Line 1806 of yacc.c */ 7766 #line 1970 "parser.yy" 6903 #line 1970 "parser.yy" /* yacc.c:1646 */ 7767 6904 {} 6905 #line 6906 "Parser/parser.cc" /* yacc.c:1646 */ 7768 6906 break; 7769 6907 7770 6908 case 515: 7771 7772 /* Line 1806 of yacc.c */ 7773 #line 1972 "parser.yy" 7774 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 6909 #line 1972 "parser.yy" /* yacc.c:1646 */ 6910 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6911 #line 6912 "Parser/parser.cc" /* yacc.c:1646 */ 7775 6912 break; 7776 6913 7777 6914 case 517: 7778 7779 /* Line 1806 of yacc.c */ 7780 #line 1978 "parser.yy" 7781 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 6915 #line 1978 "parser.yy" /* yacc.c:1646 */ 6916 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6917 #line 6918 "Parser/parser.cc" /* yacc.c:1646 */ 7782 6918 break; 7783 6919 7784 6920 case 518: 7785 7786 /* Line 1806 of yacc.c */ 7787 #line 1983 "parser.yy" 6921 #line 1983 "parser.yy" /* yacc.c:1646 */ 7788 6922 { (yyval.decl) = 0; } 6923 #line 6924 "Parser/parser.cc" /* yacc.c:1646 */ 7789 6924 break; 7790 6925 7791 6926 case 522: 7792 7793 /* Line 1806 of yacc.c */ 7794 #line 1991 "parser.yy" 6927 #line 1991 "parser.yy" /* yacc.c:1646 */ 7795 6928 {} 6929 #line 6930 "Parser/parser.cc" /* yacc.c:1646 */ 7796 6930 break; 7797 6931 7798 6932 case 523: 7799 7800 /* Line 1806 of yacc.c */ 7801 #line 1993 "parser.yy" 6933 #line 1993 "parser.yy" /* yacc.c:1646 */ 7802 6934 { 7803 6935 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 7804 linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) );6936 linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) ); 7805 6937 } 6938 #line 6939 "Parser/parser.cc" /* yacc.c:1646 */ 7806 6939 break; 7807 6940 7808 6941 case 524: 7809 7810 /* Line 1806 of yacc.c */ 7811 #line 1998 "parser.yy" 6942 #line 1998 "parser.yy" /* yacc.c:1646 */ 7812 6943 { 7813 6944 linkage = linkageStack.top(); 7814 6945 linkageStack.pop(); 7815 (yyval.decl) = (yyvsp[ (5) - (6)].decl);6946 (yyval.decl) = (yyvsp[-1].decl); 7816 6947 } 6948 #line 6949 "Parser/parser.cc" /* yacc.c:1646 */ 7817 6949 break; 7818 6950 7819 6951 case 525: 7820 7821 /* Line 1806 of yacc.c */ 7822 #line 2004 "parser.yy" 6952 #line 2004 "parser.yy" /* yacc.c:1646 */ 7823 6953 { // mark all fields in list 7824 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )6954 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7825 6955 iter->set_extension( true ); 7826 (yyval.decl) = (yyvsp[ (2) - (2)].decl);6956 (yyval.decl) = (yyvsp[0].decl); 7827 6957 } 6958 #line 6959 "Parser/parser.cc" /* yacc.c:1646 */ 7828 6959 break; 7829 6960 7830 6961 case 527: 7831 7832 /* Line 1806 of yacc.c */ 7833 #line 2019 "parser.yy" 6962 #line 2019 "parser.yy" /* yacc.c:1646 */ 7834 6963 { 7835 6964 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7836 6965 typedefTable.leaveScope(); 7837 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6966 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7838 6967 } 6968 #line 6969 "Parser/parser.cc" /* yacc.c:1646 */ 7839 6969 break; 7840 6970 7841 6971 case 528: 7842 7843 /* Line 1806 of yacc.c */ 7844 #line 2025 "parser.yy" 6972 #line 2025 "parser.yy" /* yacc.c:1646 */ 7845 6973 { 7846 6974 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7847 6975 typedefTable.leaveScope(); 7848 (yyval.decl) = (yyvsp[ (1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );6976 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) ); 7849 6977 } 6978 #line 6979 "Parser/parser.cc" /* yacc.c:1646 */ 7850 6979 break; 7851 6980 7852 6981 case 529: 7853 7854 /* Line 1806 of yacc.c */ 7855 #line 2034 "parser.yy" 6982 #line 2034 "parser.yy" /* yacc.c:1646 */ 7856 6983 { 7857 6984 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7858 6985 typedefTable.leaveScope(); 7859 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6986 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7860 6987 } 6988 #line 6989 "Parser/parser.cc" /* yacc.c:1646 */ 7861 6989 break; 7862 6990 7863 6991 case 530: 7864 7865 /* Line 1806 of yacc.c */ 7866 #line 2040 "parser.yy" 6992 #line 2040 "parser.yy" /* yacc.c:1646 */ 7867 6993 { 7868 6994 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7869 6995 typedefTable.leaveScope(); 7870 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );6996 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) ); 7871 6997 } 6998 #line 6999 "Parser/parser.cc" /* yacc.c:1646 */ 7872 6999 break; 7873 7000 7874 7001 case 531: 7875 7876 /* Line 1806 of yacc.c */ 7877 #line 2046 "parser.yy" 7002 #line 2046 "parser.yy" /* yacc.c:1646 */ 7878 7003 { 7879 7004 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7880 7005 typedefTable.leaveScope(); 7881 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7006 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7882 7007 } 7008 #line 7009 "Parser/parser.cc" /* yacc.c:1646 */ 7883 7009 break; 7884 7010 7885 7011 case 532: 7886 7887 /* Line 1806 of yacc.c */ 7888 #line 2052 "parser.yy" 7012 #line 2052 "parser.yy" /* yacc.c:1646 */ 7889 7013 { 7890 7014 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7891 7015 typedefTable.leaveScope(); 7892 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7016 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7893 7017 } 7018 #line 7019 "Parser/parser.cc" /* yacc.c:1646 */ 7894 7019 break; 7895 7020 7896 7021 case 533: 7897 7898 /* Line 1806 of yacc.c */ 7899 #line 2058 "parser.yy" 7022 #line 2058 "parser.yy" /* yacc.c:1646 */ 7900 7023 { 7901 7024 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7902 7025 typedefTable.leaveScope(); 7903 (yyval.decl) = (yyvsp[ (3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );7026 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) ); 7904 7027 } 7028 #line 7029 "Parser/parser.cc" /* yacc.c:1646 */ 7905 7029 break; 7906 7030 7907 7031 case 534: 7908 7909 /* Line 1806 of yacc.c */ 7910 #line 2066 "parser.yy" 7032 #line 2066 "parser.yy" /* yacc.c:1646 */ 7911 7033 { 7912 7034 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7913 7035 typedefTable.leaveScope(); 7914 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );7036 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) ); 7915 7037 } 7038 #line 7039 "Parser/parser.cc" /* yacc.c:1646 */ 7916 7039 break; 7917 7040 7918 7041 case 535: 7919 7920 /* Line 1806 of yacc.c */ 7921 #line 2072 "parser.yy" 7042 #line 2072 "parser.yy" /* yacc.c:1646 */ 7922 7043 { 7923 7044 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7924 7045 typedefTable.leaveScope(); 7925 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );7046 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7926 7047 } 7048 #line 7049 "Parser/parser.cc" /* yacc.c:1646 */ 7927 7049 break; 7928 7050 7929 7051 case 536: 7930 7931 /* Line 1806 of yacc.c */ 7932 #line 2080 "parser.yy" 7052 #line 2080 "parser.yy" /* yacc.c:1646 */ 7933 7053 { 7934 7054 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7935 7055 typedefTable.leaveScope(); 7936 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );7056 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7937 7057 } 7058 #line 7059 "Parser/parser.cc" /* yacc.c:1646 */ 7938 7059 break; 7939 7060 7940 7061 case 537: 7941 7942 /* Line 1806 of yacc.c */ 7943 #line 2086 "parser.yy" 7062 #line 2086 "parser.yy" /* yacc.c:1646 */ 7944 7063 { 7945 7064 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7946 7065 typedefTable.leaveScope(); 7947 (yyval.decl) = (yyvsp[ (3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) );7066 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) ); 7948 7067 } 7068 #line 7069 "Parser/parser.cc" /* yacc.c:1646 */ 7949 7069 break; 7950 7070 7951 7071 case 541: 7952 7953 /* Line 1806 of yacc.c */ 7954 #line 2101 "parser.yy" 7955 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7072 #line 2101 "parser.yy" /* yacc.c:1646 */ 7073 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7074 #line 7075 "Parser/parser.cc" /* yacc.c:1646 */ 7956 7075 break; 7957 7076 7958 7077 case 544: 7959 7960 /* Line 1806 of yacc.c */ 7961 #line 2111 "parser.yy" 7078 #line 2111 "parser.yy" /* yacc.c:1646 */ 7962 7079 { (yyval.decl) = 0; } 7080 #line 7081 "Parser/parser.cc" /* yacc.c:1646 */ 7963 7081 break; 7964 7082 7965 7083 case 547: 7966 7967 /* Line 1806 of yacc.c */ 7968 #line 2118 "parser.yy" 7969 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7084 #line 2118 "parser.yy" /* yacc.c:1646 */ 7085 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7086 #line 7087 "Parser/parser.cc" /* yacc.c:1646 */ 7970 7087 break; 7971 7088 7972 7089 case 548: 7973 7974 /* Line 1806 of yacc.c */ 7975 #line 2124 "parser.yy" 7090 #line 2124 "parser.yy" /* yacc.c:1646 */ 7976 7091 { (yyval.decl) = 0; } 7092 #line 7093 "Parser/parser.cc" /* yacc.c:1646 */ 7977 7093 break; 7978 7094 7979 7095 case 554: 7980 7981 /* Line 1806 of yacc.c */ 7982 #line 2139 "parser.yy" 7096 #line 2139 "parser.yy" /* yacc.c:1646 */ 7983 7097 {} 7098 #line 7099 "Parser/parser.cc" /* yacc.c:1646 */ 7984 7099 break; 7985 7100 7986 7101 case 555: 7987 7988 /* Line 1806 of yacc.c */ 7989 #line 2140 "parser.yy" 7102 #line 2140 "parser.yy" /* yacc.c:1646 */ 7990 7103 {} 7104 #line 7105 "Parser/parser.cc" /* yacc.c:1646 */ 7991 7105 break; 7992 7106 7993 7107 case 556: 7994 7995 /* Line 1806 of yacc.c */ 7996 #line 2141 "parser.yy" 7108 #line 2141 "parser.yy" /* yacc.c:1646 */ 7997 7109 {} 7110 #line 7111 "Parser/parser.cc" /* yacc.c:1646 */ 7998 7111 break; 7999 7112 8000 7113 case 557: 8001 8002 /* Line 1806 of yacc.c */ 8003 #line 2142 "parser.yy" 7114 #line 2142 "parser.yy" /* yacc.c:1646 */ 8004 7115 {} 7116 #line 7117 "Parser/parser.cc" /* yacc.c:1646 */ 8005 7117 break; 8006 7118 8007 7119 case 558: 8008 8009 /* Line 1806 of yacc.c */ 8010 #line 2177 "parser.yy" 8011 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7120 #line 2177 "parser.yy" /* yacc.c:1646 */ 7121 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7122 #line 7123 "Parser/parser.cc" /* yacc.c:1646 */ 8012 7123 break; 8013 7124 8014 7125 case 560: 8015 8016 /* Line 1806 of yacc.c */ 8017 #line 2180 "parser.yy" 8018 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7126 #line 2180 "parser.yy" /* yacc.c:1646 */ 7127 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7128 #line 7129 "Parser/parser.cc" /* yacc.c:1646 */ 8019 7129 break; 8020 7130 8021 7131 case 561: 8022 8023 /* Line 1806 of yacc.c */ 8024 #line 2182 "parser.yy" 8025 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7132 #line 2182 "parser.yy" /* yacc.c:1646 */ 7133 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7134 #line 7135 "Parser/parser.cc" /* yacc.c:1646 */ 8026 7135 break; 8027 7136 8028 7137 case 562: 8029 8030 /* Line 1806 of yacc.c */ 8031 #line 2187 "parser.yy" 8032 { 8033 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8034 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7138 #line 2187 "parser.yy" /* yacc.c:1646 */ 7139 { 7140 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7141 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8035 7142 } 7143 #line 7144 "Parser/parser.cc" /* yacc.c:1646 */ 8036 7144 break; 8037 7145 8038 7146 case 563: 8039 8040 /* Line 1806 of yacc.c */ 8041 #line 2192 "parser.yy" 8042 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7147 #line 2192 "parser.yy" /* yacc.c:1646 */ 7148 { (yyval.decl) = (yyvsp[-1].decl); } 7149 #line 7150 "Parser/parser.cc" /* yacc.c:1646 */ 8043 7150 break; 8044 7151 8045 7152 case 564: 8046 8047 /* Line 1806 of yacc.c */ 8048 #line 2197 "parser.yy" 8049 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7153 #line 2197 "parser.yy" /* yacc.c:1646 */ 7154 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7155 #line 7156 "Parser/parser.cc" /* yacc.c:1646 */ 8050 7156 break; 8051 7157 8052 7158 case 565: 8053 8054 /* Line 1806 of yacc.c */ 8055 #line 2199 "parser.yy" 8056 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7159 #line 2199 "parser.yy" /* yacc.c:1646 */ 7160 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7161 #line 7162 "Parser/parser.cc" /* yacc.c:1646 */ 8057 7162 break; 8058 7163 8059 7164 case 566: 8060 8061 /* Line 1806 of yacc.c */ 8062 #line 2201 "parser.yy" 8063 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7165 #line 2201 "parser.yy" /* yacc.c:1646 */ 7166 { (yyval.decl) = (yyvsp[-1].decl); } 7167 #line 7168 "Parser/parser.cc" /* yacc.c:1646 */ 8064 7168 break; 8065 7169 8066 7170 case 567: 8067 8068 /* Line 1806 of yacc.c */ 8069 #line 2206 "parser.yy" 8070 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7171 #line 2206 "parser.yy" /* yacc.c:1646 */ 7172 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7173 #line 7174 "Parser/parser.cc" /* yacc.c:1646 */ 8071 7174 break; 8072 7175 8073 7176 case 568: 8074 8075 /* Line 1806 of yacc.c */ 8076 #line 2208 "parser.yy" 8077 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7177 #line 2208 "parser.yy" /* yacc.c:1646 */ 7178 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7179 #line 7180 "Parser/parser.cc" /* yacc.c:1646 */ 8078 7180 break; 8079 7181 8080 7182 case 569: 8081 8082 /* Line 1806 of yacc.c */ 8083 #line 2210 "parser.yy" 8084 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7183 #line 2210 "parser.yy" /* yacc.c:1646 */ 7184 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7185 #line 7186 "Parser/parser.cc" /* yacc.c:1646 */ 8085 7186 break; 8086 7187 8087 7188 case 570: 8088 8089 /* Line 1806 of yacc.c */ 8090 #line 2212 "parser.yy" 8091 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7189 #line 2212 "parser.yy" /* yacc.c:1646 */ 7190 { (yyval.decl) = (yyvsp[-1].decl); } 7191 #line 7192 "Parser/parser.cc" /* yacc.c:1646 */ 8092 7192 break; 8093 7193 8094 7194 case 571: 8095 8096 /* Line 1806 of yacc.c */ 8097 #line 2217 "parser.yy" 8098 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7195 #line 2217 "parser.yy" /* yacc.c:1646 */ 7196 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7197 #line 7198 "Parser/parser.cc" /* yacc.c:1646 */ 8099 7198 break; 8100 7199 8101 7200 case 572: 8102 8103 /* Line 1806 of yacc.c */ 8104 #line 2219 "parser.yy" 8105 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7201 #line 2219 "parser.yy" /* yacc.c:1646 */ 7202 { (yyval.decl) = (yyvsp[-1].decl); } 7203 #line 7204 "Parser/parser.cc" /* yacc.c:1646 */ 8106 7204 break; 8107 7205 8108 7206 case 573: 8109 8110 /* Line 1806 of yacc.c */ 8111 #line 2228 "parser.yy" 8112 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7207 #line 2228 "parser.yy" /* yacc.c:1646 */ 7208 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7209 #line 7210 "Parser/parser.cc" /* yacc.c:1646 */ 8113 7210 break; 8114 7211 8115 7212 case 575: 8116 8117 /* Line 1806 of yacc.c */ 8118 #line 2231 "parser.yy" 8119 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7213 #line 2231 "parser.yy" /* yacc.c:1646 */ 7214 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7215 #line 7216 "Parser/parser.cc" /* yacc.c:1646 */ 8120 7216 break; 8121 7217 8122 7218 case 576: 8123 8124 /* Line 1806 of yacc.c */ 8125 #line 2236 "parser.yy" 8126 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7219 #line 2236 "parser.yy" /* yacc.c:1646 */ 7220 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7221 #line 7222 "Parser/parser.cc" /* yacc.c:1646 */ 8127 7222 break; 8128 7223 8129 7224 case 577: 8130 8131 /* Line 1806 of yacc.c */ 8132 #line 2238 "parser.yy" 8133 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7225 #line 2238 "parser.yy" /* yacc.c:1646 */ 7226 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7227 #line 7228 "Parser/parser.cc" /* yacc.c:1646 */ 8134 7228 break; 8135 7229 8136 7230 case 578: 8137 8138 /* Line 1806 of yacc.c */ 8139 #line 2240 "parser.yy" 8140 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7231 #line 2240 "parser.yy" /* yacc.c:1646 */ 7232 { (yyval.decl) = (yyvsp[-1].decl); } 7233 #line 7234 "Parser/parser.cc" /* yacc.c:1646 */ 8141 7234 break; 8142 7235 8143 7236 case 579: 8144 8145 /* Line 1806 of yacc.c */ 8146 #line 2245 "parser.yy" 8147 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7237 #line 2245 "parser.yy" /* yacc.c:1646 */ 7238 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7239 #line 7240 "Parser/parser.cc" /* yacc.c:1646 */ 8148 7240 break; 8149 7241 8150 7242 case 580: 8151 8152 /* Line 1806 of yacc.c */ 8153 #line 2247 "parser.yy" 8154 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7243 #line 2247 "parser.yy" /* yacc.c:1646 */ 7244 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7245 #line 7246 "Parser/parser.cc" /* yacc.c:1646 */ 8155 7246 break; 8156 7247 8157 7248 case 581: 8158 8159 /* Line 1806 of yacc.c */ 8160 #line 2249 "parser.yy" 8161 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7249 #line 2249 "parser.yy" /* yacc.c:1646 */ 7250 { (yyval.decl) = (yyvsp[-1].decl); } 7251 #line 7252 "Parser/parser.cc" /* yacc.c:1646 */ 8162 7252 break; 8163 7253 8164 7254 case 582: 8165 8166 /* Line 1806 of yacc.c */ 8167 #line 2254 "parser.yy" 8168 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7255 #line 2254 "parser.yy" /* yacc.c:1646 */ 7256 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7257 #line 7258 "Parser/parser.cc" /* yacc.c:1646 */ 8169 7258 break; 8170 7259 8171 7260 case 583: 8172 8173 /* Line 1806 of yacc.c */ 8174 #line 2256 "parser.yy" 8175 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7261 #line 2256 "parser.yy" /* yacc.c:1646 */ 7262 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7263 #line 7264 "Parser/parser.cc" /* yacc.c:1646 */ 8176 7264 break; 8177 7265 8178 7266 case 584: 8179 8180 /* Line 1806 of yacc.c */ 8181 #line 2258 "parser.yy" 8182 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7267 #line 2258 "parser.yy" /* yacc.c:1646 */ 7268 { (yyval.decl) = (yyvsp[-1].decl); } 7269 #line 7270 "Parser/parser.cc" /* yacc.c:1646 */ 8183 7270 break; 8184 7271 8185 7272 case 588: 8186 8187 /* Line 1806 of yacc.c */ 8188 #line 2273 "parser.yy" 8189 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7273 #line 2273 "parser.yy" /* yacc.c:1646 */ 7274 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7275 #line 7276 "Parser/parser.cc" /* yacc.c:1646 */ 8190 7276 break; 8191 7277 8192 7278 case 589: 8193 8194 /* Line 1806 of yacc.c */ 8195 #line 2275 "parser.yy" 8196 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7279 #line 2275 "parser.yy" /* yacc.c:1646 */ 7280 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7281 #line 7282 "Parser/parser.cc" /* yacc.c:1646 */ 8197 7282 break; 8198 7283 8199 7284 case 590: 8200 8201 /* Line 1806 of yacc.c */ 8202 #line 2277 "parser.yy" 8203 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7285 #line 2277 "parser.yy" /* yacc.c:1646 */ 7286 { (yyval.decl) = (yyvsp[-1].decl); } 7287 #line 7288 "Parser/parser.cc" /* yacc.c:1646 */ 8204 7288 break; 8205 7289 8206 7290 case 591: 8207 8208 /* Line 1806 of yacc.c */ 8209 #line 2282 "parser.yy" 8210 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7291 #line 2282 "parser.yy" /* yacc.c:1646 */ 7292 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7293 #line 7294 "Parser/parser.cc" /* yacc.c:1646 */ 8211 7294 break; 8212 7295 8213 7296 case 592: 8214 8215 /* Line 1806 of yacc.c */ 8216 #line 2284 "parser.yy" 8217 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7297 #line 2284 "parser.yy" /* yacc.c:1646 */ 7298 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7299 #line 7300 "Parser/parser.cc" /* yacc.c:1646 */ 8218 7300 break; 8219 7301 8220 7302 case 593: 8221 8222 /* Line 1806 of yacc.c */ 8223 #line 2286 "parser.yy" 8224 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7303 #line 2286 "parser.yy" /* yacc.c:1646 */ 7304 { (yyval.decl) = (yyvsp[-1].decl); } 7305 #line 7306 "Parser/parser.cc" /* yacc.c:1646 */ 8225 7306 break; 8226 7307 8227 7308 case 594: 8228 8229 /* Line 1806 of yacc.c */ 8230 #line 2291 "parser.yy" 8231 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7309 #line 2291 "parser.yy" /* yacc.c:1646 */ 7310 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7311 #line 7312 "Parser/parser.cc" /* yacc.c:1646 */ 8232 7312 break; 8233 7313 8234 7314 case 595: 8235 8236 /* Line 1806 of yacc.c */ 8237 #line 2293 "parser.yy" 8238 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7315 #line 2293 "parser.yy" /* yacc.c:1646 */ 7316 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7317 #line 7318 "Parser/parser.cc" /* yacc.c:1646 */ 8239 7318 break; 8240 7319 8241 7320 case 596: 8242 8243 /* Line 1806 of yacc.c */ 8244 #line 2295 "parser.yy" 8245 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7321 #line 2295 "parser.yy" /* yacc.c:1646 */ 7322 { (yyval.decl) = (yyvsp[-1].decl); } 7323 #line 7324 "Parser/parser.cc" /* yacc.c:1646 */ 8246 7324 break; 8247 7325 8248 7326 case 597: 8249 8250 /* Line 1806 of yacc.c */ 8251 #line 2310 "parser.yy" 8252 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7327 #line 2310 "parser.yy" /* yacc.c:1646 */ 7328 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7329 #line 7330 "Parser/parser.cc" /* yacc.c:1646 */ 8253 7330 break; 8254 7331 8255 7332 case 599: 8256 8257 /* Line 1806 of yacc.c */ 8258 #line 2313 "parser.yy" 8259 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7333 #line 2313 "parser.yy" /* yacc.c:1646 */ 7334 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7335 #line 7336 "Parser/parser.cc" /* yacc.c:1646 */ 8260 7336 break; 8261 7337 8262 7338 case 600: 8263 8264 /* Line 1806 of yacc.c */ 8265 #line 2315 "parser.yy" 8266 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7339 #line 2315 "parser.yy" /* yacc.c:1646 */ 7340 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7341 #line 7342 "Parser/parser.cc" /* yacc.c:1646 */ 8267 7342 break; 8268 7343 8269 7344 case 602: 8270 8271 /* Line 1806 of yacc.c */ 8272 #line 2321 "parser.yy" 8273 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7345 #line 2321 "parser.yy" /* yacc.c:1646 */ 7346 { (yyval.decl) = (yyvsp[-1].decl); } 7347 #line 7348 "Parser/parser.cc" /* yacc.c:1646 */ 8274 7348 break; 8275 7349 8276 7350 case 603: 8277 8278 /* Line 1806 of yacc.c */ 8279 #line 2326 "parser.yy" 8280 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7351 #line 2326 "parser.yy" /* yacc.c:1646 */ 7352 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7353 #line 7354 "Parser/parser.cc" /* yacc.c:1646 */ 8281 7354 break; 8282 7355 8283 7356 case 604: 8284 8285 /* Line 1806 of yacc.c */ 8286 #line 2328 "parser.yy" 8287 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7357 #line 2328 "parser.yy" /* yacc.c:1646 */ 7358 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7359 #line 7360 "Parser/parser.cc" /* yacc.c:1646 */ 8288 7360 break; 8289 7361 8290 7362 case 605: 8291 8292 /* Line 1806 of yacc.c */ 8293 #line 2330 "parser.yy" 8294 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7363 #line 2330 "parser.yy" /* yacc.c:1646 */ 7364 { (yyval.decl) = (yyvsp[-1].decl); } 7365 #line 7366 "Parser/parser.cc" /* yacc.c:1646 */ 8295 7366 break; 8296 7367 8297 7368 case 606: 8298 8299 /* Line 1806 of yacc.c */ 8300 #line 2335 "parser.yy" 8301 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7369 #line 2335 "parser.yy" /* yacc.c:1646 */ 7370 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7371 #line 7372 "Parser/parser.cc" /* yacc.c:1646 */ 8302 7372 break; 8303 7373 8304 7374 case 607: 8305 8306 /* Line 1806 of yacc.c */ 8307 #line 2337 "parser.yy" 8308 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7375 #line 2337 "parser.yy" /* yacc.c:1646 */ 7376 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7377 #line 7378 "Parser/parser.cc" /* yacc.c:1646 */ 8309 7378 break; 8310 7379 8311 7380 case 608: 8312 8313 /* Line 1806 of yacc.c */ 8314 #line 2339 "parser.yy" 8315 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7381 #line 2339 "parser.yy" /* yacc.c:1646 */ 7382 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7383 #line 7384 "Parser/parser.cc" /* yacc.c:1646 */ 8316 7384 break; 8317 7385 8318 7386 case 609: 8319 8320 /* Line 1806 of yacc.c */ 8321 #line 2341 "parser.yy" 8322 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7387 #line 2341 "parser.yy" /* yacc.c:1646 */ 7388 { (yyval.decl) = (yyvsp[-1].decl); } 7389 #line 7390 "Parser/parser.cc" /* yacc.c:1646 */ 8323 7390 break; 8324 7391 8325 7392 case 610: 8326 8327 /* Line 1806 of yacc.c */ 8328 #line 2346 "parser.yy" 8329 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7393 #line 2346 "parser.yy" /* yacc.c:1646 */ 7394 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7395 #line 7396 "Parser/parser.cc" /* yacc.c:1646 */ 8330 7396 break; 8331 7397 8332 7398 case 611: 8333 8334 /* Line 1806 of yacc.c */ 8335 #line 2348 "parser.yy" 8336 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7399 #line 2348 "parser.yy" /* yacc.c:1646 */ 7400 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7401 #line 7402 "Parser/parser.cc" /* yacc.c:1646 */ 8337 7402 break; 8338 7403 8339 7404 case 612: 8340 8341 /* Line 1806 of yacc.c */ 8342 #line 2350 "parser.yy" 8343 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7405 #line 2350 "parser.yy" /* yacc.c:1646 */ 7406 { (yyval.decl) = (yyvsp[-1].decl); } 7407 #line 7408 "Parser/parser.cc" /* yacc.c:1646 */ 8344 7408 break; 8345 7409 8346 7410 case 613: 8347 8348 /* Line 1806 of yacc.c */ 8349 #line 2360 "parser.yy" 8350 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7411 #line 2360 "parser.yy" /* yacc.c:1646 */ 7412 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7413 #line 7414 "Parser/parser.cc" /* yacc.c:1646 */ 8351 7414 break; 8352 7415 8353 7416 case 615: 8354 8355 /* Line 1806 of yacc.c */ 8356 #line 2363 "parser.yy" 8357 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7417 #line 2363 "parser.yy" /* yacc.c:1646 */ 7418 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7419 #line 7420 "Parser/parser.cc" /* yacc.c:1646 */ 8358 7420 break; 8359 7421 8360 7422 case 616: 8361 8362 /* Line 1806 of yacc.c */ 8363 #line 2365 "parser.yy" 8364 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7423 #line 2365 "parser.yy" /* yacc.c:1646 */ 7424 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7425 #line 7426 "Parser/parser.cc" /* yacc.c:1646 */ 8365 7426 break; 8366 7427 8367 7428 case 617: 8368 8369 /* Line 1806 of yacc.c */ 8370 #line 2370 "parser.yy" 8371 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7429 #line 2370 "parser.yy" /* yacc.c:1646 */ 7430 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7431 #line 7432 "Parser/parser.cc" /* yacc.c:1646 */ 8372 7432 break; 8373 7433 8374 7434 case 618: 8375 8376 /* Line 1806 of yacc.c */ 8377 #line 2372 "parser.yy" 8378 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7435 #line 2372 "parser.yy" /* yacc.c:1646 */ 7436 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7437 #line 7438 "Parser/parser.cc" /* yacc.c:1646 */ 8379 7438 break; 8380 7439 8381 7440 case 619: 8382 8383 /* Line 1806 of yacc.c */ 8384 #line 2374 "parser.yy" 8385 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7441 #line 2374 "parser.yy" /* yacc.c:1646 */ 7442 { (yyval.decl) = (yyvsp[-1].decl); } 7443 #line 7444 "Parser/parser.cc" /* yacc.c:1646 */ 8386 7444 break; 8387 7445 8388 7446 case 620: 8389 8390 /* Line 1806 of yacc.c */ 8391 #line 2379 "parser.yy" 8392 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7447 #line 2379 "parser.yy" /* yacc.c:1646 */ 7448 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7449 #line 7450 "Parser/parser.cc" /* yacc.c:1646 */ 8393 7450 break; 8394 7451 8395 7452 case 621: 8396 8397 /* Line 1806 of yacc.c */ 8398 #line 2381 "parser.yy" 8399 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7453 #line 2381 "parser.yy" /* yacc.c:1646 */ 7454 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7455 #line 7456 "Parser/parser.cc" /* yacc.c:1646 */ 8400 7456 break; 8401 7457 8402 7458 case 622: 8403 8404 /* Line 1806 of yacc.c */ 8405 #line 2383 "parser.yy" 8406 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7459 #line 2383 "parser.yy" /* yacc.c:1646 */ 7460 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7461 #line 7462 "Parser/parser.cc" /* yacc.c:1646 */ 8407 7462 break; 8408 7463 8409 7464 case 623: 8410 8411 /* Line 1806 of yacc.c */ 8412 #line 2385 "parser.yy" 8413 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7465 #line 2385 "parser.yy" /* yacc.c:1646 */ 7466 { (yyval.decl) = (yyvsp[-1].decl); } 7467 #line 7468 "Parser/parser.cc" /* yacc.c:1646 */ 8414 7468 break; 8415 7469 8416 7470 case 624: 8417 8418 /* Line 1806 of yacc.c */ 8419 #line 2390 "parser.yy" 8420 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7471 #line 2390 "parser.yy" /* yacc.c:1646 */ 7472 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7473 #line 7474 "Parser/parser.cc" /* yacc.c:1646 */ 8421 7474 break; 8422 7475 8423 7476 case 625: 8424 8425 /* Line 1806 of yacc.c */ 8426 #line 2392 "parser.yy" 8427 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7477 #line 2392 "parser.yy" /* yacc.c:1646 */ 7478 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7479 #line 7480 "Parser/parser.cc" /* yacc.c:1646 */ 8428 7480 break; 8429 7481 8430 7482 case 626: 8431 8432 /* Line 1806 of yacc.c */ 8433 #line 2394 "parser.yy" 8434 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7483 #line 2394 "parser.yy" /* yacc.c:1646 */ 7484 { (yyval.decl) = (yyvsp[-1].decl); } 7485 #line 7486 "Parser/parser.cc" /* yacc.c:1646 */ 8435 7486 break; 8436 7487 8437 7488 case 627: 8438 8439 /* Line 1806 of yacc.c */ 8440 #line 2425 "parser.yy" 8441 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7489 #line 2425 "parser.yy" /* yacc.c:1646 */ 7490 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7491 #line 7492 "Parser/parser.cc" /* yacc.c:1646 */ 8442 7492 break; 8443 7493 8444 7494 case 629: 8445 8446 /* Line 1806 of yacc.c */ 8447 #line 2428 "parser.yy" 8448 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7495 #line 2428 "parser.yy" /* yacc.c:1646 */ 7496 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7497 #line 7498 "Parser/parser.cc" /* yacc.c:1646 */ 8449 7498 break; 8450 7499 8451 7500 case 630: 8452 8453 /* Line 1806 of yacc.c */ 8454 #line 2430 "parser.yy" 8455 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7501 #line 2430 "parser.yy" /* yacc.c:1646 */ 7502 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7503 #line 7504 "Parser/parser.cc" /* yacc.c:1646 */ 8456 7504 break; 8457 7505 8458 7506 case 631: 8459 8460 /* Line 1806 of yacc.c */ 8461 #line 2435 "parser.yy" 8462 { 8463 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8464 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7507 #line 2435 "parser.yy" /* yacc.c:1646 */ 7508 { 7509 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7510 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8465 7511 } 7512 #line 7513 "Parser/parser.cc" /* yacc.c:1646 */ 8466 7513 break; 8467 7514 8468 7515 case 632: 8469 8470 /* Line 1806 of yacc.c */ 8471 #line 2440 "parser.yy" 8472 { 8473 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8474 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7516 #line 2440 "parser.yy" /* yacc.c:1646 */ 7517 { 7518 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7519 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8475 7520 } 7521 #line 7522 "Parser/parser.cc" /* yacc.c:1646 */ 8476 7522 break; 8477 7523 8478 7524 case 633: 8479 8480 /* Line 1806 of yacc.c */ 8481 #line 2448 "parser.yy" 8482 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7525 #line 2448 "parser.yy" /* yacc.c:1646 */ 7526 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7527 #line 7528 "Parser/parser.cc" /* yacc.c:1646 */ 8483 7528 break; 8484 7529 8485 7530 case 634: 8486 8487 /* Line 1806 of yacc.c */ 8488 #line 2450 "parser.yy" 8489 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7531 #line 2450 "parser.yy" /* yacc.c:1646 */ 7532 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7533 #line 7534 "Parser/parser.cc" /* yacc.c:1646 */ 8490 7534 break; 8491 7535 8492 7536 case 635: 8493 8494 /* Line 1806 of yacc.c */ 8495 #line 2452 "parser.yy" 8496 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7537 #line 2452 "parser.yy" /* yacc.c:1646 */ 7538 { (yyval.decl) = (yyvsp[-1].decl); } 7539 #line 7540 "Parser/parser.cc" /* yacc.c:1646 */ 8497 7540 break; 8498 7541 8499 7542 case 636: 8500 8501 /* Line 1806 of yacc.c */ 8502 #line 2457 "parser.yy" 8503 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7543 #line 2457 "parser.yy" /* yacc.c:1646 */ 7544 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7545 #line 7546 "Parser/parser.cc" /* yacc.c:1646 */ 8504 7546 break; 8505 7547 8506 7548 case 637: 8507 8508 /* Line 1806 of yacc.c */ 8509 #line 2459 "parser.yy" 8510 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7549 #line 2459 "parser.yy" /* yacc.c:1646 */ 7550 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7551 #line 7552 "Parser/parser.cc" /* yacc.c:1646 */ 8511 7552 break; 8512 7553 8513 7554 case 638: 8514 8515 /* Line 1806 of yacc.c */ 8516 #line 2464 "parser.yy" 8517 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7555 #line 2464 "parser.yy" /* yacc.c:1646 */ 7556 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7557 #line 7558 "Parser/parser.cc" /* yacc.c:1646 */ 8518 7558 break; 8519 7559 8520 7560 case 639: 8521 8522 /* Line 1806 of yacc.c */ 8523 #line 2466 "parser.yy" 8524 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7561 #line 2466 "parser.yy" /* yacc.c:1646 */ 7562 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7563 #line 7564 "Parser/parser.cc" /* yacc.c:1646 */ 8525 7564 break; 8526 7565 8527 7566 case 641: 8528 8529 /* Line 1806 of yacc.c */ 8530 #line 2481 "parser.yy" 8531 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7567 #line 2481 "parser.yy" /* yacc.c:1646 */ 7568 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7569 #line 7570 "Parser/parser.cc" /* yacc.c:1646 */ 8532 7570 break; 8533 7571 8534 7572 case 642: 8535 8536 /* Line 1806 of yacc.c */ 8537 #line 2483 "parser.yy" 8538 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7573 #line 2483 "parser.yy" /* yacc.c:1646 */ 7574 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7575 #line 7576 "Parser/parser.cc" /* yacc.c:1646 */ 8539 7576 break; 8540 7577 8541 7578 case 643: 8542 8543 /* Line 1806 of yacc.c */ 8544 #line 2488 "parser.yy" 7579 #line 2488 "parser.yy" /* yacc.c:1646 */ 8545 7580 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7581 #line 7582 "Parser/parser.cc" /* yacc.c:1646 */ 8546 7582 break; 8547 7583 8548 7584 case 644: 8549 8550 /* Line 1806 of yacc.c */ 8551 #line 2490 "parser.yy" 8552 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7585 #line 2490 "parser.yy" /* yacc.c:1646 */ 7586 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7587 #line 7588 "Parser/parser.cc" /* yacc.c:1646 */ 8553 7588 break; 8554 7589 8555 7590 case 645: 8556 8557 /* Line 1806 of yacc.c */ 8558 #line 2492 "parser.yy" 8559 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7591 #line 2492 "parser.yy" /* yacc.c:1646 */ 7592 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7593 #line 7594 "Parser/parser.cc" /* yacc.c:1646 */ 8560 7594 break; 8561 7595 8562 7596 case 646: 8563 8564 /* Line 1806 of yacc.c */ 8565 #line 2494 "parser.yy" 8566 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7597 #line 2494 "parser.yy" /* yacc.c:1646 */ 7598 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7599 #line 7600 "Parser/parser.cc" /* yacc.c:1646 */ 8567 7600 break; 8568 7601 8569 7602 case 647: 8570 8571 /* Line 1806 of yacc.c */ 8572 #line 2496 "parser.yy" 8573 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7603 #line 2496 "parser.yy" /* yacc.c:1646 */ 7604 { (yyval.decl) = (yyvsp[-1].decl); } 7605 #line 7606 "Parser/parser.cc" /* yacc.c:1646 */ 8574 7606 break; 8575 7607 8576 7608 case 649: 8577 8578 /* Line 1806 of yacc.c */ 8579 #line 2502 "parser.yy" 8580 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7609 #line 2502 "parser.yy" /* yacc.c:1646 */ 7610 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7611 #line 7612 "Parser/parser.cc" /* yacc.c:1646 */ 8581 7612 break; 8582 7613 8583 7614 case 650: 8584 8585 /* Line 1806 of yacc.c */ 8586 #line 2504 "parser.yy" 8587 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7615 #line 2504 "parser.yy" /* yacc.c:1646 */ 7616 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7617 #line 7618 "Parser/parser.cc" /* yacc.c:1646 */ 8588 7618 break; 8589 7619 8590 7620 case 651: 8591 8592 /* Line 1806 of yacc.c */ 8593 #line 2506 "parser.yy" 8594 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7621 #line 2506 "parser.yy" /* yacc.c:1646 */ 7622 { (yyval.decl) = (yyvsp[-1].decl); } 7623 #line 7624 "Parser/parser.cc" /* yacc.c:1646 */ 8595 7624 break; 8596 7625 8597 7626 case 652: 8598 8599 /* Line 1806 of yacc.c */ 8600 #line 2511 "parser.yy" 8601 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 7627 #line 2511 "parser.yy" /* yacc.c:1646 */ 7628 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7629 #line 7630 "Parser/parser.cc" /* yacc.c:1646 */ 8602 7630 break; 8603 7631 8604 7632 case 653: 8605 8606 /* Line 1806 of yacc.c */ 8607 #line 2513 "parser.yy" 8608 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7633 #line 2513 "parser.yy" /* yacc.c:1646 */ 7634 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7635 #line 7636 "Parser/parser.cc" /* yacc.c:1646 */ 8609 7636 break; 8610 7637 8611 7638 case 654: 8612 8613 /* Line 1806 of yacc.c */ 8614 #line 2515 "parser.yy" 8615 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7639 #line 2515 "parser.yy" /* yacc.c:1646 */ 7640 { (yyval.decl) = (yyvsp[-1].decl); } 7641 #line 7642 "Parser/parser.cc" /* yacc.c:1646 */ 8616 7642 break; 8617 7643 8618 7644 case 655: 8619 8620 /* Line 1806 of yacc.c */ 8621 #line 2521 "parser.yy" 7645 #line 2521 "parser.yy" /* yacc.c:1646 */ 8622 7646 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7647 #line 7648 "Parser/parser.cc" /* yacc.c:1646 */ 8623 7648 break; 8624 7649 8625 7650 case 656: 8626 8627 /* Line 1806 of yacc.c */ 8628 #line 2523 "parser.yy" 8629 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 7651 #line 2523 "parser.yy" /* yacc.c:1646 */ 7652 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7653 #line 7654 "Parser/parser.cc" /* yacc.c:1646 */ 8630 7654 break; 8631 7655 8632 7656 case 658: 8633 8634 /* Line 1806 of yacc.c */ 8635 #line 2529 "parser.yy" 8636 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 7657 #line 2529 "parser.yy" /* yacc.c:1646 */ 7658 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7659 #line 7660 "Parser/parser.cc" /* yacc.c:1646 */ 8637 7660 break; 8638 7661 8639 7662 case 659: 8640 8641 /* Line 1806 of yacc.c */ 8642 #line 2531 "parser.yy" 7663 #line 2531 "parser.yy" /* yacc.c:1646 */ 8643 7664 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7665 #line 7666 "Parser/parser.cc" /* yacc.c:1646 */ 8644 7666 break; 8645 7667 8646 7668 case 660: 8647 8648 /* Line 1806 of yacc.c */ 8649 #line 2533 "parser.yy" 8650 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 7669 #line 2533 "parser.yy" /* yacc.c:1646 */ 7670 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7671 #line 7672 "Parser/parser.cc" /* yacc.c:1646 */ 8651 7672 break; 8652 7673 8653 7674 case 661: 8654 8655 /* Line 1806 of yacc.c */ 8656 #line 2535 "parser.yy" 8657 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7675 #line 2535 "parser.yy" /* yacc.c:1646 */ 7676 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7677 #line 7678 "Parser/parser.cc" /* yacc.c:1646 */ 8658 7678 break; 8659 7679 8660 7680 case 663: 8661 8662 /* Line 1806 of yacc.c */ 8663 #line 2550 "parser.yy" 8664 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7681 #line 2550 "parser.yy" /* yacc.c:1646 */ 7682 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7683 #line 7684 "Parser/parser.cc" /* yacc.c:1646 */ 8665 7684 break; 8666 7685 8667 7686 case 664: 8668 8669 /* Line 1806 of yacc.c */ 8670 #line 2552 "parser.yy" 8671 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7687 #line 2552 "parser.yy" /* yacc.c:1646 */ 7688 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7689 #line 7690 "Parser/parser.cc" /* yacc.c:1646 */ 8672 7690 break; 8673 7691 8674 7692 case 665: 8675 8676 /* Line 1806 of yacc.c */ 8677 #line 2557 "parser.yy" 7693 #line 2557 "parser.yy" /* yacc.c:1646 */ 8678 7694 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7695 #line 7696 "Parser/parser.cc" /* yacc.c:1646 */ 8679 7696 break; 8680 7697 8681 7698 case 666: 8682 8683 /* Line 1806 of yacc.c */ 8684 #line 2559 "parser.yy" 8685 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7699 #line 2559 "parser.yy" /* yacc.c:1646 */ 7700 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7701 #line 7702 "Parser/parser.cc" /* yacc.c:1646 */ 8686 7702 break; 8687 7703 8688 7704 case 667: 8689 8690 /* Line 1806 of yacc.c */ 8691 #line 2561 "parser.yy" 8692 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7705 #line 2561 "parser.yy" /* yacc.c:1646 */ 7706 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7707 #line 7708 "Parser/parser.cc" /* yacc.c:1646 */ 8693 7708 break; 8694 7709 8695 7710 case 668: 8696 8697 /* Line 1806 of yacc.c */ 8698 #line 2563 "parser.yy" 8699 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7711 #line 2563 "parser.yy" /* yacc.c:1646 */ 7712 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7713 #line 7714 "Parser/parser.cc" /* yacc.c:1646 */ 8700 7714 break; 8701 7715 8702 7716 case 669: 8703 8704 /* Line 1806 of yacc.c */ 8705 #line 2565 "parser.yy" 8706 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7717 #line 2565 "parser.yy" /* yacc.c:1646 */ 7718 { (yyval.decl) = (yyvsp[-1].decl); } 7719 #line 7720 "Parser/parser.cc" /* yacc.c:1646 */ 8707 7720 break; 8708 7721 8709 7722 case 671: 8710 8711 /* Line 1806 of yacc.c */ 8712 #line 2571 "parser.yy" 8713 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7723 #line 2571 "parser.yy" /* yacc.c:1646 */ 7724 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7725 #line 7726 "Parser/parser.cc" /* yacc.c:1646 */ 8714 7726 break; 8715 7727 8716 7728 case 672: 8717 8718 /* Line 1806 of yacc.c */ 8719 #line 2573 "parser.yy" 8720 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7729 #line 2573 "parser.yy" /* yacc.c:1646 */ 7730 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7731 #line 7732 "Parser/parser.cc" /* yacc.c:1646 */ 8721 7732 break; 8722 7733 8723 7734 case 673: 8724 8725 /* Line 1806 of yacc.c */ 8726 #line 2575 "parser.yy" 8727 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7735 #line 2575 "parser.yy" /* yacc.c:1646 */ 7736 { (yyval.decl) = (yyvsp[-1].decl); } 7737 #line 7738 "Parser/parser.cc" /* yacc.c:1646 */ 8728 7738 break; 8729 7739 8730 7740 case 674: 8731 8732 /* Line 1806 of yacc.c */ 8733 #line 2580 "parser.yy" 8734 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 7741 #line 2580 "parser.yy" /* yacc.c:1646 */ 7742 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7743 #line 7744 "Parser/parser.cc" /* yacc.c:1646 */ 8735 7744 break; 8736 7745 8737 7746 case 675: 8738 8739 /* Line 1806 of yacc.c */ 8740 #line 2582 "parser.yy" 8741 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7747 #line 2582 "parser.yy" /* yacc.c:1646 */ 7748 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7749 #line 7750 "Parser/parser.cc" /* yacc.c:1646 */ 8742 7750 break; 8743 7751 8744 7752 case 676: 8745 8746 /* Line 1806 of yacc.c */ 8747 #line 2584 "parser.yy" 8748 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7753 #line 2584 "parser.yy" /* yacc.c:1646 */ 7754 { (yyval.decl) = (yyvsp[-1].decl); } 7755 #line 7756 "Parser/parser.cc" /* yacc.c:1646 */ 8749 7756 break; 8750 7757 8751 7758 case 678: 8752 8753 /* Line 1806 of yacc.c */ 8754 #line 2591 "parser.yy" 8755 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7759 #line 2591 "parser.yy" /* yacc.c:1646 */ 7760 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7761 #line 7762 "Parser/parser.cc" /* yacc.c:1646 */ 8756 7762 break; 8757 7763 8758 7764 case 680: 8759 8760 /* Line 1806 of yacc.c */ 8761 #line 2602 "parser.yy" 7765 #line 2602 "parser.yy" /* yacc.c:1646 */ 8762 7766 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7767 #line 7768 "Parser/parser.cc" /* yacc.c:1646 */ 8763 7768 break; 8764 7769 8765 7770 case 681: 8766 8767 /* Line 1806 of yacc.c */ 8768 #line 2605 "parser.yy" 8769 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7771 #line 2605 "parser.yy" /* yacc.c:1646 */ 7772 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7773 #line 7774 "Parser/parser.cc" /* yacc.c:1646 */ 8770 7774 break; 8771 7775 8772 7776 case 682: 8773 8774 /* Line 1806 of yacc.c */ 8775 #line 2607 "parser.yy" 8776 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 7777 #line 2607 "parser.yy" /* yacc.c:1646 */ 7778 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7779 #line 7780 "Parser/parser.cc" /* yacc.c:1646 */ 8777 7780 break; 8778 7781 8779 7782 case 683: 8780 8781 /* Line 1806 of yacc.c */ 8782 #line 2610 "parser.yy" 8783 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7783 #line 2610 "parser.yy" /* yacc.c:1646 */ 7784 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7785 #line 7786 "Parser/parser.cc" /* yacc.c:1646 */ 8784 7786 break; 8785 7787 8786 7788 case 684: 8787 8788 /* Line 1806 of yacc.c */ 8789 #line 2612 "parser.yy" 8790 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 7789 #line 2612 "parser.yy" /* yacc.c:1646 */ 7790 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7791 #line 7792 "Parser/parser.cc" /* yacc.c:1646 */ 8791 7792 break; 8792 7793 8793 7794 case 685: 8794 8795 /* Line 1806 of yacc.c */ 8796 #line 2614 "parser.yy" 8797 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 7795 #line 2614 "parser.yy" /* yacc.c:1646 */ 7796 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7797 #line 7798 "Parser/parser.cc" /* yacc.c:1646 */ 8798 7798 break; 8799 7799 8800 7800 case 687: 8801 8802 /* Line 1806 of yacc.c */ 8803 #line 2628 "parser.yy" 8804 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7801 #line 2628 "parser.yy" /* yacc.c:1646 */ 7802 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7803 #line 7804 "Parser/parser.cc" /* yacc.c:1646 */ 8805 7804 break; 8806 7805 8807 7806 case 688: 8808 8809 /* Line 1806 of yacc.c */ 8810 #line 2630 "parser.yy" 8811 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7807 #line 2630 "parser.yy" /* yacc.c:1646 */ 7808 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7809 #line 7810 "Parser/parser.cc" /* yacc.c:1646 */ 8812 7810 break; 8813 7811 8814 7812 case 689: 8815 8816 /* Line 1806 of yacc.c */ 8817 #line 2635 "parser.yy" 7813 #line 2635 "parser.yy" /* yacc.c:1646 */ 8818 7814 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7815 #line 7816 "Parser/parser.cc" /* yacc.c:1646 */ 8819 7816 break; 8820 7817 8821 7818 case 690: 8822 8823 /* Line 1806 of yacc.c */ 8824 #line 2637 "parser.yy" 8825 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7819 #line 2637 "parser.yy" /* yacc.c:1646 */ 7820 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7821 #line 7822 "Parser/parser.cc" /* yacc.c:1646 */ 8826 7822 break; 8827 7823 8828 7824 case 691: 8829 8830 /* Line 1806 of yacc.c */ 8831 #line 2639 "parser.yy" 8832 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7825 #line 2639 "parser.yy" /* yacc.c:1646 */ 7826 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7827 #line 7828 "Parser/parser.cc" /* yacc.c:1646 */ 8833 7828 break; 8834 7829 8835 7830 case 692: 8836 8837 /* Line 1806 of yacc.c */ 8838 #line 2641 "parser.yy" 8839 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7831 #line 2641 "parser.yy" /* yacc.c:1646 */ 7832 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7833 #line 7834 "Parser/parser.cc" /* yacc.c:1646 */ 8840 7834 break; 8841 7835 8842 7836 case 693: 8843 8844 /* Line 1806 of yacc.c */ 8845 #line 2643 "parser.yy" 8846 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7837 #line 2643 "parser.yy" /* yacc.c:1646 */ 7838 { (yyval.decl) = (yyvsp[-1].decl); } 7839 #line 7840 "Parser/parser.cc" /* yacc.c:1646 */ 8847 7840 break; 8848 7841 8849 7842 case 695: 8850 8851 /* Line 1806 of yacc.c */ 8852 #line 2649 "parser.yy" 8853 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7843 #line 2649 "parser.yy" /* yacc.c:1646 */ 7844 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7845 #line 7846 "Parser/parser.cc" /* yacc.c:1646 */ 8854 7846 break; 8855 7847 8856 7848 case 696: 8857 8858 /* Line 1806 of yacc.c */ 8859 #line 2651 "parser.yy" 8860 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7849 #line 2651 "parser.yy" /* yacc.c:1646 */ 7850 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7851 #line 7852 "Parser/parser.cc" /* yacc.c:1646 */ 8861 7852 break; 8862 7853 8863 7854 case 697: 8864 8865 /* Line 1806 of yacc.c */ 8866 #line 2653 "parser.yy" 8867 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7855 #line 2653 "parser.yy" /* yacc.c:1646 */ 7856 { (yyval.decl) = (yyvsp[-1].decl); } 7857 #line 7858 "Parser/parser.cc" /* yacc.c:1646 */ 8868 7858 break; 8869 7859 8870 7860 case 698: 8871 8872 /* Line 1806 of yacc.c */ 8873 #line 2658 "parser.yy" 8874 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7861 #line 2658 "parser.yy" /* yacc.c:1646 */ 7862 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7863 #line 7864 "Parser/parser.cc" /* yacc.c:1646 */ 8875 7864 break; 8876 7865 8877 7866 case 699: 8878 8879 /* Line 1806 of yacc.c */ 8880 #line 2660 "parser.yy" 8881 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7867 #line 2660 "parser.yy" /* yacc.c:1646 */ 7868 { (yyval.decl) = (yyvsp[-1].decl); } 7869 #line 7870 "Parser/parser.cc" /* yacc.c:1646 */ 8882 7870 break; 8883 7871 8884 7872 case 702: 8885 8886 /* Line 1806 of yacc.c */ 8887 #line 2670 "parser.yy" 8888 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7873 #line 2670 "parser.yy" /* yacc.c:1646 */ 7874 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7875 #line 7876 "Parser/parser.cc" /* yacc.c:1646 */ 8889 7876 break; 8890 7877 8891 7878 case 705: 8892 8893 /* Line 1806 of yacc.c */ 8894 #line 2680 "parser.yy" 8895 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7879 #line 2680 "parser.yy" /* yacc.c:1646 */ 7880 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7881 #line 7882 "Parser/parser.cc" /* yacc.c:1646 */ 8896 7882 break; 8897 7883 8898 7884 case 706: 8899 8900 /* Line 1806 of yacc.c */ 8901 #line 2682 "parser.yy" 8902 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7885 #line 2682 "parser.yy" /* yacc.c:1646 */ 7886 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7887 #line 7888 "Parser/parser.cc" /* yacc.c:1646 */ 8903 7888 break; 8904 7889 8905 7890 case 707: 8906 8907 /* Line 1806 of yacc.c */ 8908 #line 2684 "parser.yy" 8909 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7891 #line 2684 "parser.yy" /* yacc.c:1646 */ 7892 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7893 #line 7894 "Parser/parser.cc" /* yacc.c:1646 */ 8910 7894 break; 8911 7895 8912 7896 case 708: 8913 8914 /* Line 1806 of yacc.c */ 8915 #line 2686 "parser.yy" 8916 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7897 #line 2686 "parser.yy" /* yacc.c:1646 */ 7898 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7899 #line 7900 "Parser/parser.cc" /* yacc.c:1646 */ 8917 7900 break; 8918 7901 8919 7902 case 709: 8920 8921 /* Line 1806 of yacc.c */ 8922 #line 2688 "parser.yy" 8923 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7903 #line 2688 "parser.yy" /* yacc.c:1646 */ 7904 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7905 #line 7906 "Parser/parser.cc" /* yacc.c:1646 */ 8924 7906 break; 8925 7907 8926 7908 case 710: 8927 8928 /* Line 1806 of yacc.c */ 8929 #line 2690 "parser.yy" 8930 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7909 #line 2690 "parser.yy" /* yacc.c:1646 */ 7910 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7911 #line 7912 "Parser/parser.cc" /* yacc.c:1646 */ 8931 7912 break; 8932 7913 8933 7914 case 711: 8934 8935 /* Line 1806 of yacc.c */ 8936 #line 2697 "parser.yy" 8937 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7915 #line 2697 "parser.yy" /* yacc.c:1646 */ 7916 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7917 #line 7918 "Parser/parser.cc" /* yacc.c:1646 */ 8938 7918 break; 8939 7919 8940 7920 case 712: 8941 8942 /* Line 1806 of yacc.c */ 8943 #line 2699 "parser.yy" 8944 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7921 #line 2699 "parser.yy" /* yacc.c:1646 */ 7922 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7923 #line 7924 "Parser/parser.cc" /* yacc.c:1646 */ 8945 7924 break; 8946 7925 8947 7926 case 713: 8948 8949 /* Line 1806 of yacc.c */ 8950 #line 2701 "parser.yy" 8951 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7927 #line 2701 "parser.yy" /* yacc.c:1646 */ 7928 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7929 #line 7930 "Parser/parser.cc" /* yacc.c:1646 */ 8952 7930 break; 8953 7931 8954 7932 case 714: 8955 8956 /* Line 1806 of yacc.c */ 8957 #line 2703 "parser.yy" 8958 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7933 #line 2703 "parser.yy" /* yacc.c:1646 */ 7934 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7935 #line 7936 "Parser/parser.cc" /* yacc.c:1646 */ 8959 7936 break; 8960 7937 8961 7938 case 715: 8962 8963 /* Line 1806 of yacc.c */ 8964 #line 2705 "parser.yy" 8965 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7939 #line 2705 "parser.yy" /* yacc.c:1646 */ 7940 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7941 #line 7942 "Parser/parser.cc" /* yacc.c:1646 */ 8966 7942 break; 8967 7943 8968 7944 case 716: 8969 8970 /* Line 1806 of yacc.c */ 8971 #line 2707 "parser.yy" 8972 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7945 #line 2707 "parser.yy" /* yacc.c:1646 */ 7946 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7947 #line 7948 "Parser/parser.cc" /* yacc.c:1646 */ 8973 7948 break; 8974 7949 8975 7950 case 717: 8976 8977 /* Line 1806 of yacc.c */ 8978 #line 2709 "parser.yy" 8979 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7951 #line 2709 "parser.yy" /* yacc.c:1646 */ 7952 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7953 #line 7954 "Parser/parser.cc" /* yacc.c:1646 */ 8980 7954 break; 8981 7955 8982 7956 case 718: 8983 8984 /* Line 1806 of yacc.c */ 8985 #line 2711 "parser.yy" 8986 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7957 #line 2711 "parser.yy" /* yacc.c:1646 */ 7958 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7959 #line 7960 "Parser/parser.cc" /* yacc.c:1646 */ 8987 7960 break; 8988 7961 8989 7962 case 719: 8990 8991 /* Line 1806 of yacc.c */ 8992 #line 2713 "parser.yy" 8993 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7963 #line 2713 "parser.yy" /* yacc.c:1646 */ 7964 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7965 #line 7966 "Parser/parser.cc" /* yacc.c:1646 */ 8994 7966 break; 8995 7967 8996 7968 case 720: 8997 8998 /* Line 1806 of yacc.c */ 8999 #line 2715 "parser.yy" 9000 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7969 #line 2715 "parser.yy" /* yacc.c:1646 */ 7970 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7971 #line 7972 "Parser/parser.cc" /* yacc.c:1646 */ 9001 7972 break; 9002 7973 9003 7974 case 721: 9004 9005 /* Line 1806 of yacc.c */ 9006 #line 2720 "parser.yy" 9007 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7975 #line 2720 "parser.yy" /* yacc.c:1646 */ 7976 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7977 #line 7978 "Parser/parser.cc" /* yacc.c:1646 */ 9008 7978 break; 9009 7979 9010 7980 case 722: 9011 9012 /* Line 1806 of yacc.c */ 9013 #line 2722 "parser.yy" 9014 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7981 #line 2722 "parser.yy" /* yacc.c:1646 */ 7982 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7983 #line 7984 "Parser/parser.cc" /* yacc.c:1646 */ 9015 7984 break; 9016 7985 9017 7986 case 723: 9018 9019 /* Line 1806 of yacc.c */ 9020 #line 2727 "parser.yy" 9021 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 7987 #line 2727 "parser.yy" /* yacc.c:1646 */ 7988 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7989 #line 7990 "Parser/parser.cc" /* yacc.c:1646 */ 9022 7990 break; 9023 7991 9024 7992 case 724: 9025 9026 /* Line 1806 of yacc.c */ 9027 #line 2729 "parser.yy" 9028 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 7993 #line 2729 "parser.yy" /* yacc.c:1646 */ 7994 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 7995 #line 7996 "Parser/parser.cc" /* yacc.c:1646 */ 9029 7996 break; 9030 7997 9031 7998 case 726: 9032 9033 /* Line 1806 of yacc.c */ 9034 #line 2756 "parser.yy" 9035 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7999 #line 2756 "parser.yy" /* yacc.c:1646 */ 8000 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8001 #line 8002 "Parser/parser.cc" /* yacc.c:1646 */ 9036 8002 break; 9037 8003 9038 8004 case 730: 9039 9040 /* Line 1806 of yacc.c */ 9041 #line 2767 "parser.yy" 9042 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8005 #line 2767 "parser.yy" /* yacc.c:1646 */ 8006 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8007 #line 8008 "Parser/parser.cc" /* yacc.c:1646 */ 9043 8008 break; 9044 8009 9045 8010 case 731: 9046 9047 /* Line 1806 of yacc.c */ 9048 #line 2769 "parser.yy" 9049 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8011 #line 2769 "parser.yy" /* yacc.c:1646 */ 8012 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8013 #line 8014 "Parser/parser.cc" /* yacc.c:1646 */ 9050 8014 break; 9051 8015 9052 8016 case 732: 9053 9054 /* Line 1806 of yacc.c */ 9055 #line 2771 "parser.yy" 9056 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8017 #line 2771 "parser.yy" /* yacc.c:1646 */ 8018 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8019 #line 8020 "Parser/parser.cc" /* yacc.c:1646 */ 9057 8020 break; 9058 8021 9059 8022 case 733: 9060 9061 /* Line 1806 of yacc.c */ 9062 #line 2773 "parser.yy" 9063 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8023 #line 2773 "parser.yy" /* yacc.c:1646 */ 8024 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8025 #line 8026 "Parser/parser.cc" /* yacc.c:1646 */ 9064 8026 break; 9065 8027 9066 8028 case 734: 9067 9068 /* Line 1806 of yacc.c */ 9069 #line 2775 "parser.yy" 9070 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8029 #line 2775 "parser.yy" /* yacc.c:1646 */ 8030 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8031 #line 8032 "Parser/parser.cc" /* yacc.c:1646 */ 9071 8032 break; 9072 8033 9073 8034 case 735: 9074 9075 /* Line 1806 of yacc.c */ 9076 #line 2777 "parser.yy" 9077 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8035 #line 2777 "parser.yy" /* yacc.c:1646 */ 8036 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8037 #line 8038 "Parser/parser.cc" /* yacc.c:1646 */ 9078 8038 break; 9079 8039 9080 8040 case 736: 9081 9082 /* Line 1806 of yacc.c */ 9083 #line 2784 "parser.yy" 9084 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8041 #line 2784 "parser.yy" /* yacc.c:1646 */ 8042 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8043 #line 8044 "Parser/parser.cc" /* yacc.c:1646 */ 9085 8044 break; 9086 8045 9087 8046 case 737: 9088 9089 /* Line 1806 of yacc.c */ 9090 #line 2786 "parser.yy" 9091 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8047 #line 2786 "parser.yy" /* yacc.c:1646 */ 8048 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8049 #line 8050 "Parser/parser.cc" /* yacc.c:1646 */ 9092 8050 break; 9093 8051 9094 8052 case 738: 9095 9096 /* Line 1806 of yacc.c */ 9097 #line 2788 "parser.yy" 9098 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8053 #line 2788 "parser.yy" /* yacc.c:1646 */ 8054 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8055 #line 8056 "Parser/parser.cc" /* yacc.c:1646 */ 9099 8056 break; 9100 8057 9101 8058 case 739: 9102 9103 /* Line 1806 of yacc.c */ 9104 #line 2790 "parser.yy" 9105 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8059 #line 2790 "parser.yy" /* yacc.c:1646 */ 8060 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8061 #line 8062 "Parser/parser.cc" /* yacc.c:1646 */ 9106 8062 break; 9107 8063 9108 8064 case 740: 9109 9110 /* Line 1806 of yacc.c */ 9111 #line 2792 "parser.yy" 9112 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8065 #line 2792 "parser.yy" /* yacc.c:1646 */ 8066 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8067 #line 8068 "Parser/parser.cc" /* yacc.c:1646 */ 9113 8068 break; 9114 8069 9115 8070 case 741: 9116 9117 /* Line 1806 of yacc.c */ 9118 #line 2794 "parser.yy" 9119 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8071 #line 2794 "parser.yy" /* yacc.c:1646 */ 8072 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8073 #line 8074 "Parser/parser.cc" /* yacc.c:1646 */ 9120 8074 break; 9121 8075 9122 8076 case 742: 9123 9124 /* Line 1806 of yacc.c */ 9125 #line 2799 "parser.yy" 9126 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8077 #line 2799 "parser.yy" /* yacc.c:1646 */ 8078 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8079 #line 8080 "Parser/parser.cc" /* yacc.c:1646 */ 9127 8080 break; 9128 8081 9129 8082 case 743: 9130 9131 /* Line 1806 of yacc.c */ 9132 #line 2804 "parser.yy" 9133 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 8083 #line 2804 "parser.yy" /* yacc.c:1646 */ 8084 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); } 8085 #line 8086 "Parser/parser.cc" /* yacc.c:1646 */ 9134 8086 break; 9135 8087 9136 8088 case 744: 9137 9138 /* Line 1806 of yacc.c */ 9139 #line 2806 "parser.yy" 9140 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8089 #line 2806 "parser.yy" /* yacc.c:1646 */ 8090 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8091 #line 8092 "Parser/parser.cc" /* yacc.c:1646 */ 9141 8092 break; 9142 8093 9143 8094 case 745: 9144 9145 /* Line 1806 of yacc.c */ 9146 #line 2808 "parser.yy" 9147 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8095 #line 2808 "parser.yy" /* yacc.c:1646 */ 8096 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8097 #line 8098 "Parser/parser.cc" /* yacc.c:1646 */ 9148 8098 break; 9149 8099 9150 8100 case 748: 9151 9152 /* Line 1806 of yacc.c */ 9153 #line 2832 "parser.yy" 8101 #line 2832 "parser.yy" /* yacc.c:1646 */ 9154 8102 { (yyval.en) = 0; } 8103 #line 8104 "Parser/parser.cc" /* yacc.c:1646 */ 9155 8104 break; 9156 8105 9157 8106 case 749: 9158 9159 /* Line 1806 of yacc.c */ 9160 #line 2834 "parser.yy" 9161 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9162 break; 9163 9164 9165 9166 /* Line 1806 of yacc.c */ 9167 #line 9168 "Parser/parser.cc" 8107 #line 2834 "parser.yy" /* yacc.c:1646 */ 8108 { (yyval.en) = (yyvsp[0].en); } 8109 #line 8110 "Parser/parser.cc" /* yacc.c:1646 */ 8110 break; 8111 8112 8113 #line 8114 "Parser/parser.cc" /* yacc.c:1646 */ 9168 8114 default: break; 9169 8115 } … … 9187 8133 *++yyvsp = yyval; 9188 8134 9189 /* Now `shift' the result of the reduction. Determine what state8135 /* Now 'shift' the result of the reduction. Determine what state 9190 8136 that goes to, based on the state we popped back to and the rule 9191 8137 number reduced by. */ … … 9202 8148 9203 8149 9204 /*------------------------------------ .9205 | yyerrlab -- here on detecting error |9206 `------------------------------------ */8150 /*--------------------------------------. 8151 | yyerrlab -- here on detecting error. | 8152 `--------------------------------------*/ 9207 8153 yyerrlab: 9208 8154 /* Make sure we have latest lookahead translation. See comments at … … 9255 8201 { 9256 8202 /* If just tried and failed to reuse lookahead token after an 9257 8203 error, discard it. */ 9258 8204 9259 8205 if (yychar <= YYEOF) 9260 9261 9262 9263 9264 8206 { 8207 /* Return failure if at end of input. */ 8208 if (yychar == YYEOF) 8209 YYABORT; 8210 } 9265 8211 else 9266 9267 9268 9269 9270 8212 { 8213 yydestruct ("Error: discarding", 8214 yytoken, &yylval); 8215 yychar = YYEMPTY; 8216 } 9271 8217 } 9272 8218 … … 9287 8233 goto yyerrorlab; 9288 8234 9289 /* Do not reclaim the symbols of the rule wh ichaction triggered8235 /* Do not reclaim the symbols of the rule whose action triggered 9290 8236 this YYERROR. */ 9291 8237 YYPOPSTACK (yylen); … … 9300 8246 `-------------------------------------------------------------*/ 9301 8247 yyerrlab1: 9302 yyerrstatus = 3; 8248 yyerrstatus = 3; /* Each real token shifted decrements this. */ 9303 8249 9304 8250 for (;;) … … 9306 8252 yyn = yypact[yystate]; 9307 8253 if (!yypact_value_is_default (yyn)) 9308 9309 9310 9311 9312 9313 9314 9315 9316 8254 { 8255 yyn += YYTERROR; 8256 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 8257 { 8258 yyn = yytable[yyn]; 8259 if (0 < yyn) 8260 break; 8261 } 8262 } 9317 8263 9318 8264 /* Pop the current state because it cannot handle the error token. */ 9319 8265 if (yyssp == yyss) 9320 8266 YYABORT; 9321 8267 9322 8268 9323 8269 yydestruct ("Error: popping", 9324 8270 yystos[yystate], yyvsp); 9325 8271 YYPOPSTACK (1); 9326 8272 yystate = *yyssp; … … 9328 8274 } 9329 8275 8276 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 9330 8277 *++yyvsp = yylval; 8278 YY_IGNORE_MAYBE_UNINITIALIZED_END 9331 8279 9332 8280 … … 9352 8300 goto yyreturn; 9353 8301 9354 #if !defined (yyoverflow)|| YYERROR_VERBOSE8302 #if !defined yyoverflow || YYERROR_VERBOSE 9355 8303 /*-------------------------------------------------. 9356 8304 | yyexhaustedlab -- memory exhaustion comes here. | … … 9371 8319 yytoken, &yylval); 9372 8320 } 9373 /* Do not reclaim the symbols of the rule wh ichaction triggered8321 /* Do not reclaim the symbols of the rule whose action triggered 9374 8322 this YYABORT or YYACCEPT. */ 9375 8323 YYPOPSTACK (yylen); … … 9378 8326 { 9379 8327 yydestruct ("Cleanup: popping", 9380 8328 yystos[*yyssp], yyvsp); 9381 8329 YYPOPSTACK (1); 9382 8330 } … … 9389 8337 YYSTACK_FREE (yymsg); 9390 8338 #endif 9391 /* Make sure YYID is used. */ 9392 return YYID (yyresult); 8339 return yyresult; 9393 8340 } 9394 9395 9396 9397 /* Line 2067 of yacc.c */ 9398 #line 2837 "parser.yy" 8341 #line 2837 "parser.yy" /* yacc.c:1906 */ 9399 8342 9400 8343 // ----end of grammar---- … … 9415 8358 // compile-command: "make install" // 9416 8359 // End: // 9417 -
src/Parser/parser.h
r8b7ee09 rac71a86 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ 32 32 33 34 /* Tokens. */ 33 #ifndef YY_YY_PARSER_PARSER_H_INCLUDED 34 # define YY_YY_PARSER_PARSER_H_INCLUDED 35 /* Debug traces. */ 36 #ifndef YYDEBUG 37 # define YYDEBUG 1 38 #endif 39 #if YYDEBUG 40 extern int yydebug; 41 #endif 42 43 /* Token type. */ 35 44 #ifndef YYTOKENTYPE 36 45 # define YYTOKENTYPE 37 /* Put the tokens into the symbol table, so that GDB and other debuggers 38 know about them. */ 39 enum yytokentype { 40 TYPEDEF = 258, 41 AUTO = 259, 42 EXTERN = 260, 43 REGISTER = 261, 44 STATIC = 262, 45 INLINE = 263, 46 FORTRAN = 264, 47 CONST = 265, 48 VOLATILE = 266, 49 RESTRICT = 267, 50 FORALL = 268, 51 LVALUE = 269, 52 VOID = 270, 53 CHAR = 271, 54 SHORT = 272, 55 INT = 273, 56 LONG = 274, 57 FLOAT = 275, 58 DOUBLE = 276, 59 SIGNED = 277, 60 UNSIGNED = 278, 61 VALIST = 279, 62 BOOL = 280, 63 COMPLEX = 281, 64 IMAGINARY = 282, 65 TYPEOF = 283, 66 LABEL = 284, 67 ENUM = 285, 68 STRUCT = 286, 69 UNION = 287, 70 OTYPE = 288, 71 FTYPE = 289, 72 DTYPE = 290, 73 TRAIT = 291, 74 SIZEOF = 292, 75 OFFSETOF = 293, 76 ATTRIBUTE = 294, 77 EXTENSION = 295, 78 IF = 296, 79 ELSE = 297, 80 SWITCH = 298, 81 CASE = 299, 82 DEFAULT = 300, 83 DO = 301, 84 WHILE = 302, 85 FOR = 303, 86 BREAK = 304, 87 CONTINUE = 305, 88 GOTO = 306, 89 RETURN = 307, 90 CHOOSE = 308, 91 DISABLE = 309, 92 ENABLE = 310, 93 FALLTHRU = 311, 94 TRY = 312, 95 CATCH = 313, 96 CATCHRESUME = 314, 97 FINALLY = 315, 98 THROW = 316, 99 THROWRESUME = 317, 100 AT = 318, 101 ASM = 319, 102 ALIGNAS = 320, 103 ALIGNOF = 321, 104 ATOMIC = 322, 105 GENERIC = 323, 106 NORETURN = 324, 107 STATICASSERT = 325, 108 THREADLOCAL = 326, 109 IDENTIFIER = 327, 110 QUOTED_IDENTIFIER = 328, 111 TYPEDEFname = 329, 112 TYPEGENname = 330, 113 ATTR_IDENTIFIER = 331, 114 ATTR_TYPEDEFname = 332, 115 ATTR_TYPEGENname = 333, 116 INTEGERconstant = 334, 117 FLOATINGconstant = 335, 118 CHARACTERconstant = 336, 119 STRINGliteral = 337, 120 ZERO = 338, 121 ONE = 339, 122 ARROW = 340, 123 ICR = 341, 124 DECR = 342, 125 LS = 343, 126 RS = 344, 127 LE = 345, 128 GE = 346, 129 EQ = 347, 130 NE = 348, 131 ANDAND = 349, 132 OROR = 350, 133 ELLIPSIS = 351, 134 MULTassign = 352, 135 DIVassign = 353, 136 MODassign = 354, 137 PLUSassign = 355, 138 MINUSassign = 356, 139 LSassign = 357, 140 RSassign = 358, 141 ANDassign = 359, 142 ERassign = 360, 143 ORassign = 361, 144 ATassign = 362, 145 THEN = 363 146 }; 46 enum yytokentype 47 { 48 TYPEDEF = 258, 49 AUTO = 259, 50 EXTERN = 260, 51 REGISTER = 261, 52 STATIC = 262, 53 INLINE = 263, 54 FORTRAN = 264, 55 CONST = 265, 56 VOLATILE = 266, 57 RESTRICT = 267, 58 FORALL = 268, 59 LVALUE = 269, 60 VOID = 270, 61 CHAR = 271, 62 SHORT = 272, 63 INT = 273, 64 LONG = 274, 65 FLOAT = 275, 66 DOUBLE = 276, 67 SIGNED = 277, 68 UNSIGNED = 278, 69 VALIST = 279, 70 BOOL = 280, 71 COMPLEX = 281, 72 IMAGINARY = 282, 73 TYPEOF = 283, 74 LABEL = 284, 75 ENUM = 285, 76 STRUCT = 286, 77 UNION = 287, 78 OTYPE = 288, 79 FTYPE = 289, 80 DTYPE = 290, 81 TRAIT = 291, 82 SIZEOF = 292, 83 OFFSETOF = 293, 84 ATTRIBUTE = 294, 85 EXTENSION = 295, 86 IF = 296, 87 ELSE = 297, 88 SWITCH = 298, 89 CASE = 299, 90 DEFAULT = 300, 91 DO = 301, 92 WHILE = 302, 93 FOR = 303, 94 BREAK = 304, 95 CONTINUE = 305, 96 GOTO = 306, 97 RETURN = 307, 98 CHOOSE = 308, 99 DISABLE = 309, 100 ENABLE = 310, 101 FALLTHRU = 311, 102 TRY = 312, 103 CATCH = 313, 104 CATCHRESUME = 314, 105 FINALLY = 315, 106 THROW = 316, 107 THROWRESUME = 317, 108 AT = 318, 109 ASM = 319, 110 ALIGNAS = 320, 111 ALIGNOF = 321, 112 ATOMIC = 322, 113 GENERIC = 323, 114 NORETURN = 324, 115 STATICASSERT = 325, 116 THREADLOCAL = 326, 117 IDENTIFIER = 327, 118 QUOTED_IDENTIFIER = 328, 119 TYPEDEFname = 329, 120 TYPEGENname = 330, 121 ATTR_IDENTIFIER = 331, 122 ATTR_TYPEDEFname = 332, 123 ATTR_TYPEGENname = 333, 124 INTEGERconstant = 334, 125 FLOATINGconstant = 335, 126 CHARACTERconstant = 336, 127 STRINGliteral = 337, 128 ZERO = 338, 129 ONE = 339, 130 ARROW = 340, 131 ICR = 341, 132 DECR = 342, 133 LS = 343, 134 RS = 344, 135 LE = 345, 136 GE = 346, 137 EQ = 347, 138 NE = 348, 139 ANDAND = 349, 140 OROR = 350, 141 ELLIPSIS = 351, 142 MULTassign = 352, 143 DIVassign = 353, 144 MODassign = 354, 145 PLUSassign = 355, 146 MINUSassign = 356, 147 LSassign = 357, 148 RSassign = 358, 149 ANDassign = 359, 150 ERassign = 360, 151 ORassign = 361, 152 ATassign = 362, 153 THEN = 363 154 }; 147 155 #endif 148 156 /* Tokens. */ … … 254 262 #define THEN 363 255 263 256 257 258 264 /* Value type. */ 259 265 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 260 typedef union YYSTYPE 266 typedef union YYSTYPE YYSTYPE; 267 union YYSTYPE 261 268 { 262 263 /* Line 2068 of yacc.c */ 264 #line 115 "parser.yy" 269 #line 115 "parser.yy" /* yacc.c:1909 */ 265 270 266 271 Token tok; … … 278 283 bool flag; 279 284 280 281 282 /* Line 2068 of yacc.c */ 283 #line 284 "Parser/parser.h" 284 } YYSTYPE; 285 #line 286 "Parser/parser.h" /* yacc.c:1909 */ 286 }; 285 287 # define YYSTYPE_IS_TRIVIAL 1 286 # define yystype YYSTYPE /* obsolescent; will be withdrawn */287 288 # define YYSTYPE_IS_DECLARED 1 288 289 #endif 289 290 291 290 292 extern YYSTYPE yylval; 291 293 292 294 int yyparse (void); 295 296 #endif /* !YY_YY_PARSER_PARSER_H_INCLUDED */ -
src/Parser/parser.yy
r8b7ee09 rac71a86 311 311 constant: 312 312 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 313 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( *$1) ); }314 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( *$1) ); }315 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( *$1) ); }313 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( assign_strptr($1) ) ); } 314 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( assign_strptr($1) ) ); } 315 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( assign_strptr($1) ) ); } 316 316 ; 317 317 … … 338 338 339 339 string_literal_list: // juxtaposed strings are concatenated 340 STRINGliteral { $$ = build_constantStr( *$1); }340 STRINGliteral { $$ = build_constantStr( assign_strptr($1) ); } 341 341 | string_literal_list STRINGliteral 342 342 { … … 838 838 jump_statement: 839 839 GOTO IDENTIFIER ';' 840 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Goto ) ); }840 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Goto ) ); } 841 841 | GOTO '*' comma_expression ';' // GCC, computed goto 842 842 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3); … … 849 849 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 850 850 // the target of the transfer appears only at the start of an iteration statement. 851 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Continue ) ); delete $2; }851 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Continue ) ); } 852 852 | BREAK ';' 853 853 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. … … 856 856 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 857 857 // the target of the transfer appears only at the start of an iteration statement. 858 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Break ) ); delete $2; }858 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Break ) ); } 859 859 | RETURN comma_expression_opt ';' 860 860 { $$ = new StatementNode( build_return( $2 ) ); } … … 979 979 label_list: 980 980 no_attr_identifier 981 { $$ = new LabelNode(); $$->labels.push_back( *$1); }981 { $$ = new LabelNode(); $$->labels.push_back( assign_strptr($1) ); } 982 982 | label_list ',' no_attr_identifier 983 { $$ = $1; $1->labels.push_back( *$3); }983 { $$ = $1; $1->labels.push_back( assign_strptr($3) ); } 984 984 ; 985 985 … … 1993 1993 { 1994 1994 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 1995 linkage = LinkageSpec::fromString( *$2);1995 linkage = LinkageSpec::fromString( assign_strptr($2) ); 1996 1996 } 1997 1997 '{' external_definition_list_opt '}' // C++-style linkage specifier -
src/SynTree/Expression.cc
r8b7ee09 rac71a86 383 383 Expression( _aname ), function(_function), args(_args) {} 384 384 385 UntypedExpr::~UntypedExpr() {} 385 UntypedExpr::~UntypedExpr() { 386 delete function; 387 } 386 388 387 389 void UntypedExpr::print( std::ostream &os, int indent ) const { -
src/SynTree/Statement.cc
r8b7ee09 rac71a86 124 124 Statement( other ), condition( maybeClone( other.condition ) ), thenPart( maybeClone( other.thenPart ) ), elsePart( maybeClone( other.elsePart ) ) {} 125 125 126 IfStmt::~IfStmt() {} 126 IfStmt::~IfStmt() { 127 delete condition; 128 delete thenPart; 129 delete elsePart; 130 } 127 131 128 132 void IfStmt::print( std::ostream &os, int indent ) const {
Note: See TracChangeset
for help on using the changeset viewer.