Changeset ac71a86
- Timestamp:
- Aug 19, 2016, 12:57:05 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, 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: