Changeset 58dd019
- Timestamp:
- Dec 13, 2016, 3:14:59 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 04c8bba
- Parents:
- 2ee5426
- Location:
- src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
r2ee5426 r58dd019 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 4 13:35:30201613 // Update Count : 3 5212 // Last Modified On : Tue Dec 13 14:51:27 2016 13 // Update Count : 362 14 14 // 15 15 … … 57 57 if ( decl->get_extension() ) { 58 58 output << "__extension__ "; 59 } // if 60 } // extension 61 62 void CodeGenerator::asmName( DeclarationWithType * decl ) { 63 if ( ConstantExpr * asmName = decl->get_asmName() ) { 64 output << " asm ( " << asmName->get_constant()->get_value() << " )"; 59 65 } // if 60 66 } // extension … … 141 147 } // if 142 148 149 asmName( functionDecl ); 150 143 151 // acceptAll( functionDecl->get_oldDecls(), *this ); 144 152 if ( functionDecl->get_statements() ) { … … 153 161 handleStorageClass( objectDecl ); 154 162 output << genType( objectDecl->get_type(), mangleName( objectDecl ) ); 163 164 asmName( objectDecl ); 155 165 156 166 if ( objectDecl->get_init() ) { -
src/CodeGen/CodeGenerator.h
r2ee5426 r58dd019 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 4 13:37:07201613 // Update Count : 3 812 // Last Modified On : Tue Dec 13 13:51:53 2016 13 // Update Count : 39 14 14 // 15 15 … … 107 107 }; 108 108 109 void asmName( DeclarationWithType *decl ); 110 109 111 void extension( Expression *expr ); 110 112 void extension( Declaration *decl ); -
src/CodeGen/OperatorTable.cc
r2ee5426 r58dd019 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : T hu Apr 14 16:48:27201613 // Update Count : 911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 14:33:05 2016 13 // Update Count : 10 14 14 // 15 15 … … 21 21 const OperatorInfo tableValues[] = { 22 22 { "?[?]", "", "_operator_index", OT_INDEX }, 23 { "?{}", "=", 23 { "?{}", "=", "_constructor", OT_CTOR }, 24 24 { "^?{}", "", "_destructor", OT_DTOR }, 25 25 { "?()", "", "_operator_call", OT_CALL }, -
src/Parser/DeclarationNode.cc
r2ee5426 r58dd019 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08 201613 // Update Count : 6 5112 // Last Modified On : Tue Dec 13 14:43:38 2016 13 // Update Count : 660 14 14 // 15 15 … … 48 48 type( nullptr ), 49 49 storageClass( NoStorageClass ), 50 bitfieldWidth( nullptr ), 50 51 isInline( false ), 51 52 isNoreturn( false ), 52 bitfieldWidth( nullptr ),53 initializer( nullptr ),54 53 hasEllipsis( false ), 55 54 linkage( ::linkage ), 55 asmName( nullptr ), 56 initializer( nullptr ), 56 57 extension( false ) { 57 58 … … 75 76 delete type; 76 77 delete bitfieldWidth; 78 // asmName, no delete, passed to next stage 77 79 delete initializer; 78 80 } … … 90 92 newnode->set_next( maybeClone( get_next() ) ); 91 93 newnode->linkage = linkage; 94 newnode->asmName = maybeClone( asmName ); 92 95 93 96 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; … … 641 644 } 642 645 646 DeclarationNode * DeclarationNode::addAsmName( ConstantExpr * newname ) { 647 assert( ! asmName ); 648 asmName = newname; 649 return this; 650 } 651 643 652 DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) { 644 653 bitfieldWidth = size; … … 947 956 948 957 if ( type ) { 949 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );958 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 950 959 } // if 951 960 952 961 if ( ! isInline && ! isNoreturn ) { 953 962 assertf( name, "ObjectDecl are assumed to have names\n" ); 954 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_ extension( extension );963 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_asmName( asmName )->set_extension( extension ); 955 964 } // if 956 965 -
src/Parser/ParseNode.h
r2ee5426 r58dd019 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08201613 // Update Count : 6 3612 // Last Modified On : Tue Dec 13 13:26:56 2016 13 // Update Count : 642 14 14 // 15 15 … … 73 73 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode * des = nullptr ); 74 74 ~InitializerNode(); 75 virtual InitializerNode * clone() const { assert( false );return nullptr; }75 virtual InitializerNode * clone() const { return nullptr; } 76 76 77 77 ExpressionNode * get_expression() const { return expr; } … … 257 257 DeclarationNode * addAssertions( DeclarationNode * ); 258 258 DeclarationNode * addName( std::string * ); 259 DeclarationNode * addAsmName( ConstantExpr * ); 259 260 DeclarationNode * addBitfield( ExpressionNode * size ); 260 261 DeclarationNode * addVarArgs(); … … 309 310 TypeData * type; 310 311 StorageClass storageClass; 312 ExpressionNode * bitfieldWidth; 311 313 bool isInline, isNoreturn; 312 std::list< std::string > attributes;313 ExpressionNode * bitfieldWidth;314 314 std::unique_ptr<ExpressionNode> enumeratorValue; 315 InitializerNode * initializer;316 315 bool hasEllipsis; 317 316 LinkageSpec::Spec linkage; 317 ConstantExpr *asmName; 318 std::list< std::string > attributes; 319 InitializerNode * initializer; 318 320 bool extension = false; 319 321 std::string error; -
src/Parser/TypeData.cc
r2ee5426 r58dd019 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Sep 24 11:14:26201613 // Update Count : 4 1512 // Last Modified On : Tue Dec 13 13:40:33 2016 13 // Update Count : 420 14 14 // 15 15 … … 721 721 } // buildTypeof 722 722 723 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) {723 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init ) { 724 724 if ( td->kind == TypeData::Function ) { 725 725 FunctionDecl * decl; … … 743 743 } // for 744 744 buildList( td->function.oldDeclList, decl->get_oldDecls() ); 745 return decl ;745 return decl->set_asmName( asmName ); 746 746 } else if ( td->kind == TypeData::Aggregate ) { 747 747 return buildAggregate( td ); … … 751 751 return buildSymbolic( td, name, sc ); 752 752 } else { 753 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn);753 return (new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn ))->set_asmName( asmName ); 754 754 } // if 755 755 return nullptr; … … 769 769 break; 770 770 default: 771 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall ) ) );771 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall, nullptr ) ) ); 772 772 } // switch 773 773 } else { -
src/Parser/TypeData.h
r2ee5426 r58dd019 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 12:34:08201613 // Update Count : 14 212 // Last Modified On : Tue Dec 13 13:39:39 2016 13 // Update Count : 143 14 14 // 15 15 … … 111 111 TupleType * buildTuple( const TypeData * ); 112 112 TypeofType * buildTypeof( const TypeData * ); 113 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = nullptr );113 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr ); 114 114 FunctionType * buildFunction( const TypeData * ); 115 115 -
src/Parser/parser.cc
r2ee5426 r58dd019 1 /* A Bison parser, made by GNU Bison 3.0.2. */1 /* A Bison parser, made by GNU Bison 2.5. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2013Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 3.0.2"47 #define YYBISON_VERSION "2.5" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */ 62 #define YYLSP_NEEDED 0 61 63 62 64 63 65 64 66 /* Copy the first part of user declarations. */ 65 #line 42 "parser.yy" /* yacc.c:339 */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 66 70 67 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 91 95 } // appendStr 92 96 93 #line 94 "Parser/parser.cc" /* yacc.c:339 */ 94 95 # ifndef YY_NULLPTR 96 # if defined __cplusplus && 201103L <= __cplusplus 97 # define YY_NULLPTR nullptr 98 # else 99 # define YY_NULLPTR 0 100 # endif 101 # endif 97 98 /* Line 268 of yacc.c */ 99 #line 100 "Parser/parser.cc" 100 101 /* Enabling traces. */ 102 #ifndef YYDEBUG 103 # define YYDEBUG 1 104 #endif 102 105 103 106 /* Enabling verbose error messages. */ … … 109 112 #endif 110 113 111 /* In a future release of Bison, this section will be replaced 112 by #include "y.tab.h". */ 113 #ifndef YY_YY_Y_TAB_H_INCLUDED 114 # define YY_YY_Y_TAB_H_INCLUDED 115 /* Debug traces. */ 116 #ifndef YYDEBUG 117 # define YYDEBUG 1 114 /* Enabling the token table. */ 115 #ifndef YYTOKEN_TABLE 116 # define YYTOKEN_TABLE 0 118 117 #endif 119 #if YYDEBUG 120 extern int yydebug; 121 #endif 122 123 /* Token type. */ 118 119 120 /* Tokens. */ 124 121 #ifndef YYTOKENTYPE 125 122 # define YYTOKENTYPE 126 enum yytokentype 127 { 128 TYPEDEF = 258, 129 AUTO = 259, 130 EXTERN = 260, 131 REGISTER = 261, 132 STATIC = 262, 133 INLINE = 263, 134 FORTRAN = 264, 135 CONST = 265, 136 VOLATILE = 266, 137 RESTRICT = 267, 138 FORALL = 268, 139 LVALUE = 269, 140 VOID = 270, 141 CHAR = 271, 142 SHORT = 272, 143 INT = 273, 144 LONG = 274, 145 FLOAT = 275, 146 DOUBLE = 276, 147 SIGNED = 277, 148 UNSIGNED = 278, 149 ZERO_T = 279, 150 ONE_T = 280, 151 VALIST = 281, 152 BOOL = 282, 153 COMPLEX = 283, 154 IMAGINARY = 284, 155 TYPEOF = 285, 156 LABEL = 286, 157 ENUM = 287, 158 STRUCT = 288, 159 UNION = 289, 160 OTYPE = 290, 161 FTYPE = 291, 162 DTYPE = 292, 163 TRAIT = 293, 164 SIZEOF = 294, 165 OFFSETOF = 295, 166 ATTRIBUTE = 296, 167 EXTENSION = 297, 168 IF = 298, 169 ELSE = 299, 170 SWITCH = 300, 171 CASE = 301, 172 DEFAULT = 302, 173 DO = 303, 174 WHILE = 304, 175 FOR = 305, 176 BREAK = 306, 177 CONTINUE = 307, 178 GOTO = 308, 179 RETURN = 309, 180 CHOOSE = 310, 181 DISABLE = 311, 182 ENABLE = 312, 183 FALLTHRU = 313, 184 TRY = 314, 185 CATCH = 315, 186 CATCHRESUME = 316, 187 FINALLY = 317, 188 THROW = 318, 189 THROWRESUME = 319, 190 AT = 320, 191 ASM = 321, 192 ALIGNAS = 322, 193 ALIGNOF = 323, 194 ATOMIC = 324, 195 GENERIC = 325, 196 NORETURN = 326, 197 STATICASSERT = 327, 198 THREADLOCAL = 328, 199 IDENTIFIER = 329, 200 QUOTED_IDENTIFIER = 330, 201 TYPEDEFname = 331, 202 TYPEGENname = 332, 203 ATTR_IDENTIFIER = 333, 204 ATTR_TYPEDEFname = 334, 205 ATTR_TYPEGENname = 335, 206 INTEGERconstant = 336, 207 CHARACTERconstant = 337, 208 STRINGliteral = 338, 209 REALDECIMALconstant = 339, 210 REALFRACTIONconstant = 340, 211 FLOATINGconstant = 341, 212 ZERO = 342, 213 ONE = 343, 214 ARROW = 344, 215 ICR = 345, 216 DECR = 346, 217 LS = 347, 218 RS = 348, 219 LE = 349, 220 GE = 350, 221 EQ = 351, 222 NE = 352, 223 ANDAND = 353, 224 OROR = 354, 225 ELLIPSIS = 355, 226 MULTassign = 356, 227 DIVassign = 357, 228 MODassign = 358, 229 PLUSassign = 359, 230 MINUSassign = 360, 231 LSassign = 361, 232 RSassign = 362, 233 ANDassign = 363, 234 ERassign = 364, 235 ORassign = 365, 236 ATassign = 366, 237 THEN = 367 238 }; 123 /* Put the tokens into the symbol table, so that GDB and other debuggers 124 know about them. */ 125 enum yytokentype { 126 TYPEDEF = 258, 127 AUTO = 259, 128 EXTERN = 260, 129 REGISTER = 261, 130 STATIC = 262, 131 INLINE = 263, 132 FORTRAN = 264, 133 CONST = 265, 134 VOLATILE = 266, 135 RESTRICT = 267, 136 FORALL = 268, 137 LVALUE = 269, 138 VOID = 270, 139 CHAR = 271, 140 SHORT = 272, 141 INT = 273, 142 LONG = 274, 143 FLOAT = 275, 144 DOUBLE = 276, 145 SIGNED = 277, 146 UNSIGNED = 278, 147 ZERO_T = 279, 148 ONE_T = 280, 149 VALIST = 281, 150 BOOL = 282, 151 COMPLEX = 283, 152 IMAGINARY = 284, 153 TYPEOF = 285, 154 LABEL = 286, 155 ENUM = 287, 156 STRUCT = 288, 157 UNION = 289, 158 OTYPE = 290, 159 FTYPE = 291, 160 DTYPE = 292, 161 TRAIT = 293, 162 SIZEOF = 294, 163 OFFSETOF = 295, 164 ATTRIBUTE = 296, 165 EXTENSION = 297, 166 IF = 298, 167 ELSE = 299, 168 SWITCH = 300, 169 CASE = 301, 170 DEFAULT = 302, 171 DO = 303, 172 WHILE = 304, 173 FOR = 305, 174 BREAK = 306, 175 CONTINUE = 307, 176 GOTO = 308, 177 RETURN = 309, 178 CHOOSE = 310, 179 DISABLE = 311, 180 ENABLE = 312, 181 FALLTHRU = 313, 182 TRY = 314, 183 CATCH = 315, 184 CATCHRESUME = 316, 185 FINALLY = 317, 186 THROW = 318, 187 THROWRESUME = 319, 188 AT = 320, 189 ASM = 321, 190 ALIGNAS = 322, 191 ALIGNOF = 323, 192 ATOMIC = 324, 193 GENERIC = 325, 194 NORETURN = 326, 195 STATICASSERT = 327, 196 THREADLOCAL = 328, 197 IDENTIFIER = 329, 198 QUOTED_IDENTIFIER = 330, 199 TYPEDEFname = 331, 200 TYPEGENname = 332, 201 ATTR_IDENTIFIER = 333, 202 ATTR_TYPEDEFname = 334, 203 ATTR_TYPEGENname = 335, 204 INTEGERconstant = 336, 205 CHARACTERconstant = 337, 206 STRINGliteral = 338, 207 REALDECIMALconstant = 339, 208 REALFRACTIONconstant = 340, 209 FLOATINGconstant = 341, 210 ZERO = 342, 211 ONE = 343, 212 ARROW = 344, 213 ICR = 345, 214 DECR = 346, 215 LS = 347, 216 RS = 348, 217 LE = 349, 218 GE = 350, 219 EQ = 351, 220 NE = 352, 221 ANDAND = 353, 222 OROR = 354, 223 ELLIPSIS = 355, 224 MULTassign = 356, 225 DIVassign = 357, 226 MODassign = 358, 227 PLUSassign = 359, 228 MINUSassign = 360, 229 LSassign = 361, 230 RSassign = 362, 231 ANDassign = 363, 232 ERassign = 364, 233 ORassign = 365, 234 ATassign = 366, 235 THEN = 367 236 }; 239 237 #endif 240 238 /* Tokens. */ … … 350 348 #define THEN 367 351 349 352 /* Value type. */ 350 351 352 353 353 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 354 typedef union YYSTYPE YYSTYPE; 355 union YYSTYPE 354 typedef union YYSTYPE 356 355 { 357 #line 120 "parser.yy" /* yacc.c:355 */ 356 357 /* Line 293 of yacc.c */ 358 #line 120 "parser.yy" 358 359 359 360 Token tok; … … 372 373 bool flag; 373 374 374 #line 375 "Parser/parser.cc" /* yacc.c:355 */ 375 }; 375 376 377 /* Line 293 of yacc.c */ 378 #line 379 "Parser/parser.cc" 379 } YYSTYPE; 376 380 # define YYSTYPE_IS_TRIVIAL 1 381 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 377 382 # define YYSTYPE_IS_DECLARED 1 378 383 #endif 379 384 380 385 381 extern YYSTYPE yylval;382 383 int yyparse (void);384 385 #endif /* !YY_YY_Y_TAB_H_INCLUDED */386 387 386 /* Copy the second part of user declarations. */ 388 387 389 #line 390 "Parser/parser.cc" /* yacc.c:358 */ 388 389 /* Line 343 of yacc.c */ 390 #line 391 "Parser/parser.cc" 390 391 391 392 #ifdef short … … 401 402 #ifdef YYTYPE_INT8 402 403 typedef YYTYPE_INT8 yytype_int8; 404 #elif (defined __STDC__ || defined __C99__FUNC__ \ 405 || defined __cplusplus || defined _MSC_VER) 406 typedef signed char yytype_int8; 403 407 #else 404 typedef s igned charyytype_int8;408 typedef short int yytype_int8; 405 409 #endif 406 410 … … 422 426 # elif defined size_t 423 427 # define YYSIZE_T size_t 424 # elif ! defined YYSIZE_T 428 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 429 || defined __cplusplus || defined _MSC_VER) 425 430 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 426 431 # define YYSIZE_T size_t … … 436 441 # if ENABLE_NLS 437 442 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 438 # define YY_( Msgid) dgettext ("bison-runtime", Msgid)443 # define YY_(msgid) dgettext ("bison-runtime", msgid) 439 444 # endif 440 445 # endif 441 446 # ifndef YY_ 442 # define YY_( Msgid) Msgid447 # define YY_(msgid) msgid 443 448 # endif 444 449 #endif 445 450 446 #ifndef YY_ATTRIBUTE447 # if (defined __GNUC__ \448 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \449 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C450 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)451 # else452 # define YY_ATTRIBUTE(Spec) /* empty */453 # endif454 #endif455 456 #ifndef YY_ATTRIBUTE_PURE457 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))458 #endif459 460 #ifndef YY_ATTRIBUTE_UNUSED461 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))462 #endif463 464 #if !defined _Noreturn \465 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)466 # if defined _MSC_VER && 1200 <= _MSC_VER467 # define _Noreturn __declspec (noreturn)468 # else469 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))470 # endif471 #endif472 473 451 /* Suppress unused-variable warnings by "using" E. */ 474 452 #if ! defined lint || defined __GNUC__ 475 # define YYUSE( E) ((void) (E))453 # define YYUSE(e) ((void) (e)) 476 454 #else 477 # define YYUSE( E) /* empty */455 # define YYUSE(e) /* empty */ 478 456 #endif 479 457 480 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 481 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 483 _Pragma ("GCC diagnostic push") \ 484 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 485 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 486 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 487 _Pragma ("GCC diagnostic pop") 458 /* Identity function, used to suppress warnings about constant conditions. */ 459 #ifndef lint 460 # define YYID(n) (n) 488 461 #else 489 # define YY_INITIAL_VALUE(Value) Value 462 #if (defined __STDC__ || defined __C99__FUNC__ \ 463 || defined __cplusplus || defined _MSC_VER) 464 static int 465 YYID (int yyi) 466 #else 467 static int 468 YYID (yyi) 469 int yyi; 490 470 #endif 491 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 492 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 493 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 471 { 472 return yyi; 473 } 494 474 #endif 495 #ifndef YY_INITIAL_VALUE496 # define YY_INITIAL_VALUE(Value) /* Nothing. */497 #endif498 499 475 500 476 #if ! defined yyoverflow || YYERROR_VERBOSE … … 515 491 # else 516 492 # define YYSTACK_ALLOC alloca 517 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 493 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 494 || defined __cplusplus || defined _MSC_VER) 518 495 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 519 /* Use EXIT_SUCCESS as a witness for stdlib.h. */520 496 # ifndef EXIT_SUCCESS 521 497 # define EXIT_SUCCESS 0 … … 527 503 528 504 # ifdef YYSTACK_ALLOC 529 /* Pacify GCC's 'empty if-body' warning. */530 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( 0)505 /* Pacify GCC's `empty if-body' warning. */ 506 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 531 507 # ifndef YYSTACK_ALLOC_MAXIMUM 532 508 /* The OS might guarantee only one guard page at the bottom of the stack, … … 544 520 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 545 521 && ! ((defined YYMALLOC || defined malloc) \ 546 522 && (defined YYFREE || defined free))) 547 523 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 548 524 # ifndef EXIT_SUCCESS … … 552 528 # ifndef YYMALLOC 553 529 # define YYMALLOC malloc 554 # if ! defined malloc && ! defined EXIT_SUCCESS 530 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 531 || defined __cplusplus || defined _MSC_VER) 555 532 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 556 533 # endif … … 558 535 # ifndef YYFREE 559 536 # define YYFREE free 560 # if ! defined free && ! defined EXIT_SUCCESS 537 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 538 || defined __cplusplus || defined _MSC_VER) 561 539 void free (void *); /* INFRINGES ON USER NAME SPACE */ 562 540 # endif … … 568 546 #if (! defined yyoverflow \ 569 547 && (! defined __cplusplus \ 570 548 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 571 549 572 550 /* A type that is properly aligned for any stack member. */ … … 593 571 stack. Advance YYPTR to a properly aligned location for the next 594 572 stack. */ 595 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 596 do 597 { 598 YYSIZE_T yynewbytes;\599 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\600 Stack = &yyptr->Stack_alloc;\601 602 yyptr += yynewbytes / sizeof (*yyptr);\603 } 604 while ( 0)573 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 574 do \ 575 { \ 576 YYSIZE_T yynewbytes; \ 577 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 578 Stack = &yyptr->Stack_alloc; \ 579 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 580 yyptr += yynewbytes / sizeof (*yyptr); \ 581 } \ 582 while (YYID (0)) 605 583 606 584 #endif 607 585 608 586 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 609 /* Copy COUNT objects from SRC to DST. The source and destination do587 /* Copy COUNT objects from FROM to TO. The source and destination do 610 588 not overlap. */ 611 589 # ifndef YYCOPY 612 590 # if defined __GNUC__ && 1 < __GNUC__ 613 # define YYCOPY( Dst, Src, Count) \614 __builtin_memcpy ( Dst, Src, (Count) * sizeof (*(Src)))591 # define YYCOPY(To, From, Count) \ 592 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 615 593 # else 616 # define YYCOPY( Dst, Src, Count)\617 do 618 {\619 YYSIZE_T yyi;\620 for (yyi = 0; yyi < (Count); yyi++)\621 (Dst)[yyi] = (Src)[yyi];\622 }\623 while ( 0)594 # define YYCOPY(To, From, Count) \ 595 do \ 596 { \ 597 YYSIZE_T yyi; \ 598 for (yyi = 0; yyi < (Count); yyi++) \ 599 (To)[yyi] = (From)[yyi]; \ 600 } \ 601 while (YYID (0)) 624 602 # endif 625 603 # endif … … 637 615 /* YYNRULES -- Number of rules. */ 638 616 #define YYNRULES 757 639 /* YYN STATES -- Number of states. */617 /* YYNRULES -- Number of states. */ 640 618 #define YYNSTATES 1540 641 619 642 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 643 by yylex, with out-of-bounds checking. */ 620 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 644 621 #define YYUNDEFTOK 2 645 622 #define YYMAXUTOK 367 646 623 647 #define YYTRANSLATE(YYX) 624 #define YYTRANSLATE(YYX) \ 648 625 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 649 626 650 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 651 as returned by yylex, without out-of-bounds checking. */ 627 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 652 628 static const yytype_uint8 yytranslate[] = 653 629 { … … 692 668 693 669 #if YYDEBUG 694 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 670 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 671 YYRHS. */ 672 static const yytype_uint16 yyprhs[] = 673 { 674 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 675 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 676 37, 40, 42, 44, 46, 50, 54, 56, 63, 68, 677 72, 80, 83, 87, 95, 98, 101, 109, 114, 116, 678 120, 121, 123, 125, 129, 131, 134, 141, 145, 153, 679 157, 165, 168, 171, 174, 175, 178, 180, 182, 184, 680 187, 190, 193, 196, 199, 202, 207, 210, 215, 222, 681 224, 229, 234, 236, 238, 240, 242, 244, 246, 248, 682 253, 255, 259, 263, 267, 269, 273, 277, 279, 283, 683 287, 289, 293, 297, 301, 305, 307, 311, 315, 317, 684 321, 323, 327, 329, 333, 335, 339, 341, 345, 347, 685 353, 358, 360, 362, 366, 367, 369, 371, 373, 375, 686 377, 379, 381, 383, 385, 387, 389, 391, 393, 400, 687 408, 410, 414, 416, 420, 421, 423, 425, 427, 429, 688 431, 433, 435, 437, 439, 446, 451, 454, 462, 464, 689 468, 470, 473, 475, 478, 480, 483, 486, 492, 500, 690 506, 516, 522, 532, 534, 538, 540, 542, 546, 550, 691 553, 555, 558, 561, 562, 564, 567, 571, 572, 574, 692 577, 581, 585, 590, 591, 593, 595, 598, 604, 612, 693 619, 626, 631, 635, 640, 643, 647, 650, 654, 658, 694 662, 666, 672, 676, 680, 685, 687, 693, 700, 706, 695 713, 723, 734, 744, 755, 758, 760, 763, 766, 769, 696 771, 778, 787, 798, 811, 826, 827, 829, 830, 832, 697 834, 838, 843, 851, 852, 854, 858, 860, 864, 866, 698 868, 870, 874, 876, 878, 880, 884, 885, 887, 891, 699 896, 898, 902, 904, 906, 910, 914, 918, 922, 926, 700 929, 933, 940, 944, 948, 953, 955, 958, 961, 965, 701 971, 979, 987, 993, 1003, 1006, 1009, 1015, 1019, 1025, 702 1030, 1034, 1039, 1044, 1052, 1056, 1060, 1064, 1068, 1073, 703 1080, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1097, 704 1099, 1101, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 705 1119, 1125, 1127, 1130, 1134, 1136, 1139, 1141, 1143, 1145, 706 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165, 707 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1185, 708 1187, 1190, 1193, 1197, 1201, 1203, 1207, 1209, 1212, 1215, 709 1218, 1223, 1228, 1233, 1238, 1240, 1243, 1246, 1250, 1252, 710 1255, 1258, 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 711 1282, 1287, 1290, 1291, 1298, 1306, 1309, 1312, 1315, 1316, 712 1319, 1322, 1326, 1329, 1333, 1335, 1338, 1342, 1345, 1348, 713 1353, 1354, 1356, 1359, 1362, 1364, 1365, 1367, 1370, 1373, 714 1379, 1382, 1383, 1391, 1394, 1399, 1400, 1403, 1404, 1406, 715 1408, 1410, 1416, 1422, 1428, 1430, 1436, 1442, 1452, 1454, 716 1460, 1461, 1463, 1465, 1471, 1473, 1475, 1481, 1487, 1489, 717 1493, 1497, 1502, 1504, 1506, 1508, 1510, 1513, 1515, 1519, 718 1523, 1525, 1528, 1530, 1534, 1536, 1538, 1540, 1542, 1544, 719 1546, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565, 720 1568, 1569, 1572, 1575, 1577, 1582, 1583, 1585, 1588, 1592, 721 1597, 1600, 1603, 1605, 1608, 1611, 1617, 1623, 1631, 1638, 722 1640, 1643, 1646, 1650, 1652, 1655, 1658, 1663, 1666, 1671, 723 1672, 1677, 1680, 1682, 1684, 1686, 1687, 1690, 1696, 1702, 724 1716, 1718, 1720, 1724, 1728, 1731, 1735, 1739, 1742, 1747, 725 1749, 1756, 1766, 1767, 1779, 1781, 1785, 1789, 1793, 1795, 726 1797, 1803, 1806, 1812, 1813, 1815, 1817, 1821, 1822, 1824, 727 1826, 1828, 1830, 1831, 1838, 1841, 1843, 1846, 1851, 1854, 728 1858, 1862, 1866, 1871, 1877, 1883, 1889, 1896, 1898, 1900, 729 1902, 1906, 1907, 1913, 1914, 1916, 1918, 1921, 1928, 1930, 730 1934, 1935, 1937, 1942, 1944, 1946, 1948, 1950, 1953, 1955, 731 1958, 1961, 1963, 1967, 1970, 1974, 1978, 1981, 1986, 1991, 732 1995, 2004, 2008, 2011, 2013, 2016, 2023, 2032, 2036, 2039, 733 2043, 2047, 2052, 2057, 2061, 2063, 2065, 2067, 2072, 2079, 734 2083, 2086, 2090, 2094, 2099, 2104, 2108, 2111, 2113, 2116, 735 2119, 2121, 2125, 2128, 2132, 2136, 2139, 2144, 2149, 2153, 736 2160, 2169, 2173, 2176, 2178, 2181, 2184, 2187, 2191, 2195, 737 2198, 2203, 2208, 2212, 2219, 2228, 2232, 2235, 2237, 2240, 738 2243, 2245, 2247, 2250, 2254, 2258, 2261, 2266, 2273, 2282, 739 2284, 2287, 2290, 2292, 2295, 2298, 2302, 2306, 2308, 2313, 740 2318, 2322, 2328, 2337, 2341, 2344, 2348, 2350, 2356, 2362, 741 2369, 2376, 2378, 2381, 2384, 2386, 2389, 2392, 2396, 2400, 742 2402, 2407, 2412, 2416, 2422, 2431, 2435, 2437, 2440, 2442, 743 2445, 2452, 2458, 2465, 2473, 2481, 2483, 2486, 2489, 2491, 744 2494, 2497, 2501, 2505, 2507, 2512, 2517, 2521, 2530, 2534, 745 2536, 2538, 2541, 2543, 2545, 2548, 2552, 2555, 2559, 2562, 746 2566, 2570, 2573, 2578, 2582, 2585, 2589, 2592, 2597, 2601, 747 2604, 2611, 2618, 2625, 2633, 2635, 2638, 2640, 2642, 2644, 748 2647, 2651, 2654, 2658, 2661, 2665, 2669, 2674, 2677, 2681, 749 2686, 2689, 2695, 2702, 2709, 2710, 2712, 2713 750 }; 751 752 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 753 static const yytype_int16 yyrhs[] = 754 { 755 308, 0, -1, -1, -1, 81, -1, 84, -1, 85, 756 -1, 86, -1, 82, -1, 74, -1, 78, -1, 144, 757 -1, 74, -1, 78, -1, 74, -1, 144, -1, 87, 758 -1, 88, -1, 146, -1, 83, -1, 146, 83, -1, 759 74, -1, 144, -1, 174, -1, 113, 176, 114, -1, 760 113, 180, 114, -1, 147, -1, 148, 115, 138, 171, 761 139, 116, -1, 148, 113, 149, 114, -1, 148, 117, 762 143, -1, 148, 117, 115, 138, 151, 139, 116, -1, 763 148, 85, -1, 148, 89, 143, -1, 148, 89, 115, 764 138, 151, 139, 116, -1, 148, 90, -1, 148, 91, 765 -1, 113, 281, 114, 118, 285, 378, 119, -1, 148, 766 118, 149, 119, -1, 150, -1, 149, 120, 150, -1, 767 -1, 171, -1, 152, -1, 151, 120, 152, -1, 153, 768 -1, 84, 152, -1, 84, 115, 138, 151, 139, 116, 769 -1, 153, 117, 152, -1, 153, 117, 115, 138, 151, 770 139, 116, -1, 153, 89, 152, -1, 153, 89, 115, 771 138, 151, 139, 116, -1, 81, 154, -1, 86, 154, 772 -1, 143, 154, -1, -1, 154, 85, -1, 148, -1, 773 140, -1, 145, -1, 42, 158, -1, 156, 158, -1, 774 157, 158, -1, 90, 155, -1, 91, 155, -1, 39, 775 155, -1, 39, 113, 281, 114, -1, 68, 155, -1, 776 68, 113, 281, 114, -1, 40, 113, 281, 120, 143, 777 114, -1, 78, -1, 78, 113, 150, 114, -1, 78, 778 113, 282, 114, -1, 121, -1, 122, -1, 123, -1, 779 124, -1, 125, -1, 126, -1, 155, -1, 113, 281, 780 114, 158, -1, 158, -1, 159, 121, 158, -1, 159, 781 127, 158, -1, 159, 128, 158, -1, 159, -1, 160, 782 123, 159, -1, 160, 124, 159, -1, 160, -1, 161, 783 92, 160, -1, 161, 93, 160, -1, 161, -1, 162, 784 129, 161, -1, 162, 130, 161, -1, 162, 94, 161, 785 -1, 162, 95, 161, -1, 162, -1, 163, 96, 162, 786 -1, 163, 97, 162, -1, 163, -1, 164, 122, 163, 787 -1, 164, -1, 165, 131, 164, -1, 165, -1, 166, 788 132, 165, -1, 166, -1, 167, 98, 166, -1, 167, 789 -1, 168, 99, 167, -1, 168, -1, 168, 133, 176, 790 134, 169, -1, 168, 133, 134, 169, -1, 169, -1, 791 169, -1, 155, 173, 171, -1, -1, 171, -1, 135, 792 -1, 111, -1, 101, -1, 102, -1, 103, -1, 104, 793 -1, 105, -1, 106, -1, 107, -1, 108, -1, 109, 794 -1, 110, -1, 115, 138, 120, 175, 139, 116, -1, 795 115, 138, 171, 120, 175, 139, 116, -1, 172, -1, 796 175, 120, 172, -1, 171, -1, 176, 120, 171, -1, 797 -1, 176, -1, 179, -1, 180, -1, 184, -1, 185, 798 -1, 197, -1, 199, -1, 200, -1, 205, -1, 131, 799 148, 118, 149, 119, 136, -1, 74, 134, 318, 178, 800 -1, 118, 119, -1, 118, 138, 138, 216, 181, 139, 801 119, -1, 182, -1, 181, 138, 182, -1, 219, -1, 802 42, 219, -1, 314, -1, 178, 139, -1, 178, -1, 803 183, 178, -1, 177, 136, -1, 43, 113, 176, 114, 804 178, -1, 43, 113, 176, 114, 178, 44, 178, -1, 805 45, 113, 176, 114, 190, -1, 45, 113, 176, 114, 806 118, 138, 212, 191, 119, -1, 55, 113, 176, 114, 807 190, -1, 55, 113, 176, 114, 118, 138, 212, 193, 808 119, -1, 170, -1, 170, 100, 170, -1, 316, -1, 809 186, -1, 187, 120, 186, -1, 46, 187, 134, -1, 810 47, 134, -1, 188, -1, 189, 188, -1, 189, 178, 811 -1, -1, 192, -1, 189, 183, -1, 192, 189, 183, 812 -1, -1, 194, -1, 189, 196, -1, 189, 183, 195, 813 -1, 194, 189, 196, -1, 194, 189, 183, 195, -1, 814 -1, 196, -1, 58, -1, 58, 136, -1, 49, 113, 815 176, 114, 178, -1, 48, 178, 49, 113, 176, 114, 816 136, -1, 50, 113, 138, 198, 114, 178, -1, 177, 817 139, 136, 177, 136, 177, -1, 219, 177, 136, 177, 818 -1, 53, 74, 136, -1, 53, 121, 176, 136, -1, 819 52, 136, -1, 52, 74, 136, -1, 51, 136, -1, 820 51, 74, 136, -1, 54, 177, 136, -1, 63, 172, 821 136, -1, 64, 172, 136, -1, 64, 172, 65, 171, 822 136, -1, 59, 180, 201, -1, 59, 180, 203, -1, 823 59, 180, 201, 203, -1, 202, -1, 60, 113, 100, 824 114, 180, -1, 202, 60, 113, 100, 114, 180, -1, 825 61, 113, 100, 114, 180, -1, 202, 61, 113, 100, 826 114, 180, -1, 60, 113, 138, 138, 204, 139, 114, 827 180, 139, -1, 202, 60, 113, 138, 138, 204, 139, 828 114, 180, 139, -1, 61, 113, 138, 138, 204, 139, 829 114, 180, 139, -1, 202, 61, 113, 138, 138, 204, 830 139, 114, 180, 139, -1, 62, 180, -1, 232, -1, 831 232, 315, -1, 232, 363, -1, 372, 143, -1, 372, 832 -1, 66, 206, 113, 145, 114, 136, -1, 66, 206, 833 113, 145, 134, 207, 114, 136, -1, 66, 206, 113, 834 145, 134, 207, 134, 207, 114, 136, -1, 66, 206, 835 113, 145, 134, 207, 134, 207, 134, 210, 114, 136, 836 -1, 66, 206, 53, 113, 145, 134, 134, 207, 134, 837 210, 134, 211, 114, 136, -1, -1, 11, -1, -1, 838 208, -1, 209, -1, 208, 120, 209, -1, 145, 113, 839 170, 114, -1, 115, 170, 116, 145, 113, 170, 114, 840 -1, -1, 145, -1, 210, 120, 145, -1, 143, -1, 841 211, 120, 143, -1, 139, -1, 213, -1, 219, -1, 842 213, 138, 219, -1, 139, -1, 215, -1, 229, -1, 843 215, 138, 229, -1, -1, 217, -1, 31, 218, 136, 844 -1, 217, 31, 218, 136, -1, 280, -1, 218, 120, 845 280, -1, 220, -1, 229, -1, 221, 139, 136, -1, 846 226, 139, 136, -1, 223, 139, 136, -1, 299, 139, 847 136, -1, 302, 139, 136, -1, 222, 283, -1, 238, 848 222, 283, -1, 221, 139, 120, 138, 278, 283, -1, 849 373, 278, 317, -1, 376, 278, 317, -1, 234, 376, 850 278, 317, -1, 224, -1, 234, 224, -1, 238, 224, 851 -1, 238, 234, 224, -1, 223, 139, 120, 138, 278, 852 -1, 376, 278, 113, 138, 266, 139, 114, -1, 225, 853 278, 113, 138, 266, 139, 114, -1, 115, 138, 268, 854 139, 116, -1, 115, 138, 268, 139, 120, 138, 269, 855 139, 116, -1, 3, 222, -1, 3, 224, -1, 226, 856 139, 120, 138, 143, -1, 3, 232, 315, -1, 227, 857 139, 120, 138, 315, -1, 234, 3, 232, 315, -1, 858 232, 3, 315, -1, 232, 3, 234, 315, -1, 3, 859 143, 135, 171, -1, 228, 139, 120, 138, 143, 135, 860 171, -1, 230, 139, 136, -1, 227, 139, 136, -1, 861 228, 139, 136, -1, 246, 139, 136, -1, 231, 315, 862 317, 283, -1, 230, 120, 318, 315, 317, 283, -1, 863 242, -1, 246, -1, 248, -1, 289, -1, 243, -1, 864 247, -1, 249, -1, 290, -1, -1, 234, -1, 235, 865 -1, 234, 235, -1, 236, -1, 320, -1, 10, -1, 866 12, -1, 11, -1, 14, -1, 69, -1, -1, 13, 867 113, 237, 292, 114, -1, 239, -1, 234, 239, -1, 868 238, 234, 239, -1, 240, -1, 239, 240, -1, 5, 869 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 870 -1, 71, -1, 73, -1, 16, -1, 21, -1, 20, 871 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 872 -1, 15, -1, 27, -1, 28, -1, 29, -1, 26, 873 -1, 24, -1, 25, -1, 243, -1, 238, 243, -1, 874 242, 240, -1, 242, 240, 234, -1, 242, 240, 243, 875 -1, 244, -1, 233, 245, 233, -1, 241, -1, 234, 876 241, -1, 244, 235, -1, 244, 241, -1, 30, 113, 877 282, 114, -1, 30, 113, 176, 114, -1, 80, 113, 878 282, 114, -1, 80, 113, 176, 114, -1, 247, -1, 879 238, 247, -1, 246, 240, -1, 246, 240, 234, -1, 880 250, -1, 234, 250, -1, 247, 235, -1, 249, -1, 881 238, 249, -1, 248, 240, -1, 248, 240, 234, -1, 882 76, -1, 234, 76, -1, 249, 235, -1, 251, -1, 883 262, -1, 253, 118, 254, 119, -1, 253, 280, -1, 884 -1, 253, 280, 252, 118, 254, 119, -1, 253, 113, 885 298, 114, 118, 254, 119, -1, 253, 291, -1, 33, 886 318, -1, 34, 318, -1, -1, 254, 255, -1, 256, 887 136, -1, 42, 256, 136, -1, 257, 136, -1, 42, 888 257, 136, -1, 372, -1, 372, 280, -1, 256, 120, 889 280, -1, 256, 120, -1, 232, 258, -1, 257, 120, 890 318, 258, -1, -1, 260, -1, 324, 259, -1, 337, 891 259, -1, 363, -1, -1, 260, -1, 134, 170, -1, 892 32, 318, -1, 261, 118, 264, 378, 119, -1, 261, 893 280, -1, -1, 261, 280, 263, 118, 264, 378, 119, 894 -1, 280, 265, -1, 264, 120, 280, 265, -1, -1, 895 135, 170, -1, -1, 267, -1, 269, -1, 268, -1, 896 268, 139, 120, 138, 269, -1, 269, 139, 120, 138, 897 100, -1, 268, 139, 120, 138, 100, -1, 273, -1, 898 269, 139, 120, 138, 273, -1, 268, 139, 120, 138, 899 273, -1, 268, 139, 120, 138, 269, 139, 120, 138, 900 273, -1, 274, -1, 269, 139, 120, 138, 274, -1, 901 -1, 271, -1, 272, -1, 272, 139, 120, 138, 100, 902 -1, 276, -1, 275, -1, 272, 139, 120, 138, 276, 903 -1, 272, 139, 120, 138, 275, -1, 275, -1, 368, 904 278, 379, -1, 376, 278, 379, -1, 234, 376, 278, 905 379, -1, 224, -1, 276, -1, 368, -1, 376, -1, 906 234, 376, -1, 377, -1, 231, 342, 379, -1, 231, 907 346, 379, -1, 231, -1, 231, 357, -1, 143, -1, 908 277, 120, 143, -1, 141, -1, 76, -1, 77, -1, 909 142, -1, 76, -1, 77, -1, 143, -1, 76, -1, 910 77, -1, 372, -1, 232, -1, 232, 363, -1, 372, 911 -1, 377, -1, 232, -1, 232, 351, -1, -1, 135, 912 284, -1, 111, 284, -1, 171, -1, 118, 285, 378, 913 119, -1, -1, 284, -1, 286, 284, -1, 285, 120, 914 284, -1, 285, 120, 286, 284, -1, 287, 134, -1, 915 280, 134, -1, 288, -1, 287, 288, -1, 117, 280, 916 -1, 115, 138, 171, 139, 116, -1, 115, 138, 316, 917 139, 116, -1, 115, 138, 170, 100, 170, 139, 116, 918 -1, 117, 115, 138, 151, 139, 116, -1, 290, -1, 919 238, 290, -1, 289, 240, -1, 289, 240, 234, -1, 920 291, -1, 234, 291, -1, 290, 235, -1, 77, 113, 921 298, 114, -1, 293, 379, -1, 292, 120, 293, 379, 922 -1, -1, 295, 280, 294, 296, -1, 232, 342, -1, 923 35, -1, 37, -1, 36, -1, -1, 296, 297, -1, 924 132, 280, 113, 298, 114, -1, 132, 118, 138, 304, 925 119, -1, 132, 113, 138, 292, 139, 114, 118, 138, 926 304, 119, 113, 298, 114, -1, 282, -1, 171, -1, 927 298, 120, 282, -1, 298, 120, 171, -1, 35, 300, 928 -1, 239, 35, 300, -1, 299, 120, 300, -1, 301, 929 296, -1, 301, 296, 135, 282, -1, 280, -1, 279, 930 113, 138, 292, 139, 114, -1, 38, 280, 113, 138, 931 292, 139, 114, 118, 119, -1, -1, 38, 280, 113, 932 138, 292, 139, 114, 118, 303, 304, 119, -1, 305, 933 -1, 304, 138, 305, -1, 306, 139, 136, -1, 307, 934 139, 136, -1, 222, -1, 224, -1, 306, 139, 120, 935 138, 278, -1, 232, 315, -1, 307, 139, 120, 138, 936 315, -1, -1, 309, -1, 311, -1, 309, 138, 311, 937 -1, -1, 309, -1, 219, -1, 313, -1, 205, -1, 938 -1, 5, 83, 312, 118, 310, 119, -1, 42, 311, 939 -1, 314, -1, 329, 180, -1, 333, 138, 214, 180, 940 -1, 223, 180, -1, 231, 329, 180, -1, 234, 329, 941 180, -1, 238, 329, 180, -1, 238, 234, 329, 180, 942 -1, 231, 333, 138, 214, 180, -1, 234, 333, 138, 943 214, 180, -1, 238, 333, 138, 214, 180, -1, 238, 944 234, 333, 138, 214, 180, -1, 324, -1, 337, -1, 945 329, -1, 170, 126, 170, -1, -1, 66, 113, 145, 946 114, 318, -1, -1, 319, -1, 320, -1, 319, 320, 947 -1, 41, 113, 113, 321, 114, 114, -1, 322, -1, 948 321, 120, 322, -1, -1, 323, -1, 323, 113, 177, 949 114, -1, 278, -1, 240, -1, 241, -1, 235, -1, 950 325, 318, -1, 326, -1, 327, 318, -1, 328, 318, 951 -1, 141, -1, 113, 325, 114, -1, 156, 324, -1, 952 156, 234, 324, -1, 113, 326, 114, -1, 325, 355, 953 -1, 113, 326, 114, 355, -1, 113, 327, 114, 356, 954 -1, 113, 327, 114, -1, 113, 326, 114, 113, 138, 955 270, 139, 114, -1, 113, 328, 114, -1, 330, 318, 956 -1, 331, -1, 332, 318, -1, 325, 113, 138, 270, 957 139, 114, -1, 113, 331, 114, 113, 138, 270, 139, 958 114, -1, 113, 330, 114, -1, 156, 329, -1, 156, 959 234, 329, -1, 113, 331, 114, -1, 113, 331, 114, 960 355, -1, 113, 332, 114, 356, -1, 113, 332, 114, 961 -1, 334, -1, 335, -1, 336, -1, 325, 113, 277, 962 114, -1, 113, 335, 114, 113, 277, 114, -1, 113, 963 334, 114, -1, 156, 333, -1, 156, 234, 333, -1, 964 113, 335, 114, -1, 113, 335, 114, 355, -1, 113, 965 336, 114, 356, -1, 113, 336, 114, -1, 338, 318, 966 -1, 339, -1, 340, 318, -1, 341, 318, -1, 347, 967 -1, 113, 338, 114, -1, 156, 337, -1, 156, 234, 968 337, -1, 113, 339, 114, -1, 338, 355, -1, 113, 969 339, 114, 355, -1, 113, 340, 114, 356, -1, 113, 970 340, 114, -1, 338, 113, 138, 270, 139, 114, -1, 971 113, 339, 114, 113, 138, 270, 139, 114, -1, 113, 972 341, 114, -1, 325, 318, -1, 343, -1, 344, 318, 973 -1, 345, 318, -1, 156, 342, -1, 156, 234, 342, 974 -1, 113, 343, 114, -1, 325, 361, -1, 113, 343, 975 114, 355, -1, 113, 344, 114, 356, -1, 113, 344, 976 114, -1, 325, 113, 138, 270, 139, 114, -1, 113, 977 343, 114, 113, 138, 270, 139, 114, -1, 113, 345, 978 114, -1, 347, 318, -1, 348, -1, 349, 318, -1, 979 350, 318, -1, 76, -1, 77, -1, 156, 346, -1, 980 156, 234, 346, -1, 113, 348, 114, -1, 347, 361, 981 -1, 113, 348, 114, 361, -1, 347, 113, 138, 270, 982 139, 114, -1, 113, 348, 114, 113, 138, 270, 139, 983 114, -1, 352, -1, 353, 318, -1, 354, 318, -1, 984 156, -1, 156, 234, -1, 156, 351, -1, 156, 234, 985 351, -1, 113, 352, 114, -1, 355, -1, 113, 352, 986 114, 355, -1, 113, 353, 114, 356, -1, 113, 353, 987 114, -1, 113, 138, 270, 139, 114, -1, 113, 352, 988 114, 113, 138, 270, 139, 114, -1, 113, 354, 114, 989 -1, 115, 116, -1, 115, 116, 356, -1, 356, -1, 990 115, 138, 171, 139, 116, -1, 115, 138, 121, 139, 991 116, -1, 356, 115, 138, 171, 139, 116, -1, 356, 992 115, 138, 121, 139, 116, -1, 358, -1, 359, 318, 993 -1, 360, 318, -1, 156, -1, 156, 234, -1, 156, 994 357, -1, 156, 234, 357, -1, 113, 358, 114, -1, 995 361, -1, 113, 358, 114, 361, -1, 113, 359, 114, 996 356, -1, 113, 359, 114, -1, 113, 138, 270, 139, 997 114, -1, 113, 358, 114, 113, 138, 270, 139, 114, 998 -1, 113, 360, 114, -1, 362, -1, 362, 356, -1, 999 356, -1, 115, 116, -1, 115, 138, 234, 121, 139, 1000 116, -1, 115, 138, 234, 139, 116, -1, 115, 138, 1001 234, 171, 139, 116, -1, 115, 138, 7, 233, 171, 1002 139, 116, -1, 115, 138, 234, 7, 171, 139, 116, 1003 -1, 364, -1, 365, 318, -1, 366, 318, -1, 156, 1004 -1, 156, 234, -1, 156, 363, -1, 156, 234, 363, 1005 -1, 113, 364, 114, -1, 355, -1, 113, 364, 114, 1006 355, -1, 113, 365, 114, 356, -1, 113, 365, 114, 1007 -1, 113, 364, 114, 113, 138, 270, 139, 114, -1, 1008 113, 366, 114, -1, 368, -1, 376, -1, 234, 376, 1009 -1, 369, -1, 370, -1, 156, 232, -1, 234, 156, 1010 232, -1, 156, 377, -1, 234, 156, 377, -1, 156, 1011 367, -1, 234, 156, 367, -1, 115, 116, 232, -1, 1012 371, 232, -1, 115, 116, 356, 232, -1, 371, 356, 1013 232, -1, 356, 232, -1, 115, 116, 369, -1, 371, 1014 369, -1, 115, 116, 356, 369, -1, 371, 356, 369, 1015 -1, 356, 369, -1, 115, 138, 234, 121, 139, 116, 1016 -1, 115, 138, 234, 171, 139, 116, -1, 115, 138, 1017 238, 171, 139, 116, -1, 115, 138, 238, 234, 171, 1018 139, 116, -1, 376, -1, 234, 376, -1, 373, -1, 1019 374, -1, 375, -1, 156, 232, -1, 234, 156, 232, 1020 -1, 156, 377, -1, 234, 156, 377, -1, 156, 372, 1021 -1, 234, 156, 372, -1, 115, 116, 232, -1, 115, 1022 116, 356, 232, -1, 356, 232, -1, 115, 116, 374, 1023 -1, 115, 116, 356, 374, -1, 356, 374, -1, 115, 1024 138, 269, 139, 116, -1, 376, 113, 138, 266, 139, 1025 114, -1, 225, 113, 138, 266, 139, 114, -1, -1, 1026 120, -1, -1, 135, 171, -1 1027 }; 1028 1029 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 695 1030 static const yytype_uint16 yyrline[] = 696 1031 { 697 0, 30 5, 305, 309, 316, 317, 318, 319, 320, 324,698 32 5, 326, 330, 331, 335, 336, 340, 341, 345, 349,699 35 0, 361, 363, 365, 366, 368, 373, 374, 380, 382,700 38 4, 386, 388, 390, 392, 394, 396, 398, 407, 408,701 41 4, 415, 419, 420, 424, 425, 427, 429, 431, 433,702 43 5, 440, 442, 444, 456, 457, 465, 468, 470, 472,703 47 7, 490, 492, 494, 496, 498, 500, 502, 504, 506,704 50 8, 510, 517, 518, 524, 525, 526, 527, 531, 532,705 5 39, 540, 542, 544, 549, 550, 552, 557, 558, 560,706 56 5, 566, 568, 570, 572, 577, 578, 580, 585, 586,707 59 1, 592, 597, 598, 603, 604, 609, 610, 615, 616,708 6 19, 626, 631, 632, 640, 641, 645, 646, 647, 648,709 6 49, 650, 651, 652, 653, 654, 655, 656, 666, 668,710 67 3, 674, 679, 680, 686, 687, 693, 694, 695, 696,711 69 7, 698, 699, 700, 701, 711, 718, 720, 730, 731,712 73 6, 738, 744, 746, 750, 751, 756, 761, 764, 766,713 76 8, 778, 780, 791, 792, 794, 798, 800, 804, 805,714 81 0, 811, 815, 820, 821, 825, 827, 833, 834, 838,715 84 0, 842, 844, 850, 851, 855, 857, 862, 864, 866,716 87 1, 873, 878, 880, 884, 887, 891, 894, 898, 900,717 90 2, 904, 909, 911, 913, 918, 920, 922, 924, 926,718 93 1, 933, 935, 937, 942, 954, 955, 960, 962, 967,719 97 1, 973, 975, 977, 979, 985, 986, 992, 993, 997,720 99 8, 1003, 1005, 1011, 1012, 1014, 1019, 1024, 1034, 1036,721 104 0, 1041, 1046, 1048, 1052, 1053, 1057, 1059, 1063, 1064,722 106 8, 1069, 1073, 1074, 1089, 1090, 1091, 1092, 1093, 1097,723 110 2, 1109, 1119, 1124, 1129, 1137, 1142, 1147, 1152, 1157,724 118 7, 1192, 1199, 1201, 1208, 1213, 1218, 1229, 1234, 1239,725 124 4, 1249, 1258, 1263, 1271, 1272, 1273, 1274, 1280, 1285,726 129 3, 1294, 1295, 1296, 1300, 1301, 1302, 1303, 1308, 1309,727 131 8, 1319, 1324, 1325, 1330, 1332, 1334, 1336, 1338, 1341,728 134 0, 1352, 1353, 1355, 1365, 1366, 1371, 1373, 1375, 1377,729 13 79, 1382, 1384, 1387, 1392, 1394, 1396, 1398, 1400, 1402,730 140 4, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1426,731 142 7, 1429, 1431, 1433, 1438, 1439, 1445, 1446, 1448, 1450,732 145 5, 1457, 1459, 1461, 1466, 1467, 1469, 1471, 1476, 1477,733 14 79, 1484, 1485, 1487, 1489, 1494, 1496, 1498, 1503, 1504,734 150 8, 1510, 1516, 1515, 1519, 1521, 1526, 1528, 1534, 1535,735 154 0, 1541, 1543, 1544, 1553, 1554, 1556, 1558, 1563, 1565,736 157 1, 1572, 1574, 1577, 1580, 1585, 1586, 1591, 1596, 1600,737 160 2, 1608, 1607, 1614, 1616, 1622, 1623, 1631, 1632, 1636,738 163 7, 1638, 1640, 1642, 1649, 1650, 1652, 1654, 1659, 1660,739 166 6, 1667, 1671, 1672, 1677, 1678, 1679, 1681, 1689, 1690,740 169 2, 1695, 1697, 1701, 1702, 1703, 1705, 1707, 1711, 1716,741 172 4, 1725, 1734, 1736, 1741, 1742, 1743, 1747, 1748, 1749,742 175 3, 1754, 1755, 1759, 1760, 1761, 1766, 1767, 1768, 1769,743 177 5, 1776, 1778, 1783, 1784, 1789, 1790, 1791, 1792, 1793,744 180 8, 1809, 1814, 1815, 1821, 1823, 1826, 1828, 1830, 1853,745 185 4, 1856, 1858, 1863, 1864, 1866, 1871, 1876, 1877, 1883,746 188 2, 1886, 1890, 1892, 1894, 1900, 1901, 1906, 1911, 1913,747 191 8, 1920, 1921, 1923, 1928, 1930, 1932, 1937, 1939, 1944,748 19 49, 1957, 1963, 1962, 1976, 1977, 1982, 1983, 1987, 1992,749 199 7, 2005, 2010, 2021, 2022, 2027, 2028, 2034, 2035, 2039,750 204 0, 2041, 2044, 2043, 2054, 2063, 2069, 2075, 2084, 2090,751 209 6, 2102, 2108, 2116, 2122, 2130, 2136, 2145, 2146, 2147,752 215 1, 2155, 2157, 2162, 2163, 2167, 2168, 2173, 2179, 2180,753 218 3, 2185, 2186, 2190, 2191, 2192, 2193, 2227, 2229, 2230,754 223 2, 2237, 2242, 2247, 2249, 2251, 2256, 2258, 2260, 2262,755 22 67, 2269, 2278, 2280, 2281, 2286, 2288, 2290, 2295, 2297,756 2 299, 2304, 2306, 2308, 2317, 2318, 2319, 2323, 2325, 2327,757 233 2, 2334, 2336, 2341, 2343, 2345, 2360, 2362, 2363, 2365,758 237 0, 2371, 2376, 2378, 2380, 2385, 2387, 2389, 2391, 2396,759 2 398, 2400, 2410, 2412, 2413, 2415, 2420, 2422, 2424, 2429,760 243 1, 2433, 2435, 2440, 2442, 2444, 2475, 2477, 2478, 2480,761 248 5, 2490, 2498, 2500, 2502, 2507, 2509, 2514, 2516, 2530,762 253 1, 2533, 2538, 2540, 2542, 2544, 2546, 2551, 2552, 2554,763 255 6, 2561, 2563, 2565, 2571, 2573, 2575, 2579, 2581, 2583,764 258 5, 2599, 2600, 2602, 2607, 2609, 2611, 2613, 2615, 2620,765 262 1, 2623, 2625, 2630, 2632, 2634, 2640, 2641, 2643, 2652,766 265 5, 2657, 2660, 2662, 2664, 2677, 2678, 2680, 2685, 2687,767 26 89, 2691, 2693, 2698, 2699, 2701, 2703, 2708, 2710, 2718,768 27 19, 2720, 2725, 2726, 2730, 2732, 2734, 2736, 2738, 2740,769 27 47, 2749, 2751, 2753, 2755, 2758, 2760, 2762, 2764, 2766,770 277 1, 2773, 2775, 2780, 2806, 2807, 2809, 2813, 2814, 2818,771 282 0, 2822, 2824, 2826, 2828, 2835, 2837, 2839, 2841, 2843,772 284 5, 2850, 2857, 2859, 2877, 2879, 2884, 28851032 0, 306, 306, 310, 317, 318, 319, 320, 321, 325, 1033 326, 327, 331, 332, 336, 337, 341, 342, 346, 350, 1034 351, 362, 364, 366, 367, 369, 374, 375, 381, 383, 1035 385, 387, 389, 391, 393, 395, 397, 399, 408, 409, 1036 415, 416, 420, 421, 425, 426, 428, 430, 432, 434, 1037 436, 441, 443, 445, 457, 458, 466, 469, 471, 473, 1038 478, 491, 493, 495, 497, 499, 501, 503, 505, 507, 1039 509, 511, 518, 519, 525, 526, 527, 528, 532, 533, 1040 540, 541, 543, 545, 550, 551, 553, 558, 559, 561, 1041 566, 567, 569, 571, 573, 578, 579, 581, 586, 587, 1042 592, 593, 598, 599, 604, 605, 610, 611, 616, 617, 1043 620, 627, 632, 633, 641, 642, 646, 647, 648, 649, 1044 650, 651, 652, 653, 654, 655, 656, 657, 667, 669, 1045 674, 675, 680, 681, 687, 688, 694, 695, 696, 697, 1046 698, 699, 700, 701, 702, 712, 719, 721, 731, 732, 1047 737, 739, 745, 747, 751, 752, 757, 762, 765, 767, 1048 769, 779, 781, 792, 793, 795, 799, 801, 805, 806, 1049 811, 812, 816, 821, 822, 826, 828, 834, 835, 839, 1050 841, 843, 845, 851, 852, 856, 858, 863, 865, 867, 1051 872, 874, 879, 881, 885, 888, 892, 895, 899, 901, 1052 903, 905, 910, 912, 914, 919, 921, 923, 925, 927, 1053 932, 934, 936, 938, 943, 955, 956, 961, 963, 968, 1054 972, 974, 976, 978, 980, 986, 987, 993, 994, 998, 1055 999, 1004, 1006, 1012, 1013, 1015, 1020, 1025, 1035, 1037, 1056 1041, 1042, 1047, 1049, 1053, 1054, 1058, 1060, 1064, 1065, 1057 1069, 1070, 1074, 1075, 1090, 1091, 1092, 1093, 1094, 1098, 1058 1103, 1110, 1120, 1125, 1130, 1138, 1143, 1148, 1153, 1158, 1059 1188, 1193, 1200, 1202, 1209, 1214, 1219, 1230, 1235, 1240, 1060 1245, 1250, 1259, 1264, 1272, 1273, 1274, 1275, 1281, 1286, 1061 1294, 1295, 1296, 1297, 1301, 1302, 1303, 1304, 1309, 1310, 1062 1319, 1320, 1325, 1326, 1331, 1333, 1335, 1337, 1339, 1342, 1063 1341, 1353, 1354, 1356, 1366, 1367, 1372, 1374, 1376, 1378, 1064 1380, 1383, 1385, 1388, 1393, 1395, 1397, 1399, 1401, 1403, 1065 1405, 1407, 1409, 1411, 1413, 1415, 1417, 1419, 1421, 1427, 1066 1428, 1430, 1432, 1434, 1439, 1440, 1446, 1447, 1449, 1451, 1067 1456, 1458, 1460, 1462, 1467, 1468, 1470, 1472, 1477, 1478, 1068 1480, 1485, 1486, 1488, 1490, 1495, 1497, 1499, 1504, 1505, 1069 1509, 1511, 1517, 1516, 1520, 1522, 1527, 1529, 1535, 1536, 1070 1541, 1542, 1544, 1545, 1554, 1555, 1557, 1559, 1564, 1566, 1071 1572, 1573, 1575, 1578, 1581, 1586, 1587, 1592, 1597, 1601, 1072 1603, 1609, 1608, 1615, 1617, 1623, 1624, 1632, 1633, 1637, 1073 1638, 1639, 1641, 1643, 1650, 1651, 1653, 1655, 1660, 1661, 1074 1667, 1668, 1672, 1673, 1678, 1679, 1680, 1682, 1690, 1691, 1075 1693, 1696, 1698, 1702, 1703, 1704, 1706, 1708, 1712, 1717, 1076 1725, 1726, 1735, 1737, 1742, 1743, 1744, 1748, 1749, 1750, 1077 1754, 1755, 1756, 1760, 1761, 1762, 1767, 1768, 1769, 1770, 1078 1776, 1777, 1779, 1784, 1785, 1790, 1791, 1792, 1793, 1794, 1079 1809, 1810, 1815, 1816, 1822, 1824, 1827, 1829, 1831, 1854, 1080 1855, 1857, 1859, 1864, 1865, 1867, 1872, 1877, 1878, 1884, 1081 1883, 1887, 1891, 1893, 1895, 1901, 1902, 1907, 1912, 1914, 1082 1919, 1921, 1922, 1924, 1929, 1931, 1933, 1938, 1940, 1945, 1083 1950, 1958, 1964, 1963, 1977, 1978, 1983, 1984, 1988, 1993, 1084 1998, 2006, 2011, 2022, 2023, 2028, 2029, 2035, 2036, 2040, 1085 2041, 2042, 2045, 2044, 2055, 2064, 2070, 2076, 2085, 2091, 1086 2097, 2103, 2109, 2117, 2123, 2131, 2137, 2146, 2147, 2148, 1087 2152, 2158, 2159, 2165, 2166, 2170, 2171, 2176, 2182, 2183, 1088 2186, 2188, 2189, 2193, 2194, 2195, 2196, 2230, 2232, 2233, 1089 2235, 2240, 2245, 2250, 2252, 2254, 2259, 2261, 2263, 2265, 1090 2270, 2272, 2281, 2283, 2284, 2289, 2291, 2293, 2298, 2300, 1091 2302, 2307, 2309, 2311, 2320, 2321, 2322, 2326, 2328, 2330, 1092 2335, 2337, 2339, 2344, 2346, 2348, 2363, 2365, 2366, 2368, 1093 2373, 2374, 2379, 2381, 2383, 2388, 2390, 2392, 2394, 2399, 1094 2401, 2403, 2413, 2415, 2416, 2418, 2423, 2425, 2427, 2432, 1095 2434, 2436, 2438, 2443, 2445, 2447, 2478, 2480, 2481, 2483, 1096 2488, 2493, 2501, 2503, 2505, 2510, 2512, 2517, 2519, 2533, 1097 2534, 2536, 2541, 2543, 2545, 2547, 2549, 2554, 2555, 2557, 1098 2559, 2564, 2566, 2568, 2574, 2576, 2578, 2582, 2584, 2586, 1099 2588, 2602, 2603, 2605, 2610, 2612, 2614, 2616, 2618, 2623, 1100 2624, 2626, 2628, 2633, 2635, 2637, 2643, 2644, 2646, 2655, 1101 2658, 2660, 2663, 2665, 2667, 2680, 2681, 2683, 2688, 2690, 1102 2692, 2694, 2696, 2701, 2702, 2704, 2706, 2711, 2713, 2721, 1103 2722, 2723, 2728, 2729, 2733, 2735, 2737, 2739, 2741, 2743, 1104 2750, 2752, 2754, 2756, 2758, 2761, 2763, 2765, 2767, 2769, 1105 2774, 2776, 2778, 2783, 2809, 2810, 2812, 2816, 2817, 2821, 1106 2823, 2825, 2827, 2829, 2831, 2838, 2840, 2842, 2844, 2846, 1107 2848, 2853, 2860, 2862, 2880, 2882, 2887, 2888 773 1108 }; 774 1109 #endif 775 1110 776 #if YYDEBUG || YYERROR_VERBOSE || 01111 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 777 1112 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 778 1113 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 885 1220 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 886 1221 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 887 "comma_opt", "assignment_opt", YY_NULLPTR1222 "comma_opt", "assignment_opt", 0 888 1223 }; 889 1224 #endif 890 1225 891 1226 # ifdef YYPRINT 892 /* YYTOKNUM[ NUM] -- (External) token number corresponding to the893 (internal) symbol number NUM (which must be that of a token). */1227 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 1228 token YYLEX-NUM. */ 894 1229 static const yytype_uint16 yytoknum[] = 895 1230 { … … 911 1246 # endif 912 1247 913 #define YYPACT_NINF -1267 914 915 #define yypact_value_is_default(Yystate) \ 916 (!!((Yystate) == (-1267))) 917 918 #define YYTABLE_NINF -529 919 920 #define yytable_value_is_error(Yytable_value) \ 921 0 922 923 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 924 STATE-NUM. */ 925 static const yytype_int16 yypact[] = 1248 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1249 static const yytype_uint16 yyr1[] = 926 1250 { 927 5235, 8510, -1267, -14, -1267, -1267, -1267, -1267, -1267, -1267, 928 -1267, -27, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 929 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 84, 84, 930 84, 1541, 905, 123, 6677, 163, -1267, -1267, -1267, -1267, 931 -1267, 157, -1267, -1267, -1267, 1043, 172, -1267, -1267, -1267, 932 -1267, 4048, -1267, -1267, -1267, -1267, 225, 198, -1267, 1956, 933 -1267, -1267, -1267, -1267, 217, 1716, 380, 37, 6797, -1267, 934 -1267, 4048, 829, -1267, -1267, 1101, 436, 3172, 661, 839, 935 1101, 977, -1267, -1267, 1289, 340, -1267, 1101, 1140, -1267, 936 327, -1267, 450, 467, -1267, -1267, -1267, -1267, 378, 198, 937 84, -1267, 84, -1267, -1267, -1267, -1267, 7269, 1956, -1267, 938 -1267, 1956, -1267, 386, -1267, 7582, -1267, -1267, 2178, 8744, 939 -1267, 675, 675, 675, -1267, -1267, -1267, 84, -1267, -1267, 940 -1267, 400, 425, 466, -1267, -1267, -1267, 503, -1267, -1267, 941 -1267, -1267, -1267, 515, 527, -1267, -1267, 272, 8119, 1675, 942 732, 435, 568, 593, 612, 625, 639, 8828, 6307, 586, 943 -1267, 4677, -1267, -1267, -1267, -1267, 652, -1267, 339, 9583, 944 9583, -1267, 651, 348, -1267, -1267, -1267, -1267, 665, 379, 945 421, 471, 84, 654, -1267, -1267, 1716, 2591, 717, -1267, 946 90, -1267, 84, 84, 198, -1267, -1267, 91, -1267, 84, 947 84, -1267, 2973, 690, 712, 675, 6831, -1267, -1267, -1267, 948 4048, -1267, -1267, 1101, -1267, -1267, -1267, 198, -1267, 1956, 949 225, -1267, 7235, -1267, 675, 675, 675, 198, -1267, 1541, 950 -1267, 3826, -1267, -1267, 722, 675, -1267, 675, -1267, 157, 951 8119, -1267, 748, -1267, 905, 763, 675, -1267, 1541, 768, 952 779, -1267, 6677, 605, -1267, -1267, -1267, 8477, -1267, -1267, 953 4354, -1267, 717, 8, 9760, 8744, 2178, 2973, -1267, 101, 954 -1267, -1267, 7582, 1956, 807, 10515, -1267, -1267, 473, -1267, 955 10178, 816, 862, 9819, 849, 9760, 9878, -1267, 860, -1267, 956 -1267, -1267, -1267, -1267, -1267, 9937, 9937, 7885, 172, -1267, 957 -1267, -1267, -1267, -1267, -1267, -1267, 866, -1267, 1184, 2546, 958 8119, 9760, -1267, 525, 813, 848, 509, 861, 847, 853, 959 879, 915, 56, -1267, -1267, -1267, 658, -1267, 474, -1267, 960 -1267, 1675, -1267, -1267, 456, 900, -1267, 518, 900, -1267, 961 -1267, 7269, -1267, 917, 933, 8236, -1267, -1267, 536, 1525, 962 7667, 6831, 1101, -1267, 1101, 675, 675, -1267, -1267, -1267, 963 -1267, -1267, -1267, 675, 7269, 1956, -1267, -1267, 8828, 1786, 964 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9524, 965 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 966 -1267, -1267, -1267, -1267, -1267, 2178, -1267, 446, 942, 951, 967 953, 885, 956, 968, 973, 2591, -1267, -1267, 985, 225, 968 974, -1267, -1267, 987, -1267, -1267, -1267, 8477, -1267, -1267, 969 -1267, -1267, -1267, 2973, -1267, 8119, 8119, -1267, 675, 2178, 970 10547, 7742, -1267, -1267, -1267, -1267, 8477, 8, -1267, -1267, 971 1101, 198, -1267, -1267, 8477, -1267, 5404, -1267, -1267, 675, 972 675, 528, 8594, 998, 1002, 983, 1007, 675, -1267, -1267, 973 -1267, -1267, 9019, -1267, 627, 10212, -1267, 198, 1008, -1267, 974 2178, 10298, 9996, -1267, -1267, -1267, -1267, 922, 2973, -1267, 975 7742, 717, 5806, -1267, -1267, -1267, 1900, 640, 994, 905, 976 10515, 1647, 7582, -1267, 10515, -1267, -1267, -1267, -1267, 643, 977 -1267, 1026, 862, 190, 7885, -1267, 8860, -1267, -1267, 7885, 978 -1267, 8002, 7885, -1267, -1267, 172, -1267, 647, 1027, 694, 979 1028, -1267, -1267, 6061, -1267, -1267, 315, -1267, -1267, 9760, 980 -1267, 368, 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 981 -1267, -1267, -1267, -1267, -1267, 9760, -1267, -1267, 9760, 9760, 982 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 983 9760, 9760, 9760, 9760, 9760, 9760, 3432, 658, 1212, -1267, 984 -1267, 84, 84, -1267, -1267, 8119, -1267, -1267, 987, 605, 985 -1267, 987, 10055, -1267, -1267, 8828, 6061, 1029, -1267, 8744, 986 -1267, -1267, 652, -1267, 1030, 1793, 1039, 1950, 136, 994, 987 -1267, 84, 84, 994, 407, -1267, 84, 84, 987, -1267, 988 -1267, 84, 84, -1267, 900, 8944, 1956, 10447, 258, 304, 989 8944, -1267, 4354, -1267, 994, -1267, 7269, -1267, 126, 7354, 990 7354, 1956, 9642, 1010, -1267, 345, 1025, 1032, -1267, 1040, 991 9583, 449, -1267, 1130, 1956, 7354, 605, 2178, 605, 717, 992 581, 900, -1267, -1267, 616, 900, -1267, -1267, -1267, 862, 993 -1267, 900, 198, 9019, -1267, 679, 1056, 691, 1057, -1267, 994 917, 198, -1267, -1267, 8477, 198, 1058, 8860, 172, -1267, 995 1307, -1267, 481, 505, 905, -1267, 905, 1060, 9760, -1267, 996 905, 10447, -1267, -1267, 1061, -1267, -1267, -1267, 605, -1267, 997 10373, 933, -1267, 7354, 792, 7667, -1267, -1267, 652, 1063, 998 1065, 1900, 2267, -1267, -1267, 10515, 9760, -1267, -1267, 1067, 999 -1267, -1267, 1064, -1267, 1067, 1066, 10178, 9760, 1054, 1059, 1000 117, 1082, 1077, 1085, 1086, -1267, 1087, 1089, 6061, -1267, 1001 9760, -1267, 694, 1520, -1267, -1267, -1267, 84, 84, 9701, 1002 9760, 1090, -1267, -1267, 704, -1267, 9760, -1267, -1267, 876, 1003 -1267, -1267, -1267, -1267, 525, 525, 813, 813, 848, 848, 1004 848, 848, 509, 509, 861, 847, 853, 879, 915, 9760, 1005 77, 9019, 1091, 1092, 1093, 1212, -1267, -1267, -1267, -1267, 1006 -1267, 9019, 709, -1267, 7269, -1267, 6430, 8353, -1267, -1267, 1007 -1267, 1793, 9019, 980, 1098, 1104, 1105, 1106, 1113, 1114, 1008 1116, -1267, 3291, 1950, -1267, -1267, -1267, -1267, -1267, -1267, 1009 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1010 -1267, 987, -1267, -1267, -1267, 994, -1267, -1267, -1267, -1267, 1011 -1267, -1267, -1267, -1267, -1267, -1267, 1117, 1119, -1267, 225, 1012 1090, 9642, -1267, -1267, -1267, 9524, 1115, -1267, -1267, -1267, 1013 -1267, 905, 5524, 1204, -1267, -1267, -1267, -1267, 1103, 225, 1014 -1267, -1267, 987, -1267, -1267, 987, 154, 987, -1267, -1267, 1015 -1267, -1267, -1267, -1267, 6307, -1267, 198, -1267, -1267, 507, 1016 540, 6307, 1549, 9760, 2098, -1267, -1267, 1109, 38, 1109, 1017 -1267, 905, -1267, 84, -1267, -1267, 8627, 983, -1267, -1267, 1018 -1267, 1002, 1125, 1120, -1267, -1267, 1129, 1133, -1267, 792, 1019 1698, -1267, 356, -1267, 2267, 994, -1267, -1267, 1138, 10515, 1020 7582, 8119, 1142, -1267, -1267, 1134, 1146, 1127, -1267, 9760, 1021 1153, 256, 1148, -1267, 1159, 605, 1159, -1267, -1267, 1159, 1022 -1267, 1164, 1165, 1166, 1520, -1267, -1267, -1267, 9524, -1267, 1023 -1267, -1267, 1163, 9760, 791, -1267, 9760, -1267, 791, -1267, 1024 -1267, 9760, -1267, 673, 900, -1267, -1267, -1267, -1267, -1267, 1025 -1267, -1267, 933, 8236, -1267, -1267, 6553, 1171, -1267, 707, 1026 900, -1267, 728, 773, 900, -1267, 675, 7112, -1267, -1267, 1027 -1267, 9019, 9019, -1267, 7742, 7742, 1172, 1167, 1168, 1175, 1028 -1267, 419, 240, 1090, -1267, 791, -1267, 9583, -1267, 9760, 1029 554, -1267, 5932, 1180, 1181, 9465, 1182, 1185, -8, 40, 1030 86, 9760, 1191, 198, 9760, 9760, 1177, 585, 1169, -1267, 1031 -1267, -1267, 1187, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1032 -1267, -1267, 905, 1195, 9760, -1267, 9019, 9019, 84, 1201, 1033 -1267, 8711, -1267, -1267, 906, -1267, 2098, -1267, -1267, -1267, 1034 -1267, 1307, -1267, -1267, 1197, -1267, -1267, -1267, -1267, 1203, 1035 1698, -1267, -1267, 1196, -1267, 1067, -1267, -1267, 2178, 1210, 1036 -1267, -1267, -1267, 749, 1217, -1267, 117, 1214, 9760, 1200, 1037 117, 117, 1224, 894, 900, -1267, -1267, 1040, 9760, 1230, 1038 1163, -1267, 943, -1267, -1267, 1220, -1267, 78, -1267, 1231, 1039 1220, -1267, 1234, -1267, -1267, 987, 1236, 6184, 1235, 1239, 1040 1241, -1267, -1267, 1238, -1267, -1267, 987, -1267, -1267, -1267, 1041 -1267, 987, 9760, 9760, 933, 1243, -1267, -1267, -1267, -1267, 1042 -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9760, 9760, 1244, 1043 1248, 1220, -1267, -1267, 905, -1267, -1267, -1267, 7070, 7582, 1044 9760, 9760, 1318, 9760, -1267, 1233, -1267, 1246, -1267, 1250, 1045 9760, 1254, 9760, 1075, 1255, 47, 84, 1805, -1267, -1267, 1046 5524, 1256, 555, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1047 -1267, -1267, 9281, -1267, 7742, 1260, -1267, -1267, 7582, 561, 1048 582, -1267, 1273, 1262, 862, 1283, -1267, 273, -1267, -1267, 1049 -1267, -1267, 987, 1282, -1267, -1267, 1288, 1321, -1267, -1267, 1050 1321, 1321, 791, 1292, 1699, 1866, -1267, 1295, -1267, 9019, 1051 -1267, -1267, -1267, -1267, 1298, -1267, 9019, 9019, 9019, -1267, 1052 -1267, 1300, -1267, 1301, 1310, 1311, 541, 7429, 7548, -1267, 1053 -1267, -1267, -1267, 1305, -1267, 7817, 762, 783, 1317, 797, 1054 5667, -1267, -1267, -1267, 610, -1267, 802, 1319, 1323, 198, 1055 1369, 965, -1267, -1267, 9760, -1267, 9465, 9760, -1267, -1267, 1056 -1267, 1320, 1326, -1267, -1267, -1267, 1324, -1267, -1267, -1267, 1057 -1267, -1267, -1267, 7582, 862, 1330, -1267, 1313, 862, 9019, 1058 -1267, -1267, -1267, 791, -1267, -1267, -1267, -1267, -1267, -1267, 1059 -1267, -1267, -1267, -1267, -1267, -1267, 1337, 1340, -1267, -1267, 1060 -1267, -1267, -1267, -1267, -1267, 1343, -1267, 1342, -1267, 9465, 1061 276, 9760, 9465, -1267, 1346, 9760, -1267, 281, 1361, 1363, 1062 -1267, -1267, 1355, 1356, 1339, -1267, 921, -1267, -1267, -1267, 1063 1956, 2178, 1347, -1267, 259, 9760, -1267, 814, -1267, 1220, 1064 791, 791, 1362, 1364, 1365, 1367, -1267, -1267, 7742, 1357, 1065 -1267, 1438, 9760, 1352, -1267, -1267, 9375, -1267, 836, -1267, 1066 1360, 9465, 1368, -1267, -1267, 1386, -1267, 1389, -1267, 1407, 1067 1409, -1267, 1376, 7582, -1267, -1267, -1267, 862, 605, 1403, 1068 1382, 1405, 1404, 1220, 1220, -1267, -1267, -1267, -1267, -1267, 1069 9465, 265, -1267, 397, -1267, -1267, 6917, -1267, -1267, 1385, 1070 9760, -1267, 9760, 6917, 198, 8860, 198, 8860, 1410, -1267, 1071 1411, -1267, -1267, 1408, -1267, -1267, 856, -1267, -1267, -1267, 1072 -1267, 1422, 1423, -1267, 9760, 9760, -1267, -1267, 1005, 59, 1073 -1267, -1267, 1390, -1267, 1005, -1267, -1267, 2042, 605, -1267, 1074 -1267, 198, 8860, 198, 8860, 1427, 1412, 605, -1267, -1267, 1075 -1267, -1267, 9375, 1425, 1005, 6995, 9760, 9285, 1426, 1005, 1076 1435, 2042, 2360, -1267, -1267, -1267, 1436, -1267, -1267, -1267, 1077 -1267, 8119, -1267, -1267, -1267, 9148, -1267, 9375, -1267, -1267, 1078 1416, 9058, -1267, -1267, 9285, 198, 2360, 198, 1441, 1445, 1079 857, -1267, 9148, -1267, -1267, -1267, 9058, -1267, -1267, -1267, 1080 198, 198, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267 1251 0, 137, 138, 139, 140, 140, 140, 140, 140, 141, 1252 141, 141, 142, 142, 143, 143, 144, 144, 145, 146, 1253 146, 147, 147, 147, 147, 147, 148, 148, 148, 148, 1254 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, 1255 150, 150, 151, 151, 152, 152, 152, 152, 152, 152, 1256 152, 153, 153, 153, 154, 154, 155, 155, 155, 155, 1257 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 1258 155, 155, 156, 156, 157, 157, 157, 157, 158, 158, 1259 159, 159, 159, 159, 160, 160, 160, 161, 161, 161, 1260 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, 1261 165, 165, 166, 166, 167, 167, 168, 168, 169, 169, 1262 169, 170, 171, 171, 172, 172, 173, 173, 173, 173, 1263 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 1264 175, 175, 176, 176, 177, 177, 178, 178, 178, 178, 1265 178, 178, 178, 178, 178, 179, 180, 180, 181, 181, 1266 182, 182, 182, 182, 183, 183, 184, 185, 185, 185, 1267 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 1268 189, 189, 190, 191, 191, 192, 192, 193, 193, 194, 1269 194, 194, 194, 195, 195, 196, 196, 197, 197, 197, 1270 198, 198, 199, 199, 199, 199, 199, 199, 199, 199, 1271 199, 199, 200, 200, 200, 201, 201, 201, 201, 201, 1272 202, 202, 202, 202, 203, 204, 204, 204, 204, 204, 1273 205, 205, 205, 205, 205, 206, 206, 207, 207, 208, 1274 208, 209, 209, 210, 210, 210, 211, 211, 212, 212, 1275 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 1276 218, 218, 219, 219, 220, 220, 220, 220, 220, 221, 1277 221, 221, 222, 222, 222, 223, 223, 223, 223, 223, 1278 224, 224, 225, 225, 226, 226, 226, 227, 227, 227, 1279 227, 227, 228, 228, 229, 229, 229, 229, 230, 230, 1280 231, 231, 231, 231, 232, 232, 232, 232, 233, 233, 1281 234, 234, 235, 235, 236, 236, 236, 236, 236, 237, 1282 236, 238, 238, 238, 239, 239, 240, 240, 240, 240, 1283 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 1284 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 1285 242, 242, 242, 242, 243, 243, 244, 244, 244, 244, 1286 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 1287 247, 248, 248, 248, 248, 249, 249, 249, 250, 250, 1288 251, 251, 252, 251, 251, 251, 253, 253, 254, 254, 1289 255, 255, 255, 255, 256, 256, 256, 256, 257, 257, 1290 258, 258, 258, 258, 258, 259, 259, 260, 261, 262, 1291 262, 263, 262, 264, 264, 265, 265, 266, 266, 267, 1292 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, 1293 270, 270, 271, 271, 272, 272, 272, 272, 273, 273, 1294 273, 273, 273, 274, 274, 274, 274, 274, 275, 275, 1295 276, 276, 277, 277, 278, 278, 278, 279, 279, 279, 1296 280, 280, 280, 281, 281, 281, 282, 282, 282, 282, 1297 283, 283, 283, 284, 284, 285, 285, 285, 285, 285, 1298 286, 286, 287, 287, 288, 288, 288, 288, 288, 289, 1299 289, 289, 289, 290, 290, 290, 291, 292, 292, 294, 1300 293, 293, 295, 295, 295, 296, 296, 297, 297, 297, 1301 298, 298, 298, 298, 299, 299, 299, 300, 300, 301, 1302 301, 302, 303, 302, 304, 304, 305, 305, 306, 306, 1303 306, 307, 307, 308, 308, 309, 309, 310, 310, 311, 1304 311, 311, 312, 311, 311, 313, 313, 313, 314, 314, 1305 314, 314, 314, 314, 314, 314, 314, 315, 315, 315, 1306 316, 317, 317, 318, 318, 319, 319, 320, 321, 321, 1307 322, 322, 322, 323, 323, 323, 323, 324, 324, 324, 1308 324, 325, 325, 326, 326, 326, 327, 327, 327, 327, 1309 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 1310 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 1311 335, 335, 335, 336, 336, 336, 337, 337, 337, 337, 1312 338, 338, 339, 339, 339, 340, 340, 340, 340, 341, 1313 341, 341, 342, 342, 342, 342, 343, 343, 343, 344, 1314 344, 344, 344, 345, 345, 345, 346, 346, 346, 346, 1315 347, 347, 348, 348, 348, 349, 349, 350, 350, 351, 1316 351, 351, 352, 352, 352, 352, 352, 353, 353, 353, 1317 353, 354, 354, 354, 355, 355, 355, 356, 356, 356, 1318 356, 357, 357, 357, 358, 358, 358, 358, 358, 359, 1319 359, 359, 359, 360, 360, 360, 361, 361, 361, 362, 1320 362, 362, 362, 362, 362, 363, 363, 363, 364, 364, 1321 364, 364, 364, 365, 365, 365, 365, 366, 366, 367, 1322 367, 367, 368, 368, 369, 369, 369, 369, 369, 369, 1323 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 1324 371, 371, 371, 371, 372, 372, 372, 373, 373, 374, 1325 374, 374, 374, 374, 374, 375, 375, 375, 375, 375, 1326 375, 376, 377, 377, 378, 378, 379, 379 1081 1327 }; 1082 1328 1083 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1084 Performed when YYTABLE does not specify something else to do. Zero 1085 means the default is an error. */ 1329 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 1330 static const yytype_uint8 yyr2[] = 1331 { 1332 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1334 2, 1, 1, 1, 3, 3, 1, 6, 4, 3, 1335 7, 2, 3, 7, 2, 2, 7, 4, 1, 3, 1336 0, 1, 1, 3, 1, 2, 6, 3, 7, 3, 1337 7, 2, 2, 2, 0, 2, 1, 1, 1, 2, 1338 2, 2, 2, 2, 2, 4, 2, 4, 6, 1, 1339 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, 1340 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1341 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 1342 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1343 4, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1344 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 1345 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, 1346 1, 1, 1, 1, 6, 4, 2, 7, 1, 3, 1347 1, 2, 1, 2, 1, 2, 2, 5, 7, 5, 1348 9, 5, 9, 1, 3, 1, 1, 3, 3, 2, 1349 1, 2, 2, 0, 1, 2, 3, 0, 1, 2, 1350 3, 3, 4, 0, 1, 1, 2, 5, 7, 6, 1351 6, 4, 3, 4, 2, 3, 2, 3, 3, 3, 1352 3, 5, 3, 3, 4, 1, 5, 6, 5, 6, 1353 9, 10, 9, 10, 2, 1, 2, 2, 2, 1, 1354 6, 8, 10, 12, 14, 0, 1, 0, 1, 1, 1355 3, 4, 7, 0, 1, 3, 1, 3, 1, 1, 1356 1, 3, 1, 1, 1, 3, 0, 1, 3, 4, 1357 1, 3, 1, 1, 3, 3, 3, 3, 3, 2, 1358 3, 6, 3, 3, 4, 1, 2, 2, 3, 5, 1359 7, 7, 5, 9, 2, 2, 5, 3, 5, 4, 1360 3, 4, 4, 7, 3, 3, 3, 3, 4, 6, 1361 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1362 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 1363 5, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1364 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1366 2, 2, 3, 3, 1, 3, 1, 2, 2, 2, 1367 4, 4, 4, 4, 1, 2, 2, 3, 1, 2, 1368 2, 1, 2, 2, 3, 1, 2, 2, 1, 1, 1369 4, 2, 0, 6, 7, 2, 2, 2, 0, 2, 1370 2, 3, 2, 3, 1, 2, 3, 2, 2, 4, 1371 0, 1, 2, 2, 1, 0, 1, 2, 2, 5, 1372 2, 0, 7, 2, 4, 0, 2, 0, 1, 1, 1373 1, 5, 5, 5, 1, 5, 5, 9, 1, 5, 1374 0, 1, 1, 5, 1, 1, 5, 5, 1, 3, 1375 3, 4, 1, 1, 1, 1, 2, 1, 3, 3, 1376 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1377 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1378 0, 2, 2, 1, 4, 0, 1, 2, 3, 4, 1379 2, 2, 1, 2, 2, 5, 5, 7, 6, 1, 1380 2, 2, 3, 1, 2, 2, 4, 2, 4, 0, 1381 4, 2, 1, 1, 1, 0, 2, 5, 5, 13, 1382 1, 1, 3, 3, 2, 3, 3, 2, 4, 1, 1383 6, 9, 0, 11, 1, 3, 3, 3, 1, 1, 1384 5, 2, 5, 0, 1, 1, 3, 0, 1, 1, 1385 1, 1, 0, 6, 2, 1, 2, 4, 2, 3, 1386 3, 3, 4, 5, 5, 5, 6, 1, 1, 1, 1387 3, 0, 5, 0, 1, 1, 2, 6, 1, 3, 1388 0, 1, 4, 1, 1, 1, 1, 2, 1, 2, 1389 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 1390 8, 3, 2, 1, 2, 6, 8, 3, 2, 3, 1391 3, 4, 4, 3, 1, 1, 1, 4, 6, 3, 1392 2, 3, 3, 4, 4, 3, 2, 1, 2, 2, 1393 1, 3, 2, 3, 3, 2, 4, 4, 3, 6, 1394 8, 3, 2, 1, 2, 2, 2, 3, 3, 2, 1395 4, 4, 3, 6, 8, 3, 2, 1, 2, 2, 1396 1, 1, 2, 3, 3, 2, 4, 6, 8, 1, 1397 2, 2, 1, 2, 2, 3, 3, 1, 4, 4, 1398 3, 5, 8, 3, 2, 3, 1, 5, 5, 6, 1399 6, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1400 4, 4, 3, 5, 8, 3, 1, 2, 1, 2, 1401 6, 5, 6, 7, 7, 1, 2, 2, 1, 2, 1402 2, 3, 3, 1, 4, 4, 3, 8, 3, 1, 1403 1, 2, 1, 1, 2, 3, 2, 3, 2, 3, 1404 3, 2, 4, 3, 2, 3, 2, 4, 3, 2, 1405 6, 6, 6, 7, 1, 2, 1, 1, 1, 2, 1406 3, 2, 3, 2, 3, 3, 4, 2, 3, 4, 1407 2, 5, 6, 6, 0, 1, 0, 2 1408 }; 1409 1410 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1411 Performed when YYTABLE doesn't specify something else to do. Zero 1412 means the default is an error. */ 1086 1413 static const yytype_uint16 yydefact[] = 1087 1414 { … … 1242 1569 }; 1243 1570 1244 /* YYPGOTO[NTERM-NUM]. */ 1245 static const yytype_int16 yypgoto[] = 1246 { 1247 -1267, 4051, 2784, -1267, 133, -1267, 1353, 867, -240, 882, 1248 -1267, 523, -528, -489, -834, -1001, -1267, -51, 4776, 0, 1249 -1267, 793, 508, 531, 517, 553, 1006, 1001, 1009, 1004, 1250 1015, -1267, 711, -584, 4023, -739, -1267, -1267, 606, -227, 1251 -674, -263, -1267, 335, -1267, 384, -963, -1267, -1267, 116, 1252 -1267, -732, -1049, 228, -1267, -1267, -1267, -1267, 57, -1266, 1253 -1267, -1267, -1267, -1267, -1267, -1267, 302, -964, 23, -1267, 1254 -360, -1267, 484, 278, -1267, 155, -1267, -355, -1267, -1267, 1255 -1267, 538, -612, -1267, -1267, 9, -990, 219, 2319, -1267, 1256 -1267, -1267, -124, -1267, 110, 36, -188, 1213, 3869, -1267, 1257 -1267, 12, 61, 970, 1623, -1267, 1495, -1267, -1267, 21, 1258 1827, -1267, 2153, 1937, -1267, -1267, -1267, -641, -1267, 914, 1259 919, 521, 695, -93, -1267, -1267, -1267, 907, 693, -521, 1260 -1267, -507, -417, -420, -1267, -1267, -914, -941, -147, -54, 1261 1019, 19, -1267, 2311, 381, -366, -185, -122, 649, 750, 1262 -1267, 969, -1267, 2435, 1823, -463, 901, -1267, -1267, 697, 1263 -1267, -225, -1267, 103, -1267, -1267, -1267, -1263, 412, -1267, 1264 -1267, -1267, 1139, -1267, 42, -1267, -1267, -832, -94, -1230, 1265 -162, 2364, -1267, 3117, -1267, 908, -1267, -103, 120, -184, 1266 -183, -178, 7, -40, -39, -36, 1505, 4, 32, 71, 1267 92, -173, -172, -170, -168, -306, -510, -503, -496, -559, 1268 -313, -498, -1267, -1267, -514, 1072, 1076, 1081, 1925, 4399, 1269 -524, -566, -556, -543, -548, -1267, -508, -723, -722, -717, 1270 -582, -166, -229, -1267, -1267, 283, 102, 6, -1267, 3380, 1271 108, -611, -462 1272 }; 1273 1274 /* YYDEFGOTO[NTERM-NUM]. */ 1571 /* YYDEFGOTO[NTERM-NUM]. */ 1275 1572 static const yytype_int16 yydefgoto[] = 1276 1573 { … … 1302 1599 }; 1303 1600 1304 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1305 positive, shift that token. If negative, reduce the rule whose 1306 number is the opposite. If YYTABLE_NINF, syntax error. */ 1601 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1602 STATE-NUM. */ 1603 #define YYPACT_NINF -1267 1604 static const yytype_int16 yypact[] = 1605 { 1606 5235, 8510, -1267, -14, -1267, -1267, -1267, -1267, -1267, -1267, 1607 -1267, -27, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1608 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 84, 84, 1609 84, 1541, 905, 123, 6677, 163, -1267, -1267, -1267, -1267, 1610 -1267, 157, -1267, -1267, -1267, 1043, 81, -1267, -1267, -1267, 1611 -1267, 4048, -1267, -1267, -1267, -1267, 225, 198, -1267, 1956, 1612 -1267, -1267, -1267, -1267, 217, 1716, 371, 37, 6797, -1267, 1613 -1267, 4048, 829, -1267, -1267, 1101, 380, 3172, 661, 839, 1614 1101, 977, -1267, -1267, 1289, 340, -1267, 1101, 1140, -1267, 1615 273, -1267, 439, 447, -1267, -1267, -1267, -1267, 337, 198, 1616 84, -1267, 84, -1267, -1267, -1267, -1267, 7269, 1956, -1267, 1617 -1267, 1956, -1267, 325, -1267, 7582, -1267, -1267, 2178, 8744, 1618 -1267, 675, 675, 675, -1267, -1267, -1267, 84, -1267, -1267, 1619 -1267, 360, 395, 436, -1267, -1267, -1267, 466, -1267, -1267, 1620 -1267, -1267, -1267, 503, 515, -1267, -1267, 272, 8119, 1675, 1621 307, 370, 377, 524, 565, 568, 580, 8828, 6307, 594, 1622 -1267, 4677, -1267, -1267, -1267, -1267, 613, -1267, 271, 9583, 1623 9583, -1267, 610, 339, -1267, -1267, -1267, -1267, 618, 379, 1624 421, 468, 84, 603, -1267, -1267, 1716, 2591, 687, -1267, 1625 90, -1267, 84, 84, 198, -1267, -1267, 91, -1267, 84, 1626 84, -1267, 2973, 652, 657, 675, 6831, -1267, -1267, -1267, 1627 4048, -1267, -1267, 1101, -1267, -1267, -1267, 198, -1267, 1956, 1628 225, -1267, 7235, -1267, 675, 675, 675, 198, -1267, 1541, 1629 -1267, 3826, -1267, -1267, 642, 675, -1267, 675, -1267, 157, 1630 8119, -1267, 665, -1267, 905, 685, 675, -1267, 1541, 689, 1631 710, -1267, 6677, 291, -1267, -1267, -1267, 8477, -1267, -1267, 1632 4354, -1267, 687, 8, 9760, 8744, 2178, 2973, -1267, 101, 1633 -1267, -1267, 7582, 1956, 740, 10515, -1267, -1267, 378, -1267, 1634 10178, 730, 705, 9819, 773, 9760, 9878, -1267, 794, -1267, 1635 -1267, -1267, -1267, -1267, -1267, 9937, 9937, 7885, 81, -1267, 1636 -1267, -1267, -1267, -1267, -1267, -1267, 834, -1267, 1184, 2546, 1637 8119, 9760, -1267, 525, 415, 844, 338, 853, 823, 831, 1638 841, 886, 56, -1267, -1267, -1267, 518, -1267, 528, -1267, 1639 -1267, 1675, -1267, -1267, 456, 900, -1267, 490, 900, -1267, 1640 -1267, 7269, -1267, 940, 946, 8236, -1267, -1267, 536, 1525, 1641 7667, 6831, 1101, -1267, 1101, 675, 675, -1267, -1267, -1267, 1642 -1267, -1267, -1267, 675, 7269, 1956, -1267, -1267, 8828, 1786, 1643 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9524, 1644 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1645 -1267, -1267, -1267, -1267, -1267, 2178, -1267, 446, 945, 961, 1646 968, 800, 973, 976, 981, 2591, -1267, -1267, 939, 225, 1647 982, -1267, -1267, 987, -1267, -1267, -1267, 8477, -1267, -1267, 1648 -1267, -1267, -1267, 2973, -1267, 8119, 8119, -1267, 675, 2178, 1649 10547, 7742, -1267, -1267, -1267, -1267, 8477, 8, -1267, -1267, 1650 1101, 198, -1267, -1267, 8477, -1267, 5404, -1267, -1267, 675, 1651 675, 579, 8594, 994, 993, 983, 998, 675, -1267, -1267, 1652 -1267, -1267, 9019, -1267, 616, 10212, -1267, 198, 1004, -1267, 1653 2178, 10298, 9996, -1267, -1267, -1267, -1267, 843, 2973, -1267, 1654 7742, 687, 5806, -1267, -1267, -1267, 1900, 626, 990, 905, 1655 10515, 1647, 7582, -1267, 10515, -1267, -1267, -1267, -1267, 627, 1656 -1267, 1013, 705, 154, 7885, -1267, 8860, -1267, -1267, 7885, 1657 -1267, 8002, 7885, -1267, -1267, 81, -1267, 640, 1015, 658, 1658 1021, -1267, -1267, 6061, -1267, -1267, 315, -1267, -1267, 9760, 1659 -1267, 368, 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1660 -1267, -1267, -1267, -1267, -1267, 9760, -1267, -1267, 9760, 9760, 1661 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 1662 9760, 9760, 9760, 9760, 9760, 9760, 3432, 518, 1212, -1267, 1663 -1267, 84, 84, -1267, -1267, 8119, -1267, -1267, 987, 291, 1664 -1267, 987, 10055, -1267, -1267, 8828, 6061, 1020, -1267, 8744, 1665 -1267, -1267, 613, -1267, 1023, 1793, 1025, 1950, 136, 990, 1666 -1267, 84, 84, 990, 407, -1267, 84, 84, 987, -1267, 1667 -1267, 84, 84, -1267, 900, 8944, 1956, 10447, 356, 541, 1668 8944, -1267, 4354, -1267, 990, -1267, 7269, -1267, 126, 7354, 1669 7354, 1956, 9642, 1003, -1267, 789, 1008, 1010, -1267, 1026, 1670 9583, 449, -1267, 1114, 1956, 7354, 291, 2178, 291, 687, 1671 707, 900, -1267, -1267, 766, 900, -1267, -1267, -1267, 705, 1672 -1267, 900, 198, 9019, -1267, 643, 1041, 647, 1045, -1267, 1673 940, 198, -1267, -1267, 8477, 198, 1042, 8860, 81, -1267, 1674 1307, -1267, 471, 481, 905, -1267, 905, 1047, 9760, -1267, 1675 905, 10447, -1267, -1267, 1056, -1267, -1267, -1267, 291, -1267, 1676 10373, 946, -1267, 7354, 694, 7667, -1267, -1267, 613, 1052, 1677 1057, 1900, 2267, -1267, -1267, 10515, 9760, -1267, -1267, 1055, 1678 -1267, -1267, 1048, -1267, 1055, 1063, 10178, 9760, 1046, 1051, 1679 117, 1065, 1062, 1070, 1074, -1267, 1081, 1082, 6061, -1267, 1680 9760, -1267, 658, 1520, -1267, -1267, -1267, 84, 84, 9701, 1681 9760, 1077, -1267, -1267, 679, -1267, 9760, -1267, -1267, 821, 1682 -1267, -1267, -1267, -1267, 525, 525, 415, 415, 844, 844, 1683 844, 844, 338, 338, 853, 823, 831, 841, 886, 9760, 1684 397, 9019, 1085, 1086, 1087, 1212, -1267, -1267, -1267, -1267, 1685 -1267, 9019, 691, -1267, 7269, -1267, 6430, 8353, -1267, -1267, 1686 -1267, 1793, 9019, 856, 1089, 1091, 1092, 1093, 1096, 1098, 1687 1104, -1267, 3291, 1950, -1267, -1267, -1267, -1267, -1267, -1267, 1688 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1689 -1267, 987, -1267, -1267, -1267, 990, -1267, -1267, -1267, -1267, 1690 -1267, -1267, -1267, -1267, -1267, -1267, 1105, 1106, -1267, 225, 1691 1077, 9642, -1267, -1267, -1267, 9524, 1108, -1267, -1267, -1267, 1692 -1267, 905, 5524, 1197, -1267, -1267, -1267, -1267, 1095, 225, 1693 -1267, -1267, 987, -1267, -1267, 987, 1117, 987, -1267, -1267, 1694 -1267, -1267, -1267, -1267, 6307, -1267, 198, -1267, -1267, 505, 1695 507, 6307, 1549, 9760, 2098, -1267, -1267, 1099, 38, 1099, 1696 -1267, 905, -1267, 84, -1267, -1267, 8627, 983, -1267, -1267, 1697 -1267, 993, 1120, 1115, -1267, -1267, 1122, 1123, -1267, 694, 1698 1698, -1267, 576, -1267, 2267, 990, -1267, -1267, 1126, 10515, 1699 7582, 8119, 1129, -1267, -1267, 1125, 1135, 1118, -1267, 9760, 1700 1141, 190, 1136, -1267, 1142, 291, 1142, -1267, -1267, 1142, 1701 -1267, 1147, 1152, 1154, 1520, -1267, -1267, -1267, 9524, -1267, 1702 -1267, -1267, 1163, 9760, 986, -1267, 9760, -1267, 986, -1267, 1703 -1267, 9760, -1267, 894, 900, -1267, -1267, -1267, -1267, -1267, 1704 -1267, -1267, 946, 8236, -1267, -1267, 6553, 1171, -1267, 898, 1705 900, -1267, 920, 936, 900, -1267, 675, 7112, -1267, -1267, 1706 -1267, 9019, 9019, -1267, 7742, 7742, 1172, 1167, 1168, 1175, 1707 -1267, 670, 111, 1077, -1267, 986, -1267, 9583, -1267, 9760, 1708 540, -1267, 5932, 1180, 1181, 9465, 1182, 1185, -8, 40, 1709 86, 9760, 1191, 198, 9760, 9760, 1177, 585, 1169, -1267, 1710 -1267, -1267, 1187, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1711 -1267, -1267, 905, 1195, 9760, -1267, 9019, 9019, 84, 1201, 1712 -1267, 8711, -1267, -1267, 862, -1267, 2098, -1267, -1267, -1267, 1713 -1267, 1307, -1267, -1267, 1198, -1267, -1267, -1267, -1267, 1202, 1714 1698, -1267, -1267, 1196, -1267, 1055, -1267, -1267, 2178, 1210, 1715 -1267, -1267, -1267, 704, 1217, -1267, 117, 1214, 9760, 1200, 1716 117, 117, 1224, 950, 900, -1267, -1267, 1026, 9760, 1230, 1717 1163, -1267, 943, -1267, -1267, 1220, -1267, 78, -1267, 1231, 1718 1220, -1267, 1234, -1267, -1267, 987, 1236, 6184, 1235, 1239, 1719 1241, -1267, -1267, 1238, -1267, -1267, 987, -1267, -1267, -1267, 1720 -1267, 987, 9760, 9760, 946, 1243, -1267, -1267, -1267, -1267, 1721 -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9760, 9760, 1244, 1722 1248, 1220, -1267, -1267, 905, -1267, -1267, -1267, 7070, 7582, 1723 9760, 9760, 1318, 9760, -1267, 1233, -1267, 1246, -1267, 1250, 1724 9760, 1254, 9760, 938, 1255, 47, 84, 1805, -1267, -1267, 1725 5524, 1256, 554, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1726 -1267, -1267, 9281, -1267, 7742, 1260, -1267, -1267, 7582, 555, 1727 561, -1267, 1273, 1262, 705, 1283, -1267, 256, -1267, -1267, 1728 -1267, -1267, 987, 1282, -1267, -1267, 1288, 1321, -1267, -1267, 1729 1321, 1321, 986, 1292, 1699, 1866, -1267, 1295, -1267, 9019, 1730 -1267, -1267, -1267, -1267, 1298, -1267, 9019, 9019, 9019, -1267, 1731 -1267, 1300, -1267, 1301, 1310, 1311, 725, 7429, 7548, -1267, 1732 -1267, -1267, -1267, 1305, -1267, 7817, 709, 755, 1317, 758, 1733 5667, -1267, -1267, -1267, 582, -1267, 768, 1319, 1323, 198, 1734 1369, 935, -1267, -1267, 9760, -1267, 9465, 9760, -1267, -1267, 1735 -1267, 1320, 1326, -1267, -1267, -1267, 1324, -1267, -1267, -1267, 1736 -1267, -1267, -1267, 7582, 705, 1330, -1267, 1313, 705, 9019, 1737 -1267, -1267, -1267, 986, -1267, -1267, -1267, -1267, -1267, -1267, 1738 -1267, -1267, -1267, -1267, -1267, -1267, 1337, 1340, -1267, -1267, 1739 -1267, -1267, -1267, -1267, -1267, 1343, -1267, 1342, -1267, 9465, 1740 276, 9760, 9465, -1267, 1346, 9760, -1267, 281, 1361, 1363, 1741 -1267, -1267, 1355, 1356, 1339, -1267, 901, -1267, -1267, -1267, 1742 1956, 2178, 1347, -1267, 401, 9760, -1267, 783, -1267, 1220, 1743 986, 986, 1362, 1364, 1365, 1367, -1267, -1267, 7742, 1357, 1744 -1267, 1438, 9760, 1352, -1267, -1267, 9375, -1267, 791, -1267, 1745 1360, 9465, 1368, -1267, -1267, 1386, -1267, 1389, -1267, 1407, 1746 1409, -1267, 1376, 7582, -1267, -1267, -1267, 705, 291, 1403, 1747 1382, 1405, 1404, 1220, 1220, -1267, -1267, -1267, -1267, -1267, 1748 9465, 240, -1267, 474, -1267, -1267, 6917, -1267, -1267, 1385, 1749 9760, -1267, 9760, 6917, 198, 8860, 198, 8860, 1410, -1267, 1750 1411, -1267, -1267, 1408, -1267, -1267, 802, -1267, -1267, -1267, 1751 -1267, 1422, 1423, -1267, 9760, 9760, -1267, -1267, 979, 59, 1752 -1267, -1267, 1390, -1267, 979, -1267, -1267, 2042, 291, -1267, 1753 -1267, 198, 8860, 198, 8860, 1427, 1412, 291, -1267, -1267, 1754 -1267, -1267, 9375, 1425, 979, 6995, 9760, 9285, 1426, 979, 1755 1435, 2042, 2360, -1267, -1267, -1267, 1436, -1267, -1267, -1267, 1756 -1267, 8119, -1267, -1267, -1267, 9148, -1267, 9375, -1267, -1267, 1757 1416, 9058, -1267, -1267, 9285, 198, 2360, 198, 1441, 1445, 1758 814, -1267, 9148, -1267, -1267, -1267, 9058, -1267, -1267, -1267, 1759 198, 198, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267 1760 }; 1761 1762 /* YYPGOTO[NTERM-NUM]. */ 1763 static const yytype_int16 yypgoto[] = 1764 { 1765 -1267, 4051, 2784, -1267, 133, -1267, 1353, 867, -240, -1267, 1766 -1267, 504, -528, -489, -834, -1001, -1267, -77, 4776, 0, 1767 -1267, 793, 489, 531, 722, 534, 999, 1001, 1005, 1007, 1768 1002, -1267, 711, -584, 4023, -739, -1267, -1267, 606, -227, 1769 -674, -263, -1267, 335, -1267, 382, -963, -1267, -1267, 119, 1770 -1267, -732, -1049, 228, -1267, -1267, -1267, -1267, 54, -1266, 1771 -1267, -1267, -1267, -1267, -1267, -1267, 302, -1050, 23, -1267, 1772 -171, -1267, 482, 277, -1267, 153, -1267, -355, -1267, -1267, 1773 -1267, 538, -612, -1267, -1267, 9, -990, 219, 2319, -1267, 1774 -1267, -1267, -124, -1267, 110, 36, -188, 1213, 3869, -1267, 1775 -1267, 12, 61, 970, 1623, -1267, 1495, -1267, -1267, 21, 1776 1827, -1267, 2153, 1937, -1267, -1267, -1267, -641, -1267, 911, 1777 914, 521, 695, -93, -1267, -1267, -1267, 906, 690, -521, 1778 -1267, -507, -417, -420, -1267, -1267, -914, -941, -147, -54, 1779 1019, 19, -1267, 2311, 381, -366, -185, -122, 649, 745, 1780 -1267, 964, -1267, 2435, 1823, -463, 895, -1267, -1267, 693, 1781 -1267, -225, -1267, 103, -1267, -1267, -1267, -1263, 408, -1267, 1782 -1267, -1267, 1139, -1267, 42, -1267, -1267, -832, -94, -1230, 1783 -162, 2364, -1267, 3117, -1267, 908, -1267, -103, 120, -184, 1784 -183, -178, 7, -40, -39, -36, 1505, 4, 32, 71, 1785 92, -173, -172, -170, -168, -306, -510, -503, -496, -559, 1786 -313, -498, -1267, -1267, -514, 1064, 1072, 1076, 1925, 4399, 1787 -524, -566, -556, -543, -548, -1267, -508, -723, -722, -717, 1788 -582, -166, -229, -1267, -1267, 283, 102, 6, -1267, 3380, 1789 108, -611, -462 1790 }; 1791 1792 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1793 positive, shift that token. If negative, reduce the rule which 1794 number is the opposite. If YYTABLE_NINF, syntax error. */ 1795 #define YYTABLE_NINF -529 1307 1796 static const yytype_int16 yytable[] = 1308 1797 { … … 1326 1815 952, 98, 900, 108, 146, 953, 1178, 33, -239, 591, 1327 1816 713, 1161, 918, 1285, 326, 190, 187, 187, 98, 566, 1328 154, 98, 177, 340, 162, 1235, 846, 740, 665, 667,1817 154, 98, 177, 340, 162, 1235, 846, 157, 665, 667, 1329 1818 291, 804, 267, 253, 418, 410, 410, 1180, 805, 790, 1330 51, 971, 847, 847, 479, 806, 410, 162, 155, 58,1819 51, 1157, 847, 847, 479, 806, 410, 162, 155, 58, 1331 1820 117, 1512, 210, 167, 660, 1424, 151, 152, 847, 441, 1332 153, 1314, 939, 1317, 1319, 808, 144, 524, 437, 474,1821 153, 1314, 939, 1317, 1319, 808, 144, 1158, 437, 474, 1333 1822 310, 177, 429, 879, 177, 809, 432, 1061, 1527, 817, 1334 1823 1050, 596, 51, 58, 999, 819, 330, 156, 810, 99, 1335 272, 716, 728, 1152, 71, 272, 267, 267, 1058, 98,1824 272, 716, 728, 1152, 71, 272, 267, 267, 729, 98, 1336 1825 148, 976, 115, 78, 162, 52, 326, 517, 78, 407, 1337 1167, 98, 517, 440, 604, 517, 847, 211, 157, 1000,1826 1167, 98, 517, 440, 604, 517, 847, 211, 730, 1000, 1338 1827 221, 804, 481, 469, 461, 1184, 1185, 310, 805, 498, 1339 1074, 649, 657, 987, 729, 806, 397, 190, 432, 1065,1828 1074, 649, 657, 987, 1099, 806, 397, 190, 432, 1065, 1340 1829 310, 486, 469, 72, 707, 695, 172, 1152, 434, 886, 1341 469, 706, 1382, 1383, 730, 281, 568, 1382, 1383, 664,1830 469, 706, 1382, 1383, 1100, 281, 568, 1382, 1383, 664, 1342 1831 98, 149, 445, 519, 164, 669, 169, 182, 372, 780, 1343 1 157, 115, 98, 1150, 1151, 345, 160, 584, 330, 597,1832 1454, 115, 98, 1150, 1151, 345, 160, 584, 330, 597, 1344 1833 615, 458, 177, 808, 108, 1097, 795, 1181, 1051, 407, 1345 170, 972, 65, 809, 620, 1454, 1158, 470, 620, 1224,1346 1 099, 977, 98, 1003, 836, 657, 810, 583, 837, 1407,1347 434, 588, 988, 202, 624, 282, 477, 1307, 628, 112,1348 1 100, 1158, 174, 1408, 1384, 267, 816, 842, 164, 1393,1349 621, 833, 43, 44, 625, 187, 177, 1308, 696, 1482,1350 1166, 213, 372, 177, 112, 1487, 141, 142, 167, 112,1351 838, 141, 142, 267, 839, 310, 310, 43, 44, 267,1352 752, 620, 43, 44, 254, 1507, 1167, 1152, 78, -294,1353 1514, 439, 112, 1167, 1138, 1140, 1106, 248, 33, 591,1354 25 1, 98, 115, 593, 591, 43, 44, 78, 244, 376,1355 852, 326, 326, 1082, 1419, 78, 1085, -524, 386, 598,1356 267, 58, 83 8, 1470, 706, 377, 1081, 1118, 267, 1369,1357 620, 177, 51, 757, 3 87, 372, 712, 869, 680, 99,1358 940, 253, 115, 433, 71, 1167, 1223, 658, 177, 389,1359 604, 118, 177, 78, 310, 52, 115, 998, 1498, 310,1360 1500, 310, 310, -12, 1215, 390, 695, 1455, 857, 743,1361 824, 264, 596, 345, 1511, 190, 486, 470, 326, 416,1362 486, 1456, 213, 330, 330, -112, 1413, 1414, -448, -112,1363 519, 391, 519, 72, 1522, 519, 470, 326, 519, 333,1834 170, 972, 65, 809, 620, 112, 1158, 470, 620, 1224, 1835 1307, 977, 98, 1003, 202, 657, 810, 583, 43, 44, 1836 434, 588, 988, -294, 624, 282, 477, 1470, 628, 112, 1837 1308, 376, 174, 248, 1384, 267, 816, 842, 164, 1393, 1838 621, 833, 43, 44, 625, 187, 177, 377, 696, 1482, 1839 1166, 213, 372, 177, 112, 1487, 141, 142, 167, 876, 1840 253, 332, 1498, 267, 1500, 310, 310, 43, 44, 267, 1841 752, 620, 555, 556, 254, 1507, 1167, 1152, 78, 251, 1842 1514, 439, 112, 1167, 1138, 1140, 1106, -524, 33, 591, 1843 253, 98, 115, 593, 591, 43, 44, 78, 244, 386, 1844 264, 326, 326, 1082, 1419, 78, 1085, 557, 558, 598, 1845 267, 58, 836, -12, 706, 387, 837, 1118, 267, 1369, 1846 620, 177, 51, 757, 333, 372, 712, 869, 680, 99, 1847 940, 334, 115, 433, 71, 1167, 1223, 658, 177, 389, 1848 604, 118, 177, 78, 310, 52, 115, 998, -448, 310, 1849 491, 310, 310, 492, 1215, 390, 695, 740, 857, 743, 1850 824, 1407, 596, 345, 1511, 190, 486, 470, 326, 416, 1851 486, 971, 213, 330, 330, 1408, 1413, 1414, 551, 552, 1852 519, 391, 519, 72, 1522, 519, 470, 326, 519, -449, 1364 1853 469, 1526, 435, 867, 470, 433, 1000, 392, 1106, 253, 1365 1854 332, 410, 443, 900, 858, 980, 635, 568, 568, 576, 1366 658, 410, 707, 1259, 1260, 310, 915, 897, 1050, -449,1367 521, 1147, 1148, 859, 108, 620, 345, 1149, 574, 615,1368 704, 393, 65, 164, 575, 597, 1343, 597, 797, 1039,1369 330, 90 1, 98, 555, 556, 491, 598, 394, 492, 696,1370 39, 326, 175, 176, 42, 620, 27 7, 902, 998, 330,1371 620, 793, 615, 43, 44, 90 3, 620, 901, 279, 620,1372 620, 5 79, 518, 410, 695, 835, 1195, 1196, 557, 558,1373 280, 904, 676, 1062, 695, 620, 548, 267, 575, 371,1374 849, 832, 549, 550, 1428, 695, 588, 1332, 1345, 287,1375 903, 1333, 841, 864, 1010, 2, 207, 4, 5, 6,1376 7, 1392, 43, 44, 1164, 1 164, 1063, 115, 440, 112,1377 894, 1 298, 334, 330, 1055, 8, 9, 10, 11, 12,1378 1 165, 1290, 43, 44, 870, 78, 410, 1299, 512, 371,1379 378, 58, 1300, 620, 920, 615, 1093, 335, 398, 399,1380 706, 712, 712, 680, 400, 803, 33, 598, 13 01, 401,1381 402, 78, 403, 834, 404, 707, 3 36, 696, 593, 873,1382 740, 410, 37, 1016, 38, 684, 1213, 696, 345, 337,1383 1217, 697, 743, 743, 36, 498, 1346, 698, 696, 177,1384 1428, 486, 213, 338, 714, 1428, 1462, 725, 1463, 1356,1385 7 15, 739, 1172, 726, 177, 375, 213, 740, 951, 952,1386 384, 567, 899, 410, 953, 1428, 673, 177, 388, 47,1387 48, 1409, 1428, 408, 470, 568, 1123, 521, 410, 521,1388 396, 406, 521, 880, 620, 521, 983, -3, 1421, 740,1389 898, 597, 699, 425, 1068, 882, 1068, 742, 1142, 410,1390 470, 740, 1509, 597, 1460, 47, 48, 591, 965, 1321,1391 1134, 1460, 410, 978, 966, 426, 1323, 1324, 1325, 698,1855 658, 410, 707, 1259, 1260, 310, 915, 897, 1050, 277, 1856 521, 1147, 1148, 859, 108, 620, 345, 1149, 393, 615, 1857 704, 901, 65, 164, 1455, 597, 1343, 597, 797, 1039, 1858 330, 903, 98, 579, 394, 410, 598, 902, 1456, 696, 1859 39, 326, 175, 176, 42, 620, 279, 904, 998, 330, 1860 620, 793, 615, 43, 44, 901, 620, 903, 280, 620, 1861 620, 567, 518, 410, 695, 835, 1195, 1196, 335, 47, 1862 48, 1062, 574, 1063, 695, 620, 548, 267, 575, 371, 1863 849, 832, 549, 550, 1428, 695, 588, 838, 1345, 287, 1864 1164, 839, 841, 864, 1010, 2, 207, 4, 5, 6, 1865 7, 1392, 43, 44, 1164, 1298, 1165, 115, 440, 336, 1866 894, 1300, 337, 330, 1055, 8, 9, 10, 11, 12, 1867 1290, 1299, 838, 676, 338, 78, 1081, 1301, 512, 575, 1868 378, 58, 740, 620, 920, 615, 1093, 371, 398, 399, 1869 706, 712, 712, 680, 400, 803, 33, 598, 1346, 401, 1870 402, 78, 403, 834, 404, 707, 375, 696, 593, 384, 1871 697, 388, 37, 1016, 38, 684, 698, 696, 345, 396, 1872 714, 725, 743, 743, 36, 498, 715, 726, 696, 177, 1873 1428, 486, 213, 408, 739, 1428, 1462, 880, 1463, 1356, 1874 740, 882, 1172, 740, 177, 425, 213, 740, 951, 952, 1875 426, 742, 899, 410, 953, 1428, 673, 177, 448, 47, 1876 48, 1409, 1428, -372, 470, 568, -112, 521, 291, 521, 1877 -112, 406, 521, 965, 620, 521, 983, -3, 1421, 966, 1878 898, 597, 699, -401, 1068, 978, 1068, 919, 1142, 596, 1879 470, 698, 1509, 597, 1460, 47, 48, 591, 1211, 1321, 1880 870, 1460, 410, 1339, 575, 459, 1323, 1324, 1325, 740, 1392 1881 979, 803, 598, 2, 207, 4, 5, 6, 7, 518, 1393 1335, 1 137, -295, 596, 518, 253, 332, 518, 704, 8,1394 9, 10, 11, 12, 695, 695, 940, 213, 4 48, 177,1395 940, 940, 310, 1211, 229, 112, -372, 50, 114, 575,1396 1480, 1421, 1 111, 1508, 71, 1112, 1339, 1113, 43, 44,1397 33, -401, 740, 78, 345, 731, 1139, 732, 596, 1368,1398 733, 345, 894, 737, 894, 1162, 797, 1 340, 114, 114,1399 37, 50, 38, 740, 459, 919, 115, 596, 36, 695,1400 695, 1342, 50, 47, 48, 460, 1347, 740, 50, 920,1401 920, 803, 740, 72, 712, 482, 50, 1039, 1410, 502,1402 115, 310, 50, 598, 1407, 50, 551, 552, 50, 1086,1403 553, 554, 680, 1266, 1267, 291, 1269, 696, 696, 524,1404 1429, 114, 114, 1274, 743, 1276, 740, 559, 560, 1494,1405 684, 707, 5 06, 657, 108, 486, 1088, 326, 897, 561,1406 1476, 1532, 65, 511, 1305, 50, 1477, 575, 50, 112,1407 -296, 141, 142, 345, 56 2, 50, 407, 8, 9, 10,1408 11, 12, 43, 44, 1206, 969, 966, 878, 418, 653,1409 410, 704, 696, 696, 620, 620, 885, 1220, 1106, 410,1410 887, 563, 1064, 564, 898, 339, 50, 112, 33, 832,1411 332, 410, 310, 1355, 1111, 1352, 1353, 1112, 50, 1113,1412 43, 44, 108, 585, 1169, 479, 332, 410, 707, 330,1413 1402, 966, 230, 78, 598, 231, 36, 440, 235, -3,1414 237, 1382, 1383, 50, 50, 1294, 650, 246, 1228, 764,1415 765, 115, 1230, 1231, 1363, 651, 894, 652, 1363, 50,1416 654, 894, 768, 769, 770, 771, 1381, 50, 508, 1389,1417 920, 58, 65 5, 72, 766, 767, 50, 656, 267, 50,1418 6 61, 834, 695, 817, 332, 596, 114, 680, 659, 695,1882 1335, 1332, -295, 502, 518, 1333, 460, 518, 704, 8, 1883 9, 10, 11, 12, 695, 695, 940, 213, 482, 177, 1884 940, 940, 310, 112, 229, 141, 142, 50, 114, 1340, 1885 1480, 1421, 1342, 1508, 71, 740, 43, 44, 740, 873, 1886 33, 410, 1347, 78, 345, 731, 506, 732, 740, 1368, 1887 733, 345, 894, 737, 894, 1162, 797, 1410, 114, 114, 1888 37, 50, 38, 1407, 852, 1429, 115, 511, 36, 695, 1889 695, 740, 50, 418, 653, 410, 1476, 524, 50, 920, 1890 920, 803, 1477, 72, 712, 1213, 50, 1039, 1532, 1217, 1891 115, 310, 50, 598, 575, 50, 553, 554, 50, 1086, 1892 969, 966, 680, 1266, 1267, 561, 1269, 696, 696, 559, 1893 560, 114, 114, 1274, 743, 1276, 479, 332, 410, 1494, 1894 684, 707, 562, 657, 108, 486, 1088, 326, 897, 817, 1895 332, 596, 65, 563, 1305, 50, 332, 410, 50, 112, 1896 -296, 141, 142, 345, 564, 50, 407, 8, 9, 10, 1897 11, 12, 43, 44, 1206, 1352, 1353, 878, 1277, 1278, 1898 1279, 704, 696, 696, 620, 620, 885, 1123, 1106, 410, 1899 887, 1134, 1064, 410, 898, 339, 50, 112, 33, 832, 1900 1402, 966, 310, 1355, 1111, 1382, 1383, 1112, 50, 1113, 1901 43, 44, 108, 1137, 1169, 596, 1230, 1231, 707, 330, 1902 764, 765, 230, 78, 598, 231, 36, 440, 235, 1139, 1903 237, 596, 659, 50, 50, 1294, 585, 246, 1228, 650, 1904 112, 115, -3, 1220, 1363, 410, 894, 1111, 1363, 50, 1905 1112, 894, 1113, 43, 44, 651, 1381, 50, 508, 1389, 1906 920, 58, 652, 72, 766, 767, 50, 654, 267, 50, 1907 655, 834, 695, 772, 773, 656, 114, 680, 661, 695, 1419 1908 695, 695, 258, 546, 547, 2, 207, 4, 5, 6, 1420 7, 114, 772, 773, 1388, 114, 685, 39, 688, 50,1421 114, 42, 686, 1427, 108, 690, -243, 345, 1431, 716,1422 43, 44, 470, 50, 50, 1277, 1278, 1279, 546, 727,1423 50, 741, 749, -297, -14, 798, 800, 50, 1295, 1087,1424 8, 9, 10, 11, 12, 8 11, 45, 1453, 658, -15,1425 8 55, 861, 695, 899, 47, 48, 854, 1444, 272, 115,1426 881, 883, 37, 546, 38, -422, 888, 931, 220, 908,1427 93 3, 33, -528, 230, 923, 696, 898, 715, 937, 684,1428 310, 898, 696, 696, 696, 9 38, 944, 945, 50, 946,1429 9 47, 948, 71, 949, 620, 973, 974, 975, 115, 36,1430 9 63, 78, 989, 68, 119, 50, 50, 1086, 990, 991,1431 992, 1060, 8, 9, 10, 11, 12, 993, 994, 213,1432 995, -410, 50, -409, 1018, 1052, 50, 704, 1054, 1075,1433 10 76, 58, 1521, 893, 1088, 1077, 636, 68, 1521, 1078,1434 496, 72, 10 84, 33, 740, 696, 1094, 620, 620, 1521,1435 1095, 1096, 50, 1521, 161, 272, 1098, 1405, 1101, 525,1436 310, 108, 50, 526, 527, 528, 1520, 958, 1103, 1104,1437 1105, 36, 1169, 1108, 222, 1132, 1153, 1154, 1155, 1156,1909 7, 114, 685, 686, 1388, 114, 690, 39, 688, 50, 1910 114, 42, -243, 1427, 108, 716, 727, 345, 1431, 741, 1911 43, 44, 470, 50, 50, 749, 798, -14, 546, 800, 1912 50, 811, -15, -297, 854, 861, 855, 50, 1295, 1087, 1913 8, 9, 10, 11, 12, 881, 45, 1453, 658, 883, 1914 888, 931, 695, 899, 47, 48, 908, 1444, 272, 115, 1915 -422, -528, 37, 546, 38, 715, 923, 933, 220, 944, 1916 937, 33, 945, 230, 946, 696, 898, 938, 947, 684, 1917 310, 898, 696, 696, 696, 948, 949, 963, 50, 973, 1918 974, 975, 71, 989, 620, 990, 991, 992, 115, 36, 1919 993, 78, 994, 68, 119, 50, 50, 1086, 995, -410, 1920 -409, 1060, 8, 9, 10, 11, 12, 1018, 1052, 213, 1921 1054, 1058, 50, 893, 1075, 1076, 50, 704, 1077, 1078, 1922 1084, 58, 1521, 1094, 1088, 740, 636, 68, 1521, 1095, 1923 496, 72, 1096, 33, 1098, 696, 1101, 620, 620, 1521, 1924 958, 1103, 50, 1521, 161, 272, 1104, 1405, 1105, 525, 1925 310, 108, 50, 526, 527, 528, 1520, 768, 769, 770, 1926 771, 36, 1169, 1108, 222, 1132, 1153, 1154, 1155, 1156, 1438 1927 50, 78, 108, 1170, 1171, 1173, 50, 529, 1174, 530, 1439 1928 65, 531, 532, 115, 1182, 1188, -3, 398, 399, 1193, 1440 108, 1186, 1086, 400, 704, 1198, 120 1, 1203, 401, 402,1929 108, 1186, 1086, 400, 704, 1198, 1203, 1201, 401, 402, 1441 1930 260, 403, 230, 404, 235, 567, 440, 410, 491, 1207, 1442 1931 1214, 72, 114, 47, 48, 1212, 1216, 50, 1219, 1088, … … 1461 1950 1450, 1461, 1087, 372, 1471, 1473, 1486, 1475, 108, 76, 1462 1951 8, 9, 10, 11, 12, 108, 470, 326, 1478, 1479, 1463 1501, 876, 959, 470, 1506, 1513, 72, 50, 1502, 1515,1952 1501, 1187, 959, 470, 1506, 1513, 72, 50, 1502, 1515, 1464 1953 1517, 114, 1523, 114, 260, 1530, 163, 114, 589, 1531, 1465 1187, 33, 1011, 775, 617, 114, 223, 774, 777, 1110,1466 195, 1481, 776, 218, 1288, 1394, 228, 622, 50, 50,1467 778, 622, 1351, 1533, 407, 1218, 1367, 108, 1464, 36,1468 1192, 8 89, 1200, 50, 1069, 470, 890, 911, 792, 39,1469 10 73, 184, 185, 42, 909, 1017, 463, 1107, 658, 330,1470 860, 477, 43, 44, 1350, 131, 925, 132, 133, 134,1471 1 297, 709, 1087, 39, 1083, 184, 185, 42, 43, 44,1472 471, 0, 0, 742, 934, 410, 43, 44, 595, 782,1473 596, 47, 48, 78 3, 350, 58, 47, 48, 784, 471,1954 774, 33, 1011, 775, 617, 114, 223, 778, 776, 1110, 1955 195, 777, 1288, 218, 1481, 1394, 228, 622, 50, 50, 1956 1533, 622, 1351, 1218, 407, 1367, 1464, 108, 889, 36, 1957 1192, 890, 1200, 50, 1069, 470, 911, 1073, 792, 39, 1958 1017, 184, 185, 42, 909, 860, 463, 1107, 658, 330, 1959 925, 477, 43, 44, 1350, 131, 1297, 132, 133, 134, 1960 1083, 709, 1087, 39, 0, 184, 185, 42, 43, 44, 1961 471, 782, 0, 742, 934, 410, 43, 44, 595, 783, 1962 596, 47, 48, 784, 350, 58, 47, 48, 0, 471, 1474 1963 909, 0, 58, 353, 163, 0, 0, 471, 0, 0, 1475 1964 0, 0, 892, 0, 410, 0, 373, 0, 50, 0, … … 2372 2861 }; 2373 2862 2863 #define yypact_value_is_default(yystate) \ 2864 ((yystate) == (-1267)) 2865 2866 #define yytable_value_is_error(yytable_value) \ 2867 YYID (0) 2868 2374 2869 static const yytype_int16 yycheck[] = 2375 2870 { … … 2393 2888 892, 51, 680, 71, 11, 892, 136, 41, 119, 345, 2394 2889 486, 1015, 703, 136, 148, 65, 186, 187, 68, 133, 2395 186, 71, 59, 157, 187, 117, 703, 1 20, 425, 426,2890 186, 71, 59, 157, 187, 117, 703, 116, 425, 426, 2396 2891 83, 711, 202, 113, 113, 115, 115, 121, 711, 575, 2397 210, 1 34, 629, 630, 113, 711, 115, 210, 186, 0,2892 210, 100, 629, 630, 113, 711, 115, 210, 186, 0, 2398 2893 1, 1487, 222, 115, 409, 1455, 266, 266, 645, 222, 2399 266, 1232, 115, 1234, 1235, 801, 113, 83, 219, 113,2894 266, 1232, 115, 1234, 1235, 801, 113, 126, 219, 113, 2400 2895 240, 108, 206, 663, 111, 801, 210, 888, 1514, 113, 2401 2896 862, 115, 252, 34, 813, 803, 148, 186, 801, 252, 2402 2897 260, 135, 502, 1204, 252, 265, 266, 267, 114, 149, 2403 2898 113, 785, 272, 252, 267, 252, 240, 504, 257, 187, 2404 1270, 161, 509, 222, 597, 512, 703, 68, 1 16, 813,2899 1270, 161, 509, 222, 597, 512, 703, 68, 134, 813, 2405 2900 71, 801, 273, 417, 252, 1034, 1035, 297, 801, 280, 2406 2901 911, 395, 405, 801, 114, 801, 186, 187, 272, 893, … … 2410 2905 100, 341, 222, 1257, 1258, 345, 310, 341, 240, 349, 2411 2906 350, 248, 219, 919, 252, 939, 585, 1031, 1190, 267, 2412 135, 781, 252, 919, 364, 100, 126, 257, 368, 1108,2413 114, 791, 252, 835, 116, 478, 919, 341, 120, 120,2414 272, 345, 802, 3, 365, 113, 266, 114, 369, 74,2415 134, 12 6, 57, 134, 118, 395, 920, 626, 115, 118,2416 364, 983, 87, 88, 368, 405, 273, 13 4, 462, 1458,2417 1022, 350, 405, 280, 74, 1464, 76, 77, 310, 74,2418 11 6, 76, 77, 423, 120, 425, 426, 87, 88, 429,2419 115, 431, 87, 88, 99, 1484, 1426, 1378, 417, 3,2420 1489, 222, 74, 1433, 992, 993, 954, 120, 41, 615,2421 0, 331, 452, 345, 620, 87, 88, 436, 118, 120,2422 1 15, 425, 426, 925, 1378, 444, 929, 0, 120, 349,2423 470, 252, 116, 1437, 891, 136, 120, 966, 478, 1313,2424 480, 348, 482, 115, 1 36, 478, 486, 649, 452, 482,2425 730, 11 3, 492, 210, 482, 1485, 1107, 405, 365, 120,2426 813, 465, 369, 482, 504, 482, 506, 813, 1472, 509,2427 1474, 511, 512, 113, 1098, 136, 663, 120, 640, 519,2428 113, 1 35, 115, 523, 1487, 405, 490, 417, 492, 194,2429 494, 134, 471, 425, 426, 1 16, 1370, 1371, 113, 120,2430 504, 120, 506, 482, 1507, 509, 436, 511, 512, 11 4,2907 135, 781, 252, 919, 364, 74, 126, 257, 368, 1108, 2908 114, 791, 252, 835, 3, 478, 919, 341, 87, 88, 2909 272, 345, 802, 3, 365, 113, 266, 1437, 369, 74, 2910 134, 120, 57, 120, 118, 395, 920, 626, 115, 118, 2911 364, 983, 87, 88, 368, 405, 273, 136, 462, 1458, 2912 1022, 350, 405, 280, 74, 1464, 76, 77, 310, 659, 2913 113, 114, 1472, 423, 1474, 425, 426, 87, 88, 429, 2914 115, 431, 94, 95, 99, 1484, 1426, 1378, 417, 0, 2915 1489, 222, 74, 1433, 992, 993, 954, 0, 41, 615, 2916 113, 331, 452, 345, 620, 87, 88, 436, 118, 120, 2917 135, 425, 426, 925, 1378, 444, 929, 129, 130, 349, 2918 470, 252, 116, 113, 891, 136, 120, 966, 478, 1313, 2919 480, 348, 482, 115, 114, 478, 486, 649, 452, 482, 2920 730, 114, 492, 210, 482, 1485, 1107, 405, 365, 120, 2921 813, 465, 369, 482, 504, 482, 506, 813, 113, 509, 2922 132, 511, 512, 135, 1098, 136, 663, 120, 640, 519, 2923 113, 120, 115, 523, 1487, 405, 490, 417, 492, 194, 2924 494, 134, 471, 425, 426, 134, 1370, 1371, 123, 124, 2925 504, 120, 506, 482, 1507, 509, 436, 511, 512, 113, 2431 2926 674, 1514, 217, 647, 444, 272, 1080, 136, 1066, 113, 2432 2927 114, 115, 227, 1071, 115, 794, 117, 567, 568, 113, 2433 2928 478, 115, 738, 1157, 1158, 575, 700, 680, 1190, 113, 2434 297, 1001, 1002, 134, 482, 585, 586, 1004, 1 14, 589,2929 297, 1001, 1002, 134, 482, 585, 586, 1004, 120, 589, 2435 2930 480, 120, 482, 310, 120, 595, 1270, 597, 586, 862, 2436 492, 120, 482, 94, 95, 132, 486, 136, 135, 663,2931 492, 120, 482, 113, 136, 115, 486, 136, 134, 663, 2437 2932 74, 575, 76, 77, 78, 615, 113, 136, 924, 511, 2438 2933 620, 585, 622, 87, 88, 120, 626, 120, 113, 629, 2439 630, 113, 297, 115, 781, 616, 1056, 1057, 1 29, 130,2440 1 13, 136, 114, 136, 791, 645, 121, 647, 120, 113,2934 630, 113, 297, 115, 781, 616, 1056, 1057, 114, 121, 2935 122, 136, 114, 136, 791, 645, 121, 647, 120, 113, 2441 2936 631, 615, 127, 128, 1386, 802, 620, 116, 1270, 74, 2442 2937 120, 120, 626, 644, 849, 4, 5, 6, 7, 8, 2443 9, 1345, 87, 88, 120, 120, 136, 677, 617, 74,2938 9, 1345, 87, 88, 120, 120, 136, 677, 617, 114, 2444 2939 680, 120, 114, 575, 869, 10, 11, 12, 13, 14, 2445 136, 136, 87, 88, 113, 674, 115, 136, 113, 113,2446 115, 482, 120, 703, 704, 705, 931, 11 4, 892, 892,2940 136, 136, 116, 114, 114, 674, 120, 136, 113, 120, 2941 115, 482, 120, 703, 704, 705, 931, 113, 892, 892, 2447 2942 1127, 711, 712, 677, 892, 595, 41, 597, 136, 892, 2448 892, 700, 892, 615, 892, 891, 11 4, 781, 620, 113,2449 1 20, 115, 71, 855, 73, 452, 1096, 791, 738, 114,2450 1100, 114, 742, 743, 69, 726, 136, 120, 802, 616,2451 1482, 715, 691, 114, 114, 1487, 1430, 114, 1432, 1287,2943 892, 700, 892, 615, 892, 891, 113, 781, 620, 119, 2944 114, 113, 71, 855, 73, 452, 120, 791, 738, 136, 2945 114, 114, 742, 743, 69, 726, 120, 120, 802, 616, 2946 1482, 715, 691, 66, 114, 1487, 1430, 114, 1432, 1287, 2452 2947 120, 114, 1025, 120, 631, 113, 705, 120, 1491, 1491, 2453 11 9, 113, 680, 115, 1491, 1507, 441, 644, 113, 121,2454 122, 1365, 1514, 66, 674, 785, 113, 504, 115, 506,2455 1 36, 894, 509, 114, 794, 512, 796, 136, 1382, 120,2456 680, 801, 467, 11 3, 897, 114, 899, 113, 996, 115,2948 113, 113, 680, 115, 1491, 1507, 441, 644, 136, 121, 2949 122, 1365, 1514, 118, 674, 785, 116, 504, 83, 506, 2950 120, 894, 509, 114, 794, 512, 796, 136, 1382, 120, 2951 680, 801, 467, 118, 897, 114, 899, 113, 996, 115, 2457 2952 700, 120, 1486, 813, 1426, 121, 122, 983, 114, 1239, 2458 113, 1433, 115, 114, 120, 1 13, 1246, 1247, 1248, 120,2953 113, 1433, 115, 114, 120, 136, 1246, 1247, 1248, 120, 2459 2954 794, 711, 712, 4, 5, 6, 7, 8, 9, 504, 2460 1257, 11 3, 3, 115, 509, 113, 114, 512, 738, 10,2461 11, 12, 13, 14, 1001, 1002, 1096, 796, 1 36, 726,2462 1100, 1101, 862, 114, 35, 74, 118, 0, 1, 120,2463 1454, 1455, 81, 1485, 862, 84, 114, 86, 87, 88,2464 41, 11 8, 120, 862, 884, 504, 113, 506, 115, 1309,2955 1257, 116, 3, 113, 509, 120, 136, 512, 738, 10, 2956 11, 12, 13, 14, 1001, 1002, 1096, 796, 118, 726, 2957 1100, 1101, 862, 74, 35, 76, 77, 0, 1, 114, 2958 1454, 1455, 114, 1485, 862, 120, 87, 88, 120, 113, 2959 41, 115, 114, 862, 884, 504, 113, 506, 120, 1309, 2465 2960 509, 891, 892, 512, 894, 1017, 884, 114, 31, 32, 2466 71, 34, 73, 120, 1 36, 113, 906, 115, 69, 1056,2467 1057, 1 14, 45, 121, 122, 136, 114, 120, 51, 919,2468 920, 801, 120, 862, 924, 118, 59, 1190, 114, 113,2469 930, 931, 65, 813, 120, 68, 123, 124, 71, 930,2470 92, 93, 906, 1170, 1171, 83, 1173, 1001, 1002, 83,2471 114, 84, 85, 1180, 954, 1182, 120, 96, 97, 1467,2472 677, 1127, 1 13, 1066, 862, 929, 930, 931, 1071, 122,2473 114, 11 4, 862, 113, 1214, 108, 120, 120, 111, 74,2474 3, 76, 77, 983, 131, 118, 894, 10, 11, 12,2475 13, 14, 87, 88, 1088, 119, 120, 662, 113, 114,2476 115, 891, 1056, 1057, 1004, 1005, 671, 113, 1516, 115,2477 675, 1 32, 892, 98, 894, 115, 149, 74, 41, 983,2478 11 4, 115, 1022, 1286, 81, 60, 61, 84, 161, 86,2479 87, 88, 930, 11 6, 1022, 113, 114, 115, 1204, 931,2480 119, 120, 72, 1022, 924, 75, 69, 986, 78, 116,2481 80, 46, 47, 186, 187, 1202, 114, 87, 115, 551,2482 552, 1061, 1113, 1114, 1304, 114, 1066, 114, 1308, 202,2483 114, 1071, 555, 556, 557, 558, 1339, 210, 285, 1342,2961 71, 34, 73, 120, 115, 114, 906, 113, 69, 1056, 2962 1057, 120, 45, 113, 114, 115, 114, 83, 51, 919, 2963 920, 801, 120, 862, 924, 1096, 59, 1190, 114, 1100, 2964 930, 931, 65, 813, 120, 68, 92, 93, 71, 930, 2965 119, 120, 906, 1170, 1171, 122, 1173, 1001, 1002, 96, 2966 97, 84, 85, 1180, 954, 1182, 113, 114, 115, 1467, 2967 677, 1127, 131, 1066, 862, 929, 930, 931, 1071, 113, 2968 114, 115, 862, 132, 1214, 108, 114, 115, 111, 74, 2969 3, 76, 77, 983, 98, 118, 894, 10, 11, 12, 2970 13, 14, 87, 88, 1088, 60, 61, 662, 60, 61, 2971 62, 891, 1056, 1057, 1004, 1005, 671, 113, 1516, 115, 2972 675, 113, 892, 115, 894, 115, 149, 74, 41, 983, 2973 119, 120, 1022, 1286, 81, 46, 47, 84, 161, 86, 2974 87, 88, 930, 113, 1022, 115, 1113, 1114, 1204, 931, 2975 551, 552, 72, 1022, 924, 75, 69, 986, 78, 113, 2976 80, 115, 113, 186, 187, 1202, 116, 87, 115, 114, 2977 74, 1061, 116, 113, 1304, 115, 1066, 81, 1308, 202, 2978 84, 1071, 86, 87, 88, 114, 1339, 210, 285, 1342, 2484 2979 1080, 862, 114, 1022, 553, 554, 219, 114, 1088, 222, 2485 11 6, 983, 1239, 113, 114, 115, 229, 1061, 113, 1246,2980 114, 983, 1239, 559, 560, 114, 229, 1061, 116, 1246, 2486 2981 1247, 1248, 115, 310, 311, 4, 5, 6, 7, 8, 2487 9, 244, 559, 560, 1341, 248, 118, 74, 135, 252,2488 253, 78, 1 20, 1386, 1022, 118, 118, 1127, 1391, 135,2489 87, 88, 1022, 266, 267, 60, 61, 62, 345, 113,2490 273, 11 4, 114, 3, 134, 116, 116, 280, 1202, 930,2491 10, 11, 12, 13, 14, 11 6, 113, 1420, 1066, 134,2492 1 20, 31, 1309, 1071, 121, 122, 134, 1407, 1168, 1169,2493 114, 11 4, 71, 380, 73, 114, 118, 113, 1169, 119,2494 1 14, 41, 119, 213, 119, 1239, 1066, 120, 134, 906,2495 1190, 1071, 1246, 1247, 1248, 1 36, 114, 120, 331, 114,2982 9, 244, 118, 120, 1341, 248, 118, 74, 135, 252, 2983 253, 78, 118, 1386, 1022, 135, 113, 1127, 1391, 114, 2984 87, 88, 1022, 266, 267, 114, 116, 134, 345, 116, 2985 273, 116, 134, 3, 134, 31, 120, 280, 1202, 930, 2986 10, 11, 12, 13, 14, 114, 113, 1420, 1066, 114, 2987 118, 113, 1309, 1071, 121, 122, 119, 1407, 1168, 1169, 2988 114, 119, 71, 380, 73, 120, 119, 114, 1169, 114, 2989 134, 41, 120, 213, 114, 1239, 1066, 136, 114, 906, 2990 1190, 1071, 1246, 1247, 1248, 114, 114, 120, 331, 114, 2496 2991 114, 114, 1190, 114, 1204, 114, 114, 114, 1208, 69, 2497 1 20, 1190, 114, 0, 1, 348, 349, 1208, 114, 114,2498 114, 886, 10, 11, 12, 13, 14, 11 4, 114, 1168,2499 1 14, 114, 365, 114, 119, 31, 369, 1127, 135, 114,2500 1 20, 1022, 1505, 134, 1208, 116, 379, 34, 1511, 116,2501 280, 1190, 1 14, 41, 120, 1309, 114, 1257, 1258, 1522,2502 11 4, 134, 395, 1526, 51, 1265, 113, 1361, 120, 85,2503 1270, 1169, 405, 89, 90, 91, 1501, 118, 114, 114,2504 114, 69, 1270, 120, 71, 114, 114, 120, 120, 114,2992 114, 1190, 114, 0, 1, 348, 349, 1208, 114, 114, 2993 114, 886, 10, 11, 12, 13, 14, 119, 31, 1168, 2994 135, 114, 365, 134, 114, 120, 369, 1127, 116, 116, 2995 114, 1022, 1505, 114, 1208, 120, 379, 34, 1511, 114, 2996 280, 1190, 134, 41, 113, 1309, 120, 1257, 1258, 1522, 2997 118, 114, 395, 1526, 51, 1265, 114, 1361, 114, 85, 2998 1270, 1169, 405, 89, 90, 91, 1501, 555, 556, 557, 2999 558, 69, 1270, 120, 71, 114, 114, 120, 120, 114, 2505 3000 423, 1270, 1190, 113, 113, 113, 429, 113, 113, 115, 2506 3001 1190, 117, 118, 1303, 113, 136, 119, 1491, 1491, 114, 2507 1208, 134, 1303, 1491, 1204, 114, 11 9, 114, 1491, 1491,3002 1208, 134, 1303, 1491, 1204, 114, 114, 119, 1491, 1491, 2508 3003 107, 1491, 352, 1491, 354, 113, 1265, 115, 132, 119, 2509 3004 116, 1270, 465, 121, 122, 118, 136, 470, 114, 1303, … … 2528 3023 116, 136, 1303, 1516, 114, 114, 136, 119, 1426, 34, 2529 3024 10, 11, 12, 13, 14, 1433, 1426, 1501, 116, 116, 2530 113, 659, 749, 1433, 119, 119, 1485, 680, 136, 114,3025 113, 1037, 749, 1433, 119, 119, 1485, 680, 136, 114, 2531 3026 114, 684, 136, 686, 341, 114, 51, 690, 345, 114, 2532 1037, 41, 851, 562, 351, 698, 71, 561, 564, 963,2533 65, 1455, 563, 68, 1190, 1347, 71, 364, 711, 712,2534 565, 368, 1280, 1526, 1492, 1101, 1308, 1485, 1433, 69,2535 1052, 677, 1071, 726, 899, 1485, 6 77, 690, 579, 74,2536 907, 76, 77, 78, 893, 855, 253, 958, 1516, 1501,2537 641, 1491, 87, 88, 1279, 74, 715, 76, 77, 78,2538 1208, 482, 1403, 74, 927, 76, 77, 78, 87, 88,2539 417, -1, -1, 113, 726, 115, 87, 88, 113, 567,2540 115, 121, 122, 567, 431, 1426, 121, 122, 567, 436,3027 561, 41, 851, 562, 351, 698, 71, 565, 563, 963, 3028 65, 564, 1190, 68, 1455, 1347, 71, 364, 711, 712, 3029 1526, 368, 1280, 1101, 1492, 1308, 1433, 1485, 677, 69, 3030 1052, 677, 1071, 726, 899, 1485, 690, 907, 579, 74, 3031 855, 76, 77, 78, 893, 641, 253, 958, 1516, 1501, 3032 715, 1491, 87, 88, 1279, 74, 1208, 76, 77, 78, 3033 927, 482, 1403, 74, -1, 76, 77, 78, 87, 88, 3034 417, 567, -1, 113, 726, 115, 87, 88, 113, 567, 3035 115, 121, 122, 567, 431, 1426, 121, 122, -1, 436, 2541 3036 939, -1, 1433, 158, 149, -1, -1, 444, -1, -1, 2542 3037 -1, -1, 113, -1, 115, -1, 161, -1, 801, -1, … … 3439 3934 }; 3440 3935 3441 3442 3936 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3937 symbol of state STATE-NUM. */ 3443 3938 static const yytype_uint16 yystos[] = 3444 3939 { … … 3530 4025 171, 138, 115, 280, 134, 120, 378, 284, 115, 134, 3531 4026 288, 31, 216, 217, 278, 266, 143, 315, 143, 317, 3532 113, 355, 356, 113, 355, 356, 14 6, 356, 180, 270,4027 113, 355, 356, 113, 355, 356, 145, 356, 180, 270, 3533 4028 114, 114, 114, 114, 138, 180, 214, 180, 118, 256, 3534 4029 257, 138, 113, 134, 156, 258, 260, 324, 325, 337, … … 3599 4094 }; 3600 4095 3601 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 3602 static const yytype_uint16 yyr1[] = 3603 { 3604 0, 137, 138, 139, 140, 140, 140, 140, 140, 141, 3605 141, 141, 142, 142, 143, 143, 144, 144, 145, 146, 3606 146, 147, 147, 147, 147, 147, 148, 148, 148, 148, 3607 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, 3608 150, 150, 151, 151, 152, 152, 152, 152, 152, 152, 3609 152, 153, 153, 153, 154, 154, 155, 155, 155, 155, 3610 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 3611 155, 155, 156, 156, 157, 157, 157, 157, 158, 158, 3612 159, 159, 159, 159, 160, 160, 160, 161, 161, 161, 3613 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, 3614 165, 165, 166, 166, 167, 167, 168, 168, 169, 169, 3615 169, 170, 171, 171, 172, 172, 173, 173, 173, 173, 3616 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 3617 175, 175, 176, 176, 177, 177, 178, 178, 178, 178, 3618 178, 178, 178, 178, 178, 179, 180, 180, 181, 181, 3619 182, 182, 182, 182, 183, 183, 184, 185, 185, 185, 3620 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 3621 189, 189, 190, 191, 191, 192, 192, 193, 193, 194, 3622 194, 194, 194, 195, 195, 196, 196, 197, 197, 197, 3623 198, 198, 199, 199, 199, 199, 199, 199, 199, 199, 3624 199, 199, 200, 200, 200, 201, 201, 201, 201, 201, 3625 202, 202, 202, 202, 203, 204, 204, 204, 204, 204, 3626 205, 205, 205, 205, 205, 206, 206, 207, 207, 208, 3627 208, 209, 209, 210, 210, 210, 211, 211, 212, 212, 3628 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 3629 218, 218, 219, 219, 220, 220, 220, 220, 220, 221, 3630 221, 221, 222, 222, 222, 223, 223, 223, 223, 223, 3631 224, 224, 225, 225, 226, 226, 226, 227, 227, 227, 3632 227, 227, 228, 228, 229, 229, 229, 229, 230, 230, 3633 231, 231, 231, 231, 232, 232, 232, 232, 233, 233, 3634 234, 234, 235, 235, 236, 236, 236, 236, 236, 237, 3635 236, 238, 238, 238, 239, 239, 240, 240, 240, 240, 3636 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 3637 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 3638 242, 242, 242, 242, 243, 243, 244, 244, 244, 244, 3639 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 3640 247, 248, 248, 248, 248, 249, 249, 249, 250, 250, 3641 251, 251, 252, 251, 251, 251, 253, 253, 254, 254, 3642 255, 255, 255, 255, 256, 256, 256, 256, 257, 257, 3643 258, 258, 258, 258, 258, 259, 259, 260, 261, 262, 3644 262, 263, 262, 264, 264, 265, 265, 266, 266, 267, 3645 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, 3646 270, 270, 271, 271, 272, 272, 272, 272, 273, 273, 3647 273, 273, 273, 274, 274, 274, 274, 274, 275, 275, 3648 276, 276, 277, 277, 278, 278, 278, 279, 279, 279, 3649 280, 280, 280, 281, 281, 281, 282, 282, 282, 282, 3650 283, 283, 283, 284, 284, 285, 285, 285, 285, 285, 3651 286, 286, 287, 287, 288, 288, 288, 288, 288, 289, 3652 289, 289, 289, 290, 290, 290, 291, 292, 292, 294, 3653 293, 293, 295, 295, 295, 296, 296, 297, 297, 297, 3654 298, 298, 298, 298, 299, 299, 299, 300, 300, 301, 3655 301, 302, 303, 302, 304, 304, 305, 305, 306, 306, 3656 306, 307, 307, 308, 308, 309, 309, 310, 310, 311, 3657 311, 311, 312, 311, 311, 313, 313, 313, 314, 314, 3658 314, 314, 314, 314, 314, 314, 314, 315, 315, 315, 3659 316, 317, 317, 318, 318, 319, 319, 320, 321, 321, 3660 322, 322, 322, 323, 323, 323, 323, 324, 324, 324, 3661 324, 325, 325, 326, 326, 326, 327, 327, 327, 327, 3662 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 3663 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 3664 335, 335, 335, 336, 336, 336, 337, 337, 337, 337, 3665 338, 338, 339, 339, 339, 340, 340, 340, 340, 341, 3666 341, 341, 342, 342, 342, 342, 343, 343, 343, 344, 3667 344, 344, 344, 345, 345, 345, 346, 346, 346, 346, 3668 347, 347, 348, 348, 348, 349, 349, 350, 350, 351, 3669 351, 351, 352, 352, 352, 352, 352, 353, 353, 353, 3670 353, 354, 354, 354, 355, 355, 355, 356, 356, 356, 3671 356, 357, 357, 357, 358, 358, 358, 358, 358, 359, 3672 359, 359, 359, 360, 360, 360, 361, 361, 361, 362, 3673 362, 362, 362, 362, 362, 363, 363, 363, 364, 364, 3674 364, 364, 364, 365, 365, 365, 365, 366, 366, 367, 3675 367, 367, 368, 368, 369, 369, 369, 369, 369, 369, 3676 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 3677 371, 371, 371, 371, 372, 372, 372, 373, 373, 374, 3678 374, 374, 374, 374, 374, 375, 375, 375, 375, 375, 3679 375, 376, 377, 377, 378, 378, 379, 379 3680 }; 3681 3682 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 3683 static const yytype_uint8 yyr2[] = 3684 { 3685 0, 2, 0, 0, 1, 1, 1, 1, 1, 1, 3686 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3687 2, 1, 1, 1, 3, 3, 1, 6, 4, 3, 3688 7, 2, 3, 7, 2, 2, 7, 4, 1, 3, 3689 0, 1, 1, 3, 1, 2, 6, 3, 7, 3, 3690 7, 2, 2, 2, 0, 2, 1, 1, 1, 2, 3691 2, 2, 2, 2, 2, 4, 2, 4, 6, 1, 3692 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, 3693 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3694 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3695 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 3696 4, 1, 1, 3, 0, 1, 1, 1, 1, 1, 3697 1, 1, 1, 1, 1, 1, 1, 1, 6, 7, 3698 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, 3699 1, 1, 1, 1, 6, 4, 2, 7, 1, 3, 3700 1, 2, 1, 2, 1, 2, 2, 5, 7, 5, 3701 9, 5, 9, 1, 3, 1, 1, 3, 3, 2, 3702 1, 2, 2, 0, 1, 2, 3, 0, 1, 2, 3703 3, 3, 4, 0, 1, 1, 2, 5, 7, 6, 3704 6, 4, 3, 4, 2, 3, 2, 3, 3, 3, 3705 3, 5, 3, 3, 4, 1, 5, 6, 5, 6, 3706 9, 10, 9, 10, 2, 1, 2, 2, 2, 1, 3707 6, 8, 10, 12, 14, 0, 1, 0, 1, 1, 3708 3, 4, 7, 0, 1, 3, 1, 3, 1, 1, 3709 1, 3, 1, 1, 1, 3, 0, 1, 3, 4, 3710 1, 3, 1, 1, 3, 3, 3, 3, 3, 2, 3711 3, 6, 3, 3, 4, 1, 2, 2, 3, 5, 3712 7, 7, 5, 9, 2, 2, 5, 3, 5, 4, 3713 3, 4, 4, 7, 3, 3, 3, 3, 4, 6, 3714 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 3715 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 3716 5, 1, 2, 3, 1, 2, 1, 1, 1, 1, 3717 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3718 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3719 2, 2, 3, 3, 1, 3, 1, 2, 2, 2, 3720 4, 4, 4, 4, 1, 2, 2, 3, 1, 2, 3721 2, 1, 2, 2, 3, 1, 2, 2, 1, 1, 3722 4, 2, 0, 6, 7, 2, 2, 2, 0, 2, 3723 2, 3, 2, 3, 1, 2, 3, 2, 2, 4, 3724 0, 1, 2, 2, 1, 0, 1, 2, 2, 5, 3725 2, 0, 7, 2, 4, 0, 2, 0, 1, 1, 3726 1, 5, 5, 5, 1, 5, 5, 9, 1, 5, 3727 0, 1, 1, 5, 1, 1, 5, 5, 1, 3, 3728 3, 4, 1, 1, 1, 1, 2, 1, 3, 3, 3729 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3730 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 3731 0, 2, 2, 1, 4, 0, 1, 2, 3, 4, 3732 2, 2, 1, 2, 2, 5, 5, 7, 6, 1, 3733 2, 2, 3, 1, 2, 2, 4, 2, 4, 0, 3734 4, 2, 1, 1, 1, 0, 2, 5, 5, 13, 3735 1, 1, 3, 3, 2, 3, 3, 2, 4, 1, 3736 6, 9, 0, 11, 1, 3, 3, 3, 1, 1, 3737 5, 2, 5, 0, 1, 1, 3, 0, 1, 1, 3738 1, 1, 0, 6, 2, 1, 2, 4, 2, 3, 3739 3, 3, 4, 5, 5, 5, 6, 1, 1, 1, 3740 3, 0, 5, 0, 1, 1, 2, 6, 1, 3, 3741 0, 1, 4, 1, 1, 1, 1, 2, 1, 2, 3742 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 3743 8, 3, 2, 1, 2, 6, 8, 3, 2, 3, 3744 3, 4, 4, 3, 1, 1, 1, 4, 6, 3, 3745 2, 3, 3, 4, 4, 3, 2, 1, 2, 2, 3746 1, 3, 2, 3, 3, 2, 4, 4, 3, 6, 3747 8, 3, 2, 1, 2, 2, 2, 3, 3, 2, 3748 4, 4, 3, 6, 8, 3, 2, 1, 2, 2, 3749 1, 1, 2, 3, 3, 2, 4, 6, 8, 1, 3750 2, 2, 1, 2, 2, 3, 3, 1, 4, 4, 3751 3, 5, 8, 3, 2, 3, 1, 5, 5, 6, 3752 6, 1, 2, 2, 1, 2, 2, 3, 3, 1, 3753 4, 4, 3, 5, 8, 3, 1, 2, 1, 2, 3754 6, 5, 6, 7, 7, 1, 2, 2, 1, 2, 3755 2, 3, 3, 1, 4, 4, 3, 8, 3, 1, 3756 1, 2, 1, 1, 2, 3, 2, 3, 2, 3, 3757 3, 2, 4, 3, 2, 3, 2, 4, 3, 2, 3758 6, 6, 6, 7, 1, 2, 1, 1, 1, 2, 3759 3, 2, 3, 2, 3, 3, 4, 2, 3, 4, 3760 2, 5, 6, 6, 0, 1, 0, 2 3761 }; 3762 3763 3764 #define yyerrok (yyerrstatus = 0) 3765 #define yyclearin (yychar = YYEMPTY) 3766 #define YYEMPTY (-2) 3767 #define YYEOF 0 3768 3769 #define YYACCEPT goto yyacceptlab 3770 #define YYABORT goto yyabortlab 3771 #define YYERROR goto yyerrorlab 3772 4096 #define yyerrok (yyerrstatus = 0) 4097 #define yyclearin (yychar = YYEMPTY) 4098 #define YYEMPTY (-2) 4099 #define YYEOF 0 4100 4101 #define YYACCEPT goto yyacceptlab 4102 #define YYABORT goto yyabortlab 4103 #define YYERROR goto yyerrorlab 4104 4105 4106 /* Like YYERROR except do call yyerror. This remains here temporarily 4107 to ease the transition to the new meaning of YYERROR, for GCC. 4108 Once GCC version 2 has supplanted version 1, this can go. However, 4109 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4110 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4111 discussed. */ 4112 4113 #define YYFAIL goto yyerrlab 4114 #if defined YYFAIL 4115 /* This is here to suppress warnings from the GCC cpp's 4116 -Wunused-macros. Normally we don't worry about that warning, but 4117 some users do, and we want to make it easy for users to remove 4118 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4119 #endif 3773 4120 3774 4121 #define YYRECOVERING() (!!yyerrstatus) 3775 4122 3776 #define YYBACKUP(Token, Value) \ 3777 do \ 3778 if (yychar == YYEMPTY) \ 3779 { \ 3780 yychar = (Token); \ 3781 yylval = (Value); \ 3782 YYPOPSTACK (yylen); \ 3783 yystate = *yyssp; \ 3784 goto yybackup; \ 3785 } \ 3786 else \ 3787 { \ 4123 #define YYBACKUP(Token, Value) \ 4124 do \ 4125 if (yychar == YYEMPTY && yylen == 1) \ 4126 { \ 4127 yychar = (Token); \ 4128 yylval = (Value); \ 4129 YYPOPSTACK (1); \ 4130 goto yybackup; \ 4131 } \ 4132 else \ 4133 { \ 3788 4134 yyerror (YY_("syntax error: cannot back up")); \ 3789 YYERROR; \ 3790 } \ 3791 while (0) 3792 3793 /* Error token number */ 3794 #define YYTERROR 1 3795 #define YYERRCODE 256 3796 3797 4135 YYERROR; \ 4136 } \ 4137 while (YYID (0)) 4138 4139 4140 #define YYTERROR 1 4141 #define YYERRCODE 256 4142 4143 4144 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4145 If N is 0, then set CURRENT to the empty location which ends 4146 the previous symbol: RHS[0] (always defined). */ 4147 4148 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4149 #ifndef YYLLOC_DEFAULT 4150 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4151 do \ 4152 if (YYID (N)) \ 4153 { \ 4154 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4155 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4156 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4157 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4158 } \ 4159 else \ 4160 { \ 4161 (Current).first_line = (Current).last_line = \ 4162 YYRHSLOC (Rhs, 0).last_line; \ 4163 (Current).first_column = (Current).last_column = \ 4164 YYRHSLOC (Rhs, 0).last_column; \ 4165 } \ 4166 while (YYID (0)) 4167 #endif 4168 4169 4170 /* This macro is provided for backward compatibility. */ 4171 4172 #ifndef YY_LOCATION_PRINT 4173 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4174 #endif 4175 4176 4177 /* YYLEX -- calling `yylex' with the right arguments. */ 4178 4179 #ifdef YYLEX_PARAM 4180 # define YYLEX yylex (YYLEX_PARAM) 4181 #else 4182 # define YYLEX yylex () 4183 #endif 3798 4184 3799 4185 /* Enable debugging if requested. */ … … 3805 4191 # endif 3806 4192 3807 # define YYDPRINTF(Args) \ 3808 do { \ 3809 if (yydebug) \ 3810 YYFPRINTF Args; \ 3811 } while (0) 3812 3813 /* This macro is provided for backward compatibility. */ 3814 #ifndef YY_LOCATION_PRINT 3815 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3816 #endif 3817 3818 3819 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3820 do { \ 3821 if (yydebug) \ 3822 { \ 3823 YYFPRINTF (stderr, "%s ", Title); \ 3824 yy_symbol_print (stderr, \ 3825 Type, Value); \ 3826 YYFPRINTF (stderr, "\n"); \ 3827 } \ 3828 } while (0) 3829 3830 3831 /*----------------------------------------. 3832 | Print this symbol's value on YYOUTPUT. | 3833 `----------------------------------------*/ 3834 4193 # define YYDPRINTF(Args) \ 4194 do { \ 4195 if (yydebug) \ 4196 YYFPRINTF Args; \ 4197 } while (YYID (0)) 4198 4199 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4200 do { \ 4201 if (yydebug) \ 4202 { \ 4203 YYFPRINTF (stderr, "%s ", Title); \ 4204 yy_symbol_print (stderr, \ 4205 Type, Value); \ 4206 YYFPRINTF (stderr, "\n"); \ 4207 } \ 4208 } while (YYID (0)) 4209 4210 4211 /*--------------------------------. 4212 | Print this symbol on YYOUTPUT. | 4213 `--------------------------------*/ 4214 4215 /*ARGSUSED*/ 4216 #if (defined __STDC__ || defined __C99__FUNC__ \ 4217 || defined __cplusplus || defined _MSC_VER) 3835 4218 static void 3836 4219 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4220 #else 4221 static void 4222 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 4223 FILE *yyoutput; 4224 int yytype; 4225 YYSTYPE const * const yyvaluep; 4226 #endif 3837 4227 { 3838 FILE *yyo = yyoutput;3839 YYUSE (yyo);3840 4228 if (!yyvaluep) 3841 4229 return; … … 3843 4231 if (yytype < YYNTOKENS) 3844 4232 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4233 # else 4234 YYUSE (yyoutput); 3845 4235 # endif 3846 YYUSE (yytype); 4236 switch (yytype) 4237 { 4238 default: 4239 break; 4240 } 3847 4241 } 3848 4242 … … 3852 4246 `--------------------------------*/ 3853 4247 4248 #if (defined __STDC__ || defined __C99__FUNC__ \ 4249 || defined __cplusplus || defined _MSC_VER) 3854 4250 static void 3855 4251 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4252 #else 4253 static void 4254 yy_symbol_print (yyoutput, yytype, yyvaluep) 4255 FILE *yyoutput; 4256 int yytype; 4257 YYSTYPE const * const yyvaluep; 4258 #endif 3856 4259 { 3857 YYFPRINTF (yyoutput, "%s %s (", 3858 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4260 if (yytype < YYNTOKENS) 4261 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4262 else 4263 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3859 4264 3860 4265 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 3867 4272 `------------------------------------------------------------------*/ 3868 4273 4274 #if (defined __STDC__ || defined __C99__FUNC__ \ 4275 || defined __cplusplus || defined _MSC_VER) 3869 4276 static void 3870 4277 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4278 #else 4279 static void 4280 yy_stack_print (yybottom, yytop) 4281 yytype_int16 *yybottom; 4282 yytype_int16 *yytop; 4283 #endif 3871 4284 { 3872 4285 YYFPRINTF (stderr, "Stack now"); … … 3879 4292 } 3880 4293 3881 # define YY_STACK_PRINT(Bottom, Top) 3882 do { 3883 if (yydebug) 3884 yy_stack_print ((Bottom), (Top)); 3885 } while ( 0)4294 # define YY_STACK_PRINT(Bottom, Top) \ 4295 do { \ 4296 if (yydebug) \ 4297 yy_stack_print ((Bottom), (Top)); \ 4298 } while (YYID (0)) 3886 4299 3887 4300 … … 3890 4303 `------------------------------------------------*/ 3891 4304 4305 #if (defined __STDC__ || defined __C99__FUNC__ \ 4306 || defined __cplusplus || defined _MSC_VER) 3892 4307 static void 3893 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4308 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4309 #else 4310 static void 4311 yy_reduce_print (yyvsp, yyrule) 4312 YYSTYPE *yyvsp; 4313 int yyrule; 4314 #endif 3894 4315 { 3895 unsigned long int yylno = yyrline[yyrule];3896 4316 int yynrhs = yyr2[yyrule]; 3897 4317 int yyi; 4318 unsigned long int yylno = yyrline[yyrule]; 3898 4319 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 3899 4320 yyrule - 1, yylno); 3900 4321 /* The symbols being reduced. */ 3901 4322 for (yyi = 0; yyi < yynrhs; yyi++) 3902 4323 { 3903 4324 YYFPRINTF (stderr, " $%d = ", yyi + 1); 3904 yy_symbol_print (stderr, 3905 yystos[yyssp[yyi + 1 - yynrhs]], 3906 &(yyvsp[(yyi + 1) - (yynrhs)]) 3907 ); 4325 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4326 &(yyvsp[(yyi + 1) - (yynrhs)]) 4327 ); 3908 4328 YYFPRINTF (stderr, "\n"); 3909 4329 } 3910 4330 } 3911 4331 3912 # define YY_REDUCE_PRINT(Rule) 3913 do { 3914 if (yydebug) 3915 yy_reduce_print (yy ssp, yyvsp, Rule); \3916 } while ( 0)4332 # define YY_REDUCE_PRINT(Rule) \ 4333 do { \ 4334 if (yydebug) \ 4335 yy_reduce_print (yyvsp, Rule); \ 4336 } while (YYID (0)) 3917 4337 3918 4338 /* Nonzero means print parse trace. It is left uninitialized so that … … 3928 4348 3929 4349 /* YYINITDEPTH -- initial size of the parser's stacks. */ 3930 #ifndef 4350 #ifndef YYINITDEPTH 3931 4351 # define YYINITDEPTH 200 3932 4352 #endif … … 3951 4371 # else 3952 4372 /* Return the length of YYSTR. */ 4373 #if (defined __STDC__ || defined __C99__FUNC__ \ 4374 || defined __cplusplus || defined _MSC_VER) 3953 4375 static YYSIZE_T 3954 4376 yystrlen (const char *yystr) 4377 #else 4378 static YYSIZE_T 4379 yystrlen (yystr) 4380 const char *yystr; 4381 #endif 3955 4382 { 3956 4383 YYSIZE_T yylen; … … 3968 4395 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 3969 4396 YYDEST. */ 4397 #if (defined __STDC__ || defined __C99__FUNC__ \ 4398 || defined __cplusplus || defined _MSC_VER) 3970 4399 static char * 3971 4400 yystpcpy (char *yydest, const char *yysrc) 4401 #else 4402 static char * 4403 yystpcpy (yydest, yysrc) 4404 char *yydest; 4405 const char *yysrc; 4406 #endif 3972 4407 { 3973 4408 char *yyd = yydest; … … 3999 4434 4000 4435 for (;;) 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4436 switch (*++yyp) 4437 { 4438 case '\'': 4439 case ',': 4440 goto do_not_strip_quotes; 4441 4442 case '\\': 4443 if (*++yyp != '\\') 4444 goto do_not_strip_quotes; 4445 /* Fall through. */ 4446 default: 4447 if (yyres) 4448 yyres[yyn] = *yyp; 4449 yyn++; 4450 break; 4451 4452 case '"': 4453 if (yyres) 4454 yyres[yyn] = '\0'; 4455 return yyn; 4456 } 4022 4457 do_not_strip_quotes: ; 4023 4458 } … … 4042 4477 yytype_int16 *yyssp, int yytoken) 4043 4478 { 4044 YYSIZE_T yysize0 = yytnamerr ( YY_NULLPTR, yytname[yytoken]);4479 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); 4045 4480 YYSIZE_T yysize = yysize0; 4481 YYSIZE_T yysize1; 4046 4482 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4047 4483 /* Internationalized format string. */ 4048 const char *yyformat = YY_NULLPTR;4484 const char *yyformat = 0; 4049 4485 /* Arguments of yyformat. */ 4050 4486 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4054 4490 4055 4491 /* There are many possibilities here to consider: 4492 - Assume YYFAIL is not used. It's too flawed to consider. See 4493 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> 4494 for details. YYERROR is fine as it does not invoke this 4495 function. 4056 4496 - If this state is a consistent state with a default action, then 4057 4497 the only way this function was invoked is if the default action … … 4102 4542 } 4103 4543 yyarg[yycount++] = yytname[yyx]; 4104 { 4105 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4106 if (! (yysize <= yysize1 4107 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4108 return 2; 4109 yysize = yysize1; 4110 } 4544 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4545 if (! (yysize <= yysize1 4546 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4547 return 2; 4548 yysize = yysize1; 4111 4549 } 4112 4550 } … … 4128 4566 } 4129 4567 4130 { 4131 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4132 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4133 return 2; 4134 yysize = yysize1; 4135 } 4568 yysize1 = yysize + yystrlen (yyformat); 4569 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4570 return 2; 4571 yysize = yysize1; 4136 4572 4137 4573 if (*yymsg_alloc < yysize) … … 4170 4606 `-----------------------------------------------*/ 4171 4607 4608 /*ARGSUSED*/ 4609 #if (defined __STDC__ || defined __C99__FUNC__ \ 4610 || defined __cplusplus || defined _MSC_VER) 4172 4611 static void 4173 4612 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4613 #else 4614 static void 4615 yydestruct (yymsg, yytype, yyvaluep) 4616 const char *yymsg; 4617 int yytype; 4618 YYSTYPE *yyvaluep; 4619 #endif 4174 4620 { 4175 4621 YYUSE (yyvaluep); 4622 4176 4623 if (!yymsg) 4177 4624 yymsg = "Deleting"; 4178 4625 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4179 4626 4180 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4181 YYUSE (yytype); 4182 YY_IGNORE_MAYBE_UNINITIALIZED_END 4627 switch (yytype) 4628 { 4629 4630 default: 4631 break; 4632 } 4183 4633 } 4184 4634 4185 4635 4636 /* Prevent warnings from -Wmissing-prototypes. */ 4637 #ifdef YYPARSE_PARAM 4638 #if defined __STDC__ || defined __cplusplus 4639 int yyparse (void *YYPARSE_PARAM); 4640 #else 4641 int yyparse (); 4642 #endif 4643 #else /* ! YYPARSE_PARAM */ 4644 #if defined __STDC__ || defined __cplusplus 4645 int yyparse (void); 4646 #else 4647 int yyparse (); 4648 #endif 4649 #endif /* ! YYPARSE_PARAM */ 4186 4650 4187 4651 … … 4191 4655 /* The semantic value of the lookahead symbol. */ 4192 4656 YYSTYPE yylval; 4657 4193 4658 /* Number of syntax errors so far. */ 4194 4659 int yynerrs; … … 4199 4664 `----------*/ 4200 4665 4666 #ifdef YYPARSE_PARAM 4667 #if (defined __STDC__ || defined __C99__FUNC__ \ 4668 || defined __cplusplus || defined _MSC_VER) 4669 int 4670 yyparse (void *YYPARSE_PARAM) 4671 #else 4672 int 4673 yyparse (YYPARSE_PARAM) 4674 void *YYPARSE_PARAM; 4675 #endif 4676 #else /* ! YYPARSE_PARAM */ 4677 #if (defined __STDC__ || defined __C99__FUNC__ \ 4678 || defined __cplusplus || defined _MSC_VER) 4201 4679 int 4202 4680 yyparse (void) 4681 #else 4682 int 4683 yyparse () 4684 4685 #endif 4686 #endif 4203 4687 { 4204 4688 int yystate; … … 4207 4691 4208 4692 /* The stacks and their tools: 4209 'yyss': related to states.4210 'yyvs': related to semantic values.4211 4212 Refer to the stacks thr oughseparate pointers, to allow yyoverflow4693 `yyss': related to states. 4694 `yyvs': related to semantic values. 4695 4696 Refer to the stacks thru separate pointers, to allow yyoverflow 4213 4697 to reallocate them elsewhere. */ 4214 4698 … … 4228 4712 int yyresult; 4229 4713 /* Lookahead token as an internal (translated) token number. */ 4230 int yytoken = 0;4714 int yytoken; 4231 4715 /* The variables used to return semantic value and location from the 4232 4716 action routines. */ … … 4246 4730 int yylen = 0; 4247 4731 4248 yyssp = yyss = yyssa; 4249 yyvsp = yyvs = yyvsa; 4732 yytoken = 0; 4733 yyss = yyssa; 4734 yyvs = yyvsa; 4250 4735 yystacksize = YYINITDEPTH; 4251 4736 … … 4256 4741 yynerrs = 0; 4257 4742 yychar = YYEMPTY; /* Cause a token to be read. */ 4743 4744 /* Initialize stack pointers. 4745 Waste one element of value and location stack 4746 so that they stay on the same level as the state stack. 4747 The wasted elements are never initialized. */ 4748 yyssp = yyss; 4749 yyvsp = yyvs; 4750 4258 4751 goto yysetstate; 4259 4752 … … 4276 4769 #ifdef yyoverflow 4277 4770 { 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4771 /* Give user a chance to reallocate the stack. Use copies of 4772 these so that the &'s don't force the real ones into 4773 memory. */ 4774 YYSTYPE *yyvs1 = yyvs; 4775 yytype_int16 *yyss1 = yyss; 4776 4777 /* Each stack pointer address is followed by the size of the 4778 data in use in that stack, in bytes. This used to be a 4779 conditional around just the two extra args, but that might 4780 be undefined if yyoverflow is a macro. */ 4781 yyoverflow (YY_("memory exhausted"), 4782 &yyss1, yysize * sizeof (*yyssp), 4783 &yyvs1, yysize * sizeof (*yyvsp), 4784 &yystacksize); 4785 4786 yyss = yyss1; 4787 yyvs = yyvs1; 4295 4788 } 4296 4789 #else /* no yyoverflow */ … … 4300 4793 /* Extend the stack our own way. */ 4301 4794 if (YYMAXDEPTH <= yystacksize) 4302 4795 goto yyexhaustedlab; 4303 4796 yystacksize *= 2; 4304 4797 if (YYMAXDEPTH < yystacksize) 4305 4798 yystacksize = YYMAXDEPTH; 4306 4799 4307 4800 { 4308 4309 4310 4311 4312 4313 4314 4801 yytype_int16 *yyss1 = yyss; 4802 union yyalloc *yyptr = 4803 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4804 if (! yyptr) 4805 goto yyexhaustedlab; 4806 YYSTACK_RELOCATE (yyss_alloc, yyss); 4807 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4315 4808 # undef YYSTACK_RELOCATE 4316 4317 4809 if (yyss1 != yyssa) 4810 YYSTACK_FREE (yyss1); 4318 4811 } 4319 4812 # endif … … 4324 4817 4325 4818 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4326 4819 (unsigned long int) yystacksize)); 4327 4820 4328 4821 if (yyss + yystacksize - 1 <= yyssp) 4329 4822 YYABORT; 4330 4823 } 4331 4824 … … 4356 4849 { 4357 4850 YYDPRINTF ((stderr, "Reading a token: ")); 4358 yychar = yylex ();4851 yychar = YYLEX; 4359 4852 } 4360 4853 … … 4396 4889 4397 4890 yystate = yyn; 4398 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN4399 4891 *++yyvsp = yylval; 4400 YY_IGNORE_MAYBE_UNINITIALIZED_END4401 4892 4402 4893 goto yynewstate; … … 4421 4912 4422 4913 /* If YYLEN is nonzero, implement the default value of the action: 4423 '$$ = $1'.4914 `$$ = $1'. 4424 4915 4425 4916 Otherwise, the following line sets YYVAL to garbage. … … 4435 4926 { 4436 4927 case 2: 4437 #line 305 "parser.yy" /* yacc.c:1646 */ 4928 4929 /* Line 1806 of yacc.c */ 4930 #line 306 "parser.yy" 4438 4931 { typedefTable.enterScope(); } 4439 #line 4440 "Parser/parser.cc" /* yacc.c:1646 */4440 4932 break; 4441 4933 4442 4934 case 3: 4443 #line 309 "parser.yy" /* yacc.c:1646 */ 4935 4936 /* Line 1806 of yacc.c */ 4937 #line 310 "parser.yy" 4444 4938 { typedefTable.leaveScope(); } 4445 #line 4446 "Parser/parser.cc" /* yacc.c:1646 */4446 4939 break; 4447 4940 4448 4941 case 4: 4449 #line 316 "parser.yy" /* yacc.c:1646 */ 4450 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[0].tok) ) ); } 4451 #line 4452 "Parser/parser.cc" /* yacc.c:1646 */ 4942 4943 /* Line 1806 of yacc.c */ 4944 #line 317 "parser.yy" 4945 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4452 4946 break; 4453 4947 4454 4948 case 5: 4455 #line 317 "parser.yy" /* yacc.c:1646 */ 4456 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4457 #line 4458 "Parser/parser.cc" /* yacc.c:1646 */ 4949 4950 /* Line 1806 of yacc.c */ 4951 #line 318 "parser.yy" 4952 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4458 4953 break; 4459 4954 4460 4955 case 6: 4461 #line 318 "parser.yy" /* yacc.c:1646 */ 4462 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4463 #line 4464 "Parser/parser.cc" /* yacc.c:1646 */ 4956 4957 /* Line 1806 of yacc.c */ 4958 #line 319 "parser.yy" 4959 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4464 4960 break; 4465 4961 4466 4962 case 7: 4467 #line 319 "parser.yy" /* yacc.c:1646 */ 4468 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[0].tok) ) ); } 4469 #line 4470 "Parser/parser.cc" /* yacc.c:1646 */ 4963 4964 /* Line 1806 of yacc.c */ 4965 #line 320 "parser.yy" 4966 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4470 4967 break; 4471 4968 4472 4969 case 8: 4473 #line 320 "parser.yy" /* yacc.c:1646 */ 4474 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[0].tok) ) ); } 4475 #line 4476 "Parser/parser.cc" /* yacc.c:1646 */ 4970 4971 /* Line 1806 of yacc.c */ 4972 #line 321 "parser.yy" 4973 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4476 4974 break; 4477 4975 4478 4976 case 18: 4479 #line 345 "parser.yy" /* yacc.c:1646 */ 4480 { (yyval.constant) = build_constantStr( *(yyvsp[0].str) ); } 4481 #line 4482 "Parser/parser.cc" /* yacc.c:1646 */ 4977 4978 /* Line 1806 of yacc.c */ 4979 #line 346 "parser.yy" 4980 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4482 4981 break; 4483 4982 4484 4983 case 19: 4485 #line 349 "parser.yy" /* yacc.c:1646 */ 4486 { (yyval.str) = (yyvsp[0].tok); } 4487 #line 4488 "Parser/parser.cc" /* yacc.c:1646 */ 4984 4985 /* Line 1806 of yacc.c */ 4986 #line 350 "parser.yy" 4987 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4488 4988 break; 4489 4989 4490 4990 case 20: 4491 #line 351 "parser.yy" /* yacc.c:1646 */ 4991 4992 /* Line 1806 of yacc.c */ 4993 #line 352 "parser.yy" 4492 4994 { 4493 appendStr( (yyvsp[ -1].str), (yyvsp[0].tok) ); // append 2nd juxtaposed string to 1st4494 delete (yyvsp[ 0].tok); // allocated by lexer4495 (yyval.str) = (yyvsp[ -1].str); // conversion from tok to str4995 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st 4996 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 4997 (yyval.str) = (yyvsp[(1) - (2)].str); // conversion from tok to str 4496 4998 } 4497 #line 4498 "Parser/parser.cc" /* yacc.c:1646 */4498 4999 break; 4499 5000 4500 5001 case 21: 4501 #line 362 "parser.yy" /* yacc.c:1646 */ 4502 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4503 #line 4504 "Parser/parser.cc" /* yacc.c:1646 */ 5002 5003 /* Line 1806 of yacc.c */ 5004 #line 363 "parser.yy" 5005 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4504 5006 break; 4505 5007 4506 5008 case 22: 4507 #line 364 "parser.yy" /* yacc.c:1646 */ 4508 { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[0].tok) ) ); } 4509 #line 4510 "Parser/parser.cc" /* yacc.c:1646 */ 5009 5010 /* Line 1806 of yacc.c */ 5011 #line 365 "parser.yy" 5012 { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); } 4510 5013 break; 4511 5014 4512 5015 case 24: 4513 #line 367 "parser.yy" /* yacc.c:1646 */ 4514 { (yyval.en) = (yyvsp[-1].en); } 4515 #line 4516 "Parser/parser.cc" /* yacc.c:1646 */ 5016 5017 /* Line 1806 of yacc.c */ 5018 #line 368 "parser.yy" 5019 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4516 5020 break; 4517 5021 4518 5022 case 25: 4519 #line 369 "parser.yy" /* yacc.c:1646 */ 4520 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4521 #line 4522 "Parser/parser.cc" /* yacc.c:1646 */ 5023 5024 /* Line 1806 of yacc.c */ 5025 #line 370 "parser.yy" 5026 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4522 5027 break; 4523 5028 4524 5029 case 27: 4525 #line 379 "parser.yy" /* yacc.c:1646 */ 4526 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4527 #line 4528 "Parser/parser.cc" /* yacc.c:1646 */ 5030 5031 /* Line 1806 of yacc.c */ 5032 #line 380 "parser.yy" 5033 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4528 5034 break; 4529 5035 4530 5036 case 28: 4531 #line 381 "parser.yy" /* yacc.c:1646 */ 4532 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4533 #line 4534 "Parser/parser.cc" /* yacc.c:1646 */ 5037 5038 /* Line 1806 of yacc.c */ 5039 #line 382 "parser.yy" 5040 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4534 5041 break; 4535 5042 4536 5043 case 29: 4537 #line 383 "parser.yy" /* yacc.c:1646 */ 4538 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4539 #line 4540 "Parser/parser.cc" /* yacc.c:1646 */ 5044 5045 /* Line 1806 of yacc.c */ 5046 #line 384 "parser.yy" 5047 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4540 5048 break; 4541 5049 4542 5050 case 30: 4543 #line 385 "parser.yy" /* yacc.c:1646 */ 4544 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4545 #line 4546 "Parser/parser.cc" /* yacc.c:1646 */ 5051 5052 /* Line 1806 of yacc.c */ 5053 #line 386 "parser.yy" 5054 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4546 5055 break; 4547 5056 4548 5057 case 31: 4549 #line 387 "parser.yy" /* yacc.c:1646 */ 4550 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-1].en), build_field_name_REALFRACTIONconstant( *(yyvsp[0].tok) ) ) ); } 4551 #line 4552 "Parser/parser.cc" /* yacc.c:1646 */ 5058 5059 /* Line 1806 of yacc.c */ 5060 #line 388 "parser.yy" 5061 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); } 4552 5062 break; 4553 5063 4554 5064 case 32: 4555 #line 389 "parser.yy" /* yacc.c:1646 */ 4556 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4557 #line 4558 "Parser/parser.cc" /* yacc.c:1646 */ 5065 5066 /* Line 1806 of yacc.c */ 5067 #line 390 "parser.yy" 5068 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4558 5069 break; 4559 5070 4560 5071 case 33: 4561 #line 391 "parser.yy" /* yacc.c:1646 */ 4562 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4563 #line 4564 "Parser/parser.cc" /* yacc.c:1646 */ 5072 5073 /* Line 1806 of yacc.c */ 5074 #line 392 "parser.yy" 5075 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4564 5076 break; 4565 5077 4566 5078 case 34: 4567 #line 393 "parser.yy" /* yacc.c:1646 */ 4568 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4569 #line 4570 "Parser/parser.cc" /* yacc.c:1646 */ 5079 5080 /* Line 1806 of yacc.c */ 5081 #line 394 "parser.yy" 5082 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4570 5083 break; 4571 5084 4572 5085 case 35: 4573 #line 395 "parser.yy" /* yacc.c:1646 */ 4574 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4575 #line 4576 "Parser/parser.cc" /* yacc.c:1646 */ 5086 5087 /* Line 1806 of yacc.c */ 5088 #line 396 "parser.yy" 5089 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4576 5090 break; 4577 5091 4578 5092 case 36: 4579 #line 397 "parser.yy" /* yacc.c:1646 */ 4580 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4581 #line 4582 "Parser/parser.cc" /* yacc.c:1646 */ 5093 5094 /* Line 1806 of yacc.c */ 5095 #line 398 "parser.yy" 5096 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4582 5097 break; 4583 5098 4584 5099 case 37: 4585 #line 399 "parser.yy" /* yacc.c:1646 */ 5100 5101 /* Line 1806 of yacc.c */ 5102 #line 400 "parser.yy" 4586 5103 { 4587 5104 Token fn; 4588 5105 fn.str = new std::string( "?{}" ); // location undefined - use location of '{'? 4589 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ -3].en) )->set_last( (yyvsp[-1].en) ) ) ) );5106 (yyval.en) = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[(1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) ) ); 4590 5107 } 4591 #line 4592 "Parser/parser.cc" /* yacc.c:1646 */4592 5108 break; 4593 5109 4594 5110 case 39: 4595 #line 409 "parser.yy" /* yacc.c:1646 */ 4596 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4597 #line 4598 "Parser/parser.cc" /* yacc.c:1646 */ 5111 5112 /* Line 1806 of yacc.c */ 5113 #line 410 "parser.yy" 5114 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4598 5115 break; 4599 5116 4600 5117 case 40: 4601 #line 414 "parser.yy" /* yacc.c:1646 */ 4602 { (yyval.en) = 0; } 4603 #line 4604 "Parser/parser.cc" /* yacc.c:1646 */ 5118 5119 /* Line 1806 of yacc.c */ 5120 #line 415 "parser.yy" 5121 { (yyval.en) = nullptr; } 4604 5122 break; 4605 5123 4606 5124 case 43: 4607 #line 420 "parser.yy" /* yacc.c:1646 */ 4608 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4609 #line 4610 "Parser/parser.cc" /* yacc.c:1646 */ 5125 5126 /* Line 1806 of yacc.c */ 5127 #line 421 "parser.yy" 5128 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4610 5129 break; 4611 5130 4612 5131 case 45: 4613 #line 426 "parser.yy" /* yacc.c:1646 */ 4614 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[-1].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); } 4615 #line 4616 "Parser/parser.cc" /* yacc.c:1646 */ 5132 5133 /* Line 1806 of yacc.c */ 5134 #line 427 "parser.yy" 5135 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); } 4616 5136 break; 4617 5137 4618 5138 case 46: 4619 #line 428 "parser.yy" /* yacc.c:1646 */ 4620 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[-5].tok) ) ), build_tuple( (yyvsp[-2].en) ) ) ); } 4621 #line 4622 "Parser/parser.cc" /* yacc.c:1646 */ 5139 5140 /* Line 1806 of yacc.c */ 5141 #line 429 "parser.yy" 5142 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); } 4622 5143 break; 4623 5144 4624 5145 case 47: 4625 #line 430 "parser.yy" /* yacc.c:1646 */ 4626 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); } 4627 #line 4628 "Parser/parser.cc" /* yacc.c:1646 */ 5146 5147 /* Line 1806 of yacc.c */ 5148 #line 431 "parser.yy" 5149 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 4628 5150 break; 4629 5151 4630 5152 case 48: 4631 #line 432 "parser.yy" /* yacc.c:1646 */ 4632 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4633 #line 4634 "Parser/parser.cc" /* yacc.c:1646 */ 5153 5154 /* Line 1806 of yacc.c */ 5155 #line 433 "parser.yy" 5156 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4634 5157 break; 4635 5158 4636 5159 case 49: 4637 #line 434 "parser.yy" /* yacc.c:1646 */ 4638 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), maybeMoveBuild<Expression>( (yyvsp[0].en) ) ) ); } 4639 #line 4640 "Parser/parser.cc" /* yacc.c:1646 */ 5160 5161 /* Line 1806 of yacc.c */ 5162 #line 435 "parser.yy" 5163 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 4640 5164 break; 4641 5165 4642 5166 case 50: 4643 #line 436 "parser.yy" /* yacc.c:1646 */ 4644 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-6].en), build_tuple( (yyvsp[-2].en) ) ) ); } 4645 #line 4646 "Parser/parser.cc" /* yacc.c:1646 */ 5167 5168 /* Line 1806 of yacc.c */ 5169 #line 437 "parser.yy" 5170 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4646 5171 break; 4647 5172 4648 5173 case 51: 4649 #line 441 "parser.yy" /* yacc.c:1646 */ 4650 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); } 4651 #line 4652 "Parser/parser.cc" /* yacc.c:1646 */ 5174 5175 /* Line 1806 of yacc.c */ 5176 #line 442 "parser.yy" 5177 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 4652 5178 break; 4653 5179 4654 5180 case 52: 4655 #line 443 "parser.yy" /* yacc.c:1646 */ 4656 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[-1].tok) ), (yyvsp[0].en) ) ); } 4657 #line 4658 "Parser/parser.cc" /* yacc.c:1646 */ 5181 5182 /* Line 1806 of yacc.c */ 5183 #line 444 "parser.yy" 5184 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 4658 5185 break; 4659 5186 4660 5187 case 53: 4661 #line 445 "parser.yy" /* yacc.c:1646 */ 5188 5189 /* Line 1806 of yacc.c */ 5190 #line 446 "parser.yy" 4662 5191 { 4663 if( (*(yyvsp[ -1].tok)) == "0" || (*(yyvsp[-1].tok)) == "1" ) {4664 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[ -1].tok) ), (yyvsp[0].en) ) );5192 if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) { 5193 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); 4665 5194 } else { 4666 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[ -1].tok) ), (yyvsp[0].en) ) );5195 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); 4667 5196 } 4668 5197 } 4669 #line 4670 "Parser/parser.cc" /* yacc.c:1646 */4670 5198 break; 4671 5199 4672 5200 case 54: 4673 #line 456 "parser.yy" /* yacc.c:1646 */ 5201 5202 /* Line 1806 of yacc.c */ 5203 #line 457 "parser.yy" 4674 5204 { (yyval.en) = nullptr; } 4675 #line 4676 "Parser/parser.cc" /* yacc.c:1646 */4676 5205 break; 4677 5206 4678 5207 case 55: 4679 #line 458 "parser.yy" /* yacc.c:1646 */ 5208 5209 /* Line 1806 of yacc.c */ 5210 #line 459 "parser.yy" 4680 5211 { 4681 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[ 0].tok) );4682 (yyval.en) = (yyvsp[ -1].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[-1].en), constant ) ) : new ExpressionNode( constant );5212 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ); 5213 (yyval.en) = (yyvsp[(1) - (2)].en) != nullptr ? new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), constant ) ) : new ExpressionNode( constant ); 4683 5214 } 4684 #line 4685 "Parser/parser.cc" /* yacc.c:1646 */4685 5215 break; 4686 5216 4687 5217 case 57: 4688 #line 469 "parser.yy" /* yacc.c:1646 */ 4689 { (yyval.en) = (yyvsp[0].en); } 4690 #line 4691 "Parser/parser.cc" /* yacc.c:1646 */ 5218 5219 /* Line 1806 of yacc.c */ 5220 #line 470 "parser.yy" 5221 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4691 5222 break; 4692 5223 4693 5224 case 58: 4694 #line 471 "parser.yy" /* yacc.c:1646 */ 4695 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4696 #line 4697 "Parser/parser.cc" /* yacc.c:1646 */ 5225 5226 /* Line 1806 of yacc.c */ 5227 #line 472 "parser.yy" 5228 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4697 5229 break; 4698 5230 4699 5231 case 59: 4700 #line 473 "parser.yy" /* yacc.c:1646 */ 4701 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4702 #line 4703 "Parser/parser.cc" /* yacc.c:1646 */ 5232 5233 /* Line 1806 of yacc.c */ 5234 #line 474 "parser.yy" 5235 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4703 5236 break; 4704 5237 4705 5238 case 60: 4706 #line 478 "parser.yy" /* yacc.c:1646 */ 5239 5240 /* Line 1806 of yacc.c */ 5241 #line 479 "parser.yy" 4707 5242 { 4708 switch ( (yyvsp[ -1].op) ) {5243 switch ( (yyvsp[(1) - (2)].op) ) { 4709 5244 case OperKinds::AddressOf: 4710 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ 0].en) ) );5245 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[(2) - (2)].en) ) ); 4711 5246 break; 4712 5247 case OperKinds::PointTo: 4713 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ -1].op), (yyvsp[0].en) ) );5248 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); 4714 5249 break; 4715 5250 default: … … 4717 5252 } 4718 5253 } 4719 #line 4720 "Parser/parser.cc" /* yacc.c:1646 */4720 5254 break; 4721 5255 4722 5256 case 61: 4723 #line 491 "parser.yy" /* yacc.c:1646 */ 4724 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4725 #line 4726 "Parser/parser.cc" /* yacc.c:1646 */ 5257 5258 /* Line 1806 of yacc.c */ 5259 #line 492 "parser.yy" 5260 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4726 5261 break; 4727 5262 4728 5263 case 62: 4729 #line 493 "parser.yy" /* yacc.c:1646 */ 4730 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4731 #line 4732 "Parser/parser.cc" /* yacc.c:1646 */ 5264 5265 /* Line 1806 of yacc.c */ 5266 #line 494 "parser.yy" 5267 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4732 5268 break; 4733 5269 4734 5270 case 63: 4735 #line 495 "parser.yy" /* yacc.c:1646 */ 4736 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4737 #line 4738 "Parser/parser.cc" /* yacc.c:1646 */ 5271 5272 /* Line 1806 of yacc.c */ 5273 #line 496 "parser.yy" 5274 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4738 5275 break; 4739 5276 4740 5277 case 64: 4741 #line 497 "parser.yy" /* yacc.c:1646 */ 4742 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4743 #line 4744 "Parser/parser.cc" /* yacc.c:1646 */ 5278 5279 /* Line 1806 of yacc.c */ 5280 #line 498 "parser.yy" 5281 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4744 5282 break; 4745 5283 4746 5284 case 65: 4747 #line 499 "parser.yy" /* yacc.c:1646 */ 4748 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4749 #line 4750 "Parser/parser.cc" /* yacc.c:1646 */ 5285 5286 /* Line 1806 of yacc.c */ 5287 #line 500 "parser.yy" 5288 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4750 5289 break; 4751 5290 4752 5291 case 66: 4753 #line 501 "parser.yy" /* yacc.c:1646 */ 4754 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4755 #line 4756 "Parser/parser.cc" /* yacc.c:1646 */ 5292 5293 /* Line 1806 of yacc.c */ 5294 #line 502 "parser.yy" 5295 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4756 5296 break; 4757 5297 4758 5298 case 67: 4759 #line 503 "parser.yy" /* yacc.c:1646 */ 4760 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4761 #line 4762 "Parser/parser.cc" /* yacc.c:1646 */ 5299 5300 /* Line 1806 of yacc.c */ 5301 #line 504 "parser.yy" 5302 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4762 5303 break; 4763 5304 4764 5305 case 68: 4765 #line 505 "parser.yy" /* yacc.c:1646 */ 4766 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4767 #line 4768 "Parser/parser.cc" /* yacc.c:1646 */ 5306 5307 /* Line 1806 of yacc.c */ 5308 #line 506 "parser.yy" 5309 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4768 5310 break; 4769 5311 4770 5312 case 69: 4771 #line 507 "parser.yy" /* yacc.c:1646 */ 4772 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4773 #line 4774 "Parser/parser.cc" /* yacc.c:1646 */ 5313 5314 /* Line 1806 of yacc.c */ 5315 #line 508 "parser.yy" 5316 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4774 5317 break; 4775 5318 4776 5319 case 70: 4777 #line 509 "parser.yy" /* yacc.c:1646 */ 4778 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4779 #line 4780 "Parser/parser.cc" /* yacc.c:1646 */ 5320 5321 /* Line 1806 of yacc.c */ 5322 #line 510 "parser.yy" 5323 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4780 5324 break; 4781 5325 4782 5326 case 71: 4783 #line 511 "parser.yy" /* yacc.c:1646 */ 4784 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4785 #line 4786 "Parser/parser.cc" /* yacc.c:1646 */ 5327 5328 /* Line 1806 of yacc.c */ 5329 #line 512 "parser.yy" 5330 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4786 5331 break; 4787 5332 4788 5333 case 72: 4789 #line 517 "parser.yy" /* yacc.c:1646 */ 5334 5335 /* Line 1806 of yacc.c */ 5336 #line 518 "parser.yy" 4790 5337 { (yyval.op) = OperKinds::PointTo; } 4791 #line 4792 "Parser/parser.cc" /* yacc.c:1646 */4792 5338 break; 4793 5339 4794 5340 case 73: 4795 #line 518 "parser.yy" /* yacc.c:1646 */ 5341 5342 /* Line 1806 of yacc.c */ 5343 #line 519 "parser.yy" 4796 5344 { (yyval.op) = OperKinds::AddressOf; } 4797 #line 4798 "Parser/parser.cc" /* yacc.c:1646 */4798 5345 break; 4799 5346 4800 5347 case 74: 4801 #line 524 "parser.yy" /* yacc.c:1646 */ 5348 5349 /* Line 1806 of yacc.c */ 5350 #line 525 "parser.yy" 4802 5351 { (yyval.op) = OperKinds::UnPlus; } 4803 #line 4804 "Parser/parser.cc" /* yacc.c:1646 */4804 5352 break; 4805 5353 4806 5354 case 75: 4807 #line 525 "parser.yy" /* yacc.c:1646 */ 5355 5356 /* Line 1806 of yacc.c */ 5357 #line 526 "parser.yy" 4808 5358 { (yyval.op) = OperKinds::UnMinus; } 4809 #line 4810 "Parser/parser.cc" /* yacc.c:1646 */4810 5359 break; 4811 5360 4812 5361 case 76: 4813 #line 526 "parser.yy" /* yacc.c:1646 */ 5362 5363 /* Line 1806 of yacc.c */ 5364 #line 527 "parser.yy" 4814 5365 { (yyval.op) = OperKinds::Neg; } 4815 #line 4816 "Parser/parser.cc" /* yacc.c:1646 */4816 5366 break; 4817 5367 4818 5368 case 77: 4819 #line 527 "parser.yy" /* yacc.c:1646 */ 5369 5370 /* Line 1806 of yacc.c */ 5371 #line 528 "parser.yy" 4820 5372 { (yyval.op) = OperKinds::BitNeg; } 4821 #line 4822 "Parser/parser.cc" /* yacc.c:1646 */4822 5373 break; 4823 5374 4824 5375 case 79: 4825 #line 533 "parser.yy" /* yacc.c:1646 */ 4826 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4827 #line 4828 "Parser/parser.cc" /* yacc.c:1646 */ 5376 5377 /* Line 1806 of yacc.c */ 5378 #line 534 "parser.yy" 5379 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4828 5380 break; 4829 5381 4830 5382 case 81: 4831 #line 541 "parser.yy" /* yacc.c:1646 */ 4832 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4833 #line 4834 "Parser/parser.cc" /* yacc.c:1646 */ 5383 5384 /* Line 1806 of yacc.c */ 5385 #line 542 "parser.yy" 5386 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4834 5387 break; 4835 5388 4836 5389 case 82: 4837 #line 543 "parser.yy" /* yacc.c:1646 */ 4838 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4839 #line 4840 "Parser/parser.cc" /* yacc.c:1646 */ 5390 5391 /* Line 1806 of yacc.c */ 5392 #line 544 "parser.yy" 5393 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4840 5394 break; 4841 5395 4842 5396 case 83: 4843 #line 545 "parser.yy" /* yacc.c:1646 */ 4844 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4845 #line 4846 "Parser/parser.cc" /* yacc.c:1646 */ 5397 5398 /* Line 1806 of yacc.c */ 5399 #line 546 "parser.yy" 5400 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4846 5401 break; 4847 5402 4848 5403 case 85: 4849 #line 551 "parser.yy" /* yacc.c:1646 */ 4850 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4851 #line 4852 "Parser/parser.cc" /* yacc.c:1646 */ 5404 5405 /* Line 1806 of yacc.c */ 5406 #line 552 "parser.yy" 5407 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4852 5408 break; 4853 5409 4854 5410 case 86: 4855 #line 553 "parser.yy" /* yacc.c:1646 */ 4856 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4857 #line 4858 "Parser/parser.cc" /* yacc.c:1646 */ 5411 5412 /* Line 1806 of yacc.c */ 5413 #line 554 "parser.yy" 5414 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4858 5415 break; 4859 5416 4860 5417 case 88: 4861 #line 559 "parser.yy" /* yacc.c:1646 */ 4862 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4863 #line 4864 "Parser/parser.cc" /* yacc.c:1646 */ 5418 5419 /* Line 1806 of yacc.c */ 5420 #line 560 "parser.yy" 5421 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4864 5422 break; 4865 5423 4866 5424 case 89: 4867 #line 561 "parser.yy" /* yacc.c:1646 */ 4868 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4869 #line 4870 "Parser/parser.cc" /* yacc.c:1646 */ 5425 5426 /* Line 1806 of yacc.c */ 5427 #line 562 "parser.yy" 5428 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4870 5429 break; 4871 5430 4872 5431 case 91: 4873 #line 567 "parser.yy" /* yacc.c:1646 */ 4874 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4875 #line 4876 "Parser/parser.cc" /* yacc.c:1646 */ 5432 5433 /* Line 1806 of yacc.c */ 5434 #line 568 "parser.yy" 5435 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4876 5436 break; 4877 5437 4878 5438 case 92: 4879 #line 569 "parser.yy" /* yacc.c:1646 */ 4880 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4881 #line 4882 "Parser/parser.cc" /* yacc.c:1646 */ 5439 5440 /* Line 1806 of yacc.c */ 5441 #line 570 "parser.yy" 5442 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4882 5443 break; 4883 5444 4884 5445 case 93: 4885 #line 571 "parser.yy" /* yacc.c:1646 */ 4886 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4887 #line 4888 "Parser/parser.cc" /* yacc.c:1646 */ 5446 5447 /* Line 1806 of yacc.c */ 5448 #line 572 "parser.yy" 5449 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4888 5450 break; 4889 5451 4890 5452 case 94: 4891 #line 573 "parser.yy" /* yacc.c:1646 */ 4892 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4893 #line 4894 "Parser/parser.cc" /* yacc.c:1646 */ 5453 5454 /* Line 1806 of yacc.c */ 5455 #line 574 "parser.yy" 5456 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4894 5457 break; 4895 5458 4896 5459 case 96: 4897 #line 579 "parser.yy" /* yacc.c:1646 */ 4898 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4899 #line 4900 "Parser/parser.cc" /* yacc.c:1646 */ 5460 5461 /* Line 1806 of yacc.c */ 5462 #line 580 "parser.yy" 5463 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4900 5464 break; 4901 5465 4902 5466 case 97: 4903 #line 581 "parser.yy" /* yacc.c:1646 */ 4904 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4905 #line 4906 "Parser/parser.cc" /* yacc.c:1646 */ 5467 5468 /* Line 1806 of yacc.c */ 5469 #line 582 "parser.yy" 5470 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4906 5471 break; 4907 5472 4908 5473 case 99: 4909 #line 587 "parser.yy" /* yacc.c:1646 */ 4910 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4911 #line 4912 "Parser/parser.cc" /* yacc.c:1646 */ 5474 5475 /* Line 1806 of yacc.c */ 5476 #line 588 "parser.yy" 5477 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4912 5478 break; 4913 5479 4914 5480 case 101: 4915 #line 593 "parser.yy" /* yacc.c:1646 */ 4916 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4917 #line 4918 "Parser/parser.cc" /* yacc.c:1646 */ 5481 5482 /* Line 1806 of yacc.c */ 5483 #line 594 "parser.yy" 5484 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4918 5485 break; 4919 5486 4920 5487 case 103: 4921 #line 599 "parser.yy" /* yacc.c:1646 */ 4922 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4923 #line 4924 "Parser/parser.cc" /* yacc.c:1646 */ 5488 5489 /* Line 1806 of yacc.c */ 5490 #line 600 "parser.yy" 5491 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4924 5492 break; 4925 5493 4926 5494 case 105: 4927 #line 605 "parser.yy" /* yacc.c:1646 */ 4928 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4929 #line 4930 "Parser/parser.cc" /* yacc.c:1646 */ 5495 5496 /* Line 1806 of yacc.c */ 5497 #line 606 "parser.yy" 5498 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4930 5499 break; 4931 5500 4932 5501 case 107: 4933 #line 611 "parser.yy" /* yacc.c:1646 */ 4934 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4935 #line 4936 "Parser/parser.cc" /* yacc.c:1646 */ 5502 5503 /* Line 1806 of yacc.c */ 5504 #line 612 "parser.yy" 5505 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4936 5506 break; 4937 5507 4938 5508 case 109: 4939 #line 617 "parser.yy" /* yacc.c:1646 */ 4940 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4941 #line 4942 "Parser/parser.cc" /* yacc.c:1646 */ 5509 5510 /* Line 1806 of yacc.c */ 5511 #line 618 "parser.yy" 5512 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4942 5513 break; 4943 5514 4944 5515 case 110: 4945 #line 620 "parser.yy" /* yacc.c:1646 */ 4946 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4947 #line 4948 "Parser/parser.cc" /* yacc.c:1646 */ 5516 5517 /* Line 1806 of yacc.c */ 5518 #line 621 "parser.yy" 5519 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4948 5520 break; 4949 5521 4950 5522 case 113: 4951 #line 633 "parser.yy" /* yacc.c:1646 */ 4952 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4953 #line 4954 "Parser/parser.cc" /* yacc.c:1646 */ 5523 5524 /* Line 1806 of yacc.c */ 5525 #line 634 "parser.yy" 5526 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4954 5527 break; 4955 5528 4956 5529 case 114: 4957 #line 640 "parser.yy" /* yacc.c:1646 */ 5530 5531 /* Line 1806 of yacc.c */ 5532 #line 641 "parser.yy" 4958 5533 { (yyval.en) = nullptr; } 4959 #line 4960 "Parser/parser.cc" /* yacc.c:1646 */4960 5534 break; 4961 5535 4962 5536 case 116: 4963 #line 645 "parser.yy" /* yacc.c:1646 */ 5537 5538 /* Line 1806 of yacc.c */ 5539 #line 646 "parser.yy" 4964 5540 { (yyval.op) = OperKinds::Assign; } 4965 #line 4966 "Parser/parser.cc" /* yacc.c:1646 */4966 5541 break; 4967 5542 4968 5543 case 117: 4969 #line 646 "parser.yy" /* yacc.c:1646 */ 5544 5545 /* Line 1806 of yacc.c */ 5546 #line 647 "parser.yy" 4970 5547 { (yyval.op) = OperKinds::AtAssn; } 4971 #line 4972 "Parser/parser.cc" /* yacc.c:1646 */4972 5548 break; 4973 5549 4974 5550 case 118: 4975 #line 647 "parser.yy" /* yacc.c:1646 */ 5551 5552 /* Line 1806 of yacc.c */ 5553 #line 648 "parser.yy" 4976 5554 { (yyval.op) = OperKinds::MulAssn; } 4977 #line 4978 "Parser/parser.cc" /* yacc.c:1646 */4978 5555 break; 4979 5556 4980 5557 case 119: 4981 #line 648 "parser.yy" /* yacc.c:1646 */ 5558 5559 /* Line 1806 of yacc.c */ 5560 #line 649 "parser.yy" 4982 5561 { (yyval.op) = OperKinds::DivAssn; } 4983 #line 4984 "Parser/parser.cc" /* yacc.c:1646 */4984 5562 break; 4985 5563 4986 5564 case 120: 4987 #line 649 "parser.yy" /* yacc.c:1646 */ 5565 5566 /* Line 1806 of yacc.c */ 5567 #line 650 "parser.yy" 4988 5568 { (yyval.op) = OperKinds::ModAssn; } 4989 #line 4990 "Parser/parser.cc" /* yacc.c:1646 */4990 5569 break; 4991 5570 4992 5571 case 121: 4993 #line 650 "parser.yy" /* yacc.c:1646 */ 5572 5573 /* Line 1806 of yacc.c */ 5574 #line 651 "parser.yy" 4994 5575 { (yyval.op) = OperKinds::PlusAssn; } 4995 #line 4996 "Parser/parser.cc" /* yacc.c:1646 */4996 5576 break; 4997 5577 4998 5578 case 122: 4999 #line 651 "parser.yy" /* yacc.c:1646 */ 5579 5580 /* Line 1806 of yacc.c */ 5581 #line 652 "parser.yy" 5000 5582 { (yyval.op) = OperKinds::MinusAssn; } 5001 #line 5002 "Parser/parser.cc" /* yacc.c:1646 */5002 5583 break; 5003 5584 5004 5585 case 123: 5005 #line 652 "parser.yy" /* yacc.c:1646 */ 5586 5587 /* Line 1806 of yacc.c */ 5588 #line 653 "parser.yy" 5006 5589 { (yyval.op) = OperKinds::LSAssn; } 5007 #line 5008 "Parser/parser.cc" /* yacc.c:1646 */5008 5590 break; 5009 5591 5010 5592 case 124: 5011 #line 653 "parser.yy" /* yacc.c:1646 */ 5593 5594 /* Line 1806 of yacc.c */ 5595 #line 654 "parser.yy" 5012 5596 { (yyval.op) = OperKinds::RSAssn; } 5013 #line 5014 "Parser/parser.cc" /* yacc.c:1646 */5014 5597 break; 5015 5598 5016 5599 case 125: 5017 #line 654 "parser.yy" /* yacc.c:1646 */ 5600 5601 /* Line 1806 of yacc.c */ 5602 #line 655 "parser.yy" 5018 5603 { (yyval.op) = OperKinds::AndAssn; } 5019 #line 5020 "Parser/parser.cc" /* yacc.c:1646 */5020 5604 break; 5021 5605 5022 5606 case 126: 5023 #line 655 "parser.yy" /* yacc.c:1646 */ 5607 5608 /* Line 1806 of yacc.c */ 5609 #line 656 "parser.yy" 5024 5610 { (yyval.op) = OperKinds::ERAssn; } 5025 #line 5026 "Parser/parser.cc" /* yacc.c:1646 */5026 5611 break; 5027 5612 5028 5613 case 127: 5029 #line 656 "parser.yy" /* yacc.c:1646 */ 5614 5615 /* Line 1806 of yacc.c */ 5616 #line 657 "parser.yy" 5030 5617 { (yyval.op) = OperKinds::OrAssn; } 5031 #line 5032 "Parser/parser.cc" /* yacc.c:1646 */5032 5618 break; 5033 5619 5034 5620 case 128: 5035 #line 667 "parser.yy" /* yacc.c:1646 */ 5036 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5037 #line 5038 "Parser/parser.cc" /* yacc.c:1646 */ 5621 5622 /* Line 1806 of yacc.c */ 5623 #line 668 "parser.yy" 5624 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5038 5625 break; 5039 5626 5040 5627 case 129: 5041 #line 669 "parser.yy" /* yacc.c:1646 */ 5042 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5043 #line 5044 "Parser/parser.cc" /* yacc.c:1646 */ 5628 5629 /* Line 1806 of yacc.c */ 5630 #line 670 "parser.yy" 5631 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5044 5632 break; 5045 5633 5046 5634 case 131: 5047 #line 675 "parser.yy" /* yacc.c:1646 */ 5048 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5049 #line 5050 "Parser/parser.cc" /* yacc.c:1646 */ 5635 5636 /* Line 1806 of yacc.c */ 5637 #line 676 "parser.yy" 5638 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5050 5639 break; 5051 5640 5052 5641 case 133: 5053 #line 681 "parser.yy" /* yacc.c:1646 */ 5054 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5055 #line 5056 "Parser/parser.cc" /* yacc.c:1646 */ 5642 5643 /* Line 1806 of yacc.c */ 5644 #line 682 "parser.yy" 5645 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5056 5646 break; 5057 5647 5058 5648 case 134: 5059 #line 686 "parser.yy" /* yacc.c:1646 */ 5060 { (yyval.en) = 0; } 5061 #line 5062 "Parser/parser.cc" /* yacc.c:1646 */ 5649 5650 /* Line 1806 of yacc.c */ 5651 #line 687 "parser.yy" 5652 { (yyval.en) = nullptr; } 5062 5653 break; 5063 5654 5064 5655 case 138: 5065 #line 695 "parser.yy" /* yacc.c:1646 */ 5066 { (yyval.sn) = (yyvsp[0].sn); } 5067 #line 5068 "Parser/parser.cc" /* yacc.c:1646 */ 5656 5657 /* Line 1806 of yacc.c */ 5658 #line 696 "parser.yy" 5659 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5068 5660 break; 5069 5661 5070 5662 case 144: 5071 #line 702 "parser.yy" /* yacc.c:1646 */ 5663 5664 /* Line 1806 of yacc.c */ 5665 #line 703 "parser.yy" 5072 5666 { 5073 5667 Token fn; 5074 5668 fn.str = new string( "^?{}" ); // location undefined 5075 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ -4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) );5669 (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) ) ) ) ) ); 5076 5670 } 5077 #line 5078 "Parser/parser.cc" /* yacc.c:1646 */5078 5671 break; 5079 5672 5080 5673 case 145: 5081 #line 712 "parser.yy" /* yacc.c:1646 */ 5674 5675 /* Line 1806 of yacc.c */ 5676 #line 713 "parser.yy" 5082 5677 { 5083 (yyval.sn) = (yyvsp[ 0].sn)->add_label( (yyvsp[-3].tok) );5678 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5084 5679 } 5085 #line 5086 "Parser/parser.cc" /* yacc.c:1646 */5086 5680 break; 5087 5681 5088 5682 case 146: 5089 #line 719 "parser.yy" /* yacc.c:1646 */ 5683 5684 /* Line 1806 of yacc.c */ 5685 #line 720 "parser.yy" 5090 5686 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5091 #line 5092 "Parser/parser.cc" /* yacc.c:1646 */5092 5687 break; 5093 5688 5094 5689 case 147: 5095 #line 726 "parser.yy" /* yacc.c:1646 */ 5096 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5097 #line 5098 "Parser/parser.cc" /* yacc.c:1646 */ 5690 5691 /* Line 1806 of yacc.c */ 5692 #line 727 "parser.yy" 5693 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5098 5694 break; 5099 5695 5100 5696 case 149: 5101 #line 732 "parser.yy" /* yacc.c:1646 */ 5102 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5103 #line 5104 "Parser/parser.cc" /* yacc.c:1646 */ 5697 5698 /* Line 1806 of yacc.c */ 5699 #line 733 "parser.yy" 5700 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5104 5701 break; 5105 5702 5106 5703 case 150: 5107 #line 737 "parser.yy" /* yacc.c:1646 */ 5108 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5109 #line 5110 "Parser/parser.cc" /* yacc.c:1646 */ 5704 5705 /* Line 1806 of yacc.c */ 5706 #line 738 "parser.yy" 5707 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5110 5708 break; 5111 5709 5112 5710 case 151: 5113 #line 739 "parser.yy" /* yacc.c:1646 */ 5711 5712 /* Line 1806 of yacc.c */ 5713 #line 740 "parser.yy" 5114 5714 { // mark all fields in list 5115 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )5715 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5116 5716 iter->set_extension( true ); 5117 (yyval.sn) = new StatementNode( (yyvsp[ 0].decl) );5717 (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); 5118 5718 } 5119 #line 5120 "Parser/parser.cc" /* yacc.c:1646 */5120 5719 break; 5121 5720 5122 5721 case 152: 5123 #line 745 "parser.yy" /* yacc.c:1646 */ 5124 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5125 #line 5126 "Parser/parser.cc" /* yacc.c:1646 */ 5722 5723 /* Line 1806 of yacc.c */ 5724 #line 746 "parser.yy" 5725 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5126 5726 break; 5127 5727 5128 5728 case 155: 5129 #line 752 "parser.yy" /* yacc.c:1646 */ 5130 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5131 #line 5132 "Parser/parser.cc" /* yacc.c:1646 */ 5729 5730 /* Line 1806 of yacc.c */ 5731 #line 753 "parser.yy" 5732 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5132 5733 break; 5133 5734 5134 5735 case 156: 5135 #line 757 "parser.yy" /* yacc.c:1646 */ 5136 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5137 #line 5138 "Parser/parser.cc" /* yacc.c:1646 */ 5736 5737 /* Line 1806 of yacc.c */ 5738 #line 758 "parser.yy" 5739 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5138 5740 break; 5139 5741 5140 5742 case 157: 5141 #line 763 "parser.yy" /* yacc.c:1646 */ 5142 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5143 #line 5144 "Parser/parser.cc" /* yacc.c:1646 */ 5743 5744 /* Line 1806 of yacc.c */ 5745 #line 764 "parser.yy" 5746 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5144 5747 break; 5145 5748 5146 5749 case 158: 5147 #line 765 "parser.yy" /* yacc.c:1646 */ 5148 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5149 #line 5150 "Parser/parser.cc" /* yacc.c:1646 */ 5750 5751 /* Line 1806 of yacc.c */ 5752 #line 766 "parser.yy" 5753 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5150 5754 break; 5151 5755 5152 5756 case 159: 5153 #line 767 "parser.yy" /* yacc.c:1646 */ 5154 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5155 #line 5156 "Parser/parser.cc" /* yacc.c:1646 */ 5757 5758 /* Line 1806 of yacc.c */ 5759 #line 768 "parser.yy" 5760 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5156 5761 break; 5157 5762 5158 5763 case 160: 5159 #line 769 "parser.yy" /* yacc.c:1646 */ 5764 5765 /* Line 1806 of yacc.c */ 5766 #line 770 "parser.yy" 5160 5767 { 5161 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5768 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5162 5769 // The semantics of the declaration list is changed to include associated initialization, which is performed 5163 5770 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5165 5772 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5166 5773 // statement. 5167 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5774 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5168 5775 } 5169 #line 5170 "Parser/parser.cc" /* yacc.c:1646 */5170 5776 break; 5171 5777 5172 5778 case 161: 5173 #line 779 "parser.yy" /* yacc.c:1646 */ 5174 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5175 #line 5176 "Parser/parser.cc" /* yacc.c:1646 */ 5779 5780 /* Line 1806 of yacc.c */ 5781 #line 780 "parser.yy" 5782 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5176 5783 break; 5177 5784 5178 5785 case 162: 5179 #line 781 "parser.yy" /* yacc.c:1646 */ 5786 5787 /* Line 1806 of yacc.c */ 5788 #line 782 "parser.yy" 5180 5789 { 5181 StatementNode *sw = new StatementNode( build_switch( (yyvsp[ -6].en), (yyvsp[-1].sn) ) );5182 (yyval.sn) = (yyvsp[ -2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw;5790 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5791 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5183 5792 } 5184 #line 5185 "Parser/parser.cc" /* yacc.c:1646 */5185 5793 break; 5186 5794 5187 5795 case 163: 5188 #line 791 "parser.yy" /* yacc.c:1646 */ 5189 { (yyval.en) = (yyvsp[0].en); } 5190 #line 5191 "Parser/parser.cc" /* yacc.c:1646 */ 5796 5797 /* Line 1806 of yacc.c */ 5798 #line 792 "parser.yy" 5799 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5191 5800 break; 5192 5801 5193 5802 case 164: 5194 #line 793 "parser.yy" /* yacc.c:1646 */ 5195 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5196 #line 5197 "Parser/parser.cc" /* yacc.c:1646 */ 5803 5804 /* Line 1806 of yacc.c */ 5805 #line 794 "parser.yy" 5806 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5197 5807 break; 5198 5808 5199 5809 case 166: 5200 #line 798 "parser.yy" /* yacc.c:1646 */ 5201 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5202 #line 5203 "Parser/parser.cc" /* yacc.c:1646 */ 5810 5811 /* Line 1806 of yacc.c */ 5812 #line 799 "parser.yy" 5813 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5203 5814 break; 5204 5815 5205 5816 case 167: 5206 #line 800 "parser.yy" /* yacc.c:1646 */ 5207 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5208 #line 5209 "Parser/parser.cc" /* yacc.c:1646 */ 5817 5818 /* Line 1806 of yacc.c */ 5819 #line 801 "parser.yy" 5820 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5209 5821 break; 5210 5822 5211 5823 case 168: 5212 #line 804 "parser.yy" /* yacc.c:1646 */ 5213 { (yyval.sn) = (yyvsp[-1].sn); } 5214 #line 5215 "Parser/parser.cc" /* yacc.c:1646 */ 5824 5825 /* Line 1806 of yacc.c */ 5826 #line 805 "parser.yy" 5827 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5215 5828 break; 5216 5829 5217 5830 case 169: 5218 #line 805 "parser.yy" /* yacc.c:1646 */ 5831 5832 /* Line 1806 of yacc.c */ 5833 #line 806 "parser.yy" 5219 5834 { (yyval.sn) = new StatementNode( build_default() ); } 5220 #line 5221 "Parser/parser.cc" /* yacc.c:1646 */5221 5835 break; 5222 5836 5223 5837 case 171: 5224 #line 811 "parser.yy" /* yacc.c:1646 */ 5225 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5226 #line 5227 "Parser/parser.cc" /* yacc.c:1646 */ 5838 5839 /* Line 1806 of yacc.c */ 5840 #line 812 "parser.yy" 5841 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5227 5842 break; 5228 5843 5229 5844 case 172: 5230 #line 815 "parser.yy" /* yacc.c:1646 */ 5231 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5232 #line 5233 "Parser/parser.cc" /* yacc.c:1646 */ 5845 5846 /* Line 1806 of yacc.c */ 5847 #line 816 "parser.yy" 5848 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5233 5849 break; 5234 5850 5235 5851 case 173: 5236 #line 820 "parser.yy" /* yacc.c:1646 */ 5237 { (yyval.sn) = 0; } 5238 #line 5239 "Parser/parser.cc" /* yacc.c:1646 */ 5852 5853 /* Line 1806 of yacc.c */ 5854 #line 821 "parser.yy" 5855 { (yyval.sn) = nullptr; } 5239 5856 break; 5240 5857 5241 5858 case 175: 5242 #line 826 "parser.yy" /* yacc.c:1646 */ 5243 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5244 #line 5245 "Parser/parser.cc" /* yacc.c:1646 */ 5859 5860 /* Line 1806 of yacc.c */ 5861 #line 827 "parser.yy" 5862 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5245 5863 break; 5246 5864 5247 5865 case 176: 5248 #line 828 "parser.yy" /* yacc.c:1646 */ 5249 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5250 #line 5251 "Parser/parser.cc" /* yacc.c:1646 */ 5866 5867 /* Line 1806 of yacc.c */ 5868 #line 829 "parser.yy" 5869 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5251 5870 break; 5252 5871 5253 5872 case 177: 5254 #line 833 "parser.yy" /* yacc.c:1646 */ 5255 { (yyval.sn) = 0; } 5256 #line 5257 "Parser/parser.cc" /* yacc.c:1646 */ 5873 5874 /* Line 1806 of yacc.c */ 5875 #line 834 "parser.yy" 5876 { (yyval.sn) = nullptr; } 5257 5877 break; 5258 5878 5259 5879 case 179: 5260 #line 839 "parser.yy" /* yacc.c:1646 */ 5261 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5262 #line 5263 "Parser/parser.cc" /* yacc.c:1646 */ 5880 5881 /* Line 1806 of yacc.c */ 5882 #line 840 "parser.yy" 5883 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5263 5884 break; 5264 5885 5265 5886 case 180: 5266 #line 841 "parser.yy" /* yacc.c:1646 */ 5267 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5268 #line 5269 "Parser/parser.cc" /* yacc.c:1646 */ 5887 5888 /* Line 1806 of yacc.c */ 5889 #line 842 "parser.yy" 5890 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5269 5891 break; 5270 5892 5271 5893 case 181: 5272 #line 843 "parser.yy" /* yacc.c:1646 */ 5273 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5274 #line 5275 "Parser/parser.cc" /* yacc.c:1646 */ 5894 5895 /* Line 1806 of yacc.c */ 5896 #line 844 "parser.yy" 5897 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5275 5898 break; 5276 5899 5277 5900 case 182: 5278 #line 845 "parser.yy" /* yacc.c:1646 */ 5279 { (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) ) ) ) ) ) ); } 5280 #line 5281 "Parser/parser.cc" /* yacc.c:1646 */ 5901 5902 /* Line 1806 of yacc.c */ 5903 #line 846 "parser.yy" 5904 { (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) ) ) ) ) ) ); } 5281 5905 break; 5282 5906 5283 5907 case 183: 5284 #line 850 "parser.yy" /* yacc.c:1646 */ 5908 5909 /* Line 1806 of yacc.c */ 5910 #line 851 "parser.yy" 5285 5911 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5286 #line 5287 "Parser/parser.cc" /* yacc.c:1646 */5287 5912 break; 5288 5913 5289 5914 case 185: 5290 #line 856 "parser.yy" /* yacc.c:1646 */ 5291 { (yyval.sn) = 0; } 5292 #line 5293 "Parser/parser.cc" /* yacc.c:1646 */ 5915 5916 /* Line 1806 of yacc.c */ 5917 #line 857 "parser.yy" 5918 { (yyval.sn) = nullptr; } 5293 5919 break; 5294 5920 5295 5921 case 186: 5296 #line 858 "parser.yy" /* yacc.c:1646 */ 5297 { (yyval.sn) = 0; } 5298 #line 5299 "Parser/parser.cc" /* yacc.c:1646 */ 5922 5923 /* Line 1806 of yacc.c */ 5924 #line 859 "parser.yy" 5925 { (yyval.sn) = nullptr; } 5299 5926 break; 5300 5927 5301 5928 case 187: 5302 #line 863 "parser.yy" /* yacc.c:1646 */ 5303 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5304 #line 5305 "Parser/parser.cc" /* yacc.c:1646 */ 5929 5930 /* Line 1806 of yacc.c */ 5931 #line 864 "parser.yy" 5932 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5305 5933 break; 5306 5934 5307 5935 case 188: 5308 #line 865 "parser.yy" /* yacc.c:1646 */ 5309 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn), true ) ); } 5310 #line 5311 "Parser/parser.cc" /* yacc.c:1646 */ 5936 5937 /* Line 1806 of yacc.c */ 5938 #line 866 "parser.yy" 5939 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5311 5940 break; 5312 5941 5313 5942 case 189: 5314 #line 867 "parser.yy" /* yacc.c:1646 */ 5315 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5316 #line 5317 "Parser/parser.cc" /* yacc.c:1646 */ 5943 5944 /* Line 1806 of yacc.c */ 5945 #line 868 "parser.yy" 5946 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5317 5947 break; 5318 5948 5319 5949 case 190: 5320 #line 872 "parser.yy" /* yacc.c:1646 */ 5321 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5322 #line 5323 "Parser/parser.cc" /* yacc.c:1646 */ 5950 5951 /* Line 1806 of yacc.c */ 5952 #line 873 "parser.yy" 5953 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5323 5954 break; 5324 5955 5325 5956 case 191: 5326 #line 874 "parser.yy" /* yacc.c:1646 */ 5327 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5328 #line 5329 "Parser/parser.cc" /* yacc.c:1646 */ 5957 5958 /* Line 1806 of yacc.c */ 5959 #line 875 "parser.yy" 5960 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5329 5961 break; 5330 5962 5331 5963 case 192: 5332 #line 879 "parser.yy" /* yacc.c:1646 */ 5333 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Goto ) ); } 5334 #line 5335 "Parser/parser.cc" /* yacc.c:1646 */ 5964 5965 /* Line 1806 of yacc.c */ 5966 #line 880 "parser.yy" 5967 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5335 5968 break; 5336 5969 5337 5970 case 193: 5338 #line 883 "parser.yy" /* yacc.c:1646 */ 5339 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5340 #line 5341 "Parser/parser.cc" /* yacc.c:1646 */ 5971 5972 /* Line 1806 of yacc.c */ 5973 #line 884 "parser.yy" 5974 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5341 5975 break; 5342 5976 5343 5977 case 194: 5344 #line 886 "parser.yy" /* yacc.c:1646 */ 5978 5979 /* Line 1806 of yacc.c */ 5980 #line 887 "parser.yy" 5345 5981 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5346 #line 5347 "Parser/parser.cc" /* yacc.c:1646 */5347 5982 break; 5348 5983 5349 5984 case 195: 5350 #line 890 "parser.yy" /* yacc.c:1646 */ 5351 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Continue ) ); } 5352 #line 5353 "Parser/parser.cc" /* yacc.c:1646 */ 5985 5986 /* Line 1806 of yacc.c */ 5987 #line 891 "parser.yy" 5988 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5353 5989 break; 5354 5990 5355 5991 case 196: 5356 #line 893 "parser.yy" /* yacc.c:1646 */ 5992 5993 /* Line 1806 of yacc.c */ 5994 #line 894 "parser.yy" 5357 5995 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5358 #line 5359 "Parser/parser.cc" /* yacc.c:1646 */5359 5996 break; 5360 5997 5361 5998 case 197: 5362 #line 897 "parser.yy" /* yacc.c:1646 */ 5363 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[-1].tok), BranchStmt::Break ) ); } 5364 #line 5365 "Parser/parser.cc" /* yacc.c:1646 */ 5999 6000 /* Line 1806 of yacc.c */ 6001 #line 898 "parser.yy" 6002 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5365 6003 break; 5366 6004 5367 6005 case 198: 5368 #line 899 "parser.yy" /* yacc.c:1646 */ 5369 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5370 #line 5371 "Parser/parser.cc" /* yacc.c:1646 */ 6006 6007 /* Line 1806 of yacc.c */ 6008 #line 900 "parser.yy" 6009 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5371 6010 break; 5372 6011 5373 6012 case 199: 5374 #line 901 "parser.yy" /* yacc.c:1646 */ 5375 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5376 #line 5377 "Parser/parser.cc" /* yacc.c:1646 */ 6013 6014 /* Line 1806 of yacc.c */ 6015 #line 902 "parser.yy" 6016 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5377 6017 break; 5378 6018 5379 6019 case 200: 5380 #line 903 "parser.yy" /* yacc.c:1646 */ 5381 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5382 #line 5383 "Parser/parser.cc" /* yacc.c:1646 */ 6020 6021 /* Line 1806 of yacc.c */ 6022 #line 904 "parser.yy" 6023 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5383 6024 break; 5384 6025 5385 6026 case 201: 5386 #line 905 "parser.yy" /* yacc.c:1646 */ 5387 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5388 #line 5389 "Parser/parser.cc" /* yacc.c:1646 */ 6027 6028 /* Line 1806 of yacc.c */ 6029 #line 906 "parser.yy" 6030 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5389 6031 break; 5390 6032 5391 6033 case 202: 5392 #line 910 "parser.yy" /* yacc.c:1646 */ 5393 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5394 #line 5395 "Parser/parser.cc" /* yacc.c:1646 */ 6034 6035 /* Line 1806 of yacc.c */ 6036 #line 911 "parser.yy" 6037 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5395 6038 break; 5396 6039 5397 6040 case 203: 5398 #line 912 "parser.yy" /* yacc.c:1646 */ 5399 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5400 #line 5401 "Parser/parser.cc" /* yacc.c:1646 */ 6041 6042 /* Line 1806 of yacc.c */ 6043 #line 913 "parser.yy" 6044 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5401 6045 break; 5402 6046 5403 6047 case 204: 5404 #line 914 "parser.yy" /* yacc.c:1646 */ 5405 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5406 #line 5407 "Parser/parser.cc" /* yacc.c:1646 */ 6048 6049 /* Line 1806 of yacc.c */ 6050 #line 915 "parser.yy" 6051 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5407 6052 break; 5408 6053 5409 6054 case 206: 5410 #line 921 "parser.yy" /* yacc.c:1646 */ 5411 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5412 #line 5413 "Parser/parser.cc" /* yacc.c:1646 */ 6055 6056 /* Line 1806 of yacc.c */ 6057 #line 922 "parser.yy" 6058 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5413 6059 break; 5414 6060 5415 6061 case 207: 5416 #line 923 "parser.yy" /* yacc.c:1646 */ 5417 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5418 #line 5419 "Parser/parser.cc" /* yacc.c:1646 */ 6062 6063 /* Line 1806 of yacc.c */ 6064 #line 924 "parser.yy" 6065 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5419 6066 break; 5420 6067 5421 6068 case 208: 5422 #line 925 "parser.yy" /* yacc.c:1646 */ 5423 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5424 #line 5425 "Parser/parser.cc" /* yacc.c:1646 */ 6069 6070 /* Line 1806 of yacc.c */ 6071 #line 926 "parser.yy" 6072 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5425 6073 break; 5426 6074 5427 6075 case 209: 5428 #line 927 "parser.yy" /* yacc.c:1646 */ 5429 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5430 #line 5431 "Parser/parser.cc" /* yacc.c:1646 */ 6076 6077 /* Line 1806 of yacc.c */ 6078 #line 928 "parser.yy" 6079 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5431 6080 break; 5432 6081 5433 6082 case 210: 5434 #line 932 "parser.yy" /* yacc.c:1646 */ 5435 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5436 #line 5437 "Parser/parser.cc" /* yacc.c:1646 */ 6083 6084 /* Line 1806 of yacc.c */ 6085 #line 933 "parser.yy" 6086 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5437 6087 break; 5438 6088 5439 6089 case 211: 5440 #line 934 "parser.yy" /* yacc.c:1646 */ 5441 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5442 #line 5443 "Parser/parser.cc" /* yacc.c:1646 */ 6090 6091 /* Line 1806 of yacc.c */ 6092 #line 935 "parser.yy" 6093 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5443 6094 break; 5444 6095 5445 6096 case 212: 5446 #line 936 "parser.yy" /* yacc.c:1646 */ 5447 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5448 #line 5449 "Parser/parser.cc" /* yacc.c:1646 */ 6097 6098 /* Line 1806 of yacc.c */ 6099 #line 937 "parser.yy" 6100 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5449 6101 break; 5450 6102 5451 6103 case 213: 5452 #line 938 "parser.yy" /* yacc.c:1646 */ 5453 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5454 #line 5455 "Parser/parser.cc" /* yacc.c:1646 */ 6104 6105 /* Line 1806 of yacc.c */ 6106 #line 939 "parser.yy" 6107 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5455 6108 break; 5456 6109 5457 6110 case 214: 5458 #line 943 "parser.yy" /* yacc.c:1646 */ 6111 6112 /* Line 1806 of yacc.c */ 6113 #line 944 "parser.yy" 5459 6114 { 5460 (yyval.sn) = new StatementNode( build_finally( (yyvsp[ 0].sn) ) );6115 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5461 6116 } 5462 #line 5463 "Parser/parser.cc" /* yacc.c:1646 */5463 6117 break; 5464 6118 5465 6119 case 216: 5466 #line 956 "parser.yy" /* yacc.c:1646 */ 6120 6121 /* Line 1806 of yacc.c */ 6122 #line 957 "parser.yy" 5467 6123 { 5468 6124 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5469 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );6125 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 5470 6126 } 5471 #line 5472 "Parser/parser.cc" /* yacc.c:1646 */5472 6127 break; 5473 6128 5474 6129 case 217: 5475 #line 961 "parser.yy" /* yacc.c:1646 */ 5476 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5477 #line 5478 "Parser/parser.cc" /* yacc.c:1646 */ 6130 6131 /* Line 1806 of yacc.c */ 6132 #line 962 "parser.yy" 6133 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5478 6134 break; 5479 6135 5480 6136 case 218: 5481 #line 963 "parser.yy" /* yacc.c:1646 */ 6137 6138 /* Line 1806 of yacc.c */ 6139 #line 964 "parser.yy" 5482 6140 { 5483 6141 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5484 (yyval.decl) = (yyvsp[ -1].decl)->addName( (yyvsp[0].tok) );6142 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); 5485 6143 } 5486 #line 5487 "Parser/parser.cc" /* yacc.c:1646 */5487 6144 break; 5488 6145 5489 6146 case 220: 5490 #line 972 "parser.yy" /* yacc.c:1646 */ 5491 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5492 #line 5493 "Parser/parser.cc" /* yacc.c:1646 */ 6147 6148 /* Line 1806 of yacc.c */ 6149 #line 973 "parser.yy" 6150 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5493 6151 break; 5494 6152 5495 6153 case 221: 5496 #line 974 "parser.yy" /* yacc.c:1646 */ 5497 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5498 #line 5499 "Parser/parser.cc" /* yacc.c:1646 */ 6154 6155 /* Line 1806 of yacc.c */ 6156 #line 975 "parser.yy" 6157 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5499 6158 break; 5500 6159 5501 6160 case 222: 5502 #line 976 "parser.yy" /* yacc.c:1646 */ 5503 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5504 #line 5505 "Parser/parser.cc" /* yacc.c:1646 */ 6161 6162 /* Line 1806 of yacc.c */ 6163 #line 977 "parser.yy" 6164 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5505 6165 break; 5506 6166 5507 6167 case 223: 5508 #line 978 "parser.yy" /* yacc.c:1646 */ 5509 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5510 #line 5511 "Parser/parser.cc" /* yacc.c:1646 */ 6168 6169 /* Line 1806 of yacc.c */ 6170 #line 979 "parser.yy" 6171 { (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) ) ); } 5511 6172 break; 5512 6173 5513 6174 case 224: 5514 #line 980 "parser.yy" /* yacc.c:1646 */ 5515 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5516 #line 5517 "Parser/parser.cc" /* yacc.c:1646 */ 6175 6176 /* Line 1806 of yacc.c */ 6177 #line 981 "parser.yy" 6178 { (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) ) ); } 5517 6179 break; 5518 6180 5519 6181 case 225: 5520 #line 985 "parser.yy" /* yacc.c:1646 */ 6182 6183 /* Line 1806 of yacc.c */ 6184 #line 986 "parser.yy" 5521 6185 { (yyval.flag) = false; } 5522 #line 5523 "Parser/parser.cc" /* yacc.c:1646 */5523 6186 break; 5524 6187 5525 6188 case 226: 5526 #line 987 "parser.yy" /* yacc.c:1646 */ 6189 6190 /* Line 1806 of yacc.c */ 6191 #line 988 "parser.yy" 5527 6192 { (yyval.flag) = true; } 5528 #line 5529 "Parser/parser.cc" /* yacc.c:1646 */5529 6193 break; 5530 6194 5531 6195 case 227: 5532 #line 992 "parser.yy" /* yacc.c:1646 */ 5533 { (yyval.en) = 0; } 5534 #line 5535 "Parser/parser.cc" /* yacc.c:1646 */ 6196 6197 /* Line 1806 of yacc.c */ 6198 #line 993 "parser.yy" 6199 { (yyval.en) = nullptr; } 5535 6200 break; 5536 6201 5537 6202 case 230: 5538 #line 999 "parser.yy" /* yacc.c:1646 */ 5539 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5540 #line 5541 "Parser/parser.cc" /* yacc.c:1646 */ 6203 6204 /* Line 1806 of yacc.c */ 6205 #line 1000 "parser.yy" 6206 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5541 6207 break; 5542 6208 5543 6209 case 231: 5544 #line 1004 "parser.yy" /* yacc.c:1646 */ 5545 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5546 #line 5547 "Parser/parser.cc" /* yacc.c:1646 */ 6210 6211 /* Line 1806 of yacc.c */ 6212 #line 1005 "parser.yy" 6213 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5547 6214 break; 5548 6215 5549 6216 case 232: 5550 #line 1006 "parser.yy" /* yacc.c:1646 */ 5551 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5552 #line 5553 "Parser/parser.cc" /* yacc.c:1646 */ 6217 6218 /* Line 1806 of yacc.c */ 6219 #line 1007 "parser.yy" 6220 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5553 6221 break; 5554 6222 5555 6223 case 233: 5556 #line 1011 "parser.yy" /* yacc.c:1646 */ 5557 { (yyval.en) = 0; } 5558 #line 5559 "Parser/parser.cc" /* yacc.c:1646 */ 6224 6225 /* Line 1806 of yacc.c */ 6226 #line 1012 "parser.yy" 6227 { (yyval.en) = nullptr; } 5559 6228 break; 5560 6229 5561 6230 case 234: 5562 #line 1013 "parser.yy" /* yacc.c:1646 */ 5563 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5564 #line 5565 "Parser/parser.cc" /* yacc.c:1646 */ 6231 6232 /* Line 1806 of yacc.c */ 6233 #line 1014 "parser.yy" 6234 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5565 6235 break; 5566 6236 5567 6237 case 235: 5568 #line 1015 "parser.yy" /* yacc.c:1646 */ 5569 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5570 #line 5571 "Parser/parser.cc" /* yacc.c:1646 */ 6238 6239 /* Line 1806 of yacc.c */ 6240 #line 1016 "parser.yy" 6241 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5571 6242 break; 5572 6243 5573 6244 case 236: 5574 #line 1020 "parser.yy" /* yacc.c:1646 */ 6245 6246 /* Line 1806 of yacc.c */ 6247 #line 1021 "parser.yy" 5575 6248 { 5576 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[ 0].tok) );5577 delete (yyvsp[ 0].tok); // allocated by lexer6249 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); 6250 delete (yyvsp[(1) - (1)].tok); // allocated by lexer 5578 6251 } 5579 #line 5580 "Parser/parser.cc" /* yacc.c:1646 */5580 6252 break; 5581 6253 5582 6254 case 237: 5583 #line 1025 "parser.yy" /* yacc.c:1646 */ 6255 6256 /* Line 1806 of yacc.c */ 6257 #line 1026 "parser.yy" 5584 6258 { 5585 (yyval.label) = (yyvsp[ -2].label); (yyvsp[-2].label)->labels.push_back( *(yyvsp[0].tok) );5586 delete (yyvsp[ 0].tok); // allocated by lexer6259 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); 6260 delete (yyvsp[(3) - (3)].tok); // allocated by lexer 5587 6261 } 5588 #line 5589 "Parser/parser.cc" /* yacc.c:1646 */5589 6262 break; 5590 6263 5591 6264 case 238: 5592 #line 1035 "parser.yy" /* yacc.c:1646 */ 5593 { (yyval.decl) = 0; } 5594 #line 5595 "Parser/parser.cc" /* yacc.c:1646 */ 6265 6266 /* Line 1806 of yacc.c */ 6267 #line 1036 "parser.yy" 6268 { (yyval.decl) = nullptr; } 5595 6269 break; 5596 6270 5597 6271 case 241: 5598 #line 1042 "parser.yy" /* yacc.c:1646 */ 5599 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5600 #line 5601 "Parser/parser.cc" /* yacc.c:1646 */ 6272 6273 /* Line 1806 of yacc.c */ 6274 #line 1043 "parser.yy" 6275 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5601 6276 break; 5602 6277 5603 6278 case 242: 5604 #line 1047 "parser.yy" /* yacc.c:1646 */ 5605 { (yyval.decl) = 0; } 5606 #line 5607 "Parser/parser.cc" /* yacc.c:1646 */ 6279 6280 /* Line 1806 of yacc.c */ 6281 #line 1048 "parser.yy" 6282 { (yyval.decl) = nullptr; } 5607 6283 break; 5608 6284 5609 6285 case 245: 5610 #line 1054 "parser.yy" /* yacc.c:1646 */ 5611 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5612 #line 5613 "Parser/parser.cc" /* yacc.c:1646 */ 6286 6287 /* Line 1806 of yacc.c */ 6288 #line 1055 "parser.yy" 6289 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5613 6290 break; 5614 6291 5615 6292 case 250: 5616 #line 1068 "parser.yy" /* yacc.c:1646 */ 6293 6294 /* Line 1806 of yacc.c */ 6295 #line 1069 "parser.yy" 5617 6296 {} 5618 #line 5619 "Parser/parser.cc" /* yacc.c:1646 */5619 6297 break; 5620 6298 5621 6299 case 251: 5622 #line 1069 "parser.yy" /* yacc.c:1646 */ 6300 6301 /* Line 1806 of yacc.c */ 6302 #line 1070 "parser.yy" 5623 6303 {} 5624 #line 5625 "Parser/parser.cc" /* yacc.c:1646 */5625 6304 break; 5626 6305 5627 6306 case 259: 5628 #line 1098 "parser.yy" /* yacc.c:1646 */ 6307 6308 /* Line 1806 of yacc.c */ 6309 #line 1099 "parser.yy" 5629 6310 { 5630 6311 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5631 (yyval.decl) = (yyvsp[ -1].decl)->addInitializer( (yyvsp[0].in) );6312 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) ); 5632 6313 } 5633 #line 5634 "Parser/parser.cc" /* yacc.c:1646 */5634 6314 break; 5635 6315 5636 6316 case 260: 5637 #line 1105 "parser.yy" /* yacc.c:1646 */ 6317 6318 /* Line 1806 of yacc.c */ 6319 #line 1106 "parser.yy" 5638 6320 { 5639 6321 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5640 (yyval.decl) = (yyvsp[ -1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );;6322 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );; 5641 6323 } 5642 #line 5643 "Parser/parser.cc" /* yacc.c:1646 */5643 6324 break; 5644 6325 5645 6326 case 261: 5646 #line 1110 "parser.yy" /* yacc.c:1646 */ 6327 6328 /* Line 1806 of yacc.c */ 6329 #line 1111 "parser.yy" 5647 6330 { 5648 typedefTable.addToEnclosingScope( *(yyvsp[ -1].tok), TypedefTable::ID );5649 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) );6331 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6332 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5650 6333 } 5651 #line 5652 "Parser/parser.cc" /* yacc.c:1646 */5652 6334 break; 5653 6335 5654 6336 case 262: 5655 #line 1120 "parser.yy" /* yacc.c:1646 */ 6337 6338 /* Line 1806 of yacc.c */ 6339 #line 1121 "parser.yy" 5656 6340 { 5657 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5658 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6341 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6342 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].constant) ); 5659 6343 } 5660 #line 5661 "Parser/parser.cc" /* yacc.c:1646 */5661 6344 break; 5662 6345 5663 6346 case 263: 5664 #line 1125 "parser.yy" /* yacc.c:1646 */ 6347 6348 /* Line 1806 of yacc.c */ 6349 #line 1126 "parser.yy" 5665 6350 { 5666 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5667 (yyval.decl) = (yyvsp[ -2].decl)->addName( (yyvsp[-1].tok) );6351 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6352 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].constant) ); 5668 6353 } 5669 #line 5670 "Parser/parser.cc" /* yacc.c:1646 */5670 6354 break; 5671 6355 5672 6356 case 264: 5673 #line 1130 "parser.yy" /* yacc.c:1646 */ 6357 6358 /* Line 1806 of yacc.c */ 6359 #line 1131 "parser.yy" 5674 6360 { 5675 typedefTable.setNextIdentifier( *(yyvsp[ -1].tok) );5676 (yyval.decl) = (yyvsp[ -2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) );6361 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6362 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) )->addAsmName( (yyvsp[(4) - (4)].constant) ); 5677 6363 } 5678 #line 5679 "Parser/parser.cc" /* yacc.c:1646 */5679 6364 break; 5680 6365 5681 6366 case 265: 5682 #line 1138 "parser.yy" /* yacc.c:1646 */ 6367 6368 /* Line 1806 of yacc.c */ 6369 #line 1139 "parser.yy" 5683 6370 { 5684 6371 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5685 (yyval.decl) = (yyvsp[ 0].decl);6372 (yyval.decl) = (yyvsp[(1) - (1)].decl); 5686 6373 } 5687 #line 5688 "Parser/parser.cc" /* yacc.c:1646 */5688 6374 break; 5689 6375 5690 6376 case 266: 5691 #line 1143 "parser.yy" /* yacc.c:1646 */ 6377 6378 /* Line 1806 of yacc.c */ 6379 #line 1144 "parser.yy" 5692 6380 { 5693 6381 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5694 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6382 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5695 6383 } 5696 #line 5697 "Parser/parser.cc" /* yacc.c:1646 */5697 6384 break; 5698 6385 5699 6386 case 267: 5700 #line 1148 "parser.yy" /* yacc.c:1646 */ 6387 6388 /* Line 1806 of yacc.c */ 6389 #line 1149 "parser.yy" 5701 6390 { 5702 6391 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5703 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-1].decl) );6392 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); 5704 6393 } 5705 #line 5706 "Parser/parser.cc" /* yacc.c:1646 */5706 6394 break; 5707 6395 5708 6396 case 268: 5709 #line 1153 "parser.yy" /* yacc.c:1646 */ 6397 6398 /* Line 1806 of yacc.c */ 6399 #line 1154 "parser.yy" 5710 6400 { 5711 6401 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5712 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) );6402 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) ); 5713 6403 } 5714 #line 5715 "Parser/parser.cc" /* yacc.c:1646 */5715 6404 break; 5716 6405 5717 6406 case 269: 5718 #line 1158 "parser.yy" /* yacc.c:1646 */ 6407 6408 /* Line 1806 of yacc.c */ 6409 #line 1159 "parser.yy" 5719 6410 { 5720 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::ID );5721 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6411 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6412 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5722 6413 } 5723 #line 5724 "Parser/parser.cc" /* yacc.c:1646 */5724 6414 break; 5725 6415 5726 6416 case 270: 5727 #line 1189 "parser.yy" /* yacc.c:1646 */ 6417 6418 /* Line 1806 of yacc.c */ 6419 #line 1190 "parser.yy" 5728 6420 { 5729 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6421 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5730 6422 } 5731 #line 5732 "Parser/parser.cc" /* yacc.c:1646 */5732 6423 break; 5733 6424 5734 6425 case 271: 5735 #line 1193 "parser.yy" /* yacc.c:1646 */ 6426 6427 /* Line 1806 of yacc.c */ 6428 #line 1194 "parser.yy" 5736 6429 { 5737 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[ -5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true );6430 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5738 6431 } 5739 #line 5740 "Parser/parser.cc" /* yacc.c:1646 */5740 6432 break; 5741 6433 5742 6434 case 272: 5743 #line 1200 "parser.yy" /* yacc.c:1646 */ 5744 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5745 #line 5746 "Parser/parser.cc" /* yacc.c:1646 */ 6435 6436 /* Line 1806 of yacc.c */ 6437 #line 1201 "parser.yy" 6438 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5746 6439 break; 5747 6440 5748 6441 case 273: 5749 #line 1204 "parser.yy" /* yacc.c:1646 */ 5750 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5751 #line 5752 "Parser/parser.cc" /* yacc.c:1646 */ 6442 6443 /* Line 1806 of yacc.c */ 6444 #line 1205 "parser.yy" 6445 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5752 6446 break; 5753 6447 5754 6448 case 274: 5755 #line 1209 "parser.yy" /* yacc.c:1646 */ 6449 6450 /* Line 1806 of yacc.c */ 6451 #line 1210 "parser.yy" 5756 6452 { 5757 6453 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5758 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6454 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5759 6455 } 5760 #line 5761 "Parser/parser.cc" /* yacc.c:1646 */5761 6456 break; 5762 6457 5763 6458 case 275: 5764 #line 1214 "parser.yy" /* yacc.c:1646 */ 6459 6460 /* Line 1806 of yacc.c */ 6461 #line 1215 "parser.yy" 5765 6462 { 5766 6463 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5767 (yyval.decl) = (yyvsp[ 0].decl)->addTypedef();6464 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 5768 6465 } 5769 #line 5770 "Parser/parser.cc" /* yacc.c:1646 */5770 6466 break; 5771 6467 5772 6468 case 276: 5773 #line 1219 "parser.yy" /* yacc.c:1646 */ 6469 6470 /* Line 1806 of yacc.c */ 6471 #line 1220 "parser.yy" 5774 6472 { 5775 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );5776 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );6473 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6474 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5777 6475 } 5778 #line 5779 "Parser/parser.cc" /* yacc.c:1646 */5779 6476 break; 5780 6477 5781 6478 case 277: 5782 #line 1230 "parser.yy" /* yacc.c:1646 */ 6479 6480 /* Line 1806 of yacc.c */ 6481 #line 1231 "parser.yy" 5783 6482 { 5784 6483 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5785 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addTypedef();6484 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef(); 5786 6485 } 5787 #line 5788 "Parser/parser.cc" /* yacc.c:1646 */5788 6486 break; 5789 6487 5790 6488 case 278: 5791 #line 1235 "parser.yy" /* yacc.c:1646 */ 6489 6490 /* Line 1806 of yacc.c */ 6491 #line 1236 "parser.yy" 5792 6492 { 5793 6493 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5794 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() );6494 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() ); 5795 6495 } 5796 #line 5797 "Parser/parser.cc" /* yacc.c:1646 */5797 6496 break; 5798 6497 5799 6498 case 279: 5800 #line 1240 "parser.yy" /* yacc.c:1646 */ 6499 6500 /* Line 1806 of yacc.c */ 6501 #line 1241 "parser.yy" 5801 6502 { 5802 6503 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5803 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef();6504 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef(); 5804 6505 } 5805 #line 5806 "Parser/parser.cc" /* yacc.c:1646 */5806 6506 break; 5807 6507 5808 6508 case 280: 5809 #line 1245 "parser.yy" /* yacc.c:1646 */ 6509 6510 /* Line 1806 of yacc.c */ 6511 #line 1246 "parser.yy" 5810 6512 { 5811 6513 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5812 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-2].decl) )->addTypedef();6514 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef(); 5813 6515 } 5814 #line 5815 "Parser/parser.cc" /* yacc.c:1646 */5815 6516 break; 5816 6517 5817 6518 case 281: 5818 #line 1250 "parser.yy" /* yacc.c:1646 */ 6519 6520 /* Line 1806 of yacc.c */ 6521 #line 1251 "parser.yy" 5819 6522 { 5820 6523 typedefTable.addToEnclosingScope( TypedefTable::TD ); 5821 (yyval.decl) = (yyvsp[ 0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) );6524 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) ); 5822 6525 } 5823 #line 5824 "Parser/parser.cc" /* yacc.c:1646 */5824 6526 break; 5825 6527 5826 6528 case 282: 5827 #line 1259 "parser.yy" /* yacc.c:1646 */ 6529 6530 /* Line 1806 of yacc.c */ 6531 #line 1260 "parser.yy" 5828 6532 { 5829 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6533 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5830 6534 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5831 6535 } 5832 #line 5833 "Parser/parser.cc" /* yacc.c:1646 */5833 6536 break; 5834 6537 5835 6538 case 283: 5836 #line 1264 "parser.yy" /* yacc.c:1646 */ 6539 6540 /* Line 1806 of yacc.c */ 6541 #line 1265 "parser.yy" 5837 6542 { 5838 typedefTable.addToEnclosingScope( *(yyvsp[ -2].tok), TypedefTable::TD );6543 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5839 6544 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 5840 6545 } 5841 #line 5842 "Parser/parser.cc" /* yacc.c:1646 */5842 6546 break; 5843 6547 5844 6548 case 288: 5845 #line 1281 "parser.yy" /* yacc.c:1646 */ 6549 6550 /* Line 1806 of yacc.c */ 6551 #line 1282 "parser.yy" 5846 6552 { 5847 6553 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5848 (yyval.decl) = ( (yyvsp[ -2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) );6554 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addAsmName( (yyvsp[(3) - (4)].constant) )->addInitializer( (yyvsp[(4) - (4)].in) ); 5849 6555 } 5850 #line 5851 "Parser/parser.cc" /* yacc.c:1646 */5851 6556 break; 5852 6557 5853 6558 case 289: 5854 #line 1286 "parser.yy" /* yacc.c:1646 */ 6559 6560 /* Line 1806 of yacc.c */ 6561 #line 1287 "parser.yy" 5855 6562 { 5856 6563 typedefTable.addToEnclosingScope( TypedefTable::ID ); 5857 (yyval.decl) = (yyvsp[ -5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) );6564 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addAsmName( (yyvsp[(5) - (6)].constant) )->addInitializer( (yyvsp[(6) - (6)].in) ) ) ); 5858 6565 } 5859 #line 5860 "Parser/parser.cc" /* yacc.c:1646 */5860 6566 break; 5861 6567 5862 6568 case 298: 5863 #line 1308 "parser.yy" /* yacc.c:1646 */ 5864 { (yyval.decl) = 0; } 5865 #line 5866 "Parser/parser.cc" /* yacc.c:1646 */ 6569 6570 /* Line 1806 of yacc.c */ 6571 #line 1309 "parser.yy" 6572 { (yyval.decl) = nullptr; } 5866 6573 break; 5867 6574 5868 6575 case 301: 5869 #line 1320 "parser.yy" /* yacc.c:1646 */ 5870 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5871 #line 5872 "Parser/parser.cc" /* yacc.c:1646 */ 6576 6577 /* Line 1806 of yacc.c */ 6578 #line 1321 "parser.yy" 6579 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5872 6580 break; 5873 6581 5874 6582 case 304: 5875 #line 1331 "parser.yy" /* yacc.c:1646 */ 6583 6584 /* Line 1806 of yacc.c */ 6585 #line 1332 "parser.yy" 5876 6586 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5877 #line 5878 "Parser/parser.cc" /* yacc.c:1646 */5878 6587 break; 5879 6588 5880 6589 case 305: 5881 #line 1333 "parser.yy" /* yacc.c:1646 */ 6590 6591 /* Line 1806 of yacc.c */ 6592 #line 1334 "parser.yy" 5882 6593 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5883 #line 5884 "Parser/parser.cc" /* yacc.c:1646 */5884 6594 break; 5885 6595 5886 6596 case 306: 5887 #line 1335 "parser.yy" /* yacc.c:1646 */ 6597 6598 /* Line 1806 of yacc.c */ 6599 #line 1336 "parser.yy" 5888 6600 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5889 #line 5890 "Parser/parser.cc" /* yacc.c:1646 */5890 6601 break; 5891 6602 5892 6603 case 307: 5893 #line 1337 "parser.yy" /* yacc.c:1646 */ 6604 6605 /* Line 1806 of yacc.c */ 6606 #line 1338 "parser.yy" 5894 6607 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5895 #line 5896 "Parser/parser.cc" /* yacc.c:1646 */5896 6608 break; 5897 6609 5898 6610 case 308: 5899 #line 1339 "parser.yy" /* yacc.c:1646 */ 6611 6612 /* Line 1806 of yacc.c */ 6613 #line 1340 "parser.yy" 5900 6614 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5901 #line 5902 "Parser/parser.cc" /* yacc.c:1646 */5902 6615 break; 5903 6616 5904 6617 case 309: 5905 #line 1341 "parser.yy" /* yacc.c:1646 */ 6618 6619 /* Line 1806 of yacc.c */ 6620 #line 1342 "parser.yy" 5906 6621 { 5907 6622 typedefTable.enterScope(); 5908 6623 } 5909 #line 5910 "Parser/parser.cc" /* yacc.c:1646 */5910 6624 break; 5911 6625 5912 6626 case 310: 5913 #line 1345 "parser.yy" /* yacc.c:1646 */ 6627 6628 /* Line 1806 of yacc.c */ 6629 #line 1346 "parser.yy" 5914 6630 { 5915 6631 typedefTable.leaveScope(); 5916 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ -1].decl) );6632 (yyval.decl) = DeclarationNode::newForall( (yyvsp[(4) - (5)].decl) ); 5917 6633 } 5918 #line 5919 "Parser/parser.cc" /* yacc.c:1646 */5919 6634 break; 5920 6635 5921 6636 case 312: 5922 #line 1354 "parser.yy" /* yacc.c:1646 */ 5923 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5924 #line 5925 "Parser/parser.cc" /* yacc.c:1646 */ 6637 6638 /* Line 1806 of yacc.c */ 6639 #line 1355 "parser.yy" 6640 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5925 6641 break; 5926 6642 5927 6643 case 313: 5928 #line 1356 "parser.yy" /* yacc.c:1646 */ 5929 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5930 #line 5931 "Parser/parser.cc" /* yacc.c:1646 */ 6644 6645 /* Line 1806 of yacc.c */ 6646 #line 1357 "parser.yy" 6647 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5931 6648 break; 5932 6649 5933 6650 case 315: 5934 #line 1367 "parser.yy" /* yacc.c:1646 */ 5935 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5936 #line 5937 "Parser/parser.cc" /* yacc.c:1646 */ 6651 6652 /* Line 1806 of yacc.c */ 6653 #line 1368 "parser.yy" 6654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5937 6655 break; 5938 6656 5939 6657 case 316: 5940 #line 1372 "parser.yy" /* yacc.c:1646 */ 6658 6659 /* Line 1806 of yacc.c */ 6660 #line 1373 "parser.yy" 5941 6661 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5942 #line 5943 "Parser/parser.cc" /* yacc.c:1646 */5943 6662 break; 5944 6663 5945 6664 case 317: 5946 #line 1374 "parser.yy" /* yacc.c:1646 */ 6665 6666 /* Line 1806 of yacc.c */ 6667 #line 1375 "parser.yy" 5947 6668 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5948 #line 5949 "Parser/parser.cc" /* yacc.c:1646 */5949 6669 break; 5950 6670 5951 6671 case 318: 5952 #line 1376 "parser.yy" /* yacc.c:1646 */ 6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1377 "parser.yy" 5953 6675 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5954 #line 5955 "Parser/parser.cc" /* yacc.c:1646 */5955 6676 break; 5956 6677 5957 6678 case 319: 5958 #line 1378 "parser.yy" /* yacc.c:1646 */ 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1379 "parser.yy" 5959 6682 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5960 #line 5961 "Parser/parser.cc" /* yacc.c:1646 */5961 6683 break; 5962 6684 5963 6685 case 320: 5964 #line 1381 "parser.yy" /* yacc.c:1646 */ 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1382 "parser.yy" 5965 6689 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 5966 #line 5967 "Parser/parser.cc" /* yacc.c:1646 */5967 6690 break; 5968 6691 5969 6692 case 321: 5970 #line 1383 "parser.yy" /* yacc.c:1646 */ 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1384 "parser.yy" 5971 6696 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5972 #line 5973 "Parser/parser.cc" /* yacc.c:1646 */5973 6697 break; 5974 6698 5975 6699 case 322: 5976 #line 1386 "parser.yy" /* yacc.c:1646 */ 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1387 "parser.yy" 5977 6703 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 5978 #line 5979 "Parser/parser.cc" /* yacc.c:1646 */5979 6704 break; 5980 6705 5981 6706 case 323: 5982 #line 1388 "parser.yy" /* yacc.c:1646 */ 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1389 "parser.yy" 5983 6710 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5984 #line 5985 "Parser/parser.cc" /* yacc.c:1646 */5985 6711 break; 5986 6712 5987 6713 case 324: 5988 #line 1393 "parser.yy" /* yacc.c:1646 */ 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1394 "parser.yy" 5989 6717 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5990 #line 5991 "Parser/parser.cc" /* yacc.c:1646 */5991 6718 break; 5992 6719 5993 6720 case 325: 5994 #line 1395 "parser.yy" /* yacc.c:1646 */ 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1396 "parser.yy" 5995 6724 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 5996 #line 5997 "Parser/parser.cc" /* yacc.c:1646 */5997 6725 break; 5998 6726 5999 6727 case 326: 6000 #line 1397 "parser.yy" /* yacc.c:1646 */ 6728 6729 /* Line 1806 of yacc.c */ 6730 #line 1398 "parser.yy" 6001 6731 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6002 #line 6003 "Parser/parser.cc" /* yacc.c:1646 */6003 6732 break; 6004 6733 6005 6734 case 327: 6006 #line 1399 "parser.yy" /* yacc.c:1646 */ 6735 6736 /* Line 1806 of yacc.c */ 6737 #line 1400 "parser.yy" 6007 6738 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6008 #line 6009 "Parser/parser.cc" /* yacc.c:1646 */6009 6739 break; 6010 6740 6011 6741 case 328: 6012 #line 1401 "parser.yy" /* yacc.c:1646 */ 6742 6743 /* Line 1806 of yacc.c */ 6744 #line 1402 "parser.yy" 6013 6745 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6014 #line 6015 "Parser/parser.cc" /* yacc.c:1646 */6015 6746 break; 6016 6747 6017 6748 case 329: 6018 #line 1403 "parser.yy" /* yacc.c:1646 */ 6749 6750 /* Line 1806 of yacc.c */ 6751 #line 1404 "parser.yy" 6019 6752 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6020 #line 6021 "Parser/parser.cc" /* yacc.c:1646 */6021 6753 break; 6022 6754 6023 6755 case 330: 6024 #line 1405 "parser.yy" /* yacc.c:1646 */ 6756 6757 /* Line 1806 of yacc.c */ 6758 #line 1406 "parser.yy" 6025 6759 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6026 #line 6027 "Parser/parser.cc" /* yacc.c:1646 */6027 6760 break; 6028 6761 6029 6762 case 331: 6030 #line 1407 "parser.yy" /* yacc.c:1646 */ 6763 6764 /* Line 1806 of yacc.c */ 6765 #line 1408 "parser.yy" 6031 6766 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6032 #line 6033 "Parser/parser.cc" /* yacc.c:1646 */6033 6767 break; 6034 6768 6035 6769 case 332: 6036 #line 1409 "parser.yy" /* yacc.c:1646 */ 6770 6771 /* Line 1806 of yacc.c */ 6772 #line 1410 "parser.yy" 6037 6773 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6038 #line 6039 "Parser/parser.cc" /* yacc.c:1646 */6039 6774 break; 6040 6775 6041 6776 case 333: 6042 #line 1411 "parser.yy" /* yacc.c:1646 */ 6777 6778 /* Line 1806 of yacc.c */ 6779 #line 1412 "parser.yy" 6043 6780 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6044 #line 6045 "Parser/parser.cc" /* yacc.c:1646 */6045 6781 break; 6046 6782 6047 6783 case 334: 6048 #line 1413 "parser.yy" /* yacc.c:1646 */ 6784 6785 /* Line 1806 of yacc.c */ 6786 #line 1414 "parser.yy" 6049 6787 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6050 #line 6051 "Parser/parser.cc" /* yacc.c:1646 */6051 6788 break; 6052 6789 6053 6790 case 335: 6054 #line 1415 "parser.yy" /* yacc.c:1646 */ 6791 6792 /* Line 1806 of yacc.c */ 6793 #line 1416 "parser.yy" 6055 6794 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6056 #line 6057 "Parser/parser.cc" /* yacc.c:1646 */6057 6795 break; 6058 6796 6059 6797 case 336: 6060 #line 1417 "parser.yy" /* yacc.c:1646 */ 6798 6799 /* Line 1806 of yacc.c */ 6800 #line 1418 "parser.yy" 6061 6801 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6062 #line 6063 "Parser/parser.cc" /* yacc.c:1646 */6063 6802 break; 6064 6803 6065 6804 case 337: 6066 #line 1419 "parser.yy" /* yacc.c:1646 */ 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1420 "parser.yy" 6067 6808 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 6068 #line 6069 "Parser/parser.cc" /* yacc.c:1646 */6069 6809 break; 6070 6810 6071 6811 case 338: 6072 #line 1421 "parser.yy" /* yacc.c:1646 */ 6812 6813 /* Line 1806 of yacc.c */ 6814 #line 1422 "parser.yy" 6073 6815 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 6074 #line 6075 "Parser/parser.cc" /* yacc.c:1646 */6075 6816 break; 6076 6817 6077 6818 case 340: 6078 #line 1428 "parser.yy" /* yacc.c:1646 */ 6079 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6080 #line 6081 "Parser/parser.cc" /* yacc.c:1646 */ 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1429 "parser.yy" 6822 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6081 6823 break; 6082 6824 6083 6825 case 341: 6084 #line 1430 "parser.yy" /* yacc.c:1646 */ 6085 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6086 #line 6087 "Parser/parser.cc" /* yacc.c:1646 */ 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1431 "parser.yy" 6829 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6087 6830 break; 6088 6831 6089 6832 case 342: 6090 #line 1432 "parser.yy" /* yacc.c:1646 */ 6091 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6092 #line 6093 "Parser/parser.cc" /* yacc.c:1646 */ 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1433 "parser.yy" 6836 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6093 6837 break; 6094 6838 6095 6839 case 343: 6096 #line 1434 "parser.yy" /* yacc.c:1646 */ 6097 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6098 #line 6099 "Parser/parser.cc" /* yacc.c:1646 */ 6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1435 "parser.yy" 6843 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6099 6844 break; 6100 6845 6101 6846 case 345: 6102 #line 1440 "parser.yy" /* yacc.c:1646 */ 6103 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6104 #line 6105 "Parser/parser.cc" /* yacc.c:1646 */ 6847 6848 /* Line 1806 of yacc.c */ 6849 #line 1441 "parser.yy" 6850 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6105 6851 break; 6106 6852 6107 6853 case 347: 6108 #line 1447 "parser.yy" /* yacc.c:1646 */ 6109 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6110 #line 6111 "Parser/parser.cc" /* yacc.c:1646 */ 6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1448 "parser.yy" 6857 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6111 6858 break; 6112 6859 6113 6860 case 348: 6114 #line 1449 "parser.yy" /* yacc.c:1646 */ 6115 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6116 #line 6117 "Parser/parser.cc" /* yacc.c:1646 */ 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1450 "parser.yy" 6864 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6117 6865 break; 6118 6866 6119 6867 case 349: 6120 #line 1451 "parser.yy" /* yacc.c:1646 */ 6121 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6122 #line 6123 "Parser/parser.cc" /* yacc.c:1646 */ 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1452 "parser.yy" 6871 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6123 6872 break; 6124 6873 6125 6874 case 350: 6126 #line 1456 "parser.yy" /* yacc.c:1646 */ 6127 { (yyval.decl) = (yyvsp[-1].decl); } 6128 #line 6129 "Parser/parser.cc" /* yacc.c:1646 */ 6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1457 "parser.yy" 6878 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6129 6879 break; 6130 6880 6131 6881 case 351: 6132 #line 1458 "parser.yy" /* yacc.c:1646 */ 6133 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6134 #line 6135 "Parser/parser.cc" /* yacc.c:1646 */ 6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1459 "parser.yy" 6885 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6135 6886 break; 6136 6887 6137 6888 case 352: 6138 #line 1460 "parser.yy" /* yacc.c:1646 */ 6139 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6140 #line 6141 "Parser/parser.cc" /* yacc.c:1646 */ 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1461 "parser.yy" 6892 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6141 6893 break; 6142 6894 6143 6895 case 353: 6144 #line 1462 "parser.yy" /* yacc.c:1646 */ 6145 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6146 #line 6147 "Parser/parser.cc" /* yacc.c:1646 */ 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1463 "parser.yy" 6899 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6147 6900 break; 6148 6901 6149 6902 case 355: 6150 #line 1468 "parser.yy" /* yacc.c:1646 */ 6151 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6152 #line 6153 "Parser/parser.cc" /* yacc.c:1646 */ 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1469 "parser.yy" 6906 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6153 6907 break; 6154 6908 6155 6909 case 356: 6156 #line 1470 "parser.yy" /* yacc.c:1646 */ 6157 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6158 #line 6159 "Parser/parser.cc" /* yacc.c:1646 */ 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1471 "parser.yy" 6913 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6159 6914 break; 6160 6915 6161 6916 case 357: 6162 #line 1472 "parser.yy" /* yacc.c:1646 */ 6163 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6164 #line 6165 "Parser/parser.cc" /* yacc.c:1646 */ 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1473 "parser.yy" 6920 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6165 6921 break; 6166 6922 6167 6923 case 359: 6168 #line 1478 "parser.yy" /* yacc.c:1646 */ 6169 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6170 #line 6171 "Parser/parser.cc" /* yacc.c:1646 */ 6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1479 "parser.yy" 6927 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6171 6928 break; 6172 6929 6173 6930 case 360: 6174 #line 1480 "parser.yy" /* yacc.c:1646 */ 6175 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6176 #line 6177 "Parser/parser.cc" /* yacc.c:1646 */ 6931 6932 /* Line 1806 of yacc.c */ 6933 #line 1481 "parser.yy" 6934 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6177 6935 break; 6178 6936 6179 6937 case 362: 6180 #line 1486 "parser.yy" /* yacc.c:1646 */ 6181 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6182 #line 6183 "Parser/parser.cc" /* yacc.c:1646 */ 6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1487 "parser.yy" 6941 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6183 6942 break; 6184 6943 6185 6944 case 363: 6186 #line 1488 "parser.yy" /* yacc.c:1646 */ 6187 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6188 #line 6189 "Parser/parser.cc" /* yacc.c:1646 */ 6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1489 "parser.yy" 6948 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6189 6949 break; 6190 6950 6191 6951 case 364: 6192 #line 1490 "parser.yy" /* yacc.c:1646 */ 6193 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6194 #line 6195 "Parser/parser.cc" /* yacc.c:1646 */ 6952 6953 /* Line 1806 of yacc.c */ 6954 #line 1491 "parser.yy" 6955 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6195 6956 break; 6196 6957 6197 6958 case 365: 6198 #line 1495 "parser.yy" /* yacc.c:1646 */ 6199 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6200 #line 6201 "Parser/parser.cc" /* yacc.c:1646 */ 6959 6960 /* Line 1806 of yacc.c */ 6961 #line 1496 "parser.yy" 6962 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6201 6963 break; 6202 6964 6203 6965 case 366: 6204 #line 1497 "parser.yy" /* yacc.c:1646 */ 6205 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6206 #line 6207 "Parser/parser.cc" /* yacc.c:1646 */ 6966 6967 /* Line 1806 of yacc.c */ 6968 #line 1498 "parser.yy" 6969 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6207 6970 break; 6208 6971 6209 6972 case 367: 6210 #line 1499 "parser.yy" /* yacc.c:1646 */ 6211 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6212 #line 6213 "Parser/parser.cc" /* yacc.c:1646 */ 6973 6974 /* Line 1806 of yacc.c */ 6975 #line 1500 "parser.yy" 6976 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6213 6977 break; 6214 6978 6215 6979 case 370: 6216 #line 1509 "parser.yy" /* yacc.c:1646 */ 6217 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), nullptr, nullptr, (yyvsp[-1].decl), true ); } 6218 #line 6219 "Parser/parser.cc" /* yacc.c:1646 */ 6980 6981 /* Line 1806 of yacc.c */ 6982 #line 1510 "parser.yy" 6983 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6219 6984 break; 6220 6985 6221 6986 case 371: 6222 #line 1511 "parser.yy" /* yacc.c:1646 */ 6987 6988 /* Line 1806 of yacc.c */ 6989 #line 1512 "parser.yy" 6223 6990 { 6224 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6225 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[ -1].aggKey), (yyvsp[0].tok), nullptr, nullptr, false );6991 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6992 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false ); 6226 6993 } 6227 #line 6228 "Parser/parser.cc" /* yacc.c:1646 */6228 6994 break; 6229 6995 6230 6996 case 372: 6231 #line 1516 "parser.yy" /* yacc.c:1646 */ 6232 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6233 #line 6234 "Parser/parser.cc" /* yacc.c:1646 */ 6997 6998 /* Line 1806 of yacc.c */ 6999 #line 1517 "parser.yy" 7000 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6234 7001 break; 6235 7002 6236 7003 case 373: 6237 #line 1518 "parser.yy" /* yacc.c:1646 */ 6238 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), nullptr, (yyvsp[-1].decl), true ); } 6239 #line 6240 "Parser/parser.cc" /* yacc.c:1646 */ 7004 7005 /* Line 1806 of yacc.c */ 7006 #line 1519 "parser.yy" 7007 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 6240 7008 break; 6241 7009 6242 7010 case 374: 6243 #line 1520 "parser.yy" /* yacc.c:1646 */ 6244 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), nullptr, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6245 #line 6246 "Parser/parser.cc" /* yacc.c:1646 */ 7011 7012 /* Line 1806 of yacc.c */ 7013 #line 1521 "parser.yy" 7014 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6246 7015 break; 6247 7016 6248 7017 case 375: 6249 #line 1522 "parser.yy" /* yacc.c:1646 */ 6250 { (yyval.decl) = (yyvsp[0].decl); } 6251 #line 6252 "Parser/parser.cc" /* yacc.c:1646 */ 7018 7019 /* Line 1806 of yacc.c */ 7020 #line 1523 "parser.yy" 7021 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6252 7022 break; 6253 7023 6254 7024 case 376: 6255 #line 1527 "parser.yy" /* yacc.c:1646 */ 7025 7026 /* Line 1806 of yacc.c */ 7027 #line 1528 "parser.yy" 6256 7028 { (yyval.aggKey) = DeclarationNode::Struct; } 6257 #line 6258 "Parser/parser.cc" /* yacc.c:1646 */6258 7029 break; 6259 7030 6260 7031 case 377: 6261 #line 1529 "parser.yy" /* yacc.c:1646 */ 7032 7033 /* Line 1806 of yacc.c */ 7034 #line 1530 "parser.yy" 6262 7035 { (yyval.aggKey) = DeclarationNode::Union; } 6263 #line 6264 "Parser/parser.cc" /* yacc.c:1646 */6264 7036 break; 6265 7037 6266 7038 case 378: 6267 #line 1534 "parser.yy" /* yacc.c:1646 */ 6268 { (yyval.decl) = 0; } 6269 #line 6270 "Parser/parser.cc" /* yacc.c:1646 */ 7039 7040 /* Line 1806 of yacc.c */ 7041 #line 1535 "parser.yy" 7042 { (yyval.decl) = nullptr; } 6270 7043 break; 6271 7044 6272 7045 case 379: 6273 #line 1536 "parser.yy" /* yacc.c:1646 */ 6274 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6275 #line 6276 "Parser/parser.cc" /* yacc.c:1646 */ 7046 7047 /* Line 1806 of yacc.c */ 7048 #line 1537 "parser.yy" 7049 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6276 7050 break; 6277 7051 6278 7052 case 381: 6279 #line 1542 "parser.yy" /* yacc.c:1646 */ 6280 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6281 #line 6282 "Parser/parser.cc" /* yacc.c:1646 */ 7053 7054 /* Line 1806 of yacc.c */ 7055 #line 1543 "parser.yy" 7056 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6282 7057 break; 6283 7058 6284 7059 case 383: 6285 #line 1545 "parser.yy" /* yacc.c:1646 */ 7060 7061 /* Line 1806 of yacc.c */ 7062 #line 1546 "parser.yy" 6286 7063 { // mark all fields in list 6287 for ( DeclarationNode *iter = (yyvsp[ -1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7064 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6288 7065 iter->set_extension( true ); 6289 (yyval.decl) = (yyvsp[ -1].decl);7066 (yyval.decl) = (yyvsp[(2) - (3)].decl); 6290 7067 } 6291 #line 6292 "Parser/parser.cc" /* yacc.c:1646 */6292 7068 break; 6293 7069 6294 7070 case 385: 6295 #line 1555 "parser.yy" /* yacc.c:1646 */ 6296 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6297 #line 6298 "Parser/parser.cc" /* yacc.c:1646 */ 7071 7072 /* Line 1806 of yacc.c */ 7073 #line 1556 "parser.yy" 7074 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6298 7075 break; 6299 7076 6300 7077 case 386: 6301 #line 1557 "parser.yy" /* yacc.c:1646 */ 6302 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6303 #line 6304 "Parser/parser.cc" /* yacc.c:1646 */ 7078 7079 /* Line 1806 of yacc.c */ 7080 #line 1558 "parser.yy" 7081 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6304 7082 break; 6305 7083 6306 7084 case 387: 6307 #line 1559 "parser.yy" /* yacc.c:1646 */ 6308 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6309 #line 6310 "Parser/parser.cc" /* yacc.c:1646 */ 7085 7086 /* Line 1806 of yacc.c */ 7087 #line 1560 "parser.yy" 7088 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6310 7089 break; 6311 7090 6312 7091 case 388: 6313 #line 1564 "parser.yy" /* yacc.c:1646 */ 6314 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6315 #line 6316 "Parser/parser.cc" /* yacc.c:1646 */ 7092 7093 /* Line 1806 of yacc.c */ 7094 #line 1565 "parser.yy" 7095 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6316 7096 break; 6317 7097 6318 7098 case 389: 6319 #line 1566 "parser.yy" /* yacc.c:1646 */ 6320 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6321 #line 6322 "Parser/parser.cc" /* yacc.c:1646 */ 7099 7100 /* Line 1806 of yacc.c */ 7101 #line 1567 "parser.yy" 7102 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 6322 7103 break; 6323 7104 6324 7105 case 390: 6325 #line 1571 "parser.yy" /* yacc.c:1646 */ 7106 7107 /* Line 1806 of yacc.c */ 7108 #line 1572 "parser.yy" 6326 7109 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6327 #line 6328 "Parser/parser.cc" /* yacc.c:1646 */6328 7110 break; 6329 7111 6330 7112 case 391: 6331 #line 1573 "parser.yy" /* yacc.c:1646 */ 6332 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6333 #line 6334 "Parser/parser.cc" /* yacc.c:1646 */ 7113 7114 /* Line 1806 of yacc.c */ 7115 #line 1574 "parser.yy" 7116 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 6334 7117 break; 6335 7118 6336 7119 case 392: 6337 #line 1576 "parser.yy" /* yacc.c:1646 */ 6338 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6339 #line 6340 "Parser/parser.cc" /* yacc.c:1646 */ 7120 7121 /* Line 1806 of yacc.c */ 7122 #line 1577 "parser.yy" 7123 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6340 7124 break; 6341 7125 6342 7126 case 393: 6343 #line 1579 "parser.yy" /* yacc.c:1646 */ 6344 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6345 #line 6346 "Parser/parser.cc" /* yacc.c:1646 */ 7127 7128 /* Line 1806 of yacc.c */ 7129 #line 1580 "parser.yy" 7130 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 6346 7131 break; 6347 7132 6348 7133 case 395: 6349 #line 1585 "parser.yy" /* yacc.c:1646 */ 6350 { (yyval.en) = 0; } 6351 #line 6352 "Parser/parser.cc" /* yacc.c:1646 */ 7134 7135 /* Line 1806 of yacc.c */ 7136 #line 1586 "parser.yy" 7137 { (yyval.en) = nullptr; } 6352 7138 break; 6353 7139 6354 7140 case 396: 6355 #line 1587 "parser.yy" /* yacc.c:1646 */ 6356 { (yyval.en) = (yyvsp[0].en); } 6357 #line 6358 "Parser/parser.cc" /* yacc.c:1646 */ 7141 7142 /* Line 1806 of yacc.c */ 7143 #line 1588 "parser.yy" 7144 { (yyval.en) = (yyvsp[(1) - (1)].en); } 6358 7145 break; 6359 7146 6360 7147 case 397: 6361 #line 1592 "parser.yy" /* yacc.c:1646 */ 6362 { (yyval.en) = (yyvsp[0].en); } 6363 #line 6364 "Parser/parser.cc" /* yacc.c:1646 */ 7148 7149 /* Line 1806 of yacc.c */ 7150 #line 1593 "parser.yy" 7151 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6364 7152 break; 6365 7153 6366 7154 case 399: 6367 #line 1601 "parser.yy" /* yacc.c:1646 */ 6368 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[-2].decl) ); } 6369 #line 6370 "Parser/parser.cc" /* yacc.c:1646 */ 7155 7156 /* Line 1806 of yacc.c */ 7157 #line 1602 "parser.yy" 7158 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 6370 7159 break; 6371 7160 6372 7161 case 400: 6373 #line 1603 "parser.yy" /* yacc.c:1646 */ 7162 7163 /* Line 1806 of yacc.c */ 7164 #line 1604 "parser.yy" 6374 7165 { 6375 typedefTable.makeTypedef( *(yyvsp[ 0].tok) );6376 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[ 0].tok), 0 );7166 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7167 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6377 7168 } 6378 #line 6379 "Parser/parser.cc" /* yacc.c:1646 */6379 7169 break; 6380 7170 6381 7171 case 401: 6382 #line 1608 "parser.yy" /* yacc.c:1646 */ 6383 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6384 #line 6385 "Parser/parser.cc" /* yacc.c:1646 */ 7172 7173 /* Line 1806 of yacc.c */ 7174 #line 1609 "parser.yy" 7175 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6385 7176 break; 6386 7177 6387 7178 case 402: 6388 #line 1610 "parser.yy" /* yacc.c:1646 */ 6389 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6390 #line 6391 "Parser/parser.cc" /* yacc.c:1646 */ 7179 7180 /* Line 1806 of yacc.c */ 7181 #line 1611 "parser.yy" 7182 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 6391 7183 break; 6392 7184 6393 7185 case 403: 6394 #line 1615 "parser.yy" /* yacc.c:1646 */ 6395 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6396 #line 6397 "Parser/parser.cc" /* yacc.c:1646 */ 7186 7187 /* Line 1806 of yacc.c */ 7188 #line 1616 "parser.yy" 7189 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 6397 7190 break; 6398 7191 6399 7192 case 404: 6400 #line 1617 "parser.yy" /* yacc.c:1646 */ 6401 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6402 #line 6403 "Parser/parser.cc" /* yacc.c:1646 */ 7193 7194 /* Line 1806 of yacc.c */ 7195 #line 1618 "parser.yy" 7196 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 6403 7197 break; 6404 7198 6405 7199 case 405: 6406 #line 1622 "parser.yy" /* yacc.c:1646 */ 6407 { (yyval.en) = 0; } 6408 #line 6409 "Parser/parser.cc" /* yacc.c:1646 */ 7200 7201 /* Line 1806 of yacc.c */ 7202 #line 1623 "parser.yy" 7203 { (yyval.en) = nullptr; } 6409 7204 break; 6410 7205 6411 7206 case 406: 6412 #line 1624 "parser.yy" /* yacc.c:1646 */ 6413 { (yyval.en) = (yyvsp[0].en); } 6414 #line 6415 "Parser/parser.cc" /* yacc.c:1646 */ 7207 7208 /* Line 1806 of yacc.c */ 7209 #line 1625 "parser.yy" 7210 { (yyval.en) = (yyvsp[(2) - (2)].en); } 6415 7211 break; 6416 7212 6417 7213 case 407: 6418 #line 1631 "parser.yy" /* yacc.c:1646 */ 6419 { (yyval.decl) = 0; } 6420 #line 6421 "Parser/parser.cc" /* yacc.c:1646 */ 7214 7215 /* Line 1806 of yacc.c */ 7216 #line 1632 "parser.yy" 7217 { (yyval.decl) = nullptr; } 6421 7218 break; 6422 7219 6423 7220 case 411: 6424 #line 1639 "parser.yy" /* yacc.c:1646 */ 6425 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6426 #line 6427 "Parser/parser.cc" /* yacc.c:1646 */ 7221 7222 /* Line 1806 of yacc.c */ 7223 #line 1640 "parser.yy" 7224 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6427 7225 break; 6428 7226 6429 7227 case 412: 6430 #line 1641 "parser.yy" /* yacc.c:1646 */ 6431 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6432 #line 6433 "Parser/parser.cc" /* yacc.c:1646 */ 7228 7229 /* Line 1806 of yacc.c */ 7230 #line 1642 "parser.yy" 7231 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6433 7232 break; 6434 7233 6435 7234 case 413: 6436 #line 1643 "parser.yy" /* yacc.c:1646 */ 6437 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6438 #line 6439 "Parser/parser.cc" /* yacc.c:1646 */ 7235 7236 /* Line 1806 of yacc.c */ 7237 #line 1644 "parser.yy" 7238 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6439 7239 break; 6440 7240 6441 7241 case 415: 6442 #line 1651 "parser.yy" /* yacc.c:1646 */ 6443 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6444 #line 6445 "Parser/parser.cc" /* yacc.c:1646 */ 7242 7243 /* Line 1806 of yacc.c */ 7244 #line 1652 "parser.yy" 7245 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6445 7246 break; 6446 7247 6447 7248 case 416: 6448 #line 1653 "parser.yy" /* yacc.c:1646 */ 6449 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6450 #line 6451 "Parser/parser.cc" /* yacc.c:1646 */ 7249 7250 /* Line 1806 of yacc.c */ 7251 #line 1654 "parser.yy" 7252 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6451 7253 break; 6452 7254 6453 7255 case 417: 6454 #line 1655 "parser.yy" /* yacc.c:1646 */ 6455 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6456 #line 6457 "Parser/parser.cc" /* yacc.c:1646 */ 7256 7257 /* Line 1806 of yacc.c */ 7258 #line 1656 "parser.yy" 7259 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 6457 7260 break; 6458 7261 6459 7262 case 419: 6460 #line 1661 "parser.yy" /* yacc.c:1646 */ 6461 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6462 #line 6463 "Parser/parser.cc" /* yacc.c:1646 */ 7263 7264 /* Line 1806 of yacc.c */ 7265 #line 1662 "parser.yy" 7266 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6463 7267 break; 6464 7268 6465 7269 case 420: 6466 #line 1666 "parser.yy" /* yacc.c:1646 */ 6467 { (yyval.decl) = 0; } 6468 #line 6469 "Parser/parser.cc" /* yacc.c:1646 */ 7270 7271 /* Line 1806 of yacc.c */ 7272 #line 1667 "parser.yy" 7273 { (yyval.decl) = nullptr; } 6469 7274 break; 6470 7275 6471 7276 case 423: 6472 #line 1673 "parser.yy" /* yacc.c:1646 */ 6473 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6474 #line 6475 "Parser/parser.cc" /* yacc.c:1646 */ 7277 7278 /* Line 1806 of yacc.c */ 7279 #line 1674 "parser.yy" 7280 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 6475 7281 break; 6476 7282 6477 7283 case 426: 6478 #line 1680 "parser.yy" /* yacc.c:1646 */ 6479 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6480 #line 6481 "Parser/parser.cc" /* yacc.c:1646 */ 7284 7285 /* Line 1806 of yacc.c */ 7286 #line 1681 "parser.yy" 7287 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6481 7288 break; 6482 7289 6483 7290 case 427: 6484 #line 1682 "parser.yy" /* yacc.c:1646 */ 6485 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6486 #line 6487 "Parser/parser.cc" /* yacc.c:1646 */ 7291 7292 /* Line 1806 of yacc.c */ 7293 #line 1683 "parser.yy" 7294 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 6487 7295 break; 6488 7296 6489 7297 case 429: 6490 #line 1691 "parser.yy" /* yacc.c:1646 */ 6491 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6492 #line 6493 "Parser/parser.cc" /* yacc.c:1646 */ 7298 7299 /* Line 1806 of yacc.c */ 7300 #line 1692 "parser.yy" 7301 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6493 7302 break; 6494 7303 6495 7304 case 430: 6496 #line 1694 "parser.yy" /* yacc.c:1646 */ 6497 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6498 #line 6499 "Parser/parser.cc" /* yacc.c:1646 */ 7305 7306 /* Line 1806 of yacc.c */ 7307 #line 1695 "parser.yy" 7308 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 6499 7309 break; 6500 7310 6501 7311 case 431: 6502 #line 1696 "parser.yy" /* yacc.c:1646 */ 6503 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6504 #line 6505 "Parser/parser.cc" /* yacc.c:1646 */ 7312 7313 /* Line 1806 of yacc.c */ 7314 #line 1697 "parser.yy" 7315 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 6505 7316 break; 6506 7317 6507 7318 case 436: 6508 #line 1706 "parser.yy" /* yacc.c:1646 */ 6509 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6510 #line 6511 "Parser/parser.cc" /* yacc.c:1646 */ 7319 7320 /* Line 1806 of yacc.c */ 7321 #line 1707 "parser.yy" 7322 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6511 7323 break; 6512 7324 6513 7325 case 438: 6514 #line 1712 "parser.yy" /* yacc.c:1646 */ 7326 7327 /* Line 1806 of yacc.c */ 7328 #line 1713 "parser.yy" 6515 7329 { 6516 7330 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6517 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7331 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6518 7332 } 6519 #line 6520 "Parser/parser.cc" /* yacc.c:1646 */6520 7333 break; 6521 7334 6522 7335 case 439: 6523 #line 1717 "parser.yy" /* yacc.c:1646 */ 7336 7337 /* Line 1806 of yacc.c */ 7338 #line 1718 "parser.yy" 6524 7339 { 6525 7340 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6526 (yyval.decl) = (yyvsp[ -1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) );7341 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6527 7342 } 6528 #line 6529 "Parser/parser.cc" /* yacc.c:1646 */6529 7343 break; 6530 7344 6531 7345 case 441: 6532 #line 1726 "parser.yy" /* yacc.c:1646 */ 6533 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6534 #line 6535 "Parser/parser.cc" /* yacc.c:1646 */ 7346 7347 /* Line 1806 of yacc.c */ 7348 #line 1727 "parser.yy" 7349 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6535 7350 break; 6536 7351 6537 7352 case 442: 6538 #line 1735 "parser.yy" /* yacc.c:1646 */ 6539 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6540 #line 6541 "Parser/parser.cc" /* yacc.c:1646 */ 7353 7354 /* Line 1806 of yacc.c */ 7355 #line 1736 "parser.yy" 7356 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 6541 7357 break; 6542 7358 6543 7359 case 443: 6544 #line 1737 "parser.yy" /* yacc.c:1646 */ 6545 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6546 #line 6547 "Parser/parser.cc" /* yacc.c:1646 */ 7360 7361 /* Line 1806 of yacc.c */ 7362 #line 1738 "parser.yy" 7363 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 6547 7364 break; 6548 7365 6549 7366 case 455: 6550 #line 1762 "parser.yy" /* yacc.c:1646 */ 6551 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6552 #line 6553 "Parser/parser.cc" /* yacc.c:1646 */ 7367 7368 /* Line 1806 of yacc.c */ 7369 #line 1763 "parser.yy" 7370 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6553 7371 break; 6554 7372 6555 7373 case 459: 6556 #line 1770 "parser.yy" /* yacc.c:1646 */ 6557 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6558 #line 6559 "Parser/parser.cc" /* yacc.c:1646 */ 7374 7375 /* Line 1806 of yacc.c */ 7376 #line 1771 "parser.yy" 7377 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6559 7378 break; 6560 7379 6561 7380 case 460: 6562 #line 1775 "parser.yy" /* yacc.c:1646 */ 6563 { (yyval.in) = 0; } 6564 #line 6565 "Parser/parser.cc" /* yacc.c:1646 */ 7381 7382 /* Line 1806 of yacc.c */ 7383 #line 1776 "parser.yy" 7384 { (yyval.in) = nullptr; } 6565 7385 break; 6566 7386 6567 7387 case 461: 6568 #line 1777 "parser.yy" /* yacc.c:1646 */ 6569 { (yyval.in) = (yyvsp[0].in); } 6570 #line 6571 "Parser/parser.cc" /* yacc.c:1646 */ 7388 7389 /* Line 1806 of yacc.c */ 7390 #line 1778 "parser.yy" 7391 { (yyval.in) = (yyvsp[(2) - (2)].in); } 6571 7392 break; 6572 7393 6573 7394 case 462: 6574 #line 1779 "parser.yy" /* yacc.c:1646 */ 6575 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6576 #line 6577 "Parser/parser.cc" /* yacc.c:1646 */ 7395 7396 /* Line 1806 of yacc.c */ 7397 #line 1780 "parser.yy" 7398 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 6577 7399 break; 6578 7400 6579 7401 case 463: 6580 #line 1783 "parser.yy" /* yacc.c:1646 */ 6581 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6582 #line 6583 "Parser/parser.cc" /* yacc.c:1646 */ 7402 7403 /* Line 1806 of yacc.c */ 7404 #line 1784 "parser.yy" 7405 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 6583 7406 break; 6584 7407 6585 7408 case 464: 6586 #line 1784 "parser.yy" /* yacc.c:1646 */ 6587 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6588 #line 6589 "Parser/parser.cc" /* yacc.c:1646 */ 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1785 "parser.yy" 7412 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 6589 7413 break; 6590 7414 6591 7415 case 465: 6592 #line 1789 "parser.yy" /* yacc.c:1646 */ 6593 { (yyval.in) = 0; } 6594 #line 6595 "Parser/parser.cc" /* yacc.c:1646 */ 7416 7417 /* Line 1806 of yacc.c */ 7418 #line 1790 "parser.yy" 7419 { (yyval.in) = nullptr; } 6595 7420 break; 6596 7421 6597 7422 case 467: 6598 #line 1791 "parser.yy" /* yacc.c:1646 */ 6599 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6600 #line 6601 "Parser/parser.cc" /* yacc.c:1646 */ 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1792 "parser.yy" 7426 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 6601 7427 break; 6602 7428 6603 7429 case 468: 6604 #line 1792 "parser.yy" /* yacc.c:1646 */ 6605 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6606 #line 6607 "Parser/parser.cc" /* yacc.c:1646 */ 7430 7431 /* Line 1806 of yacc.c */ 7432 #line 1793 "parser.yy" 7433 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 6607 7434 break; 6608 7435 6609 7436 case 469: 6610 #line 1794 "parser.yy" /* yacc.c:1646 */ 6611 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6612 #line 6613 "Parser/parser.cc" /* yacc.c:1646 */ 7437 7438 /* Line 1806 of yacc.c */ 7439 #line 1795 "parser.yy" 7440 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 6613 7441 break; 6614 7442 6615 7443 case 471: 6616 #line 1810 "parser.yy" /* yacc.c:1646 */ 6617 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6618 #line 6619 "Parser/parser.cc" /* yacc.c:1646 */ 7444 7445 /* Line 1806 of yacc.c */ 7446 #line 1811 "parser.yy" 7447 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 6619 7448 break; 6620 7449 6621 7450 case 473: 6622 #line 1816 "parser.yy" /* yacc.c:1646 */ 6623 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6624 #line 6625 "Parser/parser.cc" /* yacc.c:1646 */ 7451 7452 /* Line 1806 of yacc.c */ 7453 #line 1817 "parser.yy" 7454 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 6625 7455 break; 6626 7456 6627 7457 case 474: 6628 #line 1822 "parser.yy" /* yacc.c:1646 */ 6629 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6630 #line 6631 "Parser/parser.cc" /* yacc.c:1646 */ 7458 7459 /* Line 1806 of yacc.c */ 7460 #line 1823 "parser.yy" 7461 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 6631 7462 break; 6632 7463 6633 7464 case 475: 6634 #line 1825 "parser.yy" /* yacc.c:1646 */ 6635 { (yyval.en) = (yyvsp[-2].en); } 6636 #line 6637 "Parser/parser.cc" /* yacc.c:1646 */ 7465 7466 /* Line 1806 of yacc.c */ 7467 #line 1826 "parser.yy" 7468 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6637 7469 break; 6638 7470 6639 7471 case 476: 6640 #line 1827 "parser.yy" /* yacc.c:1646 */ 6641 { (yyval.en) = (yyvsp[-2].en); } 6642 #line 6643 "Parser/parser.cc" /* yacc.c:1646 */ 7472 7473 /* Line 1806 of yacc.c */ 7474 #line 1828 "parser.yy" 7475 { (yyval.en) = (yyvsp[(3) - (5)].en); } 6643 7476 break; 6644 7477 6645 7478 case 477: 6646 #line 1829 "parser.yy" /* yacc.c:1646 */ 6647 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6648 #line 6649 "Parser/parser.cc" /* yacc.c:1646 */ 7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1830 "parser.yy" 7482 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 6649 7483 break; 6650 7484 6651 7485 case 478: 6652 #line 1831 "parser.yy" /* yacc.c:1646 */ 6653 { (yyval.en) = (yyvsp[-2].en); } 6654 #line 6655 "Parser/parser.cc" /* yacc.c:1646 */ 7486 7487 /* Line 1806 of yacc.c */ 7488 #line 1832 "parser.yy" 7489 { (yyval.en) = (yyvsp[(4) - (6)].en); } 6655 7490 break; 6656 7491 6657 7492 case 480: 6658 #line 1855 "parser.yy" /* yacc.c:1646 */ 6659 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6660 #line 6661 "Parser/parser.cc" /* yacc.c:1646 */ 7493 7494 /* Line 1806 of yacc.c */ 7495 #line 1856 "parser.yy" 7496 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6661 7497 break; 6662 7498 6663 7499 case 481: 6664 #line 1857 "parser.yy" /* yacc.c:1646 */ 6665 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6666 #line 6667 "Parser/parser.cc" /* yacc.c:1646 */ 7500 7501 /* Line 1806 of yacc.c */ 7502 #line 1858 "parser.yy" 7503 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6667 7504 break; 6668 7505 6669 7506 case 482: 6670 #line 1859 "parser.yy" /* yacc.c:1646 */ 6671 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6672 #line 6673 "Parser/parser.cc" /* yacc.c:1646 */ 7507 7508 /* Line 1806 of yacc.c */ 7509 #line 1860 "parser.yy" 7510 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6673 7511 break; 6674 7512 6675 7513 case 484: 6676 #line 1865 "parser.yy" /* yacc.c:1646 */ 6677 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6678 #line 6679 "Parser/parser.cc" /* yacc.c:1646 */ 7514 7515 /* Line 1806 of yacc.c */ 7516 #line 1866 "parser.yy" 7517 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6679 7518 break; 6680 7519 6681 7520 case 485: 6682 #line 1867 "parser.yy" /* yacc.c:1646 */ 6683 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6684 #line 6685 "Parser/parser.cc" /* yacc.c:1646 */ 7521 7522 /* Line 1806 of yacc.c */ 7523 #line 1868 "parser.yy" 7524 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6685 7525 break; 6686 7526 6687 7527 case 486: 6688 #line 1872 "parser.yy" /* yacc.c:1646 */ 6689 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6690 #line 6691 "Parser/parser.cc" /* yacc.c:1646 */ 7528 7529 /* Line 1806 of yacc.c */ 7530 #line 1873 "parser.yy" 7531 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6691 7532 break; 6692 7533 6693 7534 case 488: 6694 #line 1878 "parser.yy" /* yacc.c:1646 */ 6695 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6696 #line 6697 "Parser/parser.cc" /* yacc.c:1646 */ 7535 7536 /* Line 1806 of yacc.c */ 7537 #line 1879 "parser.yy" 7538 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 6697 7539 break; 6698 7540 6699 7541 case 489: 6700 #line 1883 "parser.yy" /* yacc.c:1646 */ 6701 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6702 #line 6703 "Parser/parser.cc" /* yacc.c:1646 */ 7542 7543 /* Line 1806 of yacc.c */ 7544 #line 1884 "parser.yy" 7545 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 6703 7546 break; 6704 7547 6705 7548 case 490: 6706 #line 1885 "parser.yy" /* yacc.c:1646 */ 6707 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6708 #line 6709 "Parser/parser.cc" /* yacc.c:1646 */ 7549 7550 /* Line 1806 of yacc.c */ 7551 #line 1886 "parser.yy" 7552 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 6709 7553 break; 6710 7554 6711 7555 case 492: 6712 #line 1891 "parser.yy" /* yacc.c:1646 */ 7556 7557 /* Line 1806 of yacc.c */ 7558 #line 1892 "parser.yy" 6713 7559 { (yyval.tclass) = DeclarationNode::Otype; } 6714 #line 6715 "Parser/parser.cc" /* yacc.c:1646 */6715 7560 break; 6716 7561 6717 7562 case 493: 6718 #line 1893 "parser.yy" /* yacc.c:1646 */ 7563 7564 /* Line 1806 of yacc.c */ 7565 #line 1894 "parser.yy" 6719 7566 { (yyval.tclass) = DeclarationNode::Ftype; } 6720 #line 6721 "Parser/parser.cc" /* yacc.c:1646 */6721 7567 break; 6722 7568 6723 7569 case 494: 6724 #line 1895 "parser.yy" /* yacc.c:1646 */ 7570 7571 /* Line 1806 of yacc.c */ 7572 #line 1896 "parser.yy" 6725 7573 { (yyval.tclass) = DeclarationNode::Dtype; } 6726 #line 6727 "Parser/parser.cc" /* yacc.c:1646 */6727 7574 break; 6728 7575 6729 7576 case 495: 6730 #line 1900 "parser.yy" /* yacc.c:1646 */ 6731 { (yyval.decl) = 0; } 6732 #line 6733 "Parser/parser.cc" /* yacc.c:1646 */ 7577 7578 /* Line 1806 of yacc.c */ 7579 #line 1901 "parser.yy" 7580 { (yyval.decl) = nullptr; } 6733 7581 break; 6734 7582 6735 7583 case 496: 6736 #line 1902 "parser.yy" /* yacc.c:1646 */ 6737 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6738 #line 6739 "Parser/parser.cc" /* yacc.c:1646 */ 7584 7585 /* Line 1806 of yacc.c */ 7586 #line 1903 "parser.yy" 7587 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 6739 7588 break; 6740 7589 6741 7590 case 497: 6742 #line 1907 "parser.yy" /* yacc.c:1646 */ 7591 7592 /* Line 1806 of yacc.c */ 7593 #line 1908 "parser.yy" 6743 7594 { 6744 typedefTable.openTrait( *(yyvsp[ -3].tok) );6745 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[ -3].tok), (yyvsp[-1].en) );7595 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7596 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6746 7597 } 6747 #line 6748 "Parser/parser.cc" /* yacc.c:1646 */6748 7598 break; 6749 7599 6750 7600 case 498: 6751 #line 1912 "parser.yy" /* yacc.c:1646 */ 6752 { (yyval.decl) = (yyvsp[-1].decl); } 6753 #line 6754 "Parser/parser.cc" /* yacc.c:1646 */ 7601 7602 /* Line 1806 of yacc.c */ 7603 #line 1913 "parser.yy" 7604 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 6754 7605 break; 6755 7606 6756 7607 case 499: 6757 #line 1914 "parser.yy" /* yacc.c:1646 */ 6758 { (yyval.decl) = 0; } 6759 #line 6760 "Parser/parser.cc" /* yacc.c:1646 */ 7608 7609 /* Line 1806 of yacc.c */ 7610 #line 1915 "parser.yy" 7611 { (yyval.decl) = nullptr; } 6760 7612 break; 6761 7613 6762 7614 case 500: 6763 #line 1919 "parser.yy" /* yacc.c:1646 */ 6764 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6765 #line 6766 "Parser/parser.cc" /* yacc.c:1646 */ 7615 7616 /* Line 1806 of yacc.c */ 7617 #line 1920 "parser.yy" 7618 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 6766 7619 break; 6767 7620 6768 7621 case 502: 6769 #line 1922 "parser.yy" /* yacc.c:1646 */ 6770 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6771 #line 6772 "Parser/parser.cc" /* yacc.c:1646 */ 7622 7623 /* Line 1806 of yacc.c */ 7624 #line 1923 "parser.yy" 7625 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 6772 7626 break; 6773 7627 6774 7628 case 503: 6775 #line 1924 "parser.yy" /* yacc.c:1646 */ 6776 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6777 #line 6778 "Parser/parser.cc" /* yacc.c:1646 */ 7629 7630 /* Line 1806 of yacc.c */ 7631 #line 1925 "parser.yy" 7632 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 6778 7633 break; 6779 7634 6780 7635 case 504: 6781 #line 1929 "parser.yy" /* yacc.c:1646 */ 6782 { (yyval.decl) = (yyvsp[0].decl); } 6783 #line 6784 "Parser/parser.cc" /* yacc.c:1646 */ 7636 7637 /* Line 1806 of yacc.c */ 7638 #line 1930 "parser.yy" 7639 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6784 7640 break; 6785 7641 6786 7642 case 505: 6787 #line 1931 "parser.yy" /* yacc.c:1646 */ 6788 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6789 #line 6790 "Parser/parser.cc" /* yacc.c:1646 */ 7643 7644 /* Line 1806 of yacc.c */ 7645 #line 1932 "parser.yy" 7646 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 6790 7647 break; 6791 7648 6792 7649 case 506: 6793 #line 1933 "parser.yy" /* yacc.c:1646 */ 6794 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6795 #line 6796 "Parser/parser.cc" /* yacc.c:1646 */ 7650 7651 /* Line 1806 of yacc.c */ 7652 #line 1934 "parser.yy" 7653 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 6796 7654 break; 6797 7655 6798 7656 case 507: 6799 #line 1938 "parser.yy" /* yacc.c:1646 */ 6800 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6801 #line 6802 "Parser/parser.cc" /* yacc.c:1646 */ 7657 7658 /* Line 1806 of yacc.c */ 7659 #line 1939 "parser.yy" 7660 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 6802 7661 break; 6803 7662 6804 7663 case 508: 6805 #line 1940 "parser.yy" /* yacc.c:1646 */ 6806 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6807 #line 6808 "Parser/parser.cc" /* yacc.c:1646 */ 7664 7665 /* Line 1806 of yacc.c */ 7666 #line 1941 "parser.yy" 7667 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 6808 7668 break; 6809 7669 6810 7670 case 509: 6811 #line 1945 "parser.yy" /* yacc.c:1646 */ 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1946 "parser.yy" 6812 7674 { 6813 typedefTable.addToEnclosingScope( *(yyvsp[ 0].tok), TypedefTable::TD );6814 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ 0].tok), 0 );7675 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7676 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 6815 7677 } 6816 #line 6817 "Parser/parser.cc" /* yacc.c:1646 */6817 7678 break; 6818 7679 6819 7680 case 510: 6820 #line 1950 "parser.yy" /* yacc.c:1646 */ 7681 7682 /* Line 1806 of yacc.c */ 7683 #line 1951 "parser.yy" 6821 7684 { 6822 typedefTable.addToEnclosingScope( *(yyvsp[ -5].tok), TypedefTable::TG );6823 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[ -5].tok), (yyvsp[-2].decl) );7685 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7686 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 6824 7687 } 6825 #line 6826 "Parser/parser.cc" /* yacc.c:1646 */6826 7688 break; 6827 7689 6828 7690 case 511: 6829 #line 1958 "parser.yy" /* yacc.c:1646 */ 7691 7692 /* Line 1806 of yacc.c */ 7693 #line 1959 "parser.yy" 6830 7694 { 6831 typedefTable.addToEnclosingScope( *(yyvsp[ -7].tok), TypedefTable::ID );6832 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -7].tok), (yyvsp[-4].decl), 0 );7695 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7696 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 6833 7697 } 6834 #line 6835 "Parser/parser.cc" /* yacc.c:1646 */6835 7698 break; 6836 7699 6837 7700 case 512: 6838 #line 1963 "parser.yy" /* yacc.c:1646 */ 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1964 "parser.yy" 6839 7704 { 6840 typedefTable.enterTrait( *(yyvsp[ -6].tok) );7705 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6841 7706 typedefTable.enterScope(); 6842 7707 } 6843 #line 6844 "Parser/parser.cc" /* yacc.c:1646 */6844 7708 break; 6845 7709 6846 7710 case 513: 6847 #line 1968 "parser.yy" /* yacc.c:1646 */ 7711 7712 /* Line 1806 of yacc.c */ 7713 #line 1969 "parser.yy" 6848 7714 { 6849 7715 typedefTable.leaveTrait(); 6850 typedefTable.addToEnclosingScope( *(yyvsp[ -9].tok), TypedefTable::ID );6851 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ -9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) );7716 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID ); 7717 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) ); 6852 7718 } 6853 #line 6854 "Parser/parser.cc" /* yacc.c:1646 */6854 7719 break; 6855 7720 6856 7721 case 515: 6857 #line 1978 "parser.yy" /* yacc.c:1646 */ 6858 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6859 #line 6860 "Parser/parser.cc" /* yacc.c:1646 */ 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1979 "parser.yy" 7725 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6860 7726 break; 6861 7727 6862 7728 case 518: 6863 #line 1988 "parser.yy" /* yacc.c:1646 */ 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 1989 "parser.yy" 6864 7732 { 6865 7733 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6866 (yyval.decl) = (yyvsp[ 0].decl);7734 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6867 7735 } 6868 #line 6869 "Parser/parser.cc" /* yacc.c:1646 */6869 7736 break; 6870 7737 6871 7738 case 519: 6872 #line 1993 "parser.yy" /* yacc.c:1646 */ 7739 7740 /* Line 1806 of yacc.c */ 7741 #line 1994 "parser.yy" 6873 7742 { 6874 7743 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6875 (yyval.decl) = (yyvsp[ 0].decl);7744 (yyval.decl) = (yyvsp[(1) - (1)].decl); 6876 7745 } 6877 #line 6878 "Parser/parser.cc" /* yacc.c:1646 */6878 7746 break; 6879 7747 6880 7748 case 520: 6881 #line 1998 "parser.yy" /* yacc.c:1646 */ 7749 7750 /* Line 1806 of yacc.c */ 7751 #line 1999 "parser.yy" 6882 7752 { 6883 typedefTable.addToEnclosingScope2( *(yyvsp[ 0].tok), TypedefTable::ID );6884 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) );7753 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7754 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6885 7755 } 6886 #line 6887 "Parser/parser.cc" /* yacc.c:1646 */6887 7756 break; 6888 7757 6889 7758 case 521: 6890 #line 2006 "parser.yy" /* yacc.c:1646 */ 7759 7760 /* Line 1806 of yacc.c */ 7761 #line 2007 "parser.yy" 6891 7762 { 6892 7763 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6893 (yyval.decl) = (yyvsp[ 0].decl)->addType( (yyvsp[-1].decl) );7764 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 6894 7765 } 6895 #line 6896 "Parser/parser.cc" /* yacc.c:1646 */6896 7766 break; 6897 7767 6898 7768 case 522: 6899 #line 2011 "parser.yy" /* yacc.c:1646 */ 7769 7770 /* Line 1806 of yacc.c */ 7771 #line 2012 "parser.yy" 6900 7772 { 6901 7773 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6902 (yyval.decl) = (yyvsp[ -4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) );7774 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) ); 6903 7775 } 6904 #line 6905 "Parser/parser.cc" /* yacc.c:1646 */6905 7776 break; 6906 7777 6907 7778 case 523: 6908 #line 2021 "parser.yy" /* yacc.c:1646 */ 7779 7780 /* Line 1806 of yacc.c */ 7781 #line 2022 "parser.yy" 6909 7782 {} 6910 #line 6911 "Parser/parser.cc" /* yacc.c:1646 */6911 7783 break; 6912 7784 6913 7785 case 524: 6914 #line 2023 "parser.yy" /* yacc.c:1646 */ 6915 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6916 #line 6917 "Parser/parser.cc" /* yacc.c:1646 */ 7786 7787 /* Line 1806 of yacc.c */ 7788 #line 2024 "parser.yy" 7789 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 6917 7790 break; 6918 7791 6919 7792 case 526: 6920 #line 2029 "parser.yy" /* yacc.c:1646 */ 6921 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6922 #line 6923 "Parser/parser.cc" /* yacc.c:1646 */ 7793 7794 /* Line 1806 of yacc.c */ 7795 #line 2030 "parser.yy" 7796 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 6923 7797 break; 6924 7798 6925 7799 case 527: 6926 #line 2034 "parser.yy" /* yacc.c:1646 */ 6927 { (yyval.decl) = 0; } 6928 #line 6929 "Parser/parser.cc" /* yacc.c:1646 */ 7800 7801 /* Line 1806 of yacc.c */ 7802 #line 2035 "parser.yy" 7803 { (yyval.decl) = nullptr; } 6929 7804 break; 6930 7805 6931 7806 case 531: 6932 #line 2042 "parser.yy" /* yacc.c:1646 */ 7807 7808 /* Line 1806 of yacc.c */ 7809 #line 2043 "parser.yy" 6933 7810 {} 6934 #line 6935 "Parser/parser.cc" /* yacc.c:1646 */6935 7811 break; 6936 7812 6937 7813 case 532: 6938 #line 2044 "parser.yy" /* yacc.c:1646 */ 7814 7815 /* Line 1806 of yacc.c */ 7816 #line 2045 "parser.yy" 6939 7817 { 6940 7818 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 6941 linkage = LinkageSpec::linkageCheck( (yyvsp[ 0].tok) );7819 linkage = LinkageSpec::linkageCheck( (yyvsp[(2) - (2)].tok) ); 6942 7820 } 6943 #line 6944 "Parser/parser.cc" /* yacc.c:1646 */6944 7821 break; 6945 7822 6946 7823 case 533: 6947 #line 2049 "parser.yy" /* yacc.c:1646 */ 7824 7825 /* Line 1806 of yacc.c */ 7826 #line 2050 "parser.yy" 6948 7827 { 6949 7828 linkage = linkageStack.top(); 6950 7829 linkageStack.pop(); 6951 (yyval.decl) = (yyvsp[ -1].decl);7830 (yyval.decl) = (yyvsp[(5) - (6)].decl); 6952 7831 } 6953 #line 6954 "Parser/parser.cc" /* yacc.c:1646 */6954 7832 break; 6955 7833 6956 7834 case 534: 6957 #line 2055 "parser.yy" /* yacc.c:1646 */ 7835 7836 /* Line 1806 of yacc.c */ 7837 #line 2056 "parser.yy" 6958 7838 { // mark all fields in list 6959 for ( DeclarationNode *iter = (yyvsp[ 0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )7839 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6960 7840 iter->set_extension( true ); 6961 (yyval.decl) = (yyvsp[ 0].decl);7841 (yyval.decl) = (yyvsp[(2) - (2)].decl); 6962 7842 } 6963 #line 6964 "Parser/parser.cc" /* yacc.c:1646 */6964 7843 break; 6965 7844 6966 7845 case 536: 6967 #line 2070 "parser.yy" /* yacc.c:1646 */ 7846 7847 /* Line 1806 of yacc.c */ 7848 #line 2071 "parser.yy" 6968 7849 { 6969 7850 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6970 7851 typedefTable.leaveScope(); 6971 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7852 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6972 7853 } 6973 #line 6974 "Parser/parser.cc" /* yacc.c:1646 */6974 7854 break; 6975 7855 6976 7856 case 537: 6977 #line 2076 "parser.yy" /* yacc.c:1646 */ 7857 7858 /* Line 1806 of yacc.c */ 7859 #line 2077 "parser.yy" 6978 7860 { 6979 7861 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6980 7862 typedefTable.leaveScope(); 6981 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) );7863 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) ); 6982 7864 } 6983 #line 6984 "Parser/parser.cc" /* yacc.c:1646 */6984 7865 break; 6985 7866 6986 7867 case 538: 6987 #line 2085 "parser.yy" /* yacc.c:1646 */ 7868 7869 /* Line 1806 of yacc.c */ 7870 #line 2086 "parser.yy" 6988 7871 { 6989 7872 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6990 7873 typedefTable.leaveScope(); 6991 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) );7874 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 6992 7875 } 6993 #line 6994 "Parser/parser.cc" /* yacc.c:1646 */6994 7876 break; 6995 7877 6996 7878 case 539: 6997 #line 2091 "parser.yy" /* yacc.c:1646 */ 7879 7880 /* Line 1806 of yacc.c */ 7881 #line 2092 "parser.yy" 6998 7882 { 6999 7883 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7000 7884 typedefTable.leaveScope(); 7001 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) );7885 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) ); 7002 7886 } 7003 #line 7004 "Parser/parser.cc" /* yacc.c:1646 */7004 7887 break; 7005 7888 7006 7889 case 540: 7007 #line 2097 "parser.yy" /* yacc.c:1646 */ 7890 7891 /* Line 1806 of yacc.c */ 7892 #line 2098 "parser.yy" 7008 7893 { 7009 7894 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7010 7895 typedefTable.leaveScope(); 7011 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7896 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7012 7897 } 7013 #line 7014 "Parser/parser.cc" /* yacc.c:1646 */7014 7898 break; 7015 7899 7016 7900 case 541: 7017 #line 2103 "parser.yy" /* yacc.c:1646 */ 7901 7902 /* Line 1806 of yacc.c */ 7903 #line 2104 "parser.yy" 7018 7904 { 7019 7905 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7020 7906 typedefTable.leaveScope(); 7021 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) );7907 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) ); 7022 7908 } 7023 #line 7024 "Parser/parser.cc" /* yacc.c:1646 */7024 7909 break; 7025 7910 7026 7911 case 542: 7027 #line 2109 "parser.yy" /* yacc.c:1646 */ 7912 7913 /* Line 1806 of yacc.c */ 7914 #line 2110 "parser.yy" 7028 7915 { 7029 7916 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7030 7917 typedefTable.leaveScope(); 7031 (yyval.decl) = (yyvsp[ -1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) );7918 (yyval.decl) = (yyvsp[(3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); 7032 7919 } 7033 #line 7034 "Parser/parser.cc" /* yacc.c:1646 */7034 7920 break; 7035 7921 7036 7922 case 543: 7037 #line 2117 "parser.yy" /* yacc.c:1646 */ 7923 7924 /* Line 1806 of yacc.c */ 7925 #line 2118 "parser.yy" 7038 7926 { 7039 7927 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7040 7928 typedefTable.leaveScope(); 7041 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) );7929 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) ); 7042 7930 } 7043 #line 7044 "Parser/parser.cc" /* yacc.c:1646 */7044 7931 break; 7045 7932 7046 7933 case 544: 7047 #line 2123 "parser.yy" /* yacc.c:1646 */ 7934 7935 /* Line 1806 of yacc.c */ 7936 #line 2124 "parser.yy" 7048 7937 { 7049 7938 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7050 7939 typedefTable.leaveScope(); 7051 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7940 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7052 7941 } 7053 #line 7054 "Parser/parser.cc" /* yacc.c:1646 */7054 7942 break; 7055 7943 7056 7944 case 545: 7057 #line 2131 "parser.yy" /* yacc.c:1646 */ 7945 7946 /* Line 1806 of yacc.c */ 7947 #line 2132 "parser.yy" 7058 7948 { 7059 7949 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7060 7950 typedefTable.leaveScope(); 7061 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) );7951 (yyval.decl) = (yyvsp[(2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); 7062 7952 } 7063 #line 7064 "Parser/parser.cc" /* yacc.c:1646 */7064 7953 break; 7065 7954 7066 7955 case 546: 7067 #line 2137 "parser.yy" /* yacc.c:1646 */ 7956 7957 /* Line 1806 of yacc.c */ 7958 #line 2138 "parser.yy" 7068 7959 { 7069 7960 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7070 7961 typedefTable.leaveScope(); 7071 (yyval.decl) = (yyvsp[ -3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) );7962 (yyval.decl) = (yyvsp[(3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) ); 7072 7963 } 7073 #line 7074 "Parser/parser.cc" /* yacc.c:1646 */7074 7964 break; 7075 7965 7076 7966 case 550: 7077 #line 2152 "parser.yy" /* yacc.c:1646 */ 7078 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7079 #line 7080 "Parser/parser.cc" /* yacc.c:1646 */ 7967 7968 /* Line 1806 of yacc.c */ 7969 #line 2153 "parser.yy" 7970 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7971 break; 7972 7973 case 551: 7974 7975 /* Line 1806 of yacc.c */ 7976 #line 2158 "parser.yy" 7977 { (yyval.constant) = nullptr; } 7080 7978 break; 7081 7979 7082 7980 case 552: 7083 #line 2157 "parser.yy" /* yacc.c:1646 */ 7084 { delete (yyvsp[-2].str); } 7085 #line 7086 "Parser/parser.cc" /* yacc.c:1646 */ 7981 7982 /* Line 1806 of yacc.c */ 7983 #line 2160 "parser.yy" 7984 { (yyval.constant) = (yyvsp[(3) - (5)].constant); } 7086 7985 break; 7087 7986 7088 7987 case 553: 7089 #line 2162 "parser.yy" /* yacc.c:1646 */ 7090 { (yyval.decl) = 0; } 7091 #line 7092 "Parser/parser.cc" /* yacc.c:1646 */ 7988 7989 /* Line 1806 of yacc.c */ 7990 #line 2165 "parser.yy" 7991 { (yyval.decl) = nullptr; } 7092 7992 break; 7093 7993 7094 7994 case 556: 7095 #line 2169 "parser.yy" /* yacc.c:1646 */ 7096 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7097 #line 7098 "Parser/parser.cc" /* yacc.c:1646 */ 7995 7996 /* Line 1806 of yacc.c */ 7997 #line 2172 "parser.yy" 7998 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7098 7999 break; 7099 8000 7100 8001 case 557: 7101 #line 2175 "parser.yy" /* yacc.c:1646 */ 7102 { (yyval.decl) = 0; } 7103 #line 7104 "Parser/parser.cc" /* yacc.c:1646 */ 8002 8003 /* Line 1806 of yacc.c */ 8004 #line 2178 "parser.yy" 8005 { (yyval.decl) = nullptr; } 7104 8006 break; 7105 8007 7106 8008 case 562: 7107 #line 2186 "parser.yy" /* yacc.c:1646 */ 7108 { delete (yyvsp[-1].en); } 7109 #line 7110 "Parser/parser.cc" /* yacc.c:1646 */ 8009 8010 /* Line 1806 of yacc.c */ 8011 #line 2189 "parser.yy" 8012 { delete (yyvsp[(3) - (4)].en); } 7110 8013 break; 7111 8014 7112 8015 case 563: 7113 #line 2190 "parser.yy" /* yacc.c:1646 */ 7114 { delete (yyvsp[0].tok); } 7115 #line 7116 "Parser/parser.cc" /* yacc.c:1646 */ 8016 8017 /* Line 1806 of yacc.c */ 8018 #line 2193 "parser.yy" 8019 { delete (yyvsp[(1) - (1)].tok); } 7116 8020 break; 7117 8021 7118 8022 case 564: 7119 #line 2191 "parser.yy" /* yacc.c:1646 */ 7120 { delete (yyvsp[0].decl); } 7121 #line 7122 "Parser/parser.cc" /* yacc.c:1646 */ 8023 8024 /* Line 1806 of yacc.c */ 8025 #line 2194 "parser.yy" 8026 { delete (yyvsp[(1) - (1)].decl); } 7122 8027 break; 7123 8028 7124 8029 case 565: 7125 #line 2192 "parser.yy" /* yacc.c:1646 */ 7126 { delete (yyvsp[0].decl); } 7127 #line 7128 "Parser/parser.cc" /* yacc.c:1646 */ 8030 8031 /* Line 1806 of yacc.c */ 8032 #line 2195 "parser.yy" 8033 { delete (yyvsp[(1) - (1)].decl); } 7128 8034 break; 7129 8035 7130 8036 case 566: 7131 #line 2193 "parser.yy" /* yacc.c:1646 */ 7132 { delete (yyvsp[0].decl); } 7133 #line 7134 "Parser/parser.cc" /* yacc.c:1646 */ 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2196 "parser.yy" 8040 { delete (yyvsp[(1) - (1)].decl); } 7134 8041 break; 7135 8042 7136 8043 case 567: 7137 #line 2228 "parser.yy" /* yacc.c:1646 */ 7138 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7139 #line 7140 "Parser/parser.cc" /* yacc.c:1646 */ 8044 8045 /* Line 1806 of yacc.c */ 8046 #line 2231 "parser.yy" 8047 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7140 8048 break; 7141 8049 7142 8050 case 569: 7143 #line 2231 "parser.yy" /* yacc.c:1646 */ 7144 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7145 #line 7146 "Parser/parser.cc" /* yacc.c:1646 */ 8051 8052 /* Line 1806 of yacc.c */ 8053 #line 2234 "parser.yy" 8054 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7146 8055 break; 7147 8056 7148 8057 case 570: 7149 #line 2233 "parser.yy" /* yacc.c:1646 */ 7150 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7151 #line 7152 "Parser/parser.cc" /* yacc.c:1646 */ 8058 8059 /* Line 1806 of yacc.c */ 8060 #line 2236 "parser.yy" 8061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7152 8062 break; 7153 8063 7154 8064 case 571: 7155 #line 2238 "parser.yy" /* yacc.c:1646 */ 8065 8066 /* Line 1806 of yacc.c */ 8067 #line 2241 "parser.yy" 7156 8068 { 7157 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7158 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8069 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8070 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7159 8071 } 7160 #line 7161 "Parser/parser.cc" /* yacc.c:1646 */7161 8072 break; 7162 8073 7163 8074 case 572: 7164 #line 2243 "parser.yy" /* yacc.c:1646 */ 7165 { (yyval.decl) = (yyvsp[-1].decl); } 7166 #line 7167 "Parser/parser.cc" /* yacc.c:1646 */ 8075 8076 /* Line 1806 of yacc.c */ 8077 #line 2246 "parser.yy" 8078 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7167 8079 break; 7168 8080 7169 8081 case 573: 7170 #line 2248 "parser.yy" /* yacc.c:1646 */ 7171 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7172 #line 7173 "Parser/parser.cc" /* yacc.c:1646 */ 8082 8083 /* Line 1806 of yacc.c */ 8084 #line 2251 "parser.yy" 8085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7173 8086 break; 7174 8087 7175 8088 case 574: 7176 #line 2250 "parser.yy" /* yacc.c:1646 */ 7177 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7178 #line 7179 "Parser/parser.cc" /* yacc.c:1646 */ 8089 8090 /* Line 1806 of yacc.c */ 8091 #line 2253 "parser.yy" 8092 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7179 8093 break; 7180 8094 7181 8095 case 575: 7182 #line 2252 "parser.yy" /* yacc.c:1646 */ 7183 { (yyval.decl) = (yyvsp[-1].decl); } 7184 #line 7185 "Parser/parser.cc" /* yacc.c:1646 */ 8096 8097 /* Line 1806 of yacc.c */ 8098 #line 2255 "parser.yy" 8099 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7185 8100 break; 7186 8101 7187 8102 case 576: 7188 #line 2257 "parser.yy" /* yacc.c:1646 */ 7189 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7190 #line 7191 "Parser/parser.cc" /* yacc.c:1646 */ 8103 8104 /* Line 1806 of yacc.c */ 8105 #line 2260 "parser.yy" 8106 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7191 8107 break; 7192 8108 7193 8109 case 577: 7194 #line 2259 "parser.yy" /* yacc.c:1646 */ 7195 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7196 #line 7197 "Parser/parser.cc" /* yacc.c:1646 */ 8110 8111 /* Line 1806 of yacc.c */ 8112 #line 2262 "parser.yy" 8113 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7197 8114 break; 7198 8115 7199 8116 case 578: 7200 #line 2261 "parser.yy" /* yacc.c:1646 */ 7201 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7202 #line 7203 "Parser/parser.cc" /* yacc.c:1646 */ 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2264 "parser.yy" 8120 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7203 8121 break; 7204 8122 7205 8123 case 579: 7206 #line 2263 "parser.yy" /* yacc.c:1646 */ 7207 { (yyval.decl) = (yyvsp[-1].decl); } 7208 #line 7209 "Parser/parser.cc" /* yacc.c:1646 */ 8124 8125 /* Line 1806 of yacc.c */ 8126 #line 2266 "parser.yy" 8127 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7209 8128 break; 7210 8129 7211 8130 case 580: 7212 #line 2268 "parser.yy" /* yacc.c:1646 */ 7213 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7214 #line 7215 "Parser/parser.cc" /* yacc.c:1646 */ 8131 8132 /* Line 1806 of yacc.c */ 8133 #line 2271 "parser.yy" 8134 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7215 8135 break; 7216 8136 7217 8137 case 581: 7218 #line 2270 "parser.yy" /* yacc.c:1646 */ 7219 { (yyval.decl) = (yyvsp[-1].decl); } 7220 #line 7221 "Parser/parser.cc" /* yacc.c:1646 */ 8138 8139 /* Line 1806 of yacc.c */ 8140 #line 2273 "parser.yy" 8141 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7221 8142 break; 7222 8143 7223 8144 case 582: 7224 #line 2279 "parser.yy" /* yacc.c:1646 */ 7225 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7226 #line 7227 "Parser/parser.cc" /* yacc.c:1646 */ 8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2282 "parser.yy" 8148 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7227 8149 break; 7228 8150 7229 8151 case 584: 7230 #line 2282 "parser.yy" /* yacc.c:1646 */ 7231 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7232 #line 7233 "Parser/parser.cc" /* yacc.c:1646 */ 8152 8153 /* Line 1806 of yacc.c */ 8154 #line 2285 "parser.yy" 8155 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7233 8156 break; 7234 8157 7235 8158 case 585: 7236 #line 2287 "parser.yy" /* yacc.c:1646 */ 7237 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7238 #line 7239 "Parser/parser.cc" /* yacc.c:1646 */ 8159 8160 /* Line 1806 of yacc.c */ 8161 #line 2290 "parser.yy" 8162 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7239 8163 break; 7240 8164 7241 8165 case 586: 7242 #line 2289 "parser.yy" /* yacc.c:1646 */ 7243 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7244 #line 7245 "Parser/parser.cc" /* yacc.c:1646 */ 8166 8167 /* Line 1806 of yacc.c */ 8168 #line 2292 "parser.yy" 8169 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7245 8170 break; 7246 8171 7247 8172 case 587: 7248 #line 2291 "parser.yy" /* yacc.c:1646 */ 7249 { (yyval.decl) = (yyvsp[-1].decl); } 7250 #line 7251 "Parser/parser.cc" /* yacc.c:1646 */ 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2294 "parser.yy" 8176 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7251 8177 break; 7252 8178 7253 8179 case 588: 7254 #line 2296 "parser.yy" /* yacc.c:1646 */ 7255 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7256 #line 7257 "Parser/parser.cc" /* yacc.c:1646 */ 8180 8181 /* Line 1806 of yacc.c */ 8182 #line 2299 "parser.yy" 8183 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7257 8184 break; 7258 8185 7259 8186 case 589: 7260 #line 2298 "parser.yy" /* yacc.c:1646 */ 7261 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7262 #line 7263 "Parser/parser.cc" /* yacc.c:1646 */ 8187 8188 /* Line 1806 of yacc.c */ 8189 #line 2301 "parser.yy" 8190 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7263 8191 break; 7264 8192 7265 8193 case 590: 7266 #line 2300 "parser.yy" /* yacc.c:1646 */ 7267 { (yyval.decl) = (yyvsp[-1].decl); } 7268 #line 7269 "Parser/parser.cc" /* yacc.c:1646 */ 8194 8195 /* Line 1806 of yacc.c */ 8196 #line 2303 "parser.yy" 8197 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7269 8198 break; 7270 8199 7271 8200 case 591: 7272 #line 2305 "parser.yy" /* yacc.c:1646 */ 7273 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7274 #line 7275 "Parser/parser.cc" /* yacc.c:1646 */ 8201 8202 /* Line 1806 of yacc.c */ 8203 #line 2308 "parser.yy" 8204 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7275 8205 break; 7276 8206 7277 8207 case 592: 7278 #line 2307 "parser.yy" /* yacc.c:1646 */ 7279 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7280 #line 7281 "Parser/parser.cc" /* yacc.c:1646 */ 8208 8209 /* Line 1806 of yacc.c */ 8210 #line 2310 "parser.yy" 8211 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7281 8212 break; 7282 8213 7283 8214 case 593: 7284 #line 2309 "parser.yy" /* yacc.c:1646 */ 7285 { (yyval.decl) = (yyvsp[-1].decl); } 7286 #line 7287 "Parser/parser.cc" /* yacc.c:1646 */ 8215 8216 /* Line 1806 of yacc.c */ 8217 #line 2312 "parser.yy" 8218 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7287 8219 break; 7288 8220 7289 8221 case 597: 7290 #line 2324 "parser.yy" /* yacc.c:1646 */ 7291 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7292 #line 7293 "Parser/parser.cc" /* yacc.c:1646 */ 8222 8223 /* Line 1806 of yacc.c */ 8224 #line 2327 "parser.yy" 8225 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 7293 8226 break; 7294 8227 7295 8228 case 598: 7296 #line 2326 "parser.yy" /* yacc.c:1646 */ 7297 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7298 #line 7299 "Parser/parser.cc" /* yacc.c:1646 */ 8229 8230 /* Line 1806 of yacc.c */ 8231 #line 2329 "parser.yy" 8232 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 7299 8233 break; 7300 8234 7301 8235 case 599: 7302 #line 2328 "parser.yy" /* yacc.c:1646 */ 7303 { (yyval.decl) = (yyvsp[-1].decl); } 7304 #line 7305 "Parser/parser.cc" /* yacc.c:1646 */ 8236 8237 /* Line 1806 of yacc.c */ 8238 #line 2331 "parser.yy" 8239 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7305 8240 break; 7306 8241 7307 8242 case 600: 7308 #line 2333 "parser.yy" /* yacc.c:1646 */ 7309 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7310 #line 7311 "Parser/parser.cc" /* yacc.c:1646 */ 8243 8244 /* Line 1806 of yacc.c */ 8245 #line 2336 "parser.yy" 8246 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7311 8247 break; 7312 8248 7313 8249 case 601: 7314 #line 2335 "parser.yy" /* yacc.c:1646 */ 7315 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7316 #line 7317 "Parser/parser.cc" /* yacc.c:1646 */ 8250 8251 /* Line 1806 of yacc.c */ 8252 #line 2338 "parser.yy" 8253 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7317 8254 break; 7318 8255 7319 8256 case 602: 7320 #line 2337 "parser.yy" /* yacc.c:1646 */ 7321 { (yyval.decl) = (yyvsp[-1].decl); } 7322 #line 7323 "Parser/parser.cc" /* yacc.c:1646 */ 8257 8258 /* Line 1806 of yacc.c */ 8259 #line 2340 "parser.yy" 8260 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7323 8261 break; 7324 8262 7325 8263 case 603: 7326 #line 2342 "parser.yy" /* yacc.c:1646 */ 7327 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7328 #line 7329 "Parser/parser.cc" /* yacc.c:1646 */ 8264 8265 /* Line 1806 of yacc.c */ 8266 #line 2345 "parser.yy" 8267 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7329 8268 break; 7330 8269 7331 8270 case 604: 7332 #line 2344 "parser.yy" /* yacc.c:1646 */ 7333 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7334 #line 7335 "Parser/parser.cc" /* yacc.c:1646 */ 8271 8272 /* Line 1806 of yacc.c */ 8273 #line 2347 "parser.yy" 8274 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7335 8275 break; 7336 8276 7337 8277 case 605: 7338 #line 2346 "parser.yy" /* yacc.c:1646 */ 7339 { (yyval.decl) = (yyvsp[-1].decl); } 7340 #line 7341 "Parser/parser.cc" /* yacc.c:1646 */ 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2349 "parser.yy" 8281 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7341 8282 break; 7342 8283 7343 8284 case 606: 7344 #line 2361 "parser.yy" /* yacc.c:1646 */ 7345 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7346 #line 7347 "Parser/parser.cc" /* yacc.c:1646 */ 8285 8286 /* Line 1806 of yacc.c */ 8287 #line 2364 "parser.yy" 8288 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7347 8289 break; 7348 8290 7349 8291 case 608: 7350 #line 2364 "parser.yy" /* yacc.c:1646 */ 7351 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7352 #line 7353 "Parser/parser.cc" /* yacc.c:1646 */ 8292 8293 /* Line 1806 of yacc.c */ 8294 #line 2367 "parser.yy" 8295 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7353 8296 break; 7354 8297 7355 8298 case 609: 7356 #line 2366 "parser.yy" /* yacc.c:1646 */ 7357 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7358 #line 7359 "Parser/parser.cc" /* yacc.c:1646 */ 8299 8300 /* Line 1806 of yacc.c */ 8301 #line 2369 "parser.yy" 8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7359 8303 break; 7360 8304 7361 8305 case 611: 7362 #line 2372 "parser.yy" /* yacc.c:1646 */ 7363 { (yyval.decl) = (yyvsp[-1].decl); } 7364 #line 7365 "Parser/parser.cc" /* yacc.c:1646 */ 8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2375 "parser.yy" 8309 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7365 8310 break; 7366 8311 7367 8312 case 612: 7368 #line 2377 "parser.yy" /* yacc.c:1646 */ 7369 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7370 #line 7371 "Parser/parser.cc" /* yacc.c:1646 */ 8313 8314 /* Line 1806 of yacc.c */ 8315 #line 2380 "parser.yy" 8316 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7371 8317 break; 7372 8318 7373 8319 case 613: 7374 #line 2379 "parser.yy" /* yacc.c:1646 */ 7375 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7376 #line 7377 "Parser/parser.cc" /* yacc.c:1646 */ 8320 8321 /* Line 1806 of yacc.c */ 8322 #line 2382 "parser.yy" 8323 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7377 8324 break; 7378 8325 7379 8326 case 614: 7380 #line 2381 "parser.yy" /* yacc.c:1646 */ 7381 { (yyval.decl) = (yyvsp[-1].decl); } 7382 #line 7383 "Parser/parser.cc" /* yacc.c:1646 */ 8327 8328 /* Line 1806 of yacc.c */ 8329 #line 2384 "parser.yy" 8330 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7383 8331 break; 7384 8332 7385 8333 case 615: 7386 #line 2386 "parser.yy" /* yacc.c:1646 */ 7387 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7388 #line 7389 "Parser/parser.cc" /* yacc.c:1646 */ 8334 8335 /* Line 1806 of yacc.c */ 8336 #line 2389 "parser.yy" 8337 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7389 8338 break; 7390 8339 7391 8340 case 616: 7392 #line 2388 "parser.yy" /* yacc.c:1646 */ 7393 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7394 #line 7395 "Parser/parser.cc" /* yacc.c:1646 */ 8341 8342 /* Line 1806 of yacc.c */ 8343 #line 2391 "parser.yy" 8344 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7395 8345 break; 7396 8346 7397 8347 case 617: 7398 #line 2390 "parser.yy" /* yacc.c:1646 */ 7399 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7400 #line 7401 "Parser/parser.cc" /* yacc.c:1646 */ 8348 8349 /* Line 1806 of yacc.c */ 8350 #line 2393 "parser.yy" 8351 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7401 8352 break; 7402 8353 7403 8354 case 618: 7404 #line 2392 "parser.yy" /* yacc.c:1646 */ 7405 { (yyval.decl) = (yyvsp[-1].decl); } 7406 #line 7407 "Parser/parser.cc" /* yacc.c:1646 */ 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2395 "parser.yy" 8358 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7407 8359 break; 7408 8360 7409 8361 case 619: 7410 #line 2397 "parser.yy" /* yacc.c:1646 */ 7411 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7412 #line 7413 "Parser/parser.cc" /* yacc.c:1646 */ 8362 8363 /* Line 1806 of yacc.c */ 8364 #line 2400 "parser.yy" 8365 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7413 8366 break; 7414 8367 7415 8368 case 620: 7416 #line 2399 "parser.yy" /* yacc.c:1646 */ 7417 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7418 #line 7419 "Parser/parser.cc" /* yacc.c:1646 */ 8369 8370 /* Line 1806 of yacc.c */ 8371 #line 2402 "parser.yy" 8372 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7419 8373 break; 7420 8374 7421 8375 case 621: 7422 #line 2401 "parser.yy" /* yacc.c:1646 */ 7423 { (yyval.decl) = (yyvsp[-1].decl); } 7424 #line 7425 "Parser/parser.cc" /* yacc.c:1646 */ 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2404 "parser.yy" 8379 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7425 8380 break; 7426 8381 7427 8382 case 622: 7428 #line 2411 "parser.yy" /* yacc.c:1646 */ 7429 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7430 #line 7431 "Parser/parser.cc" /* yacc.c:1646 */ 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2414 "parser.yy" 8386 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7431 8387 break; 7432 8388 7433 8389 case 624: 7434 #line 2414 "parser.yy" /* yacc.c:1646 */ 7435 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7436 #line 7437 "Parser/parser.cc" /* yacc.c:1646 */ 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2417 "parser.yy" 8393 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7437 8394 break; 7438 8395 7439 8396 case 625: 7440 #line 2416 "parser.yy" /* yacc.c:1646 */ 7441 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7442 #line 7443 "Parser/parser.cc" /* yacc.c:1646 */ 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2419 "parser.yy" 8400 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7443 8401 break; 7444 8402 7445 8403 case 626: 7446 #line 2421 "parser.yy" /* yacc.c:1646 */ 7447 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7448 #line 7449 "Parser/parser.cc" /* yacc.c:1646 */ 8404 8405 /* Line 1806 of yacc.c */ 8406 #line 2424 "parser.yy" 8407 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7449 8408 break; 7450 8409 7451 8410 case 627: 7452 #line 2423 "parser.yy" /* yacc.c:1646 */ 7453 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7454 #line 7455 "Parser/parser.cc" /* yacc.c:1646 */ 8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2426 "parser.yy" 8414 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7455 8415 break; 7456 8416 7457 8417 case 628: 7458 #line 2425 "parser.yy" /* yacc.c:1646 */ 7459 { (yyval.decl) = (yyvsp[-1].decl); } 7460 #line 7461 "Parser/parser.cc" /* yacc.c:1646 */ 8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2428 "parser.yy" 8421 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7461 8422 break; 7462 8423 7463 8424 case 629: 7464 #line 2430 "parser.yy" /* yacc.c:1646 */ 7465 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7466 #line 7467 "Parser/parser.cc" /* yacc.c:1646 */ 8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2433 "parser.yy" 8428 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7467 8429 break; 7468 8430 7469 8431 case 630: 7470 #line 2432 "parser.yy" /* yacc.c:1646 */ 7471 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7472 #line 7473 "Parser/parser.cc" /* yacc.c:1646 */ 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2435 "parser.yy" 8435 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7473 8436 break; 7474 8437 7475 8438 case 631: 7476 #line 2434 "parser.yy" /* yacc.c:1646 */ 7477 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7478 #line 7479 "Parser/parser.cc" /* yacc.c:1646 */ 8439 8440 /* Line 1806 of yacc.c */ 8441 #line 2437 "parser.yy" 8442 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7479 8443 break; 7480 8444 7481 8445 case 632: 7482 #line 2436 "parser.yy" /* yacc.c:1646 */ 7483 { (yyval.decl) = (yyvsp[-1].decl); } 7484 #line 7485 "Parser/parser.cc" /* yacc.c:1646 */ 8446 8447 /* Line 1806 of yacc.c */ 8448 #line 2439 "parser.yy" 8449 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7485 8450 break; 7486 8451 7487 8452 case 633: 7488 #line 2441 "parser.yy" /* yacc.c:1646 */ 7489 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7490 #line 7491 "Parser/parser.cc" /* yacc.c:1646 */ 8453 8454 /* Line 1806 of yacc.c */ 8455 #line 2444 "parser.yy" 8456 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7491 8457 break; 7492 8458 7493 8459 case 634: 7494 #line 2443 "parser.yy" /* yacc.c:1646 */ 7495 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7496 #line 7497 "Parser/parser.cc" /* yacc.c:1646 */ 8460 8461 /* Line 1806 of yacc.c */ 8462 #line 2446 "parser.yy" 8463 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7497 8464 break; 7498 8465 7499 8466 case 635: 7500 #line 2445 "parser.yy" /* yacc.c:1646 */ 7501 { (yyval.decl) = (yyvsp[-1].decl); } 7502 #line 7503 "Parser/parser.cc" /* yacc.c:1646 */ 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2448 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7503 8471 break; 7504 8472 7505 8473 case 636: 7506 #line 2476 "parser.yy" /* yacc.c:1646 */ 7507 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7508 #line 7509 "Parser/parser.cc" /* yacc.c:1646 */ 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2479 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7509 8478 break; 7510 8479 7511 8480 case 638: 7512 #line 2479 "parser.yy" /* yacc.c:1646 */ 7513 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7514 #line 7515 "Parser/parser.cc" /* yacc.c:1646 */ 8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2482 "parser.yy" 8484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7515 8485 break; 7516 8486 7517 8487 case 639: 7518 #line 2481 "parser.yy" /* yacc.c:1646 */ 7519 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7520 #line 7521 "Parser/parser.cc" /* yacc.c:1646 */ 8488 8489 /* Line 1806 of yacc.c */ 8490 #line 2484 "parser.yy" 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7521 8492 break; 7522 8493 7523 8494 case 640: 7524 #line 2486 "parser.yy" /* yacc.c:1646 */ 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2489 "parser.yy" 7525 8498 { 7526 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7527 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8499 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8500 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7528 8501 } 7529 #line 7530 "Parser/parser.cc" /* yacc.c:1646 */7530 8502 break; 7531 8503 7532 8504 case 641: 7533 #line 2491 "parser.yy" /* yacc.c:1646 */ 8505 8506 /* Line 1806 of yacc.c */ 8507 #line 2494 "parser.yy" 7534 8508 { 7535 typedefTable.setNextIdentifier( *(yyvsp[ 0].tok) );7536 (yyval.decl) = DeclarationNode::newName( (yyvsp[ 0].tok) );8509 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8510 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7537 8511 } 7538 #line 7539 "Parser/parser.cc" /* yacc.c:1646 */7539 8512 break; 7540 8513 7541 8514 case 642: 7542 #line 2499 "parser.yy" /* yacc.c:1646 */ 7543 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7544 #line 7545 "Parser/parser.cc" /* yacc.c:1646 */ 8515 8516 /* Line 1806 of yacc.c */ 8517 #line 2502 "parser.yy" 8518 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7545 8519 break; 7546 8520 7547 8521 case 643: 7548 #line 2501 "parser.yy" /* yacc.c:1646 */ 7549 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7550 #line 7551 "Parser/parser.cc" /* yacc.c:1646 */ 8522 8523 /* Line 1806 of yacc.c */ 8524 #line 2504 "parser.yy" 8525 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7551 8526 break; 7552 8527 7553 8528 case 644: 7554 #line 2503 "parser.yy" /* yacc.c:1646 */ 7555 { (yyval.decl) = (yyvsp[-1].decl); } 7556 #line 7557 "Parser/parser.cc" /* yacc.c:1646 */ 8529 8530 /* Line 1806 of yacc.c */ 8531 #line 2506 "parser.yy" 8532 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7557 8533 break; 7558 8534 7559 8535 case 645: 7560 #line 2508 "parser.yy" /* yacc.c:1646 */ 7561 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7562 #line 7563 "Parser/parser.cc" /* yacc.c:1646 */ 8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2511 "parser.yy" 8539 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7563 8540 break; 7564 8541 7565 8542 case 646: 7566 #line 2510 "parser.yy" /* yacc.c:1646 */ 7567 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7568 #line 7569 "Parser/parser.cc" /* yacc.c:1646 */ 8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2513 "parser.yy" 8546 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7569 8547 break; 7570 8548 7571 8549 case 647: 7572 #line 2515 "parser.yy" /* yacc.c:1646 */ 7573 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7574 #line 7575 "Parser/parser.cc" /* yacc.c:1646 */ 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2518 "parser.yy" 8553 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 7575 8554 break; 7576 8555 7577 8556 case 648: 7578 #line 2517 "parser.yy" /* yacc.c:1646 */ 7579 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7580 #line 7581 "Parser/parser.cc" /* yacc.c:1646 */ 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2520 "parser.yy" 8560 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7581 8561 break; 7582 8562 7583 8563 case 650: 7584 #line 2532 "parser.yy" /* yacc.c:1646 */ 7585 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7586 #line 7587 "Parser/parser.cc" /* yacc.c:1646 */ 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2535 "parser.yy" 8567 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7587 8568 break; 7588 8569 7589 8570 case 651: 7590 #line 2534 "parser.yy" /* yacc.c:1646 */ 7591 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7592 #line 7593 "Parser/parser.cc" /* yacc.c:1646 */ 8571 8572 /* Line 1806 of yacc.c */ 8573 #line 2537 "parser.yy" 8574 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7593 8575 break; 7594 8576 7595 8577 case 652: 7596 #line 2539 "parser.yy" /* yacc.c:1646 */ 8578 8579 /* Line 1806 of yacc.c */ 8580 #line 2542 "parser.yy" 7597 8581 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7598 #line 7599 "Parser/parser.cc" /* yacc.c:1646 */7599 8582 break; 7600 8583 7601 8584 case 653: 7602 #line 2541 "parser.yy" /* yacc.c:1646 */ 7603 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7604 #line 7605 "Parser/parser.cc" /* yacc.c:1646 */ 8585 8586 /* Line 1806 of yacc.c */ 8587 #line 2544 "parser.yy" 8588 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7605 8589 break; 7606 8590 7607 8591 case 654: 7608 #line 2543 "parser.yy" /* yacc.c:1646 */ 7609 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7610 #line 7611 "Parser/parser.cc" /* yacc.c:1646 */ 8592 8593 /* Line 1806 of yacc.c */ 8594 #line 2546 "parser.yy" 8595 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7611 8596 break; 7612 8597 7613 8598 case 655: 7614 #line 2545 "parser.yy" /* yacc.c:1646 */ 7615 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7616 #line 7617 "Parser/parser.cc" /* yacc.c:1646 */ 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2548 "parser.yy" 8602 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7617 8603 break; 7618 8604 7619 8605 case 656: 7620 #line 2547 "parser.yy" /* yacc.c:1646 */ 7621 { (yyval.decl) = (yyvsp[-1].decl); } 7622 #line 7623 "Parser/parser.cc" /* yacc.c:1646 */ 8606 8607 /* Line 1806 of yacc.c */ 8608 #line 2550 "parser.yy" 8609 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7623 8610 break; 7624 8611 7625 8612 case 658: 7626 #line 2553 "parser.yy" /* yacc.c:1646 */ 7627 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7628 #line 7629 "Parser/parser.cc" /* yacc.c:1646 */ 8613 8614 /* Line 1806 of yacc.c */ 8615 #line 2556 "parser.yy" 8616 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7629 8617 break; 7630 8618 7631 8619 case 659: 7632 #line 2555 "parser.yy" /* yacc.c:1646 */ 7633 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7634 #line 7635 "Parser/parser.cc" /* yacc.c:1646 */ 8620 8621 /* Line 1806 of yacc.c */ 8622 #line 2558 "parser.yy" 8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7635 8624 break; 7636 8625 7637 8626 case 660: 7638 #line 2557 "parser.yy" /* yacc.c:1646 */ 7639 { (yyval.decl) = (yyvsp[-1].decl); } 7640 #line 7641 "Parser/parser.cc" /* yacc.c:1646 */ 8627 8628 /* Line 1806 of yacc.c */ 8629 #line 2560 "parser.yy" 8630 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7641 8631 break; 7642 8632 7643 8633 case 661: 7644 #line 2562 "parser.yy" /* yacc.c:1646 */ 7645 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); } 7646 #line 7647 "Parser/parser.cc" /* yacc.c:1646 */ 8634 8635 /* Line 1806 of yacc.c */ 8636 #line 2565 "parser.yy" 8637 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 7647 8638 break; 7648 8639 7649 8640 case 662: 7650 #line 2564 "parser.yy" /* yacc.c:1646 */ 7651 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7652 #line 7653 "Parser/parser.cc" /* yacc.c:1646 */ 8641 8642 /* Line 1806 of yacc.c */ 8643 #line 2567 "parser.yy" 8644 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7653 8645 break; 7654 8646 7655 8647 case 663: 7656 #line 2566 "parser.yy" /* yacc.c:1646 */ 7657 { (yyval.decl) = (yyvsp[-1].decl); } 7658 #line 7659 "Parser/parser.cc" /* yacc.c:1646 */ 8648 8649 /* Line 1806 of yacc.c */ 8650 #line 2569 "parser.yy" 8651 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7659 8652 break; 7660 8653 7661 8654 case 664: 7662 #line 2572 "parser.yy" /* yacc.c:1646 */ 8655 8656 /* Line 1806 of yacc.c */ 8657 #line 2575 "parser.yy" 7663 8658 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7664 #line 7665 "Parser/parser.cc" /* yacc.c:1646 */7665 8659 break; 7666 8660 7667 8661 case 665: 7668 #line 2574 "parser.yy" /* yacc.c:1646 */ 7669 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7670 #line 7671 "Parser/parser.cc" /* yacc.c:1646 */ 8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2577 "parser.yy" 8665 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 7671 8666 break; 7672 8667 7673 8668 case 667: 7674 #line 2580 "parser.yy" /* yacc.c:1646 */ 7675 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7676 #line 7677 "Parser/parser.cc" /* yacc.c:1646 */ 8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2583 "parser.yy" 8672 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 7677 8673 break; 7678 8674 7679 8675 case 668: 7680 #line 2582 "parser.yy" /* yacc.c:1646 */ 8676 8677 /* Line 1806 of yacc.c */ 8678 #line 2585 "parser.yy" 7681 8679 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7682 #line 7683 "Parser/parser.cc" /* yacc.c:1646 */7683 8680 break; 7684 8681 7685 8682 case 669: 7686 #line 2584 "parser.yy" /* yacc.c:1646 */ 7687 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7688 #line 7689 "Parser/parser.cc" /* yacc.c:1646 */ 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2587 "parser.yy" 8686 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 7689 8687 break; 7690 8688 7691 8689 case 670: 7692 #line 2586 "parser.yy" /* yacc.c:1646 */ 7693 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7694 #line 7695 "Parser/parser.cc" /* yacc.c:1646 */ 8690 8691 /* Line 1806 of yacc.c */ 8692 #line 2589 "parser.yy" 8693 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7695 8694 break; 7696 8695 7697 8696 case 672: 7698 #line 2601 "parser.yy" /* yacc.c:1646 */ 7699 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7700 #line 7701 "Parser/parser.cc" /* yacc.c:1646 */ 8697 8698 /* Line 1806 of yacc.c */ 8699 #line 2604 "parser.yy" 8700 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7701 8701 break; 7702 8702 7703 8703 case 673: 7704 #line 2603 "parser.yy" /* yacc.c:1646 */ 7705 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7706 #line 7707 "Parser/parser.cc" /* yacc.c:1646 */ 8704 8705 /* Line 1806 of yacc.c */ 8706 #line 2606 "parser.yy" 8707 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7707 8708 break; 7708 8709 7709 8710 case 674: 7710 #line 2608 "parser.yy" /* yacc.c:1646 */ 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2611 "parser.yy" 7711 8714 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7712 #line 7713 "Parser/parser.cc" /* yacc.c:1646 */7713 8715 break; 7714 8716 7715 8717 case 675: 7716 #line 2610 "parser.yy" /* yacc.c:1646 */ 7717 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7718 #line 7719 "Parser/parser.cc" /* yacc.c:1646 */ 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2613 "parser.yy" 8721 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7719 8722 break; 7720 8723 7721 8724 case 676: 7722 #line 2612 "parser.yy" /* yacc.c:1646 */ 7723 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7724 #line 7725 "Parser/parser.cc" /* yacc.c:1646 */ 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2615 "parser.yy" 8728 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7725 8729 break; 7726 8730 7727 8731 case 677: 7728 #line 2614 "parser.yy" /* yacc.c:1646 */ 7729 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7730 #line 7731 "Parser/parser.cc" /* yacc.c:1646 */ 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2617 "parser.yy" 8735 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7731 8736 break; 7732 8737 7733 8738 case 678: 7734 #line 2616 "parser.yy" /* yacc.c:1646 */ 7735 { (yyval.decl) = (yyvsp[-1].decl); } 7736 #line 7737 "Parser/parser.cc" /* yacc.c:1646 */ 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2619 "parser.yy" 8742 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7737 8743 break; 7738 8744 7739 8745 case 680: 7740 #line 2622 "parser.yy" /* yacc.c:1646 */ 7741 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7742 #line 7743 "Parser/parser.cc" /* yacc.c:1646 */ 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2625 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7743 8750 break; 7744 8751 7745 8752 case 681: 7746 #line 2624 "parser.yy" /* yacc.c:1646 */ 7747 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7748 #line 7749 "Parser/parser.cc" /* yacc.c:1646 */ 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2627 "parser.yy" 8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7749 8757 break; 7750 8758 7751 8759 case 682: 7752 #line 2626 "parser.yy" /* yacc.c:1646 */ 7753 { (yyval.decl) = (yyvsp[-1].decl); } 7754 #line 7755 "Parser/parser.cc" /* yacc.c:1646 */ 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2629 "parser.yy" 8763 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7755 8764 break; 7756 8765 7757 8766 case 683: 7758 #line 2631 "parser.yy" /* yacc.c:1646 */ 7759 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[-2].decl), nullptr ); } 7760 #line 7761 "Parser/parser.cc" /* yacc.c:1646 */ 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2634 "parser.yy" 8770 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 7761 8771 break; 7762 8772 7763 8773 case 684: 7764 #line 2633 "parser.yy" /* yacc.c:1646 */ 7765 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7766 #line 7767 "Parser/parser.cc" /* yacc.c:1646 */ 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2636 "parser.yy" 8777 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7767 8778 break; 7768 8779 7769 8780 case 685: 7770 #line 2635 "parser.yy" /* yacc.c:1646 */ 7771 { (yyval.decl) = (yyvsp[-1].decl); } 7772 #line 7773 "Parser/parser.cc" /* yacc.c:1646 */ 8781 8782 /* Line 1806 of yacc.c */ 8783 #line 2638 "parser.yy" 8784 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7773 8785 break; 7774 8786 7775 8787 case 687: 7776 #line 2642 "parser.yy" /* yacc.c:1646 */ 7777 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7778 #line 7779 "Parser/parser.cc" /* yacc.c:1646 */ 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2645 "parser.yy" 8791 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7779 8792 break; 7780 8793 7781 8794 case 689: 7782 #line 2653 "parser.yy" /* yacc.c:1646 */ 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2656 "parser.yy" 7783 8798 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7784 #line 7785 "Parser/parser.cc" /* yacc.c:1646 */7785 8799 break; 7786 8800 7787 8801 case 690: 7788 #line 2656 "parser.yy" /* yacc.c:1646 */ 7789 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7790 #line 7791 "Parser/parser.cc" /* yacc.c:1646 */ 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2659 "parser.yy" 8805 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7791 8806 break; 7792 8807 7793 8808 case 691: 7794 #line 2658 "parser.yy" /* yacc.c:1646 */ 7795 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7796 #line 7797 "Parser/parser.cc" /* yacc.c:1646 */ 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2661 "parser.yy" 8812 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 7797 8813 break; 7798 8814 7799 8815 case 692: 7800 #line 2661 "parser.yy" /* yacc.c:1646 */ 7801 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7802 #line 7803 "Parser/parser.cc" /* yacc.c:1646 */ 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2664 "parser.yy" 8819 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7803 8820 break; 7804 8821 7805 8822 case 693: 7806 #line 2663 "parser.yy" /* yacc.c:1646 */ 7807 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7808 #line 7809 "Parser/parser.cc" /* yacc.c:1646 */ 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2666 "parser.yy" 8826 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 7809 8827 break; 7810 8828 7811 8829 case 694: 7812 #line 2665 "parser.yy" /* yacc.c:1646 */ 7813 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7814 #line 7815 "Parser/parser.cc" /* yacc.c:1646 */ 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2668 "parser.yy" 8833 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 7815 8834 break; 7816 8835 7817 8836 case 696: 7818 #line 2679 "parser.yy" /* yacc.c:1646 */ 7819 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7820 #line 7821 "Parser/parser.cc" /* yacc.c:1646 */ 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2682 "parser.yy" 8840 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7821 8841 break; 7822 8842 7823 8843 case 697: 7824 #line 2681 "parser.yy" /* yacc.c:1646 */ 7825 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7826 #line 7827 "Parser/parser.cc" /* yacc.c:1646 */ 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2684 "parser.yy" 8847 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7827 8848 break; 7828 8849 7829 8850 case 698: 7830 #line 2686 "parser.yy" /* yacc.c:1646 */ 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2689 "parser.yy" 7831 8854 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7832 #line 7833 "Parser/parser.cc" /* yacc.c:1646 */7833 8855 break; 7834 8856 7835 8857 case 699: 7836 #line 2688 "parser.yy" /* yacc.c:1646 */ 7837 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7838 #line 7839 "Parser/parser.cc" /* yacc.c:1646 */ 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2691 "parser.yy" 8861 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7839 8862 break; 7840 8863 7841 8864 case 700: 7842 #line 2690 "parser.yy" /* yacc.c:1646 */ 7843 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7844 #line 7845 "Parser/parser.cc" /* yacc.c:1646 */ 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2693 "parser.yy" 8868 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7845 8869 break; 7846 8870 7847 8871 case 701: 7848 #line 2692 "parser.yy" /* yacc.c:1646 */ 7849 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7850 #line 7851 "Parser/parser.cc" /* yacc.c:1646 */ 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2695 "parser.yy" 8875 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7851 8876 break; 7852 8877 7853 8878 case 702: 7854 #line 2694 "parser.yy" /* yacc.c:1646 */ 7855 { (yyval.decl) = (yyvsp[-1].decl); } 7856 #line 7857 "Parser/parser.cc" /* yacc.c:1646 */ 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2697 "parser.yy" 8882 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7857 8883 break; 7858 8884 7859 8885 case 704: 7860 #line 2700 "parser.yy" /* yacc.c:1646 */ 7861 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7862 #line 7863 "Parser/parser.cc" /* yacc.c:1646 */ 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2703 "parser.yy" 8889 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7863 8890 break; 7864 8891 7865 8892 case 705: 7866 #line 2702 "parser.yy" /* yacc.c:1646 */ 7867 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7868 #line 7869 "Parser/parser.cc" /* yacc.c:1646 */ 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2705 "parser.yy" 8896 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7869 8897 break; 7870 8898 7871 8899 case 706: 7872 #line 2704 "parser.yy" /* yacc.c:1646 */ 7873 { (yyval.decl) = (yyvsp[-1].decl); } 7874 #line 7875 "Parser/parser.cc" /* yacc.c:1646 */ 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2707 "parser.yy" 8903 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7875 8904 break; 7876 8905 7877 8906 case 707: 7878 #line 2709 "parser.yy" /* yacc.c:1646 */ 7879 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7880 #line 7881 "Parser/parser.cc" /* yacc.c:1646 */ 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2712 "parser.yy" 8910 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7881 8911 break; 7882 8912 7883 8913 case 708: 7884 #line 2711 "parser.yy" /* yacc.c:1646 */ 7885 { (yyval.decl) = (yyvsp[-1].decl); } 7886 #line 7887 "Parser/parser.cc" /* yacc.c:1646 */ 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2714 "parser.yy" 8917 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7887 8918 break; 7888 8919 7889 8920 case 711: 7890 #line 2721 "parser.yy" /* yacc.c:1646 */ 7891 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7892 #line 7893 "Parser/parser.cc" /* yacc.c:1646 */ 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2724 "parser.yy" 8924 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7893 8925 break; 7894 8926 7895 8927 case 714: 7896 #line 2731 "parser.yy" /* yacc.c:1646 */ 7897 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7898 #line 7899 "Parser/parser.cc" /* yacc.c:1646 */ 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2734 "parser.yy" 8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7899 8932 break; 7900 8933 7901 8934 case 715: 7902 #line 2733 "parser.yy" /* yacc.c:1646 */ 7903 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7904 #line 7905 "Parser/parser.cc" /* yacc.c:1646 */ 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2736 "parser.yy" 8938 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7905 8939 break; 7906 8940 7907 8941 case 716: 7908 #line 2735 "parser.yy" /* yacc.c:1646 */ 7909 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7910 #line 7911 "Parser/parser.cc" /* yacc.c:1646 */ 8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2738 "parser.yy" 8945 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7911 8946 break; 7912 8947 7913 8948 case 717: 7914 #line 2737 "parser.yy" /* yacc.c:1646 */ 7915 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7916 #line 7917 "Parser/parser.cc" /* yacc.c:1646 */ 8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2740 "parser.yy" 8952 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7917 8953 break; 7918 8954 7919 8955 case 718: 7920 #line 2739 "parser.yy" /* yacc.c:1646 */ 7921 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7922 #line 7923 "Parser/parser.cc" /* yacc.c:1646 */ 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2742 "parser.yy" 8959 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7923 8960 break; 7924 8961 7925 8962 case 719: 7926 #line 2741 "parser.yy" /* yacc.c:1646 */ 7927 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7928 #line 7929 "Parser/parser.cc" /* yacc.c:1646 */ 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2744 "parser.yy" 8966 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7929 8967 break; 7930 8968 7931 8969 case 720: 7932 #line 2748 "parser.yy" /* yacc.c:1646 */ 7933 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7934 #line 7935 "Parser/parser.cc" /* yacc.c:1646 */ 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2751 "parser.yy" 8973 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7935 8974 break; 7936 8975 7937 8976 case 721: 7938 #line 2750 "parser.yy" /* yacc.c:1646 */ 7939 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7940 #line 7941 "Parser/parser.cc" /* yacc.c:1646 */ 8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2753 "parser.yy" 8980 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7941 8981 break; 7942 8982 7943 8983 case 722: 7944 #line 2752 "parser.yy" /* yacc.c:1646 */ 7945 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7946 #line 7947 "Parser/parser.cc" /* yacc.c:1646 */ 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2755 "parser.yy" 8987 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7947 8988 break; 7948 8989 7949 8990 case 723: 7950 #line 2754 "parser.yy" /* yacc.c:1646 */ 7951 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7952 #line 7953 "Parser/parser.cc" /* yacc.c:1646 */ 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2757 "parser.yy" 8994 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7953 8995 break; 7954 8996 7955 8997 case 724: 7956 #line 2756 "parser.yy" /* yacc.c:1646 */ 7957 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7958 #line 7959 "Parser/parser.cc" /* yacc.c:1646 */ 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2759 "parser.yy" 9001 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7959 9002 break; 7960 9003 7961 9004 case 725: 7962 #line 2759 "parser.yy" /* yacc.c:1646 */ 7963 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7964 #line 7965 "Parser/parser.cc" /* yacc.c:1646 */ 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2762 "parser.yy" 9008 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7965 9009 break; 7966 9010 7967 9011 case 726: 7968 #line 2761 "parser.yy" /* yacc.c:1646 */ 7969 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7970 #line 7971 "Parser/parser.cc" /* yacc.c:1646 */ 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2764 "parser.yy" 9015 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7971 9016 break; 7972 9017 7973 9018 case 727: 7974 #line 2763 "parser.yy" /* yacc.c:1646 */ 7975 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7976 #line 7977 "Parser/parser.cc" /* yacc.c:1646 */ 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2766 "parser.yy" 9022 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7977 9023 break; 7978 9024 7979 9025 case 728: 7980 #line 2765 "parser.yy" /* yacc.c:1646 */ 7981 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7982 #line 7983 "Parser/parser.cc" /* yacc.c:1646 */ 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2768 "parser.yy" 9029 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7983 9030 break; 7984 9031 7985 9032 case 729: 7986 #line 2767 "parser.yy" /* yacc.c:1646 */ 7987 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7988 #line 7989 "Parser/parser.cc" /* yacc.c:1646 */ 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2770 "parser.yy" 9036 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7989 9037 break; 7990 9038 7991 9039 case 730: 7992 #line 2772 "parser.yy" /* yacc.c:1646 */ 7993 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7994 #line 7995 "Parser/parser.cc" /* yacc.c:1646 */ 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2775 "parser.yy" 9043 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7995 9044 break; 7996 9045 7997 9046 case 731: 7998 #line 2774 "parser.yy" /* yacc.c:1646 */ 7999 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 8000 #line 8001 "Parser/parser.cc" /* yacc.c:1646 */ 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2777 "parser.yy" 9050 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8001 9051 break; 8002 9052 8003 9053 case 732: 8004 #line 2779 "parser.yy" /* yacc.c:1646 */ 8005 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 8006 #line 8007 "Parser/parser.cc" /* yacc.c:1646 */ 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2782 "parser.yy" 9057 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8007 9058 break; 8008 9059 8009 9060 case 733: 8010 #line 2781 "parser.yy" /* yacc.c:1646 */ 8011 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 8012 #line 8013 "Parser/parser.cc" /* yacc.c:1646 */ 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2784 "parser.yy" 9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8013 9065 break; 8014 9066 8015 9067 case 735: 8016 #line 2808 "parser.yy" /* yacc.c:1646 */ 8017 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8018 #line 8019 "Parser/parser.cc" /* yacc.c:1646 */ 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2811 "parser.yy" 9071 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8019 9072 break; 8020 9073 8021 9074 case 739: 8022 #line 2819 "parser.yy" /* yacc.c:1646 */ 8023 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8024 #line 8025 "Parser/parser.cc" /* yacc.c:1646 */ 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2822 "parser.yy" 9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8025 9079 break; 8026 9080 8027 9081 case 740: 8028 #line 2821 "parser.yy" /* yacc.c:1646 */ 8029 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8030 #line 8031 "Parser/parser.cc" /* yacc.c:1646 */ 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2824 "parser.yy" 9085 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8031 9086 break; 8032 9087 8033 9088 case 741: 8034 #line 2823 "parser.yy" /* yacc.c:1646 */ 8035 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8036 #line 8037 "Parser/parser.cc" /* yacc.c:1646 */ 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2826 "parser.yy" 9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8037 9093 break; 8038 9094 8039 9095 case 742: 8040 #line 2825 "parser.yy" /* yacc.c:1646 */ 8041 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8042 #line 8043 "Parser/parser.cc" /* yacc.c:1646 */ 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2828 "parser.yy" 9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8043 9100 break; 8044 9101 8045 9102 case 743: 8046 #line 2827 "parser.yy" /* yacc.c:1646 */ 8047 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8048 #line 8049 "Parser/parser.cc" /* yacc.c:1646 */ 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2830 "parser.yy" 9106 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8049 9107 break; 8050 9108 8051 9109 case 744: 8052 #line 2829 "parser.yy" /* yacc.c:1646 */ 8053 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8054 #line 8055 "Parser/parser.cc" /* yacc.c:1646 */ 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2832 "parser.yy" 9113 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8055 9114 break; 8056 9115 8057 9116 case 745: 8058 #line 2836 "parser.yy" /* yacc.c:1646 */ 8059 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8060 #line 8061 "Parser/parser.cc" /* yacc.c:1646 */ 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2839 "parser.yy" 9120 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8061 9121 break; 8062 9122 8063 9123 case 746: 8064 #line 2838 "parser.yy" /* yacc.c:1646 */ 8065 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8066 #line 8067 "Parser/parser.cc" /* yacc.c:1646 */ 9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2841 "parser.yy" 9127 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8067 9128 break; 8068 9129 8069 9130 case 747: 8070 #line 2840 "parser.yy" /* yacc.c:1646 */ 8071 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8072 #line 8073 "Parser/parser.cc" /* yacc.c:1646 */ 9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2843 "parser.yy" 9134 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8073 9135 break; 8074 9136 8075 9137 case 748: 8076 #line 2842 "parser.yy" /* yacc.c:1646 */ 8077 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8078 #line 8079 "Parser/parser.cc" /* yacc.c:1646 */ 9138 9139 /* Line 1806 of yacc.c */ 9140 #line 2845 "parser.yy" 9141 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8079 9142 break; 8080 9143 8081 9144 case 749: 8082 #line 2844 "parser.yy" /* yacc.c:1646 */ 8083 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8084 #line 8085 "Parser/parser.cc" /* yacc.c:1646 */ 9145 9146 /* Line 1806 of yacc.c */ 9147 #line 2847 "parser.yy" 9148 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 8085 9149 break; 8086 9150 8087 9151 case 750: 8088 #line 2846 "parser.yy" /* yacc.c:1646 */ 8089 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8090 #line 8091 "Parser/parser.cc" /* yacc.c:1646 */ 9152 9153 /* Line 1806 of yacc.c */ 9154 #line 2849 "parser.yy" 9155 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8091 9156 break; 8092 9157 8093 9158 case 751: 8094 #line 2851 "parser.yy" /* yacc.c:1646 */ 8095 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8096 #line 8097 "Parser/parser.cc" /* yacc.c:1646 */ 9159 9160 /* Line 1806 of yacc.c */ 9161 #line 2854 "parser.yy" 9162 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8097 9163 break; 8098 9164 8099 9165 case 752: 8100 #line 2858 "parser.yy" /* yacc.c:1646 */ 8101 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8102 #line 8103 "Parser/parser.cc" /* yacc.c:1646 */ 9166 9167 /* Line 1806 of yacc.c */ 9168 #line 2861 "parser.yy" 9169 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 8103 9170 break; 8104 9171 8105 9172 case 753: 8106 #line 2860 "parser.yy" /* yacc.c:1646 */ 8107 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[-5].decl), (yyvsp[-2].decl), nullptr ); } 8108 #line 8109 "Parser/parser.cc" /* yacc.c:1646 */ 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2863 "parser.yy" 9176 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 8109 9177 break; 8110 9178 8111 9179 case 756: 8112 #line 2884 "parser.yy" /* yacc.c:1646 */ 8113 { (yyval.en) = 0; } 8114 #line 8115 "Parser/parser.cc" /* yacc.c:1646 */ 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2887 "parser.yy" 9183 { (yyval.en) = nullptr; } 8115 9184 break; 8116 9185 8117 9186 case 757: 8118 #line 2886 "parser.yy" /* yacc.c:1646 */ 8119 { (yyval.en) = (yyvsp[0].en); } 8120 #line 8121 "Parser/parser.cc" /* yacc.c:1646 */ 8121 break; 8122 8123 8124 #line 8125 "Parser/parser.cc" /* yacc.c:1646 */ 9187 9188 /* Line 1806 of yacc.c */ 9189 #line 2889 "parser.yy" 9190 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9191 break; 9192 9193 9194 9195 /* Line 1806 of yacc.c */ 9196 #line 9197 "Parser/parser.cc" 8125 9197 default: break; 8126 9198 } … … 8144 9216 *++yyvsp = yyval; 8145 9217 8146 /* Now 'shift' the result of the reduction. Determine what state9218 /* Now `shift' the result of the reduction. Determine what state 8147 9219 that goes to, based on the state we popped back to and the rule 8148 9220 number reduced by. */ … … 8159 9231 8160 9232 8161 /*------------------------------------ --.8162 | yyerrlab -- here on detecting error .|8163 `------------------------------------ --*/9233 /*------------------------------------. 9234 | yyerrlab -- here on detecting error | 9235 `------------------------------------*/ 8164 9236 yyerrlab: 8165 9237 /* Make sure we have latest lookahead translation. See comments at … … 8212 9284 { 8213 9285 /* If just tried and failed to reuse lookahead token after an 8214 9286 error, discard it. */ 8215 9287 8216 9288 if (yychar <= YYEOF) 8217 8218 8219 8220 8221 9289 { 9290 /* Return failure if at end of input. */ 9291 if (yychar == YYEOF) 9292 YYABORT; 9293 } 8222 9294 else 8223 8224 8225 8226 8227 9295 { 9296 yydestruct ("Error: discarding", 9297 yytoken, &yylval); 9298 yychar = YYEMPTY; 9299 } 8228 9300 } 8229 9301 … … 8244 9316 goto yyerrorlab; 8245 9317 8246 /* Do not reclaim the symbols of the rule wh oseaction triggered9318 /* Do not reclaim the symbols of the rule which action triggered 8247 9319 this YYERROR. */ 8248 9320 YYPOPSTACK (yylen); … … 8257 9329 `-------------------------------------------------------------*/ 8258 9330 yyerrlab1: 8259 yyerrstatus = 3; 9331 yyerrstatus = 3; /* Each real token shifted decrements this. */ 8260 9332 8261 9333 for (;;) … … 8263 9335 yyn = yypact[yystate]; 8264 9336 if (!yypact_value_is_default (yyn)) 8265 8266 8267 8268 8269 8270 8271 8272 8273 9337 { 9338 yyn += YYTERROR; 9339 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 9340 { 9341 yyn = yytable[yyn]; 9342 if (0 < yyn) 9343 break; 9344 } 9345 } 8274 9346 8275 9347 /* Pop the current state because it cannot handle the error token. */ 8276 9348 if (yyssp == yyss) 8277 9349 YYABORT; 8278 9350 8279 9351 8280 9352 yydestruct ("Error: popping", 8281 9353 yystos[yystate], yyvsp); 8282 9354 YYPOPSTACK (1); 8283 9355 yystate = *yyssp; … … 8285 9357 } 8286 9358 8287 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN8288 9359 *++yyvsp = yylval; 8289 YY_IGNORE_MAYBE_UNINITIALIZED_END8290 9360 8291 9361 … … 8311 9381 goto yyreturn; 8312 9382 8313 #if !defined yyoverflow|| YYERROR_VERBOSE9383 #if !defined(yyoverflow) || YYERROR_VERBOSE 8314 9384 /*-------------------------------------------------. 8315 9385 | yyexhaustedlab -- memory exhaustion comes here. | … … 8330 9400 yytoken, &yylval); 8331 9401 } 8332 /* Do not reclaim the symbols of the rule wh oseaction triggered9402 /* Do not reclaim the symbols of the rule which action triggered 8333 9403 this YYABORT or YYACCEPT. */ 8334 9404 YYPOPSTACK (yylen); … … 8337 9407 { 8338 9408 yydestruct ("Cleanup: popping", 8339 9409 yystos[*yyssp], yyvsp); 8340 9410 YYPOPSTACK (1); 8341 9411 } … … 8348 9418 YYSTACK_FREE (yymsg); 8349 9419 #endif 8350 return yyresult; 9420 /* Make sure YYID is used. */ 9421 return YYID (yyresult); 8351 9422 } 8352 #line 2889 "parser.yy" /* yacc.c:1906 */ 9423 9424 9425 9426 /* Line 2067 of yacc.c */ 9427 #line 2892 "parser.yy" 8353 9428 8354 9429 // ----end of grammar---- … … 8369 9444 // compile-command: "make install" // 8370 9445 // End: // 9446 -
src/Parser/parser.h
r2ee5426 r58dd019 1 /* A Bison parser, made by GNU Bison 3.0.2. */1 /* A Bison parser, made by GNU Bison 2.5. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2013Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ 32 32 33 #ifndef YY_YY_PARSER_PARSER_H_INCLUDED 34 # define YY_YY_PARSER_PARSER_H_INCLUDED 35 /* Debug traces. */ 36 #ifndef YYDEBUG 37 # define YYDEBUG 1 38 #endif 39 #if YYDEBUG 40 extern int yydebug; 41 #endif 42 43 /* Token type. */ 33 34 /* Tokens. */ 44 35 #ifndef YYTOKENTYPE 45 36 # define YYTOKENTYPE 46 enum yytokentype 47 { 48 TYPEDEF = 258, 49 AUTO = 259, 50 EXTERN = 260, 51 REGISTER = 261, 52 STATIC = 262, 53 INLINE = 263, 54 FORTRAN = 264, 55 CONST = 265, 56 VOLATILE = 266, 57 RESTRICT = 267, 58 FORALL = 268, 59 LVALUE = 269, 60 VOID = 270, 61 CHAR = 271, 62 SHORT = 272, 63 INT = 273, 64 LONG = 274, 65 FLOAT = 275, 66 DOUBLE = 276, 67 SIGNED = 277, 68 UNSIGNED = 278, 69 ZERO_T = 279, 70 ONE_T = 280, 71 VALIST = 281, 72 BOOL = 282, 73 COMPLEX = 283, 74 IMAGINARY = 284, 75 TYPEOF = 285, 76 LABEL = 286, 77 ENUM = 287, 78 STRUCT = 288, 79 UNION = 289, 80 OTYPE = 290, 81 FTYPE = 291, 82 DTYPE = 292, 83 TRAIT = 293, 84 SIZEOF = 294, 85 OFFSETOF = 295, 86 ATTRIBUTE = 296, 87 EXTENSION = 297, 88 IF = 298, 89 ELSE = 299, 90 SWITCH = 300, 91 CASE = 301, 92 DEFAULT = 302, 93 DO = 303, 94 WHILE = 304, 95 FOR = 305, 96 BREAK = 306, 97 CONTINUE = 307, 98 GOTO = 308, 99 RETURN = 309, 100 CHOOSE = 310, 101 DISABLE = 311, 102 ENABLE = 312, 103 FALLTHRU = 313, 104 TRY = 314, 105 CATCH = 315, 106 CATCHRESUME = 316, 107 FINALLY = 317, 108 THROW = 318, 109 THROWRESUME = 319, 110 AT = 320, 111 ASM = 321, 112 ALIGNAS = 322, 113 ALIGNOF = 323, 114 ATOMIC = 324, 115 GENERIC = 325, 116 NORETURN = 326, 117 STATICASSERT = 327, 118 THREADLOCAL = 328, 119 IDENTIFIER = 329, 120 QUOTED_IDENTIFIER = 330, 121 TYPEDEFname = 331, 122 TYPEGENname = 332, 123 ATTR_IDENTIFIER = 333, 124 ATTR_TYPEDEFname = 334, 125 ATTR_TYPEGENname = 335, 126 INTEGERconstant = 336, 127 CHARACTERconstant = 337, 128 STRINGliteral = 338, 129 REALDECIMALconstant = 339, 130 REALFRACTIONconstant = 340, 131 FLOATINGconstant = 341, 132 ZERO = 342, 133 ONE = 343, 134 ARROW = 344, 135 ICR = 345, 136 DECR = 346, 137 LS = 347, 138 RS = 348, 139 LE = 349, 140 GE = 350, 141 EQ = 351, 142 NE = 352, 143 ANDAND = 353, 144 OROR = 354, 145 ELLIPSIS = 355, 146 MULTassign = 356, 147 DIVassign = 357, 148 MODassign = 358, 149 PLUSassign = 359, 150 MINUSassign = 360, 151 LSassign = 361, 152 RSassign = 362, 153 ANDassign = 363, 154 ERassign = 364, 155 ORassign = 365, 156 ATassign = 366, 157 THEN = 367 158 }; 37 /* Put the tokens into the symbol table, so that GDB and other debuggers 38 know about them. */ 39 enum yytokentype { 40 TYPEDEF = 258, 41 AUTO = 259, 42 EXTERN = 260, 43 REGISTER = 261, 44 STATIC = 262, 45 INLINE = 263, 46 FORTRAN = 264, 47 CONST = 265, 48 VOLATILE = 266, 49 RESTRICT = 267, 50 FORALL = 268, 51 LVALUE = 269, 52 VOID = 270, 53 CHAR = 271, 54 SHORT = 272, 55 INT = 273, 56 LONG = 274, 57 FLOAT = 275, 58 DOUBLE = 276, 59 SIGNED = 277, 60 UNSIGNED = 278, 61 ZERO_T = 279, 62 ONE_T = 280, 63 VALIST = 281, 64 BOOL = 282, 65 COMPLEX = 283, 66 IMAGINARY = 284, 67 TYPEOF = 285, 68 LABEL = 286, 69 ENUM = 287, 70 STRUCT = 288, 71 UNION = 289, 72 OTYPE = 290, 73 FTYPE = 291, 74 DTYPE = 292, 75 TRAIT = 293, 76 SIZEOF = 294, 77 OFFSETOF = 295, 78 ATTRIBUTE = 296, 79 EXTENSION = 297, 80 IF = 298, 81 ELSE = 299, 82 SWITCH = 300, 83 CASE = 301, 84 DEFAULT = 302, 85 DO = 303, 86 WHILE = 304, 87 FOR = 305, 88 BREAK = 306, 89 CONTINUE = 307, 90 GOTO = 308, 91 RETURN = 309, 92 CHOOSE = 310, 93 DISABLE = 311, 94 ENABLE = 312, 95 FALLTHRU = 313, 96 TRY = 314, 97 CATCH = 315, 98 CATCHRESUME = 316, 99 FINALLY = 317, 100 THROW = 318, 101 THROWRESUME = 319, 102 AT = 320, 103 ASM = 321, 104 ALIGNAS = 322, 105 ALIGNOF = 323, 106 ATOMIC = 324, 107 GENERIC = 325, 108 NORETURN = 326, 109 STATICASSERT = 327, 110 THREADLOCAL = 328, 111 IDENTIFIER = 329, 112 QUOTED_IDENTIFIER = 330, 113 TYPEDEFname = 331, 114 TYPEGENname = 332, 115 ATTR_IDENTIFIER = 333, 116 ATTR_TYPEDEFname = 334, 117 ATTR_TYPEGENname = 335, 118 INTEGERconstant = 336, 119 CHARACTERconstant = 337, 120 STRINGliteral = 338, 121 REALDECIMALconstant = 339, 122 REALFRACTIONconstant = 340, 123 FLOATINGconstant = 341, 124 ZERO = 342, 125 ONE = 343, 126 ARROW = 344, 127 ICR = 345, 128 DECR = 346, 129 LS = 347, 130 RS = 348, 131 LE = 349, 132 GE = 350, 133 EQ = 351, 134 NE = 352, 135 ANDAND = 353, 136 OROR = 354, 137 ELLIPSIS = 355, 138 MULTassign = 356, 139 DIVassign = 357, 140 MODassign = 358, 141 PLUSassign = 359, 142 MINUSassign = 360, 143 LSassign = 361, 144 RSassign = 362, 145 ANDassign = 363, 146 ERassign = 364, 147 ORassign = 365, 148 ATassign = 366, 149 THEN = 367 150 }; 159 151 #endif 160 152 /* Tokens. */ … … 270 262 #define THEN 367 271 263 272 /* Value type. */ 264 265 266 273 267 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 274 typedef union YYSTYPE YYSTYPE; 275 union YYSTYPE 268 typedef union YYSTYPE 276 269 { 277 #line 120 "parser.yy" /* yacc.c:1909 */ 270 271 /* Line 2068 of yacc.c */ 272 #line 120 "parser.yy" 278 273 279 274 Token tok; … … 292 287 bool flag; 293 288 294 #line 295 "Parser/parser.h" /* yacc.c:1909 */ 295 }; 289 290 291 /* Line 2068 of yacc.c */ 292 #line 293 "Parser/parser.h" 293 } YYSTYPE; 296 294 # define YYSTYPE_IS_TRIVIAL 1 295 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 297 296 # define YYSTYPE_IS_DECLARED 1 298 297 #endif 299 298 300 301 299 extern YYSTYPE yylval; 302 300 303 int yyparse (void); 304 305 #endif /* !YY_YY_PARSER_PARSER_H_INCLUDED */ 301 -
src/Parser/parser.yy
r2ee5426 r58dd019 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Nov 29 11:35:52 201613 // Update Count : 20 6912 // Last Modified On : Tue Dec 13 14:14:52 2016 13 // Update Count : 2081 14 14 // 15 15 … … 153 153 %type<fctl> for_control_expression 154 154 %type<en> subrange 155 %type<constant> asm_name_opt 155 156 %type<en> asm_operands_opt asm_operands_list asm_operand 156 157 %type<label> label_list … … 412 413 argument_expression: 413 414 // empty 414 { $$ = 0; }// use default argument415 { $$ = nullptr; } // use default argument 415 416 | assignment_expression 416 417 ; … … 684 685 comma_expression_opt: 685 686 // empty 686 { $$ = 0; }687 { $$ = nullptr; } 687 688 | comma_expression 688 689 ; … … 818 819 switch_clause_list_opt: // CFA 819 820 // empty 820 { $$ = 0; }821 { $$ = nullptr; } 821 822 | switch_clause_list 822 823 ; … … 831 832 choose_clause_list_opt: // CFA 832 833 // empty 833 { $$ = 0; }834 { $$ = nullptr; } 834 835 | choose_clause_list 835 836 ; … … 854 855 fall_through: // CFA 855 856 FALLTHRU 856 { $$ = 0; }857 { $$ = nullptr; } 857 858 | FALLTHRU ';' 858 { $$ = 0; }859 { $$ = nullptr; } 859 860 ; 860 861 … … 990 991 asm_operands_opt: // GCC 991 992 // empty 992 { $$ = 0; }// use default argument993 { $$ = nullptr; } // use default argument 993 994 | asm_operands_list 994 995 ; … … 1009 1010 asm_clobbers_list_opt: // GCC 1010 1011 // empty 1011 { $$ = 0; }// use default argument1012 { $$ = nullptr; } // use default argument 1012 1013 | string_literal 1013 1014 { $$ = new ExpressionNode( $1 ); } … … 1033 1034 declaration_list_opt: // used at beginning of switch statement 1034 1035 pop 1035 { $$ = 0; }1036 { $$ = nullptr; } 1036 1037 | declaration_list 1037 1038 ; … … 1045 1046 old_declaration_list_opt: // used to declare parameter types in K&R style functions 1046 1047 pop 1047 { $$ = 0; }1048 { $$ = nullptr; } 1048 1049 | old_declaration_list 1049 1050 ; … … 1120 1121 { 1121 1122 typedefTable.setNextIdentifier( *$2 ); 1122 $$ = $1->addName( $2 ) ;1123 $$ = $1->addName( $2 )->addAsmName( $3 ); 1123 1124 } 1124 1125 | new_abstract_tuple identifier_or_type_name asm_name_opt 1125 1126 { 1126 1127 typedefTable.setNextIdentifier( *$2 ); 1127 $$ = $1->addName( $2 ) ;1128 $$ = $1->addName( $2 )->addAsmName( $3 ); 1128 1129 } 1129 1130 | type_qualifier_list new_abstract_tuple identifier_or_type_name asm_name_opt 1130 1131 { 1131 1132 typedefTable.setNextIdentifier( *$3 ); 1132 $$ = $2->addQualifiers( $1 )->addName( $3 ) ;1133 $$ = $2->addQualifiers( $1 )->addName( $3 )->addAsmName( $4 ); 1133 1134 } 1134 1135 ; … … 1281 1282 { 1282 1283 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1283 $$ = ( $2->addType( $1 ))->add Initializer( $4 );1284 $$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 ); 1284 1285 } 1285 1286 | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt 1286 1287 { 1287 1288 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1288 $$ = $1->appendList( $1->cloneBaseType( $4->add Initializer( $6 ) ) );1289 $$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) ); 1289 1290 } 1290 1291 ; … … 1306 1307 type_qualifier_list_opt: // GCC, used in asm_statement 1307 1308 // empty 1308 { $$ = 0; }1309 { $$ = nullptr; } 1309 1310 | type_qualifier_list 1310 1311 ; … … 1532 1533 field_declaration_list: 1533 1534 // empty 1534 { $$ = 0; }1535 { $$ = nullptr; } 1535 1536 | field_declaration_list field_declaration 1536 1537 { $$ = $1 != 0 ? $1->appendList( $2 ) : $2; } … … 1583 1584 bit_subrange_size_opt: 1584 1585 // empty 1585 { $$ = 0; }1586 { $$ = nullptr; } 1586 1587 | bit_subrange_size 1587 1588 { $$ = $1; } … … 1620 1621 enumerator_value_opt: 1621 1622 // empty 1622 { $$ = 0; }1623 { $$ = nullptr; } 1623 1624 | '=' constant_expression 1624 1625 { $$ = $2; } … … 1629 1630 new_parameter_type_list_opt: // CFA 1630 1631 // empty 1631 { $$ = 0; }1632 { $$ = nullptr; } 1632 1633 | new_parameter_type_list 1633 1634 ; … … 1664 1665 parameter_type_list_opt: 1665 1666 // empty 1666 { $$ = 0; }1667 { $$ = nullptr; } 1667 1668 | parameter_type_list 1668 1669 ; … … 1773 1774 initializer_opt: 1774 1775 // empty 1775 { $$ = 0; }1776 { $$ = nullptr; } 1776 1777 | '=' initializer 1777 1778 { $$ = $2; } … … 1787 1788 initializer_list: 1788 1789 // empty 1789 { $$ = 0; }1790 { $$ = nullptr; } 1790 1791 | initializer 1791 1792 | designation initializer { $$ = $2->set_designators( $1 ); } … … 1898 1899 assertion_list_opt: // CFA 1899 1900 // empty 1900 { $$ = 0; }1901 { $$ = nullptr; } 1901 1902 | assertion_list_opt assertion 1902 1903 { $$ = $1 != 0 ? $1->appendList( $2 ) : $2; } … … 1912 1913 { $$ = $4; } 1913 1914 | '|' '(' push type_parameter_list pop ')' '{' push trait_declaration_list '}' '(' type_name_list ')' 1914 { $$ = 0; }1915 { $$ = nullptr; } 1915 1916 ; 1916 1917 … … 2032 2033 external_definition_list_opt: 2033 2034 // empty 2034 { $$ = 0; }2035 { $$ = nullptr; } 2035 2036 | external_definition_list 2036 2037 ; … … 2155 2156 asm_name_opt: // GCC 2156 2157 // empty 2157 | ASM '(' string_literal_list ')' attribute_list_opt { delete $3; } // FIX ME: unimplemented 2158 { $$ = nullptr; } 2159 | ASM '(' string_literal ')' attribute_list_opt 2160 { $$ = $3; } 2158 2161 ; 2159 2162 2160 2163 attribute_list_opt: // GCC 2161 2164 // empty 2162 { $$ = 0; }2165 { $$ = nullptr; } 2163 2166 | attribute_list 2164 2167 ; … … 2173 2176 ATTRIBUTE '(' '(' attribute_parameter_list ')' ')' 2174 2177 // { $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 2175 { $$ = 0; }2178 { $$ = nullptr; } 2176 2179 ; 2177 2180 … … 2882 2885 assignment_opt: 2883 2886 // empty 2884 { $$ = 0; }2887 { $$ = nullptr; } 2885 2888 | '=' assignment_expression 2886 2889 { $$ = $2; } -
src/SynTree/Declaration.h
r2ee5426 r58dd019 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 18 23:50:24201613 // Update Count : 4 012 // Last Modified On : Tue Dec 13 13:37:33 2016 13 // Update Count : 49 14 14 // 15 15 … … 69 69 70 70 std::string get_mangleName() const { return mangleName; } 71 void set_mangleName( std::string newValue ) { mangleName = newValue; }71 DeclarationWithType * set_mangleName( std::string newValue ) { mangleName = newValue; return this; } 72 72 73 73 std::string get_scopedMangleName() const { return mangleName + "_" + std::to_string(scopeLevel); } 74 74 75 75 int get_scopeLevel() const { return scopeLevel; } 76 void set_scopeLevel( int newValue ) { scopeLevel = newValue; } 76 DeclarationWithType * set_scopeLevel( int newValue ) { scopeLevel = newValue; return this; } 77 78 ConstantExpr *get_asmName() const { return asmName; } 79 DeclarationWithType * set_asmName( ConstantExpr *newValue ) { asmName = newValue; return this; } 77 80 78 81 std::list< Attribute * >& get_attributes() { return attributes; } … … 87 90 // this represents the type with all types and typedefs expanded it is generated by SymTab::Validate::Pass2 88 91 std::string mangleName; 89 // need to remember the scope level at which the variable was declared, so that 90 // shadowed identifiers can be accessed 92 // need to remember the scope level at which the variable was declared, so that shadowed identifiers can be accessed 91 93 int scopeLevel = 0; 92 94 95 ConstantExpr *asmName; 93 96 std::list< Attribute * > attributes; 94 97 }; … … 106 109 Initializer *get_init() const { return init; } 107 110 void set_init( Initializer *newValue ) { init = newValue; } 111 108 112 Expression *get_bitfieldWidth() const { return bitfieldWidth; } 109 113 void set_bitfieldWidth( Expression *newValue ) { bitfieldWidth = newValue; } -
src/SynTree/DeclarationWithType.cc
r2ee5426 r58dd019 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 18 23:50:41201613 // Update Count : 412 // Last Modified On : Tue Dec 13 14:49:43 2016 13 // Update Count : 7 14 14 // 15 15 … … 20 20 21 21 DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes ) 22 : Declaration( name, sc, linkage), attributes( attributes ) {22 : Declaration( name, sc, linkage ), asmName( nullptr ), attributes( attributes ) { 23 23 } 24 24 … … 26 26 : Declaration( other ), mangleName( other.mangleName ), scopeLevel( other.scopeLevel ) { 27 27 cloneAll( other.attributes, attributes ); 28 asmName = maybeClone( other.asmName ); 28 29 } 29 30 30 31 DeclarationWithType::~DeclarationWithType() { 31 32 deleteAll( attributes ); 33 delete asmName; 32 34 } 33 35 -
src/tests/.expect/32/gccExtensions.txt
r2ee5426 r58dd019 5 5 extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 extern int __x__i_1 ;7 extern int __x__i_1 asm ( "xx" ); 8 8 int main(int __argc__i_1, const char **__argv__PPCc_1){ 9 9 asm ( "nop" : : : ); 10 10 asm ( "nop" : : : ); 11 11 asm ( "nop" : : : ); 12 static int __y__i_2 ;13 static int *__z__Pi_2 ;12 static int __y__i_2 asm ( "yy" ); 13 static int *__z__Pi_2 asm ( "zz" ); 14 14 int __src__i_2; 15 15 int __dst__i_2; -
src/tests/.expect/64/gccExtensions.txt
r2ee5426 r58dd019 5 5 extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 extern int __x__i_1 ;7 extern int __x__i_1 asm ( "xx" ); 8 8 int main(int __argc__i_1, const char **__argv__PPCc_1){ 9 9 asm ( "nop" : : : ); 10 10 asm ( "nop" : : : ); 11 11 asm ( "nop" : : : ); 12 static int __y__i_2 ;13 static int *__z__Pi_2 ;12 static int __y__i_2 asm ( "yy" ); 13 static int *__z__Pi_2 asm ( "zz" ); 14 14 int __src__i_2; 15 15 int __dst__i_2;
Note: See TracChangeset
for help on using the changeset viewer.