Changeset de62360d
- Timestamp:
- Jun 24, 2015, 4:04:19 PM (10 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- 94e0864d
- Parents:
- a1d5d2a
- Location:
- src
- Files:
-
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
src/CodeGen/CodeGenerator.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 07:12:27 201513 // Update Count : 1 2912 // Last Modified On : Tue Jun 23 16:16:57 2015 13 // Update Count : 133 14 14 // 15 15 … … 69 69 if ( functionDecl->get_isInline() ) { 70 70 output << "inline "; 71 } // if 72 if ( functionDecl->get_isNoreturn() ) { 73 output << "_Noreturn "; 71 74 } // if 72 75 output << genType( functionDecl->get_functionType(), mangleName( functionDecl ) ); … … 295 298 case OT_PREFIX: 296 299 case OT_PREFIXASSIGN: 300 case OT_LABELADDRESS: 297 301 assert( untypedExpr->get_args().size() == 1 ); 298 302 output << "("; … … 318 322 output << ")"; 319 323 break; 320 324 321 325 case OT_CONSTANT: 322 326 // there are no intrinsic definitions of 0 or 1 as functions … … 634 638 break; 635 639 case DeclarationNode::Inline: 636 // handled as special via isInline flag (FIX)640 output << "inline "; 637 641 break; 638 642 case DeclarationNode::Fortran: 639 // not handled640 643 output << "fortran "; 641 644 break; 642 645 case DeclarationNode::Noreturn: 643 // not handled644 646 output << "_Noreturn "; 645 647 break; 646 648 case DeclarationNode::Threadlocal: 647 // not handled648 649 output << "_Thread_local "; 649 650 break; -
src/CodeGen/OperatorTable.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 23:42:07201513 // Update Count : 212 // Last Modified On : Tue Jun 23 17:41:14 2015 13 // Update Count : 5 14 14 // 15 15 … … 20 20 namespace { 21 21 const OperatorInfo tableValues[] = { 22 { "?[?]", "", "_operator_index", OT_INDEX},23 { "?()", "", "_operator_call", OT_CALL},24 { "?++", "++", "_operator_postincr", OT_POSTFIXASSIGN },25 { "?--", "--", "_operator_postdecr", OT_POSTFIXASSIGN },26 { "*?", "*", "_operator_deref", OT_PREFIX},27 { "+?", "+", "_operator_unaryplus", OT_PREFIX},28 { "-?", "-", "_operator_unaryminus", OT_PREFIX},29 { "~?", "~", "_operator_bitnot", OT_PREFIX},30 { "!?", "!", "_operator_lognot", OT_PREFIX},31 { "++?", "++", "_operator_preincr", OT_PREFIXASSIGN },32 { "--?", "--", "_operator_predecr", OT_PREFIXASSIGN },33 { "?*?", "*", "_operator_multiply", OT_INFIX},34 { "?/?", "/", "_operator_divide", OT_INFIX},35 { "?%?", "%", "_operator_modulus", OT_INFIX},36 { "?+?", "+", "_operator_add", OT_INFIX},37 { "?-?", "-", "_operator_subtract", OT_INFIX},38 { "?<<?", "<<", "_operator_shiftleft", OT_INFIX},39 { "?>>?", ">>", "_operator_shiftright", OT_INFIX},40 { "?<?", "<", "_operator_less", OT_INFIX},41 { "?>?", ">", "_operator_greater", OT_INFIX},42 { "?<=?", "<=", "_operator_lessequal", OT_INFIX},43 { "?>=?", ">=", "_operator_greaterequal", OT_INFIX},44 { "?==?", "==", "_operator_equal", OT_INFIX},45 { "?!=?", "!=", "_operator_notequal", OT_INFIX},46 { "?&?", "&", "_operator_bitand", OT_INFIX},47 { "?^?", "^", "_operator_bitxor", OT_INFIX},48 { "?|?", "|", "_operator_bitor", OT_INFIX},49 { "?=?", "=", "_operator_assign", OT_INFIXASSIGN },50 { "?*=?", "*=", "_operator_multassign", OT_INFIXASSIGN },51 { "?/=?", "/=", "_operator_divassign", OT_INFIXASSIGN },52 { "?%=?", "%=", "_operator_modassign", OT_INFIXASSIGN },53 { "?+=?", "+=", "_operator_addassign", OT_INFIXASSIGN },54 { "?-=?", "-=", "_operator_subassign", OT_INFIXASSIGN },22 { "?[?]", "", "_operator_index", OT_INDEX }, 23 { "?()", "", "_operator_call", OT_CALL }, 24 { "?++", "++", "_operator_postincr", OT_POSTFIXASSIGN }, 25 { "?--", "--", "_operator_postdecr", OT_POSTFIXASSIGN }, 26 { "*?", "*", "_operator_deref", OT_PREFIX }, 27 { "+?", "+", "_operator_unaryplus", OT_PREFIX }, 28 { "-?", "-", "_operator_unaryminus", OT_PREFIX }, 29 { "~?", "~", "_operator_bitnot", OT_PREFIX }, 30 { "!?", "!", "_operator_lognot", OT_PREFIX }, 31 { "++?", "++", "_operator_preincr", OT_PREFIXASSIGN }, 32 { "--?", "--", "_operator_predecr", OT_PREFIXASSIGN }, 33 { "?*?", "*", "_operator_multiply", OT_INFIX }, 34 { "?/?", "/", "_operator_divide", OT_INFIX }, 35 { "?%?", "%", "_operator_modulus", OT_INFIX }, 36 { "?+?", "+", "_operator_add", OT_INFIX }, 37 { "?-?", "-", "_operator_subtract", OT_INFIX }, 38 { "?<<?", "<<", "_operator_shiftleft", OT_INFIX }, 39 { "?>>?", ">>", "_operator_shiftright", OT_INFIX }, 40 { "?<?", "<", "_operator_less", OT_INFIX }, 41 { "?>?", ">", "_operator_greater", OT_INFIX }, 42 { "?<=?", "<=", "_operator_lessequal", OT_INFIX }, 43 { "?>=?", ">=", "_operator_greaterequal", OT_INFIX }, 44 { "?==?", "==", "_operator_equal", OT_INFIX }, 45 { "?!=?", "!=", "_operator_notequal", OT_INFIX }, 46 { "?&?", "&", "_operator_bitand", OT_INFIX }, 47 { "?^?", "^", "_operator_bitxor", OT_INFIX }, 48 { "?|?", "|", "_operator_bitor", OT_INFIX }, 49 { "?=?", "=", "_operator_assign", OT_INFIXASSIGN }, 50 { "?*=?", "*=", "_operator_multassign", OT_INFIXASSIGN }, 51 { "?/=?", "/=", "_operator_divassign", OT_INFIXASSIGN }, 52 { "?%=?", "%=", "_operator_modassign", OT_INFIXASSIGN }, 53 { "?+=?", "+=", "_operator_addassign", OT_INFIXASSIGN }, 54 { "?-=?", "-=", "_operator_subassign", OT_INFIXASSIGN }, 55 55 { "?<<=?", "<<=", "_operator_shiftleftassign", OT_INFIXASSIGN }, 56 56 { "?>>=?", ">>=", "_operator_shiftrightassign", OT_INFIXASSIGN }, 57 { "?&=?", "&=", "_operator_bitandassign", OT_INFIXASSIGN }, 58 { "?^=?", "^=", "_operator_bitxorassign", OT_INFIXASSIGN }, 59 { "?|=?", "|=", "_operator_bitorassign", OT_INFIXASSIGN }, 60 { "0", "0", "_constant_zero", OT_CONSTANT }, 61 { "1", "1", "_constant_one", OT_CONSTANT } 57 { "?&=?", "&=", "_operator_bitandassign", OT_INFIXASSIGN }, 58 { "?^=?", "^=", "_operator_bitxorassign", OT_INFIXASSIGN }, 59 { "?|=?", "|=", "_operator_bitorassign", OT_INFIXASSIGN }, 60 { "&&", "&&", "&&", OT_LABELADDRESS }, 61 { "0", "0", "_constant_zero", OT_CONSTANT }, 62 { "1", "1", "_constant_one", OT_CONSTANT } 62 63 }; 63 64 -
src/CodeGen/OperatorTable.h
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 23:43:07 201513 // Update Count : 212 // Last Modified On : Tue Jun 23 16:09:27 2015 13 // Update Count : 3 14 14 // 15 15 … … 29 29 OT_POSTFIXASSIGN, 30 30 OT_INFIXASSIGN, 31 OT_LABELADDRESS, 31 32 OT_CONSTANT 32 33 }; -
src/ControlStruct/LabelFixer.cc
ra1d5d2a rde62360d 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue Jun 02 15:30:32201513 // Update Count : 9 311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jun 23 12:42:23 2015 13 // Update Count : 96 14 14 // 15 15 … … 137 137 Label undef = from.back()->get_target(); 138 138 throw SemanticError ( "'" + undef + "' label not defined"); 139 } 139 } // if 140 140 141 // generate a new label, and attach it to its defining statement 142 // as the only label on that statement 143 Label finalLabel = generator->newLabel(); 141 // generate a new label, and attach it to its defining statement as the only label on that statement 142 Label finalLabel = generator->newLabel( to->get_labels().back() ); 144 143 entry->set_label( finalLabel ); 145 144 -
src/ControlStruct/LabelGenerator.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 8 14:45:07201513 // Update Count : 1 212 // Last Modified On : Tue Jun 23 12:18:34 2015 13 // Update Count : 13 14 14 // 15 15 … … 29 29 } 30 30 31 Label LabelGenerator::newLabel( std::string suffix) {31 Label LabelGenerator::newLabel( std::string suffix ) { 32 32 std::ostringstream os; 33 33 os << "__L" << current++ << "__" << suffix; -
src/GenPoly/Box.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 0 7:13:46201513 // Update Count : 312 // Last Modified On : Sat Jun 13 09:12:19 2015 13 // Update Count : 4 14 14 // 15 15 … … 524 524 adapterBody->get_kids().push_back( bodyStmt ); 525 525 std::string adapterName = makeAdapterName( mangleName ); 526 return new FunctionDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false );526 return new FunctionDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false, false ); 527 527 } 528 528 -
src/GenPoly/Specialize.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 07:14:42201513 // Update Count : 512 // Last Modified On : Sat Jun 13 15:54:07 2015 13 // Update Count : 6 14 14 // 15 15 … … 97 97 newEnv.applyFree( newType ); 98 98 } // if 99 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false );99 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false, false ); 100 100 thunkFunc->fixUniqueId(); 101 101 -
src/Parser/DeclarationNode.cc
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 08:02:03201513 // Update Count : 5812 // Last Modified On : Wed Jun 24 15:29:19 2015 13 // Update Count : 86 14 14 // 15 15 … … 24 24 #include "SynTree/Declaration.h" 25 25 #include "SynTree/Expression.h" 26 27 #include "Parser.h" 28 #include "TypedefTable.h" 29 extern TypedefTable typedefTable; 26 30 27 31 using namespace std; … … 177 181 newnode->type->aggregate->name = DeclarationNode::anonymous.newName(); 178 182 } // if 183 184 // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified by 185 // "struct" 186 typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD ); 187 DeclarationNode *typedf = new DeclarationNode; 188 typedf->name = newnode->type->aggregate->name; 189 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() ); 190 179 191 newnode->type->aggregate->params = formals; 180 192 newnode->type->aggregate->actuals = actuals; … … 191 203 newnode->type->enumeration->name = DeclarationNode::anonymous.newName(); 192 204 } // if 205 206 // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be qualified 207 // by "enum" 208 typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD ); 209 DeclarationNode *typedf = new DeclarationNode; 210 typedf->name = newnode->type->enumeration->name; 211 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() ); 212 193 213 newnode->type->enumeration->constants = constants; 194 214 return newnode; … … 832 852 Declaration *DeclarationNode::build() const { 833 853 if ( type ) { 834 Declaration *newDecl = type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), build Inline(), linkage, maybeBuild< Initializer >(initializer) );854 Declaration *newDecl = type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), buildFuncSpecifier( Inline ), buildFuncSpecifier( Noreturn ), linkage, maybeBuild< Initializer >(initializer) ); 835 855 return newDecl; 836 856 } // if 837 if ( ! build Inline() ) {857 if ( ! buildFuncSpecifier( Inline ) && ! buildFuncSpecifier( Noreturn ) ) { 838 858 return new ObjectDecl( name, buildStorageClass(), linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ); 839 859 } // if 840 throw SemanticError( "invalid inline specificationin declaration of ", this );860 throw SemanticError( "invalid function specifier in declaration of ", this ); 841 861 } 842 862 … … 879 899 for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) { 880 900 if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers 881 882 901 if ( ret != DeclarationNode::NoStorageClass ) { // already have a valid storage class ? 883 902 throw SemanticError( "invalid combination of storage classes in declaration of ", this ); … … 888 907 } 889 908 890 bool DeclarationNode::build Inline() const {891 std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), DeclarationNode::Inline);892 if ( first == storageClasses.end() ) return false; 893 std::list< DeclarationNode::StorageClass >::const_iterator next = std::find( ++first, storageClasses.end(), DeclarationNode::Inline );894 if ( next == storageClasses.end() ) return true;895 throw SemanticError( "duplicate inline specificationin declaration of ", this );909 bool DeclarationNode::buildFuncSpecifier( DeclarationNode::StorageClass key ) const { 910 std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key ); 911 if ( first == storageClasses.end() ) return false; // not found 912 first = std::find( ++first, storageClasses.end(), key ); // found 913 if ( first == storageClasses.end() ) return true; // not found again 914 throw SemanticError( "duplicate function specifier in declaration of ", this ); 896 915 } 897 916 -
src/Parser/ExpressionNode.cc
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 8 17:33:40201513 // Update Count : 1 4712 // Last Modified On : Tue Jun 23 17:46:23 2015 13 // Update Count : 152 14 14 // 15 15 … … 364 364 // the names that users use to define operator functions 365 365 static const char *opFuncName[] = { 366 "", "","",367 "", 368 // 369 "", "", "", "", "?+?", "?-?", "?*?", "?/?", "?%?", "","",370 "?|?", "?&?", "?^?", "", "?<<?", "?>>?", "?<?", "?>?","?<=?",371 "?>=?", "?==?", "?!=?", "?=?", "?*=?", "?/=?", "?%=?", "?+=?","?-=?",372 "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", "?[?]", "","","Range",373 // 374 "+?", "-?", "", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "LabAddress"366 "", "", "", 367 "", "", 368 //diadic 369 "", "", "", "", "?+?", "?-?", "?*?", "?/?", "?%?", "", "", 370 "?|?", "?&?", "?^?", "", "?<<?", "?>>?", "?<?", "?>?", "?<=?", 371 "?>=?", "?==?", "?!=?", "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", 372 "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", "?[?]", "", "", "Range", 373 //monadic 374 "+?", "-?", "", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "&&" 375 375 }; 376 376 -
src/Parser/ParseNode.h
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 07:24:22201513 // Update Count : 7912 // Last Modified On : Wed Jun 24 14:09:51 2015 13 // Update Count : 81 14 14 // 15 15 … … 329 329 DeclarationNode *cloneBaseType( DeclarationNode *newdecl ); 330 330 331 DeclarationNode *appendList( DeclarationNode *);331 DeclarationNode *appendList( DeclarationNode * ); 332 332 333 333 DeclarationNode *clone() const; … … 347 347 private: 348 348 StorageClass buildStorageClass() const; 349 bool build Inline() const;349 bool buildFuncSpecifier( StorageClass key ) const; 350 350 351 351 TypeData *type; -
src/Parser/TypeData.cc
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 08:03:20201513 // Update Count : 1512 // Last Modified On : Thu Jun 18 22:06:23 2015 13 // Update Count : 21 14 14 // 15 15 … … 437 437 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); 438 438 assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); 439 (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false ) );439 (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false, false ) ); 440 440 } // if 441 441 } // for 442 442 } 443 443 444 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init ) const {444 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Type linkage, Initializer *init ) const { 445 445 if ( kind == TypeData::Function ) { 446 446 FunctionDecl *decl; … … 450 450 CompoundStmt *body = dynamic_cast< CompoundStmt* >( stmt ); 451 451 assert( body ); 452 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline );452 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline, isNoreturn ); 453 453 } else { 454 454 // std::list<Label> ls; 455 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline );455 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline, isNoreturn ); 456 456 } // if 457 457 } else { 458 decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline );458 decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline, isNoreturn ); 459 459 } // if 460 460 for ( DeclarationNode *cur = function->idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_link() ) ) { … … 474 474 return buildVariable(); 475 475 } else { 476 if ( isInline ) {477 throw SemanticError( "invalid inline specification in declaration of ", this );476 if ( isInline || isNoreturn ) { 477 throw SemanticError( "invalid inline or _Noreturn specification in declaration of ", this ); 478 478 } else { 479 479 return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init ); … … 598 598 } // if 599 599 break; 600 601 600 case DeclarationNode::Complex: 602 601 switch ( ret ) { … … 791 790 break; 792 791 default: 793 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, LinkageSpec::Cforall ) ) );792 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, false, LinkageSpec::Cforall ) ) ); 794 793 } // switch 795 794 } else { … … 806 805 at = new StructDecl( aggregate->name ); 807 806 break; 808 809 807 case DeclarationNode::Union: 810 808 at = new UnionDecl( aggregate->name ); 811 809 break; 812 813 810 case DeclarationNode::Context: 814 811 at = new ContextDecl( aggregate->name ); 815 812 break; 816 817 813 default: 818 814 assert( false ); … … 838 834 ReferenceToType *TypeData::buildAggInst() const { 839 835 assert( kind == AggregateInst ); 840 std::string name;841 836 842 837 ReferenceToType *ret; … … 883 878 TypeDecl *ret = new TypeDecl( variable->name, DeclarationNode::NoStorageClass, 0, kindMap[ variable->tyClass ] ); 884 879 buildList( variable->assertions, ret->get_assertions() ); 885 886 880 return ret; 887 881 } … … 891 885 EnumDecl *ret = new EnumDecl( enumeration->name ); 892 886 buildList( enumeration->constants, ret->get_members() ); 893 894 887 return ret; 895 888 } … … 900 893 buildList( symbolic->actuals, ret->get_parameters() ); 901 894 buildForall( forall, ret->get_forall() ); 902 903 895 return ret; 904 896 } … … 909 901 buildTypeList( tuple->members, ret->get_types() ); 910 902 buildForall( forall, ret->get_forall() ); 911 912 903 return ret; 913 904 } … … 918 909 assert( typeexpr->expr ); 919 910 TypeofType *ret = new TypeofType( buildQualifiers(), typeexpr->expr->build() ); 920 921 911 return ret; 922 912 } … … 932 922 ret = new AttrType( buildQualifiers(), attr->name, attr->type->buildType() ); 933 923 } // if 934 935 924 return ret; 936 925 } -
src/Parser/TypeData.h
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 07:26:16201513 // Update Count : 512 // Last Modified On : Thu Jun 18 21:03:18 2015 13 // Update Count : 7 14 14 // 15 15 … … 120 120 TypeData *extractAggregate( bool toplevel = true ) const; 121 121 // helper function for DeclNodeImpl::build 122 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init = 0 ) const;122 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Type linkage, Initializer *init = 0 ) const; 123 123 // helper functions for build() 124 124 Type::Qualifiers buildQualifiers() const; 125 Type * buildBasicType() const;125 Type * buildBasicType() const; 126 126 PointerType * buildPointer() const; 127 127 ArrayType * buildArray() const; -
src/Parser/TypedefTable.cc
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 15:20:13 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : S at May 16 15:24:03201513 // Update Count : 212 // Last Modified On : Sun Jun 21 11:46:15 2015 13 // Update Count : 7 14 14 // 15 15 … … 29 29 TypedefTable::TypedefTable() : currentScope( 0 ) {} 30 30 31 bool TypedefTable::isKind( stringidentifier, kind_t kind ) const {31 bool TypedefTable::isKind( const string &identifier, kind_t kind ) const { 32 32 tableType::const_iterator id_pos = table.find( identifier ); 33 if ( id_pos == table.end() ) {33 if ( id_pos == table.end() ) { 34 34 return true; 35 35 } else { 36 36 return (*((*id_pos ).second.begin())).kind == kind; 37 } 37 } // if 38 38 } 39 39 40 bool TypedefTable::isIdentifier( stringidentifier ) const {40 bool TypedefTable::isIdentifier( const string &identifier ) const { 41 41 return isKind( identifier, ID ); 42 42 } 43 43 44 bool TypedefTable::isTypedef( stringidentifier ) const {44 bool TypedefTable::isTypedef( const string &identifier ) const { 45 45 return isKind( identifier, TD ); 46 46 } 47 47 48 bool TypedefTable::isTypegen( stringidentifier ) const {48 bool TypedefTable::isTypegen( const string &identifier ) const { 49 49 return isKind( identifier, TG ); 50 50 } … … 66 66 while ( listPos != (*curPos ).second.end() && listPos->scope > scope ) { 67 67 listPos++; 68 } 68 } // while 69 69 (*curPos ).second.insert( listPos, newEntry ); 70 } 71 } 70 } // if 71 } // if 72 72 } 73 73 … … 102 102 } 103 103 104 void TypedefTable::openContext( std::stringcontextName ) {104 void TypedefTable::openContext( const std::string &contextName ) { 105 105 map< string, deferListType >::iterator i = contexts.find( contextName ); 106 106 if ( i != contexts.end() ) { … … 108 108 for ( deferListType::iterator i = entries.begin(); i != entries.end(); i++) { 109 109 addToEnclosingScope( i->identifier, i->kind ); 110 } 111 } 110 } // for 111 } // if 112 112 } 113 113 114 void TypedefTable::enterScope( void) {114 void TypedefTable::enterScope() { 115 115 currentScope += 1; 116 116 deferListStack.push( deferListType() ); … … 119 119 } 120 120 121 void TypedefTable::leaveScope( void) {121 void TypedefTable::leaveScope() { 122 122 debugPrint( "Leaving scope " << currentScope << endl ); 123 123 for ( tableType::iterator i = table.begin(); i != table.end(); ) { … … 129 129 table.erase( i++ ); 130 130 } else ++i; 131 } 131 } // for 132 132 currentScope -= 1; 133 133 for ( deferListType::iterator i = deferListStack.top().begin(); i != deferListStack.top().end(); i++) { 134 134 addToCurrentScope( i->identifier, i->kind ); 135 } 135 } // for 136 136 deferListStack.pop(); 137 137 debugPrint( "nextIdentifiers size is " << nextIdentifiers.size() << " top is " << nextIdentifiers.top() << endl ); … … 139 139 } 140 140 141 void TypedefTable::enterContext( std::stringcontextName ) {141 void TypedefTable::enterContext( const std::string &contextName ) { 142 142 currentContext = contextName; 143 143 contextScope = currentScope; 144 144 } 145 145 146 void TypedefTable::leaveContext( void) {146 void TypedefTable::leaveContext() { 147 147 currentContext = ""; 148 148 } … … 156 156 } 157 157 debugPrint( endl ); 158 } 158 } // for 159 159 } 160 160 -
src/Parser/TypedefTable.h
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 15:24:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 16 15:25:59201513 // Update Count : 312 // Last Modified On : Thu Jun 18 21:03:17 2015 13 // Update Count : 7 14 14 // 15 15 … … 49 49 std::stack< std::string > nextIdentifiers; 50 50 51 bool isKind( std::stringidentifier, kind_t kind ) const;51 bool isKind( const std::string &identifier, kind_t kind ) const; 52 52 void addToScope( const std::string &identifier, kind_t kind, int scope ); 53 53 public: 54 54 TypedefTable(); 55 55 56 bool isIdentifier( std::stringidentifier ) const;57 bool isTypedef( std::stringidentifier ) const;58 bool isTypegen( std::stringidentifier ) const;56 bool isIdentifier( const std::string &identifier ) const; 57 bool isTypedef( const std::string &identifier ) const; 58 bool isTypegen( const std::string &identifier ) const; 59 59 60 // "addToCurrentScope" adds the identifier/type pair to the current scope This does less than you think it does,60 // "addToCurrentScope" adds the identifier/type pair to the current scope. This does less than you think it does, 61 61 // since each declaration is within its own scope. Mostly useful for type parameters. 62 62 void addToCurrentScope( const std::string &identifier, kind_t kind ); … … 77 77 78 78 // dump the definitions from a pre-defined context into the current scope 79 void openContext( std::stringcontextName );79 void openContext( const std::string &contextName ); 80 80 81 81 void enterScope(); 82 82 void leaveScope(); 83 void enterContext( std::stringcontextName );83 void enterContext( const std::string &contextName ); 84 84 void leaveContext(); 85 85 -
src/Parser/lex.cc
ra1d5d2a rde62360d 1390 1390 * Created On : Sat Sep 22 08:58:10 2001 1391 1391 * Last Modified By : Peter A. Buhr 1392 * Last Modified On : Thu Jun 11 21:52:3520151393 * Update Count : 3 821392 * Last Modified On : Fri Jun 19 11:10:14 2015 1393 * Update Count : 392 1394 1394 */ 1395 1395 #line 20 "lex.ll" 1396 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive 1397 // have been performed and removed from the source. The only exceptions are preprocessor directives passed to1398 // the compiler (e.g.,line-number directives) and C/C++ style comments, which are ignored.1396 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been 1397 // performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g., 1398 // line-number directives) and C/C++ style comments, which are ignored. 1399 1399 1400 1400 //**************************** Includes and Defines **************************** … … 1409 1409 std::string *strtext; // accumulate parts of character and string constant value 1410 1410 1411 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x)1412 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x)1413 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x)1414 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x)1411 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x ) 1412 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x ) 1413 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x ) 1414 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x ) 1415 1415 1416 1416 #define WHITE_RETURN(x) // do nothing 1417 #define NEWLINE_RETURN() WHITE_RETURN( '\n')1418 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0])// single character operator1419 #define NAMEDOP_RETURN(x) RETURN_VAL( x) // multichar operator, with a name1420 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x) // numeric constant1421 #define KEYWORD_RETURN(x) RETURN_CHAR( x)// keyword1422 #define IDENTIFIER_RETURN() RETURN_VAL( (typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))1423 #define ATTRIBUTE_RETURN() RETURN_VAL( ATTR_IDENTIFIER)1417 #define NEWLINE_RETURN() WHITE_RETURN( '\n' ) 1418 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] ) // single character operator 1419 #define NAMEDOP_RETURN(x) RETURN_VAL( x ) // multichar operator, with a name 1420 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x ) // numeric constant 1421 #define KEYWORD_RETURN(x) RETURN_CHAR( x ) // keyword 1422 #define IDENTIFIER_RETURN() RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) ) 1423 #define ATTRIBUTE_RETURN() RETURN_VAL( ATTR_IDENTIFIER ) 1424 1424 1425 1425 void rm_underscore() { … … 3652 3652 3653 3653 // Local Variables: // 3654 // fill-column: 110//3654 // mode: c++ // 3655 3655 // tab-width: 4 // 3656 // mode: c++ //3657 3656 // compile-command: "make install" // 3658 3657 // End: // -
src/Parser/lex.ll
ra1d5d2a rde62360d 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Thu Jun 11 21:52:35201513 * Update Count : 3 8212 * Last Modified On : Fri Jun 19 11:10:14 2015 13 * Update Count : 392 14 14 */ 15 15 … … 18 18 19 19 %{ 20 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive 21 // have been performed and removed from the source. The only exceptions are preprocessor directives passed to22 // the compiler (e.g.,line-number directives) and C/C++ style comments, which are ignored.20 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been 21 // performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g., 22 // line-number directives) and C/C++ style comments, which are ignored. 23 23 24 24 //**************************** Includes and Defines **************************** … … 33 33 std::string *strtext; // accumulate parts of character and string constant value 34 34 35 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x)36 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x)37 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x)38 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x)35 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x ) 36 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x ) 37 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x ) 38 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x ) 39 39 40 40 #define WHITE_RETURN(x) // do nothing 41 #define NEWLINE_RETURN() WHITE_RETURN( '\n')42 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0])// single character operator43 #define NAMEDOP_RETURN(x) RETURN_VAL( x) // multichar operator, with a name44 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x) // numeric constant45 #define KEYWORD_RETURN(x) RETURN_CHAR( x)// keyword46 #define IDENTIFIER_RETURN() RETURN_VAL( (typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))47 #define ATTRIBUTE_RETURN() RETURN_VAL( ATTR_IDENTIFIER)41 #define NEWLINE_RETURN() WHITE_RETURN( '\n' ) 42 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] ) // single character operator 43 #define NAMEDOP_RETURN(x) RETURN_VAL( x ) // multichar operator, with a name 44 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x ) // numeric constant 45 #define KEYWORD_RETURN(x) RETURN_CHAR( x ) // keyword 46 #define IDENTIFIER_RETURN() RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) ) 47 #define ATTRIBUTE_RETURN() RETURN_VAL( ATTR_IDENTIFIER ) 48 48 49 49 void rm_underscore() { … … 398 398 399 399 // Local Variables: // 400 // fill-column: 110//400 // mode: c++ // 401 401 // tab-width: 4 // 402 // mode: c++ //403 402 // compile-command: "make install" // 404 403 // End: // -
src/Parser/parser.cc
ra1d5d2a rde62360d 67 67 68 68 /* Line 268 of yacc.c */ 69 #line 4 5"parser.yy"69 #line 44 "parser.yy" 70 70 71 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 324 324 325 325 /* Line 293 of yacc.c */ 326 #line 10 8"parser.yy"326 #line 107 "parser.yy" 327 327 328 328 Token tok; … … 570 570 #define YYFINAL 240 571 571 /* YYLAST -- Last index in YYTABLE. */ 572 #define YYLAST 12 141572 #define YYLAST 12266 573 573 574 574 /* YYNTOKENS -- Number of terminals. */ … … 579 579 #define YYNRULES 735 580 580 /* YYNRULES -- Number of states. */ 581 #define YYNSTATES 155 2581 #define YYNSTATES 1555 582 582 583 583 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 669 669 1161, 1166, 1171, 1176, 1178, 1181, 1184, 1188, 1190, 1193, 670 670 1196, 1198, 1201, 1204, 1208, 1210, 1213, 1216, 1218, 1220, 671 1225, 1228, 1234, 1244, 1252, 1263, 1276, 128 4, 1298, 1301,672 130 4, 1306, 1309, 1312, 1316, 1319, 1323, 1325, 1328, 1332,673 133 5, 1338, 1343, 1344, 1346, 1349, 1352, 1354, 1355, 1357,674 136 0, 1363, 1369, 1376, 1379, 1382, 1387, 1388, 1391, 1392,675 139 4, 1396, 1398, 1404, 1410, 1416, 1418, 1424, 1430, 1440,676 144 2, 1448, 1449, 1451, 1453, 1459, 1461, 1463, 1469, 1475,677 14 77, 1481, 1485, 1490, 1492, 1494, 1496, 1498, 1501, 1503,678 150 7, 1511, 1513, 1516, 1518, 1522, 1524, 1526, 1528, 1530,679 153 2, 1534, 1536, 1538, 1540, 1542, 1544, 1547, 1549, 1551,680 155 3, 1556, 1557, 1560, 1562, 1567, 1569, 1572, 1576, 1581,681 158 4, 1587, 1589, 1592, 1595, 1601, 1607, 1615, 1622, 1624,682 16 27, 1630, 1634, 1639, 1645, 1648, 1651, 1656, 1657, 1662,683 166 5, 1667, 1669, 1671, 1672, 1675, 1681, 1687, 1701, 1703,684 170 5, 1709, 1713, 1716, 1720, 1724, 1727, 1732, 1734, 1741,685 175 1, 1752, 1764, 1766, 1770, 1774, 1778, 1780, 1782, 1788,686 179 1, 1797, 1798, 1800, 1802, 1806, 1807, 1809, 1811, 1813,687 181 5, 1816, 1823, 1826, 1828, 1831, 1836, 1839, 1843, 1847,688 185 1, 1856, 1862, 1868, 1874, 1881, 1883, 1885, 1887, 1891,689 189 2, 1898, 1899, 1901, 1903, 1906, 1913, 1915, 1919, 1920,690 192 2, 1927, 1929, 1931, 1933, 1935, 1938, 1940, 1943, 1946,691 19 48, 1952, 1955, 1959, 1963, 1966, 1971, 1976, 1980, 1989,692 199 3, 1996, 1998, 2001, 2008, 2017, 2021, 2024, 2028, 2032,693 20 37, 2042, 2046, 2048, 2050, 2052, 2057, 2064, 2068, 2071,694 207 5, 2079, 2084, 2089, 2093, 2096, 2098, 2101, 2104, 2106,695 211 0, 2113, 2117, 2121, 2124, 2129, 2134, 2138, 2145, 2154,696 21 58, 2161, 2163, 2166, 2169, 2172, 2176, 2180, 2183, 2188,697 219 3, 2197, 2204, 2213, 2217, 2220, 2222, 2225, 2228, 2230,698 223 3, 2237, 2241, 2244, 2249, 2256, 2265, 2267, 2270, 2273,699 227 5, 2278, 2281, 2285, 2289, 2291, 2296, 2301, 2305, 2311,700 232 0, 2324, 2329, 2335, 2337, 2343, 2349, 2356, 2363, 2365,701 23 68, 2371, 2373, 2376, 2379, 2383, 2387, 2389, 2394, 2399,702 240 3, 2409, 2418, 2422, 2424, 2427, 2429, 2434, 2441, 2447,703 245 4, 2462, 2470, 2472, 2475, 2478, 2480, 2483, 2486, 2490,704 249 4, 2496, 2501, 2506, 2510, 2519, 2523, 2525, 2527, 2530,705 253 2, 2534, 2537, 2541, 2544, 2548, 2551, 2555, 2561, 2564,706 257 1, 2575, 2578, 2584, 2587, 2594, 2598, 2601, 2608, 2615,707 262 2, 2630, 2632, 2635, 2637, 2639, 2641, 2644, 2648, 2651,708 265 5, 2658, 2662, 2668, 2675, 2678, 2684, 2691, 2694, 2700,709 27 08, 2715, 2722, 2723, 2725, 2726671 1225, 1228, 1234, 1244, 1252, 1263, 1276, 1282, 1290, 1304, 672 1307, 1310, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334, 673 1338, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361, 674 1363, 1366, 1369, 1375, 1382, 1385, 1388, 1393, 1394, 1397, 675 1398, 1400, 1402, 1404, 1410, 1416, 1422, 1424, 1430, 1436, 676 1446, 1448, 1454, 1455, 1457, 1459, 1465, 1467, 1469, 1475, 677 1481, 1483, 1487, 1491, 1496, 1498, 1500, 1502, 1504, 1507, 678 1509, 1513, 1517, 1519, 1522, 1524, 1528, 1530, 1532, 1534, 679 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1551, 1553, 1555, 680 1557, 1560, 1561, 1564, 1566, 1571, 1573, 1576, 1580, 1585, 681 1588, 1591, 1593, 1596, 1599, 1605, 1611, 1619, 1626, 1628, 682 1631, 1634, 1638, 1643, 1649, 1652, 1655, 1660, 1661, 1666, 683 1669, 1671, 1673, 1675, 1676, 1679, 1685, 1691, 1705, 1707, 684 1709, 1713, 1717, 1720, 1724, 1728, 1731, 1736, 1738, 1745, 685 1755, 1756, 1768, 1770, 1774, 1778, 1782, 1784, 1786, 1792, 686 1795, 1801, 1802, 1804, 1806, 1810, 1811, 1813, 1815, 1817, 687 1819, 1820, 1827, 1830, 1832, 1835, 1840, 1843, 1847, 1851, 688 1855, 1860, 1866, 1872, 1878, 1885, 1887, 1889, 1891, 1895, 689 1896, 1902, 1903, 1905, 1907, 1910, 1917, 1919, 1923, 1924, 690 1926, 1931, 1933, 1935, 1937, 1939, 1942, 1944, 1947, 1950, 691 1952, 1956, 1959, 1963, 1967, 1970, 1975, 1980, 1984, 1993, 692 1997, 2000, 2002, 2005, 2012, 2021, 2025, 2028, 2032, 2036, 693 2041, 2046, 2050, 2052, 2054, 2056, 2061, 2068, 2072, 2075, 694 2079, 2083, 2088, 2093, 2097, 2100, 2102, 2105, 2108, 2110, 695 2114, 2117, 2121, 2125, 2128, 2133, 2138, 2142, 2149, 2158, 696 2162, 2165, 2167, 2170, 2173, 2176, 2180, 2184, 2187, 2192, 697 2197, 2201, 2208, 2217, 2221, 2224, 2226, 2229, 2232, 2234, 698 2237, 2241, 2245, 2248, 2253, 2260, 2269, 2271, 2274, 2277, 699 2279, 2282, 2285, 2289, 2293, 2295, 2300, 2305, 2309, 2315, 700 2324, 2328, 2333, 2339, 2341, 2347, 2353, 2360, 2367, 2369, 701 2372, 2375, 2377, 2380, 2383, 2387, 2391, 2393, 2398, 2403, 702 2407, 2413, 2422, 2426, 2428, 2431, 2433, 2438, 2445, 2451, 703 2458, 2466, 2474, 2476, 2479, 2482, 2484, 2487, 2490, 2494, 704 2498, 2500, 2505, 2510, 2514, 2523, 2527, 2529, 2531, 2534, 705 2536, 2538, 2541, 2545, 2548, 2552, 2555, 2559, 2565, 2568, 706 2575, 2579, 2582, 2588, 2591, 2598, 2602, 2605, 2612, 2619, 707 2626, 2634, 2636, 2639, 2641, 2643, 2645, 2648, 2652, 2655, 708 2659, 2662, 2666, 2672, 2679, 2682, 2688, 2695, 2698, 2704, 709 2712, 2719, 2726, 2727, 2729, 2730 710 710 }; 711 711 … … 840 840 261, -1, 235, 101, 126, 272, 127, 102, 261, 106, 841 841 236, 107, -1, 235, 101, 126, 272, 127, 102, 101, 842 278, 102, 106, 236, 107, -1, 235, 101, 126, 278, 843 127, 102, 261, -1, 235, 101, 126, 272, 127, 102, 844 101, 278, 102, 261, 106, 236, 107, -1, 30, 298, 845 -1, 31, 298, -1, 237, -1, 236, 237, -1, 238, 846 124, -1, 38, 238, 124, -1, 239, 124, -1, 38, 847 239, 124, -1, 352, -1, 352, 261, -1, 238, 108, 848 261, -1, 238, 108, -1, 214, 240, -1, 239, 108, 849 298, 240, -1, -1, 242, -1, 304, 241, -1, 317, 850 241, -1, 343, -1, -1, 242, -1, 109, 154, -1, 851 29, 298, -1, 243, 106, 245, 358, 107, -1, 243, 852 261, 106, 245, 358, 107, -1, 243, 261, -1, 261, 853 246, -1, 245, 108, 261, 246, -1, -1, 123, 154, 854 -1, -1, 248, -1, 250, -1, 249, -1, 249, 127, 855 108, 126, 250, -1, 250, 127, 108, 126, 89, -1, 856 249, 127, 108, 126, 89, -1, 254, -1, 250, 127, 857 108, 126, 254, -1, 249, 127, 108, 126, 254, -1, 858 249, 127, 108, 126, 250, 127, 108, 126, 254, -1, 859 255, -1, 250, 127, 108, 126, 255, -1, -1, 252, 860 -1, 253, -1, 253, 127, 108, 126, 89, -1, 257, 861 -1, 256, -1, 253, 127, 108, 126, 257, -1, 253, 862 127, 108, 126, 256, -1, 256, -1, 348, 259, 359, 863 -1, 356, 259, 359, -1, 216, 356, 259, 359, -1, 864 206, -1, 257, -1, 348, -1, 356, -1, 216, 356, 865 -1, 357, -1, 213, 322, 359, -1, 213, 326, 359, 866 -1, 213, -1, 213, 337, -1, 131, -1, 258, 108, 867 131, -1, 129, -1, 67, -1, 68, -1, 130, -1, 868 67, -1, 68, -1, 131, -1, 67, -1, 68, -1, 869 352, -1, 214, -1, 214, 343, -1, 352, -1, 357, 870 -1, 214, -1, 214, 331, -1, -1, 123, 265, -1, 871 155, -1, 106, 266, 358, 107, -1, 265, -1, 267, 872 265, -1, 266, 108, 265, -1, 266, 108, 267, 265, 873 -1, 268, 109, -1, 261, 109, -1, 269, -1, 268, 874 269, -1, 105, 261, -1, 103, 126, 155, 127, 104, 875 -1, 103, 126, 296, 127, 104, -1, 103, 126, 154, 876 89, 154, 127, 104, -1, 105, 103, 126, 138, 127, 877 104, -1, 271, -1, 220, 271, -1, 270, 222, -1, 878 270, 222, 216, -1, 68, 101, 278, 102, -1, 216, 879 68, 101, 278, 102, -1, 271, 217, -1, 273, 359, 880 -1, 272, 108, 273, 359, -1, -1, 275, 261, 274, 881 276, -1, 214, 322, -1, 32, -1, 34, -1, 33, 882 -1, -1, 276, 277, -1, 121, 261, 101, 278, 102, 883 -1, 121, 106, 126, 284, 107, -1, 121, 101, 126, 884 272, 127, 102, 106, 126, 284, 107, 101, 278, 102, 885 -1, 263, -1, 155, -1, 278, 108, 263, -1, 278, 886 108, 155, -1, 32, 280, -1, 221, 32, 280, -1, 887 279, 108, 280, -1, 281, 276, -1, 281, 276, 123, 888 263, -1, 261, -1, 260, 101, 126, 272, 127, 102, 889 -1, 35, 261, 101, 126, 272, 127, 102, 106, 107, 890 -1, -1, 35, 261, 101, 126, 272, 127, 102, 106, 891 283, 284, 107, -1, 285, -1, 284, 126, 285, -1, 892 286, 127, 124, -1, 287, 127, 124, -1, 204, -1, 893 206, -1, 286, 127, 108, 126, 259, -1, 214, 295, 894 -1, 287, 127, 108, 126, 295, -1, -1, 289, -1, 895 291, -1, 289, 126, 291, -1, -1, 289, -1, 201, 896 -1, 293, -1, 189, -1, -1, 5, 75, 292, 106, 897 290, 107, -1, 38, 291, -1, 294, -1, 309, 164, 898 -1, 313, 126, 196, 164, -1, 205, 164, -1, 213, 899 309, 164, -1, 216, 309, 164, -1, 220, 309, 164, 900 -1, 220, 216, 309, 164, -1, 213, 313, 126, 196, 901 164, -1, 216, 313, 126, 196, 164, -1, 220, 313, 902 126, 196, 164, -1, 220, 216, 313, 126, 196, 164, 903 -1, 304, -1, 309, -1, 317, -1, 154, 115, 154, 904 -1, -1, 57, 101, 133, 102, 298, -1, -1, 299, 905 -1, 300, -1, 299, 300, -1, 37, 101, 101, 301, 906 102, 102, -1, 302, -1, 301, 108, 302, -1, -1, 907 303, -1, 303, 101, 161, 102, -1, 259, -1, 223, 908 -1, 224, -1, 217, -1, 305, 298, -1, 306, -1, 909 307, 298, -1, 308, 298, -1, 129, -1, 101, 305, 910 102, -1, 111, 304, -1, 111, 216, 304, -1, 101, 911 306, 102, -1, 305, 335, -1, 101, 306, 102, 335, 912 -1, 101, 307, 102, 336, -1, 101, 307, 102, -1, 913 101, 306, 102, 101, 126, 251, 127, 102, -1, 101, 914 308, 102, -1, 310, 298, -1, 311, -1, 312, 298, 915 -1, 305, 101, 126, 251, 127, 102, -1, 101, 311, 916 102, 101, 126, 251, 127, 102, -1, 101, 310, 102, 917 -1, 111, 309, -1, 111, 216, 309, -1, 101, 311, 918 102, -1, 101, 311, 102, 335, -1, 101, 312, 102, 919 336, -1, 101, 312, 102, -1, 314, -1, 315, -1, 920 316, -1, 305, 101, 258, 102, -1, 101, 315, 102, 921 101, 258, 102, -1, 101, 314, 102, -1, 111, 313, 922 -1, 111, 216, 313, -1, 101, 315, 102, -1, 101, 923 315, 102, 335, -1, 101, 316, 102, 336, -1, 101, 924 316, 102, -1, 318, 298, -1, 319, -1, 320, 298, 925 -1, 321, 298, -1, 67, -1, 101, 318, 102, -1, 926 111, 317, -1, 111, 216, 317, -1, 101, 319, 102, 927 -1, 318, 335, -1, 101, 319, 102, 335, -1, 101, 928 320, 102, 336, -1, 101, 320, 102, -1, 318, 101, 929 126, 251, 127, 102, -1, 101, 319, 102, 101, 126, 930 251, 127, 102, -1, 101, 321, 102, -1, 305, 298, 931 -1, 323, -1, 324, 298, -1, 325, 298, -1, 111, 932 322, -1, 111, 216, 322, -1, 101, 323, 102, -1, 933 305, 341, -1, 101, 323, 102, 335, -1, 101, 324, 934 102, 336, -1, 101, 324, 102, -1, 305, 101, 126, 935 251, 127, 102, -1, 101, 323, 102, 101, 126, 251, 936 127, 102, -1, 101, 325, 102, -1, 327, 298, -1, 937 328, -1, 329, 298, -1, 330, 298, -1, 67, -1, 938 111, 326, -1, 111, 216, 326, -1, 101, 328, 102, 939 -1, 327, 341, -1, 101, 328, 102, 341, -1, 327, 940 101, 126, 251, 127, 102, -1, 101, 328, 102, 101, 941 126, 251, 127, 102, -1, 332, -1, 333, 298, -1, 942 334, 298, -1, 111, -1, 111, 216, -1, 111, 331, 943 -1, 111, 216, 331, -1, 101, 332, 102, -1, 335, 944 -1, 101, 332, 102, 335, -1, 101, 333, 102, 336, 945 -1, 101, 333, 102, -1, 101, 126, 251, 127, 102, 946 -1, 101, 332, 102, 101, 126, 251, 127, 102, -1, 947 101, 334, 102, -1, 103, 126, 127, 104, -1, 103, 948 126, 127, 104, 336, -1, 336, -1, 103, 126, 155, 949 127, 104, -1, 103, 126, 111, 127, 104, -1, 336, 950 103, 126, 155, 127, 104, -1, 336, 103, 126, 111, 951 127, 104, -1, 338, -1, 339, 298, -1, 340, 298, 952 -1, 111, -1, 111, 216, -1, 111, 337, -1, 111, 953 216, 337, -1, 101, 338, 102, -1, 341, -1, 101, 954 338, 102, 341, -1, 101, 339, 102, 336, -1, 101, 955 339, 102, -1, 101, 126, 251, 127, 102, -1, 101, 956 338, 102, 101, 126, 251, 127, 102, -1, 101, 340, 957 102, -1, 342, -1, 342, 336, -1, 336, -1, 103, 958 126, 127, 104, -1, 103, 126, 216, 111, 127, 104, 959 -1, 103, 126, 216, 127, 104, -1, 103, 126, 216, 960 155, 127, 104, -1, 103, 126, 7, 215, 155, 127, 961 104, -1, 103, 126, 216, 7, 155, 127, 104, -1, 962 344, -1, 345, 298, -1, 346, 298, -1, 111, -1, 963 111, 216, -1, 111, 343, -1, 111, 216, 343, -1, 964 101, 344, 102, -1, 335, -1, 101, 344, 102, 335, 965 -1, 101, 345, 102, 336, -1, 101, 345, 102, -1, 966 101, 344, 102, 101, 126, 251, 127, 102, -1, 101, 967 346, 102, -1, 348, -1, 356, -1, 216, 356, -1, 968 349, -1, 350, -1, 111, 214, -1, 216, 111, 214, 969 -1, 111, 357, -1, 216, 111, 357, -1, 111, 347, 970 -1, 216, 111, 347, -1, 103, 126, 127, 104, 214, 971 -1, 351, 214, -1, 103, 126, 127, 104, 336, 214, 972 -1, 351, 336, 214, -1, 336, 214, -1, 103, 126, 973 127, 104, 349, -1, 351, 349, -1, 103, 126, 127, 974 104, 336, 349, -1, 351, 336, 349, -1, 336, 349, 975 -1, 103, 126, 216, 111, 127, 104, -1, 103, 126, 976 216, 155, 127, 104, -1, 103, 126, 220, 155, 127, 977 104, -1, 103, 126, 220, 216, 155, 127, 104, -1, 978 356, -1, 216, 356, -1, 353, -1, 354, -1, 355, 979 -1, 111, 214, -1, 216, 111, 214, -1, 111, 357, 980 -1, 216, 111, 357, -1, 111, 352, -1, 216, 111, 981 352, -1, 103, 126, 127, 104, 214, -1, 103, 126, 982 127, 104, 336, 214, -1, 336, 214, -1, 103, 126, 983 127, 104, 354, -1, 103, 126, 127, 104, 336, 354, 984 -1, 336, 354, -1, 103, 126, 250, 127, 104, -1, 985 103, 126, 127, 104, 101, 247, 102, -1, 356, 101, 986 126, 247, 127, 102, -1, 207, 101, 126, 247, 127, 987 102, -1, -1, 108, -1, -1, 123, 155, -1 842 278, 102, 106, 236, 107, -1, 235, 68, 101, 278, 843 102, -1, 235, 101, 126, 278, 127, 102, 261, -1, 844 235, 101, 126, 272, 127, 102, 101, 278, 102, 261, 845 106, 236, 107, -1, 30, 298, -1, 31, 298, -1, 846 237, -1, 236, 237, -1, 238, 124, -1, 38, 238, 847 124, -1, 239, 124, -1, 38, 239, 124, -1, 352, 848 -1, 352, 261, -1, 238, 108, 261, -1, 238, 108, 849 -1, 214, 240, -1, 239, 108, 298, 240, -1, -1, 850 242, -1, 304, 241, -1, 317, 241, -1, 343, -1, 851 -1, 242, -1, 109, 154, -1, 29, 298, -1, 243, 852 106, 245, 358, 107, -1, 243, 261, 106, 245, 358, 853 107, -1, 243, 261, -1, 261, 246, -1, 245, 108, 854 261, 246, -1, -1, 123, 154, -1, -1, 248, -1, 855 250, -1, 249, -1, 249, 127, 108, 126, 250, -1, 856 250, 127, 108, 126, 89, -1, 249, 127, 108, 126, 857 89, -1, 254, -1, 250, 127, 108, 126, 254, -1, 858 249, 127, 108, 126, 254, -1, 249, 127, 108, 126, 859 250, 127, 108, 126, 254, -1, 255, -1, 250, 127, 860 108, 126, 255, -1, -1, 252, -1, 253, -1, 253, 861 127, 108, 126, 89, -1, 257, -1, 256, -1, 253, 862 127, 108, 126, 257, -1, 253, 127, 108, 126, 256, 863 -1, 256, -1, 348, 259, 359, -1, 356, 259, 359, 864 -1, 216, 356, 259, 359, -1, 206, -1, 257, -1, 865 348, -1, 356, -1, 216, 356, -1, 357, -1, 213, 866 322, 359, -1, 213, 326, 359, -1, 213, -1, 213, 867 337, -1, 131, -1, 258, 108, 131, -1, 129, -1, 868 67, -1, 68, -1, 130, -1, 67, -1, 68, -1, 869 131, -1, 67, -1, 352, -1, 214, -1, 214, 343, 870 -1, 352, -1, 357, -1, 214, -1, 214, 331, -1, 871 -1, 123, 265, -1, 155, -1, 106, 266, 358, 107, 872 -1, 265, -1, 267, 265, -1, 266, 108, 265, -1, 873 266, 108, 267, 265, -1, 268, 109, -1, 261, 109, 874 -1, 269, -1, 268, 269, -1, 105, 261, -1, 103, 875 126, 155, 127, 104, -1, 103, 126, 296, 127, 104, 876 -1, 103, 126, 154, 89, 154, 127, 104, -1, 105, 877 103, 126, 138, 127, 104, -1, 271, -1, 220, 271, 878 -1, 270, 222, -1, 270, 222, 216, -1, 68, 101, 879 278, 102, -1, 216, 68, 101, 278, 102, -1, 271, 880 217, -1, 273, 359, -1, 272, 108, 273, 359, -1, 881 -1, 275, 261, 274, 276, -1, 214, 322, -1, 32, 882 -1, 34, -1, 33, -1, -1, 276, 277, -1, 121, 883 261, 101, 278, 102, -1, 121, 106, 126, 284, 107, 884 -1, 121, 101, 126, 272, 127, 102, 106, 126, 284, 885 107, 101, 278, 102, -1, 263, -1, 155, -1, 278, 886 108, 263, -1, 278, 108, 155, -1, 32, 280, -1, 887 221, 32, 280, -1, 279, 108, 280, -1, 281, 276, 888 -1, 281, 276, 123, 263, -1, 261, -1, 260, 101, 889 126, 272, 127, 102, -1, 35, 261, 101, 126, 272, 890 127, 102, 106, 107, -1, -1, 35, 261, 101, 126, 891 272, 127, 102, 106, 283, 284, 107, -1, 285, -1, 892 284, 126, 285, -1, 286, 127, 124, -1, 287, 127, 893 124, -1, 204, -1, 206, -1, 286, 127, 108, 126, 894 259, -1, 214, 295, -1, 287, 127, 108, 126, 295, 895 -1, -1, 289, -1, 291, -1, 289, 126, 291, -1, 896 -1, 289, -1, 201, -1, 293, -1, 189, -1, -1, 897 5, 75, 292, 106, 290, 107, -1, 38, 291, -1, 898 294, -1, 309, 164, -1, 313, 126, 196, 164, -1, 899 205, 164, -1, 213, 309, 164, -1, 216, 309, 164, 900 -1, 220, 309, 164, -1, 220, 216, 309, 164, -1, 901 213, 313, 126, 196, 164, -1, 216, 313, 126, 196, 902 164, -1, 220, 313, 126, 196, 164, -1, 220, 216, 903 313, 126, 196, 164, -1, 304, -1, 309, -1, 317, 904 -1, 154, 115, 154, -1, -1, 57, 101, 133, 102, 905 298, -1, -1, 299, -1, 300, -1, 299, 300, -1, 906 37, 101, 101, 301, 102, 102, -1, 302, -1, 301, 907 108, 302, -1, -1, 303, -1, 303, 101, 161, 102, 908 -1, 259, -1, 223, -1, 224, -1, 217, -1, 305, 909 298, -1, 306, -1, 307, 298, -1, 308, 298, -1, 910 129, -1, 101, 305, 102, -1, 111, 304, -1, 111, 911 216, 304, -1, 101, 306, 102, -1, 305, 335, -1, 912 101, 306, 102, 335, -1, 101, 307, 102, 336, -1, 913 101, 307, 102, -1, 101, 306, 102, 101, 126, 251, 914 127, 102, -1, 101, 308, 102, -1, 310, 298, -1, 915 311, -1, 312, 298, -1, 305, 101, 126, 251, 127, 916 102, -1, 101, 311, 102, 101, 126, 251, 127, 102, 917 -1, 101, 310, 102, -1, 111, 309, -1, 111, 216, 918 309, -1, 101, 311, 102, -1, 101, 311, 102, 335, 919 -1, 101, 312, 102, 336, -1, 101, 312, 102, -1, 920 314, -1, 315, -1, 316, -1, 305, 101, 258, 102, 921 -1, 101, 315, 102, 101, 258, 102, -1, 101, 314, 922 102, -1, 111, 313, -1, 111, 216, 313, -1, 101, 923 315, 102, -1, 101, 315, 102, 335, -1, 101, 316, 924 102, 336, -1, 101, 316, 102, -1, 318, 298, -1, 925 319, -1, 320, 298, -1, 321, 298, -1, 67, -1, 926 101, 318, 102, -1, 111, 317, -1, 111, 216, 317, 927 -1, 101, 319, 102, -1, 318, 335, -1, 101, 319, 928 102, 335, -1, 101, 320, 102, 336, -1, 101, 320, 929 102, -1, 318, 101, 126, 251, 127, 102, -1, 101, 930 319, 102, 101, 126, 251, 127, 102, -1, 101, 321, 931 102, -1, 305, 298, -1, 323, -1, 324, 298, -1, 932 325, 298, -1, 111, 322, -1, 111, 216, 322, -1, 933 101, 323, 102, -1, 305, 341, -1, 101, 323, 102, 934 335, -1, 101, 324, 102, 336, -1, 101, 324, 102, 935 -1, 305, 101, 126, 251, 127, 102, -1, 101, 323, 936 102, 101, 126, 251, 127, 102, -1, 101, 325, 102, 937 -1, 327, 298, -1, 328, -1, 329, 298, -1, 330, 938 298, -1, 67, -1, 111, 326, -1, 111, 216, 326, 939 -1, 101, 328, 102, -1, 327, 341, -1, 101, 328, 940 102, 341, -1, 327, 101, 126, 251, 127, 102, -1, 941 101, 328, 102, 101, 126, 251, 127, 102, -1, 332, 942 -1, 333, 298, -1, 334, 298, -1, 111, -1, 111, 943 216, -1, 111, 331, -1, 111, 216, 331, -1, 101, 944 332, 102, -1, 335, -1, 101, 332, 102, 335, -1, 945 101, 333, 102, 336, -1, 101, 333, 102, -1, 101, 946 126, 251, 127, 102, -1, 101, 332, 102, 101, 126, 947 251, 127, 102, -1, 101, 334, 102, -1, 103, 126, 948 127, 104, -1, 103, 126, 127, 104, 336, -1, 336, 949 -1, 103, 126, 155, 127, 104, -1, 103, 126, 111, 950 127, 104, -1, 336, 103, 126, 155, 127, 104, -1, 951 336, 103, 126, 111, 127, 104, -1, 338, -1, 339, 952 298, -1, 340, 298, -1, 111, -1, 111, 216, -1, 953 111, 337, -1, 111, 216, 337, -1, 101, 338, 102, 954 -1, 341, -1, 101, 338, 102, 341, -1, 101, 339, 955 102, 336, -1, 101, 339, 102, -1, 101, 126, 251, 956 127, 102, -1, 101, 338, 102, 101, 126, 251, 127, 957 102, -1, 101, 340, 102, -1, 342, -1, 342, 336, 958 -1, 336, -1, 103, 126, 127, 104, -1, 103, 126, 959 216, 111, 127, 104, -1, 103, 126, 216, 127, 104, 960 -1, 103, 126, 216, 155, 127, 104, -1, 103, 126, 961 7, 215, 155, 127, 104, -1, 103, 126, 216, 7, 962 155, 127, 104, -1, 344, -1, 345, 298, -1, 346, 963 298, -1, 111, -1, 111, 216, -1, 111, 343, -1, 964 111, 216, 343, -1, 101, 344, 102, -1, 335, -1, 965 101, 344, 102, 335, -1, 101, 345, 102, 336, -1, 966 101, 345, 102, -1, 101, 344, 102, 101, 126, 251, 967 127, 102, -1, 101, 346, 102, -1, 348, -1, 356, 968 -1, 216, 356, -1, 349, -1, 350, -1, 111, 214, 969 -1, 216, 111, 214, -1, 111, 357, -1, 216, 111, 970 357, -1, 111, 347, -1, 216, 111, 347, -1, 103, 971 126, 127, 104, 214, -1, 351, 214, -1, 103, 126, 972 127, 104, 336, 214, -1, 351, 336, 214, -1, 336, 973 214, -1, 103, 126, 127, 104, 349, -1, 351, 349, 974 -1, 103, 126, 127, 104, 336, 349, -1, 351, 336, 975 349, -1, 336, 349, -1, 103, 126, 216, 111, 127, 976 104, -1, 103, 126, 216, 155, 127, 104, -1, 103, 977 126, 220, 155, 127, 104, -1, 103, 126, 220, 216, 978 155, 127, 104, -1, 356, -1, 216, 356, -1, 353, 979 -1, 354, -1, 355, -1, 111, 214, -1, 216, 111, 980 214, -1, 111, 357, -1, 216, 111, 357, -1, 111, 981 352, -1, 216, 111, 352, -1, 103, 126, 127, 104, 982 214, -1, 103, 126, 127, 104, 336, 214, -1, 336, 983 214, -1, 103, 126, 127, 104, 354, -1, 103, 126, 984 127, 104, 336, 354, -1, 336, 354, -1, 103, 126, 985 250, 127, 104, -1, 103, 126, 127, 104, 101, 247, 986 102, -1, 356, 101, 126, 247, 127, 102, -1, 207, 987 101, 126, 247, 127, 102, -1, -1, 108, -1, -1, 988 123, 155, -1 988 989 }; 989 990 … … 991 992 static const yytype_uint16 yyrline[] = 992 993 { 993 0, 2 82, 282, 288, 298, 299, 300, 304, 305, 306,994 3 10, 311, 315, 319, 320, 324, 325, 331, 333, 335,995 33 7, 339, 341, 346, 347, 353, 355, 357, 358, 360,996 3 61, 363, 366, 371, 372, 378, 379, 380, 385, 387,997 3 92, 393, 397, 399, 401, 403, 405, 410, 411, 413,998 41 5, 417, 419, 421, 427, 429, 431, 433, 435, 437,999 43 9, 441, 446, 447, 448, 449, 453, 454, 456, 461,1000 4 62, 464, 466, 471, 472, 474, 479, 480, 482, 487,1001 48 8, 490, 492, 494, 499, 500, 502, 507, 508, 513,1002 51 4, 519, 520, 525, 526, 531, 532, 537, 538, 540,1003 5 42, 547, 552, 553, 555, 557, 563, 564, 570, 572,1004 57 4, 576, 581, 582, 587, 588, 589, 590, 591, 592,1005 5 93, 594, 595, 596, 600, 601, 607, 608, 614, 615,1006 61 6, 617, 618, 619, 620, 621, 625, 630, 632, 642,1007 6 43, 648, 650, 652, 654, 658, 659, 664, 669, 672,1008 67 4, 676, 682, 684, 692, 693, 695, 699, 700, 705,1009 70 6, 711, 712, 716, 721, 722, 726, 728, 734, 735,1010 73 9, 741, 743, 745, 751, 752, 756, 757, 761, 763,1011 76 5, 770, 772, 777, 779, 783, 787, 791, 795, 799,1012 801, 803, 808, 810, 812, 821, 824, 826, 831, 833,1013 83 8, 851, 852, 857, 859, 864, 868, 870, 872, 874,1014 87 8, 880, 884, 885, 889, 893, 894, 900, 902, 906,1015 907, 912, 914, 918, 919, 923, 925, 929, 930, 934,1016 9 35, 939, 940, 956, 957, 958, 959, 960, 964, 969,1017 9 76, 986, 991, 996, 1004, 1009, 1014, 1019, 1024, 1032,1018 10 37, 1050, 1056, 1063, 1065, 1072, 1077, 1082, 1094, 1099,1019 1 104, 1109, 1114, 1122, 1127, 1135, 1136, 1137, 1138, 1144,1020 11 49, 1157, 1158, 1159, 1160, 1164, 1165, 1166, 1167, 1172,1021 11 73, 1183, 1184, 1189, 1190, 1195, 1197, 1199, 1201, 1203,1022 1 206, 1205, 1217, 1218, 1220, 1230, 1231, 1236, 1240, 1242,1023 12 44, 1246, 1248, 1250, 1252, 1254, 1259, 1261, 1263, 1265,1024 12 67, 1269, 1271, 1273, 1275, 1277, 1279, 1281, 1287, 1288,1025 12 90, 1292, 1294, 1299, 1300, 1306, 1307, 1309, 1311, 1316,1026 13 18, 1320, 1322, 1327, 1328, 1330, 1332, 1337, 1338, 1340,1027 13 45, 1346, 1348, 1350, 1355, 1357, 1359, 1364, 1365, 1369,1028 13 71, 1373, 1375, 1377, 1379, 1381, 1383, 1386, 1391, 1393,1029 13 98, 1400, 1405, 1406, 1408, 1409, 1414, 1415, 1417, 1419,1030 14 24, 1426, 1432, 1433, 1435, 1438, 1441, 1446, 1447, 1452,1031 14 57, 1461, 1463, 1465, 1470, 1472, 1478, 1479, 1487, 1488,1032 14 92, 1493, 1494, 1496, 1498, 1506, 1507, 1509, 1511, 1516,1033 15 17, 1523, 1524, 1528, 1529, 1534, 1535, 1536, 1538, 1547,1034 15 48, 1550, 1553, 1555, 1559, 1560, 1561, 1563, 1565, 1569,1035 15 74, 1582, 1583, 1592, 1594, 1599, 1600, 1601, 1605, 1606,1036 1 607, 1611, 1612, 1613, 1617, 1618, 1619, 1624, 1625, 1626,1037 16 27, 1633, 1634, 1638, 1639, 1643, 1644, 1645, 1646, 1661,1038 16 62, 1667, 1668, 1672, 1674, 1678, 1680, 1682, 1706, 1707,1039 1 709, 1711, 1716, 1718, 1720, 1725, 1726, 1732, 1731, 1735,1040 17 39, 1741, 1743, 1749, 1750, 1755, 1760, 1762, 1767, 1769,1041 17 70, 1772, 1777, 1779, 1781, 1786, 1788, 1793, 1798, 1806,1042 1 812, 1811, 1825, 1826, 1831, 1832, 1836, 1841, 1846, 1854,1043 18 59, 1870, 1871, 1882, 1883, 1889, 1890, 1894, 1895, 1896,1044 18 99, 1898, 1909, 1914, 1921, 1927, 1936, 1942, 1948, 1954,1045 19 60, 1968, 1974, 1982, 1988, 1997, 1998, 1999, 2003, 2007,1046 2009, 2012, 2014, 2018, 2019, 2023, 2027, 2028, 2031, 2033,1047 20 34, 2038, 2039, 2040, 2041, 2076, 2077, 2078, 2079, 2083,1048 20 88, 2093, 2095, 2097, 2102, 2104, 2106, 2108, 2113, 2115,1049 21 25, 2126, 2127, 2131, 2133, 2135, 2140, 2142, 2144, 2149,1050 21 51, 2153, 2162, 2163, 2164, 2168, 2170, 2172, 2177, 2179,1051 21 81, 2186, 2188, 2190, 2205, 2206, 2207, 2208, 2212, 2217,1052 22 22, 2224, 2226, 2231, 2233, 2235, 2237, 2242, 2244, 2246,1053 22 56, 2257, 2258, 2259, 2263, 2265, 2267, 2272, 2274, 2276,1054 22 78, 2283, 2285, 2287, 2318, 2319, 2320, 2321, 2325, 2333,1055 23 35, 2337, 2342, 2344, 2349, 2351, 2365, 2366, 2367, 2371,1056 23 73, 2375, 2377, 2379, 2384, 2385, 2387, 2389, 2394, 2396,1057 23 98, 2404, 2406, 2408, 2412, 2414, 2416, 2418, 2432, 2433,1058 24 34, 2438, 2440, 2442, 2444, 2446, 2451, 2452, 2454, 2456,1059 24 61, 2463, 2465, 2471, 2472, 2474, 2484, 2487, 2489, 2492,1060 24 94, 2496, 2509, 2510, 2511, 2515, 2517, 2519, 2521, 2523,1061 25 28, 2529, 2531, 2533, 2538, 2540, 2548, 2549, 2550, 2555,1062 25 56, 2560, 2562, 2564, 2566, 2568, 2570, 2577, 2579, 2581,1063 25 83, 2585, 2587, 2589, 2591, 2593, 2595, 2600, 2602, 2604,1064 2 609, 2635, 2636, 2638, 2642, 2643, 2647, 2649, 2651, 2653,1065 26 55, 2657, 2664, 2666, 2668, 2670, 2672, 2674, 2679, 2684,1066 26 86, 2688, 2708, 2710, 2715, 2716994 0, 279, 279, 285, 294, 295, 296, 300, 301, 302, 995 306, 307, 311, 315, 316, 320, 321, 327, 329, 331, 996 333, 335, 337, 342, 343, 349, 351, 353, 354, 356, 997 357, 359, 362, 367, 368, 374, 375, 376, 381, 383, 998 388, 389, 393, 395, 397, 399, 401, 406, 407, 409, 999 411, 413, 415, 417, 423, 425, 427, 429, 431, 433, 1000 435, 437, 442, 443, 444, 445, 449, 450, 452, 457, 1001 458, 460, 462, 467, 468, 470, 475, 476, 478, 483, 1002 484, 486, 488, 490, 495, 496, 498, 503, 504, 509, 1003 510, 515, 516, 521, 522, 527, 528, 533, 534, 536, 1004 538, 543, 548, 549, 551, 553, 559, 560, 566, 568, 1005 570, 572, 577, 578, 583, 584, 585, 586, 587, 588, 1006 589, 590, 591, 592, 596, 597, 603, 604, 610, 611, 1007 612, 613, 614, 615, 616, 617, 621, 626, 628, 638, 1008 639, 644, 646, 648, 650, 654, 655, 660, 665, 668, 1009 670, 672, 677, 679, 687, 688, 690, 694, 695, 700, 1010 701, 706, 707, 711, 716, 717, 721, 723, 729, 730, 1011 734, 736, 738, 740, 746, 747, 751, 752, 756, 758, 1012 760, 765, 767, 772, 774, 778, 781, 785, 788, 792, 1013 794, 796, 801, 803, 805, 814, 816, 818, 823, 825, 1014 830, 843, 844, 849, 851, 856, 860, 862, 864, 866, 1015 870, 872, 876, 877, 881, 885, 886, 892, 894, 898, 1016 899, 904, 906, 910, 911, 915, 917, 921, 922, 926, 1017 927, 931, 932, 947, 948, 949, 950, 951, 955, 960, 1018 967, 977, 982, 987, 995, 1000, 1005, 1010, 1015, 1023, 1019 1028, 1040, 1045, 1052, 1054, 1061, 1066, 1071, 1082, 1087, 1020 1092, 1097, 1102, 1110, 1115, 1123, 1124, 1125, 1126, 1132, 1021 1137, 1145, 1146, 1147, 1148, 1152, 1153, 1154, 1155, 1160, 1022 1161, 1170, 1171, 1176, 1177, 1182, 1184, 1186, 1188, 1190, 1023 1193, 1192, 1204, 1205, 1207, 1217, 1218, 1223, 1227, 1229, 1024 1231, 1233, 1235, 1237, 1239, 1241, 1246, 1248, 1250, 1252, 1025 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1274, 1275, 1026 1277, 1279, 1281, 1286, 1287, 1293, 1294, 1296, 1298, 1303, 1027 1305, 1307, 1309, 1314, 1315, 1317, 1319, 1324, 1325, 1327, 1028 1332, 1333, 1335, 1337, 1342, 1344, 1346, 1351, 1352, 1356, 1029 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1375, 1380, 1030 1382, 1387, 1389, 1394, 1395, 1397, 1398, 1403, 1404, 1406, 1031 1408, 1413, 1415, 1421, 1422, 1424, 1427, 1430, 1435, 1436, 1032 1441, 1446, 1450, 1452, 1454, 1459, 1461, 1467, 1468, 1476, 1033 1477, 1481, 1482, 1483, 1485, 1487, 1494, 1495, 1497, 1499, 1034 1504, 1505, 1511, 1512, 1516, 1517, 1522, 1523, 1524, 1526, 1035 1534, 1535, 1537, 1540, 1542, 1546, 1547, 1548, 1550, 1552, 1036 1556, 1561, 1569, 1570, 1579, 1581, 1586, 1587, 1588, 1592, 1037 1593, 1594, 1598, 1599, 1604, 1605, 1606, 1611, 1612, 1613, 1038 1614, 1620, 1621, 1625, 1626, 1630, 1631, 1632, 1633, 1648, 1039 1649, 1654, 1655, 1660, 1662, 1665, 1667, 1669, 1692, 1693, 1040 1695, 1697, 1702, 1704, 1706, 1711, 1712, 1718, 1717, 1721, 1041 1725, 1727, 1729, 1735, 1736, 1741, 1746, 1748, 1753, 1755, 1042 1756, 1758, 1763, 1765, 1767, 1772, 1774, 1779, 1784, 1792, 1043 1798, 1797, 1811, 1812, 1817, 1818, 1822, 1827, 1832, 1840, 1044 1845, 1856, 1857, 1868, 1869, 1875, 1876, 1880, 1881, 1882, 1045 1885, 1884, 1895, 1900, 1906, 1912, 1921, 1927, 1933, 1939, 1046 1945, 1953, 1959, 1967, 1973, 1982, 1983, 1984, 1988, 1992, 1047 1994, 1997, 1999, 2003, 2004, 2008, 2012, 2013, 2016, 2018, 1048 2019, 2023, 2024, 2025, 2026, 2060, 2061, 2062, 2063, 2067, 1049 2072, 2077, 2079, 2081, 2086, 2088, 2090, 2092, 2097, 2099, 1050 2109, 2110, 2111, 2115, 2117, 2119, 2124, 2126, 2128, 2133, 1051 2135, 2137, 2146, 2147, 2148, 2152, 2154, 2156, 2161, 2163, 1052 2165, 2170, 2172, 2174, 2189, 2190, 2191, 2192, 2196, 2201, 1053 2206, 2208, 2210, 2215, 2217, 2219, 2221, 2226, 2228, 2230, 1054 2240, 2241, 2242, 2243, 2247, 2249, 2251, 2256, 2258, 2260, 1055 2262, 2267, 2269, 2271, 2302, 2303, 2304, 2305, 2309, 2317, 1056 2319, 2321, 2326, 2328, 2333, 2335, 2349, 2350, 2351, 2355, 1057 2357, 2359, 2361, 2363, 2368, 2369, 2371, 2373, 2378, 2380, 1058 2382, 2388, 2390, 2392, 2396, 2398, 2400, 2402, 2416, 2417, 1059 2418, 2422, 2424, 2426, 2428, 2430, 2435, 2436, 2438, 2440, 1060 2445, 2447, 2449, 2455, 2456, 2458, 2467, 2470, 2472, 2475, 1061 2477, 2479, 2492, 2493, 2494, 2498, 2500, 2502, 2504, 2506, 1062 2511, 2512, 2514, 2516, 2521, 2523, 2531, 2532, 2533, 2538, 1063 2539, 2543, 2545, 2547, 2549, 2551, 2553, 2560, 2562, 2564, 1064 2566, 2568, 2570, 2572, 2574, 2576, 2578, 2583, 2585, 2587, 1065 2592, 2618, 2619, 2621, 2625, 2626, 2630, 2632, 2634, 2636, 1066 2638, 2640, 2647, 2649, 2651, 2653, 2655, 2657, 2662, 2667, 1067 2669, 2671, 2689, 2691, 2696, 2697 1067 1068 }; 1068 1069 #endif … … 1239 1240 228, 228, 228, 229, 229, 229, 229, 230, 230, 230, 1240 1241 231, 231, 231, 231, 232, 232, 232, 233, 233, 234, 1241 234, 234, 234, 234, 234, 234, 234, 234, 23 5, 235,1242 23 6, 236, 237, 237, 237, 237, 238, 238, 238, 238,1243 23 9, 239, 240, 240, 240, 240, 240, 241, 241, 242,1244 24 3, 244, 244, 244, 245, 245, 246, 246, 247, 247,1245 24 8, 248, 248, 248, 248, 249, 249, 249, 249, 250,1246 250, 25 1, 251, 252, 252, 253, 253, 253, 253, 254,1247 254, 254, 254, 254, 25 5, 255, 255, 255, 255, 256,1248 256, 25 7, 257, 258, 258, 259, 259, 259, 260, 260,1249 260, 26 1, 261, 261, 262, 262, 262, 263, 263, 263,1242 234, 234, 234, 234, 234, 234, 234, 234, 234, 235, 1243 235, 236, 236, 237, 237, 237, 237, 238, 238, 238, 1244 238, 239, 239, 240, 240, 240, 240, 240, 241, 241, 1245 242, 243, 244, 244, 244, 245, 245, 246, 246, 247, 1246 247, 248, 248, 248, 248, 248, 249, 249, 249, 249, 1247 250, 250, 251, 251, 252, 252, 253, 253, 253, 253, 1248 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 1249 256, 256, 257, 257, 258, 258, 259, 259, 259, 260, 1250 260, 260, 261, 261, 262, 262, 262, 263, 263, 263, 1250 1251 263, 264, 264, 265, 265, 266, 266, 266, 266, 267, 1251 1252 267, 268, 268, 269, 269, 269, 269, 269, 270, 270, … … 1318 1319 4, 4, 4, 1, 2, 2, 3, 1, 2, 2, 1319 1320 1, 2, 2, 3, 1, 2, 2, 1, 1, 4, 1320 2, 5, 9, 7, 10, 12, 7, 13, 2, 2,1321 1, 2, 2, 3, 2, 3, 1, 2, 3, 2,1322 2, 4, 0, 1, 2, 2, 1, 0, 1, 2,1323 2, 5, 6, 2, 2, 4, 0, 2, 0, 1,1324 1, 1, 5, 5, 5, 1, 5, 5, 9, 1,1325 5, 0, 1, 1, 5, 1, 1, 5, 5, 1,1326 3, 3, 4, 1, 1, 1, 1, 2, 1, 3,1327 3, 1, 2, 1, 3, 1, 1, 1, 1, 1,1321 2, 5, 9, 7, 10, 12, 5, 7, 13, 2, 1322 2, 1, 2, 2, 3, 2, 3, 1, 2, 3, 1323 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 1324 2, 2, 5, 6, 2, 2, 4, 0, 2, 0, 1325 1, 1, 1, 5, 5, 5, 1, 5, 5, 9, 1326 1, 5, 0, 1, 1, 5, 1, 1, 5, 5, 1327 1, 3, 3, 4, 1, 1, 1, 1, 2, 1, 1328 3, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1328 1329 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1329 1330 2, 0, 2, 1, 4, 1, 2, 3, 4, 2, … … 1376 1377 573, 574, 279, 0, 714, 715, 0, 12, 279, 0, 1377 1378 255, 256, 0, 280, 275, 276, 277, 278, 510, 290, 1378 38 0, 532, 533, 358, 359, 12, 432, 433, 11, 428,1379 43 1, 0, 487, 482, 473, 432, 433, 0, 0, 512,1380 0, 280, 279, 0, 0, 0, 0, 0, 0, 0,1381 0, 279, 2, 0, 716, 280, 566, 578, 720, 713,1382 71 1, 718, 0, 0, 238, 2, 0, 516, 426, 427,1383 425, 0, 0, 0, 0, 531, 0, 588, 0, 0,1384 52 9, 525, 531, 546, 531, 531, 526, 2, 527, 531,1385 5 85, 531, 531, 0, 0, 0, 279, 279, 298, 345,1386 0, 2, 279, 245, 282, 293, 326, 338, 0, 2,1387 0, 441, 246, 280, 319, 334, 341, 459, 0, 2,1388 0, 296, 320, 327, 328, 0, 335, 339, 342, 346,1389 2, 279, 350, 0, 38 3, 460, 464, 0, 0, 0,1379 381, 532, 533, 359, 360, 12, 433, 431, 11, 429, 1380 432, 0, 487, 482, 473, 433, 0, 0, 512, 0, 1381 280, 279, 0, 0, 0, 0, 0, 0, 0, 0, 1382 279, 2, 0, 716, 280, 566, 578, 720, 713, 711, 1383 718, 0, 0, 238, 2, 0, 516, 427, 428, 426, 1384 0, 0, 0, 0, 531, 0, 588, 0, 0, 529, 1385 525, 531, 546, 531, 531, 526, 2, 527, 531, 585, 1386 531, 531, 0, 0, 0, 279, 279, 298, 345, 0, 1387 2, 279, 245, 282, 293, 326, 338, 0, 2, 0, 1388 441, 246, 280, 319, 334, 341, 459, 0, 2, 0, 1389 296, 320, 327, 328, 0, 335, 339, 342, 346, 0, 1390 2, 279, 350, 0, 384, 460, 464, 0, 0, 0, 1390 1391 1, 279, 2, 514, 560, 562, 279, 2, 724, 280, 1391 1392 727, 529, 529, 280, 0, 0, 0, 258, 531, 526, … … 1396 1397 76, 79, 84, 87, 89, 91, 93, 95, 97, 102, 1397 1398 479, 734, 439, 478, 0, 437, 438, 0, 550, 565, 1398 568, 571, 577, 580, 583, 2, 279, 0, 3, 41 3,1399 0, 42 1, 280, 279, 292, 318, 272, 333, 340, 3,1400 3, 39 5, 399, 409, 414, 458, 279, 415, 689, 690,1401 279, 41 6, 418, 279, 2, 567, 579, 712, 2, 2,1399 568, 571, 577, 580, 583, 2, 279, 0, 3, 414, 1400 0, 422, 280, 279, 292, 318, 272, 333, 340, 3, 1401 3, 396, 400, 410, 415, 458, 279, 416, 689, 690, 1402 279, 417, 419, 279, 2, 567, 579, 712, 2, 2, 1402 1403 233, 2, 0, 0, 443, 442, 137, 2, 2, 235, 1403 1404 2, 2, 234, 2, 266, 2, 267, 0, 265, 0, … … 1407 1408 0, 280, 279, 279, 717, 721, 719, 518, 279, 529, 1408 1409 239, 247, 294, 0, 2, 519, 279, 483, 321, 322, 1409 268, 336, 343, 279, 279, 2, 372, 279, 360, 0,1410 0, 366, 711, 279, 732, 386, 0, 461, 484, 236,1411 23 7, 504, 279, 423, 0, 279, 221, 0, 2, 223,1412 0, 280, 0, 241, 2, 242, 263, 0, 0, 2,1413 279, 529, 279, 470, 472, 471, 0, 0, 734, 0,1414 279, 0, 279, 474, 279, 544, 542, 543, 541, 0,1415 536, 539, 66, 101, 0, 279, 54, 50, 279, 59,1416 279, 279, 48, 49, 61, 2, 124, 0, 0, 435,1417 0, 434, 279, 52, 53, 16, 0, 30, 31, 35,1418 2, 0, 114, 115, 116, 117, 118, 119, 120, 121,1419 12 2, 123, 0, 0, 51, 0, 0, 0, 0, 0,1410 268, 336, 343, 279, 279, 279, 2, 373, 279, 361, 1411 0, 0, 367, 711, 279, 732, 387, 0, 461, 484, 1412 236, 237, 504, 279, 424, 0, 279, 221, 0, 2, 1413 223, 0, 280, 0, 241, 2, 242, 263, 0, 0, 1414 2, 279, 529, 279, 470, 472, 471, 0, 0, 734, 1415 0, 279, 0, 279, 474, 279, 544, 542, 543, 541, 1416 0, 536, 539, 66, 101, 0, 279, 54, 50, 279, 1417 59, 279, 279, 48, 49, 61, 2, 124, 0, 0, 1418 435, 0, 434, 279, 52, 53, 16, 0, 30, 31, 1419 35, 2, 0, 114, 115, 116, 117, 118, 119, 120, 1420 121, 122, 123, 0, 0, 51, 0, 0, 0, 0, 1420 1421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1421 0, 0, 0, 0, 0, 105, 2, 629, 440, 626,1422 531, 531, 634, 462, 279, 2, 569, 2, 570,0,1423 581, 582, 279, 2, 279, 0, 691, 280, 695, 686,1424 68 7, 693, 279, 0, 618, 2, 2, 651, 531, 734,1425 601, 531, 531, 734, 531, 615, 531, 531, 665, 422,1426 648, 531, 531, 656, 663, 279, 417, 280,0, 0,1427 279, 701, 280, 706, 734, 698, 279, 703, 734, 0,1428 279, 279, 0, 3, 17, 2, 0, 0, 445, 732,1429 0, 0, 451, 225, 0, 279, 0, 0, 0, 529,1430 5 53, 557, 559, 589, 592, 596, 599, 552, 591, 0,1431 269, 3, 0, 279, 262, 0, 0, 0, 0, 260,1432 0, 2, 0, 0, 243, 520, 279, 0, 439, 3,1433 3, 0, 0, 279, 0, 0, 675, 370, 373, 377,1434 531, 377, 680, 376, 672, 531, 531, 349, 361, 369,1435 362, 531, 364, 367, 279, 733, 0, 0, 384, 732,1436 280, 3, 402, 3, 406, 405, 575, 0, 515, 279,1437 3, 3, 279, 421, 280, 3, 415, 416, 2, 0,1438 0, 0, 469, 291, 279, 465, 467, 3, 2, 2,1439 0, 486, 3, 0, 538, 126, 0, 210, 0,0,1440 2, 0, 0, 36, 0, 0, 279, 21, 0, 22,1441 0, 675, 436, 0, 106, 0, 3, 2, 28, 2,1442 0, 33, 0, 2, 26, 103, 104, 70, 71, 72,1443 7 4, 75, 77, 78, 82, 83, 80, 81, 85, 86,1444 8 8, 90, 92, 94, 96, 0, 0, 735, 279, 0,1445 0, 0, 630, 631, 627, 628, 481, 480, 279,0,1446 0, 0, 280, 279, 279, 645, 688, 344, 0, 722,1447 279, 725, 644, 2, 279, 0, 0, 0, 0, 0,1448 0, 0, 0, 3, 652, 604, 619, 653, 2, 600,1449 607, 419, 602, 603, 420, 2, 614, 622, 616, 617,1450 6 49, 650, 664, 692, 696, 694, 734, 253, 2, 728,1451 2, 410, 700, 705, 411, 279, 3, 389, 3, 3,1452 3, 441, 0, 3, 3, 2, 453, 450, 733,0,1453 446, 2, 449, 452, 0, 279, 226, 248, 3, 257,1454 259, 0, 441, 2, 555, 556, 2, 594, 595, 0,1455 3, 0, 521, 3, 330, 329, 332, 331, 463, 279,1456 0, 522, 0, 523, 2, 629, 0, 0, 363, 365,1457 2, 0, 0, 0, 0, 0, 379, 676, 677, 374,1458 378, 375, 673, 674, 368, 372, 351, 386, 381, 387,1459 0, 0, 0, 424, 224, 0, 0, 3, 2, 651,1460 417, 0, 511, 0, 734, 473, 0, 279, 279, 279,1461 0, 535, 537, 127, 0, 206, 0, 0, 211, 212,1462 55, 60, 279, 0, 58, 57, 0, 0, 125, 676,1463 0, 67, 68, 107, 112, 3, 108, 106, 0, 0,1464 3, 25, 35, 3, 0, 99, 0, 3, 633, 637,1465 640, 632, 3, 576, 108, 2, 279, 3, 3, 280,1466 0, 2, 2, 723, 726, 0, 3, 606, 610, 613,1467 6 21, 655, 659, 662, 279, 0, 3, 605, 620, 654,1468 279, 279, 412, 279, 279, 279, 0, 0, 0, 0,1469 240, 108, 0, 101, 0, 3, 3, 0, 447, 0,1470 444, 0, 0, 229, 279, 0, 0, 126, 0, 0,1471 0, 0, 0, 126, 0, 0, 0, 2, 0, 0,1472 3, 128, 129, 2, 139, 130, 131, 132, 133, 134,1473 13 5, 141, 143, 0, 0, 0, 270, 279, 279, 531,1474 641, 0, 0, 0, 524, 630, 0, 0, 279, 279,1475 679, 683, 685, 678, 371, 385, 382, 563, 2, 647,1476 646, 0, 652, 2, 466, 468, 488, 3, 496, 497,1477 0, 2, 492, 3, 3, 0, 0, 540, 0, 0,1478 210, 0, 3, 37, 108, 732, 106, 0, 3, 644,1479 42, 3, 40, 3, 34, 0, 3, 98, 100, 0,1480 2, 635, 636, 0, 697, 279, 702, 279, 0, 0,1481 0, 3, 279, 279, 279, 621, 0, 2, 608, 609,1482 2, 6 23, 2, 657, 658, 0, 666, 0, 3, 0,1483 3, 3, 3, 3, 397, 396, 400, 0, 731, 2,1484 2, 730, 109, 0, 0, 0, 0, 3, 448, 3,1485 0, 227, 142, 3, 280, 279, 0, 0, 0, 0,1486 2, 187, 0, 185, 0, 0, 0, 0, 0, 0,1487 191, 0, 279, 531, 147, 144, 279, 0, 0, 252,1488 264, 3, 3, 530, 642, 597, 279, 279, 279, 353,1489 356, 0, 2, 681, 682, 279, 251, 279, 0, 499,1490 476, 279, 0, 0, 475, 490, 0, 207, 0, 213,1491 106, 0, 0, 113, 110, 0, 0,0, 0, 0,1492 0, 24, 0, 638, 279, 564, 699, 704, 707, 708,1493 70 9, 0, 3, 3, 660, 279, 279, 279, 3, 3,1494 0, 668, 0, 0, 0, 0, 729, 279, 279, 3,1495 528, 109, 455, 0, 0, 230, 280, 0, 0,0,1496 0, 279, 188, 186, 0, 183, 189, 0, 0, 0,1497 192, 195, 193, 190, 0, 126, 140, 138, 228,0,1498 0, 0, 279, 279, 108, 279, 404, 408, 407, 0,1499 4 93, 2, 494, 2, 495, 489, 279, 214, 0, 0,1500 3, 644, 32, 111, 2, 45, 2, 43, 41, 29,1501 109, 27, 3, 710, 0, 0, 3, 3, 3, 0,1502 0, 667, 669, 611, 624, 254, 2, 394, 3, 393,1503 0, 457, 454, 126, 0, 0, 126, 3, 0, 126,1504 184, 0, 2, 200, 194, 0, 108, 136, 558, 598,1505 0, 352, 279, 3, 2, 0, 0, 2, 208, 215,1506 0, 0, 0, 0, 0, 0, 250, 249, 0,0,1507 0, 670, 671, 279, 0, 456, 148, 0, 0, 2,1508 161, 126, 150, 0, 178, 0, 126, 0, 2, 152,1509 0, 2, 2, 279, 0, 354, 0, 279, 498, 500,1510 491, 0, 0, 111, 38, 3, 3, 639, 612, 625,1511 6 61, 398, 126, 154, 157, 0, 156, 160, 3, 163,1512 16 2, 0, 126, 180, 126, 3, 0, 279, 0, 2,1513 279, 279, 684, 2, 209, 216, 0, 0, 0, 149,1514 0, 0, 1 59, 217, 164, 2, 219, 179, 0, 182,1515 1 68, 196, 3, 201, 205, 0, 279, 355, 279, 0,1516 39, 46, 44, 155, 158, 126, 0, 165, 279, 126,1517 1 26, 0, 169, 0, 0, 675, 202, 203, 204, 197,1518 3, 357, 279, 145, 166, 151, 126, 220, 181, 176,1519 174, 170, 153, 126, 0, 676, 0, 0, 146, 167,1520 177, 171, 175, 174, 172, 3, 0, 477, 173, 198,1521 3, 1991422 0, 0, 0, 0, 0, 0, 105, 2, 629, 440, 1423 626, 531, 531, 634, 462, 279, 2, 569, 2, 570, 1424 0, 581, 582, 279, 2, 279, 0, 691, 280, 695, 1425 686, 687, 693, 279, 0, 618, 2, 2, 651, 531, 1426 734, 601, 531, 531, 734, 531, 615, 531, 531, 665, 1427 423, 648, 531, 531, 656, 663, 279, 418, 280, 0, 1428 0, 279, 701, 280, 706, 734, 698, 279, 703, 734, 1429 0, 279, 279, 0, 3, 17, 2, 0, 0, 445, 1430 732, 0, 0, 451, 225, 0, 279, 0, 0, 0, 1431 529, 553, 557, 559, 589, 592, 596, 599, 552, 591, 1432 0, 269, 3, 0, 279, 262, 0, 0, 0, 0, 1433 260, 0, 2, 0, 0, 243, 520, 279, 0, 0, 1434 439, 3, 3, 0, 0, 279, 0, 0, 675, 371, 1435 374, 378, 531, 378, 680, 377, 672, 531, 531, 349, 1436 362, 370, 363, 531, 365, 368, 279, 733, 0, 0, 1437 385, 732, 280, 3, 403, 3, 407, 406, 575, 0, 1438 515, 279, 3, 3, 279, 422, 280, 3, 416, 417, 1439 2, 0, 0, 0, 469, 291, 279, 465, 467, 3, 1440 2, 2, 0, 486, 3, 0, 538, 126, 0, 210, 1441 0, 0, 2, 0, 0, 36, 0, 0, 279, 21, 1442 0, 22, 0, 675, 436, 0, 106, 0, 3, 2, 1443 28, 2, 0, 33, 0, 2, 26, 103, 104, 70, 1444 71, 72, 74, 75, 77, 78, 82, 83, 80, 81, 1445 85, 86, 88, 90, 92, 94, 96, 0, 0, 735, 1446 279, 0, 0, 0, 630, 631, 627, 628, 481, 480, 1447 279, 0, 0, 0, 280, 279, 279, 645, 688, 344, 1448 0, 722, 279, 725, 644, 2, 279, 0, 0, 0, 1449 0, 0, 0, 0, 0, 3, 652, 604, 619, 653, 1450 2, 600, 607, 420, 602, 603, 421, 2, 614, 622, 1451 616, 617, 649, 650, 664, 692, 696, 694, 734, 253, 1452 2, 728, 2, 411, 700, 705, 412, 279, 3, 390, 1453 3, 3, 3, 441, 0, 3, 3, 2, 453, 450, 1454 733, 0, 446, 2, 449, 452, 0, 279, 226, 248, 1455 3, 257, 259, 0, 441, 2, 555, 556, 2, 594, 1456 595, 0, 3, 0, 521, 3, 330, 329, 332, 331, 1457 463, 279, 0, 522, 0, 523, 356, 2, 629, 0, 1458 0, 364, 366, 2, 0, 0, 0, 0, 0, 380, 1459 676, 677, 375, 379, 376, 673, 674, 369, 373, 351, 1460 387, 382, 388, 0, 0, 0, 425, 224, 0, 0, 1461 3, 2, 651, 418, 0, 511, 0, 734, 473, 0, 1462 279, 279, 279, 0, 535, 537, 127, 0, 206, 0, 1463 0, 211, 212, 55, 60, 279, 0, 58, 57, 0, 1464 0, 125, 676, 0, 67, 68, 107, 112, 3, 108, 1465 106, 0, 0, 3, 25, 35, 3, 0, 99, 0, 1466 3, 633, 637, 640, 632, 3, 576, 108, 2, 279, 1467 3, 3, 280, 0, 2, 2, 723, 726, 0, 3, 1468 606, 610, 613, 621, 655, 659, 662, 279, 0, 3, 1469 605, 620, 654, 279, 279, 413, 279, 279, 279, 0, 1470 0, 0, 0, 240, 108, 0, 101, 0, 3, 3, 1471 0, 447, 0, 444, 0, 0, 229, 279, 0, 0, 1472 126, 0, 0, 0, 0, 0, 126, 0, 0, 0, 1473 2, 0, 0, 3, 128, 129, 2, 139, 130, 131, 1474 132, 133, 134, 135, 141, 143, 0, 0, 0, 270, 1475 279, 279, 531, 641, 0, 0, 0, 524, 630, 0, 1476 0, 279, 279, 679, 683, 685, 678, 372, 386, 383, 1477 563, 2, 647, 646, 0, 652, 2, 466, 468, 488, 1478 3, 496, 497, 0, 2, 492, 3, 3, 0, 0, 1479 540, 0, 0, 210, 0, 3, 37, 108, 732, 106, 1480 0, 3, 644, 42, 3, 40, 3, 34, 0, 3, 1481 98, 100, 0, 2, 635, 636, 0, 697, 279, 702, 1482 279, 0, 0, 0, 3, 279, 279, 279, 621, 0, 1483 2, 608, 609, 2, 623, 2, 657, 658, 0, 666, 1484 0, 3, 0, 3, 3, 3, 3, 398, 397, 401, 1485 0, 731, 2, 2, 730, 109, 0, 0, 0, 0, 1486 3, 448, 3, 0, 227, 142, 3, 280, 279, 0, 1487 0, 0, 0, 2, 187, 0, 185, 0, 0, 0, 1488 0, 0, 0, 191, 0, 279, 531, 147, 144, 279, 1489 0, 0, 252, 264, 3, 3, 530, 642, 597, 279, 1490 279, 279, 353, 357, 0, 2, 681, 682, 279, 251, 1491 279, 0, 499, 476, 279, 0, 0, 475, 490, 0, 1492 207, 0, 213, 106, 0, 0, 113, 110, 0, 0, 1493 0, 0, 0, 0, 24, 0, 638, 279, 564, 699, 1494 704, 707, 708, 709, 0, 3, 3, 660, 279, 279, 1495 279, 3, 3, 0, 668, 0, 0, 0, 0, 729, 1496 279, 279, 3, 528, 109, 455, 0, 0, 230, 280, 1497 0, 0, 0, 0, 279, 188, 186, 0, 183, 189, 1498 0, 0, 0, 192, 195, 193, 190, 0, 126, 140, 1499 138, 228, 0, 0, 0, 279, 279, 108, 279, 405, 1500 409, 408, 0, 493, 2, 494, 2, 495, 489, 279, 1501 214, 0, 0, 3, 644, 32, 111, 2, 45, 2, 1502 43, 41, 29, 109, 27, 3, 710, 0, 0, 3, 1503 3, 3, 0, 0, 667, 669, 611, 624, 254, 2, 1504 395, 3, 394, 0, 457, 454, 126, 0, 0, 126, 1505 3, 0, 126, 184, 0, 2, 200, 194, 0, 108, 1506 136, 558, 598, 0, 352, 279, 3, 2, 0, 0, 1507 2, 208, 215, 0, 0, 0, 0, 0, 0, 250, 1508 249, 0, 0, 0, 670, 671, 279, 0, 456, 148, 1509 0, 0, 2, 161, 126, 150, 0, 178, 0, 126, 1510 0, 2, 152, 0, 2, 2, 279, 0, 354, 0, 1511 279, 498, 500, 491, 0, 0, 111, 38, 3, 3, 1512 639, 612, 625, 661, 399, 126, 154, 157, 0, 156, 1513 160, 3, 163, 162, 0, 126, 180, 126, 3, 0, 1514 279, 0, 2, 279, 279, 684, 2, 209, 216, 0, 1515 0, 0, 149, 0, 0, 159, 217, 164, 2, 219, 1516 179, 0, 182, 168, 196, 3, 201, 205, 0, 279, 1517 355, 279, 0, 39, 46, 44, 155, 158, 126, 0, 1518 165, 279, 126, 126, 0, 169, 0, 0, 675, 202, 1519 203, 204, 197, 3, 358, 279, 145, 166, 151, 126, 1520 220, 181, 176, 174, 170, 153, 126, 0, 676, 0, 1521 0, 146, 167, 177, 171, 175, 174, 172, 3, 0, 1522 477, 173, 198, 3, 199 1522 1523 }; 1523 1524 … … 1525 1526 static const yytype_int16 yydefgoto[] = 1526 1527 { 1527 -1, 81 4, 456, 291, 45, 129, 130, 292, 293, 294,1528 295, 76 0, 742, 1131, 1132, 296, 297, 298, 299, 300,1529 301, 302, 303, 304, 305, 306, 307, 308, 309, 103 4,1530 50 6, 974, 311, 975, 533, 953, 1059, 1523, 1061, 1062,1531 106 3, 1064, 1524, 1065, 1066, 1454, 1455, 1420, 1421, 1422,1532 150 6, 1507, 1511, 1512, 1541, 1542, 1067, 1378, 1068, 1069,1533 131 0, 1311, 1312, 1492, 1070, 957, 958, 959, 1400, 1484,1534 148 5, 457, 458, 875, 876, 1042, 48, 49, 50, 51,1535 52, 329, 15 3, 55, 56, 57, 58, 59, 331, 61,1528 -1, 816, 457, 291, 45, 129, 130, 292, 293, 294, 1529 295, 762, 744, 1134, 1135, 296, 297, 298, 299, 300, 1530 301, 302, 303, 304, 305, 306, 307, 308, 309, 1037, 1531 507, 977, 311, 978, 534, 956, 1062, 1526, 1064, 1065, 1532 1066, 1067, 1527, 1068, 1069, 1457, 1458, 1423, 1424, 1425, 1533 1509, 1510, 1514, 1515, 1544, 1545, 1070, 1381, 1071, 1072, 1534 1313, 1314, 1315, 1495, 1073, 960, 961, 962, 1403, 1487, 1535 1488, 458, 459, 877, 878, 1045, 48, 49, 50, 51, 1536 52, 329, 152, 55, 56, 57, 58, 59, 331, 61, 1536 1537 62, 253, 64, 65, 264, 333, 334, 68, 69, 70, 1537 71, 114, 73, 19 6, 336, 115, 76, 116, 78, 79,1538 80, 43 7, 438, 439, 440, 677, 919, 678, 81, 82,1539 44 4, 698, 856, 857, 339, 340, 701, 702, 703, 341,1540 342, 343, 344, 45 4, 171, 131, 132, 510, 313, 164,1541 62 8, 629, 630, 631, 632, 83, 117, 477, 478, 945,1542 4 79, 267, 483, 314, 85, 133, 134, 86, 1336, 1111,1543 111 2, 1113, 1114, 87, 88, 719, 89, 263, 90, 91,1544 1 80, 1036, 664, 393, 121, 92, 489, 490, 491, 181,1545 258, 18 3, 184, 185, 259, 95, 96, 97, 98, 99,1546 100, 101, 18 8, 189, 190, 191, 192, 825, 590, 591,1547 59 2, 593, 594, 595, 596, 597, 558, 559, 560, 561,1548 68 2, 102, 599, 600, 601, 602, 603, 604, 918, 684,1549 68 5, 686, 578, 347, 348, 349, 350, 441, 159, 104,1550 105, 351, 352, 69 6, 5551538 71, 114, 73, 195, 336, 115, 76, 116, 78, 79, 1539 80, 438, 439, 440, 441, 679, 922, 680, 81, 82, 1540 445, 700, 858, 859, 339, 340, 703, 704, 705, 341, 1541 342, 343, 344, 455, 170, 131, 132, 511, 313, 163, 1542 629, 630, 631, 632, 633, 83, 117, 478, 479, 948, 1543 480, 267, 484, 314, 85, 133, 134, 86, 1339, 1114, 1544 1115, 1116, 1117, 87, 88, 721, 89, 263, 90, 91, 1545 179, 1039, 665, 393, 121, 92, 490, 491, 492, 180, 1546 258, 182, 183, 184, 259, 95, 96, 97, 98, 99, 1547 100, 101, 187, 188, 189, 190, 191, 827, 591, 592, 1548 593, 594, 595, 596, 597, 598, 559, 560, 561, 562, 1549 684, 102, 600, 601, 602, 603, 604, 605, 921, 686, 1550 687, 688, 579, 347, 348, 349, 350, 442, 158, 104, 1551 105, 351, 352, 698, 556 1551 1552 }; 1552 1553 1553 1554 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1554 1555 STATE-NUM. */ 1555 #define YYPACT_NINF -1 3061556 #define YYPACT_NINF -1297 1556 1557 static const yytype_int16 yypact[] = 1557 1558 { 1558 6112, 10121, -1306, 45, -1306, -1306, -1306, -1306, -1306, -1306,1559 -1 306, 27, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,1560 -1 306, -1306, -1306, -1306, -1306, 94, 94, 94, 808, 829,1561 69, 7553, 431, -1306, -1306, -1306, -1306, -1306, 134, -1306,1562 -1 306, -1306, 1527, -1306, 4935, -1306, -1306, -1306, -1306, -1306,1563 -1 306, 26, 185, -1306, 1590, -1306, -1306, -1306, -1306, 194,1564 5 44, 310, 103, 4656, -1306, -1306, 9491, 1148, -1306, -1306,1565 -1 306, 779, 321, 3969, 180, 1184, 779, 1266, -1306, -1306,1566 614, 276, -1306, 779, 1398, 228, -1306, 350, 396, -1306,1567 -1 306, -1306, -1306, 244, 185, 94, -1306, 94, -1306, -1306,1568 -1 306, -1306, 10357, 1590, -1306, -1306, 1590, -1306, 10416, 306,1569 -1 306, -1306, 946, 10475, -1306, 431, 431, 431, -1306, -1306,1570 -1 306, 94, -1306, -1306, -1306, 360, 406, 415, -1306, -1306,1571 -1 306, 427, -1306, -1306, -1306, -1306, -1306, 436, 460, -1306,1572 463, 431, 8930, 3037, 712, 484, 502, 510, 513, 524,1573 541, 6995, -1306, 566, -1306, 9560, -1306, -1306, -1306, -1306,1574 571, -1306, 234, 4195, -1306, 344, 251, -1306, -1306, -1306,1575 -1306, 601, 345, 349, 389, 94, 611, -1306, 544, 2525,1576 633, -1306, 129, -1306, 94, 94, 185, -1306, -1306, 222,1577 -1306, 94, 94, 2900, 637, 644, 431, 11276, -1306, -1306,1578 661, -1306, 4935, -1306, -1306, 779, -1306, -1306, 185, -1306,1579 1590, 26, -1306, 7796, -1306, 431, 431, 431, 185, -1306,1580 808, -1306, 6454, -1306, -1306, 657, 431, -1306, 431, -1306,1581 -1 306, 10180, 647, 829, 671, 431, -1306, 808, 669, 673,1582 -1 306, 7553, 752, -1306, -1306, -1306, 9361, -1306, -1306, 5911,1583 -1 306, 633, 191, 10475, 5789, 946, 2900, -1306, 291, -1306,1584 -1 306, 10416, 1590, 704, 2725, -1306, -1306, 255, -1306, 11839,1585 11 556, 11613, 11556, 11670, -1306, 734, -1306, -1306, -1306, -1306,1586 117 27, 11727, 752, 8612, -1306, 11556, 9036, -1306, -1306, -1306,1587 -1 306, -1306, -1306, 770, -1306, 468, 1857, 11556, -1306, 446,1588 717, 853, 280, 793, 751, 737, 733, 795, 166, -1306,1589 -1 306, 778, 551, -1306, 298, -1306, -1306, 3037, -1306, -1306,1590 401, 802, -1306, 490, 802, -1306, 8718, 811, -1306, -1306,1591 1 169, 608, 8252, 11276, 779, -1306, 779, 431, 431, -1306,1592 -1 306, -1306, -1306, -1306, -1306, 431, 10534, 1590, -1306, -1306,1593 10 593, 1775, -1306, 6995, -1306, -1306, -1306, -1306, -1306, -1306,1594 -1 306, -1306, 4717, 11556, -1306, -1306, -1306, -1306, -1306, -1306,1595 -1 306, -1306, -1306, -1306, -1306, -1306, -1306, 946, -1306, 807,1596 826, 840, 846, 849, 855, 868, 875, 2525, -1306, -1306,1597 820, 26, -1306, -1306, -1306, 881, -1306, -1306, -1306, 9361,1598 -1 306, -1306, -1306, -1306, -1306, 2900, -1306, 8930, 8930, -1306,1599 946, 12073, 8930, 7904, -1306, -1306, -1306, -1306, 9361, 191,1600 -1 306, -1306, 779, 185, -1306, -1306, 9361, -1306, 6576, -1306,1601 -1 306, 431, 431, 8506, 10652, -1306, 1231, 3253, -1306, 400,1602 418, 829, -1306, 10180, 884, 864, 829, 431, -1306, -1306,1603 -1 306, -1306, 11012, -1306, 521, 8172, -1306, 185, 891, -1306,1604 946, 11914, 5969, -1306, -1306, -1306, -1306, 916, 2900, -1306,1605 8317, 633, 7444, -1306, -1306, -1306, 1642, 538, 778, 829,1606 2725, 700, 10416, -1306, 2725, -1306, -1306, -1306, -1306, 572,1607 -1306, 901, -1306, -1306, 122, 8612, -1306, -1306, 8612, -1306,1608 8824, 8612, -1306, -1306, -1306, -1306, -1306, 581, 912, 557,1609 918, -1306, 6659, -1306, -1306, -1306, 100, -1306, -1306, 6125,1610 -1306, 113, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,1611 -1 306, -1306, 5789, 5789, -1306, 11556, 11556, 11556, 11556, 11556,1612 11 556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556, 11556,1613 11 556, 11556, 11556, 4485, 5789, -1306, 551, 858, -1306, -1306,1614 94, 94, -1306, -1306, 8930, -1306, -1306, -1306, 881, 752,1615 -1306, 881, 6659, -1306, 9142, 924, -1306, 10711, -1306, -1306,1616 571, -1306, 9696, 928, -1306, 1037, -1306, 2282, 292, 778,1617 -1306, 94, 94, 778, 300, -1306, 94, 94, 881, -1306,1618 -1 306, 94, 94, -1306, 802, 10770, 1590, 12045, 172, 352,1619 10770, -1306, 10947, -1306, 778, -1306, 10534, -1306, 171, 931,1620 7969, 7969, 1590, 4778, 929, -1306, 372, 935, -1306, 956,1621 4195, 607, -1306, 1042, 1590, 7969, 752, 946, 752, 633,1622 7 63, 802, -1306, -1306, 797, 802, -1306, -1306, -1306, 997,1623 -1306, 11499, 185, 11012, -1306, 589, 976, 605, 984, -1306,1624 626, -1306, 986, 185, -1306, -1306, 9361, 185, 1612, 980,1625 983, 435, 443, 7107, 1354, 11556, 2791, -1306, -1306, 987,1626 87, 987, -1306, -1306, -1306, 94, 94, -1306, -1306, 829,1627 -1 306, 94, -1306, -1306, 9764, 829, 996, 11556, -1306, 884,1628 12045, -1306, -1306, 1003, -1306, -1306, -1306, 752, -1306, 11980,1629 11556, -1306, 7969, 585, 8252, -1306, -1306, 571, 1001, 1002,1630 1 642, 3314, -1306, -1306, 2725, -1306, -1306, 980, -1306, -1306,1631 1010, -1306, 980, 1013, 11839, 5789, 992, 1044, 1018, 1019,1632 -1306, 1015, 1025, -1306, 1026, 1027, 6771, -1306, 5789, -1306,1633 557, 926, -1306, 5040, 5789, 1029, 1022, -1306, -1306, -1306,1634 629, -1306, 5789, -1306, -1306, -1306, -1306, -1306, -1306, -1306,1635 446, 446, 717, 717, 853, 853, 853, 853, 280, 280,1636 793, 751, 737, 733, 795, 11556, 886, -1306, 11012, 1032,1637 1034, 1035, 858, -1306, -1306, -1306, -1306, -1306, 11012, 11499,1638 653, 1038, 7219, 9248, 6995, -1306, -1306, 1030, 1043, -1306,1639 10357, -1306, -1306, 1037, 11012, 923, 1045, 1048, 1049, 1056,1640 10 57, 1058, 1060, 3551, 2282, -1306, -1306, -1306, -1306, -1306,1641 -1 306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,1642 -1 306, -1306, 881, -1306, -1306, -1306, 778, -1306, -1306, -1306,1643 -1 306, -1306, -1306, -1306, -1306, 10239, -1306, -1306, 1061, 1062,1644 -1306, 26, 1041, 1022, 4778, -1306, -1306, -1306, 4717, 1039,1645 -1306, -1306, -1306, -1306, 829, 6270, 1111, -1306, -1306, -1306,1646 -1 306, 1047, 26, -1306, -1306, 881, -1306, -1306, 881, 347,1647 11556, 1063, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 6995,1648 899, -1306, 185, -1306, 1612, 2196, 1070, 1074, -1306, -1306,1649 -1306, 1077, 953, 1076, 1086, 1087, -1306, 2791, -1306, -1306,1650 -1306, -1306, -1306, -1306, -1306, 1231, -1306, 864, -1306, -1306,1651 1083, 1089, 1084, -1306, -1306, 1095, 1107, -1306, 585, 1172,1652 -1 306, 375, -1306, 3314, 778, -1306, 1091, 2725, 10829, 8930,1653 1114, -1306, -1306, 1109, 1116, -1306, 1118, 295, 1112, -1306,1654 1117, 1117, 6659, 5789, -1306, -1306, 1117, 1120, -1306, 926,1655 4717, -1306, -1306, -1306, -1306, 1119, 5240, 5789, 1121, 752,1656 4778, -1306, 6125, -1306, 752, -1306, 5789, -1306, 828, 802,1657 -1 306, -1306, -1306, -1306, 9389, -1306, 8718, -1306, -1306, 7331,1658 1127, -1306, -1306, -1306, -1306, 1131, -1306, 852, 802, -1306,1659 87 0, 879, 802, -1306, 431, 1135, 5490, -1306, -1306, -1306,1660 11012, 11012, -1306, 8382, 8382, 7969, 1133, 1132, 1134, 1139,1661 -1306, -1306, 1144, 596, 62, 1022, -1306, 752, -1306, 4195,1662 -1306, 5789, 458, -1306, 6547, 1149, 1151, 11442, 1152, 1153,1663 52, 75, 37, 5789, 1158, 185, 4069, -1306, 1113, 1138,1664 -1 306, -1306, -1306, 1156, -1306, -1306, -1306, -1306, -1306, -1306,1665 -1 306, -1306, -1306, 829, 1162, 5789, -1306, 11012, 11012, 94,1666 802, 1164, 1163, 1030, -1306, 2196, 819, 829, 6659, 10888,1667 887, 802, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,1668 -1 306, 1179, 1172, -1306, -1306, 1165, -1306, 980, -1306, -1306,1669 946, 1167, -1306, -1306, -1306, 662, 1183, -1306, 11556, 1161,1670 1044, 1044, 1182, -1306, 9823, 956, 5789, 1189, 1119, 540,1671 74, 1186, -1306, 1182, -1306, 1191, 1186, -1306, -1306, 1195,1672 -1 306, -1306, 881, 1197, -1306, 10534, -1306, 6883, 1198, 1200,1673 1205, -1306, 10298, 7969, 7969, -1306, 1208, -1306, -1306, 881,1674 -1 306, -1306, -1306, -1306, 881, 5789, -1306, 5789, 11556, 1209,1675 -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1213, -1306, -1306,1676 -1306, -1306, -1306, 11556, 11556, 1212, 1214, 1186, -1306, -1306,1677 829, -1306, -1306, -1306, 3779, 10829, 5789, 5789, 1272, 5789,1678 -1306, -1306, 1203, -1306, 1204, 5789, 1206, 1207, 5789, 1006,1679 -1306, 1215, 6659, 94, -1306, -1306, 6270, 1222, 477, -1306,1680 -1306, -1306, -1306, -1306, 881, -1306, 9628, 8930, 10180, 1216,1681 -1306, 1229, -1306, -1306, 881, 11248, -1306, 8317, 1217, -1306,1682 -1306, 10829, 486, 495, -1306, 1230, 1245, -1306, 308, -1306,1683 5789, 1244, 1242, -1306, -1306, 1248, 136, 146, 752, 1251,1684 1254, -1306, 1256, -1306, 11012, -1306, -1306, -1306, -1306, -1306,1685 -1 306, 1257, -1306, -1306, -1306, 11012, 11012, 11012, -1306, -1306,1686 1260, -1306, 1264, 1267, 1268, 646, -1306, 8036, 8144, -1306,1687 -1306, 715, -1306, 1270, 1273, -1306, 8447, 690, 721, 1275,1688 72 5, 6425, -1306, -1306, 508, -1306, -1306, 730, 1277, 185,1689 1316, 1326, -1306, -1306, 1278, 11442, -1306, -1306, -1306, 1279,1690 1282, 740, 9885, 10180, 5774, 11012, -1306, -1306, -1306, 1281,1691 -1 306, -1306, -1306, -1306, -1306, -1306, 10829, -1306, 1261, 1315,1692 1119, 357, -1306, -1306, -1306, -1306, -1306, -1306, -1306, -1306,1693 1283, -1306, -1306, -1306, 1289, 1293, -1306, -1306, -1306, 1295,1694 1296, -1306, -1306, -1306, -1306, -1306, -1306, -1306, 1302, -1306,1695 1301, -1306, -1306, 11442, 130, 5789, 11442, -1306, 1304, 5789,1696 -1 306, 155, 1328, -1306, -1306, 1314, 9458, -1306, -1306, -1306,1697 320, -1306, 9944, -1306, -1306, 1590, 946, 1311, -1306, -1306,1698 742, 1320, 5789, 752, 752, 1325, -1306, -1306, 1330, 1331,1699 1334, -1306, -1306, 8382, 1329, -1306, 1401, 11556, 1333, -1306,1700 -1306, 11362, -1306, 745, -1306, 1319, 11442, 1324, -1306, -1306,1701 13 36, -1306, 1355, 10180, 1343, -1306, 1352, 10829, -1306, -1306,1702 -1306, 1332, 1387, 1358, -1306, 1186, 1186, -1306, -1306, -1306,1703 -1 306, -1306, 11442, 118, -1306, 954, -1306, -1306, 7662, -1306,1704 -1 306, 1339, 5789, -1306, 5789, 7662, 185, 10652, 1362, -1306,1705 10 003, 10180, -1306, 1364, -1306, -1306, 5789, 1365, 1370, -1306,1706 11556, 11556, -1306, -1306, 1024, 101, -1306, -1306, 1356, -1306,1707 1024, -1306, -1306, 1567, 752, 185, 10652, -1306, 10062, 1375,1708 -1 306, -1306, -1306, -1306, -1306, 11362, 1372, 1024, 7731, 5789,1709 11282, 1377, 1024, 1380, 1567, 2919, -1306, -1306, -1306, -1306,1710 -1 306, -1306, 8930, -1306, 11127, -1306, 11362, -1306, -1306, 1361,1711 11046, -1306, -1306, 11282, 185, 2919, 1385, 747, -1306, 11127,1712 -1306, -1306, -1306, 11046, -1306, -1306, 185, -1306, -1306, -1306,1713 -1 306, -13061559 5063, 10209, -1297, 115, -1297, -1297, -1297, -1297, -1297, -1297, 1560 -1297, 109, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, 1561 -1297, -1297, -1297, -1297, -1297, 252, 252, 252, 866, 397, 1562 123, 7705, 771, -1297, -1297, -1297, -1297, -1297, 225, -1297, 1563 -1297, -1297, 776, -1297, 9574, -1297, -1297, -1297, -1297, -1297, 1564 -1297, 208, 239, -1297, 1099, -1297, -1297, -1297, -1297, 242, 1565 505, 360, 130, 7814, -1297, -1297, 9642, 626, -1297, -1297, 1566 -1297, 693, 365, 5846, 163, 733, 693, 1021, -1297, -1297, 1567 289, 218, -1297, 693, 1254, 275, -1297, 401, 413, -1297, 1568 -1297, -1297, -1297, 327, 239, 252, -1297, 252, -1297, -1297, 1569 -1297, -1297, 10445, 1099, -1297, -1297, 1099, -1297, 10504, 344, 1570 -1297, -1297, 638, 10563, -1297, 771, 771, 771, -1297, -1297, 1571 -1297, 252, -1297, -1297, -1297, 380, 384, -1297, -1297, -1297, 1572 -1297, 400, -1297, -1297, -1297, -1297, 457, 466, -1297, 486, 1573 771, 9150, 2777, 75, 495, 519, 568, 584, 594, 602, 1574 3892, -1297, 608, -1297, 9710, -1297, -1297, -1297, -1297, 617, 1575 -1297, 206, 4815, -1297, 643, 243, -1297, -1297, -1297, -1297, 1576 639, 325, 326, 385, 252, 663, -1297, 505, 1914, 735, 1577 -1297, 84, -1297, 252, 252, 239, -1297, -1297, 105, -1297, 1578 252, 252, 2563, 705, 742, 771, 11342, -1297, -1297, 746, 1579 -1297, 9574, -1297, -1297, 693, -1297, -1297, 239, -1297, 1099, 1580 208, -1297, 3694, -1297, 771, 771, 771, 239, -1297, 866, 1581 -1297, 3561, -1297, -1297, 691, 771, -1297, 771, -1297, 769, 1582 -1297, 10268, 768, 397, 795, 771, -1297, 866, 782, 789, 1583 -1297, 7705, 852, -1297, -1297, -1297, 3826, -1297, -1297, 11035, 1584 -1297, 735, 121, 10563, 6255, 638, 2563, -1297, 136, -1297, 1585 -1297, 10504, 1099, 814, 12170, -1297, -1297, 422, -1297, 11905, 1586 11622, 11679, 11622, 11736, -1297, 824, -1297, -1297, -1297, -1297, 1587 11793, 11793, 852, 8832, -1297, 11622, 9256, -1297, -1297, -1297, 1588 -1297, -1297, -1297, 872, -1297, 996, 2005, 11622, -1297, 482, 1589 140, 497, 633, 675, 843, 844, 870, 901, 28, -1297, 1590 -1297, 884, 516, -1297, 314, -1297, -1297, 2777, -1297, -1297, 1591 551, 911, -1297, 588, 911, -1297, 8938, 933, -1297, -1297, 1592 1002, 1428, 8472, 11342, 693, -1297, 693, 771, 771, -1297, 1593 -1297, -1297, -1297, -1297, -1297, 771, 10622, 1099, -1297, -1297, 1594 10681, 1019, -1297, 3892, -1297, -1297, -1297, -1297, -1297, -1297, 1595 -1297, -1297, 4608, 11622, -1297, -1297, -1297, -1297, -1297, -1297, 1596 -1297, -1297, -1297, -1297, -1297, -1297, -1297, 638, -1297, 839, 1597 916, 938, 940, 867, 949, 963, 970, 1914, -1297, -1297, 1598 979, 208, -1297, -1297, -1297, 980, -1297, -1297, -1297, 3826, 1599 -1297, -1297, -1297, -1297, -1297, 2563, -1297, 9150, 9150, -1297, 1600 638, 12198, 9150, 8124, -1297, -1297, -1297, -1297, 3826, 121, 1601 -1297, -1297, 693, 239, -1297, -1297, 3826, -1297, 4002, -1297, 1602 -1297, 771, 771, 9150, 8726, 10740, -1297, 377, 4504, -1297, 1603 388, 402, 397, -1297, 10268, 981, 975, 397, 771, -1297, 1604 -1297, -1297, -1297, 11159, -1297, 339, 8392, -1297, 239, 994, 1605 -1297, 638, 11980, 6754, -1297, -1297, -1297, -1297, 926, 2563, 1606 -1297, 8537, 735, 6493, -1297, -1297, -1297, 944, 540, 884, 1607 397, 12170, 276, 10504, -1297, 12170, -1297, -1297, -1297, -1297, 1608 571, -1297, 1009, -1297, -1297, 18, 8832, -1297, -1297, 8832, 1609 -1297, 9044, 8832, -1297, -1297, -1297, -1297, -1297, 604, 1010, 1610 581, 1012, -1297, 7016, -1297, -1297, -1297, 147, -1297, -1297, 1611 6903, -1297, 152, -1297, -1297, -1297, -1297, -1297, -1297, -1297, 1612 -1297, -1297, -1297, 6255, 6255, -1297, 11622, 11622, 11622, 11622, 1613 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 11622, 1614 11622, 11622, 11622, 11622, 5083, 6255, -1297, 516, 886, -1297, 1615 -1297, 252, 252, -1297, -1297, 9150, -1297, -1297, -1297, 980, 1616 852, -1297, 980, 7016, -1297, 9362, 1015, -1297, 10799, -1297, 1617 -1297, 617, -1297, 9846, 1017, -1297, 804, -1297, 1782, 146, 1618 884, -1297, 252, 252, 884, 236, -1297, 252, 252, 980, 1619 -1297, -1297, 252, 252, -1297, 911, 10858, 1099, 12111, 198, 1620 427, 10858, -1297, 11094, -1297, 884, -1297, 10622, -1297, 14, 1621 1020, 8189, 8189, 1099, 5252, 1014, -1297, 210, 1022, -1297, 1622 1025, 4815, 367, -1297, 1106, 1099, 8189, 852, 638, 852, 1623 735, 737, 911, -1297, -1297, 753, 911, -1297, -1297, -1297, 1624 1060, -1297, 11565, 239, 11159, -1297, 629, 1035, 670, 1036, 1625 -1297, 699, -1297, 1037, 239, -1297, -1297, 3826, 239, 701, 1626 889, 1032, 1034, 405, 425, 7368, 1486, 11622, 2366, -1297, 1627 -1297, 1039, 125, 1039, -1297, -1297, -1297, 252, 252, -1297, 1628 -1297, 397, -1297, 252, -1297, -1297, 9914, 397, 1038, 11622, 1629 -1297, 981, 12111, -1297, -1297, 1047, -1297, -1297, -1297, 852, 1630 -1297, 12046, 11622, -1297, 8189, 610, 8472, -1297, -1297, 617, 1631 1048, 1050, 944, 2999, -1297, -1297, 12170, -1297, -1297, 1032, 1632 -1297, -1297, 1053, -1297, 1032, 1056, 11905, 6255, 1045, 1085, 1633 1059, 1061, -1297, 1062, 1068, -1297, 1075, 1077, 7128, -1297, 1634 6255, -1297, 581, 1714, -1297, 5360, 6255, 1076, 1078, -1297, 1635 -1297, -1297, 711, -1297, 6255, -1297, -1297, -1297, -1297, -1297, 1636 -1297, -1297, 482, 482, 140, 140, 497, 497, 497, 497, 1637 633, 633, 675, 843, 844, 870, 901, 11622, 667, -1297, 1638 11159, 1081, 1082, 1083, 886, -1297, -1297, -1297, -1297, -1297, 1639 11159, 11565, 714, 1084, 7480, 9468, 3892, -1297, -1297, 1086, 1640 1088, -1297, 10445, -1297, -1297, 804, 11159, 945, 1089, 1090, 1641 1093, 1094, 1095, 1096, 1100, 4041, 1782, -1297, -1297, -1297, 1642 -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, -1297, 1643 -1297, -1297, -1297, -1297, 980, -1297, -1297, -1297, 884, -1297, 1644 -1297, -1297, -1297, -1297, -1297, -1297, -1297, 10327, -1297, -1297, 1645 1103, 1105, -1297, 208, 1104, 1078, 5252, -1297, -1297, -1297, 1646 4608, 1114, -1297, -1297, -1297, -1297, 397, 6608, 1162, -1297, 1647 -1297, -1297, -1297, 1087, 208, -1297, -1297, 980, -1297, -1297, 1648 980, 203, 11622, 1109, -1297, -1297, -1297, -1297, -1297, -1297, 1649 -1297, 3892, 721, -1297, 239, -1297, -1297, 889, 2623, 1120, 1650 1124, -1297, -1297, -1297, 1123, 848, 1128, 1130, 1132, -1297, 1651 2366, -1297, -1297, -1297, -1297, -1297, -1297, -1297, 377, -1297, 1652 975, -1297, -1297, 1133, 1135, 1127, -1297, -1297, 1139, 1140, 1653 -1297, 610, 1909, -1297, 496, -1297, 2999, 884, -1297, 1137, 1654 12170, 10917, 9150, 1144, -1297, -1297, 1141, 1145, -1297, 1147, 1655 301, 1148, -1297, 1146, 1146, 7016, 6255, -1297, -1297, 1146, 1656 1149, -1297, 1714, 4608, -1297, -1297, -1297, -1297, 1153, 5205, 1657 6255, 1158, 852, 5252, -1297, 6903, -1297, 852, -1297, 6255, 1658 -1297, 788, 911, -1297, -1297, -1297, -1297, 5490, -1297, 8938, 1659 -1297, -1297, 7592, 1159, -1297, -1297, -1297, -1297, 1167, -1297, 1660 877, 911, -1297, 882, 907, 911, -1297, 771, 1168, 4314, 1661 -1297, -1297, -1297, 11159, 11159, -1297, 8602, 8602, 8189, 1171, 1662 1169, 1170, 1177, -1297, -1297, 1176, 557, 37, 1078, -1297, 1663 852, -1297, 4815, -1297, 6255, 444, -1297, 6884, 1180, 1181, 1664 11508, 1189, 1191, 15, 96, 38, 6255, 1193, 239, 4178, 1665 -1297, 1187, 1173, -1297, -1297, -1297, 1192, -1297, -1297, -1297, 1666 -1297, -1297, -1297, -1297, -1297, -1297, 397, 1198, 6255, -1297, 1667 11159, 11159, 252, 911, 1200, 1201, 1086, -1297, 2623, 331, 1668 397, 7016, 10976, 914, 911, -1297, -1297, -1297, -1297, -1297, 1669 -1297, -1297, -1297, -1297, 1205, 1909, -1297, -1297, 1188, -1297, 1670 1032, -1297, -1297, 638, 1203, -1297, -1297, -1297, 722, 1202, 1671 -1297, 11622, 1194, 1085, 1085, 1207, -1297, 6185, 1025, 6255, 1672 1212, 1153, 307, 288, 1211, -1297, 1207, -1297, 1216, 1211, 1673 -1297, -1297, 1209, -1297, -1297, 980, 1219, -1297, 10622, -1297, 1674 7241, 1222, 1223, 1224, -1297, 10386, 8189, 8189, -1297, 1221, 1675 -1297, -1297, 980, -1297, -1297, -1297, -1297, 980, 6255, -1297, 1676 6255, 11622, 1228, -1297, -1297, -1297, -1297, -1297, -1297, -1297, 1677 1231, -1297, -1297, -1297, -1297, -1297, 11622, 11622, 1230, 1234, 1678 1211, -1297, -1297, 397, -1297, -1297, -1297, 8059, 10917, 6255, 1679 6255, 1294, 6255, -1297, -1297, 1217, -1297, 1218, 6255, 1220, 1680 1226, 6255, 831, -1297, 1232, 7016, 252, -1297, -1297, 6608, 1681 1233, 452, -1297, -1297, -1297, -1297, -1297, 980, -1297, 9778, 1682 9150, 10268, 1237, -1297, 1243, -1297, -1297, 980, 11314, -1297, 1683 8537, 1246, -1297, -1297, 10917, 467, 542, -1297, 1251, 1260, 1684 -1297, 359, -1297, 6255, 1263, 1261, -1297, -1297, 1265, 245, 1685 257, 852, 1267, 1269, -1297, 1270, -1297, 11159, -1297, -1297, 1686 -1297, -1297, -1297, -1297, 1272, -1297, -1297, -1297, 11159, 11159, 1687 11159, -1297, -1297, 1276, -1297, 1277, 1280, 1281, 619, -1297, 1688 8256, 8364, -1297, -1297, 625, -1297, 1283, 1284, -1297, 8667, 1689 727, 731, 1288, 740, 6735, -1297, -1297, 543, -1297, -1297, 1690 756, 1289, 239, 1329, 1338, -1297, -1297, 1290, 11508, -1297, 1691 -1297, -1297, 1291, 1293, 780, 9973, 10268, 6075, 11159, -1297, 1692 -1297, -1297, 1292, -1297, -1297, -1297, -1297, -1297, -1297, 10917, 1693 -1297, 1275, 1327, 1153, 537, -1297, -1297, -1297, -1297, -1297, 1694 -1297, -1297, -1297, 1295, -1297, -1297, -1297, 1301, 1305, -1297, 1695 -1297, -1297, 1306, 1308, -1297, -1297, -1297, -1297, -1297, -1297, 1696 -1297, 1307, -1297, 1309, -1297, -1297, 11508, 90, 6255, 11508, 1697 -1297, 1313, 6255, -1297, 187, 1328, -1297, -1297, 1315, 5778, 1698 -1297, -1297, -1297, 332, -1297, 10032, -1297, -1297, 1099, 638, 1699 1311, -1297, -1297, 800, 1317, 6255, 852, 852, 1320, -1297, 1700 -1297, 1322, 1323, 1324, -1297, -1297, 8602, 1321, -1297, 1379, 1701 11622, 1325, -1297, -1297, 11428, -1297, 810, -1297, 1312, 11508, 1702 1318, -1297, -1297, 1333, -1297, 1341, 10268, 1335, -1297, 1343, 1703 10917, -1297, -1297, -1297, 1319, 1356, 1339, -1297, 1211, 1211, 1704 -1297, -1297, -1297, -1297, -1297, 11508, 270, -1297, 951, -1297, 1705 -1297, 7923, -1297, -1297, 1326, 6255, -1297, 6255, 7923, 239, 1706 10740, 1345, -1297, 10091, 10268, -1297, 1342, -1297, -1297, 6255, 1707 1347, 1348, -1297, 11622, 11622, -1297, -1297, 952, 237, -1297, 1708 -1297, 1331, -1297, 952, -1297, -1297, 1642, 852, 239, 10740, 1709 -1297, 10150, 1355, -1297, -1297, -1297, -1297, -1297, 11428, 1353, 1710 952, 7992, 6255, 11348, 1354, 952, 1360, 1642, 2460, -1297, 1711 -1297, -1297, -1297, -1297, -1297, 9150, -1297, 11193, -1297, 11428, 1712 -1297, -1297, 1340, 4905, -1297, -1297, 11348, 239, 2460, 1361, 1713 819, -1297, 11193, -1297, -1297, -1297, 4905, -1297, -1297, 239, 1714 -1297, -1297, -1297, -1297, -1297 1714 1715 }; 1715 1716 … … 1717 1718 static const yytype_int16 yypgoto[] = 1718 1719 { 1719 -1 306, 4178, 3354, -1306, 1595, -1306, -1, 2, 839, -1306,1720 -1 306, -1306, -497, -915, -215, 4919, -1306, 975, 537, 542,1721 346, 554, 941, 943, 950, 945, 949, -1306, 17, -251,1722 5 020, 377, -700, -894, -1306, -198, -684, -459, -1306, 77,1723 -1 306, 290, -1062, -1306, -1306, 40, -1306, -1305, -1076, 127,1724 -1 306, -1306, -1306, -1306, -21, -1283, -1306, -1306, -1306, -1306,1725 -1 306, -1306, 216, 31, 14, 408, -1306, 414, -1306, 76,1726 -1 306, -305, -1306, -1306, -1306, 467, -851, -1306, -1306, 8,1727 -9 29, 10, 2660, -1306, -1306, -1306, -110, -1306, 299, 597,1728 - 29, 1428, 4046, -1306, -1306, 55, 49, 79, -229, 1809,1729 -1 306, 1752, -1306, -1306, 66, 2021, -1306, 2437, 1677, -1306,1730 -1 306, -412, -376, 1122, 1124, 625, 871, -270, -1306, -1306,1731 1 105, 627, -558, -1306, -460, -395, 48, -1306, -1306, -855,1732 -9 90, 470, 652, 990, -16, -1306, 727, -5, -244, -195,1733 -1 27, 583, 692, -1306, 930, -1306, 2734, -373, 841, -1306,1734 -1 306, 619, -1306, -405, -1306, 85, -1306, -1306, -1306, -1245,1735 327, -1306, -1306, -1306, 1097, -1306, 28, -1306, -1306, -832,1736 -1 04, -1279, -133, 2533, -1306, 3317, -1306, 836, -1306, -122,1737 14 39, -163, -160, -157, 4, -41, -37, -36, 587, 42,1738 51, 90, -121, -155, -152, -151, -149, -294, -486, -446,1739 -4 27, -545, -1306, -531, -1306, -1306, -525, -485, -484, -477,1740 1 927, 4727, -549, -504, -503, -475, -461, -1306, -386, -662,1741 -6 54, -649, -575, -248, -333, -1306, -1306, 226, 125, -50,1742 -1 306, 339, 169, -590, -2411720 -1297, 4539, 3474, -1297, 22, -1297, -1, 2, 817, -1297, 1721 -1297, -1297, -495, -902, -132, 5887, -1297, 1449, 523, 552, 1722 430, 558, 919, 920, 921, 922, 924, -1297, 150, -242, 1723 5319, 346, -694, -917, -1297, 87, -701, 234, -1297, 157, 1724 -1297, 254, -1077, -1297, -1297, -6, -1297, -1273, -892, 95, 1725 -1297, -1297, -1297, -1297, -60, -1267, -1297, -1297, -1297, -1297, 1726 -1297, -1297, 168, -11, 51, 368, -1297, 375, -1297, 33, 1727 -1297, -295, -1297, -1297, -1297, 432, -848, -1297, -1297, 6, 1728 -970, 26, 2983, -1297, -1297, -1297, -117, -1297, 66, 718, 1729 -14, 1458, 4231, -1297, -1297, 55, 134, 124, -247, 1805, 1730 -1297, 1752, -1297, -1297, 135, 2146, -1297, 2351, 1577, -1297, 1731 -1297, -431, -435, 1074, 1079, 582, 830, 342, -1297, -1297, 1732 1070, 585, -481, -1297, -462, -65, -412, -1297, -1297, -973, 1733 -968, 783, 1252, 948, 156, -1297, 83, 233, -297, -199, 1734 -148, 548, 655, -1297, 904, -1297, 2844, -402, 807, -1297, 1735 -1297, 590, -1297, -393, -1297, 101, -1297, -1297, -1297, -1251, 1736 299, -1297, -1297, -1297, 1071, -1297, 63, -1297, -1297, -839, 1737 -111, -1296, -104, 2118, -1297, 3091, -1297, 811, -1297, -172, 1738 1440, -168, -165, -162, 4, -37, -34, -32, 611, 36, 1739 67, 71, -161, -156, -154, -153, -138, -284, -490, -488, 1740 -486, -538, -1297, -480, -1297, -1297, -524, -520, -505, -499, 1741 1640, 5025, -528, -541, -515, -512, -459, -1297, -388, -645, 1742 -634, -633, -576, -124, -277, -1297, -1297, 710, 153, -86, 1743 -1297, 361, 821, -610, -304 1743 1744 }; 1744 1745 … … 1749 1750 static const yytype_int16 yytable[] = 1750 1751 { 1751 109, 145, 46, 140, 94, 146, 147, 660, 257, 110, 1752 53, 111, 913, 613, 47, 380, 420, 617, 381, 494, 1753 914, 382, 761, 383, 1071, 915, 384, 385, 670, 386, 1754 844, 694, 793, 46, 1176, 94, 365, 589, 827, 869, 1755 486, 53, 826, 1072, 46, 47, 46, 391, 156, 67, 1756 683, 954, 250, 972, 819, 66, 46, 388, 389, 139, 1757 669, 688, 46, 860, 186, 46, 74, 208, 46, 1136, 1758 218, 789, 790, 203, 211, 715, 212, 878, 579, 791, 1759 67, 820, 821, 1128, 148, 507, 66, 251, 913, 406, 1760 252, 1397, 380, 149, 652, 381, 914, 74, 382, 816, 1761 383, 915, 107, 384, 385, 46, 386, 727, 46, 930, 1762 822, 732, 205, 663, 46, 1193, 1460, 107, 463, 465, 1763 118, 667, 1187, 752, 30, 103, 103, 830, 119, 167, 1764 194, 30, 150, 837, 388, 389, 459, 145, 1456, 817, 1765 107, 146, 147, -218, -218, 46, 221, 156, 1205, 163, 1766 222, 1183, 1256, 226, 937, 228, 103, 46, 818, 355, 1767 858, 858, 235, 656, 658, 107, 30, 409, 1174, 1175, 1768 138, 243, 1417, 1418, 195, 858, 1201, 1184, 107, 1257, 1769 46, 46, 722, 156, 2, 198, 4, 5, 6, 7, 1770 392, 103, 1473, 1192, 419, 46, 650, 1417, 1418, 1203, 1771 1460, 107, 1456, 757, 46, 1460, 156, 1480, -218, 655, 1772 657, 107, 46, 161, 145, 46, 763, 423, 146, 147, 1773 148, 1460, 716, 421, 736, 859, 859, 1531, 1460, 149, 1774 242, 737, 392, 1184, 816, 142, 1419, 725, 731, 1344, 1775 859, 453, 34, 46, 35, 94, 471, 1176, 390, 1346, 1776 1544, 53, 858, 488, 552, 47, 744, 46, 46, 30, 1777 156, 1428, 422, 398, 46, 647, 648, 991, 150, 451, 1778 158, 46, 464, 639, 817, 1019, 847, 161, 715, 1018, 1779 848, 504, 1005, 853, 221, 417, 1138, 493, 553, 459, 1780 67, 165, 464, 818, 554, 425, 66, 507, 1176, 60, 1781 507, 654, 175, 507, -3, 427, 659, 74, 459, 820, 1782 821, 316, 74, 193, 679, 681, 459, 859, 688, 46, 1783 797, 355, 448, 400, -275, 392, 579, 816, 30, 30, 1784 60, 614, 46, 46, 158, 618, 237, 30, 822, 106, 1785 106, 107, 359, 135, 136, 242, 647, 648, 831, 46, 1786 240, 715, 834, 46, 830, 786, 1340, 579, 360, 368, 1787 508, 902, 579, 542, 543, 1071, 103, 817, 315, 1207, 1788 106, 416, 1193, 851, 722, 369, 481, 854, 482, 46, 1789 793, 205, 233, 160, 1072, 107, 818, 135, 136, 46, 1790 827, 355, 469, 828, 392, 586, -502, 1119, 544, 545, 1791 563, 835, 210, 586, 1120, 106, 564, 46, 1505, 920, 1792 1338, 920, 46, 221, 1510, 226, 1060, 1339, 816, 789, 1793 790, 844, 515, 1176, 916, 716, 1433, 791, 415, 254, 1794 416, 1526, 1174, 1175, 820, 821, 1533, 107, 46, 135, 1795 136, 8, 9, 10, 11, 12, 929, 160, 1530, 1079, 1796 1379, 366, 262, 371, 109, 161, 849, 373, 817, -109, 1797 850, -10, 46, 822, 1539, 74, 1402, 1177, 30, 372, 1798 46, 1543, 355, 374, 46, 865, 94, 818, 46, 849, 1799 -109, 160, 53, 1103, 74, 1134, 47, 415, 1445, 1446, 1800 738, 33, 74, 739, 357, 581, 745, 375, 716, 741, 1801 665, 221, 565, 870, 392, 486, 882, -429, 689, 511, 1802 205, 380, 158, 376, 381, 758, -430, 382, 741, 383, 1803 764, 67, 384, 385, 690, 386, 691, 66, 266, 1193, 1804 1017, 1093, 811, 880, 708, 1252, 1193, 268, 74, 683, 1805 60, 160, 692, 689, 1115, 460, 516, 517, 518, 1161, 1806 1163, 691, 210, 1019, 388, 389, 459, 535, 1451, 908, 1807 991, 269, 536, 537, 270, 858, 1190, 909, 453, 519, 1808 442, 520, 508, 521, 1107, 508, 316, 316, 508, 1193, 1809 106, 316, 1191, 1093, 46, 1190, 319, 46, 1198, 46, 1810 846, 569, 357, 392, 1331, 1272, 1273, 103, 112, 934, 1811 160, 1318, 316, 1333, 320, 1022, 861, 1486, 46, 36, 1812 1332, 177, 321, 39, 1486, 322, 748, 1377, 877, 1334, 1813 40, 41, 442, 706, 46, 160, 323, 803, 1173, 707, 1814 859, 157, 1380, 315, 315, 879, 46, 881, 315, 46, 1815 723, 154, -109, 324, -109, 178, 724, 187, -109, 1017, 1816 209, 316, 556, 219, 392, 179, 422, 1527, 750, 315, 1817 392, 1146, 557, -109, -109, 580, 1030, 354, 751, 316, 1818 46, 606, 358, 36, 733, 584, 46, 39, 46, 107, 1819 734, 135, 136, 747, 40, 41, 938, 1076, 586, 748, 1820 390, 894, 493, 858, 858, 1427, 939, 748, 460, 248, 1821 -102, 893, 370, 1104, -102, 154, 933, 896, 315, 585, 1822 871, 586, 626, 748, 493, 230, 872, 460, 488, 587, 1823 231, 511, 46, 46, 511, 460, 315, 511, 898, 892, 1824 157, 981, 74, 316, 564, 378, 46, 982, 407, 312, 1825 901, 1038, 356, 581, 903, 408, 160, 160, 579, 205, 1826 1365, 160, 715, 443, 1366, 993, 137, 1060, 859, 859, 1827 1004, 707, 412, 205, 1244, 107, 157, 135, 136, 713, 1828 564, 60, 160, 442, 845, 74, 442, 446, 1488, 581, 1829 1489, 430, 442, 2, 198, 4, 5, 6, 7, 157, 1830 315, 1017, 1373, 449, 410, 647, 648, 450, 748, 414, 1831 424, 728, 985, 679, 681, 811, 729, 232, 234, 717, 1832 472, 106, 1267, 242, 318, 46, 1322, 107, -454, 1146, 1833 -454, 160, 1321, 1374, -454, 1528, 46, 1376, 436, 748, 1834 538, 539, 1381, 748, 442, 500, 987, 442, 748, 160, 1835 442, 34, 1390, 35, 1441, 515, 992, 1461, 564, 1547, 1836 1442, 205, 913, 748, 550, 564, 1387, 549, 414, 803, 1837 914, 476, 1006, 548, 883, 915, 392, 1246, 8, 9, 1838 10, 11, 12, 125, 1058, 126, 127, 128, 546, 547, 1839 509, 1033, 551, 154, 107, 53, 135, 136, 774, 775, 1840 776, 777, 1368, 1146, 107, 30, 135, 136, 886, 716, 1841 392, 554, 46, 160, 356, 567, 46, 46, 242, 318, 1842 392, 1392, 1188, 580, 1416, 582, 806, 1424, 33, 46, 1843 1227, 649, 704, 576, 67, 1228, 811, 46, 640, 1140, 1844 66, 392, 1289, 1290, 540, 541, 8, 9, 10, 11, 1845 12, 74, 641, 611, 580, 46, 688, 615, 642, 580, 1846 400, 643, 392, 1157, 803, 392, 1108, 644, 1109, 556, 1847 445, 392, 1459, 30, 36, 460, 1083, 1463, 39, 557, 1848 645, 1160, 713, 586, 356, 40, 41, 646, 1130, 1084, 1849 1162, 741, 586, 1130, 247, 1165, 33, 697, 1232, 716, 1850 392, 1146, 695, 1479, 748, 986, 46, -222, 1297, 1298, 1851 103, 1300, 735, 1137, 312, 312, 1239, 1304, 460, 312, 1852 1307, 36, 717, 177, 749, 39, 688, 469, 318, 392, 1853 753, 1470, 40, 41, 828, 318, 586, 750, 805, 392, 1854 668, 436, 812, 442, 436, 855, 1130, 751, -12, 811, 1855 436, 1345, 1347, 1348, 867, 713, 1058, 255, 422, 1202, 1856 1204, 1206, 112, 940, 53, 318, 392, 256, 1033, 1498, 1857 1308, 1309, 1481, 1482, 868, 1538, 1417, 1418, 1171, 1172, 1858 874, 1538, 279, 103, 811, 770, 771, 476, 895, 312, 1859 1538, 476, 772, 773, 1538, 717, 897, 46, 724, 627, 1860 900, 564, 509, 67, 688, 509, 675, 312, 509, 1195, 1861 778, 779, 36, 928, 705, -403, 39, 1517, -506, 942, 1862 74, 949, 46, 40, 41, 951, 955, 1537, 316, 956, 1863 960, 961, 688, 704, 963, 1221, 1222, 964, 965, 966, 1864 977, 1001, 1209, 976, 988, 493, 989, 990, 813, 1073, 1865 586, 606, 994, 803, 1002, 1031, 1040, 1007, 587, 1093, 1866 1008, 1009, 2, 198, 4, 5, 6, 7, 1010, 1011, 1867 1012, 312, 1013, -391, -390, 845, 1453, 1080, 693, 103, 1868 1075, 576, 1086, 445, 60, 315, 1087, 1423, 1090, 809, 1869 220, 1089, 8, 9, 10, 11, 12, -276, 1091, 1092, 1870 1096, 1097, 1098, 1106, 8, 9, 10, 11, 12, 1099, 1871 493, 493, 843, 211, 203, 212, 726, 576, 730, 30, 1872 34, 1100, 35, 852, 106, 1058, 1116, 748, 1117, 1118, 1873 1121, 30, 1213, 970, 1124, 1129, 53, 1126, 46, 1503, 1874 1453, 1152, 33, 1155, 36, 1178, 168, 169, 39, 1166, 1875 1179, 1181, 1180, 205, 33, 40, 41, 497, 1182, 1108, 1876 1196, 1109, 1197, 1199, 1200, 1130, 1130, 1130, 704, 1208, 1877 513, 514, 1214, -3, 1219, 67, 1225, 1226, 704, -277, 1878 354, 66, 534, 938, 1240, 586, 8, 9, 10, 11, 1879 12, 1236, 74, 939, 704, 1247, 481, 106, 160, 1245, 1880 1250, 436, 1439, 1254, 1258, 1261, 36, 1263, 177, 1265, 1881 39, 514, 1268, 30, 1269, 705, 421, 40, 41, 1270, 1882 1274, 53, 1352, 1281, 1058, 1286, 1291, 1299, 1292, 1329, 1883 103, 476, 1323, 1356, 1357, 1358, 33, 1302, 1303, 1317, 1884 1305, 1306, 674, 1324, 392, 580, 811, 1335, 514, 1313, 1885 675, 103, 676, 460, 1108, 422, 1109, 1337, 1341, 1342, 1886 67, 380, 1343, 866, 381, 1349, 1195, 382, 1350, 383, 1887 1351, 1353, 384, 385, 1361, 386, 103, 74, 1362, 1363, 1888 1364, 1309, 1058, 1393, 1371, 1058, 1375, 1372, 1382, 1438, 1889 1385, 1388, 1386, 106, 1389, 1398, 1383, 1394, 46, 1516, 1890 1399, 1406, 1402, 388, 389, 1407, 316, 46, 46, 1411, 1891 1412, -278, 1130, 1130, -392, 1415, 1426, 1003, 8, 9, 1892 10, 11, 12, 647, 648, 1432, 924, 1430, 1440, 36, 1893 1058, 177, 927, 39, 1443, 1058, 103, 1447, 63, 113, 1894 40, 41, 1448, 1449, 493, 30, 1450, 1366, 1466, 93, 1895 705, 1452, 1457, 1462, 1468, 1108, 713, 1109, 1464, 1471, 1896 705, 1058, 809, 315, 1472, 674, 1474, 392, 33, 63, 1897 141, 103, 1475, 1487, 1495, 676, 705, 1476, 53, 1501, 1898 93, 1499, 155, 145, 1502, 53, 1522, 146, 147, 1525, 1899 1509, 144, 1534, 93, 1532, 1540, 717, 1546, 889, 780, 1900 704, 704, 781, 1518, 213, 46, 783, 493, 493, 182, 1901 782, 784, 93, 1253, 1058, 93, 1316, 67, 1429, 1058, 1902 767, 768, 769, 1195, 67, 60, 46, 46, 53, 156, 1903 1195, 1504, 1548, 1058, 74, 1058, 1384, 1520, 1248, 1058, 1904 249, 74, 1058, 210, 106, 1249, 713, 46, 1058, 355, 1905 1218, 1490, 1058, 1491, 476, 1110, 312, 704, 704, 514, 1906 1094, 699, 921, 1125, 1095, 106, 671, 67, 672, 800, 1907 1039, 873, 103, 1195, 1105, 944, 160, 442, 1330, 718, 1908 952, 317, 1519, 809, 74, 0, 717, 0, 0, 332, 1909 106, 0, 93, 103, 0, 0, 0, 0, 0, 0, 1910 103, 1144, 36, 843, 93, 627, 39, 0, 0, 0, 1911 460, 1043, 0, 40, 41, 0, 0, 387, 0, 0, 1912 0, 1545, 0, 0, 0, 0, 0, 379, 182, 0, 1913 0, 405, 0, 1550, 141, 411, 0, 0, 42, 0, 1914 155, 0, 36, 103, 177, 210, 39, 0, 143, 0, 1915 106, 93, 0, 40, 41, 0, 0, 0, 0, 170, 1916 428, 0, 93, 0, 431, 36, 432, 168, 169, 39, 1917 0, 442, 442, 447, 0, 0, 40, 41, 1514, 63, 1918 392, 0, 705, 705, 461, 106, 0, 36, 1515, 0, 1919 93, 39, 0, 0, 468, 514, 809, 0, 40, 41, 1920 0, 316, 411, 1494, 467, 0, 0, 627, 170, 0, 1921 0, 170, 0, 0, 0, 1327, 0, 36, 0, 0, 1922 0, 39, 0, 904, 0, 392, 0, 0, 40, 41, 1923 0, 809, 1494, 905, 0, 0, 0, 0, 971, 705, 1924 705, 442, 0, 0, 704, 0, 0, 0, 0, 0, 1925 207, 0, 1266, 720, 0, 704, 704, 704, 315, 1144, 1926 0, 0, 72, 721, 577, 0, 93, 460, 0, 0, 1927 0, 607, 0, 0, 460, 0, 0, 0, 0, 0, 1928 588, 0, 442, 0, 612, 0, 106, 0, 612, 0, 1929 0, 332, 0, 72, 0, 0, 0, 0, 0, 0, 1930 207, 0, 0, 0, 0, 704, 0, 106, 0, 0, 1931 1043, 0, 0, 0, 106, 170, 442, 460, 0, 442, 1932 442, 0, 0, 1229, 1230, 0, 0, 0, 214, 0, 1933 0, 0, 0, 1144, 312, 436, 182, 461, 0, 0, 1934 0, 0, 207, 0, 0, 442, 0, 442, 1110, 0, 1935 36, 332, 168, 169, 39, 0, 461, 106, 0, 0, 1936 0, 40, 41, 0, 461, 0, 0, 170, 0, 0, 1937 0, 160, 0, 0, 170, 514, 0, 0, 0, 0, 1938 0, 0, 206, 0, 0, 680, 358, 0, 0, 0, 1939 700, 0, 224, 411, 0, 0, 0, 1328, 0, 0, 1940 207, 0, 0, 0, 0, 0, 0, 0, 714, 0, 1941 63, 0, 0, 335, 0, 0, 0, 0, 411, 0, 1942 0, 93, 411, 0, 0, 588, 705, 1295, 0, 436, 1943 436, 1144, 206, 0, 0, 170, 207, 705, 705, 705, 1944 207, 0, 0, 1110, 0, 0, 0, 0, 0, 0, 1945 332, 0, 170, 0, 0, 0, 170, 522, 523, 524, 1946 525, 526, 527, 528, 529, 530, 531, 0, 0, 0, 1947 0, 0, 0, 0, 206, 0, 0, 0, 0, 0, 1948 0, 514, 0, 0, 429, 0, 0, 705, 0, 0, 1949 532, 0, 0, 809, 0, 792, 0, 0, 0, 436, 1950 0, 0, 0, 72, 0, 0, 0, 0, 72, 0, 1951 802, 0, 577, 0, 0, 0, 0, 0, 0, 207, 1952 249, 0, 0, 0, 0, 824, 0, 0, 0, 497, 1953 0, 75, 206, 0, 815, 0, 588, 0, 0, 0, 1954 436, 0, 0, 577, 1110, 0, 0, 0, 577, 0, 1955 0, 0, 0, 0, 612, 0, 0, 0, 332, 332, 1956 0, 0, 75, 0, 0, 0, 0, 0, 206, 0, 1957 0, 0, 206, 332, 1493, 0, 0, 436, 436, 0, 1958 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 1959 0, 700, 0, 0, 0, 214, 0, 215, 207, 0, 1960 0, 0, 0, 1493, 461, 436, 0, 0, 0, 0, 1961 0, 714, 0, 0, 917, 335, 0, 588, 0, 394, 1962 0, 0, 0, 912, 0, 680, 402, 1434, 0, 312, 1752 109, 257, 46, 690, 94, 144, 388, 110, 145, 380, 1753 146, 420, 381, 696, 365, 382, 250, 389, 139, 661, 1754 871, 383, 487, 384, 385, 763, 53, 111, 495, 1074, 1755 846, 916, 671, 46, 795, 94, 957, 791, 1075, 386, 1756 669, 672, 917, 918, 46, 822, 46, 590, 155, 685, 1757 828, 47, 792, 1177, 1178, 66, 46, 53, 793, 1179, 1758 829, 975, 46, 1131, 185, 46, 60, 207, 46, 614, 1759 217, 823, 210, 618, 824, 391, 169, 1196, 147, 729, 1760 107, 406, 47, 734, 388, 1139, 66, 380, 1400, 202, 1761 381, 933, 211, 382, 138, 389, 818, 60, 819, 383, 1762 820, 384, 385, 107, 653, 46, 821, 916, 46, 148, 1763 657, 659, 136, 149, 46, 465, 553, 386, 917, 918, 1764 738, 30, 754, 664, 1459, 169, 1186, 739, 169, 460, 1765 832, 668, 1420, 1421, 67, 74, 839, 555, 1190, 1204, 1766 144, 862, 30, 145, 46, 146, 155, 464, 466, 1208, 1767 554, 1463, 1187, 103, 103, 880, 46, 193, 355, 860, 1768 860, 107, 30, 232, 234, 67, 74, 2, 197, 4, 1769 5, 6, 7, 30, 860, 727, 242, 318, 390, 46, 1770 46, 409, 155, 30, 103, 242, 733, 392, 1459, 1476, 1771 118, 220, 651, 724, 46, 221, 1422, 204, 225, 1195, 1772 227, 194, 580, 46, 746, 155, 400, 235, 392, 166, 1773 119, 46, 107, 147, 46, 648, 423, 107, 144, 103, 1774 1206, 145, 465, 146, 137, 34, 649, 35, 392, 1420, 1775 1421, 169, 818, 940, 819, 1463, 820, 470, 421, 392, 1776 1463, 454, 895, 46, 148, 94, 1534, 830, 149, 587, 1777 759, 243, 860, 539, 540, 765, 1463, 46, 46, 251, 1778 155, 690, 252, 1463, 46, 681, 640, 53, 799, 1547, 1779 994, 46, 1179, 30, 822, 107, 683, 135, 516, -218, 1780 -218, 505, 460, 107, 169, 135, 833, -3, 1021, 30, 1781 836, 169, 47, 1431, 655, 1141, 66, 648, 1022, 660, 1782 823, 460, 849, 824, 452, 1082, 850, 60, 649, 460, 1783 107, 853, 461, 867, 359, 856, 446, 1177, 1178, 46, 1784 427, 355, 107, 1179, 233, 818, 141, 819, 220, 820, 1785 360, 162, 46, 46, 1196, 1008, 1343, 837, 449, 587, 1786 855, 107, 398, 135, -218, 164, 422, 718, 1347, 46, 1787 174, 368, 169, 46, 107, 1210, 135, 229, 832, 1483, 1788 1349, 106, 106, 192, 417, 419, 1259, 369, -275, 169, 1789 508, 1074, 904, 169, 425, 67, 74, 730, 990, 46, 1790 1075, 74, 731, 237, 795, 1187, 724, 791, 995, 46, 1791 230, 355, 106, 1260, 103, 231, 107, 107, 135, 135, 1792 822, 240, 792, 1122, 1009, 159, 717, 46, 793, -109, 1793 1123, -109, 46, -502, 829, -109, 564, 818, 472, 819, 1794 494, 820, 565, 846, 209, 489, 823, 106, 242, 824, 1795 -109, -109, 1230, 371, 373, 919, 1533, 1231, 1436, 46, 1796 509, 708, 36, 1454, 176, 628, 39, 709, 1179, 372, 1797 374, 580, 1542, 40, 41, 109, 1382, 932, 220, 1546, 1798 225, 1341, 107, 46, 135, 461, 204, 254, 1342, 159, 1799 873, 46, 627, 355, 262, 46, 874, 94, 676, 46, 1800 392, -10, 580, 872, 461, -430, 677, 580, 678, 487, 1801 1137, 1196, 461, 375, 656, 658, 691, 813, 1196, 53, 1802 743, 266, 159, 615, 1448, 1449, 388, 619, 380, 376, 1803 693, 381, 692, 691, 382, 357, 760, 389, 1255, 743, 1804 383, 766, 384, 385, 47, 695, 694, 882, 66, 911, 1805 446, 851, 1096, 693, 74, 852, 884, 715, 386, 60, 1806 685, 1196, 1020, 482, 1025, 483, 220, 1180, 1110, 912, 1807 460, 718, 1193, 74, 1164, 1166, 861, 861, 268, 1118, 1808 1193, 74, 159, 728, 994, 732, 860, 269, 1194, 454, 1809 36, 861, 176, 209, 39, 1334, 1321, 1022, 541, 542, 1810 666, 40, 41, 508, 1096, 46, 508, 270, 46, 508, 1811 46, 1335, 443, 536, 937, 1508, 204, 319, 537, 538, 1812 851, 1513, 106, 1380, 1106, 810, 177, 67, 74, 46, 1813 717, 1174, 1175, 1489, 357, 710, 178, 557, 1529, 392, 1814 1489, 320, 159, 1536, 718, 46, 103, 558, 805, 169, 1815 2, 197, 4, 5, 6, 7, 881, 46, 883, -109, 1816 46, 788, 725, 1107, 443, 169, 1405, 159, 726, 861, 1817 1336, 750, 566, 509, 392, 156, 509, 169, 219, 509, 1818 -109, -102, 1020, 1530, 1033, -102, 1337, 1383, 1224, 1225, 1819 321, 186, 46, 735, 208, 1275, 1276, 218, 46, 736, 1820 46, 1430, 752, 717, 392, 1079, 322, 581, 34, 570, 1821 35, 392, 753, 607, 860, 860, 323, 2, 197, 4, 1822 5, 6, 7, 36, 324, 176, 749, 39, 936, 354, 1823 868, 941, 750, 587, 40, 41, 543, 544, 358, 112, 1824 1149, 942, 1041, 1368, 46, 46, 1007, 1369, -454, 740, 1825 -454, 896, 741, 461, -454, 747, -276, 750, 46, 255, 1826 370, 715, 422, 8, 9, 10, 11, 12, 648, 256, 1827 366, 545, 546, 156, 157, 34, 681, 35, 169, 649, 1828 547, 548, 153, 848, 1491, 356, 1492, 683, 159, 159, 1829 30, 813, 898, 159, 927, 750, 989, 461, 750, 863, 1830 930, 8, 9, 10, 11, 12, 36, 378, 1086, 156, 1831 39, 879, 390, 33, 159, 159, 443, 40, 41, 443, 1832 1325, 900, 74, 906, 1020, 443, 407, 565, 30, 565, 1833 894, 1531, 156, 984, 715, 430, 996, 46, 157, 985, 1834 248, 903, 709, 424, 1247, 905, 153, 494, 46, 1376, 1835 565, 33, 719, 1377, 106, 750, 204, 1324, 885, 750, 1836 392, 36, 1379, 408, 159, 39, 74, 412, 750, 494, 1837 204, 315, 40, 41, 888, 1355, 392, 443, 1384, 312, 1838 443, 805, 159, 443, 750, 160, 1359, 1360, 1361, 36, 1839 433, 1270, 916, 39, 444, 580, 1061, 42, 1149, 1249, 1840 40, 41, 1393, 917, 918, 1311, 1312, 142, 565, 1143, 1841 690, 392, 489, 813, 1191, 1395, 8, 9, 10, 11, 1842 12, 447, 1444, 53, 46, 815, 450, 587, 1445, 46, 1843 46, 415, 1464, 451, 410, 588, 1396, 107, 750, 414, 1844 473, 1550, 46, 30, 810, 501, 159, 565, 356, 160, 1845 46, 125, 66, 126, 127, 128, 581, 988, 204, 808, 1846 242, 318, 392, 60, 1292, 1293, 33, 516, 46, 437, 1847 318, 392, 1149, 628, 36, 549, 805, 1111, 39, 1046, 1848 690, 1176, 316, 861, 550, 40, 41, 581, 400, 644, 1849 392, 415, 581, 776, 777, 778, 779, 1112, 1160, 414, 1850 392, 1133, 477, 1163, 743, 587, 1133, 557, 552, 392, 1851 907, 551, 392, 512, 1420, 1421, 157, 558, 356, 46, 1852 908, 510, 1242, 1168, 153, 1473, 813, 555, 1165, 36, 1853 587, 67, 74, 39, 568, 1235, 1036, 392, 641, 810, 1854 40, 41, 416, 923, -277, 923, 718, 470, 318, 392, 1855 103, 8, 9, 10, 11, 12, 719, 583, 690, 1133, 1856 642, 813, 643, 1501, 577, 722, 830, 318, 587, 1061, 1857 1149, 645, 1205, 1207, 1209, 723, 628, 443, 30, 1484, 1858 1485, 1087, 772, 773, 612, 646, 690, 36, 616, 167, 1859 168, 39, 647, 53, 517, 518, 519, 943, 40, 41, 1860 650, 33, 416, 247, 36, 717, 167, 168, 39, 697, 1861 46, 861, 861, 774, 775, 40, 41, 520, 699, 521, 1862 -222, 522, 1198, 354, 103, 780, 781, 160, 1520, 719, 1863 737, 1063, 751, 461, 755, 46, 718, 315, 315, 807, 1864 358, 814, 315, -12, 857, 312, 312, 1348, 1350, 1351, 1865 312, 869, 1540, 870, 876, 279, 422, 897, 899, 1140, 1866 726, 902, 565, 315, 315, 931, 805, 582, 677, -404, 1867 1096, 312, 670, 437, 952, -506, 437, 945, 954, 1046, 1868 959, 963, 437, 964, 36, 607, 167, 168, 39, 958, 1869 967, 966, 1232, 1233, 112, 40, 41, 968, 1456, 969, 1870 979, 67, 74, 991, 992, 993, 980, 1004, 997, 1005, 1871 1076, 1010, 1011, 315, 1036, 1012, 1013, 1014, 1015, 477, 1872 103, 312, 1016, 477, 210, -392, 512, -391, 1034, 512, 1873 1078, 315, 512, 1083, 510, 1212, 715, 510, 1061, 312, 1874 510, 1043, 1089, 202, 211, 1371, 1090, 1092, 316, 316, 1875 1093, 46, 1094, 316, 1095, 1101, 706, 1100, 106, 1109, 1876 1099, 1506, 1456, 1102, 1103, 53, 1119, 1120, 1121, 750, 1877 1111, 810, 973, 1127, 316, 316, 1124, -278, 1133, 1133, 1878 1133, 1129, 1132, 1155, 8, 9, 10, 11, 12, 1158, 1879 1112, 494, 1169, 1181, 66, 315, 1298, 1182, 1183, 1184, 1880 1185, 1199, 1200, 312, 1201, 60, 1300, 1301, 1442, 1303, 1881 1202, 30, 1203, 577, 1211, 1307, 1216, 1217, 1310, -3, 1882 1222, 811, 1228, 813, 316, 1229, 715, 1239, 1248, 482, 1883 1243, 1266, 106, 159, 33, 1253, 1257, 1061, 1250, 1261, 1884 1264, 1268, 316, 1277, 845, 421, 1271, 1272, 1273, 577, 1885 53, 204, 1284, 1289, 1294, 854, 494, 494, 1295, 1302, 1886 1320, 1305, 1306, 1326, 1308, 1111, 388, 1327, 1332, 380, 1887 1309, 103, 381, 67, 74, 382, 1316, 389, 1338, 1198, 1888 581, 383, 1340, 384, 385, 1112, 648, 1344, 1345, 1346, 1889 461, 1352, 103, 1353, 1354, 1061, 1356, 649, 1061, 386, 1890 1364, 1365, 1366, 1367, 1312, 1519, 316, 1374, 1375, 1378, 1891 1385, 46, 1388, 1391, 1389, 1392, 582, 103, 1397, 1401, 1892 46, 46, 1402, 1409, 1405, 1133, 1133, 1410, 106, -393, 1893 1414, 810, 1415, 1418, 437, 1429, 1435, 1433, 1443, 1455, 1894 169, 1446, 1450, 1061, 1451, 1452, 1453, 847, 1061, 1369, 1895 1471, 1478, 582, 422, 1460, 1469, 1465, 706, 67, 74, 1896 93, 1474, 1467, 1477, 477, 1475, 1111, 1498, 1479, 1502, 1897 1490, 1504, 1505, 1063, 1061, 1512, 1525, 103, 63, 113, 1898 1528, 1535, 1537, 1549, 1543, 1426, 1112, 891, 782, 1386, 1899 783, 93, 784, 1319, 785, 1256, 1437, 786, 1507, 1432, 1900 144, 1387, 143, 145, 93, 146, 1551, 53, 1523, 63, 1901 140, 1251, 103, 36, 53, 585, 1521, 39, 46, 1252, 1902 181, 1493, 154, 93, 40, 41, 93, 1061, 1221, 673, 1903 1097, 719, 1061, 924, 674, 1098, 1198, 701, 802, 46, 1904 46, 1128, 155, 1198, 212, 1042, 1061, 461, 1061, 586, 1905 1006, 587, 1061, 947, 461, 1061, 875, 53, 1108, 588, 1906 46, 1061, 355, 1333, 720, 1061, 0, 955, 0, 0, 1907 0, 36, 1390, 176, 1441, 39, 0, 0, 209, 106, 1908 249, 0, 40, 41, 0, 0, 1198, 0, 0, 0, 1909 494, 0, 0, 706, 0, 811, 0, 461, 0, 0, 1910 106, 0, 93, 706, 0, 0, 0, 676, 0, 392, 1911 0, 159, 443, 103, 93, 67, 74, 678, 0, 706, 1912 317, 719, 67, 74, 0, 106, 0, 0, 332, 0, 1913 1419, 0, 0, 1427, 103, 0, 0, 379, 181, 0, 1914 0, 103, 0, 0, 0, 0, 1494, 0, 0, 0, 1915 0, 0, 0, 494, 494, 0, 387, 0, 0, 0, 1916 206, 93, 0, 0, 0, 67, 74, 0, 0, 0, 1917 405, 0, 93, 140, 411, 1522, 0, 0, 1462, 154, 1918 209, 0, 315, 1466, 103, 106, 0, 0, 477, 1113, 1919 312, 0, 0, 0, 0, 0, 0, 0, 0, 428, 1920 0, 93, 0, 431, 0, 432, 443, 443, 0, 1482, 1921 206, 0, 0, 448, 1548, 468, 0, 811, 0, 63, 1922 106, 0, 0, 0, 462, 707, 1553, 36, 0, 176, 1923 0, 39, 0, 0, 469, 1147, 0, 845, 40, 41, 1924 0, 498, 411, 0, 8, 9, 10, 11, 12, 0, 1925 0, 206, 0, 0, 514, 515, 0, 0, 0, 0, 1926 0, 0, 0, 1517, 0, 392, 535, 0, 0, 0, 1927 0, 30, 72, 1518, 0, 0, 443, 93, 0, 0, 1928 0, 1541, 0, 0, 0, 0, 0, 1541, 0, 0, 1929 0, 589, 0, 316, 33, 515, 1541, 0, 0, 0, 1930 1541, 0, 0, 72, 578, 0, 0, 0, 0, 206, 1931 0, 608, 8, 9, 10, 11, 12, 443, 0, 0, 1932 0, 106, 0, 0, 613, 0, 706, 706, 613, 0, 1933 811, 332, 515, 0, 0, 752, 0, 392, 213, 30, 1934 847, 394, 106, 0, 0, 753, 206, 181, 402, 106, 1935 206, 443, 0, 0, 443, 443, 0, 0, 0, 0, 1936 0, 0, 33, 0, 0, 811, 0, 36, 0, 585, 1937 0, 39, 0, 0, 0, 0, 0, 462, 40, 41, 1938 443, 0, 443, 706, 706, 0, 1269, 0, 205, 0, 1939 0, 332, 106, 1147, 0, 0, 462, 682, 223, 0, 1940 0, 0, 0, 586, 462, 587, 159, 0, 0, 0, 1941 0, 0, 0, 588, 0, 0, 0, 0, 394, 0, 1942 0, 0, 335, 0, 0, 0, 707, 0, 0, 206, 1943 0, 702, 0, 93, 411, 0, 0, 589, 205, 8, 1944 9, 10, 11, 12, 8, 9, 10, 11, 12, 716, 1945 0, 63, 0, 0, 0, 0, 0, 0, 0, 411, 1946 315, 0, 0, 411, 0, 0, 30, 1147, 312, 437, 1947 0, 30, 563, 0, 0, 0, 0, 0, 0, 205, 1948 567, 0, 1113, 571, 0, 0, 0, 0, 0, 33, 1949 0, 332, 0, 429, 33, 0, 0, 0, 0, 36, 1950 0, 176, 0, 39, 0, 769, 770, 771, 206, 0, 1951 40, 41, 0, 72, 0, 0, 0, 0, 72, 0, 1963 1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1964 0, 0, 0, 0, 0, 0, 0, 461, 207, 0, 1965 332, 206, 0, 514, 0, 0, 0, 0, 0, 943, 1966 0, 72, 411, 0, 0, 0, 0, 0, 0, 815, 1967 588, 0, 0, 0, 0, 335, 0, 0, 0, 0, 1968 72, 0, 337, 0, 714, 0, 0, 808, 72, 969, 1969 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 1953 941, 0, 587, 0, 0, 177, 794, 205, 0, 394, 1954 942, 1330, 0, 402, 515, 178, 817, 0, 589, 0, 1955 0, 804, 0, 578, 0, 0, 0, 0, 0, 206, 1956 0, 249, 707, 437, 437, 1147, 826, 0, 0, 0, 1957 706, 316, 707, 0, 205, 0, 0, 1113, 205, 0, 1958 0, 706, 706, 706, 578, 0, 0, 0, 707, 578, 1959 0, 0, 0, 0, 488, 613, 0, 0, 0, 332, 1960 332, 0, 0, 0, 0, 213, 0, 0, 0, 0, 1961 0, 0, 0, 0, 332, 523, 524, 525, 526, 527, 1962 528, 529, 530, 531, 532, 335, 0, 811, 394, 0, 1963 589, 706, 702, 437, 0, 0, 915, 0, 682, 0, 1964 0, 0, 0, 0, 0, 462, 0, 0, 533, 0, 1965 0, 0, 0, 716, 0, 0, 920, 205, 0, 0, 1966 0, 0, 0, 120, 123, 124, 75, 0, 0, 0, 1967 0, 72, 0, 0, 437, 206, 0, 0, 1113, 0, 1968 0, 515, 817, 589, 0, 335, 0, 0, 0, 462, 1969 72, 0, 332, 0, 0, 0, 0, 75, 72, 0, 1970 1497, 946, 0, 0, 411, 206, 0, 0, 1496, 0, 1971 206, 437, 437, 0, 0, 0, 0, 563, 563, 0, 1972 0, 0, 0, 0, 974, 335, 716, 0, 0, 1497, 1973 0, 972, 214, 244, 0, 245, 205, 1496, 0, 437, 1974 0, 0, 0, 335, 0, 72, 0, 0, 0, 0, 1975 0, 0, 0, 205, 0, 315, 0, 0, 0, 0, 1976 0, 0, 0, 312, 0, 0, 0, 0, 702, 0, 1977 0, 0, 0, 0, 0, 817, 0, 0, 702, 0, 1978 0, 0, 0, 1002, 804, 335, 589, 205, 0, 0, 1979 249, 0, 0, 0, 702, 707, 707, 0, 0, 206, 1980 0, 886, 0, 1019, 0, 889, 0, 0, 0, 0, 1981 0, 0, 377, 206, 0, 0, 337, 0, 0, 0, 1982 0, 396, 397, 0, 0, 0, 401, 0, 403, 404, 1983 563, 0, 0, 0, 0, 249, 0, 0, 0, 0, 1984 0, 0, 394, 0, 0, 335, 0, 0, 0, 0, 1985 0, 0, 707, 707, 0, 63, 0, 0, 0, 0, 1986 0, 515, 0, 0, 0, 0, 316, 817, 589, 0, 1987 0, 77, 0, 0, 0, 0, 0, 0, 0, 804, 1988 682, 0, 0, 0, 0, 0, 1088, 0, 682, 0, 1989 0, 0, 0, 335, 335, 0, 8, 9, 10, 11, 1990 12, 206, 77, 205, 0, 0, 589, 75, 335, 0, 1991 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 1992 1105, 0, 0, 30, 0, 0, 335, 0, 411, 113, 1993 0, 0, 0, 205, 0, 0, 0, 215, 205, 72, 1994 0, 0, 0, 332, 0, 0, 33, 335, 0, 0, 1995 0, 36, 0, 176, 563, 39, 0, 249, 0, 0, 1996 0, 0, 40, 41, 0, 0, 0, 0, 515, 0, 1997 0, 0, 0, 0, 0, 613, 0, 578, 0, 0, 1998 0, 0, 0, 72, 0, 0, 335, 676, 0, 392, 1999 8, 9, 10, 11, 12, 140, 0, 678, 0, 214, 2000 0, 702, 702, 0, 332, 332, 332, 0, 0, 0, 2001 1331, 0, 0, 0, 0, 0, 498, 30, 0, 337, 2002 335, 338, 0, 0, 0, 1197, 0, 205, 0, 0, 2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 707, 2004 33, 205, 0, 0, 0, 36, 0, 176, 589, 39, 2005 707, 707, 707, 0, 0, 0, 40, 41, 702, 702, 2006 0, 488, 335, 0, 0, 75, 0, 563, 563, 804, 2007 249, 0, 335, 0, 0, 394, 0, 213, 335, 337, 2008 0, 1517, 0, 392, 75, 0, 0, 0, 335, 0, 2009 0, 1518, 75, 8, 9, 10, 11, 12, 0, 206, 2010 707, 0, 0, 0, 0, 249, 0, 0, 0, 0, 2011 0, 0, 77, 0, 0, 0, 0, 77, 0, 337, 2012 30, 0, 0, 0, 0, 0, 613, 0, 716, 205, 2013 0, 0, 0, 613, 332, 332, 0, 337, 0, 75, 2014 515, 0, 0, 33, 0, 0, 0, 0, 36, 72, 2015 176, 1144, 39, 8, 9, 10, 11, 12, 0, 40, 2016 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2017 1161, 0, 0, 335, 0, 0, 1299, 0, 0, 337, 2018 30, 0, 0, 0, 255, 0, 0, 0, 0, 0, 2019 0, 0, 0, 332, 256, 0, 0, 63, 0, 796, 2020 797, 0, 0, 33, 215, 0, 0, 613, 36, 0, 2021 0, 0, 39, 0, 0, 0, 702, 0, 716, 40, 2022 41, 0, 113, 0, 338, 0, 0, 831, 0, 0, 2023 834, 835, 0, 838, 0, 840, 841, 335, 0, 337, 2024 842, 843, 0, 0, 907, 702, 392, 0, 563, 0, 2025 0, 0, 0, 1236, 908, 0, 702, 702, 702, 0, 2026 0, 0, 0, 0, 0, 0, 0, 0, 332, 332, 2027 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2028 0, 0, 1197, 0, 338, 0, 0, 337, 337, 77, 2029 0, 0, 0, 0, 206, 335, 335, 77, 335, 335, 2030 335, 0, 337, 0, 0, 613, 702, 8, 9, 10, 2031 11, 12, 0, 0, 0, 0, 0, 113, 0, 72, 2032 337, 0, 0, 0, 338, 925, 926, 205, 0, 0, 2033 0, 928, 0, 75, 30, 0, 0, 0, 0, 0, 2034 0, 337, 338, 0, 77, 0, 0, 0, 0, 0, 2035 0, 0, 335, 335, 0, 0, 0, 33, 0, 0, 2036 0, 0, 36, 335, 84, 0, 39, 249, 0, 0, 2037 0, 0, 0, 40, 41, 0, 0, 75, 0, 0, 2038 337, 0, 0, 0, 338, 0, 0, 0, 0, 0, 2039 0, 0, 0, 0, 332, 84, 206, 0, 42, 0, 2040 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, 2041 0, 0, 0, 0, 337, 0, 0, 0, 113, 0, 2042 0, 0, 335, 0, 0, 0, 0, 0, 335, 335, 2043 216, 0, 0, 0, 0, 0, 0, 0, 0, 1197, 2044 0, 0, 0, 0, 338, 0, 1197, 0, 0, 0, 2045 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 2046 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 2047 213, 214, 337, 0, 0, 0, 0, 468, 0, 0, 2048 0, 0, 337, 0, 0, 0, 0, 335, 0, 1197, 2049 0, 72, 338, 338, 0, 0, 1538, 0, 0, 0, 2050 0, 0, 0, 54, 54, 0, 0, 338, 0, 0, 2051 335, 0, 335, 0, 345, 0, 0, 0, 0, 0, 2052 0, 0, 205, 0, 0, 338, 0, 0, 0, 8, 2053 9, 10, 11, 12, 54, 0, 0, 0, 77, 335, 2054 0, 0, 0, 75, 0, 0, 338, 0, 0, 0, 2055 335, 335, 335, 0, 0, 0, 30, 0, 0, 0, 2056 0, 0, 335, 335, 0, 0, 54, 337, 0, 54, 2057 0, 0, 0, 0, 0, 0, 72, 0, 0, 33, 2058 0, 0, 77, 0, 36, 338, 0, 0, 39, 0, 2059 0, 0, 0, 0, 0, 40, 41, 0, 0, 0, 2060 335, 0, 0, 0, 0, 84, 0, 0, 0, 0, 2061 84, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2062 722, 0, 0, 0, 205, 0, 0, 0, 0, 0, 2063 723, 337, 0, 0, 0, 0, 122, 122, 122, 0, 1970 2064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1971 0, 170, 0, 0, 335, 0, 8, 9, 10, 11, 1972 12, 0, 0, 0, 0, 0, 700, 170, 0, 0, 1973 206, 0, 335, 0, 72, 0, 700, 0, 0, 170, 1974 0, 999, 802, 30, 0, 0, 0, 206, 249, 562, 1975 0, 0, 700, 0, 0, 0, 0, 566, 0, 0, 1976 570, 1016, 815, 0, 207, 0, 33, 0, 0, 0, 1977 0, 36, 75, 588, 335, 39, 0, 75, 0, 0, 1978 206, 0, 40, 41, 0, 0, 0, 0, 0, 0, 1979 0, 0, 0, 249, 207, 0, 0, 0, 0, 207, 1980 0, 0, 8, 9, 10, 11, 12, 904, 0, 392, 1981 0, 0, 0, 63, 0, 0, 394, 905, 0, 0, 1982 402, 0, 0, 0, 0, 0, 0, 0, 0, 30, 1983 0, 0, 0, 0, 335, 0, 0, 802, 0, 170, 1984 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 1985 0, 0, 33, 815, 588, 0, 0, 36, 0, 584, 1986 0, 39, 0, 0, 215, 0, 680, 0, 40, 41, 1987 0, 0, 0, 0, 680, 0, 0, 1102, 0, 0, 1988 0, 0, 335, 335, 337, 411, 113, 207, 0, 0, 1989 0, 0, 588, 585, 0, 586, 206, 335, 0, 0, 1990 332, 207, 0, 587, 394, 0, 0, 0, 0, 0, 1991 0, 0, 0, 0, 249, 335, 0, 0, 0, 0, 1992 0, 0, 0, 0, 0, 0, 206, 0, 72, 0, 1993 75, 206, 612, 0, 577, 335, 0, 0, 0, 0, 1994 0, 0, 0, 0, 337, 0, 0, 77, 0, 75, 1995 0, 0, 141, 0, 0, 0, 0, 75, 700, 700, 1996 0, 332, 332, 332, 0, 0, 0, 0, 0, 0, 1997 0, 72, 0, 0, 335, 0, 0, 0, 77, 0, 1998 0, 0, 1194, 337, 0, 0, 0, 0, 0, 207, 1999 0, 0, 0, 562, 562, 0, 0, 0, 0, 0, 2000 0, 337, 0, 75, 0, 808, 0, 0, 335, 0, 2001 0, 0, 0, 216, 0, 700, 700, 0, 0, 206, 2002 0, 0, 0, 0, 0, 0, 802, 249, 0, 0, 2003 0, 0, 0, 206, 588, 0, 0, 0, 0, 0, 2004 0, 0, 0, 337, 0, 8, 9, 10, 11, 12, 2005 335, 0, 0, 487, 0, 0, 0, 0, 0, 0, 2006 335, 0, 249, 0, 0, 214, 335, 0, 120, 123, 2007 124, 0, 30, 0, 0, 0, 335, 884, 0, 0, 2008 0, 887, 0, 612, 0, 714, 0, 0, 0, 0, 2009 612, 332, 332, 0, 0, 33, 0, 0, 338, 808, 2010 36, 0, 177, 337, 39, 562, 0, 0, 0, 0, 2011 0, 40, 41, 0, 0, 0, 0, 394, 0, 0, 2012 0, 206, 0, 0, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 1296, 0, 0, 178, 72, 244, 0, 2014 245, 0, 0, 0, 0, 0, 179, 0, 0, 0, 2015 332, 337, 337, 0, 63, 0, 0, 0, 0, 0, 2016 0, 335, 0, 0, 612, 0, 337, 0, 0, 0, 2017 54, 54, 0, 700, 0, 714, 0, 0, 0, 113, 2018 0, 0, 0, 0, 337, 0, 207, 0, 77, 0, 2019 0, 0, 0, 77, 0, 0, 0, 75, 0, 0, 2020 0, 54, 700, 0, 337, 0, 0, 0, 0, 0, 2021 0, 0, 0, 700, 700, 700, 0, 0, 377, 0, 2022 0, 0, 0, 0, 335, 332, 332, 396, 397, 562, 2023 0, 0, 401, 54, 403, 404, 54, 0, 0, 1194, 2024 75, 0, 0, 337, 84, 8, 9, 10, 11, 12, 2065 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 2066 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 2067 0, 338, 0, 0, 0, 0, 215, 338, 0, 0, 2068 0, 0, 0, 0, 0, 0, 0, 338, 335, 337, 2069 337, 0, 337, 337, 337, 0, 0, 216, 0, 0, 2070 0, 0, 0, 0, 0, 0, 122, 0, 122, 0, 2071 0, 0, 0, 75, 0, 54, 0, 345, 0, 0, 2072 1226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073 0, 0, 265, 72, 0, 0, 0, 0, 0, 0, 2074 72, 0, 0, 0, 54, 0, 337, 337, 77, 0, 2075 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 2076 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 2077 0, 0, 338, 0, 0, 0, 0, 345, 0, 0, 2078 0, 0, 84, 72, 0, 122, 0, 0, 0, 0, 2079 84, 0, 122, 0, 122, 122, 0, 0, 0, 122, 2080 0, 122, 122, 0, 0, 0, 0, 0, 0, 0, 2081 0, 0, 0, 0, 0, 0, 337, 345, 0, 0, 2082 0, 0, 337, 337, 0, 0, 0, 0, 0, 0, 2083 0, 0, 0, 0, 0, 345, 338, 84, 0, 0, 2084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085 0, 0, 0, 0, 1318, 0, 330, 0, 0, 0, 2086 0, 0, 0, 0, 214, 0, 0, 0, 0, 122, 2087 0, 0, 0, 0, 0, 0, 0, 345, 0, 0, 2088 0, 337, 0, 0, 0, 75, 0, 0, 0, 0, 2089 0, 0, 0, 0, 338, 338, 0, 338, 338, 338, 2090 0, 0, 0, 0, 337, 0, 337, 0, 0, 0, 2091 0, 0, 0, 0, 0, 0, 330, 0, 77, 0, 2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2093 0, 0, 0, 337, 0, 0, 0, 345, 0, 0, 2094 0, 0, 0, 0, 337, 337, 337, 0, 0, 0, 2095 0, 338, 338, 0, 0, 0, 337, 337, 0, 0, 2096 0, 0, 338, 0, 0, 0, 0, 0, 0, 0, 2097 75, 0, 0, 0, 0, 0, 54, 0, 0, 0, 2098 0, 0, 0, 0, 0, 345, 345, 0, 0, 0, 2099 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 2100 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 330, 0, 345, 0, 2102 0, 338, 0, 0, 0, 0, 0, 338, 338, 0, 2103 0, 84, 0, 0, 0, 0, 0, 0, 0, 345, 2104 0, 0, 0, 0, 161, 0, 165, 0, 0, 171, 2105 172, 173, 0, 175, 0, 0, 0, 0, 0, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 224, 215, 2107 0, 0, 0, 0, 0, 84, 330, 0, 345, 238, 2108 239, 0, 337, 0, 0, 0, 338, 0, 0, 0, 2109 77, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2110 17, 18, 19, 20, 21, 22, 23, 24, -279, 338, 2111 0, 338, 345, 0, 0, 0, 0, 0, 30, 0, 2112 0, 0, 0, 0, 330, 330, 0, 75, 0, 0, 2113 0, 0, 0, 0, 75, 0, 0, 0, 338, 330, 2114 0, 33, 0, 0, 327, 0, 0, 0, 0, 338, 2115 338, 338, -279, 0, 345, 0, 0, 0, 0, 0, 2116 0, 338, 338, 0, 345, 0, 0, 0, 0, 216, 2117 345, 0, 122, 122, 0, 77, 0, 75, 0, 0, 2118 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2120 122, 0, 0, 122, 122, 0, 122, 0, 122, 122, 2121 0, 0, 0, 122, 122, 0, 0, 330, 2, 197, 2122 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2123 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2124 24, 84, 0, 25, 26, 27, 0, 0, 0, 0, 2125 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2126 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 2127 0, 0, 0, 0, 33, 0, 34, 0, 35, 36, 2128 0, 198, 199, 39, 0, 0, 0, 338, 0, 0, 2129 40, 41, 0, 122, 0, 0, 0, 0, 122, 122, 2130 0, 0, 0, 0, 122, 0, 0, 0, 0, 330, 2131 0, 0, 0, 0, 0, 42, 0, 200, 0, 0, 2132 576, 0, 584, 0, 0, 201, 0, 0, 0, 345, 2133 0, 0, 77, 609, 610, 0, 0, 0, 0, 77, 2134 0, 0, 0, 0, 0, 0, 0, 620, 0, 456, 2135 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2136 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2137 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2138 54, 0, 77, 30, 0, 0, 0, 345, 345, 0, 2139 345, 345, 345, 0, 0, 0, 0, 0, 0, 0, 2140 0, 0, 0, 0, 330, 0, 33, 663, 34, 0, 2141 35, 84, 0, 37, 38, 0, 2, 197, 4, 5, 2142 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2143 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2144 0, 25, 26, 27, 345, 345, 0, 0, 271, 30, 2145 272, 0, -3, 0, 54, 345, 0, 0, 0, 0, 2146 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, 2147 0, 273, 33, 0, 34, 0, 35, 274, 0, 37, 2148 38, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2149 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2150 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 2151 0, 0, 0, 283, 345, 325, -3, 0, 0, 0, 2152 345, 345, 285, 326, 287, 288, 289, 290, 0, 330, 2153 330, 330, 8, 9, 10, 11, 12, 13, 14, 15, 2154 16, 17, 18, 19, 20, 21, 22, 23, 24, -280, 2155 54, 0, 0, 0, 0, 0, 0, 0, 0, 30, 2156 0, 0, 216, 0, 0, 0, 0, 803, 1017, 0, 2157 0, 8, 9, 10, 11, 12, 0, 0, 0, 345, 2158 0, 0, 33, 84, 0, 0, 0, 0, 0, 0, 2159 0, 0, 0, -280, 330, 0, 0, 271, 30, 272, 2160 0, 0, 345, 0, 345, 0, 0, 0, 0, 0, 2161 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, 2162 273, 33, 0, 0, 0, 0, 274, 0, 0, 0, 2163 275, 345, 0, 276, 277, 278, 279, 40, 41, 0, 2164 280, 281, 345, 345, 345, 0, 893, 0, 282, 0, 2165 0, 0, 0, 0, 345, 345, 0, 0, 0, 330, 2166 330, 0, 283, 0, 361, 909, 910, 0, 84, 914, 2167 0, 285, 892, 287, 288, 289, 290, 0, 0, 0, 2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 0, 345, 122, 0, 0, 0, 934, 0, 935, 2170 54, 54, 0, 0, 0, 0, 938, 939, 0, 0, 2171 0, 944, 0, 0, 0, 0, 0, 0, 330, 0, 2172 0, 0, 54, 949, 0, 0, 0, 0, 953, 0, 2173 0, 0, 0, 0, 271, 0, 272, 0, 0, 0, 2174 0, 0, 970, 0, 0, 0, 0, 54, 0, 0, 2175 0, 0, 981, 0, 0, 0, 0, 273, 0, 0, 2176 0, 0, 0, 274, 0, 0, 0, 275, 0, 0, 2177 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2178 345, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2179 0, 0, 0, 330, 330, 0, 0, 0, 0, 283, 2180 1003, 361, 54, 0, 0, 0, 0, 54, 285, 363, 2181 287, 288, 289, 290, 203, 0, 0, 0, 0, 1018, 2182 0, 0, 1213, 0, 222, 84, 226, 122, 228, 0, 2183 0, 0, 84, 0, 0, 236, 0, 0, 0, 0, 2184 0, 1170, 54, 0, 8, 9, 10, 11, 12, 0, 2185 0, 0, 1029, 0, 1030, 1031, 1032, 0, 0, 1035, 2186 864, 0, 0, 0, 203, 0, 226, 228, 236, 0, 2187 271, 30, 272, 0, 1077, 84, 0, 0, 0, 0, 2188 0, 0, 0, 0, 0, 0, 576, 0, 0, 1084, 2189 0, 203, 0, 273, 33, 1085, 0, 0, 0, 274, 2190 0, 0, 0, 275, 0, 203, 276, 277, 278, 279, 2191 40, 41, 0, 280, 281, 0, 0, 0, 0, 330, 2192 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 2193 0, 0, 0, 0, 1104, 283, 0, 361, 0, 0, 2194 0, 0, 0, 54, 285, 1171, 287, 288, 289, 290, 2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 757, 2196 0, 0, 0, 203, 54, 226, 228, 236, 0, 0, 2197 0, 54, 1130, 0, 0, 0, 0, 864, 0, 0, 2198 1138, 0, 0, 0, 1142, 0, 0, 0, 0, 1146, 2199 0, 0, 0, 1151, 1152, 1153, 0, 0, 0, 0, 2200 203, 0, 0, 1159, 203, 0, 0, 0, 0, 0, 2201 0, 0, 0, 1172, 54, 0, 0, 0, 0, 0, 2202 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2203 0, 0, 1188, 1189, 8, 9, 10, 11, 12, 13, 2204 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2205 24, 0, 0, 25, 26, 27, 0, 1218, 0, 0, 2206 1220, 30, 435, 0, 0, 0, 0, 0, 203, 0, 2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2208 0, 0, 0, 203, 33, 1234, 0, 0, 226, 228, 2209 0, 37, 38, 0, 0, 0, 236, 0, 0, 0, 2210 0, 0, 150, 0, 1241, 0, 0, 0, 0, 0, 2211 1245, 1246, 0, 0, 0, 0, 0, 0, 0, 1254, 2212 0, 0, 0, 0, 0, 1258, 0, 436, 1262, 0, 2213 1263, 689, 0, 1265, 0, 108, 0, 0, 203, 0, 2214 0, 0, 0, 0, 864, 0, 0, 241, 1274, 0, 2215 0, 0, 0, 0, 0, 0, 203, 246, 0, 0, 2216 0, 0, 203, 0, 271, 1283, 272, 1285, 1286, 1287, 2217 1288, 0, 0, 0, 0, 0, 0, 0, 0, 203, 2218 0, 0, 203, 203, 1296, 0, 1297, 273, 0, 0, 2219 165, 0, 0, 625, 0, 135, 0, 275, 0, 203, 2220 276, 277, 278, 279, 40, 41, 0, 280, 281, 1317, 2221 353, 0, 0, 203, 0, 282, 0, 0, 1322, 1323, 2222 203, 0, 0, 367, 0, 0, 0, 0, 0, 283, 2223 0, 626, 0, 627, 362, 0, 0, 0, 285, 363, 2224 287, 288, 289, 290, 0, 399, 0, 0, 0, 0, 2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 2226 0, 0, 0, 0, 0, 0, 0, 418, 0, 1357, 2227 1358, 0, 0, 0, 0, 1362, 1363, 426, 0, 0, 2228 0, 0, 0, 0, 0, 0, 1373, 0, 0, 434, 2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2230 0, 453, 0, 0, 0, 0, 463, 0, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 0, 0, 471, 2232 0, 0, 0, 0, 0, 481, 0, 485, 0, 203, 2233 0, 0, 0, 0, 0, 0, 0, 1404, 0, 0, 2234 0, 0, 0, 513, 0, 0, 0, 0, 0, 1408, 2235 0, 0, 0, 1411, 1412, 1413, 0, 0, 0, 203, 2236 0, 0, 0, 0, 203, 1417, 0, 0, 0, 0, 2237 0, 271, 0, 272, 1428, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 573, 0, 0, 0, 0, 0, 2239 1439, 0, 0, 0, 273, 0, 0, 0, 0, 0, 2240 274, 0, 0, 0, 275, 0, 0, 276, 277, 278, 2241 279, 40, 41, 621, 280, 281, 0, 622, 623, 0, 2242 624, 0, 282, 0, 0, 0, 634, 635, 0, 636, 2243 637, 0, 638, 0, 639, 0, 283, 0, 361, 0, 2244 0, 362, 1480, 1481, 0, 285, 363, 287, 288, 289, 2245 290, 652, 0, 203, 0, 1486, 0, 0, 0, 654, 2246 0, 271, 1486, 272, 1048, 0, 1049, 203, 0, 1050, 2247 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1532, 1058, 0, 2248 0, 1059, 32, 667, 273, 0, 0, 486, 0, 1516, 2249 625, 0, 0, 0, 275, 675, 0, 276, 277, 278, 2250 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2251 0, 0, 282, 0, 0, 0, 0, 1539, 711, 0, 2252 0, 0, 0, 0, 714, 0, 283, 0, 361, 453, 2253 0, 164, 0, 0, 0, 285, 363, 287, 288, 289, 2254 290, 0, 1552, 0, 0, 203, 0, 1554, 0, -126, 2255 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 2256 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 2257 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 2258 764, 0, 0, -501, 0, 0, 1, 2, 3, 4, 2259 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2260 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2261 0, 0, 25, 26, 27, 28, 790, 0, 29, 0, 2262 30, 31, 0, 0, 0, 800, 0, 801, 0, 0, 2263 0, 0, 0, 806, 0, 0, 0, 0, 0, 271, 2264 32, 272, 0, 33, 0, 34, 825, 35, 36, 0, 2265 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 2266 41, 0, 273, 0, 0, 0, 0, 0, 274, 0, 2267 0, 203, 275, 0, 0, 276, 277, 278, 279, 40, 2268 41, 0, 280, 281, 42, 866, 43, 0, 0, 0, 2269 282, 0, 0, 0, 44, 346, 0, 203, 0, 0, 2270 0, 0, 0, 0, 283, 0, 361, 0, 0, 0, 2271 0, 0, 787, 285, 363, 287, 288, 289, 290, 0, 2272 0, 901, 0, 203, 0, 0, 395, 0, 0, 0, 2273 0, 0, 0, 395, 0, 8, 9, 10, 11, 12, 2025 2274 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2026 23, 24, 612, 700, 25, 26, 27, 473, 474, 475, 2027 0, 0, 30, 0, 113, 84, 0, 337, 0, 0, 2028 216, 0, 335, 335, 0, 335, 335, 335, 0, 0, 2029 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2030 338, 0, 37, 38, 0, 0, 72, 0, 0, 0, 2031 217, 8, 9, 10, 11, 12, 0, 0, 206, 337, 2032 0, 330, 0, 0, 249, 0, 0, 0, 0, 337, 2033 0, 808, 0, 0, 215, 337, 0, 0, 30, 335, 2034 335, 562, 562, 0, 0, 337, 77, 0, 0, 394, 2035 335, 332, 0, 0, 0, 0, 0, 0, 0, 0, 2036 338, 33, 0, 0, 0, 77, 36, 0, 177, 0, 2037 39, 0, 0, 77, 0, 113, 0, 40, 41, 0, 2038 0, 207, 0, 54, 0, 0, 0, 0, 0, 0, 2039 0, 0, 0, 0, 0, 345, 1194, 0, 0, 338, 2040 0, 0, 674, 1194, 392, 0, 75, 0, 0, 335, 2041 0, 54, 676, 0, 0, 335, 335, 338, 0, 77, 2042 8, 9, 10, 11, 12, 1141, 0, 0, 0, 0, 2043 337, 0, 0, 0, 0, 0, 0, 0, 0, 8, 2044 9, 10, 11, 12, 1158, 0, 1194, 30, 0, 0, 2045 0, 0, 0, 1535, 0, 0, 0, 214, 0, 338, 2046 0, 0, 0, 467, 0, 0, 30, 0, 0, 0, 2047 33, 0, 0, 0, 335, 36, 0, 177, 72, 39, 2048 0, 0, 0, 207, 0, 84, 40, 41, 0, 33, 2049 84, 808, 0, 337, 36, 0, 177, 335, 39, 335, 2050 170, 0, 0, 0, 0, 40, 41, 0, 0, 0, 2051 0, 255, 0, 206, 0, 0, 0, 0, 0, 338, 2052 0, 256, 562, 330, 0, 0, 335, 1233, 0, 0, 2053 1514, 0, 392, 0, 0, 0, 0, 335, 335, 335, 2054 1515, 0, 0, 0, 0, 0, 0, 0, 0, 335, 2055 335, 337, 337, 0, 337, 337, 337, 8, 9, 10, 2056 11, 12, 0, 72, 0, 0, 0, 338, 338, 0, 2057 0, 0, 0, 0, 0, 75, 0, 217, 0, 0, 2058 0, 0, 338, 330, 30, 0, 0, 335, 0, 0, 2059 0, 0, 0, 0, 0, 0, 0, 345, 0, 0, 2060 338, 0, 0, 794, 795, 0, 0, 33, 337, 337, 2061 0, 0, 36, 77, 0, 206, 39, 0, 0, 337, 2062 338, 0, 0, 40, 41, 0, 0, 0, 0, 0, 2063 0, 829, 0, 0, 832, 833, 0, 836, 0, 838, 2064 839, 0, 54, 84, 840, 841, 0, 0, 42, 0, 2065 0, 0, 0, 0, 0, 0, 77, 345, 143, 338, 2066 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 2067 84, 0, 0, 0, 0, 335, 0, 0, 337, 0, 2068 0, 0, 330, 0, 337, 337, 0, 0, 0, 0, 2069 0, 0, 0, 338, 0, 0, 345, 0, 0, 0, 2275 23, 24, -279, 203, 25, 26, 27, 0, 0, 0, 2276 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2277 203, 0, 0, 0, 0, 0, 0, 0, 0, 241, 2278 0, 0, 0, 0, 0, 33, 0, 0, 0, 950, 2279 951, 0, 37, 38, 0, 0, -279, 0, 0, 0, 2280 0, 965, 0, 395, 0, 0, 0, 0, 271, 0, 2281 272, 0, 0, 0, 0, 0, 0, 0, 982, 0, 2282 983, 0, 0, 0, 987, 0, 1028, 0, 568, 0, 2283 0, 273, 0, 0, 0, 0, 108, 274, 0, 203, 2284 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2285 0, 280, 281, 0, 0, 0, 203, 395, 0, 282, 2286 0, 0, 0, 0, 0, 395, 569, 0, 395, 572, 2287 0, 346, 0, 283, 0, 361, 599, 0, 0, 0, 2288 756, 0, 285, 363, 287, 288, 289, 290, 0, 1023, 2289 0, 0, 0, 0, 0, 617, 1024, 0, 346, 0, 2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 1026, 2291 0, 1027, 0, 0, 0, 0, 271, 0, 272, 0, 2292 0, 0, 0, 0, 395, 0, 1040, 0, 395, 0, 2293 0, 0, 1044, 0, 0, 0, 0, 0, 0, 273, 2294 0, 0, 0, 0, 1080, 274, 0, 1081, 203, 275, 2295 0, 0, 276, 277, 278, 279, 40, 41, 346, 280, 2296 281, 0, 0, 0, 0, 0, 790, 282, 0, 0, 2297 0, 0, 1091, 0, 0, 0, 0, 0, 0, 0, 2298 310, 283, 395, 361, 0, 0, 973, 0, 0, 328, 2299 285, 363, 287, 288, 289, 290, 0, 0, 0, 0, 2300 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, 2301 0, 0, 0, 395, 0, 0, 346, 0, 0, 0, 2302 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2303 18, 19, 20, 21, 22, 23, 24, -279, 0, 25, 2304 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2305 203, 0, 0, 0, 0, 395, 0, 1150, 346, 0, 2306 0, 0, 0, 1156, 1157, 0, 0, 0, 0, 0, 2307 33, 0, 0, 0, 0, 36, 0, 809, 38, 39, 2308 0, -279, 0, 0, 0, 0, 40, 41, 0, 0, 2309 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 2310 0, 0, 395, 395, 0, 0, 0, 0, 0, 0, 2311 0, 1028, 0, 568, 0, 0, 0, 0, 346, 1215, 2312 346, 611, 0, 0, 0, 1219, 0, 0, 812, 0, 2313 0, 599, 0, 599, 599, 0, 0, 0, 0, 0, 2314 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2315 844, 346, 0, 0, 0, 0, 346, 0, 0, 0, 2316 1238, 0, 0, 0, 0, 1240, 346, 346, 0, 0, 2317 0, 0, 0, 1244, 0, 0, 0, 0, 0, 0, 2318 0, 346, 0, 0, 0, 0, 395, 887, 0, 0, 2319 395, 890, 328, 0, 0, 0, 0, 0, 0, 0, 2320 0, 364, 1267, 0, 0, 0, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, 395, 0, 0, 0, 1278, 2322 346, 395, 1279, 395, 1280, 0, 0, 395, 0, 0, 2070 2323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071 0, 0, 0, 0, 345, 0, 84, 0, 0, 0, 2072 72, 0, 0, 0, 0, 0, 215, 72, 922, 923, 2073 0, 0, 0, 0, 925, 338, 0, 0, 0, 0, 2074 0, 0, 330, 337, 0, 338, 0, 75, 0, 0, 2075 216, 338, 0, 0, 0, 0, 345, 0, 0, 0, 2076 0, 338, 0, 0, 0, 0, 337, 0, 337, 0, 2077 72, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2324 0, 1290, 1291, 0, 0, 0, 0, 0, 0, 0, 2325 0, 310, 0, 0, 0, 0, 0, 0, 0, 346, 2326 599, 0, 1304, 0, 0, 0, 0, 0, 0, 0, 2327 0, 0, 310, 310, 0, 0, 0, 0, 0, 0, 2328 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, 2329 0, 0, 0, 346, 1328, 0, 0, 395, 395, 0, 2330 0, 0, 713, 0, 0, 0, 0, 0, 8, 9, 2331 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2332 20, 21, 22, 23, 24, -279, 0, 25, 26, 27, 2333 0, 0, 0, 0, 0, 30, 0, 0, 0, 395, 2334 745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2335 0, 346, 758, 0, 0, 0, 0, 0, 33, 745, 2336 599, 0, 599, 36, 0, 809, 38, 39, 0, -279, 2337 0, 599, 767, 768, 40, 41, 8, 9, 10, 11, 2338 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2339 22, 23, 24, 1398, 789, 1399, 0, 0, 0, 0, 2340 0, 568, 812, 30, 798, 0, 1406, 0, 1407, 108, 2341 0, 0, 758, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 0, 33, 0, 1416, 0, 2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344 0, 0, 0, 0, 1434, 0, 346, 0, 0, 0, 2345 0, 0, 395, 395, 0, 0, 1440, 0, 0, 1244, 2346 395, 0, 0, 865, 0, 395, 0, 0, 0, 0, 2347 364, 0, 0, 395, 0, 0, 0, 0, 0, 0, 2348 0, 1461, 0, 0, 0, 0, 599, 599, 0, 0, 2349 1468, 328, 0, 1470, 1472, 0, 0, 0, 0, 0, 2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2351 346, 0, 0, 0, 328, 0, 0, 395, 0, 0, 2352 0, 0, 0, 0, 812, 0, 0, 0, 0, 0, 2353 0, 1499, 0, 0, 0, 1244, 395, 1145, 0, 0, 2354 0, 0, 1148, 0, 346, 0, 0, 1511, 0, 0, 2355 0, 0, 0, 0, 0, 395, 1162, 0, 599, 599, 2356 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357 0, 346, 346, 346, 0, 0, 0, 0, 0, 0, 2358 0, 0, 0, 0, 0, 0, 0, 758, 0, 971, 2359 0, 0, 0, 0, 0, 976, 0, 0, 0, 0, 2360 0, 0, 0, 986, 0, 8, 9, 10, 11, 12, 2361 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2362 23, 24, -279, 0, 25, 26, 27, 0, 1227, 0, 2363 0, 0, 30, 395, 0, 0, 346, 812, 395, 1237, 2364 328, 0, 0, 1000, 1001, 328, 0, 0, 0, 0, 2365 599, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2366 0, 0, 37, 38, 328, 0, -279, 0, 0, 0, 2367 0, 0, 812, 0, 0, 0, 0, 493, 497, 493, 2368 500, 0, 0, 0, 0, 0, 0, 503, 504, 0, 2369 0, 0, 493, 493, 0, 346, 1028, 0, 568, 0, 2370 1148, 346, 346, 0, 493, 1038, 611, 0, 0, 364, 2371 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2372 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2373 23, 24, -279, 493, 25, 26, 27, 0, 0, 0, 2374 328, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2376 346, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2377 493, 0, 37, 38, 1148, 0, -279, 0, 0, 0, 2378 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 2379 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 1125, 1126, 0, 0, 568, 0, 2381 0, 271, 364, 272, 0, 0, 108, 0, 0, 976, 2382 0, 0, 1136, 0, 745, 0, 0, 0, 0, 0, 2383 0, 0, 0, 0, 273, 346, 346, 0, 0, 0, 2384 274, 1154, 0, 0, 275, 0, 0, 276, 277, 278, 2385 279, 40, 41, 0, 280, 281, 0, 0, 1173, 0, 2386 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 2387 0, 0, 1148, 0, 0, 0, 283, 0, 361, 0, 2388 0, 364, 0, 1192, 0, 285, 363, 287, 288, 289, 2389 290, 0, 0, 0, 0, 0, 0, 0, 1214, 0, 2390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 758, 0, 0, 0, 812, 0, 0, 0, 0, 0, 2394 0, 0, 0, 493, 493, 493, 493, 493, 493, 493, 2395 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 2396 493, 346, 0, 0, 0, 0, 0, 0, 976, 0, 2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2398 0, 0, 493, 0, 0, 0, 0, 0, 0, 865, 2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2400 0, 0, 0, 0, 0, 0, 0, 1281, 0, 1282, 2401 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 2402 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2078 2403 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2079 330, 330, 25, 26, 27, 337, 0, 0, 0, 0, 2080 30, 434, 0, 0, 0, 330, 337, 337, 337, 0, 2081 0, 0, 0, 0, 0, 0, 345, 0, 337, 337, 2082 0, 0, 77, 33, 0, 0, 0, 0, 0, 0, 2083 37, 38, 75, 0, 8, 9, 10, 11, 12, 0, 2084 0, 0, 0, 0, 0, 0, 338, 0, 0, 0, 2085 0, 0, 122, 122, 122, 0, 337, 0, 0, 0, 2086 0, 30, 0, 0, 345, 345, 435, 0, 0, 0, 2087 687, 0, 0, 0, 108, 0, 0, 0, 0, 345, 2088 0, 0, 330, 0, 33, 0, 0, 0, 0, 36, 2089 0, 0, 0, 39, 0, 0, 0, 345, 0, 0, 2090 40, 41, 0, 0, 0, 0, 0, 0, 0, 338, 2091 84, 0, 0, 0, 162, 0, 166, 345, 0, 172, 2092 173, 174, 122, 176, 122, 720, 0, 0, 0, 0, 2093 0, 0, 0, 0, 0, 721, 0, 0, 225, 0, 2094 0, 0, 0, 0, 337, 0, 0, 0, 265, 238, 2095 239, 0, 0, 84, 0, 0, 345, 0, 0, 0, 2096 0, 0, 0, 0, 0, 0, 0, 338, 338, 0, 2097 338, 338, 338, 0, 330, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 2099 345, 77, 0, 0, 0, 0, 75, 0, 0, 0, 2100 0, 0, 122, 0, 0, 0, 0, 0, 0, 122, 2101 0, 122, 122, 0, 0, 327, 122, 0, 122, 122, 2102 0, 0, 0, 0, 338, 338, 0, 0, 0, 0, 2103 0, 0, 345, 0, 0, 338, 0, 0, 0, 75, 2104 0, 0, 345, 0, 0, 54, 0, 217, 345, 0, 2105 0, 0, 0, 0, 0, 0, 0, 0, 345, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 1014, 330, 2107 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2108 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 2109 0, 0, 0, 0, 338, 0, 0, 271, 30, 272, 2110 338, 338, 0, 0, 0, 0, 0, 0, 0, 0, 2111 0, 0, 0, 0, 0, 0, 0, 0, 54, 84, 2112 273, 33, 1223, 0, 0, 0, 274, 0, 0, 0, 2113 275, 0, 330, 276, 277, 278, 279, 40, 41, 0, 2114 280, 281, 216, 345, 0, 0, 0, 0, 282, 0, 2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2116 0, 0, 283, 77, 361, 0, 0, 0, 0, 0, 2117 0, 285, 890, 287, 288, 289, 290, 0, 0, 0, 2118 0, 0, 338, 0, 338, 0, 0, 0, 0, 0, 2119 575, 0, 583, 330, 330, 330, 0, 0, 0, 0, 2120 0, 0, 0, 608, 609, 0, 345, 0, 0, 0, 2121 0, 338, 0, 0, 54, 0, 0, 619, 0, 0, 2122 0, 0, 338, 338, 338, 0, 0, 0, 0, 0, 2123 0, 0, 0, 0, 338, 338, 0, 0, 0, 0, 2124 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 2125 0, 0, 0, 0, 0, 0, 1315, 0, 330, 0, 2126 0, 0, 0, 0, 345, 345, 0, 345, 345, 345, 2127 0, 0, 338, 0, 0, 0, 0, 662, 0, 0, 2128 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 2129 0, 0, 197, 2, 198, 4, 5, 6, 7, 8, 2130 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2131 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2132 27, 345, 345, 330, 330, 0, 30, 0, 0, 0, 2133 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2135 0, 34, 0, 35, 0, 0, 199, 200, 0, 0, 2136 338, 0, 0, 0, 54, 54, 0, 0, 0, 0, 2137 0, 0, 0, 0, 0, 0, 755, 0, 0, 0, 2138 0, 0, 330, 0, 0, 0, 54, 122, 122, 0, 2139 0, 345, 201, 0, 0, 0, 0, 345, 345, 0, 2140 261, 0, 0, 0, 0, 77, 0, 0, 0, 0, 2141 0, 54, 77, 0, 0, 122, 0, 0, 122, 122, 2142 0, 122, 0, 122, 122, 0, 0, 0, 122, 122, 2143 0, 0, 0, 0, 0, 0, 801, 0, 0, 217, 2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2145 0, 0, 0, 0, 0, 77, 345, 330, 330, 0, 2146 84, 0, 0, 0, 0, 0, 54, 0, 0, 0, 2147 0, 54, 0, 0, 0, 0, 0, 0, 0, 345, 2148 0, 345, 0, 0, 0, 0, 0, 862, 0, 8, 2149 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2150 19, 20, 21, 22, 23, 24, 54, 122, 345, 0, 2151 0, 0, 122, 122, 0, 891, 30, 0, 122, 345, 2152 345, 345, 0, 0, 0, 0, 0, 0, 0, 0, 2153 0, 345, 345, 906, 907, 0, 0, 911, 0, 33, 2154 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2156 0, 0, 0, 0, 0, 931, 0, 932, 0, 345, 2157 0, 0, 0, 0, 935, 936, 0, 0, 0, 941, 2158 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 2159 0, 946, 0, 0, 0, 0, 950, 0, 0, 0, 2160 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 2161 967, 0, 0, 0, 0, 271, 0, 272, 0, 204, 2162 978, 0, 0, 0, 0, 0, 0, 0, 54, 223, 2163 0, 227, 0, 229, 0, 54, 0, 0, 273, 0, 2164 236, 0, 0, 0, 274, 0, 0, 0, 275, 0, 2165 0, 276, 277, 278, 279, 40, 41, 345, 280, 281, 2166 0, 0, 0, 0, 0, 0, 282, 0, 1000, 204, 2167 0, 227, 229, 236, 0, 0, 0, 0, 54, 0, 2168 283, 0, 361, 0, 0, 0, 0, 1015, 0, 285, 2169 363, 287, 288, 289, 290, 0, 0, 204, 0, 0, 2170 0, 0, 84, 1210, 0, 0, 0, 0, 0, 84, 2171 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 2172 1026, 0, 1027, 1028, 1029, 0, 0, 1032, 862, 0, 2173 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 2174 0, 271, 1074, 272, 0, 0, 0, 0, 0, 0, 2175 0, 0, 84, 0, 575, 0, 0, 1081, 0, 0, 2176 0, 0, 0, 1082, 273, 0, 0, 0, 0, 204, 2177 274, 227, 229, 236, 275, 0, 241, 276, 277, 278, 2178 279, 40, 41, 0, 280, 281, 246, 0, 0, 0, 2179 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 2180 0, 1101, 0, 0, 0, 204, 283, 0, 361, 204, 2181 0, 362, 0, 0, 0, 285, 363, 287, 288, 289, 2182 290, 0, 0, 0, 0, 485, 755, 0, 0, 0, 2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 1127, 2184 353, 0, 0, 0, 862, 0, 0, 1135, 0, 0, 2185 0, 1139, 0, 367, 0, 0, 1143, 0, 0, 0, 2186 1148, 1149, 1150, 0, 0, 0, 0, 0, 0, 0, 2187 1156, 0, 0, 204, 0, 399, 0, 0, 0, 0, 2188 1169, 0, 0, 0, 0, 0, 0, 0, 204, 413, 2189 0, 0, 0, 227, 229, 0, 0, 418, 0, 1185, 2190 1186, 236, 0, 0, 0, 0, 122, 426, 0, 0, 2191 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, 2192 0, 0, 0, 0, 1215, 0, 0, 1217, 0, 0, 2193 452, 0, 0, 0, 0, 462, 0, 0, 0, 0, 2194 0, 0, 0, 204, 0, 0, 0, 0, 470, 0, 2195 0, 0, 1231, 0, 480, 0, 484, 0, 0, 0, 2196 0, 204, 0, 0, 0, 0, 0, 204, 0, 0, 2197 0, 1238, 512, 0, 0, 0, 0, 1242, 1243, 0, 2198 0, 0, 0, 0, 204, 0, 1251, 204, 204, 0, 2199 0, 0, 1255, 0, 0, 1259, 0, 1260, 0, 0, 2200 1262, 0, 0, 204, 0, 0, 0, 0, 0, 0, 2201 0, 862, 0, 572, 0, 1271, 0, 204, 0, 0, 2202 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 2203 0, 271, 1280, 272, 1282, 1283, 1284, 1285, 0, 0, 2204 122, 0, 620, 0, 0, 0, 621, 622, 0, 623, 2205 0, 1293, 0, 1294, 273, 633, 634, 166, 635, 636, 2206 274, 637, 0, 638, 275, 0, 0, 276, 277, 278, 2207 279, 40, 41, 0, 280, 281, 1314, 0, 0, 0, 2208 651, 0, 282, 0, 0, 1319, 1320, 0, 653, 0, 2209 0, 0, 0, 0, 0, 0, 283, 0, 361, 0, 2210 0, 0, 0, 0, 785, 285, 363, 287, 288, 289, 2211 290, 0, 666, 0, 0, 0, 0, 0, 0, 0, 2212 0, 0, 0, 673, 0, 0, 0, 0, 0, 0, 2213 0, 0, 0, 204, 0, 0, 1354, 1355, 0, 0, 2214 0, 0, 1359, 1360, 0, 0, 709, 0, 0, 0, 2215 0, 0, 712, 1370, 0, 0, 0, 452, 0, 0, 2216 0, 0, 0, 204, 0, 0, 0, 0, 204, 197, 2217 2, 198, 4, 5, 6, 7, 8, 9, 10, 11, 2218 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2219 22, 23, 24, 746, 0, 25, 26, 27, 0, 0, 2220 0, 0, 0, 30, 1401, 0, 0, 0, 762, 0, 2221 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, 2222 1408, 1409, 1410, 0, 0, 0, 33, 0, 34, 0, 2223 35, 36, 1414, 199, 200, 39, 0, 0, 0, 0, 2224 0, 1425, 40, 41, 788, 0, 0, 0, 0, 0, 2225 0, 0, 0, 798, 0, 799, 204, 1436, 0, 0, 2226 0, 804, 0, 271, 0, 272, 0, 42, 0, 201, 2227 204, 0, 0, 0, 823, 0, 0, 202, 0, 0, 2228 0, 0, 0, 0, 0, 0, 273, 0, 0, 0, 2229 485, 0, 624, 0, 135, 136, 275, 0, 0, 276, 2230 277, 278, 279, 40, 41, 0, 280, 281, 0, 1477, 2231 1478, 0, 0, 864, 282, 0, 0, 0, 0, 0, 2232 0, 0, 1483, 0, 271, 0, 272, 0, 283, 1483, 2233 625, 0, 626, 362, 0, 0, 0, 285, 363, 287, 2234 288, 289, 290, 0, 0, 0, 0, 273, 204, 899, 2235 0, 0, 0, 274, 0, 0, 1513, 275, 204, 0, 2404 0, 395, 25, 26, 27, 28, 0, 0, 29, 0, 2405 30, 31, 0, 0, 758, 0, 0, 0, 0, 0, 2406 0, 0, 395, 395, 0, 0, 0, 0, 0, 310, 2407 32, 0, 0, 33, 0, 34, 0, 35, 36, 0, 2408 37, 38, 39, 395, 493, 0, 0, 0, 0, 40, 2409 41, 0, 976, 0, 0, 0, 0, 0, 0, 0, 2410 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 2411 0, 0, 0, 0, 42, 0, 43, 0, 0, 493, 2412 -505, 0, 0, 0, 44, 0, 0, 0, 0, 0, 2413 0, 1, 2, 197, 4, 5, 6, 7, 8, 9, 2414 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2415 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2416 28, 0, 493, 29, 271, 30, 1047, 1048, 0, 1049, 2417 0, 0, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2418 0, 1058, 0, 0, 1059, 32, 0, 273, 33, 0, 2419 34, 0, 35, 625, 493, 37, 38, 275, 0, 0, 2236 2420 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2237 2421 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2238 204, 0, 0, 0, 1536, 0, 0, 0, 346, 283, 2239 0, 361, 0, 0, 0, 0, 754, 0, 285, 363, 2240 287, 288, 289, 290, 0, 0, 241, 0, 0, 1549, 2241 0, 0, 0, 0, 1551, 0, 947, 948, 0, 395, 2242 0, 0, 0, 0, 0, 0, 395, 0, 962, 0, 2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2244 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 2245 0, 984, 0, 0, 0, 8, 9, 10, 11, 12, 2246 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2247 23, 24, 0, 204, 25, 26, 27, 0, 0, 0, 2248 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2249 0, 0, 0, 0, 0, 395, 0, 0, 0, 204, 2250 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2251 36, 0, 37, 38, 39, 0, 1020, 0, 0, 0, 2252 0, 40, 41, 1021, 0, 204, 0, 0, 0, 0, 2253 0, 0, 0, 0, 0, 0, 1023, 0, 1024, 0, 2254 0, 0, 0, 0, 0, 0, 42, 0, 152, 395, 2255 0, 0, 0, 1037, 0, 204, 44, 395, 568, 1041, 2256 395, 571, 0, 346, 0, 0, 0, 0, 598, 0, 2257 0, 1077, 204, 0, 1078, 0, 0, 0, 0, 0, 2258 0, 0, 0, 0, 0, 0, 271, 616, 272, 0, 2259 346, 0, 788, 0, 0, 0, 0, 0, 1088, 0, 2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 2261 0, 0, 0, 0, 0, 274, 395, 0, 0, 275, 2262 395, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2263 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2264 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 2265 346, 283, 0, 361, 0, 0, 970, 0, 204, 0, 2266 285, 363, 287, 288, 289, 290, 0, 0, 0, 0, 2267 0, 0, 310, 395, 0, 0, 0, 0, 0, 0, 2268 0, 328, 0, 1147, 0, 0, 0, 0, 0, 1153, 2269 1154, 0, 0, 364, 0, 0, 0, 0, 0, 492, 2270 496, 492, 499, 0, 395, 0, 0, 346, 0, 502, 2271 503, 0, 0, 0, 492, 492, 0, 0, 0, 0, 2272 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2274 0, 0, 0, 0, 0, 1212, 395, 0, 0, 346, 2275 204, 1216, 0, 0, 0, 492, 0, 0, 0, 0, 2276 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2277 18, 19, 20, 21, 22, 23, 24, -279, 0, 25, 2278 26, 27, 0, 0, 466, 0, 1235, 30, 0, 0, 2279 0, 1237, 492, 395, 395, 0, 0, 0, 0, 1241, 2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 2281 33, 346, 0, 0, 0, 0, 0, 37, 38, 810, 2282 0, -279, 598, 0, 598, 598, 0, 0, 1264, 0, 2283 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 2284 0, 842, 346, 0, 0, 1275, 0, 346, 1276, 0, 2285 1277, 1025, 204, 567, 0, 0, 0, 346, 346, 0, 2286 0, 108, 0, 0, 0, 0, 0, 1287, 1288, 0, 2287 0, 0, 346, 0, 0, 0, 0, 395, 885, 0, 2288 0, 395, 888, 328, 0, 0, 0, 0, 1301, 0, 2289 0, 0, 364, 0, 0, 0, 0, 0, 0, 0, 2290 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, 2291 346, 395, 0, 395, 0, 0, 0, 395, 0, 0, 2292 1325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2294 0, 0, 310, 0, 0, 0, 0, 0, 0, 346, 2295 598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 0, 0, 310, 492, 492, 492, 492, 492, 492, 2297 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 2298 492, 492, 0, 346, 0, 0, 0, 395, 395, 0, 2299 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 2300 0, 0, 0, 492, 0, 0, 0, 1167, 0, 0, 2301 8, 9, 10, 11, 12, 0, 0, 0, 0, 1395, 2302 0, 1396, 0, 0, 0, 0, 0, 0, 0, 395, 2303 743, 0, 1403, 0, 1404, 0, 271, 30, 272, 0, 2304 0, 346, 756, 0, 0, 0, 0, 0, 0, 743, 2305 598, 0, 598, 0, 1413, 0, 0, 0, 0, 273, 2306 33, 598, 765, 766, 0, 274, 0, 0, 0, 275, 2307 1431, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2308 281, 0, 1437, 0, 787, 1241, 0, 282, 0, 0, 2309 0, 204, 810, 0, 796, 0, 0, 0, 0, 0, 2310 0, 283, 756, 361, 492, 0, 0, 1458, 0, 0, 2311 285, 1168, 287, 288, 289, 290, 1465, 0, 0, 1467, 2312 1469, 0, 0, 0, 0, 0, 492, 0, 0, 0, 2313 0, 0, 0, 0, 0, 0, 346, 0, 0, 492, 2314 0, 395, 395, 0, 0, 0, 0, 0, 0, 395, 2315 0, 0, 0, 863, 395, 0, 0, 1496, 0, 0, 2316 364, 1241, 395, 0, 0, 0, 0, 0, 0, 0, 2317 0, 0, 0, 1508, 0, 598, 598, 0, 0, 0, 2318 0, 328, 492, 0, 0, 0, 0, 0, 0, 0, 2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 2320 0, 0, 0, 328, 0, 0, 395, 0, 0, 0, 2321 0, 0, 0, 810, 492, 0, 0, 0, 0, 0, 2322 0, 0, 0, 0, 0, 395, 1142, 0, 0, 0, 2323 0, 1145, 0, 346, 0, 0, 0, 0, 0, 0, 2324 0, 0, 0, 0, 395, 1159, 0, 598, 598, 1164, 2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2326 346, 346, 346, 0, 0, 0, 0, 0, 0, 0, 2327 0, 0, 0, 0, 0, 0, 756, 0, 968, 0, 2328 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 2329 0, 0, 983, 0, 8, 9, 10, 11, 12, 13, 2330 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2331 24, -279, 0, 25, 26, 27, 0, 1224, 0, 492, 2332 0, 30, 395, 0, 0, 346, 810, 395, 1234, 328, 2333 0, 0, 997, 998, 328, 271, 0, 272, 0, 598, 2334 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2335 0, 37, 38, 328, 0, -279, 0, 0, 273, 0, 2336 0, 810, 0, 0, 274, 0, 0, 0, 275, 0, 2337 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2338 0, 0, 0, 0, 346, 1025, 282, 567, 0, 1145, 2339 346, 346, 0, 0, 1035, 610, 0, 0, 364, 0, 2340 283, 0, 361, 0, 0, 0, 0, 0, 0, 285, 2341 363, 287, 288, 289, 290, 492, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 492, 0, 0, 0, 328, 2343 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2344 17, 18, 19, 20, 21, 22, 23, 24, 0, 346, 2345 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2346 0, 0, 0, 1145, 0, 0, 0, 0, 0, 0, 2347 0, 0, 0, 492, 346, 0, 0, 0, 0, 310, 2348 0, 33, 0, 0, 0, 0, 0, 0, 199, 200, 2349 0, 0, 1122, 1123, 0, 0, 0, 0, 0, 0, 2350 364, 0, 0, 0, 0, 0, 0, 973, 0, 0, 2351 1133, 0, 743, 0, 0, 271, 0, 272, 0, 0, 2352 0, 0, 0, 0, 346, 346, 0, 0, 0, 1151, 2353 0, 0, 261, 0, 0, 0, 0, 0, 273, 0, 2354 0, 0, 0, 0, 274, 0, 1170, 492, 275, 0, 2355 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2356 0, 1145, 0, 0, 0, 0, 282, 0, 0, 364, 2357 0, 1189, 0, 0, 0, 0, 0, 0, 0, 0, 2358 283, 0, 361, 0, 0, 0, 1211, 0, 0, 285, 2359 710, 287, 288, 289, 290, 0, 0, 492, 0, 0, 2360 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 2361 0, 0, 492, 492, 0, 0, 0, 0, 756, 0, 2362 0, 0, -501, 810, 0, 1, 2, 3, 4, 5, 2363 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2364 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2365 346, 25, 26, 27, 28, 0, 973, 29, 0, 30, 2366 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367 0, 271, 0, 272, 0, 0, 0, 863, 0, 32, 2368 0, 0, 33, 0, 34, 0, 35, 36, 0, 37, 2369 38, 39, 0, 0, 273, 1278, 0, 1279, 40, 41, 2370 624, 0, 0, 0, 275, 0, 0, 276, 277, 278, 2371 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2372 0, 0, 282, 42, 0, 43, 0, 0, 0, 0, 2373 395, 0, 0, 44, 0, 0, 283, 0, 759, 0, 2374 0, 0, 756, 0, 0, 285, 363, 287, 288, 289, 2375 290, 395, 395, 0, 0, 0, 0, 310, 0, 0, 2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2377 0, 0, 395, 0, 0, 0, 0, 0, 0, 0, 2378 973, 0, 0, 1, 2, 198, 4, 5, 6, 7, 2379 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2380 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2381 26, 27, 28, 0, 0, 29, 271, 30, 1044, 1045, 2382 0, 1046, 0, 0, 1047, 1048, 1049, 1050, 1051, 1052, 2383 1053, 1054, 0, 1055, 0, 0, 1056, 32, 0, 273, 2384 33, 0, 34, 0, 35, 624, 492, 37, 38, 275, 2385 0, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2386 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2388 0, 283, 0, 1057, 0, 0, 165, 0, 0, 0, 2389 285, 286, 287, 288, 289, 290, 0, 0, 0, 0, 2390 0, 0, 0, 0, -126, 0, 0, 0, 0, 492, 2391 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 0, 0, 1444, 0, 0, 0, 0, 0, 1, 2, 2394 198, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2423 0, 1060, 0, 0, 164, 0, 0, 0, 285, 286, 2424 287, 288, 289, 290, 1447, 0, 0, 0, 0, 0, 2425 0, 0, -126, 0, 0, 0, 0, 0, 1, 2, 2426 197, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2395 2427 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2396 2428 23, 24, 0, 0, 25, 26, 27, 28, 0, 0, 2397 29, 271, 30, 272, 8, 9, 10, 11, 12, 13, 2429 29, 271, 30, 272, 0, 0, 0, 0, 0, 493, 2430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 271, 0, 272, 0, 273, 33, 0, 34, 1503, 35, 2432 274, 0, 37, 38, 275, 0, 0, 276, 277, 278, 2433 279, 40, 41, 273, 280, 281, 0, 0, 0, 274, 2434 0, 0, 282, 275, 0, 0, 276, 277, 278, 279, 2435 40, 41, 0, 280, 281, 0, 283, 0, 1060, 0, 2436 0, 282, 0, 0, 310, 285, 286, 287, 288, 289, 2437 290, 0, 0, 0, 0, 283, 0, 361, 0, -126, 2438 0, 0, 0, 0, 285, 712, 287, 288, 289, 290, 2439 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 2440 0, 0, 0, 0, 0, 0, 493, 1, 2, 197, 2441 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2398 2442 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2399 24, -279, 0, 0, 273, 33, 0, 34, 0, 35, 2400 274, 30, 37, 38, 275, 0, 1500, 276, 277, 278, 2401 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2402 0, 0, 282, 0, 33, 0, 0, 0, 0, 0, 2403 0, 0, 0, 0, 0, -279, 283, 0, 1057, 0, 2404 0, 0, 0, 0, 0, 285, 286, 287, 288, 289, 2405 290, 0, 310, 0, 0, 0, 0, 0, 0, -126, 2406 1, 2, 198, 4, 5, 6, 7, 8, 9, 10, 2407 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2408 21, 22, 23, 24, 0, 0, 25, 26, 27, 28, 2409 0, 0, 29, 271, 30, 272, 8, 9, 10, 11, 2443 24, 0, 0, 25, 26, 27, 28, 0, 0, 29, 2444 271, 30, 272, 0, 0, 0, 0, 0, 0, 0, 2445 0, 0, 0, 0, 493, 0, 0, 0, 0, 271, 2446 0, 272, 0, 273, 33, 0, 34, 0, 35, 274, 2447 0, 37, 38, 275, 0, 0, 276, 277, 278, 279, 2448 40, 41, 273, 280, 281, 0, 0, 0, 625, 0, 2449 0, 282, 275, 0, 0, 276, 277, 278, 279, 40, 2450 41, 0, 280, 281, 0, 283, 0, 43, 0, 0, 2451 282, 0, 0, 0, 285, 286, 287, 288, 289, 290, 2452 0, 0, 0, 0, 283, 0, 761, 0, 493, 0, 2453 0, 0, 0, 285, 363, 287, 288, 289, 290, 0, 2454 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2410 2455 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2411 22, 23, 24, -280, 0, 0, 273, 33, 0, 34, 2412 0, 35, 274, 30, 37, 38, 275, 0, 0, 276, 2413 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2414 0, 0, 0, 0, 282, 0, 33, 0, 0, 0, 2415 0, 0, 0, 0, 0, 0, 0, -280, 283, 0, 2416 43, 0, 0, 0, 0, 0, 0, 285, 286, 287, 2417 288, 289, 290, 2, 198, 4, 5, 6, 7, 8, 2418 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2419 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2420 27, 0, 0, 0, 0, 271, 30, 272, 0, 0, 2456 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2457 0, 0, 271, 30, 272, 0, 0, 0, 493, 0, 2421 2458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 0, 0, 0, 273, 33, 2423 0, 34, 0, 35, 274, 0, 37, 38, 275, 0, 2424 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2425 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 2459 0, 0, 0, 493, 493, 273, 33, 0, 34, 0, 2460 35, 274, 0, 37, 38, 275, 0, 0, 276, 277, 2461 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2462 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 2463 0, 0, 0, 0, 0, 0, 0, 283, 0, 325, 2464 -3, 0, 0, 0, 756, 0, 285, 326, 287, 288, 2465 289, 290, 2, 197, 4, 5, 6, 7, 8, 9, 2466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2467 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2468 0, 0, 0, 0, 271, 30, 272, 0, 0, 0, 2426 2469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2427 283, 0, 325, -3, 0, 0, 0, 754, 0, 285, 2428 326, 287, 288, 289, 290, 2, 198, 4, 5, 6, 2470 0, 0, 0, 0, 0, 0, 0, 273, 33, 0, 2471 34, 0, 35, 274, 0, 37, 38, 275, 0, 0, 2472 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2473 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2475 0, 913, -3, 0, 0, 0, 756, 0, 285, 326, 2476 287, 288, 289, 290, 0, 2, 197, 4, 5, 6, 2429 2477 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2430 2478 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, … … 2432 2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2433 2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2434 273, 33, 0, 34, 0, 35, 274, 0, 37, 38,2482 273, 33, 0, 34, 0, 35, 274, 493, 37, 38, 2435 2483 275, 0, 0, 276, 277, 278, 279, 40, 41, 0, 2436 2484 280, 281, 0, 0, 0, 0, 0, 0, 282, 0, 2437 2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2438 0, 0, 283, 0, 910, -3, 0, 0, 0, 754, 2439 0, 285, 326, 287, 288, 289, 290, 2, 198, 4, 2440 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2441 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2442 0, 0, 25, 26, 27, 0, 0, 0, 0, 271, 2443 30, 272, 0, 0, 0, 0, 0, 0, 0, 0, 2486 0, 0, 283, 0, 913, -3, 0, 0, 0, 756, 2487 0, 285, 575, 287, 288, 289, 290, 0, 0, 0, 2444 2488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2445 0, 0, 273, 33, 0, 34, 0, 35, 274, 0, 2446 37, 38, 275, 0, 0, 276, 277, 278, 279, 40, 2447 41, 0, 280, 281, 0, 0, 0, 0, 0, 0, 2448 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2449 0, 0, 0, 0, 283, 0, 910, -3, 0, 0, 2450 0, 754, 0, 285, 574, 287, 288, 289, 290, 2, 2451 198, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2489 493, 493, 2, 197, 4, 5, 6, 7, 8, 9, 2490 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2491 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2492 0, 0, 0, 0, 271, 30, 272, 0, 0, 0, 2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494 0, 0, 0, 0, 0, 0, 0, 273, 33, 0, 2495 34, 0, 35, 274, 0, 37, 38, 275, 0, 0, 2496 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2497 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2498 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2499 0, 913, -3, 0, 0, 0, 0, 0, 285, 326, 2500 287, 288, 289, 290, 2, 197, 4, 5, 6, 7, 2501 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2502 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2503 26, 27, 0, 0, 0, 0, 271, 30, 272, 0, 2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 2506 33, 0, 34, 0, 35, 274, 0, 198, 199, 275, 2507 0, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2508 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510 0, 283, 0, 998, 0, 0, 0, 0, 0, 0, 2511 285, 999, 287, 288, 289, 290, 2, 197, 4, 5, 2512 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2513 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2514 0, 25, 26, 27, 0, 0, 0, 0, 271, 30, 2515 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2517 0, 273, 33, 0, 34, 0, 35, 274, 0, 198, 2518 199, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2519 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2521 0, 0, 0, 283, 0, 361, 0, 0, 0, 0, 2522 0, 0, 285, 363, 287, 288, 289, 290, 1, 2, 2523 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2452 2524 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2453 23, 24, 0, 0, 25, 26, 27, 0, 0, 0,2454 0, 271, 30, 272, 0, 0, 0, 0, 0, 0,2525 23, 24, 0, 0, 25, 26, 27, 28, 0, 0, 2526 29, 0, 30, 31, 0, 0, 0, 0, 0, 0, 2455 2527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2456 0, 0, 0, 0, 273, 33, 0, 34, 0, 35, 2457 274, 0, 37, 38, 275, 0, 0, 276, 277, 278, 2458 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2459 0, 0, 282, 0, 0, 0, 0, 0, 0, 0, 2460 0, 0, 0, 0, 0, 0, 283, 0, 325, -3, 2461 0, 0, 0, 0, 0, 285, 326, 287, 288, 289, 2462 290, 2, 198, 4, 5, 6, 7, 8, 9, 10, 2463 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2464 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2465 0, 0, 0, 271, 30, 272, 0, 0, 0, 0, 2528 0, 0, 32, 0, 0, 33, 0, 34, 0, 35, 2529 36, 0, 37, 38, 39, 0, 0, 0, 0, 0, 2530 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 2466 2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2467 0, 0, 0, 0, 0, 0, 273, 33, 0, 34, 2468 0, 35, 274, 0, 37, 38, 275, 0, 0, 276, 2469 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2470 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 2471 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 2472 910, -3, 0, 0, 0, 0, 0, 285, 326, 287, 2473 288, 289, 290, 2, 198, 4, 5, 6, 7, 8, 2474 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2475 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2476 27, 0, 0, 0, 0, 271, 30, 272, 0, 0, 2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2478 0, 0, 0, 0, 0, 0, 0, 0, 273, 33, 2479 0, 34, 0, 35, 274, 0, 199, 200, 275, 0, 2480 0, 276, 277, 278, 279, 40, 41, 0, 280, 281, 2481 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2483 283, 0, 995, 0, 0, 0, 0, 0, 0, 285, 2484 996, 287, 288, 289, 290, 2, 198, 4, 5, 6, 2485 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2486 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2487 25, 26, 27, 0, 0, 0, 0, 271, 30, 272, 2488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2490 273, 33, 0, 34, 0, 35, 274, 0, 199, 200, 2491 275, 0, 0, 276, 277, 278, 279, 40, 41, 0, 2492 280, 281, 0, 0, 0, 0, 0, 0, 282, 0, 2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494 0, 0, 283, 0, 361, 0, 0, 0, 0, 0, 2495 0, 285, 363, 287, 288, 289, 290, 1, 2, 3, 2496 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2497 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2498 24, 0, 0, 25, 26, 27, 28, 0, 0, 29, 2499 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 2500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2501 0, 32, 0, 0, 33, 0, 34, 0, 35, 36, 2502 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 2503 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 0, 0, 0, 0, 0, 42, 0, 43, 0, 0, 2506 0, -505, 0, 0, 0, 44, 1, 2, 3, 4, 2507 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2508 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2509 0, 0, 25, 26, 27, 28, 0, 0, 29, 0, 2510 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2512 32, 0, 0, 33, 0, 34, 0, 35, 36, 0, 2513 37, 38, 39, 0, 0, 0, 0, 0, 0, 40, 2514 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2516 0, 0, 0, 0, 42, 0, 43, 0, 0, 0, 2517 0, 0, 0, 0, 44, 1, 2, 198, 4, 5, 2518 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2519 16, 17, 18, 19, 20, 21, 22, 23, 24, -279, 2520 0, 25, 26, 27, 28, 0, 0, 29, 0, 30, 2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2524 38, 0, 0, -279, 1, 2, 198, 4, 5, 6, 2525 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2526 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2527 25, 26, 27, 28, 0, 43, 29, 0, 30, 0, 2528 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2530 0, 33, 0, 34, 0, 35, 0, 0, 37, 38, 2531 2, 198, 4, 5, 6, 7, 8, 9, 10, 11, 2532 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2533 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2534 0, 0, 0, 30, 43, 0, 0, 0, 0, 0, 2535 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 2536 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2537 35, 36, 0, 199, 200, 39, 0, 0, 0, 0, 2538 0, 0, 40, 41, 0, 0, 0, 0, 0, 0, 2539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2540 0, 0, 0, 0, 0, 0, 0, 42, 0, 201, 2541 0, 0, 0, 0, 0, 0, 0, 202, 2, 198, 2532 0, 0, 0, 0, 0, 0, 42, 0, 43, 0, 2533 0, 0, 0, 0, 0, 0, 44, 196, 2, 197, 2542 2534 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2543 2535 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2545 2537 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2546 2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2547 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2548 0, 37, 38, 2, 198, 4, 5, 6, 7, 8, 2539 0, 0, 0, 0, 33, 0, 34, 0, 35, 36, 2540 0, 198, 199, 39, 0, 0, 0, 0, 0, 0, 2541 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 42, 0, 200, 0, 0, 2544 0, 0, 0, 0, 0, 201, 1, 2, 197, 4, 2545 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2546 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2547 -279, 0, 25, 26, 27, 28, 0, 0, 29, 0, 2548 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 33, 0, 34, 0, 35, 0, 0, 2551 37, 38, 0, 0, -279, 1, 2, 197, 4, 5, 2552 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2553 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2554 0, 25, 26, 27, 28, 0, 43, 29, 0, 30, 2555 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2558 38, 0, 196, 2, 197, 4, 5, 6, 7, 8, 2549 2559 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2550 2560 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2551 27, 0, 0, 0, 0, 0, 30, 661, -3, 0, 2552 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 2561 27, 0, 0, 0, 0, 43, 30, 0, 0, 0, 2562 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2564 0, 34, 0, 35, 0, 0, 198, 199, 2, 197, 2565 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2566 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2567 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2568 0, 30, 200, 0, 0, 0, 0, 0, 0, 0, 2569 261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2571 0, 37, 38, 2, 197, 4, 5, 6, 7, 8, 2572 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2573 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2574 27, 0, 0, 0, 0, 0, 30, 662, -3, 0, 2575 0, 0, 0, 0, 0, 611, 0, 0, 0, 0, 2553 2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2554 2577 0, 34, 0, 35, 0, 0, 37, 38, 0, 0, 2555 2, 19 8, 4, 5, 6, 7, 8, 9, 10, 11,2578 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2556 2579 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2557 2580 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2558 0, -38 8, 661, 30, 0, 0, 0, 0, 0, 0,2559 61 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2581 0, -389, 662, 30, 0, 0, 0, 0, 0, 0, 2582 611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2560 2583 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2561 2584 35, 0, 0, 37, 38, 0, 0, 0, 0, 0, 2562 2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2563 0, 0, 0, 0, 0, 13 67, 0, 0, 0, 0,2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 66 1,2565 0, 0, 0, 0, 0, 0, 0, 61 0, 2, 198,2586 0, 0, 0, 0, 0, 1370, 0, 0, 0, 0, 2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 2588 0, 0, 0, 0, 0, 0, 0, 611, 2, 197, 2566 2589 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2567 2590 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2572 2595 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 2573 2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 0, 33, 13 69, 0, 0, 0, 107, 0, 37,2575 38, 0, 0, 0, 0, 0, 0, 66 1, 0, 0,2576 0, 0, 0, 0, 0, 61 0, 2, 198, 4, 5,2597 0, 0, 33, 1372, 0, 0, 0, 107, 0, 37, 2598 38, 0, 0, 0, 0, 0, 0, 662, 0, 0, 2599 0, 0, 0, 0, 0, 611, 2, 197, 4, 5, 2577 2600 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2578 2601 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, … … 2580 2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2581 2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582 0, 0, 33, 0, 34, 0, 35, 0, 0, 19 9,2583 200, 2, 198, 4, 5, 6, 7, 8, 9, 10,2605 0, 0, 33, 0, 34, 0, 35, 0, 0, 198, 2606 199, 2, 197, 4, 5, 6, 7, 8, 9, 10, 2584 2607 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2585 2608 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2586 2609 0, 0, 0, 0, 30, 260, 0, 0, 0, 0, 2587 0, 0, 0, 60 5, 0, 0, 0, 0, 0, 0,2610 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, 2588 2611 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2589 0, 35, 0, 0, 37, 38, 2, 19 8, 4, 5,2612 0, 35, 0, 0, 37, 38, 2, 197, 4, 5, 2590 2613 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2591 2614 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2592 2615 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2593 57 3, 0, 0, 0, 0, 0, 0, 0, 610, 0,2616 574, 0, 0, 0, 0, 0, 0, 0, 611, 0, 2594 2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2595 2618 0, 0, 33, 0, 34, 0, 35, 0, 0, 37, 2596 38, 2, 19 8, 4, 5, 6, 7, 8, 9, 10,2619 38, 2, 197, 4, 5, 6, 7, 8, 9, 10, 2597 2620 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2598 2621 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2599 0, 0, 0, 0, 30, 66 1, 0, 0, 0, 0,2600 0, 0, 0, 61 0, 0, 0, 0, 0, 0, 0,2622 0, 0, 0, 0, 30, 662, 0, 0, 0, 0, 2623 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 2601 2624 0, 0, 0, 0, 0, 0, 0, 33, 0, 34, 2602 0, 35, 0, 0, 19 9, 200, 8, 9, 10, 11,2625 0, 35, 0, 0, 198, 199, 8, 9, 10, 11, 2603 2626 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2604 22, 23, 24, 0, 0, 25, 26, 27, 47 3, 474,2605 47 5, 0, 271, 30, 272, 0, 0, 0, 0, 0,2606 20 1, 0, 0, 0, 0, 0, 0, 0, 261, 0,2627 22, 23, 24, 0, 0, 25, 26, 27, 474, 475, 2628 476, 0, 271, 30, 272, 0, 0, 0, 0, 0, 2629 200, 0, 0, 0, 0, 0, 0, 0, 261, 0, 2607 2630 0, 0, 0, 0, 0, 273, 33, 0, 0, 0, 2608 2631 0, 274, 0, 37, 38, 275, 0, 0, 276, 277, … … 2620 2643 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2621 2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2622 0, 0, 0, 283, 0, 50 5, 0, 0, 165, 0,2645 0, 0, 0, 283, 0, 506, 0, 0, 164, 0, 2623 2646 0, 0, 285, 286, 287, 288, 289, 290, 8, 9, 2624 2647 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, … … 2631 2654 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2632 2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2633 0, 57 3, -3, 0, 0, 0, 0, 0, 285, 574,2656 0, 574, -3, 0, 0, 0, 0, 0, 285, 575, 2634 2657 287, 288, 289, 290, 8, 9, 10, 11, 12, 13, 2635 2658 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 2637 2660 271, 30, 272, 0, 0, 0, 0, 0, 0, 0, 2638 2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639 0, 0, 0, 273, 33, 0, 0, 0, 0, 62 4,2662 0, 0, 0, 273, 33, 0, 0, 0, 0, 625, 2640 2663 0, 37, 38, 275, 0, 0, 276, 277, 278, 279, 2641 2664 40, 41, 0, 280, 281, 0, 0, 0, 0, 0, 2642 2665 0, 282, 0, 0, 0, 0, 0, 0, 0, 0, 2643 0, 0, 0, 0, 0, 283, -35, 74 0, 0, 0,2666 0, 0, 0, 0, 0, 283, -35, 742, 0, 0, 2644 2667 0, 0, 0, 0, 285, 286, 287, 288, 289, 290, 2645 2668 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, … … 2662 2685 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2663 2686 0, 0, 0, 282, 0, 0, 0, 0, 0, 0, 2664 0, 0, 0, 0, 0, 0, 0, 283, 0, 15 2,2687 0, 0, 0, 0, 0, 0, 0, 283, 0, 151, 2665 2688 0, 0, 0, 0, 0, 0, 285, 286, 287, 288, 2666 2689 289, 290, 8, 9, 10, 11, 12, 13, 14, 15, … … 2673 2696 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2674 2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2675 0, 0, 0, 283, 0, 57 3, 0, 0, 0, 0,2676 0, 0, 285, 57 4, 287, 288, 289, 290, 8, 9,2698 0, 0, 0, 283, 0, 574, 0, 0, 0, 0, 2699 0, 0, 285, 575, 287, 288, 289, 290, 8, 9, 2677 2700 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2678 2701 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, … … 2685 2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2686 2709 0, 361, 0, 0, 0, 0, 0, 0, 285, 363, 2687 287, 288, 289, 290, 455, 2, 198, 4, 5, 6, 2688 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2689 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2690 25, 26, 27, 0, 0, 0, 0, 0, 30, 8, 2691 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2692 19, 20, 21, 22, 23, 24, -279, 0, 25, 26, 2693 27, 33, 0, 34, 0, 35, 30, 0, 37, 38, 2710 287, 288, 289, 290, 8, 9, 10, 11, 12, 13, 2711 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2712 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2713 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2694 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2696 0, 0, 0, 0, 36, 0, 807, 38, 39, 0, 2697 -279, 0, 0, 0, 0, 40, 41, -3, 8, 9, 2698 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2699 20, 21, 22, 23, 24, -279, 0, 25, 26, 27, 2700 1025, 0, 567, 0, 0, 30, 0, 0, 0, 0, 2701 610, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2702 17, 18, 19, 20, 21, 22, 23, 24, 33, 0, 2703 25, 26, 27, 36, 0, 807, 38, 39, 30, -279, 2704 0, 0, 0, 0, 40, 41, 0, 0, 0, 0, 2715 0, 0, 0, 0, 33, 0, 0, 0, 0, 36, 2716 0, 37, 38, 39, 0, 0, 0, 0, 0, 0, 2717 40, 41, 8, 9, 10, 11, 12, 13, 14, 15, 2718 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2719 0, 25, 26, 27, 0, 42, 0, 151, 0, 30, 2720 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 2705 2721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2706 0, 33, 0, 0, 0, 0, 36, 0, 37, 38,2707 3 9, 567, 0, 0, 0, 0, 0, 40, 41, 108,2722 0, 0, 33, 0, 0, 0, 0, 36, 0, 37, 2723 38, 39, 0, 0, 0, 0, 0, 0, 40, 41, 2708 2724 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2709 2725 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2710 26, 27, 42, 0, 43, 0, 0, 30, 0, 0,2711 0, 0, 44, 0, 0, 0, 0, 0, 0, 0,2726 26, 27, 0, 42, 0, 43, 0, 30, 0, 0, 2727 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 2712 2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2713 33, 0, 0, 0, 0, 36, 0, 19 9, 200, 39,2729 33, 0, 0, 0, 0, 36, 0, 198, 199, 39, 2714 2730 0, 0, 0, 0, 0, 0, 40, 41, 8, 9, 2715 2731 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2716 2732 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2717 2733 0, 42, 0, 260, 0, 30, 0, 0, 0, 0, 2718 0, 20 2, 0, 0, 0, 0, 0, 0, 0, 0,2734 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, 2719 2735 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2720 0, 0, 0, 36, 0, 80 7, 38, 39, 0, 0,2736 0, 0, 0, 36, 0, 809, 38, 39, 0, 0, 2721 2737 0, 0, 0, 0, 40, 41, 8, 9, 10, 11, 2722 2738 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2723 22, 23, 24, 0, 0, 25, 26, 27, 0, 102 5,2724 0, 56 7, 0, 30, 0, 0, 0, 0, 0, 610,2739 22, 23, 24, 0, 0, 25, 26, 27, 0, 1028, 2740 0, 568, 0, 30, 0, 0, 0, 0, 0, 611, 2725 2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2726 2742 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2727 0, 36, 0, 80 7, 38, 39, 0, 0, 0, 0,2743 0, 36, 0, 809, 38, 39, 0, 0, 0, 0, 2728 2744 0, 0, 40, 41, 8, 9, 10, 11, 12, 13, 2729 2745 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2730 24, 0, 0, 25, 26, 27, 0, 0, 0, 56 7,2731 0, 30, 43 4, 0, 0, 0, 0, 108, 0, 0,2746 24, 0, 0, 25, 26, 27, 0, 0, 0, 568, 2747 0, 30, 435, 0, 0, 0, 0, 108, 0, 0, 2732 2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2733 2749 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2734 2750 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2735 2751 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2736 -279, 0, 25, 26, 27, 0, 0, 0, 0, 0,2737 30, 0, 0, 0, 0, 0, 0, 435, 0, 0,2738 0, 926, 0, 0, 0, 108, 0, 0, 0, 0,2739 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,2740 37, 38, 0, 0, -279, 8, 9, 10, 11, 12,2741 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,2742 23, 24, 0, 0, 25, 26, 27, 0, 0, 0,2743 0, 0, 30, 434, 0, 0, 567, 0, 0, 0,2744 0, 0, 0, 0, 108, 0, 0, 0, 0, 0,2745 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,2746 0, 0, 37, 38, 8, 9, 10, 11, 12, 13,2747 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,2748 24, 0, 0, 25, 26, 27, 0, 0, 0, 0,2749 0, 30, 434, 0, 0, 0, 0, 0, 435, 0,2750 0, 0, 1391, 0, 0, 0, 108, 0, 0, 0,2751 0, 0, 0, 0, 33, 0, 0, 0, 0, 0,2752 0, 37, 38, 8, 9, 10, 11, 12, 13, 14,2753 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,2754 2752 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2755 30, 43 4, 0, 0, 0, 0, 0, 435, 0, 0,2756 0, 1435, 0, 0, 0, 108, 0, 0, 0, 0,2753 30, 435, 0, 0, 0, 0, 0, 436, 0, 0, 2754 0, 929, 0, 0, 0, 108, 0, 0, 0, 0, 2757 2755 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2758 2756 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2759 2757 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2760 2758 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2761 43 4, 0, 0, 0, 0, 0, 435, 0, 0, 0,2762 1 497, 0, 0, 0, 108, 0, 0, 0, 0, 0,2759 435, 0, 0, 0, 0, 0, 436, 0, 0, 0, 2760 1394, 0, 0, 0, 108, 0, 0, 0, 0, 0, 2763 2761 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2764 2762 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2765 2763 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2766 25, 26, 27, 0, 0, 0, 0, 0, 30, 0,2767 0, 0, 0, 0, 0, 43 5, 0, 0, 0, 1521,2764 25, 26, 27, 0, 0, 0, 0, 0, 30, 435, 2765 0, 0, 0, 0, 0, 436, 0, 0, 0, 1438, 2768 2766 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2769 0, 33, 0, 0, 0, 0, 107, 0, 37, 38,2767 0, 33, 0, 0, 0, 0, 0, 0, 37, 38, 2770 2768 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2771 2769 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2772 26, 27, 0, 0, 0, 0, 0, 30, 43 4, 0,2773 0, 0, 0, 0, 43, 0, 0, 0,0, 0,2770 26, 27, 0, 0, 0, 0, 0, 30, 435, 0, 2771 0, 0, 0, 0, 436, 0, 0, 0, 1500, 0, 2774 2772 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 2775 2773 33, 0, 0, 0, 0, 0, 0, 37, 38, 8, … … 2777 2775 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2778 2776 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2779 0, 0, 0, 43 5, 0, 0, 0, 0, 0, 0,2777 0, 0, 0, 436, 0, 0, 0, 1524, 0, 0, 2780 2778 0, 108, 0, 0, 0, 0, 0, 0, 0, 33, 2781 0, 0, 0, 0, 0, 0, 37, 38, 8, 9,2779 0, 0, 0, 0, 107, 0, 37, 38, 8, 9, 2782 2780 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2783 2781 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2784 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2785 1025, 0, 567, 0, 0, 0, 0, 0, 0, 0, 2786 108, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2787 0, 0, 0, 0, 0, 37, 38, 8, 9, 10, 2788 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2789 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2790 0, 0, 0, 0, 30, 0, 0, 0, 0, 1025, 2791 0, 567, 0, 0, 0, 0, 0, 0, 0, 610, 2792 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2793 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2794 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2795 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2796 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2797 247, 0, 0, 0, 0, 0, 0, 0, 108, 0, 2798 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2799 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2800 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2801 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2802 0, 0, 30, 0, 0, 0, 0, 0, 0, 152, 2803 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 2804 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2805 0, 0, 199, 200, 8, 9, 10, 11, 12, 13, 2806 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2807 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2808 0, 30, 0, 0, 0, 0, 0, 0, 260, 0, 2809 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 2810 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2811 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2812 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2813 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2814 30, 0, 0, 0, 0, 0, 0, 247, 0, 0, 2815 0, 0, 0, 0, 0, 610, 0, 0, 0, 0, 2816 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2817 37, 38, 8, 9, 10, 11, 12, 13, 14, 15, 2818 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2819 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2820 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, 2821 0, 0, 0, 0, 610, 0, 0, 0, 0, 0, 2822 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2823 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2824 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2825 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2826 0, 0, 0, 0, 0, 435, 0, 0, 0, 0, 2827 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 2828 0, 33, 0, 0, 0, 0, 0, 0, 199, 200, 2829 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2830 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2831 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2832 0, 0, 0, 0, 260, 0, 0, 0, 0, 0, 2833 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 2834 33, 0, 0, 0, 0, 0, 0, 37, 38, 8, 2835 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2836 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2837 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2838 0, 0, 0, 573, 0, 0, 0, 0, 0, 0, 2839 0, 610, 0, 0, 0, 0, 0, 0, 0, 33, 2840 0, 0, 0, 0, 0, 0, 37, 38, 8, 9, 2841 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2842 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2843 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2782 0, 0, 0, 0, 0, 30, 435, 0, 0, 0, 2844 2783 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 2845 2784 108, 0, 0, 0, 0, 0, 0, 0, 33, 0, … … 2848 2787 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2849 2788 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2850 0, 567, 0, 0, 0, 0, 0, 0, 0, 108,2789 0, 436, 0, 0, 0, 0, 0, 0, 0, 108, 2851 2790 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2852 0, 0, 0, 0, 199, 200, 2, 198, 4, 5, 2853 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2791 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2792 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2793 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2794 0, 0, 0, 30, 0, 0, 0, 0, 1028, 0, 2795 568, 0, 0, 0, 0, 0, 0, 0, 108, 0, 2796 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2797 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2798 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2799 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2800 0, 0, 30, 0, 0, 0, 0, 1028, 0, 568, 2801 0, 0, 0, 0, 0, 0, 0, 611, 0, 0, 2802 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2803 0, 0, 37, 38, 8, 9, 10, 11, 12, 13, 2804 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2805 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2806 0, 30, 0, 0, 0, 0, 0, 0, 247, 0, 2807 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 2808 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2809 0, 37, 38, 8, 9, 10, 11, 12, 13, 14, 2810 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2811 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 2812 30, 0, 0, 0, 0, 0, 0, 151, 0, 0, 2813 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 2814 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2815 198, 199, 8, 9, 10, 11, 12, 13, 14, 15, 2854 2816 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2855 2817 0, 25, 26, 27, 0, 0, 0, 0, 0, 30, 2856 0, 0, 0, 0, 0, 0, 0, 0, 605, 0,2857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2858 0, 0, 33, 0, 34, 0, 35, 0, 0, 37,2859 38, 0, 271, 0, 272, 1045, 0, 1046, 0, 0,2860 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1529, 1055,2861 0, 0, 1056, 32, 0, 273, 0, 0,0, 0,2862 0, 624, 0, 0, -401, 275, 0, 0, 276, 277,2863 278, 279, 40, 41, 0, 280, 281, 0, 0, 0,2864 0, 0, 0, 282, 0, 0, 0, 0, 0, 0,2865 0, 0, 0, 0, 0, 0, 0, 283, 0, 361,2866 0, 0, 165, 0, 0, 0, 285, 363, 287, 288,2867 289, 290, 0, 271, 0, 272, 1045, 0, 1046, 0,2868 -126, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 0,2869 1055, 0, 0, 1056, 32, 0, 273, 0, 0, 0,2870 0, 0, 624, 0, 0, 0, 275, 0, 0, 276,2871 277, 278, 279, 40, 41, 0, 280, 281, 0, 0,2872 0, 0, 0, 0, 282, 0, 0, 0, 0, 0,2873 0, 0, 0, 0, 0, 0, 0, 0, 283, 0,2874 361, 0, 0, 165, 0, 0, 0, 285, 363, 287,2875 288, 289, 290, 0, 0, 0, 0, 0, 0, 0,2876 0, -126, 2, 198, 4, 5, 6, 7, 8, 9,2818 0, 0, 0, 0, 0, 0, 260, 0, 0, 0, 2819 0, 0, 0, 0, 261, 0, 0, 0, 0, 0, 2820 0, 0, 33, 0, 0, 0, 0, 0, 0, 37, 2821 38, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2822 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2823 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2824 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, 2825 0, 0, 0, 611, 0, 0, 0, 0, 0, 0, 2826 0, 33, 0, 0, 0, 0, 0, 0, 37, 38, 2827 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2828 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2829 26, 27, 0, 0, 0, 0, 0, 30, 0, 0, 2830 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, 2831 0, 0, 611, 0, 0, 0, 0, 0, 0, 0, 2832 33, 0, 0, 0, 0, 0, 0, 37, 38, 8, 2833 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2834 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2835 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2836 0, 0, 0, 436, 0, 0, 0, 0, 0, 0, 2837 0, 108, 0, 0, 0, 0, 0, 0, 0, 33, 2838 0, 0, 0, 0, 0, 0, 198, 199, 8, 9, 2877 2839 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2878 2840 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2879 0, 0, 0, 0, 0, 30, 8, 9, 10, 11, 2841 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 2842 0, 0, 260, 0, 0, 0, 0, 0, 0, 0, 2843 606, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2844 0, 0, 0, 0, 0, 37, 38, 8, 9, 10, 2845 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2846 21, 22, 23, 24, 0, 0, 25, 26, 27, 0, 2847 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 2848 0, 574, 0, 0, 0, 0, 0, 0, 0, 611, 2849 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 2850 0, 0, 0, 0, 37, 38, 8, 9, 10, 11, 2880 2851 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2881 22, 23, 24, 0, 0, 25, 26, 27, 33, 0, 2882 34, 0, 35, 30, 0, 37, 38, 0, 271, 0, 2883 272, 1045, 0, 1046, 1417, 1418, 1047, 1048, 1049, 1050, 2884 1051, 1052, 1053, 1054, 1529, 1055, 33, 1326, 1056, 32, 2885 0, 273, 0, 37, 38, 0, 0, 624, 0, 0, 2886 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2887 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2889 0, 0, 0, 283, 0, 361, 0, 0, 165, 0, 2890 0, 0, 285, 363, 287, 288, 289, 290, 271, 0, 2891 272, 1045, 0, 1046, 1417, 1418, 1047, 1048, 1049, 1050, 2892 1051, 1052, 1053, 1054, 0, 1055, 0, 0, 1056, 32, 2893 0, 273, 0, 0, 0, 0, 0, 624, 0, 0, 2894 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2895 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2897 0, 0, 0, 283, 0, 361, 0, 0, 165, 0, 2898 0, 0, 285, 363, 287, 288, 289, 290, 271, 0, 2899 272, 1045, 0, 1046, 0, 0, 1047, 1048, 1049, 1050, 2900 1051, 1052, 1053, 1054, 0, 1055, 0, 0, 1056, 32, 2901 0, 273, 0, 0, 0, 0, 0, 624, 0, 0, 2852 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2853 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2854 43, 0, 0, 0, 0, 0, 0, 0, 108, 0, 2855 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 2856 0, 0, 0, 37, 38, 8, 9, 10, 11, 12, 2857 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2858 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2859 0, 0, 30, 0, 0, 0, 0, 0, 0, 568, 2860 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 2861 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2862 0, 0, 198, 199, 8, 9, 10, 11, 12, 13, 2863 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2864 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2865 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2866 0, 0, 0, 0, 0, 0, 261, 0, 0, 0, 2867 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2868 0, 198, 199, 2, 197, 4, 5, 6, 7, 8, 2869 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2870 19, 20, 21, 22, 23, 24, 0, 0, 25, 26, 2871 27, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2872 0, 0, 0, 0, 0, 606, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2874 0, 34, 0, 35, 0, 0, 37, 38, 0, 271, 2875 0, 272, 1048, 0, 1049, 0, 0, 1050, 1051, 1052, 2876 1053, 1054, 1055, 1056, 1057, 0, 1058, 0, 0, 1059, 2877 32, 0, 273, 0, 0, 0, 0, 0, 625, 0, 2878 0, -402, 275, 0, 0, 276, 277, 278, 279, 40, 2879 41, 0, 280, 281, 0, 0, 0, 0, 0, 0, 2880 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2881 0, 0, 0, 0, 283, 0, 361, 0, 0, 164, 2882 0, 0, 0, 285, 363, 287, 288, 289, 290, 0, 2883 0, 0, 0, 0, 0, 0, 0, -126, 2, 197, 2884 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2885 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2886 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2887 0, 30, 8, 9, 10, 11, 12, 13, 14, 15, 2888 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 2889 0, 25, 26, 27, 33, 0, 34, 0, 35, 30, 2890 0, 37, 38, 0, 271, 0, 272, 1048, 0, 1049, 2891 1420, 1421, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2892 1532, 1058, 33, 1329, 1059, 32, 0, 273, 0, 37, 2893 38, 0, 0, 625, 0, 0, 0, 275, 0, 0, 2894 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2895 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2897 0, 361, 0, 0, 164, 0, 0, 0, 285, 363, 2898 287, 288, 289, 290, 271, 0, 272, 1048, 0, 1049, 2899 1420, 1421, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2900 0, 1058, 0, 0, 1059, 32, 0, 273, 0, 0, 2901 0, 0, 0, 625, 0, 0, 0, 275, 0, 0, 2902 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2903 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2904 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 2905 0, 361, 0, 0, 164, 0, 0, 0, 285, 363, 2906 287, 288, 289, 290, 271, 0, 272, 1048, 0, 1049, 2907 0, 0, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 2908 0, 1058, 0, 0, 1059, 32, 0, 273, 0, 0, 2909 0, 0, 0, 625, 0, 0, 0, 275, 0, 0, 2910 276, 277, 278, 279, 40, 41, 0, 280, 281, 0, 2911 0, 0, 0, 0, 0, 282, 0, 0, 0, 0, 2912 0, 271, 0, 272, 0, 0, 0, 0, 0, 283, 2913 0, 361, 0, 0, 164, 0, 0, 0, 285, 363, 2914 287, 288, 289, 290, 273, 0, 0, 0, 0, 0, 2915 274, 0, 0, 0, 275, 0, 0, 276, 277, 278, 2916 279, 40, 41, 0, 280, 281, 0, 0, 0, 0, 2917 0, 0, 282, 0, 0, 0, 0, 0, 271, 0, 2918 272, 0, 0, 0, 0, 0, 283, 0, 361, 0, 2919 0, 0, 0, 0, 0, 285, 892, 287, 288, 289, 2920 290, 273, 0, 0, 0, 0, 0, 274, 0, 0, 2902 2921 0, 275, 0, 0, 276, 277, 278, 279, 40, 41, 2903 2922 0, 280, 281, 0, 0, 0, 0, 0, 0, 282, 2904 2923 0, 0, 0, 0, 0, 271, 0, 272, 0, 0, 2905 0, 0, 0, 283, 0, 361, 0, 0, 165, 0,2924 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 2906 2925 0, 0, 285, 363, 287, 288, 289, 290, 273, 0, 2907 2926 0, 0, 0, 0, 274, 0, 0, 0, 275, 0, … … 2909 2928 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, 2910 2929 0, 0, 271, 0, 272, 0, 0, 0, 0, 0, 2911 283, 0, 361, 0, 0, 0, 0, 0, 0, 285,2912 890, 287, 288, 289, 290, 273, 0, 0, 0, 0,2930 496, 0, 0, 0, 0, 0, 0, 0, 0, 285, 2931 363, 287, 288, 289, 290, 273, 0, 0, 0, 0, 2913 2932 0, 274, 0, 0, 0, 275, 0, 0, 276, 277, 2914 2933 278, 279, 40, 41, 0, 280, 281, 0, 0, 0, 2915 2934 0, 0, 0, 282, 0, 0, 0, 0, 0, 271, 2916 0, 272, 0, 0, 0, 0, 0, 283, 0, 0,2935 0, 272, 0, 0, 0, 0, 0, 499, 0, 0, 2917 2936 0, 0, 0, 0, 0, 0, 285, 363, 287, 288, 2918 2937 289, 290, 273, 0, 0, 0, 0, 0, 274, 0, 2919 2938 0, 0, 275, 0, 0, 276, 277, 278, 279, 40, 2920 2939 41, 0, 280, 281, 0, 0, 0, 0, 0, 0, 2921 282, 0, 0, 0, 0, 0, 271, 0, 272, 0, 2922 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 2923 0, 0, 0, 285, 363, 287, 288, 289, 290, 273, 2924 0, 0, 0, 0, 0, 274, 0, 0, 0, 275, 2925 0, 0, 276, 277, 278, 279, 40, 41, 0, 280, 2926 281, 0, 0, 0, 0, 0, 0, 282, 0, 0, 2927 0, 0, 0, 271, 0, 272, 0, 0, 0, 0, 2928 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, 2929 285, 363, 287, 288, 289, 290, 273, 0, 0, 0, 2930 0, 0, 274, 0, 0, 0, 275, 0, 0, 276, 2931 277, 278, 279, 40, 41, 0, 280, 281, 0, 0, 2932 0, 0, 0, 0, 282, 0, 0, 0, 0, 0, 2933 0, 0, 0, 0, 0, 0, 0, 0, 501, 0, 2934 0, 0, 0, 0, 0, 0, 0, 285, 363, 287, 2935 288, 289, 290, 2, 198, 4, 5, 6, 7, 8, 2936 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2937 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 2938 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 2940 282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2941 0, 0, 0, 0, 502, 0, 0, 0, 0, 0, 2942 0, 0, 0, 285, 363, 287, 288, 289, 290, 2, 2943 197, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2944 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2945 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 2946 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 2939 2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2941 0, 34, 0, 35, 36, 0, 168, 169, 39, 0, 2942 0, 0, 0, 0, 0, 40, 41, 197, 2, 198, 2943 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2944 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2945 24, 0, 0, 25, 26, 27, 0, 0, 0, 0, 2946 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 2947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2948 0, 0, 0, 0, 33, 0, 34, 0, 35, 0, 2949 0, 199, 200, 455, 2, 198, 4, 5, 6, 7, 2948 0, 0, 0, 0, 0, 33, 0, 34, 0, 35, 2949 36, 0, 167, 168, 39, 0, 0, 0, 0, 0, 2950 0, 40, 41, 196, 2, 197, 4, 5, 6, 7, 2950 2951 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2951 2952 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, … … 2953 2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2954 2955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2955 33, 0, 34, 0, 35, 0, 0, 37, 38, 2, 2956 198, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2957 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2958 23, 24, 0, 0, 25, 26, 27, 0, 0, 0, 2959 0, 0, 30, 8, 9, 10, 11, 12, 13, 14, 2960 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2961 0, 0, 25, 26, 27, 33, 0, 34, 0, 35, 2962 30, 0, 199, 200, 0, 0, 0, 0, 0, 0, 2956 33, 0, 34, 0, 35, 0, 0, 198, 199, 456, 2957 2, 197, 4, 5, 6, 7, 8, 9, 10, 11, 2958 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2959 22, 23, 24, 0, 0, 25, 26, 27, 0, 0, 2960 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 2963 2961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2964 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2965 199, 200 2962 0, 0, 0, 0, 0, 0, 33, 0, 34, 0, 2963 35, 0, 0, 37, 38, 2, 197, 4, 5, 6, 2964 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2965 17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 2966 25, 26, 27, 0, 0, 0, 0, 0, 30, 0, 2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2968 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2969 0, 33, 0, 34, 0, 35, 0, 0, 198, 199, 2970 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2971 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, 2972 26, 27, 474, 475, 476, 0, 0, 30, 8, 9, 2973 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2974 20, 21, 22, 23, 24, 0, 0, 25, 26, 27, 2975 33, 0, 0, 0, 0, 30, 0, 37, 38, 0, 2976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2977 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2978 0, 0, 0, 0, 0, 198, 199 2966 2979 }; 2967 2980 2968 2981 #define yypact_value_is_default(yystate) \ 2969 ((yystate) == (-1 306))2982 ((yystate) == (-1297)) 2970 2983 2971 2984 #define yytable_value_is_error(yytable_value) \ … … 2974 2987 static const yytype_int16 yycheck[] = 2975 2988 { 2976 1, 42, 0, 32, 0, 42, 42, 412, 112, 1, 2977 0, 1, 674, 346, 0, 178, 211, 350, 178, 270, 2978 674, 178, 519, 178, 875, 674, 178, 178, 433, 178, 2979 605, 443, 557, 31, 1024, 31, 163, 331, 587, 629, 2980 269, 31, 587, 875, 42, 31, 44, 180, 44, 0, 2981 436, 735, 102, 753, 585, 0, 54, 179, 179, 31, 2982 433, 437, 60, 621, 60, 63, 0, 63, 66, 984, 2983 66, 556, 556, 63, 66, 470, 66, 635, 326, 556, 2984 31, 585, 585, 977, 42, 283, 31, 103, 750, 193, 2985 106, 1336, 255, 42, 399, 255, 750, 31, 255, 585, 2986 255, 750, 65, 255, 255, 103, 255, 480, 106, 699, 2987 585, 484, 63, 418, 112, 1044, 1421, 65, 251, 252, 2988 75, 426, 1037, 509, 37, 0, 1, 588, 101, 52, 2989 27, 37, 42, 594, 256, 256, 246, 178, 1417, 585, 2990 65, 178, 178, 42, 43, 143, 67, 143, 111, 123, 2991 71, 89, 78, 74, 712, 76, 31, 155, 585, 155, 2992 620, 621, 83, 407, 408, 65, 37, 196, 1023, 1024, 2993 101, 94, 42, 43, 71, 635, 124, 115, 65, 105, 2994 178, 179, 476, 179, 4, 5, 6, 7, 8, 9, 2995 103, 66, 1437, 1044, 210, 193, 391, 42, 43, 124, 2996 1505, 65, 1481, 103, 202, 1510, 202, 89, 107, 407, 2997 408, 65, 210, 44, 255, 213, 103, 213, 255, 255, 2998 178, 1526, 470, 213, 102, 620, 621, 1510, 1533, 178, 2999 101, 109, 103, 115, 720, 101, 106, 478, 482, 103, 3000 635, 242, 62, 241, 64, 241, 262, 1237, 57, 103, 3001 1533, 241, 712, 269, 88, 241, 500, 255, 256, 37, 3002 256, 106, 213, 186, 262, 387, 387, 792, 178, 241, 3003 44, 269, 101, 377, 720, 824, 104, 108, 673, 824, 3004 108, 282, 813, 616, 205, 208, 986, 270, 122, 399, 3005 241, 106, 101, 720, 123, 218, 241, 495, 1288, 0, 3006 498, 405, 108, 501, 124, 220, 410, 241, 418, 813, 3007 813, 142, 246, 3, 436, 436, 426, 712, 694, 317, 3008 564, 317, 237, 101, 3, 103, 574, 813, 37, 37, 3009 31, 347, 330, 331, 108, 351, 108, 37, 813, 0, 3010 1, 65, 108, 67, 68, 101, 468, 468, 589, 347, 3011 0, 746, 593, 351, 815, 553, 1250, 605, 124, 108, 3012 283, 666, 610, 83, 84, 1216, 241, 813, 142, 1053, 3013 31, 202, 1301, 614, 668, 124, 121, 618, 123, 377, 3014 905, 332, 106, 44, 1216, 65, 813, 67, 68, 387, 3015 939, 387, 101, 101, 103, 103, 0, 102, 118, 119, 3016 102, 101, 63, 103, 109, 66, 108, 405, 1484, 679, 3017 102, 681, 410, 334, 1490, 336, 875, 109, 904, 904, 3018 904, 996, 75, 1413, 675, 673, 106, 904, 202, 123, 3019 261, 1507, 1287, 1288, 938, 938, 1512, 65, 436, 67, 3020 68, 10, 11, 12, 13, 14, 697, 108, 1510, 102, 3021 1301, 107, 113, 108, 455, 286, 104, 108, 904, 102, 3022 108, 101, 460, 938, 1526, 399, 109, 1025, 37, 124, 3023 468, 1533, 468, 124, 472, 103, 472, 904, 476, 104, 3024 123, 142, 472, 108, 418, 982, 472, 261, 1403, 1404, 3025 495, 60, 426, 498, 155, 326, 501, 108, 746, 500, 3026 423, 422, 101, 630, 103, 734, 639, 101, 108, 283, 3027 461, 674, 286, 124, 674, 516, 101, 674, 519, 674, 3028 521, 472, 674, 674, 124, 674, 108, 472, 101, 1458, 3029 824, 917, 582, 637, 457, 1125, 1465, 101, 472, 925, 3030 241, 202, 124, 108, 949, 246, 78, 79, 80, 1010, 3031 1011, 108, 213, 1102, 676, 676, 666, 111, 1413, 124, 3032 1085, 101, 116, 117, 101, 1025, 108, 124, 569, 101, 3033 231, 103, 495, 105, 947, 498, 407, 408, 501, 1508, 3034 241, 412, 124, 969, 582, 108, 102, 585, 1047, 587, 3035 606, 101, 253, 103, 108, 1153, 1154, 472, 1, 709, 3036 261, 124, 433, 108, 102, 846, 622, 1458, 606, 65, 3037 124, 67, 102, 69, 1465, 102, 108, 1301, 634, 124, 3038 76, 77, 283, 102, 622, 286, 102, 572, 1023, 108, 3039 1025, 44, 124, 407, 408, 636, 634, 638, 412, 637, 3040 102, 44, 102, 102, 104, 101, 108, 60, 108, 943, 3041 63, 482, 101, 66, 103, 111, 607, 1508, 101, 433, 3042 103, 994, 111, 123, 124, 326, 861, 101, 111, 500, 3043 668, 332, 101, 65, 102, 67, 674, 69, 676, 65, 3044 108, 67, 68, 102, 76, 77, 101, 882, 103, 108, 3045 57, 102, 675, 1153, 1154, 1379, 111, 108, 399, 102, 3046 104, 653, 101, 944, 108, 108, 707, 102, 482, 101, 3047 103, 103, 105, 108, 697, 101, 109, 418, 734, 111, 3048 106, 495, 720, 721, 498, 426, 500, 501, 102, 652, 3049 143, 102, 666, 564, 108, 124, 734, 108, 101, 142, 3050 663, 868, 155, 574, 667, 101, 407, 408, 996, 700, 3051 104, 412, 1147, 106, 108, 102, 29, 1216, 1153, 1154, 3052 810, 108, 101, 714, 102, 65, 179, 67, 68, 470, 3053 108, 472, 433, 434, 605, 709, 437, 106, 1462, 610, 3054 1464, 124, 443, 4, 5, 6, 7, 8, 9, 202, 3055 564, 1085, 102, 124, 197, 917, 917, 124, 108, 202, 3056 213, 101, 785, 925, 925, 855, 106, 80, 81, 470, 3057 106, 472, 1145, 101, 102, 813, 1228, 65, 103, 1152, 3058 105, 482, 1227, 102, 109, 1509, 824, 102, 231, 108, 3059 113, 114, 102, 108, 495, 101, 788, 498, 108, 500, 3060 501, 62, 102, 64, 102, 75, 798, 102, 108, 102, 3061 108, 802, 1514, 108, 121, 108, 1315, 120, 261, 804, 3062 1514, 264, 814, 112, 101, 1514, 103, 1118, 10, 11, 3063 12, 13, 14, 65, 875, 67, 68, 69, 85, 86, 3064 283, 864, 87, 286, 65, 875, 67, 68, 542, 543, 3065 544, 545, 1287, 1226, 65, 37, 67, 68, 101, 1147, 3066 103, 123, 900, 564, 317, 103, 904, 905, 101, 102, 3067 103, 1323, 1039, 574, 1373, 104, 577, 1376, 60, 917, 3068 101, 101, 452, 326, 875, 106, 976, 925, 102, 101, 3069 875, 103, 1183, 1184, 81, 82, 10, 11, 12, 13, 3070 14, 875, 102, 346, 605, 943, 1322, 350, 102, 610, 3071 101, 102, 103, 101, 899, 103, 948, 102, 948, 101, 3072 233, 103, 1421, 37, 65, 666, 67, 1426, 69, 111, 3073 102, 101, 673, 103, 387, 76, 77, 102, 979, 902, 3074 101, 982, 103, 984, 103, 1014, 60, 123, 101, 1237, 3075 103, 1324, 108, 1452, 108, 109, 994, 106, 1196, 1197, 3076 875, 1199, 101, 986, 407, 408, 1110, 1205, 709, 412, 3077 1208, 65, 673, 67, 102, 69, 1392, 101, 102, 103, 3078 102, 1433, 76, 77, 101, 102, 103, 101, 104, 103, 3079 433, 434, 104, 694, 437, 104, 1037, 111, 109, 1089, 3080 443, 1256, 1257, 1258, 109, 746, 1047, 101, 999, 1050, 3081 1051, 1052, 455, 714, 1044, 102, 103, 111, 1041, 1471, 3082 54, 55, 108, 109, 108, 1524, 42, 43, 1020, 1021, 3083 28, 1530, 75, 948, 1124, 538, 539, 480, 102, 482, 3084 1539, 484, 540, 541, 1543, 746, 102, 1085, 108, 362, 3085 104, 108, 495, 1044, 1470, 498, 109, 500, 501, 1044, 3086 546, 547, 65, 107, 452, 102, 69, 1493, 107, 107, 3087 1044, 101, 1110, 76, 77, 102, 124, 1522, 949, 75, 3088 102, 102, 1498, 653, 109, 1077, 1078, 102, 102, 102, 3089 108, 101, 1055, 104, 102, 1118, 102, 102, 101, 28, 3090 103, 802, 104, 1088, 101, 104, 107, 102, 111, 1535, 3091 102, 102, 4, 5, 6, 7, 8, 9, 102, 102, 3092 102, 564, 102, 102, 102, 996, 1417, 104, 441, 1044, 3093 123, 574, 102, 446, 875, 949, 102, 1375, 102, 582, 3094 32, 104, 10, 11, 12, 13, 14, 3, 102, 102, 3095 107, 102, 108, 102, 10, 11, 12, 13, 14, 104, 3096 1183, 1184, 605, 1195, 1194, 1195, 479, 610, 481, 37, 3097 62, 104, 64, 616, 875, 1216, 102, 108, 102, 101, 3098 108, 37, 109, 106, 104, 104, 1216, 108, 1226, 1480, 3099 1481, 104, 60, 102, 65, 102, 67, 68, 69, 104, 3100 108, 102, 108, 1194, 60, 76, 77, 272, 104, 1241, 3101 101, 1241, 101, 101, 101, 1256, 1257, 1258, 788, 101, 3102 285, 286, 124, 107, 102, 1216, 102, 104, 798, 3, 3103 101, 1216, 297, 101, 107, 103, 10, 11, 12, 13, 3104 14, 102, 1216, 111, 814, 124, 121, 948, 949, 106, 3105 108, 694, 1396, 104, 108, 104, 65, 102, 67, 102, 3106 69, 326, 104, 37, 104, 653, 1296, 76, 77, 104, 3107 102, 1301, 1264, 104, 1315, 102, 104, 45, 104, 102, 3108 1195, 724, 106, 1275, 1276, 1277, 60, 124, 124, 107, 3109 124, 124, 101, 104, 103, 996, 1386, 107, 363, 124, 3110 109, 1216, 111, 1044, 1336, 1296, 1336, 102, 104, 107, 3111 1301, 1514, 104, 626, 1514, 104, 1301, 1514, 104, 1514, 3112 104, 104, 1514, 1514, 104, 1514, 1241, 1301, 104, 102, 3113 102, 55, 1373, 1325, 104, 1376, 101, 104, 101, 1395, 3114 54, 102, 104, 1044, 102, 124, 1309, 106, 1386, 1493, 3115 75, 102, 109, 1515, 1515, 102, 1227, 1395, 1396, 104, 3116 104, 3, 1403, 1404, 102, 104, 102, 810, 10, 11, 3117 12, 13, 14, 1535, 1535, 101, 689, 89, 107, 65, 3118 1421, 67, 695, 69, 104, 1426, 1301, 102, 0, 1, 3119 76, 77, 102, 102, 1417, 37, 102, 108, 102, 0, 3120 788, 40, 109, 124, 89, 1437, 1147, 1437, 124, 106, 3121 798, 1452, 855, 1227, 102, 101, 124, 103, 60, 31, 3122 32, 1336, 75, 124, 102, 111, 814, 109, 1458, 104, 3123 31, 107, 44, 1514, 104, 1465, 101, 1514, 1514, 107, 3124 124, 42, 102, 44, 107, 124, 1147, 102, 649, 548, 3125 1020, 1021, 549, 1494, 66, 1493, 551, 1480, 1481, 60, 3126 550, 552, 63, 1126, 1505, 66, 1216, 1458, 1381, 1510, 3127 535, 536, 537, 1458, 1465, 1216, 1514, 1515, 1508, 1515, 3128 1465, 1481, 1543, 1524, 1458, 1526, 1310, 1496, 1120, 1530, 3129 102, 1465, 1533, 1194, 1195, 1121, 1237, 1535, 1539, 1535, 3130 1073, 1465, 1543, 1466, 947, 948, 949, 1077, 1078, 574, 3131 925, 446, 681, 970, 927, 1216, 434, 1508, 434, 569, 3132 868, 631, 1437, 1508, 945, 724, 1227, 1228, 1241, 472, 3133 734, 143, 1495, 976, 1508, -1, 1237, -1, -1, 151, 3134 1241, -1, 143, 1458, -1, -1, -1, -1, -1, -1, 3135 1465, 994, 65, 996, 155, 868, 69, -1, -1, -1, 3136 1301, 874, -1, 76, 77, -1, -1, 179, -1, -1, 3137 -1, 1534, -1, -1, -1, -1, -1, 178, 179, -1, 3138 -1, 193, -1, 1546, 196, 197, -1, -1, 101, -1, 3139 202, -1, 65, 1508, 67, 1296, 69, -1, 111, -1, 3140 1301, 202, -1, 76, 77, -1, -1, -1, -1, 54, 3141 222, -1, 213, -1, 226, 65, 228, 67, 68, 69, 3142 -1, 1322, 1323, 235, -1, -1, 76, 77, 101, 241, 3143 103, -1, 1020, 1021, 246, 1336, -1, 65, 111, -1, 3144 241, 69, -1, -1, 256, 710, 1089, -1, 76, 77, 3145 -1, 1522, 264, 1467, 255, -1, -1, 970, 103, -1, 3146 -1, 106, -1, -1, -1, 1235, -1, 65, -1, -1, 3147 -1, 69, -1, 101, -1, 103, -1, -1, 76, 77, 3148 -1, 1124, 1496, 111, -1, -1, -1, -1, 753, 1077, 3149 1078, 1392, -1, -1, 1264, -1, -1, -1, -1, -1, 3150 63, -1, 1145, 101, -1, 1275, 1276, 1277, 1522, 1152, 3151 -1, -1, 0, 111, 326, -1, 317, 1458, -1, -1, 3152 -1, 333, -1, -1, 1465, -1, -1, -1, -1, -1, 3153 331, -1, 1433, -1, 346, -1, 1437, -1, 350, -1, 3154 -1, 353, -1, 31, -1, -1, -1, -1, -1, -1, 3155 113, -1, -1, -1, -1, 1325, -1, 1458, -1, -1, 3156 1073, -1, -1, -1, 1465, 210, 1467, 1508, -1, 1470, 3157 1471, -1, -1, 1086, 1087, -1, -1, -1, 66, -1, 3158 -1, -1, -1, 1226, 1227, 1228, 387, 399, -1, -1, 3159 -1, -1, 155, -1, -1, 1496, -1, 1498, 1241, -1, 3160 65, 413, 67, 68, 69, -1, 418, 1508, -1, -1, 3161 -1, 76, 77, -1, 426, -1, -1, 262, -1, -1, 3162 -1, 1522, -1, -1, 269, 890, -1, -1, -1, -1, 3163 -1, -1, 63, -1, -1, 436, 101, -1, -1, -1, 3164 452, -1, 73, 455, -1, -1, -1, 1235, -1, -1, 3165 213, -1, -1, -1, -1, -1, -1, -1, 470, -1, 3166 472, -1, -1, 151, -1, -1, -1, -1, 480, -1, 3167 -1, 472, 484, -1, -1, 476, 1264, 1190, -1, 1322, 3168 1323, 1324, 113, -1, -1, 330, 249, 1275, 1276, 1277, 3169 253, -1, -1, 1336, -1, -1, -1, -1, -1, -1, 3170 512, -1, 347, -1, -1, -1, 351, 90, 91, 92, 3171 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, 3172 -1, -1, -1, -1, 155, -1, -1, -1, -1, -1, 3173 -1, 996, -1, -1, 222, -1, -1, 1325, -1, -1, 3174 123, -1, -1, 1386, -1, 557, -1, -1, -1, 1392, 3175 -1, -1, -1, 241, -1, -1, -1, -1, 246, -1, 3176 572, -1, 574, -1, -1, -1, -1, -1, -1, 332, 3177 582, -1, -1, -1, -1, 587, -1, -1, -1, 1044, 3178 -1, 0, 213, -1, 585, -1, 587, -1, -1, -1, 3179 1433, -1, -1, 605, 1437, -1, -1, -1, 610, -1, 3180 -1, -1, -1, -1, 616, -1, -1, -1, 620, 621, 3181 -1, -1, 31, -1, -1, -1, -1, -1, 249, -1, 3182 -1, -1, 253, 635, 1467, -1, -1, 1470, 1471, -1, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 269, -1, 3184 -1, 653, -1, -1, -1, 333, -1, 66, 411, -1, 3185 -1, -1, -1, 1496, 666, 1498, -1, -1, -1, -1, 3186 -1, 673, -1, -1, 676, 353, -1, 668, -1, 182, 3187 -1, -1, -1, 674, -1, 676, 189, 1390, -1, 1522, 2989 1, 112, 0, 438, 0, 42, 178, 1, 42, 177, 2990 42, 210, 177, 444, 162, 177, 102, 178, 32, 412, 2991 630, 177, 269, 177, 177, 520, 0, 1, 270, 877, 2992 606, 676, 434, 31, 558, 31, 737, 557, 877, 177, 2993 433, 434, 676, 676, 42, 586, 44, 331, 44, 437, 2994 588, 0, 557, 1026, 1027, 0, 54, 31, 557, 1027, 2995 588, 755, 60, 980, 60, 63, 0, 63, 66, 346, 2996 66, 586, 66, 350, 586, 179, 54, 1047, 42, 481, 2997 65, 192, 31, 485, 256, 987, 31, 255, 1339, 63, 2998 255, 701, 66, 255, 31, 256, 586, 31, 586, 255, 2999 586, 255, 255, 65, 399, 103, 586, 752, 106, 42, 3000 407, 408, 29, 42, 112, 101, 88, 255, 752, 752, 3001 102, 37, 510, 418, 1420, 103, 89, 109, 106, 246, 3002 589, 426, 42, 43, 0, 0, 595, 123, 1040, 124, 3003 177, 622, 37, 177, 142, 177, 142, 251, 252, 111, 3004 122, 1424, 115, 0, 1, 636, 154, 27, 154, 621, 3005 622, 65, 37, 80, 81, 31, 31, 4, 5, 6, 3006 7, 8, 9, 37, 636, 479, 101, 102, 57, 177, 3007 178, 195, 178, 37, 31, 101, 483, 103, 1484, 1440, 3008 75, 67, 391, 477, 192, 71, 106, 63, 74, 1047, 3009 76, 71, 326, 201, 501, 201, 101, 83, 103, 52, 3010 101, 209, 65, 177, 212, 387, 212, 65, 255, 66, 3011 124, 255, 101, 255, 101, 62, 387, 64, 103, 42, 3012 43, 209, 722, 714, 722, 1508, 722, 101, 212, 103, 3013 1513, 242, 654, 241, 177, 241, 1513, 101, 177, 103, 3014 103, 94, 714, 113, 114, 103, 1529, 255, 256, 103, 3015 256, 696, 106, 1536, 262, 437, 377, 241, 565, 1536, 3016 794, 269, 1240, 37, 815, 65, 437, 67, 75, 42, 3017 43, 282, 399, 65, 262, 67, 590, 124, 826, 37, 3018 594, 269, 241, 106, 405, 989, 241, 469, 826, 410, 3019 815, 418, 104, 815, 241, 102, 108, 241, 469, 426, 3020 65, 615, 246, 103, 108, 619, 233, 1290, 1291, 317, 3021 219, 317, 65, 1291, 106, 815, 101, 815, 204, 815, 3022 124, 123, 330, 331, 1304, 815, 1253, 101, 237, 103, 3023 617, 65, 185, 67, 107, 106, 212, 471, 103, 347, 3024 108, 108, 330, 351, 65, 1056, 67, 68, 817, 89, 3025 103, 0, 1, 3, 207, 209, 78, 124, 3, 347, 3026 283, 1219, 667, 351, 217, 241, 241, 101, 790, 377, 3027 1219, 246, 106, 108, 908, 115, 670, 907, 800, 387, 3028 101, 387, 31, 105, 241, 106, 65, 65, 67, 67, 3029 941, 0, 907, 102, 816, 44, 471, 405, 907, 102, 3030 109, 104, 410, 0, 942, 108, 102, 907, 262, 907, 3031 270, 907, 108, 999, 63, 269, 941, 66, 101, 941, 3032 123, 124, 101, 108, 108, 677, 1513, 106, 106, 437, 3033 283, 102, 65, 1416, 67, 362, 69, 108, 1416, 124, 3034 124, 575, 1529, 76, 77, 456, 1304, 699, 334, 1536, 3035 336, 102, 65, 461, 67, 399, 332, 123, 109, 108, 3036 103, 469, 105, 469, 113, 473, 109, 473, 101, 477, 3037 103, 101, 606, 631, 418, 101, 109, 611, 111, 736, 3038 985, 1461, 426, 108, 407, 408, 108, 583, 1468, 473, 3039 501, 101, 141, 347, 1406, 1407, 678, 351, 676, 124, 3040 108, 676, 124, 108, 676, 154, 517, 678, 1128, 520, 3041 676, 522, 676, 676, 473, 442, 124, 638, 473, 124, 3042 447, 104, 920, 108, 399, 108, 640, 471, 676, 473, 3043 928, 1511, 826, 121, 848, 123, 422, 1028, 950, 124, 3044 667, 675, 108, 418, 1013, 1014, 621, 622, 101, 952, 3045 108, 426, 201, 480, 1088, 482, 1028, 101, 124, 570, 3046 65, 636, 67, 212, 69, 108, 124, 1105, 81, 82, 3047 423, 76, 77, 496, 972, 583, 499, 101, 586, 502, 3048 588, 124, 231, 111, 711, 1487, 462, 102, 116, 117, 3049 104, 1493, 241, 1304, 108, 583, 101, 473, 473, 607, 3050 675, 1023, 1024, 1461, 253, 458, 111, 101, 1510, 103, 3051 1468, 102, 261, 1515, 748, 623, 473, 111, 573, 607, 3052 4, 5, 6, 7, 8, 9, 637, 635, 639, 102, 3053 638, 554, 102, 947, 283, 623, 109, 286, 108, 714, 3054 108, 108, 101, 496, 103, 44, 499, 635, 32, 502, 3055 123, 104, 946, 1511, 863, 108, 124, 124, 1080, 1081, 3056 102, 60, 670, 102, 63, 1156, 1157, 66, 676, 108, 3057 678, 1382, 101, 748, 103, 884, 102, 326, 62, 101, 3058 64, 103, 111, 332, 1156, 1157, 102, 4, 5, 6, 3059 7, 8, 9, 65, 102, 67, 102, 69, 709, 101, 3060 627, 101, 108, 103, 76, 77, 83, 84, 101, 1, 3061 997, 111, 870, 104, 722, 723, 812, 108, 103, 496, 3062 105, 102, 499, 667, 109, 502, 3, 108, 736, 101, 3063 101, 675, 608, 10, 11, 12, 13, 14, 920, 111, 3064 107, 118, 119, 142, 44, 62, 928, 64, 736, 920, 3065 85, 86, 44, 607, 1465, 154, 1467, 928, 407, 408, 3066 37, 857, 102, 412, 691, 108, 109, 711, 108, 623, 3067 697, 10, 11, 12, 13, 14, 65, 124, 67, 178, 3068 69, 635, 57, 60, 433, 434, 435, 76, 77, 438, 3069 1231, 102, 667, 102, 1088, 444, 101, 108, 37, 108, 3070 653, 1512, 201, 102, 748, 124, 102, 815, 108, 108, 3071 102, 664, 108, 212, 102, 668, 108, 677, 826, 102, 3072 108, 60, 471, 102, 473, 108, 702, 1230, 101, 108, 3073 103, 65, 102, 101, 483, 69, 711, 101, 108, 699, 3074 716, 141, 76, 77, 101, 1267, 103, 496, 102, 141, 3075 499, 806, 501, 502, 108, 44, 1278, 1279, 1280, 65, 3076 101, 1148, 1517, 69, 106, 999, 877, 101, 1155, 1121, 3077 76, 77, 102, 1517, 1517, 54, 55, 111, 108, 101, 3078 1325, 103, 736, 979, 1042, 1326, 10, 11, 12, 13, 3079 14, 106, 102, 877, 902, 101, 124, 103, 108, 907, 3080 908, 201, 102, 124, 196, 111, 1328, 65, 108, 201, 3081 106, 102, 920, 37, 902, 101, 565, 108, 317, 108, 3082 928, 65, 877, 67, 68, 69, 575, 787, 804, 578, 3083 101, 102, 103, 877, 1186, 1187, 60, 75, 946, 231, 3084 102, 103, 1229, 870, 65, 112, 901, 951, 69, 876, 3085 1395, 1026, 141, 1028, 120, 76, 77, 606, 101, 102, 3086 103, 261, 611, 543, 544, 545, 546, 951, 101, 261, 3087 103, 982, 264, 101, 985, 103, 987, 101, 87, 103, 3088 101, 121, 103, 283, 42, 43, 286, 111, 387, 997, 3089 111, 283, 1113, 1017, 286, 1436, 1092, 123, 101, 65, 3090 103, 877, 877, 69, 103, 101, 866, 103, 102, 997, 3091 76, 77, 201, 681, 3, 683, 1150, 101, 102, 103, 3092 877, 10, 11, 12, 13, 14, 675, 104, 1473, 1040, 3093 102, 1127, 102, 1474, 326, 101, 101, 102, 103, 1050, 3094 1327, 102, 1053, 1054, 1055, 111, 973, 696, 37, 108, 3095 109, 904, 539, 540, 346, 102, 1501, 65, 350, 67, 3096 68, 69, 102, 1047, 78, 79, 80, 716, 76, 77, 3097 101, 60, 261, 103, 65, 1150, 67, 68, 69, 108, 3098 1088, 1156, 1157, 541, 542, 76, 77, 101, 123, 103, 3099 106, 105, 1047, 101, 951, 547, 548, 286, 1496, 748, 3100 101, 877, 102, 1047, 102, 1113, 1240, 407, 408, 104, 3101 101, 104, 412, 109, 104, 407, 408, 1259, 1260, 1261, 3102 412, 109, 1525, 108, 28, 75, 1002, 102, 102, 989, 3103 108, 104, 108, 433, 434, 107, 1091, 326, 109, 102, 3104 1538, 433, 434, 435, 101, 107, 438, 107, 102, 1076, 3105 75, 102, 444, 102, 65, 804, 67, 68, 69, 124, 3106 102, 109, 1089, 1090, 456, 76, 77, 102, 1420, 102, 3107 104, 1047, 1047, 102, 102, 102, 108, 101, 104, 101, 3108 28, 102, 102, 483, 1044, 102, 102, 102, 102, 481, 3109 1047, 483, 102, 485, 1198, 102, 496, 102, 104, 499, 3110 123, 501, 502, 104, 496, 1058, 1150, 499, 1219, 501, 3111 502, 107, 102, 1197, 1198, 1290, 102, 104, 407, 408, 3112 102, 1229, 102, 412, 102, 108, 453, 102, 877, 102, 3113 107, 1483, 1484, 104, 104, 1219, 102, 102, 101, 108, 3114 1244, 1229, 106, 104, 433, 434, 108, 3, 1259, 1260, 3115 1261, 108, 104, 104, 10, 11, 12, 13, 14, 102, 3116 1244, 1121, 104, 102, 1219, 565, 1193, 108, 108, 102, 3117 104, 101, 101, 565, 1050, 1219, 1199, 1200, 1399, 1202, 3118 101, 37, 101, 575, 101, 1208, 109, 124, 1211, 107, 3119 102, 583, 102, 1389, 483, 104, 1240, 102, 106, 121, 3120 107, 102, 951, 952, 60, 108, 104, 1318, 124, 108, 3121 104, 102, 501, 102, 606, 1299, 104, 104, 104, 611, 3122 1304, 1197, 104, 102, 104, 617, 1186, 1187, 104, 45, 3123 107, 124, 124, 106, 124, 1339, 1518, 104, 102, 1517, 3124 124, 1198, 1517, 1219, 1219, 1517, 124, 1518, 107, 1304, 3125 999, 1517, 102, 1517, 1517, 1339, 1538, 104, 107, 104, 3126 1304, 104, 1219, 104, 104, 1376, 104, 1538, 1379, 1517, 3127 104, 104, 102, 102, 55, 1496, 565, 104, 104, 101, 3128 101, 1389, 54, 102, 104, 102, 575, 1244, 106, 124, 3129 1398, 1399, 75, 102, 109, 1406, 1407, 102, 1047, 102, 3130 104, 1389, 104, 104, 696, 102, 101, 89, 107, 40, 3131 1398, 104, 102, 1424, 102, 102, 102, 606, 1429, 108, 3132 89, 75, 611, 1299, 109, 102, 124, 654, 1304, 1304, 3133 0, 106, 124, 124, 726, 102, 1440, 102, 109, 107, 3134 124, 104, 104, 1219, 1455, 124, 101, 1304, 0, 1, 3135 107, 107, 102, 102, 124, 1378, 1440, 650, 549, 1312, 3136 550, 31, 551, 1219, 552, 1129, 1393, 553, 1484, 1384, 3137 1517, 1313, 42, 1517, 44, 1517, 1546, 1461, 1499, 31, 3138 32, 1123, 1339, 65, 1468, 67, 1497, 69, 1496, 1124, 3139 60, 1468, 44, 63, 76, 77, 66, 1508, 1076, 435, 3140 928, 1150, 1513, 683, 435, 930, 1461, 447, 570, 1517, 3141 1518, 973, 1518, 1468, 66, 870, 1527, 1461, 1529, 101, 3142 812, 103, 1533, 726, 1468, 1536, 632, 1511, 948, 111, 3143 1538, 1542, 1538, 1244, 473, 1546, -1, 736, -1, -1, 3144 -1, 65, 1318, 67, 1398, 69, -1, -1, 1197, 1198, 3145 102, -1, 76, 77, -1, -1, 1511, -1, -1, -1, 3146 1420, -1, -1, 790, -1, 857, -1, 1511, -1, -1, 3147 1219, -1, 142, 800, -1, -1, -1, 101, -1, 103, 3148 -1, 1230, 1231, 1440, 154, 1461, 1461, 111, -1, 816, 3149 142, 1240, 1468, 1468, -1, 1244, -1, -1, 150, -1, 3150 1376, -1, -1, 1379, 1461, -1, -1, 177, 178, -1, 3151 -1, 1468, -1, -1, -1, -1, 1469, -1, -1, -1, 3152 -1, -1, -1, 1483, 1484, -1, 178, -1, -1, -1, 3153 63, 201, -1, -1, -1, 1511, 1511, -1, -1, -1, 3154 192, -1, 212, 195, 196, 1498, -1, -1, 1424, 201, 3155 1299, -1, 952, 1429, 1511, 1304, -1, -1, 950, 951, 3156 952, -1, -1, -1, -1, -1, -1, -1, -1, 221, 3157 -1, 241, -1, 225, -1, 227, 1325, 1326, -1, 1455, 3158 113, -1, -1, 235, 1537, 255, -1, 979, -1, 241, 3159 1339, -1, -1, -1, 246, 453, 1549, 65, -1, 67, 3160 -1, 69, -1, -1, 256, 997, -1, 999, 76, 77, 3161 -1, 272, 264, -1, 10, 11, 12, 13, 14, -1, 3162 -1, 154, -1, -1, 285, 286, -1, -1, -1, -1, 3163 -1, -1, -1, 101, -1, 103, 297, -1, -1, -1, 3164 -1, 37, 0, 111, -1, -1, 1395, 317, -1, -1, 3165 -1, 1527, -1, -1, -1, -1, -1, 1533, -1, -1, 3166 -1, 331, -1, 952, 60, 326, 1542, -1, -1, -1, 3167 1546, -1, -1, 31, 326, -1, -1, -1, -1, 212, 3168 -1, 333, 10, 11, 12, 13, 14, 1436, -1, -1, 3169 -1, 1440, -1, -1, 346, -1, 1023, 1024, 350, -1, 3170 1092, 353, 363, -1, -1, 101, -1, 103, 66, 37, 3171 999, 181, 1461, -1, -1, 111, 249, 387, 188, 1468, 3172 253, 1470, -1, -1, 1473, 1474, -1, -1, -1, -1, 3173 -1, -1, 60, -1, -1, 1127, -1, 65, -1, 67, 3174 -1, 69, -1, -1, -1, -1, -1, 399, 76, 77, 3175 1499, -1, 1501, 1080, 1081, -1, 1148, -1, 63, -1, 3176 -1, 413, 1511, 1155, -1, -1, 418, 437, 73, -1, 3177 -1, -1, -1, 101, 426, 103, 1525, -1, -1, -1, 3178 -1, -1, -1, 111, -1, -1, -1, -1, 258, -1, 3179 -1, -1, 150, -1, -1, -1, 654, -1, -1, 332, 3180 -1, 453, -1, 473, 456, -1, -1, 477, 113, 10, 3181 11, 12, 13, 14, 10, 11, 12, 13, 14, 471, 3182 -1, 473, -1, -1, -1, -1, -1, -1, -1, 481, 3183 1230, -1, -1, 485, -1, -1, 37, 1229, 1230, 1231, 3184 -1, 37, 312, -1, -1, -1, -1, -1, -1, 154, 3185 320, -1, 1244, 323, -1, -1, -1, -1, -1, 60, 3186 -1, 513, -1, 221, 60, -1, -1, -1, -1, 65, 3187 -1, 67, -1, 69, -1, 536, 537, 538, 411, -1, 3188 76, 77, -1, 241, -1, -1, -1, -1, 246, -1, 3188 3189 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3189 -1, -1, -1, -1, -1, -1, -1, 709, 461, -1, 3190 712, 332, -1, 1168, -1, -1, -1, -1, -1, 721, 3191 -1, 399, 724, -1, -1, -1, -1, -1, -1, 720, 3192 721, -1, -1, -1, -1, 413, -1, -1, -1, -1, 3193 418, -1, 151, -1, 746, -1, -1, 582, 426, 751, 3194 -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, 3190 101, -1, 103, -1, -1, 101, 558, 212, -1, 379, 3191 111, 1238, -1, 383, 575, 111, 586, -1, 588, -1, 3192 -1, 573, -1, 575, -1, -1, -1, -1, -1, 462, 3193 -1, 583, 790, 1325, 1326, 1327, 588, -1, -1, -1, 3194 1267, 1230, 800, -1, 249, -1, -1, 1339, 253, -1, 3195 -1, 1278, 1279, 1280, 606, -1, -1, -1, 816, 611, 3196 -1, -1, -1, -1, 269, 617, -1, -1, -1, 621, 3197 622, -1, -1, -1, -1, 333, -1, -1, -1, -1, 3198 -1, -1, -1, -1, 636, 90, 91, 92, 93, 94, 3199 95, 96, 97, 98, 99, 353, -1, 1389, 468, -1, 3200 670, 1328, 654, 1395, -1, -1, 676, -1, 678, -1, 3201 -1, -1, -1, -1, -1, 667, -1, -1, 123, -1, 3202 -1, -1, -1, 675, -1, -1, 678, 332, -1, -1, 3203 -1, -1, -1, 25, 26, 27, 0, -1, -1, -1, 3204 -1, 399, -1, -1, 1436, 578, -1, -1, 1440, -1, 3205 -1, 712, 722, 723, -1, 413, -1, -1, -1, 711, 3206 418, -1, 714, -1, -1, -1, -1, 31, 426, -1, 3207 1470, 723, -1, -1, 726, 608, -1, -1, 1470, -1, 3208 613, 1473, 1474, -1, -1, -1, -1, 557, 558, -1, 3209 -1, -1, -1, -1, 755, 453, 748, -1, -1, 1499, 3210 -1, 753, 66, 95, -1, 97, 411, 1499, -1, 1501, 3211 -1, -1, -1, 471, -1, 473, -1, -1, -1, -1, 3212 -1, -1, -1, 428, -1, 1525, -1, -1, -1, -1, 3213 -1, -1, -1, 1525, -1, -1, -1, -1, 790, -1, 3214 -1, -1, -1, -1, -1, 815, -1, -1, 800, -1, 3215 -1, -1, -1, 805, 806, 513, 826, 462, -1, -1, 3216 812, -1, -1, -1, 816, 1023, 1024, -1, -1, 702, 3217 -1, 641, -1, 825, -1, 645, -1, -1, -1, -1, 3218 -1, -1, 174, 716, -1, -1, 150, -1, -1, -1, 3219 -1, 183, 184, -1, -1, -1, 188, -1, 190, 191, 3220 670, -1, -1, -1, -1, 857, -1, -1, -1, -1, 3221 -1, -1, 682, -1, -1, 573, -1, -1, -1, -1, 3222 -1, -1, 1080, 1081, -1, 877, -1, -1, -1, -1, 3223 -1, 892, -1, -1, -1, -1, 1525, 907, 908, -1, 3224 -1, 0, -1, -1, -1, -1, -1, -1, -1, 901, 3225 920, -1, -1, -1, -1, -1, 908, -1, 928, -1, 3226 -1, -1, -1, 621, 622, -1, 10, 11, 12, 13, 3227 14, 804, 31, 578, -1, -1, 946, 241, 636, -1, 3228 -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, 3229 942, -1, -1, 37, -1, -1, 654, -1, 950, 951, 3230 -1, -1, -1, 608, -1, -1, -1, 66, 613, 667, 3231 -1, -1, -1, 965, -1, -1, 60, 675, -1, -1, 3232 -1, 65, -1, 67, 794, 69, -1, 979, -1, -1, 3233 -1, -1, 76, 77, -1, -1, -1, -1, 999, -1, 3234 -1, -1, -1, -1, -1, 997, -1, 999, -1, -1, 3235 -1, -1, -1, 711, -1, -1, 714, 101, -1, 103, 3236 10, 11, 12, 13, 14, 1017, -1, 111, -1, 333, 3237 -1, 1023, 1024, -1, 1026, 1027, 1028, -1, -1, -1, 3238 1238, -1, -1, -1, -1, -1, 1047, 37, -1, 353, 3239 748, 150, -1, -1, -1, 1047, -1, 702, -1, -1, 3240 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1267, 3241 60, 716, -1, -1, -1, 65, -1, 67, 1088, 69, 3242 1278, 1279, 1280, -1, -1, -1, 76, 77, 1080, 1081, 3243 -1, 736, 790, -1, -1, 399, -1, 907, 908, 1091, 3244 1092, -1, 800, -1, -1, 915, -1, 805, 806, 413, 3245 -1, 101, -1, 103, 418, -1, -1, -1, 816, -1, 3246 -1, 111, 426, 10, 11, 12, 13, 14, -1, 1002, 3247 1328, -1, -1, -1, -1, 1127, -1, -1, -1, -1, 3248 -1, -1, 241, -1, -1, -1, -1, 246, -1, 453, 3249 37, -1, -1, -1, -1, -1, 1148, -1, 1150, 804, 3250 -1, -1, -1, 1155, 1156, 1157, -1, 471, -1, 473, 3251 1171, -1, -1, 60, -1, -1, -1, -1, 65, 877, 3252 67, 991, 69, 10, 11, 12, 13, 14, -1, 76, 3253 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254 1010, -1, -1, 901, -1, -1, 1198, -1, -1, 513, 3255 37, -1, -1, -1, 101, -1, -1, -1, -1, -1, 3256 -1, -1, -1, 1215, 111, -1, -1, 1219, -1, 561, 3257 562, -1, -1, 60, 333, -1, -1, 1229, 65, -1, 3258 -1, -1, 69, -1, -1, -1, 1238, -1, 1240, 76, 3259 77, -1, 1244, -1, 353, -1, -1, 589, -1, -1, 3260 592, 593, -1, 595, -1, 597, 598, 965, -1, 573, 3261 602, 603, -1, -1, 101, 1267, 103, -1, 1088, -1, 3262 -1, -1, -1, 1093, 111, -1, 1278, 1279, 1280, -1, 3263 -1, -1, -1, -1, -1, -1, -1, -1, 1290, 1291, 3264 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3265 -1, -1, 1304, -1, 413, -1, -1, 621, 622, 418, 3266 -1, -1, -1, -1, 1197, 1023, 1024, 426, 1026, 1027, 3267 1028, -1, 636, -1, -1, 1327, 1328, 10, 11, 12, 3268 13, 14, -1, -1, -1, -1, -1, 1339, -1, 1047, 3269 654, -1, -1, -1, 453, 687, 688, 1002, -1, -1, 3270 -1, 693, -1, 667, 37, -1, -1, -1, -1, -1, 3271 -1, 675, 471, -1, 473, -1, -1, -1, -1, -1, 3272 -1, -1, 1080, 1081, -1, -1, -1, 60, -1, -1, 3273 -1, -1, 65, 1091, 0, -1, 69, 1389, -1, -1, 3274 -1, -1, -1, 76, 77, -1, -1, 711, -1, -1, 3275 714, -1, -1, -1, 513, -1, -1, -1, -1, -1, 3276 -1, -1, -1, -1, 1416, 31, 1299, -1, 101, -1, 3277 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 3278 -1, -1, -1, -1, 748, -1, -1, -1, 1440, -1, 3279 -1, -1, 1150, -1, -1, -1, -1, -1, 1156, 1157, 3280 66, -1, -1, -1, -1, -1, -1, -1, -1, 1461, 3281 -1, -1, -1, -1, 573, -1, 1468, -1, -1, -1, 3282 -1, -1, -1, -1, -1, -1, 790, -1, -1, -1, 3283 -1, -1, -1, -1, -1, -1, 800, -1, -1, -1, 3284 1198, 805, 806, -1, -1, -1, -1, 1517, -1, -1, 3285 -1, -1, 816, -1, -1, -1, -1, 1215, -1, 1511, 3286 -1, 1219, 621, 622, -1, -1, 1518, -1, -1, -1, 3287 -1, -1, -1, 0, 1, -1, -1, 636, -1, -1, 3288 1238, -1, 1240, -1, 150, -1, -1, -1, -1, -1, 3289 -1, -1, 1197, -1, -1, 654, -1, -1, -1, 10, 3290 11, 12, 13, 14, 31, -1, -1, -1, 667, 1267, 3291 -1, -1, -1, 877, -1, -1, 675, -1, -1, -1, 3292 1278, 1279, 1280, -1, -1, -1, 37, -1, -1, -1, 3293 -1, -1, 1290, 1291, -1, -1, 63, 901, -1, 66, 3294 -1, -1, -1, -1, -1, -1, 1304, -1, -1, 60, 3295 -1, -1, 711, -1, 65, 714, -1, -1, 69, -1, 3296 -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, 3297 1328, -1, -1, -1, -1, 241, -1, -1, -1, -1, 3298 246, -1, -1, -1, -1, -1, -1, -1, -1, 748, 3299 101, -1, -1, -1, 1299, -1, -1, -1, -1, -1, 3300 111, 965, -1, -1, -1, -1, 25, 26, 27, -1, 3195 3301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3196 -1, 606, -1, -1, 452, -1, 10, 11, 12, 13, 3197 14, -1, -1, -1, -1, -1, 788, 622, -1, -1, 3198 411, -1, 470, -1, 472, -1, 798, -1, -1, 634, 3199 -1, 803, 804, 37, -1, -1, -1, 428, 810, 312, 3200 -1, -1, 814, -1, -1, -1, -1, 320, -1, -1, 3201 323, 823, 813, -1, 577, -1, 60, -1, -1, -1, 3202 -1, 65, 241, 824, 512, 69, -1, 246, -1, -1, 3203 461, -1, 76, 77, -1, -1, -1, -1, -1, -1, 3204 -1, -1, -1, 855, 607, -1, -1, -1, -1, 612, 3205 -1, -1, 10, 11, 12, 13, 14, 101, -1, 103, 3206 -1, -1, -1, 875, -1, -1, 379, 111, -1, -1, 3207 383, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3208 -1, -1, -1, -1, 572, -1, -1, 899, -1, 734, 3209 -1, -1, -1, 905, -1, -1, -1, -1, -1, -1, 3210 -1, -1, 60, 904, 905, -1, -1, 65, -1, 67, 3211 -1, 69, -1, -1, 333, -1, 917, -1, 76, 77, 3212 -1, -1, -1, -1, 925, -1, -1, 939, -1, -1, 3213 -1, -1, 620, 621, 353, 947, 948, 700, -1, -1, 3214 -1, -1, 943, 101, -1, 103, 577, 635, -1, -1, 3215 962, 714, -1, 111, 467, -1, -1, -1, -1, -1, 3216 -1, -1, -1, -1, 976, 653, -1, -1, -1, -1, 3217 -1, -1, -1, -1, -1, -1, 607, -1, 666, -1, 3218 399, 612, 994, -1, 996, 673, -1, -1, -1, -1, 3219 -1, -1, -1, -1, 413, -1, -1, 0, -1, 418, 3220 -1, -1, 1014, -1, -1, -1, -1, 426, 1020, 1021, 3221 -1, 1023, 1024, 1025, -1, -1, -1, -1, -1, -1, 3222 -1, 709, -1, -1, 712, -1, -1, -1, 31, -1, 3223 -1, -1, 1044, 452, -1, -1, -1, -1, -1, 802, 3224 -1, -1, -1, 556, 557, -1, -1, -1, -1, -1, 3225 -1, 470, -1, 472, -1, 900, -1, -1, 746, -1, 3226 -1, -1, -1, 66, -1, 1077, 1078, -1, -1, 700, 3227 -1, -1, -1, -1, -1, -1, 1088, 1089, -1, -1, 3228 -1, -1, -1, 714, 1085, -1, -1, -1, -1, -1, 3229 -1, -1, -1, 512, -1, 10, 11, 12, 13, 14, 3230 788, -1, -1, 734, -1, -1, -1, -1, -1, -1, 3231 798, -1, 1124, -1, -1, 803, 804, -1, 25, 26, 3232 27, -1, 37, -1, -1, -1, 814, 640, -1, -1, 3233 -1, 644, -1, 1145, -1, 1147, -1, -1, -1, -1, 3234 1152, 1153, 1154, -1, -1, 60, -1, -1, 151, 994, 3235 65, -1, 67, 572, 69, 668, -1, -1, -1, -1, 3236 -1, 76, 77, -1, -1, -1, -1, 680, -1, -1, 3237 -1, 802, -1, -1, -1, -1, -1, -1, -1, -1, 3238 -1, -1, -1, 1195, -1, -1, 101, 875, 95, -1, 3239 97, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3240 1212, 620, 621, -1, 1216, -1, -1, -1, -1, -1, 3241 -1, 899, -1, -1, 1226, -1, 635, -1, -1, -1, 3242 0, 1, -1, 1235, -1, 1237, -1, -1, -1, 1241, 3243 -1, -1, -1, -1, 653, -1, 999, -1, 241, -1, 3244 -1, -1, -1, 246, -1, -1, -1, 666, -1, -1, 3245 -1, 31, 1264, -1, 673, -1, -1, -1, -1, -1, 3246 -1, -1, -1, 1275, 1276, 1277, -1, -1, 175, -1, 3247 -1, -1, -1, -1, 962, 1287, 1288, 184, 185, 792, 3248 -1, -1, 189, 63, 191, 192, 66, -1, -1, 1301, 3249 709, -1, -1, 712, 0, 10, 11, 12, 13, 14, 3250 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3251 25, 26, 1324, 1325, 29, 30, 31, 32, 33, 34, 3252 -1, -1, 37, -1, 1336, 31, -1, 746, -1, -1, 3253 333, -1, 1020, 1021, -1, 1023, 1024, 1025, -1, -1, 3254 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3255 353, -1, 67, 68, -1, -1, 1044, -1, -1, -1, 3256 66, 10, 11, 12, 13, 14, -1, -1, 999, 788, 3257 -1, 151, -1, -1, 1386, -1, -1, -1, -1, 798, 3258 -1, 1226, -1, -1, 803, 804, -1, -1, 37, 1077, 3259 1078, 904, 905, -1, -1, 814, 399, -1, -1, 912, 3260 1088, 1413, -1, -1, -1, -1, -1, -1, -1, -1, 3261 413, 60, -1, -1, -1, 418, 65, -1, 67, -1, 3262 69, -1, -1, 426, -1, 1437, -1, 76, 77, -1, 3263 -1, 1194, -1, 213, -1, -1, -1, -1, -1, -1, 3264 -1, -1, -1, -1, -1, 151, 1458, -1, -1, 452, 3265 -1, -1, 101, 1465, 103, -1, 875, -1, -1, 1147, 3266 -1, 241, 111, -1, -1, 1153, 1154, 470, -1, 472, 3267 10, 11, 12, 13, 14, 988, -1, -1, -1, -1, 3268 899, -1, -1, -1, -1, -1, -1, -1, -1, 10, 3269 11, 12, 13, 14, 1007, -1, 1508, 37, -1, -1, 3270 -1, -1, -1, 1515, -1, -1, -1, 1195, -1, 512, 3271 -1, -1, -1, 1514, -1, -1, 37, -1, -1, -1, 3272 60, -1, -1, -1, 1212, 65, -1, 67, 1216, 69, 3273 -1, -1, -1, 1296, -1, 241, 76, 77, -1, 60, 3274 246, 1386, -1, 962, 65, -1, 67, 1235, 69, 1237, 3275 1395, -1, -1, -1, -1, 76, 77, -1, -1, -1, 3276 -1, 101, -1, 1194, -1, -1, -1, -1, -1, 572, 3277 -1, 111, 1085, 353, -1, -1, 1264, 1090, -1, -1, 3278 101, -1, 103, -1, -1, -1, -1, 1275, 1276, 1277, 3279 111, -1, -1, -1, -1, -1, -1, -1, -1, 1287, 3280 1288, 1020, 1021, -1, 1023, 1024, 1025, 10, 11, 12, 3281 13, 14, -1, 1301, -1, -1, -1, 620, 621, -1, 3282 -1, -1, -1, -1, -1, 1044, -1, 333, -1, -1, 3283 -1, -1, 635, 413, 37, -1, -1, 1325, -1, -1, 3284 -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, 3285 653, -1, -1, 560, 561, -1, -1, 60, 1077, 1078, 3286 -1, -1, 65, 666, -1, 1296, 69, -1, -1, 1088, 3287 673, -1, -1, 76, 77, -1, -1, -1, -1, -1, 3288 -1, 588, -1, -1, 591, 592, -1, 594, -1, 596, 3289 597, -1, 472, 399, 601, 602, -1, -1, 101, -1, 3290 -1, -1, -1, -1, -1, -1, 709, 413, 111, 712, 3291 -1, -1, 418, -1, -1, -1, -1, -1, -1, -1, 3292 426, -1, -1, -1, -1, 1413, -1, -1, 1147, -1, 3293 -1, -1, 512, -1, 1153, 1154, -1, -1, -1, -1, 3294 -1, -1, -1, 746, -1, -1, 452, -1, -1, -1, 3302 -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, 3303 -1, 790, -1, -1, -1, -1, -1, -1, -1, -1, 3304 -1, 800, -1, -1, -1, -1, 805, 806, -1, -1, 3305 -1, -1, -1, -1, -1, -1, -1, 816, 1416, 1023, 3306 1024, -1, 1026, 1027, 1028, -1, -1, 333, -1, -1, 3307 -1, -1, -1, -1, -1, -1, 95, -1, 97, -1, 3308 -1, -1, -1, 1047, -1, 212, -1, 353, -1, -1, 3309 1082, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3310 -1, -1, 121, 1461, -1, -1, -1, -1, -1, -1, 3311 1468, -1, -1, -1, 241, -1, 1080, 1081, 877, -1, 3312 -1, -1, -1, -1, -1, -1, -1, 1091, -1, -1, 3313 -1, -1, -1, 399, -1, -1, -1, -1, -1, -1, 3314 -1, -1, 901, -1, -1, -1, -1, 413, -1, -1, 3315 -1, -1, 418, 1511, -1, 174, -1, -1, -1, -1, 3316 426, -1, 181, -1, 183, 184, -1, -1, -1, 188, 3317 -1, 190, 191, -1, -1, -1, -1, -1, -1, -1, 3318 -1, -1, -1, -1, -1, -1, 1150, 453, -1, -1, 3319 -1, -1, 1156, 1157, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, -1, -1, 471, 965, 473, -1, -1, 3295 3321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3296 -1, -1, -1, -1, 470, -1, 472, -1, -1, -1, 3297 1458, -1, -1, -1, -1, -1, 1195, 1465, 685, 686, 3298 -1, -1, -1, -1, 691, 788, -1, -1, -1, -1, 3299 -1, -1, 572, 1212, -1, 798, -1, 1216, -1, -1, 3300 803, 804, -1, -1, -1, -1, 512, -1, -1, -1, 3301 -1, 814, -1, -1, -1, -1, 1235, -1, 1237, -1, 3302 1508, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3303 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3304 620, 621, 29, 30, 31, 1264, -1, -1, -1, -1, 3305 37, 38, -1, -1, -1, 635, 1275, 1276, 1277, -1, 3306 -1, -1, -1, -1, -1, -1, 572, -1, 1287, 1288, 3307 -1, -1, 875, 60, -1, -1, -1, -1, -1, -1, 3308 67, 68, 1301, -1, 10, 11, 12, 13, 14, -1, 3309 -1, -1, -1, -1, -1, -1, 899, -1, -1, -1, 3310 -1, -1, 25, 26, 27, -1, 1325, -1, -1, -1, 3311 -1, 37, -1, -1, 620, 621, 103, -1, -1, -1, 3312 107, -1, -1, -1, 111, -1, -1, -1, -1, 635, 3313 -1, -1, 712, -1, 60, -1, -1, -1, -1, 65, 3314 -1, -1, -1, 69, -1, -1, -1, 653, -1, -1, 3315 76, 77, -1, -1, -1, -1, -1, -1, -1, 962, 3316 666, -1, -1, -1, 50, -1, 52, 673, -1, 55, 3317 56, 57, 95, 59, 97, 101, -1, -1, -1, -1, 3318 -1, -1, -1, -1, -1, 111, -1, -1, 74, -1, 3319 -1, -1, -1, -1, 1413, -1, -1, -1, 121, 85, 3320 86, -1, -1, 709, -1, -1, 712, -1, -1, -1, 3321 -1, -1, -1, -1, -1, -1, -1, 1020, 1021, -1, 3322 1023, 1024, 1025, -1, 804, -1, -1, -1, -1, -1, 3323 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1458, 3324 746, 1044, -1, -1, -1, -1, 1465, -1, -1, -1, 3325 -1, -1, 175, -1, -1, -1, -1, -1, -1, 182, 3326 -1, 184, 185, -1, -1, 151, 189, -1, 191, 192, 3327 -1, -1, -1, -1, 1077, 1078, -1, -1, -1, -1, 3328 -1, -1, 788, -1, -1, 1088, -1, -1, -1, 1508, 3329 -1, -1, 798, -1, -1, 875, -1, 803, 804, -1, 3330 -1, -1, -1, -1, -1, -1, -1, -1, 814, -1, 3331 -1, -1, -1, -1, -1, -1, -1, -1, 7, 899, 3332 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, 258, -1, -1, -1, -1, 3334 -1, -1, -1, -1, 1147, -1, -1, 36, 37, 38, 3335 1153, 1154, -1, -1, -1, -1, -1, -1, -1, -1, 3336 -1, -1, -1, -1, -1, -1, -1, -1, 948, 875, 3337 59, 60, 1079, -1, -1, -1, 65, -1, -1, -1, 3338 69, -1, 962, 72, 73, 74, 75, 76, 77, -1, 3339 79, 80, 1195, 899, -1, -1, -1, -1, 87, -1, 3340 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1212, 3341 -1, -1, 101, 1216, 103, -1, -1, -1, -1, -1, 3342 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3343 -1, -1, 1235, -1, 1237, -1, -1, -1, -1, -1, 3344 326, -1, 328, 1023, 1024, 1025, -1, -1, -1, -1, 3345 -1, -1, -1, 339, 340, -1, 962, -1, -1, -1, 3346 -1, 1264, -1, -1, 1044, -1, -1, 353, -1, -1, 3347 -1, -1, 1275, 1276, 1277, -1, -1, -1, -1, -1, 3348 -1, -1, -1, -1, 1287, 1288, -1, -1, -1, -1, 3349 -1, -1, -1, -1, -1, -1, -1, -1, 1301, -1, 3350 -1, -1, -1, -1, -1, -1, 1213, -1, 1088, -1, 3351 -1, -1, -1, -1, 1020, 1021, -1, 1023, 1024, 1025, 3352 -1, -1, 1325, -1, -1, -1, -1, 413, -1, -1, 3353 -1, -1, -1, -1, -1, -1, -1, -1, 1044, -1, 3354 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3355 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3356 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3357 31, 1077, 1078, 1153, 1154, -1, 37, -1, -1, -1, 3358 -1, -1, 1088, -1, -1, -1, -1, -1, -1, -1, 3359 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3360 -1, 62, -1, 64, -1, -1, 67, 68, -1, -1, 3361 1413, -1, -1, -1, 1194, 1195, -1, -1, -1, -1, 3362 -1, -1, -1, -1, -1, -1, 512, -1, -1, -1, 3363 -1, -1, 1212, -1, -1, -1, 1216, 560, 561, -1, 3364 -1, 1147, 103, -1, -1, -1, -1, 1153, 1154, -1, 3365 111, -1, -1, -1, -1, 1458, -1, -1, -1, -1, 3366 -1, 1241, 1465, -1, -1, 588, -1, -1, 591, 592, 3367 -1, 594, -1, 596, 597, -1, -1, -1, 601, 602, 3368 -1, -1, -1, -1, -1, -1, 572, -1, -1, 1195, 3322 -1, -1, -1, -1, 1216, -1, 353, -1, -1, -1, 3323 -1, -1, -1, -1, 1198, -1, -1, -1, -1, 258, 3324 -1, -1, -1, -1, -1, -1, -1, 513, -1, -1, 3325 -1, 1215, -1, -1, -1, 1219, -1, -1, -1, -1, 3326 -1, -1, -1, -1, 1023, 1024, -1, 1026, 1027, 1028, 3327 -1, -1, -1, -1, 1238, -1, 1240, -1, -1, -1, 3328 -1, -1, -1, -1, -1, -1, 413, -1, 1047, -1, 3369 3329 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3370 -1, -1, -1, -1, -1, 1508, 1212, 1287, 1288, -1, 3371 1216, -1, -1, -1, -1, -1, 1296, -1, -1, -1, 3372 -1, 1301, -1, -1, -1, -1, -1, -1, -1, 1235, 3373 -1, 1237, -1, -1, -1, -1, -1, 623, -1, 10, 3374 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3375 21, 22, 23, 24, 25, 26, 1336, 680, 1264, -1, 3376 -1, -1, 685, 686, -1, 651, 37, -1, 691, 1275, 3377 1276, 1277, -1, -1, -1, -1, -1, -1, -1, -1, 3378 -1, 1287, 1288, 669, 670, -1, -1, 673, -1, 60, 3379 -1, -1, -1, -1, -1, 1301, -1, -1, -1, -1, 3380 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3381 -1, -1, -1, -1, -1, 701, -1, 703, -1, 1325, 3382 -1, -1, -1, -1, 710, 711, -1, -1, -1, 715, 3383 -1, -1, -1, 1413, -1, -1, -1, -1, -1, -1, 3384 -1, 727, -1, -1, -1, -1, 732, -1, -1, -1, 3385 -1, -1, -1, -1, -1, -1, -1, 1437, -1, -1, 3386 746, -1, -1, -1, -1, 36, -1, 38, -1, 63, 3387 756, -1, -1, -1, -1, -1, -1, -1, 1458, 73, 3388 -1, 75, -1, 77, -1, 1465, -1, -1, 59, -1, 3389 84, -1, -1, -1, 65, -1, -1, -1, 69, -1, 3390 -1, 72, 73, 74, 75, 76, 77, 1413, 79, 80, 3391 -1, -1, -1, -1, -1, -1, 87, -1, 804, 113, 3392 -1, 115, 116, 117, -1, -1, -1, -1, 1508, -1, 3393 101, -1, 103, -1, -1, -1, -1, 823, -1, 110, 3394 111, 112, 113, 114, 115, -1, -1, 141, -1, -1, 3395 -1, -1, 1458, 124, -1, -1, -1, -1, -1, 1465, 3396 -1, 155, -1, -1, -1, -1, -1, -1, -1, -1, 3397 856, -1, 858, 859, 860, -1, -1, 863, 864, -1, 3398 -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, 3399 -1, 36, 878, 38, -1, -1, -1, -1, -1, -1, 3400 -1, -1, 1508, -1, 890, -1, -1, 893, -1, -1, 3401 -1, -1, -1, 899, 59, -1, -1, -1, -1, 213, 3402 65, 215, 216, 217, 69, -1, 88, 72, 73, 74, 3403 75, 76, 77, -1, 79, 80, 98, -1, -1, -1, 3404 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3405 -1, 937, -1, -1, -1, 249, 101, -1, 103, 253, 3406 -1, 106, -1, -1, -1, 110, 111, 112, 113, 114, 3407 115, -1, -1, -1, -1, 269, 962, -1, -1, -1, 3408 -1, -1, -1, -1, -1, -1, -1, -1, -1, 975, 3409 152, -1, -1, -1, 980, -1, -1, 983, -1, -1, 3410 -1, 987, -1, 165, -1, -1, 992, -1, -1, -1, 3411 996, 997, 998, -1, -1, -1, -1, -1, -1, -1, 3412 1006, -1, -1, 317, -1, 187, -1, -1, -1, -1, 3413 1016, -1, -1, -1, -1, -1, -1, -1, 332, 201, 3414 -1, -1, -1, 337, 338, -1, -1, 209, -1, 1035, 3415 1036, 345, -1, -1, -1, -1, 1079, 219, -1, -1, 3416 -1, -1, -1, -1, -1, -1, -1, -1, 230, -1, 3417 -1, -1, -1, -1, 1060, -1, -1, 1063, -1, -1, 3418 242, -1, -1, -1, -1, 247, -1, -1, -1, -1, 3419 -1, -1, -1, 387, -1, -1, -1, -1, 260, -1, 3420 -1, -1, 1088, -1, 266, -1, 268, -1, -1, -1, 3421 -1, 405, -1, -1, -1, -1, -1, 411, -1, -1, 3422 -1, 1107, 284, -1, -1, -1, -1, 1113, 1114, -1, 3423 -1, -1, -1, -1, 428, -1, 1122, 431, 432, -1, 3424 -1, -1, 1128, -1, -1, 1131, -1, 1133, -1, -1, 3425 1136, -1, -1, 447, -1, -1, -1, -1, -1, -1, 3426 -1, 1147, -1, 325, -1, 1151, -1, 461, -1, -1, 3427 -1, -1, -1, -1, 468, -1, -1, -1, -1, -1, 3428 -1, 36, 1168, 38, 1170, 1171, 1172, 1173, -1, -1, 3429 1213, -1, 354, -1, -1, -1, 358, 359, -1, 361, 3430 -1, 1187, -1, 1189, 59, 367, 368, 1193, 370, 371, 3431 65, 373, -1, 375, 69, -1, -1, 72, 73, 74, 3432 75, 76, 77, -1, 79, 80, 1212, -1, -1, -1, 3433 392, -1, 87, -1, -1, 1221, 1222, -1, 400, -1, 3434 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3435 -1, -1, -1, -1, 109, 110, 111, 112, 113, 114, 3436 115, -1, 424, -1, -1, -1, -1, -1, -1, -1, 3437 -1, -1, -1, 435, -1, -1, -1, -1, -1, -1, 3438 -1, -1, -1, 577, -1, -1, 1272, 1273, -1, -1, 3439 -1, -1, 1278, 1279, -1, -1, 458, -1, -1, -1, 3440 -1, -1, 464, 1289, -1, -1, -1, 469, -1, -1, 3441 -1, -1, -1, 607, -1, -1, -1, -1, 612, 3, 3330 -1, -1, -1, 1267, -1, -1, -1, 573, -1, -1, 3331 -1, -1, -1, -1, 1278, 1279, 1280, -1, -1, -1, 3332 -1, 1080, 1081, -1, -1, -1, 1290, 1291, -1, -1, 3333 -1, -1, 1091, -1, -1, -1, -1, -1, -1, -1, 3334 1304, -1, -1, -1, -1, -1, 473, -1, -1, -1, 3335 -1, -1, -1, -1, -1, 621, 622, -1, -1, -1, 3336 -1, -1, -1, -1, 1328, -1, -1, -1, -1, -1, 3337 636, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3338 -1, -1, -1, -1, -1, -1, 513, -1, 654, -1, 3339 -1, 1150, -1, -1, -1, -1, -1, 1156, 1157, -1, 3340 -1, 667, -1, -1, -1, -1, -1, -1, -1, 675, 3341 -1, -1, -1, -1, 50, -1, 52, -1, -1, 55, 3342 56, 57, -1, 59, -1, -1, -1, -1, -1, -1, 3343 -1, -1, -1, -1, -1, -1, -1, -1, 74, 1198, 3344 -1, -1, -1, -1, -1, 711, 573, -1, 714, 85, 3345 86, -1, 1416, -1, -1, -1, 1215, -1, -1, -1, 3346 1219, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3347 19, 20, 21, 22, 23, 24, 25, 26, 27, 1238, 3348 -1, 1240, 748, -1, -1, -1, -1, -1, 37, -1, 3349 -1, -1, -1, -1, 621, 622, -1, 1461, -1, -1, 3350 -1, -1, -1, -1, 1468, -1, -1, -1, 1267, 636, 3351 -1, 60, -1, -1, 150, -1, -1, -1, -1, 1278, 3352 1279, 1280, 71, -1, 790, -1, -1, -1, -1, -1, 3353 -1, 1290, 1291, -1, 800, -1, -1, -1, -1, 805, 3354 806, -1, 561, 562, -1, 1304, -1, 1511, -1, -1, 3355 816, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3356 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1328, 3357 589, -1, -1, 592, 593, -1, 595, -1, 597, 598, 3358 -1, -1, -1, 602, 603, -1, -1, 714, 4, 5, 3359 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3360 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3361 26, 877, -1, 29, 30, 31, -1, -1, -1, -1, 3362 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3363 -1, -1, -1, -1, -1, 901, -1, -1, -1, -1, 3364 -1, -1, -1, -1, 60, -1, 62, -1, 64, 65, 3365 -1, 67, 68, 69, -1, -1, -1, 1416, -1, -1, 3366 76, 77, -1, 682, -1, -1, -1, -1, 687, 688, 3367 -1, -1, -1, -1, 693, -1, -1, -1, -1, 806, 3368 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3369 326, -1, 328, -1, -1, 111, -1, -1, -1, 965, 3370 -1, -1, 1461, 339, 340, -1, -1, -1, -1, 1468, 3371 -1, -1, -1, -1, -1, -1, -1, 353, -1, 3, 3442 3372 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3443 3373 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3444 24, 25, 26, 505, -1, 29, 30, 31, -1, -1, 3445 -1, -1, -1, 37, 1340, -1, -1, -1, 520, -1, 3446 -1, -1, -1, -1, -1, -1, 1352, -1, -1, -1, 3447 1356, 1357, 1358, -1, -1, -1, 60, -1, 62, -1, 3448 64, 65, 1368, 67, 68, 69, -1, -1, -1, -1, 3449 -1, 1377, 76, 77, 556, -1, -1, -1, -1, -1, 3450 -1, -1, -1, 565, -1, 567, 700, 1393, -1, -1, 3451 -1, 573, -1, 36, -1, 38, -1, 101, -1, 103, 3452 714, -1, -1, -1, 586, -1, -1, 111, -1, -1, 3453 -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, 3454 734, -1, 65, -1, 67, 68, 69, -1, -1, 72, 3455 73, 74, 75, 76, 77, -1, 79, 80, -1, 1445, 3456 1446, -1, -1, 625, 87, -1, -1, -1, -1, -1, 3457 -1, -1, 1458, -1, 36, -1, 38, -1, 101, 1465, 3458 103, -1, 105, 106, -1, -1, -1, 110, 111, 112, 3459 113, 114, 115, -1, -1, -1, -1, 59, 792, 661, 3460 -1, -1, -1, 65, -1, -1, 1492, 69, 802, -1, 3374 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3375 877, -1, 1511, 37, -1, -1, -1, 1023, 1024, -1, 3376 1026, 1027, 1028, -1, -1, -1, -1, -1, -1, -1, 3377 -1, -1, -1, -1, 901, -1, 60, 413, 62, -1, 3378 64, 1047, -1, 67, 68, -1, 4, 5, 6, 7, 3379 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3380 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3381 -1, 29, 30, 31, 1080, 1081, -1, -1, 36, 37, 3382 38, -1, 106, -1, 951, 1091, -1, -1, -1, -1, 3383 -1, -1, -1, -1, -1, -1, -1, -1, 965, -1, 3384 -1, 59, 60, -1, 62, -1, 64, 65, -1, 67, 3385 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3386 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3387 -1, -1, -1, -1, -1, -1, -1, 513, -1, -1, 3388 -1, -1, -1, 101, 1150, 103, 104, -1, -1, -1, 3389 1156, 1157, 110, 111, 112, 113, 114, 115, -1, 1026, 3390 1027, 1028, 10, 11, 12, 13, 14, 15, 16, 17, 3391 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3392 1047, -1, -1, -1, -1, -1, -1, -1, -1, 37, 3393 -1, -1, 1198, -1, -1, -1, -1, 573, 7, -1, 3394 -1, 10, 11, 12, 13, 14, -1, -1, -1, 1215, 3395 -1, -1, 60, 1219, -1, -1, -1, -1, -1, -1, 3396 -1, -1, -1, 71, 1091, -1, -1, 36, 37, 38, 3397 -1, -1, 1238, -1, 1240, -1, -1, -1, -1, -1, 3398 -1, -1, -1, -1, -1, -1, -1, -1, 624, -1, 3399 59, 60, -1, -1, -1, -1, 65, -1, -1, -1, 3400 69, 1267, -1, 72, 73, 74, 75, 76, 77, -1, 3401 79, 80, 1278, 1279, 1280, -1, 652, -1, 87, -1, 3402 -1, -1, -1, -1, 1290, 1291, -1, -1, -1, 1156, 3403 1157, -1, 101, -1, 103, 671, 672, -1, 1304, 675, 3404 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3405 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3406 -1, -1, 1328, 1082, -1, -1, -1, 703, -1, 705, 3407 1197, 1198, -1, -1, -1, -1, 712, 713, -1, -1, 3408 -1, 717, -1, -1, -1, -1, -1, -1, 1215, -1, 3409 -1, -1, 1219, 729, -1, -1, -1, -1, 734, -1, 3410 -1, -1, -1, -1, 36, -1, 38, -1, -1, -1, 3411 -1, -1, 748, -1, -1, -1, -1, 1244, -1, -1, 3412 -1, -1, 758, -1, -1, -1, -1, 59, -1, -1, 3413 -1, -1, -1, 65, -1, -1, -1, 69, -1, -1, 3414 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3415 1416, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3416 -1, -1, -1, 1290, 1291, -1, -1, -1, -1, 101, 3417 806, 103, 1299, -1, -1, -1, -1, 1304, 110, 111, 3418 112, 113, 114, 115, 63, -1, -1, -1, -1, 825, 3419 -1, -1, 124, -1, 73, 1461, 75, 1216, 77, -1, 3420 -1, -1, 1468, -1, -1, 84, -1, -1, -1, -1, 3421 -1, 7, 1339, -1, 10, 11, 12, 13, 14, -1, 3422 -1, -1, 858, -1, 860, 861, 862, -1, -1, 865, 3423 866, -1, -1, -1, 113, -1, 115, 116, 117, -1, 3424 36, 37, 38, -1, 880, 1511, -1, -1, -1, -1, 3425 -1, -1, -1, -1, -1, -1, 892, -1, -1, 895, 3426 -1, 140, -1, 59, 60, 901, -1, -1, -1, 65, 3427 -1, -1, -1, 69, -1, 154, 72, 73, 74, 75, 3428 76, 77, -1, 79, 80, -1, -1, -1, -1, 1416, 3429 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3430 -1, -1, -1, -1, 940, 101, -1, 103, -1, -1, 3431 -1, -1, -1, 1440, 110, 111, 112, 113, 114, 115, 3432 -1, -1, -1, -1, -1, -1, -1, -1, -1, 965, 3433 -1, -1, -1, 212, 1461, 214, 215, 216, -1, -1, 3434 -1, 1468, 978, -1, -1, -1, -1, 983, -1, -1, 3435 986, -1, -1, -1, 990, -1, -1, -1, -1, 995, 3436 -1, -1, -1, 999, 1000, 1001, -1, -1, -1, -1, 3437 249, -1, -1, 1009, 253, -1, -1, -1, -1, -1, 3438 -1, -1, -1, 1019, 1511, -1, -1, -1, -1, -1, 3439 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3440 -1, -1, 1038, 1039, 10, 11, 12, 13, 14, 15, 3441 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3442 26, -1, -1, 29, 30, 31, -1, 1063, -1, -1, 3443 1066, 37, 38, -1, -1, -1, -1, -1, 317, -1, 3444 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3445 -1, -1, -1, 332, 60, 1091, -1, -1, 337, 338, 3446 -1, 67, 68, -1, -1, -1, 345, -1, -1, -1, 3447 -1, -1, 43, -1, 1110, -1, -1, -1, -1, -1, 3448 1116, 1117, -1, -1, -1, -1, -1, -1, -1, 1125, 3449 -1, -1, -1, -1, -1, 1131, -1, 103, 1134, -1, 3450 1136, 107, -1, 1139, -1, 111, -1, -1, 387, -1, 3451 -1, -1, -1, -1, 1150, -1, -1, 88, 1154, -1, 3452 -1, -1, -1, -1, -1, -1, 405, 98, -1, -1, 3453 -1, -1, 411, -1, 36, 1171, 38, 1173, 1174, 1175, 3454 1176, -1, -1, -1, -1, -1, -1, -1, -1, 428, 3455 -1, -1, 431, 432, 1190, -1, 1192, 59, -1, -1, 3456 1196, -1, -1, 65, -1, 67, -1, 69, -1, 448, 3457 72, 73, 74, 75, 76, 77, -1, 79, 80, 1215, 3458 151, -1, -1, 462, -1, 87, -1, -1, 1224, 1225, 3459 469, -1, -1, 164, -1, -1, -1, -1, -1, 101, 3460 -1, 103, -1, 105, 106, -1, -1, -1, 110, 111, 3461 112, 113, 114, 115, -1, 186, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, 3463 -1, -1, -1, -1, -1, -1, -1, 208, -1, 1275, 3464 1276, -1, -1, -1, -1, 1281, 1282, 218, -1, -1, 3465 -1, -1, -1, -1, -1, -1, 1292, -1, -1, 230, 3466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3467 -1, 242, -1, -1, -1, -1, 247, -1, -1, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 3469 -1, -1, -1, -1, -1, 266, -1, 268, -1, 578, 3470 -1, -1, -1, -1, -1, -1, -1, 1343, -1, -1, 3471 -1, -1, -1, 284, -1, -1, -1, -1, -1, 1355, 3472 -1, -1, -1, 1359, 1360, 1361, -1, -1, -1, 608, 3473 -1, -1, -1, -1, 613, 1371, -1, -1, -1, -1, 3474 -1, 36, -1, 38, 1380, -1, -1, -1, -1, -1, 3475 -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, 3476 1396, -1, -1, -1, 59, -1, -1, -1, -1, -1, 3477 65, -1, -1, -1, 69, -1, -1, 72, 73, 74, 3478 75, 76, 77, 354, 79, 80, -1, 358, 359, -1, 3479 361, -1, 87, -1, -1, -1, 367, 368, -1, 370, 3480 371, -1, 373, -1, 375, -1, 101, -1, 103, -1, 3481 -1, 106, 1448, 1449, -1, 110, 111, 112, 113, 114, 3482 115, 392, -1, 702, -1, 1461, -1, -1, -1, 400, 3483 -1, 36, 1468, 38, 39, -1, 41, 716, -1, 44, 3484 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3485 -1, 56, 57, 424, 59, -1, -1, 736, -1, 1495, 3486 65, -1, -1, -1, 69, 436, -1, 72, 73, 74, 3487 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3488 -1, -1, 87, -1, -1, -1, -1, 1523, 459, -1, 3489 -1, -1, -1, -1, 465, -1, 101, -1, 103, 470, 3490 -1, 106, -1, -1, -1, 110, 111, 112, 113, 114, 3491 115, -1, 1548, -1, -1, 794, -1, 1553, -1, 124, 3492 -1, -1, -1, -1, -1, 804, -1, -1, -1, -1, 3493 -1, -1, -1, -1, -1, 506, -1, -1, -1, -1, 3494 -1, -1, -1, -1, -1, -1, -1, 826, -1, -1, 3495 521, -1, -1, 0, -1, -1, 3, 4, 5, 6, 3496 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3497 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3498 -1, -1, 29, 30, 31, 32, 557, -1, 35, -1, 3499 37, 38, -1, -1, -1, 566, -1, 568, -1, -1, 3500 -1, -1, -1, 574, -1, -1, -1, -1, -1, 36, 3501 57, 38, -1, 60, -1, 62, 587, 64, 65, -1, 3502 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, 3503 77, -1, 59, -1, -1, -1, -1, -1, 65, -1, 3504 -1, 920, 69, -1, -1, 72, 73, 74, 75, 76, 3505 77, -1, 79, 80, 101, 626, 103, -1, -1, -1, 3506 87, -1, -1, -1, 111, 150, -1, 946, -1, -1, 3507 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3508 -1, -1, 109, 110, 111, 112, 113, 114, 115, -1, 3509 -1, 662, -1, 972, -1, -1, 181, -1, -1, -1, 3510 -1, -1, -1, 188, -1, 10, 11, 12, 13, 14, 3511 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3512 25, 26, 27, 1002, 29, 30, 31, -1, -1, -1, 3513 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3514 1019, -1, -1, -1, -1, -1, -1, -1, -1, 720, 3515 -1, -1, -1, -1, -1, 60, -1, -1, -1, 730, 3516 731, -1, 67, 68, -1, -1, 71, -1, -1, -1, 3517 -1, 742, -1, 258, -1, -1, -1, -1, 36, -1, 3518 38, -1, -1, -1, -1, -1, -1, -1, 759, -1, 3519 761, -1, -1, -1, 765, -1, 101, -1, 103, -1, 3520 -1, 59, -1, -1, -1, -1, 111, 65, -1, 1088, 3521 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3522 -1, 79, 80, -1, -1, -1, 1105, 312, -1, 87, 3523 -1, -1, -1, -1, -1, 320, 321, -1, 323, 324, 3524 -1, 326, -1, 101, -1, 103, 331, -1, -1, -1, 3525 108, -1, 110, 111, 112, 113, 114, 115, -1, 830, 3526 -1, -1, -1, -1, -1, 350, 837, -1, 353, -1, 3527 -1, -1, -1, -1, -1, -1, -1, -1, -1, 850, 3528 -1, 852, -1, -1, -1, -1, 36, -1, 38, -1, 3529 -1, -1, -1, -1, 379, -1, 867, -1, 383, -1, 3530 -1, -1, 873, -1, -1, -1, -1, -1, -1, 59, 3531 -1, -1, -1, -1, 885, 65, -1, 888, 1197, 69, 3532 -1, -1, 72, 73, 74, 75, 76, 77, 413, 79, 3533 80, -1, -1, -1, -1, -1, 907, 87, -1, -1, 3534 -1, -1, 913, -1, -1, -1, -1, -1, -1, -1, 3535 141, 101, 437, 103, -1, -1, 106, -1, -1, 150, 3536 110, 111, 112, 113, 114, 115, -1, -1, -1, -1, 3537 -1, 162, -1, -1, -1, -1, -1, -1, -1, -1, 3538 -1, -1, -1, 468, -1, -1, 471, -1, -1, -1, 3539 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3540 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 3541 30, 31, -1, -1, -1, -1, -1, 37, -1, -1, 3542 1299, -1, -1, -1, -1, 510, -1, 998, 513, -1, 3543 -1, -1, -1, 1004, 1005, -1, -1, -1, -1, -1, 3544 60, -1, -1, -1, -1, 65, -1, 67, 68, 69, 3545 -1, 71, -1, -1, -1, -1, 76, 77, -1, -1, 3546 -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, 3547 -1, -1, 557, 558, -1, -1, -1, -1, -1, -1, 3548 -1, 101, -1, 103, -1, -1, -1, -1, 573, 1060, 3549 575, 111, -1, -1, -1, 1066, -1, -1, 583, -1, 3550 -1, 586, -1, 588, 589, -1, -1, -1, -1, -1, 3551 595, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3552 605, 606, -1, -1, -1, -1, 611, -1, -1, -1, 3553 1101, -1, -1, -1, -1, 1106, 621, 622, -1, -1, 3554 -1, -1, -1, 1114, -1, -1, -1, -1, -1, -1, 3555 -1, 636, -1, -1, -1, -1, 641, 642, -1, -1, 3556 645, 646, 353, -1, -1, -1, -1, -1, -1, -1, 3557 -1, 362, 1143, -1, -1, -1, -1, -1, -1, -1, 3558 -1, -1, -1, -1, -1, 670, -1, -1, -1, 1160, 3559 675, 676, 1163, 678, 1165, -1, -1, 682, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3561 -1, 1182, 1183, -1, -1, -1, -1, -1, -1, -1, 3562 -1, 412, -1, -1, -1, -1, -1, -1, -1, 714, 3563 715, -1, 1203, -1, -1, -1, -1, -1, -1, -1, 3564 -1, -1, 433, 434, -1, -1, -1, -1, -1, -1, 3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1538, 3566 -1, -1, -1, 748, 1235, -1, -1, 752, 753, -1, 3567 -1, -1, 463, -1, -1, -1, -1, -1, 10, 11, 3568 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3569 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, 3570 -1, -1, -1, -1, -1, 37, -1, -1, -1, 794, 3571 501, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3572 -1, 806, 513, -1, -1, -1, -1, -1, 60, 520, 3573 815, -1, 817, 65, -1, 67, 68, 69, -1, 71, 3574 -1, 826, 533, 534, 76, 77, 10, 11, 12, 13, 3575 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3576 24, 25, 26, 1334, 555, 1336, -1, -1, -1, -1, 3577 -1, 103, 857, 37, 565, -1, 1347, -1, 1349, 111, 3578 -1, -1, 573, -1, -1, -1, -1, -1, -1, -1, 3579 -1, -1, -1, -1, -1, -1, 60, -1, 1369, -1, 3580 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3581 -1, -1, -1, -1, 1385, -1, 901, -1, -1, -1, 3582 -1, -1, 907, 908, -1, -1, 1397, -1, -1, 1400, 3583 915, -1, -1, 624, -1, 920, -1, -1, -1, -1, 3584 631, -1, -1, 928, -1, -1, -1, -1, -1, -1, 3585 -1, 1422, -1, -1, -1, -1, 941, 942, -1, -1, 3586 1431, 652, -1, 1434, 1435, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3588 965, -1, -1, -1, 675, -1, -1, 972, -1, -1, 3589 -1, -1, -1, -1, 979, -1, -1, -1, -1, -1, 3590 -1, 1472, -1, -1, -1, 1476, 991, 992, -1, -1, 3591 -1, -1, 997, -1, 999, -1, -1, 1488, -1, -1, 3592 -1, -1, -1, -1, -1, 1010, 1011, -1, 1013, 1014, 3593 1015, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3594 -1, 1026, 1027, 1028, -1, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, 748, -1, 750, 3596 -1, -1, -1, -1, -1, 756, -1, -1, -1, -1, 3597 -1, -1, -1, 764, -1, 10, 11, 12, 13, 14, 3598 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3599 25, 26, 27, -1, 29, 30, 31, -1, 1083, -1, 3600 -1, -1, 37, 1088, -1, -1, 1091, 1092, 1093, 1094, 3601 801, -1, -1, 804, 805, 806, -1, -1, -1, -1, 3602 1105, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3603 -1, -1, 67, 68, 825, -1, 71, -1, -1, -1, 3604 -1, -1, 1127, -1, -1, -1, -1, 270, 271, 272, 3605 273, -1, -1, -1, -1, -1, -1, 280, 281, -1, 3606 -1, -1, 285, 286, -1, 1150, 101, -1, 103, -1, 3607 1155, 1156, 1157, -1, 297, 866, 111, -1, -1, 870, 3608 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3609 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3610 25, 26, 27, 326, 29, 30, 31, -1, -1, -1, 3611 901, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3613 1215, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3614 363, -1, 67, 68, 1229, -1, 71, -1, -1, -1, 3615 -1, -1, -1, -1, -1, 1240, -1, -1, -1, -1, 3616 -1, 952, -1, -1, -1, -1, -1, -1, -1, -1, 3617 -1, -1, -1, -1, 965, 966, -1, -1, 103, -1, 3618 -1, 36, 973, 38, -1, -1, 111, -1, -1, 980, 3619 -1, -1, 983, -1, 985, -1, -1, -1, -1, -1, 3620 -1, -1, -1, -1, 59, 1290, 1291, -1, -1, -1, 3621 65, 1002, -1, -1, 69, -1, -1, 72, 73, 74, 3622 75, 76, 77, -1, 79, 80, -1, -1, 1019, -1, 3623 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3624 -1, -1, 1327, -1, -1, -1, 101, -1, 103, -1, 3625 -1, 1042, -1, 1044, -1, 110, 111, 112, 113, 114, 3626 115, -1, -1, -1, -1, -1, -1, -1, 1059, -1, 3627 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3628 -1, -1, -1, -1, -1, -1, -1, 1078, -1, -1, 3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3630 1091, -1, -1, -1, 1389, -1, -1, -1, -1, -1, 3631 -1, -1, -1, 536, 537, 538, 539, 540, 541, 542, 3632 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 3633 553, 1416, -1, -1, -1, -1, -1, -1, 1129, -1, 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, 575, -1, -1, -1, -1, -1, -1, 1150, 3636 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, -1, 1168, -1, 1170, 3638 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 3639 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3640 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3641 -1, 1496, 29, 30, 31, 32, -1, -1, 35, -1, 3642 37, 38, -1, -1, 1215, -1, -1, -1, -1, -1, 3643 -1, -1, 1517, 1518, -1, -1, -1, -1, -1, 1230, 3644 57, -1, -1, 60, -1, 62, -1, 64, 65, -1, 3645 67, 68, 69, 1538, 677, -1, -1, -1, -1, 76, 3646 77, -1, 1253, -1, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, -1, 699, -1, -1, -1, 3648 -1, -1, -1, -1, 101, -1, 103, -1, -1, 712, 3649 107, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3650 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3651 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3652 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3653 32, -1, 755, 35, 36, 37, 38, 39, -1, 41, 3654 -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 3655 -1, 53, -1, -1, 56, 57, -1, 59, 60, -1, 3656 62, -1, 64, 65, 787, 67, 68, 69, -1, -1, 3461 3657 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3462 3658 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3463 824, -1, -1, -1, 1520, -1, -1, -1, 151, 101, 3464 -1, 103, -1, -1, -1, -1, 108, -1, 110, 111, 3465 112, 113, 114, 115, -1, -1, 718, -1, -1, 1545, 3466 -1, -1, -1, -1, 1550, -1, 728, 729, -1, 182, 3467 -1, -1, -1, -1, -1, -1, 189, -1, 740, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3469 -1, -1, -1, -1, -1, 757, -1, 759, -1, -1, 3470 -1, 763, -1, -1, -1, 10, 11, 12, 13, 14, 3471 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3472 25, 26, -1, 917, 29, 30, 31, -1, -1, -1, 3473 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 3474 -1, -1, -1, -1, -1, 258, -1, -1, -1, 943, 3475 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 3476 65, -1, 67, 68, 69, -1, 828, -1, -1, -1, 3477 -1, 76, 77, 835, -1, 969, -1, -1, -1, -1, 3478 -1, -1, -1, -1, -1, -1, 848, -1, 850, -1, 3479 -1, -1, -1, -1, -1, -1, 101, -1, 103, 312, 3480 -1, -1, -1, 865, -1, 999, 111, 320, 321, 871, 3481 323, 324, -1, 326, -1, -1, -1, -1, 331, -1, 3482 -1, 883, 1016, -1, 886, -1, -1, -1, -1, -1, 3483 -1, -1, -1, -1, -1, -1, 36, 350, 38, -1, 3484 353, -1, 904, -1, -1, -1, -1, -1, 910, -1, 3485 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 3486 -1, -1, -1, -1, -1, 65, 379, -1, -1, 69, 3487 383, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3488 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3489 -1, 1085, -1, -1, -1, -1, -1, -1, -1, -1, 3490 413, 101, -1, 103, -1, -1, 106, -1, 1102, -1, 3491 110, 111, 112, 113, 114, 115, -1, -1, -1, -1, 3492 -1, -1, 142, 436, -1, -1, -1, -1, -1, -1, 3493 -1, 151, -1, 995, -1, -1, -1, -1, -1, 1001, 3494 1002, -1, -1, 163, -1, -1, -1, -1, -1, 270, 3495 271, 272, 273, -1, 467, -1, -1, 470, -1, 280, 3496 281, -1, -1, -1, 285, 286, -1, -1, -1, -1, 3497 -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, 3498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3499 -1, -1, -1, -1, -1, 1057, 509, -1, -1, 512, 3500 1194, 1063, -1, -1, -1, 326, -1, -1, -1, -1, 3501 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3502 20, 21, 22, 23, 24, 25, 26, 27, -1, 29, 3503 30, 31, -1, -1, 254, -1, 1098, 37, -1, -1, 3504 -1, 1103, 363, 556, 557, -1, -1, -1, -1, 1111, 3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, 572, 3506 60, 574, -1, -1, -1, -1, -1, 67, 68, 582, 3507 -1, 71, 585, -1, 587, 588, -1, -1, 1140, -1, 3508 -1, 594, -1, -1, -1, -1, -1, -1, -1, -1, 3509 -1, 604, 605, -1, -1, 1157, -1, 610, 1160, -1, 3510 1162, 101, 1296, 103, -1, -1, -1, 620, 621, -1, 3511 -1, 111, -1, -1, -1, -1, -1, 1179, 1180, -1, 3512 -1, -1, 635, -1, -1, -1, -1, 640, 641, -1, 3513 -1, 644, 645, 353, -1, -1, -1, -1, 1200, -1, 3514 -1, -1, 362, -1, -1, -1, -1, -1, -1, -1, 3515 -1, -1, -1, -1, -1, 668, -1, -1, -1, -1, 3516 673, 674, -1, 676, -1, -1, -1, 680, -1, -1, 3517 1232, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3519 -1, -1, 412, -1, -1, -1, -1, -1, -1, 712, 3520 713, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3521 -1, -1, -1, 433, 535, 536, 537, 538, 539, 540, 3522 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 3523 551, 552, -1, 746, -1, -1, -1, 750, 751, -1, 3524 -1, -1, 462, -1, -1, -1, -1, -1, -1, -1, 3525 -1, -1, -1, 574, -1, -1, -1, 7, -1, -1, 3526 10, 11, 12, 13, 14, -1, -1, -1, -1, 1331, 3527 -1, 1333, -1, -1, -1, -1, -1, -1, -1, 792, 3528 500, -1, 1344, -1, 1346, -1, 36, 37, 38, -1, 3529 -1, 804, 512, -1, -1, -1, -1, -1, -1, 519, 3530 813, -1, 815, -1, 1366, -1, -1, -1, -1, 59, 3531 60, 824, 532, 533, -1, 65, -1, -1, -1, 69, 3532 1382, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3533 80, -1, 1394, -1, 554, 1397, -1, 87, -1, -1, 3534 -1, 1535, 855, -1, 564, -1, -1, -1, -1, -1, 3535 -1, 101, 572, 103, 675, -1, -1, 1419, -1, -1, 3536 110, 111, 112, 113, 114, 115, 1428, -1, -1, 1431, 3537 1432, -1, -1, -1, -1, -1, 697, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, 899, -1, -1, 710, 3539 -1, 904, 905, -1, -1, -1, -1, -1, -1, 912, 3540 -1, -1, -1, 623, 917, -1, -1, 1469, -1, -1, 3541 630, 1473, 925, -1, -1, -1, -1, -1, -1, -1, 3542 -1, -1, -1, 1485, -1, 938, 939, -1, -1, -1, 3543 -1, 651, 753, -1, -1, -1, -1, -1, -1, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, 962, 3545 -1, -1, -1, 673, -1, -1, 969, -1, -1, -1, 3546 -1, -1, -1, 976, 785, -1, -1, -1, -1, -1, 3547 -1, -1, -1, -1, -1, 988, 989, -1, -1, -1, 3548 -1, 994, -1, 996, -1, -1, -1, -1, -1, -1, 3549 -1, -1, -1, -1, 1007, 1008, -1, 1010, 1011, 1012, 3550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3551 1023, 1024, 1025, -1, -1, -1, -1, -1, -1, -1, 3552 -1, -1, -1, -1, -1, -1, 746, -1, 748, -1, 3553 -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, 3554 -1, -1, 762, -1, 10, 11, 12, 13, 14, 15, 3555 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3556 26, 27, -1, 29, 30, 31, -1, 1080, -1, 890, 3557 -1, 37, 1085, -1, -1, 1088, 1089, 1090, 1091, 799, 3558 -1, -1, 802, 803, 804, 36, -1, 38, -1, 1102, 3559 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, 3560 -1, 67, 68, 823, -1, 71, -1, -1, 59, -1, 3561 -1, 1124, -1, -1, 65, -1, -1, -1, 69, -1, 3562 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3563 -1, -1, -1, -1, 1147, 101, 87, 103, -1, 1152, 3564 1153, 1154, -1, -1, 864, 111, -1, -1, 868, -1, 3565 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3566 111, 112, 113, 114, 115, 986, -1, -1, -1, -1, 3567 -1, -1, -1, -1, -1, 996, -1, -1, -1, 899, 3568 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3569 19, 20, 21, 22, 23, 24, 25, 26, -1, 1212, 3570 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 3571 -1, -1, -1, 1226, -1, -1, -1, -1, -1, -1, 3572 -1, -1, -1, 1044, 1237, -1, -1, -1, -1, 949, 3573 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68, 3574 -1, -1, 962, 963, -1, -1, -1, -1, -1, -1, 3575 970, -1, -1, -1, -1, -1, -1, 977, -1, -1, 3576 980, -1, 982, -1, -1, 36, -1, 38, -1, -1, 3577 -1, -1, -1, -1, 1287, 1288, -1, -1, -1, 999, 3578 -1, -1, 111, -1, -1, -1, -1, -1, 59, -1, 3579 -1, -1, -1, -1, 65, -1, 1016, 1118, 69, -1, 3580 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3581 -1, 1324, -1, -1, -1, -1, 87, -1, -1, 1039, 3582 -1, 1041, -1, -1, -1, -1, -1, -1, -1, -1, 3583 101, -1, 103, -1, -1, -1, 1056, -1, -1, 110, 3584 111, 112, 113, 114, 115, -1, -1, 1168, -1, -1, 3585 -1, -1, -1, -1, -1, 1075, -1, -1, -1, -1, 3586 -1, -1, 1183, 1184, -1, -1, -1, -1, 1088, -1, 3587 -1, -1, 0, 1386, -1, 3, 4, 5, 6, 7, 3588 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3589 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3590 1413, 29, 30, 31, 32, -1, 1126, 35, -1, 37, 3591 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3592 -1, 36, -1, 38, -1, -1, -1, 1147, -1, 57, 3593 -1, -1, 60, -1, 62, -1, 64, 65, -1, 67, 3594 68, 69, -1, -1, 59, 1165, -1, 1167, 76, 77, 3595 65, -1, -1, -1, 69, -1, -1, 72, 73, 74, 3596 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3597 -1, -1, 87, 101, -1, 103, -1, -1, -1, -1, 3598 1493, -1, -1, 111, -1, -1, 101, -1, 103, -1, 3599 -1, -1, 1212, -1, -1, 110, 111, 112, 113, 114, 3600 115, 1514, 1515, -1, -1, -1, -1, 1227, -1, -1, 3601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3602 -1, -1, 1535, -1, -1, -1, -1, -1, -1, -1, 3603 1250, -1, -1, 3, 4, 5, 6, 7, 8, 9, 3604 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3605 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3606 30, 31, 32, -1, -1, 35, 36, 37, 38, 39, 3607 -1, 41, -1, -1, 44, 45, 46, 47, 48, 49, 3608 50, 51, -1, 53, -1, -1, 56, 57, -1, 59, 3609 60, -1, 62, -1, 64, 65, 1417, 67, 68, 69, 3610 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3611 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3613 -1, 101, -1, 103, -1, -1, 106, -1, -1, -1, 3614 110, 111, 112, 113, 114, 115, -1, -1, -1, -1, 3615 -1, -1, -1, -1, 124, -1, -1, -1, -1, 1480, 3616 1481, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3618 -1, -1, 1402, -1, -1, -1, -1, -1, 3, 4, 3659 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3660 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 3661 112, 113, 114, 115, 1405, -1, -1, -1, -1, -1, 3662 -1, -1, 124, -1, -1, -1, -1, -1, 3, 4, 3619 3663 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3620 3664 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3621 3665 25, 26, -1, -1, 29, 30, 31, 32, -1, -1, 3622 35, 36, 37, 38, 10, 11, 12, 13, 14, 15, 3666 35, 36, 37, 38, -1, -1, -1, -1, -1, 892, 3667 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3668 36, -1, 38, -1, 59, 60, -1, 62, 1479, 64, 3669 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3670 75, 76, 77, 59, 79, 80, -1, -1, -1, 65, 3671 -1, -1, 87, 69, -1, -1, 72, 73, 74, 75, 3672 76, 77, -1, 79, 80, -1, 101, -1, 103, -1, 3673 -1, 87, -1, -1, 1525, 110, 111, 112, 113, 114, 3674 115, -1, -1, -1, -1, 101, -1, 103, -1, 124, 3675 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3676 -1, -1, -1, -1, -1, -1, 989, -1, -1, -1, 3677 -1, -1, -1, -1, -1, -1, 999, 3, 4, 5, 3678 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3623 3679 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3624 26, 27, -1, -1, 59, 60, -1, 62, -1, 64, 3625 65, 37, 67, 68, 69, -1, 1476, 72, 73, 74, 3626 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3627 -1, -1, 87, -1, 60, -1, -1, -1, -1, -1, 3628 -1, -1, -1, -1, -1, 71, 101, -1, 103, -1, 3629 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3630 115, -1, 1522, -1, -1, -1, -1, -1, -1, 124, 3631 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3632 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3633 23, 24, 25, 26, -1, -1, 29, 30, 31, 32, 3634 -1, -1, 35, 36, 37, 38, 10, 11, 12, 13, 3680 26, -1, -1, 29, 30, 31, 32, -1, -1, 35, 3681 36, 37, 38, -1, -1, -1, -1, -1, -1, -1, 3682 -1, -1, -1, -1, 1047, -1, -1, -1, -1, 36, 3683 -1, 38, -1, 59, 60, -1, 62, -1, 64, 65, 3684 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75, 3685 76, 77, 59, 79, 80, -1, -1, -1, 65, -1, 3686 -1, 87, 69, -1, -1, 72, 73, 74, 75, 76, 3687 77, -1, 79, 80, -1, 101, -1, 103, -1, -1, 3688 87, -1, -1, -1, 110, 111, 112, 113, 114, 115, 3689 -1, -1, -1, -1, 101, -1, 103, -1, 1121, -1, 3690 -1, -1, -1, 110, 111, 112, 113, 114, 115, -1, 3691 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3635 3692 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3636 24, 25, 26, 27, -1, -1, 59, 60, -1, 62, 3637 -1, 64, 65, 37, 67, 68, 69, -1, -1, 72, 3638 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3639 -1, -1, -1, -1, 87, -1, 60, -1, -1, -1, 3640 -1, -1, -1, -1, -1, -1, -1, 71, 101, -1, 3641 103, -1, -1, -1, -1, -1, -1, 110, 111, 112, 3642 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 3643 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3644 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3645 31, -1, -1, -1, -1, 36, 37, 38, -1, -1, 3693 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3694 -1, -1, 36, 37, 38, -1, -1, -1, 1171, -1, 3646 3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3648 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 3649 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3650 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3696 -1, -1, -1, 1186, 1187, 59, 60, -1, 62, -1, 3697 64, 65, -1, 67, 68, 69, -1, -1, 72, 73, 3698 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 3699 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3701 104, -1, -1, -1, 108, -1, 110, 111, 112, 113, 3702 114, 115, 4, 5, 6, 7, 8, 9, 10, 11, 3703 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3704 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3705 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1, 3651 3706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3652 101, -1, 103, 104, -1, -1, -1, 108, -1, 110, 3653 111, 112, 113, 114, 115, 4, 5, 6, 7, 8, 3707 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3708 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3709 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3710 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3712 -1, 103, 104, -1, -1, -1, 108, -1, 110, 111, 3713 112, 113, 114, 115, -1, 4, 5, 6, 7, 8, 3654 3714 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3655 3715 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, … … 3657 3717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3658 3718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3659 59, 60, -1, 62, -1, 64, 65, -1, 67, 68,3719 59, 60, -1, 62, -1, 64, 65, 1420, 67, 68, 3660 3720 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3661 3721 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3662 3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3663 3723 -1, -1, 101, -1, 103, 104, -1, -1, -1, 108, 3664 -1, 110, 111, 112, 113, 114, 115, 4, 5, 6, 3665 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3666 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3667 -1, -1, 29, 30, 31, -1, -1, -1, -1, 36, 3668 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3724 -1, 110, 111, 112, 113, 114, 115, -1, -1, -1, 3669 3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3670 -1, -1, 59, 60, -1, 62, -1, 64, 65, -1, 3671 67, 68, 69, -1, -1, 72, 73, 74, 75, 76, 3672 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 3673 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3674 -1, -1, -1, -1, 101, -1, 103, 104, -1, -1, 3675 -1, 108, -1, 110, 111, 112, 113, 114, 115, 4, 3726 1483, 1484, 4, 5, 6, 7, 8, 9, 10, 11, 3727 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3728 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 3729 -1, -1, -1, -1, 36, 37, 38, -1, -1, -1, 3730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731 -1, -1, -1, -1, -1, -1, -1, 59, 60, -1, 3732 62, -1, 64, 65, -1, 67, 68, 69, -1, -1, 3733 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 3734 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3736 -1, 103, 104, -1, -1, -1, -1, -1, 110, 111, 3737 112, 113, 114, 115, 4, 5, 6, 7, 8, 9, 3738 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3739 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3740 30, 31, -1, -1, -1, -1, 36, 37, 38, -1, 3741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, 3743 60, -1, 62, -1, 64, 65, -1, 67, 68, 69, 3744 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 3745 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 3746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, 101, -1, 103, -1, -1, -1, -1, -1, -1, 3748 110, 111, 112, 113, 114, 115, 4, 5, 6, 7, 3749 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3750 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3751 -1, 29, 30, 31, -1, -1, -1, -1, 36, 37, 3752 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3754 -1, 59, 60, -1, 62, -1, 64, 65, -1, 67, 3755 68, 69, -1, -1, 72, 73, 74, 75, 76, 77, 3756 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 3757 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, 101, -1, 103, -1, -1, -1, -1, 3759 -1, -1, 110, 111, 112, 113, 114, 115, 3, 4, 3676 3760 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3677 3761 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3678 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,3679 -1, 36, 37, 38, -1, -1, -1, -1, -1, -1,3762 25, 26, -1, -1, 29, 30, 31, 32, -1, -1, 3763 35, -1, 37, 38, -1, -1, -1, -1, -1, -1, 3680 3764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, -1, -1, 59, 60, -1, 62, -1, 64, 3682 65, -1, 67, 68, 69, -1, -1, 72, 73, 74, 3683 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 3684 -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, 101, -1, 103, 104, 3686 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 3687 115, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3688 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3689 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 3690 -1, -1, -1, 36, 37, 38, -1, -1, -1, -1, 3765 -1, -1, 57, -1, -1, 60, -1, 62, -1, 64, 3766 65, -1, 67, 68, 69, -1, -1, -1, -1, -1, 3767 -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, 3691 3768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, 59, 60, -1, 62, 3693 -1, 64, 65, -1, 67, 68, 69, -1, -1, 72, 3694 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 3695 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 3696 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 3697 103, 104, -1, -1, -1, -1, -1, 110, 111, 112, 3698 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 3699 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3700 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3701 31, -1, -1, -1, -1, 36, 37, 38, -1, -1, 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703 -1, -1, -1, -1, -1, -1, -1, -1, 59, 60, 3704 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 3705 -1, 72, 73, 74, 75, 76, 77, -1, 79, 80, 3706 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 3707 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3708 101, -1, 103, -1, -1, -1, -1, -1, -1, 110, 3709 111, 112, 113, 114, 115, 4, 5, 6, 7, 8, 3710 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3711 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3712 29, 30, 31, -1, -1, -1, -1, 36, 37, 38, 3713 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3714 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3715 59, 60, -1, 62, -1, 64, 65, -1, 67, 68, 3716 69, -1, -1, 72, 73, 74, 75, 76, 77, -1, 3717 79, 80, -1, -1, -1, -1, -1, -1, 87, -1, 3718 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3719 -1, -1, 101, -1, 103, -1, -1, -1, -1, -1, 3720 -1, 110, 111, 112, 113, 114, 115, 3, 4, 5, 3721 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3722 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3723 26, -1, -1, 29, 30, 31, 32, -1, -1, 35, 3724 -1, 37, 38, -1, -1, -1, -1, -1, -1, -1, 3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3726 -1, 57, -1, -1, 60, -1, 62, -1, 64, 65, 3727 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1, 3728 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3730 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3731 -1, 107, -1, -1, -1, 111, 3, 4, 5, 6, 3732 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3733 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3734 -1, -1, 29, 30, 31, 32, -1, -1, 35, -1, 3735 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3737 57, -1, -1, 60, -1, 62, -1, 64, 65, -1, 3738 67, 68, 69, -1, -1, -1, -1, -1, -1, 76, 3739 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3741 -1, -1, -1, -1, 101, -1, 103, -1, -1, -1, 3742 -1, -1, -1, -1, 111, 3, 4, 5, 6, 7, 3743 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3744 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3745 -1, 29, 30, 31, 32, -1, -1, 35, -1, 37, 3746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3748 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 3749 68, -1, -1, 71, 3, 4, 5, 6, 7, 8, 3750 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3751 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3752 29, 30, 31, 32, -1, 103, 35, -1, 37, -1, 3753 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3754 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3755 -1, 60, -1, 62, -1, 64, -1, -1, 67, 68, 3756 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3757 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3758 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 3759 -1, -1, -1, 37, 103, -1, -1, -1, -1, -1, 3760 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3761 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 3762 64, 65, -1, 67, 68, 69, -1, -1, -1, -1, 3763 -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, 3764 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3765 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 3766 -1, -1, -1, -1, -1, -1, -1, 111, 4, 5, 3769 -1, -1, -1, -1, -1, -1, 101, -1, 103, -1, 3770 -1, -1, -1, -1, -1, -1, 111, 3, 4, 5, 3767 3771 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3768 3772 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, … … 3770 3774 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3771 3775 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3776 -1, -1, -1, -1, 60, -1, 62, -1, 64, 65, 3777 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1, 3778 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, 3779 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3780 -1, -1, -1, -1, -1, 101, -1, 103, -1, -1, 3781 -1, -1, -1, -1, -1, 111, 3, 4, 5, 6, 3782 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3783 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3784 27, -1, 29, 30, 31, 32, -1, -1, 35, -1, 3785 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3787 -1, -1, -1, 60, -1, 62, -1, 64, -1, -1, 3788 67, 68, -1, -1, 71, 3, 4, 5, 6, 7, 3789 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3790 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3791 -1, 29, 30, 31, 32, -1, 103, 35, -1, 37, 3792 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3794 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 3795 68, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3796 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3797 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 3798 31, -1, -1, -1, -1, 103, 37, -1, -1, -1, 3799 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3801 -1, 62, -1, 64, -1, -1, 67, 68, 4, 5, 3802 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3803 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3804 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3805 -1, 37, 103, -1, -1, -1, -1, -1, -1, -1, 3806 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3772 3807 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 3773 3808 -1, 67, 68, 4, 5, 6, 7, 8, 9, 10, … … 3910 3945 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3911 3946 -1, 103, -1, -1, -1, -1, -1, -1, 110, 111, 3912 112, 113, 114, 115, 3, 4, 5, 6, 7, 8, 3913 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3914 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3915 29, 30, 31, -1, -1, -1, -1, -1, 37, 10, 3916 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3917 21, 22, 23, 24, 25, 26, 27, -1, 29, 30, 3918 31, 60, -1, 62, -1, 64, 37, -1, 67, 68, 3947 112, 113, 114, 115, 10, 11, 12, 13, 14, 15, 3948 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3949 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 3950 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 3919 3951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 3921 -1, -1, -1, -1, 65, -1, 67, 68, 69, -1, 3922 71, -1, -1, -1, -1, 76, 77, 106, 10, 11, 3923 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3924 22, 23, 24, 25, 26, 27, -1, 29, 30, 31, 3925 101, -1, 103, -1, -1, 37, -1, -1, -1, -1, 3926 111, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3927 19, 20, 21, 22, 23, 24, 25, 26, 60, -1, 3928 29, 30, 31, 65, -1, 67, 68, 69, 37, 71, 3929 -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, 3952 -1, -1, -1, -1, 60, -1, -1, -1, -1, 65, 3953 -1, 67, 68, 69, -1, -1, -1, -1, -1, -1, 3954 76, 77, 10, 11, 12, 13, 14, 15, 16, 17, 3955 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 3956 -1, 29, 30, 31, -1, 101, -1, 103, -1, 37, 3957 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3930 3958 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3931 -1, 60, -1, -1, -1, -1, 65, -1, 67, 68,3932 6 9, 103, -1, -1, -1, -1, -1, 76, 77, 111,3959 -1, -1, 60, -1, -1, -1, -1, 65, -1, 67, 3960 68, 69, -1, -1, -1, -1, -1, -1, 76, 77, 3933 3961 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3934 3962 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3935 30, 31, 101, -1, 103, -1, -1, 37, -1, -1,3936 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,3963 30, 31, -1, 101, -1, 103, -1, 37, -1, -1, 3964 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3937 3965 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3938 3966 60, -1, -1, -1, -1, 65, -1, 67, 68, 69, … … 3959 3987 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16, 3960 3988 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3961 27, -1, 29, 30, 31, -1, -1, -1, -1, -1,3962 37, -1, -1, -1, -1, -1, -1, 103, -1, -1,3963 -1, 107, -1, -1, -1, 111, -1, -1, -1, -1,3964 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1,3965 67, 68, -1, -1, 71, 10, 11, 12, 13, 14,3966 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,3967 25, 26, -1, -1, 29, 30, 31, -1, -1, -1,3968 -1, -1, 37, 38, -1, -1, 103, -1, -1, -1,3969 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1,3970 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1,3971 -1, -1, 67, 68, 10, 11, 12, 13, 14, 15,3972 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,3973 26, -1, -1, 29, 30, 31, -1, -1, -1, -1,3974 -1, 37, 38, -1, -1, -1, -1, -1, 103, -1,3975 -1, -1, 107, -1, -1, -1, 111, -1, -1, -1,3976 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1,3977 -1, 67, 68, 10, 11, 12, 13, 14, 15, 16,3978 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,3979 3989 -1, -1, 29, 30, 31, -1, -1, -1, -1, -1, 3980 3990 37, 38, -1, -1, -1, -1, -1, 103, -1, -1, … … 3989 3999 68, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3990 4000 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 3991 29, 30, 31, -1, -1, -1, -1, -1, 37, -1,4001 29, 30, 31, -1, -1, -1, -1, -1, 37, 38, 3992 4002 -1, -1, -1, -1, -1, 103, -1, -1, -1, 107, 3993 4003 -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, 3994 -1, 60, -1, -1, -1, -1, 65, -1, 67, 68,4004 -1, 60, -1, -1, -1, -1, -1, -1, 67, 68, 3995 4005 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3996 4006 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 3997 4007 30, 31, -1, -1, -1, -1, -1, 37, 38, -1, 3998 -1, -1, -1, -1, 103, -1, -1, -1, -1, -1,4008 -1, -1, -1, -1, 103, -1, -1, -1, 107, -1, 3999 4009 -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, 4000 4010 60, -1, -1, -1, -1, -1, -1, 67, 68, 10, … … 4002 4012 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 4003 4013 31, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4004 -1, -1, -1, 103, -1, -1, -1, -1, -1, -1,4014 -1, -1, -1, 103, -1, -1, -1, 107, -1, -1, 4005 4015 -1, 111, -1, -1, -1, -1, -1, -1, -1, 60, 4006 -1, -1, -1, -1, -1, -1, 67, 68, 10, 11,4016 -1, -1, -1, -1, 65, -1, 67, 68, 10, 11, 4007 4017 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4008 4018 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 4009 -1, -1, -1, -1, -1, 37, -1, -1, -1, -1,4010 101, -1, 103, -1, -1, -1, -1, -1, -1, -1,4019 -1, -1, -1, -1, -1, 37, 38, -1, -1, -1, 4020 -1, -1, 103, -1, -1, -1, -1, -1, -1, -1, 4011 4021 111, -1, -1, -1, -1, -1, -1, -1, 60, -1, 4012 4022 -1, -1, -1, -1, -1, 67, 68, 10, 11, 12, 4013 4023 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4014 4024 23, 24, 25, 26, -1, -1, 29, 30, 31, -1, 4015 -1, -1, -1, -1, 37, -1, -1, -1, -1, 101,4025 -1, -1, -1, -1, 37, -1, -1, -1, -1, -1, 4016 4026 -1, 103, -1, -1, -1, -1, -1, -1, -1, 111, 4017 4027 -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, … … 4019 4029 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4020 4030 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 4021 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1,4031 -1, -1, -1, 37, -1, -1, -1, -1, 101, -1, 4022 4032 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, 4023 4033 -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, … … 4025 4035 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4026 4036 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 4027 -1, -1, 37, -1, -1, -1, -1, -1, -1, 103,4037 -1, -1, 37, -1, -1, -1, -1, 101, -1, 103, 4028 4038 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 4029 4039 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, … … 4075 4085 -1, 103, -1, -1, -1, -1, -1, -1, -1, 111, 4076 4086 -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 4077 -1, -1, -1, -1, 67, 68, 4, 5, 6, 7, 4078 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 4087 -1, -1, -1, -1, 67, 68, 10, 11, 12, 13, 4088 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4089 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 4090 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 4091 103, -1, -1, -1, -1, -1, -1, -1, 111, -1, 4092 -1, -1, -1, -1, -1, -1, 60, -1, -1, -1, 4093 -1, -1, -1, 67, 68, 10, 11, 12, 13, 14, 4094 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4095 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 4096 -1, -1, 37, -1, -1, -1, -1, -1, -1, 103, 4097 -1, -1, -1, -1, -1, -1, -1, 111, -1, -1, 4098 -1, -1, -1, -1, -1, 60, -1, -1, -1, -1, 4099 -1, -1, 67, 68, 10, 11, 12, 13, 14, 15, 4100 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4101 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4102 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 4103 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 4104 -1, -1, -1, -1, 60, -1, -1, -1, -1, -1, 4105 -1, 67, 68, 4, 5, 6, 7, 8, 9, 10, 4106 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4107 21, 22, 23, 24, 25, 26, -1, -1, 29, 30, 4108 31, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4109 -1, -1, -1, -1, -1, 111, -1, -1, -1, -1, 4110 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 4111 -1, 62, -1, 64, -1, -1, 67, 68, -1, 36, 4112 -1, 38, 39, -1, 41, -1, -1, 44, 45, 46, 4113 47, 48, 49, 50, 51, -1, 53, -1, -1, 56, 4114 57, -1, 59, -1, -1, -1, -1, -1, 65, -1, 4115 -1, 102, 69, -1, -1, 72, 73, 74, 75, 76, 4116 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 4117 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4118 -1, -1, -1, -1, 101, -1, 103, -1, -1, 106, 4119 -1, -1, -1, 110, 111, 112, 113, 114, 115, -1, 4120 -1, -1, -1, -1, -1, -1, -1, 124, 4, 5, 4121 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4122 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4123 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4124 -1, 37, 10, 11, 12, 13, 14, 15, 16, 17, 4079 4125 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 4080 -1, 29, 30, 31, -1, -1, -1, -1, -1, 37, 4081 -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, 4082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4083 -1, -1, 60, -1, 62, -1, 64, -1, -1, 67, 4084 68, -1, 36, -1, 38, 39, -1, 41, -1, -1, 4085 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 4086 -1, -1, 56, 57, -1, 59, -1, -1, -1, -1, 4087 -1, 65, -1, -1, 102, 69, -1, -1, 72, 73, 4088 74, 75, 76, 77, -1, 79, 80, -1, -1, -1, 4089 -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 4090 -1, -1, -1, -1, -1, -1, -1, 101, -1, 103, 4091 -1, -1, 106, -1, -1, -1, 110, 111, 112, 113, 4092 114, 115, -1, 36, -1, 38, 39, -1, 41, -1, 4093 124, 44, 45, 46, 47, 48, 49, 50, 51, -1, 4094 53, -1, -1, 56, 57, -1, 59, -1, -1, -1, 4095 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 4096 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 4097 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 4098 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 4099 103, -1, -1, 106, -1, -1, -1, 110, 111, 112, 4100 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, 4101 -1, 124, 4, 5, 6, 7, 8, 9, 10, 11, 4102 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4103 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 4104 -1, -1, -1, -1, -1, 37, 10, 11, 12, 13, 4105 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4106 24, 25, 26, -1, -1, 29, 30, 31, 60, -1, 4107 62, -1, 64, 37, -1, 67, 68, -1, 36, -1, 4108 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 4109 48, 49, 50, 51, 52, 53, 60, 89, 56, 57, 4110 -1, 59, -1, 67, 68, -1, -1, 65, -1, -1, 4111 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 4112 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 4113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4114 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1, 4115 -1, -1, 110, 111, 112, 113, 114, 115, 36, -1, 4116 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 4117 48, 49, 50, 51, -1, 53, -1, -1, 56, 57, 4118 -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, 4119 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 4120 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 4121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4122 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1, 4123 -1, -1, 110, 111, 112, 113, 114, 115, 36, -1, 4124 38, 39, -1, 41, -1, -1, 44, 45, 46, 47, 4125 48, 49, 50, 51, -1, 53, -1, -1, 56, 57, 4126 -1, 59, -1, -1, -1, -1, -1, 65, -1, -1, 4126 -1, 29, 30, 31, 60, -1, 62, -1, 64, 37, 4127 -1, 67, 68, -1, 36, -1, 38, 39, -1, 41, 4128 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4129 52, 53, 60, 89, 56, 57, -1, 59, -1, 67, 4130 68, -1, -1, 65, -1, -1, -1, 69, -1, -1, 4131 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 4132 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 4133 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 4134 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 4135 112, 113, 114, 115, 36, -1, 38, 39, -1, 41, 4136 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4137 -1, 53, -1, -1, 56, 57, -1, 59, -1, -1, 4138 -1, -1, -1, 65, -1, -1, -1, 69, -1, -1, 4139 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 4140 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 4141 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 4142 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 4143 112, 113, 114, 115, 36, -1, 38, 39, -1, 41, 4144 -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 4145 -1, 53, -1, -1, 56, 57, -1, 59, -1, -1, 4146 -1, -1, -1, 65, -1, -1, -1, 69, -1, -1, 4147 72, 73, 74, 75, 76, 77, -1, 79, 80, -1, 4148 -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 4149 -1, 36, -1, 38, -1, -1, -1, -1, -1, 101, 4150 -1, 103, -1, -1, 106, -1, -1, -1, 110, 111, 4151 112, 113, 114, 115, 59, -1, -1, -1, -1, -1, 4152 65, -1, -1, -1, 69, -1, -1, 72, 73, 74, 4153 75, 76, 77, -1, 79, 80, -1, -1, -1, -1, 4154 -1, -1, 87, -1, -1, -1, -1, -1, 36, -1, 4155 38, -1, -1, -1, -1, -1, 101, -1, 103, -1, 4156 -1, -1, -1, -1, -1, 110, 111, 112, 113, 114, 4157 115, 59, -1, -1, -1, -1, -1, 65, -1, -1, 4127 4158 -1, 69, -1, -1, 72, 73, 74, 75, 76, 77, 4128 4159 -1, 79, 80, -1, -1, -1, -1, -1, -1, 87, 4129 4160 -1, -1, -1, -1, -1, 36, -1, 38, -1, -1, 4130 -1, -1, -1, 101, -1, 103, -1, -1, 106, -1,4161 -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, 4131 4162 -1, -1, 110, 111, 112, 113, 114, 115, 59, -1, 4132 4163 -1, -1, -1, -1, 65, -1, -1, -1, 69, -1, … … 4134 4165 -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, 4135 4166 -1, -1, 36, -1, 38, -1, -1, -1, -1, -1, 4136 101, -1, 103, -1, -1, -1, -1, -1, -1, 110,4167 101, -1, -1, -1, -1, -1, -1, -1, -1, 110, 4137 4168 111, 112, 113, 114, 115, 59, -1, -1, -1, -1, 4138 4169 -1, 65, -1, -1, -1, 69, -1, -1, 72, 73, … … 4144 4175 -1, -1, 69, -1, -1, 72, 73, 74, 75, 76, 4145 4176 77, -1, 79, 80, -1, -1, -1, -1, -1, -1, 4146 87, -1, -1, -1, -1, -1, 36, -1, 38, -1,4177 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4147 4178 -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, 4148 -1, -1, -1, 110, 111, 112, 113, 114, 115, 59, 4149 -1, -1, -1, -1, -1, 65, -1, -1, -1, 69, 4150 -1, -1, 72, 73, 74, 75, 76, 77, -1, 79, 4151 80, -1, -1, -1, -1, -1, -1, 87, -1, -1, 4152 -1, -1, -1, 36, -1, 38, -1, -1, -1, -1, 4153 -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, 4154 110, 111, 112, 113, 114, 115, 59, -1, -1, -1, 4155 -1, -1, 65, -1, -1, -1, 69, -1, -1, 72, 4156 73, 74, 75, 76, 77, -1, 79, 80, -1, -1, 4157 -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, 4158 -1, -1, -1, -1, -1, -1, -1, -1, 101, -1, 4159 -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, 4160 113, 114, 115, 4, 5, 6, 7, 8, 9, 10, 4161 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 4162 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, 4163 -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, 4179 -1, -1, -1, 110, 111, 112, 113, 114, 115, 4, 4180 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4181 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4182 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, 4183 -1, -1, 37, -1, -1, -1, -1, -1, -1, -1, 4164 4184 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4165 -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, 4166 -1, 62, -1, 64, 65, -1, 67, 68, 69, -1, 4167 -1, -1, -1, -1, -1, 76, 77, 3, 4, 5, 4168 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4169 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4170 26, -1, -1, 29, 30, 31, -1, -1, -1, -1, 4171 -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, 4172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4173 -1, -1, -1, -1, 60, -1, 62, -1, 64, -1, 4174 -1, 67, 68, 3, 4, 5, 6, 7, 8, 9, 4185 -1, -1, -1, -1, -1, 60, -1, 62, -1, 64, 4186 65, -1, 67, 68, 69, -1, -1, -1, -1, -1, 4187 -1, 76, 77, 3, 4, 5, 6, 7, 8, 9, 4175 4188 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4176 4189 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, … … 4178 4191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4179 4192 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4180 60, -1, 62, -1, 64, -1, -1, 67, 68, 4, 4181 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4182 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4183 25, 26, -1, -1, 29, 30, 31, -1, -1, -1, 4184 -1, -1, 37, 10, 11, 12, 13, 14, 15, 16, 4185 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4186 -1, -1, 29, 30, 31, 60, -1, 62, -1, 64, 4187 37, -1, 67, 68, -1, -1, -1, -1, -1, -1, 4193 60, -1, 62, -1, 64, -1, -1, 67, 68, 3, 4194 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4195 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4196 24, 25, 26, -1, -1, 29, 30, 31, -1, -1, 4197 -1, -1, -1, 37, -1, -1, -1, -1, -1, -1, 4188 4198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4189 -1, -1, -1, 60, -1, -1, -1, -1, -1, -1, 4190 67, 68 4199 -1, -1, -1, -1, -1, -1, 60, -1, 62, -1, 4200 64, -1, -1, 67, 68, 4, 5, 6, 7, 8, 4201 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4202 19, 20, 21, 22, 23, 24, 25, 26, -1, -1, 4203 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 4204 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4206 -1, 60, -1, 62, -1, 64, -1, -1, 67, 68, 4207 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4208 20, 21, 22, 23, 24, 25, 26, -1, -1, 29, 4209 30, 31, 32, 33, 34, -1, -1, 37, 10, 11, 4210 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4211 22, 23, 24, 25, 26, -1, -1, 29, 30, 31, 4212 60, -1, -1, -1, -1, 37, -1, 67, 68, -1, 4213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4214 -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, 4215 -1, -1, -1, -1, -1, 67, 68 4191 4216 }; 4192 4217 … … 4208 4233 204, 206, 214, 216, 226, 230, 232, 271, 75, 101, 4209 4234 298, 299, 300, 298, 298, 65, 67, 68, 69, 130, 4210 131, 260, 261, 280, 281, 67, 68, 261, 101, 291,4211 21 5, 216, 101, 111, 305, 310, 311, 312, 314, 315,4212 316, 126, 103, 207, 214, 216, 309, 313, 352, 353,4213 35 6, 357, 127, 123, 264, 106, 127, 164, 67, 68,4214 129, 259, 127, 127, 127, 108, 127, 67, 101, 111,4215 295, 304, 305, 306, 307, 308, 309, 313, 317, 318,4216 3 19, 320, 321, 3, 27, 71, 228, 3, 5, 67,4217 68, 103, 111, 206, 217, 221, 224, 233, 309, 313,4218 356, 204, 206, 216, 226, 230, 232, 271, 309, 313,4219 32, 222, 222, 217, 224, 127, 222, 217, 222, 217,4235 131, 260, 261, 280, 281, 67, 261, 101, 291, 215, 4236 216, 101, 111, 305, 310, 311, 312, 314, 315, 316, 4237 126, 103, 207, 214, 216, 309, 313, 352, 353, 356, 4238 357, 127, 123, 264, 106, 127, 164, 67, 68, 129, 4239 259, 127, 127, 127, 108, 127, 67, 101, 111, 295, 4240 304, 305, 306, 307, 308, 309, 313, 317, 318, 319, 4241 320, 321, 3, 27, 71, 228, 3, 5, 67, 68, 4242 103, 111, 206, 217, 221, 224, 233, 309, 313, 356, 4243 204, 206, 216, 226, 230, 232, 271, 309, 313, 32, 4244 222, 222, 217, 224, 127, 222, 217, 222, 217, 68, 4220 4245 101, 106, 261, 106, 261, 222, 217, 108, 127, 127, 4221 4246 0, 126, 101, 164, 298, 298, 126, 103, 214, 216, … … 4238 4263 214, 216, 101, 126, 214, 352, 357, 164, 126, 259, 4239 4264 264, 206, 221, 309, 313, 164, 126, 280, 216, 226, 4240 124, 216, 216, 1 26, 38, 103, 214, 236, 237, 238,4241 23 9, 352, 356, 106, 245, 261, 106, 216, 280, 124,4242 124, 291, 126, 131, 258, 3, 127, 196, 197, 211,4243 21 3, 216, 126, 297, 101, 297, 155, 305, 216, 101,4244 1 26, 259, 106, 32, 33, 34, 214, 272, 273, 275,4245 126, 121, 123, 277, 126, 217, 223, 224, 259, 301,4246 30 2, 303, 140, 153, 154, 101, 140, 142, 101, 140,4247 1 01, 101, 140, 140, 131, 103, 155, 160, 164, 214,4248 2 62, 352, 126, 142, 142, 75, 78, 79, 80, 101,4249 10 3, 105, 90, 91, 92, 93, 94, 95, 96, 97,4250 9 8, 99, 123, 159, 142, 111, 116, 117, 113, 114,4251 81, 82, 83, 84, 118, 119, 85, 86, 112, 120,4252 12 1, 87, 88, 122, 123, 359, 101, 111, 331, 332,4253 33 3, 334, 335, 102, 108, 101, 335, 103, 336, 101,4254 335, 336, 126, 103, 111, 127, 214, 216, 347, 348,4255 3 56, 357, 104, 127, 67, 101, 103, 111, 305, 322,4256 32 3, 324, 325, 326, 327, 328, 329, 330, 336, 337,4257 33 8, 339, 340, 341, 342, 111, 356, 216, 127, 127,4258 1 11, 214, 216, 349, 259, 214, 336, 349, 259, 127,4259 12 6, 126, 126, 126, 65, 103, 105, 261, 265, 266,4260 26 7, 268, 269, 126, 126, 126, 126, 126, 126, 295,4261 102, 102, 102, 102, 102, 102, 102, 304, 317, 101,4262 264, 126, 196, 126, 295, 160, 263, 160, 263, 295,4263 2 78, 103, 127, 196, 297, 164, 126, 196, 214, 272,4264 2 78, 238, 239, 126, 101, 109, 111, 240, 242, 304,4265 305, 317, 335, 343, 344, 345, 346, 107, 237, 108,4266 124, 108, 124, 261, 236, 108, 358, 123, 246, 245,4267 2 16, 251, 252, 253, 256, 257, 102, 108, 164, 126,4268 1 11, 155, 126, 213, 216, 250, 348, 356, 289, 290,4269 101, 111, 322, 102, 108, 359, 261, 272, 101, 106,4270 261, 263, 272, 102, 108, 101, 102, 109, 262, 262,4271 103, 131, 137, 155, 263, 262, 126, 102, 108, 102,4272 10 1, 111, 343, 102, 108, 127, 155, 103, 131, 103,4273 13 6, 137, 126, 103, 131, 155, 155, 142, 142, 142,4274 14 3, 143, 144, 144, 145, 145, 145, 145, 146, 146,4275 14 7, 148, 149, 150, 151, 109, 160, 155, 126, 332,4276 333, 334, 216, 331, 298, 298, 155, 263, 126, 126,4277 258, 127, 216, 220, 126, 104, 356, 67, 129, 214,4278 336, 354, 104, 101, 126, 305, 323, 324, 325, 328,4279 3 38, 339, 340, 126, 216, 322, 326, 337, 101, 298,4280 341, 359, 298, 298, 359, 101, 298, 341, 298, 298,4281 298, 298, 336, 214, 347, 357, 259, 104, 108, 104,4282 108, 359, 214, 349, 359, 104, 247, 248, 249, 250,4283 24 7, 259, 127, 155, 126, 103, 261, 109, 108, 358,4284 265, 103, 109, 269, 28, 198, 199, 259, 247, 131,4285 2 95, 131, 297, 101, 335, 336, 101, 335, 336, 133,4286 111, 127, 164, 251, 102, 102, 102, 102, 102, 126,4287 10 4, 164, 196, 164, 101, 111, 127, 127, 124, 124,4288 1 03, 127, 305, 344, 345, 346, 154, 216, 343, 241,4289 2 42, 241, 298, 298, 261, 298, 107, 261, 107, 154,4290 358, 127, 127, 131, 211, 127, 127, 247, 101, 111,4291 356, 127, 107, 216, 273, 274, 127, 126, 126, 101,4292 12 7, 102, 302, 160, 161, 124, 75, 190, 191, 192,4293 1 02, 102, 126, 109, 102, 102, 102, 127, 155, 216,4294 1 06, 142, 157, 155, 156, 158, 104, 108, 127, 126,4295 1 26, 102, 108, 155, 126, 153, 109, 251, 102, 102,4296 102, 331, 251, 102, 104, 103, 111, 155, 155, 216,4297 1 27, 101, 101, 214, 354, 328, 251, 102, 102, 102,4298 102, 102, 102, 102, 7, 127, 216, 322, 326, 337,4299 126, 126, 359, 126, 126, 101, 127, 127, 127, 127,4300 264, 104, 127, 153, 154, 155, 296, 126, 265, 267,4301 1 07, 126, 200, 261, 38, 39, 41, 44, 45, 46,4302 4 7, 48, 49, 50, 51, 53, 56, 103, 131, 161,4303 1 62, 163, 164, 165, 166, 168, 169, 181, 183, 184,4304 18 9, 201, 294, 28, 127, 123, 264, 126, 126, 102,4305 1 04, 127, 127, 67, 164, 216, 102, 102, 126, 104,4306 102, 1 02, 102, 343, 240, 246, 107, 102, 108, 104,4307 10 4, 127, 216, 108, 359, 276, 102, 272, 204, 206,4308 2 14, 284, 285, 286, 287, 278, 102, 102, 101, 102,4309 10 9, 108, 155, 155, 104, 266, 108, 127, 158, 104,4310 1 31, 138, 139, 155, 137, 127, 138, 153, 157, 127,4311 1 01, 335, 336, 127, 214, 336, 349, 126, 127, 127,4312 12 7, 155, 104, 126, 126, 102, 127, 101, 335, 336,4313 101, 3 41, 101, 341, 336, 215, 104, 7, 111, 127,4314 155, 251, 251, 250, 254, 254, 255, 247, 102, 108,4315 108, 102, 104, 89, 115, 127, 127, 138, 265, 155,4316 1 08, 124, 201, 205, 216, 220, 101, 101, 162, 101,4317 101, 1 24, 131, 124, 131, 111, 131, 161, 101, 164,4318 1 24, 155, 126, 109, 124, 127, 126, 127, 200, 102,4319 1 55, 251, 251, 298, 336, 102, 104, 101, 106, 261,4320 261, 127, 101, 335, 336, 126, 102, 126, 127, 295,4321 1 07, 126, 127, 127, 102, 106, 154, 124, 190, 192,4322 1 08, 127, 358, 156, 104, 127, 78, 105, 108, 127,4323 1 27, 104, 127, 102, 126, 102, 214, 349, 104, 104,4324 104, 127, 247, 247, 102, 126, 126, 126, 155, 155,4325 12 7, 104, 127, 127, 127, 127, 102, 126, 126, 154,4326 1 54, 104, 104, 127, 127, 261, 216, 160, 160, 45,4327 160, 1 26, 124, 124, 160, 124, 124, 160, 54, 55,4328 1 85, 186, 187, 124, 127, 298, 166, 107, 124, 127,4329 1 27, 278, 236, 106, 104, 126, 89, 256, 257, 102,4330 2 85, 108, 124, 108, 124, 107, 283, 102, 102, 109,4331 1 58, 104, 107, 104, 103, 139, 103, 139, 139, 104,4332 1 04, 104, 251, 104, 127, 127, 251, 251, 251, 127,4333 127, 104, 104, 102, 102, 104, 108, 89, 250, 89,4334 127, 104, 104, 102, 102, 101, 102, 161, 182, 201,4335 1 24, 102, 101, 164, 187, 54, 104, 162, 102, 102,4336 1 02, 107, 236, 251, 106, 126, 126, 284, 124, 75,4337 193, 127, 109, 126, 126, 127, 102, 102, 127, 127,4338 1 27, 104, 104, 126, 127, 104, 162, 42, 43, 106,4339 172, 173, 174, 160, 162, 127, 102, 161, 106, 174,4340 89, 126, 101, 106, 261, 107, 127, 126, 259, 295,4341 1 07, 102, 108, 104, 155, 138, 138, 102, 102, 102,4342 102, 254, 40, 154, 170, 171, 296, 109, 126, 162,4343 1 72, 102, 124, 162, 124, 126, 102, 126, 89, 126,4344 236, 106, 102, 284, 124, 75, 109, 127, 127, 162,4345 89, 108, 109, 127, 194, 195, 201, 124, 161, 161,4346 1 94, 164, 188, 214, 352, 102, 126, 107, 236, 107,4347 1 55, 104, 104, 154, 170, 173, 175, 176, 126, 124,4348 17 3, 177, 178, 127, 101, 111, 295, 343, 131, 164,4349 188, 107, 101, 162, 167, 107, 173, 201, 161, 52,4350 167, 180, 107, 173, 102, 216, 127, 278, 162, 167,4351 124, 179, 180, 167, 180, 164, 102, 102, 179, 127,4352 1 64, 1274265 124, 216, 216, 101, 126, 38, 103, 214, 236, 237, 4266 238, 239, 352, 356, 106, 245, 261, 106, 216, 280, 4267 124, 124, 291, 126, 131, 258, 3, 127, 196, 197, 4268 211, 213, 216, 126, 297, 101, 297, 155, 305, 216, 4269 101, 126, 259, 106, 32, 33, 34, 214, 272, 273, 4270 275, 126, 121, 123, 277, 126, 217, 223, 224, 259, 4271 301, 302, 303, 140, 153, 154, 101, 140, 142, 101, 4272 140, 101, 101, 140, 140, 131, 103, 155, 160, 164, 4273 214, 262, 352, 126, 142, 142, 75, 78, 79, 80, 4274 101, 103, 105, 90, 91, 92, 93, 94, 95, 96, 4275 97, 98, 99, 123, 159, 142, 111, 116, 117, 113, 4276 114, 81, 82, 83, 84, 118, 119, 85, 86, 112, 4277 120, 121, 87, 88, 122, 123, 359, 101, 111, 331, 4278 332, 333, 334, 335, 102, 108, 101, 335, 103, 336, 4279 101, 335, 336, 126, 103, 111, 127, 214, 216, 347, 4280 348, 356, 357, 104, 127, 67, 101, 103, 111, 305, 4281 322, 323, 324, 325, 326, 327, 328, 329, 330, 336, 4282 337, 338, 339, 340, 341, 342, 111, 356, 216, 127, 4283 127, 111, 214, 216, 349, 259, 214, 336, 349, 259, 4284 127, 126, 126, 126, 126, 65, 103, 105, 261, 265, 4285 266, 267, 268, 269, 126, 126, 126, 126, 126, 126, 4286 295, 102, 102, 102, 102, 102, 102, 102, 304, 317, 4287 101, 264, 126, 196, 126, 295, 160, 263, 160, 263, 4288 295, 278, 103, 127, 196, 297, 164, 126, 196, 278, 4289 214, 272, 278, 238, 239, 126, 101, 109, 111, 240, 4290 242, 304, 305, 317, 335, 343, 344, 345, 346, 107, 4291 237, 108, 124, 108, 124, 261, 236, 108, 358, 123, 4292 246, 245, 216, 251, 252, 253, 256, 257, 102, 108, 4293 164, 126, 111, 155, 126, 213, 216, 250, 348, 356, 4294 289, 290, 101, 111, 322, 102, 108, 359, 261, 272, 4295 101, 106, 261, 263, 272, 102, 108, 101, 102, 109, 4296 262, 262, 103, 131, 137, 155, 263, 262, 126, 102, 4297 108, 102, 101, 111, 343, 102, 108, 127, 155, 103, 4298 131, 103, 136, 137, 126, 103, 131, 155, 155, 142, 4299 142, 142, 143, 143, 144, 144, 145, 145, 145, 145, 4300 146, 146, 147, 148, 149, 150, 151, 109, 160, 155, 4301 126, 332, 333, 334, 216, 331, 298, 298, 155, 263, 4302 126, 126, 258, 127, 216, 220, 126, 104, 356, 67, 4303 129, 214, 336, 354, 104, 101, 126, 305, 323, 324, 4304 325, 328, 338, 339, 340, 126, 216, 322, 326, 337, 4305 101, 298, 341, 359, 298, 298, 359, 101, 298, 341, 4306 298, 298, 298, 298, 336, 214, 347, 357, 259, 104, 4307 108, 104, 108, 359, 214, 349, 359, 104, 247, 248, 4308 249, 250, 247, 259, 127, 155, 126, 103, 261, 109, 4309 108, 358, 265, 103, 109, 269, 28, 198, 199, 259, 4310 247, 131, 295, 131, 297, 101, 335, 336, 101, 335, 4311 336, 133, 111, 127, 164, 251, 102, 102, 102, 102, 4312 102, 126, 104, 164, 196, 164, 102, 101, 111, 127, 4313 127, 124, 124, 103, 127, 305, 344, 345, 346, 154, 4314 216, 343, 241, 242, 241, 298, 298, 261, 298, 107, 4315 261, 107, 154, 358, 127, 127, 131, 211, 127, 127, 4316 247, 101, 111, 356, 127, 107, 216, 273, 274, 127, 4317 126, 126, 101, 127, 102, 302, 160, 161, 124, 75, 4318 190, 191, 192, 102, 102, 126, 109, 102, 102, 102, 4319 127, 155, 216, 106, 142, 157, 155, 156, 158, 104, 4320 108, 127, 126, 126, 102, 108, 155, 126, 153, 109, 4321 251, 102, 102, 102, 331, 251, 102, 104, 103, 111, 4322 155, 155, 216, 127, 101, 101, 214, 354, 328, 251, 4323 102, 102, 102, 102, 102, 102, 102, 7, 127, 216, 4324 322, 326, 337, 126, 126, 359, 126, 126, 101, 127, 4325 127, 127, 127, 264, 104, 127, 153, 154, 155, 296, 4326 126, 265, 267, 107, 126, 200, 261, 38, 39, 41, 4327 44, 45, 46, 47, 48, 49, 50, 51, 53, 56, 4328 103, 131, 161, 162, 163, 164, 165, 166, 168, 169, 4329 181, 183, 184, 189, 201, 294, 28, 127, 123, 264, 4330 126, 126, 102, 104, 127, 127, 67, 164, 216, 102, 4331 102, 126, 104, 102, 102, 102, 343, 240, 246, 107, 4332 102, 108, 104, 104, 127, 216, 108, 359, 276, 102, 4333 272, 204, 206, 214, 284, 285, 286, 287, 278, 102, 4334 102, 101, 102, 109, 108, 155, 155, 104, 266, 108, 4335 127, 158, 104, 131, 138, 139, 155, 137, 127, 138, 4336 153, 157, 127, 101, 335, 336, 127, 214, 336, 349, 4337 126, 127, 127, 127, 155, 104, 126, 126, 102, 127, 4338 101, 335, 336, 101, 341, 101, 341, 336, 215, 104, 4339 7, 111, 127, 155, 251, 251, 250, 254, 254, 255, 4340 247, 102, 108, 108, 102, 104, 89, 115, 127, 127, 4341 138, 265, 155, 108, 124, 201, 205, 216, 220, 101, 4342 101, 162, 101, 101, 124, 131, 124, 131, 111, 131, 4343 161, 101, 164, 124, 155, 126, 109, 124, 127, 126, 4344 127, 200, 102, 155, 251, 251, 298, 336, 102, 104, 4345 101, 106, 261, 261, 127, 101, 335, 336, 126, 102, 4346 126, 127, 295, 107, 126, 127, 127, 102, 106, 154, 4347 124, 190, 192, 108, 127, 358, 156, 104, 127, 78, 4348 105, 108, 127, 127, 104, 127, 102, 126, 102, 214, 4349 349, 104, 104, 104, 127, 247, 247, 102, 126, 126, 4350 126, 155, 155, 127, 104, 127, 127, 127, 127, 102, 4351 126, 126, 154, 154, 104, 104, 127, 127, 261, 216, 4352 160, 160, 45, 160, 126, 124, 124, 160, 124, 124, 4353 160, 54, 55, 185, 186, 187, 124, 127, 298, 166, 4354 107, 124, 127, 127, 278, 236, 106, 104, 126, 89, 4355 256, 257, 102, 285, 108, 124, 108, 124, 107, 283, 4356 102, 102, 109, 158, 104, 107, 104, 103, 139, 103, 4357 139, 139, 104, 104, 104, 251, 104, 127, 127, 251, 4358 251, 251, 127, 127, 104, 104, 102, 102, 104, 108, 4359 89, 250, 89, 127, 104, 104, 102, 102, 101, 102, 4360 161, 182, 201, 124, 102, 101, 164, 187, 54, 104, 4361 162, 102, 102, 102, 107, 236, 251, 106, 126, 126, 4362 284, 124, 75, 193, 127, 109, 126, 126, 127, 102, 4363 102, 127, 127, 127, 104, 104, 126, 127, 104, 162, 4364 42, 43, 106, 172, 173, 174, 160, 162, 127, 102, 4365 161, 106, 174, 89, 126, 101, 106, 261, 107, 127, 4366 126, 259, 295, 107, 102, 108, 104, 155, 138, 138, 4367 102, 102, 102, 102, 254, 40, 154, 170, 171, 296, 4368 109, 126, 162, 172, 102, 124, 162, 124, 126, 102, 4369 126, 89, 126, 236, 106, 102, 284, 124, 75, 109, 4370 127, 127, 162, 89, 108, 109, 127, 194, 195, 201, 4371 124, 161, 161, 194, 164, 188, 214, 352, 102, 126, 4372 107, 236, 107, 155, 104, 104, 154, 170, 173, 175, 4373 176, 126, 124, 173, 177, 178, 127, 101, 111, 295, 4374 343, 131, 164, 188, 107, 101, 162, 167, 107, 173, 4375 201, 161, 52, 167, 180, 107, 173, 102, 216, 127, 4376 278, 162, 167, 124, 179, 180, 167, 180, 164, 102, 4377 102, 179, 127, 164, 127 4353 4378 }; 4354 4379 … … 5187 5212 5188 5213 /* Line 1806 of yacc.c */ 5189 #line 2 82"parser.yy"5214 #line 279 "parser.yy" 5190 5215 { 5191 5216 typedefTable.enterScope(); … … 5196 5221 5197 5222 /* Line 1806 of yacc.c */ 5198 #line 28 8"parser.yy"5223 #line 285 "parser.yy" 5199 5224 { 5200 5225 typedefTable.leaveScope(); … … 5205 5230 5206 5231 /* Line 1806 of yacc.c */ 5207 #line 29 8"parser.yy"5232 #line 294 "parser.yy" 5208 5233 { (yyval.constant) = new ConstantNode( ConstantNode::Integer, (yyvsp[(1) - (1)].tok) ); } 5209 5234 break; … … 5212 5237 5213 5238 /* Line 1806 of yacc.c */ 5214 #line 29 9"parser.yy"5239 #line 295 "parser.yy" 5215 5240 { (yyval.constant) = new ConstantNode( ConstantNode::Float, (yyvsp[(1) - (1)].tok) ); } 5216 5241 break; … … 5219 5244 5220 5245 /* Line 1806 of yacc.c */ 5221 #line 300"parser.yy"5246 #line 296 "parser.yy" 5222 5247 { (yyval.constant) = new ConstantNode( ConstantNode::Character, (yyvsp[(1) - (1)].tok) ); } 5223 5248 break; … … 5226 5251 5227 5252 /* Line 1806 of yacc.c */ 5228 #line 32 4"parser.yy"5253 #line 320 "parser.yy" 5229 5254 { (yyval.constant) = new ConstantNode( ConstantNode::String, (yyvsp[(1) - (1)].tok) ); } 5230 5255 break; … … 5233 5258 5234 5259 /* Line 1806 of yacc.c */ 5235 #line 32 5"parser.yy"5260 #line 321 "parser.yy" 5236 5261 { (yyval.constant) = (yyvsp[(1) - (2)].constant)->appendstr( (yyvsp[(2) - (2)].tok) ); } 5237 5262 break; … … 5240 5265 5241 5266 /* Line 1806 of yacc.c */ 5267 #line 328 "parser.yy" 5268 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5269 break; 5270 5271 case 18: 5272 5273 /* Line 1806 of yacc.c */ 5274 #line 330 "parser.yy" 5275 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5276 break; 5277 5278 case 19: 5279 5280 /* Line 1806 of yacc.c */ 5242 5281 #line 332 "parser.yy" 5243 { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); }5244 break; 5245 5246 case 18:5282 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5283 break; 5284 5285 case 20: 5247 5286 5248 5287 /* Line 1806 of yacc.c */ 5249 5288 #line 334 "parser.yy" 5250 { (yyval.en) = new VarRefNode((yyvsp[(1) - (1)].tok)); }5251 break; 5252 5253 case 19:5289 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5290 break; 5291 5292 case 21: 5254 5293 5255 5294 /* Line 1806 of yacc.c */ 5256 5295 #line 336 "parser.yy" 5257 { (yyval.en) = (yyvsp[( 1) - (1)].constant); }5258 break; 5259 5260 case 2 0:5296 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5297 break; 5298 5299 case 22: 5261 5300 5262 5301 /* Line 1806 of yacc.c */ 5263 5302 #line 338 "parser.yy" 5264 { (yyval.en) = (yyvsp[(1) - (1)].constant); } 5265 break; 5266 5267 case 21: 5268 5269 /* Line 1806 of yacc.c */ 5270 #line 340 "parser.yy" 5271 { (yyval.en) = (yyvsp[(2) - (3)].en); } 5272 break; 5273 5274 case 22: 5275 5276 /* Line 1806 of yacc.c */ 5277 #line 342 "parser.yy" 5278 { (yyval.en) = new ValofExprNode((yyvsp[(2) - (3)].sn)); } 5303 { (yyval.en) = new ValofExprNode( (yyvsp[(2) - (3)].sn) ); } 5279 5304 break; 5280 5305 … … 5282 5307 5283 5308 /* Line 1806 of yacc.c */ 5309 #line 348 "parser.yy" 5310 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ); } 5311 break; 5312 5313 case 25: 5314 5315 /* Line 1806 of yacc.c */ 5316 #line 350 "parser.yy" 5317 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ); } 5318 break; 5319 5320 case 26: 5321 5322 /* Line 1806 of yacc.c */ 5284 5323 #line 352 "parser.yy" 5285 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Index), (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en)); } 5286 break; 5287 5288 case 25: 5289 5290 /* Line 1806 of yacc.c */ 5291 #line 354 "parser.yy" 5292 { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en)); } 5293 break; 5294 5295 case 26: 5296 5297 /* Line 1806 of yacc.c */ 5298 #line 356 "parser.yy" 5299 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); } 5324 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5300 5325 break; 5301 5326 … … 5303 5328 5304 5329 /* Line 1806 of yacc.c */ 5305 #line 35 9"parser.yy"5306 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::PFieldSel), (yyvsp[(1) - (3)].en), new VarRefNode((yyvsp[(3) - (3)].tok))); }5330 #line 355 "parser.yy" 5331 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), (yyvsp[(1) - (3)].en), new VarRefNode( (yyvsp[(3) - (3)].tok) )); } 5307 5332 break; 5308 5333 … … 5310 5335 5311 5336 /* Line 1806 of yacc.c */ 5312 #line 3 62"parser.yy"5313 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::IncrPost), (yyvsp[(1) - (2)].en)); }5337 #line 358 "parser.yy" 5338 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), (yyvsp[(1) - (2)].en) ); } 5314 5339 break; 5315 5340 … … 5317 5342 5318 5343 /* Line 1806 of yacc.c */ 5319 #line 36 4"parser.yy"5320 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::DecrPost), (yyvsp[(1) - (2)].en)); }5344 #line 360 "parser.yy" 5345 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), (yyvsp[(1) - (2)].en) ); } 5321 5346 break; 5322 5347 … … 5324 5349 5325 5350 /* Line 1806 of yacc.c */ 5326 #line 36 7"parser.yy"5351 #line 363 "parser.yy" 5327 5352 { (yyval.en) = 0; } 5328 5353 break; … … 5331 5356 5332 5357 /* Line 1806 of yacc.c */ 5333 #line 3 73"parser.yy"5334 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); }5358 #line 369 "parser.yy" 5359 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 5335 5360 break; 5336 5361 … … 5338 5363 5339 5364 /* Line 1806 of yacc.c */ 5340 #line 37 8"parser.yy"5365 #line 374 "parser.yy" 5341 5366 { (yyval.en) = 0; } 5342 5367 break; … … 5345 5370 5346 5371 /* Line 1806 of yacc.c */ 5347 #line 3 81"parser.yy"5348 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName( (yyvsp[(1) - (3)].tok)); }5372 #line 377 "parser.yy" 5373 { (yyval.en) = (yyvsp[(3) - (3)].en)->set_asArgName( (yyvsp[(1) - (3)].tok) ); } 5349 5374 break; 5350 5375 … … 5352 5377 5353 5378 /* Line 1806 of yacc.c */ 5354 #line 38 6"parser.yy"5355 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName( (yyvsp[(3) - (7)].en)); }5379 #line 382 "parser.yy" 5380 { (yyval.en) = (yyvsp[(7) - (7)].en)->set_asArgName( (yyvsp[(3) - (7)].en) ); } 5356 5381 break; 5357 5382 … … 5359 5384 5360 5385 /* Line 1806 of yacc.c */ 5361 #line 38 8"parser.yy"5386 #line 384 "parser.yy" 5362 5387 { (yyval.en) = (yyvsp[(9) - (9)].en)->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (9)].en)->set_link( flattenCommas( (yyvsp[(5) - (9)].en) )))); } 5363 5388 break; … … 5366 5391 5367 5392 /* Line 1806 of yacc.c */ 5368 #line 3 93"parser.yy"5393 #line 389 "parser.yy" 5369 5394 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5370 5395 break; … … 5373 5398 5374 5399 /* Line 1806 of yacc.c */ 5400 #line 394 "parser.yy" 5401 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); } 5402 break; 5403 5404 case 43: 5405 5406 /* Line 1806 of yacc.c */ 5407 #line 396 "parser.yy" 5408 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5409 break; 5410 5411 case 44: 5412 5413 /* Line 1806 of yacc.c */ 5375 5414 #line 398 "parser.yy" 5376 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (1)].tok) ); }5377 break; 5378 5379 case 4 3:5415 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5416 break; 5417 5418 case 45: 5380 5419 5381 5420 /* Line 1806 of yacc.c */ 5382 5421 #line 400 "parser.yy" 5383 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); }5384 break; 5385 5386 case 4 4:5422 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en) ); } 5423 break; 5424 5425 case 46: 5387 5426 5388 5427 /* Line 1806 of yacc.c */ 5389 5428 #line 402 "parser.yy" 5390 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::FieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); } 5391 break; 5392 5393 case 45: 5394 5395 /* Line 1806 of yacc.c */ 5396 #line 404 "parser.yy" 5397 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (3)].tok) ), (yyvsp[(3) - (3)].en)); } 5398 break; 5399 5400 case 46: 5401 5402 /* Line 1806 of yacc.c */ 5403 #line 406 "parser.yy" 5404 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en)); } 5429 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( (yyvsp[(1) - (7)].tok) ), (yyvsp[(5) - (7)].en) ); } 5405 5430 break; 5406 5431 … … 5408 5433 5409 5434 /* Line 1806 of yacc.c */ 5435 #line 408 "parser.yy" 5436 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), (yyvsp[(2) - (2)].en) ); } 5437 break; 5438 5439 case 49: 5440 5441 /* Line 1806 of yacc.c */ 5442 #line 410 "parser.yy" 5443 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), (yyvsp[(2) - (2)].en) ); } 5444 break; 5445 5446 case 50: 5447 5448 /* Line 1806 of yacc.c */ 5410 5449 #line 412 "parser.yy" 5411 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Incr), (yyvsp[(2) - (2)].en)); }5412 break; 5413 5414 case 49:5450 { (yyval.en) = (yyvsp[(2) - (2)].en); } 5451 break; 5452 5453 case 51: 5415 5454 5416 5455 /* Line 1806 of yacc.c */ 5417 5456 #line 414 "parser.yy" 5418 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Decr), (yyvsp[(2) - (2)].en)); }5419 break; 5420 5421 case 5 0:5457 { (yyval.en) = new CompositeExprNode( (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5458 break; 5459 5460 case 52: 5422 5461 5423 5462 /* Line 1806 of yacc.c */ 5424 5463 #line 416 "parser.yy" 5425 { (yyval.en) = (yyvsp[(2) - (2)].en); }5426 break; 5427 5428 case 5 1:5464 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), (yyvsp[(2) - (2)].en) ); } 5465 break; 5466 5467 case 53: 5429 5468 5430 5469 /* Line 1806 of yacc.c */ 5431 5470 #line 418 "parser.yy" 5432 { (yyval.en) = new CompositeExprNode((yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en)); } 5433 break; 5434 5435 case 52: 5436 5437 /* Line 1806 of yacc.c */ 5438 #line 420 "parser.yy" 5439 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Neg), (yyvsp[(2) - (2)].en)); } 5440 break; 5441 5442 case 53: 5443 5444 /* Line 1806 of yacc.c */ 5445 #line 422 "parser.yy" 5446 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::PointTo), (yyvsp[(2) - (2)].en)); } 5471 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), (yyvsp[(2) - (2)].en) ); } 5447 5472 break; 5448 5473 … … 5450 5475 5451 5476 /* Line 1806 of yacc.c */ 5477 #line 424 "parser.yy" 5478 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), (yyvsp[(2) - (2)].en) ); } 5479 break; 5480 5481 case 55: 5482 5483 /* Line 1806 of yacc.c */ 5484 #line 426 "parser.yy" 5485 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5486 break; 5487 5488 case 56: 5489 5490 /* Line 1806 of yacc.c */ 5452 5491 #line 428 "parser.yy" 5453 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::SizeOf), (yyvsp[(2) - (2)].en)); }5454 break; 5455 5456 case 5 5:5492 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (1)].tok) )); } 5493 break; 5494 5495 case 57: 5457 5496 5458 5497 /* Line 1806 of yacc.c */ 5459 5498 #line 430 "parser.yy" 5460 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::SizeOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); }5461 break; 5462 5463 case 5 6:5499 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5500 break; 5501 5502 case 58: 5464 5503 5465 5504 /* Line 1806 of yacc.c */ 5466 5505 #line 432 "parser.yy" 5467 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (1)].tok))); }5468 break; 5469 5470 case 5 7:5506 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ); } 5507 break; 5508 5509 case 59: 5471 5510 5472 5511 /* Line 1806 of yacc.c */ 5473 5512 #line 434 "parser.yy" 5474 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), new TypeValueNode((yyvsp[(3) - (4)].decl))); }5475 break; 5476 5477 case 58:5513 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), (yyvsp[(2) - (2)].en) ); } 5514 break; 5515 5516 case 60: 5478 5517 5479 5518 /* Line 1806 of yacc.c */ 5480 5519 #line 436 "parser.yy" 5481 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Attr), new VarRefNode((yyvsp[(1) - (4)].tok)), (yyvsp[(3) - (4)].en)); }5482 break; 5483 5484 case 59:5520 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( (yyvsp[(3) - (4)].decl) )); } 5521 break; 5522 5523 case 61: 5485 5524 5486 5525 /* Line 1806 of yacc.c */ 5487 5526 #line 438 "parser.yy" 5488 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), (yyvsp[(2) - (2)].en)); } 5489 break; 5490 5491 case 60: 5492 5493 /* Line 1806 of yacc.c */ 5494 #line 440 "parser.yy" 5495 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::AlignOf), new TypeValueNode((yyvsp[(3) - (4)].decl))); } 5496 break; 5497 5498 case 61: 5527 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( (yyvsp[(2) - (2)].tok), true )); } 5528 break; 5529 5530 case 62: 5499 5531 5500 5532 /* Line 1806 of yacc.c */ 5501 5533 #line 442 "parser.yy" 5502 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LabelAddress), new VarRefNode((yyvsp[(2) - (2)].tok), true)); } 5503 break; 5504 5505 case 62: 5506 5507 /* Line 1806 of yacc.c */ 5508 #line 446 "parser.yy" 5509 { (yyval.en) = new OperatorNode(OperatorNode::AddressOf); } 5534 { (yyval.en) = new OperatorNode( OperatorNode::AddressOf ); } 5510 5535 break; 5511 5536 … … 5513 5538 5514 5539 /* Line 1806 of yacc.c */ 5515 #line 44 7"parser.yy"5516 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus); }5540 #line 443 "parser.yy" 5541 { (yyval.en) = new OperatorNode( OperatorNode::UnPlus ); } 5517 5542 break; 5518 5543 … … 5520 5545 5521 5546 /* Line 1806 of yacc.c */ 5522 #line 44 8"parser.yy"5523 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus); }5547 #line 444 "parser.yy" 5548 { (yyval.en) = new OperatorNode( OperatorNode::UnMinus ); } 5524 5549 break; 5525 5550 … … 5527 5552 5528 5553 /* Line 1806 of yacc.c */ 5529 #line 44 9"parser.yy"5530 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg); }5554 #line 445 "parser.yy" 5555 { (yyval.en) = new OperatorNode( OperatorNode::BitNeg ); } 5531 5556 break; 5532 5557 … … 5534 5559 5535 5560 /* Line 1806 of yacc.c */ 5536 #line 45 5"parser.yy"5537 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); }5561 #line 451 "parser.yy" 5562 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); } 5538 5563 break; 5539 5564 … … 5541 5566 5542 5567 /* Line 1806 of yacc.c */ 5543 #line 45 7"parser.yy"5544 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cast), new TypeValueNode((yyvsp[(2) - (4)].decl)), (yyvsp[(4) - (4)].en)); }5568 #line 453 "parser.yy" 5569 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( (yyvsp[(2) - (4)].decl) ), (yyvsp[(4) - (4)].en) ); } 5545 5570 break; 5546 5571 … … 5548 5573 5549 5574 /* Line 1806 of yacc.c */ 5575 #line 459 "parser.yy" 5576 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5577 break; 5578 5579 case 71: 5580 5581 /* Line 1806 of yacc.c */ 5582 #line 461 "parser.yy" 5583 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5584 break; 5585 5586 case 72: 5587 5588 /* Line 1806 of yacc.c */ 5550 5589 #line 463 "parser.yy" 5551 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mul),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5552 break; 5553 5554 case 71: 5555 5556 /* Line 1806 of yacc.c */ 5557 #line 465 "parser.yy" 5558 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Div),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5559 break; 5560 5561 case 72: 5562 5563 /* Line 1806 of yacc.c */ 5564 #line 467 "parser.yy" 5565 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Mod),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5590 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5566 5591 break; 5567 5592 … … 5569 5594 5570 5595 /* Line 1806 of yacc.c */ 5571 #line 4 73"parser.yy"5572 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Plus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5596 #line 469 "parser.yy" 5597 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5573 5598 break; 5574 5599 … … 5576 5601 5577 5602 /* Line 1806 of yacc.c */ 5578 #line 47 5"parser.yy"5579 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Minus),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5603 #line 471 "parser.yy" 5604 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5580 5605 break; 5581 5606 … … 5583 5608 5584 5609 /* Line 1806 of yacc.c */ 5585 #line 4 81"parser.yy"5586 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::LShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5610 #line 477 "parser.yy" 5611 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5587 5612 break; 5588 5613 … … 5590 5615 5591 5616 /* Line 1806 of yacc.c */ 5592 #line 4 83"parser.yy"5593 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::RShift),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5617 #line 479 "parser.yy" 5618 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5594 5619 break; 5595 5620 … … 5597 5622 5598 5623 /* Line 1806 of yacc.c */ 5624 #line 485 "parser.yy" 5625 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5626 break; 5627 5628 case 81: 5629 5630 /* Line 1806 of yacc.c */ 5631 #line 487 "parser.yy" 5632 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5633 break; 5634 5635 case 82: 5636 5637 /* Line 1806 of yacc.c */ 5599 5638 #line 489 "parser.yy" 5600 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::LThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5601 break; 5602 5603 case 8 1:5639 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5640 break; 5641 5642 case 83: 5604 5643 5605 5644 /* Line 1806 of yacc.c */ 5606 5645 #line 491 "parser.yy" 5607 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5608 break; 5609 5610 case 82: 5611 5612 /* Line 1806 of yacc.c */ 5613 #line 493 "parser.yy" 5614 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::LEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5615 break; 5616 5617 case 83: 5618 5619 /* Line 1806 of yacc.c */ 5620 #line 495 "parser.yy" 5621 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::GEThan),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); } 5646 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5622 5647 break; 5623 5648 … … 5625 5650 5626 5651 /* Line 1806 of yacc.c */ 5627 #line 501"parser.yy"5628 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Eq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5652 #line 497 "parser.yy" 5653 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5629 5654 break; 5630 5655 … … 5632 5657 5633 5658 /* Line 1806 of yacc.c */ 5634 #line 503"parser.yy"5635 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Neq), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5659 #line 499 "parser.yy" 5660 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5636 5661 break; 5637 5662 … … 5639 5664 5640 5665 /* Line 1806 of yacc.c */ 5641 #line 50 9"parser.yy"5642 { (yyval.en) =new CompositeExprNode( new OperatorNode(OperatorNode::BitAnd), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5666 #line 505 "parser.yy" 5667 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5643 5668 break; 5644 5669 … … 5646 5671 5647 5672 /* Line 1806 of yacc.c */ 5648 #line 51 5"parser.yy"5649 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Xor), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5673 #line 511 "parser.yy" 5674 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5650 5675 break; 5651 5676 … … 5653 5678 5654 5679 /* Line 1806 of yacc.c */ 5655 #line 5 21"parser.yy"5656 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::BitOr), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5680 #line 517 "parser.yy" 5681 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5657 5682 break; 5658 5683 … … 5660 5685 5661 5686 /* Line 1806 of yacc.c */ 5662 #line 52 7"parser.yy"5663 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::And), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5687 #line 523 "parser.yy" 5688 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::And ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5664 5689 break; 5665 5690 … … 5667 5692 5668 5693 /* Line 1806 of yacc.c */ 5669 #line 5 33"parser.yy"5670 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Or), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }5694 #line 529 "parser.yy" 5695 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5671 5696 break; 5672 5697 … … 5674 5699 5675 5700 /* Line 1806 of yacc.c */ 5701 #line 535 "parser.yy" 5702 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5703 break; 5704 5705 case 99: 5706 5707 /* Line 1806 of yacc.c */ 5708 #line 537 "parser.yy" 5709 { (yyval.en)=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5710 break; 5711 5712 case 100: 5713 5714 /* Line 1806 of yacc.c */ 5676 5715 #line 539 "parser.yy" 5677 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); } 5678 break; 5679 5680 case 99: 5681 5682 /* Line 1806 of yacc.c */ 5683 #line 541 "parser.yy" 5684 { (yyval.en)=new CompositeExprNode(new OperatorNode(OperatorNode::NCond),(yyvsp[(1) - (4)].en),(yyvsp[(4) - (4)].en)); } 5685 break; 5686 5687 case 100: 5688 5689 /* Line 1806 of yacc.c */ 5690 #line 543 "parser.yy" 5691 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Cond), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en)) ) ); } 5716 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*(yyvsp[(1) - (5)].en), *(yyvsp[(3) - (5)].en), *(yyvsp[(5) - (5)].en) ) ) ); } 5692 5717 break; 5693 5718 … … 5695 5720 5696 5721 /* Line 1806 of yacc.c */ 5722 #line 550 "parser.yy" 5723 { (yyval.en) =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5724 break; 5725 5726 case 104: 5727 5728 /* Line 1806 of yacc.c */ 5729 #line 552 "parser.yy" 5730 { (yyval.en) =new CompositeExprNode( (yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5731 break; 5732 5733 case 105: 5734 5735 /* Line 1806 of yacc.c */ 5697 5736 #line 554 "parser.yy" 5698 { (yyval.en) =new CompositeExprNode(new OperatorNode(OperatorNode::Assign), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5699 break; 5700 5701 case 104: 5702 5703 /* Line 1806 of yacc.c */ 5704 #line 556 "parser.yy" 5705 { (yyval.en) =new CompositeExprNode((yyvsp[(2) - (3)].en), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); } 5706 break; 5707 5708 case 105: 5709 5710 /* Line 1806 of yacc.c */ 5711 #line 558 "parser.yy" 5712 { (yyval.en) = ((yyvsp[(2) - (2)].en) == 0) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5737 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ); } 5713 5738 break; 5714 5739 … … 5716 5741 5717 5742 /* Line 1806 of yacc.c */ 5718 #line 5 63"parser.yy"5743 #line 559 "parser.yy" 5719 5744 { (yyval.en) = new NullExprNode; } 5720 5745 break; … … 5723 5748 5724 5749 /* Line 1806 of yacc.c */ 5750 #line 567 "parser.yy" 5751 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } 5752 break; 5753 5754 case 109: 5755 5756 /* Line 1806 of yacc.c */ 5757 #line 569 "parser.yy" 5758 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); } 5759 break; 5760 5761 case 110: 5762 5763 /* Line 1806 of yacc.c */ 5725 5764 #line 571 "parser.yy" 5726 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); }5727 break; 5728 5729 case 1 09:5765 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); } 5766 break; 5767 5768 case 111: 5730 5769 5731 5770 /* Line 1806 of yacc.c */ 5732 5771 #line 573 "parser.yy" 5733 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (yyvsp[(3) - (5)].en) ); }5734 break;5735 5736 case 110:5737 5738 /* Line 1806 of yacc.c */5739 #line 575 "parser.yy"5740 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(new NullExprNode)->set_link( (yyvsp[(4) - (6)].en) ) ); }5741 break;5742 5743 case 111:5744 5745 /* Line 1806 of yacc.c */5746 #line 577 "parser.yy"5747 5772 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_link( flattenCommas( (yyvsp[(5) - (7)].en) ) ) ); } 5748 5773 break; … … 5751 5776 5752 5777 /* Line 1806 of yacc.c */ 5778 #line 579 "parser.yy" 5779 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5780 break; 5781 5782 case 114: 5783 5784 /* Line 1806 of yacc.c */ 5753 5785 #line 583 "parser.yy" 5754 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) ); } 5755 break; 5756 5757 case 114: 5786 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn ); } 5787 break; 5788 5789 case 115: 5790 5791 /* Line 1806 of yacc.c */ 5792 #line 584 "parser.yy" 5793 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn ); } 5794 break; 5795 5796 case 116: 5797 5798 /* Line 1806 of yacc.c */ 5799 #line 585 "parser.yy" 5800 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn ); } 5801 break; 5802 5803 case 117: 5804 5805 /* Line 1806 of yacc.c */ 5806 #line 586 "parser.yy" 5807 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn ); } 5808 break; 5809 5810 case 118: 5758 5811 5759 5812 /* Line 1806 of yacc.c */ 5760 5813 #line 587 "parser.yy" 5761 { (yyval.en) = new OperatorNode( OperatorNode::MulAssn); }5762 break; 5763 5764 case 11 5:5814 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn ); } 5815 break; 5816 5817 case 119: 5765 5818 5766 5819 /* Line 1806 of yacc.c */ 5767 5820 #line 588 "parser.yy" 5768 { (yyval.en) = new OperatorNode( OperatorNode::DivAssn); }5769 break; 5770 5771 case 1 16:5821 { (yyval.en) = new OperatorNode( OperatorNode::LSAssn ); } 5822 break; 5823 5824 case 120: 5772 5825 5773 5826 /* Line 1806 of yacc.c */ 5774 5827 #line 589 "parser.yy" 5775 { (yyval.en) = new OperatorNode( OperatorNode::ModAssn); }5776 break; 5777 5778 case 1 17:5828 { (yyval.en) = new OperatorNode( OperatorNode::RSAssn ); } 5829 break; 5830 5831 case 121: 5779 5832 5780 5833 /* Line 1806 of yacc.c */ 5781 5834 #line 590 "parser.yy" 5782 { (yyval.en) = new OperatorNode( OperatorNode::PlusAssn); }5783 break; 5784 5785 case 1 18:5835 { (yyval.en) = new OperatorNode( OperatorNode::AndAssn ); } 5836 break; 5837 5838 case 122: 5786 5839 5787 5840 /* Line 1806 of yacc.c */ 5788 5841 #line 591 "parser.yy" 5789 { (yyval.en) = new OperatorNode( OperatorNode::MinusAssn); }5790 break; 5791 5792 case 1 19:5842 { (yyval.en) = new OperatorNode( OperatorNode::ERAssn ); } 5843 break; 5844 5845 case 123: 5793 5846 5794 5847 /* Line 1806 of yacc.c */ 5795 5848 #line 592 "parser.yy" 5796 { (yyval.en) = new OperatorNode(OperatorNode::LSAssn); } 5797 break; 5798 5799 case 120: 5800 5801 /* Line 1806 of yacc.c */ 5802 #line 593 "parser.yy" 5803 { (yyval.en) = new OperatorNode(OperatorNode::RSAssn); } 5804 break; 5805 5806 case 121: 5807 5808 /* Line 1806 of yacc.c */ 5809 #line 594 "parser.yy" 5810 { (yyval.en) = new OperatorNode(OperatorNode::AndAssn); } 5811 break; 5812 5813 case 122: 5814 5815 /* Line 1806 of yacc.c */ 5816 #line 595 "parser.yy" 5817 { (yyval.en) = new OperatorNode(OperatorNode::ERAssn); } 5818 break; 5819 5820 case 123: 5821 5822 /* Line 1806 of yacc.c */ 5823 #line 596 "parser.yy" 5824 { (yyval.en) = new OperatorNode(OperatorNode::OrAssn); } 5849 { (yyval.en) = new OperatorNode( OperatorNode::OrAssn ); } 5825 5850 break; 5826 5851 … … 5828 5853 5829 5854 /* Line 1806 of yacc.c */ 5830 #line 602"parser.yy"5831 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Comma),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5855 #line 598 "parser.yy" 5856 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5832 5857 break; 5833 5858 … … 5835 5860 5836 5861 /* Line 1806 of yacc.c */ 5837 #line 60 7"parser.yy"5862 #line 603 "parser.yy" 5838 5863 { (yyval.en) = 0; } 5839 5864 break; … … 5842 5867 5843 5868 /* Line 1806 of yacc.c */ 5844 #line 61 6"parser.yy"5869 #line 612 "parser.yy" 5845 5870 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5846 5871 break; … … 5849 5874 5850 5875 /* Line 1806 of yacc.c */ 5851 #line 62 6"parser.yy"5852 { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok));}5876 #line 622 "parser.yy" 5877 { (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );} 5853 5878 break; 5854 5879 … … 5856 5881 5857 5882 /* Line 1806 of yacc.c */ 5858 #line 6 31"parser.yy"5883 #line 627 "parser.yy" 5859 5884 { (yyval.sn) = new CompoundStmtNode( (StatementNode *)0 ); } 5860 5885 break; … … 5863 5888 5864 5889 /* Line 1806 of yacc.c */ 5865 #line 63 8"parser.yy"5890 #line 634 "parser.yy" 5866 5891 { (yyval.sn) = new CompoundStmtNode( (yyvsp[(5) - (7)].sn) ); } 5867 5892 break; … … 5870 5895 5871 5896 /* Line 1806 of yacc.c */ 5872 #line 64 4"parser.yy"5873 { if ( (yyvsp[(1) - (3)].sn) != 0) { (yyvsp[(1) - (3)].sn)->set_link((yyvsp[(3) - (3)].sn)); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }5897 #line 640 "parser.yy" 5898 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5874 5899 break; 5875 5900 5876 5901 case 141: 5902 5903 /* Line 1806 of yacc.c */ 5904 #line 645 "parser.yy" 5905 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5906 break; 5907 5908 case 142: 5909 5910 /* Line 1806 of yacc.c */ 5911 #line 647 "parser.yy" 5912 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); } 5913 break; 5914 5915 case 143: 5877 5916 5878 5917 /* Line 1806 of yacc.c */ … … 5881 5920 break; 5882 5921 5883 case 142:5884 5885 /* Line 1806 of yacc.c */5886 #line 651 "parser.yy"5887 { (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); }5888 break;5889 5890 case 143:5891 5892 /* Line 1806 of yacc.c */5893 #line 653 "parser.yy"5894 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }5895 break;5896 5897 5922 case 146: 5898 5923 5899 5924 /* Line 1806 of yacc.c */ 5900 #line 6 60"parser.yy"5901 { if ( (yyvsp[(1) - (2)].sn) != 0) { (yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn)); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }5925 #line 656 "parser.yy" 5926 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5902 5927 break; 5903 5928 … … 5905 5930 5906 5931 /* Line 1806 of yacc.c */ 5907 #line 66 5"parser.yy"5908 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0); }5932 #line 661 "parser.yy" 5933 { (yyval.sn) = new StatementNode( StatementNode::Exp, (yyvsp[(1) - (2)].en), 0 ); } 5909 5934 break; 5910 5935 … … 5912 5937 5913 5938 /* Line 1806 of yacc.c */ 5939 #line 667 "parser.yy" 5940 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5941 break; 5942 5943 case 149: 5944 5945 /* Line 1806 of yacc.c */ 5946 #line 669 "parser.yy" 5947 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn) )) ); } 5948 break; 5949 5950 case 150: 5951 5952 /* Line 1806 of yacc.c */ 5914 5953 #line 671 "parser.yy" 5915 { (yyval.sn) = new StatementNode( StatementNode::If, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }5916 break; 5917 5918 case 1 49:5954 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5955 break; 5956 5957 case 151: 5919 5958 5920 5959 /* Line 1806 of yacc.c */ 5921 5960 #line 673 "parser.yy" 5922 { (yyval.sn) = new StatementNode(StatementNode::If, (yyvsp[(3) - (7)].en), (StatementNode *)mkList((*(yyvsp[(5) - (7)].sn), *(yyvsp[(7) - (7)].sn))) ); } 5923 break; 5924 5925 case 150: 5926 5927 /* Line 1806 of yacc.c */ 5928 #line 675 "parser.yy" 5929 { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); } 5930 break; 5931 5932 case 151: 5933 5934 /* Line 1806 of yacc.c */ 5935 #line 677 "parser.yy" 5936 { (yyval.sn) = new StatementNode(StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); /* xxx */ } 5961 { (yyval.sn) = new StatementNode( StatementNode::Switch, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); /* xxx */ } 5937 5962 break; 5938 5963 … … 5940 5965 5941 5966 /* Line 1806 of yacc.c */ 5942 #line 6 83"parser.yy"5943 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); }5967 #line 678 "parser.yy" 5968 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 5944 5969 break; 5945 5970 … … 5947 5972 5948 5973 /* Line 1806 of yacc.c */ 5949 #line 68 5"parser.yy"5950 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn)); }5974 #line 680 "parser.yy" 5975 { (yyval.sn) = new StatementNode( StatementNode::Choose, (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ); } 5951 5976 break; 5952 5977 … … 5954 5979 5955 5980 /* Line 1806 of yacc.c */ 5956 #line 6 92"parser.yy"5981 #line 687 "parser.yy" 5957 5982 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5958 5983 break; … … 5961 5986 5962 5987 /* Line 1806 of yacc.c */ 5963 #line 6 94"parser.yy"5964 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Range),(yyvsp[(1) - (3)].en),(yyvsp[(3) - (3)].en)); }5988 #line 689 "parser.yy" 5989 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 5965 5990 break; 5966 5991 … … 5968 5993 5969 5994 /* Line 1806 of yacc.c */ 5995 #line 696 "parser.yy" 5996 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( (yyvsp[(1) - (3)].en) ))->set_link( (yyvsp[(3) - (3)].en) ) ); } 5997 break; 5998 5999 case 159: 6000 6001 /* Line 1806 of yacc.c */ 6002 #line 700 "parser.yy" 6003 { (yyval.sn) = new StatementNode( StatementNode::Case, (yyvsp[(2) - (3)].en), 0 ); } 6004 break; 6005 6006 case 160: 6007 6008 /* Line 1806 of yacc.c */ 5970 6009 #line 701 "parser.yy" 5971 { (yyval.en) = new CompositeExprNode(new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents((yyvsp[(1) - (3)].en)))->set_link((yyvsp[(3) - (3)].en)) ); } 5972 break; 5973 5974 case 159: 5975 5976 /* Line 1806 of yacc.c */ 5977 #line 705 "parser.yy" 5978 { (yyval.sn) = new StatementNode(StatementNode::Case, (yyvsp[(2) - (3)].en), 0); } 5979 break; 5980 5981 case 160: 5982 5983 /* Line 1806 of yacc.c */ 5984 #line 706 "parser.yy" 5985 { (yyval.sn) = new StatementNode(StatementNode::Default); } 6010 { (yyval.sn) = new StatementNode( StatementNode::Default ); } 5986 6011 break; 5987 6012 … … 5989 6014 5990 6015 /* Line 1806 of yacc.c */ 5991 #line 7 12"parser.yy"5992 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link((yyvsp[(2) - (2)].sn))); }6016 #line 707 "parser.yy" 6017 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_link( (yyvsp[(2) - (2)].sn) )); } 5993 6018 break; 5994 6019 … … 5996 6021 5997 6022 /* Line 1806 of yacc.c */ 6023 #line 711 "parser.yy" 6024 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6025 break; 6026 6027 case 164: 6028 6029 /* Line 1806 of yacc.c */ 5998 6030 #line 716 "parser.yy" 5999 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case((yyvsp[(2) - (2)].sn)); }6000 break;6001 6002 case 164:6003 6004 /* Line 1806 of yacc.c */6005 #line 721 "parser.yy"6006 6031 { (yyval.sn) = 0; } 6007 6032 break; … … 6010 6035 6011 6036 /* Line 1806 of yacc.c */ 6012 #line 72 7"parser.yy"6013 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn)); }6037 #line 722 "parser.yy" 6038 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6014 6039 break; 6015 6040 … … 6017 6042 6018 6043 /* Line 1806 of yacc.c */ 6044 #line 724 "parser.yy" 6045 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6046 break; 6047 6048 case 168: 6049 6050 /* Line 1806 of yacc.c */ 6019 6051 #line 729 "parser.yy" 6020 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); }6021 break;6022 6023 case 168:6024 6025 /* Line 1806 of yacc.c */6026 #line 734 "parser.yy"6027 6052 { (yyval.sn) = 0; } 6028 6053 break; … … 6031 6056 6032 6057 /* Line 1806 of yacc.c */ 6033 #line 7 40"parser.yy"6034 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn)); }6058 #line 735 "parser.yy" 6059 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 6035 6060 break; 6036 6061 … … 6038 6063 6039 6064 /* Line 1806 of yacc.c */ 6040 #line 7 42"parser.yy"6041 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); }6065 #line 737 "parser.yy" 6066 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].sn) ))); } 6042 6067 break; 6043 6068 … … 6045 6070 6046 6071 /* Line 1806 of yacc.c */ 6047 #line 7 44"parser.yy"6048 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link((yyvsp[(2) - (3)].sn)->append_last_case((yyvsp[(3) - (3)].sn)))); }6072 #line 739 "parser.yy" 6073 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_link( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 6049 6074 break; 6050 6075 … … 6052 6077 6053 6078 /* Line 1806 of yacc.c */ 6079 #line 741 "parser.yy" 6080 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_link( (yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn) ))))); } 6081 break; 6082 6083 case 174: 6084 6085 /* Line 1806 of yacc.c */ 6054 6086 #line 746 "parser.yy" 6055 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (4)].sn)->set_link((yyvsp[(2) - (4)].sn)->append_last_case((StatementNode *)mkList((*(yyvsp[(3) - (4)].sn),*(yyvsp[(4) - (4)].sn)))))); }6056 break; 6057 6058 case 17 4:6087 { (yyval.sn) = 0; } 6088 break; 6089 6090 case 176: 6059 6091 6060 6092 /* Line 1806 of yacc.c */ 6061 6093 #line 751 "parser.yy" 6062 { (yyval.sn) = 0; } 6063 break; 6064 6065 case 176: 6066 6067 /* Line 1806 of yacc.c */ 6068 #line 756 "parser.yy" 6069 { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); } 6094 { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0 ); } 6070 6095 break; 6071 6096 … … 6073 6098 6074 6099 /* Line 1806 of yacc.c */ 6100 #line 752 "parser.yy" 6101 { (yyval.sn) = new StatementNode( StatementNode::Fallthru, 0, 0 ); } 6102 break; 6103 6104 case 178: 6105 6106 /* Line 1806 of yacc.c */ 6075 6107 #line 757 "parser.yy" 6076 { (yyval.sn) = new StatementNode(StatementNode::Fallthru, 0, 0); } 6077 break; 6078 6079 case 178: 6080 6081 /* Line 1806 of yacc.c */ 6082 #line 762 "parser.yy" 6083 { (yyval.sn) = new StatementNode(StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn)); } 6108 { (yyval.sn) = new StatementNode( StatementNode::While, (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ); } 6084 6109 break; 6085 6110 … … 6087 6112 6088 6113 /* Line 1806 of yacc.c */ 6089 #line 7 64"parser.yy"6090 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn)); }6114 #line 759 "parser.yy" 6115 { (yyval.sn) = new StatementNode( StatementNode::Do, (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ); } 6091 6116 break; 6092 6117 … … 6094 6119 6095 6120 /* Line 1806 of yacc.c */ 6121 #line 761 "parser.yy" 6122 { (yyval.sn) = new StatementNode( StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn) ); } 6123 break; 6124 6125 case 181: 6126 6127 /* Line 1806 of yacc.c */ 6096 6128 #line 766 "parser.yy" 6097 { (yyval.sn) = new StatementNode(StatementNode::For, (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].sn)); } 6098 break; 6099 6100 case 181: 6101 6102 /* Line 1806 of yacc.c */ 6103 #line 771 "parser.yy" 6104 { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en)); } 6129 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 6105 6130 break; 6106 6131 … … 6108 6133 6109 6134 /* Line 1806 of yacc.c */ 6135 #line 768 "parser.yy" 6136 { (yyval.en) = new ForCtlExprNode( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 6137 break; 6138 6139 case 183: 6140 6141 /* Line 1806 of yacc.c */ 6110 6142 #line 773 "parser.yy" 6111 { (yyval.en) = new ForCtlExprNode((yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en)); } 6112 break; 6113 6114 case 183: 6115 6116 /* Line 1806 of yacc.c */ 6117 #line 778 "parser.yy" 6118 { (yyval.sn) = new StatementNode(StatementNode::Goto, (yyvsp[(2) - (3)].tok)); } 6143 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(2) - (3)].tok) ); } 6119 6144 break; 6120 6145 … … 6122 6147 6123 6148 /* Line 1806 of yacc.c */ 6124 #line 7 82"parser.yy"6125 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en)); }6149 #line 777 "parser.yy" 6150 { (yyval.sn) = new StatementNode( StatementNode::Goto, (yyvsp[(3) - (4)].en) ); } 6126 6151 break; 6127 6152 … … 6129 6154 6130 6155 /* Line 1806 of yacc.c */ 6131 #line 78 6"parser.yy"6132 { (yyval.sn) = new StatementNode( StatementNode::Continue, 0, 0); }6156 #line 780 "parser.yy" 6157 { (yyval.sn) = new StatementNode( StatementNode::Continue, 0, 0 ); } 6133 6158 break; 6134 6159 … … 6136 6161 6137 6162 /* Line 1806 of yacc.c */ 6138 #line 7 90"parser.yy"6139 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok)); }6163 #line 784 "parser.yy" 6164 { (yyval.sn) = new StatementNode( StatementNode::Continue, (yyvsp[(2) - (3)].tok) ); } 6140 6165 break; 6141 6166 … … 6143 6168 6144 6169 /* Line 1806 of yacc.c */ 6145 #line 7 94"parser.yy"6146 { (yyval.sn) = new StatementNode( StatementNode::Break, 0, 0); }6170 #line 787 "parser.yy" 6171 { (yyval.sn) = new StatementNode( StatementNode::Break, 0, 0 ); } 6147 6172 break; 6148 6173 … … 6150 6175 6151 6176 /* Line 1806 of yacc.c */ 6152 #line 79 8"parser.yy"6153 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); }6177 #line 791 "parser.yy" 6178 { (yyval.sn) = new StatementNode( StatementNode::Break, (yyvsp[(2) - (3)].tok) ); } 6154 6179 break; 6155 6180 … … 6157 6182 6158 6183 /* Line 1806 of yacc.c */ 6159 #line 800"parser.yy"6160 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0); }6184 #line 793 "parser.yy" 6185 { (yyval.sn) = new StatementNode( StatementNode::Return, (yyvsp[(2) - (3)].en), 0 ); } 6161 6186 break; 6162 6187 … … 6164 6189 6165 6190 /* Line 1806 of yacc.c */ 6191 #line 795 "parser.yy" 6192 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0 ); } 6193 break; 6194 6195 case 191: 6196 6197 /* Line 1806 of yacc.c */ 6198 #line 797 "parser.yy" 6199 { (yyval.sn) = new StatementNode( StatementNode::Throw, 0, 0 ); } 6200 break; 6201 6202 case 192: 6203 6204 /* Line 1806 of yacc.c */ 6166 6205 #line 802 "parser.yy" 6167 { (yyval.sn) = new StatementNode( StatementNode::Throw, (yyvsp[(2) - (3)].en), 0); }6168 break; 6169 6170 case 19 1:6206 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6207 break; 6208 6209 case 193: 6171 6210 6172 6211 /* Line 1806 of yacc.c */ 6173 6212 #line 804 "parser.yy" 6174 { (yyval.sn) = new StatementNode(StatementNode::Throw, 0, 0); } 6175 break; 6176 6177 case 192: 6178 6179 /* Line 1806 of yacc.c */ 6180 #line 809 "parser.yy" 6181 { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); } 6182 break; 6183 6184 case 193: 6185 6186 /* Line 1806 of yacc.c */ 6187 #line 811 "parser.yy" 6188 { (yyval.sn) = new StatementNode(StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn))))); } 6213 { (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (3)].sn),*(yyvsp[(3) - (3)].pn) )))); } 6189 6214 break; 6190 6215 … … 6192 6217 6193 6218 /* Line 1806 of yacc.c */ 6194 #line 8 13"parser.yy"6219 #line 806 "parser.yy" 6195 6220 { 6196 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn));6197 (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (4)].sn),*(yyvsp[(3) - (4)].pn)))));6221 (yyvsp[(3) - (4)].pn)->set_link( (yyvsp[(4) - (4)].pn) ); 6222 (yyval.sn) = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*(yyvsp[(2) - (4)].sn),*(yyvsp[(3) - (4)].pn) )))); 6198 6223 } 6199 6224 break; … … 6202 6227 6203 6228 /* Line 1806 of yacc.c */ 6204 #line 8 25"parser.yy"6229 #line 817 "parser.yy" 6205 6230 { (yyval.pn) = StatementNode::newCatchStmt( 0, (yyvsp[(5) - (5)].sn), true ); } 6206 6231 break; … … 6209 6234 6210 6235 /* Line 1806 of yacc.c */ 6211 #line 8 27"parser.yy"6236 #line 819 "parser.yy" 6212 6237 { (yyval.pn) = (yyvsp[(1) - (6)].pn)->set_link( StatementNode::newCatchStmt( 0, (yyvsp[(6) - (6)].sn), true ) ); } 6213 6238 break; … … 6216 6241 6217 6242 /* Line 1806 of yacc.c */ 6218 #line 8 32"parser.yy"6219 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn)); }6243 #line 824 "parser.yy" 6244 { (yyval.pn) = StatementNode::newCatchStmt( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ); } 6220 6245 break; 6221 6246 … … 6223 6248 6224 6249 /* Line 1806 of yacc.c */ 6225 #line 8 34"parser.yy"6226 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn)) ); }6250 #line 826 "parser.yy" 6251 { (yyval.pn) = (yyvsp[(1) - (10)].pn)->set_link( StatementNode::newCatchStmt( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ); } 6227 6252 break; 6228 6253 … … 6230 6255 6231 6256 /* Line 1806 of yacc.c */ 6232 #line 83 9"parser.yy"6257 #line 831 "parser.yy" 6233 6258 { 6234 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn));6259 (yyval.pn) = new StatementNode( StatementNode::Finally, 0, (yyvsp[(2) - (2)].sn) ); 6235 6260 std::cout << "Just created a finally node" << std::endl; 6236 6261 } … … 6240 6265 6241 6266 /* Line 1806 of yacc.c */ 6242 #line 8 53"parser.yy"6267 #line 845 "parser.yy" 6243 6268 { 6244 6269 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6250 6275 6251 6276 /* Line 1806 of yacc.c */ 6252 #line 85 8"parser.yy"6277 #line 850 "parser.yy" 6253 6278 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6254 6279 break; … … 6257 6282 6258 6283 /* Line 1806 of yacc.c */ 6259 #line 8 60"parser.yy"6284 #line 852 "parser.yy" 6260 6285 { 6261 6286 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6267 6292 6268 6293 /* Line 1806 of yacc.c */ 6269 #line 86 9"parser.yy"6270 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6294 #line 861 "parser.yy" 6295 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); } 6271 6296 break; 6272 6297 … … 6274 6299 6275 6300 /* Line 1806 of yacc.c */ 6276 #line 8 71"parser.yy"6277 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6301 #line 863 "parser.yy" 6302 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); } 6278 6303 break; 6279 6304 … … 6281 6306 6282 6307 /* Line 1806 of yacc.c */ 6283 #line 8 73"parser.yy"6284 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6308 #line 865 "parser.yy" 6309 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); } 6285 6310 break; 6286 6311 … … 6288 6313 6289 6314 /* Line 1806 of yacc.c */ 6290 #line 8 75"parser.yy"6291 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0); }6315 #line 867 "parser.yy" 6316 { (yyval.sn) = new StatementNode( StatementNode::Asm, 0, 0 ); } 6292 6317 break; 6293 6318 … … 6295 6320 6296 6321 /* Line 1806 of yacc.c */ 6297 #line 88 9"parser.yy"6322 #line 881 "parser.yy" 6298 6323 {} 6299 6324 break; … … 6302 6327 6303 6328 /* Line 1806 of yacc.c */ 6329 #line 885 "parser.yy" 6330 {} 6331 break; 6332 6333 case 217: 6334 6335 /* Line 1806 of yacc.c */ 6304 6336 #line 893 "parser.yy" 6337 { (yyval.decl) = 0; } 6338 break; 6339 6340 case 220: 6341 6342 /* Line 1806 of yacc.c */ 6343 #line 900 "parser.yy" 6344 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6345 break; 6346 6347 case 221: 6348 6349 /* Line 1806 of yacc.c */ 6350 #line 905 "parser.yy" 6351 { (yyval.decl) = 0; } 6352 break; 6353 6354 case 224: 6355 6356 /* Line 1806 of yacc.c */ 6357 #line 912 "parser.yy" 6358 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6359 break; 6360 6361 case 229: 6362 6363 /* Line 1806 of yacc.c */ 6364 #line 926 "parser.yy" 6305 6365 {} 6306 6366 break; 6307 6367 6308 case 217: 6309 6310 /* Line 1806 of yacc.c */ 6311 #line 901 "parser.yy" 6312 { (yyval.decl) = 0; } 6313 break; 6314 6315 case 220: 6316 6317 /* Line 1806 of yacc.c */ 6318 #line 908 "parser.yy" 6319 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6320 break; 6321 6322 case 221: 6323 6324 /* Line 1806 of yacc.c */ 6325 #line 913 "parser.yy" 6326 { (yyval.decl) = 0; } 6327 break; 6328 6329 case 224: 6330 6331 /* Line 1806 of yacc.c */ 6332 #line 920 "parser.yy" 6333 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6334 break; 6335 6336 case 229: 6337 6338 /* Line 1806 of yacc.c */ 6339 #line 934 "parser.yy" 6368 case 230: 6369 6370 /* Line 1806 of yacc.c */ 6371 #line 927 "parser.yy" 6340 6372 {} 6341 6373 break; 6342 6374 6343 case 230:6344 6345 /* Line 1806 of yacc.c */6346 #line 935 "parser.yy"6347 {}6348 break;6349 6350 6375 case 238: 6351 6376 6352 6377 /* Line 1806 of yacc.c */ 6353 #line 9 65"parser.yy"6378 #line 956 "parser.yy" 6354 6379 { 6355 6380 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6361 6386 6362 6387 /* Line 1806 of yacc.c */ 6363 #line 9 72"parser.yy"6388 #line 963 "parser.yy" 6364 6389 { 6365 6390 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6371 6396 6372 6397 /* Line 1806 of yacc.c */ 6373 #line 9 77"parser.yy"6398 #line 968 "parser.yy" 6374 6399 { 6375 6400 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6381 6406 6382 6407 /* Line 1806 of yacc.c */ 6383 #line 9 87"parser.yy"6408 #line 978 "parser.yy" 6384 6409 { 6385 6410 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6391 6416 6392 6417 /* Line 1806 of yacc.c */ 6393 #line 9 92"parser.yy"6418 #line 983 "parser.yy" 6394 6419 { 6395 6420 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); … … 6401 6426 6402 6427 /* Line 1806 of yacc.c */ 6403 #line 9 97"parser.yy"6428 #line 988 "parser.yy" 6404 6429 { 6405 6430 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); … … 6411 6436 6412 6437 /* Line 1806 of yacc.c */ 6413 #line 1005"parser.yy"6438 #line 996 "parser.yy" 6414 6439 { 6415 6440 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6421 6446 6422 6447 /* Line 1806 of yacc.c */ 6423 #line 10 10"parser.yy"6448 #line 1001 "parser.yy" 6424 6449 { 6425 6450 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6431 6456 6432 6457 /* Line 1806 of yacc.c */ 6433 #line 10 15"parser.yy"6458 #line 1006 "parser.yy" 6434 6459 { 6435 6460 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6441 6466 6442 6467 /* Line 1806 of yacc.c */ 6443 #line 10 20"parser.yy"6468 #line 1011 "parser.yy" 6444 6469 { 6445 6470 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6451 6476 6452 6477 /* Line 1806 of yacc.c */ 6453 #line 10 25"parser.yy"6478 #line 1016 "parser.yy" 6454 6479 { 6455 6480 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6461 6486 6462 6487 /* Line 1806 of yacc.c */ 6463 #line 10 33"parser.yy"6488 #line 1024 "parser.yy" 6464 6489 { 6465 typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok)) );6490 typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok) ) ); 6466 6491 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(5) - (10)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(8) - (10)].decl), 0, true ); 6467 6492 } … … 6471 6496 6472 6497 /* Line 1806 of yacc.c */ 6473 #line 10 38"parser.yy"6498 #line 1029 "parser.yy" 6474 6499 { 6475 typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok)) );6500 typedefTable.setNextIdentifier( *( (yyvsp[(5) - (10)].tok) ) ); 6476 6501 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(5) - (10)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(8) - (10)].decl), 0, true ); 6477 6502 } … … 6481 6506 6482 6507 /* Line 1806 of yacc.c */ 6483 #line 10 53"parser.yy"6508 #line 1042 "parser.yy" 6484 6509 { 6485 6510 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6490 6515 6491 6516 /* Line 1806 of yacc.c */ 6492 #line 10 57"parser.yy"6517 #line 1046 "parser.yy" 6493 6518 { 6494 6519 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6499 6524 6500 6525 /* Line 1806 of yacc.c */ 6501 #line 10 64"parser.yy"6526 #line 1053 "parser.yy" 6502 6527 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6503 6528 break; … … 6506 6531 6507 6532 /* Line 1806 of yacc.c */ 6508 #line 10 68"parser.yy"6533 #line 1057 "parser.yy" 6509 6534 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6510 6535 break; … … 6513 6538 6514 6539 /* Line 1806 of yacc.c */ 6515 #line 10 73"parser.yy"6540 #line 1062 "parser.yy" 6516 6541 { 6517 typedefTable.addToEnclosingScope( TypedefTable::TD );6542 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6518 6543 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 6519 6544 } … … 6523 6548 6524 6549 /* Line 1806 of yacc.c */ 6525 #line 10 78"parser.yy"6550 #line 1067 "parser.yy" 6526 6551 { 6527 typedefTable.addToEnclosingScope( TypedefTable::TD );6552 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6528 6553 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addTypedef(); 6529 6554 } … … 6533 6558 6534 6559 /* Line 1806 of yacc.c */ 6560 #line 1072 "parser.yy" 6561 { 6562 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6563 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6564 } 6565 break; 6566 6567 case 258: 6568 6569 /* Line 1806 of yacc.c */ 6535 6570 #line 1083 "parser.yy" 6536 6571 { 6537 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD); 6538 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6539 } 6540 break; 6541 6542 case 258: 6543 6544 /* Line 1806 of yacc.c */ 6545 #line 1095 "parser.yy" 6546 { 6547 typedefTable.addToEnclosingScope( TypedefTable::TD); 6572 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6548 6573 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef(); 6549 6574 } … … 6553 6578 6554 6579 /* Line 1806 of yacc.c */ 6555 #line 1 100"parser.yy"6580 #line 1088 "parser.yy" 6556 6581 { 6557 typedefTable.addToEnclosingScope( TypedefTable::TD );6582 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6558 6583 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() ); 6559 6584 } … … 6563 6588 6564 6589 /* Line 1806 of yacc.c */ 6565 #line 1 105"parser.yy"6590 #line 1093 "parser.yy" 6566 6591 { 6567 typedefTable.addToEnclosingScope( TypedefTable::TD );6592 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6568 6593 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef(); 6569 6594 } … … 6573 6598 6574 6599 /* Line 1806 of yacc.c */ 6575 #line 1 110"parser.yy"6600 #line 1098 "parser.yy" 6576 6601 { 6577 typedefTable.addToEnclosingScope( TypedefTable::TD );6602 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6578 6603 (yyval.decl) = (yyvsp[(3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef(); 6579 6604 } … … 6583 6608 6584 6609 /* Line 1806 of yacc.c */ 6585 #line 11 15"parser.yy"6610 #line 1103 "parser.yy" 6586 6611 { 6587 typedefTable.addToEnclosingScope( TypedefTable::TD );6588 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl))->addTypedef()->addType((yyvsp[(1) - (4)].decl));6612 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6613 (yyval.decl) = (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) ); 6589 6614 } 6590 6615 break; … … 6593 6618 6594 6619 /* Line 1806 of yacc.c */ 6595 #line 11 23"parser.yy"6620 #line 1111 "parser.yy" 6596 6621 { 6597 typedefTable.addToEnclosingScope( *((yyvsp[(2) - (4)].tok)), TypedefTable::TD);6622 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 6598 6623 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6599 6624 } … … 6603 6628 6604 6629 /* Line 1806 of yacc.c */ 6605 #line 11 28"parser.yy"6630 #line 1116 "parser.yy" 6606 6631 { 6607 typedefTable.addToEnclosingScope( *((yyvsp[(5) - (7)].tok)), TypedefTable::TD);6632 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 6608 6633 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6609 6634 } … … 6613 6638 6614 6639 /* Line 1806 of yacc.c */ 6615 #line 11 45"parser.yy"6640 #line 1133 "parser.yy" 6616 6641 { 6617 6642 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6618 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer((yyvsp[(4) - (4)].in));6643 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) ); 6619 6644 } 6620 6645 break; … … 6623 6648 6624 6649 /* Line 1806 of yacc.c */ 6625 #line 11 50"parser.yy"6650 #line 1138 "parser.yy" 6626 6651 { 6627 6652 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6628 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in)) ) );6653 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) ); 6629 6654 } 6630 6655 break; … … 6633 6658 6634 6659 /* Line 1806 of yacc.c */ 6660 #line 1160 "parser.yy" 6661 { (yyval.decl) = 0; } 6662 break; 6663 6664 case 282: 6665 6666 /* Line 1806 of yacc.c */ 6635 6667 #line 1172 "parser.yy" 6636 { (yyval.decl) = 0; } 6637 break; 6638 6639 case 282: 6668 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6669 break; 6670 6671 case 284: 6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1178 "parser.yy" 6675 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 6676 break; 6677 6678 case 285: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1183 "parser.yy" 6682 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6683 break; 6684 6685 case 286: 6640 6686 6641 6687 /* Line 1806 of yacc.c */ 6642 6688 #line 1185 "parser.yy" 6643 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6644 break; 6645 6646 case 284: 6689 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6690 break; 6691 6692 case 287: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1187 "parser.yy" 6696 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6697 break; 6698 6699 case 288: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1189 "parser.yy" 6703 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6704 break; 6705 6706 case 289: 6647 6707 6648 6708 /* Line 1806 of yacc.c */ 6649 6709 #line 1191 "parser.yy" 6650 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Attribute ); }6651 break;6652 6653 case 285:6654 6655 /* Line 1806 of yacc.c */6656 #line 1196 "parser.yy"6657 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }6658 break;6659 6660 case 286:6661 6662 /* Line 1806 of yacc.c */6663 #line 1198 "parser.yy"6664 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }6665 break;6666 6667 case 287:6668 6669 /* Line 1806 of yacc.c */6670 #line 1200 "parser.yy"6671 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }6672 break;6673 6674 case 288:6675 6676 /* Line 1806 of yacc.c */6677 #line 1202 "parser.yy"6678 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }6679 break;6680 6681 case 289:6682 6683 /* Line 1806 of yacc.c */6684 #line 1204 "parser.yy"6685 6710 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6686 6711 break; … … 6689 6714 6690 6715 /* Line 1806 of yacc.c */ 6691 #line 1 206"parser.yy"6716 #line 1193 "parser.yy" 6692 6717 { 6693 6718 typedefTable.enterScope(); … … 6698 6723 6699 6724 /* Line 1806 of yacc.c */ 6700 #line 1 210"parser.yy"6725 #line 1197 "parser.yy" 6701 6726 { 6702 6727 typedefTable.leaveScope(); … … 6708 6733 6709 6734 /* Line 1806 of yacc.c */ 6735 #line 1206 "parser.yy" 6736 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6737 break; 6738 6739 case 294: 6740 6741 /* Line 1806 of yacc.c */ 6742 #line 1208 "parser.yy" 6743 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6744 break; 6745 6746 case 296: 6747 6748 /* Line 1806 of yacc.c */ 6710 6749 #line 1219 "parser.yy" 6711 6750 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6712 6751 break; 6713 6752 6714 case 294: 6715 6716 /* Line 1806 of yacc.c */ 6717 #line 1221 "parser.yy" 6753 case 298: 6754 6755 /* Line 1806 of yacc.c */ 6756 #line 1228 "parser.yy" 6757 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6758 break; 6759 6760 case 299: 6761 6762 /* Line 1806 of yacc.c */ 6763 #line 1230 "parser.yy" 6764 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6765 break; 6766 6767 case 300: 6768 6769 /* Line 1806 of yacc.c */ 6770 #line 1232 "parser.yy" 6771 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6772 break; 6773 6774 case 301: 6775 6776 /* Line 1806 of yacc.c */ 6777 #line 1234 "parser.yy" 6778 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6779 break; 6780 6781 case 302: 6782 6783 /* Line 1806 of yacc.c */ 6784 #line 1236 "parser.yy" 6785 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6786 break; 6787 6788 case 303: 6789 6790 /* Line 1806 of yacc.c */ 6791 #line 1238 "parser.yy" 6792 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6793 break; 6794 6795 case 304: 6796 6797 /* Line 1806 of yacc.c */ 6798 #line 1240 "parser.yy" 6799 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6800 break; 6801 6802 case 305: 6803 6804 /* Line 1806 of yacc.c */ 6805 #line 1242 "parser.yy" 6806 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6807 break; 6808 6809 case 306: 6810 6811 /* Line 1806 of yacc.c */ 6812 #line 1247 "parser.yy" 6813 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6814 break; 6815 6816 case 307: 6817 6818 /* Line 1806 of yacc.c */ 6819 #line 1249 "parser.yy" 6820 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6821 break; 6822 6823 case 308: 6824 6825 /* Line 1806 of yacc.c */ 6826 #line 1251 "parser.yy" 6827 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6828 break; 6829 6830 case 309: 6831 6832 /* Line 1806 of yacc.c */ 6833 #line 1253 "parser.yy" 6834 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6835 break; 6836 6837 case 310: 6838 6839 /* Line 1806 of yacc.c */ 6840 #line 1255 "parser.yy" 6841 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6842 break; 6843 6844 case 311: 6845 6846 /* Line 1806 of yacc.c */ 6847 #line 1257 "parser.yy" 6848 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6849 break; 6850 6851 case 312: 6852 6853 /* Line 1806 of yacc.c */ 6854 #line 1259 "parser.yy" 6855 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6856 break; 6857 6858 case 313: 6859 6860 /* Line 1806 of yacc.c */ 6861 #line 1261 "parser.yy" 6862 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6863 break; 6864 6865 case 314: 6866 6867 /* Line 1806 of yacc.c */ 6868 #line 1263 "parser.yy" 6869 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6870 break; 6871 6872 case 315: 6873 6874 /* Line 1806 of yacc.c */ 6875 #line 1265 "parser.yy" 6876 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6877 break; 6878 6879 case 316: 6880 6881 /* Line 1806 of yacc.c */ 6882 #line 1267 "parser.yy" 6883 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6884 break; 6885 6886 case 317: 6887 6888 /* Line 1806 of yacc.c */ 6889 #line 1269 "parser.yy" 6890 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6891 break; 6892 6893 case 319: 6894 6895 /* Line 1806 of yacc.c */ 6896 #line 1276 "parser.yy" 6897 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6898 break; 6899 6900 case 320: 6901 6902 /* Line 1806 of yacc.c */ 6903 #line 1278 "parser.yy" 6904 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6905 break; 6906 6907 case 321: 6908 6909 /* Line 1806 of yacc.c */ 6910 #line 1280 "parser.yy" 6718 6911 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6719 6912 break; 6720 6913 6721 case 296: 6722 6723 /* Line 1806 of yacc.c */ 6724 #line 1232 "parser.yy" 6914 case 322: 6915 6916 /* Line 1806 of yacc.c */ 6917 #line 1282 "parser.yy" 6918 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6919 break; 6920 6921 case 324: 6922 6923 /* Line 1806 of yacc.c */ 6924 #line 1288 "parser.yy" 6925 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6926 break; 6927 6928 case 326: 6929 6930 /* Line 1806 of yacc.c */ 6931 #line 1295 "parser.yy" 6932 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6933 break; 6934 6935 case 327: 6936 6937 /* Line 1806 of yacc.c */ 6938 #line 1297 "parser.yy" 6725 6939 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6726 6940 break; 6727 6941 6728 case 298: 6729 6730 /* Line 1806 of yacc.c */ 6731 #line 1241 "parser.yy" 6732 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6733 break; 6734 6735 case 299: 6736 6737 /* Line 1806 of yacc.c */ 6738 #line 1243 "parser.yy" 6739 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6740 break; 6741 6742 case 300: 6743 6744 /* Line 1806 of yacc.c */ 6745 #line 1245 "parser.yy" 6746 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6747 break; 6748 6749 case 301: 6750 6751 /* Line 1806 of yacc.c */ 6752 #line 1247 "parser.yy" 6753 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6754 break; 6755 6756 case 302: 6757 6758 /* Line 1806 of yacc.c */ 6759 #line 1249 "parser.yy" 6760 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 6761 break; 6762 6763 case 303: 6764 6765 /* Line 1806 of yacc.c */ 6766 #line 1251 "parser.yy" 6767 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6768 break; 6769 6770 case 304: 6771 6772 /* Line 1806 of yacc.c */ 6773 #line 1253 "parser.yy" 6774 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 6775 break; 6776 6777 case 305: 6778 6779 /* Line 1806 of yacc.c */ 6780 #line 1255 "parser.yy" 6781 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6782 break; 6783 6784 case 306: 6785 6786 /* Line 1806 of yacc.c */ 6787 #line 1260 "parser.yy" 6788 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6789 break; 6790 6791 case 307: 6792 6793 /* Line 1806 of yacc.c */ 6794 #line 1262 "parser.yy" 6795 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6796 break; 6797 6798 case 308: 6799 6800 /* Line 1806 of yacc.c */ 6801 #line 1264 "parser.yy" 6802 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6803 break; 6804 6805 case 309: 6806 6807 /* Line 1806 of yacc.c */ 6808 #line 1266 "parser.yy" 6809 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6810 break; 6811 6812 case 310: 6813 6814 /* Line 1806 of yacc.c */ 6815 #line 1268 "parser.yy" 6816 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6817 break; 6818 6819 case 311: 6820 6821 /* Line 1806 of yacc.c */ 6822 #line 1270 "parser.yy" 6823 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6824 break; 6825 6826 case 312: 6827 6828 /* Line 1806 of yacc.c */ 6829 #line 1272 "parser.yy" 6830 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6831 break; 6832 6833 case 313: 6834 6835 /* Line 1806 of yacc.c */ 6836 #line 1274 "parser.yy" 6837 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6838 break; 6839 6840 case 314: 6841 6842 /* Line 1806 of yacc.c */ 6843 #line 1276 "parser.yy" 6844 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6845 break; 6846 6847 case 315: 6848 6849 /* Line 1806 of yacc.c */ 6850 #line 1278 "parser.yy" 6851 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6852 break; 6853 6854 case 316: 6855 6856 /* Line 1806 of yacc.c */ 6857 #line 1280 "parser.yy" 6858 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6859 break; 6860 6861 case 317: 6862 6863 /* Line 1806 of yacc.c */ 6864 #line 1282 "parser.yy" 6865 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6866 break; 6867 6868 case 319: 6869 6870 /* Line 1806 of yacc.c */ 6871 #line 1289 "parser.yy" 6942 case 328: 6943 6944 /* Line 1806 of yacc.c */ 6945 #line 1299 "parser.yy" 6946 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6947 break; 6948 6949 case 329: 6950 6951 /* Line 1806 of yacc.c */ 6952 #line 1304 "parser.yy" 6953 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6954 break; 6955 6956 case 330: 6957 6958 /* Line 1806 of yacc.c */ 6959 #line 1306 "parser.yy" 6960 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6961 break; 6962 6963 case 331: 6964 6965 /* Line 1806 of yacc.c */ 6966 #line 1308 "parser.yy" 6967 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6968 break; 6969 6970 case 332: 6971 6972 /* Line 1806 of yacc.c */ 6973 #line 1310 "parser.yy" 6974 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6975 break; 6976 6977 case 334: 6978 6979 /* Line 1806 of yacc.c */ 6980 #line 1316 "parser.yy" 6872 6981 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6873 6982 break; 6874 6983 6875 case 3 20:6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1 291"parser.yy"6984 case 335: 6985 6986 /* Line 1806 of yacc.c */ 6987 #line 1318 "parser.yy" 6879 6988 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6880 6989 break; 6881 6990 6882 case 3 21:6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1 293"parser.yy"6991 case 336: 6992 6993 /* Line 1806 of yacc.c */ 6994 #line 1320 "parser.yy" 6886 6995 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6887 6996 break; 6888 6997 6889 case 322: 6890 6891 /* Line 1806 of yacc.c */ 6892 #line 1295 "parser.yy" 6893 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6894 break; 6895 6896 case 324: 6897 6898 /* Line 1806 of yacc.c */ 6899 #line 1301 "parser.yy" 6900 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6901 break; 6902 6903 case 326: 6904 6905 /* Line 1806 of yacc.c */ 6906 #line 1308 "parser.yy" 6998 case 338: 6999 7000 /* Line 1806 of yacc.c */ 7001 #line 1326 "parser.yy" 6907 7002 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6908 7003 break; 6909 7004 6910 case 3 27:6911 6912 /* Line 1806 of yacc.c */ 6913 #line 13 10"parser.yy"7005 case 339: 7006 7007 /* Line 1806 of yacc.c */ 7008 #line 1328 "parser.yy" 6914 7009 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6915 7010 break; 6916 7011 6917 case 328: 6918 6919 /* Line 1806 of yacc.c */ 6920 #line 1312 "parser.yy" 6921 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6922 break; 6923 6924 case 329: 6925 6926 /* Line 1806 of yacc.c */ 6927 #line 1317 "parser.yy" 6928 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6929 break; 6930 6931 case 330: 6932 6933 /* Line 1806 of yacc.c */ 6934 #line 1319 "parser.yy" 6935 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6936 break; 6937 6938 case 331: 6939 6940 /* Line 1806 of yacc.c */ 6941 #line 1321 "parser.yy" 6942 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6943 break; 6944 6945 case 332: 6946 6947 /* Line 1806 of yacc.c */ 6948 #line 1323 "parser.yy" 6949 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6950 break; 6951 6952 case 334: 6953 6954 /* Line 1806 of yacc.c */ 6955 #line 1329 "parser.yy" 7012 case 341: 7013 7014 /* Line 1806 of yacc.c */ 7015 #line 1334 "parser.yy" 6956 7016 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6957 7017 break; 6958 7018 6959 case 3 35:6960 6961 /* Line 1806 of yacc.c */ 6962 #line 133 1"parser.yy"7019 case 342: 7020 7021 /* Line 1806 of yacc.c */ 7022 #line 1336 "parser.yy" 6963 7023 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6964 7024 break; 6965 7025 6966 case 3 36:6967 6968 /* Line 1806 of yacc.c */ 6969 #line 133 3"parser.yy"7026 case 343: 7027 7028 /* Line 1806 of yacc.c */ 7029 #line 1338 "parser.yy" 6970 7030 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6971 7031 break; 6972 7032 6973 case 338: 6974 6975 /* Line 1806 of yacc.c */ 6976 #line 1339 "parser.yy" 7033 case 344: 7034 7035 /* Line 1806 of yacc.c */ 7036 #line 1343 "parser.yy" 7037 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7038 break; 7039 7040 case 345: 7041 7042 /* Line 1806 of yacc.c */ 7043 #line 1345 "parser.yy" 7044 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7045 break; 7046 7047 case 346: 7048 7049 /* Line 1806 of yacc.c */ 7050 #line 1347 "parser.yy" 7051 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7052 break; 7053 7054 case 349: 7055 7056 /* Line 1806 of yacc.c */ 7057 #line 1357 "parser.yy" 7058 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); } 7059 break; 7060 7061 case 350: 7062 7063 /* Line 1806 of yacc.c */ 7064 #line 1359 "parser.yy" 7065 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); } 7066 break; 7067 7068 case 351: 7069 7070 /* Line 1806 of yacc.c */ 7071 #line 1361 "parser.yy" 7072 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); } 7073 break; 7074 7075 case 352: 7076 7077 /* Line 1806 of yacc.c */ 7078 #line 1363 "parser.yy" 7079 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); } 7080 break; 7081 7082 case 353: 7083 7084 /* Line 1806 of yacc.c */ 7085 #line 1365 "parser.yy" 7086 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); } 7087 break; 7088 7089 case 354: 7090 7091 /* Line 1806 of yacc.c */ 7092 #line 1367 "parser.yy" 7093 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); } 7094 break; 7095 7096 case 355: 7097 7098 /* Line 1806 of yacc.c */ 7099 #line 1369 "parser.yy" 7100 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); } 7101 break; 7102 7103 case 356: 7104 7105 /* Line 1806 of yacc.c */ 7106 #line 1371 "parser.yy" 7107 {} 7108 break; 7109 7110 case 357: 7111 7112 /* Line 1806 of yacc.c */ 7113 #line 1374 "parser.yy" 7114 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); } 7115 break; 7116 7117 case 358: 7118 7119 /* Line 1806 of yacc.c */ 7120 #line 1376 "parser.yy" 7121 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); } 7122 break; 7123 7124 case 359: 7125 7126 /* Line 1806 of yacc.c */ 7127 #line 1381 "parser.yy" 7128 { (yyval.aggKey) = DeclarationNode::Struct; } 7129 break; 7130 7131 case 360: 7132 7133 /* Line 1806 of yacc.c */ 7134 #line 1383 "parser.yy" 7135 { (yyval.aggKey) = DeclarationNode::Union; } 7136 break; 7137 7138 case 361: 7139 7140 /* Line 1806 of yacc.c */ 7141 #line 1388 "parser.yy" 7142 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7143 break; 7144 7145 case 362: 7146 7147 /* Line 1806 of yacc.c */ 7148 #line 1390 "parser.yy" 7149 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7150 break; 7151 7152 case 364: 7153 7154 /* Line 1806 of yacc.c */ 7155 #line 1396 "parser.yy" 7156 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7157 break; 7158 7159 case 366: 7160 7161 /* Line 1806 of yacc.c */ 7162 #line 1399 "parser.yy" 7163 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7164 break; 7165 7166 case 368: 7167 7168 /* Line 1806 of yacc.c */ 7169 #line 1405 "parser.yy" 7170 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7171 break; 7172 7173 case 369: 7174 7175 /* Line 1806 of yacc.c */ 7176 #line 1407 "parser.yy" 7177 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7178 break; 7179 7180 case 370: 7181 7182 /* Line 1806 of yacc.c */ 7183 #line 1409 "parser.yy" 7184 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7185 break; 7186 7187 case 371: 7188 7189 /* Line 1806 of yacc.c */ 7190 #line 1414 "parser.yy" 7191 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7192 break; 7193 7194 case 372: 7195 7196 /* Line 1806 of yacc.c */ 7197 #line 1416 "parser.yy" 7198 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7199 break; 7200 7201 case 373: 7202 7203 /* Line 1806 of yacc.c */ 7204 #line 1421 "parser.yy" 7205 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7206 break; 7207 7208 case 374: 7209 7210 /* Line 1806 of yacc.c */ 7211 #line 1423 "parser.yy" 7212 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7213 break; 7214 7215 case 375: 7216 7217 /* Line 1806 of yacc.c */ 7218 #line 1426 "parser.yy" 7219 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7220 break; 7221 7222 case 376: 7223 7224 /* Line 1806 of yacc.c */ 7225 #line 1429 "parser.yy" 7226 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7227 break; 7228 7229 case 378: 7230 7231 /* Line 1806 of yacc.c */ 7232 #line 1435 "parser.yy" 7233 { (yyval.en) = 0; } 7234 break; 7235 7236 case 379: 7237 7238 /* Line 1806 of yacc.c */ 7239 #line 1437 "parser.yy" 7240 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7241 break; 7242 7243 case 380: 7244 7245 /* Line 1806 of yacc.c */ 7246 #line 1442 "parser.yy" 7247 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7248 break; 7249 7250 case 382: 7251 7252 /* Line 1806 of yacc.c */ 7253 #line 1451 "parser.yy" 7254 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7255 break; 7256 7257 case 383: 7258 7259 /* Line 1806 of yacc.c */ 7260 #line 1453 "parser.yy" 7261 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); } 7262 break; 7263 7264 case 384: 7265 7266 /* Line 1806 of yacc.c */ 7267 #line 1455 "parser.yy" 7268 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); } 7269 break; 7270 7271 case 385: 7272 7273 /* Line 1806 of yacc.c */ 7274 #line 1460 "parser.yy" 7275 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7276 break; 7277 7278 case 386: 7279 7280 /* Line 1806 of yacc.c */ 7281 #line 1462 "parser.yy" 7282 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7283 break; 7284 7285 case 387: 7286 7287 /* Line 1806 of yacc.c */ 7288 #line 1467 "parser.yy" 7289 { (yyval.en) = 0; } 7290 break; 7291 7292 case 388: 7293 7294 /* Line 1806 of yacc.c */ 7295 #line 1469 "parser.yy" 7296 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7297 break; 7298 7299 case 389: 7300 7301 /* Line 1806 of yacc.c */ 7302 #line 1476 "parser.yy" 7303 { (yyval.decl) = 0; } 7304 break; 7305 7306 case 393: 7307 7308 /* Line 1806 of yacc.c */ 7309 #line 1484 "parser.yy" 7310 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7311 break; 7312 7313 case 394: 7314 7315 /* Line 1806 of yacc.c */ 7316 #line 1486 "parser.yy" 7317 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7318 break; 7319 7320 case 395: 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1488 "parser.yy" 7324 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7325 break; 7326 7327 case 397: 7328 7329 /* Line 1806 of yacc.c */ 7330 #line 1496 "parser.yy" 7331 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7332 break; 7333 7334 case 398: 7335 7336 /* Line 1806 of yacc.c */ 7337 #line 1498 "parser.yy" 7338 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7339 break; 7340 7341 case 399: 7342 7343 /* Line 1806 of yacc.c */ 7344 #line 1500 "parser.yy" 7345 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7346 break; 7347 7348 case 401: 7349 7350 /* Line 1806 of yacc.c */ 7351 #line 1506 "parser.yy" 7352 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7353 break; 7354 7355 case 402: 7356 7357 /* Line 1806 of yacc.c */ 7358 #line 1511 "parser.yy" 7359 { (yyval.decl) = 0; } 7360 break; 7361 7362 case 405: 7363 7364 /* Line 1806 of yacc.c */ 7365 #line 1518 "parser.yy" 7366 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7367 break; 7368 7369 case 408: 7370 7371 /* Line 1806 of yacc.c */ 7372 #line 1525 "parser.yy" 7373 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7374 break; 7375 7376 case 409: 7377 7378 /* Line 1806 of yacc.c */ 7379 #line 1527 "parser.yy" 7380 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7381 break; 7382 7383 case 411: 7384 7385 /* Line 1806 of yacc.c */ 7386 #line 1536 "parser.yy" 7387 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7388 break; 7389 7390 case 412: 7391 7392 /* Line 1806 of yacc.c */ 7393 #line 1539 "parser.yy" 7394 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7395 break; 7396 7397 case 413: 7398 7399 /* Line 1806 of yacc.c */ 7400 #line 1541 "parser.yy" 7401 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7402 break; 7403 7404 case 418: 7405 7406 /* Line 1806 of yacc.c */ 7407 #line 1551 "parser.yy" 6977 7408 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6978 7409 break; 6979 7410 6980 case 339: 6981 6982 /* Line 1806 of yacc.c */ 6983 #line 1341 "parser.yy" 6984 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6985 break; 6986 6987 case 341: 6988 6989 /* Line 1806 of yacc.c */ 6990 #line 1347 "parser.yy" 6991 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6992 break; 6993 6994 case 342: 6995 6996 /* Line 1806 of yacc.c */ 6997 #line 1349 "parser.yy" 6998 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6999 break; 7000 7001 case 343: 7002 7003 /* Line 1806 of yacc.c */ 7004 #line 1351 "parser.yy" 7005 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7006 break; 7007 7008 case 344: 7009 7010 /* Line 1806 of yacc.c */ 7011 #line 1356 "parser.yy" 7012 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 7013 break; 7014 7015 case 345: 7016 7017 /* Line 1806 of yacc.c */ 7018 #line 1358 "parser.yy" 7019 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7020 break; 7021 7022 case 346: 7023 7024 /* Line 1806 of yacc.c */ 7025 #line 1360 "parser.yy" 7026 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7027 break; 7028 7029 case 349: 7030 7031 /* Line 1806 of yacc.c */ 7032 #line 1370 "parser.yy" 7033 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, 0, (yyvsp[(3) - (4)].decl) ); } 7034 break; 7035 7036 case 350: 7037 7038 /* Line 1806 of yacc.c */ 7039 #line 1372 "parser.yy" 7040 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, 0 ); } 7041 break; 7042 7043 case 351: 7044 7045 /* Line 1806 of yacc.c */ 7046 #line 1374 "parser.yy" 7047 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, 0, (yyvsp[(4) - (5)].decl) ); } 7048 break; 7049 7050 case 352: 7051 7052 /* Line 1806 of yacc.c */ 7053 #line 1376 "parser.yy" 7054 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (9)].aggKey), 0, (yyvsp[(4) - (9)].decl), 0, (yyvsp[(8) - (9)].decl) ); } 7055 break; 7056 7057 case 353: 7058 7059 /* Line 1806 of yacc.c */ 7060 #line 1378 "parser.yy" 7061 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), (yyvsp[(4) - (7)].decl), 0, 0 ); } 7062 break; 7063 7064 case 354: 7065 7066 /* Line 1806 of yacc.c */ 7067 #line 1380 "parser.yy" 7068 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (10)].aggKey), (yyvsp[(7) - (10)].tok), (yyvsp[(4) - (10)].decl), 0, (yyvsp[(9) - (10)].decl) ); } 7069 break; 7070 7071 case 355: 7072 7073 /* Line 1806 of yacc.c */ 7074 #line 1382 "parser.yy" 7075 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (12)].aggKey), 0, (yyvsp[(4) - (12)].decl), (yyvsp[(8) - (12)].en), (yyvsp[(11) - (12)].decl) ); } 7076 break; 7077 7078 case 356: 7079 7080 /* Line 1806 of yacc.c */ 7081 #line 1385 "parser.yy" 7082 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(7) - (7)].tok), 0, (yyvsp[(4) - (7)].en), 0 ); } 7083 break; 7084 7085 case 357: 7086 7087 /* Line 1806 of yacc.c */ 7088 #line 1387 "parser.yy" 7089 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (13)].aggKey), (yyvsp[(10) - (13)].tok), (yyvsp[(4) - (13)].decl), (yyvsp[(8) - (13)].en), (yyvsp[(12) - (13)].decl) ); } 7090 break; 7091 7092 case 358: 7093 7094 /* Line 1806 of yacc.c */ 7095 #line 1392 "parser.yy" 7096 { (yyval.aggKey) = DeclarationNode::Struct; } 7097 break; 7098 7099 case 359: 7100 7101 /* Line 1806 of yacc.c */ 7102 #line 1394 "parser.yy" 7103 { (yyval.aggKey) = DeclarationNode::Union; } 7104 break; 7105 7106 case 360: 7107 7108 /* Line 1806 of yacc.c */ 7109 #line 1399 "parser.yy" 7110 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7111 break; 7112 7113 case 361: 7114 7115 /* Line 1806 of yacc.c */ 7116 #line 1401 "parser.yy" 7117 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7118 break; 7119 7120 case 363: 7121 7122 /* Line 1806 of yacc.c */ 7123 #line 1407 "parser.yy" 7124 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7125 break; 7126 7127 case 365: 7128 7129 /* Line 1806 of yacc.c */ 7130 #line 1410 "parser.yy" 7131 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7132 break; 7133 7134 case 367: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1416 "parser.yy" 7138 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7139 break; 7140 7141 case 368: 7142 7143 /* Line 1806 of yacc.c */ 7144 #line 1418 "parser.yy" 7145 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7146 break; 7147 7148 case 369: 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1420 "parser.yy" 7152 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7153 break; 7154 7155 case 370: 7156 7157 /* Line 1806 of yacc.c */ 7158 #line 1425 "parser.yy" 7159 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7160 break; 7161 7162 case 371: 7163 7164 /* Line 1806 of yacc.c */ 7165 #line 1427 "parser.yy" 7166 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7167 break; 7168 7169 case 372: 7170 7171 /* Line 1806 of yacc.c */ 7172 #line 1432 "parser.yy" 7173 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7174 break; 7175 7176 case 373: 7177 7178 /* Line 1806 of yacc.c */ 7179 #line 1434 "parser.yy" 7180 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7181 break; 7182 7183 case 374: 7184 7185 /* Line 1806 of yacc.c */ 7186 #line 1437 "parser.yy" 7187 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7188 break; 7189 7190 case 375: 7191 7192 /* Line 1806 of yacc.c */ 7193 #line 1440 "parser.yy" 7194 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7195 break; 7196 7197 case 377: 7198 7199 /* Line 1806 of yacc.c */ 7200 #line 1446 "parser.yy" 7201 { (yyval.en) = 0; } 7202 break; 7203 7204 case 378: 7205 7206 /* Line 1806 of yacc.c */ 7207 #line 1448 "parser.yy" 7208 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7209 break; 7210 7211 case 379: 7212 7213 /* Line 1806 of yacc.c */ 7214 #line 1453 "parser.yy" 7215 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7216 break; 7217 7218 case 381: 7219 7220 /* Line 1806 of yacc.c */ 7221 #line 1462 "parser.yy" 7222 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7223 break; 7224 7225 case 382: 7226 7227 /* Line 1806 of yacc.c */ 7228 #line 1464 "parser.yy" 7229 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); } 7230 break; 7231 7232 case 383: 7233 7234 /* Line 1806 of yacc.c */ 7235 #line 1466 "parser.yy" 7236 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); } 7237 break; 7238 7239 case 384: 7240 7241 /* Line 1806 of yacc.c */ 7242 #line 1471 "parser.yy" 7243 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7244 break; 7245 7246 case 385: 7247 7248 /* Line 1806 of yacc.c */ 7249 #line 1473 "parser.yy" 7250 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7251 break; 7252 7253 case 386: 7254 7255 /* Line 1806 of yacc.c */ 7256 #line 1478 "parser.yy" 7257 { (yyval.en) = 0; } 7258 break; 7259 7260 case 387: 7261 7262 /* Line 1806 of yacc.c */ 7263 #line 1480 "parser.yy" 7264 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7265 break; 7266 7267 case 388: 7268 7269 /* Line 1806 of yacc.c */ 7270 #line 1487 "parser.yy" 7271 { (yyval.decl) = 0; } 7272 break; 7273 7274 case 392: 7275 7276 /* Line 1806 of yacc.c */ 7277 #line 1495 "parser.yy" 7278 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7279 break; 7280 7281 case 393: 7282 7283 /* Line 1806 of yacc.c */ 7284 #line 1497 "parser.yy" 7285 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7286 break; 7287 7288 case 394: 7289 7290 /* Line 1806 of yacc.c */ 7291 #line 1499 "parser.yy" 7292 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7293 break; 7294 7295 case 396: 7296 7297 /* Line 1806 of yacc.c */ 7298 #line 1508 "parser.yy" 7299 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7300 break; 7301 7302 case 397: 7303 7304 /* Line 1806 of yacc.c */ 7305 #line 1510 "parser.yy" 7306 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7307 break; 7308 7309 case 398: 7310 7311 /* Line 1806 of yacc.c */ 7312 #line 1512 "parser.yy" 7313 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7314 break; 7315 7316 case 400: 7317 7318 /* Line 1806 of yacc.c */ 7319 #line 1518 "parser.yy" 7320 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7321 break; 7322 7323 case 401: 7324 7325 /* Line 1806 of yacc.c */ 7326 #line 1523 "parser.yy" 7327 { (yyval.decl) = 0; } 7328 break; 7329 7330 case 404: 7331 7332 /* Line 1806 of yacc.c */ 7333 #line 1530 "parser.yy" 7334 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7335 break; 7336 7337 case 407: 7338 7339 /* Line 1806 of yacc.c */ 7340 #line 1537 "parser.yy" 7341 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7342 break; 7343 7344 case 408: 7345 7346 /* Line 1806 of yacc.c */ 7347 #line 1539 "parser.yy" 7348 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7349 break; 7350 7351 case 410: 7352 7353 /* Line 1806 of yacc.c */ 7354 #line 1549 "parser.yy" 7355 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7356 break; 7357 7358 case 411: 7359 7360 /* Line 1806 of yacc.c */ 7361 #line 1552 "parser.yy" 7362 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7363 break; 7364 7365 case 412: 7366 7367 /* Line 1806 of yacc.c */ 7368 #line 1554 "parser.yy" 7369 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7370 break; 7371 7372 case 417: 7373 7374 /* Line 1806 of yacc.c */ 7375 #line 1564 "parser.yy" 7376 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7377 break; 7378 7379 case 419: 7380 7381 /* Line 1806 of yacc.c */ 7382 #line 1570 "parser.yy" 7411 case 420: 7412 7413 /* Line 1806 of yacc.c */ 7414 #line 1557 "parser.yy" 7383 7415 { 7384 7416 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7385 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en)) );7417 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 7386 7418 } 7387 7419 break; 7388 7420 7389 case 42 0:7390 7391 /* Line 1806 of yacc.c */ 7392 #line 15 75"parser.yy"7421 case 421: 7422 7423 /* Line 1806 of yacc.c */ 7424 #line 1562 "parser.yy" 7393 7425 { 7394 7426 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7395 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en)) );7427 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 7396 7428 } 7397 7429 break; 7398 7430 7399 case 42 2:7400 7401 /* Line 1806 of yacc.c */ 7402 #line 15 84"parser.yy"7431 case 423: 7432 7433 /* Line 1806 of yacc.c */ 7434 #line 1571 "parser.yy" 7403 7435 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7404 7436 break; 7405 7437 7406 case 42 3:7407 7408 /* Line 1806 of yacc.c */ 7409 #line 15 93"parser.yy"7438 case 424: 7439 7440 /* Line 1806 of yacc.c */ 7441 #line 1580 "parser.yy" 7410 7442 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7411 7443 break; 7412 7444 7413 case 42 4:7414 7415 /* Line 1806 of yacc.c */ 7416 #line 15 95"parser.yy"7445 case 425: 7446 7447 /* Line 1806 of yacc.c */ 7448 #line 1582 "parser.yy" 7417 7449 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7418 7450 break; … … 7421 7453 7422 7454 /* Line 1806 of yacc.c */ 7455 #line 1607 "parser.yy" 7456 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7457 break; 7458 7459 case 440: 7460 7461 /* Line 1806 of yacc.c */ 7462 #line 1615 "parser.yy" 7463 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7464 break; 7465 7466 case 441: 7467 7468 /* Line 1806 of yacc.c */ 7423 7469 #line 1620 "parser.yy" 7424 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7425 break;7426 7427 case 440:7428 7429 /* Line 1806 of yacc.c */7430 #line 1628 "parser.yy"7431 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7432 break;7433 7434 case 441:7435 7436 /* Line 1806 of yacc.c */7437 #line 1633 "parser.yy"7438 7470 { (yyval.in) = 0; } 7439 7471 break; … … 7442 7474 7443 7475 /* Line 1806 of yacc.c */ 7476 #line 1621 "parser.yy" 7477 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7478 break; 7479 7480 case 443: 7481 7482 /* Line 1806 of yacc.c */ 7483 #line 1625 "parser.yy" 7484 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7485 break; 7486 7487 case 444: 7488 7489 /* Line 1806 of yacc.c */ 7490 #line 1626 "parser.yy" 7491 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7492 break; 7493 7494 case 446: 7495 7496 /* Line 1806 of yacc.c */ 7497 #line 1631 "parser.yy" 7498 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7499 break; 7500 7501 case 447: 7502 7503 /* Line 1806 of yacc.c */ 7504 #line 1632 "parser.yy" 7505 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7506 break; 7507 7508 case 448: 7509 7510 /* Line 1806 of yacc.c */ 7444 7511 #line 1634 "parser.yy" 7445 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7446 break; 7447 7448 case 443: 7449 7450 /* Line 1806 of yacc.c */ 7451 #line 1638 "parser.yy" 7452 { (yyval.in) = new InitializerNode((yyvsp[(1) - (1)].en)); } 7453 break; 7454 7455 case 444: 7456 7457 /* Line 1806 of yacc.c */ 7458 #line 1639 "parser.yy" 7459 { (yyval.in) = new InitializerNode((yyvsp[(2) - (4)].in), true); } 7460 break; 7461 7462 case 446: 7463 7464 /* Line 1806 of yacc.c */ 7465 #line 1644 "parser.yy" 7466 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7467 break; 7468 7469 case 447: 7470 7471 /* Line 1806 of yacc.c */ 7472 #line 1645 "parser.yy" 7473 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link((yyvsp[(3) - (3)].in)) ); } 7474 break; 7475 7476 case 448: 7477 7478 /* Line 1806 of yacc.c */ 7479 #line 1647 "parser.yy" 7480 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators((yyvsp[(3) - (4)].en)) ) ); } 7512 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7481 7513 break; 7482 7514 … … 7484 7516 7485 7517 /* Line 1806 of yacc.c */ 7486 #line 16 63"parser.yy"7518 #line 1650 "parser.yy" 7487 7519 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7488 7520 break; … … 7491 7523 7492 7524 /* Line 1806 of yacc.c */ 7525 #line 1655 "parser.yy" 7526 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7527 break; 7528 7529 case 453: 7530 7531 /* Line 1806 of yacc.c */ 7532 #line 1661 "parser.yy" 7533 { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); } 7534 break; 7535 7536 case 454: 7537 7538 /* Line 1806 of yacc.c */ 7539 #line 1664 "parser.yy" 7540 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7541 break; 7542 7543 case 455: 7544 7545 /* Line 1806 of yacc.c */ 7546 #line 1666 "parser.yy" 7547 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7548 break; 7549 7550 case 456: 7551 7552 /* Line 1806 of yacc.c */ 7493 7553 #line 1668 "parser.yy" 7494 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7495 break; 7496 7497 case 453: 7498 7499 /* Line 1806 of yacc.c */ 7500 #line 1673 "parser.yy" 7501 { (yyval.en) = new VarRefNode( (yyvsp[(2) - (2)].tok) ); } 7502 break; 7503 7504 case 454: 7505 7506 /* Line 1806 of yacc.c */ 7507 #line 1677 "parser.yy" 7508 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7509 break; 7510 7511 case 455: 7512 7513 /* Line 1806 of yacc.c */ 7514 #line 1679 "parser.yy" 7515 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7516 break; 7517 7518 case 456: 7519 7520 /* Line 1806 of yacc.c */ 7521 #line 1681 "parser.yy" 7522 { (yyval.en) = new CompositeExprNode(new OperatorNode(OperatorNode::Range), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en)); } 7554 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ); } 7523 7555 break; 7524 7556 … … 7526 7558 7527 7559 /* Line 1806 of yacc.c */ 7528 #line 16 83"parser.yy"7560 #line 1670 "parser.yy" 7529 7561 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7530 7562 break; … … 7533 7565 7534 7566 /* Line 1806 of yacc.c */ 7535 #line 1 708"parser.yy"7567 #line 1694 "parser.yy" 7536 7568 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7537 7569 break; … … 7540 7572 7541 7573 /* Line 1806 of yacc.c */ 7542 #line 1 710"parser.yy"7574 #line 1696 "parser.yy" 7543 7575 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7544 7576 break; … … 7547 7579 7548 7580 /* Line 1806 of yacc.c */ 7549 #line 1 712"parser.yy"7581 #line 1698 "parser.yy" 7550 7582 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7551 7583 break; … … 7554 7586 7555 7587 /* Line 1806 of yacc.c */ 7556 #line 17 17"parser.yy"7588 #line 1703 "parser.yy" 7557 7589 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7558 7590 break; … … 7561 7593 7562 7594 /* Line 1806 of yacc.c */ 7563 #line 17 19"parser.yy"7595 #line 1705 "parser.yy" 7564 7596 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) )->addQualifiers( (yyvsp[(1) - (5)].decl) ); } 7565 7597 break; … … 7568 7600 7569 7601 /* Line 1806 of yacc.c */ 7570 #line 17 21"parser.yy"7602 #line 1707 "parser.yy" 7571 7603 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7572 7604 break; … … 7575 7607 7576 7608 /* Line 1806 of yacc.c */ 7577 #line 17 27"parser.yy"7609 #line 1713 "parser.yy" 7578 7610 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7579 7611 break; … … 7582 7614 7583 7615 /* Line 1806 of yacc.c */ 7584 #line 17 32"parser.yy"7585 { typedefTable.addToEnclosingScope(*( (yyvsp[(2) - (2)].tok)), TypedefTable::TD); }7616 #line 1718 "parser.yy" 7617 { typedefTable.addToEnclosingScope(*( (yyvsp[(2) - (2)].tok) ), TypedefTable::TD ); } 7586 7618 break; 7587 7619 … … 7589 7621 7590 7622 /* Line 1806 of yacc.c */ 7591 #line 17 34"parser.yy"7623 #line 1720 "parser.yy" 7592 7624 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7593 7625 break; … … 7596 7628 7597 7629 /* Line 1806 of yacc.c */ 7598 #line 17 40"parser.yy"7630 #line 1726 "parser.yy" 7599 7631 { (yyval.tclass) = DeclarationNode::Type; } 7600 7632 break; … … 7603 7635 7604 7636 /* Line 1806 of yacc.c */ 7637 #line 1728 "parser.yy" 7638 { (yyval.tclass) = DeclarationNode::Ftype; } 7639 break; 7640 7641 case 472: 7642 7643 /* Line 1806 of yacc.c */ 7644 #line 1730 "parser.yy" 7645 { (yyval.tclass) = DeclarationNode::Dtype; } 7646 break; 7647 7648 case 473: 7649 7650 /* Line 1806 of yacc.c */ 7651 #line 1735 "parser.yy" 7652 { (yyval.decl) = 0; } 7653 break; 7654 7655 case 474: 7656 7657 /* Line 1806 of yacc.c */ 7658 #line 1737 "parser.yy" 7659 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7660 break; 7661 7662 case 475: 7663 7664 /* Line 1806 of yacc.c */ 7605 7665 #line 1742 "parser.yy" 7606 { (yyval.tclass) = DeclarationNode::Ftype; } 7607 break; 7608 7609 case 472: 7610 7611 /* Line 1806 of yacc.c */ 7612 #line 1744 "parser.yy" 7613 { (yyval.tclass) = DeclarationNode::Dtype; } 7614 break; 7615 7616 case 473: 7666 { 7667 typedefTable.openContext( *( (yyvsp[(2) - (5)].tok) ) ); 7668 (yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 7669 } 7670 break; 7671 7672 case 476: 7673 7674 /* Line 1806 of yacc.c */ 7675 #line 1747 "parser.yy" 7676 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7677 break; 7678 7679 case 477: 7617 7680 7618 7681 /* Line 1806 of yacc.c */ … … 7621 7684 break; 7622 7685 7623 case 474: 7624 7625 /* Line 1806 of yacc.c */ 7626 #line 1751 "parser.yy" 7627 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7628 break; 7629 7630 case 475: 7631 7632 /* Line 1806 of yacc.c */ 7633 #line 1756 "parser.yy" 7686 case 478: 7687 7688 /* Line 1806 of yacc.c */ 7689 #line 1754 "parser.yy" 7690 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7691 break; 7692 7693 case 480: 7694 7695 /* Line 1806 of yacc.c */ 7696 #line 1757 "parser.yy" 7697 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7698 break; 7699 7700 case 481: 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1759 "parser.yy" 7704 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7705 break; 7706 7707 case 482: 7708 7709 /* Line 1806 of yacc.c */ 7710 #line 1764 "parser.yy" 7711 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7712 break; 7713 7714 case 483: 7715 7716 /* Line 1806 of yacc.c */ 7717 #line 1766 "parser.yy" 7718 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7719 break; 7720 7721 case 484: 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1768 "parser.yy" 7725 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7726 break; 7727 7728 case 485: 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 1773 "parser.yy" 7732 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7733 break; 7734 7735 case 486: 7736 7737 /* Line 1806 of yacc.c */ 7738 #line 1775 "parser.yy" 7739 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7740 break; 7741 7742 case 487: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1780 "parser.yy" 7634 7746 { 7635 typedefTable.openContext( *((yyvsp[(2) - (5)].tok)) ); 7636 (yyval.decl) = DeclarationNode::newContextUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 7637 } 7638 break; 7639 7640 case 476: 7641 7642 /* Line 1806 of yacc.c */ 7643 #line 1761 "parser.yy" 7644 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7645 break; 7646 7647 case 477: 7648 7649 /* Line 1806 of yacc.c */ 7650 #line 1763 "parser.yy" 7651 { (yyval.decl) = 0; } 7652 break; 7653 7654 case 478: 7655 7656 /* Line 1806 of yacc.c */ 7657 #line 1768 "parser.yy" 7658 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7659 break; 7660 7661 case 480: 7662 7663 /* Line 1806 of yacc.c */ 7664 #line 1771 "parser.yy" 7665 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link(new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7666 break; 7667 7668 case 481: 7669 7670 /* Line 1806 of yacc.c */ 7671 #line 1773 "parser.yy" 7672 { (yyval.en) = (ExpressionNode *)((yyvsp[(1) - (3)].en)->set_link((yyvsp[(3) - (3)].en))); } 7673 break; 7674 7675 case 482: 7676 7677 /* Line 1806 of yacc.c */ 7678 #line 1778 "parser.yy" 7679 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7680 break; 7681 7682 case 483: 7683 7684 /* Line 1806 of yacc.c */ 7685 #line 1780 "parser.yy" 7686 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7687 break; 7688 7689 case 484: 7690 7691 /* Line 1806 of yacc.c */ 7692 #line 1782 "parser.yy" 7693 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7694 break; 7695 7696 case 485: 7697 7698 /* Line 1806 of yacc.c */ 7699 #line 1787 "parser.yy" 7700 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7701 break; 7702 7703 case 486: 7704 7705 /* Line 1806 of yacc.c */ 7706 #line 1789 "parser.yy" 7707 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7708 break; 7709 7710 case 487: 7711 7712 /* Line 1806 of yacc.c */ 7713 #line 1794 "parser.yy" 7714 { 7715 typedefTable.addToEnclosingScope(*((yyvsp[(1) - (1)].tok)), TypedefTable::TD); 7747 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7716 7748 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 7717 7749 } … … 7721 7753 7722 7754 /* Line 1806 of yacc.c */ 7723 #line 17 99"parser.yy"7755 #line 1785 "parser.yy" 7724 7756 { 7725 typedefTable.addToEnclosingScope( *((yyvsp[(1) - (6)].tok)), TypedefTable::TG);7757 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7726 7758 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 7727 7759 } … … 7731 7763 7732 7764 /* Line 1806 of yacc.c */ 7733 #line 1 807"parser.yy"7765 #line 1793 "parser.yy" 7734 7766 { 7735 typedefTable.addToEnclosingScope( *((yyvsp[(2) - (9)].tok)), TypedefTable::ID );7767 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7736 7768 (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 7737 7769 } … … 7741 7773 7742 7774 /* Line 1806 of yacc.c */ 7743 #line 1 812"parser.yy"7775 #line 1798 "parser.yy" 7744 7776 { 7745 typedefTable.enterContext( *( (yyvsp[(2) - (8)].tok)) );7777 typedefTable.enterContext( *(yyvsp[(2) - (8)].tok) ); 7746 7778 typedefTable.enterScope(); 7747 7779 } … … 7751 7783 7752 7784 /* Line 1806 of yacc.c */ 7753 #line 18 17"parser.yy"7785 #line 1803 "parser.yy" 7754 7786 { 7755 7787 typedefTable.leaveContext(); 7756 typedefTable.addToEnclosingScope( *((yyvsp[(2) - (11)].tok)), TypedefTable::ID );7788 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (11)].tok), TypedefTable::ID ); 7757 7789 (yyval.decl) = DeclarationNode::newContext( (yyvsp[(2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) ); 7758 7790 } … … 7762 7794 7763 7795 /* Line 1806 of yacc.c */ 7764 #line 18 27"parser.yy"7796 #line 1813 "parser.yy" 7765 7797 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7766 7798 break; … … 7769 7801 7770 7802 /* Line 1806 of yacc.c */ 7771 #line 18 37"parser.yy"7803 #line 1823 "parser.yy" 7772 7804 { 7773 7805 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7779 7811 7780 7812 /* Line 1806 of yacc.c */ 7781 #line 18 42"parser.yy"7813 #line 1828 "parser.yy" 7782 7814 { 7783 7815 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7789 7821 7790 7822 /* Line 1806 of yacc.c */ 7791 #line 18 47"parser.yy"7823 #line 1833 "parser.yy" 7792 7824 { 7793 typedefTable.addToEnclosingScope2( *( (yyvsp[(5) - (5)].tok)), TypedefTable::ID );7825 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7794 7826 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 7795 7827 } … … 7799 7831 7800 7832 /* Line 1806 of yacc.c */ 7801 #line 18 55"parser.yy"7833 #line 1841 "parser.yy" 7802 7834 { 7803 7835 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7809 7841 7810 7842 /* Line 1806 of yacc.c */ 7811 #line 18 60"parser.yy"7843 #line 1846 "parser.yy" 7812 7844 { 7813 7845 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7819 7851 7820 7852 /* Line 1806 of yacc.c */ 7821 #line 18 70"parser.yy"7853 #line 1856 "parser.yy" 7822 7854 {} 7823 7855 break; … … 7826 7858 7827 7859 /* Line 1806 of yacc.c */ 7828 #line 18 72"parser.yy"7860 #line 1858 "parser.yy" 7829 7861 { 7830 7862 if ( theTree ) { … … 7839 7871 7840 7872 /* Line 1806 of yacc.c */ 7841 #line 18 84"parser.yy"7842 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }7873 #line 1870 "parser.yy" 7874 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7843 7875 break; 7844 7876 … … 7846 7878 7847 7879 /* Line 1806 of yacc.c */ 7848 #line 18 89"parser.yy"7880 #line 1875 "parser.yy" 7849 7881 { (yyval.decl) = 0; } 7850 7882 break; … … 7853 7885 7854 7886 /* Line 1806 of yacc.c */ 7855 #line 18 97"parser.yy"7887 #line 1883 "parser.yy" 7856 7888 {} 7857 7889 break; … … 7860 7892 7861 7893 /* Line 1806 of yacc.c */ 7862 #line 18 99"parser.yy"7894 #line 1885 "parser.yy" 7863 7895 { 7864 7896 linkageStack.push( linkage ); … … 7870 7902 7871 7903 /* Line 1806 of yacc.c */ 7872 #line 1 904"parser.yy"7904 #line 1890 "parser.yy" 7873 7905 { 7874 7906 linkage = linkageStack.top(); … … 7881 7913 7882 7914 /* Line 1806 of yacc.c */ 7883 #line 1 910"parser.yy"7915 #line 1896 "parser.yy" 7884 7916 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7885 7917 break; 7886 7918 7887 7919 case 514: 7920 7921 /* Line 1806 of yacc.c */ 7922 #line 1907 "parser.yy" 7923 { 7924 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7925 typedefTable.leaveScope(); 7926 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) ); 7927 } 7928 break; 7929 7930 case 515: 7931 7932 /* Line 1806 of yacc.c */ 7933 #line 1913 "parser.yy" 7934 { 7935 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7936 typedefTable.leaveScope(); 7937 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) ); 7938 } 7939 break; 7940 7941 case 516: 7888 7942 7889 7943 /* Line 1806 of yacc.c */ … … 7896 7950 break; 7897 7951 7898 case 51 5:7952 case 517: 7899 7953 7900 7954 /* Line 1806 of yacc.c */ 7901 7955 #line 1928 "parser.yy" 7902 {7903 typedefTable.addToEnclosingScope( TypedefTable::ID );7904 typedefTable.leaveScope();7905 (yyval.decl) = (yyvsp[(1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );7906 }7907 break;7908 7909 case 516:7910 7911 /* Line 1806 of yacc.c */7912 #line 1937 "parser.yy"7913 {7914 typedefTable.addToEnclosingScope( TypedefTable::ID );7915 typedefTable.leaveScope();7916 (yyval.decl) = (yyvsp[(1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );7917 }7918 break;7919 7920 case 517:7921 7922 /* Line 1806 of yacc.c */7923 #line 1943 "parser.yy"7924 7956 { 7925 7957 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7932 7964 7933 7965 /* Line 1806 of yacc.c */ 7934 #line 19 49"parser.yy"7966 #line 1934 "parser.yy" 7935 7967 { 7936 7968 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7943 7975 7944 7976 /* Line 1806 of yacc.c */ 7945 #line 19 55"parser.yy"7977 #line 1940 "parser.yy" 7946 7978 { 7947 7979 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7954 7986 7955 7987 /* Line 1806 of yacc.c */ 7956 #line 19 61"parser.yy"7988 #line 1946 "parser.yy" 7957 7989 { 7958 7990 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7965 7997 7966 7998 /* Line 1806 of yacc.c */ 7967 #line 19 69"parser.yy"7999 #line 1954 "parser.yy" 7968 8000 { 7969 8001 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7976 8008 7977 8009 /* Line 1806 of yacc.c */ 7978 #line 19 75"parser.yy"8010 #line 1960 "parser.yy" 7979 8011 { 7980 8012 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7987 8019 7988 8020 /* Line 1806 of yacc.c */ 7989 #line 19 83"parser.yy"8021 #line 1968 "parser.yy" 7990 8022 { 7991 8023 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7998 8030 7999 8031 /* Line 1806 of yacc.c */ 8000 #line 19 89"parser.yy"8032 #line 1974 "parser.yy" 8001 8033 { 8002 8034 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 8009 8041 8010 8042 /* Line 1806 of yacc.c */ 8011 #line 2004"parser.yy"8012 { (yyval.en) = new CompositeExprNode( new OperatorNode(OperatorNode::Range), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en)); }8043 #line 1989 "parser.yy" 8044 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 8013 8045 break; 8014 8046 … … 8016 8048 8017 8049 /* Line 1806 of yacc.c */ 8018 #line 20 38"parser.yy"8050 #line 2023 "parser.yy" 8019 8051 {} 8020 8052 break; … … 8023 8055 8024 8056 /* Line 1806 of yacc.c */ 8025 #line 20 39"parser.yy"8057 #line 2024 "parser.yy" 8026 8058 {} 8027 8059 break; … … 8030 8062 8031 8063 /* Line 1806 of yacc.c */ 8032 #line 20 40"parser.yy"8064 #line 2025 "parser.yy" 8033 8065 {} 8034 8066 break; … … 8037 8069 8038 8070 /* Line 1806 of yacc.c */ 8039 #line 20 41"parser.yy"8071 #line 2026 "parser.yy" 8040 8072 {} 8041 8073 break; … … 8044 8076 8045 8077 /* Line 1806 of yacc.c */ 8046 #line 20 84"parser.yy"8078 #line 2068 "parser.yy" 8047 8079 { 8048 typedefTable.setNextIdentifier( *( (yyvsp[(1) - (1)].tok)) );8080 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8049 8081 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8050 8082 } … … 8054 8086 8055 8087 /* Line 1806 of yacc.c */ 8088 #line 2073 "parser.yy" 8089 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8090 break; 8091 8092 case 551: 8093 8094 /* Line 1806 of yacc.c */ 8095 #line 2078 "parser.yy" 8096 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8097 break; 8098 8099 case 552: 8100 8101 /* Line 1806 of yacc.c */ 8102 #line 2080 "parser.yy" 8103 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8104 break; 8105 8106 case 553: 8107 8108 /* Line 1806 of yacc.c */ 8109 #line 2082 "parser.yy" 8110 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8111 break; 8112 8113 case 554: 8114 8115 /* Line 1806 of yacc.c */ 8116 #line 2087 "parser.yy" 8117 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8118 break; 8119 8120 case 555: 8121 8122 /* Line 1806 of yacc.c */ 8056 8123 #line 2089 "parser.yy" 8124 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8125 break; 8126 8127 case 556: 8128 8129 /* Line 1806 of yacc.c */ 8130 #line 2091 "parser.yy" 8131 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8132 break; 8133 8134 case 557: 8135 8136 /* Line 1806 of yacc.c */ 8137 #line 2093 "parser.yy" 8057 8138 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8058 8139 break; 8059 8140 8060 case 551: 8061 8062 /* Line 1806 of yacc.c */ 8063 #line 2094 "parser.yy" 8141 case 558: 8142 8143 /* Line 1806 of yacc.c */ 8144 #line 2098 "parser.yy" 8145 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8146 break; 8147 8148 case 559: 8149 8150 /* Line 1806 of yacc.c */ 8151 #line 2100 "parser.yy" 8152 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8153 break; 8154 8155 case 563: 8156 8157 /* Line 1806 of yacc.c */ 8158 #line 2116 "parser.yy" 8159 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8160 break; 8161 8162 case 564: 8163 8164 /* Line 1806 of yacc.c */ 8165 #line 2118 "parser.yy" 8166 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8167 break; 8168 8169 case 565: 8170 8171 /* Line 1806 of yacc.c */ 8172 #line 2120 "parser.yy" 8173 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8174 break; 8175 8176 case 566: 8177 8178 /* Line 1806 of yacc.c */ 8179 #line 2125 "parser.yy" 8064 8180 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8065 8181 break; 8066 8182 8067 case 5 52:8068 8069 /* Line 1806 of yacc.c */ 8070 #line 2 096"parser.yy"8183 case 567: 8184 8185 /* Line 1806 of yacc.c */ 8186 #line 2127 "parser.yy" 8071 8187 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8072 8188 break; 8073 8189 8074 case 5 53:8075 8076 /* Line 1806 of yacc.c */ 8077 #line 2 098"parser.yy"8190 case 568: 8191 8192 /* Line 1806 of yacc.c */ 8193 #line 2129 "parser.yy" 8078 8194 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8079 8195 break; 8080 8196 8081 case 554: 8082 8083 /* Line 1806 of yacc.c */ 8084 #line 2103 "parser.yy" 8085 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8086 break; 8087 8088 case 555: 8089 8090 /* Line 1806 of yacc.c */ 8091 #line 2105 "parser.yy" 8197 case 569: 8198 8199 /* Line 1806 of yacc.c */ 8200 #line 2134 "parser.yy" 8092 8201 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8093 8202 break; 8094 8203 8095 case 5 56:8096 8097 /* Line 1806 of yacc.c */ 8098 #line 21 07"parser.yy"8204 case 570: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2136 "parser.yy" 8099 8208 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8100 8209 break; 8101 8210 8102 case 5 57:8103 8104 /* Line 1806 of yacc.c */ 8105 #line 21 09"parser.yy"8211 case 571: 8212 8213 /* Line 1806 of yacc.c */ 8214 #line 2138 "parser.yy" 8106 8215 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8107 8216 break; 8108 8217 8109 case 558: 8110 8111 /* Line 1806 of yacc.c */ 8112 #line 2114 "parser.yy" 8113 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8114 break; 8115 8116 case 559: 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2116 "parser.yy" 8218 case 575: 8219 8220 /* Line 1806 of yacc.c */ 8221 #line 2153 "parser.yy" 8222 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8223 break; 8224 8225 case 576: 8226 8227 /* Line 1806 of yacc.c */ 8228 #line 2155 "parser.yy" 8229 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8230 break; 8231 8232 case 577: 8233 8234 /* Line 1806 of yacc.c */ 8235 #line 2157 "parser.yy" 8120 8236 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8121 8237 break; 8122 8238 8123 case 5 63:8124 8125 /* Line 1806 of yacc.c */ 8126 #line 21 32 "parser.yy"8127 { (yyval.decl) = (yyvsp[( 1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8128 break; 8129 8130 case 5 64:8131 8132 /* Line 1806 of yacc.c */ 8133 #line 21 34 "parser.yy"8134 { (yyval.decl) = (yyvsp[( 2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8135 break; 8136 8137 case 5 65:8138 8139 /* Line 1806 of yacc.c */ 8140 #line 21 36 "parser.yy"8239 case 578: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2162 "parser.yy" 8243 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8244 break; 8245 8246 case 579: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2164 "parser.yy" 8250 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8251 break; 8252 8253 case 580: 8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2166 "parser.yy" 8141 8257 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8142 8258 break; 8143 8259 8144 case 5 66:8145 8146 /* Line 1806 of yacc.c */ 8147 #line 21 41 "parser.yy"8148 { (yyval.decl) = (yyvsp[(2) - ( 2)].decl)->addPointer( DeclarationNode::newPointer( 0) ); }8149 break; 8150 8151 case 5 67:8152 8153 /* Line 1806 of yacc.c */ 8154 #line 21 43 "parser.yy"8155 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl)) ); }8156 break; 8157 8158 case 5 68:8159 8160 /* Line 1806 of yacc.c */ 8161 #line 21 45 "parser.yy"8260 case 581: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2171 "parser.yy" 8264 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8265 break; 8266 8267 case 582: 8268 8269 /* Line 1806 of yacc.c */ 8270 #line 2173 "parser.yy" 8271 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8272 break; 8273 8274 case 583: 8275 8276 /* Line 1806 of yacc.c */ 8277 #line 2175 "parser.yy" 8162 8278 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8163 8279 break; 8164 8280 8165 case 569:8166 8167 /* Line 1806 of yacc.c */8168 #line 2150 "parser.yy"8169 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8170 break;8171 8172 case 570:8173 8174 /* Line 1806 of yacc.c */8175 #line 2152 "parser.yy"8176 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8177 break;8178 8179 case 571:8180 8181 /* Line 1806 of yacc.c */8182 #line 2154 "parser.yy"8183 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8184 break;8185 8186 case 575:8187 8188 /* Line 1806 of yacc.c */8189 #line 2169 "parser.yy"8190 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }8191 break;8192 8193 case 576:8194 8195 /* Line 1806 of yacc.c */8196 #line 2171 "parser.yy"8197 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }8198 break;8199 8200 case 577:8201 8202 /* Line 1806 of yacc.c */8203 #line 2173 "parser.yy"8204 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8205 break;8206 8207 case 578:8208 8209 /* Line 1806 of yacc.c */8210 #line 2178 "parser.yy"8211 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8212 break;8213 8214 case 579:8215 8216 /* Line 1806 of yacc.c */8217 #line 2180 "parser.yy"8218 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8219 break;8220 8221 case 580:8222 8223 /* Line 1806 of yacc.c */8224 #line 2182 "parser.yy"8225 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8226 break;8227 8228 case 581:8229 8230 /* Line 1806 of yacc.c */8231 #line 2187 "parser.yy"8232 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8233 break;8234 8235 case 582:8236 8237 /* Line 1806 of yacc.c */8238 #line 2189 "parser.yy"8239 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8240 break;8241 8242 case 583:8243 8244 /* Line 1806 of yacc.c */8245 #line 2191 "parser.yy"8246 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8247 break;8248 8249 8281 case 588: 8250 8282 8251 8283 /* Line 1806 of yacc.c */ 8252 #line 2 213"parser.yy"8284 #line 2197 "parser.yy" 8253 8285 { 8254 typedefTable.setNextIdentifier( *( (yyvsp[(1) - (1)].tok)) );8286 typedefTable.setNextIdentifier( *( (yyvsp[(1) - (1)].tok) ) ); 8255 8287 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8256 8288 } … … 8260 8292 8261 8293 /* Line 1806 of yacc.c */ 8294 #line 2202 "parser.yy" 8295 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8296 break; 8297 8298 case 590: 8299 8300 /* Line 1806 of yacc.c */ 8301 #line 2207 "parser.yy" 8302 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8303 break; 8304 8305 case 591: 8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2209 "parser.yy" 8309 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8310 break; 8311 8312 case 592: 8313 8314 /* Line 1806 of yacc.c */ 8315 #line 2211 "parser.yy" 8316 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8317 break; 8318 8319 case 593: 8320 8321 /* Line 1806 of yacc.c */ 8322 #line 2216 "parser.yy" 8323 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8324 break; 8325 8326 case 594: 8327 8328 /* Line 1806 of yacc.c */ 8262 8329 #line 2218 "parser.yy" 8330 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8331 break; 8332 8333 case 595: 8334 8335 /* Line 1806 of yacc.c */ 8336 #line 2220 "parser.yy" 8337 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8338 break; 8339 8340 case 596: 8341 8342 /* Line 1806 of yacc.c */ 8343 #line 2222 "parser.yy" 8263 8344 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8264 8345 break; 8265 8346 8266 case 590: 8267 8268 /* Line 1806 of yacc.c */ 8269 #line 2223 "parser.yy" 8347 case 597: 8348 8349 /* Line 1806 of yacc.c */ 8350 #line 2227 "parser.yy" 8351 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8352 break; 8353 8354 case 598: 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2229 "parser.yy" 8358 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 break; 8360 8361 case 599: 8362 8363 /* Line 1806 of yacc.c */ 8364 #line 2231 "parser.yy" 8365 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8366 break; 8367 8368 case 604: 8369 8370 /* Line 1806 of yacc.c */ 8371 #line 2248 "parser.yy" 8270 8372 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8271 8373 break; 8272 8374 8273 case 591:8274 8275 /* Line 1806 of yacc.c */ 8276 #line 22 25"parser.yy"8375 case 605: 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2250 "parser.yy" 8277 8379 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8278 8380 break; 8279 8381 8280 case 592:8281 8282 /* Line 1806 of yacc.c */ 8283 #line 22 27"parser.yy"8382 case 606: 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2252 "parser.yy" 8284 8386 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8285 8387 break; 8286 8388 8287 case 593:8288 8289 /* Line 1806 of yacc.c */ 8290 #line 22 32"parser.yy"8389 case 607: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2257 "parser.yy" 8291 8393 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8292 8394 break; 8293 8395 8294 case 594:8295 8296 /* Line 1806 of yacc.c */ 8297 #line 22 34"parser.yy"8396 case 608: 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2259 "parser.yy" 8298 8400 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8299 8401 break; 8300 8402 8301 case 595:8302 8303 /* Line 1806 of yacc.c */ 8304 #line 22 36"parser.yy"8403 case 609: 8404 8405 /* Line 1806 of yacc.c */ 8406 #line 2261 "parser.yy" 8305 8407 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8306 8408 break; 8307 8409 8308 case 596:8309 8310 /* Line 1806 of yacc.c */ 8311 #line 22 38"parser.yy"8410 case 610: 8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2263 "parser.yy" 8312 8414 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8313 8415 break; 8314 8416 8315 case 597:8316 8317 /* Line 1806 of yacc.c */ 8318 #line 22 43"parser.yy"8417 case 611: 8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2268 "parser.yy" 8319 8421 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8320 8422 break; 8321 8423 8322 case 598:8323 8324 /* Line 1806 of yacc.c */ 8325 #line 22 45"parser.yy"8424 case 612: 8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2270 "parser.yy" 8326 8428 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8327 8429 break; 8328 8430 8329 case 599:8330 8331 /* Line 1806 of yacc.c */ 8332 #line 22 47"parser.yy"8431 case 613: 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2272 "parser.yy" 8333 8435 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8334 8436 break; 8335 8437 8336 case 604:8337 8338 /* Line 1806 of yacc.c */8339 #line 2264 "parser.yy"8340 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8341 break;8342 8343 case 605:8344 8345 /* Line 1806 of yacc.c */8346 #line 2266 "parser.yy"8347 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8348 break;8349 8350 case 606:8351 8352 /* Line 1806 of yacc.c */8353 #line 2268 "parser.yy"8354 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8355 break;8356 8357 case 607:8358 8359 /* Line 1806 of yacc.c */8360 #line 2273 "parser.yy"8361 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8362 break;8363 8364 case 608:8365 8366 /* Line 1806 of yacc.c */8367 #line 2275 "parser.yy"8368 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8369 break;8370 8371 case 609:8372 8373 /* Line 1806 of yacc.c */8374 #line 2277 "parser.yy"8375 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8376 break;8377 8378 case 610:8379 8380 /* Line 1806 of yacc.c */8381 #line 2279 "parser.yy"8382 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8383 break;8384 8385 case 611:8386 8387 /* Line 1806 of yacc.c */8388 #line 2284 "parser.yy"8389 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8390 break;8391 8392 case 612:8393 8394 /* Line 1806 of yacc.c */8395 #line 2286 "parser.yy"8396 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8397 break;8398 8399 case 613:8400 8401 /* Line 1806 of yacc.c */8402 #line 2288 "parser.yy"8403 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8404 break;8405 8406 8438 case 618: 8407 8439 8408 8440 /* Line 1806 of yacc.c */ 8409 #line 23 26"parser.yy"8441 #line 2310 "parser.yy" 8410 8442 { 8411 typedefTable.setNextIdentifier( *( (yyvsp[(1) - (1)].tok)) );8443 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8412 8444 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8413 8445 } … … 8417 8449 8418 8450 /* Line 1806 of yacc.c */ 8451 #line 2318 "parser.yy" 8452 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8453 break; 8454 8455 case 620: 8456 8457 /* Line 1806 of yacc.c */ 8458 #line 2320 "parser.yy" 8459 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8460 break; 8461 8462 case 621: 8463 8464 /* Line 1806 of yacc.c */ 8465 #line 2322 "parser.yy" 8466 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8467 break; 8468 8469 case 622: 8470 8471 /* Line 1806 of yacc.c */ 8472 #line 2327 "parser.yy" 8473 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8474 break; 8475 8476 case 623: 8477 8478 /* Line 1806 of yacc.c */ 8479 #line 2329 "parser.yy" 8480 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8481 break; 8482 8483 case 624: 8484 8485 /* Line 1806 of yacc.c */ 8419 8486 #line 2334 "parser.yy" 8487 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8488 break; 8489 8490 case 625: 8491 8492 /* Line 1806 of yacc.c */ 8493 #line 2336 "parser.yy" 8494 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8495 break; 8496 8497 case 629: 8498 8499 /* Line 1806 of yacc.c */ 8500 #line 2356 "parser.yy" 8501 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8502 break; 8503 8504 case 630: 8505 8506 /* Line 1806 of yacc.c */ 8507 #line 2358 "parser.yy" 8508 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8509 break; 8510 8511 case 631: 8512 8513 /* Line 1806 of yacc.c */ 8514 #line 2360 "parser.yy" 8420 8515 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8421 8516 break; 8422 8517 8423 case 6 20:8424 8425 /* Line 1806 of yacc.c */ 8426 #line 23 36"parser.yy"8518 case 632: 8519 8520 /* Line 1806 of yacc.c */ 8521 #line 2362 "parser.yy" 8427 8522 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8428 8523 break; 8429 8524 8430 case 6 21:8431 8432 /* Line 1806 of yacc.c */ 8433 #line 23 38"parser.yy"8525 case 633: 8526 8527 /* Line 1806 of yacc.c */ 8528 #line 2364 "parser.yy" 8434 8529 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8435 8530 break; 8436 8531 8437 case 622: 8438 8439 /* Line 1806 of yacc.c */ 8440 #line 2343 "parser.yy" 8532 case 635: 8533 8534 /* Line 1806 of yacc.c */ 8535 #line 2370 "parser.yy" 8536 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8537 break; 8538 8539 case 636: 8540 8541 /* Line 1806 of yacc.c */ 8542 #line 2372 "parser.yy" 8543 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8544 break; 8545 8546 case 637: 8547 8548 /* Line 1806 of yacc.c */ 8549 #line 2374 "parser.yy" 8550 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8551 break; 8552 8553 case 638: 8554 8555 /* Line 1806 of yacc.c */ 8556 #line 2379 "parser.yy" 8557 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8558 break; 8559 8560 case 639: 8561 8562 /* Line 1806 of yacc.c */ 8563 #line 2381 "parser.yy" 8564 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8565 break; 8566 8567 case 640: 8568 8569 /* Line 1806 of yacc.c */ 8570 #line 2383 "parser.yy" 8571 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8572 break; 8573 8574 case 641: 8575 8576 /* Line 1806 of yacc.c */ 8577 #line 2389 "parser.yy" 8578 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8579 break; 8580 8581 case 642: 8582 8583 /* Line 1806 of yacc.c */ 8584 #line 2391 "parser.yy" 8585 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); } 8586 break; 8587 8588 case 644: 8589 8590 /* Line 1806 of yacc.c */ 8591 #line 2397 "parser.yy" 8592 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8593 break; 8594 8595 case 645: 8596 8597 /* Line 1806 of yacc.c */ 8598 #line 2399 "parser.yy" 8599 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8600 break; 8601 8602 case 646: 8603 8604 /* Line 1806 of yacc.c */ 8605 #line 2401 "parser.yy" 8606 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8607 break; 8608 8609 case 647: 8610 8611 /* Line 1806 of yacc.c */ 8612 #line 2403 "parser.yy" 8613 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8614 break; 8615 8616 case 651: 8617 8618 /* Line 1806 of yacc.c */ 8619 #line 2423 "parser.yy" 8620 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8621 break; 8622 8623 case 652: 8624 8625 /* Line 1806 of yacc.c */ 8626 #line 2425 "parser.yy" 8627 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8628 break; 8629 8630 case 653: 8631 8632 /* Line 1806 of yacc.c */ 8633 #line 2427 "parser.yy" 8634 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8635 break; 8636 8637 case 654: 8638 8639 /* Line 1806 of yacc.c */ 8640 #line 2429 "parser.yy" 8641 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8642 break; 8643 8644 case 655: 8645 8646 /* Line 1806 of yacc.c */ 8647 #line 2431 "parser.yy" 8648 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8649 break; 8650 8651 case 657: 8652 8653 /* Line 1806 of yacc.c */ 8654 #line 2437 "parser.yy" 8655 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8656 break; 8657 8658 case 658: 8659 8660 /* Line 1806 of yacc.c */ 8661 #line 2439 "parser.yy" 8662 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8663 break; 8664 8665 case 659: 8666 8667 /* Line 1806 of yacc.c */ 8668 #line 2441 "parser.yy" 8669 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8670 break; 8671 8672 case 660: 8673 8674 /* Line 1806 of yacc.c */ 8675 #line 2446 "parser.yy" 8676 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8677 break; 8678 8679 case 661: 8680 8681 /* Line 1806 of yacc.c */ 8682 #line 2448 "parser.yy" 8683 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8684 break; 8685 8686 case 662: 8687 8688 /* Line 1806 of yacc.c */ 8689 #line 2450 "parser.yy" 8690 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8691 break; 8692 8693 case 664: 8694 8695 /* Line 1806 of yacc.c */ 8696 #line 2457 "parser.yy" 8441 8697 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8442 8698 break; 8443 8699 8444 case 623: 8445 8446 /* Line 1806 of yacc.c */ 8447 #line 2345 "parser.yy" 8700 case 666: 8701 8702 /* Line 1806 of yacc.c */ 8703 #line 2468 "parser.yy" 8704 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8705 break; 8706 8707 case 667: 8708 8709 /* Line 1806 of yacc.c */ 8710 #line 2471 "parser.yy" 8711 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8712 break; 8713 8714 case 668: 8715 8716 /* Line 1806 of yacc.c */ 8717 #line 2473 "parser.yy" 8718 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8719 break; 8720 8721 case 669: 8722 8723 /* Line 1806 of yacc.c */ 8724 #line 2476 "parser.yy" 8725 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8726 break; 8727 8728 case 670: 8729 8730 /* Line 1806 of yacc.c */ 8731 #line 2478 "parser.yy" 8732 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8733 break; 8734 8735 case 671: 8736 8737 /* Line 1806 of yacc.c */ 8738 #line 2480 "parser.yy" 8739 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8740 break; 8741 8742 case 675: 8743 8744 /* Line 1806 of yacc.c */ 8745 #line 2499 "parser.yy" 8746 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8747 break; 8748 8749 case 676: 8750 8751 /* Line 1806 of yacc.c */ 8752 #line 2501 "parser.yy" 8753 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8754 break; 8755 8756 case 677: 8757 8758 /* Line 1806 of yacc.c */ 8759 #line 2503 "parser.yy" 8760 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8761 break; 8762 8763 case 678: 8764 8765 /* Line 1806 of yacc.c */ 8766 #line 2505 "parser.yy" 8767 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8768 break; 8769 8770 case 679: 8771 8772 /* Line 1806 of yacc.c */ 8773 #line 2507 "parser.yy" 8774 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8775 break; 8776 8777 case 681: 8778 8779 /* Line 1806 of yacc.c */ 8780 #line 2513 "parser.yy" 8448 8781 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8449 8782 break; 8450 8783 8451 case 624: 8452 8453 /* Line 1806 of yacc.c */ 8454 #line 2350 "parser.yy" 8455 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8456 break; 8457 8458 case 625: 8459 8460 /* Line 1806 of yacc.c */ 8461 #line 2352 "parser.yy" 8784 case 682: 8785 8786 /* Line 1806 of yacc.c */ 8787 #line 2515 "parser.yy" 8788 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8789 break; 8790 8791 case 683: 8792 8793 /* Line 1806 of yacc.c */ 8794 #line 2517 "parser.yy" 8795 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8796 break; 8797 8798 case 684: 8799 8800 /* Line 1806 of yacc.c */ 8801 #line 2522 "parser.yy" 8462 8802 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8463 8803 break; 8464 8804 8465 case 629: 8466 8467 /* Line 1806 of yacc.c */ 8468 #line 2372 "parser.yy" 8469 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8470 break; 8471 8472 case 630: 8473 8474 /* Line 1806 of yacc.c */ 8475 #line 2374 "parser.yy" 8476 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8477 break; 8478 8479 case 631: 8480 8481 /* Line 1806 of yacc.c */ 8482 #line 2376 "parser.yy" 8483 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8484 break; 8485 8486 case 632: 8487 8488 /* Line 1806 of yacc.c */ 8489 #line 2378 "parser.yy" 8490 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8491 break; 8492 8493 case 633: 8494 8495 /* Line 1806 of yacc.c */ 8496 #line 2380 "parser.yy" 8497 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8498 break; 8499 8500 case 635: 8501 8502 /* Line 1806 of yacc.c */ 8503 #line 2386 "parser.yy" 8504 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8505 break; 8506 8507 case 636: 8508 8509 /* Line 1806 of yacc.c */ 8510 #line 2388 "parser.yy" 8511 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8512 break; 8513 8514 case 637: 8515 8516 /* Line 1806 of yacc.c */ 8517 #line 2390 "parser.yy" 8518 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8519 break; 8520 8521 case 638: 8522 8523 /* Line 1806 of yacc.c */ 8524 #line 2395 "parser.yy" 8525 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8526 break; 8527 8528 case 639: 8529 8530 /* Line 1806 of yacc.c */ 8531 #line 2397 "parser.yy" 8532 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8533 break; 8534 8535 case 640: 8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2399 "parser.yy" 8539 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8540 break; 8541 8542 case 641: 8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2405 "parser.yy" 8546 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8547 break; 8548 8549 case 642: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2407 "parser.yy" 8553 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(5) - (5)].decl) ); } 8554 break; 8555 8556 case 644: 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2413 "parser.yy" 8560 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8561 break; 8562 8563 case 645: 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2415 "parser.yy" 8567 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8568 break; 8569 8570 case 646: 8571 8572 /* Line 1806 of yacc.c */ 8573 #line 2417 "parser.yy" 8574 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8575 break; 8576 8577 case 647: 8578 8579 /* Line 1806 of yacc.c */ 8580 #line 2419 "parser.yy" 8581 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8582 break; 8583 8584 case 651: 8585 8586 /* Line 1806 of yacc.c */ 8587 #line 2439 "parser.yy" 8588 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8589 break; 8590 8591 case 652: 8592 8593 /* Line 1806 of yacc.c */ 8594 #line 2441 "parser.yy" 8595 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8596 break; 8597 8598 case 653: 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2443 "parser.yy" 8602 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8603 break; 8604 8605 case 654: 8606 8607 /* Line 1806 of yacc.c */ 8608 #line 2445 "parser.yy" 8609 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8610 break; 8611 8612 case 655: 8613 8614 /* Line 1806 of yacc.c */ 8615 #line 2447 "parser.yy" 8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8617 break; 8618 8619 case 657: 8620 8621 /* Line 1806 of yacc.c */ 8622 #line 2453 "parser.yy" 8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8624 break; 8625 8626 case 658: 8627 8628 /* Line 1806 of yacc.c */ 8629 #line 2455 "parser.yy" 8630 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8631 break; 8632 8633 case 659: 8634 8635 /* Line 1806 of yacc.c */ 8636 #line 2457 "parser.yy" 8637 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8638 break; 8639 8640 case 660: 8641 8642 /* Line 1806 of yacc.c */ 8643 #line 2462 "parser.yy" 8644 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8645 break; 8646 8647 case 661: 8648 8649 /* Line 1806 of yacc.c */ 8650 #line 2464 "parser.yy" 8651 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8652 break; 8653 8654 case 662: 8655 8656 /* Line 1806 of yacc.c */ 8657 #line 2466 "parser.yy" 8658 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8659 break; 8660 8661 case 664: 8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2473 "parser.yy" 8665 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8666 break; 8667 8668 case 666: 8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2485 "parser.yy" 8672 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8673 break; 8674 8675 case 667: 8676 8677 /* Line 1806 of yacc.c */ 8678 #line 2488 "parser.yy" 8679 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8680 break; 8681 8682 case 668: 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2490 "parser.yy" 8686 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8687 break; 8688 8689 case 669: 8690 8691 /* Line 1806 of yacc.c */ 8692 #line 2493 "parser.yy" 8693 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8694 break; 8695 8696 case 670: 8697 8698 /* Line 1806 of yacc.c */ 8699 #line 2495 "parser.yy" 8700 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8701 break; 8702 8703 case 671: 8704 8705 /* Line 1806 of yacc.c */ 8706 #line 2497 "parser.yy" 8707 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8708 break; 8709 8710 case 675: 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2516 "parser.yy" 8714 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8715 break; 8716 8717 case 676: 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2518 "parser.yy" 8721 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8722 break; 8723 8724 case 677: 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2520 "parser.yy" 8728 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8729 break; 8730 8731 case 678: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2522 "parser.yy" 8735 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8736 break; 8737 8738 case 679: 8805 case 685: 8739 8806 8740 8807 /* Line 1806 of yacc.c */ … … 8743 8810 break; 8744 8811 8745 case 681: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2530 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8750 break; 8751 8752 case 682: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2532 "parser.yy" 8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8757 break; 8758 8759 case 683: 8812 case 688: 8760 8813 8761 8814 /* Line 1806 of yacc.c */ 8762 8815 #line 2534 "parser.yy" 8763 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8764 break;8765 8766 case 684:8767 8768 /* Line 1806 of yacc.c */8769 #line 2539 "parser.yy"8770 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8771 break;8772 8773 case 685:8774 8775 /* Line 1806 of yacc.c */8776 #line 2541 "parser.yy"8777 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8778 break;8779 8780 case 688:8781 8782 /* Line 1806 of yacc.c */8783 #line 2551 "parser.yy"8784 8816 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8785 8817 break; … … 8788 8820 8789 8821 /* Line 1806 of yacc.c */ 8822 #line 2544 "parser.yy" 8823 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8824 break; 8825 8826 case 692: 8827 8828 /* Line 1806 of yacc.c */ 8829 #line 2546 "parser.yy" 8830 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8831 break; 8832 8833 case 693: 8834 8835 /* Line 1806 of yacc.c */ 8836 #line 2548 "parser.yy" 8837 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8838 break; 8839 8840 case 694: 8841 8842 /* Line 1806 of yacc.c */ 8843 #line 2550 "parser.yy" 8844 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8845 break; 8846 8847 case 695: 8848 8849 /* Line 1806 of yacc.c */ 8850 #line 2552 "parser.yy" 8851 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8852 break; 8853 8854 case 696: 8855 8856 /* Line 1806 of yacc.c */ 8857 #line 2554 "parser.yy" 8858 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8859 break; 8860 8861 case 697: 8862 8863 /* Line 1806 of yacc.c */ 8790 8864 #line 2561 "parser.yy" 8865 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8866 break; 8867 8868 case 698: 8869 8870 /* Line 1806 of yacc.c */ 8871 #line 2563 "parser.yy" 8872 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8873 break; 8874 8875 case 699: 8876 8877 /* Line 1806 of yacc.c */ 8878 #line 2565 "parser.yy" 8879 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8880 break; 8881 8882 case 700: 8883 8884 /* Line 1806 of yacc.c */ 8885 #line 2567 "parser.yy" 8886 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8887 break; 8888 8889 case 701: 8890 8891 /* Line 1806 of yacc.c */ 8892 #line 2569 "parser.yy" 8893 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8894 break; 8895 8896 case 702: 8897 8898 /* Line 1806 of yacc.c */ 8899 #line 2571 "parser.yy" 8900 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8901 break; 8902 8903 case 703: 8904 8905 /* Line 1806 of yacc.c */ 8906 #line 2573 "parser.yy" 8907 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8908 break; 8909 8910 case 704: 8911 8912 /* Line 1806 of yacc.c */ 8913 #line 2575 "parser.yy" 8914 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8915 break; 8916 8917 case 705: 8918 8919 /* Line 1806 of yacc.c */ 8920 #line 2577 "parser.yy" 8921 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8922 break; 8923 8924 case 706: 8925 8926 /* Line 1806 of yacc.c */ 8927 #line 2579 "parser.yy" 8928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8929 break; 8930 8931 case 707: 8932 8933 /* Line 1806 of yacc.c */ 8934 #line 2584 "parser.yy" 8935 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8936 break; 8937 8938 case 708: 8939 8940 /* Line 1806 of yacc.c */ 8941 #line 2586 "parser.yy" 8942 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8943 break; 8944 8945 case 709: 8946 8947 /* Line 1806 of yacc.c */ 8948 #line 2591 "parser.yy" 8949 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8950 break; 8951 8952 case 710: 8953 8954 /* Line 1806 of yacc.c */ 8955 #line 2593 "parser.yy" 8956 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8957 break; 8958 8959 case 712: 8960 8961 /* Line 1806 of yacc.c */ 8962 #line 2620 "parser.yy" 8963 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8964 break; 8965 8966 case 716: 8967 8968 /* Line 1806 of yacc.c */ 8969 #line 2631 "parser.yy" 8791 8970 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8792 8971 break; 8793 8972 8794 case 692:8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2 563 "parser.yy"8973 case 717: 8974 8975 /* Line 1806 of yacc.c */ 8976 #line 2633 "parser.yy" 8798 8977 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8799 8978 break; 8800 8979 8801 case 693:8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2 565 "parser.yy"8980 case 718: 8981 8982 /* Line 1806 of yacc.c */ 8983 #line 2635 "parser.yy" 8805 8984 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8806 8985 break; 8807 8986 8808 case 694:8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2 567 "parser.yy"8987 case 719: 8988 8989 /* Line 1806 of yacc.c */ 8990 #line 2637 "parser.yy" 8812 8991 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8813 8992 break; 8814 8993 8815 case 695:8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2 569 "parser.yy"8994 case 720: 8995 8996 /* Line 1806 of yacc.c */ 8997 #line 2639 "parser.yy" 8819 8998 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8820 8999 break; 8821 9000 8822 case 696:8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2 571 "parser.yy"9001 case 721: 9002 9003 /* Line 1806 of yacc.c */ 9004 #line 2641 "parser.yy" 8826 9005 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8827 9006 break; 8828 9007 8829 case 697:8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2 578 "parser.yy"9008 case 722: 9009 9010 /* Line 1806 of yacc.c */ 9011 #line 2648 "parser.yy" 8833 9012 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8834 9013 break; 8835 9014 8836 case 698: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2580 "parser.yy" 9015 case 723: 9016 9017 /* Line 1806 of yacc.c */ 9018 #line 2650 "parser.yy" 9019 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9020 break; 9021 9022 case 724: 9023 9024 /* Line 1806 of yacc.c */ 9025 #line 2652 "parser.yy" 8840 9026 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8841 9027 break; 8842 9028 8843 case 699: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2582 "parser.yy" 9029 case 725: 9030 9031 /* Line 1806 of yacc.c */ 9032 #line 2654 "parser.yy" 9033 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9034 break; 9035 9036 case 726: 9037 9038 /* Line 1806 of yacc.c */ 9039 #line 2656 "parser.yy" 8847 9040 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8848 9041 break; 8849 9042 8850 case 700: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2584 "parser.yy" 8854 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8855 break; 8856 8857 case 701: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2586 "parser.yy" 9043 case 727: 9044 9045 /* Line 1806 of yacc.c */ 9046 #line 2658 "parser.yy" 8861 9047 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8862 9048 break; 8863 9049 8864 case 702:8865 8866 /* Line 1806 of yacc.c */8867 #line 2588 "parser.yy"8868 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8869 break;8870 8871 case 703:8872 8873 /* Line 1806 of yacc.c */8874 #line 2590 "parser.yy"8875 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }8876 break;8877 8878 case 704:8879 8880 /* Line 1806 of yacc.c */8881 #line 2592 "parser.yy"8882 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8883 break;8884 8885 case 705:8886 8887 /* Line 1806 of yacc.c */8888 #line 2594 "parser.yy"8889 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }8890 break;8891 8892 case 706:8893 8894 /* Line 1806 of yacc.c */8895 #line 2596 "parser.yy"8896 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }8897 break;8898 8899 case 707:8900 8901 /* Line 1806 of yacc.c */8902 #line 2601 "parser.yy"8903 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }8904 break;8905 8906 case 708:8907 8908 /* Line 1806 of yacc.c */8909 #line 2603 "parser.yy"8910 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }8911 break;8912 8913 case 709:8914 8915 /* Line 1806 of yacc.c */8916 #line 2608 "parser.yy"8917 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }8918 break;8919 8920 case 710:8921 8922 /* Line 1806 of yacc.c */8923 #line 2610 "parser.yy"8924 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }8925 break;8926 8927 case 712:8928 8929 /* Line 1806 of yacc.c */8930 #line 2637 "parser.yy"8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }8932 break;8933 8934 case 716:8935 8936 /* Line 1806 of yacc.c */8937 #line 2648 "parser.yy"8938 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }8939 break;8940 8941 case 717:8942 8943 /* Line 1806 of yacc.c */8944 #line 2650 "parser.yy"8945 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }8946 break;8947 8948 case 718:8949 8950 /* Line 1806 of yacc.c */8951 #line 2652 "parser.yy"8952 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }8953 break;8954 8955 case 719:8956 8957 /* Line 1806 of yacc.c */8958 #line 2654 "parser.yy"8959 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }8960 break;8961 8962 case 720:8963 8964 /* Line 1806 of yacc.c */8965 #line 2656 "parser.yy"8966 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }8967 break;8968 8969 case 721:8970 8971 /* Line 1806 of yacc.c */8972 #line 2658 "parser.yy"8973 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }8974 break;8975 8976 case 722:8977 8978 /* Line 1806 of yacc.c */8979 #line 2665 "parser.yy"8980 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8981 break;8982 8983 case 723:8984 8985 /* Line 1806 of yacc.c */8986 #line 2667 "parser.yy"8987 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8988 break;8989 8990 case 724:8991 8992 /* Line 1806 of yacc.c */8993 #line 2669 "parser.yy"8994 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }8995 break;8996 8997 case 725:8998 8999 /* Line 1806 of yacc.c */9000 #line 2671 "parser.yy"9001 { (yyval.decl) = (yyvsp[(5) - (5)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9002 break;9003 9004 case 726:9005 9006 /* Line 1806 of yacc.c */9007 #line 2673 "parser.yy"9008 { (yyval.decl) = (yyvsp[(6) - (6)].decl)->addNewArray( (yyvsp[(5) - (6)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9009 break;9010 9011 case 727:9012 9013 /* Line 1806 of yacc.c */9014 #line 2675 "parser.yy"9015 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9016 break;9017 9018 9050 case 728: 9019 9051 9020 9052 /* Line 1806 of yacc.c */ 9021 #line 26 80"parser.yy"9053 #line 2663 "parser.yy" 9022 9054 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9023 9055 break; … … 9026 9058 9027 9059 /* Line 1806 of yacc.c */ 9028 #line 26 85"parser.yy"9060 #line 2668 "parser.yy" 9029 9061 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (7)].decl), 0 ); } 9030 9062 break; … … 9033 9065 9034 9066 /* Line 1806 of yacc.c */ 9035 #line 26 87"parser.yy"9067 #line 2670 "parser.yy" 9036 9068 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9037 9069 break; … … 9040 9072 9041 9073 /* Line 1806 of yacc.c */ 9042 #line 26 89"parser.yy"9074 #line 2672 "parser.yy" 9043 9075 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9044 9076 break; … … 9047 9079 9048 9080 /* Line 1806 of yacc.c */ 9049 #line 2 715"parser.yy"9081 #line 2696 "parser.yy" 9050 9082 { (yyval.en) = 0; } 9051 9083 break; … … 9054 9086 9055 9087 /* Line 1806 of yacc.c */ 9056 #line 2 717"parser.yy"9088 #line 2698 "parser.yy" 9057 9089 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9058 9090 break; … … 9061 9093 9062 9094 /* Line 1806 of yacc.c */ 9063 #line 90 64"Parser/parser.cc"9095 #line 9096 "Parser/parser.cc" 9064 9096 default: break; 9065 9097 } … … 9292 9324 9293 9325 /* Line 2067 of yacc.c */ 9294 #line 27 20"parser.yy"9326 #line 2701 "parser.yy" 9295 9327 9296 9328 // ----end of grammar---- … … 9305 9337 9306 9338 // Local Variables: // 9339 // mode: c++ // 9307 9340 // tab-width: 4 // 9308 // mode: c++ //9309 9341 // compile-command: "make install" // 9310 9342 // End: // -
src/Parser/parser.h
ra1d5d2a rde62360d 246 246 247 247 /* Line 2068 of yacc.c */ 248 #line 10 8"parser.yy"248 #line 107 "parser.yy" 249 249 250 250 Token tok; -
src/Parser/parser.yy
ra1d5d2a rde62360d 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 07:21:45201513 // Update Count : 10 4812 // Last Modified On : Mon Jun 22 15:19:44 2015 13 // Update Count : 1082 14 14 // 15 15 16 // This grammar is based on the ANSI99/11 C grammar, specifically parts of EXPRESSION and STATEMENTS, and on 17 // the C grammar by James A. Roskind, specifically parts of DECLARATIONS and EXTERNAL DEFINITIONS. While 18 // parts have been copied, important changes have been made in all sections; these changes are sufficient to 19 // constitute a new grammar. In particular, this grammar attempts to be more syntactically precise, i.e., it 20 // parses less incorrect language syntax that must be subsequently rejected by semantic checks. Nevertheless, 21 // there are still several semantic checks required and many are noted in the grammar. Finally, the grammar is 22 // extended with GCC and CFA language extensions. 23 24 // Acknowledgments to Richard Bilson, Glen Ditchfield, and Rodolfo Gabriel Esteves who all helped when I got 25 // stuck with the grammar. 16 // This grammar is based on the ANSI99/11 C grammar, specifically parts of EXPRESSION and STATEMENTS, and on the C 17 // grammar by James A. Roskind, specifically parts of DECLARATIONS and EXTERNAL DEFINITIONS. While parts have been 18 // copied, important changes have been made in all sections; these changes are sufficient to constitute a new grammar. 19 // In particular, this grammar attempts to be more syntactically precise, i.e., it parses less incorrect language syntax 20 // that must be subsequently rejected by semantic checks. Nevertheless, there are still several semantic checks 21 // required and many are noted in the grammar. Finally, the grammar is extended with GCC and CFA language extensions. 22 23 // Acknowledgments to Richard Bilson, Glen Ditchfield, and Rodolfo Gabriel Esteves who all helped when I got stuck with 24 // the grammar. 26 25 27 26 // The root language for this grammar is ANSI99/11 C. All of ANSI99/11 is parsed, except for: … … 29 28 // 1. designation with '=' (use ':' instead) 30 29 // 31 // Most of the syntactic extensions from ANSI90 to ANSI11 C are marked with the comment "C99/C11". This 32 // grammar also hastwo levels of extensions. The first extensions cover most of the GCC C extensions, except for:30 // Most of the syntactic extensions from ANSI90 to ANSI11 C are marked with the comment "C99/C11". This grammar also has 31 // two levels of extensions. The first extensions cover most of the GCC C extensions, except for: 33 32 // 34 33 // 1. nested functions … … 37 36 // 4. attributes not allowed in parenthesis of declarator 38 37 // 39 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for 40 // Cforall (CFA), which fixes several of C's outstanding problems and extends C with many modern language41 // concepts. All of the syntactic extensions for CFA C are marked with the comment "CFA". As noted above,42 // there is one unreconcileable parsing problem between C99 and CFA with respect to designators; this is43 // discussed in detail before the "designation"grammar rule.38 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall 39 // (CFA), which fixes several of C's outstanding problems and extends C with many modern language concepts. All of the 40 // syntactic extensions for CFA C are marked with the comment "CFA". As noted above, there is one unreconcileable 41 // parsing problem between C99 and CFA with respect to designators; this is discussed in detail before the "designation" 42 // grammar rule. 44 43 45 44 %{ … … 250 249 //************************* Namespace Management ******************************** 251 250 252 // The grammar in the ANSI C standard is not strictly context-free, since it relies upon the distinct terminal 253 // symbols "identifier" and "TYPEDEFname" that are lexically identical. While it is possible to write a 254 // purely context-free grammar, such a grammar would obscure the relationship between syntactic and semantic 255 // constructs. Hence, this grammar uses the ANSI style. 256 // 257 // Cforall compounds this problem by introducing type names local to the scope of a declaration (for instance, 258 // those introduced through "forall" qualifiers), and by introducing "type generators" -- parametrized types. 259 // This latter type name creates a third class of identifiers that must be distinguished by the scanner. 260 // 261 // Since the scanner cannot distinguish among the different classes of identifiers without some context 262 // information, it accesses a data structure (the TypedefTable) to allow classification of an identifier that 263 // it has just read. Semantic actions during the parser update this data structure when the class of 264 // identifiers change. 265 // 266 // Because the Cforall language is block-scoped, there is the possibility that an identifier can change its 267 // class in a local scope; it must revert to its original class at the end of the block. Since type names can 268 // be local to a particular declaration, each declaration is itself a scope. This requires distinguishing 269 // between type names that are local to the current declaration scope and those that persist past the end of 270 // the declaration (i.e., names defined in "typedef" or "type" declarations). 271 // 272 // The non-terminals "push" and "pop" derive the empty string; their only use is to denote the opening and 273 // closing of scopes. Every push must have a matching pop, although it is regrettable the matching pairs do 274 // not always occur within the same rule. These non-terminals may appear in more contexts than strictly 275 // necessary from a semantic point of view. Unfortunately, these extra rules are necessary to prevent parsing 276 // conflicts -- the parser may not have enough context and look-ahead information to decide whether a new 277 // scope is necessary, so the effect of these extra rules is to open a new scope unconditionally. As the 278 // grammar evolves, it may be neccesary to add or move around "push" and "pop" nonterminals to resolve 279 // conflicts of this sort. 251 // The grammar in the ANSI C standard is not strictly context-free, since it relies upon the distinct terminal symbols 252 // "identifier" and "TYPEDEFname" that are lexically identical. While it is possible to write a purely context-free 253 // grammar, such a grammar would obscure the relationship between syntactic and semantic constructs. Hence, this 254 // grammar uses the ANSI style. 255 // 256 // Cforall compounds this problem by introducing type names local to the scope of a declaration (for instance, those 257 // introduced through "forall" qualifiers), and by introducing "type generators" -- parametrized types. This latter 258 // type name creates a third class of identifiers that must be distinguished by the scanner. 259 // 260 // Since the scanner cannot distinguish among the different classes of identifiers without some context information, it 261 // accesses a data structure (the TypedefTable) to allow classification of an identifier that it has just read. 262 // Semantic actions during the parser update this data structure when the class of identifiers change. 263 // 264 // Because the Cforall language is block-scoped, there is the possibility that an identifier can change its class in a 265 // local scope; it must revert to its original class at the end of the block. Since type names can be local to a 266 // particular declaration, each declaration is itself a scope. This requires distinguishing between type names that are 267 // local to the current declaration scope and those that persist past the end of the declaration (i.e., names defined in 268 // "typedef" or "type" declarations). 269 // 270 // The non-terminals "push" and "pop" derive the empty string; their only use is to denote the opening and closing of 271 // scopes. Every push must have a matching pop, although it is regrettable the matching pairs do not always occur 272 // within the same rule. These non-terminals may appear in more contexts than strictly necessary from a semantic point 273 // of view. Unfortunately, these extra rules are necessary to prevent parsing conflicts -- the parser may not have 274 // enough context and look-ahead information to decide whether a new scope is necessary, so the effect of these extra 275 // rules is to open a new scope unconditionally. As the grammar evolves, it may be neccesary to add or move around 276 // "push" and "pop" nonterminals to resolve conflicts of this sort. 280 277 281 278 push: … … 294 291 295 292 constant: 296 // ENUMERATIONconstant is not included here; it is treated as a variable with type 297 // "enumeration constant". 293 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 298 294 INTEGERconstant { $$ = new ConstantNode( ConstantNode::Integer, $1 ); } 299 295 | FLOATINGconstant { $$ = new ConstantNode( ConstantNode::Float, $1 ); } … … 330 326 primary_expression: 331 327 IDENTIFIER // typedef name cannot be used as a variable name 332 { $$ = new VarRefNode( $1); }328 { $$ = new VarRefNode( $1 ); } 333 329 | zero_one 334 { $$ = new VarRefNode( $1); }330 { $$ = new VarRefNode( $1 ); } 335 331 | constant 336 332 { $$ = $1; } … … 340 336 { $$ = $2; } 341 337 | '(' compound_statement ')' // GCC, lambda expression 342 { $$ = new ValofExprNode( $2); }338 { $$ = new ValofExprNode( $2 ); } 343 339 ; 344 340 … … 346 342 primary_expression 347 343 | postfix_expression '[' push assignment_expression pop ']' 348 // CFA, comma_expression disallowed in the context because it results in a commom user error: 349 // subscripting a matrix with x[i,j] instead of x[i][j]. While this change is not backwards350 // compatible, there seems to be little advantage to this feature and many disadvantages. Itis351 // possible to write x[(i,j)] in CFA, which isequivalent to the old x[i,j].352 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Index), $1, $4); }344 // CFA, comma_expression disallowed in the context because it results in a commom user error: subscripting a 345 // matrix with x[i,j] instead of x[i][j]. While this change is not backwards compatible, there seems to be 346 // little advantage to this feature and many disadvantages. It is possible to write x[(i,j)] in CFA, which is 347 // equivalent to the old x[i,j]. 348 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Index ), $1, $4 ); } 353 349 | postfix_expression '(' argument_expression_list ')' 354 { $$ = new CompositeExprNode( $1, $3); }350 { $$ = new CompositeExprNode( $1, $3 ); } 355 351 | postfix_expression '.' no_attr_identifier 356 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::FieldSel), $1, new VarRefNode($3)); }352 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), $1, new VarRefNode( $3 )); } 357 353 | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector 358 354 | postfix_expression ARROW no_attr_identifier 359 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::PFieldSel), $1, new VarRefNode($3)); }355 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), $1, new VarRefNode( $3 )); } 360 356 | postfix_expression ARROW '[' push field_list pop ']' // CFA, tuple field selector 361 357 | postfix_expression ICR 362 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::IncrPost), $1); }358 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::IncrPost ), $1 ); } 363 359 | postfix_expression DECR 364 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::DecrPost), $1); }360 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::DecrPost ), $1 ); } 365 361 // GCC has priority: cast_expression 366 362 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99 … … 371 367 argument_expression 372 368 | argument_expression_list ',' argument_expression 373 { $$ = (ExpressionNode *)( $1->set_link($3)); }369 { $$ = (ExpressionNode *)( $1->set_link( $3 )); } 374 370 ; 375 371 … … 379 375 | assignment_expression 380 376 | no_attr_identifier ':' assignment_expression 381 { $$ = $3->set_asArgName( $1); }382 // Only a list of no_attr_identifier_or_typedef_name is allowed in this context. However, there is 383 // insufficient look ahead to distinguish between this list of parameter names and a tuple, so the384 // tuple form must be usedwith an appropriate semantic check.377 { $$ = $3->set_asArgName( $1 ); } 378 // Only a list of no_attr_identifier_or_typedef_name is allowed in this context. However, there is insufficient 379 // look ahead to distinguish between this list of parameter names and a tuple, so the tuple form must be used 380 // with an appropriate semantic check. 385 381 | '[' push assignment_expression pop ']' ':' assignment_expression 386 { $$ = $7->set_asArgName( $3); }382 { $$ = $7->set_asArgName( $3 ); } 387 383 | '[' push assignment_expression ',' tuple_expression_list pop ']' ':' assignment_expression 388 384 { $$ = $9->set_asArgName( new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)$3->set_link( flattenCommas( $5 )))); } … … 398 394 { $$ = new VarRefNode( $1 ); } 399 395 | no_attr_identifier '.' field 400 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::FieldSel), new VarRefNode( $1 ), $3); }396 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $3 ); } 401 397 | no_attr_identifier '.' '[' push field_list pop ']' 402 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::FieldSel), new VarRefNode( $1 ), $5); }398 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::FieldSel ), new VarRefNode( $1 ), $5 ); } 403 399 | no_attr_identifier ARROW field 404 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( $1 ), $3); }400 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( $1 ), $3 ); } 405 401 | no_attr_identifier ARROW '[' push field_list pop ']' 406 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::PFieldSel), new VarRefNode( $1 ), $5); }402 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PFieldSel ), new VarRefNode( $1 ), $5 ); } 407 403 ; 408 404 … … 410 406 postfix_expression 411 407 | ICR unary_expression 412 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Incr), $2); }408 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Incr ), $2 ); } 413 409 | DECR unary_expression 414 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Decr), $2); }410 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Decr ), $2 ); } 415 411 | EXTENSION cast_expression // GCC 416 412 { $$ = $2; } 417 413 | unary_operator cast_expression 418 { $$ = new CompositeExprNode( $1, $2); }414 { $$ = new CompositeExprNode( $1, $2 ); } 419 415 | '!' cast_expression 420 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Neg), $2); }416 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Neg ), $2 ); } 421 417 | '*' cast_expression // CFA 422 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::PointTo), $2); }418 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::PointTo ), $2 ); } 423 419 // '*' is is separated from unary_operator because of shift/reduce conflict in: 424 420 // { * X; } // dereference X … … 426 422 // '&' must be moved here if C++ reference variables are supported. 427 423 | SIZEOF unary_expression 428 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::SizeOf), $2); }424 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), $2 ); } 429 425 | SIZEOF '(' type_name_no_function ')' 430 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::SizeOf), new TypeValueNode($3)); }426 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::SizeOf ), new TypeValueNode( $3 )); } 431 427 | ATTR_IDENTIFIER 432 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Attr), new VarRefNode($1)); }428 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 )); } 433 429 | ATTR_IDENTIFIER '(' type_name ')' 434 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Attr), new VarRefNode($1), new TypeValueNode($3)); }430 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), new TypeValueNode( $3 )); } 435 431 | ATTR_IDENTIFIER '(' argument_expression ')' 436 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Attr), new VarRefNode($1), $3); }432 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Attr ), new VarRefNode( $1 ), $3 ); } 437 433 | ALIGNOF unary_expression // GCC, variable alignment 438 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::AlignOf), $2); }434 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), $2 ); } 439 435 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 440 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::AlignOf), new TypeValueNode($3)); }436 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::AlignOf ), new TypeValueNode( $3 )); } 441 437 | ANDAND no_attr_identifier // GCC, address of label 442 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::LabelAddress), new VarRefNode($2, true)); }438 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LabelAddress ), new VarRefNode( $2, true )); } 443 439 ; 444 440 445 441 unary_operator: 446 '&' { $$ = new OperatorNode( OperatorNode::AddressOf); }447 | '+' { $$ = new OperatorNode( OperatorNode::UnPlus); }448 | '-' { $$ = new OperatorNode( OperatorNode::UnMinus); }449 | '~' { $$ = new OperatorNode( OperatorNode::BitNeg); }442 '&' { $$ = new OperatorNode( OperatorNode::AddressOf ); } 443 | '+' { $$ = new OperatorNode( OperatorNode::UnPlus ); } 444 | '-' { $$ = new OperatorNode( OperatorNode::UnMinus ); } 445 | '~' { $$ = new OperatorNode( OperatorNode::BitNeg ); } 450 446 ; 451 447 … … 453 449 unary_expression 454 450 | '(' type_name_no_function ')' cast_expression 455 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cast), new TypeValueNode($2), $4); }451 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4 ); } 456 452 | '(' type_name_no_function ')' tuple 457 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Cast), new TypeValueNode($2), $4); }453 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cast ), new TypeValueNode( $2 ), $4 ); } 458 454 ; 459 455 … … 461 457 cast_expression 462 458 | multiplicative_expression '*' cast_expression 463 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Mul),$1,$3); }459 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Mul ), $1, $3 ); } 464 460 | multiplicative_expression '/' cast_expression 465 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Div),$1,$3); }461 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Div ), $1, $3 ); } 466 462 | multiplicative_expression '%' cast_expression 467 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Mod),$1,$3); }463 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Mod ), $1, $3 ); } 468 464 ; 469 465 … … 471 467 multiplicative_expression 472 468 | additive_expression '+' multiplicative_expression 473 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Plus),$1,$3); }469 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Plus ), $1, $3 ); } 474 470 | additive_expression '-' multiplicative_expression 475 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Minus),$1,$3); }471 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Minus ), $1, $3 ); } 476 472 ; 477 473 … … 479 475 additive_expression 480 476 | shift_expression LS additive_expression 481 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::LShift),$1,$3); }477 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LShift ), $1, $3 ); } 482 478 | shift_expression RS additive_expression 483 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::RShift),$1,$3); }479 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::RShift ), $1, $3 ); } 484 480 ; 485 481 … … 487 483 shift_expression 488 484 | relational_expression '<' shift_expression 489 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::LThan),$1,$3); }485 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LThan ), $1, $3 ); } 490 486 | relational_expression '>' shift_expression 491 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::GThan),$1,$3); }487 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::GThan ), $1, $3 ); } 492 488 | relational_expression LE shift_expression 493 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::LEThan),$1,$3); }489 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::LEThan ), $1, $3 ); } 494 490 | relational_expression GE shift_expression 495 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::GEThan),$1,$3); }491 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::GEThan ), $1, $3 ); } 496 492 ; 497 493 … … 499 495 relational_expression 500 496 | equality_expression EQ relational_expression 501 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Eq), $1, $3); }497 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Eq ), $1, $3 ); } 502 498 | equality_expression NE relational_expression 503 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Neq), $1, $3); }499 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Neq ), $1, $3 ); } 504 500 ; 505 501 … … 507 503 equality_expression 508 504 | AND_expression '&' equality_expression 509 { $$ =new CompositeExprNode( new OperatorNode(OperatorNode::BitAnd), $1, $3); }505 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::BitAnd ), $1, $3 ); } 510 506 ; 511 507 … … 513 509 AND_expression 514 510 | exclusive_OR_expression '^' AND_expression 515 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Xor), $1, $3); }511 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Xor ), $1, $3 ); } 516 512 ; 517 513 … … 519 515 exclusive_OR_expression 520 516 | inclusive_OR_expression '|' exclusive_OR_expression 521 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::BitOr), $1, $3); }517 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::BitOr ), $1, $3 ); } 522 518 ; 523 519 … … 525 521 inclusive_OR_expression 526 522 | logical_AND_expression ANDAND inclusive_OR_expression 527 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::And), $1, $3); }523 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::And ), $1, $3 ); } 528 524 ; 529 525 … … 531 527 logical_AND_expression 532 528 | logical_OR_expression OROR logical_AND_expression 533 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Or), $1, $3); }529 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Or ), $1, $3 ); } 534 530 ; 535 531 … … 537 533 logical_OR_expression 538 534 | logical_OR_expression '?' comma_expression ':' conditional_expression 539 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cond), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); }535 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5 ) ) ); } 540 536 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 541 { $$=new CompositeExprNode( new OperatorNode(OperatorNode::NCond),$1,$4); }537 { $$=new CompositeExprNode( new OperatorNode( OperatorNode::NCond ), $1, $4 ); } 542 538 | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 543 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cond), (ExpressionNode *)mkList( (*$1, *$3, *$5) ) ); }539 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Cond ), (ExpressionNode *)mkList( (*$1, *$3, *$5 ) ) ); } 544 540 ; 545 541 … … 552 548 conditional_expression 553 549 | unary_expression '=' assignment_expression 554 { $$ =new CompositeExprNode( new OperatorNode(OperatorNode::Assign), $1, $3); }550 { $$ =new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $3 ); } 555 551 | unary_expression assignment_operator assignment_expression 556 { $$ =new CompositeExprNode( $2, $1, $3); }552 { $$ =new CompositeExprNode( $2, $1, $3 ); } 557 553 | tuple assignment_opt // CFA, tuple expression 558 { $$ = ( $2 == 0) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); }554 { $$ = ( $2 == 0 ) ? $1 : new CompositeExprNode( new OperatorNode( OperatorNode::Assign ), $1, $2 ); } 559 555 ; 560 556 … … 566 562 567 563 tuple: // CFA, tuple 568 // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce 569 // co nflict with comma_expression in new_identifier_parameter_array and new_abstract_array564 // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with 565 // comma_expression in new_identifier_parameter_array and new_abstract_array 570 566 '[' push pop ']' 571 567 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ) ); } … … 585 581 586 582 assignment_operator: 587 MULTassign { $$ = new OperatorNode( OperatorNode::MulAssn); }588 | DIVassign { $$ = new OperatorNode( OperatorNode::DivAssn); }589 | MODassign { $$ = new OperatorNode( OperatorNode::ModAssn); }590 | PLUSassign { $$ = new OperatorNode( OperatorNode::PlusAssn); }591 | MINUSassign { $$ = new OperatorNode( OperatorNode::MinusAssn); }592 | LSassign { $$ = new OperatorNode( OperatorNode::LSAssn); }593 | RSassign { $$ = new OperatorNode( OperatorNode::RSAssn); }594 | ANDassign { $$ = new OperatorNode( OperatorNode::AndAssn); }595 | ERassign { $$ = new OperatorNode( OperatorNode::ERAssn); }596 | ORassign { $$ = new OperatorNode( OperatorNode::OrAssn); }583 MULTassign { $$ = new OperatorNode( OperatorNode::MulAssn ); } 584 | DIVassign { $$ = new OperatorNode( OperatorNode::DivAssn ); } 585 | MODassign { $$ = new OperatorNode( OperatorNode::ModAssn ); } 586 | PLUSassign { $$ = new OperatorNode( OperatorNode::PlusAssn ); } 587 | MINUSassign { $$ = new OperatorNode( OperatorNode::MinusAssn ); } 588 | LSassign { $$ = new OperatorNode( OperatorNode::LSAssn ); } 589 | RSassign { $$ = new OperatorNode( OperatorNode::RSAssn ); } 590 | ANDassign { $$ = new OperatorNode( OperatorNode::AndAssn ); } 591 | ERassign { $$ = new OperatorNode( OperatorNode::ERAssn ); } 592 | ORassign { $$ = new OperatorNode( OperatorNode::OrAssn ); } 597 593 ; 598 594 599 595 comma_expression: 600 596 assignment_expression 601 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list( $3); }602 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Comma),$1,$3); }597 | comma_expression ',' assignment_expression // { $$ = (ExpressionNode *)$1->add_to_list( $3 ); } 598 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Comma ), $1, $3 ); } 603 599 ; 604 600 … … 624 620 labeled_statement: 625 621 no_attr_identifier ':' attribute_list_opt statement 626 { $$ = $4->add_label( $1);}622 { $$ = $4->add_label( $1 );} 627 623 ; 628 624 … … 631 627 { $$ = new CompoundStmtNode( (StatementNode *)0 ); } 632 628 | '{' 633 // Two scopes are necessary because the block itself has a scope, but every declaration within the 634 // block alsorequires its own scope629 // Two scopes are necessary because the block itself has a scope, but every declaration within the block also 630 // requires its own scope 635 631 push push 636 632 label_declaration_opt // GCC, local labels … … 642 638 block_item 643 639 | block_item_list push block_item 644 { if ( $1 != 0) { $1->set_link($3); $$ = $1; } }640 { if ( $1 != 0 ) { $1->set_link( $3 ); $$ = $1; } } 645 641 ; 646 642 … … 658 654 statement 659 655 | statement_list statement 660 { if ( $1 != 0) { $1->set_link($2); $$ = $1; } }656 { if ( $1 != 0 ) { $1->set_link( $2 ); $$ = $1; } } 661 657 ; 662 658 663 659 expression_statement: 664 660 comma_expression_opt ';' 665 { $$ = new StatementNode( StatementNode::Exp, $1, 0); }661 { $$ = new StatementNode( StatementNode::Exp, $1, 0 ); } 666 662 ; 667 663 … … 669 665 IF '(' comma_expression ')' statement %prec THEN 670 666 // explicitly deal with the shift/reduce conflict on if/else 671 { $$ = new StatementNode( StatementNode::If, $3, $5); }667 { $$ = new StatementNode( StatementNode::If, $3, $5 ); } 672 668 | IF '(' comma_expression ')' statement ELSE statement 673 { $$ = new StatementNode( StatementNode::If, $3, (StatementNode *)mkList((*$5, *$7)) ); }669 { $$ = new StatementNode( StatementNode::If, $3, (StatementNode *)mkList((*$5, *$7 )) ); } 674 670 | SWITCH '(' comma_expression ')' case_clause // CFA 675 { $$ = new StatementNode( StatementNode::Switch, $3, $5); }671 { $$ = new StatementNode( StatementNode::Switch, $3, $5 ); } 676 672 | SWITCH '(' comma_expression ')' '{' push declaration_list_opt switch_clause_list_opt '}' // CFA 677 { $$ = new StatementNode(StatementNode::Switch, $3, $8); /* xxx */ } 678 // The semantics of the declaration list is changed to include any associated initialization, which is 679 // performed *before* the transfer to the appropriate case clause. Statements after the initial 680 // declaration list can never be executed, and therefore, are removed from the grammar even though C 681 // allows it. 673 { $$ = new StatementNode( StatementNode::Switch, $3, $8 ); /* xxx */ } 674 // The semantics of the declaration list is changed to include any associated initialization, which is performed 675 // *before* the transfer to the appropriate case clause. Statements after the initial declaration list can 676 // never be executed, and therefore, are removed from the grammar even though C allows it. 682 677 | CHOOSE '(' comma_expression ')' case_clause // CFA 683 { $$ = new StatementNode( StatementNode::Choose, $3, $5); }678 { $$ = new StatementNode( StatementNode::Choose, $3, $5 ); } 684 679 | CHOOSE '(' comma_expression ')' '{' push declaration_list_opt choose_clause_list_opt '}' // CFA 685 { $$ = new StatementNode( StatementNode::Choose, $3, $8); }686 ; 687 688 // CASE and DEFAULT clauses are only allowed in the SWITCH statement, precluding Duff's device. In addition, a 689 // c ase clause allows a list of values and subranges.680 { $$ = new StatementNode( StatementNode::Choose, $3, $8 ); } 681 ; 682 683 // CASE and DEFAULT clauses are only allowed in the SWITCH statement, precluding Duff's device. In addition, a case 684 // clause allows a list of values and subranges. 690 685 691 686 case_value: // CFA 692 687 constant_expression { $$ = $1; } 693 688 | constant_expression ELLIPSIS constant_expression // GCC, subrange 694 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Range),$1,$3); }689 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $1, $3 ); } 695 690 | subrange // CFA, subrange 696 691 ; … … 699 694 case_value 700 695 | case_value_list ',' case_value 701 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents($1))->set_link($3) ); }696 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::TupleC ), (ExpressionNode *)(tupleContents( $1 ))->set_link( $3 ) ); } 702 697 ; 703 698 704 699 case_label: // CFA 705 CASE case_value_list ':' { $$ = new StatementNode( StatementNode::Case, $2, 0); }706 | DEFAULT ':' { $$ = new StatementNode( StatementNode::Default); }700 CASE case_value_list ':' { $$ = new StatementNode( StatementNode::Case, $2, 0 ); } 701 | DEFAULT ':' { $$ = new StatementNode( StatementNode::Default ); } 707 702 // A semantic check is required to ensure only one default clause per switch/choose statement. 708 703 ; … … 710 705 case_label_list: // CFA 711 706 case_label 712 | case_label_list case_label { $$ = (StatementNode *)( $1->set_link($2)); }707 | case_label_list case_label { $$ = (StatementNode *)( $1->set_link( $2 )); } 713 708 ; 714 709 715 710 case_clause: // CFA 716 case_label_list statement { $$ = $1->append_last_case( $2); }711 case_label_list statement { $$ = $1->append_last_case( $2 ); } 717 712 ; 718 713 … … 725 720 switch_clause_list: // CFA 726 721 case_label_list statement_list 727 { $$ = $1->append_last_case( $2); }722 { $$ = $1->append_last_case( $2 ); } 728 723 | switch_clause_list case_label_list statement_list 729 { $$ = (StatementNode *)( $1->set_link($2->append_last_case($3))); }724 { $$ = (StatementNode *)( $1->set_link( $2->append_last_case( $3 ))); } 730 725 ; 731 726 … … 738 733 choose_clause_list: // CFA 739 734 case_label_list fall_through 740 { $$ = $1->append_last_case( $2); }735 { $$ = $1->append_last_case( $2 ); } 741 736 | case_label_list statement_list fall_through_opt 742 { $$ = $1->append_last_case((StatementNode *)mkList((*$2,*$3 ))); }737 { $$ = $1->append_last_case((StatementNode *)mkList((*$2,*$3 ))); } 743 738 | choose_clause_list case_label_list fall_through 744 { $$ = (StatementNode *)( $1->set_link($2->append_last_case($3))); }739 { $$ = (StatementNode *)( $1->set_link( $2->append_last_case( $3 ))); } 745 740 | choose_clause_list case_label_list statement_list fall_through_opt 746 { $$ = (StatementNode *)( $1->set_link($2->append_last_case((StatementNode *)mkList((*$3,*$4))))); }741 { $$ = (StatementNode *)( $1->set_link( $2->append_last_case((StatementNode *)mkList((*$3,*$4 ))))); } 747 742 ; 748 743 … … 754 749 755 750 fall_through: // CFA 756 FALLTHRU { $$ = new StatementNode( StatementNode::Fallthru, 0, 0); }757 | FALLTHRU ';' { $$ = new StatementNode( StatementNode::Fallthru, 0, 0); }751 FALLTHRU { $$ = new StatementNode( StatementNode::Fallthru, 0, 0 ); } 752 | FALLTHRU ';' { $$ = new StatementNode( StatementNode::Fallthru, 0, 0 ); } 758 753 ; 759 754 760 755 iteration_statement: 761 756 WHILE '(' comma_expression ')' statement 762 { $$ = new StatementNode( StatementNode::While, $3, $5); }757 { $$ = new StatementNode( StatementNode::While, $3, $5 ); } 763 758 | DO statement WHILE '(' comma_expression ')' ';' 764 { $$ = new StatementNode( StatementNode::Do, $5, $2); }759 { $$ = new StatementNode( StatementNode::Do, $5, $2 ); } 765 760 | FOR '(' push for_control_expression ')' statement 766 { $$ = new StatementNode( StatementNode::For, $4, $6); }761 { $$ = new StatementNode( StatementNode::For, $4, $6 ); } 767 762 ; 768 763 769 764 for_control_expression: 770 765 comma_expression_opt pop ';' comma_expression_opt ';' comma_expression_opt 771 { $$ = new ForCtlExprNode( $1, $4, $6); }766 { $$ = new ForCtlExprNode( $1, $4, $6 ); } 772 767 | declaration comma_expression_opt ';' comma_expression_opt // C99 773 { $$ = new ForCtlExprNode( $1, $2, $4); }768 { $$ = new ForCtlExprNode( $1, $2, $4 ); } 774 769 ; 775 770 776 771 jump_statement: 777 772 GOTO no_attr_identifier ';' 778 { $$ = new StatementNode( StatementNode::Goto, $2); }773 { $$ = new StatementNode( StatementNode::Goto, $2 ); } 779 774 | GOTO '*' comma_expression ';' // GCC, computed goto 780 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => 781 // goto *(i+3);whereas normal operator precedence yields goto (*i)+3;782 { $$ = new StatementNode( StatementNode::Goto, $3); }775 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3 ); 776 // whereas normal operator precedence yields goto (*i)+3; 777 { $$ = new StatementNode( StatementNode::Goto, $3 ); } 783 778 | CONTINUE ';' 784 // A semantic check is required to ensure this statement appears only in the body of an iteration 785 // statement. 786 { $$ = new StatementNode(StatementNode::Continue, 0, 0); } 779 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 780 { $$ = new StatementNode( StatementNode::Continue, 0, 0 ); } 787 781 | CONTINUE no_attr_identifier ';' // CFA, multi-level continue 788 // A semantic check is required to ensure this statement appears only in the body of an iteration 789 // statement, andthe target of the transfer appears only at the start of an iteration statement.790 { $$ = new StatementNode( StatementNode::Continue, $2); }782 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 783 // the target of the transfer appears only at the start of an iteration statement. 784 { $$ = new StatementNode( StatementNode::Continue, $2 ); } 791 785 | BREAK ';' 792 // A semantic check is required to ensure this statement appears only in the body of an iteration 793 // statement. 794 { $$ = new StatementNode(StatementNode::Break, 0, 0); } 786 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. 787 { $$ = new StatementNode( StatementNode::Break, 0, 0 ); } 795 788 | BREAK no_attr_identifier ';' // CFA, multi-level exit 796 // A semantic check is required to ensure this statement appears only in the body of an iteration 797 // statement, andthe target of the transfer appears only at the start of an iteration statement.798 { $$ = new StatementNode( StatementNode::Break, $2 ); }789 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 790 // the target of the transfer appears only at the start of an iteration statement. 791 { $$ = new StatementNode( StatementNode::Break, $2 ); } 799 792 | RETURN comma_expression_opt ';' 800 { $$ = new StatementNode( StatementNode::Return, $2, 0); }793 { $$ = new StatementNode( StatementNode::Return, $2, 0 ); } 801 794 | THROW assignment_expression ';' 802 { $$ = new StatementNode( StatementNode::Throw, $2, 0); }795 { $$ = new StatementNode( StatementNode::Throw, $2, 0 ); } 803 796 | THROW ';' 804 { $$ = new StatementNode( StatementNode::Throw, 0, 0); }797 { $$ = new StatementNode( StatementNode::Throw, 0, 0 ); } 805 798 ; 806 799 807 800 exception_statement: 808 801 TRY compound_statement handler_list 809 { $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); }802 { $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3 )))); } 810 803 | TRY compound_statement finally_clause 811 { $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3)))); }804 { $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3 )))); } 812 805 | TRY compound_statement handler_list finally_clause 813 806 { 814 $3->set_link( $4);815 $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3))));807 $3->set_link( $4 ); 808 $$ = new StatementNode( StatementNode::Try, 0,(StatementNode *)(mkList((*$2,*$3 )))); 816 809 } 817 810 ; … … 820 813 // There must be at least one catch clause 821 814 handler_clause 822 // ISO/IEC 9899:1999 Section 15.3(6) If present, a "..." handler shall be the last handler for its try 823 // block. 815 // ISO/IEC 9899:1999 Section 15.3(6 ) If present, a "..." handler shall be the last handler for its try block. 824 816 | CATCH '(' ELLIPSIS ')' compound_statement 825 817 { $$ = StatementNode::newCatchStmt( 0, $5, true ); } … … 830 822 handler_clause: 831 823 CATCH '(' push push exception_declaration pop ')' compound_statement pop 832 { $$ = StatementNode::newCatchStmt( $5, $8); }824 { $$ = StatementNode::newCatchStmt( $5, $8 ); } 833 825 | handler_clause CATCH '(' push push exception_declaration pop ')' compound_statement pop 834 { $$ = $1->set_link( StatementNode::newCatchStmt( $6, $9) ); }826 { $$ = $1->set_link( StatementNode::newCatchStmt( $6, $9 ) ); } 835 827 ; 836 828 … … 838 830 FINALLY compound_statement 839 831 { 840 $$ = new StatementNode( StatementNode::Finally, 0, $2);832 $$ = new StatementNode( StatementNode::Finally, 0, $2 ); 841 833 std::cout << "Just created a finally node" << std::endl; 842 834 } … … 867 859 asm_statement: 868 860 ASM type_qualifier_list_opt '(' constant_expression ')' ';' 869 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }861 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 870 862 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ')' ';' // remaining GCC 871 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }863 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 872 864 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ')' ';' 873 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }865 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 874 866 | ASM type_qualifier_list_opt '(' constant_expression ':' asm_operands_opt ':' asm_operands_opt ':' asm_clobbers_list ')' ';' 875 { $$ = new StatementNode( StatementNode::Asm, 0, 0); }867 { $$ = new StatementNode( StatementNode::Asm, 0, 0 ); } 876 868 ; 877 869 … … 941 933 ; 942 934 943 // C declaration syntax is notoriously confusing and error prone. Cforall provides its own type, variable and 944 // function declarations. CFA declarations use the same declaration tokens as in C; however, CFA places 945 // declaration modifiers to the left of the base type, while C declarations place modifiers to the right of 946 // the base type. CFA declaration modifiers are interpreted from left to right and the entire type 947 // specification is distributed across all variables in the declaration list (as in Pascal). ANSI C and the 948 // new CFA declarations may appear together in the same program block, but cannot be mixed within a specific 949 // declaration. 935 // C declaration syntax is notoriously confusing and error prone. Cforall provides its own type, variable and function 936 // declarations. CFA declarations use the same declaration tokens as in C; however, CFA places declaration modifiers to 937 // the left of the base type, while C declarations place modifiers to the right of the base type. CFA declaration 938 // modifiers are interpreted from left to right and the entire type specification is distributed across all variables in 939 // the declaration list (as in Pascal). ANSI C and the new CFA declarations may appear together in the same program 940 // block, but cannot be mixed within a specific declaration. 950 941 // 951 942 // CFA C … … 968 959 } 969 960 | declaration_qualifier_list new_variable_specifier initializer_opt 970 // declaration_qualifier_list also includes type_qualifier_list, so a semantic check is necessary to 971 // precludethem as a type_qualifier cannot appear in that context.961 // declaration_qualifier_list also includes type_qualifier_list, so a semantic check is necessary to preclude 962 // them as a type_qualifier cannot appear in that context. 972 963 { 973 964 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 982 973 983 974 new_variable_specifier: // CFA 984 // A semantic check is required to ensure asm_name only appears on declarations with implicit or 985 // explicit staticstorage-class975 // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static 976 // storage-class 986 977 new_abstract_declarator_no_tuple identifier_or_typedef_name asm_name_opt 987 978 { … … 1032 1023 '[' push pop ']' identifier '(' push new_parameter_type_list_opt pop ')' 1033 1024 { 1034 typedefTable.setNextIdentifier( *( $5) );1025 typedefTable.setNextIdentifier( *( $5 ) ); 1035 1026 $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true ); 1036 1027 } 1037 1028 | '[' push pop ']' TYPEDEFname '(' push new_parameter_type_list_opt pop ')' 1038 1029 { 1039 typedefTable.setNextIdentifier( *( $5) );1030 typedefTable.setNextIdentifier( *( $5 ) ); 1040 1031 $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true ); 1041 1032 } … … 1045 1036 // '[' ']' type_specifier 1046 1037 // 1047 // type_specifier can resolve to just TYPEDEFname (e.g. typedef int T; int f( T );). Therefore this 1048 // must be flattened to allow lookahead to the '(' without having to reduce 1049 // identifier_or_typedef_name. 1038 // type_specifier can resolve to just TYPEDEFname (e.g. typedef int T; int f( T );). Therefore this must be 1039 // flattened to allow lookahead to the '(' without having to reduce identifier_or_typedef_name. 1050 1040 | new_abstract_tuple identifier_or_typedef_name '(' push new_parameter_type_list_opt pop ')' 1051 // To obtain LR(1), this rule must be factored out from function return type (see 1052 // new_abstract_declarator). 1041 // To obtain LR(1 ), this rule must be factored out from function return type (see new_abstract_declarator). 1053 1042 { 1054 1043 $$ = DeclarationNode::newFunction( $2, $1, $5, 0, true ); … … 1064 1053 { $$ = DeclarationNode::newTuple( $3 ); } 1065 1054 | '[' push new_parameter_list pop ',' push new_abstract_parameter_list pop ']' 1066 // To obtain LR(1 ), the last new_abstract_parameter_list is added into this flattened rule to1067 // lookahead to the']'.1055 // To obtain LR(1 ), the last new_abstract_parameter_list is added into this flattened rule to lookahead to the 1056 // ']'. 1068 1057 { $$ = DeclarationNode::newTuple( $3->appendList( $7 ) ); } 1069 1058 ; … … 1072 1061 TYPEDEF new_variable_specifier 1073 1062 { 1074 typedefTable.addToEnclosingScope( TypedefTable::TD );1063 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1075 1064 $$ = $2->addTypedef(); 1076 1065 } 1077 1066 | TYPEDEF new_function_specifier 1078 1067 { 1079 typedefTable.addToEnclosingScope( TypedefTable::TD );1068 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1080 1069 $$ = $2->addTypedef(); 1081 1070 } 1082 1071 | new_typedef_declaration pop ',' push no_attr_identifier 1083 1072 { 1084 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD );1073 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD ); 1085 1074 $$ = $1->appendList( $1->cloneType( $5 ) ); 1086 1075 } 1087 1076 ; 1088 1077 1089 // Traditionally typedef is part of storage-class specifier for syntactic convenience only. Here, it is 1090 // factored out as a separate form of declaration, which syntactically precludes storage-class specifiers and 1091 // initialization. 1078 // Traditionally typedef is part of storage-class specifier for syntactic convenience only. Here, it is factored out as 1079 // a separate form of declaration, which syntactically precludes storage-class specifiers and initialization. 1092 1080 1093 1081 typedef_declaration: 1094 1082 TYPEDEF type_specifier declarator 1095 1083 { 1096 typedefTable.addToEnclosingScope( TypedefTable::TD );1084 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1097 1085 $$ = $3->addType( $2 )->addTypedef(); 1098 1086 } 1099 1087 | typedef_declaration pop ',' push declarator 1100 1088 { 1101 typedefTable.addToEnclosingScope( TypedefTable::TD );1089 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1102 1090 $$ = $1->appendList( $1->cloneBaseType( $5 )->addTypedef() ); 1103 1091 } 1104 | type_qualifier_list TYPEDEF type_specifier declarator // remaining OBSOLESCENT (see 2 )1105 { 1106 typedefTable.addToEnclosingScope( TypedefTable::TD );1092 | type_qualifier_list TYPEDEF type_specifier declarator // remaining OBSOLESCENT (see 2 ) 1093 { 1094 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1107 1095 $$ = $4->addType( $3 )->addQualifiers( $1 )->addTypedef(); 1108 1096 } 1109 1097 | type_specifier TYPEDEF declarator 1110 1098 { 1111 typedefTable.addToEnclosingScope( TypedefTable::TD );1099 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1112 1100 $$ = $3->addType( $1 )->addTypedef(); 1113 1101 } 1114 1102 | type_specifier TYPEDEF type_qualifier_list declarator 1115 1103 { 1116 typedefTable.addToEnclosingScope( TypedefTable::TD );1117 $$ = $4->addQualifiers( $1)->addTypedef()->addType($1);1104 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1105 $$ = $4->addQualifiers( $1 )->addTypedef()->addType( $1 ); 1118 1106 } 1119 1107 ; … … 1122 1110 TYPEDEF no_attr_identifier '=' assignment_expression 1123 1111 { 1124 typedefTable.addToEnclosingScope( *($2), TypedefTable::TD);1112 typedefTable.addToEnclosingScope( *$2, TypedefTable::TD ); 1125 1113 $$ = DeclarationNode::newName( 0 ); // XXX 1126 1114 } 1127 1115 | typedef_expression pop ',' push no_attr_identifier '=' assignment_expression 1128 1116 { 1129 typedefTable.addToEnclosingScope( *($5), TypedefTable::TD);1117 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD ); 1130 1118 $$ = DeclarationNode::newName( 0 ); // XXX 1131 1119 } … … 1140 1128 1141 1129 declaring_list: 1142 // A semantic check is required to ensure asm_name only appears on declarations with implicit or 1143 // explicit staticstorage-class1130 // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static 1131 // storage-class 1144 1132 declaration_specifier declarator asm_name_opt initializer_opt 1145 1133 { 1146 1134 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1147 $$ = ( $2->addType( $1 ))->addInitializer($4);1135 $$ = ( $2->addType( $1 ))->addInitializer( $4 ); 1148 1136 } 1149 1137 | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt 1150 1138 { 1151 1139 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1152 $$ = $1->appendList( $1->cloneBaseType( $4->addInitializer( $6) ) );1140 $$ = $1->appendList( $1->cloneBaseType( $4->addInitializer( $6 ) ) ); 1153 1141 } 1154 1142 ; … … 1175 1163 1176 1164 type_qualifier_list: 1177 // A semantic check is necessary to ensure a type qualifier is appropriate for the kind of 1178 // declaration. 1165 // A semantic check is necessary to ensure a type qualifier is appropriate for the kind of declaration. 1179 1166 // 1180 // ISO/IEC 9899:1999 Section 6.7.3(4 ) : If the same qualifier appears more than once in the same1181 // specifier-qualifier-list, either directly or via one or more typedefs, the behavior is the same as 1182 // if itappeared only once.1167 // ISO/IEC 9899:1999 Section 6.7.3(4 ) : If the same qualifier appears more than once in the same 1168 // specifier-qualifier-list, either directly or via one or more typedefs, the behavior is the same as if it 1169 // appeared only once. 1183 1170 type_qualifier 1184 1171 | type_qualifier_list type_qualifier … … 1216 1203 declaration_qualifier_list: 1217 1204 storage_class_list 1218 | type_qualifier_list storage_class_list // remaining OBSOLESCENT (see 2 )1205 | type_qualifier_list storage_class_list // remaining OBSOLESCENT (see 2 ) 1219 1206 { $$ = $1->addQualifiers( $2 ); } 1220 1207 | declaration_qualifier_list type_qualifier_list storage_class_list … … 1223 1210 1224 1211 storage_class_list: 1225 // A semantic check is necessary to ensure a storage class is appropriate for the kind of declaration 1226 // and thatonly one of each is specified, except for inline, which can appear with the others.1212 // A semantic check is necessary to ensure a storage class is appropriate for the kind of declaration and that 1213 // only one of each is specified, except for inline, which can appear with the others. 1227 1214 // 1228 // ISO/IEC 9899:1999 Section 6.7.1(2) : At most, one storage-class specifier may be given in the 1229 // declarationspecifiers in a declaration.1215 // ISO/IEC 9899:1999 Section 6.7.1(2) : At most, one storage-class specifier may be given in the declaration 1216 // specifiers in a declaration. 1230 1217 storage_class 1231 1218 | storage_class_list storage_class … … 1381 1368 | aggregate_key '(' push type_parameter_list pop ')' '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1382 1369 { $$ = DeclarationNode::newAggregate( $1, 0, $4, $8, $11 ); } 1370 | aggregate_key TYPEGENname '(' type_name_list ')' // CFA 1371 {} 1383 1372 | aggregate_key '(' push type_name_list pop ')' no_attr_identifier_or_typedef_name // CFA 1384 1373 // push and pop are only to prevent S/R conflicts … … 1501 1490 1502 1491 new_parameter_list: // CFA 1503 // To obtain LR(1) between new_parameter_list and new_abstract_tuple, the last 1504 // new_abstract_parameter_list is factored out from new_parameter_list, flattening the rules to get 1505 // lookahead to the ']'. 1492 // To obtain LR(1) between new_parameter_list and new_abstract_tuple, the last new_abstract_parameter_list is 1493 // factored out from new_parameter_list, flattening the rules to get lookahead to the ']'. 1506 1494 new_parameter_declaration 1507 1495 | new_abstract_parameter_list pop ',' push new_parameter_declaration … … 1540 1528 ; 1541 1529 1542 // Provides optional identifier names (abstract_declarator/variable_declarator), no initialization, different 1543 // semantics for typedef name by using typedef_parameter_redeclarator instead of typedef_redeclarator, and 1544 // function prototypes. 1530 // Provides optional identifier names (abstract_declarator/variable_declarator), no initialization, different semantics 1531 // for typedef name by using typedef_parameter_redeclarator instead of typedef_redeclarator, and function prototypes. 1545 1532 1546 1533 new_parameter_declaration: // CFA, new & old style parameter declaration … … 1570 1557 { 1571 1558 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1572 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3) );1559 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ) ); 1573 1560 } 1574 1561 | declaration_specifier typedef_parameter_redeclarator assignment_opt 1575 1562 { 1576 1563 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1577 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3) );1564 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ) ); 1578 1565 } 1579 1566 ; … … 1586 1573 1587 1574 // ISO/IEC 9899:1999 Section 6.9.1(6) : "An identifier declared as a typedef name shall not be redeclared as a 1588 // parameter." Because the scope of the K&R-style parameter-list sees the typedef first, the following is 1589 // based only onidentifiers. The ANSI-style parameter-list can redefine a typedef name.1575 // parameter." Because the scope of the K&R-style parameter-list sees the typedef first, the following is based only on 1576 // identifiers. The ANSI-style parameter-list can redefine a typedef name. 1590 1577 1591 1578 identifier_list: // K&R-style parameter list => no types … … 1611 1598 no_attr_identifier 1612 1599 | TYPEDEFname 1613 | TYPEGENname1600 // | TYPEGENname 1614 1601 ; 1615 1602 … … 1636 1623 1637 1624 initializer: 1638 assignment_expression { $$ = new InitializerNode( $1); }1639 | '{' initializer_list comma_opt '}' { $$ = new InitializerNode( $2, true); }1625 assignment_expression { $$ = new InitializerNode( $1 ); } 1626 | '{' initializer_list comma_opt '}' { $$ = new InitializerNode( $2, true ); } 1640 1627 ; 1641 1628 … … 1643 1630 initializer 1644 1631 | designation initializer { $$ = $2->set_designators( $1 ); } 1645 | initializer_list ',' initializer { $$ = (InitializerNode *)( $1->set_link( $3) ); }1632 | initializer_list ',' initializer { $$ = (InitializerNode *)( $1->set_link( $3 ) ); } 1646 1633 | initializer_list ',' designation initializer 1647 { $$ = (InitializerNode *)( $1->set_link( $4->set_designators( $3) ) ); }1648 ; 1649 1650 // There is an unreconcileable parsing problem between C99 and CFA with respect to designators. The problem is 1651 // use of'=' to separator the designator from the initializer value, as in:1634 { $$ = (InitializerNode *)( $1->set_link( $4->set_designators( $3 ) ) ); } 1635 ; 1636 1637 // There is an unreconcileable parsing problem between C99 and CFA with respect to designators. The problem is use of 1638 // '=' to separator the designator from the initializer value, as in: 1652 1639 // 1653 1640 // int x[10] = { [1] = 3 }; 1654 1641 // 1655 // The string "[1] = 3" can be parsed as a designator assignment or a tuple assignment. To disambiguate this 1656 // c ase, CFA changes the syntax from "=" to ":" as the separator between the designator and initializer. GCC1657 // does uses ":" for field selection. The optional use of the "=" in GCC, or in this case ":", cannot be1658 // s upported either due to shift/reduce conflicts1642 // The string "[1] = 3" can be parsed as a designator assignment or a tuple assignment. To disambiguate this case, CFA 1643 // changes the syntax from "=" to ":" as the separator between the designator and initializer. GCC does uses ":" for 1644 // field selection. The optional use of the "=" in GCC, or in this case ":", cannot be supported either due to 1645 // shift/reduce conflicts 1659 1646 1660 1647 designation: … … 1666 1653 designator_list: // C99 1667 1654 designator 1668 | designator_list designator { $$ = (ExpressionNode *)($1->set_link( $2 )); } 1655 | designator_list designator { $$ = (ExpressionNode *)( $1->set_link( $2 )); } 1656 //| designator_list designator { $$ = new CompositeExprNode( $1, $2 ); } 1669 1657 ; 1670 1658 … … 1673 1661 { $$ = new VarRefNode( $2 ); } 1674 1662 | '[' push assignment_expression pop ']' // C99, single array element 1675 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with 1676 // tuple. 1663 // assignment_expression used instead of constant_expression because of shift/reduce conflicts with tuple. 1677 1664 { $$ = $3; } 1678 1665 | '[' push subrange pop ']' // CFA, multiple array elements 1679 1666 { $$ = $3; } 1680 1667 | '[' push constant_expression ELLIPSIS constant_expression pop ']' // GCC, multiple array elements 1681 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Range), $3, $5); }1668 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $3, $5 ); } 1682 1669 | '.' '[' push field_list pop ']' // CFA, tuple field selector 1683 1670 { $$ = $4; } 1684 1671 ; 1685 1672 1686 // The CFA type system is based on parametric polymorphism, the ability to declare functions with type 1687 // parameters,rather than an object-oriented type system. This required four groups of extensions:1673 // The CFA type system is based on parametric polymorphism, the ability to declare functions with type parameters, 1674 // rather than an object-oriented type system. This required four groups of extensions: 1688 1675 // 1689 1676 // Overloading: function, data, and operator identifiers may be overloaded. 1690 1677 // 1691 // Type declarations: "type" is used to generate new types for declaring objects. Similarly, "dtype" is used 1692 // for object and incomplete types, and "ftype" is used for function types. Type declarations with 1693 // initializers provide definitions of new types. Type declarations with storage class "extern" provide 1694 // opaque types. 1695 // 1696 // Polymorphic functions: A forall clause declares a type parameter. The corresponding argument is inferred at 1697 // the call site. A polymorphic function is not a template; it is a function, with an address and a type. 1678 // Type declarations: "type" is used to generate new types for declaring objects. Similarly, "dtype" is used for object 1679 // and incomplete types, and "ftype" is used for function types. Type declarations with initializers provide 1680 // definitions of new types. Type declarations with storage class "extern" provide opaque types. 1681 // 1682 // Polymorphic functions: A forall clause declares a type parameter. The corresponding argument is inferred at the call 1683 // site. A polymorphic function is not a template; it is a function, with an address and a type. 1698 1684 // 1699 1685 // Specifications and Assertions: Specifications are collections of declarations parameterized by one or more 1700 // types. They serve many of the purposes of abstract classes, and specification hierarchies resemble 1701 // subclass hierarchies. Unlike classes, they can define relationships between types. Assertions declare1702 // t hat a type or types provide the operations declared by a specification. Assertions are normally used1703 // to declare requirementson type arguments of polymorphic functions.1686 // types. They serve many of the purposes of abstract classes, and specification hierarchies resemble subclass 1687 // hierarchies. Unlike classes, they can define relationships between types. Assertions declare that a type or 1688 // types provide the operations declared by a specification. Assertions are normally used to declare requirements 1689 // on type arguments of polymorphic functions. 1704 1690 1705 1691 typegen_declaration_specifier: // CFA … … 1730 1716 type_parameter: // CFA 1731 1717 type_class no_attr_identifier_or_typedef_name 1732 { typedefTable.addToEnclosingScope(*( $2), TypedefTable::TD); }1718 { typedefTable.addToEnclosingScope(*( $2 ), TypedefTable::TD ); } 1733 1719 assertion_list_opt 1734 1720 { $$ = DeclarationNode::newTypeParam( $1, $2 )->addAssertions( $4 ); } … … 1755 1741 '|' no_attr_identifier_or_typedef_name '(' type_name_list ')' 1756 1742 { 1757 typedefTable.openContext( *( $2) );1743 typedefTable.openContext( *( $2 ) ); 1758 1744 $$ = DeclarationNode::newContextUse( $2, $4 ); 1759 1745 } … … 1769 1755 | assignment_expression 1770 1756 | type_name_list ',' type_name 1771 { $$ = (ExpressionNode *)( $1->set_link(new TypeValueNode( $3 ))); }1757 { $$ = (ExpressionNode *)( $1->set_link( new TypeValueNode( $3 ))); } 1772 1758 | type_name_list ',' assignment_expression 1773 { $$ = (ExpressionNode *)( $1->set_link($3)); }1759 { $$ = (ExpressionNode *)( $1->set_link( $3 )); } 1774 1760 ; 1775 1761 … … 1793 1779 no_attr_identifier_or_typedef_name 1794 1780 { 1795 typedefTable.addToEnclosingScope( *($1), TypedefTable::TD);1781 typedefTable.addToEnclosingScope( *$1, TypedefTable::TD ); 1796 1782 $$ = DeclarationNode::newTypeDecl( $1, 0 ); 1797 1783 } 1798 1784 | no_01_identifier_or_typedef_name '(' push type_parameter_list pop ')' 1799 1785 { 1800 typedefTable.addToEnclosingScope( *($1), TypedefTable::TG);1786 typedefTable.addToEnclosingScope( *$1, TypedefTable::TG ); 1801 1787 $$ = DeclarationNode::newTypeDecl( $1, $4 ); 1802 1788 } … … 1806 1792 CONTEXT no_attr_identifier_or_typedef_name '(' push type_parameter_list pop ')' '{' '}' 1807 1793 { 1808 typedefTable.addToEnclosingScope( *($2), TypedefTable::ID );1794 typedefTable.addToEnclosingScope( *$2, TypedefTable::ID ); 1809 1795 $$ = DeclarationNode::newContext( $2, $5, 0 ); 1810 1796 } 1811 1797 | CONTEXT no_attr_identifier_or_typedef_name '(' push type_parameter_list pop ')' '{' 1812 1798 { 1813 typedefTable.enterContext( * ($2));1799 typedefTable.enterContext( *$2 ); 1814 1800 typedefTable.enterScope(); 1815 1801 } … … 1817 1803 { 1818 1804 typedefTable.leaveContext(); 1819 typedefTable.addToEnclosingScope( *($2), TypedefTable::ID );1805 typedefTable.addToEnclosingScope( *$2, TypedefTable::ID ); 1820 1806 $$ = DeclarationNode::newContext( $2, $5, $10 ); 1821 1807 } … … 1846 1832 | new_context_declaring_list pop ',' push identifier_or_typedef_name 1847 1833 { 1848 typedefTable.addToEnclosingScope2( * ($5), TypedefTable::ID );1834 typedefTable.addToEnclosingScope2( *$5, TypedefTable::ID ); 1849 1835 $$ = $1->appendList( $1->cloneType( $5 ) ); 1850 1836 } … … 1882 1868 external_definition 1883 1869 | external_definition_list push external_definition 1884 { $$ = ( $1 != NULL ) ? $1->appendList( $3 ) : $3; }1870 { $$ = ( $1 != NULL ) ? $1->appendList( $3 ) : $3; } 1885 1871 ; 1886 1872 … … 1914 1900 function_definition 1915 1901 1916 // These rules are a concession to the "implicit int" type_specifier because there is a significant 1917 // amount of code with functions missing a type-specifier on the return type. Parsing is possible 1918 // because function_definition does not appear in the context of an expression (nested functions would 1919 // preclude this concession). A function prototype declaration must still have a type_specifier. 1920 // OBSOLESCENT (see 1) 1902 // These rules are a concession to the "implicit int" type_specifier because there is a significant amount of 1903 // code with functions missing a type-specifier on the return type. Parsing is possible because 1904 // function_definition does not appear in the context of an expression (nested functions would preclude this 1905 // concession). A function prototype declaration must still have a type_specifier. OBSOLESCENT (see 1) 1921 1906 | function_declarator compound_statement 1922 1907 { … … 2002 1987 subrange: 2003 1988 constant_expression '~' constant_expression // CFA, integer subrange 2004 { $$ = new CompositeExprNode( new OperatorNode(OperatorNode::Range), $1, $3); }1989 { $$ = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), $1, $3 ); } 2005 1990 ; 2006 1991 … … 2043 2028 2044 2029 // ============================================================================ 2045 // The following sections are a series of grammar patterns used to parse declarators. Multiple patterns are 2046 // necessary because the type of an identifier in wrapped around the identifier in the same form as its usage2047 // in an expression, as in:2030 // The following sections are a series of grammar patterns used to parse declarators. Multiple patterns are necessary 2031 // because the type of an identifier in wrapped around the identifier in the same form as its usage in an expression, as 2032 // in: 2048 2033 // 2049 2034 // int (*f())[10] { ... }; 2050 2035 // ... (*f())[3] += 1; // definition mimics usage 2051 2036 // 2052 // Because these patterns are highly recursive, changes at a lower level in the recursion require copying some 2053 // or all of the pattern. Each of these patterns has some subtle variation to ensure correct syntax in a 2054 // particular context. 2037 // Because these patterns are highly recursive, changes at a lower level in the recursion require copying some or all of 2038 // the pattern. Each of these patterns has some subtle variation to ensure correct syntax in a particular context. 2055 2039 // ============================================================================ 2056 2040 2057 2041 // ---------------------------------------------------------------------------- 2058 // The set of valid declarators before a compound statement for defining a function is less than the set of 2059 // declaratorsto define a variable or function prototype, e.g.:2042 // The set of valid declarators before a compound statement for defining a function is less than the set of declarators 2043 // to define a variable or function prototype, e.g.: 2060 2044 // 2061 2045 // valid declaration invalid definition … … 2066 2050 // int (*f)(int); int (*f)(int) {} 2067 2051 // 2068 // To preclude this syntactic anomaly requires separating the grammar rules for variable and function 2069 // declarators, hencevariable_declarator and function_declarator.2052 // To preclude this syntactic anomaly requires separating the grammar rules for variable and function declarators, hence 2053 // variable_declarator and function_declarator. 2070 2054 // ---------------------------------------------------------------------------- 2071 2055 2072 // This pattern parses a declaration of a variable that is not redefining a typedef name. The pattern 2073 // precludesdeclaring an array of functions versus a pointer to an array of functions.2056 // This pattern parses a declaration of a variable that is not redefining a typedef name. The pattern precludes 2057 // declaring an array of functions versus a pointer to an array of functions. 2074 2058 2075 2059 variable_declarator: … … 2083 2067 identifier 2084 2068 { 2085 typedefTable.setNextIdentifier( * ($1));2069 typedefTable.setNextIdentifier( *$1 ); 2086 2070 $$ = DeclarationNode::newName( $1 ); 2087 2071 } … … 2117 2101 ; 2118 2102 2119 // This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot 2120 // be nested, there is no context where a function definition can redefine a typedef name. To allow nested2121 // fu nctions requires further separation of variable and function declarators in typedef_redeclarator. The2122 // pattern precludes returningarrays and functions versus pointers to arrays and functions.2103 // This pattern parses a function declarator that is not redefining a typedef name. Because functions cannot be nested, 2104 // there is no context where a function definition can redefine a typedef name. To allow nested functions requires 2105 // further separation of variable and function declarators in typedef_redeclarator. The pattern precludes returning 2106 // arrays and functions versus pointers to arrays and functions. 2123 2107 2124 2108 function_declarator: … … 2155 2139 ; 2156 2140 2157 // This pattern parses an old-style K&R function declarator (OBSOLESCENT, see 4) that is not redefining a 2158 // typedef name (see function_declarator for additional comments). The pattern precludes returning arrays and2159 // functions versuspointers to arrays and functions.2141 // This pattern parses an old-style K&R function declarator (OBSOLESCENT, see 4) that is not redefining a typedef name 2142 // (see function_declarator for additional comments). The pattern precludes returning arrays and functions versus 2143 // pointers to arrays and functions. 2160 2144 2161 2145 old_function_declarator: … … 2199 2183 // } 2200 2184 // 2201 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2202 // returning arraysand functions versus pointers to arrays and functions.2185 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2186 // and functions versus pointers to arrays and functions. 2203 2187 2204 2188 typedef_redeclarator: … … 2212 2196 TYPEDEFname 2213 2197 { 2214 typedefTable.setNextIdentifier( *( $1) );2198 typedefTable.setNextIdentifier( *( $1 ) ); 2215 2199 $$ = DeclarationNode::newName( $1 ); 2216 2200 } … … 2248 2232 ; 2249 2233 2250 // This pattern parses a declaration for a parameter variable or function prototype that is not redefining a 2251 // typedef name and allows the C99 array options, which can only appear in a parameter list. The pattern2252 // precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays2253 // a nd functions versus pointers to arrays and functions.2234 // This pattern parses a declaration for a parameter variable or function prototype that is not redefining a typedef 2235 // name and allows the C99 array options, which can only appear in a parameter list. The pattern precludes declaring an 2236 // array of functions versus a pointer to an array of functions, and returning arrays and functions versus pointers to 2237 // arrays and functions. 2254 2238 2255 2239 identifier_parameter_declarator: … … 2289 2273 ; 2290 2274 2291 // This pattern parses a declaration for a parameter variable or function prototype that is redefining a 2292 // typedef name,e.g.:2275 // This pattern parses a declaration for a parameter variable or function prototype that is redefining a typedef name, 2276 // e.g.: 2293 2277 // 2294 2278 // typedef int foo; 2295 2279 // int f( int foo ); // redefine typedef name in new scope 2296 2280 // 2297 // and allows the C99 array options, which can only appear in a parameter list. In addition, the pattern 2298 // handles thespecial meaning of parenthesis around a typedef name:2281 // and allows the C99 array options, which can only appear in a parameter list. In addition, the pattern handles the 2282 // special meaning of parenthesis around a typedef name: 2299 2283 // 2300 2284 // ISO/IEC 9899:1999 Section 6.7.5.3(11) : "In a parameter declaration, a single typedef name in … … 2310 2294 // int g( int g1( T g2( int p ) ) ); // see identifier_parameter_declarator 2311 2295 // 2312 // In essence, a '(' immediately to the left of typedef name, T, is interpreted as starting a parameter type 2313 // list, and not as redundant parentheses around a redeclaration of T. Finally, the pattern also precludes2314 // declaring an array of functions versus a pointer to an array of functions, and returningarrays and2315 // functions versus pointers to arrays and functions.2296 // In essence, a '(' immediately to the left of typedef name, T, is interpreted as starting a parameter type list, and 2297 // not as redundant parentheses around a redeclaration of T. Finally, the pattern also precludes declaring an array of 2298 // functions versus a pointer to an array of functions, and returning arrays and functions versus pointers to arrays and 2299 // functions. 2316 2300 2317 2301 typedef_parameter_redeclarator: … … 2325 2309 TYPEDEFname 2326 2310 { 2327 typedefTable.setNextIdentifier( * ($1));2311 typedefTable.setNextIdentifier( *$1 ); 2328 2312 $$ = DeclarationNode::newName( $1 ); 2329 2313 } … … 2353 2337 ; 2354 2338 2355 // This pattern parses a declaration of an abstract variable or function prototype, i.e., there is no 2356 // identifier towhich the type applies, e.g.:2339 // This pattern parses a declaration of an abstract variable or function prototype, i.e., there is no identifier to 2340 // which the type applies, e.g.: 2357 2341 // 2358 2342 // sizeof( int ); 2359 2343 // sizeof( int [10] ); 2360 2344 // 2361 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2362 // returning arraysand functions versus pointers to arrays and functions.2345 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2346 // and functions versus pointers to arrays and functions. 2363 2347 2364 2348 abstract_declarator: … … 2426 2410 // int f( int (int) ); // abstract function-prototype parameter; no parameter name specified 2427 2411 // 2428 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2429 // returning arraysand functions versus pointers to arrays and functions.2412 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2413 // and functions versus pointers to arrays and functions. 2430 2414 2431 2415 abstract_parameter_declarator: … … 2477 2461 // The declaration of an array parameter has additional syntax over arrays in normal variable declarations: 2478 2462 // 2479 // ISO/IEC 9899:1999 Section 6.7.5.2(1) : "The optional type qualifiers and the keyword static shall 2480 // appear only in a declaration of a function parameter with an array type, and then only in the 2481 // outermost array type derivation." 2463 // ISO/IEC 9899:1999 Section 6.7.5.2(1) : "The optional type qualifiers and the keyword static shall appear only in 2464 // a declaration of a function parameter with an array type, and then only in the outermost array type derivation." 2482 2465 2483 2466 array_parameter_1st_dimension: … … 2498 2481 ; 2499 2482 2500 // This pattern parses a declaration of an abstract variable, i.e., there is no identifier to which the type 2501 // applies,e.g.:2483 // This pattern parses a declaration of an abstract variable, i.e., there is no identifier to which the type applies, 2484 // e.g.: 2502 2485 // 2503 2486 // sizeof( int ); // abstract variable; no identifier name specified 2504 2487 // 2505 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and 2506 // returning arraysand functions versus pointers to arrays and functions.2488 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2489 // and functions versus pointers to arrays and functions. 2507 2490 2508 2491 variable_abstract_declarator: … … 2542 2525 ; 2543 2526 2544 // This pattern parses a new-style declaration for a parameter variable or function prototype that is either 2545 // anidentifier or typedef name and allows the C99 array options, which can only appear in a parameter list.2527 // This pattern parses a new-style declaration for a parameter variable or function prototype that is either an 2528 // identifier or typedef name and allows the C99 array options, which can only appear in a parameter list. 2546 2529 2547 2530 new_identifier_parameter_declarator_tuple: // CFA … … 2573 2556 2574 2557 new_identifier_parameter_array: // CFA 2575 // Only the first dimension can be empty or have qualifiers. Empty dimension must be factored out due 2576 // toshift/reduce conflict with new-style empty (void) function return type.2558 // Only the first dimension can be empty or have qualifiers. Empty dimension must be factored out due to 2559 // shift/reduce conflict with new-style empty (void) function return type. 2577 2560 '[' push pop ']' type_specifier 2578 2561 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } … … 2611 2594 ; 2612 2595 2613 // This pattern parses a new-style declaration of an abstract variable or function prototype, i.e., there is 2614 // noidentifier to which the type applies, e.g.:2596 // This pattern parses a new-style declaration of an abstract variable or function prototype, i.e., there is no 2597 // identifier to which the type applies, e.g.: 2615 2598 // 2616 2599 // [int] f( int ); // abstract variable parameter; no parameter name specified … … 2628 2611 // 2629 2612 // Therefore, it is necessary to look at the token after identifier_or_typedef_name to know when to reduce 2630 // new_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the 2631 // necessary lookahead. To accomplish this, new_abstract_declarator has an entry point without tuple, and2632 // tuple declarations areduplicated when appearing with new_function_specifier.2613 // new_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the necessary 2614 // lookahead. To accomplish this, new_abstract_declarator has an entry point without tuple, and tuple declarations are 2615 // duplicated when appearing with new_function_specifier. 2633 2616 2634 2617 new_abstract_declarator_tuple: // CFA … … 2660 2643 2661 2644 new_abstract_array: // CFA 2662 // Only the first dimension can be empty. Empty dimension must be factored out due to shift/reduce 2663 // conflict withempty (void) function return type.2645 // Only the first dimension can be empty. Empty dimension must be factored out due to shift/reduce conflict with 2646 // empty (void) function return type. 2664 2647 '[' push pop ']' type_specifier 2665 2648 { $$ = $5->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } … … 2690 2673 ; 2691 2674 2692 // 1) ISO/IEC 9899:1999 Section 6.7.2(2) : "At least one type specifier shall be given in the declaration 2693 // specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and 2694 // type name." 2695 // 2696 // 2) ISO/IEC 9899:1999 Section 6.11.5(1) : "The placement of a storage-class specifier other than at the 2697 // beginning of the declaration specifiers in a declaration is an obsolescent feature." 2675 // 1) ISO/IEC 9899:1999 Section 6.7.2(2) : "At least one type specifier shall be given in the declaration specifiers in 2676 // each declaration, and in the specifier-qualifier list in each structure declaration and type name." 2677 // 2678 // 2) ISO/IEC 9899:1999 Section 6.11.5(1) : "The placement of a storage-class specifier other than at the beginning of 2679 // the declaration specifiers in a declaration is an obsolescent feature." 2698 2680 // 2699 2681 // 3) ISO/IEC 9899:1999 Section 6.11.6(1) : "The use of function declarators with empty parentheses (not 2700 2682 // prototype-format parameter type declarators) is an obsolescent feature." 2701 2683 // 2702 // 4) ISO/IEC 9899:1999 Section 6.11.7(1) : "The use of function definitions with separate parameter 2703 // identifier and declaration lists (not prototype-format parameter type and identifier declarators) is an 2704 // obsolescent feature. 2684 // 4) ISO/IEC 9899:1999 Section 6.11.7(1) : "The use of function definitions with separate parameter identifier and 2685 // declaration lists (not prototype-format parameter type and identifier declarators) is an obsolescent feature. 2705 2686 2706 2687 //************************* MISCELLANEOUS ******************************** … … 2730 2711 2731 2712 // Local Variables: // 2713 // mode: c++ // 2732 2714 // tab-width: 4 // 2733 // mode: c++ //2734 2715 // compile-command: "make install" // 2735 2716 // End: // -
src/ResolvExpr/AlternativeFinder.cc
ra1d5d2a rde62360d 10 10 // Created On : Sat May 16 23:52:08 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 8 14:53:58201513 // Update Count : 1 412 // Last Modified On : Mon Jun 22 17:19:54 2015 13 // Update Count : 17 14 14 // 15 15 … … 545 545 NameExpr *fname; 546 546 if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function())) 547 && ( fname->get_name() == std::string(" LabAddress")) ) {548 alternatives.push_back( Alternative( untypedExpr , env, Cost()) );547 && ( fname->get_name() == std::string("&&")) ) { 548 alternatives.push_back( Alternative( untypedExpr->clone(), env, Cost()) ); 549 549 return; 550 550 } -
src/ResolvExpr/Resolver.cc
ra1d5d2a rde62360d 10 10 // Created On : Sun May 17 12:17:01 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Jun 7 21:50:37201513 // Update Count : 2312 // Last Modified On : Wed Jun 24 15:47:16 2015 13 // Update Count : 50 14 14 // 15 15 … … 45 45 virtual void visit( ChooseStmt *switchStmt ); 46 46 virtual void visit( CaseStmt *caseStmt ); 47 virtual void visit( BranchStmt *branchStmt ); 47 48 virtual void visit( ReturnStmt *returnStmt ); 48 49 … … 260 261 void Resolver::visit( CaseStmt *caseStmt ) { 261 262 Visitor::visit( caseStmt ); 263 } 264 265 void Resolver::visit( BranchStmt *branchStmt ) { 266 // must resolve the argument for a computed goto 267 if ( branchStmt->get_type() == BranchStmt::Goto ) { // check for computed goto statement 268 if ( NameExpr * arg = dynamic_cast< NameExpr * >( branchStmt->get_computedTarget() ) ) { 269 VoidType v = Type::Qualifiers(); // cast to void * for the alternative finder 270 PointerType pt( Type::Qualifiers(), v.clone() ); 271 CastExpr * castExpr = new CastExpr( arg, pt.clone() ); 272 Expression * newExpr = findSingleExpression( castExpr, *this ); // find best expression 273 branchStmt->set_target( newExpr ); 274 } // if 275 } // if 262 276 } 263 277 -
src/SymTab/Validate.cc
ra1d5d2a rde62360d 10 10 // Created On : Sun May 17 21:50:04 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 08:06:13201513 // Update Count : 2 612 // Last Modified On : Sat Jun 13 17:10:29 2015 13 // Update Count : 29 14 14 // 15 15 … … 555 555 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 556 556 // because each unit generates copies of the default routines for each aggregate. 557 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );557 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false ); 558 558 assignDecl->fixUniqueId(); 559 559 … … 598 598 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 599 599 // because each unit generates copies of the default routines for each aggregate. 600 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );600 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false ); 601 601 assignDecl->fixUniqueId(); 602 602 … … 646 646 type->get_parameters().push_back( dst ); 647 647 type->get_parameters().push_back( src ); 648 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false );648 FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false, false ); 649 649 declsToAdd.push_back( func ); 650 650 } -
src/SynTree/CompoundStmt.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 5 07:46:03201513 // Update Count : 212 // Last Modified On : Tue Jun 23 11:37:49 2015 13 // Update Count : 3 14 14 // 15 15 … … 33 33 } 34 34 35 void CompoundStmt::print( std::ostream &os, int indent ) {35 void CompoundStmt::print( std::ostream &os, int indent ) const { 36 36 os << string( indent, ' ' ) << "CompoundStmt" << endl ; 37 37 printAll( kids, os, indent + 2 ); -
src/SynTree/DeclStmt.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jun 8 17:24:38201513 // Update Count : 312 // Last Modified On : Tue Jun 23 11:38:15 2015 13 // Update Count : 4 14 14 // 15 15 … … 28 28 } 29 29 30 void DeclStmt::print( std::ostream &os, int indent ) {30 void DeclStmt::print( std::ostream &os, int indent ) const { 31 31 assert( decl != 0 ); 32 32 os << "Declaration of "; -
src/SynTree/Declaration.h
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 12 23:55:26201513 // Update Count : 2 412 // Last Modified On : Sat Jun 13 09:10:31 2015 13 // Update Count : 25 14 14 // 15 15 … … 101 101 typedef DeclarationWithType Parent; 102 102 public: 103 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline );103 FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn ); 104 104 FunctionDecl( const FunctionDecl &other ); 105 105 virtual ~FunctionDecl(); … … 113 113 void set_statements( CompoundStmt *newValue ) { statements = newValue; } 114 114 bool get_isInline() const { return isInline; } 115 // void set_isInline( bool newValue ) { isInline = newValue; }115 bool get_isNoreturn() const { return isNoreturn; } 116 116 std::list< std::string >& get_oldIdents() { return oldIdents; } 117 117 std::list< Declaration* >& get_oldDecls() { return oldDecls; } … … 125 125 FunctionType *type; 126 126 CompoundStmt *statements; 127 bool isInline ;127 bool isInline, isNoreturn; 128 128 std::list< std::string > oldIdents; 129 129 std::list< Declaration* > oldDecls; -
src/SynTree/FunctionDecl.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 13 0 8:12:20201513 // Update Count : 1 412 // Last Modified On : Sat Jun 13 09:10:32 2015 13 // Update Count : 16 14 14 // 15 15 … … 21 21 #include "utility.h" 22 22 23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline )24 : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ) {23 FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn ) 24 : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ), isNoreturn( isNoreturn ) { 25 25 // this is a brazen hack to force the function "main" to have C linkage 26 26 if ( name == "main" ) { … … 30 30 31 31 FunctionDecl::FunctionDecl( const FunctionDecl &other ) 32 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline) {32 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ), isNoreturn( other.isNoreturn ) { 33 33 } 34 34 … … 60 60 os << "inline "; 61 61 } // if 62 if ( isNoreturn ) { 63 os << "_Noreturn "; 64 } // if 62 65 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { 63 66 os << DeclarationNode::storageName[ get_storageClass() ] << ' '; … … 70 73 71 74 if ( ! oldIdents.empty() ) { 72 os << string( indent +2, ' ' ) << "with parameter names" << endl;75 os << string( indent + 2, ' ' ) << "with parameter names" << endl; 73 76 for ( std::list< std::string >::const_iterator i = oldIdents.begin(); i != oldIdents.end(); ++i ) { 74 os << string( indent +4, ' ' ) << *i << endl;77 os << string( indent + 4, ' ' ) << *i << endl; 75 78 } // for 76 79 } // if 77 80 78 81 if ( ! oldDecls.empty() ) { 79 os << string( indent +2, ' ' ) << "with parameter declarations" << endl;80 printAll( oldDecls, os, indent +4 );82 os << string( indent + 2, ' ' ) << "with parameter declarations" << endl; 83 printAll( oldDecls, os, indent + 4 ); 81 84 } // if 82 85 if ( statements ) { 83 os << string( indent +2, ' ' ) << "with body " << endl;84 statements->print( os, indent +4 );86 os << string( indent + 2, ' ' ) << "with body " << endl; 87 statements->print( os, indent + 4 ); 85 88 } // if 86 89 } … … 95 98 if ( isInline ) { 96 99 os << "inline "; 100 } // if 101 if ( isNoreturn ) { 102 os << "_Noreturn "; 97 103 } // if 98 104 if ( get_storageClass() != DeclarationNode::NoStorageClass ) { -
src/SynTree/Statement.cc
ra1d5d2a rde62360d 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 5 07:51:04201513 // Update Count : 1512 // Last Modified On : Tue Jun 23 11:42:09 2015 13 // Update Count : 21 14 14 // 15 15 … … 30 30 Statement::Statement( std::list<Label> _labels ) : labels(_labels ) {} 31 31 32 void Statement::print( std::ostream &, int indent ) {}32 void Statement::print( std::ostream &, int indent ) const {} 33 33 34 34 Statement::~Statement() {} … … 38 38 ExprStmt::~ExprStmt() {} 39 39 40 void ExprStmt::print( std::ostream &os, int indent ) {40 void ExprStmt::print( std::ostream &os, int indent ) const { 41 41 os << string( indent, ' ' ) << "Expression Statement:" << endl; 42 42 expr->print( os, indent + 2 ); … … 58 58 } 59 59 60 void BranchStmt::print( std::ostream &os, int indent ) {60 void BranchStmt::print( std::ostream &os, int indent ) const { 61 61 os << string( indent, ' ' ) << "Branch (" << brType[type] << ")" << endl ; 62 62 } … … 68 68 } 69 69 70 void ReturnStmt::print( std::ostream &os, int indent ) {70 void ReturnStmt::print( std::ostream &os, int indent ) const { 71 71 os << std::string( indent, ' ' ) << string ( isThrow? "Throw":"Return" ) << " Statement, returning: "; 72 72 if ( expr != 0 ) expr->print( os ); … … 79 79 IfStmt::~IfStmt() {} 80 80 81 void IfStmt::print( std::ostream &os, int indent ) {81 void IfStmt::print( std::ostream &os, int indent ) const { 82 82 os << string( indent, ' ' ) << "If on condition: " << endl ; 83 83 condition->print( os, indent + 4 ); … … 103 103 void SwitchStmt::add_case( CaseStmt *c ) {} 104 104 105 void SwitchStmt::print( std::ostream &os, int indent ) {105 void SwitchStmt::print( std::ostream &os, int indent ) const { 106 106 os << string( indent, ' ' ) << "Switch on condition: "; 107 107 condition->print( os ); … … 109 109 110 110 // branches 111 std::list<Statement *>:: iterator i;111 std::list<Statement *>::const_iterator i; 112 112 for ( i = branches.begin(); i != branches.end(); i++) 113 (*i 113 (*i)->print( os, indent + 4 ); 114 114 115 115 //for_each( branches.begin(), branches.end(), mem_fun( bind1st(&Statement::print ), os )); … … 130 130 } 131 131 132 void CaseStmt::print( std::ostream &os, int indent ) {132 void CaseStmt::print( std::ostream &os, int indent ) const { 133 133 os << string( indent, ' ' ); 134 134 135 if ( isDefault() )135 if ( isDefault() ) 136 136 os << "Default "; 137 137 else { … … 142 142 os << endl; 143 143 144 std::list<Statement *>:: iterator i;144 std::list<Statement *>::const_iterator i; 145 145 for ( i = stmts.begin(); i != stmts.end(); i++) 146 146 (*i )->print( os, indent + 4 ); … … 158 158 void ChooseStmt::add_case( CaseStmt *c ) {} 159 159 160 void ChooseStmt::print( std::ostream &os, int indent ) {160 void ChooseStmt::print( std::ostream &os, int indent ) const { 161 161 os << string( indent, ' ' ) << "Choose on condition: "; 162 162 condition->print( os ); … … 164 164 165 165 // branches 166 std::list<Statement *>:: iterator i;166 std::list<Statement *>::const_iterator i; 167 167 for ( i = branches.begin(); i != branches.end(); i++) 168 168 (*i )->print( os, indent + 4 ); … … 171 171 } 172 172 173 void FallthruStmt::print( std::ostream &os, int indent ) {173 void FallthruStmt::print( std::ostream &os, int indent ) const { 174 174 os << string( indent, ' ' ) << "Fall-through statement" << endl; 175 175 } … … 183 183 } 184 184 185 void WhileStmt::print( std::ostream &os, int indent ) {185 void WhileStmt::print( std::ostream &os, int indent ) const { 186 186 os << string( indent, ' ' ) << "While on condition: " << endl ; 187 187 condition->print( os, indent + 4 ); … … 203 203 } 204 204 205 void ForStmt::print( std::ostream &os, int indent ) {205 void ForStmt::print( std::ostream &os, int indent ) const { 206 206 os << string( indent, ' ' ) << "Labels: {"; 207 for ( std::list<Label>::iterator it = get_labels().begin(); it != get_labels().end(); ++it) {207 for ( std::list<Label>::const_iterator it = get_labels().begin(); it != get_labels().end(); ++it) { 208 208 os << *it << ","; 209 209 } … … 245 245 } 246 246 247 void TryStmt::print( std::ostream &os, int indent ) {247 void TryStmt::print( std::ostream &os, int indent ) const { 248 248 os << string( indent, ' ' ) << "Try Statement" << endl; 249 249 os << string( indent + 2, ' ' ) << "with block: " << endl; … … 252 252 // handlers 253 253 os << string( indent + 2, ' ' ) << "and handlers: " << endl; 254 std::list<Statement *>::iterator i; 255 for ( i = handlers.begin(); i != handlers.end(); i++) 254 for ( std::list<Statement *>::const_iterator i = handlers.begin(); i != handlers.end(); i++) 256 255 (*i )->print( os, indent + 4 ); 257 256 … … 272 271 } 273 272 274 void CatchStmt::print( std::ostream &os, int indent ) {273 void CatchStmt::print( std::ostream &os, int indent ) const { 275 274 os << string( indent, ' ' ) << "Catch Statement" << endl; 276 275 … … 294 293 } 295 294 296 void FinallyStmt::print( std::ostream &os, int indent ) {295 void FinallyStmt::print( std::ostream &os, int indent ) const { 297 296 os << string( indent, ' ' ) << "Finally Statement" << endl; 298 297 os << string( indent + 2, ' ' ) << "with block: " << endl; … … 304 303 NullStmt::~NullStmt() {} 305 304 306 void NullStmt::print( std::ostream &os, int indent ) {305 void NullStmt::print( std::ostream &os, int indent ) const { 307 306 os << string( indent, ' ' ) << "Null Statement" << endl ; 308 307 } -
src/SynTree/Statement.h
ra1d5d2a rde62360d 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 Jun 4 14:03:31201513 // Update Count : 1412 // Last Modified On : Tue Jun 23 11:44:27 2015 13 // Update Count : 20 14 14 // 15 15 … … 28 28 29 29 std::list<Label> & get_labels() { return labels; } 30 const std::list<Label> & get_labels() const { return labels; } 30 31 31 32 virtual Statement *clone() const = 0; 32 33 virtual void accept( Visitor &v ) = 0; 33 34 virtual Statement *acceptMutator( Mutator &m ) = 0; 34 virtual void print( std::ostream &os, int indent = 0 ) ;35 virtual void print( std::ostream &os, int indent = 0 ) const; 35 36 protected: 36 37 std::list<Label> labels; … … 48 49 virtual void accept( Visitor &v ) { v.visit( this ); } 49 50 virtual CompoundStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); } 50 virtual void print( std::ostream &os, int indent = 0 ) ;51 virtual void print( std::ostream &os, int indent = 0 ) const; 51 52 private: 52 53 std::list<Statement*> kids; … … 64 65 virtual void accept( Visitor &v ) { v.visit( this ); } 65 66 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 66 virtual void print( std::ostream &os, int indent = 0 ) ;67 virtual void print( std::ostream &os, int indent = 0 ) const; 67 68 private: 68 69 Expression *expr; … … 84 85 virtual void accept( Visitor &v ) { v.visit( this ); } 85 86 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 86 virtual void print( std::ostream &os, int indent = 0 ) ;87 virtual void print( std::ostream &os, int indent = 0 ) const; 87 88 private: 88 89 Expression *condition; … … 106 107 107 108 virtual SwitchStmt *clone() const { return new SwitchStmt( *this ); } 108 virtual void print( std::ostream &os, int indent = 0 ) ;109 virtual void print( std::ostream &os, int indent = 0 ) const; 109 110 private: 110 111 Expression * condition; … … 127 128 128 129 virtual ChooseStmt *clone() const { return new ChooseStmt( *this ); } 129 virtual void print( std::ostream &os, int indent = 0 ) ;130 virtual void print( std::ostream &os, int indent = 0 ) const; 130 131 private: 131 132 Expression *condition; … … 141 142 142 143 virtual FallthruStmt *clone() const { return new FallthruStmt( *this ); } 143 virtual void print( std::ostream &os, int indent = 0 ) ;144 virtual void print( std::ostream &os, int indent = 0 ) const; 144 145 }; 145 146 … … 153 154 std::list<Statement *> stmts = std::list<Statement *>() ); 154 155 155 bool isDefault() { return _isDefault; }156 bool isDefault() const { return _isDefault; } 156 157 void set_default(bool b) { _isDefault = b; } 157 158 … … 166 167 167 168 virtual CaseStmt *clone() const { return new CaseStmt( *this ); } 168 virtual void print( std::ostream &os, int indent = 0 ) ;169 virtual void print( std::ostream &os, int indent = 0 ) const; 169 170 private: 170 171 Expression * condition; … … 189 190 virtual void accept( Visitor &v ) { v.visit( this ); } 190 191 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 191 virtual void print( std::ostream &os, int indent = 0 ) ;192 virtual void print( std::ostream &os, int indent = 0 ) const; 192 193 private: 193 194 Expression *condition; … … 214 215 virtual void accept( Visitor &v ) { v.visit( this ); } 215 216 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 216 virtual void print( std::ostream &os, int indent = 0 ) ;217 virtual void print( std::ostream &os, int indent = 0 ) const; 217 218 private: 218 219 Statement *initialization; … … 224 225 class BranchStmt : public Statement { 225 226 public: 226 enum Type { Goto = 0 227 enum Type { Goto = 0, Break, Continue }; 227 228 228 229 BranchStmt( std::list<Label> labels, Label target, Type ) throw (SemanticError); … … 243 244 virtual void accept( Visitor &v ) { v.visit( this ); } 244 245 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 245 virtual void print( std::ostream &os, int indent = 0 ) ;246 virtual void print( std::ostream &os, int indent = 0 ) const; 246 247 private: 247 248 static const char *brType[]; … … 263 264 virtual void accept( Visitor &v ) { v.visit( this ); } 264 265 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 265 virtual void print( std::ostream &os, int indent = 0 ) ;266 virtual void print( std::ostream &os, int indent = 0 ) const; 266 267 private: 267 268 Expression *expr; … … 279 280 virtual void accept( Visitor &v ) { v.visit( this ); } 280 281 virtual NullStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); } 281 virtual void print( std::ostream &os, int indent = 0 ) ;282 virtual void print( std::ostream &os, int indent = 0 ) const; 282 283 283 284 private: … … 300 301 virtual void accept( Visitor &v ) { v.visit( this ); } 301 302 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 302 virtual void print( std::ostream &os, int indent = 0 ) ;303 virtual void print( std::ostream &os, int indent = 0 ) const; 303 304 304 305 private: … … 322 323 virtual void accept( Visitor &v ) { v.visit( this ); } 323 324 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 324 virtual void print( std::ostream &os, int indent = 0 ) ;325 virtual void print( std::ostream &os, int indent = 0 ) const; 325 326 326 327 private: … … 341 342 virtual void accept( Visitor &v ) { v.visit( this ); } 342 343 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 343 virtual void print( std::ostream &os, int indent = 0 ) ;344 virtual void print( std::ostream &os, int indent = 0 ) const; 344 345 private: 345 346 CompoundStmt *block; … … 360 361 virtual void accept( Visitor &v ) { v.visit( this ); } 361 362 virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); } 362 virtual void print( std::ostream &os, int indent = 0 ) ;363 virtual void print( std::ostream &os, int indent = 0 ) const; 363 364 private: 364 365 Declaration *decl; -
src/driver/cfa.cc
ra1d5d2a rde62360d 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat May 30 10:15:00201513 // Update Count : 11 612 // Last Modified On : Tue Jun 23 17:47:03 2015 13 // Update Count : 119 14 14 // 15 15 … … 85 85 bool CFA_flag = false; // -CFA flag 86 86 bool cpp_flag = false; // -E or -M flag, preprocessor only 87 bool std_flag = false; // -std= flag 87 88 bool debugging = false; // -g flag 88 89 … … 152 153 } // if 153 154 154 // C ++specific arguments155 // C specific arguments 155 156 156 157 } else if ( arg == "-v" ) { … … 160 161 } else if ( arg == "-g" ) { 161 162 debugging = true; // symbolic debugging required 163 args[nargs] = argv[i]; // pass the argument along 164 nargs += 1; 165 } else if ( prefix( arg, "-std=" ) ) { 166 std_flag = true; // std=XX provided 162 167 args[nargs] = argv[i]; // pass the argument along 163 168 nargs += 1; … … 296 301 args[nargs] = "-Wno-deprecated"; 297 302 nargs += 1; 298 args[nargs] = "-std=c99"; 299 nargs += 1; 303 if ( ! std_flag ) { // default c99, if none specified 304 args[nargs] = "-std=c99"; 305 nargs += 1; 306 } // if 300 307 args[nargs] = ( *new string( string("-B") + Bprefix + "/" ) ).c_str(); 301 308 nargs += 1; -
src/main.cc
ra1d5d2a rde62360d 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jun 12 06:56:40201513 // Update Count : 7 012 // Last Modified On : Mon Jun 22 17:02:11 2015 13 // Update Count : 73 14 14 // 15 15 … … 58 58 bool 59 59 astp = false, 60 bresolvep = false, 60 61 exprp = false, 61 62 expraltp = false, 62 63 grammarp = false, 63 64 libcfap = false, 65 nopreludep = false, 66 protop = false, 67 parsep = false, 64 68 resolvep = false, // used in AlternativeFinder 65 69 symtabp = false, 66 parsep = false,67 70 validp = false, 68 preludep = true, 69 protop = false, 70 codegenp = false, 71 errorp = false; 72 73 enum { Ast, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Validate, }; 71 errorp = false, 72 codegenp = false; 73 74 enum { Ast, Bresolver, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Validate, }; 74 75 75 76 static struct option long_opts[] = { 76 77 { "ast", no_argument, 0, Ast }, 78 { "before-resolver", no_argument, 0, Bresolver }, 77 79 { "expr", no_argument, 0, Expr }, 78 80 { "expralt", no_argument, 0, ExprAlt }, … … 97 99 98 100 int c; 99 while ( (c = getopt_long( argc, argv, "a efglnpqrsvyzD:", long_opts, &long_index )) != -1 ) {101 while ( (c = getopt_long( argc, argv, "abefglnpqrsvyzD:", long_opts, &long_index )) != -1 ) { 100 102 switch ( c ) { 101 103 case Ast: … … 103 105 astp = true; 104 106 break; 107 case Bresolver: 108 case 'b': // print before resolver steps 109 bresolvep = true; 110 break; 105 111 case Expr: 106 112 case 'e': // dump AST after expression analysis … … 121 127 case Nopreamble: 122 128 case 'n': // do not read preamble 123 preludep = false;129 nopreludep = true; 124 130 break; 125 131 case Prototypes: … … 178 184 179 185 // read in the builtins and the prelude 180 if ( preludep ) {// include gcc builtins186 if ( ! nopreludep ) { // include gcc builtins 181 187 FILE * builtins = fopen( CFA_LIBDIR "/builtins.cf", "r" ); 182 188 if ( builtins == NULL ) { … … 251 257 } // if 252 258 259 if ( bresolvep ) { 260 printAll( translationUnit, std::cout ); 261 return 0; 262 } // if 263 253 264 OPTPRINT( "resolve" ) 254 265 ResolvExpr::resolve( translationUnit );
Note:
See TracChangeset
for help on using the changeset viewer.