Changeset fa463f1
- Timestamp:
- Aug 30, 2016, 4:26:01 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- c8dfcd3
- Parents:
- 3906301 (diff), 32a2a99 (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:
-
- 35 deleted
- 36 edited
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/ScopedMap.h
r3906301 rfa463f1 42 42 typedef typename Scope::pointer pointer; 43 43 typedef typename Scope::const_pointer const_pointer; 44 44 45 45 class iterator : public std::iterator< std::bidirectional_iterator_tag, 46 46 value_type > { … … 68 68 } 69 69 70 iterator(scope_list const&_scopes, const wrapped_iterator &_it, size_type _i)70 iterator(scope_list &_scopes, const wrapped_iterator &_it, size_type _i) 71 71 : scopes(&_scopes), it(_it), i(_i) {} 72 72 public: … … 76 76 return *this; 77 77 } 78 78 79 79 reference operator* () { return *it; } 80 80 pointer operator-> () { return it.operator->(); } … … 109 109 110 110 private: 111 scope_list const*scopes;111 scope_list *scopes; 112 112 wrapped_iterator it; 113 113 size_type i; … … 189 189 size_type i; 190 190 }; 191 191 192 192 /// Starts a new scope 193 193 void beginScope() { 194 Scope scope; 195 scopes.push_back(scope); 194 scopes.emplace_back(); 196 195 } 197 196 … … 227 226 return const_iterator( const_cast< ScopedMap< Key, Value >* >(this)->find( key ) ); 228 227 } 229 228 230 229 /// Finds the given key in the outermost scope inside the given scope where it occurs 231 230 iterator findNext( const_iterator &it, const Key &key ) { … … 247 246 return std::make_pair( iterator(scopes, res.first, scopes.size()-1), res.second ); 248 247 } 248 249 std::pair< iterator, bool > insert( value_type &&value ) { 250 std::pair< typename Scope::iterator, bool > res = scopes.back().insert( std::move( value ) ); 251 return std::make_pair( iterator(scopes, std::move( res.first ), scopes.size()-1), std::move( res.second ) ); 252 } 253 249 254 std::pair< iterator, bool > insert( const Key &key, const Value &value ) { return insert( std::make_pair( key, value ) ); } 255 std::pair< iterator, bool > insert( const Key &key, Value &&value ) { return insert( std::make_pair( key, std::move( value ) ) ); } 250 256 251 257 Value& operator[] ( const Key &key ) { … … 254 260 return insert( key, Value() ).first->second; 255 261 } 262 263 iterator erase( iterator pos ) { 264 Scope& scope = (*pos.scopes) [ pos.i ]; 265 const typename iterator::wrapped_iterator& new_it = scope.erase( pos.it ); 266 iterator it( *pos.scopes, new_it, pos.i ); 267 return it.next_valid(); 268 } 269 270 size_type count( const Key &key ) const { 271 size_type c = 0; 272 auto it = find( key ); 273 auto end = cend(); 274 275 while(it != end) { 276 c++; 277 it = findNext(it, key); 278 } 279 280 return c; 281 } 282 256 283 }; 257 284 } // namespace GenPoly -
src/InitTweak/InitTweak.cc
r3906301 rfa463f1 79 79 public: 80 80 ExprImpl( Expression * expr ) : arg( expr ) {} 81 82 ~ExprImpl() { delete arg; } 81 83 82 84 virtual std::list< Expression * > next( std::list< Expression * > & indices ) { … … 122 124 123 125 void InitExpander::clearArrayIndices() { 126 deleteAll( indices ); 124 127 indices.clear(); 125 128 } -
src/Makefile.am
r3906301 rfa463f1 25 25 # Is there a way to use a variable for the directory names? 26 26 27 include ArgTweak/module.mk28 27 include CodeGen/module.mk 29 28 include Common/module.mk 30 29 include ControlStruct/module.mk 31 include Designators/module.mk32 30 include GenPoly/module.mk 33 31 include InitTweak/module.mk -
src/Makefile.in
r3906301 rfa463f1 22 22 ############################################################################### 23 23 24 ######################### -*- Mode: Makefile-Gmake -*- ########################25 ###############################################################################26 27 24 #SRC += ArgTweak/Rewriter.cc \ 28 25 # ArgTweak/Mutate.cc 29 30 ######################### -*- Mode: Makefile-Gmake -*- ########################31 ###############################################################################32 26 33 27 ######################### -*- Mode: Makefile-Gmake -*- ######################## … … 75 69 PRE_UNINSTALL = : 76 70 POST_UNINSTALL = : 77 DIST_COMMON = $(srcdir)/ArgTweak/module.mk $(srcdir)/CodeGen/module.mk \ 78 $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk \ 79 $(srcdir)/Designators/module.mk $(srcdir)/GenPoly/module.mk \ 71 DIST_COMMON = $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk \ 72 $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk \ 80 73 $(srcdir)/InitTweak/module.mk $(srcdir)/Makefile.am \ 81 74 $(srcdir)/Makefile.in $(srcdir)/Parser/module.mk \ … … 112 105 ControlStruct/driver_cfa_cpp-ForExprMutator.$(OBJEXT) \ 113 106 ControlStruct/driver_cfa_cpp-LabelTypeChecker.$(OBJEXT) \ 114 Designators/driver_cfa_cpp-Processor.$(OBJEXT) \115 107 GenPoly/driver_cfa_cpp-Box.$(OBJEXT) \ 116 108 GenPoly/driver_cfa_cpp-GenPoly.$(OBJEXT) \ … … 196 188 SynTree/driver_cfa_cpp-TypeSubstitution.$(OBJEXT) \ 197 189 SynTree/driver_cfa_cpp-Attribute.$(OBJEXT) \ 198 Tuples/driver_cfa_cpp-Mutate.$(OBJEXT) \199 Tuples/driver_cfa_cpp-AssignExpand.$(OBJEXT) \200 Tuples/driver_cfa_cpp-FunctionFixer.$(OBJEXT) \201 190 Tuples/driver_cfa_cpp-TupleAssignment.$(OBJEXT) \ 202 Tuples/driver_cfa_cpp-FunctionChecker.$(OBJEXT) \203 191 Tuples/driver_cfa_cpp-NameMatcher.$(OBJEXT) 204 192 am_driver_cfa_cpp_OBJECTS = $(am__objects_1) … … 374 362 ControlStruct/MLEMutator.cc ControlStruct/Mutate.cc \ 375 363 ControlStruct/ForExprMutator.cc \ 376 ControlStruct/LabelTypeChecker.cc Designators/Processor.cc \377 GenPoly/ Box.cc GenPoly/GenPoly.cc GenPoly/PolyMutator.cc \364 ControlStruct/LabelTypeChecker.cc GenPoly/Box.cc \ 365 GenPoly/GenPoly.cc GenPoly/PolyMutator.cc \ 378 366 GenPoly/ScrubTyVars.cc GenPoly/Lvalue.cc GenPoly/Specialize.cc \ 379 367 GenPoly/CopyParams.cc GenPoly/FindFunction.cc \ … … 413 401 SynTree/Initializer.cc SynTree/Visitor.cc SynTree/Mutator.cc \ 414 402 SynTree/AddStmtVisitor.cc SynTree/TypeSubstitution.cc \ 415 SynTree/Attribute.cc Tuples/Mutate.cc Tuples/AssignExpand.cc \ 416 Tuples/FunctionFixer.cc Tuples/TupleAssignment.cc \ 417 Tuples/FunctionChecker.cc Tuples/NameMatcher.cc 403 SynTree/Attribute.cc Tuples/TupleAssignment.cc \ 404 Tuples/NameMatcher.cc 418 405 MAINTAINERCLEANFILES = Parser/parser.output ${libdir}/${notdir \ 419 406 ${cfa_cpplib_PROGRAMS}} … … 433 420 .SUFFIXES: 434 421 .SUFFIXES: .cc .ll .o .obj .yy 435 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/ ArgTweak/module.mk $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/Designators/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)422 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/CodeGen/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) 436 423 @for dep in $?; do \ 437 424 case '$(am__configure_deps)' in \ … … 454 441 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 455 442 esac; 456 $(srcdir)/ ArgTweak/module.mk $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/Designators/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:443 $(srcdir)/CodeGen/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: 457 444 458 445 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) … … 553 540 ControlStruct/$(am__dirstamp) \ 554 541 ControlStruct/$(DEPDIR)/$(am__dirstamp) 555 Designators/$(am__dirstamp):556 @$(MKDIR_P) Designators557 @: > Designators/$(am__dirstamp)558 Designators/$(DEPDIR)/$(am__dirstamp):559 @$(MKDIR_P) Designators/$(DEPDIR)560 @: > Designators/$(DEPDIR)/$(am__dirstamp)561 Designators/driver_cfa_cpp-Processor.$(OBJEXT): \562 Designators/$(am__dirstamp) \563 Designators/$(DEPDIR)/$(am__dirstamp)564 542 GenPoly/$(am__dirstamp): 565 543 @$(MKDIR_P) GenPoly … … 789 767 @$(MKDIR_P) Tuples/$(DEPDIR) 790 768 @: > Tuples/$(DEPDIR)/$(am__dirstamp) 791 Tuples/driver_cfa_cpp-Mutate.$(OBJEXT): Tuples/$(am__dirstamp) \792 Tuples/$(DEPDIR)/$(am__dirstamp)793 Tuples/driver_cfa_cpp-AssignExpand.$(OBJEXT): Tuples/$(am__dirstamp) \794 Tuples/$(DEPDIR)/$(am__dirstamp)795 Tuples/driver_cfa_cpp-FunctionFixer.$(OBJEXT): Tuples/$(am__dirstamp) \796 Tuples/$(DEPDIR)/$(am__dirstamp)797 769 Tuples/driver_cfa_cpp-TupleAssignment.$(OBJEXT): \ 798 Tuples/$(am__dirstamp) Tuples/$(DEPDIR)/$(am__dirstamp)799 Tuples/driver_cfa_cpp-FunctionChecker.$(OBJEXT): \800 770 Tuples/$(am__dirstamp) Tuples/$(DEPDIR)/$(am__dirstamp) 801 771 Tuples/driver_cfa_cpp-NameMatcher.$(OBJEXT): Tuples/$(am__dirstamp) \ … … 824 794 -rm -f ControlStruct/driver_cfa_cpp-MLEMutator.$(OBJEXT) 825 795 -rm -f ControlStruct/driver_cfa_cpp-Mutate.$(OBJEXT) 826 -rm -f Designators/driver_cfa_cpp-Processor.$(OBJEXT)827 796 -rm -f GenPoly/driver_cfa_cpp-Box.$(OBJEXT) 828 797 -rm -f GenPoly/driver_cfa_cpp-CopyParams.$(OBJEXT) … … 908 877 -rm -f SynTree/driver_cfa_cpp-Visitor.$(OBJEXT) 909 878 -rm -f SynTree/driver_cfa_cpp-VoidType.$(OBJEXT) 910 -rm -f Tuples/driver_cfa_cpp-AssignExpand.$(OBJEXT)911 -rm -f Tuples/driver_cfa_cpp-FunctionChecker.$(OBJEXT)912 -rm -f Tuples/driver_cfa_cpp-FunctionFixer.$(OBJEXT)913 -rm -f Tuples/driver_cfa_cpp-Mutate.$(OBJEXT)914 879 -rm -f Tuples/driver_cfa_cpp-NameMatcher.$(OBJEXT) 915 880 -rm -f Tuples/driver_cfa_cpp-TupleAssignment.$(OBJEXT) … … 934 899 @AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/driver_cfa_cpp-MLEMutator.Po@am__quote@ 935 900 @AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/driver_cfa_cpp-Mutate.Po@am__quote@ 936 @AMDEP_TRUE@@am__include@ @am__quote@Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po@am__quote@937 901 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Po@am__quote@ 938 902 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/driver_cfa_cpp-CopyParams.Po@am__quote@ … … 1018 982 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-Visitor.Po@am__quote@ 1019 983 @AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/driver_cfa_cpp-VoidType.Po@am__quote@ 1020 @AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po@am__quote@1021 @AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po@am__quote@1022 @AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po@am__quote@1023 @AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po@am__quote@1024 984 @AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-NameMatcher.Po@am__quote@ 1025 985 @AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Po@am__quote@ … … 1265 1225 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/driver_cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi` 1266 1226 1267 Designators/driver_cfa_cpp-Processor.o: Designators/Processor.cc1268 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.o -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc1269 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po1270 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.o' libtool=no @AMDEPBACKSLASH@1271 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@1272 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc1273 1274 Designators/driver_cfa_cpp-Processor.obj: Designators/Processor.cc1275 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/driver_cfa_cpp-Processor.obj -MD -MP -MF Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`1276 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/driver_cfa_cpp-Processor.Po1277 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Designators/Processor.cc' object='Designators/driver_cfa_cpp-Processor.obj' libtool=no @AMDEPBACKSLASH@1278 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@1279 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/driver_cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`1280 1281 1227 GenPoly/driver_cfa_cpp-Box.o: GenPoly/Box.cc 1282 1228 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/driver_cfa_cpp-Box.o -MD -MP -MF GenPoly/$(DEPDIR)/driver_cfa_cpp-Box.Tpo -c -o GenPoly/driver_cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc … … 2441 2387 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/driver_cfa_cpp-Attribute.obj `if test -f 'SynTree/Attribute.cc'; then $(CYGPATH_W) 'SynTree/Attribute.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Attribute.cc'; fi` 2442 2388 2443 Tuples/driver_cfa_cpp-Mutate.o: Tuples/Mutate.cc2444 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc2445 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po2446 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@2447 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2448 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc2449 2450 Tuples/driver_cfa_cpp-Mutate.obj: Tuples/Mutate.cc2451 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-Mutate.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`2452 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-Mutate.Po2453 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/Mutate.cc' object='Tuples/driver_cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@2454 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2455 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`2456 2457 Tuples/driver_cfa_cpp-AssignExpand.o: Tuples/AssignExpand.cc2458 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc2459 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po2460 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.o' libtool=no @AMDEPBACKSLASH@2461 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2462 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc2463 2464 Tuples/driver_cfa_cpp-AssignExpand.obj: Tuples/AssignExpand.cc2465 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-AssignExpand.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`2466 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-AssignExpand.Po2467 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/AssignExpand.cc' object='Tuples/driver_cfa_cpp-AssignExpand.obj' libtool=no @AMDEPBACKSLASH@2468 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2469 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`2470 2471 Tuples/driver_cfa_cpp-FunctionFixer.o: Tuples/FunctionFixer.cc2472 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc2473 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po2474 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.o' libtool=no @AMDEPBACKSLASH@2475 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2476 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc2477 2478 Tuples/driver_cfa_cpp-FunctionFixer.obj: Tuples/FunctionFixer.cc2479 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionFixer.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`2480 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionFixer.Po2481 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionFixer.cc' object='Tuples/driver_cfa_cpp-FunctionFixer.obj' libtool=no @AMDEPBACKSLASH@2482 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2483 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`2484 2485 2389 Tuples/driver_cfa_cpp-TupleAssignment.o: Tuples/TupleAssignment.cc 2486 2390 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-TupleAssignment.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-TupleAssignment.Tpo -c -o Tuples/driver_cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc … … 2496 2400 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 2497 2401 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi` 2498 2499 Tuples/driver_cfa_cpp-FunctionChecker.o: Tuples/FunctionChecker.cc2500 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.o -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc2501 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po2502 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.o' libtool=no @AMDEPBACKSLASH@2503 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2504 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc2505 2506 Tuples/driver_cfa_cpp-FunctionChecker.obj: Tuples/FunctionChecker.cc2507 @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/driver_cfa_cpp-FunctionChecker.obj -MD -MP -MF Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`2508 @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/driver_cfa_cpp-FunctionChecker.Po2509 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='Tuples/FunctionChecker.cc' object='Tuples/driver_cfa_cpp-FunctionChecker.obj' libtool=no @AMDEPBACKSLASH@2510 @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@2511 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(driver_cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/driver_cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`2512 2402 2513 2403 Tuples/driver_cfa_cpp-NameMatcher.o: Tuples/NameMatcher.cc … … 2654 2544 -rm -f ControlStruct/$(DEPDIR)/$(am__dirstamp) 2655 2545 -rm -f ControlStruct/$(am__dirstamp) 2656 -rm -f Designators/$(DEPDIR)/$(am__dirstamp)2657 -rm -f Designators/$(am__dirstamp)2658 2546 -rm -f GenPoly/$(DEPDIR)/$(am__dirstamp) 2659 2547 -rm -f GenPoly/$(am__dirstamp) … … 2685 2573 2686 2574 distclean: distclean-am 2687 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) Designators/$(DEPDIR)GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)2575 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) 2688 2576 -rm -f Makefile 2689 2577 distclean-am: clean-am distclean-compile distclean-generic \ … … 2731 2619 2732 2620 maintainer-clean: maintainer-clean-am 2733 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) Designators/$(DEPDIR)GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)2621 -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR) 2734 2622 -rm -f Makefile 2735 2623 maintainer-clean-am: distclean-am maintainer-clean-generic … … 2766 2654 2767 2655 2768 #SRC += ArgTweak/Rewriter.cc \2769 # ArgTweak/Mutate.cc2770 2771 # Tuples/MultipleAssign.cc \2772 # Tuples/FlattenTuple.cc \2773 # Tuples/MultRet.cc \2774 # Tuples/FixReturn.cc \2775 # Tuples/MassAssignment.cc \2776 # Tuples/TupleFixer.cc2777 2778 2656 # Tell versions [3.59,3.63) of GNU make to not export all variables. 2779 2657 # Otherwise a system limit (for SysV at least) may be exceeded. -
src/Parser/DeclarationNode.cc
r3906301 rfa463f1 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:48:23201613 // Update Count : 18212 // Last Modified On : Sun Aug 28 22:12:44 2016 13 // Update Count : 278 14 14 // 15 15 … … 93 93 } // if 94 94 95 if (storageClass != NoStorageClass) os << DeclarationNode::storageName[storageClass] << ' ';96 if (isInline) os << DeclarationNode::storageName[Inline] << ' ';97 if (isNoreturn) os << DeclarationNode::storageName[Noreturn] << ' ';95 if ( storageClass != NoStorageClass ) os << DeclarationNode::storageName[storageClass] << ' '; 96 if ( isInline ) os << DeclarationNode::storageName[Inline] << ' '; 97 if ( isNoreturn ) os << DeclarationNode::storageName[Noreturn] << ' '; 98 98 if ( type ) { 99 99 type->print( os, indent ); … … 147 147 } // DeclarationNode::newFunction 148 148 149 DeclarationNode * DeclarationNode::newQualifier( Qualifier q ) {149 DeclarationNode * DeclarationNode::newQualifier( Qualifier q ) { 150 150 DeclarationNode *newnode = new DeclarationNode; 151 151 newnode->type = new TypeData(); 152 newnode->type->qualifiers .push_back( q );152 newnode->type->qualifiers[ q ] = 1; 153 153 return newnode; 154 154 } // DeclarationNode::newQualifier 155 155 156 DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) { 157 DeclarationNode *newnode = new DeclarationNode; 158 switch (sc) { 159 case Inline: newnode->isInline = true; break; 160 case Noreturn: newnode->isNoreturn = true; break; 161 default: newnode->storageClass = sc; break; 162 } 156 DeclarationNode * DeclarationNode::newForall( DeclarationNode *forall ) { 157 DeclarationNode *newnode = new DeclarationNode; 158 newnode->type = new TypeData( TypeData::Unknown ); 159 newnode->type->forall = forall; 160 return newnode; 161 } // DeclarationNode::newForall 162 163 DeclarationNode * DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) { 164 DeclarationNode *newnode = new DeclarationNode; 165 //switch (sc) { 166 // case Inline: newnode->isInline = true; break; 167 // case Noreturn: newnode->isNoreturn = true; break; 168 // default: newnode->storageClass = sc; break; 169 //} 170 newnode->storageClass = sc; 163 171 return newnode; 164 172 } // DeclarationNode::newStorageClass 165 173 166 DeclarationNode * DeclarationNode::newBasicType( BasicType bt ) {174 DeclarationNode * DeclarationNode::newBasicType( BasicType bt ) { 167 175 DeclarationNode *newnode = new DeclarationNode; 168 176 newnode->type = new TypeData( TypeData::Basic ); … … 171 179 } // DeclarationNode::newBasicType 172 180 173 DeclarationNode *DeclarationNode::newBuiltinType( BuiltinType bt ) { 181 DeclarationNode * DeclarationNode::newModifier( Modifier mod ) { 182 DeclarationNode *newnode = new DeclarationNode; 183 newnode->type = new TypeData( TypeData::Basic ); 184 newnode->type->basic->modifiers.push_back( mod ); 185 return newnode; 186 } // DeclarationNode::newModifier 187 188 DeclarationNode * DeclarationNode::newBuiltinType( BuiltinType bt ) { 174 189 DeclarationNode *newnode = new DeclarationNode; 175 190 newnode->type = new TypeData( TypeData::Builtin ); … … 178 193 } // DeclarationNode::newBuiltinType 179 194 180 DeclarationNode *DeclarationNode::newModifier( Modifier mod ) { 181 DeclarationNode *newnode = new DeclarationNode; 182 newnode->type = new TypeData( TypeData::Basic ); 183 newnode->type->basic->modifiers.push_back( mod ); 184 return newnode; 185 } // DeclarationNode::newModifier 186 187 DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) { 188 DeclarationNode *newnode = new DeclarationNode; 189 newnode->type = new TypeData( TypeData::Unknown ); 190 newnode->type->forall = forall; 191 return newnode; 192 } // DeclarationNode::newForall 193 194 DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) { 195 DeclarationNode * DeclarationNode::newFromTypedef( std::string *name ) { 195 196 DeclarationNode *newnode = new DeclarationNode; 196 197 newnode->type = new TypeData( TypeData::SymbolicInst ); … … 201 202 } // DeclarationNode::newFromTypedef 202 203 203 DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ) {204 DeclarationNode * DeclarationNode::newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ) { 204 205 DeclarationNode *newnode = new DeclarationNode; 205 206 newnode->type = new TypeData( TypeData::Aggregate ); … … 369 370 src = 0; 370 371 } else { 371 dst->qualifiers.splice( dst->qualifiers.end(), src->qualifiers ); 372 } // if 373 } // if 374 } 372 dst->qualifiers |= src->qualifiers; 373 } // if 374 } // if 375 } 376 377 void DeclarationNode::checkQualifiers( const TypeData *src, const TypeData *dst ) { 378 TypeData::Qualifiers qsrc = src->qualifiers, qdst = dst->qualifiers; 379 380 if ( (qsrc & qdst).any() ) { // common bits between qualifier masks ? 381 error = "duplicate qualifier "; 382 int j = 0; // separator detector 383 for ( int i = 0; i < DeclarationNode::NoOfQualifier; i += 1 ) { 384 if ( qsrc[i] & qdst[i] ) { // find specific qualifiers in common 385 if ( j > 0 ) error += ", "; 386 error += DeclarationNode::qualifierName[i]; 387 j += 1; 388 } // if 389 } // for 390 error += " in declaration of "; 391 } // if 392 } // DeclarationNode::checkQualifiers 375 393 376 394 DeclarationNode *DeclarationNode::addQualifiers( DeclarationNode *q ) { … … 380 398 if ( ! type ) { 381 399 type = new TypeData; 400 } else { 401 checkQualifiers( q->type, type ); 382 402 } // if 383 403 addQualifiersToType( q->type, type ); … … 405 425 isInline = isInline || q->isInline; 406 426 isNoreturn = isNoreturn || q->isNoreturn; 407 if (storageClass == NoStorageClass) {427 if ( storageClass == NoStorageClass ) { 408 428 storageClass = q->storageClass; 409 } 410 else if (q->storageClass != NoStorageClass) { 429 } else if ( q->storageClass != NoStorageClass ) { 411 430 q->error = "invalid combination of storage classes in declaration of "; 412 } 413 if (error.empty()) error = q->error;431 } // if 432 if ( error.empty() ) error = q->error; 414 433 return this; 415 434 } … … 430 449 switch ( dst->kind ) { 431 450 case TypeData::Unknown: 432 src->qualifiers .splice( src->qualifiers.end(), dst->qualifiers );451 src->qualifiers |= dst->qualifiers; 433 452 dst = src; 434 453 src = 0; 435 454 break; 436 455 case TypeData::Basic: 437 dst->qualifiers .splice( dst->qualifiers.end(), src->qualifiers );456 dst->qualifiers |= src->qualifiers; 438 457 if ( src->kind != TypeData::Unknown ) { 439 458 assert( src->kind == TypeData::Basic ); … … 451 470 dst->base->aggInst->params = maybeClone( src->aggregate->actuals ); 452 471 } // if 453 dst->base->qualifiers .splice( dst->base->qualifiers.end(), src->qualifiers );472 dst->base->qualifiers |= src->qualifiers; 454 473 src = 0; 455 474 break; … … 480 499 type->aggInst->params = maybeClone( o->type->aggregate->actuals ); 481 500 } // if 482 type->qualifiers .splice( type->qualifiers.end(), o->type->qualifiers );501 type->qualifiers |= o->type->qualifiers; 483 502 } else { 484 503 type = o->type; … … 615 634 p->type->base->aggInst->params = maybeClone( type->aggregate->actuals ); 616 635 } // if 617 p->type->base->qualifiers .splice( p->type->base->qualifiers.end(), type->qualifiers );636 p->type->base->qualifiers |= type->qualifiers; 618 637 break; 619 638 … … 652 671 lastArray->base->aggInst->params = maybeClone( type->aggregate->actuals ); 653 672 } // if 654 lastArray->base->qualifiers .splice( lastArray->base->qualifiers.end(), type->qualifiers );673 lastArray->base->qualifiers |= type->qualifiers; 655 674 break; 656 675 default: … … 782 801 DeclarationNode *DeclarationNode::extractAggregate() const { 783 802 if ( type ) { 784 TypeData *ret = type ->extractAggregate();803 TypeData *ret = typeextractAggregate( type ); 785 804 if ( ret ) { 786 805 DeclarationNode *newnode = new DeclarationNode; … … 875 894 876 895 Declaration *DeclarationNode::build() const { 877 if ( !error.empty() ) throw SemanticError( error, this );896 if ( ! error.empty() ) throw SemanticError( error, this ); 878 897 if ( type ) { 879 return type->buildDecl(name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );898 return buildDecl( type, name, storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 880 899 } // if 881 900 if ( ! isInline && ! isNoreturn ) { … … 890 909 switch ( type->kind ) { 891 910 case TypeData::Enum: 892 return new EnumInstType( type->buildQualifiers(), type->enumeration->name );911 return new EnumInstType( buildQualifiers( type ), type->enumeration->name ); 893 912 case TypeData::Aggregate: { 894 913 ReferenceToType *ret; 895 914 switch ( type->aggregate->kind ) { 896 915 case DeclarationNode::Struct: 897 ret = new StructInstType( type->buildQualifiers(), type->aggregate->name );916 ret = new StructInstType( buildQualifiers( type ), type->aggregate->name ); 898 917 break; 899 918 case DeclarationNode::Union: 900 ret = new UnionInstType( type->buildQualifiers(), type->aggregate->name );919 ret = new UnionInstType( buildQualifiers( type ), type->aggregate->name ); 901 920 break; 902 921 case DeclarationNode::Trait: 903 ret = new TraitInstType( type->buildQualifiers(), type->aggregate->name );922 ret = new TraitInstType( buildQualifiers( type ), type->aggregate->name ); 904 923 break; 905 924 default: … … 910 929 } 911 930 case TypeData::Symbolic: { 912 TypeInstType *ret = new TypeInstType( type->buildQualifiers(), type->symbolic->name, false );931 TypeInstType *ret = new TypeInstType( buildQualifiers( type ), type->symbolic->name, false ); 913 932 buildList( type->symbolic->actuals, ret->get_parameters() ); 914 933 return ret; 915 934 } 916 935 default: 917 return type ->build();936 return typebuild( type ); 918 937 } // switch 919 938 } -
src/Parser/ExpressionNode.cc
r3906301 rfa463f1 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 21 09:43:31201613 // Update Count : 50 112 // Last Modified On : Thu Aug 25 21:39:40 2016 13 // Update Count : 503 14 14 // 15 15 … … 184 184 "SizeOf", "AlignOf", "OffsetOf", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&", 185 185 "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?", 186 "?=?", "? *=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",186 "?=?", "?@=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?", 187 187 "?[?]", "...", 188 188 // monadic -
src/Parser/LinkageSpec.cc
r3906301 rfa463f1 14 14 // 15 15 16 #include <memory> 16 17 #include <string> 17 18 #include <cassert> … … 21 22 22 23 LinkageSpec::Spec LinkageSpec::fromString( const std::string &spec ) { 24 std::unique_ptr<const std::string> guard(&spec); // allocated by lexer 23 25 if ( spec == "\"Cforall\"" ) { 24 26 return Cforall; … … 28 30 throw SemanticError( "Invalid linkage specifier " + spec ); 29 31 } // if 30 delete &spec; // allocated by lexer31 32 } 32 33 -
src/Parser/ParseNode.h
r3906301 rfa463f1 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Aug 2 1 11:53:59201613 // Update Count : 5 4612 // Last Modified On : Sun Aug 28 21:14:51 2016 13 // Update Count : 575 14 14 // 15 15 … … 99 99 InitializerNode *kids; 100 100 bool maybeConstructed; 101 }; 101 }; // InitializerNode 102 102 103 103 //############################################################################## … … 126 126 bool extension = false; 127 127 std::unique_ptr<Expression> expr; 128 }; 128 }; // ExpressionNode 129 129 130 130 template< typename T > … … 145 145 SizeOf, AlignOf, OffsetOf, Plus, Minus, Mul, Div, Mod, Or, And, 146 146 BitOr, BitAnd, Xor, Cast, LShift, RShift, LThan, GThan, LEThan, GEThan, Eq, Neq, 147 Assign, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn,147 Assign, AtAssn, MulAssn, DivAssn, ModAssn, PlusAssn, MinusAssn, LSAssn, RSAssn, AndAssn, ERAssn, OrAssn, 148 148 Index, Range, 149 149 // monadic 150 150 UnPlus, UnMinus, AddressOf, PointTo, Neg, BitNeg, Incr, IncrPost, Decr, DecrPost, LabelAddress, 151 151 Ctor, Dtor, 152 }; 152 }; // OperKinds 153 153 154 154 struct LabelNode { … … 196 196 class DeclarationNode : public ParseNode { 197 197 public: 198 enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic };198 enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, NoOfQualifier }; 199 199 enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, }; 200 200 enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary }; … … 204 204 enum BuiltinType { Valist }; 205 205 206 static const char *qualifierName[]; 206 207 static const char *storageName[]; 207 static const char *qualifierName[];208 208 static const char *basicTypeName[]; 209 209 static const char *modifierName[]; … … 214 214 static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false ); 215 215 static DeclarationNode *newQualifier( Qualifier ); 216 static DeclarationNode *newForall( DeclarationNode *); 216 217 static DeclarationNode *newStorageClass( StorageClass ); 217 218 static DeclarationNode *newBasicType( BasicType ); 218 219 static DeclarationNode *newModifier( Modifier ); 219 static DeclarationNode *new Forall( DeclarationNode *);220 static DeclarationNode *newBuiltinType( BuiltinType ); 220 221 static DeclarationNode *newFromTypedef( std::string *); 221 222 static DeclarationNode *newAggregate( Aggregate kind, const std::string *name, ExpressionNode *actuals, DeclarationNode *fields, bool body ); … … 236 237 static DeclarationNode *newAttr( std::string *, ExpressionNode *expr ); 237 238 static DeclarationNode *newAttr( std::string *, DeclarationNode *type ); 238 static DeclarationNode *newBuiltinType( BuiltinType );239 239 240 240 DeclarationNode(); … … 243 243 244 244 DeclarationNode *addQualifiers( DeclarationNode *); 245 void checkQualifiers( const TypeData *, const TypeData * ); 245 246 DeclarationNode *copyStorageClasses( DeclarationNode *); 246 247 DeclarationNode *addType( DeclarationNode *); … … 285 286 bool get_extension() const { return extension; } 286 287 DeclarationNode *set_extension( bool exten ) { extension = exten; return this; } 287 p rivate:288 public: 288 289 // StorageClass buildStorageClass() const; 289 290 // bool buildFuncSpecifier( StorageClass key ) const; … … 307 308 308 309 Type *buildType( TypeData *type ); 310 //Type::Qualifiers buildQualifiers( const TypeData::Qualifiers & qualifiers ); 309 311 310 312 static inline Type * maybeMoveBuildType( const DeclarationNode *orig ) { -
src/Parser/TypeData.cc
r3906301 rfa463f1 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:48:44201613 // Update Count : 6412 // Last Modified On : Sun Aug 28 18:28:58 2016 13 // Update Count : 223 14 14 // 15 15 … … 94 94 break; 95 95 } // switch 96 } 96 } // TypeData::TypeData 97 97 98 98 TypeData::~TypeData() { … … 163 163 break; 164 164 } // switch 165 } 166 167 TypeData * TypeData::clone() const {168 TypeData * newtype = new TypeData( kind );165 } // TypeData::~TypeData 166 167 TypeData * TypeData::clone() const { 168 TypeData * newtype = new TypeData( kind ); 169 169 newtype->qualifiers = qualifiers; 170 170 newtype->base = maybeClone( base ); … … 238 238 } // switch 239 239 return newtype; 240 } 240 } // TypeData::clone 241 241 242 242 void TypeData::print( std::ostream &os, int indent ) const { … … 244 244 using std::string; 245 245 246 printEnums( qualifiers.begin(), qualifiers.end(), DeclarationNode::qualifierName, os ); 246 for ( int i = 0; i < DeclarationNode::NoOfQualifier; i += 1 ) { 247 if ( qualifiers[i] ) os << DeclarationNode::qualifierName[ i ] << ' '; 248 } // for 247 249 248 250 if ( forall ) { … … 416 418 assert( false ); 417 419 } // switch 418 } 419 420 TypeData *TypeData::extractAggregate( bool toplevel ) const { 421 TypeData *ret = 0; 422 423 switch ( kind ) { 424 case Aggregate: 425 if ( ! toplevel && aggregate->fields ) { 426 ret = clone(); 427 ret->qualifiers.clear(); 428 } // if 429 break; 430 case Enum: 431 if ( ! toplevel && enumeration->constants ) { 432 ret = clone(); 433 ret->qualifiers.clear(); 434 } // if 435 break; 436 case AggregateInst: 437 if ( aggInst->aggregate ) { 438 ret = aggInst->aggregate->extractAggregate( false ); 439 } // if 440 break; 441 default: 442 if ( base ) { 443 ret = base->extractAggregate( false ); 444 } // if 445 } // switch 446 return ret; 447 } 448 449 void buildForall( const DeclarationNode *firstNode, std::list< TypeDecl* > &outputList ) { 420 } // TypeData::print 421 422 void buildForall( const DeclarationNode * firstNode, std::list< TypeDecl* > &outputList ) { 450 423 buildList( firstNode, outputList ); 451 424 for ( std::list< TypeDecl* >::iterator i = outputList.begin(); i != outputList.end(); ++i ) { … … 453 426 // add assertion parameters to `type' tyvars in reverse order 454 427 // add dtor: void ^?{}(T *) 455 FunctionType * dtorType = new FunctionType( Type::Qualifiers(), false );428 FunctionType * dtorType = new FunctionType( Type::Qualifiers(), false ); 456 429 dtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 457 430 (*i)->get_assertions().push_front( new FunctionDecl( "^?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, dtorType, 0, false, false ) ); 458 431 459 432 // add copy ctor: void ?{}(T *, T) 460 FunctionType * copyCtorType = new FunctionType( Type::Qualifiers(), false );433 FunctionType * copyCtorType = new FunctionType( Type::Qualifiers(), false ); 461 434 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 462 435 copyCtorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); … … 464 437 465 438 // add default ctor: void ?{}(T *) 466 FunctionType * ctorType = new FunctionType( Type::Qualifiers(), false );439 FunctionType * ctorType = new FunctionType( Type::Qualifiers(), false ); 467 440 ctorType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 468 441 (*i)->get_assertions().push_front( new FunctionDecl( "?{}", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, ctorType, 0, false, false ) ); 469 442 470 443 // add assignment operator: T * ?=?(T *, T) 471 FunctionType * assignType = new FunctionType( Type::Qualifiers(), false );444 FunctionType * assignType = new FunctionType( Type::Qualifiers(), false ); 472 445 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) ); 473 446 assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) ); … … 478 451 } 479 452 480 Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer *init ) const { 481 if ( kind == TypeData::Function ) { 482 FunctionDecl *decl; 483 if ( function->hasBody ) { 484 if ( function->body ) { 485 Statement *stmt = function->body->build(); 486 CompoundStmt *body = dynamic_cast< CompoundStmt* >( stmt ); 487 assert( body ); 488 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline, isNoreturn ); 489 } else { 490 // std::list< Label > ls; 491 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list< Label >() ), isInline, isNoreturn ); 492 } // if 493 } else { 494 decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline, isNoreturn ); 495 } // if 496 for ( DeclarationNode *cur = function->idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) { 497 if ( cur->get_name() != "" ) { 498 decl->get_oldIdents().insert( decl->get_oldIdents().end(), cur->get_name() ); 499 } // if 500 } // for 501 buildList( function->oldDeclList, decl->get_oldDecls() ); 502 return decl; 503 } else if ( kind == TypeData::Aggregate ) { 504 return buildAggregate(); 505 } else if ( kind == TypeData::Enum ) { 506 return buildEnum(); 507 } else if ( kind == TypeData::Symbolic ) { 508 return buildSymbolic( name, sc ); 509 } else if ( kind == TypeData::Variable ) { 510 return buildVariable(); 511 } else { 512 return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init, std::list< Attribute * >(), isInline, isNoreturn ); 513 } // if 514 return 0; 515 } 516 517 Type *TypeData::build() const { 518 switch ( kind ) { 519 case Unknown: 453 Type * typebuild( const TypeData * td ) { 454 assert( td ); 455 switch ( td->kind ) { 456 case TypeData::Unknown: 520 457 // fill in implicit int 521 return new BasicType( buildQualifiers( ), BasicType::SignedInt );522 case Basic:523 return buildBasicType( );524 case Pointer:525 return buildPointer( );526 case Array:527 return buildArray( );528 case Function:529 return buildFunction( );530 case AggregateInst:531 return buildAggInst( );532 case EnumConstant:458 return new BasicType( buildQualifiers( td ), BasicType::SignedInt ); 459 case TypeData::Basic: 460 return buildBasicType( td ); 461 case TypeData::Pointer: 462 return buildPointer( td ); 463 case TypeData::Array: 464 return buildArray( td ); 465 case TypeData::Function: 466 return buildFunction( td ); 467 case TypeData::AggregateInst: 468 return buildAggInst( td ); 469 case TypeData::EnumConstant: 533 470 // the name gets filled in later -- by SymTab::Validate 534 return new EnumInstType( buildQualifiers( ), "" );535 case SymbolicInst:536 return buildSymbolicInst( );;537 case T uple:538 return buildTuple( );539 case Type of:540 return buildTypeof( );541 case Builtin:542 return new VarArgsType( buildQualifiers( ) );543 case Attr:544 return buildAttr( );545 case Symbolic:546 case Enum:547 case Aggregate:548 case Variable:471 return new EnumInstType( buildQualifiers( td ), "" ); 472 case TypeData::SymbolicInst: 473 return buildSymbolicInst( td );; 474 case TypeData::Tuple: 475 return buildTuple( td ); 476 case TypeData::Typeof: 477 return buildTypeof( td ); 478 case TypeData::Builtin: 479 return new VarArgsType( buildQualifiers( td ) ); 480 case TypeData::Attr: 481 return buildAttr( td ); 482 case TypeData::Symbolic: 483 case TypeData::Enum: 484 case TypeData::Aggregate: 485 case TypeData::Variable: 549 486 assert( false ); 550 487 } // switch 551 488 return 0; 552 } 553 554 Type::Qualifiers TypeData::buildQualifiers() const { 489 } // typebuild 490 491 TypeData * typeextractAggregate( const TypeData * td, bool toplevel ) { 492 TypeData * ret = 0; 493 494 switch ( td->kind ) { 495 case TypeData::Aggregate: 496 if ( ! toplevel && td->aggregate->fields ) { 497 ret = td->clone(); 498 } // if 499 break; 500 case TypeData::Enum: 501 if ( ! toplevel && td->enumeration->constants ) { 502 ret = td->clone(); 503 } // if 504 break; 505 case TypeData::AggregateInst: 506 if ( td->aggInst->aggregate ) { 507 ret = typeextractAggregate( td->aggInst->aggregate, false ); 508 } // if 509 break; 510 default: 511 if ( td->base ) { 512 ret = typeextractAggregate( td->base, false ); 513 } // if 514 } // switch 515 return ret; 516 } // typeextractAggregate 517 518 Type::Qualifiers buildQualifiers( const TypeData * td ) { 555 519 Type::Qualifiers q; 556 for ( std::list< DeclarationNode::Qualifier >::const_iterator i = qualifiers.begin(); i != qualifiers.end(); ++i ) { 557 switch ( *i ) { 558 case DeclarationNode::Const: 559 q.isConst = true; 560 break; 561 case DeclarationNode::Volatile: 562 q.isVolatile = true; 563 break; 564 case DeclarationNode::Restrict: 565 q.isRestrict = true; 566 break; 567 case DeclarationNode::Lvalue: 568 q.isLvalue = true; 569 break; 570 case DeclarationNode::Atomic: 571 q.isAtomic = true; 572 break; 573 } // switch 574 } // for 520 q.isConst = td->qualifiers[ DeclarationNode::Const ]; 521 q.isVolatile = td->qualifiers[ DeclarationNode::Volatile ]; 522 q.isRestrict = td->qualifiers[ DeclarationNode::Restrict ]; 523 q.isLvalue = td->qualifiers[ DeclarationNode::Lvalue ]; 524 q.isAtomic = td->qualifiers[ DeclarationNode::Atomic ];; 575 525 return q; 576 } 577 578 Type * TypeData::buildBasicType() const{526 } // buildQualifiers 527 528 Type * buildBasicType( const TypeData * td ) { 579 529 static const BasicType::Kind kindMap[] = { BasicType::Char, BasicType::SignedInt, BasicType::Float, BasicType::Double, 580 530 BasicType::Char /* void */, BasicType::Bool, BasicType::DoubleComplex, … … 585 535 BasicType::Kind ret; 586 536 587 for ( std::list< DeclarationNode::BasicType >::const_iterator i = basic->typeSpec.begin(); i !=basic->typeSpec.end(); ++i ) {537 for ( std::list< DeclarationNode::BasicType >::const_iterator i = td->basic->typeSpec.begin(); i != td->basic->typeSpec.end(); ++i ) { 588 538 if ( ! init ) { 589 539 init = true; 590 540 if ( *i == DeclarationNode::Void ) { 591 if ( basic->typeSpec.size() != 1 || !basic->modifiers.empty() ) {592 throw SemanticError( "invalid type specifier \"void\" in type: ", t his);541 if ( td->basic->typeSpec.size() != 1 || ! td->basic->modifiers.empty() ) { 542 throw SemanticError( "invalid type specifier \"void\" in type: ", td ); 593 543 } else { 594 return new VoidType( buildQualifiers( ) );544 return new VoidType( buildQualifiers( td ) ); 595 545 } // if 596 546 } else { … … 601 551 case DeclarationNode::Float: 602 552 if ( sawDouble ) { 603 throw SemanticError( "invalid type specifier \"float\" in type: ", t his);553 throw SemanticError( "invalid type specifier \"float\" in type: ", td ); 604 554 } else { 605 555 switch ( ret ) { … … 611 561 break; 612 562 default: 613 throw SemanticError( "invalid type specifier \"float\" in type: ", t his);563 throw SemanticError( "invalid type specifier \"float\" in type: ", td ); 614 564 } // switch 615 565 } // if … … 617 567 case DeclarationNode::Double: 618 568 if ( sawDouble ) { 619 throw SemanticError( "duplicate type specifier \"double\" in type: ", t his);569 throw SemanticError( "duplicate type specifier \"double\" in type: ", td ); 620 570 } else { 621 571 switch ( ret ) { … … 624 574 break; 625 575 default: 626 throw SemanticError( "invalid type specifier \"double\" in type: ", t his);576 throw SemanticError( "invalid type specifier \"double\" in type: ", td ); 627 577 } // switch 628 578 } // if … … 637 587 break; 638 588 default: 639 throw SemanticError( "invalid type specifier \"_Complex\" in type: ", t his);589 throw SemanticError( "invalid type specifier \"_Complex\" in type: ", td ); 640 590 } // switch 641 591 break; … … 649 599 break; 650 600 default: 651 throw SemanticError( "invalid type specifier \"_Imaginary\" in type: ", t his);601 throw SemanticError( "invalid type specifier \"_Imaginary\" in type: ", td ); 652 602 } // switch 653 603 break; 654 604 default: 655 throw SemanticError( std::string( "invalid type specifier \"" ) + DeclarationNode::basicTypeName[ *i ] + "\" in type: ", t his);605 throw SemanticError( std::string( "invalid type specifier \"" ) + DeclarationNode::basicTypeName[ *i ] + "\" in type: ", td ); 656 606 } // switch 657 607 } // if … … 661 611 } // for 662 612 663 for ( std::list< DeclarationNode::Modifier >::const_iterator i = basic->modifiers.begin(); i !=basic->modifiers.end(); ++i ) {613 for ( std::list< DeclarationNode::Modifier >::const_iterator i = td->basic->modifiers.begin(); i != td->basic->modifiers.end(); ++i ) { 664 614 switch ( *i ) { 665 615 case DeclarationNode::Long: … … 691 641 break; 692 642 default: 693 throw SemanticError( "invalid type modifier \"long\" in type: ", t his);643 throw SemanticError( "invalid type modifier \"long\" in type: ", td ); 694 644 } // switch 695 645 } // if … … 708 658 break; 709 659 default: 710 throw SemanticError( "invalid type modifier \"short\" in type: ", t his);660 throw SemanticError( "invalid type modifier \"short\" in type: ", td ); 711 661 } // switch 712 662 } // if … … 717 667 ret = BasicType::SignedInt; 718 668 } else if ( sawSigned ) { 719 throw SemanticError( "duplicate type modifer \"signed\" in type: ", t his);669 throw SemanticError( "duplicate type modifer \"signed\" in type: ", td ); 720 670 } else { 721 671 switch ( ret ) { … … 733 683 break; 734 684 default: 735 throw SemanticError( "invalid type modifer \"signed\" in type: ", t his);685 throw SemanticError( "invalid type modifer \"signed\" in type: ", td ); 736 686 } // switch 737 687 } // if … … 742 692 ret = BasicType::UnsignedInt; 743 693 } else if ( sawSigned ) { 744 throw SemanticError( "invalid type modifer \"unsigned\" in type: ", t his);694 throw SemanticError( "invalid type modifer \"unsigned\" in type: ", td ); 745 695 } else { 746 696 switch ( ret ) { … … 761 711 break; 762 712 default: 763 throw SemanticError( "invalid type modifer \"unsigned\" in type: ", t his);713 throw SemanticError( "invalid type modifer \"unsigned\" in type: ", td ); 764 714 } // switch 765 715 } // if … … 772 722 } // for 773 723 774 BasicType * bt;724 BasicType * bt; 775 725 if ( ! init ) { 776 bt = new BasicType( buildQualifiers( ), BasicType::SignedInt );726 bt = new BasicType( buildQualifiers( td ), BasicType::SignedInt ); 777 727 } else { 778 bt = new BasicType( buildQualifiers( ), ret );728 bt = new BasicType( buildQualifiers( td ), ret ); 779 729 } // if 780 buildForall( forall, bt->get_forall() );730 buildForall( td->forall, bt->get_forall() ); 781 731 return bt; 782 } 783 784 785 PointerType *TypeData::buildPointer() const { 786 PointerType *pt; 787 if ( base ) { 788 pt = new PointerType( buildQualifiers(), base->build() ); 732 } // buildBasicType 733 734 PointerType * buildPointer( const TypeData * td ) { 735 PointerType * pt; 736 if ( td->base ) { 737 pt = new PointerType( buildQualifiers( td ), typebuild( td->base ) ); 789 738 } else { 790 pt = new PointerType( buildQualifiers( ), new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );739 pt = new PointerType( buildQualifiers( td ), new BasicType( Type::Qualifiers(), BasicType::SignedInt ) ); 791 740 } // if 792 buildForall( forall, pt->get_forall() );741 buildForall( td->forall, pt->get_forall() ); 793 742 return pt; 794 } 795 796 ArrayType * TypeData::buildArray() const{797 ArrayType * at;798 if ( base ) {799 at = new ArrayType( buildQualifiers( ), base->build(), maybeBuild< Expression >(array->dimension ),800 array->isVarLen,array->isStatic );743 } // buildPointer 744 745 ArrayType * buildArray( const TypeData * td ) { 746 ArrayType * at; 747 if ( td->base ) { 748 at = new ArrayType( buildQualifiers( td ), typebuild( td->base ), maybeBuild< Expression >( td->array->dimension ), 749 td->array->isVarLen, td->array->isStatic ); 801 750 } else { 802 at = new ArrayType( buildQualifiers( ), new BasicType( Type::Qualifiers(), BasicType::SignedInt ),803 maybeBuild< Expression >( array->dimension ), array->isVarLen,array->isStatic );751 at = new ArrayType( buildQualifiers( td ), new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 752 maybeBuild< Expression >( td->array->dimension ), td->array->isVarLen, td->array->isStatic ); 804 753 } // if 805 buildForall( forall, at->get_forall() );754 buildForall( td->forall, at->get_forall() ); 806 755 return at; 807 } 808 809 FunctionType *TypeData::buildFunction() const { 810 assert( kind == Function ); 811 bool hasEllipsis = function->params ? function->params->get_hasEllipsis() : true; 812 if ( ! function->params ) hasEllipsis = ! function->newStyle; 813 FunctionType *ft = new FunctionType( buildQualifiers(), hasEllipsis ); 814 buildList( function->params, ft->get_parameters() ); 815 buildForall( forall, ft->get_forall() ); 816 if ( base ) { 817 switch ( base->kind ) { 818 case Tuple: 819 buildList( base->tuple->members, ft->get_returnVals() ); 756 } // buildPointer 757 758 AggregateDecl * buildAggregate( const TypeData * td ) { 759 assert( td->kind == TypeData::Aggregate ); 760 AggregateDecl * at; 761 switch ( td->aggregate->kind ) { 762 case DeclarationNode::Struct: 763 at = new StructDecl( td->aggregate->name ); 764 buildForall( td->aggregate->params, at->get_parameters() ); 765 break; 766 case DeclarationNode::Union: 767 at = new UnionDecl( td->aggregate->name ); 768 buildForall( td->aggregate->params, at->get_parameters() ); 769 break; 770 case DeclarationNode::Trait: 771 at = new TraitDecl( td->aggregate->name ); 772 buildList( td->aggregate->params, at->get_parameters() ); 773 break; 774 default: 775 assert( false ); 776 } // switch 777 778 buildList( td->aggregate->fields, at->get_members() ); 779 at->set_body( td->aggregate->body ); 780 781 return at; 782 } // buildAggregate 783 784 ReferenceToType * buildAggInst( const TypeData * td ) { 785 assert( td->kind == TypeData::AggregateInst ); 786 787 ReferenceToType * ret; 788 if ( td->aggInst->aggregate->kind == TypeData::Enum ) { 789 ret = new EnumInstType( buildQualifiers( td ), td->aggInst->aggregate->enumeration->name ); 790 } else { 791 assert( td->aggInst->aggregate->kind == TypeData::Aggregate ); 792 switch ( td->aggInst->aggregate->aggregate->kind ) { 793 case DeclarationNode::Struct: 794 ret = new StructInstType( buildQualifiers( td ), td->aggInst->aggregate->aggregate->name ); 795 break; 796 case DeclarationNode::Union: 797 ret = new UnionInstType( buildQualifiers( td ), td->aggInst->aggregate->aggregate->name ); 798 break; 799 case DeclarationNode::Trait: 800 ret = new TraitInstType( buildQualifiers( td ), td->aggInst->aggregate->aggregate->name ); 820 801 break; 821 802 default: 822 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, false, LinkageSpec::Cforall ) ) ); 803 assert( false ); 804 } // switch 805 } // if 806 buildList( td->aggInst->params, ret->get_parameters() ); 807 buildForall( td->forall, ret->get_forall() ); 808 return ret; 809 } // buildAggInst 810 811 NamedTypeDecl * buildSymbolic( const TypeData * td, const std::string & name, DeclarationNode::StorageClass sc ) { 812 assert( td->kind == TypeData::Symbolic ); 813 NamedTypeDecl * ret; 814 assert( td->base ); 815 if ( td->symbolic->isTypedef ) { 816 ret = new TypedefDecl( name, sc, typebuild( td->base ) ); 817 } else { 818 ret = new TypeDecl( name, sc, typebuild( td->base ), TypeDecl::Any ); 819 } // if 820 buildList( td->symbolic->params, ret->get_parameters() ); 821 buildList( td->symbolic->assertions, ret->get_assertions() ); 822 return ret; 823 } // buildSymbolic 824 825 TypeDecl * buildVariable( const TypeData * td ) { 826 assert( td->kind == TypeData::Variable ); 827 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 828 829 TypeDecl * ret = new TypeDecl( td->variable->name, DeclarationNode::NoStorageClass, 0, kindMap[ td->variable->tyClass ] ); 830 buildList( td->variable->assertions, ret->get_assertions() ); 831 return ret; 832 } // buildSymbolic 833 834 EnumDecl * buildEnum( const TypeData * td ) { 835 assert( td->kind == TypeData::Enum ); 836 EnumDecl * ret = new EnumDecl( td->enumeration->name ); 837 buildList( td->enumeration->constants, ret->get_members() ); 838 std::list< Declaration * >::iterator members = ret->get_members().begin(); 839 for ( const DeclarationNode * cur = td->enumeration-> constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) { 840 if ( cur->has_enumeratorValue() ) { 841 ObjectDecl * member = dynamic_cast< ObjectDecl * >(* members); 842 member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) ); 843 } // if 844 } // for 845 return ret; 846 } // buildEnum 847 848 TypeInstType * buildSymbolicInst( const TypeData * td ) { 849 assert( td->kind == TypeData::SymbolicInst ); 850 TypeInstType * ret = new TypeInstType( buildQualifiers( td ), td->symbolic->name, false ); 851 buildList( td->symbolic->actuals, ret->get_parameters() ); 852 buildForall( td->forall, ret->get_forall() ); 853 return ret; 854 } // buildSymbolicInst 855 856 TupleType * buildTuple( const TypeData * td ) { 857 assert( td->kind == TypeData::Tuple ); 858 TupleType * ret = new TupleType( buildQualifiers( td ) ); 859 buildTypeList( td->tuple->members, ret->get_types() ); 860 buildForall( td->forall, ret->get_forall() ); 861 return ret; 862 } // buildTuple 863 864 TypeofType * buildTypeof( const TypeData * td ) { 865 assert( td->kind == TypeData::Typeof ); 866 assert( td->typeexpr ); 867 assert( td->typeexpr->expr ); 868 return new TypeofType( buildQualifiers( td ), td->typeexpr->expr->build() ); 869 } // buildTypeof 870 871 AttrType * buildAttr( const TypeData * td ) { 872 assert( td->kind == TypeData::Attr ); 873 assert( td->attr ); 874 AttrType * ret; 875 if ( td->attr->expr ) { 876 ret = new AttrType( buildQualifiers( td ), td->attr->name, td->attr->expr->build() ); 877 } else { 878 assert( td->attr->type ); 879 ret = new AttrType( buildQualifiers( td ), td->attr->name, td->attr->type->buildType() ); 880 } // if 881 return ret; 882 } // buildAttr 883 884 Declaration * buildDecl( const TypeData * td, std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) { 885 if ( td->kind == TypeData::Function ) { 886 FunctionDecl * decl; 887 if ( td->function->hasBody ) { 888 if ( td->function->body ) { 889 Statement * stmt = td->function->body->build(); 890 CompoundStmt * body = dynamic_cast< CompoundStmt* >( stmt ); 891 assert( body ); 892 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), body, isInline, isNoreturn ); 893 } else { 894 // std::list< Label > ls; 895 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), new CompoundStmt( std::list< Label >() ), isInline, isNoreturn ); 896 } // if 897 } else { 898 decl = new FunctionDecl( name, sc, linkage, buildFunction( td ), 0, isInline, isNoreturn ); 899 } // if 900 for ( DeclarationNode * cur = td->function->idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_next() ) ) { 901 if ( cur->get_name() != "" ) { 902 decl->get_oldIdents().insert( decl->get_oldIdents().end(), cur->get_name() ); 903 } // if 904 } // for 905 buildList( td->function->oldDeclList, decl->get_oldDecls() ); 906 return decl; 907 } else if ( td->kind == TypeData::Aggregate ) { 908 return buildAggregate( td ); 909 } else if ( td->kind == TypeData::Enum ) { 910 return buildEnum( td ); 911 } else if ( td->kind == TypeData::Symbolic ) { 912 return buildSymbolic( td, name, sc ); 913 } else if ( td->kind == TypeData::Variable ) { 914 return buildVariable( td ); 915 } else { 916 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, std::list< Attribute * >(), isInline, isNoreturn ); 917 } // if 918 return 0; 919 } // buildDecl 920 921 FunctionType * buildFunction( const TypeData * td ) { 922 assert( td->kind == TypeData::Function ); 923 bool hasEllipsis = td->function->params ? td->function->params->get_hasEllipsis() : true; 924 if ( ! td->function->params ) hasEllipsis = ! td->function->newStyle; 925 FunctionType * ft = new FunctionType( buildQualifiers( td ), hasEllipsis ); 926 buildList( td->function->params, ft->get_parameters() ); 927 buildForall( td->forall, ft->get_forall() ); 928 if ( td->base ) { 929 switch ( td->base->kind ) { 930 case TypeData::Tuple: 931 buildList( td->base->tuple->members, ft->get_returnVals() ); 932 break; 933 default: 934 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, 0, false, false, LinkageSpec::Cforall ) ) ); 823 935 } // switch 824 936 } else { … … 826 938 } // if 827 939 return ft; 828 } 829 830 AggregateDecl *TypeData::buildAggregate() const { 831 assert( kind == Aggregate ); 832 AggregateDecl *at; 833 switch ( aggregate->kind ) { 834 case DeclarationNode::Struct: 835 at = new StructDecl( aggregate->name ); 836 buildForall( aggregate->params, at->get_parameters() ); 837 break; 838 case DeclarationNode::Union: 839 at = new UnionDecl( aggregate->name ); 840 buildForall( aggregate->params, at->get_parameters() ); 841 break; 842 case DeclarationNode::Trait: 843 at = new TraitDecl( aggregate->name ); 844 buildList( aggregate->params, at->get_parameters() ); 845 break; 846 default: 847 assert( false ); 848 } // switch 849 850 buildList( aggregate->fields, at->get_members() ); 851 at->set_body( aggregate->body ); 852 853 return at; 854 } 855 856 ReferenceToType *TypeData::buildAggInst() const { 857 assert( kind == AggregateInst ); 858 859 ReferenceToType *ret; 860 if ( aggInst->aggregate->kind == Enum ) { 861 ret = new EnumInstType( buildQualifiers(), aggInst->aggregate->enumeration->name ); 862 } else { 863 assert( aggInst->aggregate->kind == Aggregate ); 864 switch ( aggInst->aggregate->aggregate->kind ) { 865 case DeclarationNode::Struct: 866 ret = new StructInstType( buildQualifiers(), aggInst->aggregate->aggregate->name ); 867 break; 868 case DeclarationNode::Union: 869 ret = new UnionInstType( buildQualifiers(), aggInst->aggregate->aggregate->name ); 870 break; 871 case DeclarationNode::Trait: 872 ret = new TraitInstType( buildQualifiers(), aggInst->aggregate->aggregate->name ); 873 break; 874 default: 875 assert( false ); 876 } // switch 877 } // if 878 buildList( aggInst->params, ret->get_parameters() ); 879 buildForall( forall, ret->get_forall() ); 880 return ret; 881 } 882 883 NamedTypeDecl *TypeData::buildSymbolic( const std::string &name, DeclarationNode::StorageClass sc ) const { 884 assert( kind == Symbolic ); 885 NamedTypeDecl *ret; 886 if ( symbolic->isTypedef ) { 887 ret = new TypedefDecl( name, sc, maybeBuild< Type >( base ) ); 888 } else { 889 ret = new TypeDecl( name, sc, maybeBuild< Type >( base ), TypeDecl::Any ); 890 } // if 891 buildList( symbolic->params, ret->get_parameters() ); 892 buildList( symbolic->assertions, ret->get_assertions() ); 893 return ret; 894 } 895 896 TypeDecl *TypeData::buildVariable() const { 897 assert( kind == Variable ); 898 static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype }; 899 900 TypeDecl *ret = new TypeDecl( variable->name, DeclarationNode::NoStorageClass, 0, kindMap[ variable->tyClass ] ); 901 buildList( variable->assertions, ret->get_assertions() ); 902 return ret; 903 } 904 905 EnumDecl *TypeData::buildEnum() const { 906 assert( kind == Enum ); 907 EnumDecl *ret = new EnumDecl( enumeration->name ); 908 buildList( enumeration->constants, ret->get_members() ); 909 std::list< Declaration * >::iterator members = ret->get_members().begin(); 910 for ( const DeclarationNode *cur = enumeration->constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) { 911 if ( cur->has_enumeratorValue() ) { 912 ObjectDecl *member = dynamic_cast< ObjectDecl * >(*members); 913 member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) ); 914 } // if 915 } // for 916 return ret; 917 } 918 919 TypeInstType *TypeData::buildSymbolicInst() const { 920 assert( kind == SymbolicInst ); 921 TypeInstType *ret = new TypeInstType( buildQualifiers(), symbolic->name, false ); 922 buildList( symbolic->actuals, ret->get_parameters() ); 923 buildForall( forall, ret->get_forall() ); 924 return ret; 925 } 926 927 TupleType *TypeData::buildTuple() const { 928 assert( kind == Tuple ); 929 TupleType *ret = new TupleType( buildQualifiers() ); 930 buildTypeList( tuple->members, ret->get_types() ); 931 buildForall( forall, ret->get_forall() ); 932 return ret; 933 } 934 935 TypeofType *TypeData::buildTypeof() const { 936 assert( kind == Typeof ); 937 assert( typeexpr ); 938 assert( typeexpr->expr ); 939 TypeofType *ret = new TypeofType( buildQualifiers(), typeexpr->expr->build() ); 940 return ret; 941 } 942 943 AttrType *TypeData::buildAttr() const { 944 assert( kind == Attr ); 945 assert( attr ); 946 AttrType *ret; 947 if ( attr->expr ) { 948 ret = new AttrType( buildQualifiers(), attr->name, attr->expr->build() ); 949 } else { 950 assert( attr->type ); 951 ret = new AttrType( buildQualifiers(), attr->name, attr->type->buildType() ); 952 } // if 953 return ret; 954 } 940 } // buildFunction 955 941 956 942 // Local Variables: // -
src/Parser/TypeData.h
r3906301 rfa463f1 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Aug 18 23:48:52201613 // Update Count : 2212 // Last Modified On : Sun Aug 28 22:39:00 2016 13 // Update Count : 85 14 14 // 15 15 … … 17 17 #define TYPEDATA_H 18 18 19 #include < list>19 #include <bitset> 20 20 21 21 #include "ParseNode.h" … … 25 25 enum Kind { Unknown, Basic, Pointer, Array, Function, Aggregate, AggregateInst, 26 26 Enum, EnumConstant, Symbolic, SymbolicInst, Variable, Tuple, Typeof, Builtin, Attr } kind; 27 28 TypeData( Kind k = Unknown );29 ~TypeData();30 void print( std::ostream &, int indent = 0 ) const;31 TypeData * clone() const;32 33 Type * build() const;34 FunctionType * buildFunction() const;35 36 TypeData * base;37 std::list< DeclarationNode::Qualifier > qualifiers;38 DeclarationNode * forall;39 27 40 28 struct Basic_t { … … 109 97 }; 110 98 99 TypeData * base; 100 typedef std::bitset< DeclarationNode::NoOfQualifier > Qualifiers; 101 Qualifiers qualifiers; 102 DeclarationNode * forall; 103 111 104 union { 112 105 Basic_t * basic; … … 124 117 }; 125 118 126 TypeData * extractAggregate( bool toplevel = true ) const; 127 // helper function for DeclNodeImpl::build 128 Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init = 0 ) const; 129 // helper functions for build() 130 Type::Qualifiers buildQualifiers() const; 131 Type * buildBasicType() const; 132 PointerType * buildPointer() const; 133 ArrayType * buildArray() const; 134 AggregateDecl * buildAggregate() const; 135 ReferenceToType * buildAggInst() const; 136 NamedTypeDecl * buildSymbolic( const std::string &name, DeclarationNode::StorageClass sc ) const; 137 TypeDecl* buildVariable() const; 138 EnumDecl* buildEnum() const; 139 TypeInstType * buildSymbolicInst() const; 140 TupleType * buildTuple() const; 141 TypeofType * buildTypeof() const; 142 AttrType * buildAttr() const; 119 TypeData( Kind k = Unknown ); 120 ~TypeData(); 121 void print( std::ostream &, int indent = 0 ) const; 122 TypeData * clone() const; 143 123 }; 124 125 Type * typebuild( const TypeData * ); 126 TypeData * typeextractAggregate( const TypeData * td, bool toplevel = true ); 127 Type::Qualifiers buildQualifiers( const TypeData * td ); 128 Type * buildBasicType( const TypeData * ); 129 PointerType * buildPointer( const TypeData * ); 130 ArrayType * buildArray( const TypeData * ); 131 AggregateDecl * buildAggregate( const TypeData * ); 132 ReferenceToType * buildAggInst( const TypeData * ); 133 NamedTypeDecl * buildSymbolic( const TypeData *, const std::string &name, DeclarationNode::StorageClass sc ); 134 TypeDecl * buildVariable( const TypeData * ); 135 EnumDecl * buildEnum( const TypeData * ); 136 TypeInstType * buildSymbolicInst( const TypeData * ); 137 TupleType * buildTuple( const TypeData * ); 138 TypeofType * buildTypeof( const TypeData * ); 139 AttrType * buildAttr( const TypeData * ); 140 Declaration * buildDecl( const TypeData *, std::string, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = 0 ); 141 FunctionType * buildFunction( const TypeData * ); 144 142 145 143 #endif // TYPEDATA_H -
src/Parser/lex.cc
r3906301 rfa463f1 1469 1469 * Created On : Sat Sep 22 08:58:10 2001 1470 1470 * Last Modified By : Peter A. Buhr 1471 * Last Modified On : Thu Aug 18 22:17:3020161472 * Update Count : 4 721471 * Last Modified On : Wed Aug 24 13:27:04 2016 1472 * Update Count : 487 1473 1473 */ 1474 1474 #line 20 "lex.ll" … … 1827 1827 { 1828 1828 /* " stop highlighting */ 1829 static char *filename[FILENAME_MAX];// temporarily store current source-file name1829 static char filename[FILENAME_MAX]; // temporarily store current source-file name 1830 1830 char *end_num; 1831 1831 char *begin_string, *end_string; … … 1842 1842 //std::cout << "file " << filename << " line " << lineno << std::endl; 1843 1843 yylineno = lineno; 1844 yyfilename = filename [0];1844 yyfilename = filename; 1845 1845 } // if 1846 1846 } … … 2426 2426 YY_RULE_SETUP 2427 2427 #line 290 "lex.ll" 2428 { BEGIN QUOTE; rm_underscore(); strtext = new std::string ; *strtext += std::string( yytext); }2428 { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2429 2429 YY_BREAK 2430 2430 case 116: 2431 2431 YY_RULE_SETUP 2432 2432 #line 291 "lex.ll" 2433 { *strtext += std::string( yytext); }2433 { strtext->append( yytext, yyleng ); } 2434 2434 YY_BREAK 2435 2435 case 117: … … 2437 2437 YY_RULE_SETUP 2438 2438 #line 292 "lex.ll" 2439 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }2439 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } 2440 2440 YY_BREAK 2441 2441 /* ' stop highlighting */ … … 2444 2444 YY_RULE_SETUP 2445 2445 #line 296 "lex.ll" 2446 { BEGIN STRING; rm_underscore(); strtext = new std::string ; *strtext += std::string( yytext); }2446 { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2447 2447 YY_BREAK 2448 2448 case 119: 2449 2449 YY_RULE_SETUP 2450 2450 #line 297 "lex.ll" 2451 { *strtext += std::string( yytext); }2451 { strtext->append( yytext, yyleng ); } 2452 2452 YY_BREAK 2453 2453 case 120: … … 2455 2455 YY_RULE_SETUP 2456 2456 #line 298 "lex.ll" 2457 { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(STRINGliteral); }2457 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } 2458 2458 YY_BREAK 2459 2459 /* " stop highlighting */ … … 2462 2462 YY_RULE_SETUP 2463 2463 #line 302 "lex.ll" 2464 { rm_underscore(); *strtext += std::string( yytext); }2464 { rm_underscore(); strtext->append( yytext, yyleng ); } 2465 2465 YY_BREAK 2466 2466 case 122: … … 2473 2473 YY_RULE_SETUP 2474 2474 #line 304 "lex.ll" 2475 { *strtext += std::string( yytext); } // unknown escape character2475 { strtext->append( yytext, yyleng ); } // unknown escape character 2476 2476 YY_BREAK 2477 2477 /* punctuation */ -
src/Parser/lex.ll
r3906301 rfa463f1 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Thu Aug 18 22:17:30201613 * Update Count : 4 7212 * Last Modified On : Wed Aug 24 13:27:04 2016 13 * Update Count : 487 14 14 */ 15 15 … … 141 141 ^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" { 142 142 /* " stop highlighting */ 143 static char *filename[FILENAME_MAX];// temporarily store current source-file name143 static char filename[FILENAME_MAX]; // temporarily store current source-file name 144 144 char *end_num; 145 145 char *begin_string, *end_string; … … 156 156 //std::cout << "file " << filename << " line " << lineno << std::endl; 157 157 yylineno = lineno; 158 yyfilename = filename [0];158 yyfilename = filename; 159 159 } // if 160 160 } … … 288 288 289 289 /* character constant, allows empty value */ 290 ({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new std::string ; *strtext += std::string( yytext); }291 <QUOTE>[^'\\\n]* { *strtext += std::string( yytext); }292 <QUOTE>['\n] { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }290 ({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 291 <QUOTE>[^'\\\n]* { strtext->append( yytext, yyleng ); } 292 <QUOTE>['\n] { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } 293 293 /* ' stop highlighting */ 294 294 295 295 /* string constant */ 296 ({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new std::string ; *strtext += std::string( yytext); }297 <STRING>[^"\\\n]* { *strtext += std::string( yytext); }298 <STRING>["\n] { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(STRINGliteral); }296 ({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 297 <STRING>[^"\\\n]* { strtext->append( yytext, yyleng ); } 298 <STRING>["\n] { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } 299 299 /* " stop highlighting */ 300 300 301 301 /* common character/string constant */ 302 <QUOTE,STRING>{escape_seq} { rm_underscore(); *strtext += std::string( yytext); }302 <QUOTE,STRING>{escape_seq} { rm_underscore(); strtext->append( yytext, yyleng ); } 303 303 <QUOTE,STRING>"\\"{h_white}*"\n" {} // continuation (ALSO HANDLED BY CPP) 304 <QUOTE,STRING>"\\" { *strtext += std::string( yytext); } // unknown escape character304 <QUOTE,STRING>"\\" { strtext->append( yytext, yyleng ); } // unknown escape character 305 305 306 306 /* punctuation */ -
src/Parser/parser.cc
r3906301 rfa463f1 83 83 #include "LinkageSpec.h" 84 84 85 union DeclQualifiers {86 unsigned int value; // assume 32-bits87 struct {88 bool Extern : 1;89 bool Static : 1;90 bool Auto : 1;91 bool Register : 1;92 bool Inline : 1;93 bool Fortran : 1;94 bool Noreturn : 1;95 bool Threadlocal : 1;96 bool Extension : 1;97 bool Lvalue : 1;98 bool Const : 1;99 bool Volatile : 1;100 bool Restrict : 1;101 bool Atomic : 1;102 } qual;103 }; // DeclQualifiers104 DeclQualifiers declQualifiers = { 0 };105 106 union DeclType {107 unsigned int value; // assume 32-bits108 struct {109 bool Char : 1;110 bool Bool : 1;111 bool Short : 1;112 bool Int : 1;113 bool Float : 1;114 bool Double : 1;115 bool Long : 1;116 bool Signed : 1;117 bool Unsigned : 1;118 bool Void : 1;119 bool Complex : 1;120 bool Imaginary : 1;121 bool Valist : 1;122 } type;123 }; // DeclType124 DeclType declTypes = { 0 };125 126 85 extern DeclarationNode * parseTree; 127 86 extern LinkageSpec::Spec linkage; … … 137 96 138 97 /* Line 268 of yacc.c */ 139 #line 140"Parser/parser.cc"98 #line 99 "Parser/parser.cc" 140 99 141 100 /* Enabling traces. */ … … 388 347 389 348 /* Line 293 of yacc.c */ 390 #line 1 56"parser.yy"349 #line 115 "parser.yy" 391 350 392 351 Token tok; … … 408 367 409 368 /* Line 293 of yacc.c */ 410 #line 411"Parser/parser.cc"369 #line 370 "Parser/parser.cc" 411 370 } YYSTYPE; 412 371 # define YYSTYPE_IS_TRIVIAL 1 … … 420 379 421 380 /* Line 343 of yacc.c */ 422 #line 423"Parser/parser.cc"381 #line 382 "Parser/parser.cc" 423 382 424 383 #ifdef short … … 639 598 #define YYFINAL 250 640 599 /* YYLAST -- Last index in YYTABLE. */ 641 #define YYLAST 108 41600 #define YYLAST 10863 642 601 643 602 /* YYNTOKENS -- Number of terminals. */ … … 646 605 #define YYNNTS 241 647 606 /* YYNRULES -- Number of rules. */ 648 #define YYNRULES 75 0607 #define YYNRULES 751 649 608 /* YYNRULES -- Number of states. */ 650 #define YYNSTATES 155 4609 #define YYNSTATES 1555 651 610 652 611 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 716 675 326, 331, 337, 339, 341, 345, 348, 349, 351, 353, 717 676 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 718 37 6, 382, 389, 397, 399, 403, 405, 409, 410, 412,719 414, 416, 418, 420, 422, 424, 426, 428, 43 5, 440,720 44 3, 451, 453, 457, 459, 462, 464, 467, 469, 472,721 47 5, 481, 489, 495, 505, 511, 521, 523, 527, 529,722 531, 53 5, 539, 542, 544, 547, 550, 551, 553, 556,723 5 60, 561, 563, 566, 570, 574, 579, 580, 582, 584,724 58 7, 593, 601, 608, 615, 620, 624, 629, 632, 636,725 63 9, 643, 647, 651, 655, 661, 665, 669, 674, 676,726 6 82, 689, 695, 702, 712, 723, 733, 744, 747, 749,727 75 2, 755, 758, 760, 767, 776, 787, 800, 815, 816,728 818, 8 19, 821, 823, 827, 832, 840, 841, 843, 847,729 849, 85 3, 855, 857, 859, 863, 865, 867, 869, 873,730 87 4, 876, 880, 885, 887, 891, 893, 895, 899, 903,731 90 7, 911, 915, 918, 922, 929, 933, 937, 942, 944,732 94 7, 950, 954, 960, 969, 977, 985, 991, 1001, 1004,733 100 7, 1013, 1017, 1023, 1028, 1032, 1037, 1042, 1050, 1054,734 105 8, 1062, 1066, 1071, 1078, 1080, 1082, 1084, 1086, 1088,735 1090, 1092, 1094, 109 5, 1097, 1099, 1102, 1104, 1106, 1108,736 1110, 1112, 1114, 1116, 111 7, 1123, 1125, 1128, 1132, 1134,737 113 7, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155,677 375, 378, 384, 391, 399, 401, 405, 407, 411, 412, 678 414, 416, 418, 420, 422, 424, 426, 428, 430, 437, 679 442, 445, 453, 455, 459, 461, 464, 466, 469, 471, 680 474, 477, 483, 491, 497, 507, 513, 523, 525, 529, 681 531, 533, 537, 541, 544, 546, 549, 552, 553, 555, 682 558, 562, 563, 565, 568, 572, 576, 581, 582, 584, 683 586, 589, 595, 603, 610, 617, 622, 626, 631, 634, 684 638, 641, 645, 649, 653, 657, 663, 667, 671, 676, 685 678, 684, 691, 697, 704, 714, 725, 735, 746, 749, 686 751, 754, 757, 760, 762, 769, 778, 789, 802, 817, 687 818, 820, 821, 823, 825, 829, 834, 842, 843, 845, 688 849, 851, 855, 857, 859, 861, 865, 867, 869, 871, 689 875, 876, 878, 882, 887, 889, 893, 895, 897, 901, 690 905, 909, 913, 917, 920, 924, 931, 935, 939, 944, 691 946, 949, 952, 956, 962, 971, 979, 987, 993, 1003, 692 1006, 1009, 1015, 1019, 1025, 1030, 1034, 1039, 1044, 1052, 693 1056, 1060, 1064, 1068, 1073, 1080, 1082, 1084, 1086, 1088, 694 1090, 1092, 1094, 1096, 1097, 1099, 1101, 1104, 1106, 1108, 695 1110, 1112, 1114, 1116, 1118, 1119, 1125, 1127, 1130, 1134, 696 1136, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, 1155, 738 697 1157, 1159, 1161, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 739 1177, 1179, 1181, 118 4, 1187, 1191, 1195, 1197, 1201, 1203,740 120 6, 1209, 1212, 1217, 1222, 1227, 1232, 1234, 1237, 1240,741 124 4, 1246, 1249, 1252, 1254, 1257, 1260, 1264, 1266, 1269,742 127 2, 1274, 1276, 1281, 1284, 1285, 1292, 1300, 1303, 1306,743 130 9, 1310, 1313, 1316, 1320, 1323, 1327, 1329, 1332, 1336,744 133 9, 1342, 1347, 1348, 1350, 1353, 1356, 1358, 1359, 1361,745 136 4, 1367, 1373, 1376, 1377, 1385, 1388, 1393, 1394, 1397,746 139 8, 1400, 1402, 1404, 1410, 1416, 1422, 1424, 1430, 1436,747 14 46, 1448, 1454, 1455, 1457, 1459, 1465, 1467, 1469, 1475,748 14 81, 1483, 1487, 1491, 1496, 1498, 1500, 1502, 1504, 1507,749 1509, 151 3, 1517, 1519, 1522, 1524, 1528, 1530, 1532, 1534,750 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 155 3, 1555,751 1557, 1559, 156 2, 1563, 1566, 1569, 1571, 1576, 1577, 1579,752 158 2, 1586, 1591, 1594, 1597, 1599, 1602, 1605, 1611, 1617,753 16 25, 1632, 1634, 1637, 1640, 1644, 1646, 1649, 1652, 1657,754 16 60, 1665, 1666, 1671, 1674, 1676, 1678, 1680, 1681, 1684,755 16 90, 1696, 1710, 1712, 1714, 1718, 1722, 1725, 1729, 1733,756 173 6, 1741, 1743, 1750, 1760, 1761, 1773, 1775, 1779, 1783,757 178 7, 1789, 1791, 1797, 1800, 1806, 1807, 1809, 1811, 1815,758 181 6, 1818, 1820, 1822, 1824, 1825, 1832, 1835, 1837, 1840,759 184 5, 1848, 1852, 1856, 1860, 1865, 1871, 1877, 1883, 1890,760 1892, 1894, 1896, 1 900, 1901, 1907, 1908, 1910, 1912, 1915,761 19 22, 1924, 1928, 1929, 1931, 1936, 1938, 1940, 1942, 1944,762 194 7, 1949, 1952, 1955, 1957, 1961, 1964, 1968, 1972, 1975,763 19 80, 1985, 1989, 1998, 2002, 2005, 2007, 2010, 2017, 2026,764 20 30, 2033, 2037, 2041, 2046, 2051, 2055, 2057, 2059, 2061,765 206 6, 2073, 2077, 2080, 2084, 2088, 2093, 2098, 2102, 2105,766 2107, 21 10, 2113, 2115, 2119, 2122, 2126, 2130, 2133, 2138,767 214 3, 2147, 2154, 2163, 2167, 2170, 2172, 2175, 2178, 2181,768 218 5, 2189, 2192, 2197, 2202, 2206, 2213, 2222, 2226, 2229,769 2231, 223 4, 2237, 2239, 2241, 2244, 2248, 2252, 2255, 2260,770 226 7, 2276, 2278, 2281, 2284, 2286, 2289, 2292, 2296, 2300,771 2302, 230 7, 2312, 2316, 2322, 2331, 2335, 2338, 2342, 2344,772 23 50, 2356, 2363, 2370, 2372, 2375, 2378, 2380, 2383, 2386,773 23 90, 2394, 2396, 2401, 2406, 2410, 2416, 2425, 2429, 2431,774 243 4, 2436, 2439, 2446, 2452, 2459, 2467, 2475, 2477, 2480,775 248 3, 2485, 2488, 2491, 2495, 2499, 2501, 2506, 2511, 2515,776 25 24, 2528, 2530, 2532, 2535, 2537, 2539, 2542, 2546, 2549,777 255 3, 2556, 2560, 2564, 2567, 2572, 2576, 2579, 2583, 2586,778 25 91, 2595, 2598, 2605, 2612, 2619, 2627, 2629, 2632, 2634,779 2636, 2638, 264 1, 2645, 2648, 2652, 2655, 2659, 2663, 2668,780 267 1, 2675, 2680, 2683, 2689, 2695, 2702, 2709, 2710, 2712,781 271 3698 1177, 1179, 1181, 1183, 1186, 1189, 1193, 1197, 1199, 1203, 699 1205, 1208, 1211, 1214, 1219, 1224, 1229, 1234, 1236, 1239, 700 1242, 1246, 1248, 1251, 1254, 1256, 1259, 1262, 1266, 1268, 701 1271, 1274, 1276, 1278, 1283, 1286, 1287, 1294, 1302, 1305, 702 1308, 1311, 1312, 1315, 1318, 1322, 1325, 1329, 1331, 1334, 703 1338, 1341, 1344, 1349, 1350, 1352, 1355, 1358, 1360, 1361, 704 1363, 1366, 1369, 1375, 1378, 1379, 1387, 1390, 1395, 1396, 705 1399, 1400, 1402, 1404, 1406, 1412, 1418, 1424, 1426, 1432, 706 1438, 1448, 1450, 1456, 1457, 1459, 1461, 1467, 1469, 1471, 707 1477, 1483, 1485, 1489, 1493, 1498, 1500, 1502, 1504, 1506, 708 1509, 1511, 1515, 1519, 1521, 1524, 1526, 1530, 1532, 1534, 709 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, 1555, 710 1557, 1559, 1561, 1564, 1565, 1568, 1571, 1573, 1578, 1579, 711 1581, 1584, 1588, 1593, 1596, 1599, 1601, 1604, 1607, 1613, 712 1619, 1627, 1634, 1636, 1639, 1642, 1646, 1648, 1651, 1654, 713 1659, 1662, 1667, 1668, 1673, 1676, 1678, 1680, 1682, 1683, 714 1686, 1692, 1698, 1712, 1714, 1716, 1720, 1724, 1727, 1731, 715 1735, 1738, 1743, 1745, 1752, 1762, 1763, 1775, 1777, 1781, 716 1785, 1789, 1791, 1793, 1799, 1802, 1808, 1809, 1811, 1813, 717 1817, 1818, 1820, 1822, 1824, 1826, 1827, 1834, 1837, 1839, 718 1842, 1847, 1850, 1854, 1858, 1862, 1867, 1873, 1879, 1885, 719 1892, 1894, 1896, 1898, 1902, 1903, 1909, 1910, 1912, 1914, 720 1917, 1924, 1926, 1930, 1931, 1933, 1938, 1940, 1942, 1944, 721 1946, 1949, 1951, 1954, 1957, 1959, 1963, 1966, 1970, 1974, 722 1977, 1982, 1987, 1991, 2000, 2004, 2007, 2009, 2012, 2019, 723 2028, 2032, 2035, 2039, 2043, 2048, 2053, 2057, 2059, 2061, 724 2063, 2068, 2075, 2079, 2082, 2086, 2090, 2095, 2100, 2104, 725 2107, 2109, 2112, 2115, 2117, 2121, 2124, 2128, 2132, 2135, 726 2140, 2145, 2149, 2156, 2165, 2169, 2172, 2174, 2177, 2180, 727 2183, 2187, 2191, 2194, 2199, 2204, 2208, 2215, 2224, 2228, 728 2231, 2233, 2236, 2239, 2241, 2243, 2246, 2250, 2254, 2257, 729 2262, 2269, 2278, 2280, 2283, 2286, 2288, 2291, 2294, 2298, 730 2302, 2304, 2309, 2314, 2318, 2324, 2333, 2337, 2340, 2344, 731 2346, 2352, 2358, 2365, 2372, 2374, 2377, 2380, 2382, 2385, 732 2388, 2392, 2396, 2398, 2403, 2408, 2412, 2418, 2427, 2431, 733 2433, 2436, 2438, 2441, 2448, 2454, 2461, 2469, 2477, 2479, 734 2482, 2485, 2487, 2490, 2493, 2497, 2501, 2503, 2508, 2513, 735 2517, 2526, 2530, 2532, 2534, 2537, 2539, 2541, 2544, 2548, 736 2551, 2555, 2558, 2562, 2566, 2569, 2574, 2578, 2581, 2585, 737 2588, 2593, 2597, 2600, 2607, 2614, 2621, 2629, 2631, 2634, 738 2636, 2638, 2640, 2643, 2647, 2650, 2654, 2657, 2661, 2665, 739 2670, 2673, 2677, 2682, 2685, 2691, 2697, 2704, 2711, 2712, 740 2714, 2715 782 741 }; 783 742 … … 820 779 -1, 162, 129, 170, 130, 168, -1, 163, -1, 163, 821 780 -1, 149, 167, 165, -1, 168, 373, -1, -1, 165, 822 -1, 131, -1, 97, -1, 98, -1, 99, -1, 100,823 -1, 10 1, -1, 102, -1, 103, -1, 104, -1, 105,824 -1, 10 6, -1, 111, 112, -1, 111, 134, 165, 135,825 1 12, -1, 111, 134, 116, 169, 135, 112, -1, 111,826 134, 165, 116, 169, 135, 112, -1, 166, -1, 169,827 116, 166, -1, 165, -1, 170, 116, 165, -1, -1,828 170, -1, 173, -1, 174, -1, 178, -1, 179, -1,829 1 91, -1, 193, -1, 194, -1, 199, -1, 127, 144,830 1 14, 145, 115, 132, -1, 72, 130, 312, 172, -1,831 1 14, 115, -1, 114, 134, 134, 210, 175, 135, 115,832 -1, 176, -1, 175, 134, 176, -1, 213, -1, 40,833 213, -1, 308, -1, 172, 135, -1, 172, -1, 177,834 172, -1, 171, 132, -1, 41, 109, 170, 110, 172,835 -1, 41, 109, 170, 110, 172, 42, 172, -1, 43,836 109, 170, 110, 184, -1, 43, 109, 170, 110, 114,837 1 34, 206, 185, 115, -1, 53, 109, 170, 110, 184,838 -1, 53, 109, 170, 110, 114, 134, 206, 187, 115,839 -1, 164, -1, 164, 96, 164, -1, 310, -1, 180,840 -1, 18 1, 116, 180, -1, 44, 181, 130, -1, 45,841 130, -1, 182, -1, 183, 182, -1, 183, 172, -1,842 -1, 186, -1, 183, 177, -1, 186, 183, 177, -1,843 -1, 188, -1, 183, 190, -1, 183, 177, 189, -1,844 18 8, 183, 190, -1, 188, 183, 177, 189, -1, -1,845 190, -1, 56, -1, 56, 132, -1, 47, 109, 170,846 1 10, 172, -1, 46, 172, 47, 109, 170, 110, 132,847 -1, 48, 109, 134, 192, 110, 172, -1, 171, 135,848 1 32, 171, 132, 171, -1, 213, 171, 132, 171, -1,849 51, 72, 132, -1, 51, 117, 170, 132, -1, 50,850 132, -1, 50, 72, 132, -1, 49, 132, -1, 49,851 72, 132, -1, 52, 171, 132, -1, 61, 166, 132,852 -1, 62, 166, 132, -1, 62, 166, 63, 165, 132,853 -1, 57, 174, 195, -1, 57, 174, 197, -1, 57,854 174, 195, 197, -1, 196, -1, 58, 109, 96, 110,855 174, -1, 196, 58, 109, 96, 110, 174, -1, 59,856 109, 96, 110, 174, -1, 196, 59, 109, 96, 110,857 174, -1, 58, 109, 134, 134, 198, 135, 110, 174,858 1 35, -1, 196, 58, 109, 134, 134, 198, 135, 110,859 1 74, 135, -1, 59, 109, 134, 134, 198, 135, 110,860 1 74, 135, -1, 196, 59, 109, 134, 134, 198, 135,861 1 10, 174, 135, -1, 60, 174, -1, 226, -1, 226,862 309, -1, 226, 357, -1, 366, 139, -1, 366, -1,863 64, 200, 109, 141, 110, 132, -1, 64, 200, 109,864 141, 130, 201, 110, 132, -1, 64, 200, 109, 141,865 1 30, 201, 130, 201, 110, 132, -1, 64, 200, 109,866 141, 130, 201, 130, 201, 130, 204, 110, 132, -1,867 64, 200, 51, 109, 141, 130, 130, 201, 130, 204,868 130, 20 5, 110, 132, -1, -1, 11, -1, -1, 202,869 -1, 20 3, -1, 202, 116, 203, -1, 141, 109, 164,870 1 10, -1, 111, 164, 112, 141, 109, 164, 110, -1,871 -1, 141, -1, 204, 116, 141, -1, 139, -1, 205,872 116, 139, -1, 135, -1, 207, -1, 213, -1, 207,873 134, 213, -1, 135, -1, 209, -1, 223, -1, 209,874 134, 223, -1, -1, 211, -1, 29, 212, 132, -1,875 211, 29, 212, 132, -1, 274, -1, 212, 116, 274,876 -1, 214, -1, 223, -1, 215, 135, 132, -1, 220,877 135, 132, -1, 217, 135, 132, -1, 293, 135, 132,878 -1, 296, 135, 132, -1, 216, 277, -1, 232, 216,879 2 77, -1, 215, 135, 116, 134, 272, 277, -1, 367,880 272, 311, -1, 370, 272, 311, -1, 228, 370, 272,881 3 11, -1, 218, -1, 228, 218, -1, 232, 218, -1,882 2 32, 228, 218, -1, 217, 135, 116, 134, 272, -1,883 111, 112, 272, 109, 134, 260, 135, 110, -1, 370,884 272, 109, 134, 260, 135, 110, -1, 219, 272, 109,885 134, 260, 135, 110, -1, 111, 134, 262, 135, 112,886 -1, 111, 134, 262, 135, 116, 134, 263, 135, 112,887 -1, 3, 216, -1, 3, 218, -1, 220, 135, 116,888 13 4, 139, -1, 3, 226, 309, -1, 221, 135, 116,889 13 4, 309, -1, 228, 3, 226, 309, -1, 226, 3,890 309, -1, 226, 3, 228, 309, -1, 3, 139, 131,891 1 65, -1, 222, 135, 116, 134, 139, 131, 165, -1,892 224, 135, 132, -1, 221, 135, 132, -1, 222, 135,893 132, -1, 240, 135, 132, -1, 225, 309, 311, 277,894 -1, 224, 116, 312, 309, 311, 277, -1, 236, -1,895 2 40, -1, 242, -1, 283, -1, 237, -1, 241, -1,896 24 3, -1, 284, -1, -1, 228, -1, 229, -1, 228,897 229, -1, 230, -1, 314, -1, 10, -1, 12, -1,898 1 1, -1, 14, -1, 67, -1, -1, 13, 109, 231,899 286, 110, -1, 233, -1, 228, 233, -1, 232, 228,900 23 3, -1, 234, -1, 233, 234, -1, 5, -1, 7,901 -1, 4, -1, 6, -1, 8, -1, 9, -1, 69,902 -1, 71, -1, 16, -1, 21, -1, 20, -1, 18,903 -1, 1 9, -1, 17, -1, 22, -1, 23, -1, 15,904 -1, 25, -1, 26, -1, 27, -1, 24, -1, 237,905 -1, 23 2, 237, -1, 236, 234, -1, 236, 234, 228,906 -1, 236, 234, 237, -1, 238, -1, 227, 239, 227,907 -1, 235, -1, 228, 235, -1, 238, 229, -1, 238,908 235, -1, 28, 109, 276, 110, -1, 28, 109, 170,909 1 10, -1, 78, 109, 276, 110, -1, 78, 109, 170,910 1 10, -1, 241, -1, 232, 241, -1, 240, 234, -1,911 2 40, 234, 228, -1, 244, -1, 228, 244, -1, 241,912 229, -1, 243, -1, 232, 243, -1, 242, 234, -1,913 2 42, 234, 228, -1, 74, -1, 228, 74, -1, 243,914 229, -1, 245, -1, 256, -1, 247, 114, 248, 115,915 -1, 247, 274, -1, -1, 247, 274, 246, 114, 248,916 11 5, -1, 247, 109, 292, 110, 114, 248, 115, -1,917 247, 285, -1, 31, 312, -1, 32, 312, -1, -1,918 248, 249, -1, 250, 132, -1, 40, 250, 132, -1,919 251, 132, -1, 40, 251, 132, -1, 366, -1, 366,920 274, -1, 250, 116, 274, -1, 250, 116, -1, 226,921 252, -1, 251, 116, 312, 252, -1, -1, 254, -1,922 318, 253, -1, 331, 253, -1, 357, -1, -1, 254,923 -1, 130, 164, -1, 30, 312, -1, 255, 114, 258,924 372, 115, -1, 255, 274, -1, -1, 255, 274, 257,925 114, 258, 372, 115, -1, 274, 259, -1, 258, 116,926 2 74, 259, -1, -1, 131, 164, -1, -1, 261, -1,927 26 3, -1, 262, -1, 262, 135, 116, 134, 263, -1,928 263, 135, 116, 134, 96, -1, 262, 135, 116, 134,929 96, -1, 267, -1, 263, 135, 116, 134, 267, -1,930 26 2, 135, 116, 134, 267, -1, 262, 135, 116, 134,931 263, 135, 116, 134, 267, -1, 268, -1, 263, 135,932 116, 134, 268, -1, -1, 265, -1, 266, -1, 266,933 135, 116, 134, 96, -1, 270, -1, 269, -1, 266,934 135, 116, 134, 270, -1, 266, 135, 116, 134, 269,935 -1, 269, -1, 362, 272, 373, -1, 370, 272, 373,936 -1, 228, 370, 272, 373, -1, 218, -1, 270, -1,937 362, -1, 370, -1, 228, 370, -1, 371, -1, 225,938 336, 373, -1, 225, 340, 373, -1, 225, -1, 225,939 351, -1, 139, -1, 271, 116, 139, -1, 137, -1,940 74, -1, 75, -1, 138, -1, 74, -1, 75, -1,941 139, -1, 74, -1, 75, -1, 366, -1, 226, -1,942 226, 357, -1, 366, -1, 371, -1, 226, -1, 226,943 345, -1, -1, 131, 278, -1, 107, 278, -1, 165,944 -1, 1 14, 279, 372, 115, -1, -1, 278, -1, 280,945 278, -1, 279, 116, 278, -1, 279, 116, 280, 278,946 -1, 281, 130, -1, 274, 130, -1, 282, -1, 281,947 282, -1, 113, 274, -1, 111, 134, 165, 135, 112,948 -1, 111, 134, 310, 135, 112, -1, 111, 134, 164,949 96, 164, 135, 112, -1, 113, 111, 134, 147, 135,950 1 12, -1, 284, -1, 232, 284, -1, 283, 234, -1,951 2 83, 234, 228, -1, 285, -1, 228, 285, -1, 284,952 229, -1, 75, 109, 292, 110, -1, 287, 373, -1,953 286, 116, 287, 373, -1, -1, 289, 274, 288, 290,954 -1, 226, 336, -1, 33, -1, 35, -1, 34, -1,955 -1, 290, 291, -1, 128, 274, 109, 292, 110, -1,956 1 28, 114, 134, 298, 115, -1, 128, 109, 134, 286,957 13 5, 110, 114, 134, 298, 115, 109, 292, 110, -1,958 276, -1, 165, -1, 292, 116, 276, -1, 292, 116,959 165, -1, 33, 294, -1, 233, 33, 294, -1, 293,960 116, 294, -1, 295, 290, -1, 295, 290, 131, 276,961 -1, 274, -1, 273, 109, 134, 286, 135, 110, -1,962 36, 274, 109, 134, 286, 135, 110, 114, 115, -1,963 -1, 36, 274, 109, 134, 286, 135, 110, 114, 297,964 298, 115, -1, 299, -1, 298, 134, 299, -1, 300,965 135, 132, -1, 301, 135, 132, -1, 216, -1, 218,966 -1, 300, 135, 116, 134, 272, -1, 226, 309, -1,967 30 1, 135, 116, 134, 309, -1, -1, 303, -1, 305,968 -1, 30 3, 134, 305, -1, -1, 303, -1, 213, -1,969 307, -1, 199, -1, -1, 5, 82, 306, 114, 304,970 11 5, -1, 40, 305, -1, 308, -1, 323, 174, -1,971 327, 134, 208, 174, -1, 217, 174, -1, 225, 323,972 174, -1, 228, 323, 174, -1, 232, 323, 174, -1,973 232, 228, 323, 174, -1, 225, 327, 134, 208, 174,974 -1, 228, 327, 134, 208, 174, -1, 232, 327, 134,975 208, 174, -1, 232, 228, 327, 134, 208, 174, -1,976 318, -1, 331, -1, 323, -1, 164, 122, 164, -1,977 -1, 64, 109, 142, 110, 312, -1, -1, 313, -1,978 31 4, -1, 313, 314, -1, 39, 109, 109, 315, 110,979 110, -1, 316, -1, 315, 116, 316, -1, -1, 317,980 -1, 317, 109, 171, 110, -1, 272, -1, 234, -1,981 23 5, -1, 229, -1, 319, 312, -1, 320, -1, 321,982 312, -1, 322, 312, -1, 137, -1, 109, 319, 110,983 -1, 150, 318, -1, 150, 228, 318, -1, 109, 320,984 1 10, -1, 319, 349, -1, 109, 320, 110, 349, -1,985 109, 321, 110, 350, -1, 109, 321, 110, -1, 109,986 320, 110, 109, 134, 264, 135, 110, -1, 109, 322,987 1 10, -1, 324, 312, -1, 325, -1, 326, 312, -1,988 31 9, 109, 134, 264, 135, 110, -1, 109, 325, 110,989 109, 134, 264, 135, 110, -1, 109, 324, 110, -1,990 1 50, 323, -1, 150, 228, 323, -1, 109, 325, 110,991 -1, 109, 325, 110, 349, -1, 109, 326, 110, 350,992 -1, 109, 326, 110, -1, 328, -1, 329, -1, 330,993 -1, 3 19, 109, 271, 110, -1, 109, 329, 110, 109,994 271, 110, -1, 109, 328, 110, -1, 150, 327, -1,995 150, 228, 327, -1, 109, 329, 110, -1, 109, 329,996 1 10, 349, -1, 109, 330, 110, 350, -1, 109, 330,997 1 10, -1, 332, 312, -1, 333, -1, 334, 312, -1,998 3 35, 312, -1, 341, -1, 109, 332, 110, -1, 150,999 331, -1, 150, 228, 331, -1, 109, 333, 110, -1,1000 332, 349, -1, 109, 333, 110, 349, -1, 109, 334,1001 1 10, 350, -1, 109, 334, 110, -1, 332, 109, 134,1002 264, 135, 110, -1, 109, 333, 110, 109, 134, 264,1003 13 5, 110, -1, 109, 335, 110, -1, 319, 312, -1,1004 3 37, -1, 338, 312, -1, 339, 312, -1, 150, 336,1005 -1, 150, 228, 336, -1, 109, 337, 110, -1, 319,1006 355, -1, 109, 337, 110, 349, -1, 109, 338, 110,1007 3 50, -1, 109, 338, 110, -1, 319, 109, 134, 264,1008 13 5, 110, -1, 109, 337, 110, 109, 134, 264, 135,1009 110, -1, 109, 339, 110, -1, 341, 312, -1, 342,1010 -1, 34 3, 312, -1, 344, 312, -1, 74, -1, 75,1011 -1, 150, 340, -1, 150, 228, 340, -1, 109, 342,1012 1 10, -1, 341, 355, -1, 109, 342, 110, 355, -1,1013 3 41, 109, 134, 264, 135, 110, -1, 109, 342, 110,1014 109, 134, 264, 135, 110, -1, 346, -1, 347, 312,1015 -1, 348, 312, -1, 150, -1, 150, 228, -1, 150,1016 345, -1, 150, 228, 345, -1, 109, 346, 110, -1,1017 349, -1, 109, 346, 110, 349, -1, 109, 347, 110,1018 3 50, -1, 109, 347, 110, -1, 109, 134, 264, 135,1019 110, -1, 109, 346, 110, 109, 134, 264, 135, 110,1020 -1, 109, 348, 110, -1, 111, 112, -1, 111, 112,1021 350, -1, 350, -1, 111, 134, 165, 135, 112, -1,1022 11 1, 134, 117, 135, 112, -1, 350, 111, 134, 165,1023 13 5, 112, -1, 350, 111, 134, 117, 135, 112, -1,1024 352, -1, 353, 312, -1, 354, 312, -1, 150, -1,1025 150, 228, -1, 150, 351, -1, 150, 228, 351, -1,1026 109, 352, 110, -1, 355, -1, 109, 352, 110, 355,1027 -1, 109, 353, 110, 350, -1, 109, 353, 110, -1,1028 1 09, 134, 264, 135, 110, -1, 109, 352, 110, 109,1029 1 34, 264, 135, 110, -1, 109, 354, 110, -1, 356,1030 -1, 356, 350, -1, 350, -1, 111, 112, -1, 111,1031 134, 228, 117, 135, 112, -1, 111, 134, 228, 135,1032 112, -1, 111, 134, 228, 165, 135, 112, -1, 111,1033 134, 7, 227, 165, 135, 112, -1, 111, 134, 228,1034 7, 165, 135, 112, -1, 358, -1, 359, 312, -1,1035 3 60, 312, -1, 150, -1, 150, 228, -1, 150, 357,1036 -1, 150, 228, 357, -1, 109, 358, 110, -1, 349,1037 -1, 109, 358, 110, 349, -1, 109, 359, 110, 350,1038 -1, 109, 359, 110, -1, 109, 358, 110, 109, 134,1039 264, 135, 110, -1, 109, 360, 110, -1, 362, -1,1040 3 70, -1, 228, 370, -1, 363, -1, 364, -1, 150,1041 226, -1, 228, 150, 226, -1, 150, 371, -1, 228,1042 150, 371, -1, 150, 361, -1, 228, 150, 361, -1,1043 111, 112, 226, -1, 365, 226, -1, 111, 112, 350,1044 226, -1, 365, 350, 226, -1, 350, 226, -1, 111,1045 112, 363, -1, 365, 363, -1, 111, 112, 350, 363,1046 -1, 365, 350, 363, -1, 350, 363, -1, 111, 134,1047 228, 117, 135, 112, -1, 111, 134, 228, 165, 135,1048 1 12, -1, 111, 134, 232, 165, 135, 112, -1, 111,1049 134, 232, 228, 165, 135, 112, -1, 370, -1, 228,1050 370, -1, 367, -1, 368, -1, 369, -1, 150, 226,1051 -1, 228, 150, 226, -1, 150, 371, -1, 228, 150,1052 371, -1, 150, 366, -1, 228, 150, 366, -1, 111,1053 112, 226, -1, 111, 112, 350, 226, -1, 350, 226,1054 -1, 111, 112, 368, -1, 111, 112, 350, 368, -1,1055 3 50, 368, -1, 111, 134, 263, 135, 112, -1, 111,1056 112, 109, 260, 110, -1, 370, 109, 134, 260, 135,1057 110, -1, 219, 109, 134, 260, 135, 110, -1, -1,1058 116, -1, -1, 131, 165, -1781 -1, 131, -1, 107, -1, 97, -1, 98, -1, 99, 782 -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, 783 -1, 105, -1, 106, -1, 111, 112, -1, 111, 134, 784 165, 135, 112, -1, 111, 134, 116, 169, 135, 112, 785 -1, 111, 134, 165, 116, 169, 135, 112, -1, 166, 786 -1, 169, 116, 166, -1, 165, -1, 170, 116, 165, 787 -1, -1, 170, -1, 173, -1, 174, -1, 178, -1, 788 179, -1, 191, -1, 193, -1, 194, -1, 199, -1, 789 127, 144, 114, 145, 115, 132, -1, 72, 130, 312, 790 172, -1, 114, 115, -1, 114, 134, 134, 210, 175, 791 135, 115, -1, 176, -1, 175, 134, 176, -1, 213, 792 -1, 40, 213, -1, 308, -1, 172, 135, -1, 172, 793 -1, 177, 172, -1, 171, 132, -1, 41, 109, 170, 794 110, 172, -1, 41, 109, 170, 110, 172, 42, 172, 795 -1, 43, 109, 170, 110, 184, -1, 43, 109, 170, 796 110, 114, 134, 206, 185, 115, -1, 53, 109, 170, 797 110, 184, -1, 53, 109, 170, 110, 114, 134, 206, 798 187, 115, -1, 164, -1, 164, 96, 164, -1, 310, 799 -1, 180, -1, 181, 116, 180, -1, 44, 181, 130, 800 -1, 45, 130, -1, 182, -1, 183, 182, -1, 183, 801 172, -1, -1, 186, -1, 183, 177, -1, 186, 183, 802 177, -1, -1, 188, -1, 183, 190, -1, 183, 177, 803 189, -1, 188, 183, 190, -1, 188, 183, 177, 189, 804 -1, -1, 190, -1, 56, -1, 56, 132, -1, 47, 805 109, 170, 110, 172, -1, 46, 172, 47, 109, 170, 806 110, 132, -1, 48, 109, 134, 192, 110, 172, -1, 807 171, 135, 132, 171, 132, 171, -1, 213, 171, 132, 808 171, -1, 51, 72, 132, -1, 51, 117, 170, 132, 809 -1, 50, 132, -1, 50, 72, 132, -1, 49, 132, 810 -1, 49, 72, 132, -1, 52, 171, 132, -1, 61, 811 166, 132, -1, 62, 166, 132, -1, 62, 166, 63, 812 165, 132, -1, 57, 174, 195, -1, 57, 174, 197, 813 -1, 57, 174, 195, 197, -1, 196, -1, 58, 109, 814 96, 110, 174, -1, 196, 58, 109, 96, 110, 174, 815 -1, 59, 109, 96, 110, 174, -1, 196, 59, 109, 816 96, 110, 174, -1, 58, 109, 134, 134, 198, 135, 817 110, 174, 135, -1, 196, 58, 109, 134, 134, 198, 818 135, 110, 174, 135, -1, 59, 109, 134, 134, 198, 819 135, 110, 174, 135, -1, 196, 59, 109, 134, 134, 820 198, 135, 110, 174, 135, -1, 60, 174, -1, 226, 821 -1, 226, 309, -1, 226, 357, -1, 366, 139, -1, 822 366, -1, 64, 200, 109, 141, 110, 132, -1, 64, 823 200, 109, 141, 130, 201, 110, 132, -1, 64, 200, 824 109, 141, 130, 201, 130, 201, 110, 132, -1, 64, 825 200, 109, 141, 130, 201, 130, 201, 130, 204, 110, 826 132, -1, 64, 200, 51, 109, 141, 130, 130, 201, 827 130, 204, 130, 205, 110, 132, -1, -1, 11, -1, 828 -1, 202, -1, 203, -1, 202, 116, 203, -1, 141, 829 109, 164, 110, -1, 111, 164, 112, 141, 109, 164, 830 110, -1, -1, 141, -1, 204, 116, 141, -1, 139, 831 -1, 205, 116, 139, -1, 135, -1, 207, -1, 213, 832 -1, 207, 134, 213, -1, 135, -1, 209, -1, 223, 833 -1, 209, 134, 223, -1, -1, 211, -1, 29, 212, 834 132, -1, 211, 29, 212, 132, -1, 274, -1, 212, 835 116, 274, -1, 214, -1, 223, -1, 215, 135, 132, 836 -1, 220, 135, 132, -1, 217, 135, 132, -1, 293, 837 135, 132, -1, 296, 135, 132, -1, 216, 277, -1, 838 232, 216, 277, -1, 215, 135, 116, 134, 272, 277, 839 -1, 367, 272, 311, -1, 370, 272, 311, -1, 228, 840 370, 272, 311, -1, 218, -1, 228, 218, -1, 232, 841 218, -1, 232, 228, 218, -1, 217, 135, 116, 134, 842 272, -1, 111, 112, 272, 109, 134, 260, 135, 110, 843 -1, 370, 272, 109, 134, 260, 135, 110, -1, 219, 844 272, 109, 134, 260, 135, 110, -1, 111, 134, 262, 845 135, 112, -1, 111, 134, 262, 135, 116, 134, 263, 846 135, 112, -1, 3, 216, -1, 3, 218, -1, 220, 847 135, 116, 134, 139, -1, 3, 226, 309, -1, 221, 848 135, 116, 134, 309, -1, 228, 3, 226, 309, -1, 849 226, 3, 309, -1, 226, 3, 228, 309, -1, 3, 850 139, 131, 165, -1, 222, 135, 116, 134, 139, 131, 851 165, -1, 224, 135, 132, -1, 221, 135, 132, -1, 852 222, 135, 132, -1, 240, 135, 132, -1, 225, 309, 853 311, 277, -1, 224, 116, 312, 309, 311, 277, -1, 854 236, -1, 240, -1, 242, -1, 283, -1, 237, -1, 855 241, -1, 243, -1, 284, -1, -1, 228, -1, 229, 856 -1, 228, 229, -1, 230, -1, 314, -1, 10, -1, 857 12, -1, 11, -1, 14, -1, 67, -1, -1, 13, 858 109, 231, 286, 110, -1, 233, -1, 228, 233, -1, 859 232, 228, 233, -1, 234, -1, 233, 234, -1, 5, 860 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 861 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20, 862 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 863 -1, 15, -1, 25, -1, 26, -1, 27, -1, 24, 864 -1, 237, -1, 232, 237, -1, 236, 234, -1, 236, 865 234, 228, -1, 236, 234, 237, -1, 238, -1, 227, 866 239, 227, -1, 235, -1, 228, 235, -1, 238, 229, 867 -1, 238, 235, -1, 28, 109, 276, 110, -1, 28, 868 109, 170, 110, -1, 78, 109, 276, 110, -1, 78, 869 109, 170, 110, -1, 241, -1, 232, 241, -1, 240, 870 234, -1, 240, 234, 228, -1, 244, -1, 228, 244, 871 -1, 241, 229, -1, 243, -1, 232, 243, -1, 242, 872 234, -1, 242, 234, 228, -1, 74, -1, 228, 74, 873 -1, 243, 229, -1, 245, -1, 256, -1, 247, 114, 874 248, 115, -1, 247, 274, -1, -1, 247, 274, 246, 875 114, 248, 115, -1, 247, 109, 292, 110, 114, 248, 876 115, -1, 247, 285, -1, 31, 312, -1, 32, 312, 877 -1, -1, 248, 249, -1, 250, 132, -1, 40, 250, 878 132, -1, 251, 132, -1, 40, 251, 132, -1, 366, 879 -1, 366, 274, -1, 250, 116, 274, -1, 250, 116, 880 -1, 226, 252, -1, 251, 116, 312, 252, -1, -1, 881 254, -1, 318, 253, -1, 331, 253, -1, 357, -1, 882 -1, 254, -1, 130, 164, -1, 30, 312, -1, 255, 883 114, 258, 372, 115, -1, 255, 274, -1, -1, 255, 884 274, 257, 114, 258, 372, 115, -1, 274, 259, -1, 885 258, 116, 274, 259, -1, -1, 131, 164, -1, -1, 886 261, -1, 263, -1, 262, -1, 262, 135, 116, 134, 887 263, -1, 263, 135, 116, 134, 96, -1, 262, 135, 888 116, 134, 96, -1, 267, -1, 263, 135, 116, 134, 889 267, -1, 262, 135, 116, 134, 267, -1, 262, 135, 890 116, 134, 263, 135, 116, 134, 267, -1, 268, -1, 891 263, 135, 116, 134, 268, -1, -1, 265, -1, 266, 892 -1, 266, 135, 116, 134, 96, -1, 270, -1, 269, 893 -1, 266, 135, 116, 134, 270, -1, 266, 135, 116, 894 134, 269, -1, 269, -1, 362, 272, 373, -1, 370, 895 272, 373, -1, 228, 370, 272, 373, -1, 218, -1, 896 270, -1, 362, -1, 370, -1, 228, 370, -1, 371, 897 -1, 225, 336, 373, -1, 225, 340, 373, -1, 225, 898 -1, 225, 351, -1, 139, -1, 271, 116, 139, -1, 899 137, -1, 74, -1, 75, -1, 138, -1, 74, -1, 900 75, -1, 139, -1, 74, -1, 75, -1, 366, -1, 901 226, -1, 226, 357, -1, 366, -1, 371, -1, 226, 902 -1, 226, 345, -1, -1, 131, 278, -1, 107, 278, 903 -1, 165, -1, 114, 279, 372, 115, -1, -1, 278, 904 -1, 280, 278, -1, 279, 116, 278, -1, 279, 116, 905 280, 278, -1, 281, 130, -1, 274, 130, -1, 282, 906 -1, 281, 282, -1, 113, 274, -1, 111, 134, 165, 907 135, 112, -1, 111, 134, 310, 135, 112, -1, 111, 908 134, 164, 96, 164, 135, 112, -1, 113, 111, 134, 909 147, 135, 112, -1, 284, -1, 232, 284, -1, 283, 910 234, -1, 283, 234, 228, -1, 285, -1, 228, 285, 911 -1, 284, 229, -1, 75, 109, 292, 110, -1, 287, 912 373, -1, 286, 116, 287, 373, -1, -1, 289, 274, 913 288, 290, -1, 226, 336, -1, 33, -1, 35, -1, 914 34, -1, -1, 290, 291, -1, 128, 274, 109, 292, 915 110, -1, 128, 114, 134, 298, 115, -1, 128, 109, 916 134, 286, 135, 110, 114, 134, 298, 115, 109, 292, 917 110, -1, 276, -1, 165, -1, 292, 116, 276, -1, 918 292, 116, 165, -1, 33, 294, -1, 233, 33, 294, 919 -1, 293, 116, 294, -1, 295, 290, -1, 295, 290, 920 131, 276, -1, 274, -1, 273, 109, 134, 286, 135, 921 110, -1, 36, 274, 109, 134, 286, 135, 110, 114, 922 115, -1, -1, 36, 274, 109, 134, 286, 135, 110, 923 114, 297, 298, 115, -1, 299, -1, 298, 134, 299, 924 -1, 300, 135, 132, -1, 301, 135, 132, -1, 216, 925 -1, 218, -1, 300, 135, 116, 134, 272, -1, 226, 926 309, -1, 301, 135, 116, 134, 309, -1, -1, 303, 927 -1, 305, -1, 303, 134, 305, -1, -1, 303, -1, 928 213, -1, 307, -1, 199, -1, -1, 5, 82, 306, 929 114, 304, 115, -1, 40, 305, -1, 308, -1, 323, 930 174, -1, 327, 134, 208, 174, -1, 217, 174, -1, 931 225, 323, 174, -1, 228, 323, 174, -1, 232, 323, 932 174, -1, 232, 228, 323, 174, -1, 225, 327, 134, 933 208, 174, -1, 228, 327, 134, 208, 174, -1, 232, 934 327, 134, 208, 174, -1, 232, 228, 327, 134, 208, 935 174, -1, 318, -1, 331, -1, 323, -1, 164, 122, 936 164, -1, -1, 64, 109, 142, 110, 312, -1, -1, 937 313, -1, 314, -1, 313, 314, -1, 39, 109, 109, 938 315, 110, 110, -1, 316, -1, 315, 116, 316, -1, 939 -1, 317, -1, 317, 109, 171, 110, -1, 272, -1, 940 234, -1, 235, -1, 229, -1, 319, 312, -1, 320, 941 -1, 321, 312, -1, 322, 312, -1, 137, -1, 109, 942 319, 110, -1, 150, 318, -1, 150, 228, 318, -1, 943 109, 320, 110, -1, 319, 349, -1, 109, 320, 110, 944 349, -1, 109, 321, 110, 350, -1, 109, 321, 110, 945 -1, 109, 320, 110, 109, 134, 264, 135, 110, -1, 946 109, 322, 110, -1, 324, 312, -1, 325, -1, 326, 947 312, -1, 319, 109, 134, 264, 135, 110, -1, 109, 948 325, 110, 109, 134, 264, 135, 110, -1, 109, 324, 949 110, -1, 150, 323, -1, 150, 228, 323, -1, 109, 950 325, 110, -1, 109, 325, 110, 349, -1, 109, 326, 951 110, 350, -1, 109, 326, 110, -1, 328, -1, 329, 952 -1, 330, -1, 319, 109, 271, 110, -1, 109, 329, 953 110, 109, 271, 110, -1, 109, 328, 110, -1, 150, 954 327, -1, 150, 228, 327, -1, 109, 329, 110, -1, 955 109, 329, 110, 349, -1, 109, 330, 110, 350, -1, 956 109, 330, 110, -1, 332, 312, -1, 333, -1, 334, 957 312, -1, 335, 312, -1, 341, -1, 109, 332, 110, 958 -1, 150, 331, -1, 150, 228, 331, -1, 109, 333, 959 110, -1, 332, 349, -1, 109, 333, 110, 349, -1, 960 109, 334, 110, 350, -1, 109, 334, 110, -1, 332, 961 109, 134, 264, 135, 110, -1, 109, 333, 110, 109, 962 134, 264, 135, 110, -1, 109, 335, 110, -1, 319, 963 312, -1, 337, -1, 338, 312, -1, 339, 312, -1, 964 150, 336, -1, 150, 228, 336, -1, 109, 337, 110, 965 -1, 319, 355, -1, 109, 337, 110, 349, -1, 109, 966 338, 110, 350, -1, 109, 338, 110, -1, 319, 109, 967 134, 264, 135, 110, -1, 109, 337, 110, 109, 134, 968 264, 135, 110, -1, 109, 339, 110, -1, 341, 312, 969 -1, 342, -1, 343, 312, -1, 344, 312, -1, 74, 970 -1, 75, -1, 150, 340, -1, 150, 228, 340, -1, 971 109, 342, 110, -1, 341, 355, -1, 109, 342, 110, 972 355, -1, 341, 109, 134, 264, 135, 110, -1, 109, 973 342, 110, 109, 134, 264, 135, 110, -1, 346, -1, 974 347, 312, -1, 348, 312, -1, 150, -1, 150, 228, 975 -1, 150, 345, -1, 150, 228, 345, -1, 109, 346, 976 110, -1, 349, -1, 109, 346, 110, 349, -1, 109, 977 347, 110, 350, -1, 109, 347, 110, -1, 109, 134, 978 264, 135, 110, -1, 109, 346, 110, 109, 134, 264, 979 135, 110, -1, 109, 348, 110, -1, 111, 112, -1, 980 111, 112, 350, -1, 350, -1, 111, 134, 165, 135, 981 112, -1, 111, 134, 117, 135, 112, -1, 350, 111, 982 134, 165, 135, 112, -1, 350, 111, 134, 117, 135, 983 112, -1, 352, -1, 353, 312, -1, 354, 312, -1, 984 150, -1, 150, 228, -1, 150, 351, -1, 150, 228, 985 351, -1, 109, 352, 110, -1, 355, -1, 109, 352, 986 110, 355, -1, 109, 353, 110, 350, -1, 109, 353, 987 110, -1, 109, 134, 264, 135, 110, -1, 109, 352, 988 110, 109, 134, 264, 135, 110, -1, 109, 354, 110, 989 -1, 356, -1, 356, 350, -1, 350, -1, 111, 112, 990 -1, 111, 134, 228, 117, 135, 112, -1, 111, 134, 991 228, 135, 112, -1, 111, 134, 228, 165, 135, 112, 992 -1, 111, 134, 7, 227, 165, 135, 112, -1, 111, 993 134, 228, 7, 165, 135, 112, -1, 358, -1, 359, 994 312, -1, 360, 312, -1, 150, -1, 150, 228, -1, 995 150, 357, -1, 150, 228, 357, -1, 109, 358, 110, 996 -1, 349, -1, 109, 358, 110, 349, -1, 109, 359, 997 110, 350, -1, 109, 359, 110, -1, 109, 358, 110, 998 109, 134, 264, 135, 110, -1, 109, 360, 110, -1, 999 362, -1, 370, -1, 228, 370, -1, 363, -1, 364, 1000 -1, 150, 226, -1, 228, 150, 226, -1, 150, 371, 1001 -1, 228, 150, 371, -1, 150, 361, -1, 228, 150, 1002 361, -1, 111, 112, 226, -1, 365, 226, -1, 111, 1003 112, 350, 226, -1, 365, 350, 226, -1, 350, 226, 1004 -1, 111, 112, 363, -1, 365, 363, -1, 111, 112, 1005 350, 363, -1, 365, 350, 363, -1, 350, 363, -1, 1006 111, 134, 228, 117, 135, 112, -1, 111, 134, 228, 1007 165, 135, 112, -1, 111, 134, 232, 165, 135, 112, 1008 -1, 111, 134, 232, 228, 165, 135, 112, -1, 370, 1009 -1, 228, 370, -1, 367, -1, 368, -1, 369, -1, 1010 150, 226, -1, 228, 150, 226, -1, 150, 371, -1, 1011 228, 150, 371, -1, 150, 366, -1, 228, 150, 366, 1012 -1, 111, 112, 226, -1, 111, 112, 350, 226, -1, 1013 350, 226, -1, 111, 112, 368, -1, 111, 112, 350, 1014 368, -1, 350, 368, -1, 111, 134, 263, 135, 112, 1015 -1, 111, 112, 109, 260, 110, -1, 370, 109, 134, 1016 260, 135, 110, -1, 219, 109, 134, 260, 135, 110, 1017 -1, -1, 116, -1, -1, 131, 165, -1 1059 1018 }; 1060 1019 … … 1062 1021 static const yytype_uint16 yyrline[] = 1063 1022 { 1064 0, 3 41, 341, 345, 352, 353, 354, 358, 359, 360,1065 3 64, 365, 369, 370, 374, 375, 379, 383, 384, 395,1066 3 97, 399, 401, 406, 407, 413, 417, 419, 420, 422,1067 423, 425, 427, 429, 438, 439, 445, 446, 450, 451,1068 4 55, 459, 461, 463, 465, 470, 473, 475, 477, 482,1069 4 95, 497, 499, 501, 503, 505, 507, 509, 511, 513,1070 515, 522, 523, 529, 530, 531, 532, 536, 537, 539,1071 5 44, 545, 547, 549, 554, 555, 557, 562, 563, 565,1072 5 70, 571, 573, 575, 577, 582, 583, 585, 590, 591,1073 5 96, 597, 602, 603, 608, 609, 614, 615, 620, 621,1074 624, 626, 631, 636, 637, 639, 645, 646, 650, 651,1075 6 52, 653, 654, 655, 656, 657, 658, 659, 660, 666,1076 6 68, 670, 672, 677, 678, 683, 684, 690, 691, 697,1077 6 98, 699, 700, 701, 702, 703, 704, 705, 715, 722,1078 724, 734, 735, 740, 742, 748, 750, 754, 755, 760,1079 7 65, 768, 770, 772, 782, 784, 795, 796, 798, 802,1080 804, 808, 809, 814, 815, 819, 824, 825, 829, 831,1081 837, 838, 842, 844, 846, 848, 854, 855, 859, 861,1082 8 66, 868, 870, 875, 877, 882, 884, 888, 891, 895,1083 8 98, 902, 904, 906, 908, 913, 915, 917, 922, 924,1084 926, 928, 930, 935, 937, 939, 941, 946, 958, 959,1085 9 64, 966, 971, 975, 977, 979, 981, 983, 989, 990,1086 9 96, 997, 1001, 1002, 1007, 1009, 1015, 1016, 1018, 1023,1087 1028, 1038, 1040, 1044, 1045, 1050, 1052, 1056, 1057, 1061,1088 10 63, 1067, 1068, 1072, 1073, 1077, 1078, 1093, 1094, 1095,1089 10 96, 1097, 1101, 1106, 1113, 1123, 1128, 1133, 1141, 1146,1090 11 51, 1156, 1161, 1169, 1191, 1196, 1203, 1205, 1212, 1217,1091 1 222, 1233, 1238, 1243, 1248, 1253, 1262, 1267, 1275, 1276,1092 12 77, 1278, 1284, 1289, 1297, 1298, 1299, 1300, 1304, 1305,1093 1 306, 1307, 1312, 1313, 1322, 1323, 1328, 1329, 1334, 1336,1094 1 338, 1340, 1342, 1345, 1344, 1356, 1357, 1359, 1369, 1370,1095 13 75, 1377, 1379, 1381, 1383, 1385, 1387, 1389, 1394, 1396,1096 13 98, 1400, 1402, 1404, 1406, 1408, 1410, 1412, 1414, 1416,1097 1 418, 1424, 1425, 1427, 1429, 1431, 1436, 1437, 1443, 1444,1098 14 46, 1448, 1453, 1455, 1457, 1459, 1464, 1465, 1467, 1469,1099 14 74, 1475, 1477, 1482, 1483, 1485, 1487, 1492, 1494, 1496,1100 1 501, 1502, 1506, 1508, 1514, 1513, 1517, 1519, 1524, 1526,1101 1 532, 1533, 1538, 1539, 1541, 1542, 1551, 1552, 1554, 1556,1102 15 61, 1563, 1569, 1570, 1572, 1575, 1578, 1583, 1584, 1589,1103 15 94, 1598, 1600, 1606, 1605, 1612, 1614, 1620, 1621, 1629,1104 1 630, 1634, 1635, 1636, 1638, 1640, 1647, 1648, 1650, 1652,1105 16 57, 1658, 1664, 1665, 1669, 1670, 1675, 1676, 1677, 1679,1106 16 87, 1688, 1690, 1693, 1695, 1699, 1700, 1701, 1703, 1705,1107 1 709, 1714, 1722, 1723, 1732, 1734, 1739, 1740, 1741, 1745,1108 17 46, 1747, 1751, 1752, 1753, 1757, 1758, 1759, 1764, 1765,1109 17 66, 1767, 1773, 1774, 1776, 1781, 1782, 1787, 1788, 1789,1110 17 90, 1791, 1806, 1807, 1812, 1813, 1819, 1821, 1824, 1826,1111 1 828, 1851, 1852, 1854, 1856, 1861, 1862, 1864, 1869, 1874,1112 18 75, 1881, 1880, 1884, 1888, 1890, 1892, 1898, 1899, 1904,1113 1 909, 1911, 1916, 1918, 1919, 1921, 1926, 1928, 1930, 1935,1114 1 937, 1942, 1947, 1955, 1961, 1960, 1974, 1975, 1980, 1981,1115 19 85, 1990, 1995, 2003, 2008, 2019, 2020, 2025, 2026, 2032,1116 2033, 2037, 2038, 2039, 2042, 2041, 2052, 2061, 2067, 2073,1117 20 82, 2088, 2094, 2100, 2106, 2114, 2120, 2128, 2134, 2143,1118 21 44, 2145, 2149, 2153, 2155, 2161, 2162, 2166, 2167, 2172,1119 21 78, 2179, 2182, 2184, 2185, 2190, 2191, 2192, 2193, 2227,1120 2 229, 2230, 2232, 2237, 2242, 2247, 2249, 2251, 2256, 2258,1121 22 60, 2262, 2267, 2269, 2278, 2280, 2281, 2286, 2288, 2290,1122 22 95, 2297, 2299, 2304, 2306, 2308, 2317, 2318, 2319, 2323,1123 2 325, 2327, 2332, 2334, 2336, 2341, 2343, 2345, 2360, 2362,1124 23 63, 2365, 2370, 2371, 2376, 2378, 2380, 2385, 2387, 2389,1125 23 91, 2396, 2398, 2400, 2410, 2412, 2413, 2415, 2420, 2422,1126 2 424, 2429, 2431, 2433, 2435, 2440, 2442, 2444, 2475, 2477,1127 24 78, 2480, 2485, 2490, 2498, 2500, 2502, 2507, 2509, 2514,1128 2 516, 2530, 2531, 2533, 2538, 2540, 2542, 2544, 2546, 2551,1129 25 52, 2554, 2556, 2561, 2563, 2565, 2571, 2573, 2575, 2579,1130 25 81, 2583, 2585, 2599, 2600, 2602, 2607, 2609, 2611, 2613,1131 2 615, 2620, 2621, 2623, 2625, 2630, 2632, 2634, 2640, 2641,1132 26 43, 2652, 2655, 2657, 2660, 2662, 2664, 2677, 2678, 2680,1133 26 85, 2687, 2689, 2691, 2693, 2698, 2699, 2701, 2703, 2708,1134 2 710, 2718, 2719, 2720, 2725, 2726, 2730, 2732, 2734, 2736,1135 2 738, 2740, 2747, 2749, 2751, 2753, 2755, 2757, 2759, 2761,1136 27 63, 2765, 2770, 2772, 2774, 2779, 2805, 2806, 2808, 2812,1137 2 813, 2817, 2819, 2821, 2823, 2825, 2827, 2834, 2836, 2838,1138 2 840, 2842, 2844, 2849, 2854, 2856, 2858, 2876, 2878, 2883,1139 28 841023 0, 300, 300, 304, 311, 312, 313, 317, 318, 319, 1024 323, 324, 328, 329, 333, 334, 338, 342, 343, 354, 1025 356, 358, 360, 365, 366, 372, 376, 378, 379, 381, 1026 382, 384, 386, 388, 397, 398, 404, 405, 409, 410, 1027 414, 418, 420, 422, 424, 429, 432, 434, 436, 441, 1028 454, 456, 458, 460, 462, 464, 466, 468, 470, 472, 1029 474, 481, 482, 488, 489, 490, 491, 495, 496, 498, 1030 503, 504, 506, 508, 513, 514, 516, 521, 522, 524, 1031 529, 530, 532, 534, 536, 541, 542, 544, 549, 550, 1032 555, 556, 561, 562, 567, 568, 573, 574, 579, 580, 1033 583, 585, 590, 595, 596, 598, 604, 605, 609, 610, 1034 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 1035 626, 628, 630, 632, 637, 638, 643, 644, 650, 651, 1036 657, 658, 659, 660, 661, 662, 663, 664, 665, 675, 1037 682, 684, 694, 695, 700, 702, 708, 710, 714, 715, 1038 720, 725, 728, 730, 732, 742, 744, 755, 756, 758, 1039 762, 764, 768, 769, 774, 775, 779, 784, 785, 789, 1040 791, 797, 798, 802, 804, 806, 808, 814, 815, 819, 1041 821, 826, 828, 830, 835, 837, 842, 844, 848, 851, 1042 855, 858, 862, 864, 866, 868, 873, 875, 877, 882, 1043 884, 886, 888, 890, 895, 897, 899, 901, 906, 918, 1044 919, 924, 926, 931, 935, 937, 939, 941, 943, 949, 1045 950, 956, 957, 961, 962, 967, 969, 975, 976, 978, 1046 983, 988, 998, 1000, 1004, 1005, 1010, 1012, 1016, 1017, 1047 1021, 1023, 1027, 1028, 1032, 1033, 1037, 1038, 1053, 1054, 1048 1055, 1056, 1057, 1061, 1066, 1073, 1083, 1088, 1093, 1101, 1049 1106, 1111, 1116, 1121, 1129, 1151, 1156, 1163, 1165, 1172, 1050 1177, 1182, 1193, 1198, 1203, 1208, 1213, 1222, 1227, 1235, 1051 1236, 1237, 1238, 1244, 1249, 1257, 1258, 1259, 1260, 1264, 1052 1265, 1266, 1267, 1272, 1273, 1282, 1283, 1288, 1289, 1294, 1053 1296, 1298, 1300, 1302, 1305, 1304, 1316, 1317, 1319, 1329, 1054 1330, 1335, 1337, 1339, 1341, 1343, 1346, 1348, 1351, 1356, 1055 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1056 1378, 1380, 1386, 1387, 1389, 1391, 1393, 1398, 1399, 1405, 1057 1406, 1408, 1410, 1415, 1417, 1419, 1421, 1426, 1427, 1429, 1058 1431, 1436, 1437, 1439, 1444, 1445, 1447, 1449, 1454, 1456, 1059 1458, 1463, 1464, 1468, 1470, 1476, 1475, 1479, 1481, 1486, 1060 1488, 1494, 1495, 1500, 1501, 1503, 1504, 1513, 1514, 1516, 1061 1518, 1523, 1525, 1531, 1532, 1534, 1537, 1540, 1545, 1546, 1062 1551, 1556, 1560, 1562, 1568, 1567, 1574, 1576, 1582, 1583, 1063 1591, 1592, 1596, 1597, 1598, 1600, 1602, 1609, 1610, 1612, 1064 1614, 1619, 1620, 1626, 1627, 1631, 1632, 1637, 1638, 1639, 1065 1641, 1649, 1650, 1652, 1655, 1657, 1661, 1662, 1663, 1665, 1066 1667, 1671, 1676, 1684, 1685, 1694, 1696, 1701, 1702, 1703, 1067 1707, 1708, 1709, 1713, 1714, 1715, 1719, 1720, 1721, 1726, 1068 1727, 1728, 1729, 1735, 1736, 1738, 1743, 1744, 1749, 1750, 1069 1751, 1752, 1753, 1768, 1769, 1774, 1775, 1781, 1783, 1786, 1070 1788, 1790, 1813, 1814, 1816, 1818, 1823, 1824, 1826, 1831, 1071 1836, 1837, 1843, 1842, 1846, 1850, 1852, 1854, 1860, 1861, 1072 1866, 1871, 1873, 1878, 1880, 1881, 1883, 1888, 1890, 1892, 1073 1897, 1899, 1904, 1909, 1917, 1923, 1922, 1936, 1937, 1942, 1074 1943, 1947, 1952, 1957, 1965, 1970, 1981, 1982, 1987, 1988, 1075 1994, 1995, 1999, 2000, 2001, 2004, 2003, 2014, 2023, 2029, 1076 2035, 2044, 2050, 2056, 2062, 2068, 2076, 2082, 2090, 2096, 1077 2105, 2106, 2107, 2111, 2115, 2117, 2122, 2123, 2127, 2128, 1078 2133, 2139, 2140, 2143, 2145, 2146, 2150, 2151, 2152, 2153, 1079 2187, 2189, 2190, 2192, 2197, 2202, 2207, 2209, 2211, 2216, 1080 2218, 2220, 2222, 2227, 2229, 2238, 2240, 2241, 2246, 2248, 1081 2250, 2255, 2257, 2259, 2264, 2266, 2268, 2277, 2278, 2279, 1082 2283, 2285, 2287, 2292, 2294, 2296, 2301, 2303, 2305, 2320, 1083 2322, 2323, 2325, 2330, 2331, 2336, 2338, 2340, 2345, 2347, 1084 2349, 2351, 2356, 2358, 2360, 2370, 2372, 2373, 2375, 2380, 1085 2382, 2384, 2389, 2391, 2393, 2395, 2400, 2402, 2404, 2435, 1086 2437, 2438, 2440, 2445, 2450, 2458, 2460, 2462, 2467, 2469, 1087 2474, 2476, 2490, 2491, 2493, 2498, 2500, 2502, 2504, 2506, 1088 2511, 2512, 2514, 2516, 2521, 2523, 2525, 2531, 2533, 2535, 1089 2539, 2541, 2543, 2545, 2559, 2560, 2562, 2567, 2569, 2571, 1090 2573, 2575, 2580, 2581, 2583, 2585, 2590, 2592, 2594, 2600, 1091 2601, 2603, 2612, 2615, 2617, 2620, 2622, 2624, 2637, 2638, 1092 2640, 2645, 2647, 2649, 2651, 2653, 2658, 2659, 2661, 2663, 1093 2668, 2670, 2678, 2679, 2680, 2685, 2686, 2690, 2692, 2694, 1094 2696, 2698, 2700, 2707, 2709, 2711, 2713, 2715, 2717, 2719, 1095 2721, 2723, 2725, 2730, 2732, 2734, 2739, 2765, 2766, 2768, 1096 2772, 2773, 2777, 2779, 2781, 2783, 2785, 2787, 2794, 2796, 1097 2798, 2800, 2802, 2804, 2809, 2814, 2816, 2818, 2836, 2838, 1098 2843, 2844 1140 1099 }; 1141 1100 #endif … … 1290 1249 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 1291 1250 163, 163, 164, 165, 165, 165, 166, 166, 167, 167, 1292 167, 167, 167, 167, 167, 167, 167, 167, 167, 16 8,1293 168, 168, 168, 16 9, 169, 170, 170, 171, 171, 172,1294 172, 172, 172, 172, 172, 172, 172, 172, 17 3, 174,1295 174, 17 5, 175, 176, 176, 176, 176, 177, 177, 178,1296 17 9, 179, 179, 179, 179, 179, 180, 180, 180, 181,1297 181, 18 2, 182, 183, 183, 184, 185, 185, 186, 186,1298 18 7, 187, 188, 188, 188, 188, 189, 189, 190, 190,1299 19 1, 191, 191, 192, 192, 193, 193, 193, 193, 193,1300 193, 193, 193, 193, 193, 19 4, 194, 194, 195, 195,1301 195, 195, 195, 19 6, 196, 196, 196, 197, 198, 198,1302 198, 198, 198, 19 9, 199, 199, 199, 199, 200, 200,1303 20 1, 201, 202, 202, 203, 203, 204, 204, 204, 205,1304 205, 20 6, 206, 207, 207, 208, 208, 209, 209, 210,1305 210, 21 1, 211, 212, 212, 213, 213, 214, 214, 214,1306 214, 214, 21 5, 215, 215, 216, 216, 216, 217, 217,1307 217, 217, 217, 21 8, 218, 218, 219, 219, 220, 220,1308 220, 22 1, 221, 221, 221, 221, 222, 222, 223, 223,1309 223, 223, 22 4, 224, 225, 225, 225, 225, 226, 226,1310 226, 226, 22 7, 227, 228, 228, 229, 229, 230, 230,1311 230, 230, 230, 23 1, 230, 232, 232, 232, 233, 233,1312 23 4, 234, 234, 234, 234, 234, 234, 234, 235, 235,1251 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 1252 168, 168, 168, 168, 169, 169, 170, 170, 171, 171, 1253 172, 172, 172, 172, 172, 172, 172, 172, 172, 173, 1254 174, 174, 175, 175, 176, 176, 176, 176, 177, 177, 1255 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 1256 181, 181, 182, 182, 183, 183, 184, 185, 185, 186, 1257 186, 187, 187, 188, 188, 188, 188, 189, 189, 190, 1258 190, 191, 191, 191, 192, 192, 193, 193, 193, 193, 1259 193, 193, 193, 193, 193, 193, 194, 194, 194, 195, 1260 195, 195, 195, 195, 196, 196, 196, 196, 197, 198, 1261 198, 198, 198, 198, 199, 199, 199, 199, 199, 200, 1262 200, 201, 201, 202, 202, 203, 203, 204, 204, 204, 1263 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 1264 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 1265 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 1266 217, 217, 217, 217, 218, 218, 218, 219, 219, 220, 1267 220, 220, 221, 221, 221, 221, 221, 222, 222, 223, 1268 223, 223, 223, 224, 224, 225, 225, 225, 225, 226, 1269 226, 226, 226, 227, 227, 228, 228, 229, 229, 230, 1270 230, 230, 230, 230, 231, 230, 232, 232, 232, 233, 1271 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 1313 1272 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 1314 235, 23 6, 236, 236, 236, 236, 237, 237, 238, 238,1315 238, 238, 23 9, 239, 239, 239, 240, 240, 240, 240,1316 24 1, 241, 241, 242, 242, 242, 242, 243, 243, 243,1317 24 4, 244, 245, 245, 246, 245, 245, 245, 247, 247,1318 24 8, 248, 249, 249, 249, 249, 250, 250, 250, 250,1319 25 1, 251, 252, 252, 252, 252, 252, 253, 253, 254,1320 25 5, 256, 256, 257, 256, 258, 258, 259, 259, 260,1321 260, 26 1, 261, 261, 261, 261, 262, 262, 262, 262,1322 26 3, 263, 264, 264, 265, 265, 266, 266, 266, 266,1323 26 7, 267, 267, 267, 267, 268, 268, 268, 268, 268,1324 26 9, 269, 270, 270, 271, 271, 272, 272, 272, 273,1325 273, 273, 27 4, 274, 274, 275, 275, 275, 276, 276,1326 276, 276, 27 7, 277, 277, 278, 278, 279, 279, 279,1327 279, 279, 2 80, 280, 281, 281, 282, 282, 282, 282,1328 282, 28 3, 283, 283, 283, 284, 284, 284, 285, 286,1329 286, 28 8, 287, 287, 289, 289, 289, 290, 290, 291,1330 291, 291, 29 2, 292, 292, 292, 293, 293, 293, 294,1331 294, 29 5, 295, 296, 297, 296, 298, 298, 299, 299,1332 300, 300, 300, 301, 301, 302, 302, 303, 303, 304,1333 304, 30 5, 305, 305, 306, 305, 305, 307, 307, 307,1334 30 8, 308, 308, 308, 308, 308, 308, 308, 308, 309,1335 309, 309, 3 10, 311, 311, 312, 312, 313, 313, 314,1336 31 5, 315, 316, 316, 316, 317, 317, 317, 317, 318,1337 318, 318, 318, 31 9, 319, 320, 320, 320, 321, 321,1338 321, 321, 32 2, 322, 323, 323, 323, 324, 324, 324,1339 32 5, 325, 325, 326, 326, 326, 327, 327, 327, 328,1340 328, 328, 32 9, 329, 329, 330, 330, 330, 331, 331,1341 331, 331, 33 2, 332, 333, 333, 333, 334, 334, 334,1342 334, 33 5, 335, 335, 336, 336, 336, 336, 337, 337,1343 337, 33 8, 338, 338, 338, 339, 339, 339, 340, 340,1344 340, 340, 34 1, 341, 342, 342, 342, 343, 343, 344,1345 344, 34 5, 345, 345, 346, 346, 346, 346, 346, 347,1346 347, 347, 347, 34 8, 348, 348, 349, 349, 349, 350,1347 350, 350, 350, 35 1, 351, 351, 352, 352, 352, 352,1348 352, 35 3, 353, 353, 353, 354, 354, 354, 355, 355,1349 355, 35 6, 356, 356, 356, 356, 356, 357, 357, 357,1350 35 8, 358, 358, 358, 358, 359, 359, 359, 359, 360,1351 360, 36 1, 361, 361, 362, 362, 363, 363, 363, 363,1352 363, 363, 36 4, 364, 364, 364, 364, 364, 364, 364,1353 364, 364, 36 5, 365, 365, 365, 366, 366, 366, 367,1354 367, 36 8, 368, 368, 368, 368, 368, 369, 369, 369,1355 369, 369, 369, 3 70, 371, 371, 371, 372, 372, 373,1356 373 1273 235, 235, 236, 236, 236, 236, 236, 237, 237, 238, 1274 238, 238, 238, 239, 239, 239, 239, 240, 240, 240, 1275 240, 241, 241, 241, 242, 242, 242, 242, 243, 243, 1276 243, 244, 244, 245, 245, 246, 245, 245, 245, 247, 1277 247, 248, 248, 249, 249, 249, 249, 250, 250, 250, 1278 250, 251, 251, 252, 252, 252, 252, 252, 253, 253, 1279 254, 255, 256, 256, 257, 256, 258, 258, 259, 259, 1280 260, 260, 261, 261, 261, 261, 261, 262, 262, 262, 1281 262, 263, 263, 264, 264, 265, 265, 266, 266, 266, 1282 266, 267, 267, 267, 267, 267, 268, 268, 268, 268, 1283 268, 269, 269, 270, 270, 271, 271, 272, 272, 272, 1284 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, 1285 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 1286 279, 279, 279, 280, 280, 281, 281, 282, 282, 282, 1287 282, 282, 283, 283, 283, 283, 284, 284, 284, 285, 1288 286, 286, 288, 287, 287, 289, 289, 289, 290, 290, 1289 291, 291, 291, 292, 292, 292, 292, 293, 293, 293, 1290 294, 294, 295, 295, 296, 297, 296, 298, 298, 299, 1291 299, 300, 300, 300, 301, 301, 302, 302, 303, 303, 1292 304, 304, 305, 305, 305, 306, 305, 305, 307, 307, 1293 307, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1294 309, 309, 309, 310, 311, 311, 312, 312, 313, 313, 1295 314, 315, 315, 316, 316, 316, 317, 317, 317, 317, 1296 318, 318, 318, 318, 319, 319, 320, 320, 320, 321, 1297 321, 321, 321, 322, 322, 323, 323, 323, 324, 324, 1298 324, 325, 325, 325, 326, 326, 326, 327, 327, 327, 1299 328, 328, 328, 329, 329, 329, 330, 330, 330, 331, 1300 331, 331, 331, 332, 332, 333, 333, 333, 334, 334, 1301 334, 334, 335, 335, 335, 336, 336, 336, 336, 337, 1302 337, 337, 338, 338, 338, 338, 339, 339, 339, 340, 1303 340, 340, 340, 341, 341, 342, 342, 342, 343, 343, 1304 344, 344, 345, 345, 345, 346, 346, 346, 346, 346, 1305 347, 347, 347, 347, 348, 348, 348, 349, 349, 349, 1306 350, 350, 350, 350, 351, 351, 351, 352, 352, 352, 1307 352, 352, 353, 353, 353, 353, 354, 354, 354, 355, 1308 355, 355, 356, 356, 356, 356, 356, 356, 357, 357, 1309 357, 358, 358, 358, 358, 358, 359, 359, 359, 359, 1310 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 1311 363, 363, 363, 364, 364, 364, 364, 364, 364, 364, 1312 364, 364, 364, 365, 365, 365, 365, 366, 366, 366, 1313 367, 367, 368, 368, 368, 368, 368, 368, 369, 369, 1314 369, 369, 369, 369, 370, 371, 371, 371, 372, 372, 1315 373, 373 1357 1316 }; 1358 1317 … … 1371 1330 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1372 1331 4, 5, 1, 1, 3, 2, 0, 1, 1, 1, 1373 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,1374 5, 6, 7, 1, 3, 1, 3, 0, 1, 1,1375 1, 1, 1, 1, 1, 1, 1, 6, 4, 2,1376 7, 1, 3, 1, 2, 1, 2, 1, 2, 2,1377 5, 7, 5, 9, 5, 9, 1, 3, 1, 1,1378 3, 3, 2, 1, 2, 2, 0, 1, 2, 3,1379 0, 1, 2, 3, 3, 4, 0, 1, 1, 2,1380 5, 7, 6, 6, 4, 3, 4, 2, 3, 2,1381 3, 3, 3, 3, 5, 3, 3, 4, 1, 5,1382 6, 5, 6, 9, 10, 9, 10, 2, 1, 2,1383 2, 2, 1, 6, 8, 10, 12, 14, 0, 1,1384 0, 1, 1, 3, 4, 7, 0, 1, 3, 1,1385 3, 1, 1, 1, 3, 1, 1, 1, 3, 0,1386 1, 3, 4, 1, 3, 1, 1, 3, 3, 3,1387 3, 3, 2, 3, 6, 3, 3, 4, 1, 2,1388 2, 3, 5, 8, 7, 7, 5, 9, 2, 2,1389 5, 3, 5, 4, 3, 4, 4, 7, 3, 3,1390 3, 3, 4, 6, 1, 1, 1, 1, 1, 1,1391 1, 1, 0, 1, 1, 2, 1, 1, 1, 1,1392 1, 1, 1, 0, 5, 1, 2, 3, 1, 2,1393 1332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 2, 5, 6, 7, 1, 3, 1, 3, 0, 1, 1334 1, 1, 1, 1, 1, 1, 1, 1, 6, 4, 1335 2, 7, 1, 3, 1, 2, 1, 2, 1, 2, 1336 2, 5, 7, 5, 9, 5, 9, 1, 3, 1, 1337 1, 3, 3, 2, 1, 2, 2, 0, 1, 2, 1338 3, 0, 1, 2, 3, 3, 4, 0, 1, 1, 1339 2, 5, 7, 6, 6, 4, 3, 4, 2, 3, 1340 2, 3, 3, 3, 3, 5, 3, 3, 4, 1, 1341 5, 6, 5, 6, 9, 10, 9, 10, 2, 1, 1342 2, 2, 2, 1, 6, 8, 10, 12, 14, 0, 1343 1, 0, 1, 1, 3, 4, 7, 0, 1, 3, 1344 1, 3, 1, 1, 1, 3, 1, 1, 1, 3, 1345 0, 1, 3, 4, 1, 3, 1, 1, 3, 3, 1346 3, 3, 3, 2, 3, 6, 3, 3, 4, 1, 1347 2, 2, 3, 5, 8, 7, 7, 5, 9, 2, 1348 2, 5, 3, 5, 4, 3, 4, 4, 7, 3, 1349 3, 3, 3, 4, 6, 1, 1, 1, 1, 1, 1350 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1351 1, 1, 1, 1, 0, 5, 1, 2, 3, 1, 1352 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1394 1353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1395 1, 1, 2, 2, 3, 3, 1, 3, 1, 2, 1396 2, 2, 4, 4, 4, 4, 1, 2, 2, 3, 1397 1, 2, 2, 1, 2, 2, 3, 1, 2, 2, 1398 1, 1, 4, 2, 0, 6, 7, 2, 2, 2, 1399 0, 2, 2, 3, 2, 3, 1, 2, 3, 2, 1400 2, 4, 0, 1, 2, 2, 1, 0, 1, 2, 1401 2, 5, 2, 0, 7, 2, 4, 0, 2, 0, 1402 1, 1, 1, 5, 5, 5, 1, 5, 5, 9, 1403 1, 5, 0, 1, 1, 5, 1, 1, 5, 5, 1404 1, 3, 3, 4, 1, 1, 1, 1, 2, 1, 1405 3, 3, 1, 2, 1, 3, 1, 1, 1, 1, 1406 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1407 1, 2, 0, 2, 2, 1, 4, 0, 1, 2, 1408 3, 4, 2, 2, 1, 2, 2, 5, 5, 7, 1409 6, 1, 2, 2, 3, 1, 2, 2, 4, 2, 1410 4, 0, 4, 2, 1, 1, 1, 0, 2, 5, 1411 5, 13, 1, 1, 3, 3, 2, 3, 3, 2, 1412 4, 1, 6, 9, 0, 11, 1, 3, 3, 3, 1413 1, 1, 5, 2, 5, 0, 1, 1, 3, 0, 1414 1, 1, 1, 1, 0, 6, 2, 1, 2, 4, 1415 2, 3, 3, 3, 4, 5, 5, 5, 6, 1, 1416 1, 1, 3, 0, 5, 0, 1, 1, 2, 6, 1417 1, 3, 0, 1, 4, 1, 1, 1, 1, 2, 1354 1, 1, 1, 2, 2, 3, 3, 1, 3, 1, 1355 2, 2, 2, 4, 4, 4, 4, 1, 2, 2, 1356 3, 1, 2, 2, 1, 2, 2, 3, 1, 2, 1357 2, 1, 1, 4, 2, 0, 6, 7, 2, 2, 1358 2, 0, 2, 2, 3, 2, 3, 1, 2, 3, 1359 2, 2, 4, 0, 1, 2, 2, 1, 0, 1, 1360 2, 2, 5, 2, 0, 7, 2, 4, 0, 2, 1361 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1362 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1363 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1364 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1366 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 1367 2, 3, 4, 2, 2, 1, 2, 2, 5, 5, 1368 7, 6, 1, 2, 2, 3, 1, 2, 2, 4, 1369 2, 4, 0, 4, 2, 1, 1, 1, 0, 2, 1370 5, 5, 13, 1, 1, 3, 3, 2, 3, 3, 1371 2, 4, 1, 6, 9, 0, 11, 1, 3, 3, 1372 3, 1, 1, 5, 2, 5, 0, 1, 1, 3, 1373 0, 1, 1, 1, 1, 0, 6, 2, 1, 2, 1374 4, 2, 3, 3, 3, 4, 5, 5, 5, 6, 1375 1, 1, 1, 3, 0, 5, 0, 1, 1, 2, 1376 6, 1, 3, 0, 1, 4, 1, 1, 1, 1, 1377 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 1378 4, 4, 3, 8, 3, 2, 1, 2, 6, 8, 1379 3, 2, 3, 3, 4, 4, 3, 1, 1, 1, 1380 4, 6, 3, 2, 3, 3, 4, 4, 3, 2, 1418 1381 1, 2, 2, 1, 3, 2, 3, 3, 2, 4, 1419 4, 3, 8, 3, 2, 1, 2, 6, 8, 3, 1420 2, 3, 3, 4, 4, 3, 1, 1, 1, 4, 1421 6, 3, 2, 3, 3, 4, 4, 3, 2, 1, 1422 2, 2, 1, 3, 2, 3, 3, 2, 4, 4, 1423 3, 6, 8, 3, 2, 1, 2, 2, 2, 3, 1424 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1425 2, 2, 1, 1, 2, 3, 3, 2, 4, 6, 1426 8, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1427 4, 4, 3, 5, 8, 3, 2, 3, 1, 5, 1428 5, 6, 6, 1, 2, 2, 1, 2, 2, 3, 1429 3, 1, 4, 4, 3, 5, 8, 3, 1, 2, 1430 1, 2, 6, 5, 6, 7, 7, 1, 2, 2, 1431 1, 2, 2, 3, 3, 1, 4, 4, 3, 8, 1432 3, 1, 1, 2, 1, 1, 2, 3, 2, 3, 1433 2, 3, 3, 2, 4, 3, 2, 3, 2, 4, 1434 3, 2, 6, 6, 6, 7, 1, 2, 1, 1, 1435 1, 2, 3, 2, 3, 2, 3, 3, 4, 2, 1436 3, 4, 2, 5, 5, 6, 6, 0, 1, 0, 1437 2 1382 4, 3, 6, 8, 3, 2, 1, 2, 2, 2, 1383 3, 3, 2, 4, 4, 3, 6, 8, 3, 2, 1384 1, 2, 2, 1, 1, 2, 3, 3, 2, 4, 1385 6, 8, 1, 2, 2, 1, 2, 2, 3, 3, 1386 1, 4, 4, 3, 5, 8, 3, 2, 3, 1, 1387 5, 5, 6, 6, 1, 2, 2, 1, 2, 2, 1388 3, 3, 1, 4, 4, 3, 5, 8, 3, 1, 1389 2, 1, 2, 6, 5, 6, 7, 7, 1, 2, 1390 2, 1, 2, 2, 3, 3, 1, 4, 4, 3, 1391 8, 3, 1, 1, 2, 1, 1, 2, 3, 2, 1392 3, 2, 3, 3, 2, 4, 3, 2, 3, 2, 1393 4, 3, 2, 6, 6, 6, 7, 1, 2, 1, 1394 1, 1, 2, 3, 2, 3, 2, 3, 3, 4, 1395 2, 3, 4, 2, 5, 5, 6, 6, 0, 1, 1396 0, 2 1438 1397 }; 1439 1398 … … 1443 1402 static const yytype_uint16 yydefact[] = 1444 1403 { 1445 29 2, 292, 312, 310, 313, 311, 314, 315, 298, 300,1446 299, 0, 301, 326, 318, 323, 321, 322, 320, 319,1447 32 4, 325, 330, 327, 328, 329, 545, 545, 545, 0,1448 0, 0, 29 2, 218, 302, 316, 317, 7, 357, 0,1449 8, 14, 15, 0, 2, 61, 62, 56 3, 9, 292,1450 52 3, 521, 245, 3, 452, 3, 258, 0, 3, 3,1451 3, 24 6, 3, 0, 0, 0, 293, 294, 296, 292,1452 30 5, 308, 338, 284, 331, 336, 285, 346, 286, 353,1453 35 0, 360, 0, 0, 361, 287, 471, 475, 3, 3,1454 0, 2, 51 7, 522, 527, 297, 0, 0, 545, 575,1455 54 5, 2, 586, 587, 588, 292, 0, 729, 730, 0,1456 12, 0, 13, 29 2, 268, 269, 0, 293, 288, 289,1457 29 0, 291, 524, 303, 390, 546, 547, 368, 369, 12,1458 44 3, 444, 11, 439, 442, 0, 501, 496, 487, 443,1459 44 4, 0, 0, 526, 219, 0, 292, 0, 0, 0,1460 0, 0, 0, 0, 0, 29 2, 292, 2, 0, 731,1461 29 3, 580, 592, 735, 728, 726, 733, 0, 0, 0,1462 25 2, 2, 0, 530, 437, 438, 436, 0, 0, 0,1463 0, 54 5, 0, 632, 633, 0, 0, 543, 539, 545,1464 56 0, 545, 545, 541, 2, 540, 545, 599, 545, 545,1465 60 2, 0, 0, 0, 292, 292, 310, 358, 2, 292,1466 2 59, 295, 306, 339, 351, 476, 0, 2, 0, 452,1467 26 0, 293, 332, 347, 354, 472, 0, 2, 0, 309,1468 33 3, 340, 341, 0, 348, 352, 355, 359, 444, 292,1469 37 0, 363, 367, 0, 392, 473, 477, 0, 0, 0,1470 1, 29 2, 2, 528, 574, 576, 292, 2, 739, 293,1471 74 2, 543, 543, 0, 293, 0, 0, 271, 545, 541,1472 2, 29 2, 0, 0, 292, 548, 2, 499, 2, 552,1404 293, 293, 313, 311, 314, 312, 315, 316, 299, 301, 1405 300, 0, 302, 327, 319, 324, 322, 323, 321, 320, 1406 325, 326, 331, 328, 329, 330, 546, 546, 546, 0, 1407 0, 0, 293, 219, 303, 317, 318, 7, 358, 0, 1408 8, 14, 15, 0, 2, 61, 62, 564, 9, 293, 1409 524, 522, 246, 3, 453, 3, 259, 0, 3, 3, 1410 3, 247, 3, 0, 0, 0, 294, 295, 297, 293, 1411 306, 309, 339, 285, 332, 337, 286, 347, 287, 354, 1412 351, 361, 0, 0, 362, 288, 472, 476, 3, 3, 1413 0, 2, 518, 523, 528, 298, 0, 0, 546, 576, 1414 546, 2, 587, 588, 589, 293, 0, 730, 731, 0, 1415 12, 0, 13, 293, 269, 270, 0, 294, 289, 290, 1416 291, 292, 525, 304, 391, 547, 548, 369, 370, 12, 1417 444, 445, 11, 440, 443, 0, 502, 497, 488, 444, 1418 445, 0, 0, 527, 220, 0, 293, 0, 0, 0, 1419 0, 0, 0, 0, 0, 293, 293, 2, 0, 732, 1420 294, 581, 593, 736, 729, 727, 734, 0, 0, 0, 1421 253, 2, 0, 531, 438, 439, 437, 0, 0, 0, 1422 0, 546, 0, 633, 634, 0, 0, 544, 540, 546, 1423 561, 546, 546, 542, 2, 541, 546, 600, 546, 546, 1424 603, 0, 0, 0, 293, 293, 311, 359, 2, 293, 1425 260, 296, 307, 340, 352, 477, 0, 2, 0, 453, 1426 261, 294, 333, 348, 355, 473, 0, 2, 0, 310, 1427 334, 341, 342, 0, 349, 353, 356, 360, 445, 293, 1428 371, 364, 368, 0, 393, 474, 478, 0, 0, 0, 1429 1, 293, 2, 529, 575, 577, 293, 2, 740, 294, 1430 743, 544, 544, 0, 294, 0, 0, 272, 546, 542, 1431 2, 293, 0, 0, 293, 549, 2, 500, 2, 553, 1473 1432 0, 0, 0, 0, 0, 0, 19, 58, 4, 5, 1474 6, 17, 0, 0, 29 2, 2, 63, 64, 65, 66,1475 46, 20, 47, 16, 23, 45, 67, 29 2, 0, 70,1433 6, 17, 0, 0, 293, 2, 63, 64, 65, 66, 1434 46, 20, 47, 16, 23, 45, 67, 293, 0, 70, 1476 1435 74, 77, 80, 85, 88, 90, 92, 94, 96, 98, 1477 103, 49 3, 749, 450, 492, 0, 448, 449, 0, 564,1478 5 79, 582, 585, 591, 594, 597, 357, 0, 2, 737,1479 0, 29 2, 740, 2, 61, 292, 3, 424, 0, 432,1480 29 3, 292, 305, 331, 285, 346, 353, 3, 3, 406,1481 41 0, 420, 425, 471, 292, 426, 704, 705, 292, 427,1482 4 29, 292, 2, 581, 593, 727, 2, 2, 247, 2,1483 45 7, 0, 455, 454, 453, 139, 2, 2, 249, 2,1484 2, 24 8, 2, 279, 2, 280, 0, 278, 0, 0,1485 0, 0, 0, 0, 0, 0, 0, 56 5, 604, 0,1486 45 2, 2, 559, 568, 658, 561, 562, 531, 292, 2,1487 59 8, 607, 600, 601, 0, 274, 292, 292, 337, 293,1488 0, 29 3, 0, 292, 732, 736, 734, 532, 292, 543,1489 25 3, 261, 307, 0, 2, 533, 292, 497, 334, 335,1490 28 1, 349, 356, 0, 292, 0, 747, 397, 0, 474,1491 49 8, 250, 251, 518, 292, 434, 0, 292, 235, 0,1492 2, 23 7, 0, 293, 0, 255, 2, 256, 276, 0,1493 0, 2, 29 2, 543, 292, 484, 486, 485, 0, 0,1494 7 49, 0, 292, 0, 292, 488, 292, 558, 556, 557,1495 55 5, 0, 550, 553, 0, 0, 292, 53, 292, 67,1496 48, 29 2, 55, 292, 292, 51, 52, 2, 125, 0,1497 0, 44 6, 0, 445, 726, 119, 292, 18, 0, 30,1498 31, 36, 2, 0, 36, 1 09, 110, 111, 112, 113,1499 11 4, 115, 116, 117, 118, 108, 0, 49, 50,0,1436 103, 494, 750, 451, 493, 0, 449, 450, 0, 565, 1437 580, 583, 586, 592, 595, 598, 358, 0, 2, 738, 1438 0, 293, 741, 2, 61, 293, 3, 425, 0, 433, 1439 294, 293, 306, 332, 286, 347, 354, 3, 3, 407, 1440 411, 421, 426, 472, 293, 427, 705, 706, 293, 428, 1441 430, 293, 2, 582, 594, 728, 2, 2, 248, 2, 1442 458, 0, 456, 455, 454, 140, 2, 2, 250, 2, 1443 2, 249, 2, 280, 2, 281, 0, 279, 0, 0, 1444 0, 0, 0, 0, 0, 0, 0, 566, 605, 0, 1445 453, 2, 560, 569, 659, 562, 563, 532, 293, 2, 1446 599, 608, 601, 602, 0, 275, 293, 293, 338, 294, 1447 0, 294, 0, 293, 733, 737, 735, 533, 293, 544, 1448 254, 262, 308, 0, 2, 534, 293, 498, 335, 336, 1449 282, 350, 357, 0, 293, 0, 748, 398, 0, 475, 1450 499, 251, 252, 519, 293, 435, 0, 293, 236, 0, 1451 2, 238, 0, 294, 0, 256, 2, 257, 277, 0, 1452 0, 2, 293, 544, 293, 485, 487, 486, 0, 0, 1453 750, 0, 293, 0, 293, 489, 293, 559, 557, 558, 1454 556, 0, 551, 554, 0, 0, 293, 53, 293, 67, 1455 48, 293, 55, 293, 293, 51, 52, 2, 126, 0, 1456 0, 447, 0, 446, 727, 120, 293, 18, 0, 30, 1457 31, 36, 2, 0, 36, 110, 111, 112, 113, 114, 1458 115, 116, 117, 118, 119, 109, 108, 0, 49, 50, 1500 1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1501 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,1502 2, 644, 451, 641, 545, 545, 649, 478, 292, 2,1503 583, 584, 0, 595, 596, 0, 2, 738, 741, 119,1504 292, 0, 2, 706, 293, 710, 701, 702, 708, 0,1505 2, 2, 666, 545, 749, 615, 545, 545, 749, 545,1506 629, 545, 545, 680, 433, 663, 545, 545, 671, 678,1507 292, 428, 293, 0, 0, 292, 716, 293, 721, 749,1508 7 13, 292, 718, 749, 292, 292, 292, 0, 119,0,1509 19, 2, 0, 20, 0, 458, 747, 0, 0, 464,1510 239, 0, 292, 0, 0, 0, 543, 567, 571, 573,1511 603, 606, 610, 613, 566, 605, 0, 282, 656, 0,1512 292, 275, 0, 0, 0, 0, 273, 2, 0, 257,1513 534, 292, 0, 0, 292, 2, 362, 382, 371, 0,1514 0, 376, 370, 748, 0, 0, 395, 0, 293, 3,1515 413, 3, 417, 416, 589, 0, 529, 292, 61, 3,1516 292, 432, 293, 3, 426, 427, 2, 0, 0, 0,1517 483, 304, 292, 479, 481, 3, 2, 2, 0, 500,1518 3, 0, 552, 127, 0, 0, 220, 0, 0, 0,1519 0, 37, 0, 0, 119, 292, 21, 0, 22, 0,1520 690, 695, 447, 687, 545, 545, 0, 106, 3, 2,1521 28, 0, 34, 0, 2, 26, 0, 104, 71, 72,1522 7 3, 75, 76, 78, 79, 83, 84, 81, 82, 86,1523 8 7, 89, 91, 93, 95, 97, 0, 0, 750, 292,1524 0, 0, 0, 645, 646, 642, 643, 495, 494, 292,1525 0, 292, 712, 292, 717, 293, 292, 660, 292, 292,1526 703, 659, 2, 292, 0, 0, 0, 0, 0, 0,1527 0, 0, 681, 0, 667, 618, 634, 668, 2, 614,1528 6 21, 430, 616, 617, 431, 2, 628, 637, 630, 631,1529 6 64, 665, 679, 707, 711, 709, 749, 266, 2, 743,1530 2, 421, 715, 720, 422, 0, 400, 3, 3, 3,1531 3, 452, 3, 0, 2, 466, 463, 748, 0, 459,1532 2, 462, 465, 0, 292, 240, 262, 3, 270, 272,1533 0, 452, 2, 569, 570, 2, 608, 609, 0, 657,1534 535, 3, 343, 342, 345, 344, 292, 536, 0, 537,1535 370, 0, 0, 292, 292, 0, 0, 690, 380, 383,1536 38 7, 545, 387, 386, 379, 372, 545, 374, 377, 292,1537 397, 391, 102, 398, 747, 0, 0, 435, 238, 0,1538 0, 3, 2, 666, 428, 0, 525, 0, 749, 487,1539 0, 292, 292, 292, 0, 549, 551, 128, 0, 0,1540 213, 0, 0, 0, 221, 222, 54, 0, 56, 59,1541 60, 0, 2, 126, 0, 0, 0, 691, 692, 688,1542 689, 457, 68, 69, 107, 123, 3, 106, 0, 0,1543 25, 36, 3, 0, 33, 100, 0, 3, 648, 652,1544 65 5, 647, 3, 590, 3, 714, 719, 2, 61, 292,1545 3, 3, 293, 0, 3, 620, 624, 627, 636, 670,1546 67 4, 677, 292, 3, 619, 635, 669, 292, 292, 423,1547 292, 292, 744, 0, 0, 0, 0, 254, 0, 102,1548 0, 3, 3, 0, 460, 0, 456, 0, 0, 243,1549 2 92, 0, 0, 127, 0, 0, 0, 0, 0, 127,1550 0, 0, 106, 106, 19, 2, 0, 0, 3, 129,1551 130, 2, 141, 131, 132, 133, 134, 135, 136, 143,1552 14 5, 0, 0, 0, 283, 292, 292, 545, 0, 538,1553 292, 373, 375, 0, 389, 691, 384, 388, 385, 378,1554 3 82, 365, 396, 0, 577, 2, 662, 661, 0, 667,1555 2, 480, 482, 502, 3, 510, 511, 0, 2, 506,1556 3, 3, 0, 0, 554, 220, 0, 0, 0, 220,1557 0, 0, 119, 694, 698, 700, 693, 747, 106, 0,1558 3, 659, 40, 3, 38, 35, 0, 3, 99, 101,1559 0, 2, 650, 651, 0, 0, 292, 0, 0, 0,1560 3, 636, 0, 2, 622, 623, 2, 638, 2, 672,1561 673, 0, 0, 61, 0, 3, 3, 3, 3, 408,1562 40 7, 411, 2, 2, 746, 745, 120, 0, 0, 0,1563 0, 3, 461, 3, 0, 241, 144, 3, 293, 292,1564 0, 0, 0, 0, 2, 0, 189, 0, 187, 0,1565 0, 0, 0, 0, 0, 0, 545, 119, 0, 149,1566 1 46, 292, 0, 0, 265, 277, 3, 3, 544, 611,1567 366, 381, 394, 292, 264, 292, 0, 513, 490, 292,1568 0, 0, 489, 504, 0, 0, 0, 214, 0, 223,1569 57, 2, 696, 697, 0, 124, 121, 0, 0, 0,1570 0, 0, 24, 0, 653, 292, 578, 263, 722, 723,1571 724, 0, 675, 292, 292, 292, 3, 3, 0, 683,1572 0, 0, 0, 0, 292, 292, 3, 542, 120, 468,1573 0, 0, 244, 293, 0, 0, 0, 0, 292, 190,1574 1 88, 185, 0, 191, 0, 0, 0, 0, 195, 198,1575 19 6, 192, 0, 193, 127, 36, 142, 140, 242, 0,1576 0, 415, 419, 418, 0, 507, 2, 508, 2, 509,1577 5 03, 292, 226, 0, 224, 0, 226, 292, 32, 122,1578 2, 43, 2, 41, 39, 29, 27, 3, 725, 3,1579 3, 3, 0, 0, 682, 684, 625, 639, 267, 2,1580 405, 3, 404, 0, 470, 467, 127, 0, 0, 127,1581 3, 0, 127, 186, 0, 2, 2, 207, 197, 0,1582 0, 0, 138, 0, 572, 612, 2, 0, 0, 2,1583 227, 0, 0, 215, 0, 3, 0, 0, 0, 0,1584 0, 0, 685, 686, 292, 0, 469, 150, 0, 0,1585 2, 163, 127, 152, 0, 180, 0, 127, 0, 2,1586 154, 0, 2, 0, 2, 2, 2, 194, 33, 292,1587 512, 514, 505, 0, 0, 0, 0, 0, 3, 3,1588 654, 626, 640, 676, 409, 127, 156, 159, 0, 158,1589 1 62, 3, 165, 164, 0, 127, 182, 127, 3, 0,1590 292, 0, 292, 0, 2, 0, 2, 137, 2, 228,1591 229, 0, 225, 216, 699, 0, 0, 151, 0, 0,1592 161, 231, 166, 2, 233, 181, 0, 184, 170, 199,1593 3, 208, 212, 201, 3, 0, 292, 0, 292, 0,1594 0, 0, 44, 42, 157, 160, 127, 0, 167, 292,1595 127, 127, 0, 171, 0, 0, 690, 209, 210, 211,1596 0, 200, 3, 202, 3, 292, 217, 230, 147, 168,1597 1 53, 127, 234, 183, 178, 176, 172, 155, 127, 0,1598 691, 0, 0, 0, 0, 148, 169, 179, 173, 177,1599 17 6, 174, 3, 3, 0, 0, 491, 175, 203, 205,1600 3, 3, 204, 2061460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1461 105, 2, 645, 452, 642, 546, 546, 650, 479, 293, 1462 2, 584, 585, 0, 596, 597, 0, 2, 739, 742, 1463 120, 293, 0, 2, 707, 294, 711, 702, 703, 709, 1464 0, 2, 2, 667, 546, 750, 616, 546, 546, 750, 1465 546, 630, 546, 546, 681, 434, 664, 546, 546, 672, 1466 679, 293, 429, 294, 0, 0, 293, 717, 294, 722, 1467 750, 714, 293, 719, 750, 293, 293, 293, 0, 120, 1468 0, 19, 2, 0, 20, 0, 459, 748, 0, 0, 1469 465, 240, 0, 293, 0, 0, 0, 544, 568, 572, 1470 574, 604, 607, 611, 614, 567, 606, 0, 283, 657, 1471 0, 293, 276, 0, 0, 0, 0, 274, 2, 0, 1472 258, 535, 293, 0, 0, 293, 2, 363, 383, 372, 1473 0, 0, 377, 371, 749, 0, 0, 396, 0, 294, 1474 3, 414, 3, 418, 417, 590, 0, 530, 293, 61, 1475 3, 293, 433, 294, 3, 427, 428, 2, 0, 0, 1476 0, 484, 305, 293, 480, 482, 3, 2, 2, 0, 1477 501, 3, 0, 553, 128, 0, 0, 221, 0, 0, 1478 0, 0, 37, 0, 0, 120, 293, 21, 0, 22, 1479 0, 691, 696, 448, 688, 546, 546, 0, 106, 3, 1480 2, 28, 0, 34, 0, 2, 26, 0, 104, 71, 1481 72, 73, 75, 76, 78, 79, 83, 84, 81, 82, 1482 86, 87, 89, 91, 93, 95, 97, 0, 0, 751, 1483 293, 0, 0, 0, 646, 647, 643, 644, 496, 495, 1484 293, 0, 293, 713, 293, 718, 294, 293, 661, 293, 1485 293, 704, 660, 2, 293, 0, 0, 0, 0, 0, 1486 0, 0, 0, 682, 0, 668, 619, 635, 669, 2, 1487 615, 622, 431, 617, 618, 432, 2, 629, 638, 631, 1488 632, 665, 666, 680, 708, 712, 710, 750, 267, 2, 1489 744, 2, 422, 716, 721, 423, 0, 401, 3, 3, 1490 3, 3, 453, 3, 0, 2, 467, 464, 749, 0, 1491 460, 2, 463, 466, 0, 293, 241, 263, 3, 271, 1492 273, 0, 453, 2, 570, 571, 2, 609, 610, 0, 1493 658, 536, 3, 344, 343, 346, 345, 293, 537, 0, 1494 538, 371, 0, 0, 293, 293, 0, 0, 691, 381, 1495 384, 388, 546, 388, 387, 380, 373, 546, 375, 378, 1496 293, 398, 392, 102, 399, 748, 0, 0, 436, 239, 1497 0, 0, 3, 2, 667, 429, 0, 526, 0, 750, 1498 488, 0, 293, 293, 293, 0, 550, 552, 129, 0, 1499 0, 214, 0, 0, 0, 222, 223, 54, 0, 56, 1500 59, 60, 0, 2, 127, 0, 0, 0, 692, 693, 1501 689, 690, 458, 68, 69, 107, 124, 3, 106, 0, 1502 0, 25, 36, 3, 0, 33, 100, 0, 3, 649, 1503 653, 656, 648, 3, 591, 3, 715, 720, 2, 61, 1504 293, 3, 3, 294, 0, 3, 621, 625, 628, 637, 1505 671, 675, 678, 293, 3, 620, 636, 670, 293, 293, 1506 424, 293, 293, 745, 0, 0, 0, 0, 255, 0, 1507 102, 0, 3, 3, 0, 461, 0, 457, 0, 0, 1508 244, 293, 0, 0, 128, 0, 0, 0, 0, 0, 1509 128, 0, 0, 106, 106, 19, 2, 0, 0, 3, 1510 130, 131, 2, 142, 132, 133, 134, 135, 136, 137, 1511 144, 146, 0, 0, 0, 284, 293, 293, 546, 0, 1512 539, 293, 374, 376, 0, 390, 692, 385, 389, 386, 1513 379, 383, 366, 397, 0, 578, 2, 663, 662, 0, 1514 668, 2, 481, 483, 503, 3, 511, 512, 0, 2, 1515 507, 3, 3, 0, 0, 555, 221, 0, 0, 0, 1516 221, 0, 0, 120, 695, 699, 701, 694, 748, 106, 1517 0, 3, 660, 40, 3, 38, 35, 0, 3, 99, 1518 101, 0, 2, 651, 652, 0, 0, 293, 0, 0, 1519 0, 3, 637, 0, 2, 623, 624, 2, 639, 2, 1520 673, 674, 0, 0, 61, 0, 3, 3, 3, 3, 1521 409, 408, 412, 2, 2, 747, 746, 121, 0, 0, 1522 0, 0, 3, 462, 3, 0, 242, 145, 3, 294, 1523 293, 0, 0, 0, 0, 2, 0, 190, 0, 188, 1524 0, 0, 0, 0, 0, 0, 0, 546, 120, 0, 1525 150, 147, 293, 0, 0, 266, 278, 3, 3, 545, 1526 612, 367, 382, 395, 293, 265, 293, 0, 514, 491, 1527 293, 0, 0, 490, 505, 0, 0, 0, 215, 0, 1528 224, 57, 2, 697, 698, 0, 125, 122, 0, 0, 1529 0, 0, 0, 24, 0, 654, 293, 579, 264, 723, 1530 724, 725, 0, 676, 293, 293, 293, 3, 3, 0, 1531 684, 0, 0, 0, 0, 293, 293, 3, 543, 121, 1532 469, 0, 0, 245, 294, 0, 0, 0, 0, 293, 1533 191, 189, 186, 0, 192, 0, 0, 0, 0, 196, 1534 199, 197, 193, 0, 194, 128, 36, 143, 141, 243, 1535 0, 0, 416, 420, 419, 0, 508, 2, 509, 2, 1536 510, 504, 293, 227, 0, 225, 0, 227, 293, 32, 1537 123, 2, 43, 2, 41, 39, 29, 27, 3, 726, 1538 3, 3, 3, 0, 0, 683, 685, 626, 640, 268, 1539 2, 406, 3, 405, 0, 471, 468, 128, 0, 0, 1540 128, 3, 0, 128, 187, 0, 2, 2, 208, 198, 1541 0, 0, 0, 139, 0, 573, 613, 2, 0, 0, 1542 2, 228, 0, 0, 216, 0, 3, 0, 0, 0, 1543 0, 0, 0, 686, 687, 293, 0, 470, 151, 0, 1544 0, 2, 164, 128, 153, 0, 181, 0, 128, 0, 1545 2, 155, 0, 2, 0, 2, 2, 2, 195, 33, 1546 293, 513, 515, 506, 0, 0, 0, 0, 0, 3, 1547 3, 655, 627, 641, 677, 410, 128, 157, 160, 0, 1548 159, 163, 3, 166, 165, 0, 128, 183, 128, 3, 1549 0, 293, 0, 293, 0, 2, 0, 2, 138, 2, 1550 229, 230, 0, 226, 217, 700, 0, 0, 152, 0, 1551 0, 162, 232, 167, 2, 234, 182, 0, 185, 171, 1552 200, 3, 209, 213, 202, 3, 0, 293, 0, 293, 1553 0, 0, 0, 44, 42, 158, 161, 128, 0, 168, 1554 293, 128, 128, 0, 172, 0, 0, 691, 210, 211, 1555 212, 0, 201, 3, 203, 3, 293, 218, 231, 148, 1556 169, 154, 128, 235, 184, 179, 177, 173, 156, 128, 1557 0, 692, 0, 0, 0, 0, 149, 170, 180, 174, 1558 178, 177, 175, 3, 3, 0, 0, 492, 176, 204, 1559 206, 3, 3, 205, 207 1601 1560 }; 1602 1561 … … 1604 1563 static const yytype_int16 yydefgoto[] = 1605 1564 { 1606 -1, 81 3, 468, 300, 47, 133, 134, 301, 302, 303,1607 304, 305, 76 1, 762, 1133, 1134, 306, 381, 308, 309,1565 -1, 814, 468, 300, 47, 133, 134, 301, 302, 303, 1566 304, 305, 762, 763, 1134, 1135, 306, 381, 308, 309, 1608 1567 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 1609 320, 103 0, 518, 975, 546, 322, 976, 947, 1057, 1518,1610 10 59, 1060, 1061, 1062, 1519, 1063, 1064, 1437, 1438, 1401,1611 140 2, 1403, 1497, 1498, 1502, 1503, 1538, 1539, 1065, 1361,1612 106 6, 1067, 1298, 1299, 1300, 1480, 1068, 145, 953, 954,1613 95 5, 1381, 1461, 1472, 1473, 469, 470, 874, 875, 1038,1568 320, 1031, 518, 976, 547, 322, 977, 948, 1058, 1519, 1569 1060, 1061, 1062, 1063, 1520, 1064, 1065, 1438, 1439, 1402, 1570 1403, 1404, 1498, 1499, 1503, 1504, 1539, 1540, 1066, 1362, 1571 1067, 1068, 1299, 1300, 1301, 1481, 1069, 145, 954, 955, 1572 956, 1382, 1462, 1473, 1474, 469, 470, 875, 876, 1039, 1614 1573 51, 52, 53, 54, 55, 347, 158, 58, 59, 60, 1615 1574 61, 62, 349, 64, 65, 264, 67, 68, 274, 351, 1616 1575 352, 71, 72, 73, 118, 75, 204, 354, 119, 78, 1617 120, 80, 81, 455, 82, 454, 68 8, 689, 690, 908,1618 108 6, 909, 83, 84, 458, 456, 696, 855, 856, 857,1619 85 8, 699, 700, 701, 359, 360, 361, 362, 466, 340,1620 135, 136, 522, 324, 170, 64 5, 646, 647, 648, 649,1621 85, 121, 87, 489, 490, 9 39, 491, 277, 495, 325,1622 88, 137, 138, 89, 132 1, 1108, 1109, 1110, 1111, 90,1623 91, 71 7, 92, 273, 93, 94, 187, 1032, 679, 412,1576 120, 80, 81, 455, 82, 454, 689, 690, 691, 909, 1577 1087, 910, 83, 84, 458, 456, 697, 856, 857, 858, 1578 859, 700, 701, 702, 359, 360, 361, 362, 466, 340, 1579 135, 136, 522, 324, 170, 646, 647, 648, 649, 650, 1580 85, 121, 87, 489, 490, 940, 491, 277, 495, 325, 1581 88, 137, 138, 89, 1322, 1109, 1110, 1111, 1112, 90, 1582 91, 718, 92, 273, 93, 94, 187, 1033, 680, 412, 1624 1583 125, 95, 501, 502, 503, 188, 268, 190, 191, 192, 1625 1584 269, 98, 99, 100, 101, 102, 103, 104, 195, 196, 1626 197, 198, 199, 82 5, 605, 606, 607, 608, 200, 610,1627 61 1, 612, 572, 573, 574, 575, 751, 105, 614, 615,1628 61 6, 617, 618, 619, 968, 753, 754, 755, 595, 365,1629 366, 367, 368, 326, 164, 107, 108, 109, 370, 69 4,1630 5 691585 197, 198, 199, 826, 606, 607, 608, 609, 200, 611, 1586 612, 613, 573, 574, 575, 576, 752, 105, 615, 616, 1587 617, 618, 619, 620, 969, 754, 755, 756, 596, 365, 1588 366, 367, 368, 326, 164, 107, 108, 109, 370, 695, 1589 570 1631 1590 }; 1632 1591 1633 1592 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1634 1593 STATE-NUM. */ 1635 #define YYPACT_NINF -1 2821594 #define YYPACT_NINF -1323 1636 1595 static const yytype_int16 yypact[] = 1637 1596 { 1638 7 429, 6461, -1282, 36, -1282, -1282, -1282, -1282, -1282, -1282,1639 -1 282, 83, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,1640 -1 282, -1282, -1282, -1282, -1282, -1282, 131, 131, 131, 1844,1641 994, 124, 7661, 230, -1282, -1282, -1282, -1282, -1282, 175,1642 -1 282, -1282, -1282, 965, 193, -1282, -1282, -1282, -1282, 5932,1643 -1 282, -1282, -1282, -1282, 122, 216, -1282, 1880, -1282, -1282,1644 -1 282, -1282, 251, 1298, 387, 61, 7777, -1282, -1282, 9536,1645 1 247, -1282, -1282, 557, 425, 3682, 886, 409, 557, 1203,1646 -1 282, -1282, 744, 941, -1282, 557, 1708, -1282, 342, -1282,1647 478, 483, -1282, -1282, -1282, -1282, 384, 216, 131, -1282,1648 131, -1282, -1282, -1282, -1282, 2963, 1880, -1282, -1282, 1880,1649 -1 282, 381, -1282, 8264, -1282, -1282, 1830, 9075, -1282, 713,1650 713, 713, -1282, -1282, -1282, 131, -1282, -1282, -1282, 410,1651 433, 443, -1282, -1282, -1282, 470, -1282, -1282, -1282, -1282,1652 -1 282, 487, 492, -1282, -1282, 90, 9044, 2201, 567, 421,1653 477, 513, 520, 554, 575, 5546, 6949, 504, 495, -1282,1654 9574, -1282, -1282, -1282, -1282, 558, -1282, 116, 4885, 4885,1655 -1 282, 577, 253, -1282, -1282, -1282, -1282, 613, 284, 302,1656 335, 131, 616, -1282, -1282, 1298, 2031, 692, -1282, 65,1657 -1 282, 131, 131, 216, -1282, -1282, 103, -1282, 131, 131,1658 -1 282, 3459, 673, 678, 713, 6742, -1282, -1282, 702, 5932,1659 -1 282, -1282, 557, -1282, -1282, -1282, 216, -1282, 1880, 122,1660 -1 282, 8115, -1282, 713, 713, 713, 216, -1282, 1844, -1282,1661 4853, -1282, -1282, 627, 713, -1282, 713, -1282, 175, 9044,1662 -1 282, 738, -1282, 994, 742, 713, -1282, 1844, 706, 717,1663 -1 282, 7661, 598, -1282, -1282, -1282, 9503, -1282, -1282, 5769,1664 -1 282, 692, 43, 10287, 9075, 1830, 3459, -1282, 197, -1282,1665 -1 282, 8264, 1880, 745, 7808, -1282, -1282, 441, -1282, 10539,1666 754, 784, 3526, 766, 3896, 4720, -1282, 770, -1282, -1282,1667 -1 282, -1282, 10420, 10420, 8818, 772, -1282, -1282, -1282, -1282,1668 -1 282, -1282, -1282, 805, -1282, 1317, 2104, 9157, 3896, -1282,1669 619, 651, 733, 206, 860, 791, 775, 785, 823, -65,1670 -1 282, -1282, 794, 596, -1282, 337, -1282, -1282, 2201, -1282,1671 -1 282, 290, 810, -1282, 298, 810, 819, 175, -1282, -1282,1672 836, 2963, -1282, 844, 858, 9270, -1282, -1282, 1515, 1616,1673 8 533, 6742, 557, -1282, 557, 713, 713, -1282, -1282, -1282,1674 -1 282, -1282, -1282, 713, 2963, 1880, -1282, -1282, 9188, 1765,1675 -1 282, 4463, -1282, -1282, -1282, -1282, -1282, -1282, -1282, 869,1676 6164, 3896, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,1677 -1 282, -1282, -1282, -1282, -1282, -1282, 1830, -1282, 592, 881,1678 887, 907, 977, 913, 918, 926, 2031, -1282, -1282, 917,1679 122, 952, -1282, -1282, 968, -1282, -1282, -1282, 9503, -1282,1680 -1 282, -1282, -1282, -1282, 3459, -1282, 9044, 9044, -1282, 713,1681 18 30, 6861, 1880, 8606, -1282, -1282, -1282, -1282, 9503, 43,1682 -1 282, -1282, 557, 216, -1282, -1282, 9503, -1282, 5584, -1282,1683 -1 282, 713, 713, 429, 4617, 967, 975, 972, 982, 713,1684 -1 282, -1282, -1282, -1282, 9803, -1282, 430, 6623, -1282, 216,1685 991, -1282, 1830, 10621, 10344, -1282, -1282, -1282, -1282, 984,1686 3459, -1282, 8679, 692, 7545, -1282, -1282, -1282, 1025, 534,1687 794, 994, 7808, 1044, 8264, -1282, 7808, -1282, -1282, -1282,1688 -1 282, 539, -1282, 997, 784, 70, 8818, -1282, 9301, -1282,1689 -1 282, 8818, -1282, 8931, 8818, -1282, -1282, 999, -1282, 564,1690 10 00, 689, 1003, -1282, -1282, 9650, 6592, -1282, 291, -1282,1691 -1 282, 10287, -1282, 331, 10287, -1282, -1282, -1282, -1282, -1282,1692 -1 282, -1282, -1282, -1282, -1282, -1282, 10287, -1282, -1282, 3896,1693 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896, 3896,1694 3896, 3896, 3896, 3896, 3896, 3896, 3896, 5176, 10287, -1282,1695 596, 1665, -1282, -1282, 131, 131, -1282, -1282, 9044, -1282,1696 -1 282, 968, 598, -1282, 968, 10363, -1282, -1282, -1282, 5001,1697 6592, 1005, 1011, -1282, 9075, -1282, -1282, 558, -1282, 1017,1698 501, 1020, 3131, 211, 794, -1282, 131, 131, 794, 231,1699 -1282, 131, 131, 968, -1282, -1282, 131, 131, -1282, 810,1700 9421, 1880, 10766, 79, 605, 9421, -1282, 5769, -1282, 794,1701 -1282, 2963, -1282, 183, 8230, 8230, 8230, 1880, -1282, 10173,1702 1006, 869, 840, 1015, 1018, -1282, 1008, 4885, 242, -1282,1703 1104, 1880, 8230, 598, 1830, 598, 692, 448, 810, -1282,1704 -1 282, 771, 810, -1282, -1282, -1282, 784, -1282, 810, 216,1705 9803, -1282, 637, 1041, 647, 1049, -1282, 1023, 216, -1282,1706 -1 282, 9503, 216, 1046, 9301, 1053, -1282, 759, -1282, 357,1707 422, 994, -1282, 994, 1051, 3896, -1282, 994, 10766, -1282,1708 -1 282, 1057, -1282, -1282, -1282, 598, -1282, 10694, 858, -1282,1709 8230, 851, 8533, -1282, -1282, 558, 1055, 1056, 1025, 2498,1710 -1282, -1282, 7808, -1282, -1282, 1062, -1282, -1282, 1070, -1282,1711 1062, 1072, 10539, 10287, 1060, 1061, 100, 1073, 1071, 1088,1712 1 090, -1282, 1094, 1095, 9688, 6711, -1282, 10287, -1282, 689,1713 1753, -1282, -1282, -1282, 131, 131, 10230, 10287, 1080, -1282,1714 -1 282, 650, -1282, 10287, -1282, -1282, 885, -1282, -1282, -1282,1715 -1 282, 619, 619, 651, 651, 733, 733, 733, 733, 206,1716 206, 860, 791, 775, 785, 823, 3896, 14, -1282, 9803,1717 1099, 1100, 1102, 1665, -1282, -1282, -1282, -1282, -1282, 9803,1718 657, 8230, -1282, 2963, -1282, 7068, 9383, -1282, 4463, 6949,1719 -1282, -1282, 501, 9803, 1030, 1108, 1109, 1110, 1111, 1112,1720 11 14, 1117, -1282, 3725, 3131, -1282, -1282, -1282, -1282, -1282,1721 -1 282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,1722 -1 282, -1282, 968, -1282, -1282, -1282, 794, -1282, -1282, -1282,1723 -1 282, -1282, -1282, -1282, -1282, 1118, -1282, 1120, 1122, -1282,1724 -1 282, 122, 1080, 10173, -1282, -1282, -1282, 6164, 1123, -1282,1725 -1 282, -1282, -1282, 994, 6295, 1204, -1282, -1282, -1282, -1282,1726 1116, 122, -1282, -1282, 968, -1282, -1282, 968, 125, 968,1727 -1282, -1282, -1282, -1282, -1282, -1282, 9612, -1282, 216, -1282,1728 -1 282, 460, 467, 9188, 7187, 1951, 3896, 3145, -1282, -1282,1729 1105, 87, 1105, -1282, 994, -1282, 131, -1282, -1282, 8451,1730 972, -1282, -1282, -1282, 975, 1133, 1129, -1282, -1282, 1137,1731 11 46, -1282, 851, 1870, -1282, 683, -1282, 2498, 794, -1282,1732 1149, 7808, 9721, 9044, 1151, -1282, -1282, 1150, 1152, 1138,1733 -1282, 3896, 1158, 250, 1153, -1282, 1157, 598, 1157, -1282,1734 -1 282, 1157, 1160, -1282, 1166, 1169, 1172, 1753, -1282, -1282,1735 -1 282, 6164, -1282, -1282, -1282, -1282, 1168, 10287, 1175, 598,1736 -1282, 10287, -1282, 598, -1282, -1282, 10287, -1282, 809, 810,1737 -1282, -1282, -1282, -1282, -1282, -1282, -1282, 869, 858, 9270,1738 -1282, -1282, 7306, 1180, -1282, 829, 810, -1282, 854, 868,1739 8 10, -1282, 713, 4154, -1282, -1282, -1282, 9803, 9803, -1282,1740 8606, 8606, -1282, 1176, 1181, 1183, 1189, -1282, 1179, 724,1741 -22, 1080, -1282, 598, -1282, 4885, -1282, 10287, 475, -1282,1742 6430, 1191, 1192, 10116, 1193, 1195, 21, 55, 195, 10287,1743 1196, 216, 10287, 10287, 1182, 1205, 579, 1209, -1282, -1282,1744 -1 282, 1200, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,1745 -1 282, 994, 1213, 10287, -1282, 9803, 9803, 131, 1214, -1282,1746 8962, -1282, -1282, 893, -1282, 3145, -1282, -1282, -1282, -1282,1747 759, -1282, -1282, 1218, -1282, -1282, -1282, -1282, 1227, 1870,1748 -1282, -1282, 1215, -1282, 1062, -1282, -1282, 1830, 1231, -1282,1749 -1 282, -1282, 669, 1234, -1282, 100, 1237, 3896, 1220, 100,1750 100, 1248, 9650, 876, 810, -1282, -1282, 1008, 10287, 1251,1751 1 168, 563, 204, 1250, -1282, -1282, 1255, 1250, -1282, -1282,1752 1258, -1282, -1282, 968, 1259, 1261, 6830, 1263, 1265, 1267,1753 -1282, -1282, 1273, -1282, -1282, 968, -1282, -1282, -1282, -1282,1754 968, 10287, 10287, 858, 1275, -1282, -1282, -1282, -1282, -1282,1755 -1 282, -1282, -1282, -1282, -1282, -1282, -1282, 3896, 3896, 1278,1756 1 279, 1250, -1282, -1282, 994, -1282, -1282, -1282, 8042, 9721,1757 10287, 10287, 1345, 10287, -1282, 1266, -1282, 1268, -1282, 1276,1758 10287, 1282, 10287, 1096, 1293, 49, 131, 5155, 1347, -1282,1759 -1 282, 6295, 1280, 482, -1282, -1282, -1282, -1282, -1282, -1282,1760 -1 282, -1282, -1282, 9936, -1282, 8679, 1287, -1282, -1282, 9721,1761 490, 497, -1282, 1290, 1281, 784, 1319, -1282, 334, -1282,1762 -1 282, -1282, -1282, 968, 1323, -1282, -1282, 1327, 444, 549,1763 5 98, 1332, -1282, 1333, -1282, 9803, -1282, -1282, -1282, -1282,1764 -1 282, 1334, -1282, 9803, 9803, 9803, -1282, -1282, 1335, -1282,1765 1337, 1341, 1343, 735, 8303, 8418, -1282, -1282, 248, -1282,1766 1351, 1356, -1282, 8752, 676, 686, 1350, 707, 6096, -1282,1767 -1 282, -1282, 537, -1282, 716, 1365, 1367, 216, 1419, 951,1768 -1282, -1282, 10287, -1282, 10116, 10287, -1282, -1282, -1282, 1370,1769 137 2, -1282, -1282, -1282, 1369, -1282, -1282, -1282, -1282, -1282,1770 -1 282, 9721, 784, 1375, -1282, 1353, 784, 9803, -1282, -1282,1771 -1 282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,1772 -1 282, -1282, 1378, 1379, -1282, -1282, -1282, -1282, -1282, -1282,1773 -1 282, 1377, -1282, 1382, -1282, -1282, 10116, 104, 10287, 10116,1774 -1282, 1387, 10287, -1282, 243, 1402, 1405, -1282, -1282, 1393,1775 139 4, 1388, -1282, 916, -1282, -1282, -1282, 1880, 1830, 1389,1776 -1282, 246, 3896, -1282, 729, -1282, 598, 598, 1399, 1400,1777 140 4, 1409, -1282, -1282, 8606, 1407, -1282, 1479, 3896, 1395,1778 -1282, -1282, 10028, -1282, 757, -1282, 1401, 10116, 1403, -1282,1779 -1 282, 1416, -1282, 1417, -1282, 1436, 1440, -1282, 1408, 9721,1780 -1282, -1282, -1282, 784, 598, 1429, 1411, 1431, 1250, 1250,1781 -1282, -1282, -1282, -1282, -1282, 10116, 10, -1282, 370, -1282,1782 -1 282, 7893, -1282, -1282, 1412, 10287, -1282, 10287, 7893, 216,1783 9301, 216, 9301, 1437, -1282, 1438, -1282, -1282, 1434, -1282,1784 -1 282, 790, -1282, -1282, -1282, 1441, 1442, -1282, 3896, 3896,1785 -1282, -1282, 998, 93, -1282, -1282, 1424, -1282, 998, -1282,1786 -1 282, 2145, 598, -1282, -1282, 216, 9301, 216, 9301, 1446,1787 14 25, 598, -1282, -1282, -1282, -1282, 10028, 1443, 998, 7969,1788 10287, 9940, 1455, 998, 1463, 2145, 3286, -1282, -1282, -1282,1789 1465, -1282, -1282, -1282, -1282, 9044, -1282, -1282, -1282, 9807,1790 -1282, 10028, -1282, -1282, 1453, 5404, -1282, -1282, 9940, 216,1791 3286, 216, 1476, 1478, 831, -1282, 9807, -1282, -1282, -1282,1792 5404, -1282, -1282, -1282, 216, 216, -1282, -1282, -1282, -1282,1793 -1 282, -1282, -1282, -12821597 7329, 8828, -1323, 37, -1323, -1323, -1323, -1323, -1323, -1323, 1598 -1323, 109, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1599 -1323, -1323, -1323, -1323, -1323, -1323, 85, 85, 85, 873, 1600 733, 178, 7561, 370, -1323, -1323, -1323, -1323, -1323, 191, 1601 -1323, -1323, -1323, 614, 225, -1323, -1323, -1323, -1323, 4615, 1602 -1323, -1323, -1323, -1323, 229, 285, -1323, 934, -1323, -1323, 1603 -1323, -1323, 435, 1196, 579, 110, 7677, -1323, -1323, 4858, 1604 1038, -1323, -1323, 580, 596, 6761, 1021, 875, 580, 1103, 1605 -1323, -1323, 1317, 308, -1323, 580, 1224, -1323, 495, -1323, 1606 616, 623, -1323, -1323, -1323, -1323, 547, 285, 85, -1323, 1607 85, -1323, -1323, -1323, -1323, 9174, 934, -1323, -1323, 934, 1608 -1323, 551, -1323, 9403, -1323, -1323, 1899, 9436, -1323, 844, 1609 844, 844, -1323, -1323, -1323, 85, -1323, -1323, -1323, 584, 1610 608, 632, -1323, -1323, -1323, 646, -1323, -1323, -1323, -1323, 1611 -1323, 664, 687, -1323, -1323, -28, 8797, 2908, 117, 701, 1612 717, 726, 771, 786, 799, 8715, 6849, 731, 757, -1323, 1613 5600, -1323, -1323, -1323, -1323, 804, -1323, 223, 5225, 5225, 1614 -1323, 802, 365, -1323, -1323, -1323, -1323, 816, 443, 480, 1615 534, 85, 827, -1323, -1323, 1196, 4341, 868, -1323, 50, 1616 -1323, 85, 85, 285, -1323, -1323, 61, -1323, 85, 85, 1617 -1323, 4647, 857, 864, 844, 6523, -1323, -1323, 869, 4615, 1618 -1323, -1323, 580, -1323, -1323, -1323, 285, -1323, 934, 229, 1619 -1323, 7868, -1323, 844, 844, 844, 285, -1323, 873, -1323, 1620 5676, -1323, -1323, 852, 844, -1323, 844, -1323, 191, 8797, 1621 -1323, 884, -1323, 733, 890, 844, -1323, 873, 888, 892, 1622 -1323, 7561, 631, -1323, -1323, -1323, 9256, -1323, -1323, 9621, 1623 -1323, 868, 151, 10214, 9436, 1899, 4647, -1323, 88, -1323, 1624 -1323, 9403, 934, 891, 7708, -1323, -1323, 347, -1323, 10561, 1625 922, 956, 10347, 945, 10366, 10423, -1323, 954, -1323, -1323, 1626 -1323, -1323, 10442, 10442, 8571, 952, -1323, -1323, -1323, -1323, 1627 -1323, -1323, -1323, 988, -1323, 966, 1946, 8910, 10366, -1323, 1628 756, 338, 485, 411, 635, 955, 947, 957, 984, 237, 1629 -1323, -1323, 962, 647, -1323, 302, -1323, -1323, 2908, -1323, 1630 -1323, 235, 985, -1323, 312, 985, 989, 191, -1323, -1323, 1631 990, 9174, -1323, 999, 1006, 9023, -1323, -1323, 1335, 2030, 1632 8286, 6523, 580, -1323, 580, 844, 844, -1323, -1323, -1323, 1633 -1323, -1323, -1323, 844, 9174, 934, -1323, -1323, 9474, 1575, 1634 -1323, 8017, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1635 5958, 10366, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1636 -1323, -1323, -1323, -1323, -1323, -1323, 1899, -1323, 973, 991, 1637 992, 1012, 978, 1017, 1018, 1020, 4341, -1323, -1323, 1029, 1638 229, 1031, -1323, -1323, 1033, -1323, -1323, -1323, 9256, -1323, 1639 -1323, -1323, -1323, -1323, 4647, -1323, 8797, 8797, -1323, 844, 1640 1899, 6642, 934, 8359, -1323, -1323, -1323, -1323, 9256, 151, 1641 -1323, -1323, 580, 285, -1323, -1323, 9256, -1323, 5770, -1323, 1642 -1323, 844, 844, 337, 8204, 1032, 1036, 1023, 1042, 844, 1643 -1323, -1323, -1323, -1323, 9660, -1323, 367, 6404, -1323, 285, 1644 1044, -1323, 1899, 10643, 10271, -1323, -1323, -1323, -1323, 1015, 1645 4647, -1323, 8432, 868, 7445, -1323, -1323, -1323, 843, 436, 1646 962, 733, 7708, 1341, 9403, -1323, 7708, -1323, -1323, -1323, 1647 -1323, 508, -1323, 1051, 956, 248, 8571, -1323, 9512, -1323, 1648 -1323, 8571, -1323, 8684, 8571, -1323, -1323, 1049, -1323, 606, 1649 1057, 682, 1059, -1323, -1323, 3527, 6492, -1323, 362, -1323, 1650 -1323, 10214, -1323, 368, 10214, -1323, -1323, -1323, -1323, -1323, 1651 -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10214, -1323, -1323, 1652 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 1653 10366, 10366, 10366, 10366, 10366, 10366, 10366, 10366, 3593, 10214, 1654 -1323, 647, 1677, -1323, -1323, 85, 85, -1323, -1323, 8797, 1655 -1323, -1323, 1033, 631, -1323, 1033, 10290, -1323, -1323, -1323, 1656 5046, 6492, 1060, 1063, -1323, 9436, -1323, -1323, 804, -1323, 1657 1067, 750, 1068, 2627, 125, 962, -1323, 85, 85, 962, 1658 132, -1323, 85, 85, 1033, -1323, -1323, 85, 85, -1323, 1659 985, 9545, 934, 10788, 532, 656, 9545, -1323, 9621, -1323, 1660 962, -1323, 9174, -1323, 238, 7983, 7983, 7983, 934, -1323, 1661 5791, 1047, 1008, 493, 1058, 1061, -1323, 1076, 5225, 528, 1662 -1323, 1165, 934, 7983, 631, 1899, 631, 868, 430, 985, 1663 -1323, -1323, 536, 985, -1323, -1323, -1323, 956, -1323, 985, 1664 285, 9660, -1323, 619, 1086, 633, 1088, -1323, 1087, 285, 1665 -1323, -1323, 9256, 285, 1089, 9512, 1092, -1323, 1065, -1323, 1666 538, 552, 733, -1323, 733, 1085, 10366, -1323, 733, 10788, 1667 -1323, -1323, 1096, -1323, -1323, -1323, 631, -1323, 10716, 1006, 1668 -1323, 7983, 703, 8286, -1323, -1323, 804, 1095, 1098, 843, 1669 5016, -1323, -1323, 7708, -1323, -1323, 1091, -1323, -1323, 1102, 1670 -1323, 1091, 1104, 10561, 10214, 1090, 1093, 94, 1109, 1107, 1671 1111, 1114, -1323, 1118, 1129, 9365, 6611, -1323, 10214, -1323, 1672 682, 1717, -1323, -1323, -1323, 85, 85, 10157, 10214, 1125, 1673 -1323, -1323, 653, -1323, 10214, -1323, -1323, 736, -1323, -1323, 1674 -1323, -1323, 756, 756, 338, 338, 485, 485, 485, 485, 1675 411, 411, 635, 955, 947, 957, 984, 10366, 260, -1323, 1676 9660, 1132, 1136, 1137, 1677, -1323, -1323, -1323, -1323, -1323, 1677 9660, 708, 7983, -1323, 9174, -1323, 6968, 9136, -1323, 8017, 1678 6849, -1323, -1323, 750, 9660, 1022, 1140, 1141, 1142, 1143, 1679 1146, 1149, 1154, -1323, 3715, 2627, -1323, -1323, -1323, -1323, 1680 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1681 -1323, -1323, -1323, 1033, -1323, -1323, -1323, 962, -1323, -1323, 1682 -1323, -1323, -1323, -1323, -1323, -1323, 1155, -1323, 1157, 1159, 1683 -1323, -1323, 229, 1125, 5791, -1323, -1323, -1323, 5958, 1158, 1684 -1323, -1323, -1323, -1323, 733, 6174, 1248, -1323, -1323, -1323, 1685 -1323, 1151, 229, -1323, -1323, 1033, -1323, -1323, 1033, 84, 1686 1033, -1323, -1323, -1323, -1323, -1323, -1323, 9327, -1323, 285, 1687 -1323, -1323, 559, 562, 9474, 7087, 2137, 10366, 3114, -1323, 1688 -1323, 1156, 51, 1156, -1323, 733, -1323, 85, -1323, -1323, 1689 8941, 1023, -1323, -1323, -1323, 1036, 1175, 1171, -1323, -1323, 1690 1178, 1181, -1323, 703, 1901, -1323, 672, -1323, 5016, 962, 1691 -1323, 1184, 7708, 9583, 8797, 1185, -1323, -1323, 1180, 1187, 1692 1170, -1323, 10366, 1197, 326, 1194, -1323, 1202, 631, 1202, 1693 -1323, -1323, 1202, 1199, -1323, 1208, 1210, 1211, 1717, -1323, 1694 -1323, -1323, 5958, -1323, -1323, -1323, -1323, 1209, 10214, 1212, 1695 631, -1323, 10214, -1323, 631, -1323, -1323, 10214, -1323, 558, 1696 985, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1008, 1006, 1697 9023, -1323, -1323, 7206, 1218, -1323, 674, 985, -1323, 813, 1698 861, 985, -1323, 844, 4029, -1323, -1323, -1323, 9660, 9660, 1699 -1323, 8359, 8359, -1323, 1215, 1216, 1225, 1230, -1323, 1232, 1700 685, 82, 1125, -1323, 631, -1323, 5225, -1323, 10214, 564, 1701 -1323, 6373, 1236, 1240, 10100, 1242, 1243, 70, 79, 96, 1702 10214, 1244, 285, 10214, 10214, 1227, 1249, 522, 1222, -1323, 1703 -1323, -1323, 1250, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1704 -1323, -1323, 733, 1254, 10214, -1323, 9660, 9660, 85, 1257, 1705 -1323, 9054, -1323, -1323, 752, -1323, 3114, -1323, -1323, -1323, 1706 -1323, 1065, -1323, -1323, 1255, -1323, -1323, -1323, -1323, 1258, 1707 1901, -1323, -1323, 1245, -1323, 1091, -1323, -1323, 1899, 1260, 1708 -1323, -1323, -1323, 713, 1264, -1323, 94, 1269, 10366, 1252, 1709 94, 94, 1262, 3527, 879, 985, -1323, -1323, 1076, 10214, 1710 1273, 1209, 358, 204, 1270, -1323, -1323, 1275, 1270, -1323, 1711 -1323, 1278, -1323, -1323, 1033, 1280, 1284, 6730, 1285, 1290, 1712 1291, -1323, -1323, 1286, -1323, -1323, 1033, -1323, -1323, -1323, 1713 -1323, 1033, 10214, 10214, 1006, 1294, -1323, -1323, -1323, -1323, 1714 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 10366, 10366, 1715 1300, 1302, 1270, -1323, -1323, 733, -1323, -1323, -1323, 5213, 1716 9583, 10214, 10214, 1374, 10214, -1323, 1295, -1323, 1296, -1323, 1717 1297, 10214, 1301, 10214, 1105, 1304, 12, 85, 9289, 1625, 1718 -1323, -1323, 6174, 1322, 573, -1323, -1323, -1323, -1323, -1323, 1719 -1323, -1323, -1323, -1323, 9920, -1323, 8432, 1330, -1323, -1323, 1720 9583, 576, 602, -1323, 1331, 1315, 956, 1337, -1323, 329, 1721 -1323, -1323, -1323, -1323, 1033, 1339, -1323, -1323, 1320, 486, 1722 509, 631, 1340, -1323, 1344, -1323, 9660, -1323, -1323, -1323, 1723 -1323, -1323, 1347, -1323, 9660, 9660, 9660, -1323, -1323, 1348, 1724 -1323, 1351, 1354, 1355, 716, 8056, 8171, -1323, -1323, 529, 1725 -1323, 1357, 1362, -1323, 8505, 721, 730, 1358, 761, 3837, 1726 -1323, -1323, -1323, 605, -1323, 766, 1366, 1367, 285, 1419, 1727 834, -1323, -1323, 10214, -1323, 10100, 10214, -1323, -1323, -1323, 1728 1370, 1375, -1323, -1323, -1323, 1372, -1323, -1323, -1323, -1323, 1729 -1323, -1323, 9583, 956, 1379, -1323, 1352, 956, 9660, -1323, 1730 -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, -1323, 1731 -1323, -1323, -1323, 1378, 1382, -1323, -1323, -1323, -1323, -1323, 1732 -1323, -1323, 1387, -1323, 1386, -1323, -1323, 10100, 289, 10214, 1733 10100, -1323, 1389, 10214, -1323, 318, 1405, 1406, -1323, -1323, 1734 1399, 1400, 1380, -1323, 821, -1323, -1323, -1323, 934, 1899, 1735 1396, -1323, 402, 10366, -1323, 785, -1323, 631, 631, 1407, 1736 1408, 1413, 1415, -1323, -1323, 8359, 1414, -1323, 1490, 10366, 1737 1385, -1323, -1323, 10012, -1323, 800, -1323, 1402, 10100, 1403, 1738 -1323, -1323, 1426, -1323, 1427, -1323, 1445, 1446, -1323, 1411, 1739 9583, -1323, -1323, -1323, 956, 631, 1434, 1417, 1435, 1270, 1740 1270, -1323, -1323, -1323, -1323, -1323, 10100, 107, -1323, 433, 1741 -1323, -1323, 7793, -1323, -1323, 1418, 10214, -1323, 10214, 7793, 1742 285, 9512, 285, 9512, 1436, -1323, 1442, -1323, -1323, 1440, 1743 -1323, -1323, 825, -1323, -1323, -1323, 1444, 1449, -1323, 10366, 1744 10366, -1323, -1323, 909, 211, -1323, -1323, 1425, -1323, 909, 1745 -1323, -1323, 2166, 631, -1323, -1323, 285, 9512, 285, 9512, 1746 1453, 1431, 631, -1323, -1323, -1323, -1323, 10012, 1443, 909, 1747 6091, 10214, 9924, 1452, 909, 1454, 2166, 3344, -1323, -1323, 1748 -1323, 1458, -1323, -1323, -1323, -1323, 8797, -1323, -1323, -1323, 1749 9791, -1323, 10012, -1323, -1323, 1438, 9703, -1323, -1323, 9924, 1750 285, 3344, 285, 1464, 1466, 853, -1323, 9791, -1323, -1323, 1751 -1323, 9703, -1323, -1323, -1323, 285, 285, -1323, -1323, -1323, 1752 -1323, -1323, -1323, -1323, -1323 1794 1753 }; 1795 1754 … … 1797 1756 static const yytype_int16 yypgoto[] = 1798 1757 { 1799 -1 282, 4519, 3402, -1282, 393, -1282, 353, 929, -255, 927,1800 -1 282, 536, -524, -496, -864, -86, 4763, 0, -1282, 1012,1801 4 94, 506, 417, 512, 1032, 1034, 1040, 1042, 1039, -1282,1802 - 348, -520, 3026, -967, -1282, -684, 629, -16, -590, 453,1803 -1 282, 172, -1282, 397, -1192, -1282, -1282, 141, -1282, -1281,1804 -1 043, 247, -1282, -1282, -1282, -1282, 72, -1149, -1282, -1282,1805 -1 282, -1282, -1282, -1282, 315, -843, 50, -1282, -384, -1282,1806 4 98, 288, -1282, 167, -1282, -343, -1282, -1282, -1282, 546,1807 - 651, -1282, -1282, 8, -1002, 97, 1423, -1282, -1282, -1282,1808 -125, -1282, 23, 1201, -202, 1925, 4332, -1282, -1282, 52,1809 224, 459, 1086, -1282, 1865, -1282, -1282, 25, 2362, -1282,1810 2 640, 1529, -1282, -1282, -1282, -646, -1282, 935, 945, 535,1811 718, 78, -1282, -1282, -1282, 934, 722, -464, -1282, -94,1812 -89, 313, -1282, -1282, -870, -942, -24, 1177, 1054, 368,1813 -1 282, 1732, 548, -317, -213, -127, 662, 776, -1282, 990,1814 -1 282, 3077, 1178, -438, 923, -1282, -1282, 710, -1282, -234,1815 -1 282, 99, -1282, -1282, -1282, -1240, 423, -1282, -1282, -1282,1816 11 70, -1282, -20, -1282, -1282, -853, -105, -1239, -126, 2286,1817 -1 282, 2146, -1282, 921, -1282, -146, 59, -177, -171, -166,1818 7, -40, - 28, -27, 725, 4, 28, 37, -63, -154,1819 -15 1, -150, -141, -271, -540, -513, -508, -569, -320, -517,1820 -1 282, -1282, -518, 1092, 1093, 1097, 1371, 5065, -582, -555,1821 -5 49, -535, -441, -1282, -497, -722, -721, -701, -607, -309,1822 - 346, -1282, -1282, 185, 133, -15, -1282, 3702, -45, -609,1823 - 2381758 -1323, 4572, 3263, -1323, 197, -1323, 601, 950, -251, 910, 1759 -1323, 521, -520, -467, -853, -64, 3183, 0, -1323, -150, 1760 423, 446, 477, 450, 1016, 1025, 1019, 1026, 1028, -1323, 1761 -622, -408, 5012, -745, -1323, -735, 604, 472, -656, 413, 1762 -1323, 1279, -1323, 374, -1058, -1323, -1323, 126, -1323, -823, 1763 -1106, 222, -1323, -1323, -1323, -1323, 58, -1209, -1323, -1323, 1764 -1323, -1323, -1323, -1323, 301, -1149, 35, -1323, -933, -1323, 1765 482, 274, -1323, 159, -1323, -303, -1323, -1323, -1323, 535, 1766 -827, -1323, -1323, 15, -1007, 71, 28, -1323, -1323, -1323, 1767 -21, -1323, 357, 1253, -198, 1636, 4113, -1323, -1323, 80, 1768 54, 422, 1473, -1323, 1886, -1323, -1323, 192, 2183, -1323, 1769 2495, 898, -1323, -1323, -1323, -638, -1323, 924, 925, 524, 1770 699, 83, -1323, -1323, -1323, 915, 695, -339, -1323, -106, 1771 34, 1281, -1323, -1323, -847, -986, 1046, 1127, 1039, 5, 1772 -1323, 1536, 481, -165, -210, -124, 651, 758, -1323, 979, 1773 -1323, 2789, 1548, -413, 904, -1323, -1323, 689, -1323, -235, 1774 -1323, 158, -1323, -1323, -1323, -1257, 401, -1323, -1323, -1323, 1775 1148, -1323, 21, -1323, -1323, -858, -105, -1322, -129, 2267, 1776 -1323, 2391, -1323, 906, -1323, -184, 59, -180, -173, -170, 1777 7, -40, -35, -33, 60, -6, 25, 93, -168, -164, 1778 -158, -147, -144, -292, -471, -462, -452, -551, -302, -537, 1779 -1323, -1323, -511, 1069, 1072, 1074, 2608, 4844, -578, -514, 1780 -502, -495, -500, -1323, -508, -724, -717, -708, -590, -305, 1781 -195, -1323, -1323, 246, 19, 36, -1323, 3865, 104, -623, 1782 -397 1824 1783 }; 1825 1784 … … 1827 1786 positive, shift that token. If negative, reduce the rule which 1828 1787 number is the opposite. If YYTABLE_NINF, syntax error. */ 1829 #define YYTABLE_NINF -52 11788 #define YYTABLE_NINF -522 1830 1789 static const yytype_int16 yytable[] = 1831 1790 { 1832 49, 113, 428, 149, 166, 453, 440, 97, 399, 114, 1833 766, 267, 143, 844, 400, 150, 151, 740, 628, 401, 1834 827, 1070, 632, 63, 752, 76, 505, 964, 965, 609, 1835 566, 402, 49, 826, 403, 404, 596, 868, 1187, 97, 1836 407, 383, 384, 147, 405, 819, 919, 152, 966, 49, 1837 50, 820, 69, 794, 725, 63, 161, 76, 730, 96, 1838 815, 410, 357, 186, 567, 821, 209, 358, 166, 49, 1839 193, 153, 973, 216, 1177, 669, 226, 219, 604, 1171, 1840 154, 1379, 50, 818, 69, 1204, 1205, 816, 399, 202, 1841 260, 96, 817, 1195, 400, 678, 425, 56, 115, 401, 1842 1178, 327, 148, 682, 31, 113, 1468, 409, 96, 673, 1843 675, 402, 1302, 113, 403, 404, 266, 271, 122, 1137, 1844 407, 1443, 189, 408, 405, 96, 31, 1197, 96, 56, 1845 747, 471, 1178, 106, 106, 475, 477, -232, -232, 203, 1846 342, 280, 31, 948, 986, 149, 307, 147, 1398, 1399, 1847 1169, 1170, 476, 1196, 161, 113, 345, 150, 151, 1439, 1848 209, 1245, 830, 210, 436, 106, 220, 373, 837, 1181, 1849 31, 859, 860, 714, 252, 923, 411, 729, 815, 1458, 1850 735, 1303, 291, 964, 965, 186, 186, 1198, 877, 152, 1851 913, 847, 123, 161, 327, 848, 742, 667, 411, 281, 1852 736, 266, 106, 408, 966, 816, 96, 527, -232, 49, 1853 817, 951, 419, 153, 411, 1443, 161, 720, 1400, 96, 1854 1443, 209, 154, 1069, 70, 149, 436, 173, 443, 168, 1855 1439, 463, 377, 142, 163, 1077, 31, 150, 151, 307, 1856 1443, 144, 1016, 804, 398, 189, 931, 1443, 378, 734, 1857 31, 49, 723, 169, 1080, 1015, 70, 819, 97, 271, 1858 664, 798, 166, 820, 271, 266, 266, 1199, 96, 253, 1859 31, 113, 815, 161, 63, 991, 76, 821, 519, 472, 1860 96, 76, 609, 1171, 146, 853, 1187, 1398, 1399, 1248, 1861 212, 656, 476, 471, 307, 1003, 556, 557, 163, 816, 1862 598, 50, 1139, 69, 817, 155, 481, 307, 411, 1525, 1863 96, 596, 1200, 471, 568, 1093, 596, 1249, 441, 671, 1864 828, 471, 601, 571, 479, 676, 588, 447, 147, 1536, 1865 171, 558, 559, 1171, 664, 373, 1540, 994, 898, 357, 1866 835, 113, 601, 665, 358, 345, 460, 922, 56, 602, 1867 620, 827, 1526, 870, 111, 642, 342, 1409, 1070, -467, 1868 1118, -467, 1423, 110, 625, 417, 831, 181, 625, 387, 1869 834, 113, 871, 830, 41, 42, 1424, 819, -467, 1541, 1870 1119, 327, 327, 820, 106, 388, 1084, 96, 437, 1186, 1871 201, 851, 844, 713, 435, 854, 266, 821, 445, 579, 1872 390, 411, 759, 110, 1169, 1170, 186, 582, 603, 411, 1873 672, 674, -289, 373, 41, 42, 391, 665, 392, 8, 1874 9, 10, 11, 12, 266, 177, 307, 307, -288, 1496, 1875 266, 1116, 357, 625, 393, 1501, 714, 358, 985, 1187, 1876 702, 472, 764, 76, 1325, 442, 1187, 577, 31, 327, 1877 176, 394, 1171, 578, 113, 1521, 435, 996, 247, 1201, 1878 1528, 472, 804, 76, 1326, 189, 520, 395, 327, 472, 1879 1126, 76, 266, 914, 261, 70, 34, 262, 250, 523, 1880 266, 952, 625, -516, 49, 1135, 1469, 373, 719, 915, 1881 519, 97, 163, 252, 113, 519, 357, 1187, 519, 176, 1882 1470, 358, 176, 1104, 609, 711, 307, 63, 113, 76, 1883 342, 307, 263, 307, 307, 1029, 110, 1016, 1244, -10, 1884 869, 750, 1428, 1429, 1434, 113, 345, 41, 42, 229, 1885 881, 330, 230, 327, 50, 234, 69, 236, 916, 683, 1886 704, 910, -440, 96, 245, 578, 705, 603, 176, 879, 1887 804, 787, -441, 1014, 917, 1330, 471, 882, 922, 411, 1888 1069, 2, 206, 4, 5, 6, 7, 1157, 1159, 493, 1889 571, 571, 494, 37, 212, 845, 914, 40, 307, 276, 1890 598, 56, 928, 916, 41, 42, 439, 331, 1126, 625, 1891 345, 1184, 1081, 913, 620, 714, 278, 1236, 1184, 1082, 1892 602, 279, 602, 922, 372, 465, 1316, 1185, 1019, 1484, 1893 812, 176, 601, 1318, 1308, 680, 371, 106, 45, 46, 1894 625, 110, 1317, 332, 912, 625, 35, 620, 36, 1319, 1895 333, 625, 41, 42, 625, 625, 625, 1362, 1138, 691, 1896 483, 706, 806, 1512, 721, 1514, 702, 500, 1027, 731, 1897 722, 286, 625, 747, 266, 732, 713, 1276, 1277, 814, 1898 1332, 603, 41, 42, 334, 176, 1014, 376, 1074, 1363, 1899 110, 229, 176, -120, 746, -120, 252, 329, 520, -120, 1900 747, 41, 42, 520, 113, 335, 520, 907, 514, 1029, 1901 596, 523, 385, 523, -120, -120, 523, 212, 1360, 523, 1902 1101, 252, 329, 411, 472, 570, 76, 411, 70, 1112, 1903 625, 933, 620, 45, 46, 357, 177, 849, 719, 719, 1904 358, 850, 389, 8, 9, 10, 11, 12, 399, 342, 1905 472, 1234, 76, 629, 400, 1238, 549, 633, 498, 401, 1906 1034, 176, 550, 551, 113, 345, 911, 892, 397, 750, 1907 750, 402, 31, 747, 403, 404, 409, 894, 176, 450, 1908 980, 407, 176, 747, 405, 702, 981, 993, 711, 922, 1909 552, 553, 1408, 705, 162, 702, 804, 814, 603, 1232, 1910 34, 1373, 426, 964, 965, 578, 1356, 427, 194, 702, 1911 1474, 217, 747, 571, 227, 849, 1357, 1474, 749, 1100, 1912 411, 625, 747, 625, 966, 999, 45, 46, 625, 345, 1913 1161, 229, 602, 234, 432, 713, 110, 1359, 139, 238, 1914 111, 554, 555, 747, 602, 176, 1364, 41, 42, 922, 1915 922, 37, 747, 183, 184, 40, -103, 714, 461, 1426, 1916 -103, 890, 41, 42, 408, 1423, 442, 1348, 1522, 462, 1917 897, 1349, -364, 239, 899, 1476, -393, 1477, 240, 484, 1918 952, 806, 1425, 504, 952, 952, 291, 1444, 905, 691, 1919 411, 814, 162, 747, 307, 508, 45, 46, 1436, 513, 1920 885, 760, 411, 603, 525, 374, 765, 527, 342, 906, 1921 2, 206, 4, 5, 6, 7, 625, 63, 327, 76, 1922 1490, 229, 563, 113, 345, 907, 1491, 907, 1182, 562, 1923 1523, 162, 110, 564, 139, 140, 714, 565, 1141, 113, 1924 411, 338, 212, 41, 42, 568, 69, 711, -437, 48, 1925 112, 1168, 933, 933, 162, 465, 212, 719, 1153, 664, 1926 411, 1546, 113, 307, 910, 586, 444, 578, 1494, 1436, 1927 1105, 864, 560, 561, 845, 35, 589, 36, 112, 112, 1928 932, 48, 601, 1156, 1083, 601, 911, 750, 45, 46, 1929 -3, 56, 48, 775, 776, 777, 778, 1158, 48, 601, 1930 1323, 638, 176, 891, 1508, 1241, 48, 411, 1087, 846, 1931 1087, 657, 48, 702, 702, 48, 603, 658, 48, 345, 1932 984, 981, 1227, 329, 411, 861, 878, 106, 880, 1369, 1933 1370, 112, 112, 110, 176, 139, 140, 659, -3, 876, 1934 625, 625, 665, 661, 41, 42, 666, 912, 662, 212, 1935 176, 1418, 981, 1126, 922, 48, 663, 37, 48, 1106, 1936 307, 40, 1398, 1399, 176, 48, 771, 772, 41, 42, 1937 922, 702, 702, 374, 737, 243, 738, 713, 927, 739, 1938 773, 774, 743, 472, 668, 76, 110, 1380, 139, 140, 1939 1079, 1380, 779, 780, 43, 106, 48, 41, 42, 257, 1940 113, 692, 45, 46, 48, 907, 419, 660, 411, 48, 1941 907, 693, 1189, 481, 329, 411, 697, 37, 70, 933, 1942 500, 40, 987, 695, 691, -236, 733, 266, 41, 42, 1943 748, 744, 992, 756, 48, 48, 110, 807, 139, 140, 1944 922, 922, 625, 808, 867, 176, 1004, 41, 42, 811, 1945 48, 374, 822, 873, 718, 896, -12, 56, 48, 828, 1946 329, 601, 45, 46, 911, -13, 345, 48, 866, 911, 1947 48, 893, 213, 726, 1295, 1296, 1297, 112, 727, 895, 1948 900, 232, 1331, 1333, 1334, 903, 921, -414, 1459, 711, 1949 -520, 936, 112, 106, 1284, 1285, 112, 1287, 722, 943, 1950 48, 112, 945, 956, 1292, 1351, 1294, 957, 271, 113, 1951 949, 498, 342, 950, 48, 48, 977, 219, 958, 1312, 1952 959, 48, 116, 213, 960, 961, -290, 113, 48, 988, 1953 989, 307, 990, 8, 9, 10, 11, 12, 1005, 1006, 1954 1007, 1008, 1009, 1203, 1010, 625, 442, 1011, 1022, 113, 1955 -402, 702, -401, 1071, 63, 906, 76, 1105, 1036, 702, 1956 702, 702, 31, 1094, 215, 1095, 213, 1073, 711, 1096, 1957 159, 2, 206, 4, 5, 6, 7, 48, 1097, 1103, 1958 242, 1113, 1114, 69, 70, 691, 747, 1117, 1115, 1120, 1959 34, 971, 1122, 1421, 625, 625, 1123, 48, 48, 1124, 1960 228, 1534, 1125, 271, 1128, 210, 220, 1131, 307, 176, 1961 1151, 1176, 1172, 1174, 48, 215, 510, 1173, 48, 1175, 1962 1190, 1191, 1193, 702, 1194, 1202, 258, 213, 56, 643, 1963 1121, 472, 1206, 76, 159, -3, 35, 1207, 36, 547, 1964 548, 113, 106, 1214, 1219, 48, 1106, 1058, 399, 1105, 1965 1166, 1167, 1132, 1222, 400, 48, 1132, 1224, 215, 401, 1966 1189, 1209, 1404, 493, 106, 213, 1228, 323, 1233, 1235, 1967 213, 402, 1237, 48, 403, 404, 339, 547, 1240, 48, 1968 407, 48, 106, 1246, 405, 499, 1250, 1252, 1254, 1256, 1969 37, 1257, 183, 184, 40, 1258, 1507, 1259, 266, 1260, 1970 441, 41, 42, 1262, 664, 56, 1132, 1269, 1216, 1217, 1971 1278, 1279, 1286, 547, 625, 1307, 112, 1314, 1289, 215, 1972 1290, 48, 528, 529, 530, 1320, 430, 185, 1291, 48, 1973 434, 1322, 212, 48, 1293, 45, 46, 48, 1106, 113, 1974 112, 106, 112, 57, 57, 1301, 531, 1105, 532, 1324, 1975 533, 534, 528, 529, 530, 70, 213, 215, 1328, 1329, 1976 323, 113, 215, 408, 1335, 1336, 1338, 1344, 113, 1345, 1977 113, 1346, 113, 1347, 106, 57, 531, 112, 532, 1358, 1978 533, 1305, 112, 1354, 472, 149, 76, 665, 1355, 1367, 1979 327, 472, 434, 76, 1365, 488, 1366, 150, 151, 1297, 1980 1374, 1506, 1375, 1376, 1382, 1383, 113, -403, 113, 57, 1981 1392, 1393, 57, 1189, 1396, 521, 1192, 1407, 1411, 113, 1982 1189, 1413, 1415, 1416, 1422, 1506, 1506, 442, 159, 1430, 1983 1431, 112, 70, 161, 1432, 307, 1106, 213, 48, 1433, 1984 1417, 1435, 472, 1349, 76, 1440, 1449, 1451, 215, 48, 1985 1506, 48, 1453, 1445, 213, 1447, 1455, 373, 56, 1462, 1986 1457, 1464, 587, 1463, 1475, 56, 593, 1485, 1487, 1489, 1987 48, 1189, 106, 1492, 1493, 1515, 1500, 1516, 1520, 213, 1988 413, 768, 769, 770, 479, 626, 48, 421, 1337, 630, 1989 1527, 112, 339, 1529, 106, 1531, 1339, 1340, 1341, 348, 1990 48, 106, 112, 48, 112, 1537, 1544, 37, 1545, 174, 1991 175, 40, 1208, 888, 781, 214, 56, 782, 41, 42, 1992 176, 1132, 1132, 1132, 783, 785, 1130, 784, 1306, 215, 1993 1495, 1410, 1547, 1368, 1384, 1478, 48, 1213, 1239, 901, 1994 112, 1479, 112, 1483, 372, 1221, 112, 323, 323, 902, 1995 1088, 924, 106, 1127, 112, 1482, 800, 1482, 872, 413, 1996 1385, 703, 1092, 1035, 57, 938, 214, 48, 48, 1102, 1997 0, 215, 1315, 946, 716, 687, 0, 1511, 0, 1513, 1998 0, 48, 790, 791, 1058, 70, 0, 792, 116, 0, 1999 0, 1482, 70, 1482, 57, 8, 9, 10, 11, 12, 2000 213, 0, 0, 0, 0, 0, 0, 0, 37, 214, 2001 183, 184, 40, 488, 576, 323, 0, 488, 0, 41, 2002 42, 1542, 580, 1543, 31, 583, 0, 521, 213, 521, 2003 0, -291, 521, 213, 323, 521, 1550, 1551, 8, 9, 2004 10, 11, 12, 70, 0, 600, 339, 601, 0, 0, 2005 0, 0, 34, 45, 46, 0, 0, 0, 0, 1132, 2006 1132, 48, 0, 0, 0, 1420, 0, 31, 0, 0, 2007 214, 0, 0, 48, 0, 0, 0, 1372, 0, 0, 2008 0, 0, 141, 8, 9, 10, 11, 12, 972, 413, 2009 176, 0, 215, 421, 570, 34, 411, 1460, 0, 323, 2010 0, 0, 45, 46, 213, 0, 0, 0, 214, 0, 2011 802, 0, 31, 214, 0, 0, 643, 0, 213, 0, 2012 215, 0, 112, 0, 0, 215, 0, 0, 0, 1397, 2013 0, 0, 1405, 0, 241, 244, 0, 0, 499, 0, 2014 34, 843, 0, 0, 0, 48, 593, 0, 0, 0, 2015 0, 0, 852, 0, 48, 1509, 48, 37, 0, 174, 2016 175, 40, 0, 112, 1517, 0, 0, 703, 41, 42, 2017 413, 0, 0, 0, 0, 1442, 348, 0, 0, 0, 2018 1446, 0, 749, 0, 411, 74, 48, 0, 0, 0, 2019 45, 46, 0, 0, 376, 0, 215, 0, 0, 214, 2020 8, 9, 10, 11, 12, 687, 112, 0, 1467, 0, 2021 215, 213, 0, 0, 0, 0, 0, 74, 0, 0, 2022 643, 0, 37, 0, 183, 184, 40, 57, 112, 31, 2023 0, 0, 112, 41, 42, 0, 129, 0, 130, 131, 2024 132, 0, 0, 488, 0, 66, 117, 41, 42, 0, 2025 0, 0, 0, 0, 222, 0, 0, 34, 0, 265, 2026 0, 576, 576, 0, 0, 339, 0, 45, 46, 348, 2027 0, 0, 37, 0, 174, 175, 40, 66, 0, 0, 2028 214, 0, 112, 41, 42, 0, 703, 0, 0, 0, 2029 0, 0, 1535, 0, 160, 457, 703, 0, 1535, 932, 2030 0, 601, 0, 215, 0, 0, 0, 45, 46, 1535, 2031 703, 0, 0, 1535, 221, 0, 0, 0, 0, 0, 2032 112, 0, 214, 0, 995, 0, 0, 0, 0, 802, 2033 0, 547, 0, 348, 48, 0, 0, 0, 0, 48, 2034 0, 353, 0, 37, 0, 183, 184, 40, 883, 0, 2035 259, 0, 886, 0, 41, 42, 48, 0, 0, 0, 2036 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2037 0, 0, 510, 0, 0, 0, 0, 348, 348, 348, 2038 905, 0, 411, 0, 0, 0, 0, 0, 45, 46, 2039 31, 0, 328, 0, 0, 348, 0, 0, 0, 0, 2040 259, 350, 0, 0, 0, 0, 0, 0, 213, 0, 2041 0, 0, 0, 0, 0, 449, 0, 802, 34, 0, 2042 0, 0, 0, 37, 339, 183, 184, 40, 0, 0, 2043 0, 406, 644, 112, 41, 42, 74, 0, 0, 0, 2044 687, 74, 0, 214, 0, 0, 424, 0, 0, 429, 2045 431, 0, 0, 348, 160, 0, 48, 0, 0, 0, 2046 185, 0, 488, 1107, 323, 0, 0, 0, 45, 46, 2047 0, 214, 0, 0, 0, 448, 214, 0, 0, 451, 2048 0, 452, 0, 0, 576, 0, 0, 0, 0, 0, 2049 459, 0, 126, 126, 126, 0, 66, 112, 112, 112, 2050 215, 473, 0, 0, 0, 0, 0, 0, 0, 0, 2051 0, 480, 0, 0, 703, 703, 0, 0, 0, 431, 2052 843, 535, 536, 537, 538, 539, 540, 541, 542, 543, 2053 544, 8, 9, 10, 11, 12, 222, 37, 0, 183, 2054 184, 40, 0, 724, 348, 728, 0, 214, 41, 42, 2055 0, 0, 348, 0, 0, 545, 0, 0, 0, 0, 2056 31, 214, 0, 0, 126, 0, 126, 0, 0, 0, 2057 0, 0, 703, 703, 1505, 0, 411, 0, 0, 0, 2058 0, 0, 45, 46, 0, 0, 259, 0, 34, 0, 2059 594, 275, 0, 37, 213, 0, 622, 40, 0, 0, 2060 0, 687, 413, 74, 41, 42, 0, 0, 0, 627, 2061 0, 0, 0, 627, 0, 0, 259, 57, 353, 0, 2062 0, 0, 0, 74, 0, 0, 48, 48, 0, 0, 2063 43, 74, 124, 127, 128, 112, 112, 0, 45, 46, 2064 0, 0, 0, 802, 0, 0, 0, 126, 0, 353, 2065 0, 0, 0, 0, 214, 126, 0, 126, 126, 0, 2066 0, 0, 126, 473, 126, 126, 0, 353, 0, 74, 2067 0, 0, 0, 112, 0, 0, 0, 0, 350, 1142, 2068 0, 0, 77, 473, 0, 57, 215, 0, 0, 213, 2069 0, 473, 0, 0, 865, 0, 1154, 0, 0, 0, 2070 0, 0, 0, 0, 254, 0, 255, 0, 0, 698, 2071 0, 353, 431, 0, 77, 0, 0, 0, 0, 0, 2072 1313, 0, 0, 0, 0, 0, 0, 712, 339, 66, 2073 48, 112, 0, 0, 126, 0, 0, 431, 0, 0, 2074 112, 431, 0, 918, 0, 920, 0, 0, 0, 457, 2075 1107, 223, 703, 0, 48, 48, 0, 0, 0, 0, 2076 703, 703, 703, 348, 348, 0, 0, 0, 0, 0, 2077 259, 350, 0, 0, 413, 353, 0, 0, 0, 48, 2078 0, 215, 0, 57, 0, 0, 0, 396, 0, 0, 2079 0, 0, 0, 0, 0, 0, 0, 415, 416, 0, 2080 0, 0, 420, 0, 422, 423, 0, 0, 0, 0, 2081 0, 0, 0, 0, 1242, 0, 793, 0, 0, 353, 2082 353, 353, 0, 0, 703, 0, 0, 0, 8, 9, 2083 10, 11, 12, 0, 627, 805, 0, 353, 355, 0, 2084 0, 0, 1107, 0, 0, 0, 0, 824, 0, 0, 2085 0, 214, 0, 0, 0, 353, 0, 31, 0, 0, 2086 0, 0, 0, 0, 0, 594, 74, 0, 0, 0, 2087 594, 0, 0, 0, 0, 0, 627, 0, 0, 350,