Changeset fe26fbf
- Timestamp:
- Feb 7, 2017, 1:01:34 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 35b1bf4
- Parents:
- dbe8f244 (diff), b4d65c7 (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. - Files:
-
- 13 added
- 57 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
configure
rdbe8f244 rfe26fbf 6184 6184 6185 6185 6186 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/ examples/Makefile src/tests/Makefile src/prelude/Makefile src/libcfa/Makefile"6186 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/benchmark/Makefile src/examples/Makefile src/tests/Makefile src/prelude/Makefile src/libcfa/Makefile" 6187 6187 6188 6188 … … 6945 6945 "src/driver/Makefile") CONFIG_FILES="$CONFIG_FILES src/driver/Makefile" ;; 6946 6946 "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; 6947 "src/benchmark/Makefile") CONFIG_FILES="$CONFIG_FILES src/benchmark/Makefile" ;; 6947 6948 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 6948 6949 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; -
configure.ac
rdbe8f244 rfe26fbf 190 190 src/driver/Makefile 191 191 src/Makefile 192 src/benchmark/Makefile 192 193 src/examples/Makefile 193 194 src/tests/Makefile -
src/CodeGen/CodeGenerator.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 18 15:23:08201713 // Update Count : 41 412 // Last Modified On : Wed Feb 1 14:09:02 2017 13 // Update Count : 416 14 14 // 15 15 … … 177 177 178 178 void CodeGenerator::handleAggregate( AggregateDecl * aggDecl ) { 179 genAttributes( aggDecl->get_attributes() ); 180 179 181 if ( aggDecl->get_name() != "" ) 180 182 output << aggDecl->get_name(); … … 214 216 extension( enumDecl ); 215 217 output << "enum "; 218 genAttributes( enumDecl->get_attributes() ); 216 219 217 220 if ( enumDecl->get_name() != "" ) -
src/CodeGen/GenType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Jul 9 16:43:52 201513 // Update Count : 1312 // Last Modified On : Thu Feb 2 13:53:43 2017 13 // Update Count : 20 14 14 // 15 15 … … 56 56 std::string genType( Type *type, const std::string &baseString, bool mangle ) { 57 57 GenType gt( baseString, mangle ); 58 std::ostringstream os; 59 60 if ( ! type->get_attributes().empty() ) { 61 CodeGenerator cg( os, mangle ); 62 cg.genAttributes( type->get_attributes() ); 63 } // if 64 58 65 type->accept( gt ); 59 return gt.get_typeString();66 return os.str() + gt.get_typeString(); 60 67 } 61 68 … … 99 106 if ( qualifiers.isAtomic ) { 100 107 os << "_Atomic "; 101 } // if102 if ( qualifiers.isAttribute ) {103 os << "__attribute(( )) ";104 108 } // if 105 109 if ( dimension != 0 ) { -
src/Common/ScopedMap.h
rdbe8f244 rfe26fbf 102 102 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 103 103 104 bool operator== (const iterator &that) {104 bool operator== (const iterator &that) const { 105 105 return scopes == that.scopes && level == that.level && it == that.it; 106 106 } 107 bool operator!= (const iterator &that) { return !( *this == that ); }107 bool operator!= (const iterator &that) const { return !( *this == that ); } 108 108 109 109 size_type get_level() const { return level; } … … 180 180 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 181 181 182 bool operator== (const const_iterator &that) {182 bool operator== (const const_iterator &that) const { 183 183 return scopes == that.scopes && level == that.level && it == that.it; 184 184 } 185 bool operator!= (const const_iterator &that) { return !( *this == that ); }185 bool operator!= (const const_iterator &that) const { return !( *this == that ); } 186 186 187 187 size_type get_level() const { return level; } -
src/Makefile.am
rdbe8f244 rfe26fbf 26 26 27 27 include CodeGen/module.mk 28 include CodeTools/module.mk 28 29 include Common/module.mk 29 30 include ControlStruct/module.mk -
src/Makefile.in
rdbe8f244 rfe26fbf 24 24 #SRC += ArgTweak/Rewriter.cc \ 25 25 # ArgTweak/Mutate.cc 26 27 ######################### -*- Mode: Makefile-Gmake -*- ######################## 28 ############################################################################### 26 29 27 30 ######################### -*- Mode: Makefile-Gmake -*- ######################## … … 71 74 build_triplet = @build@ 72 75 host_triplet = @host@ 73 DIST_COMMON = $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk \ 76 DIST_COMMON = $(srcdir)/CodeGen/module.mk \ 77 $(srcdir)/CodeTools/module.mk $(srcdir)/Common/module.mk \ 74 78 $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk \ 75 79 $(srcdir)/InitTweak/module.mk $(srcdir)/Makefile.am \ … … 99 103 CodeGen/driver_cfa_cpp-FixMain.$(OBJEXT) \ 100 104 CodeGen/driver_cfa_cpp-OperatorTable.$(OBJEXT) \ 105 CodeTools/driver_cfa_cpp-DeclStats.$(OBJEXT) \ 101 106 Common/driver_cfa_cpp-SemanticError.$(OBJEXT) \ 102 107 Common/driver_cfa_cpp-UniqueName.$(OBJEXT) \ … … 376 381 CodeGen/CodeGenerator.cc CodeGen/GenType.cc \ 377 382 CodeGen/FixNames.cc CodeGen/FixMain.cc \ 378 CodeGen/OperatorTable.cc Common/SemanticError.cc \ 379 Common/UniqueName.cc Common/DebugMalloc.cc Common/Assert.cc \ 383 CodeGen/OperatorTable.cc CodeTools/DeclStats.cc \ 384 Common/SemanticError.cc Common/UniqueName.cc \ 385 Common/DebugMalloc.cc Common/Assert.cc \ 380 386 ControlStruct/LabelGenerator.cc ControlStruct/LabelFixer.cc \ 381 387 ControlStruct/MLEMutator.cc ControlStruct/Mutate.cc \ … … 440 446 .SUFFIXES: 441 447 .SUFFIXES: .cc .ll .o .obj .yy 442 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/CodeGen/module.mk $(srcdir)/Co mmon/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(am__configure_deps)448 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(am__configure_deps) 443 449 @for dep in $?; do \ 444 450 case '$(am__configure_deps)' in \ … … 461 467 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 462 468 esac; 463 $(srcdir)/CodeGen/module.mk $(srcdir)/Co mmon/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk:469 $(srcdir)/CodeGen/module.mk $(srcdir)/CodeTools/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk: 464 470 465 471 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) … … 526 532 CodeGen/driver_cfa_cpp-OperatorTable.$(OBJEXT): \ 527 533 CodeGen/$(am__dirstamp) CodeGen/$(DEPDIR)/$(am__dirstamp) 534 CodeTools/$(am__dirstamp): 535 @$(MKDIR_P) CodeTools 536 @: > CodeTools/$(am__dirstamp) 537 CodeTools/$(DEPDIR)/$(am__dirstamp): 538 @$(MKDIR_P) CodeTools/$(DEPDIR) 539 @: > CodeTools/$(DEPDIR)/$(am__dirstamp) 540 CodeTools/driver_cfa_cpp-DeclStats.$(OBJEXT): \ 541 CodeTools/$(am__dirstamp) CodeTools/$(DEPDIR)/$(am__dirstamp) 528 542 Common/$(am__dirstamp): 529 543 @$(MKDIR_P) Common … … 813 827 -rm -f CodeGen/driver_cfa_cpp-Generate.$(OBJEXT) 814 828 -rm -f CodeGen/driver_cfa_cpp-OperatorTable.$(OBJEXT) 829 -rm -f CodeTools/driver_cfa_cpp-DeclStats.$(OBJEXT) 815 830 -rm -f Common/driver_cfa_cpp-Assert.$(OBJEXT) 816 831 -rm -f Common/driver_cfa_cpp-DebugMalloc.$(OBJEXT) … … 922 937 @AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-Generate.Po@am__quote@ 923 938 @AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/driver_cfa_cpp-OperatorTable.Po@am__quote@ 939 @AMDEP_TRUE@@am__include@ @am__quote@CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Po@am__quote@ 924 940 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-Assert.Po@am__quote@ 925 941 @AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/driver_cfa_cpp-DebugMalloc.Po@am__quote@ … … 1148 1164 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/driver_cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi` 1149 1165 1166 CodeTools/driver_cfa_cpp-DeclStats.o: CodeTools/DeclStats.cc 1167 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeTools/driver_cfa_cpp-DeclStats.o -MD -MP -MF CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Tpo -c -o CodeTools/driver_cfa_cpp-DeclStats.o `test -f 'CodeTools/DeclStats.cc' || echo '$(srcdir)/'`CodeTools/DeclStats.cc 1168 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Tpo CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Po 1169 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeTools/DeclStats.cc' object='CodeTools/driver_cfa_cpp-DeclStats.o' libtool=no @AMDEPBACKSLASH@ 1170 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1171 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeTools/driver_cfa_cpp-DeclStats.o `test -f 'CodeTools/DeclStats.cc' || echo '$(srcdir)/'`CodeTools/DeclStats.cc 1172 1173 CodeTools/driver_cfa_cpp-DeclStats.obj: CodeTools/DeclStats.cc 1174 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeTools/driver_cfa_cpp-DeclStats.obj -MD -MP -MF CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Tpo -c -o CodeTools/driver_cfa_cpp-DeclStats.obj `if test -f 'CodeTools/DeclStats.cc'; then $(CYGPATH_W) 'CodeTools/DeclStats.cc'; else $(CYGPATH_W) '$(srcdir)/CodeTools/DeclStats.cc'; fi` 1175 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Tpo CodeTools/$(DEPDIR)/driver_cfa_cpp-DeclStats.Po 1176 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='CodeTools/DeclStats.cc' object='CodeTools/driver_cfa_cpp-DeclStats.obj' libtool=no @AMDEPBACKSLASH@ 1177 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 1178 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeTools/driver_cfa_cpp-DeclStats.obj `if test -f 'CodeTools/DeclStats.cc'; then $(CYGPATH_W) 'CodeTools/DeclStats.cc'; else $(CYGPATH_W) '$(srcdir)/CodeTools/DeclStats.cc'; fi` 1179 1150 1180 Common/driver_cfa_cpp-SemanticError.o: Common/SemanticError.cc 1151 1181 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/driver_cfa_cpp-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/driver_cfa_cpp-SemanticError.Tpo -c -o Common/driver_cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc … … 2631 2661 -rm -f CodeGen/$(DEPDIR)/$(am__dirstamp) 2632 2662 -rm -f CodeGen/$(am__dirstamp) 2663 -rm -f CodeTools/$(DEPDIR)/$(am__dirstamp) 2664 -rm -f CodeTools/$(am__dirstamp) 2633 2665 -rm -f Common/$(DEPDIR)/$(am__dirstamp) 2634 2666 -rm -f Common/$(am__dirstamp) … … 2664 2696 2665 2697 distclean: distclean-am 2666 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Co mmon/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)2698 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) 2667 2699 -rm -f Makefile 2668 2700 distclean-am: clean-am distclean-compile distclean-generic \ … … 2710 2742 2711 2743 maintainer-clean: maintainer-clean-am 2712 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Co mmon/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)2744 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) CodeTools/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) 2713 2745 -rm -f Makefile 2714 2746 maintainer-clean-am: distclean-am maintainer-clean-generic -
src/Parser/DeclarationNode.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jan 14 14:36:23201713 // Update Count : 66912 // Last Modified On : Mon Feb 6 16:01:29 2017 13 // Update Count : 739 14 14 // 15 15 … … 83 83 DeclarationNode * DeclarationNode::clone() const { 84 84 DeclarationNode * newnode = new DeclarationNode; 85 newnode->set_next( maybeClone( get_next() ) ); 86 newnode->name = name ? new string( *name ) : nullptr; 87 85 88 newnode->type = maybeClone( type ); 86 newnode->name = name ? new string( *name ) : nullptr;87 89 newnode->storageClass = storageClass; 90 newnode->bitfieldWidth = maybeClone( bitfieldWidth ); 88 91 newnode->isInline = isInline; 89 92 newnode->isNoreturn = isNoreturn; 90 newnode-> bitfieldWidth = maybeClone( bitfieldWidth);93 newnode->enumeratorValue.reset( maybeClone( enumeratorValue.get() ) ); 91 94 newnode->hasEllipsis = hasEllipsis; 92 newnode->initializer = maybeClone( initializer );93 newnode->set_next( maybeClone( get_next() ) );94 95 newnode->linkage = linkage; 95 96 newnode->asmName = maybeClone( asmName ); 97 cloneAll( attributes, newnode->attributes ); 98 newnode->initializer = maybeClone( initializer ); 99 newnode->extension = extension; 100 newnode->error = error; 96 101 97 102 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; … … 159 164 newnode->type->function.newStyle = newStyle; 160 165 newnode->type->function.body = body; 166 161 167 // ignore unnamed routine declarations: void p( int (*)(int) ); 162 168 if ( newnode->name ) { … … 436 442 } // if 437 443 appendError( error, q->error ); 438 } // DeclarationNode::c opyStorageClasses444 } // DeclarationNode::checkStorageClasses 439 445 440 446 DeclarationNode * DeclarationNode::copyStorageClasses( DeclarationNode * q ) { … … 446 452 storageClass = q->storageClass; 447 453 } // if 448 attributes.splice( attributes.end(), q->attributes ); 454 455 for ( Attribute *attr: reverseIterate( q->attributes ) ) { 456 attributes.push_front( attr->clone() ); 457 } // for 449 458 return this; 450 459 } // DeclarationNode::copyStorageClasses … … 656 665 } 657 666 658 DeclarationNode * DeclarationNode::addAsmName( ConstantExpr* newname ) {667 DeclarationNode * DeclarationNode::addAsmName( DeclarationNode * newname ) { 659 668 assert( ! asmName ); 660 asmName = newname ;661 return this ;669 asmName = newname ? newname->asmName : nullptr; 670 return this->addQualifiers( newname ); 662 671 } 663 672 … … 690 699 } 691 700 692 static void setBase( TypeData *&type,TypeData * newType ) {701 DeclarationNode * DeclarationNode::setBase( TypeData * newType ) { 693 702 if ( type ) { 694 703 TypeData * prevBase = type; … … 702 711 type = newType; 703 712 } // if 704 } 713 return this; 714 } 715 716 DeclarationNode * DeclarationNode::copyAttribute( DeclarationNode * a ) { 717 if ( a ) { 718 for ( Attribute *attr: reverseIterate( a->attributes ) ) { 719 attributes.push_front( attr ); 720 } // for 721 a->attributes.clear(); 722 } // if 723 return this; 724 } // copyAttribute 705 725 706 726 DeclarationNode * DeclarationNode::addPointer( DeclarationNode * p ) { 707 727 if ( p ) { 708 728 assert( p->type->kind == TypeData::Pointer ); 709 setBase( type,p->type );729 setBase( p->type ); 710 730 p->type = nullptr; 731 copyAttribute( p ); 711 732 delete p; 712 733 } // if … … 717 738 if ( a ) { 718 739 assert( a->type->kind == TypeData::Array ); 719 setBase( type,a->type );740 setBase( a->type ); 720 741 a->type = nullptr; 742 copyAttribute( a ); 721 743 delete a; 722 744 } // if … … 790 812 TypeData * ftype = new TypeData( TypeData::Function ); 791 813 ftype->function.params = params; 792 setBase( type,ftype );814 setBase( ftype ); 793 815 return this; 794 816 } … … 836 858 TypeData * srcType = type; 837 859 860 // search for the base type by scanning off pointers and array designators 838 861 while ( srcType->base ) { 839 862 srcType = srcType->base; … … 986 1009 if ( attr.expr ) { 987 1010 // return new AttrType( buildQualifiers( type ), *attr.name, attr.expr->build() ); 988 return new AttrType( buildQualifiers( type ), *name, attr.expr->build() );1011 return new AttrType( buildQualifiers( type ), *name, attr.expr->build(), attributes ); 989 1012 } else if ( attr.type ) { 990 1013 // return new AttrType( buildQualifiers( type ), *attr.name, attr.type->buildType() ); 991 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType() );1014 return new AttrType( buildQualifiers( type ), *name, attr.type->buildType(), attributes ); 992 1015 } // if 993 1016 994 1017 switch ( type->kind ) { 995 case TypeData::Enum: 996 return new EnumInstType( buildQualifiers( type ), *type->enumeration.name ); 1018 case TypeData::Enum: { 1019 EnumDecl * typedecl = buildEnum( type, attributes ); 1020 return new EnumInstType( buildQualifiers( type ), typedecl ); 1021 } 997 1022 case TypeData::Aggregate: { 1023 AggregateDecl * typedecl = buildAggregate( type, attributes ); 998 1024 ReferenceToType * ret; 999 1025 switch ( type->aggregate.kind ) { 1000 1026 case DeclarationNode::Struct: 1001 ret = new StructInstType( buildQualifiers( type ), *type->aggregate.name);1027 ret = new StructInstType( buildQualifiers( type ), (StructDecl *)typedecl ); 1002 1028 break; 1003 1029 case DeclarationNode::Union: 1004 ret = new UnionInstType( buildQualifiers( type ), *type->aggregate.name);1030 ret = new UnionInstType( buildQualifiers( type ), (UnionDecl *)typedecl ); 1005 1031 break; 1006 1032 case DeclarationNode::Trait: 1007 ret = new TraitInstType( buildQualifiers( type ), *type->aggregate.name ); 1033 assert( false ); 1034 //ret = new TraitInstType( buildQualifiers( type ), (TraitDecl *)typedecl ); 1008 1035 break; 1009 1036 default: … … 1014 1041 } 1015 1042 case TypeData::Symbolic: { 1016 TypeInstType * ret = new TypeInstType( buildQualifiers( type ), *type->symbolic.name, false );1043 TypeInstType * ret = new TypeInstType( buildQualifiers( type ), *type->symbolic.name, false, attributes ); 1017 1044 buildList( type->symbolic.actuals, ret->get_parameters() ); 1018 1045 return ret; 1019 1046 } 1020 1047 default: 1021 return typebuild( type ); 1048 Type * simpletypes = typebuild( type ); 1049 simpletypes->get_attributes() = attributes; // copy because member is const 1050 return simpletypes; 1022 1051 } // switch 1023 1052 } -
src/Parser/ParseNode.h
rdbe8f244 rfe26fbf 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 18 16:20:43201713 // Update Count : 65 012 // Last Modified On : Mon Feb 6 15:52:21 2017 13 // Update Count : 657 14 14 // 15 15 … … 198 198 public: 199 199 // These must remain in the same order as the corresponding DeclarationNode names. 200 201 // enum StorageClass { Extern, Static, Auto, Register, NoStorageClass }; 202 // enum FunctionSpec { Inline, Fortran, Noreturn, NoFunctionSpec }; 203 // enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, Threadlocal, Mutex, NoQualifier }; 204 200 205 enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, }; 201 206 enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, NoQualifier }; … … 259 264 DeclarationNode * addAssertions( DeclarationNode * ); 260 265 DeclarationNode * addName( std::string * ); 261 DeclarationNode * addAsmName( ConstantExpr* );266 DeclarationNode * addAsmName( DeclarationNode * ); 262 267 DeclarationNode * addBitfield( ExpressionNode * size ); 263 268 DeclarationNode * addVarArgs(); 264 269 DeclarationNode * addFunctionBody( StatementNode * body ); 265 270 DeclarationNode * addOldDeclList( DeclarationNode * list ); 271 DeclarationNode * setBase( TypeData * newType ); 272 DeclarationNode * copyAttribute( DeclarationNode * attr ); 266 273 DeclarationNode * addPointer( DeclarationNode * qualifiers ); 267 274 DeclarationNode * addArray( DeclarationNode * array ); -
src/Parser/StatementNode.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Sat May 16 14:59:41 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 21 11:59:37 201613 // Update Count : 32 512 // Last Modified On : Thu Feb 2 22:16:40 2017 13 // Update Count : 327 14 14 // 15 15 … … 28 28 29 29 StatementNode::StatementNode( DeclarationNode *decl ) { 30 if ( decl ) { 31 DeclarationNode *agg = decl->extractAggregate(); 32 if ( agg ) { 33 StatementNode *nextStmt = new StatementNode( new DeclStmt( noLabels, maybeBuild< Declaration >( decl ) ) ); 34 set_next( nextStmt ); 35 if ( decl->get_next() ) { 36 get_next()->set_next( new StatementNode( dynamic_cast< DeclarationNode * >(decl->get_next()) ) ); 37 decl->set_next( 0 ); 38 } // if 39 } else { 40 if ( decl->get_next() ) { 41 set_next(new StatementNode( dynamic_cast< DeclarationNode * >( decl->get_next() ) ) ); 42 decl->set_next( 0 ); 43 } // if 44 agg = decl; 30 assert( decl ); 31 DeclarationNode *agg = decl->extractAggregate(); 32 if ( agg ) { 33 StatementNode *nextStmt = new StatementNode( new DeclStmt( noLabels, maybeBuild< Declaration >( decl ) ) ); 34 set_next( nextStmt ); 35 if ( decl->get_next() ) { 36 get_next()->set_next( new StatementNode( dynamic_cast< DeclarationNode * >(decl->get_next()) ) ); 37 decl->set_next( 0 ); 45 38 } // if 46 stmt.reset( new DeclStmt( noLabels, maybeMoveBuild< Declaration >(agg) ) );47 39 } else { 48 assert( false ); 40 if ( decl->get_next() ) { 41 set_next( new StatementNode( dynamic_cast< DeclarationNode * >( decl->get_next() ) ) ); 42 decl->set_next( 0 ); 43 } // if 44 agg = decl; 49 45 } // if 50 } 46 stmt.reset( new DeclStmt( noLabels, maybeMoveBuild< Declaration >(agg) ) ); 47 } // StatementNode::StatementNode 51 48 52 49 StatementNode *StatementNode::append_last_case( StatementNode *stmt ) { -
src/Parser/TypeData.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jan 13 15:47:37201713 // Update Count : 42 312 // Last Modified On : Fri Jan 27 15:28:56 2017 13 // Update Count : 428 14 14 // 15 15 … … 617 617 } // buildPointer 618 618 619 AggregateDecl * buildAggregate( const TypeData * td ) {619 AggregateDecl * buildAggregate( const TypeData * td, std::list< Attribute * > attributes ) { 620 620 assert( td->kind == TypeData::Aggregate ); 621 621 AggregateDecl * at; 622 622 switch ( td->aggregate.kind ) { 623 623 case DeclarationNode::Struct: 624 at = new StructDecl( *td->aggregate.name );624 at = new StructDecl( *td->aggregate.name, attributes ); 625 625 buildForall( td->aggregate.params, at->get_parameters() ); 626 626 break; 627 627 case DeclarationNode::Union: 628 at = new UnionDecl( *td->aggregate.name );628 at = new UnionDecl( *td->aggregate.name, attributes ); 629 629 buildForall( td->aggregate.params, at->get_parameters() ); 630 630 break; 631 631 case DeclarationNode::Trait: 632 at = new TraitDecl( *td->aggregate.name );632 at = new TraitDecl( *td->aggregate.name, attributes ); 633 633 buildList( td->aggregate.params, at->get_parameters() ); 634 634 break; … … 685 685 } // buildSymbolic 686 686 687 EnumDecl * buildEnum( const TypeData * td ) {687 EnumDecl * buildEnum( const TypeData * td, std::list< Attribute * > attributes ) { 688 688 assert( td->kind == TypeData::Enum ); 689 EnumDecl * ret = new EnumDecl( *td->enumeration.name );689 EnumDecl * ret = new EnumDecl( *td->enumeration.name, attributes ); 690 690 buildList( td->enumeration.constants, ret->get_members() ); 691 691 list< Declaration * >::iterator members = ret->get_members().begin(); … … 746 746 return decl->set_asmName( asmName ); 747 747 } else if ( td->kind == TypeData::Aggregate ) { 748 return buildAggregate( td );748 return buildAggregate( td, attributes ); 749 749 } else if ( td->kind == TypeData::Enum ) { 750 return buildEnum( td );750 return buildEnum( td, attributes ); 751 751 } else if ( td->kind == TypeData::Symbolic ) { 752 752 return buildSymbolic( td, name, sc ); 753 753 } else { 754 return (new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn ))->set_asmName( asmName );754 return (new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, attributes, isInline, isNoreturn ))->set_asmName( asmName ); 755 755 } // if 756 756 return nullptr; -
src/Parser/TypeData.h
rdbe8f244 rfe26fbf 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jan 13 16:11:23201713 // Update Count : 14 412 // Last Modified On : Thu Feb 2 17:02:09 2017 13 // Update Count : 146 14 14 // 15 15 … … 103 103 PointerType * buildPointer( const TypeData * ); 104 104 ArrayType * buildArray( const TypeData * ); 105 AggregateDecl * buildAggregate( const TypeData * );105 AggregateDecl * buildAggregate( const TypeData *, std::list< Attribute * > ); 106 106 ReferenceToType * buildAggInst( const TypeData * ); 107 107 NamedTypeDecl * buildSymbolic( const TypeData *, const std::string &name, DeclarationNode::StorageClass sc ); 108 108 TypeDecl * buildVariable( const TypeData * ); 109 EnumDecl * buildEnum( const TypeData * );109 EnumDecl * buildEnum( const TypeData *, std::list< Attribute * > ); 110 110 TypeInstType * buildSymbolicInst( const TypeData * ); 111 111 TupleType * buildTuple( const TypeData * ); -
src/Parser/parser.cc
rdbe8f244 rfe26fbf 67 67 68 68 /* Line 268 of yacc.c */ 69 #line 4 1"parser.yy"69 #line 42 "parser.yy" 70 70 71 71 #define YYDEBUG_LEXER_TEXT (yylval) // lexer loads this up each time … … 95 95 } // appendStr 96 96 97 DeclarationNode * distAttr( DeclarationNode * specifier, DeclarationNode * declList ) { 98 // distribute declaration_specifier across all declared variables, e.g., static, const, __attribute__. 99 DeclarationNode * cur = declList, * cl = (new DeclarationNode)->addType( specifier ); 100 //cur->addType( specifier ); 101 for ( cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) { 102 cl->cloneBaseType( cur ); 103 } // for 104 declList->addType( cl ); 105 // delete cl; 106 return declList; 107 } // distAttr 108 109 void distExt( DeclarationNode * declaration ) { 110 // distribute EXTENSION across all declarations 111 for ( DeclarationNode *iter = declaration; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) { 112 iter->set_extension( true ); 113 } // for 114 } // distExt 115 97 116 98 117 /* Line 268 of yacc.c */ 99 #line 1 00"Parser/parser.cc"118 #line 119 "Parser/parser.cc" 100 119 101 120 /* Enabling traces. */ … … 358 377 359 378 /* Line 293 of yacc.c */ 360 #line 1 19 "parser.yy"379 #line 139 "parser.yy" 361 380 362 381 Token tok; 363 ParseNode * pn;364 ExpressionNode * en;365 DeclarationNode * decl;382 ParseNode * pn; 383 ExpressionNode * en; 384 DeclarationNode * decl; 366 385 DeclarationNode::Aggregate aggKey; 367 386 DeclarationNode::TypeClass tclass; 368 StatementNode * sn;369 ConstantExpr * constant;370 ForCtl * fctl;371 LabelNode * label;372 InitializerNode * in;387 StatementNode * sn; 388 ConstantExpr * constant; 389 ForCtl * fctl; 390 LabelNode * label; 391 InitializerNode * in; 373 392 OperKinds op; 374 std::string * str;393 std::string * str; 375 394 bool flag; 376 395 … … 378 397 379 398 /* Line 293 of yacc.c */ 380 #line 381"Parser/parser.cc"399 #line 400 "Parser/parser.cc" 381 400 } YYSTYPE; 382 401 # define YYSTYPE_IS_TRIVIAL 1 … … 390 409 391 410 /* Line 343 of yacc.c */ 392 #line 393"Parser/parser.cc"411 #line 412 "Parser/parser.cc" 393 412 394 413 #ifdef short … … 607 626 608 627 /* YYFINAL -- State number of the termination state. */ 609 #define YYFINAL 2 51628 #define YYFINAL 240 610 629 /* YYLAST -- Last index in YYTABLE. */ 611 #define YYLAST 10 498630 #define YYLAST 10925 612 631 613 632 /* YYNTOKENS -- Number of terminals. */ 614 633 #define YYNTOKENS 138 615 634 /* YYNNTS -- Number of nonterminals. */ 616 #define YYNNTS 24 3635 #define YYNNTS 242 617 636 /* YYNRULES -- Number of rules. */ 618 #define YYNRULES 75 8637 #define YYNRULES 756 619 638 /* YYNRULES -- Number of states. */ 620 #define YYNSTATES 15 46639 #define YYNSTATES 1550 621 640 622 641 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 689 708 408, 410, 414, 416, 420, 421, 423, 425, 427, 429, 690 709 431, 433, 435, 437, 439, 446, 451, 454, 462, 464, 691 468, 470, 473, 475, 478, 48 0, 483, 486, 492, 500,692 50 6, 516, 522, 532, 534, 538, 540, 542, 546, 550,693 553, 55 5, 558, 561, 562, 564, 567, 571, 572, 574,694 577, 58 1, 585, 590, 591, 593, 595, 598, 604, 612,695 61 9, 626, 631, 635, 640, 643, 647, 650, 654, 658,696 66 2, 666, 672, 676, 680, 685, 687, 693, 700, 706,697 7 13, 723, 734, 744, 755, 758, 760, 763, 766, 769,698 77 1, 778, 787, 798, 811, 826, 827, 829, 830, 832,699 83 4, 838, 843, 851, 852, 854, 858, 860, 864, 866,700 86 8, 870, 874, 876, 878, 880, 884, 885, 887, 891,701 89 6, 898, 902, 904, 906, 910, 914, 918, 922, 926,702 929, 93 3, 940, 944, 948, 953, 955, 958, 961, 965,703 9 71, 979, 987, 993, 1003, 1006, 1009, 1015, 1019, 1025,704 10 30, 1034, 1039, 1044, 1052, 1056, 1060, 1064, 1068, 1073,705 10 80, 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1097,706 1 099, 1101, 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1118,707 11 19, 1125, 1127, 1130, 1134, 1136, 1139, 1141, 1143, 1145,708 114 7, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165,709 116 7, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1185,710 118 7, 1190, 1193, 1197, 1201, 1203, 1207, 1209, 1212, 1215,711 1218, 122 3, 1228, 1233, 1238, 1240, 1243, 1246, 1250, 1252,712 1255, 1258, 126 0, 1263, 1266, 1270, 1272, 1275, 1278, 1280,713 128 2, 1287, 1290, 1291, 1298, 1306, 1309, 1312, 1315, 1316,714 13 19, 1322, 1326, 1329, 1333, 1335, 1338, 1342, 1345, 1348,715 135 3, 1354, 1356, 1359, 1362, 1364, 1365, 1367, 1370, 1373,716 13 79, 1382, 1383, 1391, 1394, 1399, 1400, 1403, 1404, 1406,717 14 08, 1410, 1416, 1422, 1428, 1430, 1436, 1442, 1452, 1454,718 146 0, 1461, 1463, 1465, 1471, 1473, 1475, 1481, 1487, 1489,719 1 493, 1497, 1502, 1504, 1506, 1508, 1510, 1513, 1515, 1519,720 15 23, 1525, 1528, 1530, 1534, 1536, 1538, 1540, 1542, 1544,721 15 46, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565,722 15 68, 1569, 1572, 1575, 1577, 1582, 1583, 1585, 1588, 1592,723 1 597, 1600, 1603, 1605, 1608, 1611, 1617, 1623, 1631, 1638,724 164 0, 1643, 1646, 1650, 1652, 1655, 1658, 1663, 1666, 1671,725 16 72, 1677, 1680, 1682, 1684, 1686, 1688, 1689, 1692, 1698,726 17 04, 1718, 1720, 1722, 1726, 1730, 1733, 1737, 1741, 1744,727 17 49, 1751, 1758, 1768, 1769, 1781, 1783, 1787, 1791, 1795,728 1 797, 1799, 1805, 1808, 1814, 1815, 1817, 1819, 1823, 1824,729 18 26, 1828, 1830, 1832, 1833, 1840, 1843, 1845, 1848, 1853,730 18 56, 1860, 1864, 1868, 1873, 1879, 1885, 1891, 1898, 1900,731 19 02, 1904, 1908, 1909, 1915, 1916, 1918, 1920, 1923, 1930,732 193 2, 1936, 1937, 1939, 1944, 1946, 1948, 1950, 1952, 1955,733 19 57, 1960, 1963, 1965, 1969, 1972, 1976, 1980, 1983, 1988,734 1993, 1997, 2006, 2010, 2013, 2015, 2018, 2025, 2034, 2038,735 20 41, 2045, 2049, 2054, 2059, 2063, 2065, 2067, 2069, 2074,736 20 81, 2085, 2088, 2092, 2096, 2101, 2106, 2110, 2113, 2115,737 21 18, 2121, 2123, 2127, 2130, 2134, 2138, 2141, 2146, 2151,738 21 55, 2162, 2171, 2175, 2178, 2180, 2183, 2186, 2189, 2193,739 2 197, 2200, 2205, 2210, 2214, 2221, 2230, 2234, 2237, 2239,740 22 42, 2245, 2247, 2249, 2252, 2256, 2260, 2263, 2268, 2275,741 22 84, 2286, 2289, 2292, 2294, 2297, 2300, 2304, 2308, 2310,742 23 15, 2320, 2324, 2330, 2339, 2343, 2346, 2350, 2352, 2358,743 23 64, 2371, 2378, 2380, 2383, 2386, 2388, 2391, 2394, 2398,744 24 02, 2404, 2409, 2414, 2418, 2424, 2433, 2437, 2439, 2442,745 24 44, 2447, 2454, 2460, 2467, 2475, 2483, 2485, 2488, 2491,746 2 493, 2496, 2499, 2503, 2507, 2509, 2514, 2519, 2523, 2532,747 25 36, 2538, 2540, 2543, 2545, 2547, 2550, 2554, 2557, 2561,748 25 64, 2568, 2572, 2575, 2580, 2584, 2587, 2591, 2594, 2599,749 26 03, 2606, 2613, 2620, 2627, 2635, 2637, 2640, 2642, 2644,750 26 46, 2649, 2653, 2656, 2660, 2663, 2667, 2671, 2676, 2679,751 2 683, 2688, 2691, 2697, 2704, 2711, 2712, 2714, 2715710 468, 470, 473, 475, 478, 481, 483, 486, 489, 495, 711 503, 509, 519, 525, 535, 537, 541, 543, 545, 549, 712 553, 556, 558, 561, 564, 565, 567, 570, 574, 575, 713 577, 580, 584, 588, 593, 594, 596, 598, 601, 607, 714 615, 622, 629, 634, 638, 643, 646, 650, 653, 657, 715 661, 665, 669, 675, 679, 683, 688, 690, 696, 703, 716 709, 716, 726, 737, 747, 758, 761, 763, 766, 769, 717 772, 774, 781, 790, 801, 814, 829, 830, 832, 833, 718 835, 837, 841, 846, 854, 855, 857, 861, 863, 867, 719 869, 871, 873, 877, 879, 881, 883, 887, 888, 890, 720 894, 899, 901, 905, 907, 909, 913, 917, 921, 925, 721 929, 932, 936, 943, 947, 951, 956, 958, 961, 964, 722 968, 974, 982, 990, 996, 1006, 1009, 1012, 1018, 1022, 723 1028, 1033, 1037, 1042, 1047, 1055, 1060, 1064, 1068, 1072, 724 1076, 1083, 1085, 1087, 1089, 1091, 1093, 1095, 1097, 1099, 725 1100, 1102, 1104, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 726 1121, 1122, 1128, 1130, 1133, 1137, 1139, 1142, 1144, 1146, 727 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1162, 1164, 1166, 728 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 729 1188, 1190, 1193, 1196, 1200, 1204, 1206, 1210, 1212, 1215, 730 1218, 1221, 1226, 1231, 1236, 1241, 1243, 1246, 1249, 1253, 731 1255, 1258, 1261, 1263, 1266, 1269, 1273, 1275, 1278, 1281, 732 1283, 1285, 1291, 1295, 1296, 1304, 1313, 1317, 1319, 1321, 733 1322, 1325, 1328, 1332, 1336, 1341, 1343, 1346, 1350, 1353, 734 1355, 1360, 1361, 1363, 1366, 1369, 1371, 1372, 1374, 1377, 735 1384, 1388, 1389, 1398, 1401, 1406, 1407, 1410, 1411, 1413, 736 1415, 1417, 1423, 1429, 1435, 1437, 1443, 1449, 1459, 1461, 737 1467, 1468, 1470, 1472, 1478, 1480, 1482, 1488, 1494, 1496, 738 1500, 1504, 1509, 1511, 1513, 1515, 1517, 1520, 1522, 1526, 739 1530, 1532, 1535, 1537, 1541, 1543, 1545, 1547, 1549, 1551, 740 1553, 1555, 1557, 1559, 1561, 1563, 1566, 1568, 1570, 1571, 741 1574, 1577, 1579, 1584, 1585, 1587, 1590, 1594, 1599, 1602, 742 1605, 1607, 1610, 1613, 1619, 1625, 1633, 1640, 1642, 1645, 743 1648, 1652, 1654, 1657, 1660, 1665, 1668, 1673, 1674, 1679, 744 1682, 1684, 1686, 1688, 1690, 1691, 1694, 1700, 1706, 1720, 745 1722, 1724, 1728, 1732, 1735, 1739, 1743, 1746, 1751, 1753, 746 1760, 1770, 1771, 1783, 1785, 1789, 1793, 1797, 1799, 1801, 747 1807, 1810, 1816, 1817, 1819, 1821, 1825, 1826, 1828, 1830, 748 1832, 1834, 1835, 1842, 1845, 1847, 1850, 1855, 1858, 1862, 749 1866, 1870, 1875, 1881, 1887, 1893, 1900, 1902, 1904, 1906, 750 1910, 1911, 1917, 1918, 1920, 1922, 1925, 1932, 1934, 1938, 751 1939, 1941, 1946, 1948, 1950, 1952, 1954, 1957, 1959, 1962, 752 1965, 1967, 1971, 1974, 1978, 1983, 1986, 1991, 1996, 2000, 753 2009, 2013, 2016, 2018, 2021, 2028, 2037, 2041, 2044, 2048, 754 2052, 2057, 2062, 2066, 2068, 2070, 2072, 2077, 2086, 2090, 755 2093, 2097, 2101, 2106, 2111, 2115, 2118, 2120, 2123, 2126, 756 2128, 2132, 2135, 2139, 2144, 2147, 2152, 2157, 2161, 2168, 757 2177, 2181, 2184, 2186, 2189, 2192, 2195, 2199, 2204, 2207, 758 2212, 2217, 2221, 2228, 2237, 2241, 2244, 2246, 2249, 2252, 759 2254, 2256, 2259, 2263, 2268, 2271, 2276, 2283, 2292, 2294, 760 2297, 2300, 2302, 2305, 2308, 2312, 2317, 2319, 2324, 2329, 761 2333, 2339, 2348, 2352, 2355, 2359, 2361, 2367, 2373, 2380, 762 2387, 2389, 2392, 2395, 2397, 2400, 2403, 2407, 2412, 2414, 763 2419, 2424, 2428, 2434, 2443, 2447, 2449, 2452, 2454, 2457, 764 2464, 2470, 2477, 2485, 2493, 2495, 2498, 2501, 2503, 2506, 765 2509, 2513, 2518, 2520, 2525, 2530, 2534, 2543, 2547, 2549, 766 2551, 2554, 2556, 2558, 2561, 2565, 2568, 2572, 2575, 2579, 767 2583, 2586, 2591, 2595, 2598, 2602, 2605, 2610, 2614, 2617, 768 2624, 2631, 2638, 2646, 2648, 2651, 2653, 2655, 2657, 2660, 769 2664, 2667, 2671, 2674, 2678, 2682, 2687, 2690, 2694, 2699, 770 2702, 2708, 2715, 2722, 2723, 2725, 2726 752 771 }; 753 772 … … 755 774 static const yytype_int16 yyrhs[] = 756 775 { 757 30 9, 0, -1, -1, -1, 82, -1, 85, -1, 86,776 308, 0, -1, -1, -1, 82, -1, 85, -1, 86, 758 777 -1, 87, -1, 83, -1, 75, -1, 79, -1, 145, 759 778 -1, 75, -1, 79, -1, 75, -1, 145, -1, 88, … … 765 784 149, 86, -1, 149, 90, 144, -1, 149, 90, 116, 766 785 139, 152, 140, 117, -1, 149, 91, -1, 149, 92, 767 -1, 114, 28 2, 115, 119, 286, 379, 120, -1, 149,786 -1, 114, 281, 115, 119, 285, 378, 120, -1, 149, 768 787 119, 150, 120, -1, 151, -1, 150, 121, 151, -1, 769 788 -1, 172, -1, 153, -1, 152, 121, 153, -1, 154, … … 775 794 141, -1, 146, -1, 43, 159, -1, 157, 159, -1, 776 795 158, 159, -1, 91, 156, -1, 92, 156, -1, 40, 777 156, -1, 40, 114, 28 2, 115, -1, 69, 156, -1,778 69, 114, 28 2, 115, -1, 41, 114, 282, 121, 144,796 156, -1, 40, 114, 281, 115, -1, 69, 156, -1, 797 69, 114, 281, 115, -1, 41, 114, 281, 121, 144, 779 798 115, -1, 79, -1, 79, 114, 151, 115, -1, 79, 780 114, 28 3, 115, -1, 122, -1, 123, -1, 124, -1,781 125, -1, 126, -1, 127, -1, 156, -1, 114, 28 2,799 114, 282, 115, -1, 122, -1, 123, -1, 124, -1, 800 125, -1, 126, -1, 127, -1, 156, -1, 114, 281, 782 801 115, 159, -1, 159, -1, 160, 122, 159, -1, 160, 783 802 128, 159, -1, 160, 129, 159, -1, 160, -1, 161, … … 799 818 -1, 177, -1, 180, -1, 181, -1, 185, -1, 186, 800 819 -1, 198, -1, 200, -1, 201, -1, 206, -1, 132, 801 149, 119, 150, 120, 137, -1, 27 9, 135, 319, 179,820 149, 119, 150, 120, 137, -1, 278, 135, 318, 179, 802 821 -1, 119, 120, -1, 119, 139, 139, 217, 182, 140, 803 822 120, -1, 183, -1, 182, 139, 183, -1, 220, -1, 804 43, 220, -1, 315, -1, 179, 140, -1, 179, -1, 805 184, 179, -1, 178, 137, -1, 44, 114, 177, 115, 806 179, -1, 44, 114, 177, 115, 179, 45, 179, -1, 807 46, 114, 177, 115, 191, -1, 46, 114, 177, 115, 808 119, 139, 213, 192, 120, -1, 56, 114, 177, 115, 809 191, -1, 56, 114, 177, 115, 119, 139, 213, 194, 810 120, -1, 171, -1, 171, 101, 171, -1, 317, -1, 811 187, -1, 188, 121, 187, -1, 47, 188, 135, -1, 812 48, 135, -1, 189, -1, 190, 189, -1, 190, 179, 813 -1, -1, 193, -1, 190, 184, -1, 193, 190, 184, 814 -1, -1, 195, -1, 190, 197, -1, 190, 184, 196, 815 -1, 195, 190, 197, -1, 195, 190, 184, 196, -1, 816 -1, 197, -1, 59, -1, 59, 137, -1, 50, 114, 817 177, 115, 179, -1, 49, 179, 50, 114, 177, 115, 818 137, -1, 51, 114, 139, 199, 115, 179, -1, 178, 819 140, 137, 178, 137, 178, -1, 220, 178, 137, 178, 820 -1, 54, 279, 137, -1, 54, 122, 177, 137, -1, 821 53, 137, -1, 53, 279, 137, -1, 52, 137, -1, 822 52, 279, 137, -1, 55, 178, 137, -1, 64, 173, 823 137, -1, 65, 173, 137, -1, 65, 173, 66, 172, 824 137, -1, 60, 181, 202, -1, 60, 181, 204, -1, 825 60, 181, 202, 204, -1, 203, -1, 61, 114, 101, 826 115, 181, -1, 203, 61, 114, 101, 115, 181, -1, 827 62, 114, 101, 115, 181, -1, 203, 62, 114, 101, 828 115, 181, -1, 61, 114, 139, 139, 205, 140, 115, 829 181, 140, -1, 203, 61, 114, 139, 139, 205, 140, 830 115, 181, 140, -1, 62, 114, 139, 139, 205, 140, 831 115, 181, 140, -1, 203, 62, 114, 139, 139, 205, 832 140, 115, 181, 140, -1, 63, 181, -1, 233, -1, 833 233, 316, -1, 233, 364, -1, 373, 144, -1, 373, 834 -1, 67, 207, 114, 146, 115, 137, -1, 67, 207, 835 114, 146, 135, 208, 115, 137, -1, 67, 207, 114, 836 146, 135, 208, 135, 208, 115, 137, -1, 67, 207, 837 114, 146, 135, 208, 135, 208, 135, 211, 115, 137, 838 -1, 67, 207, 54, 114, 146, 135, 135, 208, 135, 839 211, 135, 212, 115, 137, -1, -1, 11, -1, -1, 840 209, -1, 210, -1, 209, 121, 210, -1, 146, 114, 841 171, 115, -1, 116, 171, 117, 146, 114, 171, 115, 842 -1, -1, 146, -1, 211, 121, 146, -1, 144, -1, 843 212, 121, 144, -1, 140, -1, 214, -1, 220, -1, 844 214, 139, 220, -1, 140, -1, 216, -1, 230, -1, 845 216, 139, 230, -1, -1, 218, -1, 31, 219, 137, 846 -1, 218, 31, 219, 137, -1, 281, -1, 219, 121, 847 281, -1, 221, -1, 230, -1, 222, 140, 137, -1, 848 227, 140, 137, -1, 224, 140, 137, -1, 300, 140, 849 137, -1, 303, 140, 137, -1, 223, 284, -1, 239, 850 223, 284, -1, 222, 140, 121, 139, 279, 284, -1, 851 374, 279, 318, -1, 377, 279, 318, -1, 235, 377, 852 279, 318, -1, 225, -1, 235, 225, -1, 239, 225, 853 -1, 239, 235, 225, -1, 224, 140, 121, 139, 279, 854 -1, 377, 279, 114, 139, 267, 140, 115, -1, 226, 855 279, 114, 139, 267, 140, 115, -1, 116, 139, 269, 856 140, 117, -1, 116, 139, 269, 140, 121, 139, 270, 857 140, 117, -1, 3, 223, -1, 3, 225, -1, 227, 858 140, 121, 139, 144, -1, 3, 233, 316, -1, 228, 859 140, 121, 139, 316, -1, 235, 3, 233, 316, -1, 860 233, 3, 316, -1, 233, 3, 235, 316, -1, 3, 861 144, 136, 172, -1, 229, 140, 121, 139, 144, 136, 862 172, -1, 231, 140, 137, -1, 228, 140, 137, -1, 863 229, 140, 137, -1, 247, 140, 137, -1, 232, 316, 864 318, 284, -1, 231, 121, 319, 316, 318, 284, -1, 865 243, -1, 247, -1, 249, -1, 290, -1, 244, -1, 866 248, -1, 250, -1, 291, -1, -1, 235, -1, 236, 867 -1, 235, 236, -1, 237, -1, 321, -1, 10, -1, 868 12, -1, 11, -1, 14, -1, 70, -1, -1, 13, 869 114, 238, 293, 115, -1, 240, -1, 235, 240, -1, 870 239, 235, 240, -1, 241, -1, 240, 241, -1, 5, 871 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 872 -1, 72, -1, 74, -1, 16, -1, 21, -1, 20, 873 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 874 -1, 15, -1, 27, -1, 28, -1, 29, -1, 26, 875 -1, 24, -1, 25, -1, 244, -1, 239, 244, -1, 876 243, 241, -1, 243, 241, 235, -1, 243, 241, 244, 877 -1, 245, -1, 234, 246, 234, -1, 242, -1, 235, 878 242, -1, 245, 236, -1, 245, 242, -1, 30, 114, 879 283, 115, -1, 30, 114, 177, 115, -1, 81, 114, 880 283, 115, -1, 81, 114, 177, 115, -1, 248, -1, 881 239, 248, -1, 247, 241, -1, 247, 241, 235, -1, 882 251, -1, 235, 251, -1, 248, 236, -1, 250, -1, 883 239, 250, -1, 249, 241, -1, 249, 241, 235, -1, 884 77, -1, 235, 77, -1, 250, 236, -1, 252, -1, 885 263, -1, 254, 119, 255, 120, -1, 254, 281, -1, 886 -1, 254, 281, 253, 119, 255, 120, -1, 254, 114, 887 299, 115, 119, 255, 120, -1, 254, 292, -1, 33, 888 319, -1, 34, 319, -1, -1, 255, 256, -1, 257, 889 137, -1, 43, 257, 137, -1, 258, 137, -1, 43, 890 258, 137, -1, 373, -1, 373, 281, -1, 257, 121, 891 281, -1, 257, 121, -1, 233, 259, -1, 258, 121, 892 319, 259, -1, -1, 261, -1, 325, 260, -1, 338, 893 260, -1, 364, -1, -1, 261, -1, 135, 171, -1, 894 32, 319, -1, 262, 119, 265, 379, 120, -1, 262, 895 281, -1, -1, 262, 281, 264, 119, 265, 379, 120, 896 -1, 281, 266, -1, 265, 121, 281, 266, -1, -1, 897 136, 171, -1, -1, 268, -1, 270, -1, 269, -1, 898 269, 140, 121, 139, 270, -1, 270, 140, 121, 139, 899 101, -1, 269, 140, 121, 139, 101, -1, 274, -1, 900 270, 140, 121, 139, 274, -1, 269, 140, 121, 139, 901 274, -1, 269, 140, 121, 139, 270, 140, 121, 139, 902 274, -1, 275, -1, 270, 140, 121, 139, 275, -1, 903 -1, 272, -1, 273, -1, 273, 140, 121, 139, 101, 904 -1, 277, -1, 276, -1, 273, 140, 121, 139, 277, 905 -1, 273, 140, 121, 139, 276, -1, 276, -1, 369, 906 279, 380, -1, 377, 279, 380, -1, 235, 377, 279, 907 380, -1, 225, -1, 277, -1, 369, -1, 377, -1, 908 235, 377, -1, 378, -1, 232, 343, 380, -1, 232, 909 347, 380, -1, 232, -1, 232, 358, -1, 144, -1, 910 278, 121, 144, -1, 142, -1, 77, -1, 78, -1, 911 143, -1, 77, -1, 78, -1, 144, -1, 77, -1, 912 78, -1, 373, -1, 233, -1, 233, 364, -1, 373, 913 -1, 378, -1, 233, -1, 233, 352, -1, -1, 136, 914 285, -1, 112, 285, -1, 172, -1, 119, 286, 379, 915 120, -1, -1, 285, -1, 287, 285, -1, 286, 121, 916 285, -1, 286, 121, 287, 285, -1, 288, 135, -1, 917 281, 135, -1, 289, -1, 288, 289, -1, 118, 281, 918 -1, 116, 139, 172, 140, 117, -1, 116, 139, 317, 919 140, 117, -1, 116, 139, 171, 101, 171, 140, 117, 920 -1, 118, 116, 139, 152, 140, 117, -1, 291, -1, 921 239, 291, -1, 290, 241, -1, 290, 241, 235, -1, 922 292, -1, 235, 292, -1, 291, 236, -1, 78, 114, 923 299, 115, -1, 294, 380, -1, 293, 121, 294, 380, 924 -1, -1, 296, 281, 295, 297, -1, 233, 343, -1, 925 35, -1, 37, -1, 36, -1, 38, -1, -1, 297, 926 298, -1, 133, 281, 114, 299, 115, -1, 133, 119, 927 139, 305, 120, -1, 133, 114, 139, 293, 140, 115, 928 119, 139, 305, 120, 114, 299, 115, -1, 283, -1, 929 172, -1, 299, 121, 283, -1, 299, 121, 172, -1, 930 35, 301, -1, 240, 35, 301, -1, 300, 121, 301, 931 -1, 302, 297, -1, 302, 297, 136, 283, -1, 281, 932 -1, 280, 114, 139, 293, 140, 115, -1, 39, 281, 933 114, 139, 293, 140, 115, 119, 120, -1, -1, 39, 934 281, 114, 139, 293, 140, 115, 119, 304, 305, 120, 935 -1, 306, -1, 305, 139, 306, -1, 307, 140, 137, 936 -1, 308, 140, 137, -1, 223, -1, 225, -1, 307, 937 140, 121, 139, 279, -1, 233, 316, -1, 308, 140, 938 121, 139, 316, -1, -1, 310, -1, 312, -1, 310, 939 139, 312, -1, -1, 310, -1, 220, -1, 314, -1, 940 206, -1, -1, 5, 84, 313, 119, 311, 120, -1, 941 43, 312, -1, 315, -1, 330, 181, -1, 334, 139, 942 215, 181, -1, 224, 181, -1, 232, 330, 181, -1, 943 235, 330, 181, -1, 239, 330, 181, -1, 239, 235, 944 330, 181, -1, 232, 334, 139, 215, 181, -1, 235, 945 334, 139, 215, 181, -1, 239, 334, 139, 215, 181, 946 -1, 239, 235, 334, 139, 215, 181, -1, 325, -1, 947 338, -1, 330, -1, 171, 127, 171, -1, -1, 67, 948 114, 146, 115, 319, -1, -1, 320, -1, 321, -1, 949 320, 321, -1, 42, 114, 114, 322, 115, 115, -1, 950 323, -1, 322, 121, 323, -1, -1, 324, -1, 324, 951 114, 150, 115, -1, 75, -1, 77, -1, 78, -1, 952 10, -1, 326, 319, -1, 327, -1, 328, 319, -1, 953 329, 319, -1, 142, -1, 114, 326, 115, -1, 157, 954 325, -1, 157, 235, 325, -1, 114, 327, 115, -1, 955 326, 356, -1, 114, 327, 115, 356, -1, 114, 328, 956 115, 357, -1, 114, 328, 115, -1, 114, 327, 115, 957 114, 139, 271, 140, 115, -1, 114, 329, 115, -1, 958 331, 319, -1, 332, -1, 333, 319, -1, 326, 114, 959 139, 271, 140, 115, -1, 114, 332, 115, 114, 139, 960 271, 140, 115, -1, 114, 331, 115, -1, 157, 330, 961 -1, 157, 235, 330, -1, 114, 332, 115, -1, 114, 962 332, 115, 356, -1, 114, 333, 115, 357, -1, 114, 963 333, 115, -1, 335, -1, 336, -1, 337, -1, 326, 964 114, 278, 115, -1, 114, 336, 115, 114, 278, 115, 965 -1, 114, 335, 115, -1, 157, 334, -1, 157, 235, 966 334, -1, 114, 336, 115, -1, 114, 336, 115, 356, 967 -1, 114, 337, 115, 357, -1, 114, 337, 115, -1, 968 339, 319, -1, 340, -1, 341, 319, -1, 342, 319, 969 -1, 348, -1, 114, 339, 115, -1, 157, 338, -1, 970 157, 235, 338, -1, 114, 340, 115, -1, 339, 356, 971 -1, 114, 340, 115, 356, -1, 114, 341, 115, 357, 972 -1, 114, 341, 115, -1, 339, 114, 139, 271, 140, 973 115, -1, 114, 340, 115, 114, 139, 271, 140, 115, 974 -1, 114, 342, 115, -1, 326, 319, -1, 344, -1, 975 345, 319, -1, 346, 319, -1, 157, 343, -1, 157, 976 235, 343, -1, 114, 344, 115, -1, 326, 362, -1, 977 114, 344, 115, 356, -1, 114, 345, 115, 357, -1, 978 114, 345, 115, -1, 326, 114, 139, 271, 140, 115, 979 -1, 114, 344, 115, 114, 139, 271, 140, 115, -1, 980 114, 346, 115, -1, 348, 319, -1, 349, -1, 350, 981 319, -1, 351, 319, -1, 77, -1, 78, -1, 157, 982 347, -1, 157, 235, 347, -1, 114, 349, 115, -1, 983 348, 362, -1, 114, 349, 115, 362, -1, 348, 114, 984 139, 271, 140, 115, -1, 114, 349, 115, 114, 139, 985 271, 140, 115, -1, 353, -1, 354, 319, -1, 355, 986 319, -1, 157, -1, 157, 235, -1, 157, 352, -1, 987 157, 235, 352, -1, 114, 353, 115, -1, 356, -1, 988 114, 353, 115, 356, -1, 114, 354, 115, 357, -1, 989 114, 354, 115, -1, 114, 139, 271, 140, 115, -1, 990 114, 353, 115, 114, 139, 271, 140, 115, -1, 114, 991 355, 115, -1, 116, 117, -1, 116, 117, 357, -1, 992 357, -1, 116, 139, 172, 140, 117, -1, 116, 139, 993 122, 140, 117, -1, 357, 116, 139, 172, 140, 117, 994 -1, 357, 116, 139, 122, 140, 117, -1, 359, -1, 995 360, 319, -1, 361, 319, -1, 157, -1, 157, 235, 996 -1, 157, 358, -1, 157, 235, 358, -1, 114, 359, 997 115, -1, 362, -1, 114, 359, 115, 362, -1, 114, 998 360, 115, 357, -1, 114, 360, 115, -1, 114, 139, 999 271, 140, 115, -1, 114, 359, 115, 114, 139, 271, 1000 140, 115, -1, 114, 361, 115, -1, 363, -1, 363, 1001 357, -1, 357, -1, 116, 117, -1, 116, 139, 235, 823 43, 220, -1, 314, -1, 43, 314, -1, 179, 140, 824 -1, 179, -1, 184, 179, -1, 178, 137, -1, 44, 825 114, 177, 115, 179, -1, 44, 114, 177, 115, 179, 826 45, 179, -1, 46, 114, 177, 115, 191, -1, 46, 827 114, 177, 115, 119, 139, 213, 192, 120, -1, 56, 828 114, 177, 115, 191, -1, 56, 114, 177, 115, 119, 829 139, 213, 194, 120, -1, 171, -1, 171, 101, 171, 830 -1, 316, -1, 187, -1, 188, 121, 187, -1, 47, 831 188, 135, -1, 48, 135, -1, 189, -1, 190, 189, 832 -1, 190, 179, -1, -1, 193, -1, 190, 184, -1, 833 193, 190, 184, -1, -1, 195, -1, 190, 197, -1, 834 190, 184, 196, -1, 195, 190, 197, -1, 195, 190, 835 184, 196, -1, -1, 197, -1, 59, -1, 59, 137, 836 -1, 50, 114, 177, 115, 179, -1, 49, 179, 50, 837 114, 177, 115, 137, -1, 51, 114, 139, 199, 115, 838 179, -1, 178, 140, 137, 178, 137, 178, -1, 220, 839 178, 137, 178, -1, 54, 278, 137, -1, 54, 122, 840 177, 137, -1, 53, 137, -1, 53, 278, 137, -1, 841 52, 137, -1, 52, 278, 137, -1, 55, 178, 137, 842 -1, 64, 173, 137, -1, 65, 173, 137, -1, 65, 843 173, 66, 172, 137, -1, 60, 181, 202, -1, 60, 844 181, 204, -1, 60, 181, 202, 204, -1, 203, -1, 845 61, 114, 101, 115, 181, -1, 203, 61, 114, 101, 846 115, 181, -1, 62, 114, 101, 115, 181, -1, 203, 847 62, 114, 101, 115, 181, -1, 61, 114, 139, 139, 848 205, 140, 115, 181, 140, -1, 203, 61, 114, 139, 849 139, 205, 140, 115, 181, 140, -1, 62, 114, 139, 850 139, 205, 140, 115, 181, 140, -1, 203, 62, 114, 851 139, 139, 205, 140, 115, 181, 140, -1, 63, 181, 852 -1, 233, -1, 233, 315, -1, 233, 363, -1, 372, 853 144, -1, 372, -1, 67, 207, 114, 146, 115, 137, 854 -1, 67, 207, 114, 146, 135, 208, 115, 137, -1, 855 67, 207, 114, 146, 135, 208, 135, 208, 115, 137, 856 -1, 67, 207, 114, 146, 135, 208, 135, 208, 135, 857 211, 115, 137, -1, 67, 207, 54, 114, 146, 135, 858 135, 208, 135, 211, 135, 212, 115, 137, -1, -1, 859 11, -1, -1, 209, -1, 210, -1, 209, 121, 210, 860 -1, 146, 114, 171, 115, -1, 116, 171, 117, 146, 861 114, 171, 115, -1, -1, 146, -1, 211, 121, 146, 862 -1, 144, -1, 212, 121, 144, -1, 140, -1, 214, 863 -1, 220, -1, 214, 139, 220, -1, 140, -1, 216, 864 -1, 230, -1, 216, 139, 230, -1, -1, 218, -1, 865 31, 219, 137, -1, 218, 31, 219, 137, -1, 280, 866 -1, 219, 121, 280, -1, 221, -1, 230, -1, 222, 867 140, 137, -1, 227, 140, 137, -1, 224, 140, 137, 868 -1, 299, 140, 137, -1, 302, 140, 137, -1, 223, 869 283, -1, 239, 223, 283, -1, 222, 140, 121, 139, 870 278, 283, -1, 373, 278, 317, -1, 376, 278, 317, 871 -1, 235, 376, 278, 317, -1, 225, -1, 235, 225, 872 -1, 239, 225, -1, 239, 235, 225, -1, 224, 140, 873 121, 139, 278, -1, 376, 278, 114, 139, 266, 140, 874 115, -1, 226, 278, 114, 139, 266, 140, 115, -1, 875 116, 139, 268, 140, 117, -1, 116, 139, 268, 140, 876 121, 139, 269, 140, 117, -1, 3, 223, -1, 3, 877 225, -1, 227, 140, 121, 139, 144, -1, 3, 233, 878 315, -1, 228, 140, 121, 139, 315, -1, 235, 3, 879 233, 315, -1, 233, 3, 315, -1, 233, 3, 235, 880 315, -1, 3, 144, 136, 172, -1, 229, 140, 121, 881 139, 144, 136, 172, -1, 232, 231, 140, 137, -1, 882 228, 140, 137, -1, 229, 140, 137, -1, 247, 140, 883 137, -1, 315, 317, 283, -1, 231, 121, 318, 315, 884 317, 283, -1, 243, -1, 247, -1, 249, -1, 289, 885 -1, 244, -1, 248, -1, 250, -1, 290, -1, -1, 886 235, -1, 236, -1, 235, 236, -1, 237, -1, 320, 887 -1, 10, -1, 12, -1, 11, -1, 14, -1, 70, 888 -1, -1, 13, 114, 238, 292, 115, -1, 240, -1, 889 235, 240, -1, 239, 235, 240, -1, 241, -1, 240, 890 241, -1, 5, -1, 7, -1, 4, -1, 6, -1, 891 8, -1, 9, -1, 72, -1, 74, -1, 16, -1, 892 21, -1, 20, -1, 18, -1, 19, -1, 17, -1, 893 22, -1, 23, -1, 15, -1, 27, -1, 28, -1, 894 29, -1, 26, -1, 24, -1, 25, -1, 244, -1, 895 239, 244, -1, 243, 241, -1, 243, 241, 235, -1, 896 243, 241, 244, -1, 245, -1, 234, 246, 234, -1, 897 242, -1, 235, 242, -1, 245, 236, -1, 245, 242, 898 -1, 30, 114, 282, 115, -1, 30, 114, 177, 115, 899 -1, 81, 114, 282, 115, -1, 81, 114, 177, 115, 900 -1, 248, -1, 239, 248, -1, 247, 241, -1, 247, 901 241, 235, -1, 251, -1, 235, 251, -1, 248, 236, 902 -1, 250, -1, 239, 250, -1, 249, 241, -1, 249, 903 241, 235, -1, 77, -1, 235, 77, -1, 250, 236, 904 -1, 252, -1, 262, -1, 254, 318, 119, 255, 120, 905 -1, 254, 318, 280, -1, -1, 254, 318, 280, 253, 906 119, 255, 120, -1, 254, 318, 114, 298, 115, 119, 907 255, 120, -1, 254, 318, 291, -1, 33, -1, 34, 908 -1, -1, 255, 256, -1, 257, 137, -1, 43, 257, 909 137, -1, 233, 258, 137, -1, 43, 233, 258, 137, 910 -1, 372, -1, 372, 280, -1, 257, 121, 280, -1, 911 257, 121, -1, 259, -1, 258, 121, 318, 259, -1, 912 -1, 261, -1, 324, 260, -1, 337, 260, -1, 363, 913 -1, -1, 261, -1, 135, 171, -1, 32, 318, 119, 914 264, 378, 120, -1, 32, 318, 280, -1, -1, 32, 915 318, 280, 263, 119, 264, 378, 120, -1, 280, 265, 916 -1, 264, 121, 280, 265, -1, -1, 136, 171, -1, 917 -1, 267, -1, 269, -1, 268, -1, 268, 140, 121, 918 139, 269, -1, 269, 140, 121, 139, 101, -1, 268, 919 140, 121, 139, 101, -1, 273, -1, 269, 140, 121, 920 139, 273, -1, 268, 140, 121, 139, 273, -1, 268, 921 140, 121, 139, 269, 140, 121, 139, 273, -1, 274, 922 -1, 269, 140, 121, 139, 274, -1, -1, 271, -1, 923 272, -1, 272, 140, 121, 139, 101, -1, 276, -1, 924 275, -1, 272, 140, 121, 139, 276, -1, 272, 140, 925 121, 139, 275, -1, 275, -1, 368, 278, 379, -1, 926 376, 278, 379, -1, 235, 376, 278, 379, -1, 225, 927 -1, 276, -1, 368, -1, 376, -1, 235, 376, -1, 928 377, -1, 232, 342, 379, -1, 232, 346, 379, -1, 929 232, -1, 232, 357, -1, 144, -1, 277, 121, 144, 930 -1, 142, -1, 77, -1, 78, -1, 143, -1, 77, 931 -1, 78, -1, 144, -1, 77, -1, 78, -1, 372, 932 -1, 233, -1, 233, 351, -1, 281, -1, 377, -1, 933 -1, 136, 284, -1, 112, 284, -1, 172, -1, 119, 934 285, 378, 120, -1, -1, 284, -1, 286, 284, -1, 935 285, 121, 284, -1, 285, 121, 286, 284, -1, 287, 936 135, -1, 280, 135, -1, 288, -1, 287, 288, -1, 937 118, 280, -1, 116, 139, 172, 140, 117, -1, 116, 938 139, 316, 140, 117, -1, 116, 139, 171, 101, 171, 939 140, 117, -1, 118, 116, 139, 152, 140, 117, -1, 940 290, -1, 239, 290, -1, 289, 241, -1, 289, 241, 941 235, -1, 291, -1, 235, 291, -1, 290, 236, -1, 942 78, 114, 298, 115, -1, 293, 379, -1, 292, 121, 943 293, 379, -1, -1, 295, 280, 294, 296, -1, 233, 944 342, -1, 35, -1, 37, -1, 36, -1, 38, -1, 945 -1, 296, 297, -1, 133, 280, 114, 298, 115, -1, 946 133, 119, 139, 304, 120, -1, 133, 114, 139, 292, 947 140, 115, 119, 139, 304, 120, 114, 298, 115, -1, 948 282, -1, 172, -1, 298, 121, 282, -1, 298, 121, 949 172, -1, 35, 300, -1, 240, 35, 300, -1, 299, 950 121, 300, -1, 301, 296, -1, 301, 296, 136, 282, 951 -1, 280, -1, 279, 114, 139, 292, 140, 115, -1, 952 39, 280, 114, 139, 292, 140, 115, 119, 120, -1, 953 -1, 39, 280, 114, 139, 292, 140, 115, 119, 303, 954 304, 120, -1, 305, -1, 304, 139, 305, -1, 306, 955 140, 137, -1, 307, 140, 137, -1, 223, -1, 225, 956 -1, 306, 140, 121, 139, 278, -1, 233, 315, -1, 957 307, 140, 121, 139, 315, -1, -1, 309, -1, 311, 958 -1, 309, 139, 311, -1, -1, 309, -1, 220, -1, 959 313, -1, 206, -1, -1, 5, 84, 312, 119, 310, 960 120, -1, 43, 311, -1, 314, -1, 329, 181, -1, 961 333, 139, 215, 181, -1, 224, 181, -1, 232, 329, 962 181, -1, 235, 329, 181, -1, 239, 329, 181, -1, 963 239, 235, 329, 181, -1, 232, 333, 139, 215, 181, 964 -1, 235, 333, 139, 215, 181, -1, 239, 333, 139, 965 215, 181, -1, 239, 235, 333, 139, 215, 181, -1, 966 324, -1, 337, -1, 329, -1, 171, 127, 171, -1, 967 -1, 67, 114, 146, 115, 318, -1, -1, 319, -1, 968 320, -1, 319, 320, -1, 42, 114, 114, 321, 115, 969 115, -1, 322, -1, 321, 121, 322, -1, -1, 323, 970 -1, 323, 114, 150, 115, -1, 75, -1, 77, -1, 971 78, -1, 10, -1, 325, 318, -1, 326, -1, 327, 972 318, -1, 328, 318, -1, 142, -1, 114, 325, 115, 973 -1, 157, 324, -1, 157, 235, 324, -1, 114, 326, 974 115, 318, -1, 325, 355, -1, 114, 326, 115, 355, 975 -1, 114, 327, 115, 356, -1, 114, 327, 115, -1, 976 114, 326, 115, 114, 139, 270, 140, 115, -1, 114, 977 328, 115, -1, 330, 318, -1, 331, -1, 332, 318, 978 -1, 325, 114, 139, 270, 140, 115, -1, 114, 331, 979 115, 114, 139, 270, 140, 115, -1, 114, 330, 115, 980 -1, 157, 329, -1, 157, 235, 329, -1, 114, 331, 981 115, -1, 114, 331, 115, 355, -1, 114, 332, 115, 982 356, -1, 114, 332, 115, -1, 334, -1, 335, -1, 983 336, -1, 325, 114, 277, 115, -1, 114, 335, 115, 984 114, 139, 270, 140, 115, -1, 114, 334, 115, -1, 985 157, 333, -1, 157, 235, 333, -1, 114, 335, 115, 986 -1, 114, 335, 115, 355, -1, 114, 336, 115, 356, 987 -1, 114, 336, 115, -1, 338, 318, -1, 339, -1, 988 340, 318, -1, 341, 318, -1, 347, -1, 114, 338, 989 115, -1, 157, 337, -1, 157, 235, 337, -1, 114, 990 339, 115, 318, -1, 338, 355, -1, 114, 339, 115, 991 355, -1, 114, 340, 115, 356, -1, 114, 340, 115, 992 -1, 338, 114, 139, 270, 140, 115, -1, 114, 339, 993 115, 114, 139, 270, 140, 115, -1, 114, 341, 115, 994 -1, 325, 318, -1, 343, -1, 344, 318, -1, 345, 995 318, -1, 157, 342, -1, 157, 235, 342, -1, 114, 996 343, 115, 318, -1, 325, 361, -1, 114, 343, 115, 997 355, -1, 114, 344, 115, 356, -1, 114, 344, 115, 998 -1, 325, 114, 139, 270, 140, 115, -1, 114, 343, 999 115, 114, 139, 270, 140, 115, -1, 114, 345, 115, 1000 -1, 347, 318, -1, 348, -1, 349, 318, -1, 350, 1001 318, -1, 77, -1, 78, -1, 157, 346, -1, 157, 1002 235, 346, -1, 114, 348, 115, 318, -1, 347, 361, 1003 -1, 114, 348, 115, 361, -1, 347, 114, 139, 270, 1004 140, 115, -1, 114, 348, 115, 114, 139, 270, 140, 1005 115, -1, 352, -1, 353, 318, -1, 354, 318, -1, 1006 157, -1, 157, 235, -1, 157, 351, -1, 157, 235, 1007 351, -1, 114, 352, 115, 318, -1, 355, -1, 114, 1008 352, 115, 355, -1, 114, 353, 115, 356, -1, 114, 1009 353, 115, -1, 114, 139, 270, 140, 115, -1, 114, 1010 352, 115, 114, 139, 270, 140, 115, -1, 114, 354, 1011 115, -1, 116, 117, -1, 116, 117, 356, -1, 356, 1012 -1, 116, 139, 172, 140, 117, -1, 116, 139, 122, 1013 140, 117, -1, 356, 116, 139, 172, 140, 117, -1, 1014 356, 116, 139, 122, 140, 117, -1, 358, -1, 359, 1015 318, -1, 360, 318, -1, 157, -1, 157, 235, -1, 1016 157, 357, -1, 157, 235, 357, -1, 114, 358, 115, 1017 318, -1, 361, -1, 114, 358, 115, 361, -1, 114, 1018 359, 115, 356, -1, 114, 359, 115, -1, 114, 139, 1019 270, 140, 115, -1, 114, 358, 115, 114, 139, 270, 1020 140, 115, -1, 114, 360, 115, -1, 362, -1, 362, 1021 356, -1, 356, -1, 116, 117, -1, 116, 139, 235, 1002 1022 122, 140, 117, -1, 116, 139, 235, 140, 117, -1, 1003 1023 116, 139, 235, 172, 140, 117, -1, 116, 139, 7, 1004 1024 234, 172, 140, 117, -1, 116, 139, 235, 7, 172, 1005 140, 117, -1, 36 5, -1, 366, 319, -1, 367, 319,1006 -1, 157, -1, 157, 235, -1, 157, 36 4, -1, 157,1007 235, 36 4, -1, 114, 365, 115, -1, 356, -1, 114,1008 365, 115, 356, -1, 114, 366, 115, 357, -1, 114,1009 366, 115, -1, 114, 365, 115, 114, 139, 271, 140,1010 1 15, -1, 114, 367, 115, -1, 369, -1, 377, -1,1011 235, 377, -1, 370, -1, 371, -1, 157, 233, -1,1012 235, 157, 233, -1, 157, 378, -1, 235, 157, 378,1013 -1, 157, 368, -1, 235, 157, 368, -1, 116, 117,1014 233, -1, 372, 233, -1, 116, 117, 357, 233, -1,1015 372, 357, 233, -1, 357, 233, -1, 116, 117, 370,1016 -1, 372, 370, -1, 116, 117, 357, 370, -1, 372,1017 3 57, 370, -1, 357, 370, -1, 116, 139, 235, 122,1018 1 40, 117, -1, 116, 139, 235, 172, 140, 117, -1,1019 116, 139, 239, 172, 140, 117, -1, 116, 139, 239,1020 23 5, 172, 140, 117, -1, 377, -1, 235, 377, -1,1021 374, -1, 375, -1, 376, -1, 157, 233, -1, 235,1022 157, 233, -1, 157, 378, -1, 235, 157, 378, -1,1023 157, 373, -1, 235, 157, 373, -1, 116, 117, 233,1024 -1, 116, 117, 357, 233, -1, 357, 233, -1, 116,1025 11 7, 375, -1, 116, 117, 357, 375, -1, 357, 375,1026 -1, 116, 139, 270, 140, 117, -1, 377, 114, 139,1027 267, 140, 115, -1, 226, 114, 139, 267, 140, 115,1028 -1, -1, 121, -1, -1, 136, 172, -11025 140, 117, -1, 364, -1, 365, 318, -1, 366, 318, 1026 -1, 157, -1, 157, 235, -1, 157, 363, -1, 157, 1027 235, 363, -1, 114, 364, 115, 318, -1, 355, -1, 1028 114, 364, 115, 355, -1, 114, 365, 115, 356, -1, 1029 114, 365, 115, -1, 114, 364, 115, 114, 139, 270, 1030 140, 115, -1, 114, 366, 115, -1, 368, -1, 376, 1031 -1, 235, 376, -1, 369, -1, 370, -1, 157, 233, 1032 -1, 235, 157, 233, -1, 157, 377, -1, 235, 157, 1033 377, -1, 157, 367, -1, 235, 157, 367, -1, 116, 1034 117, 233, -1, 371, 233, -1, 116, 117, 356, 233, 1035 -1, 371, 356, 233, -1, 356, 233, -1, 116, 117, 1036 369, -1, 371, 369, -1, 116, 117, 356, 369, -1, 1037 371, 356, 369, -1, 356, 369, -1, 116, 139, 235, 1038 122, 140, 117, -1, 116, 139, 235, 172, 140, 117, 1039 -1, 116, 139, 239, 172, 140, 117, -1, 116, 139, 1040 239, 235, 172, 140, 117, -1, 376, -1, 235, 376, 1041 -1, 373, -1, 374, -1, 375, -1, 157, 233, -1, 1042 235, 157, 233, -1, 157, 377, -1, 235, 157, 377, 1043 -1, 157, 372, -1, 235, 157, 372, -1, 116, 117, 1044 233, -1, 116, 117, 356, 233, -1, 356, 233, -1, 1045 116, 117, 374, -1, 116, 117, 356, 374, -1, 356, 1046 374, -1, 116, 139, 269, 140, 117, -1, 376, 114, 1047 139, 266, 140, 115, -1, 226, 114, 139, 266, 140, 1048 115, -1, -1, 121, -1, -1, 136, 172, -1 1029 1049 }; 1030 1050 … … 1032 1052 static const yytype_uint16 yyrline[] = 1033 1053 { 1034 0, 3 05, 305, 309, 316, 317, 318, 319, 320, 324,1035 3 25, 326, 330, 331, 335, 336, 340, 341, 345, 349,1036 3 50, 361, 363, 365, 366, 368, 373, 374, 380, 382,1037 384, 386, 388, 390, 392, 394, 396, 398, 407, 408,1038 4 14, 415, 419, 420, 424, 425, 427, 429, 431, 433,1039 4 35, 440, 442, 444, 456, 457, 465, 468, 470, 472,1040 4 77, 490, 492, 494, 496, 498, 500, 502, 504, 506,1041 5 08, 510, 517, 518, 524, 525, 526, 527, 531, 532,1042 5 39, 540, 542, 544, 549, 550, 552, 557, 558, 560,1043 5 65, 566, 568, 570, 572, 577, 578, 580, 585, 586,1044 591, 592, 597, 598, 603, 604, 609, 610, 615, 616,1045 6 19, 626, 631, 632, 640, 641, 645, 646, 647, 648,1046 6 49, 650, 651, 652, 653, 654, 655, 656, 666, 668,1047 6 73, 674, 679, 680, 686, 687, 693, 694, 695, 696,1048 697, 698, 699, 700, 701, 711, 718, 720, 730, 731,1049 7 36, 738, 744, 746, 750, 751, 756, 761, 764, 766,1050 7 68, 778, 780, 791, 792, 794, 798, 800, 804, 805,1051 8 10, 811, 815, 820, 821, 825, 827, 833, 834, 838,1052 8 40, 842, 844, 850, 851, 855, 857, 862, 864, 866,1053 8 71, 873, 878, 880, 884, 887, 891, 894, 898, 900,1054 9 02, 904, 909, 911, 913, 918, 920, 922, 924, 926,1055 9 31, 933, 935, 937, 942, 954, 955, 960, 962, 967,1056 9 71, 973, 975, 977, 979, 985, 986, 992, 993, 997,1057 998, 1003, 1005, 1011, 1012, 1014, 1020, 1025, 1035, 1037,1058 10 41, 1042, 1047, 1049, 1053, 1054, 1058, 1060, 1064, 1065,1059 10 69, 1070, 1074, 1075, 1090, 1091, 1092, 1093, 1094, 1098,1060 11 03, 1110, 1120, 1125, 1130, 1138, 1143, 1148, 1153, 1158,1061 118 8, 1193, 1200, 1202, 1209, 1214, 1219, 1230, 1235, 1240,1062 12 45, 1250, 1259, 1264, 1272, 1273, 1274, 1275, 1281, 1286,1063 1 294, 1295, 1296, 1297, 1301, 1302, 1303, 1304, 1309, 1310,1064 13 19, 1320, 1325, 1326, 1330, 1332, 1334, 1336, 1338, 1341,1065 13 40, 1352, 1353, 1355, 1365, 1366, 1371, 1373, 1375, 1377,1066 1 379, 1382, 1384, 1387, 1392, 1394, 1396, 1398, 1400, 1402,1067 14 04, 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1426,1068 14 27, 1429, 1431, 1433, 1438, 1439, 1445, 1446, 1448, 1450,1069 1 455, 1457, 1459, 1461, 1466, 1467, 1469, 1471, 1476, 1477,1070 1 479, 1484, 1485, 1487, 1489, 1494, 1496, 1498, 1503, 1504,1071 15 08, 1510, 1516, 1515, 1519, 1521, 1526, 1528, 1534, 1535,1072 15 40, 1541, 1543, 1544, 1553, 1554, 1556, 1558, 1563, 1565,1073 1 571, 1572, 1574, 1577, 1580, 1585, 1586, 1591, 1596, 1600,1074 16 02, 1608, 1607, 1614, 1616, 1622, 1623, 1631, 1632, 1636,1075 16 37, 1638, 1640, 1642, 1649, 1650, 1652, 1654, 1659, 1660,1076 1 666, 1667, 1671, 1672, 1677, 1678, 1679, 1681, 1689, 1690,1077 1 692, 1695, 1697, 1701, 1702, 1703, 1705, 1707, 1711, 1716,1078 17 24, 1725, 1734, 1736, 1741, 1742, 1743, 1747, 1748, 1749,1079 1 753, 1754, 1755, 1759, 1760, 1761, 1766, 1767, 1768, 1769,1080 1 775, 1776, 1778, 1783, 1784, 1789, 1790, 1791, 1792, 1793,1081 18 08, 1809, 1814, 1815, 1821, 1823, 1826, 1828, 1830, 1853,1082 1 854, 1856, 1858, 1863, 1864, 1866, 1871, 1876, 1877, 1883,1083 1 882, 1886, 1890, 1892, 1894, 1896, 1902, 1903, 1908, 1913,1084 19 15, 1920, 1922, 1923, 1925, 1930, 1932, 1934, 1939, 1941,1085 1946, 1951, 1959, 1965, 1964, 1978, 1979, 1984, 1985, 1989,1086 1994, 1999, 2007, 2012, 2023, 2024, 2029, 2030, 2036, 2037,1087 20 41, 2042, 2043, 2046, 2045, 2056, 2065, 2071, 2077, 2086,1088 2 092, 2098, 2104, 2110, 2118, 2124, 2132, 2138, 2147, 2148,1089 2 149, 2153, 2159, 2160, 2166, 2167, 2171, 2172, 2177, 2182,1090 2 183, 2189, 2190, 2192, 2197, 2198, 2199, 2200, 2235, 2237,1091 22 38, 2240, 2245, 2250, 2255, 2257, 2259, 2264, 2266, 2268,1092 2 270, 2275, 2277, 2286, 2288, 2289, 2294, 2296, 2298, 2303,1093 23 05, 2307, 2312, 2314, 2316, 2325, 2326, 2327, 2331, 2333,1094 23 35, 2340, 2342, 2344, 2349, 2351, 2353, 2368, 2370, 2371,1095 2 373, 2378, 2379, 2384, 2386, 2388, 2393, 2395, 2397, 2399,1096 24 04, 2406, 2408, 2418, 2420, 2421, 2423, 2428, 2430, 2432,1097 24 37, 2439, 2441, 2443, 2448, 2450, 2452, 2483, 2485, 2486,1098 2 488, 2493, 2498, 2506, 2508, 2510, 2515, 2517, 2522, 2524,1099 25 38, 2539, 2541, 2546, 2548, 2550, 2552, 2554, 2559, 2560,1100 2 562, 2564, 2569, 2571, 2573, 2579, 2581, 2583, 2587, 2589,1101 2 591, 2593, 2607, 2608, 2610, 2615, 2617, 2619, 2621, 2623,1102 26 28, 2629, 2631, 2633, 2638, 2640, 2642, 2648, 2649, 2651,1103 2 660, 2663, 2665, 2668, 2670, 2672, 2685, 2686, 2688, 2693,1104 2 695, 2697, 2699, 2701, 2706, 2707, 2709, 2711, 2716, 2718,1105 27 26, 2727, 2728, 2733, 2734, 2738, 2740, 2742, 2744, 2746,1106 2 748, 2755, 2757, 2759, 2761, 2763, 2766, 2768, 2770, 2772,1107 2 774, 2779, 2781, 2783, 2788, 2814, 2815, 2817, 2821, 2822,1108 28 26, 2828, 2830, 2832, 2834, 2836, 2843, 2845, 2847, 2849,1109 2 851, 2853, 2858, 2865, 2867, 2885, 2887, 2892, 28931054 0, 326, 326, 330, 337, 338, 339, 340, 341, 345, 1055 346, 347, 351, 352, 356, 357, 361, 362, 366, 370, 1056 371, 382, 384, 386, 387, 389, 394, 395, 401, 403, 1057 405, 407, 409, 411, 413, 415, 417, 419, 428, 429, 1058 435, 436, 440, 441, 445, 446, 448, 450, 452, 454, 1059 456, 461, 463, 465, 477, 478, 486, 489, 491, 493, 1060 498, 511, 513, 515, 517, 519, 521, 523, 525, 527, 1061 529, 531, 538, 539, 545, 546, 547, 548, 552, 553, 1062 560, 561, 563, 565, 570, 571, 573, 578, 579, 581, 1063 586, 587, 589, 591, 593, 598, 599, 601, 606, 607, 1064 612, 613, 618, 619, 624, 625, 630, 631, 636, 637, 1065 640, 647, 652, 653, 661, 662, 666, 667, 668, 669, 1066 670, 671, 672, 673, 674, 675, 676, 677, 687, 689, 1067 694, 695, 700, 701, 707, 708, 714, 715, 716, 717, 1068 718, 719, 720, 721, 722, 732, 739, 741, 752, 753, 1069 758, 760, 765, 767, 772, 776, 777, 782, 787, 790, 1070 792, 794, 804, 806, 817, 818, 820, 824, 826, 830, 1071 831, 836, 837, 841, 846, 847, 851, 853, 859, 860, 1072 864, 866, 868, 870, 876, 877, 881, 883, 888, 890, 1073 892, 897, 899, 904, 906, 910, 913, 917, 920, 924, 1074 926, 928, 930, 935, 937, 939, 944, 946, 948, 950, 1075 952, 957, 959, 961, 963, 968, 980, 981, 986, 988, 1076 993, 997, 999, 1001, 1003, 1005, 1011, 1012, 1018, 1019, 1077 1023, 1024, 1029, 1031, 1037, 1038, 1040, 1046, 1051, 1061, 1078 1063, 1067, 1068, 1073, 1075, 1079, 1080, 1084, 1086, 1090, 1079 1091, 1095, 1096, 1100, 1101, 1116, 1117, 1118, 1119, 1120, 1080 1124, 1129, 1136, 1146, 1151, 1156, 1164, 1169, 1174, 1179, 1081 1184, 1214, 1219, 1226, 1228, 1235, 1240, 1245, 1256, 1261, 1082 1266, 1271, 1276, 1285, 1290, 1320, 1324, 1325, 1326, 1332, 1083 1337, 1345, 1346, 1347, 1348, 1352, 1353, 1354, 1355, 1360, 1084 1361, 1370, 1371, 1376, 1377, 1381, 1383, 1385, 1387, 1389, 1085 1392, 1391, 1403, 1404, 1406, 1416, 1417, 1422, 1424, 1426, 1086 1428, 1430, 1433, 1435, 1438, 1443, 1445, 1447, 1449, 1451, 1087 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471, 1088 1477, 1478, 1480, 1482, 1484, 1489, 1490, 1496, 1497, 1499, 1089 1501, 1506, 1508, 1510, 1512, 1517, 1518, 1520, 1522, 1527, 1090 1528, 1530, 1535, 1536, 1538, 1540, 1545, 1547, 1549, 1554, 1091 1555, 1559, 1561, 1567, 1566, 1570, 1572, 1577, 1579, 1585, 1092 1586, 1591, 1592, 1597, 1600, 1608, 1609, 1611, 1613, 1618, 1093 1619, 1625, 1626, 1628, 1631, 1634, 1639, 1640, 1645, 1650, 1094 1652, 1658, 1657, 1664, 1666, 1672, 1673, 1681, 1682, 1686, 1095 1687, 1688, 1690, 1692, 1699, 1700, 1702, 1704, 1709, 1710, 1096 1716, 1717, 1721, 1722, 1727, 1728, 1729, 1731, 1739, 1740, 1097 1742, 1745, 1747, 1751, 1752, 1753, 1755, 1757, 1761, 1766, 1098 1774, 1775, 1784, 1786, 1791, 1792, 1793, 1797, 1798, 1799, 1099 1803, 1804, 1805, 1809, 1810, 1811, 1816, 1817, 1822, 1823, 1100 1825, 1830, 1831, 1836, 1837, 1838, 1839, 1840, 1855, 1856, 1101 1861, 1862, 1868, 1870, 1873, 1875, 1877, 1900, 1901, 1903, 1102 1905, 1910, 1911, 1913, 1918, 1923, 1924, 1930, 1929, 1933, 1103 1937, 1939, 1941, 1943, 1949, 1950, 1955, 1960, 1962, 1967, 1104 1969, 1970, 1972, 1977, 1979, 1981, 1986, 1988, 1993, 1998, 1105 2006, 2012, 2011, 2025, 2026, 2031, 2032, 2036, 2041, 2046, 1106 2054, 2059, 2070, 2071, 2076, 2077, 2083, 2084, 2088, 2089, 1107 2090, 2093, 2092, 2103, 2111, 2117, 2123, 2132, 2138, 2144, 1108 2150, 2156, 2164, 2170, 2178, 2184, 2193, 2194, 2195, 2199, 1109 2205, 2206, 2216, 2217, 2221, 2222, 2227, 2232, 2233, 2239, 1110 2240, 2242, 2247, 2248, 2249, 2250, 2285, 2287, 2288, 2290, 1111 2295, 2300, 2305, 2307, 2309, 2314, 2316, 2318, 2320, 2325, 1112 2327, 2336, 2338, 2339, 2344, 2346, 2348, 2353, 2355, 2357, 1113 2362, 2364, 2366, 2378, 2379, 2380, 2384, 2386, 2388, 2393, 1114 2395, 2397, 2402, 2404, 2406, 2421, 2423, 2424, 2426, 2431, 1115 2432, 2437, 2439, 2441, 2446, 2448, 2450, 2452, 2457, 2459, 1116 2461, 2471, 2473, 2474, 2476, 2481, 2483, 2485, 2490, 2492, 1117 2494, 2496, 2501, 2503, 2505, 2518, 2520, 2521, 2523, 2528, 1118 2533, 2541, 2543, 2545, 2550, 2552, 2557, 2559, 2576, 2577, 1119 2579, 2584, 2586, 2588, 2590, 2592, 2597, 2598, 2600, 2602, 1120 2607, 2609, 2611, 2617, 2619, 2621, 2625, 2627, 2629, 2631, 1121 2665, 2666, 2668, 2673, 2675, 2677, 2679, 2681, 2686, 2687, 1122 2689, 2691, 2696, 2698, 2700, 2706, 2707, 2709, 2718, 2721, 1123 2723, 2726, 2728, 2730, 2744, 2745, 2747, 2752, 2754, 2756, 1124 2758, 2760, 2765, 2766, 2768, 2770, 2775, 2777, 2785, 2786, 1125 2787, 2792, 2793, 2797, 2799, 2801, 2803, 2805, 2807, 2814, 1126 2816, 2818, 2820, 2822, 2825, 2827, 2829, 2831, 2833, 2838, 1127 2840, 2842, 2847, 2873, 2874, 2876, 2880, 2881, 2885, 2887, 1128 2889, 2891, 2893, 2895, 2902, 2904, 2906, 2908, 2910, 2912, 1129 2917, 2924, 2926, 2944, 2946, 2951, 2952 1110 1130 }; 1111 1131 #endif … … 1161 1181 "asm_volatile_opt", "asm_operands_opt", "asm_operands_list", 1162 1182 "asm_operand", "asm_clobbers_list_opt", "label_list", 1163 "declaration_list_opt", "declaration_list", " old_declaration_list_opt",1164 " old_declaration_list", "local_label_declaration_opt",1183 "declaration_list_opt", "declaration_list", "KR_declaration_list_opt", 1184 "KR_declaration_list", "local_label_declaration_opt", 1165 1185 "local_label_declaration_list", "local_label_list", "declaration", 1166 " new_declaration", "new_variable_declaration", "new_variable_specifier",1167 " new_function_declaration", "new_function_specifier",1168 " new_function_return", "new_typedef_declaration", "typedef_declaration",1169 "typedef_expression", " old_declaration", "declaring_list",1186 "cfa_declaration", "cfa_variable_declaration", "cfa_variable_specifier", 1187 "cfa_function_declaration", "cfa_function_specifier", 1188 "cfa_function_return", "cfa_typedef_declaration", "typedef_declaration", 1189 "typedef_expression", "c_declaration", "declaring_list", 1170 1190 "declaration_specifier", "type_specifier", "type_qualifier_list_opt", 1171 1191 "type_qualifier_list", "type_qualifier", "type_qualifier_name", "$@1", … … 1174 1194 "direct_type_name", "indirect_type_name", "sue_declaration_specifier", 1175 1195 "sue_type_specifier", "typedef_declaration_specifier", 1176 "typedef_type_specifier", "elaborated_type _name", "aggregate_name",1177 " $@2", "aggregate_key", "field_declaration_list", "field_declaration",1178 " new_field_declaring_list", "field_declaring_list", "field_declarator",1179 "bit_subrange_size_opt", "bit_subrange_size", "enum_ key", "enum_name",1180 " $@3", "enumerator_list", "enumerator_value_opt",1181 " new_parameter_type_list_opt", "new_parameter_type_list",1182 " new_parameter_list", "new_abstract_parameter_list",1183 "parameter_type_list _opt", "parameter_type_list", "parameter_list",1184 " new_parameter_declaration", "new_abstract_parameter_declaration",1185 " parameter_declaration", "abstract_parameter_declaration",1186 "identifier_ list", "identifier_or_type_name",1187 "no_ 01_identifier_or_type_name", "no_attr_identifier_or_type_name",1188 " type_name_no_function", "type_name", "initializer_opt", "initializer",1189 " initializer_list", "designation", "designator_list", "designator",1190 "typegen_ declaration_specifier", "typegen_type_specifier",1191 "type gen_name", "type_parameter_list", "type_parameter", "$@4",1192 "type_ class", "assertion_list_opt", "assertion", "type_name_list",1193 "type_declar ing_list", "type_declarator", "type_declarator_name",1194 "trait_ specifier", "$@5", "trait_declaration_list", "trait_declaration",1195 " new_trait_declaring_list", "trait_declaring_list", "translation_unit",1196 "typedef_type_specifier", "elaborated_type", "aggregate_type", "$@2", 1197 "aggregate_key", "field_declaration_list", "field_declaration", 1198 "cfa_field_declaring_list", "field_declaring_list", "field_declarator", 1199 "bit_subrange_size_opt", "bit_subrange_size", "enum_type", "$@3", 1200 "enumerator_list", "enumerator_value_opt", "cfa_parameter_type_list_opt", 1201 "cfa_parameter_type_list", "cfa_parameter_list", 1202 "cfa_abstract_parameter_list", "parameter_type_list_opt", 1203 "parameter_type_list", "parameter_list", "cfa_parameter_declaration", 1204 "cfa_abstract_parameter_declaration", "parameter_declaration", 1205 "abstract_parameter_declaration", "identifier_list", 1206 "identifier_or_type_name", "no_01_identifier_or_type_name", 1207 "no_attr_identifier_or_type_name", "type_name_no_function", "type_name", 1208 "initializer_opt", "initializer", "initializer_list", "designation", 1209 "designator_list", "designator", "typegen_declaration_specifier", 1210 "typegen_type_specifier", "typegen_name", "type_parameter_list", 1211 "type_parameter", "$@4", "type_class", "assertion_list_opt", "assertion", 1212 "type_name_list", "type_declaring_list", "type_declarator", 1213 "type_declarator_name", "trait_specifier", "$@5", 1214 "trait_declaration_list", "trait_declaration", 1215 "cfa_trait_declaring_list", "trait_declaring_list", "translation_unit", 1196 1216 "external_definition_list", "external_definition_list_opt", 1197 1217 "external_definition", "$@6", "external_function_definition", … … 1202 1222 "variable_array", "variable_function", "function_declarator", 1203 1223 "function_no_ptr", "function_ptr", "function_array", 1204 " old_function_declarator", "old_function_no_ptr", "old_function_ptr",1205 " old_function_array", "variable_type_redeclarator", "paren_type",1224 "KR_function_declarator", "KR_function_no_ptr", "KR_function_ptr", 1225 "KR_function_array", "variable_type_redeclarator", "paren_type", 1206 1226 "type_ptr", "type_array", "type_function", 1207 1227 "identifier_parameter_declarator", "identifier_parameter_ptr", … … 1216 1236 "variable_abstract_ptr", "variable_abstract_array", 1217 1237 "variable_abstract_function", 1218 " new_identifier_parameter_declarator_tuple",1219 " new_identifier_parameter_declarator_no_tuple",1220 " new_identifier_parameter_ptr", "new_identifier_parameter_array",1221 " new_array_parameter_1st_dimension", "new_abstract_declarator_tuple",1222 " new_abstract_declarator_no_tuple", "new_abstract_ptr",1223 " new_abstract_array", "new_abstract_tuple", "new_abstract_function",1238 "cfa_identifier_parameter_declarator_tuple", 1239 "cfa_identifier_parameter_declarator_no_tuple", 1240 "cfa_identifier_parameter_ptr", "cfa_identifier_parameter_array", 1241 "cfa_array_parameter_1st_dimension", "cfa_abstract_declarator_tuple", 1242 "cfa_abstract_declarator_no_tuple", "cfa_abstract_ptr", 1243 "cfa_abstract_array", "cfa_abstract_tuple", "cfa_abstract_function", 1224 1244 "comma_opt", "assignment_opt", 0 1225 1245 }; … … 1266 1286 176, 176, 177, 177, 178, 178, 179, 179, 179, 179, 1267 1287 179, 179, 179, 179, 179, 180, 181, 181, 182, 182, 1268 183, 183, 183, 183, 18 4, 184, 185, 186, 186, 186,1269 186, 186, 186, 18 7, 187, 187, 188, 188, 189, 189,1270 1 90, 190, 191, 192, 192, 193, 193, 194, 194, 195,1271 195, 195, 195, 19 6, 196, 197, 197, 198, 198, 198,1272 19 9, 199, 200, 200, 200, 200, 200, 200, 200, 200,1273 200, 200, 20 1, 201, 201, 202, 202, 202, 202, 202,1274 20 3, 203, 203, 203, 204, 205, 205, 205, 205, 205,1275 20 6, 206, 206, 206, 206, 207, 207, 208, 208, 209,1276 209, 2 10, 210, 211, 211, 211, 212, 212, 213, 213,1277 21 4, 214, 215, 215, 216, 216, 217, 217, 218, 218,1278 21 9, 219, 220, 220, 221, 221, 221, 221, 221, 222,1279 222, 222, 22 3, 223, 223, 224, 224, 224, 224, 224,1280 22 5, 225, 226, 226, 227, 227, 227, 228, 228, 228,1281 228, 228, 22 9, 229, 230, 230, 230, 230, 231, 231,1282 23 2, 232, 232, 232, 233, 233, 233, 233, 234, 234,1283 23 5, 235, 236, 236, 237, 237, 237, 237, 237, 238,1284 23 7, 239, 239, 239, 240, 240, 241, 241, 241, 241,1285 241, 241, 241, 241, 24 2, 242, 242, 242, 242, 242,1286 242, 242, 242, 242, 242, 242, 242, 242, 242, 24 3,1287 243, 243, 243, 243, 24 4, 244, 245, 245, 245, 245,1288 24 6, 246, 246, 246, 247, 247, 247, 247, 248, 248,1289 248, 24 9, 249, 249, 249, 250, 250, 250, 251, 251,1290 25 2, 252, 253, 252, 252, 252, 254, 254, 255, 255,1291 25 6, 256, 256, 256, 257, 257, 257, 257, 258, 258,1292 25 9, 259, 259, 259, 259, 260, 260, 261, 262, 263,1293 26 3, 264, 263, 265, 265, 266, 266, 267, 267, 268,1294 26 8, 268, 268, 268, 269, 269, 269, 269, 270, 270,1295 27 1, 271, 272, 272, 273, 273, 273, 273, 274, 274,1296 27 4, 274, 274, 275, 275, 275, 275, 275, 276, 276,1297 27 7, 277, 278, 278, 279, 279, 279, 280, 280, 280,1298 28 1, 281, 281, 282, 282, 282, 283, 283, 283, 283,1299 28 4, 284, 284, 285, 285, 286, 286, 286, 286, 286,1300 287, 287, 288, 288, 28 9, 289, 289, 289, 289, 290,1301 2 90, 290, 290, 291, 291, 291, 292, 293, 293, 295,1302 29 4, 294, 296, 296, 296, 296, 297, 297, 298, 298,1303 298, 29 9, 299, 299, 299, 300, 300, 300, 301, 301,1304 302, 30 2, 303, 304, 303, 305, 305, 306, 306, 307,1288 183, 183, 183, 183, 183, 184, 184, 185, 186, 186, 1289 186, 186, 186, 186, 187, 187, 187, 188, 188, 189, 1290 189, 190, 190, 191, 192, 192, 193, 193, 194, 194, 1291 195, 195, 195, 195, 196, 196, 197, 197, 198, 198, 1292 198, 199, 199, 200, 200, 200, 200, 200, 200, 200, 1293 200, 200, 200, 201, 201, 201, 202, 202, 202, 202, 1294 202, 203, 203, 203, 203, 204, 205, 205, 205, 205, 1295 205, 206, 206, 206, 206, 206, 207, 207, 208, 208, 1296 209, 209, 210, 210, 211, 211, 211, 212, 212, 213, 1297 213, 214, 214, 215, 215, 216, 216, 217, 217, 218, 1298 218, 219, 219, 220, 220, 221, 221, 221, 221, 221, 1299 222, 222, 222, 223, 223, 223, 224, 224, 224, 224, 1300 224, 225, 225, 226, 226, 227, 227, 227, 228, 228, 1301 228, 228, 228, 229, 229, 230, 230, 230, 230, 231, 1302 231, 232, 232, 232, 232, 233, 233, 233, 233, 234, 1303 234, 235, 235, 236, 236, 237, 237, 237, 237, 237, 1304 238, 237, 239, 239, 239, 240, 240, 241, 241, 241, 1305 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 1306 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 1307 243, 243, 243, 243, 243, 244, 244, 245, 245, 245, 1308 245, 246, 246, 246, 246, 247, 247, 247, 247, 248, 1309 248, 248, 249, 249, 249, 249, 250, 250, 250, 251, 1310 251, 252, 252, 253, 252, 252, 252, 254, 254, 255, 1311 255, 256, 256, 256, 256, 257, 257, 257, 257, 258, 1312 258, 259, 259, 259, 259, 259, 260, 260, 261, 262, 1313 262, 263, 262, 264, 264, 265, 265, 266, 266, 267, 1314 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, 1315 270, 270, 271, 271, 272, 272, 272, 272, 273, 273, 1316 273, 273, 273, 274, 274, 274, 274, 274, 275, 275, 1317 276, 276, 277, 277, 278, 278, 278, 279, 279, 279, 1318 280, 280, 280, 281, 281, 281, 282, 282, 283, 283, 1319 283, 284, 284, 285, 285, 285, 285, 285, 286, 286, 1320 287, 287, 288, 288, 288, 288, 288, 289, 289, 289, 1321 289, 290, 290, 290, 291, 292, 292, 294, 293, 293, 1322 295, 295, 295, 295, 296, 296, 297, 297, 297, 298, 1323 298, 298, 298, 299, 299, 299, 300, 300, 301, 301, 1324 302, 303, 302, 304, 304, 305, 305, 306, 306, 306, 1305 1325 307, 307, 308, 308, 309, 309, 310, 310, 311, 311, 1306 31 2, 312, 312, 313, 312, 312, 314, 314, 314, 315,1307 31 5, 315, 315, 315, 315, 315, 315, 315, 316, 316,1308 31 6, 317, 318, 318, 319, 319, 320, 320, 321, 322,1309 322, 32 3, 323, 323, 324, 324, 324, 324, 325, 325,1310 325, 325, 326, 326, 32 7, 327, 327, 328, 328, 328,1311 328, 329, 329, 3 30, 330, 330, 331, 331, 331, 332,1312 332, 332, 33 3, 333, 333, 334, 334, 334, 335, 335,1313 335, 33 6, 336, 336, 337, 337, 337, 338, 338, 338,1314 338, 339, 339, 3 40, 340, 340, 341, 341, 341, 341,1315 34 2, 342, 342, 343, 343, 343, 343, 344, 344, 344,1316 34 5, 345, 345, 345, 346, 346, 346, 347, 347, 347,1317 347, 348, 348, 34 9, 349, 349, 350, 350, 351, 351,1318 35 2, 352, 352, 353, 353, 353, 353, 353, 354, 354,1319 354, 354, 35 5, 355, 355, 356, 356, 356, 357, 357,1320 357, 357, 35 8, 358, 358, 359, 359, 359, 359, 359,1321 3 60, 360, 360, 360, 361, 361, 361, 362, 362, 362,1322 36 3, 363, 363, 363, 363, 363, 364, 364, 364, 365,1323 36 5, 365, 365, 365, 366, 366, 366, 366, 367, 367,1324 36 8, 368, 368, 369, 369, 370, 370, 370, 370, 370,1325 370, 37 1, 371, 371, 371, 371, 371, 371, 371, 371,1326 371, 37 2, 372, 372, 372, 373, 373, 373, 374, 374,1327 37 5, 375, 375, 375, 375, 375, 376, 376, 376, 376,1328 376, 37 6, 377, 378, 378, 379, 379, 380, 3801326 311, 312, 311, 311, 313, 313, 313, 314, 314, 314, 1327 314, 314, 314, 314, 314, 314, 315, 315, 315, 316, 1328 317, 317, 318, 318, 319, 319, 320, 321, 321, 322, 1329 322, 322, 323, 323, 323, 323, 324, 324, 324, 324, 1330 325, 325, 326, 326, 326, 327, 327, 327, 327, 328, 1331 328, 329, 329, 329, 330, 330, 330, 331, 331, 331, 1332 332, 332, 332, 333, 333, 333, 334, 334, 334, 335, 1333 335, 335, 336, 336, 336, 337, 337, 337, 337, 338, 1334 338, 339, 339, 339, 340, 340, 340, 340, 341, 341, 1335 341, 342, 342, 342, 342, 343, 343, 343, 344, 344, 1336 344, 344, 345, 345, 345, 346, 346, 346, 346, 347, 1337 347, 348, 348, 348, 349, 349, 350, 350, 351, 351, 1338 351, 352, 352, 352, 352, 352, 353, 353, 353, 353, 1339 354, 354, 354, 355, 355, 355, 356, 356, 356, 356, 1340 357, 357, 357, 358, 358, 358, 358, 358, 359, 359, 1341 359, 359, 360, 360, 360, 361, 361, 361, 362, 362, 1342 362, 362, 362, 362, 363, 363, 363, 364, 364, 364, 1343 364, 364, 365, 365, 365, 365, 366, 366, 367, 367, 1344 367, 368, 368, 369, 369, 369, 369, 369, 369, 370, 1345 370, 370, 370, 370, 370, 370, 370, 370, 370, 371, 1346 371, 371, 371, 372, 372, 372, 373, 373, 374, 374, 1347 374, 374, 374, 374, 375, 375, 375, 375, 375, 375, 1348 376, 377, 377, 378, 378, 379, 379 1329 1349 }; 1330 1350 … … 1347 1367 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, 1348 1368 1, 1, 1, 1, 6, 4, 2, 7, 1, 3, 1349 1, 2, 1, 2, 1, 2, 2, 5, 7, 5,1350 9, 5, 9, 1, 3, 1, 1, 3, 3, 2,1351 1, 2, 2, 0, 1, 2, 3, 0, 1, 2,1352 3, 3, 4, 0, 1, 1, 2, 5, 7, 6,1353 6, 4, 3, 4, 2, 3, 2, 3, 3, 3,1354 3, 5, 3, 3, 4, 1, 5, 6, 5, 6,1355 9, 10, 9, 10, 2, 1, 2, 2, 2, 1,1356 6, 8, 10, 12, 14, 0, 1, 0, 1, 1,1357 3, 4, 7, 0, 1, 3, 1, 3, 1, 1,1358 1, 3, 1, 1, 1, 3, 0, 1, 3, 4,1359 1, 3, 1, 1, 3, 3, 3, 3, 3, 2,1360 3, 6, 3, 3, 4, 1, 2, 2, 3, 5,1361 7, 7, 5, 9, 2, 2, 5, 3, 5, 4,1362 3, 4, 4, 7, 3, 3, 3, 3, 4, 6,1363 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,1364 1, 2, 1, 1, 1, 1, 1, 1, 1, 0,1365 5, 1, 2, 3, 1, 2, 1, 1, 1, 1,1369 1, 2, 1, 2, 2, 1, 2, 2, 5, 7, 1370 5, 9, 5, 9, 1, 3, 1, 1, 3, 3, 1371 2, 1, 2, 2, 0, 1, 2, 3, 0, 1, 1372 2, 3, 3, 4, 0, 1, 1, 2, 5, 7, 1373 6, 6, 4, 3, 4, 2, 3, 2, 3, 3, 1374 3, 3, 5, 3, 3, 4, 1, 5, 6, 5, 1375 6, 9, 10, 9, 10, 2, 1, 2, 2, 2, 1376 1, 6, 8, 10, 12, 14, 0, 1, 0, 1, 1377 1, 3, 4, 7, 0, 1, 3, 1, 3, 1, 1378 1, 1, 3, 1, 1, 1, 3, 0, 1, 3, 1379 4, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1380 2, 3, 6, 3, 3, 4, 1, 2, 2, 3, 1381 5, 7, 7, 5, 9, 2, 2, 5, 3, 5, 1382 4, 3, 4, 4, 7, 4, 3, 3, 3, 3, 1383 6, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1384 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1385 0, 5, 1, 2, 3, 1, 2, 1, 1, 1, 1366 1386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1367 1387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1368 2, 2, 3, 3, 1, 3, 1, 2, 2, 2,1369 4, 4, 4, 4, 1, 2, 2, 3, 1, 2,1370 2, 1, 2, 2, 3, 1, 2, 2, 1, 1,1371 4, 2, 0, 6, 7, 2, 2, 2, 0, 2,1372 2, 3, 2, 3, 1, 2, 3, 2, 2, 4,1373 0, 1, 2, 2, 1, 0, 1, 2, 2, 5,1374 2, 0, 7, 2, 4, 0, 2, 0, 1, 1,1388 1, 2, 2, 3, 3, 1, 3, 1, 2, 2, 1389 2, 4, 4, 4, 4, 1, 2, 2, 3, 1, 1390 2, 2, 1, 2, 2, 3, 1, 2, 2, 1, 1391 1, 5, 3, 0, 7, 8, 3, 1, 1, 0, 1392 2, 2, 3, 3, 4, 1, 2, 3, 2, 1, 1393 4, 0, 1, 2, 2, 1, 0, 1, 2, 6, 1394 3, 0, 8, 2, 4, 0, 2, 0, 1, 1, 1375 1395 1, 5, 5, 5, 1, 5, 5, 9, 1, 5, 1376 1396 0, 1, 1, 5, 1, 1, 5, 5, 1, 3, 1377 1397 3, 4, 1, 1, 1, 1, 2, 1, 3, 3, 1378 1398 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1379 1, 1, 1, 1, 1, 2, 1, 1, 1, 2,1380 0, 2, 2, 1, 4, 0, 1, 2, 3, 4,1381 2, 2, 1, 2, 2, 5, 5, 7, 6, 1,1382 2, 2, 3, 1, 2, 2, 4, 2, 4, 0,1383 4, 2, 1, 1, 1, 1, 0, 2, 5, 5,1384 13, 1, 1, 3, 3, 2, 3, 3, 2, 4,1385 1, 6, 9, 0, 11, 1, 3, 3, 3, 1,1386 1, 5, 2, 5, 0, 1, 1, 3, 0, 1,1387 1, 1, 1, 0, 6, 2, 1, 2, 4, 2,1388 3, 3, 3, 4, 5, 5, 5, 6, 1, 1,1389 1, 3, 0, 5, 0, 1, 1, 2, 6, 1,1390 3, 0, 1, 4, 1, 1, 1, 1, 2, 1,1391 2, 2, 1, 3, 2, 3, 3, 2, 4, 4,1392 3, 8, 3, 2, 1, 2, 6, 8, 3, 2,1393 3, 3, 4, 4, 3, 1, 1, 1, 4, 6,1394 3, 2, 3, 3, 4, 4, 3, 2, 1, 2,1395 2, 1, 3, 2, 3, 3, 2, 4, 4, 3,1396 6, 8, 3, 2, 1, 2, 2, 2, 3, 3,1397 2, 4, 4, 3, 6, 8, 3, 2, 1, 2,1398 2, 1, 1, 2, 3, 3, 2, 4, 6, 8,1399 1, 2, 2, 1, 2, 2, 3, 3, 1, 4,1400 4, 3, 5, 8, 3, 2, 3, 1, 5, 5,1401 6, 6, 1, 2, 2, 1, 2, 2, 3, 3,1402 1, 4, 4, 3, 5, 8, 3, 1, 2, 1,1403 2, 6, 5, 6, 7, 7, 1, 2, 2, 1,1404 2, 2, 3, 3, 1, 4, 4, 3, 8, 3,1405 1, 1, 2, 1, 1, 2, 3, 2, 3, 2,1406 3, 3, 2, 4, 3, 2, 3, 2, 4, 3,1407 2, 6, 6, 6, 7, 1, 2, 1, 1, 1,1408 2, 3, 2, 3, 2, 3, 3, 4, 2, 3,1409 4, 2,5, 6, 6, 0, 1, 0, 21399 1, 1, 1, 1, 1, 2, 1, 1, 0, 2, 1400 2, 1, 4, 0, 1, 2, 3, 4, 2, 2, 1401 1, 2, 2, 5, 5, 7, 6, 1, 2, 2, 1402 3, 1, 2, 2, 4, 2, 4, 0, 4, 2, 1403 1, 1, 1, 1, 0, 2, 5, 5, 13, 1, 1404 1, 3, 3, 2, 3, 3, 2, 4, 1, 6, 1405 9, 0, 11, 1, 3, 3, 3, 1, 1, 5, 1406 2, 5, 0, 1, 1, 3, 0, 1, 1, 1, 1407 1, 0, 6, 2, 1, 2, 4, 2, 3, 3, 1408 3, 4, 5, 5, 5, 6, 1, 1, 1, 3, 1409 0, 5, 0, 1, 1, 2, 6, 1, 3, 0, 1410 1, 4, 1, 1, 1, 1, 2, 1, 2, 2, 1411 1, 3, 2, 3, 4, 2, 4, 4, 3, 8, 1412 3, 2, 1, 2, 6, 8, 3, 2, 3, 3, 1413 4, 4, 3, 1, 1, 1, 4, 8, 3, 2, 1414 3, 3, 4, 4, 3, 2, 1, 2, 2, 1, 1415 3, 2, 3, 4, 2, 4, 4, 3, 6, 8, 1416 3, 2, 1, 2, 2, 2, 3, 4, 2, 4, 1417 4, 3, 6, 8, 3, 2, 1, 2, 2, 1, 1418 1, 2, 3, 4, 2, 4, 6, 8, 1, 2, 1419 2, 1, 2, 2, 3, 4, 1, 4, 4, 3, 1420 5, 8, 3, 2, 3, 1, 5, 5, 6, 6, 1421 1, 2, 2, 1, 2, 2, 3, 4, 1, 4, 1422 4, 3, 5, 8, 3, 1, 2, 1, 2, 6, 1423 5, 6, 7, 7, 1, 2, 2, 1, 2, 2, 1424 3, 4, 1, 4, 4, 3, 8, 3, 1, 1, 1425 2, 1, 1, 2, 3, 2, 3, 2, 3, 3, 1426 2, 4, 3, 2, 3, 2, 4, 3, 2, 6, 1427 6, 6, 7, 1, 2, 1, 1, 1, 2, 3, 1428 2, 3, 2, 3, 3, 4, 2, 3, 4, 2, 1429 5, 6, 6, 0, 1, 0, 2 1410 1430 }; 1411 1431 … … 1415 1435 static const yytype_uint16 yydefact[] = 1416 1436 { 1417 29 8, 298, 318, 316, 319, 317, 320, 321, 304, 306,1418 30 5, 0, 307, 332, 324, 329, 327, 328, 326, 325,1419 33 0, 331, 337, 338, 336, 333, 334, 335, 554, 554,1420 554, 0, 0, 0, 298, 225, 308, 322, 323, 9,1421 36 5, 0, 10, 16, 17, 0, 2, 72, 73, 572,1422 11, 29 8, 532, 530, 252, 3, 460, 3, 265, 0,1423 3, 3, 3, 25 3, 3, 0, 0, 0, 299, 300,1424 302, 298, 311, 314, 346, 290, 339, 344, 291, 354,1425 292, 361, 358, 368, 0, 0, 369, 293, 479, 483,1426 3, 3, 0, 2, 526, 531, 536, 303, 0, 0,1427 55 4, 584, 554, 2, 595, 596, 597, 298, 0, 738,1428 739, 0, 14, 0, 15, 298, 274, 275, 0, 299,1429 29 4, 295, 296, 297, 533, 309, 398, 555, 556, 376,1430 377, 14, 451, 452, 13, 447, 450, 0, 510, 505,1431 496, 451, 452, 0, 0, 535, 226, 0, 298, 0,1432 0, 0, 0, 0, 0, 0, 0, 298, 298, 0,1433 74 0, 299, 589, 601, 744, 737, 735, 742, 0, 0,1434 0, 259, 2, 0, 539, 445, 446, 444, 0,0,1435 0, 0, 554, 0, 641, 642, 0, 0, 552, 548,1436 554, 569, 554, 554, 550, 2, 549, 554, 608, 554,1437 554, 611, 0, 0, 0, 298, 298, 316, 366, 2,1438 298, 266, 301, 312, 347, 359, 484, 0, 2, 0,1439 460, 267, 299, 340, 355, 362, 480, 0, 2, 0,1440 3 15, 341, 348, 349, 0, 356, 360, 363, 367, 452,1441 298, 378, 371, 375, 0, 400, 481, 485, 0,0,1442 0, 1, 298, 2, 537, 583, 585, 298, 2, 748,1443 299, 751, 552, 552, 0, 299, 0, 0, 277, 554,1444 550, 2, 298, 0, 0, 298, 557, 2, 508, 2,1445 561, 0, 0, 0, 0, 0, 0, 21, 69, 4,1446 8, 19, 5, 6, 7, 0, 0, 298, 2, 74,1447 7 5, 76, 77, 57, 22, 58, 18, 26, 56, 78,1448 298, 0, 80, 84, 87, 90, 95, 98, 100, 102,1449 104, 106, 108, 112, 502, 23, 458, 501, 0, 456,1450 457, 0, 573, 588, 591, 594, 600, 603, 606,2,1451 746, 298, 749, 2, 72, 298, 3, 432, 0, 440,1452 299, 298, 311, 339, 291, 354, 361, 3, 3, 414,1453 418, 428, 433, 479, 298, 434, 713, 714, 298, 435,1454 437, 2, 590, 602, 736, 2, 2, 254, 2, 465,1455 0, 463, 462, 461, 146, 2, 2, 256, 2, 2,1456 255, 2, 285, 2, 286, 0, 284, 0, 0, 0,1457 0, 0, 0, 0, 0, 0, 574, 613, 0, 460,1458 2, 568, 577, 667, 570, 571, 540, 298, 2, 607,1459 616, 609, 610, 0, 280, 298, 298, 345, 299,0,1460 2 99, 298, 741, 745, 743, 541, 298, 552, 260, 268,1461 313, 0, 2, 542, 298, 506, 342, 343, 287, 357,1462 364, 0, 298, 0, 755, 405, 0, 482, 507, 257,1463 2 58, 527, 298, 442, 0, 298, 242, 0, 2, 244,1464 0, 299, 0, 262, 2, 263, 282, 0, 0, 2,1465 298, 552, 298, 492, 494, 493, 495, 0, 0, 757,1466 0, 298, 0, 298, 497, 298, 567, 564, 565, 566,1467 0, 559, 562, 0, 0, 298, 64, 298, 78, 59,1468 298, 66, 298, 298, 62, 63, 2, 132, 0, 0,1469 454, 0, 453, 735, 298, 20, 31, 0, 34, 35,1470 40, 2, 0, 40, 118, 119, 120, 121, 122, 123,1471 124, 125, 126, 127, 117, 116, 0, 60, 61, 0,1437 299, 299, 319, 317, 320, 318, 321, 322, 305, 307, 1438 306, 0, 308, 333, 325, 330, 328, 329, 327, 326, 1439 331, 332, 338, 339, 337, 334, 335, 336, 552, 377, 1440 378, 0, 0, 0, 299, 226, 309, 323, 324, 9, 1441 366, 0, 10, 16, 17, 0, 2, 72, 73, 570, 1442 11, 299, 530, 528, 253, 3, 458, 3, 266, 0, 1443 3, 3, 3, 254, 0, 0, 0, 300, 301, 303, 1444 299, 312, 315, 347, 291, 340, 345, 292, 355, 293, 1445 362, 359, 369, 552, 370, 294, 477, 481, 3, 3, 1446 0, 2, 524, 529, 534, 304, 0, 0, 552, 582, 1447 552, 2, 593, 594, 595, 299, 0, 736, 737, 0, 1448 14, 0, 15, 299, 275, 276, 0, 300, 295, 296, 1449 297, 298, 531, 310, 0, 553, 554, 14, 451, 452, 1450 13, 447, 450, 0, 508, 503, 494, 451, 452, 0, 1451 0, 533, 227, 0, 299, 0, 0, 0, 0, 0, 1452 0, 0, 0, 299, 299, 0, 738, 300, 587, 599, 1453 742, 735, 733, 740, 0, 0, 0, 260, 2, 0, 1454 537, 445, 446, 444, 0, 0, 0, 0, 639, 640, 1455 0, 0, 3, 550, 546, 552, 567, 552, 552, 548, 1456 2, 547, 552, 606, 552, 552, 609, 0, 0, 0, 1457 299, 299, 317, 367, 2, 299, 267, 302, 313, 348, 1458 360, 482, 0, 2, 0, 458, 268, 300, 341, 356, 1459 363, 478, 0, 2, 0, 316, 342, 349, 350, 0, 1460 357, 361, 364, 368, 0, 479, 483, 0, 0, 0, 1461 1, 299, 2, 535, 581, 583, 299, 2, 746, 300, 1462 749, 550, 550, 0, 300, 0, 0, 278, 552, 548, 1463 2, 299, 0, 0, 299, 0, 400, 555, 2, 506, 1464 2, 559, 0, 0, 0, 0, 0, 0, 21, 69, 1465 4, 8, 19, 5, 6, 7, 0, 0, 299, 2, 1466 74, 75, 76, 77, 57, 22, 58, 18, 26, 56, 1467 78, 299, 0, 80, 84, 87, 90, 95, 98, 100, 1468 102, 104, 106, 108, 112, 500, 23, 454, 456, 499, 1469 0, 453, 457, 0, 571, 586, 589, 592, 598, 601, 1470 604, 2, 744, 299, 747, 2, 72, 299, 3, 432, 1471 0, 440, 300, 299, 312, 340, 292, 355, 362, 3, 1472 3, 414, 418, 428, 433, 477, 299, 434, 711, 712, 1473 299, 435, 437, 2, 588, 600, 734, 2, 2, 255, 1474 2, 463, 0, 461, 460, 459, 146, 2, 2, 257, 1475 2, 2, 256, 2, 286, 2, 287, 0, 0, 0, 1476 0, 0, 0, 0, 0, 0, 572, 611, 552, 0, 1477 0, 458, 2, 566, 575, 665, 568, 569, 538, 299, 1478 2, 605, 614, 607, 608, 0, 281, 299, 299, 346, 1479 300, 0, 300, 299, 739, 743, 741, 539, 299, 550, 1480 261, 269, 314, 0, 2, 540, 299, 504, 343, 344, 1481 288, 358, 365, 452, 299, 379, 372, 376, 480, 505, 1482 258, 259, 525, 299, 442, 0, 299, 243, 0, 2, 1483 245, 0, 300, 0, 263, 2, 264, 283, 0, 0, 1484 2, 299, 550, 299, 490, 492, 491, 493, 0, 0, 1485 755, 0, 753, 405, 0, 299, 0, 299, 495, 299, 1486 565, 562, 563, 564, 0, 557, 560, 0, 0, 299, 1487 64, 299, 78, 59, 299, 66, 299, 299, 62, 63, 1488 2, 132, 0, 0, 0, 733, 299, 20, 31, 0, 1489 34, 35, 40, 2, 0, 40, 118, 119, 120, 121, 1490 122, 123, 124, 125, 126, 127, 117, 116, 0, 60, 1491 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1472 1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1473 0, 0, 0, 0, 0, 0, 0, 0, 2, 653, 1474 459, 650, 554, 554, 658, 486, 298, 2, 592, 593, 1475 0, 604, 605, 0, 747, 750, 298, 298, 0, 715, 1476 299, 719, 710, 711, 717, 0, 2, 2, 675, 554, 1477 757, 624, 554, 554, 757, 554, 638, 554, 554, 689, 1478 441, 672, 554, 554, 680, 687, 298, 436, 299, 0, 1479 0, 298, 725, 299, 730, 757, 722, 298, 727, 757, 1480 298, 298, 0, 0, 21, 2, 0, 22, 0, 466, 1481 755, 0, 0, 472, 246, 0, 298, 0, 0, 0, 1482 552, 576, 580, 582, 612, 615, 619, 622, 575, 614, 1483 0, 288, 665, 0, 298, 281, 0, 0, 0, 0, 1484 279, 2, 0, 264, 543, 298, 0, 0, 298, 2, 1485 370, 390, 379, 0, 0, 384, 378, 756, 0, 0, 1486 403, 0, 299, 3, 421, 3, 425, 424, 598, 0, 1487 538, 298, 72, 3, 298, 440, 299, 3, 434, 435, 1488 2, 0, 0, 0, 491, 310, 298, 0, 487, 489, 1489 3, 2, 2, 0, 509, 3, 0, 561, 40, 0, 1490 0, 227, 0, 0, 0, 0, 41, 0, 0, 298, 1491 24, 0, 25, 0, 699, 704, 455, 696, 554, 554, 1493 2, 651, 455, 648, 552, 552, 656, 484, 299, 2, 1494 590, 591, 2, 602, 603, 0, 745, 748, 299, 299, 1495 0, 713, 300, 717, 708, 709, 715, 0, 2, 2, 1496 673, 552, 755, 622, 552, 552, 755, 552, 636, 552, 1497 552, 687, 441, 670, 552, 552, 678, 685, 299, 436, 1498 300, 0, 0, 299, 723, 300, 728, 755, 720, 299, 1499 725, 755, 299, 299, 0, 0, 21, 2, 0, 22, 1500 0, 464, 753, 0, 0, 470, 247, 0, 299, 0, 1501 0, 0, 552, 578, 580, 610, 552, 617, 620, 573, 1502 612, 0, 285, 0, 289, 663, 0, 299, 282, 0, 1503 0, 0, 0, 280, 2, 0, 265, 541, 299, 0, 1504 0, 299, 0, 300, 3, 421, 3, 425, 424, 596, 1505 0, 536, 299, 72, 3, 299, 440, 300, 3, 434, 1506 435, 2, 0, 0, 0, 489, 311, 299, 0, 485, 1507 487, 754, 0, 0, 403, 0, 3, 2, 2, 0, 1508 507, 3, 0, 559, 40, 0, 0, 228, 0, 2, 1509 0, 0, 0, 41, 0, 0, 299, 24, 0, 25, 1492 1510 0, 114, 3, 2, 32, 0, 38, 0, 2, 29, 1493 1511 0, 113, 81, 82, 83, 85, 86, 88, 89, 93, 1494 1512 94, 91, 92, 96, 97, 99, 101, 103, 105, 107, 1495 0, 0, 298, 0, 0, 0, 654, 655, 651, 652, 1496 504, 503, 298, 0, 721, 298, 726, 299, 298, 669, 1497 712, 668, 2, 298, 0, 0, 0, 0, 0, 0, 1498 0, 0, 690, 0, 676, 627, 643, 677, 2, 623, 1499 630, 438, 625, 626, 439, 2, 637, 646, 639, 640, 1500 673, 674, 688, 716, 720, 718, 757, 272, 2, 752, 1501 2, 429, 724, 729, 430, 3, 408, 3, 3, 3, 1502 460, 0, 0, 2, 474, 471, 756, 0, 467, 2, 1503 470, 473, 0, 298, 247, 269, 3, 276, 278, 0, 1504 460, 2, 578, 579, 2, 617, 618, 0, 666, 544, 1505 3, 351, 350, 353, 352, 298, 545, 0, 546, 378, 1506 0, 0, 298, 0, 0, 699, 388, 391, 395, 554, 1507 395, 394, 387, 380, 554, 382, 385, 298, 405, 399, 1508 111, 406, 755, 0, 0, 443, 245, 0, 0, 3, 1509 2, 675, 436, 0, 534, 0, 757, 758, 496, 0, 1510 298, 298, 298, 0, 558, 560, 0, 0, 220, 0, 1511 0, 0, 228, 229, 65, 0, 67, 70, 71, 0, 1512 133, 0, 0, 0, 700, 701, 697, 698, 465, 79, 1513 115, 130, 3, 114, 0, 28, 40, 3, 0, 37, 1514 110, 0, 3, 657, 661, 664, 656, 3, 599, 723, 1515 728, 2, 72, 298, 3, 3, 299, 0, 3, 629, 1516 633, 636, 645, 679, 683, 686, 298, 3, 628, 644, 1517 678, 298, 298, 431, 298, 298, 0, 0, 0, 0, 1518 261, 111, 0, 3, 3, 0, 468, 0, 464, 0, 1519 0, 250, 298, 0, 0, 134, 0, 0, 0, 0, 1520 0, 134, 0, 0, 114, 114, 21, 365, 446, 69, 1521 0, 22, 135, 0, 3, 136, 137, 2, 148, 138, 1522 139, 140, 141, 142, 143, 150, 0, 152, 0, 0, 1523 0, 289, 298, 298, 554, 0, 547, 298, 381, 383, 1524 0, 397, 700, 392, 396, 393, 386, 390, 373, 404, 1525 0, 586, 2, 671, 670, 0, 676, 2, 488, 490, 1526 511, 3, 519, 520, 0, 2, 515, 3, 3, 0, 1527 0, 563, 227, 0, 0, 0, 227, 0, 0, 703, 1528 707, 709, 702, 755, 114, 0, 3, 54, 0, 54, 1513 0, 0, 299, 0, 0, 0, 652, 653, 649, 650, 1514 502, 501, 299, 299, 719, 299, 724, 300, 299, 667, 1515 710, 666, 2, 299, 0, 0, 0, 0, 0, 0, 1516 0, 0, 688, 0, 674, 625, 641, 675, 2, 621, 1517 628, 438, 623, 624, 439, 2, 635, 644, 637, 638, 1518 671, 672, 686, 714, 718, 716, 755, 273, 2, 750, 1519 2, 429, 722, 727, 430, 3, 408, 3, 3, 3, 1520 458, 0, 0, 2, 472, 469, 754, 0, 465, 2, 1521 468, 471, 0, 299, 248, 270, 3, 277, 279, 0, 1522 2, 574, 576, 577, 2, 613, 615, 616, 550, 0, 1523 664, 542, 3, 352, 351, 354, 353, 299, 543, 0, 1524 544, 0, 299, 371, 391, 380, 0, 385, 379, 0, 1525 0, 443, 246, 0, 0, 3, 2, 673, 436, 0, 1526 532, 0, 755, 756, 494, 405, 399, 111, 406, 753, 1527 0, 299, 299, 299, 0, 556, 558, 0, 0, 221, 1528 0, 0, 0, 229, 230, 65, 299, 0, 67, 70, 1529 71, 0, 133, 463, 79, 115, 130, 3, 114, 0, 1530 28, 40, 3, 0, 37, 110, 0, 3, 552, 659, 1531 662, 654, 3, 3, 721, 726, 2, 72, 299, 3, 1532 3, 300, 0, 3, 552, 631, 634, 552, 552, 681, 1533 684, 299, 3, 626, 642, 676, 299, 299, 431, 299, 1534 299, 0, 0, 0, 0, 262, 111, 0, 3, 3, 1535 0, 466, 0, 462, 0, 0, 251, 299, 0, 0, 1536 134, 0, 0, 0, 0, 0, 134, 0, 0, 114, 1537 114, 21, 366, 446, 69, 0, 22, 135, 0, 3, 1538 136, 137, 2, 148, 138, 139, 140, 141, 142, 143, 1539 150, 0, 152, 0, 0, 0, 299, 299, 458, 552, 1540 0, 545, 379, 391, 0, 0, 0, 697, 0, 389, 1541 392, 396, 552, 396, 702, 395, 694, 552, 552, 388, 1542 381, 386, 299, 584, 2, 669, 668, 0, 674, 2, 1543 486, 488, 404, 0, 509, 3, 517, 518, 0, 2, 1544 513, 3, 3, 0, 0, 561, 228, 0, 0, 0, 1545 228, 0, 0, 753, 114, 0, 3, 54, 0, 54, 1529 1546 54, 3, 42, 44, 39, 0, 3, 109, 0, 2, 1530 659, 660, 0, 298, 0, 0, 0, 3, 645, 0, 1531 2, 631, 632, 2, 647, 2, 681, 682, 0, 0, 1532 72, 0, 3, 3, 3, 3, 416, 415, 419, 754, 1533 2, 2, 753, 0, 0, 0, 0, 3, 469, 3, 1534 0, 248, 151, 3, 299, 298, 0, 0, 0, 0, 1535 2, 196, 0, 194, 0, 0, 0, 0, 0, 0, 1536 0, 0, 0, 156, 153, 298, 0, 554, 0, 271, 1537 283, 3, 3, 553, 620, 374, 389, 402, 298, 270, 1538 298, 0, 522, 499, 298, 0, 0, 498, 513, 0, 1539 0, 0, 221, 0, 230, 68, 2, 705, 706, 0, 1540 131, 128, 0, 51, 2, 45, 52, 53, 0, 0, 1541 0, 0, 27, 0, 662, 298, 587, 731, 732, 733, 1542 0, 684, 298, 298, 298, 3, 3, 0, 692, 0, 1543 0, 0, 0, 298, 298, 3, 551, 475, 476, 0, 1544 251, 299, 0, 0, 0, 0, 298, 197, 195, 0, 1545 192, 198, 0, 0, 0, 0, 202, 205, 203, 199, 1546 0, 200, 40, 149, 147, 134, 249, 0, 0, 423, 1547 427, 426, 0, 516, 2, 517, 2, 518, 512, 298, 1548 233, 0, 231, 0, 233, 298, 36, 129, 55, 0, 1549 43, 33, 2, 49, 2, 47, 30, 3, 734, 3, 1550 3, 3, 0, 0, 691, 693, 634, 648, 273, 2, 1551 413, 3, 412, 0, 478, 134, 0, 0, 134, 3, 1552 0, 134, 193, 0, 2, 2, 214, 204, 0, 0, 1553 0, 0, 145, 581, 621, 2, 0, 0, 2, 234, 1554 0, 0, 222, 0, 3, 3, 0, 0, 0, 0, 1555 0, 0, 694, 695, 298, 0, 477, 157, 0, 0, 1556 2, 170, 134, 159, 0, 187, 0, 134, 0, 2, 1557 161, 0, 2, 0, 2, 2, 2, 201, 37, 298, 1558 521, 523, 514, 0, 0, 0, 0, 0, 0, 3, 1559 3, 663, 635, 649, 685, 417, 134, 163, 166, 0, 1560 165, 169, 3, 172, 171, 0, 134, 189, 134, 3, 1561 0, 298, 0, 298, 0, 2, 0, 2, 144, 2, 1562 235, 236, 0, 232, 223, 708, 46, 0, 0, 158, 1563 0, 0, 168, 238, 173, 2, 240, 188, 0, 191, 1564 177, 206, 3, 215, 219, 208, 3, 0, 298, 0, 1565 298, 0, 0, 0, 50, 48, 164, 167, 134, 0, 1566 174, 298, 134, 134, 0, 178, 0, 0, 699, 216, 1567 217, 218, 0, 207, 3, 209, 3, 298, 224, 237, 1568 154, 175, 160, 134, 241, 190, 185, 183, 179, 162, 1569 134, 0, 700, 0, 0, 0, 0, 155, 176, 186, 1570 180, 184, 183, 181, 3, 3, 0, 0, 500, 182, 1571 210, 212, 3, 3, 211, 213 1547 655, 657, 658, 0, 0, 299, 0, 0, 0, 3, 1548 552, 0, 2, 627, 629, 630, 2, 643, 645, 2, 1549 677, 679, 680, 0, 0, 72, 0, 3, 3, 3, 1550 3, 416, 415, 419, 752, 2, 2, 751, 0, 0, 1551 0, 0, 3, 467, 3, 0, 249, 151, 153, 0, 1552 0, 0, 0, 2, 197, 0, 195, 0, 0, 0, 1553 0, 0, 0, 0, 0, 0, 157, 154, 299, 0, 1554 552, 0, 272, 284, 3, 3, 290, 551, 618, 299, 1555 0, 382, 0, 0, 0, 0, 398, 698, 699, 552, 1556 383, 393, 397, 394, 695, 696, 387, 374, 299, 271, 1557 299, 402, 0, 520, 497, 299, 0, 0, 496, 511, 1558 0, 0, 0, 222, 0, 231, 68, 0, 131, 128, 1559 0, 51, 2, 45, 52, 53, 0, 0, 0, 0, 1560 27, 0, 660, 299, 585, 597, 729, 730, 731, 0, 1561 682, 299, 299, 299, 3, 3, 0, 690, 0, 0, 1562 0, 0, 299, 299, 3, 549, 473, 474, 0, 252, 1563 0, 0, 0, 0, 299, 198, 196, 0, 193, 199, 1564 0, 0, 0, 0, 203, 206, 204, 200, 0, 201, 1565 40, 149, 147, 134, 250, 0, 0, 375, 384, 552, 1566 705, 707, 700, 391, 423, 427, 426, 0, 514, 2, 1567 515, 2, 516, 510, 299, 234, 0, 232, 0, 234, 1568 36, 129, 55, 0, 43, 33, 2, 49, 2, 47, 1569 30, 3, 732, 3, 3, 3, 0, 0, 689, 691, 1570 632, 646, 274, 2, 413, 3, 412, 0, 476, 134, 1571 0, 0, 134, 3, 0, 134, 3, 300, 299, 194, 1572 0, 2, 2, 215, 205, 0, 0, 0, 0, 145, 1573 579, 619, 2, 701, 703, 704, 390, 2, 0, 0, 1574 2, 235, 0, 0, 223, 0, 3, 0, 0, 0, 1575 0, 0, 0, 692, 693, 299, 0, 475, 158, 0, 1576 0, 2, 171, 134, 160, 0, 188, 0, 134, 0, 1577 300, 2, 162, 0, 2, 0, 2, 2, 2, 202, 1578 37, 299, 299, 519, 521, 512, 0, 0, 0, 0, 1579 0, 3, 3, 661, 633, 647, 683, 417, 134, 164, 1580 167, 0, 166, 170, 3, 173, 172, 0, 134, 190, 1581 134, 3, 0, 299, 0, 299, 0, 2, 0, 2, 1582 144, 3, 2, 236, 237, 0, 233, 224, 46, 0, 1583 0, 159, 0, 0, 169, 239, 174, 2, 241, 189, 1584 0, 192, 178, 207, 3, 216, 220, 209, 3, 0, 1585 299, 0, 299, 0, 0, 0, 0, 50, 48, 165, 1586 168, 134, 0, 175, 299, 134, 134, 0, 179, 0, 1587 0, 697, 217, 218, 219, 0, 208, 3, 210, 3, 1588 706, 299, 225, 238, 155, 176, 161, 134, 242, 191, 1589 186, 184, 180, 163, 134, 0, 698, 0, 0, 0, 1590 0, 156, 177, 187, 181, 185, 184, 182, 3, 3, 1591 0, 0, 498, 183, 211, 213, 3, 3, 212, 214 1572 1592 }; 1573 1593 … … 1575 1595 static const yytype_int16 yydefgoto[] = 1576 1596 { 1577 -1, 803, 466, 303, 49, 135, 136, 304, 305, 306,1578 307, 308, 755, 756, 1121, 1122, 1123, 1233, 309, 380,1579 3 11, 312, 313, 314, 315, 316, 317, 318, 319, 320,1580 3 21, 322, 323, 1012, 517, 961, 546, 325, 962, 1042,1581 10 43, 1510, 1045, 1046, 1047, 1048, 1511, 1049, 1050, 1428,1582 14 29, 1391, 1392, 1393, 1489, 1490, 1494, 1495, 1530, 1531,1583 10 51, 1350, 1052, 1053, 1286, 1287, 1288, 1472, 1054, 147,1584 9 41, 942, 943, 1370, 1452, 1464, 1465, 467, 468, 863,1585 8 64, 1020, 53, 54, 55, 56, 57, 347, 159, 60,1586 61, 62, 63, 64, 349, 66, 67, 265, 69, 70,1587 2 75, 351, 352, 73, 74, 75, 120, 77, 205, 354,1588 1 21, 80, 122, 82, 83, 453, 84, 452, 682, 683,1589 684, 896, 1073, 897, 85, 86, 456, 454, 690, 845,1590 846, 357, 358, 693, 694, 695, 359, 360, 361, 362,1591 464, 1056, 137, 138, 521, 327, 171, 639, 640, 641,1592 6 42, 643, 87, 123, 89, 488, 489, 928, 490, 278,1593 494, 328, 90, 139, 140, 91, 1309, 1095, 1096, 1097,1594 1098, 92, 93, 711, 94, 274, 95, 96, 188, 1014,1595 673, 411, 127, 97, 500, 501, 502, 189, 269, 191,1596 1 92, 193, 270, 100, 101, 102, 103, 104, 105, 106,1597 19 6, 197, 198, 199, 200, 815, 601, 602, 603, 604,1598 201, 606, 607, 608, 570, 571, 572, 573, 745, 107,1599 6 10, 611, 612, 613, 614, 615, 955, 747, 748, 749,1600 591, 365, 366, 367, 368, 329, 165, 109, 110, 111,1601 370, 688, 7181597 -1, 783, 457, 294, 49, 131, 132, 295, 296, 297, 1598 298, 299, 735, 736, 1091, 1092, 1093, 1221, 300, 372, 1599 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1600 312, 313, 314, 977, 511, 926, 538, 316, 927, 1007, 1601 1008, 1514, 1010, 1011, 1012, 1013, 1515, 1014, 1015, 1430, 1602 1431, 1392, 1393, 1394, 1492, 1493, 1497, 1498, 1534, 1535, 1603 1016, 1344, 1017, 1018, 1274, 1275, 1276, 1474, 1019, 143, 1604 912, 913, 914, 1372, 1455, 1466, 1467, 458, 459, 843, 1605 844, 985, 53, 54, 55, 56, 57, 339, 155, 60, 1606 61, 62, 63, 182, 341, 65, 66, 254, 68, 69, 1607 264, 343, 344, 72, 73, 74, 118, 76, 200, 346, 1608 119, 79, 120, 81, 82, 672, 83, 671, 875, 876, 1609 1038, 1039, 1191, 1040, 84, 484, 482, 704, 825, 826, 1610 349, 350, 674, 675, 676, 351, 352, 677, 354, 455, 1611 1021, 133, 134, 318, 319, 167, 631, 632, 633, 634, 1612 635, 85, 121, 87, 479, 480, 894, 481, 269, 488, 1613 320, 88, 135, 136, 89, 1304, 1069, 1070, 1071, 1072, 1614 90, 91, 692, 92, 263, 93, 94, 183, 979, 666, 1615 403, 125, 95, 494, 495, 496, 184, 258, 186, 187, 1616 188, 259, 98, 99, 100, 101, 102, 103, 104, 191, 1617 192, 193, 194, 195, 795, 593, 594, 595, 596, 196, 1618 598, 599, 600, 562, 563, 564, 565, 1044, 105, 602, 1619 603, 604, 605, 606, 607, 1045, 1046, 1047, 1048, 583, 1620 357, 358, 359, 360, 321, 161, 107, 108, 109, 362, 1621 702, 699 1602 1622 }; 1603 1623 1604 1624 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1605 1625 STATE-NUM. */ 1606 #define YYPACT_NINF -1 3281626 #define YYPACT_NINF -1276 1607 1627 static const yytype_int16 yypact[] = 1608 1628 { 1609 7 094, 5192, -1328, 47, -1328, -1328, -1328, -1328, -1328, -1328,1610 -1 328, 41, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,1611 -1 328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, 209, 209,1612 209, 1263, 1027, 118, 7336, 312, -1328, -1328, -1328, -1328,1613 -1 328, 248, -1328, -1328, -1328, 1020, 187, -1328, -1328, -1328,1614 -1 328, 8977, -1328, -1328, -1328, -1328, 126, 266, -1328, 1653,1615 -1 328, -1328, -1328, -1328, 285, 1985, 410, 77, 7457, -1328,1616 -1328, 8977, 983, -1328, -1328, 602, 416, 4937, 741, 1118,1617 602, 1546, -1328, -1328, 1203, 473, -1328, 602, 1860, -1328,1618 3 25, -1328, 471, 476, -1328, -1328, -1328, -1328, 367, 266,1619 209, -1328, 209, -1328, -1328, -1328, -1328, 7962, 1653, -1328,1620 -1 328, 1653, -1328, 375, -1328, 8082, -1328, -1328, 2291, 9246,1621 -1328, 847, 847, 847, -1328, -1328, -1328, 209, -1328, -1328,1622 -1 328, 408, 426, 461, -1328, -1328, -1328, 472, -1328, -1328,1623 -1328, -1328, -1328, 508, 512, -1328, -1328, 103, 8623, 1598,1624 500, 443, 518, 536, 544, 548, 556, 9286, 6718, 568,1625 -1 328, 9017, -1328, -1328, -1328, -1328, 575, -1328, 190, 3423,1626 3423, -1328, 577, 294, -1328, -1328, -1328, -1328, 578, 352,1627 387, 393, 209, 564, -1328, -1328, 1985, 3980, 641, -1328,1628 84, -1328, 209, 209, 266, -1328, -1328, 214, -1328, 209,1629 209, -1328, 4262, 597, 616, 847, 6752, -1328, -1328, -1328,1630 8977, -1328, -1328, 602, -1328, -1328, -1328, 266, -1328, 1653,1631 126, -1328, 7808, -1328, 847, 847, 847, 266, -1328, 1263,1632 -1328, 6380, -1328, -1328, 600, 847, -1328, 847, -1328, 248,1633 8623, -1328, 625, -1328, 1027, 697, 847, -1328, 1263, 667,1634 675, -1328, 7336, 663, -1328, -1328, -1328, 3551, -1328, -1328,1635 8539, -1328, 641, 128, 5841, 9246, 2291, 4262, -1328, 236,1636 -1 328, -1328, 8082, 1653, 700, 10420, -1328, -1328, 221, -1328,1637 493, 710, 742, 6026, 753, 5841, 9865, -1328, 766, -1328,1638 -1 328, -1328, -1328, -1328, -1328, 9924, 9924, 8387, 187, -1328,1639 -1328, -1328, -1328, -1328, -1328, -1328, 808, -1328, 2340, 2114,1640 8623, 5841, -1328, 633, 22, 547, 447, 693, 771, 758,1641 785, 800, 32, -1328, -1328, -1328, 572, -1328, 268, -1328,1642 -1328, 1598, -1328, -1328, 329, 827, -1328, 417, 827, -1328,1643 -1328, 7962, -1328, 807, 834, 8741, -1328, -1328, 1437, 2015,1644 8168, 6752, 602, -1328, 602, 847, 847, -1328, -1328, -1328,1645 -1328, -1328, -1328, 847, 7962, 1653, -1328, -1328, 9286, 1675,1646 -1 328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, 4621,1647 5841, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,1648 -1328, -1328, -1328, -1328, -1328, 2291, -1328, 818, 832, 839,1649 8 51, 857, 865, 870, 881, 3980, -1328, -1328, 888, 126,1650 903, -1328, -1328, 889, -1328, -1328, -1328, 3551, -1328, -1328,1651 -1328, -1328, -1328, 4262, -1328, 8623, 8623, -1328, 847, 2291,1652 6876, 8243, -1328, -1328, -1328, -1328, 3551, 128, -1328, -1328,1653 602, 266, -1328, -1328, 3551, -1328, 6628, -1328, -1328, 847,1654 847, 552, 5831, 902, 906, 897, 905, 847, -1328, -1328,1655 -1 328, -1328, 9444, -1328, 569, 10160, -1328, 266, 913, -1328,1656 2291, 10200, 9983, -1328, -1328, -1328, -1328, 896, 4262, -1328,1657 8243, 641, 7215, -1328, -1328, -1328, -1328, 1315, 613, 907,1658 1027, 10420, 1475, 8082, -1328, 10420, -1328, -1328, -1328, -1328,1659 654, -1328, 931, 742, 246, 8387, -1328, 9319, -1328, -1328,1660 8387, -1328, 8505, 8387, -1328, -1328, 187, -1328, 666, 933,1661 695, 936, -1328, -1328, 6470, -1328, -1328, 345, -1328, -1328,1662 5841, -1328, 431, 5841, -1328, -1328, -1328, -1328, -1328, -1328,1663 -1 328, -1328, -1328, -1328, -1328, -1328, 5841, -1328, -1328, 5841,1664 5841, 5841, 5841, 5841, 5841, 5841, 5841, 5841, 5841, 5841,1665 5841, 5841, 5841, 5841, 5841, 5841, 5841, 4496, 572, 830,1666 -1 328, -1328, 209, 209, -1328, -1328, 8623, -1328, -1328, 889,1667 663, -1328, 889, 10042, -1328, -1328, 9286, 6470, 929, -1328,1668 9246, -1328, -1328, 575, -1328, 937, 947, 939, 3082, 257,1669 907, -1328, 209, 209, 907, 260, -1328, 209, 209, 889,1670 -1328, -1328, 209, 209, -1328, 827, 9404, 1653, 10351, 176,1671 238, 9404, -1328, 8539, -1328, 907, -1328, 7962, -1328, 8,1672 5680, 5680, 1653, 5204, 927, -1328, 546, 943, 945, -1328,1673 950, 3423, 381, -1328, 1033, 1653, 5680, 663, 2291, 663,1674 641, 477, 827, -1328, -1328, 604, 827, -1328, -1328, -1328,1675 742, -1328, 827, 266, 9444, -1328, 678, 967, 680, 968,1676 -1328, 807, 266, -1328, -1328, 3551, 266, 965, 9319, 187,1677 -1328, 1893, -1328, 436, 439, 1027, -1328, 1027, 966, 5841,1678 -1328, 1027, 10351, -1328, -1328, 972, -1328, -1328, -1328, 663,1679 -1 328, 10276, 834, -1328, 5680, 707, 8168, -1328, -1328, 575,1680 973, 976, 1315, 1837, -1328, -1328, 10420, 5841, -1328, -1328,1681 97 9, -1328, -1328, 993, -1328, 979, 982, 493, 5841, 977,1682 974, 26, 1002, 998, 1007, 1008, -1328, 1011, 1012, 6470,1683 -1328, 5841, -1328, 695, 1078, -1328, -1328, -1328, 209, 209,1684 5376, 5841, 1015, -1328, -1328, 718, -1328, 5841, -1328, -1328,1685 733, -1328, -1328, -1328, -1328, 633, 633, 22, 22, 547,1686 547, 547, 547, 447, 447, 693, 771, 758, 785, 800,1687 5841, 106, 9444, 1023, 1035, 1036, 830, -1328, -1328, -1328,1688 -1328, -1328, 9444, 730, -1328, 7962, -1328, 6842, 8859, -1328,1689 -1 328, -1328, 947, 9444, 952, 1039, 1040, 1041, 1042, 1044,1690 1046, 1047, -1328, 4747, 3082, -1328, -1328, -1328, -1328, -1328,1691 -1 328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,1692 -1328, -1328, 889, -1328, -1328, -1328, 907, -1328, -1328, -1328,1693 -1 328, -1328, -1328, -1328, -1328, -1328, -1328, 1053, 1054, -1328,1694 126, 1015, 5204, -1328, -1328, -1328, 4621, 1051, -1328, -1328,1695 -1328, -1328, 1027, 6163, 1143, -1328, -1328, -1328, -1328, 1049,1696 126, -1328, -1328, 889, -1328, -1328, 889, 1060, 889, -1328,1697 -1328, -1328, -1328, -1328, -1328, 6718, -1328, 266, -1328, -1328,1698 444, 451, 6718, 2036, 5841, 3709, -1328, -1328, 1045, 40,1699 104 5, -1328, 1027, -1328, 209, -1328, -1328, 9131, 897, -1328,1700 -1328, -1328, 906, 1061, 1056, -1328, -1328, 1069, 1072, -1328,1701 707, 1770, -1328, 275, -1328, 1837, 907, -1328, -1328, 1076,1702 10420, 8082, 8623, 1081, -1328, -1328, 734, 1058, -1328, 5841,1703 1084, 279, 1082, -1328, 1080, 663, 1080, -1328, -1328, 1080,1704 -1 328, 1087, 1089, 1091, 1078, -1328, -1328, -1328, 4621, -1328,1705 -1 328, -1328, 1088, 5841, 919, -1328, 5841, -1328, 919, -1328,1706 -1328, 5841, -1328, 611, 827, -1328, -1328, -1328, -1328, -1328,1707 -1328, -1328, 834, 8741, -1328, -1328, 6966, 1093, -1328, 640,1708 827, -1328, 652, 657, 827, -1328, 847, 4999, -1328, -1328,1709 -1328, 9444, 9444, -1328, 8243, 8243, 1096, 1094, 1095, 1099,1710 -1 328, 347, 89, 1015, -1328, 919, -1328, 3423, -1328, 5841,1711 464, -1328, 6346, 1103, 1105, 9806, 1107, 1112, 627, 759,1712 1 566, 5841, 1115, 266, 5841, 5841, 1092, 1104, 248, 228,1713 302, 1108, 1123, 1097, -1328, -1328, -1328, 1128, -1328, -1328,1714 -1 328, -1328, -1328, -1328, -1328, -1328, 1119, -1328, 1027, 1138,1715 5841, -1328, 9444, 9444, 209, 1140, -1328, 9171, -1328, -1328,1716 806, -1328, 3709, -1328, -1328, -1328, -1328, 1893, -1328, -1328,1717 1136, -1328, -1328, -1328, -1328, 1144, 1770, -1328, -1328, 1127,1718 -1 328, 979, -1328, -1328, 2291, 1145, -1328, -1328, -1328, 749,1719 1149, -1328, 26, 1146, 5841, 1132, 26, 26, 1157, 672,1720 827, -1328, -1328, 950, 5841, 1159, 1088, -1328, 1148, -1328,1721 -1 328, 1158, -1328, 81, -1328, 1166, 1158, -1328, 1169, -1328,1722 -1 328, 889, 1171, 6594, 1173, 1184, 1185, -1328, -1328, 1189,1723 -1328, -1328, 889, -1328, -1328, -1328, -1328, 889, 5841, 5841,1724 834, 1188, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,1725 -1328, -1328, -1328, 5841, 5841, 1190, 1194, 1158, -1328, -1328,1726 1027, -1328, -1328, -1328, 7733, 8082, 5841, 5841, 1274, 5841,1727 -1328, -1328, 1191, -1328, 1192, 5841, 1199, 1206, 5841, 1013,1728 1207, 37, 2395, -1328, -1328, 6163, 1211, 209, 482, -1328,1729 -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, 9622, -1328,1730 8243, 1231, -1328, -1328, 8082, 492, 506, -1328, 1227, 1219,1731 742, 1242, -1328, 293, -1328, -1328, -1328, -1328, 889, 1238,1732 -1 328, -1328, 1243, 1273, -1328, -1328, 1273, 1273, 919, 1245,1733 1200, 1221, -1328, 1247, -1328, 9444, -1328, -1328, -1328, -1328,1734 12 51, -1328, 9444, 9444, 9444, -1328, -1328, 1252, -1328, 1254,1735 1257, 1259, 446, 7928, 8048, -1328, -1328, -1328, -1328, 1258,1736 -1328, 8318, 754, 762, 1267, 767, 3351, -1328, -1328, 507,1737 -1328, -1328, 782, 1269, 1270, 266, 1323, 868, -1328, -1328,1738 5841, -1328, 5841, -1328, -1328, 9806, -1328, 1272, 1280, -1328,1739 -1 328, -1328, 1277, -1328, -1328, -1328, -1328, -1328, -1328, 8082,1740 742, 1284, -1328, 1264, 742, 9444, -1328, -1328, -1328, 919,1741 -1 328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328, -1328,1742 -1 328, -1328, 1285, 1288, -1328, -1328, -1328, -1328, -1328, -1328,1743 -1328, 1292, -1328, 1294, -1328, 9806, 292, 5841, 9806, -1328,1744 1297, 5841, -1328, 298, 1308, 1314, -1328, -1328, 1302, 1303,1745 1282, 817, -1328, -1328, -1328, -1328, 1653, 2291, 1300, -1328,1746 139, 5841, -1328, 792, -1328, 1158, 919, 919, 1310, 1312,1747 1 313, 1317, -1328, -1328, 8243, 1309, -1328, 1388, 5841, 1299,1748 -1328, -1328, 9716, -1328, 793, -1328, 1298, 9806, 1304, -1328,1749 -1328, 1325, -1328, 1327, -1328, 1342, 1344, -1328, 1316, 8082,1750 -1328, -1328, -1328, 742, 663, 1334, 1318, 1337, 1343, 1158,1751 1 158, -1328, -1328, -1328, -1328, -1328, 9806, 149, -1328, 165,1752 -1 328, -1328, 7578, -1328, -1328, 1322, 5841, -1328, 5841, 7578,1753 266, 9319, 266, 9319, 1351, -1328, 1352, -1328, -1328, 1348,1754 -1 328, -1328, 794, -1328, -1328, -1328, -1328, 1347, 1355, -1328,1755 5841, 5841, -1328, -1328, 893, 117, -1328, -1328, 1338, -1328,1756 893, -1328, -1328, 2215, 663, -1328, -1328, 266, 9319, 266,1757 9 319, 1362, 1341, 663, -1328, -1328, -1328, -1328, 9716, 1365,1758 893, 7657, 5841, 9626, 1366, 893, 1367, 2215, 3729, -1328,1759 -1328, -1328, 1372, -1328, -1328, -1328, -1328, 8623, -1328, -1328,1760 -1 328, 9488, -1328, 9716, -1328, -1328, 1353, 5938, -1328, -1328,1761 9626, 266, 3729, 266, 1376, 1377, 795, -1328, 9488, -1328,1762 -1328, -1328, 5938, -1328, -1328, -1328, 266, 266, -1328, -1328,1763 -1328, -1328, -1328, -1328, -1328, -13281629 7275, 9192, -1276, 31, -1276, -1276, -1276, -1276, -1276, -1276, 1630 -1276, 12, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 1631 -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 99, -1276, 1632 -1276, 1603, 681, 89, 7517, 210, -1276, -1276, -1276, -1276, 1633 -1276, 116, -1276, -1276, -1276, 429, 144, -1276, -1276, -1276, 1634 -1276, 4252, -1276, -1276, -1276, -1276, 32, 152, -1276, 1816, 1635 -1276, -1276, -1276, -1276, 1962, 287, 93, 5921, -1276, -1276, 1636 4252, 1910, -1276, -1276, 1592, 306, 3283, 540, 736, 1592, 1637 1249, -1276, -1276, 99, -1276, 1592, 1618, -1276, 235, -1276, 1638 384, 511, -1276, -1276, -1276, -1276, 414, 152, 99, -1276, 1639 99, -1276, -1276, -1276, -1276, 8217, 1816, -1276, -1276, 1816, 1640 -1276, 362, -1276, 9392, -1276, -1276, 2239, 9432, -1276, 1003, 1641 1003, 1003, -1276, -1276, 1463, 99, -1276, 471, 504, 530, 1642 -1276, -1276, -1276, 542, -1276, -1276, -1276, -1276, -1276, 556, 1643 565, -1276, -1276, 28, 8758, 2572, 309, 566, 591, 602, 1644 611, 630, 646, 9465, 6899, 621, -1276, 9152, -1276, -1276, 1645 -1276, -1276, 649, -1276, 146, 5718, 5718, -1276, 655, 206, 1646 -1276, -1276, -1276, -1276, 679, 277, 321, 326, -1276, -1276, 1647 1962, 2534, 677, 743, -1276, 23, -1276, 99, 99, 152, 1648 -1276, -1276, 55, -1276, 99, 99, -1276, 3049, 700, 703, 1649 1003, 6685, -1276, -1276, -1276, 4252, -1276, -1276, 1592, -1276, 1650 -1276, -1276, 152, -1276, 1816, 32, -1276, 7868, -1276, 1003, 1651 1003, 1003, 152, -1276, 1603, -1276, 3585, -1276, -1276, 684, 1652 1003, -1276, 1003, -1276, 652, 1003, -1276, 1603, 709, 712, 1653 -1276, 7517, 615, -1276, -1276, -1276, 9119, -1276, -1276, 8674, 1654 -1276, 743, 35, 3690, 9432, 2239, 3049, -1276, 59, -1276, 1655 -1276, 9392, 1816, 718, 10847, 681, 733, -1276, -1276, 582, 1656 -1276, 359, 716, 770, 10233, 748, 3690, 10292, -1276, 750, 1657 -1276, -1276, -1276, -1276, -1276, -1276, 10351, 10351, 8522, 144, 1658 -1276, -1276, -1276, -1276, -1276, -1276, -1276, 786, -1276, 1681, 1659 2360, 8758, 3690, -1276, 222, 671, 732, 427, 759, 755, 1660 741, 747, 784, 38, -1276, -1276, -1276, 667, -1276, -1276, 1661 145, -1276, -1276, 2572, -1276, -1276, 415, 774, -1276, 509, 1662 774, -1276, -1276, 8217, -1276, 779, 788, 8876, -1276, -1276, 1663 810, 1492, 8303, 6685, 1592, -1276, 1592, 1003, 1003, -1276, 1664 -1276, -1276, -1276, -1276, -1276, 1003, 8217, 1816, -1276, -1276, 1665 9465, 1201, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 1666 -1276, 4829, 3690, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 1667 -1276, -1276, -1276, -1276, -1276, -1276, -1276, 787, 794, 804, 1668 807, 858, 830, 835, 845, 2534, -1276, -1276, 99, 827, 1669 811, 32, 872, -1276, -1276, 876, -1276, -1276, -1276, 9119, 1670 -1276, -1276, -1276, -1276, -1276, 3049, -1276, 8758, 8758, -1276, 1671 1003, 2239, 6809, 8378, -1276, -1276, -1276, -1276, 9119, 35, 1672 -1276, -1276, 1592, 152, -1276, -1276, 9119, -1276, 4366, -1276, 1673 -1276, 1003, 1003, 116, 8758, -1276, 877, -1276, 1003, -1276, 1674 -1276, -1276, -1276, 9703, -1276, 336, 10587, -1276, 152, 879, 1675 -1276, 2239, 10627, 10410, -1276, -1276, -1276, -1276, 862, 3049, 1676 -1276, 8378, 743, 7396, -1276, -1276, -1276, -1276, 620, 381, 1677 869, 681, 890, 882, 911, 10847, 1023, 9392, -1276, 10847, 1678 -1276, -1276, -1276, -1276, 405, -1276, 917, 770, 259, 8522, 1679 -1276, 9550, -1276, -1276, 8522, -1276, 8640, 8522, -1276, -1276, 1680 144, -1276, 435, 919, 921, -1276, 6651, -1276, -1276, 329, 1681 -1276, -1276, 3690, -1276, 450, 3690, -1276, -1276, -1276, -1276, 1682 -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 3690, -1276, 1683 -1276, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 1684 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3690, 3309, 1685 667, 1689, -1276, -1276, 99, 99, -1276, -1276, 8758, -1276, 1686 -1276, 876, -1276, -1276, 876, 10469, -1276, -1276, 9465, 6651, 1687 923, -1276, 9432, -1276, -1276, 649, -1276, 927, 1763, 929, 1688 2234, 63, 869, -1276, 99, 99, 869, 76, -1276, 99, 1689 99, 876, -1276, -1276, 99, 99, -1276, 774, 9583, 1816, 1690 10778, 446, 465, 9583, -1276, 8674, -1276, 869, -1276, 8217, 1691 -1276, 294, 7988, 7988, 1816, 10174, 903, -1276, 1168, 913, 1692 916, -1276, 932, 5718, 550, -1276, 1024, 1816, 7988, 615, 1693 2239, 615, 79, 774, -1276, -1276, 80, 774, -1276, -1276, 1694 -1276, 2239, -1276, 770, -1276, 774, 152, 9703, -1276, 498, 1695 942, 515, 944, -1276, 779, 152, -1276, -1276, 9119, 152, 1696 563, 5344, 941, 10778, -1276, -1276, 948, -1276, -1276, -1276, 1697 615, -1276, 10703, 788, -1276, 7988, 693, 8303, -1276, -1276, 1698 649, 945, 949, 620, 2900, -1276, -1276, 10847, 3690, -1276, 1699 -1276, 681, 964, 3690, -1276, 681, 943, -1276, -1276, 971, 1700 -1276, 943, 976, 359, 3690, 957, 956, 62, 980, 144, 1701 975, 982, 988, -1276, 992, 994, 6651, -1276, 3690, -1276, 1702 6072, 3690, 993, -1276, -1276, 595, -1276, 3690, -1276, -1276, 1703 773, -1276, -1276, -1276, -1276, 222, 222, 671, 671, 732, 1704 732, 732, 732, 427, 427, 759, 755, 741, 747, 784, 1705 3690, 195, 9703, 1002, 1005, 1010, 1689, -1276, -1276, -1276, 1706 -1276, -1276, 9703, 9703, -1276, 8217, -1276, 7023, 8994, -1276, 1707 -1276, -1276, 1763, 9703, 887, 1011, 1012, 1015, 1017, 1018, 1708 1021, 1029, -1276, 4594, 2234, -1276, -1276, -1276, -1276, -1276, 1709 -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 1710 -1276, -1276, 876, -1276, -1276, -1276, 869, -1276, -1276, -1276, 1711 -1276, -1276, -1276, -1276, -1276, -1276, -1276, 1031, 1034, -1276, 1712 32, 993, 10174, -1276, -1276, -1276, 4829, 996, -1276, -1276, 1713 -1276, -1276, 681, 6383, 1087, -1276, -1276, -1276, -1276, 1014, 1714 -1276, -1276, -1276, 876, -1276, -1276, -1276, 876, 743, 1037, 1715 876, -1276, -1276, -1276, -1276, -1276, -1276, 6899, -1276, 152, 1716 -1276, 1020, 9550, -1276, 1883, -1276, 395, 681, -1276, 1038, 1717 1036, -1276, -1276, 1042, 1045, -1276, 693, 1694, -1276, 494, 1718 -1276, 2900, 869, -1276, -1276, 882, -1276, -1276, -1276, 890, 1719 1048, 10847, 9392, 8758, 1049, -1276, -1276, 599, 1032, -1276, 1720 3690, 1052, 284, 1050, -1276, 1056, 6899, 615, 1056, -1276, 1721 -1276, 1056, -1276, 4829, -1276, -1276, -1276, 1055, 3690, 1312, 1722 -1276, 3690, -1276, 1312, -1276, -1276, 3690, -1276, 265, 774, 1723 -1276, -1276, -1276, -1276, -1276, -1276, -1276, 788, 8876, -1276, 1724 -1276, 7147, 1054, -1276, 273, 774, -1276, 289, 296, 774, 1725 -1276, 1003, 6008, -1276, -1276, -1276, 9703, 9703, -1276, 8378, 1726 8378, 1062, 1058, 1059, 1069, -1276, 528, 60, 993, -1276, 1727 1312, -1276, 5718, -1276, 3690, 459, -1276, 6520, 1071, 1075, 1728 10115, 1076, 1078, 495, 516, 1001, 3690, 1081, 152, 3690, 1729 3690, 1064, 1066, 116, 161, 546, 1072, 1083, 1060, -1276, 1730 -1276, -1276, 1086, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 1731 -1276, 1074, -1276, 681, 1096, 3690, 9703, 9703, 32, 99, 1732 1099, -1276, -1276, 1883, 479, 1980, 3690, 2331, 485, -1276, 1733 -1276, 1082, 14, 1082, -1276, -1276, -1276, 99, 99, 681, 1734 -1276, -1276, 9277, -1276, -1276, -1276, -1276, 1101, 1694, -1276, 1735 -1276, 1091, -1276, 1100, -1276, 943, -1276, -1276, 2239, 1107, 1736 -1276, -1276, -1276, 616, 1115, -1276, 62, 1102, 3690, 1103, 1737 62, 62, 1123, 932, 3690, 1124, 1055, -1276, 1148, -1276, 1738 -1276, 1121, -1276, 215, -1276, 1127, 1121, -1276, 1134, -1276, 1739 -1276, -1276, 876, 1135, 1136, 6775, 1150, 1154, 1155, -1276, 1740 99, 1138, -1276, -1276, -1276, 876, -1276, -1276, -1276, -1276, 1741 -1276, -1276, 876, 3690, 3690, 788, 1156, -1276, -1276, -1276, 1742 -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 3690, 3690, 1743 1164, 1169, 1121, -1276, -1276, 681, -1276, -1276, -1276, 3690, 1744 3690, 1238, 3690, -1276, -1276, 1157, -1276, 1159, 3690, 1161, 1745 1162, 3690, 946, 1166, 25, 2027, -1276, -1276, 6383, 1184, 1746 99, 527, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 9317, 1747 534, -1276, 796, 1190, 1192, 1196, -1276, 2331, -1276, 99, 1748 -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276, 9931, -1276, 1749 8378, -1276, 1202, -1276, -1276, 9392, 537, 538, -1276, 1209, 1750 1186, 770, 1207, -1276, 320, -1276, -1276, 1210, -1276, -1276, 1751 1216, 1257, -1276, -1276, 1257, 1257, 1312, 1218, 2023, 2049, 1752 -1276, 1227, -1276, 9703, -1276, -1276, -1276, -1276, -1276, 1228, 1753 -1276, 9703, 9703, 9703, -1276, -1276, 1229, -1276, 1230, 1233, 1754 1234, 575, 8063, 8183, -1276, -1276, -1276, -1276, 1236, -1276, 1755 647, 658, 1240, 665, 6215, -1276, -1276, 561, -1276, -1276, 1756 670, 1241, 1246, 152, 1300, 854, -1276, -1276, 3690, -1276, 1757 3690, -1276, -1276, 10115, -1276, 1255, 1256, -1276, -1276, 312, 1758 774, -1276, -1276, 1883, -1276, -1276, -1276, 1245, -1276, -1276, 1759 -1276, -1276, -1276, -1276, 9392, 770, 1261, -1276, 1239, 770, 1760 -1276, -1276, -1276, 1312, -1276, -1276, -1276, -1276, -1276, -1276, 1761 -1276, -1276, -1276, -1276, -1276, -1276, 1262, 1267, -1276, -1276, 1762 -1276, -1276, -1276, -1276, -1276, 1270, -1276, 1273, -1276, 10115, 1763 240, 3690, 10115, -1276, 1276, 3690, -1276, 7793, 9392, -1276, 1764 271, 1291, 1294, -1276, -1276, 1282, 1288, 1272, 818, -1276, 1765 -1276, -1276, -1276, -1276, -1276, 876, -1276, -1276, 1816, 2239, 1766 1287, -1276, 339, 3690, -1276, 690, 1121, 1312, 1312, 1289, 1767 1296, 1299, 1304, -1276, -1276, 8378, 1303, -1276, 1370, 3690, 1768 1286, -1276, -1276, 10025, -1276, 707, -1276, 1293, 10115, 1298, 1769 8453, -1276, -1276, 1310, -1276, 1311, -1276, 1330, 1335, -1276, 1770 1302, 9703, 9392, -1276, -1276, -1276, 770, 615, 1322, 1305, 1771 1323, 1121, 1121, -1276, -1276, -1276, -1276, -1276, 10115, 147, 1772 -1276, 420, -1276, -1276, 7638, -1276, -1276, 1313, 3690, -1276, 1773 3690, 7638, 152, 9550, 152, 9550, 1326, -1276, 1332, -1276, 1774 -1276, -1276, 1328, -1276, -1276, 714, -1276, -1276, -1276, 1337, 1775 1342, -1276, 3690, 3690, -1276, -1276, 883, 84, -1276, -1276, 1776 1324, -1276, 883, -1276, -1276, 2177, 615, -1276, -1276, 152, 1777 9550, 152, 9550, 1334, 1349, 1336, 615, -1276, -1276, -1276, 1778 -1276, 10025, 1345, 883, 7717, 3690, 9935, 1351, 883, 1357, 1779 2177, 2664, -1276, -1276, -1276, 1359, -1276, -1276, -1276, -1276, 1780 -1276, 8758, -1276, -1276, -1276, 9797, -1276, 10025, -1276, -1276, 1781 1346, 9707, -1276, -1276, 9935, 152, 2664, 152, 1369, 1372, 1782 730, -1276, 9797, -1276, -1276, -1276, 9707, -1276, -1276, -1276, 1783 152, 152, -1276, -1276, -1276, -1276, -1276, -1276, -1276, -1276 1764 1784 }; 1765 1785 … … 1767 1787 static const yytype_int16 yypgoto[] = 1768 1788 { 1769 -1 328, 4218, 2910, -1328, 2669, -1328, 454, 0, -147, -1328,1770 -1 328, 463, -522, -472, -935, -1037, -1328, -158, 4217, 1113,1771 -1 328, 115, 430, 459, 419, 456, 932, 938, 935, 940,1772 9 41, -1328, -236, -629, 5014, -930, -1328, -1328, 543, -135,1773 - 872, -345, -1328, 1349, -1328, 324, -967, -1328, -1328, 49,1774 -1 328, -1273, -818, 170, -1328, -1328, -1328, -1328, -5, -1312,1775 -1 328, -1328, -1328, -1328, -1328, -1328, 244, -1175, 35, -1328,1776 - 502, -1328, 424, 219, -1328, 95, -1328, -308, -1328, -1328,1777 -1 328, 479, -837, -1328, -1328, 4, -995, 175, 1139, -1328,1778 -1 328, -1328, -119, -1328, 57, 315, -193, 1470, 3860, -1328,1779 -1 328, 63, 160, 685, 1861, -1328, 1798, -1328, -1328, 18,1780 1913, -1328, 2277, 2037, -1328, -1328, -1328, -545, -1328, 862,1781 867, 458, 646, -93, -1328, -1328, -1328, 856, 647, -449,1782 -1328, -478, -351, -615, -1328, -1328, -928, -975, -3, 985,1783 981, 776, -1328, 107, 366, -24, -195, -132, 609, 706,1784 -1328, 926, -1328, 2605, 1917, -447, 855, -1328, -1328, 645,1785 -1328, -234, -1328, -136, -1328, -1328, -1328, -1230, 360, -1328,1786 -1 328, -1328, 1098, -1328, 12, -1328, -1328, -835, -110, -1327,1787 -138, 2640, -1328, 3073, -1328, 848, -1328, -166, 72, -183,1788 -1 79, -176, 2, -41, -36, -32, 62, 10, 19, 21,1789 -98, -172, -171, -170, -167, -307, -494, -481, -476, -551,1790 - 310, -510, -1328, -1328, -515, 1010, 1014, 1017, 1772, 4826,1791 -5 57, -496, -482, -480, -543, -1328, -503, -723, -721, -720,1792 - 573, -287, -290, -1328, -1328, 226, 457, -9, -1328, 3666,1793 -27, -611, -2571789 -1276, 4372, 2980, -1276, 2546, -1276, 133, 0, 353, -1276, 1790 -1276, 484, -503, -488, -816, -925, -1276, -155, 5343, 687, 1791 -1276, -8, 438, 439, 406, 473, 936, 937, 938, 940, 1792 935, -1276, 16, -629, 5085, -872, -1276, -1276, 571, 711, 1793 -953, 442, -1276, 143, -1276, 337, -1218, -1276, -1276, 43, 1794 -1276, -1095, -891, 157, -1276, -1276, -1276, -1276, -28, -1182, 1795 -1276, -1276, -1276, -1276, -1276, -1276, 239, -1036, 39, -1276, 1796 -292, -1276, 428, 203, -1276, 73, -1276, -329, -1276, -1276, 1797 -1276, 497, -831, -1276, -1276, 8, -1177, 119, 2152, -1276, 1798 -1276, -1276, -200, -1276, 218, 464, -197, 1593, 4090, -1276, 1799 -1276, 54, 10, 81, 870, -1276, 1757, -1276, -1276, 4, 1800 2080, -1276, 2209, 245, -1276, -1276, -1276, -810, -1276, 651, 1801 492, 236, 490, -591, -1276, -1276, 829, 640, -247, -1276, 1802 -487, -338, 961, -1276, -1276, -885, -918, -131, -60, -1276, 1803 462, -1276, 1284, -121, -305, -157, -103, 614, 708, -1276, 1804 905, -1276, 2602, 1460, -448, 848, -1276, -1276, 661, -1276, 1805 -437, -1276, 217, -1276, -1276, -1276, -1269, 341, -1276, -1276, 1806 -1276, 1085, -1276, 6, -1276, -1276, -796, -87, -1275, -158, 1807 2622, -1276, 4369, -1276, 843, -1276, 21, 165, -174, -172, 1808 -169, 2, -40, -32, -30, 1684, 26, 53, 66, 110, 1809 -166, -163, -160, -159, -293, -485, -480, -434, -541, -314, 1810 -513, -1276, -1276, -535, 1006, 1008, 1016, 1639, 4667, -574, 1811 -533, -528, -509, -421, -1276, -961, -1011, -1007, -1005, -575, 1812 -287, -299, -1276, -1276, 298, 238, -63, -1276, 3674, 814, 1813 -613, -492 1794 1814 }; 1795 1815 … … 1797 1817 positive, shift that token. If negative, reduce the rule which 1798 1818 number is the opposite. If YYTABLE_NINF, syntax error. */ 1799 #define YYTABLE_NINF -5 301819 #define YYTABLE_NINF -528 1800 1820 static const yytype_int16 yytable[] = 1801 1821 { 1802 50, 114, 99, 398, 151, 116, 451, 399, 268, 152, 1803 400, 760, 427, 153, 401, 402, 403, 746, 78, 404, 1804 951, 406, 952, 953, 167, 438, 1055, 1173, 1057, 857, 1805 1158, 114, 114, 1126, 50, 52, 99, 382, 383, 605, 1806 735, 817, 600, 834, 720, 50, 145, 816, 725, 880, 1807 409, 50, 78, 162, 787, 154, 820, 65, 592, 50, 1808 911, 1430, 827, 71, 155, 50, 156, 194, 50, 52, 1809 217, 50, 98, 227, 624, 220, 1156, 1157, 628, 1368, 1810 1167, 1235, 33, 398, 114, 114, 808, 399, 167, 407, 1811 400, 65, 424, 445, 401, 402, 403, 71, 261, 404, 1812 809, 406, 805, 1290, 1190, 1191, 98, 203, 50, 663, 1813 291, 50, 458, 163, 810, 806, 811, 150, 50, 1434, 1814 807, 330, 474, 98, 473, 475, 33, 195, 672, 707, 1815 218, 124, 566, 228, 1430, 504, 676, 190, 469, 143, 1816 98, 907, 939, 98, 717, 151, 552, 553, 342, 50, 1817 152, 162, 847, 847, 153, 125, 410, 281, 204, 1187, 1818 72, 50, 518, 372, -239, -239, 567, 972, 847, 407, 1819 951, 1240, 952, 953, 1291, 58, 117, 977, 901, 1449, 1820 714, 1518, 849, 434, 1230, 1172, 50, 50, 988, 162, 1821 1163, 242, 245, 708, 72, 408, 154, 866, 253, 1241, 1822 410, 1320, 50, 1323, 1325, 155, 936, 156, 1533, 58, 1823 50, 163, 162, 330, 661, 1434, 1164, 282, 805, 50, 1824 1434, 98, 50, 373, 441, 151, 847, 741, 213, 114, 1825 152, 806, 144, 98, 153, 1158, 807, -239, 169, 658, 1826 1434, 971, 474, 211, 114, 434, 221, 1434, 114, 163, 1827 1460, 33, 50, 114, 99, 919, 33, 1000, 397, 190, 1828 1413, 820, 170, 999, 461, 1071, 50, 50, 1476, 162, 1829 78, 976, 163, 50, 1414, 78, 1164, 164, 33, 848, 1830 848, 1173, 98, 167, 442, 650, 1461, 52, 605, 1158, 1831 666, 668, 987, 837, 98, 848, 796, 838, 469, 33, 1832 1462, 1080, 33, 1504, 157, 1506, 809, 659, 805, 65, 1833 1103, 376, 658, 665, 470, 71, 118, 469, 594, 670, 1834 810, 806, 811, 146, 98, 469, 807, 377, 418, 592, 1835 410, 50, 585, 372, 592, 1156, 1157, 843, 477, 1388, 1836 1389, 164, 512, 821, 1067, 1388, 1389, 824, 50, 50, 1837 479, 455, 410, 848, 492, 839, 729, 493, 1055, 840, 1838 1057, 730, 148, -10, 817, 50, 160, 887, 841, 50, 1839 518, 818, 844, 597, 825, 518, 597, 287, 518, 637, 1840 659, 731, 440, 575, 1375, 172, 1153, 1154, 707, 576, 1841 43, 44, 839, 373, 1105, 50, 1087, 439, 330, 330, 1842 509, 667, 669, 98, 1349, 50, 182, 372, 1313, 1158, 1843 834, 1390, 72, 202, 1106, 386, 513, 1399, 378, -294, 1844 112, 599, 259, 50, 809, 547, 548, 58, 1314, 50, 1845 160, 387, 781, 43, 44, 78, 433, 1173, 810, 1351, 1846 811, 1419, 1420, 577, 1173, 410, 248, 1201, 1202, 1144, 1847 1146, 1112, 708, 910, 78, 113, 1425, 108, 108, 696, 1848 547, 753, 78, 326, -112, 114, 330, 373, -112, 724, 1849 50, 251, 340, 389, 470, 1221, -525, 190, 50, 1398, 1850 372, 253, 50, 1091, 99, 330, 638, 50, 737, 390, 1851 114, 108, 114, 470, 1124, 547, 1173, 859, 433, 636, 1852 78, 470, 1229, 496, 605, 980, 112, 998, 391, 858, 1853 213, 264, 870, 877, 393, 898, 860, 52, 1044, 43, 1854 44, 429, -12, 522, 392, 432, 1517, 114, 108, 1000, 1855 394, 580, 114, 410, 1265, 1266, 164, 705, 868, 65, 1856 -448, 707, 556, 557, 970, 71, 1528, 758, 112, 330, 1857 141, 142, 791, 1532, 98, 326, 469, 902, 333, 599, 1858 904, 43, 44, 1338, 1468, 902, 1469, 1339, 497, 1112, 1859 498, 499, 904, 903, 901, -449, 905, 558, 559, 1003, 1860 114, 1068, 916, 900, 940, 1170, 277, 432, 1069, 835, 1861 487, 871, 244, 410, 594, 1466, 50, 719, 50, 723, 1862 1219, 1171, 1466, 1170, 1223, 708, 2, 207, 4, 5, 1863 6, 7, 520, 1304, 253, 332, 1011, 50, 998, 1296, 1864 1515, 112, 279, 141, 142, 160, 280, 1306, 741, 1305, 1865 1327, 213, 50, 334, 43, 44, 114, 1329, 1330, 1331, 1866 554, 555, 72, 1307, 1352, 50, 1488, 114, 50, 114, 1867 798, 335, 1493, 1155, 1514, 1010, 584, 58, 910, 336, 1868 589, 696, 853, 337, 762, 763, 764, 677, 804, 1088, 1869 599, 338, 1513, 576, 37, 1061, 38, 1520, 685, 622, 1870 1178, 50, 371, 626, 698, 114, 568, 114, 410, 375, 1871 699, 114, 388, 78, 47, 48, 592, 384, 1099, 114, 1872 1374, 396, 39, 910, 175, 176, 42, 463, 408, 108, 1873 398, 425, 50, 50, 399, 43, 44, 400, 874, 78, 1874 410, 401, 402, 403, 1016, 1129, 404, 410, 715, 406, 1875 426, 522, 470, 522, 716, 1127, 522, 448, 112, 522, 1876 326, 326, 1415, 854, -372, 2, 207, 4, 5, 6, 1877 7, 43, 44, 899, 1140, 549, 410, 230, 470, 1427, 1878 231, 550, 551, 235, 1181, 237, 1143, 681, 597, 726, 1879 1361, 1145, 246, 597, 951, 727, 952, 953, 440, 696, 1880 118, 740, 707, 1011, 804, 599, 1226, 741, 410, 696, 1881 560, 561, 906, 881, 908, 883, 705, 407, 455, 741, 1882 696, 741, 50, 1148, 459, 1074, 487, 1074, 326, 743, 1883 487, 410, 460, 37, 50, 38, -401, 47, 48, 482, 1884 520, 920, 520, 597, 503, 520, 291, 326, 520, 47, 1885 48, 1486, 1427, 965, 39, 178, 175, 176, 42, 966, 1886 8, 9, 10, 11, 12, 978, 708, 43, 44, 1101, 1887 1044, 699, 213, 969, 966, 966, 637, 8, 9, 10, 1888 11, 12, 114, 1041, 1217, 959, 213, 507, 910, 1345, 1889 576, 732, 33, 733, 804, 741, 734, 1346, -3, 738, 1890 512, 78, 1348, 741, 262, 1168, 599, 263, 741, 33, 1891 563, 326, 525, 50, 562, 50, 1183, 1353, 230, 565, 1892 36, 794, 114, 741, 685, 330, 658, 1416, 1435, 1482, 1893 1538, 898, 1341, 1413, 741, 1483, 576, 36, 564, 113, 1894 65, 332, 410, 708, 586, 50, 71, 910, 910, 1358, 1895 1359, 833, 253, 332, 410, 1092, 589, 1408, 966, 108, 1896 1388, 1389, 842, 339, 568, 114, 410, 651, 798, 705, 1897 1362, -3, 47, 48, 652, 940, 835, 213, 637, 940, 1898 940, 1236, 1237, 638, 114, 1070, 653, 899, 114, 1021, 1899 1500, 418, 654, 410, 659, 769, 770, 771, 772, 900, 1900 655, 754, 765, 766, 1212, 656, 759, 2, 207, 4, 1901 5, 6, 7, 681, 112, 437, 657, 599, 696, 696, 1902 1387, 1117, 660, 1395, 1118, 258, 1119, 43, 44, 1076, 1903 479, 332, 410, 767, 768, 114, 773, 774, 229, 1112, 1904 662, 686, 39, 72, 691, 1041, 42, 687, 50, 50, 1905 50, 487, -243, 689, 463, 43, 44, 230, 58, 235, 1906 78, 1272, 1273, 717, 1275, 728, 799, 1433, 742, 481, 1907 1279, 750, 1437, 1282, 801, 37, 812, 38, 114, 696, 1908 696, 802, -14, 597, 862, 638, 818, 332, 597, 47, 1909 48, 856, 50, 1311, 1283, 1284, 1285, 50, -15, 470, 1910 855, 1459, 882, 884, 889, 1175, 909, -422, 8, 9, 1911 10, 11, 12, -529, 50, 39, 924, 934, 547, 42, 1912 716, 867, 112, 869, 141, 142, 1093, 932, 43, 44, 1913 979, 938, 937, 51, 115, 43, 44, 944, 114, 945, 1914 33, -295, 946, 947, 178, 230, 948, 949, 8, 9, 1915 10, 11, 12, 685, 45, 910, 963, 509, 973, 59, 1916 59, 625, 47, 48, 899, 629, 440, 51, 36, 899, 1917 974, 975, 910, 915, 989, 990, 991, 992, 149, 993, 1918 33, 994, 995, 1369, 51, 1021, 1527, 1369, -410, -409, 1919 114, 1018, 1527, 59, 1058, 1064, 1081, 1082, 187, 220, 1920 894, 210, 72, 1527, 51, 1060, 1083, 1527, 36, 1084, 1921 705, 1090, 743, 1102, 410, 1041, 1100, 58, 1104, 958, 1922 47, 48, 1109, 1107, 1110, 1300, 1111, 59, 1138, 1114, 1923 59, 1159, 1394, 78, 1162, 1160, 1161, 1176, 1092, 1177, 1924 115, 1179, 681, 112, 910, 910, 1180, -9, 115, 1188, 1925 1117, 267, 272, 1118, 1193, 1119, 43, 44, 114, -445, 1926 114, 114, 696, -11, 741, 487, 1094, 326, -3, 696, 1927 696, 696, 65, 1199, 1197, 1204, 1207, 1411, 71, 1209, 1928 492, 310, 149, 1220, 1234, 1213, 1450, 705, 1218, 1222, 1929 115, 345, 1225, 1526, 210, 112, 1231, 1270, 112, 1238, 1930 141, 239, 1117, 1242, 1244, 1118, 1246, 1119, 43, 44, 1931 1247, 43, 44, 685, 78, 1041, 112, 348, 833, 187, 1932 187, 1248, 1249, 1117, 1251, 1258, 1118, 1267, 1119, 43, 1933 44, 1268, 696, 1092, 398, 267, 1322, 240, 399, 114, 1934 108, 400, 241, 51, 1274, 401, 402, 403, 1277, 1278, 1935 404, 1294, 406, 470, 213, 210, 1280, 1324, 131, 1175, 1936 132, 133, 134, 1281, 1289, 1041, 1302, 1308, 1041, 211, 1937 221, 43, 44, 310, 1310, 72, 658, 1312, 1316, 1318, 1938 1317, 59, 1321, 1499, 1326, 51, 50, 50, 1328, 1334, 1939 58, 1335, 1336, 272, 1337, 1344, 114, 114, 272, 267, 1940 267, 1347, 681, 1354, 1355, 115, 1285, 1363, 108, 1093, 1941 39, 59, 1041, 836, 42, 1364, 1365, 1041, 1371, 1108, 1942 407, 1372, 1382, 43, 44, 1383, 174, -411, 850, 1401, 1943 310, 1386, 1397, 1092, 114, 1403, 1405, 1406, 1120, 1407, 1944 1412, 865, 1120, 310, 659, 1421, 1041, 1422, 1423, 712, 1945 1339, 440, 1424, 1426, 1431, 1436, 72, 47, 48, 569, 1946 1440, 1438, 1442, 1444, 149, 1446, 439, 697, 254, 1453, 1947 78, 58, 1455, 1448, 115, 1454, 151, 78, 345, 1467, 1948 1456, 152, 598, 616, 1484, 153, 1477, 1479, 1481, 1120, 1949 68, 119, 1485, 50, 114, 1492, 1507, 621, 1508, 108, 1950 330, 621, 1521, 114, 1093, 1512, 1519, 1523, 1041, 470, 1951 1529, 1536, 1537, 1041, 775, 1175, 470, 50, 50, 777, 1952 162, 776, 1175, 1192, 68, 778, 1116, 779, 267, 78, 1953 1487, 1041, 39, 1041, 175, 176, 42, 1041, 187, 1293, 1954 1041, 161, 50, 1400, 372, 43, 44, 1539, 1041, 1094, 1955 1357, 1224, 1041, 1373, 1470, 1206, 267, 1198, 310, 310, 1956 890, 222, 267, 416, 621, 891, 1075, 912, 470, -296, 1957 112, 371, 141, 142, 1175, 1079, 8, 9, 10, 11, 1958 12, 793, 1017, 43, 44, 115, 435, 1113, 861, 477, 1959 348, 926, 1120, 1089, 1303, 935, 443, 260, 783, 0, 1960 710, 0, 784, 267, 1093, 785, 0, 0, 33, 721, 1961 0, 267, 72, 621, 722, 51, 0, 0, 0, 72, 1962 713, 0, 0, 0, 0, 0, 115, 58, 8, 9, 1963 10, 11, 12, 0, 58, 0, 36, 0, 310, 331, 1964 115, 59, 0, 310, 1094, 310, 310, 260, 350, 0, 1965 0, 0, 108, 744, 0, 0, 0, 345, 0, 0, 1966 33, 39, 0, 175, 176, 42, 519, 0, 0, 697, 1967 0, 72, 108, 0, 43, 44, 0, 405, 0, 0, 1968 0, 0, 0, 348, 0, 0, 58, 1474, 36, 1474, 1969 0, 108, 423, 39, 0, 428, 430, 42, 0, 0, 1970 161, 569, 569, 0, 0, 0, 43, 44, 1185, 310, 1971 0, 0, 1120, 0, 1120, 1120, 0, 0, 0, 621, 1972 345, 446, 0, 616, 1474, 449, 1474, 450, 0, 598, 1973 0, 598, 45, 0, 0, 0, 457, 0, 0, 0, 1974 47, 48, 68, 0, 1094, 0, 348, 471, 39, 621, 1975 175, 176, 42, 108, 621, 0, 616, 478, 0, 0, 1976 621, 43, 44, 621, 621, 430, 0, 0, 0, 0, 1977 39, 0, 175, 176, 42, 0, 1473, 0, 1473, 621, 1978 0, 267, 0, 43, 44, 0, 108, 697, 0, 348, 1979 348, 0, 0, 1120, 0, 0, 0, 697, 0, 0, 1980 8, 9, 10, 11, 12, 348, 0, 0, 697, 375, 1981 674, 115, 0, 1473, 895, 1473, 0, 0, 76, 0, 1982 0, 0, 0, 0, 1182, 1184, 1186, 0, 0, 0, 1983 0, 260, 33, 0, 0, 590, 700, 621, 921, 616, 1984 0, 618, 326, 0, 0, 713, 713, 0, 0, 0, 1985 1120, 1120, 76, 0, 623, 0, 0, 0, 623, 0, 1986 36, 0, 0, 348, 0, 0, 0, 8, 9, 10, 1987 11, 12, 345, 0, 519, 0, 744, 744, 0, 519, 1988 0, 0, 519, -297, 0, 0, 108, 0, 1451, 223, 1989 8, 9, 10, 11, 12, 0, 0, 0, 0, 33, 1990 0, 0, 0, 0, 920, 0, 597, 471, 0, 108, 1991 0, 0, 47, 48, 0, 0, 108, 0, 0, 569, 1992 0, 350, 33, 0, 0, 0, 471, 36, 621, 0, 1993 983, 0, 39, 79, 471, 598, 42, 0, 0, 0, 1994 0, 0, 0, 0, 0, 43, 44, 598, 1501, 214, 1995 36, 0, 692, 0, 0, 430, 0, 1509, 233, 0, 1996 0, 0, 0, 0, 0, 0, 0, 79, 108, 0, 1997 706, 712, 68, 0, 0, 0, 353, 0, 0, 47, 1998 48, 430, 412, 0, 0, 430, 0, 0, 39, 420, 1999 184, 185, 42, 0, 0, 0, 310, 0, 0, 0, 2000 214, 43, 44, 0, 224, 216, 697, 697, 0, 0, 2001 0, 0, 0, 0, 350, 0, 0, 0, 345, 0, 2002 0, 243, 59, 0, 0, 345, 895, 893, 895, 410, 2003 0, 0, 879, 0, 0, 47, 48, 0, 0, 0, 2004 115, 886, 214, 0, 348, 888, 0, 0, 894, 447, 2005 0, 0, 0, 921, 921, 0, 216, 0, 713, 786, 2006 0, 412, 0, 0, 115, 310, 0, 697, 697, 0, 2007 76, 0, 0, 0, 0, 76, 623, 797, 0, 0, 2008 39, 0, 184, 185, 42, 0, 0, 744, 814, 0, 2009 59, 355, 0, 43, 44, 0, 0, 0, 216, 0, 2010 0, 0, 0, 214, 0, 0, 590, 0, 0, 0, 2011 39, 590, 184, 185, 42, 0, 345, 623, 574, 186, 2012 350, 350, 0, 43, 44, 215, 578, 47, 48, 581, 2013 0, 39, 0, 184, 185, 42, 350, 621, 621, 0, 2014 0, 214, 0, 0, 43, 44, 214, 0, 0, 596, 2015 0, 597, 0, 0, 692, 310, 0, 47, 48, 216, 2016 0, 0, 1410, 348, 348, 471, 0, 0, 0, 223, 2017 893, 0, 410, 0, 0, 0, 215, 0, 47, 48, 2018 0, 59, 0, 0, 0, 79, 0, 0, 0, 412, 2019 79, 471, 0, 420, 350, 0, 0, 216, 0, 0, 2020 115, 0, 216, 925, 0, 895, 430, 0, 0, 0, 2021 895, 0, 0, 1301, 0, 0, 0, 0, 215, 921, 2022 0, 0, 0, 0, 0, 0, 0, 267, 0, 706, 2023 0, 214, 0, 0, 954, 76, 534, 535, 536, 537, 2024 538, 539, 540, 541, 542, 543, 544, 0, 0, 353, 2025 697, 0, 0, 0, 76, 0, 1066, 697, 697, 697, 2026 0, 0, 76, 0, 0, 0, 345, 0, 0, 412, 2027 545, 0, 692, 0, 0, 0, 0, 0, 0, 215, 2028 353, 0, 692, 0, 224, 623, 0, 216, 986, 0, 2029 0, 0, 0, 692, 0, 0, 0, 81, 353, 0, 2030 76, 0, 0, 997, 0, 0, 0, 272, 115, 0, 2031 39, 214, 184, 185, 42, 0, 0, 215, 0, 0, 2032 697, 0, 215, 43, 44, 0, 0, 214, 310, 0, 2033 0, 81, 0, 59, 59, 0, 0, 0, 0, 0, 2034 0, 0, 353, 621, 0, 0, 0, 115, 0, 1497, 2035 79, 410, 214, 68, 59, 0, 0, 47, 48, 0, 2036 574, 574, 0, 0, 355, 0, 0, 216, 225, 79, 2037 0, 0, 0, 59, 0, 797, 0, 79, 0, 0, 2038 0, 0, 706, 0, 0, 1072, 39, 0, 184, 185, 2039 42, 0, 0, 0, 0, 355, 621, 621, 0, 43, 2040 44, 0, 1189, 0, 272, 353, 0, 215, 216, 310, 2041 0, 1086, 0, 355, 0, 79, 0, 0, 0, 0, 2042 430, 119, 348, 348, 0, 266, 0, 0, 0, 0, 2043 59, 0, 0, 47, 48, 59, 0, 0, 0, 0, 2044 0, 0, 115, 872, 0, 0, 526, 875, 353, 353, 2045 527, 528, 529, 0, 0, 356, 0, 355, 0, 0, 2046 0, 0, 0, 0, 353, 0, 0, 0, 59, 0, 2047 0, 214, 0, 590, 530, 0, 531, 0, 532, 533, 2048 0, 0, 353, 0, 0, 0, 428, 215, 0, 0, 2049 0, 692, 692, 76, 350, 350, 0, 0, 0, 214, 2050 267, 526, 0, 0, 214, 527, 528, 529, 0, 0, 2051 0, 0, 1174, 0, 0, 0, 0, 621, 0, 76, 2052 355, 0, 353, 0, 0, 0, 0, 216, 215, 530, 2053 0, 531, 0, 532, 1292, 0, 0, 0, 0, 0, 2054 0, 0, 115, 348, 0, 0, 0, 0, 0, 81, 2055 0, 0, 692, 692, 81, 216, 0, 353, 0, 0, 2056 216, 0, 0, 355, 355, 115, 0, 0, 59, 0, 2057 0, 0, 115, 214, 115, 0, 115, 0, 574, 355, 2058 0, 0, 0, 0, 0, 0, 0, 214, 0, 0, 2059 0, 59, 0, 0, 0, 0, 0, 355, 59, 0, 2060 353, 0, 0, 0, 0, 0, 1498, 0, 79, 0, 2061 353, 115, 0, 115, 0, 0, 223, 0, 0, 0, 2062 0, 353, 0, 706, 115, 88, 0, 0, 0, 216, 2063 1498, 1498, 0, 0, 79, 0, 0, 355, 0, 0, 2064 310, 0, 0, 216, 0, 0, 0, 215, 225, 0, 2065 59, 0, 0, 0, 1356, 1498, 0, 0, 0, 88, 2066 0, 0, 0, 0, 0, 1271, 0, 0, 0, 0, 2067 0, 0, 355, 0, 0, 215, 0, 0, 214, 0, 2068 215, 76, 0, 0, 0, 68, 0, 0, 126, 129, 2069 130, 412, 0, 0, 0, 0, 226, 0, 692, 0, 2070 706, 0, 0, 353, 119, 0, 0, 0, 0, 0, 2071 353, 0, 0, 0, 81, 355, 0, 0, 0, 0, 2072 0, 0, 0, 0, 0, 355, 0, 0, 356, 0, 2073 0, 224, 0, 81, 216, 692, 355, 0, 0, 0, 2074 0, 81, 692, 692, 692, 0, 0, 0, 177, 215, 2075 0, 0, 0, 350, 350, 0, 0, 0, 0, 356, 2076 255, 0, 256, 215, 0, 1130, 1174, 0, 0, 0, 2077 0, 0, 0, 0, 0, 0, 0, 356, 0, 81, 2078 0, 1141, 0, 363, 0, 0, 0, 0, 0, 0, 2079 0, 0, 0, 0, 0, 0, 79, 177, 0, 119, 2080 177, 0, 0, 0, 0, 692, 0, 0, 0, 1471, 2081 0, 1475, 0, 0, 0, 0, 0, 0, 355, 353, 2082 353, 356, 353, 353, 0, 355, 0, 0, 0, 0, 1822 50, 112, 97, 419, 77, 147, 388, 670, 389, 114, 1823 71, 390, 1020, 148, 391, 149, 797, 392, 722, 837, 1824 393, 394, 740, 353, 1183, 401, 767, 597, 1184, 257, 1825 1185, 112, 112, 814, 50, 1370, 97, 706, 77, 52, 1826 141, 711, 250, 1160, 71, 50, 460, 1022, 592, 796, 1827 584, 50, 1133, 158, 70, 789, 33, 616, 430, 50, 1828 790, 620, 374, 375, 50, 33, 189, 50, 1052, 212, 1829 50, 150, 222, 52, 898, 788, 1188, 208, 215, 791, 1830 656, 388, 272, 389, 1131, 1132, 390, 1346, 70, 391, 1831 334, 1278, 392, 464, 466, 393, 394, 33, 151, 665, 1832 801, 33, 400, 785, 804, 33, 50, 669, 786, 50, 1833 416, 152, 660, 662, 1432, 122, 50, 1096, 33, 58, 1834 115, 33, 33, 198, 112, 821, 123, 1163, 1164, 824, 1835 402, -240, -240, 688, 111, 827, 827, 242, 558, 402, 1836 147, 33, 273, 1452, 165, 50, 282, 158, 148, 465, 1837 149, 827, 225, 58, 787, 226, 1147, 50, 230, 364, 1838 232, 1138, 1279, 1223, 1142, 96, 235, 514, 166, 410, 1839 800, 402, 559, 470, 199, 402, 807, 798, 910, 589, 1840 50, 50, 710, 158, 689, 695, 206, 1139, 1432, 216, 1841 805, 1148, 589, 850, 854, 402, 402, 50, 827, 96, 1842 170, 724, 396, 140, -240, 50, 150, 158, 785, 460, 1843 146, 907, 1218, 786, 50, 147, 96, 50, 64, 433, 1844 965, 142, 1179, 148, 112, 149, 1292, 432, 460, 185, 1845 144, 941, 96, 151, 112, 96, 460, 112, 106, 106, 1846 243, 50, 112, 97, 654, 77, 152, 452, 1462, 789, 1847 77, 71, 64, 964, 790, 50, 50, 1346, 158, 787, 1848 567, 153, 50, 771, 1346, 112, 568, 368, 503, 952, 1849 577, 168, 106, 791, 1139, 506, 597, 396, 1521, 776, 1850 52, 1077, 1133, 369, 828, 828, 1063, 1389, 1390, 225, 1851 197, 397, 353, 539, 540, 70, -10, 785, 1436, 1532, 1852 828, 1314, 786, 1317, 1319, 1228, 1536, 33, 106, -295, 1853 96, 1343, 210, 797, 1522, 33, 728, 1346, 1389, 1390, 1854 823, 584, 96, 50, 968, 364, 584, 378, 658, 539, 1855 936, 33, 408, 1229, 663, 1133, 431, 1020, 33, 869, 1856 50, 50, 1537, 379, 541, 387, 185, 828, 787, 160, 1857 542, 543, 208, 789, 33, 427, 237, 50, 790, 1391, 1858 58, 50, 210, 800, 539, 435, 397, 1131, 1132, 490, 1859 96, 629, 1022, 814, 716, 454, 829, 791, 718, 1099, 1860 720, 402, 96, 721, 240, 353, 725, 1112, 688, 402, 1861 1401, 846, 1399, 678, 717, 50, 1436, 364, 381, 1079, 1862 1060, 1436, 210, 1116, 110, 589, 96, 1186, 465, 1478, 1863 1119, 160, 589, 77, 382, 50, 649, 43, 44, 1080, 1864 468, 50, 1436, 242, 324, 225, 1362, 230, 402, 1436, 1865 698, 513, 77, 1345, 491, 1308, 492, 493, 885, 689, 1866 77, 437, 383, 1094, 1507, 733, 1509, 385, 353, 1212, 1867 1192, 679, 1192, 1065, 449, 1309, 112, 680, 384, 64, 1868 1416, 50, 210, 386, 461, 116, 1073, 1133, 460, 50, 1869 1217, 364, 208, 50, 1417, 97, 945, 77, 50, 106, 1870 597, 112, 882, 71, 965, 1470, 112, 1471, 96, 1183, 1871 649, 353, 353, 1184, 210, 1185, 696, 1376, 253, 210, 1872 1427, 963, 697, 425, 39, 650, 591, 353, 42, 1254, 1873 1255, -523, 52, 225, 1503, 156, 1049, 43, 44, 112, 1874 712, 174, 548, 549, 112, 110, 713, 70, 242, 569, 1875 838, 402, 1050, 742, 743, 744, 1118, 1121, 43, 44, 1876 1188, 1463, 1519, 45, 2, 202, 4, 5, 6, 7, 1877 727, 47, 48, 848, 353, 1464, 728, 550, 551, 425, 1878 185, 1421, 1422, 817, 858, 1292, 738, 818, 251, 248, 1879 39, 252, 171, 172, 42, 1491, 667, 156, 688, 650, 1880 1145, 1496, 819, 43, 44, -12, 820, 210, 50, 111, 1881 50, 39, 58, 171, 172, 42, 1146, 678, 963, 160, 1882 1049, 681, 1517, 1468, 43, 44, 1189, 1524, 317, 50, 1883 1468, 819, 37, 863, 38, 1059, 1181, 332, -448, 728, 1884 432, 278, 1190, 572, 50, 402, 498, 461, 112, 689, 1885 865, 1130, 1154, 778, 43, 44, 728, 50, 96, 112, 1886 50, 112, 513, 591, -449, -112, 461, 513, 1145, -112, 1887 513, 50, 734, 1156, 461, 1189, 268, 739, 1299, 1301, 1888 507, 584, 370, 1518, 1284, 421, 839, 210, 628, 424, 1889 270, 1288, 77, 975, 1300, 1302, 429, -3, 871, 271, 1890 112, 325, 728, 208, 568, 840, 77, 51, 113, 686, 1891 110, 64, 1332, 50, 50, 39, 1333, 208, 1349, 42, 1892 1028, 112, 678, 43, 44, 112, 326, 210, 43, 44, 1893 930, 106, 678, 678, 1075, 486, 931, 327, 487, 897, 1894 931, 51, 924, 678, 472, 424, 328, 110, 478, 137, 1895 443, 1208, 145, 981, 693, 363, 353, 568, 51, -296, 1896 43, 44, 47, 48, 1418, 329, 8, 9, 10, 11, 1897 12, 181, 317, 784, 205, 591, 110, 51, 137, 138, 1898 1429, 330, 1339, 367, 1123, 156, 444, 688, 728, 43, 1899 44, 445, 847, 1340, 849, 376, 935, 1358, 33, 728, 1900 1342, 560, 50, 402, 1210, 1350, 728, 208, 1214, 47, 1901 48, 728, 113, 380, 50, 544, 545, 576, 398, 861, 1902 113, 581, 174, 256, 261, 1419, 36, 886, 868, 589, 1903 400, 1416, 870, 881, 417, 47, 48, 418, 689, 617, 1904 614, 440, 1437, 621, 618, 546, 547, 210, 728, 1485, 1905 497, 301, 145, 1489, 1429, 1486, 629, 473, 353, 353, 1906 113, 337, 112, 1006, 205, 1542, 450, 77, 976, 451, 1907 715, 568, -401, 71, 282, 210, 552, 553, 784, 591, 1908 210, 388, 501, 389, 506, 163, 390, 181, 181, 391, 1909 517, 1176, 392, 555, 50, 393, 394, 112, 554, 1143, 1910 556, 317, 317, 557, 256, 39, 461, 171, 172, 42, 1911 331, 50, 51, 934, 931, 1041, 578, 70, 43, 44, 1912 461, 242, 324, 402, 205, -3, 678, 678, 317, 642, 1913 1066, 324, 402, 689, 1335, 1355, 1356, 112, 210, 643, 1914 116, 778, 644, 629, 363, 653, 897, 163, 51, 112, 1915 1389, 1390, 210, 112, 1224, 1225, 261, 209, 1410, 931, 1916 539, 261, 256, 256, 686, 646, 228, 784, 113, 478, 1917 647, 317, 1097, 478, 749, 750, 751, 752, 322, 591, 1918 648, 432, 58, 317, 652, 317, 678, 678, 317, 877, 1919 317, 317, 410, 645, 402, 301, 470, 324, 402, 503, 1920 112, 1203, 745, 746, 1043, 747, 748, 209, 301, 655, 1921 1006, 77, 247, 50, 50, 50, -373, 71, -244, 512, 1922 976, 798, 324, 589, 561, 698, 859, 1271, 1272, 1273, 1923 145, 701, 1031, 8, 9, 10, 11, 12, 703, 426, 1924 113, 1067, 210, 112, 337, 753, 754, 209, 590, 608, 1925 705, 714, 317, 50, 729, 50, 730, 50, -14, 1042, 1926 779, 70, 774, 613, 781, 33, 792, 613, -15, 112, 1927 1082, 835, 897, 836, 1041, 842, 591, 864, 396, 866, 1928 878, 64, 1090, -422, 697, -527, 1090, 1295, 50, 890, 1929 911, 816, 813, 36, 1530, 426, 39, 581, 171, 172, 1930 42, 106, 181, 822, 896, 903, 830, 209, 112, 43, 1931 44, 905, 908, 909, 897, 915, 917, 918, 110, 845, 1932 137, 138, 256, 919, 301, 301, 58, 920, 256, 921, 1933 613, 43, 44, 1090, 928, 163, 983, 938, 1023, 209, 1934 939, 353, 353, 1158, 209, 940, 954, 955, 659, 661, 1935 956, 301, 957, 958, 686, 874, 959, 707, 1296, 1032, 1936 106, 1162, 708, 1043, 960, 112, -410, 397, 256, -409, 1937 1025, 586, 1029, 1053, 897, 897, 256, 1054, 613, 1055, 1938 51, 478, 1056, 1064, 1074, 694, 1078, 1076, 1006, 1110, 1939 877, 1081, 77, 678, 113, 923, 1084, 1134, 71, 1135, 1940 1136, 678, 678, 678, 1137, 1149, 301, 50, 113, 1150, 1941 1152, 301, 1153, 301, 301, 1161, 210, 1166, 1042, -9, 1942 1182, -445, 1042, 337, 728, 64, -3, -11, 649, 1170, 1943 512, 1172, 209, 1066, 1178, 512, 1199, 1036, 512, 1211, 1944 1201, 1090, 70, 110, 486, 106, 112, 1204, 112, 112, 1945 1087, 322, 322, 1088, 1209, 1089, 43, 44, 1216, 944, 1946 1213, 1219, 1226, 110, 1230, 137, 138, 561, 561, 1232, 1947 1234, 1235, -297, 1240, 353, 301, 43, 44, 322, 8, 1948 9, 10, 11, 12, 1222, 613, 337, 1236, 77, 608, 1949 761, 1237, 1238, 1247, 71, 590, 39, 590, 171, 172, 1950 42, 1256, 1414, 1006, 833, 1009, 1257, 58, 1262, 43, 1951 44, 33, 209, 50, 1265, 613, 1266, 650, 1268, 1269, 1952 613, 322, 608, 1277, 1282, 1289, 613, 1290, 209, 613, 1953 613, 1291, 1066, 112, 1041, 367, 139, 1297, 1348, 36, 1954 322, 1305, 1307, 686, 1067, 613, 388, 256, 389, 1303, 1955 1310, 390, 209, 1311, 391, 1315, 1033, 392, 256, 1006, 1956 393, 394, 1006, 1312, 1320, 1322, 1328, 1329, 1330, 1331, 1957 877, 678, 1042, 1338, 1341, 1351, 215, 208, 113, 1090, 1958 1352, 1090, 1090, 1273, 1367, 478, 1068, 317, 50, 50, 1959 1360, 1361, 613, 887, 608, 1373, 1374, 112, 112, 1383, 1960 694, 694, 322, 58, 1384, -411, 64, 110, 1502, 897, 1961 1387, 1398, 1403, 1006, 1087, 1405, 1407, 1088, 1006, 1089, 1962 43, 44, 1408, 1043, 1423, 897, 106, 1415, 266, 1409, 1963 432, 1424, 813, 337, 1425, 1428, 1353, 112, 686, 1426, 1964 1066, 1433, 815, 1067, 1333, 1442, 1444, 586, 1006, 911, 1965 1438, 1446, 1151, 911, 911, 1440, 1448, 1456, 77, 1450, 1966 1458, 1479, 1457, 106, 71, 77, 1090, 1481, 1484, 1510, 1967 1469, 71, 209, 561, 1487, 1155, 1157, 1159, 1042, 1488, 1968 147, 1495, 613, 1511, 948, 1516, 206, 216, 148, 590, 1969 149, 1523, 1525, 1512, 1527, 50, 112, 877, 897, 897, 1970 209, 590, 461, 1533, 1540, 209, 112, 1541, 1348, 1165, 1971 755, 1006, 756, 759, 757, 1348, 1006, 758, 77, 1086, 1972 50, 50, 106, 158, 71, 1281, 1490, 1402, 1543, 1215, 1973 1090, 1090, 1375, 1354, 1472, 1006, 874, 1006, 446, 431, 1974 1171, 1006, 396, 1034, 1006, 1180, 50, 211, 364, 1366, 1975 301, 1067, 1006, 1193, 899, 1062, 1006, 1083, 110, 841, 1976 137, 138, 106, 209, 982, 892, 1298, 649, 1348, 483, 1977 1454, 43, 44, 58, 337, 1061, 906, 209, 691, 113, 1978 58, 1037, 0, 0, 1306, 0, 763, 39, 764, 178, 1979 179, 42, 0, 887, 887, 0, 765, 211, 694, 0, 1980 43, 44, 265, 0, 0, 1473, 106, 1477, 0, 113, 1981 301, 0, 210, 67, 117, 0, 2, 202, 4, 5, 1982 6, 7, 0, 337, 0, 0, 588, 0, 589, 1504, 1983 1009, 397, 0, 58, 47, 48, 0, 211, 862, 1513, 1984 0, -298, 1506, 0, 1508, 0, 0, 67, 8, 9, 1985 10, 11, 12, 0, 0, 337, 650, 0, 0, 0, 1986 0, 0, 0, 874, 157, 210, 0, 209, 0, 0, 1987 106, 0, 461, 0, 0, 630, 613, 613, 1371, 461, 1988 33, 0, 1371, 217, 37, 468, 38, 0, 1538, 1068, 1989 1539, 0, 106, 0, 301, 0, 0, 211, 127, 106, 1990 128, 129, 130, 1546, 1547, 0, 0, 0, 36, 0, 1991 0, 43, 44, 0, 447, 0, 0, 0, 249, 8, 1992 9, 10, 11, 12, 8, 9, 10, 11, 12, 211, 1993 0, 0, 461, 0, 211, 0, 0, 322, 0, 0, 1994 1037, 0, 1037, 937, 1037, 1359, 0, 0, 0, 0, 1995 0, 33, 106, 942, 943, 159, 33, 0, 323, 113, 1996 0, 1476, 0, 1476, 953, 887, 249, 342, 190, 0, 1997 0, 213, 0, 0, 223, 256, 0, 75, 0, 36, 1998 0, 0, 815, 0, 36, 700, 0, 518, 1068, 1453, 1999 709, 519, 520, 521, 395, 0, 0, 0, 1476, 0, 2000 1476, 1388, 0, 0, 1396, 0, 0, 0, 0, 0, 2001 415, 75, 337, 420, 422, 522, 0, 523, 157, 524, 2002 525, 0, 211, 560, 0, 402, 0, 0, 886, 0, 2003 589, 47, 48, 0, 0, 0, 47, 48, 0, 438, 2004 0, 209, 0, 441, 404, 442, 0, 218, 448, 159, 2005 1413, 412, 0, 0, 67, 1435, 0, 0, 39, 462, 2006 1439, 365, 42, 0, 0, 0, 0, 0, 0, 469, 2007 0, 43, 44, 0, 0, 301, 0, 422, 0, 0, 2008 1260, 1261, 0, 1263, 0, 159, 113, 0, 0, 1267, 2009 1461, 0, 1270, 0, 1037, 0, 1068, 782, 0, 589, 2010 0, 0, 211, 0, 0, 47, 48, 613, 0, 159, 2011 0, 39, 113, 171, 172, 42, 0, 404, 0, 0, 2012 0, 434, 0, 0, 43, 44, 0, 1475, 0, 1475, 2013 0, 345, 834, 0, 2, 202, 4, 5, 6, 7, 2014 0, 0, 211, 0, 0, 0, 249, 1128, 1129, 0, 2015 582, 0, 0, 0, 0, 0, 610, 0, 0, 613, 2016 613, 0, 0, 0, 1475, 224, 1475, 0, 0, 615, 2017 0, 301, 0, 615, 0, 0, 566, 1531, 39, 0, 2018 178, 179, 42, 1531, 0, 570, 0, 0, 573, 0, 2019 0, 43, 44, 0, 1531, 317, 0, 0, 1531, 0, 2020 1037, 0, 37, 439, 38, 895, 0, 1174, 1175, 483, 2021 0, 113, 0, 0, 0, 0, 0, 1035, 75, 402, 2022 0, 0, 462, 75, 0, 47, 48, 365, 0, 0, 2023 0, 0, 0, 0, 0, 0, 342, 0, 1036, 0, 2024 0, 462, 0, 0, 0, 0, 404, 0, 0, 462, 2025 412, 0, 0, 0, 261, 113, 0, 39, 0, 178, 2026 179, 42, 211, 0, 0, 0, 673, 0, 0, 422, 2027 43, 44, 1395, 0, 0, 39, 256, 178, 179, 42, 2028 0, 0, 0, 0, 687, 0, 67, 0, 43, 44, 2029 211, 0, 613, 0, 0, 211, 180, 0, 422, 365, 2030 78, 0, 422, 0, 47, 48, 0, 261, 0, 0, 2031 0, 0, 0, 0, 1035, 0, 402, 0, 110, 113, 2032 218, 0, 47, 48, 0, 1087, 0, 404, 1088, 342, 2033 1089, 43, 44, 518, 78, 0, 0, 519, 520, 521, 2034 630, 113, 0, 0, 110, 0, 986, 0, 113, 0, 2035 113, 1087, 113, 211, 1088, 0, 1089, 43, 44, 1316, 2036 0, 522, 0, 523, 0, 524, 1280, 211, 0, 0, 2037 219, 0, 59, 59, 766, 0, 0, 0, 0, 0, 2038 0, 1051, 1501, 0, 0, 1318, 75, 113, 0, 113, 2039 0, 615, 777, 0, 0, 0, 0, 0, 0, 0, 2040 345, 113, 0, 794, 0, 75, 59, 1501, 1501, 0, 2041 0, 0, 0, 75, 1321, 0, 0, 0, 301, 566, 2042 566, 582, 1323, 1324, 1325, 0, 582, 630, 0, 80, 2043 345, 0, 615, 1501, 0, 342, 342, 209, 0, 59, 2044 0, 0, 59, 0, 0, 0, 0, 0, 345, 0, 2045 75, 342, 0, 0, 347, 0, 0, 211, 0, 0, 2046 0, 0, 0, 80, 8, 9, 10, 11, 12, 0, 2047 673, 0, 39, 0, 178, 179, 42, 0, 0, 0, 2048 0, 462, 0, 0, 0, 43, 44, 0, 0, 0, 2049 209, 0, 0, 345, 0, 462, 33, 0, 342, 220, 2050 0, 852, 0, 0, 0, 856, 0, 891, 0, 0, 2051 422, 1500, 0, 402, 0, 0, 0, 0, 0, 47, 2052 48, 0, 0, 0, 36, 0, 340, 986, 0, 39, 2053 0, 178, 179, 42, 39, 0, 178, 179, 42, 687, 2054 0, 78, 43, 44, 0, 322, 78, 43, 44, 0, 2055 0, 0, 0, 1196, 0, 0, 345, 0, 0, 0, 2056 0, 8, 9, 10, 11, 12, 0, 0, 588, 0, 2057 589, 0, 0, 255, 0, 673, 47, 48, 0, 0, 2058 0, 47, 48, 348, 0, 673, 673, 0, 615, 59, 2059 0, 951, 1451, 33, 0, 0, 673, 0, 0, 345, 2060 345, 0, 0, 0, 0, 0, 962, 0, 0, 0, 2061 0, 0, 0, 59, 0, 345, 0, 0, 0, 0, 2062 0, 36, 0, 0, 0, 566, 39, 0, 178, 179, 2063 42, 211, 0, 0, 345, 0, 0, 0, 0, 43, 2064 44, 0, 0, 219, 0, 75, 0, 0, 0, 1259, 2065 0, 0, 0, 0, 0, 0, 67, 0, 0, 75, 2066 0, 0, 345, 0, 0, 1035, 0, 402, 0, 0, 2067 80, 0, 0, 47, 48, 80, 0, 0, 0, 0, 2068 777, 0, 526, 527, 528, 529, 530, 531, 532, 533, 2069 534, 535, 536, 0, 0, 0, 0, 0, 0, 0, 2070 1058, 0, 0, 345, 0, 0, 0, 0, 0, 78, 2071 0, 0, 0, 0, 422, 117, 537, 0, 0, 0, 2072 0, 0, 0, 347, 0, 0, 0, 0, 78, 687, 2073 0, 0, 0, 0, 0, 0, 78, 0, 0, 345, 2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 345, 2075 345, 0, 0, 347, 0, 218, 0, 0, 0, 0, 2076 345, 582, 0, 0, 8, 9, 10, 11, 12, 0, 2077 0, 347, 220, 78, 420, 0, 0, 0, 0, 673, 2078 673, 0, 342, 342, 0, 0, 0, 0, 0, 0, 2079 0, 0, 0, 0, 0, 340, 33, 1101, 0, 0, 2080 67, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2081 0, 0, 0, 1114, 0, 0, 347, 0, 0, 0, 2082 75, 0, 86, 0, 36, 173, 0, 0, 0, 39, 2083 0, 178, 179, 42, 33, 0, 0, 0, 80, 673, 2084 673, 0, 43, 44, 345, 59, 0, 0, 0, 0, 2085 1187, 0, 348, 0, 0, 0, 86, 80, 0, 0, 2086 0, 0, 36, 0, 0, 80, 0, 39, 180, 0, 2087 124, 42, 173, 0, 0, 173, 47, 48, 0, 347, 2088 43, 44, 348, 0, 0, 0, 0, 0, 340, 0, 2089 0, 0, 221, 345, 8, 9, 10, 11, 12, 0, 2090 348, 404, 80, 0, 0, 0, 45, 0, 0, 0, 2091 0, 0, 0, 0, 47, 48, 0, 0, 687, 0, 2092 0, 0, 347, 347, 0, 234, 33, 0, 0, 0, 2093 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, 2094 244, 0, 245, 345, 345, 348, 345, 345, 0, 0, 2095 0, 340, 0, 0, 36, 0, 0, 347, 0, 39, 2096 0, 178, 179, 42, 75, 0, 0, 0, 78, 0, 2097 0, 0, 43, 44, 0, 0, 355, 0, 0, 0, 2098 173, 67, 78, 0, 0, 347, 0, 0, 0, 0, 2099 0, 0, 0, 0, 340, 340, 0, 0, 1500, 0, 2100 402, 0, 0, 345, 345, 0, 47, 48, 348, 0, 2101 340, 673, 0, 687, 0, 0, 0, 0, 117, 0, 2102 0, 0, 0, 0, 0, 0, 347, 211, 173, 406, 2103 407, 0, 0, 0, 411, 0, 413, 414, 0, 0, 2104 0, 404, 0, 0, 0, 0, 673, 0, 0, 0, 2105 0, 348, 348, 0, 673, 673, 673, 340, 0, 0, 2106 0, 0, 347, 86, 0, 342, 342, 348, 86, 0, 2107 0, 0, 347, 347, 0, 0, 0, 1347, 219, 0, 2108 211, 0, 345, 347, 0, 0, 348, 0, 0, 0, 2109 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 2110 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 2111 0, 80, 0, 0, 348, 0, 0, 117, 0, 0, 2112 0, 0, 0, 173, 0, 0, 0, 173, 0, 0, 2113 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 2114 0, 0, 0, 78, 0, 75, 0, 0, 1364, 0, 2115 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 2116 0, 1400, 33, 0, 0, 221, 0, 347, 0, 0, 2117 0, 0, 0, 0, 0, 345, 0, 345, 0, 0, 2083 2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2084 76, 0, 395, 0, 0, 0, 1503, 0, 1505, 0, 2085 0, 0, 414, 415, 215, 0, 0, 419, 0, 421, 2086 422, 0, 412, 0, 0, 0, 0, 214, 0, 0, 2087 0, 0, 0, 0, 350, 0, 0, 88, 0, 0, 2088 353, 353, 88, 0, 356, 0, 0, 0, 0, 0, 2089 1534, 0, 1535, 0, 0, 0, 0, 0, 0, 119, 2090 0, 1227, 0, 0, 0, 1542, 1543, 0, 177, 0, 2119 36, 348, 0, 0, 0, 39, 0, 0, 342, 42, 2120 0, 348, 348, 0, 0, 0, 0, 220, 43, 44, 2121 345, 0, 348, 0, 0, 59, 347, 0, 345, 345, 2122 345, 0, 0, 0, 673, 117, 0, 0, 0, 345, 2123 345, 86, 0, 0, 693, 0, 0, 0, 0, 340, 2124 651, 75, 47, 48, 0, 355, 0, 1347, 0, 0, 2125 86, 0, 0, 0, 1347, 164, 0, 169, 86, 0, 2126 175, 176, 177, 0, 0, 0, 347, 347, 0, 347, 2127 347, 0, 80, 0, 59, 355, 0, 229, 0, 8, 2128 9, 10, 11, 12, 0, 0, 0, 78, 238, 239, 2129 0, 0, 0, 355, 0, 86, 348, 0, 0, 0, 2130 0, 0, 0, 0, 0, 0, 0, 1347, 0, 0, 2131 0, 33, 0, 0, 1526, 0, 0, 0, 0, 0, 2132 0, 0, 0, 0, 0, 218, 347, 347, 0, 0, 2133 0, 0, 0, 0, 0, 0, 0, 0, 355, 36, 2134 0, 340, 340, 0, 39, 348, 178, 179, 42, 0, 2135 0, 0, 0, 0, 0, 0, 0, 43, 44, 59, 2136 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 2137 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 2138 0, 0, 399, 255, 0, 0, 0, 0, 345, 0, 2139 173, 47, 48, 0, 0, 348, 348, 0, 348, 348, 2140 0, 355, 0, 173, 0, 347, 768, 769, 0, 0, 2141 0, 75, 0, 0, 0, 0, 80, 0, 75, 0, 2091 2142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2092 0, 0, 1174, 216, 0, 0, 0, 356, 356, 1174, 2093 0, 0, 0, 0, 355, 355, 0, 355, 355, 0, 2143 0, 0, 0, 799, 0, 0, 802, 803, 0, 806, 2144 0, 808, 809, 0, 355, 355, 810, 811, 0, 0, 2145 0, 0, 0, 0, 0, 348, 348, 0, 0, 0, 2146 355, 0, 0, 0, 0, 0, 0, 0, 78, 0, 2147 0, 75, 0, 0, 0, 0, 0, 0, 0, 355, 2148 0, 0, 0, 0, 851, 0, 0, 0, 855, 0, 2149 86, 0, 0, 0, 0, 0, 0, 0, 347, 0, 2150 347, 0, 0, 0, 86, 0, 0, 355, 0, 0, 2151 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2152 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2153 25, 26, 27, 347, 348, 0, 580, 0, 587, 0, 2154 59, 347, 347, 347, 0, 33, 0, 0, 355, 611, 2155 612, 0, 347, 347, 0, 0, 0, 0, 0, 0, 2156 0, 0, 0, 0, 78, 0, 0, 0, 0, 274, 2157 275, 0, 276, 36, 0, 0, 0, 59, 0, 0, 2158 0, 0, 0, 0, 355, 0, 0, 0, 0, 0, 2159 0, 0, 0, 0, 355, 355, 0, 80, 277, 0, 2160 221, 0, 0, 0, 278, 355, 0, 0, 279, 173, 2161 0, 280, 281, 282, 283, 284, 285, 43, 44, 0, 2162 286, 287, 0, 0, 340, 340, 0, 348, 0, 348, 2163 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 2164 0, 0, 0, 288, 0, 370, 0, 0, 219, 0, 2165 0, 47, 48, 290, 291, 292, 293, 0, 0, 0, 2166 0, 0, 348, 0, 760, 86, 0, 0, 0, 0, 2167 348, 348, 348, 0, 0, 0, 59, 0, 0, 0, 2168 0, 348, 348, 0, 0, 347, 0, 0, 0, 355, 2169 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171 0, 347, 0, 0, 0, 0, 0, 0, 0, 59, 2172 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2173 0, 0, 0, 0, 78, 0, 0, 0, 355, 0, 2174 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 2175 0, 0, 0, 0, 0, 0, 173, 340, 0, 173, 2176 173, 173, 0, 0, 0, 0, 0, 0, 0, 0, 2177 0, 0, 59, 0, 0, 0, 0, 220, 0, 0, 2178 1100, 0, 0, 0, 59, 0, 0, 0, 355, 355, 2179 0, 355, 355, 0, 78, 0, 1113, 0, 0, 1117, 2180 1120, 0, 0, 0, 0, 0, 59, 0, 0, 86, 2181 0, 0, 0, 59, 348, 8, 9, 10, 11, 12, 2182 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2183 23, 24, 25, 26, 27, -299, 0, 0, 0, 0, 2184 348, 0, 0, 0, 0, 0, 0, 33, 355, 355, 2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2186 0, 0, 0, 80, 0, 0, 59, 0, 0, 0, 2187 80, 1177, 0, 0, 879, 36, 880, 0, 0, 0, 2188 0, 0, 0, 883, 884, 0, -299, 0, 889, 1194, 2189 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2190 0, 0, 0, 0, 0, 0, 900, 0, 0, 0, 2191 0, 904, 0, 0, 0, 0, 0, 0, 0, 0, 2192 0, 0, 0, 80, 0, 0, 0, 355, 0, 0, 2193 0, 0, 587, 0, 173, 0, 0, 0, 0, 0, 2194 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 2195 274, 275, 1117, 276, 0, 0, 0, 0, 0, 0, 2196 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 2198 0, 0, 0, 0, 0, 278, 0, 0, 0, 279, 2199 86, 0, 280, 281, 282, 283, 284, 285, 43, 44, 2200 0, 286, 287, 0, 0, 0, 0, 162, 0, 0, 2201 0, 262, 1283, 0, 0, 0, 0, 0, 0, 0, 2202 355, 0, 355, 0, 288, 971, 370, 972, 973, 974, 2203 0, 1293, 47, 48, 290, 291, 292, 293, 162, 0, 2204 0, 0, 0, 0, 0, 0, 1024, 0, 361, 173, 2205 0, 366, 0, 0, 0, 355, 0, 0, 0, 0, 2206 0, 0, 1030, 355, 355, 355, 0, 0, 0, 0, 2207 0, 0, 0, 0, 355, 355, 0, 0, 0, 0, 2208 0, 0, 0, 0, 0, 1057, 86, 0, 0, 0, 2209 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 2210 0, 0, 0, 0, 0, 173, 0, 0, 173, 0, 2211 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 2212 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 2213 0, 1363, 1095, 0, 173, 0, 0, 1098, 0, 0, 2214 0, 0, 1103, 1104, 0, 0, 0, 1106, 366, 1107, 2215 1108, 0, 0, 1111, 0, 162, 0, 0, 0, 173, 2216 0, 0, 1126, 0, 173, 0, 0, 0, 0, 0, 2217 221, 0, 0, 0, 0, 0, 0, 0, 1140, 1141, 2218 0, 0, 515, 0, 0, 0, 0, 0, 0, 0, 2219 0, 0, 0, 0, 173, 162, 0, 0, 0, 0, 2220 0, 0, 0, 0, 0, 0, 0, 355, 0, 1167, 2221 0, 0, 1169, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2223 0, 585, 0, 355, 0, 0, 609, 0, 0, 0, 2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2225 0, 0, 0, 0, 0, 0, 86, 173, 0, 0, 2226 0, 0, 173, 86, 0, 1202, 0, 0, 0, 0, 2227 0, 1206, 1207, 0, 0, 0, 0, 0, 0, 0, 2228 0, 173, 0, 173, 0, 0, 1220, 173, 0, 0, 2229 173, 1227, 0, 0, 0, 0, 1231, 0, 173, 0, 2230 0, 0, 173, 0, 0, 0, 0, 0, 0, 1239, 2231 0, 162, 162, 0, 0, 0, 86, 361, 0, 0, 2232 0, 0, 0, 0, 0, 1246, 0, 1248, 1249, 1250, 2233 1251, 0, 0, 0, 0, 0, 0, 0, 162, 0, 2234 0, 0, 1258, 0, 1140, 0, 0, 0, 0, 0, 2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236 0, 0, 0, 0, 0, 690, 0, 0, 0, 0, 2237 0, 0, 0, 0, 1285, 1286, 0, 207, 0, 0, 2238 0, 162, 0, 0, 0, 0, 227, 0, 231, 0, 2239 233, 0, 0, 515, 0, 515, 236, 0, 515, 0, 2240 162, 515, 0, 0, 0, 0, 0, 0, 0, 0, 2241 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2242 0, 0, 0, 0, 0, 0, 0, 207, 0, 231, 2243 233, 236, 0, 0, 0, 0, 0, 0, 0, 0, 2244 0, 0, 0, 0, 1326, 1327, 0, 0, 0, 0, 2245 0, 0, 0, 0, 1337, 0, 0, 0, 0, 0, 2246 0, 0, 162, 0, 0, 0, 0, 207, 0, 0, 2247 0, 0, 0, 361, 0, 0, 780, 0, 0, 0, 2248 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2249 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2250 26, 27, 585, 0, 28, 29, 30, 585, 0, 0, 2251 0, 0, 0, 0, 33, 0, 361, 361, 0, 0, 2252 0, 1379, 0, 1380, 1381, 1382, 0, 207, 0, 231, 2253 233, 236, 361, 0, 0, 1386, 0, 0, 0, 0, 2254 0, 0, 36, 1397, 0, 0, 169, 39, 0, 40, 2255 41, 42, 0, 0, 0, 0, 0, 0, 0, 207, 2256 43, 44, 0, 0, 207, 515, 0, 0, 0, 0, 2257 0, 0, 0, 0, 0, 0, 1420, 0, 0, 361, 2258 0, 888, 0, 0, 0, 0, 45, 0, 46, 0, 2259 0, 0, 0, 0, 47, 48, 8, 9, 10, 11, 2260 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2261 22, 23, 24, 25, 26, 27, -300, 126, 0, 0, 2262 690, 1459, 1460, 0, 0, 0, 0, 0, 33, 0, 2263 0, 0, 0, 207, 1465, 0, 0, 0, 154, 0, 2264 0, 1465, 0, 0, 0, 0, 0, 0, 0, 0, 2265 0, 1483, 207, 0, 0, 0, 36, 231, 233, 0, 2266 0, 0, 0, 0, 0, 236, 0, -300, 0, 0, 2267 0, 609, 126, 0, 1499, 0, 0, 0, 1505, 0, 2268 0, 0, 0, 241, 0, 0, 0, 126, 0, 126, 2269 0, 0, 0, 246, 0, 0, 0, 0, 0, 0, 2270 0, 0, 0, 0, 0, 207, 0, 1528, 0, 1529, 2271 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 2272 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 2273 207, 0, 207, 0, 0, 0, 0, 0, 1544, 1545, 2274 0, 0, 0, 0, 0, 0, 1548, 1549, 207, 0, 2275 0, 207, 207, 0, 0, 0, 0, 0, 207, 0, 2276 377, 361, 0, 0, 0, 0, 515, 0, 0, 0, 2277 0, 0, 207, 0, 126, 0, 126, 126, 0, 207, 2278 0, 126, 409, 126, 126, 0, 0, 0, 0, 0, 2279 0, 0, 0, 0, 0, 0, 423, 162, 0, 0, 2280 0, 0, 0, 0, 0, 428, 0, 0, 0, 0, 2281 690, 0, 0, 0, 0, 436, 0, 0, 0, 0, 2282 0, 961, 0, 0, 8, 9, 10, 11, 12, 0, 2283 0, 0, 0, 0, 453, 0, 0, 0, 0, 463, 2284 0, 0, 585, 0, 0, 0, 0, 126, 0, 0, 2285 0, 0, 471, 0, 274, 275, 33, 276, 0, 0, 2286 485, 0, 489, 361, 361, 0, 0, 0, 0, 0, 2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2288 0, 516, 0, 277, 36, 0, 0, 0, 0, 278, 2289 0, 0, 207, 279, 0, 0, 280, 281, 282, 283, 2290 284, 285, 43, 44, 0, 286, 287, 0, 0, 0, 2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2292 207, 0, 0, 575, 0, 207, 0, 579, 288, 0, 2293 370, 0, 0, 0, 0, 0, 336, 48, 290, 291, 2294 292, 293, 0, 0, 0, 0, 515, 0, 0, 0, 2295 0, 0, 0, 0, 0, 622, 0, 0, 0, 623, 2296 624, 0, 625, 0, 0, 0, 0, 0, 0, 636, 2297 637, 0, 638, 639, 0, 640, 0, 641, 0, 0, 2298 0, 0, 0, 207, 0, 0, 0, 126, 0, 0, 2299 0, 0, 0, 0, 575, 0, 0, 207, 0, 690, 2300 0, 0, 657, 0, 0, 0, 0, 0, 0, 0, 2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2302 0, 0, 0, 0, 0, 0, 668, 0, 0, 0, 2303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2304 333, 356, 0, 0, 0, 0, 0, 0, 0, 0, 2305 0, 682, 0, 0, 0, 0, 0, 685, 0, 0, 2306 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 2307 0, 0, 405, 515, 0, 0, 207, 0, 0, 405, 2308 0, 0, 0, 0, 0, 0, 0, 207, 0, 274, 2309 275, 0, 276, 0, 690, 0, 0, 0, 0, 0, 2310 0, 0, 726, 0, 207, 0, 0, 0, 0, 0, 2311 0, 0, 0, 0, 0, 737, 0, 0, 277, 0, 2312 0, 0, 0, 0, 626, 0, 137, 138, 279, 0, 2313 0, 280, 281, 282, 283, 284, 285, 43, 44, 0, 2314 286, 287, 0, 0, 0, 405, 361, 361, 0, 0, 2315 0, 0, 762, 126, 126, 0, 0, 0, 0, 0, 2316 0, 772, 0, 288, 773, 627, 0, 628, 371, 0, 2317 0, 47, 48, 290, 291, 292, 293, 0, 0, 0, 2318 126, 793, 0, 126, 126, 0, 126, 0, 126, 126, 2319 0, 0, 0, 126, 126, 0, 0, 0, 0, 0, 2320 0, 207, 0, 0, 405, 0, 0, 0, 0, 0, 2321 0, 0, 0, 405, 571, 0, 405, 574, 0, 832, 2322 0, 0, 0, 0, 356, 0, 0, 0, 601, 0, 2323 0, 126, 0, 0, 0, 126, 0, 0, 0, 0, 2324 0, 214, 0, 0, 0, 0, 0, 619, 0, 0, 2325 0, 0, 0, 0, 0, 0, 867, 0, 0, 0, 2326 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 2327 0, 0, 207, 0, 405, 0, 0, 0, 405, 361, 2328 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 2329 0, 0, 0, 0, 214, 0, 0, 0, 0, 901, 2330 902, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2331 356, 916, 0, 0, 0, 0, 0, 0, 0, 0, 2332 0, 0, 0, 0, 0, 929, 0, 0, 0, 0, 2333 933, 0, 0, 0, 0, 0, 0, 515, 0, 515, 2334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2335 0, 0, 0, 0, 0, 405, 0, 0, 356, 0, 2336 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, 2337 0, 0, 0, 0, 515, 0, 515, 0, 0, 0, 2338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2339 966, 0, 0, 0, 0, 0, 0, 967, 0, 0, 2340 0, 0, 0, 356, 0, 162, 0, 0, 0, 0, 2341 969, 0, 970, 0, 0, 0, 0, 0, 0, 0, 2342 0, 0, 0, 0, 0, 980, 0, 0, 0, 0, 2343 0, 984, 0, 0, 0, 0, 0, 0, 0, 0, 2344 0, 0, 1026, 0, 0, 0, 1027, 405, 405, 315, 2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 2346 0, 0, 0, 0, 0, 775, 356, 0, 0, 0, 2347 373, 373, 0, 0, 0, 601, 0, 601, 601, 0, 2348 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 2349 0, 0, 0, 0, 812, 356, 0, 207, 0, 0, 2350 356, 0, 0, 0, 0, 0, 0, 0, 0, 356, 2351 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2352 0, 0, 0, 0, 0, 356, 0, 126, 0, 405, 2353 853, 0, 0, 405, 857, 0, 0, 0, 1105, 0, 2354 0, 0, 860, 126, 0, 0, 126, 126, 0, 0, 2355 0, 0, 0, 0, 0, 0, 0, 0, 467, 0, 2356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357 0, 0, 356, 601, 8, 9, 10, 11, 12, 13, 2358 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2359 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2360 0, 0, 0, 0, 1168, 0, 33, 872, 0, 0, 2361 0, 0, 0, 356, 0, 0, 0, 0, 126, 0, 2362 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2363 0, 126, 0, 0, 36, 0, 126, 126, 0, 0, 2364 0, 40, 41, 0, 0, 0, 1198, 0, 0, 0, 2365 0, 1200, 0, 405, 0, 0, 0, 207, 0, 0, 2366 0, 1205, 0, 0, 0, 0, 0, 0, 0, 601, 2367 0, 601, 0, 0, 0, 0, 373, 0, 0, 0, 2368 719, 601, 0, 0, 873, 0, 47, 48, 0, 0, 2369 0, 1233, 0, 0, 0, 0, 0, 0, 0, 126, 2370 0, 0, 0, 0, 1241, 0, 0, 0, 1242, 0, 2371 207, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 2372 0, 0, 0, 0, 0, 0, 0, 1252, 1253, 0, 2373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2374 0, 0, 0, 0, 0, 1264, 0, 0, 0, 315, 2375 0, 0, 0, 0, 356, 0, 0, 0, 0, 126, 2376 0, 405, 0, 0, 0, 0, 0, 0, 684, 0, 2377 0, 0, 0, 601, 601, 0, 0, 0, 126, 0, 2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2094 2380 0, 0, 0, 356, 0, 0, 0, 0, 0, 0, 2095 0, 353, 0, 0, 0, 79, 0, 0, 0, 0, 2096 0, 356, 177, 0, 0, 0, 0, 0, 0, 0, 2097 0, 0, 81, 0, 0, 0, 226, 0, 0, 0, 2098 0, 1174, 0, 0, 0, 168, 0, 173, 1522, 0, 2099 179, 180, 181, 223, 183, 355, 355, 0, 81, 0, 2100 0, 356, 0, 0, 0, 0, 0, 0, 234, 0, 2101 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 2102 249, 250, 0, 0, 0, 0, 353, 0, 353, 0, 2103 0, 0, 0, 0, 0, 0, 356, 177, 0, 0, 2104 0, 0, 88, 215, 0, 0, 0, 0, 0, 0, 2105 0, 0, 0, 0, 177, 214, 363, 0, 177, 0, 2106 0, 88, 0, 353, 0, 0, 355, 0, 0, 88, 2107 353, 353, 353, 0, 0, 0, 0, 0, 0, 356, 2108 0, 353, 353, 0, 0, 0, 0, 363, 0, 356, 2109 0, 0, 0, 0, 76, 225, 0, 0, 0, 0, 2110 356, 0, 0, 0, 0, 363, 0, 88, 224, 0, 2111 0, 216, 8, 9, 10, 11, 12, 0, 0, 0, 2112 0, 128, 128, 128, 0, 0, 0, 0, 79, 0, 2113 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 2114 0, 355, 0, 355, 33, 0, 0, 0, 0, 363, 2115 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 2116 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2117 0, 0, 36, 0, 0, 0, 0, 39, 355, 184, 2118 185, 42, 356, 0, 0, 355, 355, 355, 0, 356, 2119 43, 44, 0, 128, 0, 128, 355, 355, 0, 0, 2120 0, 0, 353, 0, 0, 0, 0, 0, 216, 79, 2121 0, 0, 363, 0, 0, 0, 596, 0, 597, 0, 2122 276, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2123 0, 215, 788, 789, 0, 0, 0, 0, 0, 0, 2124 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 2125 76, 0, 0, 0, 0, 363, 363, 76, 0, 819, 2126 0, 0, 822, 823, 0, 826, 0, 828, 829, 0, 2127 0, 363, 830, 831, 588, 128, 595, 0, 0, 0, 2128 0, 0, 0, 128, 0, 128, 128, 619, 620, 363, 2129 128, 0, 128, 128, 0, 0, 0, 0, 356, 356, 2130 88, 356, 356, 0, 0, 0, 177, 0, 0, 76, 2131 0, 0, 0, 0, 0, 0, 0, 355, 0, 81, 2132 0, 177, 0, 0, 0, 0, 88, 0, 215, 363, 2133 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 2136 356, 0, 128, 0, 363, 79, 0, 0, 0, 0, 2137 0, 0, 79, 0, 1, 2, 207, 4, 5, 6, 2381 0, 723, 0, 0, 1313, 0, 0, 0, 0, 0, 2382 0, 732, 0, 0, 0, 405, 1102, 723, 0, 0, 2383 723, 0, 0, 0, 0, 356, 207, 500, 0, 502, 2384 505, 405, 1115, 741, 601, 601, 1122, 0, 0, 508, 2385 509, 0, 0, 0, 0, 0, 356, 356, 0, 0, 2386 0, 0, 0, 0, 502, 502, 0, 0, 0, 0, 2387 0, 0, 0, 770, 0, 0, 0, 0, 126, 0, 2388 338, 0, 0, 0, 732, 0, 0, 0, 0, 0, 2389 0, 1368, 0, 1369, 0, 0, 0, 0, 0, 0, 2390 502, 0, 0, 0, 0, 0, 0, 0, 1377, 0, 2391 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2392 405, 0, 405, 0, 405, 1385, 0, 0, 0, 405, 2393 831, 0, 0, 0, 0, 502, 0, 0, 373, 0, 2394 0, 0, 0, 1404, 1406, 601, 0, 0, 0, 0, 2395 0, 0, 0, 0, 1411, 0, 0, 0, 0, 1412, 2396 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 2397 0, 0, 0, 0, 0, 0, 0, 0, 274, 275, 2398 0, 276, 0, 1434, 0, 0, 0, 0, 0, 0, 2399 0, 0, 356, 1441, 0, 0, 1443, 0, 1445, 1447, 2400 1449, 0, 0, 893, 0, 0, 0, 277, 0, 0, 2401 0, 0, 0, 278, 0, 0, 0, 279, 0, 723, 2402 280, 281, 282, 283, 284, 285, 43, 44, 0, 286, 2403 287, 732, 0, 922, 0, 0, 925, 0, 0, 1480, 2404 0, 1482, 932, 0, 1205, 0, 0, 0, 0, 0, 2405 0, 0, 288, 0, 370, 0, 0, 371, 0, 1494, 2406 47, 48, 290, 291, 292, 293, 0, 0, 0, 405, 2407 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 2408 0, 0, 949, 950, 0, 0, 0, 356, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 0, 338, 0, 2410 0, 0, 0, 0, 502, 502, 502, 502, 502, 502, 2411 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 2412 502, 502, 0, 0, 0, 0, 0, 0, 0, 0, 2413 0, 0, 0, 0, 0, 0, 0, 978, 0, 356, 2414 356, 373, 0, 0, 201, 2, 202, 4, 5, 6, 2138 2415 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2139 2416 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2140 27, 0, 0, 28, 29, 30, 31, 363, 956, 957, 2141 32, 283, 284, 33, 285, 0, 0, 363, 0, 0, 2142 0, 0, 0, 226, 79, 0, 0, 0, 363, 0, 2143 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144 286, 36, 0, 37, 0, 38, 287, 0, 40, 41, 2145 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2146 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2147 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 2148 0, 0, 0, 283, 284, 297, 285, 298, 88, 0, 2149 0, 0, 81, 47, 48, 299, 300, 301, 302, 0, 2150 0, 0, 0, 0, 0, 356, 0, 356, -134, 0, 2151 363, 0, 286, 0, 0, 0, 0, 363, 287, 0, 2152 0, 0, 288, 0, 0, 289, 290, 291, 292, 293, 2153 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2154 0, 0, 356, 0, 0, 0, 0, 0, 0, 356, 2155 356, 356, 177, 0, 0, 0, 0, 297, 0, 378, 2156 356, 356, 379, 0, 1077, 47, 48, 299, 300, 301, 2157 302, 0, 0, 81, 465, 2, 207, 4, 5, 6, 2417 27, 0, 338, 28, 29, 30, 405, 1365, 0, 0, 2418 405, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2420 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, 2421 0, 36, 0, 37, 0, 38, 39, 0, 203, 41, 2422 42, 338, 0, 0, 0, 0, 0, 0, 373, 43, 2423 44, 0, 0, 925, 0, 1124, 723, 0, 8, 9, 2424 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 2425 0, 0, 0, 0, 0, 45, 1109, 204, 0, 0, 2426 0, 0, 0, 47, 48, 0, 502, 1127, 274, 275, 2427 33, 276, 356, 0, 0, 0, 0, 0, 0, 0, 2428 0, 0, 0, 0, 0, 0, 0, 373, 0, 1144, 2429 0, 0, 0, 502, 0, 0, 0, 277, 36, 0, 2430 0, 0, 0, 278, 925, 925, 0, 279, 0, 0, 2431 280, 281, 282, 283, 284, 285, 43, 44, 0, 286, 2432 287, 0, 0, 502, 0, 0, 0, 0, 0, 0, 2433 1173, 0, 274, 275, 0, 276, 0, 0, 0, 0, 2434 0, 0, 288, 0, 370, 0, 0, 0, 0, 0, 2435 1125, 48, 290, 291, 292, 293, 0, 0, 0, 0, 2436 0, 277, 405, 0, 0, 0, 0, 278, 0, 0, 2437 0, 279, 0, 0, 280, 281, 282, 283, 284, 285, 2438 43, 44, 0, 286, 287, 0, 0, 405, 405, 925, 2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2440 0, 0, 0, 0, 0, 0, 288, 0, 370, 0, 2441 831, 923, 0, 405, 47, 48, 290, 291, 292, 293, 2442 0, 0, 0, 0, 0, 0, 0, 0, 1244, 1245, 2443 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2444 202, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2445 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2446 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2447 31, 0, 0, 502, 32, 274, 275, 33, 276, 0, 2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2450 0, 0, 0, 0, 277, 36, 0, 37, 0, 38, 2451 278, 502, 40, 41, 279, 0, 0, 280, 281, 282, 2452 283, 284, 285, 43, 44, 0, 286, 287, 0, 0, 2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 2455 502, 289, 0, 0, 0, 0, 0, 47, 48, 290, 2456 291, 292, 293, 0, 0, 0, 0, 0, 0, 0, 2457 0, 0, -134, 0, 0, 0, 0, 0, 0, 0, 2458 0, 0, 0, 1357, 0, 723, 0, 0, 0, 0, 2459 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 2460 0, 0, 0, 0, 0, 0, 1, 2, 202, 4, 2461 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2462 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2463 25, 26, 27, 0, 0, 28, 29, 30, 31, 0, 2464 0, 502, 32, 274, 275, 33, 987, 988, 0, 989, 2465 0, 0, 990, 991, 992, 993, 994, 995, 996, 997, 2466 0, 0, 0, 998, 0, 0, 0, 999, 1000, 0, 2467 35, 0, 277, 36, 0, 37, 0, 38, 1001, 0, 2468 1002, 1003, 1004, 0, 0, 280, 281, 282, 283, 284, 2469 285, 43, 44, 0, 286, 287, 0, 0, 0, 0, 2470 0, 502, 502, 0, 0, 0, 0, 0, 0, 0, 2471 0, 0, 0, 0, 0, 0, 0, 288, 0, 289, 2472 0, 0, 168, 0, 0, 47, 48, 290, 291, 292, 2473 293, 0, 0, 0, 0, 1005, 0, 0, 0, 0, 2474 -134, 0, 0, 1, 2, 202, 4, 5, 6, 7, 2475 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2476 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2477 0, 0, 28, 29, 30, 31, 0, 0, 0, 32, 2478 274, 275, 33, 276, 0, 0, 0, 0, 0, 0, 2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 2481 36, 0, 37, 0, 38, 278, 315, 40, 41, 279, 2482 0, 0, 280, 281, 282, 283, 284, 285, 43, 44, 2483 0, 286, 287, 0, 0, 0, 0, 0, 0, 0, 2484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2485 0, 0, 0, 0, 288, 0, 289, 0, 0, 0, 2486 0, 0, 47, 48, 290, 291, 292, 293, 0, 0, 2487 0, 0, 0, 0, 0, 2, 202, 4, 5, 6, 2158 2488 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2159 2489 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2160 2490 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2161 0, 0, 356, 33, 0, 0, 0, 0, 0, 0, 2162 0, 0, 0, 913, 0, 914, 363, 363, 0, 363, 2163 363, 0, 917, 918, 0, 0, 0, 923, 0, 0, 2164 0, 36, 0, 37, 0, 38, 0, 88, 40, 41, 2165 929, 0, 0, 0, 0, 933, 0, 0, 0, 0, 2166 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 2491 0, 274, 275, 33, 276, 8, 9, 10, 11, 12, 2492 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2493 23, 24, 25, 26, 27, 0, 502, 28, 29, 30, 2494 277, 36, 0, 37, 0, 38, 278, 33, 40, 41, 2495 279, 0, 502, 280, 281, 282, 283, 284, 285, 43, 2496 44, 0, 286, 287, 0, 0, 0, 0, 0, 0, 2497 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 2498 0, 0, 40, 41, 0, 288, 0, 335, 0, 0, 2499 0, 0, 731, 336, 48, 290, 291, 292, 293, 2, 2500 202, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2501 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2502 23, 24, 25, 26, 27, 502, 502, 28, 29, 30, 2503 0, 0, 0, 0, 0, 274, 275, 33, 276, 8, 2504 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2505 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2506 0, 28, 29, 30, 277, 36, 0, 37, 0, 38, 2507 278, 33, 40, 41, 279, 0, 0, 280, 281, 282, 2508 283, 284, 285, 43, 44, 0, 286, 287, 0, 0, 2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2510 0, 0, 0, 0, 0, 0, 203, 41, 0, 288, 2511 0, 335, 0, 0, 0, 0, 731, 47, 48, 290, 2512 291, 292, 293, 2, 202, 4, 5, 6, 7, 8, 2513 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2514 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2515 0, 28, 29, 30, 0, 0, 0, 0, 0, 274, 2516 275, 33, 276, 0, 0, 0, 0, 0, 0, 0, 2167 2517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2168 0, 356, 595, 0, 0, 0, 0, 363, 363, 0, 2169 -3, 0, 128, 0, 0, 128, 128, 0, 128, 0, 2170 128, 128, 0, 0, 0, 128, 128, 0, 0, 0, 2171 0, 0, 0, 0, 177, 0, 0, 177, 177, 177, 2172 0, 0, 0, 0, 1203, 0, 0, 0, 0, 81, 2173 0, 0, 0, 0, 0, 0, 81, 166, 0, 8, 2174 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 2175 0, 0, 0, 0, 219, 0, 0, 0, 363, 8, 2176 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 2177 0, 33, 0, 0, 0, 1006, 0, 1007, 1008, 1009, 2178 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 2179 0, 33, 0, 0, 0, 0, 1059, 0, 0, 36, 2180 226, 166, 0, 0, 39, 273, 184, 185, 42, 0, 2181 1065, 0, 0, 0, 0, 0, 0, 43, 44, 36, 2182 88, 0, 0, 0, 39, 0, 184, 185, 42, 0, 2183 0, 0, 0, 363, 166, 363, 0, 43, 44, 0, 2184 0, 128, 128, 893, 369, 410, 0, 374, 0, 1085, 2185 0, 47, 48, 0, 0, 0, 0, 1295, 0, 0, 2186 0, 0, 0, 1497, 0, 410, 0, 0, 0, 0, 2187 363, 47, 48, 0, 0, 0, 0, 363, 363, 363, 2188 0, 0, 0, 0, 177, 0, 0, 0, 363, 363, 2189 0, 0, 1115, 0, 0, 0, 166, 1125, 0, 0, 2190 0, 88, 1128, 0, 0, 0, 0, 1132, 219, 0, 2191 0, 0, 1134, 0, 1135, 1136, 0, 0, 1139, 0, 2192 0, 0, 0, 0, 0, 0, 166, 1151, 0, 0, 2518 0, 0, 0, 0, 0, 0, 0, 0, 277, 36, 2519 0, 37, 0, 38, 278, 0, 40, 41, 279, 0, 2520 0, 280, 281, 282, 283, 284, 285, 43, 44, 0, 2521 286, 287, 0, 0, 0, 0, 0, 0, 0, 0, 2193 2522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2194 363, 0, 0, 1165, 1166, 0, 0, 0, 212, 0, 2195 0, 374, 0, 0, 0, 0, 0, 232, 166, 236, 2196 0, 238, 0, 0, 0, 0, 0, 0, 247, 0, 2197 0, 0, 0, 0, 1194, 0, 0, 1196, 0, 0, 2198 0, 0, 0, 523, 177, 0, 0, 0, 0, 0, 2199 0, 0, 128, 0, 0, 0, 166, 128, 0, 212, 2200 0, 236, 238, 247, 0, 0, 0, 0, 0, 363, 2201 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 2202 0, 1211, 0, 0, 0, 0, 0, 1215, 1216, 0, 2203 0, 593, 0, 0, 177, 0, 617, 177, 0, 0, 2204 0, 212, 33, 0, 0, 0, 1232, 0, 0, 0, 2205 0, 1239, 0, 0, 0, 177, 1243, 88, 0, 0, 2206 0, 0, 0, 0, 88, 0, 0, 1250, 0, 0, 2207 36, 0, 0, 0, 0, 39, 0, 184, 185, 42, 2208 1257, 177, 1259, 1260, 1261, 1262, 177, 0, 43, 44, 2209 0, 0, 0, 0, 0, 0, 0, 1269, 0, 1165, 2210 0, 0, 212, 173, 236, 238, 247, 0, 0, 0, 2211 0, 166, 166, 0, 186, 177, 88, 369, 0, 0, 2212 0, 0, 47, 48, 0, 0, 0, 0, 0, 0, 2213 0, 1297, 1298, 0, 0, 0, 0, 0, 523, 0, 2214 212, 0, 0, 0, 0, 212, 0, 0, 0, 0, 2215 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 2216 0, 0, 0, 0, 0, 0, 709, 0, 0, 0, 2217 0, 0, 0, 0, 0, 0, 0, 177, 0, 166, 2218 0, 0, 177, 0, 0, 1332, 1333, 0, 0, 0, 2219 0, 523, 0, 523, 0, 1343, 523, 0, 166, 523, 2220 177, 0, 177, 0, 0, 0, 177, 0, 0, 177, 2221 369, 212, 0, 0, 0, 0, 0, 177, 0, 0, 2222 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 2223 212, 0, 0, 0, 0, 236, 238, 0, 0, 0, 2224 0, 0, 0, 247, 0, 0, 0, 0, 0, 0, 2225 0, 0, 0, 0, 0, 0, 0, 1378, 0, 1379, 2226 1380, 1381, 166, 0, 0, 0, 0, 0, 0, 0, 2227 0, 1385, 0, 369, 0, 0, 800, 0, 0, 1396, 2228 0, 0, 0, 0, 158, 212, 0, 0, 0, 0, 2229 128, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2230 0, 0, 593, 212, 1417, 1418, 0, 593, 212, 0, 2231 212, 0, 0, 0, 0, 0, 369, 369, 0, 0, 2232 0, 0, 0, 0, 33, 0, 212, 0, 0, 212, 2233 212, 252, 369, 0, 0, 0, 0, 212, 0, 0, 2234 0, 257, 0, 0, 0, 0, 0, 0, 0, 1457, 2235 1458, 212, 36, 0, 0, 0, 0, 39, 212, 184, 2236 185, 42, 1463, 0, 523, 0, 0, 0, 0, 1463, 2237 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 2238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2239 369, 0, 922, 0, 0, 0, 266, 0, 0, 0, 2240 0, 0, 1496, 0, 47, 48, 1502, 0, 0, 0, 2241 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2242 0, 0, 0, 0, 0, 709, 0, 0, 0, 0, 2243 0, 0, 0, 417, 1524, 0, 1525, 0, 0, 0, 2244 0, 0, 0, 0, 0, 0, 0, 431, 0, 0, 2245 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 2246 0, 0, 0, 0, 1540, 1541, 444, 0, 0, 0, 2247 212, 0, 1544, 1545, 0, 0, 0, 0, 0, 0, 2248 0, 0, 0, 617, 0, 0, 0, 0, 0, 0, 2249 0, 462, 0, 0, 0, 0, 472, 0, 212, 0, 2250 0, 0, 0, 212, 0, 0, 0, 0, 0, 480, 2251 0, 0, 0, 0, 0, 491, 0, 495, 0, 0, 2252 506, 0, 508, 511, 0, 0, 0, 0, 0, 0, 2253 0, 0, 514, 515, 0, 0, 524, 0, 0, 0, 2254 0, 0, 0, 0, 0, 0, 0, 508, 508, 0, 2255 0, 0, 0, 0, 0, 0, 283, 284, 0, 285, 2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2257 0, 369, 212, 0, 0, 0, 0, 583, 709, 0, 2258 0, 587, 508, 0, 0, 286, 212, 0, 0, 0, 2259 0, 287, 0, 523, 0, 288, 0, 0, 289, 290, 2260 291, 292, 293, 294, 43, 44, 0, 295, 296, 630, 2261 0, 0, 0, 631, 632, 0, 633, 508, 166, 0, 2262 0, 0, 0, 644, 645, 0, 646, 647, 0, 648, 2263 297, 649, 378, 0, 0, 0, 0, 0, 47, 48, 2264 299, 300, 301, 302, 0, 0, 0, 0, 583, 0, 2265 0, 780, 0, 0, 0, 0, 664, 0, 0, 0, 2266 0, 0, 0, 0, 0, 0, 212, 0, 0, 593, 2267 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 2268 675, 283, 284, 0, 285, 0, 0, 0, 0, 0, 2269 369, 369, 0, 0, 212, 0, 0, 0, 0, 0, 2270 0, 0, 0, 0, 0, 0, 701, 0, 0, 0, 2271 286, 0, 704, 0, 0, 0, 634, 462, 141, 142, 2272 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2273 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2275 0, 0, 0, 523, 739, 297, 0, 635, 0, 636, 2276 379, 0, 0, 47, 48, 299, 300, 301, 302, 757, 2277 0, 0, 0, 0, 996, 0, 0, 8, 9, 10, 2278 11, 12, 0, 0, 0, 0, 508, 508, 508, 508, 2279 508, 508, 508, 508, 508, 508, 508, 508, 508, 508, 2280 508, 508, 508, 508, 0, 212, 782, 283, 284, 33, 2281 285, 0, 0, 0, 0, 792, 0, 0, 0, 709, 2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2283 0, 0, 0, 0, 212, 813, 286, 36, 0, 0, 2284 0, 0, 287, 0, 0, 0, 288, 0, 0, 289, 2285 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2286 219, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2287 0, 0, 0, 852, 0, 0, 0, 212, 0, 0, 2288 0, 297, 0, 378, 0, 0, 0, 0, 0, 344, 2289 48, 299, 300, 301, 302, 0, 709, 0, 0, 0, 2290 0, 0, 0, 0, 0, 0, 0, 0, 0, 885, 2291 0, 0, 0, 0, 0, 0, 0, 892, 0, 0, 2292 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2294 0, 0, 0, 0, 0, 0, 0, 0, 252, 369, 2295 369, 0, 212, 0, 0, 0, 0, 219, 0, 930, 2296 931, 0, 0, 0, 0, 0, 212, 8, 9, 10, 2297 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2298 21, 22, 23, 24, 25, 26, 27, 508, 0, 0, 2299 0, 964, 0, 0, 0, 0, 968, 0, 0, 33, 2300 0, 0, 0, 341, 364, 0, 0, 0, 0, 0, 2301 0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 2302 0, 0, 0, 0, 0, 0, 1149, 36, 0, 8, 2303 9, 10, 11, 12, 0, 0, 413, 0, 0, 0, 2304 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, 2305 0, 0, 0, 0, 212, 0, 1001, 0, 0, 283, 2306 284, 33, 285, 1002, 0, 0, 0, 0, 0, 0, 2307 369, 0, 0, 0, 0, 0, 1004, 0, 1005, 0, 2308 0, 0, 0, 0, 0, 0, 0, 0, 286, 36, 2309 0, 1015, 0, 0, 287, 0, 0, 1019, 288, 0, 2310 0, 289, 290, 291, 292, 293, 294, 43, 44, 1062, 2311 295, 296, 1063, 0, 0, 413, 0, 0, 0, 0, 2312 0, 0, 0, 0, 0, 0, 0, 523, 0, 523, 2313 0, 508, 0, 297, 0, 378, 0, 0, 0, 0, 2314 0, 1150, 48, 299, 300, 301, 302, 0, 0, 0, 2315 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 2316 0, 0, 0, 0, 523, 0, 523, 0, 0, 0, 2317 0, 0, 413, 0, 0, 0, 508, 0, 0, 0, 2318 413, 579, 324, 413, 582, 0, 0, 0, 0, 0, 2319 0, 364, 346, 166, 0, 609, 0, 0, 0, 0, 2320 0, 0, 0, 381, 381, 0, 0, 0, 508, 0, 2321 0, 0, 0, 0, 627, 0, 0, 0, 0, 1133, 2322 508, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2323 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2324 26, 27, 0, 413, 28, 29, 30, 413, 0, 0, 2325 0, 0, 0, 0, 33, 0, 0, 0, 0, 508, 2326 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2327 0, 0, 0, 0, 324, 0, 0, 364, 0, 0, 2328 0, 0, 36, 0, 0, 1195, 0, 112, 0, 40, 2329 41, 0, 0, 286, 0, 0, 0, 0, 476, 287, 2330 43, 44, 0, 288, 0, 0, 289, 290, 291, 292, 2331 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2332 1208, 0, 0, 413, 0, 1210, 364, 0, 46, 0, 2333 0, 0, 0, 1214, 47, 48, 0, 0, 297, 0, 2334 378, 508, 0, 0, 0, 751, 47, 48, 299, 300, 2335 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 2336 0, 0, 0, 0, 0, 0, 413, 1245, 0, 0, 2337 364, 0, 0, 0, 0, 0, 0, 0, 1252, 0, 2338 0, 1253, 0, 1254, 0, 0, 0, 0, 0, 0, 2339 0, 0, 0, 0, 0, 0, 0, 0, 1263, 1264, 2340 508, 508, 212, 0, 0, 0, 0, 0, 0, 0, 2341 0, 0, 0, 381, 413, 413, 0, 0, 1276, 0, 2342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2343 0, 0, 795, 364, 0, 0, 283, 284, 0, 285, 2344 0, 0, 609, 0, 609, 609, 0, 0, 0, 0, 2345 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 2346 0, 832, 364, 0, 1315, 286, 0, 364, 0, 0, 2347 0, 287, 1319, 0, 0, 288, 364, 364, 289, 290, 2348 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2349 0, 0, 364, 0, 0, 0, 0, 413, 873, 0, 2350 0, 413, 876, 0, 0, 0, 703, 0, 878, 0, 2351 297, 0, 378, 0, 0, 958, 0, 0, 47, 48, 2352 299, 300, 301, 302, 0, 0, 0, 413, 0, 0, 2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2354 0, 0, 1366, 0, 1367, 0, 736, 0, 0, 0, 2355 364, 609, 0, 0, 0, 0, 0, 0, 752, 0, 2356 1376, 0, 1377, 0, 736, 0, 0, 736, 0, 0, 2357 0, 0, 0, 0, 0, 0, 0, 1384, 0, 0, 2358 761, 0, 0, 0, 0, 364, 0, 0, 0, 413, 2359 413, 0, 1402, 1404, 0, 0, 0, 0, 0, 0, 2360 0, 0, 0, 1409, 0, 0, 1214, 0, 508, 0, 2361 790, 0, 0, 0, 0, 0, 0, 346, 0, 0, 2362 0, 752, 0, 0, 0, 508, 0, 0, 1432, 0, 2363 0, 0, 413, 0, 0, 0, 0, 1439, 0, 0, 2364 1441, 0, 1443, 1445, 1447, 0, 0, 0, 609, 0, 2365 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2366 609, 0, 0, 0, 0, 0, 0, 851, 0, 0, 2367 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 2368 0, 0, 0, 1478, 0, 1480, 0, 1214, 0, 0, 2369 0, 0, 0, 0, 0, 0, 0, 508, 508, 0, 2370 0, 0, 0, 1491, 2, 207, 4, 5, 6, 7, 2371 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2372 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2373 0, 364, 28, 29, 30, 0, 0, 0, 364, 413, 2374 0, 413, 33, 0, 0, 413, 0, 0, 0, 0, 2375 0, 927, 0, 0, 0, 0, 0, 0, 0, 0, 2376 0, 0, 736, 0, 0, 0, 609, 609, 0, 0, 2377 36, 0, 37, 752, 38, 950, 0, 40, 41, 0, 2378 0, 0, 0, 0, 0, 960, 0, 0, 0, 0, 2379 0, 967, 0, 0, 0, 0, 0, 0, 0, 0, 2380 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2381 0, 0, 0, 0, 0, -407, 671, 0, 0, 413, 2382 1131, 0, 47, 48, 0, 0, 0, 0, 0, 364, 2383 0, 984, 985, 0, 0, 413, 1142, 0, 609, 609, 2384 1147, 0, 0, 0, 0, 0, 0, 346, 0, 0, 2385 364, 364, 0, 0, 0, 0, 0, 0, 0, 0, 2386 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2387 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2388 27, 0, 0, 28, 29, 30, 1013, 0, 0, 0, 2389 381, 0, 0, 33, 678, 0, 0, 0, 0, 0, 2390 0, 283, 284, 0, 285, 0, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 0, 413, 0, 413, 346, 2392 0, 36, 0, 413, 0, 0, 346, 0, 40, 41, 2393 286, 0, 609, 0, 0, 0, 287, 0, 0, 0, 2394 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2395 44, 0, 295, 296, 0, 413, 1228, 0, 0, 0, 2396 0, 0, 0, 0, 0, 0, 324, 679, 0, 0, 2397 0, 680, 0, 47, 48, 297, 0, 378, 0, 364, 2398 0, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2399 0, 0, 381, 0, 0, 0, 0, 960, 283, 284, 2400 736, 285, 1023, 0, 1024, 0, 0, 1025, 1026, 1027, 2401 1028, 1029, 1030, 1031, 1032, 0, 0, 1516, 1033, 0, 2402 1137, 0, 1034, 1035, 0, 35, 0, 286, 0, 0, 2403 0, 1152, 0, 1036, 0, 175, 176, 1039, 0, 0, 2404 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2405 296, 381, 0, 1169, 0, 0, 364, 0, 0, 0, 2406 0, 0, 0, 0, 0, 0, 0, 0, 960, 960, 2407 0, 0, 297, 0, 378, 0, 0, 172, 0, 0, 2408 47, 48, 299, 300, 301, 302, 283, 284, 0, 285, 2409 1040, 0, 0, 0, 1200, -134, 0, 0, 0, 0, 2410 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 2411 364, 0, 0, 0, 0, 286, 0, 0, 0, 0, 2412 0, 287, 0, 0, 0, 288, 0, 0, 289, 290, 2413 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2414 0, 0, 0, 0, 0, 0, 0, 0, 960, 0, 2415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2416 505, 0, 378, 0, 0, 0, 0, 851, 47, 48, 2417 299, 300, 301, 302, 0, 0, 0, 0, 0, 0, 2418 0, 0, 1255, 1256, 0, 0, 1, 2, 207, 4, 2523 0, 0, 0, 288, 0, 335, 0, 0, 0, 0, 2524 0, 336, 48, 290, 291, 292, 293, 2, 202, 4, 2419 2525 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2420 2526 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2421 25, 26, 27, 0, 0, 28, 29, 30, 31, 0, 2422 0, 0, 32, 283, 284, 33, 1022, 1023, 0, 1024, 2423 364, 0, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 2424 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 0, 2425 35, 0, 286, 36, 0, 37, 0, 38, 1036, 0, 2426 1037, 1038, 1039, 0, 0, 289, 290, 291, 292, 293, 2427 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429 0, 0, 0, 0, 0, 0, 0, 297, 0, 298, 2430 0, 0, 172, 0, 0, 47, 48, 299, 300, 301, 2431 302, 0, 0, 0, 0, 1040, 0, 0, 0, 413, 2432 -134, 0, 0, 0, 1360, 0, 736, 0, 0, 0, 2433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2434 0, 0, 0, 413, 413, 0, 0, 0, 0, 0, 2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2436 0, 0, 0, 0, 0, 0, 0, 0, 413, 1, 2437 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2438 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2439 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2440 30, 31, 0, 0, 0, 32, 283, 284, 33, 285, 2441 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2442 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2443 -298, 0, 0, 0, 0, 286, 36, 0, 37, 0, 2444 38, 287, 33, 40, 41, 288, 0, 0, 289, 290, 2445 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2448 297, -298, 298, 0, 0, 0, 0, 0, 47, 48, 2449 299, 300, 301, 302, 2, 207, 4, 5, 6, 7, 2450 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2451 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2452 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 2453 283, 284, 33, 285, 0, 0, 0, 0, 0, 0, 2454 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 2455 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 2456 36, 0, 37, 0, 38, 287, 0, 40, 41, 288, 2457 0, 0, 289, 290, 291, 292, 293, 294, 43, 44, 2458 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 2459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2460 0, 0, 0, 0, 297, 0, 343, 0, 0, 0, 2461 0, 751, 344, 48, 299, 300, 301, 302, 2, 207, 2462 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2463 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2464 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2465 0, 0, 0, 0, 283, 284, 33, 285, 8, 9, 2466 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2467 20, 21, 22, 23, 24, 25, 26, 27, -299, 0, 2468 0, 0, 0, 286, 36, 0, 37, 0, 38, 287, 2469 33, 40, 41, 288, 0, 0, 289, 290, 291, 292, 2470 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2471 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2472 0, 0, 0, 0, 0, 0, 0, 0, 297, -299, 2473 343, 0, 0, 0, 0, 751, 47, 48, 299, 300, 2474 301, 302, 2, 207, 4, 5, 6, 7, 8, 9, 2475 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2476 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2477 28, 29, 30, 0, 0, 0, 0, 0, 283, 284, 2478 33, 285, 8, 9, 10, 11, 12, 13, 14, 15, 2479 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2480 26, 27, 0, 0, 28, 29, 30, 286, 36, 0, 2481 37, 0, 38, 287, 33, 40, 41, 288, 0, 0, 2482 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2483 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2484 0, 0, 36, 0, 0, 0, 0, 0, 0, 40, 2485 41, 0, 297, 0, 343, 0, 0, 0, 0, 0, 2486 344, 48, 299, 300, 301, 302, 2, 207, 4, 5, 2487 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2488 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2489 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2490 0, 0, 283, 284, 33, 285, 8, 9, 10, 11, 2491 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2492 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2493 30, 286, 36, 0, 37, 0, 38, 287, 33, 208, 2494 41, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2495 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 2497 0, 0, 0, 208, 41, 0, 297, 0, 981, 0, 2498 0, 0, 0, 0, 982, 48, 299, 300, 301, 302, 2499 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2500 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2501 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2502 30, 0, 0, 0, 0, 0, 283, 284, 33, 285, 2527 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2528 0, 0, 0, 274, 275, 33, 276, 0, 0, 0, 2503 2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504 2530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 0, 0, 0, 0, 0, 286, 36, 0, 37, 0, 2506 38, 287, 0, 208, 41, 288, 0, 0, 289, 290, 2507 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2531 0, 0, 277, 36, 0, 37, 0, 38, 278, 0, 2532 203, 41, 279, 0, 0, 280, 281, 282, 283, 284, 2533 285, 43, 44, 0, 286, 287, 0, 0, 0, 0, 2534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2535 0, 0, 0, 0, 0, 0, 0, 288, 0, 946, 2536 0, 0, 0, 0, 0, 947, 48, 290, 291, 292, 2537 293, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2538 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2539 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2540 29, 30, 0, 0, 0, 0, 0, 274, 275, 33, 2541 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2543 0, 0, 0, 0, 0, 0, 277, 36, 0, 37, 2544 0, 38, 278, 0, 203, 41, 279, 0, 0, 280, 2545 281, 282, 283, 284, 285, 43, 44, 0, 286, 287, 2508 2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509 2547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510 297, 0, 378, 0, 0, 0, 0, 0, 47, 48, 2511 299, 300, 301, 302, -524, 0, 0, 1, 2, 3, 2512 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2513 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2514 24, 25, 26, 27, 0, 0, 28, 29, 30, 31, 2515 0, 0, 0, 32, 0, 0, 33, 34, 0, 0, 2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2518 0, 35, 0, 0, 36, 0, 37, 0, 38, 39, 2519 0, 40, 41, 42, 0, 0, 0, 0, 0, 0, 2520 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 2521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 2523 46, 0, 0, 0, 0, 0, 47, 48, 1, 2, 2548 0, 288, 0, 370, 0, 0, 0, 0, 0, 47, 2549 48, 290, 291, 292, 293, -522, 0, 0, 1, 2, 2524 2550 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2525 2551 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, … … 2533 2559 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2534 2560 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 2535 0, 46, 0, 0, 0, -528, 0, 47, 48, 1,2561 0, 46, 0, 0, 0, 0, 0, 47, 48, 1, 2536 2562 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2537 2563 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, … … 2545 2571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2546 2572 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2547 45, 0, 46, 0, 0, 0, 0, 0, 47, 48,2548 206, 2, 207, 4, 5, 6, 7, 8, 9, 10,2573 45, 0, 46, 0, 0, 0, -526, 0, 47, 48, 2574 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2549 2575 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2550 2576 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2551 29, 30, 0, 0, 0, 0, 0, 0, 0, 33, 2577 29, 30, 31, 0, 0, 0, 32, 0, 0, 33, 2578 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2552 2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2554 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2555 0, 38, 39, 0, 208, 41, 42, 0, 0, 0, 2580 0, 0, 0, 0, 35, 0, 0, 36, 0, 37, 2581 0, 38, 39, 0, 40, 41, 42, 0, 0, 0, 2556 2582 0, 0, 0, 0, 0, 43, 44, 0, 0, 0, 2557 2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2558 2584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2559 0, 45, 0, 209, 0, 0, 0, 0, 0, 47,2560 48, 1, 2, 20 7, 4, 5, 6, 7, 8, 9,2585 0, 45, 0, 46, 0, 0, 0, 0, 0, 47, 2586 48, 1, 2, 202, 4, 5, 6, 7, 8, 9, 2561 2587 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2562 20, 21, 22, 23, 24, 25, 26, 27, -29 8, 0,2588 20, 21, 22, 23, 24, 25, 26, 27, -299, 0, 2563 2589 28, 29, 30, 31, 0, 0, 0, 32, 0, 0, 2564 2590 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2565 2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2566 2592 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2567 37, 0, 38, 0, 0, 40, 41, 0, 0, -29 8,2568 1, 2, 20 7, 4, 5, 6, 7, 8, 9, 10,2593 37, 0, 38, 0, 0, 40, 41, 0, 0, -299, 2594 1, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2569 2595 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2570 2596 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, … … 2573 2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 2600 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2575 0, 38, 0, 0, 40, 41, 20 6, 2, 207, 4,2601 0, 38, 0, 0, 40, 41, 201, 2, 202, 4, 2576 2602 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2577 2603 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, … … 2581 2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2582 2608 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2583 20 8, 41, 2, 207, 4, 5, 6, 7, 8, 9,2609 203, 41, 2, 202, 4, 5, 6, 7, 8, 9, 2584 2610 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2585 2611 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2586 28, 29, 30, 0, 0, 0, 0, 0, 0, 20 9,2612 28, 29, 30, 0, 0, 0, 0, 0, 0, 204, 2587 2613 33, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2588 2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 2615 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2590 37, 0, 38, 39, 0, 20 8, 41, 42, 0, 0,2616 37, 0, 38, 39, 0, 203, 41, 42, 0, 0, 2591 2617 0, 0, 0, 0, 0, 0, 43, 44, 0, 0, 2592 2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2594 0, 0, 45, 0, 20 9, 0, 0, 0, 0, 0,2595 47, 48, 2, 20 7, 4, 5, 6, 7, 8, 9,2620 0, 0, 45, 0, 204, 0, 0, 0, 0, 0, 2621 47, 48, 2, 202, 4, 5, 6, 7, 8, 9, 2596 2622 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2597 2623 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2598 2624 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, 2599 33, 0, 8, 9, 10, 11, 12, 13, 14, 15,2600 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,2601 26, 27, 0, 0, 28, 29, 30, 0, 36, 0,2602 37, 0, 38, 0, 33, 40, 41, 0, 0, 0,2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 1340,2605 0, 0, 36, 0, 0, 0, 0, 0, 0, 40,2606 41, 0, 0, 0, 671, 0, 0, 0, 0, 0,2607 47, 48, 2, 207, 4, 5, 6, 7, 8, 9,2608 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,2609 20, 21, 22, 23, 24, 25, 26, 27, 258, 0,2610 28, 29, 30, 0, 47, 48, 0, 0, 0, 0,2611 33, 0, 8, 9, 10, 11, 12, 13, 14, 15,2612 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,2613 26, 27, 0, 0, 28, 29, 30, 0, 36, 0,2614 37, 0, 38, 0, 33, 40, 41, 0, 0, 0,2615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 1342,2617 0, 0, 36, 0, 0, 0, 0, 0, 0, 40,2618 41, 0, 0, 0, 671, 0, 0, 0, 0, 0,2619 47, 48, 2, 207, 4, 5, 6, 7, 8, 9,2620 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,2621 20, 21, 22, 23, 24, 25, 26, 27, 46, 0,2622 28, 29, 30, 0, 47, 48, 0, 0, 0, 0,2623 2625 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2624 2626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625 2627 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2626 37, 0, 38, 0, 0, 208, 41, 2, 207, 4,2628 37, 0, 38, 0, 0, 40, 41, 2, 202, 4, 2627 2629 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2628 2630 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2629 2631 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2630 0, 0, 0, 0, 271, 33, 0, 0, 0, 0,2632 0, 0, 0, -407, 664, 33, 0, 0, 0, 0, 2631 2633 47, 48, 0, 0, 0, 0, 0, 0, 0, 0, 2632 2634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 2635 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2634 40, 41, 2, 207, 4, 5, 6, 7, 8, 9, 2636 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2638 0, 0, 0, 0, 1334, 0, 0, 0, 0, 0, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, 2640 0, 0, 0, 0, 0, 47, 48, 2, 202, 4, 2641 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2642 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2643 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2644 0, 0, 0, 0, 0, 33, 0, 8, 9, 10, 2645 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2646 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2647 29, 30, 0, 36, 0, 37, 0, 38, 0, 33, 2648 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2650 0, 0, 0, 0, 1336, 0, 0, 36, 0, 0, 2651 0, 0, 0, 0, 40, 41, 0, 0, 0, 664, 2652 0, 0, 0, 0, 0, 47, 48, 2, 202, 4, 2653 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2654 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2655 25, 26, 27, 247, 0, 28, 29, 30, 0, 47, 2656 48, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2659 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2660 203, 41, 2, 202, 4, 5, 6, 7, 8, 9, 2635 2661 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2636 2662 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2637 28, 29, 30, 0, 0, 0, 0, 0, 0, 671,2663 28, 29, 30, 0, 0, 0, 0, 0, 0, 260, 2638 2664 33, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2639 2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 2666 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2641 37, 0, 38, 0, 0, 208, 41, 8, 9, 10,2642 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,2643 21, 22, 23, 24, 25, 26, 27, 0, 0, 28,2644 2 9, 30, 0, 0, 0, 0, 0, 283, 284, 33,2645 285, 0, 0, 0, 209, 0, 0, 0, 0, 0,2667 37, 0, 38, 0, 0, 40, 41, 2, 202, 4, 2668 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2669 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2670 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2671 0, 0, 0, 0, 664, 33, 0, 0, 0, 0, 2646 2672 47, 48, 0, 0, 0, 0, 0, 0, 0, 0, 2647 0, 0, 0, 0, 0, 0, 286, 36, 0, 0, 2648 0, 0, 287, 0, 40, 41, 288, 0, 0, 289, 2649 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2674 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2675 203, 41, 8, 9, 10, 11, 12, 13, 14, 15, 2676 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2677 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2678 0, 0, 274, 275, 33, 276, 0, 0, 0, 204, 2679 0, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2681 0, 277, 36, 0, 0, 0, 0, 278, 0, 40, 2682 41, 279, 0, 0, 280, 281, 282, 283, 284, 285, 2683 43, 44, 0, 286, 287, 0, 0, 0, 0, 0, 2684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2685 0, 0, 0, 0, 0, 0, 288, 0, 510, 0, 2686 0, 168, 0, 0, 47, 48, 290, 291, 292, 293, 2687 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2688 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2689 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 2690 274, 275, 33, 276, 8, 9, 10, 11, 12, 13, 2691 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2692 24, 25, 26, 27, 0, 0, 28, 29, 30, 277, 2693 36, 0, 0, 0, 0, 278, 33, 40, 41, 279, 2694 0, 0, 280, 281, 282, 283, 284, 285, 43, 44, 2695 0, 286, 287, 0, 0, 0, 0, 0, 0, 0, 2696 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 2697 0, 203, 41, 0, 288, -40, 289, 0, 0, 0, 2698 0, 0, 47, 48, 290, 291, 292, 293, 8, 9, 2699 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2700 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2701 28, 29, 30, 0, 0, 0, 47, 48, 274, 275, 2702 33, 276, 0, 0, 0, 0, 0, 0, 0, 0, 2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2704 0, 0, 0, 0, 0, 0, 0, 277, 36, 0, 2705 0, 0, 0, 278, 0, 40, 41, 279, 0, 0, 2706 280, 281, 282, 283, 284, 285, 43, 44, 0, 286, 2707 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2709 0, 0, 288, 0, 289, 0, 0, 0, 0, 0, 2710 47, 48, 290, 291, 292, 293, 8, 9, 10, 11, 2711 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2712 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2713 30, 0, 0, 0, 0, 0, 274, 275, 33, 276, 2650 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2651 2715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2652 0, 297, 0, 516, 0, 0, 172, 0, 0, 47, 2653 48, 299, 300, 301, 302, 8, 9, 10, 11, 12, 2716 0, 0, 0, 0, 0, 277, 36, 0, 0, 0, 2717 0, 278, 0, 40, 41, 279, 0, 0, 280, 281, 2718 282, 283, 284, 285, 43, 44, 0, 286, 287, 0, 2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2721 288, 0, 335, 0, 0, 0, 0, 0, 47, 48, 2722 290, 291, 292, 293, 8, 9, 10, 11, 12, 13, 2723 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2724 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2725 0, 0, 0, 0, 274, 275, 33, 276, 0, 0, 2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2728 0, 0, 0, 277, 36, 0, 0, 0, 0, 278, 2729 0, 40, 41, 279, 0, 0, 280, 281, 282, 283, 2730 284, 285, 43, 44, 0, 286, 287, 0, 0, 0, 2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732 0, 0, 0, 0, 0, 0, 0, 0, 288, 0, 2733 370, 0, 0, 0, 0, 0, 47, 48, 290, 291, 2734 292, 293, 456, 2, 202, 4, 5, 6, 7, 8, 2735 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2736 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2737 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 2738 0, 33, 8, 9, 10, 11, 12, 13, 14, 15, 2739 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2740 26, 27, 0, 0, 28, 29, 30, 0, 0, 36, 2741 0, 37, 0, 38, 33, 0, 40, 41, 0, 0, 2742 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2743 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2744 26, 27, 36, 0, 28, 29, 30, 39, 0, 203, 2745 41, 42, 0, 0, 33, 0, 0, 0, -3, 0, 2746 43, 44, 0, 0, 0, 0, 0, 0, 0, 0, 2747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2748 0, 0, 36, 0, 0, 0, 45, 110, 260, 40, 2749 41, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2750 43, 44, 0, 0, 0, 0, 0, 8, 9, 10, 2751 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2752 21, 22, 23, 24, 25, 26, 27, 0, 46, 28, 2753 29, 30, 0, 0, 47, 48, 0, 0, 0, 33, 2754 872, 0, 0, 0, 0, 0, 0, 8, 9, 10, 2755 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2756 21, 22, 23, 24, 25, 26, 27, 36, 0, 28, 2757 29, 30, 0, 0, 40, 41, 0, 0, 0, 33, 2758 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2760 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 2761 0, 0, 0, 719, 40, 41, 0, 1197, 0, 47, 2762 48, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2763 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2764 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2765 0, 0, 0, 719, 33, 0, 0, 1287, 0, 47, 2766 48, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2767 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2768 26, 27, 36, 0, 28, 29, 30, 0, 0, 40, 2769 41, 0, 0, 0, 33, 8, 9, 10, 11, 12, 2654 2770 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2655 2771 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2656 0, 0, 0, 0, 0, 283, 284, 33, 285, 8,2657 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,2658 19, 20, 21, 22, 23, 24, 25, 26, 27, 0,2659 0, 28, 29, 30, 286, 36, 0, 0, 0, 0,2660 287, 33, 40, 41, 288, 0, 0, 289, 290, 291,2661 292, 293, 294, 43, 44, 0, 295, 296, 0, 0,2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,2663 0, 0, 0, 0, 0, 0, 208, 41, 0, 297,2664 -40, 298, 0, 0, 0, 0, 0, 47, 48, 299,2665 300, 301, 302, 8, 9, 10, 11, 12, 13, 14,2772 0, 0, 36, 0, 0, 0, 0, 33, 46, 203, 2773 41, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2775 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 2776 0, 0, 40, 41, 0, 0, 0, 0, 260, 0, 2777 0, 0, 0, 0, 47, 48, 0, 0, 0, 0, 2778 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2779 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2780 0, 331, 28, 29, 30, 0, 0, 47, 48, 0, 2781 0, 0, 33, 8, 9, 10, 11, 12, 13, 14, 2666 2782 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2667 2783 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2668 0, 47, 48, 283, 284, 33, 285, 0, 0, 0,2784 36, 0, 0, 0, 0, 33, 0, 40, 41, 0, 2669 2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2670 2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2671 0, 0, 286, 36, 0, 0, 0, 0, 287, 0,2672 40, 41, 288, 0, 0, 289, 290, 291, 292, 293,2673 294, 43, 44, 0, 295, 296, 0, 0, 0, 0,2787 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 2788 40, 41, 0, 0, 0, 0, 719, 0, 0, 0, 2789 0, 0, 47, 48, 0, 0, 0, 0, 0, 0, 2674 2790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2675 0, 0, 0, 0, 0, 0, 0, 297, 0, 298, 2676 0, 0, 0, 0, 0, 47, 48, 299, 300, 301, 2677 302, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, 2792 0, 0, 0, 0, 0, 47, 48, 2, 202, 4, 2793 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2794 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2795 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2796 0, 0, 0, 0, 0, 33, 0, 274, 275, 0, 2797 276, 988, 0, 989, 0, 0, 990, 991, 992, 993, 2798 994, 995, 996, 997, 0, 0, 1520, 998, 0, 0, 2799 0, 999, 1000, 36, 35, 37, 277, 38, 0, 0, 2800 40, 41, 1001, 0, 171, 172, 1004, 0, 0, 280, 2801 281, 282, 283, 284, 285, 43, 44, 0, 286, 287, 2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2803 0, 0, 0, 0, 0, 0, 0, 0, -420, 0, 2804 0, 288, 0, 370, 0, 0, 168, 0, 0, 47, 2805 48, 290, 291, 292, 293, 0, 0, 274, 275, 1005, 2806 276, 988, 0, 989, -134, 0, 990, 991, 992, 993, 2807 994, 995, 996, 997, 0, 0, 0, 998, 0, 0, 2808 0, 999, 1000, 0, 35, 0, 277, 0, 0, 0, 2809 0, 0, 1001, 0, 171, 172, 1004, 0, 0, 280, 2810 281, 282, 283, 284, 285, 43, 44, 0, 286, 287, 2811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2813 0, 288, 0, 370, 0, 0, 168, 0, 0, 47, 2814 48, 290, 291, 292, 293, 0, 0, 0, 0, 1005, 2815 0, 0, 0, 0, -134, 2, 202, 4, 5, 6, 2816 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2678 2817 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2679 2818 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2680 0, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2819 0, 0, 0, 33, 0, 274, 275, 0, 276, 988, 2820 0, 989, 1389, 1390, 990, 991, 992, 993, 994, 995, 2821 996, 997, 0, 0, 1520, 998, 0, 0, 0, 999, 2822 1000, 36, 35, 37, 277, 38, 0, 0, 40, 41, 2823 1001, 0, 171, 172, 1004, 0, 0, 280, 281, 282, 2824 283, 284, 285, 43, 44, 0, 286, 287, 0, 0, 2825 0, 0, 1294, 0, 0, 0, 0, 0, 0, 0, 2826 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 2827 0, 370, 0, 0, 168, 0, 0, 47, 48, 290, 2828 291, 292, 293, 0, 0, 274, 275, 1005, 276, 988, 2829 0, 989, 1389, 1390, 990, 991, 992, 993, 994, 995, 2830 996, 997, 0, 0, 0, 998, 0, 0, 0, 999, 2831 1000, 0, 35, 0, 277, 0, 0, 0, 0, 0, 2832 1001, 0, 171, 172, 1004, 0, 0, 280, 281, 282, 2833 283, 284, 285, 43, 44, 0, 286, 287, 0, 0, 2681 2834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 2836 0, 370, 0, 0, 168, 0, 0, 47, 48, 290, 2837 291, 292, 293, 0, 0, 274, 275, 1005, 276, 988, 2838 0, 989, 0, 0, 990, 991, 992, 993, 994, 995, 2839 996, 997, 0, 0, 0, 998, 0, 0, 0, 999, 2840 1000, 0, 35, 0, 277, 0, 0, 0, 0, 0, 2841 1001, 0, 171, 172, 1004, 0, 0, 280, 281, 282, 2842 283, 284, 285, 43, 44, 0, 286, 287, 0, 0, 2843 0, 0, 0, 0, 274, 275, 0, 276, 0, 0, 2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 288, 2845 0, 370, 0, 0, 168, 0, 0, 47, 48, 290, 2846 291, 292, 293, 277, 0, 0, 0, 1005, 0, 278, 2847 0, 0, 0, 279, 0, 0, 280, 281, 282, 283, 2848 284, 285, 43, 44, 0, 286, 287, 0, 0, 0, 2849 0, 0, 0, 274, 275, 0, 276, 0, 0, 0, 2850 0, 0, 0, 0, 0, 0, 0, 0, 288, 0, 2851 370, 0, 0, 0, 0, 731, 47, 48, 290, 291, 2852 292, 293, 277, 0, 0, 0, 0, 0, 278, 0, 2853 0, 0, 279, 0, 0, 280, 281, 282, 283, 284, 2854 285, 43, 44, 0, 286, 287, 0, 0, 0, 0, 2855 0, 0, 274, 275, 0, 276, 0, 0, 0, 0, 2856 0, 0, 0, 0, 0, 0, 0, 499, 0, 370, 2857 0, 0, 0, 0, 0, 47, 48, 290, 291, 292, 2858 293, 277, 0, 0, 0, 0, 0, 278, 0, 0, 2859 0, 279, 0, 0, 280, 281, 282, 283, 284, 285, 2860 43, 44, 0, 286, 287, 0, 0, 0, 0, 0, 2861 0, 274, 275, 0, 276, 0, 0, 0, 0, 0, 2862 0, 0, 0, 0, 0, 0, 504, 0, 370, 0, 2863 0, 0, 0, 0, 47, 48, 290, 291, 292, 293, 2864 277, 0, 0, 0, 0, 0, 278, 0, 0, 0, 2865 279, 0, 0, 280, 281, 282, 283, 284, 285, 43, 2866 44, 0, 286, 287, 0, 0, 0, 0, 0, 0, 2867 274, 275, 0, 276, 0, 0, 0, 0, 0, 0, 2868 0, 0, 0, 0, 0, 507, 0, 370, 0, 0, 2869 0, 0, 0, 47, 48, 290, 291, 292, 293, 277, 2870 0, 0, 0, 0, 0, 278, 0, 0, 0, 279, 2871 0, 0, 280, 281, 282, 283, 284, 285, 43, 44, 2872 0, 286, 287, 0, 0, 0, 0, 0, 0, 274, 2873 275, 0, 276, 0, 0, 0, 0, 0, 0, 0, 2874 0, 0, 0, 0, 288, 0, 370, 0, 0, 0, 2875 0, 0, 683, 48, 290, 291, 292, 293, 277, 0, 2876 0, 0, 0, 0, 278, 0, 0, 0, 279, 0, 2877 0, 280, 281, 282, 283, 284, 285, 43, 44, 0, 2878 286, 287, 0, 0, 0, 0, 0, 0, 0, 0, 2682 2879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2683 286, 36, 0, 0, 0, 0, 287, 0, 40, 41, 2684 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2685 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2687 0, 0, 0, 0, 0, 297, 0, 343, 0, 0, 2688 0, 0, 0, 47, 48, 299, 300, 301, 302, 8, 2689 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2690 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2691 0, 28, 29, 30, 0, 0, 0, 0, 0, 283, 2692 284, 33, 285, 0, 0, 0, 0, 0, 0, 0, 2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2694 0, 0, 0, 0, 0, 0, 0, 0, 286, 36, 2695 0, 0, 0, 0, 287, 0, 40, 41, 288, 0, 2696 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2697 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2699 0, 0, 0, 297, 0, 378, 0, 0, 0, 0, 2700 0, 47, 48, 299, 300, 301, 302, 8, 9, 10, 2880 0, 0, 0, 288, 0, 370, 0, 0, 0, 0, 2881 0, 336, 48, 290, 291, 292, 293, 8, 9, 10, 2701 2882 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2702 2883 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2703 2884 29, 30, 0, 0, 0, 0, 0, 0, 0, 33, 2704 0, 0, 0, 0, 0, 0, 0, 8, 9, 10,2885 201, 2, 202, 4, 5, 6, 7, 8, 9, 10, 2705 2886 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2706 2887 21, 22, 23, 24, 25, 26, 27, 36, 0, 28, 2707 29, 30, 39, 0, 40, 41, 42, 0, 0, 33,2888 29, 30, 110, 0, 40, 41, 0, 0, 0, 33, 2708 2889 0, 0, 0, 0, 0, 43, 44, 0, 0, 0, 2709 2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2710 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 2711 0, 45, 39, 46, 208, 41, 42, 0, 0, 47, 2712 48, 0, 0, 0, 0, 43, 44, 0, 0, 0, 2891 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2892 0, 38, 0, 0, 203, 41, 456, 2, 202, 4, 2893 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2894 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2895 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2896 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 2713 2897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2714 2898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2715 0, 45, 0, 271, 0, 0, 0, 0, 0, 47, 2716 48, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2717 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2718 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2719 0, 0, 0, 33, 678, 0, 0, 0, 0, 0, 2720 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2721 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2722 27, 36, 0, 28, 29, 30, 0, 0, 40, 41, 2723 0, 0, 0, 33, 678, 0, 0, 0, 0, 0, 2899 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2900 40, 41, 2, 202, 4, 5, 6, 7, 8, 9, 2901 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2902 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2903 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, 2904 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2906 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2907 37, 0, 38, 0, 0, 203, 41, 8, 9, 10, 2908 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2909 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2910 29, 30, 474, 475, 476, 477, 0, 0, 0, 33, 2724 2911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2725 2912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2726 0, 36, 0, 0, 0, 0, 0, 679, 40, 41, 2727 0, 1078, 0, 47, 48, 0, 8, 9, 10, 11, 2728 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2729 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2730 30, 0, 0, 0, 0, 0, 0, 679, 33, 0, 2731 0, 1205, 0, 47, 48, 0, 8, 9, 10, 11, 2732 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2733 22, 23, 24, 25, 26, 27, 36, 0, 28, 29, 2734 30, 0, 0, 208, 41, 0, 0, 0, 33, 8, 2735 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2736 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2737 0, 28, 29, 30, 0, 0, 36, 0, 0, 0, 2738 0, 33, 271, 40, 41, 0, 0, 0, 47, 48, 2739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2741 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, 2742 0, 0, 339, 0, 0, 0, 0, 0, 47, 48, 2743 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2744 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2745 24, 25, 26, 27, 0, 679, 28, 29, 30, 0, 2746 0, 47, 48, 0, 0, 0, 33, 0, 2, 207, 2747 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2748 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2749 24, 25, 26, 27, 36, 0, 28, 29, 30, 0, 2750 0, 40, 41, 0, 0, 0, 33, 0, 0, 0, 2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2753 0, 0, 0, 0, 36, 0, 37, 0, 38, 0, 2754 671, 40, 41, 0, 0, 0, 47, 48, 283, 284, 2755 0, 285, 1023, 0, 1024, 0, 0, 1025, 1026, 1027, 2756 1028, 1029, 1030, 1031, 1032, 0, 0, 0, 1033, 0, 2757 0, 0, 1034, 1035, 0, 35, 0, 286, 0, -420, 2758 0, 0, 0, 1036, 0, 175, 176, 1039, 0, 0, 2759 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2760 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2762 0, 0, 297, 0, 378, 0, 0, 172, 0, 0, 2763 47, 48, 299, 300, 301, 302, 0, 0, 0, 0, 2764 1040, 0, 0, 0, 0, -134, 2, 207, 4, 5, 2765 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2766 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2767 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2768 0, 0, 0, 0, 33, 0, 283, 284, 0, 285, 2769 1023, 0, 1024, 1388, 1389, 1025, 1026, 1027, 1028, 1029, 2770 1030, 1031, 1032, 0, 0, 1516, 1033, 0, 0, 0, 2771 1034, 1035, 36, 35, 37, 286, 38, 0, 0, 40, 2772 41, 1036, 0, 175, 176, 1039, 0, 0, 289, 290, 2773 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2774 0, 0, 0, 1299, 0, 0, 0, 0, 0, 0, 2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2776 297, 0, 378, 0, 0, 172, 0, 0, 47, 48, 2777 299, 300, 301, 302, 0, 0, 283, 284, 1040, 285, 2778 1023, 0, 1024, 1388, 1389, 1025, 1026, 1027, 1028, 1029, 2779 1030, 1031, 1032, 0, 0, 0, 1033, 0, 0, 0, 2780 1034, 1035, 0, 35, 0, 286, 0, 0, 0, 0, 2781 0, 1036, 0, 175, 176, 1039, 0, 0, 289, 290, 2782 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2785 297, 0, 378, 0, 0, 172, 0, 0, 47, 48, 2786 299, 300, 301, 302, 0, 0, 283, 284, 1040, 285, 2787 1023, 0, 1024, 0, 0, 1025, 1026, 1027, 1028, 1029, 2788 1030, 1031, 1032, 0, 0, 0, 1033, 0, 0, 0, 2789 1034, 1035, 0, 35, 0, 286, 0, 0, 0, 0, 2790 0, 1036, 0, 175, 176, 1039, 0, 0, 289, 290, 2791 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2792 0, 0, 0, 0, 0, 283, 284, 0, 285, 0, 2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2794 297, 0, 378, 0, 0, 172, 0, 0, 47, 48, 2795 299, 300, 301, 302, 286, 0, 0, 0, 1040, 0, 2796 287, 0, 0, 0, 288, 0, 0, 289, 290, 291, 2797 292, 293, 294, 43, 44, 0, 295, 296, 0, 0, 2798 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 510, 2800 0, 378, 0, 0, 0, 0, 0, 47, 48, 299, 2801 300, 301, 302, 286, 0, 0, 0, 0, 0, 287, 2802 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2803 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2804 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2805 0, 0, 0, 0, 0, 0, 0, 0, 513, 0, 2806 378, 0, 0, 0, 0, 0, 47, 48, 299, 300, 2807 301, 302, 286, 0, 0, 0, 0, 0, 287, 0, 2808 0, 0, 288, 0, 0, 289, 290, 291, 292, 293, 2809 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2810 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2811 0, 0, 0, 0, 0, 0, 0, 297, 0, 378, 2812 0, 0, 0, 0, 0, 702, 48, 299, 300, 301, 2813 302, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2814 0, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2815 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2817 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2818 0, 0, 0, 0, 344, 48, 299, 300, 301, 302, 2819 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2820 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2821 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 2822 0, 0, 33, 206, 2, 207, 4, 5, 6, 7, 2823 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2824 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2825 36, 0, 28, 29, 30, 112, 0, 40, 41, 0, 2826 0, 0, 33, 0, 0, 0, 0, 0, 43, 44, 2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2829 36, 0, 37, 0, 38, 0, 0, 208, 41, 465, 2830 2, 207, 4, 5, 6, 7, 8, 9, 10, 11, 2831 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2832 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2833 30, 0, 0, 0, 0, 0, 0, 0, 33, 0, 2834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2836 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2837 38, 0, 0, 40, 41, 2, 207, 4, 5, 6, 2838 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2839 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2840 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2841 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2844 0, 36, 0, 37, 0, 38, 0, 0, 208, 41, 2845 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2846 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2847 0, 0, 28, 29, 30, 483, 484, 485, 486, 0, 2848 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 2849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2851 36, 0, 0, 0, 0, 0, 0, 40, 41 2913 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 2914 0, 0, 0, 0, 40, 41 2852 2915 }; 2853 2916 2854 2917 #define yypact_value_is_default(yystate) \ 2855 ((yystate) == (-1 328))2918 ((yystate) == (-1276)) 2856 2919 2857 2920 #define yytable_value_is_error(yytable_value) \ … … 2860 2923 static const yytype_int16 yycheck[] = 2861 2924 { 2862 0, 1, 0, 186, 45, 1, 240, 186, 118, 45, 2863 186, 533, 205, 45, 186, 186, 186, 520, 0, 186, 2864 743, 187, 743, 743, 51, 220, 863, 1022, 863, 640, 2865 1005, 31, 32, 968, 34, 0, 34, 169, 170, 349, 2866 512, 598, 349, 616, 491, 45, 34, 598, 495, 664, 2867 188, 51, 34, 51, 569, 45, 599, 0, 345, 59, 2868 689, 1388, 605, 0, 45, 65, 45, 65, 68, 34, 2869 68, 71, 0, 71, 364, 71, 1004, 1005, 368, 1309, 2870 1015, 1118, 42, 266, 84, 85, 596, 266, 115, 187, 2871 266, 34, 202, 229, 266, 266, 266, 34, 107, 266, 2872 596, 267, 596, 66, 1034, 1035, 34, 30, 108, 417, 2873 84, 111, 248, 51, 596, 596, 596, 45, 118, 1392, 2874 596, 148, 114, 51, 262, 263, 42, 65, 436, 480, 2875 68, 84, 100, 71, 1461, 282, 444, 65, 257, 32, 2876 68, 686, 116, 71, 136, 186, 124, 125, 157, 149, 2877 186, 149, 630, 631, 186, 114, 116, 54, 81, 1031, 2878 0, 161, 297, 161, 47, 48, 134, 782, 646, 267, 2879 893, 90, 893, 893, 137, 0, 1, 792, 681, 1409, 2880 487, 1493, 631, 210, 1114, 1022, 186, 187, 803, 187, 2881 101, 84, 85, 480, 34, 67, 186, 646, 114, 118, 2882 116, 1238, 202, 1240, 1241, 186, 728, 186, 1520, 34, 2883 210, 149, 210, 240, 409, 1488, 127, 114, 712, 219, 2884 1493, 149, 222, 161, 222, 266, 704, 121, 68, 229, 2885 266, 712, 114, 161, 266, 1210, 712, 120, 112, 405, 2886 1513, 135, 114, 68, 244, 272, 71, 1520, 248, 187, 2887 101, 42, 252, 253, 252, 704, 42, 814, 186, 187, 2888 121, 804, 136, 814, 252, 894, 266, 267, 1443, 267, 2889 252, 786, 210, 273, 135, 257, 127, 51, 42, 630, 2890 631, 1276, 210, 310, 222, 395, 121, 252, 598, 1264, 2891 425, 426, 802, 117, 222, 646, 586, 121, 417, 42, 2892 135, 912, 42, 1478, 117, 1480, 802, 405, 802, 252, 2893 939, 121, 478, 423, 257, 252, 1, 436, 345, 429, 2894 802, 802, 802, 11, 252, 444, 802, 137, 114, 616, 2895 116, 331, 341, 331, 621, 1263, 1264, 627, 266, 47, 2896 48, 115, 114, 600, 889, 47, 48, 604, 348, 349, 2897 114, 244, 116, 704, 133, 117, 503, 136, 1195, 121, 2898 1195, 115, 114, 135, 921, 365, 51, 675, 625, 369, 2899 505, 114, 629, 116, 114, 510, 116, 75, 513, 379, 2900 478, 135, 222, 115, 1319, 119, 1001, 1002, 739, 121, 2901 88, 89, 117, 331, 115, 395, 121, 222, 425, 426, 2902 285, 425, 426, 331, 1276, 405, 121, 405, 115, 1384, 2903 983, 119, 252, 3, 135, 121, 114, 119, 116, 3, 2904 75, 349, 107, 423, 920, 310, 311, 252, 135, 429, 2905 115, 137, 567, 88, 89, 417, 210, 1432, 920, 1276, 2906 920, 1376, 1377, 114, 1439, 116, 121, 1062, 1063, 992, 2907 993, 954, 739, 689, 436, 1, 1384, 0, 1, 462, 2908 345, 116, 444, 148, 117, 465, 493, 405, 121, 493, 2909 470, 0, 157, 121, 417, 1104, 0, 405, 478, 1351, 2910 478, 114, 482, 930, 482, 512, 379, 487, 512, 137, 2911 490, 34, 492, 436, 966, 380, 1491, 116, 272, 118, 2912 482, 444, 1113, 10, 814, 795, 75, 814, 121, 641, 2913 350, 136, 650, 660, 121, 681, 135, 482, 863, 88, 2914 89, 206, 114, 297, 137, 210, 1493, 527, 71, 1086, 2915 137, 114, 532, 116, 1163, 1164, 310, 480, 648, 482, 2916 114, 892, 95, 96, 780, 482, 1513, 116, 75, 576, 2917 77, 78, 576, 1520, 482, 240, 675, 121, 115, 487, 2918 121, 88, 89, 117, 1436, 121, 1438, 121, 75, 1072, 2919 77, 78, 121, 137, 1077, 114, 137, 130, 131, 836, 2920 580, 137, 701, 681, 731, 121, 114, 272, 137, 616, 2921 275, 114, 119, 116, 621, 1432, 596, 490, 598, 492, 2922 1102, 137, 1439, 121, 1106, 892, 4, 5, 6, 7, 2923 8, 9, 297, 121, 114, 115, 852, 617, 925, 137, 2924 1492, 75, 114, 77, 78, 310, 114, 121, 121, 137, 2925 1245, 471, 632, 115, 88, 89, 636, 1252, 1253, 1254, 2926 93, 94, 482, 137, 137, 645, 1464, 647, 648, 649, 2927 587, 115, 1470, 1004, 1491, 850, 341, 482, 894, 115, 2928 345, 664, 116, 115, 549, 550, 551, 115, 596, 926, 2929 598, 115, 1490, 121, 72, 870, 74, 1495, 452, 364, 2930 1025, 681, 114, 368, 115, 685, 114, 687, 116, 114, 2931 121, 691, 114, 675, 122, 123, 983, 120, 932, 699, 2932 1315, 137, 75, 939, 77, 78, 79, 253, 67, 252, 2933 893, 114, 712, 713, 893, 88, 89, 893, 114, 701, 2934 116, 893, 893, 893, 856, 114, 893, 116, 115, 895, 2935 114, 505, 675, 507, 121, 971, 510, 137, 75, 513, 2936 425, 426, 1371, 636, 119, 4, 5, 6, 7, 8, 2937 9, 88, 89, 681, 114, 122, 116, 72, 701, 1388, 2938 75, 128, 129, 78, 137, 80, 114, 452, 116, 115, 2939 1292, 114, 87, 116, 1497, 121, 1497, 1497, 618, 782, 2940 465, 115, 1133, 1019, 712, 713, 114, 121, 116, 792, 2941 97, 98, 685, 115, 687, 115, 739, 895, 691, 121, 2942 803, 121, 802, 996, 137, 898, 491, 900, 493, 114, 2943 495, 116, 137, 72, 814, 74, 119, 122, 123, 119, 2944 505, 114, 507, 116, 114, 510, 84, 512, 513, 122, 2945 123, 1460, 1461, 115, 75, 59, 77, 78, 79, 121, 2946 10, 11, 12, 13, 14, 115, 1133, 88, 89, 115, 2947 1195, 121, 692, 120, 121, 121, 856, 10, 11, 12, 2948 13, 14, 862, 863, 115, 750, 706, 114, 1104, 115, 2949 121, 505, 42, 507, 802, 121, 510, 115, 137, 513, 2950 114, 863, 115, 121, 108, 1017, 814, 111, 121, 42, 2951 132, 576, 84, 893, 123, 895, 137, 115, 213, 99, 2952 70, 586, 902, 121, 678, 932, 1072, 115, 115, 115, 2953 115, 1077, 1263, 121, 121, 121, 121, 70, 133, 465, 2954 863, 115, 116, 1210, 117, 925, 863, 1163, 1164, 61, 2955 62, 616, 114, 115, 116, 931, 621, 120, 121, 482, 2956 47, 48, 627, 116, 114, 945, 116, 115, 885, 892, 2957 1295, 117, 122, 123, 115, 1102, 983, 797, 958, 1106, 2958 1107, 1119, 1120, 856, 964, 893, 115, 895, 968, 862, 2959 1473, 114, 115, 116, 1072, 556, 557, 558, 559, 1077, 2960 115, 527, 552, 553, 1094, 115, 532, 4, 5, 6, 2961 7, 8, 9, 678, 75, 219, 115, 925, 1001, 1002, 2962 1345, 82, 114, 1348, 85, 116, 87, 88, 89, 902, 2963 114, 115, 116, 554, 555, 1015, 560, 561, 35, 1522, 2964 117, 119, 75, 863, 119, 1025, 79, 121, 1028, 1029, 2965 1030, 716, 119, 136, 580, 88, 89, 352, 863, 354, 2966 1022, 1176, 1177, 136, 1179, 114, 117, 1392, 115, 273, 2967 1185, 115, 1397, 1188, 117, 72, 117, 74, 1058, 1062, 2968 1063, 114, 135, 116, 31, 958, 114, 115, 116, 122, 2969 123, 121, 1072, 1220, 61, 62, 63, 1077, 135, 1022, 2970 135, 1426, 115, 115, 119, 1022, 120, 115, 10, 11, 2971 12, 13, 14, 120, 1094, 75, 120, 115, 983, 79, 2972 121, 647, 75, 649, 77, 78, 931, 114, 88, 89, 2973 795, 137, 135, 0, 1, 88, 89, 115, 1118, 121, 2974 42, 3, 115, 115, 348, 440, 115, 115, 10, 11, 2975 12, 13, 14, 907, 114, 1371, 121, 1022, 115, 0, 2976 1, 365, 122, 123, 1072, 369, 986, 34, 70, 1077, 2977 115, 115, 1388, 699, 115, 115, 115, 115, 45, 115, 2978 42, 115, 115, 1310, 51, 1058, 1511, 1314, 115, 115, 2979 1170, 120, 1517, 34, 31, 115, 115, 121, 65, 1175, 2980 135, 68, 1022, 1528, 71, 136, 117, 1532, 70, 117, 2981 1133, 115, 114, 135, 116, 1195, 115, 1022, 114, 119, 2982 122, 123, 115, 121, 115, 1208, 115, 68, 115, 121, 2983 71, 115, 1347, 1195, 115, 121, 121, 114, 1214, 114, 2984 107, 114, 907, 75, 1460, 1461, 114, 135, 115, 114, 2985 82, 118, 119, 85, 137, 87, 88, 89, 1238, 135, 2986 1240, 1241, 1245, 135, 121, 930, 931, 932, 120, 1252, 2987 1253, 1254, 1195, 115, 135, 115, 120, 1367, 1195, 115, 2988 133, 148, 149, 117, 116, 120, 1413, 1210, 119, 137, 2989 157, 158, 115, 1507, 161, 75, 117, 1170, 75, 121, 2990 77, 78, 82, 117, 115, 85, 115, 87, 88, 89, 2991 117, 88, 89, 1067, 1276, 1295, 75, 158, 983, 186, 2992 187, 117, 117, 82, 115, 117, 85, 117, 87, 88, 2993 89, 117, 1315, 1309, 1497, 202, 116, 114, 1497, 1319, 2994 863, 1497, 119, 210, 50, 1497, 1497, 1497, 137, 137, 2995 1497, 120, 1498, 1276, 1174, 222, 137, 116, 75, 1276, 2996 77, 78, 79, 137, 137, 1345, 115, 120, 1348, 1174, 2997 1175, 88, 89, 240, 135, 1195, 1522, 115, 120, 86, 2998 117, 222, 117, 1473, 117, 252, 1366, 1367, 117, 117, 2999 1195, 117, 115, 260, 115, 117, 1376, 1377, 265, 266, 3000 267, 114, 1067, 114, 114, 272, 63, 115, 931, 1214, 3001 75, 252, 1392, 617, 79, 115, 119, 1397, 114, 945, 3002 1498, 137, 117, 88, 89, 117, 57, 115, 632, 101, 3003 297, 117, 115, 1409, 1414, 101, 114, 114, 964, 137, 3004 120, 645, 968, 310, 1522, 115, 1426, 115, 115, 114, 3005 121, 1271, 115, 45, 135, 137, 1276, 122, 123, 326, 3006 115, 137, 115, 101, 331, 101, 1271, 462, 99, 115, 3007 1432, 1276, 115, 137, 341, 137, 1497, 1439, 345, 137, 3008 117, 1497, 349, 350, 117, 1497, 115, 115, 120, 1015, 3009 0, 1, 117, 1473, 1474, 137, 114, 364, 137, 1022, 3010 1507, 368, 115, 1483, 1309, 120, 120, 115, 1488, 1432, 3011 137, 115, 115, 1493, 562, 1432, 1439, 1497, 1498, 564, 3012 1498, 563, 1439, 1040, 34, 565, 963, 566, 395, 1491, 3013 1461, 1511, 75, 1513, 77, 78, 79, 1517, 405, 1195, 3014 1520, 51, 1522, 1353, 1522, 88, 89, 1532, 1528, 1214, 3015 1286, 1107, 1532, 1314, 1439, 1077, 423, 1058, 425, 426, 3016 678, 71, 429, 194, 431, 678, 900, 691, 1491, 3, 3017 75, 114, 77, 78, 1491, 908, 10, 11, 12, 13, 3018 14, 580, 856, 88, 89, 452, 217, 958, 642, 1497, 3019 431, 716, 1118, 928, 1214, 727, 227, 107, 568, -1, 3020 482, -1, 568, 470, 1409, 568, -1, -1, 42, 114, 3021 -1, 478, 1432, 480, 119, 482, -1, -1, -1, 1439, 3022 487, -1, -1, -1, -1, -1, 493, 1432, 10, 11, 3023 12, 13, 14, -1, 1439, -1, 70, -1, 505, 149, 3024 507, 482, -1, 510, 1309, 512, 513, 157, 158, -1, 3025 -1, -1, 1175, 520, -1, -1, -1, 524, -1, -1, 3026 42, 75, -1, 77, 78, 79, 297, -1, -1, 664, 3027 -1, 1491, 1195, -1, 88, 89, -1, 187, -1, -1, 3028 -1, -1, -1, 524, -1, -1, 1491, 1441, 70, 1443, 3029 -1, 1214, 202, 75, -1, 205, 206, 79, -1, -1, 3030 210, 568, 569, -1, -1, -1, 88, 89, 122, 576, 3031 -1, -1, 1238, -1, 1240, 1241, -1, -1, -1, 586, 3032 587, 231, -1, 590, 1478, 235, 1480, 237, -1, 596, 3033 -1, 598, 114, -1, -1, -1, 246, -1, -1, -1, 3034 122, 123, 252, -1, 1409, -1, 587, 257, 75, 616, 3035 77, 78, 79, 1276, 621, -1, 623, 267, -1, -1, 3036 627, 88, 89, 630, 631, 275, -1, -1, -1, -1, 3037 75, -1, 77, 78, 79, -1, 1441, -1, 1443, 646, 3038 -1, 648, -1, 88, 89, -1, 1309, 782, -1, 630, 3039 631, -1, -1, 1319, -1, -1, -1, 792, -1, -1, 3040 10, 11, 12, 13, 14, 646, -1, -1, 803, 114, 3041 441, 678, -1, 1478, 681, 1480, -1, -1, 0, -1, 3042 -1, -1, -1, -1, 1028, 1029, 1030, -1, -1, -1, 3043 -1, 341, 42, -1, -1, 345, 467, 704, 705, 706, 3044 -1, 351, 1507, -1, -1, 712, 713, -1, -1, -1, 3045 1376, 1377, 34, -1, 364, -1, -1, -1, 368, -1, 3046 70, -1, -1, 704, -1, -1, -1, 10, 11, 12, 3047 13, 14, 739, -1, 505, -1, 743, 744, -1, 510, 3048 -1, -1, 513, 3, -1, -1, 1409, -1, 1414, 71, 3049 10, 11, 12, 13, 14, -1, -1, -1, -1, 42, 3050 -1, -1, -1, -1, 114, -1, 116, 417, -1, 1432, 3051 -1, -1, 122, 123, -1, -1, 1439, -1, -1, 786, 3052 -1, 431, 42, -1, -1, -1, 436, 70, 795, -1, 3053 797, -1, 75, 0, 444, 802, 79, -1, -1, -1, 3054 -1, -1, -1, -1, -1, 88, 89, 814, 1474, 68, 3055 70, -1, 462, -1, -1, 465, -1, 1483, 77, -1, 3056 -1, -1, -1, -1, -1, -1, -1, 34, 1491, -1, 3057 480, 114, 482, -1, -1, -1, 158, -1, -1, 122, 3058 123, 491, 190, -1, -1, 495, -1, -1, 75, 197, 3059 77, 78, 79, -1, -1, -1, 863, -1, -1, -1, 3060 119, 88, 89, -1, 71, 68, 1001, 1002, -1, -1, 3061 -1, -1, -1, -1, 524, -1, -1, -1, 885, -1, 3062 -1, 84, 863, -1, -1, 892, 893, 114, 895, 116, 3063 -1, -1, 663, -1, -1, 122, 123, -1, -1, -1, 3064 907, 672, 161, -1, 885, 676, -1, -1, 135, 231, 3065 -1, -1, -1, 920, 921, -1, 119, -1, 925, 569, 3066 -1, 269, -1, -1, 931, 932, -1, 1062, 1063, -1, 3067 252, -1, -1, -1, -1, 257, 586, 587, -1, -1, 3068 75, -1, 77, 78, 79, -1, -1, 954, 598, -1, 3069 931, 158, -1, 88, 89, -1, -1, -1, 161, -1, 3070 -1, -1, -1, 222, -1, -1, 616, -1, -1, -1, 3071 75, 621, 77, 78, 79, -1, 983, 627, 326, 114, 3072 630, 631, -1, 88, 89, 68, 334, 122, 123, 337, 3073 -1, 75, -1, 77, 78, 79, 646, 1004, 1005, -1, 3074 -1, 260, -1, -1, 88, 89, 265, -1, -1, 114, 3075 -1, 116, -1, -1, 664, 1022, -1, 122, 123, 222, 3076 -1, -1, 1366, 1004, 1005, 675, -1, -1, -1, 351, 3077 114, -1, 116, -1, -1, -1, 119, -1, 122, 123, 3078 -1, 1022, -1, -1, -1, 252, -1, -1, -1, 397, 3079 257, 701, -1, 401, 704, -1, -1, 260, -1, -1, 3080 1067, -1, 265, 713, -1, 1072, 716, -1, -1, -1, 3081 1077, -1, -1, 1208, -1, -1, -1, -1, 161, 1086, 3082 -1, -1, -1, -1, -1, -1, -1, 1094, -1, 739, 3083 -1, 350, -1, -1, 744, 417, 102, 103, 104, 105, 3084 106, 107, 108, 109, 110, 111, 112, -1, -1, 431, 3085 1245, -1, -1, -1, 436, -1, 887, 1252, 1253, 1254, 3086 -1, -1, 444, -1, -1, -1, 1133, -1, -1, 477, 3087 136, -1, 782, -1, -1, -1, -1, -1, -1, 222, 3088 462, -1, 792, -1, 351, 795, -1, 350, 798, -1, 3089 -1, -1, -1, 803, -1, -1, -1, 0, 480, -1, 3090 482, -1, -1, 813, -1, -1, -1, 1174, 1175, -1, 3091 75, 430, 77, 78, 79, -1, -1, 260, -1, -1, 3092 1315, -1, 265, 88, 89, -1, -1, 446, 1195, -1, 3093 -1, 34, -1, 1174, 1175, -1, -1, -1, -1, -1, 3094 -1, -1, 524, 1210, -1, -1, -1, 1214, -1, 114, 3095 417, 116, 471, 863, 1195, -1, -1, 122, 123, -1, 3096 568, 569, -1, -1, 431, -1, -1, 430, 71, 436, 3097 -1, -1, -1, 1214, -1, 885, -1, 444, -1, -1, 3098 -1, -1, 892, -1, -1, 895, 75, -1, 77, 78, 3099 79, -1, -1, -1, -1, 462, 1263, 1264, -1, 88, 3100 89, -1, 1033, -1, 1271, 587, -1, 350, 471, 1276, 3101 -1, 921, -1, 480, -1, 482, -1, -1, -1, -1, 3102 930, 931, 1263, 1264, -1, 114, -1, -1, -1, -1, 3103 1271, -1, -1, 122, 123, 1276, -1, -1, -1, -1, 3104 -1, -1, 1309, 651, -1, -1, 86, 655, 630, 631, 3105 90, 91, 92, -1, -1, 158, -1, 524, -1, -1, 3106 -1, -1, -1, -1, 646, -1, -1, -1, 1309, -1, 3107 -1, 590, -1, 983, 114, -1, 116, -1, 118, 119, 3108 -1, -1, 664, -1, -1, -1, 996, 430, -1, -1, 3109 -1, 1001, 1002, 675, 1004, 1005, -1, -1, -1, 618, 3110 1367, 86, -1, -1, 623, 90, 91, 92, -1, -1, 3111 -1, -1, 1022, -1, -1, -1, -1, 1384, -1, 701, 3112 587, -1, 704, -1, -1, -1, -1, 590, 471, 114, 3113 -1, 116, -1, 118, 119, -1, -1, -1, -1, -1, 3114 -1, -1, 1409, 1384, -1, -1, -1, -1, -1, 252, 3115 -1, -1, 1062, 1063, 257, 618, -1, 739, -1, -1, 3116 623, -1, -1, 630, 631, 1432, -1, -1, 1409, -1, 3117 -1, -1, 1439, 692, 1441, -1, 1443, -1, 786, 646, 3118 -1, -1, -1, -1, -1, -1, -1, 706, -1, -1, 3119 -1, 1432, -1, -1, -1, -1, -1, 664, 1439, -1, 3120 782, -1, -1, -1, -1, -1, 1473, -1, 675, -1, 3121 792, 1478, -1, 1480, -1, -1, 798, -1, -1, -1, 3122 -1, 803, -1, 1133, 1491, 0, -1, -1, -1, 692, 3123 1497, 1498, -1, -1, 701, -1, -1, 704, -1, -1, 3124 1507, -1, -1, 706, -1, -1, -1, 590, 351, -1, 3125 1491, -1, -1, -1, 1285, 1522, -1, -1, -1, 34, 3126 -1, -1, -1, -1, -1, 1175, -1, -1, -1, -1, 3127 -1, -1, 739, -1, -1, 618, -1, -1, 797, -1, 3128 623, 863, -1, -1, -1, 1195, -1, -1, 28, 29, 3129 30, 899, -1, -1, -1, -1, 71, -1, 1208, -1, 3130 1210, -1, -1, 885, 1214, -1, -1, -1, -1, -1, 3131 892, -1, -1, -1, 417, 782, -1, -1, -1, -1, 3132 -1, -1, -1, -1, -1, 792, -1, -1, 431, -1, 3133 -1, 798, -1, 436, 797, 1245, 803, -1, -1, -1, 3134 -1, 444, 1252, 1253, 1254, -1, -1, -1, 59, 692, 3135 -1, -1, -1, 1263, 1264, -1, -1, -1, -1, 462, 3136 100, -1, 102, 706, -1, 973, 1276, -1, -1, -1, 3137 -1, -1, -1, -1, -1, -1, -1, 480, -1, 482, 3138 -1, 989, -1, 158, -1, -1, -1, -1, -1, -1, 3139 -1, -1, -1, -1, -1, -1, 863, 108, -1, 1309, 3140 111, -1, -1, -1, -1, 1315, -1, -1, -1, 1440, 3141 -1, 1442, -1, -1, -1, -1, -1, -1, 885, 1001, 3142 1002, 524, 1004, 1005, -1, 892, -1, -1, -1, -1, 2925 0, 1, 0, 200, 0, 45, 180, 444, 180, 1, 2926 0, 180, 843, 45, 180, 45, 590, 180, 506, 632, 2927 180, 180, 525, 154, 1035, 183, 561, 341, 1035, 116, 2928 1035, 31, 32, 608, 34, 1304, 34, 485, 34, 0, 2929 34, 489, 105, 996, 34, 45, 246, 843, 341, 590, 2930 337, 51, 970, 51, 0, 588, 42, 356, 215, 59, 2931 588, 360, 165, 166, 64, 42, 64, 67, 878, 67, 2932 70, 45, 70, 34, 703, 588, 1037, 67, 70, 588, 2933 409, 255, 54, 255, 969, 970, 255, 1264, 34, 255, 2934 153, 66, 255, 251, 252, 255, 255, 42, 45, 428, 2935 592, 42, 67, 588, 596, 42, 106, 436, 588, 109, 2936 197, 45, 417, 418, 1389, 84, 116, 933, 42, 0, 2937 1, 42, 42, 30, 124, 617, 114, 999, 1000, 621, 2938 116, 47, 48, 471, 1, 622, 623, 114, 100, 116, 2939 180, 42, 114, 1412, 112, 145, 84, 145, 180, 114, 2940 180, 638, 71, 34, 588, 74, 987, 157, 77, 157, 2941 79, 101, 137, 1088, 980, 0, 85, 288, 136, 114, 2942 591, 116, 134, 114, 81, 116, 597, 114, 116, 116, 2943 180, 181, 487, 181, 471, 478, 67, 127, 1463, 70, 2944 114, 987, 116, 114, 114, 116, 116, 197, 685, 34, 2945 57, 506, 181, 114, 120, 205, 180, 205, 693, 409, 2946 45, 714, 1084, 693, 214, 255, 51, 217, 0, 217, 2947 794, 11, 1032, 255, 224, 255, 1187, 217, 428, 64, 2948 114, 766, 67, 180, 234, 70, 436, 237, 0, 1, 2949 97, 241, 242, 241, 401, 241, 180, 241, 101, 782, 2950 246, 241, 34, 794, 782, 255, 256, 1434, 256, 693, 2951 115, 117, 262, 568, 1441, 265, 121, 121, 276, 782, 2952 333, 119, 34, 782, 127, 114, 590, 256, 1496, 578, 2953 241, 910, 1200, 137, 622, 623, 899, 47, 48, 208, 2954 3, 181, 423, 301, 302, 241, 135, 782, 1393, 1517, 2955 638, 1226, 782, 1228, 1229, 90, 1524, 42, 70, 3, 2956 145, 1264, 67, 887, 1496, 42, 121, 1494, 47, 48, 2957 619, 608, 157, 323, 816, 323, 613, 121, 415, 337, 2958 135, 42, 189, 118, 421, 1253, 217, 1168, 42, 668, 2959 340, 341, 1524, 137, 122, 180, 181, 685, 782, 51, 2960 128, 129, 342, 886, 42, 212, 121, 357, 886, 119, 2961 241, 361, 117, 784, 372, 222, 256, 1252, 1253, 10, 2962 205, 371, 1168, 948, 115, 242, 623, 886, 499, 114, 2963 501, 116, 217, 504, 0, 516, 507, 114, 726, 116, 2964 119, 638, 1345, 453, 135, 395, 1491, 395, 121, 115, 2965 892, 1496, 157, 114, 75, 116, 241, 1036, 114, 1445, 2966 114, 113, 116, 409, 137, 415, 395, 88, 89, 135, 2967 255, 421, 1517, 114, 115, 344, 114, 346, 116, 1524, 2968 136, 288, 428, 1264, 75, 115, 77, 78, 685, 726, 2969 436, 224, 121, 931, 1480, 116, 1482, 121, 579, 1078, 2970 1041, 115, 1043, 901, 237, 135, 456, 121, 137, 241, 2971 121, 461, 217, 137, 246, 1, 903, 1385, 668, 469, 2972 1083, 469, 462, 473, 135, 473, 775, 473, 478, 241, 2973 794, 481, 682, 473, 1058, 1438, 486, 1440, 323, 1500, 2974 469, 622, 623, 1500, 249, 1500, 115, 1313, 136, 254, 2975 1385, 794, 121, 205, 75, 395, 341, 638, 79, 1138, 2976 1139, 0, 473, 432, 1475, 51, 121, 88, 89, 519, 2977 115, 59, 95, 96, 524, 75, 121, 473, 114, 114, 2978 633, 116, 137, 541, 542, 543, 957, 958, 88, 89, 2979 1501, 121, 1495, 114, 4, 5, 6, 7, 8, 9, 2980 115, 122, 123, 640, 685, 135, 121, 130, 131, 261, 2981 395, 1377, 1378, 117, 651, 1526, 116, 121, 106, 105, 2982 75, 109, 77, 78, 79, 1466, 433, 113, 916, 469, 2983 121, 1472, 117, 88, 89, 114, 121, 342, 588, 456, 2984 590, 75, 473, 77, 78, 79, 137, 657, 891, 301, 2985 121, 458, 1493, 1434, 88, 89, 121, 1498, 144, 609, 2986 1441, 117, 72, 115, 74, 121, 137, 153, 114, 121, 2987 610, 75, 137, 114, 624, 116, 273, 409, 628, 916, 2988 115, 969, 137, 579, 88, 89, 121, 637, 473, 639, 2989 640, 641, 499, 478, 114, 117, 428, 504, 121, 121, 2990 507, 651, 519, 137, 436, 121, 114, 524, 121, 121, 2991 114, 948, 116, 1494, 137, 201, 116, 422, 118, 205, 2992 114, 137, 668, 830, 137, 137, 214, 137, 115, 114, 2993 680, 115, 121, 673, 121, 135, 682, 0, 1, 471, 2994 75, 473, 117, 693, 694, 75, 121, 687, 137, 79, 2995 858, 701, 762, 88, 89, 705, 115, 462, 88, 89, 2996 115, 473, 772, 773, 115, 133, 121, 115, 136, 703, 2997 121, 34, 730, 783, 262, 261, 115, 75, 264, 77, 2998 78, 115, 45, 836, 114, 114, 867, 121, 51, 3, 2999 88, 89, 122, 123, 1373, 115, 10, 11, 12, 13, 3000 14, 64, 288, 588, 67, 590, 75, 70, 77, 78, 3001 1389, 115, 115, 114, 961, 301, 114, 1105, 121, 88, 3002 89, 119, 639, 115, 641, 120, 760, 1280, 42, 121, 3003 115, 114, 782, 116, 1076, 115, 121, 777, 1080, 122, 3004 123, 121, 105, 114, 794, 124, 125, 333, 121, 656, 3005 113, 337, 340, 116, 117, 115, 70, 114, 665, 116, 3006 67, 121, 669, 680, 114, 122, 123, 114, 1105, 357, 3007 356, 137, 115, 361, 360, 93, 94, 582, 121, 115, 3008 114, 144, 145, 1462, 1463, 121, 836, 119, 969, 970, 3009 153, 154, 842, 843, 157, 115, 137, 843, 832, 137, 3010 497, 121, 119, 843, 84, 610, 97, 98, 693, 694, 3011 615, 1035, 114, 1035, 114, 51, 1035, 180, 181, 1035, 3012 84, 1028, 1035, 132, 874, 1035, 1035, 877, 123, 982, 3013 133, 417, 418, 99, 197, 75, 668, 77, 78, 79, 3014 116, 891, 205, 120, 121, 874, 117, 843, 88, 89, 3015 682, 114, 115, 116, 217, 117, 966, 967, 444, 115, 3016 902, 115, 116, 1200, 1252, 61, 62, 917, 673, 115, 3017 456, 867, 115, 923, 114, 114, 910, 113, 241, 929, 3018 47, 48, 687, 933, 1089, 1090, 249, 67, 120, 121, 3019 948, 254, 255, 256, 726, 115, 76, 782, 261, 485, 3020 115, 487, 936, 489, 548, 549, 550, 551, 144, 794, 3021 115, 951, 843, 499, 137, 501, 1026, 1027, 504, 671, 3022 506, 507, 114, 115, 116, 288, 114, 115, 116, 987, 3023 980, 1068, 544, 545, 874, 546, 547, 117, 301, 117, 3024 990, 987, 116, 993, 994, 995, 119, 987, 119, 288, 3025 984, 114, 115, 116, 317, 136, 653, 61, 62, 63, 3026 323, 121, 869, 10, 11, 12, 13, 14, 136, 205, 3027 333, 902, 777, 1023, 337, 552, 553, 157, 341, 342, 3028 119, 114, 568, 1033, 115, 1035, 115, 1037, 135, 874, 3029 117, 987, 578, 356, 117, 42, 117, 360, 135, 1049, 3030 917, 135, 1036, 121, 1033, 31, 891, 115, 1037, 115, 3031 119, 843, 929, 115, 121, 120, 933, 1198, 1068, 120, 3032 717, 609, 608, 70, 1511, 261, 75, 613, 77, 78, 3033 79, 843, 395, 619, 120, 114, 624, 217, 1088, 88, 3034 89, 115, 135, 137, 1078, 115, 121, 115, 75, 637, 3035 77, 78, 415, 115, 417, 418, 987, 115, 421, 115, 3036 423, 88, 89, 980, 121, 301, 120, 115, 31, 249, 3037 115, 1252, 1253, 122, 254, 115, 115, 115, 417, 418, 3038 115, 444, 115, 115, 916, 671, 115, 114, 1198, 119, 3039 902, 998, 119, 1033, 115, 1145, 115, 1037, 461, 115, 3040 136, 337, 115, 115, 1138, 1139, 469, 121, 471, 117, 3041 473, 697, 117, 115, 115, 478, 114, 135, 1168, 115, 3042 872, 121, 1168, 1233, 487, 119, 121, 115, 1168, 121, 3043 121, 1241, 1242, 1243, 115, 114, 499, 1187, 501, 114, 3044 114, 504, 114, 506, 507, 114, 951, 137, 1033, 135, 3045 1035, 135, 1037, 516, 121, 987, 120, 135, 1187, 135, 3046 499, 115, 342, 1205, 115, 504, 115, 135, 507, 117, 3047 120, 1088, 1168, 75, 133, 987, 1226, 120, 1228, 1229, 3048 82, 417, 418, 85, 119, 87, 88, 89, 115, 775, 3049 137, 117, 121, 75, 117, 77, 78, 560, 561, 115, 3050 115, 115, 3, 115, 1385, 568, 88, 89, 444, 10, 3051 11, 12, 13, 14, 116, 578, 579, 117, 1264, 582, 3052 559, 117, 117, 117, 1264, 588, 75, 590, 77, 78, 3053 79, 117, 1369, 1283, 116, 843, 117, 1168, 50, 88, 3054 89, 42, 422, 1293, 137, 608, 137, 1187, 137, 137, 3055 613, 487, 615, 137, 120, 115, 619, 115, 438, 622, 3056 623, 115, 1304, 1313, 1293, 114, 32, 115, 1264, 70, 3057 506, 135, 115, 1105, 1205, 638, 1500, 640, 1500, 120, 3058 120, 1500, 462, 117, 1500, 117, 872, 1500, 651, 1339, 3059 1500, 1500, 1342, 86, 117, 117, 117, 117, 115, 115, 3060 1052, 1411, 1187, 117, 114, 114, 1348, 1347, 671, 1226, 3061 114, 1228, 1229, 63, 119, 901, 902, 903, 1368, 1369, 3062 115, 115, 685, 686, 687, 114, 137, 1377, 1378, 117, 3063 693, 694, 568, 1264, 117, 115, 1168, 75, 1475, 1373, 3064 117, 115, 101, 1393, 82, 101, 114, 85, 1398, 87, 3065 88, 89, 114, 1293, 115, 1389, 1168, 120, 124, 137, 3066 1400, 115, 948, 726, 115, 45, 1273, 1417, 1200, 115, 3067 1412, 135, 608, 1304, 121, 115, 115, 613, 1428, 1076, 3068 137, 101, 990, 1080, 1081, 137, 101, 115, 1434, 137, 3069 117, 115, 137, 1205, 1434, 1441, 1313, 115, 120, 115, 3070 137, 1441, 582, 766, 117, 993, 994, 995, 1293, 117, 3071 1500, 137, 775, 114, 777, 120, 1347, 1348, 1500, 782, 3072 1500, 120, 115, 137, 115, 1475, 1476, 1179, 1462, 1463, 3073 610, 794, 1264, 137, 115, 615, 1486, 115, 1434, 1005, 3074 554, 1491, 555, 558, 556, 1441, 1496, 557, 1494, 928, 3075 1500, 1501, 1264, 1501, 1494, 1168, 1463, 1350, 1536, 1081, 3076 1377, 1378, 1309, 1274, 1441, 1515, 1052, 1517, 234, 1400, 3077 1023, 1521, 1501, 872, 1524, 1033, 1526, 67, 1526, 1293, 3078 843, 1412, 1532, 1043, 705, 895, 1536, 923, 75, 634, 3079 77, 78, 1304, 673, 836, 697, 1205, 1526, 1494, 265, 3080 1417, 88, 89, 1434, 867, 894, 713, 687, 473, 872, 3081 1441, 874, -1, -1, 1211, -1, 560, 75, 560, 77, 3082 78, 79, -1, 886, 887, -1, 560, 117, 891, -1, 3083 88, 89, 119, -1, -1, 1442, 1348, 1444, -1, 902, 3084 903, -1, 1347, 0, 1, -1, 4, 5, 6, 7, 3085 8, 9, -1, 916, -1, -1, 114, -1, 116, 1476, 3086 1168, 1501, -1, 1494, 122, 123, -1, 157, 657, 1486, 3087 -1, 3, 1479, -1, 1481, -1, -1, 34, 10, 11, 3088 12, 13, 14, -1, -1, 948, 1526, -1, -1, -1, 3089 -1, -1, -1, 1179, 51, 1400, -1, 777, -1, -1, 3090 1412, -1, 1434, -1, -1, 371, 969, 970, 1305, 1441, 3091 42, -1, 1309, 70, 72, 1500, 74, -1, 1525, 1205, 3092 1527, -1, 1434, -1, 987, -1, -1, 217, 75, 1441, 3093 77, 78, 79, 1540, 1541, -1, -1, -1, 70, -1, 3094 -1, 88, 89, -1, 234, -1, -1, -1, 105, 10, 3095 11, 12, 13, 14, 10, 11, 12, 13, 14, 249, 3096 -1, -1, 1494, -1, 254, -1, -1, 903, -1, -1, 3097 1033, -1, 1035, 762, 1037, 1283, -1, -1, -1, -1, 3098 -1, 42, 1494, 772, 773, 51, 42, -1, 145, 1052, 3099 -1, 1443, -1, 1445, 783, 1058, 153, 154, 64, -1, 3100 -1, 67, -1, -1, 70, 1068, -1, 0, -1, 70, 3101 -1, -1, 948, -1, 70, 481, -1, 86, 1304, 1416, 3102 486, 90, 91, 92, 181, -1, -1, -1, 1480, -1, 3103 1482, 1339, -1, -1, 1342, -1, -1, -1, -1, -1, 3104 197, 34, 1105, 200, 201, 114, -1, 116, 205, 118, 3105 119, -1, 342, 114, -1, 116, -1, -1, 114, -1, 3106 116, 122, 123, -1, -1, -1, 122, 123, -1, 226, 3107 -1, 951, -1, 230, 185, 232, -1, 70, 235, 145, 3108 1368, 192, -1, -1, 241, 1393, -1, -1, 75, 246, 3109 1398, 157, 79, -1, -1, -1, -1, -1, -1, 256, 3110 -1, 88, 89, -1, -1, 1168, -1, 264, -1, -1, 3111 1149, 1150, -1, 1152, -1, 181, 1179, -1, -1, 1158, 3112 1428, -1, 1161, -1, 1187, -1, 1412, 114, -1, 116, 3113 -1, -1, 422, -1, -1, 122, 123, 1200, -1, 205, 3114 -1, 75, 1205, 77, 78, 79, -1, 258, -1, -1, 3115 -1, 217, -1, -1, 88, 89, -1, 1443, -1, 1445, 3116 -1, 154, 628, -1, 4, 5, 6, 7, 8, 9, 3117 -1, -1, 462, -1, -1, -1, 333, 966, 967, -1, 3118 337, -1, -1, -1, -1, -1, 343, -1, -1, 1252, 3119 1253, -1, -1, -1, 1480, 35, 1482, -1, -1, 356, 3120 -1, 1264, -1, 360, -1, -1, 317, 1515, 75, -1, 3121 77, 78, 79, 1521, -1, 326, -1, -1, 329, -1, 3122 -1, 88, 89, -1, 1532, 1511, -1, -1, 1536, -1, 3123 1293, -1, 72, 226, 74, 701, -1, 1026, 1027, 705, 3124 -1, 1304, -1, -1, -1, -1, -1, 114, 241, 116, 3125 -1, -1, 409, 246, -1, 122, 123, 323, -1, -1, 3126 -1, -1, -1, -1, -1, -1, 423, -1, 135, -1, 3127 -1, 428, -1, -1, -1, -1, 387, -1, -1, 436, 3128 391, -1, -1, -1, 1347, 1348, -1, 75, -1, 77, 3129 78, 79, 582, -1, -1, -1, 453, -1, -1, 456, 3130 88, 89, 1341, -1, -1, 75, 1369, 77, 78, 79, 3131 -1, -1, -1, -1, 471, -1, 473, -1, 88, 89, 3132 610, -1, 1385, -1, -1, 615, 114, -1, 485, 395, 3133 0, -1, 489, -1, 122, 123, -1, 1400, -1, -1, 3134 -1, -1, -1, -1, 114, -1, 116, -1, 75, 1412, 3135 343, -1, 122, 123, -1, 82, -1, 468, 85, 516, 3136 87, 88, 89, 86, 34, -1, -1, 90, 91, 92, 3137 836, 1434, -1, -1, 75, -1, 842, -1, 1441, -1, 3138 1443, 82, 1445, 673, 85, -1, 87, 88, 89, 116, 3139 -1, 114, -1, 116, -1, 118, 119, 687, -1, -1, 3140 70, -1, 0, 1, 561, -1, -1, -1, -1, -1, 3141 -1, 877, 1475, -1, -1, 116, 409, 1480, -1, 1482, 3142 -1, 578, 579, -1, -1, -1, -1, -1, -1, -1, 3143 423, 1494, -1, 590, -1, 428, 34, 1500, 1501, -1, 3144 -1, -1, -1, 436, 1233, -1, -1, -1, 1511, 560, 3145 561, 608, 1241, 1242, 1243, -1, 613, 923, -1, 0, 3146 453, -1, 619, 1526, -1, 622, 623, 1347, -1, 67, 3147 -1, -1, 70, -1, -1, -1, -1, -1, 471, -1, 3148 473, 638, -1, -1, 154, -1, -1, 777, -1, -1, 3149 -1, -1, -1, 34, 10, 11, 12, 13, 14, -1, 3150 657, -1, 75, -1, 77, 78, 79, -1, -1, -1, 3151 -1, 668, -1, -1, -1, 88, 89, -1, -1, -1, 3152 1400, -1, -1, 516, -1, 682, 42, -1, 685, 70, 3153 -1, 642, -1, -1, -1, 646, -1, 694, -1, -1, 3154 697, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3155 123, -1, -1, -1, 70, -1, 154, 1023, -1, 75, 3156 -1, 77, 78, 79, 75, -1, 77, 78, 79, 726, 3157 -1, 241, 88, 89, -1, 1511, 246, 88, 89, -1, 3158 -1, -1, -1, 1049, -1, -1, 579, -1, -1, -1, 3159 -1, 10, 11, 12, 13, 14, -1, -1, 114, -1, 3160 116, -1, -1, 114, -1, 762, 122, 123, -1, -1, 3161 -1, 122, 123, 154, -1, 772, 773, -1, 775, 217, 3162 -1, 778, 1411, 42, -1, -1, 783, -1, -1, 622, 3163 623, -1, -1, -1, -1, -1, 793, -1, -1, -1, 3164 -1, -1, -1, 241, -1, 638, -1, -1, -1, -1, 3165 -1, 70, -1, -1, -1, 766, 75, -1, 77, 78, 3166 79, 951, -1, -1, 657, -1, -1, -1, -1, 88, 3167 89, -1, -1, 343, -1, 668, -1, -1, -1, 1145, 3168 -1, -1, -1, -1, -1, -1, 843, -1, -1, 682, 3169 -1, -1, 685, -1, -1, 114, -1, 116, -1, -1, 3170 241, -1, -1, 122, 123, 246, -1, -1, -1, -1, 3171 867, -1, 102, 103, 104, 105, 106, 107, 108, 109, 3172 110, 111, 112, -1, -1, -1, -1, -1, -1, -1, 3173 887, -1, -1, 726, -1, -1, -1, -1, -1, 409, 3174 -1, -1, -1, -1, 901, 902, 136, -1, -1, -1, 3175 -1, -1, -1, 423, -1, -1, -1, -1, 428, 916, 3176 -1, -1, -1, -1, -1, -1, 436, -1, -1, 762, 3177 -1, -1, -1, -1, -1, -1, -1, -1, -1, 772, 3178 773, -1, -1, 453, -1, 778, -1, -1, -1, -1, 3179 783, 948, -1, -1, 10, 11, 12, 13, 14, -1, 3180 -1, 471, 343, 473, 961, -1, -1, -1, -1, 966, 3181 967, -1, 969, 970, -1, -1, -1, -1, -1, -1, 3182 -1, -1, -1, -1, -1, 423, 42, 938, -1, -1, 3183 987, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3184 -1, -1, -1, 954, -1, -1, 516, -1, -1, -1, 3185 843, -1, 0, -1, 70, 59, -1, -1, -1, 75, 3186 -1, 77, 78, 79, 42, -1, -1, -1, 409, 1026, 3187 1027, -1, 88, 89, 867, 473, -1, -1, -1, -1, 3188 1037, -1, 423, -1, -1, -1, 34, 428, -1, -1, 3189 -1, -1, 70, -1, -1, 436, -1, 75, 114, -1, 3190 28, 79, 106, -1, -1, 109, 122, 123, -1, 579, 3191 88, 89, 453, -1, -1, -1, -1, -1, 516, -1, 3192 -1, -1, 70, 916, 10, 11, 12, 13, 14, -1, 3193 471, 1042, 473, -1, -1, -1, 114, -1, -1, -1, 3194 -1, -1, -1, -1, 122, 123, -1, -1, 1105, -1, 3195 -1, -1, 622, 623, -1, 83, 42, -1, -1, -1, 3196 -1, -1, -1, -1, -1, -1, -1, -1, 638, -1, 3197 98, -1, 100, 966, 967, 516, 969, 970, -1, -1, 3198 -1, 579, -1, -1, 70, -1, -1, 657, -1, 75, 3199 -1, 77, 78, 79, 987, -1, -1, -1, 668, -1, 3200 -1, -1, 88, 89, -1, -1, 154, -1, -1, -1, 3201 214, 1168, 682, -1, -1, 685, -1, -1, -1, -1, 3202 -1, -1, -1, -1, 622, 623, -1, -1, 114, -1, 3203 116, -1, -1, 1026, 1027, -1, 122, 123, 579, -1, 3204 638, 1198, -1, 1200, -1, -1, -1, -1, 1205, -1, 3205 -1, -1, -1, -1, -1, -1, 726, 1347, 262, 187, 3206 188, -1, -1, -1, 192, -1, 194, 195, -1, -1, 3207 -1, 1182, -1, -1, -1, -1, 1233, -1, -1, -1, 3208 -1, 622, 623, -1, 1241, 1242, 1243, 685, -1, -1, 3209 -1, -1, 762, 241, -1, 1252, 1253, 638, 246, -1, 3210 -1, -1, 772, 773, -1, -1, -1, 1264, 778, -1, 3211 1400, -1, 1105, 783, -1, -1, 657, -1, -1, -1, 3212 -1, -1, -1, -1, -1, -1, -1, 668, -1, -1, 3213 -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, 3214 -1, 682, -1, -1, 685, -1, -1, 1304, -1, -1, 3215 -1, -1, -1, 357, -1, -1, -1, 361, -1, -1, 3216 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 3217 -1, -1, -1, 843, -1, 1168, -1, -1, 1289, -1, 3218 -1, -1, -1, -1, -1, 726, -1, -1, -1, -1, 3219 -1, 1348, 42, -1, -1, 343, -1, 867, -1, -1, 3220 -1, -1, -1, -1, -1, 1198, -1, 1200, -1, -1, 3143 3221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3144 1022, -1, 182, -1, -1, -1, 1477, -1, 1479, -1, 3145 -1, -1, 192, 193, 797, -1, -1, 197, -1, 199, 3146 200, -1, 1070, -1, -1, -1, -1, 986, -1, -1, 3147 -1, -1, -1, -1, 1384, -1, -1, 252, -1, -1, 3148 1062, 1063, 257, -1, 587, -1, -1, -1, -1, -1, 3149 1521, -1, 1523, -1, -1, -1, -1, -1, -1, 1409, 3150 -1, 1109, -1, -1, -1, 1536, 1537, -1, 219, -1, 3222 70, 762, -1, -1, -1, 75, -1, -1, 1385, 79, 3223 -1, 772, 773, -1, -1, -1, -1, 778, 88, 89, 3224 1233, -1, 783, -1, -1, 843, 916, -1, 1241, 1242, 3225 1243, -1, -1, -1, 1411, 1412, -1, -1, -1, 1252, 3226 1253, 409, -1, -1, 114, -1, -1, -1, -1, 867, 3227 398, 1264, 122, 123, -1, 423, -1, 1434, -1, -1, 3228 428, -1, -1, -1, 1441, 55, -1, 57, 436, -1, 3229 60, 61, 62, -1, -1, -1, 966, 967, -1, 969, 3230 970, -1, 843, -1, 902, 453, -1, 77, -1, 10, 3231 11, 12, 13, 14, -1, -1, -1, 987, 88, 89, 3232 -1, -1, -1, 471, -1, 473, 867, -1, -1, -1, 3233 -1, -1, -1, -1, -1, -1, -1, 1494, -1, -1, 3234 -1, 42, -1, -1, 1501, -1, -1, -1, -1, -1, 3235 -1, -1, -1, -1, -1, 1348, 1026, 1027, -1, -1, 3236 -1, -1, -1, -1, -1, -1, -1, -1, 516, 70, 3237 -1, 969, 970, -1, 75, 916, 77, 78, 79, -1, 3238 -1, -1, -1, -1, -1, -1, -1, 88, 89, 987, 3239 -1, -1, 1385, -1, -1, -1, -1, -1, -1, -1, 3240 -1, -1, -1, -1, -1, 609, -1, -1, -1, -1, 3241 -1, -1, 182, 114, -1, -1, -1, -1, 1411, -1, 3242 624, 122, 123, -1, -1, 966, 967, -1, 969, 970, 3243 -1, 579, -1, 637, -1, 1105, 564, 565, -1, -1, 3244 -1, 1434, -1, -1, -1, -1, 987, -1, 1441, -1, 3151 3245 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3152 -1, -1, 1432, 986, -1, -1, -1, 630, 631, 1439, 3153 -1, -1, -1, -1, 1001, 1002, -1, 1004, 1005, -1, 3154 -1, -1, -1, 646, -1, -1, -1, -1, -1, -1, 3155 -1, 1133, -1, -1, -1, 1022, -1, -1, -1, -1, 3156 -1, 664, 273, -1, -1, -1, -1, -1, -1, -1, 3157 -1, -1, 675, -1, -1, -1, 351, -1, -1, -1, 3158 -1, 1491, -1, -1, -1, 55, -1, 57, 1498, -1, 3159 60, 61, 62, 1175, 64, 1062, 1063, -1, 701, -1, 3160 -1, 704, -1, -1, -1, -1, -1, -1, 78, -1, 3161 -1, -1, -1, 1195, -1, -1, -1, -1, -1, -1, 3162 90, 91, -1, -1, -1, -1, 1208, -1, 1210, -1, 3163 -1, -1, -1, -1, -1, -1, 739, 348, -1, -1, 3164 -1, -1, 417, 986, -1, -1, -1, -1, -1, -1, 3165 -1, -1, -1, -1, 365, 1174, 431, -1, 369, -1, 3166 -1, 436, -1, 1245, -1, -1, 1133, -1, -1, 444, 3167 1252, 1253, 1254, -1, -1, -1, -1, -1, -1, 782, 3168 -1, 1263, 1264, -1, -1, -1, -1, 462, -1, 792, 3169 -1, -1, -1, -1, 1276, 798, -1, -1, -1, -1, 3170 803, -1, -1, -1, -1, 480, -1, 482, 1175, -1, 3171 -1, 1174, 10, 11, 12, 13, 14, -1, -1, -1, 3172 -1, 28, 29, 30, -1, -1, -1, -1, 1195, -1, 3173 -1, -1, -1, 1315, -1, -1, -1, -1, -1, -1, 3174 -1, 1208, -1, 1210, 42, -1, -1, -1, -1, 524, 3175 -1, -1, 1271, -1, -1, -1, -1, -1, -1, -1, 3176 863, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3177 -1, -1, 70, -1, -1, -1, -1, 75, 1245, 77, 3178 78, 79, 885, -1, -1, 1252, 1253, 1254, -1, 892, 3179 88, 89, -1, 100, -1, 102, 1263, 1264, -1, -1, 3180 -1, -1, 1384, -1, -1, -1, -1, -1, 1271, 1276, 3181 -1, -1, 587, -1, -1, -1, 114, -1, 116, -1, 3182 127, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3183 -1, 1174, 572, 573, -1, -1, -1, -1, -1, -1, 3184 -1, -1, -1, -1, -1, -1, -1, -1, 1315, -1, 3185 1432, -1, -1, -1, -1, 630, 631, 1439, -1, 599, 3186 -1, -1, 602, 603, -1, 605, -1, 607, 608, -1, 3187 -1, 646, 612, 613, 344, 182, 346, -1, -1, -1, 3188 -1, -1, -1, 190, -1, 192, 193, 357, 358, 664, 3189 197, -1, 199, 200, -1, -1, -1, -1, 1001, 1002, 3190 675, 1004, 1005, -1, -1, -1, 617, -1, -1, 1491, 3191 -1, -1, -1, -1, -1, -1, -1, 1384, -1, 1022, 3192 -1, 632, -1, -1, -1, -1, 701, -1, 1271, 704, 3193 -1, -1, -1, -1, 645, -1, -1, -1, -1, -1, 3246 -1, -1, -1, 591, -1, -1, 594, 595, -1, 597, 3247 -1, 599, 600, -1, 622, 623, 604, 605, -1, -1, 3248 -1, -1, -1, -1, -1, 1026, 1027, -1, -1, -1, 3249 638, -1, -1, -1, -1, -1, -1, -1, 1168, -1, 3250 -1, 1494, -1, -1, -1, -1, -1, -1, -1, 657, 3251 -1, -1, -1, -1, 642, -1, -1, -1, 646, -1, 3252 668, -1, -1, -1, -1, -1, -1, -1, 1198, -1, 3253 1200, -1, -1, -1, 682, -1, -1, 685, -1, -1, 3254 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3255 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3256 27, 28, 29, 1233, 1105, -1, 336, -1, 338, -1, 3257 1168, 1241, 1242, 1243, -1, 42, -1, -1, 726, 349, 3258 350, -1, 1252, 1253, -1, -1, -1, -1, -1, -1, 3259 -1, -1, -1, -1, 1264, -1, -1, -1, -1, 40, 3260 41, -1, 43, 70, -1, -1, -1, 1205, -1, -1, 3261 -1, -1, -1, -1, 762, -1, -1, -1, -1, -1, 3262 -1, -1, -1, -1, 772, 773, -1, 1168, 69, -1, 3263 778, -1, -1, -1, 75, 783, -1, -1, 79, 843, 3264 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3265 91, 92, -1, -1, 1252, 1253, -1, 1198, -1, 1200, 3266 -1, -1, -1, -1, -1, -1, 1264, -1, -1, -1, 3267 -1, -1, -1, 114, -1, 116, -1, -1, 1348, -1, 3268 -1, 122, 123, 124, 125, 126, 127, -1, -1, -1, 3269 -1, -1, 1233, -1, 135, 843, -1, -1, -1, -1, 3270 1241, 1242, 1243, -1, -1, -1, 1304, -1, -1, -1, 3271 -1, 1252, 1253, -1, -1, 1385, -1, -1, -1, 867, 3272 -1, -1, -1, 1264, -1, -1, -1, -1, -1, -1, 3194 3273 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3195 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1062, 3196 1063, -1, 269, -1, 739, 1432, -1, -1, -1, -1, 3197 -1, -1, 1439, -1, 3, 4, 5, 6, 7, 8, 3274 -1, 1411, -1, -1, -1, -1, -1, -1, -1, 1347, 3275 1348, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3276 -1, -1, -1, -1, 1434, -1, -1, -1, 916, -1, 3277 -1, 1441, -1, -1, -1, -1, -1, -1, -1, -1, 3278 -1, -1, -1, -1, -1, -1, 990, 1385, -1, 993, 3279 994, 995, -1, -1, -1, -1, -1, -1, -1, -1, 3280 -1, -1, 1400, -1, -1, -1, -1, 1348, -1, -1, 3281 938, -1, -1, -1, 1412, -1, -1, -1, 966, 967, 3282 -1, 969, 970, -1, 1494, -1, 954, -1, -1, 957, 3283 958, -1, -1, -1, -1, -1, 1434, -1, -1, 987, 3284 -1, -1, -1, 1441, 1385, 10, 11, 12, 13, 14, 3285 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3286 25, 26, 27, 28, 29, 30, -1, -1, -1, -1, 3287 1411, -1, -1, -1, -1, -1, -1, 42, 1026, 1027, 3288 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3289 -1, -1, -1, 1434, -1, -1, 1494, -1, -1, -1, 3290 1441, 1029, -1, -1, 674, 70, 676, -1, -1, -1, 3291 -1, -1, -1, 683, 684, -1, 81, -1, 688, 1047, 3292 1048, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3293 -1, -1, -1, -1, -1, -1, 706, -1, -1, -1, 3294 -1, 711, -1, -1, -1, -1, -1, -1, -1, -1, 3295 -1, -1, -1, 1494, -1, -1, -1, 1105, -1, -1, 3296 -1, -1, 732, -1, 1168, -1, -1, -1, -1, -1, 3297 -1, -1, -1, -1, -1, 51, -1, -1, -1, -1, 3298 40, 41, 1110, 43, -1, -1, -1, -1, -1, -1, 3299 -1, 67, -1, -1, -1, -1, -1, -1, -1, -1, 3300 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3301 -1, -1, -1, -1, -1, 75, -1, -1, -1, 79, 3302 1168, -1, 82, 83, 84, 85, 86, 87, 88, 89, 3303 -1, 91, 92, -1, -1, -1, -1, 113, -1, -1, 3304 -1, 117, 1170, -1, -1, -1, -1, -1, -1, -1, 3305 1198, -1, 1200, -1, 114, 825, 116, 827, 828, 829, 3306 -1, 1189, 122, 123, 124, 125, 126, 127, 144, -1, 3307 -1, -1, -1, -1, -1, -1, 846, -1, 154, 1283, 3308 -1, 157, -1, -1, -1, 1233, -1, -1, -1, -1, 3309 -1, -1, 862, 1241, 1242, 1243, -1, -1, -1, -1, 3310 -1, -1, -1, -1, 1252, 1253, -1, -1, -1, -1, 3311 -1, -1, -1, -1, -1, 885, 1264, -1, -1, -1, 3312 -1, -1, -1, -1, -1, -1, -1, -1, -1, 205, 3313 -1, -1, -1, -1, -1, 1339, -1, -1, 1342, -1, 3314 -1, 217, -1, -1, -1, -1, -1, -1, -1, -1, 3315 -1, -1, -1, -1, -1, -1, -1, 927, -1, -1, 3316 -1, 1289, 932, -1, 1368, -1, -1, 937, -1, -1, 3317 -1, -1, 942, 943, -1, -1, -1, 947, 254, 949, 3318 950, -1, -1, 953, -1, 261, -1, -1, -1, 1393, 3319 -1, -1, 962, -1, 1398, -1, -1, -1, -1, -1, 3320 1348, -1, -1, -1, -1, -1, -1, -1, 978, 979, 3321 -1, -1, 288, -1, -1, -1, -1, -1, -1, -1, 3322 -1, -1, -1, -1, 1428, 301, -1, -1, -1, -1, 3323 -1, -1, -1, -1, -1, -1, -1, 1385, -1, 1009, 3324 -1, -1, 1012, -1, -1, -1, -1, -1, -1, -1, 3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3326 -1, 337, -1, 1411, -1, -1, 342, -1, -1, -1, 3327 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3328 -1, -1, -1, -1, -1, -1, 1434, 1491, -1, -1, 3329 -1, -1, 1496, 1441, -1, 1065, -1, -1, -1, -1, 3330 -1, 1071, 1072, -1, -1, -1, -1, -1, -1, -1, 3331 -1, 1515, -1, 1517, -1, -1, 1086, 1521, -1, -1, 3332 1524, 1091, -1, -1, -1, -1, 1096, -1, 1532, -1, 3333 -1, -1, 1536, -1, -1, -1, -1, -1, -1, 1109, 3334 -1, 417, 418, -1, -1, -1, 1494, 423, -1, -1, 3335 -1, -1, -1, -1, -1, 1125, -1, 1127, 1128, 1129, 3336 1130, -1, -1, -1, -1, -1, -1, -1, 444, -1, 3337 -1, -1, 1142, -1, 1144, -1, -1, -1, -1, -1, 3338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3339 -1, -1, -1, -1, -1, 471, -1, -1, -1, -1, 3340 -1, -1, -1, -1, 1174, 1175, -1, 67, -1, -1, 3341 -1, 487, -1, -1, -1, -1, 76, -1, 78, -1, 3342 80, -1, -1, 499, -1, 501, 86, -1, 504, -1, 3343 506, 507, -1, -1, -1, -1, -1, -1, -1, -1, 3344 516, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3345 -1, -1, -1, -1, -1, -1, -1, 117, -1, 119, 3346 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, 3347 -1, -1, -1, -1, 1244, 1245, -1, -1, -1, -1, 3348 -1, -1, -1, -1, 1254, -1, -1, -1, -1, -1, 3349 -1, -1, 568, -1, -1, -1, -1, 157, -1, -1, 3350 -1, -1, -1, 579, -1, -1, 582, -1, -1, -1, 3351 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3352 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3353 28, 29, 608, -1, 32, 33, 34, 613, -1, -1, 3354 -1, -1, -1, -1, 42, -1, 622, 623, -1, -1, 3355 -1, 1321, -1, 1323, 1324, 1325, -1, 217, -1, 219, 3356 220, 221, 638, -1, -1, 1335, -1, -1, -1, -1, 3357 -1, -1, 70, 1343, -1, -1, 1346, 75, -1, 77, 3358 78, 79, -1, -1, -1, -1, -1, -1, -1, 249, 3359 88, 89, -1, -1, 254, 671, -1, -1, -1, -1, 3360 -1, -1, -1, -1, -1, -1, 1376, -1, -1, 685, 3361 -1, 687, -1, -1, -1, -1, 114, -1, 116, -1, 3362 -1, -1, -1, -1, 122, 123, 10, 11, 12, 13, 3363 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3364 24, 25, 26, 27, 28, 29, 30, 28, -1, -1, 3365 726, 1421, 1422, -1, -1, -1, -1, -1, 42, -1, 3366 -1, -1, -1, 323, 1434, -1, -1, -1, 46, -1, 3367 -1, 1441, -1, -1, -1, -1, -1, -1, -1, -1, 3368 -1, 1451, 342, -1, -1, -1, 70, 347, 348, -1, 3369 -1, -1, -1, -1, -1, 355, -1, 81, -1, -1, 3370 -1, 777, 83, -1, 1474, -1, -1, -1, 1478, -1, 3371 -1, -1, -1, 91, -1, -1, -1, 98, -1, 100, 3372 -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, 3373 -1, -1, -1, -1, -1, 395, -1, 1507, -1, 1509, 3374 -1, -1, -1, -1, 125, -1, -1, -1, -1, -1, 3375 -1, -1, -1, -1, -1, 415, -1, -1, -1, -1, 3376 420, -1, 422, -1, -1, -1, -1, -1, 1538, 1539, 3377 -1, -1, -1, -1, -1, -1, 1546, 1547, 438, -1, 3378 -1, 441, 442, -1, -1, -1, -1, -1, 448, -1, 3379 168, 867, -1, -1, -1, -1, 872, -1, -1, -1, 3380 -1, -1, 462, -1, 185, -1, 187, 188, -1, 469, 3381 -1, 192, 190, 194, 195, -1, -1, -1, -1, -1, 3382 -1, -1, -1, -1, -1, -1, 204, 903, -1, -1, 3383 -1, -1, -1, -1, -1, 213, -1, -1, -1, -1, 3384 916, -1, -1, -1, -1, 223, -1, -1, -1, -1, 3385 -1, 7, -1, -1, 10, 11, 12, 13, 14, -1, 3386 -1, -1, -1, -1, 242, -1, -1, -1, -1, 247, 3387 -1, -1, 948, -1, -1, -1, -1, 258, -1, -1, 3388 -1, -1, 260, -1, 40, 41, 42, 43, -1, -1, 3389 268, -1, 270, 969, 970, -1, -1, -1, -1, -1, 3390 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3391 -1, 289, -1, 69, 70, -1, -1, -1, -1, 75, 3392 -1, -1, 582, 79, -1, -1, 82, 83, 84, 85, 3393 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3394 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3395 610, -1, -1, 331, -1, 615, -1, 335, 114, -1, 3396 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, 3397 126, 127, -1, -1, -1, -1, 1052, -1, -1, -1, 3398 -1, -1, -1, -1, -1, 363, -1, -1, -1, 367, 3399 368, -1, 370, -1, -1, -1, -1, -1, -1, 377, 3400 378, -1, 380, 381, -1, 383, -1, 385, -1, -1, 3401 -1, -1, -1, 673, -1, -1, -1, 398, -1, -1, 3402 -1, -1, -1, -1, 402, -1, -1, 687, -1, 1105, 3403 -1, -1, 410, -1, -1, -1, -1, -1, -1, -1, 3404 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3405 -1, -1, -1, -1, -1, -1, 434, -1, -1, -1, 3406 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3407 153, 154, -1, -1, -1, -1, -1, -1, -1, -1, 3408 -1, 459, -1, -1, -1, -1, -1, 465, -1, -1, 3409 -1, -1, 470, -1, -1, -1, -1, -1, -1, -1, 3410 -1, -1, 185, 1179, -1, -1, 766, -1, -1, 192, 3411 -1, -1, -1, -1, -1, -1, -1, 777, -1, 40, 3412 41, -1, 43, -1, 1200, -1, -1, -1, -1, -1, 3413 -1, -1, 510, -1, 794, -1, -1, -1, -1, -1, 3414 -1, -1, -1, -1, -1, 523, -1, -1, 69, -1, 3415 -1, -1, -1, -1, 75, -1, 77, 78, 79, -1, 3416 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3417 91, 92, -1, -1, -1, 258, 1252, 1253, -1, -1, 3418 -1, -1, 560, 564, 565, -1, -1, -1, -1, -1, 3419 -1, 569, -1, 114, 572, 116, -1, 118, 119, -1, 3420 -1, 122, 123, 124, 125, 126, 127, -1, -1, -1, 3421 591, 589, -1, 594, 595, -1, 597, -1, 599, 600, 3422 -1, -1, -1, 604, 605, -1, -1, -1, -1, -1, 3423 -1, 891, -1, -1, 317, -1, -1, -1, -1, -1, 3424 -1, -1, -1, 326, 327, -1, 329, 330, -1, 627, 3425 -1, -1, -1, -1, 337, -1, -1, -1, 341, -1, 3426 -1, 642, -1, -1, -1, 646, -1, -1, -1, -1, 3427 -1, 1347, -1, -1, -1, -1, -1, 360, -1, -1, 3428 -1, -1, -1, -1, -1, -1, 664, -1, -1, -1, 3429 -1, 951, -1, -1, -1, -1, -1, -1, -1, -1, 3430 -1, -1, 962, -1, 387, -1, -1, -1, 391, 1385, 3431 -1, -1, -1, 691, -1, -1, -1, -1, -1, -1, 3432 -1, -1, -1, -1, 1400, -1, -1, -1, -1, 707, 3433 708, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3434 423, 719, -1, -1, -1, -1, -1, -1, -1, -1, 3435 -1, -1, -1, -1, -1, 733, -1, -1, -1, -1, 3436 738, -1, -1, -1, -1, -1, -1, 1443, -1, 1445, 3437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3438 -1, -1, -1, -1, -1, 468, -1, -1, 471, -1, 3439 -1, -1, -1, -1, -1, -1, -1, -1, 1058, -1, 3440 -1, -1, -1, -1, 1480, -1, 1482, -1, -1, -1, 3441 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3442 798, -1, -1, -1, -1, -1, -1, 805, -1, -1, 3443 -1, -1, -1, 516, -1, 1511, -1, -1, -1, -1, 3444 818, -1, 820, -1, -1, -1, -1, -1, -1, -1, 3445 -1, -1, -1, -1, -1, 833, -1, -1, -1, -1, 3446 -1, 839, -1, -1, -1, -1, -1, -1, -1, -1, 3447 -1, -1, 850, -1, -1, -1, 854, 560, 561, 144, 3448 -1, -1, -1, -1, -1, -1, -1, -1, -1, 154, 3449 -1, -1, -1, -1, -1, 578, 579, -1, -1, -1, 3450 165, 166, -1, -1, -1, 588, -1, 590, 591, -1, 3451 -1, -1, -1, -1, 597, -1, -1, -1, -1, -1, 3452 -1, -1, -1, -1, 607, 608, -1, 1187, -1, -1, 3453 613, -1, -1, -1, -1, -1, -1, -1, -1, 622, 3454 623, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3455 -1, -1, -1, -1, -1, 638, -1, 938, -1, 642, 3456 643, -1, -1, 646, 647, -1, -1, -1, 946, -1, 3457 -1, -1, 655, 954, -1, -1, 957, 958, -1, -1, 3458 -1, -1, -1, -1, -1, -1, -1, -1, 253, -1, 3459 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3460 -1, -1, 685, 686, 10, 11, 12, 13, 14, 15, 3461 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3462 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3463 -1, -1, -1, -1, 1012, -1, 42, 43, -1, -1, 3464 -1, -1, -1, 726, -1, -1, -1, -1, 1029, -1, 3465 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3466 -1, 1042, -1, -1, 70, -1, 1047, 1048, -1, -1, 3467 -1, 77, 78, -1, -1, -1, 1054, -1, -1, -1, 3468 -1, 1059, -1, 766, -1, -1, -1, 1347, -1, -1, 3469 -1, 1069, -1, -1, -1, -1, -1, -1, -1, 782, 3470 -1, 784, -1, -1, -1, -1, 371, -1, -1, -1, 3471 116, 794, -1, -1, 120, -1, 122, 123, -1, -1, 3472 -1, 1099, -1, -1, -1, -1, -1, -1, -1, 1110, 3473 -1, -1, -1, -1, 1112, -1, -1, -1, 1116, -1, 3474 1400, 1119, -1, -1, -1, -1, -1, -1, -1, -1, 3475 -1, -1, -1, -1, -1, -1, -1, 1135, 1136, -1, 3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3477 -1, -1, -1, -1, -1, 1153, -1, -1, -1, 444, 3478 -1, -1, -1, -1, 867, -1, -1, -1, -1, 1170, 3479 -1, 874, -1, -1, -1, -1, -1, -1, 463, -1, 3480 -1, -1, -1, 886, 887, -1, -1, -1, 1189, -1, 3481 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3483 -1, -1, -1, 916, -1, -1, -1, -1, -1, -1, 3484 -1, 506, -1, -1, 1222, -1, -1, -1, -1, -1, 3485 -1, 516, -1, -1, -1, 938, 939, 522, -1, -1, 3486 525, -1, -1, -1, -1, 948, 1526, 274, -1, 276, 3487 277, 954, 955, 538, 957, 958, 959, -1, -1, 286, 3488 287, -1, -1, -1, -1, -1, 969, 970, -1, -1, 3489 -1, -1, -1, -1, 301, 302, -1, -1, -1, -1, 3490 -1, -1, -1, 568, -1, -1, -1, -1, 1289, -1, 3491 575, -1, -1, -1, 579, -1, -1, -1, -1, -1, 3492 -1, 1299, -1, 1301, -1, -1, -1, -1, -1, -1, 3493 337, -1, -1, -1, -1, -1, -1, -1, 1316, -1, 3494 1318, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3495 1033, -1, 1035, -1, 1037, 1333, -1, -1, -1, 1042, 3496 625, -1, -1, -1, -1, 372, -1, -1, 633, -1, 3497 -1, -1, -1, 1351, 1352, 1058, -1, -1, -1, -1, 3498 -1, -1, -1, -1, 1362, -1, -1, -1, -1, 1367, 3499 -1, -1, 1370, -1, -1, -1, -1, -1, -1, -1, 3500 -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, 3501 -1, 43, -1, 1391, -1, -1, -1, -1, -1, -1, 3502 -1, -1, 1105, 1401, -1, -1, 1404, -1, 1406, 1407, 3503 1408, -1, -1, 698, -1, -1, -1, 69, -1, -1, 3504 -1, -1, -1, 75, -1, -1, -1, 79, -1, 714, 3505 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3506 92, 726, -1, 728, -1, -1, 731, -1, -1, 1447, 3507 -1, 1449, 737, -1, 1452, -1, -1, -1, -1, -1, 3508 -1, -1, 114, -1, 116, -1, -1, 119, -1, 1467, 3509 122, 123, 124, 125, 126, 127, -1, -1, -1, 1182, 3510 -1, -1, -1, -1, 1187, -1, -1, -1, -1, -1, 3511 -1, -1, 777, 778, -1, -1, -1, 1200, -1, -1, 3512 -1, -1, -1, -1, -1, -1, -1, -1, 793, -1, 3513 -1, -1, -1, -1, 541, 542, 543, 544, 545, 546, 3514 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 3515 557, 558, -1, -1, -1, -1, -1, -1, -1, -1, 3516 -1, -1, -1, -1, -1, -1, -1, 832, -1, 1252, 3517 1253, 836, -1, -1, 3, 4, 5, 6, 7, 8, 3198 3518 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3199 3519 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3200 29, -1, -1, 32, 33, 34, 35, 782, 748, 749, 3201 39, 40, 41, 42, 43, -1, -1, 792, -1, -1, 3202 -1, -1, -1, 798, 1491, -1, -1, -1, 803, -1, 3203 1133, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3204 69, 70, -1, 72, -1, 74, 75, -1, 77, 78, 3205 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3206 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3207 -1, -1, 1175, -1, -1, -1, -1, -1, -1, -1, 3208 -1, -1, -1, 40, 41, 114, 43, 116, 863, -1, 3209 -1, -1, 1195, 122, 123, 124, 125, 126, 127, -1, 3210 -1, -1, -1, -1, -1, 1208, -1, 1210, 137, -1, 3211 885, -1, 69, -1, -1, -1, -1, 892, 75, -1, 3212 -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, 3213 87, 88, 89, -1, 91, 92, -1, -1, -1, -1, 3214 -1, -1, 1245, -1, -1, -1, -1, -1, -1, 1252, 3215 1253, 1254, 863, -1, -1, -1, -1, 114, -1, 116, 3216 1263, 1264, 119, -1, 904, 122, 123, 124, 125, 126, 3217 127, -1, -1, 1276, 3, 4, 5, 6, 7, 8, 3218 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3219 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3220 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3221 -1, -1, 1315, 42, -1, -1, -1, -1, -1, -1, 3222 -1, -1, -1, 693, -1, 695, 1001, 1002, -1, 1004, 3223 1005, -1, 702, 703, -1, -1, -1, 707, -1, -1, 3224 -1, 70, -1, 72, -1, 74, -1, 1022, 77, 78, 3225 720, -1, -1, -1, -1, 725, -1, -1, -1, -1, 3226 -1, -1, -1, -1, -1, 572, 573, -1, -1, -1, 3520 29, -1, 867, 32, 33, 34, 1289, 1290, -1, -1, 3521 1293, -1, -1, 42, -1, -1, -1, -1, -1, -1, 3227 3522 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3228 -1, 1384, 752, -1, -1, -1, -1, 1062, 1063, -1, 3229 119, -1, 599, -1, -1, 602, 603, -1, 605, -1, 3230 607, 608, -1, -1, -1, 612, 613, -1, -1, -1, 3231 -1, -1, -1, -1, 1025, -1, -1, 1028, 1029, 1030, 3232 -1, -1, -1, -1, 1064, -1, -1, -1, -1, 1432, 3233 -1, -1, -1, -1, -1, -1, 1439, 51, -1, 10, 3234 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, 3235 -1, -1, -1, -1, 68, -1, -1, -1, 1133, 10, 3236 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, 3237 -1, 42, -1, -1, -1, 845, -1, 847, 848, 849, 3238 -1, -1, -1, -1, -1, -1, -1, -1, 1491, -1, 3239 -1, 42, -1, -1, -1, -1, 866, -1, -1, 70, 3240 1175, 115, -1, -1, 75, 119, 77, 78, 79, -1, 3241 880, -1, -1, -1, -1, -1, -1, 88, 89, 70, 3242 1195, -1, -1, -1, 75, -1, 77, 78, 79, -1, 3243 -1, -1, -1, 1208, 148, 1210, -1, 88, 89, -1, 3244 -1, 748, 749, 114, 158, 116, -1, 161, -1, 919, 3245 -1, 122, 123, -1, -1, -1, -1, 1197, -1, -1, 3246 -1, -1, -1, 114, -1, 116, -1, -1, -1, -1, 3247 1245, 122, 123, -1, -1, -1, -1, 1252, 1253, 1254, 3248 -1, -1, -1, -1, 1195, -1, -1, -1, 1263, 1264, 3249 -1, -1, 962, -1, -1, -1, 210, 967, -1, -1, 3250 -1, 1276, 972, -1, -1, -1, -1, 977, 222, -1, 3251 -1, -1, 982, -1, 984, 985, -1, -1, 988, -1, 3252 -1, -1, -1, -1, -1, -1, 240, 997, -1, -1, 3523 -1, -1, -1, -1, -1, -1, -1, -1, 903, -1, 3524 -1, 70, -1, 72, -1, 74, 75, -1, 77, 78, 3525 79, 916, -1, -1, -1, -1, -1, -1, 923, 88, 3526 89, -1, -1, 928, -1, 7, 931, -1, 10, 11, 3527 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, 3528 -1, -1, -1, -1, -1, 114, 951, 116, -1, -1, 3529 -1, -1, -1, 122, 123, -1, 703, 962, 40, 41, 3530 42, 43, 1385, -1, -1, -1, -1, -1, -1, -1, 3531 -1, -1, -1, -1, -1, -1, -1, 982, -1, 984, 3532 -1, -1, -1, 730, -1, -1, -1, 69, 70, -1, 3533 -1, -1, -1, 75, 999, 1000, -1, 79, -1, -1, 3534 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3535 92, -1, -1, 760, -1, -1, -1, -1, -1, -1, 3536 1025, -1, 40, 41, -1, 43, -1, -1, -1, -1, 3537 -1, -1, 114, -1, 116, -1, -1, -1, -1, -1, 3538 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, 3539 -1, 69, 1475, -1, -1, -1, -1, 75, -1, -1, 3540 -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3541 88, 89, -1, 91, 92, -1, -1, 1500, 1501, 1084, 3253 3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3254 1315, -1, -1, 1013, 1014, -1, -1, -1, 68, -1, 3255 -1, 265, -1, -1, -1, -1, -1, 77, 272, 79, 3256 -1, 81, -1, -1, -1, -1, -1, -1, 88, -1, 3257 -1, -1, -1, -1, 1044, -1, -1, 1047, -1, -1, 3258 -1, -1, -1, 297, 1295, -1, -1, -1, -1, -1, 3259 -1, -1, 899, -1, -1, -1, 310, 904, -1, 119, 3260 -1, 121, 122, 123, -1, -1, -1, -1, -1, 1384, 3261 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 3262 -1, 1091, -1, -1, -1, -1, -1, 1097, 1098, -1, 3263 -1, 345, -1, -1, 1345, -1, 350, 1348, -1, -1, 3264 -1, 161, 42, -1, -1, -1, 1116, -1, -1, -1, 3265 -1, 1121, -1, -1, -1, 1366, 1126, 1432, -1, -1, 3266 -1, -1, -1, -1, 1439, -1, -1, 1137, -1, -1, 3267 70, -1, -1, -1, -1, 75, -1, 77, 78, 79, 3268 1150, 1392, 1152, 1153, 1154, 1155, 1397, -1, 88, 89, 3269 -1, -1, -1, -1, -1, -1, -1, 1167, -1, 1169, 3270 -1, -1, 222, 1173, 224, 225, 226, -1, -1, -1, 3271 -1, 425, 426, -1, 114, 1426, 1491, 431, -1, -1, 3272 -1, -1, 122, 123, -1, -1, -1, -1, -1, -1, 3273 -1, 1201, 1202, -1, -1, -1, -1, -1, 452, -1, 3274 260, -1, -1, -1, -1, 265, -1, -1, -1, -1, 3275 -1, -1, -1, -1, -1, -1, -1, 1064, -1, -1, 3276 -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, 3277 -1, -1, -1, -1, -1, -1, -1, 1488, -1, 493, 3278 -1, -1, 1493, -1, -1, 1255, 1256, -1, -1, -1, 3279 -1, 505, -1, 507, -1, 1265, 510, -1, 512, 513, 3280 1511, -1, 1513, -1, -1, -1, 1517, -1, -1, 1520, 3281 524, 331, -1, -1, -1, -1, -1, 1528, -1, -1, 3282 -1, 1532, -1, -1, -1, -1, -1, -1, -1, -1, 3283 350, -1, -1, -1, -1, 355, 356, -1, -1, -1, 3284 -1, -1, -1, 363, -1, -1, -1, -1, -1, -1, 3285 -1, -1, -1, -1, -1, -1, -1, 1327, -1, 1329, 3286 1330, 1331, 576, -1, -1, -1, -1, -1, -1, -1, 3287 -1, 1341, -1, 587, -1, -1, 590, -1, -1, 1349, 3288 -1, -1, -1, -1, 46, 405, -1, -1, -1, -1, 3289 1197, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3290 -1, -1, 616, 423, 1374, 1375, -1, 621, 428, -1, 3291 430, -1, -1, -1, -1, -1, 630, 631, -1, -1, 3292 -1, -1, -1, -1, 42, -1, 446, -1, -1, 449, 3293 450, 93, 646, -1, -1, -1, -1, 457, -1, -1, 3294 -1, 103, -1, -1, -1, -1, -1, -1, -1, 1419, 3295 1420, 471, 70, -1, -1, -1, -1, 75, 478, 77, 3296 78, 79, 1432, -1, 678, -1, -1, -1, -1, 1439, 3297 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, 3543 -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, 3544 1105, 119, -1, 1526, 122, 123, 124, 125, 126, 127, 3545 -1, -1, -1, -1, -1, -1, -1, -1, 1123, 1124, 3546 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 3547 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3548 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3549 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3550 35, -1, -1, 910, 39, 40, 41, 42, 43, -1, 3298 3551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3299 704, -1, 706, -1, -1, -1, 114, -1, -1, -1, 3300 -1, -1, 1472, -1, 122, 123, 1476, -1, -1, -1, 3301 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3302 -1, -1, -1, -1, -1, 739, -1, -1, -1, -1, 3303 -1, -1, -1, 195, 1504, -1, 1506, -1, -1, -1, 3304 -1, -1, -1, -1, -1, -1, -1, 209, -1, -1, 3305 -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, 3306 -1, -1, -1, -1, 1534, 1535, 228, -1, -1, -1, 3307 590, -1, 1542, 1543, -1, -1, -1, -1, -1, -1, 3308 -1, -1, -1, 797, -1, -1, -1, -1, -1, -1, 3309 -1, 253, -1, -1, -1, -1, 258, -1, 618, -1, 3310 -1, -1, -1, 623, -1, -1, -1, -1, -1, 271, 3311 -1, -1, -1, -1, -1, 277, -1, 279, -1, -1, 3312 283, -1, 285, 286, -1, -1, -1, -1, -1, -1, 3313 -1, -1, 295, 296, -1, -1, 298, -1, -1, -1, 3314 -1, -1, -1, -1, -1, -1, -1, 310, 311, -1, 3315 -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, 3552 -1, -1, -1, -1, -1, -1, -1, -1, -1, 936, 3553 -1, -1, -1, -1, 69, 70, -1, 72, -1, 74, 3554 75, 948, 77, 78, 79, -1, -1, 82, 83, 84, 3555 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3316 3556 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3317 -1, 885, 692, -1, -1, -1, -1, 339, 892, -1, 3318 -1, 343, 345, -1, -1, 69, 706, -1, -1, -1, 3319 -1, 75, -1, 907, -1, 79, -1, -1, 82, 83, 3320 84, 85, 86, 87, 88, 89, -1, 91, 92, 371, 3321 -1, -1, -1, 375, 376, -1, 378, 380, 932, -1, 3322 -1, -1, -1, 385, 386, -1, 388, 389, -1, 391, 3323 114, 393, 116, -1, -1, -1, -1, -1, 122, 123, 3324 124, 125, 126, 127, -1, -1, -1, -1, 410, -1, 3325 -1, 135, -1, -1, -1, -1, 418, -1, -1, -1, 3326 -1, -1, -1, -1, -1, -1, 786, -1, -1, 983, 3327 -1, -1, -1, -1, -1, -1, -1, 797, -1, -1, 3328 442, 40, 41, -1, 43, -1, -1, -1, -1, -1, 3329 1004, 1005, -1, -1, 814, -1, -1, -1, -1, -1, 3330 -1, -1, -1, -1, -1, -1, 468, -1, -1, -1, 3331 69, -1, 474, -1, -1, -1, 75, 479, 77, 78, 3332 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3333 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3334 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3335 -1, -1, -1, 1067, 516, 114, -1, 116, -1, 118, 3336 119, -1, -1, 122, 123, 124, 125, 126, 127, 531, 3337 -1, -1, -1, -1, 7, -1, -1, 10, 11, 12, 3338 13, 14, -1, -1, -1, -1, 549, 550, 551, 552, 3339 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 3340 563, 564, 565, 566, -1, 925, 568, 40, 41, 42, 3341 43, -1, -1, -1, -1, 577, -1, -1, -1, 1133, 3342 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3343 -1, -1, -1, -1, 954, 597, 69, 70, -1, -1, 3344 -1, -1, 75, -1, -1, -1, 79, -1, -1, 82, 3345 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 3346 1174, -1, -1, -1, -1, -1, 986, -1, -1, -1, 3347 -1, -1, -1, 635, -1, -1, -1, 997, -1, -1, 3348 -1, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3349 123, 124, 125, 126, 127, -1, 1210, -1, -1, -1, 3350 -1, -1, -1, -1, -1, -1, -1, -1, -1, 671, 3351 -1, -1, -1, -1, -1, -1, -1, 679, -1, -1, 3352 -1, -1, -1, -1, -1, -1, 689, -1, -1, -1, 3353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3354 -1, -1, -1, -1, -1, -1, -1, -1, 710, 1263, 3355 1264, -1, 1072, -1, -1, -1, -1, 1271, -1, 721, 3356 722, -1, -1, -1, -1, -1, 1086, 10, 11, 12, 3357 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3358 23, 24, 25, 26, 27, 28, 29, 750, -1, -1, 3359 -1, 753, -1, -1, -1, -1, 758, -1, -1, 42, 3360 -1, -1, -1, 157, 158, -1, -1, -1, -1, -1, 3361 -1, -1, -1, -1, -1, -1, -1, 780, -1, -1, 3362 -1, -1, -1, -1, -1, -1, 7, 70, -1, 10, 3363 11, 12, 13, 14, -1, -1, 190, -1, -1, -1, 3364 -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, 3365 -1, -1, -1, -1, 1174, -1, 818, -1, -1, 40, 3366 41, 42, 43, 825, -1, -1, -1, -1, -1, -1, 3367 1384, -1, -1, -1, -1, -1, 838, -1, 840, -1, 3368 -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, 3369 -1, 853, -1, -1, 75, -1, -1, 859, 79, -1, 3370 -1, 82, 83, 84, 85, 86, 87, 88, 89, 871, 3371 91, 92, 874, -1, -1, 269, -1, -1, -1, -1, 3372 -1, -1, -1, -1, -1, -1, -1, 1441, -1, 1443, 3373 -1, 894, -1, 114, -1, 116, -1, -1, -1, -1, 3374 -1, 122, 123, 124, 125, 126, 127, -1, -1, -1, 3375 -1, 1271, -1, -1, -1, -1, -1, -1, -1, -1, 3376 -1, -1, -1, -1, 1478, -1, 1480, -1, -1, -1, 3377 -1, -1, 326, -1, -1, -1, 939, -1, -1, -1, 3378 334, 335, 148, 337, 338, -1, -1, -1, -1, -1, 3379 -1, 345, 158, 1507, -1, 349, -1, -1, -1, -1, 3380 -1, -1, -1, 169, 170, -1, -1, -1, 971, -1, 3381 -1, -1, -1, -1, 368, -1, -1, -1, -1, 981, 3382 983, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3383 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3384 28, 29, -1, 397, 32, 33, 34, 401, -1, -1, 3385 -1, -1, -1, -1, 42, -1, -1, -1, -1, 1022, 3386 -1, -1, -1, -1, 40, 41, -1, 43, -1, -1, 3387 -1, -1, -1, -1, 240, -1, -1, 431, -1, -1, 3388 -1, -1, 70, -1, -1, 1047, -1, 75, -1, 77, 3389 78, -1, -1, 69, -1, -1, -1, -1, 264, 75, 3390 88, 89, -1, 79, -1, -1, 82, 83, 84, 85, 3391 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3392 1082, -1, -1, 477, -1, 1087, 480, -1, 116, -1, 3393 -1, -1, -1, 1095, 122, 123, -1, -1, 114, -1, 3394 116, 1104, -1, -1, -1, 121, 122, 123, 124, 125, 3395 126, 127, -1, -1, -1, -1, -1, -1, -1, -1, 3396 -1, -1, -1, -1, -1, -1, 520, 1129, -1, -1, 3397 524, -1, -1, -1, -1, -1, -1, -1, 1140, -1, 3398 -1, 1143, -1, 1145, -1, -1, -1, -1, -1, -1, 3399 -1, -1, -1, -1, -1, -1, -1, -1, 1160, 1161, 3400 1163, 1164, 1522, -1, -1, -1, -1, -1, -1, -1, 3401 -1, -1, -1, 379, 568, 569, -1, -1, 1180, -1, 3402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3403 -1, -1, 586, 587, -1, -1, 40, 41, -1, 43, 3404 -1, -1, 596, -1, 598, 599, -1, -1, -1, -1, 3405 -1, 605, -1, -1, -1, -1, -1, -1, -1, -1, 3406 -1, 615, 616, -1, 1226, 69, -1, 621, -1, -1, 3407 -1, 75, 1234, -1, -1, 79, 630, 631, 82, 83, 3408 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3409 -1, -1, 646, -1, -1, -1, -1, 651, 652, -1, 3410 -1, 655, 656, -1, -1, -1, 472, -1, 662, -1, 3411 114, -1, 116, -1, -1, 119, -1, -1, 122, 123, 3412 124, 125, 126, 127, -1, -1, -1, 681, -1, -1, 3413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3414 -1, -1, 1304, -1, 1306, -1, 512, -1, -1, -1, 3415 704, 705, -1, -1, -1, -1, -1, -1, 524, -1, 3416 1322, -1, 1324, -1, 530, -1, -1, 533, -1, -1, 3417 -1, -1, -1, -1, -1, -1, -1, 1339, -1, -1, 3418 546, -1, -1, -1, -1, 739, -1, -1, -1, 743, 3419 744, -1, 1354, 1355, -1, -1, -1, -1, -1, -1, 3420 -1, -1, -1, 1365, -1, -1, 1368, -1, 1371, -1, 3421 576, -1, -1, -1, -1, -1, -1, 583, -1, -1, 3422 -1, 587, -1, -1, -1, 1388, -1, -1, 1390, -1, 3423 -1, -1, 786, -1, -1, -1, -1, 1399, -1, -1, 3424 1402, -1, 1404, 1405, 1406, -1, -1, -1, 802, -1, 3425 804, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3426 814, -1, -1, -1, -1, -1, -1, 633, -1, -1, 3427 -1, -1, -1, -1, -1, 641, -1, -1, -1, -1, 3428 -1, -1, -1, 1445, -1, 1447, -1, 1449, -1, -1, 3429 -1, -1, -1, -1, -1, -1, -1, 1460, 1461, -1, 3430 -1, -1, -1, 1465, 4, 5, 6, 7, 8, 9, 3431 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3432 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3433 -1, 885, 32, 33, 34, -1, -1, -1, 892, 893, 3434 -1, 895, 42, -1, -1, 899, -1, -1, -1, -1, 3435 -1, 717, -1, -1, -1, -1, -1, -1, -1, -1, 3436 -1, -1, 728, -1, -1, -1, 920, 921, -1, -1, 3437 70, -1, 72, 739, 74, 741, -1, 77, 78, -1, 3438 -1, -1, -1, -1, -1, 751, -1, -1, -1, -1, 3439 -1, 757, -1, -1, -1, -1, -1, -1, -1, -1, 3440 954, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3441 -1, -1, -1, -1, -1, 115, 116, -1, -1, 973, 3442 974, -1, 122, 123, -1, -1, -1, -1, -1, 983, 3443 -1, 797, 798, -1, -1, 989, 990, -1, 992, 993, 3444 994, -1, -1, -1, -1, -1, -1, 813, -1, -1, 3445 1004, 1005, -1, -1, -1, -1, -1, -1, -1, -1, 3446 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3447 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3448 29, -1, -1, 32, 33, 34, 852, -1, -1, -1, 3449 856, -1, -1, 42, 43, -1, -1, -1, -1, -1, 3450 -1, 40, 41, -1, 43, -1, -1, -1, -1, -1, 3451 -1, -1, -1, -1, -1, -1, 1070, -1, 1072, 885, 3452 -1, 70, -1, 1077, -1, -1, 892, -1, 77, 78, 3453 69, -1, 1086, -1, -1, -1, 75, -1, -1, -1, 3454 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3455 89, -1, 91, 92, -1, 1109, 1110, -1, -1, -1, 3456 -1, -1, -1, -1, -1, -1, 932, 116, -1, -1, 3457 -1, 120, -1, 122, 123, 114, -1, 116, -1, 1133, 3458 -1, -1, -1, 122, 123, 124, 125, 126, 127, -1, 3459 -1, -1, 958, -1, -1, -1, -1, 963, 40, 41, 3460 966, 43, 44, -1, 46, -1, -1, 49, 50, 51, 3461 52, 53, 54, 55, 56, -1, -1, 59, 60, -1, 3462 986, -1, 64, 65, -1, 67, -1, 69, -1, -1, 3463 -1, 997, -1, 75, -1, 77, 78, 79, -1, -1, 3464 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3465 92, 1017, -1, 1019, -1, -1, 1210, -1, -1, -1, 3466 -1, -1, -1, -1, -1, -1, -1, -1, 1034, 1035, 3467 -1, -1, 114, -1, 116, -1, -1, 119, -1, -1, 3468 122, 123, 124, 125, 126, 127, 40, 41, -1, 43, 3469 132, -1, -1, -1, 1060, 137, -1, -1, -1, -1, 3470 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1263, 3471 1264, -1, -1, -1, -1, 69, -1, -1, -1, -1, 3472 -1, 75, -1, -1, -1, 79, -1, -1, 82, 83, 3473 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3474 -1, -1, -1, -1, -1, -1, -1, -1, 1114, -1, 3475 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3476 114, -1, 116, -1, -1, -1, -1, 1133, 122, 123, 3477 124, 125, 126, 127, -1, -1, -1, -1, -1, -1, 3478 -1, -1, 1148, 1149, -1, -1, 3, 4, 5, 6, 3557 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3558 987, 116, -1, -1, -1, -1, -1, 122, 123, 124, 3559 125, 126, 127, -1, -1, -1, -1, -1, -1, -1, 3560 -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, 3561 -1, -1, -1, 1278, -1, 1280, -1, -1, -1, -1, 3562 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1036, 3563 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 3479 3564 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3480 3565 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3481 3566 27, 28, 29, -1, -1, 32, 33, 34, 35, -1, 3482 -1, -1, 39, 40, 41, 42, 43, 44, -1, 46,3483 1384, -1, 49, 50, 51, 52, 53, 54, 55, 56,3567 -1, 1078, 39, 40, 41, 42, 43, 44, -1, 46, 3568 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56, 3484 3569 -1, -1, -1, 60, -1, -1, -1, 64, 65, -1, 3485 3570 67, -1, 69, 70, -1, 72, -1, 74, 75, -1, 3486 3571 77, 78, 79, -1, -1, 82, 83, 84, 85, 86, 3487 3572 87, 88, 89, -1, 91, 92, -1, -1, -1, -1, 3488 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3573 -1, 1138, 1139, -1, -1, -1, -1, -1, -1, -1, 3489 3574 -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, 3490 3575 -1, -1, 119, -1, -1, 122, 123, 124, 125, 126, 3491 127, -1, -1, -1, -1, 132, -1, -1, -1, 1473, 3492 137, -1, -1, -1, 1290, -1, 1292, -1, -1, -1, 3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, 1497, 1498, -1, -1, -1, -1, -1, 3495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3496 -1, -1, -1, -1, -1, -1, -1, -1, 1522, 3, 3497 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3498 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3499 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3500 34, 35, -1, -1, -1, 39, 40, 41, 42, 43, 3576 127, -1, -1, -1, -1, 132, -1, -1, -1, -1, 3577 137, -1, -1, 3, 4, 5, 6, 7, 8, 9, 3501 3578 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3502 3579 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3503 30, -1, -1, -1, -1, 69, 70, -1, 72, -1, 3504 74, 75, 42, 77, 78, 79, -1, -1, 82, 83, 3505 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3580 -1, -1, 32, 33, 34, 35, -1, -1, -1, 39, 3581 40, 41, 42, 43, -1, -1, -1, -1, -1, -1, 3506 3582 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3507 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,3508 114, 81, 116, -1, -1, -1, -1, -1, 122, 123,3509 124, 125, 126, 127, 4, 5, 6, 7, 8, 9,3510 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,3511 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,3512 -1, -1, 32, 33, 34, -1, -1, -1, -1, -1,3513 40, 41, 42, 43, -1, -1, -1, -1, -1, -1,3514 -1, 1507, -1, -1, -1, -1, -1, -1, -1, -1,3515 3583 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3516 70, -1, 72, -1, 74, 75, -1, 77, 78, 79,3584 70, -1, 72, -1, 74, 75, 1511, 77, 78, 79, 3517 3585 -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, 3518 3586 -1, 91, 92, -1, -1, -1, -1, -1, -1, -1, 3519 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520 3588 -1, -1, -1, -1, 114, -1, 116, -1, -1, -1, 3521 -1, 121, 122, 123, 124, 125, 126, 127, 4, 5, 3522 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3523 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3524 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3525 -1, -1, -1, -1, 40, 41, 42, 43, 10, 11, 3526 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3527 22, 23, 24, 25, 26, 27, 28, 29, 30, -1, 3528 -1, -1, -1, 69, 70, -1, 72, -1, 74, 75, 3529 42, 77, 78, 79, -1, -1, 82, 83, 84, 85, 3530 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3531 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 3532 -1, -1, -1, -1, -1, -1, -1, -1, 114, 81, 3533 116, -1, -1, -1, -1, 121, 122, 123, 124, 125, 3534 126, 127, 4, 5, 6, 7, 8, 9, 10, 11, 3535 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3536 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3537 32, 33, 34, -1, -1, -1, -1, -1, 40, 41, 3538 42, 43, 10, 11, 12, 13, 14, 15, 16, 17, 3539 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3540 28, 29, -1, -1, 32, 33, 34, 69, 70, -1, 3541 72, -1, 74, 75, 42, 77, 78, 79, -1, -1, 3542 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3543 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3544 -1, -1, 70, -1, -1, -1, -1, -1, -1, 77, 3545 78, -1, 114, -1, 116, -1, -1, -1, -1, -1, 3546 122, 123, 124, 125, 126, 127, 4, 5, 6, 7, 3547 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3548 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3549 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3550 -1, -1, 40, 41, 42, 43, 10, 11, 12, 13, 3551 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3552 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3553 34, 69, 70, -1, 72, -1, 74, 75, 42, 77, 3554 78, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3555 88, 89, -1, 91, 92, -1, -1, -1, -1, -1, 3556 -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 3557 -1, -1, -1, 77, 78, -1, 114, -1, 116, -1, 3558 -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 3559 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3560 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3561 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3562 34, -1, -1, -1, -1, -1, 40, 41, 42, 43, 3589 -1, -1, 122, 123, 124, 125, 126, 127, -1, -1, 3590 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 3591 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3592 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3593 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3594 -1, 40, 41, 42, 43, 10, 11, 12, 13, 14, 3595 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3596 25, 26, 27, 28, 29, -1, 1373, 32, 33, 34, 3597 69, 70, -1, 72, -1, 74, 75, 42, 77, 78, 3598 79, -1, 1389, 82, 83, 84, 85, 86, 87, 88, 3599 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3600 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, 3601 -1, -1, 77, 78, -1, 114, -1, 116, -1, -1, 3602 -1, -1, 121, 122, 123, 124, 125, 126, 127, 4, 3603 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3604 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3605 25, 26, 27, 28, 29, 1462, 1463, 32, 33, 34, 3606 -1, -1, -1, -1, -1, 40, 41, 42, 43, 10, 3607 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3608 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3609 -1, 32, 33, 34, 69, 70, -1, 72, -1, 74, 3610 75, 42, 77, 78, 79, -1, -1, 82, 83, 84, 3611 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 3613 -1, -1, -1, -1, -1, -1, 77, 78, -1, 114, 3614 -1, 116, -1, -1, -1, -1, 121, 122, 123, 124, 3615 125, 126, 127, 4, 5, 6, 7, 8, 9, 10, 3616 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3617 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3618 -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, 3619 41, 42, 43, -1, -1, -1, -1, -1, -1, -1, 3620 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3621 -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, 3622 -1, 72, -1, 74, 75, -1, 77, 78, 79, -1, 3623 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3624 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3625 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3626 -1, -1, -1, 114, -1, 116, -1, -1, -1, -1, 3627 -1, 122, 123, 124, 125, 126, 127, 4, 5, 6, 3628 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3629 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3630 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3631 -1, -1, -1, 40, 41, 42, 43, -1, -1, -1, 3563 3632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3564 3633 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3565 -1, -1, -1, -1, -1, 69, 70, -1, 72, -1, 3566 74, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3567 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3634 -1, -1, 69, 70, -1, 72, -1, 74, 75, -1, 3635 77, 78, 79, -1, -1, 82, 83, 84, 85, 86, 3636 87, 88, 89, -1, 91, 92, -1, -1, -1, -1, 3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3638 -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, 3639 -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 3640 127, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3641 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3642 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3643 33, 34, -1, -1, -1, -1, -1, 40, 41, 42, 3644 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3645 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, -1, -1, 69, 70, -1, 72, 3647 -1, 74, 75, -1, 77, 78, 79, -1, -1, 82, 3648 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 3568 3649 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3569 3650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3570 114, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3571 124, 125, 126, 127, 0, -1, -1, 3, 4, 5, 3572 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3573 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3574 26, 27, 28, 29, -1, -1, 32, 33, 34, 35, 3575 -1, -1, -1, 39, -1, -1, 42, 43, -1, -1, 3576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3577 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3578 -1, 67, -1, -1, 70, -1, 72, -1, 74, 75, 3579 -1, 77, 78, 79, -1, -1, -1, -1, -1, -1, 3580 -1, -1, 88, 89, -1, -1, -1, -1, -1, -1, 3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3582 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, 3583 116, -1, -1, -1, -1, -1, 122, 123, 3, 4, 3651 -1, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3652 123, 124, 125, 126, 127, 0, -1, -1, 3, 4, 3584 3653 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3585 3654 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, … … 3593 3662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3594 3663 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3595 -1, 116, -1, -1, -1, 120, -1, 122, 123, 3,3664 -1, 116, -1, -1, -1, -1, -1, 122, 123, 3, 3596 3665 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3597 3666 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 3605 3674 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3606 3675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3607 114, -1, 116, -1, -1, -1, -1, -1, 122, 123,3676 114, -1, 116, -1, -1, -1, 120, -1, 122, 123, 3608 3677 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3609 3678 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3610 3679 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3611 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 3680 33, 34, 35, -1, -1, -1, 39, -1, -1, 42, 3681 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3612 3682 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3613 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3614 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3683 -1, -1, -1, -1, 67, -1, -1, 70, -1, 72, 3615 3684 -1, 74, 75, -1, 77, 78, 79, -1, -1, -1, 3616 3685 -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, … … 3657 3726 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3658 3727 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 3659 42, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3660 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3661 28, 29, -1, -1, 32, 33, 34, -1, 70, -1, 3662 72, -1, 74, -1, 42, 77, 78, -1, -1, -1, 3728 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3663 3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3664 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3665 -1, -1, 70, -1, -1, -1, -1, -1, -1, 77, 3666 78, -1, -1, -1, 116, -1, -1, -1, -1, -1, 3667 122, 123, 4, 5, 6, 7, 8, 9, 10, 11, 3730 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 3731 72, -1, 74, -1, -1, 77, 78, 4, 5, 6, 3732 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3733 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3734 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3735 -1, -1, -1, 115, 116, 42, -1, -1, -1, -1, 3736 122, 123, -1, -1, -1, -1, -1, -1, -1, -1, 3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3738 -1, -1, -1, 70, -1, 72, -1, 74, -1, -1, 3739 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3741 -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, 3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, 3743 -1, -1, -1, -1, -1, 122, 123, 4, 5, 6, 3744 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3745 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3746 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3747 -1, -1, -1, -1, -1, 42, -1, 10, 11, 12, 3748 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3749 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3750 33, 34, -1, 70, -1, 72, -1, 74, -1, 42, 3751 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, 3752 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, 101, -1, -1, 70, -1, -1, 3754 -1, -1, -1, -1, 77, 78, -1, -1, -1, 116, 3755 -1, -1, -1, -1, -1, 122, 123, 4, 5, 6, 3756 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3757 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3758 27, 28, 29, 116, -1, 32, 33, 34, -1, 122, 3759 123, -1, -1, -1, -1, 42, -1, -1, -1, -1, 3760 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3761 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3762 -1, -1, -1, 70, -1, 72, -1, 74, -1, -1, 3763 77, 78, 4, 5, 6, 7, 8, 9, 10, 11, 3668 3764 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3669 22, 23, 24, 25, 26, 27, 28, 29, 116, -1, 3670 32, 33, 34, -1, 122, 123, -1, -1, -1, -1, 3671 42, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3672 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3673 28, 29, -1, -1, 32, 33, 34, -1, 70, -1, 3674 72, -1, 74, -1, 42, 77, 78, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3676 -1, -1, -1, -1, -1, -1, -1, -1, -1, 101, 3677 -1, -1, 70, -1, -1, -1, -1, -1, -1, 77, 3678 78, -1, -1, -1, 116, -1, -1, -1, -1, -1, 3679 122, 123, 4, 5, 6, 7, 8, 9, 10, 11, 3680 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3681 22, 23, 24, 25, 26, 27, 28, 29, 116, -1, 3682 32, 33, 34, -1, 122, 123, -1, -1, -1, -1, 3683 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3765 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3766 32, 33, 34, -1, -1, -1, -1, -1, -1, 116, 3767 42, -1, -1, -1, -1, 122, 123, -1, -1, -1, 3684 3768 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3685 3769 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, … … 3692 3776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 3777 -1, -1, -1, 70, -1, 72, -1, 74, -1, -1, 3694 77, 78, 4, 5, 6, 7, 8, 9, 10, 11, 3778 77, 78, 10, 11, 12, 13, 14, 15, 16, 17, 3779 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3780 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3781 -1, -1, 40, 41, 42, 43, -1, -1, -1, 116, 3782 -1, -1, -1, -1, -1, 122, 123, -1, -1, -1, 3783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3784 -1, 69, 70, -1, -1, -1, -1, 75, -1, 77, 3785 78, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3786 88, 89, -1, 91, 92, -1, -1, -1, -1, -1, 3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3788 -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, 3789 -1, 119, -1, -1, 122, 123, 124, 125, 126, 127, 3790 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3791 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3792 -1, -1, 32, 33, 34, -1, -1, -1, -1, -1, 3793 40, 41, 42, 43, 10, 11, 12, 13, 14, 15, 3794 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3795 26, 27, 28, 29, -1, -1, 32, 33, 34, 69, 3796 70, -1, -1, -1, -1, 75, 42, 77, 78, 79, 3797 -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, 3798 -1, 91, 92, -1, -1, -1, -1, -1, -1, -1, 3799 -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, 3800 -1, 77, 78, -1, 114, 115, 116, -1, -1, -1, 3801 -1, -1, 122, 123, 124, 125, 126, 127, 10, 11, 3695 3802 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3696 3803 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3697 32, 33, 34, -1, -1, -1, -1, -1, -1, 116,3698 42, -1, -1, -1, -1, 122, 123, -1, -1, -1,3804 32, 33, 34, -1, -1, -1, 122, 123, 40, 41, 3805 42, 43, -1, -1, -1, -1, -1, -1, -1, -1, 3699 3806 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 3701 72, -1, 74, -1, -1, 77, 78, 10, 11, 12, 3807 -1, -1, -1, -1, -1, -1, -1, 69, 70, -1, 3808 -1, -1, -1, 75, -1, 77, 78, 79, -1, -1, 3809 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3810 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3812 -1, -1, 114, -1, 116, -1, -1, -1, -1, -1, 3813 122, 123, 124, 125, 126, 127, 10, 11, 12, 13, 3814 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3815 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3816 34, -1, -1, -1, -1, -1, 40, 41, 42, 43, 3817 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, -1, -1, -1, -1, 69, 70, -1, -1, -1, 3820 -1, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3821 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3822 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3823 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3824 114, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3825 124, 125, 126, 127, 10, 11, 12, 13, 14, 15, 3826 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3827 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3828 -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, 3829 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3830 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3831 -1, -1, -1, 69, 70, -1, -1, -1, -1, 75, 3832 -1, 77, 78, 79, -1, -1, 82, 83, 84, 85, 3833 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3834 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3835 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, 3836 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, 3837 126, 127, 3, 4, 5, 6, 7, 8, 9, 10, 3838 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3839 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3840 -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, 3841 -1, 42, 10, 11, 12, 13, 14, 15, 16, 17, 3842 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3843 28, 29, -1, -1, 32, 33, 34, -1, -1, 70, 3844 -1, 72, -1, 74, 42, -1, 77, 78, -1, -1, 3845 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3846 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3847 28, 29, 70, -1, 32, 33, 34, 75, -1, 77, 3848 78, 79, -1, -1, 42, -1, -1, -1, 119, -1, 3849 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, 3850 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3851 -1, -1, 70, -1, -1, -1, 114, 75, 116, 77, 3852 78, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3853 88, 89, -1, -1, -1, -1, -1, 10, 11, 12, 3702 3854 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3703 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3704 33, 34, -1, -1, -1, -1, -1, 40, 41, 42, 3705 43, -1, -1, -1, 116, -1, -1, -1, -1, -1, 3706 122, 123, -1, -1, -1, -1, -1, -1, -1, -1, 3707 -1, -1, -1, -1, -1, -1, 69, 70, -1, -1, 3855 23, 24, 25, 26, 27, 28, 29, -1, 116, 32, 3856 33, 34, -1, -1, 122, 123, -1, -1, -1, 42, 3857 43, -1, -1, -1, -1, -1, -1, 10, 11, 12, 3858 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3859 23, 24, 25, 26, 27, 28, 29, 70, -1, 32, 3860 33, 34, -1, -1, 77, 78, -1, -1, -1, 42, 3861 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3862 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3863 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 3864 -1, -1, -1, 116, 77, 78, -1, 120, -1, 122, 3865 123, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3866 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3867 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3868 -1, -1, -1, 116, 42, -1, -1, 120, -1, 122, 3869 123, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3870 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3871 28, 29, 70, -1, 32, 33, 34, -1, -1, 77, 3872 78, -1, -1, -1, 42, 10, 11, 12, 13, 14, 3873 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3874 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3875 -1, -1, 70, -1, -1, -1, -1, 42, 116, 77, 3876 78, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3877 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3878 -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, 3879 -1, -1, 77, 78, -1, -1, -1, -1, 116, -1, 3880 -1, -1, -1, -1, 122, 123, -1, -1, -1, -1, 3881 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3882 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3883 -1, 116, 32, 33, 34, -1, -1, 122, 123, -1, 3884 -1, -1, 42, 10, 11, 12, 13, 14, 15, 16, 3885 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3886 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3887 70, -1, -1, -1, -1, 42, -1, 77, 78, -1, 3888 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3890 -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, 3891 77, 78, -1, -1, -1, -1, 116, -1, -1, -1, 3892 -1, -1, 122, 123, -1, -1, -1, -1, -1, -1, 3893 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3894 -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, 3895 -1, -1, -1, -1, -1, 122, 123, 4, 5, 6, 3896 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3897 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3898 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3899 -1, -1, -1, -1, -1, 42, -1, 40, 41, -1, 3900 43, 44, -1, 46, -1, -1, 49, 50, 51, 52, 3901 53, 54, 55, 56, -1, -1, 59, 60, -1, -1, 3902 -1, 64, 65, 70, 67, 72, 69, 74, -1, -1, 3903 77, 78, 75, -1, 77, 78, 79, -1, -1, 82, 3904 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 3905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3906 -1, -1, -1, -1, -1, -1, -1, -1, 115, -1, 3907 -1, 114, -1, 116, -1, -1, 119, -1, -1, 122, 3908 123, 124, 125, 126, 127, -1, -1, 40, 41, 132, 3909 43, 44, -1, 46, 137, -1, 49, 50, 51, 52, 3910 53, 54, 55, 56, -1, -1, -1, 60, -1, -1, 3911 -1, 64, 65, -1, 67, -1, 69, -1, -1, -1, 3708 3912 -1, -1, 75, -1, 77, 78, 79, -1, -1, 82, 3709 3913 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, … … 3711 3915 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 3916 -1, 114, -1, 116, -1, -1, 119, -1, -1, 122, 3713 123, 124, 125, 126, 127, 10, 11, 12, 13, 14, 3714 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3715 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3716 -1, -1, -1, -1, -1, 40, 41, 42, 43, 10, 3717 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3718 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3719 -1, 32, 33, 34, 69, 70, -1, -1, -1, -1, 3720 75, 42, 77, 78, 79, -1, -1, 82, 83, 84, 3721 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3722 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 3723 -1, -1, -1, -1, -1, -1, 77, 78, -1, 114, 3724 115, 116, -1, -1, -1, -1, -1, 122, 123, 124, 3725 125, 126, 127, 10, 11, 12, 13, 14, 15, 16, 3726 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3727 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3728 -1, 122, 123, 40, 41, 42, 43, -1, -1, -1, 3729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3730 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3731 -1, -1, 69, 70, -1, -1, -1, -1, 75, -1, 3732 77, 78, 79, -1, -1, 82, 83, 84, 85, 86, 3733 87, 88, 89, -1, 91, 92, -1, -1, -1, -1, 3734 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, -1, -1, 114, -1, 116, 3736 -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 3737 127, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3917 123, 124, 125, 126, 127, -1, -1, -1, -1, 132, 3918 -1, -1, -1, -1, 137, 4, 5, 6, 7, 8, 3919 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3738 3920 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3739 3921 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3740 -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, 3922 -1, -1, -1, 42, -1, 40, 41, -1, 43, 44, 3923 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3924 55, 56, -1, -1, 59, 60, -1, -1, -1, 64, 3925 65, 70, 67, 72, 69, 74, -1, -1, 77, 78, 3926 75, -1, 77, 78, 79, -1, -1, 82, 83, 84, 3927 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3928 -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, 3929 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3930 -1, 116, -1, -1, 119, -1, -1, 122, 123, 124, 3931 125, 126, 127, -1, -1, 40, 41, 132, 43, 44, 3932 -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3933 55, 56, -1, -1, -1, 60, -1, -1, -1, 64, 3934 65, -1, 67, -1, 69, -1, -1, -1, -1, -1, 3935 75, -1, 77, 78, 79, -1, -1, 82, 83, 84, 3936 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3741 3937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3743 69, 70, -1, -1, -1, -1, 75, -1, 77, 78, 3744 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3745 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3746 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3747 -1, -1, -1, -1, -1, 114, -1, 116, -1, -1, 3748 -1, -1, -1, 122, 123, 124, 125, 126, 127, 10, 3749 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3750 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3751 -1, 32, 33, 34, -1, -1, -1, -1, -1, 40, 3752 41, 42, 43, -1, -1, -1, -1, -1, -1, -1, 3753 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3754 -1, -1, -1, -1, -1, -1, -1, -1, 69, 70, 3755 -1, -1, -1, -1, 75, -1, 77, 78, 79, -1, 3756 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3757 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3758 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3759 -1, -1, -1, 114, -1, 116, -1, -1, -1, -1, 3760 -1, 122, 123, 124, 125, 126, 127, 10, 11, 12, 3761 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3762 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3763 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 3764 -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 3765 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3766 23, 24, 25, 26, 27, 28, 29, 70, -1, 32, 3767 33, 34, 75, -1, 77, 78, 79, -1, -1, 42, 3768 -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, 3769 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3770 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 3771 -1, 114, 75, 116, 77, 78, 79, -1, -1, 122, 3772 123, -1, -1, -1, -1, 88, 89, -1, -1, -1, 3773 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3775 -1, 114, -1, 116, -1, -1, -1, -1, -1, 122, 3776 123, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3777 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3778 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3779 -1, -1, -1, 42, 43, -1, -1, -1, -1, -1, 3780 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3781 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3782 29, 70, -1, 32, 33, 34, -1, -1, 77, 78, 3783 -1, -1, -1, 42, 43, -1, -1, -1, -1, -1, 3784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3786 -1, 70, -1, -1, -1, -1, -1, 116, 77, 78, 3787 -1, 120, -1, 122, 123, -1, 10, 11, 12, 13, 3788 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3789 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3790 34, -1, -1, -1, -1, -1, -1, 116, 42, -1, 3791 -1, 120, -1, 122, 123, -1, 10, 11, 12, 13, 3792 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3793 24, 25, 26, 27, 28, 29, 70, -1, 32, 33, 3794 34, -1, -1, 77, 78, -1, -1, -1, 42, 10, 3795 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3796 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3797 -1, 32, 33, 34, -1, -1, 70, -1, -1, -1, 3798 -1, 42, 116, 77, 78, -1, -1, -1, 122, 123, 3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3800 -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 3801 -1, -1, -1, -1, -1, -1, 77, 78, -1, -1, 3802 -1, -1, 116, -1, -1, -1, -1, -1, 122, 123, 3803 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3804 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3805 26, 27, 28, 29, -1, 116, 32, 33, 34, -1, 3806 -1, 122, 123, -1, -1, -1, 42, -1, 4, 5, 3807 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3808 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3809 26, 27, 28, 29, 70, -1, 32, 33, 34, -1, 3810 -1, 77, 78, -1, -1, -1, 42, -1, -1, -1, 3811 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3812 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3813 -1, -1, -1, -1, 70, -1, 72, -1, 74, -1, 3814 116, 77, 78, -1, -1, -1, 122, 123, 40, 41, 3815 -1, 43, 44, -1, 46, -1, -1, 49, 50, 51, 3816 52, 53, 54, 55, 56, -1, -1, -1, 60, -1, 3817 -1, -1, 64, 65, -1, 67, -1, 69, -1, 115, 3818 -1, -1, -1, 75, -1, 77, 78, 79, -1, -1, 3819 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 3820 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3822 -1, -1, 114, -1, 116, -1, -1, 119, -1, -1, 3823 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, 3824 132, -1, -1, -1, -1, 137, 4, 5, 6, 7, 3825 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3826 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3827 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3828 -1, -1, -1, -1, 42, -1, 40, 41, -1, 43, 3829 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 3830 54, 55, 56, -1, -1, 59, 60, -1, -1, -1, 3831 64, 65, 70, 67, 72, 69, 74, -1, -1, 77, 3832 78, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3833 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3834 -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, 3835 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3836 114, -1, 116, -1, -1, 119, -1, -1, 122, 123, 3837 124, 125, 126, 127, -1, -1, 40, 41, 132, 43, 3838 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 3839 54, 55, 56, -1, -1, -1, 60, -1, -1, -1, 3840 64, 65, -1, 67, -1, 69, -1, -1, -1, -1, 3841 -1, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3842 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3844 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3845 114, -1, 116, -1, -1, 119, -1, -1, 122, 123, 3846 124, 125, 126, 127, -1, -1, 40, 41, 132, 43, 3847 44, -1, 46, -1, -1, 49, 50, 51, 52, 53, 3848 54, 55, 56, -1, -1, -1, 60, -1, -1, -1, 3849 64, 65, -1, 67, -1, 69, -1, -1, -1, -1, 3850 -1, 75, -1, 77, 78, 79, -1, -1, 82, 83, 3851 84, 85, 86, 87, 88, 89, -1, 91, 92, -1, 3852 -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, 3853 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3854 114, -1, 116, -1, -1, 119, -1, -1, 122, 123, 3855 124, 125, 126, 127, 69, -1, -1, -1, 132, -1, 3856 75, -1, -1, -1, 79, -1, -1, 82, 83, 84, 3938 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3939 -1, 116, -1, -1, 119, -1, -1, 122, 123, 124, 3940 125, 126, 127, -1, -1, 40, 41, 132, 43, 44, 3941 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54, 3942 55, 56, -1, -1, -1, 60, -1, -1, -1, 64, 3943 65, -1, 67, -1, 69, -1, -1, -1, -1, -1, 3944 75, -1, 77, 78, 79, -1, -1, 82, 83, 84, 3857 3945 85, 86, 87, 88, 89, -1, 91, 92, -1, -1, 3858 3946 -1, -1, -1, -1, 40, 41, -1, 43, -1, -1, 3859 3947 -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, 3860 -1, 116, -1, -1, -1, -1, -1, 122, 123, 124,3861 125, 126, 127, 69, -1, -1, -1, -1, -1, 75,3948 -1, 116, -1, -1, 119, -1, -1, 122, 123, 124, 3949 125, 126, 127, 69, -1, -1, -1, 132, -1, 75, 3862 3950 -1, -1, -1, 79, -1, -1, 82, 83, 84, 85, 3863 3951 86, 87, 88, 89, -1, 91, 92, -1, -1, -1, 3864 3952 -1, -1, -1, 40, 41, -1, 43, -1, -1, -1, 3865 3953 -1, -1, -1, -1, -1, -1, -1, -1, 114, -1, 3866 116, -1, -1, -1, -1, -1, 122, 123, 124, 125,3954 116, -1, -1, -1, -1, 121, 122, 123, 124, 125, 3867 3955 126, 127, 69, -1, -1, -1, -1, -1, 75, -1, 3868 3956 -1, -1, 79, -1, -1, 82, 83, 84, 85, 86, … … 3874 3962 -1, 79, -1, -1, 82, 83, 84, 85, 86, 87, 3875 3963 88, 89, -1, 91, 92, -1, -1, -1, -1, -1, 3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3964 -1, 40, 41, -1, 43, -1, -1, -1, -1, -1, 3877 3965 -1, -1, -1, -1, -1, -1, 114, -1, 116, -1, 3878 3966 -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 3879 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3880 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3881 -1, -1, 32, 33, 34, -1, -1, -1, -1, -1, 3882 -1, -1, 42, 3, 4, 5, 6, 7, 8, 9, 3883 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3884 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3885 70, -1, 32, 33, 34, 75, -1, 77, 78, -1, 3886 -1, -1, 42, -1, -1, -1, -1, -1, 88, 89, 3967 69, -1, -1, -1, -1, -1, 75, -1, -1, -1, 3968 79, -1, -1, 82, 83, 84, 85, 86, 87, 88, 3969 89, -1, 91, 92, -1, -1, -1, -1, -1, -1, 3970 40, 41, -1, 43, -1, -1, -1, -1, -1, -1, 3971 -1, -1, -1, -1, -1, 114, -1, 116, -1, -1, 3972 -1, -1, -1, 122, 123, 124, 125, 126, 127, 69, 3973 -1, -1, -1, -1, -1, 75, -1, -1, -1, 79, 3974 -1, -1, 82, 83, 84, 85, 86, 87, 88, 89, 3975 -1, 91, 92, -1, -1, -1, -1, -1, -1, 40, 3976 41, -1, 43, -1, -1, -1, -1, -1, -1, -1, 3977 -1, -1, -1, -1, 114, -1, 116, -1, -1, -1, 3978 -1, -1, 122, 123, 124, 125, 126, 127, 69, -1, 3979 -1, -1, -1, -1, 75, -1, -1, -1, 79, -1, 3980 -1, 82, 83, 84, 85, 86, 87, 88, 89, -1, 3981 91, 92, -1, -1, -1, -1, -1, -1, -1, -1, 3982 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3983 -1, -1, -1, 114, -1, 116, -1, -1, -1, -1, 3984 -1, 122, 123, 124, 125, 126, 127, 10, 11, 12, 3985 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3986 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3987 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 3988 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3989 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3990 23, 24, 25, 26, 27, 28, 29, 70, -1, 32, 3991 33, 34, 75, -1, 77, 78, -1, -1, -1, 42, 3992 -1, -1, -1, -1, -1, 88, 89, -1, -1, -1, 3993 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3994 -1, -1, -1, -1, -1, -1, -1, 70, -1, 72, 3995 -1, 74, -1, -1, 77, 78, 3, 4, 5, 6, 3996 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3997 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3998 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3999 -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, 3887 4000 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3888 4001 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3889 70, -1, 72, -1, 74, -1, -1, 77, 78, 3, 3890 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3891 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3892 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3893 34, -1, -1, -1, -1, -1, -1, -1, 42, -1, 4002 -1, -1, -1, 70, -1, 72, -1, 74, -1, -1, 4003 77, 78, 4, 5, 6, 7, 8, 9, 10, 11, 4004 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 4005 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 4006 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 4007 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4008 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4009 -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, 4010 72, -1, 74, -1, -1, 77, 78, 10, 11, 12, 4011 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4012 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 4013 33, 34, 35, 36, 37, 38, -1, -1, -1, 42, 3894 4014 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3895 4015 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3896 -1, -1, -1, -1, -1, -1, 70, -1, 72, -1, 3897 74, -1, -1, 77, 78, 4, 5, 6, 7, 8, 3898 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3899 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3900 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3901 -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3904 -1, 70, -1, 72, -1, 74, -1, -1, 77, 78, 3905 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3906 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3907 -1, -1, 32, 33, 34, 35, 36, 37, 38, -1, 3908 -1, -1, 42, -1, -1, -1, -1, -1, -1, -1, 3909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3911 70, -1, -1, -1, -1, -1, -1, 77, 78 4016 -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, 4017 -1, -1, -1, -1, 77, 78 3912 4018 }; 3913 4019 … … 3922 4028 77, 78, 79, 88, 89, 114, 116, 122, 123, 142, 3923 4029 145, 157, 206, 220, 221, 222, 223, 224, 225, 226, 3924 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 3925 237, 239, 240, 241, 242, 243, 244, 245, 247, 248, 3926 249, 250, 251, 252, 254, 262, 263, 290, 291, 292, 3927 300, 303, 309, 310, 312, 314, 315, 321, 326, 330, 3928 331, 332, 333, 334, 335, 336, 337, 357, 374, 375, 3929 376, 377, 75, 144, 145, 157, 223, 225, 233, 235, 3930 244, 248, 250, 291, 84, 114, 319, 320, 321, 319, 3931 319, 75, 77, 78, 79, 143, 144, 280, 281, 301, 3932 302, 77, 78, 281, 114, 312, 11, 207, 114, 157, 3933 326, 331, 332, 333, 335, 336, 337, 117, 139, 226, 3934 233, 235, 330, 334, 373, 374, 377, 378, 140, 112, 3935 136, 284, 119, 140, 181, 77, 78, 142, 279, 140, 3936 140, 140, 121, 140, 77, 78, 114, 157, 316, 325, 3937 326, 327, 328, 329, 330, 334, 338, 339, 340, 341, 3938 342, 348, 3, 30, 81, 246, 3, 5, 77, 116, 3939 157, 225, 236, 240, 242, 251, 292, 330, 334, 377, 3940 223, 225, 235, 244, 248, 250, 291, 330, 334, 35, 3941 241, 241, 236, 242, 140, 241, 236, 241, 236, 78, 3942 114, 119, 281, 292, 119, 281, 241, 236, 121, 140, 3943 140, 0, 139, 114, 181, 319, 319, 139, 116, 233, 3944 235, 375, 279, 279, 136, 235, 114, 157, 316, 326, 3945 330, 116, 157, 377, 313, 238, 321, 114, 297, 114, 3946 114, 54, 114, 40, 41, 43, 69, 75, 79, 82, 3947 83, 84, 85, 86, 87, 91, 92, 114, 116, 124, 3948 125, 126, 127, 141, 145, 146, 147, 148, 149, 156, 3949 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 3950 167, 168, 169, 170, 172, 175, 233, 283, 299, 373, 3951 378, 235, 115, 115, 115, 115, 115, 115, 115, 116, 3952 233, 357, 375, 116, 122, 157, 172, 225, 226, 232, 3953 235, 239, 240, 244, 247, 248, 250, 269, 270, 274, 3954 275, 276, 277, 291, 357, 369, 370, 371, 372, 377, 3955 378, 114, 330, 334, 377, 114, 121, 137, 116, 119, 3956 157, 172, 285, 285, 120, 139, 121, 137, 114, 121, 3957 137, 121, 137, 121, 137, 319, 137, 326, 327, 328, 3958 329, 339, 340, 341, 342, 235, 325, 338, 67, 318, 3959 116, 319, 356, 357, 319, 319, 181, 139, 114, 319, 3960 356, 319, 319, 235, 316, 114, 114, 234, 235, 233, 3961 235, 139, 233, 373, 378, 181, 139, 279, 284, 225, 3962 240, 330, 334, 181, 139, 301, 235, 244, 137, 235, 3963 235, 299, 255, 253, 265, 281, 264, 235, 301, 137, 3964 137, 312, 139, 144, 278, 3, 140, 215, 216, 230, 3965 232, 235, 139, 318, 114, 318, 172, 326, 235, 114, 3966 139, 279, 119, 35, 36, 37, 38, 233, 293, 294, 3967 296, 139, 133, 136, 298, 139, 10, 75, 77, 78, 3968 322, 323, 324, 114, 146, 114, 156, 114, 156, 159, 3969 114, 156, 114, 114, 156, 156, 116, 172, 177, 181, 3970 233, 282, 373, 377, 139, 84, 86, 90, 91, 92, 3971 114, 116, 118, 119, 102, 103, 104, 105, 106, 107, 3972 108, 109, 110, 111, 112, 136, 174, 159, 159, 122, 3973 128, 129, 124, 125, 93, 94, 95, 96, 130, 131, 3974 97, 98, 123, 132, 133, 99, 100, 134, 114, 157, 3975 352, 353, 354, 355, 356, 115, 121, 114, 356, 357, 3976 114, 356, 357, 139, 233, 375, 117, 139, 140, 233, 3977 235, 368, 369, 377, 378, 140, 114, 116, 157, 326, 3978 343, 344, 345, 346, 347, 348, 349, 350, 351, 357, 3979 358, 359, 360, 361, 362, 363, 157, 377, 235, 140, 3980 140, 157, 233, 235, 370, 279, 233, 357, 370, 279, 3981 139, 139, 139, 139, 75, 116, 118, 145, 281, 285, 3982 286, 287, 288, 289, 139, 139, 139, 139, 139, 139, 3983 316, 115, 115, 115, 115, 115, 115, 115, 325, 338, 3984 114, 284, 117, 215, 139, 316, 177, 283, 177, 283, 3985 316, 116, 215, 318, 181, 139, 215, 115, 43, 116, 3986 120, 233, 256, 257, 258, 373, 119, 121, 379, 136, 3987 266, 119, 235, 271, 272, 273, 276, 277, 115, 121, 3988 181, 139, 122, 172, 139, 232, 235, 270, 369, 377, 3989 310, 311, 114, 157, 343, 115, 121, 136, 380, 281, 3990 293, 114, 119, 281, 283, 293, 115, 121, 114, 146, 3991 115, 135, 282, 282, 282, 151, 172, 283, 282, 139, 3992 115, 121, 115, 114, 157, 356, 364, 365, 366, 367, 4030 227, 228, 229, 230, 232, 233, 234, 235, 236, 237, 4031 239, 240, 241, 242, 243, 244, 245, 247, 248, 249, 4032 250, 251, 252, 254, 262, 289, 290, 291, 299, 302, 4033 308, 309, 311, 313, 314, 320, 325, 329, 330, 331, 4034 332, 333, 334, 335, 336, 356, 373, 374, 375, 376, 4035 75, 144, 145, 157, 223, 225, 233, 235, 244, 248, 4036 250, 290, 84, 114, 318, 319, 320, 75, 77, 78, 4037 79, 143, 144, 279, 280, 300, 301, 77, 78, 280, 4038 114, 311, 11, 207, 114, 157, 325, 330, 331, 332, 4039 334, 335, 336, 117, 139, 226, 233, 235, 329, 333, 4040 372, 373, 376, 377, 140, 112, 136, 283, 119, 140, 4041 181, 77, 78, 142, 278, 140, 140, 140, 77, 78, 4042 114, 157, 231, 315, 324, 325, 326, 327, 328, 329, 4043 333, 337, 338, 339, 340, 341, 347, 3, 30, 81, 4044 246, 3, 5, 77, 116, 157, 225, 236, 240, 242, 4045 251, 291, 329, 333, 376, 223, 225, 235, 244, 248, 4046 250, 290, 329, 333, 35, 241, 241, 236, 242, 140, 4047 241, 236, 241, 236, 318, 241, 236, 121, 140, 140, 4048 0, 139, 114, 181, 318, 318, 139, 116, 233, 235, 4049 374, 278, 278, 136, 235, 114, 157, 315, 325, 329, 4050 116, 157, 376, 312, 238, 119, 280, 320, 114, 296, 4051 114, 114, 54, 114, 40, 41, 43, 69, 75, 79, 4052 82, 83, 84, 85, 86, 87, 91, 92, 114, 116, 4053 124, 125, 126, 127, 141, 145, 146, 147, 148, 149, 4054 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 4055 166, 167, 168, 169, 170, 172, 175, 233, 281, 282, 4056 298, 372, 377, 235, 115, 115, 115, 115, 115, 115, 4057 115, 116, 233, 356, 374, 116, 122, 157, 172, 225, 4058 226, 232, 235, 239, 240, 244, 247, 248, 250, 268, 4059 269, 273, 274, 275, 276, 290, 356, 368, 369, 370, 4060 371, 376, 377, 114, 329, 333, 376, 114, 121, 137, 4061 116, 119, 157, 172, 284, 284, 120, 139, 121, 137, 4062 114, 121, 137, 121, 137, 121, 137, 325, 326, 327, 4063 328, 338, 339, 340, 341, 235, 324, 337, 121, 140, 4064 67, 317, 116, 318, 355, 356, 318, 318, 181, 139, 4065 114, 318, 355, 318, 318, 235, 315, 114, 114, 234, 4066 235, 233, 235, 139, 233, 372, 377, 181, 139, 278, 4067 283, 225, 240, 329, 333, 181, 139, 300, 235, 244, 4068 137, 235, 235, 78, 114, 119, 280, 291, 235, 300, 4069 137, 137, 311, 139, 144, 277, 3, 140, 215, 216, 4070 230, 232, 235, 139, 317, 114, 317, 172, 325, 235, 4071 114, 139, 278, 119, 35, 36, 37, 38, 233, 292, 4072 293, 295, 264, 280, 263, 139, 133, 136, 297, 139, 4073 10, 75, 77, 78, 321, 322, 323, 114, 146, 114, 4074 156, 114, 156, 159, 114, 156, 114, 114, 156, 156, 4075 116, 172, 177, 181, 281, 376, 139, 84, 86, 90, 4076 91, 92, 114, 116, 118, 119, 102, 103, 104, 105, 4077 106, 107, 108, 109, 110, 111, 112, 136, 174, 159, 4078 159, 122, 128, 129, 124, 125, 93, 94, 95, 96, 4079 130, 131, 97, 98, 123, 132, 133, 99, 100, 134, 4080 114, 157, 351, 352, 353, 354, 355, 115, 121, 114, 4081 355, 356, 114, 355, 356, 139, 233, 374, 117, 139, 4082 140, 233, 235, 367, 368, 376, 377, 140, 114, 116, 4083 157, 325, 342, 343, 344, 345, 346, 347, 348, 349, 4084 350, 356, 357, 358, 359, 360, 361, 362, 157, 376, 4085 235, 140, 140, 157, 233, 235, 369, 278, 233, 356, 4086 369, 278, 139, 139, 139, 139, 75, 116, 118, 145, 4087 280, 284, 285, 286, 287, 288, 139, 139, 139, 139, 4088 139, 139, 115, 115, 115, 115, 115, 115, 115, 324, 4089 337, 318, 137, 114, 283, 117, 215, 139, 315, 177, 4090 282, 177, 282, 315, 116, 215, 317, 181, 139, 215, 4091 298, 255, 253, 235, 270, 271, 272, 275, 276, 115, 4092 121, 181, 139, 122, 172, 139, 232, 235, 269, 368, 4093 376, 309, 310, 114, 157, 342, 115, 121, 136, 379, 4094 280, 121, 378, 136, 265, 119, 292, 114, 119, 280, 4095 282, 292, 115, 121, 114, 146, 115, 135, 281, 116, 4096 281, 281, 151, 172, 282, 281, 139, 115, 121, 115, 3993 4097 115, 121, 172, 116, 144, 150, 151, 139, 116, 144, 3994 4098 150, 172, 159, 159, 159, 160, 160, 161, 161, 162, 3995 4099 162, 162, 162, 163, 163, 164, 165, 166, 167, 168, 3996 135, 177, 139, 353, 354, 355, 235, 352, 319, 319, 3997 172, 283, 139, 278, 233, 357, 370, 235, 239, 117, 3998 377, 117, 114, 139, 326, 344, 345, 346, 349, 359, 3999 360, 361, 117, 139, 235, 343, 347, 358, 114, 319, 4000 362, 380, 319, 319, 380, 114, 319, 362, 319, 319, 4001 319, 319, 357, 233, 368, 378, 279, 117, 121, 117, 4002 121, 380, 233, 370, 380, 267, 268, 269, 270, 267, 4003 279, 172, 139, 116, 281, 135, 121, 379, 285, 116, 4004 135, 289, 31, 217, 218, 279, 267, 144, 316, 144, 4005 318, 114, 356, 357, 114, 356, 357, 146, 357, 181, 4006 271, 115, 115, 115, 115, 139, 181, 215, 181, 119, 4007 257, 258, 139, 114, 135, 157, 259, 261, 325, 326, 4008 338, 364, 121, 137, 121, 137, 281, 255, 281, 120, 4009 170, 171, 265, 140, 140, 144, 230, 140, 140, 267, 4010 114, 157, 377, 140, 120, 235, 294, 172, 295, 140, 4011 139, 139, 114, 140, 115, 323, 150, 135, 137, 116, 4012 146, 208, 209, 210, 115, 121, 115, 115, 115, 115, 4013 172, 365, 366, 367, 235, 364, 319, 319, 119, 159, 4014 172, 173, 176, 121, 139, 115, 121, 172, 139, 120, 4015 170, 135, 271, 115, 115, 115, 352, 271, 115, 233, 4016 370, 116, 122, 157, 172, 172, 235, 349, 271, 115, 4017 115, 115, 115, 115, 115, 115, 7, 235, 343, 347, 4018 358, 139, 139, 380, 139, 139, 140, 140, 140, 140, 4019 284, 170, 171, 172, 317, 139, 285, 287, 120, 139, 4020 219, 281, 43, 44, 46, 49, 50, 51, 52, 53, 4021 54, 55, 56, 60, 64, 65, 75, 77, 78, 79, 4022 132, 145, 177, 178, 179, 180, 181, 182, 183, 185, 4023 186, 198, 200, 201, 206, 220, 279, 315, 31, 140, 4024 136, 284, 139, 139, 115, 140, 181, 255, 137, 137, 4025 326, 171, 235, 260, 261, 260, 281, 319, 120, 266, 4026 379, 115, 121, 117, 117, 140, 235, 121, 380, 297, 4027 115, 293, 223, 225, 233, 305, 306, 307, 308, 299, 4028 115, 115, 135, 171, 114, 115, 135, 121, 144, 115, 4029 115, 115, 364, 286, 121, 140, 176, 82, 85, 87, 4100 135, 177, 139, 352, 353, 354, 235, 351, 318, 318, 4101 172, 282, 139, 139, 233, 356, 369, 235, 239, 117, 4102 376, 117, 114, 139, 325, 343, 344, 345, 348, 358, 4103 359, 360, 117, 139, 235, 342, 346, 357, 114, 318, 4104 361, 379, 318, 318, 379, 114, 318, 361, 318, 318, 4105 318, 318, 356, 233, 367, 377, 278, 117, 121, 117, 4106 121, 379, 233, 369, 379, 266, 267, 268, 269, 266, 4107 278, 172, 139, 116, 280, 135, 121, 378, 284, 116, 4108 135, 288, 31, 217, 218, 278, 266, 144, 315, 144, 4109 114, 318, 355, 356, 114, 318, 355, 356, 315, 146, 4110 356, 181, 270, 115, 115, 115, 115, 139, 181, 215, 4111 181, 115, 43, 120, 233, 256, 257, 372, 119, 140, 4112 140, 144, 230, 140, 140, 266, 114, 157, 376, 140, 4113 120, 235, 293, 172, 294, 280, 120, 170, 171, 264, 4114 140, 139, 139, 114, 140, 115, 322, 150, 135, 137, 4115 116, 146, 208, 209, 210, 115, 139, 121, 115, 115, 4116 115, 115, 172, 119, 159, 172, 173, 176, 121, 139, 4117 115, 121, 172, 139, 120, 170, 135, 270, 115, 115, 4118 115, 351, 270, 270, 233, 369, 116, 122, 157, 172, 4119 172, 235, 348, 270, 115, 115, 115, 115, 115, 115, 4120 115, 7, 235, 342, 346, 357, 139, 139, 379, 139, 4121 139, 140, 140, 140, 140, 283, 170, 171, 172, 316, 4122 139, 284, 286, 120, 139, 219, 280, 43, 44, 46, 4123 49, 50, 51, 52, 53, 54, 55, 56, 60, 64, 4124 65, 75, 77, 78, 79, 132, 145, 177, 178, 179, 4125 180, 181, 182, 183, 185, 186, 198, 200, 201, 206, 4126 220, 278, 314, 31, 140, 136, 139, 139, 317, 115, 4127 140, 181, 119, 233, 257, 114, 135, 157, 258, 259, 4128 261, 324, 325, 337, 355, 363, 364, 365, 366, 121, 4129 137, 280, 255, 115, 121, 117, 117, 140, 235, 121, 4130 379, 296, 265, 378, 115, 292, 223, 225, 233, 304, 4131 305, 306, 307, 298, 115, 115, 135, 171, 114, 115, 4132 135, 121, 144, 285, 121, 140, 176, 82, 85, 87, 4030 4133 144, 152, 153, 154, 151, 140, 152, 170, 140, 114, 4031 356, 357, 140, 139, 140, 140, 140, 172, 115, 140, 4032 114, 356, 357, 114, 362, 114, 362, 357, 234, 7, 4033 122, 140, 172, 271, 271, 270, 274, 274, 275, 115, 4034 121, 121, 115, 101, 127, 140, 140, 152, 285, 172, 4035 121, 137, 220, 224, 235, 239, 114, 114, 179, 114, 4036 114, 137, 279, 137, 279, 122, 279, 178, 114, 181, 4037 173, 173, 149, 137, 140, 139, 140, 135, 219, 115, 4038 172, 271, 271, 319, 115, 120, 259, 120, 139, 115, 4039 139, 140, 316, 120, 139, 140, 140, 115, 119, 208, 4040 117, 171, 137, 208, 210, 115, 114, 356, 357, 379, 4041 173, 117, 140, 155, 116, 153, 155, 155, 121, 140, 4042 90, 118, 117, 140, 115, 139, 115, 117, 117, 117, 4043 140, 115, 139, 139, 139, 172, 172, 140, 117, 140, 4044 140, 140, 140, 139, 139, 171, 171, 117, 117, 140, 4045 281, 235, 177, 177, 50, 177, 139, 137, 137, 177, 4046 137, 137, 177, 61, 62, 63, 202, 203, 204, 137, 4047 66, 137, 119, 183, 120, 319, 137, 140, 140, 101, 4048 276, 277, 115, 306, 121, 137, 121, 137, 120, 304, 4049 135, 146, 115, 115, 135, 139, 120, 117, 86, 139, 4050 153, 117, 116, 153, 116, 153, 117, 271, 117, 271, 4051 271, 271, 140, 140, 117, 117, 115, 115, 117, 121, 4052 101, 270, 101, 140, 117, 115, 115, 114, 115, 178, 4053 199, 220, 137, 115, 114, 114, 181, 204, 61, 62, 4054 172, 150, 179, 115, 115, 119, 139, 139, 305, 146, 4055 211, 114, 137, 211, 271, 152, 139, 139, 140, 140, 4056 140, 140, 117, 117, 139, 140, 117, 179, 47, 48, 4057 119, 189, 190, 191, 177, 179, 140, 115, 178, 119, 4058 191, 101, 139, 101, 139, 114, 114, 137, 120, 139, 4059 279, 316, 120, 121, 135, 171, 115, 140, 140, 152, 4060 152, 115, 115, 115, 115, 274, 45, 171, 187, 188, 4061 317, 135, 139, 179, 189, 115, 137, 179, 137, 139, 4062 115, 139, 115, 139, 101, 139, 101, 139, 137, 305, 4063 146, 144, 212, 115, 137, 115, 117, 140, 140, 179, 4064 101, 121, 135, 140, 213, 214, 220, 137, 178, 178, 4065 213, 181, 205, 233, 373, 181, 205, 115, 139, 115, 4066 139, 120, 115, 121, 117, 117, 171, 187, 190, 192, 4067 193, 139, 137, 190, 194, 195, 140, 114, 157, 316, 4068 364, 144, 140, 181, 205, 181, 205, 114, 137, 144, 4069 179, 184, 120, 190, 220, 178, 59, 184, 197, 120, 4070 190, 115, 235, 115, 140, 140, 299, 179, 184, 137, 4071 196, 197, 184, 197, 181, 181, 115, 115, 115, 196, 4072 140, 140, 181, 181, 140, 140 4134 318, 355, 356, 140, 140, 139, 140, 140, 140, 172, 4135 115, 140, 114, 318, 355, 356, 114, 318, 361, 114, 4136 318, 361, 356, 234, 7, 122, 140, 172, 270, 270, 4137 269, 273, 273, 274, 115, 121, 121, 115, 101, 127, 4138 140, 140, 152, 284, 172, 121, 137, 220, 314, 114, 4139 114, 179, 114, 114, 137, 278, 137, 278, 122, 278, 4140 178, 114, 181, 173, 173, 149, 137, 140, 139, 140, 4141 135, 219, 115, 172, 270, 270, 283, 318, 115, 255, 4142 258, 137, 325, 364, 365, 366, 171, 235, 363, 121, 4143 137, 260, 261, 260, 318, 318, 280, 120, 139, 115, 4144 139, 120, 140, 315, 120, 139, 140, 140, 115, 119, 4145 208, 117, 171, 137, 208, 210, 115, 378, 173, 117, 4146 140, 155, 116, 153, 155, 155, 121, 140, 90, 118, 4147 117, 140, 115, 139, 115, 115, 117, 117, 117, 140, 4148 115, 139, 139, 139, 172, 172, 140, 117, 140, 140, 4149 140, 140, 139, 139, 171, 171, 117, 117, 140, 280, 4150 177, 177, 50, 177, 139, 137, 137, 177, 137, 137, 4151 177, 61, 62, 63, 202, 203, 204, 137, 66, 137, 4152 119, 183, 120, 318, 137, 140, 140, 120, 137, 115, 4153 115, 115, 363, 318, 101, 275, 276, 115, 305, 121, 4154 137, 121, 137, 120, 303, 135, 146, 115, 115, 135, 4155 120, 117, 86, 139, 153, 117, 116, 153, 116, 153, 4156 117, 270, 117, 270, 270, 270, 140, 140, 117, 117, 4157 115, 115, 117, 121, 101, 269, 101, 140, 117, 115, 4158 115, 114, 115, 178, 199, 220, 224, 235, 239, 137, 4159 115, 114, 114, 181, 204, 61, 62, 172, 150, 179, 4160 115, 115, 114, 318, 355, 356, 259, 119, 139, 139, 4161 304, 146, 211, 114, 137, 211, 152, 139, 139, 140, 4162 140, 140, 140, 117, 117, 139, 140, 117, 179, 47, 4163 48, 119, 189, 190, 191, 177, 179, 140, 115, 178, 4164 235, 119, 191, 101, 139, 101, 139, 114, 114, 137, 4165 120, 139, 139, 278, 315, 120, 121, 135, 171, 115, 4166 140, 152, 152, 115, 115, 115, 115, 273, 45, 171, 4167 187, 188, 316, 135, 139, 179, 189, 115, 137, 179, 4168 137, 139, 115, 139, 115, 139, 101, 139, 101, 139, 4169 137, 270, 304, 146, 144, 212, 115, 137, 117, 140, 4170 140, 179, 101, 121, 135, 140, 213, 214, 220, 137, 4171 178, 178, 213, 181, 205, 233, 372, 181, 205, 115, 4172 139, 115, 139, 140, 120, 115, 121, 117, 117, 171, 4173 187, 190, 192, 193, 139, 137, 190, 194, 195, 140, 4174 114, 157, 315, 363, 144, 140, 181, 205, 181, 205, 4175 115, 114, 137, 144, 179, 184, 120, 190, 220, 178, 4176 59, 184, 197, 120, 190, 115, 235, 115, 140, 140, 4177 298, 179, 184, 137, 196, 197, 184, 197, 181, 181, 4178 115, 115, 115, 196, 140, 140, 181, 181, 140, 140 4073 4179 }; 4074 4180 … … 4907 5013 4908 5014 /* Line 1806 of yacc.c */ 4909 #line 3 05"parser.yy"5015 #line 326 "parser.yy" 4910 5016 { typedefTable.enterScope(); } 4911 5017 break; … … 4914 5020 4915 5021 /* Line 1806 of yacc.c */ 4916 #line 3 09"parser.yy"5022 #line 330 "parser.yy" 4917 5023 { typedefTable.leaveScope(); } 4918 5024 break; … … 4921 5027 4922 5028 /* Line 1806 of yacc.c */ 4923 #line 3 16"parser.yy"5029 #line 337 "parser.yy" 4924 5030 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4925 5031 break; … … 4928 5034 4929 5035 /* Line 1806 of yacc.c */ 4930 #line 3 17"parser.yy"5036 #line 338 "parser.yy" 4931 5037 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4932 5038 break; … … 4935 5041 4936 5042 /* Line 1806 of yacc.c */ 4937 #line 3 18"parser.yy"5043 #line 339 "parser.yy" 4938 5044 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4939 5045 break; … … 4942 5048 4943 5049 /* Line 1806 of yacc.c */ 4944 #line 3 19"parser.yy"5050 #line 340 "parser.yy" 4945 5051 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4946 5052 break; … … 4949 5055 4950 5056 /* Line 1806 of yacc.c */ 4951 #line 3 20"parser.yy"5057 #line 341 "parser.yy" 4952 5058 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4953 5059 break; … … 4956 5062 4957 5063 /* Line 1806 of yacc.c */ 4958 #line 3 45"parser.yy"5064 #line 366 "parser.yy" 4959 5065 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4960 5066 break; … … 4963 5069 4964 5070 /* Line 1806 of yacc.c */ 4965 #line 3 49"parser.yy"5071 #line 370 "parser.yy" 4966 5072 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4967 5073 break; … … 4970 5076 4971 5077 /* Line 1806 of yacc.c */ 4972 #line 3 51"parser.yy"5078 #line 372 "parser.yy" 4973 5079 { 4974 5080 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st … … 4981 5087 4982 5088 /* Line 1806 of yacc.c */ 4983 #line 3 62"parser.yy"5089 #line 383 "parser.yy" 4984 5090 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4985 5091 break; … … 4988 5094 4989 5095 /* Line 1806 of yacc.c */ 4990 #line 3 64"parser.yy"5096 #line 385 "parser.yy" 4991 5097 { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); } 4992 5098 break; … … 4995 5101 4996 5102 /* Line 1806 of yacc.c */ 4997 #line 3 67"parser.yy"5103 #line 388 "parser.yy" 4998 5104 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4999 5105 break; … … 5002 5108 5003 5109 /* Line 1806 of yacc.c */ 5004 #line 3 69"parser.yy"5110 #line 390 "parser.yy" 5005 5111 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 5006 5112 break; … … 5009 5115 5010 5116 /* Line 1806 of yacc.c */ 5011 #line 379"parser.yy"5117 #line 400 "parser.yy" 5012 5118 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 5013 5119 break; … … 5016 5122 5017 5123 /* Line 1806 of yacc.c */ 5018 #line 381"parser.yy"5124 #line 402 "parser.yy" 5019 5125 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 5020 5126 break; … … 5023 5129 5024 5130 /* Line 1806 of yacc.c */ 5025 #line 383"parser.yy"5131 #line 404 "parser.yy" 5026 5132 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5027 5133 break; … … 5030 5136 5031 5137 /* Line 1806 of yacc.c */ 5032 #line 385"parser.yy"5138 #line 406 "parser.yy" 5033 5139 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5034 5140 break; … … 5037 5143 5038 5144 /* Line 1806 of yacc.c */ 5039 #line 387"parser.yy"5145 #line 408 "parser.yy" 5040 5146 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); } 5041 5147 break; … … 5044 5150 5045 5151 /* Line 1806 of yacc.c */ 5046 #line 389"parser.yy"5152 #line 410 "parser.yy" 5047 5153 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 5048 5154 break; … … 5051 5157 5052 5158 /* Line 1806 of yacc.c */ 5053 #line 391"parser.yy"5159 #line 412 "parser.yy" 5054 5160 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5055 5161 break; … … 5058 5164 5059 5165 /* Line 1806 of yacc.c */ 5060 #line 393"parser.yy"5166 #line 414 "parser.yy" 5061 5167 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5062 5168 break; … … 5065 5171 5066 5172 /* Line 1806 of yacc.c */ 5067 #line 395"parser.yy"5173 #line 416 "parser.yy" 5068 5174 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5069 5175 break; … … 5072 5178 5073 5179 /* Line 1806 of yacc.c */ 5074 #line 397"parser.yy"5180 #line 418 "parser.yy" 5075 5181 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5076 5182 break; … … 5079 5185 5080 5186 /* Line 1806 of yacc.c */ 5081 #line 399"parser.yy"5187 #line 420 "parser.yy" 5082 5188 { 5083 5189 Token fn; … … 5090 5196 5091 5197 /* Line 1806 of yacc.c */ 5092 #line 4 09"parser.yy"5198 #line 430 "parser.yy" 5093 5199 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5094 5200 break; … … 5097 5203 5098 5204 /* Line 1806 of yacc.c */ 5099 #line 4 14"parser.yy"5205 #line 435 "parser.yy" 5100 5206 { (yyval.en) = nullptr; } 5101 5207 break; … … 5104 5210 5105 5211 /* Line 1806 of yacc.c */ 5106 #line 4 20"parser.yy"5212 #line 441 "parser.yy" 5107 5213 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5108 5214 break; … … 5111 5217 5112 5218 /* Line 1806 of yacc.c */ 5113 #line 4 26"parser.yy"5219 #line 447 "parser.yy" 5114 5220 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); } 5115 5221 break; … … 5118 5224 5119 5225 /* Line 1806 of yacc.c */ 5120 #line 4 28"parser.yy"5226 #line 449 "parser.yy" 5121 5227 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); } 5122 5228 break; … … 5125 5231 5126 5232 /* Line 1806 of yacc.c */ 5127 #line 4 30"parser.yy"5233 #line 451 "parser.yy" 5128 5234 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 5129 5235 break; … … 5132 5238 5133 5239 /* Line 1806 of yacc.c */ 5134 #line 4 32"parser.yy"5240 #line 453 "parser.yy" 5135 5241 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5136 5242 break; … … 5139 5245 5140 5246 /* Line 1806 of yacc.c */ 5141 #line 4 34"parser.yy"5247 #line 455 "parser.yy" 5142 5248 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 5143 5249 break; … … 5146 5252 5147 5253 /* Line 1806 of yacc.c */ 5148 #line 4 36"parser.yy"5254 #line 457 "parser.yy" 5149 5255 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5150 5256 break; … … 5153 5259 5154 5260 /* Line 1806 of yacc.c */ 5155 #line 4 41"parser.yy"5261 #line 462 "parser.yy" 5156 5262 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 5157 5263 break; … … 5160 5266 5161 5267 /* Line 1806 of yacc.c */ 5162 #line 4 43"parser.yy"5268 #line 464 "parser.yy" 5163 5269 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 5164 5270 break; … … 5167 5273 5168 5274 /* Line 1806 of yacc.c */ 5169 #line 4 45"parser.yy"5275 #line 466 "parser.yy" 5170 5276 { 5171 5277 if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) { … … 5180 5286 5181 5287 /* Line 1806 of yacc.c */ 5182 #line 4 56"parser.yy"5288 #line 477 "parser.yy" 5183 5289 { (yyval.en) = nullptr; } 5184 5290 break; … … 5187 5293 5188 5294 /* Line 1806 of yacc.c */ 5189 #line 4 58"parser.yy"5295 #line 479 "parser.yy" 5190 5296 { 5191 5297 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ); … … 5197 5303 5198 5304 /* Line 1806 of yacc.c */ 5199 #line 4 69"parser.yy"5305 #line 490 "parser.yy" 5200 5306 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5201 5307 break; … … 5204 5310 5205 5311 /* Line 1806 of yacc.c */ 5206 #line 4 71"parser.yy"5312 #line 492 "parser.yy" 5207 5313 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5208 5314 break; … … 5211 5317 5212 5318 /* Line 1806 of yacc.c */ 5213 #line 4 73"parser.yy"5319 #line 494 "parser.yy" 5214 5320 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5215 5321 break; … … 5218 5324 5219 5325 /* Line 1806 of yacc.c */ 5220 #line 4 78"parser.yy"5326 #line 499 "parser.yy" 5221 5327 { 5222 5328 switch ( (yyvsp[(1) - (2)].op) ) { … … 5236 5342 5237 5343 /* Line 1806 of yacc.c */ 5238 #line 491"parser.yy"5344 #line 512 "parser.yy" 5239 5345 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5240 5346 break; … … 5243 5349 5244 5350 /* Line 1806 of yacc.c */ 5245 #line 493"parser.yy"5351 #line 514 "parser.yy" 5246 5352 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5247 5353 break; … … 5250 5356 5251 5357 /* Line 1806 of yacc.c */ 5252 #line 495"parser.yy"5358 #line 516 "parser.yy" 5253 5359 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5254 5360 break; … … 5257 5363 5258 5364 /* Line 1806 of yacc.c */ 5259 #line 497"parser.yy"5365 #line 518 "parser.yy" 5260 5366 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5261 5367 break; … … 5264 5370 5265 5371 /* Line 1806 of yacc.c */ 5266 #line 499"parser.yy"5372 #line 520 "parser.yy" 5267 5373 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5268 5374 break; … … 5271 5377 5272 5378 /* Line 1806 of yacc.c */ 5273 #line 5 01"parser.yy"5379 #line 522 "parser.yy" 5274 5380 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5275 5381 break; … … 5278 5384 5279 5385 /* Line 1806 of yacc.c */ 5280 #line 5 03"parser.yy"5386 #line 524 "parser.yy" 5281 5387 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5282 5388 break; … … 5285 5391 5286 5392 /* Line 1806 of yacc.c */ 5287 #line 5 05"parser.yy"5393 #line 526 "parser.yy" 5288 5394 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5289 5395 break; … … 5292 5398 5293 5399 /* Line 1806 of yacc.c */ 5294 #line 5 07"parser.yy"5400 #line 528 "parser.yy" 5295 5401 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5296 5402 break; … … 5299 5405 5300 5406 /* Line 1806 of yacc.c */ 5301 #line 5 09"parser.yy"5407 #line 530 "parser.yy" 5302 5408 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5303 5409 break; … … 5306 5412 5307 5413 /* Line 1806 of yacc.c */ 5308 #line 5 11"parser.yy"5414 #line 532 "parser.yy" 5309 5415 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5310 5416 break; … … 5313 5419 5314 5420 /* Line 1806 of yacc.c */ 5315 #line 5 17"parser.yy"5421 #line 538 "parser.yy" 5316 5422 { (yyval.op) = OperKinds::PointTo; } 5317 5423 break; … … 5320 5426 5321 5427 /* Line 1806 of yacc.c */ 5322 #line 5 18"parser.yy"5428 #line 539 "parser.yy" 5323 5429 { (yyval.op) = OperKinds::AddressOf; } 5324 5430 break; … … 5327 5433 5328 5434 /* Line 1806 of yacc.c */ 5329 #line 5 24"parser.yy"5435 #line 545 "parser.yy" 5330 5436 { (yyval.op) = OperKinds::UnPlus; } 5331 5437 break; … … 5334 5440 5335 5441 /* Line 1806 of yacc.c */ 5336 #line 5 25"parser.yy"5442 #line 546 "parser.yy" 5337 5443 { (yyval.op) = OperKinds::UnMinus; } 5338 5444 break; … … 5341 5447 5342 5448 /* Line 1806 of yacc.c */ 5343 #line 5 26"parser.yy"5449 #line 547 "parser.yy" 5344 5450 { (yyval.op) = OperKinds::Neg; } 5345 5451 break; … … 5348 5454 5349 5455 /* Line 1806 of yacc.c */ 5350 #line 5 27"parser.yy"5456 #line 548 "parser.yy" 5351 5457 { (yyval.op) = OperKinds::BitNeg; } 5352 5458 break; … … 5355 5461 5356 5462 /* Line 1806 of yacc.c */ 5357 #line 5 33"parser.yy"5463 #line 554 "parser.yy" 5358 5464 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5359 5465 break; … … 5362 5468 5363 5469 /* Line 1806 of yacc.c */ 5364 #line 5 41"parser.yy"5470 #line 562 "parser.yy" 5365 5471 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5366 5472 break; … … 5369 5475 5370 5476 /* Line 1806 of yacc.c */ 5371 #line 5 43"parser.yy"5477 #line 564 "parser.yy" 5372 5478 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5373 5479 break; … … 5376 5482 5377 5483 /* Line 1806 of yacc.c */ 5378 #line 5 45"parser.yy"5484 #line 566 "parser.yy" 5379 5485 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5380 5486 break; … … 5383 5489 5384 5490 /* Line 1806 of yacc.c */ 5385 #line 5 51"parser.yy"5491 #line 572 "parser.yy" 5386 5492 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5387 5493 break; … … 5390 5496 5391 5497 /* Line 1806 of yacc.c */ 5392 #line 5 53"parser.yy"5498 #line 574 "parser.yy" 5393 5499 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5394 5500 break; … … 5397 5503 5398 5504 /* Line 1806 of yacc.c */ 5399 #line 5 59"parser.yy"5505 #line 580 "parser.yy" 5400 5506 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5401 5507 break; … … 5404 5510 5405 5511 /* Line 1806 of yacc.c */ 5406 #line 5 61"parser.yy"5512 #line 582 "parser.yy" 5407 5513 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5408 5514 break; … … 5411 5517 5412 5518 /* Line 1806 of yacc.c */ 5413 #line 5 67"parser.yy"5519 #line 588 "parser.yy" 5414 5520 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5415 5521 break; … … 5418 5524 5419 5525 /* Line 1806 of yacc.c */ 5420 #line 5 69"parser.yy"5526 #line 590 "parser.yy" 5421 5527 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5422 5528 break; … … 5425 5531 5426 5532 /* Line 1806 of yacc.c */ 5427 #line 5 71"parser.yy"5533 #line 592 "parser.yy" 5428 5534 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5429 5535 break; … … 5432 5538 5433 5539 /* Line 1806 of yacc.c */ 5434 #line 5 73"parser.yy"5540 #line 594 "parser.yy" 5435 5541 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5436 5542 break; … … 5439 5545 5440 5546 /* Line 1806 of yacc.c */ 5441 #line 579"parser.yy"5547 #line 600 "parser.yy" 5442 5548 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5443 5549 break; … … 5446 5552 5447 5553 /* Line 1806 of yacc.c */ 5448 #line 581"parser.yy"5554 #line 602 "parser.yy" 5449 5555 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5450 5556 break; … … 5453 5559 5454 5560 /* Line 1806 of yacc.c */ 5455 #line 587"parser.yy"5561 #line 608 "parser.yy" 5456 5562 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5457 5563 break; … … 5460 5566 5461 5567 /* Line 1806 of yacc.c */ 5462 #line 593"parser.yy"5568 #line 614 "parser.yy" 5463 5569 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5464 5570 break; … … 5467 5573 5468 5574 /* Line 1806 of yacc.c */ 5469 #line 599"parser.yy"5575 #line 620 "parser.yy" 5470 5576 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5471 5577 break; … … 5474 5580 5475 5581 /* Line 1806 of yacc.c */ 5476 #line 6 05"parser.yy"5582 #line 626 "parser.yy" 5477 5583 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5478 5584 break; … … 5481 5587 5482 5588 /* Line 1806 of yacc.c */ 5483 #line 6 11"parser.yy"5589 #line 632 "parser.yy" 5484 5590 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5485 5591 break; … … 5488 5594 5489 5595 /* Line 1806 of yacc.c */ 5490 #line 6 17"parser.yy"5596 #line 638 "parser.yy" 5491 5597 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5492 5598 break; … … 5495 5601 5496 5602 /* Line 1806 of yacc.c */ 5497 #line 6 20"parser.yy"5603 #line 641 "parser.yy" 5498 5604 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5499 5605 break; … … 5502 5608 5503 5609 /* Line 1806 of yacc.c */ 5504 #line 6 33"parser.yy"5610 #line 654 "parser.yy" 5505 5611 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5506 5612 break; … … 5509 5615 5510 5616 /* Line 1806 of yacc.c */ 5511 #line 6 40"parser.yy"5617 #line 661 "parser.yy" 5512 5618 { (yyval.en) = nullptr; } 5513 5619 break; … … 5516 5622 5517 5623 /* Line 1806 of yacc.c */ 5518 #line 6 45"parser.yy"5624 #line 666 "parser.yy" 5519 5625 { (yyval.op) = OperKinds::Assign; } 5520 5626 break; … … 5523 5629 5524 5630 /* Line 1806 of yacc.c */ 5525 #line 6 46"parser.yy"5631 #line 667 "parser.yy" 5526 5632 { (yyval.op) = OperKinds::AtAssn; } 5527 5633 break; … … 5530 5636 5531 5637 /* Line 1806 of yacc.c */ 5532 #line 6 47"parser.yy"5638 #line 668 "parser.yy" 5533 5639 { (yyval.op) = OperKinds::MulAssn; } 5534 5640 break; … … 5537 5643 5538 5644 /* Line 1806 of yacc.c */ 5539 #line 6 48"parser.yy"5645 #line 669 "parser.yy" 5540 5646 { (yyval.op) = OperKinds::DivAssn; } 5541 5647 break; … … 5544 5650 5545 5651 /* Line 1806 of yacc.c */ 5546 #line 6 49"parser.yy"5652 #line 670 "parser.yy" 5547 5653 { (yyval.op) = OperKinds::ModAssn; } 5548 5654 break; … … 5551 5657 5552 5658 /* Line 1806 of yacc.c */ 5553 #line 6 50"parser.yy"5659 #line 671 "parser.yy" 5554 5660 { (yyval.op) = OperKinds::PlusAssn; } 5555 5661 break; … … 5558 5664 5559 5665 /* Line 1806 of yacc.c */ 5560 #line 6 51"parser.yy"5666 #line 672 "parser.yy" 5561 5667 { (yyval.op) = OperKinds::MinusAssn; } 5562 5668 break; … … 5565 5671 5566 5672 /* Line 1806 of yacc.c */ 5567 #line 6 52"parser.yy"5673 #line 673 "parser.yy" 5568 5674 { (yyval.op) = OperKinds::LSAssn; } 5569 5675 break; … … 5572 5678 5573 5679 /* Line 1806 of yacc.c */ 5574 #line 6 53"parser.yy"5680 #line 674 "parser.yy" 5575 5681 { (yyval.op) = OperKinds::RSAssn; } 5576 5682 break; … … 5579 5685 5580 5686 /* Line 1806 of yacc.c */ 5581 #line 6 54"parser.yy"5687 #line 675 "parser.yy" 5582 5688 { (yyval.op) = OperKinds::AndAssn; } 5583 5689 break; … … 5586 5692 5587 5693 /* Line 1806 of yacc.c */ 5588 #line 6 55"parser.yy"5694 #line 676 "parser.yy" 5589 5695 { (yyval.op) = OperKinds::ERAssn; } 5590 5696 break; … … 5593 5699 5594 5700 /* Line 1806 of yacc.c */ 5595 #line 6 56"parser.yy"5701 #line 677 "parser.yy" 5596 5702 { (yyval.op) = OperKinds::OrAssn; } 5597 5703 break; … … 5600 5706 5601 5707 /* Line 1806 of yacc.c */ 5602 #line 6 67"parser.yy"5708 #line 688 "parser.yy" 5603 5709 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5604 5710 break; … … 5607 5713 5608 5714 /* Line 1806 of yacc.c */ 5609 #line 6 69"parser.yy"5715 #line 690 "parser.yy" 5610 5716 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5611 5717 break; … … 5614 5720 5615 5721 /* Line 1806 of yacc.c */ 5616 #line 6 75"parser.yy"5722 #line 696 "parser.yy" 5617 5723 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5618 5724 break; … … 5621 5727 5622 5728 /* Line 1806 of yacc.c */ 5623 #line 681"parser.yy"5729 #line 702 "parser.yy" 5624 5730 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5625 5731 break; … … 5628 5734 5629 5735 /* Line 1806 of yacc.c */ 5630 #line 686"parser.yy"5736 #line 707 "parser.yy" 5631 5737 { (yyval.en) = nullptr; } 5632 5738 break; … … 5635 5741 5636 5742 /* Line 1806 of yacc.c */ 5637 #line 695"parser.yy"5743 #line 716 "parser.yy" 5638 5744 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5639 5745 break; … … 5642 5748 5643 5749 /* Line 1806 of yacc.c */ 5644 #line 7 02"parser.yy"5750 #line 723 "parser.yy" 5645 5751 { 5646 5752 Token fn; … … 5653 5759 5654 5760 /* Line 1806 of yacc.c */ 5655 #line 7 12"parser.yy"5761 #line 733 "parser.yy" 5656 5762 { 5657 5763 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); … … 5662 5768 5663 5769 /* Line 1806 of yacc.c */ 5664 #line 7 19"parser.yy"5770 #line 740 "parser.yy" 5665 5771 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5666 5772 break; … … 5669 5775 5670 5776 /* Line 1806 of yacc.c */ 5671 #line 7 26"parser.yy"5777 #line 748 "parser.yy" 5672 5778 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5673 5779 break; … … 5676 5782 5677 5783 /* Line 1806 of yacc.c */ 5678 #line 7 32"parser.yy"5784 #line 754 "parser.yy" 5679 5785 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5680 5786 break; … … 5683 5789 5684 5790 /* Line 1806 of yacc.c */ 5685 #line 7 37"parser.yy"5791 #line 759 "parser.yy" 5686 5792 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5687 5793 break; … … 5690 5796 5691 5797 /* Line 1806 of yacc.c */ 5692 #line 739 "parser.yy" 5693 { // mark all fields in list 5694 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 5695 iter->set_extension( true ); 5798 #line 761 "parser.yy" 5799 { 5800 distExt( (yyvsp[(2) - (2)].decl) ); 5696 5801 (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); 5697 5802 } … … 5701 5806 5702 5807 /* Line 1806 of yacc.c */ 5703 #line 7 45"parser.yy"5808 #line 766 "parser.yy" 5704 5809 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5705 5810 break; 5706 5811 5707 case 155: 5708 5709 /* Line 1806 of yacc.c */ 5710 #line 752 "parser.yy" 5812 case 153: 5813 5814 /* Line 1806 of yacc.c */ 5815 #line 768 "parser.yy" 5816 { 5817 distExt( (yyvsp[(2) - (2)].decl) ); 5818 (yyval.sn) = new StatementNode( (yyvsp[(2) - (2)].decl) ); 5819 } 5820 break; 5821 5822 case 156: 5823 5824 /* Line 1806 of yacc.c */ 5825 #line 778 "parser.yy" 5711 5826 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5712 5827 break; 5713 5828 5714 case 15 6:5715 5716 /* Line 1806 of yacc.c */ 5717 #line 7 57"parser.yy"5829 case 157: 5830 5831 /* Line 1806 of yacc.c */ 5832 #line 783 "parser.yy" 5718 5833 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5719 5834 break; 5720 5835 5721 case 15 7:5722 5723 /* Line 1806 of yacc.c */ 5724 #line 7 63"parser.yy"5836 case 158: 5837 5838 /* Line 1806 of yacc.c */ 5839 #line 789 "parser.yy" 5725 5840 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5726 5841 break; 5727 5842 5728 case 15 8:5729 5730 /* Line 1806 of yacc.c */ 5731 #line 7 65"parser.yy"5843 case 159: 5844 5845 /* Line 1806 of yacc.c */ 5846 #line 791 "parser.yy" 5732 5847 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5733 5848 break; 5734 5849 5735 case 1 59:5736 5737 /* Line 1806 of yacc.c */ 5738 #line 7 67"parser.yy"5850 case 160: 5851 5852 /* Line 1806 of yacc.c */ 5853 #line 793 "parser.yy" 5739 5854 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5740 5855 break; 5741 5856 5742 case 16 0:5743 5744 /* Line 1806 of yacc.c */ 5745 #line 7 69"parser.yy"5857 case 161: 5858 5859 /* Line 1806 of yacc.c */ 5860 #line 795 "parser.yy" 5746 5861 { 5747 5862 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5755 5870 break; 5756 5871 5757 case 16 1:5758 5759 /* Line 1806 of yacc.c */ 5760 #line 779"parser.yy"5872 case 162: 5873 5874 /* Line 1806 of yacc.c */ 5875 #line 805 "parser.yy" 5761 5876 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5762 5877 break; 5763 5878 5764 case 16 2:5765 5766 /* Line 1806 of yacc.c */ 5767 #line 781"parser.yy"5879 case 163: 5880 5881 /* Line 1806 of yacc.c */ 5882 #line 807 "parser.yy" 5768 5883 { 5769 5884 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5772 5887 break; 5773 5888 5774 case 16 3:5775 5776 /* Line 1806 of yacc.c */ 5777 #line 791"parser.yy"5889 case 164: 5890 5891 /* Line 1806 of yacc.c */ 5892 #line 817 "parser.yy" 5778 5893 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5779 5894 break; 5780 5895 5781 case 16 4:5782 5783 /* Line 1806 of yacc.c */ 5784 #line 793"parser.yy"5896 case 165: 5897 5898 /* Line 1806 of yacc.c */ 5899 #line 819 "parser.yy" 5785 5900 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5786 5901 break; 5787 5902 5788 case 16 6:5789 5790 /* Line 1806 of yacc.c */ 5791 #line 798"parser.yy"5903 case 167: 5904 5905 /* Line 1806 of yacc.c */ 5906 #line 824 "parser.yy" 5792 5907 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5793 5908 break; 5794 5909 5795 case 16 7:5796 5797 /* Line 1806 of yacc.c */ 5798 #line 8 00"parser.yy"5910 case 168: 5911 5912 /* Line 1806 of yacc.c */ 5913 #line 826 "parser.yy" 5799 5914 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5800 5915 break; 5801 5916 5802 case 16 8:5803 5804 /* Line 1806 of yacc.c */ 5805 #line 8 04"parser.yy"5917 case 169: 5918 5919 /* Line 1806 of yacc.c */ 5920 #line 830 "parser.yy" 5806 5921 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5807 5922 break; 5808 5923 5809 case 1 69:5810 5811 /* Line 1806 of yacc.c */ 5812 #line 8 05"parser.yy"5924 case 170: 5925 5926 /* Line 1806 of yacc.c */ 5927 #line 831 "parser.yy" 5813 5928 { (yyval.sn) = new StatementNode( build_default() ); } 5814 5929 break; 5815 5930 5816 case 17 1:5817 5818 /* Line 1806 of yacc.c */ 5819 #line 8 11"parser.yy"5931 case 172: 5932 5933 /* Line 1806 of yacc.c */ 5934 #line 837 "parser.yy" 5820 5935 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5821 5936 break; 5822 5937 5823 case 17 2:5824 5825 /* Line 1806 of yacc.c */ 5826 #line 8 15"parser.yy"5938 case 173: 5939 5940 /* Line 1806 of yacc.c */ 5941 #line 841 "parser.yy" 5827 5942 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5828 5943 break; 5829 5944 5830 case 17 3:5831 5832 /* Line 1806 of yacc.c */ 5833 #line 8 20"parser.yy"5945 case 174: 5946 5947 /* Line 1806 of yacc.c */ 5948 #line 846 "parser.yy" 5834 5949 { (yyval.sn) = nullptr; } 5835 5950 break; 5836 5951 5837 case 17 5:5838 5839 /* Line 1806 of yacc.c */ 5840 #line 8 26"parser.yy"5952 case 176: 5953 5954 /* Line 1806 of yacc.c */ 5955 #line 852 "parser.yy" 5841 5956 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5842 5957 break; 5843 5958 5844 case 17 6:5845 5846 /* Line 1806 of yacc.c */ 5847 #line 8 28"parser.yy"5959 case 177: 5960 5961 /* Line 1806 of yacc.c */ 5962 #line 854 "parser.yy" 5848 5963 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5849 5964 break; 5850 5965 5851 case 17 7:5852 5853 /* Line 1806 of yacc.c */ 5854 #line 8 33"parser.yy"5966 case 178: 5967 5968 /* Line 1806 of yacc.c */ 5969 #line 859 "parser.yy" 5855 5970 { (yyval.sn) = nullptr; } 5856 5971 break; 5857 5972 5858 case 1 79:5859 5860 /* Line 1806 of yacc.c */ 5861 #line 8 39"parser.yy"5973 case 180: 5974 5975 /* Line 1806 of yacc.c */ 5976 #line 865 "parser.yy" 5862 5977 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5863 5978 break; 5864 5979 5865 case 18 0:5866 5867 /* Line 1806 of yacc.c */ 5868 #line 8 41"parser.yy"5980 case 181: 5981 5982 /* Line 1806 of yacc.c */ 5983 #line 867 "parser.yy" 5869 5984 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5870 5985 break; 5871 5986 5872 case 18 1:5873 5874 /* Line 1806 of yacc.c */ 5875 #line 8 43"parser.yy"5987 case 182: 5988 5989 /* Line 1806 of yacc.c */ 5990 #line 869 "parser.yy" 5876 5991 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5877 5992 break; 5878 5993 5879 case 18 2:5880 5881 /* Line 1806 of yacc.c */ 5882 #line 8 45"parser.yy"5994 case 183: 5995 5996 /* Line 1806 of yacc.c */ 5997 #line 871 "parser.yy" 5883 5998 { (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) ) ) ) ) ) ); } 5884 5999 break; 5885 6000 5886 case 18 3:5887 5888 /* Line 1806 of yacc.c */ 5889 #line 8 50"parser.yy"6001 case 184: 6002 6003 /* Line 1806 of yacc.c */ 6004 #line 876 "parser.yy" 5890 6005 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5891 6006 break; 5892 6007 5893 case 18 5:5894 5895 /* Line 1806 of yacc.c */ 5896 #line 8 56"parser.yy"6008 case 186: 6009 6010 /* Line 1806 of yacc.c */ 6011 #line 882 "parser.yy" 5897 6012 { (yyval.sn) = nullptr; } 5898 6013 break; 5899 6014 5900 case 18 6:5901 5902 /* Line 1806 of yacc.c */ 5903 #line 8 58"parser.yy"6015 case 187: 6016 6017 /* Line 1806 of yacc.c */ 6018 #line 884 "parser.yy" 5904 6019 { (yyval.sn) = nullptr; } 5905 6020 break; 5906 6021 5907 case 18 7:5908 5909 /* Line 1806 of yacc.c */ 5910 #line 8 63"parser.yy"6022 case 188: 6023 6024 /* Line 1806 of yacc.c */ 6025 #line 889 "parser.yy" 5911 6026 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5912 6027 break; 5913 6028 5914 case 18 8:5915 5916 /* Line 1806 of yacc.c */ 5917 #line 8 65"parser.yy"6029 case 189: 6030 6031 /* Line 1806 of yacc.c */ 6032 #line 891 "parser.yy" 5918 6033 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5919 6034 break; 5920 6035 5921 case 1 89:5922 5923 /* Line 1806 of yacc.c */ 5924 #line 8 67"parser.yy"6036 case 190: 6037 6038 /* Line 1806 of yacc.c */ 6039 #line 893 "parser.yy" 5925 6040 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5926 6041 break; 5927 6042 5928 case 19 0:5929 5930 /* Line 1806 of yacc.c */ 5931 #line 8 72"parser.yy"6043 case 191: 6044 6045 /* Line 1806 of yacc.c */ 6046 #line 898 "parser.yy" 5932 6047 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5933 6048 break; 5934 6049 5935 case 19 1:5936 5937 /* Line 1806 of yacc.c */ 5938 #line 874"parser.yy"6050 case 192: 6051 6052 /* Line 1806 of yacc.c */ 6053 #line 900 "parser.yy" 5939 6054 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5940 6055 break; 5941 6056 5942 case 19 2:5943 5944 /* Line 1806 of yacc.c */ 5945 #line 879"parser.yy"6057 case 193: 6058 6059 /* Line 1806 of yacc.c */ 6060 #line 905 "parser.yy" 5946 6061 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5947 6062 break; 5948 6063 5949 case 19 3:5950 5951 /* Line 1806 of yacc.c */ 5952 #line 883"parser.yy"6064 case 194: 6065 6066 /* Line 1806 of yacc.c */ 6067 #line 909 "parser.yy" 5953 6068 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5954 6069 break; 5955 6070 5956 case 19 4:5957 5958 /* Line 1806 of yacc.c */ 5959 #line 886"parser.yy"6071 case 195: 6072 6073 /* Line 1806 of yacc.c */ 6074 #line 912 "parser.yy" 5960 6075 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5961 6076 break; 5962 6077 5963 case 19 5:5964 5965 /* Line 1806 of yacc.c */ 5966 #line 890"parser.yy"6078 case 196: 6079 6080 /* Line 1806 of yacc.c */ 6081 #line 916 "parser.yy" 5967 6082 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5968 6083 break; 5969 6084 5970 case 19 6:5971 5972 /* Line 1806 of yacc.c */ 5973 #line 893"parser.yy"6085 case 197: 6086 6087 /* Line 1806 of yacc.c */ 6088 #line 919 "parser.yy" 5974 6089 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5975 6090 break; 5976 6091 5977 case 19 7:5978 5979 /* Line 1806 of yacc.c */ 5980 #line 897"parser.yy"6092 case 198: 6093 6094 /* Line 1806 of yacc.c */ 6095 #line 923 "parser.yy" 5981 6096 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5982 6097 break; 5983 6098 5984 case 19 8:5985 5986 /* Line 1806 of yacc.c */ 5987 #line 899"parser.yy"6099 case 199: 6100 6101 /* Line 1806 of yacc.c */ 6102 #line 925 "parser.yy" 5988 6103 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5989 6104 break; 5990 6105 5991 case 199:5992 5993 /* Line 1806 of yacc.c */ 5994 #line 9 01"parser.yy"6106 case 200: 6107 6108 /* Line 1806 of yacc.c */ 6109 #line 927 "parser.yy" 5995 6110 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5996 6111 break; 5997 6112 5998 case 20 0:5999 6000 /* Line 1806 of yacc.c */ 6001 #line 9 03"parser.yy"6113 case 201: 6114 6115 /* Line 1806 of yacc.c */ 6116 #line 929 "parser.yy" 6002 6117 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 6003 6118 break; 6004 6119 6005 case 20 1:6006 6007 /* Line 1806 of yacc.c */ 6008 #line 9 05"parser.yy"6120 case 202: 6121 6122 /* Line 1806 of yacc.c */ 6123 #line 931 "parser.yy" 6009 6124 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 6010 6125 break; 6011 6126 6012 case 20 2:6013 6014 /* Line 1806 of yacc.c */ 6015 #line 9 10"parser.yy"6127 case 203: 6128 6129 /* Line 1806 of yacc.c */ 6130 #line 936 "parser.yy" 6016 6131 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 6017 6132 break; 6018 6133 6019 case 20 3:6020 6021 /* Line 1806 of yacc.c */ 6022 #line 9 12"parser.yy"6134 case 204: 6135 6136 /* Line 1806 of yacc.c */ 6137 #line 938 "parser.yy" 6023 6138 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 6024 6139 break; 6025 6140 6026 case 20 4:6027 6028 /* Line 1806 of yacc.c */ 6029 #line 9 14"parser.yy"6141 case 205: 6142 6143 /* Line 1806 of yacc.c */ 6144 #line 940 "parser.yy" 6030 6145 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 6031 6146 break; 6032 6147 6033 case 20 6:6034 6035 /* Line 1806 of yacc.c */ 6036 #line 9 21"parser.yy"6148 case 207: 6149 6150 /* Line 1806 of yacc.c */ 6151 #line 947 "parser.yy" 6037 6152 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6038 6153 break; 6039 6154 6040 case 20 7:6041 6042 /* Line 1806 of yacc.c */ 6043 #line 9 23"parser.yy"6155 case 208: 6156 6157 /* Line 1806 of yacc.c */ 6158 #line 949 "parser.yy" 6044 6159 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6045 6160 break; 6046 6161 6047 case 20 8:6048 6049 /* Line 1806 of yacc.c */ 6050 #line 9 25"parser.yy"6162 case 209: 6163 6164 /* Line 1806 of yacc.c */ 6165 #line 951 "parser.yy" 6051 6166 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 6052 6167 break; 6053 6168 6054 case 2 09:6055 6056 /* Line 1806 of yacc.c */ 6057 #line 9 27"parser.yy"6169 case 210: 6170 6171 /* Line 1806 of yacc.c */ 6172 #line 953 "parser.yy" 6058 6173 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 6059 6174 break; 6060 6175 6061 case 21 0:6062 6063 /* Line 1806 of yacc.c */ 6064 #line 9 32"parser.yy"6176 case 211: 6177 6178 /* Line 1806 of yacc.c */ 6179 #line 958 "parser.yy" 6065 6180 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6066 6181 break; 6067 6182 6068 case 21 1:6069 6070 /* Line 1806 of yacc.c */ 6071 #line 9 34"parser.yy"6183 case 212: 6184 6185 /* Line 1806 of yacc.c */ 6186 #line 960 "parser.yy" 6072 6187 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6073 6188 break; 6074 6189 6075 case 21 2:6076 6077 /* Line 1806 of yacc.c */ 6078 #line 9 36"parser.yy"6190 case 213: 6191 6192 /* Line 1806 of yacc.c */ 6193 #line 962 "parser.yy" 6079 6194 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6080 6195 break; 6081 6196 6082 case 21 3:6083 6084 /* Line 1806 of yacc.c */ 6085 #line 9 38"parser.yy"6197 case 214: 6198 6199 /* Line 1806 of yacc.c */ 6200 #line 964 "parser.yy" 6086 6201 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6087 6202 break; 6088 6203 6089 case 21 4:6090 6091 /* Line 1806 of yacc.c */ 6092 #line 9 43"parser.yy"6204 case 215: 6205 6206 /* Line 1806 of yacc.c */ 6207 #line 969 "parser.yy" 6093 6208 { 6094 6209 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6096 6211 break; 6097 6212 6098 case 21 6:6099 6100 /* Line 1806 of yacc.c */ 6101 #line 9 56"parser.yy"6213 case 217: 6214 6215 /* Line 1806 of yacc.c */ 6216 #line 982 "parser.yy" 6102 6217 { 6103 6218 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6106 6221 break; 6107 6222 6108 case 21 7:6109 6110 /* Line 1806 of yacc.c */ 6111 #line 9 61"parser.yy"6223 case 218: 6224 6225 /* Line 1806 of yacc.c */ 6226 #line 987 "parser.yy" 6112 6227 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6113 6228 break; 6114 6229 6115 case 21 8:6116 6117 /* Line 1806 of yacc.c */ 6118 #line 9 63"parser.yy"6230 case 219: 6231 6232 /* Line 1806 of yacc.c */ 6233 #line 989 "parser.yy" 6119 6234 { 6120 6235 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6123 6238 break; 6124 6239 6125 case 22 0:6126 6127 /* Line 1806 of yacc.c */ 6128 #line 9 72"parser.yy"6240 case 221: 6241 6242 /* Line 1806 of yacc.c */ 6243 #line 998 "parser.yy" 6129 6244 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 6130 6245 break; 6131 6246 6132 case 22 1:6133 6134 /* Line 1806 of yacc.c */ 6135 #line 974"parser.yy"6247 case 222: 6248 6249 /* Line 1806 of yacc.c */ 6250 #line 1000 "parser.yy" 6136 6251 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 6137 6252 break; 6138 6253 6139 case 22 2:6140 6141 /* Line 1806 of yacc.c */ 6142 #line 976"parser.yy"6254 case 223: 6255 6256 /* Line 1806 of yacc.c */ 6257 #line 1002 "parser.yy" 6143 6258 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 6144 6259 break; 6145 6260 6146 case 22 3:6147 6148 /* Line 1806 of yacc.c */ 6149 #line 978"parser.yy"6261 case 224: 6262 6263 /* Line 1806 of yacc.c */ 6264 #line 1004 "parser.yy" 6150 6265 { (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) ) ); } 6151 6266 break; 6152 6267 6153 case 22 4:6154 6155 /* Line 1806 of yacc.c */ 6156 #line 980"parser.yy"6268 case 225: 6269 6270 /* Line 1806 of yacc.c */ 6271 #line 1006 "parser.yy" 6157 6272 { (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) ) ); } 6158 6273 break; 6159 6274 6160 case 22 5:6161 6162 /* Line 1806 of yacc.c */ 6163 #line 985"parser.yy"6275 case 226: 6276 6277 /* Line 1806 of yacc.c */ 6278 #line 1011 "parser.yy" 6164 6279 { (yyval.flag) = false; } 6165 6280 break; 6166 6281 6167 case 22 6:6168 6169 /* Line 1806 of yacc.c */ 6170 #line 987"parser.yy"6282 case 227: 6283 6284 /* Line 1806 of yacc.c */ 6285 #line 1013 "parser.yy" 6171 6286 { (yyval.flag) = true; } 6172 6287 break; 6173 6288 6174 case 22 7:6175 6176 /* Line 1806 of yacc.c */ 6177 #line 992"parser.yy"6289 case 228: 6290 6291 /* Line 1806 of yacc.c */ 6292 #line 1018 "parser.yy" 6178 6293 { (yyval.en) = nullptr; } 6179 6294 break; 6180 6295 6181 case 23 0:6182 6183 /* Line 1806 of yacc.c */ 6184 #line 999"parser.yy"6296 case 231: 6297 6298 /* Line 1806 of yacc.c */ 6299 #line 1025 "parser.yy" 6185 6300 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6186 6301 break; 6187 6302 6188 case 23 1:6189 6190 /* Line 1806 of yacc.c */ 6191 #line 10 04"parser.yy"6303 case 232: 6304 6305 /* Line 1806 of yacc.c */ 6306 #line 1030 "parser.yy" 6192 6307 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6193 6308 break; 6194 6309 6195 case 23 2:6196 6197 /* Line 1806 of yacc.c */ 6198 #line 10 06"parser.yy"6310 case 233: 6311 6312 /* Line 1806 of yacc.c */ 6313 #line 1032 "parser.yy" 6199 6314 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6200 6315 break; 6201 6316 6202 case 23 3:6203 6204 /* Line 1806 of yacc.c */ 6205 #line 10 11"parser.yy"6317 case 234: 6318 6319 /* Line 1806 of yacc.c */ 6320 #line 1037 "parser.yy" 6206 6321 { (yyval.en) = nullptr; } 6207 6322 break; 6208 6323 6209 case 23 4:6210 6211 /* Line 1806 of yacc.c */ 6212 #line 10 13"parser.yy"6324 case 235: 6325 6326 /* Line 1806 of yacc.c */ 6327 #line 1039 "parser.yy" 6213 6328 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6214 6329 break; 6215 6330 6216 case 23 5:6217 6218 /* Line 1806 of yacc.c */ 6219 #line 10 16"parser.yy"6331 case 236: 6332 6333 /* Line 1806 of yacc.c */ 6334 #line 1042 "parser.yy" 6220 6335 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6221 6336 break; 6222 6337 6223 case 23 6:6224 6225 /* Line 1806 of yacc.c */ 6226 #line 10 21"parser.yy"6338 case 237: 6339 6340 /* Line 1806 of yacc.c */ 6341 #line 1047 "parser.yy" 6227 6342 { 6228 6343 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6231 6346 break; 6232 6347 6233 case 23 7:6234 6235 /* Line 1806 of yacc.c */ 6236 #line 10 26"parser.yy"6348 case 238: 6349 6350 /* Line 1806 of yacc.c */ 6351 #line 1052 "parser.yy" 6237 6352 { 6238 6353 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6241 6356 break; 6242 6357 6243 case 23 8:6244 6245 /* Line 1806 of yacc.c */ 6246 #line 10 36"parser.yy"6358 case 239: 6359 6360 /* Line 1806 of yacc.c */ 6361 #line 1062 "parser.yy" 6247 6362 { (yyval.decl) = nullptr; } 6248 6363 break; 6249 6364 6250 case 24 1:6251 6252 /* Line 1806 of yacc.c */ 6253 #line 10 43"parser.yy"6365 case 242: 6366 6367 /* Line 1806 of yacc.c */ 6368 #line 1069 "parser.yy" 6254 6369 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6255 6370 break; 6256 6371 6257 case 24 2:6258 6259 /* Line 1806 of yacc.c */ 6260 #line 10 48"parser.yy"6372 case 243: 6373 6374 /* Line 1806 of yacc.c */ 6375 #line 1074 "parser.yy" 6261 6376 { (yyval.decl) = nullptr; } 6262 6377 break; 6263 6378 6264 case 24 5:6265 6266 /* Line 1806 of yacc.c */ 6267 #line 10 55"parser.yy"6379 case 246: 6380 6381 /* Line 1806 of yacc.c */ 6382 #line 1081 "parser.yy" 6268 6383 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6269 6384 break; 6270 6385 6271 case 25 0:6272 6273 /* Line 1806 of yacc.c */ 6274 #line 10 69"parser.yy"6386 case 251: 6387 6388 /* Line 1806 of yacc.c */ 6389 #line 1095 "parser.yy" 6275 6390 {} 6276 6391 break; 6277 6392 6278 case 25 1:6279 6280 /* Line 1806 of yacc.c */ 6281 #line 10 70"parser.yy"6393 case 252: 6394 6395 /* Line 1806 of yacc.c */ 6396 #line 1096 "parser.yy" 6282 6397 {} 6283 6398 break; 6284 6399 6285 case 2 59:6286 6287 /* Line 1806 of yacc.c */ 6288 #line 1 099"parser.yy"6400 case 260: 6401 6402 /* Line 1806 of yacc.c */ 6403 #line 1125 "parser.yy" 6289 6404 { 6290 6405 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6293 6408 break; 6294 6409 6295 case 26 0:6296 6297 /* Line 1806 of yacc.c */ 6298 #line 11 06"parser.yy"6410 case 261: 6411 6412 /* Line 1806 of yacc.c */ 6413 #line 1132 "parser.yy" 6299 6414 { 6300 6415 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6303 6418 break; 6304 6419 6305 case 26 1:6306 6307 /* Line 1806 of yacc.c */ 6308 #line 11 11"parser.yy"6420 case 262: 6421 6422 /* Line 1806 of yacc.c */ 6423 #line 1137 "parser.yy" 6309 6424 { 6310 6425 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6313 6428 break; 6314 6429 6315 case 26 2:6316 6317 /* Line 1806 of yacc.c */ 6318 #line 11 21"parser.yy"6430 case 263: 6431 6432 /* Line 1806 of yacc.c */ 6433 #line 1147 "parser.yy" 6319 6434 { 6320 6435 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6321 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)]. constant) );6436 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].decl) ); 6322 6437 } 6323 6438 break; 6324 6439 6325 case 26 3:6326 6327 /* Line 1806 of yacc.c */ 6328 #line 11 26"parser.yy"6440 case 264: 6441 6442 /* Line 1806 of yacc.c */ 6443 #line 1152 "parser.yy" 6329 6444 { 6330 6445 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6331 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)]. constant) );6446 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].decl) ); 6332 6447 } 6333 6448 break; 6334 6449 6335 case 26 4:6336 6337 /* Line 1806 of yacc.c */ 6338 #line 11 31"parser.yy"6450 case 265: 6451 6452 /* Line 1806 of yacc.c */ 6453 #line 1157 "parser.yy" 6339 6454 { 6340 6455 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6341 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) )->addAsmName( (yyvsp[(4) - (4)]. constant) );6456 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) )->addAsmName( (yyvsp[(4) - (4)].decl) ); 6342 6457 } 6343 6458 break; 6344 6459 6345 case 26 5:6346 6347 /* Line 1806 of yacc.c */ 6348 #line 11 39"parser.yy"6460 case 266: 6461 6462 /* Line 1806 of yacc.c */ 6463 #line 1165 "parser.yy" 6349 6464 { 6350 6465 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6353 6468 break; 6354 6469 6355 case 26 6:6356 6357 /* Line 1806 of yacc.c */ 6358 #line 11 44"parser.yy"6470 case 267: 6471 6472 /* Line 1806 of yacc.c */ 6473 #line 1170 "parser.yy" 6359 6474 { 6360 6475 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6363 6478 break; 6364 6479 6365 case 26 7:6366 6367 /* Line 1806 of yacc.c */ 6368 #line 11 49"parser.yy"6480 case 268: 6481 6482 /* Line 1806 of yacc.c */ 6483 #line 1175 "parser.yy" 6369 6484 { 6370 6485 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6373 6488 break; 6374 6489 6375 case 26 8:6376 6377 /* Line 1806 of yacc.c */ 6378 #line 11 54"parser.yy"6490 case 269: 6491 6492 /* Line 1806 of yacc.c */ 6493 #line 1180 "parser.yy" 6379 6494 { 6380 6495 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6383 6498 break; 6384 6499 6385 case 2 69:6386 6387 /* Line 1806 of yacc.c */ 6388 #line 11 59"parser.yy"6500 case 270: 6501 6502 /* Line 1806 of yacc.c */ 6503 #line 1185 "parser.yy" 6389 6504 { 6390 6505 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6393 6508 break; 6394 6509 6395 case 27 0:6396 6397 /* Line 1806 of yacc.c */ 6398 #line 1 190"parser.yy"6510 case 271: 6511 6512 /* Line 1806 of yacc.c */ 6513 #line 1216 "parser.yy" 6399 6514 { 6400 6515 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6402 6517 break; 6403 6518 6404 case 27 1:6405 6406 /* Line 1806 of yacc.c */ 6407 #line 1 194"parser.yy"6519 case 272: 6520 6521 /* Line 1806 of yacc.c */ 6522 #line 1220 "parser.yy" 6408 6523 { 6409 6524 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6411 6526 break; 6412 6527 6413 case 27 2:6414 6415 /* Line 1806 of yacc.c */ 6416 #line 12 01"parser.yy"6528 case 273: 6529 6530 /* Line 1806 of yacc.c */ 6531 #line 1227 "parser.yy" 6417 6532 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6418 6533 break; 6419 6534 6420 case 27 3:6421 6422 /* Line 1806 of yacc.c */ 6423 #line 12 05"parser.yy"6535 case 274: 6536 6537 /* Line 1806 of yacc.c */ 6538 #line 1231 "parser.yy" 6424 6539 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6425 6540 break; 6426 6541 6427 case 27 4:6428 6429 /* Line 1806 of yacc.c */ 6430 #line 12 10"parser.yy"6542 case 275: 6543 6544 /* Line 1806 of yacc.c */ 6545 #line 1236 "parser.yy" 6431 6546 { 6432 6547 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6435 6550 break; 6436 6551 6437 case 27 5:6438 6439 /* Line 1806 of yacc.c */ 6440 #line 12 15"parser.yy"6552 case 276: 6553 6554 /* Line 1806 of yacc.c */ 6555 #line 1241 "parser.yy" 6441 6556 { 6442 6557 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6445 6560 break; 6446 6561 6447 case 27 6:6448 6449 /* Line 1806 of yacc.c */ 6450 #line 12 20"parser.yy"6562 case 277: 6563 6564 /* Line 1806 of yacc.c */ 6565 #line 1246 "parser.yy" 6451 6566 { 6452 6567 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6455 6570 break; 6456 6571 6457 case 27 7:6458 6459 /* Line 1806 of yacc.c */ 6460 #line 12 31"parser.yy"6572 case 278: 6573 6574 /* Line 1806 of yacc.c */ 6575 #line 1257 "parser.yy" 6461 6576 { 6462 6577 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6465 6580 break; 6466 6581 6467 case 27 8:6468 6469 /* Line 1806 of yacc.c */ 6470 #line 12 36"parser.yy"6582 case 279: 6583 6584 /* Line 1806 of yacc.c */ 6585 #line 1262 "parser.yy" 6471 6586 { 6472 6587 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6475 6590 break; 6476 6591 6477 case 2 79:6478 6479 /* Line 1806 of yacc.c */ 6480 #line 12 41"parser.yy"6592 case 280: 6593 6594 /* Line 1806 of yacc.c */ 6595 #line 1267 "parser.yy" 6481 6596 { 6482 6597 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6485 6600 break; 6486 6601 6487 case 28 0:6488 6489 /* Line 1806 of yacc.c */ 6490 #line 12 46"parser.yy"6602 case 281: 6603 6604 /* Line 1806 of yacc.c */ 6605 #line 1272 "parser.yy" 6491 6606 { 6492 6607 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6495 6610 break; 6496 6611 6497 case 28 1:6498 6499 /* Line 1806 of yacc.c */ 6500 #line 12 51"parser.yy"6612 case 282: 6613 6614 /* Line 1806 of yacc.c */ 6615 #line 1277 "parser.yy" 6501 6616 { 6502 6617 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6505 6620 break; 6506 6621 6507 case 28 2:6508 6509 /* Line 1806 of yacc.c */ 6510 #line 12 60"parser.yy"6622 case 283: 6623 6624 /* Line 1806 of yacc.c */ 6625 #line 1286 "parser.yy" 6511 6626 { 6512 6627 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); 6513 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX6628 (yyval.decl) = DeclarationNode::newName( 0 ); // unimplemented 6514 6629 } 6515 6630 break; 6516 6631 6517 case 28 3:6518 6519 /* Line 1806 of yacc.c */ 6520 #line 12 65"parser.yy"6632 case 284: 6633 6634 /* Line 1806 of yacc.c */ 6635 #line 1291 "parser.yy" 6521 6636 { 6522 6637 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); 6523 (yyval.decl) = DeclarationNode::newName( 0 ); // XXX6638 (yyval.decl) = DeclarationNode::newName( 0 ); // unimplemented 6524 6639 } 6525 6640 break; 6526 6641 6527 case 288: 6528 6529 /* Line 1806 of yacc.c */ 6530 #line 1282 "parser.yy" 6642 case 285: 6643 6644 /* Line 1806 of yacc.c */ 6645 #line 1321 "parser.yy" 6646 { 6647 (yyval.decl) = distAttr( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].decl) ); 6648 } 6649 break; 6650 6651 case 289: 6652 6653 /* Line 1806 of yacc.c */ 6654 #line 1333 "parser.yy" 6531 6655 { 6532 6656 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6533 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addAsmName( (yyvsp[(3) - (4)].constant) )->addInitializer( (yyvsp[(4) - (4)].in) );6657 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addAsmName( (yyvsp[(2) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].in) ); 6534 6658 } 6535 6659 break; 6536 6660 6537 case 2 89:6538 6539 /* Line 1806 of yacc.c */ 6540 #line 1 287"parser.yy"6661 case 290: 6662 6663 /* Line 1806 of yacc.c */ 6664 #line 1338 "parser.yy" 6541 6665 { 6542 6666 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6543 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[( 1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addAsmName( (yyvsp[(5) - (6)].constant) )->addInitializer( (yyvsp[(6) - (6)].in)) ) );6667 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(4) - (6)].decl)->addQualifiers( (yyvsp[(3) - (6)].decl) )->addAsmName( (yyvsp[(5) - (6)].decl) )->addInitializer( (yyvsp[(6) - (6)].in) ) ); 6544 6668 } 6545 6669 break; 6546 6670 6547 case 29 8:6548 6549 /* Line 1806 of yacc.c */ 6550 #line 13 09"parser.yy"6671 case 299: 6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1360 "parser.yy" 6551 6675 { (yyval.decl) = nullptr; } 6552 6676 break; 6553 6677 6554 case 30 1:6555 6556 /* Line 1806 of yacc.c */ 6557 #line 13 21"parser.yy"6678 case 302: 6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1372 "parser.yy" 6558 6682 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6559 6683 break; 6560 6684 6561 case 30 4:6562 6563 /* Line 1806 of yacc.c */ 6564 #line 13 31"parser.yy"6685 case 305: 6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1382 "parser.yy" 6565 6689 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6566 6690 break; 6567 6691 6568 case 30 5:6569 6570 /* Line 1806 of yacc.c */ 6571 #line 13 33"parser.yy"6692 case 306: 6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1384 "parser.yy" 6572 6696 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6573 6697 break; 6574 6698 6575 case 30 6:6576 6577 /* Line 1806 of yacc.c */ 6578 #line 13 35"parser.yy"6699 case 307: 6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1386 "parser.yy" 6579 6703 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6580 6704 break; 6581 6705 6582 case 30 7:6583 6584 /* Line 1806 of yacc.c */ 6585 #line 13 37"parser.yy"6706 case 308: 6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1388 "parser.yy" 6586 6710 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6587 6711 break; 6588 6712 6589 case 30 8:6590 6591 /* Line 1806 of yacc.c */ 6592 #line 13 39"parser.yy"6713 case 309: 6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1390 "parser.yy" 6593 6717 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6594 6718 break; 6595 6719 6596 case 3 09:6597 6598 /* Line 1806 of yacc.c */ 6599 #line 13 41"parser.yy"6720 case 310: 6721 6722 /* Line 1806 of yacc.c */ 6723 #line 1392 "parser.yy" 6600 6724 { 6601 6725 typedefTable.enterScope(); … … 6603 6727 break; 6604 6728 6605 case 31 0:6606 6607 /* Line 1806 of yacc.c */ 6608 #line 13 45"parser.yy"6729 case 311: 6730 6731 /* Line 1806 of yacc.c */ 6732 #line 1396 "parser.yy" 6609 6733 { 6610 6734 typedefTable.leaveScope(); … … 6613 6737 break; 6614 6738 6615 case 31 2:6616 6617 /* Line 1806 of yacc.c */ 6618 #line 1 354"parser.yy"6739 case 313: 6740 6741 /* Line 1806 of yacc.c */ 6742 #line 1405 "parser.yy" 6619 6743 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6620 6744 break; 6621 6745 6622 case 31 3:6623 6624 /* Line 1806 of yacc.c */ 6625 #line 1 356"parser.yy"6746 case 314: 6747 6748 /* Line 1806 of yacc.c */ 6749 #line 1407 "parser.yy" 6626 6750 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6627 6751 break; 6628 6752 6629 case 31 5:6630 6631 /* Line 1806 of yacc.c */ 6632 #line 1 367"parser.yy"6753 case 316: 6754 6755 /* Line 1806 of yacc.c */ 6756 #line 1418 "parser.yy" 6633 6757 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6634 6758 break; 6635 6759 6636 case 31 6:6637 6638 /* Line 1806 of yacc.c */ 6639 #line 1 372"parser.yy"6760 case 317: 6761 6762 /* Line 1806 of yacc.c */ 6763 #line 1423 "parser.yy" 6640 6764 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6641 6765 break; 6642 6766 6643 case 31 7:6644 6645 /* Line 1806 of yacc.c */ 6646 #line 1 374"parser.yy"6767 case 318: 6768 6769 /* Line 1806 of yacc.c */ 6770 #line 1425 "parser.yy" 6647 6771 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6648 6772 break; 6649 6773 6650 case 31 8:6651 6652 /* Line 1806 of yacc.c */ 6653 #line 1 376"parser.yy"6774 case 319: 6775 6776 /* Line 1806 of yacc.c */ 6777 #line 1427 "parser.yy" 6654 6778 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6655 6779 break; 6656 6780 6657 case 3 19:6658 6659 /* Line 1806 of yacc.c */ 6660 #line 1 378"parser.yy"6781 case 320: 6782 6783 /* Line 1806 of yacc.c */ 6784 #line 1429 "parser.yy" 6661 6785 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6662 6786 break; 6663 6787 6664 case 32 0:6665 6666 /* Line 1806 of yacc.c */ 6667 #line 1 381"parser.yy"6788 case 321: 6789 6790 /* Line 1806 of yacc.c */ 6791 #line 1432 "parser.yy" 6668 6792 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6669 6793 break; 6670 6794 6671 case 32 1:6672 6673 /* Line 1806 of yacc.c */ 6674 #line 1 383"parser.yy"6795 case 322: 6796 6797 /* Line 1806 of yacc.c */ 6798 #line 1434 "parser.yy" 6675 6799 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6676 6800 break; 6677 6801 6678 case 32 2:6679 6680 /* Line 1806 of yacc.c */ 6681 #line 1 386"parser.yy"6802 case 323: 6803 6804 /* Line 1806 of yacc.c */ 6805 #line 1437 "parser.yy" 6682 6806 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6683 6807 break; 6684 6808 6685 case 32 3:6686 6687 /* Line 1806 of yacc.c */ 6688 #line 1 388"parser.yy"6809 case 324: 6810 6811 /* Line 1806 of yacc.c */ 6812 #line 1439 "parser.yy" 6689 6813 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6690 6814 break; 6691 6815 6692 case 32 4:6693 6694 /* Line 1806 of yacc.c */ 6695 #line 1 393"parser.yy"6816 case 325: 6817 6818 /* Line 1806 of yacc.c */ 6819 #line 1444 "parser.yy" 6696 6820 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6697 6821 break; 6698 6822 6699 case 32 5:6700 6701 /* Line 1806 of yacc.c */ 6702 #line 1 395"parser.yy"6823 case 326: 6824 6825 /* Line 1806 of yacc.c */ 6826 #line 1446 "parser.yy" 6703 6827 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6704 6828 break; 6705 6829 6706 case 32 6:6707 6708 /* Line 1806 of yacc.c */ 6709 #line 1 397"parser.yy"6830 case 327: 6831 6832 /* Line 1806 of yacc.c */ 6833 #line 1448 "parser.yy" 6710 6834 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6711 6835 break; 6712 6836 6713 case 32 7:6714 6715 /* Line 1806 of yacc.c */ 6716 #line 1 399"parser.yy"6837 case 328: 6838 6839 /* Line 1806 of yacc.c */ 6840 #line 1450 "parser.yy" 6717 6841 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6718 6842 break; 6719 6843 6720 case 32 8:6721 6722 /* Line 1806 of yacc.c */ 6723 #line 14 01"parser.yy"6844 case 329: 6845 6846 /* Line 1806 of yacc.c */ 6847 #line 1452 "parser.yy" 6724 6848 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6725 6849 break; 6726 6850 6727 case 3 29:6728 6729 /* Line 1806 of yacc.c */ 6730 #line 14 03"parser.yy"6851 case 330: 6852 6853 /* Line 1806 of yacc.c */ 6854 #line 1454 "parser.yy" 6731 6855 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6732 6856 break; 6733 6857 6734 case 33 0:6735 6736 /* Line 1806 of yacc.c */ 6737 #line 14 05"parser.yy"6858 case 331: 6859 6860 /* Line 1806 of yacc.c */ 6861 #line 1456 "parser.yy" 6738 6862 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6739 6863 break; 6740 6864 6741 case 33 1:6742 6743 /* Line 1806 of yacc.c */ 6744 #line 14 07"parser.yy"6865 case 332: 6866 6867 /* Line 1806 of yacc.c */ 6868 #line 1458 "parser.yy" 6745 6869 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6746 6870 break; 6747 6871 6748 case 33 2:6749 6750 /* Line 1806 of yacc.c */ 6751 #line 14 09"parser.yy"6872 case 333: 6873 6874 /* Line 1806 of yacc.c */ 6875 #line 1460 "parser.yy" 6752 6876 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6753 6877 break; 6754 6878 6755 case 33 3:6756 6757 /* Line 1806 of yacc.c */ 6758 #line 14 11"parser.yy"6879 case 334: 6880 6881 /* Line 1806 of yacc.c */ 6882 #line 1462 "parser.yy" 6759 6883 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6760 6884 break; 6761 6885 6762 case 33 4:6763 6764 /* Line 1806 of yacc.c */ 6765 #line 14 13"parser.yy"6886 case 335: 6887 6888 /* Line 1806 of yacc.c */ 6889 #line 1464 "parser.yy" 6766 6890 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6767 6891 break; 6768 6892 6769 case 33 5:6770 6771 /* Line 1806 of yacc.c */ 6772 #line 14 15"parser.yy"6893 case 336: 6894 6895 /* Line 1806 of yacc.c */ 6896 #line 1466 "parser.yy" 6773 6897 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6774 6898 break; 6775 6899 6776 case 33 6:6777 6778 /* Line 1806 of yacc.c */ 6779 #line 14 17"parser.yy"6900 case 337: 6901 6902 /* Line 1806 of yacc.c */ 6903 #line 1468 "parser.yy" 6780 6904 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6781 6905 break; 6782 6906 6783 case 33 7:6784 6785 /* Line 1806 of yacc.c */ 6786 #line 14 19"parser.yy"6907 case 338: 6908 6909 /* Line 1806 of yacc.c */ 6910 #line 1470 "parser.yy" 6787 6911 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 6788 6912 break; 6789 6913 6790 case 33 8:6791 6792 /* Line 1806 of yacc.c */ 6793 #line 14 21"parser.yy"6914 case 339: 6915 6916 /* Line 1806 of yacc.c */ 6917 #line 1472 "parser.yy" 6794 6918 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 6795 6919 break; 6796 6920 6797 case 34 0:6798 6799 /* Line 1806 of yacc.c */ 6800 #line 14 28"parser.yy"6921 case 341: 6922 6923 /* Line 1806 of yacc.c */ 6924 #line 1479 "parser.yy" 6801 6925 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6802 6926 break; 6803 6927 6804 case 34 1:6805 6806 /* Line 1806 of yacc.c */ 6807 #line 14 30"parser.yy"6928 case 342: 6929 6930 /* Line 1806 of yacc.c */ 6931 #line 1481 "parser.yy" 6808 6932 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6809 6933 break; 6810 6934 6811 case 34 2:6812 6813 /* Line 1806 of yacc.c */ 6814 #line 14 32"parser.yy"6935 case 343: 6936 6937 /* Line 1806 of yacc.c */ 6938 #line 1483 "parser.yy" 6815 6939 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6816 6940 break; 6817 6941 6818 case 34 3:6819 6820 /* Line 1806 of yacc.c */ 6821 #line 14 34"parser.yy"6942 case 344: 6943 6944 /* Line 1806 of yacc.c */ 6945 #line 1485 "parser.yy" 6822 6946 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6823 6947 break; 6824 6948 6825 case 34 5:6826 6827 /* Line 1806 of yacc.c */ 6828 #line 14 40"parser.yy"6949 case 346: 6950 6951 /* Line 1806 of yacc.c */ 6952 #line 1491 "parser.yy" 6829 6953 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6830 6954 break; 6831 6955 6832 case 34 7:6833 6834 /* Line 1806 of yacc.c */ 6835 #line 14 47"parser.yy"6956 case 348: 6957 6958 /* Line 1806 of yacc.c */ 6959 #line 1498 "parser.yy" 6836 6960 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6837 6961 break; 6838 6962 6839 case 34 8:6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1 449"parser.yy"6963 case 349: 6964 6965 /* Line 1806 of yacc.c */ 6966 #line 1500 "parser.yy" 6843 6967 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6844 6968 break; 6845 6969 6846 case 3 49:6847 6848 /* Line 1806 of yacc.c */ 6849 #line 1 451"parser.yy"6970 case 350: 6971 6972 /* Line 1806 of yacc.c */ 6973 #line 1502 "parser.yy" 6850 6974 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6851 6975 break; 6852 6976 6853 case 35 0:6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1 456"parser.yy"6977 case 351: 6978 6979 /* Line 1806 of yacc.c */ 6980 #line 1507 "parser.yy" 6857 6981 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6858 6982 break; 6859 6983 6860 case 35 1:6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1 458"parser.yy"6984 case 352: 6985 6986 /* Line 1806 of yacc.c */ 6987 #line 1509 "parser.yy" 6864 6988 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6865 6989 break; 6866 6990 6867 case 35 2:6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1 460"parser.yy"6991 case 353: 6992 6993 /* Line 1806 of yacc.c */ 6994 #line 1511 "parser.yy" 6871 6995 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6872 6996 break; 6873 6997 6874 case 35 3:6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1 462"parser.yy"6998 case 354: 6999 7000 /* Line 1806 of yacc.c */ 7001 #line 1513 "parser.yy" 6878 7002 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6879 7003 break; 6880 7004 6881 case 35 5:6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1 468"parser.yy"7005 case 356: 7006 7007 /* Line 1806 of yacc.c */ 7008 #line 1519 "parser.yy" 6885 7009 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6886 7010 break; 6887 7011 6888 case 35 6:6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1 470"parser.yy"7012 case 357: 7013 7014 /* Line 1806 of yacc.c */ 7015 #line 1521 "parser.yy" 6892 7016 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6893 7017 break; 6894 7018 6895 case 35 7:6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1 472"parser.yy"7019 case 358: 7020 7021 /* Line 1806 of yacc.c */ 7022 #line 1523 "parser.yy" 6899 7023 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6900 7024 break; 6901 7025 6902 case 3 59:6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1 478"parser.yy"7026 case 360: 7027 7028 /* Line 1806 of yacc.c */ 7029 #line 1529 "parser.yy" 6906 7030 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6907 7031 break; 6908 7032 6909 case 36 0:6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1 480"parser.yy"7033 case 361: 7034 7035 /* Line 1806 of yacc.c */ 7036 #line 1531 "parser.yy" 6913 7037 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6914 7038 break; 6915 7039 6916 case 36 2:6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1 486"parser.yy"7040 case 363: 7041 7042 /* Line 1806 of yacc.c */ 7043 #line 1537 "parser.yy" 6920 7044 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6921 7045 break; 6922 7046 6923 case 36 3:6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1 488"parser.yy"7047 case 364: 7048 7049 /* Line 1806 of yacc.c */ 7050 #line 1539 "parser.yy" 6927 7051 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6928 7052 break; 6929 7053 6930 case 36 4:6931 6932 /* Line 1806 of yacc.c */ 6933 #line 1 490"parser.yy"7054 case 365: 7055 7056 /* Line 1806 of yacc.c */ 7057 #line 1541 "parser.yy" 6934 7058 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6935 7059 break; 6936 7060 6937 case 36 5:6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1 495"parser.yy"7061 case 366: 7062 7063 /* Line 1806 of yacc.c */ 7064 #line 1546 "parser.yy" 6941 7065 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6942 7066 break; 6943 7067 6944 case 36 6:6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1 497"parser.yy"7068 case 367: 7069 7070 /* Line 1806 of yacc.c */ 7071 #line 1548 "parser.yy" 6948 7072 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6949 7073 break; 6950 7074 6951 case 36 7:6952 6953 /* Line 1806 of yacc.c */ 6954 #line 1 499"parser.yy"7075 case 368: 7076 7077 /* Line 1806 of yacc.c */ 7078 #line 1550 "parser.yy" 6955 7079 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6956 7080 break; 6957 7081 6958 case 370:6959 6960 /* Line 1806 of yacc.c */6961 #line 1509 "parser.yy"6962 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }6963 break;6964 6965 7082 case 371: 6966 7083 6967 7084 /* Line 1806 of yacc.c */ 6968 #line 1511 "parser.yy" 6969 { 6970 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 6971 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), nullptr, nullptr, false ); 7085 #line 1560 "parser.yy" 7086 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), nullptr, nullptr, (yyvsp[(4) - (5)].decl), true )->addQualifiers( (yyvsp[(2) - (5)].decl) ); } 7087 break; 7088 7089 case 372: 7090 7091 /* Line 1806 of yacc.c */ 7092 #line 1562 "parser.yy" 7093 { 7094 typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); 7095 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (3)].aggKey), (yyvsp[(3) - (3)].tok), nullptr, nullptr, false )->addQualifiers( (yyvsp[(2) - (3)].decl) ); 6972 7096 } 6973 7097 break; 6974 7098 6975 case 372:6976 6977 /* Line 1806 of yacc.c */6978 #line 1516 "parser.yy"6979 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }6980 break;6981 6982 7099 case 373: 6983 7100 6984 7101 /* Line 1806 of yacc.c */ 6985 #line 15 18"parser.yy"6986 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true); }7102 #line 1567 "parser.yy" 7103 { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); } 6987 7104 break; 6988 7105 … … 6990 7107 6991 7108 /* Line 1806 of yacc.c */ 6992 #line 15 20"parser.yy"6993 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false); }7109 #line 1569 "parser.yy" 7110 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), (yyvsp[(3) - (7)].tok), nullptr, (yyvsp[(6) - (7)].decl), true )->addQualifiers( (yyvsp[(2) - (7)].decl) ); } 6994 7111 break; 6995 7112 … … 6997 7114 6998 7115 /* Line 1806 of yacc.c */ 6999 #line 15 22"parser.yy"7000 { (yyval.decl) = (yyvsp[(2) - (2)].decl); }7116 #line 1571 "parser.yy" 7117 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (8)].aggKey), nullptr, (yyvsp[(4) - (8)].en), (yyvsp[(7) - (8)].decl), false )->addQualifiers( (yyvsp[(2) - (8)].decl) ); } 7001 7118 break; 7002 7119 … … 7004 7121 7005 7122 /* Line 1806 of yacc.c */ 7006 #line 1527 "parser.yy" 7123 #line 1573 "parser.yy" 7124 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) ); } 7125 break; 7126 7127 case 377: 7128 7129 /* Line 1806 of yacc.c */ 7130 #line 1578 "parser.yy" 7007 7131 { (yyval.aggKey) = DeclarationNode::Struct; } 7008 7132 break; 7009 7133 7010 case 37 7:7011 7012 /* Line 1806 of yacc.c */ 7013 #line 15 29"parser.yy"7134 case 378: 7135 7136 /* Line 1806 of yacc.c */ 7137 #line 1580 "parser.yy" 7014 7138 { (yyval.aggKey) = DeclarationNode::Union; } 7015 7139 break; 7016 7140 7017 case 37 8:7018 7019 /* Line 1806 of yacc.c */ 7020 #line 15 34"parser.yy"7141 case 379: 7142 7143 /* Line 1806 of yacc.c */ 7144 #line 1585 "parser.yy" 7021 7145 { (yyval.decl) = nullptr; } 7022 7146 break; 7023 7147 7024 case 3 79:7025 7026 /* Line 1806 of yacc.c */ 7027 #line 15 36"parser.yy"7148 case 380: 7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1587 "parser.yy" 7028 7152 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7029 7153 break; 7030 7154 7031 case 381: 7032 7033 /* Line 1806 of yacc.c */ 7034 #line 1542 "parser.yy" 7035 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 7036 break; 7037 7038 case 383: 7039 7040 /* Line 1806 of yacc.c */ 7041 #line 1545 "parser.yy" 7042 { // mark all fields in list 7043 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7044 iter->set_extension( true ); 7155 case 382: 7156 7157 /* Line 1806 of yacc.c */ 7158 #line 1593 "parser.yy" 7159 { 7160 distExt( (yyvsp[(2) - (3)].decl) ); // mark all fields in list 7045 7161 (yyval.decl) = (yyvsp[(2) - (3)].decl); 7046 7162 } 7047 7163 break; 7048 7164 7049 case 385: 7050 7051 /* Line 1806 of yacc.c */ 7052 #line 1555 "parser.yy" 7165 case 383: 7166 7167 /* Line 1806 of yacc.c */ 7168 #line 1598 "parser.yy" 7169 { 7170 (yyval.decl) = distAttr( (yyvsp[(1) - (3)].decl), (yyvsp[(2) - (3)].decl) ); } 7171 break; 7172 7173 case 384: 7174 7175 /* Line 1806 of yacc.c */ 7176 #line 1601 "parser.yy" 7177 { 7178 distExt( (yyvsp[(3) - (4)].decl) ); // mark all fields in list 7179 (yyval.decl) = distAttr( (yyvsp[(2) - (4)].decl), (yyvsp[(3) - (4)].decl) ); 7180 } 7181 break; 7182 7183 case 386: 7184 7185 /* Line 1806 of yacc.c */ 7186 #line 1610 "parser.yy" 7053 7187 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7054 7188 break; 7055 7189 7056 case 38 6:7057 7058 /* Line 1806 of yacc.c */ 7059 #line 1 557"parser.yy"7190 case 387: 7191 7192 /* Line 1806 of yacc.c */ 7193 #line 1612 "parser.yy" 7060 7194 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7061 7195 break; 7062 7196 7063 case 38 7:7064 7065 /* Line 1806 of yacc.c */ 7066 #line 1 559"parser.yy"7197 case 388: 7198 7199 /* Line 1806 of yacc.c */ 7200 #line 1614 "parser.yy" 7067 7201 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7068 7202 break; 7069 7203 7070 case 388:7071 7072 /* Line 1806 of yacc.c */7073 #line 1564 "parser.yy"7074 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }7075 break;7076 7077 case 389:7078 7079 /* Line 1806 of yacc.c */7080 #line 1566 "parser.yy"7081 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }7082 break;7083 7084 7204 case 390: 7085 7205 7086 7206 /* Line 1806 of yacc.c */ 7087 #line 1571 "parser.yy" 7207 #line 1620 "parser.yy" 7208 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(4) - (4)].decl)->addQualifiers( (yyvsp[(3) - (4)].decl) ) ); } 7209 break; 7210 7211 case 391: 7212 7213 /* Line 1806 of yacc.c */ 7214 #line 1625 "parser.yy" 7088 7215 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7089 7216 break; 7090 7217 7091 case 39 1:7092 7093 /* Line 1806 of yacc.c */ 7094 #line 1 573"parser.yy"7218 case 392: 7219 7220 /* Line 1806 of yacc.c */ 7221 #line 1627 "parser.yy" 7095 7222 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7096 7223 break; 7097 7224 7098 case 39 2:7099 7100 /* Line 1806 of yacc.c */ 7101 #line 1 576"parser.yy"7225 case 393: 7226 7227 /* Line 1806 of yacc.c */ 7228 #line 1630 "parser.yy" 7102 7229 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7103 7230 break; 7104 7231 7105 case 39 3:7106 7107 /* Line 1806 of yacc.c */ 7108 #line 1 579"parser.yy"7232 case 394: 7233 7234 /* Line 1806 of yacc.c */ 7235 #line 1633 "parser.yy" 7109 7236 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7110 7237 break; 7111 7238 7112 case 39 5:7113 7114 /* Line 1806 of yacc.c */ 7115 #line 1 585"parser.yy"7239 case 396: 7240 7241 /* Line 1806 of yacc.c */ 7242 #line 1639 "parser.yy" 7116 7243 { (yyval.en) = nullptr; } 7117 7244 break; 7118 7245 7119 case 39 6:7120 7121 /* Line 1806 of yacc.c */ 7122 #line 1 587"parser.yy"7246 case 397: 7247 7248 /* Line 1806 of yacc.c */ 7249 #line 1641 "parser.yy" 7123 7250 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7124 7251 break; 7125 7252 7126 case 39 7:7127 7128 /* Line 1806 of yacc.c */ 7129 #line 1 592"parser.yy"7253 case 398: 7254 7255 /* Line 1806 of yacc.c */ 7256 #line 1646 "parser.yy" 7130 7257 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7131 7258 break; … … 7134 7261 7135 7262 /* Line 1806 of yacc.c */ 7136 #line 16 01 "parser.yy"7137 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[( 3) - (5)].decl) ); }7263 #line 1651 "parser.yy" 7264 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(4) - (6)].decl) )->addQualifiers( (yyvsp[(2) - (6)].decl) ); } 7138 7265 break; 7139 7266 … … 7141 7268 7142 7269 /* Line 1806 of yacc.c */ 7143 #line 16 03 "parser.yy"7144 { 7145 typedefTable.makeTypedef( *(yyvsp[( 2) - (2)].tok) );7146 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[( 2) - (2)].tok), 0);7270 #line 1653 "parser.yy" 7271 { 7272 typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); 7273 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(3) - (3)].tok), 0 )->addQualifiers( (yyvsp[(2) - (3)].decl) ); 7147 7274 } 7148 7275 break; … … 7151 7278 7152 7279 /* Line 1806 of yacc.c */ 7153 #line 16 08 "parser.yy"7154 { typedefTable.makeTypedef( *(yyvsp[( 2) - (2)].tok) ); }7280 #line 1658 "parser.yy" 7281 { typedefTable.makeTypedef( *(yyvsp[(3) - (3)].tok) ); } 7155 7282 break; 7156 7283 … … 7158 7285 7159 7286 /* Line 1806 of yacc.c */ 7160 #line 16 10 "parser.yy"7161 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[( 2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }7287 #line 1660 "parser.yy" 7288 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(3) - (8)].tok), (yyvsp[(6) - (8)].decl) )->addQualifiers( (yyvsp[(2) - (8)].decl) ); } 7162 7289 break; 7163 7290 … … 7165 7292 7166 7293 /* Line 1806 of yacc.c */ 7167 #line 16 15 "parser.yy"7294 #line 1665 "parser.yy" 7168 7295 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7169 7296 break; … … 7172 7299 7173 7300 /* Line 1806 of yacc.c */ 7174 #line 16 17 "parser.yy"7301 #line 1667 "parser.yy" 7175 7302 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7176 7303 break; … … 7179 7306 7180 7307 /* Line 1806 of yacc.c */ 7181 #line 16 22 "parser.yy"7308 #line 1672 "parser.yy" 7182 7309 { (yyval.en) = nullptr; } 7183 7310 break; … … 7186 7313 7187 7314 /* Line 1806 of yacc.c */ 7188 #line 16 24 "parser.yy"7315 #line 1674 "parser.yy" 7189 7316 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7190 7317 break; … … 7193 7320 7194 7321 /* Line 1806 of yacc.c */ 7195 #line 16 31 "parser.yy"7322 #line 1681 "parser.yy" 7196 7323 { (yyval.decl) = nullptr; } 7197 7324 break; … … 7200 7327 7201 7328 /* Line 1806 of yacc.c */ 7202 #line 16 39 "parser.yy"7329 #line 1689 "parser.yy" 7203 7330 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7204 7331 break; … … 7207 7334 7208 7335 /* Line 1806 of yacc.c */ 7209 #line 16 41 "parser.yy"7336 #line 1691 "parser.yy" 7210 7337 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7211 7338 break; … … 7214 7341 7215 7342 /* Line 1806 of yacc.c */ 7216 #line 16 43 "parser.yy"7343 #line 1693 "parser.yy" 7217 7344 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7218 7345 break; … … 7221 7348 7222 7349 /* Line 1806 of yacc.c */ 7223 #line 1 651 "parser.yy"7350 #line 1701 "parser.yy" 7224 7351 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7225 7352 break; … … 7228 7355 7229 7356 /* Line 1806 of yacc.c */ 7230 #line 1 653 "parser.yy"7357 #line 1703 "parser.yy" 7231 7358 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7232 7359 break; … … 7235 7362 7236 7363 /* Line 1806 of yacc.c */ 7237 #line 1 655 "parser.yy"7364 #line 1705 "parser.yy" 7238 7365 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7239 7366 break; … … 7242 7369 7243 7370 /* Line 1806 of yacc.c */ 7244 #line 1 661 "parser.yy"7371 #line 1711 "parser.yy" 7245 7372 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7246 7373 break; … … 7249 7376 7250 7377 /* Line 1806 of yacc.c */ 7251 #line 1 666 "parser.yy"7378 #line 1716 "parser.yy" 7252 7379 { (yyval.decl) = nullptr; } 7253 7380 break; … … 7256 7383 7257 7384 /* Line 1806 of yacc.c */ 7258 #line 1 673 "parser.yy"7385 #line 1723 "parser.yy" 7259 7386 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7260 7387 break; … … 7263 7390 7264 7391 /* Line 1806 of yacc.c */ 7265 #line 1 680 "parser.yy"7392 #line 1730 "parser.yy" 7266 7393 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7267 7394 break; … … 7270 7397 7271 7398 /* Line 1806 of yacc.c */ 7272 #line 1 682 "parser.yy"7399 #line 1732 "parser.yy" 7273 7400 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7274 7401 break; … … 7277 7404 7278 7405 /* Line 1806 of yacc.c */ 7279 #line 1 691 "parser.yy"7406 #line 1741 "parser.yy" 7280 7407 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7281 7408 break; … … 7284 7411 7285 7412 /* Line 1806 of yacc.c */ 7286 #line 1 694 "parser.yy"7413 #line 1744 "parser.yy" 7287 7414 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7288 7415 break; … … 7291 7418 7292 7419 /* Line 1806 of yacc.c */ 7293 #line 1 696 "parser.yy"7420 #line 1746 "parser.yy" 7294 7421 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7295 7422 break; … … 7298 7425 7299 7426 /* Line 1806 of yacc.c */ 7300 #line 17 06 "parser.yy"7427 #line 1756 "parser.yy" 7301 7428 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7302 7429 break; … … 7305 7432 7306 7433 /* Line 1806 of yacc.c */ 7307 #line 17 12 "parser.yy"7434 #line 1762 "parser.yy" 7308 7435 { 7309 7436 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7315 7442 7316 7443 /* Line 1806 of yacc.c */ 7317 #line 17 17 "parser.yy"7444 #line 1767 "parser.yy" 7318 7445 { 7319 7446 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7325 7452 7326 7453 /* Line 1806 of yacc.c */ 7327 #line 17 26 "parser.yy"7454 #line 1776 "parser.yy" 7328 7455 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7329 7456 break; … … 7332 7459 7333 7460 /* Line 1806 of yacc.c */ 7334 #line 17 35 "parser.yy"7461 #line 1785 "parser.yy" 7335 7462 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7336 7463 break; … … 7339 7466 7340 7467 /* Line 1806 of yacc.c */ 7341 #line 17 37 "parser.yy"7468 #line 1787 "parser.yy" 7342 7469 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7343 7470 break; … … 7346 7473 7347 7474 /* Line 1806 of yacc.c */ 7348 #line 1 762 "parser.yy"7475 #line 1812 "parser.yy" 7349 7476 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7350 7477 break; 7351 7478 7479 case 458: 7480 7481 /* Line 1806 of yacc.c */ 7482 #line 1822 "parser.yy" 7483 { (yyval.in) = nullptr; } 7484 break; 7485 7352 7486 case 459: 7353 7487 7354 7488 /* Line 1806 of yacc.c */ 7355 #line 1 770"parser.yy"7356 { (yyval. decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl)); }7489 #line 1824 "parser.yy" 7490 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7357 7491 break; 7358 7492 … … 7360 7494 7361 7495 /* Line 1806 of yacc.c */ 7362 #line 1775 "parser.yy" 7496 #line 1826 "parser.yy" 7497 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7498 break; 7499 7500 case 461: 7501 7502 /* Line 1806 of yacc.c */ 7503 #line 1830 "parser.yy" 7504 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7505 break; 7506 7507 case 462: 7508 7509 /* Line 1806 of yacc.c */ 7510 #line 1831 "parser.yy" 7511 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7512 break; 7513 7514 case 463: 7515 7516 /* Line 1806 of yacc.c */ 7517 #line 1836 "parser.yy" 7363 7518 { (yyval.in) = nullptr; } 7364 7519 break; 7365 7520 7366 case 461:7367 7368 /* Line 1806 of yacc.c */7369 #line 1777 "parser.yy"7370 { (yyval.in) = (yyvsp[(2) - (2)].in); }7371 break;7372 7373 case 462:7374 7375 /* Line 1806 of yacc.c */7376 #line 1779 "parser.yy"7377 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }7378 break;7379 7380 case 463:7381 7382 /* Line 1806 of yacc.c */7383 #line 1783 "parser.yy"7384 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }7385 break;7386 7387 case 464:7388 7389 /* Line 1806 of yacc.c */7390 #line 1784 "parser.yy"7391 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }7392 break;7393 7394 7521 case 465: 7395 7522 7396 7523 /* Line 1806 of yacc.c */ 7397 #line 1789 "parser.yy" 7398 { (yyval.in) = nullptr; } 7524 #line 1838 "parser.yy" 7525 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7526 break; 7527 7528 case 466: 7529 7530 /* Line 1806 of yacc.c */ 7531 #line 1839 "parser.yy" 7532 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7399 7533 break; 7400 7534 … … 7402 7536 7403 7537 /* Line 1806 of yacc.c */ 7404 #line 1791 "parser.yy" 7405 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7406 break; 7407 7408 case 468: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1792 "parser.yy" 7412 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7538 #line 1841 "parser.yy" 7539 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7413 7540 break; 7414 7541 … … 7416 7543 7417 7544 /* Line 1806 of yacc.c */ 7418 #line 1 794"parser.yy"7419 { (yyval. in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en)) ) ); }7545 #line 1857 "parser.yy" 7546 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7420 7547 break; 7421 7548 … … 7423 7550 7424 7551 /* Line 1806 of yacc.c */ 7425 #line 1810 "parser.yy" 7426 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7552 #line 1863 "parser.yy" 7553 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7554 break; 7555 7556 case 472: 7557 7558 /* Line 1806 of yacc.c */ 7559 #line 1869 "parser.yy" 7560 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7427 7561 break; 7428 7562 … … 7430 7564 7431 7565 /* Line 1806 of yacc.c */ 7432 #line 18 16"parser.yy"7433 { (yyval.en) = ( ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) )); }7566 #line 1872 "parser.yy" 7567 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7434 7568 break; 7435 7569 … … 7437 7571 7438 7572 /* Line 1806 of yacc.c */ 7439 #line 18 22"parser.yy"7440 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) )); }7573 #line 1874 "parser.yy" 7574 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7441 7575 break; 7442 7576 … … 7444 7578 7445 7579 /* Line 1806 of yacc.c */ 7446 #line 18 25"parser.yy"7447 { (yyval.en) = (yyvsp[(3) - (5)].en); }7580 #line 1876 "parser.yy" 7581 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7448 7582 break; 7449 7583 … … 7451 7585 7452 7586 /* Line 1806 of yacc.c */ 7453 #line 1827 "parser.yy" 7454 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7455 break; 7456 7457 case 477: 7458 7459 /* Line 1806 of yacc.c */ 7460 #line 1829 "parser.yy" 7461 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7587 #line 1878 "parser.yy" 7588 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7462 7589 break; 7463 7590 … … 7465 7592 7466 7593 /* Line 1806 of yacc.c */ 7467 #line 1831 "parser.yy" 7468 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7594 #line 1902 "parser.yy" 7595 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7596 break; 7597 7598 case 479: 7599 7600 /* Line 1806 of yacc.c */ 7601 #line 1904 "parser.yy" 7602 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7469 7603 break; 7470 7604 … … 7472 7606 7473 7607 /* Line 1806 of yacc.c */ 7474 #line 1855 "parser.yy" 7608 #line 1906 "parser.yy" 7609 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7610 break; 7611 7612 case 482: 7613 7614 /* Line 1806 of yacc.c */ 7615 #line 1912 "parser.yy" 7475 7616 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7476 7617 break; 7477 7618 7478 case 48 1:7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1 857"parser.yy"7619 case 483: 7620 7621 /* Line 1806 of yacc.c */ 7622 #line 1914 "parser.yy" 7482 7623 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7483 7624 break; 7484 7625 7485 case 482:7486 7487 /* Line 1806 of yacc.c */7488 #line 1859 "parser.yy"7489 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7490 break;7491 7492 7626 case 484: 7493 7627 7494 7628 /* Line 1806 of yacc.c */ 7495 #line 1865 "parser.yy" 7496 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7497 break; 7498 7499 case 485: 7500 7501 /* Line 1806 of yacc.c */ 7502 #line 1867 "parser.yy" 7503 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7629 #line 1919 "parser.yy" 7630 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7504 7631 break; 7505 7632 … … 7507 7634 7508 7635 /* Line 1806 of yacc.c */ 7509 #line 1872 "parser.yy" 7510 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7636 #line 1925 "parser.yy" 7637 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7638 break; 7639 7640 case 487: 7641 7642 /* Line 1806 of yacc.c */ 7643 #line 1930 "parser.yy" 7644 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7511 7645 break; 7512 7646 … … 7514 7648 7515 7649 /* Line 1806 of yacc.c */ 7516 #line 1878 "parser.yy" 7517 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7518 break; 7519 7520 case 489: 7521 7522 /* Line 1806 of yacc.c */ 7523 #line 1883 "parser.yy" 7524 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7650 #line 1932 "parser.yy" 7651 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7525 7652 break; 7526 7653 … … 7528 7655 7529 7656 /* Line 1806 of yacc.c */ 7530 #line 1885 "parser.yy" 7531 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7657 #line 1938 "parser.yy" 7658 { (yyval.tclass) = DeclarationNode::Otype; } 7659 break; 7660 7661 case 491: 7662 7663 /* Line 1806 of yacc.c */ 7664 #line 1940 "parser.yy" 7665 { (yyval.tclass) = DeclarationNode::Dtype; } 7532 7666 break; 7533 7667 … … 7535 7669 7536 7670 /* Line 1806 of yacc.c */ 7537 #line 1 891"parser.yy"7538 { (yyval.tclass) = DeclarationNode:: Otype; }7671 #line 1942 "parser.yy" 7672 { (yyval.tclass) = DeclarationNode::Ftype; } 7539 7673 break; 7540 7674 … … 7542 7676 7543 7677 /* Line 1806 of yacc.c */ 7544 #line 1 893"parser.yy"7545 { (yyval.tclass) = DeclarationNode:: Dtype; }7678 #line 1944 "parser.yy" 7679 { (yyval.tclass) = DeclarationNode::Ttype; } 7546 7680 break; 7547 7681 … … 7549 7683 7550 7684 /* Line 1806 of yacc.c */ 7551 #line 1 895"parser.yy"7552 { (yyval. tclass) = DeclarationNode::Ftype; }7685 #line 1949 "parser.yy" 7686 { (yyval.decl) = nullptr; } 7553 7687 break; 7554 7688 … … 7556 7690 7557 7691 /* Line 1806 of yacc.c */ 7558 #line 1 897"parser.yy"7559 { (yyval. tclass) = DeclarationNode::Ttype; }7692 #line 1951 "parser.yy" 7693 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7560 7694 break; 7561 7695 … … 7563 7697 7564 7698 /* Line 1806 of yacc.c */ 7565 #line 1902 "parser.yy" 7566 { (yyval.decl) = nullptr; } 7567 break; 7568 7569 case 497: 7570 7571 /* Line 1806 of yacc.c */ 7572 #line 1904 "parser.yy" 7573 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7574 break; 7575 7576 case 498: 7577 7578 /* Line 1806 of yacc.c */ 7579 #line 1909 "parser.yy" 7699 #line 1956 "parser.yy" 7580 7700 { 7581 7701 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7584 7704 break; 7585 7705 7706 case 497: 7707 7708 /* Line 1806 of yacc.c */ 7709 #line 1961 "parser.yy" 7710 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7711 break; 7712 7713 case 498: 7714 7715 /* Line 1806 of yacc.c */ 7716 #line 1963 "parser.yy" 7717 { (yyval.decl) = nullptr; } 7718 break; 7719 7586 7720 case 499: 7587 7721 7588 7722 /* Line 1806 of yacc.c */ 7589 #line 1914 "parser.yy" 7590 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7591 break; 7592 7593 case 500: 7594 7595 /* Line 1806 of yacc.c */ 7596 #line 1916 "parser.yy" 7597 { (yyval.decl) = nullptr; } 7723 #line 1968 "parser.yy" 7724 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7598 7725 break; 7599 7726 … … 7601 7728 7602 7729 /* Line 1806 of yacc.c */ 7603 #line 1921 "parser.yy" 7604 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7730 #line 1971 "parser.yy" 7731 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7732 break; 7733 7734 case 502: 7735 7736 /* Line 1806 of yacc.c */ 7737 #line 1973 "parser.yy" 7738 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7605 7739 break; 7606 7740 … … 7608 7742 7609 7743 /* Line 1806 of yacc.c */ 7610 #line 19 24"parser.yy"7611 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) )); }7744 #line 1978 "parser.yy" 7745 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7612 7746 break; 7613 7747 … … 7615 7749 7616 7750 /* Line 1806 of yacc.c */ 7617 #line 19 26"parser.yy"7618 { (yyval. en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }7751 #line 1980 "parser.yy" 7752 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7619 7753 break; 7620 7754 … … 7622 7756 7623 7757 /* Line 1806 of yacc.c */ 7624 #line 19 31"parser.yy"7625 { (yyval.decl) = (yyvsp[( 2) - (2)].decl); }7758 #line 1982 "parser.yy" 7759 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7626 7760 break; 7627 7761 … … 7629 7763 7630 7764 /* Line 1806 of yacc.c */ 7631 #line 19 33"parser.yy"7632 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }7765 #line 1987 "parser.yy" 7766 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7633 7767 break; 7634 7768 … … 7636 7770 7637 7771 /* Line 1806 of yacc.c */ 7638 #line 19 35"parser.yy"7639 { (yyval.decl) = (yyvsp[(1) - ( 3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl)) ); }7772 #line 1989 "parser.yy" 7773 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7640 7774 break; 7641 7775 … … 7643 7777 7644 7778 /* Line 1806 of yacc.c */ 7645 #line 1940 "parser.yy" 7646 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7647 break; 7648 7649 case 509: 7650 7651 /* Line 1806 of yacc.c */ 7652 #line 1942 "parser.yy" 7653 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7654 break; 7655 7656 case 510: 7657 7658 /* Line 1806 of yacc.c */ 7659 #line 1947 "parser.yy" 7779 #line 1994 "parser.yy" 7660 7780 { 7661 7781 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7664 7784 break; 7665 7785 7666 case 5 11:7667 7668 /* Line 1806 of yacc.c */ 7669 #line 19 52"parser.yy"7786 case 509: 7787 7788 /* Line 1806 of yacc.c */ 7789 #line 1999 "parser.yy" 7670 7790 { 7671 7791 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7674 7794 break; 7675 7795 7676 case 51 2:7677 7678 /* Line 1806 of yacc.c */ 7679 #line 1960"parser.yy"7796 case 510: 7797 7798 /* Line 1806 of yacc.c */ 7799 #line 2007 "parser.yy" 7680 7800 { 7681 7801 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7684 7804 break; 7685 7805 7686 case 51 3:7687 7688 /* Line 1806 of yacc.c */ 7689 #line 1965"parser.yy"7806 case 511: 7807 7808 /* Line 1806 of yacc.c */ 7809 #line 2012 "parser.yy" 7690 7810 { 7691 7811 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7694 7814 break; 7695 7815 7696 case 51 4:7697 7698 /* Line 1806 of yacc.c */ 7699 #line 1970"parser.yy"7816 case 512: 7817 7818 /* Line 1806 of yacc.c */ 7819 #line 2017 "parser.yy" 7700 7820 { 7701 7821 typedefTable.leaveTrait(); … … 7705 7825 break; 7706 7826 7707 case 51 6:7708 7709 /* Line 1806 of yacc.c */ 7710 #line 1980"parser.yy"7827 case 514: 7828 7829 /* Line 1806 of yacc.c */ 7830 #line 2027 "parser.yy" 7711 7831 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7712 7832 break; 7713 7833 7714 case 51 9:7715 7716 /* Line 1806 of yacc.c */ 7717 #line 1990"parser.yy"7834 case 517: 7835 7836 /* Line 1806 of yacc.c */ 7837 #line 2037 "parser.yy" 7718 7838 { 7719 7839 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7722 7842 break; 7723 7843 7724 case 5 20:7725 7726 /* Line 1806 of yacc.c */ 7727 #line 1995"parser.yy"7844 case 518: 7845 7846 /* Line 1806 of yacc.c */ 7847 #line 2042 "parser.yy" 7728 7848 { 7729 7849 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7732 7852 break; 7733 7853 7734 case 5 21:7735 7736 /* Line 1806 of yacc.c */ 7737 #line 20 00"parser.yy"7854 case 519: 7855 7856 /* Line 1806 of yacc.c */ 7857 #line 2047 "parser.yy" 7738 7858 { 7739 7859 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7742 7862 break; 7743 7863 7744 case 52 2:7745 7746 /* Line 1806 of yacc.c */ 7747 #line 20 08"parser.yy"7864 case 520: 7865 7866 /* Line 1806 of yacc.c */ 7867 #line 2055 "parser.yy" 7748 7868 { 7749 7869 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7752 7872 break; 7753 7873 7754 case 52 3:7755 7756 /* Line 1806 of yacc.c */ 7757 #line 20 13"parser.yy"7874 case 521: 7875 7876 /* Line 1806 of yacc.c */ 7877 #line 2060 "parser.yy" 7758 7878 { 7759 7879 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7762 7882 break; 7763 7883 7764 case 52 4:7765 7766 /* Line 1806 of yacc.c */ 7767 #line 20 23"parser.yy"7884 case 522: 7885 7886 /* Line 1806 of yacc.c */ 7887 #line 2070 "parser.yy" 7768 7888 {} 7769 7889 break; 7770 7890 7891 case 523: 7892 7893 /* Line 1806 of yacc.c */ 7894 #line 2072 "parser.yy" 7895 { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7896 break; 7897 7771 7898 case 525: 7772 7899 7773 7900 /* Line 1806 of yacc.c */ 7774 #line 2025 "parser.yy" 7775 { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7776 break; 7777 7778 case 527: 7779 7780 /* Line 1806 of yacc.c */ 7781 #line 2031 "parser.yy" 7901 #line 2078 "parser.yy" 7782 7902 { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7783 7903 break; 7784 7904 7785 case 52 8:7786 7787 /* Line 1806 of yacc.c */ 7788 #line 20 36"parser.yy"7905 case 526: 7906 7907 /* Line 1806 of yacc.c */ 7908 #line 2083 "parser.yy" 7789 7909 { (yyval.decl) = nullptr; } 7790 7910 break; 7791 7911 7792 case 53 2:7793 7794 /* Line 1806 of yacc.c */ 7795 #line 20 44"parser.yy"7912 case 530: 7913 7914 /* Line 1806 of yacc.c */ 7915 #line 2091 "parser.yy" 7796 7916 {} 7797 7917 break; 7798 7918 7799 case 53 3:7800 7801 /* Line 1806 of yacc.c */ 7802 #line 20 46"parser.yy"7919 case 531: 7920 7921 /* Line 1806 of yacc.c */ 7922 #line 2093 "parser.yy" 7803 7923 { 7804 7924 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" … … 7807 7927 break; 7808 7928 7809 case 53 4:7810 7811 /* Line 1806 of yacc.c */ 7812 #line 20 51"parser.yy"7929 case 532: 7930 7931 /* Line 1806 of yacc.c */ 7932 #line 2098 "parser.yy" 7813 7933 { 7814 7934 linkage = linkageStack.top(); … … 7818 7938 break; 7819 7939 7820 case 535: 7821 7822 /* Line 1806 of yacc.c */ 7823 #line 2057 "parser.yy" 7824 { // mark all fields in list 7825 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 7826 iter->set_extension( true ); 7940 case 533: 7941 7942 /* Line 1806 of yacc.c */ 7943 #line 2104 "parser.yy" 7944 { 7945 distExt( (yyvsp[(2) - (2)].decl) ); // mark all fields in list 7827 7946 (yyval.decl) = (yyvsp[(2) - (2)].decl); 7828 7947 } 7829 7948 break; 7830 7949 7831 case 53 7:7832 7833 /* Line 1806 of yacc.c */ 7834 #line 2 072"parser.yy"7950 case 535: 7951 7952 /* Line 1806 of yacc.c */ 7953 #line 2118 "parser.yy" 7835 7954 { 7836 7955 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7840 7959 break; 7841 7960 7842 case 53 8:7843 7844 /* Line 1806 of yacc.c */ 7845 #line 2 078"parser.yy"7961 case 536: 7962 7963 /* Line 1806 of yacc.c */ 7964 #line 2124 "parser.yy" 7846 7965 { 7847 7966 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7851 7970 break; 7852 7971 7853 case 53 9:7854 7855 /* Line 1806 of yacc.c */ 7856 #line 2 087"parser.yy"7972 case 537: 7973 7974 /* Line 1806 of yacc.c */ 7975 #line 2133 "parser.yy" 7857 7976 { 7858 7977 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7862 7981 break; 7863 7982 7864 case 5 40:7865 7866 /* Line 1806 of yacc.c */ 7867 #line 2 093"parser.yy"7983 case 538: 7984 7985 /* Line 1806 of yacc.c */ 7986 #line 2139 "parser.yy" 7868 7987 { 7869 7988 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7873 7992 break; 7874 7993 7875 case 5 41:7876 7877 /* Line 1806 of yacc.c */ 7878 #line 2 099"parser.yy"7994 case 539: 7995 7996 /* Line 1806 of yacc.c */ 7997 #line 2145 "parser.yy" 7879 7998 { 7880 7999 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7884 8003 break; 7885 8004 7886 case 54 2:7887 7888 /* Line 1806 of yacc.c */ 7889 #line 21 05"parser.yy"8005 case 540: 8006 8007 /* Line 1806 of yacc.c */ 8008 #line 2151 "parser.yy" 7890 8009 { 7891 8010 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7895 8014 break; 7896 8015 7897 case 54 3:7898 7899 /* Line 1806 of yacc.c */ 7900 #line 21 11"parser.yy"8016 case 541: 8017 8018 /* Line 1806 of yacc.c */ 8019 #line 2157 "parser.yy" 7901 8020 { 7902 8021 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7906 8025 break; 7907 8026 7908 case 54 4:7909 7910 /* Line 1806 of yacc.c */ 7911 #line 21 19"parser.yy"8027 case 542: 8028 8029 /* Line 1806 of yacc.c */ 8030 #line 2165 "parser.yy" 7912 8031 { 7913 8032 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7917 8036 break; 7918 8037 7919 case 54 5:7920 7921 /* Line 1806 of yacc.c */ 7922 #line 21 25"parser.yy"8038 case 543: 8039 8040 /* Line 1806 of yacc.c */ 8041 #line 2171 "parser.yy" 7923 8042 { 7924 8043 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7928 8047 break; 7929 8048 7930 case 54 6:7931 7932 /* Line 1806 of yacc.c */ 7933 #line 21 33"parser.yy"8049 case 544: 8050 8051 /* Line 1806 of yacc.c */ 8052 #line 2179 "parser.yy" 7934 8053 { 7935 8054 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7939 8058 break; 7940 8059 7941 case 54 7:7942 7943 /* Line 1806 of yacc.c */ 7944 #line 21 39"parser.yy"8060 case 545: 8061 8062 /* Line 1806 of yacc.c */ 8063 #line 2185 "parser.yy" 7945 8064 { 7946 8065 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7950 8069 break; 7951 8070 8071 case 549: 8072 8073 /* Line 1806 of yacc.c */ 8074 #line 2200 "parser.yy" 8075 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 8076 break; 8077 8078 case 550: 8079 8080 /* Line 1806 of yacc.c */ 8081 #line 2205 "parser.yy" 8082 { (yyval.decl) = nullptr; } 8083 break; 8084 7952 8085 case 551: 7953 8086 7954 8087 /* Line 1806 of yacc.c */ 7955 #line 2154 "parser.yy" 7956 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 8088 #line 2207 "parser.yy" 8089 { 8090 DeclarationNode * name = new DeclarationNode(); 8091 name->asmName = (yyvsp[(3) - (5)].constant); 8092 (yyval.decl) = name->addQualifiers( (yyvsp[(5) - (5)].decl) ); 8093 } 7957 8094 break; 7958 8095 … … 7960 8097 7961 8098 /* Line 1806 of yacc.c */ 7962 #line 2159 "parser.yy" 7963 { (yyval.constant) = nullptr; } 7964 break; 7965 7966 case 553: 7967 7968 /* Line 1806 of yacc.c */ 7969 #line 2161 "parser.yy" 7970 { (yyval.constant) = (yyvsp[(3) - (5)].constant); } 7971 break; 7972 7973 case 554: 7974 7975 /* Line 1806 of yacc.c */ 7976 #line 2166 "parser.yy" 8099 #line 2216 "parser.yy" 7977 8100 { (yyval.decl) = nullptr; } 7978 8101 break; 7979 8102 7980 case 55 7:7981 7982 /* Line 1806 of yacc.c */ 7983 #line 2 173 "parser.yy"8103 case 555: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2223 "parser.yy" 7984 8107 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7985 8108 break; 7986 8109 8110 case 556: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2228 "parser.yy" 8114 { (yyval.decl) = (yyvsp[(4) - (6)].decl); } 8115 break; 8116 7987 8117 case 558: 7988 8118 7989 8119 /* Line 1806 of yacc.c */ 7990 #line 2178 "parser.yy" 7991 { (yyval.decl) = (yyvsp[(4) - (6)].decl); } 8120 #line 2234 "parser.yy" 8121 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 8122 break; 8123 8124 case 559: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2239 "parser.yy" 8128 { (yyval.decl) = nullptr; } 7992 8129 break; 7993 8130 … … 7995 8132 7996 8133 /* Line 1806 of yacc.c */ 7997 #line 2 184"parser.yy"7998 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(3) - (3)].decl) ); }8134 #line 2241 "parser.yy" 8135 { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); } 7999 8136 break; 8000 8137 … … 8002 8139 8003 8140 /* Line 1806 of yacc.c */ 8004 #line 2189 "parser.yy" 8005 { (yyval.decl) = nullptr; } 8006 break; 8007 8008 case 562: 8009 8010 /* Line 1806 of yacc.c */ 8011 #line 2191 "parser.yy" 8012 { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (1)].tok) ); } 8013 break; 8014 8015 case 563: 8016 8017 /* Line 1806 of yacc.c */ 8018 #line 2193 "parser.yy" 8141 #line 2243 "parser.yy" 8019 8142 { (yyval.decl) = DeclarationNode::newAttribute( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 8020 8143 break; 8021 8144 8022 case 56 7:8023 8024 /* Line 1806 of yacc.c */ 8025 #line 22 01 "parser.yy"8145 case 565: 8146 8147 /* Line 1806 of yacc.c */ 8148 #line 2251 "parser.yy" 8026 8149 { (yyval.tok) = Token{ new string( "__const__" ) }; } 8027 8150 break; 8028 8151 8152 case 566: 8153 8154 /* Line 1806 of yacc.c */ 8155 #line 2286 "parser.yy" 8156 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8157 break; 8158 8029 8159 case 568: 8030 8160 8031 8161 /* Line 1806 of yacc.c */ 8032 #line 22 36"parser.yy"8162 #line 2289 "parser.yy" 8033 8163 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8034 8164 break; 8035 8165 8166 case 569: 8167 8168 /* Line 1806 of yacc.c */ 8169 #line 2291 "parser.yy" 8170 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8171 break; 8172 8036 8173 case 570: 8037 8174 8038 8175 /* Line 1806 of yacc.c */ 8039 #line 2239 "parser.yy" 8040 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8041 break; 8042 8043 case 571: 8044 8045 /* Line 1806 of yacc.c */ 8046 #line 2241 "parser.yy" 8047 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8048 break; 8049 8050 case 572: 8051 8052 /* Line 1806 of yacc.c */ 8053 #line 2246 "parser.yy" 8176 #line 2296 "parser.yy" 8054 8177 { 8055 8178 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8058 8181 break; 8059 8182 8183 case 571: 8184 8185 /* Line 1806 of yacc.c */ 8186 #line 2301 "parser.yy" 8187 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8188 break; 8189 8190 case 572: 8191 8192 /* Line 1806 of yacc.c */ 8193 #line 2306 "parser.yy" 8194 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8195 break; 8196 8060 8197 case 573: 8061 8198 8062 8199 /* Line 1806 of yacc.c */ 8063 #line 2251 "parser.yy" 8200 #line 2308 "parser.yy" 8201 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8202 break; 8203 8204 case 574: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2310 "parser.yy" 8208 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8209 break; 8210 8211 case 575: 8212 8213 /* Line 1806 of yacc.c */ 8214 #line 2315 "parser.yy" 8215 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8216 break; 8217 8218 case 576: 8219 8220 /* Line 1806 of yacc.c */ 8221 #line 2317 "parser.yy" 8222 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8223 break; 8224 8225 case 577: 8226 8227 /* Line 1806 of yacc.c */ 8228 #line 2319 "parser.yy" 8229 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8230 break; 8231 8232 case 578: 8233 8234 /* Line 1806 of yacc.c */ 8235 #line 2321 "parser.yy" 8064 8236 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8065 8237 break; 8066 8238 8067 case 574: 8068 8069 /* Line 1806 of yacc.c */ 8070 #line 2256 "parser.yy" 8239 case 579: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2326 "parser.yy" 8243 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8244 break; 8245 8246 case 580: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2328 "parser.yy" 8250 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8251 break; 8252 8253 case 581: 8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2337 "parser.yy" 8257 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8258 break; 8259 8260 case 583: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2340 "parser.yy" 8264 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8265 break; 8266 8267 case 584: 8268 8269 /* Line 1806 of yacc.c */ 8270 #line 2345 "parser.yy" 8271 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8272 break; 8273 8274 case 585: 8275 8276 /* Line 1806 of yacc.c */ 8277 #line 2347 "parser.yy" 8278 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8279 break; 8280 8281 case 586: 8282 8283 /* Line 1806 of yacc.c */ 8284 #line 2349 "parser.yy" 8285 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8286 break; 8287 8288 case 587: 8289 8290 /* Line 1806 of yacc.c */ 8291 #line 2354 "parser.yy" 8071 8292 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8072 8293 break; 8073 8294 8074 case 5 75:8075 8076 /* Line 1806 of yacc.c */ 8077 #line 2 258"parser.yy"8295 case 588: 8296 8297 /* Line 1806 of yacc.c */ 8298 #line 2356 "parser.yy" 8078 8299 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8079 8300 break; 8080 8301 8081 case 5 76:8082 8083 /* Line 1806 of yacc.c */ 8084 #line 2 260"parser.yy"8302 case 589: 8303 8304 /* Line 1806 of yacc.c */ 8305 #line 2358 "parser.yy" 8085 8306 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8086 8307 break; 8087 8308 8088 case 577: 8089 8090 /* Line 1806 of yacc.c */ 8091 #line 2265 "parser.yy" 8092 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8093 break; 8094 8095 case 578: 8096 8097 /* Line 1806 of yacc.c */ 8098 #line 2267 "parser.yy" 8309 case 590: 8310 8311 /* Line 1806 of yacc.c */ 8312 #line 2363 "parser.yy" 8099 8313 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8100 8314 break; 8101 8315 8102 case 5 79:8103 8104 /* Line 1806 of yacc.c */ 8105 #line 2 269"parser.yy"8316 case 591: 8317 8318 /* Line 1806 of yacc.c */ 8319 #line 2365 "parser.yy" 8106 8320 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8107 8321 break; 8108 8322 8109 case 5 80:8110 8111 /* Line 1806 of yacc.c */ 8112 #line 2 271"parser.yy"8323 case 592: 8324 8325 /* Line 1806 of yacc.c */ 8326 #line 2367 "parser.yy" 8113 8327 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8114 8328 break; 8115 8329 8116 case 581: 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2276 "parser.yy" 8330 case 596: 8331 8332 /* Line 1806 of yacc.c */ 8333 #line 2385 "parser.yy" 8334 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8335 break; 8336 8337 case 597: 8338 8339 /* Line 1806 of yacc.c */ 8340 #line 2387 "parser.yy" 8120 8341 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8121 8342 break; 8122 8343 8123 case 582:8124 8125 /* Line 1806 of yacc.c */8126 #line 2278 "parser.yy"8127 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8128 break;8129 8130 case 583:8131 8132 /* Line 1806 of yacc.c */8133 #line 2287 "parser.yy"8134 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8135 break;8136 8137 case 585:8138 8139 /* Line 1806 of yacc.c */8140 #line 2290 "parser.yy"8141 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8142 break;8143 8144 case 586:8145 8146 /* Line 1806 of yacc.c */8147 #line 2295 "parser.yy"8148 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }8149 break;8150 8151 case 587:8152 8153 /* Line 1806 of yacc.c */8154 #line 2297 "parser.yy"8155 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }8156 break;8157 8158 case 588:8159 8160 /* Line 1806 of yacc.c */8161 #line 2299 "parser.yy"8162 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8163 break;8164 8165 case 589:8166 8167 /* Line 1806 of yacc.c */8168 #line 2304 "parser.yy"8169 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8170 break;8171 8172 case 590:8173 8174 /* Line 1806 of yacc.c */8175 #line 2306 "parser.yy"8176 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8177 break;8178 8179 case 591:8180 8181 /* Line 1806 of yacc.c */8182 #line 2308 "parser.yy"8183 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8184 break;8185 8186 case 592:8187 8188 /* Line 1806 of yacc.c */8189 #line 2313 "parser.yy"8190 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8191 break;8192 8193 case 593:8194 8195 /* Line 1806 of yacc.c */8196 #line 2315 "parser.yy"8197 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8198 break;8199 8200 case 594:8201 8202 /* Line 1806 of yacc.c */8203 #line 2317 "parser.yy"8204 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8205 break;8206 8207 8344 case 598: 8208 8209 /* Line 1806 of yacc.c */8210 #line 2332 "parser.yy"8211 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }8212 break;8213 8214 case 599:8215 8216 /* Line 1806 of yacc.c */8217 #line 2334 "parser.yy"8218 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }8219 break;8220 8221 case 600:8222 8223 /* Line 1806 of yacc.c */8224 #line 2336 "parser.yy"8225 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8226 break;8227 8228 case 601:8229 8230 /* Line 1806 of yacc.c */8231 #line 2341 "parser.yy"8232 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8233 break;8234 8235 case 602:8236 8237 /* Line 1806 of yacc.c */8238 #line 2343 "parser.yy"8239 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8240 break;8241 8242 case 603:8243 8244 /* Line 1806 of yacc.c */8245 #line 2345 "parser.yy"8246 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8247 break;8248 8249 case 604:8250 8251 /* Line 1806 of yacc.c */8252 #line 2350 "parser.yy"8253 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8254 break;8255 8256 case 605:8257 8258 /* Line 1806 of yacc.c */8259 #line 2352 "parser.yy"8260 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8261 break;8262 8263 case 606:8264 8265 /* Line 1806 of yacc.c */8266 #line 2354 "parser.yy"8267 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8268 break;8269 8270 case 607:8271 8272 /* Line 1806 of yacc.c */8273 #line 2369 "parser.yy"8274 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8275 break;8276 8277 case 609:8278 8279 /* Line 1806 of yacc.c */8280 #line 2372 "parser.yy"8281 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8282 break;8283 8284 case 610:8285 8286 /* Line 1806 of yacc.c */8287 #line 2374 "parser.yy"8288 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }8289 break;8290 8291 case 612:8292 8293 /* Line 1806 of yacc.c */8294 #line 2380 "parser.yy"8295 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8296 break;8297 8298 case 613:8299 8300 /* Line 1806 of yacc.c */8301 #line 2385 "parser.yy"8302 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }8303 break;8304 8305 case 614:8306 8307 /* Line 1806 of yacc.c */8308 #line 2387 "parser.yy"8309 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }8310 break;8311 8312 case 615:8313 8345 8314 8346 /* Line 1806 of yacc.c */ … … 8317 8349 break; 8318 8350 8319 case 616:8351 case 599: 8320 8352 8321 8353 /* Line 1806 of yacc.c */ 8322 8354 #line 2394 "parser.yy" 8323 { (yyval.decl) = (yyvsp[( 1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }8324 break; 8325 8326 case 6 17:8355 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8356 break; 8357 8358 case 600: 8327 8359 8328 8360 /* Line 1806 of yacc.c */ 8329 8361 #line 2396 "parser.yy" 8362 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8363 break; 8364 8365 case 601: 8366 8367 /* Line 1806 of yacc.c */ 8368 #line 2398 "parser.yy" 8369 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8370 break; 8371 8372 case 602: 8373 8374 /* Line 1806 of yacc.c */ 8375 #line 2403 "parser.yy" 8330 8376 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8331 8377 break; 8332 8378 8333 case 6 18:8334 8335 /* Line 1806 of yacc.c */ 8336 #line 2 398"parser.yy"8379 case 603: 8380 8381 /* Line 1806 of yacc.c */ 8382 #line 2405 "parser.yy" 8337 8383 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8338 8384 break; 8339 8385 8340 case 6 19:8341 8342 /* Line 1806 of yacc.c */ 8343 #line 240 0"parser.yy"8386 case 604: 8387 8388 /* Line 1806 of yacc.c */ 8389 #line 2407 "parser.yy" 8344 8390 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8345 8391 break; 8346 8392 8347 case 620: 8348 8349 /* Line 1806 of yacc.c */ 8350 #line 2405 "parser.yy" 8351 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8352 break; 8353 8354 case 621: 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2407 "parser.yy" 8358 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8359 break; 8360 8361 case 622: 8362 8363 /* Line 1806 of yacc.c */ 8364 #line 2409 "parser.yy" 8365 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8366 break; 8367 8368 case 623: 8369 8370 /* Line 1806 of yacc.c */ 8371 #line 2419 "parser.yy" 8372 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8373 break; 8374 8375 case 625: 8393 case 605: 8376 8394 8377 8395 /* Line 1806 of yacc.c */ … … 8380 8398 break; 8381 8399 8382 case 6 26:8383 8384 /* Line 1806 of yacc.c */ 8385 #line 242 4"parser.yy"8400 case 607: 8401 8402 /* Line 1806 of yacc.c */ 8403 #line 2425 "parser.yy" 8386 8404 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8387 8405 break; 8388 8406 8389 case 627: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2429 "parser.yy" 8393 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8394 break; 8395 8396 case 628: 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2431 "parser.yy" 8400 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8401 break; 8402 8403 case 629: 8407 case 608: 8408 8409 /* Line 1806 of yacc.c */ 8410 #line 2427 "parser.yy" 8411 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8412 break; 8413 8414 case 610: 8404 8415 8405 8416 /* Line 1806 of yacc.c */ … … 8408 8419 break; 8409 8420 8410 case 6 30:8421 case 611: 8411 8422 8412 8423 /* Line 1806 of yacc.c */ 8413 8424 #line 2438 "parser.yy" 8425 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8426 break; 8427 8428 case 612: 8429 8430 /* Line 1806 of yacc.c */ 8431 #line 2440 "parser.yy" 8432 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8433 break; 8434 8435 case 613: 8436 8437 /* Line 1806 of yacc.c */ 8438 #line 2442 "parser.yy" 8439 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8440 break; 8441 8442 case 614: 8443 8444 /* Line 1806 of yacc.c */ 8445 #line 2447 "parser.yy" 8414 8446 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8415 8447 break; 8416 8448 8417 case 6 31:8418 8419 /* Line 1806 of yacc.c */ 8420 #line 244 0"parser.yy"8449 case 615: 8450 8451 /* Line 1806 of yacc.c */ 8452 #line 2449 "parser.yy" 8421 8453 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8422 8454 break; 8423 8455 8424 case 6 32:8425 8426 /* Line 1806 of yacc.c */ 8427 #line 24 42"parser.yy"8456 case 616: 8457 8458 /* Line 1806 of yacc.c */ 8459 #line 2451 "parser.yy" 8428 8460 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8429 8461 break; 8430 8462 8431 case 633: 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2444 "parser.yy" 8435 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8436 break; 8437 8438 case 634: 8439 8440 /* Line 1806 of yacc.c */ 8441 #line 2449 "parser.yy" 8442 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8443 break; 8444 8445 case 635: 8446 8447 /* Line 1806 of yacc.c */ 8448 #line 2451 "parser.yy" 8449 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8450 break; 8451 8452 case 636: 8463 case 617: 8453 8464 8454 8465 /* Line 1806 of yacc.c */ … … 8457 8468 break; 8458 8469 8470 case 618: 8471 8472 /* Line 1806 of yacc.c */ 8473 #line 2458 "parser.yy" 8474 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8475 break; 8476 8477 case 619: 8478 8479 /* Line 1806 of yacc.c */ 8480 #line 2460 "parser.yy" 8481 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8482 break; 8483 8484 case 620: 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2462 "parser.yy" 8488 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8489 break; 8490 8491 case 621: 8492 8493 /* Line 1806 of yacc.c */ 8494 #line 2472 "parser.yy" 8495 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8496 break; 8497 8498 case 623: 8499 8500 /* Line 1806 of yacc.c */ 8501 #line 2475 "parser.yy" 8502 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8503 break; 8504 8505 case 624: 8506 8507 /* Line 1806 of yacc.c */ 8508 #line 2477 "parser.yy" 8509 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8510 break; 8511 8512 case 625: 8513 8514 /* Line 1806 of yacc.c */ 8515 #line 2482 "parser.yy" 8516 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8517 break; 8518 8519 case 626: 8520 8521 /* Line 1806 of yacc.c */ 8522 #line 2484 "parser.yy" 8523 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8524 break; 8525 8526 case 627: 8527 8528 /* Line 1806 of yacc.c */ 8529 #line 2486 "parser.yy" 8530 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8531 break; 8532 8533 case 628: 8534 8535 /* Line 1806 of yacc.c */ 8536 #line 2491 "parser.yy" 8537 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8538 break; 8539 8540 case 629: 8541 8542 /* Line 1806 of yacc.c */ 8543 #line 2493 "parser.yy" 8544 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8545 break; 8546 8547 case 630: 8548 8549 /* Line 1806 of yacc.c */ 8550 #line 2495 "parser.yy" 8551 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8552 break; 8553 8554 case 631: 8555 8556 /* Line 1806 of yacc.c */ 8557 #line 2497 "parser.yy" 8558 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8559 break; 8560 8561 case 632: 8562 8563 /* Line 1806 of yacc.c */ 8564 #line 2502 "parser.yy" 8565 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8566 break; 8567 8568 case 633: 8569 8570 /* Line 1806 of yacc.c */ 8571 #line 2504 "parser.yy" 8572 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8573 break; 8574 8575 case 634: 8576 8577 /* Line 1806 of yacc.c */ 8578 #line 2506 "parser.yy" 8579 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8580 break; 8581 8582 case 635: 8583 8584 /* Line 1806 of yacc.c */ 8585 #line 2519 "parser.yy" 8586 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8587 break; 8588 8459 8589 case 637: 8460 8590 8461 8591 /* Line 1806 of yacc.c */ 8462 #line 2 484"parser.yy"8592 #line 2522 "parser.yy" 8463 8593 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8464 8594 break; 8465 8595 8596 case 638: 8597 8598 /* Line 1806 of yacc.c */ 8599 #line 2524 "parser.yy" 8600 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8601 break; 8602 8466 8603 case 639: 8467 8604 8468 8605 /* Line 1806 of yacc.c */ 8469 #line 2487 "parser.yy" 8470 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8471 break; 8472 8473 case 640: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2489 "parser.yy" 8477 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8478 break; 8479 8480 case 641: 8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2494 "parser.yy" 8606 #line 2529 "parser.yy" 8484 8607 { 8485 8608 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8488 8611 break; 8489 8612 8490 case 64 2:8491 8492 /* Line 1806 of yacc.c */ 8493 #line 2 499"parser.yy"8613 case 640: 8614 8615 /* Line 1806 of yacc.c */ 8616 #line 2534 "parser.yy" 8494 8617 { 8495 8618 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8498 8621 break; 8499 8622 8623 case 641: 8624 8625 /* Line 1806 of yacc.c */ 8626 #line 2542 "parser.yy" 8627 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8628 break; 8629 8630 case 642: 8631 8632 /* Line 1806 of yacc.c */ 8633 #line 2544 "parser.yy" 8634 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8635 break; 8636 8500 8637 case 643: 8501 8638 8502 8639 /* Line 1806 of yacc.c */ 8503 #line 2507 "parser.yy" 8640 #line 2546 "parser.yy" 8641 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8642 break; 8643 8644 case 644: 8645 8646 /* Line 1806 of yacc.c */ 8647 #line 2551 "parser.yy" 8648 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8649 break; 8650 8651 case 645: 8652 8653 /* Line 1806 of yacc.c */ 8654 #line 2553 "parser.yy" 8655 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8656 break; 8657 8658 case 646: 8659 8660 /* Line 1806 of yacc.c */ 8661 #line 2558 "parser.yy" 8662 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8663 break; 8664 8665 case 647: 8666 8667 /* Line 1806 of yacc.c */ 8668 #line 2560 "parser.yy" 8669 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8670 break; 8671 8672 case 649: 8673 8674 /* Line 1806 of yacc.c */ 8675 #line 2578 "parser.yy" 8676 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8677 break; 8678 8679 case 650: 8680 8681 /* Line 1806 of yacc.c */ 8682 #line 2580 "parser.yy" 8683 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8684 break; 8685 8686 case 651: 8687 8688 /* Line 1806 of yacc.c */ 8689 #line 2585 "parser.yy" 8690 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8691 break; 8692 8693 case 652: 8694 8695 /* Line 1806 of yacc.c */ 8696 #line 2587 "parser.yy" 8697 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8698 break; 8699 8700 case 653: 8701 8702 /* Line 1806 of yacc.c */ 8703 #line 2589 "parser.yy" 8504 8704 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8505 8705 break; 8506 8706 8507 case 6 44:8508 8509 /* Line 1806 of yacc.c */ 8510 #line 25 09"parser.yy"8707 case 654: 8708 8709 /* Line 1806 of yacc.c */ 8710 #line 2591 "parser.yy" 8511 8711 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8512 8712 break; 8513 8713 8514 case 645: 8515 8516 /* Line 1806 of yacc.c */ 8517 #line 2511 "parser.yy" 8714 case 655: 8715 8716 /* Line 1806 of yacc.c */ 8717 #line 2593 "parser.yy" 8718 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8719 break; 8720 8721 case 657: 8722 8723 /* Line 1806 of yacc.c */ 8724 #line 2599 "parser.yy" 8725 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8726 break; 8727 8728 case 658: 8729 8730 /* Line 1806 of yacc.c */ 8731 #line 2601 "parser.yy" 8732 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8733 break; 8734 8735 case 659: 8736 8737 /* Line 1806 of yacc.c */ 8738 #line 2603 "parser.yy" 8518 8739 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8519 8740 break; 8520 8741 8521 case 646: 8522 8523 /* Line 1806 of yacc.c */ 8524 #line 2516 "parser.yy" 8742 case 660: 8743 8744 /* Line 1806 of yacc.c */ 8745 #line 2608 "parser.yy" 8746 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8747 break; 8748 8749 case 661: 8750 8751 /* Line 1806 of yacc.c */ 8752 #line 2610 "parser.yy" 8753 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8754 break; 8755 8756 case 662: 8757 8758 /* Line 1806 of yacc.c */ 8759 #line 2612 "parser.yy" 8760 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8761 break; 8762 8763 case 663: 8764 8765 /* Line 1806 of yacc.c */ 8766 #line 2618 "parser.yy" 8767 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8768 break; 8769 8770 case 664: 8771 8772 /* Line 1806 of yacc.c */ 8773 #line 2620 "parser.yy" 8774 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8775 break; 8776 8777 case 666: 8778 8779 /* Line 1806 of yacc.c */ 8780 #line 2626 "parser.yy" 8781 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8782 break; 8783 8784 case 667: 8785 8786 /* Line 1806 of yacc.c */ 8787 #line 2628 "parser.yy" 8788 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8789 break; 8790 8791 case 668: 8792 8793 /* Line 1806 of yacc.c */ 8794 #line 2630 "parser.yy" 8795 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8796 break; 8797 8798 case 669: 8799 8800 /* Line 1806 of yacc.c */ 8801 #line 2632 "parser.yy" 8802 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8803 break; 8804 8805 case 671: 8806 8807 /* Line 1806 of yacc.c */ 8808 #line 2667 "parser.yy" 8809 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8810 break; 8811 8812 case 672: 8813 8814 /* Line 1806 of yacc.c */ 8815 #line 2669 "parser.yy" 8816 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8817 break; 8818 8819 case 673: 8820 8821 /* Line 1806 of yacc.c */ 8822 #line 2674 "parser.yy" 8823 { (yyval.decl) = DeclarationNode::newPointer( nullptr ); } 8824 break; 8825 8826 case 674: 8827 8828 /* Line 1806 of yacc.c */ 8829 #line 2676 "parser.yy" 8830 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8831 break; 8832 8833 case 675: 8834 8835 /* Line 1806 of yacc.c */ 8836 #line 2678 "parser.yy" 8837 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( nullptr ) ); } 8838 break; 8839 8840 case 676: 8841 8842 /* Line 1806 of yacc.c */ 8843 #line 2680 "parser.yy" 8844 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8845 break; 8846 8847 case 677: 8848 8849 /* Line 1806 of yacc.c */ 8850 #line 2682 "parser.yy" 8851 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8852 break; 8853 8854 case 679: 8855 8856 /* Line 1806 of yacc.c */ 8857 #line 2688 "parser.yy" 8858 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8859 break; 8860 8861 case 680: 8862 8863 /* Line 1806 of yacc.c */ 8864 #line 2690 "parser.yy" 8865 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8866 break; 8867 8868 case 681: 8869 8870 /* Line 1806 of yacc.c */ 8871 #line 2692 "parser.yy" 8872 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8873 break; 8874 8875 case 682: 8876 8877 /* Line 1806 of yacc.c */ 8878 #line 2697 "parser.yy" 8879 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8880 break; 8881 8882 case 683: 8883 8884 /* Line 1806 of yacc.c */ 8885 #line 2699 "parser.yy" 8886 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8887 break; 8888 8889 case 684: 8890 8891 /* Line 1806 of yacc.c */ 8892 #line 2701 "parser.yy" 8893 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8894 break; 8895 8896 case 686: 8897 8898 /* Line 1806 of yacc.c */ 8899 #line 2708 "parser.yy" 8525 8900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8526 8901 break; 8527 8902 8528 case 647: 8529 8530 /* Line 1806 of yacc.c */ 8531 #line 2518 "parser.yy" 8903 case 688: 8904 8905 /* Line 1806 of yacc.c */ 8906 #line 2719 "parser.yy" 8907 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8908 break; 8909 8910 case 689: 8911 8912 /* Line 1806 of yacc.c */ 8913 #line 2722 "parser.yy" 8914 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8915 break; 8916 8917 case 690: 8918 8919 /* Line 1806 of yacc.c */ 8920 #line 2724 "parser.yy" 8921 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8922 break; 8923 8924 case 691: 8925 8926 /* Line 1806 of yacc.c */ 8927 #line 2727 "parser.yy" 8928 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8929 break; 8930 8931 case 692: 8932 8933 /* Line 1806 of yacc.c */ 8934 #line 2729 "parser.yy" 8935 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8936 break; 8937 8938 case 693: 8939 8940 /* Line 1806 of yacc.c */ 8941 #line 2731 "parser.yy" 8942 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8943 break; 8944 8945 case 695: 8946 8947 /* Line 1806 of yacc.c */ 8948 #line 2746 "parser.yy" 8949 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8950 break; 8951 8952 case 696: 8953 8954 /* Line 1806 of yacc.c */ 8955 #line 2748 "parser.yy" 8956 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8957 break; 8958 8959 case 697: 8960 8961 /* Line 1806 of yacc.c */ 8962 #line 2753 "parser.yy" 8963 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8964 break; 8965 8966 case 698: 8967 8968 /* Line 1806 of yacc.c */ 8969 #line 2755 "parser.yy" 8970 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8971 break; 8972 8973 case 699: 8974 8975 /* Line 1806 of yacc.c */ 8976 #line 2757 "parser.yy" 8977 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8978 break; 8979 8980 case 700: 8981 8982 /* Line 1806 of yacc.c */ 8983 #line 2759 "parser.yy" 8984 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8985 break; 8986 8987 case 701: 8988 8989 /* Line 1806 of yacc.c */ 8990 #line 2761 "parser.yy" 8991 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(4) - (4)].decl) ); } 8992 break; 8993 8994 case 703: 8995 8996 /* Line 1806 of yacc.c */ 8997 #line 2767 "parser.yy" 8532 8998 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8533 8999 break; 8534 9000 8535 case 648: 8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2523 "parser.yy" 8539 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8540 break; 8541 8542 case 649: 8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2525 "parser.yy" 9001 case 704: 9002 9003 /* Line 1806 of yacc.c */ 9004 #line 2769 "parser.yy" 9005 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 9006 break; 9007 9008 case 705: 9009 9010 /* Line 1806 of yacc.c */ 9011 #line 2771 "parser.yy" 9012 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 9013 break; 9014 9015 case 706: 9016 9017 /* Line 1806 of yacc.c */ 9018 #line 2776 "parser.yy" 8546 9019 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8547 9020 break; 8548 9021 8549 case 651: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2540 "parser.yy" 8553 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8554 break; 8555 8556 case 652: 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2542 "parser.yy" 8560 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8561 break; 8562 8563 case 653: 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2547 "parser.yy" 8567 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8568 break; 8569 8570 case 654: 8571 8572 /* Line 1806 of yacc.c */ 8573 #line 2549 "parser.yy" 8574 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8575 break; 8576 8577 case 655: 8578 8579 /* Line 1806 of yacc.c */ 8580 #line 2551 "parser.yy" 8581 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8582 break; 8583 8584 case 656: 8585 8586 /* Line 1806 of yacc.c */ 8587 #line 2553 "parser.yy" 8588 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8589 break; 8590 8591 case 657: 8592 8593 /* Line 1806 of yacc.c */ 8594 #line 2555 "parser.yy" 9022 case 707: 9023 9024 /* Line 1806 of yacc.c */ 9025 #line 2778 "parser.yy" 8595 9026 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8596 9027 break; 8597 9028 8598 case 659: 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2561 "parser.yy" 8602 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8603 break; 8604 8605 case 660: 8606 8607 /* Line 1806 of yacc.c */ 8608 #line 2563 "parser.yy" 8609 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8610 break; 8611 8612 case 661: 8613 8614 /* Line 1806 of yacc.c */ 8615 #line 2565 "parser.yy" 8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8617 break; 8618 8619 case 662: 8620 8621 /* Line 1806 of yacc.c */ 8622 #line 2570 "parser.yy" 8623 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8624 break; 8625 8626 case 663: 8627 8628 /* Line 1806 of yacc.c */ 8629 #line 2572 "parser.yy" 8630 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8631 break; 8632 8633 case 664: 8634 8635 /* Line 1806 of yacc.c */ 8636 #line 2574 "parser.yy" 8637 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8638 break; 8639 8640 case 665: 8641 8642 /* Line 1806 of yacc.c */ 8643 #line 2580 "parser.yy" 8644 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8645 break; 8646 8647 case 666: 8648 8649 /* Line 1806 of yacc.c */ 8650 #line 2582 "parser.yy" 8651 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8652 break; 8653 8654 case 668: 8655 8656 /* Line 1806 of yacc.c */ 8657 #line 2588 "parser.yy" 8658 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8659 break; 8660 8661 case 669: 8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2590 "parser.yy" 8665 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8666 break; 8667 8668 case 670: 8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2592 "parser.yy" 8672 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8673 break; 8674 8675 case 671: 8676 8677 /* Line 1806 of yacc.c */ 8678 #line 2594 "parser.yy" 8679 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8680 break; 8681 8682 case 673: 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2609 "parser.yy" 8686 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8687 break; 8688 8689 case 674: 8690 8691 /* Line 1806 of yacc.c */ 8692 #line 2611 "parser.yy" 8693 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8694 break; 8695 8696 case 675: 8697 8698 /* Line 1806 of yacc.c */ 8699 #line 2616 "parser.yy" 8700 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8701 break; 8702 8703 case 676: 8704 8705 /* Line 1806 of yacc.c */ 8706 #line 2618 "parser.yy" 8707 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8708 break; 8709 8710 case 677: 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2620 "parser.yy" 8714 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8715 break; 8716 8717 case 678: 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2622 "parser.yy" 8721 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8722 break; 8723 8724 case 679: 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2624 "parser.yy" 8728 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8729 break; 8730 8731 case 681: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2630 "parser.yy" 8735 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8736 break; 8737 8738 case 682: 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2632 "parser.yy" 8742 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8743 break; 8744 8745 case 683: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2634 "parser.yy" 8749 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8750 break; 8751 8752 case 684: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2639 "parser.yy" 8756 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8757 break; 8758 8759 case 685: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2641 "parser.yy" 8763 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8764 break; 8765 8766 case 686: 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2643 "parser.yy" 8770 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8771 break; 8772 8773 case 688: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2650 "parser.yy" 8777 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8778 break; 8779 8780 case 690: 8781 8782 /* Line 1806 of yacc.c */ 8783 #line 2661 "parser.yy" 8784 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8785 break; 8786 8787 case 691: 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2664 "parser.yy" 9029 case 710: 9030 9031 /* Line 1806 of yacc.c */ 9032 #line 2788 "parser.yy" 9033 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9034 break; 9035 9036 case 713: 9037 9038 /* Line 1806 of yacc.c */ 9039 #line 2798 "parser.yy" 9040 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9041 break; 9042 9043 case 714: 9044 9045 /* Line 1806 of yacc.c */ 9046 #line 2800 "parser.yy" 9047 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9048 break; 9049 9050 case 715: 9051 9052 /* Line 1806 of yacc.c */ 9053 #line 2802 "parser.yy" 9054 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9055 break; 9056 9057 case 716: 9058 9059 /* Line 1806 of yacc.c */ 9060 #line 2804 "parser.yy" 9061 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9062 break; 9063 9064 case 717: 9065 9066 /* Line 1806 of yacc.c */ 9067 #line 2806 "parser.yy" 9068 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9069 break; 9070 9071 case 718: 9072 9073 /* Line 1806 of yacc.c */ 9074 #line 2808 "parser.yy" 9075 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9076 break; 9077 9078 case 719: 9079 9080 /* Line 1806 of yacc.c */ 9081 #line 2815 "parser.yy" 9082 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9083 break; 9084 9085 case 720: 9086 9087 /* Line 1806 of yacc.c */ 9088 #line 2817 "parser.yy" 9089 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9090 break; 9091 9092 case 721: 9093 9094 /* Line 1806 of yacc.c */ 9095 #line 2819 "parser.yy" 9096 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9097 break; 9098 9099 case 722: 9100 9101 /* Line 1806 of yacc.c */ 9102 #line 2821 "parser.yy" 9103 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9104 break; 9105 9106 case 723: 9107 9108 /* Line 1806 of yacc.c */ 9109 #line 2823 "parser.yy" 9110 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9111 break; 9112 9113 case 724: 9114 9115 /* Line 1806 of yacc.c */ 9116 #line 2826 "parser.yy" 9117 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9118 break; 9119 9120 case 725: 9121 9122 /* Line 1806 of yacc.c */ 9123 #line 2828 "parser.yy" 9124 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9125 break; 9126 9127 case 726: 9128 9129 /* Line 1806 of yacc.c */ 9130 #line 2830 "parser.yy" 9131 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9132 break; 9133 9134 case 727: 9135 9136 /* Line 1806 of yacc.c */ 9137 #line 2832 "parser.yy" 9138 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9139 break; 9140 9141 case 728: 9142 9143 /* Line 1806 of yacc.c */ 9144 #line 2834 "parser.yy" 9145 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9146 break; 9147 9148 case 729: 9149 9150 /* Line 1806 of yacc.c */ 9151 #line 2839 "parser.yy" 8791 9152 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8792 9153 break; 8793 9154 8794 case 692: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2666 "parser.yy" 8798 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8799 break; 8800 8801 case 693: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2669 "parser.yy" 9155 case 730: 9156 9157 /* Line 1806 of yacc.c */ 9158 #line 2841 "parser.yy" 8805 9159 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8806 9160 break; 8807 9161 8808 case 694: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2671 "parser.yy" 8812 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8813 break; 8814 8815 case 695: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2673 "parser.yy" 8819 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8820 break; 8821 8822 case 697: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2687 "parser.yy" 8826 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8827 break; 8828 8829 case 698: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2689 "parser.yy" 8833 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8834 break; 8835 8836 case 699: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2694 "parser.yy" 8840 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8841 break; 8842 8843 case 700: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2696 "parser.yy" 8847 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8848 break; 8849 8850 case 701: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2698 "parser.yy" 8854 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8855 break; 8856 8857 case 702: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2700 "parser.yy" 8861 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8862 break; 8863 8864 case 703: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2702 "parser.yy" 8868 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8869 break; 8870 8871 case 705: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2708 "parser.yy" 8875 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8876 break; 8877 8878 case 706: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2710 "parser.yy" 8882 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8883 break; 8884 8885 case 707: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2712 "parser.yy" 8889 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8890 break; 8891 8892 case 708: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2717 "parser.yy" 8896 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8897 break; 8898 8899 case 709: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2719 "parser.yy" 8903 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8904 break; 8905 8906 case 712: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2729 "parser.yy" 9162 case 731: 9163 9164 /* Line 1806 of yacc.c */ 9165 #line 2846 "parser.yy" 9166 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9167 break; 9168 9169 case 732: 9170 9171 /* Line 1806 of yacc.c */ 9172 #line 2848 "parser.yy" 9173 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9174 break; 9175 9176 case 734: 9177 9178 /* Line 1806 of yacc.c */ 9179 #line 2875 "parser.yy" 8910 9180 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8911 9181 break; 8912 9182 8913 case 7 15:8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2 739"parser.yy"9183 case 738: 9184 9185 /* Line 1806 of yacc.c */ 9186 #line 2886 "parser.yy" 8917 9187 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8918 9188 break; 8919 9189 8920 case 7 16:8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2 741"parser.yy"9190 case 739: 9191 9192 /* Line 1806 of yacc.c */ 9193 #line 2888 "parser.yy" 8924 9194 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8925 9195 break; 8926 9196 8927 case 7 17:8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2 743"parser.yy"9197 case 740: 9198 9199 /* Line 1806 of yacc.c */ 9200 #line 2890 "parser.yy" 8931 9201 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8932 9202 break; 8933 9203 8934 case 7 18:8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2 745"parser.yy"9204 case 741: 9205 9206 /* Line 1806 of yacc.c */ 9207 #line 2892 "parser.yy" 8938 9208 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8939 9209 break; 8940 9210 8941 case 7 19:8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2 747"parser.yy"9211 case 742: 9212 9213 /* Line 1806 of yacc.c */ 9214 #line 2894 "parser.yy" 8945 9215 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8946 9216 break; 8947 9217 8948 case 7 20:8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2 749"parser.yy"9218 case 743: 9219 9220 /* Line 1806 of yacc.c */ 9221 #line 2896 "parser.yy" 8952 9222 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8953 9223 break; 8954 9224 8955 case 721: 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2756 "parser.yy" 8959 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8960 break; 8961 8962 case 722: 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2758 "parser.yy" 9225 case 744: 9226 9227 /* Line 1806 of yacc.c */ 9228 #line 2903 "parser.yy" 9229 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9230 break; 9231 9232 case 745: 9233 9234 /* Line 1806 of yacc.c */ 9235 #line 2905 "parser.yy" 9236 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9237 break; 9238 9239 case 746: 9240 9241 /* Line 1806 of yacc.c */ 9242 #line 2907 "parser.yy" 8966 9243 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8967 9244 break; 8968 9245 8969 case 7 23:8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2 760"parser.yy"8973 { (yyval.decl) = (yyvsp[( 4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8974 break; 8975 8976 case 7 24:8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2 762"parser.yy"8980 { (yyval.decl) = (yyvsp[( 3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }8981 break; 8982 8983 case 7 25:8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2 764"parser.yy"9246 case 747: 9247 9248 /* Line 1806 of yacc.c */ 9249 #line 2909 "parser.yy" 9250 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9251 break; 9252 9253 case 748: 9254 9255 /* Line 1806 of yacc.c */ 9256 #line 2911 "parser.yy" 9257 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9258 break; 9259 9260 case 749: 9261 9262 /* Line 1806 of yacc.c */ 9263 #line 2913 "parser.yy" 8987 9264 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8988 9265 break; 8989 9266 8990 case 726:8991 8992 /* Line 1806 of yacc.c */8993 #line 2767 "parser.yy"8994 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8995 break;8996 8997 case 727:8998 8999 /* Line 1806 of yacc.c */9000 #line 2769 "parser.yy"9001 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9002 break;9003 9004 case 728:9005 9006 /* Line 1806 of yacc.c */9007 #line 2771 "parser.yy"9008 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }9009 break;9010 9011 case 729:9012 9013 /* Line 1806 of yacc.c */9014 #line 2773 "parser.yy"9015 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9016 break;9017 9018 case 730:9019 9020 /* Line 1806 of yacc.c */9021 #line 2775 "parser.yy"9022 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9023 break;9024 9025 case 731:9026 9027 /* Line 1806 of yacc.c */9028 #line 2780 "parser.yy"9029 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }9030 break;9031 9032 case 732:9033 9034 /* Line 1806 of yacc.c */9035 #line 2782 "parser.yy"9036 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }9037 break;9038 9039 case 733:9040 9041 /* Line 1806 of yacc.c */9042 #line 2787 "parser.yy"9043 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }9044 break;9045 9046 case 734:9047 9048 /* Line 1806 of yacc.c */9049 #line 2789 "parser.yy"9050 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }9051 break;9052 9053 case 736:9054 9055 /* Line 1806 of yacc.c */9056 #line 2816 "parser.yy"9057 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }9058 break;9059 9060 case 740:9061 9062 /* Line 1806 of yacc.c */9063 #line 2827 "parser.yy"9064 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9065 break;9066 9067 case 741:9068 9069 /* Line 1806 of yacc.c */9070 #line 2829 "parser.yy"9071 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9072 break;9073 9074 case 742:9075 9076 /* Line 1806 of yacc.c */9077 #line 2831 "parser.yy"9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9079 break;9080 9081 case 743:9082 9083 /* Line 1806 of yacc.c */9084 #line 2833 "parser.yy"9085 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9086 break;9087 9088 case 744:9089 9090 /* Line 1806 of yacc.c */9091 #line 2835 "parser.yy"9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }9093 break;9094 9095 case 745:9096 9097 /* Line 1806 of yacc.c */9098 #line 2837 "parser.yy"9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }9100 break;9101 9102 case 746:9103 9104 /* Line 1806 of yacc.c */9105 #line 2844 "parser.yy"9106 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9107 break;9108 9109 case 747:9110 9111 /* Line 1806 of yacc.c */9112 #line 2846 "parser.yy"9113 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9114 break;9115 9116 case 748:9117 9118 /* Line 1806 of yacc.c */9119 #line 2848 "parser.yy"9120 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9121 break;9122 9123 case 749:9124 9125 /* Line 1806 of yacc.c */9126 #line 2850 "parser.yy"9127 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }9128 break;9129 9130 9267 case 750: 9131 9268 9132 9269 /* Line 1806 of yacc.c */ 9133 #line 2 852"parser.yy"9134 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false) ); }9270 #line 2918 "parser.yy" 9271 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9135 9272 break; 9136 9273 … … 9138 9275 9139 9276 /* Line 1806 of yacc.c */ 9140 #line 2 854"parser.yy"9141 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl)); }9277 #line 2925 "parser.yy" 9278 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9142 9279 break; 9143 9280 … … 9145 9282 9146 9283 /* Line 1806 of yacc.c */ 9147 #line 2859 "parser.yy" 9148 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9149 break; 9150 9151 case 753: 9152 9153 /* Line 1806 of yacc.c */ 9154 #line 2866 "parser.yy" 9284 #line 2927 "parser.yy" 9155 9285 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9156 9286 break; 9157 9287 9158 case 754: 9159 9160 /* Line 1806 of yacc.c */ 9161 #line 2868 "parser.yy" 9162 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9163 break; 9164 9165 case 757: 9166 9167 /* Line 1806 of yacc.c */ 9168 #line 2892 "parser.yy" 9288 case 755: 9289 9290 /* Line 1806 of yacc.c */ 9291 #line 2951 "parser.yy" 9169 9292 { (yyval.en) = nullptr; } 9170 9293 break; 9171 9294 9172 case 75 8:9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2 894"parser.yy"9295 case 756: 9296 9297 /* Line 1806 of yacc.c */ 9298 #line 2953 "parser.yy" 9176 9299 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9177 9300 break; … … 9180 9303 9181 9304 /* Line 1806 of yacc.c */ 9182 #line 9 183"Parser/parser.cc"9305 #line 9306 "Parser/parser.cc" 9183 9306 default: break; 9184 9307 } … … 9411 9534 9412 9535 /* Line 2067 of yacc.c */ 9413 #line 2 897"parser.yy"9536 #line 2956 "parser.yy" 9414 9537 9415 9538 // ----end of grammar---- -
src/Parser/parser.h
rdbe8f244 rfe26fbf 272 272 273 273 /* Line 2068 of yacc.c */ 274 #line 1 19 "parser.yy"274 #line 139 "parser.yy" 275 275 276 276 Token tok; 277 ParseNode * pn;278 ExpressionNode * en;279 DeclarationNode * decl;277 ParseNode * pn; 278 ExpressionNode * en; 279 DeclarationNode * decl; 280 280 DeclarationNode::Aggregate aggKey; 281 281 DeclarationNode::TypeClass tclass; 282 StatementNode * sn;283 ConstantExpr * constant;284 ForCtl * fctl;285 LabelNode * label;286 InitializerNode * in;282 StatementNode * sn; 283 ConstantExpr * constant; 284 ForCtl * fctl; 285 LabelNode * label; 286 InitializerNode * in; 287 287 OperKinds op; 288 std::string * str;288 std::string * str; 289 289 bool flag; 290 290 -
src/Parser/parser.yy
rdbe8f244 rfe26fbf 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 18 15:51:25201713 // Update Count : 21 3512 // Last Modified On : Mon Feb 6 16:00:29 2017 13 // Update Count : 2181 14 14 // 15 15 … … 32 32 // 33 33 // 1. designation with and without '=' (use ':' instead) 34 // 2. attributes not allowed in parenthesis of declarator 34 35 // 35 36 // All of the syntactic extensions for GCC C are marked with the comment "GCC". The second extensions are for Cforall … … 65 66 to->insert( to->length() - 1, from->substr( 1, from->length() - 2 ) ); 66 67 } // appendStr 68 69 DeclarationNode * distAttr( DeclarationNode * specifier, DeclarationNode * declList ) { 70 // distribute declaration_specifier across all declared variables, e.g., static, const, __attribute__. 71 DeclarationNode * cur = declList, * cl = (new DeclarationNode)->addType( specifier ); 72 //cur->addType( specifier ); 73 for ( cur = dynamic_cast< DeclarationNode * >( cur->get_next() ); cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ) ) { 74 cl->cloneBaseType( cur ); 75 } // for 76 declList->addType( cl ); 77 // delete cl; 78 return declList; 79 } // distAttr 80 81 void distExt( DeclarationNode * declaration ) { 82 // distribute EXTENSION across all declarations 83 for ( DeclarationNode *iter = declaration; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) { 84 iter->set_extension( true ); 85 } // for 86 } // distExt 67 87 %} 68 88 … … 119 139 { 120 140 Token tok; 121 ParseNode * pn;122 ExpressionNode * en;123 DeclarationNode * decl;141 ParseNode * pn; 142 ExpressionNode * en; 143 DeclarationNode * decl; 124 144 DeclarationNode::Aggregate aggKey; 125 145 DeclarationNode::TypeClass tclass; 126 StatementNode * sn;127 ConstantExpr * constant;128 ForCtl * fctl;129 LabelNode * label;130 InitializerNode * in;146 StatementNode * sn; 147 ConstantExpr * constant; 148 ForCtl * fctl; 149 LabelNode * label; 150 InitializerNode * in; 131 151 OperKinds op; 132 std::string * str;152 std::string * str; 133 153 bool flag; 134 154 } … … 152 172 %type<fctl> for_control_expression 153 173 %type<en> subrange 154 %type< constant> asm_name_opt174 %type<decl> asm_name_opt 155 175 %type<en> asm_operands_opt asm_operands_list asm_operand 156 176 %type<label> label_list … … 171 191 172 192 // declarations 173 %type<decl> abstract_ array abstract_declarator abstract_function abstract_parameter_array174 %type<decl> abstract_parameter_declarat ion abstract_parameter_declarator abstract_parameter_function175 %type<decl> abstract_parameter_ ptr abstract_ptr193 %type<decl> abstract_declarator abstract_ptr abstract_array abstract_function array_dimension multi_array_dimension 194 %type<decl> abstract_parameter_declarator abstract_parameter_ptr abstract_parameter_array abstract_parameter_function array_parameter_dimension array_parameter_1st_dimension 195 %type<decl> abstract_parameter_declaration 176 196 177 197 %type<aggKey> aggregate_key 178 %type<decl> aggregate_name 179 180 %type<decl> array_dimension array_parameter_1st_dimension array_parameter_dimension multi_array_dimension 198 %type<decl> aggregate_type 181 199 182 200 %type<decl> assertion assertion_list_opt … … 191 209 %type<decl> declaration_specifier declarator declaring_list 192 210 193 %type<decl> elaborated_type _name194 195 %type<decl> enumerator_list enum_ name211 %type<decl> elaborated_type 212 213 %type<decl> enumerator_list enum_type 196 214 %type<en> enumerator_value_opt 197 215 … … 206 224 %type<decl> identifier_parameter_ptr identifier_list 207 225 208 %type<decl> new_abstract_array new_abstract_declarator_no_tuple new_abstract_declarator_tuple 209 %type<decl> new_abstract_function new_abstract_parameter_declaration new_abstract_parameter_list 210 %type<decl> new_abstract_ptr new_abstract_tuple 211 212 %type<decl> new_array_parameter_1st_dimension 213 214 %type<decl> new_trait_declaring_list new_declaration new_field_declaring_list 215 %type<decl> new_function_declaration new_function_return new_function_specifier 216 217 %type<decl> new_identifier_parameter_array new_identifier_parameter_declarator_no_tuple 218 %type<decl> new_identifier_parameter_declarator_tuple new_identifier_parameter_ptr 219 220 %type<decl> new_parameter_declaration new_parameter_list new_parameter_type_list new_parameter_type_list_opt 221 222 %type<decl> new_typedef_declaration new_variable_declaration new_variable_specifier 223 224 %type<decl> old_declaration old_declaration_list old_declaration_list_opt old_function_array 225 %type<decl> old_function_declarator old_function_no_ptr old_function_ptr 226 %type<decl> cfa_abstract_array cfa_abstract_declarator_no_tuple cfa_abstract_declarator_tuple 227 %type<decl> cfa_abstract_function cfa_abstract_parameter_declaration cfa_abstract_parameter_list 228 %type<decl> cfa_abstract_ptr cfa_abstract_tuple 229 230 %type<decl> cfa_array_parameter_1st_dimension 231 232 %type<decl> cfa_trait_declaring_list cfa_declaration cfa_field_declaring_list 233 %type<decl> cfa_function_declaration cfa_function_return cfa_function_specifier 234 235 %type<decl> cfa_identifier_parameter_array cfa_identifier_parameter_declarator_no_tuple 236 %type<decl> cfa_identifier_parameter_declarator_tuple cfa_identifier_parameter_ptr 237 238 %type<decl> cfa_parameter_declaration cfa_parameter_list cfa_parameter_type_list cfa_parameter_type_list_opt 239 240 %type<decl> cfa_typedef_declaration cfa_variable_declaration cfa_variable_specifier 241 242 %type<decl> c_declaration 243 %type<decl> KR_function_declarator KR_function_no_ptr KR_function_ptr KR_function_array 244 %type<decl> KR_declaration_list KR_declaration_list_opt 226 245 227 246 %type<decl> parameter_declaration parameter_list parameter_type_list … … 237 256 %type<decl> type_declarator type_declarator_name type_declaring_list 238 257 239 %type<decl> typedef type_array typedef_declaration typedef_declaration_specifier typedef_expression 240 %type<decl> type_function type_parameter_array type_parameter_function type_parameter_ptr 241 %type<decl> type_parameter_redeclarator type_ptr variable_type_redeclarator typedef_type_specifier 258 %type<decl> typedef typedef_type_specifier typedef_declaration typedef_declaration_specifier typedef_expression 259 260 %type<decl> variable_type_redeclarator type_ptr type_array type_function 261 262 %type<decl> type_parameter_redeclarator type_parameter_ptr type_parameter_array type_parameter_function 242 263 %type<decl> typegen_declaration_specifier typegen_type_specifier typegen_name 243 264 … … 249 270 %type<decl> type_qualifier type_qualifier_name type_qualifier_list type_qualifier_list_opt type_specifier 250 271 251 %type<decl> variable_ abstract_array variable_abstract_declarator variable_abstract_function252 %type<decl> variable_abstract_ ptr variable_array variable_declarator variable_function variable_ptr272 %type<decl> variable_declarator variable_ptr variable_array variable_function 273 %type<decl> variable_abstract_declarator variable_abstract_ptr variable_abstract_array variable_abstract_function 253 274 254 275 %type<decl> attribute_list_opt attribute_list attribute_name_list attribute attribute_name … … 659 680 tuple: // CFA, tuple 660 681 // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with 661 // comma_expression in new_identifier_parameter_array and new_abstract_array682 // comma_expression in cfa_identifier_parameter_array and cfa_abstract_array 662 683 // '[' ']' 663 684 // { $$ = new ExpressionNode( build_tuple() ); } … … 723 744 push push 724 745 local_label_declaration_opt // GCC, local labels 725 block_item_list pop '}' // C99, intermix declarations and statements 746 block_item_list // C99, intermix declarations and statements 747 pop '}' 726 748 { $$ = new StatementNode( build_compound( $5 ) ); } 727 749 ; … … 737 759 { $$ = new StatementNode( $1 ); } 738 760 | EXTENSION declaration // GCC 739 { // mark all fields in list 740 for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 741 iter->set_extension( true ); 761 { 762 distExt( $2 ); 742 763 $$ = new StatementNode( $2 ); 743 764 } 744 765 | function_definition 745 766 { $$ = new StatementNode( $1 ); } 767 | EXTENSION function_definition // GCC 768 { 769 distExt( $2 ); 770 $$ = new StatementNode( $2 ); 771 } 746 772 | statement pop 747 773 ; … … 960 986 | type_specifier variable_abstract_declarator 961 987 { $$ = $2->addType( $1 ); } 962 | new_abstract_declarator_tuple no_attr_identifier // CFA988 | cfa_abstract_declarator_tuple no_attr_identifier // CFA 963 989 { 964 990 typedefTable.addToEnclosingScope( TypedefTable::ID ); 965 991 $$ = $1->addName( $2 ); 966 992 } 967 | new_abstract_declarator_tuple // CFA993 | cfa_abstract_declarator_tuple // CFA 968 994 ; 969 995 … … 1044 1070 ; 1045 1071 1046 old_declaration_list_opt: // used to declare parameter types in K&R style functions1072 KR_declaration_list_opt: // used to declare parameter types in K&R style functions 1047 1073 pop 1048 1074 { $$ = nullptr; } 1049 | old_declaration_list1050 ; 1051 1052 old_declaration_list:1053 old_declaration1054 | old_declaration_list push old_declaration1075 | KR_declaration_list 1076 ; 1077 1078 KR_declaration_list: 1079 c_declaration 1080 | KR_declaration_list push c_declaration 1055 1081 { $$ = $1->appendList( $3 ); } 1056 1082 ; … … 1072 1098 1073 1099 declaration: // CFA, new & old style declarations 1074 new_declaration1075 | old_declaration1100 cfa_declaration 1101 | c_declaration 1076 1102 ; 1077 1103 … … 1087 1113 // [10] * char y; char *y[10]; // array of 10 pointers to char 1088 1114 1089 new_declaration: // CFA1090 new_variable_declaration pop ';'1091 | new_typedef_declaration pop ';'1092 | new_function_declaration pop ';'1115 cfa_declaration: // CFA 1116 cfa_variable_declaration pop ';' 1117 | cfa_typedef_declaration pop ';' 1118 | cfa_function_declaration pop ';' 1093 1119 | type_declaring_list pop ';' 1094 1120 | trait_specifier pop ';' 1095 1121 ; 1096 1122 1097 new_variable_declaration: // CFA1098 new_variable_specifier initializer_opt1123 cfa_variable_declaration: // CFA 1124 cfa_variable_specifier initializer_opt 1099 1125 { 1100 1126 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1101 1127 $$ = $1->addInitializer( $2 ); 1102 1128 } 1103 | declaration_qualifier_list new_variable_specifier initializer_opt1129 | declaration_qualifier_list cfa_variable_specifier initializer_opt 1104 1130 // declaration_qualifier_list also includes type_qualifier_list, so a semantic check is necessary to preclude 1105 1131 // them as a type_qualifier cannot appear in that context. … … 1108 1134 $$ = $2->addQualifiers( $1 )->addInitializer( $3 );; 1109 1135 } 1110 | new_variable_declaration pop ',' push identifier_or_type_name initializer_opt1136 | cfa_variable_declaration pop ',' push identifier_or_type_name initializer_opt 1111 1137 { 1112 1138 typedefTable.addToEnclosingScope( *$5, TypedefTable::ID ); … … 1115 1141 ; 1116 1142 1117 new_variable_specifier: // CFA1143 cfa_variable_specifier: // CFA 1118 1144 // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static 1119 1145 // storage-class 1120 new_abstract_declarator_no_tuple identifier_or_type_name asm_name_opt1146 cfa_abstract_declarator_no_tuple identifier_or_type_name asm_name_opt 1121 1147 { 1122 1148 typedefTable.setNextIdentifier( *$2 ); 1123 1149 $$ = $1->addName( $2 )->addAsmName( $3 ); 1124 1150 } 1125 | new_abstract_tuple identifier_or_type_name asm_name_opt1151 | cfa_abstract_tuple identifier_or_type_name asm_name_opt 1126 1152 { 1127 1153 typedefTable.setNextIdentifier( *$2 ); 1128 1154 $$ = $1->addName( $2 )->addAsmName( $3 ); 1129 1155 } 1130 | type_qualifier_list new_abstract_tuple identifier_or_type_name asm_name_opt1156 | type_qualifier_list cfa_abstract_tuple identifier_or_type_name asm_name_opt 1131 1157 { 1132 1158 typedefTable.setNextIdentifier( *$3 ); … … 1135 1161 ; 1136 1162 1137 new_function_declaration: // CFA1138 new_function_specifier1163 cfa_function_declaration: // CFA 1164 cfa_function_specifier 1139 1165 { 1140 1166 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1141 1167 $$ = $1; 1142 1168 } 1143 | type_qualifier_list new_function_specifier1169 | type_qualifier_list cfa_function_specifier 1144 1170 { 1145 1171 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1146 1172 $$ = $2->addQualifiers( $1 ); 1147 1173 } 1148 | declaration_qualifier_list new_function_specifier1174 | declaration_qualifier_list cfa_function_specifier 1149 1175 { 1150 1176 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1151 1177 $$ = $2->addQualifiers( $1 ); 1152 1178 } 1153 | declaration_qualifier_list type_qualifier_list new_function_specifier1179 | declaration_qualifier_list type_qualifier_list cfa_function_specifier 1154 1180 { 1155 1181 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1156 1182 $$ = $3->addQualifiers( $1 )->addQualifiers( $2 ); 1157 1183 } 1158 | new_function_declaration pop ',' push identifier_or_type_name1184 | cfa_function_declaration pop ',' push identifier_or_type_name 1159 1185 { 1160 1186 typedefTable.addToEnclosingScope( *$5, TypedefTable::ID ); … … 1163 1189 ; 1164 1190 1165 new_function_specifier: // CFA1166 // '[' ']' identifier_or_type_name '(' push new_parameter_type_list_opt pop ')' // S/R conflict1191 cfa_function_specifier: // CFA 1192 // '[' ']' identifier_or_type_name '(' push cfa_parameter_type_list_opt pop ')' // S/R conflict 1167 1193 // { 1168 1194 // $$ = DeclarationNode::newFunction( $3, DeclarationNode::newTuple( 0 ), $6, 0, true ); 1169 1195 // } 1170 // '[' ']' identifier '(' push new_parameter_type_list_opt pop ')'1196 // '[' ']' identifier '(' push cfa_parameter_type_list_opt pop ')' 1171 1197 // { 1172 1198 // typedefTable.setNextIdentifier( *$5 ); 1173 1199 // $$ = DeclarationNode::newFunction( $5, DeclarationNode::newTuple( 0 ), $8, 0, true ); 1174 1200 // } 1175 // | '[' ']' TYPEDEFname '(' push new_parameter_type_list_opt pop ')'1201 // | '[' ']' TYPEDEFname '(' push cfa_parameter_type_list_opt pop ')' 1176 1202 // { 1177 1203 // typedefTable.setNextIdentifier( *$5 ); … … 1181 1207 // identifier_or_type_name must be broken apart because of the sequence: 1182 1208 // 1183 // '[' ']' identifier_or_type_name '(' new_parameter_type_list_opt ')'1209 // '[' ']' identifier_or_type_name '(' cfa_parameter_type_list_opt ')' 1184 1210 // '[' ']' type_specifier 1185 1211 // 1186 1212 // type_specifier can resolve to just TYPEDEFname (e.g., typedef int T; int f( T );). Therefore this must be 1187 1213 // flattened to allow lookahead to the '(' without having to reduce identifier_or_type_name. 1188 new_abstract_tuple identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'1189 // To obtain LR(1 ), this rule must be factored out from function return type (see new_abstract_declarator).1214 cfa_abstract_tuple identifier_or_type_name '(' push cfa_parameter_type_list_opt pop ')' 1215 // To obtain LR(1 ), this rule must be factored out from function return type (see cfa_abstract_declarator). 1190 1216 { 1191 1217 $$ = DeclarationNode::newFunction( $2, $1, $5, 0, true ); 1192 1218 } 1193 | new_function_return identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'1219 | cfa_function_return identifier_or_type_name '(' push cfa_parameter_type_list_opt pop ')' 1194 1220 { 1195 1221 $$ = DeclarationNode::newFunction( $2, $1, $5, 0, true ); … … 1197 1223 ; 1198 1224 1199 new_function_return: // CFA1200 '[' push new_parameter_list pop ']'1225 cfa_function_return: // CFA 1226 '[' push cfa_parameter_list pop ']' 1201 1227 { $$ = DeclarationNode::newTuple( $3 ); } 1202 | '[' push new_parameter_list pop ',' push new_abstract_parameter_list pop ']'1203 // To obtain LR(1 ), the last new_abstract_parameter_list is added into this flattened rule to lookahead to the1228 | '[' push cfa_parameter_list pop ',' push cfa_abstract_parameter_list pop ']' 1229 // To obtain LR(1 ), the last cfa_abstract_parameter_list is added into this flattened rule to lookahead to the 1204 1230 // ']'. 1205 1231 { $$ = DeclarationNode::newTuple( $3->appendList( $7 ) ); } 1206 1232 ; 1207 1233 1208 new_typedef_declaration: // CFA1209 TYPEDEF new_variable_specifier1234 cfa_typedef_declaration: // CFA 1235 TYPEDEF cfa_variable_specifier 1210 1236 { 1211 1237 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1212 1238 $$ = $2->addTypedef(); 1213 1239 } 1214 | TYPEDEF new_function_specifier1240 | TYPEDEF cfa_function_specifier 1215 1241 { 1216 1242 typedefTable.addToEnclosingScope( TypedefTable::TD ); 1217 1243 $$ = $2->addTypedef(); 1218 1244 } 1219 | new_typedef_declaration pop ',' push no_attr_identifier1245 | cfa_typedef_declaration pop ',' push no_attr_identifier 1220 1246 { 1221 1247 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD ); … … 1260 1286 { 1261 1287 typedefTable.addToEnclosingScope( *$2, TypedefTable::TD ); 1262 $$ = DeclarationNode::newName( 0 ); // XXX1288 $$ = DeclarationNode::newName( 0 ); // unimplemented 1263 1289 } 1264 1290 | typedef_expression pop ',' push no_attr_identifier '=' assignment_expression 1265 1291 { 1266 1292 typedefTable.addToEnclosingScope( *$5, TypedefTable::TD ); 1267 $$ = DeclarationNode::newName( 0 ); // XXX 1268 } 1269 ; 1270 1271 old_declaration: 1272 declaring_list pop ';' 1293 $$ = DeclarationNode::newName( 0 ); // unimplemented 1294 } 1295 ; 1296 1297 //c_declaration: 1298 // declaring_list pop ';' 1299 // | typedef_declaration pop ';' 1300 // | typedef_expression pop ';' // GCC, naming expression type 1301 // | sue_declaration_specifier pop ';' 1302 // ; 1303 // 1304 //declaring_list: 1305 // // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static 1306 // // storage-class 1307 // declarator asm_name_opt initializer_opt 1308 // { 1309 // typedefTable.addToEnclosingScope( TypedefTable::ID ); 1310 // $$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 ); 1311 // } 1312 // | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt 1313 // { 1314 // typedefTable.addToEnclosingScope( TypedefTable::ID ); 1315 // $$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) ); 1316 // } 1317 // ; 1318 1319 c_declaration: 1320 declaration_specifier declaring_list pop ';' 1321 { 1322 $$ = distAttr( $1, $2 ); 1323 } 1273 1324 | typedef_declaration pop ';' 1274 1325 | typedef_expression pop ';' // GCC, naming expression type … … 1279 1330 // A semantic check is required to ensure asm_name only appears on declarations with implicit or explicit static 1280 1331 // storage-class 1281 declarat ion_specifier declarator asm_name_opt initializer_opt1332 declarator asm_name_opt initializer_opt 1282 1333 { 1283 1334 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1284 $$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4);1335 $$ = $1->addAsmName( $2 )->addInitializer( $3 ); 1285 1336 } 1286 1337 | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt 1287 1338 { 1288 1339 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1289 $$ = $1->appendList( $ 1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 )) );1340 $$ = $1->appendList( $4->addQualifiers( $3 )->addAsmName( $5 )->addInitializer( $6 ) ); 1290 1341 } 1291 1342 ; … … 1474 1525 1475 1526 sue_type_specifier: 1476 elaborated_type _name// struct, union, enum1477 | type_qualifier_list elaborated_type _name1527 elaborated_type // struct, union, enum 1528 | type_qualifier_list elaborated_type 1478 1529 { $$ = $2->addQualifiers( $1 ); } 1479 1530 | sue_type_specifier type_qualifier … … 1500 1551 ; 1501 1552 1502 elaborated_type _name:1503 aggregate_ name1504 | enum_ name1505 ; 1506 1507 aggregate_ name:1508 aggregate_key '{' field_declaration_list '}'1509 { $$ = DeclarationNode::newAggregate( $1, nullptr, nullptr, $ 3, true); }1510 | aggregate_key no_attr_identifier_or_type_name1511 { 1512 typedefTable.makeTypedef( *$ 2);1513 $$ = DeclarationNode::newAggregate( $1, $ 2, nullptr, nullptr, false);1514 } 1515 | aggregate_key no_attr_identifier_or_type_name1516 { typedefTable.makeTypedef( *$ 2); }1517 1518 { $$ = DeclarationNode::newAggregate( $1, $ 2, nullptr, $5, true); }1519 | aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA1520 { $$ = DeclarationNode::newAggregate( $1, nullptr, $ 3, $6, false); }1521 | aggregate_key typegen_name// CFA, S/R conflict1522 { $$ = $ 2; }1553 elaborated_type: 1554 aggregate_type 1555 | enum_type 1556 ; 1557 1558 aggregate_type: 1559 aggregate_key attribute_list_opt '{' field_declaration_list '}' 1560 { $$ = DeclarationNode::newAggregate( $1, nullptr, nullptr, $4, true )->addQualifiers( $2 ); } 1561 | aggregate_key attribute_list_opt no_attr_identifier_or_type_name 1562 { 1563 typedefTable.makeTypedef( *$3 ); 1564 $$ = DeclarationNode::newAggregate( $1, $3, nullptr, nullptr, false )->addQualifiers( $2 ); 1565 } 1566 | aggregate_key attribute_list_opt no_attr_identifier_or_type_name 1567 { typedefTable.makeTypedef( *$3 ); } 1568 '{' field_declaration_list '}' 1569 { $$ = DeclarationNode::newAggregate( $1, $3, nullptr, $6, true )->addQualifiers( $2 ); } 1570 | aggregate_key attribute_list_opt '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1571 { $$ = DeclarationNode::newAggregate( $1, nullptr, $4, $7, false )->addQualifiers( $2 ); } 1572 | aggregate_key attribute_list_opt typegen_name // CFA, S/R conflict 1573 { $$ = $3->addQualifiers( $2 ); } 1523 1574 ; 1524 1575 1525 1576 aggregate_key: 1526 STRUCT attribute_list_opt1577 STRUCT 1527 1578 { $$ = DeclarationNode::Struct; } 1528 | UNION attribute_list_opt1579 | UNION 1529 1580 { $$ = DeclarationNode::Union; } 1530 1581 ; … … 1538 1589 1539 1590 field_declaration: 1540 new_field_declaring_list ';' // CFA, new style field declaration 1541 | EXTENSION new_field_declaring_list ';' // GCC 1542 { $$ = $2->set_extension( true ); } 1543 | field_declaring_list ';' 1544 | EXTENSION field_declaring_list ';' // GCC 1545 { // mark all fields in list 1546 for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 1547 iter->set_extension( true ); 1591 cfa_field_declaring_list ';' // CFA, new style field declaration 1592 | EXTENSION cfa_field_declaring_list ';' // GCC 1593 { 1594 distExt( $2 ); // mark all fields in list 1548 1595 $$ = $2; 1549 1596 } 1550 ; 1551 1552 new_field_declaring_list: // CFA, new style field declaration 1553 new_abstract_declarator_tuple // CFA, no field name 1554 | new_abstract_declarator_tuple no_attr_identifier_or_type_name 1597 | type_specifier field_declaring_list ';' 1598 { 1599 $$ = distAttr( $1, $2 ); } 1600 | EXTENSION type_specifier field_declaring_list ';' // GCC 1601 { 1602 distExt( $3 ); // mark all fields in list 1603 $$ = distAttr( $2, $3 ); 1604 } 1605 ; 1606 1607 cfa_field_declaring_list: // CFA, new style field declaration 1608 cfa_abstract_declarator_tuple // CFA, no field name 1609 | cfa_abstract_declarator_tuple no_attr_identifier_or_type_name 1555 1610 { $$ = $1->addName( $2 ); } 1556 | new_field_declaring_list ',' no_attr_identifier_or_type_name1611 | cfa_field_declaring_list ',' no_attr_identifier_or_type_name 1557 1612 { $$ = $1->appendList( $1->cloneType( $3 ) ); } 1558 | new_field_declaring_list ',' // CFA, no field name1613 | cfa_field_declaring_list ',' // CFA, no field name 1559 1614 { $$ = $1->appendList( $1->cloneType( 0 ) ); } 1560 1615 ; 1561 1616 1562 1617 field_declaring_list: 1563 type_specifier field_declarator 1564 { $$ = $2->addType( $1 ); } 1618 field_declarator 1565 1619 | field_declaring_list ',' attribute_list_opt field_declarator 1566 { $$ = $1->appendList( $ 1->cloneBaseType( $4) ); }1620 { $$ = $1->appendList( $4->addQualifiers( $3 ) ); } 1567 1621 ; 1568 1622 … … 1593 1647 ; 1594 1648 1595 enum_key: 1596 ENUM attribute_list_opt 1597 ; 1598 1599 enum_name: 1600 enum_key '{' enumerator_list comma_opt '}' 1601 { $$ = DeclarationNode::newEnum( nullptr, $3 ); } 1602 | enum_key no_attr_identifier_or_type_name 1603 { 1604 typedefTable.makeTypedef( *$2 ); 1605 $$ = DeclarationNode::newEnum( $2, 0 ); 1606 } 1607 | enum_key no_attr_identifier_or_type_name 1608 { typedefTable.makeTypedef( *$2 ); } 1609 '{' enumerator_list comma_opt '}' 1610 { $$ = DeclarationNode::newEnum( $2, $5 ); } 1649 enum_type: 1650 ENUM attribute_list_opt '{' enumerator_list comma_opt '}' 1651 { $$ = DeclarationNode::newEnum( nullptr, $4 )->addQualifiers( $2 ); } 1652 | ENUM attribute_list_opt no_attr_identifier_or_type_name 1653 { 1654 typedefTable.makeTypedef( *$3 ); 1655 $$ = DeclarationNode::newEnum( $3, 0 )->addQualifiers( $2 ); 1656 } 1657 | ENUM attribute_list_opt no_attr_identifier_or_type_name 1658 { typedefTable.makeTypedef( *$3 ); } 1659 '{' enumerator_list comma_opt '}' 1660 { $$ = DeclarationNode::newEnum( $3, $6 )->addQualifiers( $2 ); } 1611 1661 ; 1612 1662 … … 1627 1677 // Minimum of one parameter after which ellipsis is allowed only at the end. 1628 1678 1629 new_parameter_type_list_opt: // CFA1679 cfa_parameter_type_list_opt: // CFA 1630 1680 // empty 1631 1681 { $$ = nullptr; } 1632 | new_parameter_type_list1633 ; 1634 1635 new_parameter_type_list: // CFA, abstract + real1636 new_abstract_parameter_list1637 | new_parameter_list1638 | new_parameter_list pop ',' push new_abstract_parameter_list1682 | cfa_parameter_type_list 1683 ; 1684 1685 cfa_parameter_type_list: // CFA, abstract + real 1686 cfa_abstract_parameter_list 1687 | cfa_parameter_list 1688 | cfa_parameter_list pop ',' push cfa_abstract_parameter_list 1639 1689 { $$ = $1->appendList( $5 ); } 1640 | new_abstract_parameter_list pop ',' push ELLIPSIS1690 | cfa_abstract_parameter_list pop ',' push ELLIPSIS 1641 1691 { $$ = $1->addVarArgs(); } 1642 | new_parameter_list pop ',' push ELLIPSIS1692 | cfa_parameter_list pop ',' push ELLIPSIS 1643 1693 { $$ = $1->addVarArgs(); } 1644 1694 ; 1645 1695 1646 new_parameter_list: // CFA1647 // To obtain LR(1) between new_parameter_list and new_abstract_tuple, the last new_abstract_parameter_list is1648 // factored out from new_parameter_list, flattening the rules to get lookahead to the ']'.1649 new_parameter_declaration1650 | new_abstract_parameter_list pop ',' push new_parameter_declaration1696 cfa_parameter_list: // CFA 1697 // To obtain LR(1) between cfa_parameter_list and cfa_abstract_tuple, the last cfa_abstract_parameter_list is 1698 // factored out from cfa_parameter_list, flattening the rules to get lookahead to the ']'. 1699 cfa_parameter_declaration 1700 | cfa_abstract_parameter_list pop ',' push cfa_parameter_declaration 1651 1701 { $$ = $1->appendList( $5 ); } 1652 | new_parameter_list pop ',' push new_parameter_declaration1702 | cfa_parameter_list pop ',' push cfa_parameter_declaration 1653 1703 { $$ = $1->appendList( $5 ); } 1654 | new_parameter_list pop ',' push new_abstract_parameter_list pop ',' push new_parameter_declaration1704 | cfa_parameter_list pop ',' push cfa_abstract_parameter_list pop ',' push cfa_parameter_declaration 1655 1705 { $$ = $1->appendList( $5 )->appendList( $9 ); } 1656 1706 ; 1657 1707 1658 new_abstract_parameter_list: // CFA, new & old style abstract1659 new_abstract_parameter_declaration1660 | new_abstract_parameter_list pop ',' push new_abstract_parameter_declaration1708 cfa_abstract_parameter_list: // CFA, new & old style abstract 1709 cfa_abstract_parameter_declaration 1710 | cfa_abstract_parameter_list pop ',' push cfa_abstract_parameter_declaration 1661 1711 { $$ = $1->appendList( $5 ); } 1662 1712 ; … … 1686 1736 // for typedef name by using type_parameter_redeclarator instead of typedef_redeclarator, and function prototypes. 1687 1737 1688 new_parameter_declaration: // CFA, new & old style parameter declaration1738 cfa_parameter_declaration: // CFA, new & old style parameter declaration 1689 1739 parameter_declaration 1690 | new_identifier_parameter_declarator_no_tuple identifier_or_type_name assignment_opt1740 | cfa_identifier_parameter_declarator_no_tuple identifier_or_type_name assignment_opt 1691 1741 { $$ = $1->addName( $2 ); } 1692 | new_abstract_tuple identifier_or_type_name assignment_opt1693 // To obtain LR(1), these rules must be duplicated here (see new_abstract_declarator).1742 | cfa_abstract_tuple identifier_or_type_name assignment_opt 1743 // To obtain LR(1), these rules must be duplicated here (see cfa_abstract_declarator). 1694 1744 { $$ = $1->addName( $2 ); } 1695 | type_qualifier_list new_abstract_tuple identifier_or_type_name assignment_opt1745 | type_qualifier_list cfa_abstract_tuple identifier_or_type_name assignment_opt 1696 1746 { $$ = $2->addName( $3 )->addQualifiers( $1 ); } 1697 | new_function_specifier1698 ; 1699 1700 new_abstract_parameter_declaration: // CFA, new & old style parameter declaration1747 | cfa_function_specifier 1748 ; 1749 1750 cfa_abstract_parameter_declaration: // CFA, new & old style parameter declaration 1701 1751 abstract_parameter_declaration 1702 | new_identifier_parameter_declarator_no_tuple1703 | new_abstract_tuple1704 // To obtain LR(1), these rules must be duplicated here (see new_abstract_declarator).1705 | type_qualifier_list new_abstract_tuple1752 | cfa_identifier_parameter_declarator_no_tuple 1753 | cfa_abstract_tuple 1754 // To obtain LR(1), these rules must be duplicated here (see cfa_abstract_declarator). 1755 | type_qualifier_list cfa_abstract_tuple 1706 1756 { $$ = $2->addQualifiers( $1 ); } 1707 | new_abstract_function1757 | cfa_abstract_function 1708 1758 ; 1709 1759 … … 1757 1807 1758 1808 type_name_no_function: // sizeof, alignof, cast (constructor) 1759 new_abstract_declarator_tuple // CFA 1760 | type_specifier 1761 | type_specifier variable_abstract_declarator 1762 { $$ = $2->addType( $1 ); } 1763 ; 1764 1765 type_name: // typeof, assertion 1766 new_abstract_declarator_tuple // CFA 1767 | new_abstract_function // CFA 1809 cfa_abstract_declarator_tuple // CFA 1768 1810 | type_specifier 1769 1811 | type_specifier abstract_declarator 1770 1812 { $$ = $2->addType( $1 ); } 1813 ; 1814 1815 type_name: // typeof, assertion 1816 type_name_no_function 1817 | cfa_abstract_function // CFA 1771 1818 ; 1772 1819 … … 1982 2029 1983 2030 trait_declaration: // CFA 1984 new_trait_declaring_list pop ';'2031 cfa_trait_declaring_list pop ';' 1985 2032 | trait_declaring_list pop ';' 1986 2033 ; 1987 2034 1988 new_trait_declaring_list: // CFA1989 new_variable_specifier2035 cfa_trait_declaring_list: // CFA 2036 cfa_variable_specifier 1990 2037 { 1991 2038 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 1992 2039 $$ = $1; 1993 2040 } 1994 | new_function_specifier2041 | cfa_function_specifier 1995 2042 { 1996 2043 typedefTable.addToEnclosingScope2( TypedefTable::ID ); 1997 2044 $$ = $1; 1998 2045 } 1999 | new_trait_declaring_list pop ',' push identifier_or_type_name2046 | cfa_trait_declaring_list pop ',' push identifier_or_type_name 2000 2047 { 2001 2048 typedefTable.addToEnclosingScope2( *$5, TypedefTable::ID ); … … 2043 2090 | asm_statement // GCC, global assembler statement 2044 2091 {} 2045 | EXTERN STRINGliteral 2092 | EXTERN STRINGliteral // C++-style linkage specifier 2046 2093 { 2047 2094 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" 2048 2095 linkage = LinkageSpec::linkageCheck( $2 ); 2049 2096 } 2050 '{' external_definition_list_opt '}' // C++-style linkage specifier2097 '{' external_definition_list_opt '}' 2051 2098 { 2052 2099 linkage = linkageStack.top(); … … 2054 2101 $$ = $5; 2055 2102 } 2056 | EXTENSION external_definition 2057 { // mark all fields in list 2058 for ( DeclarationNode *iter = $2; iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) 2059 iter->set_extension( true ); 2103 | EXTENSION external_definition // GCC, multiple __extension__ allowed, meaning unknown 2104 { 2105 distExt( $2 ); // mark all fields in list 2060 2106 $$ = $2; 2061 2107 } … … 2075 2121 $$ = $1->addFunctionBody( $2 ); 2076 2122 } 2077 | old_function_declarator push old_declaration_list_opt compound_statement2123 | KR_function_declarator push KR_declaration_list_opt compound_statement 2078 2124 { 2079 2125 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 2084 2130 2085 2131 function_definition: 2086 new_function_declaration compound_statement // CFA2132 cfa_function_declaration compound_statement // CFA 2087 2133 { 2088 2134 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 2116 2162 2117 2163 // Old-style K&R function definition, OBSOLESCENT (see 4) 2118 | declaration_specifier old_function_declarator push old_declaration_list_opt compound_statement2164 | declaration_specifier KR_function_declarator push KR_declaration_list_opt compound_statement 2119 2165 { 2120 2166 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 2122 2168 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $5 )->addType( $1 ); 2123 2169 } 2124 | type_qualifier_list old_function_declarator push old_declaration_list_opt compound_statement2170 | type_qualifier_list KR_function_declarator push KR_declaration_list_opt compound_statement 2125 2171 { 2126 2172 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 2130 2176 2131 2177 // Old-style K&R function definition with "implicit int" type_specifier, OBSOLESCENT (see 4) 2132 | declaration_qualifier_list old_function_declarator push old_declaration_list_opt compound_statement2178 | declaration_qualifier_list KR_function_declarator push KR_declaration_list_opt compound_statement 2133 2179 { 2134 2180 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 2136 2182 $$ = $2->addOldDeclList( $4 )->addFunctionBody( $5 )->addQualifiers( $1 ); 2137 2183 } 2138 | declaration_qualifier_list type_qualifier_list old_function_declarator push old_declaration_list_opt compound_statement2184 | declaration_qualifier_list type_qualifier_list KR_function_declarator push KR_declaration_list_opt compound_statement 2139 2185 { 2140 2186 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 2159 2205 { $$ = nullptr; } 2160 2206 | ASM '(' string_literal ')' attribute_list_opt 2161 { $$ = $3; } 2207 { 2208 DeclarationNode * name = new DeclarationNode(); 2209 name->asmName = $3; 2210 $$ = name->addQualifiers( $5 ); 2211 } 2162 2212 ; 2163 2213 … … 2182 2232 attribute_name 2183 2233 | attribute_name_list ',' attribute_name 2184 { $$ = $ 1->addQualifiers( $3 ); }2234 { $$ = $3->addQualifiers( $1 ); } 2185 2235 ; 2186 2236 … … 2257 2307 | ptrref_operator type_qualifier_list variable_declarator 2258 2308 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2259 | '(' variable_ptr ')' 2260 { $$ = $2 ; }2309 | '(' variable_ptr ')' attribute_list_opt 2310 { $$ = $2->addQualifiers( $4 ); } // redundant parenthesis 2261 2311 ; 2262 2312 … … 2318 2368 ; 2319 2369 2320 // This pattern parses an old-style K&R function declarator (OBSOLESCENT, see 4) that is not redefining a typedef name 2321 // (see function_declarator for additional comments). The pattern precludes returning arrays and functions versus 2322 // pointers to arrays and functions. 2323 2324 old_function_declarator: 2325 old_function_no_ptr 2326 | old_function_ptr 2327 | old_function_array 2328 ; 2329 2330 old_function_no_ptr: 2370 // This pattern parses an old-style K&R function declarator (OBSOLESCENT, see 4) 2371 // 2372 // f( a, b, c ) int a, *b, c[]; {} 2373 // 2374 // that is not redefining a typedef name (see function_declarator for additional comments). The pattern precludes 2375 // returning arrays and functions versus pointers to arrays and functions. 2376 2377 KR_function_declarator: 2378 KR_function_no_ptr 2379 | KR_function_ptr 2380 | KR_function_array 2381 ; 2382 2383 KR_function_no_ptr: 2331 2384 paren_identifier '(' identifier_list ')' // function_declarator handles empty parameter 2332 2385 { $$ = $1->addIdList( $3 ); } 2333 | '(' old_function_ptr ')' '(' identifier_list')'2334 { $$ = $2->add IdList( $5); }2335 | '(' old_function_no_ptr ')' // redundant parenthesis2386 | '(' KR_function_ptr ')' '(' push parameter_type_list_opt pop ')' 2387 { $$ = $2->addParamList( $6 ); } 2388 | '(' KR_function_no_ptr ')' // redundant parenthesis 2336 2389 { $$ = $2; } 2337 2390 ; 2338 2391 2339 old_function_ptr:2340 ptrref_operator old_function_declarator2392 KR_function_ptr: 2393 ptrref_operator KR_function_declarator 2341 2394 { $$ = $2->addPointer( DeclarationNode::newPointer( 0 ) ); } 2342 | ptrref_operator type_qualifier_list old_function_declarator2395 | ptrref_operator type_qualifier_list KR_function_declarator 2343 2396 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2344 | '(' old_function_ptr ')'2397 | '(' KR_function_ptr ')' 2345 2398 { $$ = $2; } 2346 2399 ; 2347 2400 2348 old_function_array:2349 '(' old_function_ptr ')' array_dimension2401 KR_function_array: 2402 '(' KR_function_ptr ')' array_dimension 2350 2403 { $$ = $2->addArray( $4 ); } 2351 | '(' old_function_array ')' multi_array_dimension // redundant parenthesis2404 | '(' KR_function_array ')' multi_array_dimension // redundant parenthesis 2352 2405 { $$ = $2->addArray( $4 ); } 2353 | '(' old_function_array ')'// redundant parenthesis2406 | '(' KR_function_array ')' // redundant parenthesis 2354 2407 { $$ = $2; } 2355 2408 ; … … 2386 2439 | ptrref_operator type_qualifier_list variable_type_redeclarator 2387 2440 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2388 | '(' type_ptr ')' 2389 { $$ = $2 ; }2441 | '(' type_ptr ')' attribute_list_opt 2442 { $$ = $2->addQualifiers( $4 ); } 2390 2443 ; 2391 2444 … … 2410 2463 ; 2411 2464 2412 // This pattern parses a declaration for a parameter variable o r function prototype that is not redefining a typedef2413 // name and allows the C99 array options, which can only appear in a parameter list. The pattern precludes declaring an2414 // array of functions versus a pointer to an array of functions, and returning arrays and functions versus pointers to2415 // arrays and functions.2465 // This pattern parses a declaration for a parameter variable of a function prototype or actual that is not redefining a 2466 // typedef name and allows the C99 array options, which can only appear in a parameter list. The pattern precludes 2467 // declaring an array of functions versus a pointer to an array of functions, and returning arrays and functions versus 2468 // pointers to arrays and functions. 2416 2469 2417 2470 identifier_parameter_declarator: … … 2430 2483 | ptrref_operator type_qualifier_list identifier_parameter_declarator 2431 2484 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2432 | '(' identifier_parameter_ptr ')' 2433 { $$ = $2 ; }2485 | '(' identifier_parameter_ptr ')' attribute_list_opt 2486 { $$ = $2->addQualifiers( $4 ); } 2434 2487 ; 2435 2488 … … 2460 2513 // int f( int foo ); // redefine typedef name in new scope 2461 2514 // 2462 // and allows the C99 array options, which can only appear in a parameter list. In addition, the pattern handles the 2463 // special meaning of parenthesis around a typedef name: 2464 // 2465 // ISO/IEC 9899:1999 Section 6.7.5.3(11) : "In a parameter declaration, a single typedef name in 2466 // parentheses is taken to be an abstract declarator that specifies a function with a single parameter, 2467 // not as redundant parentheses around the identifier." 2468 // 2469 // For example: 2470 // 2471 // typedef float T; 2472 // int f( int ( T [5] ) ); // see abstract_parameter_declarator 2473 // int g( int ( T ( int ) ) ); // see abstract_parameter_declarator 2474 // int f( int f1( T a[5] ) ); // see identifier_parameter_declarator 2475 // int g( int g1( T g2( int p ) ) ); // see identifier_parameter_declarator 2476 // 2477 // In essence, a '(' immediately to the left of typedef name, T, is interpreted as starting a parameter type list, and 2478 // not as redundant parentheses around a redeclaration of T. Finally, the pattern also precludes declaring an array of 2479 // functions versus a pointer to an array of functions, and returning arrays and functions versus pointers to arrays and 2480 // functions. 2515 // and allows the C99 array options, which can only appear in a parameter list. 2481 2516 2482 2517 type_parameter_redeclarator: … … 2508 2543 | ptrref_operator type_qualifier_list type_parameter_redeclarator 2509 2544 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2510 | '(' type_parameter_ptr ')' 2511 { $$ = $2 ; }2545 | '(' type_parameter_ptr ')' attribute_list_opt 2546 { $$ = $2->addQualifiers( $4 ); } 2512 2547 ; 2513 2548 … … 2530 2565 // 2531 2566 // sizeof( int ); 2567 // sizeof( int * ); 2532 2568 // sizeof( int [10] ); 2569 // sizeof( int (*)() ); 2570 // sizeof( int () ); 2533 2571 // 2534 2572 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays … … 2552 2590 | ptrref_operator type_qualifier_list abstract_declarator 2553 2591 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2554 | '(' abstract_ptr ')' 2555 { $$ = $2 ; }2592 | '(' abstract_ptr ')' attribute_list_opt 2593 { $$ = $2->addQualifiers( $4 ); } 2556 2594 ; 2557 2595 … … 2598 2636 // identifier to which the type applies, e.g.: 2599 2637 // 2600 // int f( int ); // abstract variable parameter; no parameter name specified 2638 // int f( int ); // not handled here 2639 // int f( int * ); // abstract function-prototype parameter; no parameter name specified 2640 // int f( int (*)() ); // abstract function-prototype parameter; no parameter name specified 2601 2641 // int f( int (int) ); // abstract function-prototype parameter; no parameter name specified 2602 2642 // 2603 2643 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2604 // and functions versus pointers to arrays and functions. 2644 // and functions versus pointers to arrays and functions. In addition, the pattern handles the 2645 // special meaning of parenthesis around a typedef name: 2646 // 2647 // ISO/IEC 9899:1999 Section 6.7.5.3(11) : "In a parameter declaration, a single typedef name in 2648 // parentheses is taken to be an abstract declarator that specifies a function with a single parameter, 2649 // not as redundant parentheses around the identifier." 2650 // 2651 // For example: 2652 // 2653 // typedef float T; 2654 // int f( int ( T [5] ) ); // see abstract_parameter_declarator 2655 // int g( int ( T ( int ) ) ); // see abstract_parameter_declarator 2656 // int f( int f1( T a[5] ) ); // see identifier_parameter_declarator 2657 // int g( int g1( T g2( int p ) ) ); // see identifier_parameter_declarator 2658 // 2659 // In essence, a '(' immediately to the left of typedef name, T, is interpreted as starting a parameter type list, and 2660 // not as redundant parentheses around a redeclaration of T. Finally, the pattern also precludes declaring an array of 2661 // functions versus a pointer to an array of functions, and returning arrays and functions versus pointers to arrays and 2662 // functions. 2605 2663 2606 2664 abstract_parameter_declarator: … … 2614 2672 abstract_parameter_ptr: 2615 2673 ptrref_operator 2616 { $$ = DeclarationNode::newPointer( 0); }2674 { $$ = DeclarationNode::newPointer( nullptr ); } 2617 2675 | ptrref_operator type_qualifier_list 2618 2676 { $$ = DeclarationNode::newPointer( $2 ); } 2619 2677 | ptrref_operator abstract_parameter_declarator 2620 { $$ = $2->addPointer( DeclarationNode::newPointer( 0) ); }2678 { $$ = $2->addPointer( DeclarationNode::newPointer( nullptr ) ); } 2621 2679 | ptrref_operator type_qualifier_list abstract_parameter_declarator 2622 2680 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2623 | '(' abstract_parameter_ptr ')' 2624 { $$ = $2 ; }2681 | '(' abstract_parameter_ptr ')' attribute_list_opt 2682 { $$ = $2->addQualifiers( $4 ); } 2625 2683 ; 2626 2684 … … 2674 2732 ; 2675 2733 2676 // This pattern parses a declaration of an abstract variable, i.e., there is no identifier to which the type applies, 2677 // e.g.: 2678 // 2679 // sizeof( int ); // abstract variable; no identifier name specified 2680 // 2681 // The pattern precludes declaring an array of functions versus a pointer to an array of functions, and returning arrays 2682 // and functions versus pointers to arrays and functions. 2734 // This pattern parses a declaration of an abstract variable, but does not allow "int ()" for a function pointer. 2735 // 2736 // struct S { 2737 // int; 2738 // int *; 2739 // int [10]; 2740 // int (*)(); 2741 // }; 2683 2742 2684 2743 variable_abstract_declarator: … … 2699 2758 | ptrref_operator type_qualifier_list variable_abstract_declarator 2700 2759 { $$ = $3->addPointer( DeclarationNode::newPointer( $2 ) ); } 2701 | '(' variable_abstract_ptr ')' 2702 { $$ = $2 ; }2760 | '(' variable_abstract_ptr ')' attribute_list_opt 2761 { $$ = $2->addQualifiers( $4 ); } 2703 2762 ; 2704 2763 … … 2723 2782 // identifier or typedef name and allows the C99 array options, which can only appear in a parameter list. 2724 2783 2725 new_identifier_parameter_declarator_tuple: // CFA2726 new_identifier_parameter_declarator_no_tuple2727 | new_abstract_tuple2728 | type_qualifier_list new_abstract_tuple2784 cfa_identifier_parameter_declarator_tuple: // CFA 2785 cfa_identifier_parameter_declarator_no_tuple 2786 | cfa_abstract_tuple 2787 | type_qualifier_list cfa_abstract_tuple 2729 2788 { $$ = $2->addQualifiers( $1 ); } 2730 2789 ; 2731 2790 2732 new_identifier_parameter_declarator_no_tuple: // CFA2733 new_identifier_parameter_ptr2734 | new_identifier_parameter_array2735 ; 2736 2737 new_identifier_parameter_ptr: // CFA2791 cfa_identifier_parameter_declarator_no_tuple: // CFA 2792 cfa_identifier_parameter_ptr 2793 | cfa_identifier_parameter_array 2794 ; 2795 2796 cfa_identifier_parameter_ptr: // CFA 2738 2797 ptrref_operator type_specifier 2739 2798 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2740 2799 | type_qualifier_list ptrref_operator type_specifier 2741 2800 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2742 | ptrref_operator new_abstract_function2801 | ptrref_operator cfa_abstract_function 2743 2802 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2744 | type_qualifier_list ptrref_operator new_abstract_function2803 | type_qualifier_list ptrref_operator cfa_abstract_function 2745 2804 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2746 | ptrref_operator new_identifier_parameter_declarator_tuple2805 | ptrref_operator cfa_identifier_parameter_declarator_tuple 2747 2806 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2748 | type_qualifier_list ptrref_operator new_identifier_parameter_declarator_tuple2807 | type_qualifier_list ptrref_operator cfa_identifier_parameter_declarator_tuple 2749 2808 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2750 2809 ; 2751 2810 2752 new_identifier_parameter_array: // CFA2811 cfa_identifier_parameter_array: // CFA 2753 2812 // Only the first dimension can be empty or have qualifiers. Empty dimension must be factored out due to 2754 2813 // shift/reduce conflict with new-style empty (void) function return type. 2755 2814 '[' ']' type_specifier 2756 2815 { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2757 | new_array_parameter_1st_dimension type_specifier2816 | cfa_array_parameter_1st_dimension type_specifier 2758 2817 { $$ = $2->addNewArray( $1 ); } 2759 2818 | '[' ']' multi_array_dimension type_specifier 2760 2819 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2761 | new_array_parameter_1st_dimension multi_array_dimension type_specifier2820 | cfa_array_parameter_1st_dimension multi_array_dimension type_specifier 2762 2821 { $$ = $3->addNewArray( $2 )->addNewArray( $1 ); } 2763 2822 | multi_array_dimension type_specifier 2764 2823 { $$ = $2->addNewArray( $1 ); } 2765 2824 2766 | '[' ']' new_identifier_parameter_ptr2825 | '[' ']' cfa_identifier_parameter_ptr 2767 2826 { $$ = $3->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2768 | new_array_parameter_1st_dimension new_identifier_parameter_ptr2827 | cfa_array_parameter_1st_dimension cfa_identifier_parameter_ptr 2769 2828 { $$ = $2->addNewArray( $1 ); } 2770 | '[' ']' multi_array_dimension new_identifier_parameter_ptr2829 | '[' ']' multi_array_dimension cfa_identifier_parameter_ptr 2771 2830 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 2772 | new_array_parameter_1st_dimension multi_array_dimension new_identifier_parameter_ptr2831 | cfa_array_parameter_1st_dimension multi_array_dimension cfa_identifier_parameter_ptr 2773 2832 { $$ = $3->addNewArray( $2 )->addNewArray( $1 ); } 2774 | multi_array_dimension new_identifier_parameter_ptr2833 | multi_array_dimension cfa_identifier_parameter_ptr 2775 2834 { $$ = $2->addNewArray( $1 ); } 2776 2835 ; 2777 2836 2778 new_array_parameter_1st_dimension:2837 cfa_array_parameter_1st_dimension: 2779 2838 '[' push type_qualifier_list '*' pop ']' // remaining C99 2780 2839 { $$ = DeclarationNode::newVarArray( $3 ); } … … 2798 2857 // These rules need LR(3): 2799 2858 // 2800 // new_abstract_tuple identifier_or_type_name2801 // '[' new_parameter_list ']' identifier_or_type_name '(' new_parameter_type_list_opt ')'2859 // cfa_abstract_tuple identifier_or_type_name 2860 // '[' cfa_parameter_list ']' identifier_or_type_name '(' cfa_parameter_type_list_opt ')' 2802 2861 // 2803 2862 // since a function return type can be syntactically identical to a tuple type: … … 2807 2866 // 2808 2867 // Therefore, it is necessary to look at the token after identifier_or_type_name to know when to reduce 2809 // new_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the necessary2810 // lookahead. To accomplish this, new_abstract_declarator has an entry point without tuple, and tuple declarations are2811 // duplicated when appearing with new_function_specifier.2812 2813 new_abstract_declarator_tuple: // CFA2814 new_abstract_tuple2815 | type_qualifier_list new_abstract_tuple2868 // cfa_abstract_tuple. To make this LR(1), several rules have to be flattened (lengthened) to allow the necessary 2869 // lookahead. To accomplish this, cfa_abstract_declarator has an entry point without tuple, and tuple declarations are 2870 // duplicated when appearing with cfa_function_specifier. 2871 2872 cfa_abstract_declarator_tuple: // CFA 2873 cfa_abstract_tuple 2874 | type_qualifier_list cfa_abstract_tuple 2816 2875 { $$ = $2->addQualifiers( $1 ); } 2817 | new_abstract_declarator_no_tuple2818 ; 2819 2820 new_abstract_declarator_no_tuple: // CFA2821 new_abstract_ptr2822 | new_abstract_array2823 ; 2824 2825 new_abstract_ptr: // CFA2876 | cfa_abstract_declarator_no_tuple 2877 ; 2878 2879 cfa_abstract_declarator_no_tuple: // CFA 2880 cfa_abstract_ptr 2881 | cfa_abstract_array 2882 ; 2883 2884 cfa_abstract_ptr: // CFA 2826 2885 ptrref_operator type_specifier 2827 2886 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2828 2887 | type_qualifier_list ptrref_operator type_specifier 2829 2888 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2830 | ptrref_operator new_abstract_function2889 | ptrref_operator cfa_abstract_function 2831 2890 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2832 | type_qualifier_list ptrref_operator new_abstract_function2891 | type_qualifier_list ptrref_operator cfa_abstract_function 2833 2892 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2834 | ptrref_operator new_abstract_declarator_tuple2893 | ptrref_operator cfa_abstract_declarator_tuple 2835 2894 { $$ = $2->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 2836 | type_qualifier_list ptrref_operator new_abstract_declarator_tuple2895 | type_qualifier_list ptrref_operator cfa_abstract_declarator_tuple 2837 2896 { $$ = $3->addNewPointer( DeclarationNode::newPointer( $1 ) ); } 2838 2897 ; 2839 2898 2840 new_abstract_array: // CFA2899 cfa_abstract_array: // CFA 2841 2900 // Only the first dimension can be empty. Empty dimension must be factored out due to shift/reduce conflict with 2842 2901 // empty (void) function return type. … … 2847 2906 | multi_array_dimension type_specifier 2848 2907 { $$ = $2->addNewArray( $1 ); } 2849 | '[' ']' new_abstract_ptr2908 | '[' ']' cfa_abstract_ptr 2850 2909 { $$ = $3->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 2851 | '[' ']' multi_array_dimension new_abstract_ptr2910 | '[' ']' multi_array_dimension cfa_abstract_ptr 2852 2911 { $$ = $4->addNewArray( $3 )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 2853 | multi_array_dimension new_abstract_ptr2912 | multi_array_dimension cfa_abstract_ptr 2854 2913 { $$ = $2->addNewArray( $1 ); } 2855 2914 ; 2856 2915 2857 new_abstract_tuple: // CFA2858 '[' push new_abstract_parameter_list pop ']'2916 cfa_abstract_tuple: // CFA 2917 '[' push cfa_abstract_parameter_list pop ']' 2859 2918 { $$ = DeclarationNode::newTuple( $3 ); } 2860 2919 ; 2861 2920 2862 new_abstract_function: // CFA2863 // '[' ']' '(' new_parameter_type_list_opt ')'2921 cfa_abstract_function: // CFA 2922 // '[' ']' '(' cfa_parameter_type_list_opt ')' 2864 2923 // { $$ = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), $4, nullptr ); } 2865 new_abstract_tuple '(' push new_parameter_type_list_opt pop ')'2924 cfa_abstract_tuple '(' push cfa_parameter_type_list_opt pop ')' 2866 2925 { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr ); } 2867 | new_function_return '(' push new_parameter_type_list_opt pop ')'2926 | cfa_function_return '(' push cfa_parameter_type_list_opt pop ')' 2868 2927 { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr ); } 2869 2928 ; -
src/ResolvExpr/Resolver.cc
rdbe8f244 rfe26fbf 449 449 TypeSubstitution sub = makeGenericSubstitutuion( sit ); 450 450 StructDecl * st = sit->get_baseStruct(); 451 if(st->get_members().empty()) return; 451 452 // want to resolve each initializer to the members of the struct, 452 453 // but if there are more initializers than members we should stop … … 458 459 TypeSubstitution sub = makeGenericSubstitutuion( uit ); 459 460 UnionDecl * un = uit->get_baseUnion(); 461 if(un->get_members().empty()) return; 460 462 // only resolve to the first member of a union 461 463 resolveSingleAggrInit( *un->get_members().begin(), init, initEnd, sub ); -
src/SymTab/AddVisit.h
rdbe8f244 rfe26fbf 10 10 // Created On : Sun May 17 16:14:32 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 4 11:22:01 201613 // Update Count : 912 // Last Modified On : Thu Feb 2 16:36:02 2017 13 // Update Count : 14 14 14 // 15 15 … … 18 18 19 19 template< typename Visitor > 20 inline void addVisitStatementList( std::list< Statement* > &statements, Visitor &visitor ) { 21 for ( std::list< Statement* >::iterator i = statements.begin(); i != statements.end(); ++i ) { 22 addDecls( visitor.get_declsToAdd(), statements, i ); 23 (*i)->accept( visitor ); 24 } // for 25 addDecls( visitor.get_declsToAdd(), statements, statements.end() ); 20 inline void addVisitStatementList( std::list< Statement* > &stmts, Visitor &visitor ) { 21 for ( std::list< Statement* >::iterator stmt = stmts.begin(); ; ++stmt ) { 22 // add any new declarations after the previous statement 23 for ( std::list< Declaration* >::iterator decl = visitor.declsToAddAfter.begin(); decl != visitor.declsToAddAfter.end(); ++decl ) { 24 DeclStmt *declStmt = new DeclStmt( noLabels, *decl ); 25 stmts.insert( stmt, declStmt ); 26 } 27 visitor.declsToAddAfter.clear(); 28 29 if ( stmt == stmts.end() ) break; 30 31 // run mutator on statement 32 maybeAccept( *stmt, visitor ); 33 34 // add any new declarations before the statement 35 for ( std::list< Declaration* >::iterator decl = visitor.declsToAdd.begin(); decl != visitor.declsToAdd.end(); ++decl ) { 36 DeclStmt *declStmt = new DeclStmt( noLabels, *decl ); 37 stmts.insert( stmt, declStmt ); 38 } 39 visitor.declsToAdd.clear(); 40 } 26 41 } 27 42 … … 38 53 39 54 template< typename Visitor > 40 void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) { 41 std::list< Declaration * >::iterator i = translationUnit.begin(); 42 while ( i != translationUnit.end() ) { 43 (*i)->accept( visitor ); 44 std::list< Declaration * >::iterator next = i; 45 next++; 46 if ( ! visitor.get_declsToAdd().empty() ) { 47 translationUnit.splice( addBefore ? i : next, visitor.get_declsToAdd() ); 48 } // if 49 i = next; 50 } // while 55 void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor ) { 56 for ( std::list< Declaration* >::iterator decl = translationUnit.begin(); ; ++decl ) { 57 // splice in new declarations after previous decl 58 translationUnit.splice( decl, visitor.declsToAddAfter ); 59 60 if ( decl == translationUnit.end() ) break; 61 62 // run mutator on declaration 63 maybeAccept( *decl, visitor ); 64 65 // splice in new declarations before current decl 66 translationUnit.splice( decl, visitor.declsToAdd ); 67 } 51 68 } 52 69 -
src/SymTab/Autogen.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Thu Mar 03 15:45:56 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jul 12 17:47:17 201613 // Update Count : 212 // Last Modified On : Thu Feb 2 18:04:40 2017 13 // Update Count : 11 14 14 // 15 15 … … 43 43 44 44 class AutogenerateRoutines final : public Visitor { 45 template< typename Visitor > 46 friend void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor ); 47 template< typename Visitor > 48 friend void addVisitStatementList( std::list< Statement* > &stmts, Visitor &visitor ); 45 49 public: 46 50 std::list< Declaration * > &get_declsToAdd() { return declsToAdd; } … … 67 71 template< typename StmtClass > void visitStatement( StmtClass *stmt ); 68 72 69 std::list< Declaration * > declsToAdd ;73 std::list< Declaration * > declsToAdd, declsToAddAfter; 70 74 std::set< std::string > structsDone; 71 75 unsigned int functionNesting = 0; // current level of nested functions … … 98 102 void autogenerateRoutines( std::list< Declaration * > &translationUnit ) { 99 103 AutogenerateRoutines generator; 100 acceptAndAdd( translationUnit, generator , false);104 acceptAndAdd( translationUnit, generator ); 101 105 102 106 // needs to be done separately because AutogenerateRoutines skips types that appear as function arguments, etc. … … 567 571 EnumInstType *enumInst = new EnumInstType( Type::Qualifiers(), enumDecl->get_name() ); 568 572 // enumInst->set_baseEnum( enumDecl ); 569 // declsToAdd.push_back( 570 makeEnumFunctions( enumDecl, enumInst, functionNesting, declsToAdd ); 573 makeEnumFunctions( enumDecl, enumInst, functionNesting, declsToAddAfter ); 571 574 } 572 575 } … … 581 584 } 582 585 structInst.set_baseStruct( structDecl ); 583 makeStructFunctions( structDecl, &structInst, functionNesting, declsToAdd , data );586 makeStructFunctions( structDecl, &structInst, functionNesting, declsToAddAfter, data ); 584 587 structsDone.insert( structDecl->get_name() ); 585 588 } // if … … 593 596 unionInst.get_parameters().push_back( new TypeExpr( new TypeInstType( Type::Qualifiers(), typeDecl->get_name(), typeDecl ) ) ); 594 597 } 595 makeUnionFunctions( unionDecl, &unionInst, functionNesting, declsToAdd );598 makeUnionFunctions( unionDecl, &unionInst, functionNesting, declsToAddAfter ); 596 599 } // if 597 600 } … … 618 621 FunctionDecl *func = genFunc( "?=?", type, functionNesting ); 619 622 func->get_statements()->get_kids() = stmts; 620 declsToAdd .push_back( func );623 declsToAddAfter.push_back( func ); 621 624 } 622 625 … … 763 766 } 764 767 } // SymTab 768 769 // Local Variables: // 770 // tab-width: 4 // 771 // mode: c++ // 772 // compile-command: "make install" // 773 // End: // -
src/SymTab/Autogen.h
rdbe8f244 rfe26fbf 9 9 // Author : Rob Schluntz 10 10 // Created On : Sun May 17 21:53:34 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Tue May 19 16:49:43 201513 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 1 16:31:00 2017 13 // Update Count : 2 14 14 // 15 15 … … 58 58 assert( type ); 59 59 Type * castType = type->clone(); 60 castType->get_qualifiers() -= Type::Qualifiers(true, true, true, false, true , true);60 castType->get_qualifiers() -= Type::Qualifiers(true, true, true, false, true); 61 61 castType->set_isLvalue( true ); // xxx - might not need this 62 62 dstParam = new CastExpr( dstParam, new PointerType( Type::Qualifiers(), castType ) ); -
src/SymTab/Validate.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Sun May 17 21:50:04 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jul 12 17:49:21 201613 // Update Count : 29812 // Last Modified On : Thu Feb 2 17:47:54 2017 13 // Update Count : 312 14 14 // 15 15 … … 67 67 namespace SymTab { 68 68 class HoistStruct final : public Visitor { 69 template< typename Visitor > 70 friend void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor ); 71 template< typename Visitor > 72 friend void addVisitStatementList( std::list< Statement* > &stmts, Visitor &visitor ); 69 73 public: 70 74 /// Flattens nested struct types … … 73 77 std::list< Declaration * > &get_declsToAdd() { return declsToAdd; } 74 78 79 virtual void visit( EnumInstType *enumInstType ); 80 virtual void visit( StructInstType *structInstType ); 81 virtual void visit( UnionInstType *unionInstType ); 75 82 virtual void visit( StructDecl *aggregateDecl ); 76 83 virtual void visit( UnionDecl *aggregateDecl ); … … 83 90 template< typename AggDecl > void handleAggregate( AggDecl *aggregateDecl ); 84 91 85 std::list< Declaration * > declsToAdd ;92 std::list< Declaration * > declsToAdd, declsToAddAfter; 86 93 bool inStruct; 87 94 }; … … 115 122 private: 116 123 using Parent::visit; 124 void visit( EnumInstType *enumInst ) final; 117 125 void visit( StructInstType *structInst ) final; 118 126 void visit( UnionInstType *unionInst ) final; 119 127 void visit( TraitInstType *contextInst ) final; 128 void visit( EnumDecl *enumDecl ) final; 120 129 void visit( StructDecl *structDecl ) final; 121 130 void visit( UnionDecl *unionDecl ) final; … … 124 133 const Indexer *indexer; 125 134 135 typedef std::map< std::string, std::list< EnumInstType * > > ForwardEnumsType; 126 136 typedef std::map< std::string, std::list< StructInstType * > > ForwardStructsType; 127 137 typedef std::map< std::string, std::list< UnionInstType * > > ForwardUnionsType; 138 ForwardEnumsType forwardEnums; 128 139 ForwardStructsType forwardStructs; 129 140 ForwardUnionsType forwardUnions; … … 236 247 void HoistStruct::hoistStruct( std::list< Declaration * > &translationUnit ) { 237 248 HoistStruct hoister; 238 acceptAndAdd( translationUnit, hoister , true);249 acceptAndAdd( translationUnit, hoister ); 239 250 } 240 251 … … 260 271 return dynamic_cast< StructDecl * >( decl ) || dynamic_cast< UnionDecl * >( decl ); 261 272 } 262 // xxx - shouldn't this be declsToAddBefore? 273 263 274 template< typename AggDecl > 264 275 void HoistStruct::handleAggregate( AggDecl *aggregateDecl ) { … … 276 287 } 277 288 289 void HoistStruct::visit( EnumInstType *structInstType ) { 290 if ( structInstType->get_baseEnum() ) { 291 declsToAdd.push_front( structInstType->get_baseEnum() ); 292 } 293 } 294 295 void HoistStruct::visit( StructInstType *structInstType ) { 296 if ( structInstType->get_baseStruct() ) { 297 declsToAdd.push_front( structInstType->get_baseStruct() ); 298 } 299 } 300 301 void HoistStruct::visit( UnionInstType *structInstType ) { 302 if ( structInstType->get_baseUnion() ) { 303 declsToAdd.push_front( structInstType->get_baseUnion() ); 304 } 305 } 306 278 307 void HoistStruct::visit( StructDecl *aggregateDecl ) { 279 308 handleAggregate( aggregateDecl ); … … 297 326 ObjectDecl * obj = dynamic_cast< ObjectDecl * >( *i ); 298 327 assert( obj ); 299 obj->set_type( new EnumInstType( Type::Qualifiers( true, false, false, false, false , false), enumDecl->get_name() ) );328 obj->set_type( new EnumInstType( Type::Qualifiers( true, false, false, false, false ), enumDecl->get_name() ) ); 300 329 } // for 301 330 Parent::visit( enumDecl ); … … 349 378 } 350 379 380 void LinkReferenceToTypes::visit( EnumInstType *enumInst ) { 381 Parent::visit( enumInst ); 382 EnumDecl *st = indexer->lookupEnum( enumInst->get_name() ); 383 // it's not a semantic error if the enum is not found, just an implicit forward declaration 384 if ( st ) { 385 //assert( ! enumInst->get_baseEnum() || enumInst->get_baseEnum()->get_members().empty() || ! st->get_members().empty() ); 386 enumInst->set_baseEnum( st ); 387 } // if 388 if ( ! st || st->get_members().empty() ) { 389 // use of forward declaration 390 forwardEnums[ enumInst->get_name() ].push_back( enumInst ); 391 } // if 392 } 393 351 394 void LinkReferenceToTypes::visit( StructInstType *structInst ) { 352 395 Parent::visit( structInst ); … … 419 462 } 420 463 } 464 } 465 466 void LinkReferenceToTypes::visit( EnumDecl *enumDecl ) { 467 // visit enum members first so that the types of self-referencing members are updated properly 468 Parent::visit( enumDecl ); 469 if ( ! enumDecl->get_members().empty() ) { 470 ForwardEnumsType::iterator fwds = forwardEnums.find( enumDecl->get_name() ); 471 if ( fwds != forwardEnums.end() ) { 472 for ( std::list< EnumInstType * >::iterator inst = fwds->second.begin(); inst != fwds->second.end(); ++inst ) { 473 (*inst )->set_baseEnum( enumDecl ); 474 } // for 475 forwardEnums.erase( fwds ); 476 } // if 477 } // if 421 478 } 422 479 -
src/SynTree/AggregateDecl.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Sun May 17 23:56:39 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jul 13 18:03:30 201613 // Update Count : 1 012 // Last Modified On : Mon Feb 6 15:31:23 2017 13 // Update Count : 17 14 14 // 15 15 16 16 #include "Declaration.h" 17 #include "Attribute.h" 17 18 #include "Type.h" 18 19 #include "Common/utility.h" 19 20 20 21 21 AggregateDecl::AggregateDecl( const std::string &name ) : Parent( name, DeclarationNode::NoStorageClass, LinkageSpec::Cforall ), body( false) {22 AggregateDecl::AggregateDecl( const std::string &name, const std::list< Attribute * > & attributes ) : Parent( name, DeclarationNode::NoStorageClass, LinkageSpec::Cforall ), body( false ), attributes( attributes ) { 22 23 } 23 24 … … 25 26 cloneAll( other.members, members ); 26 27 cloneAll( other.parameters, parameters ); 28 cloneAll( other.attributes, attributes ); 27 29 body = other.body; 28 30 } 29 31 30 32 AggregateDecl::~AggregateDecl() { 33 deleteAll( attributes ); 34 deleteAll( parameters ); 31 35 deleteAll( members ); 32 deleteAll( parameters );33 36 } 34 37 … … 47 50 os << endl << string( indent+2, ' ' ) << "with members" << endl; 48 51 printAll( members, os, indent+4 ); 52 } // if 53 if ( ! attributes.empty() ) { 54 os << endl << string( indent+2, ' ' ) << "with attributes" << endl; 55 printAll( attributes, os, indent+4 ); 49 56 } // if 50 57 } -
src/SynTree/ArrayType.cc
rdbe8f244 rfe26fbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Thu May 12 14:07:16 201613 // Update Count : 1 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 1 17:16:29 2017 13 // Update Count : 12 14 14 // 15 15 … … 19 19 20 20 21 ArrayType::ArrayType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic )22 : Type( tq), base( base ), dimension( dimension ), isVarLen( isVarLen ), isStatic( isStatic ) {21 ArrayType::ArrayType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic, const std::list< Attribute * > & attributes ) 22 : Type( tq, attributes ), base( base ), dimension( dimension ), isVarLen( isVarLen ), isStatic( isStatic ) { 23 23 base->set_isLvalue( false ); 24 24 } -
src/SynTree/AttrType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 19 16:41:51 201513 // Update Count : 212 // Last Modified On : Wed Feb 1 17:17:59 2017 13 // Update Count : 3 14 14 // 15 15 … … 19 19 20 20 21 AttrType::AttrType( const Type::Qualifiers &tq, const std::string &name, Expression *expr )22 : Type( tq ), name( name ), expr( expr ), type( 0 ), isType( false ) {21 AttrType::AttrType( const Type::Qualifiers &tq, const std::string &name, Expression *expr, const std::list< Attribute * > & attributes ) 22 : Type( tq, attributes ), name( name ), expr( expr ), type( 0 ), isType( false ) { 23 23 } 24 24 25 AttrType::AttrType( const Type::Qualifiers &tq, const std::string &name, Type *type )26 : Type( tq ), name( name ), expr( 0 ), type( type ), isType( true ) {25 AttrType::AttrType( const Type::Qualifiers &tq, const std::string &name, Type *type, const std::list< Attribute * > & attributes ) 26 : Type( tq, attributes ), name( name ), expr( 0 ), type( type ), isType( true ) { 27 27 } 28 28 -
src/SynTree/BasicType.cc
rdbe8f244 rfe26fbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Aug 12 14:15:45 201513 // Update Count : 611 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 1 17:12:15 2017 13 // Update Count : 8 14 14 // 15 15 … … 17 17 #include "Type.h" 18 18 19 BasicType::BasicType( const Type::Qualifiers &tq, Kind bt ) : Type( tq), kind( bt ) {}19 BasicType::BasicType( const Type::Qualifiers &tq, Kind bt, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), kind( bt ) {} 20 20 21 21 void BasicType::print( std::ostream &os, int indent ) const { -
src/SynTree/Declaration.h
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 13:37:33 201613 // Update Count : 4912 // Last Modified On : Fri Jan 20 15:07:29 2017 13 // Update Count : 53 14 14 // 15 15 … … 225 225 typedef Declaration Parent; 226 226 public: 227 AggregateDecl( const std::string &name );227 AggregateDecl( const std::string &name, const std::list< Attribute * > & attributes = std::list< class Attribute * >() ); 228 228 AggregateDecl( const AggregateDecl &other ); 229 229 virtual ~AggregateDecl(); … … 231 231 std::list<Declaration*>& get_members() { return members; } 232 232 std::list<TypeDecl*>& get_parameters() { return parameters; } 233 234 std::list< Attribute * >& get_attributes() { return attributes; } 235 const std::list< Attribute * >& get_attributes() const { return attributes; } 233 236 234 237 bool has_body() const { return body; } … … 244 247 std::list<TypeDecl*> parameters; 245 248 bool body; 249 std::list< Attribute * > attributes; 246 250 }; 247 251 … … 249 253 typedef AggregateDecl Parent; 250 254 public: 251 StructDecl( const std::string &name ) : Parent( name) {}255 StructDecl( const std::string &name, const std::list< Attribute * > & attributes = std::list< class Attribute * >() ) : Parent( name, attributes ) {} 252 256 StructDecl( const StructDecl &other ) : Parent( other ) {} 253 257 … … 262 266 typedef AggregateDecl Parent; 263 267 public: 264 UnionDecl( const std::string &name ) : Parent( name) {}268 UnionDecl( const std::string &name, const std::list< Attribute * > & attributes = std::list< class Attribute * >() ) : Parent( name, attributes ) {} 265 269 UnionDecl( const UnionDecl &other ) : Parent( other ) {} 266 270 … … 275 279 typedef AggregateDecl Parent; 276 280 public: 277 EnumDecl( const std::string &name ) : Parent( name) {}281 EnumDecl( const std::string &name, const std::list< Attribute * > & attributes = std::list< class Attribute * >() ) : Parent( name, attributes ) {} 278 282 EnumDecl( const EnumDecl &other ) : Parent( other ) {} 279 283 … … 288 292 typedef AggregateDecl Parent; 289 293 public: 290 TraitDecl( const std::string &name ) : Parent( name ) {} 294 TraitDecl( const std::string &name, const std::list< Attribute * > & attributes ) : Parent( name ) { 295 assertf( attributes.empty(), "attribute unsupported for traits" ); 296 } 291 297 TraitDecl( const TraitDecl &other ) : Parent( other ) {} 292 298 -
src/SynTree/FunctionType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 09:01:28 201513 // Update Count : 112 // Last Modified On : Wed Feb 1 17:21:00 2017 13 // Update Count : 2 14 14 // 15 15 … … 21 21 #include "Tuples/Tuples.h" 22 22 23 FunctionType::FunctionType( const Type::Qualifiers &tq, bool isVarArgs ) : Type( tq), isVarArgs( isVarArgs ) {23 FunctionType::FunctionType( const Type::Qualifiers &tq, bool isVarArgs, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), isVarArgs( isVarArgs ) { 24 24 } 25 25 -
src/SynTree/PointerType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 15 15:39:10 201513 // Update Count : 512 // Last Modified On : Wed Feb 1 17:17:13 2017 13 // Update Count : 6 14 14 // 15 15 … … 18 18 #include "Common/utility.h" 19 19 20 PointerType::PointerType( const Type::Qualifiers &tq, Type *base )21 : Type( tq ), base( base ), dimension( 0 ), isVarLen( false ), isStatic( false ) {20 PointerType::PointerType( const Type::Qualifiers &tq, Type *base, const std::list< Attribute * > & attributes ) 21 : Type( tq, attributes ), base( base ), dimension( 0 ), isVarLen( false ), isStatic( false ) { 22 22 } 23 23 24 PointerType::PointerType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic )25 : Type( tq ), base( base ), dimension( dimension ), isVarLen( isVarLen ), isStatic( isStatic ) {24 PointerType::PointerType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic, const std::list< Attribute * > & attributes ) 25 : Type( tq, attributes ), base( base ), dimension( dimension ), isVarLen( isVarLen ), isStatic( isStatic ) { 26 26 } 27 27 -
src/SynTree/ReferenceToType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jul 13 18:03:30 201613 // Update Count : 912 // Last Modified On : Thu Feb 2 17:45:07 2017 13 // Update Count : 23 14 14 // 15 15 … … 23 23 #include "Common/utility.h" 24 24 25 ReferenceToType::ReferenceToType( const Type::Qualifiers &tq, const std::string &name ) : Type( tq), name( name ) {25 ReferenceToType::ReferenceToType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), name( name ) { 26 26 } 27 27 … … 55 55 } // namespace 56 56 57 StructInstType::StructInstType( const Type::Qualifiers & tq, StructDecl * baseStruct ) : Parent( tq, baseStruct->get_name() ), baseStruct( baseStruct ) {} 57 StructInstType::StructInstType( const Type::Qualifiers & tq, StructDecl * baseStruct, const std::list< Attribute * > & attributes ) : 58 Parent( tq, baseStruct->get_name(), attributes ), baseStruct( baseStruct ) {} 58 59 59 60 std::string StructInstType::typeString() const { return "struct"; } … … 64 65 } 65 66 66 bool StructInstType::isComplete() const { return baseStruct ->has_body(); }67 bool StructInstType::isComplete() const { return baseStruct ? baseStruct->has_body() : false; } 67 68 68 69 void StructInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const { … … 85 86 } 86 87 88 89 UnionInstType::UnionInstType( const Type::Qualifiers & tq, UnionDecl * baseUnion, const std::list< Attribute * > & attributes ) : 90 Parent( tq, baseUnion->get_name(), attributes ), baseUnion( baseUnion ) {} 91 87 92 std::string UnionInstType::typeString() const { return "union"; } 88 93 89 std::list< TypeDecl*>* UnionInstType::get_baseParameters() {94 std::list< TypeDecl * > * UnionInstType::get_baseParameters() { 90 95 if ( ! baseUnion ) return NULL; 91 96 return &baseUnion->get_parameters(); 92 97 } 93 98 94 bool UnionInstType::isComplete() const { return baseUnion ->has_body(); }99 bool UnionInstType::isComplete() const { return baseUnion ? baseUnion->has_body() : false; } 95 100 96 101 void UnionInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const { … … 113 118 } 114 119 120 121 EnumInstType::EnumInstType( const Type::Qualifiers & tq, EnumDecl * baseEnum, const std::list< Attribute * > & attributes ) : 122 Parent( tq, baseEnum->get_name(), attributes ), baseEnum( baseEnum ) {} 123 115 124 std::string EnumInstType::typeString() const { return "enum"; } 125 126 bool EnumInstType::isComplete() const { return baseEnum ? baseEnum->has_body() : false; } 116 127 117 128 std::string TraitInstType::typeString() const { return "trait"; } … … 127 138 bool TraitInstType::isComplete() const { assert( false ); } 128 139 129 TypeInstType::TypeInstType( const Type::Qualifiers &tq, const std::string &name, TypeDecl *baseType ) : Parent( tq, name) {140 TypeInstType::TypeInstType( const Type::Qualifiers &tq, const std::string &name, TypeDecl *baseType, const std::list< Attribute * > & attributes ) : Parent( tq, name, attributes ) { 130 141 set_baseType( baseType ); 131 142 } 132 143 133 TypeInstType::TypeInstType( const Type::Qualifiers &tq, const std::string &name, bool isFtype ) : Parent( tq, name), baseType( 0 ), isFtype( isFtype ) {144 TypeInstType::TypeInstType( const Type::Qualifiers &tq, const std::string &name, bool isFtype, const std::list< Attribute * > & attributes ) : Parent( tq, name, attributes ), baseType( 0 ), isFtype( isFtype ) { 134 145 } 135 146 -
src/SynTree/TupleType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 11:00:01 201513 // Update Count : 212 // Last Modified On : Wed Feb 1 17:10:58 2017 13 // Update Count : 3 14 14 // 15 15 … … 17 17 #include "Common/utility.h" 18 18 19 TupleType::TupleType( const Type::Qualifiers &tq, const std::list< Type * > & types ) : Type( tq), types( types ) {19 TupleType::TupleType( const Type::Qualifiers &tq, const std::list< Type * > & types, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), types( types ) { 20 20 } 21 21 -
src/SynTree/Type.cc
rdbe8f244 rfe26fbf 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Dec 09 14:08:48 201513 // Update Count : 411 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 2 11:26:24 2017 13 // Update Count : 12 14 14 // 15 15 … … 18 18 #include "Type.h" 19 19 #include "Declaration.h" 20 #include "Attribute.h" 20 21 #include "Common/utility.h" 22 23 using namespace std; 21 24 22 25 const char *BasicType::typeNames[BasicType::NUMBER_OF_BASIC_TYPES] = { … … 44 47 }; 45 48 46 Type::Type( const Qualifiers &tq ) : tq( tq) {}49 Type::Type( const Qualifiers &tq, const std::list< Attribute * > & attributes ) : tq( tq ), attributes( attributes ) {} 47 50 48 51 Type::Type( const Type &other ) : tq( other.tq ) { 49 52 cloneAll( other.forall, forall ); 53 cloneAll( other.attributes, attributes ); 50 54 } 51 55 52 56 Type::~Type() { 53 57 deleteAll( forall ); 58 deleteAll( attributes ); 54 59 } 55 60 … … 70 75 os << "_Atomic "; 71 76 } // if 72 if ( isAttribute ) {73 os << "__attribute(( )) ";74 } // if75 77 } 76 78 … … 81 83 os << std::string( indent+2, ' ' ); 82 84 } // if 85 86 if ( ! attributes.empty() ) { 87 os << endl << string( indent+2, ' ' ) << "with attributes" << endl; 88 printAll( attributes, os, indent+4 ); 89 } // if 90 83 91 tq.print( os, indent ); 84 92 } … … 89 97 } else { 90 98 out << "nullptr"; 91 } 99 } // if 92 100 return out; 93 101 } -
src/SynTree/Type.h
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jul 13 11:46:54 201613 // Update Count : 2312 // Last Modified On : Thu Feb 2 17:43:01 2017 13 // Update Count : 33 14 14 // 15 15 … … 25 25 public: 26 26 struct Qualifiers { 27 Qualifiers(): isConst( false ), isVolatile( false ), isRestrict( false ), isLvalue( false ), isAtomic( false ) , isAttribute( false ){}28 Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic , bool isAttribute ): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ), isAttribute( isAttribute) {}27 Qualifiers(): isConst( false ), isVolatile( false ), isRestrict( false ), isLvalue( false ), isAtomic( false ) {} 28 Qualifiers( bool isConst, bool isVolatile, bool isRestrict, bool isLvalue, bool isAtomic ): isConst( isConst ), isVolatile( isVolatile ), isRestrict( isRestrict ), isLvalue( isLvalue ), isAtomic( isAtomic ) {} 29 29 30 30 Qualifiers &operator&=( const Qualifiers &other ); … … 45 45 bool isLvalue; 46 46 bool isAtomic; 47 bool isAttribute;48 47 }; 49 48 50 Type( const Qualifiers &tq );49 Type( const Qualifiers &tq, const std::list< Attribute * > & attributes ); 51 50 Type( const Type &other ); 52 51 virtual ~Type(); … … 58 57 bool get_isLvalue() { return tq.isLvalue; } 59 58 bool get_isAtomic() { return tq.isAtomic; } 60 bool get_isAttribute() { return tq.isAttribute; }61 59 void set_isConst( bool newValue ) { tq.isConst = newValue; } 62 60 void set_isVolatile( bool newValue ) { tq.isVolatile = newValue; } … … 64 62 void set_isLvalue( bool newValue ) { tq.isLvalue = newValue; } 65 63 void set_isAtomic( bool newValue ) { tq.isAtomic = newValue; } 66 void set_isAttribute( bool newValue ) { tq.isAttribute = newValue; }67 64 68 65 typedef std::list<TypeDecl *> ForallList; 69 66 ForallList& get_forall() { return forall; } 67 68 std::list< Attribute * >& get_attributes() { return attributes; } 69 const std::list< Attribute * >& get_attributes() const { return attributes; } 70 70 71 71 /// How many elemental types are represented by this type … … 83 83 Qualifiers tq; 84 84 ForallList forall; 85 std::list< Attribute * > attributes; 85 86 }; 86 87 … … 89 90 class VoidType : public Type { 90 91 public: 91 VoidType( const Type::Qualifiers &tq );92 VoidType( const Type::Qualifiers &tq, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 92 93 93 94 virtual unsigned size() const { return 0; }; … … 129 130 static const char *typeNames[]; // string names for basic types, MUST MATCH with Kind 130 131 131 BasicType( const Type::Qualifiers &tq, Kind bt );132 BasicType( const Type::Qualifiers &tq, Kind bt, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 132 133 133 134 Kind get_kind() { return kind; } … … 146 147 class PointerType : public Type { 147 148 public: 148 PointerType( const Type::Qualifiers &tq, Type *base );149 PointerType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic );149 PointerType( const Type::Qualifiers &tq, Type *base, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 150 PointerType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 150 151 PointerType( const PointerType& ); 151 152 virtual ~PointerType(); … … 175 176 class ArrayType : public Type { 176 177 public: 177 ArrayType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic );178 ArrayType( const Type::Qualifiers &tq, Type *base, Expression *dimension, bool isVarLen, bool isStatic, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 178 179 ArrayType( const ArrayType& ); 179 180 virtual ~ArrayType(); … … 203 204 class FunctionType : public Type { 204 205 public: 205 FunctionType( const Type::Qualifiers &tq, bool isVarArgs );206 FunctionType( const Type::Qualifiers &tq, bool isVarArgs, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 206 207 FunctionType( const FunctionType& ); 207 208 virtual ~FunctionType(); … … 231 232 class ReferenceToType : public Type { 232 233 public: 233 ReferenceToType( const Type::Qualifiers &tq, const std::string &name );234 ReferenceToType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes ); 234 235 ReferenceToType( const ReferenceToType &other ); 235 236 virtual ~ReferenceToType(); … … 253 254 typedef ReferenceToType Parent; 254 255 public: 255 StructInstType( const Type::Qualifiers &tq, const std::string &name ) : Parent( tq, name), baseStruct( 0 ) {}256 StructInstType( const Type::Qualifiers &tq, StructDecl * baseStruct );256 StructInstType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes = std::list< Attribute * >() ) : Parent( tq, name, attributes ), baseStruct( 0 ) {} 257 StructInstType( const Type::Qualifiers &tq, StructDecl * baseStruct, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 257 258 StructInstType( const StructInstType &other ) : Parent( other ), baseStruct( other.baseStruct ) {} 258 259 … … 285 286 typedef ReferenceToType Parent; 286 287 public: 287 UnionInstType( const Type::Qualifiers &tq, const std::string &name ) : Parent( tq, name ), baseUnion( 0 ) {} 288 UnionInstType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes = std::list< Attribute * >() ) : Parent( tq, name, attributes ), baseUnion( 0 ) {} 289 UnionInstType( const Type::Qualifiers &tq, UnionDecl * baseUnion, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 288 290 UnionInstType( const UnionInstType &other ) : Parent( other ), baseUnion( other.baseUnion ) {} 289 291 290 292 UnionDecl *get_baseUnion() const { return baseUnion; } 291 void set_baseUnion( UnionDecl * newValue ) { baseUnion = newValue; }293 void set_baseUnion( UnionDecl * newValue ) { baseUnion = newValue; } 292 294 293 295 /// Accesses generic parameters of base union (NULL if none such) 294 std::list< TypeDecl*> * get_baseParameters();296 std::list< TypeDecl * > * get_baseParameters(); 295 297 296 298 virtual bool isComplete() const; … … 316 318 typedef ReferenceToType Parent; 317 319 public: 318 EnumInstType( const Type::Qualifiers &tq, const std::string &name ) : Parent( tq, name ) {} 319 EnumInstType( const EnumInstType &other ) : Parent( other ) {} 320 321 // xxx - enum inst does not currently contain a pointer to base, this should be fixed. 322 // virtual bool isComplete() const { return baseEnum()->hasBody(); } 320 EnumInstType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes = std::list< Attribute * >() ) : Parent( tq, name, attributes ) {} 321 EnumInstType( const Type::Qualifiers &tq, EnumDecl * baseEnum, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 322 EnumInstType( const EnumInstType &other ) : Parent( other ), baseEnum( other.baseEnum ) {} 323 324 EnumDecl *get_baseEnum() const { return baseEnum; } 325 void set_baseEnum( EnumDecl *newValue ) { baseEnum = newValue; } 326 327 virtual bool isComplete() const; 323 328 324 329 virtual EnumInstType *clone() const { return new EnumInstType( *this ); } … … 327 332 private: 328 333 virtual std::string typeString() const; 334 335 // this decl is not "owned" by the union inst; it is merely a pointer to elsewhere in the tree, 336 // where the union used in this type is actually defined 337 EnumDecl *baseEnum = nullptr; 329 338 }; 330 339 … … 332 341 typedef ReferenceToType Parent; 333 342 public: 334 TraitInstType( const Type::Qualifiers &tq, const std::string &name ) : Parent( tq, name) {}343 TraitInstType( const Type::Qualifiers &tq, const std::string &name, const std::list< Attribute * > & attributes = std::list< Attribute * >() ) : Parent( tq, name, attributes ) {} 335 344 TraitInstType( const TraitInstType &other ); 336 345 ~TraitInstType(); … … 354 363 typedef ReferenceToType Parent; 355 364 public: 356 TypeInstType( const Type::Qualifiers &tq, const std::string &name, TypeDecl *baseType );357 TypeInstType( const Type::Qualifiers &tq, const std::string &name, bool isFtype );365 TypeInstType( const Type::Qualifiers &tq, const std::string &name, TypeDecl *baseType, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 366 TypeInstType( const Type::Qualifiers &tq, const std::string &name, bool isFtype, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 358 367 TypeInstType( const TypeInstType &other ); 359 368 ~TypeInstType(); … … 380 389 class TupleType : public Type { 381 390 public: 382 TupleType( const Type::Qualifiers &tq, const std::list< Type * > & types = std::list< Type * >() );391 TupleType( const Type::Qualifiers &tq, const std::list< Type * > & types = std::list< Type * >(), const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 383 392 TupleType( const TupleType& ); 384 393 virtual ~TupleType(); … … 410 419 class TypeofType : public Type { 411 420 public: 412 TypeofType( const Type::Qualifiers &tq, Expression *expr );421 TypeofType( const Type::Qualifiers &tq, Expression *expr, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 413 422 TypeofType( const TypeofType& ); 414 423 virtual ~TypeofType(); … … 429 438 class AttrType : public Type { 430 439 public: 431 AttrType( const Type::Qualifiers &tq, const std::string &name, Expression *expr );432 AttrType( const Type::Qualifiers &tq, const std::string &name, Type *type );440 AttrType( const Type::Qualifiers &tq, const std::string &name, Expression *expr, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 441 AttrType( const Type::Qualifiers &tq, const std::string &name, Type *type, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 433 442 AttrType( const AttrType& ); 434 443 virtual ~AttrType(); … … 460 469 public: 461 470 VarArgsType(); 462 VarArgsType( Type::Qualifiers tq );471 VarArgsType( Type::Qualifiers tq, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 463 472 464 473 virtual bool isComplete() const{ return true; } // xxx - is this right? … … 474 483 public: 475 484 ZeroType(); 476 ZeroType( Type::Qualifiers tq );485 ZeroType( Type::Qualifiers tq, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 477 486 478 487 virtual ZeroType *clone() const { return new ZeroType( *this ); } … … 486 495 public: 487 496 OneType(); 488 OneType( Type::Qualifiers tq );497 OneType( Type::Qualifiers tq, const std::list< Attribute * > & attributes = std::list< Attribute * >() ); 489 498 490 499 virtual OneType *clone() const { return new OneType( *this ); } -
src/SynTree/TypeofType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 11:13:29 201513 // Update Count : 212 // Last Modified On : Wed Feb 1 17:18:29 2017 13 // Update Count : 3 14 14 // 15 15 … … 18 18 #include "Common/utility.h" 19 19 20 TypeofType::TypeofType( const Type::Qualifiers &tq, Expression *expr ) : Type( tq), expr( expr ) {20 TypeofType::TypeofType( const Type::Qualifiers &tq, Expression *expr, const std::list< Attribute * > & attributes ) : Type( tq, attributes ), expr( expr ) { 21 21 } 22 22 -
src/SynTree/VarArgsType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Thu Feb 25 16:34:00 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 2 17:10:40 201613 // Update Count : 212 // Last Modified On : Wed Feb 1 17:14:48 2017 13 // Update Count : 4 14 14 // 15 15 16 16 #include "Type.h" 17 17 18 VarArgsType::VarArgsType() : Type( Type::Qualifiers() ) {}18 VarArgsType::VarArgsType() : Type( Type::Qualifiers(), std::list< Attribute * >() ) {} 19 19 20 VarArgsType::VarArgsType( Type::Qualifiers tq ) : Type( tq) {}20 VarArgsType::VarArgsType( Type::Qualifiers tq, const std::list< Attribute * > & attributes ) : Type( tq, attributes ) {} 21 21 22 22 void VarArgsType::print( std::ostream &os, int indent ) const { -
src/SynTree/VoidType.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 11:16:42 201513 // Update Count : 112 // Last Modified On : Wed Feb 1 17:09:26 2017 13 // Update Count : 3 14 14 // 15 15 16 16 #include "Type.h" 17 17 18 VoidType::VoidType( const Type::Qualifiers &tq ) : Type( tq) {18 VoidType::VoidType( const Type::Qualifiers &tq, const std::list< Attribute * > & attributes ) : Type( tq, attributes ) { 19 19 } 20 20 -
src/SynTree/ZeroOneType.cc
rdbe8f244 rfe26fbf 9 9 // Author : Aaron B. Moss 10 10 // Created On : Fri Sep 16 14:08:00 2016 11 // Last Modified By : Aaron B. Moss12 // Last Modified On : Fri Sep 16 14:08:00 201613 // Update Count : 111 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 1 17:15:46 2017 13 // Update Count : 4 14 14 // 15 15 16 16 #include "Type.h" 17 17 18 ZeroType::ZeroType() : Type( Type::Qualifiers() ) {}18 ZeroType::ZeroType() : Type( Type::Qualifiers(), std::list< Attribute * >() ) {} 19 19 20 ZeroType::ZeroType( Type::Qualifiers tq ) : Type( tq) {}20 ZeroType::ZeroType( Type::Qualifiers tq, const std::list< Attribute * > & attributes ) : Type( tq, attributes ) {} 21 21 22 22 void ZeroType::print( std::ostream &os, int indent ) const { … … 24 24 } 25 25 26 OneType::OneType() : Type( Type::Qualifiers() ) {}26 OneType::OneType() : Type( Type::Qualifiers(), std::list< Attribute * >() ) {} 27 27 28 OneType::OneType( Type::Qualifiers tq ) : Type( tq) {}28 OneType::OneType( Type::Qualifiers tq, const std::list< Attribute * > & attributes ) : Type( tq, attributes ) {} 29 29 30 30 void OneType::print( std::ostream &os, int indent ) const { -
src/Tuples/TupleAssignment.cc
rdbe8f244 rfe26fbf 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : Wed Nov 9 13:48:42 201613 // Update Count : 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Feb 1 16:40:16 2017 13 // Update Count : 3 14 14 // 15 15 … … 199 199 Type * type = InitTweak::getPointerBase( castType ); 200 200 assert( type ); 201 type->get_qualifiers() -= Type::Qualifiers(true, true, true, false, true , true);201 type->get_qualifiers() -= Type::Qualifiers(true, true, true, false, true); 202 202 type->set_isLvalue( true ); // xxx - might not need this 203 203 expr = new CastExpr( expr, castType ); -
src/Tuples/TupleExpansion.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 18 15:02:53 201513 // Update Count : 212 // Last Modified On : Wed Feb 1 16:40:40 2017 13 // Update Count : 3 14 14 // 15 15 … … 305 305 Type * makeTupleType( const std::list< Expression * > & exprs ) { 306 306 // produce the TupleType which aggregates the types of the exprs 307 TupleType *tupleType = new TupleType( Type::Qualifiers(true, true, true, true, true , false) );307 TupleType *tupleType = new TupleType( Type::Qualifiers(true, true, true, true, true) ); 308 308 Type::Qualifiers &qualifiers = tupleType->get_qualifiers(); 309 309 for ( Expression * expr : exprs ) { -
src/benchmark/bench.c
rdbe8f244 rfe26fbf 87 87 88 88 struct CoroutineDummy { coroutine c; }; 89 DECL_COROUTINE(CoroutineDummy) 89 DECL_COROUTINE(CoroutineDummy); 90 90 void main(CoroutineDummy * this) {} 91 91 … … 122 122 }; 123 123 124 DECL_COROUTINE(CoroutineResume) 124 DECL_COROUTINE(CoroutineResume); 125 125 126 126 void ?{}(CoroutineResume* this, int N) { … … 151 151 152 152 struct ThreadDummy { thread t; }; 153 DECL_THREAD(ThreadDummy) 153 DECL_THREAD(ThreadDummy); 154 154 void main(ThreadDummy * this) {} 155 155 … … 183 183 }; 184 184 185 DECL_THREAD(ContextSwitch) 185 DECL_THREAD(ContextSwitch); 186 186 187 187 void main(ContextSwitch * this) { -
src/driver/cfa.cc
rdbe8f244 rfe26fbf 10 10 // Created On : Tue Aug 20 13:44:49 2002 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Oct 27 22:19:37 201613 // Update Count : 15 412 // Last Modified On : Fri Jan 20 14:38:45 2017 13 // Update Count : 155 14 14 // 15 15 … … 284 284 args[nargs] = "-D__CFORALL__"; 285 285 nargs += 1; 286 args[nargs] = "-D__cforall"; 287 nargs += 1; 286 288 287 289 if ( cpp_flag ) { -
src/libcfa/concurrency/CtxSwitch-x86_64.S
rdbe8f244 rfe26fbf 49 49 // Save volatile registers on the stack. 50 50 51 subq $8,%rsp 52 stmxcsr 0(%rsp) // 4 bytes 53 fnstcw 4(%rsp) // 2 bytes 51 54 pushq %r15 52 55 pushq %r14 … … 72 75 popq %r14 73 76 popq %r15 77 fldcw 4(%rsp) 78 ldmxcsr 0(%rsp) 79 addq $8,%rsp 74 80 75 81 // Return to thread. -
src/libcfa/concurrency/coroutines
rdbe8f244 rfe26fbf 30 30 }; 31 31 32 #define DECL_COROUTINE(X) static inline coroutine* get_coroutine(X* this) { return &this->c; } void main(X* this) ;32 #define DECL_COROUTINE(X) static inline coroutine* get_coroutine(X* this) { return &this->c; } void main(X* this) 33 33 34 34 //----------------------------------------------------------------------------- … … 110 110 } 111 111 112 static inline void resume(coroutine * dst) { 113 coroutine * src = this_coroutine(); // optimization 114 115 // not resuming self ? 116 if ( src != dst ) { 117 assertf( dst->notHalted , 118 "Attempt by coroutine %.256s (%p) to resume terminated coroutine %.256s (%p).\n" 119 "Possible cause is terminated coroutine's main routine has already returned.", 120 src->name, src, dst->name, dst ); 121 122 // set last resumer 123 dst->last = src; 124 } // if 125 126 // always done for performance testing 127 CoroutineCtxSwitch( src, dst ); 128 } 129 112 130 #endif //COROUTINES_H 113 131 -
src/libcfa/concurrency/invoke.c
rdbe8f244 rfe26fbf 109 109 struct FakeStack { 110 110 void *fixedRegisters[5]; // fixed registers rbx, r12, r13, r14, r15 111 void *rturn; // where to go on return from uSwitch 111 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls) 112 uint16_t fcw; // X97 FPU control word (preserved across function calls) 113 void *rturn; // where to go on return from uSwitch 112 114 void *dummyReturn; // NULL return address to provide proper alignment 113 115 }; … … 120 122 ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fixedRegisters[0] = this; 121 123 ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fixedRegisters[1] = invoke; 124 ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->mxcr = 0x1F80; //Vol. 2A 3-520 125 ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fcw = 0x037F; //Vol. 1 8-7 122 126 #else 123 127 #error Only __i386__ and __x86_64__ is supported for threads in cfa -
src/libcfa/concurrency/kernel.c
rdbe8f244 rfe26fbf 43 43 }; 44 44 45 DECL_COROUTINE(processorCtx_t) 45 DECL_COROUTINE(processorCtx_t); 46 46 47 47 #define KERNEL_STORAGE(T,X) static char X##_storage[sizeof(T)] -
src/libcfa/concurrency/threads
rdbe8f244 rfe26fbf 32 32 }; 33 33 34 #define DECL_THREAD(X) thread* get_thread(X* this) { return &this->t; } void main(X* this) ;34 #define DECL_THREAD(X) thread* get_thread(X* this) { return &this->t; } void main(X* this) 35 35 36 36 forall( dtype T | is_thread(T) ) -
src/libcfa/containers/vector
rdbe8f244 rfe26fbf 118 118 } 119 119 120 forall(otype T, otype allocator_t | allocator_c(T, allocator_t))121 static inline const T* cbegin(const vector(T, allocator_t)* this)122 {123 return data(&this->storage);124 }120 // forall(otype T, otype allocator_t | allocator_c(T, allocator_t)) 121 // static inline const T* cbegin(const vector(T, allocator_t)* this) 122 // { 123 // return data(&this->storage); 124 // } 125 125 126 126 forall(otype T, otype allocator_t | allocator_c(T, allocator_t)) … … 130 130 } 131 131 132 forall(otype T, otype allocator_t | allocator_c(T, allocator_t))133 static inline const T* cend(const vector(T, allocator_t)* this)134 {135 return data(&this->storage) + this->size;136 }132 // forall(otype T, otype allocator_t | allocator_c(T, allocator_t)) 133 // static inline const T* cend(const vector(T, allocator_t)* this) 134 // { 135 // return data(&this->storage) + this->size; 136 // } 137 137 138 138 //------------------------------------------------------------------------------ -
src/main.cc
rdbe8f244 rfe26fbf 35 35 #include "CodeGen/FixNames.h" 36 36 #include "CodeGen/FixMain.h" 37 #include "CodeTools/DeclStats.h" 37 38 #include "ControlStruct/Mutate.h" 38 39 #include "SymTab/Validate.h" … … 61 62 bboxp = false, 62 63 ctorinitp = false, 64 declstatsp = false, 63 65 exprp = false, 64 66 expraltp = false, … … 244 246 } // if 245 247 248 if ( declstatsp ) { 249 CodeTools::printDeclStats( translationUnit ); 250 deleteAll( translationUnit ); 251 return 0; 252 } 253 246 254 if ( bresolvep ) { 247 255 dump( translationUnit ); … … 339 347 340 348 void parse_cmdline( int argc, char * argv[], const char *& filename ) { 341 enum { Ast, Bbox, Bresolver, CtorInitFix, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, TupleExpansion, Validate, };349 enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Tree, TupleExpansion, Validate, }; 342 350 343 351 static struct option long_opts[] = { … … 346 354 { "before-resolver", no_argument, 0, Bresolver }, 347 355 { "ctorinitfix", no_argument, 0, CtorInitFix }, 356 { "decl-stats", no_argument, 0, DeclStats }, 348 357 { "expr", no_argument, 0, Expr }, 349 358 { "expralt", no_argument, 0, ExprAlt }, … … 365 374 366 375 int c; 367 while ( (c = getopt_long( argc, argv, "abBc efglmnpqrstTvyzD:F:", long_opts, &long_index )) != -1 ) {376 while ( (c = getopt_long( argc, argv, "abBcdefglmnpqrstTvyzD:F:", long_opts, &long_index )) != -1 ) { 368 377 switch ( c ) { 369 378 case Ast: … … 381 390 case 'c': 382 391 ctorinitp = true; 392 break; 393 case DeclStats: 394 case 'd': 395 declstatsp = true; 383 396 break; 384 397 case Expr: -
src/prelude/Makefile.am
rdbe8f244 rfe26fbf 28 28 29 29 # create forward declarations for gcc builtins 30 builtins.cf : builtins.c 31 ${AM_V_GEN}if [ -e $< ] ; then \ 32 @BACKEND_CC@ -E -P $^ | sed -e "/targetm/s/.*//" -e "/_Decimal/s/.*//" -e "s/void (const char \*)0();//" -e "s/\"//g" -e "s/\(__builtin_\) /\1/" > $@ ; \ 33 fi 30 builtins.cf : builtins.c prototypes.sed 31 ${AM_V_GEN}@BACKEND_CC@ -E -P $< | sed -f prototypes.sed > $@ 34 32 35 33 builtins.c : builtins.def prototypes.awk 36 ${AM_V_GEN}if [ -e $< ] ; then \ 37 @BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ ; \ 38 fi 34 ${AM_V_GEN}@BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ 39 35 40 36 builtins.def : -
src/prelude/Makefile.in
rdbe8f244 rfe26fbf 424 424 425 425 # create forward declarations for gcc builtins 426 builtins.cf : builtins.c 427 ${AM_V_GEN}if [ -e $< ] ; then \ 428 @BACKEND_CC@ -E -P $^ | sed -e "/targetm/s/.*//" -e "/_Decimal/s/.*//" -e "s/void (const char \*)0();//" -e "s/\"//g" -e "s/\(__builtin_\) /\1/" > $@ ; \ 429 fi 426 builtins.cf : builtins.c prototypes.sed 427 ${AM_V_GEN}@BACKEND_CC@ -E -P $< | sed -f prototypes.sed > $@ 430 428 431 429 builtins.c : builtins.def prototypes.awk 432 ${AM_V_GEN}if [ -e $< ] ; then \ 433 @BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ ; \ 434 fi 430 ${AM_V_GEN}@BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ 435 431 436 432 builtins.def : -
src/prelude/builtins.c
rdbe8f244 rfe26fbf 3 3 #define BT_LAST(NAME) FUNC_SIMPLE(void, NAME) 4 4 5 #define BT_BOOL _Bool 5 6 #define BT_UINTMAX unsigned long int 6 7 #define BT_UINT16 short int … … 22 23 #define BT_LONGLONG long long 23 24 #define BT_LONG long 24 #define BT_DFLOAT32 _ Decimal3225 #define BT_DFLOAT64 _ Decimal6426 #define BT_DFLOAT128 _ Decimal12825 #define BT_DFLOAT32 __Unsupported 26 #define BT_DFLOAT64 __Unsupported 27 #define BT_DFLOAT128 __Unsupported 27 28 #define BT_DOUBLEPTR double * 28 29 #define BT_DOUBLE double 29 30 #define BT_FLOATPTR float * 31 #define BT_FLOAT128X __Unsupported 32 #define BT_FLOAT128 __Unsupported 33 #define BT_FLOAT64X __Unsupported 34 #define BT_FLOAT64 __Unsupported 35 #define BT_FLOAT32X __Unsupported 36 #define BT_FLOAT32 __Unsupported 37 #define BT_FLOAT16 __Unsupported 30 38 #define BT_FLOAT float 39 #define BT_CONST_VPTR const volatile void * 31 40 #define BT_CONST_PTR const void * 32 41 #define BT_CONST_STRING const char * 42 #define BT_CONST_TM_PTR const struct tm * 33 43 #define BT_PTR_FN_VOID_VAR_PTR_SIZE 34 44 #define BT_PTR_CONST_STRING char *const 35 45 #define BT_PTRMODE_PTR 36 46 #define BT_PTRPTR void ** 47 #define BT_VPTR volatile void * 37 48 #define BT_PTR void * 38 49 #define BT_VOID void … … 47 58 #define BT_SSIZE long int 48 59 #define BT_PID int 49 50 #define BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_LONGDOUBLE, NAME, BT_LONGDOUBLE) 51 #define BT_FN_INT_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_VALIST_ARG) 52 #define BT_FN_VOID_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR) 53 #define BT_FN_INT_CONST_PTR_CONST_PTR_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE) 54 #define BT_FN_VOID_VALIST_REF(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VALIST_REF) 55 #define BT_FN_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_COMPLEX_FLOAT) 56 #define BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VAR) 57 #define BT_FN_VOID_PTR_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_PTR) 58 #define BT_FN_FLOAT_FLOAT_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_LONGDOUBLE) 59 #define BT_FN_INT_UINT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_UINT) 60 #define BT_FN_CONST_STRING(NAME) FUNC_SIMPLE(BT_CONST_STRING, NAME) 61 #define BT_FN_FLOAT_FLOAT_FLOATPTR(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOATPTR) 60 #define BT_I16 __int128 61 #define BT_I8 long long int 62 #define BT_I4 int 63 #define BT_I2 short 64 #define BT_I1 char 65 62 66 #define BT_FN_INT_INT_INT_INT_INT_INT_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_INT, BT_INT, BT_INT, BT_INT, BT_VAR) 63 #define BT_FN_INT_INT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT)64 #define BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG)65 67 #define BT_FN_INT_LONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_LONG) 66 #define BT_FN_INT_STRING_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VAR)67 #define BT_FN_VOID_PTR_WORD_WORD_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_WORD, BT_WORD, BT_PTR)68 68 #define BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_CONST_PTR) 69 #define BT_FN_INT_DFLOAT128(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DFLOAT128) 70 #define BT_FN_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE) 71 #define BT_FN_FLOAT_CONST_STRING(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_CONST_STRING) 72 #define BT_FN_LONGDOUBLE_LONGDOUBLE_INT(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_INT) 73 #define BT_FN_FLOAT_FLOAT_INT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_INT) 74 #define BT_FN_INT_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING) 75 #define BT_FN_INT_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_LONGDOUBLE) 76 #define BT_FN_SIZE_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_STRING, BT_CONST_STRING) 69 #define BT_FN_VOID_VPTR_I4_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR, BT_I4, BT_INT) 70 #define BT_FN_I1_VPTR_I1_INT(NAME) FUNC_SIMPLE(BT_I1, NAME, BT_VPTR, BT_I1, BT_INT) 71 #define BT_FN_INT(NAME) FUNC_SIMPLE(BT_INT, NAME) 72 #define BT_FN_STRING_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_CONST_STRING) 73 #define BT_FN_PTR_CONST_PTR_SIZE_VAR(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_CONST_PTR, BT_SIZE, BT_VAR) 74 #define BT_FN_INT_ULONGLONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_ULONGLONG) 75 #define BT_FN_INT_CONST_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE) 76 #define BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING) 77 #define BT_FN_STRING_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_STRING, BT_CONST_STRING, BT_SIZE) 77 78 #define BT_FN_VOID_PTR_SIZE(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_SIZE) 78 #define BT_FN_INT_CONST_STRING_PTR_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_PTR_CONST_STRING)79 #define BT_FN_DFLOAT64(NAME) FUNC_SIMPLE(BT_DFLOAT64, NAME)80 #define BT_FN_INT_UINTMAX(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_UINTMAX)81 #define BT_FN_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME)82 #define BT_FN_INT(NAME) FUNC_SIMPLE(BT_INT, NAME)83 #define BT_FN_FLOAT_FLOAT_FLOAT_INTPTR(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOAT, BT_INTPTR)84 #define BT_FN_DOUBLE_DOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_LONGDOUBLE)85 #define BT_FN_PTR_CONST_PTR_SIZE_VAR(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_CONST_PTR, BT_SIZE, BT_VAR)86 #define BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT)87 #define BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_COMPLEX_LONGDOUBLE)88 #define BT_FN_STRING_CONST_STRING_CONST_STRING_INT(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_INT)89 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONG(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONG)90 #define BT_FN_COMPLEX_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME, BT_DOUBLE)91 #define BT_FN_VOID(NAME) FUNC_SIMPLE(BT_VOID, NAME)92 #define BT_FN_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT)93 #define BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG)94 #define BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_FLOAT, BT_FLOATPTR, BT_FLOATPTR)95 #define BT_FN_INT_DFLOAT64(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DFLOAT64)96 #define BT_FN_FLOAT_FLOAT_INTPTR(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_INTPTR)97 #define BT_FN_WINT_WINT(NAME) FUNC_SIMPLE(BT_WINT, NAME, BT_WINT)98 #define BT_FN_LONGLONG_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_LONGDOUBLE)99 #define BT_FN_DOUBLE_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLE)100 #define BT_FN_DFLOAT64_CONST_STRING(NAME) FUNC_SIMPLE(BT_DFLOAT64, NAME, BT_CONST_STRING)101 #define BT_FN_DOUBLE_DOUBLE_INT(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_INT)102 79 #define BT_FN_INTMAX_INTMAX(NAME) FUNC_SIMPLE(BT_INTMAX, NAME, BT_INTMAX) 103 #define BT_FN_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_VAR) 104 #define BT_FN_LONG_LONG_LONG(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_LONG, BT_LONG) 105 #define BT_FN_DOUBLE_DOUBLE_LONG(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_LONG) 106 #define BT_FN_LONG_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_LONGDOUBLE) 107 #define BT_FN_FLOAT_FLOAT_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOAT, BT_FLOAT) 108 #define BT_FN_VOID_VALIST_REF_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VALIST_REF, BT_VAR) 109 #define BT_FN_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING) 80 #define BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR) 81 #define BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE) 110 82 #define BT_FN_VOID_VALIST_REF_VALIST_ARG(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VALIST_REF, BT_VALIST_ARG) 111 83 #define BT_FN_LONGDOUBLE_CONST_STRING(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_CONST_STRING) 84 #define BT_FN_LONGLONG_FLOAT(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_FLOAT) 85 #define BT_FN_DFLOAT32(NAME) FUNC_SIMPLE(BT_DFLOAT32, NAME) 86 #define BT_FN_INT_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_LONGDOUBLE) 87 #define BT_FN_BOOL_VPTR_I2_I2(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_I2, BT_I2) 88 #define BT_FN_FLOAT_FLOAT_FLOATPTR(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOATPTR) 89 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 90 #define BT_FN_VOID_PTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_INT) 91 #define BT_FN_LONG_LONG(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_LONG) 92 #define BT_FN_INT_DOUBLE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DOUBLE) 93 #define BT_FN_BOOL_VPTR_PTR_I16_BOOL_INT_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_PTR, BT_I16, BT_BOOL, BT_INT, BT_INT) 94 #define BT_FN_UINT(NAME) FUNC_SIMPLE(BT_UINT, NAME) 95 #define BT_FN_DOUBLE_DOUBLE_INT(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_INT) 96 #define BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_LONGDOUBLE, BT_LONGDOUBLEPTR, BT_LONGDOUBLEPTR) 97 #define BT_FN_INT_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_CONST_STRING, BT_VAR) 98 #define BT_FN_BOOL_INT_INT_INTPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_INT, BT_INT, BT_INTPTR) 99 #define BT_FN_DFLOAT32_DFLOAT32(NAME) FUNC_SIMPLE(BT_DFLOAT32, NAME, BT_DFLOAT32) 100 #define BT_FN_VOID_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME) 101 #define BT_FN_INT_CONST_STRING_FILEPTR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_FILEPTR) 102 #define BT_FN_VOID_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_INT) 103 #define BT_FN_DFLOAT128_CONST_STRING(NAME) FUNC_SIMPLE(BT_DFLOAT128, NAME, BT_CONST_STRING) 104 #define BT_FN_BOOL_VPTR_I16_I16(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_I16, BT_I16) 105 #define BT_FN_BOOL_LONG_LONG_LONGPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_LONG, BT_LONG, BT_LONG, BT_PTR) 106 #define BT_FN_INT_DFLOAT64(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DFLOAT64) 107 #define BT_FN_LONG_FLOAT(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_FLOAT) 108 #define BT_FN_CONST_STRING(NAME) FUNC_SIMPLE(BT_CONST_STRING, NAME) 109 #define BT_FN_SIZE_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_STRING, BT_CONST_STRING) 110 #define BT_FN_COMPLEX_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME, BT_FLOAT) 111 #define BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_SIZE, BT_VPTR, BT_PTR, BT_PTR, BT_INT) 112 #define BT_FN_STRING_CONST_STRING_CONST_STRING_INT(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_INT) 113 #define BT_FN_INT_CONST_STRING_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_VAR) 114 #define BT_FN_LONGDOUBLE_LONGDOUBLE_INT(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_INT) 115 #define BT_FN_BOOL_VPTR_I1_I1(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_I1, BT_I1) 116 #define BT_FN_DOUBLE_DOUBLE_DOUBLEPTR(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLEPTR) 117 #define BT_FN_DOUBLE_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLE) 118 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONG(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONG) 119 #define BT_FN_I16_VPTR_I16_INT(NAME) FUNC_SIMPLE(BT_I16, NAME, BT_VPTR, BT_I16, BT_INT) 120 #define BT_FN_INT_STRING_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG) 121 #define BT_FN_INT_STRING_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_CONST_STRING, BT_VAR) 122 #define BT_FN_UINT64_UINT64(NAME) FUNC_SIMPLE(BT_UINT64, NAME, BT_UINT64) 123 #define BT_FN_BOOL_VPTR_PTR_I2_BOOL_INT_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_PTR, BT_I2, BT_BOOL, BT_INT, BT_INT) 124 #define BT_FN_PTR_PTR_CONST_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_CONST_PTR, BT_SIZE) 125 #define BT_FN_STRING_CONST_STRING_INT(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_INT) 126 #define BT_FN_FLOAT_FLOAT_LONG(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_LONG) 127 #define BT_FN_FLOAT_CONST_STRING(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_CONST_STRING) 128 #define BT_FN_FLOAT_FLOAT_INTPTR(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_INTPTR) 129 #define BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 130 #define BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_LONGDOUBLE, NAME, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 131 #define BT_FN_INT_LONGLONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_LONGLONG) 132 #define BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 133 #define BT_FN_PTR_PTR(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR) 134 #define BT_FN_I1_VPTR_I1_I1(NAME) FUNC_SIMPLE(BT_I1, NAME, BT_VPTR, BT_I1, BT_I1) 135 #define BT_FN_LONGDOUBLE_COMPLEX_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_COMPLEX_LONGDOUBLE) 136 #define BT_FN_FLOAT_FLOAT_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_LONGDOUBLE) 137 #define BT_FN_DOUBLE_CONST_STRING(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_CONST_STRING) 138 #define BT_FN_DFLOAT128(NAME) FUNC_SIMPLE(BT_DFLOAT128, NAME) 139 #define BT_FN_I16_CONST_VPTR_INT(NAME) FUNC_SIMPLE(BT_I16, NAME, BT_CONST_VPTR, BT_INT) 140 #define BT_FN_FLOAT_FLOAT_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOAT, BT_FLOAT) 141 #define BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VAR) 142 #define BT_FN_SIZE_CONST_PTR_INT(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_PTR, BT_INT) 143 #define BT_FN_DOUBLE_DOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_LONGDOUBLE) 144 #define BT_FN_LONG_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_LONGDOUBLE) 145 #define BT_FN_BOOL_SIZE_CONST_VPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_SIZE, BT_CONST_VPTR) 146 #define BT_FN_I16_VPTR_I16(NAME) FUNC_SIMPLE(BT_I16, NAME, BT_VPTR, BT_I16) 147 #define BT_FN_VOID_VPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR) 148 #define BT_FN_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME) 149 #define BT_FN_VOID_PTRMODE_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTRMODE_PTR) 150 #define BT_FN_WINT_WINT(NAME) FUNC_SIMPLE(BT_WINT, NAME, BT_WINT) 151 #define BT_FN_BOOL_VPTR_I8_I8(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_I8, BT_I8) 152 #define BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_INTPTR) 153 #define BT_FN_DOUBLE_DOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_INTPTR) 154 #define BT_FN_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_COMPLEX_FLOAT) 155 #define BT_FN_BOOL_VPTR_PTR_I8_BOOL_INT_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_PTR, BT_I8, BT_BOOL, BT_INT, BT_INT) 156 #define BT_FN_I4_CONST_VPTR_INT(NAME) FUNC_SIMPLE(BT_I4, NAME, BT_CONST_VPTR, BT_INT) 157 #define BT_FN_INT_WINT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_WINT) 158 #define BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_DOUBLE, BT_DOUBLEPTR, BT_DOUBLEPTR) 159 #define BT_FN_I8_VPTR_I8_INT(NAME) FUNC_SIMPLE(BT_I8, NAME, BT_VPTR, BT_I8, BT_INT) 160 #define BT_FN_VOID_PTR_WORD_WORD_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_WORD, BT_WORD, BT_PTR) 161 #define BT_FN_I4_VPTR_I4_I4(NAME) FUNC_SIMPLE(BT_I4, NAME, BT_VPTR, BT_I4, BT_I4) 162 #define BT_FN_PTR_CONST_PTR_INT_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_CONST_PTR, BT_INT, BT_SIZE) 163 #define BT_FN_INT_UINTMAX(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_UINTMAX) 164 #define BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG, BT_PTR) 165 #define BT_FN_LONGLONG_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_LONGDOUBLE) 166 #define BT_FN_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT) 167 #define BT_FN_INT_INT_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 168 #define BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE) 169 #define BT_FN_INT_DFLOAT128(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DFLOAT128) 170 #define BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR_FN_VOID_VAR_PTR_SIZE) 171 #define BT_FN_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_SIZE) 172 #define BT_FN_DFLOAT32_CONST_STRING(NAME) FUNC_SIMPLE(BT_DFLOAT32, NAME, BT_CONST_STRING) 173 #define BT_FN_LONG_LONG_LONG(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_LONG, BT_LONG) 174 #define BT_FN_VOID_VPTR_I8_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR, BT_I8, BT_INT) 175 #define BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VAR) 176 #define BT_FN_BOOL_VAR(NAME) FUNC_SIMPLE(BT_BOOL, NAME) 177 #define BT_FN_INT_FILEPTR_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_CONST_STRING, BT_VAR) 178 #define BT_FN_COMPLEX_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME, BT_DOUBLE) 179 #define BT_FN_INT_ULONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_ULONG) 180 #define BT_FN_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_SIZE) 181 #define BT_FN_VOID(NAME) FUNC_SIMPLE(BT_VOID, NAME) 182 #define BT_FN_INT_DFLOAT32(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DFLOAT32) 183 #define BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_SIZE, BT_CONST_VPTR, BT_PTR, BT_INT) 184 #define BT_FN_UNWINDWORD_PTR(NAME) FUNC_SIMPLE(BT_UNWINDWORD, NAME, BT_PTR) 185 #define BT_FN_I1_CONST_VPTR_INT(NAME) FUNC_SIMPLE(BT_I1, NAME, BT_CONST_VPTR, BT_INT) 186 #define BT_FN_INT_STRING_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VAR) 187 #define BT_FN_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING) 188 #define BT_FN_PTR_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_SIZE, BT_SIZE) 189 #define BT_FN_VOID_VPTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR, BT_INT) 190 #define BT_FN_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME) 191 #define BT_FN_PTR_VAR(NAME) FUNC_SIMPLE(BT_PTR, NAME) 192 #define BT_FN_I8_CONST_VPTR_INT(NAME) FUNC_SIMPLE(BT_I8, NAME, BT_CONST_VPTR, BT_INT) 193 #define BT_FN_LONG_DOUBLE(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_DOUBLE) 194 #define BT_FN_LONGLONG_DOUBLE(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_DOUBLE) 195 #define BT_FN_BOOL_VPTR_PTR_I4_BOOL_INT_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_PTR, BT_I4, BT_BOOL, BT_INT, BT_INT) 196 #define BT_FN_VOID_CONST_PTR_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_CONST_PTR, BT_VAR) 197 #define BT_FN_DOUBLE_DOUBLE_LONG(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_LONG) 198 #define BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLE, BT_INTPTR) 199 #define BT_FN_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE) 200 #define BT_FN_INT_PTR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_PTR) 112 201 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_INTPTR) 113 #define BT_FN_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_SIZE) 114 #define BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLE, BT_DOUBLE) 202 #define BT_FN_BOOL_VPTR_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_INT) 203 #define BT_FN_INT_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_VALIST_ARG) 204 #define BT_FN_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_COMPLEX_DOUBLE) 205 #define BT_FN_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE) 206 #define BT_FN_I2_VPTR_I2_INT(NAME) FUNC_SIMPLE(BT_I2, NAME, BT_VPTR, BT_I2, BT_INT) 207 #define BT_FN_INT_INT_FILEPTR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_FILEPTR) 208 #define BT_FN_DFLOAT64_DFLOAT64(NAME) FUNC_SIMPLE(BT_DFLOAT64, NAME, BT_DFLOAT64) 209 #define BT_FN_I8_VPTR_I8(NAME) FUNC_SIMPLE(BT_I8, NAME, BT_VPTR, BT_I8) 210 #define BT_FN_DOUBLE_INT_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_INT, BT_DOUBLE) 211 #define BT_FN_I16_VPTR_I16_I16(NAME) FUNC_SIMPLE(BT_I16, NAME, BT_VPTR, BT_I16, BT_I16) 212 #define BT_FN_VOID_VPTR_I16_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR, BT_I16, BT_INT) 213 #define BT_FN_VOID_VPTR_I1_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR, BT_I1, BT_INT) 214 #define BT_FN_DFLOAT64(NAME) FUNC_SIMPLE(BT_DFLOAT64, NAME) 215 #define BT_FN_FLOAT_INT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_INT, BT_FLOAT) 216 #define BT_FN_I2_VPTR_I2_I2(NAME) FUNC_SIMPLE(BT_I2, NAME, BT_VPTR, BT_I2, BT_I2) 217 #define BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME, BT_COMPLEX_FLOAT) 218 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLE) 219 #define BT_FN_VOID_VALIST_REF_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VALIST_REF, BT_VAR) 220 #define BT_FN_UINT32_UINT32(NAME) FUNC_SIMPLE(BT_UINT32, NAME, BT_UINT32) 221 #define BT_FN_FLOAT_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOAT) 222 #define BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 223 #define BT_FN_INT_CONST_PTR_CONST_PTR_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_PTR, BT_CONST_PTR, BT_SIZE) 224 #define BT_FN_PTR(NAME) FUNC_SIMPLE(BT_PTR, NAME) 225 #define BT_FN_FLOAT_FLOAT_INT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_INT) 226 #define BT_FN_INT_UINT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_UINT) 227 #define BT_FN_SIZE_CONST_STRING(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_STRING) 228 #define BT_FN_PTR_PTR_INT_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_INT, BT_SIZE) 229 #define BT_FN_I2_VPTR_I2(NAME) FUNC_SIMPLE(BT_I2, NAME, BT_VPTR, BT_I2) 230 #define BT_FN_UINT16_UINT16(NAME) FUNC_SIMPLE(BT_UINT16, NAME, BT_UINT16) 231 #define BT_FN_INT_INTMAX(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INTMAX) 232 #define BT_FN_VOID_PTR_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_PTR) 115 233 #define BT_FN_STRING_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_STRING, BT_CONST_STRING) 116 #define BT_FN_VOID_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_INT) 117 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLE) 118 #define BT_FN_INT_ULONGLONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_ULONGLONG) 119 #define BT_FN_INT_FILEPTR_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_CONST_STRING, BT_VAR) 120 #define BT_FN_LONGLONG_DOUBLE(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_DOUBLE) 121 #define BT_FN_INT_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_CONST_STRING, BT_VAR) 122 #define BT_FN_VOID_PTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR, BT_INT) 123 #define BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME, BT_COMPLEX_FLOAT) 124 #define BT_FN_INT_WINT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_WINT) 125 #define BT_FN_PTR_PTR_INT_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_INT, BT_SIZE) 126 #define BT_FN_STRING_CONST_STRING_INT(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_INT) 234 #define BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 235 #define BT_FN_I2_CONST_VPTR_INT(NAME) FUNC_SIMPLE(BT_I2, NAME, BT_CONST_VPTR, BT_INT) 236 #define BT_FN_I1_VPTR_I1(NAME) FUNC_SIMPLE(BT_I1, NAME, BT_VPTR, BT_I1) 237 #define BT_FN_LONGLONG_LONGLONG(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_LONGLONG) 238 #define BT_FN_PID(NAME) FUNC_SIMPLE(BT_PID, NAME) 239 #define BT_FN_I4_VPTR_I4(NAME) FUNC_SIMPLE(BT_I4, NAME, BT_VPTR, BT_I4) 240 #define BT_FN_I8_VPTR_I8_I8(NAME) FUNC_SIMPLE(BT_I8, NAME, BT_VPTR, BT_I8, BT_I8) 241 #define BT_FN_VOID_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTR) 242 #define BT_FN_VOID_VPTR_I2_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VPTR, BT_I2, BT_INT) 243 #define BT_FN_VOID_SIZE_VPTR_PTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_SIZE, BT_VPTR, BT_PTR, BT_INT) 244 #define BT_FN_VOID_VALIST_REF(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_VALIST_REF) 245 #define BT_FN_INT_PTRPTR_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_PTRPTR, BT_SIZE, BT_SIZE) 246 #define BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG) 247 #define BT_FN_INT_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING) 248 #define BT_FN_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_VAR) 249 #define BT_FN_DFLOAT64_CONST_STRING(NAME) FUNC_SIMPLE(BT_DFLOAT64, NAME, BT_CONST_STRING) 250 #define BT_FN_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME) 251 #define BT_FN_PTR_PTR_INT_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_INT, BT_SIZE, BT_SIZE) 252 #define BT_FN_INT_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING) 253 #define BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_LONGDOUBLE, NAME, BT_LONGDOUBLE) 254 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLEPTR) 255 #define BT_FN_BOOL_SIZE_VPTR_PTR_PTR_INT_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_SIZE, BT_VPTR, BT_PTR, BT_PTR, BT_INT, BT_INT) 256 #define BT_FN_BOOL_UINT_UINT_UINTPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_UINT, BT_UINT, BT_UINT, BT_PTR) 257 #define BT_FN_BOOL_VPTR_I4_I4(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_I4, BT_I4) 258 #define BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME, BT_COMPLEX_FLOAT, BT_COMPLEX_FLOAT) 259 #define BT_FN_FLOAT_FLOAT_FLOAT_INTPTR(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOAT, BT_INTPTR) 260 #define BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME, BT_COMPLEX_DOUBLE) 261 #define BT_FN_I4_VPTR_I4_INT(NAME) FUNC_SIMPLE(BT_I4, NAME, BT_VPTR, BT_I4, BT_INT) 262 #define BT_FN_VOID_CONST_PTR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_CONST_PTR, BT_PTR, BT_SIZE) 263 #define BT_FN_DFLOAT128_DFLOAT128(NAME) FUNC_SIMPLE(BT_DFLOAT128, NAME, BT_DFLOAT128) 264 #define BT_FN_LONGDOUBLE_INT_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_INT, BT_LONGDOUBLE) 265 #define BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 266 #define BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_CONST_STRING, BT_VALIST_ARG) 267 #define BT_FN_INT_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME) 268 #define BT_FN_INT_CONST_STRING_PTR_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_PTR_CONST_STRING) 269 #define BT_FN_INT_INT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT) 270 #define BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_FLOAT, BT_FLOATPTR, BT_FLOATPTR) 127 271 #define BT_FN_INT_FLOAT(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FLOAT) 128 #define BT_FN_DOUBLE_CONST_STRING(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_CONST_STRING) 129 #define BT_FN_LONG_FLOAT(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_FLOAT) 130 #define BT_FN_PTR_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_SIZE, BT_SIZE) 131 #define BT_FN_STRING_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_STRING, BT_CONST_STRING, BT_SIZE) 132 #define BT_FN_LONGLONG_LONGLONG(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_LONGLONG) 133 #define BT_FN_PTR_PTR(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR) 134 #define BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_CONST_PTR, BT_SIZE, BT_SIZE) 135 #define BT_FN_FLOAT_FLOAT_LONG(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_LONG) 272 #define BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 273 #define BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VAR) 274 #define BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_SSIZE, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VAR) 275 #define BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_LONGLONG, BT_LONGLONG, BT_LONGLONG, BT_PTR) 276 #define BT_FN_PTR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_SIZE) 277 #define BT_FN_PTR_UINT(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_UINT) 136 278 #define BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_LONGDOUBLE, NAME, BT_COMPLEX_LONGDOUBLE) 137 #define BT_FN_PTR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_SIZE) 138 #define BT_FN_PTR_VAR(NAME) FUNC_SIMPLE(BT_PTR, NAME) 139 #define BT_FN_SIZE_CONST_PTR_INT(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_PTR, BT_INT) 140 #define BT_FN_INT_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING) 141 #define BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 142 #define BT_FN_INT_STRING_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_CONST_STRING, BT_VALIST_ARG) 143 #define BT_FN_DFLOAT32(NAME) FUNC_SIMPLE(BT_DFLOAT32, NAME) 144 #define BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_INTPTR) 145 #define BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_STRING, BT_CONST_STRING, BT_SIZE, BT_SIZE) 146 #define BT_FN_PTR_UINT(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_UINT) 147 #define BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_VALIST_ARG) 148 #define BT_FN_DFLOAT128_CONST_STRING(NAME) FUNC_SIMPLE(BT_DFLOAT128, NAME, BT_CONST_STRING) 149 #define BT_FN_DOUBLE_DOUBLE_DOUBLEPTR(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLEPTR) 150 #define BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_SSIZE, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VAR) 151 #define BT_FN_DFLOAT32_DFLOAT32(NAME) FUNC_SIMPLE(BT_DFLOAT32, NAME, BT_DFLOAT32) 152 #define BT_FN_INT_PTR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_PTR) 153 #define BT_FN_UINT32_UINT32(NAME) FUNC_SIMPLE(BT_UINT32, NAME, BT_UINT32) 154 #define BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR_FN_VOID_VAR_PTR_SIZE) 155 #define BT_FN_INT_DOUBLE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DOUBLE) 156 #define BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VAR) 157 #define BT_FN_INT_ULONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_ULONG) 158 #define BT_FN_DOUBLE_DOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_INTPTR) 159 #define BT_FN_UINT64_UINT64(NAME) FUNC_SIMPLE(BT_UINT64, NAME, BT_UINT64) 160 #define BT_FN_STRING_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_CONST_STRING) 161 #define BT_FN_INT_INT_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_CONST_STRING, BT_VALIST_ARG) 162 #define BT_FN_PTR_PTR_INT_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_INT, BT_SIZE, BT_SIZE) 163 #define BT_FN_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_COMPLEX_DOUBLE) 164 #define BT_FN_VOID_CONST_PTR_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_CONST_PTR, BT_VAR) 165 #define BT_FN_INT_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME) 166 #define BT_FN_INT_PTRPTR_SIZE_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_PTRPTR, BT_SIZE, BT_SIZE) 167 #define BT_FN_INT_CONST_STRING_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_VAR) 168 #define BT_FN_INT_DFLOAT32(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_DFLOAT32) 169 #define BT_FN_DFLOAT64_DFLOAT64(NAME) FUNC_SIMPLE(BT_DFLOAT64, NAME, BT_DFLOAT64) 170 #define BT_FN_VOID_CONST_PTR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_CONST_PTR, BT_PTR, BT_SIZE) 171 #define BT_FN_UNWINDWORD_PTR(NAME) FUNC_SIMPLE(BT_UNWINDWORD, NAME, BT_PTR) 172 #define BT_FN_FLOAT_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_FLOAT, BT_FLOAT) 173 #define BT_FN_COMPLEX_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME, BT_FLOAT) 174 #define BT_FN_UINT(NAME) FUNC_SIMPLE(BT_UINT, NAME) 175 #define BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_DOUBLE, BT_DOUBLE, BT_INTPTR) 176 #define BT_FN_UINT16_UINT16(NAME) FUNC_SIMPLE(BT_UINT16, NAME, BT_UINT16) 177 #define BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_INT, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 178 #define BT_FN_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE) 179 #define BT_FN_LONG_LONG(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_LONG) 180 #define BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_SIZE, BT_CONST_STRING, BT_VALIST_ARG) 181 #define BT_FN_FLOAT_INT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME, BT_INT, BT_FLOAT) 182 #define BT_FN_PTR(NAME) FUNC_SIMPLE(BT_PTR, NAME) 183 #define BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_PTR, BT_SIZE, BT_SIZE, BT_FILEPTR) 184 #define BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_DOUBLE, BT_DOUBLEPTR, BT_DOUBLEPTR) 185 #define BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME, BT_COMPLEX_DOUBLE, BT_COMPLEX_DOUBLE) 186 #define BT_FN_LONG_DOUBLE(NAME) FUNC_SIMPLE(BT_LONG, NAME, BT_DOUBLE) 187 #define BT_FN_SIZE_CONST_STRING(NAME) FUNC_SIMPLE(BT_SIZE, NAME, BT_CONST_STRING) 188 #define BT_FN_LONGLONG_FLOAT(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME, BT_FLOAT) 189 #define BT_FN_INT_CONST_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_CONST_STRING, BT_SIZE) 190 #define BT_FN_PTR_PTR_CONST_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_PTR, BT_CONST_PTR, BT_SIZE) 191 #define BT_FN_DFLOAT128(NAME) FUNC_SIMPLE(BT_DFLOAT128, NAME) 192 #define BT_FN_PID(NAME) FUNC_SIMPLE(BT_PID, NAME) 193 #define BT_FN_INT_CONST_STRING_FILEPTR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_FILEPTR) 194 #define BT_FN_INT_LONGLONG(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_LONGLONG) 195 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLE, BT_LONGDOUBLE) 196 #define BT_FN_INT_INT_FILEPTR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INT, BT_FILEPTR) 197 #define BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_LONGDOUBLE, NAME, BT_COMPLEX_LONGDOUBLE, BT_COMPLEX_LONGDOUBLE) 198 #define BT_FN_VOID_PTRMODE_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_PTRMODE_PTR) 199 #define BT_FN_INT_STRING_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_STRING, BT_CONST_STRING, BT_VAR) 200 #define BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME, BT_COMPLEX_DOUBLE) 201 #define BT_FN_DFLOAT32_CONST_STRING(NAME) FUNC_SIMPLE(BT_DFLOAT32, NAME, BT_CONST_STRING) 202 #define BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_CONST_STRING, BT_PTR_CONST_STRING, BT_PTR_CONST_STRING) 203 #define BT_FN_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME, BT_CONST_STRING, BT_SIZE) 204 #define BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_FILEPTR, BT_INT, BT_CONST_STRING, BT_VAR) 205 #define BT_FN_DFLOAT128_DFLOAT128(NAME) FUNC_SIMPLE(BT_DFLOAT128, NAME, BT_DFLOAT128) 206 #define BT_FN_DOUBLE_INT_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME, BT_INT, BT_DOUBLE) 207 #define BT_FN_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME) 208 #define BT_FN_LONGDOUBLE_INT_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_INT, BT_LONGDOUBLE) 209 #define BT_FN_PTR_CONST_PTR_INT_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME, BT_CONST_PTR, BT_INT, BT_SIZE) 210 #define BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR(NAME) FUNC_SIMPLE(BT_VOID, NAME, BT_LONGDOUBLE, BT_LONGDOUBLEPTR, BT_LONGDOUBLEPTR) 211 #define BT_FN_INT_INTMAX(NAME) FUNC_SIMPLE(BT_INT, NAME, BT_INTMAX) 212 #define BT_FN_LONGDOUBLE(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME) 213 #define BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR(NAME) FUNC_SIMPLE(BT_LONGDOUBLE, NAME, BT_LONGDOUBLE, BT_LONGDOUBLEPTR) 279 #define BT_FN_BOOL_VPTR_PTR_I1_BOOL_INT_INT(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_VPTR, BT_PTR, BT_I1, BT_BOOL, BT_INT, BT_INT) 280 #define BT_FN_BOOL_ULONG_ULONG_ULONGPTR(NAME) FUNC_SIMPLE(BT_BOOL, NAME, BT_ULONG, BT_ULONG, BT_ULONG, BT_PTR) 214 281 215 282 #include "builtins.def" -
src/prelude/builtins.def
rdbe8f244 rfe26fbf 1 1 /* This file contains the definitions and documentation for the 2 2 builtins used in the GNU compiler. 3 Copyright (C) 2000-201 4Free Software Foundation, Inc.3 Copyright (C) 2000-2016 Free Software Foundation, Inc. 4 4 5 5 This file is part of GCC. … … 63 63 64 64 The builtins is registered only if COND is true. */ 65 66 /* A macro for builtins where the 67 BUILT_IN_*_CHKP = BUILT_IN_* + BEGIN_CHKP_BUILTINS + 1 68 enums should be defined too. */ 69 #ifndef DEF_BUILTIN_CHKP 70 #define DEF_BUILTIN_CHKP(ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, \ 71 FALLBACK_P, NONANSI_P, ATTRS, IMPLICIT, COND) \ 72 DEF_BUILTIN(ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, FALLBACK_P, \ 73 NONANSI_P, ATTRS, IMPLICIT, COND) 74 #endif 65 75 66 76 /* A GCC builtin (like __builtin_saveregs) is provided by the … … 88 98 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 89 99 true, true, false, ATTRS, true, true) 100 #undef DEF_LIB_BUILTIN_CHKP 101 #define DEF_LIB_BUILTIN_CHKP(ENUM, NAME, TYPE, ATTRS) \ 102 DEF_BUILTIN_CHKP (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, \ 103 TYPE, true, true, false, ATTRS, true, true) 90 104 91 105 /* Like DEF_LIB_BUILTIN, except that the function is not one that is … … 97 111 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 98 112 true, true, true, ATTRS, false, true) 113 #undef DEF_EXT_LIB_BUILTIN_CHKP 114 #define DEF_EXT_LIB_BUILTIN_CHKP(ENUM, NAME, TYPE, ATTRS) \ 115 DEF_BUILTIN_CHKP (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, \ 116 TYPE, true, true, true, ATTRS, false, true) 99 117 100 118 /* Like DEF_LIB_BUILTIN, except that the function is only a part of … … 111 129 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 112 130 true, true, !flag_isoc99, ATTRS, targetm.libc_has_function (function_c99_misc), true) 131 132 /* Like DEF_LIB_BUILTIN, except that the function is only a part of 133 the standard in C11 or above. */ 134 #undef DEF_C11_BUILTIN 135 #define DEF_C11_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ 136 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 137 true, true, !flag_isoc11, ATTRS, targetm.libc_has_function (function_c11_misc), true) 113 138 114 139 /* Like DEF_C99_BUILTIN, but for complex math functions. */ … … 140 165 false, ATTR_LAST, false, false) 141 166 142 /* Builtin used by the implementation of GNU OpenMP. None of these are 143 actually implemented in the compiler; they're all in libgomp. */ 167 /* Builtin used by the implementation of OpenACC and OpenMP. Few of these are 168 actually implemented in the compiler; most are in libgomp. */ 169 /* These builtins also need to be enabled in offloading compilers invoked from 170 mkoffload; for that purpose, we're checking the -foffload-abi flag here. */ 171 #undef DEF_GOACC_BUILTIN 172 #define DEF_GOACC_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ 173 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 174 false, true, true, ATTRS, false, \ 175 (flag_openacc \ 176 || flag_offload_abi != OFFLOAD_ABI_UNSET)) 177 #undef DEF_GOACC_BUILTIN_COMPILER 178 #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \ 179 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 180 flag_openacc, true, true, ATTRS, false, true) 144 181 #undef DEF_GOMP_BUILTIN 145 182 #define DEF_GOMP_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ 146 183 DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ 147 184 false, true, true, ATTRS, false, \ 148 (flag_openmp || flag_tree_parallelize_loops)) 185 (flag_openacc \ 186 || flag_openmp \ 187 || flag_tree_parallelize_loops > 1 \ 188 || flag_cilkplus \ 189 || flag_offload_abi != OFFLOAD_ABI_UNSET)) 149 190 150 191 /* Builtin used by implementation of Cilk Plus. Most of these are decomposed … … 170 211 true, true, true, ATTRS, true, \ 171 212 (flag_sanitize & (SANITIZE_ADDRESS | SANITIZE_THREAD \ 172 | SANITIZE_UNDEFINED))) 213 | SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT) \ 214 || flag_sanitize_coverage)) 173 215 174 216 #undef DEF_CILKPLUS_BUILTIN … … 176 218 DEF_BUILTIN (ENUM, NAME, BUILT_IN_NORMAL, BT_FN_INT_VAR, BT_LAST, \ 177 219 false, false, false, ATTRS, false, flag_cilkplus) 220 221 /* Builtin used by the implementation of Pointer Bounds Checker. */ 222 #undef DEF_CHKP_BUILTIN 223 #define DEF_CHKP_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ 224 DEF_BUILTIN_CHKP (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, \ 225 TYPE, true, true, false, ATTRS, true, true) 178 226 179 227 /* Define an attribute list for math functions that are normally … … 224 272 DEF_C99_BUILTIN (BUILT_IN_ACOSHL, "acoshl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) 225 273 DEF_C99_C90RES_BUILTIN (BUILT_IN_ACOSL, "acosl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) 274 DEF_C11_BUILTIN (BUILT_IN_ALIGNED_ALLOC, "aligned_alloc", BT_FN_PTR_SIZE_SIZE, ATTR_MALLOC_NOTHROW_LIST) 226 275 DEF_LIB_BUILTIN (BUILT_IN_ASIN, "asin", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING_ERRNO) 227 276 DEF_C99_C90RES_BUILTIN (BUILT_IN_ASINF, "asinf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING_ERRNO) … … 428 477 DEF_C99_BUILTIN (BUILT_IN_REMQUOF, "remquof", BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) 429 478 DEF_C99_BUILTIN (BUILT_IN_REMQUOL, "remquol", BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, ATTR_MATHFN_FPROUNDING_STORE) 430 DEF_C99_BUILTIN (BUILT_IN_RINT, "rint", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING _ERRNO)431 DEF_C99_BUILTIN (BUILT_IN_RINTF, "rintf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING _ERRNO)432 DEF_C99_BUILTIN (BUILT_IN_RINTL, "rintl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING _ERRNO)479 DEF_C99_BUILTIN (BUILT_IN_RINT, "rint", BT_FN_DOUBLE_DOUBLE, ATTR_MATHFN_FPROUNDING) 480 DEF_C99_BUILTIN (BUILT_IN_RINTF, "rintf", BT_FN_FLOAT_FLOAT, ATTR_MATHFN_FPROUNDING) 481 DEF_C99_BUILTIN (BUILT_IN_RINTL, "rintl", BT_FN_LONGDOUBLE_LONGDOUBLE, ATTR_MATHFN_FPROUNDING) 433 482 DEF_C99_BUILTIN (BUILT_IN_ROUND, "round", BT_FN_DOUBLE_DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) 434 483 DEF_C99_BUILTIN (BUILT_IN_ROUNDF, "roundf", BT_FN_FLOAT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) … … 443 492 DEF_C99_BUILTIN (BUILT_IN_SCALBNF, "scalbnf", BT_FN_FLOAT_FLOAT_INT, ATTR_MATHFN_FPROUNDING_ERRNO) 444 493 DEF_C99_BUILTIN (BUILT_IN_SCALBNL, "scalbnl", BT_FN_LONGDOUBLE_LONGDOUBLE_INT, ATTR_MATHFN_FPROUNDING_ERRNO) 445 DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBIT, "signbit", BT_FN_INT_ DOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST)494 DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBIT, "signbit", BT_FN_INT_VAR, ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF) 446 495 DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITF, "signbitf", BT_FN_INT_FLOAT, ATTR_CONST_NOTHROW_LEAF_LIST) 447 496 DEF_EXT_LIB_BUILTIN (BUILT_IN_SIGNBITL, "signbitl", BT_FN_INT_LONGDOUBLE, ATTR_CONST_NOTHROW_LEAF_LIST) … … 569 618 DEF_LIB_BUILTIN (BUILT_IN_MEMCHR, "memchr", BT_FN_PTR_CONST_PTR_INT_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) 570 619 DEF_LIB_BUILTIN (BUILT_IN_MEMCMP, "memcmp", BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) 571 DEF_LIB_BUILTIN 572 DEF_LIB_BUILTIN 573 DEF_EXT_LIB_BUILTIN 574 DEF_LIB_BUILTIN 620 DEF_LIB_BUILTIN_CHKP (BUILT_IN_MEMCPY, "memcpy", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF) 621 DEF_LIB_BUILTIN_CHKP (BUILT_IN_MEMMOVE, "memmove", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF) 622 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_MEMPCPY, "mempcpy", BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 623 DEF_LIB_BUILTIN_CHKP (BUILT_IN_MEMSET, "memset", BT_FN_PTR_PTR_INT_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF) 575 624 DEF_EXT_LIB_BUILTIN (BUILT_IN_RINDEX, "rindex", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF) 576 DEF_EXT_LIB_BUILTIN 625 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_STPCPY, "stpcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF) 577 626 DEF_EXT_LIB_BUILTIN (BUILT_IN_STPNCPY, "stpncpy", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 578 627 DEF_EXT_LIB_BUILTIN (BUILT_IN_STRCASECMP, "strcasecmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) 579 DEF_LIB_BUILTIN 580 DEF_LIB_BUILTIN 628 DEF_LIB_BUILTIN_CHKP (BUILT_IN_STRCAT, "strcat", BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF) 629 DEF_LIB_BUILTIN_CHKP (BUILT_IN_STRCHR, "strchr", BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF) 581 630 DEF_LIB_BUILTIN (BUILT_IN_STRCMP, "strcmp", BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) 582 DEF_LIB_BUILTIN 631 DEF_LIB_BUILTIN_CHKP (BUILT_IN_STRCPY, "strcpy", BT_FN_STRING_STRING_CONST_STRING, ATTR_RET1_NOTHROW_NONNULL_LEAF) 583 632 DEF_LIB_BUILTIN (BUILT_IN_STRCSPN, "strcspn", BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) 584 633 DEF_EXT_LIB_BUILTIN (BUILT_IN_STRDUP, "strdup", BT_FN_STRING_CONST_STRING, ATTR_MALLOC_NOTHROW_NONNULL_LEAF) 585 634 DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNDUP, "strndup", BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_NOTHROW_NONNULL_LEAF) 586 DEF_LIB_BUILTIN 635 DEF_LIB_BUILTIN_CHKP (BUILT_IN_STRLEN, "strlen", BT_FN_SIZE_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF) 587 636 DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCASECMP, "strncasecmp", BT_FN_INT_CONST_STRING_CONST_STRING_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF) 588 637 DEF_LIB_BUILTIN (BUILT_IN_STRNCAT, "strncat", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) … … 658 707 DEF_C94_BUILTIN (BUILT_IN_TOWUPPER, "towupper", BT_FN_WINT_WINT, ATTR_PURE_NOTHROW_LEAF_LIST) 659 708 709 /* Category: integer overflow checking builtins. */ 710 DEF_GCC_BUILTIN (BUILT_IN_ADD_OVERFLOW, "add_overflow", BT_FN_BOOL_VAR, ATTR_NOTHROW_TYPEGENERIC_LEAF) 711 DEF_GCC_BUILTIN (BUILT_IN_SUB_OVERFLOW, "sub_overflow", BT_FN_BOOL_VAR, ATTR_NOTHROW_TYPEGENERIC_LEAF) 712 DEF_GCC_BUILTIN (BUILT_IN_MUL_OVERFLOW, "mul_overflow", BT_FN_BOOL_VAR, ATTR_NOTHROW_TYPEGENERIC_LEAF) 713 /* Clang compatibility. */ 714 DEF_GCC_BUILTIN (BUILT_IN_SADD_OVERFLOW, "sadd_overflow", BT_FN_BOOL_INT_INT_INTPTR, ATTR_NOTHROW_LEAF_LIST) 715 DEF_GCC_BUILTIN (BUILT_IN_SADDL_OVERFLOW, "saddl_overflow", BT_FN_BOOL_LONG_LONG_LONGPTR, ATTR_NOTHROW_LEAF_LIST) 716 DEF_GCC_BUILTIN (BUILT_IN_SADDLL_OVERFLOW, "saddll_overflow", BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) 717 DEF_GCC_BUILTIN (BUILT_IN_SSUB_OVERFLOW, "ssub_overflow", BT_FN_BOOL_INT_INT_INTPTR, ATTR_NOTHROW_LEAF_LIST) 718 DEF_GCC_BUILTIN (BUILT_IN_SSUBL_OVERFLOW, "ssubl_overflow", BT_FN_BOOL_LONG_LONG_LONGPTR, ATTR_NOTHROW_LEAF_LIST) 719 DEF_GCC_BUILTIN (BUILT_IN_SSUBLL_OVERFLOW, "ssubll_overflow", BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) 720 DEF_GCC_BUILTIN (BUILT_IN_SMUL_OVERFLOW, "smul_overflow", BT_FN_BOOL_INT_INT_INTPTR, ATTR_NOTHROW_LEAF_LIST) 721 DEF_GCC_BUILTIN (BUILT_IN_SMULL_OVERFLOW, "smull_overflow", BT_FN_BOOL_LONG_LONG_LONGPTR, ATTR_NOTHROW_LEAF_LIST) 722 DEF_GCC_BUILTIN (BUILT_IN_SMULLL_OVERFLOW, "smulll_overflow", BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) 723 DEF_GCC_BUILTIN (BUILT_IN_UADD_OVERFLOW, "uadd_overflow", BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_LEAF_LIST) 724 DEF_GCC_BUILTIN (BUILT_IN_UADDL_OVERFLOW, "uaddl_overflow", BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_LEAF_LIST) 725 DEF_GCC_BUILTIN (BUILT_IN_UADDLL_OVERFLOW, "uaddll_overflow", BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) 726 DEF_GCC_BUILTIN (BUILT_IN_USUB_OVERFLOW, "usub_overflow", BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_LEAF_LIST) 727 DEF_GCC_BUILTIN (BUILT_IN_USUBL_OVERFLOW, "usubl_overflow", BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_LEAF_LIST) 728 DEF_GCC_BUILTIN (BUILT_IN_USUBLL_OVERFLOW, "usubll_overflow", BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) 729 DEF_GCC_BUILTIN (BUILT_IN_UMUL_OVERFLOW, "umul_overflow", BT_FN_BOOL_UINT_UINT_UINTPTR, ATTR_NOTHROW_LEAF_LIST) 730 DEF_GCC_BUILTIN (BUILT_IN_UMULL_OVERFLOW, "umull_overflow", BT_FN_BOOL_ULONG_ULONG_ULONGPTR, ATTR_NOTHROW_LEAF_LIST) 731 DEF_GCC_BUILTIN (BUILT_IN_UMULLL_OVERFLOW, "umulll_overflow", BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, ATTR_NOTHROW_LEAF_LIST) 732 660 733 /* Category: miscellaneous builtins. */ 661 DEF_LIB_BUILTIN (BUILT_IN_ABORT, "abort", BT_FN_VOID, ATTR_ NORETURN_NOTHROW_LEAF_LIST)734 DEF_LIB_BUILTIN (BUILT_IN_ABORT, "abort", BT_FN_VOID, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_LIST) 662 735 DEF_LIB_BUILTIN (BUILT_IN_ABS, "abs", BT_FN_INT_INT, ATTR_CONST_NOTHROW_LEAF_LIST) 663 736 DEF_GCC_BUILTIN (BUILT_IN_AGGREGATE_INCOMING_ADDRESS, "aggregate_incoming_address", BT_FN_PTR_VAR, ATTR_LEAF_LIST) … … 794 867 /* Object size checking builtins. */ 795 868 DEF_GCC_BUILTIN (BUILT_IN_OBJECT_SIZE, "object_size", BT_FN_SIZE_CONST_PTR_INT, ATTR_PURE_NOTHROW_LEAF_LIST) 796 DEF_EXT_LIB_BUILTIN 797 DEF_EXT_LIB_BUILTIN 798 DEF_EXT_LIB_BUILTIN 799 DEF_EXT_LIB_BUILTIN 800 DEF_EXT_LIB_BUILTIN 869 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_MEMCPY_CHK, "__memcpy_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF) 870 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_MEMMOVE_CHK, "__memmove_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF) 871 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_MEMPCPY_CHK, "__mempcpy_chk", BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 872 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_MEMSET_CHK, "__memset_chk", BT_FN_PTR_PTR_INT_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 873 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_STPCPY_CHK, "__stpcpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 801 874 DEF_EXT_LIB_BUILTIN (BUILT_IN_STPNCPY_CHK, "__stpncpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 802 DEF_EXT_LIB_BUILTIN 803 DEF_EXT_LIB_BUILTIN 875 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_STRCAT_CHK, "__strcat_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 876 DEF_EXT_LIB_BUILTIN_CHKP (BUILT_IN_STRCPY_CHK, "__strcpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 804 877 DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCAT_CHK, "__strncat_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) 805 878 DEF_EXT_LIB_BUILTIN (BUILT_IN_STRNCPY_CHK, "__strncpy_chk", BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF) … … 854 927 DEF_GCC_BUILTIN (BUILT_IN_LINE, "LINE", BT_FN_INT, ATTR_NOTHROW_LEAF_LIST) 855 928 856 #if 0857 929 /* Synchronization Primitives. */ 858 930 #include "sync-builtins.def" 859 931 860 /* OpenMP builtins. */ 932 #if 0 933 /* Offloading and Multi Processing builtins. */ 861 934 #include "omp-builtins.def" 862 935 … … 872 945 /* Cilk Plus builtins. */ 873 946 #include "cilkplus.def" 947 948 /* Pointer Bounds Checker builtins. */ 949 #include "chkp-builtins.def" 874 950 #endif 951 952 #undef DEF_BUILTIN_CHKP 953 #undef DEF_BUILTIN -
src/prelude/prototypes.awk
rdbe8f244 rfe26fbf 17 17 18 18 BEGIN { 19 FS = "("19 FS = "[( )]" 20 20 # order so string search is longest string 21 types[0] = "UINTMAX"; vtypes[0] = "unsigned long int" 22 types[1] = "UINT16"; vtypes[1] = "short int" 23 types[2] = "UINT32"; vtypes[2] = "int" 24 types[3] = "UINT64"; vtypes[3] = "long long int" 25 types[4] = "UINT"; vtypes[4] = "unsigned int" 26 types[5] = "INTMAX"; vtypes[5] = "long int" 27 types[6] = "INTPTR"; vtypes[6] = "int *" 28 types[7] = "WINT"; vtypes[7] = "unsigned int" 29 types[8] = "INT"; vtypes[8] = "int" 30 types[9] = "ULONGLONG"; vtypes[9] = "unsigned long long" 31 types[10] = "ULONG"; vtypes[10] = "unsigned long" 32 types[11] = "UNSIGNED"; vtypes[11] = "unsigned" 33 types[12] = "COMPLEX_LONGDOUBLE"; vtypes[12] = "_Complex long double" 34 types[13] = "COMPLEX_DOUBLE"; vtypes[13] = "_Complex double" 35 types[14] = "COMPLEX_FLOAT"; vtypes[14] = "_Complex float" 36 types[15] = "LONGDOUBLEPTR"; vtypes[15] = "long double *" 37 types[16] = "LONGDOUBLE"; vtypes[16] = "long double" 38 types[17] = "LONGLONG"; vtypes[17] = "long long" 39 types[18] = "LONG"; vtypes[18] = "long" 40 types[19] = "DFLOAT32"; vtypes[19] = "_Decimal32" 41 types[20] = "DFLOAT64"; vtypes[20] = "_Decimal64" 42 types[21] = "DFLOAT128"; vtypes[21] = "_Decimal128" 43 types[22] = "DOUBLEPTR"; vtypes[22] = "double *" 44 types[23] = "DOUBLE"; vtypes[23] = "double" 45 types[24] = "FLOATPTR"; vtypes[24] = "float *" 46 types[25] = "FLOAT"; vtypes[25] = "float" 47 types[26] = "CONST_PTR"; vtypes[26] = "const void *" 48 types[27] = "CONST_STRING"; vtypes[27] = "const char *" 49 types[28] = "PTR_FN_VOID_VAR_PTR_SIZE"; vtypes[28] = "" 50 types[29] = "PTR_CONST_STRING"; vtypes[29] = "char *const" 51 types[30] = "PTRMODE_PTR"; vtypes[30] = "" 52 types[31] = "PTRPTR"; vtypes[31] = "void **" 53 types[32] = "PTR"; vtypes[32] = "void *" 54 types[33] = "VOID"; vtypes[33] = "void" 55 types[34] = "STRING"; vtypes[34] = "char *" 56 types[35] = "FILEPTR"; vtypes[35] = "struct _IO_FILE *" 57 types[36] = "SIZE"; vtypes[36] = "unsigned long" 58 types[37] = "VAR"; vtypes[37] = "..." 59 types[38] = "VALIST_ARG"; vtypes[38] = "__builtin_va_list" 60 types[39] = "VALIST_REF"; vtypes[39] = "__builtin_va_list" 61 types[40] = "UNWINDWORD"; vtypes[40] = "void *" 62 types[41] = "WORD"; vtypes[41] = "" 63 types[42] = "SSIZE"; vtypes[42] = "long int" 64 types[43] = "PID"; vtypes[43] = "int" 65 N = 44 21 i=-1 22 types[i+=1] = "BOOL"; vtypes[i] = "_Bool" 23 types[i+=1] = "UINTMAX"; vtypes[i] = "unsigned long int" 24 types[i+=1] = "UINT16"; vtypes[i] = "short int" 25 types[i+=1] = "UINT32"; vtypes[i] = "int" 26 types[i+=1] = "UINT64"; vtypes[i] = "long long int" 27 types[i+=1] = "UINT"; vtypes[i] = "unsigned int" 28 types[i+=1] = "INTMAX"; vtypes[i] = "long int" 29 types[i+=1] = "INTPTR"; vtypes[i] = "int *" 30 types[i+=1] = "WINT"; vtypes[i] = "unsigned int" 31 types[i+=1] = "INT"; vtypes[i] = "int" 32 types[i+=1] = "ULONGLONG"; vtypes[i] = "unsigned long long" 33 types[i+=1] = "ULONG"; vtypes[i] = "unsigned long" 34 types[i+=1] = "UNSIGNED"; vtypes[i] = "unsigned" 35 types[i+=1] = "COMPLEX_LONGDOUBLE"; vtypes[i] = "_Complex long double" 36 types[i+=1] = "COMPLEX_DOUBLE"; vtypes[i] = "_Complex double" 37 types[i+=1] = "COMPLEX_FLOAT"; vtypes[i] = "_Complex float" 38 types[i+=1] = "LONGDOUBLEPTR"; vtypes[i] = "long double *" 39 types[i+=1] = "LONGDOUBLE"; vtypes[i] = "long double" 40 types[i+=1] = "LONGLONG"; vtypes[i] = "long long" 41 types[i+=1] = "LONG"; vtypes[i] = "long" 42 types[i+=1] = "DFLOAT32"; vtypes[i] = "__Unsupported" 43 types[i+=1] = "DFLOAT64"; vtypes[i] = "__Unsupported" 44 types[i+=1] = "DFLOAT128"; vtypes[i] = "__Unsupported" 45 types[i+=1] = "DOUBLEPTR"; vtypes[i] = "double *" 46 types[i+=1] = "DOUBLE"; vtypes[i] = "double" 47 types[i+=1] = "FLOATPTR"; vtypes[i] = "float *" 48 types[i+=1] = "FLOAT128X"; vtypes[i] = "__Unsupported" 49 types[i+=1] = "FLOAT128"; vtypes[i] = "__Unsupported" 50 types[i+=1] = "FLOAT64X"; vtypes[i] = "__Unsupported" 51 types[i+=1] = "FLOAT64"; vtypes[i] = "__Unsupported" 52 types[i+=1] = "FLOAT32X"; vtypes[i] = "__Unsupported" 53 types[i+=1] = "FLOAT32"; vtypes[i] = "__Unsupported" 54 types[i+=1] = "FLOAT16"; vtypes[i] = "__Unsupported" 55 types[i+=1] = "FLOAT"; vtypes[i] = "float" 56 types[i+=1] = "CONST_VPTR"; vtypes[i] = "const volatile void *" 57 types[i+=1] = "CONST_PTR"; vtypes[i] = "const void *" 58 types[i+=1] = "CONST_STRING"; vtypes[i] = "const char *" 59 types[i+=1] = "CONST_TM_PTR"; vtypes[i] = "const struct tm *" 60 types[i+=1] = "PTR_FN_VOID_VAR_PTR_SIZE"; vtypes[i] = "" 61 types[i+=1] = "PTR_CONST_STRING"; vtypes[i] = "char *const" 62 types[i+=1] = "PTRMODE_PTR"; vtypes[i] = "" 63 types[i+=1] = "PTRPTR"; vtypes[i] = "void **" 64 types[i+=1] = "VPTR"; vtypes[i] = "volatile void *" 65 types[i+=1] = "PTR"; vtypes[i] = "void *" 66 types[i+=1] = "VOID"; vtypes[i] = "void" 67 types[i+=1] = "STRING"; vtypes[i] = "char *" 68 types[i+=1] = "FILEPTR"; vtypes[i] = "struct _IO_FILE *" 69 types[i+=1] = "SIZE"; vtypes[i] = "unsigned long" 70 types[i+=1] = "VAR"; vtypes[i] = "..." 71 types[i+=1] = "VALIST_ARG"; vtypes[i] = "__builtin_va_list" 72 types[i+=1] = "VALIST_REF"; vtypes[i] = "__builtin_va_list" 73 types[i+=1] = "UNWINDWORD"; vtypes[i] = "void *" 74 types[i+=1] = "WORD"; vtypes[i] = "" 75 types[i+=1] = "SSIZE"; vtypes[i] = "long int" 76 types[i+=1] = "PID"; vtypes[i] = "int" 77 types[i+=1] = "I16"; vtypes[i] = "__int128" 78 types[i+=1] = "I8"; vtypes[i] = "long long int" 79 types[i+=1] = "I4"; vtypes[i] = "int" 80 types[i+=1] = "I2"; vtypes[i] = "short" 81 types[i+=1] = "I1"; vtypes[i] = "char" 82 N = i + 1 66 83 } # BEGIN 67 84 68 /^BT_/ { prototypes[$1] = $1 } 85 /BT_FN/ { 86 for (i = 1; i <= NF; i++) { 87 if( match($i, "BT_FN") != 0 ) { 88 prototypes[$i] = $i 89 } 90 } 91 } 69 92 70 93 END { … … 80 103 81 104 for ( prototype in prototypes ) { 82 if ( index( "BT_LAST", prototype ) == 1 ) { 83 continue 84 } # if 105 # printf( "//\"%s\"\n", prototype ) 106 if ( index( "BT_LAST", prototype ) == 1 ) { 107 continue 108 } # if 85 109 86 110 printf( "#define %s(NAME) FUNC_SIMPLE(", prototype ) 87 111 88 89 90 91 112 if ( sub( "BT_FN_", "", prototype ) == 0 ) { 113 printf( "\n********** BAD MACRO NAME \"%s\" **********\n", prototype ) 114 exit 0 115 } # if 92 116 93 94 95 96 97 98 99 100 101 117 # generate function return type as macro 118 for ( t = 0; t < N; t += 1 ) { # find longest match 119 type = types[t]; 120 if ( index( prototype, type ) == 1 ) { # found match 121 printf( "BT_%s, NAME", type ) 122 sub( type, "", prototype ) 123 break; 124 } # if 125 } # for 102 126 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 127 # generate function parameter types as macro 128 if ( index( prototype, "VAR" ) != 2 ) { # C-style empty parameters ? 129 for ( p = 0; length( prototype ) > 0; p += 1 ) { # until all parameters types are removed 130 sub( "_", "", prototype) # remove "_" 131 printf( ", ", type ) 132 temp = prototype 133 for ( t = 0; t < N; t += 1 ) { # find longest match 134 type = types[t]; 135 if ( index( prototype, type ) == 1 ) { # found match 136 printf( "BT_%s", type ) 137 sub( type, "", prototype ) 138 break; 139 } # if 140 } # for 141 if ( temp == prototype ) { # no match found for parameter in macro table 142 printf( "\n********** MISSING TYPE \"%s\" **********\n", prototype ) 143 exit 0 144 } # if 145 } # for 146 } # if 147 printf( ")\n" ) 124 148 } # for 125 149 -
src/tests/.expect/64/declarationSpecifier.txt
rdbe8f244 rfe26fbf 1 __attribute__ ((__ malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(long unsigned int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void abort(void);4 __attribute__ ((__no nnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));5 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void exit(int __status);3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 7 volatile const short __x1__CVs_1; … … 629 629 } 630 630 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); } 631 __attribute__ ((__ malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);631 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(long unsigned int __size); 632 632 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 633 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void abort(void);634 __attribute__ ((__no nnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));635 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void exit(int __status);633 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 634 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void)); 635 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status); 636 636 extern int printf(const char *__restrict __format, ...); 637 637 static inline int invoke_main(int argc, char **argv, char **envp); -
src/tests/.expect/64/extension.txt
rdbe8f244 rfe26fbf 1 __attribute__ ((__ malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(long unsigned int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void abort(void);4 __attribute__ ((__no nnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));5 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void exit(int __status);3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 7 __extension__ int __a__i_1; … … 77 77 __B__C2eE_1, 78 78 }; 79 __extension__ int __f__Fi___1(); 80 __extension__ int i; 81 __extension__ int j; 79 82 __extension__ int __fred__Fi_i__1(int __p__i_1){ 80 83 int ___retval_fred__i_1; … … 83 86 __extension__ int __b__i_2; 84 87 __extension__ int __c__i_2; 88 __extension__ int *__x__Pi_2; 89 __extension__ int *__y__Pi_2; 90 __extension__ int *__z__Pi_2; 85 91 }; 86 92 int __i__i_2 = ((int )(__extension__ __a__i_1+__extension__ 3)); … … 94 100 ((void)((_tmp_cp_ret0=__extension__ __fred__Fi_i__1(3)) , _tmp_cp_ret0)); 95 101 ((void)((*((int *)(&_tmp_cp_ret0)))) /* ^?{} */); 102 __extension__ int __mary__Fi_i__2(int __p__i_2){ 103 int ___retval_mary__i_2; 104 } 96 105 ((void)__extension__ sizeof(3)); 97 106 ((void)__extension__ (((int )(3!=((int )0))) || ((int )(4!=((int )0))))); -
src/tests/.expect/64/gccExtensions.txt
rdbe8f244 rfe26fbf 1 __attribute__ ((__ malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);1 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(long unsigned int __size); 2 2 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 3 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void abort(void);4 __attribute__ ((__no nnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));5 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void exit(int __status);3 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 4 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void)); 5 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 7 extern int __x__i_1 asm ( "xx" ); … … 166 166 } 167 167 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); } 168 __attribute__ ((__ malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);168 __attribute__ ((__nothrow__,__leaf__,__malloc__)) extern void *malloc(long unsigned int __size); 169 169 __attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr); 170 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void abort(void);171 __attribute__ ((__no nnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));172 __attribute__ ((__no return__,__nothrow__,__leaf__)) extern void exit(int __status);170 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void abort(void); 171 __attribute__ ((__nothrow__,__leaf__,__nonnull__(1))) extern int atexit(void (*__func)(void)); 172 __attribute__ ((__nothrow__,__leaf__,__noreturn__)) extern void exit(int __status); 173 173 extern int printf(const char *__restrict __format, ...); 174 174 static inline int invoke_main(int argc, char **argv, char **envp); -
src/tests/Makefile.am
rdbe8f244 rfe26fbf 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Mon Aug 15 12:24:54 201614 ## Update Count : 3913 ## Last Modified On : Mon Feb 6 16:10:43 2017 14 ## Update Count : 40 15 15 ############################################################################### 16 16 … … 65 65 ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} 66 66 67 attributes : attributes.c 68 ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} 69 67 70 memberCtors-ERR1: memberCtors.c 68 71 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@} -
src/tests/Makefile.in
rdbe8f244 rfe26fbf 686 686 ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} 687 687 688 attributes : attributes.c 689 ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} 690 688 691 memberCtors-ERR1: memberCtors.c 689 692 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@} -
src/tests/extension.c
rdbe8f244 rfe26fbf 7 7 // Created On : Mon Jul 4 20:42:43 2016 8 8 // Last Modified By : Peter A. Buhr 9 // Last Modified On : Mon Jul 4 23:31:22 201610 // Update Count : 39 // Last Modified On : Mon Feb 6 15:44:39 2017 10 // Update Count : 46 11 11 // 12 12 13 __extension__ int a, b, c;13 __extension__ __extension__ int a, b, c; 14 14 __extension__ struct S { 15 15 __extension__ int a, b, c; 16 16 }; 17 17 __extension__ union U { 18 18 __extension__ int a, b, c; 19 19 }; 20 20 __extension__ enum E { 21 21 R, G, B, 22 22 }; 23 23 __extension__ typedef int www; // typedefs are removed => no output 24 __extension__ __extension__ int f(); 25 //__extension__ __extension__ asm( "nop" ); 26 #ifdef __cforall 27 __extension__ __extension__ extern "C" { 28 int i, j; 29 } 30 #endif // __cforall 24 31 25 32 __extension__ int fred( int p ) { 26 __extension__ struct S { 27 __extension__ int a, b, c; 28 }; 29 int i = __extension__ a + __extension__ 3; 30 __extension__ 3; 31 __extension__ a; 32 __extension__ int a, b, c; 33 __extension__ struct S { 34 __extension__ int a, b, c; 35 #ifdef __cforall 36 __extension__ * int x, y, z; 37 #endif // __cforall 38 }; 39 int i = __extension__ a + __extension__ 3; 40 __extension__ 3; 41 __extension__ a; 42 __extension__ int a, b, c; 33 43 34 __extension__ a = __extension__ b + __extension__ c; 35 __extension__ fred( 3 ); 36 __extension__ sizeof( 3 ); 37 __extension__ (3 || 4); 38 __extension__ __alignof__( __extension__ a ); 39 __extension__ a || __extension__ b && __extension__ c; 40 __extension__ a > __extension__ b ? __extension__ c : __extension__ c; 41 __extension__ a = __extension__ ( __extension__ b + __extension__ c ); 42 __extension__ a, __extension__ b, __extension__ c; 44 __extension__ a = __extension__ b + __extension__ c; 45 __extension__ fred( 3 ); 46 __extension__ int mary( int p ) {} 47 __extension__ sizeof( 3 ); 48 __extension__ (3 || 4); 49 __extension__ __alignof__( __extension__ a ); 50 __extension__ a || __extension__ b && __extension__ c; 51 __extension__ a > __extension__ b ? __extension__ c : __extension__ c; 52 __extension__ a = __extension__ ( __extension__ b + __extension__ c ); 53 __extension__ a, __extension__ b, __extension__ c; 43 54 } 44 55 -
src/tests/thread.c
rdbe8f244 rfe26fbf 7 7 struct Second { thread t; simple_lock* lock; }; 8 8 9 DECL_THREAD(First) 10 DECL_THREAD(Second) 9 DECL_THREAD(First); 10 DECL_THREAD(Second); 11 11 12 12 void ?{}( First * this, simple_lock* lock ) { this->lock = lock; }
Note:
See TracChangeset
for help on using the changeset viewer.