Changeset 4a7d895 for src/Parser
- Timestamp:
- Aug 20, 2016, 5:33:07 AM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 80722d0
- Parents:
- 7b1bfc5 (diff), 2037f82 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src/Parser
- Files:
-
- 2 deleted
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 14:30:25201613 // Update Count : 1 7212 // Last Modified On : Thu Aug 18 23:48:23 2016 13 // Update Count : 182 14 14 // 15 15 … … 25 25 #include "SynTree/Expression.h" 26 26 27 #include "Parser.h"28 27 #include "TypedefTable.h" 29 28 extern TypedefTable typedefTable; … … 42 41 UniqueName DeclarationNode::anonymous( "__anonymous" ); 43 42 44 extern LinkageSpec:: Typelinkage; // defined in parser.yy43 extern LinkageSpec::Spec linkage; // defined in parser.yy 45 44 46 45 DeclarationNode *DeclarationNode::clone() const { … … 48 47 newnode->type = maybeClone( type ); 49 48 newnode->name = name; 50 newnode->storageClasses = storageClasses; 51 //PAB newnode->bitfieldWidth = maybeClone( bitfieldWidth ); 49 newnode->storageClass = storageClass; 50 newnode->isInline = isInline; 51 newnode->isNoreturn = isNoreturn; 52 52 newnode->bitfieldWidth = bitfieldWidth; 53 53 newnode->hasEllipsis = hasEllipsis; 54 54 newnode->initializer = initializer; 55 newnode-> next = maybeClone( next);55 newnode->set_next( maybeClone( get_next() ) ); 56 56 newnode->linkage = linkage; 57 57 return newnode; 58 58 } // DeclarationNode::clone 59 59 60 DeclarationNode::DeclarationNode() : type( 0 ), bitfieldWidth( 0 ), initializer( 0 ), hasEllipsis( false ), linkage( ::linkage ) { 60 DeclarationNode::DeclarationNode() 61 : type( 0 ) 62 , storageClass( NoStorageClass ) 63 , isInline( false ) 64 , isNoreturn( false ) 65 , bitfieldWidth( 0 ) 66 , initializer( 0 ) 67 , hasEllipsis( false ) 68 , linkage( ::linkage ) 69 , extension( false ) 70 , error() { 61 71 } 62 72 … … 83 93 } // if 84 94 85 printEnums( storageClasses.begin(), storageClasses.end(), DeclarationNode::storageName, os ); 95 if(storageClass != NoStorageClass) os << DeclarationNode::storageName[storageClass] << ' '; 96 if(isInline) os << DeclarationNode::storageName[Inline] << ' '; 97 if(isNoreturn) os << DeclarationNode::storageName[Noreturn] << ' '; 86 98 if ( type ) { 87 99 type->print( os, indent ); … … 144 156 DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) { 145 157 DeclarationNode *newnode = new DeclarationNode; 146 newnode->storageClasses.push_back( sc ); 158 switch (sc) { 159 case Inline: newnode->isInline = true; break; 160 case Noreturn: newnode->isNoreturn = true; break; 161 default: newnode->storageClass = sc; break; 162 } 147 163 return newnode; 148 164 } // DeclarationNode::newStorageClass … … 284 300 newnode->type->array->dimension = size; 285 301 newnode->type->array->isStatic = isStatic; 286 if ( newnode->type->array->dimension == 0 || dynamic_cast<ConstantExpr *>( newnode->type->array->dimension->build()) ) {302 if ( newnode->type->array->dimension == 0 || newnode->type->array->dimension->isExpressionType<ConstantExpr *>() ) { 287 303 newnode->type->array->isVarLen = false; 288 304 } else { … … 360 376 DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) { 361 377 if ( q ) { 362 storageClasses.splice( storageClasses.end(), q->storageClasses);378 copyStorageClasses(q); 363 379 if ( q->type ) { 364 380 if ( ! type ) { … … 387 403 388 404 DeclarationNode *DeclarationNode::copyStorageClasses( DeclarationNode *q ) { 389 storageClasses = q->storageClasses; 405 isInline = isInline || q->isInline; 406 isNoreturn = isNoreturn || q->isNoreturn; 407 if(storageClass == NoStorageClass) { 408 storageClass = q->storageClass; 409 } 410 else if (q->storageClass != NoStorageClass) { 411 q->error = "invalid combination of storage classes in declaration of "; 412 } 413 if(error.empty()) error = q->error; 390 414 return this; 391 415 } … … 447 471 DeclarationNode *DeclarationNode::addType( DeclarationNode *o ) { 448 472 if ( o ) { 449 storageClasses.splice( storageClasses.end(), o->storageClasses);473 copyStorageClasses( o ); 450 474 if ( o->type ) { 451 475 if ( ! type ) { … … 694 718 } // if 695 719 newnode->type->forall = maybeClone( type->forall ); 696 newnode-> storageClasses = storageClasses;720 newnode->copyStorageClasses( this ); 697 721 newnode->name = assign_strptr( newName ); 698 722 return newnode; … … 701 725 DeclarationNode *DeclarationNode::cloneBaseType( DeclarationNode *o ) { 702 726 if ( o ) { 703 o-> storageClasses.insert( o->storageClasses.end(), storageClasses.begin(), storageClasses.end());727 o->copyStorageClasses( this ); 704 728 if ( type ) { 705 729 TypeData *srcType = type; … … 734 758 DeclarationNode *newnode = new DeclarationNode; 735 759 newnode->type = maybeClone( type ); 736 newnode-> storageClasses = storageClasses;760 newnode->copyStorageClasses( this ); 737 761 newnode->name = assign_strptr( newName ); 738 762 return newnode; … … 741 765 DeclarationNode *DeclarationNode::cloneType( DeclarationNode *o ) { 742 766 if ( o ) { 743 o-> storageClasses.insert( o->storageClasses.end(), storageClasses.begin(), storageClasses.end());767 o->copyStorageClasses( this ); 744 768 if ( type ) { 745 769 TypeData *newType = type->clone(); … … 752 776 } // if 753 777 } // if 778 delete o; 754 779 return o; 755 }756 757 DeclarationNode *DeclarationNode::appendList( DeclarationNode *node ) {758 if ( node != 0 ) {759 set_last( node );760 } // if761 return this;762 780 } 763 781 … … 776 794 void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ) { 777 795 SemanticError errors; 778 std::back_insert_iterator< std::list< Declaration * > > out( outputList );796 std::back_insert_iterator< std::list< Declaration * > > out( outputList ); 779 797 const DeclarationNode *cur = firstNode; 780 798 while ( cur ) { … … 794 812 errors.append( e ); 795 813 } // try 796 cur = dynamic_cast< DeclarationNode *>( cur->get_next() );814 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 797 815 } // while 798 816 if ( ! errors.isEmpty() ) { … … 801 819 } 802 820 803 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType * > &outputList ) {821 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType * > &outputList ) { 804 822 SemanticError errors; 805 std::back_insert_iterator< std::list< DeclarationWithType * > > out( outputList );823 std::back_insert_iterator< std::list< DeclarationWithType * > > out( outputList ); 806 824 const DeclarationNode *cur = firstNode; 807 825 while ( cur ) { … … 817 835 Declaration *decl = cur->build(); 818 836 if ( decl ) { 819 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( decl ) ) {837 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( decl ) ) { 820 838 *out++ = dwt; 821 } else if ( StructDecl *agg = dynamic_cast< StructDecl * >( decl ) ) {839 } else if ( StructDecl *agg = dynamic_cast< StructDecl * >( decl ) ) { 822 840 StructInstType *inst = new StructInstType( Type::Qualifiers(), agg->get_name() ); 823 841 *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 ); 824 842 delete agg; 825 } else if ( UnionDecl *agg = dynamic_cast< UnionDecl * >( decl ) ) {843 } else if ( UnionDecl *agg = dynamic_cast< UnionDecl * >( decl ) ) { 826 844 UnionInstType *inst = new UnionInstType( Type::Qualifiers(), agg->get_name() ); 827 845 *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 ); … … 831 849 errors.append( e ); 832 850 } // try 833 cur = dynamic_cast< DeclarationNode * >( cur->get_next() );851 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 834 852 } // while 835 853 if ( ! errors.isEmpty() ) { … … 838 856 } 839 857 840 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList ) {858 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList ) { 841 859 SemanticError errors; 842 std::back_insert_iterator< std::list< Type * > > out( outputList );860 std::back_insert_iterator< std::list< Type * > > out( outputList ); 843 861 const DeclarationNode *cur = firstNode; 844 862 while ( cur ) { … … 848 866 errors.append( e ); 849 867 } // try 850 cur = dynamic_cast< DeclarationNode * >( cur->get_next() );868 cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); 851 869 } // while 852 870 if ( ! errors.isEmpty() ) { … … 856 874 857 875 Declaration *DeclarationNode::build() const { 876 if( !error.empty() ) throw SemanticError( error, this ); 858 877 if ( type ) { 859 return type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), buildFuncSpecifier( Inline ), buildFuncSpecifier( Noreturn ), linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );860 } // if 861 if ( ! buildFuncSpecifier( Inline ) && ! buildFuncSpecifier( Noreturn )) {862 return (new ObjectDecl( name, buildStorageClass(), linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ))->set_extension( extension );878 return type->buildDecl( name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 879 } // if 880 if ( ! isInline && ! isNoreturn ) { 881 return (new ObjectDecl( name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) ))->set_extension( extension ); 863 882 } // if 864 883 throw SemanticError( "invalid function specifier in declaration of ", this ); … … 899 918 } 900 919 901 DeclarationNode::StorageClass DeclarationNode::buildStorageClass() const {902 DeclarationNode::StorageClass ret = DeclarationNode::NoStorageClass;903 for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {904 if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers905 if ( ret != DeclarationNode::NoStorageClass ) { // already have a valid storage class ?906 throw SemanticError( "invalid combination of storage classes in declaration of ", this );907 } // if908 ret = *i;909 } // for910 return ret;911 }912 913 bool DeclarationNode::buildFuncSpecifier( DeclarationNode::StorageClass key ) const {914 std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key );915 if ( first == storageClasses.end() ) return false; // not found916 first = std::find( ++first, storageClasses.end(), key ); // found917 if ( first == storageClasses.end() ) return true; // not found again918 throw SemanticError( "duplicate function specifier in declaration of ", this );919 }920 // DeclarationNode::StorageClass DeclarationNode::buildStorageClass() const { 921 // DeclarationNode::StorageClass ret = DeclarationNode::NoStorageClass; 922 // for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) { 923 // if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers 924 // if ( ret != DeclarationNode::NoStorageClass ) { // already have a valid storage class ? 925 // throw SemanticError( "invalid combination of storage classes in declaration of ", this ); 926 // } // if 927 // ret = *i; 928 // } // for 929 // return ret; 930 // } 931 932 // bool DeclarationNode::buildFuncSpecifier( DeclarationNode::StorageClass key ) const { 933 // std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key ); 934 // if ( first == storageClasses.end() ) return false; // not found 935 // first = std::find( ++first, storageClasses.end(), key ); // found 936 // if ( first == storageClasses.end() ) return true; // not found again 937 // throw SemanticError( "duplicate function specifier in declaration of ", this ); 938 // } 920 939 921 940 // Local Variables: // -
src/Parser/ExpressionNode.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 14:30:42201613 // Update Count : 49 012 // Last Modified On : Tue Aug 16 00:09:20 2016 13 // Update Count : 495 14 14 // 15 15 … … 32 32 using namespace std; 33 33 34 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other. name), extension( other.extension ) {}34 ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.get_name() ), extension( other.extension ) {} 35 35 36 36 //############################################################################## … … 57 57 static inline bool checkX( char c ) { return c == 'x' || c == 'X'; } 58 58 59 Expression *build_constantInteger( std::string & str ) {59 Expression *build_constantInteger( const std::string & str ) { 60 60 static const BasicType::Kind kind[2][3] = { 61 61 { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt }, … … 123 123 } // build_constantInteger 124 124 125 Expression *build_constantFloat( std::string & str ) {125 Expression *build_constantFloat( const std::string & str ) { 126 126 static const BasicType::Kind kind[2][3] = { 127 127 { BasicType::Float, BasicType::Double, BasicType::LongDouble }, … … 153 153 } // build_constantFloat 154 154 155 Expression *build_constantChar( std::string & str ) {155 Expression *build_constantChar( const std::string & str ) { 156 156 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) ); 157 157 } // build_constantChar 158 158 159 ConstantExpr *build_constantStr( std::string & str ) {159 ConstantExpr *build_constantStr( const std::string & str ) { 160 160 // string should probably be a primitive type 161 161 ArrayType *at = new ArrayType( emptyQualifiers, new BasicType( emptyQualifiers, BasicType::Char ), … … 166 166 } // build_constantStr 167 167 168 //##############################################################################169 170 168 NameExpr * build_varref( const string *name, bool labelp ) { 171 returnnew NameExpr( *name, nullptr );172 } 173 174 //############################################################################## 169 NameExpr *expr = new NameExpr( *name, nullptr ); 170 delete name; 171 return expr; 172 } 175 173 176 174 static const char *OperName[] = { … … 184 182 }; 185 183 186 //##############################################################################187 188 184 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) { 189 185 Type *targetType = decl_node->buildType(); 190 186 if ( dynamic_cast< VoidType * >( targetType ) ) { 191 187 delete targetType; 192 return new CastExpr( maybe Build<Expression>(expr_node) );188 return new CastExpr( maybeMoveBuild< Expression >(expr_node) ); 193 189 } else { 194 return new CastExpr( maybe Build<Expression>(expr_node), targetType );190 return new CastExpr( maybeMoveBuild< Expression >(expr_node), targetType ); 195 191 } // if 196 192 } 197 193 198 194 Expression *build_fieldSel( ExpressionNode *expr_node, NameExpr *member ) { 199 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), maybe Build<Expression>(expr_node) );195 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), maybeMoveBuild< Expression >(expr_node) ); 200 196 delete member; 201 197 return ret; … … 204 200 Expression *build_pfieldSel( ExpressionNode *expr_node, NameExpr *member ) { 205 201 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 206 deref->get_args().push_back( maybe Build<Expression>(expr_node) );202 deref->get_args().push_back( maybeMoveBuild< Expression >(expr_node) ); 207 203 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref ); 208 204 delete member; … … 211 207 212 208 Expression *build_addressOf( ExpressionNode *expr_node ) { 213 return new AddressExpr( maybe Build<Expression>(expr_node) );209 return new AddressExpr( maybeMoveBuild< Expression >(expr_node) ); 214 210 } 215 211 Expression *build_sizeOfexpr( ExpressionNode *expr_node ) { 216 return new SizeofExpr( maybe Build<Expression>(expr_node) );212 return new SizeofExpr( maybeMoveBuild< Expression >(expr_node) ); 217 213 } 218 214 Expression *build_sizeOftype( DeclarationNode *decl_node ) { 219 return new SizeofExpr( decl_node->buildType() ); 215 Expression* ret = new SizeofExpr( decl_node->buildType() ); 216 delete decl_node; 217 return ret; 220 218 } 221 219 Expression *build_alignOfexpr( ExpressionNode *expr_node ) { 222 return new AlignofExpr( maybe Build<Expression>(expr_node) );220 return new AlignofExpr( maybeMoveBuild< Expression >(expr_node) ); 223 221 } 224 222 Expression *build_alignOftype( DeclarationNode *decl_node ) { … … 226 224 } 227 225 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) { 228 return new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 226 Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 227 delete decl_node; 228 delete member; 229 return ret; 229 230 } 230 231 231 232 Expression *build_and_or( ExpressionNode *expr_node1, ExpressionNode *expr_node2, bool kind ) { 232 return new LogicalExpr( notZeroExpr( maybe Build<Expression>(expr_node1) ), notZeroExpr( maybeBuild<Expression>(expr_node2) ), kind );233 return new LogicalExpr( notZeroExpr( maybeMoveBuild< Expression >(expr_node1) ), notZeroExpr( maybeMoveBuild< Expression >(expr_node2) ), kind ); 233 234 } 234 235 235 236 Expression *build_unary_val( OperKinds op, ExpressionNode *expr_node ) { 236 std::list< Expression *> args;237 args.push_back( maybe Build<Expression>(expr_node) );237 std::list< Expression * > args; 238 args.push_back( maybeMoveBuild< Expression >(expr_node) ); 238 239 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 239 240 } 240 241 Expression *build_unary_ptr( OperKinds op, ExpressionNode *expr_node ) { 241 std::list< Expression *> args;242 args.push_back( new AddressExpr( maybe Build<Expression>(expr_node) ) );242 std::list< Expression * > args; 243 args.push_back( new AddressExpr( maybeMoveBuild< Expression >(expr_node) ) ); 243 244 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 244 245 } 245 246 Expression *build_binary_val( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 246 std::list< Expression *> args;247 args.push_back( maybe Build<Expression>(expr_node1) );248 args.push_back( maybe Build<Expression>(expr_node2) );247 std::list< Expression * > args; 248 args.push_back( maybeMoveBuild< Expression >(expr_node1) ); 249 args.push_back( maybeMoveBuild< Expression >(expr_node2) ); 249 250 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 250 251 } 251 252 Expression *build_binary_ptr( OperKinds op, ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 252 std::list< Expression *> args;253 args.push_back( new AddressExpr( maybe Build<Expression>(expr_node1) ) );254 args.push_back( maybe Build<Expression>(expr_node2) );253 std::list< Expression * > args; 254 args.push_back( new AddressExpr( maybeMoveBuild< Expression >(expr_node1) ) ); 255 args.push_back( maybeMoveBuild< Expression >(expr_node2) ); 255 256 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 256 257 } 257 258 258 259 Expression *build_cond( ExpressionNode *expr_node1, ExpressionNode *expr_node2, ExpressionNode *expr_node3 ) { 259 return new ConditionalExpr( notZeroExpr( maybe Build<Expression>(expr_node1) ), maybeBuild<Expression>(expr_node2), maybeBuild<Expression>(expr_node3) );260 return new ConditionalExpr( notZeroExpr( maybeMoveBuild< Expression >(expr_node1) ), maybeMoveBuild< Expression >(expr_node2), maybeMoveBuild< Expression >(expr_node3) ); 260 261 } 261 262 262 263 Expression *build_comma( ExpressionNode *expr_node1, ExpressionNode *expr_node2 ) { 263 return new CommaExpr( maybe Build<Expression>(expr_node1), maybeBuild<Expression>(expr_node2) );264 return new CommaExpr( maybeMoveBuild< Expression >(expr_node1), maybeMoveBuild< Expression >(expr_node2) ); 264 265 } 265 266 266 267 Expression *build_attrexpr( NameExpr *var, ExpressionNode * expr_node ) { 267 return new AttrExpr( var, maybe Build<Expression>(expr_node) );268 return new AttrExpr( var, maybeMoveBuild< Expression >(expr_node) ); 268 269 } 269 270 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) { … … 273 274 Expression *build_tuple( ExpressionNode * expr_node ) { 274 275 TupleExpr *ret = new TupleExpr(); 275 build List( expr_node, ret->get_exprs() );276 buildMoveList( expr_node, ret->get_exprs() ); 276 277 return ret; 277 278 } 278 279 279 280 Expression *build_func( ExpressionNode * function, ExpressionNode * expr_node ) { 280 std::list<Expression *> args; 281 282 buildList( expr_node, args ); 283 return new UntypedExpr( maybeBuild<Expression>(function), args, nullptr ); 281 std::list< Expression * > args; 282 buildMoveList( expr_node, args ); 283 return new UntypedExpr( maybeMoveBuild< Expression >(function), args, nullptr ); 284 284 } 285 285 286 286 Expression *build_range( ExpressionNode * low, ExpressionNode *high ) { 287 Expression *low_cexpr = maybeBuild<Expression>( low ); 288 Expression *high_cexpr = maybeBuild<Expression>( high ); 289 return new RangeExpr( low_cexpr, high_cexpr ); 290 } 291 292 //############################################################################## 287 return new RangeExpr( maybeMoveBuild< Expression >( low ), maybeMoveBuild< Expression >( high ) ); 288 } 293 289 294 290 Expression *build_asmexpr( ExpressionNode *inout, ConstantExpr *constraint, ExpressionNode *operand ) { 295 return new AsmExpr( maybeBuild< Expression >( inout ), constraint, maybeBuild<Expression>(operand) ); 296 } 297 298 //############################################################################## 299 300 //void LabelNode::print( std::ostream &os, int indent ) const {} 301 302 //void LabelNode::printOneLine( std::ostream &os, int indent ) const {} 303 304 //############################################################################## 291 return new AsmExpr( maybeMoveBuild< Expression >( inout ), constraint, maybeMoveBuild< Expression >(operand) ); 292 } 305 293 306 294 Expression *build_valexpr( StatementNode *s ) { 307 return new UntypedValofExpr( maybeBuild<Statement>(s), nullptr ); 308 } 309 310 //############################################################################## 311 295 return new UntypedValofExpr( maybeMoveBuild< Statement >(s), nullptr ); 296 } 312 297 Expression *build_typevalue( DeclarationNode *decl ) { 313 298 return new TypeExpr( decl->buildType() ); 314 299 } 315 300 316 //##############################################################################317 318 301 Expression *build_compoundLiteral( DeclarationNode *decl_node, InitializerNode *kids ) { 319 Declaration * newDecl = maybeBuild< Declaration>(decl_node); // compound literal type302 Declaration * newDecl = maybeBuild< Declaration >(decl_node); // compound literal type 320 303 if ( DeclarationWithType * newDeclWithType = dynamic_cast< DeclarationWithType * >( newDecl ) ) { // non-sue compound-literal type 321 return new CompoundLiteralExpr( newDeclWithType->get_type(), maybe Build<Initializer>(kids) );304 return new CompoundLiteralExpr( newDeclWithType->get_type(), maybeMoveBuild< Initializer >(kids) ); 322 305 // these types do not have associated type information 323 306 } else if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( newDecl ) ) { 324 return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybe Build<Initializer>(kids) );307 return new CompoundLiteralExpr( new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ), maybeMoveBuild< Initializer >(kids) ); 325 308 } else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( newDecl ) ) { 326 return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybe Build<Initializer>(kids) );309 return new CompoundLiteralExpr( new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ), maybeMoveBuild< Initializer >(kids) ); 327 310 } else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( newDecl ) ) { 328 return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybe Build<Initializer>(kids) );311 return new CompoundLiteralExpr( new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ), maybeMoveBuild< Initializer >(kids) ); 329 312 } else { 330 313 assert( false ); -
src/Parser/InitializerNode.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 13:20:24 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 13 18:55:11201613 // Update Count : 1812 // Last Modified On : Mon Aug 15 18:27:02 2016 13 // Update Count : 20 14 14 // 15 15 … … 25 25 : expr( _expr ), aggregate( aggrp ), designator( des ), kids( 0 ), maybeConstructed( true ) { 26 26 if ( aggrp ) 27 kids = dynamic_cast< InitializerNode * >( get_next() );27 kids = dynamic_cast< InitializerNode * >( get_next() ); 28 28 29 29 if ( kids != 0 ) … … 37 37 38 38 if ( aggrp ) 39 kids = dynamic_cast< InitializerNode * >( get_next() );39 kids = dynamic_cast< InitializerNode * >( get_next() ); 40 40 41 41 if ( kids != 0 ) … … 82 82 //assert( next_init() != 0 ); 83 83 84 std::list< Initializer * > initlist;85 buildList< Initializer, InitializerNode>( next_init(), initlist );84 std::list< Initializer * > initlist; 85 buildList< Initializer, InitializerNode >( next_init(), initlist ); 86 86 87 std::list< Expression * > designlist;87 std::list< Expression * > designlist; 88 88 89 89 if ( designator != 0 ) { 90 buildList< Expression, ExpressionNode>( designator, designlist );90 buildList< Expression, ExpressionNode >( designator, designlist ); 91 91 } // if 92 92 93 93 return new ListInit( initlist, designlist, maybeConstructed ); 94 94 } else { 95 std::list< Expression * > designators;95 std::list< Expression * > designators; 96 96 97 97 if ( designator != 0 ) 98 buildList< Expression, ExpressionNode>( designator, designators );98 buildList< Expression, ExpressionNode >( designator, designators ); 99 99 100 100 if ( get_expression() != 0) 101 return new SingleInit( maybeBuild< Expression>( get_expression() ), designators, maybeConstructed );101 return new SingleInit( maybeBuild< Expression >( get_expression() ), designators, maybeConstructed ); 102 102 } // if 103 103 -
src/Parser/LinkageSpec.cc
r7b1bfc5 r4a7d895 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:22:09 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Aug 19 15:53:05 201513 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:47:14 2016 13 // Update Count : 12 14 14 // 15 15 … … 20 20 #include "Common/SemanticError.h" 21 21 22 LinkageSpec:: TypeLinkageSpec::fromString( const std::string &stringSpec ) {22 LinkageSpec::Spec LinkageSpec::fromString( const std::string &stringSpec ) { 23 23 if ( stringSpec == "\"Cforall\"" ) { 24 24 return Cforall; … … 30 30 } 31 31 32 std::string LinkageSpec::toString( LinkageSpec::Type linkage ) { 33 switch ( linkage ) { 34 case Intrinsic: 35 return "intrinsic"; 36 case Cforall: 37 return "Cforall"; 38 case C: 39 return "C"; 40 case AutoGen: 41 return "automatically generated"; 42 case Compiler: 43 return "compiler built-in"; 44 } 45 assert( false ); 46 return ""; 32 std::string LinkageSpec::toString( LinkageSpec::Spec linkage ) { 33 static const char *linkageKinds[LinkageSpec::NoOfSpecs] = { 34 "intrinsic", "Cforall", "C", "automatically generated", "compiler built-in", 35 }; 36 return linkageKinds[linkage]; 47 37 } 48 38 49 bool LinkageSpec::isDecoratable( Type t ) { 50 switch ( t ) { 51 case Intrinsic: 52 case Cforall: 53 case AutoGen: 54 return true; 55 case C: 56 case Compiler: 57 return false; 58 } 59 assert( false ); 60 return false; 39 bool LinkageSpec::isDecoratable( Spec t ) { 40 static bool decoratable[LinkageSpec::NoOfSpecs] = { 41 // Intrinsic, Cforall, C, AutoGen, Compiler 42 true, true, false, true, false, 43 }; 44 return decoratable[t]; 61 45 } 62 46 63 bool LinkageSpec::isGeneratable( Type t ) { 64 switch ( t ) { 65 case Intrinsic: 66 case Cforall: 67 case AutoGen: 68 case C: 69 return true; 70 case Compiler: 71 return false; 72 } 73 assert( false ); 74 return false; 47 bool LinkageSpec::isGeneratable( Spec t ) { 48 static bool generatable[LinkageSpec::NoOfSpecs] = { 49 // Intrinsic, Cforall, C, AutoGen, Compiler 50 true, true, true, true, false, 51 }; 52 return generatable[t]; 75 53 } 76 54 77 bool LinkageSpec::isOverloadable( Typet ) {55 bool LinkageSpec::isOverloadable( Spec t ) { 78 56 return isDecoratable( t ); 79 57 } 80 58 81 59 82 bool LinkageSpec::isOverridable( Type t ) { 83 switch ( t ) { 84 case Intrinsic: 85 case AutoGen: 86 return true; 87 case Cforall: 88 case C: 89 case Compiler: 90 return false; 91 } 92 assert( false ); 93 return false; 60 bool LinkageSpec::isOverridable( Spec t ) { 61 static bool overridable[LinkageSpec::NoOfSpecs] = { 62 // Intrinsic, Cforall, C, AutoGen, Compiler 63 true, false, false, true, false, 64 }; 65 return overridable[t]; 94 66 } 95 67 96 bool LinkageSpec::isBuiltin( Type t ) { 97 switch ( t ) { 98 case Cforall: 99 case AutoGen: 100 case C: 101 return false; 102 case Intrinsic: 103 case Compiler: 104 return true; 105 } 106 assert( false ); 107 return false; 68 bool LinkageSpec::isBuiltin( Spec t ) { 69 static bool builtin[LinkageSpec::NoOfSpecs] = { 70 // Intrinsic, Cforall, C, AutoGen, Compiler 71 true, false, false, false, true, 72 }; 73 return builtin[t]; 108 74 } 109 75 -
src/Parser/LinkageSpec.h
r7b1bfc5 r4a7d895 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 13:24:28 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : T ue Aug 18 14:11:55 201513 // Update Count : 511 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:47:16 2016 13 // Update Count : 7 14 14 // 15 15 … … 20 20 21 21 struct LinkageSpec { 22 enum Type{22 enum Spec { 23 23 Intrinsic, // C built-in defined in prelude 24 24 Cforall, // ordinary 25 25 C, // not overloadable, not mangled 26 26 AutoGen, // built by translator (struct assignment) 27 Compiler // gcc internal 27 Compiler, // gcc internal 28 NoOfSpecs 28 29 }; 29 30 30 static TypefromString( const std::string & );31 static std::string toString( Type);31 static Spec fromString( const std::string & ); 32 static std::string toString( Spec ); 32 33 33 static bool isDecoratable( Type);34 static bool isGeneratable( Type);35 static bool isOverloadable( Type);36 static bool isOverridable( Type);37 static bool isBuiltin( Type);34 static bool isDecoratable( Spec ); 35 static bool isGeneratable( Spec ); 36 static bool isOverloadable( Spec ); 37 static bool isOverridable( Spec ); 38 static bool isBuiltin( Spec ); 38 39 }; 39 40 -
src/Parser/ParseNode.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 13:26:29 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 14:49:06 201613 // Update Count : 9912 // Last Modified On : Wed Aug 17 23:14:16 2016 13 // Update Count : 126 14 14 // 15 15 … … 17 17 using namespace std; 18 18 19 // Builder20 19 int ParseNode::indent_by = 4; 21 22 ParseNode::ParseNode() : next( 0 ) {};23 ParseNode::ParseNode( const string *name ) : name( *name ), next( 0 ) { delete name; }24 ParseNode::ParseNode( const string &name ) : name( name ), next( 0 ) { }25 26 ParseNode::~ParseNode() {27 delete next;28 };29 30 ParseNode *ParseNode::get_last() {31 ParseNode *current = this;32 33 while ( current->get_next() != 0 )34 current = current->get_next();35 return current;36 }37 38 ParseNode *ParseNode::set_last( ParseNode *next_ ) {39 if ( next_ != 0 ) get_last()->next = next_;40 return this;41 }42 43 void ParseNode::print( std::ostream &os, int indent ) const {}44 45 46 void ParseNode::printList( std::ostream &os, int indent ) const {47 print( os, indent );48 49 if ( next ) {50 next->printList( os, indent );51 } // if52 }53 20 54 21 // Local Variables: // -
src/Parser/ParseNode.h
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 14:52:12201613 // Update Count : 5 1212 // Last Modified On : Thu Aug 18 23:48:37 2016 13 // Update Count : 542 14 14 // 15 15 … … 22 22 #include <memory> 23 23 24 #include "Common/utility.h"25 24 #include "Parser/LinkageSpec.h" 26 25 #include "SynTree/Type.h" 27 26 #include "SynTree/Expression.h" 28 27 #include "SynTree/Statement.h" 29 //#include "SynTree/Declaration.h" 28 #include "SynTree/Label.h" 29 #include "Common/utility.h" 30 30 #include "Common/UniqueName.h" 31 #include "SynTree/Label.h"32 31 33 32 class StatementNode; … … 37 36 class InitializerNode; 38 37 39 // Builder 38 //############################################################################## 39 40 40 class ParseNode { 41 41 public: 42 ParseNode(); 43 ParseNode( const std::string * ); 44 ParseNode( const std::string & ); // for copy constructing subclasses 45 virtual ~ParseNode(); 42 ParseNode() {}; 43 ParseNode( const std::string *name ) : name( *name ) { assert( false ); delete name; } 44 ParseNode( const std::string &name ) : name( name ) { assert( false ); } 45 virtual ~ParseNode() { delete next; }; 46 virtual ParseNode *clone() const = 0; 46 47 47 48 ParseNode *get_next() const { return next; } 48 49 ParseNode *set_next( ParseNode *newlink ) { next = newlink; return this; } 49 ParseNode *get_last(); 50 ParseNode *set_last( ParseNode * ); 51 52 virtual ParseNode *clone() const { return 0; }; 50 ParseNode *get_last() { 51 ParseNode *current; 52 for ( current = this; current->get_next() != 0; current = current->get_next() ); 53 return current; 54 } 55 ParseNode *set_last( ParseNode *newlast ) { 56 if ( newlast != 0 ) get_last()->set_next( newlast ); 57 return this; 58 } 53 59 54 60 const std::string &get_name() const { return name; } 55 61 void set_name( const std::string &newValue ) { name = newValue; } 56 62 57 virtual void print( std::ostream &os, int indent = 0 ) const; 58 virtual void printList( std::ostream &os, int indent = 0 ) const; 59 60 ParseNode &operator,( ParseNode & ); 61 protected: 63 virtual void print( std::ostream &os, int indent = 0 ) const {} 64 virtual void printList( std::ostream &os, int indent = 0 ) const {} 65 private: 66 static int indent_by; 67 68 ParseNode *next = nullptr; 62 69 std::string name; 63 static int indent_by; 64 ParseNode *next; 65 }; 70 }; // ParseNode 66 71 67 72 //############################################################################## … … 72 77 InitializerNode( InitializerNode *, bool aggrp = false, ExpressionNode *des = 0 ); 73 78 ~InitializerNode(); 79 virtual InitializerNode *clone() const { assert( false ); return nullptr; } 74 80 75 81 ExpressionNode *get_expression() const { return expr; } … … 97 103 //############################################################################## 98 104 99 class ExpressionNode : public ParseNode {105 class ExpressionNode final : public ParseNode { 100 106 public: 101 107 ExpressionNode( Expression * expr = nullptr ) : expr( expr ) {} … … 103 109 ExpressionNode( const ExpressionNode &other ); 104 110 virtual ~ExpressionNode() {} 105 106 virtual ExpressionNode *clone() const { return 0; } 111 virtual ExpressionNode *clone() const { assert( false ); return nullptr; } 107 112 108 113 bool get_extension() const { return extension; } 109 114 ExpressionNode *set_extension( bool exten ) { extension = exten; return this; } 110 115 111 virtual void print( std::ostream &os, int indent = 0 ) const {} 112 virtual void printOneLine( std::ostream &os, int indent = 0 ) const {} 113 114 virtual Expression *build() const { return expr; } 116 void print( std::ostream &os, int indent = 0 ) const {} 117 void printOneLine( std::ostream &os, int indent = 0 ) const {} 118 119 template<typename T> 120 bool isExpressionType() const { 121 return nullptr != dynamic_cast<T>(expr.get()); 122 } 123 124 Expression *build() const { return const_cast<ExpressionNode*>(this)->expr.release(); } 115 125 private: 116 126 bool extension = false; 117 Expression *expr;127 std::unique_ptr<Expression> expr; 118 128 }; 119 129 120 130 template< typename T > 121 struct maybeBuild_t< Expression, T> {131 struct maybeBuild_t< Expression, T > { 122 132 static inline Expression * doit( const T *orig ) { 123 133 if ( orig ) { … … 126 136 return p; 127 137 } else { 128 return 0;138 return nullptr; 129 139 } // if 130 140 } … … 146 156 }; 147 157 148 Expression *build_constantInteger( std::string &str );149 Expression *build_constantFloat( std::string &str );150 Expression *build_constantChar( std::string &str );151 ConstantExpr *build_constantStr( std::string &str );158 Expression *build_constantInteger( const std::string &str ); 159 Expression *build_constantFloat( const std::string &str ); 160 Expression *build_constantChar( const std::string &str ); 161 ConstantExpr *build_constantStr( const std::string &str ); 152 162 153 163 NameExpr *build_varref( const std::string *name, bool labelp = false ); … … 228 238 static DeclarationNode *newBuiltinType( BuiltinType ); 229 239 240 DeclarationNode(); 241 ~DeclarationNode(); 242 DeclarationNode *clone() const; 243 230 244 DeclarationNode *addQualifiers( DeclarationNode *); 231 245 DeclarationNode *copyStorageClasses( DeclarationNode *); … … 252 266 DeclarationNode *cloneBaseType( DeclarationNode *newdecl ); 253 267 254 DeclarationNode *appendList( DeclarationNode * ); 255 256 DeclarationNode *clone() const; 268 DeclarationNode *appendList( DeclarationNode *node ) { 269 return (DeclarationNode *)set_last( node ); 270 } 271 257 272 void print( std::ostream &os, int indent = 0 ) const; 258 273 void printList( std::ostream &os, int indent = 0 ) const; … … 263 278 bool get_hasEllipsis() const; 264 279 const std::string &get_name() const { return name; } 265 LinkageSpec:: Typeget_linkage() const { return linkage; }280 LinkageSpec::Spec get_linkage() const { return linkage; } 266 281 DeclarationNode *extractAggregate() const; 267 282 ExpressionNode *get_enumeratorValue() const { return enumeratorValue; } … … 269 284 bool get_extension() const { return extension; } 270 285 DeclarationNode *set_extension( bool exten ) { extension = exten; return this; } 271 272 DeclarationNode();273 ~DeclarationNode();274 286 private: 275 StorageClass buildStorageClass() const;276 bool buildFuncSpecifier( StorageClass key ) const;287 // StorageClass buildStorageClass() const; 288 // bool buildFuncSpecifier( StorageClass key ) const; 277 289 278 290 TypeData *type; 279 291 std::string name; 280 std::list< StorageClass > storageClasses; 292 // std::list< StorageClass > storageClasses; 293 StorageClass storageClass; 294 bool isInline, isNoreturn; 281 295 std::list< std::string > attributes; 282 296 ExpressionNode *bitfieldWidth; … … 284 298 InitializerNode *initializer; 285 299 bool hasEllipsis; 286 LinkageSpec:: Typelinkage;300 LinkageSpec::Spec linkage; 287 301 bool extension = false; 302 std::string error; 288 303 289 304 static UniqueName anonymous; … … 294 309 //############################################################################## 295 310 296 class StatementNode : public ParseNode {311 class StatementNode final : public ParseNode { 297 312 public: 298 313 StatementNode() { stmt = nullptr; } … … 301 316 virtual ~StatementNode() {} 302 317 303 virtual StatementNode *clone() const { assert( false ); return nullptr; }304 virtual Statement *build() const { return stmt; }318 virtual StatementNode *clone() const final { assert( false ); return nullptr; } 319 Statement *build() const { return const_cast<StatementNode*>(this)->stmt.release(); } 305 320 306 321 virtual StatementNode *add_label( const std::string * name ) { 307 322 stmt->get_labels().emplace_back( *name ); 323 delete name; 308 324 return this; 309 325 } … … 314 330 virtual void printList( std::ostream &os, int indent = 0 ) {} 315 331 private: 316 Statement *stmt;332 std::unique_ptr<Statement> stmt; 317 333 }; // StatementNode 318 334 … … 351 367 void buildList( const NodeType *firstNode, std::list< SynTreeType * > &outputList ) { 352 368 SemanticError errors; 353 std::back_insert_iterator< std::list< SynTreeType * > > out( outputList );369 std::back_insert_iterator< std::list< SynTreeType * > > out( outputList ); 354 370 const NodeType *cur = firstNode; 355 371 356 372 while ( cur ) { 357 373 try { 358 // SynTreeType *result = dynamic_cast< SynTreeType * >( maybeBuild<typename std::result_of<decltype(&NodeType::build)(NodeType)>::type>( cur ) );359 SynTreeType *result = dynamic_cast< SynTreeType * >( maybeBuild<typename std::pointer_traits<decltype(cur->build())>::element_type>( cur ) );374 // SynTreeType *result = dynamic_cast< SynTreeType * >( maybeBuild< typename std::result_of< decltype(&NodeType::build)(NodeType)>::type >( cur ) ); 375 SynTreeType *result = dynamic_cast< SynTreeType * >( maybeBuild< typename std::pointer_traits< decltype(cur->build())>::element_type >( cur ) ); 360 376 if ( result ) { 361 377 *out++ = result; … … 365 381 errors.append( e ); 366 382 } // try 367 cur = dynamic_cast< NodeType * >( cur->get_next() );383 cur = dynamic_cast< NodeType * >( cur->get_next() ); 368 384 } // while 369 385 if ( ! errors.isEmpty() ) { … … 374 390 // in DeclarationNode.cc 375 391 void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ); 376 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType * > &outputList );392 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType * > &outputList ); 377 393 void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList ); 394 395 template< typename SynTreeType, typename NodeType > 396 void buildMoveList( const NodeType *firstNode, std::list< SynTreeType * > &outputList ) { 397 buildList(firstNode, outputList); 398 delete firstNode; 399 } 400 378 401 379 402 #endif // PARSENODE_H -
src/Parser/StatementNode.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 14:40:05201613 // Update Count : 3 1712 // Last Modified On : Mon Aug 15 20:47:11 2016 13 // Update Count : 322 14 14 // 15 15 … … 32 32 if ( agg ) { 33 33 StatementNode *nextStmt = new StatementNode( new DeclStmt( noLabels, maybeBuild< Declaration >( decl ) ) ); 34 next = nextStmt;34 set_next( nextStmt ); 35 35 if ( decl->get_next() ) { 36 next->set_next( new StatementNode( dynamic_cast<DeclarationNode *>(decl->get_next()) ) );36 get_next()->set_next( new StatementNode( dynamic_cast< DeclarationNode * >(decl->get_next()) ) ); 37 37 decl->set_next( 0 ); 38 38 } // if 39 39 } else { 40 40 if ( decl->get_next() ) { 41 next = new StatementNode( dynamic_cast<DeclarationNode *>( decl->get_next() ) );41 set_next(new StatementNode( dynamic_cast< DeclarationNode * >( decl->get_next() ) ) ); 42 42 decl->set_next( 0 ); 43 43 } // if 44 44 agg = decl; 45 45 } // if 46 stmt = new DeclStmt( noLabels, maybeBuild<Declaration>(agg) );46 stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) ); 47 47 } else { 48 48 assert( false ); … … 54 54 // find end of list and maintain previous pointer 55 55 for ( StatementNode * curr = prev; curr != nullptr; curr = (StatementNode *)curr->get_next() ) { 56 StatementNode *node = dynamic_cast< StatementNode *>(curr);56 StatementNode *node = dynamic_cast< StatementNode * >(curr); 57 57 assert( node ); 58 assert( dynamic_cast< CaseStmt *>(node->stmt) );58 assert( dynamic_cast< CaseStmt * >(node->stmt.get()) ); 59 59 prev = curr; 60 60 } // for 61 61 // convert from StatementNode list to Statement list 62 StatementNode *node = dynamic_cast< StatementNode *>(prev);63 std::list< Statement *> stmts;64 build List( stmt, stmts );62 StatementNode *node = dynamic_cast< StatementNode * >(prev); 63 std::list< Statement * > stmts; 64 buildMoveList( stmt, stmts ); 65 65 // splice any new Statements to end of current Statements 66 CaseStmt * caseStmt = dynamic_cast< CaseStmt *>(node->stmt);66 CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt.get()); 67 67 caseStmt->get_statements().splice( caseStmt->get_statements().end(), stmts ); 68 68 return this; … … 70 70 71 71 Statement *build_expr( ExpressionNode *ctl ) { 72 Expression *e = maybe Build< Expression >( ctl );72 Expression *e = maybeMoveBuild< Expression >( ctl ); 73 73 74 74 if ( e ) … … 80 80 Statement *build_if( ExpressionNode *ctl, StatementNode *then_stmt, StatementNode *else_stmt ) { 81 81 Statement *thenb, *elseb = 0; 82 std::list< Statement *> branches;83 build List<Statement, StatementNode>( then_stmt, branches );82 std::list< Statement * > branches; 83 buildMoveList< Statement, StatementNode >( then_stmt, branches ); 84 84 assert( branches.size() == 1 ); 85 85 thenb = branches.front(); 86 86 87 87 if ( else_stmt ) { 88 std::list< Statement *> branches;89 build List<Statement, StatementNode>( else_stmt, branches );88 std::list< Statement * > branches; 89 buildMoveList< Statement, StatementNode >( else_stmt, branches ); 90 90 assert( branches.size() == 1 ); 91 91 elseb = branches.front(); 92 92 } // if 93 return new IfStmt( noLabels, notZeroExpr( maybe Build<Expression>(ctl) ), thenb, elseb );93 return new IfStmt( noLabels, notZeroExpr( maybeMoveBuild< Expression >(ctl) ), thenb, elseb ); 94 94 } 95 95 96 96 Statement *build_switch( ExpressionNode *ctl, StatementNode *stmt ) { 97 std::list< Statement *> branches;98 build List<Statement, StatementNode>( stmt, branches );97 std::list< Statement * > branches; 98 buildMoveList< Statement, StatementNode >( stmt, branches ); 99 99 assert( branches.size() >= 0 ); // size == 0 for switch (...) {}, i.e., no declaration or statements 100 return new SwitchStmt( noLabels, maybe Build<Expression>(ctl), branches );100 return new SwitchStmt( noLabels, maybeMoveBuild< Expression >(ctl), branches ); 101 101 } 102 102 Statement *build_case( ExpressionNode *ctl ) { 103 std::list< Statement *> branches;104 return new CaseStmt( noLabels, maybe Build<Expression>(ctl), branches );103 std::list< Statement * > branches; 104 return new CaseStmt( noLabels, maybeMoveBuild< Expression >(ctl), branches ); 105 105 } 106 106 Statement *build_default() { 107 std::list< Statement *> branches;107 std::list< Statement * > branches; 108 108 return new CaseStmt( noLabels, nullptr, branches, true ); 109 109 } 110 110 111 111 Statement *build_while( ExpressionNode *ctl, StatementNode *stmt, bool kind ) { 112 std::list< Statement *> branches;113 build List<Statement, StatementNode>( stmt, branches );114 assert( branches.size() == 1 ); 115 return new WhileStmt( noLabels, notZeroExpr( maybe Build<Expression>(ctl) ), branches.front(), kind );112 std::list< Statement * > branches; 113 buildMoveList< Statement, StatementNode >( stmt, branches ); 114 assert( branches.size() == 1 ); 115 return new WhileStmt( noLabels, notZeroExpr( maybeMoveBuild< Expression >(ctl) ), branches.front(), kind ); 116 116 } 117 117 118 118 Statement *build_for( ForCtl *forctl, StatementNode *stmt ) { 119 std::list< Statement *> branches;120 build List<Statement, StatementNode>( stmt, branches );121 assert( branches.size() == 1 ); 122 123 std::list< Statement *> init;119 std::list< Statement * > branches; 120 buildMoveList< Statement, StatementNode >( stmt, branches ); 121 assert( branches.size() == 1 ); 122 123 std::list< Statement * > init; 124 124 if ( forctl->init != 0 ) { 125 build List( forctl->init, init );125 buildMoveList( forctl->init, init ); 126 126 } // if 127 127 128 128 Expression *cond = 0; 129 129 if ( forctl->condition != 0 ) 130 cond = notZeroExpr( maybe Build<Expression>(forctl->condition) );130 cond = notZeroExpr( maybeMoveBuild< Expression >(forctl->condition) ); 131 131 132 132 Expression *incr = 0; 133 133 if ( forctl->change != 0 ) 134 incr = maybe Build<Expression>(forctl->change);134 incr = maybeMoveBuild< Expression >(forctl->change); 135 135 136 136 delete forctl; … … 142 142 } 143 143 Statement *build_computedgoto( ExpressionNode *ctl ) { 144 return new BranchStmt( noLabels, maybe Build<Expression>(ctl), BranchStmt::Goto );144 return new BranchStmt( noLabels, maybeMoveBuild< Expression >(ctl), BranchStmt::Goto ); 145 145 } 146 146 147 147 Statement *build_return( ExpressionNode *ctl ) { 148 std::list< Expression *> exps;149 build List( ctl, exps );148 std::list< Expression * > exps; 149 buildMoveList( ctl, exps ); 150 150 return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr ); 151 151 } 152 152 Statement *build_throw( ExpressionNode *ctl ) { 153 std::list<Expression *> exps; 154 buildList( ctl, exps ); 155 return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr, true ); 153 std::list< Expression * > exps; 154 buildMoveList( ctl, exps ); 155 assertf( exps.size() < 2, "This means we are leaking memory"); 156 return new ReturnStmt( noLabels, !exps.empty() ? exps.back() : nullptr, true ); 156 157 } 157 158 158 159 Statement *build_try( StatementNode *try_stmt, StatementNode *catch_stmt, StatementNode *finally_stmt ) { 159 std::list< Statement *> branches;160 build List<Statement, StatementNode>( catch_stmt, branches );161 CompoundStmt *tryBlock = dynamic_cast< CompoundStmt *>(maybeBuild<Statement>(try_stmt));160 std::list< Statement * > branches; 161 buildMoveList< Statement, StatementNode >( catch_stmt, branches ); 162 CompoundStmt *tryBlock = dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(try_stmt)); 162 163 assert( tryBlock ); 163 FinallyStmt *finallyBlock = dynamic_cast< FinallyStmt *>(maybeBuild<Statement>(finally_stmt) );164 FinallyStmt *finallyBlock = dynamic_cast< FinallyStmt * >(maybeMoveBuild< Statement >(finally_stmt) ); 164 165 return new TryStmt( noLabels, tryBlock, branches, finallyBlock ); 165 166 } 166 167 Statement *build_catch( DeclarationNode *decl, StatementNode *stmt, bool catchAny ) { 167 std::list< Statement *> branches;168 build List<Statement, StatementNode>( stmt, branches );169 assert( branches.size() == 1 ); 170 return new CatchStmt( noLabels, maybe Build<Declaration>(decl), branches.front(), catchAny );168 std::list< Statement * > branches; 169 buildMoveList< Statement, StatementNode >( stmt, branches ); 170 assert( branches.size() == 1 ); 171 return new CatchStmt( noLabels, maybeMoveBuild< Declaration >(decl), branches.front(), catchAny ); 171 172 } 172 173 Statement *build_finally( StatementNode *stmt ) { 173 std::list< Statement *> branches;174 build List<Statement, StatementNode>( stmt, branches );175 assert( branches.size() == 1 ); 176 return new FinallyStmt( noLabels, dynamic_cast< CompoundStmt *>( branches.front() ) );174 std::list< Statement * > branches; 175 buildMoveList< Statement, StatementNode >( stmt, branches ); 176 assert( branches.size() == 1 ); 177 return new FinallyStmt( noLabels, dynamic_cast< CompoundStmt * >( branches.front() ) ); 177 178 } 178 179 179 180 Statement *build_compound( StatementNode *first ) { 180 181 CompoundStmt *cs = new CompoundStmt( noLabels ); 181 build List( first, cs->get_kids() );182 buildMoveList( first, cs->get_kids() ); 182 183 return cs; 183 184 } … … 187 188 std::list< ConstantExpr * > clob; 188 189 189 build List( output, out );190 build List( input, in );191 build List( clobber, clob );190 buildMoveList( output, out ); 191 buildMoveList( input, in ); 192 buildMoveList( clobber, clob ); 192 193 return new AsmStmt( noLabels, voltile, instruction, out, in, clob, gotolabels ? gotolabels->labels : noLabels ); 193 194 } -
src/Parser/TypeData.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 13 18:38:41201613 // Update Count : 5912 // Last Modified On : Thu Aug 18 23:48:44 2016 13 // Update Count : 64 14 14 // 15 15 … … 182 182 break; 183 183 case Array: 184 //PAB newtype->array->dimension = maybeClone( array->dimension );185 184 newtype->array->dimension = array->dimension; 186 185 newtype->array->isVarLen = array->isVarLen; … … 479 478 } 480 479 481 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec:: Typelinkage, Initializer *init ) const {480 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer *init ) const { 482 481 if ( kind == TypeData::Function ) { 483 482 FunctionDecl *decl; … … 489 488 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline, isNoreturn ); 490 489 } else { 491 // std::list< Label> ls;492 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list< Label>() ), isInline, isNoreturn );490 // std::list< Label > ls; 491 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list< Label >() ), isInline, isNoreturn ); 493 492 } // if 494 493 } else { … … 909 908 buildList( enumeration->constants, ret->get_members() ); 910 909 std::list< Declaration * >::iterator members = ret->get_members().begin(); 911 for ( const DeclarationNode *cur = enumeration->constants; cur != NULL; cur = dynamic_cast<DeclarationNode *>( cur->get_next() ), ++members ) {912 if ( cur->get_enumeratorValue() != NULL) {913 ObjectDecl *member = dynamic_cast< ObjectDecl *>(*members);910 for ( const DeclarationNode *cur = enumeration->constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) { 911 if ( cur->get_enumeratorValue() != nullptr ) { 912 ObjectDecl *member = dynamic_cast< ObjectDecl * >(*members); 914 913 member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ), std::list< Expression * >() ) ); 915 914 } // if -
src/Parser/TypeData.h
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 14:28:32 201613 // Update Count : 2 112 // Last Modified On : Thu Aug 18 23:48:52 2016 13 // Update Count : 22 14 14 // 15 15 … … 126 126 TypeData * extractAggregate( bool toplevel = true ) const; 127 127 // helper function for DeclNodeImpl::build 128 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec:: Typelinkage, Initializer * init = 0 ) const;128 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init = 0 ) const; 129 129 // helper functions for build() 130 130 Type::Qualifiers buildQualifiers() const; -
src/Parser/TypedefTable.cc
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 15:20:13 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 16:57:30201613 // Update Count : 2 412 // Last Modified On : Mon Aug 15 18:24:42 2016 13 // Update Count : 25 14 14 // 15 15 … … 64 64 tableType::iterator curPos = table.find( identifier ); 65 65 if ( curPos == table.end()) { 66 list< Entry> newList;66 list< Entry > newList; 67 67 newList.push_front( newEntry ); 68 68 table[identifier] = newList; 69 69 } else { 70 list< Entry>::iterator listPos = (*curPos ).second.begin();70 list< Entry >::iterator listPos = (*curPos ).second.begin(); 71 71 while ( listPos != (*curPos ).second.end() && listPos->scope > scope ) { 72 72 listPos++; … … 127 127 debugPrint( "Leaving scope " << currentScope << endl ); 128 128 for ( tableType::iterator i = table.begin(); i != table.end(); ) { 129 list< Entry> &declList = (*i).second;129 list< Entry > &declList = (*i).second; 130 130 while ( ! declList.empty() && declList.front().scope == currentScope ) { 131 131 declList.pop_front(); … … 157 157 for ( tableType::const_iterator i = table.begin(); i != table.end(); i++) { 158 158 debugPrint( (*i ).first << ": " ); 159 list< Entry> declList = (*i).second;160 for ( list< Entry>::const_iterator j = declList.begin(); j != declList.end(); j++ ) {159 list< Entry > declList = (*i).second; 160 for ( list< Entry >::const_iterator j = declList.begin(); j != declList.end(); j++ ) { 161 161 debugPrint( "(" << (*j).scope << " " << (*j).kind << ") " ); 162 162 } -
src/Parser/TypedefTable.h
r7b1bfc5 r4a7d895 10 10 // Created On : Sat May 16 15:24:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Apr 13 16:59:56201613 // Update Count : 2 712 // Last Modified On : Mon Aug 15 18:25:04 2016 13 // Update Count : 28 14 14 // 15 15 … … 39 39 }; 40 40 41 typedef std::map< std::string, std::list<Entry> > tableType;41 typedef std::map< std::string, std::list< Entry > > tableType; 42 42 tableType table; 43 43 -
src/Parser/lex.cc
r7b1bfc5 r4a7d895 1468 1468 * Author : Peter A. Buhr 1469 1469 * Created On : Sat Sep 22 08:58:10 2001 1470 * Last Modified By : 1471 * Last Modified On : Sun Jul 31 07:19:3620161472 * Update Count : 4 591470 * Last Modified By : Peter A. Buhr 1471 * Last Modified On : Thu Aug 18 22:17:30 2016 1472 * Update Count : 472 1473 1473 */ 1474 1474 #line 20 "lex.ll" … … 1480 1480 1481 1481 #include <string> 1482 #include <cstdio> // FILENAME_MAX 1482 1483 1483 1484 #include "lex.h" … … 1491 1492 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x ) 1492 1493 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x ) 1493 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x )1494 #define RETURN_CHAR(x) yylval.tok.str = nullptr; RETURN_LOCN( x ) 1494 1495 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x ) 1495 1496 1496 #define WHITE_RETURN(x) 1497 #define WHITE_RETURN(x) // do nothing 1497 1498 #define NEWLINE_RETURN() WHITE_RETURN( '\n' ) 1498 1499 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] ) // single character operator 1499 #define NAMEDOP_RETURN(x) RETURN_ VAL( x )// multichar operator, with a name1500 #define NAMEDOP_RETURN(x) RETURN_CHAR( x ) // multichar operator, with a name 1500 1501 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x ) // numeric constant 1501 1502 #define KEYWORD_RETURN(x) RETURN_CHAR( x ) // keyword … … 1531 1532 1532 1533 1533 #line 153 4"Parser/lex.cc"1534 #line 1535 "Parser/lex.cc" 1534 1535 1535 1536 #define INITIAL 0 … … 1723 1724 register int yy_act; 1724 1725 1725 #line 13 8"lex.ll"1726 #line 139 "lex.ll" 1726 1727 1727 1728 /* line directives */ 1728 #line 17 29"Parser/lex.cc"1729 #line 1730 "Parser/lex.cc" 1729 1730 1730 1731 if ( !(yy_init) ) … … 1823 1824 /* rule 1 can match eol */ 1824 1825 YY_RULE_SETUP 1825 #line 14 0"lex.ll"1826 #line 141 "lex.ll" 1826 1827 { 1827 1828 /* " stop highlighting */ 1829 static char *filename[FILENAME_MAX]; // temporarily store current source-file name 1828 1830 char *end_num; 1829 1831 char *begin_string, *end_string; 1830 char *filename;1831 1832 long lineno, length; 1832 1833 lineno = strtol( yytext + 1, &end_num, 0 ); 1833 1834 begin_string = strchr( end_num, '"' ); 1834 if ( begin_string ) { 1835 end_string = strchr( begin_string + 1, '"' ); 1836 if ( end_string ) { 1837 length = end_string - begin_string - 1; 1838 filename = new char[ length + 1 ]; 1839 memcpy( filename, begin_string + 1, length ); 1840 filename[ length ] = '\0'; 1841 //std::cout << "file " << filename << " line " << lineno << std::endl; 1842 yylineno = lineno; 1843 yyfilename = filename; 1844 } // if 1835 if ( begin_string ) { // file name ? 1836 end_string = strchr( begin_string + 1, '"' ); // look for ending delimiter 1837 assert( end_string ); // closing quote ? 1838 length = end_string - begin_string - 1; // file-name length without quotes or sentinel 1839 assert( length < FILENAME_MAX ); // room for sentinel ? 1840 memcpy( &filename, begin_string + 1, length ); // copy file name from yytext 1841 filename[ length ] = '\0'; // terminate string with sentinel 1842 //std::cout << "file " << filename << " line " << lineno << std::endl; 1843 yylineno = lineno; 1844 yyfilename = filename[0]; 1845 1845 } // if 1846 1846 } -
src/Parser/lex.ll
r7b1bfc5 r4a7d895 9 9 * Author : Peter A. Buhr 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 * Last Modified By : 12 * Last Modified On : Sun Jul 31 07:19:36201613 * Update Count : 4 5911 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Thu Aug 18 22:17:30 2016 13 * Update Count : 472 14 14 */ 15 15 … … 25 25 26 26 #include <string> 27 #include <cstdio> // FILENAME_MAX 27 28 28 29 #include "lex.h" … … 36 37 #define RETURN_LOCN(x) yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x ) 37 38 #define RETURN_VAL(x) yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x ) 38 #define RETURN_CHAR(x) yylval.tok.str = NULL; RETURN_LOCN( x )39 #define RETURN_CHAR(x) yylval.tok.str = nullptr; RETURN_LOCN( x ) 39 40 #define RETURN_STR(x) yylval.tok.str = strtext; RETURN_LOCN( x ) 40 41 41 #define WHITE_RETURN(x) 42 #define WHITE_RETURN(x) // do nothing 42 43 #define NEWLINE_RETURN() WHITE_RETURN( '\n' ) 43 44 #define ASCIIOP_RETURN() RETURN_CHAR( (int)yytext[0] ) // single character operator 44 #define NAMEDOP_RETURN(x) RETURN_ VAL( x )// multichar operator, with a name45 #define NAMEDOP_RETURN(x) RETURN_CHAR( x ) // multichar operator, with a name 45 46 #define NUMERIC_RETURN(x) rm_underscore(); RETURN_VAL( x ) // numeric constant 46 47 #define KEYWORD_RETURN(x) RETURN_CHAR( x ) // keyword … … 140 141 ^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" { 141 142 /* " stop highlighting */ 143 static char *filename[FILENAME_MAX]; // temporarily store current source-file name 142 144 char *end_num; 143 145 char *begin_string, *end_string; 144 char *filename;145 146 long lineno, length; 146 147 lineno = strtol( yytext + 1, &end_num, 0 ); 147 148 begin_string = strchr( end_num, '"' ); 148 if ( begin_string ) { 149 end_string = strchr( begin_string + 1, '"' ); 150 if ( end_string ) { 151 length = end_string - begin_string - 1; 152 filename = new char[ length + 1 ]; 153 memcpy( filename, begin_string + 1, length ); 154 filename[ length ] = '\0'; 155 //std::cout << "file " << filename << " line " << lineno << std::endl; 156 yylineno = lineno; 157 yyfilename = filename; 158 } // if 149 if ( begin_string ) { // file name ? 150 end_string = strchr( begin_string + 1, '"' ); // look for ending delimiter 151 assert( end_string ); // closing quote ? 152 length = end_string - begin_string - 1; // file-name length without quotes or sentinel 153 assert( length < FILENAME_MAX ); // room for sentinel ? 154 memcpy( &filename, begin_string + 1, length ); // copy file name from yytext 155 filename[ length ] = '\0'; // terminate string with sentinel 156 //std::cout << "file " << filename << " line " << lineno << std::endl; 157 yylineno = lineno; 158 yyfilename = filename[0]; 159 159 } // if 160 160 } -
src/Parser/module.mk
r7b1bfc5 r4a7d895 11 11 ## Created On : Sat May 16 15:29:09 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : T hu Jan 28 11:57:23201614 ## Update Count : 10 013 ## Last Modified On : Tue Aug 16 17:28:34 2016 14 ## Update Count : 101 15 15 ############################################################################### 16 16 … … 29 29 Parser/TypeData.cc \ 30 30 Parser/LinkageSpec.cc \ 31 Parser/parseutility.cc \ 32 Parser/Parser.cc 31 Parser/parseutility.cc 33 32 34 33 MAINTAINERCLEANFILES += Parser/parser.output -
src/Parser/parser.cc
r7b1bfc5 r4a7d895 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ … … 45 45 46 46 /* Bison version. */ 47 #define YYBISON_VERSION " 2.5"47 #define YYBISON_VERSION "3.0.2" 48 48 49 49 /* Skeleton name. */ … … 59 59 #define YYPULL 1 60 60 61 /* Using locations. */62 #define YYLSP_NEEDED 063 61 64 62 65 63 66 64 /* Copy the first part of user declarations. */ 67 68 /* Line 268 of yacc.c */ 69 #line 42 "parser.yy" 65 #line 42 "parser.yy" /* yacc.c:339 */ 70 66 71 67 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time 72 68 #define YYDEBUG 1 // get the pretty debugging code to compile 73 extern char *yytext;74 69 75 70 #undef __GNUC_MINOR__ … … 84 79 #include "LinkageSpec.h" 85 80 86 DeclarationNode *theTree = 0; // the resulting parse tree 87 LinkageSpec::Type linkage = LinkageSpec::Cforall; 88 std::stack< LinkageSpec::Type > linkageStack; 89 TypedefTable typedefTable; 81 extern DeclarationNode * parseTree; 82 extern LinkageSpec::Spec linkage; 83 extern TypedefTable typedefTable; 84 85 std::stack< LinkageSpec::Spec > linkageStack; 90 86 91 87 void appendStr( std::string &to, std::string *from ) { … … 94 90 } // appendStr 95 91 96 97 /* Line 268 of yacc.c */ 98 #line 99 "Parser/parser.cc" 99 100 /* Enabling traces. */ 101 #ifndef YYDEBUG 102 # define YYDEBUG 1 103 #endif 92 #line 93 "Parser/parser.cc" /* yacc.c:339 */ 93 94 # ifndef YY_NULLPTR 95 # if defined __cplusplus && 201103L <= __cplusplus 96 # define YY_NULLPTR nullptr 97 # else 98 # define YY_NULLPTR 0 99 # endif 100 # endif 104 101 105 102 /* Enabling verbose error messages. */ … … 111 108 #endif 112 109 113 /* Enabling the token table. */ 114 #ifndef YYTOKEN_TABLE 115 # define YYTOKEN_TABLE 0 110 /* In a future release of Bison, this section will be replaced 111 by #include "y.tab.h". */ 112 #ifndef YY_YY_Y_TAB_H_INCLUDED 113 # define YY_YY_Y_TAB_H_INCLUDED 114 /* Debug traces. */ 115 #ifndef YYDEBUG 116 # define YYDEBUG 1 116 117 #endif 117 118 119 /* Tokens. */ 118 #if YYDEBUG 119 extern int yydebug; 120 #endif 121 122 /* Token type. */ 120 123 #ifndef YYTOKENTYPE 121 124 # define YYTOKENTYPE 122 /* Put the tokens into the symbol table, so that GDB and other debuggers 123 know about them. */ 124 enum yytokentype { 125 TYPEDEF = 258, 126 AUTO = 259, 127 EXTERN = 260, 128 REGISTER = 261, 129 STATIC = 262, 130 INLINE = 263, 131 FORTRAN = 264, 132 CONST = 265, 133 VOLATILE = 266, 134 RESTRICT = 267, 135 FORALL = 268, 136 LVALUE = 269, 137 VOID = 270, 138 CHAR = 271, 139 SHORT = 272, 140 INT = 273, 141 LONG = 274, 142 FLOAT = 275, 143 DOUBLE = 276, 144 SIGNED = 277, 145 UNSIGNED = 278, 146 VALIST = 279, 147 BOOL = 280, 148 COMPLEX = 281, 149 IMAGINARY = 282, 150 TYPEOF = 283, 151 LABEL = 284, 152 ENUM = 285, 153 STRUCT = 286, 154 UNION = 287, 155 OTYPE = 288, 156 FTYPE = 289, 157 DTYPE = 290, 158 TRAIT = 291, 159 SIZEOF = 292, 160 OFFSETOF = 293, 161 ATTRIBUTE = 294, 162 EXTENSION = 295, 163 IF = 296, 164 ELSE = 297, 165 SWITCH = 298, 166 CASE = 299, 167 DEFAULT = 300, 168 DO = 301, 169 WHILE = 302, 170 FOR = 303, 171 BREAK = 304, 172 CONTINUE = 305, 173 GOTO = 306, 174 RETURN = 307, 175 CHOOSE = 308, 176 DISABLE = 309, 177 ENABLE = 310, 178 FALLTHRU = 311, 179 TRY = 312, 180 CATCH = 313, 181 CATCHRESUME = 314, 182 FINALLY = 315, 183 THROW = 316, 184 THROWRESUME = 317, 185 AT = 318, 186 ASM = 319, 187 ALIGNAS = 320, 188 ALIGNOF = 321, 189 ATOMIC = 322, 190 GENERIC = 323, 191 NORETURN = 324, 192 STATICASSERT = 325, 193 THREADLOCAL = 326, 194 IDENTIFIER = 327, 195 QUOTED_IDENTIFIER = 328, 196 TYPEDEFname = 329, 197 TYPEGENname = 330, 198 ATTR_IDENTIFIER = 331, 199 ATTR_TYPEDEFname = 332, 200 ATTR_TYPEGENname = 333, 201 INTEGERconstant = 334, 202 FLOATINGconstant = 335, 203 CHARACTERconstant = 336, 204 STRINGliteral = 337, 205 ZERO = 338, 206 ONE = 339, 207 ARROW = 340, 208 ICR = 341, 209 DECR = 342, 210 LS = 343, 211 RS = 344, 212 LE = 345, 213 GE = 346, 214 EQ = 347, 215 NE = 348, 216 ANDAND = 349, 217 OROR = 350, 218 ELLIPSIS = 351, 219 MULTassign = 352, 220 DIVassign = 353, 221 MODassign = 354, 222 PLUSassign = 355, 223 MINUSassign = 356, 224 LSassign = 357, 225 RSassign = 358, 226 ANDassign = 359, 227 ERassign = 360, 228 ORassign = 361, 229 ATassign = 362, 230 THEN = 363 231 }; 125 enum yytokentype 126 { 127 TYPEDEF = 258, 128 AUTO = 259, 129 EXTERN = 260, 130 REGISTER = 261, 131 STATIC = 262, 132 INLINE = 263, 133 FORTRAN = 264, 134 CONST = 265, 135 VOLATILE = 266, 136 RESTRICT = 267, 137 FORALL = 268, 138 LVALUE = 269, 139 VOID = 270, 140 CHAR = 271, 141 SHORT = 272, 142 INT = 273, 143 LONG = 274, 144 FLOAT = 275, 145 DOUBLE = 276, 146 SIGNED = 277, 147 UNSIGNED = 278, 148 VALIST = 279, 149 BOOL = 280, 150 COMPLEX = 281, 151 IMAGINARY = 282, 152 TYPEOF = 283, 153 LABEL = 284, 154 ENUM = 285, 155 STRUCT = 286, 156 UNION = 287, 157 OTYPE = 288, 158 FTYPE = 289, 159 DTYPE = 290, 160 TRAIT = 291, 161 SIZEOF = 292, 162 OFFSETOF = 293, 163 ATTRIBUTE = 294, 164 EXTENSION = 295, 165 IF = 296, 166 ELSE = 297, 167 SWITCH = 298, 168 CASE = 299, 169 DEFAULT = 300, 170 DO = 301, 171 WHILE = 302, 172 FOR = 303, 173 BREAK = 304, 174 CONTINUE = 305, 175 GOTO = 306, 176 RETURN = 307, 177 CHOOSE = 308, 178 DISABLE = 309, 179 ENABLE = 310, 180 FALLTHRU = 311, 181 TRY = 312, 182 CATCH = 313, 183 CATCHRESUME = 314, 184 FINALLY = 315, 185 THROW = 316, 186 THROWRESUME = 317, 187 AT = 318, 188 ASM = 319, 189 ALIGNAS = 320, 190 ALIGNOF = 321, 191 ATOMIC = 322, 192 GENERIC = 323, 193 NORETURN = 324, 194 STATICASSERT = 325, 195 THREADLOCAL = 326, 196 IDENTIFIER = 327, 197 QUOTED_IDENTIFIER = 328, 198 TYPEDEFname = 329, 199 TYPEGENname = 330, 200 ATTR_IDENTIFIER = 331, 201 ATTR_TYPEDEFname = 332, 202 ATTR_TYPEGENname = 333, 203 INTEGERconstant = 334, 204 FLOATINGconstant = 335, 205 CHARACTERconstant = 336, 206 STRINGliteral = 337, 207 ZERO = 338, 208 ONE = 339, 209 ARROW = 340, 210 ICR = 341, 211 DECR = 342, 212 LS = 343, 213 RS = 344, 214 LE = 345, 215 GE = 346, 216 EQ = 347, 217 NE = 348, 218 ANDAND = 349, 219 OROR = 350, 220 ELLIPSIS = 351, 221 MULTassign = 352, 222 DIVassign = 353, 223 MODassign = 354, 224 PLUSassign = 355, 225 MINUSassign = 356, 226 LSassign = 357, 227 RSassign = 358, 228 ANDassign = 359, 229 ERassign = 360, 230 ORassign = 361, 231 ATassign = 362, 232 THEN = 363 233 }; 232 234 #endif 233 235 /* Tokens. */ … … 339 341 #define THEN 363 340 342 341 342 343 343 /* Value type. */ 344 344 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 345 typedef union YYSTYPE 345 typedef union YYSTYPE YYSTYPE; 346 union YYSTYPE 346 347 { 347 348 /* Line 293 of yacc.c */ 349 #line 115 "parser.yy" 348 #line 115 "parser.yy" /* yacc.c:355 */ 350 349 351 350 Token tok; … … 363 362 bool flag; 364 363 365 366 367 /* Line 293 of yacc.c */ 368 #line 369 "Parser/parser.cc" 369 } YYSTYPE; 364 #line 365 "Parser/parser.cc" /* yacc.c:355 */ 365 }; 370 366 # define YYSTYPE_IS_TRIVIAL 1 371 # define yystype YYSTYPE /* obsolescent; will be withdrawn */372 367 # define YYSTYPE_IS_DECLARED 1 373 368 #endif 374 369 375 370 371 extern YYSTYPE yylval; 372 373 int yyparse (void); 374 375 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 376 376 377 /* Copy the second part of user declarations. */ 377 378 378 379 /* Line 343 of yacc.c */ 380 #line 381 "Parser/parser.cc" 379 #line 380 "Parser/parser.cc" /* yacc.c:358 */ 381 380 382 381 #ifdef short … … 392 391 #ifdef YYTYPE_INT8 393 392 typedef YYTYPE_INT8 yytype_int8; 394 #elif (defined __STDC__ || defined __C99__FUNC__ \ 395 || defined __cplusplus || defined _MSC_VER) 393 #else 396 394 typedef signed char yytype_int8; 397 #else398 typedef short int yytype_int8;399 395 #endif 400 396 … … 416 412 # elif defined size_t 417 413 # define YYSIZE_T size_t 418 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 419 || defined __cplusplus || defined _MSC_VER) 414 # elif ! defined YYSIZE_T 420 415 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 421 416 # define YYSIZE_T size_t … … 431 426 # if ENABLE_NLS 432 427 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 433 # define YY_( msgid) dgettext ("bison-runtime", msgid)428 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 434 429 # endif 435 430 # endif 436 431 # ifndef YY_ 437 # define YY_( msgid) msgid432 # define YY_(Msgid) Msgid 438 433 # endif 439 434 #endif 440 435 436 #ifndef YY_ATTRIBUTE 437 # if (defined __GNUC__ \ 438 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 439 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 440 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 441 # else 442 # define YY_ATTRIBUTE(Spec) /* empty */ 443 # endif 444 #endif 445 446 #ifndef YY_ATTRIBUTE_PURE 447 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 448 #endif 449 450 #ifndef YY_ATTRIBUTE_UNUSED 451 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 452 #endif 453 454 #if !defined _Noreturn \ 455 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 456 # if defined _MSC_VER && 1200 <= _MSC_VER 457 # define _Noreturn __declspec (noreturn) 458 # else 459 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 460 # endif 461 #endif 462 441 463 /* Suppress unused-variable warnings by "using" E. */ 442 464 #if ! defined lint || defined __GNUC__ 443 # define YYUSE( e) ((void) (e))465 # define YYUSE(E) ((void) (E)) 444 466 #else 445 # define YYUSE( e) /* empty */467 # define YYUSE(E) /* empty */ 446 468 #endif 447 469 448 /* Identity function, used to suppress warnings about constant conditions. */ 449 #ifndef lint 450 # define YYID(n) (n) 470 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 471 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 472 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 473 _Pragma ("GCC diagnostic push") \ 474 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 475 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 476 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 477 _Pragma ("GCC diagnostic pop") 451 478 #else 452 #if (defined __STDC__ || defined __C99__FUNC__ \ 453 || defined __cplusplus || defined _MSC_VER) 454 static int 455 YYID (int yyi) 456 #else 457 static int 458 YYID (yyi) 459 int yyi; 479 # define YY_INITIAL_VALUE(Value) Value 460 480 #endif 461 { 462 return yyi; 463 } 481 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 482 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 483 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 464 484 #endif 485 #ifndef YY_INITIAL_VALUE 486 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 487 #endif 488 465 489 466 490 #if ! defined yyoverflow || YYERROR_VERBOSE … … 481 505 # else 482 506 # define YYSTACK_ALLOC alloca 483 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 484 || defined __cplusplus || defined _MSC_VER) 507 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 485 508 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 509 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 486 510 # ifndef EXIT_SUCCESS 487 511 # define EXIT_SUCCESS 0 … … 493 517 494 518 # ifdef YYSTACK_ALLOC 495 /* Pacify GCC's `empty if-body' warning. */496 # define YYSTACK_FREE(Ptr) do { /* empty */; } while ( YYID (0))519 /* Pacify GCC's 'empty if-body' warning. */ 520 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 497 521 # ifndef YYSTACK_ALLOC_MAXIMUM 498 522 /* The OS might guarantee only one guard page at the bottom of the stack, … … 510 534 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 511 535 && ! ((defined YYMALLOC || defined malloc) \ 512 536 && (defined YYFREE || defined free))) 513 537 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 514 538 # ifndef EXIT_SUCCESS … … 518 542 # ifndef YYMALLOC 519 543 # define YYMALLOC malloc 520 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 521 || defined __cplusplus || defined _MSC_VER) 544 # if ! defined malloc && ! defined EXIT_SUCCESS 522 545 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 523 546 # endif … … 525 548 # ifndef YYFREE 526 549 # define YYFREE free 527 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 528 || defined __cplusplus || defined _MSC_VER) 550 # if ! defined free && ! defined EXIT_SUCCESS 529 551 void free (void *); /* INFRINGES ON USER NAME SPACE */ 530 552 # endif … … 536 558 #if (! defined yyoverflow \ 537 559 && (! defined __cplusplus \ 538 560 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 539 561 540 562 /* A type that is properly aligned for any stack member. */ … … 561 583 stack. Advance YYPTR to a properly aligned location for the next 562 584 stack. */ 563 # define YYSTACK_RELOCATE(Stack_alloc, Stack) 564 do 565 { 566 YYSIZE_T yynewbytes;\567 YYCOPY (&yyptr->Stack_alloc, Stack, yysize);\568 Stack = &yyptr->Stack_alloc;\569 570 yyptr += yynewbytes / sizeof (*yyptr);\571 } 572 while ( YYID (0))585 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 586 do \ 587 { \ 588 YYSIZE_T yynewbytes; \ 589 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 590 Stack = &yyptr->Stack_alloc; \ 591 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 592 yyptr += yynewbytes / sizeof (*yyptr); \ 593 } \ 594 while (0) 573 595 574 596 #endif 575 597 576 598 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 577 /* Copy COUNT objects from FROM to TO. The source and destination do599 /* Copy COUNT objects from SRC to DST. The source and destination do 578 600 not overlap. */ 579 601 # ifndef YYCOPY 580 602 # if defined __GNUC__ && 1 < __GNUC__ 581 # define YYCOPY( To, From, Count) \582 __builtin_memcpy ( To, From, (Count) * sizeof (*(From)))603 # define YYCOPY(Dst, Src, Count) \ 604 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 583 605 # else 584 # define YYCOPY( To, From, Count)\585 do 586 {\587 YYSIZE_T yyi;\588 for (yyi = 0; yyi < (Count); yyi++)\589 (To)[yyi] = (From)[yyi];\590 }\591 while ( YYID (0))606 # define YYCOPY(Dst, Src, Count) \ 607 do \ 608 { \ 609 YYSIZE_T yyi; \ 610 for (yyi = 0; yyi < (Count); yyi++) \ 611 (Dst)[yyi] = (Src)[yyi]; \ 612 } \ 613 while (0) 592 614 # endif 593 615 # endif … … 595 617 596 618 /* YYFINAL -- State number of the termination state. */ 597 #define YYFINAL 25 1619 #define YYFINAL 250 598 620 /* YYLAST -- Last index in YYTABLE. */ 599 #define YYLAST 10 816621 #define YYLAST 10977 600 622 601 623 /* YYNTOKENS -- Number of terminals. */ 602 624 #define YYNTOKENS 133 603 625 /* YYNNTS -- Number of nonterminals. */ 604 #define YYNNTS 24 1626 #define YYNNTS 240 605 627 /* YYNRULES -- Number of rules. */ 606 #define YYNRULES 750 607 /* YYNRULES -- Number of states. */ 608 #define YYNSTATES 1554 609 610 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 628 #define YYNRULES 749 629 /* YYNSTATES -- Number of states. */ 630 #define YYNSTATES 1553 631 632 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 633 by yylex, with out-of-bounds checking. */ 611 634 #define YYUNDEFTOK 2 612 635 #define YYMAXUTOK 363 613 636 614 #define YYTRANSLATE(YYX) 637 #define YYTRANSLATE(YYX) \ 615 638 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 616 639 617 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 640 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 641 as returned by yylex, without out-of-bounds checking. */ 618 642 static const yytype_uint8 yytranslate[] = 619 643 { … … 658 682 659 683 #if YYDEBUG 660 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 661 YYRHS. */ 662 static const yytype_uint16 yyprhs[] = 663 { 664 0, 0, 3, 4, 5, 7, 9, 11, 13, 15, 665 17, 19, 21, 23, 25, 27, 29, 31, 34, 36, 666 38, 42, 46, 48, 55, 60, 64, 72, 76, 84, 667 87, 90, 98, 103, 105, 109, 110, 112, 114, 118, 668 120, 124, 132, 136, 144, 146, 148, 150, 153, 156, 669 159, 162, 165, 168, 173, 176, 181, 188, 190, 195, 670 200, 202, 204, 206, 208, 210, 212, 214, 219, 224, 671 226, 230, 234, 238, 240, 244, 248, 250, 254, 258, 672 260, 264, 268, 272, 276, 278, 282, 286, 288, 292, 673 294, 298, 300, 304, 306, 310, 312, 316, 318, 324, 674 329, 335, 337, 339, 343, 346, 347, 349, 351, 353, 675 355, 357, 359, 361, 363, 365, 367, 369, 371, 374, 676 380, 387, 395, 397, 401, 403, 407, 408, 410, 412, 677 414, 416, 418, 420, 422, 424, 426, 433, 438, 441, 678 449, 451, 455, 457, 460, 462, 465, 467, 470, 473, 679 479, 487, 493, 503, 509, 519, 521, 525, 527, 529, 680 533, 537, 540, 542, 545, 548, 549, 551, 554, 558, 681 559, 561, 564, 568, 572, 577, 578, 580, 582, 585, 682 591, 599, 606, 613, 618, 622, 627, 630, 634, 637, 683 641, 645, 649, 653, 659, 663, 667, 672, 674, 680, 684 687, 693, 700, 710, 721, 731, 742, 745, 747, 750, 685 753, 756, 758, 765, 774, 785, 798, 813, 814, 816, 686 817, 819, 821, 825, 830, 838, 839, 841, 845, 847, 687 851, 853, 855, 857, 861, 863, 865, 867, 871, 872, 688 874, 878, 883, 885, 889, 891, 893, 897, 901, 905, 689 909, 913, 916, 920, 927, 931, 935, 940, 942, 945, 690 948, 952, 958, 967, 975, 983, 989, 999, 1002, 1005, 691 1011, 1015, 1021, 1026, 1030, 1035, 1040, 1048, 1052, 1056, 692 1060, 1064, 1069, 1076, 1078, 1080, 1082, 1084, 1086, 1088, 693 1090, 1092, 1093, 1095, 1097, 1100, 1102, 1104, 1106, 1108, 694 1110, 1112, 1114, 1115, 1121, 1123, 1126, 1130, 1132, 1135, 695 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 696 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 697 1177, 1179, 1181, 1184, 1187, 1191, 1195, 1197, 1201, 1203, 698 1206, 1209, 1212, 1217, 1222, 1227, 1232, 1234, 1237, 1240, 699 1244, 1246, 1249, 1252, 1254, 1257, 1260, 1264, 1266, 1269, 700 1272, 1274, 1276, 1281, 1284, 1285, 1292, 1300, 1303, 1306, 701 1309, 1310, 1313, 1316, 1320, 1323, 1327, 1329, 1332, 1336, 702 1339, 1342, 1347, 1348, 1350, 1353, 1356, 1358, 1359, 1361, 703 1364, 1367, 1373, 1376, 1377, 1385, 1388, 1393, 1394, 1397, 704 1398, 1400, 1402, 1404, 1410, 1416, 1422, 1424, 1430, 1436, 705 1446, 1448, 1454, 1455, 1457, 1459, 1465, 1467, 1469, 1475, 706 1481, 1483, 1487, 1491, 1496, 1498, 1500, 1502, 1504, 1507, 707 1509, 1513, 1517, 1519, 1522, 1524, 1528, 1530, 1532, 1534, 708 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1553, 1555, 709 1557, 1559, 1562, 1563, 1566, 1569, 1571, 1576, 1577, 1579, 710 1582, 1586, 1591, 1594, 1597, 1599, 1602, 1605, 1611, 1617, 711 1625, 1632, 1634, 1637, 1640, 1644, 1646, 1649, 1652, 1657, 712 1660, 1665, 1666, 1671, 1674, 1676, 1678, 1680, 1681, 1684, 713 1690, 1696, 1710, 1712, 1714, 1718, 1722, 1725, 1729, 1733, 714 1736, 1741, 1743, 1750, 1760, 1761, 1773, 1775, 1779, 1783, 715 1787, 1789, 1791, 1797, 1800, 1806, 1807, 1809, 1811, 1815, 716 1816, 1818, 1820, 1822, 1824, 1825, 1832, 1835, 1837, 1840, 717 1845, 1848, 1852, 1856, 1860, 1865, 1871, 1877, 1883, 1890, 718 1892, 1894, 1896, 1900, 1901, 1907, 1908, 1910, 1912, 1915, 719 1922, 1924, 1928, 1929, 1931, 1936, 1938, 1940, 1942, 1944, 720 1947, 1949, 1952, 1955, 1957, 1961, 1964, 1968, 1972, 1975, 721 1980, 1985, 1989, 1998, 2002, 2005, 2007, 2010, 2017, 2026, 722 2030, 2033, 2037, 2041, 2046, 2051, 2055, 2057, 2059, 2061, 723 2066, 2073, 2077, 2080, 2084, 2088, 2093, 2098, 2102, 2105, 724 2107, 2110, 2113, 2115, 2119, 2122, 2126, 2130, 2133, 2138, 725 2143, 2147, 2154, 2163, 2167, 2170, 2172, 2175, 2178, 2181, 726 2185, 2189, 2192, 2197, 2202, 2206, 2213, 2222, 2226, 2229, 727 2231, 2234, 2237, 2239, 2241, 2244, 2248, 2252, 2255, 2260, 728 2267, 2276, 2278, 2281, 2284, 2286, 2289, 2292, 2296, 2300, 729 2302, 2307, 2312, 2316, 2322, 2331, 2335, 2338, 2342, 2344, 730 2350, 2356, 2363, 2370, 2372, 2375, 2378, 2380, 2383, 2386, 731 2390, 2394, 2396, 2401, 2406, 2410, 2416, 2425, 2429, 2431, 732 2434, 2436, 2439, 2446, 2452, 2459, 2467, 2475, 2477, 2480, 733 2483, 2485, 2488, 2491, 2495, 2499, 2501, 2506, 2511, 2515, 734 2524, 2528, 2530, 2532, 2535, 2537, 2539, 2542, 2546, 2549, 735 2553, 2556, 2560, 2564, 2567, 2572, 2576, 2579, 2583, 2586, 736 2591, 2595, 2598, 2605, 2612, 2619, 2627, 2629, 2632, 2634, 737 2636, 2638, 2641, 2645, 2648, 2652, 2655, 2659, 2663, 2668, 738 2671, 2675, 2680, 2683, 2689, 2695, 2702, 2709, 2710, 2712, 739 2713 740 }; 741 742 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 743 static const yytype_int16 yyrhs[] = 744 { 745 302, 0, -1, -1, -1, 79, -1, 80, -1, 81, 746 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 747 -1, 72, -1, 140, -1, 83, -1, 84, -1, 82, 748 -1, 141, 82, -1, 72, -1, 140, -1, 109, 169, 749 110, -1, 109, 173, 110, -1, 142, -1, 143, 111, 750 134, 164, 135, 112, -1, 143, 109, 144, 110, -1, 751 143, 113, 139, -1, 143, 113, 111, 134, 146, 135, 752 112, -1, 143, 85, 139, -1, 143, 85, 111, 134, 753 146, 135, 112, -1, 143, 86, -1, 143, 87, -1, 754 109, 275, 110, 114, 279, 372, 115, -1, 143, 114, 755 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 756 164, -1, 147, -1, 146, 116, 147, -1, 139, -1, 757 139, 113, 147, -1, 139, 113, 111, 134, 146, 135, 758 112, -1, 139, 85, 147, -1, 139, 85, 111, 134, 759 146, 135, 112, -1, 143, -1, 136, -1, 141, -1, 760 40, 151, -1, 149, 151, -1, 150, 151, -1, 86, 761 148, -1, 87, 148, -1, 37, 148, -1, 37, 109, 762 275, 110, -1, 66, 148, -1, 66, 109, 275, 110, 763 -1, 38, 109, 275, 116, 139, 110, -1, 76, -1, 764 76, 109, 145, 110, -1, 76, 109, 276, 110, -1, 765 117, -1, 118, -1, 119, -1, 120, -1, 121, -1, 766 122, -1, 148, -1, 109, 275, 110, 151, -1, 109, 767 275, 110, 167, -1, 151, -1, 152, 117, 151, -1, 768 152, 123, 151, -1, 152, 124, 151, -1, 152, -1, 769 153, 119, 152, -1, 153, 120, 152, -1, 153, -1, 770 154, 88, 153, -1, 154, 89, 153, -1, 154, -1, 771 155, 125, 154, -1, 155, 126, 154, -1, 155, 90, 772 154, -1, 155, 91, 154, -1, 155, -1, 156, 92, 773 155, -1, 156, 93, 155, -1, 156, -1, 157, 118, 774 156, -1, 157, -1, 158, 127, 157, -1, 158, -1, 775 159, 128, 158, -1, 159, -1, 160, 94, 159, -1, 776 160, -1, 161, 95, 160, -1, 161, -1, 161, 129, 777 169, 130, 162, -1, 161, 129, 130, 162, -1, 161, 778 129, 169, 130, 167, -1, 162, -1, 162, -1, 148, 779 166, 164, -1, 167, 373, -1, -1, 164, -1, 131, 780 -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, 781 -1, 102, -1, 103, -1, 104, -1, 105, -1, 106, 782 -1, 111, 112, -1, 111, 134, 164, 135, 112, -1, 783 111, 134, 116, 168, 135, 112, -1, 111, 134, 164, 784 116, 168, 135, 112, -1, 165, -1, 168, 116, 165, 785 -1, 164, -1, 169, 116, 164, -1, -1, 169, -1, 786 172, -1, 173, -1, 177, -1, 178, -1, 190, -1, 787 192, -1, 193, -1, 198, -1, 127, 143, 114, 144, 788 115, 132, -1, 72, 130, 312, 171, -1, 114, 115, 789 -1, 114, 134, 134, 209, 174, 135, 115, -1, 175, 790 -1, 174, 134, 175, -1, 212, -1, 40, 212, -1, 791 308, -1, 171, 135, -1, 171, -1, 176, 171, -1, 792 170, 132, -1, 41, 109, 169, 110, 171, -1, 41, 793 109, 169, 110, 171, 42, 171, -1, 43, 109, 169, 794 110, 183, -1, 43, 109, 169, 110, 114, 134, 205, 795 184, 115, -1, 53, 109, 169, 110, 183, -1, 53, 796 109, 169, 110, 114, 134, 205, 186, 115, -1, 163, 797 -1, 163, 96, 163, -1, 310, -1, 179, -1, 180, 798 116, 179, -1, 44, 180, 130, -1, 45, 130, -1, 799 181, -1, 182, 181, -1, 182, 171, -1, -1, 185, 800 -1, 182, 176, -1, 185, 182, 176, -1, -1, 187, 801 -1, 182, 189, -1, 182, 176, 188, -1, 187, 182, 802 189, -1, 187, 182, 176, 188, -1, -1, 189, -1, 803 56, -1, 56, 132, -1, 47, 109, 169, 110, 171, 804 -1, 46, 171, 47, 109, 169, 110, 132, -1, 48, 805 109, 134, 191, 110, 171, -1, 170, 135, 132, 170, 806 132, 170, -1, 212, 170, 132, 170, -1, 51, 72, 807 132, -1, 51, 117, 169, 132, -1, 50, 132, -1, 808 50, 72, 132, -1, 49, 132, -1, 49, 72, 132, 809 -1, 52, 170, 132, -1, 61, 165, 132, -1, 62, 810 165, 132, -1, 62, 165, 63, 164, 132, -1, 57, 811 173, 194, -1, 57, 173, 196, -1, 57, 173, 194, 812 196, -1, 195, -1, 58, 109, 96, 110, 173, -1, 813 195, 58, 109, 96, 110, 173, -1, 59, 109, 96, 814 110, 173, -1, 195, 59, 109, 96, 110, 173, -1, 815 58, 109, 134, 134, 197, 135, 110, 173, 135, -1, 816 195, 58, 109, 134, 134, 197, 135, 110, 173, 135, 817 -1, 59, 109, 134, 134, 197, 135, 110, 173, 135, 818 -1, 195, 59, 109, 134, 134, 197, 135, 110, 173, 819 135, -1, 60, 173, -1, 225, -1, 225, 309, -1, 820 225, 357, -1, 366, 139, -1, 366, -1, 64, 199, 821 109, 141, 110, 132, -1, 64, 199, 109, 141, 130, 822 200, 110, 132, -1, 64, 199, 109, 141, 130, 200, 823 130, 200, 110, 132, -1, 64, 199, 109, 141, 130, 824 200, 130, 200, 130, 203, 110, 132, -1, 64, 199, 825 51, 109, 141, 130, 130, 200, 130, 203, 130, 204, 826 110, 132, -1, -1, 11, -1, -1, 201, -1, 202, 827 -1, 201, 116, 202, -1, 141, 109, 163, 110, -1, 828 111, 163, 112, 141, 109, 163, 110, -1, -1, 141, 829 -1, 203, 116, 141, -1, 139, -1, 204, 116, 139, 830 -1, 135, -1, 206, -1, 212, -1, 206, 134, 212, 831 -1, 135, -1, 208, -1, 222, -1, 208, 134, 222, 832 -1, -1, 210, -1, 29, 211, 132, -1, 210, 29, 833 211, 132, -1, 274, -1, 211, 116, 274, -1, 213, 834 -1, 222, -1, 214, 135, 132, -1, 219, 135, 132, 835 -1, 216, 135, 132, -1, 293, 135, 132, -1, 296, 836 135, 132, -1, 215, 277, -1, 231, 215, 277, -1, 837 214, 135, 116, 134, 272, 277, -1, 367, 272, 311, 838 -1, 370, 272, 311, -1, 227, 370, 272, 311, -1, 839 217, -1, 227, 217, -1, 231, 217, -1, 231, 227, 840 217, -1, 216, 135, 116, 134, 272, -1, 111, 112, 841 272, 109, 134, 260, 135, 110, -1, 370, 272, 109, 842 134, 260, 135, 110, -1, 218, 272, 109, 134, 260, 843 135, 110, -1, 111, 134, 262, 135, 112, -1, 111, 844 134, 262, 135, 116, 134, 263, 135, 112, -1, 3, 845 215, -1, 3, 217, -1, 219, 135, 116, 134, 139, 846 -1, 3, 225, 309, -1, 220, 135, 116, 134, 309, 847 -1, 227, 3, 225, 309, -1, 225, 3, 309, -1, 848 225, 3, 227, 309, -1, 3, 139, 131, 164, -1, 849 221, 135, 116, 134, 139, 131, 164, -1, 223, 135, 850 132, -1, 220, 135, 132, -1, 221, 135, 132, -1, 851 240, 135, 132, -1, 224, 309, 311, 277, -1, 223, 852 116, 312, 309, 311, 277, -1, 236, -1, 240, -1, 853 242, -1, 283, -1, 237, -1, 241, -1, 243, -1, 854 284, -1, -1, 227, -1, 228, -1, 227, 228, -1, 855 229, -1, 314, -1, 10, -1, 12, -1, 11, -1, 856 14, -1, 67, -1, -1, 13, 109, 230, 286, 110, 857 -1, 232, -1, 227, 232, -1, 231, 227, 232, -1, 858 233, -1, 232, 233, -1, 234, -1, 5, -1, 7, 859 -1, 4, -1, 6, -1, 8, -1, 9, -1, 69, 860 -1, 71, -1, 16, -1, 21, -1, 20, -1, 18, 861 -1, 19, -1, 17, -1, 22, -1, 23, -1, 15, 862 -1, 25, -1, 26, -1, 27, -1, 24, -1, 237, 863 -1, 231, 237, -1, 236, 233, -1, 236, 233, 227, 864 -1, 236, 233, 237, -1, 238, -1, 226, 239, 226, 865 -1, 235, -1, 227, 235, -1, 238, 228, -1, 238, 866 235, -1, 28, 109, 276, 110, -1, 28, 109, 169, 867 110, -1, 78, 109, 276, 110, -1, 78, 109, 169, 868 110, -1, 241, -1, 231, 241, -1, 240, 233, -1, 869 240, 233, 227, -1, 244, -1, 227, 244, -1, 241, 870 228, -1, 243, -1, 231, 243, -1, 242, 233, -1, 871 242, 233, 227, -1, 74, -1, 227, 74, -1, 243, 872 228, -1, 245, -1, 256, -1, 247, 114, 248, 115, 873 -1, 247, 274, -1, -1, 247, 274, 246, 114, 248, 874 115, -1, 247, 109, 292, 110, 114, 248, 115, -1, 875 247, 285, -1, 31, 312, -1, 32, 312, -1, -1, 876 248, 249, -1, 250, 132, -1, 40, 250, 132, -1, 877 251, 132, -1, 40, 251, 132, -1, 366, -1, 366, 878 274, -1, 250, 116, 274, -1, 250, 116, -1, 225, 879 252, -1, 251, 116, 312, 252, -1, -1, 254, -1, 880 318, 253, -1, 331, 253, -1, 357, -1, -1, 254, 881 -1, 130, 163, -1, 30, 312, -1, 255, 114, 258, 882 372, 115, -1, 255, 274, -1, -1, 255, 274, 257, 883 114, 258, 372, 115, -1, 274, 259, -1, 258, 116, 884 274, 259, -1, -1, 131, 163, -1, -1, 261, -1, 885 263, -1, 262, -1, 262, 135, 116, 134, 263, -1, 886 263, 135, 116, 134, 96, -1, 262, 135, 116, 134, 887 96, -1, 267, -1, 263, 135, 116, 134, 267, -1, 888 262, 135, 116, 134, 267, -1, 262, 135, 116, 134, 889 263, 135, 116, 134, 267, -1, 268, -1, 263, 135, 890 116, 134, 268, -1, -1, 265, -1, 266, -1, 266, 891 135, 116, 134, 96, -1, 270, -1, 269, -1, 266, 892 135, 116, 134, 270, -1, 266, 135, 116, 134, 269, 893 -1, 269, -1, 362, 272, 373, -1, 370, 272, 373, 894 -1, 227, 370, 272, 373, -1, 217, -1, 270, -1, 895 362, -1, 370, -1, 227, 370, -1, 371, -1, 224, 896 336, 373, -1, 224, 340, 373, -1, 224, -1, 224, 897 351, -1, 139, -1, 271, 116, 139, -1, 137, -1, 898 74, -1, 75, -1, 138, -1, 74, -1, 75, -1, 899 139, -1, 74, -1, 75, -1, 366, -1, 225, -1, 900 225, 357, -1, 366, -1, 371, -1, 225, -1, 225, 901 345, -1, -1, 131, 278, -1, 107, 278, -1, 164, 902 -1, 114, 279, 372, 115, -1, -1, 278, -1, 280, 903 278, -1, 279, 116, 278, -1, 279, 116, 280, 278, 904 -1, 281, 130, -1, 274, 130, -1, 282, -1, 281, 905 282, -1, 113, 274, -1, 111, 134, 164, 135, 112, 906 -1, 111, 134, 310, 135, 112, -1, 111, 134, 163, 907 96, 163, 135, 112, -1, 113, 111, 134, 146, 135, 908 112, -1, 284, -1, 231, 284, -1, 283, 233, -1, 909 283, 233, 227, -1, 285, -1, 227, 285, -1, 284, 910 228, -1, 75, 109, 292, 110, -1, 287, 373, -1, 911 286, 116, 287, 373, -1, -1, 289, 274, 288, 290, 912 -1, 225, 336, -1, 33, -1, 35, -1, 34, -1, 913 -1, 290, 291, -1, 128, 274, 109, 292, 110, -1, 914 128, 114, 134, 298, 115, -1, 128, 109, 134, 286, 915 135, 110, 114, 134, 298, 115, 109, 292, 110, -1, 916 276, -1, 164, -1, 292, 116, 276, -1, 292, 116, 917 164, -1, 33, 294, -1, 232, 33, 294, -1, 293, 918 116, 294, -1, 295, 290, -1, 295, 290, 131, 276, 919 -1, 274, -1, 273, 109, 134, 286, 135, 110, -1, 920 36, 274, 109, 134, 286, 135, 110, 114, 115, -1, 921 -1, 36, 274, 109, 134, 286, 135, 110, 114, 297, 922 298, 115, -1, 299, -1, 298, 134, 299, -1, 300, 923 135, 132, -1, 301, 135, 132, -1, 215, -1, 217, 924 -1, 300, 135, 116, 134, 272, -1, 225, 309, -1, 925 301, 135, 116, 134, 309, -1, -1, 303, -1, 305, 926 -1, 303, 134, 305, -1, -1, 303, -1, 212, -1, 927 307, -1, 198, -1, -1, 5, 82, 306, 114, 304, 928 115, -1, 40, 305, -1, 308, -1, 323, 173, -1, 929 327, 134, 207, 173, -1, 216, 173, -1, 224, 323, 930 173, -1, 227, 323, 173, -1, 231, 323, 173, -1, 931 231, 227, 323, 173, -1, 224, 327, 134, 207, 173, 932 -1, 227, 327, 134, 207, 173, -1, 231, 327, 134, 933 207, 173, -1, 231, 227, 327, 134, 207, 173, -1, 934 318, -1, 331, -1, 323, -1, 163, 122, 163, -1, 935 -1, 64, 109, 141, 110, 312, -1, -1, 313, -1, 936 314, -1, 313, 314, -1, 39, 109, 109, 315, 110, 937 110, -1, 316, -1, 315, 116, 316, -1, -1, 317, 938 -1, 317, 109, 170, 110, -1, 272, -1, 234, -1, 939 235, -1, 228, -1, 319, 312, -1, 320, -1, 321, 940 312, -1, 322, 312, -1, 137, -1, 109, 319, 110, 941 -1, 149, 318, -1, 149, 227, 318, -1, 109, 320, 942 110, -1, 319, 349, -1, 109, 320, 110, 349, -1, 943 109, 321, 110, 350, -1, 109, 321, 110, -1, 109, 944 320, 110, 109, 134, 264, 135, 110, -1, 109, 322, 945 110, -1, 324, 312, -1, 325, -1, 326, 312, -1, 946 319, 109, 134, 264, 135, 110, -1, 109, 325, 110, 947 109, 134, 264, 135, 110, -1, 109, 324, 110, -1, 948 149, 323, -1, 149, 227, 323, -1, 109, 325, 110, 949 -1, 109, 325, 110, 349, -1, 109, 326, 110, 350, 950 -1, 109, 326, 110, -1, 328, -1, 329, -1, 330, 951 -1, 319, 109, 271, 110, -1, 109, 329, 110, 109, 952 271, 110, -1, 109, 328, 110, -1, 149, 327, -1, 953 149, 227, 327, -1, 109, 329, 110, -1, 109, 329, 954 110, 349, -1, 109, 330, 110, 350, -1, 109, 330, 955 110, -1, 332, 312, -1, 333, -1, 334, 312, -1, 956 335, 312, -1, 341, -1, 109, 332, 110, -1, 149, 957 331, -1, 149, 227, 331, -1, 109, 333, 110, -1, 958 332, 349, -1, 109, 333, 110, 349, -1, 109, 334, 959 110, 350, -1, 109, 334, 110, -1, 332, 109, 134, 960 264, 135, 110, -1, 109, 333, 110, 109, 134, 264, 961 135, 110, -1, 109, 335, 110, -1, 319, 312, -1, 962 337, -1, 338, 312, -1, 339, 312, -1, 149, 336, 963 -1, 149, 227, 336, -1, 109, 337, 110, -1, 319, 964 355, -1, 109, 337, 110, 349, -1, 109, 338, 110, 965 350, -1, 109, 338, 110, -1, 319, 109, 134, 264, 966 135, 110, -1, 109, 337, 110, 109, 134, 264, 135, 967 110, -1, 109, 339, 110, -1, 341, 312, -1, 342, 968 -1, 343, 312, -1, 344, 312, -1, 74, -1, 75, 969 -1, 149, 340, -1, 149, 227, 340, -1, 109, 342, 970 110, -1, 341, 355, -1, 109, 342, 110, 355, -1, 971 341, 109, 134, 264, 135, 110, -1, 109, 342, 110, 972 109, 134, 264, 135, 110, -1, 346, -1, 347, 312, 973 -1, 348, 312, -1, 149, -1, 149, 227, -1, 149, 974 345, -1, 149, 227, 345, -1, 109, 346, 110, -1, 975 349, -1, 109, 346, 110, 349, -1, 109, 347, 110, 976 350, -1, 109, 347, 110, -1, 109, 134, 264, 135, 977 110, -1, 109, 346, 110, 109, 134, 264, 135, 110, 978 -1, 109, 348, 110, -1, 111, 112, -1, 111, 112, 979 350, -1, 350, -1, 111, 134, 164, 135, 112, -1, 980 111, 134, 117, 135, 112, -1, 350, 111, 134, 164, 981 135, 112, -1, 350, 111, 134, 117, 135, 112, -1, 982 352, -1, 353, 312, -1, 354, 312, -1, 149, -1, 983 149, 227, -1, 149, 351, -1, 149, 227, 351, -1, 984 109, 352, 110, -1, 355, -1, 109, 352, 110, 355, 985 -1, 109, 353, 110, 350, -1, 109, 353, 110, -1, 986 109, 134, 264, 135, 110, -1, 109, 352, 110, 109, 987 134, 264, 135, 110, -1, 109, 354, 110, -1, 356, 988 -1, 356, 350, -1, 350, -1, 111, 112, -1, 111, 989 134, 227, 117, 135, 112, -1, 111, 134, 227, 135, 990 112, -1, 111, 134, 227, 164, 135, 112, -1, 111, 991 134, 7, 226, 164, 135, 112, -1, 111, 134, 227, 992 7, 164, 135, 112, -1, 358, -1, 359, 312, -1, 993 360, 312, -1, 149, -1, 149, 227, -1, 149, 357, 994 -1, 149, 227, 357, -1, 109, 358, 110, -1, 349, 995 -1, 109, 358, 110, 349, -1, 109, 359, 110, 350, 996 -1, 109, 359, 110, -1, 109, 358, 110, 109, 134, 997 264, 135, 110, -1, 109, 360, 110, -1, 362, -1, 998 370, -1, 227, 370, -1, 363, -1, 364, -1, 149, 999 225, -1, 227, 149, 225, -1, 149, 371, -1, 227, 1000 149, 371, -1, 149, 361, -1, 227, 149, 361, -1, 1001 111, 112, 225, -1, 365, 225, -1, 111, 112, 350, 1002 225, -1, 365, 350, 225, -1, 350, 225, -1, 111, 1003 112, 363, -1, 365, 363, -1, 111, 112, 350, 363, 1004 -1, 365, 350, 363, -1, 350, 363, -1, 111, 134, 1005 227, 117, 135, 112, -1, 111, 134, 227, 164, 135, 1006 112, -1, 111, 134, 231, 164, 135, 112, -1, 111, 1007 134, 231, 227, 164, 135, 112, -1, 370, -1, 227, 1008 370, -1, 367, -1, 368, -1, 369, -1, 149, 225, 1009 -1, 227, 149, 225, -1, 149, 371, -1, 227, 149, 1010 371, -1, 149, 366, -1, 227, 149, 366, -1, 111, 1011 112, 225, -1, 111, 112, 350, 225, -1, 350, 225, 1012 -1, 111, 112, 368, -1, 111, 112, 350, 368, -1, 1013 350, 368, -1, 111, 134, 263, 135, 112, -1, 111, 1014 112, 109, 260, 110, -1, 370, 109, 134, 260, 135, 1015 110, -1, 218, 109, 134, 260, 135, 110, -1, -1, 1016 116, -1, -1, 131, 164, -1 1017 }; 1018 1019 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 684 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 1020 685 static const yytype_uint16 yyrline[] = 1021 686 { … … 1051 716 1258, 1263, 1264, 1273, 1274, 1279, 1280, 1285, 1287, 1289, 1052 717 1291, 1293, 1296, 1295, 1307, 1308, 1310, 1320, 1321, 1326, 1053 1330, 1332, 1334, 1336, 1338, 1340, 1342, 1344, 1349, 1351, 1054 1353, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 1371, 1055 1373, 1379, 1380, 1382, 1384, 1386, 1391, 1392, 1398, 1399, 1056 1401, 1403, 1408, 1410, 1412, 1414, 1419, 1420, 1422, 1424, 1057 1429, 1430, 1432, 1437, 1438, 1440, 1442, 1447, 1449, 1451, 1058 1456, 1457, 1461, 1463, 1469, 1468, 1472, 1474, 1479, 1481, 1059 1487, 1488, 1493, 1494, 1496, 1497, 1506, 1507, 1509, 1511, 1060 1516, 1518, 1524, 1525, 1527, 1530, 1533, 1538, 1539, 1544, 1061 1549, 1553, 1555, 1561, 1560, 1567, 1569, 1575, 1576, 1584, 1062 1585, 1589, 1590, 1591, 1593, 1595, 1602, 1603, 1605, 1607, 1063 1612, 1613, 1619, 1620, 1624, 1625, 1630, 1631, 1632, 1634, 1064 1642, 1643, 1645, 1648, 1650, 1654, 1655, 1656, 1658, 1660, 1065 1664, 1669, 1677, 1678, 1687, 1689, 1694, 1695, 1696, 1700, 1066 1701, 1702, 1706, 1707, 1708, 1712, 1713, 1714, 1719, 1720, 1067 1721, 1722, 1728, 1729, 1731, 1736, 1737, 1742, 1743, 1744, 1068 1745, 1746, 1761, 1762, 1767, 1768, 1774, 1776, 1779, 1781, 1069 1783, 1806, 1807, 1809, 1811, 1816, 1817, 1819, 1824, 1829, 1070 1830, 1836, 1835, 1839, 1843, 1845, 1847, 1853, 1854, 1859, 1071 1864, 1866, 1871, 1873, 1874, 1876, 1881, 1883, 1885, 1890, 1072 1892, 1897, 1902, 1910, 1916, 1915, 1929, 1930, 1935, 1936, 1073 1940, 1945, 1950, 1958, 1963, 1974, 1975, 1986, 1987, 1993, 1074 1994, 1998, 1999, 2000, 2003, 2002, 2013, 2022, 2028, 2034, 1075 2043, 2049, 2055, 2061, 2067, 2075, 2081, 2089, 2095, 2104, 1076 2105, 2106, 2110, 2114, 2116, 2121, 2122, 2126, 2127, 2132, 1077 2138, 2139, 2142, 2144, 2145, 2149, 2150, 2151, 2152, 2186, 1078 2188, 2189, 2191, 2196, 2201, 2206, 2208, 2210, 2215, 2217, 1079 2219, 2221, 2226, 2228, 2237, 2239, 2240, 2245, 2247, 2249, 1080 2254, 2256, 2258, 2263, 2265, 2267, 2276, 2277, 2278, 2282, 1081 2284, 2286, 2291, 2293, 2295, 2300, 2302, 2304, 2319, 2321, 1082 2322, 2324, 2329, 2330, 2335, 2337, 2339, 2344, 2346, 2348, 1083 2350, 2355, 2357, 2359, 2369, 2371, 2372, 2374, 2379, 2381, 1084 2383, 2388, 2390, 2392, 2394, 2399, 2401, 2403, 2434, 2436, 1085 2437, 2439, 2444, 2449, 2457, 2459, 2461, 2466, 2468, 2473, 1086 2475, 2489, 2490, 2492, 2497, 2499, 2501, 2503, 2505, 2510, 1087 2511, 2513, 2515, 2520, 2522, 2524, 2530, 2532, 2534, 2538, 1088 2540, 2542, 2544, 2558, 2559, 2561, 2566, 2568, 2570, 2572, 1089 2574, 2579, 2580, 2582, 2584, 2589, 2591, 2593, 2599, 2600, 1090 2602, 2611, 2614, 2616, 2619, 2621, 2623, 2636, 2637, 2639, 1091 2644, 2646, 2648, 2650, 2652, 2657, 2658, 2660, 2662, 2667, 1092 2669, 2677, 2678, 2679, 2684, 2685, 2689, 2691, 2693, 2695, 1093 2697, 2699, 2706, 2708, 2710, 2712, 2714, 2716, 2718, 2720, 1094 2722, 2724, 2729, 2731, 2733, 2738, 2764, 2765, 2767, 2771, 1095 2772, 2776, 2778, 2780, 2782, 2784, 2786, 2793, 2795, 2797, 1096 2799, 2801, 2803, 2808, 2813, 2815, 2817, 2835, 2837, 2842, 1097 2843 718 1328, 1330, 1332, 1334, 1336, 1338, 1340, 1345, 1347, 1349, 719 1351, 1353, 1355, 1357, 1359, 1361, 1363, 1365, 1367, 1369, 720 1375, 1376, 1378, 1380, 1382, 1387, 1388, 1394, 1395, 1397, 721 1399, 1404, 1406, 1408, 1410, 1415, 1416, 1418, 1420, 1425, 722 1426, 1428, 1433, 1434, 1436, 1438, 1443, 1445, 1447, 1452, 723 1453, 1457, 1459, 1465, 1464, 1468, 1470, 1475, 1477, 1483, 724 1484, 1489, 1490, 1492, 1493, 1502, 1503, 1505, 1507, 1512, 725 1514, 1520, 1521, 1523, 1526, 1529, 1534, 1535, 1540, 1545, 726 1549, 1551, 1557, 1556, 1563, 1565, 1571, 1572, 1580, 1581, 727 1585, 1586, 1587, 1589, 1591, 1598, 1599, 1601, 1603, 1608, 728 1609, 1615, 1616, 1620, 1621, 1626, 1627, 1628, 1630, 1638, 729 1639, 1641, 1644, 1646, 1650, 1651, 1652, 1654, 1656, 1660, 730 1665, 1673, 1674, 1683, 1685, 1690, 1691, 1692, 1696, 1697, 731 1698, 1702, 1703, 1704, 1708, 1709, 1710, 1715, 1716, 1717, 732 1718, 1724, 1725, 1727, 1732, 1733, 1738, 1739, 1740, 1741, 733 1742, 1757, 1758, 1763, 1764, 1770, 1772, 1775, 1777, 1779, 734 1802, 1803, 1805, 1807, 1812, 1813, 1815, 1820, 1825, 1826, 735 1832, 1831, 1835, 1839, 1841, 1843, 1849, 1850, 1855, 1860, 736 1862, 1867, 1869, 1870, 1872, 1877, 1879, 1881, 1886, 1888, 737 1893, 1898, 1906, 1912, 1911, 1925, 1926, 1931, 1932, 1936, 738 1941, 1946, 1954, 1959, 1970, 1971, 1976, 1977, 1983, 1984, 739 1988, 1989, 1990, 1993, 1992, 2003, 2012, 2018, 2024, 2033, 740 2039, 2045, 2051, 2057, 2065, 2071, 2079, 2085, 2094, 2095, 741 2096, 2100, 2104, 2106, 2111, 2112, 2116, 2117, 2122, 2128, 742 2129, 2132, 2134, 2135, 2139, 2140, 2141, 2142, 2176, 2178, 743 2179, 2181, 2186, 2191, 2196, 2198, 2200, 2205, 2207, 2209, 744 2211, 2216, 2218, 2227, 2229, 2230, 2235, 2237, 2239, 2244, 745 2246, 2248, 2253, 2255, 2257, 2266, 2267, 2268, 2272, 2274, 746 2276, 2281, 2283, 2285, 2290, 2292, 2294, 2309, 2311, 2312, 747 2314, 2319, 2320, 2325, 2327, 2329, 2334, 2336, 2338, 2340, 748 2345, 2347, 2349, 2359, 2361, 2362, 2364, 2369, 2371, 2373, 749 2378, 2380, 2382, 2384, 2389, 2391, 2393, 2424, 2426, 2427, 750 2429, 2434, 2439, 2447, 2449, 2451, 2456, 2458, 2463, 2465, 751 2479, 2480, 2482, 2487, 2489, 2491, 2493, 2495, 2500, 2501, 752 2503, 2505, 2510, 2512, 2514, 2520, 2522, 2524, 2528, 2530, 753 2532, 2534, 2548, 2549, 2551, 2556, 2558, 2560, 2562, 2564, 754 2569, 2570, 2572, 2574, 2579, 2581, 2583, 2589, 2590, 2592, 755 2601, 2604, 2606, 2609, 2611, 2613, 2626, 2627, 2629, 2634, 756 2636, 2638, 2640, 2642, 2647, 2648, 2650, 2652, 2657, 2659, 757 2667, 2668, 2669, 2674, 2675, 2679, 2681, 2683, 2685, 2687, 758 2689, 2696, 2698, 2700, 2702, 2704, 2706, 2708, 2710, 2712, 759 2714, 2719, 2721, 2723, 2728, 2754, 2755, 2757, 2761, 2762, 760 2766, 2768, 2770, 2772, 2774, 2776, 2783, 2785, 2787, 2789, 761 2791, 2793, 2798, 2803, 2805, 2807, 2825, 2827, 2832, 2833 1098 762 }; 1099 763 #endif 1100 764 1101 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE765 #if YYDEBUG || YYERROR_VERBOSE || 0 1102 766 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1103 767 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ … … 1156 820 "type_qualifier_list", "type_qualifier", "type_qualifier_name", "$@1", 1157 821 "declaration_qualifier_list", "storage_class_list", "storage_class", 1158 "storage_class_name", "basic_type_name", "basic_declaration_specifier", 1159 "basic_type_specifier", "direct_type_name", "indirect_type_name", 1160 "sue_declaration_specifier", "sue_type_specifier", 1161 "typedef_declaration_specifier", "typedef_type_specifier", 1162 "elaborated_type_name", "aggregate_name", "$@2", "aggregate_key", 1163 "field_declaration_list", "field_declaration", 822 "basic_type_name", "basic_declaration_specifier", "basic_type_specifier", 823 "direct_type_name", "indirect_type_name", "sue_declaration_specifier", 824 "sue_type_specifier", "typedef_declaration_specifier", 825 "typedef_type_specifier", "elaborated_type_name", "aggregate_name", 826 "$@2", "aggregate_key", "field_declaration_list", "field_declaration", 1164 827 "new_field_declaring_list", "field_declaring_list", "field_declarator", 1165 828 "bit_subrange_size_opt", "bit_subrange_size", "enum_key", "enum_name", … … 1208 871 "new_abstract_declarator_no_tuple", "new_abstract_ptr", 1209 872 "new_abstract_array", "new_abstract_tuple", "new_abstract_function", 1210 "comma_opt", "assignment_opt", 0873 "comma_opt", "assignment_opt", YY_NULLPTR 1211 874 }; 1212 875 #endif 1213 876 1214 877 # ifdef YYPRINT 1215 /* YYTOKNUM[ YYLEX-NUM] -- Internal token number corresponding to1216 token YYLEX-NUM. */878 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 879 (internal) symbol number NUM (which must be that of a token). */ 1217 880 static const yytype_uint16 yytoknum[] = 1218 881 { … … 1234 897 # endif 1235 898 1236 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 899 #define YYPACT_NINF -1317 900 901 #define yypact_value_is_default(Yystate) \ 902 (!!((Yystate) == (-1317))) 903 904 #define YYTABLE_NINF -520 905 906 #define yytable_value_is_error(Yytable_value) \ 907 0 908 909 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 910 STATE-NUM. */ 911 static const yytype_int16 yypact[] = 912 { 913 7252, 8635, -1317, -3, -1317, -1317, -1317, -1317, -1317, -1317, 914 -1317, 23, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 915 -1317, -1317, -1317, -1317, -1317, -1317, 81, 81, 81, 1277, 916 970, 104, 7368, 277, -1317, -1317, -1317, -1317, -1317, 201, 917 -1317, -1317, -1317, 1047, 187, -1317, -1317, -1317, -1317, 5370, 918 -1317, -1317, -1317, -1317, 35, 48, -1317, 1328, -1317, -1317, 919 -1317, -1317, 235, 1663, 343, 98, 7484, -1317, -1317, 6174, 920 1066, -1317, -1317, 536, 376, 5540, 978, 1631, 536, 1775, 921 -1317, -1317, 477, 683, -1317, 536, 1892, -1317, 295, -1317, 922 422, 489, -1317, -1317, -1317, -1317, 346, 48, 81, -1317, 923 81, -1317, -1317, -1317, -1317, 9392, 1328, -1317, -1317, 1328, 924 -1317, 321, -1317, 9431, -1317, -1317, 2250, 9501, -1317, 668, 925 668, 668, -1317, -1317, -1317, 81, -1317, -1317, -1317, 373, 926 399, 410, -1317, -1317, -1317, 420, -1317, -1317, -1317, -1317, 927 -1317, 428, 450, -1317, -1317, 59, 8604, 2904, 144, 440, 928 493, 498, 531, 544, 560, 8522, 6772, 510, 580, -1317, 929 9114, -1317, -1317, -1317, -1317, 584, -1317, 153, 4280, 4280, 930 -1317, 570, 283, -1317, -1317, -1317, -1317, 596, 288, 303, 931 332, 81, 583, -1317, -1317, 1663, 2232, 648, -1317, 73, 932 -1317, 81, 81, 48, -1317, -1317, 80, -1317, 81, 81, 933 -1317, 3694, 599, 613, 668, 6565, -1317, -1317, 661, 5370, 934 -1317, -1317, 536, -1317, -1317, -1317, 48, -1317, 1328, 35, 935 -1317, 7675, -1317, 668, 668, 668, 48, -1317, 1277, -1317, 936 5446, -1317, -1317, 620, 668, -1317, 668, -1317, 201, 8604, 937 -1317, 673, -1317, 970, 692, 668, -1317, 1277, 697, 707, 938 -1317, 7368, 576, -1317, -1317, -1317, 4822, -1317, -1317, 9720, 939 -1317, 648, 165, 10347, 9501, 2250, 3694, -1317, 109, -1317, 940 -1317, 9431, 1328, 743, 7515, -1317, -1317, 306, -1317, 10675, 941 770, 800, 2676, 801, 10480, 10499, -1317, 813, -1317, -1317, 942 -1317, -1317, 10556, 10556, 8378, 795, -1317, -1317, -1317, -1317, 943 -1317, -1317, 842, -1317, 685, 1919, 8717, 10480, -1317, 652, 944 325, 507, 317, 581, 826, 820, 823, 861, 111, -1317, 945 -1317, 827, 703, -1317, 452, -1317, -1317, 2904, -1317, -1317, 946 278, 856, -1317, 636, 856, 866, 201, -1317, -1317, 872, 947 9392, -1317, 876, 887, 8830, -1317, -1317, 1020, 2049, 8093, 948 6565, 536, -1317, 536, 668, 668, -1317, -1317, -1317, -1317, 949 -1317, -1317, 668, 9392, 1328, -1317, -1317, 9540, 1233, -1317, 950 7824, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 891, 4627, 951 10480, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 952 -1317, -1317, -1317, -1317, -1317, 2250, -1317, 552, 901, 904, 953 912, 862, 920, 922, 924, 2232, -1317, -1317, 932, 35, 954 936, -1317, -1317, 939, -1317, -1317, -1317, 4822, -1317, -1317, 955 -1317, -1317, -1317, 3694, -1317, 8604, 8604, -1317, 668, 2250, 956 6684, 1328, 8166, -1317, -1317, -1317, -1317, 4822, 165, -1317, 957 -1317, 536, 48, -1317, -1317, 4822, -1317, 6449, -1317, -1317, 958 668, 668, 484, 8011, 938, 941, 931, 952, 668, -1317, 959 -1317, -1317, -1317, 9797, -1317, 578, 6327, -1317, 48, 955, 960 -1317, 2250, 10757, 10404, -1317, -1317, -1317, -1317, 881, 3694, 961 -1317, 8239, 648, 3545, -1317, -1317, -1317, 1641, 586, 827, 962 970, 7515, 592, 9431, -1317, 7515, -1317, -1317, -1317, -1317, 963 603, -1317, 967, 800, 215, 8378, -1317, 9570, -1317, -1317, 964 8378, -1317, 8491, 8378, -1317, -1317, 966, -1317, 617, 973, 965 839, 983, -1317, -1317, 9253, 6415, -1317, 247, -1317, -1317, 966 10347, -1317, 330, 10347, -1317, -1317, -1317, -1317, -1317, -1317, 967 -1317, -1317, -1317, -1317, -1317, 10347, -1317, -1317, 10480, 10480, 968 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 10480, 969 10480, 10480, 10480, 10480, 10480, 10480, 4526, 10347, -1317, 703, 970 751, -1317, -1317, 81, 81, -1317, -1317, 8604, -1317, -1317, 971 939, 576, -1317, 939, 10423, -1317, -1317, -1317, 8975, 6415, 972 968, 976, -1317, 9501, -1317, -1317, 584, -1317, 990, 769, 973 999, 3014, 124, 827, -1317, 81, 81, 827, 125, -1317, 974 81, 81, 939, -1317, -1317, 81, 81, -1317, 856, 9652, 975 1328, 10902, 151, 358, 9652, -1317, 9720, -1317, 827, -1317, 976 9392, -1317, 147, 7790, 7790, 7790, 1328, -1317, 5708, 982, 977 891, 1167, 995, 996, -1317, 1011, 4280, 230, -1317, 1103, 978 1328, 7790, 576, 2250, 576, 648, 671, 856, -1317, -1317, 979 694, 856, -1317, -1317, -1317, 800, -1317, 856, 48, 9797, 980 -1317, 621, 1024, 640, 1026, -1317, 1030, 48, -1317, -1317, 981 4822, 48, 1032, 9570, 1037, -1317, 1585, -1317, 335, 390, 982 970, -1317, 970, 1023, 10480, -1317, 970, 10902, -1317, -1317, 983 1034, -1317, -1317, -1317, 576, -1317, 10830, 887, -1317, 7790, 984 859, 8093, -1317, -1317, 584, 1025, 1036, 1641, 3247, -1317, 985 -1317, 7515, -1317, -1317, 1039, -1317, -1317, 1043, -1317, 1039, 986 1048, 10675, 10347, 67, 1027, 133, 1053, 1061, 1068, 1069, 987 -1317, 1072, 1074, 9362, 6534, -1317, 10347, -1317, 839, 2140, 988 -1317, -1317, -1317, 81, 81, 10290, 10347, 1070, -1317, -1317, 989 675, -1317, 10347, -1317, -1317, 644, -1317, -1317, -1317, -1317, 990 652, 652, 325, 325, 507, 507, 507, 507, 317, 317, 991 581, 826, 820, 823, 861, 10480, 333, -1317, 9797, 1079, 992 1080, 1081, 751, -1317, -1317, -1317, -1317, -1317, 9797, 700, 993 7790, -1317, 9392, -1317, 6891, 8943, -1317, 7824, 6772, -1317, 994 -1317, 769, 9797, 917, 1082, 1083, 1084, 1087, 1088, 1089, 995 1091, -1317, 4955, 3014, -1317, -1317, -1317, -1317, -1317, -1317, 996 -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 997 -1317, 939, -1317, -1317, -1317, 827, -1317, -1317, -1317, -1317, 998 -1317, -1317, -1317, -1317, 1098, -1317, 1099, 1101, -1317, -1317, 999 35, 1070, 5708, -1317, -1317, -1317, 4627, 1102, -1317, -1317, 1000 -1317, -1317, 970, 5944, 1191, -1317, -1317, -1317, -1317, 1094, 1001 35, -1317, -1317, 939, -1317, -1317, 939, 24, 939, -1317, 1002 -1317, -1317, -1317, -1317, -1317, 9223, -1317, 48, -1317, -1317, 1003 432, 441, 9540, 7010, 2348, 10480, 3377, -1317, -1317, 1092, 1004 94, 1092, -1317, 970, -1317, 81, -1317, -1317, 8748, 931, 1005 -1317, -1317, -1317, 941, 1116, 1111, -1317, -1317, 1118, 1119, 1006 -1317, 859, 2430, -1317, 455, -1317, 3247, 827, -1317, 1122, 1007 7515, 9682, 8604, 1125, -1317, -1317, 1130, 1135, 1124, -1317, 1008 10480, 166, 222, 1132, -1317, 1138, 576, 1138, -1317, -1317, 1009 1138, 1137, -1317, 1145, 1147, 1148, 2140, -1317, -1317, -1317, 1010 4627, -1317, -1317, -1317, -1317, 1143, 10347, 1149, 576, -1317, 1011 10347, -1317, 576, -1317, -1317, 10347, -1317, 721, 856, -1317, 1012 -1317, -1317, -1317, -1317, -1317, -1317, 891, 887, 8830, -1317, 1013 -1317, 7129, 1152, -1317, 731, 856, -1317, 745, 763, 856, 1014 -1317, 668, 5561, -1317, -1317, -1317, 9797, 9797, -1317, 8166, 1015 8166, -1317, 1154, 1156, 1153, 1155, -1317, 1168, 460, 196, 1016 1070, -1317, 576, -1317, 4280, -1317, 10347, 474, -1317, 6296, 1017 1159, 1170, 10233, 1172, 1175, -14, 3, 11, 10347, 1179, 1018 48, 10347, 10347, 1160, 1177, 282, 1161, -1317, -1317, -1317, 1019 1180, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1020 970, 1184, 10347, -1317, 9797, 9797, 81, 1188, -1317, 8861, 1021 -1317, -1317, 809, -1317, 3377, -1317, -1317, -1317, -1317, 1585, 1022 -1317, -1317, 1185, -1317, -1317, -1317, -1317, 1193, 2430, -1317, 1023 -1317, 1176, -1317, 1039, -1317, -1317, 2250, 1196, -1317, -1317, 1024 -1317, 709, 1198, -1317, 133, 1202, 10480, 1186, 133, 133, 1025 1211, 9253, 789, 856, -1317, -1317, 1011, 10347, 1214, 1143, 1026 505, 224, 1217, -1317, -1317, 1218, 1217, -1317, -1317, 1226, 1027 -1317, -1317, 939, 1228, 1230, 6653, 1231, 1232, 1243, -1317, 1028 -1317, 1246, -1317, -1317, 939, -1317, -1317, -1317, -1317, 939, 1029 10347, 10347, 887, 1245, -1317, -1317, -1317, -1317, -1317, -1317, 1030 -1317, -1317, -1317, -1317, -1317, -1317, 10480, 10480, 1247, 1251, 1031 1217, -1317, -1317, 970, -1317, -1317, -1317, 4468, 9682, 10347, 1032 10347, 1311, 10347, -1317, 1234, -1317, 1237, -1317, 1239, 10347, 1033 1241, 10347, 1049, 1244, 26, 81, 9084, 750, -1317, -1317, 1034 5944, 1267, 481, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1035 -1317, -1317, 10053, -1317, 8239, 1274, -1317, -1317, 9682, 482, 1036 512, -1317, 1272, 1259, 800, 1280, -1317, 245, -1317, -1317, 1037 -1317, -1317, 939, 1279, -1317, -1317, 1287, 385, 444, 576, 1038 1293, -1317, 1294, -1317, 9797, -1317, -1317, -1317, -1317, -1317, 1039 1295, -1317, 9797, 9797, 9797, -1317, -1317, 1297, -1317, 1298, 1040 1282, 1305, 511, 7863, 7978, -1317, -1317, 348, -1317, 1304, 1041 1310, -1317, 8312, 712, 734, 1308, 739, 6143, -1317, -1317, 1042 -1317, 515, -1317, 765, 1318, 1320, 48, 1371, 879, -1317, 1043 -1317, 10347, -1317, 10233, 10347, -1317, -1317, -1317, 1322, 1329, 1044 -1317, -1317, -1317, 1324, -1317, -1317, -1317, -1317, -1317, -1317, 1045 9682, 800, 265, -1317, 1309, 800, 9797, -1317, -1317, -1317, 1046 -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1047 -1317, 1330, 1331, -1317, -1317, -1317, -1317, -1317, -1317, -1317, 1048 1334, -1317, 1333, -1317, -1317, 10233, 143, 10347, 10233, -1317, 1049 1338, 10347, -1317, 259, 1354, 1356, -1317, -1317, 1346, 1347, 1050 1326, -1317, 880, -1317, -1317, -1317, 1328, 2250, 1345, 842, 1051 364, 10480, -1317, 774, -1317, 576, 576, 1352, 1355, 1357, 1052 1360, -1317, -1317, 8166, 1358, -1317, 1436, 10480, 1349, -1317, 1053 -1317, 10145, -1317, 783, -1317, 1350, 10233, 1359, -1317, -1317, 1054 1378, -1317, 1379, -1317, 1394, 1396, -1317, 1361, 9682, -1317, 1055 -1317, -1317, 800, 576, 1386, 1367, 1392, 1217, 1217, -1317, 1056 -1317, -1317, -1317, -1317, 10233, 275, -1317, 384, -1317, -1317, 1057 7600, -1317, -1317, 1375, 10347, -1317, 10347, 7600, 48, 9570, 1058 48, 9570, 1393, -1317, 1398, -1317, -1317, 1395, 842, -1317, 1059 798, -1317, -1317, -1317, 1399, 1401, -1317, 10480, 10480, -1317, 1060 -1317, 964, 167, -1317, -1317, 1388, -1317, 964, -1317, -1317, 1061 2461, 576, -1317, -1317, 48, 9570, 48, 9570, 1409, 1390, 1062 576, -1317, -1317, -1317, -1317, 10145, 1410, 964, 5861, 10347, 1063 10057, 1412, 964, 1414, 2461, 3613, -1317, -1317, -1317, 1420, 1064 -1317, -1317, -1317, -1317, 8604, -1317, -1317, -1317, 9924, -1317, 1065 10145, -1317, -1317, 1402, 9836, -1317, -1317, 10057, 48, 3613, 1066 48, 1421, 1429, 817, -1317, 9924, -1317, -1317, -1317, 9836, 1067 -1317, -1317, -1317, 48, 48, -1317, -1317, -1317, -1317, -1317, 1068 -1317, -1317, -1317 1069 }; 1070 1071 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1072 Performed when YYTABLE does not specify something else to do. Zero 1073 means the default is an error. */ 1074 static const yytype_uint16 yydefact[] = 1075 { 1076 291, 291, 311, 309, 312, 310, 313, 314, 297, 299, 1077 298, 0, 300, 325, 317, 322, 320, 321, 319, 318, 1078 323, 324, 329, 326, 327, 328, 544, 544, 544, 0, 1079 0, 0, 291, 217, 301, 315, 316, 7, 356, 0, 1080 8, 14, 15, 0, 2, 60, 61, 562, 9, 291, 1081 522, 520, 244, 3, 451, 3, 257, 0, 3, 3, 1082 3, 245, 3, 0, 0, 0, 292, 293, 295, 291, 1083 304, 307, 337, 283, 330, 335, 284, 345, 285, 352, 1084 349, 359, 0, 0, 360, 286, 470, 474, 3, 3, 1085 0, 2, 516, 521, 526, 296, 0, 0, 544, 574, 1086 544, 2, 585, 586, 587, 291, 0, 728, 729, 0, 1087 12, 0, 13, 291, 267, 268, 0, 292, 287, 288, 1088 289, 290, 523, 302, 389, 545, 546, 367, 368, 12, 1089 442, 443, 11, 438, 441, 0, 500, 495, 486, 442, 1090 443, 0, 0, 525, 218, 0, 291, 0, 0, 0, 1091 0, 0, 0, 0, 0, 291, 291, 2, 0, 730, 1092 292, 579, 591, 734, 727, 725, 732, 0, 0, 0, 1093 251, 2, 0, 529, 436, 437, 435, 0, 0, 0, 1094 0, 544, 0, 631, 632, 0, 0, 542, 538, 544, 1095 559, 544, 544, 540, 2, 539, 544, 598, 544, 544, 1096 601, 0, 0, 0, 291, 291, 309, 357, 2, 291, 1097 258, 294, 305, 338, 350, 475, 0, 2, 0, 451, 1098 259, 292, 331, 346, 353, 471, 0, 2, 0, 308, 1099 332, 339, 340, 0, 347, 351, 354, 358, 443, 291, 1100 369, 362, 366, 0, 391, 472, 476, 0, 0, 0, 1101 1, 291, 2, 527, 573, 575, 291, 2, 738, 292, 1102 741, 542, 542, 0, 292, 0, 0, 270, 544, 540, 1103 2, 291, 0, 0, 291, 547, 2, 498, 2, 551, 1104 0, 0, 0, 0, 0, 0, 18, 57, 4, 5, 1105 6, 16, 0, 0, 291, 2, 62, 63, 64, 65, 1106 45, 19, 46, 22, 44, 66, 291, 0, 69, 73, 1107 76, 79, 84, 87, 89, 91, 93, 95, 97, 102, 1108 492, 748, 449, 491, 0, 447, 448, 0, 563, 578, 1109 581, 584, 590, 593, 596, 356, 0, 2, 736, 0, 1110 291, 739, 2, 60, 291, 3, 423, 0, 431, 292, 1111 291, 304, 330, 284, 345, 352, 3, 3, 405, 409, 1112 419, 424, 470, 291, 425, 703, 704, 291, 426, 428, 1113 291, 2, 580, 592, 726, 2, 2, 246, 2, 456, 1114 0, 454, 453, 452, 138, 2, 2, 248, 2, 2, 1115 247, 2, 278, 2, 279, 0, 277, 0, 0, 0, 1116 0, 0, 0, 0, 0, 0, 564, 603, 0, 451, 1117 2, 558, 567, 657, 560, 561, 530, 291, 2, 597, 1118 606, 599, 600, 0, 273, 291, 291, 336, 292, 0, 1119 292, 0, 291, 731, 735, 733, 531, 291, 542, 252, 1120 260, 306, 0, 2, 532, 291, 496, 333, 334, 280, 1121 348, 355, 0, 291, 0, 746, 396, 0, 473, 497, 1122 249, 250, 517, 291, 433, 0, 291, 234, 0, 2, 1123 236, 0, 292, 0, 254, 2, 255, 275, 0, 0, 1124 2, 291, 542, 291, 483, 485, 484, 0, 0, 748, 1125 0, 291, 0, 291, 487, 291, 557, 555, 556, 554, 1126 0, 549, 552, 0, 0, 291, 52, 291, 66, 47, 1127 291, 54, 291, 291, 50, 51, 2, 124, 0, 0, 1128 445, 0, 444, 725, 118, 291, 17, 0, 29, 30, 1129 35, 2, 0, 35, 108, 109, 110, 111, 112, 113, 1130 114, 115, 116, 117, 107, 0, 48, 49, 0, 0, 1131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 1133 643, 450, 640, 544, 544, 648, 477, 291, 2, 582, 1134 583, 0, 594, 595, 0, 2, 737, 740, 118, 291, 1135 0, 2, 705, 292, 709, 700, 701, 707, 0, 2, 1136 2, 665, 544, 748, 614, 544, 544, 748, 544, 628, 1137 544, 544, 679, 432, 662, 544, 544, 670, 677, 291, 1138 427, 292, 0, 0, 291, 715, 292, 720, 748, 712, 1139 291, 717, 748, 291, 291, 291, 0, 118, 0, 18, 1140 2, 0, 19, 0, 457, 746, 0, 0, 463, 238, 1141 0, 291, 0, 0, 0, 542, 566, 570, 572, 602, 1142 605, 609, 612, 565, 604, 0, 281, 655, 0, 291, 1143 274, 0, 0, 0, 0, 272, 2, 0, 256, 533, 1144 291, 0, 0, 291, 2, 361, 381, 370, 0, 0, 1145 375, 369, 747, 0, 0, 394, 0, 292, 3, 412, 1146 3, 416, 415, 588, 0, 528, 291, 60, 3, 291, 1147 431, 292, 3, 425, 426, 2, 0, 0, 0, 482, 1148 303, 291, 478, 480, 3, 2, 2, 0, 499, 3, 1149 0, 551, 126, 0, 0, 219, 0, 0, 0, 0, 1150 36, 0, 0, 118, 291, 20, 0, 21, 0, 689, 1151 694, 446, 686, 544, 544, 0, 105, 3, 2, 27, 1152 0, 33, 0, 2, 25, 0, 103, 70, 71, 72, 1153 74, 75, 77, 78, 82, 83, 80, 81, 85, 86, 1154 88, 90, 92, 94, 96, 0, 0, 749, 291, 0, 1155 0, 0, 644, 645, 641, 642, 494, 493, 291, 0, 1156 291, 711, 291, 716, 292, 291, 659, 291, 291, 702, 1157 658, 2, 291, 0, 0, 0, 0, 0, 0, 0, 1158 0, 680, 0, 666, 617, 633, 667, 2, 613, 620, 1159 429, 615, 616, 430, 2, 627, 636, 629, 630, 663, 1160 664, 678, 706, 710, 708, 748, 265, 2, 742, 2, 1161 420, 714, 719, 421, 0, 399, 3, 3, 3, 3, 1162 451, 3, 0, 2, 465, 462, 747, 0, 458, 2, 1163 461, 464, 0, 291, 239, 261, 3, 269, 271, 0, 1164 451, 2, 568, 569, 2, 607, 608, 0, 656, 534, 1165 3, 342, 341, 344, 343, 291, 535, 0, 536, 369, 1166 0, 0, 291, 291, 0, 0, 689, 379, 382, 386, 1167 544, 386, 385, 378, 371, 544, 373, 376, 291, 396, 1168 390, 101, 397, 746, 0, 0, 434, 237, 0, 0, 1169 3, 2, 665, 427, 0, 524, 0, 748, 486, 0, 1170 291, 291, 291, 0, 548, 550, 127, 0, 0, 212, 1171 0, 0, 0, 220, 221, 53, 0, 55, 58, 59, 1172 0, 2, 125, 0, 0, 0, 690, 691, 687, 688, 1173 456, 67, 68, 106, 122, 3, 105, 0, 0, 24, 1174 35, 3, 0, 32, 99, 0, 3, 647, 651, 654, 1175 646, 3, 589, 3, 713, 718, 2, 60, 291, 3, 1176 3, 292, 0, 3, 619, 623, 626, 635, 669, 673, 1177 676, 291, 3, 618, 634, 668, 291, 291, 422, 291, 1178 291, 743, 0, 0, 0, 0, 253, 0, 101, 0, 1179 3, 3, 0, 459, 0, 455, 0, 0, 242, 291, 1180 0, 0, 126, 0, 0, 0, 0, 0, 126, 0, 1181 0, 105, 105, 18, 2, 0, 0, 3, 128, 129, 1182 2, 140, 130, 131, 132, 133, 134, 135, 142, 144, 1183 0, 0, 0, 282, 291, 291, 544, 0, 537, 291, 1184 372, 374, 0, 388, 690, 383, 387, 384, 377, 381, 1185 364, 395, 0, 576, 2, 661, 660, 0, 666, 2, 1186 479, 481, 501, 3, 509, 510, 0, 2, 505, 3, 1187 3, 0, 0, 553, 219, 0, 0, 0, 219, 0, 1188 0, 118, 693, 697, 699, 692, 746, 105, 0, 3, 1189 658, 39, 3, 37, 34, 0, 3, 98, 100, 0, 1190 2, 649, 650, 0, 0, 291, 0, 0, 0, 3, 1191 635, 0, 2, 621, 622, 2, 637, 2, 671, 672, 1192 0, 0, 60, 0, 3, 3, 3, 3, 407, 406, 1193 410, 2, 2, 745, 744, 119, 0, 0, 0, 0, 1194 3, 460, 3, 0, 240, 143, 3, 292, 291, 0, 1195 0, 0, 0, 2, 0, 188, 0, 186, 0, 0, 1196 0, 0, 0, 0, 0, 544, 118, 0, 148, 145, 1197 291, 0, 0, 264, 276, 3, 3, 543, 610, 365, 1198 380, 393, 291, 263, 291, 0, 512, 489, 291, 0, 1199 0, 488, 503, 0, 0, 0, 213, 0, 222, 56, 1200 2, 695, 696, 0, 123, 120, 0, 0, 0, 0, 1201 0, 23, 0, 652, 291, 577, 262, 721, 722, 723, 1202 0, 674, 291, 291, 291, 3, 3, 0, 682, 0, 1203 0, 0, 0, 291, 291, 3, 541, 119, 467, 0, 1204 0, 243, 292, 0, 0, 0, 0, 291, 189, 187, 1205 184, 0, 190, 0, 0, 0, 0, 194, 197, 195, 1206 191, 0, 192, 126, 35, 141, 139, 241, 0, 0, 1207 414, 418, 417, 0, 506, 2, 507, 2, 508, 502, 1208 291, 225, 0, 223, 0, 225, 291, 31, 121, 2, 1209 42, 2, 40, 38, 28, 26, 3, 724, 3, 3, 1210 3, 0, 0, 681, 683, 624, 638, 266, 2, 404, 1211 3, 403, 0, 469, 466, 126, 0, 0, 126, 3, 1212 0, 126, 185, 0, 2, 2, 206, 196, 0, 0, 1213 0, 137, 0, 571, 611, 2, 0, 0, 2, 226, 1214 0, 0, 214, 0, 3, 0, 0, 0, 0, 0, 1215 0, 684, 685, 291, 0, 468, 149, 0, 0, 2, 1216 162, 126, 151, 0, 179, 0, 126, 0, 2, 153, 1217 0, 2, 0, 2, 2, 2, 193, 32, 291, 511, 1218 513, 504, 0, 0, 0, 0, 0, 3, 3, 653, 1219 625, 639, 675, 408, 126, 155, 158, 0, 157, 161, 1220 3, 164, 163, 0, 126, 181, 126, 3, 0, 291, 1221 0, 291, 0, 2, 0, 2, 136, 2, 227, 228, 1222 0, 224, 215, 698, 0, 0, 150, 0, 0, 160, 1223 230, 165, 2, 232, 180, 0, 183, 169, 198, 3, 1224 207, 211, 200, 3, 0, 291, 0, 291, 0, 0, 1225 0, 43, 41, 156, 159, 126, 0, 166, 291, 126, 1226 126, 0, 170, 0, 0, 689, 208, 209, 210, 0, 1227 199, 3, 201, 3, 291, 216, 229, 146, 167, 152, 1228 126, 233, 182, 177, 175, 171, 154, 126, 0, 690, 1229 0, 0, 0, 0, 147, 168, 178, 172, 176, 175, 1230 173, 3, 3, 0, 0, 490, 174, 202, 204, 3, 1231 3, 203, 205 1232 }; 1233 1234 /* YYPGOTO[NTERM-NUM]. */ 1235 static const yytype_int16 yypgoto[] = 1236 { 1237 -1317, 4344, 3244, -1317, 633, -1317, 172, 896, -203, -1317, 1238 487, -518, -482, -910, -211, 1511, 0, -1317, 1129, 534, 1239 537, 615, 556, 984, 981, 988, 980, 989, -1317, 4, 1240 -451, 4784, -913, -1317, -702, 571, 13, -706, 419, -1317, 1241 190, -1317, 345, -964, -1317, -1317, 85, -1317, -1099, -1138, 1242 197, -1317, -1317, -1317, -1317, 20, -1281, -1317, -1317, -1317, 1243 -1317, -1317, -1317, 266, -1095, 50, -1317, -472, -1317, 443, 1244 239, -1317, 118, -1317, -294, -1317, -1317, -1317, 496, -829, 1245 -1317, -1317, 8, -952, 28, 2894, -1317, -1317, -1317, -214, 1246 -1317, 121, 1028, -198, 1848, 3592, -1317, -1317, 127, 296, 1247 1545, 1505, -1317, 1929, -1317, -1317, 137, 2139, -1317, 2574, 1248 804, -1317, -1317, -1317, -637, -1317, 886, 889, 490, 670, 1249 52, -1317, -1317, -1317, 893, 666, -510, -1317, -116, 40, 1250 1073, -1317, -1317, -889, -983, 933, 1377, 1006, -11, -1317, 1251 1351, 508, -322, -183, -145, 623, 724, -1317, 944, -1317, 1252 2701, 574, -443, 875, -1317, -1317, 659, -1317, -228, -1317, 1253 -45, -1317, -1317, -1317, -1253, 370, -1317, -1317, -1317, 1120, 1254 -1317, 33, -1317, -1317, -828, -100, -1316, -170, 2264, -1317, 1255 1914, -1317, 868, -1317, -155, 129, -181, -180, -175, 7, 1256 -41, -40, -35, 1507, 37, 53, 57, -29, -172, -163, 1257 -158, -150, -293, -500, -490, -485, -542, -284, -525, -1317, 1258 -1317, -499, 1035, 1038, 1040, 1486, 4616, -563, -531, -513, 1259 -491, -561, -1317, -506, -730, -727, -723, -562, -311, -227, 1260 -1317, -1317, 378, 19, -93, -1317, 3633, 159, -611, -428 1261 }; 1262 1263 /* YYDEFGOTO[NTERM-NUM]. */ 1264 static const yytype_int16 yydefgoto[] = 1265 { 1266 -1, 812, 467, 300, 47, 133, 134, 301, 302, 303, 1267 304, 760, 761, 1132, 1133, 305, 380, 307, 308, 309, 1268 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1269 1029, 517, 974, 545, 321, 975, 946, 1056, 1517, 1058, 1270 1059, 1060, 1061, 1518, 1062, 1063, 1436, 1437, 1400, 1401, 1271 1402, 1496, 1497, 1501, 1502, 1537, 1538, 1064, 1360, 1065, 1272 1066, 1297, 1298, 1299, 1479, 1067, 145, 952, 953, 954, 1273 1380, 1460, 1471, 1472, 468, 469, 873, 874, 1037, 51, 1274 52, 53, 54, 55, 346, 158, 58, 59, 60, 61, 1275 62, 348, 64, 65, 264, 67, 68, 274, 350, 351, 1276 71, 72, 73, 118, 75, 204, 353, 119, 78, 120, 1277 80, 81, 454, 82, 453, 687, 688, 689, 907, 1085, 1278 908, 83, 84, 457, 455, 695, 854, 855, 856, 857, 1279 698, 699, 700, 358, 359, 360, 361, 465, 339, 135, 1280 136, 521, 323, 170, 644, 645, 646, 647, 648, 85, 1281 121, 87, 488, 489, 938, 490, 277, 494, 324, 88, 1282 137, 138, 89, 1320, 1107, 1108, 1109, 1110, 90, 91, 1283 716, 92, 273, 93, 94, 187, 1031, 678, 411, 125, 1284 95, 500, 501, 502, 188, 268, 190, 191, 192, 269, 1285 98, 99, 100, 101, 102, 103, 104, 195, 196, 197, 1286 198, 199, 824, 604, 605, 606, 607, 200, 609, 610, 1287 611, 571, 572, 573, 574, 750, 105, 613, 614, 615, 1288 616, 617, 618, 967, 752, 753, 754, 594, 364, 365, 1289 366, 367, 325, 164, 107, 108, 109, 369, 693, 568 1290 }; 1291 1292 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 1293 positive, shift that token. If negative, reduce the rule whose 1294 number is the opposite. If YYTABLE_NINF, syntax error. */ 1295 static const yytype_int16 yytable[] = 1296 { 1297 49, 113, 149, 150, 398, 399, 427, 97, 151, 114, 1298 400, 452, 260, 401, 751, 765, 267, 409, 963, 106, 1299 106, 964, 402, 382, 383, 965, 947, 403, 56, 115, 1300 739, 406, 49, 595, 867, 404, 439, 1170, 826, 97, 1301 356, 829, 470, 147, 1068, 1069, 177, 836, 724, 49, 1302 50, 106, 729, 972, 918, 603, 161, 843, 1194, 825, 1303 56, 722, 341, 186, 608, 143, 209, 1378, 818, 49, 1304 193, 793, 1136, 216, 817, 1196, 226, 219, 504, 122, 1305 152, 1438, 50, 1198, 398, 399, 819, 1186, 106, 1301, 1306 400, 474, 476, 401, 210, 261, 153, 220, 262, 814, 1307 154, 424, 402, 672, 674, 113, 526, 403, 820, 815, 1308 280, 406, 31, 113, 816, 404, 266, 271, 1195, 31, 1309 31, 63, 1180, 668, 858, 859, 202, 69, 1199, 96, 1310 1168, 1169, 123, 31, 1076, 1197, 627, 76, 1203, 1204, 1311 631, 876, 168, 677, 149, 150, 306, 147, 31, 526, 1312 151, 681, 1438, 63, 161, 113, 344, 407, 1302, 69, 1313 209, 96, 171, 31, 31, 1457, 169, 372, 281, 76, 1314 713, 728, 148, 111, 963, 830, 203, 964, 96, 833, 1315 912, 965, 252, 446, 410, 186, 186, 1397, 1398, 418, 1316 741, 410, 189, 161, 719, 96, 357, 948, 96, 930, 1317 850, 266, 459, 470, 853, 410, 565, 438, 166, 49, 1318 1185, -231, -231, 142, 1244, 291, 161, 814, 480, 1525, 1319 410, 209, 152, 470, 149, 150, 666, 815, 442, 408, 1320 151, 470, 816, 827, 834, 600, 600, 407, 153, 306, 1321 566, 1170, 154, 922, 950, 173, 1540, 587, 526, 440, 1322 663, 49, 829, 252, 328, 797, 475, 1399, 97, 271, 1323 1015, 482, 1079, 846, 271, 266, 266, 847, 499, 376, 1324 106, 113, 166, 161, 475, 1116, 96, 341, 567, 56, 1325 818, 1014, -231, 1138, 462, 377, 1002, 253, 144, 96, 1326 993, 1170, 1176, 990, 306, 655, 70, 526, 819, 155, 1327 733, 50, 1442, 1397, 1398, 326, 306, 518, 595, 1247, 1328 146, 814, 1092, 595, 397, 189, 356, 608, 1177, 110, 1329 820, 815, 570, 670, 663, 734, 816, 147, 70, 675, 1330 41, 42, 1117, 1495, 372, 1186, 177, 1248, 96, 1500, 1331 113, 869, 1200, 641, 344, 735, 201, 526, 601, 619, 1332 96, 181, 1118, 628, 286, 1324, 1483, 632, 758, 1520, 1333 870, 803, 212, 624, 1527, 41, 42, 624, 435, 826, 1334 113, 1467, 63, 1408, 1381, 1325, 664, 471, 69, -287, 1335 96, 1068, 1069, 416, 1168, 1169, 897, 578, 76, 410, 1336 1511, 513, 1513, 76, 478, 266, 1442, 1177, 326, 386, 1337 818, 1442, 110, 852, 389, 186, 436, 555, 556, 356, 1338 1170, 247, 372, 41, 42, 387, 444, 1018, 819, 391, 1339 390, 1442, 250, 266, 464, 306, 306, 163, 1442, 266, 1340 435, 341, 624, 713, 492, 392, 843, 493, 671, 673, 1341 820, 763, 557, 558, 551, 552, 1156, 1158, 393, 746, 1342 664, 913, 263, 113, 1083, 252, 96, 110, 1361, -466, 1343 1125, -466, 887, 985, 394, 166, 470, 914, 41, 42, 1344 848, 266, 357, 356, 849, 1427, 1428, 602, -466, 266, 1345 1422, 624, -10, 49, 519, 880, 372, 718, 1186, -515, 1346 97, 163, 927, 113, 1423, 1186, 1329, 1103, 1134, 1115, 1347 1468, 868, 106, 597, 1433, 306, 915, 113, -439, 1100, 1348 306, 56, 306, 306, 1469, 1243, 110, 441, 518, -440, 1349 749, 712, 916, 518, 113, 344, 518, 41, 42, 276, 1350 1013, 909, 951, 50, 189, 1015, 1524, 278, 471, 608, 1351 2, 206, 4, 5, 6, 7, 1186, 70, 913, 110, 1352 329, 139, 238, 878, 76, 1331, 1535, 915, 471, 279, 1353 41, 42, 576, 1539, 1080, 357, 471, 848, 577, 570, 1354 570, 1099, -102, 1081, 76, 995, -102, 306, 1125, 786, 1355 803, 1359, 76, 912, 326, 326, 239, 434, 624, 344, 1356 1183, 240, 713, 619, 682, 553, 554, 1183, 1315, 601, 1357 577, 601, 710, 330, 63, 35, 1184, 36, 331, 845, 1358 69, 1473, 96, 1307, 1316, -119, 602, -119, 1473, 624, 1359 76, -119, 370, 1347, 624, 860, 619, 1348, 1317, 357, 1360 624, 746, 679, 624, 624, 624, -119, -119, 111, 875, 1361 215, 332, 1233, 1013, 1318, 212, 1237, 1362, 110, 434, 1362 341, 624, 326, 266, 333, 1407, 242, 911, 705, 41, 1363 42, 252, 328, 410, 110, 1235, 139, 140, 803, 1521, 1364 334, 326, 522, 559, 560, 41, 42, 1026, 8, 9, 1365 10, 11, 12, 113, 163, 384, 906, 595, 703, 371, 1366 176, 215, 356, 375, 704, 519, 720, 1073, 921, 759, 1367 519, 725, 721, 519, 764, 388, 726, 31, 425, 624, 1368 932, 619, 408, 730, 1111, 396, 805, 718, 718, 731, 1369 499, 1033, 426, 398, 399, 1275, 1276, 745, 813, 400, 1370 602, 891, 401, 746, 215, 34, 326, 746, 1475, 176, 1371 1476, 402, 176, 113, 344, 581, 403, 410, 749, 749, 1372 893, 406, 449, 464, 404, 110, 746, 139, 140, 983, 1373 980, 8, 9, 10, 11, 12, 41, 42, 212, 548, 1374 527, 528, 529, 431, 963, 549, 550, 964, 844, 70, 1375 881, 965, 410, 597, 712, 979, 1372, -363, 176, 984, 1376 31, 980, 570, 1522, 530, 215, 531, 243, 532, 533, 1377 624, 471, 624, 884, 998, 410, -392, 624, 344, 341, 1378 992, 601, 569, 1160, 410, 910, 704, 76, 34, 1231, 1379 45, 46, 1355, 601, 877, 577, 879, 471, 746, 460, 1380 1140, 690, 410, 215, 713, 527, 528, 529, 215, 461, 1381 1152, 37, 410, 76, 1356, 40, 813, 602, 357, 1358, 1382 746, 176, 41, 42, 1155, 746, 600, 483, 889, 530, 1383 569, 531, 410, 532, 1304, 710, 1028, 896, 45, 46, 1384 214, 898, 1157, 306, 600, 1363, 926, 407, 811, 503, 1385 600, 746, 291, 522, 1425, 522, 45, 46, 522, 1181, 1386 1422, 522, 106, 1443, 803, 624, 48, 112, 1240, 746, 1387 410, 56, 113, 344, 906, 176, 906, 524, 1489, 921, 1388 507, 951, 176, 713, 1490, 951, 951, 441, 113, 328, 1389 410, 214, 512, 215, 526, 112, 112, 1545, 48, 663, 1390 1424, 932, 932, 577, 909, 805, 718, 1368, 1369, 48, 1391 813, 113, 306, 712, 561, 48, 1435, 562, 748, 1104, 1392 410, 563, 602, 48, 921, 564, 45, 46, 567, 48, 1393 106, 1086, 48, 1086, 214, 48, 749, 337, 931, 1105, 1394 600, 418, 659, 410, 1507, -436, 45, 46, 112, 112, 1395 176, 585, 2, 206, 4, 5, 6, 7, 588, 1137, 1396 480, 328, 410, 212, 63, 1417, 980, 176, 344, -3, 1397 69, 176, 48, 637, 215, 48, 1226, 212, 1397, 1398, 1398 76, 656, 48, 736, 657, 737, 1493, 1435, 738, 624, 1399 624, 742, 658, 1125, 710, 214, 827, 328, 600, 116, 1400 660, 1322, 661, 1082, 662, 910, 1330, 1332, 1333, 306, 1401 1028, 665, 110, 48, 139, 140, 215, 35, 667, 36, 1402 257, 48, 691, 41, 42, 664, 48, 692, 106, 1167, 1403 911, 690, 694, 214, 176, 602, 696, 56, 214, -235, 1404 2, 206, 4, 5, 6, 7, 732, 159, 743, 113, 1405 806, 48, 48, 747, 906, 770, 771, 1078, 807, 906, 1406 772, 773, 37, 755, 174, 175, 40, 48, 932, 228, 1407 212, 326, 810, 41, 42, 48, 266, 1294, 1295, 1296, 1408 -3, 821, -12, 341, 48, 778, 779, 48, 1379, 37, 1409 921, 624, 1379, 40, 112, -13, 865, 866, 1120, 371, 1410 41, 42, 872, 258, 892, 35, 894, 36, 920, 112, 1411 -519, 159, 895, 112, -413, 344, 899, 48, 112, 902, 1412 1131, 935, 942, 214, 1131, 721, 43, 844, 944, 949, 1413 471, 48, 48, 955, 45, 46, 1188, 215, 48, 70, 1414 774, 775, 776, 777, 322, 48, 76, 956, 957, 958, 1415 921, 921, 959, 338, 960, 712, 976, 271, 113, 987, 1416 988, 989, 1004, 1005, 1006, 215, 219, 1007, 1008, 1009, 1417 215, 1010, 1283, 1284, 1131, 1286, 113, 106, 1021, -401, 1418 306, -400, 1291, 910, 1293, 210, 220, 1035, 910, 1458, 1419 1070, 176, 905, 48, 624, 1072, 1093, 1094, 113, 106, 1420 1095, 1096, 1102, 429, 214, 1112, 1104, 433, 56, 110, 1421 1202, 139, 140, 48, 48, 1113, 746, 106, 1119, 1121, 1422 41, 42, 970, 176, 1114, 1122, 1105, 1123, 1124, 1127, 1423 48, 1130, 1150, 1173, 48, 1174, 710, 322, 1189, 176, 1424 1171, 215, 1172, 624, 624, 642, 214, 1420, 863, 1190, 1425 1175, 1192, 271, 176, 1193, 215, 1533, 306, 1201, 1206, 1426 1205, 48, 1057, 1208, 1213, -3, 690, 441, 1218, 433, 1427 1221, 48, 487, 1223, 492, 37, 106, 174, 175, 40, 1428 440, 1227, 1232, 1350, 1234, 56, 41, 42, 1236, 48, 1429 113, 1239, 520, 398, 399, 48, 1245, 48, 1104, 400, 1430 1251, 63, 401, 1249, 159, 70, 1253, 69, 1255, 106, 1431 1256, 402, 375, 1257, 1258, 710, 403, 76, 1105, 129, 1432 406, 130, 131, 132, 404, 1259, 1261, 1268, 1285, 1277, 1433 41, 42, 112, 1278, 176, 1419, 1288, 48, 586, 1289, 1434 1403, 1290, 592, 1292, 663, 48, 1300, 266, 215, 48, 1435 1506, 141, 1306, 48, 1313, 921, 112, 1319, 112, 1321, 1436 1323, 625, 1345, 624, 1327, 629, 701, 214, 338, 1328, 1437 37, 921, 174, 175, 40, 1334, 1335, 1337, 471, 1343, 1438 1344, 41, 42, 509, 1188, 1346, 1353, 1357, 113, 1131, 1439 1131, 1131, 1354, 112, 76, 214, 1104, 1364, 112, 1365, 1440 214, 1296, 1373, 241, 244, 546, 547, 106, 1375, 1374, 1441 113, 1382, 1391, 1392, -402, 1395, 1105, 113, 1406, 113, 1442 1410, 113, 1412, 322, 322, 1414, 1415, 690, 1416, 106, 1443 1421, 1191, 1429, 149, 150, 1430, 106, 1431, 56, 151, 1444 1432, 921, 921, 546, 1348, 56, 407, 112, 1434, 1439, 1445 1505, 686, 1444, 212, 48, 113, 1366, 113, 1448, 1450, 1446 1452, 1446, 1454, 1456, 116, 48, 1461, 48, 113, 1462, 1447 664, 214, 1463, 1484, 1505, 1505, 70, 1474, 1486, 546, 1448 1488, 1491, 161, 1492, 306, 214, 48, 106, 1514, 487, 1449 1499, 322, 1515, 487, 1528, 1519, 56, 1526, 176, 1505, 1450 1530, 1543, 48, 520, 1536, 520, 372, 112, 520, 1544, 1451 322, 520, 1207, 781, 783, 780, 48, 1129, 112, 48, 1452 112, 782, 338, 1494, 784, 1305, 162, 1131, 1131, 1546, 1453 1409, 471, 1238, 1367, 1383, 1477, 1212, 1188, 471, 900, 1454 194, 213, 901, 217, 1188, 215, 227, 76, 441, 1220, 1455 232, 1087, 48, 70, 76, 1091, 112, 799, 112, 923, 1456 1034, 871, 112, 1126, 456, 1459, 937, 1101, 1314, 945, 1457 112, 0, 701, 715, 789, 322, 0, 790, 214, 791, 1458 0, 0, 0, 48, 48, 229, 801, 0, 230, 471, 1459 0, 234, 213, 236, 0, 1188, 0, 48, 0, 1057, 1460 245, 0, 0, 478, -288, 76, 0, 0, 1478, 0, 1461 1482, 8, 9, 10, 11, 12, 0, 842, 0, 0, 1462 0, 0, 592, 1508, 162, 0, 0, 37, 851, 183, 1463 184, 40, 1516, 0, 0, 213, 0, 373, 41, 42, 1464 31, 0, 0, 326, 1510, 412, 1512, 767, 768, 769, 1465 0, 0, 420, 0, 0, 0, 0, 0, 0, 0, 1466 0, 0, 0, 162, 904, 0, 410, 0, 34, 0, 1467 0, 0, 45, 46, 0, 0, 0, 48, 0, 0, 1468 0, 686, 0, 37, 0, 905, 162, 40, 1541, 48, 1469 1542, 701, 1371, 0, 41, 42, 213, 0, 443, 0, 1470 643, 701, 0, 1549, 1550, 37, 70, 183, 184, 40, 1471 0, 0, 890, 70, 0, 701, 41, 42, 0, 487, 1472 717, 0, 0, 0, 412, 0, 0, 229, 45, 46, 1473 0, 215, 642, 0, 213, 0, 0, 0, 112, 213, 1474 0, 338, 185, 0, 1396, 0, 0, 1404, -289, 0, 1475 45, 46, 0, 0, 498, 8, 9, 10, 11, 12, 1476 0, 48, 0, 506, 70, 508, 511, 0, 0, 0, 1477 48, 0, 48, 514, 515, 214, 0, 0, 575, 112, 1478 0, 0, 0, 0, 31, 0, 579, 508, 508, 582, 1479 1441, 0, 0, 0, 497, 1445, 0, 1481, 0, 1481, 1480 994, 0, 48, 0, 373, 801, 0, 0, 0, 176, 1481 702, 723, 34, 727, 0, 0, 0, 0, 66, 117, 1482 0, 0, 112, 1466, 213, 508, 215, 0, 0, 0, 1483 0, 986, 0, 1481, 0, 1481, 642, 0, 0, 0, 1484 0, 991, 0, 0, 112, 0, 0, 0, 112, 0, 1485 66, 0, 0, 412, 971, 1003, 0, 420, 0, 0, 1486 0, 508, 0, 0, 0, -290, 229, 160, 234, 0, 1487 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 1488 0, 0, 373, 0, 0, 0, 0, 221, 0, 0, 1489 0, 0, 0, 801, 0, 0, 0, 0, 112, 74, 1490 338, 31, 0, 0, 0, 213, 0, 1534, 0, 0, 1491 126, 126, 126, 1534, 0, 0, 686, 0, 0, 701, 1492 701, 0, 213, 259, 1534, 0, 0, 0, 1534, 34, 1493 0, 74, 0, 0, 412, 0, 112, 0, 487, 1106, 1494 322, 0, 0, 0, 0, 0, 0, 213, 0, 0, 1495 48, 0, 0, 0, 0, 48, 229, 0, 0, 0, 1496 0, 214, 864, 0, 0, 327, 0, 0, 222, 0, 1497 0, 0, 48, 259, 349, 0, 0, 701, 701, 176, 1498 0, 0, 126, 0, 126, 0, 534, 535, 536, 537, 1499 538, 539, 540, 541, 542, 543, 842, 0, 0, 0, 1500 0, 0, 0, 0, 405, 0, 0, 0, 0, 275, 1501 0, 917, 0, 919, 0, 0, 702, 456, 0, 423, 1502 544, 0, 428, 430, 0, 575, 575, 160, 0, 508, 1503 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 1504 508, 508, 508, 508, 508, 508, 508, 0, 447, 112, 1505 0, 0, 450, 0, 451, 352, 214, 0, 0, 1165, 1506 1166, 0, 0, 458, 0, 126, 0, 0, 213, 66, 1507 0, 0, 48, 126, 472, 126, 126, 686, 0, 0, 1508 126, 0, 126, 126, 479, 0, 0, 0, 0, 0, 1509 0, 37, 430, 183, 184, 40, 213, 546, 0, 0, 1510 0, 213, 41, 42, 0, 0, 0, 0, 0, 77, 1511 0, 0, 882, 112, 112, 112, 885, 1215, 1216, 801, 1512 8, 9, 10, 11, 12, 1311, 0, 0, 599, 448, 1513 600, 0, 0, 0, 0, 702, 45, 46, 509, 0, 1514 0, 77, 0, 0, 0, 702, 0, 0, 0, 31, 1515 74, 0, 126, 0, 0, 74, 0, 701, 259, 702, 1516 0, 0, 593, 0, 0, 701, 701, 701, 621, 0, 1517 0, 0, 213, 0, 0, 508, 0, 34, 223, 0, 1518 0, 626, 0, 0, 0, 626, 213, 643, 259, 0, 1519 0, 0, 0, 1038, 0, 0, 0, 0, 0, 0, 1520 0, 0, 0, 0, 338, 0, 498, 0, 0, 0, 1521 0, 0, 8, 9, 10, 11, 12, 0, 0, 748, 1522 0, 410, 0, 0, 0, 0, 1106, 45, 46, 701, 1523 0, 0, 0, 0, 1088, 472, 508, 0, 0, 0, 1524 0, 31, 48, 48, 0, 0, 497, 0, 575, 222, 1525 349, 112, 112, 0, 0, 472, 0, 0, 0, 0, 1526 124, 127, 128, 472, 0, 354, 508, 0, 0, 34, 1527 0, 0, 0, 0, 37, 0, 183, 184, 40, 213, 1528 0, 697, 0, 0, 430, 41, 42, 0, 0, 112, 1529 0, 643, 37, 0, 183, 184, 40, 1336, 0, 711, 1530 0, 66, 0, 41, 42, 1338, 1339, 1340, 0, 430, 1531 0, 185, 0, 430, 0, 0, 74, 0, 1106, 45, 1532 46, 0, 0, 0, 0, 0, 0, 0, 0, 265, 1533 0, 352, 254, 0, 255, 0, 74, 45, 46, 0, 1534 0, 0, 259, 349, 74, 0, 48, 112, 0, 0, 1535 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 1536 77, 0, 352, 702, 702, 77, 412, 0, 0, 1384, 1537 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 1538 352, 0, 74, 0, 0, 0, 508, 0, 792, 0, 1539 37, 1038, 183, 184, 40, 48, 0, 0, 0, 0, 1540 0, 41, 42, 0, 0, 0, 626, 804, 0, 0, 1541 8, 9, 10, 11, 12, 395, 1106, 0, 0, 823, 1542 0, 702, 702, 0, 352, 414, 415, 904, 0, 410, 1543 419, 508, 421, 422, 0, 45, 46, 593, 0, 31, 1544 0, 0, 593, 1141, 0, 0, 0, 1480, 626, 1480, 1545 0, 349, 349, 349, 0, 0, 0, 126, 126, 223, 1546 1153, 0, 0, 0, 0, 0, 508, 34, 0, 349, 1547 0, 0, 0, 0, 0, 0, 213, 0, 0, 508, 1548 0, 0, 0, 1480, 0, 1480, 126, 697, 352, 126, 1549 126, 0, 126, 0, 126, 126, 0, 0, 472, 126, 1550 126, 0, 0, 37, 1281, 183, 184, 40, 0, 931, 1551 0, 600, 322, 0, 41, 42, 0, 45, 46, 0, 1552 508, 0, 0, 0, 472, 0, 77, 349, 0, 0, 1553 0, 0, 352, 352, 352, 0, 936, 0, 412, 430, 1554 1504, 354, 410, 0, 79, 0, 77, 0, 45, 46, 1555 352, 0, 0, 0, 77, 0, 0, 0, 0, 0, 1556 0, 259, 711, 0, 0, 0, 0, 966, 352, 1312, 1557 0, 0, 354, 0, 0, 0, 79, 0, 1241, 74, 1558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1559 354, 0, 77, 0, 0, 0, 0, 508, 0, 0, 1560 0, 702, 0, 0, 0, 74, 697, 0, 352, 702, 1561 702, 702, 0, 224, 0, 0, 697, 0, 349, 0, 1562 626, 0, 0, 1001, 0, 626, 804, 0, 0, 0, 1563 697, 0, 0, 0, 354, 0, 0, 126, 126, 0, 1564 1012, 0, 0, 352, 0, 0, 0, 0, 0, 0, 1565 0, 0, 0, 0, 0, 0, 0, 508, 508, 0, 1566 0, 0, 213, 0, 0, 0, 0, 0, 0, 0, 1567 0, 86, 0, 702, 0, 0, 0, 0, 0, 0, 1568 0, 0, 0, 282, 283, 0, 284, 352, 0, 0, 1569 0, 66, 0, 0, 0, 0, 0, 352, 354, 352, 1570 355, 0, 0, 86, 222, 0, 0, 352, 0, 0, 1571 0, 352, 285, 626, 0, 0, 0, 0, 286, 0, 1572 259, 711, 287, 0, 1084, 288, 289, 290, 291, 41, 1573 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 1574 225, 0, 354, 354, 354, 0, 0, 0, 0, 0, 1575 1098, 0, 0, 0, 0, 505, 0, 213, 430, 117, 1576 354, 0, 0, 45, 46, 296, 297, 298, 299, 0, 1577 0, 0, 74, 0, 0, 0, 0, 0, 354, 0, 1578 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 1579 0, 0, 0, 0, 126, 79, 0, 0, 0, 126, 1580 79, 0, 352, 0, 0, 0, 0, 794, 795, 0, 1581 0, 0, 0, 0, 0, 77, 593, 0, 354, 0, 1582 0, 0, 0, 0, 0, 0, 0, 362, 0, 428, 1583 0, 0, 0, 0, 697, 697, 828, 349, 349, 831, 1584 832, 0, 835, 0, 837, 838, 0, 0, 0, 839, 1585 840, 0, 0, 354, 0, 0, 0, 1187, 0, 0, 1586 0, 0, 508, 0, 57, 57, 0, 0, 0, 0, 1587 0, 0, 0, 0, 0, 0, 0, 0, 508, 0, 1588 0, 0, 0, 0, 8, 9, 10, 11, 12, 0, 1589 0, 0, 697, 697, 224, 0, 57, 354, 0, 0, 1590 0, 0, 0, 0, 0, 0, 0, 354, 0, 354, 1591 0, 0, 0, 31, 223, 352, 352, 354, 352, 352, 1592 0, 354, 86, 0, 0, 0, 0, 86, 0, 0, 1593 57, 0, 0, 57, 0, 0, 0, 0, 74, 626, 1594 0, 34, 0, 0, 0, 0, 37, 0, 508, 508, 1595 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 1596 126, 79, 0, 711, 0, 0, 0, 0, 0, 0, 1597 0, 0, 0, 352, 352, 0, 355, 0, 0, 0, 1598 0, 79, 77, 43, 0, 0, 0, 968, 969, 79, 1599 0, 45, 46, 0, 8, 9, 10, 11, 12, 0, 1600 0, 0, 0, 0, 0, 0, 1282, 355, 0, 0, 1601 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, 1602 347, 225, 0, 31, 259, 355, 0, 79, 66, 0, 1603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1604 697, 0, 711, 0, 352, 0, 117, 0, 0, 0, 1605 0, 34, 0, 0, 0, 0, 37, 0, 183, 184, 1606 40, 0, 0, 0, 0, 0, 0, 41, 42, 355, 1607 0, 0, 697, 0, 0, 0, 0, 0, 0, 0, 1608 697, 697, 697, 0, 0, 57, 0, 222, 86, 126, 1609 0, 349, 349, 599, 0, 600, 0, 0, 0, 0, 1610 0, 45, 46, 362, 0, 1187, 0, 0, 86, 74, 1611 0, 0, 0, 0, 0, 57, 86, 0, 0, 0, 1612 0, 352, 0, 352, 0, 354, 354, 0, 354, 354, 1613 0, 0, 0, 355, 362, 0, 0, 0, 117, 0, 1614 0, 0, 0, 0, 697, 0, 0, 0, 77, 1089, 1615 0, 0, 362, 352, 86, 0, 0, 0, 0, 0, 1616 0, 352, 352, 352, 0, 0, 0, 0, 0, 0, 1617 0, 0, 352, 352, 0, 0, 0, 355, 355, 355, 1618 0, 0, 0, 354, 354, 0, 74, 0, 0, 0, 1619 0, 0, 0, 0, 0, 355, 362, 0, 0, 0, 1620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621 0, 349, 0, 355, 0, 0, 0, 0, 0, 0, 1622 0, 0, 0, 0, 79, 352, 0, 8, 9, 10, 1623 11, 12, 0, 0, 0, 0, 117, 0, 0, 0, 1624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1625 79, 0, 0, 355, 354, 0, 31, 0, 1187, 0, 1626 362, 0, 0, 0, 0, 1187, 0, 167, 0, 172, 1627 0, 0, 178, 179, 180, 0, 182, 0, 0, 0, 1628 0, 0, 0, 0, 34, 0, 0, 0, 355, 37, 1629 233, 0, 352, 40, 0, 0, 347, 223, 0, 0, 1630 41, 42, 248, 249, 362, 362, 362, 0, 0, 0, 1631 1217, 0, 0, 0, 0, 0, 1187, 0, 0, 77, 1632 0, 0, 362, 1529, 0, 0, 717, 0, 0, 0, 1633 0, 354, 355, 354, 45, 46, 0, 0, 0, 74, 1634 362, 0, 355, 0, 355, 0, 74, 57, 0, 224, 1635 0, 86, 355, 0, 0, 0, 355, 8, 9, 10, 1636 11, 12, 0, 354, 0, 0, 0, 0, 0, 0, 1637 0, 354, 354, 354, 0, 0, 0, 86, 0, 0, 1638 362, 0, 354, 354, 0, 0, 31, 0, 0, 347, 1639 0, 0, 0, 0, 0, 0, 77, 74, 0, 0, 1640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641 0, 0, 0, 0, 34, 362, 0, 79, 0, 37, 1642 0, 183, 184, 40, 0, 0, 0, 0, 0, 0, 1643 41, 42, 0, 0, 0, 354, 0, 0, 0, 1303, 1644 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, 1645 0, 0, 0, 347, 0, 0, 904, 0, 410, 362, 1646 0, 0, 0, 0, 45, 46, 0, 0, 0, 362, 1647 0, 362, 0, 0, 0, 0, 225, 0, 0, 362, 1648 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 1649 0, 0, 0, 0, 0, 0, 0, 347, 347, 347, 1650 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, 1651 0, 0, 0, 0, 0, 347, 0, 0, 1, 2, 1652 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1653 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 1654 23, 24, 25, 0, 86, 26, 27, 28, 29, 77, 1655 0, 30, 0, 0, 31, 32, 77, 590, 0, 598, 1656 355, 355, 0, 355, 355, 0, 0, 0, 0, 0, 1657 622, 623, 0, 347, 362, 0, 0, 0, 0, 33, 1658 0, 0, 34, 79, 35, 0, 36, 37, 0, 38, 1659 39, 40, 0, 8, 9, 10, 11, 12, 41, 42, 1660 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, 1661 0, 0, 0, 0, 0, 0, 0, 0, 355, 355, 1662 0, 0, 31, 0, 43, 0, 44, 0, 211, 0, 1663 -518, 0, 45, 46, 0, 0, 0, 231, 0, 235, 1664 0, 237, 0, 0, 0, 0, 0, 0, 246, 0, 1665 34, 0, 165, 0, 0, 37, 0, 183, 184, 40, 1666 0, 0, 0, 0, 347, 0, 41, 42, 0, 218, 1667 0, 0, 347, 0, 8, 9, 10, 11, 12, 211, 1668 0, 235, 237, 246, 0, 0, 0, 362, 362, 355, 1669 362, 362, 1504, 0, 410, 0, 0, 0, 0, 0, 1670 45, 46, 0, 31, 0, 0, 0, 0, 0, 0, 1671 86, 0, 0, 0, 0, 0, 165, 0, 0, 0, 1672 272, 0, 211, 0, 0, 0, 0, 0, 0, 0, 1673 0, 34, 224, 0, 0, 0, 37, 57, 183, 184, 1674 40, 0, 0, 0, 0, 362, 362, 41, 42, 165, 1675 0, 0, 0, 0, 79, 0, 0, 0, 0, 368, 1676 0, 0, 0, 374, 0, 0, 355, 0, 355, 0, 1677 0, 0, 0, 265, 0, 0, 0, 0, 0, 0, 1678 0, 45, 46, 211, 0, 235, 237, 246, 0, 0, 1679 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 1680 0, 0, 0, 0, 0, 57, 355, 355, 355, 0, 1681 0, 0, 165, 0, 0, 0, 362, 355, 355, 0, 1682 0, 211, 0, 0, 218, 0, 211, 0, 0, 0, 1683 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 1684 0, 496, 165, 0, 0, 0, 0, 0, 0, 0, 1685 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 1686 0, 0, 0, 0, 0, 0, 0, 374, 0, 0, 1687 355, 0, 0, 0, 165, 0, 0, 0, 0, 0, 1688 0, 86, 0, 347, 347, 0, 0, 0, 0, 211, 1689 0, 0, 0, 362, 0, 362, 0, 523, 0, 0, 1690 0, 0, 0, 57, 0, 0, 0, 0, 0, 165, 1691 0, 211, 924, 0, 925, 0, 235, 237, 0, 0, 1692 0, 928, 929, 0, 246, 362, 934, 0, 0, 0, 1693 0, 0, 0, 362, 362, 362, 0, 355, 939, 0, 1694 0, 0, 0, 943, 362, 362, 0, 596, 0, 0, 1695 0, 0, 620, 0, 0, 0, 0, 0, 86, 0, 1696 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 1697 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, 1698 0, 0, 0, 0, 79, 211, 0, 0, 0, 0, 1699 211, 79, 211, 0, 0, 0, 0, 362, 0, 0, 1700 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 1701 0, 0, 211, 211, 0, 0, 0, 0, 0, 0, 1702 211, 0, 0, 0, 0, 0, 0, 0, 165, 165, 1703 0, 0, 0, 0, 211, 368, 0, 0, 0, 0, 1704 0, 211, 79, 0, 0, 0, 0, 0, 0, 0, 1705 0, 57, 57, 0, 0, 0, 523, 0, 0, 0, 1706 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 1707 1022, 1023, 1024, 1025, 57, 1027, 0, 0, 0, 0, 1708 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, 1709 1071, 0, 57, 0, 0, 0, 165, 0, 0, 0, 1710 0, 0, 0, 0, 1077, 0, 0, 0, 523, 0, 1711 523, 86, 0, 523, 0, 165, 523, 0, 86, 0, 1712 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 1713 0, 0, 0, 0, 0, 0, 0, 347, 347, 0, 1714 0, 0, 0, 0, 1097, 0, 57, 0, 0, 0, 1715 0, 57, 0, 0, 0, 211, 0, 0, 0, 0, 1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 1717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1718 165, 0, 0, 211, 57, 0, 0, 0, 211, 1128, 1719 0, 0, 368, 0, 0, 1135, 809, 0, 0, 0, 1720 1139, 0, 0, 0, 0, 1143, 0, 1144, 0, 0, 1721 0, 1146, 0, 1147, 1148, 0, 0, 1151, 0, 0, 1722 0, 0, 596, 0, 0, 0, 1163, 596, 0, 0, 1723 0, 0, 0, 0, 0, 0, 368, 368, 368, 0, 1724 0, 0, 0, 0, 1178, 1179, 0, 0, 0, 0, 1725 0, 0, 0, 0, 368, 0, 0, 347, 0, 211, 1726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1727 0, 1209, 0, 211, 1211, 0, 0, 0, 0, 0, 1728 0, 0, 57, 0, 0, 0, 523, 282, 283, 0, 1729 284, 0, 0, 496, 0, 0, 0, 0, 0, 0, 1730 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 1731 0, 57, 368, 0, 933, 0, 285, 1225, 0, 0, 1732 0, 0, 286, 1229, 1230, 0, 287, 0, 0, 288, 1733 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 1734 0, 0, 0, 1246, 0, 0, 1250, 714, 0, 0, 1735 1252, 0, 0, 0, 211, 0, 0, 0, 156, 294, 1736 0, 378, 57, 1260, 379, 0, 211, 45, 46, 296, 1737 297, 298, 299, 0, 0, 0, 1267, 0, 1269, 1270, 1738 1271, 1272, 0, 0, 0, 211, 0, 0, 0, 0, 1739 0, 0, 0, 0, 1279, 0, 1280, 0, 0, 0, 1740 172, 0, 0, 368, 0, 251, 0, 620, 0, 0, 1741 0, 368, 0, 0, 0, 256, 0, 0, 0, 0, 1742 0, 0, 0, 0, 0, 0, 0, 0, 0, 1308, 1743 1309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1744 0, 205, 2, 206, 4, 5, 6, 7, 8, 9, 1745 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1746 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 1747 28, 156, 0, 0, 0, 0, 0, 31, 0, 1341, 1748 1342, 0, 0, 0, 0, 385, 0, 0, 0, 1352, 1749 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 1750 0, 0, 0, 0, 0, 34, 714, 35, 417, 36, 1751 0, 0, 207, 39, 0, 0, 0, 0, 0, 0, 1752 0, 523, 432, 0, 0, 0, 0, 0, 211, 0, 1753 0, 437, 0, 282, 283, 0, 284, 0, 0, 0, 1754 0, 445, 0, 0, 0, 165, 0, 0, 0, 208, 1755 1387, 0, 1388, 1389, 1390, 45, 46, 0, 0, 0, 1756 0, 0, 285, 211, 1394, 0, 463, 0, 286, 0, 1757 0, 473, 287, 1405, 211, 288, 289, 290, 291, 41, 1758 42, 0, 292, 293, 481, 0, 0, 0, 0, 0, 1759 491, 0, 495, 0, 0, 0, 0, 0, 1426, 0, 1760 0, 596, 0, 0, 0, 294, 0, 378, 0, 525, 1761 0, 0, 0, 45, 46, 296, 297, 298, 299, 0, 1762 0, 0, 368, 368, 0, 0, 785, 0, 0, 0, 1763 0, 0, 0, 0, 282, 283, 0, 284, 0, 0, 1764 0, 1464, 1465, 0, 0, 0, 211, 0, 0, 0, 1765 0, 584, 0, 0, 1470, 0, 589, 0, 0, 0, 1766 211, 1470, 0, 285, 0, 0, 0, 0, 0, 639, 1767 0, 139, 140, 287, 0, 0, 288, 289, 290, 291, 1768 41, 42, 523, 292, 293, 634, 0, 0, 0, 635, 1769 636, 0, 638, 1503, 0, 0, 0, 1509, 0, 649, 1770 650, 0, 651, 652, 0, 653, 294, 654, 640, 0, 1771 641, 379, 0, 0, 45, 46, 296, 297, 298, 299, 1772 0, 0, 0, 0, 584, 1531, 0, 1532, 0, 0, 1773 0, 0, 669, 0, 0, 0, 0, 0, 0, 0, 1774 0, 340, 363, 0, 0, 0, 0, 0, 714, 211, 1775 0, 0, 0, 0, 0, 1547, 1548, 680, 0, 0, 1776 0, 0, 0, 1551, 1552, 0, 0, 0, 0, 0, 1777 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 1778 0, 0, 413, 706, 0, 0, 0, 0, 0, 709, 1779 218, 0, 0, 0, 463, 466, 2, 206, 4, 5, 1780 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1781 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1782 0, 0, 26, 27, 28, 0, 0, 714, 0, 0, 1783 744, 31, 0, 0, 0, 0, 0, 0, 0, 0, 1784 0, 0, 0, 0, 211, 762, 0, 0, 0, 0, 1785 0, 0, 0, 0, 413, 0, 0, 0, 0, 34, 1786 0, 35, 0, 36, 0, 0, 38, 39, 0, 0, 1787 0, 0, 0, 0, 0, 0, 368, 368, 0, 0, 1788 0, 0, 0, 788, 0, 218, 0, 0, 0, 0, 1789 0, 0, 798, 0, 0, 0, 0, 0, 0, 800, 1790 320, 0, 0, 0, 0, 808, -3, 0, 413, 0, 1791 345, 0, 0, 0, 822, 0, 413, 580, 0, 413, 1792 583, 0, 381, 381, 0, 0, 0, 0, 0, 0, 1793 363, 0, 1011, 0, 612, 8, 9, 10, 11, 12, 1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1795 0, 0, 0, 630, 862, 0, 340, 0, 0, 0, 1796 0, 0, 282, 283, 31, 284, 0, 0, 0, 0, 1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1798 0, 0, 0, 413, 0, 0, 0, 413, 0, 0, 1799 808, 285, 34, 320, 0, 0, 368, 286, 903, 0, 1800 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 1801 0, 292, 293, 0, 0, 0, 0, 477, 363, 0, 1802 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 1803 0, 0, 0, 0, 294, 0, 378, 0, 0, 940, 1804 941, 0, 343, 46, 296, 297, 298, 299, 0, 0, 1805 0, 0, 523, 0, 523, 0, 0, 0, 0, 0, 1806 0, 0, 0, 0, 413, 0, 0, 363, 0, 0, 1807 0, 0, 978, 0, 0, 0, 0, 982, 0, 0, 1808 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 1809 523, 211, 0, 0, 0, 0, 0, 0, 0, 0, 1810 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 1811 340, 363, 0, 0, 0, 0, 0, 165, 0, 0, 1812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813 0, 0, 0, 381, 0, 0, 0, 0, 0, 0, 1814 0, 1016, 0, 0, 0, 0, 0, 0, 1017, 0, 1815 0, 0, 0, 0, 0, 413, 413, 0, 0, 0, 1816 0, 1019, 0, 1020, 0, 0, 0, 0, 0, 0, 1817 0, 0, 0, 0, 802, 363, 0, 1032, 0, 0, 1818 0, 0, 0, 1036, 0, 612, 0, 612, 612, 0, 1819 0, 0, 0, 0, 612, 1074, 0, 0, 1075, 0, 1820 0, 0, 0, 0, 841, 363, 0, 0, 0, 0, 1821 363, 0, 0, 0, 0, 0, 0, 0, 0, 363, 1822 363, 363, 0, 0, 0, 0, 0, 708, 0, 0, 1823 0, 0, 0, 0, 0, 0, 0, 363, 0, 0, 1824 0, 0, 413, 883, 0, 0, 413, 886, 0, 0, 1825 0, 0, 0, 888, 0, 0, 0, 0, 0, 0, 1826 0, 0, 0, 0, 0, 0, 740, 0, 0, 0, 1827 0, 0, 413, 0, 0, 589, 0, 0, 0, 757, 1828 0, 0, 0, 0, 740, 0, 0, 740, 0, 0, 1829 0, 0, 0, 0, 0, 363, 612, 0, 0, 766, 1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1831 1145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1832 0, 787, 0, 0, 0, 0, 0, 0, 0, 340, 1833 363, 796, 0, 0, 413, 413, 0, 0, 345, 0, 1834 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 1835 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1836 18, 19, 20, 21, 22, 23, 24, 25, 525, 0, 1837 26, 27, 28, 0, 1210, 0, 0, 0, 413, 31, 1838 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 1839 0, 0, 861, 802, 363, 0, 0, 612, 0, 612, 1840 381, 0, 0, 0, 0, 0, 0, 34, 1222, 612, 1841 0, 0, 37, 1224, 38, 39, 40, 0, 0, 0, 1842 0, 1228, 0, 41, 42, 0, 8, 9, 10, 11, 1843 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 1844 22, 23, 24, 25, -291, 0, 0, 0, 0, 43, 1845 0, 157, 0, 0, 1254, 31, 0, 45, 46, 0, 1846 0, 0, 0, 0, 0, 0, 1262, 0, 0, 1263, 1847 0, 1264, 0, 0, 0, 0, 0, 0, 0, 0, 1848 0, 802, 0, 34, 0, 1273, 1274, 0, 340, 363, 1849 413, 0, 413, 0, -291, 0, 413, 0, 757, 0, 1850 962, 0, 0, 0, 0, 0, 0, 1287, 0, 0, 1851 973, 0, 0, 0, 0, 0, 981, 612, 612, 0, 1852 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 1853 18, 19, 20, 21, 22, 23, 24, 25, 1161, 0, 1854 0, 8, 9, 10, 11, 12, 0, 0, 0, 31, 1855 0, 0, 413, 0, 1326, 0, 0, 0, 999, 1000, 1856 0, 0, 345, 0, 0, 0, 0, 0, 282, 283, 1857 31, 284, 0, 413, 1142, 0, 345, 34, 0, 0, 1858 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 1859 413, 1154, 0, 612, 612, 1159, 0, 285, 34, 0, 1860 0, 0, 0, 286, 0, 363, 363, 287, 0, 0, 1861 288, 289, 290, 291, 41, 42, 1030, 292, 293, 0, 1862 381, 0, 0, 0, 0, 0, 0, 0, 0, 1376, 1863 0, 1377, 0, 0, 0, 0, 0, 0, 0, 0, 1864 294, 0, 378, 1385, 0, 1386, 0, 0, 1162, 46, 1865 296, 297, 298, 299, 0, 0, 0, 345, 0, 0, 1866 0, 0, 1393, 0, 0, 0, 0, 0, 413, 0, 1867 413, 0, 0, 0, 0, 413, 0, 0, 1411, 1413, 1868 0, 0, 0, 0, 612, 0, 0, 0, 0, 1418, 1869 0, 0, 1228, 0, 0, 0, 320, 0, 0, 0, 1870 0, 0, 0, 0, 0, 0, 0, 802, 413, 1242, 1871 0, 0, 0, 1440, 0, 282, 283, 0, 284, 0, 1872 0, 0, 1447, 0, 381, 1449, 0, 1451, 1453, 1455, 1873 973, 363, 0, 0, 740, 0, 0, 0, 0, 0, 1874 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, 1875 286, 0, 0, 0, 287, 1149, 0, 288, 289, 290, 1876 291, 41, 42, 0, 292, 293, 1164, 1485, 0, 1487, 1877 0, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 1878 0, 0, 0, 0, 0, 0, 1498, 294, 381, 378, 1879 1182, 0, 340, 0, 756, 45, 46, 296, 297, 298, 1880 299, 0, 0, 0, 0, 973, 973, 0, 0, 0, 1881 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1882 0, 0, 0, 0, 0, 0, 1214, 0, 0, 0, 1883 0, 0, 0, 0, 1, 2, 206, 4, 5, 6, 1884 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1885 17, 18, 19, 20, 21, 22, 23, 24, 25, 363, 1886 363, 26, 27, 28, 29, 0, 0, 30, 0, 0, 1887 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1888 0, 973, 0, 0, 0, 0, 0, 0, 0, 0, 1889 0, 0, 0, 0, 0, 0, 0, 0, 34, 861, 1890 35, 0, 36, 0, 0, 38, 39, 0, 0, 0, 1891 0, 0, 0, 0, 1265, 1266, 0, 1, 2, 206, 1892 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1893 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1894 24, 25, 44, 0, 26, 27, 28, 29, 45, 46, 1895 30, 282, 283, 31, 1039, 1040, 0, 1041, 0, 0, 1896 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 0, 0, 1897 0, 1050, 0, 0, 0, 1051, 1052, 0, 33, 363, 1898 285, 34, 0, 35, 0, 36, 1053, 0, 38, 39, 1899 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 1900 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902 0, 0, 0, 294, 0, 1054, 0, 0, 171, 0, 1903 0, 45, 46, 296, 297, 298, 299, 0, 0, 0, 1904 0, 1055, 0, 0, 0, 0, -126, 0, 0, 0, 1905 0, 0, 0, 0, 0, 1370, 0, 0, 740, 0, 1906 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1909 413, 413, 0, 0, 0, 0, 0, 0, 0, 0, 1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1911 0, 0, 0, 0, 0, 413, 1, 2, 206, 4, 1912 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1913 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1914 25, 0, 0, 26, 27, 28, 29, 0, 0, 30, 1915 282, 283, 31, 284, 8, 9, 10, 11, 12, 13, 1916 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1917 24, 25, 0, 0, 26, 27, 28, 0, 0, 285, 1918 34, 0, 35, 31, 36, 286, 0, 38, 39, 287, 1919 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 1920 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1921 0, 34, 0, 0, 0, 0, 37, 0, 38, 39, 1922 40, 0, 294, 0, 1054, 0, 0, 41, 42, 0, 1923 45, 46, 296, 297, 298, 299, 0, 0, 0, 0, 1924 0, 0, 0, 0, 0, -126, 0, 0, 0, 0, 1925 0, 0, 0, 43, 0, 44, 0, 0, 0, 0, 1926 0, 45, 46, 0, 0, 0, 0, 0, 320, 1, 1927 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 1928 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 1929 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 1930 0, 0, 30, 282, 283, 31, 284, 8, 9, 10, 1931 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 1932 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 1933 0, 0, 285, 34, 0, 35, 31, 36, 286, 0, 1934 38, 39, 287, 0, 0, 288, 289, 290, 291, 41, 1935 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 1936 0, 0, 0, 0, 34, 0, 0, 0, 0, 110, 1937 0, 38, 39, 0, 0, 294, 0, 44, 0, 0, 1938 41, 42, 0, 45, 46, 296, 297, 298, 299, 2, 1939 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1940 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 1941 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 1942 0, 0, 282, 283, 31, 284, 0, 0, 0, 8, 1943 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1944 19, 20, 21, 22, 23, 24, 25, -292, 0, 0, 1945 0, 285, 34, 0, 35, 0, 36, 286, 31, 38, 1946 39, 287, 0, 0, 288, 289, 290, 291, 41, 42, 1947 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 1948 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 1949 0, 0, 0, 0, 294, 0, 342, -292, 0, 0, 1950 0, 756, 343, 46, 296, 297, 298, 299, 2, 206, 1951 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1952 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1953 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 1954 0, 282, 283, 31, 284, 8, 9, 10, 11, 12, 1955 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 1956 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 1957 285, 34, 0, 35, 31, 36, 286, 0, 38, 39, 1958 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 1959 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 1960 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 1961 39, 0, 0, 294, 0, 961, 0, 0, 0, 0, 1962 756, 343, 46, 296, 297, 298, 299, 2, 206, 4, 1963 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1964 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1965 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 1966 282, 283, 31, 284, 8, 9, 10, 11, 12, 13, 1967 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1968 24, 25, 0, 0, 26, 27, 28, 0, 0, 285, 1969 34, 0, 35, 31, 36, 286, 0, 38, 39, 287, 1970 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 1971 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1972 0, 34, 0, 0, 0, 0, 0, 0, 207, 39, 1973 0, 0, 294, 0, 961, 0, 0, 0, 0, 756, 1974 45, 46, 296, 297, 298, 299, 2, 206, 4, 5, 1975 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1976 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1977 0, 0, 26, 27, 28, 0, 0, 0, 0, 282, 1978 283, 31, 284, 0, 0, 0, 0, 0, 0, 0, 1979 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1980 0, 0, 0, 0, 0, 0, 0, 0, 285, 34, 1981 0, 35, 0, 36, 286, 0, 38, 39, 287, 0, 1982 0, 288, 289, 290, 291, 41, 42, 0, 292, 293, 1983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1984 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1985 0, 294, 0, 342, 0, 0, 0, 0, 0, 343, 1986 46, 296, 297, 298, 299, 2, 206, 4, 5, 6, 1987 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1988 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 1989 0, 26, 27, 28, 0, 0, 0, 0, 282, 283, 1990 31, 284, 0, 0, 0, 0, 0, 0, 0, 0, 1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1992 0, 0, 0, 0, 0, 0, 0, 285, 34, 0, 1993 35, 0, 36, 286, 0, 207, 39, 287, 0, 0, 1994 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1997 294, 0, 996, 0, 0, 0, 0, 0, 997, 46, 1998 296, 297, 298, 299, 2, 206, 4, 5, 6, 7, 1999 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2000 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2001 26, 27, 28, 0, 0, 0, 0, 282, 283, 31, 2002 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2004 0, 0, 0, 0, 0, 0, 285, 34, 0, 35, 2005 0, 36, 286, 0, 38, 39, 287, 0, 0, 288, 2006 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2009 0, 961, 0, 0, 0, 0, 0, 343, 46, 296, 2010 297, 298, 299, 2, 206, 4, 5, 6, 7, 8, 2011 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2012 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2013 27, 28, 0, 0, 0, 0, 282, 283, 31, 284, 2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2016 0, 0, 0, 0, 0, 285, 34, 0, 35, 0, 2017 36, 286, 0, 207, 39, 287, 0, 0, 288, 289, 2018 290, 291, 41, 42, 0, 292, 293, 0, 0, 0, 2019 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2020 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2021 378, 0, 0, 0, 0, 0, 45, 46, 296, 297, 2022 298, 299, -514, 0, 0, 1, 2, 3, 4, 5, 2023 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2024 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2025 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2026 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 2027 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2028 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 2029 0, 35, 0, 36, 37, 0, 38, 39, 40, 0, 2030 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2031 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2032 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2033 0, 43, 0, 44, 0, 0, 0, 0, 0, 45, 2034 46, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2035 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2036 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2037 28, 29, 0, 0, 30, 0, 0, 31, 32, 0, 2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2039 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2040 0, 0, 33, 0, 0, 34, 0, 35, 0, 36, 2041 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 2042 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2043 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2044 0, 0, 0, 0, 0, 0, 0, 43, 0, 44, 2045 0, 0, 0, 0, 0, 45, 46, 205, 2, 206, 2046 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2047 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2048 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2049 0, 0, 0, 31, 0, 8, 9, 10, 11, 12, 2050 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2051 23, 24, 25, 0, 0, 26, 27, 28, 484, 485, 2052 486, 34, 0, 35, 31, 36, 37, 0, 207, 39, 2053 40, 0, 0, 0, 0, 0, 0, 41, 42, 0, 2054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2055 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2056 39, 0, 0, 43, 0, 208, 0, 0, 0, 0, 2057 0, 45, 46, 1, 2, 206, 4, 5, 6, 7, 2058 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2059 18, 19, 20, 21, 22, 23, 24, 25, -291, 0, 2060 26, 27, 28, 29, 0, 0, 30, 0, 0, 31, 2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2062 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2063 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2064 0, 36, 0, 0, 38, 39, 0, 0, -291, 2, 2065 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2066 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2067 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2068 0, 44, 0, 0, 31, 0, 0, 45, 46, 0, 2069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071 0, 0, 34, 0, 35, 0, 36, 37, 0, 207, 2072 39, 40, 0, 0, 0, 0, 0, 0, 41, 42, 2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2075 0, 0, 0, 0, 43, 0, 208, 0, 0, 0, 2076 0, 0, 45, 46, 2, 206, 4, 5, 6, 7, 2077 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2078 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2079 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2080 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2081 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2082 24, 25, 0, 0, 26, 27, 28, 34, 0, 35, 2083 0, 36, 0, 31, 38, 39, 0, 2, 206, 4, 2084 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2085 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2086 25, 34, 0, 26, 27, 28, 0, 0, 38, 39, 2087 -398, 676, 31, 0, 0, 0, 0, 45, 46, 0, 2088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2090 34, 0, 35, 633, 36, 337, 0, 38, 39, 0, 2091 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, 2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2094 0, 0, 0, 0, 676, 0, 0, 0, 0, 0, 2095 45, 46, 2, 206, 4, 5, 6, 7, 8, 9, 2096 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2097 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2098 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2099 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2100 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2101 0, 26, 27, 28, 0, 34, 0, 35, 0, 36, 2102 31, 683, 38, 39, 0, 0, 0, 0, 0, 0, 2103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2104 0, 0, 0, 0, 1351, 0, 0, 0, 34, 0, 2105 0, 0, 0, 0, 0, 38, 39, 0, 0, 676, 2106 0, 0, 0, 0, 0, 45, 46, 2, 206, 4, 2107 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2108 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2109 25, 0, 684, 26, 27, 28, 685, 0, 45, 46, 2110 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2113 34, 0, 35, 0, 36, 0, 0, 207, 39, 0, 2114 2, 206, 4, 5, 6, 7, 8, 9, 10, 11, 2115 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2116 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2117 0, 0, 0, 0, 270, 31, 0, 0, 0, 0, 2118 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2120 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2121 38, 39, 0, 2, 206, 4, 5, 6, 7, 8, 2122 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2123 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2124 27, 28, 0, 0, 0, 0, 0, 676, 31, 0, 2125 0, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2128 36, 0, 0, 38, 39, 0, 2, 206, 4, 5, 2129 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2130 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2131 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2132 591, 31, 0, 0, 0, 0, 45, 46, 0, 0, 2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2135 0, 35, 0, 36, 0, 0, 207, 39, 8, 9, 2136 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2137 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2138 28, 0, 0, 0, 0, 282, 283, 31, 284, 0, 2139 0, 0, 0, 208, 0, 0, 0, 0, 0, 45, 2140 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2141 0, 0, 0, 0, 285, 34, 0, 0, 0, 0, 2142 286, 0, 38, 39, 287, 0, 0, 288, 289, 290, 2143 291, 41, 42, 0, 292, 293, 0, 0, 0, 0, 2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2145 0, 0, 0, 0, 0, 0, 0, 294, 0, 516, 2146 0, 0, 171, 0, 0, 45, 46, 296, 297, 298, 2147 299, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2148 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2149 0, 26, 27, 28, 0, 0, 0, 0, 282, 283, 2150 31, 284, 8, 9, 10, 11, 12, 13, 14, 15, 2151 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2152 0, 0, 26, 27, 28, 0, 0, 285, 34, 0, 2153 0, 31, 0, 286, 0, 38, 39, 287, 0, 0, 2154 288, 289, 290, 291, 41, 42, 0, 292, 293, 0, 2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2156 0, 0, 0, 0, 37, 0, 335, 336, 40, 0, 2157 294, -35, 295, 0, 0, 41, 42, 0, 45, 46, 2158 296, 297, 298, 299, 8, 9, 10, 11, 12, 13, 2159 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2160 24, 25, 0, 337, 26, 27, 28, 0, 0, 45, 2161 46, 282, 283, 31, 284, 8, 9, 10, 11, 12, 2162 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2163 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2164 285, 34, 0, 0, 31, 0, 286, 0, 38, 39, 2165 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2166 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2167 0, 0, 34, 0, 0, 0, 0, 110, 0, 38, 2168 39, 0, 0, 294, 0, 295, 0, 0, 41, 42, 2169 0, 45, 46, 296, 297, 298, 299, 8, 9, 10, 2170 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2171 21, 22, 23, 24, 25, 0, 44, 26, 27, 28, 2172 0, 0, 45, 46, 282, 283, 31, 284, 8, 9, 2173 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2174 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2175 28, 0, 0, 285, 34, 0, 0, 31, 683, 286, 2176 0, 38, 39, 287, 0, 0, 288, 289, 290, 291, 2177 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2178 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2179 0, 0, 38, 39, 0, 0, 294, 0, 157, 0, 2180 0, 0, 0, 0, 45, 46, 296, 297, 298, 299, 2181 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2182 18, 19, 20, 21, 22, 23, 24, 25, 0, 684, 2183 26, 27, 28, 1090, 0, 45, 46, 282, 283, 31, 2184 284, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2185 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2186 0, 26, 27, 28, 0, 0, 285, 34, 0, 0, 2187 31, 683, 286, 0, 38, 39, 287, 0, 0, 288, 2188 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2189 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2190 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2191 0, 591, 0, 0, 0, 0, 0, 45, 46, 296, 2192 297, 298, 299, 8, 9, 10, 11, 12, 13, 14, 2193 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2194 25, 0, 684, 26, 27, 28, 1219, 0, 45, 46, 2195 282, 283, 31, 284, 0, 8, 9, 10, 11, 12, 2196 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2197 23, 24, 25, -291, 0, 26, 27, 28, 0, 285, 2198 34, 0, 0, 0, 31, 286, 0, 38, 39, 287, 2199 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2200 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2201 0, 0, 34, 0, 0, 0, 0, 37, 0, 335, 2202 336, 40, 294, -291, 378, 0, 0, 0, 41, 42, 2203 45, 46, 296, 297, 298, 299, 0, 0, 0, 0, 2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2205 0, 0, 0, 0, 633, 0, 337, 0, 0, 0, 2206 0, 0, 45, 46, 8, 9, 10, 11, 12, 13, 2207 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2208 24, 25, -291, 0, 26, 27, 28, 0, 0, 0, 2209 0, 0, 0, 31, 8, 9, 10, 11, 12, 13, 2210 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2211 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2212 0, 34, 0, 31, 0, 0, 37, 0, 335, 336, 2213 40, 0, -291, 0, 0, 0, 0, 41, 42, 0, 2214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2215 0, 34, 0, 0, 0, 0, 37, 0, 207, 39, 2216 40, 0, 0, 0, 0, 337, 0, 41, 42, 0, 2217 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2219 0, 0, 0, 43, 0, 270, 0, 0, 0, 0, 2220 0, 45, 46, 8, 9, 10, 11, 12, 13, 14, 2221 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2222 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2223 0, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2224 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2225 25, -291, 0, 26, 27, 28, 0, 0, 0, 0, 2226 34, 0, 31, 0, 0, 37, 0, 335, 336, 40, 2227 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2229 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2230 0, -291, 633, 0, 337, 0, 0, 0, 0, 0, 2231 45, 46, 0, 0, 0, 0, 0, 0, 0, 0, 2232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2233 0, 0, 633, 0, 337, 0, 0, 0, 0, 0, 2234 45, 46, 8, 9, 10, 11, 12, 13, 14, 15, 2235 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2236 -291, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2237 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2238 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2239 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2240 0, 31, 0, 0, 0, 0, 38, 39, 0, 0, 2241 -291, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2242 17, 18, 19, 20, 21, 22, 23, 24, 25, 34, 2243 0, 26, 27, 28, 0, 0, 38, 39, 0, 0, 2244 31, 0, 0, 337, 0, 0, 0, 0, 0, 45, 2245 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2246 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2247 0, 0, 0, 257, 0, 38, 39, 0, 0, 45, 2248 46, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2249 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2250 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2251 31, 0, 157, 0, 0, 0, 0, 0, 45, 46, 2252 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2253 18, 19, 20, 21, 22, 23, 24, 25, 34, 0, 2254 26, 27, 28, 0, 0, 207, 39, 0, 0, 31, 2255 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2256 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2257 26, 27, 28, 0, 0, 0, 0, 34, 0, 31, 2258 0, 0, 270, 0, 38, 39, 0, 0, 45, 46, 2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2260 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2261 0, 0, 0, 0, 38, 39, 0, 0, 0, 0, 2262 0, 337, 0, 0, 0, 0, 0, 45, 46, 0, 2263 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2264 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2265 0, 684, 26, 27, 28, 0, 0, 45, 46, 0, 2266 0, 31, 8, 9, 10, 11, 12, 13, 14, 15, 2267 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2268 0, 0, 26, 27, 28, 0, 0, 0, 0, 34, 2269 0, 31, 0, 0, 0, 0, 38, 39, 0, 0, 2270 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2271 18, 19, 20, 21, 22, 23, 24, 25, 0, 34, 2272 26, 27, 28, 0, 0, 0, 38, 39, 0, 31, 2273 0, 0, 0, 591, 0, 0, 0, 0, 0, 45, 2274 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2275 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2276 0, 0, 0, 44, 207, 39, 0, 0, 0, 45, 2277 46, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2278 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2279 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2280 0, 0, 0, 0, 0, 0, 31, 45, 46, 0, 2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2283 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2284 0, 38, 39, 282, 283, 0, 284, 1040, 0, 1041, 2285 0, 0, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 2286 0, 0, 1523, 1050, 0, 0, 0, 1051, 1052, 0, 2287 33, 0, 285, 0, 0, 0, 0, -411, 1053, 0, 2288 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2289 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2291 0, 0, 0, 0, 0, 294, 0, 378, 0, 0, 2292 171, 0, 0, 45, 46, 296, 297, 298, 299, 0, 2293 0, 282, 283, 1055, 284, 1040, 0, 1041, -126, 0, 2294 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 0, 0, 2295 0, 1050, 0, 0, 0, 1051, 1052, 0, 33, 0, 2296 285, 0, 0, 0, 0, 0, 1053, 0, 0, 0, 2297 287, 0, 0, 288, 289, 290, 291, 41, 42, 0, 2298 292, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2300 0, 0, 0, 294, 0, 378, 0, 0, 171, 0, 2301 0, 45, 46, 296, 297, 298, 299, 0, 0, 0, 2302 0, 1055, 0, 0, 0, 0, -126, 2, 206, 4, 2303 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2304 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2305 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2306 0, 0, 31, 0, 282, 283, 0, 284, 1040, 0, 2307 1041, 1397, 1398, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 2308 1049, 0, 0, 1523, 1050, 0, 0, 0, 1051, 1052, 2309 34, 33, 35, 285, 36, 0, 0, 38, 39, 1053, 2310 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2311 41, 42, 0, 292, 293, 0, 0, 0, 0, 1310, 2312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2313 0, 0, 0, 0, 0, 0, 294, 0, 378, 0, 2314 0, 171, 0, 0, 45, 46, 296, 297, 298, 299, 2315 0, 0, 282, 283, 1055, 284, 1040, 0, 1041, 1397, 2316 1398, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 0, 2317 0, 0, 1050, 0, 0, 0, 1051, 1052, 0, 33, 2318 0, 285, 0, 0, 0, 0, 0, 1053, 0, 0, 2319 0, 287, 0, 0, 288, 289, 290, 291, 41, 42, 2320 0, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2322 0, 0, 0, 0, 294, 0, 378, 0, 0, 171, 2323 0, 0, 45, 46, 296, 297, 298, 299, 0, 0, 2324 282, 283, 1055, 284, 1040, 0, 1041, 0, 0, 1042, 2325 1043, 1044, 1045, 1046, 1047, 1048, 1049, 0, 0, 0, 2326 1050, 0, 0, 0, 1051, 1052, 0, 33, 0, 285, 2327 0, 0, 0, 0, 0, 1053, 0, 0, 0, 287, 2328 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2329 293, 0, 0, 0, 0, 0, 0, 282, 283, 0, 2330 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2331 0, 0, 294, 0, 378, 0, 0, 171, 0, 0, 2332 45, 46, 296, 297, 298, 299, 285, 0, 0, 0, 2333 1055, 0, 286, 0, 0, 0, 287, 0, 0, 288, 2334 289, 290, 291, 41, 42, 0, 292, 293, 0, 0, 2335 0, 0, 0, 0, 282, 283, 0, 284, 0, 0, 2336 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2337 0, 378, 0, 0, 970, 0, 0, 45, 46, 296, 2338 297, 298, 299, 285, 0, 0, 0, 0, 0, 286, 2339 0, 0, 0, 287, 0, 0, 288, 289, 290, 291, 2340 41, 42, 0, 292, 293, 0, 0, 0, 0, 0, 2341 0, 282, 283, 0, 284, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 0, 294, 0, 378, 0, 2343 282, 283, 0, 284, 45, 46, 296, 297, 298, 299, 2344 285, 0, 0, 0, 0, 0, 286, 0, 0, 0, 2345 287, 0, 0, 288, 289, 290, 291, 41, 42, 285, 2346 292, 293, 0, 0, 0, 286, 0, 0, 0, 287, 2347 0, 0, 288, 289, 290, 291, 41, 42, 0, 292, 2348 293, 0, 0, 294, 0, 378, 0, 282, 283, 0, 2349 284, 707, 46, 296, 297, 298, 299, 0, 0, 0, 2350 0, 0, 294, 0, 378, 0, 282, 283, 0, 284, 2351 343, 46, 296, 297, 298, 299, 285, 0, 0, 0, 2352 0, 0, 286, 0, 0, 0, 287, 0, 0, 288, 2353 289, 290, 291, 41, 42, 285, 292, 293, 0, 0, 2354 0, 286, 0, 0, 0, 287, 0, 0, 288, 289, 2355 290, 291, 41, 42, 0, 292, 293, 0, 0, 294, 2356 0, 0, 0, 282, 283, 0, 284, 45, 46, 296, 2357 297, 298, 299, 0, 0, 0, 0, 0, 510, 0, 2358 0, 0, 0, 0, 0, 0, 45, 46, 296, 297, 2359 298, 299, 285, 0, 0, 0, 0, 0, 286, 0, 2360 0, 0, 287, 0, 0, 288, 289, 290, 291, 41, 2361 42, 0, 292, 293, 0, 0, 0, 0, 0, 0, 2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2363 0, 0, 0, 0, 0, 513, 0, 0, 0, 0, 2364 0, 0, 0, 45, 46, 296, 297, 298, 299, 2, 2365 206, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2366 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2367 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 2368 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 2369 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2371 0, 0, 34, 0, 35, 0, 36, 37, 0, 174, 2372 175, 40, 0, 0, 0, 0, 0, 0, 41, 42, 2373 205, 2, 206, 4, 5, 6, 7, 8, 9, 10, 2374 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2375 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2376 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 2377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2379 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2380 0, 207, 39, 466, 2, 206, 4, 5, 6, 7, 2381 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2382 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2383 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2386 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2387 0, 36, 0, 0, 38, 39, 2, 206, 4, 5, 2388 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2389 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2390 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2391 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2394 0, 35, 0, 36, 0, 0, 207, 39 2395 }; 2396 2397 static const yytype_int16 yycheck[] = 2398 { 2399 0, 1, 43, 43, 185, 185, 204, 0, 43, 1, 2400 185, 239, 105, 185, 520, 533, 116, 187, 748, 0, 2401 1, 748, 185, 168, 169, 748, 732, 185, 0, 1, 2402 512, 186, 32, 344, 645, 185, 219, 1020, 601, 32, 2403 156, 602, 256, 43, 873, 873, 57, 608, 491, 49, 2404 0, 32, 495, 755, 691, 348, 49, 619, 72, 601, 2405 32, 489, 155, 63, 348, 32, 66, 1320, 599, 69, 2406 63, 570, 982, 66, 599, 72, 69, 69, 281, 82, 2407 43, 1397, 32, 72, 265, 265, 599, 1039, 69, 63, 2408 265, 261, 262, 265, 66, 106, 43, 69, 109, 599, 2409 43, 201, 265, 425, 426, 105, 82, 265, 599, 599, 2410 51, 266, 39, 113, 599, 265, 116, 117, 132, 39, 2411 39, 0, 1032, 417, 634, 635, 28, 0, 117, 0, 2412 1019, 1020, 109, 39, 110, 132, 363, 0, 1051, 1052, 2413 367, 651, 107, 437, 185, 185, 146, 147, 39, 82, 2414 185, 445, 1468, 32, 147, 155, 156, 186, 132, 32, 2415 160, 32, 114, 39, 39, 1418, 131, 160, 109, 32, 2416 481, 493, 43, 1, 904, 603, 78, 904, 49, 607, 2417 686, 904, 109, 228, 111, 185, 186, 44, 45, 109, 2418 512, 111, 63, 186, 487, 66, 156, 130, 69, 709, 2419 628, 201, 247, 417, 632, 111, 95, 218, 49, 209, 2420 1039, 44, 45, 109, 1127, 82, 209, 717, 109, 1500, 2421 111, 221, 185, 437, 265, 265, 409, 717, 221, 64, 2422 265, 445, 717, 109, 109, 111, 111, 266, 185, 239, 2423 129, 1224, 185, 694, 111, 55, 1527, 340, 82, 221, 2424 405, 251, 813, 109, 110, 577, 109, 114, 251, 259, 2425 823, 272, 899, 112, 264, 265, 266, 116, 279, 116, 2426 251, 271, 113, 266, 109, 109, 147, 370, 131, 251, 2427 811, 823, 115, 985, 251, 132, 811, 97, 11, 160, 2428 800, 1274, 96, 792, 294, 395, 0, 82, 811, 112, 2429 503, 251, 1401, 44, 45, 146, 306, 294, 619, 85, 2430 109, 811, 923, 624, 185, 186, 432, 601, 122, 72, 2431 811, 811, 322, 423, 479, 110, 811, 327, 32, 429, 2432 83, 84, 110, 1471, 327, 1287, 347, 113, 209, 1477, 2433 340, 111, 1048, 113, 344, 130, 3, 82, 348, 349, 2434 221, 116, 130, 364, 72, 110, 1451, 368, 111, 1497, 2435 130, 588, 66, 363, 1502, 83, 84, 367, 209, 932, 2436 370, 96, 251, 114, 109, 130, 405, 256, 251, 3, 2437 251, 1210, 1210, 193, 1273, 1274, 680, 109, 251, 111, 2438 1485, 109, 1487, 256, 265, 395, 1495, 122, 239, 116, 2439 931, 1500, 72, 630, 116, 405, 216, 90, 91, 525, 2440 1393, 116, 405, 83, 84, 132, 226, 845, 931, 116, 2441 132, 1520, 0, 423, 252, 425, 426, 49, 1527, 429, 2442 271, 524, 432, 744, 128, 132, 998, 131, 425, 426, 2443 931, 111, 125, 126, 119, 120, 1007, 1008, 116, 116, 2444 479, 116, 131, 453, 905, 109, 327, 72, 1287, 111, 2445 966, 113, 665, 130, 132, 306, 680, 132, 83, 84, 2446 112, 471, 432, 589, 116, 1385, 1386, 348, 130, 479, 2447 116, 481, 109, 483, 294, 655, 479, 487, 1440, 0, 2448 483, 113, 706, 493, 130, 1447, 111, 940, 980, 950, 2449 116, 646, 483, 344, 1393, 505, 116, 507, 109, 937, 2450 510, 483, 512, 513, 130, 1126, 72, 221, 505, 109, 2451 520, 481, 132, 510, 524, 525, 513, 83, 84, 109, 2452 823, 686, 735, 483, 405, 1098, 1500, 109, 417, 823, 2453 4, 5, 6, 7, 8, 9, 1498, 251, 116, 72, 2454 110, 74, 75, 653, 417, 111, 1520, 116, 437, 109, 2455 83, 84, 110, 1527, 132, 525, 445, 112, 116, 569, 2456 570, 116, 112, 132, 437, 802, 116, 577, 1084, 566, 2457 807, 1287, 445, 1089, 425, 426, 109, 209, 588, 589, 2458 116, 114, 903, 593, 110, 88, 89, 116, 116, 599, 2459 116, 601, 481, 110, 483, 69, 132, 71, 110, 620, 2460 483, 1440, 483, 132, 132, 110, 487, 112, 1447, 619, 2461 483, 116, 112, 112, 624, 636, 626, 116, 116, 589, 2462 630, 116, 442, 633, 634, 635, 131, 132, 466, 650, 2463 66, 110, 1114, 936, 132, 349, 1118, 132, 72, 271, 2464 743, 651, 493, 653, 110, 1361, 82, 686, 468, 83, 2465 84, 109, 110, 111, 72, 1116, 74, 75, 895, 1498, 2466 110, 512, 294, 92, 93, 83, 84, 860, 10, 11, 2467 12, 13, 14, 683, 306, 115, 686, 998, 110, 109, 2468 57, 117, 808, 109, 116, 505, 110, 880, 694, 527, 2469 510, 109, 116, 513, 532, 109, 114, 39, 109, 709, 2470 710, 711, 64, 110, 942, 132, 589, 717, 718, 116, 2471 731, 866, 109, 904, 904, 1176, 1177, 110, 599, 904, 2472 601, 110, 904, 116, 160, 67, 577, 116, 1444, 106, 2473 1446, 904, 109, 743, 744, 109, 904, 111, 748, 749, 2474 110, 906, 132, 581, 904, 72, 116, 74, 75, 115, 2475 116, 10, 11, 12, 13, 14, 83, 84, 472, 117, 2476 85, 86, 87, 112, 1504, 123, 124, 1504, 619, 483, 2477 109, 1504, 111, 624, 744, 110, 1304, 114, 155, 785, 2478 39, 116, 792, 1499, 109, 221, 111, 114, 113, 114, 2479 800, 680, 802, 109, 804, 111, 114, 807, 808, 902, 2480 110, 811, 109, 1011, 111, 686, 116, 680, 67, 110, 2481 117, 118, 110, 823, 652, 116, 654, 706, 116, 132, 2482 109, 453, 111, 259, 1145, 85, 86, 87, 264, 132, 2483 109, 72, 111, 706, 110, 76, 717, 718, 808, 110, 2484 116, 218, 83, 84, 109, 116, 111, 114, 668, 109, 2485 109, 111, 111, 113, 114, 744, 862, 677, 117, 118, 2486 66, 681, 109, 873, 111, 110, 704, 906, 109, 109, 2487 111, 116, 82, 505, 110, 507, 117, 118, 510, 1034, 2488 116, 513, 873, 110, 1121, 895, 0, 1, 109, 116, 2489 111, 873, 902, 903, 904, 272, 906, 112, 110, 905, 2490 109, 1114, 279, 1224, 116, 1118, 1119, 621, 918, 110, 2491 111, 117, 109, 349, 82, 29, 30, 110, 32, 1084, 2492 1381, 931, 932, 116, 1089, 808, 936, 58, 59, 43, 2493 811, 941, 942, 903, 118, 49, 1397, 127, 109, 941, 2494 111, 128, 823, 57, 950, 94, 117, 118, 131, 63, 2495 941, 909, 66, 911, 160, 69, 966, 111, 109, 941, 2496 111, 109, 110, 111, 1480, 109, 117, 118, 82, 83, 2497 347, 109, 4, 5, 6, 7, 8, 9, 112, 985, 2498 109, 110, 111, 697, 873, 115, 116, 364, 998, 112, 2499 873, 368, 106, 112, 430, 109, 1106, 711, 44, 45, 2500 873, 110, 116, 505, 110, 507, 1467, 1468, 510, 1019, 2501 1020, 513, 110, 1529, 903, 221, 109, 110, 111, 1, 2502 110, 1234, 110, 904, 110, 906, 1247, 1248, 1249, 1039, 2503 1036, 109, 72, 147, 74, 75, 472, 69, 112, 71, 2504 111, 155, 114, 83, 84, 1084, 160, 116, 1039, 1019, 2505 1089, 683, 131, 259, 431, 936, 114, 1039, 264, 114, 2506 4, 5, 6, 7, 8, 9, 109, 49, 112, 1079, 2507 112, 185, 186, 110, 1084, 551, 552, 897, 112, 1089, 2508 553, 554, 72, 110, 74, 75, 76, 201, 1098, 33, 2509 804, 942, 112, 83, 84, 209, 1106, 58, 59, 60, 2510 132, 112, 130, 1206, 218, 559, 560, 221, 1321, 72, 2511 1116, 1121, 1325, 76, 228, 130, 130, 116, 956, 109, 2512 83, 84, 29, 105, 110, 69, 110, 71, 115, 243, 2513 115, 113, 112, 247, 110, 1145, 114, 251, 252, 112, 2514 978, 115, 109, 349, 982, 116, 109, 998, 110, 132, 2515 1039, 265, 266, 110, 117, 118, 1039, 593, 272, 873, 2516 555, 556, 557, 558, 146, 279, 1039, 116, 110, 110, 2517 1176, 1177, 110, 155, 110, 1145, 116, 1187, 1188, 110, 2518 110, 110, 110, 110, 110, 621, 1188, 110, 110, 110, 2519 626, 110, 1189, 1190, 1032, 1192, 1206, 1188, 110, 110, 2520 1210, 110, 1199, 1084, 1201, 1187, 1188, 115, 1089, 1422, 2521 29, 588, 130, 327, 1224, 131, 110, 116, 1228, 1210, 2522 112, 112, 110, 205, 430, 110, 1228, 209, 1210, 72, 2523 1050, 74, 75, 347, 348, 110, 116, 1228, 116, 112, 2524 83, 84, 114, 620, 130, 110, 1228, 110, 110, 116, 2525 364, 112, 110, 110, 368, 110, 1145, 239, 109, 636, 2526 116, 697, 116, 1273, 1274, 379, 472, 1377, 111, 109, 2527 112, 109, 1282, 650, 109, 711, 1514, 1287, 109, 112, 2528 130, 395, 873, 132, 110, 115, 918, 1001, 110, 271, 2529 115, 405, 274, 110, 128, 72, 1287, 74, 75, 76, 2530 1282, 115, 114, 1273, 112, 1287, 83, 84, 132, 423, 2531 1320, 110, 294, 1504, 1504, 429, 112, 431, 1320, 1504, 2532 112, 1210, 1504, 116, 306, 1039, 110, 1210, 110, 1320, 2533 110, 1504, 109, 112, 112, 1224, 1504, 1210, 1320, 72, 2534 1505, 74, 75, 76, 1504, 112, 110, 112, 47, 112, 2535 83, 84, 466, 112, 731, 1376, 132, 471, 340, 132, 2536 1357, 132, 344, 132, 1529, 479, 132, 1377, 804, 483, 2537 1480, 30, 115, 487, 110, 1381, 490, 115, 492, 130, 2538 110, 363, 110, 1393, 115, 367, 463, 593, 370, 112, 2539 72, 1397, 74, 75, 76, 112, 112, 112, 1287, 112, 2540 112, 83, 84, 284, 1287, 110, 112, 109, 1418, 1247, 2541 1248, 1249, 112, 527, 1287, 621, 1418, 109, 532, 109, 2542 626, 60, 110, 82, 83, 306, 307, 1418, 114, 110, 2543 1440, 132, 112, 112, 110, 112, 1418, 1447, 110, 1449, 2544 96, 1451, 96, 425, 426, 109, 109, 1079, 132, 1440, 2545 115, 1042, 110, 1504, 1504, 110, 1447, 110, 1440, 1504, 2546 110, 1467, 1468, 344, 116, 1447, 1505, 581, 42, 130, 2547 1480, 453, 132, 1187, 588, 1485, 1296, 1487, 110, 110, 2548 96, 132, 96, 132, 466, 599, 110, 601, 1498, 132, 2549 1529, 697, 110, 110, 1504, 1505, 1210, 132, 110, 380, 2550 115, 112, 1505, 112, 1514, 711, 620, 1498, 109, 491, 2551 132, 493, 132, 495, 110, 115, 1498, 115, 895, 1529, 2552 110, 110, 636, 505, 132, 507, 1529, 641, 510, 110, 2553 512, 513, 1055, 562, 564, 561, 650, 976, 652, 653, 2554 654, 563, 524, 1468, 565, 1210, 49, 1385, 1386, 1539, 2555 1363, 1440, 1119, 1297, 1325, 1447, 1070, 1440, 1447, 683, 2556 63, 66, 683, 66, 1447, 1001, 69, 1440, 1282, 1089, 2557 75, 911, 686, 1287, 1447, 919, 690, 581, 692, 696, 2558 866, 647, 696, 970, 243, 1423, 721, 938, 1228, 731, 2559 704, -1, 669, 483, 569, 577, -1, 569, 804, 569, 2560 -1, -1, -1, 717, 718, 70, 588, -1, 73, 1498, 2561 -1, 76, 117, 78, -1, 1498, -1, 731, -1, 1210, 2562 85, -1, -1, 1504, 3, 1498, -1, -1, 1448, -1, 2563 1450, 10, 11, 12, 13, 14, -1, 619, -1, -1, 2564 -1, -1, 624, 1481, 147, -1, -1, 72, 630, 74, 2565 75, 76, 1490, -1, -1, 160, -1, 160, 83, 84, 2566 39, -1, -1, 1514, 1484, 189, 1486, 548, 549, 550, 2567 -1, -1, 196, -1, -1, -1, -1, -1, -1, -1, 2568 -1, -1, -1, 186, 109, -1, 111, -1, 67, -1, 2569 -1, -1, 117, 118, -1, -1, -1, 811, -1, -1, 2570 -1, 683, -1, 72, -1, 130, 209, 76, 1528, 823, 2571 1530, 788, 1303, -1, 83, 84, 221, -1, 221, -1, 2572 379, 798, -1, 1543, 1544, 72, 1440, 74, 75, 76, 2573 -1, -1, 669, 1447, -1, 812, 83, 84, -1, 721, 2574 109, -1, -1, -1, 268, -1, -1, 212, 117, 118, 2575 -1, 1187, 866, -1, 259, -1, -1, -1, 872, 264, 2576 -1, 743, 109, -1, 1355, -1, -1, 1358, 3, -1, 2577 117, 118, -1, -1, 279, 10, 11, 12, 13, 14, 2578 -1, 895, -1, 282, 1498, 284, 285, -1, -1, -1, 2579 904, -1, 906, 292, 293, 1001, -1, -1, 322, 913, 2580 -1, -1, -1, -1, 39, -1, 330, 306, 307, 333, 2581 1401, -1, -1, -1, 279, 1406, -1, 1449, -1, 1451, 2582 802, -1, 936, -1, 327, 807, -1, -1, -1, 1206, 2583 463, 490, 67, 492, -1, -1, -1, -1, 0, 1, 2584 -1, -1, 956, 1434, 349, 344, 1282, -1, -1, -1, 2585 -1, 788, -1, 1485, -1, 1487, 970, -1, -1, -1, 2586 -1, 798, -1, -1, 978, -1, -1, -1, 982, -1, 2587 32, -1, -1, 397, 755, 812, -1, 401, -1, -1, 2588 -1, 380, -1, -1, -1, 3, 351, 49, 353, -1, 2589 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 2590 -1, -1, 405, -1, -1, -1, -1, 69, -1, -1, 2591 -1, -1, -1, 895, -1, -1, -1, -1, 1032, 0, 2592 902, 39, -1, -1, -1, 430, -1, 1518, -1, -1, 2593 26, 27, 28, 1524, -1, -1, 918, -1, -1, 1016, 2594 1017, -1, 447, 105, 1535, -1, -1, -1, 1539, 67, 2595 -1, 32, -1, -1, 478, -1, 1070, -1, 940, 941, 2596 942, -1, -1, -1, -1, -1, -1, 472, -1, -1, 2597 1084, -1, -1, -1, -1, 1089, 441, -1, -1, -1, 2598 -1, 1187, 641, -1, -1, 147, -1, -1, 69, -1, 2599 -1, -1, 1106, 155, 156, -1, -1, 1074, 1075, 1376, 2600 -1, -1, 98, -1, 100, -1, 97, 98, 99, 100, 2601 101, 102, 103, 104, 105, 106, 998, -1, -1, -1, 2602 -1, -1, -1, -1, 186, -1, -1, -1, -1, 125, 2603 -1, 690, -1, 692, -1, -1, 669, 696, -1, 201, 2604 131, -1, 204, 205, -1, 569, 570, 209, -1, 548, 2605 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 2606 559, 560, 561, 562, 563, 564, 565, -1, 230, 1183, 2607 -1, -1, 234, -1, 236, 156, 1282, -1, -1, 1016, 2608 1017, -1, -1, 245, -1, 181, -1, -1, 593, 251, 2609 -1, -1, 1206, 189, 256, 191, 192, 1079, -1, -1, 2610 196, -1, 198, 199, 266, -1, -1, -1, -1, -1, 2611 -1, 72, 274, 74, 75, 76, 621, 998, -1, -1, 2612 -1, 626, 83, 84, -1, -1, -1, -1, -1, 0, 2613 -1, -1, 656, 1247, 1248, 1249, 660, 1074, 1075, 1121, 2614 10, 11, 12, 13, 14, 1222, -1, -1, 109, 230, 2615 111, -1, -1, -1, -1, 788, 117, 118, 1039, -1, 2616 -1, 32, -1, -1, -1, 798, -1, -1, -1, 39, 2617 251, -1, 268, -1, -1, 256, -1, 1254, 340, 812, 2618 -1, -1, 344, -1, -1, 1262, 1263, 1264, 350, -1, 2619 -1, -1, 697, -1, -1, 694, -1, 67, 69, -1, 2620 -1, 363, -1, -1, -1, 367, 711, 866, 370, -1, 2621 -1, -1, -1, 872, -1, -1, -1, -1, -1, -1, 2622 -1, -1, -1, -1, 1206, -1, 731, -1, -1, -1, 2623 -1, -1, 10, 11, 12, 13, 14, -1, -1, 109, 2624 -1, 111, -1, -1, -1, -1, 1228, 117, 118, 1326, 2625 -1, -1, -1, -1, 913, 417, 755, -1, -1, -1, 2626 -1, 39, 1376, 1377, -1, -1, 731, -1, 792, 350, 2627 432, 1385, 1386, -1, -1, 437, -1, -1, -1, -1, 2628 26, 27, 28, 445, -1, 156, 785, -1, -1, 67, 2629 -1, -1, -1, -1, 72, -1, 74, 75, 76, 804, 2630 -1, 463, -1, -1, 466, 83, 84, -1, -1, 1423, 2631 -1, 970, 72, -1, 74, 75, 76, 1254, -1, 481, 2632 -1, 483, -1, 83, 84, 1262, 1263, 1264, -1, 491, 2633 -1, 109, -1, 495, -1, -1, 417, -1, 1320, 117, 2634 118, -1, -1, -1, -1, -1, -1, -1, -1, 109, 2635 -1, 432, 98, -1, 100, -1, 437, 117, 118, -1, 2636 -1, -1, 524, 525, 445, -1, 1480, 1481, -1, -1, 2637 -1, -1, -1, -1, -1, -1, 1490, -1, -1, -1, 2638 251, -1, 463, 1016, 1017, 256, 910, -1, -1, 1326, 2639 1504, 1505, -1, -1, -1, -1, -1, -1, -1, -1, 2640 481, -1, 483, -1, -1, -1, 905, -1, 570, -1, 2641 72, 1070, 74, 75, 76, 1529, -1, -1, -1, -1, 2642 -1, 83, 84, -1, -1, -1, 588, 589, -1, -1, 2643 10, 11, 12, 13, 14, 181, 1418, -1, -1, 601, 2644 -1, 1074, 1075, -1, 525, 191, 192, 109, -1, 111, 2645 196, 950, 198, 199, -1, 117, 118, 619, -1, 39, 2646 -1, -1, 624, 987, -1, -1, -1, 1449, 630, 1451, 2647 -1, 633, 634, 635, -1, -1, -1, 573, 574, 350, 2648 1004, -1, -1, -1, -1, -1, 985, 67, -1, 651, 2649 -1, -1, -1, -1, -1, -1, 1001, -1, -1, 998, 2650 -1, -1, -1, 1485, -1, 1487, 602, 669, 589, 605, 2651 606, -1, 608, -1, 610, 611, -1, -1, 680, 615, 2652 616, -1, -1, 72, 1183, 74, 75, 76, -1, 109, 2653 -1, 111, 1514, -1, 83, 84, -1, 117, 118, -1, 2654 1039, -1, -1, -1, 706, -1, 417, 709, -1, -1, 2655 -1, -1, 633, 634, 635, -1, 718, -1, 1082, 721, 2656 109, 432, 111, -1, 0, -1, 437, -1, 117, 118, 2657 651, -1, -1, -1, 445, -1, -1, -1, -1, -1, 2658 -1, 743, 744, -1, -1, -1, -1, 749, 669, 1222, 2659 -1, -1, 463, -1, -1, -1, 32, -1, 1122, 680, 2660 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2661 481, -1, 483, -1, -1, -1, -1, 1116, -1, -1, 2662 -1, 1254, -1, -1, -1, 706, 788, -1, 709, 1262, 2663 1263, 1264, -1, 69, -1, -1, 798, -1, 800, -1, 2664 802, -1, -1, 805, -1, 807, 808, -1, -1, -1, 2665 812, -1, -1, -1, 525, -1, -1, 753, 754, -1, 2666 822, -1, -1, 744, -1, -1, -1, -1, -1, -1, 2667 -1, -1, -1, -1, -1, -1, -1, 1176, 1177, -1, 2668 -1, -1, 1187, -1, -1, -1, -1, -1, -1, -1, 2669 -1, 0, -1, 1326, -1, -1, -1, -1, -1, -1, 2670 -1, -1, -1, 37, 38, -1, 40, 788, -1, -1, 2671 -1, 873, -1, -1, -1, -1, -1, 798, 589, 800, 2672 156, -1, -1, 32, 805, -1, -1, 808, -1, -1, 2673 -1, 812, 66, 895, -1, -1, -1, -1, 72, -1, 2674 902, 903, 76, -1, 906, 79, 80, 81, 82, 83, 2675 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 2676 69, -1, 633, 634, 635, -1, -1, -1, -1, -1, 2677 932, -1, -1, -1, -1, 109, -1, 1282, 940, 941, 2678 651, -1, -1, 117, 118, 119, 120, 121, 122, -1, 2679 -1, -1, 873, -1, -1, -1, -1, -1, 669, -1, 2680 -1, -1, -1, -1, -1, -1, -1, -1, -1, 680, 2681 -1, -1, -1, -1, 910, 251, -1, -1, -1, 915, 2682 256, -1, 903, -1, -1, -1, -1, 573, 574, -1, 2683 -1, -1, -1, -1, -1, 706, 998, -1, 709, -1, 2684 -1, -1, -1, -1, -1, -1, -1, 156, -1, 1011, 2685 -1, -1, -1, -1, 1016, 1017, 602, 1019, 1020, 605, 2686 606, -1, 608, -1, 610, 611, -1, -1, -1, 615, 2687 616, -1, -1, 744, -1, -1, -1, 1039, -1, -1, 2688 -1, -1, 1381, -1, 0, 1, -1, -1, -1, -1, 2689 -1, -1, -1, -1, -1, -1, -1, -1, 1397, -1, 2690 -1, -1, -1, -1, 10, 11, 12, 13, 14, -1, 2691 -1, -1, 1074, 1075, 350, -1, 32, 788, -1, -1, 2692 -1, -1, -1, -1, -1, -1, -1, 798, -1, 800, 2693 -1, -1, -1, 39, 805, 1016, 1017, 808, 1019, 1020, 2694 -1, 812, 251, -1, -1, -1, -1, 256, -1, -1, 2695 66, -1, -1, 69, -1, -1, -1, -1, 1039, 1121, 2696 -1, 67, -1, -1, -1, -1, 72, -1, 1467, 1468, 2697 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 2698 1076, 417, -1, 1145, -1, -1, -1, -1, -1, -1, 2699 -1, -1, -1, 1074, 1075, -1, 432, -1, -1, -1, 2700 -1, 437, 873, 109, -1, -1, -1, 753, 754, 445, 2701 -1, 117, 118, -1, 10, 11, 12, 13, 14, -1, 2702 -1, -1, -1, -1, -1, -1, 1188, 463, -1, -1, 2703 -1, -1, 903, -1, -1, -1, -1, -1, -1, -1, 2704 156, 350, -1, 39, 1206, 481, -1, 483, 1210, -1, 2705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2706 1222, -1, 1224, -1, 1145, -1, 1228, -1, -1, -1, 2707 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 2708 76, -1, -1, -1, -1, -1, -1, 83, 84, 525, 2709 -1, -1, 1254, -1, -1, -1, -1, -1, -1, -1, 2710 1262, 1263, 1264, -1, -1, 221, -1, 1188, 417, 1205, 2711 -1, 1273, 1274, 109, -1, 111, -1, -1, -1, -1, 2712 -1, 117, 118, 432, -1, 1287, -1, -1, 437, 1210, 2713 -1, -1, -1, -1, -1, 251, 445, -1, -1, -1, 2714 -1, 1222, -1, 1224, -1, 1016, 1017, -1, 1019, 1020, 2715 -1, -1, -1, 589, 463, -1, -1, -1, 1320, -1, 2716 -1, -1, -1, -1, 1326, -1, -1, -1, 1039, 915, 2717 -1, -1, 481, 1254, 483, -1, -1, -1, -1, -1, 2718 -1, 1262, 1263, 1264, -1, -1, -1, -1, -1, -1, 2719 -1, -1, 1273, 1274, -1, -1, -1, 633, 634, 635, 2720 -1, -1, -1, 1074, 1075, -1, 1287, -1, -1, -1, 2721 -1, -1, -1, -1, -1, 651, 525, -1, -1, -1, 2722 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2723 -1, 1393, -1, 669, -1, -1, -1, -1, -1, -1, 2724 -1, -1, -1, -1, 680, 1326, -1, 10, 11, 12, 2725 13, 14, -1, -1, -1, -1, 1418, -1, -1, -1, 2726 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2727 706, -1, -1, 709, 1145, -1, 39, -1, 1440, -1, 2728 589, -1, -1, -1, -1, 1447, -1, 53, -1, 55, 2729 -1, -1, 58, 59, 60, -1, 62, -1, -1, -1, 2730 -1, -1, -1, -1, 67, -1, -1, -1, 744, 72, 2731 76, -1, 1393, 76, -1, -1, 432, 1188, -1, -1, 2732 83, 84, 88, 89, 633, 634, 635, -1, -1, -1, 2733 1076, -1, -1, -1, -1, -1, 1498, -1, -1, 1210, 2734 -1, -1, 651, 1505, -1, -1, 109, -1, -1, -1, 2735 -1, 1222, 788, 1224, 117, 118, -1, -1, -1, 1440, 2736 669, -1, 798, -1, 800, -1, 1447, 483, -1, 805, 2737 -1, 680, 808, -1, -1, -1, 812, 10, 11, 12, 2738 13, 14, -1, 1254, -1, -1, -1, -1, -1, -1, 2739 -1, 1262, 1263, 1264, -1, -1, -1, 706, -1, -1, 2740 709, -1, 1273, 1274, -1, -1, 39, -1, -1, 525, 2741 -1, -1, -1, -1, -1, -1, 1287, 1498, -1, -1, 2742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2743 -1, -1, -1, -1, 67, 744, -1, 873, -1, 72, 2744 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 2745 83, 84, -1, -1, -1, 1326, -1, -1, -1, 1205, 2746 -1, -1, -1, -1, -1, -1, -1, 903, -1, -1, 2747 -1, -1, -1, 589, -1, -1, 109, -1, 111, 788, 2748 -1, -1, -1, -1, 117, 118, -1, -1, -1, 798, 2749 -1, 800, -1, -1, -1, -1, 805, -1, -1, 808, 2750 -1, -1, -1, 812, -1, -1, -1, -1, -1, -1, 2751 -1, -1, -1, -1, -1, -1, -1, 633, 634, 635, 2752 -1, -1, 1393, -1, -1, -1, -1, -1, -1, -1, 2753 -1, -1, -1, -1, -1, 651, -1, -1, 3, 4, 2754 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2755 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2756 25, 26, 27, -1, 873, 30, 31, 32, 33, 1440, 2757 -1, 36, -1, -1, 39, 40, 1447, 343, -1, 345, 2758 1016, 1017, -1, 1019, 1020, -1, -1, -1, -1, -1, 2759 356, 357, -1, 709, 903, -1, -1, -1, -1, 64, 2760 -1, -1, 67, 1039, 69, -1, 71, 72, -1, 74, 2761 75, 76, -1, 10, 11, 12, 13, 14, 83, 84, 2762 -1, -1, -1, -1, -1, -1, -1, 1498, -1, -1, 2763 -1, -1, -1, -1, -1, -1, -1, -1, 1074, 1075, 2764 -1, -1, 39, -1, 109, -1, 111, -1, 66, -1, 2765 115, -1, 117, 118, -1, -1, -1, 75, -1, 77, 2766 -1, 79, -1, -1, -1, -1, -1, -1, 86, -1, 2767 67, -1, 49, -1, -1, 72, -1, 74, 75, 76, 2768 -1, -1, -1, -1, 800, -1, 83, 84, -1, 66, 2769 -1, -1, 808, -1, 10, 11, 12, 13, 14, 117, 2770 -1, 119, 120, 121, -1, -1, -1, 1016, 1017, 1145, 2771 1019, 1020, 109, -1, 111, -1, -1, -1, -1, -1, 2772 117, 118, -1, 39, -1, -1, -1, -1, -1, -1, 2773 1039, -1, -1, -1, -1, -1, 113, -1, -1, -1, 2774 117, -1, 160, -1, -1, -1, -1, -1, -1, -1, 2775 -1, 67, 1188, -1, -1, -1, 72, 873, 74, 75, 2776 76, -1, -1, -1, -1, 1074, 1075, 83, 84, 146, 2777 -1, -1, -1, -1, 1210, -1, -1, -1, -1, 156, 2778 -1, -1, -1, 160, -1, -1, 1222, -1, 1224, -1, 2779 -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 2780 -1, 117, 118, 221, -1, 223, 224, 225, -1, -1, 2781 -1, -1, -1, -1, -1, -1, -1, -1, 1254, -1, 2782 -1, -1, -1, -1, -1, 941, 1262, 1263, 1264, -1, 2783 -1, -1, 209, -1, -1, -1, 1145, 1273, 1274, -1, 2784 -1, 259, -1, -1, 221, -1, 264, -1, -1, -1, 2785 -1, 1287, -1, -1, -1, -1, -1, -1, -1, -1, 2786 -1, 279, 239, -1, -1, -1, -1, -1, -1, -1, 2787 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1188, 2788 -1, -1, -1, -1, -1, -1, -1, 264, -1, -1, 2789 1326, -1, -1, -1, 271, -1, -1, -1, -1, -1, 2790 -1, 1210, -1, 1019, 1020, -1, -1, -1, -1, 327, 2791 -1, -1, -1, 1222, -1, 1224, -1, 294, -1, -1, 2792 -1, -1, -1, 1039, -1, -1, -1, -1, -1, 306, 2793 -1, 349, 698, -1, 700, -1, 354, 355, -1, -1, 2794 -1, 707, 708, -1, 362, 1254, 712, -1, -1, -1, 2795 -1, -1, -1, 1262, 1263, 1264, -1, 1393, 724, -1, 2796 -1, -1, -1, 729, 1273, 1274, -1, 344, -1, -1, 2797 -1, -1, 349, -1, -1, -1, -1, -1, 1287, -1, 2798 -1, -1, -1, -1, -1, -1, -1, 405, -1, -1, 2799 -1, 757, -1, -1, -1, -1, -1, -1, -1, -1, 2800 -1, -1, -1, -1, 1440, 423, -1, -1, -1, -1, 2801 428, 1447, 430, -1, -1, -1, -1, 1326, -1, -1, 2802 -1, -1, -1, -1, -1, -1, -1, -1, -1, 447, 2803 -1, -1, 450, 451, -1, -1, -1, -1, -1, -1, 2804 458, -1, -1, -1, -1, -1, -1, -1, 425, 426, 2805 -1, -1, -1, -1, 472, 432, -1, -1, -1, -1, 2806 -1, 479, 1498, -1, -1, -1, -1, -1, -1, -1, 2807 -1, 1187, 1188, -1, -1, -1, 453, -1, -1, -1, 2808 -1, -1, -1, -1, 1393, -1, -1, -1, -1, -1, 2809 856, 857, 858, 859, 1210, 861, -1, -1, -1, -1, 2810 -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, 2811 876, -1, 1228, -1, -1, -1, 493, -1, -1, -1, 2812 -1, -1, -1, -1, 890, -1, -1, -1, 505, -1, 2813 507, 1440, -1, 510, -1, 512, 513, -1, 1447, -1, 2814 -1, -1, -1, -1, -1, -1, -1, -1, 525, -1, 2815 -1, -1, -1, -1, -1, -1, -1, 1273, 1274, -1, 2816 -1, -1, -1, -1, 930, -1, 1282, -1, -1, -1, 2817 -1, 1287, -1, -1, -1, 593, -1, -1, -1, -1, 2818 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1498, 2819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2820 577, -1, -1, 621, 1320, -1, -1, -1, 626, 975, 2821 -1, -1, 589, -1, -1, 981, 593, -1, -1, -1, 2822 986, -1, -1, -1, -1, 991, -1, 993, -1, -1, 2823 -1, 997, -1, 999, 1000, -1, -1, 1003, -1, -1, 2824 -1, -1, 619, -1, -1, -1, 1012, 624, -1, -1, 2825 -1, -1, -1, -1, -1, -1, 633, 634, 635, -1, 2826 -1, -1, -1, -1, 1030, 1031, -1, -1, -1, -1, 2827 -1, -1, -1, -1, 651, -1, -1, 1393, -1, 697, 2828 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2829 -1, 1057, -1, 711, 1060, -1, -1, -1, -1, -1, 2830 -1, -1, 1418, -1, -1, -1, 683, 37, 38, -1, 2831 40, -1, -1, 731, -1, -1, -1, -1, -1, -1, 2832 -1, -1, -1, -1, 1440, -1, -1, -1, -1, -1, 2833 -1, 1447, 709, -1, 711, -1, 66, 1103, -1, -1, 2834 -1, -1, 72, 1109, 1110, -1, 76, -1, -1, 79, 2835 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 2836 -1, -1, -1, 1129, -1, -1, 1132, 744, -1, -1, 2837 1136, -1, -1, -1, 792, -1, -1, -1, 44, 109, 2838 -1, 111, 1498, 1149, 114, -1, 804, 117, 118, 119, 2839 120, 121, 122, -1, -1, -1, 1162, -1, 1164, 1165, 2840 1166, 1167, -1, -1, -1, 823, -1, -1, -1, -1, 2841 -1, -1, -1, -1, 1180, -1, 1182, -1, -1, -1, 2842 1186, -1, -1, 800, -1, 91, -1, 804, -1, -1, 2843 -1, 808, -1, -1, -1, 101, -1, -1, -1, -1, 2844 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1215, 2845 1216, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2846 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2847 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2848 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 2849 32, 157, -1, -1, -1, -1, -1, 39, -1, 1265, 2850 1266, -1, -1, -1, -1, 171, -1, -1, -1, 1275, 2851 -1, -1, -1, -1, -1, -1, -1, -1, 936, -1, 2852 -1, -1, -1, -1, -1, 67, 903, 69, 194, 71, 2853 -1, -1, 74, 75, -1, -1, -1, -1, -1, -1, 2854 -1, 918, 208, -1, -1, -1, -1, -1, 966, -1, 2855 -1, 217, -1, 37, 38, -1, 40, -1, -1, -1, 2856 -1, 227, -1, -1, -1, 942, -1, -1, -1, 111, 2857 1336, -1, 1338, 1339, 1340, 117, 118, -1, -1, -1, 2858 -1, -1, 66, 1001, 1350, -1, 252, -1, 72, -1, 2859 -1, 257, 76, 1359, 1012, 79, 80, 81, 82, 83, 2860 84, -1, 86, 87, 270, -1, -1, -1, -1, -1, 2861 276, -1, 278, -1, -1, -1, -1, -1, 1384, -1, 2862 -1, 998, -1, -1, -1, 109, -1, 111, -1, 295, 2863 -1, -1, -1, 117, 118, 119, 120, 121, 122, -1, 2864 -1, -1, 1019, 1020, -1, -1, 130, -1, -1, -1, 2865 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 2866 -1, 1427, 1428, -1, -1, -1, 1084, -1, -1, -1, 2867 -1, 337, -1, -1, 1440, -1, 342, -1, -1, -1, 2868 1098, 1447, -1, 66, -1, -1, -1, -1, -1, 72, 2869 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 2870 83, 84, 1079, 86, 87, 371, -1, -1, -1, 375, 2871 376, -1, 378, 1479, -1, -1, -1, 1483, -1, 385, 2872 386, -1, 388, 389, -1, 391, 109, 393, 111, -1, 2873 113, 114, -1, -1, 117, 118, 119, 120, 121, 122, 2874 -1, -1, -1, -1, 410, 1511, -1, 1513, -1, -1, 2875 -1, -1, 418, -1, -1, -1, -1, -1, -1, -1, 2876 -1, 155, 156, -1, -1, -1, -1, -1, 1145, 1187, 2877 -1, -1, -1, -1, -1, 1541, 1542, 443, -1, -1, 2878 -1, -1, -1, 1549, 1550, -1, -1, -1, -1, -1, 2879 -1, -1, -1, -1, -1, 189, -1, -1, -1, -1, 2880 -1, -1, 196, 469, -1, -1, -1, -1, -1, 475, 2881 1187, -1, -1, -1, 480, 3, 4, 5, 6, 7, 2882 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2883 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2884 -1, -1, 30, 31, 32, -1, -1, 1224, -1, -1, 2885 516, 39, -1, -1, -1, -1, -1, -1, -1, -1, 2886 -1, -1, -1, -1, 1282, 531, -1, -1, -1, -1, 2887 -1, -1, -1, -1, 268, -1, -1, -1, -1, 67, 2888 -1, 69, -1, 71, -1, -1, 74, 75, -1, -1, 2889 -1, -1, -1, -1, -1, -1, 1273, 1274, -1, -1, 2890 -1, -1, -1, 569, -1, 1282, -1, -1, -1, -1, 2891 -1, -1, 578, -1, -1, -1, -1, -1, -1, 585, 2892 146, -1, -1, -1, -1, 591, 114, -1, 322, -1, 2893 156, -1, -1, -1, 600, -1, 330, 331, -1, 333, 2894 334, -1, 168, 169, -1, -1, -1, -1, -1, -1, 2895 344, -1, 7, -1, 348, 10, 11, 12, 13, 14, 2896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2897 -1, -1, -1, 367, 640, -1, 370, -1, -1, -1, 2898 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 2899 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2900 -1, -1, -1, 397, -1, -1, -1, 401, -1, -1, 2901 676, 66, 67, 239, -1, -1, 1393, 72, 684, -1, 2902 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 2903 -1, 86, 87, -1, -1, -1, -1, 263, 432, -1, 2904 -1, -1, -1, -1, -1, -1, -1, -1, -1, 715, 2905 -1, -1, -1, -1, 109, -1, 111, -1, -1, 725, 2906 726, -1, 117, 118, 119, 120, 121, 122, -1, -1, 2907 -1, -1, 1449, -1, 1451, -1, -1, -1, -1, -1, 2908 -1, -1, -1, -1, 478, -1, -1, 481, -1, -1, 2909 -1, -1, 758, -1, -1, -1, -1, 763, -1, -1, 2910 -1, -1, -1, -1, -1, -1, -1, -1, 1485, -1, 2911 1487, 1529, -1, -1, -1, -1, -1, -1, -1, -1, 2912 -1, -1, -1, -1, -1, -1, 520, -1, -1, -1, 2913 524, 525, -1, -1, -1, -1, -1, 1514, -1, -1, 2914 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2915 -1, -1, -1, 379, -1, -1, -1, -1, -1, -1, 2916 -1, 827, -1, -1, -1, -1, -1, -1, 834, -1, 2917 -1, -1, -1, -1, -1, 569, 570, -1, -1, -1, 2918 -1, 847, -1, 849, -1, -1, -1, -1, -1, -1, 2919 -1, -1, -1, -1, 588, 589, -1, 863, -1, -1, 2920 -1, -1, -1, 869, -1, 599, -1, 601, 602, -1, 2921 -1, -1, -1, -1, 608, 881, -1, -1, 884, -1, 2922 -1, -1, -1, -1, 618, 619, -1, -1, -1, -1, 2923 624, -1, -1, -1, -1, -1, -1, -1, -1, 633, 2924 634, 635, -1, -1, -1, -1, -1, 473, -1, -1, 2925 -1, -1, -1, -1, -1, -1, -1, 651, -1, -1, 2926 -1, -1, 656, 657, -1, -1, 660, 661, -1, -1, 2927 -1, -1, -1, 667, -1, -1, -1, -1, -1, -1, 2928 -1, -1, -1, -1, -1, -1, 512, -1, -1, -1, 2929 -1, -1, 686, -1, -1, 961, -1, -1, -1, 525, 2930 -1, -1, -1, -1, 530, -1, -1, 533, -1, -1, 2931 -1, -1, -1, -1, -1, 709, 710, -1, -1, 545, 2932 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2933 996, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2934 -1, 567, -1, -1, -1, -1, -1, -1, -1, 743, 2935 744, 577, -1, -1, 748, 749, -1, -1, 584, -1, 2936 -1, -1, -1, 589, -1, -1, -1, -1, -1, -1, 2937 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2938 20, 21, 22, 23, 24, 25, 26, 27, 1054, -1, 2939 30, 31, 32, -1, 1060, -1, -1, -1, 792, 39, 2940 -1, -1, -1, -1, -1, -1, 800, -1, -1, -1, 2941 -1, -1, 638, 807, 808, -1, -1, 811, -1, 813, 2942 646, -1, -1, -1, -1, -1, -1, 67, 1094, 823, 2943 -1, -1, 72, 1099, 74, 75, 76, -1, -1, -1, 2944 -1, 1107, -1, 83, 84, -1, 10, 11, 12, 13, 2945 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2946 24, 25, 26, 27, 28, -1, -1, -1, -1, 109, 2947 -1, 111, -1, -1, 1140, 39, -1, 117, 118, -1, 2948 -1, -1, -1, -1, -1, -1, 1152, -1, -1, 1155, 2949 -1, 1157, -1, -1, -1, -1, -1, -1, -1, -1, 2950 -1, 895, -1, 67, -1, 1171, 1172, -1, 902, 903, 2951 904, -1, 906, -1, 78, -1, 910, -1, 744, -1, 2952 746, -1, -1, -1, -1, -1, -1, 1193, -1, -1, 2953 756, -1, -1, -1, -1, -1, 762, 931, 932, -1, 2954 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2955 20, 21, 22, 23, 24, 25, 26, 27, 7, -1, 2956 -1, 10, 11, 12, 13, 14, -1, -1, -1, 39, 2957 -1, -1, 966, -1, 1240, -1, -1, -1, 804, 805, 2958 -1, -1, 808, -1, -1, -1, -1, -1, 37, 38, 2959 39, 40, -1, 987, 988, -1, 822, 67, -1, -1, 2960 -1, -1, -1, -1, 998, -1, -1, -1, -1, -1, 2961 1004, 1005, -1, 1007, 1008, 1009, -1, 66, 67, -1, 2962 -1, -1, -1, 72, -1, 1019, 1020, 76, -1, -1, 2963 79, 80, 81, 82, 83, 84, 862, 86, 87, -1, 2964 866, -1, -1, -1, -1, -1, -1, -1, -1, 1315, 2965 -1, 1317, -1, -1, -1, -1, -1, -1, -1, -1, 2966 109, -1, 111, 1329, -1, 1331, -1, -1, 117, 118, 2967 119, 120, 121, 122, -1, -1, -1, 903, -1, -1, 2968 -1, -1, 1348, -1, -1, -1, -1, -1, 1082, -1, 2969 1084, -1, -1, -1, -1, 1089, -1, -1, 1364, 1365, 2970 -1, -1, -1, -1, 1098, -1, -1, -1, -1, 1375, 2971 -1, -1, 1378, -1, -1, -1, 942, -1, -1, -1, 2972 -1, -1, -1, -1, -1, -1, -1, 1121, 1122, 1123, 2973 -1, -1, -1, 1399, -1, 37, 38, -1, 40, -1, 2974 -1, -1, 1408, -1, 970, 1411, -1, 1413, 1414, 1415, 2975 976, 1145, -1, -1, 980, -1, -1, -1, -1, -1, 2976 -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 2977 72, -1, -1, -1, 76, 1001, -1, 79, 80, 81, 2978 82, 83, 84, -1, 86, 87, 1012, 1453, -1, 1455, 2979 -1, 1457, -1, -1, -1, -1, -1, -1, -1, -1, 2980 -1, -1, -1, -1, -1, -1, 1472, 109, 1034, 111, 2981 1036, -1, 1206, -1, 116, 117, 118, 119, 120, 121, 2982 122, -1, -1, -1, -1, 1051, 1052, -1, -1, -1, 2983 1224, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2984 -1, -1, -1, -1, -1, -1, 1072, -1, -1, -1, 2985 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 2986 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2987 19, 20, 21, 22, 23, 24, 25, 26, 27, 1273, 2988 1274, 30, 31, 32, 33, -1, -1, 36, -1, -1, 2989 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2990 -1, 1127, -1, -1, -1, -1, -1, -1, -1, -1, 2991 -1, -1, -1, -1, -1, -1, -1, -1, 67, 1145, 2992 69, -1, 71, -1, -1, 74, 75, -1, -1, -1, 2993 -1, -1, -1, -1, 1160, 1161, -1, 3, 4, 5, 2994 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2995 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2996 26, 27, 111, -1, 30, 31, 32, 33, 117, 118, 2997 36, 37, 38, 39, 40, 41, -1, 43, -1, -1, 2998 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 2999 -1, 57, -1, -1, -1, 61, 62, -1, 64, 1393, 3000 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3001 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3002 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3003 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3004 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3005 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3006 -1, 127, -1, -1, -1, -1, 132, -1, -1, -1, 3007 -1, -1, -1, -1, -1, 1301, -1, -1, 1304, -1, 3008 -1, -1, -1, -1, -1, -1, 1480, -1, -1, -1, 3009 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3010 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3011 1504, 1505, -1, -1, -1, -1, -1, -1, -1, -1, 3012 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3013 -1, -1, -1, -1, -1, 1529, 3, 4, 5, 6, 3014 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3015 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3016 27, -1, -1, 30, 31, 32, 33, -1, -1, 36, 3017 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3018 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3019 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3020 67, -1, 69, 39, 71, 72, -1, 74, 75, 76, 3021 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3022 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3023 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3024 76, -1, 109, -1, 111, -1, -1, 83, 84, -1, 3025 117, 118, 119, 120, 121, 122, -1, -1, -1, -1, 3026 -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, 3027 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3028 -1, 117, 118, -1, -1, -1, -1, -1, 1514, 3, 3029 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3030 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3031 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3032 -1, -1, 36, 37, 38, 39, 40, 10, 11, 12, 3033 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3034 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3035 -1, -1, 66, 67, -1, 69, 39, 71, 72, -1, 3036 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3037 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3038 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3039 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3040 83, 84, -1, 117, 118, 119, 120, 121, 122, 4, 3041 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3042 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3043 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3044 -1, -1, 37, 38, 39, 40, -1, -1, -1, 10, 3045 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3046 21, 22, 23, 24, 25, 26, 27, 28, -1, -1, 3047 -1, 66, 67, -1, 69, -1, 71, 72, 39, 74, 3048 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3049 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3050 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3051 -1, -1, -1, -1, 109, -1, 111, 78, -1, -1, 3052 -1, 116, 117, 118, 119, 120, 121, 122, 4, 5, 3053 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3054 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3055 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3056 -1, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3057 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3058 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3059 66, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3060 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3061 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3062 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3063 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3064 116, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3065 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3066 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3067 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3068 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3069 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3070 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3071 67, -1, 69, 39, 71, 72, -1, 74, 75, 76, 3072 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3073 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3074 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3075 -1, -1, 109, -1, 111, -1, -1, -1, -1, 116, 3076 117, 118, 119, 120, 121, 122, 4, 5, 6, 7, 3077 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3078 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3079 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3080 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3082 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3083 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3084 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3086 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3087 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3088 118, 119, 120, 121, 122, 4, 5, 6, 7, 8, 3089 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3090 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3091 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3092 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 3093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3094 -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, 3095 69, -1, 71, 72, -1, 74, 75, 76, -1, -1, 3096 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3098 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3099 109, -1, 111, -1, -1, -1, -1, -1, 117, 118, 3100 119, 120, 121, 122, 4, 5, 6, 7, 8, 9, 3101 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3102 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3103 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3104 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3105 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3106 -1, -1, -1, -1, -1, -1, 66, 67, -1, 69, 3107 -1, 71, 72, -1, 74, 75, 76, -1, -1, 79, 3108 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3109 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3110 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3111 -1, 111, -1, -1, -1, -1, -1, 117, 118, 119, 3112 120, 121, 122, 4, 5, 6, 7, 8, 9, 10, 3113 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3114 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3115 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3116 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3117 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3118 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3119 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3120 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3121 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3122 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3123 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, 3124 121, 122, 0, -1, -1, 3, 4, 5, 6, 7, 3125 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3126 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3127 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3128 -1, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3129 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3130 -1, -1, -1, -1, -1, -1, 64, -1, -1, 67, 3131 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3132 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3133 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3134 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3135 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3136 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3137 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3138 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3139 32, 33, -1, -1, 36, -1, -1, 39, 40, -1, 3140 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3141 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3142 -1, -1, 64, -1, -1, 67, -1, 69, -1, 71, 3143 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 3144 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3145 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3146 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3147 -1, -1, -1, -1, -1, 117, 118, 3, 4, 5, 3148 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3149 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3150 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3151 -1, -1, -1, 39, -1, 10, 11, 12, 13, 14, 3152 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3153 25, 26, 27, -1, -1, 30, 31, 32, 33, 34, 3154 35, 67, -1, 69, 39, 71, 72, -1, 74, 75, 3155 76, -1, -1, -1, -1, -1, -1, 83, 84, -1, 3156 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3157 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3158 75, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3159 -1, 117, 118, 3, 4, 5, 6, 7, 8, 9, 3160 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3161 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3162 30, 31, 32, 33, -1, -1, 36, -1, -1, 39, 3163 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3164 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3165 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3166 -1, 71, -1, -1, 74, 75, -1, -1, 78, 4, 3167 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3168 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3169 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3170 -1, 111, -1, -1, 39, -1, -1, 117, 118, -1, 3171 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3172 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3173 -1, -1, 67, -1, 69, -1, 71, 72, -1, 74, 3174 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 3175 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3176 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3177 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3178 -1, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3179 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3180 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3181 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3182 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3183 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3184 26, 27, -1, -1, 30, 31, 32, 67, -1, 69, 3185 -1, 71, -1, 39, 74, 75, -1, 4, 5, 6, 3186 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3187 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3188 27, 67, -1, 30, 31, 32, -1, -1, 74, 75, 3189 110, 111, 39, -1, -1, -1, -1, 117, 118, -1, 3190 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3191 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3192 67, -1, 69, 109, 71, 111, -1, 74, 75, -1, 3193 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3194 -1, -1, -1, -1, -1, -1, -1, -1, -1, 96, 3195 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3196 -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, 3197 117, 118, 4, 5, 6, 7, 8, 9, 10, 11, 3198 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3199 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3200 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3201 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3202 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3203 -1, 30, 31, 32, -1, 67, -1, 69, -1, 71, 3204 39, 40, 74, 75, -1, -1, -1, -1, -1, -1, 3205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3206 -1, -1, -1, -1, 96, -1, -1, -1, 67, -1, 3207 -1, -1, -1, -1, -1, 74, 75, -1, -1, 111, 3208 -1, -1, -1, -1, -1, 117, 118, 4, 5, 6, 3209 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3210 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3211 27, -1, 111, 30, 31, 32, 115, -1, 117, 118, 3212 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3215 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3216 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3217 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3218 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3219 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3220 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3222 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3223 74, 75, -1, 4, 5, 6, 7, 8, 9, 10, 3224 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3225 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3226 31, 32, -1, -1, -1, -1, -1, 111, 39, -1, 3227 -1, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3228 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3229 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3230 71, -1, -1, 74, 75, -1, 4, 5, 6, 7, 3231 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3232 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3233 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3234 111, 39, -1, -1, -1, -1, 117, 118, -1, -1, 3235 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3236 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3237 -1, 69, -1, 71, -1, -1, 74, 75, 10, 11, 3238 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3239 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3240 32, -1, -1, -1, -1, 37, 38, 39, 40, -1, 3241 -1, -1, -1, 111, -1, -1, -1, -1, -1, 117, 3242 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3243 -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, 3244 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3245 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3247 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3248 -1, -1, 114, -1, -1, 117, 118, 119, 120, 121, 3249 122, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3250 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3251 -1, 30, 31, 32, -1, -1, -1, -1, 37, 38, 3252 39, 40, 10, 11, 12, 13, 14, 15, 16, 17, 3253 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3254 -1, -1, 30, 31, 32, -1, -1, 66, 67, -1, 3255 -1, 39, -1, 72, -1, 74, 75, 76, -1, -1, 3256 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3257 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3258 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 3259 109, 110, 111, -1, -1, 83, 84, -1, 117, 118, 3260 119, 120, 121, 122, 10, 11, 12, 13, 14, 15, 3261 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3262 26, 27, -1, 111, 30, 31, 32, -1, -1, 117, 3263 118, 37, 38, 39, 40, 10, 11, 12, 13, 14, 3264 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3265 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3266 66, 67, -1, -1, 39, -1, 72, -1, 74, 75, 3267 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3268 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3269 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3270 75, -1, -1, 109, -1, 111, -1, -1, 83, 84, 3271 -1, 117, 118, 119, 120, 121, 122, 10, 11, 12, 3272 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3273 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3274 -1, -1, 117, 118, 37, 38, 39, 40, 10, 11, 3275 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3276 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3277 32, -1, -1, 66, 67, -1, -1, 39, 40, 72, 3278 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3279 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3280 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3281 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3282 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3283 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3284 20, 21, 22, 23, 24, 25, 26, 27, -1, 111, 3285 30, 31, 32, 115, -1, 117, 118, 37, 38, 39, 3286 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3287 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3288 -1, 30, 31, 32, -1, -1, 66, 67, -1, -1, 3289 39, 40, 72, -1, 74, 75, 76, -1, -1, 79, 3290 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3291 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3292 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3293 -1, 111, -1, -1, -1, -1, -1, 117, 118, 119, 3294 120, 121, 122, 10, 11, 12, 13, 14, 15, 16, 3295 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3296 27, -1, 111, 30, 31, 32, 115, -1, 117, 118, 3297 37, 38, 39, 40, -1, 10, 11, 12, 13, 14, 3298 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3299 25, 26, 27, 28, -1, 30, 31, 32, -1, 66, 3300 67, -1, -1, -1, 39, 72, -1, 74, 75, 76, 3301 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3302 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3303 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3304 75, 76, 109, 78, 111, -1, -1, -1, 83, 84, 3305 117, 118, 119, 120, 121, 122, -1, -1, -1, -1, 3306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3307 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3308 -1, -1, 117, 118, 10, 11, 12, 13, 14, 15, 3309 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3310 26, 27, 28, -1, 30, 31, 32, -1, -1, -1, 3311 -1, -1, -1, 39, 10, 11, 12, 13, 14, 15, 3312 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3313 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3314 -1, 67, -1, 39, -1, -1, 72, -1, 74, 75, 3315 76, -1, 78, -1, -1, -1, -1, 83, 84, -1, 3316 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3317 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3318 76, -1, -1, -1, -1, 111, -1, 83, 84, -1, 3319 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3321 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3322 -1, 117, 118, 10, 11, 12, 13, 14, 15, 16, 3323 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3324 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3325 -1, -1, 39, 10, 11, 12, 13, 14, 15, 16, 3326 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3327 27, 28, -1, 30, 31, 32, -1, -1, -1, -1, 3328 67, -1, 39, -1, -1, 72, -1, 74, 75, 76, 3329 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 3330 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3331 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3332 -1, 78, 109, -1, 111, -1, -1, -1, -1, -1, 3333 117, 118, -1, -1, -1, -1, -1, -1, -1, -1, 3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3335 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3336 117, 118, 10, 11, 12, 13, 14, 15, 16, 17, 3337 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3338 28, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3339 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 3340 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3341 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 3342 -1, 39, -1, -1, -1, -1, 74, 75, -1, -1, 3343 78, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3344 19, 20, 21, 22, 23, 24, 25, 26, 27, 67, 3345 -1, 30, 31, 32, -1, -1, 74, 75, -1, -1, 3346 39, -1, -1, 111, -1, -1, -1, -1, -1, 117, 3347 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3348 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3349 -1, -1, -1, 111, -1, 74, 75, -1, -1, 117, 3350 118, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3351 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3352 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3353 39, -1, 111, -1, -1, -1, -1, -1, 117, 118, 3354 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3355 20, 21, 22, 23, 24, 25, 26, 27, 67, -1, 3356 30, 31, 32, -1, -1, 74, 75, -1, -1, 39, 3357 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3358 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3359 30, 31, 32, -1, -1, -1, -1, 67, -1, 39, 3360 -1, -1, 111, -1, 74, 75, -1, -1, 117, 118, 3361 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3362 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3363 -1, -1, -1, -1, 74, 75, -1, -1, -1, -1, 3364 -1, 111, -1, -1, -1, -1, -1, 117, 118, -1, 3365 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3366 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3367 -1, 111, 30, 31, 32, -1, -1, 117, 118, -1, 3368 -1, 39, 10, 11, 12, 13, 14, 15, 16, 17, 3369 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3370 -1, -1, 30, 31, 32, -1, -1, -1, -1, 67, 3371 -1, 39, -1, -1, -1, -1, 74, 75, -1, -1, 3372 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3373 20, 21, 22, 23, 24, 25, 26, 27, -1, 67, 3374 30, 31, 32, -1, -1, -1, 74, 75, -1, 39, 3375 -1, -1, -1, 111, -1, -1, -1, -1, -1, 117, 3376 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3377 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3378 -1, -1, -1, 111, 74, 75, -1, -1, -1, 117, 3379 118, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3380 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3381 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3382 -1, -1, -1, -1, -1, -1, 39, 117, 118, -1, 3383 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3385 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3386 -1, 74, 75, 37, 38, -1, 40, 41, -1, 43, 3387 -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 3388 -1, -1, 56, 57, -1, -1, -1, 61, 62, -1, 3389 64, -1, 66, -1, -1, -1, -1, 110, 72, -1, 3390 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3391 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3392 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3393 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3394 114, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3395 -1, 37, 38, 127, 40, 41, -1, 43, 132, -1, 3396 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3397 -1, 57, -1, -1, -1, 61, 62, -1, 64, -1, 3398 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3399 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3400 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3402 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3403 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3404 -1, 127, -1, -1, -1, -1, 132, 4, 5, 6, 3405 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3406 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3407 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3408 -1, -1, 39, -1, 37, 38, -1, 40, 41, -1, 3409 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 3410 53, -1, -1, 56, 57, -1, -1, -1, 61, 62, 3411 67, 64, 69, 66, 71, -1, -1, 74, 75, 72, 3412 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3413 83, 84, -1, 86, 87, -1, -1, -1, -1, 96, 3414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3415 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3416 -1, 114, -1, -1, 117, 118, 119, 120, 121, 122, 3417 -1, -1, 37, 38, 127, 40, 41, -1, 43, 44, 3418 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3419 -1, -1, 57, -1, -1, -1, 61, 62, -1, 64, 3420 -1, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3421 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3422 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3423 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3424 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3425 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3426 37, 38, 127, 40, 41, -1, 43, -1, -1, 46, 3427 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, 3428 57, -1, -1, -1, 61, 62, -1, 64, -1, 66, 3429 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3430 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3431 87, -1, -1, -1, -1, -1, -1, 37, 38, -1, 3432 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3433 -1, -1, 109, -1, 111, -1, -1, 114, -1, -1, 3434 117, 118, 119, 120, 121, 122, 66, -1, -1, -1, 3435 127, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3436 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3437 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3438 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3439 -1, 111, -1, -1, 114, -1, -1, 117, 118, 119, 3440 120, 121, 122, 66, -1, -1, -1, -1, -1, 72, 3441 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3442 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3443 -1, 37, 38, -1, 40, -1, -1, -1, -1, -1, 3444 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3445 37, 38, -1, 40, 117, 118, 119, 120, 121, 122, 3446 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3447 76, -1, -1, 79, 80, 81, 82, 83, 84, 66, 3448 86, 87, -1, -1, -1, 72, -1, -1, -1, 76, 3449 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3450 87, -1, -1, 109, -1, 111, -1, 37, 38, -1, 3451 40, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3452 -1, -1, 109, -1, 111, -1, 37, 38, -1, 40, 3453 117, 118, 119, 120, 121, 122, 66, -1, -1, -1, 3454 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 3455 80, 81, 82, 83, 84, 66, 86, 87, -1, -1, 3456 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3457 81, 82, 83, 84, -1, 86, 87, -1, -1, 109, 3458 -1, -1, -1, 37, 38, -1, 40, 117, 118, 119, 3459 120, 121, 122, -1, -1, -1, -1, -1, 109, -1, 3460 -1, -1, -1, -1, -1, -1, 117, 118, 119, 120, 3461 121, 122, 66, -1, -1, -1, -1, -1, 72, -1, 3462 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3463 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3465 -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, 3466 -1, -1, -1, 117, 118, 119, 120, 121, 122, 4, 3467 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3468 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3469 25, 26, 27, -1, -1, -1, -1, -1, -1, -1, 3470 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 3471 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3473 -1, -1, 67, -1, 69, -1, 71, 72, -1, 74, 3474 75, 76, -1, -1, -1, -1, -1, -1, 83, 84, 3475 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3476 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3477 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3478 -1, -1, -1, -1, -1, -1, 39, -1, -1, -1, 3479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3482 -1, 74, 75, 3, 4, 5, 6, 7, 8, 9, 3483 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3484 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3485 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3488 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 3489 -1, 71, -1, -1, 74, 75, 4, 5, 6, 7, 3490 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3491 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3492 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3493 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3495 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3496 -1, 69, -1, 71, -1, -1, 74, 75 3497 }; 3498 3499 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3500 symbol of state STATE-NUM. */ 3501 static const yytype_uint16 yystos[] = 3502 { 3503 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3504 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3505 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 3506 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 3507 76, 83, 84, 109, 111, 117, 118, 137, 140, 149, 3508 198, 212, 213, 214, 215, 216, 217, 218, 219, 220, 3509 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 3510 232, 233, 234, 235, 236, 237, 239, 240, 241, 242, 3511 243, 244, 246, 254, 255, 282, 283, 284, 292, 295, 3512 301, 302, 304, 306, 307, 313, 318, 322, 323, 324, 3513 325, 326, 327, 328, 329, 349, 366, 367, 368, 369, 3514 72, 139, 140, 149, 215, 217, 225, 227, 236, 240, 3515 242, 283, 82, 109, 311, 312, 313, 311, 311, 72, 3516 74, 75, 76, 138, 139, 272, 273, 293, 294, 74, 3517 75, 273, 109, 304, 11, 199, 109, 149, 318, 323, 3518 324, 325, 327, 328, 329, 112, 134, 111, 218, 225, 3519 227, 322, 326, 365, 366, 369, 370, 135, 107, 131, 3520 276, 114, 135, 173, 74, 75, 137, 271, 135, 135, 3521 135, 116, 135, 74, 75, 109, 149, 308, 317, 318, 3522 319, 320, 321, 322, 326, 330, 331, 332, 333, 334, 3523 340, 3, 28, 78, 238, 3, 5, 74, 111, 149, 3524 217, 228, 232, 234, 243, 284, 322, 326, 369, 215, 3525 217, 227, 236, 240, 242, 283, 322, 326, 33, 233, 3526 233, 228, 234, 135, 233, 228, 233, 228, 75, 109, 3527 114, 273, 284, 114, 273, 233, 228, 116, 135, 135, 3528 0, 134, 109, 173, 311, 311, 134, 111, 225, 227, 3529 367, 271, 271, 131, 227, 109, 149, 308, 318, 322, 3530 111, 149, 369, 305, 230, 313, 109, 289, 109, 109, 3531 51, 109, 37, 38, 40, 66, 72, 76, 79, 80, 3532 81, 82, 86, 87, 109, 111, 119, 120, 121, 122, 3533 136, 140, 141, 142, 143, 148, 149, 150, 151, 152, 3534 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 3535 164, 167, 225, 275, 291, 365, 370, 227, 110, 110, 3536 110, 110, 110, 110, 110, 74, 75, 111, 225, 271, 3537 349, 367, 111, 117, 149, 164, 217, 218, 224, 227, 3538 231, 232, 236, 239, 240, 242, 261, 262, 266, 267, 3539 268, 269, 283, 349, 361, 362, 363, 364, 369, 370, 3540 112, 109, 322, 326, 369, 109, 116, 132, 111, 114, 3541 149, 164, 277, 277, 115, 134, 116, 132, 109, 116, 3542 132, 116, 132, 116, 132, 311, 132, 318, 319, 320, 3543 321, 331, 332, 333, 334, 227, 317, 330, 64, 310, 3544 111, 311, 348, 349, 311, 311, 173, 134, 109, 311, 3545 348, 311, 311, 227, 308, 109, 109, 226, 227, 225, 3546 227, 112, 134, 225, 365, 370, 173, 134, 271, 276, 3547 217, 232, 322, 326, 173, 134, 293, 227, 236, 132, 3548 227, 227, 291, 247, 245, 257, 273, 256, 227, 293, 3549 132, 132, 304, 134, 139, 270, 3, 135, 207, 208, 3550 222, 224, 227, 134, 310, 109, 310, 164, 318, 227, 3551 109, 134, 271, 114, 33, 34, 35, 225, 285, 286, 3552 288, 134, 128, 131, 290, 134, 228, 233, 234, 271, 3553 314, 315, 316, 109, 141, 109, 148, 109, 148, 151, 3554 109, 148, 109, 109, 148, 148, 111, 164, 169, 173, 3555 225, 274, 365, 369, 112, 134, 82, 85, 86, 87, 3556 109, 111, 113, 114, 97, 98, 99, 100, 101, 102, 3557 103, 104, 105, 106, 131, 166, 151, 151, 117, 123, 3558 124, 119, 120, 88, 89, 90, 91, 125, 126, 92, 3559 93, 118, 127, 128, 94, 95, 129, 131, 372, 109, 3560 149, 344, 345, 346, 347, 348, 110, 116, 109, 348, 3561 349, 109, 348, 349, 134, 109, 225, 367, 112, 134, 3562 135, 111, 225, 227, 360, 361, 369, 370, 135, 109, 3563 111, 149, 318, 335, 336, 337, 338, 339, 340, 341, 3564 342, 343, 349, 350, 351, 352, 353, 354, 355, 149, 3565 369, 227, 135, 135, 149, 225, 227, 362, 271, 225, 3566 349, 362, 271, 109, 134, 134, 134, 112, 134, 72, 3567 111, 113, 140, 273, 277, 278, 279, 280, 281, 134, 3568 134, 134, 134, 134, 134, 308, 110, 110, 110, 110, 3569 110, 110, 110, 317, 330, 109, 276, 112, 207, 134, 3570 308, 169, 275, 169, 275, 308, 111, 207, 310, 173, 3571 134, 207, 110, 40, 111, 115, 225, 248, 249, 250, 3572 365, 114, 116, 371, 131, 258, 114, 227, 263, 264, 3573 265, 268, 269, 110, 116, 173, 134, 117, 164, 134, 3574 224, 227, 262, 361, 369, 302, 303, 109, 149, 335, 3575 110, 116, 372, 273, 285, 109, 114, 273, 275, 285, 3576 110, 116, 109, 141, 110, 130, 274, 274, 274, 145, 3577 164, 275, 274, 112, 134, 110, 116, 110, 109, 149, 3578 348, 356, 357, 358, 359, 110, 116, 164, 111, 139, 3579 144, 145, 134, 111, 139, 144, 164, 151, 151, 151, 3580 152, 152, 153, 153, 154, 154, 154, 154, 155, 155, 3581 156, 157, 158, 159, 160, 130, 169, 164, 134, 345, 3582 346, 347, 227, 344, 311, 311, 164, 275, 134, 270, 3583 134, 225, 349, 362, 227, 231, 112, 112, 134, 369, 3584 112, 109, 134, 318, 336, 337, 338, 341, 351, 352, 3585 353, 112, 134, 227, 335, 339, 350, 109, 311, 354, 3586 372, 311, 311, 372, 109, 311, 354, 311, 311, 311, 3587 311, 349, 225, 360, 370, 271, 112, 116, 112, 116, 3588 372, 225, 362, 372, 259, 260, 261, 262, 259, 259, 3589 271, 164, 134, 111, 273, 130, 116, 371, 277, 111, 3590 130, 281, 29, 209, 210, 271, 259, 139, 308, 139, 3591 310, 109, 348, 349, 109, 348, 349, 141, 349, 173, 3592 263, 110, 110, 110, 110, 112, 173, 207, 173, 114, 3593 249, 250, 112, 134, 109, 130, 149, 251, 253, 317, 3594 318, 330, 356, 116, 132, 116, 132, 273, 247, 273, 3595 115, 162, 163, 257, 135, 135, 139, 222, 135, 135, 3596 259, 109, 149, 369, 135, 115, 227, 286, 287, 135, 3597 134, 134, 109, 135, 110, 315, 169, 170, 130, 132, 3598 111, 141, 200, 201, 202, 110, 116, 110, 110, 110, 3599 110, 111, 164, 357, 358, 359, 227, 356, 311, 311, 3600 114, 151, 167, 164, 165, 168, 116, 135, 134, 110, 3601 116, 164, 134, 115, 162, 130, 263, 110, 110, 110, 3602 344, 263, 110, 259, 225, 362, 111, 117, 149, 164, 3603 164, 227, 341, 263, 110, 110, 110, 110, 110, 110, 3604 110, 7, 227, 335, 339, 350, 134, 134, 372, 134, 3605 134, 110, 135, 135, 135, 135, 276, 135, 162, 163, 3606 164, 309, 134, 277, 279, 115, 134, 211, 273, 40, 3607 41, 43, 46, 47, 48, 49, 50, 51, 52, 53, 3608 57, 61, 62, 72, 111, 127, 170, 171, 172, 173, 3609 174, 175, 177, 178, 190, 192, 193, 198, 212, 307, 3610 29, 135, 131, 276, 134, 134, 110, 135, 173, 247, 3611 132, 132, 318, 163, 227, 252, 253, 252, 273, 311, 3612 115, 258, 371, 110, 116, 112, 112, 135, 227, 116, 3613 372, 289, 110, 285, 215, 217, 225, 297, 298, 299, 3614 300, 291, 110, 110, 130, 163, 109, 110, 130, 116, 3615 139, 112, 110, 110, 110, 356, 278, 116, 135, 168, 3616 112, 139, 146, 147, 145, 135, 146, 162, 167, 135, 3617 109, 348, 349, 135, 135, 134, 135, 135, 135, 164, 3618 110, 135, 109, 348, 349, 109, 354, 109, 354, 349, 3619 226, 7, 117, 135, 164, 263, 263, 262, 266, 266, 3620 267, 116, 116, 110, 110, 112, 96, 122, 135, 135, 3621 146, 277, 164, 116, 132, 212, 216, 227, 231, 109, 3622 109, 171, 109, 109, 72, 132, 72, 132, 72, 117, 3623 170, 109, 173, 165, 165, 130, 112, 143, 132, 135, 3624 134, 135, 211, 110, 164, 263, 263, 311, 110, 115, 3625 251, 115, 134, 110, 134, 135, 308, 115, 134, 135, 3626 135, 110, 114, 200, 112, 163, 132, 200, 202, 110, 3627 109, 348, 349, 371, 165, 112, 135, 85, 113, 116, 3628 135, 112, 135, 110, 134, 110, 110, 112, 112, 112, 3629 135, 110, 134, 134, 134, 164, 164, 135, 112, 135, 3630 135, 135, 135, 134, 134, 163, 163, 112, 112, 135, 3631 135, 273, 227, 169, 169, 47, 169, 134, 132, 132, 3632 132, 169, 132, 169, 58, 59, 60, 194, 195, 196, 3633 132, 63, 132, 311, 114, 175, 115, 132, 135, 135, 3634 96, 268, 269, 110, 298, 116, 132, 116, 132, 115, 3635 296, 130, 141, 110, 110, 130, 134, 115, 112, 111, 3636 147, 111, 147, 147, 112, 112, 263, 112, 263, 263, 3637 263, 135, 135, 112, 112, 110, 110, 112, 116, 96, 3638 262, 96, 135, 112, 112, 110, 110, 109, 110, 170, 3639 191, 212, 132, 110, 109, 109, 173, 196, 58, 59, 3640 164, 171, 144, 110, 110, 114, 134, 134, 297, 141, 3641 203, 109, 132, 203, 263, 134, 134, 135, 135, 135, 3642 135, 112, 112, 134, 135, 112, 171, 44, 45, 114, 3643 181, 182, 183, 169, 171, 135, 110, 170, 114, 183, 3644 96, 134, 96, 134, 109, 109, 132, 115, 134, 271, 3645 308, 115, 116, 130, 163, 110, 135, 146, 146, 110, 3646 110, 110, 110, 266, 42, 163, 179, 180, 309, 130, 3647 134, 171, 181, 110, 132, 171, 132, 134, 110, 134, 3648 110, 134, 96, 134, 96, 134, 132, 297, 141, 139, 3649 204, 110, 132, 110, 135, 135, 171, 96, 116, 130, 3650 135, 205, 206, 212, 132, 170, 170, 205, 173, 197, 3651 225, 365, 173, 197, 110, 134, 110, 134, 115, 110, 3652 116, 112, 112, 163, 179, 182, 184, 185, 134, 132, 3653 182, 186, 187, 135, 109, 149, 308, 356, 139, 135, 3654 173, 197, 173, 197, 109, 132, 139, 171, 176, 115, 3655 182, 212, 170, 56, 176, 189, 115, 182, 110, 227, 3656 110, 135, 135, 291, 171, 176, 132, 188, 189, 176, 3657 189, 173, 173, 110, 110, 110, 188, 135, 135, 173, 3658 173, 135, 135 3659 }; 3660 3661 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1237 3662 static const yytype_uint16 yyr1[] = 1238 3663 { … … 1268 3693 225, 226, 226, 227, 227, 228, 228, 229, 229, 229, 1269 3694 229, 229, 230, 229, 231, 231, 231, 232, 232, 233, 1270 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 1271 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1272 235, 236, 236, 236, 236, 236, 237, 237, 238, 238, 1273 238, 238, 239, 239, 239, 239, 240, 240, 240, 240, 1274 241, 241, 241, 242, 242, 242, 242, 243, 243, 243, 1275 244, 244, 245, 245, 246, 245, 245, 245, 247, 247, 1276 248, 248, 249, 249, 249, 249, 250, 250, 250, 250, 1277 251, 251, 252, 252, 252, 252, 252, 253, 253, 254, 1278 255, 256, 256, 257, 256, 258, 258, 259, 259, 260, 1279 260, 261, 261, 261, 261, 261, 262, 262, 262, 262, 1280 263, 263, 264, 264, 265, 265, 266, 266, 266, 266, 1281 267, 267, 267, 267, 267, 268, 268, 268, 268, 268, 1282 269, 269, 270, 270, 271, 271, 272, 272, 272, 273, 1283 273, 273, 274, 274, 274, 275, 275, 275, 276, 276, 1284 276, 276, 277, 277, 277, 278, 278, 279, 279, 279, 1285 279, 279, 280, 280, 281, 281, 282, 282, 282, 282, 1286 282, 283, 283, 283, 283, 284, 284, 284, 285, 286, 1287 286, 288, 287, 287, 289, 289, 289, 290, 290, 291, 1288 291, 291, 292, 292, 292, 292, 293, 293, 293, 294, 1289 294, 295, 295, 296, 297, 296, 298, 298, 299, 299, 1290 300, 300, 300, 301, 301, 302, 302, 303, 303, 304, 1291 304, 305, 305, 305, 306, 305, 305, 307, 307, 307, 1292 308, 308, 308, 308, 308, 308, 308, 308, 308, 309, 1293 309, 309, 310, 311, 311, 312, 312, 313, 313, 314, 1294 315, 315, 316, 316, 316, 317, 317, 317, 317, 318, 1295 318, 318, 318, 319, 319, 320, 320, 320, 321, 321, 1296 321, 321, 322, 322, 323, 323, 323, 324, 324, 324, 1297 325, 325, 325, 326, 326, 326, 327, 327, 327, 328, 1298 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 1299 331, 331, 332, 332, 333, 333, 333, 334, 334, 334, 1300 334, 335, 335, 335, 336, 336, 336, 336, 337, 337, 1301 337, 338, 338, 338, 338, 339, 339, 339, 340, 340, 1302 340, 340, 341, 341, 342, 342, 342, 343, 343, 344, 1303 344, 345, 345, 345, 346, 346, 346, 346, 346, 347, 1304 347, 347, 347, 348, 348, 348, 349, 349, 349, 350, 1305 350, 350, 350, 351, 351, 351, 352, 352, 352, 352, 1306 352, 353, 353, 353, 353, 354, 354, 354, 355, 355, 1307 355, 356, 356, 356, 356, 356, 356, 357, 357, 357, 1308 358, 358, 358, 358, 358, 359, 359, 359, 359, 360, 1309 360, 361, 361, 361, 362, 362, 363, 363, 363, 363, 1310 363, 363, 364, 364, 364, 364, 364, 364, 364, 364, 1311 364, 364, 365, 365, 365, 365, 366, 366, 366, 367, 1312 367, 368, 368, 368, 368, 368, 368, 369, 369, 369, 1313 369, 369, 369, 370, 371, 371, 371, 372, 372, 373, 1314 373 3695 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 3696 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 3697 235, 235, 235, 235, 235, 236, 236, 237, 237, 237, 3698 237, 238, 238, 238, 238, 239, 239, 239, 239, 240, 3699 240, 240, 241, 241, 241, 241, 242, 242, 242, 243, 3700 243, 244, 244, 245, 244, 244, 244, 246, 246, 247, 3701 247, 248, 248, 248, 248, 249, 249, 249, 249, 250, 3702 250, 251, 251, 251, 251, 251, 252, 252, 253, 254, 3703 255, 255, 256, 255, 257, 257, 258, 258, 259, 259, 3704 260, 260, 260, 260, 260, 261, 261, 261, 261, 262, 3705 262, 263, 263, 264, 264, 265, 265, 265, 265, 266, 3706 266, 266, 266, 266, 267, 267, 267, 267, 267, 268, 3707 268, 269, 269, 270, 270, 271, 271, 271, 272, 272, 3708 272, 273, 273, 273, 274, 274, 274, 275, 275, 275, 3709 275, 276, 276, 276, 277, 277, 278, 278, 278, 278, 3710 278, 279, 279, 280, 280, 281, 281, 281, 281, 281, 3711 282, 282, 282, 282, 283, 283, 283, 284, 285, 285, 3712 287, 286, 286, 288, 288, 288, 289, 289, 290, 290, 3713 290, 291, 291, 291, 291, 292, 292, 292, 293, 293, 3714 294, 294, 295, 296, 295, 297, 297, 298, 298, 299, 3715 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, 3716 304, 304, 304, 305, 304, 304, 306, 306, 306, 307, 3717 307, 307, 307, 307, 307, 307, 307, 307, 308, 308, 3718 308, 309, 310, 310, 311, 311, 312, 312, 313, 314, 3719 314, 315, 315, 315, 316, 316, 316, 316, 317, 317, 3720 317, 317, 318, 318, 319, 319, 319, 320, 320, 320, 3721 320, 321, 321, 322, 322, 322, 323, 323, 323, 324, 3722 324, 324, 325, 325, 325, 326, 326, 326, 327, 327, 3723 327, 328, 328, 328, 329, 329, 329, 330, 330, 330, 3724 330, 331, 331, 332, 332, 332, 333, 333, 333, 333, 3725 334, 334, 334, 335, 335, 335, 335, 336, 336, 336, 3726 337, 337, 337, 337, 338, 338, 338, 339, 339, 339, 3727 339, 340, 340, 341, 341, 341, 342, 342, 343, 343, 3728 344, 344, 344, 345, 345, 345, 345, 345, 346, 346, 3729 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, 3730 349, 349, 350, 350, 350, 351, 351, 351, 351, 351, 3731 352, 352, 352, 352, 353, 353, 353, 354, 354, 354, 3732 355, 355, 355, 355, 355, 355, 356, 356, 356, 357, 3733 357, 357, 357, 357, 358, 358, 358, 358, 359, 359, 3734 360, 360, 360, 361, 361, 362, 362, 362, 362, 362, 3735 362, 363, 363, 363, 363, 363, 363, 363, 363, 363, 3736 363, 364, 364, 364, 364, 365, 365, 365, 366, 366, 3737 367, 367, 367, 367, 367, 367, 368, 368, 368, 368, 3738 368, 368, 369, 370, 370, 370, 371, 371, 372, 372 1315 3739 }; 1316 3740 1317 /* YYR2[YYN] -- Number of symbols composingright hand side of rule YYN. */3741 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 1318 3742 static const yytype_uint8 yyr2[] = 1319 3743 { … … 1351 3775 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1352 3776 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1353 1, 1, 2, 2, 3, 3, 1, 3, 1, 2, 1354 2, 2, 4, 4, 4, 4, 1, 2, 2, 3, 1355 1, 2, 2, 1, 2, 2, 3, 1, 2, 2, 1356 1, 1, 4, 2, 0, 6, 7, 2, 2, 2, 1357 0, 2, 2, 3, 2, 3, 1, 2, 3, 2, 1358 2, 4, 0, 1, 2, 2, 1, 0, 1, 2, 1359 2, 5, 2, 0, 7, 2, 4, 0, 2, 0, 1360 1, 1, 1, 5, 5, 5, 1, 5, 5, 9, 1361 1, 5, 0, 1, 1, 5, 1, 1, 5, 5, 1362 1, 3, 3, 4, 1, 1, 1, 1, 2, 1, 1363 3, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1364 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1365 1, 2, 0, 2, 2, 1, 4, 0, 1, 2, 1366 3, 4, 2, 2, 1, 2, 2, 5, 5, 7, 1367 6, 1, 2, 2, 3, 1, 2, 2, 4, 2, 1368 4, 0, 4, 2, 1, 1, 1, 0, 2, 5, 1369 5, 13, 1, 1, 3, 3, 2, 3, 3, 2, 1370 4, 1, 6, 9, 0, 11, 1, 3, 3, 3, 1371 1, 1, 5, 2, 5, 0, 1, 1, 3, 0, 1372 1, 1, 1, 1, 0, 6, 2, 1, 2, 4, 1373 2, 3, 3, 3, 4, 5, 5, 5, 6, 1, 1374 1, 1, 3, 0, 5, 0, 1, 1, 2, 6, 1375 1, 3, 0, 1, 4, 1, 1, 1, 1, 2, 1376 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1377 4, 3, 8, 3, 2, 1, 2, 6, 8, 3, 1378 2, 3, 3, 4, 4, 3, 1, 1, 1, 4, 1379 6, 3, 2, 3, 3, 4, 4, 3, 2, 1, 3777 1, 2, 2, 3, 3, 1, 3, 1, 2, 2, 3778 2, 4, 4, 4, 4, 1, 2, 2, 3, 1, 3779 2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 3780 1, 4, 2, 0, 6, 7, 2, 2, 2, 0, 3781 2, 2, 3, 2, 3, 1, 2, 3, 2, 2, 3782 4, 0, 1, 2, 2, 1, 0, 1, 2, 2, 3783 5, 2, 0, 7, 2, 4, 0, 2, 0, 1, 3784 1, 1, 5, 5, 5, 1, 5, 5, 9, 1, 3785 5, 0, 1, 1, 5, 1, 1, 5, 5, 1, 3786 3, 3, 4, 1, 1, 1, 1, 2, 1, 3, 3787 3, 1, 2, 1, 3, 1, 1, 1, 1, 1, 3788 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3789 2, 0, 2, 2, 1, 4, 0, 1, 2, 3, 3790 4, 2, 2, 1, 2, 2, 5, 5, 7, 6, 3791 1, 2, 2, 3, 1, 2, 2, 4, 2, 4, 3792 0, 4, 2, 1, 1, 1, 0, 2, 5, 5, 3793 13, 1, 1, 3, 3, 2, 3, 3, 2, 4, 3794 1, 6, 9, 0, 11, 1, 3, 3, 3, 1, 3795 1, 5, 2, 5, 0, 1, 1, 3, 0, 1, 3796 1, 1, 1, 0, 6, 2, 1, 2, 4, 2, 3797 3, 3, 3, 4, 5, 5, 5, 6, 1, 1, 3798 1, 3, 0, 5, 0, 1, 1, 2, 6, 1, 3799 3, 0, 1, 4, 1, 1, 1, 1, 2, 1, 1380 3800 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1381 3, 6, 8, 3, 2, 1, 2, 2, 2, 3, 1382 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1383 2, 2, 1, 1, 2, 3, 3, 2, 4, 6, 1384 8, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1385 4, 4, 3, 5, 8, 3, 2, 3, 1, 5, 1386 5, 6, 6, 1, 2, 2, 1, 2, 2, 3, 1387 3, 1, 4, 4, 3, 5, 8, 3, 1, 2, 1388 1, 2, 6, 5, 6, 7, 7, 1, 2, 2, 1389 1, 2, 2, 3, 3, 1, 4, 4, 3, 8, 1390 3, 1, 1, 2, 1, 1, 2, 3, 2, 3, 1391 2, 3, 3, 2, 4, 3, 2, 3, 2, 4, 1392 3, 2, 6, 6, 6, 7, 1, 2, 1, 1, 1393 1, 2, 3, 2, 3, 2, 3, 3, 4, 2, 1394 3, 4, 2, 5, 5, 6, 6, 0, 1, 0, 1395 2 3801 3, 8, 3, 2, 1, 2, 6, 8, 3, 2, 3802 3, 3, 4, 4, 3, 1, 1, 1, 4, 6, 3803 3, 2, 3, 3, 4, 4, 3, 2, 1, 2, 3804 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 3805 6, 8, 3, 2, 1, 2, 2, 2, 3, 3, 3806 2, 4, 4, 3, 6, 8, 3, 2, 1, 2, 3807 2, 1, 1, 2, 3, 3, 2, 4, 6, 8, 3808 1, 2, 2, 1, 2, 2, 3, 3, 1, 4, 3809 4, 3, 5, 8, 3, 2, 3, 1, 5, 5, 3810 6, 6, 1, 2, 2, 1, 2, 2, 3, 3, 3811 1, 4, 4, 3, 5, 8, 3, 1, 2, 1, 3812 2, 6, 5, 6, 7, 7, 1, 2, 2, 1, 3813 2, 2, 3, 3, 1, 4, 4, 3, 8, 3, 3814 1, 1, 2, 1, 1, 2, 3, 2, 3, 2, 3815 3, 3, 2, 4, 3, 2, 3, 2, 4, 3, 3816 2, 6, 6, 6, 7, 1, 2, 1, 1, 1, 3817 2, 3, 2, 3, 2, 3, 3, 4, 2, 3, 3818 4, 2, 5, 5, 6, 6, 0, 1, 0, 2 1396 3819 }; 1397 3820 1398 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. 1399 Performed when YYTABLE doesn't specify something else to do. Zero 1400 means the default is an error. */ 1401 static const yytype_uint16 yydefact[] = 1402 { 1403 291, 291, 312, 310, 313, 311, 314, 315, 297, 299, 1404 298, 0, 300, 326, 318, 323, 321, 322, 320, 319, 1405 324, 325, 330, 327, 328, 329, 545, 545, 545, 0, 1406 0, 0, 291, 217, 301, 316, 317, 7, 357, 0, 1407 8, 14, 15, 0, 2, 60, 61, 563, 9, 291, 1408 523, 521, 244, 3, 452, 3, 257, 0, 3, 3, 1409 3, 245, 3, 0, 0, 0, 292, 293, 295, 291, 1410 304, 307, 309, 338, 283, 331, 336, 284, 346, 285, 1411 353, 350, 360, 0, 0, 361, 286, 471, 475, 3, 1412 3, 0, 2, 517, 522, 527, 296, 0, 0, 545, 1413 575, 545, 2, 586, 587, 588, 291, 0, 729, 730, 1414 0, 12, 0, 13, 291, 267, 268, 0, 292, 287, 1415 288, 289, 290, 524, 302, 390, 546, 547, 368, 369, 1416 12, 443, 444, 11, 439, 442, 0, 501, 496, 487, 1417 443, 444, 0, 0, 526, 218, 0, 291, 0, 0, 1418 0, 0, 0, 0, 0, 0, 291, 291, 2, 0, 1419 731, 292, 580, 592, 735, 728, 726, 733, 0, 0, 1420 0, 251, 2, 0, 530, 437, 438, 436, 0, 0, 1421 0, 0, 545, 0, 632, 633, 0, 0, 543, 539, 1422 545, 560, 545, 545, 541, 2, 540, 545, 599, 545, 1423 545, 602, 0, 0, 0, 291, 291, 310, 358, 2, 1424 291, 258, 294, 305, 339, 351, 476, 0, 2, 0, 1425 452, 259, 292, 332, 347, 354, 472, 0, 2, 0, 1426 308, 333, 340, 341, 0, 348, 352, 355, 359, 444, 1427 291, 370, 363, 367, 0, 392, 473, 477, 0, 0, 1428 0, 1, 291, 2, 528, 574, 576, 291, 2, 739, 1429 292, 742, 543, 543, 0, 292, 0, 0, 270, 545, 1430 541, 2, 291, 0, 0, 291, 548, 2, 499, 2, 1431 552, 0, 0, 0, 0, 0, 0, 18, 57, 4, 1432 5, 6, 16, 0, 0, 291, 2, 62, 63, 64, 1433 65, 45, 19, 46, 22, 44, 66, 291, 0, 69, 1434 73, 76, 79, 84, 87, 89, 91, 93, 95, 97, 1435 102, 493, 749, 450, 492, 0, 448, 449, 0, 564, 1436 579, 582, 585, 591, 594, 597, 357, 0, 2, 737, 1437 0, 291, 740, 2, 60, 291, 3, 424, 0, 432, 1438 292, 291, 304, 331, 284, 346, 353, 3, 3, 406, 1439 410, 420, 425, 471, 291, 426, 704, 705, 291, 427, 1440 429, 291, 2, 581, 593, 727, 2, 2, 246, 2, 1441 457, 0, 455, 454, 453, 138, 2, 2, 248, 2, 1442 2, 247, 2, 278, 2, 279, 0, 277, 0, 0, 1443 0, 0, 0, 0, 0, 0, 0, 565, 604, 0, 1444 452, 2, 559, 568, 658, 561, 562, 531, 291, 2, 1445 598, 607, 600, 601, 0, 273, 291, 291, 337, 292, 1446 0, 292, 0, 291, 732, 736, 734, 532, 291, 543, 1447 252, 260, 306, 0, 2, 533, 291, 497, 334, 335, 1448 280, 349, 356, 0, 291, 0, 747, 397, 0, 474, 1449 498, 249, 250, 518, 291, 434, 0, 291, 234, 0, 1450 2, 236, 0, 292, 0, 254, 2, 255, 275, 0, 1451 0, 2, 291, 543, 291, 484, 486, 485, 0, 0, 1452 749, 0, 291, 0, 291, 488, 291, 558, 556, 557, 1453 555, 0, 550, 553, 0, 0, 291, 52, 291, 66, 1454 47, 291, 54, 291, 291, 50, 51, 2, 124, 0, 1455 0, 446, 0, 445, 726, 118, 291, 17, 0, 29, 1456 30, 35, 2, 0, 35, 108, 109, 110, 111, 112, 1457 113, 114, 115, 116, 117, 107, 0, 48, 49, 0, 1458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 1460 2, 644, 451, 641, 545, 545, 649, 478, 291, 2, 1461 583, 584, 0, 595, 596, 0, 2, 738, 741, 118, 1462 291, 0, 2, 706, 292, 710, 701, 702, 708, 0, 1463 2, 2, 666, 545, 749, 615, 545, 545, 749, 545, 1464 629, 545, 545, 680, 433, 663, 545, 545, 671, 678, 1465 291, 428, 292, 0, 0, 291, 716, 292, 721, 749, 1466 713, 291, 718, 749, 291, 291, 291, 0, 118, 0, 1467 18, 2, 0, 19, 0, 458, 747, 0, 0, 464, 1468 238, 0, 291, 0, 0, 0, 543, 567, 571, 573, 1469 603, 606, 610, 613, 566, 605, 0, 281, 656, 0, 1470 291, 274, 0, 0, 0, 0, 272, 2, 0, 256, 1471 534, 291, 0, 0, 291, 2, 362, 382, 371, 0, 1472 0, 376, 370, 748, 0, 0, 395, 0, 292, 3, 1473 413, 3, 417, 416, 589, 0, 529, 291, 60, 3, 1474 291, 432, 292, 3, 426, 427, 2, 0, 0, 0, 1475 483, 303, 291, 479, 481, 3, 2, 2, 0, 500, 1476 3, 0, 552, 126, 0, 0, 219, 0, 0, 0, 1477 0, 36, 0, 0, 118, 291, 20, 0, 21, 0, 1478 690, 695, 447, 687, 545, 545, 0, 105, 3, 2, 1479 27, 0, 33, 0, 2, 25, 0, 103, 70, 71, 1480 72, 74, 75, 77, 78, 82, 83, 80, 81, 85, 1481 86, 88, 90, 92, 94, 96, 0, 0, 750, 291, 1482 0, 0, 0, 645, 646, 642, 643, 495, 494, 291, 1483 0, 291, 712, 291, 717, 292, 291, 660, 291, 291, 1484 703, 659, 2, 291, 0, 0, 0, 0, 0, 0, 1485 0, 0, 681, 0, 667, 618, 634, 668, 2, 614, 1486 621, 430, 616, 617, 431, 2, 628, 637, 630, 631, 1487 664, 665, 679, 707, 711, 709, 749, 265, 2, 743, 1488 2, 421, 715, 720, 422, 0, 400, 3, 3, 3, 1489 3, 452, 3, 0, 2, 466, 463, 748, 0, 459, 1490 2, 462, 465, 0, 291, 239, 261, 3, 269, 271, 1491 0, 452, 2, 569, 570, 2, 608, 609, 0, 657, 1492 535, 3, 343, 342, 345, 344, 291, 536, 0, 537, 1493 370, 0, 0, 291, 291, 0, 0, 690, 380, 383, 1494 387, 545, 387, 386, 379, 372, 545, 374, 377, 291, 1495 397, 391, 101, 398, 747, 0, 0, 435, 237, 0, 1496 0, 3, 2, 666, 428, 0, 525, 0, 749, 487, 1497 0, 291, 291, 291, 0, 549, 551, 127, 0, 0, 1498 212, 0, 0, 0, 220, 221, 53, 0, 55, 58, 1499 59, 0, 2, 125, 0, 0, 0, 691, 692, 688, 1500 689, 457, 67, 68, 106, 122, 3, 105, 0, 0, 1501 24, 35, 3, 0, 32, 99, 0, 3, 648, 652, 1502 655, 647, 3, 590, 3, 714, 719, 2, 60, 291, 1503 3, 3, 292, 0, 3, 620, 624, 627, 636, 670, 1504 674, 677, 291, 3, 619, 635, 669, 291, 291, 423, 1505 291, 291, 744, 0, 0, 0, 0, 253, 0, 101, 1506 0, 3, 3, 0, 460, 0, 456, 0, 0, 242, 1507 291, 0, 0, 126, 0, 0, 0, 0, 0, 126, 1508 0, 0, 105, 105, 18, 2, 0, 0, 3, 128, 1509 129, 2, 140, 130, 131, 132, 133, 134, 135, 142, 1510 144, 0, 0, 0, 282, 291, 291, 545, 0, 538, 1511 291, 373, 375, 0, 389, 691, 384, 388, 385, 378, 1512 382, 365, 396, 0, 577, 2, 662, 661, 0, 667, 1513 2, 480, 482, 502, 3, 510, 511, 0, 2, 506, 1514 3, 3, 0, 0, 554, 219, 0, 0, 0, 219, 1515 0, 0, 118, 694, 698, 700, 693, 747, 105, 0, 1516 3, 659, 39, 3, 37, 34, 0, 3, 98, 100, 1517 0, 2, 650, 651, 0, 0, 291, 0, 0, 0, 1518 3, 636, 0, 2, 622, 623, 2, 638, 2, 672, 1519 673, 0, 0, 60, 0, 3, 3, 3, 3, 408, 1520 407, 411, 2, 2, 746, 745, 119, 0, 0, 0, 1521 0, 3, 461, 3, 0, 240, 143, 3, 292, 291, 1522 0, 0, 0, 0, 2, 0, 188, 0, 186, 0, 1523 0, 0, 0, 0, 0, 0, 545, 118, 0, 148, 1524 145, 291, 0, 0, 264, 276, 3, 3, 544, 611, 1525 366, 381, 394, 291, 263, 291, 0, 513, 490, 291, 1526 0, 0, 489, 504, 0, 0, 0, 213, 0, 222, 1527 56, 2, 696, 697, 0, 123, 120, 0, 0, 0, 1528 0, 0, 23, 0, 653, 291, 578, 262, 722, 723, 1529 724, 0, 675, 291, 291, 291, 3, 3, 0, 683, 1530 0, 0, 0, 0, 291, 291, 3, 542, 119, 468, 1531 0, 0, 243, 292, 0, 0, 0, 0, 291, 189, 1532 187, 184, 0, 190, 0, 0, 0, 0, 194, 197, 1533 195, 191, 0, 192, 126, 35, 141, 139, 241, 0, 1534 0, 415, 419, 418, 0, 507, 2, 508, 2, 509, 1535 503, 291, 225, 0, 223, 0, 225, 291, 31, 121, 1536 2, 42, 2, 40, 38, 28, 26, 3, 725, 3, 1537 3, 3, 0, 0, 682, 684, 625, 639, 266, 2, 1538 405, 3, 404, 0, 470, 467, 126, 0, 0, 126, 1539 3, 0, 126, 185, 0, 2, 2, 206, 196, 0, 1540 0, 0, 137, 0, 572, 612, 2, 0, 0, 2, 1541 226, 0, 0, 214, 0, 3, 0, 0, 0, 0, 1542 0, 0, 685, 686, 291, 0, 469, 149, 0, 0, 1543 2, 162, 126, 151, 0, 179, 0, 126, 0, 2, 1544 153, 0, 2, 0, 2, 2, 2, 193, 32, 291, 1545 512, 514, 505, 0, 0, 0, 0, 0, 3, 3, 1546 654, 626, 640, 676, 409, 126, 155, 158, 0, 157, 1547 161, 3, 164, 163, 0, 126, 181, 126, 3, 0, 1548 291, 0, 291, 0, 2, 0, 2, 136, 2, 227, 1549 228, 0, 224, 215, 699, 0, 0, 150, 0, 0, 1550 160, 230, 165, 2, 232, 180, 0, 183, 169, 198, 1551 3, 207, 211, 200, 3, 0, 291, 0, 291, 0, 1552 0, 0, 43, 41, 156, 159, 126, 0, 166, 291, 1553 126, 126, 0, 170, 0, 0, 690, 208, 209, 210, 1554 0, 199, 3, 201, 3, 291, 216, 229, 146, 167, 1555 152, 126, 233, 182, 177, 175, 171, 154, 126, 0, 1556 691, 0, 0, 0, 0, 147, 168, 178, 172, 176, 1557 175, 173, 3, 3, 0, 0, 491, 174, 202, 204, 1558 3, 3, 203, 205 1559 }; 1560 1561 /* YYDEFGOTO[NTERM-NUM]. */ 1562 static const yytype_int16 yydefgoto[] = 1563 { 1564 -1, 813, 468, 301, 47, 134, 135, 302, 303, 304, 1565 305, 761, 762, 1133, 1134, 306, 381, 308, 309, 310, 1566 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 1567 1030, 518, 975, 546, 322, 976, 947, 1057, 1518, 1059, 1568 1060, 1061, 1062, 1519, 1063, 1064, 1437, 1438, 1401, 1402, 1569 1403, 1497, 1498, 1502, 1503, 1538, 1539, 1065, 1361, 1066, 1570 1067, 1298, 1299, 1300, 1480, 1068, 146, 953, 954, 955, 1571 1381, 1461, 1472, 1473, 469, 470, 874, 875, 1038, 51, 1572 52, 53, 54, 55, 347, 159, 58, 59, 60, 61, 1573 62, 349, 64, 65, 265, 67, 68, 275, 351, 352, 1574 71, 72, 73, 74, 119, 76, 205, 354, 120, 79, 1575 121, 81, 82, 455, 83, 454, 688, 689, 690, 908, 1576 1086, 909, 84, 85, 458, 456, 696, 855, 856, 857, 1577 858, 699, 700, 701, 359, 360, 361, 362, 466, 340, 1578 136, 137, 522, 324, 171, 645, 646, 647, 648, 649, 1579 86, 122, 88, 489, 490, 939, 491, 278, 495, 325, 1580 89, 138, 139, 90, 1321, 1108, 1109, 1110, 1111, 91, 1581 92, 717, 93, 274, 94, 95, 188, 1032, 679, 412, 1582 126, 96, 501, 502, 503, 189, 269, 191, 192, 193, 1583 270, 99, 100, 101, 102, 103, 104, 105, 196, 197, 1584 198, 199, 200, 825, 605, 606, 607, 608, 201, 610, 1585 611, 612, 572, 573, 574, 575, 751, 106, 614, 615, 1586 616, 617, 618, 619, 968, 753, 754, 755, 595, 365, 1587 366, 367, 368, 326, 165, 108, 109, 110, 370, 694, 1588 569 1589 }; 1590 1591 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1592 STATE-NUM. */ 1593 #define YYPACT_NINF -1310 1594 static const yytype_int16 yypact[] = 1595 { 1596 7316, 8697, -1310, 16, -1310, -1310, -1310, -1310, -1310, -1310, 1597 -1310, 22, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1598 -1310, -1310, -1310, -1310, -1310, -1310, 101, 101, 101, 1152, 1599 941, 64, 7548, 141, -1310, -1310, -1310, -1310, -1310, 87, 1600 -1310, -1310, -1310, 868, 134, -1310, -1310, -1310, -1310, 9158, 1601 -1310, -1310, -1310, -1310, 149, 144, -1310, 1337, -1310, -1310, 1602 -1310, -1310, 139, 935, 260, 102, 2892, -1310, -1310, 9196, 1603 790, -1310, -1310, -1310, 904, 293, 5512, 547, 778, 904, 1604 1166, -1310, -1310, 554, 624, -1310, 904, 1343, -1310, 187, 1605 -1310, 308, 336, -1310, -1310, -1310, -1310, 251, 144, 101, 1606 -1310, 101, -1310, -1310, -1310, -1310, 8923, 1337, -1310, -1310, 1607 1337, -1310, 337, -1310, 9043, -1310, -1310, 1053, 9381, -1310, 1608 1729, 1729, 1729, -1310, -1310, -1310, 101, -1310, -1310, -1310, 1609 410, 413, 418, -1310, -1310, -1310, 433, -1310, -1310, -1310, 1610 -1310, -1310, 468, 477, -1310, -1310, 37, 8666, 2607, 742, 1611 369, 496, 509, 523, 530, 535, 8584, 6836, 536, 546, 1612 -1310, 9234, -1310, -1310, -1310, -1310, 561, -1310, 245, 4633, 1613 4633, -1310, 562, 361, -1310, -1310, -1310, -1310, 574, 383, 1614 408, 429, 101, 577, -1310, -1310, 935, 3015, 664, -1310, 1615 86, -1310, 101, 101, 144, -1310, -1310, 89, -1310, 101, 1616 101, -1310, 3541, 634, 653, 1729, 6748, -1310, -1310, 623, 1617 9158, -1310, -1310, 904, -1310, -1310, -1310, 144, -1310, 1337, 1618 149, -1310, 7737, -1310, 1729, 1729, 1729, 144, -1310, 1152, 1619 -1310, 5996, -1310, -1310, 642, 1729, -1310, 1729, -1310, 87, 1620 8666, -1310, 672, -1310, 941, 697, 1729, -1310, 1152, 699, 1621 702, -1310, 7548, 567, -1310, -1310, -1310, 9125, -1310, -1310, 1622 4167, -1310, 664, 10, 5116, 9381, 1053, 3541, -1310, 94, 1623 -1310, -1310, 9043, 1337, 715, 10741, -1310, -1310, 11, -1310, 1624 10483, 740, 772, 10231, 759, 10288, 10307, -1310, 763, -1310, 1625 -1310, -1310, -1310, 10364, 10364, 8440, 765, -1310, -1310, -1310, 1626 -1310, -1310, -1310, 799, -1310, 616, 2256, 8779, 10288, -1310, 1627 475, 860, 810, 276, 913, 766, 767, 793, 832, 41, 1628 -1310, -1310, 807, 704, -1310, 331, -1310, -1310, 2607, -1310, 1629 -1310, 242, 835, -1310, 421, 835, 841, 87, -1310, -1310, 1630 846, 8923, -1310, 847, 857, 8892, -1310, -1310, 1352, 2069, 1631 8155, 6748, 904, -1310, 904, 1729, 1729, -1310, -1310, -1310, 1632 -1310, -1310, -1310, 1729, 8923, 1337, -1310, -1310, 9419, 1457, 1633 -1310, 7886, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 875, 1634 10098, 10288, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1635 -1310, -1310, -1310, -1310, -1310, -1310, 1053, -1310, 928, 862, 1636 891, 893, 1023, 916, 937, 951, 3015, -1310, -1310, 942, 1637 149, 958, -1310, -1310, 970, -1310, -1310, -1310, 9125, -1310, 1638 -1310, -1310, -1310, -1310, 3541, -1310, 8666, 8666, -1310, 1729, 1639 1053, 6867, 1337, 8228, -1310, -1310, -1310, -1310, 9125, 10, 1640 -1310, -1310, 904, 144, -1310, -1310, 9125, -1310, 6513, -1310, 1641 -1310, 1729, 1729, 382, 5342, 969, 972, 960, 1031, 1729, 1642 -1310, -1310, -1310, -1310, 9605, -1310, 450, 6629, -1310, 144, 1643 1033, -1310, 1053, 10565, 10155, -1310, -1310, -1310, -1310, 1039, 1644 3541, -1310, 8301, 664, 7432, -1310, -1310, -1310, 984, 626, 1645 807, 941, 10741, 606, 9043, -1310, 10741, -1310, -1310, -1310, 1646 -1310, 690, -1310, 1044, 772, 255, 8440, -1310, 9457, -1310, 1647 -1310, 8440, -1310, 8553, 8440, -1310, -1310, 1042, -1310, 722, 1648 1047, 818, 1048, -1310, -1310, 9310, 6479, -1310, 321, -1310, 1649 -1310, 5116, -1310, 602, 5116, -1310, -1310, -1310, -1310, -1310, 1650 -1310, -1310, -1310, -1310, -1310, -1310, 5116, -1310, -1310, 10288, 1651 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 10288, 1652 10288, 10288, 10288, 10288, 10288, 10288, 10288, 2426, 5116, -1310, 1653 704, 830, -1310, -1310, 101, 101, -1310, -1310, 8666, -1310, 1654 -1310, 970, 567, -1310, 970, 10212, -1310, -1310, -1310, 4524, 1655 6479, 1049, 1054, -1310, 9381, -1310, -1310, 561, -1310, 1056, 1656 774, 1073, 2515, 95, 807, -1310, 101, 101, 807, 98, 1657 -1310, 101, 101, 970, -1310, -1310, 101, 101, -1310, 835, 1658 9490, 1337, 10710, 283, 326, 9490, -1310, 4167, -1310, 807, 1659 -1310, 8923, -1310, 80, 7852, 7852, 7852, 1337, -1310, 4787, 1660 1065, 875, 744, 1066, 1067, -1310, 1070, 4633, 333, -1310, 1661 1134, 1337, 7852, 567, 1053, 567, 664, 494, 835, -1310, 1662 -1310, 584, 835, -1310, -1310, -1310, 772, -1310, 835, 144, 1663 9605, -1310, 737, 1083, 750, 1090, -1310, 1089, 144, -1310, 1664 -1310, 9125, 144, 1088, 9457, 1092, -1310, 1677, -1310, 441, 1665 448, 941, -1310, 941, 1091, 10288, -1310, 941, 10710, -1310, 1666 -1310, 1098, -1310, -1310, -1310, 567, -1310, 10638, 857, -1310, 1667 7852, 853, 8155, -1310, -1310, 561, 1095, 1097, 984, 3316, 1668 -1310, -1310, 10741, -1310, -1310, 1099, -1310, -1310, 1105, -1310, 1669 1099, 1111, 10483, 5116, 62, 1102, 167, 1113, 1121, 1129, 1670 1130, -1310, 1131, 1132, 9348, 6598, -1310, 5116, -1310, 818, 1671 978, -1310, -1310, -1310, 101, 101, 5540, 5116, 1135, -1310, 1672 -1310, 757, -1310, 5116, -1310, -1310, 914, -1310, -1310, -1310, 1673 -1310, 475, 475, 860, 860, 810, 810, 810, 810, 276, 1674 276, 913, 766, 767, 793, 832, 10288, 282, -1310, 9605, 1675 1136, 1137, 1140, 830, -1310, -1310, -1310, -1310, -1310, 9605, 1676 779, 7852, -1310, 8923, -1310, 6955, 9005, -1310, 7886, 6836, 1677 -1310, -1310, 774, 9605, 1063, 1142, 1143, 1145, 1146, 1147, 1678 1148, 1154, -1310, 3759, 2515, -1310, -1310, -1310, -1310, -1310, 1679 -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1680 -1310, -1310, 970, -1310, -1310, -1310, 807, -1310, -1310, -1310, 1681 -1310, -1310, -1310, -1310, -1310, 1156, -1310, 1159, 1160, -1310, 1682 -1310, 149, 1135, 4787, -1310, -1310, -1310, 10098, 1157, -1310, 1683 -1310, -1310, -1310, 941, 6225, 1247, -1310, -1310, -1310, -1310, 1684 1150, 149, -1310, -1310, 970, -1310, -1310, 970, 137, 970, 1685 -1310, -1310, -1310, -1310, -1310, -1310, 9272, -1310, 144, -1310, 1686 -1310, 451, 452, 9419, 7074, 2178, 10288, 3429, -1310, -1310, 1687 1149, 39, 1149, -1310, 941, -1310, 101, -1310, -1310, 8073, 1688 960, -1310, -1310, -1310, 972, 1168, 1169, -1310, -1310, 1170, 1689 1172, -1310, 853, 1305, -1310, 359, -1310, 3316, 807, -1310, 1690 1177, 10741, 9528, 8666, 1180, -1310, -1310, 1175, 1182, 1164, 1691 -1310, 10288, 56, 233, 1179, -1310, 1183, 567, 1183, -1310, 1692 -1310, 1183, 1184, -1310, 1189, 1190, 1192, 978, -1310, -1310, 1693 -1310, 10098, -1310, -1310, -1310, -1310, 1188, 5116, 1193, 567, 1694 -1310, 5116, -1310, 567, -1310, -1310, 5116, -1310, 595, 835, 1695 -1310, -1310, -1310, -1310, -1310, -1310, -1310, 875, 857, 8892, 1696 -1310, -1310, 7193, 1196, -1310, 622, 835, -1310, 644, 649, 1697 835, -1310, 1729, 4053, -1310, -1310, -1310, 9605, 9605, -1310, 1698 8228, 8228, -1310, 1194, 1195, 1198, 1199, -1310, 1200, 531, 1699 27, 1135, -1310, 567, -1310, 4633, -1310, 5116, 453, -1310, 1700 6359, 1213, 1217, 10041, 1222, 1223, 43, 49, 106, 5116, 1701 1228, 144, 5116, 5116, 1208, 1237, 142, 1218, -1310, -1310, 1702 -1310, 1236, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1703 -1310, 941, 1249, 5116, -1310, 9605, 9605, 101, 1252, -1310, 1704 8810, -1310, -1310, 987, -1310, 3429, -1310, -1310, -1310, -1310, 1705 1677, -1310, -1310, 1253, -1310, -1310, -1310, -1310, 1254, 1305, 1706 -1310, -1310, 1239, -1310, 1099, -1310, -1310, 1053, 1258, -1310, 1707 -1310, -1310, 806, 1262, -1310, 167, 1267, 10288, 1248, 167, 1708 167, 1273, 9310, 693, 835, -1310, -1310, 1070, 5116, 1274, 1709 1188, 208, 157, 1269, -1310, -1310, 1278, 1269, -1310, -1310, 1710 1282, -1310, -1310, 970, 1286, 1288, 6717, 1287, 1289, 1291, 1711 -1310, -1310, 1290, -1310, -1310, 970, -1310, -1310, -1310, -1310, 1712 970, 5116, 5116, 857, 1292, -1310, -1310, -1310, -1310, -1310, 1713 -1310, -1310, -1310, -1310, -1310, -1310, -1310, 10288, 10288, 1294, 1714 1295, 1269, -1310, -1310, 941, -1310, -1310, -1310, 5073, 9528, 1715 5116, 5116, 1370, 5116, -1310, 1298, -1310, 1299, -1310, 1302, 1716 5116, 1306, 5116, 1123, 1307, 30, 101, 5821, 1435, -1310, 1717 -1310, 6225, 1303, 456, -1310, -1310, -1310, -1310, -1310, -1310, 1718 -1310, -1310, -1310, 9861, -1310, 8301, 1330, -1310, -1310, 9528, 1719 463, 481, -1310, 1328, 1314, 772, 1341, -1310, 306, -1310, 1720 -1310, -1310, -1310, 970, 1332, -1310, -1310, 1342, 753, 834, 1721 567, 1345, -1310, 1350, -1310, 9605, -1310, -1310, -1310, -1310, 1722 -1310, 1351, -1310, 9605, 9605, 9605, -1310, -1310, 1359, -1310, 1723 1362, 1365, 1366, 557, 7925, 8040, -1310, -1310, 420, -1310, 1724 1368, 1371, -1310, 8374, 815, 844, 1346, 866, 6094, -1310, 1725 -1310, -1310, 485, -1310, 888, 1369, 1375, 144, 1417, 1051, 1726 -1310, -1310, 5116, -1310, 10041, 5116, -1310, -1310, -1310, 1377, 1727 1379, -1310, -1310, -1310, 1376, -1310, -1310, -1310, -1310, -1310, 1728 -1310, 9528, 772, 195, -1310, 1353, 772, 9605, -1310, -1310, 1729 -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, -1310, 1730 -1310, -1310, 1384, 1388, -1310, -1310, -1310, -1310, -1310, -1310, 1731 -1310, 1394, -1310, 1397, -1310, -1310, 10041, 217, 5116, 10041, 1732 -1310, 1400, 5116, -1310, 289, 1421, 1423, -1310, -1310, 1403, 1733 1415, 1393, -1310, 1001, -1310, -1310, -1310, 1337, 1053, 1412, 1734 799, 323, 10288, -1310, 953, -1310, 567, 567, 1418, 1425, 1735 1426, 1428, -1310, -1310, 8228, 1427, -1310, 1497, 10288, 1420, 1736 -1310, -1310, 9953, -1310, 955, -1310, 1419, 10041, 1424, -1310, 1737 -1310, 1442, -1310, 1445, -1310, 1461, 1462, -1310, 1430, 9528, 1738 -1310, -1310, -1310, 772, 567, 1453, 1436, 1459, 1269, 1269, 1739 -1310, -1310, -1310, -1310, -1310, 10041, 204, -1310, 370, -1310, 1740 -1310, 3684, -1310, -1310, 1439, 5116, -1310, 5116, 3684, 144, 1741 9457, 144, 9457, 1463, -1310, 1465, -1310, -1310, 1464, 799, 1742 -1310, 968, -1310, -1310, -1310, 1460, 1466, -1310, 10288, 10288, 1743 -1310, -1310, 1075, 122, -1310, -1310, 1444, -1310, 1075, -1310, 1744 -1310, 2191, 567, -1310, -1310, 144, 9457, 144, 9457, 1472, 1745 1450, 567, -1310, -1310, -1310, -1310, 9953, 1469, 1075, 7664, 1746 5116, 9865, 1470, 1075, 1479, 2191, 3509, -1310, -1310, -1310, 1747 1482, -1310, -1310, -1310, -1310, 8666, -1310, -1310, -1310, 9732, 1748 -1310, 9953, -1310, -1310, 1468, 9644, -1310, -1310, 9865, 144, 1749 3509, 144, 1484, 1486, 976, -1310, 9732, -1310, -1310, -1310, 1750 9644, -1310, -1310, -1310, 144, 144, -1310, -1310, -1310, -1310, 1751 -1310, -1310, -1310, -1310 1752 }; 1753 1754 /* YYPGOTO[NTERM-NUM]. */ 1755 static const yytype_int16 yypgoto[] = 1756 { 1757 -1310, 4585, 3220, -1310, 1680, -1310, 79, 965, -162, -1310, 1758 542, -525, -472, -928, -58, 5006, 0, -1310, 115, 571, 1759 588, 220, 578, 1041, 1045, 1037, 1040, 1043, -1310, 682, 1760 -568, 4467, -949, -1310, -743, 627, -136, -680, 399, -1310, 1761 364, -1310, 400, -1052, -1310, -1310, 143, -1310, -1280, -1058, 1762 249, -1310, -1310, -1310, -1310, 74, -1199, -1310, -1310, -1310, 1763 -1310, -1310, -1310, 317, -1213, 36, -1310, -398, -1310, 501, 1764 296, -1310, 175, -1310, -322, -1310, -1310, -1310, 558, -827, 1765 -1310, -1310, 14, -963, 60, 1949, -1310, -1310, -1310, -66, 1766 -1310, 19, 1219, -202, 1852, 4238, -1310, -1310, 54, 75, 1767 689, -242, 1416, -1310, 1975, -1310, -1310, 158, 2131, -1310, 1768 2701, 1038, -1310, -1310, -1310, -621, -1310, 944, 946, 541, 1769 713, -254, -1310, -1310, -1310, 938, 714, -169, -1310, -117, 1770 -134, 1167, -1310, -1310, -857, -878, 837, 910, 1055, 25, 1771 -1310, 900, 597, -39, -190, -145, 668, 773, -1310, 993, 1772 -1310, 2728, 1561, -434, 920, -1310, -1310, 708, -1310, -238, 1773 -1310, 241, -1310, -1310, -1310, -1226, 414, -1310, -1310, -1310, 1774 1165, -1310, 35, -1310, -1310, -830, -111, -1309, -151, 3288, 1775 -1310, 3069, -1310, 921, -1310, -170, 169, -182, -181, -166, 1776 7, -35, -33, -32, 813, 2, 29, 44, -122, -165, 1777 -164, -158, -153, -314, -519, -491, -490, -538, -301, -501, 1778 -1310, -1310, -512, 1078, 1084, 1085, 2540, 5063, -571, -588, 1779 -558, -543, -557, -1310, -503, -733, -723, -722, -570, -311, 1780 -274, -1310, -1310, 240, 176, -77, -1310, 3991, 136, -632, 1781 -222 1782 }; 1783 1784 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1785 positive, shift that token. If negative, reduce the rule which 1786 number is the opposite. If YYTABLE_NINF, syntax error. */ 1787 #define YYTABLE_NINF -521 1788 static const yytype_int16 yytable[] = 1789 { 1790 49, 114, 453, 428, 399, 400, 268, 98, 150, 766, 1791 151, 152, 819, 973, 868, 115, 964, 407, 752, 63, 1792 401, 402, 403, 358, 383, 384, 965, 966, 404, 261, 1793 440, 827, 49, 405, 596, 604, 50, 410, 498, 98, 1794 357, 740, 820, 148, 1070, 153, 830, 1069, 609, 49, 1795 844, 63, 837, 948, 69, 1137, 162, 821, 725, 794, 1796 56, 116, 730, 187, 826, 408, 210, 144, 50, 49, 1797 194, 919, 154, 217, 409, 70, 227, 1187, 31, 342, 1798 112, 815, 178, 220, 399, 400, 69, 155, 281, 1439, 1799 628, 425, 56, 1302, 632, 1379, 669, 407, 123, 818, 1800 401, 402, 403, 1204, 1205, 1181, 114, 70, 404, 816, 1801 817, 475, 477, 405, 114, 1195, 678, 267, 272, 476, 1802 505, 1197, 1443, 1177, 682, 31, 211, 923, 31, 221, 1803 203, 124, 262, 31, 31, 263, 566, 31, 527, 493, 1804 31, 213, 494, 1171, 527, 408, 282, 307, 148, 1178, 1805 411, 150, 145, 151, 152, 162, 114, 345, 77, 519, 1806 1439, 210, 1303, 1169, 1170, 1117, -231, -231, 373, 97, 1807 567, 714, 964, 143, 720, 1196, 107, 107, 1199, 1245, 1808 204, 1198, 965, 966, 913, 167, 187, 187, 153, 476, 1809 77, 471, 949, 1458, 162, 253, 147, 411, 419, 815, 1810 411, 97, 267, 481, 828, 411, 601, 835, 107, 601, 1811 49, 568, 149, 1186, 287, 154, 1443, 162, 97, 527, 1812 667, 1443, 210, 1200, 819, 41, 42, 816, 817, 443, 1813 155, 150, 190, 151, 152, 97, 664, -231, 97, 1484, 1814 307, 1443, 1248, 1139, 439, 107, 156, 1077, 1443, 292, 1815 167, 514, 49, 1016, 820, 182, 169, 830, 172, 98, 1816 272, 1398, 1399, 202, 588, 272, 267, 267, 723, 821, 1817 1249, 63, 114, 1512, 162, 1514, 472, 527, 951, 1080, 1818 170, 991, 441, 327, 665, 656, 1015, 463, 50, 164, 1819 672, 674, 1093, 815, 342, 307, -287, 442, 483, 358, 1820 1468, 609, 1526, 248, 1382, 500, 69, 307, 251, 596, 1821 664, 1003, 56, 671, 596, 804, 357, 97, -119, 676, 1822 -119, 816, 817, 571, -119, 1187, 1178, 70, 148, 1541, 1823 97, 1400, 465, 1398, 1399, 373, -516, 527, 1084, -119, 1824 -119, 114, 734, 1118, 819, 345, 436, 1171, 713, 602, 1825 620, 579, 471, 411, 164, 398, 190, 853, 665, 898, 1826 253, 377, 827, 1119, 625, 735, 556, 557, 625, 1201, 1827 519, 114, 471, 178, 820, 519, 327, 378, 519, 97, 1828 471, 1070, 831, 1116, 1069, 736, 834, 673, 675, 821, 1829 629, 97, 358, 111, 633, 847, 267, 1171, 747, 848, 1830 510, 558, 559, 1409, 41, 42, 187, 851, 436, 357, 1831 77, 854, 986, 373, 1496, 77, 1325, 1169, 1170, 174, 1832 1501, 97, 547, 548, 267, 213, 307, 307, 107, 844, 1833 267, 787, 759, 625, 714, 479, 1326, 472, 849, 1423, 1834 1521, 577, 850, 167, 870, 1528, 642, 578, 342, 1525, 1835 435, 1157, 1159, 1424, 114, 729, 358, 472, 1428, 1429, 1836 547, 1362, 254, 871, 1126, 472, 859, 860, 264, 1536, 1837 447, 849, 267, 357, 742, 1100, 1540, 387, 1187, 330, 1838 267, 598, 625, 877, 49, 1187, 1469, 373, 719, 460, 1839 498, 98, 683, 388, 114, 1244, 547, 97, 578, 390, 1840 1470, 711, 869, 63, 888, 881, 307, 1104, 114, 1135, 1841 1014, 307, 435, 307, 307, 391, 1171, 910, 603, -10, 1842 50, 750, -440, 609, 392, 114, 345, -441, 1016, 996, 1843 582, -467, 411, -467, 804, 523, 1187, 1434, 69, 798, 1844 393, 931, 277, 879, 56, 394, 112, 164, 213, 1236, 1845 -467, 2, 207, 4, 5, 6, 7, 914, 417, 70, 1846 704, 395, 327, 327, 916, 912, 705, 914, 916, 1184, 1847 571, 571, 1184, 915, 952, 190, 77, 279, 307, 1316, 1848 917, 437, 1126, 1081, 1082, 1185, 280, 913, 1308, 625, 1849 345, 445, 549, 714, 620, 1317, 77, 1318, 550, 551, 1850 602, 747, 602, 882, 77, 411, 331, 760, 1360, 1276, 1851 1277, 713, 765, 1319, 1474, 471, 35, 1363, 36, 332, 1852 625, 1474, 804, 1014, 1019, 625, 111, 620, 140, 239, 1853 327, 625, 994, 333, 625, 625, 625, 41, 42, 111, 1854 334, 928, 77, -102, 806, 335, 846, -102, 371, 327, 1855 41, 42, 625, 97, 267, 372, 1087, 603, 1087, 520, 1856 107, 465, 861, 240, 768, 769, 770, 342, 241, 1348, 1857 376, 1027, 1522, 1349, 111, 358, 876, 385, 111, -3, 1858 140, 141, 1408, 389, 114, 41, 42, 907, 596, 41, 1859 42, 1074, 357, 885, 691, 411, 111, 442, 140, 141, 1860 472, 528, 529, 530, 1141, 1112, 411, 41, 42, 397, 1861 625, 933, 620, 764, 327, 726, 1101, 1234, 719, 719, 1862 727, 1238, 1034, 399, 400, 531, 472, 532, 409, 533, 1863 534, 1153, 878, 411, 880, 432, 721, 407, 244, 401, 1864 402, 403, 722, 426, 114, 345, 523, 404, 523, 750, 1865 750, 523, 405, 1156, 523, 601, 845, 500, 1158, 230, 1866 601, 598, 427, 231, 711, 1476, 235, 1477, 237, 814, 1867 713, 603, 964, 213, 450, 246, 775, 776, 777, 778, 1868 1373, -288, 965, 966, 927, 408, -364, 213, 8, 9, 1869 10, 11, 12, 571, 2, 207, 4, 5, 6, 7, 1870 731, 625, 1241, 625, 411, 999, 732, 680, 625, 345, 1871 1161, -393, 602, 570, 1425, 411, 111, 31, 140, 141, 1872 1523, 45, 46, 229, 602, 111, 342, 41, 42, 484, 1873 1436, 461, 746, 706, 462, 714, 41, 42, 747, 77, 1874 8, 9, 10, 11, 12, 34, 37, 892, 804, 504, 1875 40, 253, 329, 747, 292, 864, 911, 41, 42, 35, 1876 894, 36, 163, 806, 1330, 77, 747, 980, 508, 31, 1877 520, 972, 513, 981, 307, 520, 195, 525, 520, 218, 1878 213, 527, 228, 812, 562, 601, 1168, 814, 603, 993, 1879 1182, 45, 46, 63, 563, 705, 625, 34, 554, 555, 1880 1494, 1436, 230, 114, 345, 907, 111, 907, 2, 207, 1881 4, 5, 6, 7, 714, 664, 1232, 41, 42, 114, 1882 910, 564, 578, 711, 691, 1356, 565, 749, 69, 411, 1883 142, 747, 933, 933, 56, 45, 46, 719, 568, 570, 1884 37, 411, 114, 307, 40, 1332, 338, 45, 46, 70, 1885 -437, 41, 42, 952, 1357, 586, 1105, 952, 952, 589, 1886 747, 163, 932, 665, 601, 48, 113, 750, 912, -3, 1887 45, 46, 657, 35, 374, 36, 1359, 43, 1508, 552, 1888 553, 814, 747, 242, 245, 45, 46, 638, 8, 9, 1889 10, 11, 12, 603, 113, 113, 1227, 48, 1364, 345, 1890 163, 658, 1106, 659, 747, 560, 561, 37, 48, 184, 1891 185, 40, 713, 111, 48, 140, 141, 31, 41, 42, 1892 625, 625, 48, 163, 41, 42, 661, 1126, 48, 984, 1893 981, 48, 77, 890, 48, 444, 1121, 253, 329, 411, 1894 307, 230, 897, 235, 186, 34, 899, 662, 113, 113, 1895 107, 666, 45, 46, 1284, 1285, 37, 1287, 1132, 472, 1896 40, 663, 1132, 1426, 1292, 1444, 1294, 41, 42, 1423, 1897 668, 747, 48, 1323, 1083, 48, 911, 442, 1490, 327, 1898 114, 258, 48, 692, 1491, 907, 1546, 749, 693, 411, 1899 907, 695, 578, 718, 1189, 45, 46, 329, 411, 933, 1900 56, 45, 46, 737, 215, 738, 603, 267, 739, 1369, 1901 1370, 743, 1132, 48, 547, 70, 1418, 981, 107, 1398, 1902 1399, 48, 625, 771, 772, 37, 48, 184, 185, 40, 1903 342, 230, 419, 660, 411, 845, 41, 42, 779, 780, 1904 1351, 374, 773, 774, 457, 697, 345, -235, 481, 329, 1905 411, 48, 48, 733, 744, 510, 215, 748, 756, 691, 1906 1380, 807, 266, 873, 1380, 711, 808, 48, 811, -289, 1907 45, 46, 828, 329, 601, 48, 8, 9, 10, 11, 1908 12, 1295, 1296, 1297, 48, 822, 867, 48, 272, 114, 1909 1331, 1333, 1334, 893, 113, -12, -13, 866, 77, 215, 1910 895, 896, 900, 220, 903, 31, 921, 114, -414, 113, 1911 -520, 307, 936, 113, 943, 722, 107, 48, 113, 374, 1912 117, 945, 1404, 956, 130, 625, 131, 132, 133, 114, 1913 63, 48, 48, 34, 950, 41, 42, 957, 48, 958, 1914 959, 960, 961, 1105, 711, 48, 988, 989, 211, 221, 1915 990, 977, 1005, 1006, 911, 1007, 1008, 1009, 1010, 911, 1916 215, 1459, 1079, 213, 1011, 69, 1022, 1421, 160, -402, 1917 -401, 56, 1036, 1058, 625, 625, 1071, 1534, 1094, 906, 1918 644, 1073, 1096, 272, 1097, 1095, 70, 1103, 307, 1106, 1919 1113, 747, 1114, 48, 1115, 1120, 1122, 971, 215, 1123, 1920 1124, 702, 1125, 215, 1128, 1131, 1151, 472, 1174, 1175, 1921 1172, 1173, 1176, 48, 48, 8, 9, 10, 11, 12, 1922 691, 114, 1190, 399, 400, 259, 1191, 1132, 1132, 1132, 1923 48, 1193, 1194, 160, 48, 1105, 407, 1202, 1206, 401, 1924 402, 403, 1189, 441, 31, 643, -290, 404, 56, 1207, 1925 1209, -3, 405, 8, 9, 10, 11, 12, 442, 1214, 1926 664, 48, 1219, 70, 1224, 107, 323, 493, 1222, 77, 1927 1507, 48, 34, 1228, 703, 339, 1233, 922, 267, 1235, 1928 1237, 1106, 31, 1240, 408, 1250, 1246, 107, 215, 48, 1929 1252, 724, 1254, 728, 625, 48, 1256, 48, 1257, 1258, 1930 1262, 1259, 1420, 1260, 1269, 107, 1278, 1279, 665, 37, 1931 34, 175, 176, 40, 932, 1203, 601, 1286, 1307, 114, 1932 41, 42, 45, 46, 37, 430, 175, 176, 40, 434, 1933 1289, 1290, 113, 1105, 1291, 41, 42, 48, 1293, 1301, 1934 1314, 114, 1192, 1320, 1322, 48, 77, 1328, 114, 48, 1935 114, 1324, 114, 48, 1329, 1358, 113, 1335, 113, 323, 1936 472, 372, 1336, 1338, 107, 1132, 1132, 472, 985, 215, 1937 150, 1344, 151, 152, 1345, 1346, 1347, 1297, 1365, 1106, 1938 1354, 1506, 214, 1355, 1366, 1383, 114, 1374, 114, 1375, 1939 1376, 434, 233, 113, 488, 1189, 1392, 107, 113, 114, 1940 1393, 56, 1189, 1460, -403, 1506, 1506, 702, 56, 1396, 1941 1407, 215, 1415, 162, 521, 307, 70, 1411, 472, 1413, 1942 528, 529, 530, 70, 1416, 1417, 160, 1422, 1430, 37, 1943 1506, 175, 176, 40, 214, 1431, 1432, 373, 1433, 1435, 1944 41, 42, 865, 1349, 531, 1029, 532, 113, 533, 1305, 1945 1440, 1445, 1449, 1189, 48, 1451, 1447, 1453, 1455, 56, 1946 587, 1509, 1457, 1462, 593, 48, 376, 48, 1463, 1464, 1947 1517, 1475, 1492, 1485, 70, 1487, 1500, 214, 1493, 1489, 1948 703, 1515, 1516, 626, 1520, 1527, 48, 630, 922, 1529, 1949 339, 918, 1531, 920, 1544, 107, 1545, 457, 1208, 77, 1950 1537, 783, 48, 781, 1130, 784, 77, 113, 782, 785, 1951 1058, 1306, 1495, 1410, 1547, 1368, 48, 107, 113, 48, 1952 113, 1239, 1384, 1478, 107, 1088, 702, 216, 901, 1213, 1953 902, 1221, 215, 922, 1092, 924, 702, 800, 214, 1127, 1954 1035, 872, 938, 1315, 243, 323, 323, 1102, 790, 716, 1955 702, 327, 48, 946, 791, 792, 113, 77, 113, 0, 1956 215, 1367, 113, 0, 0, 215, 0, 0, 1138, 0, 1957 113, 0, 0, 687, 479, 107, 214, 0, 0, 216, 1958 0, 214, 0, 48, 48, 0, 117, 0, 0, 0, 1959 1482, 0, 1482, 0, 0, 0, 499, 48, 0, 703, 1960 0, 0, 0, 1372, 0, 0, 0, 0, 0, 703, 1961 0, 488, 0, 323, 0, 488, 0, 0, 0, 1029, 1962 0, 0, 216, 703, 0, 521, 1482, 521, 1482, 0, 1963 521, 0, 323, 521, 0, 0, 215, 177, 0, 8, 1964 9, 10, 11, 12, 339, 0, 0, 0, 0, 37, 1965 215, 184, 185, 40, 0, 1397, 0, 0, 1405, 0, 1966 41, 42, 0, 0, 0, 0, 214, 644, 31, 0, 1967 0, 0, 0, 1039, 0, 0, 0, 48, 0, 0, 1968 0, 0, 0, 216, 0, 0, 905, 177, 411, 48, 1969 177, 0, 0, 0, 45, 46, 34, 323, 0, 922, 1970 0, 1442, 0, 0, 0, 0, 1446, 906, 802, 0, 1971 0, 0, 0, 1479, 1089, 1483, 0, 0, 0, 0, 1972 0, 216, 0, 0, 0, 0, 216, 0, 0, 0, 1973 0, 0, 643, 0, 1467, 0, 177, 891, 113, 843, 1974 0, 0, 0, 215, 593, 0, 0, 214, 0, 1511, 1975 852, 1513, 66, 118, 702, 702, 0, 0, 0, 922, 1976 922, 48, 0, 0, 214, 0, 0, 0, 0, 0, 1977 48, 644, 48, 0, 0, 0, 0, 0, 0, 113, 1978 0, 0, 0, 0, 66, 0, 0, 0, 0, 214, 1979 0, 0, 0, 1542, 0, 1543, 0, 0, 0, 177, 1980 0, 161, 48, 687, 0, 0, 0, 0, 1550, 1551, 1981 0, 216, 702, 702, 0, 0, 0, 0, 1535, 0, 1982 0, 222, 113, 0, 1535, 0, 0, 703, 703, 0, 1983 0, 0, 0, 0, 0, 1535, 643, 0, 0, 1535, 1984 0, 488, 0, 0, 113, 0, 0, 0, 113, 57, 1985 57, 0, 0, 177, 0, 0, 987, 0, 260, 0, 1986 177, 0, 0, 339, 0, 0, 992, 0, 0, 0, 1987 0, 1039, 0, 0, 0, 75, 0, 0, 0, 0, 1988 1004, 57, 0, 0, 0, 703, 703, 0, 0, 0, 1989 0, 0, 216, 0, 0, 0, 0, 0, 113, 0, 1990 328, 0, 0, 0, 0, 0, 0, 75, 260, 350, 1991 214, 0, 0, 0, 0, 57, 0, 0, 57, 0, 1992 0, 0, 995, 0, 0, 0, 0, 802, 177, 0, 1993 0, 0, 0, 0, 216, 0, 113, 0, 214, 406, 1994 215, 0, 0, 214, 223, 177, 0, 0, 0, 177, 1995 48, 0, 0, 0, 424, 48, 0, 429, 431, 0, 1996 1312, 0, 161, 0, 922, 0, 0, 0, 0, 0, 1997 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 1998 922, 0, 0, 448, 1282, 0, 0, 451, 0, 452, 1999 0, 0, 702, 0, 0, 0, 0, 0, 459, 0, 2000 702, 702, 702, 0, 66, 0, 348, 0, 0, 473, 2001 0, 0, 177, 0, 214, 802, 0, 0, 0, 480, 2002 0, 0, 339, 0, 0, 0, 0, 431, 214, 0, 2003 0, 78, 353, 1313, 0, 0, 0, 0, 687, 0, 2004 0, 37, 0, 184, 185, 40, 0, 0, 499, 113, 2005 922, 922, 41, 42, 0, 216, 0, 0, 0, 0, 2006 488, 1107, 323, 78, 702, 703, 0, 0, 0, 0, 2007 0, 57, 48, 703, 703, 703, 0, 0, 600, 0, 2008 601, 0, 0, 216, 1166, 1167, 45, 46, 216, 0, 2009 0, 0, 0, 260, 0, 0, 0, 594, 0, 0, 2010 224, 57, 0, 622, 0, 0, 449, 0, 0, 0, 2011 0, 0, 0, 113, 113, 113, 627, 0, 843, 0, 2012 627, 214, 0, 260, 0, 0, 215, 75, 0, 0, 2013 0, 0, 75, 0, 0, 0, 0, 703, 0, 0, 2014 0, 0, 1216, 1217, 0, 0, 0, 0, 0, 0, 2015 37, 0, 184, 185, 40, 0, 0, 0, 0, 216, 2016 0, 41, 42, 37, 0, 184, 185, 40, 0, 177, 2017 473, 0, 0, 216, 41, 42, 0, 0, 0, 0, 2018 0, 0, 0, 0, 0, 350, 0, 905, 355, 411, 2019 473, 0, 0, 0, 0, 45, 46, 0, 473, 687, 2020 1505, 177, 411, 0, 0, 0, 0, 0, 45, 46, 2021 0, 0, 0, 0, 0, 0, 698, 177, 0, 431, 2022 0, 215, 0, 0, 0, 0, 223, 0, 0, 0, 2023 0, 177, 0, 0, 712, 0, 66, 0, 0, 0, 2024 0, 802, 48, 48, 431, 0, 0, 0, 431, 0, 2025 0, 113, 113, 535, 536, 537, 538, 539, 540, 541, 2026 542, 543, 544, 0, 0, 0, 216, 0, 0, 0, 2027 0, 0, 0, 0, 0, 0, 0, 260, 350, 0, 2028 0, 0, 348, 78, 0, 0, 0, 545, 78, 113, 2029 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 2030 0, 0, 0, 0, 0, 0, 0, 0, 353, 0, 2031 0, 0, 177, 75, 0, 0, 0, 0, 214, 0, 2032 0, 75, 1337, 793, 0, 0, 339, 0, 0, 0, 2033 1339, 1340, 1341, 57, 0, 0, 0, 0, 0, 353, 2034 0, 627, 805, 0, 0, 0, 48, 113, 1107, 0, 2035 0, 0, 0, 0, 824, 0, 113, 353, 0, 75, 2036 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2037 48, 48, 594, 0, 0, 348, 0, 594, 0, 0, 2038 0, 0, 224, 627, 0, 0, 350, 350, 350, 0, 2039 0, 0, 286, 0, 1385, 48, 0, 0, 287, 0, 2040 0, 353, 288, 0, 350, 289, 290, 291, 292, 41, 2041 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2042 0, 0, 698, 0, 0, 8, 9, 10, 11, 12, 2043 0, 0, 0, 473, 0, 295, 0, 379, 0, 348, 2044 1107, 0, 0, 45, 46, 297, 298, 299, 300, 78, 2045 0, 0, 0, 0, 31, 0, 786, 0, 0, 473, 2046 0, 0, 350, 216, 355, 353, 0, 0, 0, 78, 2047 0, 937, 0, 0, 431, 0, 177, 78, 0, 0, 2048 0, 0, 34, 348, 348, 348, 0, 37, 0, 184, 2049 185, 40, 0, 0, 0, 355, 260, 712, 41, 42, 2050 0, 348, 967, 0, 214, 0, 0, 0, 0, 353, 2051 353, 353, 0, 355, 0, 78, 0, 8, 9, 10, 2052 11, 12, 0, 0, 600, 0, 601, 353, 0, 0, 2053 0, 0, 45, 46, 0, 0, 0, 0, 1107, 0, 2054 0, 698, 0, 0, 0, 353, 31, 0, 0, 0, 2055 0, 698, 0, 350, 0, 627, 75, 355, 1002, 348, 2056 627, 805, 0, 0, 0, 698, 0, 0, 0, 1481, 2057 0, 1481, 0, 0, 34, 1013, 0, 0, 0, 37, 2058 0, 0, 75, 40, 0, 353, 0, 0, 0, 0, 2059 41, 42, 0, 0, 0, 0, 0, 0, 0, 214, 2060 0, 80, 0, 0, 0, 1481, 0, 1481, 0, 0, 2061 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 2062 353, 355, 0, 0, 45, 46, 66, 0, 87, 0, 2063 413, 0, 0, 80, 323, 0, 0, 421, 0, 0, 2064 0, 0, 0, 0, 0, 0, 0, 0, 627, 216, 2065 348, 0, 0, 0, 0, 260, 712, 0, 348, 1085, 2066 87, 0, 0, 0, 353, 355, 355, 355, 0, 0, 2067 225, 0, 0, 0, 353, 0, 353, 0, 0, 0, 2068 0, 223, 0, 355, 353, 1099, 0, 0, 353, 0, 2069 0, 0, 0, 431, 118, 0, 0, 226, 0, 0, 2070 0, 355, 0, 0, 0, 0, 0, 0, 0, 413, 2071 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 2072 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 2073 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 2074 0, 355, 0, 0, 216, 0, 0, 0, 0, 75, 2075 0, 594, 0, 0, 0, 0, 0, 0, 356, 0, 2076 0, 0, 0, 576, 429, 0, 0, 0, 0, 698, 2077 698, 580, 350, 350, 583, 0, 355, 0, 0, 353, 2078 0, 0, 0, 0, 0, 363, 0, 177, 0, 0, 2079 0, 57, 1188, 0, 0, 206, 2, 207, 4, 5, 2080 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2081 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2082 355, 0, 26, 27, 28, 0, 0, 698, 698, 0, 2083 355, 31, 355, 0, 0, 0, 0, 224, 413, 0, 2084 355, 0, 421, 0, 355, 0, 0, 0, 0, 0, 2085 0, 0, 0, 80, 0, 0, 0, 0, 80, 34, 2086 0, 35, 0, 36, 37, 0, 208, 39, 40, 348, 2087 348, 0, 0, 0, 627, 41, 42, 0, 0, 0, 2088 87, 0, 0, 0, 0, 87, 0, 0, 0, 57, 2089 0, 0, 353, 353, 0, 353, 353, 0, 712, 0, 2090 0, 43, 0, 209, 0, 78, 0, 0, 0, 45, 2091 46, 0, 0, 0, 0, 75, 0, 0, 0, 413, 2092 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2093 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2094 0, 1283, 0, 0, 0, 0, 0, 0, 0, 0, 2095 353, 353, 225, 0, 31, 0, 0, 177, 0, 260, 2096 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 2097 0, 0, 0, 0, 0, 698, 0, 712, 0, 226, 2098 0, 118, 34, 0, 0, 0, 0, 37, 0, 184, 2099 185, 40, 0, 0, 0, 127, 127, 127, 41, 42, 2100 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, 2101 576, 576, 0, 0, 0, 698, 698, 698, 0, 80, 2102 0, 353, 0, 0, 186, 0, 350, 350, 0, 0, 2103 0, 0, 45, 46, 356, 0, 0, 57, 57, 80, 2104 1188, 0, 0, 0, 0, 0, 87, 80, 355, 355, 2105 0, 355, 355, 0, 0, 0, 0, 0, 0, 0, 2106 57, 363, 0, 0, 223, 356, 87, 0, 127, 0, 2107 127, 78, 0, 118, 87, 0, 0, 0, 57, 698, 2108 0, 0, 0, 356, 0, 80, 75, 0, 0, 0, 2109 0, 0, 363, 0, 0, 276, 0, 883, 353, 0, 2110 353, 886, 0, 0, 0, 0, 355, 355, 0, 0, 2111 363, 0, 87, 0, 0, 0, 0, 0, 0, 0, 2112 0, 0, 0, 348, 348, 0, 0, 356, 0, 0, 2113 353, 0, 57, 0, 0, 0, 0, 57, 353, 353, 2114 353, 0, 0, 0, 0, 0, 350, 0, 0, 353, 2115 353, 127, 0, 0, 363, 0, 0, 0, 0, 127, 2116 0, 127, 127, 75, 0, 0, 127, 0, 127, 127, 2117 57, 118, 0, 168, 0, 173, 0, 355, 179, 180, 2118 181, 0, 183, 0, 0, 0, 0, 0, 0, 0, 2119 0, 356, 0, 1188, 0, 0, 0, 234, 0, 0, 2120 1188, 0, 353, 0, 0, 0, 0, 0, 0, 249, 2121 250, 0, 0, 0, 125, 128, 129, 0, 363, 0, 2122 224, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2123 12, 0, 0, 576, 0, 356, 356, 356, 127, 0, 2124 0, 0, 78, 348, 0, 0, 0, 0, 0, 0, 2125 0, 1188, 0, 356, 355, 31, 355, 0, 1530, 0, 2126 0, 0, 363, 363, 363, 0, 0, 0, 57, 353, 2127 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2128 363, 0, 80, 34, 0, 0, 355, 255, 37, 256, 2129 57, 0, 40, 0, 355, 355, 355, 57, 363, 41, 2130 42, 0, 0, 0, 0, 355, 355, 0, 80, 87, 2131 0, 356, 0, 0, 0, 0, 75, 0, 0, 78, 2132 0, 0, 0, 75, 0, 718, 0, 0, 0, 0, 2133 0, 0, 0, 45, 46, 87, 0, 0, 363, 8, 2134 9, 10, 11, 12, 0, 0, 356, 0, 57, 0, 2135 0, 413, 0, 0, 0, 0, 0, 0, 355, 0, 2136 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2137 396, 0, 0, 363, 75, 0, 0, 0, 0, 0, 2138 415, 416, 0, 0, 0, 420, 0, 422, 423, 0, 2139 356, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2140 356, 37, 356, 184, 185, 40, 0, 225, 0, 0, 2141 356, 0, 41, 42, 356, 0, 0, 363, 0, 8, 2142 9, 10, 11, 12, 0, 355, 0, 363, 1142, 363, 2143 0, 0, 0, 0, 226, 0, 0, 363, 905, 0, 2144 411, 363, 0, 0, 0, 1154, 45, 46, 31, 0, 2145 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2146 0, 0, 0, 0, 591, 0, 599, 0, 0, 0, 2147 0, 0, 78, 0, 0, 80, 34, 623, 624, 78, 2148 31, 37, 0, 184, 185, 40, 0, 0, 0, 0, 2149 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2150 0, 0, 87, 0, 0, 356, 0, 0, 34, 0, 2151 0, 0, 0, 37, 0, 184, 185, 40, 1505, 0, 2152 411, 0, 0, 413, 41, 42, 45, 46, 0, 0, 2153 78, 0, 363, 0, 0, 0, 0, 0, 0, 0, 2154 0, 0, 0, 127, 127, 0, 0, 0, 0, 0, 2155 266, 0, 0, 0, 0, 0, 0, 0, 45, 46, 2156 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 2157 0, 0, 127, 0, 0, 127, 127, 0, 127, 0, 2158 127, 127, 0, 0, 0, 127, 127, 1, 2, 207, 2159 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2160 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2161 24, 25, -291, 0, 26, 27, 28, 29, 356, 356, 2162 30, 356, 356, 31, 0, 0, 0, 0, 0, 0, 2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2164 0, 80, 0, 0, 0, 363, 363, 0, 363, 363, 2165 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2166 0, 0, -291, 0, 0, 0, 1012, 0, 87, 8, 2167 9, 10, 11, 12, 0, 0, 356, 356, 0, 0, 2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 44, 283, 284, 31, 285, 2170 0, 45, 46, 363, 363, 0, 0, 0, 0, 0, 2171 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2172 0, 0, 0, 127, 127, 286, 34, 0, 0, 0, 2173 0, 287, 0, 0, 0, 288, 0, 0, 289, 290, 2174 291, 292, 41, 42, 0, 293, 294, 356, 0, 0, 2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2176 0, 0, 795, 796, 0, 0, 0, 0, 295, 0, 2177 379, 0, 0, 0, 363, 0, 344, 46, 297, 298, 2178 299, 300, 0, 0, 0, 0, 0, 0, 0, 0, 2179 225, 829, 0, 0, 832, 833, 0, 836, 0, 838, 2180 839, 0, 0, 0, 840, 841, 0, 0, 0, 0, 2181 0, 0, 80, 0, 0, 0, 0, 226, 0, 925, 2182 0, 926, 0, 0, 356, 0, 356, 0, 929, 930, 2183 0, 0, 0, 935, 0, 0, 0, 0, 0, 87, 2184 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, 2185 944, 363, 0, 363, 0, 0, 356, 0, 0, 0, 2186 0, 0, 0, 0, 356, 356, 356, 0, 0, 0, 2187 0, 0, 0, 0, 0, 356, 356, 0, 978, 0, 2188 127, 0, 0, 363, 0, 127, 0, 0, 0, 80, 2189 0, 363, 363, 363, 0, 0, 0, 0, 0, 0, 2190 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 2191 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 2192 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 166, 0, 969, 970, 0, 0, 0, 0, 0, 0, 2195 0, 0, 0, 0, 0, 363, 0, 219, 0, 0, 2196 1162, 0, 0, 8, 9, 10, 11, 12, 0, 0, 2197 0, 0, 0, 0, 0, 0, 0, 1023, 1024, 1025, 2198 1026, 0, 1028, 0, 0, 0, 0, 0, 0, 0, 2199 283, 284, 31, 285, 0, 356, 0, 1072, 0, 0, 2200 0, 0, 0, 0, 0, 166, 0, 0, 0, 273, 2201 0, 1078, 0, 0, 0, 0, 0, 0, 0, 286, 2202 34, 0, 363, 0, 0, 287, 0, 0, 0, 288, 2203 0, 0, 289, 290, 291, 292, 41, 42, 166, 293, 2204 294, 0, 80, 0, 0, 0, 127, 0, 369, 80, 2205 0, 1098, 375, 0, 0, 0, 0, 0, 0, 0, 2206 0, 0, 295, 0, 379, 0, 0, 0, 0, 87, 2207 1163, 46, 297, 298, 299, 300, 87, 8, 9, 10, 2208 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2209 21, 22, 23, 24, 25, 0, 1129, 26, 27, 28, 2210 80, 166, 1136, 0, 1090, 0, 31, 1140, 0, 0, 2211 0, 0, 1144, 219, 1145, 0, 0, 0, 1147, 0, 2212 1148, 1149, 0, 0, 1152, 0, 0, 87, 0, 0, 2213 0, 166, 0, 1164, 34, 0, 0, 0, 0, 0, 2214 0, 208, 39, 0, 0, 0, 0, 0, 0, 0, 2215 0, 1179, 1180, 0, 0, 0, 375, 0, 0, 0, 2216 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 2217 0, 0, 0, 0, 0, 127, 0, 0, 1210, 0, 2218 0, 1212, 0, 0, 45, 46, 524, 0, 0, 0, 2219 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 2220 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 2221 0, 0, 0, 0, 232, 0, 236, 0, 238, 0, 2222 0, 0, 0, 0, 1226, 247, 0, 0, 0, 0, 2223 1230, 1231, 0, 0, 0, 0, 597, 0, 0, 0, 2224 0, 621, 0, 0, 0, 0, 0, 0, 0, 0, 2225 1247, 0, 0, 1251, 0, 0, 212, 1253, 236, 238, 2226 247, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 2227 1261, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2228 0, 0, 0, 1268, 0, 1270, 1271, 1272, 1273, 0, 2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 2230 0, 1280, 0, 1281, 0, 0, 0, 173, 0, 0, 2231 0, 0, 0, 0, 0, 0, 0, 166, 166, 0, 2232 0, 0, 0, 0, 369, 0, 0, 0, 0, 0, 2233 0, 0, 0, 0, 0, 0, 1309, 1310, 0, 0, 2234 0, 0, 0, 0, 0, 524, 0, 0, 0, 0, 2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236 212, 0, 236, 238, 247, 0, 0, 0, 0, 0, 2237 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 0, 166, 1342, 1343, 0, 0, 2239 0, 0, 0, 0, 1304, 0, 1353, 524, 212, 524, 2240 0, 0, 524, 212, 166, 524, 0, 0, 0, 0, 2241 0, 0, 0, 0, 0, 0, 0, 369, 497, 0, 2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2243 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2244 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2245 24, 25, -291, 0, 26, 27, 28, 1388, 0, 1389, 2246 1390, 1391, 0, 31, 0, 0, 212, 0, 0, 166, 2247 0, 1395, 0, 0, 0, 0, 0, 0, 0, 0, 2248 1406, 369, 0, 0, 0, 810, 0, 0, 212, 0, 2249 0, 34, 0, 236, 238, 0, 37, 0, 336, 337, 2250 40, 247, -291, 0, 0, 1427, 0, 41, 42, 0, 2251 0, 597, 0, 0, 321, 0, 597, 0, 0, 0, 2252 0, 0, 0, 0, 346, 369, 369, 369, 0, 157, 2253 0, 0, 0, 634, 0, 338, 382, 382, 0, 0, 2254 0, 45, 46, 369, 212, 0, 0, 0, 1465, 1466, 2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2256 0, 1471, 212, 0, 0, 0, 0, 212, 1471, 212, 2257 283, 284, 0, 285, 0, 524, 0, 252, 0, 0, 2258 0, 0, 0, 0, 0, 0, 212, 257, 0, 212, 2259 212, 0, 0, 0, 0, 0, 0, 212, 0, 286, 2260 1504, 369, 0, 934, 1510, 287, 0, 321, 0, 288, 2261 0, 212, 289, 290, 291, 292, 41, 42, 212, 293, 2262 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2263 0, 478, 1532, 0, 1533, 0, 715, 0, 0, 0, 2264 0, 0, 295, 157, 379, 0, 0, 380, 0, 0, 2265 45, 46, 297, 298, 299, 300, 0, 386, 0, 0, 2266 0, 0, 1548, 1549, 0, 0, 0, 0, 0, 0, 2267 1552, 1553, 0, 0, 0, 0, 0, 0, 0, 0, 2268 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2269 0, 0, 369, 0, 433, 0, 621, 0, 0, 0, 2270 369, 0, 0, 438, 0, 0, 0, 0, 0, 0, 2271 0, 0, 0, 446, 0, 0, 0, 0, 0, 0, 2272 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2273 0, 0, 212, 0, 0, 0, 0, 0, 464, 0, 2274 0, 0, 0, 474, 0, 0, 0, 382, 0, 0, 2275 0, 0, 0, 286, 0, 0, 482, 0, 0, 287, 2276 212, 0, 492, 288, 496, 212, 289, 290, 291, 292, 2277 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2278 0, 526, 0, 0, 0, 0, 0, 0, 0, 0, 2279 0, 0, 0, 0, 0, 715, 295, 0, 379, 0, 2280 0, 0, 0, 757, 45, 46, 297, 298, 299, 300, 2281 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2282 0, 0, 0, 585, 0, 0, 0, 0, 590, 0, 2283 0, 0, 0, 0, 166, 0, 212, 0, 0, 0, 2284 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 2285 212, 0, 0, 0, 0, 0, 0, 635, 0, 0, 2286 0, 636, 637, 0, 639, 0, 0, 0, 0, 0, 2287 497, 650, 651, 0, 652, 653, 0, 654, 0, 655, 2288 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2289 597, 0, 0, 758, 0, 0, 585, 0, 741, 0, 2290 0, 741, 0, 0, 670, 0, 0, 0, 0, 0, 2291 0, 369, 369, 767, 0, 0, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 681, 2293 0, 212, 0, 0, 0, 788, 0, 0, 0, 0, 2294 0, 0, 0, 212, 0, 797, 0, 0, 0, 0, 2295 0, 0, 346, 0, 0, 707, 0, 758, 0, 0, 2296 0, 710, 212, 0, 0, 0, 464, 0, 0, 0, 2297 0, 524, 0, 0, 0, 0, 206, 2, 207, 4, 2298 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2299 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2300 25, 0, 745, 26, 27, 28, 862, 0, 0, 0, 2301 0, 0, 31, 0, 382, 0, 0, 763, 0, 0, 2302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2303 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, 2304 34, 0, 35, 0, 36, 0, 0, 208, 39, 0, 2305 0, 0, 0, 283, 284, 789, 285, 0, 0, 0, 2306 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 2307 0, 801, 0, 0, 0, 212, 0, 809, 0, 219, 2308 0, 0, 286, 0, 209, 0, 823, 0, 287, 0, 2309 45, 46, 288, 0, 0, 289, 290, 291, 292, 41, 2310 42, 0, 293, 294, 0, 212, 0, 0, 0, 0, 2311 0, 0, 758, 0, 963, 0, 715, 0, 0, 341, 2312 364, 0, 0, 0, 974, 295, 863, 379, 0, 0, 2313 982, 0, 0, 45, 46, 297, 298, 299, 300, 0, 2314 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2315 0, 212, 0, 414, 0, 0, 0, 0, 0, 0, 2316 414, 0, 809, 0, 0, 369, 369, 0, 0, 0, 2317 904, 0, 1000, 1001, 219, 0, 346, 0, 0, 0, 2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2319 346, 509, 512, 0, 0, 0, 0, 0, 0, 515, 2320 516, 252, 0, 0, 0, 0, 0, 0, 0, 0, 2321 0, 941, 942, 509, 509, 0, 0, 0, 0, 0, 2322 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2323 1031, 0, 414, 0, 382, 0, 0, 212, 0, 0, 2324 0, 0, 0, 0, 979, 0, 0, 0, 0, 983, 2325 0, 509, 8, 9, 10, 11, 12, 13, 14, 15, 2326 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2327 0, 346, 26, 27, 28, 0, 0, 0, 0, 0, 2328 0, 31, 684, 0, 0, 369, 414, 509, 0, 0, 2329 0, 0, 0, 0, 414, 581, 0, 414, 584, 0, 2330 0, 0, 0, 0, 0, 0, 0, 0, 364, 34, 2331 321, 0, 613, 1017, 0, 0, 38, 39, 0, 0, 2332 1018, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2333 0, 631, 0, 1020, 341, 1021, 0, 0, 382, 0, 2334 0, 524, 0, 524, 974, 0, 0, 0, 741, 1033, 2335 0, 0, 0, 685, 0, 1037, 0, 686, 0, 45, 2336 46, 414, 0, 0, 0, 414, 0, 1075, 0, 1150, 2337 1076, 0, 0, 0, 0, 0, 0, 524, 0, 524, 2338 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2339 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 2340 0, 0, 382, 0, 1183, 0, 166, 0, 0, 0, 2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 2342 974, 212, 8, 9, 10, 11, 12, 13, 14, 15, 2343 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2344 1215, 0, 414, 0, 0, 364, 0, 590, 0, 0, 2345 0, 31, 0, 0, 0, 509, 509, 509, 509, 509, 2346 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 2347 509, 509, 509, 0, 0, 0, 0, 283, 284, 34, 2348 285, 0, 1146, 0, 414, 0, 0, 0, 341, 364, 2349 0, 0, 0, 0, 0, 974, 0, 0, 0, 0, 2350 0, 0, 0, 0, 0, 0, 286, 0, 0, 0, 2351 0, 0, 287, 862, 0, 0, 288, 0, 0, 289, 2352 290, 291, 292, 41, 42, 0, 293, 294, 1266, 1267, 2353 0, 0, 0, 414, 414, 0, 0, 0, 0, 0, 2354 526, 0, 0, 0, 0, 0, 1211, 0, 0, 295, 2355 0, 379, 803, 364, 971, 0, 0, 45, 46, 297, 2356 298, 299, 300, 613, 0, 613, 613, 0, 0, 0, 2357 0, 0, 613, 0, 0, 0, 0, 0, 0, 0, 2358 1223, 0, 842, 364, 0, 1225, 0, 0, 364, 0, 2359 0, 0, 0, 1229, 0, 0, 0, 364, 364, 364, 2360 0, 509, 0, 0, 0, 0, 0, 0, 0, 0, 2361 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 2362 414, 884, 0, 0, 414, 887, 1255, 0, 0, 0, 2363 0, 889, 0, 0, 0, 0, 0, 0, 1263, 0, 2364 0, 1264, 0, 1265, 0, 0, 0, 0, 0, 0, 2365 414, 0, 0, 0, 0, 0, 0, 1274, 1275, 0, 2366 0, 0, 509, 0, 0, 0, 0, 0, 212, 1371, 2367 0, 0, 741, 364, 613, 0, 0, 0, 0, 1288, 2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2369 0, 0, 509, 0, 0, 0, 0, 0, 0, 0, 2370 0, 0, 0, 0, 0, 0, 0, 341, 364, 0, 2371 0, 0, 414, 414, 0, 0, 0, 0, 0, 0, 2372 0, 0, 0, 0, 0, 0, 1327, 0, 0, 0, 2373 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2374 17, 18, 19, 20, 21, 22, 23, 24, 25, -291, 2375 0, 26, 27, 28, 0, 0, 414, 0, 0, 0, 2376 31, 0, 0, 0, 364, 0, 0, 0, 0, 0, 2377 0, 803, 364, 0, 0, 613, 0, 613, 0, 0, 2378 0, 0, 0, 0, 0, 0, 0, 613, 34, 0, 2379 0, 0, 0, 37, 0, 336, 337, 40, 0, -291, 2380 0, 1377, 0, 1378, 41, 42, 0, 0, 0, 0, 2381 0, 0, 509, 0, 0, 1386, 0, 1387, 0, 0, 2382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2383 0, 0, 338, 0, 1394, 0, 0, 0, 45, 46, 2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2385 1412, 1414, 0, 0, 0, 0, 0, 509, 0, 803, 2386 0, 1419, 0, 0, 1229, 0, 341, 364, 414, 0, 2387 414, 0, 0, 0, 414, 0, 0, 0, 0, 0, 2388 0, 0, 321, 0, 0, 1441, 0, 0, 0, 0, 2389 0, 0, 509, 0, 1448, 613, 613, 1450, 0, 1452, 2390 1454, 1456, 0, 0, 0, 509, 8, 9, 10, 11, 2391 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2392 22, 23, 24, 25, -291, 0, 0, 0, 0, 0, 2393 414, 0, 0, 0, 0, 31, 0, 0, 0, 1486, 2394 0, 1488, 0, 1229, 0, 0, 509, 0, 0, 0, 2395 0, 414, 1143, 0, 0, 0, 0, 0, 1499, 0, 2396 0, 0, 364, 34, 0, 0, 0, 0, 414, 1155, 2397 0, 613, 613, 1160, -291, 0, 0, 0, 0, 0, 2398 0, 0, 0, 364, 364, 0, 0, 0, 0, 0, 2399 0, 0, 0, 0, 0, 0, 0, 1, 2, 207, 2400 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2401 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2402 24, 25, 0, 509, 26, 27, 28, 29, 0, 0, 2403 30, 283, 284, 31, 285, 0, 0, 0, 0, 0, 2404 0, 0, 0, 0, 0, 0, 414, 0, 414, 0, 2405 0, 0, 0, 414, 0, 0, 0, 0, 0, 0, 2406 286, 34, 613, 35, 0, 36, 287, 0, 38, 39, 2407 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2408 293, 294, 0, 509, 509, 803, 414, 1243, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2410 0, 0, 0, 295, 0, 1055, 0, 0, 0, 364, 2411 0, 45, 46, 297, 298, 299, 300, 0, 0, 0, 2412 0, 0, 0, 0, 0, 0, -126, 0, 1, 2, 2413 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2414 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2415 23, 24, 25, 0, 0, 26, 27, 28, 29, 0, 2416 0, 30, 283, 284, 31, 1040, 1041, 0, 1042, 0, 2417 341, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 2418 0, 0, 1051, 0, 0, 0, 1052, 1053, 364, 33, 2419 0, 286, 34, 0, 35, 0, 36, 1054, 0, 38, 2420 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2421 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2423 0, 0, 0, 0, 295, 0, 1055, 364, 364, 172, 2424 0, 0, 45, 46, 297, 298, 299, 300, 0, 0, 2425 0, 0, 1056, 0, 0, 0, 0, -126, 0, 0, 2426 0, 0, 1, 2, 207, 4, 5, 6, 7, 8, 2427 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2428 19, 20, 21, 22, 23, 24, 25, 0, 509, 26, 2429 27, 28, 29, 0, 0, 30, 283, 284, 31, 285, 2430 0, 0, 0, 0, 509, 0, 0, 0, 0, 0, 2431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2432 0, 0, 0, 0, 0, 286, 34, 0, 35, 0, 2433 36, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2434 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2435 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2436 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2437 44, 0, 0, 0, 509, 509, 45, 46, 297, 298, 2438 299, 300, 0, 2, 207, 4, 5, 6, 7, 8, 2439 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2440 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2441 27, 28, 0, 0, 0, 0, 283, 284, 31, 285, 2442 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2443 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2444 25, -292, 0, 0, 414, 286, 34, 0, 35, 0, 2445 36, 287, 31, 38, 39, 288, 0, 0, 289, 290, 2446 291, 292, 41, 42, 0, 293, 294, 0, 414, 414, 2447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2448 34, 0, 0, 0, 0, 0, 0, 0, 295, 0, 2449 343, -292, 0, 414, 0, 757, 344, 46, 297, 298, 2450 299, 300, 2, 207, 4, 5, 6, 7, 8, 9, 2451 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2452 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2453 28, 0, 0, 0, 0, 283, 284, 31, 285, 8, 2454 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2455 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2456 27, 28, 0, 0, 286, 34, 0, 35, 31, 36, 2457 287, 0, 38, 39, 288, 0, 0, 289, 290, 291, 2458 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2459 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2460 0, 111, 0, 38, 39, 0, 0, 295, 0, 962, 2461 0, 0, 41, 42, 757, 344, 46, 297, 298, 299, 2462 300, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2463 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2464 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2465 0, 0, 0, 0, 283, 284, 31, 285, 8, 9, 2466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2467 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2468 28, 0, 0, 286, 34, 0, 35, 31, 36, 287, 2469 0, 38, 39, 288, 0, 0, 289, 290, 291, 292, 2470 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2471 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2472 0, 0, 38, 39, 0, 0, 295, 0, 962, 0, 2473 0, 0, 0, 757, 45, 46, 297, 298, 299, 300, 2474 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2475 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2476 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2477 0, 0, 0, 283, 284, 31, 285, 8, 9, 10, 2478 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2479 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2480 0, 0, 286, 34, 0, 35, 31, 36, 287, 0, 2481 38, 39, 288, 0, 0, 289, 290, 291, 292, 41, 2482 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2483 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 2484 0, 208, 39, 0, 0, 295, 0, 343, 0, 0, 2485 0, 0, 0, 344, 46, 297, 298, 299, 300, 2, 2486 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2487 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2488 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2489 0, 0, 283, 284, 31, 285, 0, 0, 0, 0, 2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2492 0, 286, 34, 0, 35, 0, 36, 287, 0, 208, 2493 39, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2494 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 295, 0, 997, 0, 0, 0, 2497 0, 0, 998, 46, 297, 298, 299, 300, 2, 207, 2498 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2499 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2500 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2501 0, 283, 284, 31, 285, 0, 0, 0, 0, 0, 2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504 286, 34, 0, 35, 0, 36, 287, 0, 38, 39, 2505 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2506 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508 0, 0, 0, 295, 0, 962, 0, 0, 0, 0, 2509 0, 344, 46, 297, 298, 299, 300, 2, 207, 4, 2510 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2511 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2512 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2513 283, 284, 31, 285, 0, 0, 0, 0, 0, 0, 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 2516 34, 0, 35, 0, 36, 287, 0, 208, 39, 288, 2517 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2518 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520 0, 0, 295, 0, 379, 0, 0, 0, 0, 0, 2521 45, 46, 297, 298, 299, 300, -515, 0, 0, 1, 2522 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2523 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2524 22, 23, 24, 25, 0, 0, 26, 27, 28, 29, 2525 0, 0, 30, 0, 0, 31, 32, 0, 0, 0, 2526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2528 33, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2529 38, 39, 40, 0, 0, 0, 0, 0, 0, 41, 2530 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 43, 0, 44, 0, 0, 2533 0, 0, 0, 45, 46, 1, 2, 3, 4, 5, 2534 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2535 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2536 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2537 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2539 0, 0, 0, 0, 0, 0, 33, 0, 0, 34, 2540 0, 35, 0, 36, 37, 0, 38, 39, 40, 0, 2541 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2544 0, 43, 0, 44, 0, 0, 0, -519, 0, 45, 2545 46, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2546 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2547 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2548 28, 29, 0, 0, 30, 0, 0, 31, 32, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2551 0, 0, 33, 0, 0, 34, 0, 35, 0, 36, 2552 37, 0, 38, 39, 40, 0, 0, 0, 0, 0, 2553 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2555 0, 0, 0, 0, 0, 0, 0, 43, 0, 44, 2556 0, 0, 0, 0, 0, 45, 46, 1, 2, 207, 2557 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2558 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2559 24, 25, 0, 0, 26, 27, 28, 29, 0, 0, 2560 30, 0, 0, 31, 0, 0, 0, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2563 0, 34, 0, 35, 0, 36, 0, 0, 38, 39, 2564 0, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2565 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2566 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2567 0, 0, 0, 0, 0, 44, 31, 0, 0, 0, 2568 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 34, 0, 35, 0, 36, 37, 2571 0, 208, 39, 40, 0, 0, 0, 0, 0, 0, 2572 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 0, 0, 0, 0, 0, 43, 0, 209, 0, 2575 0, 0, 0, 0, 45, 46, 2, 207, 4, 5, 2576 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2577 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2578 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2579 0, 31, 0, 0, 0, 0, 8, 9, 10, 11, 2580 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2581 22, 23, 24, 25, 0, 0, 26, 27, 28, 34, 2582 0, 35, 0, 36, 0, 31, 38, 39, 0, 2, 2583 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2584 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2585 23, 24, 25, 34, 0, 26, 27, 28, 0, 0, 2586 38, 39, -399, 677, 31, 0, 0, 0, 0, 45, 2587 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 0, 34, 0, 35, 634, 36, 338, 0, 38, 2590 39, 0, 0, 45, 46, 0, 0, 0, 0, 0, 2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2592 0, 1350, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 0, 0, 0, 0, 0, 677, 0, 0, 0, 2594 0, 0, 45, 46, 2, 207, 4, 5, 6, 7, 2595 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2596 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2597 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2598 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2599 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2600 25, 0, 0, 26, 27, 28, 0, 34, 0, 35, 2601 0, 36, 31, 684, 38, 39, 0, 0, 0, 0, 2602 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2603 0, 0, 0, 0, 0, 0, 1352, 0, 0, 0, 2604 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2605 0, 677, 0, 0, 0, 0, 0, 45, 46, 2, 2606 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2607 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2608 23, 24, 25, 0, 685, 26, 27, 28, 1091, 0, 2609 45, 46, 0, 0, 31, 0, 0, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 34, 0, 35, 0, 36, 0, 0, 208, 2613 39, 0, 2, 207, 4, 5, 6, 7, 8, 9, 2614 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2615 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2616 28, 0, 0, 0, 0, 0, 271, 31, 0, 0, 2617 0, 0, 45, 46, 0, 0, 0, 0, 0, 0, 2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2619 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2620 0, 0, 38, 39, 0, 2, 207, 4, 5, 6, 2621 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2622 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2623 0, 26, 27, 28, 0, 0, 0, 0, 0, 677, 2624 31, 0, 0, 0, 0, 45, 46, 0, 0, 0, 2625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2626 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2627 35, 0, 36, 0, 0, 38, 39, 0, 2, 207, 2628 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2629 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2630 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2631 0, 0, 592, 31, 0, 0, 0, 0, 45, 46, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2634 0, 34, 0, 35, 0, 36, 0, 0, 208, 39, 2635 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2636 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2637 26, 27, 28, 0, 0, 0, 0, 283, 284, 31, 2638 285, 0, 0, 0, 0, 209, 0, 0, 0, 0, 2639 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 286, 34, 0, 0, 2641 0, 0, 287, 0, 38, 39, 288, 0, 0, 289, 2642 290, 291, 292, 41, 42, 0, 293, 294, 0, 0, 2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 2645 0, 517, 0, 0, 172, 0, 0, 45, 46, 297, 2646 298, 299, 300, 8, 9, 10, 11, 12, 13, 14, 2647 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2648 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2649 283, 284, 31, 285, 8, 9, 10, 11, 12, 13, 2650 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2651 24, 25, 0, 0, 26, 27, 28, 0, 0, 286, 2652 34, 0, 0, 31, 0, 287, 0, 38, 39, 288, 2653 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2654 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 34, 0, 0, 0, 0, 37, 0, 336, 337, 2656 40, 0, 295, -35, 296, 0, 0, 41, 42, 0, 2657 45, 46, 297, 298, 299, 300, 8, 9, 10, 11, 2658 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2659 22, 23, 24, 25, 0, 338, 26, 27, 28, 0, 2660 0, 45, 46, 283, 284, 31, 285, 8, 9, 10, 2661 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2662 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2663 0, 0, 286, 34, 0, 0, 31, 0, 287, 0, 2664 38, 39, 288, 0, 0, 289, 290, 291, 292, 41, 2665 42, 0, 293, 294, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 0, 34, 0, 0, 0, 0, 111, 2667 0, 38, 39, 0, 0, 295, 0, 296, 0, 0, 2668 41, 42, 0, 45, 46, 297, 298, 299, 300, 8, 2669 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2670 19, 20, 21, 22, 23, 24, 25, 0, 44, 26, 2671 27, 28, 0, 0, 45, 46, 283, 284, 31, 285, 2672 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2673 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2674 26, 27, 28, 0, 0, 286, 34, 0, 0, 31, 2675 684, 287, 0, 38, 39, 288, 0, 0, 289, 290, 2676 291, 292, 41, 42, 0, 293, 294, 0, 0, 0, 2677 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2678 0, 0, 0, 0, 38, 39, 0, 0, 295, 0, 2679 158, 0, 0, 0, 0, 0, 45, 46, 297, 298, 2680 299, 300, 8, 9, 10, 11, 12, 13, 14, 15, 2681 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2682 0, 685, 26, 27, 28, 1220, 0, 45, 46, 283, 2683 284, 31, 285, 8, 9, 10, 11, 12, 13, 14, 2684 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2685 25, 0, 0, 26, 27, 28, 0, 0, 286, 34, 2686 0, 0, 31, 0, 287, 0, 38, 39, 288, 0, 2687 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2689 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2690 0, 295, 0, 592, 0, 0, 0, 0, 0, 45, 2691 46, 297, 298, 299, 300, 8, 9, 10, 11, 12, 2692 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2693 23, 24, 25, 0, 258, 26, 27, 28, 0, 0, 2694 45, 46, 283, 284, 31, 285, 0, 0, 0, 0, 2695 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2696 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2697 25, 286, 34, 26, 27, 28, 0, 287, 0, 38, 2698 39, 288, 31, 0, 289, 290, 291, 292, 41, 42, 2699 0, 293, 294, 0, 0, 0, 0, 0, 0, 0, 2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2701 34, 0, 0, 0, 295, 0, 379, 38, 39, 0, 2702 0, 0, 45, 46, 297, 298, 299, 300, 467, 2, 2703 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2704 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2705 23, 24, 25, 0, 158, 26, 27, 28, 0, 0, 2706 45, 46, 0, 0, 31, 0, 0, 0, 8, 9, 2707 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2708 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2709 28, 0, 34, 0, 35, 0, 36, 31, 0, 38, 2710 39, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2711 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2712 22, 23, 24, 25, 0, 34, 26, 27, 28, 0, 2713 37, 0, 38, 39, 40, 31, 0, 0, 0, -3, 2714 0, 41, 42, 0, 8, 9, 10, 11, 12, 13, 2715 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2716 24, 25, 0, 34, 26, 27, 28, 43, 37, 158, 2717 38, 39, 40, 31, 0, 45, 46, 0, 0, 41, 2718 42, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2719 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2720 0, 34, 26, 27, 28, 43, 37, 44, 208, 39, 2721 40, 31, 0, 45, 46, 0, 0, 41, 42, 0, 2722 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2723 18, 19, 20, 21, 22, 23, 24, 25, -291, 34, 2724 26, 27, 28, 43, 37, 271, 336, 337, 40, 31, 2725 0, 45, 46, 0, 0, 41, 42, 0, 8, 9, 2726 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2727 20, 21, 22, 23, 24, 25, -291, 34, 26, 27, 2728 28, 634, 0, 338, 38, 39, 0, 31, -291, 45, 2729 46, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2730 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2731 0, 26, 27, 28, 0, 34, 0, 0, 0, 634, 2732 31, 338, 38, 39, 0, 0, -291, 45, 46, 8, 2733 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2734 19, 20, 21, 22, 23, 24, 25, 0, 34, 26, 2735 27, 28, 0, 0, 0, 208, 39, 0, 31, 338, 2736 0, 0, 0, 0, 0, 45, 46, 8, 9, 10, 2737 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2738 21, 22, 23, 24, 25, 0, 34, 26, 27, 28, 2739 0, 0, 271, 38, 39, 0, 31, 0, 45, 46, 2740 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2741 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2742 26, 27, 28, 0, 34, 0, 0, 0, 0, 31, 2743 338, 38, 39, 0, 0, 0, 45, 46, 8, 9, 2744 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2745 20, 21, 22, 23, 24, 25, 0, 34, 26, 27, 2746 28, 0, 0, 0, 38, 39, 0, 31, 685, 0, 2747 0, 0, 0, 0, 45, 46, 0, 0, 0, 0, 2748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2749 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2750 0, 592, 38, 39, 0, 0, 0, 45, 46, 2, 2751 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2752 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2753 23, 24, 25, 0, 0, 26, 27, 28, 0, 44, 2754 0, 0, 0, 0, 31, 45, 46, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2757 0, 0, 34, 0, 35, 0, 36, 0, 0, 38, 2758 39, 283, 284, 0, 285, 1041, 0, 1042, 0, 0, 2759 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 2760 1524, 1051, 0, 0, 0, 1052, 1053, 0, 33, 0, 2761 286, 0, 0, 0, 0, -412, 1054, 0, 0, 0, 2762 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2763 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2765 0, 0, 0, 295, 0, 379, 0, 0, 172, 0, 2766 0, 45, 46, 297, 298, 299, 300, 0, 0, 283, 2767 284, 1056, 285, 1041, 0, 1042, -126, 0, 1043, 1044, 2768 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 1051, 2769 0, 0, 0, 1052, 1053, 0, 33, 0, 286, 0, 2770 0, 0, 0, 0, 1054, 0, 0, 0, 288, 0, 2771 0, 289, 290, 291, 292, 41, 42, 0, 293, 294, 2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2774 0, 295, 0, 379, 0, 0, 172, 0, 0, 45, 2775 46, 297, 298, 299, 300, 0, 0, 0, 0, 1056, 2776 0, 0, 0, 0, -126, 2, 207, 4, 5, 6, 2777 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2778 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2779 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2780 31, 0, 283, 284, 0, 285, 1041, 0, 1042, 1398, 2781 1399, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 2782 0, 1524, 1051, 0, 0, 0, 1052, 1053, 34, 33, 2783 35, 286, 36, 0, 0, 38, 39, 1054, 0, 0, 2784 0, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2785 0, 293, 294, 0, 0, 0, 0, 1311, 0, 0, 2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2787 0, 0, 0, 0, 295, 0, 379, 0, 0, 172, 2788 0, 0, 45, 46, 297, 298, 299, 300, 0, 0, 2789 283, 284, 1056, 285, 1041, 0, 1042, 1398, 1399, 1043, 2790 1044, 1045, 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 2791 1051, 0, 0, 0, 1052, 1053, 0, 33, 0, 286, 2792 0, 0, 0, 0, 0, 1054, 0, 0, 0, 288, 2793 0, 0, 289, 290, 291, 292, 41, 42, 0, 293, 2794 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2796 0, 0, 295, 0, 379, 0, 0, 172, 0, 0, 2797 45, 46, 297, 298, 299, 300, 0, 0, 283, 284, 2798 1056, 285, 1041, 0, 1042, 0, 0, 1043, 1044, 1045, 2799 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 1051, 0, 2800 0, 0, 1052, 1053, 0, 33, 0, 286, 0, 0, 2801 0, 0, 0, 1054, 0, 0, 0, 288, 0, 0, 2802 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2803 0, 0, 0, 0, 0, 283, 284, 0, 285, 0, 2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2805 295, 0, 379, 0, 0, 172, 0, 0, 45, 46, 2806 297, 298, 299, 300, 286, 0, 0, 0, 1056, 0, 2807 640, 0, 140, 141, 288, 0, 0, 289, 290, 291, 2808 292, 41, 42, 0, 293, 294, 0, 0, 0, 0, 2809 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2810 0, 0, 0, 0, 0, 0, 0, 295, 0, 641, 2811 0, 642, 380, 0, 0, 45, 46, 297, 298, 299, 2812 300, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2813 0, 288, 0, 0, 289, 290, 291, 292, 41, 42, 2814 0, 293, 294, 0, 0, 0, 0, 0, 0, 283, 2815 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 2816 0, 0, 0, 0, 295, 0, 379, 0, 283, 284, 2817 0, 285, 708, 46, 297, 298, 299, 300, 286, 0, 2818 0, 0, 0, 0, 287, 0, 0, 0, 288, 0, 2819 0, 289, 290, 291, 292, 41, 42, 286, 293, 294, 2820 0, 0, 0, 287, 0, 0, 0, 288, 0, 0, 2821 289, 290, 291, 292, 41, 42, 0, 293, 294, 0, 2822 0, 295, 0, 379, 0, 283, 284, 0, 285, 344, 2823 46, 297, 298, 299, 300, 0, 0, 0, 0, 0, 2824 506, 0, 0, 0, 283, 284, 0, 285, 45, 46, 2825 297, 298, 299, 300, 286, 0, 0, 0, 0, 0, 2826 287, 0, 0, 0, 288, 0, 0, 289, 290, 291, 2827 292, 41, 42, 286, 293, 294, 0, 0, 0, 287, 2828 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2829 41, 42, 0, 293, 294, 0, 0, 295, 0, 0, 2830 0, 283, 284, 0, 285, 45, 46, 297, 298, 299, 2831 300, 0, 0, 0, 0, 0, 511, 0, 0, 0, 2832 0, 0, 0, 0, 45, 46, 297, 298, 299, 300, 2833 286, 0, 0, 0, 0, 0, 287, 0, 0, 0, 2834 288, 0, 0, 289, 290, 291, 292, 41, 42, 0, 2835 293, 294, 0, 0, 0, 0, 0, 0, 0, 0, 2836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2837 0, 0, 0, 514, 0, 0, 0, 0, 0, 0, 2838 0, 45, 46, 297, 298, 299, 300, 2, 207, 4, 2839 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2840 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2841 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2845 34, 0, 35, 0, 36, 37, 0, 175, 176, 40, 2846 0, 0, 0, 0, 0, 0, 41, 42, 206, 2, 2847 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2848 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2849 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2850 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2853 0, 0, 34, 0, 35, 0, 36, 0, 0, 208, 2854 39, 467, 2, 207, 4, 5, 6, 7, 8, 9, 2855 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2856 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2857 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2860 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2861 0, 0, 38, 39, 2, 207, 4, 5, 6, 7, 2862 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2863 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2864 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2865 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2866 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2867 0, 26, 27, 28, 485, 486, 487, 34, 0, 35, 2868 31, 36, 0, 0, 208, 39, 0, 0, 0, 0, 2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2870 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2871 0, 0, 0, 0, 0, 38, 39 2872 }; 2873 2874 #define yypact_value_is_default(yystate) \ 2875 ((yystate) == (-1310)) 2876 2877 #define yytable_value_is_error(yytable_value) \ 2878 YYID (0) 2879 2880 static const yytype_int16 yycheck[] = 2881 { 2882 0, 1, 240, 205, 186, 186, 117, 0, 43, 534, 2883 43, 43, 600, 756, 646, 1, 749, 187, 521, 0, 2884 186, 186, 186, 157, 169, 170, 749, 749, 186, 106, 2885 220, 602, 32, 186, 345, 349, 0, 188, 280, 32, 2886 157, 513, 600, 43, 874, 43, 603, 874, 349, 49, 2887 620, 32, 609, 733, 0, 983, 49, 600, 492, 571, 2888 0, 1, 496, 63, 602, 187, 66, 32, 32, 69, 2889 63, 692, 43, 66, 64, 0, 69, 1040, 39, 156, 2890 1, 600, 57, 69, 266, 266, 32, 43, 51, 1398, 2891 364, 202, 32, 63, 368, 1321, 418, 267, 82, 600, 2892 266, 266, 266, 1052, 1053, 1033, 106, 32, 266, 600, 2893 600, 262, 263, 266, 114, 72, 438, 117, 118, 109, 2894 282, 72, 1402, 96, 446, 39, 66, 695, 39, 69, 2895 28, 109, 107, 39, 39, 110, 95, 39, 82, 128, 2896 39, 66, 131, 1021, 82, 267, 109, 147, 148, 122, 2897 111, 186, 11, 186, 186, 148, 156, 157, 0, 295, 2898 1469, 161, 132, 1020, 1021, 109, 44, 45, 161, 0, 2899 129, 482, 905, 109, 488, 132, 0, 1, 72, 1128, 2900 78, 132, 905, 905, 687, 49, 186, 187, 186, 109, 2901 32, 257, 130, 1419, 187, 109, 109, 111, 109, 718, 2902 111, 32, 202, 109, 109, 111, 111, 109, 32, 111, 2903 210, 131, 43, 1040, 72, 186, 1496, 210, 49, 82, 2904 410, 1501, 222, 117, 812, 83, 84, 718, 718, 222, 2905 186, 266, 63, 266, 266, 66, 406, 115, 69, 1452, 2906 240, 1521, 85, 986, 219, 69, 112, 110, 1528, 82, 2907 114, 109, 252, 824, 812, 116, 107, 814, 114, 252, 2908 260, 44, 45, 3, 341, 265, 266, 267, 490, 812, 2909 113, 252, 272, 1486, 267, 1488, 257, 82, 111, 900, 2910 131, 793, 222, 147, 406, 396, 824, 252, 252, 49, 2911 426, 427, 924, 812, 371, 295, 3, 222, 273, 433, 2912 96, 602, 1501, 116, 109, 280, 252, 307, 0, 620, 2913 480, 812, 252, 424, 625, 589, 433, 148, 110, 430, 2914 112, 812, 812, 323, 116, 1288, 122, 252, 328, 1528, 2915 161, 114, 253, 44, 45, 328, 0, 82, 906, 131, 2916 132, 341, 504, 110, 932, 345, 210, 1225, 482, 349, 2917 350, 109, 418, 111, 114, 186, 187, 631, 480, 681, 2918 109, 116, 933, 130, 364, 110, 90, 91, 368, 1049, 2919 506, 371, 438, 348, 932, 511, 240, 132, 514, 210, 2920 446, 1211, 604, 951, 1211, 130, 608, 426, 427, 932, 2921 365, 222, 526, 72, 369, 112, 396, 1275, 116, 116, 2922 285, 125, 126, 114, 83, 84, 406, 629, 272, 526, 2923 252, 633, 130, 406, 1472, 257, 110, 1274, 1275, 55, 2924 1478, 252, 307, 308, 424, 350, 426, 427, 252, 999, 2925 430, 567, 111, 433, 745, 266, 130, 418, 112, 116, 2926 1498, 110, 116, 307, 111, 1503, 113, 116, 525, 1501, 2927 210, 1008, 1009, 130, 454, 494, 590, 438, 1386, 1387, 2928 345, 1288, 98, 130, 967, 446, 635, 636, 131, 1521, 2929 229, 112, 472, 590, 513, 116, 1528, 116, 1441, 110, 2930 480, 345, 482, 652, 484, 1448, 116, 480, 488, 248, 2931 732, 484, 110, 132, 494, 1127, 381, 328, 116, 116, 2932 130, 482, 647, 484, 666, 656, 506, 941, 508, 981, 2933 824, 511, 272, 513, 514, 132, 1394, 687, 349, 109, 2934 484, 521, 109, 824, 116, 525, 526, 109, 1099, 803, 2935 109, 111, 111, 113, 808, 295, 1499, 1394, 484, 578, 2936 132, 710, 109, 654, 484, 116, 467, 307, 473, 1117, 2937 130, 4, 5, 6, 7, 8, 9, 116, 194, 484, 2938 110, 132, 426, 427, 116, 687, 116, 116, 116, 116, 2939 570, 571, 116, 132, 736, 406, 418, 109, 578, 116, 2940 132, 217, 1085, 132, 132, 132, 109, 1090, 132, 589, 2941 590, 227, 117, 904, 594, 132, 438, 116, 123, 124, 2942 600, 116, 602, 109, 446, 111, 110, 528, 1288, 1177, 2943 1178, 745, 533, 132, 1441, 681, 69, 132, 71, 110, 2944 620, 1448, 896, 937, 846, 625, 72, 627, 74, 75, 2945 494, 631, 801, 110, 634, 635, 636, 83, 84, 72, 2946 110, 707, 484, 112, 590, 110, 621, 116, 112, 513, 2947 83, 84, 652, 484, 654, 109, 910, 488, 912, 295, 2948 484, 582, 637, 109, 549, 550, 551, 744, 114, 112, 2949 109, 861, 1499, 116, 72, 809, 651, 115, 72, 132, 2950 74, 75, 1362, 109, 684, 83, 84, 687, 999, 83, 2951 84, 881, 809, 109, 454, 111, 72, 622, 74, 75, 2952 681, 85, 86, 87, 109, 943, 111, 83, 84, 132, 2953 710, 711, 712, 111, 578, 109, 938, 1115, 718, 719, 2954 114, 1119, 867, 905, 905, 109, 707, 111, 64, 113, 2955 114, 109, 653, 111, 655, 112, 110, 907, 114, 905, 2956 905, 905, 116, 109, 744, 745, 506, 905, 508, 749, 2957 750, 511, 905, 109, 514, 111, 620, 732, 109, 70, 2958 111, 625, 109, 74, 745, 1445, 77, 1447, 79, 600, 2959 904, 602, 1505, 698, 132, 86, 556, 557, 558, 559, 2960 1305, 3, 1505, 1505, 705, 907, 114, 712, 10, 11, 2961 12, 13, 14, 793, 4, 5, 6, 7, 8, 9, 2962 110, 801, 109, 803, 111, 805, 116, 443, 808, 809, 2963 1012, 114, 812, 109, 1382, 111, 72, 39, 74, 75, 2964 1500, 117, 118, 33, 824, 72, 903, 83, 84, 114, 2965 1398, 132, 110, 469, 132, 1146, 83, 84, 116, 681, 2966 10, 11, 12, 13, 14, 67, 72, 110, 1122, 109, 2967 76, 109, 110, 116, 82, 111, 687, 83, 84, 69, 2968 110, 71, 49, 809, 111, 707, 116, 110, 109, 39, 2969 506, 756, 109, 116, 874, 511, 63, 112, 514, 66, 2970 805, 82, 69, 109, 118, 111, 1020, 718, 719, 110, 2971 1035, 117, 118, 874, 127, 116, 896, 67, 88, 89, 2972 1468, 1469, 213, 903, 904, 905, 72, 907, 4, 5, 2973 6, 7, 8, 9, 1225, 1085, 110, 83, 84, 919, 2974 1090, 128, 116, 904, 684, 110, 94, 109, 874, 111, 2975 30, 116, 932, 933, 874, 117, 118, 937, 131, 109, 2976 72, 111, 942, 943, 76, 111, 111, 117, 118, 874, 2977 109, 83, 84, 1115, 110, 109, 942, 1119, 1120, 112, 2978 116, 148, 109, 1085, 111, 0, 1, 967, 1090, 112, 2979 117, 118, 110, 69, 161, 71, 110, 109, 1481, 119, 2980 120, 812, 116, 83, 84, 117, 118, 112, 10, 11, 2981 12, 13, 14, 824, 29, 30, 1107, 32, 110, 999, 2982 187, 110, 942, 110, 116, 92, 93, 72, 43, 74, 2983 75, 76, 1146, 72, 49, 74, 75, 39, 83, 84, 2984 1020, 1021, 57, 210, 83, 84, 110, 1530, 63, 115, 2985 116, 66, 874, 669, 69, 222, 957, 109, 110, 111, 2986 1040, 352, 678, 354, 109, 67, 682, 110, 83, 84, 2987 874, 109, 117, 118, 1190, 1191, 72, 1193, 979, 1040, 2988 76, 110, 983, 110, 1200, 110, 1202, 83, 84, 116, 2989 112, 116, 107, 1235, 905, 110, 907, 1002, 110, 943, 2990 1080, 111, 117, 114, 116, 1085, 110, 109, 116, 111, 2991 1090, 131, 116, 109, 1040, 117, 118, 110, 111, 1099, 2992 1040, 117, 118, 506, 66, 508, 937, 1107, 511, 58, 2993 59, 514, 1033, 148, 999, 1040, 115, 116, 942, 44, 2994 45, 156, 1122, 552, 553, 72, 161, 74, 75, 76, 2995 1207, 442, 109, 110, 111, 999, 83, 84, 560, 561, 2996 1274, 328, 554, 555, 244, 114, 1146, 114, 109, 110, 2997 111, 186, 187, 109, 112, 1040, 118, 110, 110, 919, 2998 1322, 112, 109, 29, 1326, 1146, 112, 202, 112, 3, 2999 117, 118, 109, 110, 111, 210, 10, 11, 12, 13, 3000 14, 58, 59, 60, 219, 112, 116, 222, 1188, 1189, 3001 1248, 1249, 1250, 110, 229, 130, 130, 130, 1040, 161, 3002 110, 112, 114, 1189, 112, 39, 115, 1207, 110, 244, 3003 115, 1211, 115, 248, 109, 116, 1040, 252, 253, 406, 3004 1, 110, 1358, 110, 72, 1225, 74, 75, 76, 1229, 3005 1211, 266, 267, 67, 132, 83, 84, 116, 273, 110, 3006 110, 110, 110, 1229, 1225, 280, 110, 110, 1188, 1189, 3007 110, 116, 110, 110, 1085, 110, 110, 110, 110, 1090, 3008 222, 1423, 898, 1188, 110, 1211, 110, 1378, 49, 110, 3009 110, 1211, 115, 874, 1274, 1275, 29, 1515, 110, 130, 3010 380, 131, 112, 1283, 112, 116, 1211, 110, 1288, 1229, 3011 110, 116, 110, 328, 130, 116, 112, 114, 260, 110, 3012 110, 464, 110, 265, 116, 112, 110, 1288, 110, 110, 3013 116, 116, 112, 348, 349, 10, 11, 12, 13, 14, 3014 1080, 1321, 109, 1505, 1505, 106, 109, 1248, 1249, 1250, 3015 365, 109, 109, 114, 369, 1321, 1506, 109, 130, 1505, 3016 1505, 1505, 1288, 1283, 39, 380, 3, 1505, 1288, 112, 3017 132, 115, 1505, 10, 11, 12, 13, 14, 1283, 110, 3018 1530, 396, 110, 1288, 110, 1189, 147, 128, 115, 1211, 3019 1481, 406, 67, 115, 464, 156, 114, 695, 1378, 112, 3020 132, 1321, 39, 110, 1506, 116, 112, 1211, 350, 424, 3021 112, 491, 110, 493, 1394, 430, 110, 432, 110, 112, 3022 110, 112, 1377, 112, 112, 1229, 112, 112, 1530, 72, 3023 67, 74, 75, 76, 109, 1051, 111, 47, 115, 1419, 3024 83, 84, 117, 118, 72, 206, 74, 75, 76, 210, 3025 132, 132, 467, 1419, 132, 83, 84, 472, 132, 132, 3026 110, 1441, 1043, 115, 130, 480, 1288, 115, 1448, 484, 3027 1450, 110, 1452, 488, 112, 109, 491, 112, 493, 240, 3028 1441, 109, 112, 112, 1288, 1386, 1387, 1448, 786, 431, 3029 1505, 112, 1505, 1505, 112, 110, 110, 60, 109, 1419, 3030 112, 1481, 66, 112, 109, 132, 1486, 110, 1488, 110, 3031 114, 272, 76, 528, 275, 1441, 112, 1321, 533, 1499, 3032 112, 1441, 1448, 1424, 110, 1505, 1506, 670, 1448, 112, 3033 110, 473, 109, 1506, 295, 1515, 1441, 96, 1499, 96, 3034 85, 86, 87, 1448, 109, 132, 307, 115, 110, 72, 3035 1530, 74, 75, 76, 118, 110, 110, 1530, 110, 42, 3036 83, 84, 642, 116, 109, 863, 111, 582, 113, 114, 3037 130, 132, 110, 1499, 589, 110, 132, 96, 96, 1499, 3038 341, 1482, 132, 110, 345, 600, 109, 602, 132, 110, 3039 1491, 132, 112, 110, 1499, 110, 132, 161, 112, 115, 3040 670, 109, 132, 364, 115, 115, 621, 368, 906, 110, 3041 371, 691, 110, 693, 110, 1419, 110, 697, 1056, 1441, 3042 132, 564, 637, 562, 977, 565, 1448, 642, 563, 566, 3043 1211, 1211, 1469, 1364, 1540, 1298, 651, 1441, 653, 654, 3044 655, 1120, 1326, 1448, 1448, 912, 789, 66, 684, 1071, 3045 684, 1090, 594, 951, 920, 697, 799, 582, 222, 971, 3046 867, 648, 722, 1229, 83, 426, 427, 939, 570, 484, 3047 813, 1515, 687, 732, 570, 570, 691, 1499, 693, -1, 3048 622, 1297, 697, -1, -1, 627, -1, -1, 986, -1, 3049 705, -1, -1, 454, 1505, 1499, 260, -1, -1, 118, 3050 -1, 265, -1, 718, 719, -1, 467, -1, -1, -1, 3051 1450, -1, 1452, -1, -1, -1, 280, 732, -1, 789, 3052 -1, -1, -1, 1304, -1, -1, -1, -1, -1, 799, 3053 -1, 492, -1, 494, -1, 496, -1, -1, -1, 1037, 3054 -1, -1, 161, 813, -1, 506, 1486, 508, 1488, -1, 3055 511, -1, 513, 514, -1, -1, 698, 57, -1, 10, 3056 11, 12, 13, 14, 525, -1, -1, -1, -1, 72, 3057 712, 74, 75, 76, -1, 1356, -1, -1, 1359, -1, 3058 83, 84, -1, -1, -1, -1, 350, 867, 39, -1, 3059 -1, -1, -1, 873, -1, -1, -1, 812, -1, -1, 3060 -1, -1, -1, 222, -1, -1, 109, 107, 111, 824, 3061 110, -1, -1, -1, 117, 118, 67, 578, -1, 1117, 3062 -1, 1402, -1, -1, -1, -1, 1407, 130, 589, -1, 3063 -1, -1, -1, 1449, 914, 1451, -1, -1, -1, -1, 3064 -1, 260, -1, -1, -1, -1, 265, -1, -1, -1, 3065 -1, -1, 867, -1, 1435, -1, 156, 670, 873, 620, 3066 -1, -1, -1, 805, 625, -1, -1, 431, -1, 1485, 3067 631, 1487, 0, 1, 1017, 1018, -1, -1, -1, 1177, 3068 1178, 896, -1, -1, 448, -1, -1, -1, -1, -1, 3069 905, 971, 907, -1, -1, -1, -1, -1, -1, 914, 3070 -1, -1, -1, -1, 32, -1, -1, -1, -1, 473, 3071 -1, -1, -1, 1529, -1, 1531, -1, -1, -1, 219, 3072 -1, 49, 937, 684, -1, -1, -1, -1, 1544, 1545, 3073 -1, 350, 1075, 1076, -1, -1, -1, -1, 1519, -1, 3074 -1, 69, 957, -1, 1525, -1, -1, 1017, 1018, -1, 3075 -1, -1, -1, -1, -1, 1536, 971, -1, -1, 1540, 3076 -1, 722, -1, -1, 979, -1, -1, -1, 983, 0, 3077 1, -1, -1, 273, -1, -1, 789, -1, 106, -1, 3078 280, -1, -1, 744, -1, -1, 799, -1, -1, -1, 3079 -1, 1071, -1, -1, -1, 0, -1, -1, -1, -1, 3080 813, 32, -1, -1, -1, 1075, 1076, -1, -1, -1, 3081 -1, -1, 431, -1, -1, -1, -1, -1, 1033, -1, 3082 148, -1, -1, -1, -1, -1, -1, 32, 156, 157, 3083 594, -1, -1, -1, -1, 66, -1, -1, 69, -1, 3084 -1, -1, 803, -1, -1, -1, -1, 808, 348, -1, 3085 -1, -1, -1, -1, 473, -1, 1071, -1, 622, 187, 3086 1002, -1, -1, 627, 69, 365, -1, -1, -1, 369, 3087 1085, -1, -1, -1, 202, 1090, -1, 205, 206, -1, 3088 1223, -1, 210, -1, 1382, -1, -1, -1, -1, -1, 3089 -1, -1, 1107, -1, -1, -1, -1, -1, -1, -1, 3090 1398, -1, -1, 231, 1184, -1, -1, 235, -1, 237, 3091 -1, -1, 1255, -1, -1, -1, -1, -1, 246, -1, 3092 1263, 1264, 1265, -1, 252, -1, 157, -1, -1, 257, 3093 -1, -1, 432, -1, 698, 896, -1, -1, -1, 267, 3094 -1, -1, 903, -1, -1, -1, -1, 275, 712, -1, 3095 -1, 0, 157, 1223, -1, -1, -1, -1, 919, -1, 3096 -1, 72, -1, 74, 75, 76, -1, -1, 732, 1184, 3097 1468, 1469, 83, 84, -1, 594, -1, -1, -1, -1, 3098 941, 942, 943, 32, 1327, 1255, -1, -1, -1, -1, 3099 -1, 222, 1207, 1263, 1264, 1265, -1, -1, 109, -1, 3100 111, -1, -1, 622, 1017, 1018, 117, 118, 627, -1, 3101 -1, -1, -1, 341, -1, -1, -1, 345, -1, -1, 3102 69, 252, -1, 351, -1, -1, 231, -1, -1, -1, 3103 -1, -1, -1, 1248, 1249, 1250, 364, -1, 999, -1, 3104 368, 805, -1, 371, -1, -1, 1188, 252, -1, -1, 3105 -1, -1, 257, -1, -1, -1, -1, 1327, -1, -1, 3106 -1, -1, 1075, 1076, -1, -1, -1, -1, -1, -1, 3107 72, -1, 74, 75, 76, -1, -1, -1, -1, 698, 3108 -1, 83, 84, 72, -1, 74, 75, 76, -1, 589, 3109 418, -1, -1, 712, 83, 84, -1, -1, -1, -1, 3110 -1, -1, -1, -1, -1, 433, -1, 109, 157, 111, 3111 438, -1, -1, -1, -1, 117, 118, -1, 446, 1080, 3112 109, 621, 111, -1, -1, -1, -1, -1, 117, 118, 3113 -1, -1, -1, -1, -1, -1, 464, 637, -1, 467, 3114 -1, 1283, -1, -1, -1, -1, 351, -1, -1, -1, 3115 -1, 651, -1, -1, 482, -1, 484, -1, -1, -1, 3116 -1, 1122, 1377, 1378, 492, -1, -1, -1, 496, -1, 3117 -1, 1386, 1387, 97, 98, 99, 100, 101, 102, 103, 3118 104, 105, 106, -1, -1, -1, 805, -1, -1, -1, 3119 -1, -1, -1, -1, -1, -1, -1, 525, 526, -1, 3120 -1, -1, 433, 252, -1, -1, -1, 131, 257, 1424, 3121 -1, -1, -1, 418, -1, -1, -1, -1, -1, -1, 3122 -1, -1, -1, -1, -1, -1, -1, -1, 433, -1, 3123 -1, -1, 732, 438, -1, -1, -1, -1, 1002, -1, 3124 -1, 446, 1255, 571, -1, -1, 1207, -1, -1, -1, 3125 1263, 1264, 1265, 484, -1, -1, -1, -1, -1, 464, 3126 -1, 589, 590, -1, -1, -1, 1481, 1482, 1229, -1, 3127 -1, -1, -1, -1, 602, -1, 1491, 482, -1, 484, 3128 -1, -1, -1, 37, 38, -1, 40, -1, -1, -1, 3129 1505, 1506, 620, -1, -1, 526, -1, 625, -1, -1, 3130 -1, -1, 351, 631, -1, -1, 634, 635, 636, -1, 3131 -1, -1, 66, -1, 1327, 1530, -1, -1, 72, -1, 3132 -1, 526, 76, -1, 652, 79, 80, 81, 82, 83, 3133 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3134 -1, -1, 670, -1, -1, 10, 11, 12, 13, 14, 3135 -1, -1, -1, 681, -1, 109, -1, 111, -1, 590, 3136 1321, -1, -1, 117, 118, 119, 120, 121, 122, 418, 3137 -1, -1, -1, -1, 39, -1, 130, -1, -1, 707, 3138 -1, -1, 710, 1002, 433, 590, -1, -1, -1, 438, 3139 -1, 719, -1, -1, 722, -1, 896, 446, -1, -1, 3140 -1, -1, 67, 634, 635, 636, -1, 72, -1, 74, 3141 75, 76, -1, -1, -1, 464, 744, 745, 83, 84, 3142 -1, 652, 750, -1, 1188, -1, -1, -1, -1, 634, 3143 635, 636, -1, 482, -1, 484, -1, 10, 11, 12, 3144 13, 14, -1, -1, 109, -1, 111, 652, -1, -1, 3145 -1, -1, 117, 118, -1, -1, -1, -1, 1419, -1, 3146 -1, 789, -1, -1, -1, 670, 39, -1, -1, -1, 3147 -1, 799, -1, 801, -1, 803, 681, 526, 806, 710, 3148 808, 809, -1, -1, -1, 813, -1, -1, -1, 1450, 3149 -1, 1452, -1, -1, 67, 823, -1, -1, -1, 72, 3150 -1, -1, 707, 76, -1, 710, -1, -1, -1, -1, 3151 83, 84, -1, -1, -1, -1, -1, -1, -1, 1283, 3152 -1, 0, -1, -1, -1, 1486, -1, 1488, -1, -1, 3153 -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3154 745, 590, -1, -1, 117, 118, 874, -1, 0, -1, 3155 190, -1, -1, 32, 1515, -1, -1, 197, -1, -1, 3156 -1, -1, -1, -1, -1, -1, -1, -1, 896, 1188, 3157 801, -1, -1, -1, -1, 903, 904, -1, 809, 907, 3158 32, -1, -1, -1, 789, 634, 635, 636, -1, -1, 3159 69, -1, -1, -1, 799, -1, 801, -1, -1, -1, 3160 -1, 806, -1, 652, 809, 933, -1, -1, 813, -1, 3161 -1, -1, -1, 941, 942, -1, -1, 69, -1, -1, 3162 -1, 670, -1, -1, -1, -1, -1, -1, -1, 269, 3163 -1, -1, 681, -1, -1, -1, -1, -1, -1, -1, 3164 -1, -1, -1, 874, -1, -1, -1, -1, -1, -1, 3165 -1, -1, -1, -1, -1, -1, -1, -1, 707, -1, 3166 -1, 710, -1, -1, 1283, -1, -1, -1, -1, 874, 3167 -1, 999, -1, -1, -1, -1, -1, -1, 157, -1, 3168 -1, -1, -1, 323, 1012, -1, -1, -1, -1, 1017, 3169 1018, 331, 1020, 1021, 334, -1, 745, -1, -1, 904, 3170 -1, -1, -1, -1, -1, 157, -1, 1207, -1, -1, 3171 -1, 942, 1040, -1, -1, 3, 4, 5, 6, 7, 3172 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3173 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3174 789, -1, 30, 31, 32, -1, -1, 1075, 1076, -1, 3175 799, 39, 801, -1, -1, -1, -1, 806, 398, -1, 3176 809, -1, 402, -1, 813, -1, -1, -1, -1, -1, 3177 -1, -1, -1, 252, -1, -1, -1, -1, 257, 67, 3178 -1, 69, -1, 71, 72, -1, 74, 75, 76, 1020, 3179 1021, -1, -1, -1, 1122, 83, 84, -1, -1, -1, 3180 252, -1, -1, -1, -1, 257, -1, -1, -1, 1040, 3181 -1, -1, 1017, 1018, -1, 1020, 1021, -1, 1146, -1, 3182 -1, 109, -1, 111, -1, 874, -1, -1, -1, 117, 3183 118, -1, -1, -1, -1, 1040, -1, -1, -1, 479, 3184 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3185 -1, -1, -1, -1, -1, 904, -1, -1, -1, -1, 3186 -1, 1189, -1, -1, -1, -1, -1, -1, -1, -1, 3187 1075, 1076, 351, -1, 39, -1, -1, 1377, -1, 1207, 3188 -1, -1, -1, 1211, -1, -1, -1, -1, -1, -1, 3189 -1, -1, -1, -1, -1, 1223, -1, 1225, -1, 351, 3190 -1, 1229, 67, -1, -1, -1, -1, 72, -1, 74, 3191 75, 76, -1, -1, -1, 26, 27, 28, 83, 84, 3192 -1, -1, -1, -1, -1, -1, -1, 1255, -1, -1, 3193 570, 571, -1, -1, -1, 1263, 1264, 1265, -1, 418, 3194 -1, 1146, -1, -1, 109, -1, 1274, 1275, -1, -1, 3195 -1, -1, 117, 118, 433, -1, -1, 1188, 1189, 438, 3196 1288, -1, -1, -1, -1, -1, 418, 446, 1017, 1018, 3197 -1, 1020, 1021, -1, -1, -1, -1, -1, -1, -1, 3198 1211, 433, -1, -1, 1189, 464, 438, -1, 99, -1, 3199 101, 1040, -1, 1321, 446, -1, -1, -1, 1229, 1327, 3200 -1, -1, -1, 482, -1, 484, 1211, -1, -1, -1, 3201 -1, -1, 464, -1, -1, 126, -1, 657, 1223, -1, 3202 1225, 661, -1, -1, -1, -1, 1075, 1076, -1, -1, 3203 482, -1, 484, -1, -1, -1, -1, -1, -1, -1, 3204 -1, -1, -1, 1274, 1275, -1, -1, 526, -1, -1, 3205 1255, -1, 1283, -1, -1, -1, -1, 1288, 1263, 1264, 3206 1265, -1, -1, -1, -1, -1, 1394, -1, -1, 1274, 3207 1275, 182, -1, -1, 526, -1, -1, -1, -1, 190, 3208 -1, 192, 193, 1288, -1, -1, 197, -1, 199, 200, 3209 1321, 1419, -1, 53, -1, 55, -1, 1146, 58, 59, 3210 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 3211 -1, 590, -1, 1441, -1, -1, -1, 77, -1, -1, 3212 1448, -1, 1327, -1, -1, -1, -1, -1, -1, 89, 3213 90, -1, -1, -1, 26, 27, 28, -1, 590, -1, 3214 1189, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3215 14, -1, -1, 793, -1, 634, 635, 636, 269, -1, 3216 -1, -1, 1211, 1394, -1, -1, -1, -1, -1, -1, 3217 -1, 1499, -1, 652, 1223, 39, 1225, -1, 1506, -1, 3218 -1, -1, 634, 635, 636, -1, -1, -1, 1419, 1394, 3219 -1, 670, -1, -1, -1, -1, -1, -1, -1, -1, 3220 652, -1, 681, 67, -1, -1, 1255, 99, 72, 101, 3221 1441, -1, 76, -1, 1263, 1264, 1265, 1448, 670, 83, 3222 84, -1, -1, -1, -1, 1274, 1275, -1, 707, 681, 3223 -1, 710, -1, -1, -1, -1, 1441, -1, -1, 1288, 3224 -1, -1, -1, 1448, -1, 109, -1, -1, -1, -1, 3225 -1, -1, -1, 117, 118, 707, -1, -1, 710, 10, 3226 11, 12, 13, 14, -1, -1, 745, -1, 1499, -1, 3227 -1, 911, -1, -1, -1, -1, -1, -1, 1327, -1, 3228 -1, -1, -1, -1, -1, -1, -1, -1, 39, -1, 3229 182, -1, -1, 745, 1499, -1, -1, -1, -1, -1, 3230 192, 193, -1, -1, -1, 197, -1, 199, 200, -1, 3231 789, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3232 799, 72, 801, 74, 75, 76, -1, 806, -1, -1, 3233 809, -1, 83, 84, 813, -1, -1, 789, -1, 10, 3234 11, 12, 13, 14, -1, 1394, -1, 799, 988, 801, 3235 -1, -1, -1, -1, 806, -1, -1, 809, 109, -1, 3236 111, 813, -1, -1, -1, 1005, 117, 118, 39, -1, 3237 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3238 -1, -1, -1, -1, 344, -1, 346, -1, -1, -1, 3239 -1, -1, 1441, -1, -1, 874, 67, 357, 358, 1448, 3240 39, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3241 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3242 -1, -1, 874, -1, -1, 904, -1, -1, 67, -1, 3243 -1, -1, -1, 72, -1, 74, 75, 76, 109, -1, 3244 111, -1, -1, 1083, 83, 84, 117, 118, -1, -1, 3245 1499, -1, 904, -1, -1, -1, -1, -1, -1, -1, 3246 -1, -1, -1, 574, 575, -1, -1, -1, -1, -1, 3247 109, -1, -1, -1, -1, -1, -1, -1, 117, 118, 3248 -1, -1, -1, 1123, -1, -1, -1, -1, -1, -1, 3249 -1, -1, 603, -1, -1, 606, 607, -1, 609, -1, 3250 611, 612, -1, -1, -1, 616, 617, 3, 4, 5, 3251 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3252 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3253 26, 27, 28, -1, 30, 31, 32, 33, 1017, 1018, 3254 36, 1020, 1021, 39, -1, -1, -1, -1, -1, -1, 3255 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3256 -1, 1040, -1, -1, -1, 1017, 1018, -1, 1020, 1021, 3257 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3258 -1, -1, 78, -1, -1, -1, 7, -1, 1040, 10, 3259 11, 12, 13, 14, -1, -1, 1075, 1076, -1, -1, 3260 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, -1, -1, 111, 37, 38, 39, 40, 3262 -1, 117, 118, 1075, 1076, -1, -1, -1, -1, -1, 3263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3264 -1, -1, -1, 754, 755, 66, 67, -1, -1, -1, 3265 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3266 81, 82, 83, 84, -1, 86, 87, 1146, -1, -1, 3267 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3268 -1, -1, 574, 575, -1, -1, -1, -1, 109, -1, 3269 111, -1, -1, -1, 1146, -1, 117, 118, 119, 120, 3270 121, 122, -1, -1, -1, -1, -1, -1, -1, -1, 3271 1189, 603, -1, -1, 606, 607, -1, 609, -1, 611, 3272 612, -1, -1, -1, 616, 617, -1, -1, -1, -1, 3273 -1, -1, 1211, -1, -1, -1, -1, 1189, -1, 699, 3274 -1, 701, -1, -1, 1223, -1, 1225, -1, 708, 709, 3275 -1, -1, -1, 713, -1, -1, -1, -1, -1, 1211, 3276 -1, -1, -1, -1, -1, 725, -1, -1, -1, -1, 3277 730, 1223, -1, 1225, -1, -1, 1255, -1, -1, -1, 3278 -1, -1, -1, -1, 1263, 1264, 1265, -1, -1, -1, 3279 -1, -1, -1, -1, -1, 1274, 1275, -1, 758, -1, 3280 911, -1, -1, 1255, -1, 916, -1, -1, -1, 1288, 3281 -1, 1263, 1264, 1265, -1, -1, -1, -1, -1, -1, 3282 -1, -1, 1274, 1275, -1, -1, -1, -1, -1, -1, 3283 -1, -1, -1, -1, -1, -1, 1288, -1, -1, -1, 3284 -1, -1, -1, -1, -1, -1, -1, -1, 1327, -1, 3285 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3286 49, -1, 754, 755, -1, -1, -1, -1, -1, -1, 3287 -1, -1, -1, -1, -1, 1327, -1, 66, -1, -1, 3288 7, -1, -1, 10, 11, 12, 13, 14, -1, -1, 3289 -1, -1, -1, -1, -1, -1, -1, 857, 858, 859, 3290 860, -1, 862, -1, -1, -1, -1, -1, -1, -1, 3291 37, 38, 39, 40, -1, 1394, -1, 877, -1, -1, 3292 -1, -1, -1, -1, -1, 114, -1, -1, -1, 118, 3293 -1, 891, -1, -1, -1, -1, -1, -1, -1, 66, 3294 67, -1, 1394, -1, -1, 72, -1, -1, -1, 76, 3295 -1, -1, 79, 80, 81, 82, 83, 84, 147, 86, 3296 87, -1, 1441, -1, -1, -1, 1077, -1, 157, 1448, 3297 -1, 931, 161, -1, -1, -1, -1, -1, -1, -1, 3298 -1, -1, 109, -1, 111, -1, -1, -1, -1, 1441, 3299 117, 118, 119, 120, 121, 122, 1448, 10, 11, 12, 3300 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3301 23, 24, 25, 26, 27, -1, 976, 30, 31, 32, 3302 1499, 210, 982, -1, 916, -1, 39, 987, -1, -1, 3303 -1, -1, 992, 222, 994, -1, -1, -1, 998, -1, 3304 1000, 1001, -1, -1, 1004, -1, -1, 1499, -1, -1, 3305 -1, 240, -1, 1013, 67, -1, -1, -1, -1, -1, 3306 -1, 74, 75, -1, -1, -1, -1, -1, -1, -1, 3307 -1, 1031, 1032, -1, -1, -1, 265, -1, -1, -1, 3308 -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, 3309 -1, -1, -1, -1, -1, 1206, -1, -1, 1058, -1, 3310 -1, 1061, -1, -1, 117, 118, 295, -1, -1, -1, 3311 -1, -1, -1, -1, -1, -1, -1, -1, 307, -1, 3312 -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 3313 -1, -1, -1, -1, 76, -1, 78, -1, 80, -1, 3314 -1, -1, -1, -1, 1104, 87, -1, -1, -1, -1, 3315 1110, 1111, -1, -1, -1, -1, 345, -1, -1, -1, 3316 -1, 350, -1, -1, -1, -1, -1, -1, -1, -1, 3317 1130, -1, -1, 1133, -1, -1, 118, 1137, 120, 121, 3318 122, -1, -1, -1, -1, 1077, -1, -1, -1, -1, 3319 1150, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, 1163, -1, 1165, 1166, 1167, 1168, -1, 3321 -1, -1, -1, -1, -1, -1, -1, -1, -1, 161, 3322 -1, 1181, -1, 1183, -1, -1, -1, 1187, -1, -1, 3323 -1, -1, -1, -1, -1, -1, -1, 426, 427, -1, 3324 -1, -1, -1, -1, 433, -1, -1, -1, -1, -1, 3325 -1, -1, -1, -1, -1, -1, 1216, 1217, -1, -1, 3326 -1, -1, -1, -1, -1, 454, -1, -1, -1, -1, 3327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3328 222, -1, 224, 225, 226, -1, -1, -1, -1, -1, 3329 -1, -1, -1, 482, -1, -1, -1, -1, -1, -1, 3330 -1, -1, -1, -1, -1, 494, 1266, 1267, -1, -1, 3331 -1, -1, -1, -1, 1206, -1, 1276, 506, 260, 508, 3332 -1, -1, 511, 265, 513, 514, -1, -1, -1, -1, 3333 -1, -1, -1, -1, -1, -1, -1, 526, 280, -1, 3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3335 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3336 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3337 26, 27, 28, -1, 30, 31, 32, 1337, -1, 1339, 3338 1340, 1341, -1, 39, -1, -1, 328, -1, -1, 578, 3339 -1, 1351, -1, -1, -1, -1, -1, -1, -1, -1, 3340 1360, 590, -1, -1, -1, 594, -1, -1, 350, -1, 3341 -1, 67, -1, 355, 356, -1, 72, -1, 74, 75, 3342 76, 363, 78, -1, -1, 1385, -1, 83, 84, -1, 3343 -1, 620, -1, -1, 147, -1, 625, -1, -1, -1, 3344 -1, -1, -1, -1, 157, 634, 635, 636, -1, 44, 3345 -1, -1, -1, 109, -1, 111, 169, 170, -1, -1, 3346 -1, 117, 118, 652, 406, -1, -1, -1, 1428, 1429, 3347 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3348 -1, 1441, 424, -1, -1, -1, -1, 429, 1448, 431, 3349 37, 38, -1, 40, -1, 684, -1, 92, -1, -1, 3350 -1, -1, -1, -1, -1, -1, 448, 102, -1, 451, 3351 452, -1, -1, -1, -1, -1, -1, 459, -1, 66, 3352 1480, 710, -1, 712, 1484, 72, -1, 240, -1, 76, 3353 -1, 473, 79, 80, 81, 82, 83, 84, 480, 86, 3354 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3355 -1, 264, 1512, -1, 1514, -1, 745, -1, -1, -1, 3356 -1, -1, 109, 158, 111, -1, -1, 114, -1, -1, 3357 117, 118, 119, 120, 121, 122, -1, 172, -1, -1, 3358 -1, -1, 1542, 1543, -1, -1, -1, -1, -1, -1, 3359 1550, 1551, -1, -1, -1, -1, -1, -1, -1, -1, 3360 195, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 -1, -1, 801, -1, 209, -1, 805, -1, -1, -1, 3362 809, -1, -1, 218, -1, -1, -1, -1, -1, -1, 3363 -1, -1, -1, 228, -1, -1, -1, -1, -1, -1, 3364 -1, -1, -1, -1, 37, 38, -1, 40, -1, -1, 3365 -1, -1, 594, -1, -1, -1, -1, -1, 253, -1, 3366 -1, -1, -1, 258, -1, -1, -1, 380, -1, -1, 3367 -1, -1, -1, 66, -1, -1, 271, -1, -1, 72, 3368 622, -1, 277, 76, 279, 627, 79, 80, 81, 82, 3369 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3370 -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, -1, -1, -1, 904, 109, -1, 111, -1, 3372 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, 3373 919, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3374 -1, -1, -1, 338, -1, -1, -1, -1, 343, -1, 3375 -1, -1, -1, -1, 943, -1, 698, -1, -1, -1, 3376 -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, 3377 712, -1, -1, -1, -1, -1, -1, 372, -1, -1, 3378 -1, 376, 377, -1, 379, -1, -1, -1, -1, -1, 3379 732, 386, 387, -1, 389, 390, -1, 392, -1, 394, 3380 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3381 999, -1, -1, 526, -1, -1, 411, -1, 531, -1, 3382 -1, 534, -1, -1, 419, -1, -1, -1, -1, -1, 3383 -1, 1020, 1021, 546, -1, -1, -1, -1, -1, -1, 3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 444, 3385 -1, 793, -1, -1, -1, 568, -1, -1, -1, -1, 3386 -1, -1, -1, 805, -1, 578, -1, -1, -1, -1, 3387 -1, -1, 585, -1, -1, 470, -1, 590, -1, -1, 3388 -1, 476, 824, -1, -1, -1, 481, -1, -1, -1, 3389 -1, 1080, -1, -1, -1, -1, 3, 4, 5, 6, 3390 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3391 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3392 27, -1, 517, 30, 31, 32, 639, -1, -1, -1, 3393 -1, -1, 39, -1, 647, -1, -1, 532, -1, -1, 3394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3395 -1, -1, -1, -1, -1, -1, -1, 1146, -1, -1, 3396 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3397 -1, -1, -1, 37, 38, 570, 40, -1, -1, -1, 3398 -1, -1, -1, -1, 579, -1, -1, -1, -1, -1, 3399 -1, 586, -1, -1, -1, 937, -1, 592, -1, 1188, 3400 -1, -1, 66, -1, 111, -1, 601, -1, 72, -1, 3401 117, 118, 76, -1, -1, 79, 80, 81, 82, 83, 3402 84, -1, 86, 87, -1, 967, -1, -1, -1, -1, 3403 -1, -1, 745, -1, 747, -1, 1225, -1, -1, 156, 3404 157, -1, -1, -1, 757, 109, 641, 111, -1, -1, 3405 763, -1, -1, 117, 118, 119, 120, 121, 122, -1, 3406 1002, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3407 -1, 1013, -1, 190, -1, -1, -1, -1, -1, -1, 3408 197, -1, 677, -1, -1, 1274, 1275, -1, -1, -1, 3409 685, -1, 805, 806, 1283, -1, 809, -1, -1, -1, 3410 -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 3411 823, 285, 286, -1, -1, -1, -1, -1, -1, 293, 3412 294, 716, -1, -1, -1, -1, -1, -1, -1, -1, 3413 -1, 726, 727, 307, 308, -1, -1, -1, -1, -1, 3414 -1, -1, -1, 1085, -1, -1, -1, -1, -1, -1, 3415 863, -1, 269, -1, 867, -1, -1, 1099, -1, -1, 3416 -1, -1, -1, -1, 759, -1, -1, -1, -1, 764, 3417 -1, 345, 10, 11, 12, 13, 14, 15, 16, 17, 3418 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3419 -1, 904, 30, 31, 32, -1, -1, -1, -1, -1, 3420 -1, 39, 40, -1, -1, 1394, 323, 381, -1, -1, 3421 -1, -1, -1, -1, 331, 332, -1, 334, 335, -1, 3422 -1, -1, -1, -1, -1, -1, -1, -1, 345, 67, 3423 943, -1, 349, 828, -1, -1, 74, 75, -1, -1, 3424 835, -1, -1, -1, -1, -1, 1188, -1, -1, -1, 3425 -1, 368, -1, 848, 371, 850, -1, -1, 971, -1, 3426 -1, 1450, -1, 1452, 977, -1, -1, -1, 981, 864, 3427 -1, -1, -1, 111, -1, 870, -1, 115, -1, 117, 3428 118, 398, -1, -1, -1, 402, -1, 882, -1, 1002, 3429 885, -1, -1, -1, -1, -1, -1, 1486, -1, 1488, 3430 1013, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3431 -1, -1, -1, -1, -1, -1, 433, -1, -1, -1, 3432 -1, -1, 1035, -1, 1037, -1, 1515, -1, -1, -1, 3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1052, 3434 1053, 1283, 10, 11, 12, 13, 14, 15, 16, 17, 3435 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3436 1073, -1, 479, -1, -1, 482, -1, 962, -1, -1, 3437 -1, 39, -1, -1, -1, 549, 550, 551, 552, 553, 3438 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3439 564, 565, 566, -1, -1, -1, -1, 37, 38, 67, 3440 40, -1, 997, -1, 521, -1, -1, -1, 525, 526, 3441 -1, -1, -1, -1, -1, 1128, -1, -1, -1, -1, 3442 -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, 3443 -1, -1, 72, 1146, -1, -1, 76, -1, -1, 79, 3444 80, 81, 82, 83, 84, -1, 86, 87, 1161, 1162, 3445 -1, -1, -1, 570, 571, -1, -1, -1, -1, -1, 3446 1055, -1, -1, -1, -1, -1, 1061, -1, -1, 109, 3447 -1, 111, 589, 590, 114, -1, -1, 117, 118, 119, 3448 120, 121, 122, 600, -1, 602, 603, -1, -1, -1, 3449 -1, -1, 609, -1, -1, -1, -1, -1, -1, -1, 3450 1095, -1, 619, 620, -1, 1100, -1, -1, 625, -1, 3451 -1, -1, -1, 1108, -1, -1, -1, 634, 635, 636, 3452 -1, 695, -1, -1, -1, -1, -1, -1, -1, -1, 3453 -1, -1, -1, -1, -1, 652, -1, -1, -1, -1, 3454 657, 658, -1, -1, 661, 662, 1141, -1, -1, -1, 3455 -1, 668, -1, -1, -1, -1, -1, -1, 1153, -1, 3456 -1, 1156, -1, 1158, -1, -1, -1, -1, -1, -1, 3457 687, -1, -1, -1, -1, -1, -1, 1172, 1173, -1, 3458 -1, -1, 756, -1, -1, -1, -1, -1, 1530, 1302, 3459 -1, -1, 1305, 710, 711, -1, -1, -1, -1, 1194, 3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, 786, -1, -1, -1, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, -1, -1, 744, 745, -1, 3463 -1, -1, 749, 750, -1, -1, -1, -1, -1, -1, 3464 -1, -1, -1, -1, -1, -1, 1241, -1, -1, -1, 3465 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3466 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3467 -1, 30, 31, 32, -1, -1, 793, -1, -1, -1, 3468 39, -1, -1, -1, 801, -1, -1, -1, -1, -1, 3469 -1, 808, 809, -1, -1, 812, -1, 814, -1, -1, 3470 -1, -1, -1, -1, -1, -1, -1, 824, 67, -1, 3471 -1, -1, -1, 72, -1, 74, 75, 76, -1, 78, 3472 -1, 1316, -1, 1318, 83, 84, -1, -1, -1, -1, 3473 -1, -1, 906, -1, -1, 1330, -1, 1332, -1, -1, 3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3475 -1, -1, 111, -1, 1349, -1, -1, -1, 117, 118, 3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3477 1365, 1366, -1, -1, -1, -1, -1, 951, -1, 896, 3478 -1, 1376, -1, -1, 1379, -1, 903, 904, 905, -1, 3479 907, -1, -1, -1, 911, -1, -1, -1, -1, -1, 3480 -1, -1, 1515, -1, -1, 1400, -1, -1, -1, -1, 3481 -1, -1, 986, -1, 1409, 932, 933, 1412, -1, 1414, 3482 1415, 1416, -1, -1, -1, 999, 10, 11, 12, 13, 3483 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3484 24, 25, 26, 27, 28, -1, -1, -1, -1, -1, 3485 967, -1, -1, -1, -1, 39, -1, -1, -1, 1454, 3486 -1, 1456, -1, 1458, -1, -1, 1040, -1, -1, -1, 3487 -1, 988, 989, -1, -1, -1, -1, -1, 1473, -1, 3488 -1, -1, 999, 67, -1, -1, -1, -1, 1005, 1006, 3489 -1, 1008, 1009, 1010, 78, -1, -1, -1, -1, -1, 3490 -1, -1, -1, 1020, 1021, -1, -1, -1, -1, -1, 3491 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 3492 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3493 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3494 26, 27, -1, 1117, 30, 31, 32, 33, -1, -1, 3495 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3496 -1, -1, -1, -1, -1, -1, 1083, -1, 1085, -1, 3497 -1, -1, -1, 1090, -1, -1, -1, -1, -1, -1, 3498 66, 67, 1099, 69, -1, 71, 72, -1, 74, 75, 3499 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3500 86, 87, -1, 1177, 1178, 1122, 1123, 1124, -1, -1, 3501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3502 -1, -1, -1, 109, -1, 111, -1, -1, -1, 1146, 3503 -1, 117, 118, 119, 120, 121, 122, -1, -1, -1, 3504 -1, -1, -1, -1, -1, -1, 132, -1, 3, 4, 3505 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3506 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3507 25, 26, 27, -1, -1, 30, 31, 32, 33, -1, 3508 -1, 36, 37, 38, 39, 40, 41, -1, 43, -1, 3509 1207, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3510 -1, -1, 57, -1, -1, -1, 61, 62, 1225, 64, 3511 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3512 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3513 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3515 -1, -1, -1, -1, 109, -1, 111, 1274, 1275, 114, 3516 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3517 -1, -1, 127, -1, -1, -1, -1, 132, -1, -1, 3518 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 3519 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3520 21, 22, 23, 24, 25, 26, 27, -1, 1382, 30, 3521 31, 32, 33, -1, -1, 36, 37, 38, 39, 40, 3522 -1, -1, -1, -1, 1398, -1, -1, -1, -1, -1, 3523 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3525 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3526 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3527 -1, -1, -1, -1, -1, -1, -1, 1394, -1, -1, 3528 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3529 111, -1, -1, -1, 1468, 1469, 117, 118, 119, 120, 3530 121, 122, -1, 4, 5, 6, 7, 8, 9, 10, 3531 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3532 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3533 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3534 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3535 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3536 27, 28, -1, -1, 1481, 66, 67, -1, 69, -1, 3537 71, 72, 39, 74, 75, 76, -1, -1, 79, 80, 3538 81, 82, 83, 84, -1, 86, 87, -1, 1505, 1506, 3539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540 67, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3541 111, 78, -1, 1530, -1, 116, 117, 118, 119, 120, 3542 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3543 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3544 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3545 32, -1, -1, -1, -1, 37, 38, 39, 40, 10, 3546 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3547 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3548 31, 32, -1, -1, 66, 67, -1, 69, 39, 71, 3549 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3550 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3551 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3552 -1, 72, -1, 74, 75, -1, -1, 109, -1, 111, 3553 -1, -1, 83, 84, 116, 117, 118, 119, 120, 121, 3554 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3555 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3556 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3557 -1, -1, -1, -1, 37, 38, 39, 40, 10, 11, 3558 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3559 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3560 32, -1, -1, 66, 67, -1, 69, 39, 71, 72, 3561 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82, 3562 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3563 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3564 -1, -1, 74, 75, -1, -1, 109, -1, 111, -1, 3565 -1, -1, -1, 116, 117, 118, 119, 120, 121, 122, 3566 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3567 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3568 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3569 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3570 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3571 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3572 -1, -1, 66, 67, -1, 69, 39, 71, 72, -1, 3573 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3574 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3575 -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 3576 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3577 -1, -1, -1, 117, 118, 119, 120, 121, 122, 4, 3578 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3579 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3580 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3581 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3584 -1, 66, 67, -1, 69, -1, 71, 72, -1, 74, 3585 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3586 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3588 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3589 -1, -1, 117, 118, 119, 120, 121, 122, 4, 5, 3590 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3591 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3592 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3593 -1, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3594 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3596 66, 67, -1, 69, -1, 71, 72, -1, 74, 75, 3597 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3598 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3600 -1, -1, -1, 109, -1, 111, -1, -1, -1, -1, 3601 -1, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3602 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3603 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3604 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3605 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, 3606 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3607 -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 3608 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3609 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3610 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3612 -1, -1, 109, -1, 111, -1, -1, -1, -1, -1, 3613 117, 118, 119, 120, 121, 122, 0, -1, -1, 3, 3614 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3615 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3616 24, 25, 26, 27, -1, -1, 30, 31, 32, 33, 3617 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3618 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3620 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3621 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3622 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3624 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3625 -1, -1, -1, 117, 118, 3, 4, 5, 6, 7, 3626 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3627 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3628 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3629 -1, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3630 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3631 -1, -1, -1, -1, -1, -1, 64, -1, -1, 67, 3632 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3633 -1, -1, -1, -1, -1, 83, 84, -1, -1, -1, 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3636 -1, 109, -1, 111, -1, -1, -1, 115, -1, 117, 3637 118, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3638 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3639 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3640 32, 33, -1, -1, 36, -1, -1, 39, 40, -1, 3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3642 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3643 -1, -1, 64, -1, -1, 67, -1, 69, -1, 71, 3644 72, -1, 74, 75, 76, -1, -1, -1, -1, -1, 3645 -1, 83, 84, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3647 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3648 -1, -1, -1, -1, -1, 117, 118, 3, 4, 5, 3649 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3650 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3651 26, 27, -1, -1, 30, 31, 32, 33, -1, -1, 3652 36, -1, -1, 39, -1, -1, -1, -1, -1, -1, 3653 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3655 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3656 -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3657 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3658 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3659 -1, -1, -1, -1, -1, 111, 39, -1, -1, -1, 3660 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3662 -1, -1, -1, -1, 67, -1, 69, -1, 71, 72, 3663 -1, 74, 75, 76, -1, -1, -1, -1, -1, -1, 3664 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, 3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3666 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 3667 -1, -1, -1, -1, 117, 118, 4, 5, 6, 7, 3668 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3669 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3670 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3671 -1, 39, -1, -1, -1, -1, 10, 11, 12, 13, 3672 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3673 24, 25, 26, 27, -1, -1, 30, 31, 32, 67, 3674 -1, 69, -1, 71, -1, 39, 74, 75, -1, 4, 3675 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3676 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3677 25, 26, 27, 67, -1, 30, 31, 32, -1, -1, 3678 74, 75, 110, 111, 39, -1, -1, -1, -1, 117, 3679 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, -1, 67, -1, 69, 109, 71, 111, -1, 74, 3682 75, -1, -1, 117, 118, -1, -1, -1, -1, -1, 3683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3684 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3686 -1, -1, 117, 118, 4, 5, 6, 7, 8, 9, 3687 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3688 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3689 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3690 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3691 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3692 27, -1, -1, 30, 31, 32, -1, 67, -1, 69, 3693 -1, 71, 39, 40, 74, 75, -1, -1, -1, -1, 3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3695 -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, 3696 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3697 -1, 111, -1, -1, -1, -1, -1, 117, 118, 4, 3698 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3699 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3700 25, 26, 27, -1, 111, 30, 31, 32, 115, -1, 3701 117, 118, -1, -1, 39, -1, -1, -1, -1, -1, 3702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3703 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3704 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3705 75, -1, 4, 5, 6, 7, 8, 9, 10, 11, 3706 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3707 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3708 32, -1, -1, -1, -1, -1, 111, 39, -1, -1, 3709 -1, -1, 117, 118, -1, -1, -1, -1, -1, -1, 3710 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3712 -1, -1, 74, 75, -1, 4, 5, 6, 7, 8, 3713 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3714 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3715 -1, 30, 31, 32, -1, -1, -1, -1, -1, 111, 3716 39, -1, -1, -1, -1, 117, 118, -1, -1, -1, 3717 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3718 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3719 69, -1, 71, -1, -1, 74, 75, -1, 4, 5, 3720 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3721 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3722 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3723 -1, -1, 111, 39, -1, -1, -1, -1, 117, 118, 3724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3725 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3726 -1, 67, -1, 69, -1, 71, -1, -1, 74, 75, 3727 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3728 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3729 30, 31, 32, -1, -1, -1, -1, 37, 38, 39, 3730 40, -1, -1, -1, -1, 111, -1, -1, -1, -1, 3731 -1, 117, 118, -1, -1, -1, -1, -1, -1, -1, 3732 -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, 3733 -1, -1, 72, -1, 74, 75, 76, -1, -1, 79, 3734 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3737 -1, 111, -1, -1, 114, -1, -1, 117, 118, 119, 3738 120, 121, 122, 10, 11, 12, 13, 14, 15, 16, 3739 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3740 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3741 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3742 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3743 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3744 67, -1, -1, 39, -1, 72, -1, 74, 75, 76, 3745 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3746 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, 67, -1, -1, -1, -1, 72, -1, 74, 75, 3748 76, -1, 109, 110, 111, -1, -1, 83, 84, -1, 3749 117, 118, 119, 120, 121, 122, 10, 11, 12, 13, 3750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3751 24, 25, 26, 27, -1, 111, 30, 31, 32, -1, 3752 -1, 117, 118, 37, 38, 39, 40, 10, 11, 12, 3753 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3754 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3755 -1, -1, 66, 67, -1, -1, 39, -1, 72, -1, 3756 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3757 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3759 -1, 74, 75, -1, -1, 109, -1, 111, -1, -1, 3760 83, 84, -1, 117, 118, 119, 120, 121, 122, 10, 3761 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3762 21, 22, 23, 24, 25, 26, 27, -1, 111, 30, 3763 31, 32, -1, -1, 117, 118, 37, 38, 39, 40, 3764 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3765 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3766 30, 31, 32, -1, -1, 66, 67, -1, -1, 39, 3767 40, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3768 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3769 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3770 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3771 111, -1, -1, -1, -1, -1, 117, 118, 119, 120, 3772 121, 122, 10, 11, 12, 13, 14, 15, 16, 17, 3773 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3774 -1, 111, 30, 31, 32, 115, -1, 117, 118, 37, 3775 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3776 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3777 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3778 -1, -1, 39, -1, 72, -1, 74, 75, 76, -1, 3779 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3780 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3781 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3782 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3783 118, 119, 120, 121, 122, 10, 11, 12, 13, 14, 3784 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3785 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3786 117, 118, 37, 38, 39, 40, -1, -1, -1, -1, 3787 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3788 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3789 27, 66, 67, 30, 31, 32, -1, 72, -1, 74, 3790 75, 76, 39, -1, 79, 80, 81, 82, 83, 84, 3791 -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, 3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3793 67, -1, -1, -1, 109, -1, 111, 74, 75, -1, 3794 -1, -1, 117, 118, 119, 120, 121, 122, 3, 4, 3795 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3796 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3797 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3798 117, 118, -1, -1, 39, -1, -1, -1, 10, 11, 3799 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3800 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3801 32, -1, 67, -1, 69, -1, 71, 39, -1, 74, 3802 75, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3803 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3804 24, 25, 26, 27, -1, 67, 30, 31, 32, -1, 3805 72, -1, 74, 75, 76, 39, -1, -1, -1, 114, 3806 -1, 83, 84, -1, 10, 11, 12, 13, 14, 15, 3807 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3808 26, 27, -1, 67, 30, 31, 32, 109, 72, 111, 3809 74, 75, 76, 39, -1, 117, 118, -1, -1, 83, 3810 84, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3811 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3812 -1, 67, 30, 31, 32, 109, 72, 111, 74, 75, 3813 76, 39, -1, 117, 118, -1, -1, 83, 84, -1, 3814 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3815 20, 21, 22, 23, 24, 25, 26, 27, 28, 67, 3816 30, 31, 32, 109, 72, 111, 74, 75, 76, 39, 3817 -1, 117, 118, -1, -1, 83, 84, -1, 10, 11, 3818 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3819 22, 23, 24, 25, 26, 27, 28, 67, 30, 31, 3820 32, 109, -1, 111, 74, 75, -1, 39, 78, 117, 3821 118, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3822 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3823 -1, 30, 31, 32, -1, 67, -1, -1, -1, 109, 3824 39, 111, 74, 75, -1, -1, 78, 117, 118, 10, 3825 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3826 21, 22, 23, 24, 25, 26, 27, -1, 67, 30, 3827 31, 32, -1, -1, -1, 74, 75, -1, 39, 111, 3828 -1, -1, -1, -1, -1, 117, 118, 10, 11, 12, 3829 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3830 23, 24, 25, 26, 27, -1, 67, 30, 31, 32, 3831 -1, -1, 111, 74, 75, -1, 39, -1, 117, 118, 3832 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3833 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3834 30, 31, 32, -1, 67, -1, -1, -1, -1, 39, 3835 111, 74, 75, -1, -1, -1, 117, 118, 10, 11, 3836 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3837 22, 23, 24, 25, 26, 27, -1, 67, 30, 31, 3838 32, -1, -1, -1, 74, 75, -1, 39, 111, -1, 3839 -1, -1, -1, -1, 117, 118, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3841 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3842 -1, 111, 74, 75, -1, -1, -1, 117, 118, 4, 3843 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3844 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3845 25, 26, 27, -1, -1, 30, 31, 32, -1, 111, 3846 -1, -1, -1, -1, 39, 117, 118, -1, -1, -1, 3847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3848 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3849 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3850 75, 37, 38, -1, 40, 41, -1, 43, -1, -1, 3851 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, 3852 56, 57, -1, -1, -1, 61, 62, -1, 64, -1, 3853 66, -1, -1, -1, -1, 110, 72, -1, -1, -1, 3854 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3855 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3856 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3857 -1, -1, -1, 109, -1, 111, -1, -1, 114, -1, 3858 -1, 117, 118, 119, 120, 121, 122, -1, -1, 37, 3859 38, 127, 40, 41, -1, 43, 132, -1, 46, 47, 3860 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3861 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3862 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3863 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3864 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3866 -1, 109, -1, 111, -1, -1, 114, -1, -1, 117, 3867 118, 119, 120, 121, 122, -1, -1, -1, -1, 127, 3868 -1, -1, -1, -1, 132, 4, 5, 6, 7, 8, 3869 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3870 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3871 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3872 39, -1, 37, 38, -1, 40, 41, -1, 43, 44, 3873 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3874 -1, 56, 57, -1, -1, -1, 61, 62, 67, 64, 3875 69, 66, 71, -1, -1, 74, 75, 72, -1, -1, 3876 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3877 -1, 86, 87, -1, -1, -1, -1, 96, -1, -1, 3878 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3879 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3880 -1, -1, 117, 118, 119, 120, 121, 122, -1, -1, 3881 37, 38, 127, 40, 41, -1, 43, 44, 45, 46, 3882 47, 48, 49, 50, 51, 52, 53, -1, -1, -1, 3883 57, -1, -1, -1, 61, 62, -1, 64, -1, 66, 3884 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 3885 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3886 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3888 -1, -1, 109, -1, 111, -1, -1, 114, -1, -1, 3889 117, 118, 119, 120, 121, 122, -1, -1, 37, 38, 3890 127, 40, 41, -1, 43, -1, -1, 46, 47, 48, 3891 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 3892 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 3893 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3894 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3895 -1, -1, -1, -1, -1, 37, 38, -1, 40, -1, 3896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3897 109, -1, 111, -1, -1, 114, -1, -1, 117, 118, 3898 119, 120, 121, 122, 66, -1, -1, -1, 127, -1, 3899 72, -1, 74, 75, 76, -1, -1, 79, 80, 81, 3900 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3901 -1, -1, 37, 38, -1, 40, -1, -1, -1, -1, 3902 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 3903 -1, 113, 114, -1, -1, 117, 118, 119, 120, 121, 3904 122, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3905 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3906 -1, 86, 87, -1, -1, -1, -1, -1, -1, 37, 3907 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 3908 -1, -1, -1, -1, 109, -1, 111, -1, 37, 38, 3909 -1, 40, 117, 118, 119, 120, 121, 122, 66, -1, 3910 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 3911 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 3912 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3913 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3914 -1, 109, -1, 111, -1, 37, 38, -1, 40, 117, 3915 118, 119, 120, 121, 122, -1, -1, -1, -1, -1, 3916 109, -1, -1, -1, 37, 38, -1, 40, 117, 118, 3917 119, 120, 121, 122, 66, -1, -1, -1, -1, -1, 3918 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 3919 82, 83, 84, 66, 86, 87, -1, -1, -1, 72, 3920 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 3921 83, 84, -1, 86, 87, -1, -1, 109, -1, -1, 3922 -1, 37, 38, -1, 40, 117, 118, 119, 120, 121, 3923 122, -1, -1, -1, -1, -1, 109, -1, -1, -1, 3924 -1, -1, -1, -1, 117, 118, 119, 120, 121, 122, 3925 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, 3926 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 3927 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, 3928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3929 -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, 3930 -1, 117, 118, 119, 120, 121, 122, 4, 5, 6, 3931 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3932 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3933 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3934 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3935 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3936 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3937 67, -1, 69, -1, 71, 72, -1, 74, 75, 76, 3938 -1, -1, -1, -1, -1, -1, 83, 84, 3, 4, 3939 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3940 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3941 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3942 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 3943 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3945 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 3946 75, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3947 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3948 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3949 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 3950 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3951 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3952 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3953 -1, -1, 74, 75, 4, 5, 6, 7, 8, 9, 3954 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3955 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3956 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3957 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3958 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3959 -1, 30, 31, 32, 33, 34, 35, 67, -1, 69, 3960 39, 71, -1, -1, 74, 75, -1, -1, -1, -1, 3961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3962 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3963 -1, -1, -1, -1, -1, 74, 75 3964 }; 3965 3966 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 3967 symbol of state STATE-NUM. */ 3968 static const yytype_uint16 yystos[] = 3969 { 3970 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3971 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3972 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 3973 36, 39, 40, 64, 67, 69, 71, 72, 74, 75, 3974 76, 83, 84, 109, 111, 117, 118, 137, 140, 149, 3975 198, 212, 213, 214, 215, 216, 217, 218, 219, 220, 3976 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 3977 232, 233, 234, 235, 236, 237, 238, 240, 241, 242, 3978 243, 244, 245, 247, 255, 256, 283, 284, 285, 293, 3979 296, 302, 303, 305, 307, 308, 314, 319, 323, 324, 3980 325, 326, 327, 328, 329, 330, 350, 367, 368, 369, 3981 370, 72, 139, 140, 149, 215, 217, 225, 227, 237, 3982 241, 243, 284, 82, 109, 312, 313, 314, 312, 312, 3983 72, 74, 75, 76, 138, 139, 273, 274, 294, 295, 3984 74, 75, 274, 109, 305, 11, 199, 109, 149, 319, 3985 324, 325, 326, 328, 329, 330, 112, 134, 111, 218, 3986 225, 227, 323, 327, 366, 367, 370, 371, 135, 107, 3987 131, 277, 114, 135, 173, 74, 75, 137, 272, 135, 3988 135, 135, 116, 135, 74, 75, 109, 149, 309, 318, 3989 319, 320, 321, 322, 323, 327, 331, 332, 333, 334, 3990 335, 341, 3, 28, 78, 239, 3, 5, 74, 111, 3991 149, 217, 228, 232, 235, 244, 285, 323, 327, 370, 3992 215, 217, 227, 237, 241, 243, 284, 323, 327, 33, 3993 233, 233, 228, 235, 135, 233, 228, 233, 228, 75, 3994 109, 114, 274, 285, 114, 274, 233, 228, 116, 135, 3995 135, 0, 134, 109, 173, 312, 312, 134, 111, 225, 3996 227, 368, 272, 272, 131, 227, 109, 149, 309, 319, 3997 323, 111, 149, 370, 306, 230, 314, 109, 290, 109, 3998 109, 51, 109, 37, 38, 40, 66, 72, 76, 79, 3999 80, 81, 82, 86, 87, 109, 111, 119, 120, 121, 4000 122, 136, 140, 141, 142, 143, 148, 149, 150, 151, 4001 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 4002 162, 164, 167, 225, 276, 292, 366, 371, 227, 110, 4003 110, 110, 110, 110, 110, 110, 74, 75, 111, 225, 4004 272, 350, 368, 111, 117, 149, 164, 217, 218, 224, 4005 227, 231, 232, 237, 240, 241, 243, 262, 263, 267, 4006 268, 269, 270, 284, 350, 362, 363, 364, 365, 370, 4007 371, 112, 109, 323, 327, 370, 109, 116, 132, 111, 4008 114, 149, 164, 278, 278, 115, 134, 116, 132, 109, 4009 116, 132, 116, 132, 116, 132, 312, 132, 319, 320, 4010 321, 322, 332, 333, 334, 335, 227, 318, 331, 64, 4011 311, 111, 312, 349, 350, 312, 312, 173, 134, 109, 4012 312, 349, 312, 312, 227, 309, 109, 109, 226, 227, 4013 225, 227, 112, 134, 225, 366, 371, 173, 134, 272, 4014 277, 217, 232, 323, 327, 173, 134, 294, 227, 237, 4015 132, 227, 227, 292, 248, 246, 258, 274, 257, 227, 4016 294, 132, 132, 305, 134, 139, 271, 3, 135, 207, 4017 208, 222, 224, 227, 134, 311, 109, 311, 164, 319, 4018 227, 109, 134, 272, 114, 33, 34, 35, 225, 286, 4019 287, 289, 134, 128, 131, 291, 134, 228, 234, 235, 4020 272, 315, 316, 317, 109, 141, 109, 148, 109, 148, 4021 151, 109, 148, 109, 109, 148, 148, 111, 164, 169, 4022 173, 225, 275, 366, 370, 112, 134, 82, 85, 86, 4023 87, 109, 111, 113, 114, 97, 98, 99, 100, 101, 4024 102, 103, 104, 105, 106, 131, 166, 151, 151, 117, 4025 123, 124, 119, 120, 88, 89, 90, 91, 125, 126, 4026 92, 93, 118, 127, 128, 94, 95, 129, 131, 373, 4027 109, 149, 345, 346, 347, 348, 349, 110, 116, 109, 4028 349, 350, 109, 349, 350, 134, 109, 225, 368, 112, 4029 134, 135, 111, 225, 227, 361, 362, 370, 371, 135, 4030 109, 111, 149, 319, 336, 337, 338, 339, 340, 341, 4031 342, 343, 344, 350, 351, 352, 353, 354, 355, 356, 4032 149, 370, 227, 135, 135, 149, 225, 227, 363, 272, 4033 225, 350, 363, 272, 109, 134, 134, 134, 112, 134, 4034 72, 111, 113, 140, 274, 278, 279, 280, 281, 282, 4035 134, 134, 134, 134, 134, 134, 309, 110, 110, 110, 4036 110, 110, 110, 110, 318, 331, 109, 277, 112, 207, 4037 134, 309, 169, 276, 169, 276, 309, 111, 207, 311, 4038 173, 134, 207, 110, 40, 111, 115, 225, 249, 250, 4039 251, 366, 114, 116, 372, 131, 259, 114, 227, 264, 4040 265, 266, 269, 270, 110, 116, 173, 134, 117, 164, 4041 134, 224, 227, 263, 362, 370, 303, 304, 109, 149, 4042 336, 110, 116, 373, 274, 286, 109, 114, 274, 276, 4043 286, 110, 116, 109, 141, 110, 130, 275, 275, 275, 4044 145, 164, 276, 275, 112, 134, 110, 116, 110, 109, 4045 149, 349, 357, 358, 359, 360, 110, 116, 164, 111, 4046 139, 144, 145, 134, 111, 139, 144, 164, 151, 151, 4047 151, 152, 152, 153, 153, 154, 154, 154, 154, 155, 4048 155, 156, 157, 158, 159, 160, 130, 169, 164, 134, 4049 346, 347, 348, 227, 345, 312, 312, 164, 276, 134, 4050 271, 134, 225, 350, 363, 227, 231, 112, 112, 134, 4051 370, 112, 109, 134, 319, 337, 338, 339, 342, 352, 4052 353, 354, 112, 134, 227, 336, 340, 351, 109, 312, 4053 355, 373, 312, 312, 373, 109, 312, 355, 312, 312, 4054 312, 312, 350, 225, 361, 371, 272, 112, 116, 112, 4055 116, 373, 225, 363, 373, 260, 261, 262, 263, 260, 4056 260, 272, 164, 134, 111, 274, 130, 116, 372, 278, 4057 111, 130, 282, 29, 209, 210, 272, 260, 139, 309, 4058 139, 311, 109, 349, 350, 109, 349, 350, 141, 350, 4059 173, 264, 110, 110, 110, 110, 112, 173, 207, 173, 4060 114, 250, 251, 112, 134, 109, 130, 149, 252, 254, 4061 318, 319, 331, 357, 116, 132, 116, 132, 274, 248, 4062 274, 115, 162, 163, 258, 135, 135, 139, 222, 135, 4063 135, 260, 109, 149, 370, 135, 115, 227, 287, 288, 4064 135, 134, 134, 109, 135, 110, 316, 169, 170, 130, 4065 132, 111, 141, 200, 201, 202, 110, 116, 110, 110, 4066 110, 110, 111, 164, 358, 359, 360, 227, 357, 312, 4067 312, 114, 151, 167, 164, 165, 168, 116, 135, 134, 4068 110, 116, 164, 134, 115, 162, 130, 264, 110, 110, 4069 110, 345, 264, 110, 260, 225, 363, 111, 117, 149, 4070 164, 164, 227, 342, 264, 110, 110, 110, 110, 110, 4071 110, 110, 7, 227, 336, 340, 351, 134, 134, 373, 4072 134, 134, 110, 135, 135, 135, 135, 277, 135, 162, 4073 163, 164, 310, 134, 278, 280, 115, 134, 211, 274, 4074 40, 41, 43, 46, 47, 48, 49, 50, 51, 52, 4075 53, 57, 61, 62, 72, 111, 127, 170, 171, 172, 4076 173, 174, 175, 177, 178, 190, 192, 193, 198, 212, 4077 308, 29, 135, 131, 277, 134, 134, 110, 135, 173, 4078 248, 132, 132, 319, 163, 227, 253, 254, 253, 274, 4079 312, 115, 259, 372, 110, 116, 112, 112, 135, 227, 4080 116, 373, 290, 110, 286, 215, 217, 225, 298, 299, 4081 300, 301, 292, 110, 110, 130, 163, 109, 110, 130, 4082 116, 139, 112, 110, 110, 110, 357, 279, 116, 135, 4083 168, 112, 139, 146, 147, 145, 135, 146, 162, 167, 4084 135, 109, 349, 350, 135, 135, 134, 135, 135, 135, 4085 164, 110, 135, 109, 349, 350, 109, 355, 109, 355, 4086 350, 226, 7, 117, 135, 164, 264, 264, 263, 267, 4087 267, 268, 116, 116, 110, 110, 112, 96, 122, 135, 4088 135, 146, 278, 164, 116, 132, 212, 216, 227, 231, 4089 109, 109, 171, 109, 109, 72, 132, 72, 132, 72, 4090 117, 170, 109, 173, 165, 165, 130, 112, 143, 132, 4091 135, 134, 135, 211, 110, 164, 264, 264, 312, 110, 4092 115, 252, 115, 134, 110, 134, 135, 309, 115, 134, 4093 135, 135, 110, 114, 200, 112, 163, 132, 200, 202, 4094 110, 109, 349, 350, 372, 165, 112, 135, 85, 113, 4095 116, 135, 112, 135, 110, 134, 110, 110, 112, 112, 4096 112, 135, 110, 134, 134, 134, 164, 164, 135, 112, 4097 135, 135, 135, 135, 134, 134, 163, 163, 112, 112, 4098 135, 135, 274, 227, 169, 169, 47, 169, 134, 132, 4099 132, 132, 169, 132, 169, 58, 59, 60, 194, 195, 4100 196, 132, 63, 132, 312, 114, 175, 115, 132, 135, 4101 135, 96, 269, 270, 110, 299, 116, 132, 116, 132, 4102 115, 297, 130, 141, 110, 110, 130, 134, 115, 112, 4103 111, 147, 111, 147, 147, 112, 112, 264, 112, 264, 4104 264, 264, 135, 135, 112, 112, 110, 110, 112, 116, 4105 96, 263, 96, 135, 112, 112, 110, 110, 109, 110, 4106 170, 191, 212, 132, 110, 109, 109, 173, 196, 58, 4107 59, 164, 171, 144, 110, 110, 114, 134, 134, 298, 4108 141, 203, 109, 132, 203, 264, 134, 134, 135, 135, 4109 135, 135, 112, 112, 134, 135, 112, 171, 44, 45, 4110 114, 181, 182, 183, 169, 171, 135, 110, 170, 114, 4111 183, 96, 134, 96, 134, 109, 109, 132, 115, 134, 4112 272, 309, 115, 116, 130, 163, 110, 135, 146, 146, 4113 110, 110, 110, 110, 267, 42, 163, 179, 180, 310, 4114 130, 134, 171, 181, 110, 132, 171, 132, 134, 110, 4115 134, 110, 134, 96, 134, 96, 134, 132, 298, 141, 4116 139, 204, 110, 132, 110, 135, 135, 171, 96, 116, 4117 130, 135, 205, 206, 212, 132, 170, 170, 205, 173, 4118 197, 225, 366, 173, 197, 110, 134, 110, 134, 115, 4119 110, 116, 112, 112, 163, 179, 182, 184, 185, 134, 4120 132, 182, 186, 187, 135, 109, 149, 309, 357, 139, 4121 135, 173, 197, 173, 197, 109, 132, 139, 171, 176, 4122 115, 182, 212, 170, 56, 176, 189, 115, 182, 110, 4123 227, 110, 135, 135, 292, 171, 176, 132, 188, 189, 4124 176, 189, 173, 173, 110, 110, 110, 188, 135, 135, 4125 173, 173, 135, 135 4126 }; 4127 4128 #define yyerrok (yyerrstatus = 0) 4129 #define yyclearin (yychar = YYEMPTY) 4130 #define YYEMPTY (-2) 4131 #define YYEOF 0 4132 4133 #define YYACCEPT goto yyacceptlab 4134 #define YYABORT goto yyabortlab 4135 #define YYERROR goto yyerrorlab 4136 4137 4138 /* Like YYERROR except do call yyerror. This remains here temporarily 4139 to ease the transition to the new meaning of YYERROR, for GCC. 4140 Once GCC version 2 has supplanted version 1, this can go. However, 4141 YYFAIL appears to be in use. Nevertheless, it is formally deprecated 4142 in Bison 2.4.2's NEWS entry, where a plan to phase it out is 4143 discussed. */ 4144 4145 #define YYFAIL goto yyerrlab 4146 #if defined YYFAIL 4147 /* This is here to suppress warnings from the GCC cpp's 4148 -Wunused-macros. Normally we don't worry about that warning, but 4149 some users do, and we want to make it easy for users to remove 4150 YYFAIL uses, which will produce warnings from Bison 2.5. */ 4151 #endif 3821 3822 #define yyerrok (yyerrstatus = 0) 3823 #define yyclearin (yychar = YYEMPTY) 3824 #define YYEMPTY (-2) 3825 #define YYEOF 0 3826 3827 #define YYACCEPT goto yyacceptlab 3828 #define YYABORT goto yyabortlab 3829 #define YYERROR goto yyerrorlab 3830 4152 3831 4153 3832 #define YYRECOVERING() (!!yyerrstatus) 4154 3833 4155 #define YYBACKUP(Token, Value) \ 4156 do \ 4157 if (yychar == YYEMPTY && yylen == 1) \ 4158 { \ 4159 yychar = (Token); \ 4160 yylval = (Value); \ 4161 YYPOPSTACK (1); \ 4162 goto yybackup; \ 4163 } \ 4164 else \ 4165 { \ 3834 #define YYBACKUP(Token, Value) \ 3835 do \ 3836 if (yychar == YYEMPTY) \ 3837 { \ 3838 yychar = (Token); \ 3839 yylval = (Value); \ 3840 YYPOPSTACK (yylen); \ 3841 yystate = *yyssp; \ 3842 goto yybackup; \ 3843 } \ 3844 else \ 3845 { \ 4166 3846 yyerror (YY_("syntax error: cannot back up")); \ 4167 YYERROR; \ 4168 } \ 4169 while (YYID (0)) 4170 4171 4172 #define YYTERROR 1 4173 #define YYERRCODE 256 4174 4175 4176 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 4177 If N is 0, then set CURRENT to the empty location which ends 4178 the previous symbol: RHS[0] (always defined). */ 4179 4180 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 4181 #ifndef YYLLOC_DEFAULT 4182 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 4183 do \ 4184 if (YYID (N)) \ 4185 { \ 4186 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 4187 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 4188 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 4189 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 4190 } \ 4191 else \ 4192 { \ 4193 (Current).first_line = (Current).last_line = \ 4194 YYRHSLOC (Rhs, 0).last_line; \ 4195 (Current).first_column = (Current).last_column = \ 4196 YYRHSLOC (Rhs, 0).last_column; \ 4197 } \ 4198 while (YYID (0)) 4199 #endif 4200 4201 4202 /* This macro is provided for backward compatibility. */ 4203 4204 #ifndef YY_LOCATION_PRINT 4205 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 4206 #endif 4207 4208 4209 /* YYLEX -- calling `yylex' with the right arguments. */ 4210 4211 #ifdef YYLEX_PARAM 4212 # define YYLEX yylex (YYLEX_PARAM) 4213 #else 4214 # define YYLEX yylex () 4215 #endif 3847 YYERROR; \ 3848 } \ 3849 while (0) 3850 3851 /* Error token number */ 3852 #define YYTERROR 1 3853 #define YYERRCODE 256 3854 3855 4216 3856 4217 3857 /* Enable debugging if requested. */ … … 4223 3863 # endif 4224 3864 4225 # define YYDPRINTF(Args) \ 4226 do { \ 4227 if (yydebug) \ 4228 YYFPRINTF Args; \ 4229 } while (YYID (0)) 4230 4231 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 4232 do { \ 4233 if (yydebug) \ 4234 { \ 4235 YYFPRINTF (stderr, "%s ", Title); \ 4236 yy_symbol_print (stderr, \ 4237 Type, Value); \ 4238 YYFPRINTF (stderr, "\n"); \ 4239 } \ 4240 } while (YYID (0)) 4241 4242 4243 /*--------------------------------. 4244 | Print this symbol on YYOUTPUT. | 4245 `--------------------------------*/ 4246 4247 /*ARGSUSED*/ 4248 #if (defined __STDC__ || defined __C99__FUNC__ \ 4249 || defined __cplusplus || defined _MSC_VER) 3865 # define YYDPRINTF(Args) \ 3866 do { \ 3867 if (yydebug) \ 3868 YYFPRINTF Args; \ 3869 } while (0) 3870 3871 /* This macro is provided for backward compatibility. */ 3872 #ifndef YY_LOCATION_PRINT 3873 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 3874 #endif 3875 3876 3877 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 3878 do { \ 3879 if (yydebug) \ 3880 { \ 3881 YYFPRINTF (stderr, "%s ", Title); \ 3882 yy_symbol_print (stderr, \ 3883 Type, Value); \ 3884 YYFPRINTF (stderr, "\n"); \ 3885 } \ 3886 } while (0) 3887 3888 3889 /*----------------------------------------. 3890 | Print this symbol's value on YYOUTPUT. | 3891 `----------------------------------------*/ 3892 4250 3893 static void 4251 3894 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4252 #else4253 static void4254 yy_symbol_value_print (yyoutput, yytype, yyvaluep)4255 FILE *yyoutput;4256 int yytype;4257 YYSTYPE const * const yyvaluep;4258 #endif4259 3895 { 3896 FILE *yyo = yyoutput; 3897 YYUSE (yyo); 4260 3898 if (!yyvaluep) 4261 3899 return; … … 4263 3901 if (yytype < YYNTOKENS) 4264 3902 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 4265 # else4266 YYUSE (yyoutput);4267 3903 # endif 4268 switch (yytype) 4269 { 4270 default: 4271 break; 4272 } 3904 YYUSE (yytype); 4273 3905 } 4274 3906 … … 4278 3910 `--------------------------------*/ 4279 3911 4280 #if (defined __STDC__ || defined __C99__FUNC__ \4281 || defined __cplusplus || defined _MSC_VER)4282 3912 static void 4283 3913 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 4284 #else4285 static void4286 yy_symbol_print (yyoutput, yytype, yyvaluep)4287 FILE *yyoutput;4288 int yytype;4289 YYSTYPE const * const yyvaluep;4290 #endif4291 3914 { 4292 if (yytype < YYNTOKENS) 4293 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 4294 else 4295 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 3915 YYFPRINTF (yyoutput, "%s %s (", 3916 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 4296 3917 4297 3918 yy_symbol_value_print (yyoutput, yytype, yyvaluep); … … 4304 3925 `------------------------------------------------------------------*/ 4305 3926 4306 #if (defined __STDC__ || defined __C99__FUNC__ \4307 || defined __cplusplus || defined _MSC_VER)4308 3927 static void 4309 3928 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 4310 #else4311 static void4312 yy_stack_print (yybottom, yytop)4313 yytype_int16 *yybottom;4314 yytype_int16 *yytop;4315 #endif4316 3929 { 4317 3930 YYFPRINTF (stderr, "Stack now"); … … 4324 3937 } 4325 3938 4326 # define YY_STACK_PRINT(Bottom, Top) 4327 do { 4328 if (yydebug) 4329 yy_stack_print ((Bottom), (Top)); 4330 } while ( YYID (0))3939 # define YY_STACK_PRINT(Bottom, Top) \ 3940 do { \ 3941 if (yydebug) \ 3942 yy_stack_print ((Bottom), (Top)); \ 3943 } while (0) 4331 3944 4332 3945 … … 4335 3948 `------------------------------------------------*/ 4336 3949 4337 #if (defined __STDC__ || defined __C99__FUNC__ \4338 || defined __cplusplus || defined _MSC_VER)4339 3950 static void 4340 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 4341 #else 4342 static void 4343 yy_reduce_print (yyvsp, yyrule) 4344 YYSTYPE *yyvsp; 4345 int yyrule; 4346 #endif 3951 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 4347 3952 { 3953 unsigned long int yylno = yyrline[yyrule]; 4348 3954 int yynrhs = yyr2[yyrule]; 4349 3955 int yyi; 4350 unsigned long int yylno = yyrline[yyrule];4351 3956 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 4352 3957 yyrule - 1, yylno); 4353 3958 /* The symbols being reduced. */ 4354 3959 for (yyi = 0; yyi < yynrhs; yyi++) 4355 3960 { 4356 3961 YYFPRINTF (stderr, " $%d = ", yyi + 1); 4357 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 4358 &(yyvsp[(yyi + 1) - (yynrhs)]) 4359 ); 3962 yy_symbol_print (stderr, 3963 yystos[yyssp[yyi + 1 - yynrhs]], 3964 &(yyvsp[(yyi + 1) - (yynrhs)]) 3965 ); 4360 3966 YYFPRINTF (stderr, "\n"); 4361 3967 } 4362 3968 } 4363 3969 4364 # define YY_REDUCE_PRINT(Rule) 4365 do { 4366 if (yydebug) 4367 yy_reduce_print (yy vsp, Rule); \4368 } while ( YYID (0))3970 # define YY_REDUCE_PRINT(Rule) \ 3971 do { \ 3972 if (yydebug) \ 3973 yy_reduce_print (yyssp, yyvsp, Rule); \ 3974 } while (0) 4369 3975 4370 3976 /* Nonzero means print parse trace. It is left uninitialized so that … … 4380 3986 4381 3987 /* YYINITDEPTH -- initial size of the parser's stacks. */ 4382 #ifndef 3988 #ifndef YYINITDEPTH 4383 3989 # define YYINITDEPTH 200 4384 3990 #endif … … 4403 4009 # else 4404 4010 /* Return the length of YYSTR. */ 4405 #if (defined __STDC__ || defined __C99__FUNC__ \4406 || defined __cplusplus || defined _MSC_VER)4407 4011 static YYSIZE_T 4408 4012 yystrlen (const char *yystr) 4409 #else4410 static YYSIZE_T4411 yystrlen (yystr)4412 const char *yystr;4413 #endif4414 4013 { 4415 4014 YYSIZE_T yylen; … … 4427 4026 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 4428 4027 YYDEST. */ 4429 #if (defined __STDC__ || defined __C99__FUNC__ \4430 || defined __cplusplus || defined _MSC_VER)4431 4028 static char * 4432 4029 yystpcpy (char *yydest, const char *yysrc) 4433 #else4434 static char *4435 yystpcpy (yydest, yysrc)4436 char *yydest;4437 const char *yysrc;4438 #endif4439 4030 { 4440 4031 char *yyd = yydest; … … 4466 4057 4467 4058 for (;;) 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4059 switch (*++yyp) 4060 { 4061 case '\'': 4062 case ',': 4063 goto do_not_strip_quotes; 4064 4065 case '\\': 4066 if (*++yyp != '\\') 4067 goto do_not_strip_quotes; 4068 /* Fall through. */ 4069 default: 4070 if (yyres) 4071 yyres[yyn] = *yyp; 4072 yyn++; 4073 break; 4074 4075 case '"': 4076 if (yyres) 4077 yyres[yyn] = '\0'; 4078 return yyn; 4079 } 4489 4080 do_not_strip_quotes: ; 4490 4081 } … … 4509 4100 yytype_int16 *yyssp, int yytoken) 4510 4101 { 4511 YYSIZE_T yysize0 = yytnamerr ( 0, yytname[yytoken]);4102 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 4512 4103 YYSIZE_T yysize = yysize0; 4513 YYSIZE_T yysize1;4514 4104 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 4515 4105 /* Internationalized format string. */ 4516 const char *yyformat = 0;4106 const char *yyformat = YY_NULLPTR; 4517 4107 /* Arguments of yyformat. */ 4518 4108 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; … … 4522 4112 4523 4113 /* There are many possibilities here to consider: 4524 - Assume YYFAIL is not used. It's too flawed to consider. See4525 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>4526 for details. YYERROR is fine as it does not invoke this4527 function.4528 4114 - If this state is a consistent state with a default action, then 4529 4115 the only way this function was invoked is if the default action … … 4574 4160 } 4575 4161 yyarg[yycount++] = yytname[yyx]; 4576 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 4577 if (! (yysize <= yysize1 4578 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4579 return 2; 4580 yysize = yysize1; 4162 { 4163 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 4164 if (! (yysize <= yysize1 4165 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4166 return 2; 4167 yysize = yysize1; 4168 } 4581 4169 } 4582 4170 } … … 4598 4186 } 4599 4187 4600 yysize1 = yysize + yystrlen (yyformat); 4601 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4602 return 2; 4603 yysize = yysize1; 4188 { 4189 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 4190 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 4191 return 2; 4192 yysize = yysize1; 4193 } 4604 4194 4605 4195 if (*yymsg_alloc < yysize) … … 4638 4228 `-----------------------------------------------*/ 4639 4229 4640 /*ARGSUSED*/4641 #if (defined __STDC__ || defined __C99__FUNC__ \4642 || defined __cplusplus || defined _MSC_VER)4643 4230 static void 4644 4231 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 4645 #else4646 static void4647 yydestruct (yymsg, yytype, yyvaluep)4648 const char *yymsg;4649 int yytype;4650 YYSTYPE *yyvaluep;4651 #endif4652 4232 { 4653 4233 YYUSE (yyvaluep); 4654 4655 4234 if (!yymsg) 4656 4235 yymsg = "Deleting"; 4657 4236 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 4658 4237 4659 switch (yytype) 4660 { 4661 4662 default: 4663 break; 4664 } 4238 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4239 YYUSE (yytype); 4240 YY_IGNORE_MAYBE_UNINITIALIZED_END 4665 4241 } 4666 4242 4667 4243 4668 /* Prevent warnings from -Wmissing-prototypes. */4669 #ifdef YYPARSE_PARAM4670 #if defined __STDC__ || defined __cplusplus4671 int yyparse (void *YYPARSE_PARAM);4672 #else4673 int yyparse ();4674 #endif4675 #else /* ! YYPARSE_PARAM */4676 #if defined __STDC__ || defined __cplusplus4677 int yyparse (void);4678 #else4679 int yyparse ();4680 #endif4681 #endif /* ! YYPARSE_PARAM */4682 4244 4683 4245 … … 4687 4249 /* The semantic value of the lookahead symbol. */ 4688 4250 YYSTYPE yylval; 4689 4690 4251 /* Number of syntax errors so far. */ 4691 4252 int yynerrs; … … 4696 4257 `----------*/ 4697 4258 4698 #ifdef YYPARSE_PARAM4699 #if (defined __STDC__ || defined __C99__FUNC__ \4700 || defined __cplusplus || defined _MSC_VER)4701 int4702 yyparse (void *YYPARSE_PARAM)4703 #else4704 int4705 yyparse (YYPARSE_PARAM)4706 void *YYPARSE_PARAM;4707 #endif4708 #else /* ! YYPARSE_PARAM */4709 #if (defined __STDC__ || defined __C99__FUNC__ \4710 || defined __cplusplus || defined _MSC_VER)4711 4259 int 4712 4260 yyparse (void) 4713 #else4714 int4715 yyparse ()4716 4717 #endif4718 #endif4719 4261 { 4720 4262 int yystate; … … 4723 4265 4724 4266 /* The stacks and their tools: 4725 `yyss': related to states.4726 `yyvs': related to semantic values.4727 4728 Refer to the stacks thr useparate pointers, to allow yyoverflow4267 'yyss': related to states. 4268 'yyvs': related to semantic values. 4269 4270 Refer to the stacks through separate pointers, to allow yyoverflow 4729 4271 to reallocate them elsewhere. */ 4730 4272 … … 4744 4286 int yyresult; 4745 4287 /* Lookahead token as an internal (translated) token number. */ 4746 int yytoken ;4288 int yytoken = 0; 4747 4289 /* The variables used to return semantic value and location from the 4748 4290 action routines. */ … … 4762 4304 int yylen = 0; 4763 4305 4764 yytoken = 0; 4765 yyss = yyssa; 4766 yyvs = yyvsa; 4306 yyssp = yyss = yyssa; 4307 yyvsp = yyvs = yyvsa; 4767 4308 yystacksize = YYINITDEPTH; 4768 4309 … … 4773 4314 yynerrs = 0; 4774 4315 yychar = YYEMPTY; /* Cause a token to be read. */ 4775 4776 /* Initialize stack pointers.4777 Waste one element of value and location stack4778 so that they stay on the same level as the state stack.4779 The wasted elements are never initialized. */4780 yyssp = yyss;4781 yyvsp = yyvs;4782 4783 4316 goto yysetstate; 4784 4317 … … 4801 4334 #ifdef yyoverflow 4802 4335 { 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4336 /* Give user a chance to reallocate the stack. Use copies of 4337 these so that the &'s don't force the real ones into 4338 memory. */ 4339 YYSTYPE *yyvs1 = yyvs; 4340 yytype_int16 *yyss1 = yyss; 4341 4342 /* Each stack pointer address is followed by the size of the 4343 data in use in that stack, in bytes. This used to be a 4344 conditional around just the two extra args, but that might 4345 be undefined if yyoverflow is a macro. */ 4346 yyoverflow (YY_("memory exhausted"), 4347 &yyss1, yysize * sizeof (*yyssp), 4348 &yyvs1, yysize * sizeof (*yyvsp), 4349 &yystacksize); 4350 4351 yyss = yyss1; 4352 yyvs = yyvs1; 4820 4353 } 4821 4354 #else /* no yyoverflow */ … … 4825 4358 /* Extend the stack our own way. */ 4826 4359 if (YYMAXDEPTH <= yystacksize) 4827 4360 goto yyexhaustedlab; 4828 4361 yystacksize *= 2; 4829 4362 if (YYMAXDEPTH < yystacksize) 4830 4363 yystacksize = YYMAXDEPTH; 4831 4364 4832 4365 { 4833 4834 4835 4836 4837 4838 4839 4366 yytype_int16 *yyss1 = yyss; 4367 union yyalloc *yyptr = 4368 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 4369 if (! yyptr) 4370 goto yyexhaustedlab; 4371 YYSTACK_RELOCATE (yyss_alloc, yyss); 4372 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 4840 4373 # undef YYSTACK_RELOCATE 4841 4842 4374 if (yyss1 != yyssa) 4375 YYSTACK_FREE (yyss1); 4843 4376 } 4844 4377 # endif … … 4849 4382 4850 4383 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 4851 4384 (unsigned long int) yystacksize)); 4852 4385 4853 4386 if (yyss + yystacksize - 1 <= yyssp) 4854 4387 YYABORT; 4855 4388 } 4856 4389 … … 4881 4414 { 4882 4415 YYDPRINTF ((stderr, "Reading a token: ")); 4883 yychar = YYLEX;4416 yychar = yylex (); 4884 4417 } 4885 4418 … … 4921 4454 4922 4455 yystate = yyn; 4456 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 4923 4457 *++yyvsp = yylval; 4458 YY_IGNORE_MAYBE_UNINITIALIZED_END 4924 4459 4925 4460 goto yynewstate; … … 4944 4479 4945 4480 /* If YYLEN is nonzero, implement the default value of the action: 4946 `$$ = $1'.4481 '$$ = $1'. 4947 4482 4948 4483 Otherwise, the following line sets YYVAL to garbage. … … 4958 4493 { 4959 4494 case 2: 4960 4961 /* Line 1806 of yacc.c */ 4962 #line 298 "parser.yy" 4495 #line 298 "parser.yy" /* yacc.c:1646 */ 4963 4496 { 4964 4497 typedefTable.enterScope(); 4965 4498 } 4499 #line 4500 "Parser/parser.cc" /* yacc.c:1646 */ 4966 4500 break; 4967 4501 4968 4502 case 3: 4969 4970 /* Line 1806 of yacc.c */ 4971 #line 304 "parser.yy" 4503 #line 304 "parser.yy" /* yacc.c:1646 */ 4972 4504 { 4973 4505 typedefTable.leaveScope(); 4974 4506 } 4507 #line 4508 "Parser/parser.cc" /* yacc.c:1646 */ 4975 4508 break; 4976 4509 4977 4510 case 4: 4978 4979 /* Line 1806 of yacc.c */ 4980 #line 313 "parser.yy" 4981 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4511 #line 313 "parser.yy" /* yacc.c:1646 */ 4512 { (yyval.en) = new ExpressionNode( build_constantInteger( assign_strptr((yyvsp[0].tok)) ) ); } 4513 #line 4514 "Parser/parser.cc" /* yacc.c:1646 */ 4982 4514 break; 4983 4515 4984 4516 case 5: 4985 4986 /* Line 1806 of yacc.c */ 4987 #line 314 "parser.yy" 4988 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4517 #line 314 "parser.yy" /* yacc.c:1646 */ 4518 { (yyval.en) = new ExpressionNode( build_constantFloat( assign_strptr((yyvsp[0].tok)) ) ); } 4519 #line 4520 "Parser/parser.cc" /* yacc.c:1646 */ 4989 4520 break; 4990 4521 4991 4522 case 6: 4992 4993 /* Line 1806 of yacc.c */ 4994 #line 315 "parser.yy" 4995 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4523 #line 315 "parser.yy" /* yacc.c:1646 */ 4524 { (yyval.en) = new ExpressionNode( build_constantChar( assign_strptr((yyvsp[0].tok)) ) ); } 4525 #line 4526 "Parser/parser.cc" /* yacc.c:1646 */ 4996 4526 break; 4997 4527 4998 4528 case 16: 4999 5000 /* Line 1806 of yacc.c */ 5001 #line 340 "parser.yy" 5002 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].tok) ); } 4529 #line 340 "parser.yy" /* yacc.c:1646 */ 4530 { (yyval.constant) = build_constantStr( assign_strptr((yyvsp[0].tok)) ); } 4531 #line 4532 "Parser/parser.cc" /* yacc.c:1646 */ 5003 4532 break; 5004 4533 5005 4534 case 17: 5006 5007 /* Line 1806 of yacc.c */ 5008 #line 342 "parser.yy" 5009 { 5010 appendStr( (yyvsp[(1) - (2)].constant)->get_constant()->get_value(), (yyvsp[(2) - (2)].tok) ); 5011 delete (yyvsp[(2) - (2)].tok); // allocated by lexer 5012 (yyval.constant) = (yyvsp[(1) - (2)].constant); 4535 #line 342 "parser.yy" /* yacc.c:1646 */ 4536 { 4537 appendStr( (yyvsp[-1].constant)->get_constant()->get_value(), (yyvsp[0].tok) ); 4538 delete (yyvsp[0].tok); // allocated by lexer 4539 (yyval.constant) = (yyvsp[-1].constant); 5013 4540 } 4541 #line 4542 "Parser/parser.cc" /* yacc.c:1646 */ 5014 4542 break; 5015 4543 5016 4544 case 18: 5017 5018 /* Line 1806 of yacc.c */ 5019 #line 353 "parser.yy" 5020 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4545 #line 353 "parser.yy" /* yacc.c:1646 */ 4546 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4547 #line 4548 "Parser/parser.cc" /* yacc.c:1646 */ 5021 4548 break; 5022 4549 5023 4550 case 19: 5024 5025 /* Line 1806 of yacc.c */ 5026 #line 355 "parser.yy" 5027 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4551 #line 355 "parser.yy" /* yacc.c:1646 */ 4552 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4553 #line 4554 "Parser/parser.cc" /* yacc.c:1646 */ 5028 4554 break; 5029 4555 5030 4556 case 20: 5031 5032 /* Line 1806 of yacc.c */ 5033 #line 357 "parser.yy" 5034 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4557 #line 357 "parser.yy" /* yacc.c:1646 */ 4558 { (yyval.en) = (yyvsp[-1].en); } 4559 #line 4560 "Parser/parser.cc" /* yacc.c:1646 */ 5035 4560 break; 5036 4561 5037 4562 case 21: 5038 5039 /* Line 1806 of yacc.c */ 5040 #line 359 "parser.yy" 5041 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4563 #line 359 "parser.yy" /* yacc.c:1646 */ 4564 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[-1].sn) ) ); } 4565 #line 4566 "Parser/parser.cc" /* yacc.c:1646 */ 5042 4566 break; 5043 4567 5044 4568 case 23: 5045 5046 /* Line 1806 of yacc.c */ 5047 #line 369 "parser.yy" 5048 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4569 #line 369 "parser.yy" /* yacc.c:1646 */ 4570 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[-5].en), (yyvsp[-2].en) ) ); } 4571 #line 4572 "Parser/parser.cc" /* yacc.c:1646 */ 5049 4572 break; 5050 4573 5051 4574 case 24: 5052 5053 /* Line 1806 of yacc.c */ 5054 #line 371 "parser.yy" 5055 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4575 #line 371 "parser.yy" /* yacc.c:1646 */ 4576 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[-3].en), (yyvsp[-1].en) ) ); } 4577 #line 4578 "Parser/parser.cc" /* yacc.c:1646 */ 5056 4578 break; 5057 4579 5058 4580 case 25: 5059 5060 /* Line 1806 of yacc.c */ 5061 #line 375 "parser.yy" 5062 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4581 #line 375 "parser.yy" /* yacc.c:1646 */ 4582 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4583 #line 4584 "Parser/parser.cc" /* yacc.c:1646 */ 5063 4584 break; 5064 4585 5065 4586 case 27: 5066 5067 /* Line 1806 of yacc.c */ 5068 #line 378 "parser.yy" 5069 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4587 #line 378 "parser.yy" /* yacc.c:1646 */ 4588 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[0].tok) ) ) ); } 4589 #line 4590 "Parser/parser.cc" /* yacc.c:1646 */ 5070 4590 break; 5071 4591 5072 4592 case 29: 5073 5074 /* Line 1806 of yacc.c */ 5075 #line 381 "parser.yy" 5076 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 4593 #line 381 "parser.yy" /* yacc.c:1646 */ 4594 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[-1].en) ) ); } 4595 #line 4596 "Parser/parser.cc" /* yacc.c:1646 */ 5077 4596 break; 5078 4597 5079 4598 case 30: 5080 5081 /* Line 1806 of yacc.c */ 5082 #line 383 "parser.yy" 5083 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 4599 #line 383 "parser.yy" /* yacc.c:1646 */ 4600 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[-1].en) ) ); } 4601 #line 4602 "Parser/parser.cc" /* yacc.c:1646 */ 5084 4602 break; 5085 4603 5086 4604 case 31: 5087 5088 /* Line 1806 of yacc.c */ 5089 #line 385 "parser.yy" 5090 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 4605 #line 385 "parser.yy" /* yacc.c:1646 */ 4606 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[-5].decl), new InitializerNode( (yyvsp[-2].in), true ) ) ); } 4607 #line 4608 "Parser/parser.cc" /* yacc.c:1646 */ 5091 4608 break; 5092 4609 5093 4610 case 32: 5094 5095 /* Line 1806 of yacc.c */ 5096 #line 387 "parser.yy" 4611 #line 387 "parser.yy" /* yacc.c:1646 */ 5097 4612 { 5098 4613 Token fn; 5099 4614 fn.str = new std::string( "?{}" ); // location undefined 5100 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (1) - (4)].en) )->set_last( (yyvsp[(3) - (4)].en) ) ) );4615 (yyval.en) = new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-3].en) )->set_last( (yyvsp[-1].en) ) ) ); 5101 4616 } 4617 #line 4618 "Parser/parser.cc" /* yacc.c:1646 */ 5102 4618 break; 5103 4619 5104 4620 case 34: 5105 5106 /* Line 1806 of yacc.c */ 5107 #line 397 "parser.yy" 5108 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 4621 #line 397 "parser.yy" /* yacc.c:1646 */ 4622 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 4623 #line 4624 "Parser/parser.cc" /* yacc.c:1646 */ 5109 4624 break; 5110 4625 5111 4626 case 35: 5112 5113 /* Line 1806 of yacc.c */ 5114 #line 402 "parser.yy" 4627 #line 402 "parser.yy" /* yacc.c:1646 */ 5115 4628 { (yyval.en) = 0; } 4629 #line 4630 "Parser/parser.cc" /* yacc.c:1646 */ 5116 4630 break; 5117 4631 5118 4632 case 38: 5119 5120 /* Line 1806 of yacc.c */ 5121 #line 408 "parser.yy" 5122 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 4633 #line 408 "parser.yy" /* yacc.c:1646 */ 4634 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 4635 #line 4636 "Parser/parser.cc" /* yacc.c:1646 */ 5123 4636 break; 5124 4637 5125 4638 case 39: 5126 5127 /* Line 1806 of yacc.c */ 5128 #line 413 "parser.yy" 5129 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4639 #line 413 "parser.yy" /* yacc.c:1646 */ 4640 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 4641 #line 4642 "Parser/parser.cc" /* yacc.c:1646 */ 5130 4642 break; 5131 4643 5132 4644 case 40: 5133 5134 /* Line 1806 of yacc.c */ 5135 #line 417 "parser.yy" 5136 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4645 #line 417 "parser.yy" /* yacc.c:1646 */ 4646 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4647 #line 4648 "Parser/parser.cc" /* yacc.c:1646 */ 5137 4648 break; 5138 4649 5139 4650 case 41: 5140 5141 /* Line 1806 of yacc.c */ 5142 #line 419 "parser.yy" 5143 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4651 #line 419 "parser.yy" /* yacc.c:1646 */ 4652 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4653 #line 4654 "Parser/parser.cc" /* yacc.c:1646 */ 5144 4654 break; 5145 4655 5146 4656 case 42: 5147 5148 /* Line 1806 of yacc.c */ 5149 #line 421 "parser.yy" 5150 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(3) - (3)].en), build_varref( (yyvsp[(1) - (3)].tok) ) ) ); } 4657 #line 421 "parser.yy" /* yacc.c:1646 */ 4658 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[0].en), build_varref( (yyvsp[-2].tok) ) ) ); } 4659 #line 4660 "Parser/parser.cc" /* yacc.c:1646 */ 5151 4660 break; 5152 4661 5153 4662 case 43: 5154 5155 /* Line 1806 of yacc.c */ 5156 #line 423 "parser.yy" 5157 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(5) - (7)].en), build_varref( (yyvsp[(1) - (7)].tok) ) ) ); } 4663 #line 423 "parser.yy" /* yacc.c:1646 */ 4664 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[-2].en), build_varref( (yyvsp[-6].tok) ) ) ); } 4665 #line 4666 "Parser/parser.cc" /* yacc.c:1646 */ 5158 4666 break; 5159 4667 5160 4668 case 45: 5161 5162 /* Line 1806 of yacc.c */ 5163 #line 431 "parser.yy" 5164 { (yyval.en) = (yyvsp[(1) - (1)].en); } 4669 #line 431 "parser.yy" /* yacc.c:1646 */ 4670 { (yyval.en) = (yyvsp[0].en); } 4671 #line 4672 "Parser/parser.cc" /* yacc.c:1646 */ 5165 4672 break; 5166 4673 5167 4674 case 46: 5168 5169 /* Line 1806 of yacc.c */ 5170 #line 433 "parser.yy" 5171 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 4675 #line 433 "parser.yy" /* yacc.c:1646 */ 4676 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 4677 #line 4678 "Parser/parser.cc" /* yacc.c:1646 */ 5172 4678 break; 5173 4679 5174 4680 case 47: 5175 5176 /* Line 1806 of yacc.c */ 5177 #line 435 "parser.yy" 5178 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 4681 #line 435 "parser.yy" /* yacc.c:1646 */ 4682 { (yyval.en) = (yyvsp[0].en)->set_extension( true ); } 4683 #line 4684 "Parser/parser.cc" /* yacc.c:1646 */ 5179 4684 break; 5180 4685 5181 4686 case 48: 5182 5183 /* Line 1806 of yacc.c */ 5184 #line 440 "parser.yy" 5185 { 5186 switch ( (yyvsp[(1) - (2)].op) ) { 4687 #line 440 "parser.yy" /* yacc.c:1646 */ 4688 { 4689 switch ( (yyvsp[-1].op) ) { 5187 4690 case OperKinds::AddressOf: 5188 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[ (2) - (2)].en) ) );4691 (yyval.en) = new ExpressionNode( build_addressOf( (yyvsp[0].en) ) ); 5189 4692 break; 5190 4693 case OperKinds::PointTo: 5191 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[ (1) - (2)].op), (yyvsp[(2) - (2)].en) ) );4694 (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); 5192 4695 break; 5193 4696 default: … … 5195 4698 } 5196 4699 } 4700 #line 4701 "Parser/parser.cc" /* yacc.c:1646 */ 5197 4701 break; 5198 4702 5199 4703 case 49: 5200 5201 /* Line 1806 of yacc.c */ 5202 #line 453 "parser.yy" 5203 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 4704 #line 453 "parser.yy" /* yacc.c:1646 */ 4705 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[-1].op), (yyvsp[0].en) ) ); } 4706 #line 4707 "Parser/parser.cc" /* yacc.c:1646 */ 5204 4707 break; 5205 4708 5206 4709 case 50: 5207 5208 /* Line 1806 of yacc.c */ 5209 #line 455 "parser.yy" 5210 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 4710 #line 455 "parser.yy" /* yacc.c:1646 */ 4711 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[0].en) ) ); } 4712 #line 4713 "Parser/parser.cc" /* yacc.c:1646 */ 5211 4713 break; 5212 4714 5213 4715 case 51: 5214 5215 /* Line 1806 of yacc.c */ 5216 #line 457 "parser.yy" 5217 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 4716 #line 457 "parser.yy" /* yacc.c:1646 */ 4717 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[0].en) ) ); } 4718 #line 4719 "Parser/parser.cc" /* yacc.c:1646 */ 5218 4719 break; 5219 4720 5220 4721 case 52: 5221 5222 /* Line 1806 of yacc.c */ 5223 #line 459 "parser.yy" 5224 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4722 #line 459 "parser.yy" /* yacc.c:1646 */ 4723 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[0].en) ) ); } 4724 #line 4725 "Parser/parser.cc" /* yacc.c:1646 */ 5225 4725 break; 5226 4726 5227 4727 case 53: 5228 5229 /* Line 1806 of yacc.c */ 5230 #line 461 "parser.yy" 5231 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 4728 #line 461 "parser.yy" /* yacc.c:1646 */ 4729 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[-1].decl) ) ); } 4730 #line 4731 "Parser/parser.cc" /* yacc.c:1646 */ 5232 4731 break; 5233 4732 5234 4733 case 54: 5235 5236 /* Line 1806 of yacc.c */ 5237 #line 463 "parser.yy" 5238 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 4734 #line 463 "parser.yy" /* yacc.c:1646 */ 4735 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[0].en) ) ); } 4736 #line 4737 "Parser/parser.cc" /* yacc.c:1646 */ 5239 4737 break; 5240 4738 5241 4739 case 55: 5242 5243 /* Line 1806 of yacc.c */ 5244 #line 465 "parser.yy" 5245 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 4740 #line 465 "parser.yy" /* yacc.c:1646 */ 4741 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[-1].decl) ) ); } 4742 #line 4743 "Parser/parser.cc" /* yacc.c:1646 */ 5246 4743 break; 5247 4744 5248 4745 case 56: 5249 5250 /* Line 1806 of yacc.c */ 5251 #line 467 "parser.yy" 5252 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 4746 #line 467 "parser.yy" /* yacc.c:1646 */ 4747 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[-3].decl), build_varref( (yyvsp[-1].tok) ) ) ); } 4748 #line 4749 "Parser/parser.cc" /* yacc.c:1646 */ 5253 4749 break; 5254 4750 5255 4751 case 57: 5256 5257 /* Line 1806 of yacc.c */ 5258 #line 469 "parser.yy" 5259 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 4752 #line 469 "parser.yy" /* yacc.c:1646 */ 4753 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[0].tok) ), nullptr ) ); } 4754 #line 4755 "Parser/parser.cc" /* yacc.c:1646 */ 5260 4755 break; 5261 4756 5262 4757 case 58: 5263 5264 /* Line 1806 of yacc.c */ 5265 #line 471 "parser.yy" 5266 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 4758 #line 471 "parser.yy" /* yacc.c:1646 */ 4759 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].en) ) ); } 4760 #line 4761 "Parser/parser.cc" /* yacc.c:1646 */ 5267 4761 break; 5268 4762 5269 4763 case 59: 5270 5271 /* Line 1806 of yacc.c */ 5272 #line 473 "parser.yy" 5273 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 4764 #line 473 "parser.yy" /* yacc.c:1646 */ 4765 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[-3].tok) ), (yyvsp[-1].decl) ) ); } 4766 #line 4767 "Parser/parser.cc" /* yacc.c:1646 */ 5274 4767 break; 5275 4768 5276 4769 case 60: 5277 5278 /* Line 1806 of yacc.c */ 5279 #line 479 "parser.yy" 4770 #line 479 "parser.yy" /* yacc.c:1646 */ 5280 4771 { (yyval.op) = OperKinds::PointTo; } 4772 #line 4773 "Parser/parser.cc" /* yacc.c:1646 */ 5281 4773 break; 5282 4774 5283 4775 case 61: 5284 5285 /* Line 1806 of yacc.c */ 5286 #line 480 "parser.yy" 4776 #line 480 "parser.yy" /* yacc.c:1646 */ 5287 4777 { (yyval.op) = OperKinds::AddressOf; } 4778 #line 4779 "Parser/parser.cc" /* yacc.c:1646 */ 5288 4779 break; 5289 4780 5290 4781 case 62: 5291 5292 /* Line 1806 of yacc.c */ 5293 #line 486 "parser.yy" 4782 #line 486 "parser.yy" /* yacc.c:1646 */ 5294 4783 { (yyval.op) = OperKinds::UnPlus; } 4784 #line 4785 "Parser/parser.cc" /* yacc.c:1646 */ 5295 4785 break; 5296 4786 5297 4787 case 63: 5298 5299 /* Line 1806 of yacc.c */ 5300 #line 487 "parser.yy" 4788 #line 487 "parser.yy" /* yacc.c:1646 */ 5301 4789 { (yyval.op) = OperKinds::UnMinus; } 4790 #line 4791 "Parser/parser.cc" /* yacc.c:1646 */ 5302 4791 break; 5303 4792 5304 4793 case 64: 5305 5306 /* Line 1806 of yacc.c */ 5307 #line 488 "parser.yy" 4794 #line 488 "parser.yy" /* yacc.c:1646 */ 5308 4795 { (yyval.op) = OperKinds::Neg; } 4796 #line 4797 "Parser/parser.cc" /* yacc.c:1646 */ 5309 4797 break; 5310 4798 5311 4799 case 65: 5312 5313 /* Line 1806 of yacc.c */ 5314 #line 489 "parser.yy" 4800 #line 489 "parser.yy" /* yacc.c:1646 */ 5315 4801 { (yyval.op) = OperKinds::BitNeg; } 4802 #line 4803 "Parser/parser.cc" /* yacc.c:1646 */ 5316 4803 break; 5317 4804 5318 4805 case 67: 5319 5320 /* Line 1806 of yacc.c */ 5321 #line 495 "parser.yy" 5322 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4806 #line 495 "parser.yy" /* yacc.c:1646 */ 4807 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4808 #line 4809 "Parser/parser.cc" /* yacc.c:1646 */ 5323 4809 break; 5324 4810 5325 4811 case 68: 5326 5327 /* Line 1806 of yacc.c */ 5328 #line 497 "parser.yy" 5329 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 4812 #line 497 "parser.yy" /* yacc.c:1646 */ 4813 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[-2].decl), (yyvsp[0].en) ) ); } 4814 #line 4815 "Parser/parser.cc" /* yacc.c:1646 */ 5330 4815 break; 5331 4816 5332 4817 case 70: 5333 5334 /* Line 1806 of yacc.c */ 5335 #line 503 "parser.yy" 5336 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4818 #line 503 "parser.yy" /* yacc.c:1646 */ 4819 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4820 #line 4821 "Parser/parser.cc" /* yacc.c:1646 */ 5337 4821 break; 5338 4822 5339 4823 case 71: 5340 5341 /* Line 1806 of yacc.c */ 5342 #line 505 "parser.yy" 5343 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4824 #line 505 "parser.yy" /* yacc.c:1646 */ 4825 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4826 #line 4827 "Parser/parser.cc" /* yacc.c:1646 */ 5344 4827 break; 5345 4828 5346 4829 case 72: 5347 5348 /* Line 1806 of yacc.c */ 5349 #line 507 "parser.yy" 5350 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4830 #line 507 "parser.yy" /* yacc.c:1646 */ 4831 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4832 #line 4833 "Parser/parser.cc" /* yacc.c:1646 */ 5351 4833 break; 5352 4834 5353 4835 case 74: 5354 5355 /* Line 1806 of yacc.c */ 5356 #line 513 "parser.yy" 5357 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4836 #line 513 "parser.yy" /* yacc.c:1646 */ 4837 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4838 #line 4839 "Parser/parser.cc" /* yacc.c:1646 */ 5358 4839 break; 5359 4840 5360 4841 case 75: 5361 5362 /* Line 1806 of yacc.c */ 5363 #line 515 "parser.yy" 5364 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4842 #line 515 "parser.yy" /* yacc.c:1646 */ 4843 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4844 #line 4845 "Parser/parser.cc" /* yacc.c:1646 */ 5365 4845 break; 5366 4846 5367 4847 case 77: 5368 5369 /* Line 1806 of yacc.c */ 5370 #line 521 "parser.yy" 5371 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4848 #line 521 "parser.yy" /* yacc.c:1646 */ 4849 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4850 #line 4851 "Parser/parser.cc" /* yacc.c:1646 */ 5372 4851 break; 5373 4852 5374 4853 case 78: 5375 5376 /* Line 1806 of yacc.c */ 5377 #line 523 "parser.yy" 5378 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4854 #line 523 "parser.yy" /* yacc.c:1646 */ 4855 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4856 #line 4857 "Parser/parser.cc" /* yacc.c:1646 */ 5379 4857 break; 5380 4858 5381 4859 case 80: 5382 5383 /* Line 1806 of yacc.c */ 5384 #line 529 "parser.yy" 5385 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4860 #line 529 "parser.yy" /* yacc.c:1646 */ 4861 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4862 #line 4863 "Parser/parser.cc" /* yacc.c:1646 */ 5386 4863 break; 5387 4864 5388 4865 case 81: 5389 5390 /* Line 1806 of yacc.c */ 5391 #line 531 "parser.yy" 5392 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4866 #line 531 "parser.yy" /* yacc.c:1646 */ 4867 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4868 #line 4869 "Parser/parser.cc" /* yacc.c:1646 */ 5393 4869 break; 5394 4870 5395 4871 case 82: 5396 5397 /* Line 1806 of yacc.c */ 5398 #line 533 "parser.yy" 5399 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4872 #line 533 "parser.yy" /* yacc.c:1646 */ 4873 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4874 #line 4875 "Parser/parser.cc" /* yacc.c:1646 */ 5400 4875 break; 5401 4876 5402 4877 case 83: 5403 5404 /* Line 1806 of yacc.c */ 5405 #line 535 "parser.yy" 5406 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4878 #line 535 "parser.yy" /* yacc.c:1646 */ 4879 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4880 #line 4881 "Parser/parser.cc" /* yacc.c:1646 */ 5407 4881 break; 5408 4882 5409 4883 case 85: 5410 5411 /* Line 1806 of yacc.c */ 5412 #line 541 "parser.yy" 5413 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4884 #line 541 "parser.yy" /* yacc.c:1646 */ 4885 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4886 #line 4887 "Parser/parser.cc" /* yacc.c:1646 */ 5414 4887 break; 5415 4888 5416 4889 case 86: 5417 5418 /* Line 1806 of yacc.c */ 5419 #line 543 "parser.yy" 5420 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4890 #line 543 "parser.yy" /* yacc.c:1646 */ 4891 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4892 #line 4893 "Parser/parser.cc" /* yacc.c:1646 */ 5421 4893 break; 5422 4894 5423 4895 case 88: 5424 5425 /* Line 1806 of yacc.c */ 5426 #line 549 "parser.yy" 5427 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4896 #line 549 "parser.yy" /* yacc.c:1646 */ 4897 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4898 #line 4899 "Parser/parser.cc" /* yacc.c:1646 */ 5428 4899 break; 5429 4900 5430 4901 case 90: 5431 5432 /* Line 1806 of yacc.c */ 5433 #line 555 "parser.yy" 5434 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4902 #line 555 "parser.yy" /* yacc.c:1646 */ 4903 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4904 #line 4905 "Parser/parser.cc" /* yacc.c:1646 */ 5435 4905 break; 5436 4906 5437 4907 case 92: 5438 5439 /* Line 1806 of yacc.c */ 5440 #line 561 "parser.yy" 5441 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4908 #line 561 "parser.yy" /* yacc.c:1646 */ 4909 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4910 #line 4911 "Parser/parser.cc" /* yacc.c:1646 */ 5442 4911 break; 5443 4912 5444 4913 case 94: 5445 5446 /* Line 1806 of yacc.c */ 5447 #line 567 "parser.yy" 5448 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 4914 #line 567 "parser.yy" /* yacc.c:1646 */ 4915 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), true ) ); } 4916 #line 4917 "Parser/parser.cc" /* yacc.c:1646 */ 5449 4917 break; 5450 4918 5451 4919 case 96: 5452 5453 /* Line 1806 of yacc.c */ 5454 #line 573 "parser.yy" 5455 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 4920 #line 573 "parser.yy" /* yacc.c:1646 */ 4921 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[-2].en), (yyvsp[0].en), false ) ); } 4922 #line 4923 "Parser/parser.cc" /* yacc.c:1646 */ 5456 4923 break; 5457 4924 5458 4925 case 98: 5459 5460 /* Line 1806 of yacc.c */ 5461 #line 579 "parser.yy" 5462 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4926 #line 579 "parser.yy" /* yacc.c:1646 */ 4927 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4928 #line 4929 "Parser/parser.cc" /* yacc.c:1646 */ 5463 4929 break; 5464 4930 5465 4931 case 99: 5466 5467 /* Line 1806 of yacc.c */ 5468 #line 582 "parser.yy" 5469 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 4932 #line 582 "parser.yy" /* yacc.c:1646 */ 4933 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-3].en), (yyvsp[-3].en), (yyvsp[0].en) ) ); } 4934 #line 4935 "Parser/parser.cc" /* yacc.c:1646 */ 5470 4935 break; 5471 4936 5472 4937 case 100: 5473 5474 /* Line 1806 of yacc.c */ 5475 #line 584 "parser.yy" 5476 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 4938 #line 584 "parser.yy" /* yacc.c:1646 */ 4939 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[-4].en), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4940 #line 4941 "Parser/parser.cc" /* yacc.c:1646 */ 5477 4941 break; 5478 4942 5479 4943 case 103: 5480 5481 /* Line 1806 of yacc.c */ 5482 #line 595 "parser.yy" 5483 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 4944 #line 595 "parser.yy" /* yacc.c:1646 */ 4945 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[-1].op), (yyvsp[-2].en), (yyvsp[0].en) ) ); } 4946 #line 4947 "Parser/parser.cc" /* yacc.c:1646 */ 5484 4947 break; 5485 4948 5486 4949 case 104: 5487 5488 /* Line 1806 of yacc.c */ 5489 #line 597 "parser.yy" 5490 { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); } 4950 #line 597 "parser.yy" /* yacc.c:1646 */ 4951 { (yyval.en) = ( (yyvsp[0].en) == 0 ) ? (yyvsp[-1].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[-1].en), (yyvsp[0].en) ) ); } 4952 #line 4953 "Parser/parser.cc" /* yacc.c:1646 */ 5491 4953 break; 5492 4954 5493 4955 case 105: 5494 5495 /* Line 1806 of yacc.c */ 5496 #line 602 "parser.yy" 4956 #line 602 "parser.yy" /* yacc.c:1646 */ 5497 4957 { (yyval.en) = nullptr; } 4958 #line 4959 "Parser/parser.cc" /* yacc.c:1646 */ 5498 4959 break; 5499 4960 5500 4961 case 107: 5501 5502 /* Line 1806 of yacc.c */ 5503 #line 607 "parser.yy" 4962 #line 607 "parser.yy" /* yacc.c:1646 */ 5504 4963 { (yyval.op) = OperKinds::Assign; } 4964 #line 4965 "Parser/parser.cc" /* yacc.c:1646 */ 5505 4965 break; 5506 4966 5507 4967 case 108: 5508 5509 /* Line 1806 of yacc.c */ 5510 #line 608 "parser.yy" 4968 #line 608 "parser.yy" /* yacc.c:1646 */ 5511 4969 { (yyval.op) = OperKinds::MulAssn; } 4970 #line 4971 "Parser/parser.cc" /* yacc.c:1646 */ 5512 4971 break; 5513 4972 5514 4973 case 109: 5515 5516 /* Line 1806 of yacc.c */ 5517 #line 609 "parser.yy" 4974 #line 609 "parser.yy" /* yacc.c:1646 */ 5518 4975 { (yyval.op) = OperKinds::DivAssn; } 4976 #line 4977 "Parser/parser.cc" /* yacc.c:1646 */ 5519 4977 break; 5520 4978 5521 4979 case 110: 5522 5523 /* Line 1806 of yacc.c */ 5524 #line 610 "parser.yy" 4980 #line 610 "parser.yy" /* yacc.c:1646 */ 5525 4981 { (yyval.op) = OperKinds::ModAssn; } 4982 #line 4983 "Parser/parser.cc" /* yacc.c:1646 */ 5526 4983 break; 5527 4984 5528 4985 case 111: 5529 5530 /* Line 1806 of yacc.c */ 5531 #line 611 "parser.yy" 4986 #line 611 "parser.yy" /* yacc.c:1646 */ 5532 4987 { (yyval.op) = OperKinds::PlusAssn; } 4988 #line 4989 "Parser/parser.cc" /* yacc.c:1646 */ 5533 4989 break; 5534 4990 5535 4991 case 112: 5536 5537 /* Line 1806 of yacc.c */ 5538 #line 612 "parser.yy" 4992 #line 612 "parser.yy" /* yacc.c:1646 */ 5539 4993 { (yyval.op) = OperKinds::MinusAssn; } 4994 #line 4995 "Parser/parser.cc" /* yacc.c:1646 */ 5540 4995 break; 5541 4996 5542 4997 case 113: 5543 5544 /* Line 1806 of yacc.c */ 5545 #line 613 "parser.yy" 4998 #line 613 "parser.yy" /* yacc.c:1646 */ 5546 4999 { (yyval.op) = OperKinds::LSAssn; } 5000 #line 5001 "Parser/parser.cc" /* yacc.c:1646 */ 5547 5001 break; 5548 5002 5549 5003 case 114: 5550 5551 /* Line 1806 of yacc.c */ 5552 #line 614 "parser.yy" 5004 #line 614 "parser.yy" /* yacc.c:1646 */ 5553 5005 { (yyval.op) = OperKinds::RSAssn; } 5006 #line 5007 "Parser/parser.cc" /* yacc.c:1646 */ 5554 5007 break; 5555 5008 5556 5009 case 115: 5557 5558 /* Line 1806 of yacc.c */ 5559 #line 615 "parser.yy" 5010 #line 615 "parser.yy" /* yacc.c:1646 */ 5560 5011 { (yyval.op) = OperKinds::AndAssn; } 5012 #line 5013 "Parser/parser.cc" /* yacc.c:1646 */ 5561 5013 break; 5562 5014 5563 5015 case 116: 5564 5565 /* Line 1806 of yacc.c */ 5566 #line 616 "parser.yy" 5016 #line 616 "parser.yy" /* yacc.c:1646 */ 5567 5017 { (yyval.op) = OperKinds::ERAssn; } 5018 #line 5019 "Parser/parser.cc" /* yacc.c:1646 */ 5568 5019 break; 5569 5020 5570 5021 case 117: 5571 5572 /* Line 1806 of yacc.c */ 5573 #line 617 "parser.yy" 5022 #line 617 "parser.yy" /* yacc.c:1646 */ 5574 5023 { (yyval.op) = OperKinds::OrAssn; } 5024 #line 5025 "Parser/parser.cc" /* yacc.c:1646 */ 5575 5025 break; 5576 5026 5577 5027 case 118: 5578 5579 /* Line 1806 of yacc.c */ 5580 #line 624 "parser.yy" 5028 #line 624 "parser.yy" /* yacc.c:1646 */ 5581 5029 { (yyval.en) = new ExpressionNode( build_tuple() ); } 5030 #line 5031 "Parser/parser.cc" /* yacc.c:1646 */ 5582 5031 break; 5583 5032 5584 5033 case 119: 5585 5586 /* Line 1806 of yacc.c */ 5587 #line 626 "parser.yy" 5588 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); } 5034 #line 626 "parser.yy" /* yacc.c:1646 */ 5035 { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[-2].en) ) ); } 5036 #line 5037 "Parser/parser.cc" /* yacc.c:1646 */ 5589 5037 break; 5590 5038 5591 5039 case 120: 5592 5593 /* Line 1806 of yacc.c */ 5594 #line 628 "parser.yy" 5595 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5040 #line 628 "parser.yy" /* yacc.c:1646 */ 5041 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[-2].en) ) ) ); } 5042 #line 5043 "Parser/parser.cc" /* yacc.c:1646 */ 5596 5043 break; 5597 5044 5598 5045 case 121: 5599 5600 /* Line 1806 of yacc.c */ 5601 #line 630 "parser.yy" 5602 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5046 #line 630 "parser.yy" /* yacc.c:1646 */ 5047 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[-4].en)->set_last( (yyvsp[-2].en) ) ) ); } 5048 #line 5049 "Parser/parser.cc" /* yacc.c:1646 */ 5603 5049 break; 5604 5050 5605 5051 case 123: 5606 5607 /* Line 1806 of yacc.c */ 5608 #line 636 "parser.yy" 5609 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5052 #line 636 "parser.yy" /* yacc.c:1646 */ 5053 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5054 #line 5055 "Parser/parser.cc" /* yacc.c:1646 */ 5610 5055 break; 5611 5056 5612 5057 case 125: 5613 5614 /* Line 1806 of yacc.c */ 5615 #line 642 "parser.yy" 5616 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5058 #line 642 "parser.yy" /* yacc.c:1646 */ 5059 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5060 #line 5061 "Parser/parser.cc" /* yacc.c:1646 */ 5617 5061 break; 5618 5062 5619 5063 case 126: 5620 5621 /* Line 1806 of yacc.c */ 5622 #line 647 "parser.yy" 5064 #line 647 "parser.yy" /* yacc.c:1646 */ 5623 5065 { (yyval.en) = 0; } 5066 #line 5067 "Parser/parser.cc" /* yacc.c:1646 */ 5624 5067 break; 5625 5068 5626 5069 case 130: 5627 5628 /* Line 1806 of yacc.c */ 5629 #line 656 "parser.yy" 5630 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5070 #line 656 "parser.yy" /* yacc.c:1646 */ 5071 { (yyval.sn) = (yyvsp[0].sn); } 5072 #line 5073 "Parser/parser.cc" /* yacc.c:1646 */ 5631 5073 break; 5632 5074 5633 5075 case 136: 5634 5635 /* Line 1806 of yacc.c */ 5636 #line 663 "parser.yy" 5076 #line 663 "parser.yy" /* yacc.c:1646 */ 5637 5077 { 5638 5078 Token fn; 5639 5079 fn.str = new std::string( "^?{}" ); // location undefined 5640 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[ (2) - (6)].en) )->set_last( (yyvsp[(4) - (6)].en) ) ) ) ) );5080 (yyval.sn) = new StatementNode( build_expr( new ExpressionNode( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( (yyvsp[-4].en) )->set_last( (yyvsp[-2].en) ) ) ) ) ); 5641 5081 } 5082 #line 5083 "Parser/parser.cc" /* yacc.c:1646 */ 5642 5083 break; 5643 5084 5644 5085 case 137: 5645 5646 /* Line 1806 of yacc.c */ 5647 #line 673 "parser.yy" 5648 { 5649 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); 5086 #line 673 "parser.yy" /* yacc.c:1646 */ 5087 { 5088 (yyval.sn) = (yyvsp[0].sn)->add_label( (yyvsp[-3].tok) ); 5650 5089 } 5090 #line 5091 "Parser/parser.cc" /* yacc.c:1646 */ 5651 5091 break; 5652 5092 5653 5093 case 138: 5654 5655 /* Line 1806 of yacc.c */ 5656 #line 680 "parser.yy" 5094 #line 680 "parser.yy" /* yacc.c:1646 */ 5657 5095 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5096 #line 5097 "Parser/parser.cc" /* yacc.c:1646 */ 5658 5097 break; 5659 5098 5660 5099 case 139: 5661 5662 /* Line 1806 of yacc.c */ 5663 #line 687 "parser.yy" 5664 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5100 #line 687 "parser.yy" /* yacc.c:1646 */ 5101 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[-2].sn) ) ); } 5102 #line 5103 "Parser/parser.cc" /* yacc.c:1646 */ 5665 5103 break; 5666 5104 5667 5105 case 141: 5668 5669 /* Line 1806 of yacc.c */ 5670 #line 693 "parser.yy" 5671 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5106 #line 693 "parser.yy" /* yacc.c:1646 */ 5107 { if ( (yyvsp[-2].sn) != 0 ) { (yyvsp[-2].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-2].sn); } } 5108 #line 5109 "Parser/parser.cc" /* yacc.c:1646 */ 5672 5109 break; 5673 5110 5674 5111 case 142: 5675 5676 /* Line 1806 of yacc.c */ 5677 #line 698 "parser.yy" 5678 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5112 #line 698 "parser.yy" /* yacc.c:1646 */ 5113 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5114 #line 5115 "Parser/parser.cc" /* yacc.c:1646 */ 5679 5115 break; 5680 5116 5681 5117 case 143: 5682 5683 /* Line 1806 of yacc.c */ 5684 #line 700 "parser.yy" 5118 #line 700 "parser.yy" /* yacc.c:1646 */ 5685 5119 { // mark all fields in list 5686 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )5120 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5687 5121 iter->set_extension( true ); 5688 (yyval.sn) = new StatementNode( (yyvsp[ (2) - (2)].decl) );5122 (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); 5689 5123 } 5124 #line 5125 "Parser/parser.cc" /* yacc.c:1646 */ 5690 5125 break; 5691 5126 5692 5127 case 144: 5693 5694 /* Line 1806 of yacc.c */ 5695 #line 706 "parser.yy" 5696 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5128 #line 706 "parser.yy" /* yacc.c:1646 */ 5129 { (yyval.sn) = new StatementNode( (yyvsp[0].decl) ); } 5130 #line 5131 "Parser/parser.cc" /* yacc.c:1646 */ 5697 5131 break; 5698 5132 5699 5133 case 147: 5700 5701 /* Line 1806 of yacc.c */ 5702 #line 713 "parser.yy" 5703 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5134 #line 713 "parser.yy" /* yacc.c:1646 */ 5135 { if ( (yyvsp[-1].sn) != 0 ) { (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ); (yyval.sn) = (yyvsp[-1].sn); } } 5136 #line 5137 "Parser/parser.cc" /* yacc.c:1646 */ 5704 5137 break; 5705 5138 5706 5139 case 148: 5707 5708 /* Line 1806 of yacc.c */ 5709 #line 718 "parser.yy" 5710 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5140 #line 718 "parser.yy" /* yacc.c:1646 */ 5141 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[-1].en) ) ); } 5142 #line 5143 "Parser/parser.cc" /* yacc.c:1646 */ 5711 5143 break; 5712 5144 5713 5145 case 149: 5714 5715 /* Line 1806 of yacc.c */ 5716 #line 724 "parser.yy" 5717 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5146 #line 724 "parser.yy" /* yacc.c:1646 */ 5147 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-2].en), (yyvsp[0].sn), nullptr ) ); } 5148 #line 5149 "Parser/parser.cc" /* yacc.c:1646 */ 5718 5149 break; 5719 5150 5720 5151 case 150: 5721 5722 /* Line 1806 of yacc.c */ 5723 #line 726 "parser.yy" 5724 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5152 #line 726 "parser.yy" /* yacc.c:1646 */ 5153 { (yyval.sn) = new StatementNode( build_if( (yyvsp[-4].en), (yyvsp[-2].sn), (yyvsp[0].sn) ) ); } 5154 #line 5155 "Parser/parser.cc" /* yacc.c:1646 */ 5725 5155 break; 5726 5156 5727 5157 case 151: 5728 5729 /* Line 1806 of yacc.c */ 5730 #line 728 "parser.yy" 5731 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5158 #line 728 "parser.yy" /* yacc.c:1646 */ 5159 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5160 #line 5161 "Parser/parser.cc" /* yacc.c:1646 */ 5732 5161 break; 5733 5162 5734 5163 case 152: 5735 5736 /* Line 1806 of yacc.c */ 5737 #line 730 "parser.yy" 5738 { 5739 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5164 #line 730 "parser.yy" /* yacc.c:1646 */ 5165 { 5166 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5740 5167 // The semantics of the declaration list is changed to include associated initialization, which is performed 5741 5168 // *before* the transfer to the appropriate case clause by hoisting the declarations into a compound … … 5743 5170 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5744 5171 // statement. 5745 (yyval.sn) = (yyvsp[ (7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5172 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5746 5173 } 5174 #line 5175 "Parser/parser.cc" /* yacc.c:1646 */ 5747 5175 break; 5748 5176 5749 5177 case 153: 5750 5751 /* Line 1806 of yacc.c */ 5752 #line 740 "parser.yy" 5753 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5178 #line 740 "parser.yy" /* yacc.c:1646 */ 5179 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5180 #line 5181 "Parser/parser.cc" /* yacc.c:1646 */ 5754 5181 break; 5755 5182 5756 5183 case 154: 5757 5758 /* Line 1806 of yacc.c */ 5759 #line 742 "parser.yy" 5760 { 5761 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5762 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5184 #line 742 "parser.yy" /* yacc.c:1646 */ 5185 { 5186 StatementNode *sw = new StatementNode( build_switch( (yyvsp[-6].en), (yyvsp[-1].sn) ) ); 5187 (yyval.sn) = (yyvsp[-2].decl) != 0 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[-2].decl) ))->set_last( sw )) ) ) : sw; 5763 5188 } 5189 #line 5190 "Parser/parser.cc" /* yacc.c:1646 */ 5764 5190 break; 5765 5191 5766 5192 case 155: 5767 5768 /* Line 1806 of yacc.c */ 5769 #line 752 "parser.yy" 5770 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5193 #line 752 "parser.yy" /* yacc.c:1646 */ 5194 { (yyval.en) = (yyvsp[0].en); } 5195 #line 5196 "Parser/parser.cc" /* yacc.c:1646 */ 5771 5196 break; 5772 5197 5773 5198 case 156: 5774 5775 /* Line 1806 of yacc.c */ 5776 #line 754 "parser.yy" 5777 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5199 #line 754 "parser.yy" /* yacc.c:1646 */ 5200 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 5201 #line 5202 "Parser/parser.cc" /* yacc.c:1646 */ 5778 5202 break; 5779 5203 5780 5204 case 158: 5781 5782 /* Line 1806 of yacc.c */ 5783 #line 759 "parser.yy" 5784 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5205 #line 759 "parser.yy" /* yacc.c:1646 */ 5206 { (yyval.sn) = new StatementNode( build_case( (yyvsp[0].en) ) ); } 5207 #line 5208 "Parser/parser.cc" /* yacc.c:1646 */ 5785 5208 break; 5786 5209 5787 5210 case 159: 5788 5789 /* Line 1806 of yacc.c */ 5790 #line 761 "parser.yy" 5791 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5211 #line 761 "parser.yy" /* yacc.c:1646 */ 5212 { (yyval.sn) = (StatementNode *)((yyvsp[-2].sn)->set_last( new StatementNode( build_case( (yyvsp[0].en) ) ) ) ); } 5213 #line 5214 "Parser/parser.cc" /* yacc.c:1646 */ 5792 5214 break; 5793 5215 5794 5216 case 160: 5795 5796 /* Line 1806 of yacc.c */ 5797 #line 765 "parser.yy" 5798 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5217 #line 765 "parser.yy" /* yacc.c:1646 */ 5218 { (yyval.sn) = (yyvsp[-1].sn); } 5219 #line 5220 "Parser/parser.cc" /* yacc.c:1646 */ 5799 5220 break; 5800 5221 5801 5222 case 161: 5802 5803 /* Line 1806 of yacc.c */ 5804 #line 766 "parser.yy" 5223 #line 766 "parser.yy" /* yacc.c:1646 */ 5805 5224 { (yyval.sn) = new StatementNode( build_default() ); } 5225 #line 5226 "Parser/parser.cc" /* yacc.c:1646 */ 5806 5226 break; 5807 5227 5808 5228 case 163: 5809 5810 /* Line 1806 of yacc.c */ 5811 #line 772 "parser.yy" 5812 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5229 #line 772 "parser.yy" /* yacc.c:1646 */ 5230 { (yyval.sn) = (StatementNode *)( (yyvsp[-1].sn)->set_last( (yyvsp[0].sn) )); } 5231 #line 5232 "Parser/parser.cc" /* yacc.c:1646 */ 5813 5232 break; 5814 5233 5815 5234 case 164: 5816 5817 /* Line 1806 of yacc.c */ 5818 #line 776 "parser.yy" 5819 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5235 #line 776 "parser.yy" /* yacc.c:1646 */ 5236 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5237 #line 5238 "Parser/parser.cc" /* yacc.c:1646 */ 5820 5238 break; 5821 5239 5822 5240 case 165: 5823 5824 /* Line 1806 of yacc.c */ 5825 #line 781 "parser.yy" 5241 #line 781 "parser.yy" /* yacc.c:1646 */ 5826 5242 { (yyval.sn) = 0; } 5243 #line 5244 "Parser/parser.cc" /* yacc.c:1646 */ 5827 5244 break; 5828 5245 5829 5246 case 167: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 787 "parser.yy" 5833 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5247 #line 787 "parser.yy" /* yacc.c:1646 */ 5248 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ); } 5249 #line 5250 "Parser/parser.cc" /* yacc.c:1646 */ 5834 5250 break; 5835 5251 5836 5252 case 168: 5837 5838 /* Line 1806 of yacc.c */ 5839 #line 789 "parser.yy" 5840 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5253 #line 789 "parser.yy" /* yacc.c:1646 */ 5254 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[0].sn) ) ) ) ) ); } 5255 #line 5256 "Parser/parser.cc" /* yacc.c:1646 */ 5841 5256 break; 5842 5257 5843 5258 case 169: 5844 5845 /* Line 1806 of yacc.c */ 5846 #line 794 "parser.yy" 5259 #line 794 "parser.yy" /* yacc.c:1646 */ 5847 5260 { (yyval.sn) = 0; } 5261 #line 5262 "Parser/parser.cc" /* yacc.c:1646 */ 5848 5262 break; 5849 5263 5850 5264 case 171: 5851 5852 /* Line 1806 of yacc.c */ 5853 #line 800 "parser.yy" 5854 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5265 #line 800 "parser.yy" /* yacc.c:1646 */ 5266 { (yyval.sn) = (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ); } 5267 #line 5268 "Parser/parser.cc" /* yacc.c:1646 */ 5855 5268 break; 5856 5269 5857 5270 case 172: 5858 5859 /* Line 1806 of yacc.c */ 5860 #line 802 "parser.yy" 5861 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5271 #line 802 "parser.yy" /* yacc.c:1646 */ 5272 { (yyval.sn) = (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ); } 5273 #line 5274 "Parser/parser.cc" /* yacc.c:1646 */ 5862 5274 break; 5863 5275 5864 5276 case 173: 5865 5866 /* Line 1806 of yacc.c */ 5867 #line 804 "parser.yy" 5868 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5277 #line 804 "parser.yy" /* yacc.c:1646 */ 5278 { (yyval.sn) = (StatementNode *)( (yyvsp[-2].sn)->set_last( (yyvsp[-1].sn)->append_last_case( (yyvsp[0].sn) ))); } 5279 #line 5280 "Parser/parser.cc" /* yacc.c:1646 */ 5869 5280 break; 5870 5281 5871 5282 case 174: 5872 5873 /* Line 1806 of yacc.c */ 5874 #line 806 "parser.yy" 5875 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); } 5283 #line 806 "parser.yy" /* yacc.c:1646 */ 5284 { (yyval.sn) = (StatementNode *)( (yyvsp[-3].sn)->set_last( (yyvsp[-2].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[-1].sn)->set_last( (yyvsp[0].sn) ) ) ) ) ) ); } 5285 #line 5286 "Parser/parser.cc" /* yacc.c:1646 */ 5876 5286 break; 5877 5287 5878 5288 case 175: 5879 5880 /* Line 1806 of yacc.c */ 5881 #line 811 "parser.yy" 5289 #line 811 "parser.yy" /* yacc.c:1646 */ 5882 5290 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); } 5291 #line 5292 "Parser/parser.cc" /* yacc.c:1646 */ 5883 5292 break; 5884 5293 5885 5294 case 177: 5886 5887 /* Line 1806 of yacc.c */ 5888 #line 817 "parser.yy" 5295 #line 817 "parser.yy" /* yacc.c:1646 */ 5889 5296 { (yyval.sn) = 0; } 5297 #line 5298 "Parser/parser.cc" /* yacc.c:1646 */ 5890 5298 break; 5891 5299 5892 5300 case 178: 5893 5894 /* Line 1806 of yacc.c */ 5895 #line 819 "parser.yy" 5301 #line 819 "parser.yy" /* yacc.c:1646 */ 5896 5302 { (yyval.sn) = 0; } 5303 #line 5304 "Parser/parser.cc" /* yacc.c:1646 */ 5897 5304 break; 5898 5305 5899 5306 case 179: 5900 5901 /* Line 1806 of yacc.c */ 5902 #line 824 "parser.yy" 5903 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5307 #line 824 "parser.yy" /* yacc.c:1646 */ 5308 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[0].sn) ) ); } 5309 #line 5310 "Parser/parser.cc" /* yacc.c:1646 */ 5904 5310 break; 5905 5311 5906 5312 case 180: 5907 5908 /* Line 1806 of yacc.c */ 5909 #line 826 "parser.yy" 5910 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn) ) ); } 5313 #line 826 "parser.yy" /* yacc.c:1646 */ 5314 { (yyval.sn) = new StatementNode( build_while( (yyvsp[-2].en), (yyvsp[-5].sn) ) ); } 5315 #line 5316 "Parser/parser.cc" /* yacc.c:1646 */ 5911 5316 break; 5912 5317 5913 5318 case 181: 5914 5915 /* Line 1806 of yacc.c */ 5916 #line 828 "parser.yy" 5917 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5319 #line 828 "parser.yy" /* yacc.c:1646 */ 5320 { (yyval.sn) = new StatementNode( build_for( (yyvsp[-2].fctl), (yyvsp[0].sn) ) ); } 5321 #line 5322 "Parser/parser.cc" /* yacc.c:1646 */ 5918 5322 break; 5919 5323 5920 5324 case 182: 5921 5922 /* Line 1806 of yacc.c */ 5923 #line 833 "parser.yy" 5924 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5325 #line 833 "parser.yy" /* yacc.c:1646 */ 5326 { (yyval.fctl) = new ForCtl( (yyvsp[-5].en), (yyvsp[-2].en), (yyvsp[0].en) ); } 5327 #line 5328 "Parser/parser.cc" /* yacc.c:1646 */ 5925 5328 break; 5926 5329 5927 5330 case 183: 5928 5929 /* Line 1806 of yacc.c */ 5930 #line 835 "parser.yy" 5931 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5331 #line 835 "parser.yy" /* yacc.c:1646 */ 5332 { (yyval.fctl) = new ForCtl( (yyvsp[-3].decl), (yyvsp[-2].en), (yyvsp[0].en) ); } 5333 #line 5334 "Parser/parser.cc" /* yacc.c:1646 */ 5932 5334 break; 5933 5335 5934 5336 case 184: 5935 5936 /* Line 1806 of yacc.c */ 5937 #line 840 "parser.yy" 5938 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5337 #line 840 "parser.yy" /* yacc.c:1646 */ 5338 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Goto ) ); } 5339 #line 5340 "Parser/parser.cc" /* yacc.c:1646 */ 5939 5340 break; 5940 5341 5941 5342 case 185: 5942 5943 /* Line 1806 of yacc.c */ 5944 #line 844 "parser.yy" 5945 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5343 #line 844 "parser.yy" /* yacc.c:1646 */ 5344 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[-1].en) ) ); } 5345 #line 5346 "Parser/parser.cc" /* yacc.c:1646 */ 5946 5346 break; 5947 5347 5948 5348 case 186: 5949 5950 /* Line 1806 of yacc.c */ 5951 #line 847 "parser.yy" 5349 #line 847 "parser.yy" /* yacc.c:1646 */ 5952 5350 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Continue ) ); } 5351 #line 5352 "Parser/parser.cc" /* yacc.c:1646 */ 5953 5352 break; 5954 5353 5955 5354 case 187: 5956 5957 /* Line 1806 of yacc.c */ 5958 #line 851 "parser.yy" 5959 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); delete (yyvsp[(2) - (3)].tok); } 5355 #line 851 "parser.yy" /* yacc.c:1646 */ 5356 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Continue ) ); } 5357 #line 5358 "Parser/parser.cc" /* yacc.c:1646 */ 5960 5358 break; 5961 5359 5962 5360 case 188: 5963 5964 /* Line 1806 of yacc.c */ 5965 #line 854 "parser.yy" 5361 #line 854 "parser.yy" /* yacc.c:1646 */ 5966 5362 { (yyval.sn) = new StatementNode( build_branch( "", BranchStmt::Break ) ); } 5363 #line 5364 "Parser/parser.cc" /* yacc.c:1646 */ 5967 5364 break; 5968 5365 5969 5366 case 189: 5970 5971 /* Line 1806 of yacc.c */ 5972 #line 858 "parser.yy" 5973 { (yyval.sn) = new StatementNode( build_branch( *(yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); delete (yyvsp[(2) - (3)].tok); } 5367 #line 858 "parser.yy" /* yacc.c:1646 */ 5368 { (yyval.sn) = new StatementNode( build_branch( assign_strptr((yyvsp[-1].tok)), BranchStmt::Break ) ); } 5369 #line 5370 "Parser/parser.cc" /* yacc.c:1646 */ 5974 5370 break; 5975 5371 5976 5372 case 190: 5977 5978 /* Line 1806 of yacc.c */ 5979 #line 860 "parser.yy" 5980 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5373 #line 860 "parser.yy" /* yacc.c:1646 */ 5374 { (yyval.sn) = new StatementNode( build_return( (yyvsp[-1].en) ) ); } 5375 #line 5376 "Parser/parser.cc" /* yacc.c:1646 */ 5981 5376 break; 5982 5377 5983 5378 case 191: 5984 5985 /* Line 1806 of yacc.c */ 5986 #line 862 "parser.yy" 5987 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5379 #line 862 "parser.yy" /* yacc.c:1646 */ 5380 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5381 #line 5382 "Parser/parser.cc" /* yacc.c:1646 */ 5988 5382 break; 5989 5383 5990 5384 case 192: 5991 5992 /* Line 1806 of yacc.c */ 5993 #line 864 "parser.yy" 5994 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5385 #line 864 "parser.yy" /* yacc.c:1646 */ 5386 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-1].en) ) ); } 5387 #line 5388 "Parser/parser.cc" /* yacc.c:1646 */ 5995 5388 break; 5996 5389 5997 5390 case 193: 5998 5999 /* Line 1806 of yacc.c */ 6000 #line 866 "parser.yy" 6001 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5391 #line 866 "parser.yy" /* yacc.c:1646 */ 5392 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[-3].en) ) ); } 5393 #line 5394 "Parser/parser.cc" /* yacc.c:1646 */ 6002 5394 break; 6003 5395 6004 5396 case 194: 6005 6006 /* Line 1806 of yacc.c */ 6007 #line 871 "parser.yy" 6008 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5397 #line 871 "parser.yy" /* yacc.c:1646 */ 5398 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), (yyvsp[0].sn), 0 ) ); } 5399 #line 5400 "Parser/parser.cc" /* yacc.c:1646 */ 6009 5400 break; 6010 5401 6011 5402 case 195: 6012 6013 /* Line 1806 of yacc.c */ 6014 #line 873 "parser.yy" 6015 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5403 #line 873 "parser.yy" /* yacc.c:1646 */ 5404 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-1].sn), 0, (yyvsp[0].sn) ) ); } 5405 #line 5406 "Parser/parser.cc" /* yacc.c:1646 */ 6016 5406 break; 6017 5407 6018 5408 case 196: 6019 6020 /* Line 1806 of yacc.c */ 6021 #line 875 "parser.yy" 6022 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5409 #line 875 "parser.yy" /* yacc.c:1646 */ 5410 { (yyval.sn) = new StatementNode( build_try( (yyvsp[-2].sn), (yyvsp[-1].sn), (yyvsp[0].sn) ) ); } 5411 #line 5412 "Parser/parser.cc" /* yacc.c:1646 */ 6023 5412 break; 6024 5413 6025 5414 case 198: 6026 6027 /* Line 1806 of yacc.c */ 6028 #line 882 "parser.yy" 6029 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5415 #line 882 "parser.yy" /* yacc.c:1646 */ 5416 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5417 #line 5418 "Parser/parser.cc" /* yacc.c:1646 */ 6030 5418 break; 6031 5419 6032 5420 case 199: 6033 6034 /* Line 1806 of yacc.c */ 6035 #line 884 "parser.yy" 6036 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5421 #line 884 "parser.yy" /* yacc.c:1646 */ 5422 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5423 #line 5424 "Parser/parser.cc" /* yacc.c:1646 */ 6037 5424 break; 6038 5425 6039 5426 case 200: 6040 6041 /* Line 1806 of yacc.c */ 6042 #line 886 "parser.yy" 6043 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5427 #line 886 "parser.yy" /* yacc.c:1646 */ 5428 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ); } 5429 #line 5430 "Parser/parser.cc" /* yacc.c:1646 */ 6044 5430 break; 6045 5431 6046 5432 case 201: 6047 6048 /* Line 1806 of yacc.c */ 6049 #line 888 "parser.yy" 6050 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5433 #line 888 "parser.yy" /* yacc.c:1646 */ 5434 { (yyval.sn) = (StatementNode *)(yyvsp[-5].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[0].sn), true ) ) ); } 5435 #line 5436 "Parser/parser.cc" /* yacc.c:1646 */ 6051 5436 break; 6052 5437 6053 5438 case 202: 6054 6055 /* Line 1806 of yacc.c */ 6056 #line 893 "parser.yy" 6057 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5439 #line 893 "parser.yy" /* yacc.c:1646 */ 5440 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5441 #line 5442 "Parser/parser.cc" /* yacc.c:1646 */ 6058 5442 break; 6059 5443 6060 5444 case 203: 6061 6062 /* Line 1806 of yacc.c */ 6063 #line 895 "parser.yy" 6064 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5445 #line 895 "parser.yy" /* yacc.c:1646 */ 5446 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5447 #line 5448 "Parser/parser.cc" /* yacc.c:1646 */ 6065 5448 break; 6066 5449 6067 5450 case 204: 6068 6069 /* Line 1806 of yacc.c */ 6070 #line 897 "parser.yy" 6071 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 5451 #line 897 "parser.yy" /* yacc.c:1646 */ 5452 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ); } 5453 #line 5454 "Parser/parser.cc" /* yacc.c:1646 */ 6072 5454 break; 6073 5455 6074 5456 case 205: 6075 6076 /* Line 1806 of yacc.c */ 6077 #line 899 "parser.yy" 6078 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 5457 #line 899 "parser.yy" /* yacc.c:1646 */ 5458 { (yyval.sn) = (StatementNode *)(yyvsp[-9].sn)->set_last( new StatementNode( build_catch( (yyvsp[-4].decl), (yyvsp[-1].sn) ) ) ); } 5459 #line 5460 "Parser/parser.cc" /* yacc.c:1646 */ 6079 5460 break; 6080 5461 6081 5462 case 206: 6082 6083 /* Line 1806 of yacc.c */ 6084 #line 904 "parser.yy" 6085 { 6086 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); 5463 #line 904 "parser.yy" /* yacc.c:1646 */ 5464 { 5465 (yyval.sn) = new StatementNode( build_finally( (yyvsp[0].sn) ) ); 6087 5466 } 5467 #line 5468 "Parser/parser.cc" /* yacc.c:1646 */ 6088 5468 break; 6089 5469 6090 5470 case 208: 6091 6092 /* Line 1806 of yacc.c */ 6093 #line 917 "parser.yy" 5471 #line 917 "parser.yy" /* yacc.c:1646 */ 6094 5472 { 6095 5473 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6096 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) );5474 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 6097 5475 } 5476 #line 5477 "Parser/parser.cc" /* yacc.c:1646 */ 6098 5477 break; 6099 5478 6100 5479 case 209: 6101 6102 /* Line 1806 of yacc.c */ 6103 #line 922 "parser.yy" 6104 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 5480 #line 922 "parser.yy" /* yacc.c:1646 */ 5481 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 5482 #line 5483 "Parser/parser.cc" /* yacc.c:1646 */ 6105 5483 break; 6106 5484 6107 5485 case 210: 6108 6109 /* Line 1806 of yacc.c */ 6110 #line 924 "parser.yy" 5486 #line 924 "parser.yy" /* yacc.c:1646 */ 6111 5487 { 6112 5488 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6113 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) );5489 (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); 6114 5490 } 5491 #line 5492 "Parser/parser.cc" /* yacc.c:1646 */ 6115 5492 break; 6116 5493 6117 5494 case 212: 6118 6119 /* Line 1806 of yacc.c */ 6120 #line 933 "parser.yy" 6121 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 5495 #line 933 "parser.yy" /* yacc.c:1646 */ 5496 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-4].flag), (yyvsp[-2].constant), 0 ) ); } 5497 #line 5498 "Parser/parser.cc" /* yacc.c:1646 */ 6122 5498 break; 6123 5499 6124 5500 case 213: 6125 6126 /* Line 1806 of yacc.c */ 6127 #line 935 "parser.yy" 6128 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 5501 #line 935 "parser.yy" /* yacc.c:1646 */ 5502 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-6].flag), (yyvsp[-4].constant), (yyvsp[-2].en) ) ); } 5503 #line 5504 "Parser/parser.cc" /* yacc.c:1646 */ 6129 5504 break; 6130 5505 6131 5506 case 214: 6132 6133 /* Line 1806 of yacc.c */ 6134 #line 937 "parser.yy" 6135 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 5507 #line 937 "parser.yy" /* yacc.c:1646 */ 5508 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-8].flag), (yyvsp[-6].constant), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5509 #line 5510 "Parser/parser.cc" /* yacc.c:1646 */ 6136 5510 break; 6137 5511 6138 5512 case 215: 6139 6140 /* Line 1806 of yacc.c */ 6141 #line 939 "parser.yy" 6142 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); } 5513 #line 939 "parser.yy" /* yacc.c:1646 */ 5514 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-10].flag), (yyvsp[-8].constant), (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 5515 #line 5516 "Parser/parser.cc" /* yacc.c:1646 */ 6143 5516 break; 6144 5517 6145 5518 case 216: 6146 6147 /* Line 1806 of yacc.c */ 6148 #line 941 "parser.yy" 6149 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); } 5519 #line 941 "parser.yy" /* yacc.c:1646 */ 5520 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[-12].flag), (yyvsp[-9].constant), 0, (yyvsp[-6].en), (yyvsp[-4].en), (yyvsp[-2].label) ) ); } 5521 #line 5522 "Parser/parser.cc" /* yacc.c:1646 */ 6150 5522 break; 6151 5523 6152 5524 case 217: 6153 6154 /* Line 1806 of yacc.c */ 6155 #line 946 "parser.yy" 5525 #line 946 "parser.yy" /* yacc.c:1646 */ 6156 5526 { (yyval.flag) = false; } 5527 #line 5528 "Parser/parser.cc" /* yacc.c:1646 */ 6157 5528 break; 6158 5529 6159 5530 case 218: 6160 6161 /* Line 1806 of yacc.c */ 6162 #line 948 "parser.yy" 5531 #line 948 "parser.yy" /* yacc.c:1646 */ 6163 5532 { (yyval.flag) = true; } 5533 #line 5534 "Parser/parser.cc" /* yacc.c:1646 */ 6164 5534 break; 6165 5535 6166 5536 case 219: 6167 6168 /* Line 1806 of yacc.c */ 6169 #line 953 "parser.yy" 5537 #line 953 "parser.yy" /* yacc.c:1646 */ 6170 5538 { (yyval.en) = 0; } 5539 #line 5540 "Parser/parser.cc" /* yacc.c:1646 */ 6171 5540 break; 6172 5541 6173 5542 case 222: 6174 6175 /* Line 1806 of yacc.c */ 6176 #line 960 "parser.yy" 6177 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5543 #line 960 "parser.yy" /* yacc.c:1646 */ 5544 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( (yyvsp[0].en) ); } 5545 #line 5546 "Parser/parser.cc" /* yacc.c:1646 */ 6178 5546 break; 6179 5547 6180 5548 case 223: 6181 6182 /* Line 1806 of yacc.c */ 6183 #line 965 "parser.yy" 6184 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 5549 #line 965 "parser.yy" /* yacc.c:1646 */ 5550 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5551 #line 5552 "Parser/parser.cc" /* yacc.c:1646 */ 6185 5552 break; 6186 5553 6187 5554 case 224: 6188 6189 /* Line 1806 of yacc.c */ 6190 #line 967 "parser.yy" 6191 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 5555 #line 967 "parser.yy" /* yacc.c:1646 */ 5556 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[-5].en), (yyvsp[-3].constant), (yyvsp[-1].en) ) ); } 5557 #line 5558 "Parser/parser.cc" /* yacc.c:1646 */ 6192 5558 break; 6193 5559 6194 5560 case 225: 6195 6196 /* Line 1806 of yacc.c */ 6197 #line 972 "parser.yy" 5561 #line 972 "parser.yy" /* yacc.c:1646 */ 6198 5562 { (yyval.en) = 0; } 5563 #line 5564 "Parser/parser.cc" /* yacc.c:1646 */ 6199 5564 break; 6200 5565 6201 5566 case 226: 6202 6203 /* Line 1806 of yacc.c */ 6204 #line 974 "parser.yy" 6205 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5567 #line 974 "parser.yy" /* yacc.c:1646 */ 5568 { (yyval.en) = new ExpressionNode( (yyvsp[0].constant) ); } 5569 #line 5570 "Parser/parser.cc" /* yacc.c:1646 */ 6206 5570 break; 6207 5571 6208 5572 case 227: 6209 6210 /* Line 1806 of yacc.c */ 6211 #line 976 "parser.yy" 6212 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 5573 #line 976 "parser.yy" /* yacc.c:1646 */ 5574 { (yyval.en) = (ExpressionNode *)(yyvsp[-2].en)->set_last( new ExpressionNode( (yyvsp[0].constant) ) ); } 5575 #line 5576 "Parser/parser.cc" /* yacc.c:1646 */ 6213 5576 break; 6214 5577 6215 5578 case 228: 6216 6217 /* Line 1806 of yacc.c */ 6218 #line 981 "parser.yy" 6219 { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); } 5579 #line 981 "parser.yy" /* yacc.c:1646 */ 5580 { (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); } 5581 #line 5582 "Parser/parser.cc" /* yacc.c:1646 */ 6220 5582 break; 6221 5583 6222 5584 case 229: 6223 6224 /* Line 1806 of yacc.c */ 6225 #line 983 "parser.yy" 6226 { (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); } 5585 #line 983 "parser.yy" /* yacc.c:1646 */ 5586 { (yyval.label) = (yyvsp[-2].label); (yyvsp[-2].label)->labels.push_back( assign_strptr((yyvsp[0].tok)) ); } 5587 #line 5588 "Parser/parser.cc" /* yacc.c:1646 */ 6227 5588 break; 6228 5589 6229 5590 case 230: 6230 6231 /* Line 1806 of yacc.c */ 6232 #line 990 "parser.yy" 5591 #line 990 "parser.yy" /* yacc.c:1646 */ 6233 5592 { (yyval.decl) = 0; } 5593 #line 5594 "Parser/parser.cc" /* yacc.c:1646 */ 6234 5594 break; 6235 5595 6236 5596 case 233: 6237 6238 /* Line 1806 of yacc.c */ 6239 #line 997 "parser.yy" 6240 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5597 #line 997 "parser.yy" /* yacc.c:1646 */ 5598 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5599 #line 5600 "Parser/parser.cc" /* yacc.c:1646 */ 6241 5600 break; 6242 5601 6243 5602 case 234: 6244 6245 /* Line 1806 of yacc.c */ 6246 #line 1002 "parser.yy" 5603 #line 1002 "parser.yy" /* yacc.c:1646 */ 6247 5604 { (yyval.decl) = 0; } 5605 #line 5606 "Parser/parser.cc" /* yacc.c:1646 */ 6248 5606 break; 6249 5607 6250 5608 case 237: 6251 6252 /* Line 1806 of yacc.c */ 6253 #line 1009 "parser.yy" 6254 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 5609 #line 1009 "parser.yy" /* yacc.c:1646 */ 5610 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 5611 #line 5612 "Parser/parser.cc" /* yacc.c:1646 */ 6255 5612 break; 6256 5613 6257 5614 case 242: 6258 6259 /* Line 1806 of yacc.c */ 6260 #line 1023 "parser.yy" 5615 #line 1023 "parser.yy" /* yacc.c:1646 */ 6261 5616 {} 5617 #line 5618 "Parser/parser.cc" /* yacc.c:1646 */ 6262 5618 break; 6263 5619 6264 5620 case 243: 6265 6266 /* Line 1806 of yacc.c */ 6267 #line 1024 "parser.yy" 5621 #line 1024 "parser.yy" /* yacc.c:1646 */ 6268 5622 {} 5623 #line 5624 "Parser/parser.cc" /* yacc.c:1646 */ 6269 5624 break; 6270 5625 6271 5626 case 251: 6272 6273 /* Line 1806 of yacc.c */ 6274 #line 1053 "parser.yy" 5627 #line 1053 "parser.yy" /* yacc.c:1646 */ 6275 5628 { 6276 5629 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6277 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addInitializer( (yyvsp[(2) - (2)].in) );5630 (yyval.decl) = (yyvsp[-1].decl)->addInitializer( (yyvsp[0].in) ); 6278 5631 } 5632 #line 5633 "Parser/parser.cc" /* yacc.c:1646 */ 6279 5633 break; 6280 5634 6281 5635 case 252: 6282 6283 /* Line 1806 of yacc.c */ 6284 #line 1060 "parser.yy" 5636 #line 1060 "parser.yy" /* yacc.c:1646 */ 6285 5637 { 6286 5638 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6287 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) );;5639 (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addInitializer( (yyvsp[0].in) );; 6288 5640 } 5641 #line 5642 "Parser/parser.cc" /* yacc.c:1646 */ 6289 5642 break; 6290 5643 6291 5644 case 253: 6292 6293 /* Line 1806 of yacc.c */ 6294 #line 1065 "parser.yy" 6295 { 6296 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); 6297 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneType( (yyvsp[(5) - (6)].tok) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 5645 #line 1065 "parser.yy" /* yacc.c:1646 */ 5646 { 5647 typedefTable.addToEnclosingScope( *(yyvsp[-1].tok), TypedefTable::ID ); 5648 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneType( (yyvsp[-1].tok) )->addInitializer( (yyvsp[0].in) ) ); 6298 5649 } 5650 #line 5651 "Parser/parser.cc" /* yacc.c:1646 */ 6299 5651 break; 6300 5652 6301 5653 case 254: 6302 6303 /* Line 1806 of yacc.c */ 6304 #line 1075 "parser.yy" 6305 { 6306 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6307 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5654 #line 1075 "parser.yy" /* yacc.c:1646 */ 5655 { 5656 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5657 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6308 5658 } 5659 #line 5660 "Parser/parser.cc" /* yacc.c:1646 */ 6309 5660 break; 6310 5661 6311 5662 case 255: 6312 6313 /* Line 1806 of yacc.c */ 6314 #line 1080 "parser.yy" 6315 { 6316 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6317 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); 5663 #line 1080 "parser.yy" /* yacc.c:1646 */ 5664 { 5665 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5666 (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); 6318 5667 } 5668 #line 5669 "Parser/parser.cc" /* yacc.c:1646 */ 6319 5669 break; 6320 5670 6321 5671 case 256: 6322 6323 /* Line 1806 of yacc.c */ 6324 #line 1085 "parser.yy" 6325 { 6326 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6327 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ); 5672 #line 1085 "parser.yy" /* yacc.c:1646 */ 5673 { 5674 typedefTable.setNextIdentifier( *(yyvsp[-1].tok) ); 5675 (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-3].decl) )->addName( (yyvsp[-1].tok) ); 6328 5676 } 5677 #line 5678 "Parser/parser.cc" /* yacc.c:1646 */ 6329 5678 break; 6330 5679 6331 5680 case 257: 6332 6333 /* Line 1806 of yacc.c */ 6334 #line 1093 "parser.yy" 5681 #line 1093 "parser.yy" /* yacc.c:1646 */ 6335 5682 { 6336 5683 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6337 (yyval.decl) = (yyvsp[ (1) - (1)].decl);5684 (yyval.decl) = (yyvsp[0].decl); 6338 5685 } 5686 #line 5687 "Parser/parser.cc" /* yacc.c:1646 */ 6339 5687 break; 6340 5688 6341 5689 case 258: 6342 6343 /* Line 1806 of yacc.c */ 6344 #line 1098 "parser.yy" 5690 #line 1098 "parser.yy" /* yacc.c:1646 */ 6345 5691 { 6346 5692 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6347 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5693 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6348 5694 } 5695 #line 5696 "Parser/parser.cc" /* yacc.c:1646 */ 6349 5696 break; 6350 5697 6351 5698 case 259: 6352 6353 /* Line 1806 of yacc.c */ 6354 #line 1103 "parser.yy" 5699 #line 1103 "parser.yy" /* yacc.c:1646 */ 6355 5700 { 6356 5701 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6357 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) );5702 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); 6358 5703 } 5704 #line 5705 "Parser/parser.cc" /* yacc.c:1646 */ 6359 5705 break; 6360 5706 6361 5707 case 260: 6362 6363 /* Line 1806 of yacc.c */ 6364 #line 1108 "parser.yy" 5708 #line 1108 "parser.yy" /* yacc.c:1646 */ 6365 5709 { 6366 5710 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6367 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(2) - (3)].decl) );5711 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-1].decl) ); 6368 5712 } 5713 #line 5714 "Parser/parser.cc" /* yacc.c:1646 */ 6369 5714 break; 6370 5715 6371 5716 case 261: 6372 6373 /* Line 1806 of yacc.c */ 6374 #line 1113 "parser.yy" 6375 { 6376 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 6377 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5717 #line 1113 "parser.yy" /* yacc.c:1646 */ 5718 { 5719 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::ID ); 5720 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6378 5721 } 5722 #line 5723 "Parser/parser.cc" /* yacc.c:1646 */ 6379 5723 break; 6380 5724 6381 5725 case 262: 6382 6383 /* Line 1806 of yacc.c */ 6384 #line 1121 "parser.yy" 6385 { 6386 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true ); 5726 #line 1121 "parser.yy" /* yacc.c:1646 */ 5727 { 5728 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), DeclarationNode::newTuple( 0 ), (yyvsp[-2].decl), 0, true ); 6387 5729 } 5730 #line 5731 "Parser/parser.cc" /* yacc.c:1646 */ 6388 5731 break; 6389 5732 6390 5733 case 263: 6391 6392 /* Line 1806 of yacc.c */ 6393 #line 1144 "parser.yy" 6394 { 6395 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5734 #line 1144 "parser.yy" /* yacc.c:1646 */ 5735 { 5736 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6396 5737 } 5738 #line 5739 "Parser/parser.cc" /* yacc.c:1646 */ 6397 5739 break; 6398 5740 6399 5741 case 264: 6400 6401 /* Line 1806 of yacc.c */ 6402 #line 1148 "parser.yy" 6403 { 6404 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); 5742 #line 1148 "parser.yy" /* yacc.c:1646 */ 5743 { 5744 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[-5].tok), (yyvsp[-6].decl), (yyvsp[-2].decl), 0, true ); 6405 5745 } 5746 #line 5747 "Parser/parser.cc" /* yacc.c:1646 */ 6406 5747 break; 6407 5748 6408 5749 case 265: 6409 6410 /* Line 1806 of yacc.c */ 6411 #line 1155 "parser.yy" 6412 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 5750 #line 1155 "parser.yy" /* yacc.c:1646 */ 5751 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 5752 #line 5753 "Parser/parser.cc" /* yacc.c:1646 */ 6413 5753 break; 6414 5754 6415 5755 case 266: 6416 6417 /* Line 1806 of yacc.c */ 6418 #line 1159 "parser.yy" 6419 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 5756 #line 1159 "parser.yy" /* yacc.c:1646 */ 5757 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-6].decl)->appendList( (yyvsp[-2].decl) ) ); } 5758 #line 5759 "Parser/parser.cc" /* yacc.c:1646 */ 6420 5759 break; 6421 5760 6422 5761 case 267: 6423 6424 /* Line 1806 of yacc.c */ 6425 #line 1164 "parser.yy" 5762 #line 1164 "parser.yy" /* yacc.c:1646 */ 6426 5763 { 6427 5764 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6428 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5765 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6429 5766 } 5767 #line 5768 "Parser/parser.cc" /* yacc.c:1646 */ 6430 5768 break; 6431 5769 6432 5770 case 268: 6433 6434 /* Line 1806 of yacc.c */ 6435 #line 1169 "parser.yy" 5771 #line 1169 "parser.yy" /* yacc.c:1646 */ 6436 5772 { 6437 5773 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6438 (yyval.decl) = (yyvsp[ (2) - (2)].decl)->addTypedef();5774 (yyval.decl) = (yyvsp[0].decl)->addTypedef(); 6439 5775 } 5776 #line 5777 "Parser/parser.cc" /* yacc.c:1646 */ 6440 5777 break; 6441 5778 6442 5779 case 269: 6443 6444 /* Line 1806 of yacc.c */ 6445 #line 1174 "parser.yy" 6446 { 6447 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); 6448 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 5780 #line 1174 "parser.yy" /* yacc.c:1646 */ 5781 { 5782 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 5783 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6449 5784 } 5785 #line 5786 "Parser/parser.cc" /* yacc.c:1646 */ 6450 5786 break; 6451 5787 6452 5788 case 270: 6453 6454 /* Line 1806 of yacc.c */ 6455 #line 1185 "parser.yy" 5789 #line 1185 "parser.yy" /* yacc.c:1646 */ 6456 5790 { 6457 5791 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6458 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(2) - (3)].decl) )->addTypedef();5792 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addTypedef(); 6459 5793 } 5794 #line 5795 "Parser/parser.cc" /* yacc.c:1646 */ 6460 5795 break; 6461 5796 6462 5797 case 271: 6463 6464 /* Line 1806 of yacc.c */ 6465 #line 1190 "parser.yy" 5798 #line 1190 "parser.yy" /* yacc.c:1646 */ 6466 5799 { 6467 5800 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6468 (yyval.decl) = (yyvsp[ (1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) )->addTypedef() );5801 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) )->addTypedef() ); 6469 5802 } 5803 #line 5804 "Parser/parser.cc" /* yacc.c:1646 */ 6470 5804 break; 6471 5805 6472 5806 case 272: 6473 6474 /* Line 1806 of yacc.c */ 6475 #line 1195 "parser.yy" 5807 #line 1195 "parser.yy" /* yacc.c:1646 */ 6476 5808 { 6477 5809 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6478 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addType( (yyvsp[(3) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef();5810 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[-3].decl) )->addTypedef(); 6479 5811 } 5812 #line 5813 "Parser/parser.cc" /* yacc.c:1646 */ 6480 5813 break; 6481 5814 6482 5815 case 273: 6483 6484 /* Line 1806 of yacc.c */ 6485 #line 1200 "parser.yy" 5816 #line 1200 "parser.yy" /* yacc.c:1646 */ 6486 5817 { 6487 5818 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6488 (yyval.decl) = (yyvsp[ (3) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addTypedef();5819 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-2].decl) )->addTypedef(); 6489 5820 } 5821 #line 5822 "Parser/parser.cc" /* yacc.c:1646 */ 6490 5822 break; 6491 5823 6492 5824 case 274: 6493 6494 /* Line 1806 of yacc.c */ 6495 #line 1205 "parser.yy" 5825 #line 1205 "parser.yy" /* yacc.c:1646 */ 6496 5826 { 6497 5827 typedefTable.addToEnclosingScope( TypedefTable::TD ); 6498 (yyval.decl) = (yyvsp[ (4) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addTypedef()->addType( (yyvsp[(1) - (4)].decl) );5828 (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-3].decl) )->addTypedef()->addType( (yyvsp[-3].decl) ); 6499 5829 } 5830 #line 5831 "Parser/parser.cc" /* yacc.c:1646 */ 6500 5831 break; 6501 5832 6502 5833 case 275: 6503 6504 /* Line 1806 of yacc.c */ 6505 #line 1214 "parser.yy" 6506 { 6507 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 5834 #line 1214 "parser.yy" /* yacc.c:1646 */ 5835 { 5836 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6508 5837 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6509 5838 } 5839 #line 5840 "Parser/parser.cc" /* yacc.c:1646 */ 6510 5840 break; 6511 5841 6512 5842 case 276: 6513 6514 /* Line 1806 of yacc.c */ 6515 #line 1219 "parser.yy" 6516 { 6517 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 5843 #line 1219 "parser.yy" /* yacc.c:1646 */ 5844 { 5845 typedefTable.addToEnclosingScope( *(yyvsp[-2].tok), TypedefTable::TD ); 6518 5846 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX 6519 5847 } 5848 #line 5849 "Parser/parser.cc" /* yacc.c:1646 */ 6520 5849 break; 6521 5850 6522 5851 case 281: 6523 6524 /* Line 1806 of yacc.c */ 6525 #line 1236 "parser.yy" 5852 #line 1236 "parser.yy" /* yacc.c:1646 */ 6526 5853 { 6527 5854 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6528 (yyval.decl) = ( (yyvsp[ (2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addInitializer( (yyvsp[(4) - (4)].in) );5855 (yyval.decl) = ( (yyvsp[-2].decl)->addType( (yyvsp[-3].decl) ))->addInitializer( (yyvsp[0].in) ); 6529 5856 } 5857 #line 5858 "Parser/parser.cc" /* yacc.c:1646 */ 6530 5858 break; 6531 5859 6532 5860 case 282: 6533 6534 /* Line 1806 of yacc.c */ 6535 #line 1241 "parser.yy" 5861 #line 1241 "parser.yy" /* yacc.c:1646 */ 6536 5862 { 6537 5863 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6538 (yyval.decl) = (yyvsp[ (1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addInitializer( (yyvsp[(6) - (6)].in) ) ) );5864 (yyval.decl) = (yyvsp[-5].decl)->appendList( (yyvsp[-5].decl)->cloneBaseType( (yyvsp[-2].decl)->addInitializer( (yyvsp[0].in) ) ) ); 6539 5865 } 5866 #line 5867 "Parser/parser.cc" /* yacc.c:1646 */ 6540 5867 break; 6541 5868 6542 5869 case 291: 6543 6544 /* Line 1806 of yacc.c */ 6545 #line 1263 "parser.yy" 5870 #line 1263 "parser.yy" /* yacc.c:1646 */ 6546 5871 { (yyval.decl) = 0; } 5872 #line 5873 "Parser/parser.cc" /* yacc.c:1646 */ 6547 5873 break; 6548 5874 6549 5875 case 294: 6550 6551 /* Line 1806 of yacc.c */ 6552 #line 1275 "parser.yy" 6553 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5876 #line 1275 "parser.yy" /* yacc.c:1646 */ 5877 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5878 #line 5879 "Parser/parser.cc" /* yacc.c:1646 */ 6554 5879 break; 6555 5880 6556 5881 case 297: 6557 6558 /* Line 1806 of yacc.c */ 6559 #line 1286 "parser.yy" 5882 #line 1286 "parser.yy" /* yacc.c:1646 */ 6560 5883 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 5884 #line 5885 "Parser/parser.cc" /* yacc.c:1646 */ 6561 5885 break; 6562 5886 6563 5887 case 298: 6564 6565 /* Line 1806 of yacc.c */ 6566 #line 1288 "parser.yy" 5888 #line 1288 "parser.yy" /* yacc.c:1646 */ 6567 5889 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 5890 #line 5891 "Parser/parser.cc" /* yacc.c:1646 */ 6568 5891 break; 6569 5892 6570 5893 case 299: 6571 6572 /* Line 1806 of yacc.c */ 6573 #line 1290 "parser.yy" 5894 #line 1290 "parser.yy" /* yacc.c:1646 */ 6574 5895 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 5896 #line 5897 "Parser/parser.cc" /* yacc.c:1646 */ 6575 5897 break; 6576 5898 6577 5899 case 300: 6578 6579 /* Line 1806 of yacc.c */ 6580 #line 1292 "parser.yy" 5900 #line 1292 "parser.yy" /* yacc.c:1646 */ 6581 5901 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 5902 #line 5903 "Parser/parser.cc" /* yacc.c:1646 */ 6582 5903 break; 6583 5904 6584 5905 case 301: 6585 6586 /* Line 1806 of yacc.c */ 6587 #line 1294 "parser.yy" 5906 #line 1294 "parser.yy" /* yacc.c:1646 */ 6588 5907 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 5908 #line 5909 "Parser/parser.cc" /* yacc.c:1646 */ 6589 5909 break; 6590 5910 6591 5911 case 302: 6592 6593 /* Line 1806 of yacc.c */ 6594 #line 1296 "parser.yy" 5912 #line 1296 "parser.yy" /* yacc.c:1646 */ 6595 5913 { 6596 5914 typedefTable.enterScope(); 6597 5915 } 5916 #line 5917 "Parser/parser.cc" /* yacc.c:1646 */ 6598 5917 break; 6599 5918 6600 5919 case 303: 6601 6602 /* Line 1806 of yacc.c */ 6603 #line 1300 "parser.yy" 5920 #line 1300 "parser.yy" /* yacc.c:1646 */ 6604 5921 { 6605 5922 typedefTable.leaveScope(); 6606 (yyval.decl) = DeclarationNode::newForall( (yyvsp[ (4) - (5)].decl) );5923 (yyval.decl) = DeclarationNode::newForall( (yyvsp[-1].decl) ); 6607 5924 } 5925 #line 5926 "Parser/parser.cc" /* yacc.c:1646 */ 6608 5926 break; 6609 5927 6610 5928 case 305: 6611 6612 /* Line 1806 of yacc.c */ 6613 #line 1309 "parser.yy" 6614 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5929 #line 1309 "parser.yy" /* yacc.c:1646 */ 5930 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5931 #line 5932 "Parser/parser.cc" /* yacc.c:1646 */ 6615 5932 break; 6616 5933 6617 5934 case 306: 6618 6619 /* Line 1806 of yacc.c */ 6620 #line 1311 "parser.yy" 6621 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 5935 #line 1311 "parser.yy" /* yacc.c:1646 */ 5936 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 5937 #line 5938 "Parser/parser.cc" /* yacc.c:1646 */ 6622 5938 break; 6623 5939 6624 5940 case 308: 6625 6626 /* Line 1806 of yacc.c */ 6627 #line 1322 "parser.yy" 6628 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 5941 #line 1322 "parser.yy" /* yacc.c:1646 */ 5942 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 5943 #line 5944 "Parser/parser.cc" /* yacc.c:1646 */ 5944 break; 5945 5946 case 309: 5947 #line 1327 "parser.yy" /* yacc.c:1646 */ 5948 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5949 #line 5950 "Parser/parser.cc" /* yacc.c:1646 */ 6629 5950 break; 6630 5951 6631 5952 case 310: 6632 6633 /* Line 1806 of yacc.c */ 6634 #line 1331 "parser.yy" 6635 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 5953 #line 1329 "parser.yy" /* yacc.c:1646 */ 5954 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5955 #line 5956 "Parser/parser.cc" /* yacc.c:1646 */ 6636 5956 break; 6637 5957 6638 5958 case 311: 6639 6640 /* Line 1806 of yacc.c */ 6641 #line 1333 "parser.yy" 6642 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 5959 #line 1331 "parser.yy" /* yacc.c:1646 */ 5960 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5961 #line 5962 "Parser/parser.cc" /* yacc.c:1646 */ 6643 5962 break; 6644 5963 6645 5964 case 312: 6646 6647 /* Line 1806 of yacc.c */ 6648 #line 1335 "parser.yy" 6649 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 5965 #line 1333 "parser.yy" /* yacc.c:1646 */ 5966 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5967 #line 5968 "Parser/parser.cc" /* yacc.c:1646 */ 6650 5968 break; 6651 5969 6652 5970 case 313: 6653 6654 /* Line 1806 of yacc.c */ 6655 #line 1337 "parser.yy" 6656 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 5971 #line 1335 "parser.yy" /* yacc.c:1646 */ 5972 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 5973 #line 5974 "Parser/parser.cc" /* yacc.c:1646 */ 6657 5974 break; 6658 5975 6659 5976 case 314: 6660 6661 /* Line 1806 of yacc.c */ 6662 #line 1339 "parser.yy" 6663 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Inline ); } 5977 #line 1337 "parser.yy" /* yacc.c:1646 */ 5978 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5979 #line 5980 "Parser/parser.cc" /* yacc.c:1646 */ 6664 5980 break; 6665 5981 6666 5982 case 315: 6667 6668 /* Line 1806 of yacc.c */ 6669 #line 1341 "parser.yy" 6670 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 5983 #line 1339 "parser.yy" /* yacc.c:1646 */ 5984 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 5985 #line 5986 "Parser/parser.cc" /* yacc.c:1646 */ 6671 5986 break; 6672 5987 6673 5988 case 316: 6674 6675 /* Line 1806 of yacc.c */ 6676 #line 1343 "parser.yy" 6677 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Noreturn ); } 5989 #line 1341 "parser.yy" /* yacc.c:1646 */ 5990 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5991 #line 5992 "Parser/parser.cc" /* yacc.c:1646 */ 6678 5992 break; 6679 5993 6680 5994 case 317: 6681 6682 /* Line 1806 of yacc.c */ 6683 #line 1345 "parser.yy" 6684 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 5995 #line 1346 "parser.yy" /* yacc.c:1646 */ 5996 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 5997 #line 5998 "Parser/parser.cc" /* yacc.c:1646 */ 6685 5998 break; 6686 5999 6687 6000 case 318: 6688 6689 /* Line 1806 of yacc.c */ 6690 #line 1350 "parser.yy" 6691 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6001 #line 1348 "parser.yy" /* yacc.c:1646 */ 6002 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6003 #line 6004 "Parser/parser.cc" /* yacc.c:1646 */ 6692 6004 break; 6693 6005 6694 6006 case 319: 6695 6696 /* Line 1806 of yacc.c */ 6697 #line 1352 "parser.yy" 6698 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6007 #line 1350 "parser.yy" /* yacc.c:1646 */ 6008 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6009 #line 6010 "Parser/parser.cc" /* yacc.c:1646 */ 6699 6010 break; 6700 6011 6701 6012 case 320: 6702 6703 /* Line 1806 of yacc.c */ 6704 #line 1354 "parser.yy" 6705 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6013 #line 1352 "parser.yy" /* yacc.c:1646 */ 6014 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6015 #line 6016 "Parser/parser.cc" /* yacc.c:1646 */ 6706 6016 break; 6707 6017 6708 6018 case 321: 6709 6710 /* Line 1806 of yacc.c */ 6711 #line 1356 "parser.yy" 6712 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6019 #line 1354 "parser.yy" /* yacc.c:1646 */ 6020 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6021 #line 6022 "Parser/parser.cc" /* yacc.c:1646 */ 6713 6022 break; 6714 6023 6715 6024 case 322: 6716 6717 /* Line 1806 of yacc.c */ 6718 #line 1358 "parser.yy" 6719 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Long ); } 6025 #line 1356 "parser.yy" /* yacc.c:1646 */ 6026 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6027 #line 6028 "Parser/parser.cc" /* yacc.c:1646 */ 6720 6028 break; 6721 6029 6722 6030 case 323: 6723 6724 /* Line 1806 of yacc.c */ 6725 #line 1360 "parser.yy" 6726 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Short ); } 6031 #line 1358 "parser.yy" /* yacc.c:1646 */ 6032 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6033 #line 6034 "Parser/parser.cc" /* yacc.c:1646 */ 6727 6034 break; 6728 6035 6729 6036 case 324: 6730 6731 /* Line 1806 of yacc.c */ 6732 #line 1362 "parser.yy" 6733 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Signed ); } 6037 #line 1360 "parser.yy" /* yacc.c:1646 */ 6038 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6039 #line 6040 "Parser/parser.cc" /* yacc.c:1646 */ 6734 6040 break; 6735 6041 6736 6042 case 325: 6737 6738 /* Line 1806 of yacc.c */ 6739 #line 1364 "parser.yy" 6740 { (yyval.decl) = DeclarationNode::newModifier( DeclarationNode::Unsigned ); } 6043 #line 1362 "parser.yy" /* yacc.c:1646 */ 6044 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6045 #line 6046 "Parser/parser.cc" /* yacc.c:1646 */ 6741 6046 break; 6742 6047 6743 6048 case 326: 6744 6745 /* Line 1806 of yacc.c */ 6746 #line 1366 "parser.yy" 6747 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6049 #line 1364 "parser.yy" /* yacc.c:1646 */ 6050 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6051 #line 6052 "Parser/parser.cc" /* yacc.c:1646 */ 6748 6052 break; 6749 6053 6750 6054 case 327: 6751 6752 /* Line 1806 of yacc.c */ 6753 #line 1368 "parser.yy" 6754 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6055 #line 1366 "parser.yy" /* yacc.c:1646 */ 6056 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6057 #line 6058 "Parser/parser.cc" /* yacc.c:1646 */ 6755 6058 break; 6756 6059 6757 6060 case 328: 6758 6759 /* Line 1806 of yacc.c */ 6760 #line 1370 "parser.yy" 6761 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Complex ); } 6061 #line 1368 "parser.yy" /* yacc.c:1646 */ 6062 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6063 #line 6064 "Parser/parser.cc" /* yacc.c:1646 */ 6762 6064 break; 6763 6065 6764 6066 case 329: 6765 6766 /* Line 1806 of yacc.c */ 6767 #line 1372 "parser.yy" 6768 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Imaginary ); } 6769 break; 6770 6771 case 330: 6772 6773 /* Line 1806 of yacc.c */ 6774 #line 1374 "parser.yy" 6067 #line 1370 "parser.yy" /* yacc.c:1646 */ 6775 6068 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6069 #line 6070 "Parser/parser.cc" /* yacc.c:1646 */ 6070 break; 6071 6072 case 331: 6073 #line 1377 "parser.yy" /* yacc.c:1646 */ 6074 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6075 #line 6076 "Parser/parser.cc" /* yacc.c:1646 */ 6776 6076 break; 6777 6077 6778 6078 case 332: 6779 6780 /* Line 1806 of yacc.c */ 6781 #line 1381 "parser.yy" 6782 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6079 #line 1379 "parser.yy" /* yacc.c:1646 */ 6080 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6081 #line 6082 "Parser/parser.cc" /* yacc.c:1646 */ 6783 6082 break; 6784 6083 6785 6084 case 333: 6786 6787 /* Line 1806 of yacc.c */ 6788 #line 1383 "parser.yy" 6789 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6085 #line 1381 "parser.yy" /* yacc.c:1646 */ 6086 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6087 #line 6088 "Parser/parser.cc" /* yacc.c:1646 */ 6790 6088 break; 6791 6089 6792 6090 case 334: 6793 6794 /* Line 1806 of yacc.c */ 6795 #line 1385 "parser.yy" 6796 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6797 break; 6798 6799 case 335: 6800 6801 /* Line 1806 of yacc.c */ 6802 #line 1387 "parser.yy" 6803 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6804 break; 6805 6806 case 337: 6807 6808 /* Line 1806 of yacc.c */ 6809 #line 1393 "parser.yy" 6810 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6091 #line 1383 "parser.yy" /* yacc.c:1646 */ 6092 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) )->addType( (yyvsp[-2].decl) ); } 6093 #line 6094 "Parser/parser.cc" /* yacc.c:1646 */ 6094 break; 6095 6096 case 336: 6097 #line 1389 "parser.yy" /* yacc.c:1646 */ 6098 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6099 #line 6100 "Parser/parser.cc" /* yacc.c:1646 */ 6100 break; 6101 6102 case 338: 6103 #line 1396 "parser.yy" /* yacc.c:1646 */ 6104 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6105 #line 6106 "Parser/parser.cc" /* yacc.c:1646 */ 6811 6106 break; 6812 6107 6813 6108 case 339: 6814 6815 /* Line 1806 of yacc.c */ 6816 #line 1400 "parser.yy" 6817 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6109 #line 1398 "parser.yy" /* yacc.c:1646 */ 6110 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6111 #line 6112 "Parser/parser.cc" /* yacc.c:1646 */ 6818 6112 break; 6819 6113 6820 6114 case 340: 6821 6822 /* Line 1806 of yacc.c */ 6823 #line 1402 "parser.yy" 6824 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6115 #line 1400 "parser.yy" /* yacc.c:1646 */ 6116 { (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[0].decl) ); } 6117 #line 6118 "Parser/parser.cc" /* yacc.c:1646 */ 6825 6118 break; 6826 6119 6827 6120 case 341: 6828 6829 /* Line 1806 of yacc.c */ 6830 #line 1404 "parser.yy" 6831 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6121 #line 1405 "parser.yy" /* yacc.c:1646 */ 6122 { (yyval.decl) = (yyvsp[-1].decl); } 6123 #line 6124 "Parser/parser.cc" /* yacc.c:1646 */ 6832 6124 break; 6833 6125 6834 6126 case 342: 6835 6836 /* Line 1806 of yacc.c */ 6837 #line 1409 "parser.yy" 6838 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6127 #line 1407 "parser.yy" /* yacc.c:1646 */ 6128 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[-1].en) ); } 6129 #line 6130 "Parser/parser.cc" /* yacc.c:1646 */ 6839 6130 break; 6840 6131 6841 6132 case 343: 6842 6843 /* Line 1806 of yacc.c */ 6844 #line 1411 "parser.yy" 6845 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6133 #line 1409 "parser.yy" /* yacc.c:1646 */ 6134 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].decl) ); } 6135 #line 6136 "Parser/parser.cc" /* yacc.c:1646 */ 6846 6136 break; 6847 6137 6848 6138 case 344: 6849 6850 /* Line 1806 of yacc.c */ 6851 #line 1413 "parser.yy" 6852 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6853 break; 6854 6855 case 345: 6856 6857 /* Line 1806 of yacc.c */ 6858 #line 1415 "parser.yy" 6859 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6139 #line 1411 "parser.yy" /* yacc.c:1646 */ 6140 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6141 #line 6142 "Parser/parser.cc" /* yacc.c:1646 */ 6142 break; 6143 6144 case 346: 6145 #line 1417 "parser.yy" /* yacc.c:1646 */ 6146 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6147 #line 6148 "Parser/parser.cc" /* yacc.c:1646 */ 6860 6148 break; 6861 6149 6862 6150 case 347: 6863 6864 /* Line 1806 of yacc.c */ 6865 #line 1421 "parser.yy" 6866 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6151 #line 1419 "parser.yy" /* yacc.c:1646 */ 6152 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6153 #line 6154 "Parser/parser.cc" /* yacc.c:1646 */ 6867 6154 break; 6868 6155 6869 6156 case 348: 6870 6871 /* Line 1806 of yacc.c */ 6872 #line 1423 "parser.yy" 6873 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6874 break; 6875 6876 case 349: 6877 6878 /* Line 1806 of yacc.c */ 6879 #line 1425 "parser.yy" 6880 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6157 #line 1421 "parser.yy" /* yacc.c:1646 */ 6158 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6159 #line 6160 "Parser/parser.cc" /* yacc.c:1646 */ 6160 break; 6161 6162 case 350: 6163 #line 1427 "parser.yy" /* yacc.c:1646 */ 6164 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6165 #line 6166 "Parser/parser.cc" /* yacc.c:1646 */ 6881 6166 break; 6882 6167 6883 6168 case 351: 6884 6885 /* Line 1806 of yacc.c */ 6886 #line 1431 "parser.yy" 6887 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6888 break; 6889 6890 case 352: 6891 6892 /* Line 1806 of yacc.c */ 6893 #line 1433 "parser.yy" 6894 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6169 #line 1429 "parser.yy" /* yacc.c:1646 */ 6170 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6171 #line 6172 "Parser/parser.cc" /* yacc.c:1646 */ 6172 break; 6173 6174 case 353: 6175 #line 1435 "parser.yy" /* yacc.c:1646 */ 6176 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6177 #line 6178 "Parser/parser.cc" /* yacc.c:1646 */ 6895 6178 break; 6896 6179 6897 6180 case 354: 6898 6899 /* Line 1806 of yacc.c */ 6900 #line 1439 "parser.yy" 6901 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6181 #line 1437 "parser.yy" /* yacc.c:1646 */ 6182 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6183 #line 6184 "Parser/parser.cc" /* yacc.c:1646 */ 6902 6184 break; 6903 6185 6904 6186 case 355: 6905 6906 /* Line 1806 of yacc.c */ 6907 #line 1441 "parser.yy" 6908 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6187 #line 1439 "parser.yy" /* yacc.c:1646 */ 6188 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6189 #line 6190 "Parser/parser.cc" /* yacc.c:1646 */ 6909 6190 break; 6910 6191 6911 6192 case 356: 6912 6913 /* Line 1806 of yacc.c */ 6914 #line 1443 "parser.yy" 6915 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6193 #line 1444 "parser.yy" /* yacc.c:1646 */ 6194 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) ); } 6195 #line 6196 "Parser/parser.cc" /* yacc.c:1646 */ 6916 6196 break; 6917 6197 6918 6198 case 357: 6919 6920 /* Line 1806 of yacc.c */ 6921 #line 1448 "parser.yy" 6922 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6199 #line 1446 "parser.yy" /* yacc.c:1646 */ 6200 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[0].tok) )->addQualifiers( (yyvsp[-1].decl) ); } 6201 #line 6202 "Parser/parser.cc" /* yacc.c:1646 */ 6923 6202 break; 6924 6203 6925 6204 case 358: 6926 6927 /* Line 1806 of yacc.c */ 6928 #line 1450 "parser.yy" 6929 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6930 break; 6931 6932 case 359: 6933 6934 /* Line 1806 of yacc.c */ 6935 #line 1452 "parser.yy" 6936 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6205 #line 1448 "parser.yy" /* yacc.c:1646 */ 6206 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6207 #line 6208 "Parser/parser.cc" /* yacc.c:1646 */ 6208 break; 6209 6210 case 361: 6211 #line 1458 "parser.yy" /* yacc.c:1646 */ 6212 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-3].aggKey), 0, 0, (yyvsp[-1].decl), true ); } 6213 #line 6214 "Parser/parser.cc" /* yacc.c:1646 */ 6937 6214 break; 6938 6215 6939 6216 case 362: 6940 6941 /* Line 1806 of yacc.c */ 6942 #line 1462 "parser.yy" 6943 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), 0, 0, (yyvsp[(3) - (4)].decl), true ); } 6217 #line 1460 "parser.yy" /* yacc.c:1646 */ 6218 { 6219 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6220 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-1].aggKey), (yyvsp[0].tok), 0, 0, false ); 6221 } 6222 #line 6223 "Parser/parser.cc" /* yacc.c:1646 */ 6944 6223 break; 6945 6224 6946 6225 case 363: 6947 6948 /* Line 1806 of yacc.c */ 6949 #line 1464 "parser.yy" 6950 { 6951 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6952 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0, false ); 6226 #line 1465 "parser.yy" /* yacc.c:1646 */ 6227 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6228 #line 6229 "Parser/parser.cc" /* yacc.c:1646 */ 6229 break; 6230 6231 case 364: 6232 #line 1467 "parser.yy" /* yacc.c:1646 */ 6233 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-5].aggKey), (yyvsp[-4].tok), 0, (yyvsp[-1].decl), true ); } 6234 #line 6235 "Parser/parser.cc" /* yacc.c:1646 */ 6235 break; 6236 6237 case 365: 6238 #line 1469 "parser.yy" /* yacc.c:1646 */ 6239 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[-6].aggKey), 0, (yyvsp[-4].en), (yyvsp[-1].decl), false ); } 6240 #line 6241 "Parser/parser.cc" /* yacc.c:1646 */ 6241 break; 6242 6243 case 366: 6244 #line 1471 "parser.yy" /* yacc.c:1646 */ 6245 { (yyval.decl) = (yyvsp[0].decl); } 6246 #line 6247 "Parser/parser.cc" /* yacc.c:1646 */ 6247 break; 6248 6249 case 367: 6250 #line 1476 "parser.yy" /* yacc.c:1646 */ 6251 { (yyval.aggKey) = DeclarationNode::Struct; } 6252 #line 6253 "Parser/parser.cc" /* yacc.c:1646 */ 6253 break; 6254 6255 case 368: 6256 #line 1478 "parser.yy" /* yacc.c:1646 */ 6257 { (yyval.aggKey) = DeclarationNode::Union; } 6258 #line 6259 "Parser/parser.cc" /* yacc.c:1646 */ 6259 break; 6260 6261 case 369: 6262 #line 1483 "parser.yy" /* yacc.c:1646 */ 6263 { (yyval.decl) = 0; } 6264 #line 6265 "Parser/parser.cc" /* yacc.c:1646 */ 6265 break; 6266 6267 case 370: 6268 #line 1485 "parser.yy" /* yacc.c:1646 */ 6269 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6270 #line 6271 "Parser/parser.cc" /* yacc.c:1646 */ 6271 break; 6272 6273 case 372: 6274 #line 1491 "parser.yy" /* yacc.c:1646 */ 6275 { (yyval.decl) = (yyvsp[-1].decl)->set_extension( true ); } 6276 #line 6277 "Parser/parser.cc" /* yacc.c:1646 */ 6277 break; 6278 6279 case 374: 6280 #line 1494 "parser.yy" /* yacc.c:1646 */ 6281 { // mark all fields in list 6282 for ( DeclarationNode *iter = (yyvsp[-1].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 6283 iter->set_extension( true ); 6284 (yyval.decl) = (yyvsp[-1].decl); 6953 6285 } 6954 break; 6955 6956 case 364: 6957 6958 /* Line 1806 of yacc.c */ 6959 #line 1469 "parser.yy" 6960 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6961 break; 6962 6963 case 365: 6964 6965 /* Line 1806 of yacc.c */ 6966 #line 1471 "parser.yy" 6967 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl), true ); } 6968 break; 6969 6970 case 366: 6971 6972 /* Line 1806 of yacc.c */ 6973 #line 1473 "parser.yy" 6974 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6975 break; 6976 6977 case 367: 6978 6979 /* Line 1806 of yacc.c */ 6980 #line 1475 "parser.yy" 6981 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6982 break; 6983 6984 case 368: 6985 6986 /* Line 1806 of yacc.c */ 6987 #line 1480 "parser.yy" 6988 { (yyval.aggKey) = DeclarationNode::Struct; } 6989 break; 6990 6991 case 369: 6992 6993 /* Line 1806 of yacc.c */ 6994 #line 1482 "parser.yy" 6995 { (yyval.aggKey) = DeclarationNode::Union; } 6996 break; 6997 6998 case 370: 6999 7000 /* Line 1806 of yacc.c */ 7001 #line 1487 "parser.yy" 6286 #line 6287 "Parser/parser.cc" /* yacc.c:1646 */ 6287 break; 6288 6289 case 376: 6290 #line 1504 "parser.yy" /* yacc.c:1646 */ 6291 { (yyval.decl) = (yyvsp[-1].decl)->addName( (yyvsp[0].tok) ); } 6292 #line 6293 "Parser/parser.cc" /* yacc.c:1646 */ 6293 break; 6294 6295 case 377: 6296 #line 1506 "parser.yy" /* yacc.c:1646 */ 6297 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[-2].decl)->cloneType( (yyvsp[0].tok) ) ); } 6298 #line 6299 "Parser/parser.cc" /* yacc.c:1646 */ 6299 break; 6300 6301 case 378: 6302 #line 1508 "parser.yy" /* yacc.c:1646 */ 6303 { (yyval.decl) = (yyvsp[-1].decl)->appendList( (yyvsp[-1].decl)->cloneType( 0 ) ); } 6304 #line 6305 "Parser/parser.cc" /* yacc.c:1646 */ 6305 break; 6306 6307 case 379: 6308 #line 1513 "parser.yy" /* yacc.c:1646 */ 6309 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6310 #line 6311 "Parser/parser.cc" /* yacc.c:1646 */ 6311 break; 6312 6313 case 380: 6314 #line 1515 "parser.yy" /* yacc.c:1646 */ 6315 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-3].decl)->cloneBaseType( (yyvsp[0].decl) ) ); } 6316 #line 6317 "Parser/parser.cc" /* yacc.c:1646 */ 6317 break; 6318 6319 case 381: 6320 #line 1520 "parser.yy" /* yacc.c:1646 */ 6321 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 6322 #line 6323 "Parser/parser.cc" /* yacc.c:1646 */ 6323 break; 6324 6325 case 382: 6326 #line 1522 "parser.yy" /* yacc.c:1646 */ 6327 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[0].en) ); } 6328 #line 6329 "Parser/parser.cc" /* yacc.c:1646 */ 6329 break; 6330 6331 case 383: 6332 #line 1525 "parser.yy" /* yacc.c:1646 */ 6333 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6334 #line 6335 "Parser/parser.cc" /* yacc.c:1646 */ 6335 break; 6336 6337 case 384: 6338 #line 1528 "parser.yy" /* yacc.c:1646 */ 6339 { (yyval.decl) = (yyvsp[-1].decl)->addBitfield( (yyvsp[0].en) ); } 6340 #line 6341 "Parser/parser.cc" /* yacc.c:1646 */ 6341 break; 6342 6343 case 386: 6344 #line 1534 "parser.yy" /* yacc.c:1646 */ 6345 { (yyval.en) = 0; } 6346 #line 6347 "Parser/parser.cc" /* yacc.c:1646 */ 6347 break; 6348 6349 case 387: 6350 #line 1536 "parser.yy" /* yacc.c:1646 */ 6351 { (yyval.en) = (yyvsp[0].en); } 6352 #line 6353 "Parser/parser.cc" /* yacc.c:1646 */ 6353 break; 6354 6355 case 388: 6356 #line 1541 "parser.yy" /* yacc.c:1646 */ 6357 { (yyval.en) = (yyvsp[0].en); } 6358 #line 6359 "Parser/parser.cc" /* yacc.c:1646 */ 6359 break; 6360 6361 case 390: 6362 #line 1550 "parser.yy" /* yacc.c:1646 */ 6363 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[-2].decl) ); } 6364 #line 6365 "Parser/parser.cc" /* yacc.c:1646 */ 6365 break; 6366 6367 case 391: 6368 #line 1552 "parser.yy" /* yacc.c:1646 */ 6369 { 6370 typedefTable.makeTypedef( *(yyvsp[0].tok) ); 6371 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[0].tok), 0 ); 6372 } 6373 #line 6374 "Parser/parser.cc" /* yacc.c:1646 */ 6374 break; 6375 6376 case 392: 6377 #line 1557 "parser.yy" /* yacc.c:1646 */ 6378 { typedefTable.makeTypedef( *(yyvsp[0].tok) ); } 6379 #line 6380 "Parser/parser.cc" /* yacc.c:1646 */ 6380 break; 6381 6382 case 393: 6383 #line 1559 "parser.yy" /* yacc.c:1646 */ 6384 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[-5].tok), (yyvsp[-2].decl) ); } 6385 #line 6386 "Parser/parser.cc" /* yacc.c:1646 */ 6386 break; 6387 6388 case 394: 6389 #line 1564 "parser.yy" /* yacc.c:1646 */ 6390 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ); } 6391 #line 6392 "Parser/parser.cc" /* yacc.c:1646 */ 6392 break; 6393 6394 case 395: 6395 #line 1566 "parser.yy" /* yacc.c:1646 */ 6396 { (yyval.decl) = (yyvsp[-3].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[-1].tok), (yyvsp[0].en) ) ); } 6397 #line 6398 "Parser/parser.cc" /* yacc.c:1646 */ 6398 break; 6399 6400 case 396: 6401 #line 1571 "parser.yy" /* yacc.c:1646 */ 6402 { (yyval.en) = 0; } 6403 #line 6404 "Parser/parser.cc" /* yacc.c:1646 */ 6404 break; 6405 6406 case 397: 6407 #line 1573 "parser.yy" /* yacc.c:1646 */ 6408 { (yyval.en) = (yyvsp[0].en); } 6409 #line 6410 "Parser/parser.cc" /* yacc.c:1646 */ 6410 break; 6411 6412 case 398: 6413 #line 1580 "parser.yy" /* yacc.c:1646 */ 7002 6414 { (yyval.decl) = 0; } 7003 break; 7004 7005 case 371: 7006 7007 /* Line 1806 of yacc.c */ 7008 #line 1489 "parser.yy" 7009 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7010 break; 7011 7012 case 373: 7013 7014 /* Line 1806 of yacc.c */ 7015 #line 1495 "parser.yy" 7016 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7017 break; 7018 7019 case 375: 7020 7021 /* Line 1806 of yacc.c */ 7022 #line 1498 "parser.yy" 7023 { // mark all fields in list 7024 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() ) 7025 iter->set_extension( true ); 7026 (yyval.decl) = (yyvsp[(2) - (3)].decl); 6415 #line 6416 "Parser/parser.cc" /* yacc.c:1646 */ 6416 break; 6417 6418 case 402: 6419 #line 1588 "parser.yy" /* yacc.c:1646 */ 6420 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6421 #line 6422 "Parser/parser.cc" /* yacc.c:1646 */ 6422 break; 6423 6424 case 403: 6425 #line 1590 "parser.yy" /* yacc.c:1646 */ 6426 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6427 #line 6428 "Parser/parser.cc" /* yacc.c:1646 */ 6428 break; 6429 6430 case 404: 6431 #line 1592 "parser.yy" /* yacc.c:1646 */ 6432 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6433 #line 6434 "Parser/parser.cc" /* yacc.c:1646 */ 6434 break; 6435 6436 case 406: 6437 #line 1600 "parser.yy" /* yacc.c:1646 */ 6438 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6439 #line 6440 "Parser/parser.cc" /* yacc.c:1646 */ 6440 break; 6441 6442 case 407: 6443 #line 1602 "parser.yy" /* yacc.c:1646 */ 6444 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6445 #line 6446 "Parser/parser.cc" /* yacc.c:1646 */ 6446 break; 6447 6448 case 408: 6449 #line 1604 "parser.yy" /* yacc.c:1646 */ 6450 { (yyval.decl) = (yyvsp[-8].decl)->appendList( (yyvsp[-4].decl) )->appendList( (yyvsp[0].decl) ); } 6451 #line 6452 "Parser/parser.cc" /* yacc.c:1646 */ 6452 break; 6453 6454 case 410: 6455 #line 1610 "parser.yy" /* yacc.c:1646 */ 6456 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6457 #line 6458 "Parser/parser.cc" /* yacc.c:1646 */ 6458 break; 6459 6460 case 411: 6461 #line 1615 "parser.yy" /* yacc.c:1646 */ 6462 { (yyval.decl) = 0; } 6463 #line 6464 "Parser/parser.cc" /* yacc.c:1646 */ 6464 break; 6465 6466 case 414: 6467 #line 1622 "parser.yy" /* yacc.c:1646 */ 6468 { (yyval.decl) = (yyvsp[-4].decl)->addVarArgs(); } 6469 #line 6470 "Parser/parser.cc" /* yacc.c:1646 */ 6470 break; 6471 6472 case 417: 6473 #line 1629 "parser.yy" /* yacc.c:1646 */ 6474 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6475 #line 6476 "Parser/parser.cc" /* yacc.c:1646 */ 6476 break; 6477 6478 case 418: 6479 #line 1631 "parser.yy" /* yacc.c:1646 */ 6480 { (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[0].decl) ); } 6481 #line 6482 "Parser/parser.cc" /* yacc.c:1646 */ 6482 break; 6483 6484 case 420: 6485 #line 1640 "parser.yy" /* yacc.c:1646 */ 6486 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6487 #line 6488 "Parser/parser.cc" /* yacc.c:1646 */ 6488 break; 6489 6490 case 421: 6491 #line 1643 "parser.yy" /* yacc.c:1646 */ 6492 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) ); } 6493 #line 6494 "Parser/parser.cc" /* yacc.c:1646 */ 6494 break; 6495 6496 case 422: 6497 #line 1645 "parser.yy" /* yacc.c:1646 */ 6498 { (yyval.decl) = (yyvsp[-2].decl)->addName( (yyvsp[-1].tok) )->addQualifiers( (yyvsp[-3].decl) ); } 6499 #line 6500 "Parser/parser.cc" /* yacc.c:1646 */ 6500 break; 6501 6502 case 427: 6503 #line 1655 "parser.yy" /* yacc.c:1646 */ 6504 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6505 #line 6506 "Parser/parser.cc" /* yacc.c:1646 */ 6506 break; 6507 6508 case 429: 6509 #line 1661 "parser.yy" /* yacc.c:1646 */ 6510 { 6511 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6512 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 7027 6513 } 7028 break; 7029 7030 case 377: 7031 7032 /* Line 1806 of yacc.c */ 7033 #line 1508 "parser.yy" 7034 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7035 break; 7036 7037 case 378: 7038 7039 /* Line 1806 of yacc.c */ 7040 #line 1510 "parser.yy" 7041 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7042 break; 7043 7044 case 379: 7045 7046 /* Line 1806 of yacc.c */ 7047 #line 1512 "parser.yy" 7048 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7049 break; 7050 7051 case 380: 7052 7053 /* Line 1806 of yacc.c */ 7054 #line 1517 "parser.yy" 7055 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7056 break; 7057 7058 case 381: 7059 7060 /* Line 1806 of yacc.c */ 7061 #line 1519 "parser.yy" 7062 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7063 break; 7064 7065 case 382: 7066 7067 /* Line 1806 of yacc.c */ 7068 #line 1524 "parser.yy" 7069 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7070 break; 7071 7072 case 383: 7073 7074 /* Line 1806 of yacc.c */ 7075 #line 1526 "parser.yy" 7076 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7077 break; 7078 7079 case 384: 7080 7081 /* Line 1806 of yacc.c */ 7082 #line 1529 "parser.yy" 7083 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7084 break; 7085 7086 case 385: 7087 7088 /* Line 1806 of yacc.c */ 7089 #line 1532 "parser.yy" 7090 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7091 break; 7092 7093 case 387: 7094 7095 /* Line 1806 of yacc.c */ 7096 #line 1538 "parser.yy" 7097 { (yyval.en) = 0; } 7098 break; 7099 7100 case 388: 7101 7102 /* Line 1806 of yacc.c */ 7103 #line 1540 "parser.yy" 7104 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7105 break; 7106 7107 case 389: 7108 7109 /* Line 1806 of yacc.c */ 7110 #line 1545 "parser.yy" 7111 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7112 break; 7113 7114 case 391: 7115 7116 /* Line 1806 of yacc.c */ 7117 #line 1554 "parser.yy" 7118 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7119 break; 7120 7121 case 392: 7122 7123 /* Line 1806 of yacc.c */ 7124 #line 1556 "parser.yy" 7125 { 7126 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7127 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 6514 #line 6515 "Parser/parser.cc" /* yacc.c:1646 */ 6515 break; 6516 6517 case 430: 6518 #line 1666 "parser.yy" /* yacc.c:1646 */ 6519 { 6520 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6521 (yyval.decl) = (yyvsp[-1].decl)->addType( (yyvsp[-2].decl) )->addInitializer( new InitializerNode( (yyvsp[0].en) ) ); 7128 6522 } 7129 break; 7130 7131 case 393: 7132 7133 /* Line 1806 of yacc.c */ 7134 #line 1561 "parser.yy" 7135 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7136 break; 7137 7138 case 394: 7139 7140 /* Line 1806 of yacc.c */ 7141 #line 1563 "parser.yy" 7142 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7143 break; 7144 7145 case 395: 7146 7147 /* Line 1806 of yacc.c */ 7148 #line 1568 "parser.yy" 7149 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7150 break; 7151 7152 case 396: 7153 7154 /* Line 1806 of yacc.c */ 7155 #line 1570 "parser.yy" 7156 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7157 break; 7158 7159 case 397: 7160 7161 /* Line 1806 of yacc.c */ 7162 #line 1575 "parser.yy" 7163 { (yyval.en) = 0; } 7164 break; 7165 7166 case 398: 7167 7168 /* Line 1806 of yacc.c */ 7169 #line 1577 "parser.yy" 7170 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7171 break; 7172 7173 case 399: 7174 7175 /* Line 1806 of yacc.c */ 7176 #line 1584 "parser.yy" 6523 #line 6524 "Parser/parser.cc" /* yacc.c:1646 */ 6524 break; 6525 6526 case 432: 6527 #line 1675 "parser.yy" /* yacc.c:1646 */ 6528 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6529 #line 6530 "Parser/parser.cc" /* yacc.c:1646 */ 6530 break; 6531 6532 case 433: 6533 #line 1684 "parser.yy" /* yacc.c:1646 */ 6534 { (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); } 6535 #line 6536 "Parser/parser.cc" /* yacc.c:1646 */ 6536 break; 6537 6538 case 434: 6539 #line 1686 "parser.yy" /* yacc.c:1646 */ 6540 { (yyval.decl) = (yyvsp[-2].decl)->appendList( DeclarationNode::newName( (yyvsp[0].tok) ) ); } 6541 #line 6542 "Parser/parser.cc" /* yacc.c:1646 */ 6542 break; 6543 6544 case 446: 6545 #line 1711 "parser.yy" /* yacc.c:1646 */ 6546 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6547 #line 6548 "Parser/parser.cc" /* yacc.c:1646 */ 6548 break; 6549 6550 case 450: 6551 #line 1719 "parser.yy" /* yacc.c:1646 */ 6552 { (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); } 6553 #line 6554 "Parser/parser.cc" /* yacc.c:1646 */ 6554 break; 6555 6556 case 451: 6557 #line 1724 "parser.yy" /* yacc.c:1646 */ 6558 { (yyval.in) = 0; } 6559 #line 6560 "Parser/parser.cc" /* yacc.c:1646 */ 6560 break; 6561 6562 case 452: 6563 #line 1726 "parser.yy" /* yacc.c:1646 */ 6564 { (yyval.in) = (yyvsp[0].in); } 6565 #line 6566 "Parser/parser.cc" /* yacc.c:1646 */ 6566 break; 6567 6568 case 453: 6569 #line 1728 "parser.yy" /* yacc.c:1646 */ 6570 { (yyval.in) = (yyvsp[0].in)->set_maybeConstructed( false ); } 6571 #line 6572 "Parser/parser.cc" /* yacc.c:1646 */ 6572 break; 6573 6574 case 454: 6575 #line 1732 "parser.yy" /* yacc.c:1646 */ 6576 { (yyval.in) = new InitializerNode( (yyvsp[0].en) ); } 6577 #line 6578 "Parser/parser.cc" /* yacc.c:1646 */ 6578 break; 6579 6580 case 455: 6581 #line 1733 "parser.yy" /* yacc.c:1646 */ 6582 { (yyval.in) = new InitializerNode( (yyvsp[-2].in), true ); } 6583 #line 6584 "Parser/parser.cc" /* yacc.c:1646 */ 6584 break; 6585 6586 case 456: 6587 #line 1738 "parser.yy" /* yacc.c:1646 */ 6588 { (yyval.in) = 0; } 6589 #line 6590 "Parser/parser.cc" /* yacc.c:1646 */ 6590 break; 6591 6592 case 458: 6593 #line 1740 "parser.yy" /* yacc.c:1646 */ 6594 { (yyval.in) = (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ); } 6595 #line 6596 "Parser/parser.cc" /* yacc.c:1646 */ 6596 break; 6597 6598 case 459: 6599 #line 1741 "parser.yy" /* yacc.c:1646 */ 6600 { (yyval.in) = (InitializerNode *)( (yyvsp[-2].in)->set_last( (yyvsp[0].in) ) ); } 6601 #line 6602 "Parser/parser.cc" /* yacc.c:1646 */ 6602 break; 6603 6604 case 460: 6605 #line 1743 "parser.yy" /* yacc.c:1646 */ 6606 { (yyval.in) = (InitializerNode *)( (yyvsp[-3].in)->set_last( (yyvsp[0].in)->set_designators( (yyvsp[-1].en) ) ) ); } 6607 #line 6608 "Parser/parser.cc" /* yacc.c:1646 */ 6608 break; 6609 6610 case 462: 6611 #line 1759 "parser.yy" /* yacc.c:1646 */ 6612 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[-1].tok) ) ); } 6613 #line 6614 "Parser/parser.cc" /* yacc.c:1646 */ 6614 break; 6615 6616 case 464: 6617 #line 1765 "parser.yy" /* yacc.c:1646 */ 6618 { (yyval.en) = (ExpressionNode *)( (yyvsp[-1].en)->set_last( (yyvsp[0].en) ) ); } 6619 #line 6620 "Parser/parser.cc" /* yacc.c:1646 */ 6620 break; 6621 6622 case 465: 6623 #line 1771 "parser.yy" /* yacc.c:1646 */ 6624 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[0].tok) ) ); } 6625 #line 6626 "Parser/parser.cc" /* yacc.c:1646 */ 6626 break; 6627 6628 case 466: 6629 #line 1774 "parser.yy" /* yacc.c:1646 */ 6630 { (yyval.en) = (yyvsp[-2].en); } 6631 #line 6632 "Parser/parser.cc" /* yacc.c:1646 */ 6632 break; 6633 6634 case 467: 6635 #line 1776 "parser.yy" /* yacc.c:1646 */ 6636 { (yyval.en) = (yyvsp[-2].en); } 6637 #line 6638 "Parser/parser.cc" /* yacc.c:1646 */ 6638 break; 6639 6640 case 468: 6641 #line 1778 "parser.yy" /* yacc.c:1646 */ 6642 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-4].en), (yyvsp[-2].en) ) ); } 6643 #line 6644 "Parser/parser.cc" /* yacc.c:1646 */ 6644 break; 6645 6646 case 469: 6647 #line 1780 "parser.yy" /* yacc.c:1646 */ 6648 { (yyval.en) = (yyvsp[-2].en); } 6649 #line 6650 "Parser/parser.cc" /* yacc.c:1646 */ 6650 break; 6651 6652 case 471: 6653 #line 1804 "parser.yy" /* yacc.c:1646 */ 6654 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6655 #line 6656 "Parser/parser.cc" /* yacc.c:1646 */ 6656 break; 6657 6658 case 472: 6659 #line 1806 "parser.yy" /* yacc.c:1646 */ 6660 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6661 #line 6662 "Parser/parser.cc" /* yacc.c:1646 */ 6662 break; 6663 6664 case 473: 6665 #line 1808 "parser.yy" /* yacc.c:1646 */ 6666 { (yyval.decl) = (yyvsp[-2].decl)->addQualifiers( (yyvsp[-1].decl) )->addQualifiers( (yyvsp[0].decl) ); } 6667 #line 6668 "Parser/parser.cc" /* yacc.c:1646 */ 6668 break; 6669 6670 case 475: 6671 #line 1814 "parser.yy" /* yacc.c:1646 */ 6672 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 6673 #line 6674 "Parser/parser.cc" /* yacc.c:1646 */ 6674 break; 6675 6676 case 476: 6677 #line 1816 "parser.yy" /* yacc.c:1646 */ 6678 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 6679 #line 6680 "Parser/parser.cc" /* yacc.c:1646 */ 6680 break; 6681 6682 case 477: 6683 #line 1821 "parser.yy" /* yacc.c:1646 */ 6684 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[-3].tok), (yyvsp[-1].en) ); } 6685 #line 6686 "Parser/parser.cc" /* yacc.c:1646 */ 6686 break; 6687 6688 case 479: 6689 #line 1827 "parser.yy" /* yacc.c:1646 */ 6690 { (yyval.decl) = (yyvsp[-3].decl)->appendList( (yyvsp[-1].decl) ); } 6691 #line 6692 "Parser/parser.cc" /* yacc.c:1646 */ 6692 break; 6693 6694 case 480: 6695 #line 1832 "parser.yy" /* yacc.c:1646 */ 6696 { typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); } 6697 #line 6698 "Parser/parser.cc" /* yacc.c:1646 */ 6698 break; 6699 6700 case 481: 6701 #line 1834 "parser.yy" /* yacc.c:1646 */ 6702 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[-3].tclass), (yyvsp[-2].tok) )->addAssertions( (yyvsp[0].decl) ); } 6703 #line 6704 "Parser/parser.cc" /* yacc.c:1646 */ 6704 break; 6705 6706 case 483: 6707 #line 1840 "parser.yy" /* yacc.c:1646 */ 6708 { (yyval.tclass) = DeclarationNode::Type; } 6709 #line 6710 "Parser/parser.cc" /* yacc.c:1646 */ 6710 break; 6711 6712 case 484: 6713 #line 1842 "parser.yy" /* yacc.c:1646 */ 6714 { (yyval.tclass) = DeclarationNode::Ftype; } 6715 #line 6716 "Parser/parser.cc" /* yacc.c:1646 */ 6716 break; 6717 6718 case 485: 6719 #line 1844 "parser.yy" /* yacc.c:1646 */ 6720 { (yyval.tclass) = DeclarationNode::Dtype; } 6721 #line 6722 "Parser/parser.cc" /* yacc.c:1646 */ 6722 break; 6723 6724 case 486: 6725 #line 1849 "parser.yy" /* yacc.c:1646 */ 7177 6726 { (yyval.decl) = 0; } 7178 break; 7179 7180 case 403: 7181 7182 /* Line 1806 of yacc.c */ 7183 #line 1592 "parser.yy" 7184 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7185 break; 7186 7187 case 404: 7188 7189 /* Line 1806 of yacc.c */ 7190 #line 1594 "parser.yy" 7191 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7192 break; 7193 7194 case 405: 7195 7196 /* Line 1806 of yacc.c */ 7197 #line 1596 "parser.yy" 7198 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7199 break; 7200 7201 case 407: 7202 7203 /* Line 1806 of yacc.c */ 7204 #line 1604 "parser.yy" 7205 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7206 break; 7207 7208 case 408: 7209 7210 /* Line 1806 of yacc.c */ 7211 #line 1606 "parser.yy" 7212 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7213 break; 7214 7215 case 409: 7216 7217 /* Line 1806 of yacc.c */ 7218 #line 1608 "parser.yy" 7219 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7220 break; 7221 7222 case 411: 7223 7224 /* Line 1806 of yacc.c */ 7225 #line 1614 "parser.yy" 7226 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7227 break; 7228 7229 case 412: 7230 7231 /* Line 1806 of yacc.c */ 7232 #line 1619 "parser.yy" 6727 #line 6728 "Parser/parser.cc" /* yacc.c:1646 */ 6728 break; 6729 6730 case 487: 6731 #line 1851 "parser.yy" /* yacc.c:1646 */ 6732 { (yyval.decl) = (yyvsp[-1].decl) != 0 ? (yyvsp[-1].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6733 #line 6734 "Parser/parser.cc" /* yacc.c:1646 */ 6734 break; 6735 6736 case 488: 6737 #line 1856 "parser.yy" /* yacc.c:1646 */ 6738 { 6739 typedefTable.openTrait( *(yyvsp[-3].tok) ); 6740 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[-3].tok), (yyvsp[-1].en) ); 6741 } 6742 #line 6743 "Parser/parser.cc" /* yacc.c:1646 */ 6743 break; 6744 6745 case 489: 6746 #line 1861 "parser.yy" /* yacc.c:1646 */ 6747 { (yyval.decl) = (yyvsp[-1].decl); } 6748 #line 6749 "Parser/parser.cc" /* yacc.c:1646 */ 6749 break; 6750 6751 case 490: 6752 #line 1863 "parser.yy" /* yacc.c:1646 */ 7233 6753 { (yyval.decl) = 0; } 7234 break; 7235 7236 case 415: 7237 7238 /* Line 1806 of yacc.c */ 7239 #line 1626 "parser.yy" 7240 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7241 break; 7242 7243 case 418: 7244 7245 /* Line 1806 of yacc.c */ 7246 #line 1633 "parser.yy" 7247 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7248 break; 7249 7250 case 419: 7251 7252 /* Line 1806 of yacc.c */ 7253 #line 1635 "parser.yy" 7254 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7255 break; 7256 7257 case 421: 7258 7259 /* Line 1806 of yacc.c */ 7260 #line 1644 "parser.yy" 7261 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7262 break; 7263 7264 case 422: 7265 7266 /* Line 1806 of yacc.c */ 7267 #line 1647 "parser.yy" 7268 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7269 break; 7270 7271 case 423: 7272 7273 /* Line 1806 of yacc.c */ 7274 #line 1649 "parser.yy" 7275 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7276 break; 7277 7278 case 428: 7279 7280 /* Line 1806 of yacc.c */ 7281 #line 1659 "parser.yy" 7282 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7283 break; 7284 7285 case 430: 7286 7287 /* Line 1806 of yacc.c */ 7288 #line 1665 "parser.yy" 7289 { 7290 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7291 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6754 #line 6755 "Parser/parser.cc" /* yacc.c:1646 */ 6755 break; 6756 6757 case 491: 6758 #line 1868 "parser.yy" /* yacc.c:1646 */ 6759 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ); } 6760 #line 6761 "Parser/parser.cc" /* yacc.c:1646 */ 6761 break; 6762 6763 case 493: 6764 #line 1871 "parser.yy" /* yacc.c:1646 */ 6765 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[0].decl) ) ) ) ); } 6766 #line 6767 "Parser/parser.cc" /* yacc.c:1646 */ 6767 break; 6768 6769 case 494: 6770 #line 1873 "parser.yy" /* yacc.c:1646 */ 6771 { (yyval.en) = (ExpressionNode *)( (yyvsp[-2].en)->set_last( (yyvsp[0].en) )); } 6772 #line 6773 "Parser/parser.cc" /* yacc.c:1646 */ 6773 break; 6774 6775 case 495: 6776 #line 1878 "parser.yy" /* yacc.c:1646 */ 6777 { (yyval.decl) = (yyvsp[0].decl); } 6778 #line 6779 "Parser/parser.cc" /* yacc.c:1646 */ 6779 break; 6780 6781 case 496: 6782 #line 1880 "parser.yy" /* yacc.c:1646 */ 6783 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-2].decl) ); } 6784 #line 6785 "Parser/parser.cc" /* yacc.c:1646 */ 6785 break; 6786 6787 case 497: 6788 #line 1882 "parser.yy" /* yacc.c:1646 */ 6789 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl)->copyStorageClasses( (yyvsp[-2].decl) ) ); } 6790 #line 6791 "Parser/parser.cc" /* yacc.c:1646 */ 6791 break; 6792 6793 case 498: 6794 #line 1887 "parser.yy" /* yacc.c:1646 */ 6795 { (yyval.decl) = (yyvsp[-1].decl)->addAssertions( (yyvsp[0].decl) ); } 6796 #line 6797 "Parser/parser.cc" /* yacc.c:1646 */ 6797 break; 6798 6799 case 499: 6800 #line 1889 "parser.yy" /* yacc.c:1646 */ 6801 { (yyval.decl) = (yyvsp[-3].decl)->addAssertions( (yyvsp[-2].decl) )->addType( (yyvsp[0].decl) ); } 6802 #line 6803 "Parser/parser.cc" /* yacc.c:1646 */ 6803 break; 6804 6805 case 500: 6806 #line 1894 "parser.yy" /* yacc.c:1646 */ 6807 { 6808 typedefTable.addToEnclosingScope( *(yyvsp[0].tok), TypedefTable::TD ); 6809 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[0].tok), 0 ); 7292 6810 } 7293 break; 7294 7295 case 431: 7296 7297 /* Line 1806 of yacc.c */ 7298 #line 1670 "parser.yy" 7299 { 7300 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7301 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ) ); 6811 #line 6812 "Parser/parser.cc" /* yacc.c:1646 */ 6812 break; 6813 6814 case 501: 6815 #line 1899 "parser.yy" /* yacc.c:1646 */ 6816 { 6817 typedefTable.addToEnclosingScope( *(yyvsp[-5].tok), TypedefTable::TG ); 6818 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[-5].tok), (yyvsp[-2].decl) ); 7302 6819 } 7303 break; 7304 7305 case 433: 7306 7307 /* Line 1806 of yacc.c */ 7308 #line 1679 "parser.yy" 7309 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7310 break; 7311 7312 case 434: 7313 7314 /* Line 1806 of yacc.c */ 7315 #line 1688 "parser.yy" 7316 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7317 break; 7318 7319 case 435: 7320 7321 /* Line 1806 of yacc.c */ 7322 #line 1690 "parser.yy" 7323 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7324 break; 7325 7326 case 447: 7327 7328 /* Line 1806 of yacc.c */ 7329 #line 1715 "parser.yy" 7330 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7331 break; 7332 7333 case 451: 7334 7335 /* Line 1806 of yacc.c */ 7336 #line 1723 "parser.yy" 7337 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7338 break; 7339 7340 case 452: 7341 7342 /* Line 1806 of yacc.c */ 7343 #line 1728 "parser.yy" 7344 { (yyval.in) = 0; } 7345 break; 7346 7347 case 453: 7348 7349 /* Line 1806 of yacc.c */ 7350 #line 1730 "parser.yy" 7351 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7352 break; 7353 7354 case 454: 7355 7356 /* Line 1806 of yacc.c */ 7357 #line 1732 "parser.yy" 7358 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7359 break; 7360 7361 case 455: 7362 7363 /* Line 1806 of yacc.c */ 7364 #line 1736 "parser.yy" 7365 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7366 break; 7367 7368 case 456: 7369 7370 /* Line 1806 of yacc.c */ 7371 #line 1737 "parser.yy" 7372 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7373 break; 7374 7375 case 457: 7376 7377 /* Line 1806 of yacc.c */ 7378 #line 1742 "parser.yy" 7379 { (yyval.in) = 0; } 7380 break; 7381 7382 case 459: 7383 7384 /* Line 1806 of yacc.c */ 7385 #line 1744 "parser.yy" 7386 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7387 break; 7388 7389 case 460: 7390 7391 /* Line 1806 of yacc.c */ 7392 #line 1745 "parser.yy" 7393 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7394 break; 7395 7396 case 461: 7397 7398 /* Line 1806 of yacc.c */ 7399 #line 1747 "parser.yy" 7400 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7401 break; 7402 7403 case 463: 7404 7405 /* Line 1806 of yacc.c */ 7406 #line 1763 "parser.yy" 7407 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7408 break; 7409 7410 case 465: 7411 7412 /* Line 1806 of yacc.c */ 7413 #line 1769 "parser.yy" 7414 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7415 break; 7416 7417 case 466: 7418 7419 /* Line 1806 of yacc.c */ 7420 #line 1775 "parser.yy" 7421 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7422 break; 7423 7424 case 467: 7425 7426 /* Line 1806 of yacc.c */ 7427 #line 1778 "parser.yy" 7428 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7429 break; 7430 7431 case 468: 7432 7433 /* Line 1806 of yacc.c */ 7434 #line 1780 "parser.yy" 7435 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7436 break; 7437 7438 case 469: 7439 7440 /* Line 1806 of yacc.c */ 7441 #line 1782 "parser.yy" 7442 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7443 break; 7444 7445 case 470: 7446 7447 /* Line 1806 of yacc.c */ 7448 #line 1784 "parser.yy" 7449 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7450 break; 7451 7452 case 472: 7453 7454 /* Line 1806 of yacc.c */ 7455 #line 1808 "parser.yy" 7456 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7457 break; 7458 7459 case 473: 7460 7461 /* Line 1806 of yacc.c */ 7462 #line 1810 "parser.yy" 7463 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7464 break; 7465 7466 case 474: 7467 7468 /* Line 1806 of yacc.c */ 7469 #line 1812 "parser.yy" 7470 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7471 break; 7472 7473 case 476: 7474 7475 /* Line 1806 of yacc.c */ 7476 #line 1818 "parser.yy" 7477 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7478 break; 7479 7480 case 477: 7481 7482 /* Line 1806 of yacc.c */ 7483 #line 1820 "parser.yy" 7484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7485 break; 7486 7487 case 478: 7488 7489 /* Line 1806 of yacc.c */ 7490 #line 1825 "parser.yy" 7491 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7492 break; 7493 7494 case 480: 7495 7496 /* Line 1806 of yacc.c */ 7497 #line 1831 "parser.yy" 7498 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7499 break; 7500 7501 case 481: 7502 7503 /* Line 1806 of yacc.c */ 7504 #line 1836 "parser.yy" 7505 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7506 break; 7507 7508 case 482: 7509 7510 /* Line 1806 of yacc.c */ 7511 #line 1838 "parser.yy" 7512 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7513 break; 7514 7515 case 484: 7516 7517 /* Line 1806 of yacc.c */ 7518 #line 1844 "parser.yy" 7519 { (yyval.tclass) = DeclarationNode::Type; } 7520 break; 7521 7522 case 485: 7523 7524 /* Line 1806 of yacc.c */ 7525 #line 1846 "parser.yy" 7526 { (yyval.tclass) = DeclarationNode::Ftype; } 7527 break; 7528 7529 case 486: 7530 7531 /* Line 1806 of yacc.c */ 7532 #line 1848 "parser.yy" 7533 { (yyval.tclass) = DeclarationNode::Dtype; } 7534 break; 7535 7536 case 487: 7537 7538 /* Line 1806 of yacc.c */ 7539 #line 1853 "parser.yy" 7540 { (yyval.decl) = 0; } 7541 break; 7542 7543 case 488: 7544 7545 /* Line 1806 of yacc.c */ 7546 #line 1855 "parser.yy" 7547 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7548 break; 7549 7550 case 489: 7551 7552 /* Line 1806 of yacc.c */ 7553 #line 1860 "parser.yy" 7554 { 7555 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); 7556 (yyval.decl) = DeclarationNode::newTraitUse( (yyvsp[(2) - (5)].tok), (yyvsp[(4) - (5)].en) ); 6820 #line 6821 "Parser/parser.cc" /* yacc.c:1646 */ 6821 break; 6822 6823 case 502: 6824 #line 1907 "parser.yy" /* yacc.c:1646 */ 6825 { 6826 typedefTable.addToEnclosingScope( *(yyvsp[-7].tok), TypedefTable::ID ); 6827 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-7].tok), (yyvsp[-4].decl), 0 ); 7557 6828 } 7558 break; 7559 7560 case 490: 7561 7562 /* Line 1806 of yacc.c */ 7563 #line 1865 "parser.yy" 7564 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7565 break; 7566 7567 case 491: 7568 7569 /* Line 1806 of yacc.c */ 7570 #line 1867 "parser.yy" 7571 { (yyval.decl) = 0; } 7572 break; 7573 7574 case 492: 7575 7576 /* Line 1806 of yacc.c */ 7577 #line 1872 "parser.yy" 7578 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7579 break; 7580 7581 case 494: 7582 7583 /* Line 1806 of yacc.c */ 7584 #line 1875 "parser.yy" 7585 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7586 break; 7587 7588 case 495: 7589 7590 /* Line 1806 of yacc.c */ 7591 #line 1877 "parser.yy" 7592 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7593 break; 7594 7595 case 496: 7596 7597 /* Line 1806 of yacc.c */ 7598 #line 1882 "parser.yy" 7599 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7600 break; 7601 7602 case 497: 7603 7604 /* Line 1806 of yacc.c */ 7605 #line 1884 "parser.yy" 7606 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7607 break; 7608 7609 case 498: 7610 7611 /* Line 1806 of yacc.c */ 7612 #line 1886 "parser.yy" 7613 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7614 break; 7615 7616 case 499: 7617 7618 /* Line 1806 of yacc.c */ 7619 #line 1891 "parser.yy" 7620 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7621 break; 7622 7623 case 500: 7624 7625 /* Line 1806 of yacc.c */ 7626 #line 1893 "parser.yy" 7627 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7628 break; 7629 7630 case 501: 7631 7632 /* Line 1806 of yacc.c */ 7633 #line 1898 "parser.yy" 7634 { 7635 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); 7636 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (1)].tok), 0 ); 7637 } 7638 break; 7639 7640 case 502: 7641 7642 /* Line 1806 of yacc.c */ 7643 #line 1903 "parser.yy" 7644 { 7645 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); 7646 (yyval.decl) = DeclarationNode::newTypeDecl( (yyvsp[(1) - (6)].tok), (yyvsp[(4) - (6)].decl) ); 7647 } 6829 #line 6830 "Parser/parser.cc" /* yacc.c:1646 */ 7648 6830 break; 7649 6831 7650 6832 case 503: 7651 7652 /* Line 1806 of yacc.c */ 7653 #line 1911 "parser.yy" 7654 { 7655 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); 7656 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[(2) - (9)].tok), (yyvsp[(5) - (9)].decl), 0 ); 7657 } 7658 break; 7659 7660 case 504: 7661 7662 /* Line 1806 of yacc.c */ 7663 #line 1916 "parser.yy" 7664 { 7665 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); 6833 #line 1912 "parser.yy" /* yacc.c:1646 */ 6834 { 6835 typedefTable.enterTrait( *(yyvsp[-6].tok) ); 7666 6836 typedefTable.enterScope(); 7667 6837 } 7668 break; 7669 7670 case 505: 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1921 "parser.yy" 6838 #line 6839 "Parser/parser.cc" /* yacc.c:1646 */ 6839 break; 6840 6841 case 504: 6842 #line 1917 "parser.yy" /* yacc.c:1646 */ 7674 6843 { 7675 6844 typedefTable.leaveTrait(); 7676 typedefTable.addToEnclosingScope( *(yyvsp[ (2) - (11)].tok), TypedefTable::ID );7677 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[ (2) - (11)].tok), (yyvsp[(5) - (11)].decl), (yyvsp[(10) - (11)].decl) );6845 typedefTable.addToEnclosingScope( *(yyvsp[-9].tok), TypedefTable::ID ); 6846 (yyval.decl) = DeclarationNode::newTrait( (yyvsp[-9].tok), (yyvsp[-6].decl), (yyvsp[-1].decl) ); 7678 6847 } 7679 break; 7680 7681 case 507: 7682 7683 /* Line 1806 of yacc.c */ 7684 #line 1931 "parser.yy" 7685 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6848 #line 6849 "Parser/parser.cc" /* yacc.c:1646 */ 6849 break; 6850 6851 case 506: 6852 #line 1927 "parser.yy" /* yacc.c:1646 */ 6853 { (yyval.decl) = (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ); } 6854 #line 6855 "Parser/parser.cc" /* yacc.c:1646 */ 6855 break; 6856 6857 case 509: 6858 #line 1937 "parser.yy" /* yacc.c:1646 */ 6859 { 6860 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6861 (yyval.decl) = (yyvsp[0].decl); 6862 } 6863 #line 6864 "Parser/parser.cc" /* yacc.c:1646 */ 7686 6864 break; 7687 6865 7688 6866 case 510: 7689 7690 /* Line 1806 of yacc.c */ 7691 #line 1941 "parser.yy" 6867 #line 1942 "parser.yy" /* yacc.c:1646 */ 7692 6868 { 7693 6869 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7694 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6870 (yyval.decl) = (yyvsp[0].decl); 7695 6871 } 6872 #line 6873 "Parser/parser.cc" /* yacc.c:1646 */ 7696 6873 break; 7697 6874 7698 6875 case 511: 7699 7700 /* Line 1806 of yacc.c */ 7701 #line 1946 "parser.yy" 6876 #line 1947 "parser.yy" /* yacc.c:1646 */ 6877 { 6878 typedefTable.addToEnclosingScope2( *(yyvsp[0].tok), TypedefTable::ID ); 6879 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneType( (yyvsp[0].tok) ) ); 6880 } 6881 #line 6882 "Parser/parser.cc" /* yacc.c:1646 */ 6882 break; 6883 6884 case 512: 6885 #line 1955 "parser.yy" /* yacc.c:1646 */ 7702 6886 { 7703 6887 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7704 (yyval.decl) = (yyvsp[ (1) - (1)].decl);6888 (yyval.decl) = (yyvsp[0].decl)->addType( (yyvsp[-1].decl) ); 7705 6889 } 7706 break; 7707 7708 case 512: 7709 7710 /* Line 1806 of yacc.c */ 7711 #line 1951 "parser.yy" 7712 { 7713 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); 7714 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneType( (yyvsp[(5) - (5)].tok) ) ); 6890 #line 6891 "Parser/parser.cc" /* yacc.c:1646 */ 6891 break; 6892 6893 case 513: 6894 #line 1960 "parser.yy" /* yacc.c:1646 */ 6895 { 6896 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 6897 (yyval.decl) = (yyvsp[-4].decl)->appendList( (yyvsp[-4].decl)->cloneBaseType( (yyvsp[0].decl) ) ); 7715 6898 } 7716 break; 7717 7718 case 513: 7719 7720 /* Line 1806 of yacc.c */ 7721 #line 1959 "parser.yy" 7722 { 7723 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7724 (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); 6899 #line 6900 "Parser/parser.cc" /* yacc.c:1646 */ 6900 break; 6901 6902 case 514: 6903 #line 1970 "parser.yy" /* yacc.c:1646 */ 6904 {} 6905 #line 6906 "Parser/parser.cc" /* yacc.c:1646 */ 6906 break; 6907 6908 case 515: 6909 #line 1972 "parser.yy" /* yacc.c:1646 */ 6910 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6911 #line 6912 "Parser/parser.cc" /* yacc.c:1646 */ 6912 break; 6913 6914 case 517: 6915 #line 1978 "parser.yy" /* yacc.c:1646 */ 6916 { (yyval.decl) = (yyvsp[-2].decl) != nullptr ? (yyvsp[-2].decl)->appendList( (yyvsp[0].decl) ) : (yyvsp[0].decl); } 6917 #line 6918 "Parser/parser.cc" /* yacc.c:1646 */ 6918 break; 6919 6920 case 518: 6921 #line 1983 "parser.yy" /* yacc.c:1646 */ 6922 { (yyval.decl) = 0; } 6923 #line 6924 "Parser/parser.cc" /* yacc.c:1646 */ 6924 break; 6925 6926 case 522: 6927 #line 1991 "parser.yy" /* yacc.c:1646 */ 6928 {} 6929 #line 6930 "Parser/parser.cc" /* yacc.c:1646 */ 6930 break; 6931 6932 case 523: 6933 #line 1993 "parser.yy" /* yacc.c:1646 */ 6934 { 6935 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 6936 linkage = LinkageSpec::fromString( assign_strptr((yyvsp[0].tok)) ); 7725 6937 } 7726 break; 7727 7728 case 514: 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 1964 "parser.yy" 7732 { 7733 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 7734 (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(1) - (5)].decl)->cloneBaseType( (yyvsp[(5) - (5)].decl) ) ); 7735 } 7736 break; 7737 7738 case 515: 7739 7740 /* Line 1806 of yacc.c */ 7741 #line 1974 "parser.yy" 7742 {} 7743 break; 7744 7745 case 516: 7746 7747 /* Line 1806 of yacc.c */ 7748 #line 1976 "parser.yy" 7749 { 7750 if ( theTree ) { 7751 theTree->appendList( (yyvsp[(1) - (1)].decl) ); 7752 } else { 7753 theTree = (yyvsp[(1) - (1)].decl); 7754 } 7755 } 7756 break; 7757 7758 case 518: 7759 7760 /* Line 1806 of yacc.c */ 7761 #line 1988 "parser.yy" 7762 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7763 break; 7764 7765 case 519: 7766 7767 /* Line 1806 of yacc.c */ 7768 #line 1993 "parser.yy" 7769 { (yyval.decl) = 0; } 7770 break; 7771 7772 case 523: 7773 7774 /* Line 1806 of yacc.c */ 7775 #line 2001 "parser.yy" 7776 {} 6938 #line 6939 "Parser/parser.cc" /* yacc.c:1646 */ 7777 6939 break; 7778 6940 7779 6941 case 524: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 2003 "parser.yy" 7783 { 7784 linkageStack.push( linkage ); 7785 linkage = LinkageSpec::fromString( *(yyvsp[(2) - (2)].tok) ); 7786 } 7787 break; 7788 7789 case 525: 7790 7791 /* Line 1806 of yacc.c */ 7792 #line 2008 "parser.yy" 6942 #line 1998 "parser.yy" /* yacc.c:1646 */ 7793 6943 { 7794 6944 linkage = linkageStack.top(); 7795 6945 linkageStack.pop(); 7796 (yyval.decl) = (yyvsp[ (5) - (6)].decl);6946 (yyval.decl) = (yyvsp[-1].decl); 7797 6947 } 7798 break; 7799 7800 case 526: 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 2014 "parser.yy" 6948 #line 6949 "Parser/parser.cc" /* yacc.c:1646 */ 6949 break; 6950 6951 case 525: 6952 #line 2004 "parser.yy" /* yacc.c:1646 */ 7804 6953 { // mark all fields in list 7805 for ( DeclarationNode *iter = (yyvsp[ (2) - (2)].decl); iter != NULL; iter = (DeclarationNode *)iter->get_next() )6954 for ( DeclarationNode *iter = (yyvsp[0].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7806 6955 iter->set_extension( true ); 7807 (yyval.decl) = (yyvsp[ (2) - (2)].decl);6956 (yyval.decl) = (yyvsp[0].decl); 7808 6957 } 7809 break; 7810 7811 case 528: 7812 7813 /* Line 1806 of yacc.c */ 7814 #line 2029 "parser.yy" 6958 #line 6959 "Parser/parser.cc" /* yacc.c:1646 */ 6959 break; 6960 6961 case 527: 6962 #line 2019 "parser.yy" /* yacc.c:1646 */ 7815 6963 { 7816 6964 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7817 6965 typedefTable.leaveScope(); 7818 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6966 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7819 6967 } 7820 break; 7821 7822 case 529: 7823 7824 /* Line 1806 of yacc.c */ 7825 #line 2035 "parser.yy" 6968 #line 6969 "Parser/parser.cc" /* yacc.c:1646 */ 6969 break; 6970 6971 case 528: 6972 #line 2025 "parser.yy" /* yacc.c:1646 */ 7826 6973 { 7827 6974 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7828 6975 typedefTable.leaveScope(); 7829 (yyval.decl) = (yyvsp[ (1) - (4)].decl)->addOldDeclList( (yyvsp[(3) - (4)].decl) )->addFunctionBody( (yyvsp[(4) - (4)].sn) );6976 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) ); 7830 6977 } 7831 break; 7832 7833 case 530: 7834 7835 /* Line 1806 of yacc.c */ 7836 #line 2044 "parser.yy" 6978 #line 6979 "Parser/parser.cc" /* yacc.c:1646 */ 6979 break; 6980 6981 case 529: 6982 #line 2034 "parser.yy" /* yacc.c:1646 */ 7837 6983 { 7838 6984 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7839 6985 typedefTable.leaveScope(); 7840 (yyval.decl) = (yyvsp[ (1) - (2)].decl)->addFunctionBody( (yyvsp[(2) - (2)].sn) );6986 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) ); 7841 6987 } 7842 break; 7843 7844 case 531: 7845 7846 /* Line 1806 of yacc.c */ 7847 #line 2050 "parser.yy" 6988 #line 6989 "Parser/parser.cc" /* yacc.c:1646 */ 6989 break; 6990 6991 case 530: 6992 #line 2040 "parser.yy" /* yacc.c:1646 */ 7848 6993 { 7849 6994 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7850 6995 typedefTable.leaveScope(); 7851 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addType( (yyvsp[(1) - (3)].decl) );6996 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-2].decl) ); 7852 6997 } 7853 break; 7854 7855 case 532: 7856 7857 /* Line 1806 of yacc.c */ 7858 #line 2056 "parser.yy" 6998 #line 6999 "Parser/parser.cc" /* yacc.c:1646 */ 6999 break; 7000 7001 case 531: 7002 #line 2046 "parser.yy" /* yacc.c:1646 */ 7859 7003 { 7860 7004 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7861 7005 typedefTable.leaveScope(); 7862 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7006 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7863 7007 } 7864 break; 7865 7866 case 533: 7867 7868 /* Line 1806 of yacc.c */ 7869 #line 2062 "parser.yy" 7008 #line 7009 "Parser/parser.cc" /* yacc.c:1646 */ 7009 break; 7010 7011 case 532: 7012 #line 2052 "parser.yy" /* yacc.c:1646 */ 7870 7013 { 7871 7014 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7872 7015 typedefTable.leaveScope(); 7873 (yyval.decl) = (yyvsp[ (2) - (3)].decl)->addFunctionBody( (yyvsp[(3) - (3)].sn) )->addQualifiers( (yyvsp[(1) - (3)].decl) );7016 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) ); 7874 7017 } 7875 break; 7876 7877 case 534: 7878 7879 /* Line 1806 of yacc.c */ 7880 #line 2068 "parser.yy" 7018 #line 7019 "Parser/parser.cc" /* yacc.c:1646 */ 7019 break; 7020 7021 case 533: 7022 #line 2058 "parser.yy" /* yacc.c:1646 */ 7881 7023 { 7882 7024 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7883 7025 typedefTable.leaveScope(); 7884 (yyval.decl) = (yyvsp[ (3) - (4)].decl)->addFunctionBody( (yyvsp[(4) - (4)].sn) )->addQualifiers( (yyvsp[(2) - (4)].decl) )->addQualifiers( (yyvsp[(1) - (4)].decl) );7026 (yyval.decl) = (yyvsp[-1].decl)->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-2].decl) )->addQualifiers( (yyvsp[-3].decl) ); 7885 7027 } 7886 break; 7887 7888 case 535: 7889 7890 /* Line 1806 of yacc.c */ 7891 #line 2076 "parser.yy" 7028 #line 7029 "Parser/parser.cc" /* yacc.c:1646 */ 7029 break; 7030 7031 case 534: 7032 #line 2066 "parser.yy" /* yacc.c:1646 */ 7892 7033 { 7893 7034 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7894 7035 typedefTable.leaveScope(); 7895 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addType( (yyvsp[(1) - (5)].decl) );7036 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addType( (yyvsp[-4].decl) ); 7896 7037 } 7897 break; 7898 7899 case 536: 7900 7901 /* Line 1806 of yacc.c */ 7902 #line 2082 "parser.yy" 7038 #line 7039 "Parser/parser.cc" /* yacc.c:1646 */ 7039 break; 7040 7041 case 535: 7042 #line 2072 "parser.yy" /* yacc.c:1646 */ 7903 7043 { 7904 7044 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7905 7045 typedefTable.leaveScope(); 7906 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );7046 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7907 7047 } 7908 break; 7909 7910 case 537: 7911 7912 /* Line 1806 of yacc.c */ 7913 #line 2090 "parser.yy" 7048 #line 7049 "Parser/parser.cc" /* yacc.c:1646 */ 7049 break; 7050 7051 case 536: 7052 #line 2080 "parser.yy" /* yacc.c:1646 */ 7914 7053 { 7915 7054 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7916 7055 typedefTable.leaveScope(); 7917 (yyval.decl) = (yyvsp[ (2) - (5)].decl)->addOldDeclList( (yyvsp[(4) - (5)].decl) )->addFunctionBody( (yyvsp[(5) - (5)].sn) )->addQualifiers( (yyvsp[(1) - (5)].decl) );7056 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) ); 7918 7057 } 7919 break; 7920 7921 case 538: 7922 7923 /* Line 1806 of yacc.c */ 7924 #line 2096 "parser.yy" 7058 #line 7059 "Parser/parser.cc" /* yacc.c:1646 */ 7059 break; 7060 7061 case 537: 7062 #line 2086 "parser.yy" /* yacc.c:1646 */ 7925 7063 { 7926 7064 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7927 7065 typedefTable.leaveScope(); 7928 (yyval.decl) = (yyvsp[ (3) - (6)].decl)->addOldDeclList( (yyvsp[(5) - (6)].decl) )->addFunctionBody( (yyvsp[(6) - (6)].sn) )->addQualifiers( (yyvsp[(2) - (6)].decl) )->addQualifiers( (yyvsp[(1) - (6)].decl) );7066 (yyval.decl) = (yyvsp[-3].decl)->addOldDeclList( (yyvsp[-1].decl) )->addFunctionBody( (yyvsp[0].sn) )->addQualifiers( (yyvsp[-4].decl) )->addQualifiers( (yyvsp[-5].decl) ); 7929 7067 } 7930 break; 7931 7932 case 542: 7933 7934 /* Line 1806 of yacc.c */ 7935 #line 2111 "parser.yy" 7936 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7937 break; 7938 7939 case 545: 7940 7941 /* Line 1806 of yacc.c */ 7942 #line 2121 "parser.yy" 7068 #line 7069 "Parser/parser.cc" /* yacc.c:1646 */ 7069 break; 7070 7071 case 541: 7072 #line 2101 "parser.yy" /* yacc.c:1646 */ 7073 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[-2].en), (yyvsp[0].en) ) ); } 7074 #line 7075 "Parser/parser.cc" /* yacc.c:1646 */ 7075 break; 7076 7077 case 544: 7078 #line 2111 "parser.yy" /* yacc.c:1646 */ 7943 7079 { (yyval.decl) = 0; } 7080 #line 7081 "Parser/parser.cc" /* yacc.c:1646 */ 7081 break; 7082 7083 case 547: 7084 #line 2118 "parser.yy" /* yacc.c:1646 */ 7085 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7086 #line 7087 "Parser/parser.cc" /* yacc.c:1646 */ 7944 7087 break; 7945 7088 7946 7089 case 548: 7947 7948 /* Line 1806 of yacc.c */ 7949 #line 2128 "parser.yy" 7950 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7951 break; 7952 7953 case 549: 7954 7955 /* Line 1806 of yacc.c */ 7956 #line 2134 "parser.yy" 7090 #line 2124 "parser.yy" /* yacc.c:1646 */ 7957 7091 { (yyval.decl) = 0; } 7092 #line 7093 "Parser/parser.cc" /* yacc.c:1646 */ 7093 break; 7094 7095 case 554: 7096 #line 2139 "parser.yy" /* yacc.c:1646 */ 7097 { delete (yyvsp[0].tok); } 7098 #line 7099 "Parser/parser.cc" /* yacc.c:1646 */ 7958 7099 break; 7959 7100 7960 7101 case 555: 7961 7962 /* Line 1806 of yacc.c */ 7963 #line 2149 "parser.yy" 7964 {} 7102 #line 2140 "parser.yy" /* yacc.c:1646 */ 7103 { delete (yyvsp[0].decl); } 7104 #line 7105 "Parser/parser.cc" /* yacc.c:1646 */ 7965 7105 break; 7966 7106 7967 7107 case 556: 7968 7969 /* Line 1806 of yacc.c */ 7970 #line 2150 "parser.yy" 7971 {} 7108 #line 2141 "parser.yy" /* yacc.c:1646 */ 7109 { delete (yyvsp[0].decl); } 7110 #line 7111 "Parser/parser.cc" /* yacc.c:1646 */ 7972 7111 break; 7973 7112 7974 7113 case 557: 7975 7976 /* Line 1806 of yacc.c */ 7977 #line 2151 "parser.yy" 7978 {} 7114 #line 2142 "parser.yy" /* yacc.c:1646 */ 7115 { delete (yyvsp[0].decl); } 7116 #line 7117 "Parser/parser.cc" /* yacc.c:1646 */ 7979 7117 break; 7980 7118 7981 7119 case 558: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2152 "parser.yy" 7985 {} 7986 break; 7987 7988 case 559: 7989 7990 /* Line 1806 of yacc.c */ 7991 #line 2187 "parser.yy" 7992 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7120 #line 2177 "parser.yy" /* yacc.c:1646 */ 7121 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7122 #line 7123 "Parser/parser.cc" /* yacc.c:1646 */ 7123 break; 7124 7125 case 560: 7126 #line 2180 "parser.yy" /* yacc.c:1646 */ 7127 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7128 #line 7129 "Parser/parser.cc" /* yacc.c:1646 */ 7993 7129 break; 7994 7130 7995 7131 case 561: 7996 7997 /* Line 1806 of yacc.c */ 7998 #line 2190 "parser.yy" 7999 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7132 #line 2182 "parser.yy" /* yacc.c:1646 */ 7133 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7134 #line 7135 "Parser/parser.cc" /* yacc.c:1646 */ 8000 7135 break; 8001 7136 8002 7137 case 562: 8003 8004 /* Line 1806 of yacc.c */ 8005 #line 2192 "parser.yy" 8006 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7138 #line 2187 "parser.yy" /* yacc.c:1646 */ 7139 { 7140 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7141 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 7142 } 7143 #line 7144 "Parser/parser.cc" /* yacc.c:1646 */ 8007 7144 break; 8008 7145 8009 7146 case 563: 8010 8011 /* Line 1806 of yacc.c */ 8012 #line 2197 "parser.yy" 8013 { 8014 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8015 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7147 #line 2192 "parser.yy" /* yacc.c:1646 */ 7148 { (yyval.decl) = (yyvsp[-1].decl); } 7149 #line 7150 "Parser/parser.cc" /* yacc.c:1646 */ 7150 break; 7151 7152 case 564: 7153 #line 2197 "parser.yy" /* yacc.c:1646 */ 7154 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7155 #line 7156 "Parser/parser.cc" /* yacc.c:1646 */ 7156 break; 7157 7158 case 565: 7159 #line 2199 "parser.yy" /* yacc.c:1646 */ 7160 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7161 #line 7162 "Parser/parser.cc" /* yacc.c:1646 */ 7162 break; 7163 7164 case 566: 7165 #line 2201 "parser.yy" /* yacc.c:1646 */ 7166 { (yyval.decl) = (yyvsp[-1].decl); } 7167 #line 7168 "Parser/parser.cc" /* yacc.c:1646 */ 7168 break; 7169 7170 case 567: 7171 #line 2206 "parser.yy" /* yacc.c:1646 */ 7172 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7173 #line 7174 "Parser/parser.cc" /* yacc.c:1646 */ 7174 break; 7175 7176 case 568: 7177 #line 2208 "parser.yy" /* yacc.c:1646 */ 7178 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7179 #line 7180 "Parser/parser.cc" /* yacc.c:1646 */ 7180 break; 7181 7182 case 569: 7183 #line 2210 "parser.yy" /* yacc.c:1646 */ 7184 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7185 #line 7186 "Parser/parser.cc" /* yacc.c:1646 */ 7186 break; 7187 7188 case 570: 7189 #line 2212 "parser.yy" /* yacc.c:1646 */ 7190 { (yyval.decl) = (yyvsp[-1].decl); } 7191 #line 7192 "Parser/parser.cc" /* yacc.c:1646 */ 7192 break; 7193 7194 case 571: 7195 #line 2217 "parser.yy" /* yacc.c:1646 */ 7196 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7197 #line 7198 "Parser/parser.cc" /* yacc.c:1646 */ 7198 break; 7199 7200 case 572: 7201 #line 2219 "parser.yy" /* yacc.c:1646 */ 7202 { (yyval.decl) = (yyvsp[-1].decl); } 7203 #line 7204 "Parser/parser.cc" /* yacc.c:1646 */ 7204 break; 7205 7206 case 573: 7207 #line 2228 "parser.yy" /* yacc.c:1646 */ 7208 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7209 #line 7210 "Parser/parser.cc" /* yacc.c:1646 */ 7210 break; 7211 7212 case 575: 7213 #line 2231 "parser.yy" /* yacc.c:1646 */ 7214 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7215 #line 7216 "Parser/parser.cc" /* yacc.c:1646 */ 7216 break; 7217 7218 case 576: 7219 #line 2236 "parser.yy" /* yacc.c:1646 */ 7220 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7221 #line 7222 "Parser/parser.cc" /* yacc.c:1646 */ 7222 break; 7223 7224 case 577: 7225 #line 2238 "parser.yy" /* yacc.c:1646 */ 7226 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7227 #line 7228 "Parser/parser.cc" /* yacc.c:1646 */ 7228 break; 7229 7230 case 578: 7231 #line 2240 "parser.yy" /* yacc.c:1646 */ 7232 { (yyval.decl) = (yyvsp[-1].decl); } 7233 #line 7234 "Parser/parser.cc" /* yacc.c:1646 */ 7234 break; 7235 7236 case 579: 7237 #line 2245 "parser.yy" /* yacc.c:1646 */ 7238 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7239 #line 7240 "Parser/parser.cc" /* yacc.c:1646 */ 7240 break; 7241 7242 case 580: 7243 #line 2247 "parser.yy" /* yacc.c:1646 */ 7244 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7245 #line 7246 "Parser/parser.cc" /* yacc.c:1646 */ 7246 break; 7247 7248 case 581: 7249 #line 2249 "parser.yy" /* yacc.c:1646 */ 7250 { (yyval.decl) = (yyvsp[-1].decl); } 7251 #line 7252 "Parser/parser.cc" /* yacc.c:1646 */ 7252 break; 7253 7254 case 582: 7255 #line 2254 "parser.yy" /* yacc.c:1646 */ 7256 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7257 #line 7258 "Parser/parser.cc" /* yacc.c:1646 */ 7258 break; 7259 7260 case 583: 7261 #line 2256 "parser.yy" /* yacc.c:1646 */ 7262 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7263 #line 7264 "Parser/parser.cc" /* yacc.c:1646 */ 7264 break; 7265 7266 case 584: 7267 #line 2258 "parser.yy" /* yacc.c:1646 */ 7268 { (yyval.decl) = (yyvsp[-1].decl); } 7269 #line 7270 "Parser/parser.cc" /* yacc.c:1646 */ 7270 break; 7271 7272 case 588: 7273 #line 2273 "parser.yy" /* yacc.c:1646 */ 7274 { (yyval.decl) = (yyvsp[-3].decl)->addIdList( (yyvsp[-1].decl) ); } 7275 #line 7276 "Parser/parser.cc" /* yacc.c:1646 */ 7276 break; 7277 7278 case 589: 7279 #line 2275 "parser.yy" /* yacc.c:1646 */ 7280 { (yyval.decl) = (yyvsp[-4].decl)->addIdList( (yyvsp[-1].decl) ); } 7281 #line 7282 "Parser/parser.cc" /* yacc.c:1646 */ 7282 break; 7283 7284 case 590: 7285 #line 2277 "parser.yy" /* yacc.c:1646 */ 7286 { (yyval.decl) = (yyvsp[-1].decl); } 7287 #line 7288 "Parser/parser.cc" /* yacc.c:1646 */ 7288 break; 7289 7290 case 591: 7291 #line 2282 "parser.yy" /* yacc.c:1646 */ 7292 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7293 #line 7294 "Parser/parser.cc" /* yacc.c:1646 */ 7294 break; 7295 7296 case 592: 7297 #line 2284 "parser.yy" /* yacc.c:1646 */ 7298 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7299 #line 7300 "Parser/parser.cc" /* yacc.c:1646 */ 7300 break; 7301 7302 case 593: 7303 #line 2286 "parser.yy" /* yacc.c:1646 */ 7304 { (yyval.decl) = (yyvsp[-1].decl); } 7305 #line 7306 "Parser/parser.cc" /* yacc.c:1646 */ 7306 break; 7307 7308 case 594: 7309 #line 2291 "parser.yy" /* yacc.c:1646 */ 7310 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7311 #line 7312 "Parser/parser.cc" /* yacc.c:1646 */ 7312 break; 7313 7314 case 595: 7315 #line 2293 "parser.yy" /* yacc.c:1646 */ 7316 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7317 #line 7318 "Parser/parser.cc" /* yacc.c:1646 */ 7318 break; 7319 7320 case 596: 7321 #line 2295 "parser.yy" /* yacc.c:1646 */ 7322 { (yyval.decl) = (yyvsp[-1].decl); } 7323 #line 7324 "Parser/parser.cc" /* yacc.c:1646 */ 7324 break; 7325 7326 case 597: 7327 #line 2310 "parser.yy" /* yacc.c:1646 */ 7328 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7329 #line 7330 "Parser/parser.cc" /* yacc.c:1646 */ 7330 break; 7331 7332 case 599: 7333 #line 2313 "parser.yy" /* yacc.c:1646 */ 7334 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7335 #line 7336 "Parser/parser.cc" /* yacc.c:1646 */ 7336 break; 7337 7338 case 600: 7339 #line 2315 "parser.yy" /* yacc.c:1646 */ 7340 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7341 #line 7342 "Parser/parser.cc" /* yacc.c:1646 */ 7342 break; 7343 7344 case 602: 7345 #line 2321 "parser.yy" /* yacc.c:1646 */ 7346 { (yyval.decl) = (yyvsp[-1].decl); } 7347 #line 7348 "Parser/parser.cc" /* yacc.c:1646 */ 7348 break; 7349 7350 case 603: 7351 #line 2326 "parser.yy" /* yacc.c:1646 */ 7352 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7353 #line 7354 "Parser/parser.cc" /* yacc.c:1646 */ 7354 break; 7355 7356 case 604: 7357 #line 2328 "parser.yy" /* yacc.c:1646 */ 7358 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7359 #line 7360 "Parser/parser.cc" /* yacc.c:1646 */ 7360 break; 7361 7362 case 605: 7363 #line 2330 "parser.yy" /* yacc.c:1646 */ 7364 { (yyval.decl) = (yyvsp[-1].decl); } 7365 #line 7366 "Parser/parser.cc" /* yacc.c:1646 */ 7366 break; 7367 7368 case 606: 7369 #line 2335 "parser.yy" /* yacc.c:1646 */ 7370 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7371 #line 7372 "Parser/parser.cc" /* yacc.c:1646 */ 7372 break; 7373 7374 case 607: 7375 #line 2337 "parser.yy" /* yacc.c:1646 */ 7376 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7377 #line 7378 "Parser/parser.cc" /* yacc.c:1646 */ 7378 break; 7379 7380 case 608: 7381 #line 2339 "parser.yy" /* yacc.c:1646 */ 7382 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7383 #line 7384 "Parser/parser.cc" /* yacc.c:1646 */ 7384 break; 7385 7386 case 609: 7387 #line 2341 "parser.yy" /* yacc.c:1646 */ 7388 { (yyval.decl) = (yyvsp[-1].decl); } 7389 #line 7390 "Parser/parser.cc" /* yacc.c:1646 */ 7390 break; 7391 7392 case 610: 7393 #line 2346 "parser.yy" /* yacc.c:1646 */ 7394 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7395 #line 7396 "Parser/parser.cc" /* yacc.c:1646 */ 7396 break; 7397 7398 case 611: 7399 #line 2348 "parser.yy" /* yacc.c:1646 */ 7400 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7401 #line 7402 "Parser/parser.cc" /* yacc.c:1646 */ 7402 break; 7403 7404 case 612: 7405 #line 2350 "parser.yy" /* yacc.c:1646 */ 7406 { (yyval.decl) = (yyvsp[-1].decl); } 7407 #line 7408 "Parser/parser.cc" /* yacc.c:1646 */ 7408 break; 7409 7410 case 613: 7411 #line 2360 "parser.yy" /* yacc.c:1646 */ 7412 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7413 #line 7414 "Parser/parser.cc" /* yacc.c:1646 */ 7414 break; 7415 7416 case 615: 7417 #line 2363 "parser.yy" /* yacc.c:1646 */ 7418 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7419 #line 7420 "Parser/parser.cc" /* yacc.c:1646 */ 7420 break; 7421 7422 case 616: 7423 #line 2365 "parser.yy" /* yacc.c:1646 */ 7424 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7425 #line 7426 "Parser/parser.cc" /* yacc.c:1646 */ 7426 break; 7427 7428 case 617: 7429 #line 2370 "parser.yy" /* yacc.c:1646 */ 7430 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7431 #line 7432 "Parser/parser.cc" /* yacc.c:1646 */ 7432 break; 7433 7434 case 618: 7435 #line 2372 "parser.yy" /* yacc.c:1646 */ 7436 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7437 #line 7438 "Parser/parser.cc" /* yacc.c:1646 */ 7438 break; 7439 7440 case 619: 7441 #line 2374 "parser.yy" /* yacc.c:1646 */ 7442 { (yyval.decl) = (yyvsp[-1].decl); } 7443 #line 7444 "Parser/parser.cc" /* yacc.c:1646 */ 7444 break; 7445 7446 case 620: 7447 #line 2379 "parser.yy" /* yacc.c:1646 */ 7448 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7449 #line 7450 "Parser/parser.cc" /* yacc.c:1646 */ 7450 break; 7451 7452 case 621: 7453 #line 2381 "parser.yy" /* yacc.c:1646 */ 7454 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7455 #line 7456 "Parser/parser.cc" /* yacc.c:1646 */ 7456 break; 7457 7458 case 622: 7459 #line 2383 "parser.yy" /* yacc.c:1646 */ 7460 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7461 #line 7462 "Parser/parser.cc" /* yacc.c:1646 */ 7462 break; 7463 7464 case 623: 7465 #line 2385 "parser.yy" /* yacc.c:1646 */ 7466 { (yyval.decl) = (yyvsp[-1].decl); } 7467 #line 7468 "Parser/parser.cc" /* yacc.c:1646 */ 7468 break; 7469 7470 case 624: 7471 #line 2390 "parser.yy" /* yacc.c:1646 */ 7472 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7473 #line 7474 "Parser/parser.cc" /* yacc.c:1646 */ 7474 break; 7475 7476 case 625: 7477 #line 2392 "parser.yy" /* yacc.c:1646 */ 7478 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7479 #line 7480 "Parser/parser.cc" /* yacc.c:1646 */ 7480 break; 7481 7482 case 626: 7483 #line 2394 "parser.yy" /* yacc.c:1646 */ 7484 { (yyval.decl) = (yyvsp[-1].decl); } 7485 #line 7486 "Parser/parser.cc" /* yacc.c:1646 */ 7486 break; 7487 7488 case 627: 7489 #line 2425 "parser.yy" /* yacc.c:1646 */ 7490 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7491 #line 7492 "Parser/parser.cc" /* yacc.c:1646 */ 7492 break; 7493 7494 case 629: 7495 #line 2428 "parser.yy" /* yacc.c:1646 */ 7496 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7497 #line 7498 "Parser/parser.cc" /* yacc.c:1646 */ 7498 break; 7499 7500 case 630: 7501 #line 2430 "parser.yy" /* yacc.c:1646 */ 7502 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7503 #line 7504 "Parser/parser.cc" /* yacc.c:1646 */ 7504 break; 7505 7506 case 631: 7507 #line 2435 "parser.yy" /* yacc.c:1646 */ 7508 { 7509 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7510 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8016 7511 } 8017 break; 8018 8019 case 564: 8020 8021 /* Line 1806 of yacc.c */ 8022 #line 2202 "parser.yy" 8023 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8024 break; 8025 8026 case 565: 8027 8028 /* Line 1806 of yacc.c */ 8029 #line 2207 "parser.yy" 8030 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8031 break; 8032 8033 case 566: 8034 8035 /* Line 1806 of yacc.c */ 8036 #line 2209 "parser.yy" 8037 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8038 break; 8039 8040 case 567: 8041 8042 /* Line 1806 of yacc.c */ 8043 #line 2211 "parser.yy" 8044 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8045 break; 8046 8047 case 568: 8048 8049 /* Line 1806 of yacc.c */ 8050 #line 2216 "parser.yy" 8051 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8052 break; 8053 8054 case 569: 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2218 "parser.yy" 8058 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8059 break; 8060 8061 case 570: 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2220 "parser.yy" 8065 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8066 break; 8067 8068 case 571: 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2222 "parser.yy" 8072 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8073 break; 8074 8075 case 572: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2227 "parser.yy" 8079 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8080 break; 8081 8082 case 573: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2229 "parser.yy" 8086 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8087 break; 8088 8089 case 574: 8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2238 "parser.yy" 8093 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8094 break; 8095 8096 case 576: 8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2241 "parser.yy" 8100 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8101 break; 8102 8103 case 577: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2246 "parser.yy" 8107 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8108 break; 8109 8110 case 578: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2248 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8115 break; 8116 8117 case 579: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2250 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8122 break; 8123 8124 case 580: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2255 "parser.yy" 8128 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8129 break; 8130 8131 case 581: 8132 8133 /* Line 1806 of yacc.c */ 8134 #line 2257 "parser.yy" 8135 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8136 break; 8137 8138 case 582: 8139 8140 /* Line 1806 of yacc.c */ 8141 #line 2259 "parser.yy" 8142 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8143 break; 8144 8145 case 583: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2264 "parser.yy" 8149 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8150 break; 8151 8152 case 584: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2266 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8157 break; 8158 8159 case 585: 8160 8161 /* Line 1806 of yacc.c */ 8162 #line 2268 "parser.yy" 8163 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8164 break; 8165 8166 case 589: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2283 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8171 break; 8172 8173 case 590: 8174 8175 /* Line 1806 of yacc.c */ 8176 #line 2285 "parser.yy" 8177 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8178 break; 8179 8180 case 591: 8181 8182 /* Line 1806 of yacc.c */ 8183 #line 2287 "parser.yy" 8184 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8185 break; 8186 8187 case 592: 8188 8189 /* Line 1806 of yacc.c */ 8190 #line 2292 "parser.yy" 8191 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8192 break; 8193 8194 case 593: 8195 8196 /* Line 1806 of yacc.c */ 8197 #line 2294 "parser.yy" 8198 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8199 break; 8200 8201 case 594: 8202 8203 /* Line 1806 of yacc.c */ 8204 #line 2296 "parser.yy" 8205 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8206 break; 8207 8208 case 595: 8209 8210 /* Line 1806 of yacc.c */ 8211 #line 2301 "parser.yy" 8212 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8213 break; 8214 8215 case 596: 8216 8217 /* Line 1806 of yacc.c */ 8218 #line 2303 "parser.yy" 8219 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8220 break; 8221 8222 case 597: 8223 8224 /* Line 1806 of yacc.c */ 8225 #line 2305 "parser.yy" 8226 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8227 break; 8228 8229 case 598: 8230 8231 /* Line 1806 of yacc.c */ 8232 #line 2320 "parser.yy" 8233 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8234 break; 8235 8236 case 600: 8237 8238 /* Line 1806 of yacc.c */ 8239 #line 2323 "parser.yy" 8240 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8241 break; 8242 8243 case 601: 8244 8245 /* Line 1806 of yacc.c */ 8246 #line 2325 "parser.yy" 8247 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8248 break; 8249 8250 case 603: 8251 8252 /* Line 1806 of yacc.c */ 8253 #line 2331 "parser.yy" 8254 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8255 break; 8256 8257 case 604: 8258 8259 /* Line 1806 of yacc.c */ 8260 #line 2336 "parser.yy" 8261 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8262 break; 8263 8264 case 605: 8265 8266 /* Line 1806 of yacc.c */ 8267 #line 2338 "parser.yy" 8268 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8269 break; 8270 8271 case 606: 8272 8273 /* Line 1806 of yacc.c */ 8274 #line 2340 "parser.yy" 8275 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8276 break; 8277 8278 case 607: 8279 8280 /* Line 1806 of yacc.c */ 8281 #line 2345 "parser.yy" 8282 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8283 break; 8284 8285 case 608: 8286 8287 /* Line 1806 of yacc.c */ 8288 #line 2347 "parser.yy" 8289 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8290 break; 8291 8292 case 609: 8293 8294 /* Line 1806 of yacc.c */ 8295 #line 2349 "parser.yy" 8296 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8297 break; 8298 8299 case 610: 8300 8301 /* Line 1806 of yacc.c */ 8302 #line 2351 "parser.yy" 8303 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8304 break; 8305 8306 case 611: 8307 8308 /* Line 1806 of yacc.c */ 8309 #line 2356 "parser.yy" 8310 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8311 break; 8312 8313 case 612: 8314 8315 /* Line 1806 of yacc.c */ 8316 #line 2358 "parser.yy" 8317 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8318 break; 8319 8320 case 613: 8321 8322 /* Line 1806 of yacc.c */ 8323 #line 2360 "parser.yy" 8324 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8325 break; 8326 8327 case 614: 8328 8329 /* Line 1806 of yacc.c */ 8330 #line 2370 "parser.yy" 8331 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8332 break; 8333 8334 case 616: 8335 8336 /* Line 1806 of yacc.c */ 8337 #line 2373 "parser.yy" 8338 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8339 break; 8340 8341 case 617: 8342 8343 /* Line 1806 of yacc.c */ 8344 #line 2375 "parser.yy" 8345 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8346 break; 8347 8348 case 618: 8349 8350 /* Line 1806 of yacc.c */ 8351 #line 2380 "parser.yy" 8352 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8353 break; 8354 8355 case 619: 8356 8357 /* Line 1806 of yacc.c */ 8358 #line 2382 "parser.yy" 8359 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8360 break; 8361 8362 case 620: 8363 8364 /* Line 1806 of yacc.c */ 8365 #line 2384 "parser.yy" 8366 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8367 break; 8368 8369 case 621: 8370 8371 /* Line 1806 of yacc.c */ 8372 #line 2389 "parser.yy" 8373 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8374 break; 8375 8376 case 622: 8377 8378 /* Line 1806 of yacc.c */ 8379 #line 2391 "parser.yy" 8380 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8381 break; 8382 8383 case 623: 8384 8385 /* Line 1806 of yacc.c */ 8386 #line 2393 "parser.yy" 8387 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8388 break; 8389 8390 case 624: 8391 8392 /* Line 1806 of yacc.c */ 8393 #line 2395 "parser.yy" 8394 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8395 break; 8396 8397 case 625: 8398 8399 /* Line 1806 of yacc.c */ 8400 #line 2400 "parser.yy" 8401 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8402 break; 8403 8404 case 626: 8405 8406 /* Line 1806 of yacc.c */ 8407 #line 2402 "parser.yy" 8408 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8409 break; 8410 8411 case 627: 8412 8413 /* Line 1806 of yacc.c */ 8414 #line 2404 "parser.yy" 8415 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8416 break; 8417 8418 case 628: 8419 8420 /* Line 1806 of yacc.c */ 8421 #line 2435 "parser.yy" 8422 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8423 break; 8424 8425 case 630: 8426 8427 /* Line 1806 of yacc.c */ 8428 #line 2438 "parser.yy" 8429 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8430 break; 8431 8432 case 631: 8433 8434 /* Line 1806 of yacc.c */ 8435 #line 2440 "parser.yy" 8436 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7512 #line 7513 "Parser/parser.cc" /* yacc.c:1646 */ 8437 7513 break; 8438 7514 8439 7515 case 632: 8440 8441 /* Line 1806 of yacc.c */ 8442 #line 2445 "parser.yy" 8443 { 8444 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8445 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 7516 #line 2440 "parser.yy" /* yacc.c:1646 */ 7517 { 7518 typedefTable.setNextIdentifier( *(yyvsp[0].tok) ); 7519 (yyval.decl) = DeclarationNode::newName( (yyvsp[0].tok) ); 8446 7520 } 7521 #line 7522 "Parser/parser.cc" /* yacc.c:1646 */ 8447 7522 break; 8448 7523 8449 7524 case 633: 8450 8451 /* Line 1806 of yacc.c */ 8452 #line 2450 "parser.yy" 8453 { 8454 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); 8455 (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); 8456 } 7525 #line 2448 "parser.yy" /* yacc.c:1646 */ 7526 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7527 #line 7528 "Parser/parser.cc" /* yacc.c:1646 */ 8457 7528 break; 8458 7529 8459 7530 case 634: 8460 8461 /* Line 1806 of yacc.c */ 8462 #line 2458 "parser.yy" 8463 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7531 #line 2450 "parser.yy" /* yacc.c:1646 */ 7532 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7533 #line 7534 "Parser/parser.cc" /* yacc.c:1646 */ 8464 7534 break; 8465 7535 8466 7536 case 635: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2460 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7537 #line 2452 "parser.yy" /* yacc.c:1646 */ 7538 { (yyval.decl) = (yyvsp[-1].decl); } 7539 #line 7540 "Parser/parser.cc" /* yacc.c:1646 */ 8471 7540 break; 8472 7541 8473 7542 case 636: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2462 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7543 #line 2457 "parser.yy" /* yacc.c:1646 */ 7544 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7545 #line 7546 "Parser/parser.cc" /* yacc.c:1646 */ 8478 7546 break; 8479 7547 8480 7548 case 637: 8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2467 "parser.yy" 8484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 7549 #line 2459 "parser.yy" /* yacc.c:1646 */ 7550 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7551 #line 7552 "Parser/parser.cc" /* yacc.c:1646 */ 8485 7552 break; 8486 7553 8487 7554 case 638: 8488 8489 /* Line 1806 of yacc.c */ 8490 #line 2469 "parser.yy" 8491 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7555 #line 2464 "parser.yy" /* yacc.c:1646 */ 7556 { (yyval.decl) = (yyvsp[-5].decl)->addParamList( (yyvsp[-2].decl) ); } 7557 #line 7558 "Parser/parser.cc" /* yacc.c:1646 */ 8492 7558 break; 8493 7559 8494 7560 case 639: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2474 "parser.yy" 8498 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8499 break; 8500 8501 case 640: 8502 8503 /* Line 1806 of yacc.c */ 8504 #line 2476 "parser.yy" 8505 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 7561 #line 2466 "parser.yy" /* yacc.c:1646 */ 7562 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7563 #line 7564 "Parser/parser.cc" /* yacc.c:1646 */ 7564 break; 7565 7566 case 641: 7567 #line 2481 "parser.yy" /* yacc.c:1646 */ 7568 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7569 #line 7570 "Parser/parser.cc" /* yacc.c:1646 */ 8506 7570 break; 8507 7571 8508 7572 case 642: 8509 8510 /* Line 1806 of yacc.c */ 8511 #line 2491 "parser.yy" 8512 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7573 #line 2483 "parser.yy" /* yacc.c:1646 */ 7574 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7575 #line 7576 "Parser/parser.cc" /* yacc.c:1646 */ 8513 7576 break; 8514 7577 8515 7578 case 643: 8516 8517 /* Line 1806 of yacc.c */ 8518 #line 2493 "parser.yy" 8519 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7579 #line 2488 "parser.yy" /* yacc.c:1646 */ 7580 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7581 #line 7582 "Parser/parser.cc" /* yacc.c:1646 */ 8520 7582 break; 8521 7583 8522 7584 case 644: 8523 8524 /* Line 1806 of yacc.c */ 8525 #line 2498 "parser.yy" 7585 #line 2490 "parser.yy" /* yacc.c:1646 */ 7586 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7587 #line 7588 "Parser/parser.cc" /* yacc.c:1646 */ 7588 break; 7589 7590 case 645: 7591 #line 2492 "parser.yy" /* yacc.c:1646 */ 7592 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7593 #line 7594 "Parser/parser.cc" /* yacc.c:1646 */ 7594 break; 7595 7596 case 646: 7597 #line 2494 "parser.yy" /* yacc.c:1646 */ 7598 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7599 #line 7600 "Parser/parser.cc" /* yacc.c:1646 */ 7600 break; 7601 7602 case 647: 7603 #line 2496 "parser.yy" /* yacc.c:1646 */ 7604 { (yyval.decl) = (yyvsp[-1].decl); } 7605 #line 7606 "Parser/parser.cc" /* yacc.c:1646 */ 7606 break; 7607 7608 case 649: 7609 #line 2502 "parser.yy" /* yacc.c:1646 */ 7610 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7611 #line 7612 "Parser/parser.cc" /* yacc.c:1646 */ 7612 break; 7613 7614 case 650: 7615 #line 2504 "parser.yy" /* yacc.c:1646 */ 7616 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7617 #line 7618 "Parser/parser.cc" /* yacc.c:1646 */ 7618 break; 7619 7620 case 651: 7621 #line 2506 "parser.yy" /* yacc.c:1646 */ 7622 { (yyval.decl) = (yyvsp[-1].decl); } 7623 #line 7624 "Parser/parser.cc" /* yacc.c:1646 */ 7624 break; 7625 7626 case 652: 7627 #line 2511 "parser.yy" /* yacc.c:1646 */ 7628 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7629 #line 7630 "Parser/parser.cc" /* yacc.c:1646 */ 7630 break; 7631 7632 case 653: 7633 #line 2513 "parser.yy" /* yacc.c:1646 */ 7634 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7635 #line 7636 "Parser/parser.cc" /* yacc.c:1646 */ 7636 break; 7637 7638 case 654: 7639 #line 2515 "parser.yy" /* yacc.c:1646 */ 7640 { (yyval.decl) = (yyvsp[-1].decl); } 7641 #line 7642 "Parser/parser.cc" /* yacc.c:1646 */ 7642 break; 7643 7644 case 655: 7645 #line 2521 "parser.yy" /* yacc.c:1646 */ 7646 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 7647 #line 7648 "Parser/parser.cc" /* yacc.c:1646 */ 7648 break; 7649 7650 case 656: 7651 #line 2523 "parser.yy" /* yacc.c:1646 */ 7652 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[0].decl) ); } 7653 #line 7654 "Parser/parser.cc" /* yacc.c:1646 */ 7654 break; 7655 7656 case 658: 7657 #line 2529 "parser.yy" /* yacc.c:1646 */ 7658 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), 0, false ); } 7659 #line 7660 "Parser/parser.cc" /* yacc.c:1646 */ 7660 break; 7661 7662 case 659: 7663 #line 2531 "parser.yy" /* yacc.c:1646 */ 7664 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 7665 #line 7666 "Parser/parser.cc" /* yacc.c:1646 */ 7666 break; 7667 7668 case 660: 7669 #line 2533 "parser.yy" /* yacc.c:1646 */ 7670 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newArray( (yyvsp[-2].en), 0, false ) ); } 7671 #line 7672 "Parser/parser.cc" /* yacc.c:1646 */ 7672 break; 7673 7674 case 661: 7675 #line 2535 "parser.yy" /* yacc.c:1646 */ 7676 { (yyval.decl) = (yyvsp[-5].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 7677 #line 7678 "Parser/parser.cc" /* yacc.c:1646 */ 7678 break; 7679 7680 case 663: 7681 #line 2550 "parser.yy" /* yacc.c:1646 */ 7682 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7683 #line 7684 "Parser/parser.cc" /* yacc.c:1646 */ 7684 break; 7685 7686 case 664: 7687 #line 2552 "parser.yy" /* yacc.c:1646 */ 7688 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7689 #line 7690 "Parser/parser.cc" /* yacc.c:1646 */ 7690 break; 7691 7692 case 665: 7693 #line 2557 "parser.yy" /* yacc.c:1646 */ 8526 7694 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8527 break; 8528 8529 case 645: 8530 8531 /* Line 1806 of yacc.c */ 8532 #line 2500 "parser.yy" 8533 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8534 break; 8535 8536 case 646: 8537 8538 /* Line 1806 of yacc.c */ 8539 #line 2502 "parser.yy" 8540 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8541 break; 8542 8543 case 647: 8544 8545 /* Line 1806 of yacc.c */ 8546 #line 2504 "parser.yy" 8547 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8548 break; 8549 8550 case 648: 8551 8552 /* Line 1806 of yacc.c */ 8553 #line 2506 "parser.yy" 8554 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8555 break; 8556 8557 case 650: 8558 8559 /* Line 1806 of yacc.c */ 8560 #line 2512 "parser.yy" 8561 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8562 break; 8563 8564 case 651: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2514 "parser.yy" 8568 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8569 break; 8570 8571 case 652: 8572 8573 /* Line 1806 of yacc.c */ 8574 #line 2516 "parser.yy" 8575 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8576 break; 8577 8578 case 653: 8579 8580 /* Line 1806 of yacc.c */ 8581 #line 2521 "parser.yy" 8582 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8583 break; 8584 8585 case 654: 8586 8587 /* Line 1806 of yacc.c */ 8588 #line 2523 "parser.yy" 8589 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8590 break; 8591 8592 case 655: 8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2525 "parser.yy" 8596 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8597 break; 8598 8599 case 656: 8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2531 "parser.yy" 7695 #line 7696 "Parser/parser.cc" /* yacc.c:1646 */ 7696 break; 7697 7698 case 666: 7699 #line 2559 "parser.yy" /* yacc.c:1646 */ 7700 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7701 #line 7702 "Parser/parser.cc" /* yacc.c:1646 */ 7702 break; 7703 7704 case 667: 7705 #line 2561 "parser.yy" /* yacc.c:1646 */ 7706 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7707 #line 7708 "Parser/parser.cc" /* yacc.c:1646 */ 7708 break; 7709 7710 case 668: 7711 #line 2563 "parser.yy" /* yacc.c:1646 */ 7712 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7713 #line 7714 "Parser/parser.cc" /* yacc.c:1646 */ 7714 break; 7715 7716 case 669: 7717 #line 2565 "parser.yy" /* yacc.c:1646 */ 7718 { (yyval.decl) = (yyvsp[-1].decl); } 7719 #line 7720 "Parser/parser.cc" /* yacc.c:1646 */ 7720 break; 7721 7722 case 671: 7723 #line 2571 "parser.yy" /* yacc.c:1646 */ 7724 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7725 #line 7726 "Parser/parser.cc" /* yacc.c:1646 */ 7726 break; 7727 7728 case 672: 7729 #line 2573 "parser.yy" /* yacc.c:1646 */ 7730 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7731 #line 7732 "Parser/parser.cc" /* yacc.c:1646 */ 7732 break; 7733 7734 case 673: 7735 #line 2575 "parser.yy" /* yacc.c:1646 */ 7736 { (yyval.decl) = (yyvsp[-1].decl); } 7737 #line 7738 "Parser/parser.cc" /* yacc.c:1646 */ 7738 break; 7739 7740 case 674: 7741 #line 2580 "parser.yy" /* yacc.c:1646 */ 7742 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[-2].decl), 0 ); } 7743 #line 7744 "Parser/parser.cc" /* yacc.c:1646 */ 7744 break; 7745 7746 case 675: 7747 #line 2582 "parser.yy" /* yacc.c:1646 */ 7748 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7749 #line 7750 "Parser/parser.cc" /* yacc.c:1646 */ 7750 break; 7751 7752 case 676: 7753 #line 2584 "parser.yy" /* yacc.c:1646 */ 7754 { (yyval.decl) = (yyvsp[-1].decl); } 7755 #line 7756 "Parser/parser.cc" /* yacc.c:1646 */ 7756 break; 7757 7758 case 678: 7759 #line 2591 "parser.yy" /* yacc.c:1646 */ 7760 { (yyval.decl) = (yyvsp[-1].decl)->addArray( (yyvsp[0].decl) ); } 7761 #line 7762 "Parser/parser.cc" /* yacc.c:1646 */ 7762 break; 7763 7764 case 680: 7765 #line 2602 "parser.yy" /* yacc.c:1646 */ 8603 7766 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8604 break; 8605 8606 case 657: 8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2533 "parser.yy" 8610 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8611 break; 8612 8613 case 659: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2539 "parser.yy" 8617 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8618 break; 8619 8620 case 660: 8621 8622 /* Line 1806 of yacc.c */ 8623 #line 2541 "parser.yy" 8624 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8625 break; 8626 8627 case 661: 8628 8629 /* Line 1806 of yacc.c */ 8630 #line 2543 "parser.yy" 8631 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8632 break; 8633 8634 case 662: 8635 8636 /* Line 1806 of yacc.c */ 8637 #line 2545 "parser.yy" 8638 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8639 break; 8640 8641 case 664: 8642 8643 /* Line 1806 of yacc.c */ 8644 #line 2560 "parser.yy" 8645 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8646 break; 8647 8648 case 665: 8649 8650 /* Line 1806 of yacc.c */ 8651 #line 2562 "parser.yy" 8652 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8653 break; 8654 8655 case 666: 8656 8657 /* Line 1806 of yacc.c */ 8658 #line 2567 "parser.yy" 7767 #line 7768 "Parser/parser.cc" /* yacc.c:1646 */ 7768 break; 7769 7770 case 681: 7771 #line 2605 "parser.yy" /* yacc.c:1646 */ 7772 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7773 #line 7774 "Parser/parser.cc" /* yacc.c:1646 */ 7774 break; 7775 7776 case 682: 7777 #line 2607 "parser.yy" /* yacc.c:1646 */ 7778 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[-2].decl), false ); } 7779 #line 7780 "Parser/parser.cc" /* yacc.c:1646 */ 7780 break; 7781 7782 case 683: 7783 #line 2610 "parser.yy" /* yacc.c:1646 */ 7784 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7785 #line 7786 "Parser/parser.cc" /* yacc.c:1646 */ 7786 break; 7787 7788 case 684: 7789 #line 2612 "parser.yy" /* yacc.c:1646 */ 7790 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7791 #line 7792 "Parser/parser.cc" /* yacc.c:1646 */ 7792 break; 7793 7794 case 685: 7795 #line 2614 "parser.yy" /* yacc.c:1646 */ 7796 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-4].decl), true ); } 7797 #line 7798 "Parser/parser.cc" /* yacc.c:1646 */ 7798 break; 7799 7800 case 687: 7801 #line 2628 "parser.yy" /* yacc.c:1646 */ 7802 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7803 #line 7804 "Parser/parser.cc" /* yacc.c:1646 */ 7804 break; 7805 7806 case 688: 7807 #line 2630 "parser.yy" /* yacc.c:1646 */ 7808 { (yyval.decl) = (yyvsp[-1].decl)->addQualifiers( (yyvsp[0].decl) ); } 7809 #line 7810 "Parser/parser.cc" /* yacc.c:1646 */ 7810 break; 7811 7812 case 689: 7813 #line 2635 "parser.yy" /* yacc.c:1646 */ 8659 7814 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8660 break; 8661 8662 case 667: 8663 8664 /* Line 1806 of yacc.c */ 8665 #line 2569 "parser.yy" 8666 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8667 break; 8668 8669 case 668: 8670 8671 /* Line 1806 of yacc.c */ 8672 #line 2571 "parser.yy" 8673 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8674 break; 8675 8676 case 669: 8677 8678 /* Line 1806 of yacc.c */ 8679 #line 2573 "parser.yy" 8680 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8681 break; 8682 8683 case 670: 8684 8685 /* Line 1806 of yacc.c */ 8686 #line 2575 "parser.yy" 8687 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8688 break; 8689 8690 case 672: 8691 8692 /* Line 1806 of yacc.c */ 8693 #line 2581 "parser.yy" 8694 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8695 break; 8696 8697 case 673: 8698 8699 /* Line 1806 of yacc.c */ 8700 #line 2583 "parser.yy" 8701 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8702 break; 8703 8704 case 674: 8705 8706 /* Line 1806 of yacc.c */ 8707 #line 2585 "parser.yy" 8708 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8709 break; 8710 8711 case 675: 8712 8713 /* Line 1806 of yacc.c */ 8714 #line 2590 "parser.yy" 8715 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8716 break; 8717 8718 case 676: 8719 8720 /* Line 1806 of yacc.c */ 8721 #line 2592 "parser.yy" 8722 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8723 break; 8724 8725 case 677: 8726 8727 /* Line 1806 of yacc.c */ 8728 #line 2594 "parser.yy" 8729 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8730 break; 8731 8732 case 679: 8733 8734 /* Line 1806 of yacc.c */ 8735 #line 2601 "parser.yy" 8736 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8737 break; 8738 8739 case 681: 8740 8741 /* Line 1806 of yacc.c */ 8742 #line 2612 "parser.yy" 8743 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8744 break; 8745 8746 case 682: 8747 8748 /* Line 1806 of yacc.c */ 8749 #line 2615 "parser.yy" 8750 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8751 break; 8752 8753 case 683: 8754 8755 /* Line 1806 of yacc.c */ 8756 #line 2617 "parser.yy" 8757 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8758 break; 8759 8760 case 684: 8761 8762 /* Line 1806 of yacc.c */ 8763 #line 2620 "parser.yy" 8764 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8765 break; 8766 8767 case 685: 8768 8769 /* Line 1806 of yacc.c */ 8770 #line 2622 "parser.yy" 8771 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8772 break; 8773 8774 case 686: 8775 8776 /* Line 1806 of yacc.c */ 8777 #line 2624 "parser.yy" 8778 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8779 break; 8780 8781 case 688: 8782 8783 /* Line 1806 of yacc.c */ 8784 #line 2638 "parser.yy" 8785 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8786 break; 8787 8788 case 689: 8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2640 "parser.yy" 8792 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7815 #line 7816 "Parser/parser.cc" /* yacc.c:1646 */ 8793 7816 break; 8794 7817 8795 7818 case 690: 8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2645 "parser.yy" 8799 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 7819 #line 2637 "parser.yy" /* yacc.c:1646 */ 7820 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[0].decl) ); } 7821 #line 7822 "Parser/parser.cc" /* yacc.c:1646 */ 8800 7822 break; 8801 7823 8802 7824 case 691: 8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2647 "parser.yy" 8806 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 7825 #line 2639 "parser.yy" /* yacc.c:1646 */ 7826 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7827 #line 7828 "Parser/parser.cc" /* yacc.c:1646 */ 8807 7828 break; 8808 7829 8809 7830 case 692: 8810 8811 /* Line 1806 of yacc.c */ 8812 #line 2649 "parser.yy" 8813 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7831 #line 2641 "parser.yy" /* yacc.c:1646 */ 7832 { (yyval.decl) = (yyvsp[0].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[-1].decl) ) ); } 7833 #line 7834 "Parser/parser.cc" /* yacc.c:1646 */ 8814 7834 break; 8815 7835 8816 7836 case 693: 8817 8818 /* Line 1806 of yacc.c */ 8819 #line 2651 "parser.yy" 8820 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8821 break; 8822 8823 case 694: 8824 8825 /* Line 1806 of yacc.c */ 8826 #line 2653 "parser.yy" 8827 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7837 #line 2643 "parser.yy" /* yacc.c:1646 */ 7838 { (yyval.decl) = (yyvsp[-1].decl); } 7839 #line 7840 "Parser/parser.cc" /* yacc.c:1646 */ 7840 break; 7841 7842 case 695: 7843 #line 2649 "parser.yy" /* yacc.c:1646 */ 7844 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7845 #line 7846 "Parser/parser.cc" /* yacc.c:1646 */ 8828 7846 break; 8829 7847 8830 7848 case 696: 8831 8832 /* Line 1806 of yacc.c */ 8833 #line 2659 "parser.yy" 8834 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7849 #line 2651 "parser.yy" /* yacc.c:1646 */ 7850 { (yyval.decl) = (yyvsp[-2].decl)->addArray( (yyvsp[0].decl) ); } 7851 #line 7852 "Parser/parser.cc" /* yacc.c:1646 */ 8835 7852 break; 8836 7853 8837 7854 case 697: 8838 8839 /* Line 1806 of yacc.c */ 8840 #line 2661 "parser.yy" 8841 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 7855 #line 2653 "parser.yy" /* yacc.c:1646 */ 7856 { (yyval.decl) = (yyvsp[-1].decl); } 7857 #line 7858 "Parser/parser.cc" /* yacc.c:1646 */ 8842 7858 break; 8843 7859 8844 7860 case 698: 8845 8846 /* Line 1806 of yacc.c */ 8847 #line 2663 "parser.yy" 8848 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7861 #line 2658 "parser.yy" /* yacc.c:1646 */ 7862 { (yyval.decl) = (yyvsp[-6].decl)->addParamList( (yyvsp[-2].decl) ); } 7863 #line 7864 "Parser/parser.cc" /* yacc.c:1646 */ 8849 7864 break; 8850 7865 8851 7866 case 699: 8852 8853 /* Line 1806 of yacc.c */ 8854 #line 2668 "parser.yy" 8855 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8856 break; 8857 8858 case 700: 8859 8860 /* Line 1806 of yacc.c */ 8861 #line 2670 "parser.yy" 8862 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8863 break; 8864 8865 case 703: 8866 8867 /* Line 1806 of yacc.c */ 8868 #line 2680 "parser.yy" 8869 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7867 #line 2660 "parser.yy" /* yacc.c:1646 */ 7868 { (yyval.decl) = (yyvsp[-1].decl); } 7869 #line 7870 "Parser/parser.cc" /* yacc.c:1646 */ 7870 break; 7871 7872 case 702: 7873 #line 2670 "parser.yy" /* yacc.c:1646 */ 7874 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 7875 #line 7876 "Parser/parser.cc" /* yacc.c:1646 */ 7876 break; 7877 7878 case 705: 7879 #line 2680 "parser.yy" /* yacc.c:1646 */ 7880 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7881 #line 7882 "Parser/parser.cc" /* yacc.c:1646 */ 8870 7882 break; 8871 7883 8872 7884 case 706: 8873 8874 /* Line 1806 of yacc.c */ 8875 #line 2690 "parser.yy" 8876 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7885 #line 2682 "parser.yy" /* yacc.c:1646 */ 7886 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7887 #line 7888 "Parser/parser.cc" /* yacc.c:1646 */ 8877 7888 break; 8878 7889 8879 7890 case 707: 8880 8881 /* Line 1806 of yacc.c */ 8882 #line 2692 "parser.yy" 8883 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7891 #line 2684 "parser.yy" /* yacc.c:1646 */ 7892 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7893 #line 7894 "Parser/parser.cc" /* yacc.c:1646 */ 8884 7894 break; 8885 7895 8886 7896 case 708: 8887 8888 /* Line 1806 of yacc.c */ 8889 #line 2694 "parser.yy" 8890 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7897 #line 2686 "parser.yy" /* yacc.c:1646 */ 7898 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7899 #line 7900 "Parser/parser.cc" /* yacc.c:1646 */ 8891 7900 break; 8892 7901 8893 7902 case 709: 8894 8895 /* Line 1806 of yacc.c */ 8896 #line 2696 "parser.yy" 8897 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7903 #line 2688 "parser.yy" /* yacc.c:1646 */ 7904 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7905 #line 7906 "Parser/parser.cc" /* yacc.c:1646 */ 8898 7906 break; 8899 7907 8900 7908 case 710: 8901 8902 /* Line 1806 of yacc.c */ 8903 #line 2698 "parser.yy" 8904 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 7909 #line 2690 "parser.yy" /* yacc.c:1646 */ 7910 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 7911 #line 7912 "Parser/parser.cc" /* yacc.c:1646 */ 8905 7912 break; 8906 7913 8907 7914 case 711: 8908 8909 /* Line 1806 of yacc.c */ 8910 #line 2700 "parser.yy" 8911 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 7915 #line 2697 "parser.yy" /* yacc.c:1646 */ 7916 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7917 #line 7918 "Parser/parser.cc" /* yacc.c:1646 */ 8912 7918 break; 8913 7919 8914 7920 case 712: 8915 8916 /* Line 1806 of yacc.c */ 8917 #line 2707 "parser.yy" 8918 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7921 #line 2699 "parser.yy" /* yacc.c:1646 */ 7922 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7923 #line 7924 "Parser/parser.cc" /* yacc.c:1646 */ 8919 7924 break; 8920 7925 8921 7926 case 713: 8922 8923 /* Line 1806 of yacc.c */ 8924 #line 2709 "parser.yy" 8925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7927 #line 2701 "parser.yy" /* yacc.c:1646 */ 7928 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7929 #line 7930 "Parser/parser.cc" /* yacc.c:1646 */ 8926 7930 break; 8927 7931 8928 7932 case 714: 8929 8930 /* Line 1806 of yacc.c */ 8931 #line 2711 "parser.yy" 8932 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7933 #line 2703 "parser.yy" /* yacc.c:1646 */ 7934 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7935 #line 7936 "Parser/parser.cc" /* yacc.c:1646 */ 8933 7936 break; 8934 7937 8935 7938 case 715: 8936 8937 /* Line 1806 of yacc.c */ 8938 #line 2713 "parser.yy" 8939 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7939 #line 2705 "parser.yy" /* yacc.c:1646 */ 7940 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7941 #line 7942 "Parser/parser.cc" /* yacc.c:1646 */ 8940 7942 break; 8941 7943 8942 7944 case 716: 8943 8944 /* Line 1806 of yacc.c */ 8945 #line 2715 "parser.yy" 8946 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7945 #line 2707 "parser.yy" /* yacc.c:1646 */ 7946 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7947 #line 7948 "Parser/parser.cc" /* yacc.c:1646 */ 8947 7948 break; 8948 7949 8949 7950 case 717: 8950 8951 /* Line 1806 of yacc.c */ 8952 #line 2717 "parser.yy" 8953 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7951 #line 2709 "parser.yy" /* yacc.c:1646 */ 7952 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7953 #line 7954 "Parser/parser.cc" /* yacc.c:1646 */ 8954 7954 break; 8955 7955 8956 7956 case 718: 8957 8958 /* Line 1806 of yacc.c */ 8959 #line 2719 "parser.yy" 8960 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7957 #line 2711 "parser.yy" /* yacc.c:1646 */ 7958 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7959 #line 7960 "Parser/parser.cc" /* yacc.c:1646 */ 8961 7960 break; 8962 7961 8963 7962 case 719: 8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2721 "parser.yy" 8967 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 7963 #line 2713 "parser.yy" /* yacc.c:1646 */ 7964 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( (yyvsp[-2].decl) ); } 7965 #line 7966 "Parser/parser.cc" /* yacc.c:1646 */ 8968 7966 break; 8969 7967 8970 7968 case 720: 8971 8972 /* Line 1806 of yacc.c */ 8973 #line 2723 "parser.yy" 8974 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 7969 #line 2715 "parser.yy" /* yacc.c:1646 */ 7970 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 7971 #line 7972 "Parser/parser.cc" /* yacc.c:1646 */ 8975 7972 break; 8976 7973 8977 7974 case 721: 8978 8979 /* Line 1806 of yacc.c */ 8980 #line 2725 "parser.yy" 8981 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 7975 #line 2720 "parser.yy" /* yacc.c:1646 */ 7976 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[-3].decl) ); } 7977 #line 7978 "Parser/parser.cc" /* yacc.c:1646 */ 8982 7978 break; 8983 7979 8984 7980 case 722: 8985 8986 /* Line 1806 of yacc.c */ 8987 #line 2730 "parser.yy" 8988 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 7981 #line 2722 "parser.yy" /* yacc.c:1646 */ 7982 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), false ); } 7983 #line 7984 "Parser/parser.cc" /* yacc.c:1646 */ 8989 7984 break; 8990 7985 8991 7986 case 723: 8992 8993 /* Line 1806 of yacc.c */ 8994 #line 2732 "parser.yy" 8995 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 7987 #line 2727 "parser.yy" /* yacc.c:1646 */ 7988 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl), true ); } 7989 #line 7990 "Parser/parser.cc" /* yacc.c:1646 */ 8996 7990 break; 8997 7991 8998 7992 case 724: 8999 9000 /* Line 1806 of yacc.c */ 9001 #line 2737 "parser.yy" 9002 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9003 break; 9004 9005 case 725: 9006 9007 /* Line 1806 of yacc.c */ 9008 #line 2739 "parser.yy" 9009 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9010 break; 9011 9012 case 727: 9013 9014 /* Line 1806 of yacc.c */ 9015 #line 2766 "parser.yy" 9016 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7993 #line 2729 "parser.yy" /* yacc.c:1646 */ 7994 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[-2].en), (yyvsp[-3].decl)->addQualifiers( (yyvsp[-4].decl) ), true ); } 7995 #line 7996 "Parser/parser.cc" /* yacc.c:1646 */ 7996 break; 7997 7998 case 726: 7999 #line 2756 "parser.yy" /* yacc.c:1646 */ 8000 { (yyval.decl) = (yyvsp[0].decl)->addQualifiers( (yyvsp[-1].decl) ); } 8001 #line 8002 "Parser/parser.cc" /* yacc.c:1646 */ 8002 break; 8003 8004 case 730: 8005 #line 2767 "parser.yy" /* yacc.c:1646 */ 8006 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8007 #line 8008 "Parser/parser.cc" /* yacc.c:1646 */ 9017 8008 break; 9018 8009 9019 8010 case 731: 9020 9021 /* Line 1806 of yacc.c */ 9022 #line 2777 "parser.yy" 9023 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8011 #line 2769 "parser.yy" /* yacc.c:1646 */ 8012 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8013 #line 8014 "Parser/parser.cc" /* yacc.c:1646 */ 9024 8014 break; 9025 8015 9026 8016 case 732: 9027 9028 /* Line 1806 of yacc.c */ 9029 #line 2779 "parser.yy" 9030 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8017 #line 2771 "parser.yy" /* yacc.c:1646 */ 8018 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8019 #line 8020 "Parser/parser.cc" /* yacc.c:1646 */ 9031 8020 break; 9032 8021 9033 8022 case 733: 9034 9035 /* Line 1806 of yacc.c */ 9036 #line 2781 "parser.yy" 9037 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8023 #line 2773 "parser.yy" /* yacc.c:1646 */ 8024 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8025 #line 8026 "Parser/parser.cc" /* yacc.c:1646 */ 9038 8026 break; 9039 8027 9040 8028 case 734: 9041 9042 /* Line 1806 of yacc.c */ 9043 #line 2783 "parser.yy" 9044 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8029 #line 2775 "parser.yy" /* yacc.c:1646 */ 8030 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8031 #line 8032 "Parser/parser.cc" /* yacc.c:1646 */ 9045 8032 break; 9046 8033 9047 8034 case 735: 9048 9049 /* Line 1806 of yacc.c */ 9050 #line 2785 "parser.yy" 9051 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8035 #line 2777 "parser.yy" /* yacc.c:1646 */ 8036 { (yyval.decl) = (yyvsp[0].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[-2].decl) ) ); } 8037 #line 8038 "Parser/parser.cc" /* yacc.c:1646 */ 9052 8038 break; 9053 8039 9054 8040 case 736: 9055 9056 /* Line 1806 of yacc.c */ 9057 #line 2787 "parser.yy" 9058 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8041 #line 2784 "parser.yy" /* yacc.c:1646 */ 8042 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8043 #line 8044 "Parser/parser.cc" /* yacc.c:1646 */ 9059 8044 break; 9060 8045 9061 8046 case 737: 9062 9063 /* Line 1806 of yacc.c */ 9064 #line 2794 "parser.yy" 9065 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8047 #line 2786 "parser.yy" /* yacc.c:1646 */ 8048 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8049 #line 8050 "Parser/parser.cc" /* yacc.c:1646 */ 9066 8050 break; 9067 8051 9068 8052 case 738: 9069 9070 /* Line 1806 of yacc.c */ 9071 #line 2796 "parser.yy" 9072 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8053 #line 2788 "parser.yy" /* yacc.c:1646 */ 8054 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8055 #line 8056 "Parser/parser.cc" /* yacc.c:1646 */ 9073 8056 break; 9074 8057 9075 8058 case 739: 9076 9077 /* Line 1806 of yacc.c */ 9078 #line 2798 "parser.yy" 9079 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8059 #line 2790 "parser.yy" /* yacc.c:1646 */ 8060 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8061 #line 8062 "Parser/parser.cc" /* yacc.c:1646 */ 9080 8062 break; 9081 8063 9082 8064 case 740: 9083 9084 /* Line 1806 of yacc.c */ 9085 #line 2800 "parser.yy" 9086 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8065 #line 2792 "parser.yy" /* yacc.c:1646 */ 8066 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8067 #line 8068 "Parser/parser.cc" /* yacc.c:1646 */ 9087 8068 break; 9088 8069 9089 8070 case 741: 9090 9091 /* Line 1806 of yacc.c */ 9092 #line 2802 "parser.yy" 9093 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8071 #line 2794 "parser.yy" /* yacc.c:1646 */ 8072 { (yyval.decl) = (yyvsp[0].decl)->addNewArray( (yyvsp[-1].decl) ); } 8073 #line 8074 "Parser/parser.cc" /* yacc.c:1646 */ 9094 8074 break; 9095 8075 9096 8076 case 742: 9097 9098 /* Line 1806 of yacc.c */ 9099 #line 2804 "parser.yy" 9100 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8077 #line 2799 "parser.yy" /* yacc.c:1646 */ 8078 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[-2].decl) ); } 8079 #line 8080 "Parser/parser.cc" /* yacc.c:1646 */ 9101 8080 break; 9102 8081 9103 8082 case 743: 9104 9105 /* Line 1806 of yacc.c */ 9106 #line 2809 "parser.yy" 9107 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 8083 #line 2804 "parser.yy" /* yacc.c:1646 */ 8084 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[-1].decl), 0 ); } 8085 #line 8086 "Parser/parser.cc" /* yacc.c:1646 */ 9108 8086 break; 9109 8087 9110 8088 case 744: 9111 9112 /* Line 1806 of yacc.c */ 9113 #line 2814 "parser.yy" 9114 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 8089 #line 2806 "parser.yy" /* yacc.c:1646 */ 8090 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8091 #line 8092 "Parser/parser.cc" /* yacc.c:1646 */ 9115 8092 break; 9116 8093 9117 8094 case 745: 9118 9119 /* Line 1806 of yacc.c */ 9120 #line 2816 "parser.yy" 9121 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9122 break; 9123 9124 case 746: 9125 9126 /* Line 1806 of yacc.c */ 9127 #line 2818 "parser.yy" 9128 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 8095 #line 2808 "parser.yy" /* yacc.c:1646 */ 8096 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[-5].decl), (yyvsp[-2].decl), 0 ); } 8097 #line 8098 "Parser/parser.cc" /* yacc.c:1646 */ 8098 break; 8099 8100 case 748: 8101 #line 2832 "parser.yy" /* yacc.c:1646 */ 8102 { (yyval.en) = 0; } 8103 #line 8104 "Parser/parser.cc" /* yacc.c:1646 */ 9129 8104 break; 9130 8105 9131 8106 case 749: 9132 9133 /* Line 1806 of yacc.c */ 9134 #line 2842 "parser.yy" 9135 { (yyval.en) = 0; } 9136 break; 9137 9138 case 750: 9139 9140 /* Line 1806 of yacc.c */ 9141 #line 2844 "parser.yy" 9142 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9143 break; 9144 9145 9146 9147 /* Line 1806 of yacc.c */ 9148 #line 9149 "Parser/parser.cc" 8107 #line 2834 "parser.yy" /* yacc.c:1646 */ 8108 { (yyval.en) = (yyvsp[0].en); } 8109 #line 8110 "Parser/parser.cc" /* yacc.c:1646 */ 8110 break; 8111 8112 8113 #line 8114 "Parser/parser.cc" /* yacc.c:1646 */ 9149 8114 default: break; 9150 8115 } … … 9168 8133 *++yyvsp = yyval; 9169 8134 9170 /* Now `shift' the result of the reduction. Determine what state8135 /* Now 'shift' the result of the reduction. Determine what state 9171 8136 that goes to, based on the state we popped back to and the rule 9172 8137 number reduced by. */ … … 9183 8148 9184 8149 9185 /*------------------------------------ .9186 | yyerrlab -- here on detecting error |9187 `------------------------------------ */8150 /*--------------------------------------. 8151 | yyerrlab -- here on detecting error. | 8152 `--------------------------------------*/ 9188 8153 yyerrlab: 9189 8154 /* Make sure we have latest lookahead translation. See comments at … … 9236 8201 { 9237 8202 /* If just tried and failed to reuse lookahead token after an 9238 8203 error, discard it. */ 9239 8204 9240 8205 if (yychar <= YYEOF) 9241 9242 9243 9244 9245 8206 { 8207 /* Return failure if at end of input. */ 8208 if (yychar == YYEOF) 8209 YYABORT; 8210 } 9246 8211 else 9247 9248 9249 9250 9251 8212 { 8213 yydestruct ("Error: discarding", 8214 yytoken, &yylval); 8215 yychar = YYEMPTY; 8216 } 9252 8217 } 9253 8218 … … 9268 8233 goto yyerrorlab; 9269 8234 9270 /* Do not reclaim the symbols of the rule wh ichaction triggered8235 /* Do not reclaim the symbols of the rule whose action triggered 9271 8236 this YYERROR. */ 9272 8237 YYPOPSTACK (yylen); … … 9281 8246 `-------------------------------------------------------------*/ 9282 8247 yyerrlab1: 9283 yyerrstatus = 3; 8248 yyerrstatus = 3; /* Each real token shifted decrements this. */ 9284 8249 9285 8250 for (;;) … … 9287 8252 yyn = yypact[yystate]; 9288 8253 if (!yypact_value_is_default (yyn)) 9289 9290 9291 9292 9293 9294 9295 9296 9297 8254 { 8255 yyn += YYTERROR; 8256 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 8257 { 8258 yyn = yytable[yyn]; 8259 if (0 < yyn) 8260 break; 8261 } 8262 } 9298 8263 9299 8264 /* Pop the current state because it cannot handle the error token. */ 9300 8265 if (yyssp == yyss) 9301 8266 YYABORT; 9302 8267 9303 8268 9304 8269 yydestruct ("Error: popping", 9305 8270 yystos[yystate], yyvsp); 9306 8271 YYPOPSTACK (1); 9307 8272 yystate = *yyssp; … … 9309 8274 } 9310 8275 8276 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 9311 8277 *++yyvsp = yylval; 8278 YY_IGNORE_MAYBE_UNINITIALIZED_END 9312 8279 9313 8280 … … 9333 8300 goto yyreturn; 9334 8301 9335 #if !defined (yyoverflow)|| YYERROR_VERBOSE8302 #if !defined yyoverflow || YYERROR_VERBOSE 9336 8303 /*-------------------------------------------------. 9337 8304 | yyexhaustedlab -- memory exhaustion comes here. | … … 9352 8319 yytoken, &yylval); 9353 8320 } 9354 /* Do not reclaim the symbols of the rule wh ichaction triggered8321 /* Do not reclaim the symbols of the rule whose action triggered 9355 8322 this YYABORT or YYACCEPT. */ 9356 8323 YYPOPSTACK (yylen); … … 9359 8326 { 9360 8327 yydestruct ("Cleanup: popping", 9361 8328 yystos[*yyssp], yyvsp); 9362 8329 YYPOPSTACK (1); 9363 8330 } … … 9370 8337 YYSTACK_FREE (yymsg); 9371 8338 #endif 9372 /* Make sure YYID is used. */ 9373 return YYID (yyresult); 8339 return yyresult; 9374 8340 } 9375 9376 9377 9378 /* Line 2067 of yacc.c */ 9379 #line 2847 "parser.yy" 8341 #line 2837 "parser.yy" /* yacc.c:1906 */ 9380 8342 9381 8343 // ----end of grammar---- 8344 8345 extern char *yytext; 9382 8346 9383 8347 void yyerror( const char * ) { … … 9394 8358 // compile-command: "make install" // 9395 8359 // End: // 9396 -
src/Parser/parser.h
r7b1bfc5 r4a7d895 1 /* A Bison parser, made by GNU Bison 2.5. */1 /* A Bison parser, made by GNU Bison 3.0.2. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2011Free Software Foundation, Inc.6 4 5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by 9 9 the Free Software Foundation, either version 3 of the License, or 10 10 (at your option) any later version. 11 11 12 12 This program is distributed in the hope that it will be useful, 13 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 15 GNU General Public License for more details. 16 16 17 17 You should have received a copy of the GNU General Public License 18 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ … … 27 27 Bison output files to be licensed under the GNU General Public 28 28 License without this special exception. 29 29 30 30 This special exception was added by the Free Software Foundation in 31 31 version 2.2 of Bison. */ 32 32 33 34 /* Tokens. */ 33 #ifndef YY_YY_PARSER_PARSER_H_INCLUDED 34 # define YY_YY_PARSER_PARSER_H_INCLUDED 35 /* Debug traces. */ 36 #ifndef YYDEBUG 37 # define YYDEBUG 1 38 #endif 39 #if YYDEBUG 40 extern int yydebug; 41 #endif 42 43 /* Token type. */ 35 44 #ifndef YYTOKENTYPE 36 45 # define YYTOKENTYPE 37 /* Put the tokens into the symbol table, so that GDB and other debuggers 38 know about them. */ 39 enum yytokentype { 40 TYPEDEF = 258, 41 AUTO = 259, 42 EXTERN = 260, 43 REGISTER = 261, 44 STATIC = 262, 45 INLINE = 263, 46 FORTRAN = 264, 47 CONST = 265, 48 VOLATILE = 266, 49 RESTRICT = 267, 50 FORALL = 268, 51 LVALUE = 269, 52 VOID = 270, 53 CHAR = 271, 54 SHORT = 272, 55 INT = 273, 56 LONG = 274, 57 FLOAT = 275, 58 DOUBLE = 276, 59 SIGNED = 277, 60 UNSIGNED = 278, 61 VALIST = 279, 62 BOOL = 280, 63 COMPLEX = 281, 64 IMAGINARY = 282, 65 TYPEOF = 283, 66 LABEL = 284, 67 ENUM = 285, 68 STRUCT = 286, 69 UNION = 287, 70 OTYPE = 288, 71 FTYPE = 289, 72 DTYPE = 290, 73 TRAIT = 291, 74 SIZEOF = 292, 75 OFFSETOF = 293, 76 ATTRIBUTE = 294, 77 EXTENSION = 295, 78 IF = 296, 79 ELSE = 297, 80 SWITCH = 298, 81 CASE = 299, 82 DEFAULT = 300, 83 DO = 301, 84 WHILE = 302, 85 FOR = 303, 86 BREAK = 304, 87 CONTINUE = 305, 88 GOTO = 306, 89 RETURN = 307, 90 CHOOSE = 308, 91 DISABLE = 309, 92 ENABLE = 310, 93 FALLTHRU = 311, 94 TRY = 312, 95 CATCH = 313, 96 CATCHRESUME = 314, 97 FINALLY = 315, 98 THROW = 316, 99 THROWRESUME = 317, 100 AT = 318, 101 ASM = 319, 102 ALIGNAS = 320, 103 ALIGNOF = 321, 104 ATOMIC = 322, 105 GENERIC = 323, 106 NORETURN = 324, 107 STATICASSERT = 325, 108 THREADLOCAL = 326, 109 IDENTIFIER = 327, 110 QUOTED_IDENTIFIER = 328, 111 TYPEDEFname = 329, 112 TYPEGENname = 330, 113 ATTR_IDENTIFIER = 331, 114 ATTR_TYPEDEFname = 332, 115 ATTR_TYPEGENname = 333, 116 INTEGERconstant = 334, 117 FLOATINGconstant = 335, 118 CHARACTERconstant = 336, 119 STRINGliteral = 337, 120 ZERO = 338, 121 ONE = 339, 122 ARROW = 340, 123 ICR = 341, 124 DECR = 342, 125 LS = 343, 126 RS = 344, 127 LE = 345, 128 GE = 346, 129 EQ = 347, 130 NE = 348, 131 ANDAND = 349, 132 OROR = 350, 133 ELLIPSIS = 351, 134 MULTassign = 352, 135 DIVassign = 353, 136 MODassign = 354, 137 PLUSassign = 355, 138 MINUSassign = 356, 139 LSassign = 357, 140 RSassign = 358, 141 ANDassign = 359, 142 ERassign = 360, 143 ORassign = 361, 144 ATassign = 362, 145 THEN = 363 146 }; 46 enum yytokentype 47 { 48 TYPEDEF = 258, 49 AUTO = 259, 50 EXTERN = 260, 51 REGISTER = 261, 52 STATIC = 262, 53 INLINE = 263, 54 FORTRAN = 264, 55 CONST = 265, 56 VOLATILE = 266, 57 RESTRICT = 267, 58 FORALL = 268, 59 LVALUE = 269, 60 VOID = 270, 61 CHAR = 271, 62 SHORT = 272, 63 INT = 273, 64 LONG = 274, 65 FLOAT = 275, 66 DOUBLE = 276, 67 SIGNED = 277, 68 UNSIGNED = 278, 69 VALIST = 279, 70 BOOL = 280, 71 COMPLEX = 281, 72 IMAGINARY = 282, 73 TYPEOF = 283, 74 LABEL = 284, 75 ENUM = 285, 76 STRUCT = 286, 77 UNION = 287, 78 OTYPE = 288, 79 FTYPE = 289, 80 DTYPE = 290, 81 TRAIT = 291, 82 SIZEOF = 292, 83 OFFSETOF = 293, 84 ATTRIBUTE = 294, 85 EXTENSION = 295, 86 IF = 296, 87 ELSE = 297, 88 SWITCH = 298, 89 CASE = 299, 90 DEFAULT = 300, 91 DO = 301, 92 WHILE = 302, 93 FOR = 303, 94 BREAK = 304, 95 CONTINUE = 305, 96 GOTO = 306, 97 RETURN = 307, 98 CHOOSE = 308, 99 DISABLE = 309, 100 ENABLE = 310, 101 FALLTHRU = 311, 102 TRY = 312, 103 CATCH = 313, 104 CATCHRESUME = 314, 105 FINALLY = 315, 106 THROW = 316, 107 THROWRESUME = 317, 108 AT = 318, 109 ASM = 319, 110 ALIGNAS = 320, 111 ALIGNOF = 321, 112 ATOMIC = 322, 113 GENERIC = 323, 114 NORETURN = 324, 115 STATICASSERT = 325, 116 THREADLOCAL = 326, 117 IDENTIFIER = 327, 118 QUOTED_IDENTIFIER = 328, 119 TYPEDEFname = 329, 120 TYPEGENname = 330, 121 ATTR_IDENTIFIER = 331, 122 ATTR_TYPEDEFname = 332, 123 ATTR_TYPEGENname = 333, 124 INTEGERconstant = 334, 125 FLOATINGconstant = 335, 126 CHARACTERconstant = 336, 127 STRINGliteral = 337, 128 ZERO = 338, 129 ONE = 339, 130 ARROW = 340, 131 ICR = 341, 132 DECR = 342, 133 LS = 343, 134 RS = 344, 135 LE = 345, 136 GE = 346, 137 EQ = 347, 138 NE = 348, 139 ANDAND = 349, 140 OROR = 350, 141 ELLIPSIS = 351, 142 MULTassign = 352, 143 DIVassign = 353, 144 MODassign = 354, 145 PLUSassign = 355, 146 MINUSassign = 356, 147 LSassign = 357, 148 RSassign = 358, 149 ANDassign = 359, 150 ERassign = 360, 151 ORassign = 361, 152 ATassign = 362, 153 THEN = 363 154 }; 147 155 #endif 148 156 /* Tokens. */ … … 254 262 #define THEN 363 255 263 256 257 258 264 /* Value type. */ 259 265 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 260 typedef union YYSTYPE 266 typedef union YYSTYPE YYSTYPE; 267 union YYSTYPE 261 268 { 262 263 /* Line 2068 of yacc.c */ 264 #line 115 "parser.yy" 269 #line 115 "parser.yy" /* yacc.c:1909 */ 265 270 266 271 Token tok; … … 278 283 bool flag; 279 284 280 281 282 /* Line 2068 of yacc.c */ 283 #line 284 "Parser/parser.h" 284 } YYSTYPE; 285 #line 286 "Parser/parser.h" /* yacc.c:1909 */ 286 }; 285 287 # define YYSTYPE_IS_TRIVIAL 1 286 # define yystype YYSTYPE /* obsolescent; will be withdrawn */287 288 # define YYSTYPE_IS_DECLARED 1 288 289 #endif 289 290 291 290 292 extern YYSTYPE yylval; 291 293 292 294 int yyparse (void); 295 296 #endif /* !YY_YY_PARSER_PARSER_H_INCLUDED */ -
src/Parser/parser.yy
r7b1bfc5 r4a7d895 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Aug 15 15:18:19201613 // Update Count : 1 89112 // Last Modified On : Thu Aug 18 23:49:10 2016 13 // Update Count : 1909 14 14 // 15 15 … … 43 43 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time 44 44 #define YYDEBUG 1 // get the pretty debugging code to compile 45 extern char *yytext;46 45 47 46 #undef __GNUC_MINOR__ … … 56 55 #include "LinkageSpec.h" 57 56 58 DeclarationNode *theTree = 0; // the resulting parse tree 59 LinkageSpec::Type linkage = LinkageSpec::Cforall; 60 std::stack< LinkageSpec::Type > linkageStack; 61 TypedefTable typedefTable; 57 extern DeclarationNode * parseTree; 58 extern LinkageSpec::Spec linkage; 59 extern TypedefTable typedefTable; 60 61 std::stack< LinkageSpec::Spec > linkageStack; 62 62 63 63 void appendStr( std::string &to, std::string *from ) { … … 223 223 %type<decl> paren_identifier paren_type 224 224 225 %type<decl> storage_class storage_class_ name storage_class_list225 %type<decl> storage_class storage_class_list 226 226 227 227 %type<decl> sue_declaration_specifier sue_type_specifier … … 311 311 constant: 312 312 // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant". 313 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( *$1) ); }314 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( *$1) ); }315 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( *$1) ); }313 INTEGERconstant { $$ = new ExpressionNode( build_constantInteger( assign_strptr($1) ) ); } 314 | FLOATINGconstant { $$ = new ExpressionNode( build_constantFloat( assign_strptr($1) ) ); } 315 | CHARACTERconstant { $$ = new ExpressionNode( build_constantChar( assign_strptr($1) ) ); } 316 316 ; 317 317 … … 338 338 339 339 string_literal_list: // juxtaposed strings are concatenated 340 STRINGliteral { $$ = build_constantStr( *$1); }340 STRINGliteral { $$ = build_constantStr( assign_strptr($1) ); } 341 341 | string_literal_list STRINGliteral 342 342 { … … 699 699 | EXTENSION declaration // GCC 700 700 { // mark all fields in list 701 for ( DeclarationNode *iter = $2; iter != NULL; iter = (DeclarationNode *)iter->get_next() )701 for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 702 702 iter->set_extension( true ); 703 703 $$ = new StatementNode( $2 ); … … 838 838 jump_statement: 839 839 GOTO IDENTIFIER ';' 840 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Goto ) ); }840 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Goto ) ); } 841 841 | GOTO '*' comma_expression ';' // GCC, computed goto 842 842 // The syntax for the GCC computed goto violates normal expression precedence, e.g., goto *i+3; => goto *(i+3); … … 849 849 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 850 850 // the target of the transfer appears only at the start of an iteration statement. 851 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Continue ) ); delete $2; }851 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Continue ) ); } 852 852 | BREAK ';' 853 853 // A semantic check is required to ensure this statement appears only in the body of an iteration statement. … … 856 856 // A semantic check is required to ensure this statement appears only in the body of an iteration statement, and 857 857 // the target of the transfer appears only at the start of an iteration statement. 858 { $$ = new StatementNode( build_branch( *$2, BranchStmt::Break ) ); delete $2; }858 { $$ = new StatementNode( build_branch( assign_strptr($2), BranchStmt::Break ) ); } 859 859 | RETURN comma_expression_opt ';' 860 860 { $$ = new StatementNode( build_return( $2 ) ); } … … 979 979 label_list: 980 980 no_attr_identifier 981 { $$ = new LabelNode(); $$->labels.push_back( *$1); }981 { $$ = new LabelNode(); $$->labels.push_back( assign_strptr($1) ); } 982 982 | label_list ',' no_attr_identifier 983 { $$ = $1; $1->labels.push_back( *$3); }983 { $$ = $1; $1->labels.push_back( assign_strptr($3) ); } 984 984 ; 985 985 … … 1324 1324 1325 1325 storage_class: 1326 storage_class_name1327 ;1328 1329 storage_class_name:1330 1326 EXTERN 1331 1327 { $$ = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } … … 1497 1493 | EXTENSION field_declaring_list ';' // GCC 1498 1494 { // mark all fields in list 1499 for ( DeclarationNode *iter = $2; iter != NULL; iter = (DeclarationNode *)iter->get_next() )1495 for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 1500 1496 iter->set_extension( true ); 1501 1497 $$ = $2; … … 1974 1970 {} // empty input file 1975 1971 | external_definition_list 1976 { 1977 if ( theTree ) { 1978 theTree->appendList( $1 ); 1979 } else { 1980 theTree = $1; 1981 } 1982 } 1972 { parseTree = parseTree != nullptr ? parseTree->appendList( $1 ) : $1; } 1983 1973 ; 1984 1974 … … 1986 1976 external_definition 1987 1977 | external_definition_list push external_definition 1988 { $$ = ( $1 != NULL )? $1->appendList( $3 ) : $3; }1978 { $$ = $1 != nullptr ? $1->appendList( $3 ) : $3; } 1989 1979 ; 1990 1980 … … 2002 1992 | EXTERN STRINGliteral 2003 1993 { 2004 linkageStack.push( linkage ); 2005 linkage = LinkageSpec::fromString( *$2);1994 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 1995 linkage = LinkageSpec::fromString( assign_strptr($2) ); 2006 1996 } 2007 1997 '{' external_definition_list_opt '}' // C++-style linkage specifier … … 2013 2003 | EXTENSION external_definition 2014 2004 { // mark all fields in list 2015 for ( DeclarationNode *iter = $2; iter != NULL; iter = (DeclarationNode *)iter->get_next() )2005 for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 2016 2006 iter->set_extension( true ); 2017 2007 $$ = $2; … … 2147 2137 2148 2138 any_word: // GCC 2149 identifier_or_type_name { }2150 | storage_class _name {}2151 | basic_type_name { }2152 | type_qualifier { }2139 identifier_or_type_name { delete $1; } 2140 | storage_class { delete $1; } 2141 | basic_type_name { delete $1; } 2142 | type_qualifier { delete $1; } 2153 2143 ; 2154 2144 … … 2848 2838 // ----end of grammar---- 2849 2839 2840 extern char *yytext; 2841 2850 2842 void yyerror( const char * ) { 2851 2843 std::cout << "Error ";
Note:
See TracChangeset
for help on using the changeset viewer.